From a48c7d87f82feb15bd57708dec21c660f6ac1eea Mon Sep 17 00:00:00 2001 From: CoderWanFeng <1957875073@qq.com> Date: Sun, 4 May 2025 23:53:49 +0800 Subject: [PATCH 01/53] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=85=B6=E5=AE=83?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E7=9A=84star=E6=95=B0=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 77a4453..e30a53e 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,12 @@
+
+
+
+
+
+
From a2aeea9246817ae338d58e7596c370d2deea490f Mon Sep 17 00:00:00 2001
From: CoderWanFeng <1957875073@qq.com>
Date: Fri, 30 May 2025 23:30:39 +0800
Subject: [PATCH 02/53] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=83=A8=E5=88=86?=
=?UTF-8?q?=E5=9B=BE=E7=89=87=E7=9A=84url?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README-EN.md | 2 +-
README.md | 2 +-
contributors/wangpeng/pinyin_gui.py | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/README-EN.md b/README-EN.md
index dd1e7b3..8231ba7 100644
--- a/README-EN.md
+++ b/README-EN.md
@@ -1,6 +1,6 @@
diff --git a/README.md b/README.md index e30a53e..c56071b 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@
diff --git a/contributors/wangpeng/pinyin_gui.py b/contributors/wangpeng/pinyin_gui.py index 9ea581f..5af070e 100644 --- a/contributors/wangpeng/pinyin_gui.py +++ b/contributors/wangpeng/pinyin_gui.py @@ -1,6 +1,6 @@ # -*- coding: UTF-8 -*- ''' -@作者 :B站/抖音/微博/小红书/公众号,都叫:程序员晚枫,微信:CoderWanFeng +@作者 :B站/抖音/微博/小红书/公众号,都叫:程序员晚枫,微信:python-office @读者群 :http://www.python4office.cn/wechat-group/ @学习网站 :https://www.python-office.com @代码日期 :2023/9/26 21:46 From 61830446272d79c6ef063bf497cfda41783c332d Mon Sep 17 00:00:00 2001 From: Administrator <1639972003@qq.com> Date: Fri, 6 Jun 2025 12:17:48 +0800 Subject: [PATCH 03/53] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E6=9C=BA=E5=99=A8?= =?UTF-8?q?=E4=BA=BA=E4=B8=AD=E6=B7=BB=E5=8A=A0=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...5\217\221\344\270\200\346\235\241\344\277\241\346\201\257.py" | 1 + .../PyOfficeRobot/002-\345\217\221\346\226\207\344\273\266.py" | 1 + ...5\205\263\351\224\256\350\257\215\345\233\236\345\244\215.py" | 1 + .../004-\345\256\232\346\227\266\345\217\221\351\200\201.py" | 1 + ...0\207\252\345\256\232\344\271\211\345\212\237\350\203\275.py" | 1 + 5 files changed, 5 insertions(+) diff --git "a/examples/PyOfficeRobot/001-\345\217\221\344\270\200\346\235\241\344\277\241\346\201\257.py" "b/examples/PyOfficeRobot/001-\345\217\221\344\270\200\346\235\241\344\277\241\346\201\257.py" index 2940749..ffc381d 100644 --- "a/examples/PyOfficeRobot/001-\345\217\221\344\270\200\346\235\241\344\277\241\346\201\257.py" +++ "b/examples/PyOfficeRobot/001-\345\217\221\344\270\200\346\235\241\344\277\241\346\201\257.py" @@ -3,5 +3,6 @@ # 首先,将PyOfficeRobot模块导入到我们的代码块中。 import PyOfficeRobot +# who 后面写的微信好友的昵称/备注名,message是发送的内容 PyOfficeRobot.chat.send_message(who='小红书:程序员晚枫', message='你好') # PyOfficeRobot.chat.send_message(who='每天进步一点点', message='你好') diff --git "a/examples/PyOfficeRobot/002-\345\217\221\346\226\207\344\273\266.py" "b/examples/PyOfficeRobot/002-\345\217\221\346\226\207\344\273\266.py" index 4cbe296..fa48515 100644 --- "a/examples/PyOfficeRobot/002-\345\217\221\346\226\207\344\273\266.py" +++ "b/examples/PyOfficeRobot/002-\345\217\221\346\226\207\344\273\266.py" @@ -3,4 +3,5 @@ import PyOfficeRobot # PyOfficeRobot.file.send_file(who='每天进步一点点', file=r'C:\Users\Lenovo\Desktop\temp\0.jpg') +# who 后面写的微信好友的昵称/备注名,file是文件路径 PyOfficeRobot.file.send_file(who='B站:程序员晚枫', file=r'C:\Users\Lenovo\Desktop\temp\0.jpg') diff --git "a/examples/PyOfficeRobot/003-\346\240\271\346\215\256\345\205\263\351\224\256\350\257\215\345\233\236\345\244\215.py" "b/examples/PyOfficeRobot/003-\346\240\271\346\215\256\345\205\263\351\224\256\350\257\215\345\233\236\345\244\215.py" index b267ba9..f09b0e1 100644 --- "a/examples/PyOfficeRobot/003-\346\240\271\346\215\256\345\205\263\351\224\256\350\257\215\345\233\236\345\244\215.py" +++ "b/examples/PyOfficeRobot/003-\346\240\271\346\215\256\345\205\263\351\224\256\350\257\215\345\233\236\345\244\215.py" @@ -8,5 +8,6 @@ "关注了吗?": "必须的", "投币了吗?": "三连走起", } +# keywords 中 前面一个引号里的内容是好友发来的消息,后面一个引号里的内容是回复给好友的消息 PyOfficeRobot.chat.chat_by_keywords(who='抖音:程序员晚枫', keywords=keywords) # PyOfficeRobot.chat.chat_by_keywords(who='每天进步一点点', keywords=keywords) diff --git "a/examples/PyOfficeRobot/004-\345\256\232\346\227\266\345\217\221\351\200\201.py" "b/examples/PyOfficeRobot/004-\345\256\232\346\227\266\345\217\221\351\200\201.py" index 3be077e..545b36b 100644 --- "a/examples/PyOfficeRobot/004-\345\256\232\346\227\266\345\217\221\351\200\201.py" +++ "b/examples/PyOfficeRobot/004-\345\256\232\346\227\266\345\217\221\351\200\201.py" @@ -3,4 +3,5 @@ import PyOfficeRobot # PyOfficeRobot.chat.send_message_by_time(who='每天进步一点点', message='你好', time='21:51:55') +# who 后面写的微信好友的昵称/备注名,message是发送的内容, time是发送的时间,24小时制 PyOfficeRobot.chat.send_message_by_time(who='快手:程序员晚枫', message='你好', time='21:51:55') diff --git "a/examples/PyOfficeRobot/005-\350\207\252\345\256\232\344\271\211\345\212\237\350\203\275.py" "b/examples/PyOfficeRobot/005-\350\207\252\345\256\232\344\271\211\345\212\237\350\203\275.py" index adb27ef..890f1f1 100644 --- "a/examples/PyOfficeRobot/005-\350\207\252\345\256\232\344\271\211\345\212\237\350\203\275.py" +++ "b/examples/PyOfficeRobot/005-\350\207\252\345\256\232\344\271\211\345\212\237\350\203\275.py" @@ -9,4 +9,5 @@ "来个密码": office.tools.passwordtools(), } # PyOfficeRobot.chat.chat_by_keywords(who='每天进步一点点', keywords=keywords) +# office.tools.passwordtools() 会生成一个随机的8位数密码 PyOfficeRobot.chat.chat_by_keywords(who='知乎:程序员晚枫', keywords=keywords) \ No newline at end of file From 21a3403fd29122ffb3ff281a8053d3793a3ab99f Mon Sep 17 00:00:00 2001 From: wwp <511156269@@qq.com> Date: Sat, 28 Jun 2025 20:59:03 +0800 Subject: [PATCH 04/53] add a space --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 7cb3347..cab17bc 100644 --- a/setup.py +++ b/setup.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding:utf-8 -*- -from setuptools import setup # 这个包没有的可以pip一下 +from setuptools import setup # 这个包没有的可以pip一下 setup() From 6fb8db5c0658b2483380487b6765fe937722576c Mon Sep 17 00:00:00 2001 From: CoderWanFeng <1957875073@qq.com> Date: Wed, 2 Jul 2025 23:14:13 +0800 Subject: [PATCH 05/53] =?UTF-8?q?=E5=8F=91=E5=B8=831.0.1=EF=BC=9A=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=8F=91=E7=A5=A8=E8=AF=86=E5=88=AB=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/readme.md | 6 ++-- office/api/email.py | 3 ++ office/api/excel.py | 4 --- office/api/file.py | 3 +- office/api/ocr.py | 11 ++++++++ office/api/pdf.py | 2 -- tests/{test_unit => test_code}/__init__.py | 0 .../{test_unit => test_code}/output/0816.jpg | Bin .../output/mark_img/0816.jpg | Bin .../output/ocr/VatInvoiceOCR2Excel.xlsx | Bin 0 -> 6647 bytes tests/{test_unit => test_code}/pencil4img.jpg | Bin tests/{test_unit => test_code}/test_dev.py | 0 tests/{test_unit => test_code}/test_excel.py | 0 tests/{test_unit => test_code}/test_file.py | 0 tests/{test_unit => test_code}/test_image.py | 0 .../{test_unit => test_code}/test_markdown.py | 0 tests/test_code/test_ocr.py | 26 ++++++++++++++++++ tests/{test_unit => test_code}/test_pdf.py | 0 tests/{test_unit => test_code}/test_ppt.py | 0 .../{test_unit => test_code}/test_ruiming.py | 0 .../test_search_by_content.py | 0 tests/{test_unit => test_code}/test_tools.py | 0 .../test_tools/test_trans.py | 0 tests/{test_unit => test_code}/test_tools1.py | 0 tests/{test_unit => test_code}/test_video.py | 0 tests/{test_unit => test_code}/test_web.py | 0 tests/{test_unit => test_code}/test_wechat.py | 0 tests/{test_unit => test_code}/test_word.py | 0 tests/test_files/ocr/img.png | Bin 0 -> 180446 bytes tests/test_main.py | 4 +-- tests/test_unit/fake2excel.xlsx | Bin 5415 -> 0 bytes 31 files changed, 46 insertions(+), 13 deletions(-) rename tests/{test_unit => test_code}/__init__.py (100%) rename tests/{test_unit => test_code}/output/0816.jpg (100%) rename tests/{test_unit => test_code}/output/mark_img/0816.jpg (100%) create mode 100644 tests/test_code/output/ocr/VatInvoiceOCR2Excel.xlsx rename tests/{test_unit => test_code}/pencil4img.jpg (100%) rename tests/{test_unit => test_code}/test_dev.py (100%) rename tests/{test_unit => test_code}/test_excel.py (100%) rename tests/{test_unit => test_code}/test_file.py (100%) rename tests/{test_unit => test_code}/test_image.py (100%) rename tests/{test_unit => test_code}/test_markdown.py (100%) create mode 100644 tests/test_code/test_ocr.py rename tests/{test_unit => test_code}/test_pdf.py (100%) rename tests/{test_unit => test_code}/test_ppt.py (100%) rename tests/{test_unit => test_code}/test_ruiming.py (100%) rename tests/{test_unit => test_code}/test_search_by_content.py (100%) rename tests/{test_unit => test_code}/test_tools.py (100%) rename tests/{test_unit => test_code}/test_tools/test_trans.py (100%) rename tests/{test_unit => test_code}/test_tools1.py (100%) rename tests/{test_unit => test_code}/test_video.py (100%) rename tests/{test_unit => test_code}/test_web.py (100%) rename tests/{test_unit => test_code}/test_wechat.py (100%) rename tests/{test_unit => test_code}/test_word.py (100%) create mode 100644 tests/test_files/ocr/img.png delete mode 100644 tests/test_unit/fake2excel.xlsx diff --git a/examples/readme.md b/examples/readme.md index a897c09..9b8677f 100644 --- a/examples/readme.md +++ b/examples/readme.md @@ -1,7 +1,7 @@ ## 视频教程
@@ -241,7 +241,7 @@ ## 交流群
-
+
pB-`7lzv<0F*8}Qf+*E(Qx*JnxP_oiJ}ikDT(HA z@Mgj9pD6Rqb;4vA)%yeO(-AYj$#>HxH#A`?m}Diiq}kbk{iun#+Z&v(9}o;V5Z|86 z(#gD3!qEBvlr8k@pzZd4GjdfdU#$^yJ0)k=5KFJbSX;Dvw&~e!@w{oQSR&Wy%0kZK*`e7(JC^z^3G#(^53Hj6u}5LUY#54*P>%9WE*n2 z{bR!|8y3}bbL(`Uu8hJwWP};oG^#}pODrhZ8!e?Y@kN}I-Awu5sJg>rPgMdg*NqIC zU=Y_i^PHJbalD9Ky4i^I!jN+pw<6Cz*hM`n-L2-lj)VVhojZoYWPkUu!ff+nM?iD# z4_q8OTHfU-Ww?MAidxFd=OuW&kc$E;l6W+>XgOKMq6^&?%_#l}+%T+>lg+Lz_&=e4 z)ud0b9px3)HS{QHQFbW`h}N_<+5Vai!w*;$1@T6fQsqag>3z48diO|DawcD!{wo3a zNkV{YHRj2=zsGidK8r;ZfMg& i%-8zYUTbw4=!k``VJ?IDxq{WMCuyF&`EpNR6MULOJ@ zl^=~CmdCZcoX5)*BIy?>S|)q9%1Ps?yp*a&rbq<1mjYs2aB`S~b?&nfp5ze_Q^Hza z?0KhOeC)5JreSYmZK_L0BoL89(LRsH{7aHJzqd^P9A|QcnQzk~c{!QiYC_C=@zoz- zdc<_$v-15Rd0audecp>Psuzxx{)gGBQKHW&B*)i?eYn8otN&0w|6lmf1-QUzIRx^# z41=w!Bo3r@DCDpDlb(^)e*e$Mf&j@7y{_Y_A}z*Z@uTIegPkDzh5CirS4(!v%kERF zg 5~be~ptc^?h>QQTsHP_P60}@v zAu8(Rn_U|UfVdcmLmawY?T 30q9v4;Vdf12 zH2!LF%CF)N$K*(u`4*+g*G KTiWc4;@Sw;iLm88cO859**|P;am(&fgD0o~<{9W%)!j+!cPXT@Sqyi< %y0Hjhy>8I^QTi_*7hR< Pc> z91TIidKeuEOl0626>)3{J8u~OR-ekm%gQ`_GEi6s17ZrF@53kS_Ft7R!ejQcrcN1O zU6NzYW$qssh@8`{F-IPTb{X+DuQ<6ArOF!LE*fAdJ +R0 Q065P%v5k3xMwb7{V?qP5Zm%6fcN=Sw zMTuZ7k#{LjgT&Fk-a8~;#cUfTOKy{{k%qIeuYUF^j{JKAC>H+5U|i(q J z1_t8fdLX<=djn7O%6A0rmcyTP1I){&`vRa$@3kq(NQ!?fE`}fVTC8oO)_CxH7kv}H z8?+Lmwrk`ukYWI`-&o (x~ci&2dLe}ebGBNb4agCI>L_+sUNht86m zu;Nc}3k!bmckt)@bFX5p)k&^glU3!0 lbW$4S=T2ao78OcxcoN6#6CsaaEkE>tJ z#n2V+ohaY4{0Gz7;jugSXtw(UeM)HjJ!nLsv7PO+j)GvT=f`Bx!PYV==oJvGr6zMC z6y%fc(B9?(lo0BuPcENE28_l34oN_TjIVh;P+`q-u)3H~cep*EV3Q-I{-SY{yk7tb ziccksAxJ*huqxdrV&mTI2sJx_waD?A?6knxecuyLAKsgxOiTVI;;w3;!1;2jzKNoL z>{x{BO(6J!AXKr?Sd2mBEHFUSf5nr0t3>jqXkd ^D>$_!Ft= zrwc*GodrS0Tg}Dhz%06!vzkUc>3O6Oi9>P+#oTUrrNb=oN9;3ATI|AjV;O3X&{`UgMWVTItaKb(IyV4LKdE3h_S4oOWFZ( z`-)_?v-nZ1k2WC81YN}4?gVz%@2wb*6Ir&wo|cJcT0f~by&1Z eHV)(5P ^vKD;cuyVaQ{fPl9!71h8;geqRm PC{?y9P^;c{{A0cp|v43X4+(yv7QjSEJ(R@|fDm>IdrD^VP5Qr^^%lb|^b& zWO}nPZQF#`lkf z6}5kw^k)_~(Ptv6=$Xs>nEMn+*sD((ij#ZdKKq+jxHDqA2Q7Ku3(5eN8WS|lH~o)_ zSxQTR9hp&9lMpMpczACF-)}ep7MaYjm*&FvtJru=3#0$bqH^l?M5vfGk%Xr)j m zVxTAlCRp*t^4s~Et6ek8X^r#^7WAZJRFG7Bo&G}xHEbCf#Gihf`}%QGZP5^%M|+7J z&Q;qy*hU!AD?dGCcN4CePwo|0_v43SXzBdUBc_ AL3&eW5hCl|+4tB}7JXb$kl&BM*^yuHJcx@_jb@H3p~Xlv~k#8WkP zW>uvJKRJ+b5YPm25t#jIuKXJ$%dMD%8~2xj2754+?jWL3{WDk@t0&pv+%o|b&64zc z!;w{KpT^EkRFijY&B6A~guB@ai6EQk Ouhcrl(GP zz_uSs=2jcJO^#~!xQb9e=OYi-TTAfgYYsTrP+RSSa6E^}IG^9p5Z8AJh%xM#a-LFp zYJjwvCH9~wnc2731@SxDQnw5KlEC{90-X0U55&(X>=}Hsx*PWy!+?K^e{*8;@1e>r z4aE1hT$SGhPEyuUn>|6bF*JFo6@r|<1sh^;Vw>~@cH!V5#bf;~Ch53~6jb&rc0~W8 z2RmVrB)n&`edsAEIaF>3XH=LD2)JUe{ce-$P*6tt%9YqLyhVkiINfbuynceIBYSp* zRR9w(Z?Z|;DAIo1wmjq)KGWS5JY}t0%VObJAbCF!436~#r_cGKRTsQBSSj0~vK@L4 z->lc|6UQIBn=Mf-SJlV}TI-XAji{s@@h|NXZnP4U+T*z(yyeeRm;1v{>w^H>B`4<^ zuJ)b!@7ND0n1jx(YJ)&bG2?D^Az0#n{ziG&V|LIDAP~83cnxUdbUA#+^j|DfW7}|g zj;BV=^-ocIG!@_o^;8;0DcGSsH)W})EF0Y1f`I!)VU; zj#INA@0KpOe*W^AIkvddD{2;bZO->wR?`VZ&?^Jm8QorAfGq(dE#-sdKh380eEh>0 zcg(MFd2^8Syr4wUrvb%}%Vv6FyeHQ{^AsHnz#Je-fwlQuZjEO^P+4mh&z^vOY(d0N zVV%^aoU*C+TX3dP3C)WT|GTWykI#yT_3b8#Hdc^gGZhP?PV$Tm8)j29ypI;02rt!P z1`++HEn1lw5I<^9pYK8xOWS|nb8}p4)3d+w<3g*#=dD{22Y_Inq=!3J ;c2En5H**p0F5yPZcSa7HYfNtTS8hJ+xY>8EYd&AyZ*==3bgM%ym%Bxm z9#AE9Z&1%Pn1tU#Az?B%iF^BV#FcNn%m_H8*4Yw@@t|e1U;tLI6`7p*XPc?J8!bdQ zT&Pt_#C?f>58b1+!!?}sc#M}O`+8ZcjjwAgYV1vsv(khxPIGmX4AdwT_P~4R?JFP( zDrm+dhnlvK4IiDkOdf@NLl@zC)XQ$QDnUFkf4#nD)_y&1OS1;;4a{4zx*B-@0@|_} z_mqr0wptPEYjzj64L^TynOy!5lGsWoKl`u@rl%&Z+9k(inF4=94kWiE)Xn7V?feZ+ zKso4Cp&kAY8^*f>CF^0?>4n5C&Ks`DB0CAz1-5D`=L VtLb; zMmR0zG=Tqt8~Oc9{@|CU>;s Wsa;XIrz!XxwFfC#>w zkgIBFjC01s#CTlP4m$wDQseISosU@ZIf5}>kV%;f-+QYTIfKsA0%4o&?)3Q$O+G>h z?%90qOhpPgOgs6{xpj4Dz{phZ$Lsw%=o#?W1Ne;Fogn1B$7KTv7Z;az*S3-p7y-aj zvd{DNHnEo0*D{evD3cuM&B9*{)mQMj5Q>`uh1l{`y5%S_mkg3+>f=&+2ezHjcv6v6 zvdNz;qv#IsIStajiaTD|iE6msn6K$H^4t-L(cB9uNA&$sc6^5QX@hC;@r=YMr*z(8 zKWt_9lt!a?BkewkW;#f`*NAJb4yE{Y6Z>Z(3p&dwUcU~;V8b_`SQC+cixveoj);lW zd=0KECL|#o6*xGl`gzPDx*lbiX2T41#px^7xWWzAqH=e7B+IgAl&mrE5=Q ki!;Rm?&{>dmqz=p1HgJy8Eo0vQ@2bGJB;s2|?3}|L6A~;{l zR|AE(_nm;_W#CW)jd)|nYvlQ>P5F_Sw2juo;4M9QBj9OV(JSumsY_^5sK#Pzj-+G4 z5t%2P&;lrwH3paua;K|u8BJRs{N)XN13MbGJWeQuH<{HyOQhwoWJDty1Ou_qP!OM? z?@k!C(DDx&w;PLhzSxF;uH6S3a_JN&B-RrPYoM+dpAJ9eC`6TGQc^$$Ss2w%RJM7R ztA@Uwuf$LMEdp}BW#LmhcA*x&-^{ac*1!Q!{GmZ(Cya7D)gdzaru q}`kClA2w=vsB{W^Y$tqt-__(6#WIHQYs(D5PUX%;kU1Ue02xD3n0 zt)>ijWFoVgYGkd!6_Tr?_&q+H93+m@bhIR>1yed+#Y;jy@PYa-jTivfzpOB7w2o`0 zwHreK{YA{ (rwqifgo=ov~X&iacOY+B5sJxq@9fd|JpVosU@nYLe1`PMtPLGWA@LhM1 z-(X;11QQ8(8E$oWj*O1>+EjOjl8S^H4#yI P zDCp?uYFy9NL2I&5d5~4n0nC!yJIvb^uY}av&u9&E~Z)HV|v@@869V#K6Yh-;Wa- zV)ng-_XheS<^*>yH{G`ffo!Hf@Le2vf4^!+KAa#`UGKabqo14J*)a@g|1arS^yfxM z5cqx;$%Imami&}Flg~Jg&@X=C$?mv0$d@+)@N(nwD1;*5z9rA0l{8A3GYT3prc&Yg zK48@n;%({{QQMsN2nU4_g~8*OdI_TE^rV_m8|AQhH56ZJXMUX<#5U+c %3rE zk(QouyJuueRmo)A*hCg!NZHLA<97VLMWs+GHt~vf!eTXuOjo`h _EIQ zLUl9QRg4=gJAGzSM0Fl4q97tV+?ApR8SbUHn7WLVTThT(XQ+IZ-RL$0D;_0;%YFMk z&dNhbhsiY1=M0X-IN|Dmiusb*{4S|2nO?{zvELI}&}A@xjDi#m(!ihl278*jXh9aA zzCU3OJGc9ux{xKa6LC76e*1X2`ltSpA j#4lZ5>`3e|=+Ipit% z EQdTaAUlz-KTHcehG!dWj|;O3iF;WpaN%e}{wj`puBi>Rx}Ew1{Z*ETha>znnZ zW1+%-ZgwNEql8720WX)tA}X-t*wO7!)U_ih!HEQh5pg2of@Z1jb?3x2X1x{WovI^Z zMb0_Cs)?`O8qXL9%X*GzY9@1NJHNI`y9h0OjT>L-yqMJW+bfxlgg#m@vTniBbBA32 zzK9BAkVxZrlH|4XZdyVz&1x)rQ4)Ez?C=& %Qcrq20T{^Qc#4?RvzSUB*foSYmYm24VG zPyeH57wX7R`8i~-)zihQ$J=S~ZEE+2*pd;S>zS8u9D1jW0{<<9cpMSqI_d@z5r6o{ zhc}N ;y)ZJHCHR7s*jw-t@@EThSBUp#;vEcN@^Y-DB-14Kd4Q$F~gypgxw zPi6N+DJNH}E$SSnLm=Mqe$e8Z3+Nh0@L)3?nK_II<&a5vXYQ^UKskn-#gC;76^}Bf zk<3iI7VTFD@LqIxRu{O`gM>(pu}D Ps>v-PJUCA|{=%-0@Yr)}Y2=abT})h! zM2B}^nH?1sSNP%k*GZt`vIf!j=(%!&e*eWG9ZDYierLp^S%ddJRKB# zW(?a@ufiwA^y~ys~P)@-hg0&I4d~qhe^f(}-M`RKjq4 zQY@40Ya{FZv pFO!0iRU?Dh!U zzu@!N-mCTRL%&s>3z4DG_UfnY>wE0)FmuSOVju#Reu(bi@&p~O%LW%xi%KIEmqf;V zk#oJm63q5G1C_P?!rE8dQQm|bn3UsPA~>zKed{;Q!XFhl#eUMt(j(ln%E$aW=}` z|5>s;GMH~>K>f!%_-M?SM*{DRZqYr-!MES`AcrqHYozl|&~X}$;!-=n*mbjnmiDKQ z7AjJ-C#01GCsZ)?yiPw$JKt4{2tPN%pb0m@FX?H8F}36KJh7;oa)VE}^QFq5@k2C{ zw)-i*+mHKc_y^f^HZgw9`69U_MZVBQ)U=b?v(5Hqk5nA65r^(neXml&> ZNw@a5@m=%d1@*@~a9V?FbWl$9p~79YsEq_8`q z;IZlphZbZm+V-N=IRW8u5<4dqz9mefk6yPeU0Q}pZ(EvSdky!JTg~EkDAN_$p^;gt z$>x-KY(j*LaAejp@bS2{&^*OR(!ORR4_(%ujd0Pzi*2W15z1-7*+Q;gn1ea-R)~3l z=8|dy7>iF4ko~CjW}s8hlfAjM%%obNo=LpdK+bSRR|6BI yTiF+(C( z_fi@1TJQEjo*Gp#jEV`dIi;>icIY!I_fG&KgdWML{jJ$7UhMq6y)~@3?X{?}lbMF) zRkM-m4c4PKU+-;el*j(d>r`8*p;Rk#Dn?RL0gRNeSCH@!(JbZ&{NRHA&d>6CMx~W@&vbA2t)U$z+k Ws>4S(G;>&5V7m zz%a6pH*?}s)vt*qNbU45H)iW7)e462C{bTqh{QNsQR5qFiiOgX6?8Bv9DT5$JWqg=q|3#jiW4YW0OGF;LH!GV&7#5zH !BfY( L0XL<#Vp@=b4*e3QpQZGp6s>!%cZlmY)eXx^EMzEI|F -~fru4E6 R#q;5JYfD)VT`NAj-?;N6{tX^fuz%Fhd7ZsIMj0lFVLVI|F$}79CuaCv` zOm) {Kw)=x7fpH?3=LsEUnAV1DCp0XXCAan z7&X)KZp5xT1WDDjE{#`~W=9}tzy`B`g7@caoNsXdS;l~GZQ3AE!sfnO460y&EEVns z4=;F1x|^e)ilp%N{!{Txnh=uw!ztSvw9L6mMWQA9fcMnUtS1RrOLPU^ajfvB=6==n zgTD_8L&aFW *?y zEq4K0t6Sdahz)J@w*P`4w+$Xf|82Civ4wZG%HB2T0;&(QUAqnB0=gq?$2%ClVmH)# zmfIDaC3<0`r`J!brn|VT1E?4M0KZUmA&Ps00(Qy$v#;qo!JiAHYQ!XZHwrNMb9cua zgq|x-m2LYQUFkQr->Z65)-SsQML=;nRoKk8@Y`~kQ_pPZ;vM-l;Y2Vfv&Ga+SgQrf&XI$JK*^? z2_UP&T~*kk>jUQWG^T0WGuB6uQRzKe4g1jO~Z;pp;xs&e`qZn zBLG*e5^MW!81Pak@hi-oXgh%GPU^yGt%APq6$CwjJ)f4YT2Qq{4jMXIv4FsnzC7b( zHTAsM-1)aQ><%G_G93>%nB{g^kGbB`c>)Dx*SMR4L%~ &F_PG&b9N(_N!Z zPvpP4txP(ndnC82H#_G;GTLRixeIjp<+cXvpuZ9UNykd+*bYX=%F0152Q&
|R3S=m{sMZXe(Hj0Qsw=_P ;pvnf}^ za0e@T +7g6I;Mz#}undsuKwd6*7s`!aXU8Z)-k{fzo&5?{fvLQ#U zA)g$G*J>e>;LapUq*>!1bM1Qq>_f^7pQ@odB%`CIV!3>E;a4-K*4M}-g0-bhIxFcY zlN{?=iSy%Os@9H`d~>o(!%Al*MQmlGQ_GKR$l69NUTJFC1N-aBAqvnK0@x8D1f2F; z3}VDE9J=yx^FRREjHfrEHP6fMb?nUdLH*S$;>0R4GO`coax~*{E^V?~r@DNP{5Q;* zwk_&E|6a)aEW|0I5hi;^P*qYUYA(;I%r@6~kw8PxchYjv!LLeRV(hB_4Ve6|>iF6! zLJ-is{?U^pxSiyY-LXYY1S0b64KEH6dOfIjYYp($URkge7BNA`OVPZV_ox1E5zJKw zjd9nm78bazyLW9S7}S4*WJyIh(2^T~jJxaLy)AM$5C|gZ{35M5>$J%Z^v|k@!lUkh zJxxJ;)#4X> MC{L(oVUqKMw)qc>%ZP;5fH(7(V0plnS!(`Z2Juq(=wpqtC?d zB!@!Xy`kh@`LihIfoYVd>hL@L%m(Nl5BhN4rBOE&`?uG+wzA?6loF@w@*V5aNY|+} z+z2K?nXtv_fiTo}YQuKZE7>*GfSHy<@qYQhy%=PqqpLA^s%{iF$pYf%^d6;}a =nMJn&X4?BdW{oK2p!OPko;Cj@ps858nXWO-v2M+f4|1V#>!(^ Je2aJ~dS<6L5+GhXd2*Aq26?sreI9fc4=RfNo-D)*z58ahAuV;< zI`_GP%4VW6D7pQ 9$ab`1GPwS0l z@VX|$eVDkgI@-Lz(M?~K>5*v*n 8!P;C$M z$zL{V9J)5ky^S`-PXYqkThtp2(^pyzFxi*uvz)$QYvz;55q5+1JNt6?soy>mvdn2x zKh9iw=9lZ691_(YwJUe5#xS_y;C9m3mEhOgub@2iJ(PU$?F7qZek3A({utN}?XE^r zChT_BxD%29dmQ{+!oH3o75Vl)J+^X{s{~7stxgg*L3D!71x{lfvkG{mj BKgv z$2xNhQ@yI7`;rvW^s#dRU-1in8)^iESiP&ANAF_6ZNjKV{q8_%`&7!9`Sm^`0 IeZ8Kun(D@3*Kc3pJt#jPzXq~%Jc~-R2 $atzdkpD?&@)pjCS3b*Qe z^rW=Xm)E_lKn{@=Ac*}O=Ker}&4swcsMGZ6I93ZB)AIaNZDpo-{X?_-$L5+DJKJTH zqzsg_rZFfH`_GD7#m|hUtm}O=bR`uH3mn~01Rur$8(2hnk&KR9-mMw|1CKkD?1jgT zE(cr!E7+}#9Qu5$a>A$2_Z?m*&44k%mN3L14mPwY6;@#X6`{UAL>!Xb%{9rX$fBpw ziITs3S#ptQ`00{m{Gc9A-FOevn^x27-Olhs)I;0{W*G1B^^|%?X~xJ2EqelO%7U3O zh?)Z83N&bDshn$Ly}3_Y542u8%u~iZ>TEtV1}>TkycV`6_U}!{Q;~ZYT{hPm@6?O~ zZGq8tCv>*Jd%$4S45v3Yfi*t7$mBXG-AxO#nznqJS7n9pIy4-fLQcs0KIDz}JylD3 zoZGceO?G79ps~uiPm_<{W}C};?|*F+fdo`dZwh*94ft`Bk!=4Y&Td;_Z{;vFUQzKK z&c>~|Z|pmm=Iin8`vd&CWk?LYvJOacc8|nB)Cu=H_0@Ugf#$Ysp`SkL9(yVZ@^gRU zv+{apUy Xoq|JB@Ec;&Ya<;xndFrgs zH&>7B-|d7;6$~Ct*Z$`hT4|TD{+HkbZcJv;g!0@-1i|+XFa#2Dy^Yq0YgDqqfaBjS zZx5kjmr tzv|0jb=OpwW{qkHM@^%|eY82AZRy9=QXOhQs< zn-}L-@Rh#lVrwi}(GgQGAHZAjE%tGRR=5Ny>_&ztfIrPBNM;A6PQRwrf?u|oc8|Qj z<$ncBzQVPBM)BeGNGuZ>(=011PpSDyI0fcZ-l0$P`2)19p+ngCp<1*h1o*-K8fD`u zjmpAAd|c#i_6BQuZbjzX_5 bCq) z)Aykab++5Vo8BANmaYW{kbU4?=c)5O928c>k-!8Az!_d4c-%k1@Sz2RH+`-}PSTc* zK21ScyfAK_C1xL{)< =AG{Fdh#$m7y0dBg?gR+{$E2zXL}4RJ z)g~6-VFxcw<*uJ`uTBm5*WgYcd~X8bp^hdFzS4da{15nuS-)FA8^52a3Gi>CdA|UQ ztv-G|PodrgLr!75+fN8SaHG&medhPf-gmDhQhH&s6H@yG@^!NJp;A}6^vAb#;i-v4 zn^X5;R;|vHa07Ogj5S<<7|sOsx@~toEP~m)TTM2Dd#|RNo8Xl5G(!$ni)jXD0jXH> z&XO{N46c+XOy{o#MWt_(6Y0&6qc`=D`|l}(FXS?x=7cZ|ESY!Suk*L&`Nii%i4`%S zkJQt3_vWtd2UjKwz3=DHstOm6v8hRwodU HCpQ0mvSUrRh|T!fxzxygpPho`eXw_bc#+G}x`;D-auh`D zqw#iP$I^vNT?JiGUk98+K`H>7rR&YV2U?|k;+s9tq{SaZPGo=2kMo7LfvtC7giM@; zU1SR=3Ydb_na7IS% %LDWE$@~t~!sdSdHCkl`Ki>1K);wB Iai8%$#f;jKTSb87m4=50m9lMP@Jh!cEDTZx{wBU{B-wXbf zKj@V=YY@_C)GWM#-i{*d?+`xH$jrbfambsZVoaTy9$9iae_>e;J__YkO~x82Xl2AI zh7xLUh2b@Rwj310*^^@V(ab5cD4yxHNDRZ3nQ6po!{fsUS5pS>6z_M$BAdmqkjFTm z-SXr4eNUVMaq{TMJi#85uj`m!PWP%i=Bx7>P$ly!jGar%&5bi0M{NH+)$Q{=-DRif zMeM!4xO|wUz{{ePl^;3&Ao$)~*<9M(`{ h91bXDsw=qPrUcZYl%_sWHPQbeIWa~Co2JnPeH#(Eo3 zZ7#{q#h#bW#p;^Gj!`1c!HL*t?Y&?_Zclc;ly|xQ4LAL`+;hL_7XtVuO*5YE6}0GT z`^7Qx7Sl+0XMdfjrhzzrBxkAh2CMxbDBb}A;tv88rm7-ch0xNWO)3=|UB41B%ope7 z%H#5=aafLy2A=kSrYR5wIrsczzg!C#x?^L<#w_bf&iz%|MT5@x!{VQ7KQFskVScSB zZiY%xAEzUNw!SZ<9M39H1>EcV#jmZw6h!HPOh7IeY&8kTu9{l*rCMSaIpd;8X!9G2 z;m0wpT&T}8R?GWifa^OF`$B4eauTe{hG(N3W`;CeN~Eb@Q!V-|n+YA>qHo4R8t~2| zXrgPgGNr~@WgSQhbEd3$^E^@>RN#GvBKW(fncIOrHze$-Sf$$)Z}p!@8l4L(CC(Am zh>wjd^oB2a9UyGGwSj-A8oP(egn=el(r;ZHW3FkDlj!FJoDOZh%(697$$Qzxys9=Z zsrF?O@3D4nmM=R3oEwrvWP4S^U*sKP9SYiz-RfoqnaQ_PCKd6p_EAYDK${AUSj_|* zH3n%U<(yp!?O5+>V|{`<6~Zyl*k&dl*@OEX<%(&BM&`xpL54v=P2H?uo0*tMHlD`h zcy}O`&i(BF*6kFiYp}yz{RJpi$oc(D<0!nrsM9o3(6+j|dg=cQ#q)L$yVmVeJNeI_ zyu3W&ozQCCxXT(npTJGm^ChF}txmRE#^z(M;A%{Ib((dirq1mRDlRT;1;JMe!Pf(H z2E8^6pn Z060#Kk?c2q5T-tw5fpYlBZRM$e_Y*Y> zO+`7O+Sg$1E2qg&6okbGYdYzhU%@Ly!0yjB6P$PhxIDC^9uvQnf=$EnL 4AA{PN6#rAIabZX4V{-8>s>6B|_Cl0ttrsRD_|ii)&?*Wmx-=^Ufu?%uCI zQDfU?<21Zud!oi{Y&Ev+G|t4fZQBhSJB{sU`unf-yw97gIp2e8fA-#wp`~47IfEpe zG+w_RkltbQkB~#pMubAn+O4-gh80S^Pb`UEj;YmR3BsLKUyNF`!;D951=lqNBcLdA zhPvlwDBY72J$uYo7Nj-#A;Kj2W46(4bk41xR9A#vV6q5bNfKeZ0-(fl`bnB>wv-<9 zs!EzyOMY7H-}11YN_g~W__$dNHt_J@X%P`U6FngNVT_D)hTicOptB#kWW8N6QK5Q3 z 1SmnuuZQlId$n#) z9O3v+82w>FH7`RSwFYm~pYAL`uP}j x8GXz98Cxrdyu-(L lbZ=;)4b~9xP{K)<5&?E>I5l{`UNllOp&jL8yy(BzdaoxF#84(Q z+x-j1y)@s*QGo8q|9ue*e2M%qMM&K%VJ{DbkT2$NJb?S1RMM!&Q=rR=A|HD+TZ r)$hIZ`}7LHgha`UjK6K^ zc}FJoxl8be-uYM5G+YoT$iOOgB`qhH^suVf GG!m&G5jg!E z*IwDggbL(wh`;&)^14X4jEan8wOXVLz w$)AV`OGVar@(ftM74ueewvdUNG?j$ps7do9O8gXDQMW zp}=m~ai_2t#D*Z^`WhMK8)%%&s(x23=#|JMT5hor*U0mV4wajl6c2Ip72FAvtNmnw z1AdS#!BDx-rXNN81AkmVdt)tXZ6wXhI}lc|3^mNSpr`%NnxXFp>^$cVSQTBDR;2Ae zzLQ#?HbxTu8#SLsNeUaQa@11 A`ky7=_qA({ zyW!RG-mIcn+fdJg*VTC(1E}@gw)}3yj0g_v;@!zL%Nu=ziw@?NUv-B65ef}x{>-CW zI G*Q}Un)6=Hz9@4GaP3~dg-K$q>p7ly$gY9S7; n-bNzPEh;2w`L`m+I|s*_wQGW z>N0?H`U-0G1X|ZV)EOFA6E1t~g>XOU7acHG^k%aOVUfbo_trbPbVj#_MhNQu&ih4S zM--3G^)DU`5X5)|ZU$t?ZLnHmxZeKP(*ubHo#^+rN4hJ)=W>cg;(1K|cB;|SpT=fv z^7r}uAJ5s@$$w3Af3g58A|fI!E8BlOR{+!8%Cxf&E)Bw&!CYqocaagsU8XW>1wL;1 z8Eo5pe!N2(ZV2s!`%obvlkjVHO7V3%;P)|n`=+)XWhgFOFd`jB`(O{I59U9?U&bqs z^I )oL=A-`_0z7@Ra7qj_0 zaF@by^CyGG1^8((6A&pUE-U$E98285PTCZ}?^1-+O7*4f+w8I zK3zcE`Ga1}q9gvLx;4-mcOIR#D8zpQs{aW;hu)TbV5O#fX|()zD=x+>pI;l7)lt`6 zoQevC`8qN7RfuqYQII*qqL)`HR+3NvxcmpO;rcZzfz~jNpE{|3O}h=GhmV{Axz?ff ze6I0O^{Jj(!Mt`# 8;KRElPMd7rRV zc;0@t?Xe5bqoQJH#1sF=??17R`ucIu6imfXq Yrv35MqnHqZfqgV(%JFd*>2yBcguC_mlRCCXaCq!q%C z+TUI(m5&qIc#s%{17|>G9_BJql1#a9LK=X dmeOF3v0IESU`i*fo$jfZ=IFu zYE&W}(b;UbP5N0eAjZya*W)Ip`|cw&vM369I6#zTF_~T!Iu{Q^iUp;QhL4ZH?`eP( z4J?`pe>0yZN={8JC@h5LFq@3Gg`-Dmqui)P#S%OCS4RV1XUv>fa})t$gajjNcQkVx zgRVc_DUjGq;?Fi5M~Kh!LhtN+z%=9eW=$y_^0#N=ID0TaS 493#6{#&M8tAg(WekBCw^%runKKaT(0 Y23CuJ}98LgEF~GIAE}sDba9oQ};_PxcH=1z()r*>XRL zBUZDs`A*xrdX+ry?QAG=nARc9PP^XSSbUDfU!5k{%2c!r=OUA4?RXzP=&_DeO3yzw zL?6edS*pEQUA{E2ECgV1#bgo7te{&L-)V{_fR -#o;A$b8I4Caei=8c)pa&pPw+Ia!OcUL?dR8m-`-x`B(@Dr;+UFd|lkrl^OmE zUuntCRur>Tg;VjnF^{+z+-2iJ%E} m39N6$dIyk%nE6&BDvxEwAF+pB+N?U z{&}h4hN9@8w6H-XK}f81 <6?m!)Ln7Xy0;{pU7@idfiM;ZLp!_6?X~3ICeSj^R zm)i8dw-G%xD)?LB({Mk%>mpD1TnP`*(m`xtXWzIJ)bnHFcl&^Uc+%vFBMMc;=VT|v z7`f(%F8cI+U$XS^G3aj3YGy8;usmabaq+0PkgRUZo3byeR9&gC+D_+De#cqvD_C?L zsoB|R(80Gw8oA-^_J2T9h9qFGesS5}?YaJi5wNCa5Ys-cvdG}TTj%~QV**jB6hP~_ zKy+>5TDczG9*Lp0UsAxx`Na|J&bUcR2v6gNuG2Z9+&fk*Bw8cOT~N}>KakO?9F0K` zlYHW8TvU&IY+x6H+G!9Jc6Mpg9-%ps)bn7gkG+%}@8;y;GY9Ot`BKbcHCQrF(}j=o z5(aXJG$ `_l5JGFzqc|& IU!439?hWQpr1c215xr| z3psO*Sf=BC6GZdgB}C;?qIfl^OG^wYTmx|j$OX{~`CGA2%qj1SgwdWj;KDkRU(aZ- zujB$4fagMN08l M4eZIf#~fe;Uq+dB+7TY zXo7fOMv17^$Bj!#y2N^3|6C3>NQ9G@I+7wq84vOIqu KKJ#&D=V1xLTAQ va+{v|e8B_c{oDM_SlJSueG!}pFL6&R z1J#~<_j4aCS?9MSOq~Lk{$N`D55eGzkhv&UC$yo4=>@kiK8`u>Av 5+YHReqVlP9saNn6? z(&iQ6)-irx{YGe>$3UwEkpu(dID+2b(M`&)rKF)A9vRJ(rOk`qMBPRw%O7Cu9GY8A zr_=Wvl76n{fZ9r*DfAqhVOwUcg&=*zm4br;?`U~uFd}52Ft`hJ(fc-2p3hH3uPKYX z8h#pxR2Xa{@m5_#7tI?QS?Mm$h!@zuBK>VyWAEwB2mws-4_N#+xQjF?^Mj6f-~vuL z3Wo{f*l2U%U*nX2pR9MKuT*Wq`)ePj*zIxIk0(L_u}S58jfh(cbYVC>Z__zA&!Xe9 zU2`A&byFS^kq8iF^H4r&FjGHzloV@aoIVX0p5Uceteb@qP<*SL8Ef= `llBGQx3_i(xKWzlAbH|QRMD_u8^+wX ze-=?ugSAu*70AbFy;@VV0Y`QWP|k;Z@7V2>eee5*^FIU!SG#AFh(s)v7QRC5Gof HFADcEy{4LfrdpqJ;hABlo*_>t<91U4YKPtLkKgYx61t+h-DGjF|bGO$w zUfN=P4#%I4O|_JpCmEn3*ARUD{m3+z>KZ8{lkht!mIZurOD?#MF2oVt!m3g%39`^; zspPKq+@iWlR9`I(E1ga@HdMwomCyt2yT{2nxl%hEc>6?C)I fOTxcxKzQNKn9yaN0q|vVAWksl^W@T^rGDk1>YZ*Yrh5!W~9SEcKg(pMG5Al zO}N}65L_o#%!7H-sQoVtp*!XwQh(s=mYg&RPPf-uVIFu)Ei}~nZ=bg2T&G+tIz9-t zQw)0Byjr3;Zl597+3!rTKIJBPf3U%66$47Tc{CuB57AE=yZKNF%E!S;*OZvQY5wX2 z^)H0YmirgTh$y ^<-CI`k$RZM4u z62qLoKBwH!FtWKtqV4xoGsmJrNWzjCIQrd*)_L=;)9{>Zu`Nfw&!##G-4UG>O}9mF zGC|@_Bx1U@f}g!80{Y!bQtl=l8#~2I+A_GJb8<7jwI8j)Gr(K=hv 1GTD;~{?bc9KsP1P4_v$v13%_^fjRMJmN+dxD9Vk$DzSSIm^r_#{#^UVI _Xcp3hsphqq78i70B&q@S0}8c3^@vyQs&A_}Nb`>#Mm zUYms;J)h?i+lARw)&IdAIrKI_7Uc^lAh^ UhsE>aI-T=Tag332!BxeQA zEDrPD+o{Z1*YkUe*N2uJ-$!E2g#{xS*+3>Pf~xx_gDC57 q`oFfA9#1fPI(Hg* zek*_P 2)_D< wAn%HDwQH-`H8qjs5F_Ow(TWW4O=UA^feuQBKWQw@%{u^}lzSKW{%|k7ZlTk8^4O z?(K;n+WtiQQIdc$@P8w)HAV ~*n3 zV^!3BtJfNe5|AB&j1tm^PJ*IiODyl5?*lIxWY#*zV-r#qVrUpj` KWP%miH`w8R{3VM56=FPkocV=UNrasnltlIsGs5(Kr9-Yg3xS zrZ=U1&hzSzltHiO*mo09xc0KT2I^xSTx(F^wpJ_LG;f2ErHy#SANrAvr7WIo)0Fuc z?|ByB>*{hSP3r?`FgTPz)2e(24l(4lS*J*xe`NKZg&QJ?*6JL#(fr?<3+ G%0|9v*kW*H3n`xV!`$#SG|_p2tz}w;I?|KlrJ!J0$%;~wuqBD zExjqJP>3R-wR5v@6@eTLfq2&PNR{|y2u_W!kVo@%X ifU31~`t9<-2jdV-Xn*V4+Eht9P+BittE@|H*^mn=y!}c0paB~7_zU|zI0}%=s z3}?wgD7Fa+sm(}FbxL?mhNMwnw65csRZ&G;f8lhf(j+JMxH$N_-FD8^YS*bBDZZUS z=wFs(RNroRFBAIjPzEDHL@>Ro8k@zg?g+t!7yHQTa_9Ai&=nWYz{HBM<7cnz|H1F^ zd4An^TvS*6Z{aCsE7+{=zCK~WSC-U`Juq%Hg0*1x5&>aQv*p5^wkAMlA*5ziJ4BEP zdP?Ox@<@PK?{1Mr$D?4QLI&i>LzhKWd4i0W4z`*{ERp2;qNPJ&QLlhGPS)3yKJA(G zT_$aGSkbg5?CM2v9+i31wx;y=Wqv7WnoS_%6q9y@3(i34_j7JeSyJ~LHZAQP%^n00 zK1aZg*mh*3>bn|1qDCbNJ~n*eYBCdcIWNe8N$<sHn~87%-%&O2__vL0=or!BV+)P;tAXq$3HteJc`SSJ35Qo-~l z#ifE>0`2~V7mIC%;!cq*@@>HCB!G(4D5w)7{|!O%m=~DinyCBl^2&a 6O*2-?uHV-<)Oa|vw=Lg@_ sK@i zo0ZsX{{lZD9=S*(A<}|eW}Obd#pOPaT{_)zJ!cv8zY&hTe|a59Py&`rBpa3>&0V=> zYlMh0x$@5=XqW1++{GZj3uR{P@HoNQ*7U$I>Ost02&k0*!EO|JSz4=%N&0j=O^o#9 z{8bwk+IN3FQY!`Wrxw7T#^>068JfD%b*pl}Tl+ZQ+V-eHWjsBUxA*~C2wCI2!&Z*! zd7OPxKn63_;0NES?Ej2^wE|2gz^{1dTh&zQM`c|~;$C%dJt_x+6L&IBMFV<7!T%6H z{Ffg?)^!pA!9HhZt(Pwb>77jq_#Y%NO4VK$A!oh5Y1UTIDp{Dc0~zTk&flBl+bf{b zey4m<{5_7)I-MP2J|x?kQWI=`L6kNzVH%r?6NO!DmXv(u%KQRd{r)=3WkGgzxGsFT z*&9aMk6uY;Hp9G9EFXNdC*c5It8`=mYdz+tNK2c#FoFsWk|6PQ*r09wR zfhJ!8o97Vi>7;ggzBsAea|^sReQ$I;E`;f>K8GwJROf2Q#v244inxmN;{GNl?2V1b z>Mn<=OxUA#ms&M-kEFLIM+%3Ck;t7u7Z-%a`67XtP-O6px3}DX;{N8VgWsi>O0d{X zmhaQ$mAty~??HG)sFBTC4f$O*llyTqHIu=DCYjs741zNy4J`y!Ob9I>oSMSV2T$p8 znIO049t-kPZ?d@!rKn;)+Z)Y5kKS&d!UF{M%0&wDa_tVrf~i~8N1OQuZ_8$!iU~&$ z)%4}!(th(K>3(5-cTxK@= KooR`AgX4rIsV7<_X)?X8X^d*DG{e z2i>o?Te$0oPFvlt4?$bEcq_PDzDjRXcWl33hkYFlvN~jQqU1h7@4IgNTwS*BEz8T` zYv1QyyY> tR@a$IYcpU4Hf0R}JpATzvHdSty{)WJd z(P7);FPnS!JyUB<2MWollu&?mzxawulHt_2zxm5gch?K78D(pQDx0qoM2inNNrAPM zL_9Ous=^606ME}z{dHzAHm5X-L3Kq *AC}J__GZ5ry!#hPm3V~0Tb>F2Ldhotbi`raiv+~RhgzIl!7V;0P@+! zZ%2Pfi0N@!O++gF%8YKm5jCykqI?x+ogZkHcEtRAf00`=)2s*q$-@wxcG{GxgxV`t z-+}w>L%Z|^-}@z5k