From 76cafda6ce7d34dd6240d3dba567e6d7b4be84a6 Mon Sep 17 00:00:00 2001 From: zhaoyuheng-ethan Date: Sat, 14 Feb 2026 19:22:14 +0800 Subject: [PATCH 1/2] feat: add smart car selector (unified agent) --- 02-use-cases/smart_car_selector/.env.example | 49 ++++ 02-use-cases/smart_car_selector/ENV.md | 131 ++++++++++ 02-use-cases/smart_car_selector/LICENSE | 190 ++++++++++++++ 02-use-cases/smart_car_selector/README.md | 68 +++++ 02-use-cases/smart_car_selector/README_en.md | 67 +++++ 02-use-cases/smart_car_selector/agent.py | 66 +++++ .../smart_car_selector/agentkit-agent.py | 80 ++++++ .../img/archtecture_smart_car_selector.jpg | Bin 0 -> 136696 bytes .../img/process_smart_car_selector.jpg | Bin 0 -> 128020 bytes .../smart_car_selector/instruction.md | 100 ++++++++ 02-use-cases/smart_car_selector/project.toml | 15 ++ .../smart_car_selector/pyproject.toml | 15 ++ .../smart_car_selector/requirements.txt | 6 + .../skills/dice-roller/SKILL.md | 41 +++ .../skills/dice-roller/requirements.txt | 0 .../skills/dice-roller/roll.py | 34 +++ 02-use-cases/smart_car_selector/utils.py | 238 ++++++++++++++++++ 17 files changed, 1100 insertions(+) create mode 100644 02-use-cases/smart_car_selector/.env.example create mode 100644 02-use-cases/smart_car_selector/ENV.md create mode 100644 02-use-cases/smart_car_selector/LICENSE create mode 100644 02-use-cases/smart_car_selector/README.md create mode 100644 02-use-cases/smart_car_selector/README_en.md create mode 100644 02-use-cases/smart_car_selector/agent.py create mode 100644 02-use-cases/smart_car_selector/agentkit-agent.py create mode 100644 02-use-cases/smart_car_selector/img/archtecture_smart_car_selector.jpg create mode 100644 02-use-cases/smart_car_selector/img/process_smart_car_selector.jpg create mode 100644 02-use-cases/smart_car_selector/instruction.md create mode 100644 02-use-cases/smart_car_selector/project.toml create mode 100644 02-use-cases/smart_car_selector/pyproject.toml create mode 100644 02-use-cases/smart_car_selector/requirements.txt create mode 100644 02-use-cases/smart_car_selector/skills/dice-roller/SKILL.md create mode 100644 02-use-cases/smart_car_selector/skills/dice-roller/requirements.txt create mode 100644 02-use-cases/smart_car_selector/skills/dice-roller/roll.py create mode 100644 02-use-cases/smart_car_selector/utils.py diff --git a/02-use-cases/smart_car_selector/.env.example b/02-use-cases/smart_car_selector/.env.example new file mode 100644 index 00000000..dfd3f059 --- /dev/null +++ b/02-use-cases/smart_car_selector/.env.example @@ -0,0 +1,49 @@ +AGENTKIT_TOOL_ID= +AGENTKIT_TOOL_REGION=cn-beijing +SKILL_SPACE_ID= +VEADK_APP_NAME=carselector_unified +VEADK_APP_DESCRIPTION= +LOGGING_LEVEL=INFO +DATABASE_POSTGRESQL_DATABASE= +DATABASE_POSTGRESQL_HOST= +DATABASE_POSTGRESQL_PASSWORD= +DATABASE_POSTGRESQL_USER= +DATABASE_TOS_BUCKET= +DATABASE_TOS_ENDPOINT=tos-cn-beijing.volces.com +DATABASE_TOS_REGION=cn-beijing +DATABASE_VIKING_COLLECTION_NAME= +DATABASE_VIKING_MEM_COLLECTION_NAME= +DATABASE_VIKING_PROJECT=default +DATABASE_VIKING_REGION=cn-beijing +MODEL_AGENT_API_KEY= +MODEL_AGENT_NAME= +MODEL_EMBEDDING_DIM=2560 +MODEL_EMBEDDING_NAME=doubao-embedding-text-240715 +MODEL_EVALUATE_ITEM=doubao-1-5-vision-pro-32k-250115 +EVENTS_COMPACTION_API_BASE=https://ark.cn-beijing.volces.com/api/v3/ +EVENTS_COMPACTION_API_KEY= +EVENTS_COMPACTION_COZELOOP_LABEL= +EVENTS_COMPACTION_COZELOOP_PROMPT_KEY= +EVENTS_COMPACTION_COZELOOP_TOKEN= +EVENTS_COMPACTION_COZELOOP_WORKSPACE_ID= +EVENTS_COMPACTION_INTERVAL=3 +EVENTS_COMPACTION_MODEL=openai/doubao-seed-1-6-lite-251015 +EVENTS_COMPACTION_OVERLAP_SIZE=1 +EVENTS_COMPACTION_PROMPT_FILE=compaction_prompt_template.txt +PROMPT_MANAGEMENT_COZELOOP_LABEL= +PROMPT_MANAGEMENT_COZELOOP_PROMPT_KEY= +PROMPT_MANAGEMENT_COZELOOP_TOKEN= +PROMPT_MANAGEMENT_COZELOOP_WORKSPACE_ID= +OBSERVABILITY_OPENTELEMETRY_APMPLUS_API_KEY= +OBSERVABILITY_OPENTELEMETRY_APMPLUS_ENDPOINT=http://apmplus-cn-beijing.volces.com:4317 +OBSERVABILITY_OPENTELEMETRY_APMPLUS_SERVICE_NAME= +OBSERVABILITY_OPENTELEMETRY_COZELOOP_API_KEY= +OBSERVABILITY_OPENTELEMETRY_COZELOOP_ENDPOINT=https://api.coze.cn/v1/loop/opentelemetry/v1/traces +OBSERVABILITY_OPENTELEMETRY_COZELOOP_SERVICE_NAME= +OBSERVABILITY_OPENTELEMETRY_TLS_ENDPOINT=https://tls-cn-beijing.volces.com:4318/v1/traces +OBSERVABILITY_OPENTELEMETRY_TLS_REGION=cn-beijing +PROMPT_MANAGEMENT_LOCAL_INSTRUCTION_FILE=instruction.md +VOLCENGINE_ACCESS_KEY= +VOLCENGINE_REGION=cn-beijing +VOLCENGINE_SECRET_KEY= +VEADK_BUILTIN_TOOLS_ENABLE=web_search,execute_skills,image_generate diff --git a/02-use-cases/smart_car_selector/ENV.md b/02-use-cases/smart_car_selector/ENV.md new file mode 100644 index 00000000..9e59949d --- /dev/null +++ b/02-use-cases/smart_car_selector/ENV.md @@ -0,0 +1,131 @@ +# 环境变量说明 + +本项目功能较多(模型、记忆、知识库、可观测、技能执行与文件上传等),因此需要较多环境变量。本文档说明每个变量的用途、示例取值,以及未配置时的行为。 + +## 使用方式 + +- **本地运行**:在终端里导出环境变量,或使用你自己的 `.env`/shell 配置方式(请不要提交密钥到仓库)。 +- **云端运行**:在 `agentkit.yaml` 的 `runtime_envs` 中配置(同样不要提交真实密钥到公开仓库)。 + +## 加载优先级(兼容本地调试) + +VeADK 会按如下优先级读取配置(优先级由高到低): + +1. 系统环境变量 +2. `.env` 文件 +3. `config.yaml` 文件 + +`.env` 的查找通常与**进程启动时的工作目录(cwd)**有关,因此有两种常见放置方式: + +- 放在 `agent/.env`(推荐):配合默认启动命令 `cd agent && python3 agentkit-agent.py`,VeADK 会在当前目录读取 `.env`。 +- 放在仓库根目录 `.env`:需要从根目录启动(例如 `python3 agent/agentkit-agent.py`),否则 VeADK 在 `agent/` 下启动时不会自动读取到根目录的 `.env`。 + +## 最小可用(本地) + +以下变量缺失会导致模型无法正常调用: + +| 变量 | 含义 | 示例 | 为空时行为 | +|---|---|---|---| +| `MODEL_AGENT_API_KEY` | 大模型调用的 API Key(VeADK/Agent 会用它访问模型服务) | `MODEL_AGENT_API_KEY="YOUR_API_KEY"` | 模型请求将失败(鉴权失败或无 Key) | + +获取方式:在火山引擎控制台创建/查看你的模型服务 API Key,并将其以环境变量或 `.env` 的方式注入(不要提交到仓库)。 + +## 应用基础信息 + +| 变量 | 含义 | 示例 | 为空时行为 | +|---|---|---|---| +| `VEADK_APP_NAME` | 应用名(同时影响记忆/知识库的 app_name 命名空间) | `carselector_unified` | 默认 `carselector_unified` | +| `VEADK_AGENT_NAME` | Agent 名称 | `carselector_unified` | 默认等于 `VEADK_APP_NAME` | +| `VEADK_APP_DESCRIPTION` | 应用描述 | `智能选车助手(Unified)` | 使用内置默认描述 | +| `VEADK_ENABLE_RESPONSES` | 是否开启 responses 相关能力(布尔) | `true` / `false` | 默认 `false` | + +## 工具开关(Built-in Tools) + +| 变量 | 含义 | 示例 | 为空时行为 | +|---|---|---|---| +| `VEADK_BUILTIN_TOOLS_ENABLE` | 内置工具白名单(逗号分隔) | `web_search,execute_skills,image_generate` | 为空时:加载代码中可导入的全部内置工具 | + +## Prompt / 指令 + +| 变量 | 含义 | 示例 | 为空时行为 | +|---|---|---|---| +| `PROMPT_MANAGEMENT_LOCAL_INSTRUCTION_FILE` | 本地指令文件路径(相对路径相对 `agent/`) | `instruction.md` | 默认 `instruction.md` | +| `PROMPT_MANAGEMENT_COZELOOP_PROMPT_KEY` | Cozeloop Prompt Key(启用远端 Prompt 管理) | `carselector_unified_sysprompt` | 为空:不启用 Cozeloop PromptManager(使用本地 instruction) | +| `PROMPT_MANAGEMENT_COZELOOP_WORKSPACE_ID` | Cozeloop Workspace ID | `YOUR_WORKSPACE_ID` | 为空:不启用 Cozeloop PromptManager | +| `PROMPT_MANAGEMENT_COZELOOP_TOKEN` | Cozeloop Token | `REPLACE_ME` | 为空:不启用 Cozeloop PromptManager | +| `PROMPT_MANAGEMENT_COZELOOP_LABEL` | Cozeloop Label(环境/版本标签) | `beta` | 默认 `beta` | + +## 会话与记忆(Memory) + +短期记忆在本地默认使用 `local`,如果配置了 PostgreSQL 则切换为 `postgresql`;长期记忆与知识库则按需启用。 + +| 变量 | 含义 | 示例 | 为空时行为 | +|---|---|---|---| +| `DATABASE_POSTGRESQL_HOST` | PostgreSQL Host(短期记忆启用条件) | `127.0.0.1` | 为空:短期记忆使用本地 `local` 后端 | +| `DATABASE_POSTGRESQL_DATABASE` | PostgreSQL DB 名 | `carselector_mem` | 为空:短期记忆使用本地 `local` 后端 | +| `DATABASE_POSTGRESQL_USER` | PostgreSQL 用户名 | `postgres` | 为空:短期记忆使用本地 `local` 后端 | +| `DATABASE_POSTGRESQL_PASSWORD` | PostgreSQL 密码 | `YOUR_PASSWORD` | 为空:短期记忆使用本地 `local` 后端 | +| `DATABASE_VIKING_MEM_COLLECTION_NAME` | Viking 记忆集合名(长期记忆) | `carselector_shared_memory` | 为空:不启用长期记忆,且不会自动保存会话 | +| `DATABASE_VIKING_COLLECTION_NAME` | Viking 知识库集合名 | `carselector_kb` | 为空:不启用知识库 | +| `DATABASE_VIKING_PROJECT` | Viking Project | `default` | 由后端 SDK 自行处理;为空可能使用默认值 | +| `DATABASE_VIKING_REGION` | Viking Region | `cn-beijing` | 由后端 SDK 自行处理;为空可能使用默认值 | + +## 文件上传(TOS) + +本项目会在需要生成图片/表格等文件时上传到 TOS 并返回可下载链接(如果未配置则会回退为“无法上传”的错误信息)。 + +| 变量 | 含义 | 示例 | 为空时行为 | +|---|---|---|---| +| `DATABASE_TOS_BUCKET` | TOS Bucket 名 | `your-bucket` | 为空:上传功能不可用(会返回缺少 bucket 的错误) | +| `DATABASE_TOS_ENDPOINT` | TOS Endpoint | `tos-cn-beijing.volces.com` | 默认 `tos-cn-beijing.volces.com` | +| `DATABASE_TOS_REGION` | TOS Region | `cn-beijing` | 默认 `cn-beijing` | +| `VOLCENGINE_ACCESS_KEY` | 火山 AK(用于签名上传/下载) | `AKxxx` | 为空:无法初始化 TOS 客户端,上传不可用 | +| `VOLCENGINE_SECRET_KEY` | 火山 SK(用于签名上传/下载) | `xxxx` | 为空:无法初始化 TOS 客户端,上传不可用 | +| `VOLCENGINE_REGION` | 火山 Region | `cn-beijing` | 由后端 SDK 自行处理;为空可能使用默认值 | + +## 事件压缩(Events Compaction) + +`agentkit-agent.py` 会给 A2A App 配置事件压缩,未配置时使用默认模型与参数。 + +| 变量 | 含义 | 示例 | 为空时行为 | +|---|---|---|---| +| `EVENTS_COMPACTION_MODEL` | 用于摘要/压缩事件的模型标识 | `openai/doubao-seed-1-6-lite-251015` | 使用默认值 | +| `EVENTS_COMPACTION_API_BASE` | 事件压缩模型的 API Base | `https://ark.cn-beijing.volces.com/api/v3/` | 使用默认值 | +| `EVENTS_COMPACTION_API_KEY` | 事件压缩模型的 API Key | `YOUR_API_KEY` | 为空:回退使用 `MODEL_AGENT_API_KEY` | +| `EVENTS_COMPACTION_INTERVAL` | 压缩触发间隔(整数) | `3` | 默认 `3` | +| `EVENTS_COMPACTION_OVERLAP_SIZE` | 压缩重叠窗口(整数) | `1` | 默认 `1` | +| `EVENTS_COMPACTION_PROMPT_FILE` | 压缩 prompt 模板文件名/路径(按运行环境约定) | `compaction_prompt_template.txt` | 由运行环境/实现自行处理 | +| `EVENTS_COMPACTION_COZELOOP_PROMPT_KEY` | Cozeloop 下的 compaction prompt key | `carselector_events_compaction_prompt` | 为空:不使用 Cozeloop compaction prompt | +| `EVENTS_COMPACTION_COZELOOP_WORKSPACE_ID` | Cozeloop Workspace ID | `YOUR_WORKSPACE_ID` | 为空:不使用 Cozeloop compaction prompt | +| `EVENTS_COMPACTION_COZELOOP_TOKEN` | Cozeloop Token | `REPLACE_ME` | 为空:不使用 Cozeloop compaction prompt | +| `EVENTS_COMPACTION_COZELOOP_LABEL` | Cozeloop Label | `beta` | 由实现自行处理 | + +## 可观测(Observability) + +只要对应 endpoint 未配置,就会自动跳过 tracer/exporter 初始化。 + +| 变量 | 含义 | 示例 | 为空时行为 | +|---|---|---|---| +| `OBSERVABILITY_OPENTELEMETRY_APMPLUS_ENDPOINT` | APMPlus OTLP Endpoint | `http://apmplus:4317` | 为空:不启用 APMPlus exporter | +| `OBSERVABILITY_OPENTELEMETRY_APMPLUS_API_KEY` | APMPlus API Key | `YOUR_APMPLUS_KEY` | 为空:不启用 APMPlus exporter | +| `OBSERVABILITY_OPENTELEMETRY_APMPLUS_SERVICE_NAME` | APMPlus 服务名 | `carselector_unified` | 由 exporter/实现自行处理 | +| `OBSERVABILITY_OPENTELEMETRY_COZELOOP_ENDPOINT` | Cozeloop OTLP Endpoint | `https://api.coze.cn/.../traces` | 为空:不启用 Cozeloop exporter | +| `OBSERVABILITY_OPENTELEMETRY_COZELOOP_API_KEY` | Cozeloop API Key/Token | `REPLACE_ME` | 为空:不启用 Cozeloop exporter | +| `OBSERVABILITY_OPENTELEMETRY_COZELOOP_SERVICE_NAME` | Cozeloop 服务名 | `YOUR_WORKSPACE_ID` | 由 exporter/实现自行处理 | +| `OBSERVABILITY_OPENTELEMETRY_TLS_ENDPOINT` | TLS OTLP Endpoint | `https://tls.../traces` | 为空:不启用 TLS exporter | +| `OBSERVABILITY_OPENTELEMETRY_TLS_REGION` | TLS Region | `cn-beijing` | 由 exporter/实现自行处理 | + +## AgentKit(云端/应用场景) + +这些变量主要用于云端运行时的“工具/技能空间”定位与配置;本地运行通常不需要全部配置。 + +| 变量 | 含义 | 示例 | 为空时行为 | +|---|---|---|---| +| `AGENTKIT_TOOL_ID` | AgentKit 工具 ID | `t_xxx` | 由云端部署平台决定;为空可能导致工具不可用 | +| `AGENTKIT_TOOL_REGION` | AgentKit 工具 Region | `cn-beijing` | 由云端部署平台决定 | +| `SKILL_SPACE_ID` | Skill Space ID | `ss_xxx` | 由云端部署平台决定;为空可能导致 skills 不可用 | + +## 安全建议(强烈) + +- 不要把任何 `*_API_KEY`、`*_TOKEN`、`*_PASSWORD`、`VOLCENGINE_*` 这类敏感信息提交到仓库。 +- 推荐在本地使用环境变量或密钥管理系统(KMS),在 CI/CD 与云端部署通过安全注入方式提供密钥。 diff --git a/02-use-cases/smart_car_selector/LICENSE b/02-use-cases/smart_car_selector/LICENSE new file mode 100644 index 00000000..eac7a78a --- /dev/null +++ b/02-use-cases/smart_car_selector/LICENSE @@ -0,0 +1,190 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + Copyright 2026 + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/02-use-cases/smart_car_selector/README.md b/02-use-cases/smart_car_selector/README.md new file mode 100644 index 00000000..4de19153 --- /dev/null +++ b/02-use-cases/smart_car_selector/README.md @@ -0,0 +1,68 @@ +# AgentKit-小懂车 (Smart Car Selector) + +**AgentKit-小懂车** 是一个基于 [AgentKit](https://github.com/bytedance/agentkit) 构建的“单体 Unified Agent”购车咨询示例:用一个 Agent 覆盖用户真实选车旅程——求推荐、参数对比、口碑避坑、价格/金融算账、预约试驾与导航、选中后生成海报提供情绪价值。 + +项目主线采用 **Single Agent + Tools/Skills**:在不引入多智能体编排复杂度的前提下,保留可复核的确定性交付(Excel 表、可视化图片、地图路线等)。 + +## ✨ 核心亮点 + +- **真实选车场景**:推荐 → 参数表 → 口碑 → 金融表 → 试驾导航 → 海报,一条链路走完。 +- **可复核交付**:参数对比表、金融分析表均可下载,可复用公式并支持用户改参数重算。 +- **事实核验优先**:涉及参数/政策/口碑等事实点时优先 `web_search` 交叉核验,避免拍脑袋。 +- **交付执行能力**:门店/路线/导航统一走 `mcp_router`,结果可直接点开导航。 +- **情绪价值补全**:选中车型后可用 `image_generate` 生成可分享海报与文案。 +- **趣味彩蛋**:用户纠结难以拍板时,用掷骰子做“玄学推荐”并给理性兜底问题。 + +## 📂 项目结构 + +```text +. +├── agent.py # 核心 Agent(Unified) +├── agentkit-agent.py # A2A 服务入口 +├── agentkit.yaml # AgentKit 配置(已脱敏) +├── instruction.md # 系统提示词(包含完整选车旅程) +├── utils.py # 工具辅助(上传/清理输出等) +├── requirements.txt +├── pyproject.toml +├── project.toml +├── ENV.md +├── img/ +└── skills/ + +skills/ +└── dice-roller/ # 掷骰子彩蛋 Skill +``` + +## 🚀 本地启动 + +```bash +python3 -m pip install -r requirements.txt +python3 agentkit-agent.py +python3 -c "import requests; print(requests.get('http://127.0.0.1:8000/ping', timeout=5).text)" +``` + +环境变量较多,详见 [ENV.md](ENV.md)(建议复制 `.env.example` 为 `.env` 并填写必要项;不要把真实密钥提交到仓库)。 + +## 🧩 架构图 + +![场景架构图](img/process_smart_car_selector.jpg) + +![Technical Architecture](img/archtecture_smart_car_selector.jpg) + +## 🧭 典型用户旅程(你可以这样体验) + +1. **求推荐**:给出预算/城市/用车场景,获取 2-3 款候选与取舍建议。 +2. **对比参数**:说“对比参数/出参数表”,拿到可下载 Excel 参数对比表。 +3. **对比口碑**:说“这车通病/能买吗”,获取真实车主反馈与避坑点。 +4. **对比价格**:说“落地价/月供/还款表”,拿到可下载金融分析 Excel(含可调参数)。 +5. **预约试驾**:说“帮我找店/导航/预约试驾”,输出门店与路线,并附预约话术与到店清单。 +6. **生成海报**:选中车型后说“做个海报/朋友圈文案”,生成可分享海报。 + +## 📦 标准文件 + +- README.md:中文说明。 +- README_en.md:英文说明。 +- requirements.txt:依赖列表(本地运行)。 +- pyproject.toml:本地 Python 工具链/打包元数据(可选)。 +- project.toml:应用元数据(用于应用广场/发布场景)。 +- LICENSE:默认 Apache-2.0 协议。 diff --git a/02-use-cases/smart_car_selector/README_en.md b/02-use-cases/smart_car_selector/README_en.md new file mode 100644 index 00000000..4efd82c4 --- /dev/null +++ b/02-use-cases/smart_car_selector/README_en.md @@ -0,0 +1,67 @@ +# AgentKit Smart Car Selector + +**AgentKit Smart Car Selector** is a “single unified agent” sample built on top of [AgentKit](https://github.com/bytedance/agentkit). It simulates a real car-buying journey end-to-end: recommendations, spec comparison (downloadable table), reputation checks, price/finance analysis (downloadable table), test-drive planning (store & navigation), and a shareable poster after the final pick. + +The main design is **Single Agent + Tools/Skills**: keep the system simple to deploy while still delivering deterministic, verifiable artifacts (Excel sheets, images, map routes). + +## Highlights + +- Real user journey: Recommend → Specs → Reputation → Finance → Test Drive → Poster +- Verifiable outputs: downloadable Excel sheets with reusable formulas +- Fact-check first: use `web_search` for specs/policy/reputation when needed +- Delivery execution: `mcp_router` for POI / route / navigation +- Emotional value: `image_generate` for shareable posters and copy +- Fun fallback: dice-based “mystic pick” when users can’t decide + +## Project Layout + +```text +. +├── agent.py # Unified agent +├── agentkit-agent.py # A2A server entry +├── agentkit.yaml # AgentKit config (redacted) +├── instruction.md # System prompt (full car-buying journey) +├── utils.py +├── requirements.txt +├── pyproject.toml +├── project.toml +├── ENV.md +├── img/ +└── skills/ + +skills/ +└── dice-roller/ # dice “mystic pick” skill +``` + +## Quick Start (Local) + +```bash +python3 -m pip install -r requirements.txt +python3 agentkit-agent.py +python3 -c "import requests; print(requests.get('http://127.0.0.1:8000/ping', timeout=5).text)" +``` + +This project uses many environment variables. See [ENV.md](ENV.md). Copy `.env.example` to `.env` and fill required values (do not commit secrets). + +## Architecture Diagrams + +![Scene Architecture](img/process_smart_car_selector.jpg) + +![Technical Architecture](img/archtecture_smart_car_selector.jpg) + +## Typical User Flow + +1. Ask for recommendations with your budget/city/use-case. +2. Ask for a spec comparison table (“export an Excel table”). +3. Ask for reputation checks (“common issues / owner feedback”). +4. Ask for price & finance analysis (“OTD / monthly payment / amortization table”). +5. Ask for test-drive planning (“find stores / navigation / appointment script”). +6. Ask for a shareable poster after you pick a model. + +## Required Files (Marketplace / Packaging) + +- `README.md` / `README_en.md`: project documentation (Chinese / English). +- `requirements.txt`: dependency list for local development. +- `pyproject.toml`: optional local packaging metadata for Python tools. +- `project.toml`: application marketplace metadata. +- `LICENSE`: license file (Apache-2.0 by default). diff --git a/02-use-cases/smart_car_selector/agent.py b/02-use-cases/smart_car_selector/agent.py new file mode 100644 index 00000000..b0c166c2 --- /dev/null +++ b/02-use-cases/smart_car_selector/agent.py @@ -0,0 +1,66 @@ +import os +import logging +from pathlib import Path + +from veadk import Agent + +from utils import ( + init_veadk_builtin_tools, + init_short_term_memory, + init_long_term_memory, + init_knowledge_base, + init_prompt_manager, + init_observability, + load_local_instruction, + callback_cleanup_model_output, + callback_cleanup_tool_output, +) + +logger = logging.getLogger(__name__) + +app_name = os.getenv("VEADK_APP_NAME", "carselector_unified") +agent_name = os.getenv("VEADK_AGENT_NAME", app_name) +description = os.getenv("VEADK_APP_DESCRIPTION", "智能选车助手(Unified)") + +APP_NAME = app_name +DESCRIPTION = description + +instruction_file = os.getenv("PROMPT_MANAGEMENT_LOCAL_INSTRUCTION_FILE", "instruction.md").strip() +instruction_path = Path(instruction_file) +if not instruction_path.is_absolute(): + instruction_path = Path(__file__).parent / instruction_path + +short_term = init_short_term_memory(app_name) +long_term = init_long_term_memory(app_name) +knowledge = init_knowledge_base(app_name) +prompt_manager = init_prompt_manager() +tracers = init_observability() +instruction = load_local_instruction(instruction_path) + +tools = init_veadk_builtin_tools() + +enable_responses = os.getenv("VEADK_ENABLE_RESPONSES", "false").strip().lower() in {"1", "true", "yes"} + +agent_kwargs = { + "name": agent_name, + "description": description, + "model_api_key": os.getenv("MODEL_AGENT_API_KEY", ""), + "tools": tools, + "after_model_callback": callback_cleanup_model_output, + "after_tool_callback": callback_cleanup_tool_output, + "short_term_memory": short_term, + "auto_save_session": bool(long_term), + "enable_responses": enable_responses, +} + +optional_kwargs = { + "knowledgebase": knowledge, + "long_term_memory": long_term, + "instruction": instruction, + "prompt_manager": prompt_manager, + "tracers": tracers or None, +} +agent_kwargs.update({k: v for k, v in optional_kwargs.items() if v}) + +car_unified_agent = Agent(**agent_kwargs) +root_agent = car_unified_agent diff --git a/02-use-cases/smart_car_selector/agentkit-agent.py b/02-use-cases/smart_car_selector/agentkit-agent.py new file mode 100644 index 00000000..45e13010 --- /dev/null +++ b/02-use-cases/smart_car_selector/agentkit-agent.py @@ -0,0 +1,80 @@ +import logging +import os + +from agent import car_unified_agent, APP_NAME, DESCRIPTION + +from veadk import Runner +from google.adk.apps.app import App, EventsCompactionConfig +from google.adk.apps.llm_event_summarizer import LlmEventSummarizer +from google.adk.a2a.executor.a2a_agent_executor import A2aAgentExecutor +from google.adk.models.lite_llm import LiteLlm +from agentkit.apps import AgentkitA2aApp +from a2a.types import AgentCard, AgentProvider, AgentSkill, AgentCapabilities + +logger = logging.getLogger(__name__) +logger.setLevel(logging.INFO) + +a2a_app = AgentkitA2aApp() + +session_service = ( + car_unified_agent.short_term_memory.session_service if car_unified_agent.short_term_memory else None +) +runner = Runner(agent=car_unified_agent, session_service=session_service) +runner.app = App( + name=APP_NAME, + root_agent=car_unified_agent, + events_compaction_config=EventsCompactionConfig( + summarizer=LlmEventSummarizer( + llm=LiteLlm( + model=os.getenv("EVENTS_COMPACTION_MODEL", "openai/doubao-seed-1-6-lite-251015"), + api_base=os.getenv("EVENTS_COMPACTION_API_BASE", "https://ark.cn-beijing.volces.com/api/v3/"), + api_key=os.getenv("EVENTS_COMPACTION_API_KEY", os.getenv("MODEL_AGENT_API_KEY", "")), + ), + prompt_template=None, + ), + compaction_interval=int(os.getenv("EVENTS_COMPACTION_INTERVAL", "3")), + overlap_size=int(os.getenv("EVENTS_COMPACTION_OVERLAP_SIZE", "1")), + ), +) + + +@a2a_app.agent_executor(runner=runner) +class CarUnifiedAgentExecutor(A2aAgentExecutor): + async def run(self, *args, **kwargs): + try: + return await super().run(*args, **kwargs) + except Exception as e: + logger.exception("Error executing agent request") + raise e + + +@a2a_app.ping +def ping() -> str: + return "pong!" + + +if __name__ == "__main__": + agent_card = AgentCard( + capabilities=AgentCapabilities(streaming=True), + description=DESCRIPTION, + name=APP_NAME, + default_input_modes=["text"], + default_output_modes=["text"], + provider=AgentProvider(organization="volcengine", url=""), + skills=[ + AgentSkill( + id="car_unified", + name="car_unified", + description="一体化选车+算账+交付", + tags=["chat", "car", "unified"], + ) + ], + url="http://0.0.0.0:8000", + version="1.0.0", + ) + + a2a_app.run( + agent_card=agent_card, + host="0.0.0.0", + port=8000, + ) diff --git a/02-use-cases/smart_car_selector/img/archtecture_smart_car_selector.jpg b/02-use-cases/smart_car_selector/img/archtecture_smart_car_selector.jpg new file mode 100644 index 0000000000000000000000000000000000000000..54c7680c9a97a5ca751be360e56c1fd34addbb93 GIT binary patch literal 136696 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 literal 0 HcmV?d00001 diff --git a/02-use-cases/smart_car_selector/img/process_smart_car_selector.jpg b/02-use-cases/smart_car_selector/img/process_smart_car_selector.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7c2eb3ac09ecb67795b2de2eaa9235432076c260 GIT binary patch literal 128020 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%0DZ>AC0& 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%0Dh->GndRR(aS;LH9;Q)%1B+ZD)y-O5*W1q|3(& z5k+~78AG>$>Y>!8B()HrO({rxT18*sdMK@iz4?e4Cf!uL21X-kPWV&Z02d1XR3ASY zR=OGyml0}%sBQ)3hC%vrokk-)4193?0RkxihpCh}C>YdW z72Fag3r)auw$em)0UbGcgU;86jk|z1lCGaV?1Hx_Bjj=w3^vDduL2&}zTA}2Gw?%~ z(Ar>Gx^m`n>339d&OAj^$>6%zF*#wCi+Y;6rCWeP$gsenoPEcB-L;>!T@Djg3hI*&ZuoaD zeahHXQEgniy_E6o4Vy#VgpTddP>`yPbPaF;UDgNxc)8jq!Yn(XPl@G%)jz{WQq`Y4 z8cPnsi&@J%AzxW2#-d{*(StYWalA46k#E20|6S_voGh5MnD~HtIqAa+4Xk_Ysa)mB zA(*V~6X^J&(jJ{$Pa4WVZIn&kzED>MeE_T(#KYTCu*;o-`672ZAqNW!vmtVsiGiQ9hn}{b!B4VDcKdc!p@2FKKzz!mS5aA`g1UUNzb>{N#uEi9K#!YkZ6 zFe!CMl_14CxxeX3E$Trpv-AVQ38}?^t^iy??EL3jjMRJI}4SF}0YsTXb zqRU@*%r#wfs^@*dX$o`qoff5HK(jk24ffz*hFQlqJ5Cv++d5LEb6z<$>@en>nrqu7 z)?0q_S6iMfOs9`QKCQZzK0mv>NMvkBtQ`s~L~fY{Y<$*stJrKb%XwiEzA$r)yAyVx zNdDL$SQx(-Up`w$QE&jE3xgCHY|UPxpJKmwTSyZh)5=!gx9Y7)I#q2XHHOeDXhK+! zOi^u(fN@1f_&%mBu~v{8N()6NF95fU?2Po% zh6p(cYa2)9Hj=6pE6HD3E(+Z`9e;IFqT+F(O!Z5I8A9pg#W(?)x)?MVU`@PlyRKw= zQl{Y^QMqU=5HXz0!3;ZtX^&|r4N{}fOV%#2j{a_fX3PDL1$PX$c(ESwl(j*w!cG^W z7Xg&FG8LY;DyIhsM7!ob-S)_Wl2W%)cz%cBx+CH}ET?+k{E` zQqa60l6uB|o0chgbCt<5 zl~iEy=-Y_|P0}OZ z2RU=rPE~;bJjquT@0wWplp-(W?%x`zsg6yHOo@ebkfG8&PiJ0SmsGl@TO&Io*iVQD z?nJ7#l7(FnCDnvU@ygP?mTlmDytn~^<2HB07PJ_M{mQZ|W47=ewWuvI6RFbJS-}}> zx_)cS=Ub9OHsnzyvT@ayXg!&OY;w6bRrj2u)ZOi>or8H2ZWf9{^dzld*vEd5IsxMmX!gXCQV zK{l=HZuP1JZDf>rbWlx1(`#zD`Vw$~S^SBMAZy*Fa1z5qa|djt#lNikLq+#%lFbXf z(p-H}pH9Z}I?e#6azZcN%vGHW_y)b~bcZLgZx1Tnlu@lyf9oPpV-Tk6#_~7ifRI$2JSv!RFRiFGHV=ZS`A?LRXc4#iH#C8F-e-5_Nxp;I;sG5n7He@pe zJBByUj?;y^$?q}b2AmCU1lKE45FDDzI{Db-(T<1)ItV)9i8yl$=2mN1u z?Bv~Vud>l(G;)U3H&|JMK5Lafzs){fGHauGQFgB+%`ptj`@RCF~ss8 ztcw57_$}hNRQ_S&)bh4ht|icT`6w9q=#8sy?@%6UcSmxx#?OlhyMkYgIUYKq<-Li4 zGAR@+-@G0BcRl+J7NCgp9^vS7n`APe(7k9WP;ImW2WBVMg9NG#blF@ z4Nis+z0SD6mp0Cnk9(lnC#X%N=V7H1D>@>!thLNw04$CR?#fcqitmaL?k4bLpfT*| z#lWm7CF*3y`Ary1aAGK(YLVV*nkIKIt};P)i}GM@Wk&^ zWh}&A|2}g8Q04hpt@S-4IqP)&W&F3Ggd-3~kSk~tW(n>oFxRDrp(T~Gsx{jyxz{D^ zRM^711Q~iyrn9xkT~p5~$6g|32E$dU2;hSW!Buq{+Zrdi(rP${{0O5{`sZ0xi=4!TOs?Xmpcz zqUzfgPcRXqqA%{D>@DDqn{a;_NA)BE?^^HH~>tje0#`|VOgRb=jD z8yns1iYE(v^sOXTD)J?>c!sykdT?^y6F)6& zWLqJwN%gDj%URAPdbi5WWr-4&vufViFO7We&$GE-vu$((;5!gFywdg~FyJf8&jAsO zXHO0d94TZ6EP{!v5A->3z(_;tcMLdptbkSNT}^5!HhN&0(d5pbCbi77Y97Zxfg7HiNML zau3X*&|lM}^CZLhQnf9ki*dm$NZ#Fg-3)AT-ip{oL#N{#R&a2RblX-173+^qq8gu% z1dRI^CRs+`=%YT%l!V1aWIM{hUe!3`nGg|~(sY-&SuK~?B*uYR`cr5af4-#Hz4j9R z8YL56#=W{#HG5cH=5CAd=jCKjT_h4BfQ`Z>-LU&)_Bq%o6e{6nLjofDuxj3MWrvmm zD+OzPsq$(fU5mO-k{V%Q+NCWzIy&Oo*3X|AT>ieMrd!ZQzvij#1pgS*k17!_!fR@> z+~xe0MeUT7`obipqAtzs!MqhYX+(z4fXEoFkBGphJ;~7&4~npH#RZ<0y0P4rTKR?L z5^~kCp5zYctwV6ZjLv74>S(DiX2+tNFEgjAuv$kfPBnW~FZ)zs?d9IK3=gA23PgG5a@6hdLywEQ6`*L~0Q#2ciy@AMx$+NloE#v~!h>YF zf$?@hWM4uq*S#4It;Y0KOEIf^l>IRu=;q2B_KGS^nG#ARe8}}kULa5YirDhi5W6pau&C?{P-R_RE7ap^ z&5zx2WEYFNC%n{9mB_m)B*~9z00r-hX~s$mZycJIx(&qL zD|f&q(^SB^KnB5qluvdGRI`v+@9DeuWRZ%CAARuLMjAP@UZs5Z$^~O_l@`~9z&xrL zddy{`vX|zwx8b3r9pbQanR>NfoBiGD7Y<~-)6yp#_H>laIT-JI`=I>NH6EUH8iS}H zm4bjNBO&#tnk}uA%z}>KlRGw^Mw?-Pp_@a?y$`W34d|6_uj;6dt7!C1DM}LOY*5f{ zUl03^szGsRW^!_}ug9C0%{9m6l|;7z1a}YK*=t2WSR+Yu)k0KiMT*u`x)o&%_~M({ zX+QvGV8T$?v%-14FLuac=baOX+!NCj%HFFys=rSlyGY4ep_ng{TY&?DXNcX*KfMMA z>;-!UcU9ojScRMiUb&?qXKnff%+g23mLVcmm{ZsRcn#hM1t(Dqb9zU}fc;xUZdORg*l~%Sx~TwrITc081y^ucOv!Ep@uM}^H-8K7or_ge`W$v7qD+W+u|vtd zdLeMMko(nZ`XdIXl{HkZb)HM8%)rRR=!)K&hU*hRkpGUWW6DBTxx8WQjFDsXY`WL! z6~L8O@}^}yJ|KjjCRu!-u)hx}i;EJ2rd7D8A%c7$Q)AYPi()Hvfj8?{&vUc+Dj41K z!wpvMc=@Q{-wE0rI~^OSS(Eh)spxW7OUtCnCXhfUDXOwy)tv2x0l;jR^R+d-&|+%u zP?IDl?)?eC1*#~FgzG_N3Yuj|UCtu71=@9yVXvaz7vo9&6juc|4a#!b1C{K{(YV%` zwDB2}sFzh`8AGqs^4)!`KbTI?%r0+6qzj4YE}=z1!86(7nlA(z92Iy^>lwkdMqXHK zNfHY6#E5;XG@W6fDXGD(W`o|q5VNjaV6u57vOdcL9E#sOr^YQPk{#DJa-MX<^TvDD z*dZzy)=vJ0a6-`4bW&$K@w#`}DO26IDdp=^%>CNId+$m_iH}?>QZv+YaHoN{Lw~c) zcmr%$XJ12AD!7@G>-NhfnFoK3LoTM_y;L zI>XviY#SUc7Q*V27aksN99k*$Ln`l&uCA%-lPRveiFiOoK{`8!o35l^+Q>p%GuMkg zpzvX-N^_Jbw^XuMPL-~1goskS>O~E=M(HHEuSFYMOjnS#m@h4R}fE{WHjFPI7>T-9; z6>GpPqqg%kI>O!FP4ayO*?H12IVbD@Uamy))hYrOl2>MyzU$y=%hgX?@GEBuqL?V3 zf?=Nh7is?x-<^@!&wj7tU_gZUOWZ~*Dt|c;b=sym1A2aJ{x*9kvYO)j?I#guot-wj zNKx`Fovp=8r!Ti*&+dh?D-<0$SGBT#)NPGejK+U9KtG6>AxX4+j->t&_g9m*iIInW zr|zH9tlu8CAqlEz$D~=|%EwzVvU!KIyN*u;{%Z19?||o~&+GtO z?Mn^k)&6R7-ekEIysq$Dc-f_vFL>BY{6N6B@IRYq|JnC_(`yk&Zq&AGc?;i9|JmfP zzOUs7AMW&4N8k9LpZov*(T$eK;}3PVw3HD^lE6$KHt#_&jV0BGsmYDiVp3a*CgmZoW)>c9%mmRkfJ63&4(r zGOHF67j*Bq@?4i=H`WI+y=gt7mA|rlhYeUSn)m|&#KLlE&K6Z9`A*w3LxaC6LYO%b z{zvI(7Uv&@qu(`0@8$e9&FZ{>l>S!3!8ePo&Pu-mXXqAQ&E`ZeNLiuVP?(;0h$)F)mKC*y<9Z<(QhMf$*8ipx#WJL3MI3hez48lC;zw z@u4a|YyDJN94z*o>NLI)ln1i5W;zEMR^mmZnSU`)hj<>nSu=B}+BbQn1M z9vwu8R`pQ}7*i})5pVxUH+VOmkc5uMk9o|G!z>4otO=vtPnd3t5#YY0#ckMzxgq4u2Rs{LXAn5);Bkn%cW&?=@=q|*fh{N7Mgv>c z5Td!Hbd#?UDT=sc`ry%cAQooU%FY)u7*i6$KaN~W=-utY0ysH$sZ;dsz(ylFC>4_Z zxUT>O-Nd}@*tS%2F84L5nPuvJOj7=^$5S*l{hLH-Ww=Hzxm1tA7}^70uW{6V6~LnH z`O_b9;6FX-+TV^@oOv7d9=V`bynF`va%oCx=2g^Fc+-t#ecKko(b-4|3m+3#{x@Za z9ed75sYFZ$&^j~&JUUDU5=q@0{51_z&G{OZs*vn2ow+fFUs=K>zp`NOynp?_%ix}| z_z_rGBGEMKW4l~EmHT6wYGO(z{5@TF;9P?)8t4V4IUsv)TV~KsLB`~oqs#2G(#@^( zX8lNNzj||34%;T$jy~+1hKOuU+)l z0u*ChQJ#Ju^eoVMPy0>QMBSltR|EJ;F97EH{Vo`HQ8aMwPC|!kXh6 z@#;!X4(X9H?4rSycYPB#QXw~K93IV8i7i%d$8%DXEJ|0~cvyEKDfuH;CxY6@E;+I1 zC^bsZqeo09Hiw8uT%ShGKvZLb%^FoE{WZou1uC)jf?(DYhW0^DPNIz`Nl_~M+($xk zVj~^Y+l8C1Im`NsX5;AY26QDJ<5;->5(s7D$Y{#b-pjJJQ?nZ|mcHu4{74Qv*({aZ zr{rgomD193Y*((^hrY~CNqcR?5fac-W$Ws}2oN0&np)LS>D`$;{l3OMhmNlnZGf!K z<{^_79Slq-4QFaCQ;|h^+z3k)eC~ZU6J5-cAwJ-A;aBjmo)7N*21w;u$tov@!>dSd zBYLMA8>mUrb`wrpQ~*qoKHR@Qx$?4}cJpOPNm)wG-Sg}v{vBOqJrqKds3k{+NPt{& ziN0)b%$;139H0>+klX*s1mY5~#_^nVpZB2&LzfznwaIq=*8BQIn^dtUdM^G(ZPyKI z*SJU$J^7;G$EqOO&9N)$qq2#);;B<>7%uF?T8Nx+PbH3{Y1exAP^p?rJ6ROPY-cdk z8L|iT`A23NmYqZBe%-^xf{uNX(V9fA*~MorlMpzzSu-iNt`70M9^;H41-V&%9ySs! zNqMHYX)f7nKoHsiMY`+l&xgCd7z(dnJk%~cuy2a0#}8b-e%A!7B_)}Wr;oAWohy&s zu#e_+F;KR|3=BF;%%1mQAe{$mJ^7Y~!`;Ov2VUid)0Fu6VJUJa;%;CEQr@_0x;)@J z>cHDExcGJ!|CpYWVL}o#IqFH8>E06QL92}eUJDSccV51E*|tzS7-}bd-E#maXw@p6 z>vqiT<@~m4g1;$1OLm89&&URpIb<~=v5%I0K$=5rZfhP;X;ppSx%J(fbdHPx@Yu}44eEDap#z2ZQ@p_HmAzCepX|j84-7$IVvUKNze6D&| z74}J}WJX!Ik%*CN9=I)KDE&s8Ko(7YbEfA-<+n5&AJrGWmK)}SE=pc7CwSniF^A~V zWu8Xqrl_{2*RU4><0bWtBs+ka%ClbU3F$SpB)!Ch3I2*Pqhb&wJ6kvBXnXyF6D^DNvTnRK34+qBj$%XwX`e zN37+F8v&+zsOL4=hWMeh<^Um;YL6 zczX1=)#sIWXM<|=v|Uv835Xe=@hrlw4}RbN-#jiU8svahr|amO#4vP3doT`NR`}&w zAb(0ah^r!Bq)|n3_BoWfHnS9VZ*Z8Q4xXUl>Ha6}kAAuKJmf$6&%f;WvVG;&k*O$of`5*0y0y*$#kI3y!|=BOt{qL9hJgK+R)P-s6;q&kuy| zcEIh=l?MwDi083AH`g~dk}4hM1_V?CD?SFnVZ~sPvXcPXi%fXgorhg}n)CNkC*%$q zy%Z;wBUP;XAE#!GVLJ9Oo2xVpK$(s;mAc6BQ+ z%!XNk${*9BeCK5MbZa}Z5Pk;UO@YRAn>D=TF4|t4dzpCrJtk3eddh zM?}P}toC1e}&s-uAdoFy>NoB-^>5XAwhX?um;vY}V+zz2cy*cb-@pj$jI&OSLxWeA-vni@`&|6)i^ z(GV$SmSh6mb?Y8DxrAp;QX|TKVHOX3pz<8l_DZ+8&3y zhu4T_=ZV_mV3~awQt!fyCIzkm3ahhGMs{B$Hm@Ii2knrxixO1J9}RE|nDnW~L@ZaM zZKBf!u8Esp6U_p#^SI6A`PRZVF9mf}=lTSJ^9B6tT@cY%!X79I}CG{e^M?~9QL7TmP=)8YDc5VFl(imP{=x8mZI6Iol26uugTd7=t zG&fp~xNnyrs2N*22|r!MZpM#CYxZ#q-Pw{C&yID&ZuWy1KhDfPqgZ*<2DqXB1;^2=HP z(!3(re%7=LYA&Wr`~(ngnDR|cDjE(Ar+sR$;d*0cpkNo!(!b1L&WLeuEZA{zq@3)! zpe1@c7RcZ)qBlr@Z=|*PMrkUlUpBpiQ}f>jgBoY=ue*%xXN`zkJ9_J8=*_}n411=U zopnc9<@owhXK{%E9%V@GPvi;>O;5ly zRs(jjz}lHDxm?-8TUX|)+aRN-rzR#8D@%l|!B>{Z-bO@Z#HZSfZDwHO8}N_=ILQ_0 z*0StQ`KqWUM}a8IAR&Mdr$R+Vp58>deix=-S>Z!M0=jJu;0qW5v-K*}sfM^}WECM9 z%3h4@2ttN2EGjbXRKO(*6xMdEZAd3uYNHcmOzf2tB!-=sx>T6v*)v{9bsHy$a?%fO z(wh`evPFJNX{`@yc)J!XR-llozpa4-i}(@xHigo5RjC^=wzfOGX&j^-twI&c0l!~w z)M*l12GZ4YsSP-N0;u^w55#nFlZGqChOPDT?@v#>q%>SJ)X}MNsh36PQXMAU1|#IS zPt4fLahS-MQrJUC7B@i8pg2n%oUwa5IQm&AWQh*Prjnmoj!_mkKaWw?)~+sBy{ali zA0W0{dfyLn&LpC@6vUh&RKXGv!Jx>7*~p9jtA^+j+eWgSK0BR@aU5${y$ZxZY)YjgVO#_r%%wYEm9+K5ffLm|24 z2g{x0CE9|^`ijhkzk4dv@A-XVN0qr1{bTBA3b31?gd|WJ*;;U|;|B)Lux3lmjQT96 zq$+S%(`TG6B#X;3*eL?_9K60*%ZGPVk|7%dX^fx|3dk4>`k17ODPUygZ6q{j<~`5r zH?KOta&YjqPhWBVW$)L{z%Nho1(JD5RRA?!vC8`1$U04=z*AG*z`}E%vxI6vLPNf~ zo4-Lj5WE-p(j1`*8mblucT=)l;;JP8pae1@s;IcjAWczH2uTgyk@)6 z6FX(tpgSn4Sp#u((Y@}&i2m_pCD@};^N}cMVGQO}K_9Lh@`d3CyCx8#UVOwiqCqr} ztY)E^9|BK~r~})3xB(7GWVT8fse*%TMW;@XSwTKpTKed6FxuJoYSWyizXz@Yg&}P! ziR&??_JXfztFG&4P#RoSrzgE5)!d7+nUs_Ov_cTveIAk2ABLMpzJJL?gmoS&3j~cp zByT^wAConAlAG$&xjS$Z`?4}07;dvhkN?pmB~V)K;Dit``o3$dXFR_U69_rb;}X9bEWUmh>M}V1NhQjADamWvbOzy&a{Jj(>L)S1B@B`uq zxkO1TP7SXD_Aj0;kYg4GHCU=H<)8ZbM0N#w$H_W*JIHtWa(PESXJ1eau~coTGMC)H z3bGC;j`YcPpWq5!K>1bk?FS1O4-sm=!D_0}al`?hZeL@61^!hp!S{8(FgEr(9 zSOlPP%(?x>Blhq2Kr_DTtpwTz2(&x&Xn;}MisW+#*CS_jQ@|yU+J4OV=}a6NFc%A{ z-wZ%|DSF|y#*;nSeHd{pH~(d!raK~g05idboK=-Mm8g7L-h1}@xo31~vq8X^^6&7o9UjZwTB z--T}uQ6#(z>%x5kkBr^Da!-gKty4o1a7%IO_Fj_7IcQ+-Nye9p$_B#qWnrSNbDx7N z>;q%~oU-`NH0rRtmI{#EZn&51xc@}ANH_-QS7 z_v=12IxVzrp3H?s;%#mNm@BcFqxI?!?9{V*+c=s0Yt~Y1EdQ=?pXhZ2qD-KS9#~Ib zZK@yjE5nwrizQ>rv+&BPY8c^Z33M4F!jWtt&7^Or=t$mr?+}q z1)Y3fBGq`zH(z6;*smdu*ewu=0R_5=#)sL1dsvoery>B(ti{r_U`J)_#X)^%Za zT#~p3W584=qM07R0@LFdfhhtDBt(%QrW%Q25CYRrgdt1awxjZZ|;C2PpPp=28EQFW#^4%8SO>uN^4G>RxORj<~Zo<0%rQA=j8r(n635G;{&eFVFg#`kj^7+_3*EX|8L}6x68_V$jNSWDr(Qx z*xSuCq-WNaXR&=-NSRElX^qZFnRb}vllB*Ot6Ph@4H4Z&9l?Qn6;`!akW1_aEfAfY zlj_R$pNWVRUX8L*hJA~K88KNEnOOf-n?mOu1N2_TwDnrys698mw@LsANE>cJCX0pH z7iv``wBG7rGtarAy0I(PU;XFY0Qi6BB>W307-mYw_}P^X#N0 zHy+vOXit0a^0FNb*K&{Noa7&0>5td`#7hcop!NaI>HN}YWi9D`3S*)H4&uv>5smYa zLgqt_g5a)G%#AFqo9N~>=PG80p0A2$qiA_TY(>*T2fOG*ANxlCyRM4{3Pdi$ce6ZX zDMU2>-$k$dpwI)0;pq>qOvN{U)iM5IyPyP1x|48EH{m5LY;>;R+z;pxq zy8UtdQ>k*+khkx8Km6x8$8sR7c3*T%5^4kt@Kfq6&sF{yCh&Y-Yc4pfOd9xl`B*(( zZYSbHpr-QETWJu7_V}7T)7=NPY#-K0NON|%7D=nnw^?2=Ik|mnlZzGrfo5=AKav=7 z@%k$|zngp*-9x}^UIc!|EdKX(@e-H;{4R^!U@FSWFIk5OMlXPoD(+HbUbQEN&{r^1p^KJHcvGxf#Xj z0z#ANb;`rAT84Tq2{R0L1r1yN`b~Ot_qVZ=vJWmo`$N2c@cy8bVqAV$?`HLky^XZj%Ek-pUXa_Hy&U3|*Jb?mAw|0#V818JYXo%~Vd6go3-uyNZwzngtuAhMLxtc(;YUq)oP@Qjl??QFe ziH+;>u}i{yGJtV{_Q6%BCq~d*Ehw!`iAw-X)O5~?}M$t!)>a>HPA9&oCkUbh*ryHk6ieIp)FMTyER(|B(Yy(^3S1?u;ucax% zTy4r!G%hsqs=k_;iV?j1JK=fS13j=?&kuQpT^n*Z*?b%-{+5{7sr&KSLf6lyy0s07 zPg_&xDo7hpsMZ6KgXT%)NC&ejpx;>R11V%G#7k4x!YD@iTYh|bgUNKq!U~@M3IpgI zlC9qLRwUGQoMQB-E;&bS(&tUE0XX0P;9I@yp*b!W)pR833y%~_M)9H!{!)@*LwZI@ z(h~XIjHX>J4emPbP5R0|!)#XN;86d{k7(YP;cZ2znFO26Dw8hjCXb@(QoqiNpdEZt z)7}vbJyOb563xx!hE|A$`K%-BSyHvOwd3PY0y+n*5fE-X^!2o26@uvQnP9ZW1TbWs zKpPsa*0l*o$KRi`;&azx#y8Hkqpj>zQ)S)iuLG5Dyn860?ceeMh3(Hsgk?8<0NAKRcj?&!iT5yhqsb~B0hI+#_ zITz0tfd;Te%a*%bu14#6US1e~zyv207kPBr{w}RhCcwdVQ{pTwmSAc6{I2Jrc-vBt zddjdbPIF1{oMG#DiuJ%C%lLfyxt~j{%LRPpR$1P4{q0>A;8hDhLY7XS_8I0Eu(tao))PNdRadd*{G$syneFYpG>h17oxfdAFM2a2YBOWd&R zS+LdfVas?Fd%Iy>5d;pk9QBqrQZN)^F&F?~7BAd2H;s3;U-*FEt_Air7sQV$w{e zcGOE9;r$_n9M&+9vhOFz)XOE|o@t=x9{@0!GXuKO?-rgJaJAT7LlSw*Yi81?k{t`^ zpZ(E3752(%QvvynA3M#Gt+k%WUGq4=M>r%J@k#l0a@SnD6%R(^V1YmX?HVhpE%R1- z*X2BcVNXH?$cfmx65v7UA9$|_d}nQTQsx#ix?|EpD>tA9lf~XKt(O^qm3xSlAbur~ zYZco!e1!%NvQ4zjLh1idSUMYO+#(|p1gQXm!vNHGazr1B`&k3 z)^E{m(_y;u(nhLAnncQ?1}aREojCMsgE;W@1lkdm`kpc)jo5xM-$EMO{t6jdP}bK! zb#2+|fr8Caxs@Di#J*)X#qKv4S|*i(nRL+2Gt7gB%XmqV>czbWk>L7Si;p9UckT~A z|ES1ftt6bf8uQk#sKyz(E1OpoiY-MC(ih}%0JJ3x9~M&;urkc6en&ZV1h}dD{zm!v zc%cNg&(I0@c39=)Qq6WklCZy@o-C<)fw=;wL%18M0O#J zyXMm!mGMtz9Unv5or_yYs!9b)(BcaU@g%u4(YWX%h}@bcOx+=5={e$w^B)hFFi4O& zE3KN2S&4G8nR#yMP+r33YraV$>;rYB6eag>(k!(fmj?7hEmYslDy>*ospl@mk4NO) z=Ky6aHci3r`QKrVE**x_Ap>_nUWEBGP?*KSXgwm)@I<497}FGeEH*f&{MOV7&9>u^ zK|p6~ZPEHXVHo*ZRlYs-rj5=)NbK7|t#uzan^f(vw@8u1`X1AF)MvrXM&7d<2GHY} zrM_eSuF9m|Xt!J4Hz{q%n_HUCvS?)y5xu7Oc8#*Z| z-FQz9(E04^*^^F8gX5|o7d3nNT*MkNV%_m1V)_fuQI7J7>{Q#$A`S98H4%dYv`hOW zV-~+#IN}XEzO(Sa1#PKWOp=J$tz+-=A1YtIA}4*Q40@uzW8OiL>8(CDaP+hGgxiZz zMQf91j}><0pY2yi&%uZ%G|N{Ml%zK&Q(?CH+`e9BOX0gkhf)u>`&x4Mj9`ARySWMq zMv9&nZTKVLS6?29oK({;5}nI01oylgaVr}qCXsMh=j?6`703raU9KxfoYADB5%FC9 z8ZM8V9B*a!LI2T0yH+~fTDT{F_JiEzjXFn+3UA?{UgC&ttdfv%Z*Ai}EBGK3g#7&M zj0U28!6jXg4E3vaN%lr>g^B+>{*O}C7S6^ErMdnO(s~ZcG`{d`kIquCWveQhSfiCb zdRL6)cJ-z5U+8+L)9`0D+`C@t4$9fh_FBDFExGs8%n`ltvooW~{el;4qc-swrT_ST z_}6jl-^=agRK=7Vnsr~f5N;GJZ}A%Jr4eIcc0s{(UVibYs2%T&Ji7n)I*(e?Vsj;w zXHP`BMJ*7WKg~R%RxLJUPNlItejD=rW;#B_9?3AxWpzTVE-d5Qb=F8Kuj@+;0l-_m z2M32YcE(4Rc8^{D)pL|c3LDJp_Wo#!Uc=2>gdCp|}bt6Pu<1A*Ka(x%o6 zzH2+UE@zU=Y|pkjL`@)@)%elO?)aGpFh;1I7!p5i#L*2ELrZ>|EXFUdr;)g99;gk+ z{Fa%m)dqA`2Ag=~?mV!Ip7tv`F%f(_S_UXR3hX#ep1+%Q5SQ;fw|)pZGd3AfkY_lm zRD2#aiy58OEd$z%SVhBxS-ErwWmp4~RkZ@MTjauKMnc^6fi$h$vZMAF|CaFb&n6(z zZL9d1po`(Z&u0l}`{(9kQ&xZ z&*I`OXkwf5$n17oV>eQ$S(`EzQgUw>Kz2AlK^-v05}}}AnNz&o99a81&o^ch?p~gZ zUM{>U!?Npa*l%w8)3ew68B34TB_0&fx=i7qtGuQc0e9ZsOSTY=Ggk+!v@|w5Ah^KG zG1}s7vucB9^40=@Cbt{mthJ)+XOH#*xr?l&;J?}1+YeR3rNxIaZKQH}X4Q1e?nTmb zdM(>;g=IP}ev8?6;=zX#r?53z#$&?z6E!I|lvUZcV>J|cIaLuUtkg=6NWSNT1BQp) zmOCF_IMd6hl|hp3L3X|dj8w(kR>^c#Ld4{C2ZF7h^cflP&6U3Vv6X0UI|(kp(Us(n z6{q1{l4~nt%KTOlSJxM2jqJ0+NsgNay`}*L_omRNKW?Y%RHZMMmrJ+o)VkBkTk5`< z8orf`1@DVFT+B1BGxwbRszOM!LF~pr$(8Yf?KJ7H6FTjqt2SYd=qHo%4~7m3H6Az< z3XM7v{Nxj_PXfhb7(jAI^68Xi+*FWK*&@YU^GQ!~6>bpZoxOUl{F`~UM4}`ShL*&4 z%qn$l0CR?G|7P2gVQ3|Kh%vk0WbS*k^Su%wxoE$j@H6hS=E>J#4G7}G54lxc{!d79 zMcdvE)Vp~RB9l=NpJ-+J z_4RqlSMhG`t#7B%{Cp8Z4yf#8REse&_14ULljebUtVxx*F5QJUZJ`$ueu$jg8F;tz zmUFK7R7M38k-!!3CIR-?LiUtWyPIstM%`13n>*}uJ2lN>vKY%j;`i)vi0H*{YXJ~b5;;V1V3j+R%6|pu-Q|@^mf$>s8{~SHAkao`&TD|*;^SLO-m4z?O(&sKa{x>VsJiD0*n~PB zE+CU4K<`*ly1wYgcDZxB(gi)C${ypTzS9aru}-GZ9^)!PCu(f{c$DXaw)A~%4x#uM zVRa~H6o4w)_O)0lzVYie;gGQ_;lBQI^-r7FFe!)GtY4m=dy0i#Sse8|QO)|ZW{Fy$ z)j>_s4)o*x{V%Lw@*+H zJ!_B8H5xBePC~c%&tpnSgn3MahBeG{RxN2|D7l?a15?Lkh_m-%s;lwDc&HP)(7ZO; zqq!3Lt<`Hik}aYJv%0_V%p!@j#Y?3GVMXKCoVS?PM~(nV@5Juta*3fWbFU*dz8lFd zry)qSKwj_4L*=4w6)n*xz&M%2EF{8{y$QQGwX@tr8i1`6aJ6f6QiGK~#KHn@p(usm z?K=Iz-_J+_@*#v@-I^|#l$*OmEPUFElHIbhkuU3*pDb)G{owh+SRzq~k00@x-ce^h z9KQ&F`BjJQaoWE-Kyp3A9o_3%lG_uXnnp5a8n@xIVr6WGD3@Ptdp#g$i%kj-Z};cn z*)RHE>R11%qy5hery%~B`_FElz++b2)aQwe|K~R6PGt{Q)a5~A2$v1(bI-Q#woxVgQBpZ=oO|8*|QzbO2#nSNdr z`08kvFAUglje~s^;eU^er%X6XOinT<^^i@Og2D;ngoZF!x(0 z-Z`k6m$4>Yio=SSR|k)!ePR?9o7tmF93=1#zQ?aixOx+#*?p2+gNW&Z2aq<503z2u z20yzkow$Ilg;02*fuvQnzG)G}Zf@K5nA;Z~kdBK(SsVs`YiOE_+rJZPHDJZ;Z-yJ| zU~a34NctI0VZ@ukyg@8?T!3br5>&9qD1(sa#t})cjskoS!O#w@55pbknftfZ0ay19Uw<-!xg>W zAF%3Y_IDb?Pjg!@CYsnb@JH+MRL~!-my<=I77ZKStCdEhdz6aw7pVoGHB%&vJzG|h z!&dw)nq%EF1l_#51t{t&N(SFG-Eh=Z5x)?BF=aI4L936dHIp8n{J7GJONqOWnAMD8 z6(wrG%u&(P&^rX6kHyp*)pXfkymvZQ>-S?*-?A5UP6zvT{BQ7`7e)@WL75ZPjx_{-IG$x{N(y{Jp#0RT? z%=226*H;JEkEOCThVX4X8yUa;Ma`%Go*D1`_jLKJ1Hqw|!?F{9*BG{A&a&K3e4LO-G#i5mpuWZ6fW~R$(^U5>{axj2CLFwA0BK(X-0$yTQdsuUvyjmPf#nZ_ z6kZ0(W2RH^<@7iXjyT&Cl{s2V?*q0`C(xO-d3G5q$)@OTMWj2ifSKt)GSSA<*Fn%Z zLd!}s3@rt7@J5afjWUgVfnDH43i9On$C}E%wbi-Ipp#5<2A6}YKYHm%aajLp>fMsh zADjoPw8K@t@LcS>U?`Df>AJ^kl+5)xjs2L%%ph(1ahE4uOulfzyo`pnn5y}9Gy12A z&*Nt|pGOPX$;ig_i%|(&O!2R+4&~=vBX4CPnnNoZ=g`8LOjv-$D-9^e z%3oFb)a5wk-H>>=b(W|9_T^VJz}|;=Y3V*wk-GRr!GpUQxj_4-;3#URUT$ zh{W!`!6C#WbAq;n@&n zoN&3W{EXI}D|*dn-d(g_Ky>!Ly2^6;YR<68rxf4$>qBdYtxs%Q^CO(!uPXdHFY3iy zvzk{2?(O#6^!d{+{`Zwn&=^Ls5L5p3wy18`ip?q=72H{rkE!v723!V#l~n3BI(TpDn=7!G|g z&>yIfp>d!>$5A+={ec@GgX4nV#eRsx0vbi7pj@fR9T~}fs(k+Ff;FHI& zqzRBB9aFEYR?RgSRksmmRx&ino&I+e?qk0qm<}zam}A50ay6wILdr zv#pHWwKY=V=s;()f>je&m4v&>`D2Upk5!I86uOa1aI#J*@a2MpvrDSYTys7T3I$@P z3G!-uz-sgk&yR?I8&lUEsJ^xoV4!Ucf8}e20XjR@h|br{?A*#bioJr`Jwv z5$?sukJxp(ehC#1X{%$Zo7)4zX{wLFxu)0@IrbCXUDITH81iNr*#$G2ktZ56We8Zy zvvL8ax_}3MS8wh^=h;161IQ>1r$u*%(G9i@ycc>x4*~f6F}2DQv8eIW6$y7wTAz>U zT*QIc8-_J*9r_tO*oy8}>zVz_L0o9--`{u9e~;q-2j?=Y;T#*CV4{br@Qo9z z`HTT;`EaWo=FxM{44N>LGp4+(S{2h(erSl_Ayh$sqFVa``T0e&p-?1Vu&u7Yjo1LX z@l9=}N8Ah)VwXu|nvW%%`)^yrG58O2kaY zjI_2|XN5ww>!6Ue)5C+!g?qnV3i$Qk#+kp}qKkDL%FjOx)(U1dO~<33nT~eYIArcw zxlG_;dTqcOr4T zb1QrAcvoAgo_iqjR@8F?5V1=lZNeN-BvM`1W?{nfYt^yKx{12!Mpc2^JBH!yJ!F!{ zUNt4}HBGfA$;x?uZ+WC}?SX zbmI$8+R~f%!yXWu%*iS}E1}k8ZMOX-_x%xWmZU`fU#%1W9!ECy`$u$n^CGvqcwqg!90 zJxZF%nr32@uZw6K9^yp^|Cv=qqhRW$idVU2X|O^9@)Z{?+X7k`o1t07#esV%FpbYt z?0bu;u5}kuwMIx*MoDoI3bt%SZJE2ykr3?bjyU; zROiwg3uA@&=wJ}qytr~YdzO8ekA-vFeu2xti7GmNu{{(F0gD^^l%vAak*`fmi$wja z&&MWVP37c+v`ZrO1Rk~FwqSODQ3o8 zqiq;*)J%3rDrEUbg5=3h!w{~lbiv*N>%QLa{+Ny|yfegpLkCqApVDykQ}#FVS8}gn z=4Vj!x?y<&#Yld*X-3v77NbvZX;&y zaQrAvXtj;w!Su8=pDbbK%AiZwQUherkD zDJ{2J^Nu@hQ8I%H7A6V;BPdeWFKrw>SYUe09q$Q~fLc<4a|$ZDSEMP{PgPkcqit2F zaJFmXu+$Lw4KBB8GHJok^jsC&D-5L71;;X=y1^;>B$TA@daZYaR8$-YQv+c&T;Fzu zT61hWa?Ue5%*LT=9L=g>Y0q1H#P5q4+ii0wIn;ey58N)GgC3II?X6)J2t@O7* zd)Q`{^lMUi?ZuEQa?ee0o%s*QVg@gyN7)zV$}|I^Fl&;s9-{hH^|C|J9651Hu`u=e z6GkJm#Uh!e92E8jW8(gziRuf{hu?`?5 z4;Ngme}4~gb|olWmZP-fs4ZGr4^(B}8l#=B6;1@?=g0(ly>Gm7EDoz}*vt=PG$bEj z64(!x){TJ+gxtGIDWo=!Ua1u#VGFjv?3zGJIo%xu^0`8dls8lJmOHPtspupzb|c>> z4ABJDYd#ubnwM01LSH@pC9=>|M zH{X-5k$JAjQguWjRp@oAUvXYxO``~db+6}?jEz$U<8!_ZuM70}x-c0zK_X@GTIgV* z>(HhILz9;JI!}yPdEtC5B8uWTM8xG7zp*~%9f)zjni2!Et~K7t{m!Mk{lV5uWVz6a z`oUPCx{;$IpK!4x!plFaRg@aSzc@kXwOg5dua*hF=h+_Kq_jTRCrNz*PTQM$;+89) znV=yDvQMT-~&#mWbLt)n8BXzu{K=mAzGi z^JwG8vh&>PS_4=`OP_k2QIx@Wv`(61p zq-1i}o82nuTtASX3R@me8Sj|7x!hP#(2{M6Y*p`F9Mg_ROvOb9hbDENlZ=I{EP))nhBNJSWRlgILW?P4&6exP@+8EcP&Xb0;)K zJ%(~-hY1RySq%0fWG6|5sn5D5afW$m%b8JJFG8s!s9hwA7tZYB|ZHjOh}IAeAZVDFIw=!~J4v6nkTmCfa)kduZR=Q;~>Mtsta ztPYJ~t}VnnB38b^MNy8_>r(?e1Jq)e<6bJzc`WJkcqWZP ziI=5X_S0iPo}S(_Gd-$BS7>78Du}upJ;E~Qq}O?eK!x&ZifkgI%dLO;GJWwGxV+Hh zoV>i!+Q)%X3|Ov%Rq~_0f1vfQ=91F}5+52<)l9)nD^9d}*Y+43Xv!D=P#mVsseOeR zino?KmdjW^aelsZ8P0}QK$tD;fs}1jr`IdwK}U03sE57q+B&eVmqgtF znrg#X>@Zp{H#gxm>mK6!cv4ECU|t?UkS5wnv+BSxL7-z3R70|@QvNRl$7J`RXRY5Q z4Lg+&Fs(Zu4fr4B~W7x2MMg(NOGLV#!pAMWXZ(jR>@*1 zvJf3rts*i7& zd$dlk9JI&65dZ~f#$tH;@3Oozb>tZ$5CQzH5e=SohUwr!l8;^cfg4LGIF2yO8@k*{k0$?DJUW#{W+A*vD$rMc(oMZ2M461|JD!@_s zl?)*{6#f`4>I>Hk(0DLLB43yENyZu=ePXR92~R_DvkCK;Dv%U{2h6vbQl&oV^qRfI zANFCyE-Kf6;!;je)D>nX8QU>o(3!AGd6Ts`6K=A#uxBH@SkX=}wXZ<&DZngDB68l4 z8Ddj$ufKj%g_7PCIJ>`oQVB8z|2V065~0m2P{~;1!2ti+4D^Tn|Gbjsok=*{*e9RR z&_I$yp&oE<_M2_F_!x>xa0;vS>G z6pBD5V?ts$r>yrhco+Wq$lY>D%Qhm+>*AnHK}v4F6;QPbN4-1PTIlkHN2c`idW}B0 zT9?V|758lk{h6ykp2ye^M8fS@hZ2ns4d1LEX86hGz(MvGEK<01WsK+&RQ0p=3irU5 z`*LtQzd$=bcMLW8Ah2j1bs^PGWZJ5dg}y160_iuL#;kZdS>?;^3&*odP>onrZji=w z!x?`+$TUB+`?cx;iB;DQ(Msg%R1*TYhgT5{)bK?~m(6|c1RTu}J^nQ$x@ zC_j(r5y4u$*3xp>6FX@)4(*GN7rb!!T6=MZZ~VO2nWRVpg;zb!kzdSyb^;1Bn21T$ zWnNVIF_+e@pVLi~4@&Q_e?4f%oQ}Bb;V<%bIY|MS?h{s9+SzPZS>H3T7STL8IeDC^ zZ(O2gV)CKCu=#8jXQQM%L&Q6^J!lo1CtWj=i$!}EUol&mBuHTx)$}@MAh>!%y6@iH zj&!{i$v6CP=D3Mq!5?A!xoeeiFm_mb%93T;P}J5!Orn>N(D@ zjq7?W{ddjp7Z7_kV=ifmVKO`5NF`p&?G+S&F0m+@iQ@W?8Osb|Bk=rUnO@qkbvD~C zlT<49^wcYQvrp|*>iH61re4{HP>Nl9fi>N3z}$3-O9hmpm;BHL$X)dI&RnqMikl&k z0d3mZg`a;q7X~_FKaRx;N2Q4~5T0CwrVs2+q&*QUUX{L; z@_h97xFpqht*VwCtT_?y>W^-2nw8rCfn}eWw)$1oH8tj{BOkn9-L*plFXm|Da;XOK z8mv$7kz2xz>$BN$iH14r*;5uHLD*J!$h8(PA;G7dy;bTR@7LRZ_^4cFH|BO7;_~?O z&iCa$Q=Cf?Z?XEO%erccd)a)Y-i!(U8m?o(Pl&b($|E&&`nf>v2s2?O%wn75=D3*V z@|EaG%=XsiyR}7c5$Dd8z@^9()aY2tNJ?kQXu6T8Zm?uRd@4gL3RdDHDC&tO)YAC{ zvGUijgHbssY>~BV9q<(5#*c`Dw}sF&X^Z43A*qY7ck$UhqY9`y<`iT8RdVrTVuO}v z6uD9D=nb|bMsq-ZB@OmT$XqR=m9jM`*GBEUE$MM#1sZ+DM5~zHRHx*?&rT9;B+;p- zitL!b&ZK0RM|uGN49UP27Zes!O(ouRv9b0$FGszF_`5|iXHexO;$SfIdp;a z%&fCKnj`;wF8u#W&-tIX=wCR4IbM*N^CtCihzpVl*V@Krp>LvCt-`)?y2KU$wO4** zXKBDe@FAcymi+N_OaA0lA#Xtp4c=v8@%}vNhvKX*XW8jE{;rU0V%^0l;gP_(-g-1Q-uK<0nf4h{n#|r)&nfP3TN(&#rwr)=36%mWbML25GqnRge>UXE& z+Gccd8F_@_b_gU8bceU#`j3hc^C!o%x|59E#QSNrzT#WGgVy%hbFz!BWLsy?2VZ!S zh)ifA?=8Y0aBfWeVj@IywM#I?c^H39`bvt2mb?IEq#)X9*rK%Bg{xX1c7A^B6;%hBb zfP8Ro%x{~Yf|KL!_1a0=b?R0%Oi*j@sTS}j-@f1tGX5TundEt*$Y@Z;x6JNuoFgbG z=jq*k=1{R@zK_Jv4Hmw(^)4UO%Qc_Fd8B{>rR9LNrRRW|?1t6wl_AGbt`O}**N8)o z#_{9ZPyFHi7rvG(?C`iAz<~8W8u&m5UroHDH2+=>m{<{5?fMzU;f4E~OQMR#?2nD- zf`7T+Ee$MFevTT~&9wHpnYqa4Ijg+T?H0Vrs@&PGYwJ~+>Bl<(oSdt5Dwa2n1qt_! z;XeHclP3)+b|?Z`?6le)HU1=!gvSsUnN&AI!ehQ5Hc zdW}EWA2AzCo?Z>WGOz0>w~$$l3cCfCym;$1c4d$Ka&?A`8S3y%@4>T>c8|$gr%K$s zKq@cM(5mXO^M*n%!06tr5?eo-8~A~#hAH1fv7det&LZx}*INO)S8tWjs@z%z3SB)l zvgZH1su7Flo24S8`S^d6riDZTIlS>gwa*?DJRG%TJZ%KW)|yLpM@wz z)n_Wf{5*@xNhFN4N|Bv(M9vwvEL+`u0n-F0_4LwV@J3{>SJ7u<6xrQV1&APWhp~=m z1|7nyLn1|G4oo*h(wT$beLSxuFOcG19a0C|wdI`A#e4kliO>)v;Rj_g&IJO>mIIa( z***vRVxAW!die<-6jd^3rn=(}@(K@ZLs&~8P_-k>Wd;+~ys>=d;?Clk3w^ykVp`4G zBJzY%=S1po7e~<9e@>uqO1Spfpxa=~Y3q)28Po61pC3v<4RXg&TQGE{F~iz0w{!t& z;O7}{0Dk!`ZGsboP2{_D?rnvz&4DnoGO}4PtisEXF)eUjEG6qvQ8Gh*0gzNMmy`EI zTC*pVI$Zp|>X0Pj?5M(;xT-6xqTVwom3ptldMeqgrcYQnYOk^9J-xAPS^v$ta51{f zO!}>BaaMf1Erm7Yk-ft(x;sPfrSU@?W_2N<)IZ!_3oKi#b#>z-IIPTmMb(bPcKqpp zVQscxl9HR}7LABuwnfbXbZg}RrFyQj0>Fx>u@Wn?*wo}K5m!Zo zP`CmF0PZ1^_}$`~Wlge8y9X7Mv0qGtie1n6D3DS(n1^gn-}}K8Q_4wa^{>O^`mq&( zy#rp+kB%a`x7qqJ$yrSq+%1UWh_we12kKvVcCX(vmzJ(`-IPb(<8k>fNRoI?@unX2 z*MH$jCWX(p==1NFazlPEtd7}ck&c_@yC>$wheg+p;4}3(C$}wjy>vyDcOrJfKe!(@ zKE1)C@^1-BQZ(%u-Ol67<3ASvMZ|8R5x>h(nxYvKFD>e-J~MZ zLoo3=VV5t9_j)A!#zkIBy{NP!Dp-@`rAU`@apM+ZiZ>DFfu|wdG~$(M7&4Jd69qeV zFF7@{jCSZpn`4w}qM|y40}BDU{>Xu8m;pDOI&BwmlwU}-_Z6xPyj!mDUd<~y4L0%i zWxu6r0)tel*4M8o;#2fYe2`&l4K?^|M3M`|gP9ruwncja!5uc6nSi&6s?S!E@YQHf zpvS3HuhAwv^)u|V_d-Sx-?sR$Z;4+BQ{7Zu-z#a==&OFKQ88oTf%oUAiy~6c2{bH} z0ve+E@JIay#-s{>o{X27xt~k5SKPjaRb)dwwymebqbbzMlE33kMEU5KJh z^ok)Lg8b4k{Ix%Aq80F~ujfI9AK6*{yK*%Y!hQ;*SrOVjkphbsmad5I?1FvAOz)QR zY;pAN2dmRzPFh(hvz1`_Jtsm%cpX^mW~S;Og6x#_%W&t_5Y5$Sc5WGDp%xJMtKzkO zvBr{I4<4T8za&Tc)7?xMNa%IW;ijv1+wdMF9w=b`U|Q-PH;SN_P9B&l_>?Kk@sQs9 z+tuIJHufAD?S0{?`FS*|mYWvP6p?WFn_}0^@v^78?nf(BL9d30N}!MNhzWypzTMX3=9k`e0s$bKOUP7RMvKjvNogbQHGN4K->qgjAE~fzP`74Xs80X zurD#&_hm~^2xb{Jc@UU2IY=^DQ2eR-y|+u$!l9=%A+^;mrw@h&d6KW>k0^uAikS$JQgZijFC;b(VK9shdHDa4$Bb%De!2p26?qPkX^*w!i^XzpHm80}B) z{$sm6gsWBjTI15UPn?5&BVYq_%vw=0Wmw3Ml%4Fhe+CocFAGsX+LQg$q zAaf&FAa)e^8|vgDRk$dOrE53fsci8;F+l6c>T;{HEx#ySE_}{Gm~cSk^2hl20ZY*O z(MPAHU%4d-yK%AWmR3vMQxL60dxeB7~PpN zQ_J9ZY{wLut9Z4H;?=YGsz=ev_>%QktCV-*v$&X;wsKX;BqOgW2h%QfErX3dd&NpV z*uY2jd~rc(2171CQo4+JWsR2UCnvoccwU$@h#e+o8~j`r)a@1mc68Cycy;OZgiWL2 z1=VK1O1DjDAEjOVFyLZHja4asOF{cv2-sNCVrpvq*<$%hOnGiDWX=uj)yY7hK?_W9 zz>{oK0o5kg?tZve7Jo@GXzUzu63@3SSM9n{IBVd%H=`Rp@_p;NJwKxhT`;+D!)vRg zs3<17WA|Z8lVNqBW;ZgKK!Rukl$Gf3q*9kDka@TOOaE) zJs^iB-f7y02pD$C+r^FN^p5gGHK%m|^mE#QYJP@KT!dDNwo1COb{9gfzv3)(f zS(z!Q0}YZSUdc|V7N^c6JIttBmqHWCbj`)Kb^qoT|0gNSajot}6(4aoo4xFZI^Xm! z78Cizfk_5xYR%9d5vI%~@06C>==hQ@jwQb;r4P@cz_mafBOBuA}DfqL7Xsxz4TZXy&`zd*lGP$s2be~-CJr%eg*p!s6kzb zN`QiE63>0|%A3E%kd}1*#ooGiSZ)m86lZT_6_2Tx?flUsdaC5r|6uPuquRQ*y>Ak? z7+iueU{g#?HKK)XVZgEJMPNWeAX-dEATYf{?8F!Z2m=@q9Ua5KEi2*V^o|*4%T=`TM8g#yW8Z{!eq-mVBvt z5u&&@98q^-2I`v(74;1|ebJmUQW4%40K9gQC&=NTq*Bj(T{$#Tk9>l_)XdzO#}(r| z*rJ6%pk}Lq3Ye{0Zsv($W60v}8`*U2?2WSJeo0s*RW=o0%Kp?a`f8b$R>Eq5-q`D{ zlb|LK#R)~#x&rX>8spQ#Z^JGIodeD3JcsX^IHJ6VI5;j{@zaKwps3c5M@CEE<$P{t z%WV^FU&l9ArAp{&Z#vomx)Qpr+!&X(_$#iqefOI@q@h>}reR%D%Q6xx#v3>9J(aef zy;*~wPWHH}ErnQs$eA@hl$(%`S!XMfV&z^JF`uK>?ed_G-d7S(e0@IM zH%ZT9B*SLxoLw1^Pa$kT=^GhtKPWyrje#f*zyst-Y2e-JzWt&G!Lx8AHTiC6ta@3G z<<2{5&pnU5lqGL#`WWjpxCZtVo6&1cu-RhfR%PTkDthC)l_XeS1jU4AmP^V5q}1^R zG7E-#5C}>u6#{c6*me{;hhL&(VYa{)9~xY;E`bA8Bl;d!YA~|4VN!;@GZx|2X5Ic?)v%-I6a9HZrju>DY}Z%}qNwPUX*6kcmeYhO`nWK6G9A`1tG22X`$tz0qnEj(*3Lt83ID( z-&NcBc?WLnkNfmBSR1~1FIc4CR!h4wA%v%p?~4+dIllQU;g(q^0!d{LClFz0Rxm$o z=jHVwp{o5dByhx5fURaI`2L*M{q(MM1(u?%9CtFH!IUjdbJHi z(?AJH#ePA0vT(KzZj0_m2wYob0q15sMov0XVjV}SAM@Atb+VJ)mp49rv~AyWfRpCF z^{_2v4%?>C>0q6-c~eqzO}pwnmmuR>6=KAbu9LkvGq0BEq=CxiVE?5XacJj#&Wu?F zUhl99WSqNFDWcYMwSWgQ;0;@y6?|+arHV_GWX2=S#_g`|gJ77|UF{m>{HY{|Ux~&q zrlya4nrVi4RwJly>V+2d7DWMHn#fBLss;ib6_nAq#qX`_gousp;c3fJ$-}`_)dJ^9 zDNwNL7O4U*-?fCd3U;W2SRRt-s7j9lr`{baAgv&q?;|cdewy<{+24K+Xp5D5if;Z~ zc)I_hWlO#JsMJFs4EN>}iBCk(SN`&J&b;P;!rhIlpm6d;WZF@1MIm{}Zo~eX3;^!o zYB&**z>7;V0B(FpwQ`pqPyydXLykc5Ss>IVmTv0KR<1~nQ>|6P&2^aeym0s~f%?s& zSwpVR&k0Qk-<2HTjYhs_%MbFGCIb<*i@`Uwh%{e(?@|Mm%-2#npjTQv@1xk!77)BE zQ?1x2D>RyLoh;!EG_#;77lb-XD~lv5R)i1OCE5E&-a6w=q&RJmc&P1uNDarL>WsXb z4DMdp?T$BrKWU1r(5Hrktv~`8^suM(K{yYQ2(tFPnquX z?_$r)wqDaBK)}nej~yk!`hh&3zeK4^`kh$OyU8RmjmD4F^VUb_wG2Y*UFk79Z-w33 zsgK&42UVE+hF$IBH?hvi>p?YJFxv zoU?bt!1cL9E4L}#8O6zoxu&{nziosq7WKY@(ib+!?U&^0Y?+UrrIkH9n;S-?H_Zj7lv~wKQl}d>d=s{N3Hz5Zb)FFNtnA+5-nb|hA7P-UBPa?dn0hh}zl_rr z1;*Cfni@ozCz*{) zB6ZLEC}(VO`Z-GG0S%5G0b#pb+i)%U-cYa^cx>xD)Z$Fx?StX-N&bpC4uMUeu zXOzKh-Pw{TX`IQ}Vi$A@=!k!)-9=h&p}Tns-vV{zhiB31z-sub@E=oM$PayP4il=(wD)0q<%uCPK9| z!Hg)xo_-O|);>sq|J|FzUK0BPjIhoWMg=QCkashQx?5uK6S)A$r+i2+eGJ`~c$P-q9>P|nqsiM;%?<*RjF9m8j zPQu|P58F8vc5KHUH6Kgw_-pkZ(xS?)vekUAYIvNQcC{X>xWA`3AVTg%?R(RDGG=v5 zXMjw2nU96;tmH-{nj1UVgF`5*5}eh2zx3WsS_(W3R$!f=!vgd8{0ncGcQ>pxp?7yE0;fvNd_yUNJOdBp{2W|9C@;yCOEV=TB|27 zog^s3rjT|~BUB;WT`15n8(&sxlo#CX_d4XITe!X|tTxjG(eQa>AhlXAc?DbjshJml z8U&U&RP)jbDfq}ILmE^Z@b;F!d(uqevs-`bT1M)nRt+FILlyBCzTOz%g;*C`v_1&W zo8uR1nPv)@RxiV!4}q>zUkyDnIv1eDeOGdW0!!gfD@P`D_fqa}t~cGH7J8TlPm+%9JnPp%E76pBtRo z?23Qd^aMOQ^}4!)kQ!p$fNxokwCZqPkG6Tg^27`kPIwlTvHqmkPM12i0(n&{Y&xQj zfA&p|UtAupvu97V1G5l%jbs7CB@Rc7OjgmR)>1Mf0sY1IGj_&MO!rEAg?&>c^q75h zM1)%txH~)z*Q+I4GX_>2Qnh0wr%9IhFzYQ6XblC%0Kxml7}Z!2(xdswrv{G+sJt3k zx~CEV*MqfR71|SRmlIRhH4qE64HvU=J>eVqkaa&-5O}1%`rkAU}_RWKzdjDd(_G+xYGIT0hf)Y1jB=mj9 zPEDz9ina3d8;qhDX2N!EL1lnH);1xV?W#3vnMEx;o^*Cm`z-azbc}|%O9etQ@^J!2 zOu%Y(Pnl}97?vsil!>7O)u3&QW-)r8Jx8MjYSe{VJ0U*v%K;TG7(4*{_aJUF|0=&Qdpzjwe~O_-5y!m;b6y86%}LL6ch2PJa9@`#yU=y znY)gLz_|(LY)6+>jKk{#IY?DUr`Be9Dtoan7-G$qJ_&#jk76s|2F)8(vt7RL*Z74V zend1q(EHI1f_OXBZp5F+^CLF@4mle!yD-enCn&poGh0@yggQ-*fdAqK2ZO&v6S0^yDY4w*Db5TdPa{ zDUQDBBmD*%kSU7@3?6HVm^Fv(D+;BNwLRnU0MTs-_}Ag2fw?6QDkL*0;{@J@m&UFq z*H7HbSf+-y+;k8at*fhd zyyK2KO4gGy#F{BSJMY}pYehHj0vLdI^x`nV->MZMec%a<@6XV2xzH22e!MKzI-)Uy zA8jvAEKN((uG%v`$V7TBI0qVgiL{G3QYY0LRu=SecPB4st6BNX*BmU3Wwp6|$I<;y z7bTE100kx>bIvW;6uk3k7AqoN-Ta3X{SmGqT$Hawo(Nm<3(1ivTfX361dS?1dVa}e zOQzgs=QSYf1Y{Ex)b~DUnTCJ*2IjXXh*^3 zC%^txDr7SM!~DRaBJ`R2gOaheLR^E97b*&mb^a>ppLvrk{TaGWyTAAI-%I~#@96(; z?PqXrwWV?P$)1j9OSK6pUsCBtR$Fp5I(}0|2s>ZI9^_F@g%}iEvX>J1%}9Z248!Vo z4o}bK`$Na&>dEq|W}B*2A=XszyTvruz`NNi#fu#?h%K~*TBt-oQQ=PhFXg|M>y4<5 zDx0qkI*Lk49aht5S-D4%8pqQSrmGq|v~||n@x4Glm}cjV-kK==a-rr?Ytpq3L>J-r zVm!F1Q2q6M23sIuSbe)(%u^ut)~LOc`R7~+`38V5e9Ez#>5=6mj!E^+De`HXif*zl z7hk4)R{v`2G%H!4?tSt#cP~7RkP+*9)LQUO=*r<|KKlCL#P&}dVFPS4hbGXEgH~v> zysJO%tUjq99v)kuBk$1iTnN`+HYOyrCH}VR5hUxKs=jd26h~Jv@$a+xYL#F6K_CU7 z#)@O$iFCncD+q7%tnOIVKuDjfse2z=WRd$m42N6)nK#FD(CKZy_<(~kFI5wNGs6x& zb4P)!nZN7#GY=+VEe@*Vh+#*#z!H1T7nd3!8pj&}8_3c!BL~cNk|O&RL6McGQ4{Xk z;N(#lDbkusK&1r*AnH^DViQ+^%b<-_VEg;WDC=X3c0nytLvUfF%WlK7(iC`|WzDc$VU&C=8Ez_N1WXwI0Pfce?l z8gZ6XgNY@6~Ox4tvv9lFLRhjXf z+fD#SXG!)&d1dYtI}nX*>+?|7LO?Ou>)3tG$lL9NaKtmNHkIAWE^-xQt1+^Th5b?u zuFEYCbv#*A^l<;c>M1m}E<)3B`)JM9zOJb!Q>=E>k(bOYdt`E^F5?@xtBcTK0{U_C z=q>`jLHH2h5AYdV$!XTTOxe$xEIS5FIrrd*T8rH>>lS0fy%zjIhgYO z=2mY#Hs!TimfkRzJP-k_867~z#}g-#<{-MdCnki7&_mO>tp_PnyPv^@m6W$~pfmC} z&=On#mt@Q`1qhJ4;zr2FLcl% z*l|D@B8bKf^(zDgKKKb<%2(*MJ1a>U_Z_PUpaquXdm|clw0c&*d!A%aL9(RyN+etG zCb>@oaQRB2c3e;>G2(FF_dxVunRfiyEl5hNiSD^xU=hrviLEyZA-DVE^XGar;1S{z zVfB1Bob_u~A*uG*I`pNnJdZjp{p_viI@lB_fi(Q~F)?4A?44G0kBHTmpZWn;VMup{ zK53ZI^Lnlb7;eE@3SG7^07C7v%p2Wb=3;=3j7CpqMYocPWPiVkTxGhzS?`mW_?bZ+6^b1_* zoLqzf6KM1`JNA7iC!v|vB6$y4y~`sk3Pd(O0k-IYr-HN?f{H#NLTbf#>gF>J4drbw zGe5f9tYlpq9Wnv$>86URYLGSV%!BpUkTk#HDj+_rBCB+u@=oijwjaO_D=cKpin$5l za!yH@BJJW;*5Nojc{YPpV-d~+8&h=GsQ$94+t)8@YigoQ=j@}rFyGdg6a=;JHORAB z@bT}O>1VI$T*tQ?M4}0)4$Az#=j*c9awOa1Dm)H|xsx8_POxfHfYB{|L9hc4e?vJD+S_j0@;}CoWlC-C0XVTmge0Q z6VD(@S@tb}KZHVQ%Gr`fIG-RjjO$@Iyc52)wnveA8(o%>K(3!$#j&QuAVk!S8;Rm5 zHm9B!7#<#O)LsGQ6T4H8d3-%9+jK8#^7O@>v9$}gOFI-^52!{H1{7$!YHju{1iJ@k zezeVyfDXwIb)V&uAbh5rd2w4s=p}c~NrBh+`2w-vw6a;5RgBmgIrefS{Mt&lpFF;NvU_4AEa>*Y~7&AaJ}11N!2 z%e&m`0VMp}8b}XOcl?m>HOz*MLeMhxS{{ z_yYZ-RL}Uf3O5n$hJ@3YQV)$m`-Y5Ofdz^yiAjD*LU z8UNT%YQ?J!a@-2U{4+Nguk9%>&wlKQ>%r3B@fU}G>0xV!|A|@FI#$^H@nm+=KI2I3 zfcV3OpIHB-IgW1<4F-=Jzg(@ioc_CX*u5Qvs^oo_d%>r ze+Eo1`MmQo=;LxajBO2X`kkYub*6kZ`2N1j;{ED+j&Q*qk-@(+%R^ncs+8 zN6J8|rzGsjEQFj4YZ-^ zySpa!R)<)65JYcz0q{W4Ti5McQjv!W*`Vx(q(fABSG8%3#^I!A@zX@vkzKRowBQQw zIfLK;QKNaErAifZYL1(47%gopxMpSp>=2BI3x^}NcT@bV#9y}XH@boi{De|`2lRAj zgO=jU9$ohKQ~K%iqbb5(SHU^*v-~t^iKtCiZZ$QEL4*B1PL(GV*n`6_LLd;W?{GT8 zA)Sh>?GDyDlHqS-E9*~ikdgf0n*1>p+m=`jY|2eoG&6SnA))updW=nnen+RE1p&^^ zF<`IOGIbW&`Z+#j2w@766BZ(qJN|33n6peSF`(EgQx=PWG@5l7xhVO`JEnIQv(iH zzLo# z|F8b&c@g9>z27`CJCwrw~^`EUL2{rA~|ckOK9%Yz|+L;yWk? zqQ1NOssud;8aF%QM(c;%g>cXHklr9#FyB$IoC@i4D9G;P^NL{ICOHpV(IVgdCsoOF z4s`dTaPF&*&a&6w9p?EulmxN`rcQz04OG}7YsIai809h2O;HdsivU#3$b{FqEfiq( zXu}rvqJ}c7x3LM;N?_OF;>i@3)V`43oj(EE{t=gavADCltC4QsHX=Gge^D~TJQo3 znP>iGg!2D>w&)KWcLjdpI4{4P=)zB_C-Ub8(48P>H0sN7#VA`b4?)+D-nmFju8#}Z zd{q^{sH^nT>nzlJ(pE)ralK`)j+4n{kjk3PVw~sjS}L1LmfeKD?_97hCntAVmK|a- zY&AOCFgsNbJo@2}n}&nqMpGhhhtlEs$?d)XdSsDng0dG; z#h==iCJGQ6W{VzN6GN*{#dsg~{VFNxLcEwX!*8=jtO?U#X>m?Q=1Jds>NPQaVsP~; zgtq?v?fc#r2=YRN7Z$s+I$u)q?Cy8ZF0-)qW?on5=}(M<3FZY^@?}ZHx)yyvuC~i14(#Zc&886~m~y zW^jDBCNARX&7%uwgmtI=RHPjOFl~DVYiIqYj%Wz!T1*zHDuCIb=w7BoOMi>^ z%db9Y{PvHHas2N}X8e;5{^h3MKA3Ns?we}3eSmSk01wryz<|(%CP0hw7ki=sV6z%0 z$@EA9?Tetc4~@ILad*7eHzHR7kHHL7fDdM=Qc5)hG`gxg6^#y^<)md#UAPvI7#V6B zV$KqgE=bEr7?2ZwgFWl5bX+z%=W6o{31rSs@!4Rd8C0t1CQNBz5-2k0DD2UrlaN&Y ztZ*lMjF>iRL~5J?v!OzJwiEyfVOy!fk@aLK2GPGtm$ z#bL1bpPkU%DyYaujc8S64mgYLs!{h$hB4?Ga{G)-RF1tufW-C7x&}U- zG3Ws^@86Q<^a4cJ+w#q&Q%g#p#bpQpte@zZ3pyvW1$s%?YDrdq_-$mZjZ}GkZ>pnr z0bB0j`R!B~?&S{y^72Hw3=a z?rb4R{y!f6OTGr4h`n|PFY77?3r@1OIzUz2%!eJyQw2DZ`_<) zUzmtVH+8t`=hc$@s_jTQ{`D6(t*TqyDIUJYbRJ73O4~m^hJTC@VNvthA^(2(|2@q8 zG3@`p9nim47K@Dy6ojB8Ske_o)A;m5xl9BbD3Ck6f?Iw<>>@ZE9GuzK>^M5W3;*1- zGZHRCG)|PUTL_`9_TNI{2y>3S`k%K8H>+&0iibwh(h`^~_pDtWkcE^`TGysbZfj*) zw1@$V0ebVM+5Fy&i<5MGeD3xj9@tx>;2N^rDB(Wkh*@*};ljNi{x->v_tfG z6-Sm-L&Qge5pxkE&3E0s?G_-`YmLMyQNYIY5@j6=E`ao+Yn3rI@>Zu<_7ct)iOfaw zYNy{a9hnNaq?mY1Mo>PaJusil#C{P^=)w0~XAyW zILWVWJ3U?4Pr~w7l=@vJ&x&r(+@XitGn$}PBY_6K_-?Drm%no;|Ea+9XvFfZj>%1Fxac{QZeic=u^gG93dman_0>~EBqkng% zE$FAeJ^cUuVBpi0T!4mtz&k0OP z%aIQhUWMLSMnEnPP#LW)Kj!5FaK7wQ)nO*N-j>*4^f3=va4AKz$?Qn4lzOSY=WwsY zygZ@LK-7>y_h3UGIeinhmk#6!+{WY0{`CRzPAWczQzkOQ$u8(yxHMn(N-b|=tdYrA zs@Z#Gl2UIj43w4Sqw-;thOA59Dvp?lO(%Qbpfc=nExNj(eZ_jBfl;Ol6{y;hLCjB^ z=XWxl#0;lt^FluSjXhoGQKX>FFS(LP5qG0y6;x%M7m?}R>JuH5*q5T{=@pXjTSx+mpa#|8 zod~nf@qf}_!lqm1iXymyCLYg}tv=(~;7Koq>()7LK0MUw5a>zW^oi0089;ruxjyj$jXWMR_RCj!ex^! zBYrpCr+)fvK1*WhKy%ps6W6Kc_-m9;oiygw1T;2nW(k`WdKl%Zds1F3(=DxdDWp-d z-jYVOv~y-L?Mwu;^&cX01D@c@RysEJMFT&=*N}~(bnC!w;I4b`nPrfbxve=bn-`UR zaeP8FmCbrv3-Cp;+3W!Mqk@Om{`+|FU%#CZOm!@LGwEKh4U_Ee0oX8^Qy^hI6MEd8 zh)&UB`+Ynt7abbllei#G$nJiOt+itk$%%yORlCR(p|oL@JIvSeSC*Cn9QixOVnPXU zy!Cy-Jw7DN<*x3e7!LX&gL-N2#aZ&`{rcH}Mg~Ao&x`bM$A?C{;*`eN|LAQMs>RGv z#o$^W%GdWr=+Pf%fh48F0?KB}IGP&c9jGvX!xwBVhk%eo?BU*xWOcx;>zBiKv=DxXi zDV~GlJU?%*TthN1WT0R8;qU`Ht?Q6$s+gYAgz2kk5_*uJD9^oOG*7TIPPER=+Hv&0 zi^@02y8V^)yTQdmZF1m!nUe{UY7iA|#{7tRmV>vQXN9HXQZ21N0by*&7)sa7qlmJK z_o>Jt_laD~PQ8Uaiw1&Bl^O~jHYe9L6GCRdY&DLlrT*;bdQ231&*l191E7M%u0Xg-nF_p_j^vd7Y=dGmv@i&n~)U zSa%Br0&P&ww~l{t6b~KBsnC=3xMMmgMyP&TxJogx_ui;9q$S&+=)Rk^fn-1A;gQgorqy?&usrL00hSgL4R8=6Uc9Dd$2Hvv zY_^)|EY79re`*NJL^NSwLwO%~v+m&SY9$5(aH^5Wxn z7&c2{dHu+RE&FFr2sUG{#je!=A1>U;trRb5Q=DAO{%8WVFhV3&ViB^Q2RAtZ{@w3z zImLpFY%#*;_-epfVp#OUj^~RNxEou6b8*}d6s=D7c<{ophGeE(!3Ecd_y0-B-W{*r4 z>40BNVXFK$TV1b*t!H~N%L&!h#}hX>ODskVcYI7li9K{JNY5C~uSTS0>XuN7#n{gP zckZMqX(By-rL-QpyNfq5@hNBL9|fCYg^=y3N2&yNrU5EsN{DPy}F82h6%#nGgM5z@tm7cUxWdzCyOn9=)BJ-A`lrZ=&A`#vaXr=%MPi zt;0L-8|l70I$dQ`*!>{X~Z+^l~Z#)kSfByFOD;eAzQ5#^0#>nzauINc)EK5 z)gMM)P(#Y>W@AZUet|INss|h(US&uP6pF|Ek(&NlXZ+qjp85aWlJ#HAF;mn3vYO8v zifwi3+{p-=b%uU-rstnJw7L0G3JyX)i99K7;PzxYr88r{+UE>iadHvd=sXzCP(Z}Q z)?zu%d;iPc|3ClXJa(*;4z;!+pgCC~T0TJ&=a$x05_s=f<{@A0Ov5qA<-R?j)nSza zOReff{oLKfnO&oo4g?E!c-7QVSyoFsUyXcHtje5(oM*wF87!JC8MWM_8} zLe7Z1s84>jAJMsyC@0ZDCe)6#yZS&-s}>@BYu>O$s7?*~7GtW~XK%=A#WBaq>iq*= z%I3_9xKGuT@Jo9qwg$(_9!Z)n_~)nW>o#!Z`UH^orlfR=+s>1zYCG3ZPD8*=@T=_x zhSh@mv6c&Wm@6Ex`EJL0Bfil$-rEP(w=A56wFkzt0vIt4QO`K1Q(8jH#~MM^YB1ui zxebnZt=~a^98lyE5_CCgM9NA8U17MlUD!}t1jtVQp??!AI`)WeX*2(9USRhnq?=bW zDF=^M_d(LPLwXt&BxG=(1RX|BF7F-r*E0n5?!i6p0Nk7{hI^=H{MC0RsgbGSq>-%# zTqDUUW7baXVv5Uz+~}R^2Xfc3e)2 z8jLP!TiRLtGW&dd*HLSh)t*T?Y~5t(K?5P}@5P)B8q^$xzl1?E)f&2YvVOjrId@|t zJOwhxhG8}mAPgrb^RX6r?Tdn9QJ&Lu$pIH=T6y~J&7UtFR(r4e^Xa?_`emRxxARV? zl@u~vsA+7-O0M;89Sn0vtUQ9$JZf-{chDgl6<87=R_8zlB|pVQpfPu~m4AT;6Zg86 z>~>SBb(-PmE5u(@uVuNX&7b)WT6OJ$lwf}U@K%Fh`@*cZTePr>m3lY7e2>cMGxFNL z>WKN6iGV3~!S+UHvA9DjPpIfdJlN{TFtnuMF_}viMA4Y(wQ_?t_al?>6dfUW6Sr~< zJPGbs?bp&3Y^E)=NSipGSx%Dai1rPnO^y9JzLxD>M)7+!yRF;33db{jcMgP9c_WOQe!+Vgw1HHR zgvp1A5O2t>_SEF%R&`OIymL;48la%}MZd}4MQDMZk^B56^nDqsCqp!Byusya_Y5)8X z=)2JfT+g)f`NCf@l?g*&zUDNCtKs!5eLA_BMz%$m4-LWf9JSB`<-LP9l#o{(^bea`E1vbHwE{* z*3aNEC89+$9QL6t*JHtpkfkP&1HHE)pLg|zGJ$^lWuZj^5yoVCCC$tA$VQMbG`g~Jo-Og0g^ha2x-={&r+f7iN@EV4z;h26)8d3Y!GFTsY+=q0#of<^dR4dnH%&Aj^ei$zJy#f@S^~L z1T4!fYq&VwBiKu9I&}kyohu4}n2V;9OU9fZ3*PhKxq88v86hOX})rpvT)wDnp&-=7KIr$>JLwWnF)xj~%97x)u9k2!5VF{N09m&=ZH1 zg)$Z_ha!awOOsmnP9>U8Qnl;tC&b4IRe_w6BQq0b@ z+rg2;jsBv5N)<-XlJbioSS4MMM{!-gep&(856Z|#Kk)_HnT_8LHXUk^;r_84B?X+m zrPj0g3b&)nywnKVN?IKJgfy9-%gFMQC@<-fSy^372&?n{Se}*I8Y7_xRfSl&LcqGZ z1w|{nrF)a~X#}-FLe7pMmZy0W!C>>G-gn>@unY*pKJv8X{N{p=kESOf*xe2NscdXO zV7@epG;WqVZ$lLCQMVYgcP|g(e_mGc;`yslUASd~-d&SnPw2-&~_~M$3SFJ9n@JZmwrTJ7WR5EznrkTuKzCkP7 zBx?$8zB8d;cE`cZt~>~pmTer&D#=6{X&Tu#;_K^Ec_HCNEUrr3%k0QCa-^9>NY}>B z7$-bJ#@hq?Otri$foN7Ld`T9n%G{8WK|3_s)nq4B`DnuRf<1QhKCP<_@Z<>qumlZA zIAvy=A|oYC?y1aY}sjr4kHj z($f`RUj-pui2?^bX(l9e)5-dZIpNgB^Yx_*R||jpzE|xgB6Z|}XNj9SY+)3XiWER0*o{+X~w3k^0zK zcFsjI7Uwce6$LLZU3!*%ui5Qg22iv-e>Iv|Pq^ngAwnw!kBGw;;G%d7UaO2FVL=$P z&G$5RF=HUGpAa15jpp)HzNlE+=}X(|y5lYXhE`p)f{H{(j`}3y8mWf6))igxRKMi; zCtuRlE>)9h8QPpvnLlqs;m`FTlT!3z7dMrVZ#2di(}TRn(~ZuAIvVe$tb#SJ)NpsQ zs&6RuvznMIPsGn5H?tKvaE4B!S zGNx;D#^(to8$kM&aO~K^9Fm3AZcz~$s_EAf&YO9Ab9XMisd@Bd-ULD$vEJ>|kB#cA z-pv*CSI&OY00}Qhx_7nq!B1ZNd(_}cKMTeseUrK3RN@?5G_0#JT2LBI$SaHSZgaDF@iW*Puzu*4 z2_1rfKoF2~W%kX&h-$+U#623(J3Yr98IQsC^Iq})WDZ`DuBEJAX<0HOP#tl|wTW`q zS36rq`l~cAm%tE|elagrlui9K2v|y_K_ek8CtidqhS%YtOtR)Hw4#4Qv#X^lY;S|6 z2b#p?6cwEo^Br^Xq{#;GPu97M?`aR@MYYZh_{eZU7sHP97yVM&7iW9>T5ic&Dp~K0 zM~;G_pYBS?ejr9vFwMGw`>r_7aaM@)rZ*Lv?i>8p1>I6>ahn zE-qbwRSjKN^=|Jf?^0d0DO!gHGQk~nE)tHJLDJijwsERL`AYJu)zWnyqsMBv%G-pB zH*c*ZA(vG4;|7+EgzfzmZ3XQ+0VHmLMRQ)BSinY!%;7yRB5(X+l~>$FBfW@bTNzL1 zSjPkL$dcz>g>s|M` z^v*e;iU?^_%#YZQuBi{M_V}b0;VO{0MQcE#8$<_x8B}_5YiIe}XYVt6pW3Z_21G(+ zA;HGWMl_n*`Dz1I%x;268;Y@}3t>QmX9H52HE646F8-PI-WfN&EbRaQmQQ5VIODWNhqqe^Uk;fSc(=fTv^o9n~{=Hvze;9*4%?{ARM)- zI9xwn_1lPR{_=np`o3A1CK65=sPX-_Q*@ptVcU~-C7h46J~`=;*u8-7EZTv5Qaxrtd+D!B&6o z#1)GX9*v$rp<-cE_Iqr=XS)Zcg%A&F_I)KrLZQT1(hwGvyhnS zCJ@VhXN$~Um10RGOM0<7-MsSp1Nl3@Ugsfj6tVgYT zOietQ|0%a{Kd)fxaLaU}-K}(P{4J+#DCfj(uOMz8z7}hubi}}JBHSqNovh3j91*Fn zHUk|_-E^HkUzQ>dPpY(XlZRBX=H{+NF1+_k4>Ei=w{RP{R)X=p{0DN8+$cln3p4h%QNcj>p>bLFt;CGIX#cCGG6`itmT! zPxaP*sWEM+sJRV-M52NaidM}^YeuzxVx|_nh1RlIOG5 z%Cml1>-YSg=lKrrT(bd(+J78b3eAM|bpfuT7(K-cN`L@<$S5K$=!)w%ed_&5v#h@S z7Uc0b`J<5{;)7KQFi5AC<#TOaj9fVKlLsfnjp+-Ow#PaJ|F~FQP8&zRX&f2qzPaT= zGugtWXfYte4OK1xbLG`pQwXSAH+?$H0I;K6wDf>h`%6UuNUPsE zsZ1T}=bdpe?yC^2ZYr+^q#0+t4No%?AV;%W8&qzaV?2lHDj9vKoT@4hHFWgCWlG4^ zmKkKxPT+tTgxsE+PPPkrIZ2!X^7tWB)?yBf_kdTxf`#j3W=r^7b6&G7Nr6LM z?4c+dZqGg9RMK9+NuW7x13run_4&!XA*0X zk!d;|5@7;?upQ4ZbZnP-Ag<<+M~ zoDrwme;e5b8S{P0@xHj60I71LVX$FIH%!l)>~VXMl)qsLfy~#&qS!SjVL!Wt5{&S`#J7RNglPW1;3Y?tgf5HdVLcZlr8Z=!1T34%9VNm%}U~RlQYc9MFMLK4Tjvt zJo9f(6H6XfG^s55Q^U_BI+;EPHg~)?p(N7n)6zy5j|`I$7EC(5xCVN%7XOVZ>*Z4nOUqFi<27*o?4AUc%Tqx z6;|%Tig)w?tydz$3Bv{HhO(MJ|7>}?8lP8gNN~)Q#~LQa_%0B$x$GWk(TC$={hiXz zE4WqO$b=k!{pB>R*Ry+=d8l(oYF7;`<{t;?JtxWmux6BlFND4{eVZiaqG$v!(l{b8 zn-Fi;e5u!rbSIK5sam>%NkrdXDm#VCDnWDuZcNGHC_tPTN6`qUcjZ86!dEgZ>ueFJ z+cl=rinO0C{cw-LP1}H4as+~P{X<*~R(WAxfsTGrlTo5w1%^*uZA4a5(x&g#_ygU`Lz$2E|uJRAReRoPs-+r15Ty_PD!c)Gpj{s)f zcC~CgM{KmgpZWcCTuzJ^2m}%+dNp|+?BYuT7+hy(o9PJyO?b)&zZldLZUBAB{V5aS zVD-|!R%=4GUpDL~)i`iUJ9c8fMt2<-zCrAN$qt@&S8dpri-6_pw?E_`gf~`Sc(tWo z#1W^s?|KoT4%Wd~3-z!u!^?4af+ASX9>>v(nPj5g6M}=|E$wx|dZwY0XNk*2VPY<| zlkZ8f;wT?A*1o?@ka_!ZxJ`YSf3z}Cx?s*$!jG3vpNkHKEbg&Wmx;dFEi|tEKrTXO zF`X9yNfF+^-bObTvy;WhhSdTwPt&dBL22;U_dLekwMtUJ5f)DTRdKl1p2iobuL zJ#^ONCJQ3>QCRBpM^J={z=_L($X)EmFdflavE~la5GEXtw^DGX!BslD3O&r%yRSUh zzwG%Ioy*dcnDZkQ*&HZ7I$f8iiCqdPcdF3fqf>@oR(7yxMDtclam9wj72s@0gei&? z1zOam8>!Hjx{M~(#7mz{^Zc&^9rie(JKq=TLv+KLnif<6R$}Q)a&l#Z(eT5Ejp0?p za-97yLPlwzpVu{gi|1Wmq2t_Qf~JVrHR7jNx@ZN-w_j6DbU%5?2G)aM)OXXPW$uDX>BN#vb>>Q&1> zT8Ww=^#`S;xmsVAw0h@4`oUVcYc}KTR&|zFFgY^o4g}GWLZdD{zEt>qpV#2}UiYG| zL3tfMtwSQejD_Fjtu`8ekD*EVG(gHzh7Hb8W(B0S9h7X>&lI%5tIhS#St%54N%PJ3 zR+kyFDr)=leimS62~~|KI{f???13V4Shv*uE(Jis%8v9_IKGEh>U6eSpxIc z5O1EElu5JF)%0+WA$d5?lldD``En zjD!U&&!@Z&vgsKM1AY{!doj&rH(c(Khcm7;I%zoaUPuth^jX+X0XfRicU#Q{V2USB zRS1?%WTqPe4xtpdbj^oF3BKYde45ACot5zk_|GEZ`Pj+4SvCcTx~7(Y@SqyBc+lB3z#%zR5NJc!?Nt+?z(4B8ZfeznO#FpGvD%D5 zFDiA^&)Zrj!d75zl*NT<)-~}R1a7+9djlLh+e&jw*k!RN9fJUHhA@&QE4vG14B_WU zPgouwv8B3XQoWk$0~>}%9V{)wu;<y>a?6FzP@etia@)7we{kwLHMR2(a-=@L zDLHT_Upx35e{R@mCN9PKFDH~5|LoNNA{yPFb>*M2P1N8Ir2wUrf~gOUV{3=bZOXt; z?C?JxWWJJqXEiGn1$_1=J^!y`m;Fg+{wbUOn<6{@DP#G6b?W=UKgf`&ZvUPex}m>+ z-aEKjTHCcR!Vo$O`ZrMRe?Iwd0vBpMf5={d+OF@Po(jJ@m|hcu-uzr zrT>}V6hi*Mkc0k~91QEut&OdJmM_v9&+ZZ0$p6cq-1~nWGW<_E^Uv4x&A*RZZV&%s zYG6M4B6Pd$-jeEiYllFf<-xzoJp7;CmsLA=bz|*~@mp(*?9k>HA@zgrR!^$~_uNw@8>g?+30LS9e)R)`at_0So z-2Y}y@6TfKUnMK_XMOo+Z2MZ({)7INzYSbptJ=SFi2viz_1_4u{CAGRKj?B_tJ;51 zV1@oRaDA<6|DG}aZ(P-0?KY@FwX6!v$eKt3Vf4d$$ARf+1;_*5TF$X}8x4t1*N-F( zI|a~tD;(>q@1@jhX@o&cpT@Zb)x1Or5I@L+1VWZ!pR)4f@_e%pDaScnRpGc{8mzfqs3}i(Ds(Co`2>0#**v>#cr3HK#GoG7v;>s#yucgs_I5g!VXnzluQpd$ ztPq$`AJoY?bk*rz1bkvQ7|}P~YiIMkvnQ^cZknuzONyTa6E<=JS(V}Zzz z;dA?TNlpAiKi_wgS;rzm8~6_>CAIcYrq+)Og?%ZVa+CA*I8BL^wUE3~AP%B;-Tmhg zO~>u5$mCq^_?uzP4^N&))3;djTLns;FS2J4fge^5_M(oLVCPigx??X?JaMMnR}uG_ z&K=!y0G{~PfY!~$yqu7lbrqAE!>sfg5c#**g{3a^ciz{^>+MR#ewM$3q@D5Vzu&rG z*2A;qP|rmqWJ88)$SjMGa%fOuKYh(MM)9ib1ZT@yk}(G2R8n$7Xk z@^76Cb0b3bcsN~K|GkL0%b#C=5juG7Q~X89N$}w>Hn&`c3a%@P)EL+_{03kZp*&~6 zLFl>tvkgwZtN6WTKJpw46BgD=^fAzaz8s$kc^s215sDHRNOW6M?+>_jq9hKrjZR@w zmKPv`g5$%CK#0QNRF?@bEAPAjrkokZXS07{MXFcMZZ+haiB?9( z1$S$qDQcdfv7!!kCX0`76%_Pz1@4o@gd5MfYn8NuJ1Ow&7;}2p1WZDbeKE(P7^X&Y z%KqE=iS8os2cgLwnCtiauz`x3fm?z-Ug^td)8EF@>+^L^GNY%;bVe_Y4bN}ycZ7-6 zAl&`$Vfk{TQjdEcaY$JKXu%`(Jh+e4(8>gH!=5lXBp+fzzz=PA zhDOc03GZ9TvwIeKa5;m&c9M+fyQR)xCD z6GDU(H`7_nzc^<7@^pkbU|av7&RORry13i^@_Dy+3jkeni`1t(oH!ipesXTXquhQf zScnDK>!2IKpT23x_YbABRg8|u>EN5i!rC8u=2_-_$YSKm0-DVxW!RIk&SQ&D%KP0I zGn-TI96#^1xM6A@Xd$Ko$=N-XZO6iRX1%X&D=GuRk=ZbuZ&^vbW1aPt<5Bnc-)%&$ zy{z@6!T{k0LD&hz4Hm+|mNB&6oM6jeMm|d&yujDTxunoG*?~aAU!5_&sw{5Xp(YNB zc9c2Hyy0}jfpShvWx?ez0b&e}Ha}95^ZOl_wDzaUsR&O$qJ14XBmo8(RA^UT5rw*E z*W=NN);=Wasp5jL?}rVl5D5TNZK##7NAvFm3yx;rR zlZ*3yAC?eD+9onj3h5=E<_Mxp$^ftBK>x zj5E3+Y)=CSd_7Gtvb*-6ytu=pw?TyZn_!+g#2(~e-?6)p2MeO<3--H0vSX8zQ%NwT zR~HsmqQ9A~<6W%AH(3ubHjFcyegOZvbUxNLG!SJ#6418unw2pa+4A8eIoUo9Je=i# z2%V8_>sZV*t!%Ih@bJfw%D*iGg6*b(I00s^HY<<1m?f-jAh{3z^-kmR?Hj%gOr*M$ zQogCR`O#&?tR}y~HyIf)gK(=Y$b@i|Y(PwKoNb-!dzSZ3nx~hNTVCFgaTSevouF>D zD+B0~oK&S*GuiceT^xLcDe4xchDY(u-8!Vofm_7l%Of${u;Z-fpwL=NjQPmx!FwLT zojNOJp&90ko=kI5=d>m{207eL-X(WFec-(x`j;xwBkMADzd43XEQ`N5ix)RqWT|BL zjD~CjnGk~j67b22^X9g2B;85*`3X`q_S4yf)UjJ7sY`ed(H*f=)`D`_rbZtg$e^F* zG*7M~Wc{0zAFnifNvcs>t&YSg_f{WEsXF-lsFJQ*1c4H&zqNBZBf#-Cbh(9?azZDd z07caiisUT$2dRY5p;a|@5f$xgI)I?k)PAH%9U7uluV;cTDSS<6?kR9+D9%YVC_1Ws z>po9C=rzpO1>~LJqOQzlry(Avd6CLRt~p&uYa#&j9iKAwCiK7=PTJsaHLN$SiD+Qv zKv;QM3d^r(!Si><_rUXNoz2|i47uKlavgzDC8ADiJIp_03wVp@|bxg|8OturAz;{d&4&gz#xVx zP-iPkZc0un(@6NGyCG#8I5Y@`?1{`s4+a$sprr54>t0?S4pO_02sp_MyMlPXz7-(g z$|30o$egXC4ov<-6SyMH>DjMyQk_`1Cb*{xq_w1G%G*{xjkJTOlc*VMel-B!rSj}Z z2T6K}z?`m%6PFX>;v8)~5AB~LyfDrRG@2WsANnE`pW6UAC;ilX0&$_BZPVuVBrK?0 zi}}2z`MhWfe7pbAHOhy57_o0dQqvjR!I2rZfcHucD)`f?ncKiA$v*1T-`GmrHqk!J#rMFOWG&MHow#K;0Teh4|Cto}By|83B z$$eWo@x>_u{;ho`=rx`4;KTUmu9-8Iic;5i@tG3uIzwdoLy>u<%->6mii%IJ9S~o#mKt6+RF(q*IX`h|)1dilgTGK4JCXjvrsWtu-XZEt<$x|<4 z%dP^zr?Fpp!XNQD#@E-Y!fZ7?B)g~0-1w~T+@*)D)rgQdg{sjjQ6G*X%>9c9gp_O? zq)Z+h%;-ObP3%j}Cn$%QLKzbHPXs03j6k!~=pUNW)bQV%5V_(F~j&?H|fD98#NCmVA0MJ6&F@fc{!RQKY0bLWDJ{d|)K2~bV zkd<#HlcOM2O*3`ifT$rXmq0c85Qx+_{wB#1a&Kbec9^{|so6xJ;k}v_&pYu&Xyu2L zFG5>_f^6~oF0py-WRq#AqAKT!=!Vy}{(Drx-jQWQAq_hPXt(r-sFJYI_HILyBonY- zzRH0 z0pU&dPHJHh`DwGB^2bh877n%VI**StL$XhI2*w)I*-?n=;~yVBEWoFvq)$GHS{XYc z-Es)Pnt+KxWISw&iXsa;dfhRy^#iVDVq&L0ocw!E0snTbzt8doO2YV_1LlZTvdfsW zuP^!+jIs*yjQ=v1{3_H%9&Ex{be(8>{Ag=L>gwJXq0i9xe-pzc3Q4N|tt)@OPpAC` zQ}J_Y&MWofE6BY(YT;|3e<@zStTN+3<>8p+1%F$sR#-!(hS9F%eOXLFFFzPy>h;~R z3B37(#T8a6-mlOL!(+p$cm%o~5Yuq2#0Mi++ zJw0SvPARM93EbjoLrxcm=Z%cxADW(=4Os2Bk0OEd2Q9NG0?M(m8}ueMYTXU{!OdEKw;5>eS6f)m!8MH{ni%5C8qBEbUDAi zul2)@KyCRlxrNsW8jXKjT=eGcRDk+z*K$mM>EwyKy$PK}+u2$qA>Qx3dL6`}5m>dspsH?{mVNUf6?Zsw3@3!*e}OG4ixOvf*mEESeHGGm0u zd+NGtkQKLWF1u;_WCZRtjg=pn<2GQoC z*pOc6DE7!ckfFA9NiR?`!bu**xP4a+(O{Gnm#ru@9-dy2Za7(6STHvXFVP`CnH`_J zT)DH~N$3Wi+Er!^BcMe}7m6;Fmt?#i?mB4b;v;7?j!KQX1l~aVFkL)d!x|@Qc{XiO zkH!J8U?DnrJGofzPsS?a+BE+hAwvqoqTDF*7O~`InK`9B6$_ zm3n2S?O}^78mw0}-)JqS(V4V0jbTJp4}&}ncrLQ>vaQ!fnNvg}?2Si7mH z>%c$CT=r@xWXeCIC2V-iV-JVOncX>T>F0@8F{RC! zK&2D=nqMKK4cWH_vUFbLrwzAkkFRVDPX+HFCpvmvJ``f%4~r%w?j=GXoRXV)ZVs}t z5dojOKC@hwvhov&$aC&4Hu1_ASWX$rqr|2*%ARwWvcB_AL~p4!i>dn3BKCOocMw^XjYE z7X7Tm!PyTX5fkCOll0algqG@(cHSo%|I`Paqvl>og*9^i7^C>B_UEL}j`hmfSMgSm z`5gs2K!QKehaOj~)9Fvv%(C>Th8MHXuVCo!0tVI z=8I4T=xj>URW~vG;zg?7QvnE)aV`;{_rq8jz!Mqa@DYTChnv;Z$ldN4cQ9%MdD_Md z{T7YBHNptQIPwFSG6z)a#OqvivEz0RPRl4?HNR(;t+N||S!*+*o1{%c(GLRpKd4xn z))u}?^7ZYle#rE!KGAHqzM_G+4MHlbpib)+P$mI@11qaUE(7mN?Z3~R; zBCAE-c6u`~8BonwEqpE$7_uVg{6*+xPsP}}=9xise_Fh7UgDSbwb|qhFWyP2j^zz6PGlF4ah!&w_qM^LvxKx-5VK9Mf+eP zzf!*Fa3ra+9}9psXKp}OnX{EmqP+hk?cn)DNxZ+tuXe@aCIWylT#i!DZ9Q*qHUX~} zzLo}lp^96Z0c0A!`QVK$r824rJ&U+@0%wxZJf`p%97 z=(&_!PD+)4v;)Bqd-5+^2j=7x3)=J=C)b#&jW+zqlfolwV-W)YI8xX$lPrdBlN`9&e~Jf>8BKt)P(1WzL+nsf19LS5Au)j2q@ zs>5F=^EdXLs7{QM9+~FfCNa`d!++3Wx5;>L3!$HTZy{!@m`i)uHbr@8`9d)5AAmyDELVRt=Gwe3}4n4nUO!G-BZ(~ zr{(L0F127*hc6CfhjT(r9Z<&if+ksc>-ipA>MiWI9^!{;>V1?nS=x6KFTUk*s#8Zp z%BH7La*_6}N*QW4B~E2zzXgRC&(^K{q>t3x8pWEMdNn*Zxo5JA>XH>Gi_TyO)w@0F z_qQ~tCGGF!UDs^dR30~Q5wrY@CDTQYUxYdiDk-ikELc70qjuj#??(gt6$$w}a5f_2 zRA7P?ev{{QC&Dkl)_Hu(JfKxYcRYKH8@?3Msm1^%q+0b8#iB}km6qIrQ{Wykhe*U8 z^K~mQYYB`xRr*C}*;}i=WX~{PQ&?EnWa1>n5%=+k>jA1I>j;qcf03T~=cL zqRa4!p^>h6L*1a@fLV;6Aa7=5`!pk}w@H`h2$XEF-j9+XpteMKuP7Uf&idq25#MkW zLVefc-o)`mI|1!wz-kqVv)8vpo0z5u}Bu!q|86%&Y2McNCG*8xO(X$O*{ok%dPP_JoR%J&F$I(|Ob{_=UCyIHq8Zcls$#pN`DZOL5=1qG9XzkRpNMs*9_rskIu@y{{eHc=4UP zDXiq|JfLq%S+g&>)pSE@avk-;kmWWQNH>n$1I$L50q@K-kmH(W;xh4>Z*Wbdlr;*; zQo+2X`d$^9+g0i(c!0n-h<(Zp!YTa>g|fE}Zs0m$^NE5F+0{g%#o4`am5aGrHar{; z?VO4=FBd;>AoLO>O&YuO?#}6@xjFd;W=|a2PQrO)HOt4jFZ=rD%jHd8gzuCTHw!!0 z2)vxcY`Vz4GW?4S#|}*U+;Af3;G-HTfHSg8L#31H}K^E1nQl92Uke9&R z+Q@9=ix>IK%Rc~#QjoZwOK~@Q{fFGcv*YO8y6uTdf}f3vyV&rsp*OL204d9eck-?L zh#UcwcK=cjcIe<61JNzE^(R8?UxREjjVNzXt6L@lDcHa{@RjJHbT0-=GURzMN<}eb z%BQr1L~V5TO#D!>l9h6w_LGPUVguIw%H42M5qg;o^xiAmDWjE%iy~o#DD`WYM@3k} zzC2RiL;qKVj12zSnt^Kq~uRUDc+D`{Om2jZW>VmvdL~%X!g15^~jUmbp)-P|@}d>ZfNg0ExQ+ zVkR46E$1nQ86l&w$~)4P7pv&b_z7#bB&Ws+S64%$S4H6sUG8$r94Wmy4N>NmW@#%U zwcL<`82O482d#m-&+U&Vy)yS-7AdACJ|Xog_srs?r3@%$HTiNmaj$lu>oKc#Z(Ji6 z1>`h?xTYniU6wYfEUk)vPQVTH?+%^Y4?=;@I9yWhv=wke&*R)1G#SZ@JlRR2lR{Qtc zSMR4buQUv`eoAkRPy84W(BL%Bh)@#)Os38`Nq|`L9^j4A%5OjRwqtQPQnfJ<%qdzz zOhY%Nrc%+CRkoyW`FBkdeSkR<&4_iWhyD-LurtU^E}=9bljOtgRd(F1M7cT1sBXy0 zO|-YT5!U6h$*&-^8R*OE)7^_0;KjHL>CLa~btD00b?KH$h{MMQlU|7#8bt26dn9?r zAH~^Axh)LyS~k>0^O%KmLjqE*vhgqWOde0x__Ty@}PF-GIA_BKf7od0&T6+2n= z+{(FPg=dk8x? zm>x1ZS~&r?(O+dRRx1(OO{DPQE|fMFcciq*T@sM~XtSoJ(bMhoKf zR^nQQGl{aR4xW#s7>U0>rlr4JM_;=AB4EgDoacJYWjCfgF~W8+Dc~Y8V42)-Bq~Z7 z!>-mCG1%NY<~4zzy;qd^3UR!B0SL6Z{~{vq!lX_NWDshWDQo1II*X(W9MSx&;6s`d zhkSjiI=1W7k*RJEqI7eHHB9RtJE?=rVK(%A5w#I?Y(Mi|UpAVKxlmjPEl+9E5btS- zK7S2O=R->!*gE^q`aYk!oYmNMdmtVt*3vXNfEc;7&jtJX1%L<&3&`%k`3JlpV|9%+3i!+@htVi@v9h?IsjwAu@Wo7DK#8GBh=F;#k0%n%n zAD3A-IG!b*QeCUzHe@qX%`SMk`GfmO(9n>*WpE3Zxz15rC#-3+Q#y7S!VdbmO)8U5 zaRv&j(E6x`Yim(Rm!kRJtOM_MRZN3&8i_cKZH1TSP%A?D12n*ZAJVob!`-o>ng`|^ zNL6RNv{T8eKtDZatMQQa`>=0Z9OPJzqbdj?qa&C}S5>>SQ?byJ#t4kS_;OqHZZs?F z+-WtZe3MVZhKJ5Rb_=i4>V(M$m?nFiW~znBhc+9c<*$Rxc0d-Z&Ow(`qRZyzNkJhf z+4BA}qvlHizwkFPmyJw`33J!v&jJ7hSOmLrxU1(;MRxr~T5VN?V>()@NLj8Cr>8sl z-L0z5Ae)fWjh4r)S?+(U8KSq5-YGKt3)sAV?C{pcoL{&TaZ&aO+~?aW;@ z>f@1#MTG5x4>~81L$p$7TPH;`D$kwU96;)-#kh;;=6w(?Mh1?myih!Ks(FO)Mzhol~_ z=(r;V(i$Hb80B>}?Y6f7M&fdsZrt)xmS8uZMp(HarHVdwEG@xye)-{N_5g0cT|WXi zw46%)@Y`vx8|Xf*D!zIgqro}T%EAeFO?y5GpP2{n^RqnLWiS|0tiqcnD2gZ=HAr++ zb$lYo^#V#eUfABk`*k0ERgYQ+RNHpGiLYSmWzB6F<^breW1=Cdn1rEgWBqbagGZsuJJ#); z6KSjl&p?q4qR z=`Cso91ZWKBg<^VlB=_%t#9*4ZI)Vwir`=ONCn|Eb-L9S#H8YIY$S3hSbp%Np&IJ}Z+M!%pHw zaBUS&;!xHrh*9fgRVIOVimOxq%1!ZzEw8cE-FfnY*CNyP0d_X!N8V386)I$}I#0)L zh=Qq8CSta_%R7%Y1+tfI8Nf!838pAzlK=DCtSnq_4^{kv1H-F+Nw;7lI$Fn3zVi}i z&;a&*X!fZInXZ6or^R9;9j*TEqh6k(_#ca(Q6L$~tcIRZlW|UJawUzpSgN2_s;i1x z^6JIU1(SRHS%ceS&Qpe^IiX;?vlN3Z!96hYsVh?+5R>ceD`5@el&~Cfi*sn5&Pih; z(O1H&TU3e~lCv!O!P^;LHR-SpD@1F9G!nthdYefDRp?pGCQe?>& zp;5l`=;!1lE`a#E`@jci)KR20jia?0-CY?FNsr?1BtlR;v3n$AEZ?a zoKl|7g5Ev*2eGUE1IANi_xEB@WGCg+`ZZBI+| ziJj@&x9tVIoA!4?QEJcrWXtGV?W+m&35fs8mC?1F7HlYFz4Po^Chm)n60FMtj(Rc1{BsJ=@W#3hL;6lbvZUXa6qdOsYTyFBA;k zAQaPp+x_^$2ngg9hO7Bt(q-Ol9sHWKN`(gYuCLMesY|T_kHhQyi62Rh zQx7tb1%s%R4(7zblqV+?xIG*0wzyZ%e)~lTqIWRTbX#VkJ-ao2B%m_p*WIeAUf0cRT<%08;)c57Jy=raeLepd*?juR4 zE&@sAR-nb&l~o76DUYIBN}tBrj6 zq3^Tjd%V!%l8jhaW>v-J!&a?um7z~e&+%a#@G1klkZAHi!?6I`uQ@>O+0mp z_PkB|X#U4hszU$!RB5RI^X)*1qFmRiR^dO6vKBHlx18R3W&SmVd`%8tbMMzt=IeO+wQ~4cBYiDFzZTnHrxpM3 z36$s%dc@g`y 💡 下一步建议: +> 1. … +> 2. … +``` diff --git a/02-use-cases/smart_car_selector/project.toml b/02-use-cases/smart_car_selector/project.toml new file mode 100644 index 00000000..47c1f17a --- /dev/null +++ b/02-use-cases/smart_car_selector/project.toml @@ -0,0 +1,15 @@ +[app] +name = "AgentKit-小懂车" +name_en = "Smart Car Selector" +id = "smart-car-selector" +version = "0.1.0" +description = "一个基于 AgentKit 的单体购车咨询助手示例(选车 + 算账 + 交付)。" +entry = "agentkit-agent.py" +readme = "README.md" +readme_en = "README_en.md" +license = "Apache-2.0" +tags = ["car", "assistant", "agentkit", "unified"] + +[runtime] +language = "python" +python = ">=3.12" diff --git a/02-use-cases/smart_car_selector/pyproject.toml b/02-use-cases/smart_car_selector/pyproject.toml new file mode 100644 index 00000000..a9dd24f7 --- /dev/null +++ b/02-use-cases/smart_car_selector/pyproject.toml @@ -0,0 +1,15 @@ +[project] +name = "smart-car-selector" +version = "0.1.0" +description = "Unified car selection assistant built with AgentKit" +readme = "README.md" +requires-python = ">=3.12" +license = { file = "LICENSE" } +dependencies = [ + "google-adk", + "agentkit-sdk-python>=0.4.2", + "veadk-python", + "requests", + "uvicorn", + "cozeloop", +] diff --git a/02-use-cases/smart_car_selector/requirements.txt b/02-use-cases/smart_car_selector/requirements.txt new file mode 100644 index 00000000..4f368093 --- /dev/null +++ b/02-use-cases/smart_car_selector/requirements.txt @@ -0,0 +1,6 @@ +google-adk +agentkit-sdk-python +veadk-python +requests +uvicorn +cozeloop diff --git a/02-use-cases/smart_car_selector/skills/dice-roller/SKILL.md b/02-use-cases/smart_car_selector/skills/dice-roller/SKILL.md new file mode 100644 index 00000000..32752462 --- /dev/null +++ b/02-use-cases/smart_car_selector/skills/dice-roller/SKILL.md @@ -0,0 +1,41 @@ +--- +name: dice-roller +description: 一个简单的掷骰子工具。用于生成随机数,或在用户纠结时做“玄学推荐”。 +version: 1.0.0 +entrypoint: python roll.py +args: + sides: + type: int + description: 骰子的面数(默认为 6)。 + required: false + count: + type: int + description: 掷骰子的数量(默认为 1)。 + required: false +output: + type: json + description: 返回掷骰子的结果,包括每次投掷的点数和总和。 +--- + +# 掷骰子工具 (Dice Roller) + +这是一个简单的掷骰子工具。 + +## 功能 +- 支持自定义骰子面数(默认为 6 面)。 +- 支持自定义掷骰子数量(默认为 1 个)。 +- 返回每次投掷的结果和总和。 + +## 参数说明 +- `sides`: 骰子面数 (Integer) +- `count`: 骰子数量 (Integer) + +## 返回示例 +```json +{ + "status": "success", + "results": [3, 5], + "total": 8, + "details": "Rolled 2d6" +} +``` diff --git a/02-use-cases/smart_car_selector/skills/dice-roller/requirements.txt b/02-use-cases/smart_car_selector/skills/dice-roller/requirements.txt new file mode 100644 index 00000000..e69de29b diff --git a/02-use-cases/smart_car_selector/skills/dice-roller/roll.py b/02-use-cases/smart_car_selector/skills/dice-roller/roll.py new file mode 100644 index 00000000..1e3bee54 --- /dev/null +++ b/02-use-cases/smart_car_selector/skills/dice-roller/roll.py @@ -0,0 +1,34 @@ +import argparse +import random +import json +import sys + +def main(): + parser = argparse.ArgumentParser(description="Roll some dice.") + parser.add_argument("--sides", type=int, default=6, help="Number of sides on the die") + parser.add_argument("--count", type=int, default=1, help="Number of dice to roll") + args = parser.parse_args() + + try: + if args.sides < 1: + raise ValueError("Sides must be at least 1") + if args.count < 1: + raise ValueError("Count must be at least 1") + + results = [random.randint(1, args.sides) for _ in range(args.count)] + total = sum(results) + + output = { + "status": "success", + "results": results, + "total": total, + "details": f"Rolled {args.count}d{args.sides}" + } + print(json.dumps(output)) + + except Exception as e: + print(json.dumps({"status": "error", "message": str(e)})) + sys.exit(1) + +if __name__ == "__main__": + main() diff --git a/02-use-cases/smart_car_selector/utils.py b/02-use-cases/smart_car_selector/utils.py new file mode 100644 index 00000000..aa20c9d9 --- /dev/null +++ b/02-use-cases/smart_car_selector/utils.py @@ -0,0 +1,238 @@ +import os +import uuid +import base64 +import logging +import re +import importlib +from pathlib import Path +from typing import Any, Optional + +logger = logging.getLogger(__name__) + + +def get_tos_client(): + ak = os.getenv("VOLCENGINE_ACCESS_KEY") + sk = os.getenv("VOLCENGINE_SECRET_KEY") + endpoint = os.getenv("DATABASE_TOS_ENDPOINT", "tos-cn-beijing.volces.com") + region = os.getenv("DATABASE_TOS_REGION", "cn-beijing") + if not ak or not sk: + return None + try: + import tos + except Exception: + return None + return tos.TosClientV2(ak, sk, endpoint, region) + + +def upload_bytes_to_tos(data_bytes: bytes, extension: str = ".png"): + bucket = os.getenv("DATABASE_TOS_BUCKET") + if not bucket: + return None, "Missing DATABASE_TOS_BUCKET env var" + + client = get_tos_client() + if not client: + return None, "Failed to initialize TOS client" + + key = f"agent_uploads/{uuid.uuid4()}{extension}" + try: + client.put_object(bucket, key, content=data_bytes) + url = client.pre_signed_url( + http_method="GET", + bucket=bucket, + key=key, + expires=3600, + ) + return url, None + except Exception as e: + return None, f"Failed to upload to TOS: {str(e)}" + + +def upload_base64_to_tos(base64_str: str): + try: + data_uri_pattern = re.compile( + r"data:image/(?Ppng|jpeg|jpg|gif|bmp|webp);base64,(?P[A-Za-z0-9+/=]+)" + ) + match = data_uri_pattern.search(base64_str) + if match: + extension = f".{match.group('ext')}" + data = match.group("data") + else: + try: + base64_str.encode("ascii") + except UnicodeEncodeError: + return None, None + data = base64_str.strip().replace("\n", "").replace("\r", "").replace(" ", "") + extension = ".png" + + data_bytes = base64.b64decode(data, validate=True) + return upload_bytes_to_tos(data_bytes, extension) + except Exception as e: + return None, f"Failed to decode base64: {str(e)}" + + +def optional_symbol(module_path: str, symbol: str): + try: + module = importlib.import_module(module_path) + return getattr(module, symbol) + except Exception: + return None + + +def init_veadk_builtin_tools(): + enabled = os.getenv("VEADK_BUILTIN_TOOLS_ENABLE", "").strip() + enabled_set = {t.strip() for t in enabled.split(",") if t.strip()} if enabled else set() + + tool_defs = [ + ("web_search", "veadk.tools.builtin_tools.web_search", "web_search"), + ("execute_skills", "veadk.tools.builtin_tools.execute_skills", "execute_skills"), + ("mcp_router", "veadk.tools.builtin_tools.mcp_router", "mcp_router"), + ("image_generate", "veadk.tools.builtin_tools.image_generate", "image_generate"), + ] + + tools = [] + for tool_id, module_path, symbol in tool_defs: + if enabled_set and tool_id not in enabled_set: + continue + tool = optional_symbol(module_path, symbol) + if tool: + tools.append(tool) + + return tools + + +def init_short_term_memory(app_name: str): + from veadk.memory import ShortTermMemory + + if os.getenv("DATABASE_POSTGRESQL_HOST"): + return ShortTermMemory(backend="postgresql") + return ShortTermMemory(backend="local") + + +def init_long_term_memory(app_name: str): + from veadk.memory import LongTermMemory + + mem_collection = os.getenv("DATABASE_VIKING_MEM_COLLECTION_NAME") + if not mem_collection: + return None + return LongTermMemory( + backend="viking_mem", + index=mem_collection, + app_name=app_name, + ) + + +def init_knowledge_base(app_name: str): + from veadk.knowledgebase import KnowledgeBase + + kb_collection = os.getenv("DATABASE_VIKING_COLLECTION_NAME") + if not kb_collection: + return None + return KnowledgeBase(backend="viking", index=kb_collection, app_name=app_name) + + +def init_prompt_manager(default_label: str = "beta"): + try: + from veadk.prompts.prompt_manager import CozeloopPromptManager + except Exception: + return None + + prompt_key = os.getenv("PROMPT_MANAGEMENT_COZELOOP_PROMPT_KEY") + token = os.getenv("PROMPT_MANAGEMENT_COZELOOP_TOKEN") + if not prompt_key or not token: + return None + return CozeloopPromptManager( + cozeloop_workspace_id=os.getenv("PROMPT_MANAGEMENT_COZELOOP_WORKSPACE_ID", ""), + cozeloop_token=token, + prompt_key=prompt_key, + label=os.getenv("PROMPT_MANAGEMENT_COZELOOP_LABEL", default_label), + ) + + +def init_observability(): + exporters = [] + try: + from veadk.tracing.telemetry.opentelemetry_tracer import OpentelemetryTracer + from veadk.tracing.telemetry.exporters.apmplus_exporter import APMPlusExporter + from veadk.tracing.telemetry.exporters.cozeloop_exporter import CozeloopExporter + from veadk.tracing.telemetry.exporters.tls_exporter import TLSExporter + except Exception: + return [] + + if os.getenv("OBSERVABILITY_OPENTELEMETRY_APMPLUS_ENDPOINT") and APMPlusExporter: + exporters.append(APMPlusExporter()) + if os.getenv("OBSERVABILITY_OPENTELEMETRY_COZELOOP_ENDPOINT") and CozeloopExporter: + exporters.append(CozeloopExporter()) + if os.getenv("OBSERVABILITY_OPENTELEMETRY_TLS_ENDPOINT") and TLSExporter: + exporters.append(TLSExporter()) + return [OpentelemetryTracer(exporters=exporters)] if exporters else [] + + +def load_local_instruction(instruction_path: Path) -> Optional[str]: + try: + if instruction_path.exists(): + return instruction_path.read_text(encoding="utf-8") + except Exception: + return None + return None + + +async def callback_cleanup_model_output(callback_context: Any, llm_response: Any): + if llm_response and getattr(llm_response, "content", None) and getattr(llm_response.content, "parts", None): + clean_parts = [] + for part in llm_response.content.parts: + is_thought = False + try: + if hasattr(part, "thought") and part.thought: + is_thought = True + elif hasattr(part, "to_dict") and part.to_dict().get("thought"): + is_thought = True + except Exception: + pass + if is_thought: + continue + + if getattr(part, "text", None): + cleaned_text = re.sub(r".*?", "", part.text, flags=re.DOTALL) + answer_match = re.search(r"(.*?)", cleaned_text, flags=re.DOTALL) + part.text = (answer_match.group(1) if answer_match else cleaned_text).strip() + + has_text = bool(getattr(part, "text", None) and part.text.strip()) + has_function = hasattr(part, "function_call") and part.function_call + if has_text or has_function: + clean_parts.append(part) + llm_response.content.parts = clean_parts + return llm_response + + +async def callback_cleanup_tool_output( + tool: Any, args: dict[str, Any], tool_context: Any, tool_response: dict +) -> Optional[dict]: + if not tool_response: + return tool_response + + def clean_data(data): + if isinstance(data, dict): + return {k: clean_data(v) for k, v in data.items()} + if isinstance(data, list): + return [clean_data(v) for v in data] + if isinstance(data, str): + pattern = r"(data:image/(?:png|jpeg|jpg|gif|bmp|webp);base64,([A-Za-z0-9+/=\s]+))" + matches = list(re.finditer(pattern, data)) + new_data = data + if matches: + for match in reversed(matches): + full_match = match.group(1) + base64_content = match.group(2) + if len(base64_content) > 1000: + url, error = upload_base64_to_tos(full_match) + replacement = f"[IMAGE_UPLOADED_TO_TOS: {url}]" if url else f"[UPLOAD_FAILED: {error}]" + start, end = match.span() + new_data = new_data[:start] + replacement + new_data[end:] + if len(new_data) > 20000: + head = new_data[:5000] + tail = new_data[-5000:] + new_data = f"{head}\n\n[... {len(new_data) - 10000} characters of logs truncated ...]\n\n{tail}" + return new_data + return data + + return clean_data(tool_response) From 08cdf763810b1b8bae3a71a848d18f893944f90d Mon Sep 17 00:00:00 2001 From: zhaoyuheng-ethan Date: Sat, 14 Feb 2026 19:49:35 +0800 Subject: [PATCH 2/2] docs: make mcp_router optional for simple setup --- 02-use-cases/smart_car_selector/README.md | 2 +- 02-use-cases/smart_car_selector/README_en.md | 2 +- 02-use-cases/smart_car_selector/instruction.md | 9 ++++++--- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/02-use-cases/smart_car_selector/README.md b/02-use-cases/smart_car_selector/README.md index 4de19153..4a0cce8e 100644 --- a/02-use-cases/smart_car_selector/README.md +++ b/02-use-cases/smart_car_selector/README.md @@ -9,7 +9,7 @@ - **真实选车场景**:推荐 → 参数表 → 口碑 → 金融表 → 试驾导航 → 海报,一条链路走完。 - **可复核交付**:参数对比表、金融分析表均可下载,可复用公式并支持用户改参数重算。 - **事实核验优先**:涉及参数/政策/口碑等事实点时优先 `web_search` 交叉核验,避免拍脑袋。 -- **交付执行能力**:门店/路线/导航统一走 `mcp_router`,结果可直接点开导航。 +- **交付执行能力(可选)**:如启用 `mcp_router` 可做门店/路线/导航;未启用时也会输出门店筛选方法与到店清单,保证体验可用。 - **情绪价值补全**:选中车型后可用 `image_generate` 生成可分享海报与文案。 - **趣味彩蛋**:用户纠结难以拍板时,用掷骰子做“玄学推荐”并给理性兜底问题。 diff --git a/02-use-cases/smart_car_selector/README_en.md b/02-use-cases/smart_car_selector/README_en.md index 4efd82c4..d6de31cd 100644 --- a/02-use-cases/smart_car_selector/README_en.md +++ b/02-use-cases/smart_car_selector/README_en.md @@ -9,7 +9,7 @@ The main design is **Single Agent + Tools/Skills**: keep the system simple to de - Real user journey: Recommend → Specs → Reputation → Finance → Test Drive → Poster - Verifiable outputs: downloadable Excel sheets with reusable formulas - Fact-check first: use `web_search` for specs/policy/reputation when needed -- Delivery execution: `mcp_router` for POI / route / navigation +- Delivery execution (optional): if `mcp_router` is enabled, use it for POI / route / navigation; otherwise provide store-search guidance and an actionable checklist. - Emotional value: `image_generate` for shareable posters and copy - Fun fallback: dice-based “mystic pick” when users can’t decide diff --git a/02-use-cases/smart_car_selector/instruction.md b/02-use-cases/smart_car_selector/instruction.md index 6a72dc2a..7209139c 100644 --- a/02-use-cases/smart_car_selector/instruction.md +++ b/02-use-cases/smart_car_selector/instruction.md @@ -17,7 +17,7 @@ 3. **工具化与可复核**: - 参数/价格/政策/口碑等事实性信息:优先 `web_search` 核验;无法核验时必须显式标注不确定性与假设范围。 - 涉及计算/制表:必须 `execute_skills` 产出结构化结果或表格,再用自然语言解释。 - - 门店/路线/通勤:必须 `mcp_router`。 + - 门店/路线/通勤:优先 `mcp_router`(如已启用);若不可用则输出可执行的门店筛选方法与到店建议,并提示用户用地图 App 生成导航。 - 海报/可视化:优先 `image_generate`;绘图类用 `execute_skills` 跑脚本生成图片。 4. **结果审计**:你需要自己检查输出是否与用户预算、需求一致;并指出关键 trade-off(空间/续航/智驾/成本/保值)。 5. **旅程引导**:每次回复末尾必须追加“下一步建议”(见下文模板)。 @@ -28,7 +28,9 @@ 2. **对比参数(可下载表)**:当用户说“对比参数/参数表/横向对照”时,用 `execute_skills` 生成 Excel 参数对比表(可复用公式、可编辑)。 3. **对比口碑(避坑)**:当用户说“口碑/通病/值不值/能买吗”时,用 `web_search` 汇总真实车主常见优缺点与风险点,并给出适用人群建议。 4. **对比价格(金融分析表)**:当用户说“落地价/月供/利率/总利息/还款表/金融方案”时,用 `execute_skills` 生成金融分析 Excel(含落地价拆分、月供与总成本、可调参数)。 -5. **预约试驾(自动化预约 + 导航)**:当用户说“预约试驾/去店里/门店/路线/导航”时,必须用 `mcp_router` 给出门店 POI、路线与导航;预约环节优先输出可直接复制的预约话术与到店清单(如存在可用的预约/外呼/表单工具再执行自动化)。 +5. **预约试驾(自动化预约 + 导航)**:当用户说“预约试驾/去店里/门店/路线/导航”时: + - 若已启用 `mcp_router`:给出门店 POI、路线与导航。 + - 若未启用 `mcp_router`:给出门店筛选关键词(品牌/城市/“4S 店”)、建议的到店信息清单与可复制预约话术,并提示用户在地图 App 里选择最近门店并一键导航。 6. **选中后海报(情绪价值)**:当用户确定车型或说“发个海报/朋友圈文案/仪式感”时,用 `image_generate` 生成海报并配 1 段可分享文案。 ## 追问优先级(缺什么问什么) @@ -48,7 +50,8 @@ - **文件结果处理(CRITICAL)**:如果工具返回的是可下载链接(如 TOS URL),必须用 Markdown 链接形式输出;严禁输出本地路径(/tmp、/sandbox 等)。 ### mcp_router(地图/门店/路线) -- 只要涉及 POI、距离、路线、导航、试驾门店查询与到店路径,一律使用 `mcp_router`。 +- 若已启用:涉及 POI、距离、路线、导航、试驾门店查询与到店路径时优先使用 `mcp_router`。 +- 若未启用:输出明确的门店筛选方法、路线规划建议与到店清单,并提示用户用地图 App 完成导航。 ### image_generate(海报) - 生成海报时优先 `image_generate`;输出必须用 Markdown 图片语法展示图片链接。