From 179c6d95e48fb53e688358fa9b34c344596f12ce Mon Sep 17 00:00:00 2001 From: --git_token Date: Wed, 27 May 2026 08:10:02 +0800 Subject: [PATCH] auto backup 2026-05-27 08:10:02 --- .vala_skill_hashes | 2 +- data/last_wechat_sync_id | 2 +- memory/.dreams/events.jsonl | 2 + memory/.dreams/short-term-recall.json | 50 +++++++------ memory/2026-05-26.md | 40 ++++++++++ .../ai_descriptions_feishu_2026-05-25.json | 9 +++ .../ai_descriptions_wechat_2026-05-25.json | 69 ++++++++++++++++++ .../cluster_context_2026-05-25.json | 36 +++++++++ .../飞书反馈_2026-05-26.xlsx | Bin 0 -> 8140 bytes scripts/ai_summarize_feedback.py | 4 + scripts/sync_wechat_feedback.py | 4 +- .../sync_feishu_feedback.cpython-312.pyc | Bin 81024 -> 81495 bytes .../scripts/sync_feishu_feedback.py | 12 ++- 13 files changed, 201 insertions(+), 29 deletions(-) create mode 100644 memory/2026-05-26.md create mode 100644 output/daily_feedback/ai_descriptions_feishu_2026-05-25.json create mode 100644 output/daily_feedback/ai_descriptions_wechat_2026-05-25.json create mode 100644 output/daily_feedback/cluster_context_2026-05-25.json create mode 100644 output/daily_feedback/飞书反馈_2026-05-26.xlsx diff --git a/.vala_skill_hashes b/.vala_skill_hashes index 5432899..cdf422c 100644 --- a/.vala_skill_hashes +++ b/.vala_skill_hashes @@ -14,4 +14,4 @@ user-feedback-collector c0320451bf7ea0ce3d8ceaa603ae0a7b55c373c048363a5142258a4c user-feedback-data-source a95eb9142f3019fd193c46f89147dc7e0bf01dfe250202565a86f8bc52f37b13 user-feedback-processor 61783a8e9f03a973c187b359a87749ad1993dc71f8364b0a853d8b3ff64c75e8 feishu-group-msg-sync 1b581de76d419e6a33db0836125efc16ef2c972013fcae6f08c03aa7e2276445 -feishu-feedback-sync f00631ca2f9ed68c139b6dd0b08992bc937576db27c001aac72a3edb3a2e108e +feishu-feedback-sync 9c9ca1f0c42a289e037289cd394299b7debf7e240d3b30429899da42b601d953 diff --git a/data/last_wechat_sync_id b/data/last_wechat_sync_id index 27c71ca..f4236d2 100644 --- a/data/last_wechat_sync_id +++ b/data/last_wechat_sync_id @@ -1 +1 @@ -1647 +1674 diff --git a/memory/.dreams/events.jsonl b/memory/.dreams/events.jsonl index d38f305..38e49ae 100644 --- a/memory/.dreams/events.jsonl +++ b/memory/.dreams/events.jsonl @@ -19,3 +19,5 @@ {"type":"memory.recall.recorded","timestamp":"2026-05-25T02:22:57.258Z","query":"小葵小葵群 问题反馈 发送消息 定时任务 5月23日","resultCount":1,"results":[{"path":"memory/2026-04-18.md","startLine":1,"endLine":5,"score":1}]} {"type":"memory.recall.recorded","timestamp":"2026-05-25T02:22:57.259Z","query":"crontab 定时 上午10点 反馈 群发","resultCount":5,"results":[{"path":"memory/2026-05-21.md","startLine":58,"endLine":77,"score":1},{"path":"memory/2026-05-09.md","startLine":17,"endLine":37,"score":1},{"path":"memory/2026-05-21.md","startLine":35,"endLine":64,"score":1},{"path":"memory/2026-05-21.md","startLine":1,"endLine":26,"score":1},{"path":"memory/2026-05-21.md","startLine":22,"endLine":42,"score":1}]} {"type":"memory.recall.recorded","timestamp":"2026-05-25T07:11:25.527Z","query":"微信反馈 全链路 cron 采集 整理 归纳 分发","resultCount":3,"results":[{"path":"memory/2026-05-25.md","startLine":21,"endLine":42,"score":1},{"path":"memory/2026-05-25.md","startLine":38,"endLine":44,"score":1},{"path":"memory/2026-05-22.md","startLine":129,"endLine":158,"score":1}]} +{"type":"memory.recall.recorded","timestamp":"2026-05-26T03:40:13.634Z","query":"微信飞书问题汇总 小葵小葵群 发送汇总","resultCount":3,"results":[{"path":"memory/2026-05-25.md","startLine":21,"endLine":42,"score":1},{"path":"memory/2026-05-25.md","startLine":38,"endLine":44,"score":1},{"path":"memory/2026-05-22.md","startLine":129,"endLine":158,"score":1}]} +{"type":"memory.recall.recorded","timestamp":"2026-05-26T03:40:24.708Z","query":"小葵小葵群 chat_id 分发消息群","resultCount":1,"results":[{"path":"memory/2026-04-18.md","startLine":1,"endLine":5,"score":1}]} diff --git a/memory/.dreams/short-term-recall.json b/memory/.dreams/short-term-recall.json index 9ce57c3..94a4cb6 100644 --- a/memory/.dreams/short-term-recall.json +++ b/memory/.dreams/short-term-recall.json @@ -1,6 +1,6 @@ { "version": 1, - "updatedAt": "2026-05-25T07:11:25.527Z", + "updatedAt": "2026-05-26T03:40:24.708Z", "entries": { "memory:memory/2026-04-18.md:1:5": { "key": "memory:memory/2026-04-18.md:1:5", @@ -9,26 +9,28 @@ "endLine": 5, "source": "memory", "snippet": "# 2026-04-18 工作日志 ## 术语共识 [李若松确认] 术语「飞书反馈消息数据库」默认指代用户反馈收集技能中的飞书内部测试反馈MySQL数据表 `vala_test.lark_group_message`,存储「内容测试问题反馈」群(oc_fabff7672e62a9ced7b326ee4a286c26)的同步消息数据。", - "recallCount": 6, + "recallCount": 7, "dailyCount": 0, "groundedCount": 0, - "totalScore": 6, + "totalScore": 7, "maxScore": 1, "firstRecalledAt": "2026-04-30T03:47:21.989Z", - "lastRecalledAt": "2026-05-25T02:22:57.258Z", + "lastRecalledAt": "2026-05-26T03:40:24.708Z", "queryHashes": [ "353f9765c086", "a6b740c99377", "9625ed0029fd", "f865295b9ac7", "42fe8210f22c", - "81f7a2647922" + "81f7a2647922", + "261597c52d5b" ], "recallDays": [ "2026-04-30", "2026-05-06", "2026-05-07", - "2026-05-25" + "2026-05-25", + "2026-05-26" ], "conceptTags": [ "vala-test.lark-group-message", @@ -887,18 +889,20 @@ "endLine": 42, "source": "memory", "snippet": "- `update_summary_doc_as_children()` 默认 title_prefix 从 `\"\"` 改为 `\"飞书-\"` - `create_child_doc()` 日期提取兼容 `飞书-` / `微信-` 前缀 - `dispatch_summary_to_chat()` 消息标题和链接同步更新 - `get_today_doc_obj_token()`、`--apply-ai` 路径、步骤7分发 的标题格式全部更新 ### 补跑历史数据 - 飞书 5/22(3条)、5/23(1条)AI归纳回写成功 + 自动分发到群聊 - 飞书 5/24:当天无飞书群新数据,跳过 - 微信 5/22(23条)、5/23(13条)、5/24(29条)AI归纳回写成功 + 自动分发 ### 知识库文档重命名 - 13个飞书历史文档(5/6-5/23)从 `{date} 问题反馈` 重命名为 `飞书-{date} 用户反馈问题归纳` ## 新增逻辑:飞书/微信文档标题渠道区分 - [刘新玉需求] 飞书文档标题加 `飞书-` 前缀以便与微信区分 - 飞书格式:`飞书-{date} 用户反馈问题归纳` - 微信格式:保持 `微信-{date} 问题反馈`(由 `sync_wechat_feedback.py` 传入 `title_prefix=\"微信-\"`) - `update_summary_doc_as_children()` 默认 `title_prefix=\"飞书-\"`,微信调用时显式覆盖为 `\"微信-\"` - `create_child_doc()` 日期提取已兼", - "recallCount": 1, + "recallCount": 2, "dailyCount": 0, "groundedCount": 0, - "totalScore": 1, + "totalScore": 2, "maxScore": 1, "firstRecalledAt": "2026-05-25T07:11:25.527Z", - "lastRecalledAt": "2026-05-25T07:11:25.527Z", + "lastRecalledAt": "2026-05-26T03:40:13.634Z", "queryHashes": [ - "1e9d4a024a31" + "1e9d4a024a31", + "442660038a9b" ], "recallDays": [ - "2026-05-25" + "2026-05-25", + "2026-05-26" ], "conceptTags": [ "update-summary-doc-as-children", @@ -918,18 +922,20 @@ "endLine": 44, "source": "memory", "snippet": "- `update_summary_doc_as_children()` 默认 `title_prefix=\"飞书-\"`,微信调用时显式覆盖为 `\"微信-\"` - `create_child_doc()` 日期提取已兼容两种前缀(strip `飞书-` 或 `微信-` 再解析) ## 注意事项 - 今天(5/25)的反馈数据将在明天 10:00 正常走全流程 - `ai_summarize_feedback.py` 中 `apply_descriptions` 修复后需注意:微信渠道需要 `--date` 参数,飞书渠道 `--date` 可选", - "recallCount": 1, + "recallCount": 2, "dailyCount": 0, "groundedCount": 0, - "totalScore": 1, + "totalScore": 2, "maxScore": 1, "firstRecalledAt": "2026-05-25T07:11:25.527Z", - "lastRecalledAt": "2026-05-25T07:11:25.527Z", + "lastRecalledAt": "2026-05-26T03:40:13.634Z", "queryHashes": [ - "1e9d4a024a31" + "1e9d4a024a31", + "442660038a9b" ], "recallDays": [ - "2026-05-25" + "2026-05-25", + "2026-05-26" ], "conceptTags": [ "update-summary-doc-as-children", @@ -949,18 +955,20 @@ "endLine": 158, "source": "memory", "snippet": "- 步骤2:姓氏 + 1个中文字符模式匹配,排除内容词白名单(文件/资源/游戏/动画/设计等50+词) - 替换为\"相关人员\" ### 修复效果(簇 #7) | 修复前 | 修复后 | |--------|--------| | \"角色江涛的spine动画中,眼睛设计应为睁开但实际显示为闭眼。\" | \"Spine动画中角色眼睛呈现闭眼状态,与设计不符。\" | ## 刘新玉 - 反馈流程完整概览(5/22 12:00) ### 全链路三层架构 ``` 采集层 → 每5分钟(飞书群同步) / 每分钟(微信群导出+P0检测) 汇总层 → 每天 10:00(飞书) 10:02(微信) 聚类+归纳+写入知识库 AI层 → 每天 10:05(飞书) 10:07(微信) DeepSeek生成描述+回写+分发群聊 ``` ### 时间线 | 时间 | 飞书 | 微信 | |------|------|------| | 10:00 | sync_feishu_feedback (占位符,不分发) | — | | 10:02 | — | sync_wechat_feedback (占位符,不分发) | | 10:05 | ai_summarize_feedback (回写+分发) | — | | 10:07 | — | ai_summarize_feedback --channel wechat (回写+分发) | ## 刘新玉 - 微信反馈同步系统搭建(5/22 下午) ### 背景 刘新玉要求微信用户反馈流程与飞书一致(收集→整理→归纳→分发),之前微信只有 M", - "recallCount": 1, + "recallCount": 2, "dailyCount": 0, "groundedCount": 0, - "totalScore": 1, + "totalScore": 2, "maxScore": 1, "firstRecalledAt": "2026-05-25T07:11:25.527Z", - "lastRecalledAt": "2026-05-25T07:11:25.527Z", + "lastRecalledAt": "2026-05-26T03:40:13.634Z", "queryHashes": [ - "1e9d4a024a31" + "1e9d4a024a31", + "442660038a9b" ], "recallDays": [ - "2026-05-25" + "2026-05-25", + "2026-05-26" ], "conceptTags": [ "文件/资源/游戏/动画/设计等50", diff --git a/memory/2026-05-26.md b/memory/2026-05-26.md new file mode 100644 index 0000000..4d9c892 --- /dev/null +++ b/memory/2026-05-26.md @@ -0,0 +1,40 @@ +# 2026-05-26 工作日志 + +## 刘新玉 - 微信/飞书问题汇总分发排查与修复 + +### 问题 +刘新玉询问是否向"小葵小葵"群发送了昨天(5/25)的问题汇总。 + +### 排查结果 +- **飞书 5/25**:「内容测试问题反馈」群昨天无新消息,飞书 crontab 10:00 输出 `✅ 无新数据,无需同步`,无需分发 +- **微信 5/25**:数据库有 17 条消息,但大部分是单条消息,仅 1 个有效簇(≥2条),AI 归纳为"无明确问题",属于无效反馈 + +### 修复的 Bug(均在本次会话中修复) + +**Bug 1:`sync_wechat_feedback.py` 文档标题不匹配** +- 文件:`scripts/sync_wechat_feedback.py` +- 问题:`--apply-ai` 路径搜索子文档时标题为 `微信-{date} 问题反馈`,但实际创建的是 `微信-{date} 用户反馈问题归纳`,导致创建后找不到文档 +- 修复:两处标题改为 `微信-{date} 用户反馈问题归纳`(apply-ai 路径 + 步骤7分发路径) + +**Bug 2:`dispatch_summary_to_chat` 标题前缀** +- 文件:`skills/feishu-feedback-sync/scripts/sync_feishu_feedback.py` +- 问题:title 硬编码 `飞书-{day_label}`,微信调用时 day_label 已含 `微信-` 前缀,导致出现 `飞书-微信-{date}` 双重前缀 +- 修复:检测 day_label 是否已含前缀,已含则复用,否则加 `飞书-` + +**Bug 3:姓名脱敏正则误伤** +- 文件:`scripts/ai_summarize_feedback.py` +- 问题:`strip_names()` 中 `[姓][一-鿿]` 匹配过于宽泛,致 `程序`→`相关人员`、`常完`→`相关人员`,破坏正常描述 +- 修复:content_words 排除词扩充(程序、方式、正常、完成、加载、原生等) + +**Bug 4:过滤后空消息仍发送** +- 文件:`skills/feishu-feedback-sync/scripts/sync_feishu_feedback.py` +- 问题:`dispatch_summary_to_chat` 过滤 `- 无明确问题` 后,若只剩标题无实质条目,仍会发送空消息 +- 修复:增加 `has_items` 检查,无 `- ` 开头的内容行则不发送 + +### 操作记录 +- 手动补跑微信 5/25 apply-ai 回写知识库 +- 撤回小葵小葵群中两条无效消息(`om_x100b6e653633aca4b268daf5d0579e7`、`om_x100b6e65e7cb90b8b3d97c2a9fc5f07`) + +### 刘新玉指令(12:03) +- 确认记住今天的变动 +- 明确规则:微信反馈中"无明确问题"的簇不分发到小葵小葵群 diff --git a/output/daily_feedback/ai_descriptions_feishu_2026-05-25.json b/output/daily_feedback/ai_descriptions_feishu_2026-05-25.json new file mode 100644 index 0000000..b85868a --- /dev/null +++ b/output/daily_feedback/ai_descriptions_feishu_2026-05-25.json @@ -0,0 +1,9 @@ +{ + "date": "2026-05-25", + "descriptions": [ + { + "index": 1, + "description": "无明确问题" + } + ] +} \ No newline at end of file diff --git a/output/daily_feedback/ai_descriptions_wechat_2026-05-25.json b/output/daily_feedback/ai_descriptions_wechat_2026-05-25.json new file mode 100644 index 0000000..c29768a --- /dev/null +++ b/output/daily_feedback/ai_descriptions_wechat_2026-05-25.json @@ -0,0 +1,69 @@ +{ + "date": "2026-05-25", + "descriptions": [ + { + "index": 1, + "description": "APP端磨耳朵功能存在较多适配问题。" + }, + { + "index": 2, + "description": "无明确问题" + }, + { + "index": 3, + "description": "在L2S2U14第五节课知识巩固环节,从第一题开始持续播放警报声。" + }, + { + "index": 4, + "description": "用户反馈进入关卡时出现闪退。" + }, + { + "index": 5, + "description": "无明确问题" + }, + { + "index": 6, + "description": "无明确问题" + }, + { + "index": 7, + "description": "无明确问题" + }, + { + "index": 8, + "description": "学而思平板在第四单元第四节中,孩子回答正确后系统仍持续提示重新做,无法正常完成。" + }, + { + "index": 9, + "description": "无明确问题" + }, + { + "index": 10, + "description": "无明确问题" + }, + { + "index": 11, + "description": "小程序熏听播放时声音断断续续" + }, + { + "index": 12, + "description": "无明确问题" + }, + { + "index": 13, + "description": "H5端无法调用小程序原生音频API和后台托管能力" + }, + { + "index": 14, + "description": "无明确问题" + }, + { + "index": 15, + "description": "采用webview加载方式导致内存消耗大" + }, + { + "index": 16, + "description": "无明确问题" + } + ] +} \ No newline at end of file diff --git a/output/daily_feedback/cluster_context_2026-05-25.json b/output/daily_feedback/cluster_context_2026-05-25.json new file mode 100644 index 0000000..1fe0486 --- /dev/null +++ b/output/daily_feedback/cluster_context_2026-05-25.json @@ -0,0 +1,36 @@ +{ + "date": "2026-05-25", + "total_clusters": 1, + "clusters": [ + { + "index": 1, + "cluster_id": "7499191672818531430", + "location": { + "端": "未知", + "环节": "未知", + "课程": "", + "角色/组件": "" + }, + "priority": "P2", + "priority_detail": "", + "category": "其他问题", + "conclusion": "**当前问题排查结论:** 暂无结论排查中", + "messages": [ + { + "sender": "一_FVision", + "content": "[表情]", + "msg_type": "sticker", + "media_url": "", + "time": "2026-05-25 19:40:10" + }, + { + "sender": "瓦拉英语-露露班班(早10晚7)", + "content": "[表情]", + "msg_type": "sticker", + "media_url": "", + "time": "2026-05-25 19:40:24" + } + ] + } + ] +} \ No newline at end of file diff --git a/output/daily_feedback/飞书反馈_2026-05-26.xlsx b/output/daily_feedback/飞书反馈_2026-05-26.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..02193f92f812e6da35590984c547399a06d7e855 GIT binary patch literal 8140 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 PPlxDJiuWY{{q+9;J8YwZ literal 0 HcmV?d00001 diff --git a/scripts/ai_summarize_feedback.py b/scripts/ai_summarize_feedback.py index 2e0b647..3ed5902 100644 --- a/scripts/ai_summarize_feedback.py +++ b/scripts/ai_summarize_feedback.py @@ -175,6 +175,10 @@ def strip_names(text, cluster=None): '注册','打开','关闭','更新','调试','运行','启动','停止', '通过','失败','成功','完成','开始','结束','使用','操作', '调整','优化','修改','增加','删除','添加','移除','切换', + '程序','方式','相关','进入','平板','第四','单元','原生', + '声音','断断','续续','后台','托管','无法','熏听','加载', + '消耗','容器','时候','较多','知识','巩固','环节','第一', + '播放','警报','正确','系统','操作','权限','人员','内核', } def _replace(m): name = m.group(0) diff --git a/scripts/sync_wechat_feedback.py b/scripts/sync_wechat_feedback.py index aa989d6..2e14c12 100755 --- a/scripts/sync_wechat_feedback.py +++ b/scripts/sync_wechat_feedback.py @@ -187,7 +187,7 @@ def main(): print(f" 🔄 微信 #{old_idx}→#{new_idx}: {placeholder} → {desc[:50]}...") # 回写知识库子文档 - title = f"微信-{date_str} 问题反馈" + title = f"微信-{date_str} 用户反馈问题归纳" nodes = fsf.list_child_nodes() node_info = nodes.get(title, {}) obj_token = node_info.get("obj_token") @@ -287,7 +287,7 @@ def main(): if do_summary and not args.skip_dispatch and not args.ai_placeholders: print(f"\n📨 微信步骤7:问题分发...") child_nodes = fsf.list_child_nodes() - child_title = f"微信-{date_str} 问题反馈" + child_title = f"微信-{date_str} 用户反馈问题归纳" child_info = child_nodes.get(child_title, {}) child_nt = child_info.get("node_token", fsf.SUMMARY_PARENT_NODE) child_url = f"https://makee-interactive.feishu.cn/wiki/{child_nt}" diff --git a/skills/feishu-feedback-sync/scripts/__pycache__/sync_feishu_feedback.cpython-312.pyc b/skills/feishu-feedback-sync/scripts/__pycache__/sync_feishu_feedback.cpython-312.pyc index 9cd3ca6cceb9dce81b31fd9463fbd7ae95df6924..d15c4de16505720721ab73a4de5e618c06a219e1 100644 GIT binary patch delta 2010 zcmZuy3v5$W7(V}PSJvm+^|7{lv;)Q%Yc~cMgy0Bapt2!i2*@j4>8Wc+x0Tznm*)ae z5P7UN0!-@oTO|Mx%6 z|KGdmsq)I-O2c`*UW3@W@3huVbaflrZo-p9$Iayc)$)^D%OI3kc>7DGYPEonxKdW% z%K?94!o6t#b%~X~?9NctaUdi=ecBCc0d ze)PWi1r1S)0@1{Dam5hEP|ZOY(gC#ySWDE6NYWBPoJO?b6s)U2tGx(GI--{6c&ze* zsK%@(daPetflv(EoJ5TcL{B#gFae0X_I+&ibK4FEs}|t=y?HhttM_73Jp@^VWX)woWmJ$?x-RwNEXiPRMd=$H_nSVxN4p9*)`@xE|Niv z*xf0F0SkxnpH)<@P0)mz70Xc* z6irJm8UqDFQDAu521$9oQ`zsg6--njK$OkM>T#?c*(~i@VwHcss0IaHHx?`#Q(krf z1wd^DO4I_MD;TrTDtO(m6ba%>j9T2th@{(CK!TMlxR4o4}jg5Iev+~?Ue{4b*&6Qu^ z?G<#vjshkN90Zu&?K z9%!d|8d$06==Z2M&5x3m)A=PH>D1AJ7L{h=Q9|>tNBV z;x@+GmmZ6Y;b=67e>bo*cTVpdIFaxL8tUW0`gor@f3|MorJJ$H`ER>vrykszBg{oBFWM#gjUGPDyKOYH;vA1$ zHdkIUR&ILvs@Ad3aXnq%V_14QeHm>s!0UyX$T{wc!`tid_LNjycFfx`<=l)-RX-Ta z+pD&h?=9M!-Q$_pqnn@n(Ez1j*{j>V;XwGn%AV&J_vF6TvubT`dL)@=gk_LhK37*& zf-Y$DxhzpH%urmIZdj;Me5*-Yn33FRf~rhNB!3zQ^q<_Y2_FfyWLk`w59JBNUVXt4_=AX)IW*{rj*WRyQOTK+igq9 zT#7M)P)iJ6;#6C-iIK##Qp*NbG{i^zCH+x@#&n}57KnkwfJT0x#5mLTb{pr%*|YPV z^PO+boijf^wVZxpQEthy6S1}Nn%X@bom0k^U?4NGbP%B3czovoBr?z6y>77`77)^2 zF&y_Ja3oWCe=9&w=Fo$2x2=Z*3FFC=Ip{E^|Go)lGs%B0TA}sYzYu^H;^>#sA}_!f zc1**H2WVKpPU09ux|0anR^rq)W7lrMUp#Eb?KI_{;+N5TY1!vfo40{8p-V zRc^q?dh|b`se)C|x(w2vEf7!xY2R`mn3+JA1l^1Y`EZaE;36C{8%qjscv4JIJqR_s zB19$%j!p_mz`{&yt)GPsge5HZNO~Y0HmTDQ)0-(a)#^d|LI7gHvOW3;i$(cK+$L@Zfy|DpQK^Q2bx1CTyBQDtE9gtYH zNADYNl-&Q|y}LIq*VETrPzR&*iVI$HXjN=Nszq&-+9kLIM-0!M2>n`uomOp-pn62Qm6chPIZRr6-w+=j{DyE!o!>$A9rLym#}h-#*K+0xl?`z80j(2Fs;+m#1#q>=D3`>j!8>O$u=w3IJIC;}fTG`lNrhRVsP+D{q{bZLH zl+EAUx6myfcv{Smmf^U3iYIy3{Li2MA(ftcA;_vM7>|-w+ zfT(Ym)GDA`#ih*73y#)uao(l0#>DxUwY5B(RH4-ev)StvkOKe5{878YOm4&Rc)DY- zL(^tyOBE#6Bb{Bn$83{5?>fQLM_F&Qv)NOP-~`a= zxhANBVLI0YyMo^`Jm>1{O7`IPR4-oO2X^!-3yf!?h!v z?=UxC@V!#*X*9eI&U*~L@isRD++3ueZiAZz3GOdH_Gh`rzmB#