From ef84c44d00e882aee75c56ddd077350fc1c6e61c Mon Sep 17 00:00:00 2001 From: educoder_weapp Date: Wed, 11 Mar 2020 13:40:35 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AE=9E=E8=AE=AD=E6=A8=A1?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * A 实训模块 * A 我参与的实训 * A 搜索模块 * A 修改密码模块 * A 消息中心分类 * A 加入课堂对话框增加扫码功能 * U 部分按钮样式更新 * U 我的课堂上拉加载更多 * F 加入课堂后Toast提示不消失 * F 进入app未登录时获取消息通知报错 --- README.md | 29 +--- changelog.txt | 30 ++++ images/wxacode.jpg | Bin 0 -> 75676 bytes .../pages/change_password/change_password.js | 60 +++++++ .../change_password/change_password.json | 4 + .../change_password/change_password.wxml | 17 ++ .../change_password/change_password.wxss | 17 ++ miniprogram/account/pages/login/login.json | 2 +- miniprogram/account/pages/login/login.wxml | 2 +- .../account/pages/register/register.wxml | 4 +- .../pages/reset_password/reset_password.wxml | 6 +- miniprogram/account/pages/test/test.js | 155 ++++++++++++++++++ .../pages/test/test.json} | 0 miniprogram/account/pages/test/test.wxml | 15 ++ miniprogram/account/pages/test/test.wxss | 55 +++++++ miniprogram/app.js | 17 +- miniprogram/app.json | 46 ++++-- miniprogram/app.wxss | 15 +- .../challenge/pages/challenge/challenge.js | 66 -------- .../challenge/pages/challenge/challenge.wxml | 2 - .../challenge/pages/challenge/challenge.wxss | 1 - miniprogram/components/add-tips/add-tips.js | 32 ++-- miniprogram/components/add-tips/add-tips.wxml | 39 ++--- miniprogram/components/add-tips/add-tips.wxss | 34 ++-- .../components/course-item/course-item.js | 1 + .../components/course-item/course-item.json | 4 +- .../components/error-page/error-page.js | 22 ++- .../components/error-page/error-page.wxml | 8 +- .../components/error-page/error-page.wxss | 8 +- .../modal/join-course/join-course.js | 65 +++++++- .../modal/join-course/join-course.wxml | 5 +- .../modal/join-course/join-course.wxss | 13 +- .../components/modal/join-course/scan.png | Bin 0 -> 379 bytes miniprogram/components/nav-bar/nav-bar.js | 37 +++-- miniprogram/components/nav-bar/nav-bar.wxml | 6 +- miniprogram/components/nav-bar/nav-bar.wxss | 34 ++-- .../require-login/require-login.wxml | 2 +- .../components/shixun-item/shixun-item.js | 23 +++ .../components/shixun-item/shixun-item.json | 4 + .../components/shixun-item/shixun-item.wxml | 6 + .../components/shixun-item/shixun-item.wxss | 20 +++ .../components/tiding-item/tiding-item.js | 3 - miniprogram/config.js | 20 +-- miniprogram/course/pages/course/course.js | 37 ++++- .../pages/course_invite/course_invite.js | 4 +- .../pages/course_invite/course_invite.wxml | 2 +- .../pages/course_setting/course_setting.js | 2 +- .../main-question/main-question.wxss | 2 +- .../components/null-question/null-question.js | 2 +- .../shixun-question/shixun-question.js | 6 +- .../shixun-question/shixun-question.wxml | 5 +- .../shixun-question/shixun-question.wxss | 15 +- miniprogram/js/apiConfig.js | 23 ++- miniprogram/js/client.js | 13 ++ miniprogram/js/edu.js | 10 +- miniprogram/js/requests.js | 9 +- miniprogram/pages/main/main.js | 36 ++++ miniprogram/pages/main/main.json | 9 + miniprogram/pages/main/main.wxml | 23 +++ miniprogram/pages/main/main.wxss | 49 ++++++ miniprogram/pages/main/my_course/my_course.js | 105 ++++++++++++ .../pages/main/my_course/my_course.json | 9 + .../pages/main/my_course/my_course.wxml | 19 +++ .../my_course/my_course.wxss} | 10 +- miniprogram/pages/main/my_shixun/my_shixun.js | 41 +++++ .../pages/main/my_shixun/my_shixun.json | 7 + .../pages/main/my_shixun/my_shixun.wxml | 7 + .../pages/main/my_shixun/my_shixun.wxss | 14 ++ miniprogram/pages/my_courses/my_courses.js | 91 ---------- miniprogram/pages/my_courses/my_courses.json | 11 -- miniprogram/pages/my_courses/my_courses.wxml | 21 --- .../pages/{my/my.js => profile/profile.js} | 0 .../{my/my.json => profile/profile.json} | 2 +- .../{my/my.wxml => profile/profile.wxml} | 5 +- .../{my/my.wxss => profile/profile.wxss} | 2 - .../pages/search/search-item/search-item.js | 22 +++ .../pages/search/search-item/search-item.json | 6 + .../pages/search/search-item/search-item.wxml | 14 ++ .../pages/search/search-item/search-item.wxss | 26 +++ miniprogram/pages/search/search.js | 68 ++++++++ miniprogram/pages/search/search.json | 9 + miniprogram/pages/search/search.wxml | 20 +++ miniprogram/pages/search/search.wxss | 43 +++++ miniprogram/pages/tidings/tidings.js | 46 +++++- miniprogram/pages/tidings/tidings.json | 4 +- miniprogram/pages/tidings/tidings.wxml | 10 +- miniprogram/pages/tidings/tidings.wxss | 15 +- .../challenge-item/challenge-item.js | 15 +- .../challenge-item/challenge-item.wxml | 15 +- .../challenge-item/challenge-item.wxss | 19 ++- miniprogram/shixun/pages/shixun/shixun.js | 60 ++++++- miniprogram/shixun/pages/shixun/shixun.json | 10 +- miniprogram/shixun/pages/shixun/shixun.wxml | 50 +++++- miniprogram/shixun/pages/shixun/shixun.wxs | 15 ++ miniprogram/shixun/pages/shixun/shixun.wxss | 78 ++++++++- .../task/components/test_set/test_set.js | 43 +++++ .../task/components/test_set/test_set.json | 4 + .../task/components/test_set/test_set.wxml | 30 ++++ .../task/components/test_set/test_set.wxs | 32 ++++ .../task/components/test_set/test_set.wxss | 64 ++++++++ miniprogram/task/pages/task/task.js | 130 +++++++++++++++ miniprogram/task/pages/task/task.json | 7 + miniprogram/task/pages/task/task.wxml | 39 +++++ miniprogram/task/pages/task/task.wxs | 0 miniprogram/task/pages/task/task.wxss | 61 +++++++ project.config.json | 73 +++++---- 106 files changed, 2049 insertions(+), 499 deletions(-) create mode 100644 changelog.txt create mode 100644 images/wxacode.jpg create mode 100644 miniprogram/account/pages/change_password/change_password.js create mode 100644 miniprogram/account/pages/change_password/change_password.json create mode 100644 miniprogram/account/pages/change_password/change_password.wxml create mode 100644 miniprogram/account/pages/change_password/change_password.wxss create mode 100644 miniprogram/account/pages/test/test.js rename miniprogram/{challenge/pages/challenge/challenge.json => account/pages/test/test.json} (100%) create mode 100644 miniprogram/account/pages/test/test.wxml create mode 100644 miniprogram/account/pages/test/test.wxss delete mode 100644 miniprogram/challenge/pages/challenge/challenge.js delete mode 100644 miniprogram/challenge/pages/challenge/challenge.wxml delete mode 100644 miniprogram/challenge/pages/challenge/challenge.wxss create mode 100644 miniprogram/components/modal/join-course/scan.png create mode 100644 miniprogram/components/shixun-item/shixun-item.js create mode 100644 miniprogram/components/shixun-item/shixun-item.json create mode 100644 miniprogram/components/shixun-item/shixun-item.wxml create mode 100644 miniprogram/components/shixun-item/shixun-item.wxss create mode 100644 miniprogram/pages/main/main.js create mode 100644 miniprogram/pages/main/main.json create mode 100644 miniprogram/pages/main/main.wxml create mode 100644 miniprogram/pages/main/main.wxss create mode 100644 miniprogram/pages/main/my_course/my_course.js create mode 100644 miniprogram/pages/main/my_course/my_course.json create mode 100644 miniprogram/pages/main/my_course/my_course.wxml rename miniprogram/pages/{my_courses/my_courses.wxss => main/my_course/my_course.wxss} (81%) create mode 100644 miniprogram/pages/main/my_shixun/my_shixun.js create mode 100644 miniprogram/pages/main/my_shixun/my_shixun.json create mode 100644 miniprogram/pages/main/my_shixun/my_shixun.wxml create mode 100644 miniprogram/pages/main/my_shixun/my_shixun.wxss delete mode 100644 miniprogram/pages/my_courses/my_courses.js delete mode 100644 miniprogram/pages/my_courses/my_courses.json delete mode 100644 miniprogram/pages/my_courses/my_courses.wxml rename miniprogram/pages/{my/my.js => profile/profile.js} (100%) rename miniprogram/pages/{my/my.json => profile/profile.json} (75%) rename miniprogram/pages/{my/my.wxml => profile/profile.wxml} (81%) rename miniprogram/pages/{my/my.wxss => profile/profile.wxss} (99%) create mode 100644 miniprogram/pages/search/search-item/search-item.js create mode 100644 miniprogram/pages/search/search-item/search-item.json create mode 100644 miniprogram/pages/search/search-item/search-item.wxml create mode 100644 miniprogram/pages/search/search-item/search-item.wxss create mode 100644 miniprogram/pages/search/search.js create mode 100644 miniprogram/pages/search/search.json create mode 100644 miniprogram/pages/search/search.wxml create mode 100644 miniprogram/pages/search/search.wxss create mode 100644 miniprogram/shixun/pages/shixun/shixun.wxs create mode 100644 miniprogram/task/components/test_set/test_set.js create mode 100644 miniprogram/task/components/test_set/test_set.json create mode 100644 miniprogram/task/components/test_set/test_set.wxml create mode 100644 miniprogram/task/components/test_set/test_set.wxs create mode 100644 miniprogram/task/components/test_set/test_set.wxss create mode 100644 miniprogram/task/pages/task/task.js create mode 100644 miniprogram/task/pages/task/task.json create mode 100644 miniprogram/task/pages/task/task.wxml create mode 100644 miniprogram/task/pages/task/task.wxs create mode 100644 miniprogram/task/pages/task/task.wxss diff --git a/README.md b/README.md index f135a8e..1cc3d02 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,10 @@ # 简介 -educoder微信小程序,帮助使用[educoder平台](https://www.educoder.net)的应用,方便在手机上使用。利用educoder网站的API搭建 +educoder微信小程序,帮助使用[educoder平台](https://www.educoder.net)的应用,方便在手机上使用。 ## 源码 -[https://github/jinke18/smart_class](https://github.com/jinke18/smart_class) ## 小程序码 -![小程序码](/images/weapp_code_smart_class.png) +![小程序码](/images/weacode.jpg) # 功能介绍 @@ -38,27 +37,3 @@ educoder微信小程序,帮助使用[educoder平台](https://www.educoder.net) ## 其他 账号的注册、登陆、找回密码、头像更改等 - -# 实现 -## educoder平台接入 -使用HTTP与平台的api接口交互 - -接口列表如下 -- 搜索课堂https://www.educoder.net/api/courses.json - -- 查询用户的课堂https://www.educoder.net/api/users//courses.json - -- 查询学校https://www.educoder.net/api/schools/school_list.json - -- 新建课堂https://www.educoder.net/api/courses.json - -- 加入课堂https://www.educoder.net/api/courses/apply_to_join_course.json - -- 新建试卷https://www.educoder.net/api/courses//exercises/new.json - -- 查询试卷https://www.educoder.net/api/courses//exercises.json - -- 班级文件资源https://www.educoder.net/api/files.json - -# 教室学员在位情况及分数的同步实现 -使用了[leancloud](https://www.leancloud.cn/)提供的javascript开发包实现数据同步功能, 如学员在位情况、分数的同步, 其底部技术为websocket \ No newline at end of file diff --git a/changelog.txt b/changelog.txt new file mode 100644 index 0000000..89db596 --- /dev/null +++ b/changelog.txt @@ -0,0 +1,30 @@ +## v0.12.0 + * A 实训模块 + * A 我参与的实训 + * A 搜索模块 + * A 修改密码模块 + * A 消息中心分类 + * A 加入课堂对话框增加扫码功能 + * U 部分按钮样式更新 + * U 我的课堂上拉加载更多 + * F 加入课堂后Toast提示不消失 + * F 进入app未登录时获取消息通知报错 + +## v0.11.1 + * U error-page多按钮操作 + * U 课堂错误处理界面返回主页操作 + * F 非课程成员进入时弹出弹窗 + * F 试卷填空题答题bug修补 + +## v0.11.0 + * A 课程-普通作业模块 + * A 页面不存在时进入主页 + * A referrerInfo 分析 + * A 主页课堂菜单操作 + * A error-page组件错误处理界面 + * U 加入课堂对话框功能升级 + * U 课堂页面错误处理 + * U 课程邀请界面改进,增加已停用时的图标 + * U 改变小程序码生成接口为getWXACodeUnlimited + * F 试卷题目富文本显示异常 + * D 隐藏发现页入口 \ No newline at end of file diff --git a/images/wxacode.jpg b/images/wxacode.jpg new file mode 100644 index 0000000000000000000000000000000000000000..62e4c35793943a3321523642bb5ab5282154c083 GIT binary patch literal 75676 zcmbrm2{@E(*grf%NKEz+Qz6RMVkz5HLXxHkA*PZT6Z3c?Lu01wODGk^!z5d>OfqBa zlf9DcWW<=kGjko1Zsl zAv?}EIy*wd#2^qc@B^|r1+fQz`kx*DPVzsS0X%#2Ekr?DtVXOxTx>67i-MTAg4kvk z1O~2C@_)?@`M(dbE#eZATcxCBw#kBTpzMHb5fc~RA|Wm*DIo#AI~M#sL_$GQanGR> zTa_+cmD(GweE8nOB59qIwe2cyLmb^B*Zz)^*`}(tQ(Z%EpT5EV17_wHmPe0S*`IQ7 zbUN*P#{Hs)r`IKKpMdLuH-dsuA-5tTZ%1LHW8xDMlaf^jY4E;*!#` z@|P8_-qevP_0)#OrjE|8?w;Ov?>`KWjE;>@e4eB;S#w{%eV_lau*m)SYwb609r&~H zuU%pg@&DYi|7Fvi~!~;{JbG_Me9RmtAzoc5yNA;)yFj;1H3> z;6)nbe?Q`mOFX)JOm|IubWqIUuNf_X$eHM-f2T0Bw&6~25UDNB%=c&Qb`P3CRf1!B zC@;=5M>$oZVq$-HuM{r&d5kYgrycwJ`LBynW{?XG%Ky#y>ox8?fR3Eg%u3E-?7%67 z&n=x+U0iBEh^@5G?XKr7tLLCvtaAG+yVWlSec|1e(EOwvcij4w!Hc`w{>Ot951%a| zQngbzArilZPg?x=4k3jqgk6g<`0D3?SBD+c@6^Jsj28AnV&@$Q<^;|eIB*n-5H^V{^q0SJX-rJANI`I#Yg=DQ;0*Y3 zYMSr71iZSBp#E}wIgNGOnDF(WjkFwZx_soz0(HlXV`?zju$r4~yQc&aKyf(Jw|U<~)9T-+ZT7tS@CNnsRG+R-TF0ZfmInRl7{`}c z-(#DmJO@pF8|Zu6yL>-g*RJbzq1%SAZL zkpCRCY$$LnpCI*S1b2}#T*pu16JRUi=a+Y&B&ar0e4}8(GN}o6>s=J{J z;3}U(LBGh#a^hVTW^F=(Nm)Dm98j-tM*$C3YfxwQM}^10n@~Gf%Z~7ruOB`PV>8#! zUQlM2y?TC@_l<=q6b)ZO2PrV9B}$>Wg-)uowZ zBf2@PMW&Ws0cK^TMD4*AoxB<6D++(E>k&%I1u6r)03er-#J?r%5=r4;Q@6Nkeq_#g zBePo3WhvAGs_X~2bZa=JeC3QzP~V&g5)XNe8t%QZ9;M3bds&)~FbkJ57mx|<%JA9y zGzux15Q-5K#0bko^4Rp*^-jXwyqqFd^G;l-e1Uw?oT=956XE69TP{Q7&lH)JlG+i9 zW-;mVl56O`y!WL}p`k|xqPN#V2vHBCT+`>vs5#Z8pr!|iAV1?dTeo{ZYW-N|q7&G_%lOmbs zGwIWR$U~A5HY%ASA^!3OO=c5vV-o@#Me`(tCHP|tn~*JQ>BLkR^fy8oJ&47CK9t_J z7klg6FivMq%X1~LeuOQ_&ZJcMVgC+wW45#&#ik8+s6U%cL$Pb-RV(?m$0hN2Li>3T zFeHTyv}>6AG_mCptc~BD5_{GrB>9L;p+Rz&=~ipBzdEIvezLW&I(&PR-r(cI4)P@v z2W&p;1PaAp+=ch%zHK`U#Pe+hNX|s2jkWnEB%y5|ZZ~&2v+hcuw=rf7sSMa(^41>y zsZ@U|7<2RM8ye+-nC^``(HAS<5Pzo#AHahL|jK-%jIzrJE9fl^txrt-0$25mR&_=TOz30D;pa>S)P|>DdhSz z@A*8(i)jYapA+5CzkcyzL8D0cw+xC}H=lM73F2+AmUuTqu{idGS+&9%QQ^n9$WX(B zOpUo;xMM7`dS9n2SA*_*;?`e%<(K=6>c>a?rh3g^R4t2b=>NM@KUX&)Qf8tNIEC;Q zmI$x={*a^DqiqHRan^e`HX#|tcs*eLZA^wJz4FUqj9*TgNS*U!rL`;tV^(0XL0|G7 zJ$rjSXSLGh`jsd5EwYqFjhm3IUqnL$3XCnsH^3oUg)drMSpz8=mhpJ~sbH9F+iqZH z<(C^*o>c0>Typ8ZV;_3$kI$;_>p@fc5St>KpI@2sZOr6mVUP=U*z|{Cx19o~JTt;& zKn^?6X(g53V*S#^{12)YS|6bCbJK8?3}TWQt3?;$P~BozZ9RUEpf}hfArn? z?cqPY@TawG#1YPvNZy4L)fEdBZ9~ry6tO+yw>iD{McO#?RsdCDTj?=JRV z;7-d1>om5G2oM1z&5~axH&RVPJNv$oFO>gQ2RHw#K#nWbP6YPR5+V^Q!9K~!zlrye zJ6cd&H)~giFNjE{(1~x_*`_|){Wv8X#SO7?O5WX+BqdoEcN&9LI}U-)oB_F*odfWj zA0z68zX8FF3>Cx03X4P{7~Kc`+f#MJKD;HeNFrH#kk0uFn`tQMRC6~&yKM{LIKg6cf~&gS zCZ9zAj@b!d>{|iCogx5pZqPI$_F5luG@>{8c;Z^`XoS%IoJ&_kOSa6M+N>sNk;>Z! z$g)-^3A|&%LOU_+IufA>^f8k={ggTjb;ouW)Kn!^@61_QbsY&S(8-=ZGjzSl%I;bC zUc>%?0EyD`2QwgcP5;3xXvsvtkS0(Y;pK3m*hm&F4ql7t^0R!4l*eydtYl&ov9AU? zXEeCRn~4VI|AtKA?gJuXm{=aAE|6L&buh+aX@q?QX=?HMSj4gHtaSCH$IX#^$Y9~<**mh?< zaYYSbw{OVQtRYfd;+AhqPtTo{nsKv2)f)+t59N2>(NY!@on(+P%R+7d4-WjA!^FXr z&G@A40tX;~wI^)C(``W65+z%@lE})E4>|C})1%dC1(^+pzS!?|65V5P zPG$l7hw(G8y7xdd7w$uT#Cr^A29*C09dW*X8emTH6_HHq&{7B#7U3nZw>Or~kC^o->?`KlGfQ)p zgosY|H|JfsKI=(3{2O)5mhPyiD77iFb%bejaE0I^7>%s(aGbj^j}QvIi`-$Sf<$}H z?9OL-B?$IZ{jlXm1L~zSkk^%zx*Qw7ylg zYdxAa{(_KtnjxZ?cQ|nRm<74%D{VUVoK47EUZG7x{SJTZcerfud29{((pYb9ILo2d z&x3jKhNq&x%1@E!9|%Oe(XIPpQ{uJfZ<4;Kqpn(ceT!#{@9UV^KV;5tRb7Gzi5}EpQqA|*`TyK(I{ox@V9&QJ)@hJG zNZwa~z=EdHYH4hH&U{C%rA3<_H|s4im9CwvSA34DxEO_39Fr`~i_MeG&+$9y;VW}3 zPUc3QVQ!kP$rAFLHAjb)N#khFWp$9!n^d}I@@oVpKspn-^Z4Mq&>9uNv6@MS-(<6y zrKa2B%*-9br(f$E9Mez%IWyO9q|!d`dE)1-M;SOKWM5gE>%FtzKmi=PWgQk0@H*u(y`OzhnLehd#{tn zDT2Y%A*GPJ(BFQXtW@%V1{Tq&eQ4;0Zw9QpP#u(mhtji5y5axwidf+r?M4Ng19_!o=rW(gcMdllY7ugDJqTLjiqiH!%$<6X`;N z3LM8MNNIr$hm>~n)Ye}ex%k850pwP$3-%2WV4I{sZKm3|&k$9`x zH8wIR+NeqIQ*Km1sEumWgOE3Ux{fSqt>f@E4KM~BC8^`gfhex3tsN{yTbzT*+&dgL zM;m^@jY^6@DwO5lQ7U;jeW|845L=(Sjaw{pMWOLPqrS@L&g~Xl2Mk8}uM^u*$_G0& zx|J_D7P%cQK3=ga`1ygo1|H`@A;?g`g3lIhLO3Ap2KGB85N1nZ8WH_R=A3#E$$7n< z1NZahlkC(4rktL}s!6QpR7btfyZ8>z+jzyhP9;FzNEiKV%)yjzVO`R34aI{CnCr z;cBDA9hqy*DN>RC0o+G(@QzK$;DUQ#Vt!)rxk6Fk8I|sfB02F|^Or9-5flF5r?rEA!{ z6kDRbfeVx^dG^9auWkiVKU^(>p&e4VU7?SKgu0fZ3wLp~bFYT~#jB5L$umtMvn@74 z_wugq$Gn_!GN(TEl$p`Yz6uMO_}LF)vJU8TmZA~D>)f7!R2YnaGPdt1)NUGU5hHLI z9c@yatTX~sk9gkC2{|0;YTu`!d*xp@0vZ_(R4^QVnXP1(K`CN-hUbZN^?h`SlY zYn~)f(c!(L2opj4q@~k#J;zS=`;E1#;Vfay6W>XR$7%_9NP`Siwk4`I9HQL6&4A^ImsPF^aOs700rDbm0A>q zf4|(vnKIB-5VZGRJuDdUw#Xlza8|Y=ypzm3v9k_#l#~g9jk3#JX?@b7Wf{?@B-h_D6 zlAr9T%DOqBIz*v&oMng9NvnJ_C=s6yCNU8rnLse}dIw(SyMk~btxXZP59nnHty#I9 zS($c+8#yzzvr{k$0PUzPpS0>SY7!br+UEa*r|OfKk(FFRPFfK$+}lR4HVx0V9BFKQ z#Euk>pBDoYmH(sRy-{CX8f+CPqSS$Pu13EKX)0LbPI;r~VML7H^zYx_ zx~gj1(Wp@6x&gEM70MTyYqyn5{P{v?_kzz>5@De9NQ0TuZV)C5`Q5{!Ps2ddKs!-h zqy-%Qbg9LjOX@o0V)E4H1WR&64@6#{+Hul+fxwnIUl8%s>`84~TdipD*L;fj1`Pmj z6iFVqgI92>6E`^1>%A4CJ&X0Zx4e;A32llKxLakP`?hj*>}Y5Vn#phIswG>mwYqIW z*6%7xoXxhB;jD_}4}<4l2KblW3}NsGfGOrzYK5vfECnWqb1M6BdtC`3*HGUy7LoG% zUFb91oLR1ytV)6>r{9Q*qS%WJMDIaV3|Y;xxiuSV+5@9x^*W0bmgwJ~NeXG5h~z@; z*IYXqv$r`@hDG6er9|F&XNLW49f7(^8(vE{KDpDx;?r>a2Q!RcGGT3hP9#tJ2bKlG794YX7BW2XsWY3p& z`-4)H3zrdHS*hBRz=>I;GR_sqXJzQL`)}cRKD<=}ly_UP-;syOeg_7{&8NR~9g*Dr zeph%;wyVvslZ3*1qm&FTW0?fHmaQDwuk8F&Aa+OLdzDHgq%0|KjNy66>(lz6G`A zCIfLm74%eTd?$^X+X)2>l9TNAVk>7iA>CQ=1UZ~+2{7jhG*@HSJAD|5YoReC7dY(S z1z8D2ejY|6T|OWP+dZl9HBV`cdv8Re=sw=tL4`3~LAXG+Qw3TGjs`{sKL(eC2Wx7| zxSs}EIrRwXCAG!O(5Y^s9L4#9PPS*`W8*H726yWNoz&3KfMD_;U8lxe_CDC^J{r*! zIOfj76Yj$}=UNf0eFfvHXLveCy4-{}qpu(DtSH&pMH;H%GslL3R=-A$eIGwY#{( zg~r_Kq;ycC)WY6zaPe#zUAe)5rI}?ZE*2lBX3EUxA|G{*YjoG=OTLj!e{Z7Evu`?* zLIX<)z#hxxb*?Wp3=&z-4p(`hE$|b&q41qbfc;XmdO<+EO^C-j4`vS4E1pz%xMmMxz z-SqOr2y0L!L|stz`ne{&z1ZV-uHWPFVc9z`J1owG8cnWL6g^2d2sBENg2Y{XuyZTq zo3qLS#xvY`b2QS46!i;&jh!Mw91XU*EzJd2b^<&`Jf z$VR>N_GP5IOp+q|t@xMPYU^9-A6={)x>+;R7g7JMwC!Hi0K1!Dz@SbDG{bA~V>A%j zGHAh=BqAA>)CR-CK{Yq^D%UAXaD;`BS!}AOFxftLtb-$`XtIcMMrS~k!>h|v&asj? zB^$@zG_+vzz6a~bABR`KB(MXWNQD+nCK3i5@t{uF=*?l|f6N@h%P-9dKqc?h?1Qso|74|KutG7$)+b&7oOajqj@% z`l?Zjc?o?Xd}f-hhaZax&0Cq>e_-FUx4M7FdfwG&PkZgSt^2g6VT0k0zqM|gS@4#uR`}+#t?h%WqjM{J=NM18Oc_LiX zMUqzp`}{bIy_IadlQ7h9BaOAQ#`s%iuztqAq~L<?f3qd*&NRY|W#19hHY*aXvox^p#0pY9ye@$Pu zKlZIDy6DGHG`)u!(VQEh;gRv>VUp*=3+ER9REoA?_yj;xBs0Z73}ns8w;7ugw3pzZ zY|y?c(YIIK#%pe>@>of&<@wmM@mV11q*x?U@yirEU!J%l4z^a=9Eh1kGU4qozyK~# z)8XZex41-ChZG(gook{ZGz90lx4xi=+u9U=tRHmIOUgx~%ir>>P92{5{B(`99k|`$ zYVVeJDEyYDTH`20iYE(3r}htUj!UbWXZ~3-x3?Rk&@Q<;>FYfxQbNz4$rF=(&*OWJ z-56f|PWh#>dmB%|Pwj!_q<|a+^APnDINmfs--&&pYN1U9h~%FP&Qr@Uk9KIwpB+eT z!WVOv{Ai8Q(N1a1&REp1ZP_d=!6`AvVx4?BWNlci6pN9(Hg*12UzImlSD)tPvnpNf4BCcb zHcpLekhg8m*|7Z>{{8@j@ciKJ`|%H=B_edj(?t8>v-fBmAE*|!3nqu}LQ-g%Bpc`F z*c@xP98LmAW~J_Ztge~j zf?$XJZ;S14P)MF_W2jRYaSYB`XqMNEX5Pw(2apU08E86xe@p7kh=E;8^}HrN`QF@P zrzj@h&)tQfmq1*YeJ~`WK$E1+jxi?TZ)c8i=X(+K-tG;4gajcBIY0S(=``XtScaJ{W8OnN{w&H!m?;i5! zlt|7B7-3%Ltgh2@&OOd_BS`JTA zfBtsas}y1lfi9-=a)qTLdC@zD6waMHHAhWz??6Ivx;cHZxcU*~qDE2?;UHKsbX9Vx z-#UMBoZ^zbySDaj*u(huI^7cPuCV(eP_5>iADGM)ZG+AZC}R6~k=%3T6`PO_^$I%5 z?jWZ(l^l(;Wevz*4%y)nUit;OaJcU;QrTkd)O3dR1xjNBr7@?6w`0kiTnnBhxm}nn z0I!gwl<*nOoo@y7b>$J`;pE@8u&$Y%+@wdStzb*RfGRe|J8&4YV%D4*IyV+E;hUcC z=X6f(_TkI)FGrJj^uSDyKLnACDF}SIoN|GZcn48&$WCuYa0y7~UR$@f)8poF$LZFp8Gr(uJtjD9UMesN2N)bC^1z{Uhy7)V($XeAg=f z?7rNxOM>&l!WJjyJ!qdCB6kO} z#Z)I8K;Ons8& zIEvd9sh^>GRAOS}!>bX5H4J2BvvZ^jJ5>NA8WKZ5;%uy!+a;R|+|F*iG)F&v?Olzk zb>I4kjY}D}v&-_NR@Ki1p2og=HeMes_O=TDxyhf;JO)1spB;fE$8;0#(a@WaG^&NO zb}|V|WD@V0rO&4^Z#0bBn3rK6`AzJOyOH4QjM;9dH~6tquIrK0k#eGP$Y9HJSSyX= ziJ7GK!YR4SV*Ha}w?NRY34gnB!LhQX8I|Fyt#_1ITE6Xhyl1Qi+_6@V7kRGXW~pXN zF6ioCbA_{%Z*$&Wr4He|OedGk7xJ#V5ET1Rhr71E{sw_p5&->G zHVK3p-XGyJ8(C0*e9I2K`Z6S^(-DYg?p(=XExl#zhBJa}b8v5Dz zF>^V2{<*f`ITYQD??d}oERt>pJ=kcRHcNz&+X|%8D83c&Ab9%31~N%>D7evi_fYCX zb_6`-_Mvwr-LXvXm9McUuH-=3a`NaO`iGq*iMgVu8|SLa&~(rInqVrgsVuANlJ{bs zXL*24l!Z@b{!8E9sDRj@a3!-_^yw)VWsa-nVHf3;#WSzX#EOs!{$ODyJ_UXSCWRk~ zqSb|!MsoLsmjIvUm@8CnNMC1O1VfHIph91qvu{jYIai;@{*;Was2X3#@1YEp)TUmu zyimpST`3k$1$ucpi9H#u+^@d9N_uzZY}^U$CxUy}b&*^cv7122p>TCvg~buBraT;1 zzst|5w<$T{8>g_svdh-`+^FFA274mj$YkWapCW6YZ|d3Uq^R1eDd(s;f0TRUQp^uV{<+}ia{ zFT1D;%RFpC2A|J|}tkU`$y75)?iJ@w?nz;!P!^;VRhD*|1Ow(X; zHtKT;2j}`SF$zCat)5K37JFLk*@WN$_)N0yZ24jFMrTkXK-7S|D)iYD;maY zj#TX(X|bKdD0~+9a;96GbUl~K1oF?2!SPCE2& z|5H1aplu>L2!3NB0CQZQg_=mh-9j5~P{&)p3w}78>l9E+R!dJUn4^vePH)_FGqZSJ zL;Pmsw$q1o1v=yBO;H}ESPttX`FTh1$A?*sx3pUF(xy(|EN=L##!anJ!Kg;zL(iqe zn^!g=dHU^H_d%q02QhlK++W#~i)4#|M8pq2sBtcr#gGZfqh_4T+3@C89bAghZhYZ- zWWiz+B453h+mwUa?+kXY z{L;;dxI>Y;hmszSE9vardVAa9p1YdpQAk-`j@X zXg=($?s5TL*rG3f9Z9B5QOFs#5S&Yo11TwpBYu}3%Z*0ia^wmUHmi@AMs3bT9uHrrDuR{V^@M{iG*8}#DwHVJr z)o}*Eli7Ybfsc(Pt5T@r{e~-*Fyc-f{x-T6i#!vY?vI*KqsN3aMfN9XA8$$WMdvqs zOfr4F3BfQv6W<~^=b@A3-LyJl7Ny#yW1K!M%3wjESeg@s+BVu^%pyYlgd~@-t8bdH z&)e<|t&oK$KR6fhT@%?KoXnI`Ze;zM7s=Rzt2@O(3Y6S?XO04`uLOS0Kp*!=x4$N_ z-O6uDe89G|}=7?j4D6HQ8U18b&FIa?6=; z9=_RGd6_ZYzGL^HtAbd8E{MOycsneESH|&=XCd#w<;(`|YMXNz$u_%1+QYD}s7;6h zSqtVr&L$^L?BN5k3W%D8Cv!kAB>PKoFiAKa)e3@6-<=BmWHVo5Elf?x z!>_j+ntc!1loq5!OMeOX%X=N^b(tNw{c!2Io!0{|ZFP_T@LED!S}H9PLV&!Yg=~<|7qb=H@~;-5s($wDgH5i8 zlTFfS6Q%;id>(>hxg5`j;$%5$iDs>bO?P0+-?nLhq)or;wkJ0oBz|)}G3JHM6-b8v zpBppKP6QeoaYKu#08%N(pu?an^k}xdP?e13l}iXiTxd1<(i4!fSB# zc^Xr7alZ3Nh-l|n4yq*SsBRmjVT4_HikfpvrL;f(>`=>#L&A1ZJ561%pMPA`3#*Ij z#z=)2R-o*30EgL^CP=pIt?)onaExAAJj?ZfaMZ+H%g}!$QdV>HKnX(pwWPZDUAtJ} z8xSaK{w-83>v1hRXwrBa?7TmfJD++p)I7ghvjfatxb}d{iBUalgb>|LLK)e+P-xh% z*`H?iM7;z{>(ulh-e1|y8-`4{3O0x(l_0R4Lr5=f5K?h_=Cov8xoXLvQsdDyV%{q5 z`v&aLaUH$+P5e49muIPfP*V8iwEN5RuU@msprj>|-ZM)A47}KCFYrTF$X+dXrfO^K zi(tGu@UVoM@SN*MOfh4~_l(p1%bDwZZv~UWW}P25 zw|2c|d_eYeb@51OZ<@gTPW8gzWZTrKwu^~H3MJv2kRtdpm20s&hghEA$gWkA}MzrW} zgoInw%$02OD-MuYCkK^Z^IbH0AMYw)&hoQvC#u4OVew$hZ1Jr`gkr8TX*&fcI6e2O z2lQCYKJ%`lkp?ErwAnp72EvukTR(Pq(DJYn5-a84MQ$e3DD`c%jnvjREpeKa)_u;! zjg%%zLq=fScREWI8x#kMHK1TKmu=zY7`QwCzZzrypUpH9cV+Y;e>?w>s(3E1#7geO zNC^UfTXR{7@EvAPBL^e|_MA2f6RM1Imo$tnM%N!ft=ASGZb*wr3ox!?x=elPRbKej zQ%36#;5`-+!FWgj_CndyWkB=WT%UeQaze|Q86Cio>lk`i09dk|;xK{5# zWTerJCz2I={Jb2-@=uSM%c*r*s+|POr-Pwo)D~>b3~zXYceEI5wtPks528{JD9QiZ ziVF5L{3!?PA5m|K8V>C6@E2%U00>+d1*~RI(K-WPhI~qO@jbtZ@|8+PMBX+$t3A7jK$pbgIFhKc_%`;{na$qo|&6qLh;I8@}Hp@oBYU=OG`Vo zMW!WSP8jTTi$zd4op|cu6arg`Dw#Sv>>Ti7a$y{yn<0L>cR7eJhVNs%4vM?M!7Q(G zRz^A}H2(PusthnZAE3b===+0``}I>=5VtgD5TU#7mDLZ2N*1OE7-ie$6o@Y zyr5iDW^cTmsQ}K+>R3(5Qz53}pmPlQ#X?oCVa4xpjAP8p7lx=klrd zw&VqsE=AqiVp6yRgzzLwpduxb5zd(c`cZ5+3zHD@bTl$6S!3cED=WV3Xmfq=92XI1 z8uY-o^VVU<9NN@|#L~WpB;VuRp5LcUhCF589TyG3XX%VIhKk)jLc0~44C-D==%&J4 z&J>H7)*{83@}JQC)xRERL>4MtOg=lZQhFgO@+!06_u}YUdQ_oHO7*oQTZ{3)q_;kF z5gq3XsBi-2X70ff+sp+<9JOu))c$BAbr=`TjMeF?&&fR?t!9CK<@3e-$yEzrjEzxeE1eK~AgNVoNFYiB^nWU=++f+_-K9F(7@*7s>7cVfqU&$(O;8 z#1NLJII>LIU2`-E3b=R7m~ea3+H^0WH_{fBfLyj3k1mzGCN%XNoJ;DlJz$8bN1NJ? zzVY+B?CaAj?)_(VgAH=VM$mIp02k3VC%(lL?#hUn3uY@=hl?4Vkq0rxz#Pin*>a4P zeka&;ck@V?u1q96nZlQu8#P0%%z2N>Hmm3PrpuIEf#wrtt6&@lMlylpuI2T16S8Bu zZSNP{E}(lhR%5PXuG^V81Qs&8{gv49hv?=k`;x z!DLRg16l>2&4+OiBr!re*Z>lg2x!eRltcV&Mt>8O7VRv!)Xd0GE5_+Yu3D!gHk z|M1(P4`RZLdMxx*8A#g5a(be2X+71a29M|Ly=zVQHj%lZ@c&D}%S2ev1 zuyzFq70%3Nmul?+mzLL*`j)Z45xsHKn(WUAuo>yBeoo|{e4%-z;1glCiBU)Gh9xmL z?npZH;;3K`>2feZ-NvIFcLIp5LT#uPn>=IL!n@0MRN0xbnrwY@#)RgqZCaZ1`4+XltA2gJ{eeto8k zVp506P<0@CdU;asRHj$!uyOH|Qs>80Ew5hH^zFsR6WTTLI{^MH=HEi54?y5r44fYp z1Yl-cow~d>OsZA-+sdC$0s~ze^XU<>O6MufHwr(ko*nv~uZddz$1zmbu|D`paGtK< z3m6)T?BsE7z!SbI&XkL}Yc?H)go>2}8TrvsdP zr&4fggy-qbeGdW>izdD|9Cpf8^zCV&_ahhfBRh}+jRCOIxO86l(#{A!L?4JFh2q3! z2?_M%I5UJQT2*cQ{JbP>PS*ISfe!xnB#ohZh*F%e^+hzfD=SI@&*Cy}6E}0G7s7+G+#hz~d@IWp> z{LhdOq;|94Fp01?>+BOO!d*KVK&cWJ0OkOla7B0`UKij^_0)?rbuPc&3spejp~FFg zk&>f9oRy;a1*)Z0DUXQ0^YW74iJP92FGdYFOn?(yrw*ECn~K01=$yUt%tWw&6%9*<_H}sW{L*x#lz0K6jufEfrkG_8CHoBfo5uNlYT~BE{AaEEp->(?z z-c3{xprT^9-3mE#=ef}I-|zJgbxT(5es4Zr`Z6?A6CK|8Mfc$SS6&+o{70Bfb(;kK z6H?r6JAJzorb#|cPNI; zcBH$wELlH&s*){Ri7Jf?{;YzXetcg;00*SNR(}BBz6q%tU>m*w1u`X=5~aYUU8IxV zEfND;W(kT5peNbruw2loCO1u)nOcfdK4Wu3^TFjq)seBDi`LdDdkX`ib#TbhqWh0~AE8VnHX7m(-&-hH@&Z?#;wy~q-Ci><0K8$WHBDXLcjbaddYY*usp=+ z|_PRp(rL8d-kVqN1-ij8WLwacqf&HwHL{&fpd8R<(<4Hu&1rxx1IXPTeF!Y2auTMUDA>L zw&U0DvG-|MCjTxlS)9L>s$e#KZp}GN7#Qy4 zSW!L#nLcxb^KB(@mauK=Q+B6C5mP9BF}t@*d+&sfqj$u_=(1V=zE6KW@^h$=K=1o0 zB#7h=j37Oq2~7E@nW-O`JEE+uG|u0${XUFyKZ(M~nS!}yP3yj)qxW$+o(Fe6n@Y~` zL{x(L5CJeB;W+``H4FX*z&h8umq@n#o*S+;$SMD9B+|xi7uw2~{!>f@5g++@p zoe(_`ViR(PWv-`%TlHi9+MOcK=@UtVVyeVPAdw#}8XgplY(iiWs|wQsDIk*dt|gXb z3O+e9v*8I$aup)g#%{J)U#(a)nDc#;<#lST1%y<=#( z%7{#Y{_xy{{Ae;wHgh=XFdeUj5Ca^jxDEq?O%%KKmWFRZ(ko~!$jx3o}C&E?fQ+Byzn zL(8)GC-hG_-?bSL$U^`_s@*(l=;eSBBlQ{xwU@R2OhHjpq&R0;DyR4dsC zigW6DhP%onsS2!I-KIM1tT?KrSId`jVs6wKS8Zfwygcy=)l^pSYQg>TWalkqHPt@z zg7!ie>lC?N&Bh9@Skxjxukr#xr1nC#86iNWQ_#q=XRKa6$>%iHTYyM6WZN>X3ibRm_;Pa zs1LQcO}NLFg&r1$=6$oVnvgO+%IPodrX}Y%q7F9&%j)#(n3#;Xa9k3^lK;=pIq>Gq zn%O0HCjKR6)~C*8hF!^c2e0MKS@;T(HRCbBLoOQeS%ra{)MNoin{Te`rD z1yv8pvrJs$PYvu8!2F`lH;jcXQ~EXbgxggxt*z6`lRCS60?v*Ph9-N})}GE@nP+AJ zI{Iu&E`L^^J;#S*(X*mD)}2+TzzZm161E8JfuQo4>9%`wrgA{ihV2oLrcpBCptt5K z^pcB7YfziR0hH-pqHJYE9!1Kos8=r^#{Zvi>Yb>Aep&?yq*x^;7N}RlPCtDNTAN*3ajBs0R1V%9fvEKd&Bi1y-qxu1%ezNSjp zN~eZ#GE`N5@BSE-!#4<4~RYaihJ3b7!d&WPY`L5TiWZ z0Ap0+cH+7owJ-=GihBwESBH<|l>dvhH;;$%fB#2SiV|ZNViJ;Um93CT5|XsMk##Cr z#xy3`rVLYL4^b#$D*HNF#?)9QdnL)9QJB$UH)9!h%*^||`h36VJig~V&hPy3dz?SU zpSSyU->>_6UDxw^KA%@5yzQ=eDHAR}n;jYVV)|~xugZ!!6Y>v*$gD!tUA&|R(%&R` zZ7|KvWz=QNO1-0}r#-E0_mReQld^R4vk=(m+jsInmWqNYAOWJS0`QPSP~23mIg|Mf za<*dc)vWYC(7#hRp!my8QvYY9gsYq7?tX_mFOyHv)ncvF9ZyztaiujT7n+ z=e3YMMDE_H&Ewz&_iV~Sa3-SdYe+KI4%)_+oa%&&o9Pw4eB)xKUN!yLF9=s-cPy12 z;1Hu{U;1V_KNn+A>3n(6M|^Cw_wX7P>`tyMwiQn4eV`4FM{j`VsBXGI);37W*MK;O z{z$zU6a1lCsG;?+zIGrw@Jw@90{4iRXJ7a1-RtI=%N@o16@U8qXC#zsW?bbJ*V%0I z>T7p^kkNZp;@hadNx)02df{5~&&IO8UUV2n`?bUF#1Gn+Ob#DvzaaDnWGOA$w8@uw zpmdE212gNr41}a#zuP#jwrv>uBMSp>cfGkXrztqHRZG;t zE@%GHZ^yTXwoFg3g0tq2hXtGO<&P^159sPT^-nlJw(LTk{Pb&Rl;XE|?1S?@WNK4m-|*bcUIW(wy703?TNOU95eaaYT>yesf~ zx$X{RD^Gk)Yck{5RAcVd&R9J z#hSF}zg<}YaDYv~z9Kkxc!j}8xl&bbga~c$t^co3)qrIcq@`T*o$Y zgeb17SJyi_z@W9!?&T>z?u{LB9=?iAh&1uL5oP0*TSdN7VW#7CD|H_==SYlxn+v;8 z+5GZH0c7K$i?7Q`E`$CR&?Y1S!~-;Qgu0v>kO>HKacAYFPL8c7M$Vd@3^FnU(HhUH z7q6=l7(2eK_U<2_kyubg`^YBj4Rm|TJQ>aG@oLZ8&lc_I7^jiYu0Myq4^k*$CY_}b zrQbX}KYd>D_+}q&wrn4w)lf%~)VEVLtv#-73!a;&Rw~_%bGt6SCy2d1StlVBtFK0s zZWJq1%exUJ{b9s>^|9SvKhuViC5OkH1YT}YGBanYxCM1R%|$KIAz^$6?#CIyqb5f6 zjzjlVGVTMa=ziM!t%=~uH&S8lkmJ100#^eOH+Jrd>Kk%&TmMYY)%x19I{mSZqH2ox zxkA_DUPxW5LyqzLhGQ!WQS`-((&@V$&lOT0SIn$aol1+ppQ)iwpyOWP4jn#i8AR>@&LOD$I5y9W-|;p~7>ecEmCs;wim z^w+`VN(r@5*lNxu=uEeqM_eb2`G}wi_x=@7Y&0#y)uX+F5N%i~eViTBFk7p}d`Sd- zW_*$7b18El@n!LeG7={p9WTZJ>EwUZlLC9TNej&KjcJpB$HlUN zk9lz_c%;=Ox*{i-Re+G?!kMJ4IOCRex&~L>bMF^2cIzx(3EjQ(x>26Wpuy7vtcBGu z@!1J%T^`ddydl>Dt75}U30oq7hS>4$%aGirCvIu7HwvJpQb8r~RB?mvA#LUzK#}s8FT7bI@2x3G1n_;gUT`nC~v&y zE>>JB{)B4J3kdi~$R!!LczdKbXE2p?N1R@xE^FK<8eY^pax~QZ=Z6k~NF!in12*K7 zG(yX9K5XtTP^9d^AFl*y?tzsM-3(vPK>>)X1avmPIui|A0+?8k7E z?jLyh5*PXVLUWYU!^*5odh8y$@WdaGB1YdP-0U3-WBy(!WFlfcPe7$?%PEbPCT9li zA>Lt%48<@{pgS_n#YeOkgJ*(u2Thc_*TVprT*BMDq7l0CZA6T-G4HA%e?2Xgj%T*XNo8U0po?MkC6BUi31 zq15x^l3JE?cmAkL<@YwTlunoS6cHog9)Zxhi%4_u=E%nHXkY&oU<8!2<2d)(i&>L; z+fg+-1#)t+cF7JNLq8K;DuZF7)0}SImsRMn1i{`NM6ca7!q@X=gG37(SK7C%3Z`32 zgA_f@O41p8G5Ks<3L?Q;n%n@r#S2GX z3;Pm)t?P!1&nW}!A|y}inr|s?>Rf+7qZWqByu6dDkUwgvcB!)G({|@D_7HffAecpM z@V~(8BPQaTW$_|!hXKgh^VnV|l@t0b^k%av-fF<{=}vB7)y%pW-IIvh)qrz8)gXH| zLBU^c-c~8LAm#A#1V;IS zoh{Cj(|Y2J8u8pn@Ut6|ZscEC5lVUGS3fK7^sZ0#hKW!qj3usADqnP#B{#3RdCn!W zKT;i9D8*kN;>yT22({_KVB5!_OIB8GFcff0W(6+nODJHR?AP5u%o= zO75VKCj8W%w|swQDsjQ@zx=?mKb2H0evD6a`5y1+c)?Ep$i71*g6TE_TWvccT_T4O zEEiCR|DF#k>tdwFPblb^xlQ@_$SLoF?EGjFhTjir-(-+y4A8{+h}{hblXb{Cm&X4* z8;W@uZx+90gJ^~Sxv9km?`|9I=F$UK>rNo#-t3rQW#Ob8o0|Ib!jsKcfV)rx_S_Ls zJIfJ+h*JlvRu|59_r???3^6k0U%mywaM-VikpJJe`#){W646Ir)ixa3ujw1A;^=6h z{i*$4*$YYAeF8f*Kp@tda)_g`E=+t)Wl}mtX!nR>G!*FpUl*dF0|R}UMfqYz!KU1EK@P? zhnw~Y!nf{0ozo)=MH$2efM)nsRTi4(A9$3Vmq)L=Q22@JIzDEUuhbY5B|4@XM$ zE6&SpUK>~?CT*N2iWn$Mu!CpI_qu+&NP5gjmFmf=yPfS*v{cx5X$EwV2!G4NAF$oH z1+x<@W6oyN0A7v>EzAcKMEPGb*(Yc*jgEnP1IMi3?K#3;evL;ezCBs-VH@TdD9$~L zZ>a8z2ZX=+3PTYkr_O=P{Yw}_B@_O*R)gZEVtmy+NypbhP0omN!R*mD3xk^^=|0o0 z{fE7;1341koW>5L`H+$(R*bl6P!H>I2W|Bah_bRc(~dkiC_d|*Wk;MwBnaf~pLG5e z(5Wo?^RK`c0$=z82vj-$wQOLCC6BH9?`6v^a1>wu_p*0Y@O4=acX$71*||)@ZcDK2 zjl8F+g^ksy-=H7|mtnxhez(d^$VZA^nNgPDRd7`cjKAt}+KOioa;v%KvVNeEF*D?J zjQl1asnMpak)!AL)1b$G!VXsm0MrbCo&V-aVfnk1CYPXtVe@N&fdC6~g&d86>4&Ez z+c(85klDM_-vn5<7&1<1U3B4EYB#Iodi9ZmhgSX8L=SxKwH?&`Iat_mxb@V|q6gb} z+i9qY(eO#i!hKeBJ7F8&3_3N|!53sJbZDJ&r~A_nRH7Sa_$sXNO39o`InM!4YxIdz zgRwi+h6f5bS#q+=T!~GPxVOj>Zh)AQ+MX)T^?+Q$*|1KUL`W|D66XoiVk1k>7By)E?Iw|$NJgw3XCrbg1W zO-EAPN9|b40vC%?bpM`DM@O%eD?SB=cGxije^&3{qUCY?b!~Ls1jO-*4H5n{AqjQy1AXJ>2wzV}efA@B=jCfW^h7#VRbRDnJj5 z)ySS*US34$22@p5siAz|zJ2qTrE5YeOR7v781u zuLBJ_R?aEnWnMl7BHT&!UO?sWAD$f_t>W62xxEyA8aG_`sv_yO5Ny`JT-XE+Vz-Z!fQ13no$72#9;Fwv!8|I|`wdmMm7SN;g!G#MWc6L zXiwZ)5Lotb3-UgZWebON!&-rjPOGTYB&jogl^8=Lp9_6#jVWkfz)toirp*kq45(Sr zSlu6p>ui~iyjQa;EflepvKF(A)9dvg``jXb;4k)@T_kb!p}3bg)k{fd*m>khg3OGk z)KKxIFEe>+g9cig_G0`Cg;%UmrS=%p!^bbg+`Ea{2mjE;l{4jw_^zg`b@{nj_GDA+`lEuuK%Y=8kJhjx21Xa zjs{IRFXXVx+Yo}0!jR8Oho=$S@pn#Gm|iy3Auc#0L#&)hlbJ14OFh?T@cxIf9EBqI z!64Su?aCsy3bXKYgVaJ`*&v{UOYN!216*Z9tz3taRJ&LEk+0C>PGud|8Ygv9M?vJf z&6qn52tPY17e&R^t+y97Z=OjDEBWT>)}`g*=5A60TNMQ#JPO1g1O9IC_n7(aF-W7u zh%>GZy=1zfwR)2fvRLi>Bv*C{Svov9IRUeRGMDK0x#RU^_1MotWv&~4stgqqe(zJx z0Vf-W_mFG6Daijw6#MIS1Vd}IuY2xEy)dCym3wLf^V((1UjGpM_uUD;*hAh!EdLk^Ar=fe!!)@< z$h#E%1-k3-kOJH=MBGriWa)tg@)Bg}(}Zz{(7W|~-@Iug535vP)ADP^-*&wqv^s$N zG{M~)y(tzsL?n;2rH=k9&<+|PG32F$4P4XA^cD_F# z0CQvHz`)c1cC{fX+%hBrjV;+(S^3~7@;E=Ma&cb+C2E%bPagdj5CH#rxR~O10LXPN zHWZ}QQ1fOjN=vpupfrdI0dIo>uM_G_mA0CKkNG-)j0Zqc)YHQQgjOlh&sloFG|=YK z@$pu*sPIjP9Wz_hPB#pN2vUdC(tK-b2UOBrHzqctp>3O{cv)Unq~i3y0y`tO;ZOYK zZKQ7XD=QL(pCU_qh`95kLy%riDf#F<7}DdvurFzW+FThDR^lOzG+{)QApL>q^8ZKM z-+5(V6FlOUPDBlCzPbWU6XV0aP5|>B>D5qbb+a;Turhce)YR_UtST#Yr{?A5M0+NB^i zKQA3-2nB5hf&UdryYBFHjf~xiv-3pM#dV5oGpxmFFhUD`5wWY`P?Ab?2SNPf_h}PU z;>kTj z7T&fPd%{C!(an+V(QX+KU}jx{EPg67Hs%^7ekW@_2JG}9UJW5YG_=2M64^2#j>O$Y z?dN}ivY1JCKtE~BhLV29no4E+lY1ua$zX1=)So;UbCsW-|f=Cx0(uNUG_a(qZRW^`hMA8Umc33YxhoBUqtTW zeYVve&8t?LUL1;#gEg00UNzsn|yB9KVf3n>N&xW(CL8?QEM@&8^*5u&T*wrNvv<#@7K}k*r;V>0Q< zb3_i69Rx0A|Bv4rLPE1tBl~w7AzoQ%fSf}Vn}E7nJT+P5Oqy>h*^hFUpAb>#He3Hk zXnk19qp;sgl&V6`c-{5}nB(5ZehmX8e~_?>L)SL%;NfiNc8A?4^X(9Zg=KcdHilQ? zJqGZBjPGX#Jo_5;DvQcqLuWfbZ$#W(zsQz!Ns_G}tSeWmiQ>2z+Ly>GrY;I`;vgPS zE4xGbQxmC(Jt3tA@Hm24FkyixjvS*mt*sPf8F6GyBA;E8aKWzGU%uE-H?TT)Y}A#x z`0L>M{>%_g;vXr_0xunJx*5ptMgYjkCskr@U0FJsxg)1ISF6LR9$nJS=#}tuC1*Cg z^zS;4PO>0icjOnhX4RjX9j&@q_$J0T;rTHE?iU^i)RTXSwSoC&wWe@TfNmj+ zbdzfR6ec=7;AcU*tJ3tFt!U#VT$bf9c}#Q%)35z#8uP$_c3RQ0^M$l8i@ec(!(`QV z1@9E{i`nc@O1^(+pC^i1|2P~|GDD3im{nFR*P1(i0C-|&2;+W5IVTTBRao>8vakz4 zzb_ccqtLGPI9#BzK?=jO?m~#FY~#73S3oxx@V7yCAEcU-ubRcfu?cr!-2F6} zx@7ZNm>}1ORUkW@r}t%1Ed^0aMY(pMS|(({*|+DpL|O_1mg86 zLW|QXu=%64>B+nMkMB%k^mgh!sF{`}iZ>p=hF|CJ9l~%eWj0Zf2UrCoYO~@qS^B7~ zddl5^R|6g>O5h>I@)BL0U)Zm%pc*(t9NXmYOx`?CXfbWP9Sl$6D`K$kObS0GOwt~D z%8;8HSaOM1kA4%@8UMrh9Lja?va%= z7)wdMgXa4D9;sQ`?ozzjNQnHRAz1vVt%(Q#8)Hp6e#{$WrO4(@LOwrf4CO)Hlx1o} zd%7oa^(OHDuVsvM61M_7M4(jNF|BOQl1tK7A2727{-s~7N@iR$p1=8Mw>v-h@)?FV zg-XFyRr;RJqx%(|4&fgKGBpHbw2f&+OeX6o@LN1pS&I#mN}kSCgm9!PF411GJx?l^ zo6E^lW_$l^+`z^If_|XE&Whf`*-!~#jM>6JzkZ%Xkl?_MH5anj1cq0vxGv&-zA91z zlIq}mzJ|KKsayHVe>mp)P@^$Z$*eK8XpXMaXGD$3F^k`;#u;#Tb-)Jdk>}`~1O`UR ziLI9qf-$vVaiWVo{Wr!b<>MB`Gk2Y`ir=jpQ)6F--)4`|>8?QbI?!tXnmzgYhqux+ z2$M;O*Rb|fP^8UggtKayOYy-GzD&L3NR>Ib1m3a;^1VbI!W%Py(VvNKviHlG5sEAa z6&9jY^)SnX{F7Yf))Rg_ac9-l`q)tZ9l|6N32FU9lrpofjBEkQ!h~0k8ND%BM(WhW z!(h9DG&3*ecas}=dIBid%9#1IUItCfA%=bWjG;nYJmzz*N;pQ>;?|a5NY+Krp4Ege zD1wNE<`q^Et`Wb+U2H<$TN$5IIFM01owee(%)Rr5wF)cuS5{|R@jf{{wqzJ$j-Fxt zj{CV>sS$f@P1MH2;m&R+Vh^Gn7RNsdxlHMa1NLAv?|JFXR&m zD3z2eg^7-r{z;=Ampjs}sGU};s)?Y|SQzu%LL{N(Y~69PdVFs&{t%nDn0}*^Q4${v zZAmiwL-fx35y(}KvqTPIxiWTq;U-oPf0tB&!xTx>?iygnCH7aGb9G2rxcOwJ`Cy9l zfeBl7WxH0)0@r|>8yYAFg;b=`>OfgeWi!qMTrRmht64H zv#1lI0_xIE^^aemv)4X3-93<8=D!~F+6GhCW4_40shrEEh z%sId#;RC8^F$5oCa`vYnuaDUijNXL)ot9oZjxQQaUkf=7Kl&CKNnW5Lxsm{Ku&8*| zUCi%7C>ADHC#bP1GH3O_5bNwEwy|EodJk!>_8=xx;H=BWX973jT$c;^>d3S8P6#XG zXBuOywF(a~=>P<)?Hc`Q1&zFvNQ3w%-i6U^NR&m(iK}lO<;A_=KiTr9$11{`nfld| z^O<$M0m|YaAx4qf)n`i0O1R7!alK2u-q&uI34Bm{F0k`JbMOdg1i*KFBNG!EHJJ#Q zM^V@q+Eq8d=zPO@v1tWzkRo3 z6rm0V?5Mc1DZe?Sf&IKpf9q(U zm;S1vnnB?3Zr=>lxV)I34PAy!Jr!(gZT-`;)6=`sPQvFCka-iViw=+`>>Ws&gj(IO z@o<@6O(TtN%&b9!rC8+dx*hkR)J}R&GS&7LV^L{ef1_z(Q^&KBkg?nuZ>2#AH@EQ# z2aK}&=0rMfl zwi$Z1FsAWTwUttH7V|)+v`wX6@ESG)9GAef!WKzat z2%LIRIs5?-&h+*shffIsid!{)dx3|oUQ{Fu=lW}TP>+0zn0$<2oz_c1*3*(2Re)lAIH?S;$;(_#_O%~!Y$!$WitHV^ zpck~z#3FVe4dqQ+7|ieG<$NN>R8_&3#he z+~+QSOta*9y12N^)Q4t==Atmyiod#9_K>MtH5X@M2=KX!!~Ymh8`OXlQ)Qwix8 z@IOa@XZU3Vadkq;7yw1)I6W&iyi1d-RREM{k;mD%@QGcxt-b9R$IUZ*eP6itV1ajv zFF9)B@>oQOSgJQB48w`X{zU2I3-F&j%QzeBeQAMgDK26pf^jE4t1sWX`}x+ud#EA4 zJwlF#1^7!eCk;xyHbsj^)Hws8vIK4r>8cTj0q3s=vMtorWBQ4DG9`wqH~Gh)QsaDX z@#7mii%=he%xWI>Xs0Vp%sd9k$I=kr7(G!9oA0WK?CYBig^YwIiFV$bWYGt z>$t}}BAxS4WCWxJ$&1DI zzDx5M2kDTl)cwtW1*B(9G71V$Clt6DZ`)AlH;7Pe+we|FdNFf1G$9|A+2=AtJ^$Dn zQ;ecU6zq~zbkkBi#;7M#5(I1*QEJK30%ZanejqOYzi>H~gV^EBuKSVOfpFz_r(Qz# zM;zfDLX>-?45D=0ZR=dgIiYG(AD$Gwz3yapSlAKA`kLAY@>NR*qUbUx?~?@Lk}!BM zeLz7K5#BN43X8{UvFBRMmEH1p5T`sYw@`JB z4u$^p!(p96MKJ;CJ1D4El3B<}Yfda^G~c34<`Z|UiTeBo?<$(BwP}Gn^Lci9CY#ch zDuo(uR&5&aO5=B*n25$Z7$ujs5wv%}&D+l9xJbAgq_qTv2qIBeVM}%#FJ2wZdudFy zjnaI8m(zR%y37p8d@`d1bd9Ma`t!=TN+r(ArG9|SJEG>|wfw7LAV2C1R!1Er zlNR}k#6*McB#2R%$Zv!#gqtVqrY1U(fQ$zzvKr1nm?_vU|Ip?mZkYZ53UpD6-sc#_)6qEeOP9 z5up~zl@4pkUXPCy_E%WUV5aVfxQAN;E&aciDlUv`Wwv3mId@cQ-!%1;F{&5C71L0q zDCc$ILRqcpn*q<=E(lGZ`_dLDUB512Z6L1 zIpg+6yrO>vuIVKMCe4<}9x5Tm>_kX8ZfhIUIm}(@o#5Von{F4M9}|%`-EpViJLcURs!AAmfit6Ly(dvmP^x+s1OHuMe07MKB*vhHtvb)2|QU z;#%psR$|gLikRhwT z%Z80eEO?U}{8sPg)Z3wux$@)K_S<9AMsmh-fvEAjC$IG{yf|vPMO5KlBmqRGAjD*T z(&i5S$Mw7Ldm-^UG(TiYnt!AiUIGGyNZF6+br)*B4 zx3+p_=Z`MFe^ywS^Lm)^$cX;9=lD1Kuse4`46@{$ot=*wjK~@5f9%y>>D6znwO2Jr zxB0Z#@$~VA71$Toc@(b2CXPQ!kTgHo8%B&9ml@P+R>CXyzk1YE8Q0b;>Yw#xhJH^( z`w`%EB~*F-2G+Cfr?u0O9b12CT|uun-9wxLpJ^t%u7foHY%`d<18ORF=Vi6Yj%%j2 zdFo~4+`NeM?Fg(-D0T07zg-)MujVCpVA>>)AZK$6{X-RopB2w;cziRa2b6kaO0Ia0 zy{~Bj-uS!R-P|qrOOp0}d7rMT2^fJwK(C;1>+GYCe8TsY1wF(Am}?g|HEqdm<=s)iL2(kO|Alh{{*vY^N8KDM&n zZHH86)JfQ!m)jQugyhV+f&(aj^*s6)^ZlxTn{DgJ#hN_hOBLy39v#}cyVAvem`Ndt zG%3PlI+1mrn3Ux#$3Mz@(ky5G^7iND@oAHP#$}&>{H=3DS?TS-b(F1IR=S2-`g!!K zhl_`$>JFzZ8Bf3rg`>i%`=X8u?v?1zyoXQ@#zOl>xRRSz!()`83L6ap31QEb?kMi&v(Y!rT8=6yo^A=MS*`9ZRN>ST;udk^5 zuc!KrYN40!nY8PEFJPIGu*h~~jl(g+O9l~0M+zF1pGE;HS!yHxe;v{7c}oZ8B#xxIe2FJPY?Af40&$5;GrM&yyA_^FJ?BJ)f+HrQ4LX8eM7g!jV?C`)Ggq zWb31zaKctYjd=UKePj)x#SMHrMar7sAtZ6}S*`;eoCKELJ4sK_+1SO^G|dRDL4|(D z5uIYLw1*`7b=EwxG%PI6@UIAci~Ue0u+hd*=T$YU^4kD@Ola$+D>5nv0rJ^;H`|iw z0OJ)-4scPE-Rm}Hb_|^>+tZE7Lv=jnxQoh@nT;n-CWX|b@`Fl*A?&1H=Y#;i4=|U_ zmAHY>weq$~NRjCr3z{I3)6UgW&BvBhJH~Uv6u09Hl@9PtEA=l@LY$*E`f>4pED%#O z$WdVA^LsPYKdAyY$JxamF5R7NK#e4^ohP4XWo^;L7#t;*|QmbexbyrR?LbH9&V zL1jlI$25)Sm-%Ncms|T5qc~Z{VY@4TwmT|ibt7&N$0!^Z-W#qd33|-&gNlo|C!<@l zWJ8+|^`{Wa{XF-xeozy?89fidhL~nD(`4ga^A?R7R*ds|4tqqKtef}` zDhAjT8QuUVlmlTwk*OEetO8z(1pY)3lyiyN56Xh*;u(|SKW*Jj;{0)(@UP&f$P;G$7` z@Z0{gbzJ+*kIf+^8v|KMOv9?^0^H^HEWRu-p$f8NJH@=}y+y}o-3=&vZHuZLb^YG$ zy(3?A?j5Jv)#}8kRR$14j)b*KWQQa>Gv160^^VM+1#Pk`=R8 zrgHV>jR?!rwQm#frVQIp5B?m5!fmP>6V+3Uo1PYNc#eNV38@p1&xu^wInF=e&TtSF zsHqPQm?7C-Qx*d^$>7H0^0uXP0#LEoA0@rv-Ia*9t?1s7Q`BAR((rwBhI3?=niiv) zzS#eHe3s61Xu(|Oi*-Xy8p&YnCw5eW@w2$Cr0UgXWO4}vdY8`Qha0N3gx_o;;&oQb zm6Sg(Tya0~77O#Rh>Ja*!KI|1ge`0&E|cyPWdRj=X>z1>DLGOqg$Wbo{=?FUHM^7V z=CQEpk(-qeoa1rHRIBNQ9=#&D+tpoW%egOa1;m6(Ys$-2?|qzgeDW~XNl@JSmc_o* zvjSW-HkP~BVp9Mz<>WN+azeC73Hr$zondfT2rbFUbMHVAgek&RjW{bPeR8-RQa2J1 zZ0cd}Lup`(Rwb)Hw3DDF`_@c^z!wK^TN?!SNL8erO;Wq0y2DmAWOvHLox7_Fj=lzI zrO*!ABg9_{Y2^S!;?xW`tD$Ih0SSft-aIuZsRUZTze3JPopcfUd2SyV4!#W}k*>wYw zU^nL(%lF~Uw)dP!WsvFhIJD4fI^H~GUyE_N>&t!t6(Y$D*sSI%L%#T(1k8f>) zve>#St>cHG+wgKJkeCjOJ$lZ;JO@Bgu65Ot=Pv!ZekI|6@g>^|z!sPgHkaW_uqr9{`7pdG%ePHW z*wtpmlFb+~+x9cErfcC2 zd*Cwg3P7=Z-{qZvDp_$Y&2V;T7Ly=?NA#^BBs_sN(cP5N;%_a?6UdYORy{w5s>%zj zw#O6|$~>%|StxSvxW&>L#2ge_D+Qz_r-ovezoez&Ig|7Gg8xNY0&|u^)+);Wi?jq9 zbWv6+fVAXkd}&v;3{?JC*~1?;24)XjsopL+GL8&?ja%p38`RkevoP80mDtV z@?OQ+dLJQ|Zdcr;j~i{DE~zF?Ig?kAdV6pG0E=mc13(Xj9R1CKDNFGRRza% z*P5%OzG?Fff09QsSLA=r_FjL+Sh`0On;Z@azv3HZw2xW{ruD>E z%@I6d>PqAGR};2-R`vse#e;=w4NZx%-rq_C%luVx^HpvvJGzBEIlP7EJngEJ8fW04 zadJTN^gx}5N%z@m+rsoaPW`QPQ@23vc! z*eSnd)pp$#N}P%^O{mPeJTR~4#i#e_-k|J9R->~`Cs4*E4HWwL*+REt<}g6As|KpE zz0+{1#%+_tc)m;nU^ldRo?rpH9j_Ojmiz6LKBob1!4c_A<#rdfCg)Ro#v#*xMwoJ3 z#oSF>cRUWn(;%F6t3uEEn3=<-8Lr$7vb^h^w=;m)_DI;wdh+ehWHnU3aNP-1FyI>P zkN;?3>tvMk@eb@Ak`ioqZE$B`Nx@<#tk!Iuf->rBnKW7GktH=PZQW?BF!c{f{ zL3aRyobq)In`YExCR*#&o( zu3(?Mg9VL;+csbR2a1Hh2Rdn)TD~Zs_kxE0SAagzfvoGDXS1aktzYpMquW$FfHz=r zIhqc-&v7A@Ql|&Frsnwtv$C${6l}?KR;a6Y;mFrO%$;k2zuPdPpJ2P%-bMBhS^nm^ z#r_*&v`t5T9~&2ap8ST~2u2p-_px}th}hE3sL!a?(#AVX#dy*SN*ez=%J4IhkrZC^ z!0p=@*tEUUgs(j5E!~i6OP&H0G&!*g+SZco*c`{u6NJLfut>4N=#x%kc3o zD^vtCHPPPa-6~JBA{w4&s^$G>n&N z)Y5G{o3E2HCYonl%MKc4SAUhBIM1aM2#P7qV@W_k z=0;EiLm0D$7WSsBtW@BTXIY%49i;~1jpz~(x6ht_Y^(j{^Fr5#4%d+Vgdh>A1i_es zCK2P0QLU#av}y((#G9xekpEiF zbW)oV=>DPJkyjbJr;?F4K7No9CEUN~T7vAcSBdI7_g;K;4~*yoYBS(IBOtKlB)ofK zK_9HwfU5}zZ_dC~$S7^o9L+~S;jG@y?9_YQAhzyEXQr!XaZvd*Wy*epgjZ)gGjJl;|KW5uW-Lx^W@p2Sd!cY)>2ZPD7>96v%FPy z#bzXUGs5Bg+g*2%CjGPWyNu*TWUlU!K=zUr(m^HrF>{$sS4 z4lq9jhnQedSnJ02C$6C}j2=}$o5h$5oHjCXO7j&X7LT@zIb>l_*xj1x=LhB0z6ddw z7Q#Tuv&oAl+<+%Gt3WzT)7}K6l=(i$_;S`6c6~0Zt##NWC5M6W6mI*53ZwsyC-;h> zDA_UPGO?Tqo16=>LDf-rByq(lhiE%#lS~+N0N#O>n$82n#F%m>_;9l`sX8k4&Cp{I zCS1WU?!{ohkElJX-4o(2^_9h=XVssVdwP7>@kCZ$i8ORB(w7P6N^9{&X}l_P75)H7 zM33@&@-!gy6lojY1G>+2fOoxwXdPLR(roO5B{Rno_c_7>2!AE#%});zM<7k$ZD=6}=fw-WHl?XNptDa*QA@IY{D`_@xY?FY4S z+v5fDZ1#THRzh0Q{(rK;KV>Jtf;mYgcLV~k-QCz6u{e+;Fm! z-L4!*s5LP4N$Kl1sN0QUB=1iKx!~p0Jy564HimU#XC)oJAQBwIu=rg-Kv``5L_Q~^7AF`crHVsIo+FEkx>bwh9`rxMx&cex zC{jR`q3O($&zpv4-^blb3vvtIWaQFqT}E>g)b3sH1F4hqh8v-!iLR6Rx83*_k_+-n ztH>VDpUQQDUdo5pvwezvdJZ5`Kh!-4`uxRo3-Z@vWy#o`QgUoaQloAwUXSbMGi~oeR#G2KjE(j$HD)_?_U9P0%W3bx@G`@ zCGGGxdY=?X!i%xKFRbVq+Zt9;s=l7N(PjETmR-`zx{vIMAe;m~Ls{*n4)S1o+k`Z2 z?GMQXibf+AGFDf9&(W^1AZ%cjyTzmP%Cdt|HjOd?FhefyKcf$Y*1m(A&&7LUOqsNW z%dA7Q3+>99EWPMvjTu>cow+W~gfQCKTw&NJcDvI6;||8mxlrfRa$VTvN^-%)J872t zQaA6CRw6;GEuawu5n%#XMvgI@vN9Xk0#5L*4u>6vO%HM~0aa3M4$Ov&<()nW-mmX- z4-a(iI^Q=@_&h=EpKka%xCr+yJ8Yh|xtIS1_!i-}ztBj)d$ZaYRTL&dbSCKCh?Aw$ zLn{=j)ZeLu{UNB(uf{{v>oO&I=vQ@h-oE#H-rs|JTtxmPu|@u?vuz4J4k7ha@JA-3 z4bTqaKLhGg1;5Qi?(Cm`*}9$5$7BuX7Q3SkMj32%(<-UTrF<}Kuj$sJ&HmL#D6scnLbRS+9nD;I(c@kCBM| z`Qcs%YCY!irunRnt_zf-XeC~lJXa676H$T zmUPE#Opu-)o=AxlXQd}<~QW*rJy`-+1HxqkMEBY`=hl&fdf#TQv`L-Btd4S zU({~W#@-N=+1emDgxqZNlr;KjX^_8SRcq?%qL_tRO}V$Fb?#E2Xs&^d?$8&>ws$jZ zI-JXI1xkgrf+mr66I&G*Sx{g3D~_#nih|l>GTZZs9CKXE5nZy}QMY5&{dX+knyLRs z#GV#f9{sZz57sW@BzRGBv9lSn>iKFJA!GM&1nv#Zr`gHWv}+Q~!F< za5O1rIR$avs^DbuXX^dqZufZ3vR!F7wj9``yw~Y!ukm9bISPWlY+jKu;lD14ai(E( ze;wVBH zT1G$j>(*Q4CM1{;>@4}4B;AokeW;@wPRB-$hFzASe!O?UanDZ_fZ$t6P_g;?8l%0O zSd3tyv#OBBP$y9$fa5)HnRvoI$O6dlyhJbYM2E+E`6?ldJdzydaPKh=;CWjG&&YN- z4=czpksyx85Ctf&3TsdSG|_dq=DZt{LH#;naNmFGI%WFs~=!h zpfm)k;}ijG@BIs_iL<@BsQ5obUjDeYazB?})$^Rf)tO17)1VYjFz!MWfxUwFFI~&| zr!L}OcXYvTMijObscz;{h@?phA-|~eM_nx^WERH%a|dLm1YS?|4;&+Pj=Zwu-x#P+ z*O-<*VLbmrF-r)~Xb)%zfv$686@@L)cc)S$eK~EvhCx5ZwL@4kJdsB-Au1hP% zS!~}p#-mXvqVIJ>U{|E}*=*gHYZ%yrl(*=Y1(sgy3r~w~{~UEYmQ1;Xk_rzfYAqu|Qx(}cUeju0+UbyMjn(NP6ENi61m{C!pZk$nk%^m2ME)l52|khF79$}} z!8-Q-)YWCmHL3+Yy}Nx1MHvAv_##0Lk)cvM(iQF}{yiP3J((^vX6sbG#y0lJwQv{f z@Xd8v!B3g)+M%*6ZcORpKU(HD5z3o0Y^hpvUTp?a{NX#h@btP8UZ^8=u zRvrt8+^gbBe!<^nIOk(Vw}*@^zqRxfqJQvYAagNr*O*0$6q#&YN%_=c*c*2I=#Qi@UxTKkEEd@M4(Z|)Lqai2g!@h5MD$HsZT?PS*Sg%# zF-x_u+NbU((M_Ux(=L^krE->kIR%tPOp!AvN;Nj055Ina)r8jqMoPIYBb`$ati^sZ zk{3V6jHXTn-m0=VR9QEWu{t}TW~Ou!KbTz;Q9=$>5xIa%D*~Dy5Ul=3!!Pc@5Z@mb@RV3EWZS?5jg=3~mAEmsgf9tNPZJ z4Y4jhJt{qjd-(dgkFnV#!_S+S#r?qd88AsP)$8=px}`@RsQ2FQ%6|Lg#7VFm}c3T z#maX1QFXk7*AGZMoQ8Hf6u{de29i`ckah5#69=!N;iLSmg4azNTA-dI$j#E_`mz%Xa_R{u zRAnC3I|@<$*C!^|6*T>SLe9ys76^&h1=&>-H}MMM`~VZmC%7(Qxd$X zI^2XP>)RYe);Rb%XUYY>*kJWTH<_Mp=2VqpAM_-74`P4h0yjtH_Yem>=h?~331dbW zr-*IEGI3+Wn3=OvaumL3bvBC5M}G1WNnZ3Xhj-{DQD%GuvzNz`W3X9{K7mN!Q0-z^ zP^=m#ZQGpG+n{GA!nY|&hDiL(xIilm!}yR(JBJPQDXV+T=sKa87okmq+EYd|wnG({ zGaSCvG=yD_3A^0sxNolmU50fZ+uAi#mjVVdft11*1R1m+nUF+7&CYZRi?R*jyV04g zW4fse(JL6`a*JH=XR*YJo+1FB`sS8cx%(Mqq?!+94XqZwJYLuEm!(qXT2*|5}%d54<`8hqEfoqV!(R! z7rl|1&B--7&iw{}1?f&8TNHG69!|5N3&uuMV(yQ(GM>A18c7dr`JjZC8(!a?)=myu zHG|x%UDlF@7g%`cU~Q zCHByfn4@8b;@zW8=G=(yls$PMzALIIBI|S!pae)B=fS=&?83hJ(`^?)L2i|b-Jjel zAJ%1OZoh0@3Rz=6;u${1G&$9gUe^CJRUtgb_#8qPB2=OES8W7;`Sq89SyJ`&?!Ncl zV)LgHNYRVV?o0G`sWQ^@MDKW)3klPPCgr)hm6P>1H4fZ*Z?AkZH21*Oiii6K{R@ZP zM`o@KP1;9E*G1p-QMo_tj(=MmgkHaPf9~kx2)E;ZnRZGf>6>bu+*Kx^a`OJ=FBd(! z=9EP11NXVM7k!D3|D*^oVW>tFoQBF|OSr=UkH>z;C^FwWQxIcEPjRMq7OwL8QDb(? zS;7x`6V9Z#$})-z2w52?qdT8G3A9x4Vvueoz)G&z49=C?RR93w;?BuE`j$iAGV>6m zTicr6Y90k7#4k732bwc-K8~wD>g&f#!h90Koa#-M@o=wTfQTMIfIWpf3n<~ER85qk9;Jq*0F=cMHFQ0N3JHR zLo8AQM0L0R;rZ{3nRuM*XMmdV z3+^5&NGn%%a3btuKju;q;&FrXw_@!o zeNsxSjNQE$8M_xp##jgc8+bJKoiJN!X7($%6=7!!A+;w$8PF<3#yR@mP{|rqxv*I3 zb!Jil37tbhPcJzYB+5>$;ZQ2Rq5=^oEd4G0BQNsJsr{kCN&?ucwLbF$YUL@*8pFdR zQ&F)*0kCOcT|1}_Ih24IU*z8HQ{;7_&)Ka{eU67V*>Ah zJgQf(K#{7N=Ao;{mtrn)Lbsd@WGFoW84T2Gx6{LOjWj}4Nj|rS-0b_ac|Hccx^YP; zS9>Hep=8Jq}d1nLC%CYZ<1gUTKcc8%&ZbDuE$Z3Qf9W#vzC)1 zmQtQQU-7mJ*-iUgg}(YFYJ>|Go_0NssR~=^W(6_f=7XzECIxI==8R-|13H@Q8M(!; zit`-4eEK_#Y}ptdD<5<{*|l%?WMxw%ztgPkD{L>G3UASPgRL%%3D5{9$^r;Djl2-8 z^*JvJsoSB4?0oyt@q1Ro&|11tPtnBHOJ}AgdbGqePIE5)l7~2runmiymi2@RvANzm zm_@%k#fyP{<1-WAO#{ueYo}`B`wkYF+ED{;Ka&Nxj>ipSo|~_P0nhBn2EStLU$tD{ znJP2(VHH*&w^xef8OC;@2x?NdUzY8?p`J)T<(US@SH~SVT19tFGb^5R->W=Hn0#}R z_vY#MY4ftXUPs>54u6XI(Q)~`IqAKD z0|g7{Ma&C9-2Gd$LH!CkC&ccARPIvSw>|_F(-~-Lj9Wwv1-S@ z&1x9kll6Zgo^;@%HhYup#$2UGQx_sDKuka)#VnctlzD4r$yR2adLwH^^pv}uYIi;+ zW!1bE4-F%o%(dHPcaaBZ2ZI7Z8ej=ki&sy!T7d!J#!J2ihNriZj!YRthYOw^&zz zGp^blp+t}eF|8UV2rPX*wld>Y{4HF-(Ds!k9`D$3Qa;6kdPxKNN9u+&Y@iI85nq)RZ3zazP0@oeCG zT~6d~GmR}_rycw9e4mDZjLPh#XTjBZOJ~di3PGa%YF%z2-1$p(PJK0@Cc($2NXbU_ zLRJzr;7F;cGXR3SGJ)+?IPs8?3bzAWGuDoKkrF6Hlmci{W=8`w#Qqy~C6E-e!dMzh zRmcolxTv}%h_$p_mFk+CyArj;RaDIJjSubtJ<&_RLJeQh2g>j>ph`rb-6_gZ1YwYd ztV# z(6zA}0O_+wUhS9I#WiIR>u{?fcPNcBhn={?@EYF2=&gPAKIYrF zZObp?{w^w7;^Doi&T|O22t*JQ;8#ZnPr_xeK0dgKAxa-W>=ZDMn3h;j=M**uQ z=rntpP<{^Vj$gsD1*O@$J6K z1>95b1S^j`La24)UP-sq|@UNHMOStg1Gr&{3c`j+H{OcLl3Ac$p-jV$8BHu5a zwvbKbB7^@xD*&yl(ue?#v+H4*3S3?Gh1&Fh{YM4@EV28Ul&(<<#Yt(161GN#_18jI zSbM!zNh)b+jg#*ZF{v-!NB8r61mAI-INOv8P!dhb)cVR6U7ySw-iC@AWcoSN9YVFC z2hp#VU1;G^s{X=NpNkhEpwG-6@h^WYaB6<|uAt#+`doSbm%QX(d5^3(;$xsHi}P{$ zU4YVee-B-jMFl)ri6%>WCY8543|M$9rV_HV7J)1Q9|j<5%D&-(ff~7>-us*_mq~p` z)%yg(m~yQCQWa0{oM(o1M1gkSMhFWKYFuQVlD$uzd zx|QEy@-c57n;qaUe?b1&)ZExmpDJLfqH^rkZnf{-T?3_cr{ zU4)E{crG>6C1oSVQoHH_6+=JK$9qCEByN_6M^8CimnmMxkcFZNjiHw^u z5@KI@u|~iV1Hx2efKeu|JTsAsdP$T74y=LX?hdRVQ-|7}y03D!7jD~3TaT=95d_H* zTR!_Yr|ukY8r-tFQ0pT1F3;-f#`Mla#aY4XNpamm@DN-7^?XJEjV43bNSu?V1sGWE zHUk7@v=7*@A_jZN{1xgL3(ERl#Lg4^!MEd%F6PzCqKmR4-;zqFy!uTHJAXXM@j8}l zdG=rnq-I)}-Um3nUUX)7i<<_mFUDUcJtx|kmeH8c48Qu+R*vGrIkB`h{N=qI^;ckl z>73+A`^s~R}&YBhJ6e1-XztvS~!N-pCNdDg^%V}(V2BcnTuxkG| zX>0LtS^$3KliC(^VusN$ptW^#_{cDqpSiOpaoei5kkn*1t6!S4>rGQ~AEj}Z%DK-~ zql2pE5gA~m;DD(NtcCBrgCgU`GpT_sK|wxUO48qfCuu zXQn0zG5VEf%j*jD&118Q!L9t{j*7AUV6D7>-M@iB&-LvGY6boi801w^79g)T|DV91 zeX&6sH{bM>{Ko1YY1dt6)pDT9| zM8~xHM1DR?s;=>ySbApn-61(q@f6=&s^oXguv^8mfPG_0oKU3ntt^0@6UK=QmP6wy znISbA5wgUPEi2(0bmGhPg?lOOGg54M91FBt(X4<(rSz9go!W?=cU5 z_P>Bz3IvR|7&?^V+0I`(6P>xwm#_z2Fw|jmv|r6&Pf(e&k1a@9QMTj* zEIh#Joi5+@SSqG!4|ni`Vr7;vS(7VR!wCakU?#zXZl{^Q>2jtaPBhPzZB+i0m$O^; zgT!%fsEBs*`^~2dQTM#&U8P1xpI;IQw`*W&o;hTL?KhFMwiDs~x63#k3-BkNJ%H#V z#QW5&E%OC9RS5e?-V6vIR~D^LZcc6vl;>9akOjs1Oz^|Fqi;GTJBRHbbtPCF_Pi@* zWH;+j*1rodwfRDTyKnVa`#LFQHYJYB&$b*W*NziJ&s-!736pNeBK&(Vn?qQ-jvqX2 z`r(Ty8FnKz1LyRbf&zKn;XhVcmoaiLpQ+r(!}BkopQ$a_y+&s-H-@tYjpQ-v^!1nkm4qAts36+G zd8FWN{jRIg`WH<1LxaxC15;W+k%Q7u4r~bx>Iy@bpiI+AqiM9^Pw1vNGt)51sZo>l zHuvzfxt9$i$DhBZTuAsH-uC&!;keBQw3(L%;pYm#|u0_2_ z;Ke53K`S5iY`be6jEu#=4I`CeSsqAHeglRpQr==;I%j%EwfCWSot>Lup1hy=#9w1vnXFSS=k&9$5M-*{+_^{2iJc#jWb4k>D@A^pAJJKQmPDlK zj#J+HI#{#)`*&U3`}eK{G*5u?U=#<48eZK9?oN$c#j_r=4>Qeo9yQU7;>#xiJrJiK zX;O=8kK5z^%2InzJwkwms7rBuX$FE$Pru0_5jTW(3Yan`&qVLg{YP6>wRIWAhtJV|Ihb zUbPL`M0GiCGKSReend+x>7)S59Xx<61YEol1bn>i;_+c;>(1W}1>`=HmH4ibDE*VW z3$ldU0Ft5GJ_}h@VHt2+scqPrjA#m!Z^^l@V_l4y3B*7zFmTCEe58TmY>e^sfupf< zEP?m3&lL>e&UGUJL9VjstdG^PKYIZ z%Aep=BPDz{=A^-Jg)5K_j`6F1<|ID<@Wl48?72PLdeSl4y$-G1!!%rsk(3W<3m;w^ z`jOToU00_!6RM5$MQfc}^<8o98eKMNXdcQ7+qi(sN_7NCfyNI%YT$}E>pu6}x$n5H z%!xv<=U$erI(4MZt%n4FA@RYaxa0ZJ9Xkeku`iV_@w{#DRyu9)fORGEt?*V#KgNu_ zE{W*(Q8+YK0~cMCHm{oWP8BM4FGGx-t-Ji0myv1MS@WsW#iv{46zSo0!3Sf%_hDo> z1yC>eL|?}m)_{{;a1(x#7TGYu)0e6bW zr<}h}zE|_Toxq2lLH8JkpuohDQ_vY;k zP0lWHoN%2vG+guQ8)+UrUw<;I`u9oJO|kLaFLb=JL`*MzGI*sYy8J&ozW#B5#YF#~ z)0i^9q_9PUxB|wkz~Dg$KJaz$ZorHRz=2FIaB!?*+_igajD%>@;XyR+wlQrw7dPP} zYq<8Z5D_QzQeZK%&|5Y*XFFo?>0z3=MyoWOR8X7qldCka1rtVxTMljY^4%I**Gl&^ z9Vwd~)@pXJ96pjT%DN8XaC4JM8(%g^Aj=0?p_m|(9Z!vyaSYk$Zh?=hFfMRX*seI{ z_N?>@oi;`ef75g|v9$!9*q(YM&R)vlT3kTEB0li(lts>>!#UH0TZq&Pm6h*Du6;Of z-o|qm+iHxx7r?2<-h)OHtFHy0R5&dSM94QCCJn~1)CCPjbw)bbSz2h<9Z@hXE+{+ai2^IoTTHw)f&!OvB ztFJq^*nTrgK=yWWzUqoPaxxwYkIl%k zEt!5a(jXYvMr0TPYkk!U%uKZ_v%6zQBdmPwngHPrQoTCpeu|(NW>EF`gmf~GgVldS z$iux%1b@N{6$h!6j;$~Vr1wxfV~kYML$-hC>1HU6sBdW^7d~%*Xy3nHBX&&QJ=u>c z@EWyGF5bv{xCelxm*7lYhuQVjU4Q!aUxnisG|1|NN=F03wzw|10Q)HAo$qSEj1b#s zM2jOO=lQXcpyHQL@@eQSC@o(k-Rr-kWRLejf6C$5oDp7F=L*cQ9tBUs4?<^i6qG?{ z3x5NVG7@BK)6^4ZpIefpqGvV4mV>1SYL~6d+Us;vrq$lp6jsATy>%NlcPi2z$vR*dx)Jx3KOrG?+#N{6An`wMGX#?n%o30Q1_NyWga4%=`z;Td8|CpY8FZye!pk5GgRTjhEhra;{9Wr#ki}kdHxL^ezyxxiG zJ9=lL$l~IN9YXpkIp56~)b(Ugt5M>o0`3H&PPX1H*+os-A%f}@2VVU|G!Uv!v5d!; zw};%8GWW8dYbS@&J=-ev8|1YMHdfiNLYE(1+RyiX8RNekR$nXbTzzKSlczN&E3W^wQxS4$&$Du>4>xRnIkXgoxiE14YN=Yv!B}DmB5eK>@d{-o11o}HHY_G_$uxvvP zu`E~{jVGJFe=6MG7lsuR2I@>9X2=ae!M^BR{GjUkTEK9XhkaF5YEVIJ*D37t;|;2V zd(Z8KWNGnO|EmHEzRL#6gje~PU1PvZ1NLU7(yT-9ZabOSi48YWtQx``+u364r0RAU z>iolFHnepfV1cy)$x-|PAC;QWN`v>~J<_d}YR@H~%z_l&w6z{JaWHi-`yWmV2jbse zI{ZpV@YK;u_mA+L1A!5IHWstHmb`X1ujc780_}AbJma6Dw9BS%#vLTwq}SLyecWYl zp6Q-mrO0R6eroR?cyuPs20J-K)@6(NF>c~%4lir>*Jehit|gZI%;duyE%(7^90Lwc zgyeabI4N}4w)MyQ;Y^DG&&CA*ge6->ak9Xn>zzl{!GR7qL9;cG>cSNna*Rv+vlF#> zY+Fv2Z`nfhCFUbC=d!@KmQTItpuBNc3L{R{*($y1U3?k1ntOeJS#@60um{4$c&d)lRH}HDg&ntcJ-;w1-RKVW8c!M*3x@(%AFP9Uqhjpd-t+qYwz-B!)zy#CYP3_nytOHhpp0G^&IL%=E~8?86ZHum9-6 zeo^`+s-6E|U07JtS^A#tX_4grPZs9mXQ3U+sX_in7KU&(8Li&?;g2lr=qty(CUN86 z;8g_}AdtG%E_7P~Xp08#Ldi3?Dfl+XJ|+MG3&RX->3bZ9*(OiPIGH8Af@~x-Tq_1^ zudAD4-%t@RvAzB50e-N%uGfxMwK{PP@1>syq5kncRBTbX4#_N8!_i4S+`PP ziLy90T2<_X#HspHQ%OtvC6W?kDCjARgL(EEA#A~ab-BR`G-=T3{?X+k?has-vl0L5 za=U)pw_DWyk>&3DZBV}cvOb1K;mjY*Q{m?ZI=q_zFwa*thg|Ohw#a>ec?Mmzfa@Rg z;W#f14qs*JEB*>32#shLXD{zaM{YJ+`L#QbCQ{_3I0uvUfGE#tiRAj@PSkrfZGrt2 zYU(0qPP@sZ8}HV9>+@Rz)Qf^Y*4`u^iX^c`Bie`;ka(jop0qvWzOW`24{Dn5L6Vy{ zXiez%^Gg@2S}B>Li*-oVaM*}{ejV^I5Ahz|aYx|KPFebxzG9|;gBL&$S$1A?7E00?qNAhhmiW|%VKTVQkDHtuSJo=wrjt$= zp`#~qQu%%FqScQ^p^v*(8EYX_ZPfj0sSiIbzZE(p8V~Pr_!DN!cLB4PSTfKrCqrVVLz`4WDPz(h!v@t&fluyoznqT=?qfWj9=0T-u5ciWrNjK5Q3L zdej9n&9Zjgjp9*ZH-r6HNm5>gks-{J%Bup!+*tQB+Q7>4F^F-0J&xgJjb?jD+Os{BpflUr?nPHyBvL)mg z0XqF`4NeI`Wn$4j@3)&g-Lwg;VZSY-%Gw_)*NI!CWhXEw_oZm<4St8eUVD3SfV<4? z1}U1@ZXb=qOjsMXcDo(63*Fa}N+|ZoTXuso0}7|nW?gy*9k%267*k!5Cvvgmsry4P zmQ_>A6Z#F9Z_O0(b~~`) z>&f!@y-c3kiF+;76Wv$CPb5Pe`zDZTA5_V}m!5AH&eRTMIMWI{o5j1H^>wdD2Wv0` zvzMQwe#Z(02+Fn9={_r}9Oj*?iz#DPd^_BiZ*lnHq_?1F_V~2h6=hMY`}gf%@7Z}% z*<3qZR<d^`8W5>k`g9 z`P*On_dh&fSDSGPxkrP$p&$CXVI)4XeI%+JNReApjbc#bYV192H5HR)x->||5C$e? zrQ@i$)zsjZQiUgS)hdl{4z?e-l~jxP0hV{A2fMazf2`{yhr&5$ znq0^b0rYme-a?20lDsO{nIT5kN%PBPhPS&N9V!n%iaQUki*$oQ{WIi>t@E_=x9|sV z`^2+nsYgV1v0q|a`M~DFW!8>VM0HhaW867 z!iGsJ=hFIw7D?B{(2qI39)rB0KQuq{&W-;4pun7pR^tAReV{R3$_U~#5Tv?kaf~S1 z8?G{~H@Q+cqDG}x!>*~n$(Y<6EZ~!-G*V-Dw{z47K^k16kkHDp^Ic0aI#bTQa~;+| z8A1e8{^P-)8^R+3uoGi|61*O&*B6y+Uc2hq{>;MlKDT$xWQK8P1Xa*P#1D#*6_X85 zj8fz;C>%QE;v063XxGm-M_l=%JVSC`5Zw(QqKV|d){h1z)bR`%RZJlLDu-|c9c_|u zGT|IoUax77C5>HW9;5Gya7NbB5*$n#MffSOVc^NM2lz4lG2e$6>4-9HU^d1HFr&L15G68GY@%*0Oe z!Y0KTvz)(yza2KrAyXXOm>}|w%x6PANe234%Tq@PbYe`cgx6a{h8S%;Lx0L9;AxI- z;6<~-#Sdreht*ffuH8&gP7`=sO~g9vY5)~^6=ba$(BUhSG&hn%NPDI*K@J_eY&M2c zll}}&<`@Hyd_k!FXst?kXn{^$l@mhB`WxdR={wK1W-uH8XEmPPxJhZsd^R0Qb$HWc zLf56}M&a&ORyw`L@Ao{ot(poC!>DAFPT`0Adl1SluA1gUYJZ9KB&E(fB*PW~yUGq+ zF{sRFifZs7<~Hlu#1cV}=F(HRoFUE0pw8R@ZamH^-2n$P#noLrW!o?%B(BFt?iw}n%H`Z2Dpysf?=sRF#84eIl@xChGP+I z_-wi^Y~Y>+YD*wu^!Xhvq%YNepuG0|T*mw=h+K)hm)u*B0>Fq@3)ohr+rXz!x|^Om zTM&tW06|{01-d59YYsn@%PgMl2~1e~)!Oh^`M#b^Q74Zz1G%RGk9L=>8^swcBZI_U zf>)U;t!^Sr6j?)x0ux^JilOD3F(1IGLXVsyq1Cn>fjz&f$?-pB$6KW_~_N`Q>dN zA7&#{Sa-2-SH$;vaLOp8V=s=fRmzvRvUK&tqMu+g6(HBE=rW)kbYYWYYcZnrdz!Qj z8wMHV`q3_pE)hS%&?jP)0Jq;`ue}L27*2DBF^}rJXF1+t;u$5JiXk1S(;nC_tC{eTPriX zM6b9Qu!(VzS@iH$NF?_R6G`EhKRk_wJ2ehb>&J}&r()3911n{A)^)O1hP(C@Cj;m` zk87aJ^O@WOAvs$ zz6hDdvSoAs;W-gapXBynxl5_qSX*s&HMX?`y5U8XC$8ZC;aMxrb=cDUkIO6eof%t- zv9S&VFIQpk(DtabgOo!ZL5;>{j6F%TK>4Axf+hP&7qT->SR9L&F;>h~ImPpeAGf)U z+xSyGUj6uo=ZiJe8_SZ_f^tl>uJRb|#kQh=FD0a!5#m9HA7BR!V=T$NdWTlawE7~P z?bE5o2&C+)x!U>`I)B(+>&EW&hQ~ZShlNfsXFxRqd*f9i20ef>(4|1*cH%-eRhVwm z8|~!z!~*8oHRO-I2IpoL&zKcS-hOy3(3)^g*AJecb%S>mc5}G4lvQr)III!idVR<9 zW7DvN1DA5A6-sg{465P&AIjHY?tbzjI`Pg1e z-q~R|qA*UB=#TSp?MAz4C9uQK;v(5rMR|{p=jT_QwbZv0ep)i4r6VO`_2}e{;LglS zShw(GBlZ4En(b^#cz!d1kgQLXKvywjhS~_bX$7}O*%z4XGr3fP^ z1pxtmkB{#!0tz9Hc><_{LCzFg+;6rASPY@pDRJ`5?3FEzs7y(16|L&gCckp0ydK2i zC(+tpesT{FjLuW!g^j}~0d-D5y<7o|^48Q3@A-~(M@`6)p(`ddzE*fOxH<`Hmv0IS zkhDM+5Bh^nJylqI1_HfBhefE9!^8uNmK;3Zc;7U+<1Sy2=2bZ{(JK27&v^*&5?O@- zFA)LIV0prL*)sH*xL^tPQF;pS5-CAvb^>GL7+5<#<2XG7>={Ns+RtHZGZFdJ$0r{l z)`~?GbUv4O7UCUv?z_^mk8CIB=3=GNN!>I7YQo;xF*Z| z-1-=o8~v-ex#3m5cLyLwB*Ti!bpj{#jLy(>{}4nr&_UeP_e1|f5Ya#G zBj`N(hajS_w1F?UJ}R+`34ZoICI-XF$9kd04bat$#L*@*s-UGQGo1oIh=J0#qvt-> z)0Lx}L<<*5N&~%Ete>er#*pZ38?pf8k4_ssqI z?0#l0LeF26v{{&bt+FfmY1y{6~joQ{KLGlhmM&KTs)9vH=z`Ja@xuDSd}z5m5q~XAhL@SK4)Pzt)-WCTh(c)_r>inrw}=d{k{Zk0qh!V%nAB z8xksF^PMdAikRa%v6Bv5eoYpC@K{~Lx5hlCti}Y3(v_<=vVpn6H1kB{IZrR89N3@M zG0oo*EHgTrZ0DrzOqw(w{&7Ek$ksyX32F$CwQF_31O#|It+(UCAPPoe?2Gi7FgO1( zj3ODh)c61d;&0?b^*0Uo(~7>k8ayex7HHFcxN`C;PGbFVd;_le2H)>&E{RCHlsQRc zTy7W*m{M#R1Z8&r=Fc@;B1O4PMZei?smBt3``YvgnyC_9C(^+B+~>!mbtJ-j*|ONw zv~Ia7?sM)}Vx8xz2}>H?#}&g(Y*V_U33A@?t{RNKaB_XZLfZ}*pD5;p&TS>7_T_jN zCwcu1ca$qSH+_X>z9(+0<%q~78NOG-mkkAjErY*9X(qUFEaOL<%^2HZR)Xn5_ug`) zG8<_H0uUh}5nT=MfkxIO;ZefOddu5ib~;16AG|l$cDWnKBm43r7+JM%*pb3@*)be0!X#4t_Z_ITh{XhBVqa^2jihZ9i7G z{#VAdF0a||&EP30%@>rf_kX6R570ei$rQHMcAE;sXr1K(;*$E=CjFZ~w~hXFJN%`N zs%VM`yWdQ!?ZWRmFl5D>ii!R$NYiAzmj=nez%!YkL=-~y>N3OTz-J1@Y3mVt5~`N=rF3V zt0rVau}KOsvS#WUQ<{Q*ebiOajE>w6-;6GI`(;jd2urm%GNe7ZETB>vEyoch53Vh| zvUC`FFqitBxCQ;M-r?Hst(~TlL?x;lMM_GtlJDQWXm?}3(p#RriBSRAqo8qwts+=v z>=Plg8ZGd!jAL|%_L)$KIQs%+Mhs2u2tL%@FtBET0$Hyy1xeDcDr(D(9C6}T2g}sE z3X8oK4Me?>B@>^Y%6CXr^73%-%ysaC{s7Dmx!>G$Q^Z}Z6H9$wh*M5X|$eB zS+f`nFV*$fr0X9!oJxEk_@LeR3Asj#7xt%}+%71_E2i$xP1sM3b)1rBCqX??6Sj;f zPI;4$^h>PgOsK*c5Po-I9)`EbUK})v&&^v8c}{_ePQBBz+V@q=b#3eUmfxG;H;+6#t}vmyO)#_+FwU2#kuafU4uPhaSqkybU* z2GU6BP>@bq4(pO#Xm=I9Mr)p{EyyolTCg7lCVLb)mb+g8LR#YyCi(5HMH09o&9_%k zDCaSF?)#!F;W+3$+_*Bsh7-|rhH#jZ9xTcXY8|sBb^DZ~zfd5nnGoi?6NBqGX19&_ zvTmeO)N!4&w_FepiR@?N7qf3Z4+jXeeQ<6m!ug7&Q8}PC-aAO|s`l2c8@1L-`1H0@ z_OqXoxtqm3^W2M*8D>{*IK65ok!T4EmVW zrJ5c?TUS?|1sjlDS2|8fMf(dLm_Af6oIJui*W>C;axt)h&3AJj!)yCi=UCUdlW?&u zjY#-mg3|J{+Rm@p{xE*8?J*MUWs~9^g;ro9>E152ZQ9j#vcv0_>$%<{_^tKE=Ee-l z<;`8(n$usFD&ADYX2%bQ+1tz5+wcA3Q3+gK-afkZ4^MQ{adM^t)1|{`KRqKHn3lG= zsSeaagwZMOq|Pcg#Iw=JQs*9zVnk|a*^4{|KDpX*?*RU$ABd1)zXflwz&Jao68!7U zmW9>`jzy?z_w>R#x4FD9DZ@>|iCU(+U-?yx^1f2_LdBVP-zI-=My$R1yf54+?SOD~ z-Y)DtuRXs48CdWQrl6lUgx-fn*syOh%~-lj+pBaE{BzOI9Y*tW92yMYU`i+%1&KPk zeQ~MN&s_$e6;3@sQX5`QVA3K+4@qeZ9=o_V@x=wD%{{{d@LnSO@KdnMb}=hiifle6 z3g{k_ae-vWq2Pf*W)F-GiG6T8L(Sz9O*(8`9*-WOfQ$hk2CaU?+4@B?aOzp{WXUjVmFPDkpOV*Ou(E7Jw7h{H(OB2j| z;+Q8g+2XK2x4MwoUg9f^I0{LDM=2byt7>9a)9-J5IbVxAv}|qmaeO>^MkkRhf5J1_ zP}n%urX(MSOQl+W%y_(O#|$0?Tr@J7$NE}O%#%;ziqOA|rQrLCh-RqehL%R;4lnT--fJfY_ptF7i)7UGAnG@Cf)Nn9H^T-ICM z=|0`Ee(3hjj3Xnq?U{nXGUH1h5YG5FTk~)Fp3JXV28|AFstJ9Sn?l*^*mnDt`*_MW zGqOD;GE+ccDx9g|TMyoVJ)G=Xjfox#z7-{i(W0LyCF4Yy)h&7ef5uz_QG3WuH+e7h zbdM``SmK`6I8Nub=^v?$qCc~p`hQ5}f{!lUaUIxQ(3<2gO zO?q}=6*4OiCx>@KfN2vmX%^`#F1Z#;aW&HaM8$;2Pp3a2xN;MVT9$CAqQw;Zln>|k zof>BQt^jr3iCn2d=(Oadw7loYB|u(9Z1BM*dY!X7%v@I~>k3Zj0WfJ{y@ zPJV0+VU#lYP9FJiif-1XdLUN!QOPFfc}e~lTSA;6U&UKN^wF5$iku6^M!AXXUH$ej z_oixhNXuT<4Zd-0F8m)J+O5prR{^^H50ATP_&+>F1(EP+YzL940{Wdv@@QzWcO2_F zTZ1k*mtMBfTEO({klGpP?HD+EFVZw~p;+B?-~PT!qr`7}7;BvD98L+*2M*eA1>`Zb z|2l;E1vH=*7UDf`5mND;g$NHSm(NGeTt563{`>`rT^oiHJpT`8ZypZi|M!1a5<-$S z+f-VZAe0qeVIzqn3#l&3{&>q2cd|m?CXR<*2!K;b~4r(DZ80soSEfwzx!U- z@A~69?%#1A$K7!x{n0o(&-eLWp0DTY@ihH#Q28mJRj}$t5YqrmgV({Xv35GQ5Yc8C zmN}g~8#JhZ2SssF^>u@TblT{*s{^LzTI!1&UT$tBB)3-6dn2m@)Be0R(qG{D9Z5zb zW`TQyemRK(s%Im9NZIA>kX*VO6RqpHP3*K3Mg6)^g3alY67=<;_grX7)WaG1AD-eL zUE8f7Q|(6x=8R0$56yE42;fYjdm}(2ruMN21|RcfdJpqC)LS^^&)=jT z1o+a1&z9^2Y7 z94U@YZEud$)z&^!jO4#_{=k{HmlMQ!ZT{lyPKA7&sjT||`xZwv%%X=e@pPNQhz-HV zPQ4i0mkC=j?AsOE``ZI(BI3)bk&VMOvekRj;z^GsMR`d>UTQ0IiM&i=tfNP)KRFV= ze*?qgX_|{2vZW(pH)i;k)+!eBp>)zOR+;6;2Ut^z%c z@2n?b7sysqV9U@gSLR=1$EZ?mN%G5vI~XQ0ItVEM@k=nc5k&1ZC6x!+&?isY8z$sU zI89Tg+Y20*L_Li;iixzKQk$1W5>` zS(-K-jI-+3Sw24hd=c2TuvOodY)|RkFNni=DIK_^_7wJgvBZ-ghwvaL$`rgQ^32hN zFpM!OIbqFXxJG5o-(0HeiB$ZC%k@5;k>Q~in9gtHaAz&&J!X0C0S>n_et>RmGNh=? zmc+Ed>iWXfLWFVdEg<5OKbPHL(7pnZ&60%F*j`&H9hg4nOo$EeS|zVa?lTQcnwlD3T^CZ zqqGDZK?s}kpgH&XkdAJ!IxPddT86+cIa6)dx&9|BBbW??I;u7WIU+&KoJlQ>>I*WE4><+u!zJVFo<$e`heOk7O4 zpZ(VNqq#D}ep9Ec{dS`5r& z{_|BHieZS&uE&Q6LW&@t5>o>dk#+l)fwzM?!AI0(tw{Cst*8nw9n~6!v!SZf`;G44 zQ~EtetD4e(EZL_Yv14uhH#kl8H-Xs$KJq5F6H#|86-$sdJb;oxCd|kB6teB;LXtV6 zP+Xz&7njZs$|wQ-9UH2tbQ~qbVzySH;We+T*rC) zpydRplF-%@aQg10->|#JI<{TI-Yjq>W!AEer4@TtPb``mY}b+=Xb>N)teJPF<>xmK zmorrg@2112DgP^6_HRdUQz>ocLthwDfvpb<=jyOE=*pc);Z`4JqnB)Vj`SeT+#MBA zhoP+Gj;MQ^r;YZDPdaLAN$imNAie2$oTtxF2B!!CKYV*B6&{Y?hZCjuv@IIcU25m< zrgtS!T@FoI{4lL>Z8xf}t_z%heDnvFV!YtAW9Nb&kix|6B5*f3g@0Ww&nPodY+Xju zTt*u)QsEHeW*jVvWGM&zY;Tbn(eYZjag-2JLd5W zKU+ZF(*&olcNppn8_Iw}%~s4$hTSs*-@?WH=ud9G!G)#;o(;yt+}^-KSq|*xQ%cV% zAfNg3jzpC8_ma%T$$PSs!03HIu^IB^!DjNIiF4$qXSAeF2~7% zLNwq59lv?mXy*;l^EUtKi`b#E0Y(GPiS;1l1G3tZEza}75&jf^zfS?ixi?s2X1+j2UJ%!uUfhl-UybNX6-s)b9C|R9bv1SeRLIl< z?_W^JXTm$n$W4Ms2-wK%Q>1r}#q?%jiJc8y`9Um0xv3GY7bekQS8>c$}o!H=vk`aR~i^yNkY7Oe2V+>(;9#%m+4t zOyO|lTRQ{q{+d(aZMyn<@+-rsRkr7dVt@qu6u6t+UdY}1sz^7pjOz6jOZLr!j;&2;)V#mRU%)uq>AenTf{g_P{MEb{!T%@> zJHg$1lw}Sj(Q1p273bl!`d#tDU~!X}pG=v6tXtE6J(C}1eo`GLMmL$Np-Z61wQ;H5 z_d!7?*D-|?qMXzCRuYnKUhYQyTjQUYp><^!qZB}vz?&t71CSzh;^XvJGfdQ0^<|xZ zcgQYDRu#Rfi}ij$t)eeodB;0Ywx*-QGHDb%y>OYlh!ZN-=+yS)iEEiXz_y=@kJTN&DGHAP0AbNGnp*&kJS+3cu9#=mx{o zLV`FJbG4zau6fu`e@fPI)az~o$*jjItM}OaY;)+;kDSB4yrkdoSxdIOF6&+ec@7hS ztP}}fFOYQQi=3hT?DXaBh{O2P*5ND2hg@*T*~#lme?_nP-#)@2SNj}|P3N+Le+fV26s|_@cxrns&yH3tX z-;J5gvK|(Y% zMy?uycRWNp%3W7lmFP&PoLC687BjBu{CVXkbF16%2rgIFd$-VBjak!O}av4ni!G=+SxpI3^}Q@I7j1Bw11$ln`9yC_MR6M+@t0WJ6$s# zljD57Ak=Yoh#0%=>oSGg%PGML(q8a<9(6PU6&^mc>;C3n)0?*Z_eOC#zO+VDSNU_9 z4r_L%prA4L>n$l#<#I9?hh66iH-I5XI4sC-15nJj`6otVpETC3C5(^(nfEGuETL3GrXcj%2r8xz598MX_Z$;FZ54 zkGOZokRZ+#6PcfTatV|fxcF9kOXPS40vU@Gu>8$v#^-;HE58q{^c&>;P|(f)veK_? zddWHrVh;Vcl|FH)`^FHl{O*5Q>Fw9lE4;q{wbCmkjN6NK;q0MiI(gRanLiWU^wPO}9e^xb|3XPvKgj6LhF^}FW#ohQ^YBD95_IkjEKP)dnT(O&nGg-%Yt ziXslqgaIOCcevWm>L$)>yeB8XCFayv1790*_c#=yw|DaDZXaw$X9nf_#8J{O`#QFw zkAbe?9TCGr75F0j_yn_(^9qkf2rn6eJ}SeLSS?ytT&~L{_wpWUuvuSo|Js_BNp0OI zDeJ{*jf=`!%E8Rx8HW!UWu71*C$GKlsWUM#u0!XAGzy;nQg+7k`@N?KU`M@Y2`O5##TuD5GQnFwYV8xo)^(2VjR0PV z+j#0-?8^#?u&h!Hbj51!^58wSQqn@EVOHgyPS)T-#C7%6)zw3>pnBs~{`!L4X(mJI zXDws#tQ1NV%r;b4w5e%ms;`W*CcO*0=4GhoN>k0sf0moE{T=in%_Pmx zA11BHv-G)xPkydU(S{fZhhf}7no84A1`mxdf~{G&PK3J{8eSc|G3vSl5$kudhZ+C8T#%J{v}`}bu(=kb}K|M%J)L^x63a6f}G~~ zVm9#!WD);}+F$B`I01o#5m2{$aA)ELcYxX(Vs3q*A;JEg zbMTewIRN1!c8Qq>7jeHdO#fp5E17gws_Lb$clVWnFu=nm&nJ_q*_f-Nhe9pkD-2X- z;>&x9WRIJNU`b@UPXLHt?11fPIkSwfCA52;p1T1ckaHbXt`Jw>%x0XvOsg#rT{oP( zm3ZdufPw!*C(=T7Tz6h3F7M@sgVvNlXujN<=ZY zJEy*PP}rv!s~_X84L11;S_bguCr02RCoCDH9Op#sWwgBc1uvBp;-(&_5I7--Oa-ujnEB-#>D0Nv&u<0RbMUn)Ak-D z-Spb&LnP#eJo-{lY7ja|@Z;gr8Io0>cXCT?GalD5)5k`2Pr5p|PP7Mj1fsPAfJvcF zvut$h^iW5iINee(?_IB~_9NrZ3!V02f6*VjS>RTj!d_zjp+{_WA;WCXnuLRQlz&l} zDad)ZxNX_VQMQc86yb*&{B07|y^oK5qIbvq=%MJDYgq>jPOJF+yQ2aaa}vVluHsuy zq%e-I*TU@=qb(?>DglJPhy%;X* zys3O|(92lU>ealou@zFa%h^5o;W3k#zTa%K+=#a$XT?>D`lOONzn)5yliU-ZFX9zb z`srBebCtnDnY88M{EKN<|6v6%%l~dWL%xDK-9@uJ?3imk!?Gi)R%{#xr(02$a*i8i zP7ADR;7ruUPH)?V`z=SWt*p6axHQ)duWu~owa~dq73CxbeAc5238`DI+RXi_P&YgX zyo0lmk%KORz91raTAP7({QAKJQ-qD{9JO;aNOAhm;vA5v8?G&wtX4g#nj4(_;NKlb z{MF5FjQY!R-0aECBmQ2t%w?+)9rLS8L8~TK!z%d%`>9nOKnuGHD z9MfZ&CduOoC)hmt3=u@Hr^Ok^U!NZacxKDVO{%`1F|m_=j@H{^YDDPk2b~_%;_jTo z=jkdiY>(9#l)~&HP6enKM+z#JpRoUFv7Bz-G<_oHl>bU*#)yKTh{xvz(~7`gDcTH$ z#Vls@F+;J1%vflk#9@ix&Uy^Q1wmNnV?!8W1$pl@nPGvVw=8hGt=si?aY@3A-|hI8MS>{DdI^kK$vWLdXKE4PVWn96>PBTX1q;XR(X>BJwDpuyJPvM9h_62O6=Ft{Isx>m=u_J zYbnSsvFmIDCAVYDUnc;N(GjQ1Yd1$4*Fw%iQPCbT_JuhfTAg+7F@ZT}?bGL#Pp5gf zj5NM_)uMiPvd)W8g5<}~RuXFA?SXIV7?10zN%0MGKGDKaiEISQz4QYAUHqv&06IX5 zcv?-*ALJd2mg+E@?>kk~cxvKY-P+g+kTH3UIN%)PsoD&0-LjKH@N?BX4M8&-4yZGZwkLWempsb*vbMWic^qE*4J&JDuo0!tGq*Obs!D!Rbq&HS4aU?=b$L-tLdg_Uy zE>(`$0`aFHR{%_gyjOUK66f*zGeTT7wC~IH4c4D8wvQF|Gk)Z1 z+-n&k7HGD=g=)7=F@6){Mj6rG720vpI`TZ*=ZMq42{L$3J;A#U~~Ah5P2Dt*%<T+A!fcr=U6D z`cBWD&4TS&R*D&!R)we4P|pB&?!gpybu-3`roDUkB) zRzwBpM+u_U?{)qoW!z=@w7==Bx4J9kXGcRxXJI>h?Uq!4eJv&*?}?!Bwc)GCD_aa- zW;o*=3J36Lt&ZeaZ#6d`x$Wl7GDF*hHNI?GNrJGO@ ztLoqxfBZX5F5BfC9j(Y6X8V>P;#!VlN7QHQ2S9|*i6M(b?qbglrG zYW4{&IZFB)r2yTXJ)TmBc-9H=z?nc;?WA!Yqky=J0FlD@c2Sov%+qHRBZ_dB7`vGs zPcBK8mo7^&Wze6cdeSD$`$_C;a(q~a8(3r%neIyj+weBWk?ih-6|Ml_LadG+hm+1B zsqE>4^$j=QN17J6IJL{P5PZ^Nb(AEIWps<6*%#sbJZCKJ#vCC2ZCU z-j=fqk^=d!P^kJTLAWT}6pEvk%XWpFVYtsGiqy^^mmF8KH=aC@synIvabUx~Ogqa; z^l;4|-MT8A2cTEFC4u{znH1Kd8qzz%-(-@vWaiWILxlH!rb4s3&!ac4|L(ZTI2MK~ zSf<#%JzaWqHSx{v*&?Bph_t7MeBf>Zjj0twzDI_R!^aI_OT|(jKy!)o#VlZs$aScB zKh)$*-I`sdjbB%P?cPAb$Yuh1Uywm<#liD`3eW ze;|k(3WF1c451Yvj%J|odqWO?9i?NFJ{TGdz?DYt(C?K8dK|kq?3WdU_Aax_GyydUO72FPE_MZq?*@gw^r4O=8R(PHu=S_Y+}P%MmsnB9?UK zL;BPo&-_cBjoq)T`!`=Hjx(lDC(C-H%iUaub7stkR%xbkJ&4Rt-#b;0^UbfbCAYYH zg9`r&XC2%FP;e>gH+S&g9S1i!CKsW=g7Pm1kXYpl??ch&+-Uxse*!YK2hD2gB8@us zjNM@HU!QhwAp{-#cZUJtDS3Cu2`*?HR4|aBqp6)~GqEAZaP|zxZ%%#KE#19!y1z|> z%CQ;9X8Sc|u!}9{U8}2D(n!%h{di1QNdANE+P^!zFqAo(9dLGE0V*|E#!|KCZZaYZ zyx6+bqP4q?@8}+3E7|2BN{}P>AR(kD-~PF2ek>69YE&@(rgORhLt1zY{x910z#_01 z;X_whX6$?P@26)-ux@q9uAfFjHL|xT8SRLOtz;v7{sPMbsb$W9#qR!RDMu;BEpqMi z)B|mF)8Rfq|_XCW60>7|*3{0pbf++QU%cofEh@P}XOGpgBwVr5i?YkPwDr z-RPTui?`Z>&dw!b>*h47)qV;M3u1zj%Y>;>Xv&hN$?oroD;FH4!Z$p;)YvSN3>Z*qfUQO z;>#n%xDdM9q^BL3!&M=fx@J$jUx9ijtI^-;vZ<|e= zgY0b`zB~BGQTN19Ij45q_3*BKl~TZpiJol) zmUW5n?GwP)={{sU(BsPx>3TP@w9RQ$E%{h^|Jf=|-!qX%(Cf%CcL(|9xuj>{#v@jQ z=~B$ZLGpcqh!fj{A>S9#bUx<<-J~5ajSVv!Ve?RfLk@nguWFRcy%=UYIy-ppe!;*> zO}WLItXcGt9DJ>*_%YbjlO6wm?g3eZyA!6N&HX>g=Ur|2)RXFt{ttxZUjDV5A|;rDg~p^ajFM^uzsv@AM#t{ko&hM{INt z`*AK=n05Fy0rQvCtSoUgCw9jlDdt{~L$E%M2V8_400-SdS{{IUs8Q`MV(p++{!n&B zS!B6%`r5krkaxCX%Fn9O?w|qN>oK)nkx*h`nnRBX$0f(37?1Sunz} zo-E7EqsKd3P)`hVX$QkpJF`#~5@vg1S9KQ2z@YGTG8O1oC_ZjJrY1J48$Ktj)Phi9syRu9wqC~nL=x;wGm zsGrSC6WPT^(CdNKv;v*kQb}`~kPUWoYzb>`h%9tNy&Yea)IH5KURqz3+R`1EY~OX^ zK{d$V?dPN7KOg`ChAG0y!J}NHn5py^PVqs7Q+UjRM-J0XH(zX zc%g?2>6B5TLXy6bVFJ2zsqV)3mO@tuGE3MYramAc|~fv@RUsdhsJ zs5Fp>)$eNIc~5>%m+F||kJB9^N!Qqfdo~!&C%%!Zl^G2yYOX2o?8^52-XlCx27LGF zi9>(>km=X@prduIMCh2^GXSMuj|w@?Ky<*Q*k;4p375JJ^%*y1{1bYA-9PDiDR)uE zIIY0=(BMW8PtnZRcRl`i|8pagL*{;VpCjQzCC7J^$V8^*FMSevQjk@+bYr4VzPG_s z^6^#-?-z|KBcHvK-A6hNEJ_%kpWQXFaldu`2uB=%u|7!iJmouo?r-=M6u{jp%(5+9 zNoMIUPwNaGt;NSEsMI5Qaqy~FPG5>?309*&P&gA`l!27bBx+i8u$<^W?p9x&WkDWZ z-N1{?m_BG&u_iLqi#;6^tBYoqfg^mawA8b%&N02X#M91t#`A1?Zm>ayUES7Jot2qy zASfHE)k)de9r$#vp2U3THp*<#?07 zim_go#*K-IK3NNUi@OvoPJ&NX&+^6FSk>9S*1ju{5uMmMBWtJ#SyJ)O%FO@W5rcCn zX)UnN_1^EKIKNgS*lpt`kxuYTb(y*%o-BS%)Zue67c3C&Fi3d|kVmcCMx{J14zTSQ z`(&@IfsLkA$7p(;uI9Ab?KMPYI^7iW2Gwu48MngHP&ibu^yA(^7_hL=FJbr>pLDPC zF<_l`|CoS!QMe(jRWkk8iTXPHeorsn;mS3>2RXJmMe+|nm(A{%4r6w+CFkZc5<_4( z9ms>;*Cx}s7Ey>ZCo|-x)f;En}dRnDg$ESgP37 zr0p%fTfe@fM*6(Eo!Hhb8y#WVE+BBcXWUrgO=M_c-$CQ-tM6kBpNu{)9yCi`Rl&PL z`p+MZ?Z%>BVcT=u|M}`Gqq98lx#(ts9>-SP$L|qEvz=xCRb2B-Syx`#0}rL8>uqg@ zpU;jYAcvd?lnJJFM1t=~Zsb%cyV;T?SF+xH!(2rz$Sb9;b24;=({DB6~oZ+jA zEQydlLJc9@n_Sm)?kxqI$n2d5mRj~4s^@#4Zu2YkxAh?RM?$wtRKEJ zRN)tNa9-_pbyF;+R{bB0hBD9(_8Yw1JY}et+j$21?$8C27B!dhj=$Hljdz!}@YK0& ztG+DVlU}3CCoo==w+<_s#mK!2QSo>;>k6Nptg;tkp2@T~G4|JdUOb#1RqA5hY1Lu< z!{X+m<@nsgp$Jb_#Ci%S7 zo^t(IHy!$GM);{^#_^ORrq>8daIOHHg`5c)An(=)QNXU>OuY^Qp|74(zBKGFyPOQ> z?R6fPb~VET44p4kdDhcQqet4-L8YYL4ezhL9g<31J{#YV5gU)D+p(qaZQD9^@h$vN z3qLi^X_zGMYfQdti+D=he8I_26Ijpj!mz z8peZ9R0aCuY}6#MpY4#gohAM!hq6XDPo|a&=uKp|>D(zR`N-~z((G%+%U9wM5uFy! z`U$-!>rbD~c1*m%{n9(K_mBS*;41Y075lzHM?S>P_9lu}Y}5s02H?a8h$j3+*ut6r zVq=K^HzVVJ{@e+H{W;(9HN17Xc@1(Qvw4O-ZWK=TF-viXA!on z7b_TR$-K>Z&Bm~_aZV#r?JWYFJa0CFFQTU0sIwv)G^fQq5u94wc1f>PTNif>E{r8j zERv#{-?z1v+TUmXlAfzizr2H6O`Zi3aV@fA=9?K)nbFss6mBR{$$%%RZ>|erO-vd_ zy^aoR!vqkq@S`NWNy=+kK$ zZyqLhpW}2^yu^5C=nk0(nW|59XZaj4l4**#aefCo6Kt9y*oVPg1m%cU)eu7@`f;tb zD^}MQLea>=Q!X#lHaL%9(F(AE@X@4Q`oRUuW~2V+bPk+X|1MRgeD}JNd;~2LS8)`JW;R9sa+1qL4pmKf51~UXQBD#RMpffn((M@5!!pf#JznNI1Xjx%;-%SRN-g)Fw;F|?^r9lIwI!%2z z+gt}b;a$9|odrZFJ`sE?culA;Lk^HvlIfP67yIUBy37xgsb@#DgZ|M$M3VQe&uKdU zxId{A6>SiBFvD!lQOugN8FST#r-1@mUsAO{7;jQM2v>lwMULbpwn*I4c^ooG(af5dcD z{kX6lZpsb6S`u3Xf^**70B%kjX&ajzz|;wT?R=`~3J25!kPpSu0BuM?bXlrKVgvk{ zp&T}3?Bc+zs>lR9FJ8MLv98p7_x1egnhMWTQ=XLOb>I@Y-uOPtGjeas2uL^~1c5dT zH;Pda0N@jjvS;p9CNi0nfpv}3)tsCG<&@L!v+h*?xgM43S?%>f={{hY0ru%1Ao{hU z*#0yE418mWM`xRKrjJSLK9TAGp7#@Nv$e}eVd#?a;D$O+kC4P=y9TekvoDTESLyuz ze90gQ%xq{t7?t{9MhJz`%|#;5R+JZ-7lIn1M~s03BkX4E50%69Xkkz0Il;C*C5-PG z0Yn7*Tt4!=t^TPy&B)Wk=0D8fqXd!^`#=rYz*aFz`B)Wsna3|?X_YPRIFDz$w z-MLk~|H^F1mDnq1h`;`H_xDG)5AMZ8T45 zw{NT;H>em`8Zrv>Rf!G2UFns}k3Gr9;(27i*&r>_Tdj`c=_u-PWt$c)UQ$Dzd%dAojv!y zvH!^M%Ie)K?fJbO*Q!2zu$1Pz0WfiU1z8dR;dsCw6OPz}Kp`Rs`?*T@SFy+Fg;DHF z;@b(o76(WT;S|BE|4^V5LFqxe2EzIG!*?Rj+$aNmn;~-`1I}t!YSfa!~j7hRa}2<4y4g z4TW%U&g&LgfH0NnLhiZGMF7;l?3EQjr3ikcqEy+EC>V`VcNY=*XOc2C?&{PU=nlrB z)Z>inM(3IaK0Yh`nKTaL3e2+(bKA{mF^GGFa7WD3P0NEo?}10(8}aWGg_3T*t9u_* zdhUohy2CLsKX_lVyH-ZsPMV*gY`$cNd-;onzb7OI2_kVYM`^k)gShMOo z4b0}?kuYI@vM7Wx%h}UVB}2NSYG!U`Rb!H9maS@(vVfM!Zt^DTB*ZiJobS54y;QAJ zE@i?vmQ(`pk7r#875C5nAOz+upFLgfvFA$%H z*7vgLQrqXn9sYdVr`cbKdua#C1{zPKCN}OIGs;G+OnePZ{Q;jbc#d70sT{; zZ`GP*gw59xSv5OnJ!jI9v=X;o6&%+`=Oo2$n(Ma{778eX_D$t``YfV2C#LnsezAKv zTS*29zw?8}05=E&UBsgZ6p=RczFgtjXN+8$cQ&x`qD|(Pq+~7|o*G3|64x{_C^<64 z(b{22)a8PgaLsoqO&7}R+RPK1$Zv3_JFLcXRfI~2+D^_y@T30er4i*Uc}`t5(97%H zk@;0ciudU7+RvJy@Yq(GQ^w0jcUrlZi^DsA=uJJ4KjS;+6PV_CLie%%675*tM1ZGe z>Z9lRkKbkmR3kn%{IT%raQ2G(MBiwx_094*ro~@eZv|F2HkDYlrh>1TY{Klp5i!^?3|(Yy5xnP*Z=rT*OGkjVf&d5BY`LBb0zJL)8er`!9>*WZ(-m1Aqzs0hd-vMOev^PU95*~ltQ zZy^7w&&}a{?N|91F1q%Kd@guidXt%^{^W5$ET^XfE@W_uJ`rAetNI$CUT0!sqTBk* zL)&kAc8TA%^*@xaH+%c4nMlT?6U8^X?69%yy4TN%{J}t~+YO|tlp014w*x7JU;Jqe z%FPK+blFlwj>pPR?$4xucWl7-*}VcQI6s)01krODME0Q;X*RjmA2iKe-M~O_BY2-R70ipS@Od$AwM|USZ`u z_T<_j?(_kURtNH1*FNgB=erv@V(s_5{iYrpDTMd(+Z7e_PW&$B@ab@-T+ zOhN9!9a43f>njml_d1KTd3slH8%{6XM1lS--b3{LXn5{%Q)7bmy!6F12ZWpP^WtB> zhr>Nw?Or*~E7JrX~zh0~{^#+gVI@vQ=k@=GIdj7A(vx3C(P;26+#elQaW9w{l+a!t7 zRles88XebfHE3bhsxW)??AT9>q*70rJwy<3WZpfl<055MIYR0oo)F;n7NP2HxH>oo zN@<#V>8AP$Sq0kd@7bO8*i1aRTIFl$>Bj+266Pxig_Ow|(%Y3!o4@|tJW7; zM^-qJHw*_hy%5Mj?dAZ}_bk`6a@6SA+L!+GmV6XHjxj~GM>Xllk2Bu4f0q{|TArXu z7bZRa0){fR_j1Y7?#*26O82U=v`LW66ByUtwa(aG9Oqj;HMQijz9;U@Sa z`b4e;eWF$DszYw1(qSo2GLhQ%N#uSCK`n3?^SRLdOYY+-VvtLnci}e2XvDAh?2=~L zV(Vx;{A0;`;{7*|XHH}fdr#CSsT+N!dIH3a8Tf)|vm zqNfnemNDe2nUyg{!J7Of+RqR0F!F&-!9byROA5M>FBNfMCNEM;k_rwTc6OJeKV4|B z+Lf~7pw4F;f)kB*BStvpR{*dq(*+Woo$~%HJxdxT!6HJ0D@Ru6VzJ(Czc#f84JWHi zd@#EgbqPP!Doqakb1LjStZf~52f6%FEVGbl{C?7U5}CvXNjv^@h4qfd+!GAt=%!%F zw`5Vn)7o{Pik2QL$XAWH=wMfB-mTPewMSC)Plx_+%gr`kby@-CKg4P|%Z3e_rb699 zx}Vf_9Mor9Hv(O|huT)_O8T5|ka?Jtp&@pfU`zwGvrx~Jy~Qgav6AC^6Am2W0# zei!<8M=p#lYQ`0K0|vrwCMT2Hz^I7;tWjjw8NYQgoZZNgFMZTyO@XX-^1d>U6zRKW zNa2aePa2gqI~p1C({HCAFw-gcv_IegzWWlmePTE(h==iHhFQ$1X;P$eWIGH+s^P#~ z>D*B9k`}~K?idSspoN|347--Tb(z#Ouo8n5MimDYIk)1ml=9DuTMh2f_~pU>3Xtw= z=k61NoLHD;pnKm)z}Q>v#km7&gbQ#9pQ~G81i^Din z0T(}3>RYB}E?EprZ7%PfY)STH5*$(vNoF)&0ORi7IT$lB)jD;~IGdi)E;)V1#qZ1X zp-_f;7R#`&6Cqxz9a2{#AH28 z)$86t=`%_myNCX>+xyRs?>C;i_YZiQeE3!^`~wc!eE7{EF>5v>dgH!^2TRk=@_?BK zb-DET=&GYK;d<5Z+JiSn)_N)ar=eHI?d);#Z4tr679CCv`EH-UvgV|DK3LgFmaVJ0 z*AoYAL#gG;j31H8zY2`*#kB3heJH%o+W=~3=D?J5ylFC@VnbP7TxHUb_o@NH?e+LV2Bow% zdd#jEU$m6bbIWRaVx@MOISyO-0GkZPZL*vow`&aI3XydMvUEtKxu|v^cD1N3+A$nI z_d9>`3YhhJq<28zhC^=hv$j*khjMo6Y^dKPSI6C`Y#v(E`i^vTcId71UO%xU6?)Cv z)_LV|*Sve5jpC7~h;IE4PewqWRFm&)pC~HhNVoNW8Y1<}QCo@0XUAt29Xqo(^LtFr zHtkbiJCtZ^n*8=w#9iBqAO77@sT@V@Dt>+c3COBn@dPE=5RF;v_s9iThYJri4r5JY zXfI5E7&F9V6?a9UB)CD-x?r*dItT_2d1gC(P&i0W4=ZL14zq)Uee>B~4UDA7)r~An zRKVFeGle&$3vJtQQ6rj@*8z92`;Qy+vl2`d^!0jQql?J>)~z{G@8~9BY?aw&m3(0O zQIP3xf)|k1?!GM37S;7?qQx~_pJ5IUu2HeIJ zAW{94Mc?rka<1LX2JW)z95Egbd||*577C^2<6NOW)@hs?6va?9L2HS`vM*2<3WqTn z772HTsAK8Mkz*bI*mor#EtBE2~Ae19; z7Z?bt-7`S6f}R-N<$fA5Fr!Wg+injkJsLb(HR=3uG)_~jy!4{-&F5#6{7abW>9vyS zfUDZ?Fz(>gj`Hw83q5Am*47S`fiRW+%f;gRFYHyi-Y!%2m#g~b=FU4$_fkEeH}ui5 zE=LxlY^xY?Ul>8}!`C*uQnytoZG(?~kw81(8HoFNq0)NHxQgd2V zeM6Xi?U>)X^z_n`)0MXk%I+qPyk_w-pNr-Ue=~h>__z8?vmN-dc?r5QTTGVOQq6gf zxC7cPU$fA9d$qf)>p#q79X!9P9M3$O}&@NR)pvDj%xpR_Y{e24GP$ zemmKCe5;$`{$BbFvvbVA1ta9MfIkQ}y8rHw|0d1De`}k7l8Bt>$ zQWs>fOel6L-Tht=8si1ViZuF(4xyVELs6gTRH!axpLN(Eo-Ap4hobbp96l6YE2t%y zg>uw68hf!fbbs>p1Q=pQoKzsGd&0-3Y0ItKNM=%JQh0!Fi#A=JwBO7ymx%i1*ew;` zBzosvr>{QX5nUry4{JB-2R$ZOgQbde=P`jCw@8*v-ZV0{ z%b@F3uI#jQT)RB~2J`uek>WE$ma}P+D+S41JY$rHdl;T1y-&4+>Y)Ma)r#?v*!z5z z;^)hE)?xL88Fl+Bk3?*TZ3KT~iO$JKB#HY+IbgDE^#uhLRtJ8cp&0h(dD5^BY!4Rh zIHt~a!nn&-ci#3bzi>CxxH?GaLQ~^?^YW=E$}8SjvyF=%uAu)!6W5%Wj{sR=SI9TR zorx}jHvJX;>X$5?EG5}G3|0GEtI4I{E_AACoPGtS2Tr1U7k2;UQ(q zl^eb^FGY<75NT1l|KcMe}DAP^DIDdp)iTL z(cqLH@Adk-tzR#l7%V<+GHw-d^n_OK-o`f3AGua19~R{Yx|*A8AVqPagxLBO?0VRl zQswf{uXIQ^Ch=6kv3zNR(+cU5Iw$?#`T3atzL7724kucKFWMzocxGh9BTj(rWCTHg zeY?OJcMGa3K?T?ek^1luUQ^TY7HOIsBG`PH>I>Vy}iKOHBIe$hNgQ-=|LT( zh$N9${s6y=0g7!>f(>XN-98sK0ix4pBCXnl?XG9?CykSOl`mF`mX~=`C4QzK_oCXO z@^O1~*q+=W0!cXzftrbTJponIzBu)kJ4b5=E9l9XdGVdERP3}y$m9=6@pQZMe32V;a!p;1`IfbM;3I3MEzm-bFxP} zlG)9ujV!!Kca8CKwkvO7d9Fu&)ZAHaF?lu~U*$g2MvQ16uS(2$!B;}GprJwsN9?ib zB>}gV0j}63ZO614#_v0!SIE@cOO+1GZKBLZC&Ipk5MVM{ORG_B#BvM69(lf;#y@-g zdOotABXPS;J#OLuKK%UO{w|bqg_ba%HhBE4 zF$iULzcQBqIAM+Zi=zK>kxO2uoR|1hM+LwTK+*Z@qJzERWa9K$SFvU{q5Qy#ZmRj| z>FFL9BfhkQ97s?YpIH9^w9eBf*&Y`28ZAId3ydL~SnIk+>N8#UYyK;JrHzFXoQMD7{K~ zgc{!QNhwkKd#0T|Ek?og?&H15U9k>R-~N%faRK1db{w$a#b@fS{sz->6sM|1J>(lG zXgB%O3z?Bn2EB(m_AKNu+EKX;winCOIkv4F`M^Mr8hkNW_Sz_1yZ02+1&#zRkJDbI zOG8U|O8WoP+?hrtxwd=UY_J^C+?tA0Ib=CDprkqMw6Y>4Q*%HivvNQrGgAwpEQcI2 zb*qI_<*cEZ;whVo{sT9e_ z9|0?+#K~0-c0u)`62d@-a`U%9YU&c5ndHKIOYlNH&DwL{OE*x_gOT4lwJ+Gx*T*xx ztzOfvHdGGQt-=uHu&p%JRG=2RZA<7|KVWvhx z#f9fmdY!x`A-(rWJ1><#*>#sTUuzNzl2i3IVdj=%qJ7HvmYSL=(plnx!VToVKDpvPU`NxkHVPI@h z$OxO1Q@cxEr!Ik3+HNu4%ijWi_N;S+azxt%j7rRZy6YY%wWZ(N`A4L&W$uWJiwP;S z^hgW?%#^ zEV;*9Jb|K51Ox`ERb6v+85^yTzzXp5y#52$V3qSlnzk%)Sl%lz;>k2(0kfwG>N+z& z_9s@3qudlkG3<%5LN(zPSo^b2E)Xj-{K>TT6&4Be&(T0B)XBdW+8vd&vQ$8}{MO=k z#Ml%&SecAn@&_h#!RWpDgMh0D9bPg%uKr@Q6@Q}N-4)v``L@n7LIWY`U3&v$kecOk zq927wd&chMfP3L7q48T`V+EW)vMIFG&Dxk&j^iKW8gf?AByYR|Hj1J;XzWnHabTQJ zj+<@Baq%MNm4)~d&{#06p7e%*uHVFGEpkBu|8~3>&X*~(T+Tez zVk*L1X~^XQQRVWEZ=t6U%=xl(A6ig!1r{>TPECQaW8^=MHK{pBEZiO>@mtst2}Hq5 zK)Ewg-=c8mM%cCIv(MDtBza9rRH^Uu^fpe2UH?2IsBNZNY6nX z5r%q>nJ8b+ZS(@Jx*q!uSx*re*55lFtBoxQ_LI+$UYY35fJMG%-2M0^0<|Jcxy-9E zyH&ae4+=F=;QA+oPeJ&GJ^=IpBuL%gJY#cM zn7mTDxSSQqhi_8Xzoe(yi@9%QBxW?UZq;9^yMh_Jp5$WW%Nij~6d@5>;n-#TV`2VX z@RKStuS{5*AOIlj#}ezU%R&k3!e)%g`wA$kwxZn23@jn_{a5NV$KZ zwcGMVn2cw~Q7%G>sbtAevOubSE&QT$X}DuuSknyIaiU1~cq@Ip;xA`E*;vpR4~lv> zuHK<m_%gTdJ4~6y?F6CgQeLh9GUOw^A`Shv1#8El-i_KmA?n@k52^O<}V! zRd!ya733U2k*`{ksk(Mfs8vQ3_o42=uO%_6H7umAVR7>&4-7QEC4yVm%xi4fmP!!U z_28(pkXI9Dw`>OPn;emE+!u`tG-41clg9XiwAMpo6Vh}2s* zZ&kzN9<@NsWkq8jkVyQlTghgr+udwT@5 zAQge3$__pHB5@iZ*RLaEU$I6R%=2Nxoc-Qnel$sUDtmpbkCuOhTl9Wg9n<+7_qTeq z-GoAPdqYOXWOfKTf1X_h8{QZ`?lkH++N3i$Gcz$zyqioSRS2)UxQt(!7nLxN*Zx>b zg_M5~V&s0E{q-xu@pwPcgHrvsCOR>k7($2E{7Rn$g|aLglYh|K=Myad_|N0G$MHFt<^w_o?e3d+cft zRLqIvf6f#-(;ldqtsJ9{dQ$)(v1LQ#u?vhG#e#*FN+$-RBD zha&W&W!;~fpO>;Zv<*$RmxNv|c%%7PK*~bYfZ2w{O5H^^K`eGjw3k_ko;Z5(U9_4o zAlPWWyAUlcwfm}oU{2|rn>@W!KYlJmss*rlc%KPTC1;jtv~F!+B)m_>ex}(?qlyw4~C`FpEa8Y#L0fS zm%hNz94@s3Ip4YXp5|>})Bj?LeJ|Z-=lyzFURn z^WqXbw-oa9h7cSBINO3%3L?}!#eYcZ5*s_hV~?(il3G-R=uJ4Jz`@`X*k zIN>8N~PuH`ioVsuQ@Qe~gPvT2&Q~%UHB`P>I_mo$s`C_6fM} z2h02>#qn8GEYgu>80Wpx#&z)mQtZR z_HIfQvHqc6xiYt#{hhmXEq1a zsok*{wFc%!G}Q1`V*BQ4-6Q3-Q8~RWV6VF!f;GulP9B$VrMaHfmXV;UNSDs`^F?a@ zQ}_B!#R009DZi^0)V&sgIUGSCw~MY9XRL0Qz51q^wGSGLeTal8s7TsY$o)d?JMk_V z`e~;E&>&h;Hi1M=Lf4mgo}g=X5#P#(@}7Xk-EN?$iep&8S~HDN2ZD>+DVm|eYinCA z#0&Y1w128yMa-+~!-g)Apj&6qHUW1lQ+g+S?x7G6s9$2W(0no&3@WIhMDcQ?9Lf&{ z6dY?4M^AU8`C~(-qw00uS}1cdn_`Yt3*;YXU+K_NpHGu5?y$ z@6Xcj+5G)!oGsQOJ^rcL9p%Wz{kYqVZb4A+hCgD-TxF40pOL!|XH#2g)JP9zr?Xk) z&zJ_yM@}>S7#)51#03-65E_k5=gx+YAw+8cHAZ83m<4Bi;i7p-e7)dR7uGQMFl2u+ z>kQrREu+iBW*B!ie=gDII47uWQZe${z{<)>Uaz*_O1(*e_fRb0pXsyTsCvR%Ur2~A z*8Y#ZQFIw;*{9DloxU`Dzu}B?UkSIA>`f%cRc7ap|N4U(AVkwHRUy)_M`mUHRMu6o zy207WC)9kJE5qrH`#ElXR%R_m`(x;1`%2u_&^jXUvOXR4y2PV55*OeYQ;}e|8G2P! z_>WsBE3R6|pSbu^cTn2+w<*#NxHDTl|-3$=kS@_p2!{V@g3$jMJfp0vK~ zJY4g_vGv2>#cJ1fPstbDI{aAQ-`>Xlfc*g}O_j$*McKkdZv?;_ypHcVHt=6N^LD)Q zzb~P6uonqw;=8+9Pxu$j<-k| ztz;BWbR2r2_Vl8jHtXHV&)gV7lbESl$CfE!+lA=q>WmJ5dX|%1;>wj}9ZmRgKtCR! zv6e78qc@`OtzsDdZ^o$L&+8PyC4Ut>Bc#Kc5F9li8B?|7RZx_1 z>NUJfiuxRE5&$ge@CI9k%cR_ZDklJl@XT45j84j#DpvXj!VNdCEcdchyAO_7_4+#D z%9uM?z=(SwDYur?cDa%?f=u-`Fr$V D0)kh5 literal 0 HcmV?d00001 diff --git a/miniprogram/account/pages/change_password/change_password.js b/miniprogram/account/pages/change_password/change_password.js new file mode 100644 index 0000000..135d068 --- /dev/null +++ b/miniprogram/account/pages/change_password/change_password.js @@ -0,0 +1,60 @@ +const app = getApp(); +Page({ + data: { + user:{} + }, + + onFormReset(){ + wx.navigateBack({ + delta:1 + }); + }, + changePassword({detail:{value}}){ + if(app.user().user_id==2) + return wx.showToast({ + title: '请登陆后操作哦', icon: "none" + }); + if(!value.password||!value.old_password||!value.password_confirmation) + return wx.showToast({ + title: '请输入完整哦', icon: "none" + }); + if(value.password_confirmation!=value.password) + return wx.showToast({ + title: '两次输入的新密码不一致哦',icon:"none" + }); + if(value.old_password==value.password) + return wx.showToast({ + title: '输入的新旧密码是一样的哦', icon: "none" + }); + app.api("users.accounts.password")(value) + .then(res=>{ + if(res.status==0) + res.message="修改成功"; + app.showMsg(res); + setTimeout(()=>{ + wx.navigateBack({ + delta: 1 + }); + },1000); + + }) + .catch(e=>{ + console.error(e); + app.showError(e); + }) + }, + onLoad: function (options) { + app.syncUser() + .then(res=>{ + this.setData({}) + }) + }, + + onReady: function () { + + }, + + onShow: function () { + + } +}) \ No newline at end of file diff --git a/miniprogram/account/pages/change_password/change_password.json b/miniprogram/account/pages/change_password/change_password.json new file mode 100644 index 0000000..7c6e72b --- /dev/null +++ b/miniprogram/account/pages/change_password/change_password.json @@ -0,0 +1,4 @@ +{ + "usingComponents": {}, + "navigationBarTitleText": "修改密码" +} \ No newline at end of file diff --git a/miniprogram/account/pages/change_password/change_password.wxml b/miniprogram/account/pages/change_password/change_password.wxml new file mode 100644 index 0000000..b9a8e61 --- /dev/null +++ b/miniprogram/account/pages/change_password/change_password.wxml @@ -0,0 +1,17 @@ + +
+ + + + + + + + + + + + + +
+
\ No newline at end of file diff --git a/miniprogram/account/pages/change_password/change_password.wxss b/miniprogram/account/pages/change_password/change_password.wxss new file mode 100644 index 0000000..0f3b7ca --- /dev/null +++ b/miniprogram/account/pages/change_password/change_password.wxss @@ -0,0 +1,17 @@ +.container{ + padding-top: 20px; +} + +.input-wrap{ + border-radius: 4px; + border: 1px solid grey; + margin: 16px 18px; +} +.input-wrap>input{ + padding: 8px 10px; +} + +.buttons>button{ + margin: 0 10px; + transform: scale(0.72); +} \ No newline at end of file diff --git a/miniprogram/account/pages/login/login.json b/miniprogram/account/pages/login/login.json index bece5b9..e301e43 100644 --- a/miniprogram/account/pages/login/login.json +++ b/miniprogram/account/pages/login/login.json @@ -1,4 +1,4 @@ { - "navigationBarTitleText": "登陆", + "navigationBarTitleText": "登录", "usingComponents": {} } \ No newline at end of file diff --git a/miniprogram/account/pages/login/login.wxml b/miniprogram/account/pages/login/login.wxml index 22afe83..52eedfd 100644 --- a/miniprogram/account/pages/login/login.wxml +++ b/miniprogram/account/pages/login/login.wxml @@ -24,7 +24,7 @@ bindconfirm="login"> - + 注册 diff --git a/miniprogram/account/pages/register/register.wxml b/miniprogram/account/pages/register/register.wxml index df5bd66..7e321fe 100644 --- a/miniprogram/account/pages/register/register.wxml +++ b/miniprogram/account/pages/register/register.wxml @@ -26,7 +26,7 @@ placeholder="输入8-16位密码"> - + - + diff --git a/miniprogram/account/pages/reset_password/reset_password.wxml b/miniprogram/account/pages/reset_password/reset_password.wxml index 4284fa7..543e792 100644 --- a/miniprogram/account/pages/reset_password/reset_password.wxml +++ b/miniprogram/account/pages/reset_password/reset_password.wxml @@ -33,8 +33,8 @@ - 重置后自动登陆 - + 重置后自动登录 + - + diff --git a/miniprogram/account/pages/test/test.js b/miniprogram/account/pages/test/test.js new file mode 100644 index 0000000..4981ae4 --- /dev/null +++ b/miniprogram/account/pages/test/test.js @@ -0,0 +1,155 @@ +//miniprogram/account/pages/test/test.js +//我我我等等是顶顶顶 +Page({ + + /** + * 页面的初始数据 + */ + data: { + code: `.we-editor{ + font: 12px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace; + overflow: scroll; + white-space: pre; + cursor: text; + height: 100vh; + position: relative; +} +.ta{ + width: auto; + background: #002B36; + color: #93A1A1; + font: 14px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace; + white-space: pre; + padding: 12px; +} +.we-cursor{ + height: 14px; + min-height: 14px; + width: 1px; + position: absolute; + font-size: 10px; + color: white; + background: white; +} + +.theme-dark{ + background-color: #002B36; + color: #93A1A1; +} +.we-line{ + position: absolute; +} +.we-word{ + +} +.theme-dark .we-comment{ + font-style: italic; + color: #657B83; +} +.theme-dark .we-keyword{ + color: #859900; +} +.theme-dark .we-number{ + color: #D33682; +} +.theme-dark .we-string{ + color: #2AA198; +} +.we-chinese{ + width: 13.1953px; + display: inline-block; +}`, + lines: [[]], + wordWidth: 6.59765, + cursor: { + row: 0, + col: 0, + cursor: 0, + value: "" + } + }, + lines: [""], + indent: 0, + cursor: 0, + getColByValue(value, cursor) { + console.log(value, cursor); + return value.slice(0, cursor).length * 2 - value.slice(0, cursor).replace(/[\u4e00-\u9fa5]/g, "").length; + }, + + getCursor(value, col) { + var cursor = col; + var newCol = this.getColByValue(value, cursor); + while (newCol != col) { + cursor = cursor - 1; + newCol = this.getColByValue(value, cursor); + } + return cursor; + }, + parseLine(value) { + var line = []; + for (var word of value.split(/([\u4e00-\u9fa5]+)/)) { + var match = word.match(/[\u4e00-\u9fa5]+/) + ; + if (match) { + for (var i of word) + line.push({ class: "we-chinese", value: i }); + } else { + line.push({ class: "", value: word }); + } + } + return line; + }, + onInput(e) { + console.log(e); + let { keyCodevalue, cursor, value } = e.detail; + console.log(e.detail) + var row = this.data.cursor.row; + if (value.length == 0 && this.data.cursor.row != 0) { + var { lines } = this.data; + lines.splice(row, 1); + var newValue = this.lines[row - 1]; + this.setData({ lines, "cursor.row": row - 1, "cursor.col": this.getColByValue(newValue), "cursor.value": "" + newValue }); + this.lines.splice(row, 1); + return; + } + + this.setData({ "cursor.col": this.getColByValue(value, cursor) }); + var line = this.parseLine(value); + this.setData({ ['lines[' + this.data.cursor.row + "]"]: line }); + this.lines[row] = value; + var indentMatch = value.match(/(^ *)/) + if (indentMatch) + this.indent = indentMatch[1].length + else + this.indent = 0; + this.cursor = cursor; + //return ""; + }, + onTapEditor({ detail: { x, y } }) { + //console.log(e); + var row = Math.min(Math.round(y / 14), this.data.lines.length - 1); + var value = this.lines[row]; + var col = Math.min(Math.round(x / this.data.wordWidth), this.getColByValue(value)); + this.cursor = this.getCursor(value, col); + this.setData({ "cursor.row": row, "cursor.col": col, "cursor.focus": 1, "cursor.cursor": this.cursor, "cursor.value": value }); + }, + onInputConfirm(e) { + //console.log(e); + var row = this.data.cursor.row; + var value = this.lines[row]; + var rightValue = " ".repeat(this.indent) + value.slice(this.cursor); + var leftValue = value.slice(0, this.cursor); + var { lines } = this.data; + lines.splice(row + 1, 0, this.parseLine(rightValue)); + lines[row] = this.parseLine(leftValue); + this.setData({ lines, "cursor.value": rightValue }); + this.lines.splice(row + 1, 0, rightValue); + this.lines[row] = leftValue; + this.setData({ "cursor.cursor": this.indent, "cursor.focus": 2, "cursor.row": row + 1, "cursor.col": this.indent }); + }, + onLoad: function (options) { + + } + + +}) \ No newline at end of file diff --git a/miniprogram/challenge/pages/challenge/challenge.json b/miniprogram/account/pages/test/test.json similarity index 100% rename from miniprogram/challenge/pages/challenge/challenge.json rename to miniprogram/account/pages/test/test.json diff --git a/miniprogram/account/pages/test/test.wxml b/miniprogram/account/pages/test/test.wxml new file mode 100644 index 0000000..876b3a5 --- /dev/null +++ b/miniprogram/account/pages/test/test.wxml @@ -0,0 +1,15 @@ + + + + + + + + + + {{word.value}} + + + \ No newline at end of file diff --git a/miniprogram/account/pages/test/test.wxss b/miniprogram/account/pages/test/test.wxss new file mode 100644 index 0000000..3ef1072 --- /dev/null +++ b/miniprogram/account/pages/test/test.wxss @@ -0,0 +1,55 @@ +.we-editor{ + font: 12px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace; + overflow: scroll; + white-space: pre; + cursor: text; + height: 100vh; + position: relative; + +} +.ta{ + width: auto; + background: #002B36; + color: #93A1A1; + font: 14px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace; + white-space: pre; + padding: 12px; + height: 100vh; +} +.we-cursor{ + height: 14px; + min-height: 14px; + width: 1px; + position: absolute; + font-size: 10px; + color: white; + background: white; +} + +.theme-dark{ + background-color: #002B36; + color: #93A1A1; +} +.we-line{ + position: absolute; +} +.we-word{ + +} +.theme-dark .we-comment{ + font-style: italic; + color: #657B83; +} +.theme-dark .we-keyword{ + color: #859900; +} +.theme-dark .we-number{ + color: #D33682; +} +.theme-dark .we-string{ + color: #2AA198; +} +.we-chinese{ + width: 13.1953px; + display: inline-block; +} \ No newline at end of file diff --git a/miniprogram/app.js b/miniprogram/app.js index 7a73efe..c0d0d6c 100644 --- a/miniprogram/app.js +++ b/miniprogram/app.js @@ -17,7 +17,6 @@ App({ user(){ return client.user}, syncUser(options){return client.syncUser(options)}, onLaunch: function (options) { - console.log("applaunch",options); if(Object.keys(options.referrerInfo).length>0){ let { appId, extraData } = options.referrerInfo const db = wx.cloud.database(); @@ -32,25 +31,21 @@ App({ } }, onShow(){ - this.api("users.unread_message_info")().then(res=>{ - if(res.unread_message_count) - wx.setTabBarBadge({index:1,text:res.unread_message_count.toString()}); - else if(res.unread_tiding_count) - wx.showTabBarRedDot({index:1}) - }) + client.getTidingInfo(); }, onPageNotFound(res) { this.redirectTo({url:"{my_courses}"}); }, - showError(e){ + showError(e,duration){ wx.showToast({ title: e.message, - icon:"none" + icon:"none", + duration }) }, - showMsg(res){ + showMsg(res, duration){ wx.showToast({ - title: res.message, + title: res.message,duration }) }, getPageUrl(url,root="/"){ diff --git a/miniprogram/app.json b/miniprogram/app.json index d6713f3..8164e07 100644 --- a/miniprogram/app.json +++ b/miniprogram/app.json @@ -1,9 +1,16 @@ { + "window": { + "backgroundTextStyle": "dark", + "navigationBarBackgroundColor": "#fbfbfb", + "navigationBarTextStyle": "black", + "navigationBarTitleText": "EduCoder", + "backgroundColor": "#f5f5f5" + }, "pages": [ - "pages/my_courses/my_courses", + "pages/main/main", "pages/findmore/findmore", "pages/courses/courses", - "pages/my/my", + "pages/profile/profile", "pages/tidings/tidings", "path/pages/path/path" ], @@ -15,7 +22,9 @@ "pages/reset_password/reset_password", "pages/register/register", "pages/agreement/agreement", - "pages/about/about" + "pages/about/about", + "pages/test/test", + "pages/change_password/change_password" ] }, { @@ -54,21 +63,27 @@ ] }, { - "root": "challenge", + "root": "task", + "pages": [ + "pages/task/task" + ] + }, + { + "root": "pages/search", "pages": [ - "pages/challenge/challenge" + "search" ] } ], "preloadRule": { - "pages/my/my": { + "pages/profile/profile": { "network": "all", "packages": [ "avatar", "account" ] }, - "pages/my_courses/my_courses": { + "pages/main/main": { "network": "all", "packages": [ "course", @@ -83,20 +98,14 @@ ] } }, - "window": { - "backgroundTextStyle": "dark", - "navigationBarBackgroundColor": "#fbfbfb", - "navigationBarTextStyle": "black", - "navigationBarTitleText": "EduCoder", - "backgroundColor": "#f5f5f5" - }, + "tabBar": { "selectedColor": "#1890ff", "color": "#8a8a8a", "list": [ { - "pagePath": "pages/my_courses/my_courses", - "text": "我的课堂", + "pagePath": "pages/main/main", + "text": "我的", "iconPath": "images/tab_study_default.png", "selectedIconPath": "images/tab_study_pressed.png" }, @@ -107,12 +116,13 @@ "selectedIconPath": "images/tab_tiding_pressed.png" }, { - "pagePath": "pages/my/my", + "pagePath": "pages/profile/profile", "iconPath": "images/tab_my_default.png", "selectedIconPath": "images/tab_my_pressed.png", - "text": "我的" + "text": "个人中心" } ] }, + "navigateToMiniProgramAppIdList":["wx2402d86a6b534f77"], "sitemapLocation": "sitemap.json" } \ No newline at end of file diff --git a/miniprogram/app.wxss b/miniprogram/app.wxss index 79cc539..cf25c3b 100644 --- a/miniprogram/app.wxss +++ b/miniprogram/app.wxss @@ -17,7 +17,7 @@ page { opacity: .6; } .container { - padding: 4px 12px; + padding: 0 12px; } .hint, .error @@ -53,4 +53,17 @@ radio .wx-radio-input.wx-radio-input-checked{ } checkbox .wx-checkbox-input.wx-checkbox-input-checked { color: #00b0f0; +} + +button[type=main][plain],button[type=cap][plain]{ + color: #00b0f0; + border: 1px solid #00b0f0; + background-color: transparent; +} +button[type=cap],button[type=main]{ + background: #00b0f0; + color: white; +} +button[type=cap]{ + border-radius: 30px; } \ No newline at end of file diff --git a/miniprogram/challenge/pages/challenge/challenge.js b/miniprogram/challenge/pages/challenge/challenge.js deleted file mode 100644 index cb17974..0000000 --- a/miniprogram/challenge/pages/challenge/challenge.js +++ /dev/null @@ -1,66 +0,0 @@ -// miniprogram/challenge/pages/challenge/challenge.js -Page({ - - /** - * 页面的初始数据 - */ - data: { - - }, - - /** - * 生命周期函数--监听页面加载 - */ - onLoad: function (options) { - - }, - - /** - * 生命周期函数--监听页面初次渲染完成 - */ - onReady: function () { - - }, - - /** - * 生命周期函数--监听页面显示 - */ - onShow: function () { - - }, - - /** - * 生命周期函数--监听页面隐藏 - */ - onHide: function () { - - }, - - /** - * 生命周期函数--监听页面卸载 - */ - onUnload: function () { - - }, - - /** - * 页面相关事件处理函数--监听用户下拉动作 - */ - onPullDownRefresh: function () { - - }, - - /** - * 页面上拉触底事件的处理函数 - */ - onReachBottom: function () { - - }, - - /** - * 用户点击右上角分享 - */ - onShareAppMessage: function () { - - } -}) \ No newline at end of file diff --git a/miniprogram/challenge/pages/challenge/challenge.wxml b/miniprogram/challenge/pages/challenge/challenge.wxml deleted file mode 100644 index 143f973..0000000 --- a/miniprogram/challenge/pages/challenge/challenge.wxml +++ /dev/null @@ -1,2 +0,0 @@ - -miniprogram/challenge/pages/challenge/challenge.wxml diff --git a/miniprogram/challenge/pages/challenge/challenge.wxss b/miniprogram/challenge/pages/challenge/challenge.wxss deleted file mode 100644 index 853d600..0000000 --- a/miniprogram/challenge/pages/challenge/challenge.wxss +++ /dev/null @@ -1 +0,0 @@ -/* miniprogram/challenge/pages/challenge/challenge.wxss */ \ No newline at end of file diff --git a/miniprogram/components/add-tips/add-tips.js b/miniprogram/components/add-tips/add-tips.js index fb6ffd6..8724c80 100644 --- a/miniprogram/components/add-tips/add-tips.js +++ b/miniprogram/components/add-tips/add-tips.js @@ -13,39 +13,37 @@ Component({ // 多少秒后关闭 duration: { type: Number, - value: 3.2 + value: 3 } }, - - /** - * 组件的初始数据 - */ data: { - SHOW_TOP: false, - SHOW_MODAL: false + SHOW:false, + SHOW_TOP: true, + SHOW_MODAL: false, + statusBarHeight:20 }, ready: function () { - // 判断是否已经显示过 let cache = wx.getStorageSync(STORAGE_KEY); if (cache) return; - // 没显示过,则进行展示 this.setData({ - SHOW_TOP: true + SHOW:true }); - // 关闭时间 setTimeout(() => { this.setData({ SHOW_TOP: false }) }, this.data.duration * 1000); }, - - /** - * 组件的方法列表 - */ + attached(){ + wx.getSystemInfo({ + success: res=> { + let {statusBarHeight} = res; + this.setData({statusBarHeight}); + } + }) + }, methods: { - // 显示全屏添加说明 showModal: function () { this.setData({ SHOW_TOP: false, @@ -55,7 +53,7 @@ Component({ okHandler: function () { this.setData({ - SHOW_MODAL: false + SHOW: false }); wx.setStorage({ key: STORAGE_KEY, diff --git a/miniprogram/components/add-tips/add-tips.wxml b/miniprogram/components/add-tips/add-tips.wxml index b773bf2..3258eff 100644 --- a/miniprogram/components/add-tips/add-tips.wxml +++ b/miniprogram/components/add-tips/add-tips.wxml @@ -1,24 +1,25 @@ - - - - {{text}} + + + + + {{text}} + - - - + 修改密码 加入课程 创建课程 @@ -14,8 +15,8 @@ 关于 - - + +