From a08e198ba45bac6d60fbe601fb7a7f2970b8076f Mon Sep 17 00:00:00 2001 From: chengaofei Date: Tue, 24 Feb 2026 07:12:29 +0000 Subject: [PATCH 1/2] support pepnet --- docs/images/models/pepnet.jpg | Bin 0 -> 274159 bytes docs/source/models/pepnet.md | 121 ++++++ docs/source/models/rank.rst | 1 + tzrec/models/pepnet.py | 286 ++++++++++++++ tzrec/models/pepnet_test.py | 455 ++++++++++++++++++++++ tzrec/protos/model.proto | 1 + tzrec/protos/models/multi_task_rank.proto | 22 ++ 7 files changed, 886 insertions(+) create mode 100644 docs/images/models/pepnet.jpg create mode 100644 docs/source/models/pepnet.md create mode 100644 tzrec/models/pepnet.py create mode 100644 tzrec/models/pepnet_test.py diff --git a/docs/images/models/pepnet.jpg b/docs/images/models/pepnet.jpg new file mode 100644 index 0000000000000000000000000000000000000000..545802297bda0dfe893c892b39cd65fba67abc5c GIT binary patch literal 274159 zcmeEu1yr2Nw&sro3lKcG1_&D5Ed&n`JV1a1hekrMMw>tq9D)aTw-DUj0>LH0H8^ym zjWyFb=iPVjIq%NAGqYyaTW{8FR?(}g>#zQIRc-tB-v90Q+hyRMih{BNfPw-5D9AtH zb`FpOupOTWZ zb8_?Y3kr*hzf@J%)YjEEGeWp!a!PjnF?=|V+EM?=T_MHdRH2eP3NqGK@d-XW6J#C+vU%*gi^ zi{x>1R%Hh^6TcRe)a=a|4jHq+$^+Oh(te}tuMrmTe?-~86ZUtyW`VnCD9Fu2BLt*@ z^GmjDe;l?#ipaHrU9E)=@dI1MS5ZaRTl2meo7%%tT0Nwu&Zp98RKNN*@&EPlU#s!2 z!|*R&_?Ia7mn8hZA_=#TgC3fNR@7f+45#K^CX}vnP0jVoWIkUtKv`ZfcE@JmQ~>4wuVLCGXK3I9Kif6= zuAP?t)OnH}%E8we%9e@xU)I_ir)qF-R2+D^U@{i9433B8vX9!kE$E-gMnh$p=m7{XWaqs$fBKBcDYjZx=7_Hx#8+r0w?J0y+ARQN-U6#Oi1wMbErLvGdQf zuD=?JX#CH9O!U4BlVfQ2AMfA~KOLz+{jb~k$Nl*ytMmC5_LjUn%gY{si*iTSF;i}KD7(TxJM#Zm`*gYVb!x{> zE_k@Z;NXNW@%)0^7QGOY26S8sUdGAv&ZXiq1H znK|~!%9}x6f|gE%<{`@@bk}Nh-zm>;@apK`7{5{4-}A3i_IJkoZ^45Ezu)DTzsVol zid=B^ch7`Y`hfku>&liYUH!8K3Jkw`r#$L#pZ>+{FDDKbc3~3yMlE?aCGQ$*KCbsF z_0vaED6K!*-IGPr%6uhH@(ktwMN?NlnSJ9?{9!ert1vtC`w&|;QcB`&C+Krt&esz5 z6s8Q;@NqA{W{F1WkennKj>|K%pO0a@-p?itlCSe8W4Dm7@hk#FxHc zzI>mo!Oq=dW&V**T}0|8(m_1Ml zaZ0OX3aLa0RbY|6oz}48@P^Rv$p}NX?8494p=>~Q0}ly!hu|(avFlPGflvK%Xq6=1 z0*7(1cs<O{tZEO8F|u-E{F$jIZn;!b%Nx zFC}YBUhbXMJ!}=SWLFv%qfKMK`MVm`6AmkXPz`mgbG{4WtbDG%6`uQn0Urge%zArP zC?k(~*W8ibpq&WA{1_!e`vAmVqbqJq`8XwMa_mKIO7`}pLdpgarL8rzy&3wx!{wnH4z656gU>)$Al=CAFk&{V5lQcH z#Vp%OyCChzNv>_PpD(|q^@&RQexoytdU;0BFg5mqy9rcaOLo4X9!TgBk)v)e0? z-g9x`D+K}HKlQCDiCnXxjTe@-pmiH+gq-wD3V44%DEqz~-_P!QpH}uvut)}jL|0N= zZ{ieenW)|pa3GS)t2A2wviy-ssw)#ylo!zO`#8X9^{g0Cz9T(Z|@ z6#lTA=3U%Af3{#am=^nZCHk|H2-7?vTsIkD%MJx}uR3!JXAW^aVzX{+J&7_Q=T;G{}~tkXPl`PeO>>^2TM^SRi1GjBGhoPJdpnHC-v89{cEkzasO3oRr>f( zUS{InvHpm$xNyP?oyljIg3EIujy^Pb5=RsdjNBsDC0|qw)?cMHT!Y@!J7LYk<0ZH( zYLi(q1nUXDC=0Sgd~$MBxnQMBDr>8OHzD5d^V|Y=_HTh+4svoA)f}(Tjw{o!wk?zK zTL9{~bZr*($5Ct>NHb}N19RVx8)=hytKI?~O%Pb9)XeJPC3$t*HC5d$a6czLh)=k% zlIwMMI5gB7`K8DcDg)6_Tu{?; zLBXedwm1Z;b$NC}2xL8H+w=^pVz&u@X49OxRNZRQqGl-Guj^e%EwARZdQ&ASFL`sO&}x=8wk`WU#9 zaLq-Y<*rG#;RLSsUB}Y}(VZgNF2&fZz$iEQC)bh5vVH3(D00td5RBL2lhrM9-G(iZ z6*-G9%9_V|Pz&NTB<>Y^p(-*v_m`Q5Nr}J+-not78*M!nRohjnu!ns({zQV)up{c& zts`AccO7D=ar1r^$$@XC2qGwRDOn@0v5V#dUe?sd7(C*8926WQ3Ht`96+=2#p@>-4 zVAiSXrmbZSu{AX%@^#t4m+#S+two&j?fSx6SxxFXC8c}PX`>w+9UZkONJo`7Ql(DU zUA{t{#~Tlc!E;^HQg>S>Z-E-l%@3;9M|z_1;Y0fGpNTTZNTuy|JGrI|O8>|nSI&9O zGKDdES4=^UO{zVWuGe2GV$w0McGU4;jb4?eq(3)m6-(&`)KejtK>=@D4g}#A8x&(5 z^yYtgjHY&vo;{x&SQakOGznVOptK=tBj7$|D4HFhKI5dm_@W{tvuT(GwOWR|?A1LsB(>2ZKAHn3Jl zN~*SMEO*7!d0CscUbY(MElu#~%7Z0C_yGAKbrjMiHd^A9NG-#2U5$D?ThL*ZMaaFqK1ZG)El>aun zefq3QnZmSMNe)#3vShx8x`{sNcL&B2y#k>FpKHuGEl=cSXoEhf4ZhQVJPc-SrO;>v zXX1w*_AIhC!VZI*d9yq6DeUdD(#Oi<+pWxL_t%A=@|y!Lp&PAtghS4D(5#Yfg5AUe z-TfdE8kHjI&UFW;n`H)2vIfwqbYwc)D@(rHEK}R=M!c7 zH7!J-{+uc1X-7*{J$rGMZVI%v1*fn658+0AOGG{%Am^K~0vq>T5C?NzBBM+=n1KXU z-Fc=$bE3^?*@=3`tF@sBY~DS6@B8i<4l^U_Qx^s2V{YX>-NWI7`OuYCZ1Aqk*a_7Q zmEI)R$;C8mGva`nQK=MIiK4*p^5rn?tQ!M&t)&;O(r~yYtG)NHx_XArIZh-(+tveT zlk5T9GVV$k6oN-OrDq%C++p*+`AW5OMY^49)I{o@r{!kHJ&T+$jEqQ5fqsG1ZD9w8 zq^Vwq+OO2m`L?h1TVm5r9Y|BjhL!^Q9uZw`=YHvX8h_HO|3CDzE1ddgyvxz zUd4wRy6!o+S+v%Xegd;)mxER| zo4@V;S%rQDADpJlHc=Y?T1=c=!TXBEKJ9L$8y4ZV%4HzH3NKE1^MbOA90c5QwwScM3TuIGk8eabbB zN4}wEs{GK2DZrG)c;K%6YopiwtjsTcT}+~6Fi3l@Ri+M49LQBtG#b1;S*FS|-JeNW zScxZQ815r|h2}a<_}kTsX5UgUs4JbevJEk;qgtg_=rO^!MHnIII441b)-Tq|vLOeQh=9{=#Bd zL4=%UI8Usdy2Q|D%p>%S&T7uwWDu37Bjb@Zcq%vQDqN8XDu5#SON*0s!Z%kF0+;ut zwjONM{H&n(o`B6_1i1nak77#9800Jo6=ZE+24+T-m*u2pisBf^nV)9jP9kw@msa#! zAeuw%7I1Dm5h@RDSVD#L$LHSy^-Gsj`tpCjwO>E;KWP-S%;R@zvgVB*{&%;O zmX(QSU%kj>c;tszxk*T^0G_b+Ect#yf?*gqSc6=1(3_#=oy)K_yH*3Ia~BbzvrV#8&kl^yJF*ahv_Zo^Z`C|LMh#?9hiu?j!kI zLkZ-$j*DPLbdV#hy6Hx*pAV3RVRY^-@SPC}5h)tZXc#G)i#n3%s;R5?yEZkr?z+~u zC>dnFpR*gF$Fz(6P8zevmJB_qeRu(nCZFvh?tiYF_#~VpAsoi^u%qwm{Y_TXCOf2btg2a%J&7W)^NMpWjk31o z>dc|NpG^iJbWn2SUx9^<6T27hO}G`UC|Ndz4cUywkgP}YpOno4Y~|#p(^8CvyB?3W z(#a~XBB?R~e10hHF4qJ7i#5#qfW#7-wo###hu-(UQg@2*nZ zu)`_u@1kE$7m?&m22Kq*K0+0v_O30s_mhX$)TZ{7jGAyWS}0C2!^2^tgxmcirvJdh zdUy$WWooN8sv7m2Qn7LX6!DoLA`UUz}c+_XTpDve414)*<%_}Slr38aJYC_0#&Fr8GE)7O6>_Y9+>*AkmbnZTOdO77Qp_16d6*K=LoDrY50`670A_|l@C}+&UtZn zmu6d^O>jzAoty8|IXUq=RU~ehOU<=Wvif?u@sdzlzDuBrqgcF2kZE?5GL2JE6rpP9 z(=>9`IeL;|O-yuJvvsJ;={koSrX4;gc=cp$W}WbnbcWPqV=U)lq8dR5~UJ(okJr#=`RY;Oo^z6?*7@&A%f4<4{2Dk)ei|ee}C=DSgpiieTzXeZ_y!EG7sh zsSFpKE|NVMUvR#NA~RilBtFU(SX%D+tPkb-AnzonJy(*<(L3QXq2pnfPl--WCN-mD z2E(b=4bCZ%ed75Y<=;3WR60ASA2sL&oaQrM-ZOjZXBE>)<7bp_ET=KCzl`I|EIh(N zoPKA5Xsu1OJTf$@WMWUhHfh*MuA((_Y{B-@NAG1VOXS5u|NhZ^|IM2N$t@+f3F`PNs27=6(J{(s?hlCZJXNiGp)pALA79h+tBq=VyP)vq3!iP z#eJub@-v0Khu!+fL!QfU-zGS2z77ckm3}ODKWsN4YHI>DRp8sksQ0;u*1f1am2iR2 z$jbxr4h~M%PBbm0gdOPScJf3Ry0rfI7}j=vE~meQD!qHLu(A3Te;Q*KP;6nTDdadCc88+S1lZWT=V zYv!N_{nb4`w9raV{!Y3die8?n#*stWOoQp^5d$j-50WIac4WbdIlThCHaNRa)qE3D80HETjBAg#yF0 znO!Bq4_frkar@sw6jOn}#Vf4&vLBFW8YKKpqx|)Eof%M}&bI(965+3h#4BsgL;9-Q4(K*yC>F7h203O|#u;uc61P${ znhIQwy13^fdJDX4a=Ia@X)(SdYoZA~M5vs1Yh3OVAVy3oOgxtl@9t8Xc1u(4B-Zxg za;YeN%k6yPuhP)yso@DQc@U=5*it`PTE1Ra>4`0j%CivD+7yu3_Zm!tVF0yCTsuU0zOdzP za`#JHy7G?+ec{63!MkhkJh(@X7v12iLJfB(2SMO$8(ib8C=zteVY7_YO^{cJWdgfIGoOo(p;N&(cKxsn&a-McG)t2>E5T9fceL{$o_z1k z@iBWPdiX8iQQ0e{iS*}b#bL-}PaDPa&U*aBL8{k!W`AtGwnphk5G#5i1qJDzZl{kb z^q^!FWhEj6${ur)PR?9Dc&J%ToO7Bg|cyT_L>AQ6qE_ zE*@gmkbTa0Own3)=@hWTZqI%DW=)KQ_nGqa z2_PfS=IsKe>;z1@L7La#%)3ot-^_c+P3}Mi3?q8eKvF>%XL*8E`w8+tI??71ZloMt zLSuUp;L#9BD?a#KJi&HM*YPw{=!?>M_lSuH)>k{8E?y#eLbFt<-k1A=f>(fYDF1I!6yz8s|{p=QUTpbO3^X z9u87(ZAw&X9QT{9o#7`Z9B8A!M4&>@mQWjvN;I$~>Y~=1C>QNonPT+24JF1^qP;j@ zvY^lg0j?GDQ$7z%O??a#^+TD+(pUn{826MKl#^2ExILUdx`gZVFAvfMn-Cy5<(f%| z7WXqbqare?s%tSbqK=ngL2>B&2n`gI1SQe3!Y=U^sG==$bMbwBt~VY`^k#EtmL-b9 zv4x6GrDfH|P0hTw6&U9{^=?A(%_EfftR!cDH1I}xmK_VTQnc`-4FlXt_l}ko>T}6< zWze8l^~qQ=#_`AY8sj#W3!EYC$0m>yP>y$tK+$}kmtc2j@goTu$dq?HR~Qf z+?LNZ$7LrAGT+=0W)%q;tRl?BqbJ{xeDJf4yje6WDrgo_EZ`twCuLYS+f(fMV=+e@ zmbw;M^8>7bc(Oo%=s3FtF1bL$t5VUv6+Ti^CoOygQb(%~p64u<)CXx#1*7?UC4YyW zmQG7ij+b$3TR;uENWwn4f5}9*cC+6aATtF_oIQR=JFJKsq3g;(2%RafTH?y&90yehVH zeqL$CG>A_yB&k8ehK5X;I^Ne_V}0)$VRfuhf8}j#sALu=Z}rIJ#zU(YR zC7^{$AxneDh4iUjn6$z4I~J)Xm(<&)Ts$bcD?5k>H*SGuoqGgzrgp$STj>pz(S(m& zzGC6FaP)$q^0|eE$#P)7RA2IFCb}e^3j!7CvU{vl{Epp~`=1Doz;O}EOCQ?y$Q^Eh z>;!)?%0HzB{L{!)Ua_s7*i_&TJF;B?o?!wErLC`u>|IESqi>Um59-p_SHn95A1Td|UTq!Gc-q zK%LN4`C~$%ULqMIP8o^MYZZczS>SmzNHL#k3XPuI5;K2MILS@xLj6U4fsvlNa(!)X zLU6t78FV;kO#^puS#_%LlU8`+)`qRQ86!b6Qv9S}8*Jdpos~H~z%S<()i&eR{ zqjp`&^`0yf`O!L0sa~Nwu0^!mC}JjW`WTtRsCv|L>@uLCMg~UPlTWshbjJjdb{m)Y5no zwlqPZ+Qwr&sXx2ntEQ5SP$5Iw%UCETe!dCz@Oc&gkr%z?$%u~*ewjd50&{ap^AOvlC?4NusXp>_&t zwsl#hA?UmX2wY2kjx!|l;~nI-e{hNEWs538zYB|z*`C=lrc$aItu7SUm44KPvn)_< z{Qca@d@}ji3U29KbWJsWqP#!d*G=hajkJzilSQT zLFE-~Y1qbatC`5hs5K01>eD{+^zWH?6XVS}XI{udV0R0g-U2*`fcTxwJkRrv5j;Bt z2~^y6cBie3<+8U?6;j5PD&FBr0jdNQ}!n1cWf@cctXZ@UVI=PcWMSKdkFU0 zcm?&Sv36bhMPR<&)A=#m=a@*mqxmH*l!RB;{%ng474PvX7t>jAL+e`<%}j~&EHJAL zYlaWAn|?#wo8N3cL9ut+fl~yd7>cs@vVqYGvmZ|r z>`n!D6KxvJ9$#2Y5z)R@VX>G`J^Ja0V2u;>yj!k)@loTX9!CZ-JopX>Z2VXOJmm@&|2+6F~qD7wC)*(sD4tc@9us|;}Qxi^Z1am6hUh>sO-cL zWx~ORU03p~MiC)&gUyWD%P9VsG#6)O->i-`XQW8LCOgO7P@CGihq!i$G3w^Y7PEYn zAMp(uMAi!OK{<$aWY~2@71Akv<^)fMnEA%`ACuoW#n(CR?eF%wM0u?VwxNOJz~=43 zWV25x-%tBzYaj+;Z9>;j4~e4Xsqh~^W<(lro=r3C1BNGgy22mj+8i5rUi!IP@;_bjal!b+#6kUV7;MV zJjGek3y{X2TmE*IB^>1D!2hf{26mFB1ro`R4l$>E-#)Ne4#5}KJ$z?EJLSW(%;x&d zY-VpJOrqTUm=w+$7|-li?IVb^KUZL@ru(X z^}J3t4RSMb3ZMPi##O$+y{i#=-};#3z`2UaMm%UiQh^PvDLa%6?Tw$GjzVZ;DubavDAi4GD^Nv@p(%p7gj-1KdgUlX&_dcbfPL&QeHM{Hs~% zOhC<}H6^C^wrXd~5|g>gQ6B!xpI(mc-|x@FqvS}5>K>Qwwr%D)vmjK==Q_`*KVTlH za+DPR*~t1bczA)tVic{gf=?rg7B^b8#Lfs)|B8X$PoZ(?E_|-5l_z5E$>eGS_#%c8 zM=58r1aLka_ZRzvuH&G*>b`W(ST*LCskfCs%l#r)uk-bze{AgBTO$D^CeEkK^no=& z|M{9c=fNh5%#QLN8_J13$}NDK(+-)Xvp~!uB-1^jS>rR#Yu9LRBzK!5pCms>VAYRk zx3mF)%jmwsQ>8k z%6eEkKx`kBZ8W>geQmM`)xBFPi6se29hF$%(P@LOj}Hjw718v>#qe5Pi6@|7OT>hS z^LftdOB@^Py6`~;6r8TmD-e-_{NJ7D7m!5_#4-h}UJjz-Q*zF#uO>C+?X8f$_A_{_ zV*QkQ66ulPmX+K+?bPx&V&;{Zc!nGt2qHDQEBz~;{eiQED~YlK@fI<&kZa|fIlI88 z$rnT?UowLOQ)?fInWu*8qv?fyZGo{w6_|3xFC59g`QB|ooqDqM(2a+1n^LlKZijpT zy}W7aIdOChfBTt$F-noVm7O2`c(qlC8*ca8JdBTzSec-tIn*Hn%A5`jG;$AVI=0o9 z#r{$WMx^IjZC!$ADzoN85A*LRF?Ju)R%uxEl+%09L=%9!?@)yTGc@;XaFbp2Op=g7 z-5^1!`s({8xc4UxR{OO)OWLY2on9jdM78xZNvBclNOFsGtVG_@5S*ykI%(KB zdnw8t_nFtSiwW@?$-uZho6dE&eZ6K``9C4ineyT(@Ui3&4*KXz*_m^ znghlUE@&qsclm1B>`w(sFi+r48#qvjH$N@(;|8Z|;KFeZKnBSiyR~Gs!x10!oSNGs zWpSu5D|_Cw-nj)rIo4>~R#+}L-FVLi3Fjng$8G@>Zt49r*3h=qI`~=+*bU-Yuw{GJ zR5?k$5-gQ-qlI8etHIskX;(8hn0f_61yM$vu76a;DQrs1lz|OU!U}dIs z+n2Qs1=|iQw*Zk`o_)jOQA%xy)l=V5?L(K@<^of=+sZCagdxF)tN`cyB}2~%hEEAx zR|i3bS7AnNlmcOrn4Pqw<9mcL)3a9=c0@U}HYf<=Mt=0R2Ey@lLl5l(TS$*57tv9rvZJFL{=2&%5 zypmR&O4!+b6+3vZzm09@%~wpX6v?j=bKRx{KIWNV7tN`W?gcAIW&4DuQJ(RYf^&wz z+EFnrCKM9xW4!|Mwf9k+c0eEAUB8GKh$z)R^vszUZ!upLzK)F|gv`8ayTmRf2zU_G z8HValcFfw&N+D&gYx>xsXml%p4ioG?p$@|gS!-%kTVFICV)A^`9o5o@T4OS`MbTx+$&HFeh=J>LqovehS>mV| z4IV3>kYir-#Imxvt}&dNJV5ug^gYm~6QOdB8mvH9BY4TdSWwo89yhqt!d{w3Txnzh z!QHZ33|$I13HI?Q*li<_kTbtY4J1EP*iZXP9DurCF``m>&oYm#*P^wpYI6D^_s4yFFzo?ENjue$hy$88Ny4A`& zodwSENC3~4q6c%Bn#O9(xHfsK=8R$OpSlENOQP>DS&wX^BPV99NJ*Tf!-=_ZfxX-T#Lvr5pM~pwx%y^o7bQtE< zo0kudYKLuKMog9J>kn0N67zAEw9?*3JI2>A)mFWdLCzx@hUg@OZ1FtLAc3r%uLRxr z@EixkJ^L}?qYIllf6p|o5ansdl6?5JK@n#|AFXiTm?td8*QF!*9VJ;EM*PIy^FzJ$ z>~6UtQMYvqXZTEv&l~86Xmj5J&^>wj<|&@q7nL7BcA;hN8*4;fKgflPFINQH3xIPY zu`NQah?HI=@O6u2Sd#2jqm4ETI(XQwqzNq|PMsXr>f{qPEVv)M6m{r}&CoWi=>S`I z&q}{f6@khOF<{x9uWL{cZl4T3ulfHq#J-;`+&?;Elpnm&tW19^D)5L<^V_o-ljvhUeCN|-DlT9$2Jh9hq1v0Zni@NY| zY&-utMdcu58ZJ$InmgsVX-cpab3dmx^ywY((25E7UNf%~I@$6pmwC<_HEAuaY4YhA z6|qk&`e;Xj0yB?{;*K{Xxi;+%UpGZ%ju=8mf*}N4t#sQ^cw0x+yzQ}pN|=BjNG#qw ze0}|t{+>FPbh3}xRNhQ8-ExH9%sKy}5{nGMWu1j~_!ZrTYQl=k9Luyo6R4&pL#qmz z!nemGR+0h77A;uZ(WA6CQ@xr4=}6p3*Oh@FGxL1Zpypkd5dRw0^Ozl9yV+^g2A3a0p?QkZ|RarV0%6%dtr*Qd1{AUcE0GDA<@p#+%mSEczCJ!R)Ls}`hq`iq@Vm!u> zcs9jHCkl;@Wv68Bbo51PK0mj0GJ7UJ^lJSRn-9NM=Yi+%slFnmklR0 zB%06uV3QRdNUzPBo)a7u{d>w>A)0sx-4Q+91<~QYbomhE_1TB;7GNX@lKwYft*#`q z|DPrGb;1-sWWwYl@=DK%WNK%kjf=ujRT=uJ&jg$P9v}T%2F{<~QHJ2$JmT%{yiTr5 zBw;Q16mP!uOGbEFhe%*ruSf?kVzmb8PMuPvd{fg>7UX!#59BFz;1IwlPa*%93ibdd zjZlOHnVykJe`7Ju0|ywdghla8wg($l1%nfS45=@Itngr>ws zjB`7e#zTB^9`|usaNl=GLY0_Cqsk0seB3IQb`7OJNIby!Jmq8`bGEayMNCs_VV!w+ zaf(I_8-W*?G{ajRB>0iy>r#@YoXF@#eU*+26>ZFAW@hrENUxePj5-2(xY|w2(NLYP zL9nDwAtuK zd2UV}BaIAN%Pab>W>D>zk_aARgMF*vnKh9VWIH>2@{RYWQr@0_s)D6|lGaSD00+#i z)`eXQ=Yh>c532XYPMs<$X2~K2aK{vu@s;MKa=q7FkT}|rse~IclvA5=`H&5bRShQH zol-$!Cxv^>=;icG;I;m$jf8#$*r@v_?p2G>q=}rf zHQ5B;Jt^ayqKgkAyXnn3ess4$>^o#_M_}14aB_c_`^fk)LAalAipt~5P_UERm-hpF zK+0=zB$j>xoK3c}o7xCVJxD;7@{MwhS;R;R9W3FKDzE(Ll@+;mnG+ zdxrHwTRjKla>Xn8PQ7=h6aHYx66?F6)k{%osGPcuLIyuAzyK@K&&zcS8 zZ>WDa^*;C*J%FNJP_dz$2M+7?qlHK0!$CdzdSb|QMv^E87YFhLa|pR@rO1VRZ-ks!#354zk?Pe3?t9XN1pJUEx8yCf?!(E_2S19*gPH}ESp#ls@36rO zZKqEJ@}kV?*Df&{)H7}Z15W6%Ds$!$s=OzF#mu)^kBDZb)dhE7@6|g6;P4IIzR0by$_(Z!I_X~q#2B?1fyiumNFs#*mjg}zuQyd?REg>^_>>Oh9zup zR~Le-DydmoGzRx^<>w>AN2#v?dgr&ZjqHHj=#2C-&jsr*DCGA#wJid<7q@_a+j<%t z^t;TkLCea{NwCSpv5aTB+o98h661yMJsAgR8h9u1g)F5VE*O)3md&uCjKzp9f}v;V)&B@0=xEQ& zfpFEFIh~)hd9J@K7Js8AX<#hJftqV^56tL~EJ8shD?dv#8qbW+PSO4n`9#FR`yD#n zW9*XGBY53rN)MEuomjl=IwnCuhTmnVd*hM0U{N7$OTVJpkLyY>RgnH;U-!}>GCw%W zXezu;zzA8{=S0X>-dmu|;qDQ(+&rXrCk{(yx;a$2TQRMzD zww*jL5A~PGS)sc|29*fg_Jn@9&W5L6M^Wz}N5a<%$Zbc~Uu_M5rnb;VkQ}?djI8h5 zGt#(WD?i#qNLu|$(v5%ZjuaNJ$suQ41&BC(Ph@f%Z55<`>8roQ;28u7h`-D@y%0Vr zrj`C&2Oa5=#()Q^MmUrU;x1L1VCkUnRWYu=om`2M8r*)d*{KmqOAgHl&{mmpbR;_7 z=TrV7?(P#9{)Qu~)>mUSvD=u+z?l1}t4oYHDJx-LNV0qWp3KSDigG|Az*&Y|yN6Z) zHWG})`>-@#<=b3Z^!}(Q&*l^C&MDLkN4dcg-9*#xpyiz|_fac?%k}7;ZI?aoWsUT< z4?Zws_GzaL`e`}@eFTbuW`x)yh<6&#gCulff6R_R9_&Xz-!F2qnibj?(#q`fc+_tx_gn7Pw%t<#=1L06pO)(%u^7nF@vk?b z({M~A`ro*OXw658iy|qcIvbEmL3HvXH=-JaHUdW8ZJ5znbXwwYZwVZLoABjIvia%P zaa5@{CH(+(x>sb5gatgY+m!GctzdRHd9fyYNoImwtw0e=p<}o5Gj?Bvlh^uw#i_6O za%&cM64(5_x)5g7?J_>*$oax~SsKwckT<;RJf?I+~`kKMZ_aLW`AyTzPK|Zbd zT|au0ay#=!k^AeTnAN+B3{BPWq7@oOk~*Q}cftfr5;FZlSxg`|llY-+KUR3)>JlLm zJQ^z(m}3)YQLyn_aK>M~C(h1T@z_sGS!yW^83CAh4zGgFX;vnFtEsPQ1kV?}hlw6M6(<72Af0=8Jejkd}ks!(!W4j2(>2g6Q;vw`{ z;}^4ESMMP9%pCz5{)?B+Ci^)%XNG6d4#l?PNeV8J z&WZxnRu`KVIjBxvucoc41%1}ILrUyI>rUUg-M4>8qr6Ejq-xU2>kXJ^$l*EXx2 z&DSWBPMnJpx{OkgI>XF{Wc^SL zi31lpKD0-ot7YMxUwkB;d_j5lPs!ZtuXG1DmOQ^tG${^4>h&WR#Pw<{;9%48xGt@w zvy7S-H^;FX7l#`NDxtMG(g=qS5y<+MhOfV&>_gDKx?@|aQwI8mEBW@W{E5#`S48^M z-oEyZ1gTd^hZ8JD>byKU z7p!)AcR)tL*AcO@42myC?u)$YUyg>)IK3d~ZM$GL+`K{B2V3whw6swvO1tE~4<{|^ z8o{)z5r!bA_W|>x;uhnbFQ~UB#5iTQu#q?e|m=T0b4G;)XRRfsLn>C1zg=xDROZ6k{;~t z<@~tqxq9q3vd*w|!aAy`*BWaw)Yfk$@Jiry9bSG7(osIj=rfO>_R-A68-L-$FGGB@ zftx>ru?Dts$}X3gzDO~woa8cGodpFv4e{TMQIjVXm!QFq7)!{LkjRj~Ub|yRkZ$-pxAzdFFjdu0qd zZ*=O?AoY=gp{?nRo6CZjXj$uyiSLiRKt+lTi>QNS;0%JZqfFkFMyxe?h*~&7pWvMm zB5AH=@aY!de`X6I@}ViS<0$wJnjT-^cR+fuPEw)Ifxc}MwY8GL1Sn7E4FwlVOLa>C zX7V`ecSjY)d(V&O#OF>Vix6CaIxxB*NL85>(F@x;UI(GNXJQahnS$WOphXL*%>2pIAS+f6g{ShjOfTKR}T6p zH`afFyOht*YH*Sh&Jo3QZy2a6(nrdBA`55`v^$GT(1esyRpbL&h`PAuQMJO{H*_-K zq#mXuNJHimI1tgIaZI|2z@G4X_-#4u!HI**<3M$g^OuOujTt~(Exz=OsbD)6>RETUkFvF zS9+qYqaZ6W*A5xy4-qCTa1UU=lhb_*;52Jw4lO=xov!v(ST|C`I3~9kpy*ZJdxO=- zgjr^NEe}Jw&*HGR2d+(F1Er;0W)1aUh=t?EUYDy_)Ah_yyX_n6R&+U$?6$H_xIw7l z0n=w(Vj4n=^V=Rfgg_$=yn ze2*6hDA?edt`~O}2TMub^`Wl!cCW+U4ACC4V!E+9YjOIV$Ko-BPh{>3)Z zcn)0tCiS(i(@WdXU~Vp{blLN+Ci>zWCM#O(0m$pOnq*RB7BIUY^1&s4wBi5FG6#N( zaOwRX?n?a{9H%L7_55$;O8+5>b>@}lo3ow#KiGQC-It7L_xRI6iU^}}*J98e zl7m}TeWR_Jb3jhL&U^J%l#gWVsY_)N_v$-;#T5CW22$i;&| z(JUt{{E^QVGhCEl*(usr6KAsmYvNH_aYUjyvo^fB*+&;&ZH=srxS=_HW*_ZPa6blz zgH_%=7s23*@p@mMU2@W^J;wWfIIqB zzef2ZRR* zBt||gRX^2+v<>ADBb!gp zIk0W&?^=8#SHS)v%bK!JTHL~nwLa}X{8USwY#VY@Y72dR4ORgJSDap4ko9BX%T0=@ zuXf2uc-IS=qaok47u?aA8X65)FWN8)@VBH%IqM=Qq4dZ1BMpi?#}YiUGpu5X7C$^B zNjWG}b|j_j7F|utPo}L(S-R|ubC=0^wRjY2UR1t=0)F~vfQb?b>;l0bYpSbE;;NFE zB$uz`_b%>gcwUk~Ow#IZLXrGpAqkSBzEhn&tyo^uSVQ-Suv3=iAwLD41V!5iS*={Q z!sUjlXrr2VlEnQ?n( zGVB-fm1Vx)+@vfqy0c2}ODpiTQrswQjHn7m0>I$N^y!w}KFFCe*Sj0d$|L!G!rUGH zS*|9(EW@u9>oST_!G^1eR>6T6%43|p=Q3Qc#*2s*!X2Ant?8;H$f(B=&(S>F;|okR z-!|OqC@`z8DNF0e4Di_(&JY5$$-Bqb-5lwY%8Zn{~Bz1H*@Z=GXCP(ELVN}M^$bFIOLB~Q z5ai5Sv}&4ef?xi=ac1awD^)P_SjjU>E^_1Q<|^-<`!}QVB=#Z-&iUcacH%yA-{gWM z$1_UfYX;0?a%mh_V?>|JBj@f3G1aPXHj-v+*G~h{SnOHz7^3M?mc+MZbFV1HExT>p zmQseQiW(m+YYD^^TQ&-0bqKzt;-jsSFx3BqPHkgh41-|`nC=(phoaLclyyDyRYpz) z*`Uh4UM*YFrJv?J#PJ+cFt0D_`LUN)O=b9v^tk@MB9Jl*hc(Dat>$>`?Nb4X+`|pz zbw6@5yvTE#R5cUGG6Z)gR&rNiq;jCa4@7FkLL1&od0(0#-g+5~t=f)+qP(<@CN`70*-EeumYj9i*VsN@@&T_ec$Xh7xeQbzm}e z#k4^LC9QhokoUg9vs5c%-6T<*e%oGZ#}c=E*U;!3^NW?mccs;hUnl|&Xfz1G+W1qU z`emzn1c=Am$;_j)N3p&-=UVeGO*`UfKRzwE4>H7x5WN6VOn?c_d{W^`tz@zs6|lGA z0&J4{d9~2IK{u-C{J4|0AaS@;@ z7qU}_hPExmA!hKRN908QR_0grOUfO=)3HY`=V(C-vl5& z3gein>^>vaO5h^fMQp1^j1HBinq-g7l48KrV3f?ufBnbq;+i zv0pQ*m)PqFJMTMt(bc@8p$cSgz1UWrmKj%4_K@Sek(i*fyuGycVRze) z4Nh+7U$cXf#ZVHz3+jb}J76a~4mZ>vJ)d@hTc`SE;w$Yd)p&q{TyMZY|017lWkWOp z^`vZfAbT-lI zj4L%iU;Ta~RO=Bx^ulkIS0oxJX#V}BB-(pqB8a)zgC!t{(`yL9mF%RVPjdO%qYoEP^JWD z;54ztPmo~mOI1#xt7lRq+9RkX$h0}$oZdUieOC0a4ivNjkjIgPJ?ErCKA|YaeGqaM z|7VP~MvLW}eaFKN4h{5vz=!9FJhW_SP_Tn44Fjx|e|ipKCr?aM@25XACnR_p`WXwu z;ZJ^0WFk&A6J>?L$>xNYlNRPkCDss ze}8~oonQ!(X%P74x^{%VW1E~f-J%wEYk1R)^Al9&w|G6BqksmKEC4zTkpOgfJq7W_ zV#H#&nGMq0k`AO=KMnr`z2w^BL|VSkB^(u0J6`Noy`J}8kidE_Xg)Mh6)5@QB>Wxx zu$3qoG^W)p{2;=E^-$j4Y)NB&HJPIoPyC^4c(-lv@mL95cLmcLy1-+$5lU^j1ZqGX z?gJOe9YecdcJQ~>Slc!1y1V=ZJ=TO(4gN;tZS-a1ysg99H)Np2DPab)1UCOlxtFpQ zK?U>1Be%;!B-AZsAf?VIhp($~mcFP!F)i~dlWwo0Mf*m@bc`o0WfX<@G?N7qH( zSwRct&XKb(r7Fu4rSC3YCj zX3&bF*p6HUibR7x!ev)z;6Zu~M~Jla1yfj4rLId&?PH&wFb)!=9RY}DuXRu?@wkr6 zatqoHY%1yF9@GsVJyfl@&8Ok&bS!^oTE^fQA=?vNFSZ;T9fqUMT-LL#kxUE#wdjrv zcJo$3nA`c0%pfCYvm`xHX#oO>;Z>n8dKjrMyFm7uKS4pa0xKmxYOwRcq{;4xWg<5f zTZ*(V`P^$Z&u4^JvL_LA+q!sU_Y3Kl7ZnpepQq>D`()cran}o z)**f@aJEZp$;%Qpcp};@BLwFgz@=&ae7NRdcY+DILy&oCAGs^#5rP`q?yYQ_r5iZ1 zZr<^L!{i`*+VnOL!FTipjA^-a9P2~nMqiW6*;MwTK|&B%gGRW9u_s@V&{PRi%xlfM zE5MAjiV5WN%JuZ7~;ch+mD2O z7BZh&X5Cw=gT`%y80w{w5^|}PR%uc4!$v*#@ae?2QgOFcnULcEbcpRS&&|c+HIwSO z{`POxMXqHr8{sp|Nuz@JX>iX)74P;1F{<3X>8B?|Lt-RUJ{uxQ_R7k0ChP`Fl*sZ& z9>cy%-g?V`l9lW!7r?YKFNr@vv?WEO7ts| z{hW11>=;=*9xhX8%@TFptN8%*6V&_xNZuh8r2)peH^hj~ z0G|aCIfEFRCOC_XrzX*HIjg@ZezM`P>!HK#4oWSX9@S=v?SkO!$d&i8vFhEF=JVb9 zOx65#ir0PyOnm=zEir0OWb*g(=fn&62JFX@Mx~A|nG1>{ve9J<%97nQz#pT78k+yl zXSX;?Lc$?nhSvHCdWQfgKtJoC#6ZD6-*@#SXH*m& zqyX$0HG-k}Tb{hGg)D|l#Y?fSrK<4xgPz;Q9v%9>&#`^xwk|BHV#W+2@BLCe&0hJg zTZTN`550FYtppR^adgw(Onx*KYnN$;4;$nzAb7~pziDqoNAF@VFSV|FqpNs)iIBi1 zMs(Ofw(3lgi$*;uoTWPIGhJh%Go&nC@bn`J%Yld`E^5G*IS|9Tq6f_BosHfdwncR@ z1IB-_?t-<-@(KSC6{obr{tKl zIAUnI_nRyL5JQ+y?427>OqLpWic2&=0kBSbuf@CyK~20e;YD7HZ34-!$omLW2E9(c z>A)M#*yYY0gAH5SF|wwH&eG?2`S9NDQ<{$NZs0q*MRQe$OwK{e{yK*d#+7i5= zk90(g$3T&1tOCL$VX+KA}fT?EUq zb>RCWLja%qe@#H&svK#F<@iB zw);hE4@nou@uHc3q>=QfrX!(}%;USO+(e!wfgHo8ua+B;!L9m?tKFa!PdEE}uB@TF zWflYZQPxB{&8QvFW*YO1L2_NU4YsZ8oEcARiT|i{TKKtzgOLzA&Bwq41b?mw1{Z}_ z=Lmj}`~nNeRZ8<%b{Kn`>d9TYgBzuJpVfY(w2UgZu{Q6?XOSmp8Q`I&m;r>KCEy`N z06BbJH3LEJpPa)5xG?c!<3P@AM3aS=%MxTk}Kr@fwVI8cyinoKw^J15yaelD}j zo97-$@({(k`_u$EMDdd+FH6oDRfruRdQ4S%ktXR&^NVk5tpLv~6_tlvF<#Gld)k1@DxKY~^r;T%woGUpnG}yA_8NWBx4`4#$CHFp9 z-A(2z+>z)rYou+$h_D*yK%;aqVoWI_Oa7L-piLL! zy58lD+7`-7W78w_X$QaovA-bDJOC!E4`d-0?IwoSDsN*f8a|ZE-8n0C*^I! zd{fT0HvNv?MtG{BRh z@z~nSf%0LyG;LkoNj2x5%KaaTL((W`O0ar>Pp9wf5cl@|*x7)b@T}%hYfY6ebpS`N zw2DFoWB;a?R*WlKXcaCd9Qx*1I4xtC>pXJy2Un_tva!@VJtiCurBoqorzi!q7e_Z8 zHJ*=-xWA?A^`XRaHydAieHE{leD5tPMB-SS095e>9I^RS;bK`Jp0zY3Oi5P-o!VJF zHhz|`F$8}4+|zbkX!pfRP5Z_18c~hw$Lb4MRZHK-+t-=lRE`m;i9Wrnb>}6o(?1LT z1gXPq8L9wk1F_MCb4!OLGIZfVHyn+3rXx>!#4E$6eOiUe)Dxgz07OgnAg3HeYjpoC zecC4cN0Xh{B*~C=2qnjU$jBeXvqX; zLd=CnXRZ^j^!3huS~3n|4MT3v-7`)pYkScSRs|gf%|`!~)P+=+AqIhqv2$wneke8O zQ&njQPg&UGS>Lw4A>M+CtI_qE2;Ozmq_F(n)Q4X}(b0UMu0!LM4Z9L?I=gDbU9ISb zesm|-C)~NiR?X2eGyRzq)ohB&oP(^0AvKFZtCc%an>;#vYNg#1Ce8%U=v>YD${N@G z!959Sygn3Zq+#uRA3%L`z6ak$gcR;SDZ)}$S) zLYC8IWoex?})Yxg-+G+yTVA3P)$H_rBr zV~K4@R?WVm<4C`?vLWhPopW~ zJ2|xo$@=~$Ir@SfK*Fx$5YL&mV{@l2^{3zq@$RAeE{}KrWKg>0d&8BoFE6_Pc-B5(EC+8%>V$l$14QtD7E9M~h; ziuAJBt_3m&tmMaI8q&Qq7lPnh*I2~EVI0T^1Xu*N_5uu}mDDroWk4PJv!l&Bw6l_1 zEaj{RTU3iv9H^AEw9 zL6(_+6C<*2ARyr{CI2Q$AQsv3yYN4AZ52Y{uW$b%N|FDdk!%2SZYjpHg3W|9@ofg6 zhRp{}g-`J&OX=sQ#sG06wtEFqz&vQWiYOVRMkuw-UNYk56GBQR472a_ddU}QWR;{`F#Fcm z+^w?qsb#olnrwYyeg{mY-tZ!8p&_4)LcBg^)+*CI+IO8y29Z7Hho@A3`jKNHv#gO+f-OH8Tm0g!e^Vlv?%OG}&kqdcrjP95xY0Cyh9 z$YOzF^j1FS&R?@M@MKZIyID+Wr|`M*9k!vf({jz1MrOB*c}8jJ;v>-n87fr;NJA~K z{+Ln}CAD>SdhOpC>Fg(ixB-L zz<(=}8tiIvcY~+02#}%>6k~?Rc+(3b+_@~x1DnLw=Nd!vb+Z%a-4+S*KF!E-vilvP z0evmbAz5KvDVIE!J=N^{I+FxQePT!B?W$A!O~L%qT5>w0hcu6Rk@r6I-zQ%OMcCBd z))t8`TN3QRjB`J>jNA9VA^LPxa+CQ~IoJfvTT+^#+B6lbNxlQ7Tj7zTy9m3QCi~dz zkZ~2q~$jM4@P>TPuMDK$Pc^ z{0qwDpZ!&KB08F%m9?~eD2tN&PI}HrL%I#ciIAQE>2!U%wV+q{G2?}e*BJ$QCXa?8 zs`OpQ(%RZ_%E8)+B=gMPtvs2IRL-tyQRZUZELneBTH;U8_!C#2n;dM!pgke#d{Wh2 zVN6ZTv9?z4^W)cE(f+lZv&}12U$=@)ZfMm;JT32U?#GB1$9p^xkjhk|0NmdCS$}(hpg<~eJ8lj6oZ6GC zMFX}G#g)XMCBoV9gqiLIQ(vI6e(&m5D}~ecOIIK6++yAFZq=AJOF`*T)9b+7q6@!S zl%AW>*Pg0q#V=~@X(~m2x0@Cg@#F-mBDeI(K%6lZ0r&-8;Q((d_$bEN4&igHhPW?< z;B5WB*iim9?fj=Fka!@A;PWq&)n{&||8aZyUoyINP>K%9DX4)Z!+wQ%wXE-_LaF30 zOWx?bC~KeCRX2`f{a9An7y~#<1yCC#>8?RIG8creN3`MJG%F`IsuQNAON}GO1in0> z|K9cbs?a}Le*z^v_StJ{LzC7oyXkpinI`73w{7M(&_u zYw+9E85f@BWWTblNuhJr-XxJk&MS@q)})*%z6%(mtYbSp9Tx+FmUUFBE`ceEO`+KK zHP;^5c?Mh|ca>_~6|6sKqMev=vorzY9U`zy>{VGL!?s^ZatojRhG~Q)mXOnlFj>$RXw~zX}#?YQ4WiL9trPl_vqRP3UP)LEVKl zCS<2&FwehsdObQw_d$H;Whv?9;X=0ma?Tf)^9P5PXQsb_|rsZa{m3RC`$x~o{`T6=yG=Xx@g)wp{a047@KIgfXR;abo=aHaY)jq5Hr1+`W-c~g)^75JnbsAYPKcEgd|;X!J*GdTv#uZ?6IK3uR_b4Sdq#a^4o z6V%G5sH)tbd)p!v07m-ixcVokg&9F;9tbM<{WUUvZ%8#a z^?&ACTx_`8>YXs#LtVIhC%aaRRvk@wV+HXWer!jf?KTM}Mba#j`Q66;5s|rO+sTzzR^>HG7{e59~-ElNoG!l5J z+~S+sFmWI}Hd3Rm@HErZqn#!aF={?nNMG=)gi%rY{r`x0QRb2(m!B${BEK<;qO}S+ zQCYP>nst07f9f*$a3z4XlW&Fkp`6el%+ zT~K?u^nM?->JV7{kk`qs;|8MBe&XW?fiTwr^gi$*gH(CoLV0uLL=kO6d0pVjf>=}x zBUTYS5M=$kzCeFhO3m~z!vA0_sr`QMztcR?|CJX{kDtwqChhGL5#ve!4E^ zhFvrme6-L*5K}^`5ut!V&_nIh%`QsCX0TcyLga2b#u>t}fHKPR{fhY^w2IdkVbC*= zmU=6%FBJRxW9!;3>G>tFRA=PChelbSZH8|olS^37qtjuPd879Vkjm>eerS@+moE+f zXK(wCqvW3m^7GTbs3G&CH{*r!P=`)#$92h+4==A|y<+Qzt*yuE%{RHsLcLZ<+(mbK zn#;163f{ma%U{(d#U`i?69&omgM7T7(8wuoKGUUM1o{8t+OultGq(@F4; z3__PuR|25^O8G4H^l*VD+aH>-{g5cubvso*o5|l zAZ#hsiWfZYJMUQpkNXCATkoyNwZMw`HxI9dTS{)+@)=;7l)R>rpDKeyV8V|Pql*_! zFZKjlCOrb>d8~oDQ6AFES-2v1#>%5yf4@UnS;~R9hJ9zxf^E#}-`{0!^&Ux-TfE-brsxZ#>Ms6X9n&2jj``C-EP?@n)$tsx6ODWl2sg zEbt1p1ri4m6eqX=7t|~<0NWk$~jz+7aU%|fGueQhxBxS4*wTz$$QwB-%Dh*eex+_%yRjE>0 zEkW**)i5lD$h&BK2=|J1N(%aeo_W#>!C+wH6ke;xb#g~?6!|zD!6cs1-_3+y@TYWQ zJ9XS2rIq7gO0p81i+9RTwCo|7-*Ht7gF7^eSRV&TRvksh8zC@uM3{hR0=X5opuf1-w5_|h%#0qU9Xw&rsCR#2X^l9f0lD0ZifUpd9qAw zjGmv@1YS)KRyc>H_h%fkJ`fBx*-m+V-q$iAgV;u>oThxaeQa0aPEkF@`C%09Bh?bK zG9-;S^{R}z9O4k_763#A30QbG(FmaW&;jNTo6mPG??PeLTs-dn#e5{310}@fHn+y* zN9h3~6~^O(14cM^KS3hm$tg_x+Gs(ydX}qtn9gA3fT!BnR!j$J;FEsE2@e722j;X1 z-n(r3!pqTFDj@G+iafzZx-k8w0f54+_|AXg?R_WlX%X{QKG(US?YTKD?u&L~`QsBM z^JOjM;Dl|ij1Wu(y5kEok+VnI!~nA!{Zz~OF%QC5lqwdOi|to0Vs^;}J&CcP-xrL67V{jYaQXI+2DG&qm%N=jBXr=OJ?#kf+MY z{jTwPudd!j!ET0~R`{HYaC$Fo=36%&gA>qGFV>pAwz{g0fp1wG_3 z3&c@gb4-la3MgZ81QM?zXoz`rzTcNm&6ys!<}O=G!54QZfWvoSp%qTF`0LM-b;?cF zm0?o5Vf+Tgj<-CkyZgAyi@}zA2gSvY$6#DzR#uS@pM7d>OT5%;y0&jk#Z3(!eei|h z)hT+fTnC-&N+LR~H||(tkR<#?`l9n|7-D1PxKYaC-aN$YF6*-A1$L`fBHjav@W{}r z4l^pomZQzqCky?{%Z<%b$rE#r1y)g!U)&Q|wgt?}wW9IYEYp}*983e$@56+;c*D?v zx`XJ```Mlpuq|P0e?7gLW6JugQoX1!&hk*t_la03qU?t{#6i~9jV8G5eF-aC%=2Q| zfo3aLI^^th!Oi}Dw7a5IXBF)yjR3DCjmH|+1HIgRc@yP#Lv6}f5pO{y7;v8@9q{se z@z)g*te_x)EiRJu@Zdd!d06KrWAhvyFLg4ryaq6@E*sn$HUng=f*oR`EbqiE2z*h- zN|j=IZs5b|#}gxHYO5{83tNxi`exRabehR|l!f0roSCH2%+P!eb-J8^eOHlkoO!yE z@oGmFoH=)kbO|E{H%uhL_?KgC8NUe({I@&#*!M3oGRR&VS!8IxD@YuXmfZ zWliy1bUkRh%>(elHPC28D2eJi;JREbFamJs={B4?bCLC|X6icRd6GRyYtC4SSu*`t zmBwHt&wYVOQa6F9=R+;Z`Zz+}QcV^rl=4#JRdFc%AyGU`IZrlNUxQVIly8E`^mPF^ z-JYej%%;R-^CSS}i)B%cM;kQ;1L3IFnz53g)JlgSy^0jcsKf`X&!_f0vh|`o$jvU& zTkY+Y6sKOPNvcYcV&zanH68wy()_8pt2HeCkt%`fcN`F zxCi0Qe~G|30Foi=;3Iz^DKa7jz>nMJ7lG}*ioF9_+j}>Gaf=Hix>7>{V4F`v3xZGT z_VIS0bz4=ODOGBI%RJ;)X<07E=D{0RzG1ZE8n=pBl~;VtF-PtbAy z7E}7(vrq^E9}|3y4q(g$8h(OSqaf{I10Wwp3E<$+oFKQK>M?S1cj`UE(Nc03wKOGu zY(`Ntj+o>Dmj<`|2RAUerRUH+PB*Rhg$pr;3lE}A+s8cqCE))yE=U+r)@Y|fWEhyCQg_tv&OjFW|%Gxmzs!Y*S_m?HBPg5CJavL zf&~xx8UPzevc?d6;I-z~AS9=BW;rV^9&aaOscN5>F|}qR&Kf)mv85K-i)FMPwPF4Q zRL`7(eJWGFHZxBZvxqFyPk-EJVKB8S&T5G&{FsBPwsG}s#*=r@t*OR)pSn8qi31d0 zTRI2My#lBcMeWI&lWzKR%K*nK`mI)wcW#W$4jVE|_MSBXLYDi$>{3FfjN zKp_3Ey~OnQ-EB{x=tv|b^7p+Y@^_uBgG!*|`=7ci@q0r6;rjQ3C9RwZ}NX2CS!)*6|#!FY{X(kSs z@5?nKX3H{XbrLLPV*d`=E|gk_lwfbQ*8ms+GeKG5s9m(L`>H*R=8NsJn$jLKr}!71 z0{6Mbn3+?J^!p{n(7c~e61_5XzzTk@9PBN`oM?@$y^Ujh)HU{__!G>2sVW0Vyr8jz z?N=w|p7U!mWAt<$^|?@`YN53ihlMJv|_R9Hrp}S9F1P?KQhShgI>h@O7f9{4wq*GIg4`UUy^eS ztqM}y-~D?veKPM0DDz)B_a7)T)5ibUsGuSG&9eL&voC))QRa&~37)aI-*WY4HKp!u zzN)fcMKIGM9trV#at>HZDGP-pWt4+&Oxpkn_T)AYh8_M@H~yVXvYx$F0xS;|j6TU5 zyxP*Ru!{K6i7s+E51!GS-{gmW-Bc0!Fm4$!FJHZ}090CH00vRU{YiEQxeRMwu@qTw z1$Ui2=+?czBSP=N12Seyh;B>#TP#h_A~*ZiYcR_!IF#8_1l8HYP{Zn@@FGXzR|itv zZLf2x_a8k;ie^?qNv3!+ltUy5mGyDkliGWb?&945n@YXU*qNJ?Ssxp)S)+7VW$1J} zp%%5Jiw^(lv{EE4JAQ5{`+9tzRr3jJ%!yF|*4bMzJLqBUnzV+@a;UnGmVO8^T7^}ow5Xd5RHCgQz`c^I#MqtZ6_*3<4qETsVZ zd$^j3_WdM>Oqltjt(e$tp=nq#xPM5`PWt3|>sjAz{!h}GaDbi2uAn?J>P_Wx-*3vw+r!z1;WU^Y?42Y zxqQYcVXo7Cu%%wItj-@=^gg4~B6ps?Eb5{6TOOo2RiN$=;JO;d)oNwX@DZ#i$Ze(3 zAQQVn>si)RlA>aj$ujr=Q2e}oSe^0SGJm^<-(&5imPH)wiNfW(=NA2(AtEcp9nx!K z_JdEsk4%}miUN|}Cs51K+jtB)qj>PEl`4u-5v~BvoXqj%k1A{_xvEmXenSh(rvhJ0 zK8Dx*sIly&$`Sg!oAeVzuqDhe*8Egrl?5#BuUlgwW@QO;2w8eRFKd7O+4B^Kf4Tr@ zj17`?E75X%=-;U0vb<{Tiv-BM(2@{3E+Rj$%&wxCM3pzGwOtgR7q ze%0dYW7#M5(lAtoz`@Ee8FHCcG(ojopfwG3bdeV)f3{?NZfchDClcNkk1$})?3gA|= zgJTEQG!2cP-vm64){5!C4-;byPK>!IE?EKlRLu_KZ40v=xESVhP`RY)FLW3NL-=Kx9D)jBLalKZex$y8 zRUv1keB&O$ekY)&SDiEWjr~lCWqFFB>AB4E%?u67%8E=;KZQN72BzKF^~x82bxWze z9?>RgC;W>Hu9jG@#d~ryA_toZLRG@c#;TKVlk4SvOh#2FJ~pr?=3`&o=;qr_j@}|{ z)7^IU%iye+Sn%?MdGwwzG=#d@q>;Rj^E`!sQkI9SoT|D46OHJNm0t!j6~BX$`pCk) zmLUPcjFV^97#+DV^GI(f{hs1&Y6Lp!>0)hhip*3q^^RsDx8|XD(Z{p8OZv{;T*-BU zJOo~6ihOs&H4}0#rxsfP7>DJ6lZ9E-r<05~I=S1{v9wVv)Uj5`Wi#iU%h_1XQE^Sa zGj6A%^QpSD(d66nkgWTZg2;6sz8>u0(-EYEGgwjX_ChO?s{f;w@!;< zJN8-do7}e*-yGkx5t{L{>}pwCEM02id;@iMF9xK($1Z4;UR?&x#BI=(L$3<6smpuh z(Gv?h{Z1%M_DEv9Tj+B_6^n#ZP@lkRxh#oQT)gbSPr|K?Xme3B&C^@hf;ZvamKK-nIP__@nvIR6A89_gXaibLqX-vg#$`4~mgFc8Ry&TCX{ z4u6rMi8~N<%;F{m4_TFe2)9#iKDs6IOv=&gV*EjL!V|9M8WSEWD#-er?_#5=`p;$0 zf8ZiNZSYt_A(S%yBh_du45&gKm3Bi=VGKNN*6p?%}# zSNLpk-@{2}Rej9!$FH!%AQSQGWU2@+kXVl`jx}&qtZI7l)!*~|OQAJ^+4v4WMf!K#npuu{%||~$LKy;49yr`7##~iZO-!(bs4I0l)^#B^ zMIW`XA_wvh?%(2KRM2u!OwdL`{pVEbH#zC~Ra^2+Uwt65-p6DIyq`6L4Pf!_DAzM1 zT{ZU6`Zb@r-D9RKp#T2iF>E0^G7q4>95W%hbUMb&=%1B{H@40+ixK&p)!z|MR;ea* zS5{(9VWvyvY#_wSrSS@RhgN6EGnfbpm*UbwI3#&)kDS+x$L@vS@!T^4e21Q~6lP)$ zPA(xgnNe?mZ*Yg`0tg~};<0VIi*_x$#sFNdFF}eetCB}|bNQ~?=4gB29yYDLkV9y9 zW#ur=wkEsr_}Q*A9i-)HE{Dj?kf-sjoS7x?9(wv4Iz!eshCcA4|Y`I2ankCu~K~@*}kuc?TYC4Vft_*yN+Z1&bAVd?l2E_OD zL=KsXQ!IYz8dC+JYKCUIG^LYSZiXCMi?3d=MEAScNeaDA&bZ6!PwuYD_bW)9u~4MZ z)3SCR+A@}W@{Hwf&Eav>jgJN&Ky}wLm6>pm*wXE#dh+-n1C!~JT&(3jz3qso;{ znmwA;JY*jIZvtnvaj3WvyLs#KWuVFZqHWn|X#4{S*6ydk;CkG$4@Ty!KF4jvpq;s*Rpeb3_bY z%mQV4Z{9!tETVxWK6k$u3cOu^*Y_{!zf1~XCf5!Ay^VZQ{7PC^QdxrZStp1Icmm(_ zQsd*~&k>c+%`rXr6G`mPEOO9B0(=aPvmsUhPs<6;QPYUhn2w}8Ut_ByHRf!zK+yUuW zD;x{^X34HC>`aBr!5%SjfYWi~5cl$cP?!q+G?}hf!NO)H6jTM>jSr;oKq~SOksLpZ zYitsDTU8-{Fxy!M9Z?w!*_LA7V>O!Fe6ez~5R_>q?eQiy0*Dhl&J~Hf9tFZ+jhEUx z$&V+C+jc3GFqN-8*O(1@3TbI_zbS5 zn*Qt;MPp$@dV&V>v5;SP!ueltTqvLj2<>0`{l9b!WWm2_jV1e#4)W&M@-d?l?BTjT z7uwY#oySg3@;a16Ya+r-t5hl#+G@Q_Z?pXeNA}!-j%ZCJRA=g}exq+&FEfxAf>1|b zPiCmj^xa1F>&YbqkQah+U7rz)o8|y#ybdM2w=Dm>&sM3f%=aFesEs9feTexAkhr4J}d ziU7Qoe}aHwW>Y?92uhcw;Lpx8Goj1Zcxd)A1{tX9%SC<{xGAzMd=z_!rRfBuZZ-e% z;a-oFgdM=Vsy)c0&A|_fJP$|u^odU7W?7;mi- zfDHR`)2?^MZnk)NXNpNlNjL;)_gH4TCaFBUK~yfn)rIlq)DRDacxZEPUXC!Pjg4w= z-ZCQa0oG}#902y(mHO>dt8c2B7Mtf2_i%oFAp>ouhkBZoC85bS`jR(E`)wpyKz`EY9Xq)Zc zOgolcrZ{yn%R|&NR~`bOOOX}O@``q42P|$3>ndskS03Ddr>@OkdO_=>eRKQj$lfX+ zK{qaDmC{1!>r`+n5VL;xOiHDBcV~BhU=QJbtVb7GuBKvgy8CwIWV1QYSX>gr$w`WJF69% zrS8U}3b47iV9dZjG4q|vurgLUR)2XW*K8Vv*#D{z65#e$hsKeKm+efb0aXC)Jvy=o zp>sK8sV_f4ltsl!pou^Eoe}-i>T040`KqTDm<-6}c06ACl`wV+XHKC^1k3evOM_wPy`zw>0C6c163fm#ydCXgANm za%IZ_7bfP@ zx3-Gy5RVQYKt{T9AdBajU_3$UA3a|=7jQ(Ti?B19f00!T!{u*jfxVomzWo}ia@GOD zcoK69bmOAuJeacaPL%O~jalpECF2pq@2UI=$fP9YZJ72x~wb$-5?Q%$CLu}owymbH-zRELqsT|OK z`NJ;B7W_t%9TMknZ`#gl6>qnY)2kW)dce?~u@&YZm-}k~rm;{+jDjqoab;KQNLlTj z-j?q3an5hsINO4C(W$^oj!Ty#iR`mZUFHMfc#^XMOPULq#Q?$NZF+S%>@8zW^e~ba znB((XX?a#|M`zP7K060}7Bw($8GERGKFW z?R(vKfsLS~TUrDQ$Pk9p_qhH)^4>Zw%57~J20>9NQMwfbB}EzrMnp;kM3fE{$q|rl zMnyn|mXhueVGt?lE|D%Jq`PLw0fzBg=-y}R-us;AJn?&e@AtlcD9p{eXRURutJanI zBxB)+Z_wx0o{E_#S1R9NZuofm8(v&&u}Kd0N?+#YYJSmCq9gR|&G$Fq6IM~s1R56Z z6)V6iU>RM_F;uu5cLoLp2k1`sGZvhb!cGXn20Gm*Q(Pd6bqksRO&H^4o`I4zO`-rF zUVy7-SU6zLwLV$oESMWl6FT#Ypbd9Mzz8fDIJGN1`H z!s{eXpf8SvTVC}J-H+&Ukl8+Vz19m)1OBtTfqBTF+(H=|W6e1;t!ZK(O3*$)e7%UE zeI+*JbK`ch*Rk~P2>AlK@aQ`}9#I~^tsjKvk^c@E9EF%00yxMb>7kGr&&a4+RD()# zQO5c5O5(oZ<(>Zwu>J`K?D`tGm7byoR%Un;E3oMuy9!aroY){ArjG3WUh3v&?g1an zUBvOCcJkdy+`I~n?d@vcH&NCW5WG1S{HXrZa4O>R)4!)pO1wMF5k-C(#~$|lNDLtP zyY5c^8_(`7t7hiwI&$1~0#TP?GJke{-UCsT+Lj%f(T5Lmf+w2Q<)|M1)9B30@1fBQ zWpt-cHMu&)p?!CCiViemCJe0C#%+y6@XPEZ0-wp%ZcA_n6rjguhM9|VETyUYw~G3B zKTY!a_KD&9pH^Hg-KGjKL7QpxKc235k2+ChYjtUiu>d&>+P5(FJdu(>G@z=hoTo@7 z^x`_mb``@e3cTc}A!)!{V|18j@v;7HqsEuBFW*Jfyobo9n3wFpVU+`>Cc_uM%rvI) zpP!f~NS+ph40fitlzYWFy0scuO}gInZabYmy_HNXq!n%P4G-ib>akb#VUHsXblVcb zuUACAQxs#hZ@o|sCBn+|VGW#JvjQYLB<~h7WENJcAZeb3VZw%p!sKd~v-1T3<`vu9 z=2&X#nt3~VDy-1(+weqvHW|%Tc+hMc+lyLnJm58JBu=)ZS4~S@dd0VpQXOIwQwL#5 zmMTk~aK8ID`sLs0oPYc5o_ojjE;a4goi$>USQ$!Fi(^D~r%ns@PcTd6H2qa=KsASmYF7H>JwtW7UCwM@$Ct#3Pl2JO2x zAZO=Q)x*lfgF}OwL(dT~ZYEzlpI-oXVe3lX2dyL+d_!`HWqZ*IJA2eiY!Fnibnb^P z_m1qf>tk%D(i%H!Mzc1sJyewHhHn*Wn^l)J(ovjPe|oh;TU_Q*L*!GSlbU=uNS1=X zK_V&@%Ju`jC|x<5^7qIs;M>cbxEIB>L!M|DPIefSVrl~-ocD^Dkj&AAC{edwG+T*@zp2tGwSV}qkWIZ^l_ zZShScrUIv+3_T!%;sSLuj8vj7ZacWpc^@9^9e2|L89aMu!NoU!q~`F_tIEMD?nyY- zUjS@*bsQI=q;0x98uBJn_i&LZ5`dp#8AKBPqf*9Eq|txtpZ!+|s0HIXrFL-q2z@e< zzGdso@HPmV^YHl^d`si@$u6ejysQhCEmg>9T8uUX%vrWSE`P(b&@`}gS;oop65z@V z;HzBi`8NDGiUEbm(+ko-iD~i81C2^K0oZMapaw(@AQ%ZXP_qJ3koNf`;_JLtPnXs^ z4s^I2o#n{yXNim|%Lnha#sLv;0N&s7aGX+`G~+2THK9~Dx-bvh$#7(tP@K0r!Y;RQPR`M;~ z9~lYH{znn|KS2 zo5b939qYDjWAU-`B1CuAWMbHq3X4%3Z{UQtSCwDK9}l&LghW+ww@`16Va^$rmiQ`V zMb$qFzSLhRNhx-e+MAO^n#cE8n#mj_rf-alD%kiT9$i{;WhlPcpoeJK7zB*byW;CyYXzrN4PaKD`M$8+#pVfwsQ!NNL zVefV$g~yML2AoU}zx_UppO;#gXSRC_&rY?smRw)szMUveWbi!Z3st#+B1DpER9C-X z=CQ?0&`Yc=d_lN(VYoUY&%LPW|$ZMK4$ZDtBhdsXu?ht0GK^rg7!S=-< zjQ}Qi`L30T)hC{dI)tzBI0ScP&p?Osq!c>wx23f-x!lrm1PQk+Qd@B2+G>4P; zu3nLT%;FX*>~a1Z9u>4v?F=Rl2UBJ{49`mZY-sXe+uE-?%pk-cK67sny8O}R5O2Wd zgo`JHf09X55zjUB2FWKVLUvOeDB%8BuJM-_UfGZ?72F774>99PWo>(Sdjfy7kD$ei z9@A&g3&GFQ(Q#qZ=%0AmUa~|}uM|TY?~#=vh6S0#4XYXl_EU4EIm?>s>C0;7tlr8| zBBZmV=>-o@Om75_k-44rt2N{wz_LxWGo4+o^}3V@vp;Wf;hkreLtq0P-MVi1@!+bd zb%fJbfqnB7R8VtiSqpAH!O>~dQF;}hD+|wyNh;`XB;zMdNpU+*TE}Et z4A%sH-D#ft!YAzfiaM4u?j|0v)eXkp&sDktbGVnpx3uwMiOKPx|AuCKUobMqpY2jPJ zF#`^iw~3&jZzjBZ{0)49Hy;#cNjo6Y1$slx9dPl{Gr|djKuG*9AlsLXwnUeVFvKuW z111|+H(0Y^(_e$42CO*!5sq(7oB7DV)w$F6Oef!+tLGrhki{!x}E5SqF_MY(IS@+ zA2W3BI)`&;M3jmdy~EVto(?PENP&Q!rs^_u;cnWEo$XA0T=Zfy1;NjMAk!&ABiOlhZUhUnMo*Se)v@ z1{@=MgbLES;3SWrE(EV<0JyNX0glKR91&fC3nDL)oKxd| z$ygq=QTX%}ULvg%Rgb!c-Z{7i*AHNT>3kh!jPkKyp^Uqln!lbDNwkk~J z5;s1=T!yb-_kF}A_|&B>Pxlgm4>&e7P>VhPH7iidcadzSAI!)a3t+my@}B)|DFDn^ zjSZaLm;tT}t^_A(0-=BGy2=;vHSt1*a63(kWo}w3#2t5rpB4}&pabtyP)vupi+lZ7 z{_ecBDO^`ChbRrNG`z^bY4)BiE`5G&9^#me?k1x5p`!_JC(Vj9KS-+(0i^A% z1I09%x_CEuT^SP6If}>}yTBrFl#D-oM?|E&Mvc{RB%~RHIn|{P_?OK>QGVdeJRCx> zv`2(|#1o)^0c}nLENxc92^!|f*&SZ@+j#AM+B1Z!0Oc33Qe5}O(@)WkH+H-oAf=

#}*yoXF{cUL~hS%}_u-Z2bg8P1#WhVR4&mD)vi zLY^fS&%Z@!HA~8?29u{$z;U8RH+r-lmc?w=U@sfde#3JI*iu^t#SExrVaOZ3P7dZe z#?AG_(94)Hn(oMrv!` zQt(6%cjbKJ%+fr6<+5pif}f2GR9~7M6&&;SYDCl&#oU`aA3{BlSKO_Mmnbn#%VyMim0R0qywkv)qwOgCWUs>>>_<$oc(LsfIy|mRfRNi)G(|}ReIq-rH8?L3NbAUK$RY#J1 zf6`!;>gMIg#zs_{6{=}f!GAvN2e7Z?Xx~zJmj0o)qTh;_P5WUQoAp;c-V{Gig1A5_}&GeOqwfyKHXr}}c3=8rRuUUGm&Y>bm*w3_KD zwFG!Cw0sg2yUpbiTd1G601RTzwExuLaDGu)(d{+|?{9ao`hV#M{Z~HH|K8t@ z8x}2DZfD&wQ2>nYGUcC*c>jNOBu^EOsZCMRA2v#GJj*b!xcTxyqI+uaCxwo%#4Dav z8}`o>4veSr4^I!X;E3ptwWRduXZfyUt?aYky9CJfJzi;ilv^?+H{vCKLP}zAu8=Q- zEX zX7LU@r@LB-@W&qafC_IU3;58qUNvnM+GpU?@{|Fa+Iyedw6TLTtvZFRY<*0N$Ae=L z?L+f}R$I~GGKD1-H6#@e%OaXzn1v^0*s*+HoYwcn^$|1s$+=DpN^?CjtKa8B7?l4)HJ-%}92H$2l><GWNF@EZ)5f;^8vifpIu-#-&Jdp&NICArqgJ?BDtGP7W@m` zEZ0KbU}fVpOGC6!J7G5WI}R2fRPuZj=qIzkroEb-jU;Ke;?_&8tUDECQ1VtpjBxW= z;&v_Y<$K)y2WDM6!io8vmL{Wpsx2s%O!$krz2y-7jjJ%HsGag>T`{DUzBde2uXw#q zrxr3t>NO616)djyfrzFp4wYm=+Aemq1$ob)Lv9%-*=yJQgl*l_Qe=qfEmDP+Qu<2U z<#Ot1i>%PEkGc(_9mS>zYQ&Inx7}N}mZSS75wND9K#GqC>Pd{p+)4V54g3c*mE(3d zdeg$G*D_Sr#-o*_=lVg9UN`f0C&uqKx}zl97=`o882h|JsBG(?zUxf8dX35P_iy|` z2!kz0wC?!k>OW{b>UUc2C1x_9lGTaU@K*c~u2AxP{`PG^@1dzb=p7b-`;2)D+SpY4 zf!jm#Q?SF$7>LPq!WqvrBT$#J5uO`&v;1tO@lZP?skiDhou&(0jO=ko5`s5(@abll z{f1wk{a5~szx+)b)GHp!a}YN{jRh62WilO;wdZK${$MSoAl7Az*@EQ%ad1M<0T(lL z1q?_7=i~XE0XYwLNDkKz38dRcXk1{kzW3M;f0|8d(Z}B$$*t30eIC^5R7k_X70ce; zfy9_ra;;pE2o~tH4Egb;MF1Owj)%yC{9zJ9Ov#$wvnfzTy&&kWD=+NHBOcdQwqirj z5PGa6;t}dFGH-SVMW}W4^^lEy*!b{M;p}|KZ?G!)4y#B|llohrKwf?j5?*vyIgnq=l~_o&g|Q6P}8ZpJNssto>v z;Vk^ly`G4amp0B<_*i=grlue7S8VsNdz+}ZJY2DKpHd6o{;h|aUW_I=$wJUcJ2qnv zJ1q$FSPt|LruCfzKEzngH;U?dgiJ|E_kLVZysiKf2)lXT&XdgkHYRnwiMn8fg=8^G z^ixwM+EF~@{w-g5=c7&7TBNai(Pw#ccm-TEB;QTEnAWd`Q^WSFJHK&pK5l zZ&OQxV*bY9K5!_CtKTu&m*P>D{XmUQo-47rS9|b}8vB^I)q1#$F*l{ z)<`FU6;*tpV^Y@tU>HaHh9Obd{ejMi_plw!LFbXzw0Rj<`M$PDSN9(e(&dgtORWd2 znw2us_X-^>#Hhs&X`Q&5mx#w4>HR~j{lF^Lf&~XHnp8`pGiC!5Av)bcaaL0PnI_O%?c#`SZ`zrt7G~aRSHwmZrUBX?{-jd*k z%Ef6UDV9d-6h9xjecxl@e)uOjak0AfX3~e4C~#RQDSyuCCuAV9^QoCw$=*TTduGPC zk2aYs=ht0oH4OU&BOULB72>bbvPV|YhUg>Q^Z&9QuCB$uh*mMKHIoAaW9 zva5iu;+VS@`Cqp9s{}UajJvo}ZdJH+Meg{rJW0=ug8_yQL{(RK)%E>e3bQbcSavac zr&u^U;cGoAr7>ZQw+|bMZU2>B9087Z67Uat1EY_LY&}II+%j~RFXpv{1jXUQg>+>vPrzC_G)@prGmzp23zvg0XWX-Ex5ZTlS_Qo`#UCvEo0 zfq}jUi1weyr{O57$Z=11STH0>lX9Q!9#kj;uhIFR=1co&8AcfSE$BYMXZXZbxDN{| z2(&gNdIxkkV97bn*APxRY~;6h3Iucv`P3{(0fQY}js=zAqKESyWZB&U_S$+;pd@rN zHvpS!IQG(?HsZwi+PW7DZB@gl9#yuHStdW&KN_=KKfc8bW~oVy{&}$qST;A7L;Mve ziVj*I@NTBTDS8rj{imIRK&w9>Q1k0zp_2?iX<8r$Ykb;5sjFQ~3!9{68->#qCZw zC@x>%PCKD_R80fn=vw)t4Yh0ZUQZ|8hRjm%B>h);9$pih^1DfsQs3}cEVmHpYYz-V z3N5l6c7Sg%`!D{3Kl>AY|NK7~KJ%X`g7$Y~^W8mRnP1wR-EEnwDvkMh0;v?HES2UF zgJ1RhXS65%iCb5mP+e=|MCJ0HQ}J}0;-`R7oE5B5c^~Og5`uYT0^Jz!6Nfr5r4iX) zuE2Yf2a|X`mS%pImVB(Ne^w;>>r$NVEzf(FfY47x7~8(@o+HSGIfLxNQ-R;`xR$uv zy@W91_fVM$>0cITm{s4xpE$h>(%-YZB2P=veibL578AI10e!X3o+-2Rfo=Ne%@H=& zR`ZM2btXp9obRl1J-OY|O5a&*(eem~@Zsc3wbud*-sr@cliZx9<>aJovfp=8ne=?f zOXfP8bgN?2;Y+4uEC*gxsp;CWz!b>D74}ua-q0gS(l-D^GcsAw|%q?f5_yKUH$nF**Ci6@a;p~mWyrn2#nxEl}Y=jkQ$Rj z*jEWexH1q%;daewOI_~DKlL&H&EcJiCrONKcX8YAwV`oIxKRFF0rv9b-O#hP#|ZWZ zsf#^^L;S3;hq} zi$Qq-9Z9Y$Yl+vI>f!7vGRbmRtMtlGTpkq2_MpIa}%!c!{yw(?Ybp(O#tp{b)xjQCWDs|D0B7KSXB2^QwV#Z}Y_4Yj}E|Iy92?@?r`L zvQNnri6GOxD>nE0iw{vpGXtV?Ka(Vg^t(<9vl-e2(tZ3@C`4dh6?`KdU_AB0%La*OPcZ=e+39E zrjt^O6s^|0;lkNKEc{v{d#onXs><$MU}4xe!8Th7?2|)?ue2~aIEcC?+a*z(k58+! zB-oYx;oXf>tk|c)*YMDYhmZG}5gYt3+~xz)2KXVOQvrIrid2C#&H@4rm+>+|VTNrY zsj4PN+yzYBq#E(KaB$iict-xXFYU0r+U~n6LK3RxqUj5KU#}<~DTG?I)r%AxN=J3@ZE6m@=P}ix{&|M8maug+xmV(niaBv@> z>cB*|Br>1^(%qWV3sjfO?#o?OR6tTPlG`KV8VrSiA{3AoR%9T<$IMC+Ms;a1aaNlk z#J1`D=+{)lo?yKZg|H2&%SXwP_Jj7f1Z;BlB!zwFt{T@yY-wr!t~DkBmGz8 zQfl+J_}n|Fl9DUhCdaNS(IpJ`Uij3)p5PsB$co{5xccTryJjHTIqU9!W+IB2f3r8qr zv;b_onzsMc0Q|ce{oBv~xd0oY5cB=@MjNVSFIGQ=0fzvXl?YDRMDI1(6u}iH{H|l= zFm^O9-0ICZY#$lsXhj;>byl~&?nSbR(#K#i;aV52hGx-3Hgvd)nRdZDA4k_4?e;{k zbxNyGPD~@V#2!~_nN6xu!0Xj=z8FQlhZi2kvhbU&jXSx}b+zx&M+iotkSS>8rfSCG z!IkYiGFm?3Ri(Vn$>NXklZs2+-4Jf8sW@{!1q6RC-z*O#+|=hfQoQrpPChrrA_FT^ zh9XPg^O+*O+NWyFA4#$^G6r|~(l!ha;6&#eqE@R*tIS*uDbYsi{1OG6$;b`j80 zb_Y?Hmnuh;x=!iL&?yEy{Uqh5(d$=U8a&DS)g{XH#GR`Xg5(eShvGc+UMy-E(xU^f zt@YXr@SR*I2xWjqK_?trFoXM3YW~sEe9!MZ_7HS7ww!Tz>@LdmX@16tczWep)XU`Zr1Z9Bpt)wrV3AI zMbos9n%#p+A$?4vu87(QZ+ued<0J3Cn@IFvik}7(-u(X9&g3_|LWe2w!%rTC{DmUq z^VgWh=H6s2HXYwS%mZP074x6oR4j&f=mg)00u|D<c| z+mvmC@ZM^kerutSlQ8O0t zg_b0&lX73nb{aUOITJ5{M$ZmFLgMF(p+v&b%+s~QcVj^&OoiSFzg-GtSXqyq3#UZ~ z30Z!v;g!K{DQ9g|mw#Sf+Q3#7(xkYvO}(I#d_e7kwKvr#jGjIwW?ItyphHlrCvSB% zpLxinscb9~Z{7#;z()o3W!-`NW%-==(m2avL)H8GSV_j{gK*`Goj8V6XG^3n!xH6s*#(%@B9Bbob z5-^NbISKUbUloFTDhjvW59E1uz#m7SStBiIp<`O|$$H@dHFjhgKt|e7q7zz|$nN4C z@QdY4mJAttw*7lOuh%p9t2=Rvi4%yoELjYjKFcugVp|*(&=Yz}bcvkRA(@nmn{2wS znyLIl)RZU3*lc8b#TmO#s!GdRDLq>Up1eh^d2GrYni?lrE|U)Jbst~iP6YQPh6V!M z{lW1tU~1^=FY<(H`<(CRW&02;GMY1;(tL?Pv?*Yx-AYsul9>f(s(gF65FzxQzdQXF zc>(hM2V!8^Uf3rqo2*i8u4k}kPQMV=Cw0+R`zeU&8so0Xj+#D=f{kO4a0_kTmUSM` zzNHF3U=F%R^&CgFDlzwl%rC`gsSxxOEG%_>ZHDYtg)&FZBo)p@3k^z)Bl4wT3Gxfg z$T3A0!K5Z2xS8G%3@<05t18+j8J1tmTj$cO4$e4kp5Lp*Iz>u{4o}z%HqR$p+8G$<$ed2YiL&L=sd2+^v7>(=wHtZFZedl9c1*%5G#b~#; zsBF}Fwhp-lm0=9p6Tb31tyQPkSXyrb*d~34Ep&^h^bp=$gcS0WUcaRxF*PX8)6JEu zAcpVebr(NwDv8cQn#{M?^Fd}Xam=mj+S6apOvJxqoDQxXIAk&E6+W;jvXBTWp7F%S z;B(_pO91L@%}FP>#?KCa(X+@T*&#MM=pL?^-b8YP5A$G9qbB-m&v6IiZ&kBZ0 zgr0!$*Bi1LQMu?g=qa0)=oRtK3R-jfatBVBW#C!;#cusKy(NAhb63GKcU`Air%9ZD-msEYzt z4$;&#dKo3xH$$TMj&JXt_(3vK9Jg!+bYX!rTQZDS_y7TIlXx8$cbd*8-s@a888XAe5r9lYaJ9s2|v(~kaEmRjrtEOCL zYS1ixxxCitCFKeq$}Lh)cTqkh3UQ*P*qv2Po@XAI#z8Qm)1KF7*Hed#8d)FZI-hm5 zL%MT?zavj!xw&&lE^8$`Us?Hq#x0@sUaX1A%a>&%jIi+H6RIbaKnWV*Le<968HW%u zn5}tW63PgeeeXM&n z2RPh>vp^&g5`n<`e{4-pN+qN-rNwmgSk5k;uuqW;NIPDQsHumKN&W>vK-G|+&s4Yv#2&8yiXPBkk!(l~1X})IwW!=?6lotOMtF0oRi_Tuiw3ASM%m33BH3uvXLEvIr7R{^$3HQmWrZ`j1h>~qvlJnwwciCR zSH!&<@p!@AsIzSooo`p2#ax(Y-m^?yke_g|c%bq*OfS2jnhuYR4RS_?)w_-mF<1Qs zKB@GmtPGWz#M`mj_@vD z9p5gPURm+xX@N{kl&Dp^o+xV{_rqO8vpf^Z&V^_=XA+pEFCr@*?)hFXWF@T?V_jQp z=Fah}@3S1*7+sPujLXnfV|_I@*l{nj>b{+H&n5N9F3A)2V=r5!5~xpfoyFWkjW-$6 zRt=r6>F0BZ3~$|-E8MuK918ga@;2nz=$Im~qdWP){qe$G8;FlC@L#Pv6hw|vQJ%9u zk}AJG22y3X=8!D53rFw;g!3X6vNOLkoV9!)w=zL^_tPCC>_gy@7}LY~Nx^Vf9r%Wn zgU}DIv<4y+WfOs=%!{XHj~NW=&;o;OaM&+D2GNMGgZf5l`;6ON2is;K{Zy17g&6Z(F?5m^7&lW2k9G>q0@Gn5L!#NOKuD2mdn1K{@;=uyP;>Q; z209~{^8-6T|?0XT=DeE9ei5I}vTOt|AH0&4c@x7QEW$Z^7o9{i3W zd-MR-N1qI+&M#hz>4MkuJAz}F$f-!MNW6%J7fd`OV^pIqD_Ym0jK&O`PlhsU8MdN%8+(8Y1bKqGzfQ6>f zJ{_nFeo_qwiWdJs8BMi)I^lKfDewp&pAJa*2KB`+LNSO1^Y4n50+=TR%u^c)N*o{g z>j3607=tmF;g}<3jAFiq{K5uH!ui{PS?Sh1M0O{zFk$QP#I`K$g(&l+V1g^xYxW7W%&NgAS%|mhP{Dar zL49)M>!o3{t9TMj$)O52mxZg&siCREq@&-|aumfsh!$h@4wYd#DLlRD)ircR?Se%j zPb{&x5;;Syv(=WQ{t2wlRkxTVa)`>5g*0zNilrf2v_^@4R`B&#QHbjWrEIK^9(hIR zSW0-VH!^90WFX${s%wxS;lUIK5?8a?`gip+TjHI9O-|KR7*VrHDAi|}lUvby-Xfk? zvg~YEE4VLP)m5u+l3j6gT)(SUmmsTxK0XWb5-SaC)9aj6F}-I$CC9I}J_wa`raT_g zj3zoW$Tadh}ba(&j5i+D3sM5R((^YvANYGs&)DR+w%D-&M|yN3wH z$Vh=F$yS8-@7p#xOP|F6EIFAJSW`MRG+S{eIG=Lo8=hnoV>riJMcG01*X^4J6GeW_ zH1xQzDOix?>baOi_7^kOR-aM^hGscSpc2Pg;&n=j-(ro>ggg7k6RY5qKod_jDqjiG zy!LeRH9^sXYx6@TF#CEO16nf%ZQXv)ldMGnp(D~|X61TfASjx&1bU?e8i41xXfPBY zeYPbR^Ah8CeGn<6qP`b7c}KQHAoO0u8>#*IzC7iL8Xt9xje#dzb6|c@*olz6_xZ6$ z_Y;+PY@3x9+|-{GEEI3-HW-~6!F+^LTWDD61S(xDN{7FV5VV4-wtSA=_x(WbH%xkme39HOd|@rL`MLNsz5$aKzOQ{S){UNzn;I($x5N?muD?JZzSfps zxCuVnl+v@8?OcMB=M30kn2{aASHdz1I^+WG9=$4*V1g_I) zgLnwEY$<~76KfS%?ywA(^X??f?HO5?z9JX2Uag2g+J?oOWq>sN&Q}TviTsXT1|=X8 ze7J~o%{_x^9!id*R-W**^Hkd2?I$d0Ccm5)=x+CMq_C={BG9m{J0V{Y$uC-4L8b0|QC5Zi{8ROqQdpnq*0s?k#Wv>9= z(}lnIP2MWw-VMa&@$Wa>W2y^GMQ}C#or~(|nQbB=3V5G)|N~mpKx*>D1 zqb%J0T4Tx>+m$+2<`+)LM8qWmmL@lPm+1QPsNg1<@@HXm<=oqvPMrB495v?R#R&ELka-!DVbvtu*9{qCB~{h(a(!5b z*)d|}E5=~tH9`GmU!Eh5x;qs$cN8W19Ep{3d;_B&*k7XG$*e<~$<<#7MpTJm ziLMDWIe}GN^-#-H$-`*f>s?J0O5EsGWV1MRnl9p5{4v|E4A&k1$u0zrrN_!4j#r_6 z+_Xd`Y%kGXL@-gc%Wd23(mO_$7ZB1M3*5y@w3>ghVlk=Z6#sd`lbV-|r+r%K79`0I zmEN+DRdU&Dd$~RP8V7EbnI$2-mC)jGO`!J^NV5UXCu!~zn}0b%Rm;U z8EDgysBn3$-M;!Tl&N)kO#3qSGLCUDxZr;KlYkQ$mS0s?KR}mem|Ak)?M3Vo-WzTi z5E68Bij7Kg7^KftDzK)K$&B6$FWHrj4vlWHvQ{kVKq zU?idIOBW&rcSkW`Yfu%+oMNytwUE59uzOQ&s^=;6oX(fPMeguHQ)bqo)h)4;?#gt= z<^B406%lI)mN)m23is2XF6zAVFSmPU_4Gu19*w(AIVthIhQIT^l(a6u4tMU;xYfHV zjrI`Wt;~)P;KJs@6{|l2D<@P`GsxLcU`f9+nA=Y15 z$(KW9cNeYSRX@UzCpnqvZ{cpmTl~pZ1e0+cS?0vXx*>KUlnL;MTgU#^*ZJs`0*Mtn zG8=LAQwtvX9T+Lrev)=H4U;CP$#}+Q3K-j&lS%i#n|3$rK(?N+c@l<&1|;Z$0G>pk zD5bo;0kjKD4JPMUi>#deI4aQviu26_DhmO~9Gl7pD#x$yftpI@NO#=1E}&j?52V5; zJdCjSSpNJP@lnx3c)jZcF!9qDsbP=O$q*pe>6f?gjZ;#~)-h@jmLv7fAFwqv91XO) zU*AgRaS-lYfNuz6(s0$hU<(N#Y6pUXACl^F;)t5Q;WcSehfJ#x%S{{}wY*^214T*mj zj-Lu+f9HdqI}=>FJfU3S_>6T6ib&{q5aMqlGJtdW>FF6WG$|HNZ3U6YW7+YDl{I+3 zx>s4p(QUu@tnX|2(q?=OqQhCy0`pq=q46seNl9~ z*wHJmHqm(dM8^LhCjD0d4%F^nkLhVacaQ$=pJ@pC>oMJ?mZ1MN0{1VdOM|Gin1sdg zO5I0ugmH6ZnXwU81-*NFHOkm`0j~{&X8&8b3##w^@9*rt%v9be1Y=oMi4ec@1wi4H zcSVLYcT1L~a?xtUo?k9J`RMh+R^t!H#LpP0EiF7?T?9Q2qfZFu8q?FQ45K!vy~4=o zoVPS9&G8MdO%P3U=qiO5RCQv*K%rsSWaYqPIY2QZ+`M+Q^;F9g?0Nx~6BN=pDn@f3 z1KrXc{H>mlUj{F@aK0}3QMQQSJK6jVIe{qC`Zb{%T1>RuhdqwOmGOq8J@b(M5Pine zE6ak7Unxt_XP!GI>ha$EJoj~nr8==?!1FDMu7^VLVXwZq=*!AenK~3BqdpT}R0*+C z)RP96FSGAw?K62&wXR^ozu`eDMM2{lW%(|D=w^EZe7C=d_;dbT$XCaHEw;ibHS7jz z{BWC>L7E+;?eUWWlg6EH<|eq1*CsNxj4A0Xd_LOu8{YaG^Dk&loU4lsZa?bj4)bsbXI5B>v;zT;Cj#?RZ3)spMbbUduN=8~}ih9!8;7@c`U)4iC;;yqu{ z&(BuRf6-VY%6>%vd&u2=++Lay_1t{-)l&5CdrRHM_Tse+eL|zPRB#mpN9BM_%;A13 z(Ae*-o<-zPzWW$BcMBtakEr~Qe*Pa6ad{~>K~G;rdWxF?X2D;q)L$g>B$TYDdDpm} z724?a^js4jOkLX|dAa=QS<7K;6o><8M@AqJ)y)bdtJ@6H5t|dAwO%_`xm}io?s!*2 zC-}?Y0vey5en~Cc(`bx6xk(2))#cKxANPM)DYN|SMfAckmRpJ3S}Ogy+wQdMkIi)Q zW;*HI&peSK3YD4gZe=?W>wIkNpK3k7WiDm}tR>~ieb>MuO3tx^Ym3r9h*s|YM><8& zZZyX-J&1YB`#JB7ILlh>tn`^zUR37d;)mesz0i_O_VsVIDlX!Bxu7~CLit9P`lsSS z{AvNsq=#j1SwHl}UUwLw6MrdBM%Y=!G{WF(U#!?nrnLO(()6{k)YRZ(*|k(b6Wuhm zUs>?(lZuQy14VxZOSzP<-*-EGMd~;&CCM#v8F`}QjMS&+2)fmuEnGHFCam3}1b^1O zgbzm0GCz+(;QiMJQGq~k<#z*CvE#SjmzMkZT^4%KvaEF}naoIebBol|fzB+-Q+kd% zPVJQ$ANnyXeeta9&ZVNvLN2B8IXY1?fx!FQ9gg>8iu0s|KX1vGsb{xYTWgYLaan0@*Y7p-ipnc=>$+BZY?_lXvz)EPH#mc=_f0+WS^gydf3OqC^mcdyB;h5Wmx)&p2t-Z6fZ++|?(QP7*T)3G{#5{U$-*lxIZu|V&%2W z&@^pcD|;PEE+xhNWjU!FlvVS|fPd!N1a2PPIm&jb}LmW8Pv zcTt_CISrZV(N57?EaWmo{g*P5BWfxQ(YQI zTQVyb?JX4&tn68$FA$8gOt`G;#FjQC5nIql?C|oAjYhRtwGZpXoFy2yClgx_?0F)I z;Et^XeXDY@+~oc$^9dOrmjZZhYR|;q4^9rA*veJ%5_FN~-hP%K8x zQPg(r#H9})jn`GJ$>=5Yv*@s#kI%s9xx5)c10nTU_EOeaS!d2*?w%qk)1gLssp>bT z@AE1TN=~I+8Wqq8b+aR-A-IlcLW?3C#!p$Gjh6Db^pvhPR11w2zhpP-e&U*4sWHvV zP&YUTGEBSZ_1k7!3PkM#!?$*Kk1op$hG^-y$*ytE7MVNs}j!0$Fo06iQ0UkS#&vPyh zZ6VVdnfZGl0vS!&md-ivIc|L0~_Fj~$1w~;mv`@A82s0dBt?yj2Ko(OUyA;J1 z(Z*`CQY9Gtp{_+}OmAw)rzk z!Az|Np?sX=QDpEqHvta|)ZtlMm$jSLC21iS8Dz;Ro9gzOcF}PY8&<~Yb;m<+ls9QDzBhaTq%H+M=P7jbvNHMb@$H<;8<|s zo0c^5UELSiy(igt3i5RrQj>StpGtLb`fh6EAkz#SxCJkYNcI6H;j@#73)N5zLg=yRUmGkuw()a<3X z9@e@~zsM2GZO)!(K`mx{XKn2$t%ZGuHXnj1m{6)z&XmnFA4x@1M;?q=uuZ1lc7EK2 zbT#sl97?o=pAk+%44Z~cbTE&t=C8G2RXLg|j>R*&@iT<<^F!vY?Wmn{Syn`6S9sDI zKtysW=AzEN{N#RFN>zNPbvtK2=)DW9@yt?5PQl`S{PJ<^%`0yu85P8~cs|Q-k7kuh z;OJ4Sem)Mw1}rKekI(QCvsAG;n{KoB8w!-rco7e#bPgU+<^~-O-Q&r_oFSjQ?gU8g z`NxT|&w8Vg!>0a^S~9N*OIiL`6If2Wm13Xe*DQZMD&lw<<&9HP1y&M$V4aYca zeMX7I`|^bdP)oNiN8*H^*<=;jkV0Q$l1cHMg1w-!GWPhSH$qQ)|E_HDU78y7Brsa& z$L-N4CIcs82yxQ>%y?_}31{z`8HH|8>Cy)HWd=)@&()1@ur09ckd}fHn=m~`4!`qg z`6+iJU$>Q=O(l{x>(gxvR3?(qDNNi54F9y0OpnLqDRFkuxiNl+z08NrE=;o1woCH% zTdg?y6))f`ZsS1{9lD1co`MAqcwBUR>v0(s{n7!_GQ~urTAKJJ)T1{!NLgWhiKrh= zkxc4oy}t$>W@r$xaFiHs%e>iz7y823zl^&(k!aR{)4!Sxqg5}eZ1Hv}fT<7f>kY+T zG3NA3l5j@T$`*OFRaTI+u#2EpNqy_^tv9wO#WymDMP_knpAi`olH;@@rBj|pil`3X zx2_@?>{>LUS~p+GdE;`A+0i79*#`IHug3BtwxDMgHkQgYQ~p2h-a9UeY-<;81VJS! zIfIf^a?Z4XWC==?tSCs%IW$3X21Nx0B+SUgkV6zsx;;BB{dekka)z*5RvTuBpLJ zkNF`(;Jc;jm+&eIK?2bPu_t_ zYp5H~<(Nx7TB;zM$d&!*wp~8tL!UY1)RMW$GfMme!e;SKcw0i%pmyxS0J(Q;68t-a z&{Gx8m-uzktj3PV?eNoe$#s#QeR%zHQs8U zPxKfxs(x_*5$b0sKT7-Y)dJAW$-b%bg8stlm&jGu=@Rc%_{_KoB|_*;Tv$$3lHGWL zd+~6$4C^H1gH)T?_Efp$L)c?{+e9blTcAd$Yz;Y~=u95jewnBoq0HWLu5m=CrBP!_ zLaxHFV0`Ex)IC7yw(WfLa+$0r<8yE0Ff^d#+f0OAH8Cs#@66{X&?8)jv$9(ZRYvI% z7#8r-npr)ybOs%&iqy0|y)TE%`mY>!UTkIMYhYNo(sm#;xSsMR zts>XZT9@=<3AZ^(7ZZ-X)|MBeoQcSSDsA6xl(a}Wk}&7BfQkOK+3EX<53$BXk0lI~ zHq>S}M>HU173o2ya~3r(n`-fK_Lxmt&4 z>2Sb7nOvZ_E41hLj+w19#eAR40<&&m?{l8vxl6Y$gBTL;Y4&g#n)vOPsoRtvYAKQI zla30P5?gul1_$wqHZVMcuJr1JQ0-BY@kLJ)&(6qc6(-gQTQf&uEucnaa&ri6{6K0a z%GuuT?d#TIs!4vhPAoRWDU@y^&gO)}Gp;9{P_W;ZWtTg(ev313{9d>b`lF+q-G+Fu z$*R?3n+NvQNA82uvQ5mPypd3>TMSl6Zp_}qBDABIYiBj|#_ps0=CQIxOtX{(cqVye zCEjnmc)EDL-IynYZDKS49^|m_m&MJhq|A2+GfxO~^T^?hHKqR2D*C4#Pa;5cdgq@4 zUK1}5kd(y+4(K5WjMtV-!hYU!i}^=m+Mh0=eqL5_3~dEbh$zMlE=p91C|)lD?x-d%vd*&@Zm#3t8^uQGwi zJqC=@>?QQTwQ6WIx%$$#F0^F{%5d>GT*!*8z7BC#f~sl`@BLiC@^t&L$(QTie$dF~ z*fKhV#dE7t&*R19SFp>;<6k|q5{TdOJ4;>IAbxnAdK9fQO6^awaeU%74G75-X~S8V zp7XO^DnG@Y}^_E|?m5oLF3Dr5I(!!up11XG!76U@V}@oh<4 zFvdW%6-xK$9Nrwg z)A&0#;s}!~!`Y+e&Eq80g5Pv$pFT-vxhWaMOk)hsXAm?GuVAnZCXeajyXE$#c`H?!x1y#Mkq}j zxu*!<#qTdgrA&Qbj#qXp2RhenM)o+^LE`4SW^UKsx#mt79)*qMO>Eh6I&cftIIw+G zTgdy2<-RkChrnOIMK98hKi%*Jt!rOu@w%r}J>qMxp>?#Qz@U%rZWn&Uwls~+`)M^6 z0oG<+r7uM{X2h=y*R=%AZ=g*9fA%^cCwFC}fG#I{24k99jvm~i^k-D#8t51x?w2g% zEHfvSXrQo=P-ID~swmtTr(sJKep@iBXk&GuukUIreGBQfemY3QE~lVeFl|WK+O-OQ z?%B1=DEDqc_s=`%e(&^06;*a6lC77qptGxobeh-)0GEY1KUzh#^>%EM<#~|8{;joW z4UL!4#69FA2A)}pO-R<=u#5(Fop;g7QVq8^bkuoem~njj2Ggn*VHBmlhOh;td2K}X zt4ynSBL(xj&hOQ;mmv+e@F&u9+)O0o;0}x^jh>5p({~h73q|sTy{X0aFGzQmpNN(+!|irspzjX3^b`@* zZwmW;ysp+a)zxc1Yr%Povx+SSN_?7lwf9k=EmTqj8g6??wK}{Ivy$ve;C_>!T8}mm zVoBBixD6@L4%ACi^9(lngyu5IraKd)9Xpt67L7GyI7lvCdsIp&?~U5!&d;nt=HLibbzcTcuKi?lW5Ao53*;A`VWa13`0IHu2-%f$o-fCVWP0GtDu zDPahdxIX+>Zt}OH!tcu!Zf+la)xex+xyW;}=Z!_^kUt!JSfdxLIr}NrecA2!L9|niR2O@g8|=yk&3J=D(OQK0V=L*t ziyf=m7n4`ZGPKg9k0kD4=VsQGowuI5HZE8cfmY5eeeU{#GoiEO%}@aEtcGv&akov* zFP$ZLPypRy#a98hp|gsKsV)twJ1zTm-9Yaws0?~wSLOQep;!L8X!wuw|08q@`HMx< zZ{%)qCwr-Y;X|lEXSam8Wn{-ThqGel_K=u*1~1dndK*9Ej)Zyz5a-=0EZ;~dfT^#)r{)$iW; z>D{ra67wxvnkhns%}=rX;&f(~j4!GlV!ifOZIia>h*hz@o9PX#3&yC_sP>6;T9YS z@n;D#R#d5vIn1B`I6^Vu6FVzR|O zIkBU8B}p!9NL?>yuw1I11+831WzH&`Chu7jaqeN%E znkUi+^}B(t>6cLt`(zpu*X_0%-{TDSQfNOie)~S!66dJIj#ya@U!i8?-rgSa!ED4X z>prV*g~O|IfeGv{mjItLjL0+H1m#q^?$4gCUf+^HkQ~~jfBic4busM3zPPt#5*|=; zvtiCa{^}R-x?Gsg`_l~Ky6YvViNV7@lvb;ONN`z|Y7_4a<>({gYac)A^5S1E2%%!+ z+XU%BtW^`TQ2-KzB0Yldr+x~P9abCruzi&1+sNo!SYEKTeX!X=>Z?~hw$qjKw0%m< zo*4c9V=Wb`t83B}#E2GC!6_K2HsWVfaBOMI5d+cGik$O)vtMz*N>C!DBypm>S1a#=` z_f`0(XD*AB!Q8$AMCrC+^2E7qg_L{>t+i&tdq(G}pj*Ml`6z*0d{{ZGU2ze*1zI$F zCAM4Yx?O5$yWJ-Od5tybdeXGPa)`Hvdf?z=d7K~c=yj`7241| zWhy4w&|`2&nqHyWj59iY*kGNFm*h(t*#V1Oxs^Tzof_s0Lp?RtLd>@873xJ1FjD*8 zXGkG8PwE(!+RK~WcQ3t2FJe~q)lbb5Esda0kFYzORdbWlQXPFbUTQ`u?$;KPB6)Sn zb3IXG$>bGS1&2-XgbDV`ejc3ZZn*;4FKwXzGMeZ~H4j`y@%ZI!lVffg#hEhz*) z)xh`kACa#}wBjm}!?Eh+cJ7K*g1E6)IfJ~(MM1Aaj-pu+?QvIgPZt-WRJWBLo>B$k zf}^86GszB}S-S^F6GGA$AZ*M*B7F{DnnoyT=T+m|8srS~8Amg+41G=3?+RMI zu9h-VaIx6}DXhS^vL79?+3mEgW#f-MBq;-*=At-bds2LtVhYY^J4CMeHrSlHbv4?@ zwYZ-V?*1ar#{Hz}sGw+5#62Ck;UH)(WXTt_ROj$Dima*J8Cv_9qMEGTw5QtK>HibGeD?M=R- zV9D8+Sp!P*EsA>@<)!c5+n1O%Ri+Go6-u7-oD#cI&z}%P4A(!wE#Q9P#29)Q@p6{w zTK9%r*Opwy0Q&H5Ku1A0yiGLX>Z^3JMgWMvU>}-%#Mm_9Mm&38Hp}Ur=X@+`0K2ZI z$;;eRtJCxXsS>hXjdeNEH)XcjrBZ3K+vkXSYk@(g%lmm;#~ok!^ltIFvaAQD5rg4M{(EXr11uuO%6MiZXeoST^p;x9!^`)$ILj|fkbgd_igIsOAGQou~pVZ zE7Qhl$gRmN#CGah#+1?!<8AP^!-gH0PswX{9=|xY`9?7?NYjI04`M-i*cHgmF`cT% zFu%$S^}G$UIFvZPtiYEB=^daOOI0@QGWbMOr)W&m$F8AAb$TcJvSrV)Y$B6b5OZr{{&1Ha6J+xY1yTkqdEif}1|W@Lh^KG*v$Fc{ z@}Q%KbVCstiPxN(R8}{xWApr!1Rd~XfQhtu8*%LoSe~1lVRucwx>AcC#ZZ-oW)F5D zEds&+ykdwOA?Y^M;`EWf>6?|^$zHMPgtW9O^Ntg}Bg!z>S@zHSm@Yf|med;ivq(zO z58X~9Y?b*y{b!_^WYUTeguZaT@|L{^Y>MKZHA^mUb*~;f^1H+|kJi_8r~;)OuQE^7 z&XF|{y&kujYv)sL7@kfmw@PWqeGu)o83LUX9BnPc4-sRZvkI)mpG|eY&yRT_l2kgA zcPzWS;3#oK&u6p}*RJLwPbuymu~gJYhzps+%w$tFcPwl?+{!* ziNZHQ9e~m>gw0%+vvk)*gtV;Qeov6%_6q~&ipx`}`I|LF|z-fePdCGNjE$XASB&+uf zYmO4MUF3YkzCv3*D>@w=ZKPaqcaA(MPa{Z`c)|&Jde9=oYo%4~S z#&zOy=87`g6sjGj#EbEg_iiXEthGj8wt>nczQ(|NS;7=Y?25DEcj9FOD5c(cr$9;; z=Py}d_y<{s-RL)>+m%+L;fqc~FXj`apH2`uA@Vv6I{ENh$CatQuHxFT>!n!%%#Un!a#Sg}_PH9eB6Vy&68yAtW19FBzg6o2M zbx+)5AMHCehz`g^Lbm?xOkV1X&OJpW4Kcpot2@qCp{E1$z1P%Ioz}Z;vdbjvfV4;O z`|pqnrCLqlmukljrWx+d{)XvU)3$LJKWG z@6*=8T%Ozzg?N(`ugkC9lnYvo5#pYAIBIrw?wK-?|8^E z@@`3KMn}hnmEriLRFwEil}|L1=Ayj!zUsVCk7TWGero5r9CI!Vo4r(w8tsf#+8qhm z`_N3bnKF|+KF5J<8ZXH<>@DRSAA7)`Fye#Da(pOxNdA7wAuMiDP2t>{{ z6TLordmmuv5FTh|%nc-44M_7tPp$Qr!JRd$_y4#vOOK3oV>L3YRqx}D7mZTg~tk!Mbl{jRMZ-kTS-FsB32Vvy}=18Fty-QgcjEzM! zpc1QhfAAq_OMUF-RcK&>-#{<7^_Bn!BD_uD%#Zb12ItZN@CP5N(w}ogdpJn5O#RKWf6HAQWnIlQeG z604CRv{4o32e-r58fO|St1L21J$0nGu@Wu7gp&|`LZXyGkRF;w>wxb`tXA>r(wtJu zlllQup>Is5fgwLQ4d{0}=+%1+nnxSy7wZmKTU=QC-`3pE^kRZ%Jd0}m zC7C3;EF%h7?Ciy9RhwYu<$yC1qJm{o)(^`l21>IFGX;}Jw4OaXa#L#^NbfF;2@VZP)?IB8P-R{sFv{+q04 zKgW{4ZDXg`FD+6erJWeBF?@$KRh0%+_{u!+;H?~W9n%{X{6>(_-CwB={;4Cj6MCgy zX{QOOkDxWOt;J&Ohw-z&Lkz8)Z)@H5qoz&odAp^QK^S?nWg1i^R(FU`QP)rX($Qya z-yyK`5dF-ev*rPe{{m>w42r9n1Tfhd#$$x$`TubzP>w$h;Lcz<=nM+r{Hqk%f0P>g zJrL_(eTO{!QwZgsh)Wc1h}$KXSRB1L8k)J)NfIl5WiWX3%9mJqgUkS4QZ*#SOJS>& zWe?q@Y?@*=-Mee7vLNB=hbw)s@3M3QcL+Ba?@Vw%_XQ(@z9{{3b#}6-IlszAcw@48 zz|Cjkb4gCuBMH?%-Y34T`t%_TVs#(u4OnW-)ITi{39q6YyTt2ObtSw+CroZ7NY(tT z+Sa|x6+19+IP%6+>%Y21^1oJ>#WK7bu{y#HkGA)^>UMWSiAhfaF{0Wu|!opv+9x zUR0mFt}hLCBX1f-i3m?zGQdy7#inzP3&4fH4&W!kr9I18?1DFng`O2GwwzED!w}Xm)EMJb8px=;weA73OL_m$ZKEKvZ~=Xaf82lf4`;cO-8K7a z`G5OLIufR2HWMi!hfirJULWgnMmb#`Q#a>+`vO|OL+Co;q4{NUz{7F+L6C5=!hsGo z`yTl|tUZp-SPkiZ;?uuL98TYHW0`rm5*Gh4?l_-*a%cWu-Sh(&fpp9$()0{p7m5;s z0`0tQ4RX-(RAml?ao?mlOAfI zYf=tZr+1k3Cp^v$szAXZ_|+=|;qVld0nQgB#`CkhK1FqoH1}{J5XVA1EJf^@MD-Ff ztv_ub1stXTcko{%rW0=`ghWDFlNRM$BF}%k@Nk5tx2~#vQq2MnY8AoQOCvr)Z@Xj%aV7F7>5kgOlU^ z|M&k#lE4l5HHth)_XGC?7_6RTwtf0+=W48_Umv>EsWpx7NvBGYY5~GWBAsk^$cNxw zTJ3ZEGEC;#nUQ}k5dX)rUCd$=4bVE((jLD0>Otb(Z03EsM>m+G7XxHb8kpO&#F#b& zY^|y!GAHZH8-d&9Ba@vmHV$;Gt=-#&l+YaGjB`KSXZ%4gXX~&WQYE+HC!)v z(&VrLa{+o6#3(g14}jC0NdSflinu>)MP>ZoJZvLp=T+W@N|B$roomsc21zrN4=l)2 zQKp#S6Augy7vt}~Q_38A&ws>x1#j+!^f2g}>2M2z2#NsgA5bFLU`q~cfer@Ogta@s zVJF1v^Qg;}zyEHGH?|4mIDG|0U-PE}t`P?6l&zv*K@f+!jRsSMEao{_Za9H%cbPxf z@sCy=a%I#jL6_}30y<6+00R(m2HY%U39$A<;iQPwGyD@h3|0?@91qQgp#-7<7!a2P z;w%1POMcMLq-L+BE(!cNJAB}T@}LZj9rp{1zeY#;0nfTA3Xc(`{rg-0{rA5%gT_Cb z!Rm(@P-shdfzdUaDJSz*#wT~v$KMS4TxtQ91WjLmZApWVA2+D=`4i%0dIdKuxWE2u z!`a@w1?qHvYnKXn2=J+YbKAOIWLR;3H!MRkP27JPN-&&( zVRUBcE10k9z+&&vZTDW{RbIxn>`aM1v54TTeqeB-Yv?2YAl@P&h|Mq1Oru;VCv%Xtx*vK7<8l=H)rT*yvdj>cP?g5nNwWjn4nXW5|~4Ps#fr0xJ@ zMk1o))Ir=y6j|p$E`RpI&2sUHbBT4IgHLRtL4#QmX6f?65mpaUhYfcdkS;U*MYQot z)bTfb`+o;lcKaJBGt=6?$**5(**V3~P`EKg|2e5l_>G;V(^r#Qg&I>@9DAn-Dl_E1 zWfjDAR8PP!)24<&Vx-E)&nsi7WZ_Y|+9fBBH}fKSZp(YZ$nhvOQsc0mnv>3{ebvl< z`-+a-=b{naGc|b@VjCVlns{nIoQ%;nCo~zjBEtUSNX$eFOSW9qIoz((!Hm>uCcu(TEj3X6Os5K51M>seXu> zyi>hp?8>Mwmd9c+{1jy}|EVjA-~-#pnCJR#EU))sBFGLWenCrBBQ+6c=r~bXTRalB zrRb#CH~X>9;ui7xTR_Thhj2Eg=|iZ}ouT5;8@SZ`0zp!WDrqmzyEF@Yhs1NeJs7J5 z{vye7Lf&W~w)ARn2jbP^SSae1KJQ$sYs1sD=Jo(ZHF+WWN4M76o<#={$>jZcYxG~) zNZTz&cS3Gx=TLS0adlNhPJHI_f;X{2lTlvh{5Lj#(8f^4o}mh&|MhwVT7-Xkt=`kLMv^PEHX-!37iNtf#%TSe8sQPT z{Xjo!h*Kpny7B6lGvyCL&ll7ke6<1J^3-d~FXn)~O4a!O`uOXDsn_(0s(S{npol0G z3=`n(fjO7=i%L%mXy#tS10l~%ScuJC^=^h?zxg@fk=uDdCF2AOxc*D&a7FYr4B(o` zU;rLCpa4T&B2PhVCB3`L4}(*J=9@Ff!7lo|#*gR$MhupE#Ofd%&<1{d9IW&z(>;#= z)z8WYPiZuq0EHb};+wKMx1`htZZ;UoZDjK8AUL*x|zO&A|A38|hY&=}TpwwlsbKj2^!q zP23*`%V7}7`5)U3NF?Q|!g+}LsTBtg&vo|#m>But0QoO|{fFwjJHH+&LtH#?ojwbr^qDKUJEf+?88uC^j zJOQ26zc$+aKe%NM?AH0ct836hIM7+*@GqAn1Q*P(;nK z|M(We%MQ!4mV4)&%1up8JgrCIat%?36Ex%Z@Khh$t+ecB>iclH&6C<%zDETvbl4Sg zM_9yvuygPpERL{UFgr&T*n3lKeWFUO+s#|AvqHGZD$8b$aa53_XjneW_(9goBjXM# zdvAaGE~qI`(Mw&tC`d>v-#p=_q$!CsK$HhZ+uJgD(Knn-kS^{LZ}81M(QUqlik?VP z^`o6M?8?sFXLF=ocD%Jpz1~}r9x6g{WFmnaPxahnDB{i?IS+fD6aJo@BQ3*zU?@Z) ze7FjgnUb4OP*M|isIi?&Lb0TBBjT9|ZBITu3U8nMIYO~hZz7FSm3A6`{u+6*>9+DT zpOVK}tA-;$RW_>u!T~14QPGmIbBEf9&Y`NRk+HQ?`^yJ=i%?$r&Qk_yxpkwkj?To> zBmYs(;@473(lJ;im)~SfVU(w*14j3>|P-IG<;OLGrZP&@SNW zH;;K~?cA+PO?O$iphrr>(R1DK1k;poL5E ze;nr`nQq0ke0s=TBg!68pe{@(yr?v#%HgL=%{@wh*(DM?`T&~cqyzAlu&26k-xhj8 z?^g_2-lRAi<%JwPtX*I%lX`E=6WQpO<7qP7^~q&^)|%>+JSTI(odx^FMD8mn=;moEKCHi%!%+}EbAy0H?0iF>lnRwZ0OmOS+K{FtMR z!-K>YBOjeILWQuU`IyHyMM`oCLwB%ZC4rRMH%;7$r_xM{i*_c*@{Pmx2Qel?IAvBY zpS1#O>4tN_FI`Uv$_!DBd=p&Ot5ZcUki} z@r1Hy_jqsxp55GSlaf6;{K zTf_=!24c~oEyP0o=CX+X;^b9LicX^`g{yU`V*4s_jd*zMcr3b#ol%7T^YED(ageGl zS-GFg!>szgDpoW{;@JYP#G6~IBP(R3=RwD)3HRt#WLU^>pUP<3IPI6Ok^1^iN3m}T zcOFVErEDL@g$qwH#N}#u)VtAwu<>aOEs8_6~0I(e-PCvo*eif!&*GHz>+7qd^+HERP+mWlr|lapS<(Q zc(4y~G@8qy3@ziQaOQB&P~u5tHo=9*>`sc`v;)MX!(usn;9F1p+0nP3<AL-M!m-`q8eO0a85#F7G_N~ zhu~bP@TUYtW6#W%2^cpc2U1SB*cW$W4=>tStkbx~?r(d3LKyt6UsYfmpBV zE2FTQV;EcxQZRqmU$QDX9Q`!&vopc}w!NR>*rd%DyB1 z(v006b!SnjBJ&Ogk=POVC-3GKbFW-O{b|`WyWT!y-$-nx4G)HNgGJY@^ht|l?AMCi zFa*Uh)AN#CQjJSnM+1+J`L9Lb*sPGxC<4f$#ImM9rfHPL^wzQWK!{L`fKu&a z{oSvc+V*Qk#Pv|9?L;;ZS}KjE)_-)_`2wgjB2D57LAXOJG*^dImv}<~r+hk`=^#qN zOKG#bAKar}wUI_qbISg-(#J{S^R;&&IPVlIUgJ=)DvOG4C#hYS_>)datl+Yklhu$1 z4u=kfd=EBs$K6fQp4cee?xx~tPY>C~v7KSPn#$JKASrLVVm%+_(VLAS6>UG!ktfG9sFQ?sl4@ z-5WRCU}Sd}wPmE>a%V+QdM5Q9ia$psL=_k1NVGH805YL_t zLg|kV(I%3ihN@oIVi%3Whk}Yu_Xo`*3^p1_!rxB39&LuJnmbV%-TTk;$1g8gRq-1^P;oy!a;%}dM!P>fG3X!Pr@{X}4#!eBBCjT#)Y!(+jip*R zN_eSLzQ(TGX`)%+{`?;;yZJJCwKD?APmCW&Hk)cCnB{A6%G!)*S9|##q8DwZiI+X} zKhi?~Gv6PPa3TEOm3PCgHTsA2GA~&^HH0*(U?mziA)iBBXTTyvpGL)#3w_@QK3VKP zQYORrigPOa+I>qC>BkB06M99du*<0y$4cIOeStjJRz+{%gY?K7ARtjAv#J`7! zYhy>uv|SS|6Zki<19T>W6SmbZW{onBa^^HAcT3bV?6DHF;4^VYdXqHWIvGnrw1hGe z`WnLHu2>iOc?qW^%D&~^_AN+;rRIGuRxD$pIpo3`r2|G;bD4ncj-~(OLL#7=Kez(A)8`w2I>fJ+q8)8na|TKcvp){{VT8FH;60O@ zzC(QP{}6|OxaxfLy|W6>3x{ojq}p?^^Jig*ghoF9wT~FyiTnCyLCK!X7_{d3mP_X( z>E8y4VFo~!3J8koiAxIPLmMkloUaRRgwYvRc(dH-ONz0ePmn1m<)P?NYp9O_U3hVBkVoY;c42o(6? z;7~urBkX~AgdsTb$6fXBo)Oj`ul@)2erIcR3emIL9<`8PE{rU?utYTy?wiFt7R zKO7Ds+5|Q@2{atQlSf+s#chzeU$X_4DuQ8ze)WItd>+79Cg7+2Kz!ew4{T!slpvaX zFsI zG?1}nn^R0;d5j$#pwz21okeW$sOkQIFBd@RW}`Bf+M8KwnrkbKHwkBk8g7cabUt;C z#_HC{6<=&>Y?pbU0 zI6h4M_^eXhokWqzRg%$3k4K1*dv~!k3z)p+DeFX4es+An(8}PRPT*80GXaDck|@=n zNjZ3M#<=M4w5reW!`7h;CJcKtX~CG7BXv$LX;J|?x&`>o-p%jiN=~jON8w(e<@kWks7`<8V;+BVFm2C9SgNAQVry-Ib$X z&KR+cGs=C7jy=GMU0SlJ-}8kIRY}omrihl74h`FQU80bqO`HE%;m>MaA5+r~J#W+o zb0gcAyO^l`>iO%JSYk}e`zBT;8wRB>;NN@+3%lD6wiQ3ev7ecKYBIbUHucVu{k}6`-Z-gO=c*13B+yDI{NE=9T2Q8Di%Dlm-c) za0J{K?#&5DUxXkf5uIztou~e;#1*^VO~~N`n`tEeo$*1*b{4ui9hU1oF41~{Rwp8z z8no*vc@g%F%04+&@A*O})0D`zjeDNp;7~EyuS%|tH*Fe>Z6DB6?CLb!r8Fmp{mr=9ghg`(E5HXanPK~4p(g4OXbswL3t18D zfBD30m`ufggBo&@u(_r<-o)RicjP<4T02rDMOb2{zkTV``_7l#M)4kLtAW9598(47 zeh~iQI?a=|EZ=#7X}$_3iY||=oydh|c3AH#o-^A`DZ=d8p7zc~TtYG6b z`8x!Uf2vkv6G8EwT=C37-$`+fdC*O>`U$qPeOfm~gewp|)^8~{A}N%$r&p(HE(&24KMi^Kx=x=GH&#t?zC+0LcS@mwTh2WWHldU!s~wFI>v9DJDt<{QJchEpn#(fti=q|2@amMRK>EGTL>Q@#AoLu{ zro+4VBrPr{Cue5OJYiUmslcrBJg2sERt7!LGK#|LwuW7jBrn>~fO%vpuJ%r6^Qp2} zuZ|X$GcFnGnUD^aNdmWbVXNL%PWh_hWEK|KE~fQjJB`O4*tpI|hTbhHlZR#kFf-ub)Jk%Dl}>rFD=`v|^E$ zZnz%~jdAtf4Rehn`QjIKzdUkhULvSjMr)&(SNn|63Y=FH)=Y=eYClf59j<&9yNPo# zJ7M`T-iVVZn!{ka>kEd?ZzM^%FAuGG=vLRbeeY{~) zkr}`@-(F9aMh85nUu6Sq>rI3ICrbPYv8C6muMY>rit(XOO>p1Ey2i;V?hkhNa}JAL zg4L_~=FOO$PB?&HfB6Ew8d54LWCh=h;d(q`N1b+IN^d4wnI(*{A+e`PzaF6%#?vU} zkTGlJq?S7kDev6s?1|fH_Q2kKJ$^=}Ph{AUPSnT+H|+4rUbi71I)8guX_!Cwi#g`87)w`p%CB8)^%40jr`_zryMhgpxcym&G&Ma-&W2-v3I24zVgUjpE7cqG@+Z3W3DV>r&{%rYS8^L z?rS4(%E00(^5!r(xog5J_t^lcmvM0?V^8GvT4vO*VktNQ7uh2rG4@w&UU4OB3v@^B zQb`t8TvcWWv+-BRE=!lZilp3bp)V_Ca6rA-_+ zpWjHx7W>^XUuK^v5M(5ptDP2!JX~kqNnMD8B3L2}_k<*iEt<#9C^`QHdeK~mEo`Bl@@wC&viPrVlzFO9FdgD zSr?G%s;ainrb^tfw6b(s8y4eKtadVZt|I&cDct&Z_>PjEhF^N7XWh-wKBd#CfEV9UYxNXn#U>6ScXC518L@JuF|z~ zX@(~?%?t>Nq#Wz(6|>Xb?ee+=Sls>5vBbFX^iqG;!1^ci>A7F`5lM8;5!uN*5T?jW zRejTfr0>tu zQsdr|-2Om)SSFkDWIH3#>&?CEqYVwNI@l~J-=^W|ozy%S!3{l1Zry29ix~29VE`Ju zM_h187%Yqm2!(z81L5CX*VT@)oVlwgLd*z6Y=f>23(lxsNmJ$H>`5BLYLX}WOSzrj zCjZ}ml6TB(c=REw`&13<g(2s=Qm&QKH(oVlx-sbt#NJ6nBRZ%a&a_dyCdQ8np6f zsCrghym;iC9ds^{d40DQm|LDr(7hfOM64;O~hWBXztoPnMR)5;&YLBK5qxU*!!v-rhmVr*w!{vi>LTC}m z8WW0PZuW%i6vOK#ispTMx0InV*1FKA00pHs2zb&M@i0*aU;eky!50>M@&2IsHbD)y zpfQb>RLfF#9}t>s34`tpv1}-o5}kKu4k#fiNeO7Z zzcStm6i{TrKHiZd2yR%WVvc5bR2HEa!QPmBZQ!Pn;f~k+_@czq(`5FyJuL=dov`!s+Q`SB zTe4BfODbtApJGW!R4N$xboK6G9UPbGWd^*HT@ zqbxz}kse*8aT#WFRXIe_&=l{`Dn#ltC1dgB(Bt?MPc zS(8SWL!pVgcXV%yxW}7LYFN6F^f^e{(N)wa+~ZYTF%fY=ka#|>jZ#F~jpe>^gn8K` zDOkLPCp3W+A^EoUJzC}0HGx2g0!6BlINmj9wQ4p&$q%8C#lyzVpcZ9VP1$$?D6Ifb zmFRB7{2m)fG?`uotNe!zLxXzhXxVs^>Gc#GsMOqBFRBaTg*W;{1|K#-T*(yOt-^<+ zN%zmrXGU_!{a;7x{Km8OpMEOJyFPLw0MTG{5a8)2Vpl`-ge@X>3Mbk8%kaQaKcJGuKwVv* zMVIdowUQppEmP!=9NM3B0RG*+x^KSR?@%YiWU23H=%tGN2i^z2m~C+P&!R%xWE9_* zRJCG^et`H8>rk!wXrgd|Fc5pY+vWADR6aK7hyBMq`L8|;=~X_s$&V0@%6@w*5al;7 z7ENd0lj~XJw)z6P=jaYQ;ugWg2?qRS=lh=#TmG`oc}}#VGF|O`qM<&6!kFLz_fU|^ zSs`ciiMi0|gv1ihH(aZw3ElGVkl~m85c@VT4ajnMnuqc_lL%dcUcEQ;N9z0E`}#lo zPX2t+n9MV(!yq=+lGpDYZd5;hgN35eBg^%avEpqH{osxh!lN?hL`h-C%F=|ux&V6I zC+Cd0JFQaWlhaBcQIxY>?fubxB8tAbqC2u{K3X|#h?2Wd`an5eM6(!+`uJ<{;4j@K z|7OE4b{bOT={8z!*{I8jH960wziAojB^AEYJilmj#SX)45O-ZT*fT48;48C89d>~K z^SQhC7GI5Mkc)Q7XHUFpw_FrKpLoJB7-a>2X4t_0V(-1fqFS=`;U-8Bp+RzN6ci+g z3MjcjB&kG2a!^E)faGjTMsg5TGLn@bIp-`&7L*JkIdl^nXxd+)bIzb=X6~GO=b0P6 z?+>2tYIfDGUAt;kt+n3uu1sLtTbqd<>%H-;E)QYjF@aQ~gj3Yb^#fIOXZ<=qiV^D} z1_z)lNxFo0qrgE4@2FG(3-I43%|t6qhw?9J`aj(vmR zPaUb8dZf+O`P63;6$dRlhz6mXM=En3X|$@6^DFd6f0RW%q}w7ERn0!o`pb+Kh;`7$ zoxOferES9oE2DL!N(HZNXREEdM}LWqKvhOf;h~-S8?MONaG*o9|E45-TzQI z@PY3^03rY15Z~0U{n;S0Ss|L)E08ly<=2=8^+O{`kvcHgYnrE)Uwo!2qY17%DkR#s zk{yq8wr{1f4L&LQ@BJdY58Z` zzH9Hl>dRqss**pA$UjJ>b8c~BouC###9iQ*fl8yR8(M)I0OPq}P9Tyo3+ml&`2M4VT*`nc}b%roc=)>Nal{(Q>Q2^8&bw&oAh{GX^PR zaZZaG2ja?pWuLUY=mj;R{;R<>#r{|0>(;q}VX8PvJ!qH|Nh! zSFZoUCRek1u@p4T}`SqBV_SgsG zG%bahQDv(UL< z)_Gs{VZq_`F!Q-ij^1ewqp&6kABViyKuAlEpjnBi)|YBu!-0phmv?MVz4M2VcP2U( z7QWqn$RY)@732_11c1y8#|JN8qF8Lnqe|+y{g}F^pZ_NVN8YVzYfKcJ0x=Xdq@i2Z z9FP__RTprQ-Nf!b8c-?(;xI@6VRw|1xX}H47_E=J=FA-p9U|&zKcdrulY=Ec(m4H- z$rOJ-1pKne3;#?LOx-<(=(yTfw@mEu4dUD~iT zGT&$JFOnbISirpQ#&BDb?C${V1Qh@S=si?TQ)Rcwx-D}&*%3EM%Qi3bVFABVPp_jK z@Kqfjk-~26V2{Dkz_I_=!jORsQd3#4Bg4EL!JY!`>>;h%014nQd_Sl-gil3sY|^Nmew%G5vbH7-}7n%g;hMv%QpDK zLD;k+yO?)T5?97FWH7;UydiqJ(pUg`^z(D_+LvQ7T?cL?!g-T&y2%BZu2 z26EuRev?T0Xyd7h&7}&l_OGe~d=BtA!4XwCu6Yt_)jF3kM`LT~k|Xw1ujLlEp}H~b z5=&N-SLVEhQhC1rq>RI~h5a<=mf7+A9a{p6lHAj)dA8GLuN`!a-m1z_%l_b(0O7y? zAfq|;T85jY#H@WQ`jv?;NZ~L@*feIo)2xr%=U^%Gadnl=i0!m5zQ1u7q0%wSzpFNE zJ^`M%K*OV^4ZHEPAP_bQV3U{6!#5LM7r5h4S1>+@3>9~60Qi1mNa2XChtuV}rd@?x z^Agn4Z|mGw%n|*vLCc*`ZwqIrN8dt`qnBi&`38kbf~5D+J(gr4?<&1Vm|!-mTp(F^ z((ai=R-nv)R#SLgYG$KdrVLJ?;nT9d6lRw8oth;&4&NX#NV)+lxYQHnhv%>ikWJ=W zEwRx_t<02-y+rV${D=B3H%?8I6JPXBBy1Peu;l5jkNXKum+!@`)RdsYB%DFKTIiRv048VDV{G*xJlW2#9G9} z*{USZiFE~mu$?*JOY4?o@vV5IG}Wf>szy&PlHx%2c{pwTarA~y-MU=u8E`H|e1llD z=uLPZM#7qy;R`%N!;m;%4r?OXMTW2yfaU3HWgRAd)*Aq> z9{?V!O`Iilrv4_YxY=kn|C4c!ay8R41-K&eCwD^`(4;o zXK^_-4^F(1NX?mG`OqByRJ?Em!y{pO>Wzt}gUe02L+&3(mSL zO)KnQq9R70ROE#<=nF>4pfA3T+bB{)PQ=~ot<#&FX7wn%3iek;h#QfiE4f*afHGTa zB%6rG*Av7B`RVREuN7P-Vcyzg3C!;YoyJd9Zsf0~;=c=+q-hl%D>KAEbMIMPfk8LN z&Wd&)V|Hw6zT>M;5~Bc(m!gM8h03}@#0y#=9x@T}_f7g@3)y0b7F(1CA#;R1L!Rh{ z5-2^odkR%t5v5f5(Y|T6la};kWfZ4@M^%d(p^y8ibTqfT#}x(2-Agx39Ag!iyRK#n z?{O|j($$KfN>ftIT@Cy(;+Zm87Q-)%PS{3xF82=l0S+8MB5#iuF${Ckgy&TzQ4V!G{p$1d!T|}%bTfc>{YbCOQ!=?ei z80Md=+r-m$csUKc?58h;>LmVrh`?0AGDC^_Og) zlX-c0gl!g#s$#E3=gDSS=gh2yHbP%c+DS44(ubcj+y1?>Ev2*Hfduae+CdLqG$CtI zs+V--Q>n@) zA36l`nE)=&#S8^t#!as8Ml!bsf&MNl+774ZDeq&I}RLK*`Bh zG>Yn7-QJ)`;!>Smv7YyMnhaGz`{(OB8`ZmJ6lLxr%u8=y+19~62xlNkwB5#aulvWbSf2wZ zN0pgte`a z7~pfBcNd;J25%~VXS3Hsn0FF~p7lX^;gj!DP2)KR=xGrbIeL|AveGe(HcPRm61jaQPGp}( zxX@j|v^ckg+8YpmLi^t+Mi~TLHl<;3l`?vDwXZm*)0b=nN9>8La~Gkw1$X@w2AQzd z_FS=Z7Fi2>ysL>{SJv>dBA#=&`msmvO5$%M4B#xl$*R?}(CK254md=Y8PZC_cNNNJ zbdAK~V?Uw>OB|*q@E0pYxr!#DH1r`s@*-Qn6ycBfdYb!P?J&OB|y%feS7yvsaRTv)6+dTpKWwg!G!WBMpDD@DX`ttQIb zndD|~t~KVE<(sqV7LP&&1+`+t+@9AH3bjJ=Z+?^l5mKZuUDz4_r^)-wT_VKwDw!kf zav*D>3Sn*xpQh^&qe=rZ9{K%M|>cALE%aOfF zy)oxgvNBGK_MYk#jT=cIn@}h(@7G5iuQoL@Y`0r&TIZ;-a%V#$j$wmdIag^_S60?M zMf9B7xJX@Xemx7~&_%pCH+1%ixZCXk%gqq3HMOdHrQ6}vedL!Mv)I2(1g@8h*`P!< zdKsICHT(q}df)c7fc&9W>;Wb`M24bFkN7{aa1Zk3T3SEMD5>>3musw7D93qBlckwq zO3Wn#{n`Fj2AV~jib!+(0y+BiHI_R^D8L5^PNszFB%^uB4^E+ z*2U{@yKN#GHe0NRk}wQ)efbj1+EVE{AFOz0oX?+5@D_>_eGv)ia>DCzbE{k=M)WfS2=BK3TJ_YZp;x)LFD+nJanvC+SNOQKk-qR!){VM1w zd~md5hFkq4;=vdr^ObK4juS~G6A1+=o&_!yl}MQc*}DUDKu%UFJd(|=O1 zORhP1J*UzS9pROqjP&M7lGAHPjBjVJSQ%9p`z=ydo{P9Iy_k0Y*5%;58(`%B;P?6K z{HMYdHUPl>c91}Nn+ow&FWu%b-l2v8aQ;9Gcvp2j%bl$i1UO*o*nu9R`tCPn{?%#fI!t>gb#DRl+yqgi5nH z&ISsR{q?T05wCUlUeY8`m%JyFJ`vDZ7=NE)z!d-|ai+$p(K>l(jW49R%NL5V3?-Bv ziH-@xPnluF#igtC1>qN5cLeikLcYNL6Hg7EL5_zIRHc|Z5iIK*q~DDhmmV;#3?0R* zXBO_x1+Ec7pW-^YMUB1MH`BY=HqvFdNon7y7b22r5Y5Sms<2xFn+v-6zPyjmqS@r5 z8cQG37u5v{GYy+7J7=HdW}3;fl~oX$Jg^uxO@~-NJ+f2hx+>bffO1mB`>q!f1r0W5%e* zYrcu>XH~Eo&)^-gp=wo0a&0yl6MU-+9SqqllNvG3L)TC~aGK&ZYP6kH*e$;yrG4R( zdUE7EH($c|@#-JB-m3w$>l*?nc+0KR{%DT}w9ZfnoU*FJ|$@-;kUduI%zdyNG38=q$5yxHIm=&X7GKOs%}2e0=1oQsZ@VFGmu|md1vLCt^S0>9MQ$~Fe}0taZa2%3JlC{ z`or;0W_IbdxtY4@W6#1G*9@j4o_vE`;C@jzP|NG=)goY8Eo_~ld`i{kb?*8Fsc;1u z{D>qp#ax;879e8pDuErhAVoYo$`!A#9@-ijN_giHJiy${ptnKhrW z;;bq_++ra~(m+5E0GOVB0Z8JQ|55KUVM$-k%FI4WGGIa_nW5zNgWsgY;V1RnbHw_i z%dl-eI5t#p-r*^SU+#TWngj>`jqR))?RJ^g#`GPlh4?KhPeyxHnG1i|+J3QkfB*ki zW8~NujGA|Iqx|C*mdHVwOYYqlI;(_QFM2QOshgCRWMcz{iNLSO%U=|ZA@NBs+9tnGDBj$!1DEnsi6?fwh_+8had9ZfP^obq*5>Z6rkKh# zkV65RT#4wCGFP`+`O_8l4T|b|l9|bqa^uXBOZwhmDFLf6pPzQvQ{yl#lY{r$s%U2Cs4eUqJdOC#MXh@`tQ#4({C`^G=tW+;OWsPN^^lYKm$y{yb z?eycoTNgZ-XtAc2BZ!P;(x+3ts5qGR{LQIhk>%rd-I?MSBVvobB#}ACcDGi-g2gVH z#-C#$nWSVeHfJqx^HOMQE?Ou6b43shA-rBC9N0_v6w>Tza@ zcCj*japds$0-`5{J-CQ+gQ6ntYnQ7{i<=-7PCe!#a`w&C42tff<>M}EK^H5-gXvoI z2%Yt_cn_#x0gB{$&5#&gj#;d|gvZxr#?xW8d0)y|(w@L60YDJv3l=sY!8Omq(!Uvi zIc9N5tNv|HNOmL1F}e=MMLyd3L@`vE|K@(@1nIDjIm4Y-9D0Izeb*|(@UlrmlY>uQ zBF;B{^+fDO>o)A91grBM9T-|>r8r3Q_>FDHYK1cuhL5Oio+RH-w242#Fo6y+w#mUT zx~*uB+2^XY3e;S?yj5O-z@gk&TA<;x3^h966yakqxfddPllpIH+&XtE-M4-0lL#43kMFzA^xJoZd( z$e*XBCABeswQx6bvZ4IDfoNq>Ip^1Z+X0685CngJ0FZqq@xde!(hf@eC?l z9`2bJ69{Pq8H!+mV%*uLg$iGT%CGah=o(ziWJXHni}Y(@cG3TGqS7Db+#<=fUII(ZC*Rs(t*=z ze(DD^iaW2uAI*<1)_ZT}i=a!saQE`oc~%R)bQsg1cxNQmKpiwvhBkuvTV5tro47)uAK|q_H^)&Jf2_?AXC|-&8P|3T?XMIkHMk=)&C797mpxwK zb*9xfNS4@@TBs{z(`n>uDdu6rSmKL3(FVr4Dg2%*Ch*Tlhs{qH_wGCo&Yvmk(Qo}& zkY#SN?3ipTEz|_>rL{}i@mPB2?vU@iU$2r6LgD zU4emZF76Ll7Uw-hxuzwD={M+=JgW!RMa6IFPMe}3+~L%rlVclwHO$|MG^72b2w4Lk zJRJoQe4dA|@;j9Cmru56Bn+I!)qx*E1FJr)K|2ZGB}Tu&Hs)jA6uX49-c*C-siW`OIBZH;AlO%f5O67x={Q+ysfi5{U)t^4)e^|W5y4AP| z@B)$vp$P2BegITj1>xCGyaDH8>W}jFZ{<9%Kpu(1%n-8k4*B`1wk|R*J5l0G#83TOZcl~Aje;@C^HU3QRfjei47rx17F@Yw6qhG_1 z7Unq*S?vD@w$moY=Px*G)wKMYAN?F}BkNA*Z4~uN^GW_soMrH;Xg~C|GnbqABae&--PXLTZ`D)v8%{sAzq9H5JS@Xf#hb7IezLnawG_M*S~A#~?goS?cea1)mLU-OKQ$xw^IfQGetVV|aAergHozqP^)A+bs;_Kdtp3A? z+EgJR{JBQ}&-hb^b^bdqNdjY1Q*D$pH%=mkm=Bx>xf;w$m^GUEWd*bE*7UR6z(&4= zbvo0Dt4IYUE3?j^VH70wJit$)}o{`1rec~_>xFabNTtzp=~2@PXi>lWB9#VUNM z7`{iBoz&Qs1KV#FSBkf%D)vrJ&n7GfCTgNzm7Ra4+!Q+w#PGoEM|)?9kJh$M24)Rj zFX>LW6j0W?Lx_Yvo)Fg$*FH(lo-NvW`` z*kAZF{#_i2YNxd8zVAdFliVa;4G$I?U0L-LVhvsm?K>^SnTdWeNn?eE7~*L6OH()V zoj|2U$fxUpa5KCCa@Rl)st+d%v`3VRiuzOgS5{JQ2=&N@`@ZwtY{>CPK8~X-uDmrm zzaAC8u;*Xym6aFX6~=o>6ff3CHSB52_bp_6 zQFs{&)P0xh%GqHrMo_mDN2YVHtk!^=EKh>FWQ_(R@TrLA&4`Z^vqMB<>ka74kQc%< z{Fdax;}Mx{rDFTniGx8$Zcoq^(>^|4!`1r%|Ft)(pN85JnnF@{eE%A3V;H_aueu!o zpDRY}^kg6!DW{b8Xao!}5a8i`3gQ-$jw5;sUIA7td;^T)X>ow9ECz>e@l-&N?F%#Y z#<~HotjBQ^%qa_23ZytcAYtIcLcmYWJuE$lVSs>2>;>Jq8lRVU zDVWaHJ2nWke;60>`wi})U0eGVhpLs$j4Y1j78=Nu(yW2>`M<2Xwx>Tw+p15F%NOxXoS#~ZhAkr`ffB$v=v5OW=}(Om@+h|M4nzBE1Y z4WiHo7}EZhb@w0rHf3eMG>D!s&dSYc?Xc%~ns*t-15Ze(sx%=K%3F+L6Ke0`4}<_! z^`G;f`Y*?{BJ~-aYx~&NeMSh7FT2LRClc16yX(W+xfVMWxRbj>2h+q5C7Yve~F z;gx?z5FNdSI|w!8U#v6pwz{g1hojQtdKYc1&V7^n{G42x!4Y1v;!DMOPOWg%6j+d- z^gF*ndm>nzl;Lp7?NS?_wb#BW})0pe< zATdYcjVr`d=2|blB;#f0#fFFDuuqcNn&R;_sob!f(qke1Vmcf6j>`V7R}MKYwASLz zUv8Ere$EVf9lzx-6Nc`H6Y*$hEKU>JU-P427rtnQ067sRZUIIE&HjI^}(iUtxCR7ym& zwfN!++7OL-NdE&o0LR0<{|zz?xYB&}rl5NSa4dcY(5W?y0DLVZU=!S2Mk%>?pI^(nC1wgKVt^1D{5;Vg~y3_unnDWkhdPs zvHo^Co5b9QkJ@-d?Z-Dhk*(FAm%zzuYK?h;uRJss7${!IDX3Qmh0>DCmuDduMruw z;W10rv&7qtVJ@La=K>{QX0CZD-cF}0uTMQzvP zG}YL_XU`uR(rhqCpkd9VavAg58c%B}%_?R32nx#kPl1TOlNThN+%8x>PK{lM;&gC? zx@%;hHS|8NtO+EMxrCVq#hV{vG^b3ePO$-o3%XTB1v8ehRC6bkxteKgr_7n@mbnqV zYgKBiOiy&Ik(H4tPrl5m2?;SDvmNK&R~>S{EYJ@ba9@h_dvyKbzSzsLP{+0PqA+t* zQUJ=`&^T`Y+PgioMFHJip*CT>ojAnA^h;iI515S2Fax>{kcDL?1=rPqW8(xRBIG+aW*9vJ0gjNhXF)X3 z#V>qo^YESKi7($dJioLWO!Oeup4PPn|K8kp!p(Bj^PNrD{gU8@a6XU%~M09~%X)h-d?qwD-^=dF1y;*5z$S@nQH#ct4~aRP7UQhZnlIiS-Y~ zuXaz#n{K`1PB=1hbiWTk1{>gNAN_rJdXEn0clz5S17!63c!I;>-)ZkV^Q_J9os#|Q zi#z1W{qMigo9^?7naO1URn@gVV6jL!GAM=}Q(-h6U)rlxtn8I9i;H~%;5e%yasiBk|&pEdBr5MEh4hk=BrdMcn0*{>@LRaq6`XG--5~LvG`)*9s3;Fp()3 zGnuem6yr!Y@9JF~{;-~4}g+C-4)9%kWS`sMW0Rn%Gd=Uuy1+6m6I z(8YyS%*ENUh1mGmyf||^#9cdhf_OEeh26R{vgW#kElvZW_fQL$;>jD7Z(0}WwUnd? zQ>a@o=X(SW7#l83oEdN$5_x@4xVIU<+ttK=((SzbT&+UG*$S;M=$LWbKKK-chxo(V zCRmJ!UUVBC-@1|2gtVl98!7b^jOZ?E)V1!Z#6$&Od)bCkVPVnR_vOR3LQ5I8wjrV6Bu-B1IM|dn0iwmfj+c^JP1b1lr!FGLEY5%YiJE#=K0ZIpl zC8i0CdkxCe@dO_+Ws%s#9Hj{Tt42~g{>jZJdUCjx7%==X=* zWdRSC9D3MsN(5?A49KM(xxyu+ka}*Bxr+6uVsqbr`H3us7pvN!@))>XS9& zMtKo}C3qrdFm+Ygd-JN2!dq{4K;j{o8#pb-Z#~^VrO4EjJs(6-;D4_+iTi?{HzeXh zN1OZckNa0Z>)eN}7lPKmKfys9=n)O*krwC?yXv+zcmf0P1P!_qmn#Gs9tRreOrS*P7rwm{^KkSz z0P~9c!FT;x?68^K!)Evq>x!`ZsOJX+#V`yN81Ihn``XTDF(YtE4GFk}^6(NPRM-Kb z031UJG+J;;Pp|IIC(Pj`V^Bac1I}pRntO-W6f6I9P4!)H%>gaArtk0?j!*932WbLe z-tjU+?4JGp`uCy1@Oi`DI;0}d(%5^qVRVR|hE&94tTI;N`~L8_VH$9M(+MCjlt4Y~ z5b*GB0o+a(=7D0z0TjK+AG7SOa~;-?nGM`(4O~R^mx~tQXbuEcKAFOQ5{}+SX&m^i z!e8XIg7CngOLb50Okaz2P%ohXz@p)KyzJpU$slA%SLeTBq%^m<206|?fP-odPR?0Bu3 z+e>=T6$+-d#^IZRh(~241r-Z6+3V&lcQgb~gd9}V9 zI#hE}yvu3Iso4@h2%4Q(C{XfaSK-xzEKJH@2KG_A}z$8Il+~c%A=L*@tmDWV62^ z2c4<5L2sa3=0g|pr1iab`O3nRixD4im8C}nK;E)>hTOEBJ0c%KnlI1mJ1GoNaMJUP zVp6?3@~`wt@Ci;dCrB#{@NEXz(*@Vcj3ZN!vJ>&8{Yiu6uwyzhS6T=A(|XhTa`IEl z{X8zoKFm?XWA;y(^Io~*&O60>9IQacf)w3_g|jd5bX^?3j*t`w+mbo&^%_=5_zi63 z^2wI!Bq*zt6#0fy&qb?T+@u#vO248oRGi>=_WAXJTx->f)eW4s6$|BLa$gLDof8jA zCW2jkTw{W=EF5FVkkT2$G=%paNzAjKe{2+5@kWBNaL_(KP}?dq87-~XCs2_Q${4`m zr6Cg%I&>!RpoeVLm10H4|GmdK1HoZ;JrqF*>g1GzqO49Xi|FUOF}OkNZPmfSC%!sM zpxa#c)M|B+Lq5rOGbcGU=^*rO!@NbY#;cH9Yo5HO7l#*$#`K`)Si`p>n%@1;t z12;)+9FrAk2BGvJFN|1`k4W#K0iaNVweK-4TJCniz*n#BZMxWLWA*nwjdXKt%r5!o zK4NaTjvotZ7|yZf9gohM6+ckNtt^D?Xrh)q-c+HJa~_kR>Fal|U7k#`v;GDd6gWOt z;(T@eiz@QLQ#Yq`G1Jqn^v2T*(vIHzl1_2=`EJ5A}D6bA{A_AMfu1B+HHSp;9J;$wO2{R^XS@AebiZ#m{DzK7jr zzM@o7S8>L$^yzH4XFQje@;rCLLyR6uxh-j!q0DbwR8gWA`Sx^MN2{aPBv3LEN3qmv z&krg4KA0U+_K67CwvN%uHxMH8>4)6i?xqyilA_JhdCL0b8`4YFIv69oZtcH^>`&Mm z)j+zQPr;fQ>ln?P!p)!34e(sIjuad|BiqHu9C~|>$v$5$UmUHB#3JzKhc20)b@Jel|Fwop*4A9oGRUgH=_6nm`$u{3?? z#c-9F-&1A&46>(7f5dwA%222LfuEGx6Zl>z1o-w)Kzd10*J-j405y~HDhSu3tJ|cI zWZVQ0* z;`$Y^brVbDVE7F(ernPFOLBS|^D$m|@k1Mc)NiPqKlw>;EDRGCI{}FN>Hv}7L=FjT z7baM@Pxu)DIGXAt!-19X#80NsBc=lj*KG6Q`y#E;HksY*1#KcLd=xlC@m|FECTx9A z+yMFr9VJ3 zM~>R(@1qM_Y9G{h@q4yOa+B;sRe@umNEfpLHj59iPp)AHq_J~zV9B(alF2$!w=E!! z*bYpwO#=v!*a0qz!1CV_NT9cmsSY0>8&`I@5NnoqJ%;^sGK>qb?~x6((G`CH25;|c zwzYUa1zAjEz_xk{PL22k094VA(JE-U5G?=hV|g%gsn32JzJEj`LEOR*Rsn{kh^%k)GKol zr63zF(_x?Bbw<-`Wi*~0m$*(joCsDBWA2QBkjsveDmM+YZ!_StQ2XlvnM#8@e!n;4 z#MtNimt4#?D5GN9-n%hub2x<1k9oZgj#P%Y4*9$DqWv7Y1IO9C%!s@-jCfy_(XIPY z+bkNGiv1zCm&pG*Vnp6hAo$Z2LADfzkoht+P{q zW;Sc_O)b%jsnZ60QrJf4lEz{tIAV01ly!G@a?NLFQKBsaa}x49ogfnW}B7ulpe7OiH!-$olTx(ygs-Yx9r!VjyZQ${RS^ z3vB8(UDAmDG`S+(@M@HeyQOvULL{kL%gfyHo68P&{X)qv*>PcRc$kDfc2?j6lo%~{r?dnl$z=>0K@jUH-N)U-BW<>cbdn|?)j4s2q%R2HK9JbNY0+qtjAxcLU4MHXQ!HnTe$MZWLsi0R`FlrEaIJ*+z(Ci)lXLR{Ttq9 z+#|NhpT1{Vh$xm;y&5;uh{Jwxq6k#=Kzo}}RaJW~9Ik%@ry z5pgmp38PT)K8Xb<4*5uPfh=*ya5B!`@q*jML0?{*mWp_WbzZrHdVfoJq(a(AeDCA% z_i(*)(CgaLeV!Lhf534G{?;o!{4JEQ9)a4K&fg~;MO@Siv8g?Ay1$u)r{7qpoFQs- zMZ8ZcTJZB7(@h(A^X_*VVW}=-bWqc_1ZPj4eTWQw?wsz)%o9FLeuM=C)mBhn7&%6e zy>y%bC3fR3cT|}8G<=O}SW>8sHA){PgKIt)*xIUv zk!39+2F;z;)QhgANr(;6(Newp51d~r(LT69V$(ip&&=U&@mx#gvTLosctT0@)6x|yt!Uj)YQK+G zHVu1F*F`}XL?#cz-;d$WzL{-fW{Jz&EcrInwCDUJ*(H%sn}!v=T&kA)&dg;^us{)+ zR5KBir>tR0mi0udW7JaHBhlR@PIV`+3^J3V7Ef2t-&wi^_8s{rJ|S|V8e)kq>|cbK zj<3xp^BAKe0a2JLaxm36{R0#25V?R#CmS`9rjalt0(~6C%s4sJ%m-CuA6BYM*XlgI z;uPp2#g@na)jmHtD~(il${lYCSQF=mobsn@9GS15qqs)Gl($bu8MSeGyT$3Ys$}0` zq|4vn6~;lG@fl`LjEx^P&~Ku;E)rFK@^QSzW06~-%l#C;rP|1u{vIcD)D8MQL^PK6 zz!~U4$$>xUBcG-qhJp?Di2mj5kw5u8{)-W!DLIQlX$v20W{NlXc~m6*Nd4qcN_*j~8xowqQ5k01#{^c*<& z(o9xJ2Gn7I4NVaE=lX#|?&LSfA^h~%)L$=37Ef^vOg-c|^Q)U@Kp;;W9C{IdsX|!H zr+WL4`E2L_PZ^7U;|H+!Xq6}1zKdL8fK8173^_mm*FQxZ0#uLIP+{q*kpagIACe}6 zO;R|Tg6}(?@8>Fb!?ani;efKu0_&Lx{GVrj_&9Wj5lLfMBk%vXen4OV%`HagO;u1?Oy zsm=sg`;!U(j+_3d%l_zhoMU5YwA;5nkG9R~bTi6uos|80*Gp(ya1Kk0B=ju?M{5gO zn%HYLH!^jlx9@1dE|j1iN+h`WjY=pb6VD z2Y|<|HDu*)LKsyL!GnO|<6?i*H8;m3HeBT^q8@hMu{g}Rf5UbAyC!t>e=aNa9NS(+ zLco;bb9lVUznZb4x4#|osnw>76KCL`Jiq;R0HCgSzlyZ>-!kKI;64!KsE)*TeNH!V ze-ZpH{Sg_Y3D#A$H|Gw_Tr3RM2fjcpa#bP7h)DfpDxxc5_0o!Wc?u+0C^%(%gC#97 zEvYsC&))qg#&mHh9yOcf@EQ%(DJb;Ks7&nb6B?p73iTGi^;N{-4@7;iU%u>qgKPzKv7AAvzg=GwqkYsDns03z8nP-b5k20kGVLHuHE`R6 zn!PU1{}@0YKL9G)RV5%_5qHASH-H@8JLv%1-zypKmE(J9pbdnN#1Me-y`QX`;u!*z z0ty3&wZ-0_D^?A2e%*lP0`ZOW8Yrg7*I_vs*DbKQVMRfU5wEU znPzX#w7zjEZ({NZ_#)G~aGxzamDSKz0pig9InV7Ti*;zpLeg`;;X(Xw5MzY%987KW zfH0l)DxdEf2hJ9Z(!5{EHONHAdFZpctPK`rw59|WnJj#dY-s|`^0Bv9zKUrMbNV8X z3Ex8qwn1)BIv|5Y^AVG78geo?M)60kA3!v+!43!=)-X`>d7u^8B_RXa4m}(oGy`uq z41Epk1IdR0WS%Q}%v8rh?T$1CWD`*^Vv`vJK#9Leef6ZE>quk3*%yZOuH3;Ame|{? z&U6LIZKzgpafZB-zpDk<^?!(irS$|0+c|Nq&CVtW!wA99mk+ww$FP z-X?-*-wopcl~gfT96j~_1-<|Gy{gU+=@!G67!x>dmk;y`d%#t=ZhDu8s^Hw&94m)e zl@z6$-x+RwdF&v?=tO5Y)7@v@UOA!{SiMBa&A03xGvG4ow9sTXtD0AZySl_6+b80x zV6Cx~ax#FNi2cyq$His`sibK&#rCMQpB}$LO~_aL%rE1HRUMy$gEpd32=ALTbOf?U*7X{vz()kxtbpf;Ift|TC`B)E{%_x4(ob5 zR0IC*+1tx~{CGv;SF_rgm7Hl1QxwWS7Td&>9y9fsPk&;1{`+3=zhf;**-cvLG+!$p zbm*WFKB-RX-gYAGQer{?^+(k|wP^oujmobQ3NKEADw<%);G{+PI}v_eo+gxr8d2tg zcKW7vs%h+S%k~6Mr?uVj=+M;*lI-U=EV9{bXSVQ}SVS0RF?YnO!k}Y(CtF^(z8>$& z3zqP?GS5j6>Icpgtl!s}a7N%bZLEtLXR2D)YJMZ%iQTi0PXi|nM>1JD z^L-h6!*@-mJloj@6Ev}4i#|&3{in{)e^WaF+bPq*5at;#H?~0|Y47rI>%aNx@2+iSXGUR<|CdfSQMQXuD> z-%+a?j3_zmHMg+6l|v_4;ZK1+x4WlI?m!QwSu&LX6M$5Y+JN^c721aDHW3Vw}jVs2ZZ<)M@<#pcS{4>&l2 z6H8|F&$`qyEl8Y2%8ZDb#wJva&KF(eFtR!}#ev!I#yDIqI(TE3?aozHSoXG}HH4|O z$DBu|>isGDvCuR~n%ndfal0l2xjXOl$n(-(hueu?sS12kO(#rO@o*wGa}_xZ`UN}q zq7*ABOG28oM?-?E&gj2sr{4<>T(`7PM)`J!x}VElN^KlA9;JOD91-(!oEr}d!ehYI&VGKL2Agbn-ji6j82|(b05Xq zu~X-%J>{&S`Z3qOQ(XUC-fGJJHPft7xuVCK5x%=F4Gr7*{BL80H|v7?u1)n+*I$bF z_6ff;eXHF)A@WFqIf0t!fiOd$7E_EC!Vcx@HlSh=5T_`4T9nO zn(U?x-yqKCFRt~apkhi~2*V!3n(iV_e>V7FGsknuJu2%Ocl@KKNV&oC1Ox0zGb~g$ zH_3mKm$C_d_hgzAEvaCWT!Y$$%WGD`R<<7Iy=U^U#E}Z{2aoHvTDc(GdmCZC+O?^# zN72Own~Kj6bCzPFUh9?qbrAkKRL-9r$NpA3PDiw7x!}Tok*y>O5KM zd!vIV#8-w{L9pdB<{t9Qb}DnQ$n;ZokAQWl(`;96T5&=461l7cEB(SU(FB`IF;U~% zH&M;Jcb~QP)lR;v@|TM4*s~V|5ae4eACRAAGt*2NB%<&mh;r{nr?VVUxf zP__=nAe>@b(Ri%G9F|WRErVr4>$Gw?4v%}LoAdVEZ8b7NuPg847TMnc6t+nLiSSb1 zxv?f2%M6h%%~MzL_y(Rl&X!~j0XE4byoJg)W@RFqr>7W=mP5uUYDiv3A2_e+#D)cK z{y+BKJ1&Z4T^AliMM)!)GYSHVh)Rw_kR$?vD;xyQ{0K-g@f|&%@4SvhJ28f$#hR_9P-o z_9m~d%E@0Z97E6Y~tL{xTq1vkvO7>*Vuit*}E zpd6A-d52=Xb5@m`m`dV4N}PXkMZ&jOlvzX3(;5DEj zXfW~`v zK1!OJO;AwODwu&?Tsqin);`jfLn;lJ`%7XzSNM-7i9ABwfB1qQFNDv0JO8OXx&8p! zX@=INp~}ZUoBLxxY)GPG`$r$i(-!yw4lAPTUN3aYv$9Qw^>KyV49R^%ymPd5wd>MN zOJW#J=$`LKu;7Y3XhIH9CP9q{Ym`z@hGJ!PLuJM@FZxuOp9{Vdw0)IC#GuU8Wl1{lK2(Jc*^KsPiINlvrQ4JrZJ@d3UMC>)E>lZ#D zBWxJrf~l3?(5Rh0xe%6+EY-^G@tbclsbg=dKeTGMhtc1Ktd=SIV+i}wt9=f&LipFO zY%%+Ocvb0Y1Ua*~!bewz{~bbB1GP$P%;KrV6XSmptjue2p4R4t1Bc#}It;O?SQ;@C z+Jd*wAYB!(%QqY8bC>Pxb)0w4IJe)S+56WFki(%Hm&^R0$lq%TB60PT3s3DO9&v`= z1<>EnmMWM(SK_)ZGlngYLB_;M_a*+T#zJ-M1hcm=3fI%z^hNL{3202URm{BX{374s zq5bS6-(JCu8WUht#Bx;+R6NT%tbJ=e)FZ4kSpyfWVV3)@ZNtP2# zEK(`9_MBocyY3d_wxYzSstuw{M_ph4wEiIrDcB7@LnpHD5Wbc>Sq(UY$WPix-cVQ0 zX`B#tGnJ4Dle2T)N@+I20MHa_8xlDyptGk=cMf%LSn^GN%|#x=PRTdkXb1&egSyd_ zhCvOgeYQGJOle2Z=~2ko$N5y>(@$&%JmQ6=^B@wy5@k^kEW$csa&V*8nmN!Z|JdEmN(SS!!l9Mv&m z2fjz%JJ6$RQPl#oLTrF9_(%fNbl{7LloP)}9apL($*J<6Z*Hc}Jo7niXzi}Q(yOpB zM$*V>4k(AWEBnI~_RjZYe(K#l zxz^`2<<>L(WGb&AU7ljy=V`@~2u%O*Pc3f4_i50wnDqjT$1xZxFb#Gr&M59#z_-t) zwbOQo0QNGCpDfu}zOw{Q=v&k5(pn*B;@2-vTz)!A{pwc2xEb5@aHxeVe0sMwWb3_id4gKtYx$r<<-usN8fM0K{e6#;RF2YJT81l z&|vYMQ_q7S!&lHG;{p-{OOT~h&Ws`+yy?!tdR}ed`0_#At=k5yA4=$C&-l){iPFLw zyAD6eO}j@vhd&qo+*LaEEF#1}epE`VW?>oe#df+FSOJ)Xg)7>o`SAy2nB1NxDhR{NWP+V)Vh#mZLn#SUJ_XzROP@=59 zinS8ig%(BXB;X=~+bT#?#)TC8E<218E?{Tk4Apok6%`ftZdjq^kav$MU89>uq4@;>o=9QZ3aJWimL~V^}FK}Klht1Ift1duB$K4v&$0*o>H&@6B zUw4K8#KZyyj99R1GYw20vDHj zJycJV04(4+t%RbS7;{Xf9Ow0-&UWdkS?k6&EWB4|&9V{Fp){^^??3Oz(#cEQ3DI^* z=DfIh*{z{vOZLoJ#RsvF9bC4?bR@5z5Iq7elQ66HW;Nk*)x?d>C%5rr662fgpPgFg zYp3p9*L1GS%5XH4*EMU_Cn?wwetK3tc4%ulEnxH2xi2AtJ1ilyc@Q^hNk^-o8rd0k zv(|)jz+_{1KelrxkFPMO!?pAq$$X5h=lzRfjq_%MuJqG6p?J%;M|I8At7^U}7`eoi zUny2q$7Y&xecuKU8PjL2=tfaOBcoS>+cI+W>&E1$ZNG`!3RmQ#IiT;IrM`xdBX$Q|7QWJ@^rg zS??-;sW3lUjIL^Ee=xP2Cx>UYjG<~?rzPBow6!Sttx za96}jOAzsGm0I>{&!C2utW7P*A66KB4KhULdlu=pl>5)})!cj(w;rw$H_d$Z(~Dih zeA`4*$mkze%6Dl?+`{t0G{rh#q9gz&^#m6P{=%o(%%Tz8iyCoN|)WWA!Q&UU{a*PG+)B5~I zH-^|eJr*r@2!i(7%-Xp_DeD78PC0tAi&B);a!FcbiZ|oa-1FcOG{QliR;?#PwQV*} z5~7LHMoiDY>&Y1vqlw<&+%;C?YcAZ|Zx?B&*@6fs1nhUI4Vw#5pQf7hc4yKz<9+qv z-Kt{!``hXL5uTzAjp%NEoDi4J=VLiNA$qhSqr1y?U7v8)VNbtlNVUYAdlb{i*DeCq zJ1+G&SLwlm+!~81Y8SaNzf122V^~72YO1MzbiIkQK$8H?v*AHFR# z{RZzfnWOkA6K>un5=s zMg$L@gM=UXW?&+FU4a`uTyq9`u=^eI#T#PjXry5QZ#sCIkMPsl8fU(h^Z4q+w??&Q z>KuqkjBJ4~Ah{&RcwU3~8MZ({JWg}PD~+#0*(DS5tU+Q>!8gRc+w}fPgv9~-8LiQy z`d;jL&*|}9Wj}N4TJjHn^4=6erR(iCv+Vv)U;LlsJ>2Px-k#jxK8HXW7#L}s`@wtjS^l< zpBulRG8B;WyUE#((e1-k1liqvBPQj%XD|Bk6E2>;|q&5yQTIRwzm)EJoq~2kP+QyAkWdtZ23M-?+}l1LM$d)QcxDEwf`2;!JXv9R!|l>sjP|e9Hg8TK9wV7C#A= zToZhYc?rG?_4*Ex%rjTvDKGq@C1z$B$Kc5w!i6KKf{(S28~Z=@seh+^N&|-QAAvVn zx@sF)V)a0dz-YWF{>+=U4w1F&fVMcfa? zJ@4`|OOIw<*E|d^iqat8z8I_$&ACFp7Va6*|4QsTTo|kEc*#sa@|TM)X(p7zXn;!qhF+mm)qG*wBh7`K)(4 zGCj)q>Pp_vO?{sIxtmK1Rr2}b@r_M~qqwjSH*USfw@qN{UrK_~p<>)J#vG+Me0kPg za#r_lHALkIMBDHp8AWcj4Pk1Y)^aq*($LW%x)W2HuqDk-wJ7k}hQ`zrN1%rC`9HBk zoPf*atlgtMA`LUG-I#Y@i%d#a1;@+R6H-lZyih}H_0UpIdf!JcjLN)3 zDWE+SWIE?A$}Ut@0m2#~RP>V@iEh&%>~FNCU&Qx0=C$AZr)3fIuU>q8f&K*0`LLQy z>j~^?jWmE7uUC?@wC9ld&cv>|fZd2<`i%itE9gp>>PU@=P>L!D5ciNNu#z9HH&N4= zf8~imL)0~CrRA@C{P_z2mpL(j$XLx+tbBO8R?@D6B-eT8^-H-&Q~0My6?Hg7z7n!U zATSXrtCJT?DbeiKIc66|?hb23m1UL`nM23hC|^6^1lcB_W|yvsLMX5yAcBR?e_ERs zM`H*uXj;;_={<>k9{D=E5Qq917Iws7EEfmv2nzmS$ZGvcrPFh>#M167Pp;+l;CbBS z-;5mx?4zGJ8wC_%j%q4n7uap4H#ja=Uh9hPRu#p@>s*c4)Tu{bl_&micwq=F&gFLa z9a3C3jtL#+YvT-U7ui|1yN|=0g<_Ezj268oZ${{AP22ibZC=&pO;fqp2jm#eL?$Y3 zx-D`>_>u5a!EtHX&tXFK$jkTur-cM__9jr<>~j;z>CK%&Gs__YCgx$-gQ;zOUKDsSoGX+Yy-de zA5qT#F>dK0(}13|iR`OSjX}JZtf0KjQEWG^bgqN zliTZj&-d$0>&SY)R7=X_(pOMbw#$p()abpL`8JLf)5}eNG!J|e%FS5B4<#ceb;?T0 zV;2^H`I6#(_4}`U5F1lP{H0|FM7vC1nHkR)=179tPc#VCu)ZyN zxl+#P6QE57*g4n>EbZKQ_-9J%Zx;E9cQUfxIE(dl&QMrE_!?T^fvX^ruIy~il!=f; z%EZ^Q&++ql;X1N}8%2eTFM6NT-sVgY?gyiM^0bC&)kJ#kiaH%-DPki`xI|lHERJI4 z{S}WhZ@dXYptSs(LBp^qD`Lmch6!4ci`59JGN;VZE{1X!N88gc-jv^qKQ)*5=JBK2 z4*`(u*aZYyC>3Zbj))%snCSM$2{`Ev{%1H62j zUZJ98b%Dr=yGYs$pB)RW?n$|=#5JBChOhThsXZ7Op8-?aF?e}5EMPRXBio(E zF;9$vj7PqGS;wu0V>;BYj-?vO`(g)nLEgpg@xVq>3He>dE(@h<@BOg2#(@E*WJeG6@n5PCZC3$S`pCq+Z2+U z(KR+b7(@g*&dJ;{!IyXo;p=Qz!f}7kg@x0qh%=7zYL0cS;?CvNTPDA1dnPS_=bo1r z9hBCW78$bBuD@z)x_k8|I)xVxaNe!Ofrg=`fVh0!_IFP3D+7FQS(P>>ttD~Xb>$BwK zVark7lP0etUS2@(g93I&0X)x6&gMnO zf%XZ4&%h{{W08^0GrBtDr+EGBd0)H9%1QSOe z;67<+Yqq#*D@UG4%<{&U;z`GxO9-3Q%#--ffMUQj|P+qx9bfo>;{&lpdcbeDN!^!N5U2iD`1?8zAk2b1j3-C<#!cfxMKK;!P)M^J< z{KK{1czV5;x-G5Lz{et-^A)I)39c6G!~SSeZeMQ^8vW&{XT@^XT;+J!g*aG-lJoog zOm?_7Y^A6`3l={NiMFH9#OSQzpj|zOQiWXF*1TWx{tMd5&UPEJ+PjsCG$;-|WaOwu zhF@#6@8dh<_9l?qG9Oy~p@T;A6y1DF#-}nGj|3bL^PB!$Y0J9P{xbebsF zI%QiG8{#hh4rrPEc7WUo5gPoQIuw7*7%{Q@t?`{nuSS}~m3tO@<(ZFU$Gn9V9G7(q zn&kxJpuSYJdGj^p!$jIMGVjDgd|5o9m#aRoV&k=Gg`}rD!XDK0volu>D${67;!8>0 zXkoo1$~4P=fQ#Hbwc^{PHfdIca+q0Ncc0~O$n4B05xlhmfTE8So%dE)vFV$&=ISo> zOKy)!C8yWF>D+Ze1=(1KJaeHM`GsD9?Jd&bYae`#!wUV$?s>OkMO5!2n(7sV1zoiS zh%#$eNo;z-nUoT6&F{ygY(csg!F^R&-`>;54`e7;h?8u^T40 zE*tCb%mSMXE4KU3b$|c;@4-pU%->M%{@{`&GIy&qcpIBJjc&p6{Y)NSvnfE}V_(Pf zRH7|j6BZAO*jEuC4|e69F~Qf8DzLI;rQCWi-JU-L!9>o$2wl0!TcISYRD1q08<+iG zzft|*Yt&87_$nJmRNAz5h8_o{*W5Bx75Y+0H)WYvtM0Mq3@SdH&7PlS@PeE066bov*C zPN9Z_X#MFUs-f=1`=1Ree0F%p1Q##f!0Kq&eu7@r>A6tOd!{|2#2qtc{T8G8tsZC+ z`xi0v@DbtqZ5`5$9x#i%;KSgWeRgecj1!pqT%}k9L{bT+ysYBp7w5aJ-yTe1RH1(8 zF2%KVQ@#nswdw*96|pE|O)CDIg0BkdX?GvhWbE30hp5iL_VVg?(_JDVwR6VWI$};1 zq@PN&xGrWo&IMPnU7foit@J>h8pN26lt#&N=_>EZe50stHdji1Dy$fNxj0LBcUE|L z@=F~9h`Fx=`!~pXJ!oP{Zs08MG~ z0=#$91)#OqPogbDPZmAqj2=o_18eGUZ2-=%A8nxjrHs|l-4p;^e<#zCsMI1&!T((fmCnU}h!CpNI#{y)BFa1&k z$>JpHZ#2yW;`f5NIS8a@4kt@T#@cUL6_2@&)d6ixeFTISZx)zN{(j=*@7MWpBK=Vu zun<#k!V!dHfNQGnWU-efXpJ==cF5a8zs(DhC8lUW&JA_yFXg0vfaKC!!qh2c=r#lcjHj$>e3Fio2|^9 z@Pl!DPHjO8^7|3-aiO>kTWQEn9IRsA%p_v|dF0SbFN^H~lakQdGuu$&t7s|em9$W2 z2Q*6p83->QFF4wUH&ra9KYAYoMJWoggZT4m{X-DR=1q@CaMZ?l+1Ky&0i4sxlt7$Y zKwg|*^sZmx1%6dGdPFLQxCam3YdMTLfK6*}12p`buxTMg#nIVy_+~1G1m5H{ZFN8} z`W-SUjb?KXxK7iCbK<_CC+}$0C+YR30k|{2HBD|)mjTecP!tH``}vl62dss*6epYZ z^F2xH0U3%R_RkHIK5@&6CBW)oaH3_bC+`S|8a4R;(ivU9bp{K#2VtoHr~m184gL^QD=;dJ zlPeIPa;v-t5I5*pLWbyf6T~3~u&NlAu{={_=ex#LD)x`m5_CT?4OBMEv)wYXU5;X! ztx))!DoJ*w8f2LK20dT7kA`K+B5ej**r?z}(y3)RBFMy>U6lm2&UCeW`Aym7>5r>Y zmV=*PsB;WjwW_qb<>fiD-9v(9`ZtuaKkd?g)M0y3Syf3-XTg4F3(t0X!Itb>X+?rl z`#l7I65+ugSIIFYBRhB(Z~M?b;YsaBd6K}DG=rmSpGdH}v{r}R>HN)IWl5WJCCs&Q zZFYr z__Ry1bYT9f)0I)(awy`C816)C5rEW;y-xmq;vY(agvczhToWGW$egEmnaakUt3H&A z6Z!uw<=p?lSmB?YttTY%WqHk$6Gj&fis>;4w-mN%jDUMJ(*Yngz`T(#GHegG}_PE!ZMTu~Zu6~a#)34vwiQH4+f z7%=|i=iygL1O#Y&ly9FCZk7El@9fgDoQ(5*W`OqmqulhzEd4v**GZHlv5psgyyNhD z4baw8Exh(od%NMIfhiD9HId>EJ8a zD8Ab&NYJ_|R6q{$GLJ#*J;DKKz=vPUlPMm94O=xJ^AuJ^k2xiG3}$$;2v$(+2iPBw za5QEKjyexg{%BH9l)&Oha1Y7`bp3CK$v~@Pst4$YCyNzJN!jDB{G_qGol!EMFXFPqIM_?z&K3s>V%O&&5ZS4<75lp8-Tu$9|KBY)<0_NMq z^uS!8E#i5`SEH_k+i|`s!f%`}JQG_J%?hBPo72YnEm)nOguS{rHXK5nV+C5198@inuR`r!voNq+uwp}*dULkyWr8hPeY^QG4xle~1uTVVJT zj%>Q``y%HA-^KctXy0n8`XVHUSjmIGGLrcy0fzj zD(CoDyI7L+`9{$=a%;l}cBM4?`w;*ZtR69oclNF|M zSO0+alT|NME)d+5?pq zk~Jt5&)%A~eH<>^{yyz&*&q7r-w-T+OA9@BV?DLDBwh$jg%-C!uVi zjtpfq9n98F^?KJnLi$Dw6V!Cl7#?lsWd5z&X;m*(XCtgV2rVO=r-K*$I_S7I)e{wZ z$>u#%SVWJq+1+2FRe^r+5A*8tAIw;xBVa`E;fP`N6B&X;8Pl+RVmsI&PUCk-%1}8Q z{mH;jA$k2blRsYu)*;`d5H~%QZ%pC(JN97z?o@k( z^Btl=gPbO?nR1Gr;QWlgxak&WE+gWh?06k7-k~*m%T~}d)Di?2+K7<2OI2U%a_do0 zR$)JPrGH}>-3`NB$dkbMvb$h_F#tA=I|y5{8Lr<%0KfHh|ASA89Pi;_px>HEGvU4S z1@OsfY4jy6-y=e;y(0|ih?3+hx2GA=U+X)7{p_zN1Hz@hUUZE$r9-6TLDz=RZL=>q3Y8qsQ}Fw-Pm+HpaVw*mQEJwZ! zL=`x%8ULlzY!2xCx#ehWU{J^SN4%V;h8+3`vTQ?=LO!hnyw)Bw9h{bQB1iYJ`wBO% z7d(t&-WK%0luZ(PW^*J*UAtu+tdXO)w<8XaNR9qP&!dL(qJHiV+7q>-lcXpRV758w z<30BI<_yKl>y@tD%UlD3`0}y5KOww+0FcHWCx)uhHULQLDZt7Z`MGFXVfb@k}`%pAn0HGz5LjJcASC?wk2W)LLrL*Y{Q0` zd*OBXoa+!U8Ph)jqv`9=(J3)7@BZGL`(xgp{?E^wVT)-k%N@o)uMzh4#h?eLrrt&5 zDO66=5Y?zQ^^52^jLSm~mVam0gF0N34WH2ghd@WP;8+q)#w2{td9=GxN|lTog75AIj)eQHM^$i5vqK zo3yTPIohnO&lSBGotqHHZ)r=b!!t^#IT)(gou~&{Kao9{vp`a}J~(Fm*gSbm>8PRr z454)36nRkySc!jt+5bX;S%$wpawX+#eUb*LqT1i#dLw3@7jSO?w5N$vZe_jHUd_+K%;M!sYoU-BRHYoG%p=2X7Z*PTo?rsVCcXaW*)2v3VdcEU6gJs!TGx z&RTHKvR&`iTfi_qPYOUWEmi>#*Hyp=G-XZ?KnTa20fZK=It)dP0}So=fRefhFW&(O zCM5ZA1P|bR4qdN>W4zfC(F8!`1^hto|DOu~8T~*&V5S}@SxhXXtjJY-&SE{KZGT>v z)V4i~2?1e3uq8%I52BT*$5z~#0zRii@yE8`l}YTdd$vS7r*>U}m47s8mZFtCeS9MW zd8)-!ODBr{$v{Tz1V6JZZ?%x=N1lidJ=m1dP^Erg1g!Zxgm?tiBlg~hKw+P5Xr-@B zvdMeq9=v30@heB2k}U1l(YlQ3_Hga4CGOhWr_OvWx}5$w7Pz23D-4SbPF=-jA<(rE z=m=P94D*q|ekGk}t&is__%Pk^8g=EyMa-(Ye%Zu?+oteXIR7Fxlfhn(xV&wIV@az! z4MMk6j~ygTvDfLYL*coco>PHd(s@dH#E9w{`XE=?8DWjdv92tN zY2EUoQu|e$PfH^`8T{NUiDP;UKprW;(S*KelL*6OMvV0W;BC&}#o$O_xZoC!z8G)* zdV~Ny^7r9cBLP;DxAiD`D5~$MWQP8LlnHpaQT1&<*eNhykmN_WK#P2VR098U9FPLV z6MN?Ob6q9Dxqz#}RRwPD7>e;$1B4wfe_v|a{lGR%6^6PQie|-(AnA{A>-X=2-#-XV z)&E0x`*piz5j{|TsR5ZpLXg`esaO4kq zj^n@KOKOT}iVX0sq<1SoNgXut?A2qoQyfW2+xpQ7X3!0KFf=90?^WuT)B`~kV9ETW zO5JglNAze)4nTGxy<6Z9+N(&#tx*SKVB8l&pa>u}e;XIS9h(3upO@h= z)I6pSX>^1KvIYsjTl%ApD`+k)4Xj_%?FU;n%kL2Mqu<7G zFVf)%uSy+5FbQB-mJZ>die5h)@eI@m6=j5;M7`FBQay!VENd~LY1e$);dl61JIG^% z60+COlaxPHES>6)Vf+ox-iTjXr2qozP7j6)wNUGpROmvpyydHcGc*jAnVK%{+}i9GAv`uupD)CBShfdpFl=a1h!G zpDos6XZY5pDx>%csnlP;n@!BYNRYHlq$NT@qQ2wmr&1SN!))=m(Nl+!!^w|@>}DCZ zdz?3O8imMb>Ty=+i7ku@5w-I^c`nyu-i(KP6c?FiC^*dy<)dZ@Kv%bYlP+-V9uw_V z7rA#q@5NP7KIWTZObIr&0a(IN%Y4DRsK9qC6Z|!ZG@fV^C*#LZHt((OCag9>mjm@z zj^sLn?@%wCrr8BsdH1R$(d1+Z-HuOHob#O5Gb!dZh(>~TwsU(3Q3_yZJ~NS(EIA{0 zXqJgTR>s=pRBXY>zyD&fo=Zcgeb7$5CxH){w_7&5e~e#zo^y$c-T#)nU0j9CipV4T zEvKm))@`QrXC3?Zn&Cv(w^`BhEPi%^%NNf?$xkxEa77>8ebw?9+Y^S5y&&RWaJe5u z*Z$WVFUD=!r9~J{hQBTOY`JA?IB#ESFO(|J*}NciYjO={Bm(v4Q^Z=zyKRs ze{-r{=T>{=DG!U(B`bdszPJWw+WcgK0Nv8P%cnvwiJl!YpTj;H?E>kktD%IBETYKM z&W~;Da%e1jOVjVTq(U3pMIz_)Sds1MD~adrss%e8Osm`uq3F)mou} zB_N!8O8;OQ2jfSAyIAE2e_&zO9BY}~cP@5oi2tL(+|?&Il$%49p=VtcE0KyJ-1Jb{ z^j6C#f6nt!%B|%x#P0+bxd%{CjO?B-e2v=b*gR8XHVs8bC0>9JvlSfCy@nQT^WL4R zaY8dRkbWPNYHfSD5Q2~NCc&-}c{Q+snS3`oVg6;;Pgxg`34b8uoXpeAorJM$i@Aw19JMZ8m$~R>4*Xp2*1-M0GYfT1YltzGkP4ee`6#IuBnJnBgg(dsv?2^kS53t>fZ^cO-?reUrb9^7E;{;H zh>aL)$q!{+EP7y~V!VDiTLg1vc=P@L1 zKi4IEY_6mM1U?dWgm)gu*3-aJBl2@?oZCFCx$vJGM1P_(b__L%8f+8|q`7z#e5w)F z6#8>ztdGF~Z1n5yU|CIm2tyboPD}q>*JI(%F9wYF+KxgGpnf|9GAIjNoiXhu@ z(l&H>hvw>I=g3Phe;>j;Nz$P@e52(to%Ct-hcda85?4>ty>v)A^Eam5A6BNn^^M(A zHl`~r+5cRgiuy|~SKxv}#pg@qoN>@w6|&SRuf)SOaze=M32&ZXEQ8`ZUU1})gsvWEb^dXajVBYk`CY9fV@+&do$GuBfL)A0Gw z4~H^yo1O5aG-V@`wAM_ss`Ph7nN0|-kruUX{>xhvCYts&>y%7ww<1+p7&whG^P`L( zReI0Fa)q-{Jbr%q<~GAl7Hd*e$CM|vwqxGCqcRVo z5@=R8NR`18_)L)v6F z6qVhK`#0BjxS|NXw} zX#;k&0!?aaQKLhwItAjYqI|nE1;3@p|BL>S)6Yb(ze7Un0audE?0&$SSqK8QQKnC( z4ZE0Ma6KLV#Zm>s$2~G6XV?qY0^*J1*-rA2@WBkdS9IG1N!&ekjg7vRp<)sHTo0md z!3#2I+tHc`ain?+9AdIMeHeg2RQKY{ zM(7Oeg7Kd5a5&|Bq=Ch&{I>gf!%rcQv;1w>03fUqVy{)#P-z%V>omh=7W2f+t+3Q@ zERMC=GXrmHU6^x?ZJFw-@6~U^FYSU|T`fz73WTmYq-);oZe%R8Vm@O`d7lj17<0kd zMnQC0@~9%9h8XFqf;^MxW5q4#;?H#J%_Dnh*_-ZLUY=0HWqn}lZ+?y7Aa|5gK}@!2 zx;}t<53~qKF5muS-0M_L>HG2As0_mvHN_$+yoqPD!e7Y5!U^iJT>xE*`p9G-CoguD ztz%@(V}pgp1JYigZ<*pzsP2bm>n(E=oT>NQKh|`Qd#4}7k&7tlE&Sqdb$^ot@PI; zF0Fu2TOdYC{-PoMAurf|&JkgA|0RXQMlRe$lo#GtRQ0GoG>#Ncwfn4Am%<9y}f4dkZh zuTGuga$${3p6lpSKiV*ExdLYU2VQg8Tp^re&*T#k0^_+B(io{tJiu5A=GTG3Hm)|U z&dqi!{AbNn?Ifn8L}yRE084>qT1tS_iRS*GX~I22*D#sB689^dsA28n4DH!wuy-h|10Kh8 z<=#M_g>~SN|NNgF@|}?#&gIfic&_4=Cv2SigX<+G^wnM)+e2VE=nK`=%LCACW}63l z5nzmfe}U~I{6P}vHXs%ILS+PKYyWqH1S}sO%IEev6-zFpvcym}-vG%g8*H7fmk^=i zeXdRp&yC>O=k5G28RN;(_tf3ifOU58w^K|F7pe=Ue4E)MPCPI(hiw7N5!IDp z8}or7dU?zuLQ&GxLEj+*wtC)wACCHu+4ax9**=O~MGN=W$OZ*7hDY^4cc z)R?POd4#3x@JOQD`9(WLfnvTxoBkGFAzf9iFXnZd@o8;Dk8d8DZTirHtb1m`#l@nD z_x-aT&(@+>IM_ng{bftPH2>#E`CGrUvP^kmrQ&QeC+}SX>4KftUlNx|KX}oJzIGy4 zPC(o2jTQUDs)}cbdx1=rFn^g2Sfu>_8PqV1qF<@7y25b%Gz(%|PH4kZaFxuW-dL&c z^{xS|=e`+7OYrSm#RttQ#c$n~(o4-lKU5#wgWmO}wG(6v2n-08nHaZv3RpEtgkZ~V zAmB0dI2Yg}0?epA%qbX3-Q~p+Yr{6ldwuIeXZj9cw?N^X`3}M3Y{o=SqQEEv!2{QO zpa=T!DMpZp;802D83YxRX4{~f@ZEydW3U>3z8Z)R_~}gD4V|Ui0hrSib=+I4Y z_kZ3Ho4V=sB{<_DFnZCD|9orupB{m9V#*o!rtldN^{>LU&^b69jSVO^ykn-nL*zEm zr{N$Sg3QSGh@&1s1T3tDJBfZNU9;seN&ZC{xiG_c7pJZ1*9SC26g}o;&fPdk>Hk|T z+}D4$yA2CF0#-Icyr1tAiqcG=->w7pV`;GO+#T|z~s-fXSS&#=9E zSR`pY7PtIX-R<~2XMhJCV*R~$nIqFyCYXoU%f_7tM@GI}+!b)4c@N)TW=W>?-4~uG zd2qLlG)EwRU6cKIrzQ2rZt5?q!GB|TYCszML+A@$SHDA|<34`;=fPFvpf z!KD_qULP&3k)L7Xz;$$9)gHX_ZfNW&64%EnrYY!@v_0vp$W_Ga1a?&O%p3E0V{SQN zk%^5aRg3DUN_1!4_9@pJ*VWMvX0c|WUkE5i2BX9`40iB354f5vT{BM$<7Lkx4{We52OdzxZ>jSL?Wb630DVPFlXn*I7BOkC}_ZsH+v^i8Ah59T;G^?>WWD8!m#$mW_ zkf1XcGzGs4Sz;|97^;z*2|ca1tj-I&z_sqQ!Eq5U?-qNCa;9_Ps10N}fuFJ9?m8Eo z$aJ@!tSl67m0a(6dTZ6h@}0J1b`Tcvyoyo^bOU*Kr7viYQ#SB8d@B&UORTjl30w5u;I;D#v9ttToh7O(Z zxm-Z~%}Rf~;jTv?*W#J=(qJCB-i)NkPTfh5FPaz3zC$k5D9*x(9bN7WuA8rO9TpR; z^|DbI&RsX<*-|*)**TlJfwlHIVn+YM7Z4=6r!|yx#Z23x&cIuO_hX|J7GpK;R!5Ct z9;)KOpnLmlJWDf`ed4V$-yRt~vkHac+wUoqoeh`0yfmx!f;NTZ5w>kwmRa2CZ5e6u zRwNZX=2UDiO$N*ZL-DDa-bhRa|>Fn>m7#4meC3$^|OKqzoj4Rhq(@^~O z9HE!co)URSEcA!aPV^lFPQ1ov^RV! zk474`)6w2n885v_U`2Fl(WXgl3_RU#E!c@NH^U?B{jEMdTJf1|WqOf=ecihs=wL}tlZx1l;dx9NK>#(%s<+TvoLl)o+N?}~9TIp< zs?)IuD|Q8%iG*-H1`p>ugj{-8F#xt?Q~@l~2Eb2qoDx#Z-*fWzeMbO7`+#yCEbu3b9$c8(d4r1?+w>@V-;m|f|=L1P$y8nwUmOzEE9mEKoh z_1Viy4Bmbidd9^|#9@C<^W~fEGm1$p0ZZ(bNp+<@0D3xh;_*f4%Re%ua=1UDRL|tK z)xVQ&A=8RGr(&lX&br9p4C$|+dp$rbEq%;01kA7XKjH1J5Sy4=otdui8$b6^+|A2T z+(z9&$LQ_-(}VvaK_Thu3A#c!sq_qwCajdPgvZpuwNBGwT-bJUqRcEVx@AimNe9Jq zi@9fG;&a$D-f>wz&U(4c7#mm$SRrXlSP}hE?>DIhLveLPLppcg=dH!Op7M@;?C-bD zXDfQ4HOEZkGP69Eg#}lyjJ(tq&#RtIlDl1z+x8C=l88DJPmZa25~W65iHp~ysl4wf zc_cl9WL=Z{?>|-ljY90Xq7o1b&-oq(z=@m7+5Ga!E#HW2ThhWq2XR;bpO<<6#*X}# zmL{Nq{<1VJgv8HuNTHq|iA?*Viz^2La$GDmZ`bS4C+BF1l2uu-((tGc{gN0tD_g)gDL+-xwLc{=Sv!0~7Jn1pzNPY+hEMTeyYCOh{F! zKN|E}Z@qzeD0SX!r@fdRof1o@qgF8+wl8z{9upM^OGW>~%s33Te7zkV^fL3h6C9hen=VP72rWbnjyivVKo>rAb~jCs)R6|9eX8p9<6e zqeR2suj4EvR5ov&IiBY+vE0)8+~~8R9;cavo0rRTYuwou>NXR(SNK$28WL?cd061J zfmIfc1;|1nGbc<|2BbK)|2v7e|Dmb$jv@G>HL~%<10FD0*7;q51JCr^L44X4T+e7LEq3F(*nAUu>L%RU%dHFG|<50c0l{PU#Y<*vvEZ0~Iy`IHem!;%Y$ z%i46^+xvr?`z(;|G??j}S0;W2@6hD*^q8O7!E8h4i_+o_2(854mXUnFG_y>GOxC)W z2-+^EAR=3DLT@dm)pnHnbAt-u7l=c@y}Z1ekEG=&2n$NE&y5BN!EskBkDl+mtb5?V zQS+*j_;N$?l5>%|*urr}A#6u~w9an!(5JN}nWMyiWcM7uRRQlf9bbNz=f~fcif%8G zt6Pqny(3S=Xj$51qrE1u6#V{faR{5|4pi;kL*uY;7j?U0e3eH1nB*J1`OXNc<>cNw zeNvaq`|9ft;@L#~mz<$7*C8DXrDvqsD|G9hRw2%#i8k7>mn&+9_P-%+S0;%2^^cq- z8sO^C`5Jw0g?8Jk4CieMnn)h-U<6#TN(fJVG1$wI4wD)S zaW`?oJ0pL4*Dl(Xb-o@X8*o1h5x!MCdGDAzD*kwQFPm30LY9rG9nOkK(not{On-s( zcDm3!(mF5al$F}dQ7n-65qCE&;x~sOw^4=pUgFMqcWybAjM9dZYL#4-vU?qz57we0 zY0(TX+F@VI}dq;i~`NAq2V~%Pl3lKh7BTEh&E7F`M=*xua z?h`d5Bm8+Wm*4Xxk@VVecMVQXc3uDav6E+Ik42i>?QcQ!U+7;9lK#nUd{0B#JJ8T&C2xulUEYtOlx9BZUr6+&=(Fm4qd!^Y9N>``{ZO+p*eNP^%HNGRXHn)Y|ou zlSXoy&shh6Yn(epGdCTPX>nbU#HPP-QMu@Rv0Dl-T=392vq z=m7^F;Dlk4P{J-{V!elcTd3~um!k~%DR}@Q?gAbv1+8-kvgr+x8%jLFLG{rR)=wgD z^^WAgL^|kg!uBYK%cfRqKijun5ov2J?yMm18?k9ee7l^?3fTSZfL`TwwF$t?_(j7^ z+xl&!=tnnsQ->m-1#;f-;lNsf`s4^@$N@ty?YIu?P!$<7p*pHH(rp_<@DuEZ z`)yRoP%Xda!?6PT{+;K~tghV8%VZ6`*Oe17A8{VN(&ko24-L+%yP2|9`u17ug3^_m zNT*v*uQ%Sl#a?&|av;Y25yQUVXnIGs5Gp6a#GK5&fHE=eM~h z2?It~pi>IV9kq6q1pe$C7rSj>_rK1QrJH%^J%@*A3UPv%t$slB?3EonabY?~YFD3jnn`>nuk;#MzU(U~JjF=Kyy1~=<5 zc~!SVrPR%`a`emRvj-K4Q&YNc(-Vz95&d1FBl`gu-+cH+H2jjG9w^=U&|?NYz_&Rm zlx8lMqgvJ-Kp(a-UmMEL7kV-WCm-|E-kzR%W|^YELrl@cddO6>>@6uAjDnNE;@fNd zIzuI{(geO6+Gi3QyO(JZhf?@jN$`aBn!VzK#M$jdl!2B{9jpe?QixU(5*5+cmgQ=g zy(%Ct0AoDUYTkt1hqw%Bh036C+iLh*-jbT$PY~~RH>lm++k122)|~vU`?mP<_?s~p zV@@jk!d%!)bBzVs595@+v2l^xaLtD+l8OU&sbtqKxyfx7{Nk-s>RdV+&r2xK1bJMg zc{ODcqE{>+XLXHl#Fe1yvt3l>r3hA!y3u!Ns49y3ZQ93V&f)o?{d1fG=bnbL$@@LT zgW&Y}IJ_M37MU78Ut6T95#2V6qrc);XO)g_Sa}qp@|9Uqc%jQYTv*xlTcnSDol`o> z#zzoN-)cox#HTB6-%d>z`gps;A-w*q?aW!hV^2;kRL@%rTD@_L4nkkX$Q*r=WDF4m zfR_G6rfV4k1wT>p5cno14K`{*OG$qwpmFgD%I4(NJRp-6w=jG2!ckB|PT+Rcr!X6J zwNPg_`bmmRrIh+lvSp7yEH60QCHqo+0W7v)QU9c|?IYY1`>SvJt7~6BA->%bhaS@a z2n2~*T}`CUJy`lIingpCGA9l)9GdTp-yRm%fsqe z%HqiTjQH39mksNx@oVKb3w`@6`cC+T8-_RQkd3W{_+#d5IJxTw6$b|c`jPCfT+OQ| zq~69CGOi>(_I4|$n%AvpTp-7h!LPMjxCd<;Vbi1;VdF}5BC-4JV`AdPtqGr-1`n~< zhB(mODP{-p)%`Y(4zMQ_1x!IPq|qW|XHdyQIIE6YI14ir7BwOvbr+2@r)aIpxetQ3 zgt=Vx(;f@%T}qa(u9&V+zKpr6P3wg2Oy4dUazKB!iKy?>SceA2G|B|CBSSx5VhD?#%w{G6`Y+S*z+dsrdA${<|=F%0hM zm%EZz^n66=%|E}v89IDN?)g_fT7g4*qsyJYaia+JkBZLE)TY443}?P2;Pn7IGKZBr z2{oPSk_Nk|*I4|z)#+?%-F?WpN1cY2DL*)`eS}|-`$MDC^aBOkEFNFKwDN?7TAN5K zEliHY8l%;)cc#d(%}DradH&zZajudp>&gziykYjY@*Mm>459z(tHY?#u0~nmF`gkX zgElNyEu%*EDF;0~)9xOOI`|Ll&{*Y>a+6O_Fh}XC3@nrz6A`8Pz073a5QhgF-KbK=iicwK8RUwWNj9jth>T|7H^ zlYI7)(mA@F4bNyPOa_y8kStkc{*yIUm zOwxYjO39P?qvl56rk&**#Wr-K40=Rc@Udzp7`n?o2_H3s@7;I+^-I!*9tOH4-CDhB zP9URlpZqkW@t4(_kNC3g7;+)&3R^r&w7;%)+wegpj5mVEbHp0nFc)S@f_|%prRb{* z$9-LC0%FHLIEQP}2{mHM+%c7?=RHZZzHPczlMguYw>!RUv%Wofcm8IEC#~IBayb;k znLvKH&w`;c0G(Cx)TSzO4o1jiGw93^9I5Ga3VeDBzbJ#nrh+6)ZXs4gT6@i`z!H10 zo8b5;0!vf?&|m@HSei9QPti+%x&y~JJ*B!3ttQB_vkpaH ztN9&-^_M%|@i>-g34unKW#5w%1(3YaG6K-BKi_jUJT7<{pz!s<8?!(@C}-moO!b#r zyo(3=^+$htP5?>y;~jm}V!GUKz;hl-PilQ062P}Ri9dbxHTYkA4m7#_BoBaJ`GW+{ zbpHQRfTMJCY#al8rVoBw87fQNUbLLpHsU>arG~vjtJ~+`!Z!STfbv2Nv5d7~&_&Fbm!!b(~ zKD|s_>sVEhAo?C8I)hrd$<-C`-wih|l7d<%!(I65m1?zDEW65%EJur=%<;w=&IE8j zo465R<19L&IFI8HN4Q!t`Ug?KA}$Q?;saS#>t#K#QlE)4y`xDsT*OeBtz9sesnq*GIA)P$Lm^H=Og;9l(mNy5Uz$ zKdX@}JBZtz#qN^x$;)nEpL8Q38(I}K!iR~s(@(!a5zD>q6dIf~9}oX>*Z$5->n?L@ zcxSZC79#Cxw0!h?B?<#I^;R}-3Cp=9|FC>Zv8^3{37!P!aGvRrQH`jj3;N^U;eOz`cLOGo_mSlH!YooALlK_i~!9{HWQW-PzD4yM3W;N_B!anVk{1 zN^B`p)6WBOPpERes~VBb=&*SkwCDaU-_b{a^AZSUZ zL|yI;Gerf2CbZi`kLl{@eu=(Mg}w4&+uj{f=b3dTqJ!m}$L5iZuhNIgH+-_Gd_(-k+d_9P6*u+XhUa^--=&Z* zp`#Weo6;t`2Z5a|c@JXwF~Y@`X8D*f;b+(Hv_}h{Z_rfYh$O$8a3BUsh3hKkpqMZO z1$0xC6B}^ZE%u*LWKIJ{S|W2h-)KGbfYWuWaW8zlMtK<{+0!^b!Wglo*x?oD{4FCW zu2c5+v}D5D)(am{Y%}dF<}xI@#yYgZN$sI;D@_OSYji)t&uc5p!|Ege%E0&q-M8fi z0XA_AHb(jf2k%IA|H@P*{pD`wb=!697uK)q zddDs09u9M(jYx8Dr-clq>@RD=MQ=B5eXX8_E%3;TE|_j4dyiHFJT;MZ5hD^ILaRIs z&D_P@4HtoH`DF+*xlq&S72CB<+ndp_0z`+%4K(?Dgr9`0rzM+NJhtM@tO}YCL(>f=CqD)+a$c5zajndpk=Lg42Xs&I^IDgxLtf z(fV4E9W8>KM1Bj* zschcYJlM-(9+r&MJ@=&0L!6%~3(T{>KXvY*(FviuH}~f~1J0%flA0k${=fu|Tvw9q zgZL$rs}AJIg(nAlJH9^Lt5f`{l>>sg_k{bM^>kZ`I-p-PUZRJC*p;+i1Qt~H&^}Wq z@B?WEl^P^G!YS-x%UaqRfpV44$E9Q=fi;f`j>ymQw+L8WI$%PpjYO3EEi>faH?Uy{ z3~bbRAkLd;cP5l&7tmIp1iS|k+qin=e{N~`Jpu#xMW*@zKiVJsBG|{q)x)z*r_kWL z_8>&;?&0m@D^BXW*x9T<($rk@*Nr;33QYILisi!`?a5N8~5- z%$cg7`QvX;qhNLLezj8mYwzzlUSMZ8wLC*c#)aFC;YAS~%Pxdx_>P)CU2!yYc!4LcL zCU!_yb0mN+JA?5%@1?fbid4LM7{#?3O`Q}zk;xV;xlvY0%L%83gC#%0E5JP zh4D+@A<4ivow;2Eq6FuVh!dhCek?=|G)#f3glexqKtih@jy%JUy#iPO{`|hwe~h6G z|K&Tt$genC;CtMwjc6S3#TNmz|K#x<=+|-R@v6q3GlrsXdw>ds+YKS0P@e*zjlf$j z&Owi;_KYwPa486Y^;>(UuzcHMIoad-4%d8(Si%9j8 zV-6y)N0fiu&P|Rzj{ptYeT6B&lfyH@+++E5&P5Ik2(tjJJ8%X)iT)UXD&SWc07$=| zC#@|S)>|g~9U=*Q*aknAKZj`jRR{nS@#l#HN`#evh(F>VgFFE}1V2dvU?u)Md%$z> ze|ixu8QL0&BreZO^5$zPl@DexwmTS~XO}yE%cJL$o6scL%_BD~JhaA6N{P;pk zXPDYtM$9#`(luwKYUBM-;B0%7D!NGG{$q>%uuZGnZ%NTltMd9sy_=X~jvIBe*ZT~g zy}(wC$+h`aOyb1<-gg)OhwZz+Iy_=DQI8OrjbE%1E$CAtCdYJ(%=M2dq~?!GACnKH zA-Cg&W7A`6qnkHb-0G^HlJr1+qe^nL#(tc(bpwpdV-aU^usyoS~ z#2c2Bl5s2UsEy{TLZQq-pc-nxI+`MsT z{Ho1B&UeVOHLW^xBa*V+%(U^?H0olY>&11|y3c|GyzdV^_YXz6(i;dr=d`7#H^8Da z==j^cmbwR5-r6k6SX27Y%lCd(U0&pZa?uK{GLxdk=L$*2o*oU58e(ORzZA@o`F^1& zp>*Fr+){3>UN!nt6aMif{{>~b$@hO;ul;+k0sH3vV&f#&C1>q`ddtogZfQfbJD_qc zC!#H(sVq*7a-*Uqp`F7`I9X?l{^2$2jOX0TXC+=~nm`bB+EGn-tGeh1t#LQ=4ifNV zZ3GhYqI5b!q35}uhMemH9>G(hB`E+8^Wi1{*mIS1a{B0TcV!L{*th}g_E<<56c~qH zZ-GBLCPjWiU0$q>rNo1Y%M$qTfO?;POTE8^r|vVqE(=IM^AsH3rx-9Kzjzw|)S3V5 z-+%S{MkPTe;4*_U2olNdV8bg4{Qu@|{#Eelf8!bz@B#q_vr;URPcT=SI+*ECG`yPT z@Dcjbzrg~eR^525A*T&K_wM&FRMk!}c;J?E&gd?sCnlXwmU*3p9y}O)H(d59Novi3 zw9Q1MQ=QyyTWlb@rnrLHB1yY@^EY+^x#z4t0)*)W7dnmVkorn#=;U)@dF;?#>{9)dOBeJMePOE&!x(Q25%`|JiqaxH0zR^E%hRnu2Jgr*7qLV|9`o z)h8gNpN9dR$TYy`p^3nrfNGbE3IgQ0kFZ*YH?vZz;lDfzbnYqe$$U`YB+djbnc1?; zzQxQ(?6MQ37XPoqV0etc*6cHc9`6DCynBpYQu%t{j3#?hf|r25_VYOZB$hV>!?|$o z<2OSZ`i;K~#PX|H99WOaZI<8;|CaBme06}DjQR@V&PAT_*Z>E;{gnzYapVB3^HGhJ z2Hu4)y7CcAjXe3HPX;TNFdLSC-+z3FzwK4g$T;TGWB#A^YUW?=YSBpS@9X*RrT_2w zX{EX>XpIc#NnElL+Mh&Rtugy3OK^Nw+leXQ>#CLjqwTOwPRZB4%Grwz$L$vixyH+a z8H!m+MlE%i>H3}`m;LaQ!=E{Q>b|}!$dR{mXr9YeBb?FXd+kqg@x!#vY8%IkZrml8OQ|bZFhn<} z-yRh)r0W+VJZ}x#OnY*LK>y4N=hzv`G~`M|UY*YD#+2o~u#~E@a5b?JFWswDO3j_> z?#wqg9i+84xeBkL)lg537$yzO6WW|BjuMT#Ur7_C6(2$_cs+LA=#uKF1XLQW8c5IN z2;n5EvM|>y0HWeXjYG&0ZD{LzW_Fr;gOA z#jpLUV7Wind7>iZkv&OvWDzb_S(cWZaYawwuwN=_?_$p&Y!dAeH>oGTSM5HJ-XBQzPR_?EDt=#GvO*ZU@xg(NYP%Q$C#rL`ofjR+0M9QJk`#;4JoO z@g#-603Gt!y+{`{ixSaWm#1$~ybj~off?Yi7B$eWSq z`Q^YW)+_vaD^f@SOObob=NLh;ex7TMbeo?IGjoVQpFkWPwM0R4E9Drxb2-d1TOPWU z@z!ps3%>Qb3Kxr|e~2mw4liE6(4Br)RoFtkyo$3=oHPu5;}nVZ+5JulOAgf%`POS) z_Jjv)h`;qD{~(J$3tvQ@?#z@~<1!TYNM0Room_YMgsS+YqL(e_yJ~Y&&;J|ox2mZK zeG(II@!(&VP{-p?savkv=L(1s6uS8dA?n)BH4|MrojTwMHW_!Hoz^Gb3j<5 zG=Xk*TcdV+W}24Z*ZCHhP!$?>K!b3BAfN^IYm!l$n_rXUlhXD?c!Jm0?+_M2oZM_n zF_Q?|nEOLkFZ%Xwe#}N>s0qb_@)Cn#8lw}2-;p_(hU{SXY78SNw&=?zs{lL3rY6)E@U)PX)vRa_3Gr$t z=Q`NmXa5d)kvblL!Ut{4XY&2uJV~Dj6g=j3S5&~1`dki!vtAqi5!;7qalA7O!wTZt?adx}lO-xH_RI1}1nm{3v*_feAfM&IHrt zy@MBiaC6C^ss4h@q-j!S7N(XyTO?G77JGdHt*Bsig1C}wt@2t501dwlU7=kV@GhRz zFoe={Fof`jxFpjK&zFTL)8LOYyn3XiuwZVl?Q?Dxc_Y$YD-~AxsH(4yJ=dZlmqA}w zx2``3=bAQ2sJ8-37>=<;a1&Cs++iMyZ|>GUeyS7?K#fM{O9Nbc%X(w zaiO1;piZ7dq(Nawz*hl#d|JD(#(W&((v&(CWz=Z9q;Z>WhM##R+ID)aiUuc6I#ntF zF0_Wd7}K`9W?vaRTLd~+*@TKY-bYx>CdTx*c)dOw1`+^2So;Mw?E~l(#!TpDPC?Fq|EKnbw8LDnDujSiBY*GSsSJL*>!60~T3CGI0l)I{zLX(ecw#owTx{srJ3 zE=`*ks}Z@LuHuUVevaB|>V7#KX_Xf)ANZPZUP*3nVlTSS98n2Dj{)94;5jt+a6POO z0r`Cp^iCTbb_-I(1cbGJ+FgvCNZ`N^rcs9z~~6 z&^6A{4PVEBZh)^xFWEbR8eP;D|8c;#hweJez8`GYtb5i6=SdDn)D4>FtnSSv3&jb4 z-RjWvms!5MCj`Y@IYjJTvw)*1PN&aJ+%mJvW!AV4u!ci)NAg9#Eb&kY5YGfSB-gG5Jv7^D zS$b&EUM=i2gDma*Vd@+FK~`C=AVm$voW9fW5YbRcYxTbPb8;wDY+=3E_sG)dfC74S z<=PDK@t57M#qJ_OT$qx_8lJ|o zndsAVon-E~-+-eK1_U*#1T5cR;EYvs4`|;Kj{0hIk(-Gh!)w;Kst4x2$O6bE(YpQc zzRDc z%(vYKY4$F6@TsC;_$t3v$fsC)ijYH>d z0A{TFe{R^J*IJ)EEldYa?&F(ccrvhk)g@B2!xG1j{pG&qqbCJKze?t)p|u_0efdC& z8*r?s{;AioU<7Emz=oF=@~XBpp?V_qFls`UJN4F8;qJoUKVA6uPv6%@A8cq8Rn}J^ z3o`oj@?3LHHgSE|1UN8fcK zKcWN`nuHanW(R0-nCBROTq$BmJ$zpOE^EX^y~Jv~g&;}F5kLC|k>dpN6Tb)FA#y5u zo)*s6Pj>_W(<3IcIif08J3g^F*l|I6F(x zqx8Mls~Re>JvAi>pXCks=!GX)oC&!)k27lMfkuP?VfW5Mj}}Y;R(@_D_m}q?Lm6pD z$<$X8(jTdZpN4S8{v|@}{|h8Ua2TKWZpAwzd5yeC2V_U{SPnNegSoCM<-al7q=tXp zAUHXu^z`Y)dOik$gQt0b)$Am#HWu3q<||bMpD9)tRf7fZ?%G6i%JtrjlzZ$U(Qo4+Im^qbJfvY!CN{;W>Uw3PxLoS&uY?fBtvoz=>0NspOEhRwYgB2@~tj~E@?Z?d-G~Vc>r#o z=m6v=Yzt5_sa6}KmR;BzM~V;6{z%~|`s7%eFbueT_9`QPe0N_>gP zkkdn&zT~gtpFQ!iQk8KjTwmiEy+^IbqgnB8U(`gx#pa3h3)cd_Irk4(iq(c2eK_~r z?>%NfQSBVANigFM;Vb7_z(<7Jyr zCIevsvsOlC{99Ohf}!;~y$oGTXc=EbrqP|t<<)&@;SVL7!I{Xu>Q0ZCYe;vQ?WHup zh>R@rWZgZIYeilTT-?H%G6gQ&@*sQUH^G# z<^un|l}o1^jkjR;Z38Ldv9RH-Hcm2Qh6Z(aI|ffBy7>%LMoiX}$1|kCegncuD5<6~ z$&Qhyzx~7UXMBPM6%>Qa=nITd3VNfpLP5QHFje?aSmkgraQnC+lWZY0s=2xOohfvI z|BOiMJsRwVUP6oU(3@jj{>#Kcb!|y>K8c|uyYlYFeZlq2xtAk4)W|GzIf61^r79Xr zrO~;3?W{P15_h1p^0}}=Ba}$n6t4t-Dq2l*@JUUS)P!sH?Wc;v+QI~dtSp8%!Y$qB zjr^=rk<5`tq;-{I0RbkJ(cSE!b>Z2snlwIOsc&JoAa?d>Uv;B!BV^>aUHH?20zrY= zp6+SG)=sthuUZe|3v)eehxcg`)HZvG*J^b%!&|wpay{x^>7l7P#n&ja7vU6; z0}IG*H@_}2K8$p_6vVKp4V&G0KJ(`Behy*EGu~bxl!4C0L|Zzv81h8hkirgIH7p-k zj5yO9w09(V9luI8iu;0BK__XyJ%S;2$e&QSDH)gg+@#bsu+w|e z)?p_q(fFmF+dV|kzRfxGpvI7(;$D}HsRLH!iyZ#U}w~}Vr2G?TS<2x(M9xI}cJ;}uPI;%!6A!|NvsG%)WbPXr&SvfG? zWu{BzT6Za4Qe&$*I%oRY!wk6`V2+%5G{jqGCB`twbJyCqTrP(9+Tu2@sHo_Ex0{qN z*st55p~5f&V1fc zI9EG1xmE6$6L{hPy%SJ#(%|lxg-veb_n7u%cEJRpG;OCiZ*7bGuI5 z#Clzwa>s|tLGoJKCJ<$^u3k%P*=Hub#-F`0# zAR3)8&F_dG{s7iQwGt2CwH0PL;D=(vg;t$3rXu^+wu}!v6B!$}CQA2d zI~Now`hZ6Hmv-4{9*jHkZR_C<%6_Iz=HjuKBwaq;Vc4|I+gjRr~!) z1|W2jknuh_x(sR(vQhIiEy9UZA!dH#J7hmz%p{5qOG{Az@+J)vPr)w2u>iex7Y^IU zNyC~eV(tg)z5fp38)@nlIXMo!=@n}PVss42PVU{ZTGkt`wjSV!d=c})6#Fedmz!8p zcv5d{T*i`cjgjJ&1{z12wsB&7_>kVnKT}hZb7)!b+0homB4$VffRBk|K|f}CnrWVx zLCO0gI*w_zp|b!d4$|b?>_&9AbW$hj_MGaS@z5~G*`tW-Nsa#8u9_ORvrfsY`tJAt z$3Zk#8qh_(A_1(`#~|vn$6&EPjyyi@wrN2yNyrtp&PiHomeiC5Pm7e6JKy)HQo7_5 zX{#QQe<^jOP7RO7kaBpghUl^TRbPKP+A-Hc1gERffkEX3@>n4@;D*#L-@rc4tr#ue zVFsDAd!7V}$gt@kOPECM+bN}Bs?dELMLg5@9ZCe5Zt(ykpK}09q>Hw>Q(D~+J+56+ zfh>!-^nveKUX4fTpc@iQKXd`Zhw?%!aMMm4<7z3+4ZoLZvzGU0f(jpPv$S!`tpu+e zL=9&8$VFduytle)Pp7&|DD_*RTy4LVP%p7?M7C_h^!%5nv4qWxWD4&IqE_W#m9340 zXhiD_%|hj{m5oX9;MVhs%Es%J(f#&axC<=pgA$Hg(ie1L@}nIMx6tuvlU6!+izVyY zOh3N19-mR|982gM#OOKYdR#^s1vqv0qkZLyvsj@0~=7O96rK5NR9boMpwQ?0WG7F^~OM439kdoKA^MAw~fGGJn0IhHANVZp&J&OzD7f zhUdbw;%^EsO5M&7uCP=3-{vX6Uc@LMPyGDTT^#17oYhJh^s+_12|RyDC0Xrs6zV%R z{2hX42=!~=fK9X>j$UAphL-b&hAL{;6w&RGrD7o#b<{^7o!S`a##ie4erk0b-@n65 zZv91^s}del=G22BNM>R}$bwP8erxvH(M|vlU%|FX8RBlOikYtbZj$ObqMH$KzU{X| zo?)0rgzlgwOV&%O1KKL0XY_JKSq1JcFz(HY9zD%lZMa-h48$3MWe+fyI8L?7$O~1@ z@h3_nd*!i)I3(3aN6g(bl0#O$D)10_Zs(A-iV_N-M3hqN5fY< zsMQD-Wo-|XwJT-pqBx}{&`0VwKfX}#c9NtLVshy``VDml^{vpc!I^iFU0nKHpW`jb zs!qz9-f$rUo7sZ5PP`Kzvdxe7oIB=}@NL=9bzVt_-C`T@Zdw z-0^GN1R;x$%k|E6wR!{PbZ|2SnMKsvp;~5ZhJ?LA9AiTfX#p0m@(!fq;- z3=V$|u{?8|G1Pkey~B}a&F=*e|Ed?-o>}5}ngN7WK*8~V`Fgz#ETna9p21SFd#gJ! zuJX+CRjU?i(&9lpu_AUd_eTmC){7g!Q`r;dH9TdCOi}i`6a;9k{@qh1NW#=&Osk2l;y2Qda zX>1GG3rY5g!BY9a`?_=CGqrH6kj6Eu(n{il{&ecJH(i==f4q$Z^%tTv^`SkYI#%rD0hYvXq^^exTaWNaN)LzE?_tvT8&RKNymtgPSW{(1#&3;n!q%T!SaA z9uxLbgd){e45K?_1Oc^2tMWu5DHV9!mTX_F|2;h{`gcLXe|oFA3b)kQ?165sC-rxr z`LXgW=TCSW_oxd7sxPIQAJMdPN$}gu^Xl-GtEh>Y`%DNkIV`=$my*(q#By&KjAB?_ zpnF2=Gl$C{NEW7r;CaUQws@>)K#BX!?srHw{7`MTP`Dquh?@x?%>&pAh1xba`U0_1 z+`~ok178c0}xei@QvXo^}O)MB>E4bhg7IP~h2)-!! z?o=MoJ(_~=5G>VQmOTNBnZx$et&qlYZmYe$ZlTSs@{J8^obVT$-J-7EqXxI+a#&qQ ztc5@(<#zwA7mRC!7Ctu34mBbR7C|^86QqwD zAI)Gas=1%ErPw1M2xLt1^e%;0f^AKaGsFTSDqZ52K^o$ zvp^=zN2m`TOH8tH0V<$U2bEE9aCWPW4oT9+LKA3V!%!2&=+*6Bd<H-VBp(OkaM!BgH}o8Ts^I!FQTa<{*RR+A zGmbL%G2P{s<+H4U#R6wM71^o~zFJpBTA74rwtG!>C)DUR7=mbLk7s?+qn?H?xiF(P zW(E|~OppX6Yn9$Yqk8`~%hS8xAzufCR}0)%!j)FiSrt+=H1jxjmn4j zivjl9W8Fz)XRyuwarIm+vLQE($GlDjmP6HJSLTp-2%7iz9+}kVsHLt6Oi!4*=q6@8 zB(_v1u28+%n-0>h$P%H#BThqh@WZf_W)6^ZUBU2#Sz?1m13?Yg_~^Sk%ZeJ~!l5NT z8pW{(w|1n-Q>w!BI^8OgawfmD&RRL|-ZHY7yd8XBW?gjcAy5j>ERFV5>lDB_IO1Il zux-TWA}$!BeYc=5kjv?*-^88Y4A@!BST;gymPi_xj+D{HSU>o0UNCwWOi{g?*g z=`r~j(G;IbZN>Svky%by~kc#$&nHXv9J$kMJvcq}&LUT_$8y0U5 z88JC_wvU0e`nX}O$pQHgm)Ba!@RqKT#?>Ui0(_G1h@~4X*gsavsO@tiy_D+dBR&kN z>af4=cAuEx^&^^~^5gC^Bj>CHnPj!h8FMd3;&t2@TCPT*b?8S=E*4S%wN#!#ElCzU z$K%Cnap(eYfndaK)N4G!VS<6R#&`>MEAKW8rXZAB2qhGQt`d_%Ya>O`eQ9wTMAsnv z$EP_J&Le1m(Ay-3yCN>SlG`z?k(pn1AY{_G%e0cBC!`Ni3PCm=QdWKl|9xKLo~f!Y zTx=4?1)dH^>I4eEEYt85d#7$edd|d`-dRuQk5>_v`gemb+*o&Alh)qK%36+W$BX8% zxg^I!aU-s2_2zUH`Hv6u4m9D`eZ^ACmw$)c*=U0wZdn%hm5c6&v2jl%32fYp{e)}f z2#K<_i-|BSI~#V5`!|$GaN!M;Y7d&2( zY|(9-o$01pLHxKs6@J{BeW%Nio;IVBZT@I9W^7XXlYq6Qr8iy_LN<5>Bey`RB0JQc zUiiu>>^_tSI?hX_{A?w>UJl|^_VbRg1n8Pa;nmr1RSM5p(m#AE@Eu}St9dReBEIlJ z!kJDT?aJv3eNM!_4t#GZT}-itRzW^C$KU8kkA}Mqu?9Dls_K1O=CRuG_7i$9mz8>D z5WUC(?jMC|j?)K!yzxk4&5$GMwWIF?KkEl;RWD*tJZ9KY6jcD`m4^ghDwD~;wr1~8 z=am*I?{Z*D{P@@gQ(>)BV|tSxtawX5U8t4e6X{Uw8R?{By81H8WwzPV{rO+}%_d$=c~B1$Ea9I}#O2M&Oh z2XSZgRM778TTI^}>r9-l5r-SU_0E@_jW9{68*LQ>x#XSgOuxOLS2tLl#Ja00%tbq9 z1SCSgLng$=LE18FwZgrxPnDR{fxY&fmj=8H1YjV#nw9$rZwRK_$u1*RG4-fu|AcO5_ zl+{-C*FEIPtgDb&nlcygOfOKi`+UP^)qNLo^eDM}{={qao_jrKvu^Ad9)vTB-K5u! zmS>UNw(M+pPfAs_&j5bHGHfo$>ucBCLrg~qM+0NYb(4sx?7 zT8u6rLM;JSmt@%|(rY*ScQS5vLAMgMjW9t5cpe>@PgDs$y1U!yt7a}t>9#(oE(>W& z*q^lR(y(TeyUInd!!JpCU8r%6wzh6X8%37xNUm*_s4E8&!@zZXo6wknc98F%{E)d8 zSFu|;9c#>N46j>Rh6WYL{WoFgy!e?If^y6Qsmq%o>M@5iCc&w`qxDq?t`TifA{J2T{Ua`d%+ zd|g%QY7b%zPOcMizpO#~<>^gz6L~;UB)JSF=cs7Na5@wuNx`Iv*@1_b;xrFEJ^;H| zHlg`BW4%&_)7ET00JdYmAV5ZjSpPvx^GX zlWH6Q>~X*7*wRecu~q{>M0}29ZnR_^xF)!pvK4wUth-lcsE=Aa=PK=-QuD1%@lk|G zo2R*U1X|0Bot3#kw~yexhN0_E^C}-fyK7aA>=nB@r5T#vr{O+uFT$O5ncWlg9!aTg zyogRXZrzQszd{LWCua9JR~ zwctjQn2tlu$SMxoX|93E_6VLZd^!C zc~YV8ev&F{aLe-W!w#iQsaQ}i_UqoLHX?;ps*jeR<1N5&=B{xS$6uVvdBw>JvTcZg zit_y1R@{nJ^_7DKPUoIN^7D)El?0?0q~7%QspI?oOWou@U{YP`^RrgY$V%s8IU04pne0hpG9xWEL@5o(&Z&?o*2)OVtQ}oI)^LPI0@>?*C%%z2lnN zwzc6P2sT8dgMbPM5{gI@DX{?pB7#8ZK@sU7(rZwp3rJTGf*`$#G^tUlih%S^Xi^0d zY6waECVQW~k9zjm`<(l}-@Wg>zx#(jvR2|+vyCywe4bInkL<~o*ML2d>{v*V?aMEd zO@eArEV`v=2k<1j=HDO3zN>sIsnpP*z=QLxwJ5-M2?*uea<{$iycP3l&-D(d^KDrQ z!u%t$^Tb(qzW;=R9L zadn-zeLxTi?sKUU66IfBYGl+VgHLjC8xmeu1A+x|h~Se4bir~n>fjO0o7>>iD!iw2 z=_K>-ad%O`?U&syuz>X& zBtHHohld8KBnAo~00Az^E>qLQw9$FGZxBsZc3$qy{-+(|yuou&x9gK@I z9C_!qr_D~n=}Lnj?u|L@lAyu6H&_#Yi8jZ*2?O?e(;Zpw``R^f#Gpx+3lz%O6ZjV7#61=X0%TY&GG<;t= zPBH-Sa+wMDT<33$Ez%CmZ+@AAZT3vUh@L3$C}(ZB>}Di0<{KotdwuDYIMFRS>6tRA zB+?qBOS`O0JXtd4l<)4ZT|<+9=DqMq!fhcju20Rot?BI9An_T8t%g#3|1RVM9BD7-8N$B=8M$ zlVy!h2{eg-b`)8e+uVXYY#-vVgulGkOs_nCE@$3RNnrNU|7= z-3Q*`v_aZFb93RM;EgydQL~T|m*+X{${N<)3nkn<;6GpyOTtd%KzRhHH-aSeAgydr z>tYMQ)0^QNqz^o$1nR-^^`%#vuzOZuMsJzCnbyNu@b-v(!lQde>08+@E|K3CqIN`f zdk-)R(0e%V{5h2-fc&?&q-mPC{4f^KMmuk($^P>2$PgDf0Orc)%24@OD0-&@rH2lK z&6xvd;FYa!5QF^r6k(j=az*A)+oUo4W8#9uy$Y(M``=}z4zq0tGtF?{t_4_rkRb^3 zDIqiZgl_#h_q;J0@~=!k*PMh#Jpharq^3k zlT;qU^QOk?rsWlw%j@&Sg_FZq<3H|w*l*CA8sPiY(Z~*Xdl=-)C01GsCkJiz2aCSx z23-D$d8wTHuOhRrjJ3?Uc9O!1Fitu6sENycoFb#9+?Q6s>>kmrS!r^}o%cOfSyP7N zDlOqrVob{4h|=C%KUIP(E$bk#ZXk&u*mqI46syDks#mJRs0{1+z~=l&c}fCYt!r{) zXhw70;~+g=caC+khU3Rs*ZaI&2KY!u;aD34oVU_Z+o-2tf+EI z3p?)rB-*-e!NNsf<)m{>E>3dVsykQ+700+bR^Esj?t$~4c(%|3|Iq2)-4t>(8z+^k zbiVAJ*>)n5c#13p)?30&0I*|7)-o3eRnc{Ku^k~qwLJI2`ufGjs+@;9v2P3?Gd$vT zEmGTIS|J@ek0I|xVGDRJX~7i*$~|3#J%R>`kaM^C05Axi7I2??$a8X`s^AUoRMG3P z#nx*h>j+`GtQ^UgXIyxnzX)J|7s) ze1oXSUr^{RY0b^>q51mKXRo41L1B^y-%F9PlYOlc)+##)Zy!O#*SsPEs|%WV2sU9P z_xSy~0rV~T#KL(@5Qpk{WQb(I&Sh0zI;ZM$l$^DT;Xkc2Wgg0fA?O!TygCu+qst<@ zAr)vs@31?d-VOTKlZKO4=oe{u-NKK4tvqf=|6+Z^Oo#pY_4igrTcM!5c$3#}iqwKA z7*WQRZvMiW1*Adi2TM7^sQ;HWPe3SQln=j9|de4Na|0b z?krSZ5#{?)xmMFecANy)Q#jYPl+{u9&EK|sNbg!4B2qY`)j5=I;qYRZy-J(|~$B*vYHl*=WI>4c0zEXf<75{d|iodd`{$KhYnt%s~jgxjQB<~^Q{56*z_-P!oV%R&D z`<3;|@_EJUnvQJzSjN8bi;B0A^=1`%m`-KlDTQMo(?lxD8q@3ceQH;pyI7Dd@zO|IcIb<@+c(JZ zHd%5#P+ebpcdZ78AmAk+W(Bm$UMCX?99Oto)_`zbh67ZXc>NvsInC#&43`{efx5_} zv=VehDT=TU*bJE4kxNVb3Z8x|CE5U9Whn;p^PnY^9L|64-$*<)g|CksZ#&h2^kp{iaD_ z5q%LJy{=`cyZnBX_pMr-B`eqYn1EjWzOUTacs!Eq&y3o_!e4x^a@mi2s2WM3B8K9EZL*wp9v02q`0dZIrKxRY4KkutyCx!LNly^KnRcvjRGZL_%0?d*e*!y>Ay z)?k5Eo}Y^louV;5 zNUqxLVSz`18;o&d395NsdSGQ7)#~B4ZI@iB(`?i6o7PC(zt|02M&Iw&92mHWUf0(7 z0{h!4>Q5s|^{*$xF4sk@+^7f`+fLTOupvamP@lLzmZdETs|LLP&Kk}h!8T>R)j zg7hH%E?2s)wUa)FXB(=XAF+;qttR|3JGgNFU4aXfxWc+SHqN()Kos9g*hU*NPEB8T zXgRjLm=Xy&L46Tv{k@F!>YT9atcsReXLERgD}PMz$(NSqMmIWLzojKtf_e%C(IKrI z9rUg4A;@&A&CM3sFF{&X`tDN)ZW*mbOxDD_9SX?UYLw@+vp;$}O!my>+*gtN&T#3z)nnbHqo3k8$4O#{Hn8bC+t>u zbX$(ZwGpSdBjqw3PKMey_R>n(Y1z2hsWuOFnGRfeIQNOwEa!GugqLZb#b!_#dd|2D zjlBmPIU|jk7%47!lu34V=?U4rLG1Ynuqw4TUsR*Wx7HwD>ZEGTZDqw(hIs)YvxkWIvjkkAd5r z>gDZz8NJ**bg;Af4*e+G5nQuTDi1#?CejnF2ysFWafyHvftxC*$N^N=s=O7ZBd5vy zSUj^-zx0)GoVxREMb_EF^d;@Ghsbfhp^(Os8XRweW5#k=)eXD(R4O1$_!5^M>YAQ>H2nDIo+q#w|LxvDb#^>8V9r8e0)L3n~ zv^%kzRTO9??lh^%g&p?K_;BPl{jiRUP~~{k^f8~aHsFOXjuDcqPFV@rC1?&^EjLUv zYj@|m`__YX)`97%DA7RAqG9L;8}O&I0Wcs>zoH`KMlXNw@d)vZ0fW&>*!dA-);*Co zE-4^Y^RhzFl^xIr!T!fle(eo%tMRX>BFJgS~u zdQAfvdu4#Q(4L@>BX^%utG=)E9S8H+*LGIVXiYIfUjQRTJ8)77yL?1WK7&4mZnOHA z@%tc^EfFQ;D%F;~L^UkgNk1zWDSk^{yd6wGiIL&~?N(@_d!HSR+SM?~a#dcjP6sdD zaf|sVxQkl&ZAz9+-DE3w5F1}=BEjKl#u~nc=_&;a19-j|r+i7c*_Cg1eCTTQ!Odr3 zcN|L_Yg}gKtF+-2DZHVpS6+8I&o8~(=1aI~IT$FL9ZCw@dz!Ibr}Svr@;WL7h+)p}$QymNSZbb-(IxMuI;=V!RFM|wZw z{Z%XLBKp>@N1xkJ+kdFM?Ubv661#K@_Vsg%;&-!5U&aJ*!kK8CMm@p4h+|&2N?~zv zpzu9Jod}_S(s1G`&qG!c^lB}YXHlSp9#M9}M_f6QwY1{uK;)#YcMDDi7Vb25;7wn8 z_sKH?R53 zZuCYa8s49e49-D9R^`|5H%qINtvz_zGoM-9^`i|O+sG2~*(a6>Gw4oBy-VA+6?$|= zr~Gs22h&4W?ki-^eX1OfTRluyuF=zrKh=X#^{^MROG6)Mvg?|wxdZYIpS7j3Aaw)5 zy6UNO*-<{iZRc_mW?j?@ftN;-l?&um?XGh;+etMKE!-Y(PMND`G|M&(Pw_IeyH;D2dwSt>Yb zt<9$M0vo}&`B&vyR&qR2$Z+)8Z(?Qf0XbRBvu~YN_z6QY=E z%nT`Tct_dZw{0{1%dEUy+p~F$1HRAJjSM|25OblccR$Bd>-MW$Z&qarABI9YfKa9C zpcerLoU*|>em84E~DQa^m(dx1lHXYJ+@t>JIkLK=%p}e4Ou>rxjV&?Z z=Ag_b3RB)FNo7|cTB1+R`n*;sv$XBsV*F<86z&;Et!wL+ar+Is& z+;UZBg1OZZqr7+C-O+<{7emg-ujwqWc&l^vgxI86l^6z+Mxw19IL>Sco;XLi)Axmu zLaEE{y1LACb#Zy%y8R%Po6;3I#{_|WA3)yDsj(7RsT^?Iy|f8l2wE2T-J+!M@>E^ZbSL9Uqrmeiv=06)UtbJg9*>(1@>&*kRYfKf25OZs|!B^=M z&TWFt%X?B2Qb;dM2j%SOr8#9fCNy@{>L>J2qDw|9>ngd!z5BP#wF`{OsXCl$$H|7& zd50f0t94MgsN^{X)X_uLknHsBFuxXAyp{(N~fBBIA zRl2=+$0@o{f?vS(7*avjG2}}`WC^h@Pej3?khR}Ak({1tnb@3VGqDqHrj=wE4-GR^ z;(M}};<{_J_Q~UO3fOs*0He{bEJMs?j`>!buT2KW_U`z+)LWy>K5*(Wca5uGe(hBq zo~Vbk@*2#2a*l;YL&?vs>R$xfS2;KBM;f z(`&l;lh5Sdtgje9JlMfxt((9w*kO@2_>n(UHg-^WBz;-@#20#vPn5U9Aon0&7zcYa z6`8L5o&xEQ(jxr}_x_?@*lF3WF1PHIw*UyZQ2#R!@IU`LZT!z5ASN}Pp484#uhHv^ zZi8RPJ*J0SnQo|1VnVBpw!)p4SoE+3W6z2f_B33t9N>N49z|c~|5*Hvizfbt-|C8= zi8xBHNA7Y4=5r+zWgI`@O~wJ;lnmdBwTI-gWH58_Q|rSeJX&L}RR~l6%Wy zp)PC;hIT`*&pwEMe^)k;`oemVdzSESyyS&HYv@nkvHVLefq%iV{lhbU^;F5WKgGwW zX~-7vFRZ8oTY-beqfl|*Z=W{L`CKluV#r~mW+ z72N56*}GqgYyY%3{-t|2`pT}Z8?&!y#jz_^Jbn}I`F=FkE5=WuEGgaH>SUCpv6WeE zKQEidh`pZpH;B*#&GPa27U9Rw6A|o9yeUU(q6LPO$}I~&3Vd)0)sFMy{IE|6n%qyM zFTf}1`k1NU{d27Pq{W&)4-W;31q{egoon}8UxCxp<5_eNpXcgh0_ zI-}ALWWS3GV}`eKX@}0sNjrHsIQgVn!$nTu&9OY|-&_mB$^(15jEH>3bgQA|(&%a!6^A=WyQ@=6$$uH`b0v@6V=5=EtVo>1ST zx$jA_c!7C=yA0qC9q#CrVx!TbKtrQ&hZYP?q};0mwQ1PV_GoJ|h43KmF-I z;CBb@vKEdx@@3PE$-)sOjs2`XT~~eRsr4gYQS~B!8a_$;hKrr0IfoKmV{YA@%`+V4 z1@=AW_zjvA%shK}#Z)cSAZl10?PU|#eJj@D{nbzIYZv4ZpProIWb#`OH+J?F4eh*Q zu#ED`G!~^LN330H>E%-tRPLu;*bCDFFyI)x{8Ah0gvxDa}` zz{zvG8yWc$aKidXeBxX-C@DZ@Kph6_XB~wfd`3-`ahhdo!I-E1ZJBI z07nV{EKb^_0bu37t~rtp*KtZgc}AqfR;`C>&n?~yzrN=A)%KXzWZ6PsUiyHIE9x$~ zLSLKnJ&8-|>-&bdTLTf6dq_U6^&{>{O?i3Ag00G34uzj7?;Wpx!uLvEuEp{#)uv{A%efZGdu_NQDMH>NG%sr2 zz;;x_D1ehvWD<^r>|G-a*l0IyP(W6CQk1y8iw*BthT%tiuVZdkZKto}X@} zx8cLU44MFH>1}l+Sz6I=F}qOtr<=+@4#U4NG_qjyOdPZD2`z-$p3eCpjiAi(;Mg7H zQ05VF|A&mRhwyUd7fl8WVB(VwL;_wJjHn0_A1Xv+rReBu(TLgJzy^`2Mu75R^guBn zXZ!29@eEEtVQHGmszSroc60rA6g`4rPtAfF^XZ@PNuU#TM?fc%P~?+g6hoRuh-Wxy zvXA!(Fn7{0q9WIiPt`lz6*@`m2tltcPS6qe1E+&YfuEk5_SQ8P&N8zbLXSf1LyoI= zfZ~M8KR%V2vNY`t`qxfe2A!}6osj$SsjoOQn3}eK?8HwGRrLG17#DM`$6J(fZLY!< zF(|-pQQTwH!ue*pI6{Xi%|%xA6=!*bV8t_>Ea(ys=n@O)(v>kr981V!t10>Gtvm9p z;#LN#=bL0`pfm4ho#-|pka4aaVaTik2Sz>LDls4^(0Lefa5$uIa#}^M!i}a)(L9ba zTjx-!X|yuUmyPu$e$}$h()E&3_`u5&+49+_53RCd)5S8pecZv`!Y+>4!!~uC)nOWa zOSe~9+Ae)IYUoiEjBuTOqRf+0rX!~^rPr$LIL;E)Gxe#wH&uW<<)I59(5qKJ0CV9+ zGgEZL{CE#GA%JruF$`mfY=8*C0l8}qokIU~6Iri0xkBKtK;y*$ zWIG8YFPy36=bK;$O$T_Lh6567VFM~PcACnvLnHp-F5o|v0qUPJ1~gxLKLCKia*}|9 z?f9qLpqhIm3$jzb7C`ICfSG0ii@~x`1i_3?8{?062pWoSVpGuBC=JI8c%$mmx`=N1 zHd28z4e#96lvva0Dh%>?4(ERC+LJH8k2;KEq|*pRepUjl`X_YX% z%I@;N#PtHq+d&PojPgG`9B7qTI6vr?Xb5`lat{o9%j(y3k&hA@G3zH5xbbHIzd04F zcldQEz~6s-$q5k6G^MqQr@Oh2`g-dy9QGt8QHTb3gH$0RL?r{B4!Xm&EFNsCGsXjg4uc zP_uvV6E1XX9>F^@uKQei$Lg6={fK^>!I;UZP72t%zT7+e=YfNTJ}sDs@3K|>(Q(+R z3Pp_c1!QoMVFxK4JYo0R1UN1h*>sRHjG6wjnNC#>#K^?moIUzTnY^?@FR;j?)__lG zk(%hNytBk#M&thvb;&t>+NMJi6C#}m58j{^>~ENNF1HWvmfT8sQ)eT;G^H(7oII-0<b} zN_`I7BOt^VeF;4zgQ=3bX3;veVu8);CK~lDjYnHx^Uck)TG&zNC}C^uy#TqE?+@+&L?mNHs9jo?yAd}B;motH$?TpC%(Jtg z;>L#6k7-*!BX>356GLsd47!Uqopmp|Uh^hNgZb>xD2MA~jT!${o>|w~`NANzfErAx9|2L^Y7P@Z30B7;54v*T6eBo86)*6ga@#unLfDMxbA zV?rOcK__u0wCc2CZPa4wr{7aRpY@$I z=4l+dTVgMDa4^1pTX~O;sdtt_e&HT}Qa{hDTwi`17Q0*}@v`e~P0ZI1_u5MYA#BMP zW^=Y_?^j_OWs|iyBs30x3OqO9TZMfWQ*eZZGAH#D$p zy4qx_c?o~g5d9#SdLu*G7wwrVcHhic03SVK`=&e*>J<(9QdSy4A6M%d ze^~wi>ZY;02TQQ;iIGKi-c2#QtL2!|CAPx!<903%^9Cqv8E`myad!%ANK*xMd4}8i zM$unA)tSO4e0=28Unu8flngsWU;T9bU1+T9<@bvp``S#quYY<1vYY%q_h7uadG2UJdD_5N1b1);gQCPn@n+G=2yl=v{?h!PRhEa0pAjjA;+{>2zW} z#7haNQwQTvADgVAlRco(W7Y)41-z@dA=}HS*iq$pS_XdZu)C$F@RhtrRK)Stv$ocH zlM4!dcgx&C!K07U31;1vAY&Qxa{IwpDxuDNKdw~z#Kc#;f96&AYkH|%j*t*VM&0IH zKRc>|BJ1dBL=d^&6G@K0{2$vqvWSriyPJhq#}_7No%RLvs+_wU`HcxuU@`62GFgAZ zq#XWfuaNApLa!RnoH8825f<^8}IJ@_|4`$UMq%l8|McRWKO z2B*);E3$E=`7wuHi_}z7&Q9H%7Q@q{8MPolVflajqsNg3|JU;5{K8ul9mYu$BgwpA zQl28$he)Lx;C;@_n zQ-Cu}y~8%O4Q7)GM2@+izKg6kd0{vqPaP^yL^bpMPWAI=Iky(z2y$Z?_LU7Ro^<|v z_AwlwTViD+cc=}3arK<^eS{#CrsB{*#`78fCH2W`2 zWX!54XyYw;*f)sUiNerI3ZZ^#b$s5QWOJn^xI*RV%OdZxHA)HzKqeMxb3p;n|V(AQy%!a-E|e zhLr&3f~&UX9aw%Z*(@AfxLJT{uLWQfr3M}x3lA)Jko`Sp$6 z?rz4l)ncoC=O3k5tI9K?s*vqA1=#*zVWL`EQ}%@dj-y(7hAWE47qW=!O$LQ(?~Y%b zqGL5sZiG4=dZ&EXnJ;ouaoyWxi<0^}mKE!H5xDr-81UL#{_3m}~GhzwDF@c9o+Tu!venWS~-l zb3H2_3Qu$vWw5sw4hv7)N)(SzfLx}9W7#&yRY(tVu@6Cl^rsG&&*ZOj9x=Pn9jMZj zZ-m-XMC6|5C;B|Tur|}K6}hIE=jr=79BRIZELDZdKQ6ag*q~L`WsackAp34 zoud!7vW_Gwx{`rne}WDKDs2);I@)`^_7K#X`qjV}*aQ^-P*TT=LHI&C*qot7c!X({ zIVxDF&m&831F;cv#As%S@&n{BIgS&7r6Y741y0V|$a&#f*36N;@(~}wW+3(g)*UDN3li{v+-Ymu`pbEh5y5C_}_{_*4iWr<|;5xty`@`iP z^j9_@l<6W?Hr=V15`)ABv)G@;v`7)}o`Pr?-7n2NZ0RrD(W%B>lsvs8D%g#p$bQMYK(IgQzQ3#ao5f1QOj)y>{0{u3+q)wO z_En$D0Nh{90zlSu8U_rLV8=Iz(nwc-R#1#~UnUrB0G90!1FNEfv_S{p`=X0@SI~nc zdTDXHa!TR;oP6sMJQ4)NFaxDzGPRx9$~>$(`K+r`k*WUoNGU!KR3j&!3zE%BQ*yMe zyiLKC)?S-o=Y6w+xdJ-F)9#+HAlO`I)xrL53)H=oV4r{46>T>e(VyBm2Zr;MD1jEF zufgA=b!sCUH#jP^~E;~_@k32=sNrRk|0Pw_BW#qX_2{_x#Bgr`nlz=%xT|q))~-$f4dVA@Why$Pm;~Z%!8nSm?U@ zShH(0JKwdf`l_Q8EoO;ZoZLEP{Ssd4S|7p;jg@#GNBR2?>_o(UK{C{s70f5}Z^C^K zRP+#Gww>okN9&j9Z|8v=VVA`WqB#wBkmL6%%WGa?Gpax0s;{srMFq)dQ$8>LDz7e8 z_$c|=!sO=X5sy6!+_G5-GqjilgBkL1d{YhGL~(9L;+RV#PBF?e{ds zfKg&maIE664fn176rv$6C2zdoK=Yc)5jKm;RaE=qSHq<#GF-7M{waL5IBCBwV3K3s zPgbAY>6g}S7Zp0)EEv0NS&cuXKBsH0gnc<&?{2YlteBM0Q0O?b@|+UG3PeqHvzpqiyCCt} zb|9}X%IMJNoku3+LcoEFFW`O(*lnV=nh_gafLl>aTv&Ygxw+KaYjWjl&@054p$E!F z*}3htT5uo>hS!}1adAU*Bmy`%gyt64?@}uj z&4{((iy+qRCK9J@hf5%CenzhJV2C=u5HJ5}-=cnauS_IcQCs!J1nzg`cRHrxTc)jj zL>p;ce4T4mKddj^I1zQr;&9CIh0b%$<7dyFVZC$bP^b{~m*37Y|LR{4u8c`q9u*uq zWV}ZbYN&6p%CcYRfeN>|p9Shgkx|i81p(v-EgTKW*&l3elLc04@$d`Dk(a=(+uZ{rNsq9uLTeh*1^tYpPZtL zg`Cq{LiRAPU8Ny&-}pG`Vo{RKD47!Y>Zj)+2XxTu*CcduXE`Y2I<&$0{poMO43)IB z?xyRCql?_Vi>$35paD8uFH`m^E2Nv*SSP?);&F!WwRyW#bHl4M_n(tlTGa7YoYwRMkni9mi&$_3$F$ zGtEUOFRME|J32jQ_8Td4CmlEb>M781b4eGPg5&p>Krl7kV$Pw8h(8;0YySxoWwVI% z2gbBNFiak9p=AZ)SMeb}q;#Z%&CGm!lHB~B<;DcIX5aL+TqO1x-h%93g(Lx;hbz>W zLJ(uMfmq++CY-fi8(PfLZ$7P;A@z@g==u#pXM6|m^Wyc9k9G`H@K&7-mImbZDe^9O zDew&vXJL?@2xo|E&kPmFr~2N~|Brn3NCFRa( zc~BGP?+^-SUc0wLj^2EoWY=_EZAF<aUcNIV-izCU0Iv{kdrhvthhQqL!B z)}k9tI}0LTiQx!OL@*QQ{aYZ4|Ln$-)x^$sLo|o<&*MPgk$>^&mpIK-g3)pA6 zZ$Z{H3jdk9tZgadN#v5-nYVn7$9!!cxE0T(%WIS!9UHpnL|fW_qeX6eHO&KJCDv~# zhpI2GQ5kPzX>!z4%)Q8y@iVbY(*(iXj@3ma=RO%S>! z(Ia;#cizL+Qv~~BE6p9V%({M2Gv)Bx>m1Amg0RFAvi_-=Vp3qLlNT{}a30GTh6dXl-Z2HU&T|HkP=_4+S?I&tCd7 zwDLd0wgyUQb^@Kz4+?0e6}stxZLhTfxe0V!TGM}9(>m~X)0+7g)B1A8eGDVaEp>h? zoSfNx^P!c-miAHc?I>f_C)#IZs2tUDhCx}R6AM6AEz?2|)z?_GAP$xd>}EgN@9^-h z-b#vwl-j*XsiS7`TA0(cBiuLp&vCUWN_;(4=uOI<<7V-8yFKJua>%v(hW`mIv&ZTu z{Y$;G`1!LGIlXiiQGvd^HF)T)7e3E!_vWvpOb?a5zY^;9n3}5a-r(Y*$*iKnZ4df! z=_;1SHmA4r?)u(hX16S?qXMC4c@y~dz1CKMicrt7BfPUj2Nyr254EFgaM(&|EyiI+3GDtiSC_{SuGNZJL`V zaf;AI$6>W&=CcpG8@UhWdrRk}1};GNY3fbXgmj&uc)#fX#Ic8A(TL^UO3)ZT7WLSE zr7T&(aHuw{{&mQd&nM%3th)SZDZR^#nx7itOlAY{=@T7c>vWtW?s@O{?(SSE5?A7+ zY(^w#75RNsIoF~va<^o~n*%34sg!lMjz2>7;KBR%+KMkxhBuy!Ry!h#Ytckp($sir z6kKFxaX2|^Sl=-GmEo0F&2;8BAf&w>MNNpHp+a=F)ff+UP%~d|+*ahs8{Lrrl_^1$ z#U5^3ZmqOv*VB16KyP^Bmpz0>3ht4YfzIu}O4(J-Y)XGn^i>Sjd2 zl(02rH;^#p+#f22%A#Y(!y2NkbDG*?7kv&!q~F?3nEOzxQ36*pT8TtXUjWwXVl#q7 z_1SMO`)`WxHwE}tf3Nqh(KXR+3z{4U4Sj-~m(y9_vc}S}<6+u3nnnb@u@(7ZIR8Vb zHG~!IrlrQQV~^=|Xy2}>{%&@a0bJN@5~e1)Lk7;+MMx~Bk$K4F)9OL_s4L6EcX`M6 zTt8Pp<#YN+Gb}eS1of3xR*w616ELzu(Rz=+Z|JIMBx053Gw2l#oc{HT=!?AYEiXqG z@69nYUlJD|RaJgEa7;-f!=s1@<)$a-BQa|L66=c^Q06pQ!E%rlIStA60BA}(Q6%$2 z^EP1qiRR7WFKl#K41GJ9bKSnmn3z6#%tfTXQcl@9mlpczA86O_Z~__tmUF`)7fJd4buh zi1T%6c!zHgUQ7dK;|up{(cvFjwNPNc580Ri5az&C6Kd@X*wG%C5uszg9MG(WX+V6Q} z$onmTw*P%BP1ta=fqF87qJFwB(?-4Xk6Qons^M(q_voft_` z+l{hWpfH`x)Di}p{RqteJuSa*4d1`*aA00gfx@3kq^0UOV) z#z^{+`Esnv0SzkKJ5NuH0s*+@`OEsRikSMny3!&@w&h+z_AY>7g^&U8I=s(hl8?fS zhfsm{n@I~><30B%_{%JL=0{n`7YvXjFXi18U#l$v4x^^?gRC&~ut@yAyp7=c|6-#c z9~cD_6Ga6bK+3Md&71FS8z(F_0SG#+b{;dpT2@k+!7@n7z51yTRQT`YNBSS5Z743 zsxLnUNNv6!Ij4)`Cqs~%+Q|BP1c9jrV6lGOq&PQxI;gQ-D>_ZQPDy44B*N!{NevG|N*0$xNU$*%4e_G$te{4%0x``E3x!!H%J#Or)1ag4GQRFzyH;6f? zQ}X@b!I7b2ivGi0WR1qP$}$XtdpK=MzzgH~JbpT#9MOa?bUN2n6yo~b9WIn($HERL z+o~NT(mjJBKU+{6v zHa}sD&)^CD_q)+Cx5wydnTaC8 z3XB|Lt%_hnzISRsY>WZotS9cJ>k;h~FuajP41nR$0hHfZdX603Hwd>0KR^I-0WZK; zdvpNAfC%I_|1;gZd;eZy5HVIAPJS1UAe^1a@3p&3Ry~ymRA;LwiOosZM(^wKyfGjj zQ3tO8Y(OVh((5hv>hU?$#zJY{dBs~Nga^0?1 zKX)jB7;CIdey58hNG;^|<=xtAf~6q_drFhMB4@0_zq_!~Fg>p-kXG_L*AHiy6y4@_ zUfH2GLe353l^60iB0!ob%;q5w6w_I(qkNAS?D`j(y@4Q~oc;#cWT*qaAJ3pUg@&MC zB4Gc#CA&g89bJ|9VHr3X|8wuRf{FvM z@Q9+x*N4^(+49;RgK8|A|QhFo<6Q){ZR$={%P}e{Y8Eth5F?)fedXIf&OMBtff@3|K&>gPY&F6Qjo$H z#!M#fpX?ovwp`Mg4bj!TaP0KEb3F0{LN6?ci=oR~aw5+r{4Cqam>XpeZTz}QpbDR+ z_uNy!%`eRxpL*r^Vu7Y>NP|Sx!^Osm&5V#2G6jl&8FfL@@=t7}Kax+t@okY+$UuLX zfHTeTTcVe1hJC&kNZ#*<~jtGOCM38 zs;VpRe4oLoK6^uH-@FMZjy{12lT*R550N?A6nLwUJQ~y%v`3o*RtK)1z04*4p~$s( z2eIi>G2D1*?IS|&ii(CfrEAxPDVY`~^*O3|EMHm8jVt>ic=x5tyrtZe@e`jbwt+cp z;O=L@@vJa4y6-ZtmZ930SA43d?01Ein+Tkd0X2L%iyHZhSBB~hByHNcF4v!)sy+hk zTx?U2boVmEaX-3p{!U-9{*XsPLW=X_{D~uRIuzHD!D|s0GM}<|%TLt88o4;TH{2zY zEtNg?sFj+`TJgl~)J7;z7%K&&8o2u&d|F^$89UN3+sfCNG>Wp$LTqU&PZ)L7I~-p0 zWyap0_x#lNI`^Y_nbfMdUHIGES%P9~_VVNnw^%7ahHCxcK9%+>R8E=FTXVuZ&$=K- za_oiOJ?u*nJBtA}?P8%9Ja$EeUkQ(kI?EORQ5P z@B(-c(Gn{iBBxU{U!l9jEH?kqtfV4BMNc}3=YHefnn(&e8(09MnBRsB`>2CD8ZjADd zpUUw)?hER+TDE&a1z!FY!TVR=)5zqzU&8429nO@LSN%AVs^-T0`nayPh57qC_D(#$ zE{*sZ4%l9U`Ir%WjNvU0AI@s~6#Ca^eLY~kPNlvt;rabRL>sI_h}_LWtCC^K-1%bG zrQ`5~LwDn_dXMiZ%mH(+SMilR4f%*9Fx?V>(4b!d7C(2+*+-C;LAkVB*g)ywkQlo} zLHuzy{>t1G#)@7cA~bVo(L}$;)K5`dX{Ui{T$>jT2?_T7!f87wMb(W4$q&n?;-rb^+i>J8QhQYqdIH5yi z`>I9U!0~Oz&xg0kJjN{zqoVqsi7aL>7Xz8AOQ@OLQTHt0ZOa}qb&RymtEMP;Vfo6E z-C)45P3}E!v~INPq2=~31JMvpz0HF20y%%S4k3jGJO3YhZygo&+BW(R0)jM3x3q+) zq%*Mk-xl&X-TFtIU04pD1p11bKV6%O9$F>=$GNUHU+$G%NH3 z4C|^RFn4f`(&x_oywv?T;5yy|q3ycBj_~eE3lyESgDp$-B-2RT71dPOJM4BQ3}_DQ zIx>D*f*ctk|bYOLp{ z3GLp`W|!S(F7x5ePkAnSXvZMalSDzvO`_rbv&Q@WwL0DF;(&Aw!Alp<=6U|X_4}#v z@l3c{1B2j1V*k$nZ z{r&v2a=V#R`6InE8=A^2;JoPdv~Wcs=q{S#EP6QpN@jmI07v#OG11ZXx22~UA3;)+ zsQCV&;p%7A2h`pcuPc@@`~qX6iO&*Ilp*O2ozw*KAPqw5Y%MKH3_5H+NKVI6K^p0U zS8{gB1-IH%6C1X!#^$!zU40ArVwNpOeFsB&BdtM-qvM)jM2R;R!@TAcQpJ;Ls<~2U zUr?TKCy5{^2%reWx57{HDz#CVnaDm6l0J9=T`~nEMQ(}KZ{6cSSROY@?A};5Mv^7Y z0ph_V@tGjG1N_ZmkaYqZqyS(MHbEA&w=*3&tp^RI-%50q15*k(K~QDj#Qa;2I#Q(? ztMuS+6#aXrpM30Xs9bqT9Dv19VuVV@u`rC47*B}FC^gVC`lMw{bT!qcu5y5GP zqvs@7$3athPHN7|useT5W$o(}GVGun-Fb&THCe^$YmhFt08k%jPLH?pj&YbFQU3kj zBXiI`y8(#56JRouo8mU>N zunYuUcFwYJG|WGaoy#=R`056NDMqsIqu0-gn*0NWaB%fnxPAtqjbKnS?lpkvfCDSgDcF7>H8gDd4LL24M3-<6! z3SJQ>v;i7E+gV@vzqeF((;2nkziZ!}^{4-~@Aw<1PTYHUVdO>@+GJgJnYZtK8stjX zm0lou52L-n#E=lrUW7jUHkzb}hy*WE1)@!xYbBV#)>}eNPiS#tQh!2U@!V7wM+3Tz zdd1y^_YQ+s2S$hV6G_YyL;~&%@L9`>}jx`!5r88d;-FO4lr?D_!giAEfGP_f~8 z+!`$H5pIUWyOkd1EkljD#X|VRH*X5bYWCP?1l}f?{rfYYWOml+`{N1z@m2tP`>a9t z`xBh{qX76;Zt|lj3I9m|eCrneS(ZqAFN=O{IsR|I5YWjYeVWXNn;TO)ocDF$i$PZT z%fmh*!h1gDX1(ZpnUAsZjHloh&Nn8flwaxJzOj9?o_WX zBAlU|sOXDIt82cbS)VEFzOFyi;OgFEh=}z`D@Vvh+d8>VS$vRBf$s}_ zW$Q5nMIb_A^0{$r%~1TwB`tDo`2Jg4H||Q&t&$FO8b8^ERu7u~$PeAEf4>#d{(t@O z|Gb|1KhxX%i${X%7m^H&6s+>~lpd7IYF2>5a}8^g2ER$XegMc$+s$>y&MUUIneyBz z)CqDzAeasM+E*ioHuk278Xm*V0!$TMc`jG#@@$Yzq+>Uf-{rjuh2wbTC|WBjBf^8$ zCObB$CwP>L_2;+8>_xXlQZ8*gzbPb!i#~``KP=8@DUObaK1~cN6bN;&IiS+~d~GI} zhn1`iW54G(6Iq^4OdB5?7_m7wP@+g3%7HRCygp89zSzbr#~7Js*FE6hCe&i9jWyG$ z35IO4X zdCz{V2Ksv5;rKVW`72bgpkjr5M==7k($}dh6Kg3G%s4Y2bENDEgrjNgdG&f-Q`@Wk zdkh9L`ya!T{>1mZel&TgG&9twpg zx1F#kk1m}~8c!cj+?!>M$~Cqc?qdtE9c|0}!sq&`mGG$5rlK9gBpD;D6&8)X%fT7c zE9#IkwtN9h41M0nt=z3(ef9PMPC*w*DBbo26n9k}74S%29Q@l9)gAqRQB`fe07I{S zHNSJGJf*ktYy6sfkpXvNbY{)uTlziM&={OH%s$4=Ao>f)NVY=wDpANL2 z(tC&|c9ik;5RXkw#tVO)oKqegQhXtBeXm!XyTtv91_lBF>j(xRzix zKfL6S+JmS6te4k^+9bLAhR6M*pkYNQvC)YT)#gi2KLlx9X}UR6aObi3&^V(Q$`n)o z%ggn+OcJI(_N@Fx{deY>ch{oP3%szq6#qWd{vYUXUOWkXMh+xfaQG?F9_Ts%jSoXJ zwnvAch*M$m|K9Gu-(%+AM-aeswAfkca9qp9{%;czDj8aRGYJ)S>UN1$U6bY-_4;-{ zfFCYXqT7F-&kAkX78IXd@p1ldh>iW`asTO~su4VYJ+vjYh(m>1w#D6BR_J8KogF=B zYpO933u$5kU$$_t2gweFnr2wU_#^9k8<1QFgG~QwT?ad7XN$`EkU+$Cn|*MRmAkE^ zk5_M48qP`%^*eJO?zGZM|C`g%cdFIdO&=^tttyF0Zk_5kPI4fFvn*@5uNy6sQ|WUo zk+~34OoUih7oDfXtnzs8XykEy)~bgDDLf?~rBXR?BAwH0UBLa=FV*VN@y8y2$_vGj znN>tJ4ng9~@8q}Yf<*;qkWTn|!?b#jLuUijUU6}Tu=Xl&P`1+$LC)8p-|5|5C%Z}3 zI4av8-`}y(uW)70<)Lo)U|bnDhEWioKXVX2{AIERLH)g@@A5v6%im4;JtG_P)ODK` zQ}0(?t%{M|{tBI79n_#u3)!k`i7+f7F(5E88jyW!ma#%5^V}!3XVEJXeywW8^ihPG z+|&GWw813W)gXj{b|PuXF+Jh(suSUhS(TEBm0;ov_Q*qZ0Ve$CZU^1Z*4-DL)(U^@ z_Y|C&FmC=((&aa3N6y-@Fr&L5!C|W@q7%b#QPyrUhbJkd2W>Sj*3VIK9jj&d;99}U z+gg=AKGnJH?u@OYO%jqM_V(v*;5*ZieXJ}UV6Ciu+2WC9AU5B3DT-_jQ+gvSD|4Kx zXDi`ds-^qmce6UEJ`X#)bDbn3W!z7DV`y?Vgl-W?!Li&|*4baiQtIU4t7jkSAHDj138R|aoM zcHX^P9i(F2;r_Ushs4!Z7g;pxv1(yb)n81@N~TX~=9hYG*h#=lNs~z{_rzq=Zp|i` z@rJO!EQKiu&!oGBhb{C~V-ma`9uYk96g*f)Z?N)2w2&BY_sb}2I)^+>aw4^hl_C=r zn-hEDDym~eWjZL%6&m`Qs0Ww5`qfibby*yOf+nBm9$8|;!5OT<$)gq#g^qyVFP)HI zBKhe+s7pHC)#Gm8LZpX|;YK<{!AUfquUibaf;;@l9K6IrVf+CYUiG(;!k^CkA7p{{ zg_M)aThGE>SmrFi+S$wZQ`)|Kbxzs!F6NP4qWi{D%CtSaC^NuQ&ZOL85|rCwd6}_2R;bWp{!oT<(yfTc7r;VwM@&7lc+sOz1tr zA3f5Rl~e6#!XW;(bm1(0p6J#Yiq;O$%oYzQ4IyUwP8*5crMI*upET>&lI&#+j6ot( zWKPLKl!2=x{>BPDX=`f-Hk;pTBY7cRjfm&IxgVzQC(Mb}27skY8nt-2(2`y$UANl6G(;_RnDfoA-2HhAk9sb1BP?pfg2841#8t z&$YM+vfLTkixtY*L-0M( z&cef<+sP$S#Uh=l^AjiBYHcg&kNmn|hl+9wG-fJqhi8tXX&cRm-kd!SEO;5NJbc^3 z%!W)P&G4Ph{-lpUq6Sko>7a(7K(CR$g0&N#Ljy;&YZ}-Ny}rY7?mn|9hOM%fwH&LJ z8Oh8pm0}66{JAfRywM{|c;bJ9sGca(oN_%HwOkO?(?XRQctT0$RzEt zGCwIVELDt%I1q^P?XAG!;JK)jhBR(Tpx!zW_RqH>$mdLLAxLM}(WX#JiqznJCBy*1 zcRwGUybR~E=k}|M`B@ZSCQk{y9LN~zoWib&{(?z)RYc9F{`PLepvdPmpM{UM)ii0Zh>tp zM8P_34AeT&?W~k`UK7K{FGpX~Rei?CU7smdP&jLNb=F$_beERSTwkD%>lrjs3XIRi z%Z?b*Foo7E#l*n#OQXq>XA+4D>K=xsI!`1N99DIy~6;Stau6LWa=z-!9v(r6G8>2^y0l|Svv0P za69$$3#7NY7ggV>xY-o%mQ_-h)?Y>Uub=x0F_BQ_402-WElKQol za;8U~z5$2D5ueM4=uZ(ajN1Y#6dYa^2bs$*?&$+}_-U_j-I{x#m<%e(je z81y)*G%MIK%FMKzh8nzpu9F%ziPAioTh=2sSRqV%7s$7(xSl5igQH>i)=z~v>~2bu zFBLdi*0Q$u_+LgJIaUDl(1D?=PSob9)*{M^BW!s2PZ{B2_EKFC<*4O* zK@|@ivJ7-Tv1}y7#G<{_(VCX0F!3!%3v)eTKc^(8R??rxT3ho*+7`RBaB&oZ#T?}g znUC_(DV%c6RW}yyxm!4p-^0#NN%{4`N?+!M-EoyH(!|9Ty`E6VTw3G1Vcod$tb=6y z6_+lUYTdr|^t`}f$g?UHO8~_(1}?kp%zj}O=lZ+$YmHKipP>=*M`jX!1`nAoHPMrt z&$ZzGnwiO88W)?<;v}!{h|j8Vu4$7ovi|%{V|C6xtEeqDznQ*T>g7t>iOTZGk<+Ve zlz9E7@hY%MrX>!1^m`+WTYGtAl@C{pO(Q)76Z9LX1tWMHFLb<*B)aIObnzu^JZWr( zk>$t@d45_}5oUCbPDhq;uWKX^bH-PUE{CmX_%;n$Wi;enF6muIP~iMds6x9vx{7zBZ*eB|d`w}h{n`Ulg_ zi%9M0ZQXWQex8xhzp*Eh%(EZ%CWgiC19$s7sKG8e#oSI3J{4zTlm>#aW0l@N*%9wn z;h@GN_c=4tl&emJYvIMTVwn5mr%~(Zls!twHf48J%p=YOrF+f!i~(DN9BCnC`$6vs z4W8uVtFNk;=!C^*q$3`>_*W1=*^0%_Ak6n3LNF<6J2_ z@~^_2Ycoxjae}mdi9^cjhdoozq(MkhYiQyNEUHyJmmB2U{rFmdlx$kD+@wH~0xXa5 zZ_5MnxxX%tSa(vKdJjQD-&N$hoI6sU0OqPRL)Vf+aE-}6ui(^$>eZQ8sKsAcst>QPbb3OxL|10Tyb;R zJC$A!GL-URV~>YO#)a8=l0ImbR7gSTDEYx^nJuaFpUJZN)@Sd}7AYPzgpfGJ*@8}Y z0l{EXRN(4+_q?JpZfWv4KduMWs&hZIo>N-l9>nwoN@`u2HjMB`1P0#4H0Z z`L-TE?c*|k)cHW@6P{}iYYn_@9r|T|%9c2|=ZYtSm__un=a>RI6DaLzTh$xc_fMTs zJSAY?gN(R9F2{B>VKZauGjYh>#CSv;w8V8Le44`!ZUqga#}9BXy@H(yAGeHAYCbLT zRA~O##G5ro`Hks%My(oRngi-PafRseRvjq$O?j*kO;;RY%$L11`jwR7=F4s{k_uPTh$v7Y^6PPU`9&L@Y z`+1vD1;wXUw02vfvR$&_hsIyv4~=cQPe&MOVj zb9MDjn(1Tg7dcrt4nyHW^EhkNY9p=hAJfr?Ot`&!*3C1rVIopy-DY%MM{hImo$A)( z3X9Wt?t%|-j``w=jx&_1$#_fSc|p8GuImkay?98KnRVO7Nqj>dow#95UA)qai7%zC z)7S4sQyi9oZcg{Aj<1ehip_+!4`^!Xf`llU@Y(CMILhe-CaMwe;ysZry`7v8J#E{H^9R8Y3uR%ReF3o9xyBv-tWf)>X0P`=KSfo z8yZ{`Y#cdvEtMv|nPwWHvG%j_jhQ+}@}{$kfV*tZy}v;0*mAnmM%^HIe56r_p*v|ATJ59tj<{wq3Yd~u_Ix?z75B1K; z*6v}PJ;mC3|8F&2LiCQHrVFN9H^{H3gth*`ymjLQliP&0(RbwiO$ZHv*J^MTLIy~p zOA5AYj%7h&kKs2D3{l(U1mfBuN%x;R^z3DLuT^tfWsf3_m5PRq$bYN!sxbO@rI*&@ zY`0v!PZR^iZ#LC@Cc7LN;a=A?zP|g-vby~*%gTiYoP+Ru27dEAks8HjVnYSmvVhqH z%qPqlr>Y#@KEF7|wG8OoT6JicboX6~*(gWTqSF1 zsC=MXTA?wpYrgq_`7{ypTUoohyKu)~8bTB3*kTDG*a07c6s{}01hs$8Q@3ekI+EC1K zp_dP8mWFKG6(yz{4qe?-G$9%&F0RFoUjTYV*d*uuH@TLT7k}eGr=sG~AfNeK3XXh) zEk?!7Urno&nn5R|&3xE^WYAYkiEnqa?cmOP)$8hMVdVw(>ojtj-KajF~B-Dvh@9K!@b0Ok-ODH zHjiFe3g2~>PkLfnd2vJh4bF8*Dn~8+*7RBS4O4kh5xm~qSCO<*8kLK_q3^voPRNB{ z#ObRDBt#hbJuGdUzQ*iGjrc(o;(|hq=}%`y@?e1zu9c$)z8DV+w|{5>hQ6%uyl)&( z7Y|2QsMZc5+B}kFtkAlbV-6p2w$ZbzCAem;2*QVIhCA`eMA`*>zm`nDTpX~tCrP!d zkIz@)+WRZrP{^cKcJ(1#jfBj|%l zx&*$$XIuD|;3D!D&kj82bRn8D) Px4YNZe3;&tG@lXmu_DO?pPEs|?#=nD)97|R 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

;n6 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

!otTY_ANv zn_ia~?3c20wmvG%_<$8g|Fk@(|6Y5Q4QVH&BE++C>?}@sZU~|9lSv!MW}m*qWygOr z^RDePZtBw1V{1nO`IGSdAQ{Fb^0Js(5W&{;22ldI`bFI4;I91KRSt=s!Ls2W{m$Qp z%p4YMg~!XuF`LVkDrXA)X9r6jV?~4ALV0B)-&-q9n6(=zmK(9j8BfkcFdvj2`wW2G zOk6e}WOc$8v}Z0KtdcFljXvqg=0XhRj>HS64HXFWUPzzVPIal> z8~x`neY{xW>SSiGq+E|d-nAgTD`Qy`At{z=fwwi;UbD|^@rLCWpYybG9;v*#%UJHI zG9Oras0y4{%*9vNawBd+-kQ5WntBEa_-xyuql;RtiQU_ft?qzJoYVzr(DYT zLA~1tD_=6vv2so8nL4qe2pcu=?T3EdczXl?!8EvU&spc7rn&R)ABtFZURTxnvyP}f zGtTkVZBWk*3*CI6Vr{&E5zeiz0X(ZDQbM(K09NU9hf5{;?s-${a*82lnCGIXC|#w8 zDVBr`)sR?NhfbO1Pu~F>B${}SJ(~*CrzHOt%uld_x4b&Bu>8SpWD>l;---cs_bTUS+VLIA`6W z^5?{_^!19cMNY9eq22PlEDeLF4%;3^ImR&kPLQK<5r$w^fhmowx{~R`r>yuB1)olV zQ70#+i5m?Sx}SlHzNGI}o`OzP1u0${!`tezL)GM5d{6!40<;1ahr}VFSXYA6wg$S_ zW*?h58Ctd#dnSJ5`cQuSl-lxOtuDVX|I#D+7>A0){|pBC-}2}F%dXA>T%wX=be3INWGG=Pxm{QzKb=Iv&kD*!cbO=%pOOLc zU%~F;Irs>Em8oi`FqLRUzh)byS87Td34{=3>saJVtXK&_u4I8@C+4e+HK_bMzH0fQ zfI@%lsyILu^wk7x4=ZjjDGo0?%;0RwR*pP9`VzdOjY%hiwwdWrdIhKozAM5DfeF)N zK8x`oh~s65HdlZ)2%W-P+QT;_!DpxQO_UeL$T5;|vlfn}2=}-yFEn2H!DHN0wom<( z_}9Ro-bU@C+6$u0s99P5?nwBw|LrbTej!<&~I4ONzN zp6YvRjH_^;DvNyD;3D;sCZE8_-8ZR~Bm3xj#~q4EN8sScUQWJ)K6I4!__?^6JhrBc zv~1Mou>?0<<;}D-lxEta@|goK$$*oua~h;7n&1qp}kR^%62MeG~`9DYn z|8JkW013|M$Dx%&x%+LZJB^iX-o?`kL6ko2ZtPV62{Q(h?{Kwvw_gAYW#<`J`bz&&xvnB=~!7F0>KlS zylZ7E;ETR&hPj4L;UN=>*#_}F$LIFKZCte#xiK`Gwu3IS4p(IqMJJN$yXReCkYabyCKk-cQ%pR@}o-TVCI2CXb zO&K5{xsYYIPO@DKcPxM&OaE-kE_eAv zGCZFnj92z&P~?8G3N^jMzAVC($21^e&+tsFl!9)&Lr(BPK?bo6yLCS$Ts`FGcwesY zd673ZF*BQR`pc730d88mrNKrAGq;Ucd$lml<*F)TqM=ZhZ1GLHSTE9H1kj^pu>HrF zLn&C{{Zw8YF?~y`vvvf%!=7j_%bDQLd^XqjAu_V1to43HKW?k!22UYg#mE=0r?y5g zcV`YKH9poJXA~DX73}N!r2H{+uqRe!)kq?hSHtpgOfECDH&CrAvC^-sDtI=i@2s4i zPE+1bXEHBges(cH=`j(JQq>_C=QMSFN{uKct1*j+ao5v~o_4ZOUU1pL1PwMK`u z^ewp8hY>$tmkj1QSz>OM$2p79@<)w#!9Sz0T5IPxx)}OkzVcb--8HFiy%v2sz)Ued z1eqQb`F*vg0=g04kp8rcwEj*lxp@goH>iWu+|$Jf`CbuvnlTncrspP>%xKH;DDY`{4@f_{@_fbw-RTb(Z8P4tAO>Ko9o66gB>pz5X z>MG3my(l|KvaR>lQnC-jsKN%hWYYcWWa}u0mLR_ZCy(yxmhd7q1M{;@H)%tbfqf7}9ch{hhh2mV=Y3$ajxdpu(<|uLR2=7kaOuFy zif&>A?C!>7+E0)yf)go9Yztqr6ZR(|WYpC24I#wzr|BRNi()H7s$^*drzfv_l8eoQFu zHmJ(#Ex3yasNR^f>%61t<3@0=`AYe32-I<9#jY(SE`4LnR0B29>T7G+)W@~`Nt}Q`W}!qk2+T4-*&L2k z+Ei>f#aTa8;i_d9Ulzi&5I+M8&?}UHO$QBfA_Ns0I?m!M3*~Dm9t|v+VPoQVie>Je zRdux-vkx{eP;%9m*-KG$P36yg|01L>}oyca+DN`jGTv%lQ)zohVfykNVDrAcYi9)F+2z$(E1cP0_0Q{yKXU z-kEUt8*tM3IqcA|NjGbj^=X5{x7vx(l!;Bb;Gya%z^1-x_ zKN!uKaNlS>4oK#Z_H9<<+n}hs&P!%1^c<4E^-=H0lZ!5)Nr%f$N8|kCLt(GB7ds7e zx}11q1fFAP>mc;?ty*Kq3u92!n|w}BUEt$EBU-%Q#g+4Ojen|w0p2ggI(4NKFvidk zbz!L3|LAkD8aCrH#bzEbn2*2e2KB*kPoIGcj2jmM=#3BtC)3B!hFT*zav5jrPclyZ zTUUE>KFvXN{hZLRrq9NlTzr!FhTI$vMkS0KAb^L9F7!ERT*kkL?7UwyjusbXVQ--y z$8uXL&i}^vtpWbLz|9wr`PG|YsM^yr?7MlOC8|>KB6dEGQOkRB3t%sW(^0@&-$-8R zbb5SL#l&cr?pHgAT7`%e8Z7qGvd${PL=+&vg z2x(Ies$3$M_iDI{B%Q`Nw zF4r-=+k$+n8VNXd=_30JN~q|*8vYC7RXq}}otxnA`+TlIl=9VrUS#YeP+I;dy$g5@ z*4I&u?%F0QR7yr2sWtVqMFp4{x}?9=5$~{&h@5-i{+llsqJ2rWFlFeUW`#tqS-JE| zrQ|()H~$Ng()kOzInsjGHbiMBiR)<$$$tPv*~Th{>&`*y@?()X!oEbY%Px01>PTh` zl%M*;!(Y(hhkwidl~ZbmX0{o(kJ#h3zDu>~We)3YC+UXr&|SbFr>8(3BLs#LsoO;X zd*Z8d>wBRglpkPkJ6$aJx2FJXnYUr$sqwlUuVKggFMeBPnQ_=xRS}mz@*A3(KTR$V zP)IzBc=XOk^JQFq6uU-x0Mo=ZQ_Fs<+wBx|l1wfzZaWgd{Kp!1HIg+E8z#pd2Kp0f z+|7H1lgA3?I_oG}SXfH7Pg7CBBCOKXWS^yeNOlX_4;eF={zSAdRMsg`vmUwi7bKQ? z;_Yypp_g}&?){1Yn|3amF4|1IV_Bb=Mu^90Hwr^G3o%+?XRsdXzUV%TH%3s3H-mrB z62l(s%_xzwS?Li#89h2p+Pzy)4^iKjORbjN5++tMM@5w>Z)`RH=si?zhBJSAnyVY6 zoBs{*z%R3!P8iGW@gV-1EP$r5v8^r2($=iiKM%I+tTp55GJAKm=Xd{82qn7EpMh z)X+bozGT{6YFnq3t(Glm$fk)~Q2|ShdI(Geq4NxVkB2dqz(g1Y=L`+yY#kHcv}-8r zo@$9PO$j(+FycM+jry21LDYOk7?}ozd}(ki{tGHuJhb<6BU@s;WmtW&nzbmwv+>Nk z+S%aujPZuI!2Y+i@NbKMLDc^7(CLQMAP*joClZqW-W_sGEAu_Ouehg^ASoEen| zF@X<;qt0bK(tctA9zm71L5+*XBYIrlSk3;lncr$xBi)M)%jW)k%DJEur6b(FMq%#6V=siR@NCD|P4)cCvS)J`|{!YT6*+m8r5{ zX;5-_k<~QN5GHYnWasMN6FR4;EDEBda-Gh3_%>hE&#*JEM^zXBoJgQYwT+VJ4X;s0 z;wUai+eKzsEdH2A8U=CaJ_QVJu^RJE72DHXjBz{I)IWY!1SSvPl&zmdF8u{f^skp7 zGyqpoRy7i-dIt$bZ^8wHr0-_`f~eHJ9iX_k4fnjh?!kNs6zER33liB_ z6w;xlGXgCQ{fXvY{#(xsN!FjDyNhR{gH3WyanNYZH;#n|P3XHiySmNtZ6Q`kYwRLh z`jkrgiUj?h#($27sXfZN@Bv%O#sdgpH`JSoz6D5K;Uf04L|MNTy)-U__=o(^27F9I zrMD=!A3UXpb&k>8zN<2y5Qa%FF36djNK!8izlLVYHe}vsT&$A4UFgt0E73cve2DS! zU+Tj#Bo=EM*0RMs9$)#20k76uV7ZrycmA`T_7Mq2=~tLyzgTyFs42Le3>$xZE5(8c z>8V4QsN*g#wk_TAn{*yI?1q|im^$JoU1Yez z(Og&gQ;BHn2!)smkLnaXH*Vk^|gIA9@eGf+pT11qfx(( z%lQkEZd$*&f((9VE;8E|xwmY+RY%uA38wtJ3r_d%?gKNUa;WH&>>aKF*#Mx{TCKnK z?AIV64o3 z(_>5H@v%m?8L7XZ6i~FVt^Lc2S`!X+Cx)+y%%B2Ra{7>7OwS5qMm;`zH=Fq-vE}{i zGsma{R;|&`Pld_|6tr%298$Bqt6E!Hv%bh|y6j5*64zBIv3=g=M)pP2wOxhZGuJlT z8eZ_Gd%>(JTK#Q?4O1MXez*r)W=-hg>eR3ee<9||!SJ2oI_?tKSF!HXdC5|$?zbaL zZJ7`pw9gm&z2zvNIF!(DdNl$`uj=r~HQt~k*mEy?!Wi2vtw#5pmKdL1MAMb_>_XRM|3)paQaQyz^VBV%gxvEUf-y{zks6CHEzlgf* z2I!OoyL;VtPb(?M;aJGPlK?>cl!t@HKXR!mK9Kzs@E7a$Em2eMq?L~DsD5^QPGR=d zRgrU+W++!WO!Npz>afY4W&M7>LsMsvVp74jP>x}^CMc%XY&O&9MpA^d{@*flq-|o8 z?BAp~ftnk+^kMa-AVludl3=Oy%FyA5e-;z8Jdg#`J-h30fWZe8<gggx4A!QhnpHiw~;44jS zs!?1xW5zL-@}}QE|68rAm;lde2(IJ?JJ*G#bxNZVliCpMw7fpR2(OC|l!NB$j8=0APv z|Hd)-eHF#kS7=`~9&Z3D>U4^DoF&zhqWW1e5&NJXlt<|Agy!lH^qD}K#p_o1!_c4K^$6#Lno9Q0USdD6W- z&(}q&i16!lU1F&A>0})C{mLfw&3mxI2qMu9cG_$`J~NQ^$FC}fuj%*}5Lp(BUsYvi z{oD;R1*R_xKh1?JI#RIk2RI3toOJ!m=7#$ZF1d7Gw&HG+KEZ_4I|Y-lc{BKFgmufA z|8@G~=0Y+30Vk(#P+YoS)YUjc)@tqF@Z3yJ<=8{V$)Kq@rNE%Yc3)-*I%;GJbFN)| z`(bcLflXgsviD9G*S}1m)HYcUybMh(@r4n!O3j&l6#DJznUbQW;P^e9;=0;BKRRkR z6!NnjPKA6qsRJA1x^iH+Tx0(37Dk9I%99Bn1|8qUH8eL9*}J?hM%Y6+JSi*U@@=mq zDPIP!K!{eGbNUIy@D|!M535lOg<#A z_2b7YNgrARH^PXMipzC8BuDtWtYXt96T2l2B@%3;jLXOac;5snM@BmF3Qkb&Z3gJP z`Ubji(o815g%q#o?H`Ip`j%Vg9cP9N`OO48vk`8h{0oZk5D|!8C6noR#c{-q{mjC{ zp(Jq~bvLNSK5vr`b^bqvmHv-oRySf_tf_WmA|imlJ-HV}4`gB48*MD>>pV3{xiXG)qS$Yqr(B5L>ZogJQps|({b-wS@hs1(kCid;M5J2w zpL_r7AKNabMtFC>;W677v@KiQswQLS8ADczH;x+GY$9Q!VH>}rfM%fqlXaHM!lN+x8lmxI!lFj*9UB-WcW^l5Il~mOMs|nr_&ae z_@hsH(TSdwBVU02t4W0vq;$!C@m2n2D>Ub6hYF047R+WWu5f13j*g|owY0Ms?A(V< z8IvX+!L;#_b#tb4wxRr1iWe+)%i(A+y{w+j+(N_~$IRP;_MIFnJAA&A4LAW3oo{)E2vc+n^6m91hn1Kjbe0AaY$5?8td_jh0K zQd^?8yO>XF;e8gguUQhn1HLawjC3WeHRg)RgzudC2|>n(T1>w=xi61JljGnKx zE=6~92ON=GEoH&n{4!(N})4AH#4B9)b&eYAy_#B%`^XS%sT+RHLwgp9L)ovbWrTqq8E z7aZZ`8xupx#hyhoS6PHe71lHP_#Kz@Q8Ht^%b`w}-VBEf$W>KSMTw!ky(R7=wVZTT=v7iWh`%ZnA-FTPhu|H>Ns?S!zp5kIp1JFwJH3{H7Hp^WjVez{-F?zwJO z%IrpIY#m{Va-l$C4(t?h)$|txl=|7Grv8Gq2<=hZu6Jt{f=V-^nl*z2D_2Zcf^)Wt zQ~RF3`tY~oUVR(|)&+{e{|=lEY+5cAW2>k>vmcJw(KhH>%f+Ct>|=? z%MlmI1pWMGnRwyNspWF;nmy-Ny(Rp!$irAejIR?tgkvt2;X<>cB}wI*M7wJ@ z%V-SUP_j&{B4=Jxyaf@5{a!((iX2IghLL+!HSBD-H$1x|BuDv(9fyv<+aPN7pvbm7q%Iq6(mpV~zFIqS)^%V$bDz=zX4HT@^JoM@>Hp zBmK!Oqh?nU0oi)w1^}CZuA`x#NP&I#-PqV@d5oqVIT88?aqW39OmqC8Oe|Fdy;YJ< zsd=`cRN{9%2j(a+s z<|VHZKIs!&(`JX9{}5Ow=(VKJu(~Lsj)`GIkv7TzO3-3VFXr{5lV+}HT>Q$;ra1qD ztcncD1T!ZW2XaR>W-RISQbBgQV=8{99dB>?ljZCbVE^+Z{y`eD#f|!v67J@EFW>h+ zk{W`I;=qsL21dk}zWb31kgXP** z;!jt^MLUOV<2gI~OUfx>n#gr%SbO&4W_t7t$oiKo9}s!F6}#N%d6*V~vZBqg@_tlt zeQbPlp_~|h9mk&j{bzF6!@%#)oz1}|mt!1KBq`s8$&|7D1Ct zdHDxazCZAUUnom|a+zr4`!z`QMB*D7Zf262l2pTCyI!@!5_a0F^>0%7f$t1eY(5`P zFERfrb|#Ox8slj8ygqtvyBU-HeGzBJ@~o&Q`9_#1WrFIQa6hBo8fr7uw>r85v{C3F z?7zz8vPQ&#OXkeMmP%x!8ec!kyZW=&)7TUI1@(=1yVniz1ZltdLbTYaT|cm7b`MUW6oXrSUlzXF|En$pV;s1$p@15YD;wWO9PLO z*9y#EwnALiu@Z&0%_!U?S z^&0SIEtn%i9pf5hm1iLJoEdb&zgO<-o1H#Nsu!6SKgNnS4j4jrr0V#6JRve*ItfHH zTnE%X$|`^E5^}5%+3^>|K8oo-_Gbddb{t#1Sdrhn-u-d#$XsIj@vklhOG>7Vnnz86 z*au!1+7kb|9R==gInz1!(_?Y%@UinV=tZ;FCrO1$<`f_WXk{oN<&@rfW9_)s_&#Q<@C>+_|)$J?YG$yE4rDTB-e|E}ySK7{Fe`Csbj ziId@G53g_wYA{F|l}D@_XJk54j5jgsgVpKc8?C^;IvMb-rmSYZs%`THiamdyX;zwl zWGFxXW0^52H7WliFcS?&Q)~d*cdSFm4U8KlY7~DAT(uXSSg1}w_&*tHd^T3y8+O+8b*UZLge}R>^LupJ z23-in{^=cb%TCeJAzDMIY?6g{SXK`e?9XRpdhs!e*heI4;qZAAsPF6Fbr0p>+O&68`5_NUA&|!uq7ww^e%ba^`ZSH@vRX!+#8#M= zET`X7m*GM!Y)vKj%vCu*l@W{FQHqGKhLxIe}a4A!+N!lHX$ev89V>5^Ru<&FuUfXB78$$j;j zU(jR}fY`^9S}-Q%mN$!xAn`o{Ucw)hg!)N(RhlXYq|WE5RN&xd)@TGO(&%|rM>g!t zaugbW>iZpAVHMi}tTI#8l-MAGf|rmeKU0TIr$2`u=JJ;6zro^mfKbV?{cNbkUp)R3 zYfHq5AMs`<_fRUCaK;C+L<3q;DvZ;}Rk6KDBqP6%bS8&%(MvM6=V zR*^1IDbjkQgY?Q+&0`YBAGvhnA~mYO(JEPjS?CU|oQ$EIONy(0S8T5G8~ir_F?7$* z{x67uETa2}0+=lGGg2Bc$aMtzrK3h~*6F8ex${j>(rbE#d&=H9_}Q-{acQ0HMLed(>pc zaacpmA&M$$Z8pJxNuM#Dw%(pGJS>2TtA-M%ui6 z*BVK-s59K^_%4RlCbBl+P>e;H=Rc>zWQ2g4nnTJ9}<%Q;x&*o7a*BFz6m0kcJH~hczalQTrAD1h>(zXqi z-F&CL;-ynD@V0grGp-=xtUHdDb>7L{(4X^Clvp{P^JFlW=-N9}=}$YAZ}u&$1VIdo zb@@1h6l=pAE9gjWx63v>(&_!|IJlNe(7AuU?<{#8^{Vt=X<`56BfwBL;&WK)D?Q|@|==vVRrAkT; z4e;jM9P900d9_$F{>DgQvDpry@h7YSD*7na+A~Nv)4ZVP3v--&kybuMAGTeJQv|vV zhG!H!4Uq*WYJgV_Y`mo8TIb(Mj476CZ`&o`73W)8(%>vxhqB52!v$KWRh8G3vt4}#C-@J3>6~Udol0e6%*!+hO zuN-wgL5lpO{sb`%_{H02zBFB5mveAZ(edf)v0~4FT)i)8?mjG;_IH{r{50r}=rGPz zD(ZC{=GY)=>)5Ujy71l1B;d2D(YsuV+VN;?OojHcKI5-3X~7WO9EH=tEO)X!zH_6? z2vla<-Np^d$5UY9_cYV|Trh{mQyL;pp${jO`0a*@iDP(YsjIa=twUDKg7(*7>8kbBtjde${s9LHBvaJA7*V$Xns)<}Zi|=5+r= zO>1ky*E#3lzQ@g&{4UY_+X};vPbz55cy2d@MxIs09SR%L$d~{zpn&tE`%?74mo8Rp zyxPsHXrK1E@X}8sF$EG$I?hif!tF#u66QgtGcUu<|Lj$>o!t!3xJXz#Kp_+ee}VS) zT2wrTnsSm`&}=X^`LHDTj#d!SEgXWhTOzv_UN#pxfPY(wq?O0A+oa(STDjLS)6XuK z1J9ifaMOYV1ZF#AH_RR<{Lbyrq=5%RBDOXj-dqfLiIv1w79d=tqc2koe>`6wk7N>e zy8vm|PKG4-4?M@Eu_O)Oc<@vw2CJyfTLyjfZE0?>`Ge!CVEVIF9uZlty6Hp=cI=an z+VN-my<&*=0$&_;y3LsT7o>j&=-B@JL4+&L3PyJVeGplljvreGxwT1!v+hW&-%VCeTyf-tw}>12S%<Y02j#k;4~XbG|vSNMm#B@P<*IqFJ|0%*e9Su@zvVq zMST?d@MR7m()P?N!U=#LA!QU4o}+Ix#)oq zayj7&{%+zrucuBmr)Ek%@tJ%sx%*R!YZ_^v&sAO|kgawdyZH@`>9aTwX52SPA0oYO zB0mW96lYP%tkh`q`ZizbQ&ZG)E06V|BVo*{`pp>5RH61t&&JaF22U?3Ws*kmxZ4fLnR68An6Cw;T$ zW%gQ9hAtM({K#O-&jn7bc!s{%RO#gVs)LL1o{inyYGv1r`zF*wXj)>vW|V<^bxJ=0 zsMG*yTjF~lHkO`E+%HJqD+e+DL5f!`A<|^(=RYS|0H&?IdJr{U;xK01T4Sk+Y$3SL z=~2MMl2HAl3NJqSa=J7|QY`lvv8dglV~oo6{T^GX=frEdoX&lIiG%z@xD#rHi84pN zSESo?cv8G{RCe(N2cEnJrngpl*^i}+ay^Ww6I>>=dL((rxhmn;{$vA7#mO#tLoXXs z`p?*hSl703A06=U$xP(3RHB)$*i-{0d1wG4US*bn^5)C@(zGUp?&n0M`qoDXr(s>l zrg~)Jo)p?lhjzj85aiM2J|#zmF3zv5U79DX!BP!I922keTXR5&Y*TWC*o0B`AI`$8 z!pBUXdK^4WO7=}4xk#Hik1=2EY1pKhEhndAap)&c>vWi=wo5#WoRylIYHDvh4W@^69ZIP$hHOWze& zQ+tlrx=PMWnoAMkea;7zT`A0I;FE*-I!4y_1ZaIAZ<4U7$tgLKeqihP|0sGVeRMPr zH{@+M>Iu;Kb%JrIHKVURTMqgq|Aa9_k(kY3bwBZE!tzSb52=IOkh{4FKF;>$DoHoJ zW-0Re^ys&z*plIlS7il1RkEGbBntrX*ra%xhrjC*l`VakT&lHZi&jGGiK_Nl=aHxOm%=oIlx-$xDAN@`#XnetlpfOl%>(k%n(mxveIY^AmW* zSn)uKi758RTFUO>y)M!boZz9bFkK6lfhtV*`m5N z&M>Wr<4Y^?#IMf7SeoKfPG?^IM1BTNq>Ve@J`8b`LTD8|_VA^8iP)z<{0l|~CJO}+Q&gkUo;doLU(;iQ5mR1ek#)-$L z*YvGW6P>U}&Pg}W zY7j$&5bt>JpL6%!_v~}deeQE^*+1raX4cFzv*uf~X07$U@ArL7*B4CAO{>gnwWaBI zX>l^bua*q1w9Waby@WGguQk*MdAs=+eDLxvh97%+YbGL5ru&nXV0?f$La)N6AC?{r z3FxC*VB?y$KE|WR6`nQG#|ELTkLrU5DVfX@ODTwU)!0^*5t7$7>FoBzz_R2%l!Oyf ziZT3n>alnz}}J<=n#ANDK$Q15aGmLu^B}L+D|3U{Eyz`$BnH^3x?e zBTl2tq-*fu$xgT-JpIJM=aKI?FcfV^uEL535>kD$11#|Kg;I6pp$ESDaZ*yh=m_nh zN~pUB#(v*sc>Mq+lw1d9ngEXQ?B#8idSwiaM*B`Y+F4VdU~q&4VnQQ*9aGlQrtVfz zRqnDkt!n!|W2c7=!vUpd+CvkF|O zfakUSFzB|~FQWBpGgGi9^f4JNACA~iK)52={RX9$ILVI^D-%yDn89zm>S*KY9W||a9kq1+hCC&ENSEPq^jcGGh!Tc5S7@Hcgf-hakYvnV?=aRiZ>1yi?`_kJd*1r6}61*9(NBY8!;T77~`- zlO<9fW+qG*+DNdJ^TbiQYL~oK1=h_=Vs?7i!QcjlTV~B4#V-0rE zy4phJ>G9y|By9=-bIEv55;h!n)fs}P?tXz5TuFGhe^5h#t7alfG9HXz#HSy9TWcs4 z>i1fi)Fa}Fma)@WZC(`|M%FqwwTclAwtdwseVzU+m9K5q2aswUAxxUf`om>bC?GOGH$Y&}KfTB$R-jO3V#N>ss6i4kP z(llJzTQ5sQky7j+S23(L^JaIpMTRN{T?_4>0aNEV=HukTB~k7@F)jrk<#WNx0~Gf^If7 zm_Sw8MOo>y?=NVq&Vq?+bXF^JD35`V-(f6n>yq}}{%YZRlDTh0XX4DtJ7y zDj5w$ED^d*jPk2*k^;y?rI!II)}J5=dw#hmD^J#g}rh99f0klQpaQVt8(6?Bvw#2x=zqLD()l2Y>)?t20xNecBL;Pxi1ho3*uvc?Zog}nH6bM{dO zSM17;hf_OBgoy*hWv(WG=L{*e%j2|%tr%4wk# F>p7|ebJvB*(lW)Z0kSm#Nl!3 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 literal 0 HcmV?d00001 diff --git a/docs/source/models/pepnet.md b/docs/source/models/pepnet.md new file mode 100644 index 00000000..617422c8 --- /dev/null +++ b/docs/source/models/pepnet.md @@ -0,0 +1,121 @@ +# PEPNet + +## 简介 + +PEPNet将带有个性化先验信息的特征作为输入,通过门控机制,来动态地缩放底层网络-embedding layer和顶层网络-DNN隐藏层单元,分别称之为场景特定的EPNet和任务特定的PPNet: + +- Embedding Personalized Network (EPNet) 为底层网络添加场景特定的个性化信息来生成个性化embedding门控,用于执行来自多个场景的原始embedding选择,以生成个性化的embedding +- Parameter Personalized Network (PPNet) 将用户和items的个性化信息与每一个task tower的DNN的输入进行拼接来获得个性化的门控分数,然后采用element-wise product应用到DNN的隐藏层单元上,来个性化优化DNN的参数。 + +PEPNet的整体结构如下图所示,可以看到,核心的组件便是这三个:Gate NU(门控网络单元)、Embedding Personalized Network (EPNet)、Parameter Personalized Network (PPNet) +![pepnet.jpg](../../images/models/pepnet.jpg) + +## 模型配置 + +```protobuf +model_config: { + feature_groups: { + group_name: 'all' + feature_names: 'user_id' + feature_names: 'cms_segid' + feature_names: 'cms_group_id' + feature_names: 'age_level' + feature_names: 'pvalue_level' + feature_names: 'shopping_level' + feature_names: 'occupation' + feature_names: 'new_user_class_level' + feature_names: 'adgroup_id' + feature_names: 'cate_id' + feature_names: 'campaign_id' + feature_names: 'customer' + feature_names: 'brand' + feature_names: 'pid' + feature_names: 'tag_category_list' + feature_names: 'tag_brand_list' + feature_names: 'price' + wide_deep: DEEP + } + feature_groups: { + group_name: 'domain' + feature_names: 'occupation' + wide_deep: DEEP + } + feature_groups: { + group_name: 'uia' + feature_names: 'user_id' + feature_names: 'adgroup_id' + wide_deep: DEEP + } + pepnet { + main_group_name: "all" + domain_group_name: "domain" + epnet_hidden_unit: 128, + uia_group_name: "uia" + ppnet_hidden_units: [512, 256] + ppnet_dropout_ratio: [0.1, 0.1] + task_towers { + tower_name: "ctr" + label_name: "clk" + mlp { + hidden_units: [256, 128, 64] + } + metrics { + auc {} + } + losses { + binary_cross_entropy {} + } + } + task_towers { + tower_name: "cvr" + label_name: "buy" + mlp { + hidden_units: [256, 128, 64] + } + metrics { + auc { + thresholds: 1000 + } + } + losses { + binary_cross_entropy {} + } + } + } +} +``` + +- feature_groups: 特征组 + + - 通常情况下有3个feature_group: 名称自定义,根据pepnet的配置,分为3类:all, domain, uia,其中domain和uia是可选配置,根据需求进行配置。 + - wide_deep: pepnet模型使用的都是Deep features, 所以都设置成DEEP + +- pepnet: pepnet模型相关的参数 + + - main_group_name: 主特征组名称,和feature_groups中的group_name对应 + - domain_group_name: domain特征组名称,和feature_groups中的group_name对应,是epnet场景个性化部分的输入 + - epnet_hidden_unit: epnet的gateGu的隐层设置,一般介于domain的dim和主特征组dim之间 + - uia_group_name: 用户和item的个性化信息,和feature_groups中的group_name对应,是ppnet用户-商品个性化部分的输入 + - ppnet_hidden_units: 个性化tower的隐藏层设置 + - task_towers: 根据任务数配置task_towers + - tower_name:TaskTower名 + - label_name: tower对应的label名 + - mlp: TaskTower的MLP参数配置 + - weight: 任务权重名 + - sample_weight_name: 样本权重列名 + - losses: 任务损失函数配置 + - metrics: 任务评估指标配置 + - task_space_indicator_label: 标识当前任务空间的目标名称,配合in_task_space_weight、out_task_space_weight使用。例如,对于cvr任务,可以设置task_space_indicator_label=clk,in_task_space_weight=1,out_task_space_weight=0,来使得cvr任务塔只在点击空间计算loss。 + - 注: in_task_space_weight和out_task_space_weight不影响loss权重的绝对值,权重会在batch维度被归一化。例如:in_task_space_weight=10,out_task_space_weight=1跟in_task_space_weight=1,out_task_space_weight=0.1是等价的。如需要提升这个task的loss权重的绝对值,需设置weight参数 + - in_task_space_weight: 对于task_space_indicator_label>0的样本会乘以该权重 + - out_task_space_weight: 对于task_space_indicator_label\<=0的样本会乘以该权重 + +## 模型输出 + +和其余多任务模型一样,每个塔的输出名为:"logits\_" / "probs\_" / "y\_" + tower_name +其中,logits/probs/y对应: sigmoid之前的值/概率/回归模型的预测值 +MMoE模型每个塔的指标为:指标名+ "\_" + tower_name + +## 参考论文 + +[PEPNet.pdf](https://arxiv.org/pdf/2302.01115) diff --git a/docs/source/models/rank.rst b/docs/source/models/rank.rst index 797b1223..67cfdab5 100644 --- a/docs/source/models/rank.rst +++ b/docs/source/models/rank.rst @@ -15,3 +15,4 @@ dcn_v2 xdeepfm wukong + pepnet diff --git a/tzrec/models/pepnet.py b/tzrec/models/pepnet.py new file mode 100644 index 00000000..1c1bd938 --- /dev/null +++ b/tzrec/models/pepnet.py @@ -0,0 +1,286 @@ +# Copyright (c) 2024, Alibaba Group; +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import Any, Dict, List, Optional, Union + +import torch +from torch import nn + +from tzrec.datasets.utils import Batch +from tzrec.features.feature import BaseFeature +from tzrec.models.multi_task_rank import MultiTaskRank +from tzrec.modules.activation import create_activation +from tzrec.modules.task_tower import TaskTower +from tzrec.protos.model_pb2 import ModelConfig +from tzrec.utils.config_util import config_to_kwargs + + +class GateNU(nn.Module): + """Gate Neural Unit for PEPNet. + + Implements the Gate Neural Unit from the PEPNet paper with ReLU + -> Sigmoid activation and optional gamma scaling factor. + """ + + def __init__( + self, input_dim: int, hidden_dim: int, output_dim: int, gamma: float = 2.0 + ) -> None: + super().__init__() + self._gamma = gamma + self._output_dim = output_dim + self.dense_layers = nn.Sequential( + nn.Linear(input_dim, hidden_dim), + nn.ReLU(), + nn.Linear(hidden_dim, output_dim), + nn.Sigmoid(), + ) + + def output_dim(self) -> int: + """Get output dimension of the GateNU.""" + return self._output_dim + + def forward(self, x: torch.Tensor) -> torch.Tensor: + """Forward pass for GateNU. + + Args: + x: Input tensor [B, input_dim] + + Returns: + Output tensor [B, output_dim] with values scaled by gamma + """ + return self._gamma * self.dense_layers(x) + + +class EPNet(nn.Module): + """Embedding Personalization Network for PEPNet. + + Generates personalized weights to scale the original embeddings + based on domain and context information, following the original PEPNet paper. + """ + + def __init__( + self, main_dim: int, domain_dim: int, hidden_dim: int, gamma: float = 2.0 + ) -> None: + super().__init__() + self._domain_dim = domain_dim + self._main_dim = main_dim + input_dim = domain_dim + main_dim + self.gate_nu = GateNU( + input_dim=input_dim, hidden_dim=hidden_dim, output_dim=main_dim, gamma=gamma + ) + + def output_dim(self) -> int: + """Get output dimension of the EPNet.""" + return self.gate_nu.output_dim() + + def forward( + self, + main_emb: torch.Tensor, + domain_emb: torch.Tensor, + ) -> torch.Tensor: + """Forward pass for embedding personalization. + + Args: + main_emb: Main feature embedding tensor [B, embedding_dim] + domain_emb: Domain embedding tensor [B, domain_dim] + + Returns: + Personalized embedding tensor [B, embedding_dim] + """ + gate_input = torch.cat([domain_emb, main_emb.detach()], dim=-1) + scaling_factors = self.gate_nu(gate_input) + personalized_emb = scaling_factors * main_emb + return personalized_emb + + +class PPNet(nn.Module): + """Parameter Personalization Network for PEPNet.""" + + def __init__( + self, + main_feature: int, + uia_feature: int, + num_task: int, + hidden_units: List[int], + activation: Optional[str] = "nn.ReLU", + dropout_ratio: Optional[Union[List[float], float]] = None, + gamma: float = 2.0, + ) -> None: + super().__init__() + self.main_feature = main_feature + self.uia_feature = uia_feature + self.num_task = num_task + self.hidden_units = hidden_units + self.len_hidden = len(hidden_units) + self.linears = nn.ModuleList() + self.activations = nn.ModuleList() + self.dropout_ratios = nn.ModuleList() + self.gate_nus = nn.ModuleList() + + if dropout_ratio is None: + dropout_ratio = [0.0] * len(hidden_units) + elif isinstance(dropout_ratio, list): + if len(dropout_ratio) == 0: + dropout_ratio = [0.0] * len(hidden_units) + elif len(dropout_ratio) == 1: + dropout_ratio = dropout_ratio * len(hidden_units) + else: + assert len(dropout_ratio) == len(hidden_units), ( + "length of dropout_ratio and hidden_units must be same, " + f"but got {len(dropout_ratio)} vs {len(hidden_units)}" + ) + else: + dropout_ratio = [dropout_ratio] * len(hidden_units) + + for _ in range(self.num_task): + output = main_feature + for i, hidden_unit in enumerate(hidden_units): + self.linears.append(nn.Linear(output, hidden_unit)) + active = create_activation(activation, hidden_size=hidden_unit, dim=2) + self.activations.append(active) + self.dropout_ratios.append(nn.Dropout(dropout_ratio[i])) + self.gate_nus.append( + GateNU( + input_dim=self.main_feature + self.uia_feature, + hidden_dim=hidden_unit, + output_dim=hidden_unit, + gamma=gamma, + ) + ) + output = hidden_unit + + def output_dim(self) -> List[int]: + """Get output dimension of the PPNet.""" + return [self.hidden_units[-1]] * self.num_task + + def task_output_dim(self) -> int: + """Get output dimension of the PPNet.""" + return self.hidden_units[-1] + + def forward( + self, main_emb: torch.Tensor, uia_emb: torch.Tensor + ) -> List[torch.Tensor]: + """Forward pass for parameter personalization. + + Args: + main_emb: Input tensor [B, embedding_dim] + uia_emb: UI personalization embedding tensor [B, uia_dim] + + Returns: + List of task-specific outputs [[B, output_dim]] * num_task + """ + task_outputs = [] + for i in range(self.num_task): + gate_input = torch.cat([uia_emb, main_emb.detach()], dim=-1) + input = main_emb + for j in range(self.len_hidden): + input = self.linears[i * self.len_hidden + j](input) + input = self.activations[i * self.len_hidden + j](input) + input = input * self.gate_nus[i * self.len_hidden + j](gate_input) + input = self.dropout_ratios[i * self.len_hidden + j](input) + task_outputs.append(input) + return task_outputs + + +class PEPNet(MultiTaskRank): + """Parameter and Embedding Personalized Network.""" + + def __init__( + self, + model_config: ModelConfig, + features: List[BaseFeature], + labels: List[str], + sample_weights: Optional[List[str]] = None, + **kwargs: Any, + ) -> None: + super().__init__(model_config, features, labels, sample_weights, **kwargs) + self.init_input() + + self.main_group_name = self._model_config.main_group_name + self.main_group_dim = self.embedding_group.group_total_dim(self.main_group_name) + self.task_input_dim = self.main_group_dim + self.domain_group_name = None + self.epnet = None + if self._model_config.HasField("domain_group_name"): + self.domain_group_name = self._model_config.domain_group_name + domain_group_dim = self.embedding_group.group_total_dim( + self.domain_group_name + ) + self.epnet = EPNet( + self.main_group_dim, + domain_group_dim, + hidden_dim=self._model_config.epnet_hidden_unit, + gamma=self._model_config.epnet_gamma, + ) + self.task_input_dim = self.epnet.output_dim() + + self.uia_group_name = None + self.ppnet = None + if self._model_config.HasField("uia_group_name"): + self.uia_group_name = self._model_config.uia_group_name + uia_group_dim = self.embedding_group.group_total_dim(self.uia_group_name) + self.ppnet = PPNet( + self.main_group_dim, + uia_group_dim, + num_task=len(self._task_tower_cfgs), + hidden_units=list(self._model_config.ppnet_hidden_units), + activation=self._model_config.ppnet_activation, + dropout_ratio=list(self._model_config.ppnet_dropout_ratio), + gamma=self._model_config.ppnet_gamma, + ) + self.task_input_dim = self.ppnet.task_output_dim() + + self._task_tower = nn.ModuleList() + for tower_cfg in self._task_tower_cfgs: + tower_cfg = config_to_kwargs(tower_cfg) + mlp = tower_cfg["mlp"] if "mlp" in tower_cfg else None + self._task_tower.append( + TaskTower(self.task_input_dim, tower_cfg["num_class"], mlp=mlp) + ) + + def predict(self, batch: Batch) -> Dict[str, torch.Tensor]: + """Forward the model. + + Args: + batch (Batch): input batch data. + + Return: + predictions (dict): a dict of predicted result. + """ + grouped_features = self.build_input(batch) + + # Get main features + main_features = grouped_features[self.main_group_name] + # Apply EPNet if available for embedding personalization + if self.domain_group_name: + domain_features = grouped_features[self.domain_group_name] + final_features = self.epnet(main_features, domain_features) + else: + final_features = main_features + + if self.uia_group_name: + uia_features = grouped_features[self.uia_group_name] + task_input_list = self.ppnet(final_features, uia_features) + else: + task_input_list = [final_features] + + # Apply task towers + tower_outputs = {} + for i, task_tower_cfg in enumerate(self._task_tower_cfgs): + tower_name = task_tower_cfg.tower_name + if self.uia_group_name: + task_input = task_input_list[i] + else: + task_input = task_input_list[0] + tower_output = self._task_tower[i](task_input) + tower_outputs[tower_name] = tower_output + + return self._multi_task_output_to_prediction(tower_outputs) diff --git a/tzrec/models/pepnet_test.py b/tzrec/models/pepnet_test.py new file mode 100644 index 00000000..66450701 --- /dev/null +++ b/tzrec/models/pepnet_test.py @@ -0,0 +1,455 @@ +# Copyright (c) 2024, Alibaba Group; +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import unittest + +import torch +from parameterized import parameterized +from torchrec import KeyedJaggedTensor, KeyedTensor + +from tzrec.datasets.utils import BASE_DATA_GROUP, Batch +from tzrec.features.feature import create_features +from tzrec.models.pepnet import EPNet, GateNU, PEPNet, PPNet +from tzrec.protos import ( + feature_pb2, + loss_pb2, + model_pb2, + module_pb2, + seq_encoder_pb2, + tower_pb2, +) +from tzrec.protos.models import multi_task_rank_pb2 +from tzrec.utils.state_dict_util import init_parameters +from tzrec.utils.test_util import TestGraphType, create_test_model, create_test_module + + +class GateNUTest(unittest.TestCase): + """Test GateNU module.""" + + @parameterized.expand( + [[TestGraphType.NORMAL], [TestGraphType.FX_TRACE], [TestGraphType.JIT_SCRIPT]] + ) + def test_gatenu(self, graph_type) -> None: + """Test GateNU forward pass.""" + input_dim = 32 + hidden_dim = 16 + output_dim = 8 + + gatenu = GateNU( + input_dim=input_dim, hidden_dim=hidden_dim, output_dim=output_dim, gamma=2.0 + ) + gatenu = create_test_module(gatenu, graph_type) + + batch_size = 4 + x = torch.randn(batch_size, input_dim) + + output = gatenu(x) + + self.assertEqual(output.shape, (batch_size, output_dim)) + # Check that output is in [0, gamma] range due to sigmoid activation + self.assertTrue(torch.all(output >= 0)) + self.assertTrue(torch.all(output <= 2.0)) + + +class EPNetTest(unittest.TestCase): + """Test EPNet module.""" + + @parameterized.expand( + [[TestGraphType.NORMAL], [TestGraphType.FX_TRACE], [TestGraphType.JIT_SCRIPT]] + ) + def test_epnet(self, graph_type) -> None: + """Test EPNet forward pass.""" + domain_dim = 16 + embedding_dim = 32 + epnet = EPNet( + main_dim=embedding_dim, + domain_dim=domain_dim, + hidden_dim=8, + ) + epnet = create_test_module(epnet, graph_type) + batch_size = 4 + domain_emb = torch.randn(batch_size, domain_dim) + main_emb = torch.randn(batch_size, embedding_dim) + personalized_emb = epnet(main_emb, domain_emb) + self.assertEqual(personalized_emb.shape, (batch_size, embedding_dim)) + + +class PPNetTest(unittest.TestCase): + """Test PPNet module.""" + + @parameterized.expand( + [[TestGraphType.NORMAL], [TestGraphType.FX_TRACE], [TestGraphType.JIT_SCRIPT]] + ) + def test_ppnet_forward(self, graph_type) -> None: + """Test PPNet forward pass.""" + main_feature = 32 + uia_feature = 16 + num_task = 2 + + ppnet = PPNet( + main_feature=main_feature, + uia_feature=uia_feature, + num_task=num_task, + hidden_units=[16, 8], + ) + ppnet = create_test_module(ppnet, graph_type) + batch_size = 4 + main_emb = torch.randn(batch_size, main_feature) + uia_emb = torch.randn(batch_size, uia_feature) + + task_outputs = ppnet(main_emb, uia_emb) + + self.assertEqual(len(task_outputs), num_task) + for output in task_outputs: + self.assertEqual( + output.shape, (batch_size, 8) + ) # Output dim from hidden_units + + +class PEPNetTest(unittest.TestCase): + """Test PEPNet model.""" + + @parameterized.expand( + [ + [TestGraphType.NORMAL, False, False], + [TestGraphType.FX_TRACE, False, False], + [TestGraphType.JIT_SCRIPT, False, False], + [TestGraphType.NORMAL, True, False], + [TestGraphType.FX_TRACE, True, False], + [TestGraphType.JIT_SCRIPT, True, False], + [TestGraphType.NORMAL, False, True], + [TestGraphType.FX_TRACE, False, True], + [TestGraphType.JIT_SCRIPT, False, True], + [TestGraphType.NORMAL, True, True], + [TestGraphType.FX_TRACE, True, True], + [TestGraphType.JIT_SCRIPT, True, True], + ] + ) + def test_pepnet(self, graph_type, use_epnet, use_ppnet) -> None: + """Test PEPNet forward pass.""" + feature_cfgs = [ + feature_pb2.FeatureConfig( + id_feature=feature_pb2.IdFeature( + feature_name="cat_a", embedding_dim=16, num_buckets=100 + ) + ), + feature_pb2.FeatureConfig( + id_feature=feature_pb2.IdFeature( + feature_name="cat_b", embedding_dim=8, num_buckets=1000 + ) + ), + feature_pb2.FeatureConfig( + raw_feature=feature_pb2.RawFeature(feature_name="int_a") + ), + ] + feature_groups = [ + model_pb2.FeatureGroupConfig( + group_name="main", + feature_names=["cat_a", "cat_b", "int_a"], + group_type=model_pb2.FeatureGroupType.DEEP, + ), + ] + + if use_epnet: + feature_cfgs.append( + feature_pb2.FeatureConfig( + id_feature=feature_pb2.IdFeature( + feature_name="domain", embedding_dim=16, num_buckets=10 + ) + ) + ) + feature_groups.append( + model_pb2.FeatureGroupConfig( + group_name="domain", + feature_names=["domain"], + group_type=model_pb2.FeatureGroupType.DEEP, + ) + ) + if use_ppnet: + feature_cfgs.append( + feature_pb2.FeatureConfig( + id_feature=feature_pb2.IdFeature( + feature_name="uia", embedding_dim=16, num_buckets=100 + ) + ) + ) + feature_groups.append( + model_pb2.FeatureGroupConfig( + group_name="uia", + feature_names=["uia"], + group_type=model_pb2.FeatureGroupType.DEEP, + ) + ) + + features = create_features(feature_cfgs) + + pepnet_config = multi_task_rank_pb2.PEPNet( + main_group_name="main", + task_towers=[ + tower_pb2.TaskTower( + tower_name="t1", + label_name="label1", + mlp=module_pb2.MLP(hidden_units=[8, 4]), + losses=[ + loss_pb2.LossConfig( + binary_cross_entropy=loss_pb2.BinaryCrossEntropy() + ) + ], + ), + tower_pb2.TaskTower( + tower_name="t2", + label_name="label2", + mlp=module_pb2.MLP(hidden_units=[8, 4]), + losses=[ + loss_pb2.LossConfig( + binary_cross_entropy=loss_pb2.BinaryCrossEntropy() + ) + ], + ), + ], + ) + if use_epnet: + pepnet_config.domain_group_name = "domain" + pepnet_config.epnet_hidden_unit = 8 + pepnet_config.epnet_gamma = 2.0 + if use_ppnet: + pepnet_config.uia_group_name = "uia" + pepnet_config.ppnet_hidden_units[:] = [16, 8] + pepnet_config.ppnet_activation = "nn.ReLU" + pepnet_config.ppnet_dropout_ratio[:] = [0.1, 0.1] + pepnet_config.ppnet_gamma = 2.0 + + model_config = model_pb2.ModelConfig( + feature_groups=feature_groups, + pepnet=pepnet_config, + ) + + pepnet = PEPNet( + model_config=model_config, + features=features, + labels=["label1", "label2"], + ) + init_parameters(pepnet, device=torch.device("cpu")) + pepnet = create_test_model(pepnet, graph_type) + + sparse_keys = ["cat_a", "cat_b"] + sparse_values = torch.tensor([1, 2, 3, 4, 5, 6, 7]) + sparse_lengths = torch.tensor([1, 2, 1, 3]) + if use_epnet: + sparse_keys.append("domain") + sparse_values = torch.cat([sparse_values, torch.tensor([1, 2])]) + sparse_lengths = torch.cat([sparse_lengths, torch.tensor([1, 1])]) + if use_ppnet: + sparse_keys.append("uia") + sparse_values = torch.cat([sparse_values, torch.tensor([3, 4])]) + sparse_lengths = torch.cat([sparse_lengths, torch.tensor([1, 1])]) + + sparse_feature = KeyedJaggedTensor.from_lengths_sync( + keys=sparse_keys, + values=sparse_values, + lengths=sparse_lengths, + ) + dense_feature = KeyedTensor.from_tensor_list( + keys=["int_a"], tensors=[torch.tensor([[0.2], [0.3]])] + ) + + batch = Batch( + dense_features={BASE_DATA_GROUP: dense_feature}, + sparse_features={BASE_DATA_GROUP: sparse_feature}, + labels={}, + ) + if graph_type == TestGraphType.JIT_SCRIPT: + predictions = pepnet(batch.to_dict()) + else: + predictions = pepnet(batch) + + self.assertEqual(predictions["logits_t1"].size(), (2,)) + self.assertEqual(predictions["probs_t1"].size(), (2,)) + self.assertEqual(predictions["logits_t2"].size(), (2,)) + self.assertEqual(predictions["probs_t2"].size(), (2,)) + + @parameterized.expand( + [[TestGraphType.NORMAL], [TestGraphType.FX_TRACE], [TestGraphType.JIT_SCRIPT]] + ) + def test_pepnet_has_sequences(self, graph_type) -> None: + """Test PEPNet with sequence features.""" + feature_cfgs = [ + feature_pb2.FeatureConfig( + id_feature=feature_pb2.IdFeature( + feature_name="cat_a", embedding_dim=16, num_buckets=100 + ) + ), + feature_pb2.FeatureConfig( + id_feature=feature_pb2.IdFeature( + feature_name="cat_b", embedding_dim=8, num_buckets=1000 + ) + ), + feature_pb2.FeatureConfig( + raw_feature=feature_pb2.RawFeature(feature_name="int_a") + ), + feature_pb2.FeatureConfig( + sequence_feature=feature_pb2.SequenceFeature( + sequence_name="click_seq", + features=[ + feature_pb2.SeqFeatureConfig( + id_feature=feature_pb2.IdFeature( + feature_name="cat_a", + expression="item:cat_a", + embedding_dim=16, + num_buckets=100, + ) + ), + feature_pb2.SeqFeatureConfig( + id_feature=feature_pb2.IdFeature( + feature_name="cat_b", + expression="item:cat_b", + embedding_dim=8, + num_buckets=1000, + ) + ), + feature_pb2.SeqFeatureConfig( + raw_feature=feature_pb2.RawFeature( + feature_name="int_a", + expression="item:int_a", + ) + ), + ], + ) + ), + feature_pb2.FeatureConfig( + id_feature=feature_pb2.IdFeature( + feature_name="domain", embedding_dim=16, num_buckets=10 + ) + ), + ] + features = create_features(feature_cfgs) + feature_groups = [ + model_pb2.FeatureGroupConfig( + group_name="main", + feature_names=["cat_a", "cat_b", "int_a"], + group_type=model_pb2.FeatureGroupType.DEEP, + sequence_groups=[ + model_pb2.SeqGroupConfig( + group_name="click_seq", + feature_names=[ + "cat_a", + "cat_b", + "int_a", + "click_seq__cat_a", + "click_seq__cat_b", + "click_seq__int_a", + ], + ), + ], + sequence_encoders=[ + seq_encoder_pb2.SeqEncoderConfig( + din_encoder=seq_encoder_pb2.DINEncoder( + input="click_seq", + attn_mlp=module_pb2.MLP(hidden_units=[128, 64]), + ) + ), + ], + ), + model_pb2.FeatureGroupConfig( + group_name="domain", + feature_names=["domain"], + group_type=model_pb2.FeatureGroupType.DEEP, + ), + ] + + pepnet_config = multi_task_rank_pb2.PEPNet( + main_group_name="main", + domain_group_name="domain", + epnet_hidden_unit=8, + task_towers=[ + tower_pb2.TaskTower( + tower_name="t1", + label_name="label1", + mlp=module_pb2.MLP(hidden_units=[8, 4]), + losses=[ + loss_pb2.LossConfig( + binary_cross_entropy=loss_pb2.BinaryCrossEntropy() + ) + ], + ), + tower_pb2.TaskTower( + tower_name="t2", + label_name="label2", + mlp=module_pb2.MLP(hidden_units=[8, 4]), + losses=[ + loss_pb2.LossConfig( + binary_cross_entropy=loss_pb2.BinaryCrossEntropy() + ) + ], + ), + ], + ) + + model_config = model_pb2.ModelConfig( + feature_groups=feature_groups, + pepnet=pepnet_config, + ) + + pepnet = PEPNet( + model_config=model_config, + features=features, + labels=["label1", "label2"], + ) + init_parameters(pepnet, device=torch.device("cpu")) + pepnet = create_test_model(pepnet, graph_type) + + # Batch size is 2 + # cat_a: [1, 1] -> 2 values + # cat_b: [1, 1] -> 2 values + # domain: [1, 1] -> 2 values + # click_seq__cat_a: [2, 3] -> 5 values (sequence feature) + # click_seq__cat_b: [2, 3] -> 5 values (sequence feature) + # Total values: 2+2+2+5+5 = 16 + sparse_feature = KeyedJaggedTensor.from_lengths_sync( + keys=[ + "cat_a", + "cat_b", + "domain", + "click_seq__cat_a", + "click_seq__cat_b", + ], + values=torch.tensor(list(range(16))), + lengths=torch.tensor([1, 1, 1, 1, 1, 1, 2, 3, 2, 3]), + ) + dense_feature = KeyedTensor.from_tensor_list( + keys=["int_a"], tensors=[torch.tensor([[0.2], [0.3]])] + ) + # click_seq__int_a: [2, 3] -> 5 values for 2 samples + sequence_dense_feature = KeyedJaggedTensor.from_lengths_sync( + keys=["click_seq__int_a"], + values=torch.tensor([[x] for x in range(5)], dtype=torch.float32), + lengths=torch.tensor([2, 3]), + ).to_dict() + + batch = Batch( + dense_features={BASE_DATA_GROUP: dense_feature}, + sparse_features={BASE_DATA_GROUP: sparse_feature}, + sequence_dense_features=sequence_dense_feature, + labels={}, + ) + if graph_type == TestGraphType.JIT_SCRIPT: + predictions = pepnet(batch.to_dict()) + else: + predictions = pepnet(batch) + + self.assertEqual(predictions["logits_t1"].size(), (2,)) + self.assertEqual(predictions["probs_t1"].size(), (2,)) + self.assertEqual(predictions["logits_t2"].size(), (2,)) + self.assertEqual(predictions["probs_t2"].size(), (2,)) + + +if __name__ == "__main__": + unittest.main() diff --git a/tzrec/protos/model.proto b/tzrec/protos/model.proto index 59b4aa15..f3c5c2f0 100644 --- a/tzrec/protos/model.proto +++ b/tzrec/protos/model.proto @@ -69,6 +69,7 @@ message ModelConfig { TDM tdm = 400; RocketLaunching rocket_launching = 500; + PEPNet pepnet = 206; } optional uint32 num_class = 2 [default = 1]; diff --git a/tzrec/protos/models/multi_task_rank.proto b/tzrec/protos/models/multi_task_rank.proto index be26e288..7fe53d81 100644 --- a/tzrec/protos/models/multi_task_rank.proto +++ b/tzrec/protos/models/multi_task_rank.proto @@ -70,3 +70,25 @@ message DlrmHSTU { // instead of locally (local rank). optional bool enable_global_average_loss = 5 [default = true]; } + +message PEPNet { + // all feature group name + required string main_group_name = 1; + // domain feature group name + optional string domain_group_name = 2; + // epnet hidden units + optional uint32 epnet_hidden_unit = 3; + // activation function for epnet + optional float epnet_gamma = 4 [default = 2.0]; + // user,item,author feature group name + optional string uia_group_name = 5; + // ppnet hidden units + repeated uint32 ppnet_hidden_units = 6; + // activation function for ppnet + optional string ppnet_activation = 7 [default = 'nn.ReLU']; + // ratio of dropout + repeated float ppnet_dropout_ratio = 8; + optional float ppnet_gamma = 9 [default = 2.0]; + // task tower + repeated TaskTower task_towers = 10; +} From d7270b23d072ab5e5a08e517cec1845d74c5e1f9 Mon Sep 17 00:00:00 2001 From: chengaofei Date: Tue, 24 Feb 2026 07:16:21 +0000 Subject: [PATCH 2/2] fix pepnet for multi_target --- docs/source/models/multi_target.rst | 1 + docs/source/models/rank.rst | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/models/multi_target.rst b/docs/source/models/multi_target.rst index ea55acc3..59bd7958 100644 --- a/docs/source/models/multi_target.rst +++ b/docs/source/models/multi_target.rst @@ -7,3 +7,4 @@ mmoe dbmtl ple + pepnet diff --git a/docs/source/models/rank.rst b/docs/source/models/rank.rst index 67cfdab5..797b1223 100644 --- a/docs/source/models/rank.rst +++ b/docs/source/models/rank.rst @@ -15,4 +15,3 @@ dcn_v2 xdeepfm wukong - pepnet