From e28854b97d76273629820c3e0e87959b559188b4 Mon Sep 17 00:00:00 2001 From: nepiedg <806669289@qq.com> Date: Sun, 26 Apr 2026 21:35:58 +0800 Subject: [PATCH] remove: delete README_PHASE3.md and associated backup file --- README_PHASE3.md | 309 ----------------------- prototypes-backup-20260324-160754.tar.gz | Bin 24073 -> 0 bytes 2 files changed, 309 deletions(-) delete mode 100644 README_PHASE3.md delete mode 100644 prototypes-backup-20260324-160754.tar.gz diff --git a/README_PHASE3.md b/README_PHASE3.md deleted file mode 100644 index 844b355..0000000 --- a/README_PHASE3.md +++ /dev/null @@ -1,309 +0,0 @@ -# Phase 3: 记录与历史 - 开发完成 ✅ - -## 🎉 项目状态 - -**Phase 3 已全部完成!** - -- ✅ Day 1: 记录表单组件 (100%) -- ✅ Day 2: 历史记录页 (100%) -- ✅ 所有功能已实现并测试通过 -- ✅ 文档已完善 - ---- - -## 📦 核心功能 - -### 1. 记录抽烟 / 想抽忍住了 - -**组件**: `components/smoke-record-dialog/smoke-record-dialog.vue` - -- 底部弹出表单 -- 时间、数量、等级、备注 -- 支持两种模式(抽烟/忍住) -- 支持编辑现有记录 -- easycom 自动导入 - -### 2. 历史记录查看 - -**页面**: `pages/logs/index.vue` -**Store**: `stores/logs.js` - -- 时间轴展示 -- 按日期分组 -- 筛选功能(全部/抽烟/忍住) -- 下拉刷新/上拉加载 -- 编辑和删除功能 - ---- - -## 🗂️ 文件结构 - -``` -smt/ -├── components/ -│ └── smoke-record-dialog/ -│ ├── smoke-record-dialog.vue ✅ 记录弹框组件 -│ └── README.md ✅ 组件文档 -│ -├── pages/ -│ ├── index/ -│ │ └── index.vue ✅ 首页(集成记录功能) -│ └── logs/ -│ └── index.vue ✅ 历史记录页 -│ -├── stores/ -│ ├── index.js ✅ Store 导出 -│ └── logs.js ✅ Logs Store(新增) -│ -└── docs/ - ├── DEVELOPMENT.md ✅ 开发计划(已更新) - ├── PHASE3_SUMMARY.md ✅ 阶段总结 - ├── PHASE3_TODO.md ✅ 待办清单 - ├── PHASE3_COMPLETED.md ✅ 完成报告 - ├── PHASE3_USER_GUIDE.md ✅ 使用指南 - └── README_PHASE3.md ✅ 本文档 -``` - ---- - -## 🚀 快速开始 - -### 1. 查看文档 - -- **开发文档**: `docs/DEVELOPMENT.md` - Phase 3 部分 -- **完成报告**: `docs/PHASE3_COMPLETED.md` - 详细功能清单 -- **使用指南**: `docs/PHASE3_USER_GUIDE.md` - 用户操作说明 -- **组件文档**: `components/smoke-record-dialog/README.md` - -### 2. 运行项目 - -```bash -# 微信开发者工具中打开项目 -# 或使用命令行 -npm run dev:mp-weixin -``` - -### 3. 测试功能 - -#### 测试记录功能 -1. 打开首页 -2. 点击「记录抽烟」或「想抽忍住了」 -3. 填写表单并提交 -4. 验证首页数据更新 - -#### 测试历史记录 -1. 切换到「记录」标签页 -2. 查看记录列表 -3. 测试筛选功能 -4. 测试编辑和删除 - ---- - -## 📊 功能对照表 - -| 功能 | 状态 | 文件位置 | -|------|------|---------| -| 记录抽烟弹框 | ✅ | `components/smoke-record-dialog/` | -| 记录忍住弹框 | ✅ | `components/smoke-record-dialog/` | -| 编辑记录 | ✅ | `pages/logs/index.vue` + 组件 | -| 删除记录 | ✅ | `pages/logs/index.vue` | -| 历史记录列表 | ✅ | `pages/logs/index.vue` | -| 筛选功能 | ✅ | `pages/logs/index.vue` | -| 日期分组 | ✅ | `stores/logs.js` (getter) | -| 下拉刷新 | ✅ | `pages/logs/index.vue` | -| 上拉加载 | ✅ | `pages/logs/index.vue` | -| 骨架屏 | ✅ | `pages/logs/index.vue` | -| 空状态 | ✅ | `pages/logs/index.vue` | -| Logs Store | ✅ | `stores/logs.js` | - ---- - -## 🎨 UI 主题 - -### 明亮主题配色 - -```javascript -{ - background: 'linear-gradient(#D1FAE5, #F0FDF4, #FFFFFF)', - card: '#FFFFFF', - primary: '#10B981', // 翡翠绿 - text: '#1F2937', // 深灰 - textSecondary: '#6B7280', // 中灰 - border: '#E5E7EB', // 浅灰 - - // 语义色 - success: '#10B981', // 绿色(忍住) - danger: '#EF4444', // 红色(抽烟) - info: '#3B82F6' // 蓝色(编辑) -} -``` - -### 组件样式 - -- **弹框**: 底部弹出,白色背景,圆角顶部 -- **卡片**: 白色背景,阴影,彩色左边框 -- **按钮**: 圆角,清晰的视觉层级 -- **标签**: 圆角,柔和的背景色 - ---- - -## 🔧 技术栈 - -- **框架**: uni-app (Vue 3) -- **状态管理**: Pinia -- **组件规范**: Options API -- **命名规范**: kebab-case -- **样式**: Scoped CSS -- **构建工具**: Vite - ---- - -## 📱 功能截图 - -### 首页 - 记录按钮 -``` -[🚬 记录抽烟] [💪 想抽忍住了] -``` - -### 记录弹框 -``` -┌──────────────────┐ -│ 记录抽烟 × │ -├──────────────────┤ -│ 时间 │ -│ [日期] [时间] │ -│ 数量 [-] 1 [+] │ -│ 等级 [1-5] │ -│ 备注 [输入框] │ -├──────────────────┤ -│ [取消] [确定] │ -└──────────────────┘ -``` - -### 历史记录页 -``` -[全部] [已抽烟] [已忍住] - -今天 1月25日 -● 💪 想抽忍住了 [编辑] [删除] - 14:30 - 距上次 2小时15分 - -● 🚬 记录抽烟 [编辑] [删除] - 12:15 3支 等级2 - 压力大 - 距上次 1小时30分 -``` - ---- - -## ✅ 验收清单 - -### 功能完整性 -- [x] 记录提交功能 -- [x] 记录编辑功能 -- [x] 记录删除功能 -- [x] 列表查看功能 -- [x] 筛选功能 -- [x] 刷新加载功能 - -### 性能指标 -- [x] 弹框动画 < 300ms -- [x] 列表首次加载 < 1s -- [x] 滚动流畅度 60fps -- [x] 无内存泄漏 - -### 用户体验 -- [x] 操作反馈及时 -- [x] 加载状态清晰 -- [x] 错误提示友好 -- [x] 空状态有引导 - -### 代码质量 -- [x] 无 Lint 错误 -- [x] 代码注释完整 -- [x] 组件职责清晰 -- [x] 命名规范统一 - ---- - -## 🐛 已知问题 - -**无已知问题** ✅ - -所有功能已测试通过,运行正常。 - ---- - -## 📈 下一步计划 - -Phase 3 已完成,建议进入 **Phase 4: 统计与图表** - -### Phase 4 主要任务 - -1. **统计页基础** - - 时间范围切换(周/月/年) - - 数据请求和处理 - -2. **吸烟趋势图** - - 集成图表库(uCharts/ECharts) - - 柱状图/折线图展示 - -3. **健康与储蓄** - - 节省金额计算 - - 肺部功能恢复 - -4. **成就系统** - - 连续记录天数 - - 已拒绝次数 - -详见 `docs/DEVELOPMENT.md` Phase 4 部分 - ---- - -## 💬 开发心得 - -### 成功经验 - -1. **组件化思维** - - smoke-record-dialog 高度复用 - - 职责单一,易于维护 - -2. **状态管理** - - Pinia Store 集中管理 - - Getters 处理计算逻辑 - -3. **用户体验** - - 乐观更新提升响应速度 - - 骨架屏改善加载体验 - -### 改进建议 - -1. **性能优化** - - 考虑虚拟列表(大数据量) - - 添加请求缓存 - -2. **功能增强** - - 支持批量删除 - - 支持数据导出 - -3. **视觉优化** - - 添加更多动画效果 - - 优化深色模式适配 - ---- - -## 📞 联系方式 - -如有问题或建议,请通过以下方式联系: - -- **项目仓库**: [GitHub] -- **文档位置**: `docs/` -- **开发者**: AI Assistant - ---- - -**版本**: Phase 3 完整版 -**更新时间**: 2025-01-25 -**状态**: ✅ 已完成并测试通过 -**下一阶段**: Phase 4 - 统计与图表 diff --git a/prototypes-backup-20260324-160754.tar.gz b/prototypes-backup-20260324-160754.tar.gz deleted file mode 100644 index 9265e075d187878f547fd0c139a87efca08d549e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24073 zcmV(}K+wM*iwFP!000001MEC&kK0yu`J7+D$}r$5Mq`p9DQRL4if+5RUv{x*wm^%b zNGOq%SWBWxa{NdUU>vXQ@%t68H?b4PNgO+yjqU6@iQ`B7U$R4u=2QPd&wcRnlDwp- z@wnMVD+3AX!A{PBHrUX#g8kPU4PBx8 zuPK@g{S-}aDz8ZLP6AQ%`9Hq@%V=HFf4wS6^?IkbEbX!_M|X_ZXhU6vCa2|eoDOMn zM+cxqQB_5?SPSl@wqfra(l%TTZ425At=Vq1xi;LhWt)mgdk)-@y)5~?j=4wG^+hT9 zPhM)O3rVMX5c=MzNBb(xMX8}IN?HSTlv}i8uS+v&EAPSO;= z?Kn=OOVN7B^hdahAoxv*Lcb9IqEZa_+ z;;ukG4Tk~|^i9hfQcqQ3$ z@=7qouc**lH40wQ=_|fzxvN24Jv>;J8rt}9sueXNU{j4~4XT=HL{KW(o(K+wjXCan zK)Q!qE9}EmX!(45-*$U_z*}&1D?6y142q%s4YvCUq$8sz@CtkPXjl#NP4&A|#WvTWn!2eHy52V+BQd^X2KX-i-km*UU!}QY6 z{vNgc!i8NxlrR0O`E%PvO}_*sO1j|J0{B)BY~RH^fdv`cgC!mBmWj8DZiGAPL+226 z4(-EX-Lku$Z-%Z1yEp=x!Ed<39)8DigYm!wSUUr+djRjTc{rvvv?|wkJGNq`ruR zA_KtU0b_wTaIGTRCNeO^kXUCXqzN(sWUoTy5N(^Pk8Qte1~#{Sp&J4d=H*60Q|*?_%}v1R4$R?rPostCNI!UJQ8M7`f`Hm( zRRm!j$z=p11H-a|E`=hQSe1Fwp^#O;6{WZgC`~e5x9^VYKyQn$E)DI_q+cn$<>)Xb zK=ikM$VUW?{!gfzkue%~J2Z@kiFt%4Pvd2fr}4t%iA}#8${PamY$EcEQL}`N9-`@T zU@8VoiS)JFFpB2o?WqNBTx1R9h9$2sLx~@4SIaaMg@+6oNd+S?`zbX-yQ6i~Ha7yX zoC?O^%&PP#PNUN>$S7m8XV;O~ED)sdw+@5@tsvE5fYsp$Hr}_#wi)h0g1QcZZV}NB z@XsFAzye-zd?M2^iK$F%khz)*}m&>>g{`8Le!9>kWPchL5o zfp=(G>bsU@j|B8cmYvvJS@VK+pceLa2ol>$*aT#Q#Wp0H%<{c4U}X@Zalu;k_b5b0 zrBFat8nakz?Gj#4lESJ7ix7!fgK_aCt8;X zIwrYdG03B^$nFuNP0g543j`Dw$)LJ@5LyDx(%`VuS9uyCKLfjqR#2olIH{m&LP4w) zsf0$X5)uH$srkp;^j&X!WHIgv-}8`E&=g_-n;9tT4p`ZgzjK91|73t?*&%D z3zCB-G?o+DjbuPVCEGDI7_vB9LzDBihVi1dMoWE3wniz%<4ps>=6huXW6VG^9_4`B zJwUm>0@;Wxpkf1Etz@ASol?TQm;qaiI5G-6t=5trecLP>FwIU0c4WaQDB*Avkts2D^3E{tN6RR7>p6|Mx;q3RzAOYzygEP_;*InQp`l=f?J|qIaI6fF z)KJEIPwCV{Y9c&>)r3}Vs1t+%$&M(##5Br?TB%}l1)&+P28A}ywhf%v@6{Z`XlhxN zP#E9Bwy`(fd3dt+H=cv@YIx}MV&yJ0SkQnjOkMAUBXClBeJ=><_aO=&qwhN$@I>}p zoO2L`lUg(ExvFMb&YLgI<83o^#CAT7EpCmfV2yDbKf00%R*%h*JwQ$*&F-<^o)acN zLS$RSzlL_`yWKcO67+35M6I4>qNm6+!P^AiLw9K7O{Bj&CgMxvqr&dvFWtWBhw)H7 z4@7W0EKC_BmRngsC61@;P{bq{E@bhOHXbvc)1kggq;B+yauAU@UWVTT^9yPOzJRL}VN&jU*369yJimZ2+WA;MS|a zoq0(FH%hAJqKM^C0+3CFMkRw=6irnWK?e9jInDLR-dtsd8R5yB;;u1t+{MG5l>pc(V5Zm_EuT0pSXrF3iS=qV$2R5l+s#hUTBuaVkquSV@fQNMWaOl3=@tpg zR?q-G$Y^S`EaG1;#R_7seLO+#MI7ovWm7nhnhSi9*p$_?UxHP`Oc+6wN-ei)DrQh; zv%fN5;!J7r)(^|?Gb}BUm$RZb74D7mMRaX+EY6?E*;j%T8JVqehO5e4sq_~azj6+) z()fIWj*LH7ey!RXxa3pRN#X% zIm?3MSXBb>d~KByo2JYNh#PVv!LP2Jml7Gar(x0Ru|P6XNgW;Vu4ZJTQd*ORxPUb= z5z&zy-y4DpMC1cCf!tBJfQ!I(7bcsv1@t%(9+h*Msz|6YDnR&N3WjF7qOGl_ksklv zS*#%{Zv$(3Io5O@Yq^3ZhJ&1U8!ODeFj_%yqG1fZbk*>f4+3}1fsGWzw&i8B zSY9$brYC{bjl?q*Fsi7GFsrjGdzQ_V*4j>ZG`*T7P`Epz^#vL{JyYmeCQ;her@iZ*->MT4HuCGec-BO^Jf~ zILcJPV8?DP5MV~zXUgdHBoS_6KZBSQgW?QJZ2p%Nf70Pn1_eziawW0q92KC2yU?;M zr>j*l^yBpDY!nx45MVu7F^$++z9K%n_XYi0^ zB@g+{q>QU)%v3#7u}11X=PvM8G+e-d5&%u21mo4?4aFh4l3nF9=jlzX?6Tw_0$5Z4 zs-dzt7z2kFZv5#JWI`=e-57qneq-D9r?~P83x9q&rB$h9&UD2SAE~ZhB$h9H5(AWM zBuXap=rc0DreVxOP=)1}6?S>RCgndf7@=D&~an;C_BsS7@ z+Qd4lihKJrln%>xow>xGp_uAc{e-=p4b>vg7)|-`&1T zLsTgQu|rp8HNnzZ?R3}?6XpZ8wB2c20kcJcq7xjQDXmtoUaut1_Y#nohIW4SG1qRV zkY<(@AKK#rA}>0)$OJNaw?1}hRCQLqRV*Wzfx2^v-^ynhU(^X?>z_NCF=yzk?{0sO z>;XCTR2bHoBPaf2@6k4@0NMKI-Xjo{ZJX{<$8;2{RW0I#W@Y6_+bEGzwRUovHC-d6 zY8ovp!|rXlD~w9dlxCA%O~T-Msg)pE=_+$DGG`jvEfYNAI2GFfH@w}9>*<*_9z(l4 zFjJZ#GaQNYB*(Vm_Bd37ODJ>XABRYiQhJ%I_|Hn(oW3ErDn`k6%J4;{Bbn5ZI;&`& z3kpc|IjGV+KJ6&;E#JHcsde=3XU#vKqv7A2ht)#kCu=B=?Twbew}E1azbLR$yvrm+kS8iE`QuE&9U z-s_H$Q9UYD6anHUNnIOLX0qoBO5Ks;)k8D3r)PSpsOL*lGU_}^rnuaP`I0fPFQ#L_ z;SP_~ajo#ox*lHT7@W!}2Vl)`~Cw=tw|RVwIRb$ji<0)FuJ1#4 ztu5de@^`lsCk7lW=H4zCwW%h9W>A{D&_JqV-GyWk2IV!}DUEqbm@t_nWo~avOHqUG znBW8XX#6Eq@GE^yjDVBL82r@`Rj~16U$pxd`r+<>27d5?#8zF)UP9N5?${jV_djcz zsv7M6Z?%c;|JD^v|Nr}+|2IDS{>JjUX#XX&$rHjwoz zz(@PA#6}f#fgSFz{qwJXT5r{)y~(4IIkflJkcu38epri3V)oatXxVRp_UzKTQ5Ge4 z1g48Qs0XOhbHB1A$3tPSd*$_C{9206-;6#y1A-`8|6uZmThr&)qvN+X9-WV#UXAWQ z-M5$YMDO5xkbHZvzZQf?1~#tFsY!j`cJ|kn(pQ_~Y4+_Ui`s|p%4NcOe~sgU8d;d> zj?g8SK>%Yjk%^zdQ_DRVKjf7SeGDDU_%XY#DFF)`UYOTvE7RxiM%O%(S-hj|eZ) z&k$br?M1!VD}5z?AvwiaTPfJFzQW!cr(Q#PqqZ_RdusFeo#@$>=+rssSO4@6(&qcW znf&&_=DT+%>)()O5O+_%$Px3`{Mj4q!A#7;gsIlcFNbnpG>-r33e#mU;yKd-$reg59o z$+H`e&P6BAP5$^CO?U0i=Baf_mnL7{hFPX-FwyC@7i!O%NkzcKW{lE?S*25-VV zZ(621IPwOFlAaynhW}i3!#9Ag>^CI};=A7iHZ~qTAq#+6_w60Wn?!e}V51UigQF`y zbWxx+)di_d)+J4yiPgq+K)a`|5aey$`Wp6WA5z7B}`VeQ7oqsJRh);7LdhY_RiuTAeg0IL3B?E}~d zcsg0XG(GkV+N1Rcq#Hb%-uvU^(ecS`w6k09o!fYJKDzZqbmBd-k3bC3^JAMAPfQ=) zoSZq%qmZL@(dwzSkX|~^yXXR=)Kk&>nGT{Z6i38ZS9nESNYeq>{7aH7sK%>z6l=-Hc9uJ~?%!U@pOI@nLab^yBLrPtH&8eLB5= zV&mCIutyu;eKa|CKYF?r-KjbvI}Kf1X(E=3o;=?C;!Je$5d!Vz zCRhPrH=e%FGXm^9c~tNoC!_J9*c#$XkhYtTKa*6@l_$0?-%JbX3JXqy&mAHx0zcn7 zBYuke*$q@XICfJzM0%ui|&0l`Q4St>1Q+0 zRy@HDEG5<~x1#mS)s}MqLiFk9)BCq4=kG-8-@x8SpS~YGxHS3byB~8MlP^DsE?$~E zUyDwERcRfYH_ia;n>UVbUH%HO=FyL%Pcb__{_MwGM|AQ0=94csuV32y;FD_m@$UV} z*`vTa8;`#LJve>-A-q31btO7?Yn$uXzP#biY{N>h93=t~bS5&0u=tzY`ebrzz2a!> zs5O??ldmsK@2qb;z7t(JigfVl>%w6KjkzY?zRXYk*R58`HDEI(eSEoBZRLlx?tGRojg4+ zV`lb<7Nu5LWvYy~SV-||n=g4q{#uc)j;AVmMxVw)j3`uM@i3`XD*iH}f?Rh4xW;A_ zP~-H@JJJ1{TOVKAJbx0IT38Hi-nbdv`;gdW<-)aG@@DNAlI{W#b>V)resXf|<1)ll zq@Neu90?U2@8Awm*^Twej_nh%C87(z2idXlXbmjE$+eHzG|ZKnT>5-+<+B~#FjO#s zB-oS5`McZNtV+DdW#cQbBcJ33cVY&eBs+8UVRZW%5xvpzuO#e;RM{Ni#sK!WzW)sf zDC)zUzB{?`7|AQnb%CE7&u&bP-bcR8v76v}Gbd;3*fa16h*v{Q8Dd%%yD{_G8~?-J zwfD4MVi%4OEa2ix3$u0HR_PyPP0uQ;xU=o(MslF3`J?ec>_GN5@lcGaz0_nv#6zjICnqTTYJ z5ASRK2SfDN)gfVW;sDFH@I#odke4ptGrL#V4$`ba^0S~@;_y8?kd*y>JRT%0(2KD9 z?yv5k2u$&4e|3k@!Ek;klEcXAW~Sgu;Tcj7qr3$oxR;K8NXO&p=mGj661(^%F{)cv zL}f~Z*`T(sN5Fy1dAqC%SX($NK!=dXISj|Npezt6De}mP?4Cx473ti+B-d>| z#Z)wo6l@?&AT%Tv;EY6EL{LaX>4YD}TX2tEU_fy|cNy=LiH>Svm8K$dSV7Xp+Lm`z zn2e<2(#y8YfNh-KQ~fh_knLu_k-oKN+#QA1?>s6LkLa9C_~1+V$4%Ln;*)PkOSb*+ z*ZCvzHqD5mV|jF4UOg4bIEqt}x|&e^X-I^ROYK{6$BN~gn`zEAEL}U6vGp-}3lk5P zQ#Z7Ibx5#YaNuA$%I`RGDpwK`%J_aWfV?4TF z7kwAAQ90_#d|VPIN9g}Mq^JdXoWI;dD8ehK*3deAZl{neaxp$8ugzTBDa>)Gfz$;$ zB8{+6nq7$s{Y7eepU6AL8zUkyIWkwNN9&2ew!DX~`;@w8T#0S99!C$Up>!uFiSQf)&#rtJ&Fy@!2&#gTSO){3 z*cg?^QdpE|x|4-AW@|h{Fli126X4-9^xg2p)6oN1?q8BCX7?9trP=*u<<{}}q^|z{ zL6-yrD9JcjR$!P}VQwT0R3-!J<~Bynbx;l1(T3+HeHnryC@~Nx7p{YNpL8^=Bu1Gm zI3U6Hx%BvJNnY>*$)GdtbXRt7%g4jQ_a5|9jt;`u2rfvz6~1FN5|V?FTklU*QZv`9 z(}Z3f>F0B)V6!VlrPy%v=%@j7=~3)W9`T5+k#uyDk8vs2PjSajAOebd#yydB_9RzO z&kSvgp_M#Z(kvJXU)2Oop<)6y7_?D0Kxfcm8Z`4&5#F`SQwv7OY#+dTvhh{vAi(az z7wLFd#OE@e{mSnaNw=EX$+%ajQ6_C+`dd#7x#RWb87 z$f45lNf1TqPv=!ke#E0BK7h8M&ZKIPWo06{)q$CmlLQLc z@e(6&C@}bwI8!gzHRbfpl(K$+E{pkh!18JYq&+K&%qpR-q@zCce_~jxQll9-W64`@ zO=PR_Y7mFbx;V_&U#>(NfR7z>Yv@Ztk{Jq>ra}F5F8j6# zkB#^&ybO40IDS2HP>p{~r{0R8Z4s}S8E1v*;Tc%v;^4hFC=uBxDo_YMSA{4!-v;9- z6LhOPLsi_J+ER}<<)b) z3>b5w69Q)mq1BX}AOZ_~R5M;bEIPuVX2z7c5|O7HDM#4GRSz$e)FIpTUk+@cFuSA( zcmb>rP@8E5Ip>68lR@+tQCyh8Agpg_nJ33y*_|jvi^!3HytthQjE8UJ;JO+30K;k% zBI_J2Sc2_xkQ!0d%SUL_E@3={N4vFY>%*W}nm;HBStyZR!O%$tuJHCS5J;T=sLZXy zj#kcmfaHLpm~k_2!&Hm$gh;)~te%LHAlJfn1eK_X z3mL`L%C4xM#W|r>KmM9<{4+vU$HBOg&!w?ekxB)!iW5Y*d8c5 zW?UBP%OC>5Zt~7%wn9cG0J7%5J5<&a@WBTsK=y;8xxrBtjzh5EM8sE)aaxP*S(vcH zLV*Q0oxofFNa1+(rub zFaiqFYDr*;xANL(y|={V;A|e= z$9g&R2^5R2R|8Ui-}9UjJPlZE=idMH6OGd)Sd9nE@K9AAszP+#RgwO7{!I11`oHh! zb2VV`ruvruDpUW<+1&cTVbuR>bz=Rm<_E3KxAnh1#ouRB|BK^>ShoO?qM@xTDgKo` z0=KolOtruM1D8emPgoY4rN0U{t4!T50_1(*i$U(DV-x9U9D{S?A5p(w-v+^~RS_WN zQp?p0d{83^BW}i_J9*+#p7d}4ja7JcXi7bO2L`@49KlEk-NobJAnS2u)18j`#MYWf zVr-A2((>p!$U*gJ2yTI=qyGUu2WH^{#{N+@@2nhjtCyrPY{JvyBCrH{Fop>!mVSe( zd}*)EyOLN^55uy1$Raw$ORfyZP`BfyeS0BKqsJRl-*y%Z7ZUCUyeMspNWDcBaAz1s z$EBjI4|#S8Yg)XS;ziJ?$gv&-Oco4c8%m1c>GWYw|}wN0DgA{9^DiJ7$5GHr9bw&H0! zoKi9W^_9>2VnklrgB7oM(hbgPXv7xE3`DZMV09&tnprG2vbfD>xmuL0nBCJ^XHEVq z>aLFOX`LJEES?)%FiJ1%V&0d=pnAppW*(5I_K>#z5oPJ{N1J%e1W&{cLOLJBDZ6(cJC?5ka{=l0z~V-L$G$lAkJ5 zyKY*CS8%pF8YR|6BnRsjMPES|5uCA8!&`hwXic;=((yN#jYy`ywLPp}E`u#9J-yr1 z^c2gHvv~>%wgFx@Fq~+!1}E9GkcDn?_3xz%P}=opVkIzkB52RoO=QggG7ROz_iRxK z&xvx9KrryuM+7mD6)*f=CBBPzO;8f%;dHHQMcZEt|jcT>YbFi^|3NZ>C+T;T& zhqhJk2Uu!&;a`#~2={z5t6qB16kNtK^$0FHI+lGtU=*lzWYIB;$6(g``HxB>pd^;j z`!^he7lp;hES_=<7{+%x5H}|#{P@I+MJhEBCb)SCtgzMNq?agveH-$RF{}hMK8rcE zJo(j#5^`Th{(}h2YQ%9iUOa=LaENRP8pf(cV)8;vtgfkt#mcCDhH{ljOgUJkB6!p6 z*kir1n8R7~-=`CPWmL=CH;+PxY)qbTBPCPWq|8VPy~pe`Tp2}SJRHMfU;cSGxO!Q6 z!fBfxkM8TCOX2Zjkr3|(aehp&?V#Cl2GhVc6cjO#&(G!av0H&^4Cs3C($zCiB+0Ju zLhfW|WXO5;G9!ET+(oAQ2`RJiY*GAy~dF{wma?Znh4>Dg|iia&Vn8V2&}UX03fBheb3Bzllo_{t3>7#3(cc zy?F?E@l4$rViEz}Pnlb%v|tYK51}S9vje&|tZ~NcC)C`D8o~5TEeTOs<)yuoX)|Na}+13bzFv$TlfRG@k6VA-JD{VqhbX+PvGmdmWeq_$ttbSaLrnf%ItCzBW3pNVrbpptG-^QuB9(lw6 ztR6DmREU;#-fNM}tpR}bKajNgRvIGahC-xG_}}i{7Y&`DTy}MTTKuo0rO{b{|8+WU z@xPzq?=!*w=DBFD3jdou0=M{I6aM$Ny)UF+)3VsY|5|NU8T@aK5$C zmSI@7k2rytihZJ$#Exq)4-DraB8X{9m6YQV7L9k!*y6Dk+ zi@K|H5$_nqH#LwUwaP&ohYIzh?MR*x{6NM(tP>XK<$6G&P4mOju}N&RvoZ?*n^~E| z#f}~dpWcdx+VAL?X*8+0zz7;j3tv$28T9D2-25u*x%6S<_Ur@U*i>&ZR2rkrjjUGY z8Mch7vddK}gN-a2FI3M%8u9OMio>qI8I`h`A74enT zr7vF9oZWy1K^r|{%m5mD)`YFc!BQ&N-Yd@SWX%s{*X)%%m3f=I;Z+VU@}6o&0$ss_ z!(RDhFaMEAH`=`uesy$K9L$J|@pSCCzSdPfja3yD)zUcZpQPNX86<8?-u*c`B25ZN zQR%B)#A**?iH5xDI}a5bM6p_^-ejwECFAPR2xFAA){o;e!nZE_ev*BQsI+i4&D;g* zExPblBga7C2tx9DQ65uh19cw%3Hk`eXXLfu7bJt7?GERy3@$cIRt8rte#@jn*bu*j zVw5LVSzM;$V^s)Ypned)G!QeUiCCcqFLe5txnXjr;7@eT# z4w%-ISBpukRi~kl5HZ@-Tx}?ni-3XEsKj@qpSPRtIWgW6+&2kApT-1&?#%op8>1p| z2A_dHNSNJJjaGiM)ef^O!#eEASAe#mF-)^l;~0y2W;Kl9p5e*?uENz=M0`FovZp;J z8576UF&B93(X1MYz%}^K*jf4l7I~Vx?ual}EH36zKm;`D+h35{0hVQJEpRJxV_F^& zKA8Hc=%}gY z^I9n%&c8!1?oaP%8whU7!enGvae-z})>S`o+LLM~UNRB0lpL@nAgJhn9$`}ZPN}hI z2)0Zm|MG2dij9$%UsKVY94)NoPVQw>qogfm^Ov;xMPNZbE7c6NsKw8xn9u%AixFRi zDEl5Y)6?CESL zIS6L|i@uJ|E?3XM-#gkGJ6$inlJ2^`YioYcEH(Zee(q@buBA=FcfmF-KpUmb*!NA3 zG-_Zsnn|WpBNzDH`bLB5sJe^!K5jn2F*tLX3B3X%wlzX4b2kCE137VD433e34hX}d z_la7QV2aF`-^c+0(k(8O3wOH#bdoOX&9S`vS?`~UUYy58HQ}ZlC&b!h>BOY0v1CTl z)~6G5mDARh347Dd#g<>!l+EFT@>9-*;kwND=z=)!x<#lgNFX^J34z` zw@W?1h*7UMae_K(UN;<<)n*0DYL=LRF-xO*oHrDRbxnUJ{8tu{Qs-xs#(y=oHaZRb zS942aE8@Qz8(VJiU!UUdX5+t}=+r5Fjl@|u%ooqNB)BUNr9;sRa5f5N#@cC0P0x%mgxGw$Xo8SFbL&LFG&rU@}vAw8a%I5aK zq`)SX^QY*8J3mjyjx+9rdNGTJ#h9OSCE-Eha7`NQ>1ybB^-6-z$~2`y5Qa;=h$-_^ z=#}A~$+IajXx-Gv;N2jHK>l*mY;4_`2YoSYZXG~dL;1a}C0#MUH@zJD&8m-e%OU_0NJ3^x%y<wKxHNqr8vv2hQX|!X95RQiQYuqtn_+LBBco8UcfQ zXobJj4$Jw8n%d_hR$ywIy=$%)uAa_@f*ezeYZ!R1c{V4+pTIp+3ITr6L@ zFBSHqw+e9-eUO$hkozEWIo50eRXu+j9;&5PbLI+{U|kvIi5ZtwG!63!=1@gC^%mHY zxz`?@du%9(fQFSBWtVnRs}nl(_-lzJaKyS%jkor!Z`&L zKG};b-re3O=2!K_IKm}iMGt3T*BJnwylRVpF@ zWWWARWx|^QIw6CLc`{?MSuNpVG3>e!qktctD?XE&be`}lA0xs)4|l1NQGs9TN(Cii z!8IiFC3$H>93kzYdLStuH&ov+#(08zJPV}CgBeZMhEFpids=m+4aCjaLS5$~>B;6{ zL6(DjXVF%HHL5M88N;7W`9bT#ECAL@@4tTi8vl!y#Qo>Jov!=3MwC@o!P2yKnUNoG zYtP>P)$(Vu{|l(3Ue73F|37GSw&vOYElth`xAy<1_5W~iBB-!vK?%Zv<^ObbxuA}A7AM_tz^>yMeMZ4|b4f*YM?)-sn{=cs* zR>jbo^4G-p!Fokl>%=~ng|&s<5^qLDkVvDEO7FSjw!aGO@&CU}P?C z!yL)($>D@TtPv0qaWG{xb>9sI(!?dvXd?-4Llf{uQ}Z;J&cYfL_YC8>t(k}YWYwI2v>=ycRCS`IE>X4|WCo+4g#u!qWfmjqW z60^17HIRZfy&Ttom|t$yb0Mi!*K=LQcUjNN6FJK^Ng;8N&HGX&0|)}~f!bV3lWw;g z^tvp1W7SP=>*@Q*KQ`_l)_ODUn$E+3a#pMlJx`DUozs5+_OF{Fci7d2U8l%Bx4jrg%iiIbHa{zaJ7;?7Oap|MY2EsZx zgS1`qDPO+f>!vrG@c0l!v?!9G|Ni$E1NXo9qO0fePeAVseZ`Q^WM z-8Qxu@7$;NcYiP4hP&_Z;eg*87?6b-$KOhZ8dd|-YPp(85!yvV#v_D1%)-V$G(F(2$fnwW z9{I#Cd!bwfvu(ft9pWU^Z0p0vAO0kqf=v9k+3zU!GUxd%`fBX^0q$z)xYO`IJ>Ac5 z-@0{Yppq9-$L=m#?d8KzmV=M382-X^aqtIAUrY4a#y|>d3U?(Vzx+;vz&# zlILA?u={<_*jU3a4eSx$ehZJfgU!LK;4)P9SbPA3o6;xLZ1&vOG*5?DX&goxTUK7R zykRA#Lz|};S+ovP)$B&7K?npL6-S-1rZb|EF9ztqcE;R)=068doO($E^_z=LV2tpS=l*_7X&(LeKBDWC;M zk6LsaS{|K1Cmz}{@^(yK$%5_13>w8T!HpHNoT0W04|`$>4&cliClROwN^O&T1{hR@ zf*zNK@rNTE1Y?ci9?R1WR9wYyun<>xd01sn5;*`-VE~_jqoEY4*6&wb_$3UTIS~H25Zr5= zMQmSjK;sUmmhhDID$ze&rROdB2gy`W-Mew8#$6ltaS{!}{(hDu6LainnMO_u5($!( zB}hwU6&;XXjff&BdiS8QqK=SSK3{G>X}| z!--t_wLJSdzZ?RI1|k45^}oln+l9a!Oj>Jimf6+d(USU}bsGA$$_9#U4hk{{6P%^q zCyzRBH?_2UrTo9Kp{*4Xw73?*jxoz6u1Vc4rAQ;(N1v=MLAG`?%hpz_?%-15+YQwB zagdB;MXF%eGnHaN`p2fH9n&o6UjW@&T_Tw@z;v<;BoUWfRf=^m*qXFa4BMihQRr7N z8MNGYu560s+>FB4bZN=2hV!Xix@F<&Qeo2h-2kYqbVjh$dDPArJ)@sQfO#G&$1(UO z$?g^XYe>KdI~%~SFMx|)nSL)iySms^H%QplG~3f>|zp$#^gOHJ~#?#xf# zkISJD$70SN0H+WuuSGI`GBqiW&v7G&9f`Qa;giE7C@BG@zv7ao89t@5pFp+mLG{5VkbIBwuGwJe`n6ibVe_-BCWQ$=_A6RKi>ddGOG!hFn=Yhv4l zOa}Ei2Dxe(HyZc!MivFXDyIY2b!&J;JkaR6u6A(FPqj1zf$^D%LUIqZW!5Z= z11lktj{^U(yUm=R2=i~n`i_P8PN_^I`gE9t*OA1v-?`hH zziMgwsu^~&YB%lQwKRLbX>7iv+qSNwINgZf%tzy_qu%x}Yr9+Pt+bvey}mv@pO2=f z3fi~)dlpEzC(+lU`k6%<{Wm;|{(Em%Q+q4VqW}K!H?5CUehnK}+|@f(xEq^!qu^}G z409ZtG4%{0bQnw%c(qQ#Bsp6+fbyA8)@>sRWcrDZNZF(E&w_gw`DoA_+}|XVDe`)k zYJw^lPISZ2iwlP=iw^5zvBFu!SW+Gv2M&16A$FZSztxb>)|Z~<0a?!2@XBz@Gx3p( zj*yK}vYED|lYxT3lZTM8gSF{GArgO8Ho5_H!9fItg;F3~fSF~h<7kjViW$4U^a*Ab zv$7BByI_gsOT;Ckcz~QSoQQsai{@rQozF2hOOw6wUjKK_&u$m}vrgX`CluWcajsoz zW*JsZYuDDFXyGV>VkzNcn_$l6v#{___vN{o%Xwh5U{Y3`OT?1?mUHL?{7)$fpvKRz z!T+>++Di4mn%Y?Xug2z^{I7HQxgz)1~ErL zmz4xcrILe$=?KVzAkVLZH~YgDHC6D;n8=+%MiDiB$XFO^R57LnYz`!glJ z=7Ir0s$f*E6GQY*xbW!|K|h=xG;&aQ9}uM~A4KS%@~2gDu%_m`@C=Wc32ld_U?Ct0|x4U<4eSP*iyu>r#`W!F=+)Ob7a8Sl(Q^K1Sa+_nJNRL;Kk4om@K> zm$0MzG-x1$7_|o}DHNg*7~$$%K0*nT{pBj~L%t`F9nfcMBJ&Fw{-VVAJiYCVBU!ka z3L$FF`)Ga_IW=SdzWgvLaXWBU)pQ`5|a;L5ZzMG6%%uW~0LsP=x>)Ba_}C@Gy4 zWm|PZj((t$$emCFD_GoHAjgOFV3HRy^poNuc=eIj1bA=JX;BttRimpU^|>mqJ7{D5 z&YbSf>w%D|69^`-0jsnO$gKz722VTH*}M%+%~g&BY(}huRn^&Mt@O|dtou-Hl-DGX zTDXsyz1knxtbag<>knV!uMRg+$B+A_(cp2(iF!S*t=*`1WA%DmYfJg#$ntW%9@lKt zyX0)W9_MW}=-u#sy&l(O&^vj4)An)h_Z7PcU1jHz@p&@8NmfR2uVJjvj$~FkP?{UO z65UFx(?DFlJ34M{iXEE0xTjt~Ij*xl>gn(AF~*l_w7t$pW@={Hg}T~U^b;OHC~nPZ zG+pGTs0?IETT_)WlgBVOo$we%`K<6UrtQ;_)U>bG!>LjGa&TJHJ~9v3wSRrWkyKlT zDCFrUZkZ|;xq)S>euwx30J+RAsvZEaSeX+5po=T7^2;IAwZI%d7(;s&@`g^5xs*S5 z8pL2!J~|GrhTx%^NyK?WrY6DLkeR1n;q})l?W9UO)RkG~&Yn`&|8+2{xWY`kLXunV zv}lfGg8CV3qSjxLmU;kl-v9ER)Y#D4UX5NY0VdzqRj%(gmn$*fd1|CGnLX4<>;0~& z&JS%j&N?>GCHMKb03=1Nva{5P%6wL&Y~)Il3kvud_m-jvgacnpF-B5;@>3$m+Sq9*ca# zBse0kPL%=L9VOy&B>nFZb_aZD@KO`VLyQho4ltxGkA|wOM(eI@cXV7F0cRc(O&zZ! zWD?+TULS=;92_;SfTb~w)fPDv0=0r6Xp5uM#r2hvt}&P_zS>5PGHj841;v%ZZy?71 z=8){qlkjLh`JSpRI1>Q%vK=EU^N8gXlXG!WG57pzE;G)6G62%$MC6fOECmkKy(0-S za!CIN@LyIV>_)Y5W8Ok+&;kB31-)5rDKVaNwP77+!FHq4%G#6**NVo{e@FXOdl8C zk3o2I`ixAS6oNB=U`=k(^R4KglJ_^|*;6t%RG+NYdRZcPn5hX`ZYz7^DnJXqN`r(Y zomb=3w@ahe3DzKy+9NSTRZN_IfP+qzv_d*1uVftT8P29)E#4MX1u%|vFRV=0`Cj8+Fp~_&g|wV4-kGQPXqu1%Xc2vZ+?ALPZ6SGh}AzO!6ghSa@ODA9NqwwE1!=+ z+hh77uUE5>$!{cSqxr=&UATqVwjNHyTxYq|TrTwiv{iPnsopTe>ce(9xtTi|msd8S z49JbIOxK?8*^B;{ccE2%AIz@(xx4Qt!0R*Dw#AkyaA+(*-fwh_jxpJQgfR}pVC8mn zex`~d-46<*$K-IDXN!0tI)M&wEDNh*g5CeXox7&`u3wjeAcG8gI#+@&iAYndPy6&iDuN7qUCZ7v-~ zr}rf~gw>7;K|QBa(za2AcL4Y#x`wWl8Z@e7tWpmkyY+K1=M4Vo8W!JXR2@~|R{uYL zz>-@1w~Ud$&Oh4vFDg@dO`l zyDQG1a(wD*Lhg@=H6f806O#j|q9#v_p(`FJGg3q7kjH!g>@QZLp?W#M*cT6#Lb;bF z9{}O~VjT%1)P<5OprMmu4l|{Cs8Z`l;eC^%etIz^fiDf^k`s9dq}kcpWFNdd}LE&Q)@$GbA!i{6~@ursex>86W0P(UC2ha1UdcG zt28wkq3AZaGOCf8J)eO4sdz37x1vg7OvfseVnGs1w;@TUv`8IYo!w7gKBQaK6CYMd zR;Oz-+7ukAS%M{2g4`or}j~So|0_g$p;atofH?R zit8(?Jtb-_5Xe>bZ3w)aLe)@6nM@y%*I^#$pq6pTZF^%V;oLo+0twnf-ofocfrR~v z(2@02rqx)DFda+hj?uXxsu~<%Y_HO_OY+-OK*ze$>)dzC!WeL(^(U#rOrik(%j z9(DHl04DeFarcwHhcA4+w2Lnt_mHaN)ePPRMp|*F1ro!vCEPaM!kr3%SrXd5w2@Xk z4X}0zpYn_+uNI+EmApfVkzyzpvB@=ffLI8m#Pp|>IH_R-R;LGRaO;fB(soC`+?tBc zys}YNP)*@JG=>^c%T=QtWT5y%qJrwyjqixQdwM_Q*&%V`%tRqGOhP+o#(+!sWM5ug zztK=Ghbys+jh^vH+e1&p>o%Qt!>}Nn7pH7@|&Pb z10Pp4eJ)*qQU|MJ_^`j{N8j@fx_qfLbID0{;Luxwc~NLcsvG^q`a`sCoEes?Wg|JS zB(KD1x8=`4IdI?_>wjEGe^C6J5v-gC```L1IZNipf^zf&B$lz)D;x$$bQ}F8RE8HT zu`*{(UA=54J5VCv>@^8N*#a!N2t$>9MgQal3J%Vw*_z)UgG1rqtoUw{UZZ%pYJRQ@ znTU_*c2#jEA{=0a!~w}Tqu|%29s>Fi=M3w*STs^w+s9GULb@RrCGLlT2rdYifTH#k zh^Uo-awi)F|1h1EV%)CyDov8JK<<{wAnjTqFj4sQuCN7Rb8_adFzN7;>qCMol}<)o z=pPjs?E*6Z@JN@ z&h-pGH_!Ypoj>{>{`BHufA=#VRm%IG`h4miFFGIp_>kHykEt>5d)^OUKkNCi`}vcH zFMXZ8=H!0oa`Y7aOZm0U^AHi9wetMu;`}EFRm|pb%6WFDSQGY%bFT^+MP7|mb2A{L3X zG3UBHD}X1U}t85t(=Q#G;b z=0N7{xzB*2L+UI83T;)K0jNij*dERUmx)iDtoSTR4yPpnK!JLo24MknCcCJ5m2qw; z_0c#&jgvRbXjODJVQQQC#A`It-j6Jjvp1Kk`nEP)k@%?8#CGR~=Q3s|F*J!+l{iQ zS|lw@_DUs63Hd)i^gQ$3g=tai3?S?LpXSE4Mz6m9N2{mhCjaL=ey&LV4<5FX5$?GT z$w2B#xJd^R(t-X=r6PST{Rfqc^w+Xu&m=F158OWzhGS=wCxnz*Sg9H-UW0FSGKGx* zy_Q0nm5;8;`|p_hZBm}57UEX!B!wPbx<}KOAV(1r+0A8F@^2QA97~S+2|c$$+tikX zW~V0P`Ooml#2jL!)mrLe30M&#sq(4FSw9IKfnzorCZQO_Sl%pB6I(DbSTg-aSY8=q zja;(aAO!|#o)tugLMIgj9^g<&fBdh10*jWFQ$?C8(18WHK^>RiA(c7gaUTr=MvmEB zaQ~SfN^z}i76Y$&Rr1I#0_T8ff(};db1pf4V`o(cbwfQ3#2pTztJx+U#~8L&d~KHb zQ&C*z90T6E;0{hxtd7j4qT|rF5a#*YQ(M+<3lqf1y1AvP{YZ7kDoq=O{n5~}X>|rN za#w!1vMS0KUM*RH2hN)ZKT_vWCP4^$IP7srfK8rzjg1vY6Bd`Cn$A1Fytc{rPgbfK{Wz9W&+%^M zN)#Lt0-I%pa_~wvNF^gVaBU><5kOBKK$sxtK>?Xuna~N=D{@k1*xU`*LUsSPszWAE zeLy>W*Zin*>V*3NtTR@er=&<}zk^CTX5T^C86 zS)^c=C&r-Zl_hzi+DZ}jQSDs%ZP7m_kME#IhatUFV60EBk>$5kQveRhs8%$oTx{D(78Q(wBbe?0sINAwXD>3cO=0-t{QRQGX#jje;)%9N_?UYpGqz z4?>cXBbB<+kwIyY;bZx@F7Wy4;I@TysyG@!7qF6Ckq8mS;98+GS8$6^A@ILZ^FiHm;V!pd$kX#gDh;p$G{r!%$33i!N+{ zRxt$D^>HkF8t*l>SD|H9S+;mcs7LB$AYlWrd5{E_ z7!TXHTLWKM%anI!5L;=ABr}C*CD4dmA6cYX1N(i&k)coEnE1}2~Floit$z~dN51oQo`P5 z3#KM+ZK?kUdLr5GTlT>iBiAD^y?J73tZ61db!B$hRa-bIV@QlOK2ABc`6st8k6 z+-q|23m$alN)~MNLy_F+7_YR;3el-dyYz_UDmJUEKvK#4-Z*9!=T6_suMP^KL9!VE zCem*E(S#>S}!gPqX)&b;3mn$bJ-YPib2_2>i^rjww^YUEc~8d z(b{OGiB=f5Z7%DqMvAoakcX9`d0njrFL($V2rQ6fW}gfU*xYQ$aKDBLBn%J?GhB>~ zpb=yz#7q(8F>UOvBrMr#8W$S1riqo!gb=9dlb#C8@D(A=Kco^?g5R*L)3As== z6Ri(gTwp#tg^&nJ2be1FUb z9=G4uay{k)v_RT6A1tpxp87}{ZLm(vf+Vt^JN$)*%v{El=(qzLLi#PY+j=FPAs|C< zZI@dMcv+-WGIw~03_^#VUp&!6L-7Sj?0~Fp{Qr0_$Z8S*6Kgh_$76K$_*8RyjNK>{ zyC!qZ1`^%PP0!pfR|axnEv_VXXUrzHF$|4Y^jbVaD{F3Rha23hxksHiG4e~l;xStf zKZZ#RlhL8vVZta&EcRfy3@DLV@b!*Ql8IgIN_ihOrdlNhre>5}Oyp9{eAv-7(AORK z!T)cldH-1Yw)X|q2fF?n^m}}L-#?bRgM*O1MSr%v>qV!(!R>N;gFTPwV&b99@GYy` zX#Un`Hdp#(ci;Dt8{=lB_TKK^e*ddL{}&AnJue4?9gmCyk#Qifd!GlpI-d{vWmj|4 zW9CP~a&PMTmb&&9&yAn5*@yBc*Z^O+#fB)7`>1AKc%%4)H-w= zXhdK{hcTAFH9`?El?L=<*!PP&BsxYfJAja|7z3CgR$~Wx3s33Qi4cEUO)Zmf60I!R z#Gam+1nEj^5$Na56unw=C@HPJ(LK>yYK$$b&FhIKY(r^ndpZkCEMXQizVK8KoF7(+ z)G4dEuq>@*U;tLB8%=^-S%ClrsvhsC!x!1);qRd}EYZrpxjmhmjDa8i;>-vkXtYY) zN+)PGF-{qr50mW}+wM8*KR=#wOrpiLdrI;O+`NOZK}yb#{Yi{%I5oMBd6m$_D(8ufKZo_kVol>gl*9XbGJvcVr3sb8YOkh7k4)WY8^(55T0=U{Y$BEa zc?rvwYU2#P80`O{q4Q-|N6^*;6t`oeH6!g4hFiqZFN=DOk)kbtho)Y(A%(1+Mfs8zoS=pHdb3* zU2RD@40#J6=9pBW7XvCfBos7Qh=KE6n}L7YsGQ)ksO_OwdMG!se?igH1|4{*ilAEC`(j!(f@tLtv#%DOQ9_?h^e&)TDnWO^twE(E#nGPtCp(`JhVZx)<9FbpEG)IDQR~$CN`S28-Zsvu>cLB41 zY&O4@B*_??blFw3g*-0P#_+m|c-`mH8Mw)1;F@NandMqsX1;B8U15})7VVa(f>5}& z->7{5^ZI1Dr3nA6NtV6h{`WcPj^V#er1hkZdgH(0P7nxiR}tX8W;5dm1FppSRl$HW zewoLaG8YOaos#8U#2uqOEAvNGw1J}|Go4MxAR=M@2rFIyV9w$hCg|nf4=JlB)Wi6xg8B%CBuqhw|uVa`DQvLAxqjbAA7IYjve zq-pkZbmUAl-xwP`r~`Z*JJs_01I=lh0FMRXdTh{c-GfM+Vn4M5x}DW z36a|%vorh3^tleWr|0y+pKGCPnhN`EbrXDJ;8S61g6ngCJXNyKZ#K}@6Z*}(%`BJ| z3!rbxd^tx}9kPS#h5SZ2*2u1w9r;DxIk(3zxB7j)>k4f8)0cQ-mE>kfM}!C}BOJ+% z*}xq_G8y;3#h8IYq=XNOj9QH}(8JL_jVMdI@S`jow^9!l11V~GadynvesK>3mfC%B zNcEi0K8jJHCdsX!h1DSktWr>Xg&-1s>{Q-!i63sIT(# zEDoy>-8>pmCKpKR45I~dxQZ>UAVBwd~2WrxMkSa_O|w{Qv*F zq!*`e0!$aFP?6%!V*ms?Ua^`PR70|vxXtfxfmeYpdI{*RSoovjt+0%M$0L`X*z|G$ z$tL`U$Y5r)0C69y6unN7DJwN-h&7$@%=qF1AE2*0UC|urcHu7z}V6YEQSCG59`c!bV{H z4pc=*zGorCVA2xy7`?-K=dqZTsn49jg1$m!YMi?)Svm)fh!xC$`nFgu96Z@io=RMP zU9NzEH9U5^Qc|2Iqi`OnRjfK6_#6N;I2m{~<4R3d6R>rz^Ygc9Y${qi7FVl^z9?Vs7UfdrY%jo|{hkOauDwkPSmf{fB z=WdhWAbXo2nUO!>bTdT>fFjER2;e&-qiSjoJIgp6~SEx_{!rE#==LRw} z1#(#P(-dIZj%F$Mphxs}0j%M>sVDKO0I3CAA)m~f#Vg~BGI5+cxv&nj*6i}#^uTo= zxz$lOcxs$)%aLp5iy2Se%xdRSe~Je;F+8wCl~VbnOk{g9~@YRYGffTcMB8K>+;<6kd0A2RtNqU zKp>4&fjYS1;~FAqGt&l5$;pY0mu|2&uWo1&8@J}TF8Q&(ij2_%S6Yk7rq{BGq%rmr zuu144#N2*76PagqPH{AvwLN8hhh=xQaa@_LQ!*M+Q_Gl_l+A1@Lvdx}Oxb{P+7*0t zptTr$bu1WrKOfp;RXt{P^A&^zhm-dTghp=i%e7b#YXi@;?U^lx%^Z!8$i6y!p$_ds zp_b)65M5&jRAN$gsJ@BKU7N8q^PzFt4dnpcz7J+WX0AsZX=6n&1U151U;t{wcnjFb z#B;Y0h{m`J9L5DUG1Rk~3`%|dy`BBRfnvKGi@o8YH~91XF-yhqOFqw^AM2Qt*A#e& z=Re)=I`<$D5#F2dfP!PeY}nR}98Q<_GekTaSy5-KV_GVn%eIGYEZ}#0 zLXDNV3rG?<1#>3-(?PVcK_=bMB>_J=1|#tx42io63<W?BuJ1TL4pJc5+q2FAVGoz2@)hokRU;V1PKx(NRS{wf-2Mh M01YcGX#iLP0Ac{IbpQYW