From 0c93f98778e1a2b028a52af3c0d79843726d0ef1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=BF=83=E5=B9=B3=E6=B0=94=E5=92=8C?= <2394609457@qq.com>
Date: Wed, 20 May 2026 16:55:06 +0800
Subject: [PATCH] =?UTF-8?q?build(=E5=A4=87=E4=BB=BD):=202026=E5=B9=B405?=
=?UTF-8?q?=E6=9C=8820=E6=97=A516=E6=97=B655=E5=88=8602=E7=A7=92=E8=87=AA?=
=?UTF-8?q?=E5=8A=A8=E5=A4=87=E4=BB=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.obsidian/workspace.json | 139 ++++++--
.../20260511-备忘-待实践-vuepresee自动化运维.md | 3 +-
01-项目/2512-MaixCam竞赛版/项目-总结.md | 36 ++
.../2602-健康运动/健康运动-周3-练肩训练计划.md | 37 ++
.../2604-juecha/觉察知识-bge-large-zh安装.md | 4 +-
.../觉察知识/觉察-LibreChat接入第三方模型.md | 167 +++++++++
03-资源/信息科技-气象数据模型-对照组实验.md | 41 +++
03-资源/内容清单-觉察兴趣-待看视频.md | 4 +-
03-资源/操作步骤-工具技巧-Windows命令行zip.md | 33 ++
03-资源/操作说明-工具技巧-Docker指令.md | 29 ++
Untitled 11.md | 325 ------------------
Untitled 12.md | 321 -----------------
Untitled 14.md | 14 -
Untitled 15.md | 57 ---
Untitled 20.md | 36 --
Untitled 21.md | 90 -----
Untitled 23.md | 231 -------------
Untitled 24.md | 16 -
Untitled 3.md | 5 +-
Untitled 4.md | 242 ++++++-------
Untitled 7.md | 14 -
Untitled 9.md | 119 -------
attachments/Pasted image 20260509134626.png | Bin 140924 -> 0 bytes
模板文件/模板-RAG转化.md | 15 -
模板文件/模板-健康运动-练肩日志.md | 24 +-
25 files changed, 569 insertions(+), 1433 deletions(-)
rename Untitled 19.md => 00-临时碎片/20260511-备忘-待实践-vuepresee自动化运维.md (82%)
rename Untitled 5.md => 01-项目/2604-juecha/觉察知识-bge-large-zh安装.md (98%)
create mode 100644 02-领域/觉察知识/觉察-LibreChat接入第三方模型.md
delete mode 100644 Untitled 11.md
delete mode 100644 Untitled 12.md
delete mode 100644 Untitled 14.md
delete mode 100644 Untitled 15.md
delete mode 100644 Untitled 20.md
delete mode 100644 Untitled 21.md
delete mode 100644 Untitled 23.md
delete mode 100644 Untitled 24.md
delete mode 100644 Untitled 7.md
delete mode 100644 Untitled 9.md
delete mode 100644 attachments/Pasted image 20260509134626.png
diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json
index faa3973..7fb75d7 100644
--- a/.obsidian/workspace.json
+++ b/.obsidian/workspace.json
@@ -4,16 +4,16 @@
"type": "split",
"children": [
{
- "id": "03bc0a460d96d4a5",
+ "id": "17733bf308836bd7",
"type": "tabs",
"children": [
{
- "id": "eb77ad7f3f010ac8",
+ "id": "e9c97a0b915e5c34",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
- "file": "Untitled 5.md",
+ "file": "01-项目/2512-MaixCam竞赛版/项目-总结.md",
"mode": "source",
"source": false,
"backlinks": true,
@@ -28,7 +28,86 @@
}
},
"icon": "lucide-file",
- "title": "Untitled 5"
+ "title": "项目-总结"
+ }
+ },
+ {
+ "id": "210d28b8b000333d",
+ "type": "leaf",
+ "state": {
+ "type": "markdown",
+ "state": {
+ "file": "01-项目/2601-信息科技教材/备忘-信息科技-维护教师反馈.md",
+ "mode": "source",
+ "source": false,
+ "backlinks": true,
+ "backlinkOpts": {
+ "collapseAll": false,
+ "extraContext": false,
+ "sortOrder": "alphabetical",
+ "showSearch": false,
+ "searchQuery": "",
+ "backlinkCollapsed": false,
+ "unlinkedCollapsed": true
+ }
+ },
+ "icon": "lucide-file",
+ "title": "备忘-信息科技-维护教师反馈"
+ }
+ },
+ {
+ "id": "e02b1dfbd931c47f",
+ "type": "leaf",
+ "state": {
+ "type": "markdown",
+ "state": {
+ "file": "Untitled 3.md",
+ "mode": "source",
+ "source": false,
+ "backlinks": true,
+ "backlinkOpts": {
+ "collapseAll": false,
+ "extraContext": false,
+ "sortOrder": "alphabetical",
+ "showSearch": false,
+ "searchQuery": "",
+ "backlinkCollapsed": false,
+ "unlinkedCollapsed": true
+ }
+ },
+ "icon": "lucide-file",
+ "title": "Untitled 3"
+ }
+ }
+ ],
+ "currentTab": 1
+ },
+ {
+ "id": "fe99261bbc15304b",
+ "type": "tabs",
+ "children": [
+ {
+ "id": "9711d3e37bc70332",
+ "type": "leaf",
+ "state": {
+ "type": "markdown",
+ "state": {
+ "file": "03-资源/信息科技-气象数据模型-对照组实验.md",
+ "mode": "source",
+ "source": false,
+ "backlinks": true,
+ "backlinkOpts": {
+ "collapseAll": false,
+ "extraContext": false,
+ "sortOrder": "alphabetical",
+ "showSearch": false,
+ "searchQuery": "",
+ "backlinkCollapsed": false,
+ "unlinkedCollapsed": true
+ }
+ },
+ "icon": "lucide-file",
+ "title": "信息科技-气象数据模型-对照组实验"
}
}
]
@@ -198,34 +277,34 @@
"templater-obsidian:Templater": false
}
},
- "active": "eb77ad7f3f010ac8",
+ "active": "210d28b8b000333d",
"lastOpenFiles": [
- "03-资源/信息科技-气象数据模型-对照组实验.md",
- "03-资源/执行脚本-工具技巧-USTONE清理红外指令.md",
- "03-资源/操作步骤-工具技巧-edge兼容性.md",
- "Untitled 3.md",
- "Untitled 2.md",
- "Untitled 7.md",
- "Untitled 9.md",
- "01-项目/2601-信息科技教材/问题答疑-实验板网络无法连接物联数据中台.md",
- "未命名 1.md",
- "未命名.md",
- "Untitled 6.md",
- "Untitled 4.md",
- "未命名 2.md",
- "Untitled.md",
- "Untitled 15.md",
- "Untitled 14.md",
- "Untitled 19.md",
- "Untitled 20.md",
- "Untitled 21.md",
- "Untitled 23.md",
- "Untitled 22.md",
- "Untitled 24.md",
- "Untitled 8.md",
- "04-归档/归档资源/归档说明-物联实验室彭杨中学.md",
- "20260515-备忘-主题名-文件内容.md",
+ "03-资源/内容清单-觉察兴趣-待看视频.md",
"01-项目/2601-信息科技教材/备忘-信息科技-维护教师反馈.md",
+ "01-项目/2512-MaixCam竞赛版/项目-总结.md",
+ "03-资源/操作说明-工具技巧-Docker指令.md",
+ "Untitled 4.md",
+ "03-资源/操作说明-工具技巧-git提交规范.md",
+ "03-资源/操作说明-工具技巧-git单文件回滚.md",
+ "03-资源/操作步骤-工具技巧-Windows命令行zip.md",
+ "03-资源/操作步骤-工具技巧-edge兼容性.md",
+ "03-资源/操作步骤-工具技巧-图像转C数组.md",
+ "03-资源/信息科技-气象数据模型-对照组实验.md",
+ "Untitled 3.md",
+ "01-项目/2512-MaixCam竞赛版/项目-需求.md",
+ "Untitled 6.md",
+ "Untitled 2.md",
+ "Untitled 8.md",
+ "Untitled 10.md",
+ "Untitled 1.md",
+ "Untitled 11.md",
+ "Untitled 12.md",
+ "Untitled 14.md",
+ "Untitled 15.md",
+ "Untitled 20.md",
+ "01-项目/2604-juecha/觉察知识-bge-large-zh安装.md",
+ "Untitled 7.md",
+ "Untitled.md",
"04-归档/归档资源/归档说明-优创未来样例程序.md.baiduyun.uploading.cfg",
"Untitled 29.md.baiduyun.uploading.cfg",
"attachments/Snipaste_2026-04-29_10-35-36.png.baiduyun.uploading.cfg",
diff --git a/Untitled 19.md b/00-临时碎片/20260511-备忘-待实践-vuepresee自动化运维.md
similarity index 82%
rename from Untitled 19.md
rename to 00-临时碎片/20260511-备忘-待实践-vuepresee自动化运维.md
index c60cd29..e12ecc1 100644
--- a/Untitled 19.md
+++ b/00-临时碎片/20260511-备忘-待实践-vuepresee自动化运维.md
@@ -4,11 +4,10 @@
#复盘/0 #临时/备忘 #状态/待处理
-20260511-备忘-主题名-文件内容
## 一句话描述
-[________]
+[__vuepress 项目自动化运维______]
---
diff --git a/01-项目/2512-MaixCam竞赛版/项目-总结.md b/01-项目/2512-MaixCam竞赛版/项目-总结.md
index 3a9b344..e608a73 100644
--- a/01-项目/2512-MaixCam竞赛版/项目-总结.md
+++ b/01-项目/2512-MaixCam竞赛版/项目-总结.md
@@ -151,3 +151,39 @@ feat(程序控制): N0关闭算法时清空消息队列; 增加灯光开发板
feat:(p2.0.8) 自学习分类将欧氏距离转换为准确率
+
+---
+
+### 子分支 - 识花工具
+
+2026/05/20 摄像头补丁测试版本为 v2.0.8.2
+
+内置程序
+
+- 识花工具
+
+---
+
+### 主分支
+
+2026/05/20 摄像头补丁测试版本为 v2.0.9
+
+内置程序
+程序 [ 程序控制-v3.5.17 ] 安装成功
+程序 [ 2026超能小球-v1.2.1 ] 安装成功
+程序 [ 人脸识别-v1.0.0 ] 安装成功
+程序 [ 参数调试-v1.1.3.1 ] 安装成功
+程序 [ 24点-v1.0.0 ] 安装成功
+程序 [ 自学习分类-v1.0.5 ] 安装成功
+
+工具链版本:
+patch_version : 2.0.9
+client_version : 2.0.0
+
+feat(程序控制): 情绪识别修改"中性"为"平静"
+build(version): 补丁v2.0.9
+
+---
+
+
+
diff --git a/01-项目/2602-健康运动/健康运动-周3-练肩训练计划.md b/01-项目/2602-健康运动/健康运动-周3-练肩训练计划.md
index a082c54..c3607d0 100644
--- a/01-项目/2602-健康运动/健康运动-周3-练肩训练计划.md
+++ b/01-项目/2602-健康运动/健康运动-周3-练肩训练计划.md
@@ -287,6 +287,43 @@
---
+时间:[__2026/05/20______]
+
+时间点:
+- 5:17 出发
+
+训练容量(项目-组数-重量) 力量8~12次、塑形15~18次
+热身组列为三组重量递增,热身第一组空器械热身,无组间歇,加完重就做热身第二组
+第一组基准为上一周最大-2.5,每组递增 2.5
+即 x / 2、x、x + 2.5、x + 5、x + 2.5
+序号为剩余项目数量,重合序号为二选一
+`p数字` 标志为 "超级组加次数"
+递减计划填组1、递增计划填组4
+
+| 序号 | 项目/次数 | 热身组 | 组 1 | 组 2 | 组 3 | 组 4 | 器械调整 |
+| :-- | :----------- | --- | --- | --- | ---- | ---- | ------ |
+| 6 | 挂片/插片肩部推举12 | 15 | 35 | 35 | 32.5 | 32.5 | 座露7上露5 |
+| 5 | 哑铃前平举18 | 20 | 25 | 25 | 25 | 25 | |
+| 4 | 绳索侧平举18试试双侧 | 7.5 | 7.5 | 7.5 | 7.5 | 7.5 | 孔3 |
+| 3 | 坐姿锤式弯举(肱肌)18 | 7.5 | 10 | 10 | 10 | 12.5 | 孔11 |
+| 3 | 坐姿绳索面拉18 | 7.5 | 10 | 10 | 10 | 12.5 | 孔11 |
+| 2 | 插片侧平举18 | 20 | 40 | 45 | 45 | 45 | 座孔5 |
+| 1 | 蝴蝶机反向飞鸟18 | 20 | 40 | 40 | 35 | 35 | 座孔5 |
+| 0 | 坐姿卷腹18 | 30 | 30 | 30 | 30 | 30 | 座露1 |
+
+轻咳,降肋,吐气
+
+1. 肩部推举:注意把手位置在肩膀
+2. 杠铃前平举:斜方会疼
+3. 绳索侧平举:左侧较弱!!!先做左侧为准
+4. 绳索面拉:坐姿,力求前三组力求动作标准
+5. 插片侧平举:微咳、含胸、下巴抵住靠垫
+6. 反向飞鸟:微咳、含胸、胸口抵住靠垫
+
+!!!前两组关键力求[发力感],第三组冲刺力求[重量],第四组打磨组力求[标准]!!!
+
+---
+
---
diff --git a/Untitled 5.md b/01-项目/2604-juecha/觉察知识-bge-large-zh安装.md
similarity index 98%
rename from Untitled 5.md
rename to 01-项目/2604-juecha/觉察知识-bge-large-zh安装.md
index 15ab96c..909b643 100644
--- a/Untitled 5.md
+++ b/01-项目/2604-juecha/觉察知识-bge-large-zh安装.md
@@ -4,11 +4,9 @@
#复盘/0 #临时/备忘 #状态/待处理
-20260508-备忘-主题名-文件内容
-
## 一句话描述
-[________]
+[__安装配置bge-large-zh______]
---
diff --git a/02-领域/觉察知识/觉察-LibreChat接入第三方模型.md b/02-领域/觉察知识/觉察-LibreChat接入第三方模型.md
new file mode 100644
index 0000000..8560368
--- /dev/null
+++ b/02-领域/觉察知识/觉察-LibreChat接入第三方模型.md
@@ -0,0 +1,167 @@
+
+---
+#领域/未知
+
+#复盘/0 #临时/备忘 #状态/待处理
+
+## 一句话描述
+
+[____LibreChat 接入第三方模型配置____]
+
+---
+
+涉及文件:librechat.yaml
+
+```yaml
+endpoints:
+ custom:
+ - name: "Deepseek"
+ apiKey: "${OPENAI_DEEPSEEK_API_KEY}"
+ baseURL: "https://api.deepseek.com/v1"
+ models:
+ default: ["deepseek-v4-pro", "deepseek-chat", "deepseek-coder", "deepseek-reasoner"]
+ fetch: false
+ titleConvo: true
+ titleModel: "deepseek-chat"
+ modelDisplayLabel: "Deepseek"
+
+ - name: "Alibailian"
+ apiKey: "${OPENAI_ALIBAILIAN_API_KEY}"
+ baseURL: "https://dashscope.aliyuncs.com/compatible-mode/v1"
+ models:
+ default: ["qwen3.6-flash-2026-04-16"]
+ fetch: false
+ titleConvo: true
+ titleModel: "qwen3.6-flash-2026-04-16"
+ modelDisplayLabel: "Qwen3"
+
+ - name: "MaxKB"
+ apiKey: "agent-d399a24728ebca8b87193326e4963617"
+ baseURL: "http://192.168.0.151:8080/chat/api/019e0542-74a5-77d2-8b64-8ba18457b4d3"
+ models:
+ default: ["maxkb-chat"]
+ fetch: false
+ titleConvo: true
+ titleModel: "maxkb-chat"
+ modelDisplayLabel: "MaxKB"
+
+ - name: "NewAPI"
+ apiKey: "sk-uZLkkoRuA2KZc0nSIWWiZzO1WTNMKpHkc6Rw1mAPCwoFAOKS"
+ baseURL: "http://192.168.0.151:30104/v1" # 把localhost换成你NewAPI的实际IP
+ models:
+ default: ["juecha", "qwen3.5:9b", "qwen3.6:27b"]
+ fetch: false
+ titleConvo: false
+ modelDisplayLabel: "NewAPI"
+ type: "openai"
+
+ # Groq Example
+ - name: 'groq'
+ apiKey: '${GROQ_API_KEY}'
+ baseURL: 'https://api.groq.com/openai/v1/'
+ models:
+ default:
+ - 'llama3-70b-8192'
+ - 'llama3-8b-8192'
+ - 'llama2-70b-4096'
+ - 'mixtral-8x7b-32768'
+ - 'gemma-7b-it'
+ fetch: false
+ titleConvo: true
+ titleModel: 'mixtral-8x7b-32768'
+ modelDisplayLabel: 'groq'
+
+ # Mistral AI Example
+ - name: 'Mistral' # Unique name for the endpoint
+ # For `apiKey` and `baseURL`, you can use environment variables that you define.
+ # recommended environment variables:
+ apiKey: '${MISTRAL_API_KEY}'
+ baseURL: 'https://api.mistral.ai/v1'
+ # Models configuration
+ models:
+ # List of default models to use. At least one value is required.
+ default: ['mistral-tiny', 'mistral-small', 'mistral-medium']
+ # Fetch option: Set to true to fetch models from API.
+ fetch: true # Defaults to false.
+ # Optional configurations
+ # Title Conversation setting
+ titleConvo: true # Set to true to enable title conversation
+ # Title Method: Choose between "completion" or "functions".
+ # titleMethod: "completion" # Defaults to "completion" if omitted.
+ # Title Model: Specify the model to use for titles.
+ titleModel: 'mistral-tiny' # Defaults to "gpt-3.5-turbo" if omitted.
+ # Summarize setting: Set to true to enable summarization.
+ # summarize: false
+ # Summary Model: Specify the model to use if summarization is enabled.
+ # summaryModel: "mistral-tiny" # Defaults to "gpt-3.5-turbo" if omitted.
+ # The label displayed for the AI model in messages.
+ modelDisplayLabel: 'Mistral' # Default is "AI" when not set.
+ # Add additional parameters to the request. Default params will be overwritten.
+ # addParams:
+ # safe_prompt: true # This field is specific to Mistral AI: https://docs.mistral.ai/api/
+ # Drop Default params parameters from the request. See default params in guide linked below.
+ # NOTE: For Mistral, it is necessary to drop the following parameters or you will encounter a 422 Error:
+ dropParams: ['stop', 'user', 'frequency_penalty', 'presence_penalty']
+
+ # OpenRouter Example
+ - name: 'OpenRouter'
+ # For `apiKey` and `baseURL`, you can use environment variables that you define.
+ # recommended environment variables:
+ apiKey: '${OPENROUTER_KEY}'
+ baseURL: 'https://openrouter.ai/api/v1'
+ headers:
+ x-librechat-body-parentmessageid: '{{LIBRECHAT_BODY_PARENTMESSAGEID}}'
+ models:
+ default: ['meta-llama/llama-3-70b-instruct']
+ fetch: true
+ titleConvo: true
+ titleModel: 'meta-llama/llama-3-70b-instruct'
+ # Recommended: Drop the stop parameter from the request as Openrouter models use a variety of stop tokens.
+ dropParams: ['stop']
+ modelDisplayLabel: 'OpenRouter'
+
+ # Helicone Example
+ - name: 'Helicone'
+ # For `apiKey` and `baseURL`, you can use environment variables that you define.
+ # recommended environment variables:
+ apiKey: '${HELICONE_KEY}'
+ baseURL: 'https://ai-gateway.helicone.ai'
+ headers:
+ x-librechat-body-parentmessageid: '{{LIBRECHAT_BODY_PARENTMESSAGEID}}'
+ models:
+ default:
+ ['gpt-4o-mini', 'claude-4.5-sonnet', 'llama-3.1-8b-instruct', 'gemini-2.5-flash-lite']
+ fetch: true
+ titleConvo: true
+ titleModel: 'gpt-4o-mini'
+ modelDisplayLabel: 'Helicone'
+ iconURL: https://marketing-assets-helicone.s3.us-west-2.amazonaws.com/helicone.png
+
+ # Portkey AI Example
+ - name: 'Portkey'
+ apiKey: 'dummy'
+ baseURL: 'https://api.portkey.ai/v1'
+ headers:
+ x-portkey-api-key: '${PORTKEY_API_KEY}'
+ x-portkey-virtual-key: '${PORTKEY_OPENAI_VIRTUAL_KEY}'
+ models:
+ default: ['gpt-4o-mini', 'gpt-4o', 'chatgpt-4o-latest']
+ fetch: true
+ titleConvo: true
+ titleModel: 'current_model'
+ summarize: false
+ summaryModel: 'current_model'
+ modelDisplayLabel: 'Portkey'
+ iconURL: https://images.crunchbase.com/image/upload/c_pad,f_auto,q_auto:eco,dpr_1/rjqy7ghvjoiu4cd1xjbf
+```
+
+
+
+
+
+
+---
+
+注意:请忽略以下内容
+
+## 输出内容
diff --git a/03-资源/信息科技-气象数据模型-对照组实验.md b/03-资源/信息科技-气象数据模型-对照组实验.md
index ece505c..b415a97 100644
--- a/03-资源/信息科技-气象数据模型-对照组实验.md
+++ b/03-资源/信息科技-气象数据模型-对照组实验.md
@@ -34,3 +34,44 @@
| 数据集B | 模型C | 特征组A | 0.76 | 1.05 | 1.31 | 2.98 | 3.9 | 4.71 |
| 数据集B | 模型C | 特征组B | 0.76 | 1.04 | 1.31 | 2.97 | 3.9 | 4.74 |
| 数据集B | 模型C | 特征组C | 0.59 | 0.65 | 0.7 | 2.44 | 2.55 | 2.81 |
+
+
+
+# -------- RAG START -------
+
+# 信息科技气象数据预测实验备忘
+
+## 用途说明
+归档气象数据预测对照实验中不同**数据集**、**回归模型**与**特征组合**的参数配置及误差表现,明确最优建模方案。
+
+## 配置明细
+
+### 核心结论
+- 依据《信息科技-气象数据模型-对照组实验.pdf》图表验证:**2025年11月竺可桢气象数据集** + **决策树回归(max_depth=10)** + **特征组C**(含 `hour_of_day`)组合的预测结果最接近真实值。
+
+### 数据集变量
+- 数据集 A:2025年7到9月竺可桢气象数据.csv
+- 数据集 B:2025年11月竺可桢气象数据.csv
+
+### 模型变量
+- 模型 A:**线性回归**
+- 模型 B:**决策树回归(max_depth=5)**
+- 模型 C:**决策树回归(max_depth=10)**
+
+### 特征组变量
+- 特征组 A:`['QiWen', 'ShiDu', 'QiYa', 'Fengsu', 'FengXiang']`
+- 特征组 B:`['QiWen', 'ShiDu', 'QiYa', 'Fengsu', 'FengXiang', 'Yushui']`
+- 特征组 C:`['QiWen', 'ShiDu', 'QiYa', 'Fengsu', 'FengXiang', 'Yushui', 'hour_of_day']`
+
+### MAE误差对照表
+| 数据集 | 模型 | 特征组 | 1h 气温 MAE | 2h 气温 MAE | 3h 气温 MAE | 1h 湿度 MAE | 2h 湿度 MAE | 3h 湿度 MAE |
+| :---: | :--: | :---: | :-------: | :-------: | :-------: | --------: | --------: | --------: |
+| 数据集 A | 模型 A | 特征组 A | 5.23 | 5.3 | 5.45 | 14.19 | 14.73 | 15.28 |
+| 数据集 B | 模型 A | 特征组 A | 0.72 | 1.27 | 1.76 | 3.5 | 5.65 | 7.71 |
+| 数据集 B | 模型 B | 特征组 A | 1.57 | 1.79 | 2.19 | 3.7 | 5.37 | 6.97 |
+| 数据集 B | 模型 C | 特征组 A | 0.76 | 1.05 | 1.31 | 2.98 | 3.9 | 4.71 |
+| 数据集 B | 模型 C | 特征组 B | 0.76 | 1.04 | 1.31 | 2.97 | 3.9 | 4.74 |
+| 数据集 B | 模型 C | 特征组 C | 0.59 | 0.65 | 0.7 | 2.44 | 2.55 | 2.81 |
+
+# -------- RAG END -------
+
diff --git a/03-资源/内容清单-觉察兴趣-待看视频.md b/03-资源/内容清单-觉察兴趣-待看视频.md
index 99a5bd5..335ab8f 100644
--- a/03-资源/内容清单-觉察兴趣-待看视频.md
+++ b/03-资源/内容清单-觉察兴趣-待看视频.md
@@ -37,8 +37,8 @@
-
-
-## vidhub app
+## 视频账号信息
+### vidhub app
账号:vidhub-001
密码:vidhub-001
diff --git a/03-资源/操作步骤-工具技巧-Windows命令行zip.md b/03-资源/操作步骤-工具技巧-Windows命令行zip.md
index 261c0b3..4a6c4ee 100644
--- a/03-资源/操作步骤-工具技巧-Windows命令行zip.md
+++ b/03-资源/操作步骤-工具技巧-Windows命令行zip.md
@@ -30,3 +30,36 @@ C:\Program Files (x86)\GnuWin32\bin
```bash
export PATH="$PATH:/c/Program Files (x86)/GnuWin32/bin"
```
+
+
+
+# -------- RAG START -------
+
+# Windows 命令行安装 Zip 工具操作步骤
+
+## 功能说明
+通过在 Windows 系统使用 **winget** 安装 **GnuWin32.Zip**,并配置全局及 **VS Code Git Bash** 环境变量,实现原生终端与开发环境命令行中直接调用 zip 压缩解压功能。
+
+## 前置准备
+
+
+## 执行步骤
+1. 打开 PowerShell 或 CMD,运行以下命令完成软件包安装:
+```bash
+ winget install GnuWin32.Zip
+```
+
+2. 将实际安装路径添加至系统全局环境变量 `PATH`:
+```plaintext
+ C:\Program Files (x86)\GnuWin32\bin
+```
+
+3. 在 **VS Code Git Bash** 终端中追加兼容路径配置:
+```bash
+ export PATH="$PATH:/c/Program Files (x86)/GnuWin32/bin"
+```
+
+## 结果验证
+重新打开系统终端或 VS Code Git Bash,输入 `zip --version`。若正常返回 **GnuZip** 版本信息及帮助参数列表,即表示安装完成且环境变量已全局生效。
+
+# -------- RAG END -------
diff --git a/03-资源/操作说明-工具技巧-Docker指令.md b/03-资源/操作说明-工具技巧-Docker指令.md
index d7cd6a6..7383105 100644
--- a/03-资源/操作说明-工具技巧-Docker指令.md
+++ b/03-资源/操作说明-工具技巧-Docker指令.md
@@ -38,3 +38,32 @@ docker exec juecha-ollama ollama list
docker exec juecha-ollama pkill ollama
```
+
+
+# -------- RAG START -------
+
+# Docker容器管理与模型拉取操作步骤
+
+## 功能说明
+用于**Docker**容器的日常启停、终端交互与状态管理,以及后台执行并监控**Ollama**模型(如 **qwen3.5:0.8b**)的拉取进度与中断操作。
+
+## 前置准备
+- 已安装并配置好 Docker 运行环境
+- 目标容器 `devos` 与 `juecha-ollama` 已完成创建且处于可操作状态
+
+## 执行步骤
+1. 查看所有容器状态:`docker ps -a`(使用 `-a` 参数显示全部记录)
+2. 启动指定容器:`docker start devos`
+3. 进入容器终端交互:`docker exec -it devos /bin/bash`
+4. 关闭目标容器:`docker stop devos`
+5. 移除已停止的容器:`docker rm devos`
+6. 后台执行模型拉取任务:`docker exec -d juecha-ollama ollama pull qwen3.5:0.8b`
+7. 实时查看下载进度日志:`docker logs -f juecha-ollama`
+8. 检查本地模型列表验证结果:`docker exec juecha-ollama ollama list`
+9. 强制终止拉取进程(按需):`docker exec juecha-ollama pkill ollama`
+
+## 结果验证
+容器启停与删除指令执行后,通过 `docker ps -a` 查看状态符合预期;模型拉取完成后,`ollama list` 输出中包含 **qwen3.5:0.8b** 条目且无报错日志;终端命令均正常返回,任务流程闭环。
+
+# -------- RAG END -------
+
diff --git a/Untitled 11.md b/Untitled 11.md
deleted file mode 100644
index bcf0482..0000000
--- a/Untitled 11.md
+++ /dev/null
@@ -1,325 +0,0 @@
-
----
-#领域/未知
-
-#复盘/0 #临时/备忘 #状态/待处理
-
-20260509-备忘-主题名-文件内容
-
-## 一句话描述
-
-[________]
-
----
-~~高质量个人极客开发者终极自托管架构方案(全局定稿版)~~
-
-# ~~高质量・个人极客开发者 终极自托管架构方案(全局定稿版)~~
-
-## ~~核心定位~~
-
-~~面向**个人极客 / 开发者**,满足:**私有不泄密、全自托管、分层解耦、可复用资产、长期 3–5 年不重构、易维护易扩展、RAG/Agent/ 多模型 / 知识库全覆盖**。 原则:**各司其职、不功能重叠、不重复造轮子、能复用绝不重复部署、架构标准化可平滑迭代**。~~
-
-# ~~一、整体架构分层(从上到下 5 层,固定不变)~~
-
-```Plain
-1. 前端入口层(人机交互)
-2. 模型网关层(统一调度、路由、鉴权)
-3. 应用/智能体编排层(RAG、工作流、Agent、知识库应用)
-4. 推理引擎层(LLM对话、Embedding、Rerank 分工部署)
-5. 知识底座层(文档管理、向量库、纯知识库存储)
-```
-
-~~**无冗余、无重复、每一层只干自己该干的事**,后续只在层内迭代,不改动整体架构。~~
-
----
-
-# 二、每一层最终选定组件 & 职责定义(全局固定)
-
-## 1. 前端入口层:只留「LibreChat」
-
-**选定:LibreChat** 淘汰:OpenWebUI、LobeChat、ChatGPT-Next-Web 等(功能重叠,二选一锁定不再换)
-
-### 职责
-
-- 统一聊天 UI、多会话、文件夹、模型切换
-
-- 唯一对外人机入口,日常对话、调试所有智能体 / RAG 应用
-
-- 只做**展示 + 会话管理**,不做 RAG、不做编排、不做模型管理
-
-
-### 为什么不换
-
-UI 成熟、插件生态强、适配所有 OpenAI 格式、可接入网关 / 任意模型,**可替换但没必要换,长期固定做主入口**。
-
----
-
-## 2. 模型网关层:只留「NewAPI」
-
-**选定:NewAPI** 淘汰:OneAPI、LocalAI 网关、自建转发脚本
-
-### 职责(极客必备价值)
-
-- 统一所有模型为 **标准 OpenAI 接口**
-
-- 多渠道聚合:Ollama、vLLM、第三方云模型一键接入
-
-- 密钥管理、访问鉴权、负载均衡、自动降级、用量统计
-
-- 给 LibreChat / MaxKB / Dify 提供**唯一统一调用地址**
-
-
-### 核心意义
-
-后续新增任何模型、任何推理服务,**只在 NewAPI 加一条渠道**,上层所有应用不用改配置。
-
----
-
-## 3. 应用 / 智能体编排层:双核心「MaxKB + Dify」
-
-不选 Langflow、n8n 做主力(偏重度工作流,个人极客日常用不上,留作备选即可)
-
-### 3.1 MaxKB(主力企业级 RAG / 智能体)
-
-职责:
-
-- 私有知识库应用、外部知识库接入、Agent 智能体、工具调用
-
-- 中文生态完善、部署极简、后台管理友好
-
-- 对接底层 AnythingLLM 做外部知识复用
-
-
-### 3.2 Dify(轻量快速应用 / 工作流)
-
-职责:
-
-- 快速搭建对话应用、简单工作流、API 服务输出
-
-- 外部知识库适配层基于 Dify 协议打通 AnythingLLM
-
-- 轻量化原型、快速落地小应用
-
-
-### 分工
-
-- 正式知识库 / 智能体 → **MaxKB**
-
-- 快速原型、简单工作流、对外 API → **Dify** 两者互补,不冲突、不冗余。
-
-
----
-
-## 4. 推理引擎层:Ollama + vLLM 永久并存(固定分工,不二选一)
-
-### 4.1 Ollama(定位:轻量化日常推理 + Embedding)
-
-职责固定:
-
-- 日常对话 LLM:Qwen/GLM/DeepSeek 等 7B–14B
-
-- **专属承载 Embedding 模型**:bge-large-zh
-
-- 优势:模型管理极简、一键拉取、运维零负担、常驻稳定
-
-
-### 4.2 vLLM(定位:高性能推理 + 专属 Rerank)
-
-职责固定:
-
-- 专门跑 **bge-reranker-v2-m3 重排模型**(Ollama 无标准 rerank 接口)
-
-- 后续跑 14B + 大模型、高并发、长文本批量推理
-
-- 不绑定 HuggingFace 也能用,可本地离线模型挂载
-
-
-### 为什么必须并存
-
-- Ollama 赢**易用性**,vLLM 赢**性能 + 特殊任务(Rerank)**
-
-- 不用把所有模型迁到一个服务,各司其职,长期最省心
-
-
----
-
-## 5. 知识底座层:唯一固定「AnythingLLM」
-
-**只把 AnythingLLM 当做纯知识库 / 向量底座,禁用它的对话能力**
-
-职责:
-
-- 全格式文档解析、自动分块、向量入库、文件夹管理
-
-- 唯一知识资产沉淀:**一次上传,LibreChat/MaxKB/Dify 全复用**
-
-- 提供标准 Developer API:向量检索、文档管理、工作区管理
-
-
-### 核心价值
-
-整个架构**只有一个知识库真相源**,不再重复上传、重复向量化,资产永久可复用。
-
----
-
-# 三、完整全局调用链路(固定死,以后永远按这个走)
-
-## 1. 日常对话链路
-
-`用户 → LibreChat → NewAPI → Ollama / vLLM / 第三方模型`
-
-## 2. RAG 知识库问答链路
-
-```Plain
-用户 → LibreChat
- ↓
-MaxKB / Dify
- ↓
-适配层(你写的 Dify 外部知识库转接服务)
- ↓
-AnythingLLM(向量粗排召回)
- ↓
-vLLM(Rerank 精排重排序)
- ↓
-NewAPI → Ollama/大模型 生成回答
-```
-
-## 3. 新增模型 / 新服务链路
-
-`新模型部署 → 仅在 NewAPI 添加渠道 → 上层所有应用自动可用`
-
----
-
-# 四、其他一堆工具统一取舍规则(不用再纠结)
-
-## ✅ 永久保留、纳入生态
-
-- LibreChat、NewAPI、MaxKB、Dify、Ollama、vLLM、AnythingLLM
-
-
-## ❌ 直接放弃 / 不部署 / 不深耕(功能重叠或场景不匹配)
-
-Hermes Agent、OpenClaw、ClawSwarm、QwenPaw、SQLBot、UPage、BettaFish、DBHub、AstrBot、LangBot、Kirara AI、Vane、OpenWebUI、LobeChat、OneAPI、LocalAI、Langflow、n8n
-
-理由: 要么功能和现有栈重复,要么生态小众、要么垂直场景用不上、要么可替换性极强,没必要纳入长期架构。
-
----
-
-# 五、这套方案的核心优势(匹配你高质量可持续需求)
-
-1. **全分层解耦** 每一层独立,后续换前端、换推理、换网关,底层不动,不用重构整个系统。
-
-2. **知识资产唯一沉淀** 所有文档只进 AnythingLLM 一次,全平台复用,无重复劳动。
-
-3. **模型统一治理** NewAPI 做唯一网关,不用每个应用单独配置模型地址密钥。
-
-4. **推理分工极致合理** Ollama 管日常 + 嵌入,vLLM 管重排 + 高性能,互不干扰。
-
-5. **可长期发展 3–5 年** 所有组件都是开源主流、社区活跃、迭代稳定,不是小众短命项目。
-
-6. **极客自由度拉满** 可自定义适配层、可扩展 API、可加工作流、可私有部署不依赖外网、可随时扩容模型和知识库。
-
-7. **运维极简** 全 Docker 部署、开机自启、无复杂依赖、层内迭代不影响全局。
-
-
----
-
-# 六、后续长期维护规则(定规矩,以后不瞎折腾)
-
-1. 不再随意新增小众 AI 应用,只在现有 7 个核心组件内迭代;
-
-2. 永远只把 AnythingLLM 当唯一知识库,不再建新向量库;
-
-3. 模型只在 Ollama/vLLM 部署,统一由 NewAPI 分发;
-
-4. 前端固定 LibreChat,不再频繁换 UI;
-
-5. RAG/Agent 优先 MaxKB,轻量应用走 Dify,不碰其他小众智能体框架。
-
-
----
-
-如果你需要,我可以下一步给你整理: **1. 统一 docker-compose 全集配置(所有服务一键启停)** **2. 每服务固定端口、固定配置、固定访问地址清单** **3. 适配层最终完整版(自带 vLLM rerank、完美对接整套架构)**
-
-
-
-
----
-#领域/未知
-
-#复盘/0 #临时/备忘 #状态/待处理
-
-20260509-备忘-主题名-文件内容
-## 一句话描述
-
-[____自托管大模型架构____]
-
----
-
-## 核心规范
-
->空想不如行动,积累胜于苛求。
->实践 > 沉淀 > 完美主义
-
-实践不是盲目行动,而是带着“小目标、可验证“的方向试错,实践后必须沉淀(比如记录问题、总结规律),否则就是低水平重复。
-
-实践大于沉淀,沉淀大于完美;完美是沉淀的终局方向,沉淀是实践的复盘产物;分域施策,避坑落地,始于行动,终于迭代。
-
----
-
-## 三省沉淀法
-
-- 达成了[________]目标
-- 遇到了[________]问题
-- 下次改进[________]
-
-## 个人理解
-
-[________]
-
-## 实践计划
-
-#状态/待实践
-
-1. [________]
-2. [________]
-3. [________]
-
----
-
-## 核心定义
-
-个人极客/开发者,
-满足:私有不泄密、全自托管、分层解耦、可复用资产、长期3~5年不重构、易维护易扩展、RAG/Agent/多模型/知识库全覆盖
-原则:各司其职、不功能重叠、不重复造轮子、能复用绝不重新部署、架构标准可平滑迭代
-
-
-
-
-
-
-
-
-### 示例
-
-#### ✅ 示例一:
-
-```markdown
-
-```
-
-#### ✅ 示例二:
-
-```markdown
-
-```
-
-### 避坑点
-
-⚠️ 避坑点1:
- 解决方案:
-
-⚠️ 避坑点1:
- 核心问题:
- 解决方案:✅
-
diff --git a/Untitled 12.md b/Untitled 12.md
deleted file mode 100644
index a2ed4a6..0000000
--- a/Untitled 12.md
+++ /dev/null
@@ -1,321 +0,0 @@
-
----
-#领域/未知
-
-#复盘/0 #临时/备忘 #状态/待处理
-
-20260509-备忘-主题名-文件内容
-
-## 一句话描述
-
-[________]
-
----
-## 一句话描述
-
-面向个人极客/开发者,打造一套**分层解耦、职责单一、自托管优先、资产可复用**的全链路AI服务架构,完美覆盖日常深度对话与个人知识库RAG高质量问答两大核心场景,严格保障3-4年不重构、易维护、可平滑迭代,拒绝无效折腾。
-
-## 详细解释
-
-### 一、最高优先级核心思想(所有设计必须严格遵守)
-✅ 黄金核心原则(来源:软件工程分层架构理论《软件工程:实践者的研究方法》、微服务设计规范《微服务设计》)
-1. **职责单一、分层解耦**:每层只做一件事,绝不功能重叠,层间仅通过标准OpenAI格式API通信,层内迭代不影响上下游
-2. **自托管优先、兼容开放**:核心链路全自托管保障数据隐私,同时通过标准化网关兼容第三方API兜底,绝不重复造轮子
-3. **资产可复用、长期主义**:所有配置、知识库、模型资产标准化沉淀,架构符合行业通用标准,保障3-4年不重构,仅做层内升级
-4. **折腾有价值、拒绝无效内耗**:所有选型均为GitHub星标≥10k、近3个月活跃更新、有社区长期维护的开源项目,避免小众项目停更吃灰,每一步部署都服务于核心场景
-
----
-
-### 二、架构分层设计(原理→选型→用法→案例,新手友好)
-基于**关注点分离的分层架构模式**,将整个系统拆分为5个完全解耦的层级,从用户入口到算力底座逐层向下调用,绝不跨层通信,完美适配戴福斯技能习得模型,新手可分阶段落地。
-
-#### 1. 前端入口层:LibreChat
-- **核心原理**:用户交互的唯一聚合入口,统一对话体验,完全屏蔽下层服务的接口差异,符合B/S架构前端聚合层设计规范
-- **知识点&同类工具对比**:
- | 工具 | 核心差异 | 适配性 |
- |------|----------|--------|
- | LibreChat(最终选型) | 支持多会话归档、多模型一键切换、插件系统、完美兼容OpenAI格式,社区活跃(16k+星标),长期维护有保障 | 完美匹配个人全场景对话需求,一个入口聚合日常对话+RAG问答,无需切换多个工具 |
- | ChatGPT-Next-Web | 轻量但功能单薄,RAG和插件支持弱 | 仅适合极简对话,无法满足长期复杂场景 |
- | Chatbox | 桌面端为主,自托管Web端能力弱 | 不适合统一入口的架构设计 |
-- **核心用法**:仅对接下层NewAPI的OpenAI兼容端点,所有模型、RAG应用全部通过NewAPI同步,前端无需重复配置
-- **落地案例(Docker一键部署)
-- **知识联动**:作为架构最顶层,仅依赖紧邻的网关层,后续更换前端仅需修改本层,完全不影响下层所有服务,符合层内迭代原则。
-
-#### 2. 模型网关层:NewAPI
-
-- **核心原理**:整个架构的 “交通枢纽”,实现 AI 流量调度、模型分发、故障转移、权限管控,是实现 “新增模型仅在网关添加,上层自动可用” 的核心,来源:API 网关设计模式
-- **知识点 & 同类工具对比**:
-
- 表格
-
- |工具|核心差异|适配性|
- |---|---|---|
- |NewAPI(最终选型)|完美兼容 OpenAI 格式,支持全主流模型接入、故障自动转移、用量统计、密钥管理,社区活跃(10k + 星标),持续更新|完全匹配分层解耦需求,实现模型能力的统一管理和分发|
- |OneAPI|原作者停更,分支混乱,长期维护性极差|不符合 3-4 年不重构的核心要求|
- |OpenLLM|侧重模型部署,网关调度能力极弱|职责不匹配,无法承担枢纽角色|
-
-- **核心用法**:
-
- 1. 所有下层服务(Ollama、vLLM、Dify/MaxKB、第三方 API)全部接入 NewAPI,向上提供唯一的 OpenAI 兼容端点
- 2. 配置模型分流规则:日常对话调度 Ollama,RAG 相关推理调度 vLLM,自托管服务故障时自动切第三方 API 兜底
- 3. 为上层不同应用分配独立密钥,实现权限隔离和用量管控
-
-- **落地案例**:新增自托管模型仅需 3 步,上层零修改
-
- 1. 在 NewAPI 后台新增渠道,选择对应模型类型,填写 Ollama/vLLM 的接口地址和密钥
- 2. 配置模型名称,设置分流规则和兜底策略
- 3. 保存后,LibreChat、Dify、MaxKB 等所有上层应用自动获得该模型的调用能力
-
-- **知识联动**:是整个架构的核心中间层,承接所有上层入口,调度所有下层服务,完全解耦上层应用和底层推理,层内新增 / 修改模型,完全不影响上下游。
-
-#### 3. 应用 / 智能体编排层:Dify + MaxKB 共存(职责完全分离,无功能重叠)
-
-- **核心原理**:RAG 流程、Agent 工作流、知识库应用的可视化编排层,将底层模型、向量库能力封装成可直接调用的对话应用,来源:低代码应用编排设计规范
-- **知识点 & 同类工具对比**:
-
- 1. **为什么共存而非二选一?** 严格拆分职责,完全避免功能重叠:
-
- - Dify:负责**复杂 Agent、多轮工作流、高级 RAG 流程定制、多文档交叉推理**,适合需要复杂逻辑的深度知识串联场景
- - MaxKB:负责**轻量化、开箱即用的个人知识库问答、文档快速入库、极简 RAG 应用**,适合日常快速查知识库、单文档问答,资源占用低,维护成本极低
-
- 2. 同类工具对比:Flowise、LangFlow 更偏向开发者低代码拖拽,上手门槛高,个人日常维护成本高,不符合 “拒绝无效折腾” 的原则;Dify 和 MaxKB 中文支持完美,社区活跃,长期维护有保障。
-
-- **核心用法**:
-
- 1. 所有模型能力**仅对接 NewAPI**,不直接调用底层模型,保障模型统一管理
- 2. 所有知识库能力**仅调用下层 AnythingLLM 的 API**,不自身维护向量库,避免知识库重复存储、资产分散
-
-- **落地案例(Dify 对接 AnythingLLM 转接服务核心代码)**:
-- **知识联动**:承接前端的 RAG 请求,调用下层知识库底座和推理能力,完全符合分层原则,层内升级应用、新增工作流,完全不影响上下游,后续更换编排应用,知识库资产完全无需迁移。
-
-#### 4. 推理引擎层:Ollama + vLLM 共存(职责完全分离,无功能重叠)
-
-- **核心原理**:大语言模型、Embedding 模型、Rerank 模型的本地推理运行环境,是整个架构的 “算力核心”,来源:LLM 推理引擎架构设计规范
-- **知识点 & 同类工具对比**:
-
- 1. **为什么共存而非二选一?** 严格拆分职责,完全避免功能重叠:
-
- - Ollama:负责**日常对话、轻量模型推理、快速模型部署 / 切换**,开箱即用,一键 pull 就能运行主流开源模型,适合日常深度哲学探讨的对话场景,维护成本极低,社区极其活跃(90k + 星标)
- - vLLM:负责**高吞吐、低延迟的批量推理、Embedding 生成、Rerank 精排、大负载 RAG 场景**,基于 PagedAttention 技术实现 10 倍以上的推理效率提升,适合 RAG 场景下的批量向量生成、重排序
-
- 2. 同类工具对比:TGI 上手门槛高,配置复杂,个人维护成本高;LocalAI 兼容性差,性能弱,更新慢,均不符合长期使用需求。
-
-- **核心用法**:
-
- 1. Ollama 和 vLLM 全部接入 NewAPI,向上提供标准 OpenAI 格式接口
- 2. NewAPI 配置分流规则:日常对话优先调度 Ollama,RAG 相关的向量生成、Rerank、批量生成优先调度 vLLM
-
-- **落地案例(一键部署命令)**:
-- **知识联动**:为上层所有应用提供统一的推理能力,层内升级模型、优化推理参数,完全不影响上层应用,符合层内迭代优先的原则。
-
-#### 5. 知识库底座层:AnythingLLM
-
-- **核心原理**:个人知识资产的唯一沉淀底座,负责统一的文档管理、解析、向量存储、粗排召回,是实现 “资产可复用、不重复造轮子” 的核心,来源:《RAG 实战》中向量数据库与文档管理层设计规范
-- **知识点 & 同类工具对比**:
-
- 1. **为什么选 AnythingLLM 作为唯一底座,而不是让 Dify/MaxKB 自带向量库?**
-
- 核心原因:如果 Dify 和 MaxKB 各自维护向量库,同一份文档需要重复上传,知识库无法跨应用复用,后续更换应用还要迁移数据,完全违背 3-4 年不重构、资产可复用的原则。AnythingLLM 自带完整的文档解析、分块、向量管理、版本控制能力,同时提供标准 API,完美对接上层所有编排应用,实现 “一次上传,全架构复用”。
- 2. 同类工具对比:Milvus、Qdrant 是纯向量数据库,没有文档管理能力,个人使用需要自行开发文档处理流程,折腾成本极高,不符合 “拒绝无效折腾” 的原则。
-
-- **核心用法**:
-
- 1. 所有个人文档、知识资料**统一上传到 AnythingLLM**,进行标准化的文档解析、分块、向量生成、版本管理
- 2. 向量粗排召回全部在本层完成,精排重排序交给上层 vLLM,严格职责分离
- 3. 向上提供标准 API,供上层编排应用调用,不直接对接前端
-
-- **落地案例(Docker 一键部署)**:
-- **知识联动**:是个人知识资产的唯一沉淀层,上层所有 RAG 应用都调用本层的能力,后续哪怕更换整个编排层,知识库完全无需迁移,完美符合长期可发展、资产可复用的核心需求。
-
----
-
-### 三、两条核心业务链路(全闭环,无跨层调用)
-
-1. **日常对话链路(极简高可用)**
-
- 用户 → LibreChat(前端入口) → NewAPI(模型网关) → Ollama/vLLM(自托管推理)/ 第三方 API(兜底) → 结果原路返回
-2. **RAG 知识库问答链路(高精准资产复用)**
-
- 用户 → LibreChat(统一入口) → NewAPI(网关路由到对应 RAG 应用) → Dify/MaxKB(编排层处理对话逻辑) → 转接服务 → AnythingLLM(知识库粗排召回) → vLLM(Rerank 精排) → NewAPI(调度大模型) → Ollama/vLLM(推理生成回答) → 结果原路返回
-
-## 延伸补充
-
-### 常见避坑点
-
-⚠️ 每个坑点均配套精准解决方案,严格规避无效折腾和架构失效
-
-1. **坑点**:功能重叠,重复造轮子,比如 Dify 和 MaxKB 各自维护知识库,同一份文档多次上传,数据分散
-
- **解决方案**:严格遵守「知识库唯一底座」黄金规则,所有文档统一存入 AnythingLLM,上层编排层只做流程编排,绝不存储任何知识库数据
-2. **坑点**:选型小众开源项目,后续作者停更,项目吃灰,不符合 3-4 年不重构的需求
-
- **解决方案**:✅ 强制选型规则:只选 GitHub 星标≥10k、近 3 个月有活跃更新、社区 issue 响应及时的开源项目,本次架构所有选型均符合该规则
-3. **坑点**:层间强耦合,比如前端直接调用底层模型,后续换模型要修改前端配置,维护成本极高
-
- **解决方案**:严格遵守分层架构,所有层间通信仅通过标准 OpenAI API,上层只对接紧邻的下层,**绝对禁止跨层调用**
-4. **坑点**:一次性部署所有服务,复杂度太高,新手无法驾驭,最终全部吃灰
-
- **解决方案**:按照戴福斯模型分阶段落地,先搭建最小可用链路(LibreChat→NewAPI→Ollama),跑通日常对话后,再逐步扩展知识库和 RAG 能力
-5. **坑点**:自托管模型性能不足,日常对话卡顿,体验差
-
- **解决方案**:在 NewAPI 中配置超时自动兜底策略,自托管模型响应超时时,自动切换到第三方 API,保障体验的同时,符合自托管优先的原则
-6. **坑点**:数据无备份,服务器故障导致知识库、配置全部丢失
-
- **解决方案**:所有服务的配置、数据全部通过 Docker Volume 挂载到宿主机,设置定时任务每日备份核心数据(AnythingLLM 知识库、NewAPI 配置、LibreChat 会话数据)
-7. **坑点**:频繁更换 Embedding/Rerank 模型,导致知识库反复重建,资产无法复用
-
- **解决方案**:固定使用社区公认效果稳定的开源模型(bge-large-zh-v1.5 做 Embedding,bge-reranker-large 做 Rerank),非必要不更换,保障知识库资产长期可用
-
-### 知识点浓缩(背诵级,解决反复查资料的核心需求)
-
-1. **核心架构**:5 层分层架构,**入口层→网关层→编排层→推理层→底座层**,严格职责单一,绝不跨层调用
-2. **核心原则**:分层解耦、自托管优先、资产可复用、长期主义、拒绝无效折腾
-3. **选型速记**:
-
- - 统一入口:LibreChat
- - 唯一网关:NewAPI
- - 编排分工:Dify 做复杂 Agent / 工作流,MaxKB 做轻量知识库问答
- - 推理分工:Ollama 做日常对话,vLLM 做 RAG 高吞吐推理 / Rerank
- - 唯一知识库底座:AnythingLLM
-
-4. **两条核心链路**:
-
- - 日常对话:LibreChat → NewAPI → Ollama/vLLM/ 第三方 API
- - RAG 问答:LibreChat → NewAPI → Dify/MaxKB → AnythingLLM → vLLM Rerank → 大模型生成
-
-5. **黄金选型规则**:只选星标≥10k、近 3 个月活跃更新的开源项目,保障长期维护
-6. **资产复用核心**:所有知识文档统一存入 AnythingLLM,上层应用只调用,不存储
-
-### 进阶优化方向(3-4 年平滑迭代,无需重构架构)
-
-1. **高可用升级**:层内服务集群部署,比如 NewAPI 多实例、vLLM 多节点推理,实现负载均衡和故障自愈,层内升级不影响整体架构
-2. **数据安全升级**:新增私有 CA 证书,全链路 HTTPS 加密,对接内网 VPN,实现外网安全访问,保障私有数据不泄露
-3. **知识资产自动化**:对接 Obsidian、Notion 等个人笔记工具,实现文档自动同步到 AnythingLLM,知识库自动更新,无需手动上传
-4. **自动化运维升级**:新增 Prometheus+Grafana 监控系统,监控所有服务的运行状态、模型推理性能、磁盘使用率,异常自动告警,降低维护成本
-5. **Agent 能力扩展**:在 Dify 中对接自定义工具、代码执行环境、第三方 API,实现个人自动化任务(比如自动文献整理、数据分析),完全在现有架构内扩展
-6. **多模态能力升级**:在推理层新增多模态模型部署,通过 NewAPI 同步到上层所有应用,实现图片、文档的多模态问答,层内扩展,不影响整体架构
-
-## 提问建议
-
-为了帮助你真正吃透这套架构,从「有意识无能」进阶到「有意识有能」,你可以围绕以下方向提问,也可以提出你自己的困惑:
-
-1. 基础落地类:针对某一层的具体部署步骤、配置细节、开箱即用的完整脚本,我可以给你一步到位的执行方案
-2. 架构理解类:比如 “为什么必须把知识库底座和编排层分开,而不是直接用 Dify 自带的知识库?”,帮你理清底层逻辑,避免知其然不知其所以然
-3. 避坑实操类:针对 RAG 召回效果差、模型部署失败、服务间对接不通等具体问题,我可以给你精准的排查步骤和解决方案
-4. 分阶段落地类:如果你是新手,我可以给你制定从最小可用版本(MVP)到完整架构的分阶段落地计划,避免一次性折腾太多导致吃灰
-5. 选型对比类:如果你想替换某一层的工具,我可以给你详细的优劣势对比、适配方案,以及是否符合长期主义原则的专业判断
-6. 原理深度类:比如 “为什么分层架构能实现 3-4 年不重构?”,帮你理解底层的软件工程原理,建立自己的架构设计能力
-
-
-# 个人自托管AI架构 绝对优先级行动纲领
-## 纲领总纲·不可动摇的顶层铁律(最高优先级,所有行动不得违反)
-本纲领所有行动均围绕**两大核心场景**(日常深度哲学对话、个人知识库RAG高质量知识串联)展开,严格遵守5条终身铁律,任何违反以下规则的行动均判定为「无效折腾」,绝对禁止:
-1. **分层解耦、职责唯一铁律**:一层仅承担一项核心职责,绝不出现功能重叠;层间仅通过标准OpenAI格式API通信,绝对禁止跨层调用
-2. **资产可复用铁律**:所有个人知识资产、模型配置、应用资产必须标准化统一沉淀,可跨服务全架构复用,绝不重复建设、重复存储
-3. **自托管优先、兼容兜底铁律**:核心链路100%自托管保障数据隐私,仅将第三方API作为故障兜底方案,绝不形成第三方服务依赖
-4. **长期主义铁律**:所有服务选型必须符合3-4年可维护标准,仅选择GitHub星标≥10k、近3个月活跃更新、社区长期维护的主流开源项目,绝对禁止小众无保障项目
-5. **核心价值导向铁律**:所有行动必须直接服务于两大核心场景,非核心需求一律延后,禁止为了尝鲜、跟风开展无明确价值的折腾
-
----
-
-## 绝对优先级梯队计划(严格按顺序执行,上一梯队未100%完成验收,绝对禁止进入下一梯队)
-### P0级:生死线·架构骨架搭建(绝对第一优先级)
-#### 核心目标
-搭建符合分层解耦铁律的**最小可行架构骨架**,固化全生命周期不变的架构边界、通信规范,为3-4年不重构打下不可动摇的根基,跑通最基础的自托管对话闭环。
-#### 核心行动项(严格按先后顺序执行)
-1. 书面固化5层架构的唯一职责、边界、层间通信规范,形成《架构边界说明书》,明确禁止跨层调用、功能重叠的红线
-2. 落地**模型网关层(NewAPI)**,建立全架构唯一的模型调度、权限管控、API分发标准,作为整个架构的唯一交通枢纽
-3. 落地**前端入口层(LibreChat)**,仅对接网关层,建立全架构唯一的用户交互入口,实现入口与底层能力的完全解耦
-4. 落地**推理引擎层核心节点(Ollama)**,对接网关层,完成自托管日常对话链路的全闭环
-#### 验收标准(必须100%全部满足,方可进入下一梯队)
-1. 有明确可落地的《架构边界说明书》,每层职责唯一、无功能重叠、无跨层调用设计
-2. 仅通过网关层新增/修改模型,前端入口无需任何配置修改即可自动适配
-3. 日常对话链路100%自托管闭环,可连续稳定运行72小时无故障
-4. 所有层间通信均采用标准OpenAI格式API,无定制化强耦合对接
-#### 本阶段绝对禁止项(触碰即判定为无效折腾)
-1. 禁止提前部署RAG、知识库、Agent、工作流等非核心功能
-2. 禁止修改层间通信规范、禁止任何形式的跨层调用
-3. 禁止部署小众、无长期维护保障的开源项目
-4. 禁止一次性部署多个推理引擎,仅保留Ollama一个核心推理节点
-
----
-
-### P1级:核心能力线·两大核心场景全落地(P0验收通过后方可进入)
-#### 核心目标
-完成全架构5层能力的完整落地,实现两大核心场景的全闭环,满足用户全部核心诉求,同时固化资产复用、层内迭代的标准规范,保障架构长期可维护。
-#### 核心行动项(严格按先后顺序执行)
-1. 落地**知识库底座层(AnythingLLM)**,建立全架构唯一的知识资产沉淀标准,固化文档入库、解析、向量存储、召回的统一规范,作为个人知识资产的唯一载体
-2. 落地**推理引擎层补充节点(vLLM)**,对接网关层,明确与Ollama的职责边界:仅负责RAG场景的高吞吐推理、Rerank精排,不承接日常对话流量
-3. 落地**应用编排层轻量化节点(MaxKB)**,仅对接网关层+知识库底座,跑通极简RAG知识库问答链路,满足日常快速知识串联的核心需求
-4. 落地**应用编排层复杂能力节点(Dify)**,仅对接网关层+知识库底座,实现复杂Agent、多轮工作流、深度知识交叉推理能力,满足深度哲学探讨、复杂知识串联需求
-5. 固化两大核心链路的全流程规则,包括模型分流策略、故障兜底规则、权限管控规范、资产复用标准
-#### 验收标准(必须100%全部满足,方可进入下一梯队)
-1. 知识资产实现「一次入库、全架构复用」,一份文档仅需一次上传,所有上层应用均可调用,无重复存储、重复建设
-2. 两大核心链路100%闭环,无跨层调用、无功能重叠,可连续稳定运行7天无故障
-3. RAG问答链路实现「粗排-精排-生成」全流程标准化,可稳定输出贴合个人知识库的高质量知识串联内容
-4. 所有新增模型、新增知识库、新增应用,均仅需在对应层内操作,不影响其他层的稳定运行
-#### 本阶段绝对禁止项(触碰即判定为无效折腾)
-1. 禁止在编排层内自建向量库、存储知识库资产,必须统一调用知识库底座层能力
-2. 禁止模糊Ollama与vLLM的职责边界,禁止重复部署同类型推理能力
-3. 禁止新增非核心场景的功能与独立服务
-4. 禁止修改P0阶段固化的架构骨架、层间通信规范与边界规则
-
----
-
-### P2级:体验优化线·可维护性与体验升级(P1验收通过后方可进入)
-#### 核心目标
-在不改动核心架构骨架的前提下,仅做层内优化,提升架构的可维护性、稳定性、使用体验,降低长期运维成本,不新增核心能力边界。
-#### 核心行动项(无严格先后顺序,按需选择,不影响核心架构)
-1. 层内高可用优化:核心服务多实例部署、故障自动转移、负载均衡配置
-2. 自动化运维体系搭建:服务状态监控、异常告警、核心数据自动备份机制落地
-3. 知识资产自动化同步:对接个人笔记工具、文档库,实现知识库自动更新、增量同步
-4. 全链路安全加固:内网访问控制、全链路HTTPS加密、权限精细化管控
-5. 核心场景体验优化:对话分流规则优化、RAG召回效果调优、模型推理性能优化
-#### 验收标准
-1. 所有优化均在层内完成,未改动P0阶段固化的架构骨架、层间规范与边界
-2. 架构可维护性显著提升,日常运维耗时降低80%以上
-3. 两大核心场景的响应速度、稳定性、输出质量有可量化的提升
-#### 本阶段绝对禁止项
-1. 禁止改动核心架构分层、职责边界、通信规范
-2. 禁止新增与核心场景无关的独立服务
-3. 禁止部署小众无保障的开源项目,破坏长期可维护性
-
----
-
-### P3级:长期扩展线·未来能力进阶(P2验收通过且稳定运行6个月以上方可进入,绝对禁止提前触碰)
-#### 核心目标
-基于现有固化的架构骨架,仅做层内扩展,补充非核心的进阶能力,完全不改动核心架构,保障3-4年不重构的前提下,拓展架构的能力边界。
-#### 核心行动项(按需选择,无严格先后顺序)
-1. 多模态能力扩展:在推理层新增多模态模型,通过网关层同步到全架构所有应用
-2. 自动化Agent能力扩展:在编排层新增自定义工具、代码执行环境,实现个人自动化任务
-3. 分布式算力扩展:推理层新增分布式推理节点,提升大模型推理性能
-4. 知识资产体系扩展:知识库底座新增多源数据接入、知识图谱、版本管理进阶能力
-5. 多端入口扩展:入口层新增移动端、桌面端入口,统一对接网关层,不改动下层任何架构
-#### 验收标准
-1. 所有扩展均在层内完成,未改动核心架构骨架、层间规范与边界
-2. 扩展能力可完全复用现有资产,无需重复建设
-3. 两大核心场景运行稳定,不受扩展能力的任何影响
-#### 本阶段绝对禁止项
-1. 禁止为了扩展能力改动核心架构分层、职责边界、通信规范
-2. 禁止新增与核心场景无关的独立服务,导致架构臃肿
-3. 禁止部署小众、无长期维护的项目,破坏架构长期可维护性
-
----
-
-## 3-4年不重构的核心保障机制(终身执行)
-1. **架构骨架终身不变原则**:P0阶段固化的5层分层架构、层间职责边界、标准OpenAPI通信规范,3-4年内绝对不改动,所有变更、优化、扩展均在层内完成
-2. **资产标准化沉淀原则**:所有知识资产、模型资产、配置资产,均按架构标准统一沉淀,不与单一服务绑定,更换同类型服务无需迁移任何核心资产
-3. **选型终身可替代原则**:所有层的服务选型,均基于标准OpenAI API设计,可随时替换同类型服务,不影响其他层的稳定运行,彻底避免厂商/项目锁定
-4. **月度架构巡检机制**:每月执行一次架构巡检,检查是否出现功能重叠、跨层调用、无效折腾的情况,及时修正,避免架构腐化
-5. **最小变更原则**:所有变更均采用最小影响原则,仅改动需要优化的部分,不做全架构重构,保障架构长期稳定
-
----
-
-## 无效折腾判定红线(终身执行,符合任意一条即为无效折腾,绝对禁止)
-1. 未完成上一优先级梯队的验收标准,提前进入下一梯队的行动
-2. 改动P0阶段固化的核心架构骨架、层间职责边界、通信规范
-3. 部署与两大核心场景无关的服务、功能
-4. 重复建设已有能力,出现功能重叠、资产重复存储的情况
-5. 选型小众、无长期社区维护的开源项目,存在1年内停更风险
-6. 出现跨层调用,破坏分层解耦架构
-7. 为了跟风、尝鲜更换已有稳定运行的服务,无明确的核心场景价值提升
diff --git a/Untitled 14.md b/Untitled 14.md
deleted file mode 100644
index 979b830..0000000
--- a/Untitled 14.md
+++ /dev/null
@@ -1,14 +0,0 @@
-
----
-#领域/未知
-
-#复盘/0 #临时/备忘 #状态/待处理
-
-20260509-备忘-主题名-文件内容
-
-## 一句话描述
-
-[________]
-
----
-![[Pasted image 20260509134626.png]]
\ No newline at end of file
diff --git a/Untitled 15.md b/Untitled 15.md
deleted file mode 100644
index 02efa55..0000000
--- a/Untitled 15.md
+++ /dev/null
@@ -1,57 +0,0 @@
-
----
-#领域/未知
-
-#复盘/0 #临时/备忘 #状态/待处理
-
-20260509-备忘-主题名-文件内容
-
-## 一句话描述
-
-[________]
-
----
-
-
-```yaml
- custom:
- - name: "Deepseek"
- apiKey: "${OPENAI_DEEPSEEK_API_KEY}"
- baseURL: "https://api.deepseek.com/v1"
- models:
- default: ["deepseek-chat", "deepseek-coder", "deepseek-reasoner"]
- fetch: false
- titleConvo: true
- titleModel: "deepseek-chat"
- modelDisplayLabel: "Deepseek"
-
- - name: "Alibailian"
- apiKey: "${OPENAI_ALIBAILIAN_API_KEY}"
- baseURL: "https://dashscope.aliyuncs.com/compatible-mode/v1"
- models:
- default: ["qwen3.6-flash-2026-04-16"]
- fetch: false
- titleConvo: true
- titleModel: "qwen3.6-flash-2026-04-16"
- modelDisplayLabel: "Qwen3"
-
- - name: "MaxKB"
- apiKey: "agent-d399a24728ebca8b87193326e4963617"
- baseURL: "http://192.168.0.151:8080/chat/api/019e0542-74a5-77d2-8b64-8ba18457b4d3"
- models:
- default: ["maxkb-chat"]
- fetch: false
- titleConvo: true
- titleModel: "maxkb-chat"
- modelDisplayLabel: "MaxKB"
-
- - name: "Dify"
- apiKey: "sk-NdKMIUW5cuGHGXDimJ4c8TtURWIIkpTPhJdCxJCpXXQFoyqU"
- baseURL: "http://192.168.0.151:30104/v1" # 把localhost换成你NewAPI的实际IP
- models:
- default: ["juecha"]
- fetch: false
- titleConvo: false
- modelDisplayLabel: "Dify"
- type: "openai"
-```
\ No newline at end of file
diff --git a/Untitled 20.md b/Untitled 20.md
deleted file mode 100644
index a08a9e9..0000000
--- a/Untitled 20.md
+++ /dev/null
@@ -1,36 +0,0 @@
-
----
-#领域/未知
-
-#复盘/0 #临时/备忘 #状态/待处理
-
-20260511-备忘-主题名-文件内容
-
-## 一句话描述
-
-[________]
-
----
-### 方案 2:临时禁用交互模式(快速修复)
-
-通过 `DEBIAN_FRONTEND=noninteractive` 临时关闭 `apt` 的交互提示,构建完成后重置变量:
-
-dockerfile
-
-```
-RUN apt-get update && \
- DEBIAN_FRONTEND=noninteractive apt-get install -y git wget unzip openssh-server tzdata && \
- apt-get clean && rm -rf /var/lib/apt/lists/*
-```
-
-⚠️ 注意:这个变量会影响后续所有 `apt` 命令,建议只在安装时临时设置,构建完成后重置:
-
-dockerfile
-
-```
-ENV DEBIAN_FRONTEND=noninteractive
-RUN apt-get update && apt-get install -y git wget unzip openssh-server tzdata
-ENV DEBIAN_FRONTEND=dialog
-```
-
-### 方案 3:使用 `--assume-yes` + 预配置(更
\ No newline at end of file
diff --git a/Untitled 21.md b/Untitled 21.md
deleted file mode 100644
index 0418d2c..0000000
--- a/Untitled 21.md
+++ /dev/null
@@ -1,90 +0,0 @@
-
----
-#领域/未知
-
-#复盘/0 #临时/备忘 #状态/待处理
-
-20260511-备忘-主题名-文件内容
-
-
-注意:请忽略以上内容
-
----
-## 一句话描述
-
-[___数字化文档存储至RAG_____]
-
-## 操作需求
-
-问题描述是【输入内容】,请专业耐心的解答我的问题,并将你的答案整理归纳至【输出内容】
-
-## 内容要求
-
-1. 结论先行,主次分明:先给出「一句话核心结论」,再分点给出细节
-2. 可信权威:在表述知识点时,标注其使用到的权威理论、来源
-3. 逐层递进逻辑链:原理->知识点->用法->案例,理解本质再应用
-4. 实操为王,案例全覆盖:所有知识点必须配备「可实现的案例」
-5. 避坑指南,强制标配:必须单独列出易踩坑点+精准解决方案
-6. 融会贯通:讲解单个知识点时,必须主动关联同类/互补工具,明确差异、标准、场景,帮助建立知识体系
-7. 浓缩总结,提炼精华,方便记忆:提炼所有重点为极简内容,方便复习和快速查阅
-8. 语言风格:口语化、专业但不晦涩,复杂概念用「大白话 + 示例」解释,拒绝堆砌专业术语;所有命令 / 代码 / 参数格式工整,带中文注释,一目了然。
-9. 内容结构:层级清晰,用标题 / 分点做区分,核心内容加粗标注,代码块独立展示,重点规则用「✅ 黄金规则」「⚠️ 避坑点」「💡 核心技巧」做醒目标注,阅读体验极佳。
-10. 无冗余内容:不拓展无关知识点、不做无意义的参数罗列、不写复杂冷门用法,所有内容都围绕「吃透核心 + 落地实战」,精准匹配学习需求,不浪费时间。
-11. 知识联动要求:当讲解后续内容时,必须主动关联之前讲解过的内容,形成知识闭环。
-12. 联动案例:必须是高频使用场景
-13. 真正思考:善用思维工具(例如苏格拉底式提问、费曼学习法)引导用户去思考去提问,在不断的提问中真正的学习认知
-
-## 输出格式
-
-- [x] markdown
-
-```markdown
-## 一句话描述
-
-【使用一句话概括】
-
-## 详细解释
-
-【你的解答】
-
-## 延伸补充
-
-...
-### 常见避坑点
-
-### 知识点浓缩
-
-【背诵级,解决反复查资料的核心需求】
-
-### 进阶优化方向
-
-## 提问建议
-...
-
----
-```
-
-## 注意
-1. 请判断勾选框是否处于被勾选状态,例如markdown勾选框处于未被勾选状态,则无需输出markdown格式
-
-以上内容为系统提示,为了辅助你更好的回答。
-
----
-
-## 输入内容
-
-| 项目 | 内容 |
-| ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| 你的角色设定 | 你是一位结构化、体系化的[_人工智能、数字化管理、RAG、知识库管理、_______]教学专家,定位为精准知识的输出者 |
-| 上下文 | 我已经构建了LibreChat-dify-anythingllm-ollama-bge-large-zh的技术链路
我也有了形成数字化文档的markdown内容 |
-| 约束 | 批判的去思考认知,不要受到我或者其他资料的引导所影响,保持正确的理论逻辑;
技能习得四阶段理论(戴福斯模型):无意识无能->有意识无能->有意识有能->无意识有能,需要考虑到我目前的状态是新手;
分步骤划分,我希望能够得到原子类的步骤
我希望拆解完之后,我能够通过多种“工具”(这里的工具指的是类似编写代码、工作流,并非一个独立的新服务)来处理它,例如一段代码/工作流负责提取文档的云信息、另一个负责处理人类语气词 |
-| 任务目标 | 基于现有架构和数字化文档,将以人类阅读为基石的文档,转化为RAG知识库可以高效处理的规范化格式,针对每个环节给出指示方针,无需展示具体代码细节,但是方向理论要正确 |
-| 解决问题 | 人类阅读的文档对于RAG来说效率没那么高,我希望能够高质量的处理数字化文档 |
-| 服务于 | 高质量的利用人类沉淀的文档信息,定制化引导RAG、大模型 |
-| | |
-
----
-
-注意:请忽略以下内容
-
-## 输出内容
diff --git a/Untitled 23.md b/Untitled 23.md
deleted file mode 100644
index 73c2509..0000000
--- a/Untitled 23.md
+++ /dev/null
@@ -1,231 +0,0 @@
-
----
-#领域/未知
-
-#复盘/0 #临时/备忘 #状态/待处理
-
-20260513-备忘-主题名-文件内容
-
-## 一句话描述
-
-[________]
-
----
-# 逐条深度解答你 6 个核心问题
-
-结合**食品安全、作息节奏、收纳占地、保鲜原理、食谱拓展、破壁机刚需性、厨具最优选型**,全部务实落地,不盲目、不追热度,完全适配你 21:30 预约→22 点睡→5 点起→5:15 训练→7:20 归家打包 的固定节奏,最终帮你定制**可循环、可保鲜、不占地、不单调、生生不息**的终身方案。
-
-## 1. 鸡胸肉能不能整夜泡水 / 腌制?空气炸锅双锅怎么用最合理
-
-### 核心结论
-
-**室温绝对不能整夜泡 / 腌制;冰箱 0–4℃冷藏,完全可以整夜泡水、腌制,安全无风险**。
-
-- 室温放置超过 2 小时,鸡胸肉细菌大量繁殖,高蛋白食材极易变质,**坚决禁止**;
-- 冰箱冷藏密封存放,整夜 8–10 小时,**肉质不柴、不变质、无安全隐患**,健身人群常规操作。
-
-### 适配你空气炸锅双锅优势
-
-你有两个子锅:一个纯炸、一个可蒸可炸
-
-1. 晚上 21:30 前:把鸡胸切块 / 整块,加水浸泡 或 简单黑胡椒 / 盐腌制;
-2. 直接装进**空气炸锅子锅**,密封盖好,放进冰箱冷藏;
-3. 第二天 5 点起床,直接从冰箱拿出子锅,放进空气炸锅,选蒸 / 炸模式,**无人监管自动运行**;
-4. 完全不用早起临时处理鸡胸,完美减负,还规避了隔夜室温泡水的安全问题。
-
-### 额外福利
-
-后续可以轮换:去皮鸡腿肉、巴沙鱼、瘦牛肉丸,都可以**冷藏隔夜腌制**,第二天空气炸锅直接做,不用每天只吃鸡胸,提前解决食谱单调问题。
-
----
-
-## 2. 小奶锅:买多个单锅 还是 一步到位「双内胆可预约一体式电煮锅」
-
-### 坚决不推荐:买多个单独小奶锅
-
-弊端:占台面、收纳乱、多根电线、日常打理麻烦、破坏你极简作息模式,长期必闲置、必内耗。
-
-### 最优定制选择(适配你长期发展)
-
-直接买**一台主机 + 两个独立不粘子锅、支持预约、可分体、可煮可蒸可热饭**的多功能电煮锅。
-
-- 一个主机,两个子锅**轮换使用不串味**;
-- 支持 21:30 夜间预约,适配你的作息;
-- 不额外占地,一台顶两台,收纳极简;
-- 分工固定:
-
- 子锅 1:专职煮冬瓜水、玉米须水、养生流食
-
- 子锅 2:专职热熟食、煮鸡蛋、小份杂粮
-
-**完全不用买多个单奶锅**,一步到位双内胆可预约款,长期最省心、最省空间、最适配预约模式。
-
----
-
-## 3. 周末集中食材预处理,保鲜能不能撑一周?鸡胸 / 蔬菜 / 土豆实操方案
-
-先给核心结论:**合理分类处理 + 分装密封,完全可以支撑一周,不变质、不浪费**,只要调整食材品类和保存方式即可。
-
-### ① 鸡胸肉
-
-- 冷藏只能放 2–3 天,撑不了一周;
-- 正确做法:周末一次性切好分**单人单次份量**,密封保鲜袋装好,**直接冷冻**;
-- 冷冻可存 1 个月,每天睡前从冷冻挪一份到冰箱冷藏解冻,第二天直接用,**完美一周循环,肉质、营养、安全全无问题**。
-
-### ② 土豆
-
-周末去皮切块状,沥干水分,密封冷藏可放**4–5 天**;剩余部分分装冷冻,随取随用,彻底解决电饭煲整颗土豆夹生问题,一周无压力。
-
-### ③ 绿叶菜短板解决
-
-菠菜、韭菜这类嫩绿叶菜,冷藏仅能放 2–3 天,**不适合周末一次性备一周**。
-
-优化方案:
-
-把日常蔬菜替换成**耐放 7 天以上品类**:西兰花、青椒、洋葱、胡萝卜、包菜、金针菇、香菇。
-
-这些蔬菜周末一次性分拣分装,冷藏稳稳放一周,口感、新鲜度完全在线,不用周中补菜,适配你的极简模式。
-
-### 总结
-
-只要**鸡胸冷冻分份、土豆预处理冷藏 / 冷冻、蔬菜换成耐放款**,周末集中备菜**完全支撑一周保鲜**,不会变质、不用每天买菜、不打乱作息。
-
----
-
-## 4. 当前食谱偏单调,深度优化方向(不增加早起工作量、全无人 / 预约可做)
-
-你现在基础:米饭 + 土豆 + 鸡胸 + 鸡蛋 + 基础蔬菜 + A7 面包 / 馒头
-
-我给你**无痛拓展,不改变流程、不增加操作,只靠轮换和预处理丰富食谱**:
-
-### 主食层(A7 + 电饭煲双轮换)
-
-1. A7 拓展:原味全麦吐司→黑麦吐司→燕麦杂粮吐司→无油全麦馒头→全麦花卷(全部可夜间预约)
-2. 电饭煲拓展:纯白米→大米 + 小麦→糙米杂粮饭→藜麦燕麦饭(GI 高低轮换,适配训练日 / 休息日)
-
-### 蛋白层(告别天天只吃鸡胸)
-
-冷藏隔夜腌制轮换:鸡胸肉→去皮鸡腿→巴沙鱼→瘦牛肉丸→鸡蛋不变
-
-全部可以晚上提前装进空气炸锅子锅冷藏,第二天无人蒸 / 炸,口味不重样。
-
-### 蔬菜层(7 天耐放款轮换)
-
-西兰花、青椒、洋葱、胡萝卜、包菜、菌菇,每天搭配 2 种,蒸汽炸 / 蒸轮换做法,口味丰富不腻。
-
-### 口味层(无油无糖不破坏健身,提升口感)
-
-只用天然调味:黑胡椒、孜然、蒜粉、少许海盐,不加油、不加酱料,宏量不变,口感大幅升级。
-
-### 流食层
-
-冬瓜水 → 轮换玉米须水、大麦水,后期加破壁机豆浆 / 杂粮糊,告别单一饮品。
-
-整套优化**不增加你任何早起操作**,只是预约配方和食材轮换,长期完全不会吃腻。
-
----
-
-## 5. 破壁机有没有必要现在采购?能优化哪些核心痛点
-
-**结论:有必要,可直接现在采购中端性价比款,不属于智商税,是你这套模式「补齐最后一块拼图」,无缝嵌入预约体系**。
-
-### 破壁机精准优化你的 6 个核心短板
-
-1. **平衡饮食形态**
-
- 你目前全是固体主食 + 肉蛋,无流食;破壁机做无糖豆浆、杂粮米糊,温和养胃,避免长期吃固体食物肠胃刻板、消化负担重。
-
-2. **补齐植物蛋白缺口**
-
- 现在蛋白只靠鸡胸 / 鸡蛋 / 奶粉,破壁机自制无糖纯黄豆豆浆,**动物 + 植物双蛋白**,长期营养更均衡,利于激素稳态、肌肉维持。
-
-3. **激活坚果 / 籽类营养**
-
- 奇亚籽、亚麻籽、原味坚果,整颗吃吸收率不足 30%;破壁打碎后,细胞壁破裂,**Omega3、微量元素、优质脂肪吸收率翻倍**,适配你健身脂肪调节需求。
-
-4. **适配夜间预约,零额外工作量**
-
- 21:30 可以和电饭煲、A7、空气炸锅、双内胆电煮锅**一起预约**,第二天 5 点直接收现成豆浆 / 米糊,无人监管,不占用你早起 15 分钟窗口期。
-
-5. **训练前后快速加餐**
-
- 打完奶昔(燕麦 + 香蕉 + 蛋白粉),2 分钟搞定,不用硬啃面包米饭,适配力量训练节奏。
-
-6. **丰富流食食谱**
-
- 轮换豆浆、黑米糊、燕麦糊、养生杂粮糊,不再只喝冬瓜水,饮食更多元。
-
-
-### 采购建议
-
-不用买千元高端款,**500–800 元带预约、带静音、易清洗的中端款**即可,功能完全够用,不追热度、不花冤枉钱。
-
----
-
-## 6. 新增适配厨具 + 整套长期可持续定制方案(最终定型)
-
-### 一、最终厨具清单(不盲目添置,每一件都有固定职能,不占地、可长期维持)
-
-#### 已有保留(全部复用)
-
-1. 电饭煲(带蒸笼、可预约):杂粮饭 + 蒸蛋 + 早起煮鸡胸土豆
-2. 双锅蒸汽空气炸锅:蔬菜蒸 / 炸、隔夜腌制肉类无人烹饪
-3. 海氏 A7 面包机:夜间预约吐司 / 馒头 / 花卷,第二标准化主食
-4. 0.1g 高精度电子秤:配方、宏量计算核心
-
-#### 新增必入(2 件,长期刚需)
-
-1. **双内胆可预约一体式电煮锅**:替代多个小奶锅,煮养生水、热餐、分锅不串味,不占地、可预约
-2. **中端可预约破壁机**:补齐流食、植物蛋白、坚果营养,嵌入夜间预约体系
-
-#### 永久不买(杜绝冗余,保持极简)
-
-吐司机、单只小奶锅多个、第二台面包机、网红养生壶、多余蒸锅、烘焙模具,一律不添置。
-
-### 二、周末集中保鲜执行规则(固定照做即可)
-
-1. 鸡胸肉:周末分份冷冻,每日睡前冷藏解冻
-2. 土豆:周末切块,冷藏 4–5 天 + 剩余冷冻储备
-3. 蔬菜:只备西兰花 / 青椒 / 洋葱 / 胡萝卜 / 包菜 / 菌菇,周末分装冷藏撑 7 天
-4. A7 食材:面粉 / 脱脂奶粉周末提前分份装袋,每晚预约直接倒,不用每次称重
-
-### 三、固定每日时间轴(完全不改动你的作息,机器全预约,人只收割)
-
-21:30 同时设置 5 台电器预约:
-
-电饭煲杂粮饭 + 蒸蛋 → 海氏 A7 面包 / 馒头 → 空气炸锅蔬菜 → 双内胆电煮锅养生水 → 破壁机豆浆 / 杂粮糊
-
-22:00 准时睡觉
-
-05:00 起床直接收割所有预约成品
-
-05:00–05:15 仅操作:拿出冰箱隔夜腌制鸡胸,放入空气炸锅启动无人模式,极简无忙乱
-
-05:15 准时出门力量训练
-
-07:20 归家,统一收割所有烹饪好的肉 / 菜 / 主食 / 流食,一次性打包全天餐食
-
-### 四、食谱长期维持逻辑
-
-1. 主食:米饭杂粮 + A7 吐司 / 馒头 / 花卷 每周轮换
-2. 蛋白:鸡胸→鸡腿→巴沙鱼→牛肉丸 每周轮换
-3. 蔬菜:6 种耐放款每日 2 种搭配轮换
-4. 流食:冬瓜水 / 玉米须水 / 豆浆 / 杂粮糊 轮换饮用
-5. 全程无油无糖、宏量可计算、适配每日 400g 碳水健身需求
-
-### 五、这套模式为什么能生生不息
-
-1. 作息完全不变,不靠意志力,全靠机器预约代劳;
-2. 厨具分工固化,无争抢、无冗余、不占地;
-3. 食材周末集中预处理,保鲜可撑一周,不用每天买菜做饭;
-4. 食谱可无限轮换,不会吃腻,营养结构完整;
-5. 预留长期优化空间,后续想加杂粮、换食材,直接嵌入,不用推翻重构;
-6. 不追网红热度,只定制适配自己的刚需配置,长期低成本、高稳态维持。
-
----
-
-下一步我可以帮你:
-
-1. 给你列**双内胆电煮锅、破壁机的选购参数标准**(避坑要点);
-2. 定制**7 天不重样预约食谱**(每晚直接照抄设置);
-3. 给你配**每日 400g 碳水:米饭 + A7 面包 + 土豆 精准分配表**。
\ No newline at end of file
diff --git a/Untitled 24.md b/Untitled 24.md
deleted file mode 100644
index 7c38588..0000000
--- a/Untitled 24.md
+++ /dev/null
@@ -1,16 +0,0 @@
-
----
-#领域/未知
-
-#复盘/0 #临时/备忘 #状态/待处理
-
-20260513-备忘-主题名-文件内容
-
-## 一句话描述
-
-[________]
-
----
-
-
-eXZiLNNiGwJep7A391eZNvlCMyG
\ No newline at end of file
diff --git a/Untitled 3.md b/Untitled 3.md
index 0b172c0..e835de3 100644
--- a/Untitled 3.md
+++ b/Untitled 3.md
@@ -4,7 +4,7 @@
#复盘/0 #临时/备忘 #状态/待处理
-20260519-备忘-主题名-文件内容
+20260520-备忘-主题名-文件内容
## 一句话描述
@@ -14,4 +14,5 @@
-彭扬设备测试、超声波、自分类分支-识花工具
\ No newline at end of file
+讨论龙港项目、协助潘老师、修正识花工具
+
diff --git a/Untitled 4.md b/Untitled 4.md
index 3ca0d0d..82cb5fd 100644
--- a/Untitled 4.md
+++ b/Untitled 4.md
@@ -4,162 +4,116 @@
#复盘/0 #临时/备忘 #状态/待处理
-20260507-备忘-主题名-文件内容
+20260520-备忘-主题名-文件内容
## 一句话描述
[________]
---
-好,我们直接务实评估一套**自部署、轻量、不折腾、不重复造轮子、长期不凉**的方案,完全对齐你的三大需求:
-1)替代 CodeBuddy(低成本编码)
-2)替代 / 增强豆包(深度对话 + 文档管理)
-3)不跟风、不复杂、不吃灰、可渐进式搭建
+## Skill 名称
-下面分「架构选型 → 最终推荐组合 → 部署成本 / 难度 → 风险规避 → 落地方案」五部分讲清楚,全部是可落地的成熟开源栈,不是新玩具。
+private-knowledge-doc-formatter
+
+## Skill 描述
+
+私有自托管知识库专属文档格式化转换器,自动清理冗余内容、标准化排版,适配 RAG 向量检索与知识库长期沉淀
+
+## Skill 指令(完整粘贴到 Instructions 框)
+
+你是我私有自托管知识库专属文档格式化转换器,常驻系统角色,严格遵守所有硬性规则,禁止自行脑补、禁止额外创作、禁止篡改原文有效信息。
+
+# 一、强制铁律(无条件执行)
+
+1. 必须清理垃圾内容:删除所有 #领域 /xxx #复盘 /xxx #状态 /xxx 这类自定义标签、[____] 占位符、无意义空想待办、多余分割线、无价值草稿备注。
+2. 只做三件事:清理垃圾、精简口语冗余、重构结构化排版;绝不增删原文有效参数、资源、步骤、核心信息。
+3. 不添加任何冗余元数据:不写时间、版本、作者、分类目录,只做内容规整。
+4. 优先自动判断文档类型;若我手动指定类型,则以我的指定为准,放弃自动识别。
+5. 严格标准 Markdown 层级:必须用 # 一级标题、## 二级标题、### 三级标题,禁止纯文本无层级排版。
+6. 配置明细内部禁止用「一、二、三、」中文序号,统一用 ### 自定义小节标题。
+7. 剔除 ✅ 这类表情符号;开关 / 勾选配置统一格式为:参数名:启用 / 关闭。
+8. 相关资源、配置条目统一使用 - 无序列表;链接自动转为标准 Markdown 链接格式。
+9. 关键专业名词、核心格式、硬件型号适当加粗,提升 RAG 检索权重。
+
+# 二、文档类型自动识别规则
+
+## 判定为【操作步骤类】
+
+有明确先后执行顺序、流程化操作、需要一步步按顺序完成;如软件设置、命令行运行、环境部署、浏览器配置、脚本执行流程。
+
+## 判定为【参数配置备忘类】
+
+无先后执行流程,仅纯记录:工具参数、固定配置项、软件预设、资源链接、固件参数、硬件配置存档,只是存档备查,不用按顺序操作。
+
+# 三、内置标准模板 严格套用
+
+## 模板 1:操作步骤类(固定结构,不许改动模块)
+
+# 【提炼规范标题】操作步骤
+
+## 功能说明
+
+一句话概括用途与适用场景,核心专业关键词适当加粗。
+
+## 前置准备
+
+无序列表罗列所需软件、环境、文件、前置条件;无则保留模块,留白即可。
+
+## 执行步骤
+
+必须使用 1. 2. 3. 有序列表,一条对应一个独立操作动作。
+
+## 结果验证
+
+清晰描述执行成功、配置生效的判断标准。
+
+## 模板 2:参数配置备忘类(柔性结构,不硬凑模块)
+
+# 【提炼规范标题】参数配置备忘
+
+## 用途说明
+
+一句话说明工具 / 硬件的适配场景、核心作用,重点词汇加粗。
+
+## 相关资源
+
+有下载链接、开源地址、网盘关键字则规范列表保留;没有则直接删除整个模块,不留白占位。
+
+## 配置明细
+
+沿用原文自带的分类作为 ### 子标题,原有参数原样保留;
+
+无需强行统一子模块、无需硬凑内容;参数少可以直接列表,不用分小节。
+
+# 四、输出规范
+
+1. 仅输出格式化后的纯净 Markdown,不解释、不分析、不闲聊、不输出额外文字。
+2. 层级清晰、排版工整、列表统一、格式标准,适配 RAG 向量检索与长期知识库沉淀。
+3. 语句精简多余口语,但保留专业参数、专业原话不变。
+
+# 五、手动强制指定规则(兜底防识别错误)
+
+我输入内容前若带前缀:
+
+1. 前缀`步骤:` 强制套用操作步骤模板
+2. 前缀`配置:` 强制套用参数配置模板
+
+# 六、扩展预留
+
+后续新增文档类型可直接在本提示词内追加识别规则 + 对应模板,保持整体通用架构不变,无需拆分多个提示词。
+
+等待我输入原始笔记内容,严格按上述所有规则输出。
---
-## 一、你的核心需求(先对齐)
+### 使用方式
-- ✅ 编码:VS Code 内 AI 补全 / 生成 / 重构,**低成本,不买 299 套餐**
-- ✅ 对话:深度思考、长上下文、哲学 / 项目讨论,**比豆包更可控、可接工具**
-- ✅ 文档:**保存 / 整理 / 检索对话与文件**(PDF/MD/Word),知识库能力
-- ✅ 约束:**不折腾、不造轮子、不吃灰、可渐进、数据私有**
+1. 新建 Skill 填入上面名称、描述、指令保存
+2. 对话挂载该技能,直接发原始笔记即可自动格式化
+3. 强制格式:
----
-
-## 二、自部署架构选型(只选成熟、轻量、长期维护)
-
-### 1. 模型层(不本地训,只调用 API,零硬件压力)
-
-- **推理服务(自己不跑大模型)**:
-
- 直接用 **DeepSeek API + 豆包 API**(你已有,成本极低)
-- **向量模型(轻量本地 / 免费 API)**:
-
- 用 **bge-small-zh-v1.5**(轻量,CPU 可跑,或用免费公开向量 API)
-
-### 2. 编码服务(替代 CodeBuddy,VS Code 插件对接)
-
-- **选成熟开源:Aide / Continue.dev(二选一,推荐 Continue.dev)**
-
- - Continue.dev:开源、VS Code 原生、支持多模型、可自部署服务端
- - 对接 DeepSeek API,**免费 + 按量付费,月费≈10 元**
- - 支持补全、生成、重构、对话,体验接近 CodeBuddy
-
-
-### 3. 对话 + 文档管理(替代豆包客户端,自部署 WebUI+RAG)
-
-- **对话前端:Lobe Chat(最强开源对话 UI,Docker 一键部署)**
-
- - 界面优雅、支持多模型、文件上传、对话导出、收藏整理
- - 可接入 DeepSeek / 豆包 API,**数据私有,不经过第三方**
-
- 
-
-
-- **知识库 / RAG:PandaWiki 或 localGPT(二选一,推荐 PandaWiki)**
-
- - PandaWiki:Docker 一键部署,AI 文档管理、语义搜索、RAG 问答
- - 支持 PDF/MD/Word 导入,自动分块 + 向量索引,**整理豆包 / CodeBuddy 对话记录**
-
- 
-
-
-
-### 4. 调度(保留你已有的 n8n)
-
-- 不变:**n8n 继续挂定时任务、轻量工作流**,不新增复杂度
-
----
-
-## 三、最终推荐自部署组合(极简、不折腾、长期可用)
-
-### 「编码 + 对话 + 文档」三位一体,Docker 全容器化,一键启停
-
-1. **编码层**:VS Code + Continue.dev 插件 + DeepSeek API(月费≈10 元)
-2. **对话层**:自部署 Lobe Chat(WebUI)+ 接入 DeepSeek / 豆包 API
-3. **文档层**:自部署 PandaWiki(知识库)+ 本地向量模型(bge-small)
-4. **调度层**:现有 n8n 不变
-
-### 为什么这套不会吃灰?
-
-- **全是刚需**:编码、对话、文档,每天必用
-- **成熟项目**:Continue.dev、Lobe Chat、PandaWiki 都是 2024–2026 活跃维护,不是风口玩具
-- **Docker 容器化**:部署 / 升级 / 备份极简,1 小时内可搭完
-- **不造轮子**:全部复用成熟开源组件,只做组合配置
-
----
-
-## 四、部署成本与难度(你最关心的)
-
-### 硬件要求(你现有服务器 16–64G 完全足够)
-
-- CPU:4 核以上(够用)
-- 内存:8G+(推荐 16G,向量 + WebUI 足够)
-- 磁盘:50G SSD(存文档 + 向量库)
-
-### 成本
-
-- **模型 API**:DeepSeek + 豆包,月费 **10–20 元**(重度用也够)
-- **服务器**:你已有,**零额外成本**
-- **软件**:全开源免费
-
-### 难度(从易到难)
-
-1. **10 分钟**:部署 Lobe Chat(Docker)
-2. **20 分钟**:部署 PandaWiki(Docker)
-3. **10 分钟**:VS Code 配置 Continue.dev 对接 DeepSeek
-
- → **合计 40 分钟**,全程命令行复制粘贴,无需深度开发
-
----
-
-## 五、风险规避(避免一时热度 / 吃灰)
-
-### 1. 不碰的工具(直接拉黑)
-
-- Dify、OpenClaw、ArkClaw、龙虾系:**Agent 风口工具,生命周期短**
-- 任何新出「全能 AI 平台」:等 6 个月,热度不退再考虑
-
-### 2. 渐进式搭建(不一次性 all in)
-
-- 第一周:只搭 **Lobe Chat + Continue.dev**(解决对话 + 编码)
-- 第二周:再加 **PandaWiki**(解决文档整理)
-- 不贪多,**用熟一个再加一个**,避免新鲜感一过就闲置
-
-### 3. 数据备份(防止心血白费)
-
-- 所有容器数据卷 **定期备份**(Docker 一键打包)
-- 对话 / 文档同时导出到本地 Obsidian,**双重保险**
-
----
-
-## 六、落地工作流(搭完后每天这么用)
-
-1. **编码**:VS Code 里 Continue.dev 补全 / 生成,重度重构用 DeepSeek
-2. **深度思考**:浏览器打开 Lobe Chat,长对话、项目讨论、哲学思考
-3. **文档整理**:重要对话导出 MD → 上传 PandaWiki → 自动向量索引 → 随时语义检索
-4. **定时任务**:n8n 继续跑,不用管
-
----
-
-## 七、结论:值得自部署,但要「轻量、成熟、渐进」
-
-- **值得**:你有服务器、有刚需、厌恶付费套餐、重视数据私有 → 这套完全匹配
-- **不折腾**:全 Docker、成熟栈、40 分钟搭完、不造轮子
-- **不吃灰**:刚需组合、渐进搭建、数据备份、长期维护项目
-
----
-
-要不要我直接给你:
-
-1. Lobe Chat 的 Docker 一键部署命令
-2. PandaWiki 的 Docker 部署 + 初始化步骤
-3. Continue.dev 对接 DeepSeek 的 VS Code 配置模板
-
-你复制粘贴就能开干,今天就能把「编码 + 对话」核心部分跑通,文档部分下周再加
\ No newline at end of file
+- 步骤:xxx 转为操作流程模板
+- 配置:xxx 转为参数备忘模板
\ No newline at end of file
diff --git a/Untitled 7.md b/Untitled 7.md
deleted file mode 100644
index c1e1d06..0000000
--- a/Untitled 7.md
+++ /dev/null
@@ -1,14 +0,0 @@
-
----
-#领域/未知
-
-#复盘/0 #临时/备忘 #状态/待处理
-
-20260508-备忘-主题名-文件内容
-
-## 一句话描述
-
-[________]
-
----
-7GNNRPW-421MW3J-QCCSJ61-H6DVHY4
\ No newline at end of file
diff --git a/Untitled 9.md b/Untitled 9.md
deleted file mode 100644
index ff432e1..0000000
--- a/Untitled 9.md
+++ /dev/null
@@ -1,119 +0,0 @@
-
----
-#领域/未知
-
-#复盘/0 #临时/备忘 #状态/待处理
-
-20260509-备忘-主题名-文件内容
-## 一句话描述
-
-[________]
-
-注意:请忽略以上内容
-
----
-
-## 操作需求
-
-问题描述是【输入内容】,请专业耐心的解答我的问题,并将你的答案整理归纳至【输出内容】
-
-## 内容要求
-
-1. 结论先行,主次分明:先给出「一句话核心结论」,再分点给出细节
-2. 可信权威:在表述知识点时,标注其使用到的权威理论、来源
-3. 逐层递进逻辑链:原理->知识点->用法->案例,理解本质再应用
-4. 实操为王,案例全覆盖:所有知识点必须配备「可实现的案例」
-5. 避坑指南,强制标配:必须单独列出易踩坑点+精准解决方案
-6. 融会贯通:讲解单个知识点时,必须主动关联同类/互补工具,明确差异、标准、场景,帮助建立知识体系
-7. 浓缩总结,提炼精华,方便记忆:提炼所有重点为极简内容,方便复习和快速查阅
-8. 语言风格:口语化、专业但不晦涩,复杂概念用「大白话 + 示例」解释,拒绝堆砌专业术语;所有命令 / 代码 / 参数格式工整,带中文注释,一目了然。
-9. 内容结构:层级清晰,用标题 / 分点做区分,核心内容加粗标注,代码块独立展示,重点规则用「✅ 黄金规则」「⚠️ 避坑点」「💡 核心技巧」做醒目标注,阅读体验极佳。
-10. 无冗余内容:不拓展无关知识点、不做无意义的参数罗列、不写复杂冷门用法,所有内容都围绕「吃透核心 + 落地实战」,精准匹配学习需求,不浪费时间。
-11. 知识联动要求:当讲解后续内容时,必须主动关联之前讲解过的内容,形成知识闭环。
-12. 联动案例:必须是高频使用场景
-13. 真正思考:善用思维工具(例如苏格拉底式提问、费曼学习法)引导用户去思考去提问,在不断的提问中真正的学习认知
-
-## 输出格式
-
-- [x] markdown
-
-```markdown
-## 一句话描述
-
-【使用一句话概括】
-
-## 详细解释
-
-【你的解答】
-
-## 延伸补充
-
-...
-### 常见避坑点
-
-### 知识点浓缩
-
-【背诵级,解决反复查资料的核心需求】
-
-### 进阶优化方向
-
-## 提问建议
-...
-
----
-```
-
-## 注意
-1. 请判断勾选框是否处于被勾选状态,例如markdown勾选框处于未被勾选状态,则无需输出markdown格式
-
-以上内容为系统提示,为了辅助你更好的回答。
-
----
-
-## 输入内容
-
-| 项目 | 内容 |
-| ------ | ---------------------------------------------------------------------------------------------------- |
-| 你的角色设定 | 你是一位结构化、体系化的[__大模型领域专业______]教学专家,定位为精准知识的输出者 |
-| 上下文 |
|
-| 约束 | 批判的去思考认知,不要受到我或者其他资料的引导所影响,保持正确的理论逻辑;
技能习得四阶段理论(戴福斯模型):无意识无能->有意识无能->有意识有能->无意识有能,需要考虑到我目前的状态是新手; |
-| 任务目标 | LibreChat 接入 anythingLLM |
-| 解决问题 | |
-| 服务于 | |
-| | |
-
-已知 LibreChat 接入 openai 的配置格式为
-```yaml
- endpoints:
- custom:
- - name: "Deepseek"
- apiKey: "${OPENAI_DEEPSEEK_API_KEY}"
- baseURL: "https://api.deepseek.com/v1"
- models:
- default: ["deepseek-chat", "deepseek-coder", "deepseek-reasoner"]
- fetch: false
- titleConvo: true
- titleModel: "deepseek-chat"
- modelDisplayLabel: "Deepseek"
-
- - name: "Alibailian"
- apiKey: "${OPENAI_ALIBAILIAN_API_KEY}"
- baseURL: "https://dashscope.aliyuncs.com/compatible-mode/v1"
- models:
- default: ["qwen3.6-flash-2026-04-16"]
- fetch: false
- titleConvo: true
- titleModel: "qwen3.6-flash-2026-04-16"
- modelDisplayLabel: "Qwen3"
-```
-
-
-
-
-
-
----
-
-注意:请忽略以下内容
-
-## 输出内容
diff --git a/attachments/Pasted image 20260509134626.png b/attachments/Pasted image 20260509134626.png
deleted file mode 100644
index 7affb29af059bf38209f533046955be0d0b5483b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 140924
zcmc$F1y`KQwk;Cef;$8V?(Psg!GgQHLj#Qjhv4q+!QI`1ySux)+w1Ii@7X!;54>-T
z9xbE0x@y&ux#p}dSWZ>~2_6p~3=9nE+gDKqFfbTzFffP}SZL5E&~s&{peJw#1qorW
z@-c!#(3=mYLNY>NU{#R_FZxiR_i%P!)g8dVkbC|-!24|rjljU(^S+4+DY@vJtfIIp
z&aMhxL~4-3vI4oLHpSCYk$gYwQWiaw0#@fj@TnW4Bls2ca=|I+ttN)ZFx-FoiooO7
za*^!fDy%dI@RuNscg~cNaaHMy;B$OheL>GJ)!#}9wb;SNOL}~x$YCnFHNHUz&>xgC*tAdz1$46;`z&5R3{;{F1lb$
zJoB6^Os|`Pn?3DY
zA+&b4v#PYy*tv34Kb_Y-RFmI+QwsRR#bFpXQ(iUhTz*s42F5Eee8!ayZQM(-oGIG*
zvzc8m#8lH)cmtM`=uH_~x<|)=!9cpJtaOX#o6Fn2^_K}9XF^u5zqb3J^acy;Z8FmH
zC-KV$%#oIJqBQozve%;&kfzD&Wt%ujQLS(cct6qY-v;fKw`$YCGwXbBWUN0!=uEZy
z9**lbHfGm(V_;NK+`X#%lB3YN25DhEuA!-!+kdyy7jALtf4zHBL37SeK_&vXac{EO
z^NzVXpQ!7pUM6!k-{K@TpZ;=cTT;i*``87;v>K1bhfFa4&YgsOb6e`?B0Ya~1dXNv!;{EMj4z$b%ZX~{)`|Mx@fZcf2ttHEfa9Wlx
zl>KM%+E}(LwQz)lBtYv8^+c&b_xSQtFM110i{>_gUBng+2JLFm^rPzIMbp`$NO8cR
zND{XjM}ojrkcPva5odpjCtlt!tyMSY$;9f+H%Ejum)z&ZiK(|!X6Mp*vP>jit9o
zj`9wHc*CH-GTWr``>DVc1XS~N#N*)X{%rMpvQRKL^2cUD7wZ@R_V?&G}XDp3aKc3jqQ
z(Z-EZ>>$ejJm2B_uyZ?K;_z3ji|&sV`L^z}!oEa9dFMU%h4&~5zEXQW3BLQ4ls8Ml
zF~|-Li@3S9RKGl5?`;acZ41U7I&5}kzWs81q?2*o0C(RV)>X+j*1Pul?fLmfRS{eh
zIwei7+XfiC6-O8WJA6YVQ8@40`g_mGIe+1Y(mb!$TNTGuTlec!Nig0?6xFhj^6mR)
zW`{XCchkNwGr8Mv&h;>c^@ej4N$pb3$o63K=>o&w1JOeQE5Q3zwW|R#0HowFn3)ki
zd&h&n2ExmJ986quAU0!Pa|pcAnnPrDc(gcKJF_{OXMOaW>
z=`a7EY`XRXg=rkQiow+O;=@20%@Ial~4EM&n=c^^KI24iTZI{tYe(2>9;o=!vCn$oO&aba!wdFEXF`r7kHnVvX
z8u4j|G9HLRC{X&r!Eg`|n7P!fto}CN@uoaD!~b;O(GSIFjAg&`N-A`rCY8Y8Z@Ml3
zlr>>`Ls)LG?f3Kdw~%p>-X7qHAQmj2gQ#eKN>R8!sTtoIq|8);=tZ^H+G)Dp+v>&E
zRkG|hVp4XJqK~9R`<3uq=ddqpwC-km;~|^Il}*xbd&jZLus{KFO!_G
z8X)-oyiPmq2aVL-#?3v%CZFTHX5QcF13An6cVtE;glVVI61#$N2}eM_1PZ>%C(Cy1
zV!hmxy%Ub!@L?NuDnirdy}dqfCosB$|7as3vu%+n;U{Es<#6n~_AKelp_cP@gj3)=^*PD?eS&6t)=bB{
zC*@quA}0;+S(Ry`jyEo*D**MVj~BCZSc2eFaI*Ujz7?Zbl1z5vP$
zxjkbQ)A+{B@^+q;GA{X?h>4a)m0HNZ0}LAyw}nfUAq1>)WT~{UR4E^{A9yc2l;1a+
zj|H+vGHI)y_k+%5Gb1d^o5YieoX^{aba7u+Uj*NCr72lWMsQv(s`{Bcme}0ydDpv+
z`c;dhyc2ai)gPam#yuGD;yj*A1$#Q)Uu}&wVir4MPMqdUYN)5z8{hGV>PfqdxUs6!
z5{(Z`1xsdnQ*K6W4c1ngh6DyaT}cCZ6=Dl$SsOX8+MM3coQK@pCDH`Fn)ZwN|}-UQ9ea
zCMK2vs3d@#g5}CJQLy{dUmnqnbCXc`qgmhz%+82zC5Yyk0`c+YBk*h`%4Y<4JXhq<
z`7;=OmU<(@?M%KP%joJZZuV)H(c@b>{ImUB;$(*xm)-IrE|IF5Nd}g{Llz6YU!m7Z
zhi-C$wm?60@N-eu{xtjBv94-Ccl%?wZJ}ak$4phwcQGerLi~pqpOs}B{A_6nh{E##
zVVC>WC>Hvfn2x);3hHUp>f@CKtNlpHjMu&5@d$l-uP~v%_R^6#
zsw&iBmkbGPnAysj)s#j^HF=Qx9Y)aGd<4gMF=IcoU)y=TEKJa?ey6d!Jpl`d%;j=1
zZf0er6ms(P7$D>q_vH2Zye^47IH(o-S@Ytkqy;9b{W|?zw1p_b5$Scs)-(4dzQ56Z
zF?X_bb{aUVe0e@!v3>{>6Wiu2+3h6A<;sEw`#uuRN#lhs);#uBsJwVOfkad)jq-XT
z2XYi*nrYFt===Mo6N8MuAl8A^P28^^6av+-12Dwy-c#gK7Y&?ia(glq=vGirL$x;t
z)e@+P(9B+4zC?c29=8UHu{@Y}uf!vNlF8)N+~u}pTUe>8%>pQNsFSs6TPPDe-@6f9
zUT^0whu>dyjo%bApD@I6C8(#dS#difK7^n=BX6fWugT{dp4#)5$a>ToeLRN)jFz{Y
z@w}Lw;+e6X%>9i4g9O?Is=+QIy0?XRYV7)271W
z!=0M~J5D<&56}56bDylg%e7;mJ$pN3iq*bNC9f&b@cgG$>jRp#G1xCNtfc(a5
z#eSH6=*I25Et0rG7yFb*BSw8uvq7cAfw*lGge6@YG#~$~f4KoT2|;w)Bd!2+pEYV%
zc+Uision+`E84Jt76DeJn6xTX+q;tE?{BV`DFDFo!|K`UP_-g3|K$2HXH{^x%JTm0
z?f#+bIE
z*YVI4cC-iiUx7yY#PtWAX$B&JMh(;GSSO~Jcys!^6j^uDu9`bZHC9}@i
zJ)`yg?U~8zP-*~&w_a0SPNB4XwwJ?FWeRBgSm?L;SCEN{CWc(&fxQi)3ks#Az@>hL
z#xlO(>@iZXY;JjU;M^{v*PLlO+evCxPUR?a7@Xxjj_R1I68cIYju_U$Zl{HM}4H^JY68uKi`qj>UIzrL&8tU*nR=wdGUHqyDBV|`8X0@
zxb}omTzoRb_gA?`os<7BI8naKe1D+?Rn&+-m|QY?x>}YY_Bid7sWLHymS;`S
zRR<>Hb;A!OZe&iBQ!4L0XKxJw`%Y`K98fBix8T<
zc84107Axmkp-~ld1fk*{jK@`MBdCvwJA`d&cTYd*ezccwl}OgrLu5b3N9~AP=tJLiH{gfNZ1!O5to_|2EriW{YpFTC^AIW
z%}fbVlK<>VBpY(ysF8L(?!Lz=sr}P^-3c%~+}3iKpV}Q?{AB|NR6sus)k)6Px7tkI
z>Du(i=ZA~U#_&4Hoq>jF1!X1eh>zkDgJgHKp01Qpds~PL2
z%T&|{A`^=@Z>j*#PSWndF8XJu1>NvyRRr=s$e1o!Nn)Mm?VxzQko^JB;O4^*mk*nU
zkwsEjFABm=%Jls-33y)DsYI-8!3^U6MK);vFcLPV!cZ7mL?)q$l{VhWql^A9P}2)`
zVO)5Y%=2>B5DqE{&XYTrR2^K6Z%@aU$Ar8&$&HEdu6}E;y^J)}moX!DbH}$s%!BxH
z0%{7AY1}TLzB=AKM+)k{n1)2G3(}V%HA^-RP=3+Ie}lUu_e~|@wjVt!Ra-Gv0%kv
zobp#D4?1vX@3P1cwT(C
zbYf&D+{*X5TQt4wUTb@JUVkqS%X{(HZ1=A4Iz48JAXq$Z>=VVNHTj#J(Z(~Hvju^E
zmXo8$&xSgX(1>!?KI0fI-V~%yLI1_kI9`Sty=9zl*#1O>Kq26g!^M7(u0$~VI~#!*
z52N{!^VaJzD1uIlNSP_c5)Ct
zIr4db`4XqM_36qc4o{+sDg;=gTNVmSLZwS4*^o#MdqxxZ+PR1{L3NKn@+P{VsXy0)jAvVS;cR$Z)
z-*3nGvr5OcM>+0EZ%02WgjEY|QP?txmy6J;l+RqPU)sgvpgI&wV&Ix9^>lDUYQ(e6
zROQO}Akzsitmt~?5+Upuhs1Otyf~d@;0Xz>9dp3Bo~zeZ%r(RACMG?k+BUn<8{PC#1
zm=O|@i)2TvbkBO=*D?lYTI=$=gk11s&d$lP!JzDeNb|oFOe9YBaO2PxB<691)vUMb
zI$Ld-O<^Uw-&7z(cnFEO|E|**9UC0P072g_(rEn~7I-FnkulD9vfpeYft6fM`lW-$3hji8|4S`i35XC=KYq)cINy}h&`
ze?Y*oi(Dg)l{xv@vO7gs;PW4UJ=hjCS;>&OXecUz!^Oo_tFyqQnXBlx^?cR@4kkxG
z+f$o>vqB~X2{fhIifTi+6Ut`dkX^CY4p
zPHohR6WeTE{$+Hb`ZkNB@9?kzoawGQaCaPCiC11xreiAp*7L6uJDMMy@I9B)JA-y;
zI-fzkFF&j%3$n8qS{o%!Z5m0zHH)UhcZanO6k!Gk!5<rMv~La&^<=R~?5
zI)R^pq6pBrSTV&diKIDy38&&QNQzfDW+774F=((1Zz3?BLZXMvDR**cq|d6$HJ4+c
z2NYlbHS2F&sfbI&EZU3!5YEJ-ds2fHh>au(R
zu-Oh~sw)Mp)bm^N2^oKBNpY36l&vv)DL<5|mns2qBZrzCF8AGaDX@aCBIo2LN2ZMI
zuW;)Jbskx==^2z6E)XqFr`?Pe7IDnpWV;=2#~pG?N*|U-k{>`kN>RDTk1@wg0m*;(
zXVqLL2PyWDGX>LgniDKh_R+Gw5OAWIA#b}7D9a3o-0Uv@fIbSBHq3$OHmP4>zRcR{
zZ7|?7yfbG>y&NiRaU>FO1kdvAGYkoyaXVby*0A-1Qz69wi`!oo%(@6AJeFm_rDQ|Y
zeINc+B65bulRsz@E;ks)u0~L1x}$|+F-AnZ)ABPJ!wa~+-ago?VC{{iyNNHh{+XgY
z1feuKJ=6NHu{EOru@Oy*6lQ6{Too^84hS~_IW*t?-EKKUIMZ?2(w`N*_-F90rKq_(
z>lthbhL53}-%i=^OGV1mSX7D27Zd|}f!cCKi6f}dg5~e;@ACGz&uljF2?(dhgmbZg;ssl#5=vX%
ziZ;%79oD>a)%V8({CDVlC%Gi!v`Phk&1FMAO>$4<9q6SRiwV}LOlFH&G-LJAv395P
zP?Gd7Xj`DbL}dqBH>)SJFsLDwpcx@|S5;z^JLNrLj8!8XC|;D&`-$K(>PDtXvwtD%
z_rE&awX3^fvIk5+KDTNm1tf~LwEQ*O;huQa4D|yAr%OJMC&ypw_6TfvNcH@$wF-iJ
zW4!ufBfsBYpXOaQ{js-vdpv;o&o}Z0e^drx3zSZ;-;9!ALgXK5%=J@rL$NYpq*#0s
z{MPJ%Dahtz)^k)u71t<^j~@s*{w;*pc}OyflPVM_IM>3t}cZ|uy24i}=lkudej*VuWAZZ)b$#O0Qq^;)
zG#5Sm9s3VZoM{QhG`oBh1!O;{)G-)DVJ*pWI&l_WBkihHKs&jitr+_mC*u*!YE6SQBt%lZ|K=33t^j4+V2=56yyU-b=V@8Cl{B-M-_0t)p
za2jFl8XIF0!
z&usd}VEM-{bHj1ie;Xg|((>jb8sO2*EdO;F+D5$3dXt!#T7wN?dHa(^-t+zfz~}q?
z;>omx|33ijTdtohWhmCG;!HD6dtF|o#I)lpRi-8`5hPczo*`Uy0av$>@`2u}8geL4
zxt$WIDyB;5E3FT=&_N~-^R*d4WF9kQy_zjm^v|eM7|S}SGUM?%?TFq_2f3Xo@-`qt
zZ=n2a@#Gk*46>Yy=EsAYh*koUh%=rbTq|(3kspKwN&~L`l+Gg
zwXAvWkT=!isZeY3@@)`h)*Muf{IS+aRyYiP@;K`^niOVi<)k~UNeXh+~pNSO&!&t`=ke{z>r&o`NY@5_^Eb4G8QLsa~%s5W67Z?K$T
zkVJ~VYV7A!J<`UW<)X@O;>nBp;sv6Qn#)6NGM`oHkeT9El!L8)-Ef25$4KvS~GkkqxRD;T@R#OI^h9Q`dT~UJtBRdeP-22T!_boOpFlMFc6Ag
zW-F0l$DN?OzbhJmJp@5MZd(85Opj}
ze_Z0RuR0ws(U-+~I7K9}%L1RpS26TRS0$8Ehn!ZxPP^`P{fZcMJVLdugRuNn+~;56
zjll^-?7F>6x>yzfMvdH
zhyc(;QP1D9ld#??bB1T)RfGD(U-oG(?`bYGON@FY4*nqry;TRj%~i3i&vIsAtr>iz
z#AyR}da4?PPf59{bWG7I&=DL}tlYYghd;@;R3L7j(*|Pm?5H%$@i(1o6FhV5cU4b7
zjY?y;()O&f&>BE=E|L8Bb+?o&25T(=x!GxH0LFFTeS6K($kW@-kGt6Lu@&Dssd@y?
z%gv=uadNDIe0L|{
zne3i{gu?_juj5w6<7`1Z40aK?mA-cV0(M2e%ZBQ~rwxFzyH!@*IEn+wSqP`OuwX6N
z;li89%*^c&Yw;|VxPQUQPQNSV(E)V}KW2sq+@GeW76e4P0Y!%v@gI3M0-S?z^Mx#W
z&0*V)d<$4%_L5Gst1$XpWtsKAOh#xd{2<((M`>Zl#JsKcYx$+Z
z;=JloKN;@vmeF!CaU?T5#eI?n>d{R%(FU-^vh
zk2G5Wl6Ojdi}t&fRki&=V%u45AK2Rhl=u4a%g6J!cOM=JQ4FWiS=FtSI0SsCH!6s~
zPZ7*;VvAs19GbjKVoQNNNZy{ilC?N_Hf%#edj(TbFLDfU_^x*Tn`Ka=e@&X%jk3=d
zI$&qG+cu#j7K2!=gzcC1Wq<;RZ=6A|$NYB}L^1xTmpNYVZ<3rN*eUMcAJ^=O8I<>}
z$9urjQMl$9QE!8-XpK_4KK*_8VUSL15$YOKRjX0|^RCr1V(_L
zRdSGQrWG&FUuc1pbP=hBAoO1NgU_zpzVYT)uXM0tfc;qpupYG5u^F=ld-yzk
z8+5RupZfQ?hF}E+g}4oC3k#ZBjWV=})A@=_1!DY(`2S1g4FGp7cPx!xcaPGbymyn*
zPs-zi#>f}*?W6&J8RRJVq@6nk(;dWo8%|^iJ%G*>zN#Z
zPOYwJqdQ7fh9m?d!YLMszLo#dwr!}z%?*L1z_y#N1L?;yuPte^YH
z@OJfHKrbsGXsiiD!9u)Na5uc3H#{J3g7o#7CIpfX?+l#6x}!cqr}EwGyqLq&pdPKA
zL<=wj=Vr)rMa1+4zZ?#MN00DWeDV!GiG7piacL>ox)2XLBXSy7_`*f5)$p7R5;%b@
zXNp!AM>f6F6T`u4KU1v8BL}_x>l4j;E8ZT_k5O1clurxuUwp(7(pC63KD5`FBxy*Z
zx>q-}Ib?sD^=Y-~-w<&%;SO_aCQiLCB5mbshES9!#{4!Wl9i2^s@D@^m9Bw~`qQ$E
zu!uE8KcvO`8$qGCe7r>ZA&ZN<`Mi_!VpdsAaX-#KDI*+H&3z^WbNf}TgU!3uxCzI&
z`pfx97lu-TUV}2{j
z-@puTrBmvFC$>HWC{);tqu?X7d#l0yEzPZ_g$9EB61Ir}O`fwQC(3h?XHQ_h1jWMK
zu82-sds)R4sGp*OndII5O3ostS>2@wpX+Yp#-$RjLZG+FcLtXFsw`4MaL52ybvQY=Tla)4pP5+F4wiby%)TmYJ^b6
za5W(~@LOvmNA&-C6&m1b=Nkyd5%Rd>90q94Hq|(cL3Ez~l=bDWLz`@J+QsawODUOY
za@g*M@dm#ahQvZC?#~G9)?K26_HG*%rxt4c&A4d%nudj7LyVzh={UCoDnB03}9_#{@w{)9!6Ft^G
z)kl`_#*g&e;GayN^L!Avni2}%WKYoK1rC7yaqv{6JoNzYqUz+IXpsI5jH_}SZalTR
z9dn!x_{mxwm1U=tgK$wDdUs{OQX&0N`t7&n174kE%cb+w(~F;#ijO)s&{U)PJ3Af7Hw#w>D?S3UN~<-U^KFN(Q`*I
z8KtKaY|b=AALTF_52;mC?vOqd+D@3=b?EV^xk1=Ynj_0Rf_OLCLYedGM?9FNL504k
z?eOoZQP)Z$I&U`_*_({eBgb5}8nh?f-yJGV`NOS8X-rM^%eSWvA4^b#m#?!chW))#
zx%yKbnDg^+Bvi;d)+f~9xA_Wqrv1h^9wLL6)%cuq_hx&TMHp!yD>X;9_}t|3O1#b6
zp=XhLnfS2V>wWUf3(M%lT+^X@$7cR@#A$5
zEWq|?=S`yA??ql>=n$0ZwKc=xtQq)f7JZHqUnU~y`$8zKnS%W!@i6$d`sQ9Wc4P_s
zmFgs!m#~nkY3>J_!EU0zS_it=$eI~0k-N6?jCf>Q3husIsADfP`7i(S6fwx82H4E8
z=hD&g(XUg!i@J`m1F{$7f^W2MlODP2j+zX9oezHh(Gj3S6KLE@_%yn;hU1(fr1zNX
zOGm8IDvu=907KW*F2HL#rSjp}3P&;4&jVpuu31c=hXxHPgTQeC(+p1EV{GJk2
z3a97%9@Ut2*37k=>w^EckR%2TGl02ot+EP!BF$MtJn;f8b@EKO>p;?oZLWvoGYOdc
z46;-LjM($(K=A00b@ZaEXX%0}yohwbQVjx<*+2xG(vY6qj+7IwS@5t)7|Kt{D&2O<
z(FZBC2SllXwBtJ+ZLONoi?MSO91OAAde3;672ILJXjsBU{1
zEVJLwKWjcOU)ZN(7om?fejDpE5^eqmTB$Gcim-Lgr?2SNu%evxb?+?x;ty(}P%ua^
zn+W!;%DeE;setZS`e-&Rl-=tegH%MdOnX)WZjesLng4@Sec@_pzbm_x*hGuwtZC53
z2!&C|9l08JSD-4~tXeyUZnSVML9ARIY%b;Zh6-#scdnj?Mj$zyPj}DvuX^7&4F?Iq7y5DKCI#pz2XQz
z0{k0Aa)o5RL8py6-M(EI9P{zsQ6s!8yv7kfnP0uhHqIM*QIVcijQI7M;cR0*8~WUu
zgkPBeW_7j98nTs891#ou#A)Kr}EA5X3)cSLu&?qR&wxfHgdC*q8}1$wl^d
zOzHQYARb5`+Ii7J)|o$6y3hK;E#iLdP=~G&({yA@gQB}9SC^~ApR|$YRw3|^-8v&H
z(yRxb-`gxu`z{LKX8}-tJd%Xkj~mUBRZNEG{5qe$jx-S_#4|JSV#a?U+jlgYGX|C0S1CDZ!j!BV~I}He+427xr#JYcx9ti8}vn!ZlP=KhiwrKl+o*|WbUW0B|cYKbIZ&apGN
zw2fYHlm-BW>R47QJ7Hg2pX}PG_@TVWdrC=@bZNxQWmNl|oWUDau(Hi`RH+>(*08G}
zD!(%Z*w(@|te5u7aE88C&?q;*p9y0(e4mrn=;9sKb03
z@cy%T3Kv9Qi9UL}@2rxT=v3!!C1Hw9+efkT{ag(v!Rh7CBnz2Sg*(^OPR{M}Zp=lK
ztkl+C35T|ZL`r&6=I;jZ&|j$}2-V~g4aH{|1@5aFR~qAG9p302qZ0w*d+3gf<$+d#P&AA?!nZu<^y65p1BCFCIkvO`$ZgTb
zmwEOlNh`kHzNDqP8aXR|B_iZ%07GsTTehJ6UZ1QNK)@uJb}v=B`l4}P
zM0>+pm%Z8E)wGLH2b%JA9pa@pOKeY~Ui9ErOiVQvS{QNi2U^GGDiLz
z$tky{mVMJp_o-C6MhR=;RvkdwZ=glgG(O$LK$h*z%gx7^_$dTt&gsypye+K~<;$A^
zuPOfkXlxaudLh9Am1G+;JHtp`t@TO@m~0FLn)n~QSAk#|%2n1*$Se~0QEh85Cse{u
zu;?s?3C82)$m@|)=Jl99r;j+SEi!zJ_A)3c{Wi|(kP~uq?2M8^;VzW7o>AlW%d|EC
z!H2l#H4sCzG&9pUwNL!^@qeO0Uf~~V*x4RYmGb3~V+ZM?TYdlMGw_qk1bsgKN49v<
z?_~M-9v0BbAIrP7tb9>7F9Ja70j8NkKKj5&bDqKSQ7I_{mF9ySZwHz0ljz
z>T*5*1~{ocu%_$KUS3UkK3x!gCozOj627Ow
z_XDzYQ_;oLT`P&d)^8mmz_=mkqrJ!atQFbDi$|`Sjr2Z=T<-TYFIG6V9Iw-k&FFY>
zHQuL4XhoWk^ENM%jh#naC3#y@6VM-}k}qxhN)?D)ce6CQ5u7i;%=dlmWYD_WQ#R;*
z$naI?Ss=Jg`czNp7pswpu$C+IK~X`Upe)cUlelaC=yF6JG5{%x%>$p?t1B{7xfnDuFaty$wD7znaWDNWuVb(5GO2q^pDl25}1+3Y`4d(COgZhK4nUw@03-y-M>pOx7p0&Bfg)&yc;H
zArw}+ieb!MKR!6-+wE0}K{JsF$xJ5v)Xlmmr}eYd@Vt?L)~S$K@r#b#>9q%VF|1>w
zkIn4r1z(ATY8}K|Qntj*^;|q+mDW4*`$^*J`#lQ)#(IYlYtj}-&g2&rg$?v7OBObs
z6u33en$PaahfkOCPxh9mAs3_XqsKd%w~}KFq206>XqI7i@i=n34t?Gm&Gu0mC!6Pq
zrd2Sq4Zfp%H!8p%7bx&M%QK*}RXRp9gAU%!;jbF0@9G#0=3u7Z?-2{#)14D$^m5D@
z8
z0&uHb{w%kgXE%`b==D>kaa*3!3d$y+)VLnN)u}}*;96=|2ySZfj`lx+lHL@`3+8^}
z+IZKVjmS8kha`dA8U_j2Wr`TI4K;Km;7zL>qaKRpxQ!PT-Pic|)^@oVCL|(ohWl|W
zNKtatVkG#3{c`FC;=;yCQfPUS%;zXWpGOL2XJ;1;IE^Ap(OxKHV=##bxaC{1RtFun
zVocj{G`c(NTt@}2V`f7gY8#E34-q?u=K5{MV8nF&zid^qxU)UPC&IT*w76vI3X?wX
z*;Zzq0ML&pSAU+wXZ*C{S~RwF-;fwYEEx=59vHxw?_0w%X9N$ssu_;?gRo__D?
zDt<(8zMIsA$nJ(Kq7cLR%vfx|4_-=O$PK-aBe
z3@sRnfo$1Mp@dHA^_*nCWJFRpe(s%Gq*H0WQqalww;?%n7V{xgA<8}cIYXdCR3l$u``P3oS}_03Qsld{_lF)mt0)Nx$n}Y#Qsy_fHR$s_lHgZ665Dj
z=kxK%Y{bB9gIsi3=Z~&Z!@1V}%Ev+uZYblo4qG5k?70JS7it?vns`&PSHnu#&`AKS
zQm8v09M~?}CLvvD
zwjnk(4bM7)CML743{g5*ua+cTe!tV?RFp)R{QO_;Zt}3H5VG^shjZfU1xxAmsqzX+
zegXfXr=0M?di(t1nLmf^%-3?>f$PQ=SXKNw;gIv@?DAOGu~j$!=Di*||MF(cO+Pf;
z5vqPi`Lfx-yYbY6e?$vXj@b$Av5K^j@0E-K(wgf}7@D_KgSU^IJg9X@IyBb{J%!p8
zP8IH~fX(t+a*-?X%;&tFAy>vE7-L68p$gd`Nt`iZyr};t53jv}?}skz;V6DSlu`8K
z$;zRyugJMh(#&b23_GX8{YfCvS9}`)jd2bKd6F(absdpfy+>Q!{OC3cH&jGZ&bpSgqXsXQLOEAv
z-|v2uVCOS_&2=Fm=CVu@&tg#8qZn)%oj|R=e^I6ijq;17`U})YQ&!-R*ev`
z9%1mwoeW>Co{7uSOGjx3a$w9C0&}>qb~?@KO2$2ri*v?*5-V@B4Y*Dbzo${DuD*Ud6GX-}^KA
z2wvDL7imn}*i6$**as29`Tr`6CX=$WJ0#i!sjuTi3uU=_Lq|jTDv~MzXnNthI)xH%
zcS##B-1(VSkto8nc}i*WkXG-pYUjd(3wBZM1_|Fr#S>4RNu)&_@jWa#ijjc
z*HscLyucLkhS&P-@@a`JV)*&c?NXVJ*~SHJmO628
z4MFko&t1Vw;)1QiXFiuLn+%21)ua`5!hGPB;<|~UM1dCnEBWT=XwQIefRj=7+|@B=
zU5_uzKj)+bUY&CcoKFinpWib-3(2?JD>e!g;WM#V612wvd5utj)aDJL=FEay0ZGQr
z`et6n#-usd6b!sH>WA!6C4t7W%#v6E9T*MymVj}@TZAiRj=#(6K4F
z_?f6U46A)ACy3qZW+Kz2Pd2zI&A79LqNvr_&4#|6HgQ8?jlq}~6r*4qS$Zu*VnA(h
z%Af9)-x_Nb3a5AY6d@>7*V-fXfT>=Pa6=7;u1*
zDd$J3W_l!SHhT;Swd94UfyMJ-w4jn5-H<;(6gr^;M*w=d`%I`G)48FmGK*LVq~=yy>A(w
z8fP!D>806a2B2Uj(&RhMlpry>UD)v$_lk!b-D0@Qic57YAzT~OZ&Tr6>Fsic_!ddQ
z%Z|6q6CL72D}qtGc=eL4Hb}xoXXBHFkvpV<*RO<847z|@Rmh#-K
zZLbqTd^O7)_?3e(kvWG=3r2;VDM`fbzq!vuyGkiW9Lpn!(Y02V>#Z?6eF-o)DL(j&
zSC&NyW;FH3!fdNKxPQ@20Jc9kIFI;j1sPv8`qps#i^1>yrfxH~pP&(45ExZdvzwn>
z35c0KrU%w<4^n!C6=Sc3sMkY!9bz2oxKXT2qodx2tJp?BKgT3gK?6(2jo7|Q0drlF
zVeraO))GgUOnX02K=+E0zj)U68V~hF7Ey&x#aoCDAhgW>gtF!sX=@V0%~XpJBlt;d
z!>zp^V6tUzD7{ZXio07lz*JPVf8Ypqd`!RFa>aQSQ>CQ>5%19NEmD
zoHGd5RJGLXRZ)ZxsKpS5p{rI4tS=W6SyF4uA=J!#jdQWPAVGA#*n!K8e=*>4d02hh
z*D$({_A5z$Iz|P83)nCVdnZYa^sIM(%t^U(h)K@qn0$3Ca9dKpMI0Q9;gt#QsO8;zPny*ctg%vH62tHyT@YbyycTd&v^Rb
zZTBKo)$qGRtP4f=@}wEi%=0%`F82#jaxPNRwyeLc46?W<1*S+~pqC!=4Rp;9U4Pb{
zc++KDi7_yFugYU}l&9Wn!QVkF-+#%LlIi57szgGUpyW;OaP=Fc=Ca6L)Z;4JszmN9
zPeLOG6B=^qROTb@LQ2XDlm#BgFf6fg>olr3)#!wh$D+3s+xj05Ek>(Sqe8yZfQ|!9kZI$7ONMtSSr8NTt^6F4A&o!F9uh=
zWCtVX(}~PSN|45_VV&UA6|>=`&4$tT#Ng91n|h2JN=hv;Vv@Ya%37^PhrFn7Eh--y
z`Wr2~I5Yb~i7^qxSvR7e`3Y?Rx%XPF*4YO%O@ya0Vwd9Yi_(kBV4*a#ljEXf+9qH-
zToSf}#siL^FS+$YPF%s-{mgOhESRSxhQaK)Qv!d;Gh{Mf7arg&w}&@X(v|hs;1`g(
zML&;Z0RKmu%ZW@5FsM)93vD^L_P^(lLKEAUab?1yW(B!8D!g
z4Vycmf(Oe^f;IxBk?=kGG4H`3D!HTRVMQD6wtA)TuqjlLG^Zwx?f_dgCVUrPgm)~$
z!Vs#@T>xcPcQmjr&_;08O>3Z$jKb|0!?&Zx@Hoo;MAP#3=E8~EhY5o8`Of-j{}?Aq
z0*M`v=p^ntUL8buKO5g2qy00%wrOKs8NTMkiNwby4EIT(cer+f!j-?4yU-pBl6Dj)
zMICySl(U%f9*ZrU`7^Py0|b@Uf?HPQ`WJSxi`bNl{fL>v-lKkx%2CPQqr9=ROicRt
zfebB_YYyJhDr`Uy(r&2FE*5@T8?>yqYj#tzmh>KmhTExWG@Zq+tJ!;%TGtmuU9d{yWcwGex7-<=qcxNBy05N8ZzzLFyc?H8HH
zG;&y$QVC83M(Gydx8SoxF>9m?uCr-d>(!QhEb}u|CP%Ef+R#Y(b$lgDOw+fYEl`4`
z9BYV=KxkztDYl$|zdkIa1na}UTNzQ`Nv+djD#BCTAL$D$gXwC#hwXkfVz<%Q725r(
zTiXwLPix&-RnEM>O3lG`LL*){2JW?UYr3Km^gO>C$UQuBoBT=2%5Cn<-yyKVZF%`D
zz^wyL-1QXQ_j%F{&1T_Vy~-mUNpZJvtG`(6Kev{q4~gM{c_MVYKSst|X{&p--_vho
zGH&gs9$nyp&g#oN8K`FMB=7?Ekvgjqcal08x7d@*u66JusJ5T`5_`PRmzyY{2qjt=
z-A?ON@+?6ImK+#1x~~?_GGgNu!*|_QLh}V-Q1L8$&23S`?ym&ykjXCG~xvIEVN>j)FM#xbQsvN*t++HaxdpJd`3#hFs3Ezx6~1-830HNnO68
zeB}5WjCJVurNuavcbUZG*q+U5MxeRg>QqRG6%cF7qtzJTGa=AabR0;$mmywyaFhLp
z3X?Ls$ePc}QJmBL+gtQBfRAJ&5#qtpN-bT(
zhn)2)YBN3L#Gm0qoT-!zEw*8)O;Q8*bKLAI>*Wbsf8_A$R53%0#t^f4GPG1enYgkx
zQ3jziI-PQkKVs1{zH0Zlr=1&lF>Bdiis*ISAVDzJ$=h!qVEM=jUM1gMJc#G
zXT?n7ZL7TeTBL$U&e0i~=7}+|hNa*c#d8XwswW!3)(3o%cJ?x<_wq+3gTL{O43of)
z$e5yzi^^W-!xwgqR!pYmD`urkAKyAzm&hT@La{MuP8te}9z)EM@mPZOR?CsCi|agG
zbH5(c|HIo^MYa8H-yVv4Til@(*Wj*2ic{R(io08(xE6OSP^`EGhvM#mV8Pv8Z+gz}
z{N;}OeD_P9GDeb-y}o;|^_g>G{}D-S+-OGH*5F7f#A*CFk#L}JPN=moeH=z2RszQo
zB{?K}>TXvkW(9{%D`@qjZbSQ=bm4kh7x6!Uj-=jC*mdGF^0gOXi;0|QFx6VTegJ+4
zx4&Qqz+5oY-Q66isc9`xfEJfRB!C;0EGrg0o$x8b_)hlZ8Zc3ihi#<2Y9Xl>f)TJ`3=eO%WzhjmY(
z@Np%ofAHlE4s>uqSi(!XNh3YVAjO&ao%rsCI4h}Hw(!+mHiF}W7QC>B1Eidu^))3zX>O^nL=8{?L{su;
z1T4U}qc07M&ILJ}5l5|)St|pbPE16{;fN|GI4Oi$NrL26oAUCVtW}%KwNAfo`LYLA
zu8nsWL*_sL!{64TD%qr=F!^JL;tsH(9hJ
zRp)pV!MjcbPh|4O#6-6&|1fv_U-II=a0zyBD+TdUDp
zg_BPho*1MaGWwlT?e`aPnGz*zVO1zCLcO>40}os8OX@XKc;)=r^KY(XDl2xH==5^b
zp>sRwe8&<@Yv)a#Oe6a&B7f+#a;uwbb-HQYIgGd{y+teFBS!FC0Qt~~(~N_>1P}n1
zxU)FLNkI^wm5IQgBT>o)o&)#5!eS_@85A=KwDp3O767&J;4`Fg>1Wd7?^~4
z@>3ry)v-y^H-uA7kI9@&++y&Ga#rXj_|;uGKfo`1Q(@C#cuTOnP@V00f~V12-NMhG
z;~s2f+Q{12O;i!>-c8D^`iVGcBiPTBST?0UdV#cj=KD9|t^4t=gPSe8L}x6z1v7?a
z?G5j%3qghgeYu4~I)z}GDMY+Boe)Io=5n!dpf^azHtoYe73RH4YsH(&M19aLqi$UK
z%u>aiBM*!8*DltVN`?Uo9@Am>E?^7cOS?O$|4-Jf7@t<{NLZj&0H_;P{=uHFZRLyY
zVa^M4nH-)q0tY1cc;z
zQQ>IZU^Nky)HZIni*G7=^l>ELkXkrkmij+)@Y%Y*+Qs{Pem@PxHlHuq{Hd!wCuOwf
zsk#=0>p8@ZdjTV7hnlmJpM6hkithT6-J~8|Fy@~g;H6?)v2!(`SE`^?kM?NTh$^ar
zsNt@c2Svew;&Q2WkoO6nTJ+0eZR{P
zgS%?Q@c1Z1>yU3AcSOdo%@^G?*AO1g!cU*kffP`LM)+iu_nqZUMn3vWj%wZ
z{hd>_Adhz$diiUj=*={3A>k}!aF2#XirK{f(QL*3!xsJP^BiRhdhMJ~OZ=BKisb-?
z?b}4}6z^NZk#CKJJ61D7PUAJi*
zYQByk^{jh+(p|!
zf|j=D+zWG7M2UkcR@f2_HsXsEoyLl<^XQHhS_EVbYyyw6t6V$)hKW(n{(N8`y(b@K
z!I(+C(E(3DE9exfz=itUV7FcA-`ipr`7f*Q=Q@NG2*<*-hCZs71edL|osk{6y{`b`
zSj(IDtZ_5ous2M_D%8QAGa0ye=F?)=uF|-YvLA@`JJ9>Wk0xt+BRTaYc9c+bF3054
z4V{){ZyGIz<9q~A^$)kiqpWcTj_AFZfHUH+WWUL0!H=5~_n`MyhX=+{;QhBGi5ONH
zo6=szI=I{7Vr6h%b|wL{8Iw1@dri9qMg6FiI{2(G3tt4P^Kke~5Lz4>u))e)iu%h`
ztSNEhNI75oeTOc
z>&MC?;psD!0UJ%qtmZ1$J}Sh^fOW>&0xSlO+2fRiEgbAbFCpC<5L#u-eatcBK@~pj
zg3l#QQLU#w`R-kzc-zHC<(y^Gd6hiKtA%z*4^Dw;)WN8Z6H?Fo5V1L4o4+Q-V|$io
z9*@$$xe~{rvDZw_{J7$H?3m|XMP?p@TVi#(F<}>Xdum0@Q0&(5ly3yn9nU|59fJpK
zCKoa|I{ui=aV!R}n00`-Uodqr*|at=93avRuvMp&2OQq+`{PumYtSy?xUnR(DJec{
zvo6R<9N#Uda0y$;wc2iUG=8`<6EDwnB;$nRvbt`bdauT~v1gQF6?xzG<5-ptJtu9~
zTnQ!Ao{j$2|6+6RrER^4oq&8kU+l>Al-VU(#^(WzRF)PP-=y!0hoPSO?^-%#4uKLQ
zhNUmm(9S9K-uIFHAd$DCqRf?)d7Gcu_{otu3nBD8I&-OiP%-5DYRm}-^$t~Syl0@&
zFgt>}UpPfW!%c2hOZ$?UKyLnEWcSBfPUMLtz3BAa&>btTieeQuqUpT$DMU*w!#6hl
zNhY6*;fjbKYUBK<;X)+oGBm$cN-wQz6qiGiyJx(dy%{t_Qc>4toOO~)+71qX?70@Y
z)?nxBbE7LLeAh^sqIMi0jl(1?e5T9NikRV#?EeaiBc6Q4rOk31ifW~X{Au6s*T}`=
z)8_je`Ro(@Ll)c#-O)>0^V^u@G
ztLD>p)OlP}z_7Br1hcGWWG7?!RDH=C)ts4p&jix(=P}2A_yFt%Qb%Kt)|x}!S(BuN
zhpxqJrz7oeeGYhqz8Q$)goVm)n@%b3+>;9_Mqp;X#HC@67yI!l$8IB4re)B_x;nt=
zNvY~7)ALm|SFy9XIm^>+Q#&p9+onBU^}Z)9W?`06eyPq2Yh);^K|OrjreY;^tQzTi
zSoPHiXjHXfsMH$H{+N!1fC8?-Zz|7_P5@u=b7lsx3Gp(
z`fTd@Pn40ES>_g0L_P&>y|<<{Z4glTIIiv#%pZ_5NUm}9)IuLSr^WE%6U&*>)BG!}
zGW+Y|^9|X!IgD;ew77L4fBD4%=*Jp%O`o7_{kDa<_qDY@hz_#jlb_%k{&8ZQi{TjZ?m|4k<`*
zlXjf(eu*s|4&;(z%?F3Q&mU)&v%94pXM*n7oiRsSCy2&;49Y&*OV_bi{x}{6`ECtx
zav7Yr2*}!2Ih?XYOvDv!TOB$U%6rX6DpTaN3ya`OTtGk;{qs&O)dSf`|9;39xC9e+
zeR7>@-Qoz00~wR9rLvAN|GG+{q-k5A-V+ZhMSfi`g*^RGs=MVKT^g*dr+C;k$H;nnD}njUWjx0hMuSZWFLxG9)~md)S!t<;
zS`#jzP54x^@7_FE13ORuGO!u%_{l`sDBs>6iNi5CxOek0QVOUJ*~9t9V4QKQ8QlXI
zHKLWELK3!gm^fMr7BjA$CvH+=3(F8Fl=WBV8=|vp#k<$@uuo=YOE2j^Pgl>x2|2%d
zaJ*63IRAsv^X$s}rSog3%`|=O2V8bI51b<+M)oA8FCy+D+hP70ggo>ky+CvO;pk!_
z4jm2Z5vps`nLj310Sr6s+YgDP2hnDK-p3K&$MDJE54@vw;nK;{UzF(>a8a&clst+3
zp!RV&guM{JtBj>D0vG8%+k-bG{^JyXtoi+|S}{I#jdsFkc5$WDQDjEP!vvz4ZHtAM
zU$|eSVV1O8=SFKl=(ix3mC)3~HkoV!zEc#!*^7HZ-B1+-#3Ys|p|}-oo1Vq!--{NW
zyRF80nGEADp1IBo5k97+7-J@y?mX~-gCLU%y80g8kG=~?#B%X=4ZY2kxHc!qp~1hV
zUHW7k1|wQmGlKZ7B+H>}V330}J%cjc$+^m82Ls$7#CBcFNxSDU>#VJmMP~BKOgKY+
zE=@qEagd;5KS?Eg?0`au+_3j(bTK4LPG*5pET;r3iqrLMi
zmB+kz?McL0#Vh*s{u2am`9+6*c+)aq+sOLkpE`hI2}!QCwyonds&pnP(YemZ&K+I7
zyM|C~#dNRz*s;6Ph^YH7iF%2e+xQPRWT_LCgdO)LYjtKcMkxF#5s%braec&r1?DaB
zl?qqOL)PEX^ZLvJX@!vhm)=FB7m)O#XRT9+?6`w
zM1O_dqjuGPu<
z_DE|Ddm~+IE2i;t3H83u@MF`VH-gPYe8&{JhpF-1i_n*dQF#%KJI#S-fscTZ)<-Xe
z!RTaIBd62vOJL|cXZSk#_{+1UM)|EJ@+*3MekTitcOpWu3>G@908{9Xw7fQ0xf||$
z(Avm-l+P(>Gs;f`dts>S0`6d>Xs7{MV6*bU1lcWm|Ji@xL
zLn@ZPD*U4#tpcGgLBTHL|Cm)WQ}APr($dHQdaIiO|uY=OM;WFC3{@
z5jhMT^S8fm4v&A-uW*4qw^6~oIyps4d;xql5F+8Y
zf?S#~U~86PZKd`d;7_e|h>FbJ$MLSP#V-g@kUx_o8_=P;
z`FLN@Rs!QI(TKHeI43F~gVx3nEWS~8RMmwOhXVfNHk;P%sqnW5`73}`v6k2f+;=j#0x{RhT!^cRo^h?hrmXF
z**j29+-M(BS`4O+rhzGHat)pt=+h*CH%*@ef
z8~29{5CC46ciqkv7)i_>OUM~$Wx3_@*0qbjji?`kdzs8*EO4H*2*eL0^C6pMJgxI?
z7T6I??QNz)a-Wh~x`{ge#2#px^LGf+=A*j#tvd
z=7~>^B5|s+eENdehyBf~9RW$Hw{KaoA3GOeQ~r#(0?`7TP}9k8y|4Jm
zvjN}q5&=(4y^dt_F1k6lIpprA`byb{=4`Utz*{mDY(xIn?xac$wk~h^SnEF&0`i$B
z-ZKx584%#nqQH#&eux`*8vKO2a{BX>KDQhc=yw-Jq+6HSdmHAdl-LaIHeb(R!pI%7
z;KY=MoVPgQKRW4)HVMS%8eq7H-#${F>mB%O=AG1eK4Yk}J=z$rP{o?(;7cCr(H-8H
zhMaV-Tn}txMQwEgzD=Sh+`1qKQCX--FMPgx7j`$gd|t#5{qFP__ms5dcfv&AhAUSZ
zBRC95A*H|((b$KvrowSiy9~0!u>--qoW(`|xit8h1%?rHBRgL++W?D6Hj!uk8x@@@
ziq;p!e&aCmwVz&M%Una%I{1Ro;>x)E$w-eGjqA(@S1CLB*Bk@WcxWsH9y|~xi
z7y%#zvgei0hsDxAxeL~ltx5Q?Oh!DiqPT;e&^fo$0M_yq_Y%a6L
ztzcHG_fU=!Yu*7f-^}#m9T=Z1N!Qs}d#mfP>cNMeObsXedWYBh?u~X<1V-O4GTq1?
znJ&@yx0>~j+JuA3r+i*%8L+UkRprv)yx%s-G%N}t<^~wi_bZNEKxObALabNve(%7H
z5jTQzrK@E{N-k2oQ!aqyqkx39XKLV4;i>A+^w!tR9F%?85*##&@FZ&o+Yy+K4$N!L*^s;D74(y=9XnQC4Tht2o}zEK+lAcJ)TM
z(+<-8Sm8XgM4%xGImEgNi+P(sWPmvng%Ww8=Sw|{Rt)vZ?{tI*e@e6HXfM00_~~q$
z!?ulPCwDjpccFJg*9MLMpr6+rnE1>Y0orKKQ0jfo%PWrYv8fApH4r_}uA*Nk>g$|K
zGTQT`UJ^}Kt5s^Nwnh^9SJCvP>*E9b9^KD0%b3X~J<38fOl8X6FfzoMaW4X@KZ2&CHbjYh$=G|eRv+AhVJ2Q=rA)_xqRI+qvceQlz
z{k;MAxuKiAI|KXagyh578E`*$LUcbTO=%NPprY5IXOPM3Siz)S5C{Lt%_>xtKrOJ0
z%UVlV;`q0rh2aE)^Z`3k%GH%_gC--uKjicN1Mf7h%Z?Qs-jkyKDy@zdepTpaMrj6o
z%!hSiWBCWKohD4M}P0K-q5gPEC)HSa(`G=ooUbf8O+@vQ`t9
zPak&b&FxVLcF~BA3TG$d9pmi)`LTI-cxkOrn(bTWP`ukwC>yzn3%dDcCBk?J=%zf$
ztSP|Au!Qc@A0#fk%j0gW5O+3HUwP8t&VP4|T*?0B7bQ&UVfrkKlmYoJfsw=4R_Q3D
z4ZDlU^DS{inT+tz^#`5;lDWOgduByJm%&I`%Xi|8BM`;GEw#bX_T3>MBS4F;Ed
zmEdp2{Cf_Voi+o1#{^Qw(}iT{2J7Dfsz_ClKmg%=&p0A2{HOeUs4
zKAK*31DG30D3!#7Y1xThUtpGj)Mo?SO&(&6%tS9e>s&`NNHx4cjAw)!f=bCSnE%|Q
z1!gP|&wO_Z;iZkxuJW7SkW75KXfZ_2Pa_b`Y6=4Hf{b_x1d5FpQm6FYAn(bLKp`fU
zLS;J{jx%Eq22s|(Nyjnf9nTcQNjY?4DJyeTu})?4Ce03s25Q3Ez66z;7@ou|7uJ~f(^+}*^Y|HMX+&nZ;~(iBL8kY@
zb`rgRUSFDe{Ir*&&Y9a9@W{nLs*r_YQj(V}Hc!p@TQ0=SvIYTEOuu~9;Wn9^R{f1b
zUA`bz5DPg*np*2CXM98hkl-ZmF1>yu9ofY-_6kN9xnK7N9s=i2t|--C1}P=c?Bv(A
zEwrS9eK-8pOQX@A>|&0;sp0Yy;hZw8P7r$8Q44Ma;7%>5(@u0GiH#8oL+KwW#kh%V
z5er{=N~oSlF1uhJW+cn@PIJ2~=%=2oEWLzr3UJlB0gJMkht~+C7n43*2g0&8WR{*o
zce+C|IR#SqZY)!F5;e+b&WR74%e>_e_YmN!uCSJp(15EQaEmcr!INjlycqnz)KWvz
zS0fVZ^?8(Mr@&11s2$D|`iP}Dv7!F7xQNxi-%xOTEOb?nt5RMMz_>KCVuH{1jLBk+
z$|+Puq4b;$F7IZ9i@f~^uPW&zk2fKAB@GLZ9Gh+X1s;MoIG0DF*<}!M
zWm6iJs4EnPNVE9wk)5p%iq%vJlb1=U6*^`&AJ$zM3ur_r045ZSGD%x$@p~A?ZPazK
zQ=*gfH$AfPhhB@{C7TEsRAEUI*==a!=XSH_WrYMN3*WTAH)t{sey6*e9G2Up$P>xD
zJ^3349REn2`q~px40L(>q;5?Mt{I~^8A&GdTmV<=Xa?D#XoFXlb>J;W8!C^uh8Keq
z3jDHvYQC&MuDvM&IOC(u^%ov_cL|NNXqTq;d1bu!1Nw-Ot-?gDP*yLH`PbAb@Xf0cc$}f70#u-!jowb+!miebvDx7#w?69|Vl$B%tN*IZiWa?2Upf|r&=!m2&!b-lKz^^h){`QbL(kx*}
zROutkj&yQ!m~+mR2g09%qH@MLC>gnE1o8UJF^xEYHpgZ^)SX0XA;`)2;-9=yxyuu}
zo|cYP!c9(CO0=9~F1fm5vBf&_y?@3{KhAuy=A)`#K1H427*C}1tG!bW)xzaxd>!|t
z)*Z=o$0)59j*u=n#aZr1ANNHeHvc9a6t$n`k_I;4dA+p?t41Vkdz!>8M0AeWY~9`6
z$bEEt9qk=WL1i>tX*2MA>IM
z^u7RLL({r^E^h|g)nQZ7!;8axo;0R*VrmO18pmcnBHA`o|JKK3Y6#_kH%Hul`kJPZ
z+-Hs@*B_R#9&YASQlDpC0+*cN{&7bO_>BvqZvNKs+M>(V1{0lGRi&Dddp7Ztk7yPT
zk~{giiPtz{RxKI`^?WVI%Vro7X;wObOjg!E-+y=80WBlE27+~@)jG2(9vsYr
z*aNDhiF5S1=P1}zw{dtWpZPX2>LabGEXJq1A!}7
zDV=dfxkcqD3b@r1-yR+A!ggaDHxxXVP_gyd90V*v*0`j@nTzny%7iP__8mX{)o(Ht
zOLsV$VrPI%R)Ta}Q6@dKo9($nEpk9QHb|W6XgAZ>$&Bhtr?scH^y7}{234N4G|XI^
zkcKXbM4)aSHNt*^-{N7G@*F|pd@+Q$!?`!Z!wg(dG3SN9Ghd4s-wH8O59#Ro$%O
zU&PqBTP3}e0d*SN>U)SNG^$VPeJmrLPqSx|BTi0rv-U84mg?f}LsxJ|$hw{DWv^oN
zEFz_A9mV~yD^LsyMVdObsHu7$)n6GbqZW?BwYv6NUnFK3lNNWnBs26?%)&YOz}r^&
zAyJ2Z&jO@!Vet-c79sh>DJJ)H8|?`PF0!drB_(-FIFY|y>)8s~Yo?F8c335QU(&_<
z>9OCPm82tV>##@LP+xnyq(J&5F=BClE{z{~aAiHzGC;F2{Yw%{H+Jj5T%nOB^6$lm
zG$3etuHA+wTg-DFua~So?+#XECweH1iijzGF=Y(-E~8rdNVTZ>G>U96$hrcy6zWPr
zm{TQ)2H7n{FW=4Fe8W}iv*RP^#TE<2^&0@@*{n;FHPajq0HjFrGHFNAGS7*BvBGv;
zSes{CB6*YO@&q1NP%EV3(zA*3I22$`>DxCxM|6Yi6n?S|8OdIV#}Yp**VK1E#d^k?
z-mVA=k#{gRI4$Pt-=-Y#YggioG9C?r2rx(Cp`yM)OQxx}#Eo{`Mv0Pox&I-X1NGIG
zU-sFUxUn@2OeXAEyMa?{tQEloYLH8P<%^B29_{P*ocRJ*l`EcqO
zVYLbN-dXK9g@KqU79%Qs;}Mg{V@%EZ`zU-)s$YjMSzoJAdxRz3Jt{Pi@!bRn4~x8c
zmtti6sDFr&f65q&s{~VttyKF9`TFlMY3y-pg!yE}gNgLQ(`$0`KVQ{X{`9uOd#-w*
zu#dKndW_gT&zjyb8sk6rRgZ94OI0X8w&%4G&NBDm7iY$7{vhJ$ITTcRtRdelksbH`
zbPDl&ae1yWBPGJeL|aN;m(j;GTxRdZpq_qyg3uUe;d4OPyCuqk${4#fQfFH)40*Xj
z6-r^M$_>6!e>N=K0W%)R0gWlaPOH;T_73L#f*?x93wdf`(~WfHgsrpI#L{w)$z>
zBnO1qj&{)$LA9#FaRf%nV9L`BXCo6{y4;&0Ujp~Y#?E{cF$Lu7jWr7?RhHpfn><|d
zZ!g#zAw!S$f&7B~v|Jm)Nt;sAOa2(qg%}%miI(wU-!{CZ*bDy|`j5Z)JBY^rq=}cS
zP9uWB#;`eN4UwEd3oP%(SRruHN}
z?Kp~djRC8F*u;C7*HLyXzFJt1-Mu_GzneRHa2UXar1Sq>}GweJgGNl)HA5@Sq1*ni|BX>)f
zEY57xCF}3;+YyxUbUnDj00lZEUoxsVo4yTF=DnL0dQ`@B
zHM-Yf-kEQ%-a4SBtN85h*2B5P34aT!v36;;y@p?R*vnX}rwyOAzZF+SnyW>Zm))_y$
zT+?Nzg;hE&`U=gUf0elY2-hEeNP1Ghhm;u$ckLoSxfUPlx-Eo0DGApCSlN6y9wao9
zy6=|huc|2j?iT*eycSKXNU@@@jYR{wL*IOZkke>bPU8q<7(>md&s)uo8^zJ**Tj00
z(PvhBt)&sw07UzXLYu{5IkIy0yt?rfPDy&pIRb=I3#Y04P#JAbu(57YAf`lNzmG)Tg$^G>r`DQb#9!vW8
zmlf1>!K9}rK||gy?sU3In%*L5HmR3iEeD*F%Xpj`8UOm3w(&$p@}=Ug%hwrY)766T
z&!+JnS(+Wabax6mln5Ov9~0YV5xDsAC!fl7=BR*_K~!o~(etJyzAUDGR1v3aB6;d-
z+Ai>-xa7A$};ws-SA3J
z*T(SCS6)mp_P!GqTDzj+$h-DjSLev;{dVU4P`^+jDPYevocQcWncfKkP!|g^tg*IE
zYNlTQf~)j7rX$EieCBj|5$HouW#3_hU^Sn~>k-r4LvEuQ=kcvI!Ry*z<@bK*#j59g
z`l~zjz3U_=8_}|PHxW`qhUe7jgPqayt43q1<5)t5Brbz?Rlg~(!)l>#x3oQ#L0IXte1K*2hob_~*RP}rqkB6w})c|q$@>nM$-#}?!*77p
zTKeDF1oZ0h=x}RobX3g7(yIftnW7O1yr)irO$`vGSPn(g>&U)WO3F+yeWR*5oK_@1
zI`kU^Z}+GTIz9FnzVML4Eg3|NwmNyrBiz^#B6zqZdY;1Ml$M2#R7v*BkQ&u&h8wo6
zagvIMeO2KVhFjb$E+{CG@8o4qbYkEp?7PW6-$d@eup5_vxLBzD9^D^ilLhoN4x+Zx
zganGD2|g+h{i)A)OCasrXQyZ-u|rd!E0c3aYzH0BQT7sW?40KLPyXy1C01zOZx&$@
zV0S`a=iR3<7ZiVGG$1gkl@5L!R+*xU9XZ}7+T@2C0nePK)Yl3E>82&Zy$gXFsK6>bG|+B}2#6gt5LZTnKkDQ}rN&+_|>
zgH_rGmm)SgKsmuLPWrtxX0_DJ5SO>CFij&^E-CaR6fsF+04)Djd_|`mpkK?{zwz(;
zW?hDjH5>gcdHD4-`>x6TvFf9%F1}4$XiMoG^*9Z$=1wo~r=wk1d=ln-r~&++cR-CK
zI4oRRLhR+hEZeSz62>b+5yWbp(&-iB_Y-;K!nyByfzN}VELc;a$juu|4dxqL8R_dg
zmFnLyEvFM&o_d?nG3A@FVjODZ!mKs=QX?!slZ%GJcRTXoS`R<$GCRjb6_|;I(u>_{
zMgm2`0O&3w@l7QJBe#PsazC?iauu$@7<5Z-hb}ba)DbK&t4+(DnMw+R+@yrvqb!Y`
zpwzgNkOhGe3G`dejWP9QK$6oqS1?bf;;j^Y9hvLHUGi97>8$EyMi?X|Y>6pl9X7v&
zVe+1h!cN)SpZBy4g>@MS*m}5jsi#G4!=?6u)6f<^$vt&S#sbf6TTuv02(7U?v@l1s
zi23onHoR%sMm>yuis3e;cTH`YSjPK0y-+WW$$tc^C^FV+mQ9?-Sjdxt+vUzhP5B~E
zSc5qFVh$P%;8mSXmX1IZ@3c(@Iur@uv??)Xx;<0LGN_o(VmL!`NAg>KJxE$l!0rp9
zP~Mf{v)oI>j2ReJAV9+$4w7p+pR1uJ4`EiX$Bz}Dj`7gasIP!qEw?*qjepCeqXRf2>pchlCURZ4{i?W=+3Xbzp_U}ZQ_iJ&SrQZMIC5p+ARh|G`
zMBj8pdXkNo@b~%}d98%*90nS{<deyL2`K%u@zc0!ed6PcWtZ2*A
zP9QMVhJnu>O(OXBz-b(WH6*$4ZZ5<5%>9n!w3T#$5T
zVUXKT@Z_X&^t>eEPu-FAuMy7$0;Jd88O-q)Ix~tn@BN)&PJnX))To!hnqOerpAW0Zqgm)HP4Ml3rIsOd@
zEO#0;llr)Yz5kxeRZTA!4=y^vQaOw2bf%~}y5qC$NLW@$+pvqRZypizDk_2gJwe%o
zXtz$u`(^0H7n|toyQ_xt^ukqiKy({i!I*gP7G*bx#S(siBVJj)OT5ge)
z(Qv$DMX=NTvi_UnpC1RNxO5VT!E+5gflu^^v-8)0+2mv_-B$dUp+p86EOU?8^uC;5T7aT
z4bk@}d6!GAD*ZKi_p`y}(?ZnxeKIJeZAX^pKtCwJL7n
zYlh0yu{6@g8q6j1fTS2VJep~wvmRo&$`3WaRm6YX7?GCHXC`^f9u%;W02(|ASbWEN
z!0BAFYi2q*v-u=Ym8%|=!t-SEs@cn}Cuj+j6mw!l
zB3iK`G*;u-a+@4*{Y*acDsGlL`~2l_yU{nsohdgp>o)`yFO%Krd^t{c*ohCq5|MP{Zh)pVk$tMFn@C
z9}r~Y&X7{VdYY@dn)I_5~9{jYI-hQ7y%80`_y{@mxRmT#rMEA6^e#O@ejN80Gz$
zaM?bHb$I7k%|O`O=3S#ydRD>w=bIryyt^TN8QwKD8{H7Vub?YUjA^3U#vF;wTVi
zMH;J)W0X)W!3ATbh++CvxW=`N!l6%#i7ZzfUBXB4Wi>EBv8rFI1`(CSnF)>47z1$p
z@Q1QVffdu0WzA%(r0%mPj=jlS>64kYfNRQg1D^{c?S)(Uon^NT;Hnm;oCeo49!Q06
z0p4!I1^gxE$$HyLW4s;lR`5i;uQ{Gq3N8|BPen~NPKDT(w+-~2+9C3?lP<6{9kB2i
zPRwdKPZOZQzd|>LbDO-}sJP4l?h~3h{@|MJAZN-_VUi1$N;1yvjod-F&0D88)NHJn
zkG=@?27S04hxQXAL5HP3ZfDJq*nYmnIJl19Uduvy9BcT@K_KBK$;O-vD~=&G29Eqn
zeaMGw8H5rQr>oLdkL=~K*E13D=H4`UcwnSvAA_TDA-PO@?cB~;t#&gy(NXUr{e4p*
z{m5JYQ_#JPfU652OW;aNXbK~fh!dm3N_xMH;mE(}5OY?(BG6L%hz~vTMm*MqnMTz$
z?cvfw&5Tx{hXCJL!0W`T#@AK&OpPNY%j9Xzg#qW&*-yNsH22k3TO7Q#y>E44UY7>VB*Z<)_GM)iLC0Q~3CWJ5>4FxTs{+>eS~l(~%g)wdq41
zxqJRa71vm{VW$_f7d_hB6*tFaac{Srlb?OK)-YY>PV}E2Ar}m9oDigeA4nppAX7t>
z?&dQ
zNqP)R*#6sB|H#Im$UAolsF7yl`%zL-15{4q=PMZ5+3nS_B1dayqx%E8J-3yCcnxo<
z`$pac4A?!g3aqAl=})cvE?fp3OMxvmNBX&I{|pR1^Lbs2ZWjG_IMUw%0)D%k2=wLC
zCrc(A@jWx7He#mgBUW*_m}^0Vv_zC{E=wHL;66|X6V`(mCDiva)ciYQvd?C4VJc3M
zN9>td+(RwqKe~&)zZt!M5vae5#lUC8h{R4jp9gzU?(oKb4`KZ(Eva(Enp5qkxHgFF6v0YLz02+99i6PJGE*sCzmg9%JBOiDJ&BIvhSK@xg
z;udTn6mWmmKtVNx`b6J#S`w?=CoI0JTaG!mn9`8
z(lXg13Zw!h8}qvIS_iRffwiw3y|5Q#5et|=`>zWC?|?`z7t3p9e`pMdPU_pn36e;s
zxQ=j4z;0DW;8YXypPVysCtI}5U7wi??C8fMw=}((VvYZpu>I?=qf#Nq4#QNqD;;}R
zW3&58e<=~_D|K%(Oc3?(YSYCbphsW|lq+pL@1I}@*alv3Sz>!B%}&w3a6HlM_0|a;
zSXuvxHJrO{=OokkR%BcWYTKbjc0Upy%HAjN%hc(($G(euf={Hn1eiO|9UjT6_cs$=h
z4a>E=tqQBTiIS@5Dg-?~^~z}4BwA~m_JE`fHFh7mKn-K-H>J&{JI3-loyZvng0@{)
zXR}8&q6chdYj=#%t(VeW&$qq5l39I8eHuB%AH(ru&_ah$>nq-$wxep@6d<`wgR7r)
zg8_$QXE)CrRo!M2`h$N)K$i@86A#=wIKt8Ni#+t*I^RcOUhtGJt11U$$2(*Bl*Yn7
zYl}4mFc(+0mf8qOB4cobnOuxJ6rMD=4a!GkMH!=jqZT_p!hsDR-vKvfDeDpXC~de7
z+HiVWX}Q9W33;C%S!QvTe~wRWhx|pW{%cM3#p;XZ=DXRD4_rgNK2|zk;hv=9Ob=%;
zsqb2EzwbH)obWC?&y<|EO!%VS`cq@aF6C}!*!=FE>AXv>Jvq%;L$WKwI}FhKZGUVV
za`sz3<(lju2P2chuMsWm#rb20ATj1yF{`78;ms)4Y@jpp%cj^K`)ROs;FqbQfUkG&aOL*m<|FJ+jexhOo|Z`w_WR7_cT0-JqjorJriAPjt#pNdz%1W^ca74|FqXNe!-L>N@@It>s?jzF
z{0JBHJxDc@t9moY9YmK(L}C^ZX3j24niviT-K2@6A%~l^8%>>jNQF0zWyoxM{;R
zD3|U%9jKinKA*)_%0Iz^tY4G|h=i7)(tPlXUz)4i7f1_uJtn9?O!E-rCD@!NMYPAM
z@+-qr8cWo-Ui;4HyyPzJN&T}s&5gX)Gzy@gU;K3~!i&TIo2khc5j7@aPV{uc@o)P(
zYAT6{!D%U%>Al;BA1<3rtvIiF#eoz;hd(ARwi;~Na&b`W
z&sSq0sf~t6@%+_M>r6*w#pC0yM>*F&xA1?xT&Xl~0RwY1dC>$84$r_s3X_Mugt;E8
z{*3HnhCOlfubLl$JIHmKWW`u?4PGe}bH;Si=5U&aey!&&^Mik`t`p8Hc>Ma8m(4_UDgujUw$KQgsT
z-%~y9BvXnxepTgLvvC1HF!Y1Hc(S?uef5Q(2ZY4K=j-%C^9Q!cm36No%-r{SzNW9Z<(RS|=j
zn0Q82vr-(#kcv5=HETPmLX~pS@
z?WT<)Ry7v(Y3R`L(1WZyRHj-hC9K$FslJphqO#oflZ`B1WWc_d{&}S=&w^zM#^bzv
z*Ri2Dx?Q1tn6RW8MhDzZkjTK6ZnWpGd<;?u?!I6+#v74(BNqS0V|q7~|8Qvk-VykP
z&}t$Wuo`?P7ln1mWBX-?3mUWix?(LJY*WHcE;nz!?8ft8-D51XC|U1oH}v$u{6*f)
z)-a->>dmIzn%KjiQ{&JZw+elgLRTa|`=Sp%erT~BJAFU#N1Lxx@*&QeWEOrL?KZ+X
z&edW^nmnBuxcZjM8NFYr-}1lkKMhC>yAEW=XfZbOHU0$nk}$^^FYiXDH7mN``U+S)
z^+ajr`r&bPYKJ-a`w)K3(5Vi1{#0Z8VSWHU{`U34N7iFHIHpNrKUrsv?UD!`ctRBI
zcV!OH3?4Gk84qjqI?2dQb|idGZXvkcqujD}H+D-w9C%a7izgqvjly$)7eF-b;D@H}
z?`F==Y7*QfiM4cAZaB|=_dg?kT@!#?Z@ON0eGwC1IYjths_K2WH$gyij$(x&iIrFT
zu)>?&w47JwBE?vJB1*$Vo_p9QZ|Qa&7es#Ink@*w=&cZr{45MR_&R~fXjj71$}$r;
z&6iXl)+s|&NwRxm2(gcAO*Xum#=6+DEI2&&+j4LC;&xV&<~Cu3-g0fA*5QUyKRLkCANbB{v|&vG}81I;J-
zA182@FR6MkyaJXaFB95faH|$syyp%@C*uG@PvA}f#X>%>X9%Uk~Ma56-PoSDrGE3kvZV?n@rLL&rU0$5kI-5{obdWz!|;!O4&q
zYpvX&=edXc{3(hRa>nSezUpMCnWBC2h-wc!N8IKbSbIR)@$b|s6=BY{v!Vl-Ix8?D
zDy@ZI-}b?isfHTAyb7XH8T3c`jA|WXc$8NlH+*kpR%9BGh`0H!cvUS(P!|(UxvAXt
z$VK}v^O}C
zQt{)@>M9trMVc7|NEYXzNF)0A9DPpuA0GPygJp+Lyv2hdwV(e`MQYpg2*=>Ie*$(}
zeBdJ%bo!{_0xeGSuHTkK@O@G|I>|ko?)3vHi1vv^_jX**?wsr?$Y7?pucCR^4UBl!
z%>62ci?n;0W_Y>l;wmeno}Tu>fW5i)h0!sEs;513_fWB)Ubh|5R(HfGk1c@jdV5fe+@L?oB>-^Gp8OARh;
ztEh$GiHDS7xtGsIr-NlGW;py;8`tGqU1TK&$Co5{i(K@_O{a)9*UIesZkmlm
zM_o0ff?pJ)Cf5ozYOYAl`5!5!h6Y4$w3a$b%*cW;0lk%<6~tr0+WImZ4A7v``T9Y&
z%?H}sB4>ME%@qvPj#VKyW+9zo?AYlQ0%D){0l|W=P4WASv`lJ5=J*n^`D9+3LSI)Naui`HT1Wz4?Re0ilH9n*LDA+
z0GK>eD406I3FbNgLs0m3D`@#g?5hR7L#u)t4UX~aW(kbXkK8JL79H`{K+r@9&dM{aq(>A1xN;=UY|Fa}7V1>oL!{|DQrc{(Walu~O
zMije6zQGL=S_0$T;%Bj&*x;{CH5G-JEovw*Xp#D5=%s(pe5ZUUAS~g+9lfibWVI=~
z--A1yJK9TOXQOe%#1Cq$`KLiu6EL2@pNzo=Dc=6YLdES>M{~z|;qkN=bp4M+lL`+Q
zdGZ;4P^)QYKH?Q8Hv^{5!2dTF0W?cMC$ysCKTT)<*G;=QGCVN%`9e<`Y5#nXBDScfFf_`sKN&3)wiNCjP*0z83
z5vtNK@&DIYK%LI|;r~_08v4cr7!uzeQ+dw=|+0_5!qxe;-_qP_?
z>FDD_mZw)^u(^mmbJFc`%@@$p^leKbo$_
z(Eq4kGrZ-;pMSbAcGL6k8H@h$XnRzsEI>etuhv%3
z@wJ~B%bEn3H8h@sD&j&QY%S$bG#CpN68cTc`^&kRP8o!lEiFB)Er4BEpIQ}E(7|$X
zp;#ZP&i~-JI5`h61(OV1rk-&W|MBK^_qW?EC?E
zT_;wPn)RO0YAtcR&NfwlRmI}@XDekhW?awOr^YN3JosE5!ZZH(@c?(NAWk4k(r5BP
zX5d99LIPGoi=pz@=1`eXnYzv9lq8td>=IIlDD-zvSz@zvrqLta*BcT%l37wOmXr
zLtnLu&tEF3uhYopnIeQ#{K$5m+=vj`cln~b(Su)N-xHyzCLhU%k~!DL1H_w8KSWh(
zVphHj;BrzY%#W{>x_(8%I#nE)HDA-lXZSjA-nt&V@buPo#rT`%nF{aj^n0F_)QC!iU7h0&ri-?X2#wiNJ>MlP5<4N@V
zin!zBN%%5NNX%L5I87k7_*E|u
z>4a>t)Yh|7pq!#OgUPqq5;#mt{_ya^p@L771SSUW$9T-(NvDje0JP=A!&mO4Ng%@V
zX3i#C69Sk=;)WEGk{`w{H>UdO%W^=DNyw?*U2DF3EN5hC*sMI2Ivin4|pTUWNlj;aQL@doKD|h0bTN_AZDDyUGK_1D-Gh!a4#exZ97boat;@AP2QjG
z*e)3M*gfg+>a4?((S-iG!}5Of7|4m+g;R>>{=iXAZ-z`{+dR
zqH1``*KEO{NzA0;2|IsRJBR%5hgF&`gM07nX2sUpry2O$2YWq+Z
zt6sfH=gN|H#+x9+0e)4ID9K62@yx{&$5|QsiuFi%aKUE8SHL``a-)ERll|I
z0>!!_BuSnu`>y#!{Wcsd=t?CPdDa1%Xj5nDl`O`_@@WNza9ia8K6ogDmP0jKYK0RB
z#J#x*t_PIZYOH#HA6QTiSd
zyKx#FuIB9cC>~rNQQmtKw4y_|Jd2kPtI`xv^bp5O6=%XB&k0mb>g8<3l8i6TX-zL5
z<4LWIr^iQxwMGem75OmX$fk;_n<~Na$6<1yt{eT(=h&u_YG=rfwP?_I-zGsK7b!UP&u`~KFVbA^J3l6xME@Yva
zvDSwvIaG+X$W~2;FkL0VhKsfu5e%iS*NaLW8>5S98vHPa>l+fuy9PbZrS>njC5F+7
zfQ^+exwK-y?ZMJqFe&6n1&EqAsVhz+GoawH=Z-mC@FrQK4GFxOs>0K>VCV
z5%p^n0pC!JP8G$xZV*<%faSdyp3k~bt@U0$KZ-$E@i%R2UAuJ(2SVchbGR+mBHI^j
z+a*+|mP*q(d;PkW)pmUJJm}jARZ9K3=2IJvdnpSd0iA)m1Z%JQ3umkFN8MfWRz9C25lgGky@(NIh*d)%bDKoUE&g0W4pw)~xP1m~c}H}5}pOF^|B@=622XX%Ai3g_J=F+LQ>I;Ku6mnuJ5SmD|>nDxJl0T=Cj
zD=3YhpDbha5k0uMnEA}c`IsladJQ5T&2^Ak&hW9joCCaBgkeX2n<<5T#x+T$yv_n+
zUGs`Kc{8|#TsXf}6`EgX%3_(%mZzQ)UMB^;6R6$%(!o5LnqN~^{ClD+U=bF;XDZLI
zw?5Y5Fb(+7?0z<6A*u%U`{6-wFQ7$8k^1#8Y3PMnO(*~Gu$+ejd
z6C{|evoXr9wDx#XCYVSMdf;@{=s6n<)*^GVt;VLCep`sMBU>At`XxMQpf?fo&5)Hw
zo3{29feSls&sVjtze9uVX1YMk(sZheTYJ>y7Zky*eQf~j&8-S$sojqn_m*;A8@l5$!$1vWc?5d^!;;897
zo$jh5(A?`Zl!XQB`V5y5;T$QEb$THu4V(8@;?dUzllpIfXC1zAlF`}G0J#q#wT|dTi5c8+kA@qdmVl=v2Q7P(a*XrDhCY@%jk!ICJ6cqVZCg_*&h02
z%8ErHVd!w#H9_RoR&Q1-J=@5MA5zn@oG&FlN@%tizxVuNO%}9`VyS{2(LiP3_My#Z
zEg9;4i&`fqkvL(NxO%OLO2$LnVHO--`B6ibIjnkgJSD`)RU)diVkqCXkgTP~vQ$p^XB}OpCn)?O|NgsDI{kdb)%Dgj`f0Sl|q1Tu-?KmUtAL2LI2l4^@0Wj@j+s0ul$FUb7iHz}b4|m>#BAyWr3_
zXjhw_^&MuY;1HKjXa(HncAj>&u<-8SR_B`SKDuBdJymnE>DDX<^9fQgBDZwQU(3pR
zZ&bu1DfbbYyU-kEMqq+u71R^zgf?KTCJJ8>*2cAmNau>(kiDT=`eeB?+REa4X5#M+
zWQw@FNlA(Qx&ns
zk%8P+D@ge=?CPY$)$1#_8Li7Yu~4sw(z(tAHCsQo0@Xh0YETI^lF^gvDn6hazu9NV
zaFWR8xdS8!Zf80@EKbq~Ri9w{fPT>@J&~9sv^9du*5=~mx#cW88xRhboJM_Cv$)y>
zRa9u0^f`_XkDEMCNWrKJv{nMVHr)G(c9IH`{*uQL7c_)jx%W=Wna&HLUtU+8CnGnF
zy{2{`${GRMNiM^Z%*kQA-`d@!klI7kBXhlo3K>}I<)1#^`xab6WT3s7kE@Jpzc5@Q
zTBaEOsD*{O9@A0H1{8qFqG|g%UJS}hl_&5?
z`&-r}^B;Og~-0&&4Ic
z&ia&H{lsash~eUzKca~!cmvl_=(a`8wmRwF%Nu_zG}HWKYmKvk?%W@GurTzF%dHKW
zl9tjaW$H4?q^ok{_+s35?+jRwK>@6@CTLvIZ(E3zkX1`rpaa6DR<;wvCBiNvNth1g
z!f4`|JBE_u5hgWV2|p{XV`)qM;kOom8uUG{b$=VRC)j<_spVA$Oc`!E$y}C5cg-uT
za#!c?*FKlGuR5*K0u~b`VP?LCjCgx**G%5Z0sZ0qOjP&FNG!<%kZJHxnKk#H!_ci_
z?jHrWcHTa}wdA|c=Iih=;GbjQ4@webrD+k`y+8-wn5INp&-V$y>_>H-h`5Pb?4F>RKYrw_MPr?V?dK)9dH?paAi#BzCx4fP>kisHHNuHjNs_HoyxOgRC~dz=riR;
zWSUEbM)c^4=Gc|Wk(nauI;LTa7zd39DC)iu45W!Gp8sa_QfHin6=v&KJfJ%W
zIxco?8-y^b_?Ut}WvWPvI7KZvQA4vz#f4Q`F_%ak%0i9$8QCNpNx4;kZ?_*X9gK
zC`W8eu)6brg9h{2X(#yAfXQ&WtrthSiv_SG_tdif8E%oL1L*zRhmS$#crhgPTIsWh+rr^306Or7FG_q)mRGSDA!<6f>NSiqvn)*G!r#l
z_L1o6b`UltCEo8anZPzkr$;vzpjr*Pj6B_E=<7jHdvDS?FWJ?O*T3eu#yYafSuObx
z=;~clqJ)nRGeiK@be*ezK8I_i!Us~f>SMOlJM(gfk4LW^6Do<&(z}+jcbp5
z*MMpK@uLWtu$b{k7mohq`DwWeUa@hrgo3}BchWJBi)(5K4$1w?S1CR)Gfw=^n+4gj
zN*BrYR4;rv_;;Td^SpvB4)FD3TOldOKPllAJDln`gOIicfk!%sL~akZOVjm+bQJps
z7GSKEpS9}ZKW^BuD<-@H(o0;4kIp`8rTT(V9OYYzD(q~Jb{_LJcCFg++kxk}cw}IT
z4>KzIqk2*;F05q~;_d9ksDll~hyy8B`)vUEUoKftgt5Bijo_=t>rIr=1VsnLPi?v#
zfU2>$_l+yK+D^GE*H>}_k&QuhY9OnP__T&9C@^+t3`Abi?xFxQDiO$@&;{E&fb<9+
z=uR-2arRo$7#g@BA=90LPT9q%Cxv7kJsF&^ns=me+
z((rjn4U-t9wN;|Cw2L@)+Kjdw+v@v?`eKp9a(+ejiT2W5l{j`ruh-cDr5{y*}8cUA~n)wf<~J
z_vx{|C@i;}6{XsR9jW_!CbJZ&aNAuWKh+`2`ERR<-v$zon=r$rc~{hysAHE)NA2K<
zN+014ln6Z`QsKEwuWTxCAws_*j38?6AOarj`Jvt$G3yio;tomlo>g-b^6UhRp5!(6
z&UYr1{tr-LMm1mB;dF?P*(#({H|e2hOd$#66p)HHej~Ow(^%nQ^!B+W-z>bC7zWj%H1OQ#-a-nouA$ak}3MCGhw6+Wqpp3D6G^=sGK8<*|~75ATC3ros{?)k1e
z8iKUR>;R1Yx+5a@m`V_wlF1EiP9U!$Q+%ip_bX(Xk!p{E3IVP3CS0SF_AdNG69x~o
zs(3sF^L$f!4})5Ird0Trb9P-X=K8C{Ecuu+9qWn2m%vPx9cMPo5^ZkEcC-BHP>V?x
zlmAr&fi8b-4I6{@!ju{BeOleH=0a6XKvZ)OxtWc@9n&<+!#B;O$hJaui3!(sqKcaL
zX8_{|<*{eV?*gEC84DEO)ARYjiMF(aWl;~#+)V@U6`z%C$h1K;(yD}4ZGG0}QEH9>
z3(ogTw{&hhcYErw#%+4p#U<-P+%B8Ex(|o8jd)36IBJiuk2gpsc(X*uIsQ-=4aMjy
zb6423r|TA2B`R|7TiNY2C%fWA(o=Tw4S!gPa5B~OrNmJLdzYXMZ#yEUoSqW9;-rvH
zHeZ`%mp22wgz4bi3|%sYE$Vh>r#I(H{F8Iq>#T^(FGHo$JECWtsd%U5+pBksFljH*
zsBP&5U!k6Tw1uaH>BvKs+zR4N#DF&%2xh}{S57@ja0l&wB`}dcdcmu&LD4-G8hla#
z8|3Lf6K1JOY&%6rh+>@-5ydC}*RN-!@^Cc{JioS~@`tXiLp9yIu_J!xys34aRh
z8;L^7%NCmF^Hl=O?bA4f{VX7SY}E4??YFnMv;jkNSj>cj*Qy7Xv+)fw1QSds_}^>|ONohU-&<4_sbeMY&-X6-
zsxm(5+m1DL?-74|qCo*}*vSS4>IiTBk?2c+b=Rmh;q2u{ouLK_{h>4nX-x|;`fPdm
zUh8X6svve{9+SlO<3}skUQ*rT0cb7U%5XJ$HKovb`SwHP$3Bq3mMym
zZOIE((4OLXJAF8i*<3n1?AkEX0S_x1Uqh~yDJk&e+QZm*-R^3OAX5Lh+ii6F+xoCA
z5mYrfU=xXZ$+zjz2ud+R(-VzNYR#mNyRfRiAit)AEG;t$K()8ONC2;!^RWcO+fN1J
z3>nrCQm!$>Bd#gbMPDFLJqwF`>ma4Y*EgnyNw|9DPPJg1F1svov(%=Sm?O`@~@J)eq
z!#VTi@b0Y`FC0NrF;$Pzh!WDpZR5(ao0aj
zT#4ggMvmk%Jw%llCXZom?*OURcR)JG*g9~HbXv6Q9je6)$2yt!JjbQ*_bAO4Fu9vr
zIOv?!e9lpN$>CE`Yn^@y9+sxwpZ#PX3WZ%sIWHiGYpjk*C~|(1=dJy2JDe%$CdU0f
z0oZjsIdxp5+)_^FM7ntV!-4^cUMQq2@L@$|(l_!b%zaoYq~u+-V~=pFzXVDeXFft;
z=8#>4c`^1p(rSXMgfkCrB_aJ3m^l1H05yM#yFu$U%y$g3e{5S_lE@d-ID)$KNC8l3
zF&jw&MSbkrwOyxjs5&KDBP5;eG
zl^1GbO|JL7SHND(ZgHU@r1)x88Tx3o=))GWLkCe4)m-t``_ISmeoEn_Z1?lz+|wt%fK(abM%FddVt{KOk5r`O`V@R^R5{Qr
z)g&2PpCr7-9mcj@+lUqI&pwH#47{RMZmh;Y
z{AG2;kfo>|Bn7Te1{;+VUrq3&f8c~U2>ip9G$P-Mo
z5ft;1w{4u)w#d>4q?PZYU>zc+e@2Dhtb*pdxtU-zRc;SHv>PtfTRSsIEQnA^?O+#F
zPR+GreC5Z(kT4$0Y?VUXWz_r0inMBfllK^s6e3%VtCOPDqoA7CedF3pEVM)h+2CN<
zihR_GD`U^Jde(BQX|MAhbAGk|B<M%JELxUMQdIR
zMRM2?614VJhy%~dCY99jsj>l@H^e7Ad074Q7PfA3({!*Gy#{T^{XZ?I!mJu0$sArz
zRQJJwMHPdPKcA()MK=68)hHMl+*aopmJnU{BDF63Yd(
zpW`}Z$m;`lcEXM5R;KvVDCZiy456)430^61kO=6;^H>^y-hqUu9?*>d<{RPVwB37c
zr8XAlWT%R|F0V9C5W3T5m&TQ>93f^GLRh6UL6%+|P=41>daN8!6H0DWX^Lgb(asSZ
z0M(oH%#k?o@t$kr1qpLGi|`_y@X}|%E7(7vMq6Rpj1M|dxuVX~>K27`ZD*uAgXGik
zsM_RA;XMYGhg7bVz0IWm-k?#*vuJ4(Jhb$Uc^LA@XT?=M6E_|X4-(0|l48oWeQ^v6
zwwiA{d$MiPcrABCm|uHd%6=hmI?iB5_U3IhW^Xlr#;!?HwQ2sPr@o`qVyewGGPoV{
zXcLJk#c~aSvPz}0x?ingCSgJ0()T3L{EK-07J}8v<{E-4pgLst1dQLzN;q<3GzQ-S
z5;4}o74YwY7iFqm+uaEEt!Z*Z9Wpf$yFUzI7FvS0nFNpgT&wJ)ye&X!Bs3F{jNuOM
z)XR>}bU|XUu)1rXmxF|o6SJ8HuNdCiC!dG#AHF!Uo-fDoc}K{I*2G#Wb6dx`8`ah1
zu&v3L#zMM+i7b6tnp1?=NVI#%XfFTvfQZlS>J8$%AJ=PUdz4p6@tnIiUzZh9pPRg=`JlN0sltwR6uvzCr~12bQKY7>lP~*^0k~8Tj4u2i5vGyoO5{
zeRAjyGu;@uOk#Dbx0Z_im@t~Q4vwDwpiB38a2@QS?cXAf4D~W8_-TaryTb~O^Y139
zKg?3^yZ-HbfT_sxUk8%^+cU>Htog|kb$1=9sqjXyE(V-omxY!qx{0#PMU{UK)31Yb
za~gx@xXUPBABB>o4@z64aE0XC7uE{IWZ03E*hB?!JUrnlws!^=jhX|YPY%R4KP4I7
z7>s*R>fh`0MjU;n@LrW0;9epXKqE7phlWG}b|b&n;jv6>0c?z}d|49@N+dfIHEU}<
zXiWp(7Rppu{4)D&ISgzG1}Z=lM%{Yqh_6J>%VO!Yq|@k#kx$ACwDN(Pzu6Qh>Rl}?
zT*;UsBf|qy8iF^8p=D|c;jXZJZKlsuwnq?o;u5r
zH^?z~`&GC~u7*>@*w5U#0*x$DvwbX{ySnaWH-6uCHPl(x0LRj>oT7l{uktm+T4U>N
z%#HaT_LSc6zA>0=n5>+d21KcBO-%l+-}`k?@Y4{nOn{<0XY`oC61Fzl6BlprPmA?r
zy^~E&JLXtvkY-rNJ#Ko)A#Nn{;3O^4)|87x=^jdSV|FC?{h`@U_l1|0rlMG~I99@Y
z`tN5yLCTKVu-(BBfW}6T$?g$$9B_3vi&fx4EhpE`sQCgP6Y)#JY
zlKsP{0Sy4$37EnI?ndMcw=4}Ckr`sAIXmorFC{y31H5zXOFV62qh(GvXbvI7W$hLo
z^G5wQsun_GouL-Yz+!*eDv
zzVgDm@XJpX;KdOngK^|S4>D*|{_dm=JS>q4(VRjjnSx92^?h=+^1b566gr`bpFcka
z?ay;y^*^K;%t5dPtun-1ZD(;VG{n3&m#oVk7kR7)89!W>Qn8ItFFgrh
zB{SN#=OtwY3B|mU;JJ7*6oJAL7^5~2X0MN;_^RlgA#qZ**L$k_*N^Ym0aW@I*>h
zRgF|Wy1a0o&@nycpEnT|k?YUt)A*mknua1
z-30Z!tyx{HUup9Y8oq|$f1&kLVPO!2QT8Du1oQmB=suM~GnjJe%7#PcKGl%qRwa(`
zCYiuZM~f}V*1D|@$^lDgnC&eB@OR(3Y`vyiwbRC^eYhpy*99@=`OT2;Znltbb+L24
z*Ff9y!S4BlV#5L3BX9N6