feat(experimental): 把个性化页面和插件推荐合并为实验性插件「个性化推荐」 (#7034)

* feat(experimental): ship the two card experiments as one Personalized recommendations bundle

@deepseek-ai/dsh-personalized-recommendations inserts the action card
service, its browser half, Personalized pages and Plugin recommendations
with their card bodies under the existing row ids. As the only layer that
declares those ids, the Plugins page addresses and switches each row,
including the two shared card rows that were read-only while two bundles
inserted them.

The two experiment packages stop being bundles; the new bundle takes their
place in the official lists and the dsh installation, with the personalized
pages icon, localized title and description, and a feature preview of both
cards. The two feature rows describe what they do on the bundle page.

* fix(experimental): drop the model reason line from plugin recommendation cards

The reason follows the language of the user's question while the catalog
description below it follows the interface language, so the two lines could
differ in language and largely repeat each other; the answer already gives
the reason. The card keeps the catalog title and description, both in the
interface language, as its details target.

* test(web): refresh the card fixtures for the Personalized recommendations bundle

Both card replays enable the new bundle, so each Session lists both card
skills, and each skill's catalog lists Personalized recommendations in place
of the two former bundles. The plugin card goldens lose the reason line.

---------

Co-authored-by: ZiyaZhang <199893125+ZiyaZhang@users.noreply.github.com>
This commit is contained in:
ZiyaandZiyaZhang authored and GitHub committed 2026-10-23 07:55:49 +00:00
1 parent 63021ce0b4
commit d6d51be4cb
93 files changed
+793 -168

No files matched your search

+1 -2
View File
@@ -108,8 +108,7 @@
"@deepseek-ai/dsh-experimental-tool-worktree": "workspace:*",
"@deepseek-ai/dsh-cua-bundle": "workspace:*",
"@deepseek-ai/dsh-experimental-plugin-market-bundle": "workspace:*",
"@deepseek-ai/dsh-creation-recommendations": "workspace:*",
"@deepseek-ai/dsh-plugin-recommendations": "workspace:*"
"@deepseek-ai/dsh-personalized-recommendations": "workspace:*"
},
"devDependencies": {
"@deepseek-ai/dsh-skill-badge": "workspace:*",
@@ -20,7 +20,7 @@ describe('creation recommendation after an explicit wish', () => {
beforeAll(async () => {
scaffold = await launchWebScaffold({ replayFixture: fixture, compareReplaySession: true,
profile: { packages: [{ dir: fileURLToPath(new URL('../../../packages/experimental/creation-recommendations', import.meta.url)), enabled: true }] },
profile: { packages: [{ dir: fileURLToPath(new URL('../../../packages/experimental/personalized-recommendations', import.meta.url)), enabled: true }] },
})
browser = await chromium.launch()
page = await newEnglishPage(browser)
+1 -2
View File
@@ -863,8 +863,7 @@ describe('web e2e: plugin manager', () => {
['@deepseek-ai/dsh-experimental-voice-input-bundle', 1],
['@deepseek-ai/dsh-experimental-plugin-market-bundle', 1],
['@deepseek-ai/dsh-experimental-auto-review', 1],
['@deepseek-ai/dsh-creation-recommendations', 1],
['@deepseek-ai/dsh-plugin-recommendations', 1],
['@deepseek-ai/dsh-personalized-recommendations', 1],
['@deepseek-ai/dsh-experimental-inspector-profile', 1],
['@deepseek-ai/dsh-cua-bundle', 1],
['@deepseek-ai/dsh-experimental-tool-worktree', 1],
+1 -1
View File
@@ -22,7 +22,7 @@ describe('official plugin recommendation in a conversation', () => {
beforeAll(async () => {
scaffold = await launchWebScaffold({ replayFixture: fixture, compareReplaySession: true,
profile: { packages: [{ dir: fileURLToPath(new URL('../../../packages/experimental/plugin-recommendations', import.meta.url)), enabled: true }] },
profile: { packages: [{ dir: fileURLToPath(new URL('../../../packages/experimental/personalized-recommendations', import.meta.url)), enabled: true }] },
})
browser = await chromium.launch()
page = await newEnglishPage(browser)
+1
View File
@@ -4887,6 +4887,7 @@ Imported as libraries by other packages; a `cordis.yml` cannot load them.
| `@deepseek-ai/dsh-official-bundles` | — | [`packages/util/official-bundles/src/index.ts`](../packages/util/official-bundles/src/index.ts) |
| `@deepseek-ai/dsh-output-retention` | — | [`packages/util/output-retention/src/index.ts`](../packages/util/output-retention/src/index.ts) |
| `@deepseek-ai/dsh-package-manifest` | — | [`packages/util/package-manifest/src/index.ts`](../packages/util/package-manifest/src/index.ts) |
| `@deepseek-ai/dsh-personalized-recommendations` | — | [`packages/experimental/personalized-recommendations/src/index.ts`](../packages/experimental/personalized-recommendations/src/index.ts) |
| `@deepseek-ai/dsh-plugin-detail` | — | [`packages/util/plugin-detail/src/index.ts`](../packages/util/plugin-detail/src/index.ts) |
| `@deepseek-ai/dsh-plugin-market-index` | — | [`packages/util/plugin-market-index/src/index.ts`](../packages/util/plugin-market-index/src/index.ts) |
| `@deepseek-ai/dsh-remote-mock` | — | [`packages/test-support/remote-mock/src/index.ts`](../packages/test-support/remote-mock/src/index.ts) |
+1
View File
@@ -4889,6 +4889,7 @@ export interface Config {
| `@deepseek-ai/dsh-official-bundles` | — | [`packages/util/official-bundles/src/index.ts`](../packages/util/official-bundles/src/index.ts) |
| `@deepseek-ai/dsh-output-retention` | — | [`packages/util/output-retention/src/index.ts`](../packages/util/output-retention/src/index.ts) |
| `@deepseek-ai/dsh-package-manifest` | — | [`packages/util/package-manifest/src/index.ts`](../packages/util/package-manifest/src/index.ts) |
| `@deepseek-ai/dsh-personalized-recommendations` | — | [`packages/experimental/personalized-recommendations/src/index.ts`](../packages/experimental/personalized-recommendations/src/index.ts) |
| `@deepseek-ai/dsh-plugin-detail` | — | [`packages/util/plugin-detail/src/index.ts`](../packages/util/plugin-detail/src/index.ts) |
| `@deepseek-ai/dsh-plugin-market-index` | — | [`packages/util/plugin-market-index/src/index.ts`](../packages/util/plugin-market-index/src/index.ts) |
| `@deepseek-ai/dsh-remote-mock` | — | [`packages/test-support/remote-mock/src/index.ts`](../packages/test-support/remote-mock/src/index.ts) |
+2
View File
@@ -302,6 +302,7 @@ flowchart TD
pkg_hook_protocol["hook-protocol"]
pkg_hooks_claude_code["hooks-claude-code"]
pkg_hooks_codex["hooks-codex"]
pkg_personalized_recommendations["personalized-recommendations"]
pkg_plugin_recommendations["plugin-recommendations"]
pkg_session_title_all_prompts_llm["session-title-all-prompts-llm"]
pkg_skill_badge["skill-badge"]
@@ -1597,6 +1598,7 @@ flowchart TD
| [`experimental-terminal-bundle`](../packages/experimental/terminal-bundle) | `experimental` | — |
| [`experimental-voice-input-bundle`](../packages/experimental/voice-input-bundle) | `experimental` | — |
| [`experimental-webworker-packer`](../packages/experimental/webworker-packer) | `experimental` | — |
| [`personalized-recommendations`](../packages/experimental/personalized-recommendations) | `experimental` | — |
| [`client-ui-cordis`](../packages/extensions/ui-cordis) | `extensions` | — |
| [`cordis-client-runner`](../packages/extensions/cordis-client-runner) | `extensions` | — |
| [`host-directory-picker`](../packages/host/directory-picker) | `host` | — |
+2
View File
@@ -304,6 +304,7 @@ flowchart TD
pkg_hook_protocol["hook-protocol"]
pkg_hooks_claude_code["hooks-claude-code"]
pkg_hooks_codex["hooks-codex"]
pkg_personalized_recommendations["personalized-recommendations"]
pkg_plugin_recommendations["plugin-recommendations"]
pkg_session_title_all_prompts_llm["session-title-all-prompts-llm"]
pkg_skill_badge["skill-badge"]
@@ -1599,6 +1600,7 @@ flowchart TD
| [`experimental-terminal-bundle`](../packages/experimental/terminal-bundle) | `experimental` | — |
| [`experimental-voice-input-bundle`](../packages/experimental/voice-input-bundle) | `experimental` | — |
| [`experimental-webworker-packer`](../packages/experimental/webworker-packer) | `experimental` | — |
| [`personalized-recommendations`](../packages/experimental/personalized-recommendations) | `experimental` | — |
| [`client-ui-cordis`](../packages/extensions/ui-cordis) | `extensions` | — |
| [`cordis-client-runner`](../packages/extensions/cordis-client-runner) | `extensions` | — |
| [`host-directory-picker`](../packages/host/directory-picker) | `host` | — |
+4 -4
View File
@@ -9,8 +9,8 @@
en: 6cc2cd9ced70bb09
zh: 1c0e6cb4ba2ed637
/tool-schema-catalog/tool-package-map:
en: c089eeb9ebe832b1
zh: 97f6ac552abb55e3
en: 4d42222acd39d083
zh: 8153a5065bf2ebd6
/tool-schema-catalog/deepseek-ai-dsh-plugin-manager:
en: e0143916bb634762
zh: e0143916bb634762
@@ -60,8 +60,8 @@
en: 60c9df6ffda98a1d
zh: 60c9df6ffda98a1d
/tool-schema-catalog/deepseek-ai-dsh-action-cards/propose-action:
en: c289411d447b015a
zh: 3a770388e90df4df
en: 633c32b6df889830
zh: b88ea00b2033c11b
/tool-schema-catalog/deepseek-ai-dsh-tool-ask-user:
en: e713a4a11a15d13c
zh: e713a4a11a15d13c
+2 -2
View File
@@ -19,7 +19,7 @@ This table connects model-visible tool names to the plugin package and service s
| `@deepseek-ai/dsh-plugin-market` | `plugin_market` | `ctx.tools`, `ctx.pluginMarket` | `tool/call`, `tool/result` | - | - |
| `@deepseek-ai/dsh-mcp-resources` | `list_mcp_resource_templates`, `list_mcp_resources`, `read_mcp_resource` | `ctx.tools`, `ctx.mcpResources` | `tool/call`, `tool/result` | - | - |
| `@deepseek-ai/dsh-experimental-browser-use-stagehand-native` | `stagehand_act`, `stagehand_extract`, `stagehand_navigate`, `stagehand_observe`, `stagehand_screenshot`, `stagehand_tabs` | `ctx.browserUse`, `ctx.agents`, `ctx.tools`, `ctx.systemPrompt` | `tool/call`, `tool/result` | - | - |
| `@deepseek-ai/dsh-action-cards` | `propose_action` | `ctx.tools`, `ctx.agents`, `ctx.sessionProjections`, `ctx.remoteAccess` | `tool/call`, `tool/result`, `plugin:action-cards/decision`, `user/message` | - | Declared only to an Agent that loaded the skill of a registered card kind; the kind packages register their actions, and the Personalized pages and Plugin recommendations bundles supply the shipped kinds. |
| `@deepseek-ai/dsh-action-cards` | `propose_action` | `ctx.tools`, `ctx.agents`, `ctx.sessionProjections`, `ctx.remoteAccess` | `tool/call`, `tool/result`, `plugin:action-cards/decision`, `user/message` | - | Declared only to an Agent that loaded the skill of a registered card kind; the kind packages register their actions, and the Personalized recommendations bundle supplies the shipped kinds. |
| `@deepseek-ai/dsh-tool-ask-user` | `ask_user_question` | `ctx.tools`, `ctx.userQuestions` | `tool/call`, `tool/result after an answer or timeout`, `late user/message` | - | ask_user_question keeps the original blocking behavior by default; set `mode: timed` to opt into a foreground timeout and pending result while the question remains answerable. In timed mode, `timeout: -1` keeps that call blocking indefinitely. |
| `@deepseek-ai/dsh-tool-executor-ptc` | `run_code` | `ctx.workingDirectory (Agent executions)`, `ctx.tools`, `ctx.ptcRuntime`, `ctx.systemPrompt` | `tool/call`, `one tool/ptc-dispatch-start + tool/ptc-dispatch pair per bridged sub-call`, `tool/result` | - | The PTC executor exposes only run_code to the model and declares other visible capabilities in a generated SDK in the runtime’s language. Program bindings enter the shared guarded tool pipeline in submission order; concurrency-safe bodies overlap up to maxParallelSubCalls, and nested results remain linked to the outer program. |
| `@deepseek-ai/dsh-plan-mode` | `exit_plan_mode` | `ctx.tools`, `ctx.systemPrompt`, `ctx.agents`, `ctx.userQuestions (execution time, opportunistic)` | `tool/call`, `plan/mode inactive on an approved review`, `tool/result` | - | exit_plan_mode stays in the model-facing schema while planning is inactive so transitions add no tool-catalog churn on top of the plan-policy change. Its execute path rejects calls outside plan mode; in plan mode it presents the plan over the user-questions seam (approve / keep planning with feedback), and approval logs plan mode inactive at the step boundary. |
@@ -539,7 +539,7 @@ Show the user one optional action card under this answer. Call only as the skill
Source: [`packages/experimental/action-cards/src/index.ts`](../packages/experimental/action-cards/src/index.ts)
Declared only to an Agent that loaded the skill of a registered card kind; the kind packages register their actions, and the Personalized pages and Plugin recommendations bundles supply the shipped kinds.
Declared only to an Agent that loaded the skill of a registered card kind; the kind packages register their actions, and the Personalized recommendations bundle supplies the shipped kinds.
<a id="deepseek-aidsh-tool-ask-user"></a>
+2 -2
View File
@@ -23,7 +23,7 @@
| `@deepseek-ai/dsh-plugin-market` | `plugin_market` | `ctx.tools`, `ctx.pluginMarket` | `tool/call`, `tool/result` | - | - |
| `@deepseek-ai/dsh-mcp-resources` | `list_mcp_resource_templates`, `list_mcp_resources`, `read_mcp_resource` | `ctx.tools`, `ctx.mcpResources` | `tool/call`, `tool/result` | - | - |
| `@deepseek-ai/dsh-experimental-browser-use-stagehand-native` | `stagehand_act`、`stagehand_extract`、`stagehand_navigate`、`stagehand_observe`、`stagehand_screenshot`、`stagehand_tabs` | `ctx.browserUse`、`ctx.agents`、`ctx.tools`、`ctx.systemPrompt` | `tool/call`、`tool/result` | - | - |
| `@deepseek-ai/dsh-action-cards` | `propose_action` | `ctx.tools`、`ctx.agents`、`ctx.sessionProjections`、`ctx.remoteAccess` | `tool/call`、`tool/result`、`plugin:action-cards/decision`、`user/message` | - | 只向加载过已注册卡片种类 Skill 的 Agent 声明;各种类的包注册自己的动作,个性化页面和插件推荐两个 Bundle 提供随产品发布的种类。 |
| `@deepseek-ai/dsh-action-cards` | `propose_action` | `ctx.tools`、`ctx.agents`、`ctx.sessionProjections`、`ctx.remoteAccess` | `tool/call`、`tool/result`、`plugin:action-cards/decision`、`user/message` | - | 只向加载过已注册卡片种类 Skill 的 Agent 声明;各种类的包注册自己的动作,个性化推荐 Bundle 提供随产品发布的种类。 |
| `@deepseek-ai/dsh-tool-ask-user` | `ask_user_question` | `ctx.tools`、`ctx.userQuestions` | `tool/call`、`tool/result after an answer or timeout`、`late user/message` | - | ask_user_question 默认保持原有阻塞行为;设置 `mode: timed` 后才启用前台超时与 pending 结果,同时问题仍可回答;timed 模式内 `timeout: -1` 让本次调用无限期阻塞。 |
| `@deepseek-ai/dsh-tool-executor-ptc` | `run_code` | `ctx.workingDirectory (Agent executions)`、`ctx.tools`、`ctx.ptcRuntime`、`ctx.systemPrompt` | `tool/call`、`one tool/ptc-dispatch-start + tool/ptc-dispatch pair per bridged sub-call`、`tool/result` | - | PTC 执行器只向模型公开 run_code,并在运行时语言生成的 SDK 中声明其他可见能力。程序绑定按提交顺序进入共享的受守卫工具流水线;并行安全的函数体最多重叠 maxParallelSubCalls 个,嵌套结果保持与外层程序关联。 |
| `@deepseek-ai/dsh-plan-mode` | `exit_plan_mode` | `ctx.tools`、`ctx.systemPrompt`、`ctx.agents`、`ctx.userQuestions (execution time, opportunistic)` | `tool/call`、`plan/mode inactive on an approved review`、`tool/result` | - | 规划未激活时,exit_plan_mode 仍保留在面向模型的 schema 中,这样状态转换不会在规划策略变更之外额外造成工具目录变动。其执行路径会拒绝规划模式之外的调用;在规划模式下,它通过用户交互 seam 提交计划(批准/根据反馈继续规划),批准后会在步骤边界记录规划模式已停用。 |
@@ -543,7 +543,7 @@
来源:[`packages/experimental/action-cards/src/index.ts`](../packages/experimental/action-cards/src/index.ts)
只向加载过已注册卡片种类 Skill 的 Agent 声明;各种类的包注册自己的动作,个性化页面和插件推荐两个 Bundle 提供随产品发布的种类。
只向加载过已注册卡片种类 Skill 的 Agent 声明;各种类的包注册自己的动作,个性化推荐 Bundle 提供随产品发布的种类。
<a id="deepseek-aidsh-tool-ask-user"></a>
@@ -1239,8 +1239,7 @@ describe('PluginManagerPage', () => {
it.each([
'@deepseek-ai/dsh-experimental-session-titles-bundle',
'@deepseek-ai/dsh-creation-recommendations',
'@deepseek-ai/dsh-plugin-recommendations',
'@deepseek-ai/dsh-personalized-recommendations',
])('returns %s details to the secondary page and retains it across React remounts', (name) => {
const b = renderTab({ packages: [pkg({ name, official: true, enabled: false })] })
fireEvent.click(screen.getByRole('button', { name: en.moreAction }))
@@ -1258,8 +1257,7 @@ describe('PluginManagerPage', () => {
it.each([
'@deepseek-ai/dsh-experimental-tool-worktree',
'@deepseek-ai/dsh-creation-recommendations',
'@deepseek-ai/dsh-plugin-recommendations',
'@deepseek-ai/dsh-personalized-recommendations',
])('pins enabled %s onto the main list and removes it when disabled', (first) => {
const team = '@deepseek-ai/dsh-experimental-agent-team-profile'
const second = '@deepseek-ai/dsh-experimental-cot-translation-bundle'
+2 -2
View File
@@ -18,8 +18,8 @@
en: b55aeb927737b90d
zh: 0b215fcb5c2c7908
/packages-experimental/packages:
en: 4d32c0a6c009a2ca
zh: 47bf9acd64100263
en: 895f169f8f3ebbc7
zh: 62786c4876d97055
/packages-experimental/related-documentation:
en: 1cb9d3448d44e48d
zh: cd326d70a746b896
+1
View File
@@ -42,6 +42,7 @@ Promotion requires a named product role, documented public behavior and limitati
| [`client-ui-creation-recommendations`](client-ui-creation-recommendations/README.md) | Personalized page card body with location selection and undo | — |
| [`plugin-recommendations`](plugin-recommendations/README.md) | Explicit-need official plugin recommendations in conversations | `ctx.pluginRecommendations` |
| [`client-ui-plugin-recommendations`](client-ui-plugin-recommendations/README.md) | Official plugin card body with catalog text and enabling | — |
| [`personalized-recommendations`](personalized-recommendations/README.md) | Default-disabled bundle of personalized pages, plugin recommendations and their action cards | — |
| [`tool-session-query`](tool-session-query/README.md) | Workspace-authorized model session search, trace, and event reads | — |
| [`session-search`](session-search/README.md) | Optional experimental global session search tools | — |
| [`ralph-bundle`](ralph-bundle/README.md) | Optional repeated delegation with an isolated workflow engine | — |
+1
View File
@@ -42,6 +42,7 @@ kind: "package-group"
| [`client-ui-creation-recommendations`](client-ui-creation-recommendations/README.zh.md) | 个性化页面卡片正文、位置选择和撤销 | — |
| [`plugin-recommendations`](plugin-recommendations/README.zh.md) | 在对话中针对明确需求推荐官方插件 | `ctx.pluginRecommendations` |
| [`client-ui-plugin-recommendations`](client-ui-plugin-recommendations/README.zh.md) | 官方插件卡片正文:目录文本与启用 | — |
| [`personalized-recommendations`](personalized-recommendations/README.zh.md) | 默认禁用的个性化页面、插件推荐及其操作卡片组合 | — |
| [`tool-session-query`](tool-session-query/README.zh.md) | 按工作区授权的模型会话搜索、追踪与事件读取 | — |
| [`session-search`](session-search/README.zh.md) | 可选实验性全局会话搜索工具 | — |
| [`ralph-bundle`](ralph-bundle/README.zh.md) | 带隔离 workflow 引擎的可选重复委派 | — |
@@ -15,8 +15,8 @@
en: d152484eb41ac6b4
zh: b00dddf4c88f0a45
/deepseek-ai-dsh-action-cards/use-this-package:
en: 4e3a256d5aa6d29b
zh: b89ffa23ebb49e7e
en: e239e255a6692f95
zh: ae8e359e37e484b3
/deepseek-ai-dsh-action-cards/use-this-package/register-a-card-kind:
en: 8432c02ef18eda11
zh: 6d43a0a32edd7e30
@@ -60,8 +60,8 @@
en: 58785543e2428dba
zh: 4b082f77b3b2f482
/deepseek-ai-dsh-action-cards/known-limitations-and-deferred-work:
en: 163aa0c2a6b7e3f8
zh: 26cdcae33579114a
en: 8e3eba4e9fda82cb
zh: afaf74aad9a01533
/deepseek-ai-dsh-action-cards/known-limitations-and-deferred-work/dev-note:
en: e67f633dc6fe7773
zh: bd8a8936229e035e
+1 -2
View File
@@ -25,7 +25,7 @@ An experiment can offer one optional action below an answer, such as creating a
<a id="use-this-package"></a>
## Use this package
The [Personalized pages](../creation-recommendations/README.md) and [Plugin recommendations](../plugin-recommendations/README.md) bundles each insert this service and its [browser half](../client-ui-action-cards/README.md); enabling either bundle enables both. The service has one configuration field:
The [Personalized recommendations](../personalized-recommendations/README.md) bundle inserts this service and its [browser half](../client-ui-action-cards/README.md). The service has one configuration field:
| Field | Default | Meaning |
|---|---|---|
@@ -125,7 +125,6 @@ The notice is appended after the request's other new context and never rewrites
- Only one card is offered per turn across all kinds. A later card of any kind replaces every unstarted earlier card, so a second kind's card replaces an unstarted card of the first.
- Refusal reasons of user actions are plain strings by design: the service defines `closing`, `not-live-root`, `unknown`, `unavailable`, `access-denied` and `read-only`, each kind adds its own, and a browser body names the reasons it knows and treats others as unavailable.
- Each kind validates `details` on both sides, with its Host schema when the model proposes and before each action, and with its browser body's own schema, so the two schemas change together.
- The Personalized pages and Plugin recommendations bundles both insert the rows of this service and its browser half, and with both enabled the Loader keeps one entry per row id. Two optional bundles cannot yet share a dependency row addressably: while both are enabled, the Plugins page cannot address the two shared rows (`action-cards`, `client-ui-action-cards`), so they cannot be switched or configured individually. Use the bundle switches; `queuedMessageLimit` can then be changed only in the profile's `cordis.patch.yml`.
<a id="dev-note"></a>
### Dev Note
@@ -25,7 +25,7 @@ kind: "package-reference"
<a id="use-this-package"></a>
## 使用本包
[个性化页面](../creation-recommendations/README.zh.md)和[插件推荐](../plugin-recommendations/README.zh.md)两个 Bundle 都会插入本服务及其[浏览器端](../client-ui-action-cards/README.zh.md);启用其中任一个即同时启用两者。本服务只有一个配置字段:
[个性化推荐](../personalized-recommendations/README.zh.md) Bundle 会插入本服务及其[浏览器端](../client-ui-action-cards/README.zh.md)。本服务只有一个配置字段:
| 字段 | 默认值 | 含义 |
|---|---|---|
@@ -125,7 +125,6 @@ Latest status of action cards from user actions and background work. These are s
- 所有种类合计每轮只展示一张卡片。任何种类的新卡片都会替换此前所有尚未开始的卡片,因此第二个种类的卡片会替换第一个种类尚未开始的卡片。
- 用户操作的拒绝原因有意设计为普通字符串:服务定义 `closing`、`not-live-root`、`unknown`、`unavailable`、`access-denied` 和 `read-only`,各种类可以添加自己的原因,浏览器端正文为已知原因显示文案,其余按 unavailable 处理。
- 每个种类在两端各自校验 `details`:Host 端的 schema 在模型提议时和每次操作前校验,浏览器端正文用自己的 schema 校验,因此两个 schema 要一起修改。
- 个性化页面和插件推荐两个 Bundle 都会插入本服务及其浏览器端的行,两个都启用时 Loader 对每个行 id 只保留一个条目。平台目前不支持两个可选 Bundle 以可定位的方式共享同一依赖行:两个都启用时,插件页无法定位这两条共享行(`action-cards`、`client-ui-action-cards`),不能单独开关或配置它们。请使用 Bundle 开关;此时 `queuedMessageLimit` 只能在 profile 的 `cordis.patch.yml` 中修改。
<a id="dev-note"></a>
### 开发备注
@@ -15,8 +15,8 @@
en: d152484eb41ac6b4
zh: b00dddf4c88f0a45
/deepseek-ai-dsh-client-ui-action-cards/use-this-package:
en: 163d385e91a5df38
zh: 95bdde9e844cca51
en: 717a53d2170d253b
zh: 4e52852690601371
/deepseek-ai-dsh-client-ui-action-cards/use-this-package/register-a-card-body:
en: 9ec9f9f8f3165d3e
zh: 2d8154ec2fe0c9ab
@@ -25,7 +25,7 @@ Users see an optional action card below a completed answer: its title, a brief t
<a id="use-this-package"></a>
## Use this package
Enable the [Personalized pages](../creation-recommendations/README.md) or [Plugin recommendations](../plugin-recommendations/README.md) bundle; each inserts this package beside its [Host service](../action-cards/README.md). This browser contribution has no configuration fields.
Enable the [Personalized recommendations](../personalized-recommendations/README.md) bundle, which inserts this package beside its [Host service](../action-cards/README.md). This browser contribution has no configuration fields.
### Register a card body
@@ -25,7 +25,7 @@ kind: "package-reference"
<a id="use-this-package"></a>
## 使用本包
启用[个性化页面](../creation-recommendations/README.zh.md)或[插件推荐](../plugin-recommendations/README.zh.md) Bundle,它们都会在本包旁插入对应的 [Host 服务](../action-cards/README.zh.md)。本浏览器组件没有配置字段。
启用[个性化推荐](../personalized-recommendations/README.zh.md) Bundle,它会在本包旁插入对应的 [Host 服务](../action-cards/README.zh.md)。本浏览器组件没有配置字段。
### 注册卡片正文
@@ -15,8 +15,8 @@
en: d152484eb41ac6b4
zh: b00dddf4c88f0a45
/deepseek-ai-dsh-client-ui-creation-recommendations/use-this-package:
en: 5f3f7e9eea09ae0c
zh: 378acca8f793cf34
en: 328d7d1d81bb2830
zh: 425df912753bae83
/deepseek-ai-dsh-client-ui-creation-recommendations/use-this-package/outcomes-and-recovery:
en: 5a3df9cd58832f91
zh: 2068dca0a62394fe
@@ -25,7 +25,7 @@ Users see one creation proposal below the completed answer. Short plans appear i
<a id="use-this-package"></a>
## Use this package
Enable the [Personalized pages bundle](../creation-recommendations/README.md). This browser contribution has no configuration fields; it fills the shared [action card frame](../client-ui-action-cards/README.md) for `create_personalized_page` cards.
Enable the [Personalized recommendations bundle](../personalized-recommendations/README.md). This browser contribution has no configuration fields; it fills the shared [action card frame](../client-ui-action-cards/README.md) for `create_personalized_page` cards.
### Outcomes and recovery
@@ -25,7 +25,7 @@ kind: "package-reference"
<a id="use-this-package"></a>
## 使用本包
启用[个性化页面 Bundle](../creation-recommendations/README.zh.md)。本浏览器组件没有配置字段;它为 `create_personalized_page` 卡片填充共享的[操作卡片框架](../client-ui-action-cards/README.zh.md)。
启用[个性化推荐 Bundle](../personalized-recommendations/README.zh.md)。本浏览器组件没有配置字段;它为 `create_personalized_page` 卡片填充共享的[操作卡片框架](../client-ui-action-cards/README.zh.md)。
### 操作结果与恢复
@@ -9,17 +9,17 @@
en: 54f686f0de0dc75d
zh: 33341df7cfb4fa5c
/deepseek-ai-dsh-client-ui-plugin-recommendations/summary:
en: eaf579aa61aba6e7
zh: 8179f857e803f236
en: a4484eb034e7311a
zh: 34e47149ecf23d67
/deepseek-ai-dsh-client-ui-plugin-recommendations/table-of-contents:
en: d152484eb41ac6b4
zh: b00dddf4c88f0a45
/deepseek-ai-dsh-client-ui-plugin-recommendations/use-this-package:
en: 7a588dae45ca8bef
zh: 9ebf6d4b9af830c3
en: 10c47fd420b1f232
zh: 7094c3b465978372
/deepseek-ai-dsh-client-ui-plugin-recommendations/understand-the-implementation:
en: aa599e92c7a36c5b
zh: d95249f0fa9cbbcb
en: 1b20e5e631381ab1
zh: a3f0bbc3dc14001d
/deepseek-ai-dsh-client-ui-plugin-recommendations/further-exploration:
en: 4fd18141ccbba60b
zh: 137a74a945ac3f23
@@ -9,7 +9,7 @@ English | [中文](README.zh.md)
## Summary
Users see one plugin recommendation below the completed answer, with the plugin's current title and description in the interface language and the Agent's reason. The title, reason and description form one target that highlights on hover; clicking it opens that plugin's details in Plugins without enabling it or changing the current Session. Enable and Not now remain separate choices. Decisions and the details link remain available after reconnecting.
Users see one plugin recommendation below the completed answer, with the plugin's current title and description in the interface language. The title and description form one target that highlights on hover; clicking it opens that plugin's details in Plugins without enabling it or changing the current Session. Enable and Not now remain separate choices. Decisions and the details link remain available after reconnecting.
## Table of Contents
@@ -25,7 +25,7 @@ Users see one plugin recommendation below the completed answer, with the plugin'
<a id="use-this-package"></a>
## Use this package
Enable the [Plugin recommendations bundle](../plugin-recommendations/README.md). This browser contribution has no configuration fields; it fills the shared [action card frame](../client-ui-action-cards/README.md) for `enable_official_plugin` cards.
Enable the [Personalized recommendations bundle](../personalized-recommendations/README.md). This browser contribution has no configuration fields; it fills the shared [action card frame](../client-ui-action-cards/README.md) for `enable_official_plugin` cards.
-----
@@ -35,7 +35,7 @@ Enable the [Plugin recommendations bundle](../plugin-recommendations/README.md).
<details>
<summary>Implementation internals — click to expand</summary>
The plugin mounts its catalog-text Remote, then registers its body with the shared card frame, which places the card after its Turn and supplies the card, its recorded decision and card-bound actions. The body asks the Host for the plugin's current catalog text and selection and renders the header with the Official badge, the details target, status, and Enable and Not now through the frame's action. The details target is named View details with the plugin title, and the reason and catalog description remain its accessible description. A refused lookup shows its reason and a lost reply says the details could not be loaded; both offer Not now and Try again, which repeats the lookup, but no Enable. A recorded outcome stays as recorded even after its plugin leaves the catalog. While an action runs, only its own button reads Working, and both stay disabled. The plugin keeps returned catalog text by plugin name for its lifetime, so a revisited card renders it at once while its own lookup refreshes the selection. Until a plugin's first lookup returns, the card shows the proposed title, a placeholder description line and the disabled actions, so its layout holds. The Remote, the body registration and its dictionaries share one plugin lifetime.
The plugin mounts its catalog-text Remote, then registers its body with the shared card frame, which places the card after its Turn and supplies the card, its recorded decision and card-bound actions. The body asks the Host for the plugin's current catalog text and selection and renders the header with the Official badge, the details target, status, and Enable and Not now through the frame's action. The details target is named View details with the plugin title, and the catalog description remains its accessible description. A refused lookup shows its reason and a lost reply says the details could not be loaded; both offer Not now and Try again, which repeats the lookup, but no Enable. A recorded outcome stays as recorded even after its plugin leaves the catalog. While an action runs, only its own button reads Working, and both stay disabled. The plugin keeps returned catalog text by plugin name for its lifetime, so a revisited card renders it at once while its own lookup refreshes the selection. Until a plugin's first lookup returns, the card shows the proposed title, a placeholder description line and the disabled actions, so its layout holds. The Remote, the body registration and its dictionaries share one plugin lifetime.
Cards use the application font, a distinct title and compact body scale, and a separate action footer. The built entry supplies generated Remote descriptors to the source-tested mount lifecycle.
@@ -9,7 +9,7 @@ kind: "package-reference"
## 概述
用户在完整回答下方看到一张插件推荐卡片,显示插件当前的界面语言标题、描述和 Agent 给出的理由。标题、理由和描述是同一个点击区域,悬停时整体高亮;点击可打开插件页中的对应详情,不会启用插件或改变当前 Session。启用和暂不需要仍是独立操作。重新连接后仍能看到之前的选择并打开详情。
用户在完整回答下方看到一张插件推荐卡片,显示插件当前的界面语言标题和描述。标题和描述是同一个点击区域,悬停时整体高亮;点击可打开插件页中的对应详情,不会启用插件或改变当前 Session。启用和暂不需要仍是独立操作。重新连接后仍能看到之前的选择并打开详情。
## 目录
@@ -25,7 +25,7 @@ kind: "package-reference"
<a id="use-this-package"></a>
## 使用本包
启用[插件推荐 Bundle](../plugin-recommendations/README.zh.md)。这个浏览器端贡献没有配置项;它为 `enable_official_plugin` 卡片填充共享的[操作卡片框架](../client-ui-action-cards/README.zh.md)。
启用[个性化推荐 Bundle](../personalized-recommendations/README.zh.md)。这个浏览器端贡献没有配置项;它为 `enable_official_plugin` 卡片填充共享的[操作卡片框架](../client-ui-action-cards/README.zh.md)。
-----
@@ -35,7 +35,7 @@ kind: "package-reference"
<details>
<summary>实现细节 — 点击展开</summary>
插件先挂载读取目录文本的 Remote,再向共享的卡片框架注册正文;框架把卡片放在所在回合之后,并提供卡片、已记录的决定和绑定到卡片的操作。正文向 Host 读取插件当前的目录文本和启用状态,渲染带「官方」标记的标题栏、详情点击区域、状态,以及通过框架操作发出的启用和暂不需要。详情点击区域的无障碍名称是「查看详情」加插件标题,推荐理由和目录描述仍作为它的无障碍描述。查询被拒绝时显示原因,回复丢失时说明无法读取插件信息;两种情况都提供「暂不需要」和重新查询的「重试」,不提供启用。已记录的结果保持不变,插件之后离开目录也一样。操作进行中只有被点击的按钮显示「正在处理…」,两个按钮都禁用。插件在自身生命周期内按插件名记住读到的目录文本,再次进入会话时卡片立即显示,同时卡片自己的查询会刷新启用状态。某个插件的第一次查询返回前,卡片显示提议的标题、一行描述占位和禁用的按钮,布局不跳动。Remote、正文注册和词典共用同一个插件生命周期。
插件先挂载读取目录文本的 Remote,再向共享的卡片框架注册正文;框架把卡片放在所在回合之后,并提供卡片、已记录的决定和绑定到卡片的操作。正文向 Host 读取插件当前的目录文本和启用状态,渲染带「官方」标记的标题栏、详情点击区域、状态,以及通过框架操作发出的启用和暂不需要。详情点击区域的无障碍名称是「查看详情」加插件标题,目录描述仍作为它的无障碍描述。查询被拒绝时显示原因,回复丢失时说明无法读取插件信息;两种情况都提供「暂不需要」和重新查询的「重试」,不提供启用。已记录的结果保持不变,插件之后离开目录也一样。操作进行中只有被点击的按钮显示「正在处理…」,两个按钮都禁用。插件在自身生命周期内按插件名记住读到的目录文本,再次进入会话时卡片立即显示,同时卡片自己的查询会刷新启用状态。某个插件的第一次查询返回前,卡片显示提议的标题、一行描述占位和禁用的按钮,布局不跳动。Remote、正文注册和词典共用同一个插件生命周期。
卡片沿用应用字体,通过标题、正文和独立操作区区分信息层级。构建入口将生成的 Remote 描述传给可直接从源码测试的挂载流程。
@@ -4,10 +4,8 @@
.details { display: block; box-sizing: border-box; width: calc(100% + 16px); margin: -8px; padding: 8px; border: 0; border-radius: var(--dsw-radius-sm); background: transparent; color: inherit; font: inherit; text-align: start; cursor: pointer; transition: background-color 120ms ease; }
@media (hover: hover) { .details:hover { background: var(--dsw-alias-interactive-bg-hover); } }
.details:focus-visible { outline: none; background: var(--dsw-alias-interactive-bg-hover); box-shadow: inset 0 0 0 2px var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary)); }
.reason, .description { display: block; }
.title { display: block; font-size: 16px; font-weight: 500; line-height: 1.5; overflow-wrap: anywhere; }
.reason { margin: 8px 0; font-size: 13px; line-height: 1.7; white-space: pre-wrap; overflow-wrap: anywhere; }
.description { margin: 0; font-size: 13px; line-height: 1.7; color: var(--dsw-alias-label-secondary); overflow-wrap: anywhere; }
.description { display: block; margin: 8px 0 0; font-size: 13px; line-height: 1.7; color: var(--dsw-alias-label-secondary); overflow-wrap: anywhere; }
.placeholder { display: inline-block; width: 50%; height: 0.8em; vertical-align: middle; border-radius: var(--dsw-radius-xs); background: var(--dsw-alias-bg-skeleton); }
.footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 16px; padding-top: 16px; border-top: 0.5px solid var(--dsw-alias-border-l1); flex-wrap: wrap; }
.scope { font-size: 12px; line-height: 1.5; color: var(--dsw-alias-label-secondary); }
@@ -60,7 +60,7 @@ function statusKey(phase: string, data: CardData): RecommendationKey | undefined
}
/**
* Display one plugin card: its current catalog text, the model's reason, the user's choice and its outcome.
* Display one plugin card: its current catalog title and description, the user's choice and its outcome.
* Until the plugin's first catalog lookup returns, a placeholder line and the disabled actions hold the final layout.
* A refused or lost lookup leaves Not now and a retry of the lookup, but not Enable.
* @param props - card, state, actions and plugin-lifetime services.
@@ -81,7 +81,6 @@ export function PluginCardBody({
const [attempt, setAttempt] = useState(0)
const [pending, setPending] = useState<CardVerb>()
const [error, setError] = useState<RecommendationKey>()
const reasonId = useId()
const descriptionId = useId()
const phase = decision?.phase
useEffect(() => {
@@ -130,9 +129,8 @@ export function PluginCardBody({
<header className={css.header}><span>{t('heading')}</span><span className={css.badge}>{t('official')}</span></header>
<div className={css.body} aria-busy={loading || undefined}>
<button type="button" className={css.details} onClick={() => { openDetails(name) }}
aria-label={t('detailsFor', { title })} aria-describedby={available === undefined ? reasonId : `${reasonId} ${descriptionId}`}>
aria-label={t('detailsFor', { title })} aria-describedby={available === undefined ? undefined : descriptionId}>
<strong className={css.title}>{title}</strong>
<span id={reasonId} className={css.reason}>{proposal.brief}</span>
{(loading || available !== undefined) && <span id={descriptionId} className={css.description}>
{available === undefined ? <span className={css.placeholder} /> : resolveText(available.description)}
</span>}
@@ -53,15 +53,16 @@ it('keeps every dictionary aligned', () => {
for (const dictionary of [en, ja, es, fr, de, ru, pt]) expect(Object.keys(dictionary).sort()).toEqual(Object.keys(zh).sort())
})
it('shows the catalog text and reason as one details target with the official badge, and enables only on click', async () => {
it('shows the catalog title and description as one details target with the official badge, and enables only on click', async () => {
const value = props()
await shown(value)
expect(screen.getByText('推荐插件')).toBeTruthy()
expect(screen.getByText('官方')).toBeTruthy()
const details = screen.getByRole('button', { name: '查看详情:会话搜索' })
expect(details.textContent).toBe('会话搜索帮你找到上周讨论的方案检索过去的会话')
// The details label names the plugin; the reason and catalog description stay readable as its description.
expect(description(details)).toEqual(['帮你找到上周讨论的方案', '检索过去的会话'])
expect(details.textContent).toBe('会话搜索检索过去的会话')
// The details label names the plugin; the catalog description stays readable as its description. The model's brief is not shown.
expect(description(details)).toEqual(['检索过去的会话'])
expect(screen.queryByText(proposal.brief)).toBeNull()
expect(screen.getAllByRole('button').map(button => button.textContent)).toEqual([details.textContent, '暂不需要', '启用'])
expect(screen.getByText('启用后可在所有会话中使用')).toBeTruthy()
expect(value.act).not.toHaveBeenCalled()
@@ -141,7 +142,7 @@ it.each([
await shown(value)
expect(screen.getByRole('alert').textContent).toBe(message)
const details = screen.getByRole('button', { name: '查看详情:搜索旧会话' })
expect(description(details)).toEqual(['帮你找到上周讨论的方案'])
expect(description(details)).toBeUndefined()
expect(screen.queryByRole('button', { name: '启用' })).toBeNull()
fireEvent.click(screen.getByRole('button', { name: '暂不需要' }))
await waitFor(() => { expect(value.act).toHaveBeenCalledExactlyOnceWith('dismiss') })
@@ -169,7 +170,7 @@ it('holds the description and action lines while the first catalog lookup is pen
expect(body).not.toBeNull()
const details = screen.getByRole('button', { name: '查看详情:搜索旧会话' })
expect(within(details).getByText('搜索旧会话')).toBeTruthy()
expect(description(details)).toEqual(['帮你找到上周讨论的方案'])
expect(description(details)).toBeUndefined()
expect(container.querySelectorAll('button span > span')).toHaveLength(1)
expect(screen.getByText('启用后可在所有会话中使用')).toBeTruthy()
for (const name of ['暂不需要', '启用']) expect(screen.getByRole('button', { name }).hasAttribute('disabled')).toBe(true)
@@ -3,8 +3,8 @@
# After editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write packages/experimental/creation-recommendations/README.md
/:
en: 08688503db441fbf
zh: 855dbe0b9ce53ab9
en: dca7dd27c5f2c369
zh: 00d34e3837bed75a
/deepseek-ai-dsh-creation-recommendations:
en: f2cefc8c9ad1d38f
zh: 9d3a5dc7ac8e2329
@@ -15,10 +15,10 @@
en: d152484eb41ac6b4
zh: b00dddf4c88f0a45
/deepseek-ai-dsh-creation-recommendations/use-this-package:
en: cf57a8f8347c7aba
zh: f8a2e23006c8c09d
en: e5e313410faf1ec0
zh: 0683eb113eb52c96
/deepseek-ai-dsh-creation-recommendations/use-this-package/outcomes-and-recovery:
en: 0ab58b8291b06ba8
en: 1d96f4897b1a5a28
zh: 25ca08bc167d1e4a
/deepseek-ai-dsh-creation-recommendations/understand-the-implementation:
en: 825aa7414c0a8d90
@@ -1,6 +1,6 @@
---
description: "Create persistent removable interface plugins after an explicit user choice."
kind: "package-bundle"
kind: "package-reference"
---
# @deepseek-ai/dsh-creation-recommendations
@@ -25,7 +25,7 @@ For an explicit interface request, a clear implied viewing or editing need, or a
<a id="use-this-package"></a>
## Use this package
Open Plugins → More → Experimental plugins and enable Personalized pages. Shipped profiles leave it disabled. Enabling pins it to the main Plugins list; disabling returns it to the secondary page only. The bundle also enables the shared [action card service](../action-cards/README.md) and its browser half; that service's `queuedMessageLimit` sets how many queued next-turn messages make the card tool refuse the current turn's card. An explicit user location takes precedence; otherwise the Agent recommends a location by scope and interaction:
Open Plugins → More → Experimental plugins and enable [Personalized recommendations](../personalized-recommendations/README.md); its Personalized pages row is this package. Shipped profiles leave it disabled. Enabling pins it to the main Plugins list; disabling returns it to the secondary page only. The Personalized recommendations bundle also enables the shared [action card service](../action-cards/README.md) and its browser half; that service's `queuedMessageLimit` sets how many queued next-turn messages make the card tool refuse the current turn's card. An explicit user location takes precedence; otherwise the Agent recommends a location by scope and interaction:
| Location | Use |
|:--|:--|
@@ -47,7 +47,7 @@ For multiple independent needs, guidance selects one page proposal for the answe
The card appears after the Turn of its accepted call ends. An unstarted proposal stays available across later human messages, including follow-ups about its plan. The next proposal in the same conversation replaces it: the old card shows Replaced without creation controls, and the Host refuses its stale clicks, so one unstarted card exists per conversation. Refreshing, switching views and background notices do not change a card. Already-started work keeps its progress and retry controls. Replacement is derived from the later proposal, not a new persisted decision record. While the user has queued `queuedMessageLimit` or more messages for later turns, the card tool refuses the proposal, so no card is offered.
Creation requires a live root conversation, permission to modify the profile, and a Session sandbox mode other than read-only: the Creator inherits that mode, so a read-only Session refuses Create and leaves the card unstarted. Cancel is available during generation; retry waits for the child’s cleanup. Once installation starts, the card shows Installing and lets the accepted operation finish. Closing or leaving the conversation does not uninstall a completed plugin. Receipts survive reconnects; interrupted or uncertain runs are reconciled with the installed bundle before any card action, including Not now, so an uncertain run whose page was installed shows Installed with Undo instead of being dismissed. Failed removal preserves the existing receipt and its application outcome for retry. Unloading this recommendation bundle stops its Creator work and local follow-up. Plugin Manager owns accepted profile changes and may finish after reload; reopening checks the installed profile before retrying. Installed plugins remain. Recovery confirms installation only; it does not infer runtime activation from the profile’s enabled flag.
Creation requires a live root conversation, permission to modify the profile, and a Session sandbox mode other than read-only: the Creator inherits that mode, so a read-only Session refuses Create and leaves the card unstarted. Cancel is available during generation; retry waits for the child’s cleanup. Once installation starts, the card shows Installing and lets the accepted operation finish. Closing or leaving the conversation does not uninstall a completed plugin. Receipts survive reconnects; interrupted or uncertain runs are reconciled with the installed bundle before any card action, including Not now, so an uncertain run whose page was installed shows Installed with Undo instead of being dismissed. Failed removal preserves the existing receipt and its application outcome for retry. Unloading this plugin stops its Creator work and local follow-up. Plugin Manager owns accepted profile changes and may finish after reload; reopening checks the installed profile before retrying. Installed plugins remain. Recovery confirms installation only; it does not infer runtime activation from the profile’s enabled flag.
Undo uninstalls the plugin and keeps its files. On the removed card, Restore validates the retained profile copy again and reinstalls it without running the Creator; it needs the same live root conversation and profile permission as Create. If that copy is missing or fails validation, Restore is refused and a new proposal is needed.
@@ -1,6 +1,6 @@
---
description: "经用户明确选择后创建可持久保留、可移除的界面插件。"
kind: "package-bundle"
kind: "package-reference"
---
# @deepseek-ai/dsh-creation-recommendations
@@ -25,7 +25,7 @@ kind: "package-bundle"
<a id="use-this-package"></a>
## 使用本包
打开插件 → 更多 → 实验性插件,启用个性化页面。内置配置档案默认不启用此插件。启用后在插件一级页显示,关闭后仅保留在二级页。该 Bundle 同时启用共享的[操作卡片服务](../action-cards/README.zh.md)及其浏览器端;该服务的 `queuedMessageLimit` 规定为下一轮排队的消息达到多少条时,卡片工具拒绝本轮的卡片。用户明确指定的位置优先;否则 Agent 根据作用范围和交互方式推荐:
打开插件 → 更多 → 实验性插件,启用[个性化推荐](../personalized-recommendations/README.zh.md),其中的个性化页面行就是本包。内置配置档案默认不启用此插件。启用后在插件一级页显示,关闭后仅保留在二级页。个性化推荐 Bundle 同时启用共享的[操作卡片服务](../action-cards/README.zh.md)及其浏览器端;该服务的 `queuedMessageLimit` 规定为下一轮排队的消息达到多少条时,卡片工具拒绝本轮的卡片。用户明确指定的位置优先;否则 Agent 根据作用范围和交互方式推荐:
| 位置 | 用途 |
|:--|:--|
@@ -1,6 +1,6 @@
{
"meta": {
"title": "Personalisierte Seiten",
"description": "Planen Sie im Gespräch eine personalisierte Seite, wenn vorhandene Funktionen einen konkreten Bedarf nicht abdecken. Klicken Sie auf Erstellen, um ein eigenständiges Plugin zu erzeugen, das Sie weiter verwenden oder entfernen können."
"description": "Schlägt unter der Antwort eine Seite oder ein kleines Tool zur dauerhaften Nutzung vor; nach einem Klick auf Erstellen wird es im Hintergrund als Plugin-Seite erstellt, die Sie abbrechen, rückgängig machen und wiederherstellen können. Die Erstellung dauert einige Minuten und verbraucht viele Token."
}
}
@@ -1,6 +1,6 @@
{
"meta": {
"title": "Personalized pages",
"description": "Plan a personalized page in the conversation when existing features do not meet a specific need. Click Create to generate an independent plugin you can keep using or remove."
"description": "Proposes a page or small tool you can keep, below the answer; after you click Create it is built in the background as a plugin page that you can cancel, undo and restore. A build takes minutes and many tokens."
}
}
@@ -1,6 +1,6 @@
{
"meta": {
"title": "Páginas personalizadas",
"description": "Planifica una página personalizada en la conversación cuando las funciones existentes no cubren una necesidad concreta. Haz clic en Crear para generar un complemento independiente que puedes seguir usando o eliminar."
"description": "Propone, debajo de la respuesta, una página o una pequeña herramienta para conservar; al hacer clic en Crear, se genera en segundo plano como una página de complemento que puedes cancelar, deshacer y restaurar. La generación tarda unos minutos y consume muchos tokens."
}
}
@@ -1,6 +1,6 @@
{
"meta": {
"title": "Pages personnalisées",
"description": "Planifiez une page personnalisée dans la conversation lorsque les fonctionnalités existantes ne répondent pas à un besoin précis. Cliquez sur Créer pour générer un plugin indépendant que vous pouvez continuer à utiliser ou supprimer."
"description": "Propose sous la réponse une page ou un petit outil à conserver ; après un clic sur Créer, il est généré en arrière-plan sous forme de page de plugin que vous pouvez interrompre, annuler et restaurer. La génération prend quelques minutes et consomme beaucoup de jetons."
}
}
@@ -1,6 +1,6 @@
{
"meta": {
"title": "パーソナルページ",
"description": "既存の機能では明確な要望を満たせないとき、会話の中でパーソナルページを計画します。作成をクリックすると独立したプラグインが生成され、使い続けることも元に戻すこともできます。"
"description": "長く使えるページや小さなツールが欲しいときに、回答の下で案を提案します。「作成」をクリックするとプラグインページとしてバックグラウンドで生成され、キャンセル、元に戻す、復元ができます。生成には数分かかり、多くのトークンを消費します。"
}
}
@@ -1,6 +1,6 @@
{
"meta": {
"title": "Páginas personalizadas",
"description": "Planeje uma página personalizada na conversa quando os recursos existentes não atendem a uma necessidade específica. Clique em Criar para gerar um plug-in independente que você pode continuar usando ou remover."
"description": "Propõe, abaixo da resposta, uma página ou uma pequena ferramenta para manter; depois que você clica em Criar, ela é gerada em segundo plano como uma página de plug-in que você pode cancelar, desfazer e restaurar. A geração leva alguns minutos e consome muitos tokens."
}
}
@@ -1,6 +1,6 @@
{
"meta": {
"title": "Персональные страницы",
"description": "Спланируйте в разговоре персональную страницу, когда существующие функции не покрывают конкретную потребность. Нажмите «Создать», чтобы сгенерировать независимый плагин, который можно продолжать использовать или удалить."
"description": "Предлагает под ответом страницу или небольшой инструмент для постоянного использования; после нажатия «Создать» он создается в фоне как страница-плагин, которую можно прервать, отменить и восстановить. Создание занимает несколько минут и расходует много токенов."
}
}
@@ -1,6 +1,6 @@
{
"meta": {
"title": "个性化页面",
"description": "现有功能不能满足你的明确需求时,在对话中规划个性化页面;点击创建后生成独立插件,可持续使用或撤销。"
"description": "想要能长期使用的页面或小工具时,在回答下方提议方案;点击创建后在后台生成插件页面,可取消、撤销和恢复,生成需要几分钟并消耗较多 token。"
}
}
@@ -25,7 +25,6 @@
"types": "./lib/types/types.d.ts",
"default": "./lib/types/types.js"
},
"./cordis.patch.yml": "./cordis.patch.yml",
"./references/*.md": "./references/*.md",
"./skills/*.md": "./skills/*.md"
},
@@ -64,16 +63,10 @@
"icon.svg",
"locale/*.json",
"lib/index.js",
"cordis.patch.yml",
"references/*.md",
"skills/*.md",
"lib/types/**/*.js",
"lib/types/**/*.d.ts"
],
"dsh": {
"bundle": {
"patch": "./cordis.patch.yml"
}
},
"icon": "./icon.svg"
}
@@ -0,0 +1,37 @@
# Bilingual-pair consistency record for README.md (docs/i18n/README.md): per heading
# section, a hash of its English and Chinese blocks outside code blocks and generated regions.
# After editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write packages/experimental/personalized-recommendations/README.md
/:
en: d7cf0e812c2b84ef
zh: 959798411569393e
/deepseek-ai-dsh-personalized-recommendations:
en: 4f78733960cd89fa
zh: da27faf83f5e53bd
/deepseek-ai-dsh-personalized-recommendations/summary:
en: 5508a30d24f41f16
zh: dae436e8131b1b65
/deepseek-ai-dsh-personalized-recommendations/table-of-contents:
en: d152484eb41ac6b4
zh: ce40cab8e7534137
/deepseek-ai-dsh-personalized-recommendations/use-this-package:
en: 391782dd00ef7700
zh: 346ae3ac63482b92
/deepseek-ai-dsh-personalized-recommendations/understand-the-implementation:
en: e386724a57fffa9b
zh: 865f1db569dcafc8
/deepseek-ai-dsh-personalized-recommendations/further-exploration:
en: 0e308f273a226d6c
zh: 2b13028f9abb32e2
/deepseek-ai-dsh-personalized-recommendations/model-experience:
en: 8c3ddb0d6cbd0d6b
zh: 603f48a0df45ee7d
/deepseek-ai-dsh-personalized-recommendations/model-experience/kv-cache-effect:
en: 9ee776745fc68e18
zh: 126dcac4b16b31dd
/deepseek-ai-dsh-personalized-recommendations/known-limitations-and-deferred-work:
en: 965570522f569e46
zh: 63a608a10cdd6b80
/deepseek-ai-dsh-personalized-recommendations/known-limitations-and-deferred-work/dev-note:
en: e67f633dc6fe7773
zh: 8ec3e73528ddb1a6
@@ -0,0 +1,88 @@
---
description: "Enable personalized page proposals and built-in plugin recommendations below answers with one experimental bundle."
kind: "package-bundle"
---
# @deepseek-ai/dsh-personalized-recommendations
English | [中文](README.zh.md)
## Summary
Get an optional card below an answer for two kinds of need: a page or small tool you want to keep, and a built-in plugin that provides a capability you ask about. Nothing is built or enabled until you click Create or Enable on the card. Enable Personalized recommendations on the Web or Desktop Plugins page; shipped profiles leave it disabled. Its page lists both features and their card rows, each with its own switch.
## Table of Contents
- [Use this package](#use-this-package)
- [Understand the implementation](#understand-the-implementation)
- [Further Exploration](#further-exploration)
- [Model Experience](#model-experience)
- [Known Limitations and Deferred Work](#known-limitations-and-deferred-work)
- [Dev Note](#dev-note)
-----
<a id="use-this-package"></a>
## Use this package
Open Plugins → More → Experimental plugins and enable Personalized recommendations. Enabling pins it to the main Plugins list; disabling returns it to the secondary page only. While the bundle is on, its page lists six rows in this order, each with its own switch:
| Row | Package | Contributes |
|---|---|---|
| Action cards | [`action-cards`](../action-cards/README.md) | The card tool, card state, user actions and status notices |
| Action card display | [`client-ui-action-cards`](../client-ui-action-cards/README.md) | The card frame below answers |
| Personalized pages | [`creation-recommendations`](../creation-recommendations/README.md) | Page proposals and their background creation |
| Personalized page cards | [`client-ui-creation-recommendations`](../client-ui-creation-recommendations/README.md) | The page card body |
| Plugin recommendations | [`plugin-recommendations`](../plugin-recommendations/README.md) | Built-in plugin recommendations and enabling |
| Plugin recommendation cards | [`client-ui-plugin-recommendations`](../client-ui-plugin-recommendations/README.md) | The plugin card body |
Switch off Personalized pages or Plugin recommendations to keep only the other feature: the switched-off feature withdraws its skill and card kind, and its earlier cards accept only Not now. Both features need the Action cards row; switching it off stops both until it is on again. Without a card body row, a card shows its proposal title and brief with Not now only. The Action cards row's `queuedMessageLimit` field sets how many queued next-turn messages make the card tool refuse the current turn's card. The Plugins page has no settings page for that row, so change the field with an `id: action-cards` override in the profile's `cordis.patch.yml`.
-----
<a id="understand-the-implementation"></a>
## Understand the implementation
<details>
<summary>Maintainer details — click to expand</summary>
The static `cordis.patch.yml` inserts the six rows with their package-owned ids and no configuration. This bundle is the only layer that declares these ids, so the plugin manager addresses each row by its id and the Plugins page can switch it. Both feature plugins inject `actionCards` and register their card kinds with it; the three browser rows register the card frame and the two card bodies. `src/index.ts` exports nothing.
</details>
-----
<a id="further-exploration"></a>
## Further Exploration
[Action cards](../action-cards/README.md) · [Personalized pages](../creation-recommendations/README.md) · [Plugin recommendations](../plugin-recommendations/README.md) · [Plugin manager page](../../client/ui-plugin-manager/README.md)
-----
<a id="model-experience"></a>
## Model Experience
Indirectly, through the two features' skills, the shared `propose_action` tool and the card status notice, which the row packages document.
#### KV Cache effect
Enabling the bundle adds the two skills' catalog entries to requests; the card tool joins the declarations only after a card skill loads, as described on the [action cards](../action-cards/README.md#model-experience) page.
## Known Limitations and Deferred Work
<a id="known-limitations-and-deferred-work"></a>
- The bundle page lists every row the patch inserts, including the four card rows that only support the two features; it cannot mark a row as supporting or hide it.
- Each feature's own limitations are on its page: [Personalized pages](../creation-recommendations/README.md#known-limitations-and-deferred-work) and [Plugin recommendations](../plugin-recommendations/README.md#known-limitations-and-deferred-work).
-----
<a id="dev-note"></a>
### Dev Note
<details>
<summary>Working context for maintainers — click to expand</summary>
None.
</details>
@@ -0,0 +1,88 @@
---
description: "用一个实验性 Bundle 在回答下方启用个性化页面提议和内置插件推荐。"
kind: "package-bundle"
---
# @deepseek-ai/dsh-personalized-recommendations
[English](README.md) | 中文
## 概述
针对两类需求在回答下方提供一张可选卡片:想要长期使用的页面或小工具,以及能提供你所问能力的内置插件。在卡片上点击创建或启用之前,不会生成或开启任何内容。在 Web 或 Desktop 的插件页面启用个性化推荐;发布的 profile 默认禁用它。它的页面列出两项功能及其卡片行,每行都有自己的开关。
## 目录
- [使用本包](#use-this-package)
- [了解实现](#understand-the-implementation)
- [延伸阅读](#further-exploration)
- [模型体验](#model-experience)
- [已知限制与后续工作](#known-limitations-and-deferred-work)
- [开发备注](#dev-note)
-----
<a id="use-this-package"></a>
## 使用本包
打开插件 → 更多 → 实验性插件,启用个性化推荐。启用后它固定显示在插件主列表;关闭后只回到二级页。Bundle 开启期间,它的页面按以下顺序列出六行,每行都有自己的开关:
| 行 | 包 | 提供 |
|---|---|---|
| 操作卡片 | [`action-cards`](../action-cards/README.zh.md) | 卡片工具、卡片状态、用户操作和状态通知 |
| 操作卡片显示 | [`client-ui-action-cards`](../client-ui-action-cards/README.zh.md) | 回答下方的卡片框架 |
| 个性化页面 | [`creation-recommendations`](../creation-recommendations/README.zh.md) | 页面提议及其后台创建 |
| 个性化页面卡片 | [`client-ui-creation-recommendations`](../client-ui-creation-recommendations/README.zh.md) | 页面卡片正文 |
| 插件推荐 | [`plugin-recommendations`](../plugin-recommendations/README.zh.md) | 内置插件推荐和启用 |
| 插件推荐卡片 | [`client-ui-plugin-recommendations`](../client-ui-plugin-recommendations/README.zh.md) | 插件卡片正文 |
关闭个性化页面或插件推荐即可只保留另一项功能:被关闭的功能撤下它的 Skill 和卡片种类,它之前的卡片只接受“暂不需要”。两项功能都需要操作卡片行;关闭它后两项功能都停止,直到重新开启。缺少卡片正文行时,卡片只显示提案标题、说明和“暂不需要”。操作卡片行的 `queuedMessageLimit` 字段规定排队等待下一轮的消息达到多少条时,卡片工具拒绝本轮的卡片。插件页面没有为该行提供设置页,请在 profile 的 `cordis.patch.yml` 中用 `id: action-cards` 覆盖项修改该字段。
-----
<a id="understand-the-implementation"></a>
## 了解实现
<details>
<summary>维护者细节 — 点击展开</summary>
静态 `cordis.patch.yml` 以各包自有的 id 插入这六行,不带配置。只有本 Bundle 声明这些 id,因此插件管理器按 id 定位每一行,插件页面可以开关它。两个功能插件都注入 `actionCards` 并向它注册卡片种类;三个浏览器端行注册卡片框架和两种卡片正文。`src/index.ts` 不导出任何内容。
</details>
-----
<a id="further-exploration"></a>
## 延伸阅读
[操作卡片](../action-cards/README.zh.md) · [个性化页面](../creation-recommendations/README.zh.md) · [插件推荐](../plugin-recommendations/README.zh.md) · [插件管理页面](../../client/ui-plugin-manager/README.zh.md)
-----
<a id="model-experience"></a>
## 模型体验
间接影响来自两项功能的 Skill、共享的 `propose_action` 工具和卡片状态通知,由各行所在的包说明。
#### KV Cache 效果
启用本 Bundle 会在请求中加入两个 Skill 的目录条目;卡片工具只在加载卡片 Skill 后才加入声明,见[操作卡片](../action-cards/README.zh.md#model-experience)页面。
## 已知限制与后续工作
<a id="known-limitations-and-deferred-work"></a>
- Bundle 页面列出补丁插入的每一行,包括只为两项功能提供支持的四个卡片行;页面不能把某行标为辅助行,也不能隐藏它。
- 两项功能各自的限制见其页面:[个性化页面](../creation-recommendations/README.zh.md#known-limitations-and-deferred-work)和[插件推荐](../plugin-recommendations/README.zh.md#known-limitations-and-deferred-work)。
-----
<a id="dev-note"></a>
### 开发备注
<details>
<summary>维护者工作上下文 — 点击展开</summary>
无。
</details>
@@ -7,3 +7,7 @@
name: '@deepseek-ai/dsh-creation-recommendations'
- id: client-ui-creation-recommendations
name: '@deepseek-ai/dsh-client-ui-creation-recommendations'
- id: plugin-recommendations
name: '@deepseek-ai/dsh-plugin-recommendations'
- id: client-ui-plugin-recommendations
name: '@deepseek-ai/dsh-client-ui-plugin-recommendations'
@@ -0,0 +1 @@
![Personalized recommendations feature preview](preview.svg)
@@ -0,0 +1 @@
![个性化推荐功能预览](preview.zh.svg)
@@ -0,0 +1,36 @@
<svg xmlns="http://www.w3.org/2000/svg" width="640" height="300" viewBox="0 0 640 300" fill="none">
<rect width="640" height="300" fill="#F5F6FC"/>
<rect x="68.505" y="32.066" width="239.495" height="32.781" rx="15.61" fill="#EDF3FE"/>
<path d="M81.889 44.785L81.889 52.587L82.927 52.587L82.927 44.785ZM93.155 52.587L94.958 46.937L93.996 46.937L92.729 51.559L92.707 51.559L91.527 46.937L90.511 46.937L89.374 51.559L89.352 51.559L88.074 46.937L87.047 46.937L88.861 52.587L89.866 52.587L91.002 48.096L91.024 48.096L92.171 52.587ZM100.847 52.565Q100.607 52.707 100.181 52.707Q99.82 52.707 99.607 52.505Q99.394 52.302 99.394 51.844Q99.012 52.302 98.504 52.505Q97.996 52.707 97.405 52.707Q97.023 52.707 96.679 52.619Q96.335 52.532 96.083 52.346Q95.832 52.16 95.684 51.86Q95.537 51.559 95.537 51.133Q95.537 50.653 95.701 50.347Q95.865 50.041 96.132 49.849Q96.4 49.658 96.744 49.56Q97.089 49.461 97.449 49.396Q97.832 49.319 98.176 49.281Q98.52 49.243 98.782 49.172Q99.045 49.101 99.198 48.964Q99.35 48.828 99.35 48.565Q99.35 48.259 99.236 48.074Q99.121 47.888 98.941 47.79Q98.76 47.691 98.536 47.659Q98.312 47.626 98.094 47.626Q97.504 47.626 97.11 47.85Q96.717 48.074 96.684 48.697L95.756 48.697Q95.777 48.172 95.974 47.811Q96.171 47.451 96.499 47.227Q96.826 47.003 97.247 46.905Q97.668 46.806 98.149 46.806Q98.531 46.806 98.908 46.861Q99.285 46.915 99.591 47.085Q99.897 47.254 100.083 47.56Q100.268 47.866 100.268 48.358L100.268 51.264Q100.268 51.592 100.307 51.745Q100.345 51.898 100.563 51.898Q100.684 51.898 100.847 51.844ZM99.34 49.669Q99.165 49.8 98.881 49.86Q98.597 49.92 98.285 49.959Q97.974 49.997 97.657 50.046Q97.34 50.095 97.089 50.205Q96.837 50.314 96.679 50.516Q96.52 50.718 96.52 51.068Q96.52 51.297 96.613 51.456Q96.706 51.614 96.854 51.712Q97.001 51.811 97.198 51.854Q97.395 51.898 97.613 51.898Q98.072 51.898 98.4 51.773Q98.728 51.647 98.935 51.456Q99.143 51.264 99.241 51.04Q99.34 50.816 99.34 50.62ZM101.711 46.937L101.711 52.587L102.64 52.587L102.64 49.396Q102.64 49.013 102.743 48.691Q102.847 48.369 103.055 48.128Q103.262 47.888 103.574 47.757Q103.885 47.626 104.311 47.626Q104.847 47.626 105.153 47.932Q105.459 48.238 105.459 48.762L105.459 52.587L106.387 52.587L106.387 48.871Q106.387 48.412 106.295 48.035Q106.202 47.659 105.972 47.385Q105.743 47.112 105.371 46.959Q105 46.806 104.442 46.806Q103.186 46.806 102.607 47.833L102.585 47.833L102.585 46.937ZM109.076 46.937L109.076 45.244L108.147 45.244L108.147 46.937L107.185 46.937L107.185 47.757L108.147 47.757L108.147 51.352Q108.147 51.745 108.223 51.986Q108.3 52.226 108.458 52.357Q108.617 52.488 108.873 52.537Q109.13 52.587 109.491 52.587L110.201 52.587L110.201 51.767L109.775 51.767Q109.556 51.767 109.42 51.751Q109.283 51.734 109.207 51.68Q109.13 51.625 109.103 51.527Q109.076 51.428 109.076 51.264L109.076 47.757L110.201 47.757L110.201 46.937ZM119.27 52.565Q119.03 52.707 118.604 52.707Q118.243 52.707 118.03 52.505Q117.817 52.302 117.817 51.844Q117.435 52.302 116.927 52.505Q116.418 52.707 115.828 52.707Q115.446 52.707 115.102 52.619Q114.758 52.532 114.506 52.346Q114.255 52.16 114.107 51.86Q113.96 51.559 113.96 51.133Q113.96 50.653 114.124 50.347Q114.288 50.041 114.555 49.849Q114.823 49.658 115.167 49.56Q115.512 49.461 115.872 49.396Q116.255 49.319 116.599 49.281Q116.943 49.243 117.205 49.172Q117.467 49.101 117.62 48.964Q117.773 48.828 117.773 48.565Q117.773 48.259 117.659 48.074Q117.544 47.888 117.364 47.79Q117.183 47.691 116.959 47.659Q116.735 47.626 116.517 47.626Q115.927 47.626 115.533 47.85Q115.14 48.074 115.107 48.697L114.178 48.697Q114.2 48.172 114.397 47.811Q114.594 47.451 114.921 47.227Q115.249 47.003 115.67 46.905Q116.091 46.806 116.571 46.806Q116.954 46.806 117.331 46.861Q117.708 46.915 118.014 47.085Q118.32 47.254 118.506 47.56Q118.691 47.866 118.691 48.358L118.691 51.264Q118.691 51.592 118.73 51.745Q118.768 51.898 118.986 51.898Q119.107 51.898 119.27 51.844ZM117.762 49.669Q117.588 49.8 117.304 49.86Q117.019 49.92 116.708 49.959Q116.397 49.997 116.08 50.046Q115.763 50.095 115.512 50.205Q115.26 50.314 115.102 50.516Q114.943 50.718 114.943 51.068Q114.943 51.297 115.036 51.456Q115.129 51.614 115.277 51.712Q115.424 51.811 115.621 51.854Q115.817 51.898 116.036 51.898Q116.495 51.898 116.823 51.773Q117.151 51.647 117.358 51.456Q117.566 51.264 117.664 51.04Q117.762 50.816 117.762 50.62ZM127.007 48.751L127.968 48.751Q127.914 48.249 127.706 47.883Q127.498 47.516 127.176 47.276Q126.854 47.036 126.433 46.921Q126.012 46.806 125.532 46.806Q124.865 46.806 124.362 47.041Q123.86 47.276 123.526 47.686Q123.193 48.096 123.029 48.647Q122.865 49.199 122.865 49.833Q122.865 50.467 123.035 50.997Q123.204 51.527 123.537 51.909Q123.871 52.292 124.368 52.499Q124.865 52.707 125.51 52.707Q126.592 52.707 127.22 52.139Q127.848 51.57 128.001 50.521L127.05 50.521Q126.963 51.177 126.575 51.538Q126.187 51.898 125.499 51.898Q125.062 51.898 124.745 51.723Q124.428 51.549 124.231 51.259Q124.035 50.969 123.942 50.598Q123.849 50.226 123.849 49.833Q123.849 49.407 123.936 49.008Q124.024 48.609 124.226 48.303Q124.428 47.997 124.767 47.811Q125.105 47.626 125.608 47.626Q126.198 47.626 126.548 47.921Q126.897 48.216 127.007 48.751ZM129.717 49.767Q129.717 49.254 129.853 48.855Q129.99 48.456 130.23 48.183Q130.471 47.91 130.793 47.768Q131.115 47.626 131.47Line truncated
<rect x="32" y="77.335" width="276" height="179.749" rx="12.488" fill="#FFFFFF"/>
<rect x="32" y="77.335" width="276" height="179.749" rx="12.488" stroke="#000000" stroke-opacity="0.1" stroke-width="0.5"/>
<path d="M49.23 97.684L49.23 95.23L50.972 95.23Q51.731 95.23 52.082 95.544Q52.433 95.858 52.433 96.457Q52.433 97.056 52.082 97.375Q51.731 97.693 50.972 97.684ZM48.341 94.481L48.341 101.168L49.23 101.168L49.23 98.433L51.272 98.433Q52.284 98.443 52.803 97.918Q53.323 97.394 53.323 96.457Q53.323 95.52 52.803 95.001Q52.284 94.481 51.272 94.481ZM57.641 98.283L54.859 98.283Q54.878 98.002 54.981 97.754Q55.084 97.506 55.262 97.319Q55.44 97.131 55.688 97.024Q55.936 96.916 56.245 96.916Q56.545 96.916 56.793 97.024Q57.042 97.131 57.224 97.314Q57.407 97.497 57.515 97.75Q57.622 98.002 57.641 98.283ZM58.409 99.632L57.622 99.632Q57.519 100.11 57.196 100.344Q56.873 100.578 56.367 100.578Q55.974 100.578 55.683 100.447Q55.393 100.316 55.206 100.096Q55.019 99.876 54.934 99.59Q54.85 99.304 54.859 98.986L58.484 98.986Q58.503 98.546 58.404 98.059Q58.306 97.572 58.048 97.159Q57.791 96.747 57.365 96.48Q56.939 96.214 56.292 96.214Q55.796 96.214 55.379 96.401Q54.962 96.588 54.658 96.925Q54.354 97.263 54.185 97.721Q54.016 98.18 54.016 98.733Q54.035 99.286 54.18 99.754Q54.325 100.222 54.616 100.559Q54.906 100.897 55.332 101.084Q55.758 101.271 56.339 101.271Q57.163 101.271 57.707 100.859Q58.25 100.447 58.409 99.632ZM59.28 96.326L59.28 101.168L60.076 101.168L60.076 99.014Q60.076 98.546 60.17 98.185Q60.263 97.824 60.47 97.572Q60.676 97.319 61.013 97.188Q61.35 97.056 61.828 97.056L61.828 96.214Q61.181 96.195 60.76 96.476Q60.338 96.757 60.048 97.347L60.029 97.347L60.029 96.326ZM62.914 99.641L62.118 99.641Q62.137 100.091 62.305 100.405Q62.474 100.719 62.755 100.911Q63.036 101.103 63.401 101.187Q63.766 101.271 64.169 101.271Q64.534 101.271 64.904 101.201Q65.274 101.131 65.569 100.953Q65.864 100.775 66.047 100.484Q66.23 100.194 66.23 99.754Q66.23 99.407 66.094 99.173Q65.958 98.939 65.738 98.784Q65.518 98.63 65.232 98.536Q64.946 98.443 64.647 98.377Q64.366 98.312 64.085 98.251Q63.804 98.19 63.579 98.101Q63.354 98.012 63.209 97.876Q63.064 97.74 63.064 97.534Q63.064 97.347 63.158 97.23Q63.251 97.113 63.401 97.042Q63.551 96.972 63.734 96.944Q63.916 96.916 64.094 96.916Q64.291 96.916 64.483 96.958Q64.675 97 64.834 97.094Q64.993 97.188 65.096 97.342Q65.199 97.497 65.218 97.731L66.014 97.731Q65.986 97.291 65.827 96.996Q65.668 96.701 65.401 96.527Q65.134 96.354 64.787 96.284Q64.441 96.214 64.029 96.214Q63.71 96.214 63.387 96.293Q63.064 96.373 62.806 96.537Q62.549 96.701 62.385 96.963Q62.221 97.225 62.221 97.59Q62.221 98.059 62.455 98.321Q62.689 98.583 63.04 98.728Q63.392 98.873 63.804 98.953Q64.216 99.033 64.567 99.131Q64.918 99.229 65.153 99.389Q65.387 99.548 65.387 99.857Q65.387 100.082 65.274 100.227Q65.162 100.372 64.989 100.447Q64.815 100.522 64.609 100.55Q64.403 100.578 64.216 100.578Q63.972 100.578 63.743 100.531Q63.513 100.484 63.331 100.377Q63.148 100.269 63.036 100.086Q62.923 99.904 62.914 99.641ZM67.691 98.752Q67.691 98.312 67.808 97.97Q67.925 97.628 68.131 97.394Q68.337 97.159 68.613 97.038Q68.89 96.916 69.199 96.916Q69.508 96.916 69.784 97.038Q70.06 97.159 70.266 97.394Q70.472 97.628 70.589 97.97Q70.707 98.312 70.707 98.752Q70.707 99.192 70.589 99.534Q70.472 99.876 70.266 100.105Q70.06 100.335 69.784 100.456Q69.508 100.578 69.199 100.578Q68.89 100.578 68.613 100.456Q68.337 100.335 68.131 100.105Q67.925 99.876 67.808 99.534Q67.691 99.192 67.691 98.752ZM66.848 98.752Q66.848 99.286 66.998 99.745Q67.147 100.203 67.447 100.545Q67.747 100.887 68.187 101.079Q68.627 101.271 69.199 101.271Q69.779 101.271 70.215 101.079Q70.65 100.887 70.95 100.545Q71.25 100.203 71.4 99.745Q71.549 99.286 71.549 98.752Q71.549 98.218 71.4 97.754Q71.25 97.291 70.95 96.949Q70.65 96.607 70.215 96.41Q69.779 96.214 69.199 96.214Q68.627 96.214 68.187 96.41Q67.747 96.607 67.447 96.949Q67.147 97.291 66.998 97.754Q66.848 98.218 66.848 98.752ZM72.486 96.326L72.486 101.168L73.282 101.168L73.282 98.433Q73.282 98.105 73.371 97.829Q73.46 97.553 73.638 97.347Q73.816 97.141 74.083 97.028Q74.35 96.916 74.715 96.916Q75.174 96.916 75.436 97.178Q75.699 97.44 75.699 97.89L75.699 101.168L76.495 101.168L76.495 97.984Q76.495 97.59 76.415 97.267Q76.336 96.944 76.139 96.71Q75.942 96.476 75.624 96.345Q75.305 96.214 74.828 96.214Q73.751 96.214 73.254 97.094L73.235 97.094L73.235 96.326ZM81.983 101.149Q81.777 101.271 81.412 101.271Q81.103 101.271 80.92 101.098Q80.738 100.925 80.738 100.531Q80.41 100.925 79.974 101.098Q79.539 101.271 79.033 101.271Q78.705 101.271 78.41 101.196Q78.115 101.121 77.9 100.962Q77.684 100.803 77.558 100.545Q77.431 100.288 77.431 99.922Q77.431 99.51 77.572 99.248Q77.712 98.986 77.942 98.822Q78.171 98.658 78.466 98.574Q78.761 98.489 79.07 98.433Q79.398 98.368 79.693 98.335Q79.988 98.302 80.213 98.241Q80.438 98.18 80.569 98.063Q80.7 97.946 80.7 97.721Q80.7 97.459 80.602 97.3Q80.503 97.141 80.349 97.056Q80.194 96.972 80.002 96.944Q79.81 96.916 79.623 96.916Q79.117 96.916 78.78 97.108Q78.443 97.3 78.415 97.834L77.619 97.834Q77.637 97.384 77.806 97.075Q77.975 96.766 78.256 96.574Q78.537 96.382 78.897 96.298Q79.258 96.214 79.67 96.214Q79.998 96.214 80.321 96.26Q80.644 96.307 80Line truncated
<g transform="translate(138.223 92.165) scale(0.683)" fill="none" stroke="#61666B" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><path d="M6.87 2.6a1.33 1.33 0 0 1 2.26 0l5.34 9.33A1.33 1.33 0 0 1 13.33 14H2.67a1.33 1.33 0 0 1-1.14-2.07Z"/><path d="M8 6v3m0 2.33h.01"/></g>
<path d="M54.578 125.925Q54.478 125.538 54.304 125.214Q54.129 124.889 53.854 124.652Q53.579 124.414 53.211 124.283Q52.842 124.152 52.355 124.152Q51.644 124.152 51.125 124.439Q50.607 124.727 50.282 125.207Q49.958 125.688 49.802 126.3Q49.646 126.912 49.646 127.549Q49.646 128.186 49.802 128.798Q49.958 129.41 50.282 129.89Q50.607 130.371 51.125 130.658Q51.644 130.946 52.355 130.946Q52.88 130.946 53.28 130.764Q53.679 130.583 53.966 130.265Q54.254 129.947 54.416 129.522Q54.578 129.097 54.628 128.61L56.152 128.61Q56.102 129.41 55.808 130.071Q55.515 130.733 55.015 131.214Q54.516 131.695 53.842 131.957Q53.167 132.219 52.355 132.219Q51.356 132.219 50.563 131.851Q49.77 131.483 49.221 130.846Q48.671 130.209 48.378 129.36Q48.085 128.51 48.085 127.549Q48.085 126.6 48.378 125.751Q48.671 124.901 49.221 124.264Q49.77 123.628 50.563 123.253Q51.356 122.878 52.355 122.878Q53.105 122.878 53.767 123.084Q54.428 123.29 54.934 123.684Q55.44 124.077 55.752 124.639Q56.064 125.201 56.139 125.925ZM60.335 132.182Q59.561 132.182 58.955 131.926Q58.35 131.67 57.931 131.22Q57.513 130.771 57.294 130.146Q57.076 129.522 57.076 128.773Q57.076 128.036 57.294 127.411Q57.513 126.787 57.931 126.337Q58.35 125.888 58.955 125.632Q59.561 125.376 60.335 125.376Q61.11 125.376 61.715 125.632Q62.321 125.888 62.739 126.337Q63.158 126.787 63.376 127.411Q63.595 128.036 63.595 128.773Q63.595 129.522 63.376 130.146Q63.158 130.771 62.739 131.22Q62.321 131.67 61.715 131.926Q61.11 132.182 60.335 132.182ZM60.335 131.058Q60.81 131.058 61.159 130.858Q61.509 130.658 61.734 130.334Q61.959 130.009 62.065 129.603Q62.171 129.197 62.171 128.773Q62.171 128.361 62.065 127.948Q61.959 127.536 61.734 127.218Q61.509 126.899 61.159 126.7Q60.81 126.5 60.335 126.5Q59.861 126.5 59.511 126.7Q59.161 126.899 58.937 127.218Q58.712 127.536 58.606 127.948Q58.5 128.361 58.5 128.773Q58.5 129.197 58.606 129.603Q58.712 130.009 58.937 130.334Q59.161 130.658 59.511 130.858Q59.861 131.058 60.335 131.058ZM70.451 132.007L69.052 132.007L69.052 131.108L69.027 131.108Q68.765 131.595 68.246 131.888Q67.728 132.182 67.191 132.182Q65.917 132.182 65.349 131.551Q64.781 130.921 64.781 129.647L64.781 125.551L66.205 125.551L66.205 129.509Q66.205 130.359 66.529 130.708Q66.854 131.058 67.441 131.058Q67.891 131.058 68.19 130.921Q68.49 130.783 68.677 130.552Q68.865 130.321 68.946 129.996Q69.027 129.672 69.027 129.297L69.027 125.551L70.451 125.551ZM71.949 125.551L73.298 125.551L73.298 126.5L73.323 126.525Q73.647 125.988 74.172 125.682Q74.696 125.376 75.333 125.376Q76.395 125.376 77.007 125.925Q77.619 126.475 77.619 127.574L77.619 132.007L76.195 132.007L76.195 127.948Q76.17 127.187 75.87 126.843Q75.571 126.5 74.934 126.5Q74.572 126.5 74.284 126.631Q73.997 126.762 73.797 126.993Q73.598 127.224 73.485 127.536Q73.373 127.849 73.373 128.198L73.373 132.007L71.949 132.007ZM78.468 125.551L79.542 125.551L79.542 123.615L80.965 123.615L80.965 125.551L82.252 125.551L82.252 126.612L80.965 126.612L80.965 130.059Q80.965 130.284 80.984 130.446Q81.003 130.608 81.072 130.721Q81.14 130.833 81.278 130.889Q81.415 130.946 81.652 130.946Q81.802 130.946 81.952 130.939Q82.102 130.933 82.252 130.896L82.252 131.995Q82.014 132.02 81.79 132.044Q81.565 132.069 81.328 132.069Q80.766 132.069 80.422 131.963Q80.079 131.857 79.885 131.651Q79.692 131.445 79.623 131.133Q79.554 130.821 79.542 130.421L79.542 126.612L78.468 126.612ZM87.709 128.211Q87.684 127.874 87.565 127.561Q87.447 127.249 87.241 127.018Q87.035 126.787 86.741 126.643Q86.448 126.5 86.086 126.5Q85.711 126.5 85.405 126.631Q85.099 126.762 84.88 126.993Q84.662 127.224 84.531 127.536Q84.4 127.849 84.387 128.211ZM84.387 129.147Q84.387 129.522 84.493 129.872Q84.599 130.221 84.812 130.483Q85.024 130.746 85.349 130.902Q85.673 131.058 86.123 131.058Q86.747 131.058 87.128 130.789Q87.509 130.521 87.696 129.984L89.045 129.984Q88.933 130.508 88.658 130.921Q88.383 131.333 87.996 131.614Q87.609 131.895 87.128 132.038Q86.647 132.182 86.123 132.182Q85.361 132.182 84.774 131.932Q84.187 131.682 83.781 131.233Q83.376 130.783 83.17 130.159Q82.964 129.534 82.964 128.785Q82.964 128.098 83.182 127.48Q83.401 126.862 83.806 126.394Q84.212 125.925 84.787 125.651Q85.361 125.376 86.086 125.376Q86.847 125.376 87.453 125.694Q88.059 126.013 88.458 126.537Q88.858 127.062 89.039 127.742Q89.22 128.423 89.133 129.147ZM90.219 125.551L91.555 125.551L91.555 126.8L91.58 126.8Q91.643 126.537 91.824 126.288Q92.005 126.038 92.261 125.832Q92.517 125.626 92.829 125.501Q93.141 125.376 93.466 125.376Q93.716 125.376 93.809 125.388Q93.903 125.401 94.003 125.413L94.003 126.787Q93.853 126.762 93.697 126.743Q93.541 126.725 93.391 126.725Q93.029 126.725 92.71 126.868Q92.392 127.012 92.155 127.293Q91.917 127.574 91.78 127.986Q91.643 128.398 91.643 128.935L91.643 132.007L90.219 132.007Z" fill="#0F1115"/>
<path d="M52.592 150.233L53.505 150.233Q53.485 149.634 53.277 149.203Q53.069 148.772 52.709 148.487Q52.348 148.203 51.872 148.071Q51.395 147.94 50.837 147.94Q50.339 147.94 49.868 148.066Q49.396 148.193 49.025 148.452Q48.655 148.711 48.432 149.111Q48.209 149.512 48.209 150.06Q48.209 150.557 48.407 150.887Q48.604 151.217 48.934 151.425Q49.264 151.633 49.68 151.76Q50.096 151.887 50.527 151.983Q50.958 152.079 51.374 152.171Q51.79 152.262 52.12 152.409Q52.45 152.556 52.648 152.79Q52.846 153.023 52.846 153.398Q52.846 153.794 52.683 154.048Q52.521 154.301 52.257 154.449Q51.993 154.596 51.664 154.657Q51.334 154.717 51.009 154.717Q50.603 154.717 50.218 154.616Q49.832 154.514 49.543 154.301Q49.254 154.088 49.076 153.759Q48.899 153.429 48.899 152.972L47.985 152.972Q47.985 153.632 48.224 154.114Q48.462 154.596 48.873 154.905Q49.284 155.215 49.827 155.367Q50.37 155.519 50.979 155.519Q51.476 155.519 51.978 155.402Q52.48 155.286 52.886 155.027Q53.292 154.768 53.551 154.357Q53.81 153.946 53.81 153.368Q53.81 152.83 53.612 152.475Q53.414 152.12 53.084 151.887Q52.754 151.653 52.338 151.516Q51.922 151.379 51.491 151.278Q51.06 151.176 50.644 151.09Q50.228 151.004 49.898 150.872Q49.568 150.74 49.37 150.532Q49.173 150.324 49.173 149.989Q49.173 149.634 49.31 149.396Q49.447 149.157 49.675 149.015Q49.903 148.873 50.197 148.812Q50.492 148.751 50.796 148.751Q51.547 148.751 52.029 149.101Q52.511 149.451 52.592 150.233ZM54.834 148.112L54.834 155.357L55.697 155.357L55.697 152.394Q55.697 152.039 55.793 151.739Q55.89 151.44 56.082 151.217Q56.275 150.994 56.564 150.872Q56.853 150.75 57.249 150.75Q57.746 150.75 58.03 151.034Q58.315 151.318 58.315 151.805L58.315 155.357L59.177 155.357L59.177 151.907Q59.177 151.481 59.091 151.131Q59.005 150.781 58.791 150.527Q58.578 150.273 58.233 150.131Q57.888 149.989 57.371 149.989Q57.138 149.989 56.889 150.04Q56.64 150.091 56.412 150.197Q56.184 150.304 56.001 150.471Q55.819 150.639 55.717 150.882L55.697 150.882L55.697 148.112ZM61.105 152.739Q61.105 152.262 61.232 151.892Q61.359 151.521 61.582 151.268Q61.805 151.014 62.104 150.882Q62.404 150.75 62.738 150.75Q63.073 150.75 63.373 150.882Q63.672 151.014 63.895 151.268Q64.118 151.521 64.245 151.892Q64.372 152.262 64.372 152.739Q64.372 153.216 64.245 153.586Q64.118 153.956 63.895 154.205Q63.672 154.454 63.373 154.586Q63.073 154.717 62.738 154.717Q62.404 154.717 62.104 154.586Q61.805 154.454 61.582 154.205Q61.359 153.956 61.232 153.586Q61.105 153.216 61.105 152.739ZM60.192 152.739Q60.192 153.317 60.354 153.814Q60.516 154.312 60.841 154.682Q61.166 155.052 61.643 155.26Q62.119 155.468 62.738 155.468Q63.368 155.468 63.839 155.26Q64.311 155.052 64.636 154.682Q64.961 154.312 65.123 153.814Q65.285 153.317 65.285 152.739Q65.285 152.16 65.123 151.658Q64.961 151.156 64.636 150.786Q64.311 150.415 63.839 150.202Q63.368 149.989 62.738 149.989Q62.119 149.989 61.643 150.202Q61.166 150.415 60.841 150.786Q60.516 151.156 60.354 151.658Q60.192 152.16 60.192 152.739ZM71.495 155.357L73.169 150.111L72.276 150.111L71.099 154.403L71.079 154.403L69.983 150.111L69.039 150.111L67.984 154.403L67.964 154.403L66.777 150.111L65.823 150.111L67.507 155.357L68.441 155.357L69.496 151.186L69.516 151.186L70.582 155.357ZM74.519 153.703L73.656 153.703Q73.676 154.19 73.859 154.53Q74.042 154.87 74.346 155.078Q74.65 155.286 75.046 155.377Q75.442 155.468 75.878 155.468Q76.274 155.468 76.675 155.392Q77.075 155.316 77.395 155.123Q77.715 154.93 77.913 154.616Q78.11 154.301 78.11 153.825Q78.11 153.449 77.963 153.195Q77.816 152.942 77.578 152.774Q77.339 152.607 77.03 152.505Q76.72 152.404 76.396 152.333Q76.091 152.262 75.787 152.196Q75.482 152.13 75.239 152.034Q74.995 151.937 74.838 151.79Q74.681 151.643 74.681 151.42Q74.681 151.217 74.782 151.09Q74.884 150.963 75.046 150.887Q75.208 150.811 75.406 150.781Q75.604 150.75 75.797 150.75Q76.01 150.75 76.218 150.796Q76.426 150.841 76.599 150.943Q76.771 151.044 76.883 151.212Q76.994 151.379 77.015 151.633L77.877 151.633Q77.847 151.156 77.674 150.836Q77.502 150.517 77.212 150.329Q76.923 150.141 76.548 150.065Q76.172 149.989 75.726 149.989Q75.381 149.989 75.031 150.075Q74.681 150.162 74.402 150.339Q74.123 150.517 73.945 150.801Q73.768 151.085 73.768 151.481Q73.768 151.988 74.021 152.272Q74.275 152.556 74.655 152.713Q75.036 152.871 75.482 152.957Q75.929 153.043 76.309 153.15Q76.69 153.256 76.944 153.429Q77.197 153.601 77.197 153.936Q77.197 154.18 77.075 154.337Q76.954 154.494 76.766 154.575Q76.578 154.657 76.355 154.687Q76.132 154.717 75.929 154.717Q75.665 154.717 75.416 154.667Q75.168 154.616 74.97 154.499Q74.772 154.383 74.65 154.185Q74.529 153.987 74.519 153.703ZM86.532 155.336Q86.309 155.468 85.913 155.468Q85.578 155.468 85.38 155.281Q85.182 155.093 85.182 154.667Q84.827 155.093 84.356 155.281Q83.884 155.468 83.336 155.468Q82.981 155.468 82.661 155.387Q82.341 155.306 82.108 155.133Q81.875 154.961 81.738 154.682Q81.601 154.403 81.601 154.007Q81.601 153.561 81.753 153.277Q81.905 152.993 82.154 152.815Q82.402 152.637 82.722 152.546Q83.042 152.455 83.376 152.394Q83.7Line truncated
<path d="M50.319 173.306Q50.167 173.691 50.02 173.955Q49.873 174.219 49.695 174.386Q49.518 174.554 49.299 174.63Q49.081 174.706 48.797 174.706Q48.645 174.706 48.493 174.686Q48.341 174.665 48.198 174.615L48.198 173.823Q48.31 173.874 48.457 173.91Q48.604 173.945 48.706 173.945Q48.97 173.945 49.147 173.818Q49.325 173.691 49.416 173.458L49.771 172.575L47.691 167.36L48.665 167.36L50.197 171.652L50.218 171.652L51.689 167.36L52.602 167.36ZM53.962 169.988Q53.962 169.511 54.089 169.141Q54.215 168.77 54.439 168.517Q54.662 168.263 54.961 168.131Q55.26 167.999 55.595 167.999Q55.93 167.999 56.229 168.131Q56.529 168.263 56.752 168.517Q56.975 168.77 57.102 169.141Q57.229 169.511 57.229 169.988Q57.229 170.465 57.102 170.835Q56.975 171.205 56.752 171.454Q56.529 171.703 56.229 171.835Q55.93 171.966 55.595 171.966Q55.26 171.966 54.961 171.835Q54.662 171.703 54.439 171.454Q54.215 171.205 54.089 170.835Q53.962 170.465 53.962 169.988ZM53.049 169.988Q53.049 170.566 53.211 171.063Q53.373 171.561 53.698 171.931Q54.023 172.301 54.499 172.509Q54.976 172.717 55.595 172.717Q56.224 172.717 56.696 172.509Q57.168 172.301 57.493 171.931Q57.817 171.561 57.98 171.063Q58.142 170.566 58.142 169.988Q58.142 169.41 57.98 168.907Q57.817 168.405 57.493 168.035Q57.168 167.664 56.696 167.451Q56.224 167.238 55.595 167.238Q54.976 167.238 54.499 167.451Q54.023 167.664 53.698 168.035Q53.373 168.405 53.211 168.907Q53.049 169.41 53.049 169.988ZM63.499 172.606L63.499 167.36L62.637 167.36L62.637 170.323Q62.637 170.678 62.541 170.977Q62.444 171.276 62.251 171.5Q62.059 171.723 61.769 171.845Q61.48 171.966 61.085 171.966Q60.587 171.966 60.303 171.682Q60.019 171.398 60.019 170.911L60.019 167.36L59.157 167.36L59.157 170.81Q59.157 171.236 59.243 171.586Q59.329 171.936 59.542 172.19Q59.755 172.443 60.1 172.58Q60.445 172.717 60.963 172.717Q61.541 172.717 61.967 172.489Q62.393 172.261 62.667 171.774L62.688 171.774L62.688 172.606ZM71.18 169.044L72.073 169.044Q72.022 168.578 71.83 168.238Q71.637 167.898 71.338 167.674Q71.038 167.451 70.648 167.345Q70.257 167.238 69.811 167.238Q69.192 167.238 68.725 167.456Q68.258 167.674 67.949 168.055Q67.639 168.435 67.487 168.948Q67.335 169.46 67.335 170.049Q67.335 170.637 67.492 171.129Q67.649 171.621 67.959 171.977Q68.268 172.332 68.73 172.525Q69.192 172.717 69.79 172.717Q70.795 172.717 71.378 172.19Q71.962 171.662 72.104 170.688L71.221 170.688Q71.14 171.297 70.78 171.632Q70.419 171.966 69.78 171.966Q69.374 171.966 69.08 171.804Q68.786 171.642 68.603 171.373Q68.42 171.104 68.334 170.759Q68.248 170.414 68.248 170.049Q68.248 169.653 68.329 169.283Q68.41 168.912 68.598 168.628Q68.786 168.344 69.1 168.172Q69.415 167.999 69.882 167.999Q70.429 167.999 70.754 168.273Q71.079 168.547 71.18 169.044ZM77.715 172.585Q77.491 172.717 77.096 172.717Q76.761 172.717 76.563 172.53Q76.365 172.342 76.365 171.916Q76.01 172.342 75.538 172.53Q75.066 172.717 74.519 172.717Q74.163 172.717 73.844 172.636Q73.524 172.555 73.291 172.382Q73.057 172.21 72.92 171.931Q72.783 171.652 72.783 171.256Q72.783 170.81 72.936 170.526Q73.088 170.242 73.336 170.064Q73.585 169.886 73.905 169.795Q74.224 169.704 74.559 169.643Q74.914 169.572 75.234 169.536Q75.553 169.501 75.797 169.435Q76.04 169.369 76.183 169.242Q76.325 169.115 76.325 168.872Q76.325 168.588 76.218 168.415Q76.112 168.243 75.944 168.151Q75.777 168.06 75.569 168.03Q75.361 167.999 75.158 167.999Q74.61 167.999 74.245 168.207Q73.879 168.415 73.849 168.994L72.986 168.994Q73.007 168.507 73.189 168.172Q73.372 167.837 73.676 167.629Q73.981 167.421 74.371 167.33Q74.762 167.238 75.208 167.238Q75.564 167.238 75.914 167.289Q76.264 167.34 76.548 167.497Q76.832 167.654 77.004 167.938Q77.177 168.222 77.177 168.679L77.177 171.378Q77.177 171.682 77.212 171.824Q77.248 171.966 77.451 171.966Q77.562 171.966 77.715 171.916ZM76.314 169.897Q76.152 170.018 75.888 170.074Q75.624 170.13 75.335 170.165Q75.046 170.201 74.752 170.247Q74.458 170.292 74.224 170.394Q73.991 170.495 73.844 170.683Q73.697 170.871 73.697 171.195Q73.697 171.408 73.783 171.556Q73.869 171.703 74.006 171.794Q74.143 171.885 74.326 171.926Q74.508 171.966 74.711 171.966Q75.137 171.966 75.442 171.85Q75.746 171.733 75.939 171.556Q76.132 171.378 76.223 171.17Q76.314 170.962 76.314 170.779ZM78.516 167.36L78.516 172.606L79.379 172.606L79.379 169.643Q79.379 169.288 79.475 168.988Q79.571 168.689 79.764 168.466Q79.957 168.243 80.246 168.121Q80.535 167.999 80.931 167.999Q81.428 167.999 81.712 168.283Q81.996 168.567 81.996 169.054L81.996 172.606L82.859 172.606L82.859 169.156Q82.859 168.73 82.773 168.38Q82.686 168.03 82.473 167.776Q82.26 167.522 81.915 167.38Q81.57 167.238 81.053 167.238Q79.886 167.238 79.348 168.192L79.328 168.192L79.328 167.36ZM91.626 172.585Q91.402 172.717 91.007 172.717Q90.672 172.717 90.474 172.53Q90.276 172.342 90.276 171.916Q89.921 172.342 89.449 172.53Q88.977 172.717 88.429 172.717Q88.074 172.717 87.755 172.636Q87.435 172.555 87.202 172.382Q86.968 172.21 86.831 171.931Q86.694 171.652 86.694 171.256Q86.694 170.81 86.847 170.526Q86.999 170.242 87.247 170.064Line truncated
<path d="M53.454 189.855L55.129 184.609L54.236 184.609L53.059 188.901L53.038 188.901L51.943 184.609L50.999 184.609L49.944 188.901L49.923 188.901L48.736 184.609L47.782 184.609L49.467 189.855L50.4 189.855L51.456 185.685L51.476 185.685L52.541 189.855ZM56.864 183.665L56.864 182.61L56.001 182.61L56.001 183.665ZM56.001 184.609L56.001 189.855L56.864 189.855L56.864 184.609ZM59.4 184.609L59.4 183.036L58.538 183.036L58.538 184.609L57.645 184.609L57.645 185.37L58.538 185.37L58.538 188.708Q58.538 189.073 58.609 189.297Q58.68 189.52 58.827 189.642Q58.974 189.763 59.213 189.809Q59.451 189.855 59.786 189.855L60.445 189.855L60.445 189.094L60.05 189.094Q59.847 189.094 59.72 189.079Q59.593 189.063 59.522 189.013Q59.451 188.962 59.426 188.871Q59.4 188.779 59.4 188.627L59.4 185.37L60.445 185.37L60.445 184.609ZM61.399 182.61L61.399 189.855L62.262 189.855L62.262 186.892Q62.262 186.537 62.358 186.238Q62.454 185.938 62.647 185.715Q62.84 185.492 63.129 185.37Q63.418 185.248 63.814 185.248Q64.311 185.248 64.595 185.532Q64.879 185.816 64.879 186.303L64.879 189.855L65.742 189.855L65.742 186.405Q65.742 185.979 65.656 185.629Q65.569 185.279 65.356 185.025Q65.143 184.771 64.798 184.629Q64.453 184.487 63.936 184.487Q63.702 184.487 63.454 184.538Q63.205 184.589 62.977 184.695Q62.749 184.802 62.566 184.969Q62.383 185.137 62.282 185.38L62.262 185.38L62.262 182.61ZM71.059 184.609L71.059 183.036L70.196 183.036L70.196 184.609L69.303 184.609L69.303 185.37L70.196 185.37L70.196 188.708Q70.196 189.073 70.267 189.297Q70.338 189.52 70.485 189.642Q70.632 189.763 70.871 189.809Q71.109 189.855 71.444 189.855L72.104 189.855L72.104 189.094L71.708 189.094Q71.505 189.094 71.378 189.079Q71.251 189.063 71.18 189.013Q71.109 188.962 71.084 188.871Q71.059 188.779 71.059 188.627L71.059 185.37L72.104 185.37L72.104 184.609ZM73.057 182.61L73.057 189.855L73.92 189.855L73.92 186.892Q73.92 186.537 74.016 186.238Q74.113 185.938 74.305 185.715Q74.498 185.492 74.787 185.37Q75.077 185.248 75.472 185.248Q75.969 185.248 76.254 185.532Q76.538 185.816 76.538 186.303L76.538 189.855L77.4 189.855L77.4 186.405Q77.4 185.979 77.314 185.629Q77.228 185.279 77.015 185.025Q76.801 184.771 76.456 184.629Q76.112 184.487 75.594 184.487Q75.361 184.487 75.112 184.538Q74.863 184.589 74.635 184.695Q74.407 184.802 74.224 184.969Q74.042 185.137 73.94 185.38L73.92 185.38L73.92 182.61ZM82.341 186.73L79.328 186.73Q79.348 186.425 79.46 186.156Q79.571 185.887 79.764 185.685Q79.957 185.482 80.226 185.365Q80.495 185.248 80.83 185.248Q81.154 185.248 81.423 185.365Q81.692 185.482 81.89 185.679Q82.088 185.877 82.204 186.151Q82.321 186.425 82.341 186.73ZM83.173 188.191L82.321 188.191Q82.21 188.708 81.86 188.962Q81.509 189.216 80.962 189.216Q80.535 189.216 80.221 189.073Q79.906 188.931 79.703 188.693Q79.5 188.455 79.409 188.145Q79.318 187.836 79.328 187.491L83.255 187.491Q83.275 187.014 83.168 186.486Q83.062 185.958 82.783 185.512Q82.504 185.066 82.042 184.776Q81.58 184.487 80.88 184.487Q80.343 184.487 79.891 184.69Q79.44 184.893 79.11 185.258Q78.78 185.624 78.597 186.121Q78.415 186.618 78.415 187.217Q78.435 187.815 78.592 188.323Q78.75 188.83 79.064 189.195Q79.379 189.56 79.84 189.763Q80.302 189.966 80.931 189.966Q81.824 189.966 82.412 189.52Q83.001 189.073 83.173 188.191ZM90.53 186.293L91.423 186.293Q91.372 185.827 91.179 185.487Q90.986 185.147 90.687 184.924Q90.388 184.7 89.997 184.594Q89.606 184.487 89.16 184.487Q88.541 184.487 88.074 184.705Q87.608 184.924 87.298 185.304Q86.989 185.685 86.836 186.197Q86.684 186.709 86.684 187.298Q86.684 187.886 86.841 188.378Q86.999 188.871 87.308 189.226Q87.618 189.581 88.079 189.774Q88.541 189.966 89.14 189.966Q90.144 189.966 90.728 189.439Q91.311 188.911 91.453 187.937L90.57 187.937Q90.489 188.546 90.129 188.881Q89.769 189.216 89.129 189.216Q88.724 189.216 88.429 189.053Q88.135 188.891 87.952 188.622Q87.77 188.353 87.684 188.008Q87.597 187.663 87.597 187.298Q87.597 186.902 87.679 186.532Q87.76 186.161 87.947 185.877Q88.135 185.593 88.45 185.421Q88.764 185.248 89.231 185.248Q89.779 185.248 90.104 185.522Q90.428 185.796 90.53 186.293ZM93.046 187.237Q93.046 186.76 93.173 186.39Q93.3 186.019 93.523 185.766Q93.746 185.512 94.045 185.38Q94.345 185.248 94.68 185.248Q95.014 185.248 95.314 185.38Q95.613 185.512 95.836 185.766Q96.06 186.019 96.186 186.39Q96.313 186.76 96.313 187.237Q96.313 187.714 96.186 188.084Q96.06 188.455 95.836 188.703Q95.613 188.952 95.314 189.084Q95.014 189.216 94.68 189.216Q94.345 189.216 94.045 189.084Q93.746 188.952 93.523 188.703Q93.3 188.455 93.173 188.084Q93.046 187.714 93.046 187.237ZM92.133 187.237Q92.133 187.815 92.295 188.312Q92.458 188.81 92.782 189.18Q93.107 189.55 93.584 189.758Q94.061 189.966 94.68 189.966Q95.309 189.966 95.781 189.758Q96.252 189.55 96.577 189.18Q96.902 188.81 97.064 188.312Q97.226 187.815 97.226 187.237Q97.226 186.659 97.064 186.156Q96.902 185.654 96.577 185.284Q96.252 184.913 95.781 184.7Q95.309 184.487 94.68 184.487Q94.061 184.487 93.584 184.7Q93.107 184.913 92.782 185.284Q92.458 185.654 92.295 186.156Q92.133 186.659 9Line truncated
<rect x="47.61" y="207.133" width="244.78" height="0.5" fill="#000000" fill-opacity="0.04"/>
<path d="M49.493 231.324L50.626 228.205L50.645 228.205L51.759 231.324ZM50.158 227.4L47.554 234.087L48.462 234.087L49.212 232.074L52.04 232.074L52.771 234.087L53.754 234.087L51.141 227.4ZM54.859 231.708Q54.859 231.352 54.934 231.015Q55.009 230.678 55.178 230.416Q55.346 230.154 55.627 229.994Q55.908 229.835 56.311 229.835Q56.723 229.835 57.013 229.99Q57.304 230.144 57.486 230.397Q57.669 230.65 57.753 230.982Q57.838 231.315 57.838 231.671Q57.838 232.008 57.758 232.336Q57.678 232.664 57.5 232.921Q57.323 233.179 57.042 233.338Q56.761 233.497 56.358 233.497Q55.974 233.497 55.688 233.347Q55.403 233.198 55.22 232.945Q55.037 232.692 54.948 232.369Q54.859 232.046 54.859 231.708ZM58.606 234.087L58.606 227.4L57.81 227.4L57.81 229.891L57.791 229.891Q57.66 229.676 57.468 229.531Q57.276 229.386 57.06 229.297Q56.845 229.208 56.629 229.17Q56.414 229.133 56.227 229.133Q55.674 229.133 55.257 229.334Q54.841 229.535 54.564 229.877Q54.288 230.219 54.152 230.678Q54.016 231.137 54.016 231.652Q54.016 232.167 54.157 232.626Q54.297 233.085 54.574 233.432Q54.85 233.778 55.267 233.984Q55.683 234.19 56.245 234.19Q56.751 234.19 57.173 234.012Q57.594 233.834 57.791 233.432L57.81 233.432L57.81 234.087ZM60.413 231.708Q60.413 231.352 60.488 231.015Q60.563 230.678 60.732 230.416Q60.9 230.154 61.181 229.994Q61.462 229.835 61.865 229.835Q62.277 229.835 62.568 229.99Q62.858 230.144 63.04 230.397Q63.223 230.65 63.307 230.982Q63.392 231.315 63.392 231.671Q63.392 232.008 63.312 232.336Q63.232 232.664 63.055 232.921Q62.877 233.179 62.596 233.338Q62.315 233.497 61.912 233.497Q61.528 233.497 61.242 233.347Q60.957 233.198 60.774 232.945Q60.591 232.692 60.502 232.369Q60.413 232.046 60.413 231.708ZM64.16 234.087L64.16 227.4L63.364 227.4L63.364 229.891L63.345 229.891Q63.214 229.676 63.022 229.531Q62.83 229.386 62.614 229.297Q62.399 229.208 62.183 229.17Q61.968 229.133 61.781 229.133Q61.228 229.133 60.811 229.334Q60.395 229.535 60.118 229.877Q59.842 230.219 59.706 230.678Q59.57 231.137 59.57 231.652Q59.57 232.167 59.711 232.626Q59.851 233.085 60.128 233.432Q60.404 233.778 60.821 233.984Q61.238 234.19 61.799 234.19Q62.305 234.19 62.727 234.012Q63.148 233.834 63.345 233.432L63.364 233.432L63.364 234.087ZM69.096 229.245L69.096 227.793L68.299 227.793L68.299 229.245L67.475 229.245L67.475 229.948L68.299 229.948L68.299 233.029Q68.299 233.366 68.365 233.572Q68.431 233.778 68.566 233.891Q68.702 234.003 68.922 234.045Q69.142 234.087 69.452 234.087L70.06 234.087L70.06 233.385L69.695 233.385Q69.508 233.385 69.391 233.371Q69.274 233.357 69.208 233.31Q69.142 233.263 69.119 233.179Q69.096 233.094 69.096 232.954L69.096 229.948L70.06 229.948L70.06 229.245ZM71.521 231.671Q71.521 231.231 71.638 230.889Q71.756 230.547 71.962 230.313Q72.168 230.079 72.444 229.957Q72.72 229.835 73.029 229.835Q73.338 229.835 73.615 229.957Q73.891 230.079 74.097 230.313Q74.303 230.547 74.42 230.889Q74.537 231.231 74.537 231.671Q74.537 232.111 74.42 232.453Q74.303 232.795 74.097 233.024Q73.891 233.254 73.615 233.375Q73.338 233.497 73.029 233.497Q72.72 233.497 72.444 233.375Q72.168 233.254 71.962 233.024Q71.756 232.795 71.638 232.453Q71.521 232.111 71.521 231.671ZM70.678 231.671Q70.678 232.205 70.828 232.664Q70.978 233.123 71.278 233.464Q71.578 233.806 72.018 233.998Q72.458 234.19 73.029 234.19Q73.61 234.19 74.046 233.998Q74.481 233.806 74.781 233.464Q75.08 233.123 75.23 232.664Q75.38 232.205 75.38 231.671Q75.38 231.137 75.23 230.673Q75.08 230.21 74.781 229.868Q74.481 229.526 74.046 229.329Q73.61 229.133 73.029 229.133Q72.458 229.133 72.018 229.329Q71.578 229.526 71.278 229.868Q70.978 230.21 70.828 230.673Q70.678 231.137 70.678 231.671Z" fill="#61666B"/>
<rect x="82.156" y="219.816" width="92.712" height="21.464" rx="6.244" stroke="#000000" stroke-opacity="0.12" stroke-width="0.5"/>
<path d="M90.558 227.138L90.558 234.382L91.522 234.382L91.522 231.288L93.876 231.288Q94.231 231.288 94.444 231.394Q94.657 231.501 94.789 231.678Q94.921 231.856 94.982 232.094Q95.043 232.333 95.083 232.596Q95.134 232.86 95.144 233.134Q95.154 233.408 95.164 233.647Q95.174 233.885 95.21 234.078Q95.245 234.271 95.347 234.382L96.422 234.382Q96.27 234.2 96.194 233.961Q96.118 233.723 96.077 233.459Q96.037 233.195 96.027 232.921Q96.017 232.647 95.996 232.383Q95.966 232.12 95.91 231.876Q95.854 231.633 95.738 231.435Q95.621 231.237 95.423 231.095Q95.225 230.953 94.911 230.892L94.911 230.872Q95.57 230.689 95.869 230.192Q96.169 229.695 96.169 229.035Q96.169 228.152 95.585 227.645Q95.002 227.138 93.967 227.138ZM93.531 230.476L91.522 230.476L91.522 227.949L93.916 227.949Q94.596 227.949 94.9 228.294Q95.205 228.639 95.205 229.187Q95.205 229.583 95.068 229.832Q94.931 230.08 94.703 230.227Q94.474 230.374 94.17 230.425Q93.866 230.476 93.531 230.476ZM98.279 228.193L98.279 227.138L97.417 227.138L97.417 228.193ZM97.417 229.137L97.417 234.382L98.279 234.382L98.279 229.137ZM104.144 233.936L104.144 229.137L103.332 229.137L103.332 229.887L103.322 229.887Q103.089 229.451 102.673 229.233Q102.257 229.015 101.76 229.015Q101.08 229.015 100.613 229.274Q100.146 229.532 99.862 229.933Q99.578 230.334 99.456 230.826Q99.335 231.318 99.335 231.785Q99.335 232.323 99.482 232.804Q99.629 233.286 99.923 233.647Q100.217 234.007 100.654 234.22Q101.09 234.433 101.678 234.433Q102.186 234.433 102.637 234.205Q103.089 233.976 103.312 233.489L103.332 233.489L103.332 233.834Q103.332 234.271 103.246 234.636Q103.16 235.001 102.967 235.26Q102.774 235.519 102.48 235.666Q102.186 235.813 101.76 235.813Q101.546 235.813 101.313 235.767Q101.08 235.722 100.882 235.62Q100.684 235.519 100.547 235.356Q100.41 235.194 100.4 234.961L99.537 234.961Q99.558 235.387 99.761 235.681Q99.964 235.975 100.273 236.158Q100.583 236.341 100.963 236.422Q101.344 236.503 101.709 236.503Q102.967 236.503 103.555 235.864Q104.144 235.224 104.144 233.936ZM101.729 233.682Q101.303 233.682 101.019 233.505Q100.735 233.327 100.562 233.038Q100.39 232.749 100.319 232.394Q100.248 232.038 100.248 231.683Q100.248 231.308 100.334 230.963Q100.42 230.618 100.608 230.354Q100.796 230.09 101.09 229.933Q101.384 229.776 101.8 229.776Q102.206 229.776 102.49 229.938Q102.774 230.1 102.952 230.369Q103.129 230.638 103.21 230.973Q103.292 231.308 103.292 231.653Q103.292 232.018 103.205 232.383Q103.119 232.749 102.937 233.038Q102.754 233.327 102.455 233.505Q102.155 233.682 101.729 233.682ZM105.443 227.138L105.443 234.382L106.305 234.382L106.305 231.419Q106.305 231.064 106.402 230.765Q106.498 230.466 106.691 230.242Q106.884 230.019 107.173 229.898Q107.462 229.776 107.858 229.776Q108.355 229.776 108.639 230.06Q108.923 230.344 108.923 230.831L108.923 234.382L109.785 234.382L109.785 230.932Q109.785 230.506 109.699 230.156Q109.613 229.806 109.4 229.553Q109.187 229.299 108.842 229.157Q108.497 229.015 107.979 229.015Q107.746 229.015 107.497 229.065Q107.249 229.116 107.02 229.223Q106.792 229.329 106.61 229.497Q106.427 229.664 106.325 229.908L106.305 229.908L106.305 227.138ZM112.281 229.137L112.281 227.564L111.419 227.564L111.419 229.137L110.526 229.137L110.526 229.898L111.419 229.898L111.419 233.236Q111.419 233.601 111.49 233.824Q111.561 234.047 111.708 234.169Q111.855 234.291 112.094 234.337Q112.332 234.382 112.667 234.382L113.327 234.382L113.327 233.621L112.931 233.621Q112.728 233.621 112.601 233.606Q112.474 233.591 112.403 233.54Q112.332 233.489 112.307 233.398Q112.281 233.307 112.281 233.155L112.281 229.898L113.327 229.898L113.327 229.137ZM117.629 232.728L116.766 232.728Q116.786 233.215 116.969 233.555Q117.152 233.895 117.456 234.103Q117.761 234.311 118.156 234.403Q118.552 234.494 118.988 234.494Q119.384 234.494 119.785 234.418Q120.186 234.342 120.505 234.149Q120.825 233.956 121.023 233.642Q121.221 233.327 121.221 232.85Q121.221 232.475 121.073 232.221Q120.926 231.967 120.688 231.8Q120.449 231.633 120.14 231.531Q119.83 231.43 119.506 231.359Q119.201 231.288 118.897 231.222Q118.593 231.156 118.349 231.059Q118.106 230.963 117.948 230.816Q117.791 230.669 117.791 230.445Q117.791 230.242 117.892 230.116Q117.994 229.989 118.156 229.913Q118.319 229.837 118.516 229.806Q118.714 229.776 118.907 229.776Q119.12 229.776 119.328 229.821Q119.536 229.867 119.709 229.969Q119.881 230.07 119.993 230.237Q120.104 230.405 120.125 230.658L120.987 230.658Q120.957 230.182 120.784 229.862Q120.612 229.542 120.323 229.355Q120.033 229.167 119.658 229.091Q119.283 229.015 118.836 229.015Q118.491 229.015 118.141 229.101Q117.791 229.187 117.512 229.365Q117.233 229.542 117.055 229.826Q116.878 230.111 116.878 230.506Q116.878 231.014 117.131 231.298Q117.385 231.582 117.766 231.739Q118.146 231.896 118.593 231.983Q119.039 232.069 119.42 232.175Q119.8 232.282 120.054 232.454Q120.307 232.627 120.307 232.962Q120.307 233.205 120.186 233.363Q120.064 233.52 119.876 233.601Q119.688 233.682 119.465 233.713Q119.242 233.743 119.039 233.743Q118.775 233.743 118.527 233.692Line truncated
<g transform="translate(156.331 225.084) scale(0.683)" fill="none" stroke="#0F1115" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><path d="M4 6L7.29289 9.29289C7.68342 9.68342 8.31658 9.68342 8.70711 9.29289L12 6"/></g>
<rect x="249.029" y="219.621" width="43.361" height="21.854" rx="6.244" fill="#0F1115"/>
<path d="M262.266 229.414L263.156 229.414Q263.081 228.88 262.837 228.472Q262.594 228.065 262.228 227.793Q261.863 227.522 261.395 227.381Q260.926 227.241 260.402 227.241Q259.634 227.241 259.039 227.517Q258.444 227.793 258.046 228.271Q257.648 228.749 257.442 229.39Q257.236 230.032 257.236 230.762Q257.236 231.493 257.428 232.13Q257.62 232.767 258.004 233.235Q258.388 233.703 258.969 233.97Q259.55 234.237 260.327 234.237Q261.61 234.237 262.35 233.535Q263.09 232.832 263.221 231.568L262.331 231.568Q262.303 231.98 262.163 232.336Q262.022 232.692 261.774 232.949Q261.526 233.207 261.184 233.352Q260.842 233.497 260.402 233.497Q259.803 233.497 259.372 233.272Q258.941 233.048 258.665 232.668Q258.388 232.289 258.257 231.779Q258.126 231.268 258.126 230.697Q258.126 230.172 258.257 229.685Q258.388 229.198 258.665 228.819Q258.941 228.44 259.367 228.215Q259.793 227.99 260.393 227.99Q261.095 227.99 261.606 228.346Q262.116 228.702 262.266 229.414ZM264.167 229.245L264.167 234.087L264.963 234.087L264.963 231.933Q264.963 231.465 265.057 231.104Q265.151 230.744 265.357 230.491Q265.563 230.238 265.9 230.107Q266.237 229.976 266.715 229.976L266.715 229.133Q266.068 229.114 265.647 229.395Q265.225 229.676 264.935 230.266L264.916 230.266L264.916 229.245ZM270.508 231.203L267.726 231.203Q267.745 230.922 267.848 230.673Q267.951 230.425 268.129 230.238Q268.307 230.051 268.555 229.943Q268.803 229.835 269.112 229.835Q269.412 229.835 269.66 229.943Q269.908 230.051 270.091 230.233Q270.274 230.416 270.381 230.669Q270.489 230.922 270.508 231.203ZM271.276 232.551L270.489 232.551Q270.386 233.029 270.063 233.263Q269.74 233.497 269.234 233.497Q268.841 233.497 268.55 233.366Q268.26 233.235 268.073 233.015Q267.885 232.795 267.801 232.509Q267.717 232.223 267.726 231.905L271.351 231.905Q271.37 231.465 271.271 230.978Q271.173 230.491 270.915 230.079Q270.658 229.667 270.232 229.4Q269.805 229.133 269.159 229.133Q268.663 229.133 268.246 229.32Q267.829 229.507 267.525 229.844Q267.22 230.182 267.052 230.641Q266.883 231.1 266.883 231.652Q266.902 232.205 267.047 232.673Q267.192 233.141 267.483 233.478Q267.773 233.816 268.199 234.003Q268.625 234.19 269.206 234.19Q270.03 234.19 270.573 233.778Q271.117 233.366 271.276 232.551ZM276.465 234.069Q276.259 234.19 275.893 234.19Q275.584 234.19 275.402 234.017Q275.219 233.844 275.219 233.45Q274.891 233.844 274.456 234.017Q274.02 234.19 273.514 234.19Q273.187 234.19 272.892 234.115Q272.597 234.04 272.381 233.881Q272.166 233.722 272.039 233.464Q271.913 233.207 271.913 232.842Q271.913 232.43 272.053 232.167Q272.194 231.905 272.423 231.741Q272.653 231.577 272.948 231.493Q273.243 231.409 273.552 231.352Q273.88 231.287 274.175 231.254Q274.47 231.221 274.695 231.16Q274.919 231.1 275.05 230.982Q275.182 230.865 275.182 230.641Q275.182 230.378 275.083 230.219Q274.985 230.06 274.83 229.976Q274.676 229.891 274.484 229.863Q274.292 229.835 274.104 229.835Q273.599 229.835 273.262 230.027Q272.924 230.219 272.896 230.753L272.1 230.753Q272.119 230.303 272.287 229.994Q272.456 229.685 272.737 229.493Q273.018 229.301 273.379 229.217Q273.739 229.133 274.151 229.133Q274.479 229.133 274.802 229.18Q275.125 229.226 275.388 229.372Q275.65 229.517 275.809 229.779Q275.968 230.041 275.968 230.463L275.968 232.954Q275.968 233.235 276.001 233.366Q276.034 233.497 276.221 233.497Q276.324 233.497 276.465 233.45ZM275.172 231.587Q275.022 231.699 274.779 231.75Q274.535 231.802 274.268 231.835Q274.001 231.868 273.73 231.91Q273.458 231.952 273.243 232.046Q273.027 232.139 272.892 232.312Q272.756 232.486 272.756 232.785Q272.756 232.982 272.835 233.118Q272.915 233.254 273.041 233.338Q273.168 233.422 273.336 233.46Q273.505 233.497 273.692 233.497Q274.086 233.497 274.367 233.39Q274.648 233.282 274.826 233.118Q275.004 232.954 275.088 232.762Q275.172 232.57 275.172 232.401ZM278.31 229.245L278.31 227.793L277.514 227.793L277.514 229.245L276.689 229.245L276.689 229.948L277.514 229.948L277.514 233.029Q277.514 233.366 277.579 233.572Q277.645 233.778 277.781 233.891Q277.916 234.003 278.137 234.045Q278.357 234.087 278.666 234.087L279.274 234.087L279.274 233.385L278.909 233.385Q278.722 233.385 278.605 233.371Q278.488 233.357 278.422 233.31Q278.357 233.263 278.333 233.179Q278.31 233.094 278.31 232.954L278.31 229.948L279.274 229.948L279.274 229.245ZM283.517 231.203L280.736 231.203Q280.754 230.922 280.857 230.673Q280.96 230.425 281.138 230.238Q281.316 230.051 281.564 229.943Q281.813 229.835 282.122 229.835Q282.421 229.835 282.67 229.943Q282.918 230.051 283.1 230.233Q283.283 230.416 283.391 230.669Q283.499 230.922 283.517 231.203ZM284.285 232.551L283.499 232.551Q283.396 233.029 283.072 233.263Q282.749 233.497 282.243 233.497Q281.85 233.497 281.56 233.366Q281.269 233.235 281.082 233.015Q280.895 232.795 280.811 232.509Q280.726 232.223 280.736 231.905L284.36 231.905Q284.379 231.465 284.281 230.978Q284.182 230.491 283.925 230.079Q283.667 229.667 283.241 229.4Q282.815 229.133 282.169 229.133Q281.672 229.133 281.255 229.32Q280.839 229.507 280.534 229.844Q280.23 230.182 280.061 230.641Q27Line truncated
<path d="M200.325 227.4L200.325 234.087L201.168 234.087L201.168 228.721L201.187 228.721L204.681 234.087L205.655 234.087L205.655 227.4L204.812 227.4L204.812 232.823L204.793 232.823L201.271 227.4ZM207.547 231.671Q207.547 231.231 207.664 230.889Q207.781 230.547 207.987 230.313Q208.193 230.079 208.469 229.957Q208.745 229.835 209.054 229.835Q209.364 229.835 209.64 229.957Q209.916 230.079 210.122 230.313Q210.328 230.547 210.445 230.889Q210.562 231.231 210.562 231.671Q210.562 232.111 210.445 232.453Q210.328 232.795 210.122 233.024Q209.916 233.254 209.64 233.375Q209.364 233.497 209.054 233.497Q208.745 233.497 208.469 233.375Q208.193 233.254 207.987 233.024Q207.781 232.795 207.664 232.453Q207.547 232.111 207.547 231.671ZM206.704 231.671Q206.704 232.205 206.853 232.664Q207.003 233.123 207.303 233.464Q207.603 233.806 208.043 233.998Q208.483 234.19 209.054 234.19Q209.635 234.19 210.071 233.998Q210.506 233.806 210.806 233.464Q211.106 233.123 211.255 232.664Q211.405 232.205 211.405 231.671Q211.405 231.137 211.255 230.673Q211.106 230.21 210.806 229.868Q210.506 229.526 210.071 229.329Q209.635 229.133 209.054 229.133Q208.483 229.133 208.043 229.329Q207.603 229.526 207.303 229.868Q207.003 230.21 206.853 230.673Q206.704 231.137 206.704 231.671ZM213.447 229.245L213.447 227.793L212.651 227.793L212.651 229.245L211.827 229.245L211.827 229.948L212.651 229.948L212.651 233.029Q212.651 233.366 212.717 233.572Q212.782 233.778 212.918 233.891Q213.054 234.003 213.274 234.045Q213.494 234.087 213.803 234.087L214.412 234.087L214.412 233.385L214.047 233.385Q213.859 233.385 213.742 233.371Q213.625 233.357 213.559 233.31Q213.494 233.263 213.471 233.179Q213.447 233.094 213.447 232.954L213.447 229.948L214.412 229.948L214.412 229.245ZM217.896 229.245L217.896 234.087L218.692 234.087L218.692 231.352Q218.692 231.025 218.781 230.748Q218.87 230.472 219.048 230.266Q219.226 230.06 219.493 229.948Q219.76 229.835 220.125 229.835Q220.584 229.835 220.846 230.097Q221.108 230.36 221.108 230.809L221.108 234.087L221.905 234.087L221.905 230.903Q221.905 230.509 221.825 230.186Q221.745 229.863 221.549 229.629Q221.352 229.395 221.034 229.264Q220.715 229.133 220.237 229.133Q219.16 229.133 218.664 230.013L218.645 230.013L218.645 229.245ZM223.684 231.671Q223.684 231.231 223.801 230.889Q223.918 230.547 224.124 230.313Q224.33 230.079 224.607 229.957Q224.883 229.835 225.192 229.835Q225.501 229.835 225.777 229.957Q226.054 230.079 226.26 230.313Q226.466 230.547 226.583 230.889Q226.7 231.231 226.7 231.671Q226.7 232.111 226.583 232.453Q226.466 232.795 226.26 233.024Q226.054 233.254 225.777 233.375Q225.501 233.497 225.192 233.497Q224.883 233.497 224.607 233.375Q224.33 233.254 224.124 233.024Q223.918 232.795 223.801 232.453Q223.684 232.111 223.684 231.671ZM222.841 231.671Q222.841 232.205 222.991 232.664Q223.141 233.123 223.441 233.464Q223.74 233.806 224.181 233.998Q224.621 234.19 225.192 234.19Q225.773 234.19 226.208 233.998Q226.644 233.806 226.944 233.464Q227.243 233.123 227.393 232.664Q227.543 232.205 227.543 231.671Q227.543 231.137 227.393 230.673Q227.243 230.21 226.944 229.868Q226.644 229.526 226.208 229.329Q225.773 229.133 225.192 229.133Q224.621 229.133 224.181 229.329Q223.74 229.526 223.441 229.868Q223.141 230.21 222.991 230.673Q222.841 231.137 222.841 231.671ZM233.275 234.087L234.82 229.245L233.996 229.245L232.91 233.207L232.891 233.207L231.879 229.245L231.008 229.245L230.034 233.207L230.016 233.207L228.92 229.245L228.039 229.245L229.594 234.087L230.456 234.087L231.43 230.238L231.449 230.238L232.432 234.087Z" fill="#0F1115"/>
<rect x="432.046" y="32.066" width="175.954" height="32.781" rx="15.61" fill="#EDF3FE"/>
<path d="M445.43 44.785L445.43 52.587L446.468 52.587L446.468 44.785ZM456.695 52.587L458.498 46.937L457.537 46.937L456.269 51.559L456.247 51.559L455.067 46.937L454.051 46.937L452.915 51.559L452.893 51.559L451.614 46.937L450.587 46.937L452.401 52.587L453.406 52.587L454.543 48.096L454.565 48.096L455.712 52.587ZM464.388 52.565Q464.148 52.707 463.721 52.707Q463.361 52.707 463.148 52.505Q462.935 52.302 462.935 51.844Q462.552 52.302 462.044 52.505Q461.536 52.707 460.946 52.707Q460.564 52.707 460.219 52.619Q459.875 52.532 459.624 52.346Q459.373 52.16 459.225 51.86Q459.077 51.559 459.077 51.133Q459.077 50.653 459.241 50.347Q459.405 50.041 459.673 49.849Q459.941 49.658 460.285 49.56Q460.629 49.461 460.99 49.396Q461.372 49.319 461.716 49.281Q462.061 49.243 462.323 49.172Q462.585 49.101 462.738 48.964Q462.891 48.828 462.891 48.565Q462.891 48.259 462.776 48.074Q462.662 47.888 462.481 47.79Q462.301 47.691 462.077 47.659Q461.853 47.626 461.634 47.626Q461.044 47.626 460.651 47.85Q460.258 48.074 460.225 48.697L459.296 48.697Q459.318 48.172 459.515 47.811Q459.711 47.451 460.039 47.227Q460.367 47.003 460.788 46.905Q461.208 46.806 461.689 46.806Q462.071 46.806 462.448 46.861Q462.825 46.915 463.131 47.085Q463.437 47.254 463.623 47.56Q463.809 47.866 463.809 48.358L463.809 51.264Q463.809 51.592 463.847 51.745Q463.885 51.898 464.104 51.898Q464.224 51.898 464.388 51.844ZM462.88 49.669Q462.705 49.8 462.421 49.86Q462.137 49.92 461.826 49.959Q461.514 49.997 461.197 50.046Q460.88 50.095 460.629 50.205Q460.378 50.314 460.219 50.516Q460.061 50.718 460.061 51.068Q460.061 51.297 460.154 51.456Q460.247 51.614 460.394 51.712Q460.542 51.811 460.738 51.854Q460.935 51.898 461.154 51.898Q461.613 51.898 461.94 51.773Q462.268 51.647 462.476 51.456Q462.683 51.264 462.782 51.04Q462.88 50.816 462.88 50.62ZM465.251 46.937L465.251 52.587L466.18 52.587L466.18 49.396Q466.18 49.013 466.284 48.691Q466.388 48.369 466.595 48.128Q466.803 47.888 467.114 47.757Q467.426 47.626 467.852 47.626Q468.387 47.626 468.693 47.932Q468.999 48.238 468.999 48.762L468.999 52.587L469.928 52.587L469.928 48.871Q469.928 48.412 469.835 48.035Q469.742 47.659 469.513 47.385Q469.283 47.112 468.912 46.959Q468.54 46.806 467.983 46.806Q466.726 46.806 466.147 47.833L466.125 47.833L466.125 46.937ZM472.616 46.937L472.616 45.244L471.687 45.244L471.687 46.937L470.726 46.937L470.726 47.757L471.687 47.757L471.687 51.352Q471.687 51.745 471.764 51.986Q471.84 52.226 471.999 52.357Q472.157 52.488 472.414 52.537Q472.671 52.587 473.031 52.587L473.742 52.587L473.742 51.767L473.315 51.767Q473.097 51.767 472.96 51.751Q472.824 51.734 472.747 51.68Q472.671 51.625 472.643 51.527Q472.616 51.428 472.616 51.264L472.616 47.757L473.742 47.757L473.742 46.937ZM479.096 46.937L479.096 45.244L478.167 45.244L478.167 46.937L477.205 46.937L477.205 47.757L478.167 47.757L478.167 51.352Q478.167 51.745 478.243 51.986Q478.32 52.226 478.478 52.357Q478.637 52.488 478.894 52.537Q479.15 52.587 479.511 52.587L480.221 52.587L480.221 51.767L479.795 51.767Q479.577 51.767 479.44 51.751Q479.303 51.734 479.227 51.68Q479.15 51.625 479.123 51.527Q479.096 51.428 479.096 51.264L479.096 47.757L480.221 47.757L480.221 46.937ZM481.926 49.767Q481.926 49.254 482.062 48.855Q482.199 48.456 482.439 48.183Q482.68 47.91 483.002 47.768Q483.324 47.626 483.685 47.626Q484.046 47.626 484.368 47.768Q484.69 47.91 484.931 48.183Q485.171 48.456 485.308 48.855Q485.444 49.254 485.444 49.767Q485.444 50.281 485.308 50.68Q485.171 51.079 484.931 51.346Q484.69 51.614 484.368 51.756Q484.046 51.898 483.685 51.898Q483.324 51.898 483.002 51.756Q482.68 51.614 482.439 51.346Q482.199 51.079 482.062 50.68Q481.926 50.281 481.926 49.767ZM480.942 49.767Q480.942 50.39 481.117 50.926Q481.292 51.461 481.642 51.86Q481.991 52.259 482.505 52.483Q483.019 52.707 483.685 52.707Q484.363 52.707 484.871 52.483Q485.379 52.259 485.728 51.86Q486.078 51.461 486.253 50.926Q486.428 50.39 486.428 49.767Q486.428 49.145 486.253 48.604Q486.078 48.063 485.728 47.664Q485.379 47.265 484.871 47.036Q484.363 46.806 483.685 46.806Q483.019 46.806 482.505 47.036Q481.991 47.265 481.642 47.664Q481.292 48.063 481.117 48.604Q480.942 49.145 480.942 49.767ZM491.236 49.811Q491.236 49.396 491.323 49.003Q491.41 48.609 491.607 48.303Q491.804 47.997 492.132 47.811Q492.459 47.626 492.929 47.626Q493.41 47.626 493.749 47.806Q494.088 47.986 494.301 48.281Q494.514 48.576 494.612 48.964Q494.71 49.352 494.71 49.767Q494.71 50.161 494.618 50.543Q494.525 50.926 494.317 51.226Q494.109 51.527 493.782 51.712Q493.454 51.898 492.984 51.898Q492.536 51.898 492.203 51.723Q491.869 51.549 491.656 51.253Q491.443 50.958 491.339 50.581Q491.236 50.205 491.236 49.811ZM495.606 52.587L495.606 44.785L494.678 44.785L494.678 47.691L494.656 47.691Q494.503 47.44 494.279 47.271Q494.055 47.101 493.803 46.997Q493.552 46.894 493.301 46.85Q493.05 46.806 492.831 46.806Q492.186 46.806 491.7 47.041Q491.214 47.276 490.891 47.675Q490.569 48.074 490.411 48.609Q490.252 49.145 490.252 49.746Q490.252 50.347 490.416 50.882Q490.58 51.417 490.902 51.822Q491.225 5Line truncated
<rect x="332" y="77.335" width="276" height="190.598" rx="12.488" fill="#FFFFFF"/>
<path d="M332 106.994V89.823A12.488 12.488 0 0 1 344.488 77.335H595.512A12.488 12.488 0 0 1 608 89.823V106.994Z" fill="#F5F6F7"/>
<rect x="332" y="77.335" width="276" height="190.598" rx="12.488" stroke="#000000" stroke-opacity="0.1" stroke-width="0.5"/>
<path d="M348.341 89.017L348.341 95.705L349.23 95.705L349.23 92.848L351.403 92.848Q351.731 92.848 351.928 92.946Q352.124 93.045 352.246 93.209Q352.368 93.373 352.424 93.593Q352.48 93.813 352.518 94.056Q352.565 94.3 352.574 94.553Q352.583 94.806 352.593 95.026Q352.602 95.246 352.635 95.424Q352.668 95.602 352.761 95.705L353.754 95.705Q353.614 95.536 353.543 95.316Q353.473 95.096 353.436 94.852Q353.398 94.609 353.389 94.356Q353.379 94.103 353.361 93.86Q353.333 93.616 353.281 93.391Q353.23 93.166 353.122 92.984Q353.014 92.801 352.832 92.67Q352.649 92.539 352.359 92.483L352.359 92.464Q352.967 92.295 353.244 91.836Q353.52 91.378 353.52 90.769Q353.52 89.954 352.981 89.486Q352.443 89.017 351.488 89.017ZM351.085 92.099L349.23 92.099L349.23 89.767L351.441 89.767Q352.068 89.767 352.349 90.085Q352.63 90.403 352.63 90.909Q352.63 91.275 352.504 91.504Q352.377 91.733 352.167 91.869Q351.956 92.005 351.675 92.052Q351.394 92.099 351.085 92.099ZM357.988 92.82L355.206 92.82Q355.225 92.539 355.328 92.291Q355.431 92.043 355.609 91.855Q355.787 91.668 356.035 91.56Q356.283 91.452 356.592 91.452Q356.892 91.452 357.14 91.56Q357.388 91.668 357.571 91.851Q357.753 92.033 357.861 92.286Q357.969 92.539 357.988 92.82ZM358.756 94.169L357.969 94.169Q357.866 94.646 357.543 94.88Q357.22 95.115 356.714 95.115Q356.32 95.115 356.03 94.983Q355.74 94.852 355.552 94.632Q355.365 94.412 355.281 94.126Q355.196 93.841 355.206 93.522L358.83 93.522Q358.849 93.082 358.751 92.595Q358.653 92.108 358.395 91.696Q358.137 91.284 357.711 91.017Q357.285 90.75 356.639 90.75Q356.142 90.75 355.726 90.937Q355.309 91.125 355.004 91.462Q354.7 91.799 354.531 92.258Q354.363 92.717 354.363 93.269Q354.382 93.822 354.527 94.29Q354.672 94.759 354.962 95.096Q355.253 95.433 355.679 95.62Q356.105 95.808 356.686 95.808Q357.51 95.808 358.053 95.396Q358.596 94.983 358.756 94.169ZM362.942 92.417L363.766 92.417Q363.72 91.986 363.542 91.673Q363.364 91.359 363.087 91.153Q362.811 90.947 362.45 90.848Q362.09 90.75 361.678 90.75Q361.106 90.75 360.676 90.951Q360.245 91.153 359.959 91.504Q359.673 91.855 359.533 92.328Q359.392 92.801 359.392 93.344Q359.392 93.888 359.538 94.342Q359.683 94.796 359.968 95.124Q360.254 95.452 360.68 95.63Q361.106 95.808 361.659 95.808Q362.586 95.808 363.125 95.321Q363.663 94.834 363.794 93.934L362.98 93.934Q362.905 94.496 362.572 94.806Q362.24 95.115 361.65 95.115Q361.275 95.115 361.003 94.965Q360.732 94.815 360.563 94.567Q360.395 94.318 360.315 94Q360.235 93.682 360.235 93.344Q360.235 92.979 360.31 92.637Q360.385 92.295 360.558 92.033Q360.732 91.771 361.022 91.612Q361.312 91.452 361.743 91.452Q362.249 91.452 362.549 91.705Q362.848 91.958 362.942 92.417ZM365.265 93.288Q365.265 92.848 365.382 92.506Q365.499 92.164 365.705 91.93Q365.911 91.696 366.187 91.574Q366.464 91.452 366.773 91.452Q367.082 91.452 367.358 91.574Q367.635 91.696 367.841 91.93Q368.047 92.164 368.164 92.506Q368.281 92.848 368.281 93.288Q368.281 93.728 368.164 94.07Q368.047 94.412 367.841 94.642Q367.635 94.871 367.358 94.993Q367.082 95.115 366.773 95.115Q366.464 95.115 366.187 94.993Q365.911 94.871 365.705 94.642Q365.499 94.412 365.382 94.07Q365.265 93.728 365.265 93.288ZM364.422 93.288Q364.422 93.822 364.572 94.281Q364.722 94.74 365.021 95.082Q365.321 95.424 365.761 95.616Q366.202 95.808 366.773 95.808Q367.354 95.808 367.789 95.616Q368.225 95.424 368.524 95.082Q368.824 94.74 368.974 94.281Q369.124 93.822 369.124 93.288Q369.124 92.754 368.974 92.291Q368.824 91.827 368.524 91.485Q368.225 91.143 367.789 90.947Q367.354 90.75 366.773 90.75Q366.202 90.75 365.761 90.947Q365.321 91.143 365.021 91.485Q364.722 91.827 364.572 92.291Q364.422 92.754 364.422 93.288ZM370.06 90.862L370.06 95.705L370.856 95.705L370.856 92.689Q370.856 92.548 370.927 92.338Q370.997 92.127 371.151 91.93Q371.306 91.733 371.554 91.593Q371.802 91.452 372.149 91.452Q372.421 91.452 372.594 91.532Q372.767 91.612 372.87 91.757Q372.973 91.902 373.015 92.099Q373.057 92.295 373.057 92.53L373.057 95.705L373.854 95.705L373.854 92.689Q373.854 92.127 374.191 91.79Q374.528 91.452 375.118 91.452Q375.408 91.452 375.591 91.537Q375.774 91.621 375.877 91.766Q375.98 91.911 376.017 92.108Q376.055 92.305 376.055 92.53L376.055 95.705L376.851 95.705L376.851 92.155Q376.851 91.78 376.734 91.513Q376.617 91.246 376.406 91.078Q376.195 90.909 375.9 90.83Q375.605 90.75 375.24 90.75Q374.762 90.75 374.364 90.965Q373.966 91.181 373.722 91.574Q373.573 91.125 373.207 90.937Q372.842 90.75 372.392 90.75Q371.372 90.75 370.828 91.574L370.81 91.574L370.81 90.862ZM378.05 90.862L378.05 95.705L378.846 95.705L378.846 92.689Q378.846 92.548 378.916 92.338Q378.986 92.127 379.141 91.93Q379.295 91.733 379.543 91.593Q379.792 91.452 380.138 91.452Q380.41 91.452 380.583 91.532Q380.756 91.612 380.859 91.757Q380.962 91.902 381.004 92.099Q381.047 92.295 381.047 92.53L381.047 95.705L381.843 95.705L381.843 92.689Q381.843 92.127 382.18 91.79Q382.517 91.452 383.107 91.452Q383.397 91.452 383.58 91.537Q383.763 91.621 383.866 91.766Q383.969 91.911 384.006 92.108Q384.044 92.305 384.044 92.53L38Line truncated
<path d="M564.816 92.361Q564.816 91.855 564.948 91.363Q565.079 90.872 565.36 90.478Q565.641 90.085 566.081 89.846Q566.521 89.607 567.13 89.607Q567.739 89.607 568.179 89.846Q568.619 90.085 568.9 90.478Q569.181 90.872 569.312 91.363Q569.443 91.855 569.443 92.361Q569.443 92.867 569.312 93.358Q569.181 93.85 568.9 94.244Q568.619 94.637 568.179 94.876Q567.739 95.115 567.13 95.115Q566.521 95.115 566.081 94.876Q565.641 94.637 565.36 94.244Q565.079 93.85 564.948 93.358Q564.816 92.867 564.816 92.361ZM563.927 92.361Q563.927 93.045 564.128 93.677Q564.329 94.309 564.732 94.796Q565.135 95.283 565.734 95.569Q566.334 95.854 567.13 95.854Q567.926 95.854 568.525 95.569Q569.125 95.283 569.528 94.796Q569.93 94.309 570.132 93.677Q570.333 93.045 570.333 92.361Q570.333 91.677 570.132 91.045Q569.93 90.413 569.528 89.926Q569.125 89.439 568.525 89.148Q567.926 88.858 567.13 88.858Q566.334 88.858 565.734 89.148Q565.135 89.439 564.732 89.926Q564.329 90.413 564.128 91.045Q563.927 91.677 563.927 92.361ZM574.248 91.565L572.412 91.565L572.412 95.705L571.616 95.705L571.616 91.565L570.801 91.565L570.801 90.862L571.616 90.862L571.616 90.141Q571.616 89.551 571.958 89.247Q572.3 88.942 572.956 88.942Q573.068 88.942 573.213 88.961Q573.358 88.98 573.471 89.017L573.471 89.71Q573.368 89.673 573.246 89.659Q573.124 89.645 573.021 89.645Q572.731 89.645 572.572 89.757Q572.412 89.87 572.412 90.188L572.412 90.862L574.248 90.862L574.248 90.141Q574.248 89.551 574.59 89.247Q574.932 88.942 575.587 88.942Q575.7 88.942 575.845 88.961Q575.99 88.98 576.103 89.017L576.103 89.71Q575.999 89.673 575.878 89.659Q575.756 89.645 575.653 89.645Q575.363 89.645 575.203 89.757Q575.044 89.87 575.044 90.188L575.044 90.862L575.981 90.862L575.981 91.565L575.044 91.565L575.044 95.705L574.248 95.705ZM577.536 89.991L576.739 89.991L576.739 89.017L577.536 89.017ZM576.739 90.862L577.536 90.862L577.536 95.705L576.739 95.705ZM582.059 92.417L582.884 92.417Q582.837 91.986 582.659 91.673Q582.481 91.359 582.204 91.153Q581.928 90.947 581.568 90.848Q581.207 90.75 580.795 90.75Q580.224 90.75 579.793 90.951Q579.362 91.153 579.076 91.504Q578.791 91.855 578.65 92.328Q578.51 92.801 578.51 93.344Q578.51 93.888 578.655 94.342Q578.8 94.796 579.086 95.124Q579.371 95.452 579.797 95.63Q580.224 95.808 580.776 95.808Q581.703 95.808 582.242 95.321Q582.78 94.834 582.912 93.934L582.097 93.934Q582.022 94.496 581.689 94.806Q581.357 95.115 580.767 95.115Q580.392 95.115 580.121 94.965Q579.849 94.815 579.68 94.567Q579.512 94.318 579.432 94Q579.353 93.682 579.353 93.344Q579.353 92.979 579.427 92.637Q579.502 92.295 579.676 92.033Q579.849 91.771 580.139 91.612Q580.43 91.452 580.86 91.452Q581.366 91.452 581.666 91.705Q581.966 91.958 582.059 92.417ZM584.644 89.991L584.644 89.017L583.848 89.017L583.848 89.991ZM583.848 90.862L583.848 95.705L584.644 95.705L584.644 90.862ZM590.17 95.686Q589.964 95.808 589.599 95.808Q589.29 95.808 589.107 95.634Q588.925 95.461 588.925 95.068Q588.597 95.461 588.161 95.634Q587.726 95.808 587.22 95.808Q586.892 95.808 586.597 95.733Q586.302 95.658 586.087 95.499Q585.871 95.339 585.745 95.082Q585.618 94.824 585.618 94.459Q585.618 94.047 585.759 93.785Q585.899 93.522 586.129 93.358Q586.358 93.195 586.653 93.11Q586.948 93.026 587.257 92.97Q587.585 92.904 587.88 92.871Q588.175 92.839 588.4 92.778Q588.625 92.717 588.756 92.6Q588.887 92.483 588.887 92.258Q588.887 91.996 588.789 91.836Q588.69 91.677 588.536 91.593Q588.381 91.509 588.189 91.481Q587.997 91.452 587.81 91.452Q587.304 91.452 586.967 91.644Q586.63 91.836 586.602 92.37L585.806 92.37Q585.824 91.921 585.993 91.612Q586.162 91.303 586.443 91.111Q586.724 90.919 587.084 90.834Q587.445 90.75 587.857 90.75Q588.185 90.75 588.508 90.797Q588.831 90.844 589.093 90.989Q589.355 91.134 589.515 91.396Q589.674 91.659 589.674 92.08L589.674 94.571Q589.674 94.852 589.707 94.983Q589.739 95.115 589.927 95.115Q590.03 95.115 590.17 95.068ZM588.878 93.204Q588.728 93.316 588.484 93.368Q588.241 93.419 587.974 93.452Q587.707 93.485 587.435 93.527Q587.164 93.569 586.948 93.663Q586.733 93.757 586.597 93.93Q586.461 94.103 586.461 94.403Q586.461 94.599 586.541 94.735Q586.621 94.871 586.747 94.955Q586.873 95.04 587.042 95.077Q587.211 95.115 587.398 95.115Q587.791 95.115 588.072 95.007Q588.353 94.899 588.531 94.735Q588.709 94.571 588.793 94.379Q588.878 94.187 588.878 94.019ZM590.957 89.017L590.957 95.705L591.753 95.705L591.753 89.017Z" fill="#61666B"/>
<path d="M347.548 127.774L349.171 127.774L351.406 134.829L351.431 134.829L353.717 127.774L355.303 127.774L352.256 136.69L350.52 136.69ZM358.262 136.865Q357.488 136.865 356.882 136.609Q356.277 136.353 355.858 135.903Q355.44 135.454 355.221 134.829Q355.003 134.205 355.003 133.456Q355.003 132.719 355.221 132.094Q355.44 131.47 355.858 131.02Q356.277 130.571 356.882 130.315Q357.488 130.059 358.262 130.059Q359.037 130.059 359.642 130.315Q360.248 130.571 360.666 131.02Q361.085 131.47 361.303 132.094Q361.522 132.719 361.522 133.456Q361.522 134.205 361.303 134.829Q361.085 135.454 360.666 135.903Q360.248 136.353 359.642 136.609Q359.037 136.865 358.262 136.865ZM358.262 135.741Q358.737 135.741 359.086 135.541Q359.436 135.341 359.661 135.017Q359.886 134.692 359.992 134.286Q360.098 133.88 360.098 133.456Q360.098 133.044 359.992 132.631Q359.886 132.219 359.661 131.901Q359.436 131.582 359.086 131.383Q358.737 131.183 358.262 131.183Q357.788 131.183 357.438 131.383Q357.088 131.582 356.864 131.901Q356.639 132.219 356.533 132.631Q356.427 133.044 356.427 133.456Q356.427 133.88 356.533 134.286Q356.639 134.692 356.864 135.017Q357.088 135.341 357.438 135.541Q357.788 135.741 358.262 135.741ZM362.745 127.774L364.169 127.774L364.169 129.122L362.745 129.122ZM362.745 130.234L364.169 130.234L364.169 136.69L362.745 136.69ZM370.076 132.394Q369.988 131.795 369.595 131.489Q369.202 131.183 368.602 131.183Q368.328 131.183 368.015 131.276Q367.703 131.37 367.441 131.626Q367.179 131.882 367.004 132.338Q366.829 132.794 366.829 133.531Q366.829 133.93 366.923 134.33Q367.016 134.729 367.222 135.042Q367.428 135.354 367.753 135.547Q368.078 135.741 368.54 135.741Q369.164 135.741 369.57 135.354Q369.976 134.967 370.076 134.267L371.5 134.267Q371.3 135.529 370.544 136.197Q369.789 136.865 368.54 136.865Q367.778 136.865 367.197 136.609Q366.617 136.353 366.217 135.91Q365.818 135.466 365.611 134.854Q365.405 134.242 365.405 133.531Q365.405 132.806 365.605 132.169Q365.805 131.532 366.205 131.064Q366.604 130.596 367.197 130.327Q367.791 130.059 368.59 130.059Q369.152 130.059 369.658 130.203Q370.163 130.346 370.557 130.633Q370.95 130.921 371.2 131.358Q371.45 131.795 371.5 132.394ZM377.094 132.894Q377.069 132.557 376.951 132.244Q376.832 131.932 376.626 131.701Q376.42 131.47 376.126 131.326Q375.833 131.183 375.471 131.183Q375.096 131.183 374.79 131.314Q374.484 131.445 374.266 131.676Q374.047 131.907 373.916 132.219Q373.785 132.532 373.772 132.894ZM373.772 133.83Q373.772 134.205 373.879 134.555Q373.985 134.904 374.197 135.166Q374.409 135.429 374.734 135.585Q375.059 135.741 375.508 135.741Q376.133 135.741 376.513 135.472Q376.894 135.204 377.082 134.667L378.43 134.667Q378.318 135.191 378.043 135.604Q377.769 136.016 377.381 136.297Q376.994 136.578 376.513 136.721Q376.033 136.865 375.508 136.865Q374.746 136.865 374.159 136.615Q373.573 136.365 373.167 135.916Q372.761 135.466 372.555 134.842Q372.349 134.217 372.349 133.468Q372.349 132.781 372.567 132.163Q372.786 131.545 373.192 131.077Q373.598 130.608 374.172 130.334Q374.746 130.059 375.471 130.059Q376.232 130.059 376.838 130.377Q377.444 130.696 377.843 131.22Q378.243 131.745 378.424 132.425Q378.605 133.106 378.518 133.83ZM383.113 127.774L384.537 127.774L384.537 129.122L383.113 129.122ZM383.113 130.234L384.537 130.234L384.537 136.69L383.113 136.69ZM386.086 130.234L387.434 130.234L387.434 131.183L387.459 131.208Q387.784 130.671 388.308 130.365Q388.833 130.059 389.47 130.059Q390.531 130.059 391.143 130.608Q391.755 131.158 391.755 132.257L391.755 136.69L390.331 136.69L390.331 132.631Q390.306 131.87 390.007 131.526Q389.707 131.183 389.07 131.183Q388.708 131.183 388.421 131.314Q388.134 131.445 387.934 131.676Q387.734 131.907 387.622 132.219Q387.509 132.532 387.509 132.881L387.509 136.69L386.086 136.69ZM393.291 130.234L394.64 130.234L394.64 131.108L394.665 131.108Q394.964 130.546 395.501 130.302Q396.038 130.059 396.663 130.059Q397.425 130.059 397.993 130.327Q398.561 130.596 398.936 131.064Q399.31 131.532 399.498 132.157Q399.685 132.781 399.685 133.493Q399.685 134.142 399.516 134.754Q399.348 135.366 399.004 135.835Q398.661 136.303 398.136 136.584Q397.612 136.865 396.9 136.865Q396.588 136.865 396.276 136.809Q395.964 136.752 395.676 136.628Q395.389 136.503 395.146 136.309Q394.902 136.116 394.74 135.853L394.715 135.853L394.715 139.075L393.291 139.075ZM398.261 133.468Q398.261 133.031 398.149 132.619Q398.037 132.207 397.812 131.888Q397.587 131.57 397.25 131.376Q396.913 131.183 396.476 131.183Q395.576 131.183 395.121 131.807Q394.665 132.432 394.665 133.468Q394.665 133.955 394.783 134.374Q394.902 134.792 395.139 135.092Q395.377 135.391 395.708 135.566Q396.038 135.741 396.476 135.741Q396.963 135.741 397.3 135.541Q397.637 135.341 397.855 135.023Q398.074 134.704 398.168 134.299Q398.261 133.893 398.261 133.468ZM406.553 136.69L405.155 136.69L405.155 135.791L405.13 135.791Q404.867 136.278 404.349 136.571Q403.831 136.865 403.294 136.865Q402.02 136.865 401.452 136.234Q400.884 135.604 400.884 134.33L400.884 130.234L402.307 130.234L402.307 134.19Line truncated
<path d="M350.045 153.607L350.045 160.04L351.009 160.04L351.009 153.607L353.424 153.607L353.424 152.795L347.63 152.795L347.63 153.607ZM353.12 154.794L353.12 160.04L353.982 160.04L353.982 157.706Q353.982 157.199 354.083 156.808Q354.185 156.417 354.408 156.143Q354.631 155.869 354.997 155.727Q355.362 155.585 355.879 155.585L355.879 154.672Q355.179 154.652 354.723 154.956Q354.266 155.261 353.952 155.9L353.931 155.9L353.931 154.794ZM361.176 160.019Q360.953 160.151 360.557 160.151Q360.222 160.151 360.024 159.964Q359.826 159.776 359.826 159.35Q359.471 159.776 358.999 159.964Q358.528 160.151 357.98 160.151Q357.625 160.151 357.305 160.07Q356.985 159.989 356.752 159.816Q356.519 159.644 356.382 159.365Q356.245 159.086 356.245 158.69Q356.245 158.244 356.397 157.96Q356.549 157.676 356.798 157.498Q357.046 157.32 357.366 157.229Q357.685 157.138 358.02 157.077Q358.375 157.006 358.695 156.97Q359.015 156.935 359.258 156.869Q359.502 156.803 359.644 156.676Q359.786 156.549 359.786 156.306Q359.786 156.022 359.679 155.849Q359.573 155.677 359.405 155.585Q359.238 155.494 359.03 155.464Q358.822 155.433 358.619 155.433Q358.071 155.433 357.706 155.641Q357.34 155.849 357.31 156.427L356.448 156.427Q356.468 155.94 356.651 155.606Q356.833 155.271 357.138 155.063Q357.442 154.855 357.833 154.763Q358.223 154.672 358.67 154.672Q359.025 154.672 359.375 154.723Q359.725 154.774 360.009 154.931Q360.293 155.088 360.466 155.372Q360.638 155.656 360.638 156.113L360.638 158.812Q360.638 159.116 360.674 159.258Q360.709 159.4 360.912 159.4Q361.024 159.4 361.176 159.35ZM359.776 157.331Q359.613 157.452 359.35 157.508Q359.086 157.564 358.797 157.599Q358.507 157.635 358.213 157.681Q357.919 157.726 357.685 157.828Q357.452 157.929 357.305 158.117Q357.158 158.305 357.158 158.629Q357.158 158.842 357.244 158.989Q357.33 159.137 357.467 159.228Q357.604 159.319 357.787 159.36Q357.97 159.4 358.173 159.4Q358.599 159.4 358.903 159.284Q359.207 159.167 359.4 158.989Q359.593 158.812 359.684 158.604Q359.776 158.396 359.776 158.213ZM361.977 154.794L361.977 160.04L362.84 160.04L362.84 157.077Q362.84 156.722 362.936 156.422Q363.033 156.123 363.225 155.9Q363.418 155.677 363.707 155.555Q363.997 155.433 364.392 155.433Q364.889 155.433 365.174 155.717Q365.458 156.001 365.458 156.488L365.458 160.04L366.32 160.04L366.32 156.59Q366.32 156.164 366.234 155.814Q366.148 155.464 365.935 155.21Q365.722 154.956 365.377 154.814Q365.032 154.672 364.514 154.672Q363.347 154.672 362.809 155.626L362.789 155.626L362.789 154.794ZM368.147 158.386L367.284 158.386Q367.304 158.873 367.487 159.213Q367.67 159.553 367.974 159.761Q368.278 159.969 368.674 160.06Q369.07 160.151 369.506 160.151Q369.902 160.151 370.303 160.075Q370.703 159.999 371.023 159.806Q371.343 159.613 371.541 159.299Q371.738 158.984 371.738 158.508Q371.738 158.132 371.591 157.878Q371.444 157.625 371.206 157.457Q370.967 157.29 370.658 157.188Q370.348 157.087 370.024 157.016Q369.719 156.945 369.415 156.879Q369.11 156.813 368.867 156.717Q368.623 156.62 368.466 156.473Q368.309 156.326 368.309 156.103Q368.309 155.9 368.41 155.773Q368.512 155.646 368.674 155.57Q368.836 155.494 369.034 155.464Q369.232 155.433 369.425 155.433Q369.638 155.433 369.846 155.479Q370.054 155.524 370.227 155.626Q370.399 155.727 370.511 155.895Q370.622 156.062 370.643 156.316L371.505 156.316Q371.475 155.839 371.302 155.519Q371.13 155.2 370.84 155.012Q370.551 154.824 370.176 154.748Q369.8 154.672 369.354 154.672Q369.009 154.672 368.659 154.758Q368.309 154.845 368.03 155.022Q367.751 155.2 367.573 155.484Q367.396 155.768 367.396 156.164Q367.396 156.671 367.649 156.955Q367.903 157.239 368.283 157.396Q368.664 157.554 369.11 157.64Q369.557 157.726 369.937 157.833Q370.318 157.939 370.572 158.112Q370.825 158.284 370.825 158.619Q370.825 158.863 370.703 159.02Q370.582 159.177 370.394 159.258Q370.206 159.34 369.983 159.37Q369.76 159.4 369.557 159.4Q369.293 159.4 369.044 159.35Q368.796 159.299 368.598 159.182Q368.4 159.066 368.278 158.868Q368.157 158.67 368.147 158.386ZM376.254 156.478L377.146 156.478Q377.096 156.011 376.903 155.672Q376.71 155.332 376.411 155.108Q376.112 154.885 375.721 154.779Q375.33 154.672 374.884 154.672Q374.265 154.672 373.798 154.89Q373.331 155.108 373.022 155.489Q372.712 155.869 372.56 156.382Q372.408 156.894 372.408 157.483Q372.408 158.071 372.565 158.563Q372.723 159.055 373.032 159.411Q373.342 159.766 373.803 159.958Q374.265 160.151 374.863 160.151Q375.868 160.151 376.451 159.624Q377.035 159.096 377.177 158.122L376.294 158.122Q376.213 158.731 375.853 159.066Q375.493 159.4 374.853 159.4Q374.447 159.4 374.153 159.238Q373.859 159.076 373.676 158.807Q373.494 158.538 373.407 158.193Q373.321 157.848 373.321 157.483Q373.321 157.087 373.402 156.717Q373.484 156.346 373.671 156.062Q373.859 155.778 374.174 155.606Q374.488 155.433 374.955 155.433Q375.503 155.433 375.827 155.707Q376.152 155.981 376.254 156.478ZM378.11 154.794L378.11 160.04L378.973 160.04L378.973 157.706Q378.973 157.199 379.074 156.808Q379.176 156.417 379.399 156.143Q379.622 155.869 379.987 155.727Q3Line truncated
<path d="M352.602 177.289L352.602 172.043L351.74 172.043L351.74 175.006Q351.74 175.361 351.643 175.66Q351.547 175.959 351.354 176.183Q351.161 176.406 350.872 176.528Q350.583 176.649 350.187 176.649Q349.69 176.649 349.406 176.365Q349.122 176.081 349.122 175.594L349.122 172.043L348.259 172.043L348.259 175.493Q348.259 175.919 348.346 176.269Q348.432 176.619 348.645 176.873Q348.858 177.126 349.203 177.263Q349.548 177.4 350.065 177.4Q350.644 177.4 351.07 177.172Q351.496 176.944 351.77 176.457L351.79 176.457L351.79 177.289ZM354.428 175.635L353.566 175.635Q353.586 176.122 353.769 176.462Q353.952 176.802 354.256 177.01Q354.56 177.218 354.956 177.309Q355.352 177.4 355.788 177.4Q356.184 177.4 356.585 177.324Q356.985 177.248 357.305 177.055Q357.625 176.863 357.822 176.548Q358.02 176.233 358.02 175.757Q358.02 175.381 357.873 175.127Q357.726 174.874 357.488 174.706Q357.249 174.539 356.94 174.438Q356.63 174.336 356.306 174.265Q356.001 174.194 355.697 174.128Q355.392 174.062 355.149 173.966Q354.905 173.869 354.748 173.722Q354.591 173.575 354.591 173.352Q354.591 173.149 354.692 173.022Q354.794 172.895 354.956 172.819Q355.118 172.743 355.316 172.713Q355.514 172.682 355.707 172.682Q355.92 172.682 356.128 172.728Q356.336 172.773 356.508 172.875Q356.681 172.976 356.793 173.144Q356.904 173.311 356.924 173.565L357.787 173.565Q357.757 173.088 357.584 172.768Q357.412 172.449 357.122 172.261Q356.833 172.073 356.458 171.997Q356.082 171.921 355.636 171.921Q355.291 171.921 354.941 172.007Q354.591 172.094 354.312 172.271Q354.033 172.449 353.855 172.733Q353.678 173.017 353.678 173.413Q353.678 173.92 353.931 174.204Q354.185 174.488 354.565 174.646Q354.946 174.803 355.392 174.889Q355.839 174.975 356.219 175.082Q356.6 175.188 356.853 175.361Q357.107 175.533 357.107 175.868Q357.107 176.112 356.985 176.269Q356.864 176.426 356.676 176.507Q356.488 176.589 356.265 176.619Q356.042 176.649 355.839 176.649Q355.575 176.649 355.326 176.599Q355.078 176.548 354.88 176.431Q354.682 176.315 354.56 176.117Q354.439 175.919 354.428 175.635ZM362.617 174.164L359.603 174.164Q359.623 173.859 359.735 173.59Q359.847 173.321 360.039 173.118Q360.232 172.916 360.501 172.799Q360.77 172.682 361.105 172.682Q361.43 172.682 361.698 172.799Q361.967 172.916 362.165 173.113Q362.363 173.311 362.48 173.585Q362.596 173.859 362.617 174.164ZM363.449 175.625L362.596 175.625Q362.485 176.142 362.135 176.396Q361.785 176.649 361.237 176.649Q360.811 176.649 360.496 176.507Q360.182 176.365 359.979 176.127Q359.776 175.888 359.684 175.579Q359.593 175.27 359.603 174.925L363.53 174.925Q363.55 174.448 363.444 173.92Q363.337 173.392 363.058 172.946Q362.779 172.5 362.317 172.21Q361.856 171.921 361.156 171.921Q360.618 171.921 360.166 172.124Q359.715 172.327 359.385 172.692Q359.055 173.058 358.873 173.555Q358.69 174.052 358.69 174.651Q358.71 175.249 358.868 175.757Q359.025 176.264 359.339 176.629Q359.654 176.994 360.116 177.197Q360.577 177.4 361.206 177.4Q362.099 177.4 362.688 176.954Q363.276 176.507 363.449 175.625ZM367.213 172.043L367.213 177.289L368.075 177.289L368.075 174.955Q368.075 174.448 368.177 174.057Q368.278 173.666 368.502 173.392Q368.725 173.118 369.09 172.976Q369.455 172.834 369.973 172.834L369.973 171.921Q369.273 171.901 368.816 172.205Q368.36 172.51 368.045 173.149L368.025 173.149L368.025 172.043ZM374.082 174.164L371.069 174.164Q371.089 173.859 371.201 173.59Q371.312 173.321 371.505 173.118Q371.698 172.916 371.967 172.799Q372.236 172.682 372.57 172.682Q372.895 172.682 373.164 172.799Q373.433 172.916 373.631 173.113Q373.829 173.311 373.945 173.585Q374.062 173.859 374.082 174.164ZM374.914 175.625L374.062 175.625Q373.95 176.142 373.6 176.396Q373.25 176.649 372.702 176.649Q372.276 176.649 371.962 176.507Q371.647 176.365 371.444 176.127Q371.241 175.888 371.15 175.579Q371.059 175.27 371.069 174.925L374.995 174.925Q375.016 174.448 374.909 173.92Q374.803 173.392 374.524 172.946Q374.245 172.5 373.783 172.21Q373.321 171.921 372.621 171.921Q372.083 171.921 371.632 172.124Q371.18 172.327 370.851 172.692Q370.521 173.058 370.338 173.555Q370.156 174.052 370.156 174.651Q370.176 175.249 370.333 175.757Q370.49 176.264 370.805 176.629Q371.119 176.994 371.581 177.197Q372.043 177.4 372.672 177.4Q373.565 177.4 374.153 176.954Q374.742 176.507 374.914 175.625ZM376.517 174.711Q376.517 174.326 376.599 173.961Q376.68 173.595 376.862 173.311Q377.045 173.027 377.349 172.855Q377.654 172.682 378.09 172.682Q378.537 172.682 378.851 172.85Q379.166 173.017 379.363 173.291Q379.561 173.565 379.653 173.925Q379.744 174.285 379.744 174.671Q379.744 175.036 379.658 175.391Q379.571 175.746 379.379 176.025Q379.186 176.304 378.882 176.477Q378.577 176.649 378.141 176.649Q377.725 176.649 377.415 176.487Q377.106 176.325 376.908 176.051Q376.71 175.777 376.614 175.427Q376.517 175.077 376.517 174.711ZM380.576 179.288L380.576 172.043L379.714 172.043L379.714 172.743L379.693 172.743Q379.551 172.51 379.343 172.352Q379.135 172.195 378.902 172.099Q378.668 172.002 378.435 171.962Q378.202 171.921 377.999 171.921Q377.4 171.921 376.949 1Line truncated
<rect x="347.61" y="194.567" width="244.78" height="0.5" fill="#000000" fill-opacity="0.04"/>
<path d="M349.493 214.856L350.626 211.737L350.645 211.737L351.759 214.856ZM350.158 210.931L347.554 217.619L348.462 217.619L349.212 215.605L352.04 215.605L352.771 217.619L353.754 217.619L351.141 210.931ZM356.292 217.619L358.062 212.777L357.229 212.777L355.908 216.813L355.89 216.813L354.531 212.777L353.642 212.777L355.44 217.619ZM363.083 217.6Q362.877 217.722 362.511 217.722Q362.202 217.722 362.02 217.548Q361.837 217.375 361.837 216.982Q361.509 217.375 361.074 217.548Q360.638 217.722 360.132 217.722Q359.805 217.722 359.51 217.647Q359.214 217.572 358.999 217.413Q358.784 217.253 358.657 216.996Q358.531 216.738 358.531 216.373Q358.531 215.961 358.671 215.699Q358.812 215.436 359.041 215.273Q359.271 215.109 359.566 215.024Q359.861 214.94 360.17 214.884Q360.498 214.818 360.793 214.786Q361.088 214.753 361.312 214.692Q361.537 214.631 361.668 214.514Q361.799 214.397 361.799 214.172Q361.799 213.91 361.701 213.751Q361.603 213.591 361.448 213.507Q361.294 213.423 361.102 213.395Q360.91 213.367 360.722 213.367Q360.217 213.367 359.879 213.559Q359.542 213.751 359.514 214.284L358.718 214.284Q358.737 213.835 358.905 213.526Q359.074 213.217 359.355 213.025Q359.636 212.833 359.997 212.748Q360.357 212.664 360.769 212.664Q361.097 212.664 361.42 212.711Q361.743 212.758 362.006 212.903Q362.268 213.048 362.427 213.31Q362.586 213.573 362.586 213.994L362.586 216.485Q362.586 216.766 362.619 216.898Q362.652 217.029 362.839 217.029Q362.942 217.029 363.083 216.982ZM361.79 215.118Q361.64 215.23 361.397 215.282Q361.153 215.333 360.886 215.366Q360.619 215.399 360.348 215.441Q360.076 215.483 359.861 215.577Q359.645 215.671 359.51 215.844Q359.374 216.017 359.374 216.317Q359.374 216.514 359.453 216.649Q359.533 216.785 359.659 216.869Q359.786 216.954 359.954 216.991Q360.123 217.029 360.31 217.029Q360.704 217.029 360.985 216.921Q361.266 216.813 361.444 216.649Q361.622 216.485 361.706 216.293Q361.79 216.101 361.79 215.933ZM364.665 211.905L364.665 210.931L363.869 210.931L363.869 211.905ZM363.869 212.777L363.869 217.619L364.665 217.619L364.665 212.777ZM365.949 210.931L365.949 217.619L366.745 217.619L366.745 210.931ZM372.271 217.6Q372.065 217.722 371.699 217.722Q371.39 217.722 371.208 217.548Q371.025 217.375 371.025 216.982Q370.697 217.375 370.262 217.548Q369.826 217.722 369.32 217.722Q368.993 217.722 368.698 217.647Q368.403 217.572 368.187 217.413Q367.972 217.253 367.845 216.996Q367.719 216.738 367.719 216.373Q367.719 215.961 367.859 215.699Q368 215.436 368.229 215.273Q368.459 215.109 368.754 215.024Q369.049 214.94 369.358 214.884Q369.686 214.818 369.981 214.786Q370.276 214.753 370.501 214.692Q370.725 214.631 370.856 214.514Q370.988 214.397 370.988 214.172Q370.988 213.91 370.889 213.751Q370.791 213.591 370.636 213.507Q370.482 213.423 370.29 213.395Q370.098 213.367 369.91 213.367Q369.405 213.367 369.068 213.559Q368.73 213.751 368.702 214.284L367.906 214.284Q367.925 213.835 368.093 213.526Q368.262 213.217 368.543 213.025Q368.824 212.833 369.185 212.748Q369.545 212.664 369.957 212.664Q370.285 212.664 370.608 212.711Q370.931 212.758 371.194 212.903Q371.456 213.048 371.615 213.31Q371.774 213.573 371.774 213.994L371.774 216.485Q371.774 216.766 371.807 216.898Q371.84 217.029 372.027 217.029Q372.13 217.029 372.271 216.982ZM370.978 215.118Q370.828 215.23 370.585 215.282Q370.341 215.333 370.074 215.366Q369.807 215.399 369.536 215.441Q369.264 215.483 369.049 215.577Q368.833 215.671 368.698 215.844Q368.562 216.017 368.562 216.317Q368.562 216.514 368.641 216.649Q368.721 216.785 368.847 216.869Q368.974 216.954 369.142 216.991Q369.311 217.029 369.498 217.029Q369.892 217.029 370.173 216.921Q370.454 216.813 370.632 216.649Q370.81 216.485 370.894 216.293Q370.978 216.101 370.978 215.933ZM373.039 210.931L373.039 217.619L373.835 217.619L373.835 216.972L373.854 216.972Q373.985 217.188 374.177 217.333Q374.369 217.478 374.584 217.563Q374.799 217.647 375.02 217.684Q375.24 217.722 375.418 217.722Q375.97 217.722 376.387 217.525Q376.804 217.328 377.08 216.987Q377.356 216.645 377.492 216.186Q377.628 215.727 377.628 215.212Q377.628 214.697 377.488 214.238Q377.347 213.779 377.071 213.427Q376.794 213.076 376.378 212.87Q375.961 212.664 375.399 212.664Q374.893 212.664 374.472 212.847Q374.05 213.029 373.854 213.432L373.835 213.432L373.835 210.931ZM376.785 215.155Q376.785 215.511 376.71 215.849Q376.635 216.186 376.467 216.448Q376.298 216.71 376.022 216.869Q375.745 217.029 375.333 217.029Q374.921 217.029 374.631 216.874Q374.341 216.72 374.158 216.467Q373.975 216.214 373.891 215.881Q373.807 215.549 373.807 215.193Q373.807 214.856 373.886 214.528Q373.966 214.2 374.144 213.943Q374.322 213.685 374.603 213.526Q374.884 213.367 375.287 213.367Q375.671 213.367 375.956 213.516Q376.242 213.666 376.424 213.919Q376.607 214.172 376.696 214.495Q376.785 214.818 376.785 215.155ZM378.611 210.931L378.611 217.619L379.408 217.619L379.408 210.931ZM384.006 214.734L381.225 214.734Q381.243 214.453 381.346 214.205Q381.449 213.957 381.627 213.769Q381.805 213.582 382.053 213.474Q382.302 213.367 382.611 213.367Q3Line truncated
<rect x="548.158" y="230.47" width="44.232" height="21.854" rx="6.244" fill="#0F1115"/>
<path d="M556.693 238.249L556.693 244.936L561.339 244.936L561.339 244.187L557.583 244.187L557.583 241.874L561.058 241.874L561.058 241.124L557.583 241.124L557.583 238.998L561.31 238.998L561.31 238.249ZM562.285 240.094L562.285 244.936L563.081 244.936L563.081 242.201Q563.081 241.874 563.17 241.597Q563.259 241.321 563.437 241.115Q563.615 240.909 563.881 240.796Q564.148 240.684 564.514 240.684Q564.973 240.684 565.235 240.946Q565.497 241.209 565.497 241.658L565.497 244.936L566.293 244.936L566.293 241.752Q566.293 241.358 566.214 241.035Q566.134 240.712 565.937 240.478Q565.741 240.244 565.422 240.113Q565.104 239.982 564.626 239.982Q563.549 239.982 563.053 240.862L563.034 240.862L563.034 240.094ZM571.782 244.918Q571.576 245.039 571.21 245.039Q570.901 245.039 570.719 244.866Q570.536 244.693 570.536 244.299Q570.208 244.693 569.773 244.866Q569.337 245.039 568.831 245.039Q568.504 245.039 568.209 244.964Q567.914 244.889 567.698 244.73Q567.483 244.571 567.356 244.313Q567.23 244.056 567.23 243.691Q567.23 243.278 567.37 243.016Q567.511 242.754 567.74 242.59Q567.97 242.426 568.265 242.342Q568.56 242.258 568.869 242.201Q569.197 242.136 569.492 242.103Q569.787 242.07 570.012 242.009Q570.236 241.948 570.367 241.831Q570.499 241.714 570.499 241.49Q570.499 241.227 570.4 241.068Q570.302 240.909 570.147 240.825Q569.993 240.74 569.801 240.712Q569.609 240.684 569.421 240.684Q568.916 240.684 568.579 240.876Q568.241 241.068 568.213 241.602L567.417 241.602Q567.436 241.152 567.604 240.843Q567.773 240.534 568.054 240.342Q568.335 240.15 568.696 240.066Q569.056 239.982 569.468 239.982Q569.796 239.982 570.119 240.028Q570.442 240.075 570.705 240.22Q570.967 240.366 571.126 240.628Q571.285 240.89 571.285 241.312L571.285 243.803Q571.285 244.084 571.318 244.215Q571.351 244.346 571.538 244.346Q571.641 244.346 571.782 244.299ZM570.489 242.436Q570.339 242.548 570.096 242.599Q569.852 242.651 569.585 242.684Q569.318 242.716 569.047 242.759Q568.775 242.801 568.56 242.894Q568.344 242.988 568.209 243.161Q568.073 243.335 568.073 243.634Q568.073 243.831 568.152 243.967Q568.232 244.103 568.358 244.187Q568.485 244.271 568.653 244.309Q568.822 244.346 569.009 244.346Q569.403 244.346 569.684 244.238Q569.965 244.131 570.143 243.967Q570.321 243.803 570.405 243.611Q570.489 243.419 570.489 243.25ZM572.55 238.249L572.55 244.936L573.346 244.936L573.346 244.29L573.365 244.29Q573.496 244.505 573.688 244.651Q573.88 244.796 574.095 244.88Q574.31 244.964 574.531 245.002Q574.751 245.039 574.929 245.039Q575.481 245.039 575.898 244.843Q576.315 244.646 576.591 244.304Q576.867 243.962 577.003 243.503Q577.139 243.044 577.139 242.529Q577.139 242.014 576.999 241.555Q576.858 241.096 576.582 240.745Q576.305 240.394 575.889 240.188Q575.472 239.982 574.91 239.982Q574.404 239.982 573.983 240.164Q573.561 240.347 573.365 240.75L573.346 240.75L573.346 238.249ZM576.296 242.473Q576.296 242.829 576.221 243.166Q576.146 243.503 575.978 243.765Q575.809 244.028 575.533 244.187Q575.256 244.346 574.844 244.346Q574.432 244.346 574.142 244.192Q573.852 244.037 573.669 243.784Q573.486 243.531 573.402 243.199Q573.318 242.866 573.318 242.51Q573.318 242.173 573.397 241.845Q573.477 241.518 573.655 241.26Q573.833 241.003 574.114 240.843Q574.395 240.684 574.798 240.684Q575.182 240.684 575.467 240.834Q575.753 240.984 575.935 241.237Q576.118 241.49 576.207 241.813Q576.296 242.136 576.296 242.473ZM578.122 238.249L578.122 244.936L578.919 244.936L578.919 238.249ZM583.517 242.052L580.736 242.052Q580.754 241.771 580.857 241.522Q580.96 241.274 581.138 241.087Q581.316 240.899 581.564 240.792Q581.813 240.684 582.122 240.684Q582.421 240.684 582.67 240.792Q582.918 240.899 583.1 241.082Q583.283 241.265 583.391 241.518Q583.499 241.771 583.517 242.052ZM584.285 243.4L583.499 243.4Q583.396 243.878 583.072 244.112Q582.749 244.346 582.243 244.346Q581.85 244.346 581.56 244.215Q581.269 244.084 581.082 243.864Q580.895 243.644 580.811 243.358Q580.726 243.072 580.736 242.754L584.36 242.754Q584.379 242.314 584.281 241.827Q584.182 241.34 583.925 240.928Q583.667 240.515 583.241 240.249Q582.815 239.982 582.169 239.982Q581.672 239.982 581.255 240.169Q580.839 240.356 580.534 240.693Q580.23 241.031 580.061 241.49Q579.893 241.948 579.893 242.501Q579.911 243.054 580.057 243.522Q580.202 243.99 580.492 244.327Q580.782 244.665 581.209 244.852Q581.635 245.039 582.215 245.039Q583.04 245.039 583.583 244.627Q584.126 244.215 584.285 243.4Z" fill="#FFFFFF"/>
<path d="M499.454 238.249L499.454 244.936L500.297 244.936L500.297 239.57L500.316 239.57L503.809 244.936L504.784 244.936L504.784 238.249L503.941 238.249L503.941 243.672L503.922 243.672L500.4 238.249ZM506.675 242.52Q506.675 242.08 506.793 241.738Q506.91 241.396 507.116 241.162Q507.322 240.928 507.598 240.806Q507.874 240.684 508.183 240.684Q508.492 240.684 508.769 240.806Q509.045 240.928 509.251 241.162Q509.457 241.396 509.574 241.738Q509.691 242.08 509.691 242.52Q509.691 242.96 509.574 243.302Q509.457 243.644 509.251 243.873Q509.045 244.103 508.769 244.224Q508.492 244.346 508.183 244.346Q507.874 244.346 507.598 244.224Q507.322 244.103 507.116 243.873Q506.91 243.644 506.793 243.302Q506.675 242.96 506.675 242.52ZM505.833 242.52Q505.833 243.054 505.982 243.513Q506.132 243.972 506.432 244.313Q506.732 244.655 507.172 244.847Q507.612 245.039 508.183 245.039Q508.764 245.039 509.2 244.847Q509.635 244.655 509.935 244.313Q510.235 243.972 510.384 243.513Q510.534 243.054 510.534 242.52Q510.534 241.986 510.384 241.522Q510.235 241.059 509.935 240.717Q509.635 240.375 509.2 240.178Q508.764 239.982 508.183 239.982Q507.612 239.982 507.172 240.178Q506.732 240.375 506.432 240.717Q506.132 241.059 505.982 241.522Q505.833 241.986 505.833 242.52ZM512.576 240.094L512.576 238.642L511.78 238.642L511.78 240.094L510.956 240.094L510.956 240.796L511.78 240.796L511.78 243.878Q511.78 244.215 511.846 244.421Q511.911 244.627 512.047 244.74Q512.183 244.852 512.403 244.894Q512.623 244.936 512.932 244.936L513.541 244.936L513.541 244.234L513.175 244.234Q512.988 244.234 512.871 244.22Q512.754 244.206 512.688 244.159Q512.623 244.112 512.599 244.028Q512.576 243.943 512.576 243.803L512.576 240.796L513.541 240.796L513.541 240.094ZM517.025 240.094L517.025 244.936L517.821 244.936L517.821 242.201Q517.821 241.874 517.91 241.597Q517.999 241.321 518.177 241.115Q518.355 240.909 518.622 240.796Q518.889 240.684 519.254 240.684Q519.713 240.684 519.975 240.946Q520.237 241.209 520.237 241.658L520.237 244.936L521.034 244.936L521.034 241.752Q521.034 241.358 520.954 241.035Q520.874 240.712 520.678 240.478Q520.481 240.244 520.163 240.113Q519.844 239.982 519.366 239.982Q518.289 239.982 517.793 240.862L517.774 240.862L517.774 240.094ZM522.813 242.52Q522.813 242.08 522.93 241.738Q523.047 241.396 523.253 241.162Q523.459 240.928 523.736 240.806Q524.012 240.684 524.321 240.684Q524.63 240.684 524.906 240.806Q525.183 240.928 525.389 241.162Q525.595 241.396 525.712 241.738Q525.829 242.08 525.829 242.52Q525.829 242.96 525.712 243.302Q525.595 243.644 525.389 243.873Q525.183 244.103 524.906 244.224Q524.63 244.346 524.321 244.346Q524.012 244.346 523.736 244.224Q523.459 244.103 523.253 243.873Q523.047 243.644 522.93 243.302Q522.813 242.96 522.813 242.52ZM521.97 242.52Q521.97 243.054 522.12 243.513Q522.27 243.972 522.57 244.313Q522.869 244.655 523.31 244.847Q523.75 245.039 524.321 245.039Q524.902 245.039 525.337 244.847Q525.773 244.655 526.072 244.313Q526.372 243.972 526.522 243.513Q526.672 243.054 526.672 242.52Q526.672 241.986 526.522 241.522Q526.372 241.059 526.072 240.717Q525.773 240.375 525.337 240.178Q524.902 239.982 524.321 239.982Q523.75 239.982 523.31 240.178Q522.869 240.375 522.57 240.717Q522.27 241.059 522.12 241.522Q521.97 241.986 521.97 242.52ZM532.404 244.936L533.949 240.094L533.125 240.094L532.039 244.056L532.02 244.056L531.008 240.094L530.137 240.094L529.163 244.056L529.145 244.056L528.049 240.094L527.168 240.094L528.723 244.936L529.585 244.936L530.559 241.087L530.578 241.087L531.561 244.936Z" fill="#0F1115"/>
</svg>

After

Width:  |  Height:  |  Size: 277 KiB

@@ -0,0 +1,35 @@
<svg xmlns="http://www.w3.org/2000/svg" width="640" height="300" viewBox="0 0 640 300" fill="none">
<rect width="640" height="300" fill="#F5F6FC"/>
<rect x="73.91" y="32.001" width="234.09" height="36.414" rx="17.34" fill="#EDF3FE"/>
<path d="M94.846 47.039L94.846 51.009C94.846 51.118 94.834 51.239 94.834 51.361C94.506 51.543 94.167 51.725 93.827 51.895L93.827 46.59C94.701 46.287 95.393 45.947 95.902 45.583L95.441 44.915C94.871 45.328 94.082 45.704 93.062 46.032L93.062 51.761C93.062 52.052 92.965 52.259 92.783 52.368L93.013 53.121C93.645 52.817 94.227 52.514 94.761 52.222C94.676 52.805 94.543 53.315 94.349 53.752C93.997 54.419 93.402 54.953 92.552 55.366L92.965 56.034C93.887 55.609 94.543 55.026 94.943 54.274C95.356 53.448 95.575 52.368 95.599 51.009L95.599 47.039L94.846 47.039ZM98.172 53.982C98.73 53.982 99.01 53.63 99.01 52.951L99.01 45.692L96.376 45.692L96.376 55.973L97.14 55.973L97.14 46.457L98.257 46.457L98.257 52.793C98.257 53.084 98.136 53.242 97.905 53.242L97.322 53.206L97.541 53.982L98.172 53.982ZM88.377 45.389L88.377 46.19L88.984 46.19L88.984 53.643L88.243 53.788L88.45 54.589C89.421 54.371 90.355 54.128 91.253 53.861L91.253 55.961L92.042 55.961L92.042 53.606L92.528 53.436L92.528 52.586C92.37 52.647 92.212 52.708 92.042 52.769L92.042 46.19L92.625 46.19L92.625 45.389L88.377 45.389ZM89.797 53.448L89.797 51.3L91.253 51.3L91.253 53.036C90.768 53.181 90.282 53.327 89.797 53.448ZM89.797 50.499L89.797 48.775L91.253 48.775L91.253 50.499L89.797 50.499ZM89.797 47.986L89.797 46.19L91.253 46.19L91.253 47.986L89.797 47.986ZM100.879 49.176L100.879 50.013L105.103 50.013C104.897 50.814 104.642 51.482 104.326 52.016C103.561 53.303 102.275 54.407 100.466 55.33L101.012 56.046C102.954 55.014 104.326 53.776 105.151 52.344C105.467 51.785 105.722 51.081 105.928 50.256C106.79 52.756 108.465 54.686 110.966 56.046L111.512 55.342C109.133 54.104 107.518 52.319 106.669 50.013L111.136 50.013L111.136 49.176L106.159 49.176C106.305 48.35 106.402 47.428 106.475 46.384L110.784 46.384L110.784 45.534L101.194 45.534L101.194 46.384L105.588 46.384C105.528 47.416 105.431 48.35 105.285 49.176L100.879 49.176ZM116.549 45.789L113.053 45.789L113.053 55.026L113.903 55.026L113.903 53.922L115.699 53.922L115.699 54.735L116.549 54.735L116.549 45.789ZM113.903 53.108L113.903 50.183L115.699 50.183L115.699 53.108L113.903 53.108ZM113.903 49.37L113.903 46.59L115.699 46.59L115.699 49.37L113.903 49.37ZM118.297 49.406L117.581 49.855C118.309 50.972 118.88 51.992 119.304 52.902L120.033 52.392C119.632 51.543 119.049 50.547 118.297 49.406ZM121.064 55.888C121.817 55.888 122.193 55.5 122.193 54.735L122.193 47.95L123.686 47.95L123.686 47.112L122.193 47.112L122.193 44.976L121.307 44.976L121.307 47.112L117.107 47.112L117.107 47.95L121.307 47.95L121.307 54.516C121.307 54.893 121.125 55.087 120.773 55.087C120.13 55.087 119.462 55.063 118.758 55.038L118.94 55.888L121.064 55.888ZM130.204 45.364L130.204 51.385L134.865 51.385L134.865 45.364L130.204 45.364ZM134.016 50.608L131.054 50.608L131.054 49.588L134.016 49.588L134.016 50.608ZM131.054 48.872L131.054 47.889L134.016 47.889L134.016 48.872L131.054 48.872ZM131.054 47.161L131.054 46.141L134.016 46.141L134.016 47.161L131.054 47.161ZM127.789 48.496C128.189 48.86 128.675 49.358 129.233 49.989L129.719 49.261C129.063 48.702 128.42 48.193 127.789 47.743L127.789 47.173L129.403 47.173L129.403 46.372L127.789 46.372L127.789 45.025L126.915 45.025L126.915 46.372L124.912 46.372L124.912 47.173L126.891 47.173C126.344 48.326 125.592 49.334 124.645 50.183L124.973 51.009C125.75 50.183 126.393 49.285 126.915 48.314L126.915 51.567L127.789 51.567L127.789 48.496ZM125.992 52.259C125.75 53.266 125.349 54.177 124.791 55.002L125.543 55.475C126.102 54.626 126.539 53.606 126.854 52.441L125.992 52.259ZM131.891 55.755C132.365 55.755 132.705 55.657 132.923 55.475C133.19 55.245 133.36 54.626 133.445 53.618L132.62 53.339C132.571 54.092 132.462 54.553 132.316 54.711C132.195 54.832 132.001 54.905 131.734 54.905L129.124 54.905C128.76 54.905 128.578 54.723 128.578 54.359L128.578 52.101L127.692 52.101L127.692 54.541C127.692 55.342 128.08 55.755 128.857 55.755L131.891 55.755ZM130.192 51.87L129.512 52.295C130.071 52.902 130.52 53.473 130.86 53.982L131.552 53.497C131.236 53.036 130.775 52.489 130.192 51.87ZM133.979 51.931L133.275 52.38C134.04 53.4 134.647 54.322 135.108 55.16L135.848 54.638C135.412 53.861 134.792 52.963 133.979 51.931ZM140.692 50.535L140.692 51.385L143.471 51.385L143.471 54.735L140.194 54.735L140.194 55.597L147.804 55.597L147.804 54.735L144.357 54.735L144.357 51.385L147.258 51.385L147.258 50.535L144.357 50.535L144.357 48.278L143.471 48.278L143.471 50.535L140.692 50.535ZM138.737 51.069L138.737 56.046L139.599 56.046L139.599 50.074C140.255 49.249 140.825 48.35 141.298 47.391L147.792 47.391L147.792 46.53L141.687 46.53C141.905 46.008 142.087 45.461 142.257 44.903L141.347 44.794C141.177 45.389 140.959 45.971 140.716 46.53L137.184 46.53L137.184 47.391L140.303 47.391C139.453 49.006 138.276 50.438 136.759 51.688L137.305 52.404C137.815 51.98 138.288 51.53 138.737 51.069ZM149.759 45.911L149.759 46.712L151.737 46.712C151.907 47.137 152.077 47.61 152.235 48.12L149.746 48.12L149.746 50.013L150.608 50.013L150.608 48.921L158.462 48.921L158.462 50.013L159.323 50.013L159.323 48.12L156.714 48.1Line truncated
<rect x="32" y="82.287" width="276" height="180.509" rx="13.872" fill="#FFFFFF"/>
<rect x="32" y="82.287" width="276" height="180.509" rx="13.872" stroke="#000000" stroke-opacity="0.1" stroke-width="0.5"/>
<path d="M54.157 103.341L54.157 109.791L54.927 109.791L54.927 103.341L54.157 103.341ZM54.209 100.272C53.158 101.832 51.66 103.112 49.715 104.1L50.162 104.777C51.931 103.882 53.387 102.613 54.542 100.969C55.499 102.467 56.966 103.715 58.922 104.735L59.369 104.059C57.247 102.966 55.749 101.707 54.875 100.272L54.209 100.272ZM60.514 102.269C60.483 103.268 60.358 104.215 60.139 105.109L60.753 105.286C60.961 104.35 61.086 103.351 61.107 102.311L60.514 102.269ZM63.125 102.051L62.574 102.228C62.813 102.81 63.011 103.424 63.167 104.059L63.687 103.923C63.593 104.132 63.489 104.35 63.375 104.579L63.926 105.078C64.291 104.433 64.571 103.726 64.759 102.966L66.382 102.966L66.382 105.484L63.999 105.484L63.999 106.223L66.382 106.223L66.382 108.761L63.406 108.761L63.406 109.49L69.69 109.49L69.69 108.761L67.152 108.761L67.152 106.223L69.264 106.223L69.264 105.484L67.152 105.484L67.152 102.966L69.42 102.966L69.42 102.248L67.152 102.248L67.152 100.303L66.382 100.303L66.382 102.248L64.894 102.248C64.956 101.853 64.998 101.437 65.019 101L64.343 100.906C64.291 101.936 64.082 102.904 63.729 103.809C63.552 103.143 63.354 102.56 63.125 102.051ZM61.638 100.292L61.638 109.76L62.397 109.76L62.397 100.292L61.638 100.292ZM73.758 100.188C73.092 101.832 72.021 103.289 70.543 104.558L70.783 105.338C71.334 104.881 71.844 104.392 72.312 103.882L72.312 109.822L73.061 109.822L73.061 102.966C73.623 102.196 74.091 101.385 74.455 100.511L73.758 100.188ZM78.554 109.635C79.054 109.635 79.397 109.51 79.584 109.261C79.761 109.011 79.886 108.283 79.959 107.086L79.262 106.857C79.22 107.887 79.147 108.491 79.033 108.657C78.908 108.824 78.7 108.917 78.43 108.917L76.744 108.917C76.39 108.917 76.224 108.751 76.224 108.428L76.224 104.912C77.514 104.1 78.648 103.174 79.616 102.134L79.095 101.541C78.274 102.467 77.316 103.299 76.224 104.027L76.224 100.313L75.475 100.313L75.475 104.485C74.944 104.797 74.382 105.078 73.8 105.349L74.133 106.056C74.591 105.838 75.038 105.609 75.475 105.359L75.475 108.532C75.475 109.261 75.839 109.635 76.567 109.635L78.554 109.635ZM88.969 102.54L85.91 102.54C86.014 102.186 86.087 101.801 86.149 101.406L90.332 101.406L90.332 100.698L81.176 100.698L81.176 101.406L85.359 101.406C85.307 101.801 85.234 102.176 85.13 102.54L82.498 102.54L82.498 107.482L83.247 107.482L83.247 103.268L88.22 103.268L88.22 107.461L88.969 107.461L88.969 102.54ZM86.441 107.482L86.025 108.095C87.263 108.512 88.469 109.094 89.656 109.833L90.113 109.125C89.01 108.48 87.783 107.939 86.441 107.482ZM85.369 103.892L85.369 105.546C85.338 106.462 85.047 107.201 84.485 107.773C83.892 108.324 82.841 108.761 81.332 109.094L81.759 109.76C83.278 109.406 84.37 108.917 85.036 108.283C85.723 107.596 86.097 106.691 86.139 105.546L86.139 103.892L85.369 103.892ZM91.528 100.677L91.528 101.406L95.856 101.406C95.773 101.863 95.638 102.3 95.471 102.737L92.121 102.737L92.121 109.833L92.839 109.833L92.839 109.313L99.508 109.313L99.508 109.833L100.226 109.833L100.226 102.737L96.231 102.737C96.397 102.311 96.533 101.863 96.616 101.406L100.788 101.406L100.788 100.677L91.528 100.677ZM92.839 108.626L92.839 103.414L94.275 103.414L94.275 108.626L92.839 108.626ZM94.972 108.626L94.972 107.294L97.344 107.294L97.344 108.626L94.972 108.626ZM98.041 108.626L98.041 103.414L99.508 103.414L99.508 108.626L98.041 108.626ZM94.972 106.639L94.972 105.37L97.344 105.37L97.344 106.639L94.972 106.639ZM94.972 104.704L94.972 103.414L97.344 103.414L97.344 104.704L94.972 104.704Z" fill="#61666B"/>
<g transform="translate(110.897 98.76) scale(0.759)" fill="none" stroke="#61666B" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><path d="M6.87 2.6a1.33 1.33 0 0 1 2.26 0l5.34 9.33A1.33 1.33 0 0 1 13.33 14H2.67a1.33 1.33 0 0 1-1.14-2.07Z"/><path d="M8 6v3m0 2.33h.01"/></g>
<path d="M54.265 135.694L54.265 136.997L57.899 136.997L57.899 144.475L59.258 144.475L59.258 136.997L62.699 136.997L62.699 135.694L59.258 135.694L59.258 131.629L57.899 131.629L57.899 135.694L54.265 135.694ZM51.74 131.754L50.824 132.656C51.809 133.377 52.572 134.071 53.127 134.722L54.029 133.807C53.404 133.113 52.642 132.434 51.74 131.754ZM49.909 135.777L49.909 137.039L51.851 137.039L51.851 142.144C51.851 142.421 51.726 142.657 51.49 142.851L51.99 144.031C53.002 143.379 53.959 142.63 54.847 141.797L54.5 140.452C54.015 140.909 53.557 141.326 53.113 141.686L53.113 135.777L49.909 135.777ZM72.465 134.917L74.254 134.917C74.199 136.581 73.949 138.052 73.491 139.328C73.006 138.246 72.603 136.984 72.298 135.541C72.354 135.347 72.409 135.139 72.465 134.917ZM72.895 140.674C72.284 141.769 71.466 142.657 70.439 143.351L71.119 144.447C72.09 143.753 72.909 142.893 73.561 141.88C74.226 142.949 75.003 143.809 75.905 144.461L76.64 143.392C75.697 142.754 74.892 141.853 74.199 140.701C74.948 139.106 75.364 137.178 75.447 134.917L76.252 134.917L76.252 133.654L72.728 133.654C72.839 133.086 72.922 132.489 73.006 131.851L71.716 131.629C71.438 134.209 70.911 136.262 70.134 137.788L70.966 138.815C71.216 138.399 71.438 137.927 71.66 137.428C72.007 138.634 72.423 139.716 72.895 140.674ZM66.319 138.08C66.236 138.329 66.139 138.607 66.028 138.884L64.072 138.884L64.072 140.008L65.529 140.008C65.265 140.535 64.96 141.076 64.627 141.658C65.265 141.908 65.875 142.144 66.444 142.38C65.695 142.768 64.793 143.073 63.753 143.323L64.363 144.405C65.737 144.044 66.888 143.573 67.804 142.976C68.567 143.323 69.219 143.656 69.76 143.989L70.467 142.962C69.94 142.685 69.385 142.408 68.816 142.158C69.454 141.52 69.898 140.785 70.148 139.952L70.148 138.884L67.318 138.884C67.401 138.662 67.471 138.454 67.554 138.232L66.319 138.08ZM67.609 141.658C67.152 141.464 66.68 141.298 66.194 141.131C66.416 140.771 66.625 140.396 66.819 140.008L68.969 140.008C68.664 140.618 68.22 141.173 67.609 141.658ZM65.362 131.851L64.322 132.198C64.641 132.711 64.946 133.308 65.223 133.973L66.167 133.543C65.931 132.933 65.667 132.378 65.362 131.851ZM69.343 131.837C69.094 132.392 68.747 132.961 68.303 133.543L69.219 134.015C69.649 133.446 69.995 132.864 70.273 132.281L69.343 131.837ZM64.1 134.209L64.1 135.361L65.848 135.361C65.432 135.999 64.752 136.595 63.781 137.15L64.433 138.218C65.501 137.469 66.264 136.595 66.722 135.596L66.722 137.941L67.928 137.941L67.928 136.387C68.359 136.665 68.872 137.053 69.482 137.539L70.176 136.498C69.413 136.096 68.664 135.735 67.928 135.43L67.928 135.361L70.342 135.361L70.342 134.209L67.928 134.209L67.928 131.657L66.722 131.657L66.722 134.209L64.1 134.209ZM78.929 132.101L78.929 135.707L83.382 135.707L83.382 132.101L78.929 132.101ZM82.189 134.612L80.122 134.612L80.122 133.224L82.189 133.224L82.189 134.612ZM84.672 132.101L84.672 135.707L87.502 135.707L86.475 136.04C86.656 136.276 86.836 136.54 87.002 136.831L83.909 136.831C84.062 136.554 84.2 136.276 84.325 135.985L83.063 135.846C82.924 136.179 82.73 136.512 82.494 136.831L77.861 136.831L77.861 137.996L81.315 137.996C80.399 138.676 79.165 139.245 77.611 139.689L78.208 140.757C78.513 140.66 78.818 140.563 79.123 140.452L79.123 144.461L80.275 144.461L80.275 143.92L82.286 143.92L82.286 144.461L83.451 144.461L83.451 139.924L80.386 139.924C81.468 139.397 82.355 138.745 83.049 137.996L85.296 137.996C85.907 138.718 86.781 139.356 87.89 139.924L84.575 139.924L84.575 144.461L85.74 144.461L85.74 143.92L87.987 143.92L87.987 144.461L89.153 144.461L89.153 140.479C89.388 140.563 89.638 140.66 89.916 140.757L90.443 139.647C88.861 139.231 87.627 138.69 86.753 137.996L90.179 137.996L90.179 136.831L88.293 136.831C88.098 136.443 87.863 136.068 87.599 135.707L89.25 135.707L89.25 132.101L84.672 132.101ZM88.057 134.612L85.865 134.612L85.865 133.224L88.057 133.224L88.057 134.612ZM80.275 142.796L80.275 141.007L82.286 141.007L82.286 142.796L80.275 142.796ZM85.74 142.796L85.74 141.007L87.987 141.007L87.987 142.796L85.74 142.796Z" fill="#0F1115"/>
<path d="M53.386 164.999L53.386 165.788L55.967 165.788L55.967 168.899L52.924 168.899L52.924 169.699L59.991 169.699L59.991 168.899L56.79 168.899L56.79 165.788L59.484 165.788L59.484 164.999L56.79 164.999L56.79 162.903L55.967 162.903L55.967 164.999L53.386 164.999ZM51.572 165.495L51.572 170.116L52.372 170.116L52.372 164.571C52.981 163.804 53.51 162.97 53.95 162.08L59.98 162.08L59.98 161.28L54.311 161.28C54.513 160.795 54.682 160.288 54.84 159.769L53.995 159.668C53.837 160.22 53.634 160.761 53.409 161.28L50.129 161.28L50.129 162.08L53.026 162.08C52.237 163.579 51.143 164.909 49.734 166.07L50.242 166.735C50.715 166.34 51.155 165.923 51.572 165.495ZM61.997 163.421L61.997 164.21L69.673 164.21L69.673 166.059L62.527 166.059L62.527 166.836L69.673 166.836L69.673 168.775L61.93 168.775L61.93 169.564L69.673 169.564L69.673 170.003L70.496 170.003L70.496 163.421L66.697 163.421L66.697 159.86L65.841 159.86L65.841 163.421L61.997 163.421ZM69.797 160.344C69.436 161.088 68.963 161.832 68.377 162.576L69.109 162.959C69.695 162.227 70.169 161.471 70.529 160.682L69.797 160.344ZM62.798 160.446L62.11 160.874C62.719 161.64 63.192 162.339 63.541 162.97L64.229 162.497C63.891 161.911 63.417 161.223 62.798 160.446ZM79.49 159.668C79.242 160.186 78.949 160.682 78.622 161.156L76.424 161.156C76.176 160.626 75.928 160.153 75.68 159.736L74.824 159.882C75.094 160.265 75.331 160.682 75.556 161.156L72.468 161.156L72.468 161.945L82.556 161.945L82.556 161.156L79.512 161.156C79.783 160.795 80.042 160.389 80.279 159.938L79.49 159.668ZM76.379 170.015C77.022 170.015 77.348 169.632 77.348 168.865L77.348 162.858L73.257 162.858L73.257 170.105L74.046 170.105L74.046 167.637L76.559 167.637L76.559 168.685C76.559 169.057 76.413 169.248 76.12 169.248L75.275 169.215L75.489 170.015L76.379 170.015ZM74.046 166.915L74.046 165.63L76.559 165.63L76.559 166.915L74.046 166.915ZM74.046 164.909L74.046 163.613L76.559 163.613L76.559 164.909L74.046 164.909ZM80.764 169.981C81.429 169.981 81.767 169.632 81.767 168.944L81.767 162.542L80.955 162.542L80.955 168.741C80.955 169.079 80.797 169.26 80.482 169.26C80.031 169.26 79.569 169.237 79.095 169.203L79.265 169.981L80.764 169.981ZM78.611 163.387L78.611 168.245L79.4 168.245L79.4 163.387L78.611 163.387ZM88.495 159.747C87.165 161.268 85.509 162.531 83.525 163.545L83.953 164.323C85.959 163.241 87.571 161.956 88.789 160.468C90.118 162.046 91.708 163.331 93.579 164.312L94.018 163.534C92.159 162.61 90.513 161.347 89.082 159.747L88.495 159.747ZM86.038 163.207L86.038 163.974L91.572 163.974L91.572 163.207L86.038 163.207ZM84.269 165.473L84.269 166.262L87.098 166.262C86.613 167.186 86.005 168.054 85.283 168.888C85.193 168.978 85.058 169.045 84.855 169.102L85.08 169.812C87.774 169.654 89.994 169.429 91.753 169.147C91.978 169.462 92.181 169.767 92.373 170.071L93.049 169.598C92.497 168.752 91.708 167.761 90.682 166.611L90.051 167.017C90.513 167.535 90.93 168.054 91.313 168.55C89.645 168.775 87.898 168.933 86.061 169.045C86.827 168.245 87.481 167.321 88.022 166.262L93.331 166.262L93.331 165.473L84.269 165.473ZM98.482 163.038L98.482 163.827L101.57 163.827L101.57 165.642L99.462 165.642L99.462 170.049L100.262 170.049L100.262 169.485L103.723 169.485L103.723 170.049L104.534 170.049L104.534 165.642L102.393 165.642L102.393 163.827L105.301 163.827L105.301 163.038L102.393 163.038L102.393 161.156C103.339 161.021 104.185 160.818 104.906 160.558L104.512 159.871C102.979 160.389 101.04 160.649 98.707 160.649L98.944 161.381C99.879 161.381 100.758 161.336 101.57 161.257L101.57 163.038L98.482 163.038ZM100.262 168.719L100.262 166.374L103.723 166.374L103.723 168.719L100.262 168.719ZM96.25 159.86L95.686 160.412C96.498 161.021 97.152 161.607 97.625 162.159L98.177 161.595C97.659 161.009 97.016 160.434 96.25 159.86ZM94.897 163.196L94.897 163.974L96.554 163.974L96.554 168.482C96.554 168.651 96.464 168.809 96.306 168.955L96.622 169.677C97.4 169.169 98.132 168.595 98.808 167.941L98.594 167.084C98.143 167.524 97.715 167.907 97.332 168.223L97.332 163.196L94.897 163.196ZM115.298 164.661L109.64 164.661C110.113 163.917 110.508 163.083 110.846 162.159L116.346 162.159L116.346 161.381L111.094 161.381C111.24 160.874 111.364 160.344 111.477 159.792L110.654 159.691C110.542 160.277 110.406 160.84 110.237 161.381L106.484 161.381L106.484 162.159L109.967 162.159C109.178 164.221 107.893 165.833 106.112 166.983L106.54 167.749C107.487 167.152 108.321 166.408 109.031 165.518L109.031 170.094L109.843 170.094L109.843 169.474L114.498 169.474L114.498 170.094L115.298 170.094L115.298 164.661ZM109.843 168.696L109.843 165.439L114.498 165.439L114.498 168.696L109.843 168.696ZM124.067 160.333L120.437 160.333L120.437 167.242L121.159 167.242L121.159 161.032L123.345 161.032L123.345 167.197L124.067 167.197L124.067 160.333ZM122.906 167.704L122.41 168.189C123.052 168.865 123.56 169.496 123.92 170.094L124.484 169.53C124.055 168.921 123.537 168.313 122.906 167.704ZM121.937 161.607L121.937 165.213C121.914 166.295 121.756 167.186 121.486 167.862C121.17 168.516 120.64 169.034 119.874 169.429L120.291 170.082C121.08 1Line truncated
<path d="M54.48 184.475L54.006 184.915C54.423 185.163 54.818 185.445 55.201 185.772L51.786 185.772L51.786 186.448L56.858 186.448C56.283 186.921 55.652 187.35 54.953 187.71C54.299 187.462 53.612 187.248 52.902 187.045L52.496 187.643C54.006 188.06 55.483 188.634 56.914 189.356L57.331 188.713C56.824 188.465 56.294 188.229 55.753 188.015C56.542 187.541 57.264 186.978 57.94 186.335L57.94 185.772L55.539 185.772L55.821 185.445C55.415 185.062 54.964 184.746 54.48 184.475ZM54.592 183.247C53.341 184.092 51.741 184.791 49.802 185.355L50.253 186.008C52.079 185.433 53.657 184.678 54.964 183.732C56.136 184.678 57.703 185.433 59.653 186.008L60.104 185.343C58.052 184.802 56.463 184.104 55.359 183.269L55.359 181.229L58.796 181.229L58.796 182.74L59.574 182.74L59.574 180.598L55.359 180.598L55.359 179.922L59.112 179.922L59.112 179.268L50.839 179.268L50.839 179.922L54.592 179.922L54.592 180.598L50.377 180.598L50.377 182.74L51.155 182.74L51.155 181.229L54.592 181.229L54.592 183.247ZM51.718 181.849L51.718 182.379L54.017 182.379L54.017 181.849L51.718 181.849ZM51.696 182.965L51.696 183.495L54.029 183.495L54.029 182.965L51.696 182.965ZM55.956 181.849L55.956 182.379L58.222 182.379L58.222 181.849L55.956 181.849ZM55.945 182.965L55.945 183.495L58.255 183.495L58.255 182.965L55.945 182.965ZM62.707 186.775C62.482 186.775 62.313 186.831 62.178 186.966C62.042 187.09 61.975 187.259 61.975 187.474C61.975 187.665 62.042 187.834 62.178 187.969C62.313 188.105 62.471 188.172 62.662 188.172C62.775 188.172 62.865 188.15 62.91 188.127C62.91 188.398 62.82 188.646 62.662 188.882C62.482 189.108 62.245 189.277 61.952 189.378L61.952 189.931C62.426 189.807 62.82 189.559 63.113 189.198C63.406 188.815 63.553 188.375 63.553 187.879C63.553 187.552 63.474 187.293 63.327 187.09C63.17 186.876 62.955 186.775 62.707 186.775ZM79.298 181.41L80.966 181.41C80.921 182.931 80.685 184.261 80.245 185.4C79.794 184.453 79.434 183.315 79.152 181.996L79.298 181.41ZM79.873 186.211C79.355 187.169 78.667 187.947 77.788 188.556L78.205 189.232C79.05 188.623 79.749 187.868 80.29 186.966C80.854 187.913 81.53 188.68 82.319 189.243L82.759 188.578C81.947 188.026 81.259 187.248 80.673 186.234C81.305 184.904 81.654 183.292 81.71 181.41L82.443 181.41L82.443 180.632L79.467 180.632C79.558 180.136 79.648 179.595 79.715 179.02L78.926 178.885C78.701 181.027 78.25 182.728 77.585 183.991L78.092 184.611C78.329 184.205 78.554 183.743 78.757 183.224C79.062 184.351 79.434 185.343 79.873 186.211ZM74.531 184.149C74.452 184.374 74.362 184.611 74.26 184.859L72.615 184.859L72.615 185.569L73.945 185.569C73.719 186.02 73.46 186.482 73.167 186.978C73.719 187.181 74.238 187.395 74.734 187.609C74.08 187.981 73.28 188.285 72.355 188.533L72.739 189.209C73.866 188.894 74.801 188.477 75.545 187.958C76.21 188.251 76.785 188.556 77.281 188.849L77.72 188.217C77.224 187.947 76.706 187.699 76.165 187.451C76.751 186.91 77.168 186.268 77.416 185.524L77.416 184.859L75.06 184.859C75.128 184.656 75.207 184.453 75.286 184.239L74.531 184.149ZM75.421 187.135C75.015 186.966 74.587 186.809 74.136 186.651C74.362 186.313 74.564 185.952 74.745 185.569L76.683 185.569C76.413 186.155 75.985 186.685 75.421 187.135ZM73.505 179.122L72.863 179.336C73.133 179.764 73.381 180.249 73.618 180.801L74.204 180.531C74.001 180.035 73.776 179.561 73.505 179.122ZM76.931 179.088C76.729 179.561 76.435 180.035 76.075 180.519L76.65 180.812C77.01 180.339 77.292 179.854 77.518 179.358L76.931 179.088ZM72.637 181.072L72.637 181.782L74.238 181.782C73.9 182.402 73.291 182.965 72.423 183.472L72.817 184.126C73.787 183.472 74.463 182.706 74.835 181.816L74.835 183.957L75.59 183.957L75.59 182.492C75.996 182.762 76.481 183.123 77.044 183.574L77.461 182.943C76.83 182.559 76.199 182.21 75.59 181.906L75.59 181.782L77.641 181.782L77.641 181.072L75.59 181.072L75.59 178.919L74.835 178.919L74.835 181.072L72.637 181.072ZM90.096 178.863C90.073 179.223 90.04 179.595 90.006 179.967L87.041 179.967L87.041 180.711L89.927 180.711C89.882 181.038 89.825 181.365 89.78 181.692L87.718 181.692L87.718 188.161L86.557 188.161L86.557 188.905L93.939 188.905L93.939 188.161L92.869 188.161L92.869 181.692L90.581 181.692C90.626 181.376 90.682 181.049 90.727 180.711L93.612 180.711L93.612 179.967L90.817 179.967C90.84 179.651 90.874 179.313 90.896 178.975L90.096 178.863ZM88.495 188.161L88.495 187.169L92.091 187.169L92.091 188.161L88.495 188.161ZM88.495 186.516L88.495 185.569L92.091 185.569L92.091 186.516L88.495 186.516ZM88.495 184.915L88.495 183.991L92.091 183.991L92.091 184.915L88.495 184.915ZM88.495 183.337L88.495 182.424L92.091 182.424L92.091 183.337L88.495 183.337ZM85.171 182.695L85.171 189.243L85.959 189.243L85.959 181.308C86.286 180.643 86.568 179.945 86.794 179.212L86.061 178.874C85.565 180.61 84.753 182.154 83.638 183.495L83.908 184.351C84.37 183.833 84.787 183.281 85.171 182.695ZM95.359 179.358L95.359 189.164L96.115 189.164L96.115 180.08L97.445 180.08C97.276 180.97 97.028 181.962 96.712 183.055C97.219 183.934 97.478 184.735 97.478 185.433C97.478 185.681 97.433 185.851 97.366 185.952C97.276Line truncated
<rect x="49.34" y="207.309" width="241.32" height="0.5" fill="#000000" fill-opacity="0.04"/>
<path d="M52.773 229.167L52.773 229.864L55.01 229.864C54.927 230.322 54.813 230.759 54.646 231.175L52.295 231.175L52.295 231.893L54.313 231.893C54.271 231.955 54.23 232.017 54.188 232.09C53.689 232.839 52.95 233.495 51.962 234.036L52.43 234.629C53.47 233.994 54.261 233.276 54.792 232.475C54.896 232.288 55 232.101 55.104 231.893L56.103 231.893C56.675 232.975 57.653 233.859 59.037 234.535L59.359 233.88C58.235 233.401 57.403 232.735 56.862 231.893L59.047 231.893L59.047 231.175L55.395 231.175C55.541 230.769 55.655 230.332 55.759 229.864L58.589 229.864L58.589 229.167L52.773 229.167ZM53.408 234.66C53.033 235.68 52.586 236.554 52.076 237.292L52.69 237.729C53.2 236.949 53.647 236.023 54.032 234.962L53.408 234.66ZM50.557 228.907L50.037 229.406C50.734 229.885 51.286 230.342 51.681 230.769L52.191 230.259C51.754 229.801 51.202 229.354 50.557 228.907ZM50.308 231.393L49.798 231.893C50.505 232.434 51.057 232.954 51.462 233.432L51.972 232.923C51.525 232.413 50.973 231.903 50.308 231.393ZM51.254 234.265C50.849 235.513 50.37 236.741 49.829 237.927L50.526 238.239C51.025 237.074 51.494 235.836 51.91 234.525L51.254 234.265ZM54.771 238.301C55.291 238.301 55.551 238 55.551 237.407L55.551 233.422L54.833 233.422L54.833 237.23C54.833 237.5 54.719 237.646 54.511 237.646C54.24 237.646 53.949 237.625 53.647 237.594L53.803 238.301L54.771 238.301ZM57.986 234.41L57.33 234.629C57.788 235.503 58.204 236.522 58.589 237.667L59.255 237.376C58.901 236.325 58.475 235.336 57.986 234.41ZM56.612 234.785L55.978 235.003C56.384 235.877 56.748 236.876 57.081 238.021L57.746 237.719C57.424 236.678 57.049 235.7 56.612 234.785ZM69.222 230.301L65.82 230.301L65.82 238.135L66.538 238.135L66.538 237.438L68.494 237.438L68.494 238.135L69.222 238.135L69.222 230.301ZM66.538 236.72L66.538 231.019L68.494 231.019L68.494 236.72L66.538 236.72ZM61.991 228.782L61.991 230.883L60.327 230.883L60.327 231.612L61.991 231.612C61.96 234.462 61.336 236.543 60.129 237.844L60.68 238.333C62.012 236.918 62.699 234.681 62.74 231.612L64.124 231.612C64.103 234.4 64.062 236.075 63.999 236.616C63.916 237.209 63.604 237.511 63.073 237.511C62.824 237.511 62.532 237.49 62.199 237.469L62.387 238.156C62.761 238.177 63.021 238.197 63.177 238.197C64.093 238.197 64.603 237.76 64.707 236.907C64.811 236.137 64.863 234.129 64.863 230.883L62.74 230.883L62.74 228.782L61.991 228.782ZM76.026 236.554C75.319 236.71 74.601 236.855 73.862 236.98L73.862 235.139L75.735 235.139L75.735 234.41L73.862 234.41L73.862 233.204L73.113 233.204L73.113 234.41L71.084 234.41L71.084 235.139L73.113 235.139L73.113 237.105C72.322 237.23 71.511 237.334 70.679 237.428L70.845 238.145C72.697 237.917 74.424 237.625 76.026 237.292L76.026 236.554ZM70.814 229.208L70.814 229.916L72.52 229.916C71.927 231.112 71.417 231.893 70.991 232.267C70.918 232.298 70.814 232.319 70.689 232.34L70.866 233.016C72.426 232.86 73.873 232.663 75.184 232.434C75.35 232.715 75.496 232.985 75.631 233.256L76.255 232.819C75.881 232.122 75.35 231.3 74.653 230.363L74.081 230.738C74.362 231.123 74.622 231.497 74.851 231.872C73.914 232.038 72.936 232.163 71.906 232.267C72.343 231.737 72.811 230.956 73.311 229.916L75.985 229.916L75.985 229.208L70.814 229.208ZM78.731 238.197C79.356 238.197 79.678 237.875 79.678 237.24L79.678 228.782L78.919 228.782L78.919 237.053C78.919 237.355 78.763 237.511 78.471 237.511C78.013 237.511 77.535 237.49 77.035 237.469L77.202 238.197L78.731 238.197ZM76.838 229.718L76.838 236.158L77.566 236.158L77.566 229.718L76.838 229.718Z" fill="#61666B"/>
<rect x="87.705" y="221.397" width="69.794" height="23.843" rx="6.936" stroke="#000000" stroke-opacity="0.12" stroke-width="0.5"/>
<path d="M105.761 233.284L100.103 233.284C100.576 232.54 100.971 231.706 101.309 230.782L106.809 230.782L106.809 230.004L101.557 230.004C101.703 229.497 101.827 228.967 101.94 228.415L101.117 228.314C101.005 228.9 100.869 229.463 100.7 230.004L96.947 230.004L96.947 230.782L100.43 230.782C99.641 232.845 98.356 234.456 96.575 235.606L97.003 236.372C97.95 235.775 98.784 235.031 99.494 234.141L99.494 238.717L100.306 238.717L100.306 238.097L104.961 238.097L104.961 238.717L105.761 238.717L105.761 233.284ZM100.306 237.319L100.306 234.062L104.961 234.062L104.961 237.319L100.306 237.319ZM114.53 228.956L110.9 228.956L110.9 235.865L111.622 235.865L111.622 229.655L113.808 229.655L113.808 235.82L114.53 235.82L114.53 228.956ZM113.369 236.327L112.873 236.812C113.515 237.488 114.023 238.119 114.383 238.717L114.947 238.153C114.518 237.545 114 236.936 113.369 236.327ZM112.4 230.23L112.4 233.836C112.377 234.918 112.219 235.809 111.949 236.485C111.633 237.139 111.103 237.657 110.337 238.052L110.754 238.705C111.543 238.3 112.118 237.725 112.478 236.992C112.839 236.203 113.031 235.155 113.053 233.836L113.053 230.23L112.4 230.23ZM109.029 232.45L109.029 238.717L109.773 238.717L109.773 231.052C110.111 230.309 110.405 229.508 110.641 228.652L109.931 228.325C109.492 230.072 108.793 231.616 107.823 232.969L108.083 233.814C108.421 233.386 108.736 232.923 109.029 232.45ZM116.806 238.615C117.438 238.615 117.765 238.277 117.765 237.612L117.765 228.404L116.976 228.404L116.976 237.421C116.976 237.747 116.829 237.916 116.536 237.916C116.175 237.916 115.803 237.894 115.42 237.86L115.589 238.615L116.806 238.615ZM115.319 229.407L115.319 236.395L116.029 236.395L116.029 229.407L115.319 229.407ZM124.572 228.516L123.862 228.866C124.245 229.452 124.617 230.106 124.967 230.85L125.688 230.489C125.339 229.768 124.967 229.114 124.572 228.516ZM127.852 228.381C127.536 229.418 127.165 230.376 126.736 231.255L123.535 231.255L123.535 232.044L129.114 232.044L129.114 231.255L127.582 231.255C127.987 230.511 128.337 229.644 128.652 228.663L127.852 228.381ZM121.8 232.89C122.138 233.34 122.532 233.904 122.983 234.603L123.468 233.893C122.904 233.183 122.352 232.551 121.8 231.988L121.8 231.357L123.152 231.357L123.152 230.579L121.8 230.579L121.8 228.381L120.977 228.381L120.977 230.579L119.331 230.579L119.331 231.357L120.932 231.357C120.571 232.743 119.951 233.983 119.072 235.065L119.421 235.944C120.064 235.02 120.582 233.983 120.977 232.845L120.977 238.66L121.8 238.66L121.8 232.89ZM123.062 237.308L123.062 238.097L129.453 238.097L129.453 237.308L123.062 237.308ZM123.896 234.186L123.896 234.975L128.765 234.975L128.765 234.186L123.896 234.186Z" fill="#0F1115"/>
<g transform="translate(136.907 227.25) scale(0.759)" fill="none" stroke="#0F1115" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><path d="M4 6L7.29289 9.29289C7.68342 9.68342 8.31658 9.68342 8.70711 9.29289L12 6"/></g>
<rect x="252.512" y="221.181" width="38.148" height="24.276" rx="6.936" fill="#0F1115"/>
<path d="M265.645 232.756L265.645 234.629C265.645 234.91 265.5 235.055 265.229 235.055C264.917 235.055 264.563 235.035 264.168 234.993L264.355 235.7C264.719 235.721 265.104 235.732 265.5 235.732C266.072 235.711 266.363 235.42 266.374 234.858L266.374 232.09L262.67 232.09L262.67 237.313C262.67 237.844 262.951 238.114 263.533 238.114L266.009 238.114C266.498 238.114 266.831 238.031 266.998 237.865C267.185 237.656 267.32 237.115 267.393 236.231L266.686 236.002C266.644 236.574 266.571 236.959 266.478 237.157C266.394 237.324 266.166 237.417 265.812 237.417L263.825 237.417C263.554 237.417 263.429 237.292 263.429 237.053L263.429 232.756L265.645 232.756ZM264.324 228.844C263.492 230.093 262.566 231.175 261.546 232.101L261.983 232.704C263.003 231.747 263.887 230.696 264.657 229.552C265.323 230.259 266.103 231.206 266.998 232.392L267.487 231.872C266.655 230.811 265.781 229.801 264.875 228.844L264.324 228.844ZM268.101 229.666L268.101 236.148L268.829 236.148L268.829 229.666L268.101 229.666ZM269.838 238.197C270.421 238.197 270.722 237.875 270.722 237.251L270.722 228.782L269.973 228.782L269.973 237.063C269.973 237.376 269.838 237.532 269.578 237.532C269.099 237.532 268.59 237.511 268.059 237.48L268.226 238.197L269.838 238.197ZM280.679 233.016L280.679 231.56L281.376 231.56L281.376 230.935L280.679 230.935L280.679 229.489L278.453 229.489L278.453 228.73L277.724 228.73L277.724 229.489L275.904 229.489L275.904 230.114L277.724 230.114L277.724 230.935L275.394 230.935L275.394 231.56L277.724 231.56L277.724 232.392L275.904 232.392L275.904 233.016L277.724 233.016L277.724 233.849L275.685 233.849L275.685 234.462L277.724 234.462L277.724 235.326L275.363 235.326L275.363 235.961L277.724 235.961L277.724 236.991L278.453 236.991L278.453 235.961L281.189 235.961L281.189 235.326L278.453 235.326L278.453 234.462L280.887 234.462L280.887 233.849L278.453 233.849L278.453 233.016L280.679 233.016ZM278.453 230.114L279.951 230.114L279.951 230.935L278.453 230.935L278.453 230.114ZM278.453 231.56L279.951 231.56L279.951 232.392L278.453 232.392L278.453 231.56ZM277.964 237.365C276.549 237.344 275.477 237.147 274.77 236.751C274.593 236.647 274.426 236.512 274.26 236.335C274.759 235.378 275.04 234.213 275.082 232.839L275.082 232.392L273.448 232.392C273.948 231.685 274.468 230.863 274.988 229.905L274.988 229.292L272.439 229.292L272.439 229.999L274.145 229.999C273.646 230.894 273.084 231.726 272.481 232.496L272.481 233.079L274.405 233.079C274.343 234.067 274.135 234.931 273.781 235.669C273.511 235.211 273.261 234.608 273.053 233.869L272.429 234.098C272.678 234.993 273.011 235.732 273.417 236.314C273.084 236.793 272.678 237.209 272.189 237.563L272.678 238.197C273.157 237.833 273.573 237.407 273.906 236.918C274.01 237.022 274.125 237.115 274.26 237.219C275.071 237.76 276.413 238.031 278.286 238.031L281.366 238.031L281.491 237.313C280.284 237.344 279.108 237.365 277.964 237.365Z" fill="#FFFFFF"/>
<path d="M200.502 232.506C200.024 232.548 199.514 232.59 198.973 232.631L198.973 231.809L200.596 231.809L200.596 231.196L198.973 231.196L198.973 230.509L198.286 230.509L198.286 231.196L197.079 231.196C197.34 230.852 197.589 230.457 197.818 230.02L200.669 230.02L200.669 229.354L198.13 229.354C198.214 229.167 198.286 228.98 198.359 228.792L197.61 228.667C197.527 228.896 197.433 229.125 197.34 229.354L195.893 229.354L195.893 230.02L197.007 230.02C196.757 230.488 196.476 230.883 196.185 231.216L196.351 231.809L198.286 231.809L198.286 232.673C197.579 232.715 196.819 232.746 196.029 232.787L196.122 233.453C196.871 233.412 197.6 233.36 198.286 233.318L198.286 234.067L198.973 234.067L198.973 233.266C199.504 233.214 200.013 233.162 200.502 233.12L200.502 232.506ZM201.959 231.82L203.311 231.82L203.311 234.077L204.029 234.077L204.029 231.82L205.132 231.82L205.132 231.164L202.011 231.164L202.011 230.082C203.135 229.957 204.071 229.718 204.841 229.385L204.362 228.823C203.634 229.156 202.614 229.385 201.324 229.51L201.324 231.144C201.304 232.08 201.054 232.881 200.596 233.557L201.116 234.098C201.564 233.453 201.845 232.694 201.959 231.82ZM203.967 234.379L197.142 234.379L197.142 238.291L197.912 238.291L197.912 237.885L203.197 237.885L203.197 238.291L203.967 238.291L203.967 234.379ZM197.912 237.24L197.912 236.429L203.197 236.429L203.197 237.24L197.912 237.24ZM197.912 235.825L197.912 235.014L203.197 235.014L203.197 235.825L197.912 235.825ZM206.474 229.292L206.474 230.03L211.094 230.03C210.178 231.965 208.534 233.609 206.183 234.962L206.672 235.617C208.253 234.67 209.533 233.588 210.511 232.371L210.511 238.312L211.281 238.312L211.281 231.268C211.52 230.873 211.739 230.457 211.926 230.03L215.318 230.03L215.318 229.292L206.474 229.292ZM212.592 232.09L212.051 232.6C213.31 233.63 214.298 234.598 215.026 235.513L215.599 234.931C214.787 233.984 213.788 233.037 212.592 232.09ZM216.691 233.693L216.691 234.338L220.759 234.338L220.405 235.087L217.565 235.087L217.565 238.322L218.272 238.322L218.272 235.732L219.833 235.732L219.833 238.197L220.551 238.197L220.551 235.732L222.091 235.732L222.091 238.197L222.809 238.197L222.809 235.732L224.484 235.732L224.484 237.209C224.484 237.511 224.348 237.667 224.078 237.667L223.381 237.636L223.547 238.281L224.286 238.281C224.9 238.281 225.212 237.969 225.212 237.365L225.212 235.087L221.165 235.087L221.518 234.338L225.909 234.338L225.909 233.693L216.691 233.693ZM217.326 229.104L217.326 229.718L220.936 229.718L220.936 230.374L216.941 230.374L216.941 232.517L217.659 232.517L217.659 230.967L220.936 230.967L220.936 233.266L221.664 233.266L221.664 230.967L224.941 230.967L224.941 232.517L225.659 232.517L225.659 230.374L221.664 230.374L221.664 229.718L225.285 229.718L225.285 229.104L217.326 229.104ZM218.22 231.549L218.22 232.049L220.384 232.049L220.384 231.549L218.22 231.549ZM218.22 232.59L218.22 233.089L220.384 233.089L220.384 232.59L218.22 232.59ZM222.205 231.549L222.205 232.049L224.359 232.049L224.359 231.549L222.205 231.549ZM222.216 232.59L222.216 233.089L224.39 233.089L224.39 232.59L222.216 232.59ZM227.105 229.167L227.105 229.843L230.175 229.843L230.175 230.769L227.75 230.769L227.75 233.391L230.487 233.391C230.32 233.682 230.143 233.994 229.956 234.317L226.97 234.317L226.97 235.003L229.54 235.003C229.311 235.357 229.082 235.721 228.832 236.085C229.696 236.283 230.56 236.512 231.423 236.772C230.487 237.136 229.082 237.428 227.23 237.646L227.511 238.312C229.758 238.01 231.381 237.594 232.37 237.063C233.525 237.438 234.68 237.865 235.824 238.354L236.292 237.74C235.189 237.303 234.107 236.928 233.046 236.606C233.598 236.158 233.982 235.628 234.191 235.003L236.427 235.003L236.427 234.317L230.799 234.317C230.965 234.025 231.142 233.724 231.329 233.391L235.658 233.391L235.658 230.769L233.233 230.769L233.233 229.843L236.303 229.843L236.303 229.167L227.105 229.167ZM232.245 236.366C231.444 236.137 230.664 235.94 229.894 235.773C230.05 235.544 230.216 235.284 230.393 235.003L233.431 235.003C233.223 235.544 232.828 236.002 232.245 236.366ZM232.516 230.769L230.892 230.769L230.892 229.843L232.516 229.843L232.516 230.769ZM234.94 232.746L233.233 232.746L233.233 231.424L234.94 231.424L234.94 232.746ZM232.516 232.746L230.892 232.746L230.892 231.424L232.516 231.424L232.516 232.746ZM230.175 232.746L228.468 232.746L228.468 231.424L230.175 231.424L230.175 232.746Z" fill="#0F1115"/>
<rect x="434.6" y="32.001" width="173.4" height="36.414" rx="17.34" fill="#EDF3FE"/>
<path d="M454.675 50.523C453.995 50.754 453.254 50.972 452.465 51.178L452.465 48.994L455.451 48.994C455.548 49.916 455.682 50.717 455.852 51.409C455.973 51.882 456.107 52.332 456.252 52.744C455.366 53.582 454.335 54.225 453.145 54.662L453.619 55.415C454.723 54.978 455.718 54.371 456.592 53.594C456.787 54.031 457.017 54.419 457.26 54.747C457.818 55.475 458.34 55.839 458.838 55.839C459.396 55.839 459.821 54.978 460.112 53.254L459.348 52.854C459.153 54.213 458.947 54.893 458.704 54.905C458.474 54.905 458.158 54.601 457.77 54.019C457.575 53.74 457.406 53.388 457.236 52.975C458 52.162 458.656 51.191 459.214 50.05L458.462 49.649C458.025 50.547 457.503 51.348 456.92 52.052C456.835 51.785 456.75 51.506 456.677 51.191C456.532 50.596 456.422 49.868 456.337 48.994L460.015 48.994L460.015 48.156L456.265 48.156C456.192 47.209 456.155 46.129 456.143 44.903L455.269 44.903C455.269 46.093 455.306 47.173 455.379 48.156L452.465 48.156L452.465 46.335C453.097 46.165 453.703 45.983 454.262 45.789L453.971 44.964C452.635 45.486 451.106 45.838 449.382 46.032L449.564 46.869C450.256 46.772 450.924 46.663 451.567 46.53L451.567 48.156L449.067 48.156L449.067 48.994L451.567 48.994L451.567 51.385C450.778 51.555 449.941 51.7 449.055 51.846L449.176 52.732C450.001 52.599 450.79 52.441 451.567 52.271L451.567 54.577C451.567 54.905 451.397 55.075 451.057 55.075C450.657 55.075 450.244 55.051 449.819 55.014L450.001 55.852L451.349 55.852C452.089 55.852 452.465 55.5 452.465 54.796L452.465 52.065C453.242 51.858 453.971 51.64 454.675 51.409L454.675 50.523ZM457.478 45.037L456.896 45.595C457.818 46.238 458.534 46.845 459.068 47.404L459.7 46.772C459.093 46.19 458.352 45.619 457.478 45.037ZM466.618 45.364L466.618 51.385L471.279 51.385L471.279 45.364L466.618 45.364ZM470.43 50.608L467.468 50.608L467.468 49.588L470.43 49.588L470.43 50.608ZM467.468 48.872L467.468 47.889L470.43 47.889L470.43 48.872L467.468 48.872ZM467.468 47.161L467.468 46.141L470.43 46.141L470.43 47.161L467.468 47.161ZM464.203 48.496C464.603 48.86 465.089 49.358 465.647 49.989L466.133 49.261C465.477 48.702 464.834 48.193 464.203 47.743L464.203 47.173L465.817 47.173L465.817 46.372L464.203 46.372L464.203 45.025L463.329 45.025L463.329 46.372L461.326 46.372L461.326 47.173L463.305 47.173C462.758 48.326 462.006 49.334 461.059 50.183L461.387 51.009C462.164 50.183 462.807 49.285 463.329 48.314L463.329 51.567L464.203 51.567L464.203 48.496ZM462.406 52.259C462.164 53.266 461.763 54.177 461.205 55.002L461.957 55.475C462.516 54.626 462.953 53.606 463.268 52.441L462.406 52.259ZM468.305 55.755C468.779 55.755 469.119 55.657 469.337 55.475C469.604 55.245 469.774 54.626 469.859 53.618L469.034 53.339C468.985 54.092 468.876 54.553 468.73 54.711C468.609 54.832 468.415 54.905 468.148 54.905L465.538 54.905C465.174 54.905 464.992 54.723 464.992 54.359L464.992 52.101L464.106 52.101L464.106 54.541C464.106 55.342 464.494 55.755 465.271 55.755L468.305 55.755ZM466.606 51.87L465.926 52.295C466.485 52.902 466.934 53.473 467.274 53.982L467.966 53.497C467.65 53.036 467.189 52.489 466.606 51.87ZM470.393 51.931L469.689 52.38C470.454 53.4 471.061 54.322 471.522 55.16L472.262 54.638C471.826 53.861 471.206 52.963 470.393 51.931ZM473.67 45.983L473.67 46.821L478.222 46.821C478.162 47.149 478.089 47.489 478.016 47.828L475.176 47.828L475.176 54.917L473.44 54.917L473.44 55.73L484.206 55.73L484.206 54.917L482.41 54.917L482.41 47.828L478.914 47.828C478.987 47.513 479.06 47.173 479.12 46.821L483.964 46.821L483.964 45.983L479.254 45.983C479.303 45.656 479.339 45.316 479.375 44.964L478.489 44.842C478.453 45.219 478.404 45.595 478.356 45.983L473.67 45.983ZM476.037 54.917L476.037 53.849L481.548 53.849L481.548 54.917L476.037 54.917ZM476.037 53.133L476.037 52.101L481.548 52.101L481.548 53.133L476.037 53.133ZM476.037 51.397L476.037 50.377L481.548 50.377L481.548 51.397L476.037 51.397ZM476.037 49.661L476.037 48.605L481.548 48.605L481.548 49.661L476.037 49.661ZM491.307 46.93L490.591 47.27C490.846 47.707 491.089 48.193 491.331 48.727L489.474 48.727L489.474 49.564L496.247 49.564L496.247 48.727L494.281 48.727C494.56 48.241 494.815 47.695 495.046 47.088L494.22 46.797C493.977 47.476 493.698 48.12 493.358 48.727L492.169 48.727C491.902 48.071 491.623 47.476 491.307 46.93ZM492.909 44.806L491.999 44.952C492.145 45.255 492.29 45.595 492.424 45.959L489.753 45.959L489.753 46.76L496.029 46.76L496.029 45.959L493.31 45.959C493.176 45.534 493.043 45.146 492.909 44.806ZM486.852 55.9C487.568 55.9 487.933 55.548 487.933 54.844L487.933 51.251C488.273 51.094 488.612 50.924 488.952 50.742L488.952 49.855C488.612 50.038 488.273 50.207 487.933 50.377L487.933 48.047L488.94 48.047L488.94 47.209L487.933 47.209L487.933 44.915L487.034 44.915L487.034 47.209L485.554 47.209L485.554 48.047L487.034 48.047L487.034 50.754C486.476 50.972 485.906 51.154 485.335 51.3L485.554 52.174C486.051 52.016 486.549 51.834 487.034 51.64L487.034 54.626C487.034 54.941 486.864 55.099 486.549 55.099C486.258 55.099 485.942 55.075 485.614 55.051L485.796 55.9L486.852 55.9ZM491.841 49.904C491.708 50.244 4Line truncated
<rect x="332" y="82.287" width="276" height="185.711" rx="13.872" fill="#FFFFFF"/>
<path d="M332 115.233V96.159A13.872 13.872 0 0 1 345.872 82.287H594.128A13.872 13.872 0 0 1 608 96.159V115.233Z" fill="#F5F6F7"/>
<rect x="332" y="82.287" width="276" height="185.711" rx="13.872" stroke="#000000" stroke-opacity="0.1" stroke-width="0.5"/>
<path d="M354.667 98.843L356.519 98.843L356.519 100.247L354.667 100.247L354.667 98.843ZM354.667 100.944L356.519 100.944L356.519 102.495L354.667 102.495L354.667 100.944ZM354.667 103.212L359.182 103.212L359.182 102.495L357.257 102.495L357.257 100.944L358.86 100.944L358.86 100.247L357.257 100.247L357.257 98.843L358.86 98.843L358.86 98.135L357.257 98.135L357.257 96.72L359.068 96.72L359.068 95.992L357.081 95.992L357.361 95.888C357.226 95.368 357.039 94.806 356.789 94.182L356.071 94.379C356.311 94.9 356.519 95.441 356.685 95.992L354.802 95.992C355.031 95.462 355.229 94.92 355.385 94.359L354.656 94.213C354.303 95.566 353.71 96.804 352.857 97.927L353.106 98.718C353.398 98.364 353.678 97.99 353.928 97.594L353.928 103.691L354.667 103.691L354.667 103.212ZM356.519 96.72L356.519 98.135L354.667 98.135L354.667 96.72L356.519 96.72ZM352.971 98.479C352.659 98.635 352.336 98.78 352.003 98.926L352.003 96.824L353.054 96.824L353.054 96.096L352.003 96.096L352.003 94.171L351.244 94.171L351.244 96.096L349.912 96.096L349.912 96.824L351.244 96.824L351.244 99.217C350.765 99.384 350.266 99.529 349.756 99.644L349.943 100.393C350.38 100.268 350.817 100.122 351.244 99.977L351.244 102.484C351.244 102.755 351.098 102.89 350.817 102.89C350.547 102.89 350.256 102.869 349.964 102.838L350.12 103.566L351.077 103.566C351.691 103.566 352.003 103.265 352.003 102.682L352.003 99.675C352.336 99.54 352.659 99.394 352.971 99.238L352.971 98.479ZM360.441 94.952L360.441 95.638L362.803 95.638L362.803 96.387L363.573 96.387L363.573 95.638L366.319 95.638L366.319 96.398L367.089 96.398L367.089 95.638L369.451 95.638L369.451 94.952L367.089 94.952L367.089 94.203L366.319 94.203L366.319 94.952L363.573 94.952L363.573 94.203L362.803 94.203L362.803 94.952L360.441 94.952ZM360.576 97.095L360.576 97.782L363.115 97.782C362.439 98.832 361.481 99.769 360.243 100.58L360.712 101.184C361.232 100.83 361.71 100.466 362.147 100.07L362.147 103.753L362.865 103.753L362.865 99.342C363.292 98.853 363.666 98.333 363.978 97.782L369.399 97.782L369.399 97.095L364.322 97.095C364.405 96.876 364.499 96.658 364.582 96.429L363.854 96.304C363.75 96.564 363.635 96.824 363.51 97.095L360.576 97.095ZM366.465 100.112L366.465 100.757L363.593 100.757L363.593 101.465L366.465 101.465L366.465 102.661C366.465 102.911 366.33 103.036 366.08 103.036C365.81 103.036 365.425 103.015 364.946 102.984L365.164 103.712L366.382 103.712C366.933 103.712 367.214 103.431 367.214 102.869L367.214 101.465L369.503 101.465L369.503 100.757L367.214 100.757L367.214 100.32C367.807 99.904 368.348 99.498 368.827 99.124L368.827 98.583L364.343 98.583L364.343 99.269L367.765 99.269C367.266 99.602 366.84 99.883 366.465 100.112ZM379.532 94.442C378.055 94.702 376.193 94.837 373.945 94.837L374.185 95.524C375.038 95.524 375.829 95.503 376.567 95.462L376.567 96.554L374.008 96.554L374.008 97.241L376.567 97.241L376.567 102.484L374.778 102.484L374.778 101.017L376.068 101.017L376.068 100.372L374.778 100.372L374.778 99.103C375.308 98.957 375.797 98.78 376.255 98.572L375.818 97.979C375.288 98.271 374.715 98.489 374.102 98.635L374.102 103.66L374.778 103.66L374.778 103.15L379.012 103.15L379.012 103.743L379.709 103.743L379.709 98.333L377.785 98.333L377.785 98.999L379.012 98.999L379.012 100.362L377.764 100.362L377.764 101.007L379.012 101.007L379.012 102.484L377.264 102.484L377.264 97.241L380.094 97.241L380.094 96.554L377.264 96.554L377.264 95.42C378.263 95.337 379.137 95.222 379.897 95.066L379.532 94.442ZM373.685 98.437C373.384 98.624 373.082 98.791 372.77 98.957L372.77 96.824L373.685 96.824L373.685 96.107L372.77 96.107L372.77 94.203L372.042 94.203L372.042 96.107L370.72 96.107L370.72 96.824L372.042 96.824L372.042 99.301C371.584 99.488 371.126 99.654 370.658 99.79L370.824 100.497C371.23 100.351 371.636 100.195 372.042 100.018L372.042 102.588C372.042 102.859 371.917 102.994 371.677 102.994C371.428 102.994 371.168 102.973 370.897 102.942L371.053 103.649L371.927 103.649C372.489 103.649 372.77 103.358 372.77 102.776L372.77 99.675C373.072 99.519 373.373 99.353 373.685 99.176L373.685 98.437ZM383.278 94.13C382.778 95.753 381.988 97.199 380.885 98.447L381.124 99.249C381.52 98.832 381.884 98.395 382.217 97.938L382.217 103.743L382.955 103.743L382.955 96.793C383.371 96.055 383.715 95.274 383.985 94.452L383.278 94.13ZM385.026 94.816C384.797 96.2 384.37 97.376 383.736 98.333L384.214 98.957C384.599 98.416 384.922 97.802 385.182 97.116L386.95 97.116L386.95 99.623L383.892 99.623L383.892 100.341L386.95 100.341L386.95 103.691L387.7 103.691L387.7 100.341L390.477 100.341L390.477 99.623L387.7 99.623L387.7 97.116L390.092 97.116L390.092 96.387L387.7 96.387L387.7 94.223L386.95 94.223L386.95 96.387L385.421 96.387C385.567 95.93 385.681 95.43 385.764 94.91L385.026 94.816Z" fill="#61666B"/>
<path d="M579.382 95.149L575.449 95.149C575.283 94.754 575.116 94.39 574.929 94.067L574.118 94.192C574.326 94.484 574.523 94.806 574.69 95.149L570.726 95.149L570.726 97.272L571.496 97.272L571.496 95.878L578.612 95.878L578.612 97.282L579.382 97.282L579.382 95.149ZM577.905 96.908L572.162 96.908L572.162 103.743L572.911 103.743L572.911 103.317L577.634 103.317L577.634 103.733L578.383 103.733L578.383 100.58L572.911 100.58L572.911 99.498L577.905 99.498L577.905 96.908ZM572.911 102.661L572.911 101.236L577.634 101.236L577.634 102.661L572.911 102.661ZM572.911 98.843L572.911 97.574L577.166 97.574L577.166 98.843L572.911 98.843ZM580.932 95.732L580.932 96.45L583.835 96.45C583.825 96.804 583.804 97.303 583.773 97.958C583.721 98.947 583.523 99.842 583.169 100.643C582.805 101.444 582.066 102.307 580.963 103.244L581.504 103.764C582.42 103.025 583.128 102.214 583.637 101.319C584.012 100.632 584.272 99.873 584.407 99.03L588.049 99.03C588.028 100.466 587.997 101.413 587.934 101.85C587.809 102.578 587.487 102.952 586.956 102.973C586.592 102.973 586.145 102.963 585.604 102.942L585.833 103.618C586.29 103.639 586.696 103.66 587.029 103.66C587.851 103.629 588.361 103.171 588.569 102.287C588.704 101.704 588.787 100.383 588.808 98.323L584.49 98.323L584.49 98.302L584.584 96.45L590.067 96.45L590.067 95.732L586.176 95.732C585.926 95.118 585.656 94.588 585.364 94.151L584.657 94.411C584.959 94.827 585.208 95.274 585.416 95.732L580.932 95.732Z" fill="#61666B"/>
<path d="M354.611 137.33L354.611 138.551L357.178 138.551L356.914 139.772L354.944 139.772L354.944 140.965L356.664 140.965L356.345 142.449L354.278 142.449L354.278 143.67L362.726 143.67L362.726 142.449L361.492 142.449L361.492 139.772L358.218 139.772L358.482 138.551L362.283 138.551L362.283 137.33L354.611 137.33ZM357.649 142.449L357.968 140.965L360.174 140.965L360.174 142.449L357.649 142.449ZM361.853 144.724L355.249 144.724L355.249 149.677L356.54 149.677L356.54 149.094L360.562 149.094L360.562 149.677L361.853 149.677L361.853 144.724ZM356.54 147.859L356.54 145.931L360.562 145.931L360.562 147.859L356.54 147.859ZM351.768 136.97L350.838 137.871C351.809 138.593 352.558 139.259 353.099 139.897L354.001 138.981C353.391 138.315 352.642 137.636 351.768 136.97ZM349.867 140.979L349.867 142.241L351.809 142.241L351.809 147.346C351.809 147.623 351.684 147.859 351.462 148.053L351.962 149.233C352.905 148.594 353.807 147.859 354.639 147.041L354.278 145.654C353.848 146.084 353.446 146.472 353.072 146.819L353.072 140.979L349.867 140.979ZM374.629 143.323L365.723 143.323L365.723 149.649L367.041 149.649L367.041 149.094L373.311 149.094L373.311 149.649L374.629 149.649L374.629 143.323ZM367.041 147.956L367.041 146.791L373.311 146.791L373.311 147.956L367.041 147.956ZM367.041 145.667L367.041 144.475L373.311 144.475L373.311 145.667L367.041 145.667ZM364.641 138.093L364.641 139.314L366.777 139.314C366.999 139.897 367.221 140.535 367.429 141.228L363.989 141.228L363.989 142.449L376.307 142.449L376.307 141.228L372.798 141.228C373.103 140.618 373.352 139.98 373.533 139.314L375.669 139.314L375.669 138.093L370.869 138.093C370.689 137.58 370.509 137.122 370.314 136.706L368.9 136.928C369.121 137.289 369.316 137.677 369.51 138.093L364.641 138.093ZM368.15 139.314L372.229 139.314C372.062 139.98 371.813 140.618 371.507 141.228L368.719 141.228C368.539 140.535 368.345 139.897 368.15 139.314ZM380.108 140.743L380.108 142.657L379.095 142.657C379.401 141.853 379.692 140.937 379.969 139.924L382.577 139.924L382.577 138.676L380.275 138.676C380.386 138.177 380.483 137.649 380.594 137.095L379.401 136.817C379.29 137.455 379.165 138.08 379.04 138.676L377.75 138.676L377.75 139.924L378.749 139.924C378.457 141.048 378.138 141.978 377.805 142.727L378.083 143.836L380.108 143.836L380.108 145.64C379.345 145.778 378.527 145.903 377.639 146.014L377.805 147.304C378.61 147.193 379.373 147.055 380.108 146.916L380.108 149.649L381.343 149.649L381.343 146.639C381.731 146.528 382.133 146.43 382.522 146.319L382.522 145.085C382.161 145.182 381.759 145.279 381.343 145.376L381.343 143.836L382.508 143.836L382.508 142.657L381.343 142.657L381.343 140.743L380.108 140.743ZM384.325 140.271L384.325 140.979L388.362 140.979L388.362 140.174C388.834 140.59 389.319 140.993 389.832 141.367L390.526 140.327C389.277 139.467 388.071 138.315 386.878 136.859L385.907 136.859C384.797 138.218 383.548 139.397 382.147 140.396L382.869 141.492C383.354 141.117 383.84 140.715 384.325 140.271ZM388.071 139.897L384.714 139.897C385.268 139.342 385.837 138.718 386.392 138.052C386.919 138.704 387.474 139.314 388.071 139.897ZM385.31 149.552C386.087 149.552 386.475 149.135 386.475 148.317L386.475 141.867L382.966 141.867L382.966 149.649L384.103 149.649L384.103 147.082L385.352 147.082L385.352 148.081C385.352 148.373 385.213 148.525 384.949 148.525L384.408 148.484L384.7 149.552L385.31 149.552ZM384.103 146.084L384.103 145.016L385.352 145.016L385.352 146.084L384.103 146.084ZM384.103 144.017L384.103 142.921L385.352 142.921L385.352 144.017L384.103 144.017ZM387.058 142.283L387.058 147.318L388.057 147.318L388.057 142.283L387.058 142.283ZM388.709 149.579C389.458 149.579 389.832 149.135 389.832 148.248L389.832 141.728L388.681 141.728L388.681 147.97C388.681 148.331 388.542 148.511 388.293 148.511C387.96 148.511 387.613 148.484 387.238 148.428L387.516 149.579L388.709 149.579ZM397.129 140.16C396.213 143.712 394.313 146.444 391.428 148.345L392.218 149.468C395.02 147.637 396.893 145.043 397.837 141.686C397.864 141.769 397.892 141.853 397.934 141.95C399.404 145.654 401.221 148.151 403.399 149.455L404.218 148.414C402.109 147.055 400.403 144.766 399.085 141.52C398.183 139.217 397.157 137.663 395.992 136.845L394.896 137.539C395.77 138.163 396.519 139.037 397.129 140.16Z" fill="#0F1115"/>
<path d="M353.386 170.201L353.386 170.99L355.967 170.99L355.967 174.101L352.924 174.101L352.924 174.901L359.991 174.901L359.991 174.101L356.79 174.101L356.79 170.99L359.484 170.99L359.484 170.201L356.79 170.201L356.79 168.105L355.967 168.105L355.967 170.201L353.386 170.201ZM351.572 170.697L351.572 175.318L352.372 175.318L352.372 169.773C352.981 169.006 353.51 168.172 353.95 167.282L359.98 167.282L359.98 166.482L354.311 166.482C354.513 165.997 354.682 165.49 354.84 164.971L353.995 164.87C353.837 165.422 353.634 165.963 353.409 166.482L350.129 166.482L350.129 167.282L353.026 167.282C352.237 168.781 351.143 170.111 349.734 171.272L350.242 171.937C350.715 171.542 351.155 171.125 351.572 170.697ZM361.423 167.023L361.423 167.8L365.108 167.8C364.274 169.795 362.922 171.43 361.028 172.692L361.49 173.447C363.496 171.971 364.917 170.088 365.751 167.8L365.829 167.8L365.829 172.196L363.508 172.196L363.508 172.974L365.829 172.974L365.829 175.284L366.664 175.284L366.664 172.974L369.076 172.974L369.076 172.196L366.664 172.196L366.664 167.8L366.754 167.8C367.52 169.841 368.895 171.678 370.879 173.301L371.431 172.602C369.493 171.193 368.14 169.593 367.385 167.8L371.059 167.8L371.059 167.023L366.664 167.023L366.664 164.983L365.829 164.983L365.829 167.023L361.423 167.023ZM372.536 167.158L372.536 167.936L374.181 167.936C373.809 169.345 373.189 170.596 372.322 171.689L372.671 172.568C373.302 171.644 373.821 170.629 374.215 169.502L374.215 175.228L375.027 175.228L375.027 169.288C375.342 169.728 375.714 170.303 376.142 171.013L376.616 170.314C376.075 169.649 375.545 169.052 375.027 168.511L375.027 167.936L376.424 167.936L376.424 167.158L375.027 167.158L375.027 164.96L374.215 164.96L374.215 167.158L372.536 167.158ZM375.894 174.732L376.559 175.329C377.089 174.518 377.45 173.684 377.641 172.805C377.844 171.971 377.946 170.934 377.946 169.694L377.946 166.189L379.952 166.189L379.952 174.033C379.952 174.687 380.313 175.014 381.034 175.014L381.496 175.014C381.857 175.014 382.127 174.946 382.308 174.822C382.488 174.664 382.601 174.394 382.646 173.988C382.691 173.56 382.725 172.951 382.725 172.14L381.981 171.903C381.981 172.985 381.947 173.628 381.902 173.853C381.879 174.011 381.823 174.112 381.733 174.18C381.654 174.225 381.553 174.247 381.417 174.247L381.034 174.247C380.854 174.247 380.775 174.146 380.775 173.954L380.775 165.422L377.134 165.422L377.134 169.694C377.134 170.855 377.055 171.779 376.909 172.467C376.717 173.267 376.379 174.022 375.894 174.732ZM387.008 166.099L387.008 166.876L389.961 166.876L389.961 167.947L387.391 167.947L387.391 171.137L389.916 171.137C389.848 171.926 389.69 172.568 389.453 173.064C388.856 172.636 388.315 172.129 387.83 171.52L387.211 171.948C387.729 172.613 388.326 173.188 388.991 173.661C388.473 174.157 387.628 174.473 386.478 174.597L386.827 175.341C388.135 175.149 389.093 174.743 389.701 174.123C390.896 174.822 392.283 175.217 393.86 175.318L394.063 174.541C392.587 174.462 391.279 174.112 390.152 173.492C390.457 172.929 390.648 172.151 390.738 171.137L393.421 171.137L393.421 167.947L390.783 167.947L390.783 166.876L393.883 166.876L393.883 166.099L390.783 166.099L390.783 164.949L389.961 164.949L389.961 166.099L387.008 166.099ZM392.654 170.404L390.772 170.404C390.772 170.314 390.783 170.224 390.783 170.134L390.783 168.668L392.654 168.668L392.654 170.404ZM389.949 170.404L388.157 170.404L388.157 168.668L389.961 168.668L389.961 170.134C389.961 170.224 389.949 170.314 389.949 170.404ZM384.945 169.018L384.945 175.307L385.757 175.307L385.757 167.722C386.174 166.944 386.523 166.11 386.805 165.231L386.038 164.881C385.52 166.662 384.675 168.24 383.502 169.615L383.773 170.472C384.201 170.01 384.584 169.525 384.945 169.018ZM396.825 168.882L399.688 168.882L399.688 170.855L396.825 170.855L396.825 168.882ZM396.78 171.599L399.688 171.599L399.688 174.901L400.522 174.901L400.522 171.599L403.587 171.599L403.587 173.56C403.587 174.033 403.373 174.27 402.967 174.27C402.584 174.27 402.167 174.247 401.716 174.225L401.93 175.025L403.227 175.025C404.016 175.025 404.41 174.631 404.41 173.842L404.41 165.4L396.013 165.4L396.013 170.81C395.991 172.354 395.619 173.628 394.897 174.631L395.517 175.183C396.239 174.236 396.656 173.041 396.78 171.599ZM403.587 170.855L400.522 170.855L400.522 168.882L403.587 168.882L403.587 170.855ZM403.587 168.127L400.522 168.127L400.522 166.189L403.587 166.189L403.587 168.127ZM399.688 166.189L399.688 168.127L396.825 168.127L396.825 166.189L399.688 166.189ZM414.362 168.465L415.377 168.465Q415.354 167.8 415.123 167.321Q414.892 166.842 414.492 166.527Q414.092 166.211 413.562 166.065Q413.032 165.918 412.413 165.918Q411.86 165.918 411.336 166.059Q410.812 166.2 410.401 166.487Q409.989 166.775 409.741 167.22Q409.493 167.665 409.493 168.274Q409.493 168.826 409.713 169.192Q409.933 169.559 410.299 169.79Q410.666 170.021 411.128 170.162Q411.59 170.303 412.069 170.41Q412.548 170.517 413.01 170.618Q413.472 170.72 413.838 170.883Q414.205 171.046 414.424 171.306Q414.644 171.565 414.644 171.982Q414.644 172.422 414.464 17Line truncated
<path d="M359.653 185.214L355.46 185.214C355.302 184.775 355.133 184.38 354.953 184.019L354.051 184.177C354.243 184.493 354.412 184.831 354.57 185.214L350.287 185.214L350.287 187.626L351.121 187.626L351.121 186.003L358.819 186.003L358.819 187.637L359.653 187.637L359.653 185.214ZM350.016 188.347L350.016 189.136L352.733 189.136C352.372 189.756 351.989 190.388 351.583 191.019C352.631 191.357 353.679 191.751 354.739 192.202C353.544 193.115 351.977 193.577 350.061 193.588L350.535 194.344C352.631 194.276 354.299 193.69 355.562 192.563C356.756 193.104 357.951 193.735 359.146 194.434L359.687 193.724C358.492 193.047 357.309 192.461 356.148 191.965C356.745 191.267 357.275 190.331 357.737 189.136L359.957 189.136L359.957 188.347L354.13 188.347C354.401 187.852 354.682 187.322 354.976 186.758L354.141 186.51C353.837 187.119 353.51 187.728 353.172 188.347L350.016 188.347ZM353.691 189.136L356.846 189.136C356.463 190.128 355.967 190.962 355.359 191.627C354.468 191.255 353.6 190.94 352.744 190.692C353.037 190.241 353.352 189.723 353.691 189.136ZM364.037 184.121L364.037 186.792C363.248 187.243 362.313 187.649 361.242 187.987L361.558 188.719C362.505 188.37 363.327 187.987 364.037 187.581L364.037 189.193L364.86 189.193L364.86 184.121L364.037 184.121ZM365.548 185.394L365.548 186.127L367.948 186.127L367.948 187.795L365.897 187.795L365.897 188.528L370.823 188.528L370.823 187.795L368.771 187.795L368.771 186.127L371.138 186.127L371.138 185.394L368.771 185.394L368.771 184.087L367.948 184.087L367.948 185.394L365.548 185.394ZM361.862 184.594L361.434 185.225C362.042 185.496 362.629 185.868 363.215 186.353L363.632 185.71C363.091 185.271 362.505 184.899 361.862 184.594ZM361.253 189.824L361.253 190.568L365.412 190.568C364.511 191.357 363.113 192.011 361.197 192.518L361.614 193.205C362.381 192.957 363.068 192.676 363.699 192.383L363.699 193.329C363.699 193.51 363.575 193.645 363.339 193.735L363.508 194.434C364.894 194.163 366.077 193.893 367.058 193.6L366.923 192.878C366.156 193.126 365.334 193.352 364.443 193.532L364.443 191.999C365.187 191.56 365.796 191.086 366.269 190.568C367.216 192.439 368.749 193.735 370.879 194.468L371.341 193.758C370.383 193.465 369.549 193.07 368.839 192.552C369.47 192.168 370.011 191.74 370.484 191.255L369.91 190.748C369.459 191.244 368.906 191.695 368.264 192.089C367.779 191.65 367.374 191.143 367.035 190.568L371.24 190.568L371.24 189.824L366.911 189.824C366.72 189.418 366.506 189.058 366.28 188.742L365.536 188.99C365.739 189.249 365.92 189.531 366.077 189.824L361.253 189.824ZM374.801 184.031C374.271 185.812 373.415 187.378 372.231 188.753L372.491 189.621C372.964 189.114 373.392 188.584 373.776 188.032L373.776 194.434L374.61 194.434L374.61 186.668C374.993 185.947 375.308 185.192 375.568 184.391L374.801 184.031ZM378.87 184.121L378.002 184.256C378.205 184.729 378.385 185.248 378.543 185.823L375.444 185.823L375.444 186.6L377.957 186.6C377.315 188.336 376.266 189.768 374.801 190.883L375.241 191.605C375.804 191.154 376.323 190.658 376.796 190.117L376.796 193.194C376.796 193.397 376.683 193.532 376.458 193.622L376.627 194.321C377.889 193.96 378.971 193.577 379.873 193.171L379.727 192.394C379.073 192.709 378.363 192.991 377.596 193.239L377.596 189.035C378.081 188.291 378.476 187.48 378.78 186.6L378.938 186.6C379.298 189.858 380.392 192.405 382.229 194.253L382.713 193.476C381.789 192.585 381.079 191.492 380.561 190.196C381.327 189.689 381.958 189.182 382.432 188.663L381.924 188.021C381.496 188.539 380.955 189.035 380.313 189.508C380.02 188.629 379.806 187.66 379.693 186.6L382.285 186.6L382.285 185.823L379.355 185.823C379.197 185.192 379.039 184.617 378.87 184.121ZM383.953 185.248L383.953 185.969L385.937 185.969L385.937 186.916L384.235 186.916L384.235 190.207L385.824 190.207C385.261 191.368 384.506 192.292 383.559 192.991L384.01 193.701C384.765 193.07 385.407 192.247 385.937 191.244L385.937 194.4L386.726 194.4L386.726 191.447C387.165 191.808 387.695 192.281 388.315 192.89L388.766 192.213C388.078 191.65 387.402 191.143 386.726 190.692L386.726 190.207L388.394 190.207L388.394 186.916L386.726 186.916L386.726 185.969L388.586 185.969L388.586 185.248L386.726 185.248L386.726 184.065L385.937 184.065L385.937 185.248L383.953 185.248ZM387.673 189.531L386.726 189.531L386.726 187.592L387.673 187.592L387.673 189.531ZM385.937 189.531L384.956 189.531L384.956 187.592L385.937 187.592L385.937 189.531ZM393.567 186.815L392.226 186.815C392.519 186.465 392.812 186.037 393.117 185.53L393.117 184.966L390.862 184.966C390.975 184.718 391.065 184.448 391.155 184.155L390.423 184.019C390.085 185.113 389.453 185.981 388.507 186.612L388.98 187.198C389.048 187.141 389.127 187.085 389.206 187.029L389.206 192.123L389.972 192.123L389.972 187.525L392.801 187.525L392.801 192.101L393.567 192.101L393.567 186.815ZM391.313 186.815L389.476 186.815C389.871 186.476 390.209 186.082 390.502 185.631L392.237 185.631C391.933 186.082 391.629 186.476 391.313 186.815ZM392.271 192.259L391.674 192.63C392.395 193.284 392.97 193.882 393.387 194.423L394.018 193.983C393.612 193.4Line truncated
<rect x="349.34" y="212.511" width="241.32" height="0.5" fill="#000000" fill-opacity="0.04"/>
<path d="M358.423 239.529L352.388 239.529L352.388 243.535L353.117 243.535L353.117 242.994L357.694 242.994L357.694 243.535L358.423 243.535L358.423 239.529ZM353.117 242.286L353.117 240.237L357.694 240.237L357.694 242.286L353.117 242.286ZM357.798 235.784L357.798 237.417L351.712 237.417L351.712 235.784L357.798 235.784ZM351.712 238.114L358.537 238.114L358.537 235.076L355.197 235.076C355.031 234.618 354.875 234.213 354.719 233.859L353.939 233.984C354.126 234.317 354.292 234.681 354.438 235.076L350.973 235.076L350.973 238.562C350.963 240.372 350.557 241.839 349.746 242.983L350.328 243.503C351.244 242.13 351.702 240.476 351.712 238.562L351.712 238.114ZM361.96 237.584L364.603 237.584L364.603 239.404L361.96 239.404L361.96 237.584ZM361.918 240.091L364.603 240.091L364.603 243.139L365.373 243.139L365.373 240.091L368.202 240.091L368.202 241.901C368.202 242.338 368.005 242.557 367.63 242.557C367.276 242.557 366.892 242.536 366.475 242.515L366.673 243.254L367.87 243.254C368.598 243.254 368.962 242.89 368.962 242.161L368.962 234.369L361.211 234.369L361.211 239.363C361.19 240.788 360.847 241.964 360.181 242.89L360.753 243.399C361.419 242.526 361.804 241.423 361.918 240.091ZM368.202 239.404L365.373 239.404L365.373 237.584L368.202 237.584L368.202 239.404ZM368.202 236.887L365.373 236.887L365.373 235.097L368.202 235.097L368.202 236.887ZM364.603 235.097L364.603 236.887L361.96 236.887L361.96 235.097L364.603 235.097ZM372.52 237.625L380.011 237.625L380.011 236.897L372.52 236.897L372.52 235.44C375.059 235.378 377.348 235.149 379.387 234.733L379.012 234.057C376.869 234.504 374.466 234.743 371.781 234.775L371.781 237.896C371.719 240.018 371.313 241.683 370.554 242.89L371.105 243.462C371.979 242.078 372.458 240.226 372.52 237.896L372.52 237.625ZM379.189 239.082L373.477 239.082L373.477 243.493L374.226 243.493L374.226 243.004L378.44 243.004L378.44 243.493L379.189 243.493L379.189 239.082ZM374.226 242.276L374.226 239.8L378.44 239.8L378.44 242.276L374.226 242.276ZM381.124 234.577L381.124 235.305L388.282 235.305L388.282 242.193C388.282 242.546 388.105 242.734 387.772 242.734C387.252 242.734 386.701 242.713 386.129 242.692L386.295 243.42L388.032 243.42C388.698 243.42 389.031 243.067 389.031 242.38L389.031 235.305L390.405 235.305L390.405 234.577L381.124 234.577ZM386.378 236.897L382.331 236.897L382.331 241.631L383.059 241.631L383.059 240.715L386.378 240.715L386.378 236.897ZM383.059 240.029L383.059 237.573L385.66 237.573L385.66 240.029L383.059 240.029ZM394.691 238.801L394.691 239.529L397.074 239.529L397.074 242.401L394.264 242.401L394.264 243.139L400.788 243.139L400.788 242.401L397.833 242.401L397.833 239.529L400.32 239.529L400.32 238.801L397.833 238.801L397.833 236.866L397.074 236.866L397.074 238.801L394.691 238.801ZM393.016 239.259L393.016 243.524L393.755 243.524L393.755 238.406C394.316 237.698 394.805 236.928 395.211 236.106L400.777 236.106L400.777 235.368L395.544 235.368C395.731 234.92 395.887 234.452 396.033 233.973L395.253 233.88C395.107 234.39 394.92 234.889 394.712 235.368L391.684 235.368L391.684 236.106L394.358 236.106C393.63 237.49 392.621 238.718 391.32 239.789L391.788 240.403C392.225 240.039 392.631 239.654 393.016 239.259ZM405.927 240.081L405.927 236.606L403.264 236.606L403.264 235.399C404.346 235.243 405.262 234.962 406.011 234.556L405.511 233.984C404.804 234.41 403.836 234.702 402.598 234.847L402.598 239.165C402.577 240.622 402.286 241.87 401.724 242.931L402.244 243.472C402.765 242.505 403.087 241.371 403.212 240.081L405.927 240.081ZM403.264 237.334L405.241 237.334L405.241 239.394L403.254 239.394C403.254 239.311 403.264 239.238 403.264 239.165L403.264 237.334ZM407.498 237.885L409.381 237.885L409.381 243.493L410.12 243.493L410.12 237.885L411.296 237.885L411.296 237.167L407.498 237.167L407.488 235.347C408.757 235.284 409.902 235.055 410.932 234.66L410.557 234.005C409.538 234.431 408.289 234.67 406.822 234.733L406.822 239.436C406.801 241.038 406.562 242.276 406.115 243.16L406.791 243.493C407.249 242.588 407.478 241.235 407.498 239.436L407.498 237.885ZM415.405 237.698L419.536 237.698L419.536 238.832L415.405 238.832L415.405 237.698ZM419.536 239.488L419.536 240.59L415.405 240.59L415.405 239.488L419.536 239.488ZM419.536 241.246L419.536 242.432C419.536 242.682 419.401 242.806 419.13 242.806C418.787 242.806 418.412 242.786 418.017 242.765L418.204 243.451L419.369 243.451C419.952 243.431 420.243 243.171 420.243 242.661L420.243 237.043L415.416 237.043C415.666 236.658 415.884 236.252 416.092 235.836L421.575 235.836L421.575 235.107L416.404 235.107C416.55 234.743 416.675 234.369 416.8 233.984L416.04 233.89C415.915 234.296 415.759 234.702 415.582 235.107L412.482 235.107L412.482 235.836L415.239 235.836C414.521 237.178 413.512 238.364 412.201 239.404L412.69 240.039C413.439 239.436 414.115 238.759 414.698 238.031L414.698 243.472L415.405 243.472L415.405 241.246L419.536 241.246ZM427.099 233.953C425.872 235.357 424.342 236.522 422.511 237.459L422.907 238.177C424.759 237.178 426.246 235.992 427.37 234.618C428.598 236.075 430.065 237.261 431.792 238.166LLine truncated
<rect x="552.512" y="226.383" width="38.148" height="24.276" rx="6.936" fill="#0F1115"/>
<path d="M570.265 239.529L564.23 239.529L564.23 243.535L564.959 243.535L564.959 242.994L569.536 242.994L569.536 243.535L570.265 243.535L570.265 239.529ZM564.959 242.286L564.959 240.237L569.536 240.237L569.536 242.286L564.959 242.286ZM569.64 235.784L569.64 237.417L563.554 237.417L563.554 235.784L569.64 235.784ZM563.554 238.114L570.379 238.114L570.379 235.076L567.039 235.076C566.873 234.618 566.717 234.213 566.561 233.859L565.781 233.984C565.968 234.317 566.134 234.681 566.28 235.076L562.815 235.076L562.815 238.562C562.805 240.372 562.399 241.839 561.588 242.983L562.17 243.503C563.086 242.13 563.544 240.476 563.554 238.562L563.554 238.114ZM573.802 237.584L576.445 237.584L576.445 239.404L573.802 239.404L573.802 237.584ZM573.76 240.091L576.445 240.091L576.445 243.139L577.215 243.139L577.215 240.091L580.044 240.091L580.044 241.901C580.044 242.338 579.847 242.557 579.472 242.557C579.118 242.557 578.734 242.536 578.317 242.515L578.515 243.254L579.712 243.254C580.44 243.254 580.804 242.89 580.804 242.161L580.804 234.369L573.053 234.369L573.053 239.363C573.032 240.788 572.689 241.964 572.023 242.89L572.595 243.399C573.261 242.526 573.646 241.423 573.76 240.091ZM580.044 239.404L577.215 239.404L577.215 237.584L580.044 237.584L580.044 239.404ZM580.044 236.887L577.215 236.887L577.215 235.097L580.044 235.097L580.044 236.887ZM576.445 235.097L576.445 236.887L573.802 236.887L573.802 235.097L576.445 235.097Z" fill="#FFFFFF"/>
<path d="M500.502 237.708C500.024 237.75 499.514 237.792 498.973 237.833L498.973 237.011L500.596 237.011L500.596 236.398L498.973 236.398L498.973 235.711L498.286 235.711L498.286 236.398L497.079 236.398C497.34 236.054 497.589 235.659 497.818 235.222L500.669 235.222L500.669 234.556L498.13 234.556C498.214 234.369 498.286 234.182 498.359 233.994L497.61 233.869C497.527 234.098 497.433 234.327 497.34 234.556L495.893 234.556L495.893 235.222L497.007 235.222C496.757 235.69 496.476 236.085 496.185 236.418L496.351 237.011L498.286 237.011L498.286 237.875C497.579 237.917 496.819 237.948 496.029 237.989L496.122 238.655C496.871 238.614 497.6 238.562 498.286 238.52L498.286 239.269L498.973 239.269L498.973 238.468C499.504 238.416 500.013 238.364 500.502 238.322L500.502 237.708ZM501.959 237.022L503.311 237.022L503.311 239.279L504.029 239.279L504.029 237.022L505.132 237.022L505.132 236.366L502.011 236.366L502.011 235.284C503.135 235.159 504.071 234.92 504.841 234.587L504.362 234.025C503.634 234.358 502.614 234.587 501.324 234.712L501.324 236.346C501.304 237.282 501.054 238.083 500.596 238.759L501.116 239.3C501.564 238.655 501.845 237.896 501.959 237.022ZM503.967 239.581L497.142 239.581L497.142 243.493L497.912 243.493L497.912 243.087L503.197 243.087L503.197 243.493L503.967 243.493L503.967 239.581ZM497.912 242.442L497.912 241.631L503.197 241.631L503.197 242.442L497.912 242.442ZM497.912 241.027L497.912 240.216L503.197 240.216L503.197 241.027L497.912 241.027ZM506.474 234.494L506.474 235.232L511.094 235.232C510.178 237.167 508.534 238.811 506.183 240.164L506.672 240.819C508.253 239.872 509.533 238.79 510.511 237.573L510.511 243.514L511.281 243.514L511.281 236.47C511.52 236.075 511.739 235.659 511.926 235.232L515.318 235.232L515.318 234.494L506.474 234.494ZM512.592 237.292L512.051 237.802C513.31 238.832 514.298 239.8 515.026 240.715L515.599 240.133C514.787 239.186 513.788 238.239 512.592 237.292ZM516.691 238.895L516.691 239.54L520.759 239.54L520.405 240.289L517.565 240.289L517.565 243.524L518.272 243.524L518.272 240.934L519.833 240.934L519.833 243.399L520.551 243.399L520.551 240.934L522.091 240.934L522.091 243.399L522.809 243.399L522.809 240.934L524.484 240.934L524.484 242.411C524.484 242.713 524.348 242.869 524.078 242.869L523.381 242.838L523.547 243.483L524.286 243.483C524.9 243.483 525.212 243.171 525.212 242.567L525.212 240.289L521.165 240.289L521.518 239.54L525.909 239.54L525.909 238.895L516.691 238.895ZM517.326 234.306L517.326 234.92L520.936 234.92L520.936 235.576L516.941 235.576L516.941 237.719L517.659 237.719L517.659 236.169L520.936 236.169L520.936 238.468L521.664 238.468L521.664 236.169L524.941 236.169L524.941 237.719L525.659 237.719L525.659 235.576L521.664 235.576L521.664 234.92L525.285 234.92L525.285 234.306L517.326 234.306ZM518.22 236.751L518.22 237.251L520.384 237.251L520.384 236.751L518.22 236.751ZM518.22 237.792L518.22 238.291L520.384 238.291L520.384 237.792L518.22 237.792ZM522.205 236.751L522.205 237.251L524.359 237.251L524.359 236.751L522.205 236.751ZM522.216 237.792L522.216 238.291L524.39 238.291L524.39 237.792L522.216 237.792ZM527.105 234.369L527.105 235.045L530.175 235.045L530.175 235.971L527.75 235.971L527.75 238.593L530.487 238.593C530.32 238.884 530.143 239.196 529.956 239.519L526.97 239.519L526.97 240.205L529.54 240.205C529.311 240.559 529.082 240.923 528.832 241.287C529.696 241.485 530.56 241.714 531.423 241.974C530.487 242.338 529.082 242.63 527.23 242.848L527.511 243.514C529.758 243.212 531.381 242.796 532.37 242.265C533.525 242.64 534.68 243.067 535.824 243.556L536.292 242.942C535.189 242.505 534.107 242.13 533.046 241.808C533.598 241.36 533.982 240.83 534.191 240.205L536.427 240.205L536.427 239.519L530.799 239.519C530.965 239.227 531.142 238.926 531.329 238.593L535.658 238.593L535.658 235.971L533.233 235.971L533.233 235.045L536.303 235.045L536.303 234.369L527.105 234.369ZM532.245 241.568C531.444 241.339 530.664 241.142 529.894 240.975C530.05 240.746 530.216 240.486 530.393 240.205L533.431 240.205C533.223 240.746 532.828 241.204 532.245 241.568ZM532.516 235.971L530.892 235.971L530.892 235.045L532.516 235.045L532.516 235.971ZM534.94 237.948L533.233 237.948L533.233 236.626L534.94 236.626L534.94 237.948ZM532.516 237.948L530.892 237.948L530.892 236.626L532.516 236.626L532.516 237.948ZM530.175 237.948L528.468 237.948L528.468 236.626L530.175 236.626L530.175 237.948Z" fill="#0F1115"/>
</svg>

After

Width:  |  Height:  |  Size: 129 KiB

@@ -0,0 +1,9 @@
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8 9.5C8 8.67157 8.67157 8 9.5 8H15.5C16.3284 8 17 8.67157 17 9.5V15.5C17 16.3284 16.3284 17 15.5 17H9.5C8.67157 17 8 16.3284 8 15.5V9.5ZM19 9.5C19 8.67157 19.6716 8 20.5 8H26.5C27.3284 8 28 8.67157 28 9.5V15.5C28 16.3284 27.3284 17 26.5 17H20.5C19.6716 17 19 16.3284 19 15.5V9.5ZM8 20.5C8 19.6716 8.67157 19 9.5 19H15.5C16.3284 19 17 19.6716 17 20.5V26.5C17 27.3284 16.3284 28 15.5 28H9.5C8.67157 28 8 27.3284 8 26.5V20.5ZM22.25 19H24.75V22.25H28V24.75H24.75V28H22.25V24.75H19V22.25H22.25V19Z" fill="url(#paint0_linear_plugin_market)" />
<defs>
<linearGradient id="paint0_linear_plugin_market" x1="8.5" y1="10" x2="30" y2="26" gradientUnits="userSpaceOnUse">
<stop stop-color="#67C7FE" />
<stop offset="1" stop-color="#3F77D8" />
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 895 B

@@ -0,0 +1,7 @@
{
"meta": {
"title": "Personalisierte Empfehlungen",
"description": "Zeigt für Ihre individuellen Anforderungen an DSH Empfehlungskarten unter der Antwort an: Wenn Sie eine Seite oder ein kleines Tool zur dauerhaften Nutzung möchten, wird eine neue personalisierte Seite vorgeschlagen, die nach einem Klick auf Erstellen im Hintergrund erstellt wird; wenn Sie fragen, wie etwas in dieser App geht, oder sagen, dass eine Funktion fehlt, wird das integrierte Plugin empfohlen, das sie bereitstellt, und nach einem Klick auf Aktivieren eingeschaltet.",
"detail": "docs/DETAIL.md"
}
}
@@ -0,0 +1,7 @@
{
"meta": {
"title": "Personalized recommendations",
"description": "Shows recommendation cards below the answer for what you want from DSH: when you want a page or small tool you can keep, it proposes a new personalized page, built in the background after you click Create; when you ask how to do something in this app or say a capability is missing, it recommends the built-in plugin that provides it, turned on when you click Enable.",
"detail": "docs/DETAIL.md"
}
}
@@ -0,0 +1,7 @@
{
"meta": {
"title": "Recomendaciones personalizadas",
"description": "Muestra tarjetas de recomendación debajo de la respuesta para tus necesidades personalizadas en DSH: cuando quieres una página o una pequeña herramienta para conservar, propone una nueva página personalizada, que se genera en segundo plano al hacer clic en Crear; cuando preguntas cómo hacer algo en esta aplicación o dices que falta una función, recomienda el complemento integrado que la ofrece, que se activa al hacer clic en Habilitar.",
"detail": "docs/DETAIL.md"
}
}
@@ -0,0 +1,7 @@
{
"meta": {
"title": "Recommandations personnalisées",
"description": "Affiche des cartes de recommandation sous la réponse pour vos besoins personnalisés dans DSH : lorsque vous voulez une page ou un petit outil à conserver, propose une nouvelle page personnalisée, générée en arrière-plan après un clic sur Créer ; lorsque vous demandez comment faire quelque chose dans cette application ou signalez qu’une fonctionnalité manque, recommande le plugin intégré qui la fournit, activé lorsque vous cliquez sur Activer.",
"detail": "docs/DETAIL.md"
}
}
@@ -0,0 +1,7 @@
{
"meta": {
"title": "パーソナライズされたおすすめ",
"description": "DSH に対するあなた個人のニーズに合わせて、回答の下におすすめカードを表示します。長く使えるページや小さなツールが欲しいときは新しいパーソナルページを提案し、「作成」をクリックするとバックグラウンドで生成します。このアプリで何かをする方法を尋ねたときや機能が足りないと言ったときは、それを提供する内蔵プラグインを推薦し、「有効にする」をクリックすると有効になります。",
"detail": "docs/DETAIL.md"
}
}
@@ -0,0 +1,7 @@
{
"meta": {
"title": "Recomendações personalizadas",
"description": "Mostra cartões de recomendação abaixo da resposta para suas necessidades personalizadas no DSH: quando você quer uma página ou uma pequena ferramenta para manter, propõe uma nova página personalizada, gerada em segundo plano depois que você clica em Criar; quando você pergunta como fazer algo neste aplicativo ou diz que falta um recurso, recomenda o plug-in integrado que o oferece, ativado quando você clica em Ativar.",
"detail": "docs/DETAIL.md"
}
}
@@ -0,0 +1,7 @@
{
"meta": {
"title": "Персональные рекомендации",
"description": "Показывает карточки рекомендаций под ответом с учетом ваших индивидуальных потребностей в DSH: когда вам нужна страница или небольшой инструмент для постоянного использования, предлагает новую персональную страницу, которая создается в фоне после нажатия «Создать»; когда вы спрашиваете, как что-то сделать в этом приложении, или говорите, что не хватает какой-то возможности, рекомендует встроенный плагин, который ее предоставляет, и включает его после нажатия «Включить».",
"detail": "docs/DETAIL.md"
}
}
@@ -0,0 +1,7 @@
{
"meta": {
"title": "个性化推荐",
"description": "针对你对 DSH 的个性化需求,在回答下方展示推荐卡片:想要能长期使用的页面或小工具时,提议新增个性化页面,点击创建后在后台生成;问到本应用怎么做某件事或缺少某项能力时,推荐对应的内置插件,点击启用后开启。",
"detail": "docs/DETAIL.zh.md"
}
}
@@ -0,0 +1,70 @@
{
"name": "@deepseek-ai/dsh-personalized-recommendations",
"description": "Personalized pages and built-in plugin recommendations offered as cards below answers",
"version": "0.2.1-rc.3",
"icon": "./icon.svg",
"publishConfig": {
"access": "public"
},
"repository": {
"type": "git",
"url": "git+https://github.com/deepseek-ai/deepseek-harness.git",
"directory": "packages/experimental/personalized-recommendations"
},
"type": "module",
"main": "lib/index.js",
"types": "lib/types/index.d.ts",
"exports": {
".": {
"types": "./lib/types/index.d.ts",
"default": "./lib/index.js"
},
"./src/*": "./src/*",
"./package.json": "./package.json",
"./cordis.patch.yml": "./cordis.patch.yml",
"./locale/*.json": "./locale/*.json"
},
"files": [
"icon.svg",
"locale/*.json",
"docs",
"lib/index.js",
"cordis.patch.yml",
"lib/types/**/*.d.ts"
],
"license": "MIT",
"dependencies": {
"@deepseek-ai/dsh-action-cards": "workspace:*",
"@deepseek-ai/dsh-client-ui-action-cards": "workspace:*",
"@deepseek-ai/dsh-creation-recommendations": "workspace:*",
"@deepseek-ai/dsh-client-ui-creation-recommendations": "workspace:*",
"@deepseek-ai/dsh-plugin-recommendations": "workspace:*",
"@deepseek-ai/dsh-client-ui-plugin-recommendations": "workspace:*"
},
"peerDependencies": {
"@deepseek-ai/cordis": "workspace:~"
},
"devDependencies": {
"@deepseek-ai/cordis": "workspace:~",
"@deepseek-ai/cordis-plugin-include": "workspace:~",
"js-yaml": "^4.3.2",
"@deepseek-ai/cordis-plugin-timer": "workspace:~",
"@deepseek-ai/dsh-agent": "workspace:*",
"@deepseek-ai/dsh-api-remote-access": "workspace:*",
"@deepseek-ai/dsh-app-boot": "workspace:*",
"@deepseek-ai/dsh-hmr": "workspace:*",
"@deepseek-ai/dsh-llm": "workspace:*",
"@deepseek-ai/dsh-plugin-manager": "workspace:*",
"@deepseek-ai/dsh-session": "workspace:*",
"@deepseek-ai/dsh-session-projection": "workspace:*",
"@deepseek-ai/dsh-skill": "workspace:*",
"@deepseek-ai/dsh-system-prompt": "workspace:*",
"@deepseek-ai/dsh-tool-executor-native": "workspace:*",
"@deepseek-ai/dsh-tools": "workspace:*"
},
"dsh": {
"bundle": {
"patch": "./cordis.patch.yml"
}
}
}
@@ -0,0 +1,2 @@
/** Personalized recommendations composition; runtime rows live in cordis.patch.yml. */
export {}
@@ -0,0 +1,148 @@
/** The bundle is the only layer that declares the six card rows, so the Plugins page addresses and switches each one. */
import { readFileSync } from 'node:fs'
import { mkdtemp, mkdir, readFile, rm, writeFile } from 'node:fs/promises'
import { tmpdir } from 'node:os'
import { join } from 'node:path'
import { expect, it, onTestFinished } from 'vitest'
import * as yaml from 'js-yaml'
import type { Context } from '@deepseek-ai/cordis'
import { entryListSchema } from '@deepseek-ai/cordis-plugin-include'
import Timer from '@deepseek-ai/cordis-plugin-timer'
import { boot, initProfile, loadProfileDirectory, readProfilePatches, type ProfileContext } from '@deepseek-ai/dsh-app-boot'
import Hmr from '@deepseek-ai/dsh-hmr'
import PluginManager from '@deepseek-ai/dsh-plugin-manager'
import Sessions from '@deepseek-ai/dsh-session'
import Projections from '@deepseek-ai/dsh-session-projection'
import Agents from '@deepseek-ai/dsh-agent'
import Llm from '@deepseek-ai/dsh-llm'
import SystemPrompt from '@deepseek-ai/dsh-system-prompt'
import Tools from '@deepseek-ai/dsh-tools'
import * as NativeToolExecutor from '@deepseek-ai/dsh-tool-executor-native'
import Skills from '@deepseek-ai/dsh-skill'
import Access from '@deepseek-ai/dsh-api-remote-access'
import * as ActionCards from '@deepseek-ai/dsh-action-cards'
import * as Pages from '@deepseek-ai/dsh-creation-recommendations'
import * as Plugins from '@deepseek-ai/dsh-plugin-recommendations'
interface Row { readonly id: string; readonly name: string }
const manifest = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf8')) as {
name: string
publishConfig: { access: string }
dependencies: Record<string, string>
dsh: { bundle: { patch: string } }
}
const patch = yaml.load(readFileSync(new URL(`../${manifest.dsh.bundle.patch}`, import.meta.url), 'utf8'), {
schema: entryListSchema,
}) as { insert: Row[] }[]
const rows = patch[0]?.insert ?? []
/** A browser row's Host entry is an empty `apply`; its contribution loads in the Client. */
function browserRow(): object {
return { apply(): void {} }
}
/** Source modules standing in for the row packages, which the Loader would otherwise import from their built lib. */
const MODULES: Readonly<Record<string, object>> = {
'@deepseek-ai/dsh-action-cards': ActionCards,
'@deepseek-ai/dsh-client-ui-action-cards': browserRow(),
'@deepseek-ai/dsh-creation-recommendations': Pages,
'@deepseek-ai/dsh-client-ui-creation-recommendations': browserRow(),
'@deepseek-ai/dsh-plugin-recommendations': Plugins,
'@deepseek-ai/dsh-client-ui-plugin-recommendations': browserRow(),
}
it('publishes one layer inserting the card service, the card display and both features with their card bodies', () => {
expect(manifest.publishConfig.access).toBe('public')
expect(manifest.dsh.bundle.patch).toBe('./cordis.patch.yml')
expect(patch).toEqual([{ insert: [
{ id: 'action-cards', name: '@deepseek-ai/dsh-action-cards' },
{ id: 'client-ui-action-cards', name: '@deepseek-ai/dsh-client-ui-action-cards' },
{ id: 'creation-recommendations', name: '@deepseek-ai/dsh-creation-recommendations' },
{ id: 'client-ui-creation-recommendations', name: '@deepseek-ai/dsh-client-ui-creation-recommendations' },
{ id: 'plugin-recommendations', name: '@deepseek-ai/dsh-plugin-recommendations' },
{ id: 'client-ui-plugin-recommendations', name: '@deepseek-ai/dsh-client-ui-plugin-recommendations' },
] }])
expect(Object.keys(manifest.dependencies).sort()).toEqual(rows.map(row => row.name).sort())
})
it('addresses every row through its own id and switches the shared card service and each feature', async () => {
const home = await mkdtemp(join(tmpdir(), 'dsh-personalized-recommendations-'))
let owner: Context | undefined
onTestFinished(async () => { await owner?.fiber.dispose(); await rm(home, { recursive: true, force: true }) })
const dir = join(home, 'profiles', 'test')
const anchor = join(home, 'package.json')
await writeFile(anchor, JSON.stringify({ name: 'installation', dependencies: { [manifest.name]: '1.0.0' } }))
initProfile(dir, ['fixture-base', manifest.name])
async function bundle(root: string, name: string, inserted: object[]) {
const path = join(root, 'node_modules', name)
await mkdir(path, { recursive: true })
await writeFile(join(path, 'package.json'), JSON.stringify({
name, version: '1.0.0', dsh: { bundle: { patch: './cordis.patch.yml' } },
}))
await writeFile(join(path, 'cordis.patch.yml'), JSON.stringify([{ insert: inserted }]))
}
await bundle(dir, 'fixture-base', [
['session', 'sessions'], ['projection', 'projections'], ['llm', 'llm'], ['prompt', 'prompt'], ['tools', 'tools'],
['executor', 'executor'], ['skills', 'skills'], ['agents', 'agents'], ['access', 'access'], ['manager', 'manager'],
].map(([id, name]) => ({ id, name: `cordis:${name!}` })))
// The shipped rows keep their ids; each name serves that row's package source through a Loader builtin.
await bundle(home, manifest.name, rows.map(row => ({ id: row.id, name: `cordis:${row.id}` })))
await writeFile(join(dir, 'cordis.yml'), '[]\n')
const profile: ProfileContext = {
name: 'test', dir, home, cwd: home, patchPath: join(dir, 'cordis.patch.yml'), installAnchor: anchor,
startedBundles: loadProfileDirectory('test', dir, anchor).layers.map(layer => layer.packageName),
overlays: [], telemetryDisabledEnv: undefined,
}
const ctx = await boot('test', join(dir, 'cordis.yml'), readProfilePatches('test', profile), (ctx) => {
owner = ctx
ctx.provide('profileContext', profile)
ctx.provide('appReady', { onReady: (listener) => { listener(); return () => {} } })
// Personalized pages starts Creator children through this service only after a Create click.
ctx.provide('subagents', {})
Object.assign(ctx.loader.builtins, {
sessions: Sessions, projections: Projections, llm: Llm, prompt: SystemPrompt, tools: Tools, executor: NativeToolExecutor,
skills: Skills, agents: Agents, access: Access, manager: PluginManager,
...Object.fromEntries(rows.map(row => [row.id, MODULES[row.name]])),
})
})
await ctx.plugin(Timer)
await ctx.plugin(Hmr, { root: [], ignored: [], debounce: 0 })
await ctx.hmr.runExclusive(async () => {})
const skills = async () => (await ctx.skills.list()).map(skill => skill.name).sort()
expect(await skills()).toEqual(['official-plugins', 'personalized-pages'])
const listed = (await ctx.pluginManager.listBundles()).find(bundle => bundle.name === manifest.name)
expect(listed).toMatchObject({ enabled: true, optional: true })
expect(listed?.rows.map(row => row.rowId)).toEqual(rows.map(row => row.id))
const plugins = await ctx.pluginManager.listPlugins()
for (const row of listed?.rows ?? []) {
expect([...ctx.loader.entries()].filter(entry => entry.options.id === row.rowId)).toHaveLength(1)
const plugin = plugins.find(item => item.entryId === row.entryId)
expect(plugin).toMatchObject({ patchId: row.rowId, enabled: true })
expect(plugin?.readOnlyReason).toBeUndefined()
}
const toggle = async (id: string, enabled: boolean) => {
const entryId = listed?.rows.find(row => row.rowId === id)?.entryId
if (entryId === undefined) throw new Error(`the bundle lists no live ${id} row`)
expect(await ctx.pluginManager.setPluginEnabled(entryId, enabled)).toMatchObject({ application: 'applied' })
expect((await ctx.pluginManager.listPlugins()).find(item => item.entryId === entryId)?.enabled).toBe(enabled)
}
await toggle('creation-recommendations', false)
expect(await skills()).toEqual(['official-plugins'])
// Both features inject the card service, so switching it off withdraws them until it is on again.
await toggle('action-cards', false)
expect(ctx.get('actionCards')).toBeUndefined()
expect(await skills()).toEqual([])
expect(yaml.load(await readFile(profile.patchPath, 'utf8'))).toEqual([
{ id: 'creation-recommendations', disabled: true }, { id: 'action-cards', disabled: true },
])
await toggle('action-cards', true)
expect(await skills()).toEqual(['official-plugins'])
await toggle('creation-recommendations', true)
expect(await skills()).toEqual(['official-plugins', 'personalized-pages'])
await toggle('plugin-recommendations', false)
expect(await skills()).toEqual(['personalized-pages'])
await toggle('plugin-recommendations', true)
expect(await skills()).toEqual(['official-plugins', 'personalized-pages'])
expect(yaml.load(await readFile(profile.patchPath, 'utf8'))).toEqual([])
}, 30_000)
@@ -0,0 +1,15 @@
{
"extends": "../../../tsconfig.base.json",
"compilerOptions": {
"rootDir": "src",
"outDir": "lib/types"
},
"include": [
"src"
],
"references": [
{
"path": "../../../vendor/cordis"
}
]
}
@@ -0,0 +1,3 @@
import { defineConfig } from 'tsdown'
export default defineConfig({ entry: ['lib/types/index.js'], outDir: 'lib', format: ['esm'], platform: 'node', target: 'es2024', fixedExtension: false, dts: false, clean: false })
@@ -3,8 +3,8 @@
# After editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write packages/experimental/plugin-recommendations/README.md
/:
en: 74f11064759209bf
zh: 694dc0dc26dacd3b
en: c34591bc4458dc55
zh: 7672f17a222f287e
/deepseek-ai-dsh-plugin-recommendations:
en: f7efb269a445d68e
zh: 171930b415e131f7
@@ -15,8 +15,8 @@
en: d152484eb41ac6b4
zh: 59094206ec49ad20
/deepseek-ai-dsh-plugin-recommendations/use-this-package:
en: 8e26a2013becb72f
zh: 37f5cf1e56588ec2
en: 79fde2c706fbaf14
zh: 42eb78e5ea7f0ed8
/deepseek-ai-dsh-plugin-recommendations/use-this-package/outcomes-and-recovery:
en: 3b07d58a6bc4394a
zh: 5d64630582c8da80
@@ -33,17 +33,17 @@
en: 79e932b35e50619a
zh: 821b4d95d6ce1d22
/deepseek-ai-dsh-plugin-recommendations/model-experience/official-plugin-recommendations/what-the-model-sees:
en: 5526f467498a8458
zh: 9495ede65dbc6771
en: 64cc3b2eff7bec02
zh: 9f5bab103219e352
/deepseek-ai-dsh-plugin-recommendations/model-experience/official-plugin-recommendations/token-effect:
en: 9849eee72560906e
zh: d64a2f5b1e33f249
en: 2d88ac78f2ad5ea7
zh: c4d3ac643cf723b1
/deepseek-ai-dsh-plugin-recommendations/model-experience/official-plugin-recommendations/kv-cache-effect:
en: e6575a3adcaa7d1c
zh: e5323a4571ecc8aa
/deepseek-ai-dsh-plugin-recommendations/known-limitations-and-deferred-work:
en: 054c9961595232a9
zh: 2de8775f30a34ea1
en: 8506b8b41b36450a
zh: 439deb24f6cd0f77
/deepseek-ai-dsh-plugin-recommendations/known-limitations-and-deferred-work/dev-note:
en: e67f633dc6fe7773
zh: e88aeb617ffb74ea
@@ -1,6 +1,6 @@
---
description: "Recommend built-in official plugins for explicit user needs and enable them from conversation cards."
kind: "package-bundle"
kind: "package-reference"
---
# @deepseek-ai/dsh-plugin-recommendations
@@ -25,9 +25,9 @@ Users can discover a relevant built-in plugin while discussing a concrete need o
<a id="use-this-package"></a>
## Use this package
Open Plugins → More → Experimental plugins and enable Plugin recommendations. Shipped profiles leave this experimental bundle disabled. Enabling pins it to the main Plugins list; disabling returns it to the secondary page only. The bundle also enables the shared [action card service](../action-cards/README.md) and its browser half; that service's `queuedMessageLimit` sets how many queued next-turn messages stop the current turn's card. This bundle has no configuration of its own.
Open Plugins → More → Experimental plugins and enable [Personalized recommendations](../personalized-recommendations/README.md); its Plugin recommendations row is this package. Shipped profiles leave this experimental bundle disabled. Enabling pins it to the main Plugins list; disabling returns it to the secondary page only. The Personalized recommendations bundle also enables the shared [action card service](../action-cards/README.md) and its browser half; that service's `queuedMessageLimit` sets how many queued next-turn messages stop the current turn's card. This plugin has no configuration of its own.
The experiment works with or without Personalized pages, and neither package depends on the other. Both bundles insert the same card-service rows, and the Loader keeps one entry for each. With both bundles enabled, those two rows cannot be switched or configured individually: use the bundle switches, and change `queuedMessageLimit` in the profile's `cordis.patch.yml` ([Known Limitations](#known-limitations-and-deferred-work)). A Turn shows at most one card across both kinds: the first accepted `propose_action` call of the Turn becomes the card. For several independent needs, guidance follows an explicit user priority and otherwise prefers an existing plugin over a new page; other needs stay in the answer.
The experiment keeps working when the bundle’s Personalized pages row is switched off, and neither package depends on the other. A Turn shows at most one card across both kinds: the first accepted `propose_action` call of the Turn becomes the card. For several independent needs, guidance follows an explicit user priority and otherwise prefers an existing plugin over a new page; other needs stay in the answer.
### Outcomes and recovery
@@ -69,11 +69,11 @@ Concurrent actions on one card share one operation, and disposal stops local fol
#### What the model sees
The existing `skill` tool loads `official-plugins` when the user asks how to do or use something in DSH, asks whether DSH can do something, or says a capability is missing or should change, such as tools, input, displayed thinking or titles, session search, terminals, worktrees, agent teams, desktop control, automation, access, approval prompts, output badges or signatures, and plugins or plugin sources. The catalog entry tells the Agent that such a question is not a request to develop DSH and to load the skill before reading files or source. Loading returns matching policy, the submission rule and the current catalog with names, localized titles, descriptions and enabled state. An enabled match gets usage guidance without a card; a partial match states its limit. Ordinary tasks, quoted wishes, discussion-only and declined requests get no card. The proposal is one [`propose_action`](../action-cards/README.md#model-experience) call in the same Turn as the skill load, with `action: "enable_official_plugin"`, the plugin's catalog `title`, a one-sentence `brief` in the user's language and `details` holding the catalog `name`; the call itself is the submission, and nothing changes until the user clicks Enable. Only an accepted call's result says how to end the answer: `Card shown below your answer. Do not restate it. End with at most one short invitation in the user’s language to click Enable below; do not say the plugin is already on.` A refused call carries no invitation, so the Agent invites the user only to a card that exists. The next request after a click carries the shared status notice with this kind's guidance: a fact, not a request for more work, and enabling authorizes nothing beyond that plugin.
The existing `skill` tool loads `official-plugins` when the user asks how to do or use something in DSH, asks whether DSH can do something, or says a capability is missing or should change, such as tools, input, displayed thinking or titles, session search, terminals, worktrees, agent teams, desktop control, automation, access, approval prompts, output badges or signatures, and plugins or plugin sources. The catalog entry tells the Agent that such a question is not a request to develop DSH and to load the skill before reading files or source. Loading returns matching policy, the submission rule and the current catalog with names, localized titles, descriptions and enabled state. An enabled match gets usage guidance without a card; a partial match states its limit. Ordinary tasks, quoted wishes, discussion-only and declined requests get no card. The proposal is one [`propose_action`](../action-cards/README.md#model-experience) call in the same Turn as the skill load, with `action: "enable_official_plugin"`, the plugin's catalog `title`, a one-sentence `brief` in the user's language and `details` holding the catalog `name`; the call itself is the submission, and nothing changes until the user clicks Enable. Because the card shows only the plugin’s catalog title and description, the final answer says in one sentence, in the user’s language, how the plugin meets the need; `brief` is that same sentence. Only an accepted call's result says how to end the answer: `Card shown below your answer. Do not restate it. End with at most one short invitation in the user’s language to click Enable below; do not say the plugin is already on.` A refused call carries no invitation, so the Agent invites the user only to a card that exists. The next request after a click carries the shared status notice with this kind's guidance: a fact, not a request for more work, and enabling authorizes nothing beyond that plugin.
#### Token effect
While enabled, requests carry only the 495-character catalog entry, within the skill catalog's 500-character limit; the shared card tool is declared only after a card skill loads. A skill load appends about 8.5K characters: a 2.7K-character policy plus the catalog, about 5.5K characters for 15 eligible plugins and growing with their number. A recommendation needs one skill load and one `propose_action` call before the final answer; the accepted call's result is 169 characters, about 42 tokens at four characters per token. A changed card appends one short status notice to the next request.
While enabled, requests carry only the 495-character catalog entry, within the skill catalog's 500-character limit; the shared card tool is declared only after a card skill loads. A skill load appends about 20.9K characters: a 2.9K-character policy plus the catalog, about 17.7K characters for 14 eligible plugins with titles and descriptions in the eight shipped languages, growing with their number. A recommendation needs one skill load and one `propose_action` call before the final answer; the accepted call's result is 169 characters, about 42 tokens at four characters per token. A changed card appends one short status notice to the next request.
#### KV Cache effect
@@ -88,7 +88,7 @@ The manual real-model input set is in `evaluation/intent-cases.json`; unit tests
- Only shipped, optional, official plugins are eligible; missing packages and third-party registries are excluded.
- Recommendations require a live root conversation; there is no unsolicited opportunity discovery.
- A historical decision does not continuously track changes later made on the Plugins page.
- Two optional bundles cannot yet share a dependency row addressably. With Personalized pages also enabled, the Plugins page cannot switch or configure the shared `action-cards` and `client-ui-action-cards` rows individually; use the bundle switches, and change `queuedMessageLimit` in the profile's `cordis.patch.yml`.
- The catalog reports enabled state per bundle: Personalized recommendations shows as enabled while only its Personalized pages row is off, so the skill can tell a user who asks for a page that it is already on.
<a id="dev-note"></a>
### Dev Note
@@ -1,6 +1,6 @@
---
description: "针对用户明确表达的需求推荐内置官方插件,并通过会话内卡片启用。"
kind: "package-bundle"
kind: "package-reference"
---
# @deepseek-ai/dsh-plugin-recommendations
@@ -25,9 +25,9 @@ kind: "package-bundle"
<a id="use-this-package"></a>
## 使用此包
打开插件 → 更多 → 实验性插件,启用「插件推荐」。内置 profile 默认不启用这个实验 bundle。启用后它会固定显示在插件主列表;关闭后只回到二级页。这个 bundle 同时启用共享的[操作卡片服务](../action-cards/README.zh.md)及其浏览器端;该服务的 `queuedMessageLimit` 决定排队等待后续轮次的消息达到多少条时本轮不再出卡。本 bundle 没有自己的配置项。
打开插件 → 更多 → 实验性插件,启用[个性化推荐](../personalized-recommendations/README.zh.md),其中的「插件推荐」行就是本包。内置 profile 默认不启用这个实验 bundle。启用后它会固定显示在插件主列表;关闭后只回到二级页。个性化推荐 bundle 同时启用共享的[操作卡片服务](../action-cards/README.zh.md)及其浏览器端;该服务的 `queuedMessageLimit` 决定排队等待后续轮次的消息达到多少条时本轮不再出卡。本插件没有自己的配置项。
本实验可以单独使用,也可以和「个性化页面」同时开启,两个包互不依赖。两个 bundle 插入相同的卡片服务行,Loader 对每个行 id 只保留一个条目。两个 bundle 都启用时,这两行不能单独开关或配置:请使用 bundle 开关,`queuedMessageLimit` 需在 profile 的 `cordis.patch.yml` 中修改(见[已知限制](#known-limitations-and-deferred-work))。两种卡片合计每轮最多一张:本轮第一个被接受的 `propose_action` 调用成为卡片。多个独立需求时,指引优先遵循用户明确的优先级,否则现成插件优先于新建页面;其余需求在回答正文中说明。
同一 bundle 的「个性化页面」行关闭后,本实验仍可使用,两个包互不依赖。两种卡片合计每轮最多一张:本轮第一个被接受的 `propose_action` 调用成为卡片。多个独立需求时,指引优先遵循用户明确的优先级,否则现成插件优先于新建页面;其余需求在回答正文中说明。
### 结果与恢复
@@ -69,11 +69,11 @@ Host 入口是函数插件。它的 `apply` 通过 `ctx.plugin` 组装内部的
#### 模型可见内容
用户问 DSH 里某件事怎么做或怎么用、DSH 能不能做某件事,或者说缺少某种能力、希望它换一种工作方式时,例如工具、输入方式、思考内容或标题的显示、搜索会话、终端、工作树、多智能体协作、桌面操作、自动化、访问权限、授权确认、输出徽章或签名、插件及插件源,现有的 `skill` 工具会加载 `official-plugins`。目录条目告诉 Agent 这类问题不是要开发 DSH,并要求在读取文件或源码之前先加载它。加载结果包含匹配规则、提交方式,以及当前目录中的名称、本地化标题、描述和启用状态。已启用的插件只说明用法、不出卡;只覆盖部分需求时说明限制。普通任务、引用中的愿望、只讨论和明确不要推荐的请求不出卡。提案是在加载 skill 的同一轮里调用一次 [`propose_action`](../action-cards/README.zh.md#model-experience):`action: "enable_official_plugin"`、插件在目录中的 `title`、一句用户语言的 `brief`,以及带目录 `name` 的 `details`;调用本身就是提交,用户点击启用前什么都不会改变。只有被接受的调用结果会说明回答怎样结尾:`Card shown below your answer. Do not restate it. End with at most one short invitation in the user’s language to click Enable below; do not say the plugin is already on.`。被拒绝的调用不带邀请说明,所以 Agent 只会邀请用户点击已经出现的卡片。点击后的下一次请求会带共享的状态通知和本种类的说明:它是事实,不是继续工作的要求,启用一个插件也不授权该插件之外的任何事。
用户问 DSH 里某件事怎么做或怎么用、DSH 能不能做某件事,或者说缺少某种能力、希望它换一种工作方式时,例如工具、输入方式、思考内容或标题的显示、搜索会话、终端、工作树、多智能体协作、桌面操作、自动化、访问权限、授权确认、输出徽章或签名、插件及插件源,现有的 `skill` 工具会加载 `official-plugins`。目录条目告诉 Agent 这类问题不是要开发 DSH,并要求在读取文件或源码之前先加载它。加载结果包含匹配规则、提交方式,以及当前目录中的名称、本地化标题、描述和启用状态。已启用的插件只说明用法、不出卡;只覆盖部分需求时说明限制。普通任务、引用中的愿望、只讨论和明确不要推荐的请求不出卡。提案是在加载 skill 的同一轮里调用一次 [`propose_action`](../action-cards/README.zh.md#model-experience):`action: "enable_official_plugin"`、插件在目录中的 `title`、一句用户语言的 `brief`,以及带目录 `name` 的 `details`;调用本身就是提交,用户点击启用前什么都不会改变。卡片只显示插件在目录中的标题和描述,所以最终回答要用用户的语言、一句话说明这个插件如何满足需求;`brief` 就是这同一句话。只有被接受的调用结果会说明回答怎样结尾:`Card shown below your answer. Do not restate it. End with at most one short invitation in the user’s language to click Enable below; do not say the plugin is already on.`。被拒绝的调用不带邀请说明,所以 Agent 只会邀请用户点击已经出现的卡片。点击后的下一次请求会带共享的状态通知和本种类的说明:它是事实,不是继续工作的要求,启用一个插件也不授权该插件之外的任何事。
#### Token 影响
启用期间,每次请求只多一条 495 字符的目录条目(在 skill 目录 500 字符的上限内);共享的卡片工具只在加载过卡片 skill 之后才声明。一次 skill 加载追加约 8.5K 字符:2.7K 字符的规则,加上目录;15 个可推荐插件时目录约 5.5K 字符,并随插件数量增长。一次推荐需要加载一次 skill,并在最终回答前调用一次 `propose_action`;被接受的调用结果 169 字符,按每 4 字符 1 个 token 计约 42 个 token。状态变化的卡片会在下一次请求追加一条简短通知。
启用期间,每次请求只多一条 495 字符的目录条目(在 skill 目录 500 字符的上限内);共享的卡片工具只在加载过卡片 skill 之后才声明。一次 skill 加载追加约 20.9K 字符:2.9K 字符的规则,加上目录;14 个可推荐插件(标题和描述含 8 种发布语言)时目录约 17.7K 字符,并随插件数量增长。一次推荐需要加载一次 skill,并在最终回答前调用一次 `propose_action`;被接受的调用结果 169 字符,按每 4 字符 1 个 token 计约 42 个 token。状态变化的卡片会在下一次请求追加一条简短通知。
#### KV Cache 影响
@@ -88,7 +88,7 @@ Skill 内容和提案调用追加到对话记录;公共 system prompt 不变
- 只推荐已随安装提供、可选的官方插件;缺失的包和第三方注册源不在范围内。
- 推荐需要在线的根会话;不会主动寻找推荐机会。
- 历史决定不会持续跟踪之后在插件页做的修改。
- 平台目前不支持两个可选 bundle 以可定位的方式共享同一依赖行。同时启用「个性化页面」时,插件页不能单独开关或配置共享的 `action-cards` 和 `client-ui-action-cards` 两行;请使用 bundle 开关,`queuedMessageLimit` 需在 profile 的 `cordis.patch.yml` 中修改。
- 目录按 bundle 报告启用状态:只关闭「个性化页面」行时,个性化推荐仍显示为已启用,skill 可能因此告诉想要页面的用户它已开启。
<a id="dev-note"></a>
### 开发备注
@@ -1,9 +0,0 @@
- insert:
- id: action-cards
name: '@deepseek-ai/dsh-action-cards'
- id: client-ui-action-cards
name: '@deepseek-ai/dsh-client-ui-action-cards'
- id: plugin-recommendations
name: '@deepseek-ai/dsh-plugin-recommendations'
- id: client-ui-plugin-recommendations
name: '@deepseek-ai/dsh-client-ui-plugin-recommendations'
@@ -1,6 +1,6 @@
{
"meta": {
"title": "Plugin-Empfehlungen",
"description": "Entdecken Sie integrierte Plugins für Bedürfnisse, die Sie beschreiben, wenn Sie nicht wissen, welche Funktionen verfügbar sind. Nach der Antwort erscheint eine Karte zum Aktivieren; die Aktivierung erfordert Ihren Klick."
"description": "Wenn Sie fragen, wie etwas in dieser App geht, oder sagen, dass eine Funktion fehlt, empfiehlt es unter der Antwort das integrierte Plugin, das sie bereitstellt; Aktivieren schaltet es für alle Gespräche ein, und Sie können es auf der Seite „Plugins“ wieder ausschalten."
}
}
@@ -1,6 +1,6 @@
{
"meta": {
"title": "Plugin recommendations",
"description": "Discover built-in plugins for needs you describe when you are unsure which features are available. An Enable card appears after the answer; activation requires your click."
"description": "When you ask how to do something in this app or say a capability is missing, recommends the built-in plugin that provides it below the answer; Enable turns it on for every conversation, and you can turn it off on the Plugins page."
}
}
@@ -1,6 +1,6 @@
{
"meta": {
"title": "Recomendaciones de complementos",
"description": "Descubre complementos integrados para las necesidades que describes cuando no sabes qué funciones están disponibles. Después de la respuesta aparece una tarjeta Habilitar; la activación requiere tu clic."
"description": "Cuando preguntas cómo hacer algo en esta aplicación o dices que falta una función, recomienda debajo de la respuesta el complemento integrado que la ofrece; Habilitar lo activa en todas las conversaciones y puedes desactivarlo en la página Complementos."
}
}
@@ -1,6 +1,6 @@
{
"meta": {
"title": "Recommandations de plugins",
"description": "Découvrez les plugins intégrés adaptés aux besoins que vous décrivez lorsque vous ne savez pas quelles fonctionnalités sont disponibles. Une carte Activer apparaît après la réponse ; l’activation nécessite votre clic."
"description": "Lorsque vous demandez comment faire quelque chose dans cette application ou signalez qu’une fonctionnalité manque, recommande sous la réponse le plugin intégré qui la fournit ; Activer l’active pour toutes les conversations, et vous pouvez le désactiver dans la page Plugins."
}
}
@@ -1,6 +1,6 @@
{
"meta": {
"title": "プラグイン推薦",
"description": "どの機能が使えるか分からないとき、あなたが述べたニーズに合う内蔵プラグインを推薦します。回答の後に有効化カードが表示され、有効化にはクリックが必要です。"
"description": "このアプリで何かをする方法を尋ねたときや機能が足りないと言ったときに、それを提供する内蔵プラグインを回答の下で推薦します。「有効にする」をクリックするとすべての会話で有効になり、プラグイン画面でオフにできます。"
}
}
@@ -1,6 +1,6 @@
{
"meta": {
"title": "Recomendações de plug-ins",
"description": "Descubra plug-ins integrados para as necessidades que você descreve quando não sabe quais recursos estão disponíveis. Um cartão Ativar aparece após a resposta; a ativação exige o seu clique."
"description": "Quando você pergunta como fazer algo neste aplicativo ou diz que falta um recurso, recomenda abaixo da resposta o plug-in integrado que o oferece; Ativar o liga em todas as conversas, e você pode desligá-lo na página Plug-ins."
}
}
@@ -1,6 +1,6 @@
{
"meta": {
"title": "Рекомендации плагинов",
"description": "Находите встроенные плагины для описанных вами потребностей, когда вы не знаете, какие функции доступны. После ответа появляется карточка «Включить»; плагин включается только по вашему нажатию."
"description": "Когда вы спрашиваете, как что-то сделать в этом приложении, или говорите, что не хватает какой-то возможности, рекомендует под ответом встроенный плагин, который ее предоставляет; «Включить» включает его для всех разговоров, а выключить его можно на странице «Плагины»."
}
}
@@ -1,6 +1,6 @@
{
"meta": {
"title": "插件推荐",
"description": "不清楚现有哪些功能可用时,根据你明确表达的需求推荐内置插件,并在对话末尾提供启用卡片;由你点击后开启。"
"description": "问到本应用怎么做某件事或缺少某项能力时,在回答下方推荐对应的内置插件;点击启用后对所有会话生效,可在插件页关闭。"
}
}
@@ -33,7 +33,6 @@
"types": "./lib/typert.remote-client.d.ts",
"default": "./lib/typert.remote-client.js"
},
"./cordis.patch.yml": "./cordis.patch.yml",
"./skills/*.md": "./skills/*.md"
},
"license": "MIT",
@@ -64,7 +63,6 @@
"icon.svg",
"locale/*.json",
"lib/index.js",
"cordis.patch.yml",
"skills/*.md",
"lib/types/**/*.js",
"lib/types/**/*.d.ts",
@@ -73,10 +71,5 @@
"lib/typert.remote-client.js",
"lib/typert.remote-client.d.ts"
],
"dsh": {
"bundle": {
"patch": "./cordis.patch.yml"
}
},
"icon": "./icon.svg"
}
@@ -20,4 +20,4 @@ A turn shows at most one card across every card skill. When the user asks for se
## Offer without enabling
To offer, call `propose_action` once, in the same turn as loading this skill, with `action: "enable_official_plugin"`, `title` set to the plugin's catalog title in the user's language, `brief` set to one sentence in the user's language that ties the plugin to their need, and `details` holding `name`, the exact catalog name. The call is the submission: the card appears below your answer; a refused call creates no card, and its error says why. Then write your final answer: answer any direct question; the call's result says how to end the answer. Do not narrate the call, repeat the catalog description, add setup steps the catalog does not state, claim the plugin is enabled, or ask the user to report back. The card opens the plugin's details; enabling applies to every conversation and can be undone there. The user's choice reaches you later as a status notice; enabling a plugin authorizes nothing beyond it.
To offer, call `propose_action` once, in the same turn as loading this skill, with `action: "enable_official_plugin"`, `title` set to the plugin's catalog title in the user's language, `brief` set to one sentence in the user's language that ties the plugin to their need, and `details` holding `name`, the exact catalog name. The call is the submission: the card appears below your answer; a refused call creates no card, and its error says why. Then write your final answer: answer any direct question; the call's result says how to end the answer. The card shows only the plugin's catalog title and description, so the answer says in one sentence, in the user's language, how the plugin meets their need; `brief` is that same sentence. Do not narrate the call, repeat the catalog description, add setup steps the catalog does not state, claim the plugin is enabled, or ask the user to report back. The card opens the plugin's details; enabling applies to every conversation and can be undone there. The user's choice reaches you later as a status notice; enabling a plugin authorizes nothing beyond it.
@@ -39,7 +39,7 @@ A turn shows at most one card across every card skill. When the user asks for se
## Offer without enabling
To offer, call \`propose_action\` once, in the same turn as loading this skill, with \`action: "enable_official_plugin"\`, \`title\` set to the plugin's catalog title in the user's language, \`brief\` set to one sentence in the user's language that ties the plugin to their need, and \`details\` holding \`name\`, the exact catalog name. The call is the submission: the card appears below your answer; a refused call creates no card, and its error says why. Then write your final answer: answer any direct question; the call's result says how to end the answer. Do not narrate the call, repeat the catalog description, add setup steps the catalog does not state, claim the plugin is enabled, or ask the user to report back. The card opens the plugin's details; enabling applies to every conversation and can be undone there. The user's choice reaches you later as a status notice; enabling a plugin authorizes nothing beyond it.
To offer, call \`propose_action\` once, in the same turn as loading this skill, with \`action: "enable_official_plugin"\`, \`title\` set to the plugin's catalog title in the user's language, \`brief\` set to one sentence in the user's language that ties the plugin to their need, and \`details\` holding \`name\`, the exact catalog name. The call is the submission: the card appears below your answer; a refused call creates no card, and its error says why. Then write your final answer: answer any direct question; the call's result says how to end the answer. The card shows only the plugin's catalog title and description, so the answer says in one sentence, in the user's language, how the plugin meets their need; \`brief\` is that same sentence. Do not narrate the call, repeat the catalog description, add setup steps the catalog does not state, claim the plugin is enabled, or ask the user to report back. The card opens the plugin's details; enabling applies to every conversation and can be undone there. The user's choice reaches you later as a status notice; enabling a plugin authorizes nothing beyond it.
## Official plugins
@@ -33,7 +33,7 @@ class Model extends LlmAdapter {
}
}
it.each(['normal', 'consumer-unload', 'shared-rows'] as const)('enables through the real Loader/HMR queue: %s', async (scenario) => {
it.each(['normal', 'consumer-unload'] as const)('enables through the real Loader/HMR queue: %s', async (scenario) => {
const home = await mkdtemp(join(tmpdir(), 'dsh-recommendations-'))
let owner: Context | undefined
onTestFinished(async () => { await owner?.fiber.dispose(); await rm(home, { recursive: true, force: true }) })
@@ -41,8 +41,7 @@ it.each(['normal', 'consumer-unload', 'shared-rows'] as const)('enables through
const anchor = join(home, 'package.json')
const name = '@deepseek-ai/dsh-experimental-session-search'
await writeFile(anchor, JSON.stringify({ name: 'installation', dependencies: { [name]: '1.0.0' } }))
// The Personalized pages bundle inserts the same card-service row; the Loader keeps one entry for the id.
initProfile(dir, scenario === 'shared-rows' ? ['fixture-base', 'fixture-pages'] : ['fixture-base'])
initProfile(dir, ['fixture-base'])
async function bundle(root: string, name: string, patch: string) {
const path = join(root, 'node_modules', name)
await mkdir(path, { recursive: true })
@@ -54,7 +53,6 @@ it.each(['normal', 'consumer-unload', 'shared-rows'] as const)('enables through
return path
}
await bundle(dir, 'fixture-base', await readFile(new URL('./fixtures/cordis.yml', import.meta.url), 'utf8'))
await bundle(dir, 'fixture-pages', JSON.stringify([{ insert: [{ id: 'action-cards', name: 'cordis:actionCards' }] }]))
const plugin = await bundle(home, name, JSON.stringify([{ insert: [{ id: 'recommendation-probe', name: './plugin.mjs' }] }]))
await writeFile(join(plugin, 'plugin.mjs'), 'export function apply(ctx) { ctx.provide("recommendationProbe", true) }\n')
await writeFile(join(dir, 'cordis.yml'), '[]\n')
@@ -110,17 +108,6 @@ it.each(['normal', 'consumer-unload', 'shared-rows'] as const)('enables through
expect(model.requests).toHaveLength(0)
return
}
if (scenario === 'shared-rows') {
// The composed configuration holds the shared row twice, so the Plugins page cannot address it; the bundles still switch.
const shared = async () => (await ctx.pluginManager.listPlugins()).find(plugin => plugin.moduleName === 'cordis:actionCards')
expect((await shared())?.readOnlyReason).toBe('unaddressable')
const service = [...ctx.loader.entries()].find(entry => entry.options.id === 'action-cards')?.fiber
expect((await ctx.pluginManager.setBundleEnabled('fixture-pages', false)).application).toBe('applied')
expect((await shared())?.readOnlyReason).toBeUndefined()
expect([...ctx.loader.entries()].find(entry => entry.options.id === 'action-cards')?.fiber).toBe(service)
expect((await ctx.pluginManager.setBundleEnabled('fixture-pages', true)).application).toBe('applied')
expect((await shared())?.readOnlyReason).toBe('unaddressable')
}
const enabled = { callId, action: ACTION, phase: 'enabled' }
expect(await ctx.actionCards.act(agent, callId, 'enable')).toEqual({ status: 'settled', decision: enabled })
expect(readProfileManifest('test', dir).dsh?.profile?.bundles).toContain(name)
@@ -53,8 +53,7 @@ export const DEFAULT_PROFILE_BUNDLES: readonly string[] = ['@deepseek-ai/dsh-bas
* [admission](../../../../.agents/notes/implemented/architecture/2026-09-21-experimental-capabilities-as-optional-bundles.md)).
*/
export const OPTIONAL_BUNDLES: readonly string[] = [
'@deepseek-ai/dsh-creation-recommendations',
'@deepseek-ai/dsh-plugin-recommendations',
'@deepseek-ai/dsh-personalized-recommendations',
'@deepseek-ai/dsh-cua-bundle',
'@deepseek-ai/dsh-experimental-session-search',
'@deepseek-ai/dsh-experimental-ralph-bundle',
@@ -47,8 +47,7 @@ export const EXTENSION_BUNDLES: readonly string[] = [
* which includes every eligible bundle, ranks them last in this order.
*/
export const MORE_BUNDLES: readonly string[] = [
'@deepseek-ai/dsh-creation-recommendations',
'@deepseek-ai/dsh-plugin-recommendations',
'@deepseek-ai/dsh-personalized-recommendations',
'@deepseek-ai/dsh-experimental-inspector-profile',
'@deepseek-ai/dsh-cua-bundle',
'@deepseek-ai/dsh-experimental-tool-worktree',
@@ -63,8 +62,7 @@ export const MORE_BUNDLES: readonly string[] = [
/** Official bundles the plugin manager marks with the Experimental badge. */
export const EXPERIMENTAL_BUNDLES: ReadonlySet<string> = new Set([
'@deepseek-ai/dsh-creation-recommendations',
'@deepseek-ai/dsh-plugin-recommendations',
'@deepseek-ai/dsh-personalized-recommendations',
'@deepseek-ai/dsh-cua-bundle',
'@deepseek-ai/dsh-experimental-agent-team-profile',
'@deepseek-ai/dsh-experimental-voice-input-bundle',
+73 -6
View File
@@ -325,9 +325,6 @@ importers:
'@deepseek-ai/dsh-cordis-client-runner':
specifier: workspace:*
version: link:../../packages/extensions/cordis-client-runner
'@deepseek-ai/dsh-creation-recommendations':
specifier: workspace:*
version: link:../../packages/experimental/creation-recommendations
'@deepseek-ai/dsh-cua-bundle':
specifier: workspace:*
version: link:../../packages/experimental/cua-bundle
@@ -406,15 +403,15 @@ importers:
'@deepseek-ai/dsh-persona':
specifier: workspace:*
version: link:../../packages/preset/persona
'@deepseek-ai/dsh-personalized-recommendations':
specifier: workspace:*
version: link:../../packages/experimental/personalized-recommendations
'@deepseek-ai/dsh-plan-mode':
specifier: workspace:*
version: link:../../packages/plan/plan-mode
'@deepseek-ai/dsh-plugin-manager':
specifier: workspace:*
version: link:../../packages/boot/plugin-manager
'@deepseek-ai/dsh-plugin-recommendations':
specifier: workspace:*
version: link:../../packages/experimental/plugin-recommendations
'@deepseek-ai/dsh-pwsh-local':
specifier: workspace:*
version: link:../../packages/shell/pwsh-local
@@ -9806,6 +9803,76 @@ importers:
specifier: ^4.3.2
version: 4.3.2
packages/experimental/personalized-recommendations:
dependencies:
'@deepseek-ai/dsh-action-cards':
specifier: workspace:*
version: link:../action-cards
'@deepseek-ai/dsh-client-ui-action-cards':
specifier: workspace:*
version: link:../client-ui-action-cards
'@deepseek-ai/dsh-client-ui-creation-recommendations':
specifier: workspace:*
version: link:../client-ui-creation-recommendations
'@deepseek-ai/dsh-client-ui-plugin-recommendations':
specifier: workspace:*
version: link:../client-ui-plugin-recommendations
'@deepseek-ai/dsh-creation-recommendations':
specifier: workspace:*
version: link:../creation-recommendations
'@deepseek-ai/dsh-plugin-recommendations':
specifier: workspace:*
version: link:../plugin-recommendations
devDependencies:
'@deepseek-ai/cordis':
specifier: workspace:~
version: link:../../../vendor/cordis
'@deepseek-ai/cordis-plugin-include':
specifier: workspace:~
version: link:../../../vendor/include
'@deepseek-ai/cordis-plugin-timer':
specifier: workspace:~
version: link:../../../vendor/timer
'@deepseek-ai/dsh-agent':
specifier: workspace:*
version: link:../../core/agent
'@deepseek-ai/dsh-api-remote-access':
specifier: workspace:*
version: link:../../api/remote-access
'@deepseek-ai/dsh-app-boot':
specifier: workspace:*
version: link:../../boot/app-boot
'@deepseek-ai/dsh-hmr':
specifier: workspace:*
version: link:../../boot/hmr
'@deepseek-ai/dsh-llm':
specifier: workspace:*
version: link:../../llm/llm
'@deepseek-ai/dsh-plugin-manager':
specifier: workspace:*
version: link:../../boot/plugin-manager
'@deepseek-ai/dsh-session':
specifier: workspace:*
version: link:../../core/session
'@deepseek-ai/dsh-session-projection':
specifier: workspace:*
version: link:../../session/session-projection
'@deepseek-ai/dsh-skill':
specifier: workspace:*
version: link:../../skill/skill
'@deepseek-ai/dsh-system-prompt':
specifier: workspace:*
version: link:../../core/system-prompt
'@deepseek-ai/dsh-tool-executor-native':
specifier: workspace:*
version: link:../../core/tool-executor-native
'@deepseek-ai/dsh-tools':
specifier: workspace:*
version: link:../../core/tools
js-yaml:
specifier: ^4.3.2
version: 4.3.2
packages/experimental/plugin-market-bundle:
dependencies:
'@deepseek-ai/dsh-client-ui-plugin-market':
+1
View File
@@ -24,6 +24,7 @@ export const EXPERIMENTAL_PACKAGE_NAME_EXCEPTIONS: Readonly<Record<string, strin
'packages/experimental/client-ui-creation-recommendations': '@deepseek-ai/dsh-client-ui-creation-recommendations',
'packages/experimental/plugin-recommendations': '@deepseek-ai/dsh-plugin-recommendations',
'packages/experimental/client-ui-plugin-recommendations': '@deepseek-ai/dsh-client-ui-plugin-recommendations',
'packages/experimental/personalized-recommendations': '@deepseek-ai/dsh-personalized-recommendations',
} satisfies Record<`packages/experimental/${string}`, `@deepseek-ai/dsh-${string}`>
/** npm namespace for experimental packages without retained-name exceptions. */
+1 -1
View File
@@ -252,7 +252,7 @@ const TOOL_PACKAGES: ToolPackage[] = [
await ctx.plugin(RemoteAccess)
await ctx.plugin(ActionCards)
},
note: 'Declared only to an Agent that loaded the skill of a registered card kind; the kind packages register their actions, and the Personalized pages and Plugin recommendations bundles supply the shipped kinds.',
note: 'Declared only to an Agent that loaded the skill of a registered card kind; the kind packages register their actions, and the Personalized recommendations bundle supplies the shipped kinds.',
},
{
pkg: '@deepseek-ai/dsh-tool-ask-user',
+1
View File
@@ -79,6 +79,7 @@ describe('release families', () => {
'@deepseek-ai/dsh-hooks-codex',
'@deepseek-ai/dsh-experimental-inspector-profile',
'@deepseek-ai/dsh-experimental-inspector',
'@deepseek-ai/dsh-personalized-recommendations',
'@deepseek-ai/dsh-experimental-plugin-market-bundle',
'@deepseek-ai/dsh-plugin-recommendations',
'@deepseek-ai/dsh-experimental-ptc-runtime-python',
@@ -59,6 +59,7 @@ const SENTENCE_MODEL_EXPERIENCE: Readonly<Record<string, SentenceContract>> = {
'packages/experimental/client-ui-action-cards': { kind: 'indirect', reason: 'Card actions go to the Host card service, which owns the logged tool, decisions and status notice.' },
'packages/experimental/client-ui-creation-recommendations': { kind: 'indirect', reason: 'The page card body starts a Creator through the Host page kind; the Host owns its logged task.' },
'packages/experimental/client-ui-plugin-recommendations': { kind: 'indirect', reason: 'The plugin card body enables through the Host plugin kind; the Host card service owns the logged tool, decisions and status notice.' },
'packages/experimental/personalized-recommendations': { kind: 'indirect', reason: 'The bundle composes the card service and both card kinds; their packages own the skills, the logged tool and the status notice.' },
'packages/experimental/voice-input-bundle': { kind: 'none', reason: 'Composes dictation and preparation plugins without adding any model-facing contribution.' },
'packages/telemetry/otel': { kind: 'none', reason: 'The service delivers caller-selected records without changing model context.' },
'packages/host/product-telemetry-otel': { kind: 'none', reason: 'The plugin exports explicit analytics records without contributing model context.' },
@@ -9,14 +9,14 @@
{"type":"system/message","data":{"turn":1,"step":1,"message":{"role":"system","content":[{"type":"text","text":"{{system}}"}],"source":{"kind":"system-prompt"},"id":"{{message:2}}"}},"surfaceOp":"append"}
{"type":"user/message","data":{"content":[{"type":"text","text":"I wish I had a small counter that stays visible between conversations."}],"source":{"kind":"user","rpcId":"{{rpc:1}}","clientTimeZone":"{{clientTimeZone}}"},"role":"user","id":"{{message:1}}"},"surfaceOp":"append"}
{"type":"user/message","data":{"content":[{"type":"text","text":"Current runtime context. This snapshot supersedes earlier runtime-context snapshots.\n\nCurrent working directory: \"{{cwd}}\".\n\nCurrent DSH file policy: workspace-write. Any available operation enforced by the DSH file sandbox may modify files under the session workspace: \"{{cwd}}\". Some platform temporary areas may also be writable.\n\nApproval prompts are enabled in this session: operations that require approval may ask through the configured answerers; without an available answerer, the request fails closed.\n\nCurrent DeepSeek Harness implementation checkout: \"{{sourceRoot}}\".\n\nCurrent DeepSeek Harness Web GUI URL: \"{{webUrl}}\"."}],"source":{"kind":"runtime-context","form":"snapshot","sections":[{"name":"working-directory:current","text":"Current working directory: \"{{cwd}}\"."},{"name":"sandbox:policy","text":"Current DSH file policy: workspace-write. Any available operation enforced by the DSH file sandbox may modify files under the session workspace: \"{{cwd}}\". Some platform temporary areas may also be writable."},{"name":"approval:policy","text":"Approval prompts are enabled in this session: operations that require approval may ask through the configured answerers; without an available answerer, the request fails closed."},{"name":"harness:source","text":"Current DeepSeek Harness implementation checkout: \"{{sourceRoot}}\"."},{"name":"app:web-surface","text":"Current DeepSeek Harness Web GUI URL: \"{{webUrl}}\"."}]},"role":"user","id":"{{message:3}}"},"surfaceOp":"append"}
{"type":"user/message","data":{"content":[{"type":"text","text":"<system-reminder>\nA skill is a reusable set of task-specific instructions. The following skills are available in this session:\n\n<available_skills>\n- `personalized-pages`: Plan an optional page or small tool when the user asks for a page, tab, panel, tool or interface in this app (even for one-off use), wants something to keep, revisit or update later, will keep changing data in your answer, or wants a live view of this app’s own data (Sessions, tasks, logs, workspace). Load this before reading any files or source; it says how to submit the proposal. Not for requested files or code, ordinary answers, existing-feature questions, quoted wishes or declined offers.\n</available_skills>\n\nIf the user names a skill, or the task clearly matches a skill's description, call the `skill` tool with the exact skill name before taking task actions. Load all applicable skills, then follow their full instructions. This catalog contains summaries only; do not infer or follow a skill's instructions until it has been loaded.\nA user may also invoke a skill directly; its <skill_content> block then appears in this conversation. Follow it, and do not call the `skill` tool again for that skill.\n</system-reminder>"}],"source":{"kind":"skill-catalog","form":"catalog","entries":[{"name":"personalized-pages","description":"Plan an optional page or small tool when the user asks for a page, tab, panel, tool or interface in this app (even for one-off use), wants something to keep, revisit or update later, will keep changing data in your answer, or wants a live view of this app’s own data (Sessions, tasks, logs, workspace). Load this before reading any files or source; it says how to submit the proposal. Not for requested files or code, ordinary answers, existing-feature questions, quoted wishes or declined offers."}]},"role":"user","id":"{{message:4}}"},"surfaceOp":"append"}
{"type":"user/message","data":{"content":[{"type":"text","text":"<system-reminder>\nA skill is a reusable set of task-specific instructions. The following skills are available in this session:\n\n<available_skills>\n- `official-plugins`: Check DSH’s optional plugins when the user asks how to do or use something in this app, whether it can, or says a capability is missing or should change: tools, input, thinking or title display, session search, terminals, worktrees, agent teams, desktop control, automation, access, approvals, badges or signatures, plugins or plugin sources. Not a request to develop DSH, even in its own repository: load before reading files or source. Not for ordinary tasks, quoted wishes or declined offers.\n- `personalized-pages`: Plan an optional page or small tool when the user asks for a page, tab, panel, tool or interface in this app (even for one-off use), wants something to keep, revisit or update later, will keep changing data in your answer, or wants a live view of this app’s own data (Sessions, tasks, logs, workspace). Load this before reading any files or source; it says how to submit the proposal. Not for requested files or code, ordinary answers, existing-feature questions, quoted wishes or declined offers.\n</available_skills>\n\nIf the user names a skill, or the task clearly matches a skill's description, call the `skill` tool with the exact skill name before taking task actions. Load all applicable skills, then follow their full instructions. This catalog contains summaries only; do not infer or follow a skill's instructions until it has been loaded.\nA user may also invoke a skill directly; its <skill_content> block then appears in this conversation. Follow it, and do not call the `skill` tool again for that skill.\n</system-reminder>"}],"source":{"kind":"skill-catalog","form":"catalog","entries":[{"name":"official-plugins","description":"Check DSH’s optional plugins when the user asks how to do or use something in this app, whether it can, or says a capability is missing or should change: tools, input, thinking or title display, session search, terminals, worktrees, agent teams, desktop control, automation, access, approvals, badges or signatures, plugins or plugin sources. Not a request to develop DSH, even in its own repository: load before reading files or source. Not for ordinary tasks, quoted wishes or declined offers."},{"name":"personalized-pages","description":"Plan an optional page or small tool when the user asks for a page, tab, panel, tool or interface in this app (even for one-off use), wants something to keep, revisit or update later, will keep changing data in your answer, or wants a live view of this app’s own data (Sessions, tasks, logs, workspace). Load this before reading any files or source; it says how to submit the proposal. Not for requested files or code, ordinary answers, existing-feature questions, quoted wishes or declined offers."}]},"role":"user","id":"{{message:4}}"},"surfaceOp":"append"}
{"type":"user/message","data":{"content":[{"type":"text","text":"Time sampled while preparing turn 1, step 1: {{timeContextTimestamp}}\nBrowser time zone for this request: {{clientTimeZone}}. Interpret otherwise-unqualified dates and times in this zone.\nElapsed since the preceding model-visible message: {{elapsed}}"}],"source":{"kind":"time-context","form":"snapshot","sections":[{"name":"time-context","text":"Time sampled while preparing turn 1, step 1: {{timeContextTimestamp}}\nBrowser time zone for this request: {{clientTimeZone}}. Interpret otherwise-unqualified dates and times in this zone.\nElapsed since the preceding model-visible message: {{elapsed}}"}]},"role":"user","id":"{{message:5}}"},"surfaceOp":"append"}
{"type":"request/header","data":{"header":{"config":{"provider":"deepseek-official","model":"deepseek-v4-flash"},"tools":["ask_user_question","bash","create_goal","edit","get_goal","glob","grep","interrupt_agent","job_kill","job_list","job_output","list_agents","list_subagent_models","plugin_manager","present","read","read_image","schedule_create","schedule_delete","schedule_list","schedule_update","send_message","skill","subagent","subagent_fork","todo_write","update_goal","web_fetch","web_search","workflow","working_directory","write"]},"reason":"initial"}}
{"type":"request/context","data":{"provider":"deepseek-official","model":"deepseek-v4-flash","contextWindow":128000}}
{"type":"session/title","data":{"title":"I wish I had a","messageSeqs":[8],"source":{"kind":"fallback"}}}
{"type":"assistant/message","data":{"turn":1,"step":1,"message":{"role":"assistant","content":[{"type":"tool-call","id":"call_creation_skill","name":"skill","arguments":"{\"name\":\"personalized-pages\"}"}],"source":{"kind":"model","provider":"deepseek-official","model":"deepseek-v4-flash"},"id":"{{message:6}}"},"stream":[{"type":"chunk","time":1792674450282,"chunk":{"type":"block-start","index":0,"blockType":"tool-call"}},{"type":"chunk","time":1792674450282,"chunk":{"type":"block-end","index":0,"block":{"type":"tool-call","id":"call_creation_skill","name":"skill","arguments":"{\"name\":\"personalized-pages\"}"}}},{"type":"chunk","time":1792674450283,"chunk":{"type":"finish","reason":{"kind":"tool-calls"}}}]},"surfaceOp":"append"}
{"type":"tool/call","data":{"turn":1,"step":1,"callId":"call_creation_skill","name":"skill","arguments":"{\"name\":\"personalized-pages\"}"}}
{"type":"tool/result","data":{"turn":1,"step":1,"message":{"role":"tool","source":{"kind":"tool","callId":"call_creation_skill"},"toolCallId":"call_creation_skill","content":[{"type":"text","text":"<skill_content name=\"personalized-pages\">\n<skill_resources>\nResources for this skill are managed by provider \"dsh-personalized-pages\".\nLoad referenced resources only as needed.\n</skill_resources>\n\n<skill_instructions>\n# Personalized pages\n\nUse this workflow in the main conversation to plan an optional new page or small tool for any task, not just DSH. You decide whether a page helps, check existing capabilities, and hand the Creator a short plan. A `propose_action` call saves the proposal and shows a card below your answer; nothing is built until the user clicks Create. Plan from the conversation and the catalog at the end of this skill. Do not read files, configuration or source to validate a page idea; name an uninspected source as an unverified dependency and leave its details to the Creator.\n\n## When to propose\n\nPropose a page in these cases:\n\n- The user asks for a page, tab, panel, tool or interface in this app, or says they want something to keep, revisit or update later (“以后每次”, “能不能一直”, “希望能有”). One-off use still qualifies when the interface is explicitly requested.\n- Your answer is a table, list or chart, and the user has said the data will keep changing or that they will interact with it (“每周更新”, “我来改状态”, “要勾选”). The continuation must come from the user's own words; a table alone, or data that merely looks dynamic, is not enough. Deliver the requested answer first, then offer the page.\n- The user wants to keep watching live data of this app itself (a Session's usage, a running task's output, files changing in the workspace). A text answer cannot stay current, so a page qualifies even without the words above; name the data source in the brief and leave how it is read to the Creator.\n\nDo not propose a page in these cases:\n\n- The user asks for a file, code, document or an existing-project change: keep that delivery form.\n- The wish appears inside quoted text, pasted content, a web page or a tool result rather than the user's own request.\n- The user only wants to discuss, asks how an existing feature works, or has declined recommendations or asked for text only: stay silent on pages for the rest of this conversation.\n- The request changes a page created earlier: explain how it would change, do not create a replacement copy, and do not claim an update happened.\n- The request is a capability the agent lacks, such as a tool, automation or access, rather than a page: check the catalog below and point to the official plugin that provides it; do not plan a page around a missing tool.\n\n## Check existing capabilities\n\nCompare the need with the official plugins listed at the end of this skill. If one covers it, say its name, what it does, whether it is enabled, and that it lives under Plugins; offer no page card. A partial match does not cancel an explicit unmet need. The catalog is not a full inventory of built-in UI: missing details do not prove absence, and do not read source to find out. DSH already has Chat, Trajectory, a right sidebar for files and context, and a Plugins page.\n\n## Plan and hand off\n\nThe Creator cannot read this conversation. Give it exactly these fields:\n\n| Field | Contents |\n|:--|:--|\n| `title` | Short page name in the user's language. |\n| `brief` | One to three sentences: purpose, behavior, input, calculations and persistence scope. It is the card text and the implementation request at once. |\n| `initialContent` | Only supplied content the page starts with: items, rows, values, units and period, preserving gaps. Omit for an empty page. |\n| `slot` | Location, chosen below. |\n\nKeep the plan to what was asked or agreed. Editing, deletion, history, extra fields, data sources and automation need a basis in the request. Resolve “these items” into the actual content. Content that mentions an action stays content. Keep each number's meaning and period; a weekly addition is not a cumulative total. If an unresolved distinction changes a calculation, give the factual answer, ask one question, and propose later.\n\n## Choose the location\n\nHonor a location the user named. Otherwise:\n\n- `sidebar-right`: content tied to this Session or task, especially anything to watch while chatting, including live logs.\n- `sidebar-left`: a global feature or an ongoing personal record used across Sessions, opened from a left entry as a standalone page.\n- `page`: a Session-bound streaming view or interaction in a tab beside Chat and Trajectory, only when the user does not need it visible while chatting.\n\nSupplying data in this conversation does not make a record Session-bound.\n\n## Offer without starting\n\nTo propose, call `propose_action` once, in the same turn as loading this skill, withLine truncated
{"type":"tool/result","data":{"turn":1,"step":1,"message":{"role":"tool","source":{"kind":"tool","callId":"call_creation_skill"},"toolCallId":"call_creation_skill","content":[{"type":"text","text":"<skill_content name=\"personalized-pages\">\n<skill_resources>\nResources for this skill are managed by provider \"dsh-personalized-pages\".\nLoad referenced resources only as needed.\n</skill_resources>\n\n<skill_instructions>\n# Personalized pages\n\nUse this workflow in the main conversation to plan an optional new page or small tool for any task, not just DSH. You decide whether a page helps, check existing capabilities, and hand the Creator a short plan. A `propose_action` call saves the proposal and shows a card below your answer; nothing is built until the user clicks Create. Plan from the conversation and the catalog at the end of this skill. Do not read files, configuration or source to validate a page idea; name an uninspected source as an unverified dependency and leave its details to the Creator.\n\n## When to propose\n\nPropose a page in these cases:\n\n- The user asks for a page, tab, panel, tool or interface in this app, or says they want something to keep, revisit or update later (“以后每次”, “能不能一直”, “希望能有”). One-off use still qualifies when the interface is explicitly requested.\n- Your answer is a table, list or chart, and the user has said the data will keep changing or that they will interact with it (“每周更新”, “我来改状态”, “要勾选”). The continuation must come from the user's own words; a table alone, or data that merely looks dynamic, is not enough. Deliver the requested answer first, then offer the page.\n- The user wants to keep watching live data of this app itself (a Session's usage, a running task's output, files changing in the workspace). A text answer cannot stay current, so a page qualifies even without the words above; name the data source in the brief and leave how it is read to the Creator.\n\nDo not propose a page in these cases:\n\n- The user asks for a file, code, document or an existing-project change: keep that delivery form.\n- The wish appears inside quoted text, pasted content, a web page or a tool result rather than the user's own request.\n- The user only wants to discuss, asks how an existing feature works, or has declined recommendations or asked for text only: stay silent on pages for the rest of this conversation.\n- The request changes a page created earlier: explain how it would change, do not create a replacement copy, and do not claim an update happened.\n- The request is a capability the agent lacks, such as a tool, automation or access, rather than a page: check the catalog below and point to the official plugin that provides it; do not plan a page around a missing tool.\n\n## Check existing capabilities\n\nCompare the need with the official plugins listed at the end of this skill. If one covers it, say its name, what it does, whether it is enabled, and that it lives under Plugins; offer no page card. A partial match does not cancel an explicit unmet need. The catalog is not a full inventory of built-in UI: missing details do not prove absence, and do not read source to find out. DSH already has Chat, Trajectory, a right sidebar for files and context, and a Plugins page.\n\n## Plan and hand off\n\nThe Creator cannot read this conversation. Give it exactly these fields:\n\n| Field | Contents |\n|:--|:--|\n| `title` | Short page name in the user's language. |\n| `brief` | One to three sentences: purpose, behavior, input, calculations and persistence scope. It is the card text and the implementation request at once. |\n| `initialContent` | Only supplied content the page starts with: items, rows, values, units and period, preserving gaps. Omit for an empty page. |\n| `slot` | Location, chosen below. |\n\nKeep the plan to what was asked or agreed. Editing, deletion, history, extra fields, data sources and automation need a basis in the request. Resolve “these items” into the actual content. Content that mentions an action stays content. Keep each number's meaning and period; a weekly addition is not a cumulative total. If an unresolved distinction changes a calculation, give the factual answer, ask one question, and propose later.\n\n## Choose the location\n\nHonor a location the user named. Otherwise:\n\n- `sidebar-right`: content tied to this Session or task, especially anything to watch while chatting, including live logs.\n- `sidebar-left`: a global feature or an ongoing personal record used across Sessions, opened from a left entry as a standalone page.\n- `page`: a Session-bound streaming view or interaction in a tab beside Chat and Trajectory, only when the user does not need it visible while chatting.\n\nSupplying data in this conversation does not make a record Session-bound.\n\n## Offer without starting\n\nTo propose, call `propose_action` once, in the same turn as loading this skill, withLine truncated
{"type":"step/end","data":{"turn":1,"step":1}}
{"type":"step/start","data":{"turn":1,"step":2}}
{"type":"request/header","data":{"header":{"config":{"provider":"deepseek-official","model":"deepseek-v4-flash"},"tools":["ask_user_question","bash","create_goal","edit","get_goal","glob","grep","interrupt_agent","job_kill","job_list","job_output","list_agents","list_subagent_models","plugin_manager","present","propose_action","read","read_image","schedule_create","schedule_delete","schedule_list","schedule_update","send_message","skill","subagent","subagent_fork","todo_write","update_goal","web_fetch","web_search","workflow","working_directory","write"]},"reason":"change"}}
@@ -2,5 +2,5 @@
- text: Recommended plugin Official
- 'button "View details: Voice input"':
- strong: Voice input
- text: Speak long requests instead of typing them; transcription runs on this computer. Transcribe recordings locally with SenseVoice; first use requires installing dependencies.
- text: Transcribe recordings locally with SenseVoice; first use requires installing dependencies.
- status: Dismissed
@@ -2,7 +2,7 @@
- text: Recommended plugin Official
- 'button "View details: Voice input"':
- strong: Voice input
- text: Speak long requests instead of typing them; transcription runs on this computer. Transcribe recordings locally with SenseVoice; first use requires installing dependencies.
- text: Transcribe recordings locally with SenseVoice; first use requires installing dependencies.
- text: Available in all conversations when enabled
- button "Not now"
- button "Enable"
@@ -9,14 +9,14 @@
{"type":"system/message","data":{"turn":1,"step":1,"message":{"role":"system","content":[{"type":"text","text":"{{system}}"}],"source":{"kind":"system-prompt"},"id":"{{message:2}}"}},"surfaceOp":"append"}
{"type":"user/message","data":{"content":[{"type":"text","text":"I want to dictate long requests instead of typing them."}],"source":{"kind":"user","rpcId":"{{rpc:1}}","clientTimeZone":"{{clientTimeZone}}"},"role":"user","id":"{{message:1}}"},"surfaceOp":"append"}
{"type":"user/message","data":{"content":[{"type":"text","text":"Current runtime context. This snapshot supersedes earlier runtime-context snapshots.\n\nCurrent working directory: \"{{cwd}}\".\n\nCurrent DSH file policy: workspace-write. Any available operation enforced by the DSH file sandbox may modify files under the session workspace: \"{{cwd}}\". Some platform temporary areas may also be writable.\n\nApproval prompts are enabled in this session: operations that require approval may ask through the configured answerers; without an available answerer, the request fails closed.\n\nCurrent DeepSeek Harness implementation checkout: \"{{sourceRoot}}\".\n\nCurrent DeepSeek Harness Web GUI URL: \"{{webUrl}}\"."}],"source":{"kind":"runtime-context","form":"snapshot","sections":[{"name":"working-directory:current","text":"Current working directory: \"{{cwd}}\"."},{"name":"sandbox:policy","text":"Current DSH file policy: workspace-write. Any available operation enforced by the DSH file sandbox may modify files under the session workspace: \"{{cwd}}\". Some platform temporary areas may also be writable."},{"name":"approval:policy","text":"Approval prompts are enabled in this session: operations that require approval may ask through the configured answerers; without an available answerer, the request fails closed."},{"name":"harness:source","text":"Current DeepSeek Harness implementation checkout: \"{{sourceRoot}}\"."},{"name":"app:web-surface","text":"Current DeepSeek Harness Web GUI URL: \"{{webUrl}}\"."}]},"role":"user","id":"{{message:3}}"},"surfaceOp":"append"}
{"type":"user/message","data":{"content":[{"type":"text","text":"<system-reminder>\nA skill is a reusable set of task-specific instructions. The following skills are available in this session:\n\n<available_skills>\n- `official-plugins`: Check DSH’s optional plugins when the user asks how to do or use something in this app, whether it can, or says a capability is missing or should change: tools, input, thinking or title display, session search, terminals, worktrees, agent teams, desktop control, automation, access, approvals, badges or signatures, plugins or plugin sources. Not a request to develop DSH, even in its own repository: load before reading files or source. Not for ordinary tasks, quoted wishes or declined offers.\n</available_skills>\n\nIf the user names a skill, or the task clearly matches a skill's description, call the `skill` tool with the exact skill name before taking task actions. Load all applicable skills, then follow their full instructions. This catalog contains summaries only; do not infer or follow a skill's instructions until it has been loaded.\nA user may also invoke a skill directly; its <skill_content> block then appears in this conversation. Follow it, and do not call the `skill` tool again for that skill.\n</system-reminder>"}],"source":{"kind":"skill-catalog","form":"catalog","entries":[{"name":"official-plugins","description":"Check DSH’s optional plugins when the user asks how to do or use something in this app, whether it can, or says a capability is missing or should change: tools, input, thinking or title display, session search, terminals, worktrees, agent teams, desktop control, automation, access, approvals, badges or signatures, plugins or plugin sources. Not a request to develop DSH, even in its own repository: load before reading files or source. Not for ordinary tasks, quoted wishes or declined offers."}]},"role":"user","id":"{{message:4}}"},"surfaceOp":"append"}
{"type":"user/message","data":{"content":[{"type":"text","text":"<system-reminder>\nA skill is a reusable set of task-specific instructions. The following skills are available in this session:\n\n<available_skills>\n- `official-plugins`: Check DSH’s optional plugins when the user asks how to do or use something in this app, whether it can, or says a capability is missing or should change: tools, input, thinking or title display, session search, terminals, worktrees, agent teams, desktop control, automation, access, approvals, badges or signatures, plugins or plugin sources. Not a request to develop DSH, even in its own repository: load before reading files or source. Not for ordinary tasks, quoted wishes or declined offers.\n- `personalized-pages`: Plan an optional page or small tool when the user asks for a page, tab, panel, tool or interface in this app (even for one-off use), wants something to keep, revisit or update later, will keep changing data in your answer, or wants a live view of this app’s own data (Sessions, tasks, logs, workspace). Load this before reading any files or source; it says how to submit the proposal. Not for requested files or code, ordinary answers, existing-feature questions, quoted wishes or declined offers.\n</available_skills>\n\nIf the user names a skill, or the task clearly matches a skill's description, call the `skill` tool with the exact skill name before taking task actions. Load all applicable skills, then follow their full instructions. This catalog contains summaries only; do not infer or follow a skill's instructions until it has been loaded.\nA user may also invoke a skill directly; its <skill_content> block then appears in this conversation. Follow it, and do not call the `skill` tool again for that skill.\n</system-reminder>"}],"source":{"kind":"skill-catalog","form":"catalog","entries":[{"name":"official-plugins","description":"Check DSH’s optional plugins when the user asks how to do or use something in this app, whether it can, or says a capability is missing or should change: tools, input, thinking or title display, session search, terminals, worktrees, agent teams, desktop control, automation, access, approvals, badges or signatures, plugins or plugin sources. Not a request to develop DSH, even in its own repository: load before reading files or source. Not for ordinary tasks, quoted wishes or declined offers."},{"name":"personalized-pages","description":"Plan an optional page or small tool when the user asks for a page, tab, panel, tool or interface in this app (even for one-off use), wants something to keep, revisit or update later, will keep changing data in your answer, or wants a live view of this app’s own data (Sessions, tasks, logs, workspace). Load this before reading any files or source; it says how to submit the proposal. Not for requested files or code, ordinary answers, existing-feature questions, quoted wishes or declined offers."}]},"role":"user","id":"{{message:4}}"},"surfaceOp":"append"}
{"type":"user/message","data":{"content":[{"type":"text","text":"Time sampled while preparing turn 1, step 1: {{timeContextTimestamp}}\nBrowser time zone for this request: {{clientTimeZone}}. Interpret otherwise-unqualified dates and times in this zone.\nElapsed since the preceding model-visible message: {{elapsed}}"}],"source":{"kind":"time-context","form":"snapshot","sections":[{"name":"time-context","text":"Time sampled while preparing turn 1, step 1: {{timeContextTimestamp}}\nBrowser time zone for this request: {{clientTimeZone}}. Interpret otherwise-unqualified dates and times in this zone.\nElapsed since the preceding model-visible message: {{elapsed}}"}]},"role":"user","id":"{{message:5}}"},"surfaceOp":"append"}
{"type":"request/header","data":{"header":{"config":{"provider":"deepseek-official","model":"deepseek-v4-flash"},"tools":["ask_user_question","bash","create_goal","edit","get_goal","glob","grep","interrupt_agent","job_kill","job_list","job_output","list_agents","list_subagent_models","plugin_manager","present","read","read_image","schedule_create","schedule_delete","schedule_list","schedule_update","send_message","skill","subagent","subagent_fork","todo_write","update_goal","web_fetch","web_search","workflow","working_directory","write"]},"reason":"initial"}}
{"type":"request/context","data":{"provider":"deepseek-official","model":"deepseek-v4-flash","contextWindow":128000}}
{"type":"session/title","data":{"title":"I want to dictate long","messageSeqs":[8],"source":{"kind":"fallback"}}}
{"type":"assistant/message","data":{"turn":1,"step":1,"message":{"role":"assistant","content":[{"type":"tool-call","id":"call_plugin_skill","name":"skill","arguments":"{\"name\":\"official-plugins\"}"}],"source":{"kind":"model","provider":"deepseek-official","model":"deepseek-v4-flash"},"id":"{{message:6}}"},"stream":[{"type":"chunk","time":1792678188343,"chunk":{"type":"block-start","index":0,"blockType":"tool-call"}},{"type":"chunk","time":1792678188343,"chunk":{"type":"block-end","index":0,"block":{"type":"tool-call","id":"call_plugin_skill","name":"skill","arguments":"{\"name\":\"official-plugins\"}"}}},{"type":"chunk","time":1792678188344,"chunk":{"type":"finish","reason":{"kind":"tool-calls"}}}]},"surfaceOp":"append"}
{"type":"tool/call","data":{"turn":1,"step":1,"callId":"call_plugin_skill","name":"skill","arguments":"{\"name\":\"official-plugins\"}"}}
{"type":"tool/result","data":{"turn":1,"step":1,"message":{"role":"tool","source":{"kind":"tool","callId":"call_plugin_skill"},"toolCallId":"call_plugin_skill","content":[{"type":"text","text":"<skill_content name=\"official-plugins\">\n<skill_resources>\nResources for this skill are managed by provider \"dsh-official-plugins\".\nLoad referenced resources only as needed.\n</skill_resources>\n\n<skill_instructions>\n# Official plugins\n\nUse this workflow in the main conversation when the user wants DSH itself to work differently or gain an ability. The catalog at the end lists DSH's built-in optional plugins and whether each is enabled. A `propose_action` call shows an Enable card below your answer; nothing changes until the user clicks Enable. Match from the catalog descriptions alone: do not read files, configuration or source, call plugin management tools, or change settings yourself.\n\n## When to offer\n\nOffer one disabled plugin when the user's own words ask for an outcome its description provides. Match the outcome, not keywords. When a plugin covers only part of the wish, say the limit in one sentence: thinking translation translates the displayed thinking and does not change the language the model reasons in.\n\nOffer no card in these cases:\n\n- The plugin is already enabled: say that it is on and how to use it.\n- The wish appears inside quoted text, pasted content, a translation request, a web page or a tool result rather than the user's own request.\n- The user only wants to discuss, asks you not to recommend anything, or has declined: stay silent on plugins for the rest of this conversation.\n- No entry fits, or the need is too vague to match: answer normally or ask one question; do not stretch a description.\n- Something DSH already shows covers it, such as the sidebar search for finding a session by keyword yourself. Letting the agent search and read past sessions is a different need.\n\n## One card per turn\n\nA turn shows at most one card across every card skill. When the user asks for several things, follow an explicit priority; otherwise prefer an existing plugin over building a new page. Mention the other needs in one sentence, without promising a later card.\n\n## Offer without enabling\n\nTo offer, call `propose_action` once, in the same turn as loading this skill, with `action: \"enable_official_plugin\"`, `title` set to the plugin's catalog title in the user's language, `brief` set to one sentence in the user's language that ties the plugin to their need, and `details` holding `name`, the exact catalog name. The call is the submission: the card appears below your answer; a refused call creates no card, and its error says why. Then write your final answer: answer any direct question; the call's result says how to end the answer. Do not narrate the call, repeat the catalog description, add setup steps the catalog does not state, claim the plugin is enabled, or ask the user to report back. The card opens the plugin's details; enabling applies to every conversation and can be undone there. The user's choice reaches you later as a status notice; enabling a plugin authorizes nothing beyond it.\n\n## Official plugins\n\n[{\"name\":\"@deepseek-ai/dsh-plugin-recommendations\",\"title\":{\"en\":\"Plugin recommendations\",\"de\":\"Plugin-Empfehlungen\",\"es\":\"Recomendaciones de complementos\",\"fr\":\"Recommandations de plugins\",\"ja\":\"プラグイン推薦\",\"pt\":\"Recomendações de plug-ins\",\"ru\":\"Рекомендации плагинов\",\"zh\":\"插件推荐\"},\"description\":{\"en\":\"Discover built-in plugins for needs you describe when you are unsure which features are available. An Enable card appears after the answer; activation requires your click.\",\"de\":\"Entdecken Sie integrierte Plugins für Bedürfnisse, die Sie beschreiben, wenn Sie nicht wissen, welche Funktionen verfügbar sind. Nach der Antwort erscheint eine Karte zum Aktivieren; die Aktivierung erfordert Ihren Klick.\",\"es\":\"Descubre complementos integrados para las necesidades que describes cuando no sabes qué funciones están disponibles. Después de la respuesta aparece una tarjeta Habilitar; la activación requiere tu clic.\",\"fr\":\"Découvrez les plugins intégrés adaptés aux besoins que vous décrivez lorsque vous ne savez pas quelles fonctionnalités sont disponibles. Une carte Activer apparaît après la réponse ; l’activation nécessite votre clic.\",\"ja\":\"どの機能が使えるか分からないとき、あなたが述べたニーズに合う内蔵プラグインを推薦します。回答の後に有効化カードが表示され、有効化にはクリックが必要です。\",\"pt\":\"Descubra plug-ins integrados para as necessidades que você descreve quando não sabe quais recursos estão disponíveis. Um cartão Ativar aparece após a resposta; a ativação exige o seu clique.\",\"ru\":\"Находите встроенные плагины для описанных вамLine truncated
{"type":"tool/result","data":{"turn":1,"step":1,"message":{"role":"tool","source":{"kind":"tool","callId":"call_plugin_skill"},"toolCallId":"call_plugin_skill","content":[{"type":"text","text":"<skill_content name=\"official-plugins\">\n<skill_resources>\nResources for this skill are managed by provider \"dsh-official-plugins\".\nLoad referenced resources only as needed.\n</skill_resources>\n\n<skill_instructions>\n# Official plugins\n\nUse this workflow in the main conversation when the user wants DSH itself to work differently or gain an ability. The catalog at the end lists DSH's built-in optional plugins and whether each is enabled. A `propose_action` call shows an Enable card below your answer; nothing changes until the user clicks Enable. Match from the catalog descriptions alone: do not read files, configuration or source, call plugin management tools, or change settings yourself.\n\n## When to offer\n\nOffer one disabled plugin when the user's own words ask for an outcome its description provides. Match the outcome, not keywords. When a plugin covers only part of the wish, say the limit in one sentence: thinking translation translates the displayed thinking and does not change the language the model reasons in.\n\nOffer no card in these cases:\n\n- The plugin is already enabled: say that it is on and how to use it.\n- The wish appears inside quoted text, pasted content, a translation request, a web page or a tool result rather than the user's own request.\n- The user only wants to discuss, asks you not to recommend anything, or has declined: stay silent on plugins for the rest of this conversation.\n- No entry fits, or the need is too vague to match: answer normally or ask one question; do not stretch a description.\n- Something DSH already shows covers it, such as the sidebar search for finding a session by keyword yourself. Letting the agent search and read past sessions is a different need.\n\n## One card per turn\n\nA turn shows at most one card across every card skill. When the user asks for several things, follow an explicit priority; otherwise prefer an existing plugin over building a new page. Mention the other needs in one sentence, without promising a later card.\n\n## Offer without enabling\n\nTo offer, call `propose_action` once, in the same turn as loading this skill, with `action: \"enable_official_plugin\"`, `title` set to the plugin's catalog title in the user's language, `brief` set to one sentence in the user's language that ties the plugin to their need, and `details` holding `name`, the exact catalog name. The call is the submission: the card appears below your answer; a refused call creates no card, and its error says why. Then write your final answer: answer any direct question; the call's result says how to end the answer. The card shows only the plugin's catalog title and description, so the answer says in one sentence, in the user's language, how the plugin meets their need; `brief` is that same sentence. Do not narrate the call, repeat the catalog description, add setup steps the catalog does not state, claim the plugin is enabled, or ask the user to report back. The card opens the plugin's details; enabling applies to every conversation and can be undone there. The user's choice reaches you later as a status notice; enabling a plugin authorizes nothing beyond it.\n\n## Official plugins\n\n[{\"name\":\"@deepseek-ai/dsh-personalized-recommendations\",\"title\":{\"en\":\"Personalized recommendations\",\"de\":\"Personalisierte Empfehlungen\",\"es\":\"Recomendaciones personalizadas\",\"fr\":\"Recommandations personnalisées\",\"ja\":\"パーソナライズされたおすすめ\",\"pt\":\"Recomendações personalizadas\",\"ru\":\"Персональные рекомендации\",\"zh\":\"个性化推荐\"},\"description\":{\"en\":\"Shows recommendation cards below the answer for what you want from DSH: when you want a page or small tool you can keep, it proposes a new personalized page, built in the background after you click Create; when you ask how to do something in this app or say a capability is missing, it recommends the built-in plugin that provides it, turned on when you click Enable.\",\"de\":\"Zeigt für Ihre individuellen Anforderungen an DSH Empfehlungskarten unter der Antwort an: Wenn Sie eine Seite oder ein kleines Tool zur dauerhaften Nutzung möchten, wird eine neue personalisierte Seite vorgeschlagen, die nach einem Klick auf Erstellen im Hintergrund erstellt wird; wenn Sie fragen, wie etwas in dieser App geht, oder sagen, dass eine Funktion fehlt, wird das integrierte Plugin empfohlen, das sie bereitstellt, und nach einem Klick auf Aktivieren eingeschaltet.\",\"es\":\"Muestra tarjetas de recomendación debajo de la respuesta para tus necesidades personalizadas en DSH: cuando quieres una página o una pequeña herramienta para conservar, propone una nueva página personalizada, que se genera en segundo plano al hacer clic en Crear; cuando preguntas cómo haceLine truncated
{"type":"step/end","data":{"turn":1,"step":1}}
{"type":"step/start","data":{"turn":1,"step":2}}
{"type":"request/header","data":{"header":{"config":{"provider":"deepseek-official","model":"deepseek-v4-flash"},"tools":["ask_user_question","bash","create_goal","edit","get_goal","glob","grep","interrupt_agent","job_kill","job_list","job_output","list_agents","list_subagent_models","plugin_manager","present","propose_action","read","read_image","schedule_create","schedule_delete","schedule_list","schedule_update","send_message","skill","subagent","subagent_fork","todo_write","update_goal","web_fetch","web_search","workflow","working_directory","write"]},"reason":"change"}}
+1
View File
@@ -469,6 +469,7 @@
"@deepseek-ai/dsh-package-manifest": ["./packages/util/package-manifest/src"],
"@deepseek-ai/dsh-permission-presets": ["./packages/interaction/permission-presets/src"],
"@deepseek-ai/dsh-persona": ["./packages/preset/persona/src"],
"@deepseek-ai/dsh-personalized-recommendations": ["./packages/experimental/personalized-recommendations/src"],
"@deepseek-ai/dsh-plan-mode": ["./packages/plan/plan-mode/src"],
"@deepseek-ai/dsh-plugin-detail": ["./packages/util/plugin-detail/src"],
"@deepseek-ai/dsh-plugin-market": ["./packages/boot/plugin-market/src"],
+1
View File
@@ -259,6 +259,7 @@
{ "path": "./packages/experimental/action-cards" },
{ "path": "./packages/experimental/creation-recommendations" },
{ "path": "./packages/experimental/plugin-recommendations" },
{ "path": "./packages/experimental/personalized-recommendations" },
{ "path": "./packages/experimental/client-ui-cot-translation/tsconfig.host.json" },
{ "path": "./packages/experimental/cot-translation-bundle" },