vCh|5+{9y$8hk4)TGoI)&$o%R69vb3yPRYBJ>)4^KZT~%zZI~$* zeA%ukyq8Y|3WvYQZ _Wyy|B%!r{P{&VOq@CwLw45X5R6!VRct=} z Gc?6)1Gp?R$!@+oOh_@Ah @e`#34@dR-va&7 zgy&N@HVw{3@jLJi*|Ybc;u|lXvqeosv7OJ8CYu`{_BVT%A-QvnX=p-qWJ;x3x%txh z5!4MI7stk?`3X~|&X0?xFRreHG^bX?Ibb)@;SM2=mRve7rf^f}O$6T0Kg>c&J@z$) zWeXl2I;Lz$I`NJHs}q@vExDTYrorFHH_$o6QMRG6?t{j7?q}Kyic8}iw1E@3ljGR_ zpIO+RDIbgmHGGUKlS|NFG<+PBLA$UbPIEuNk)Lh(; JesZdp?oucYL^60l20^Gd~G;|p+{pHwcutUN?!(sX-jqGOc&l#)%wmcVE zD4gl<|I-244Co#8T_^B`s$bcOrS@E=c|vLko+wF_f_96O)g?I<&7f`zHG*L4C-JC4 zf@VaCs1-T(4oz>@gsVos?4Gj+tEAHtB$GyJ>UV!9hrW;BJ0wo2v6wxKLNThyrAswp z9?D``TiHfhTq82-RWA!_7?9m$jOX(CIWu_vU7DMVcW_OzgLuRQmPFOf VRa|xXuh;KvNTAG>}&KsZ_RlGoSg80tGMm9d?Pl(q&GE zcVw=ukQL-^_ccv4NjT(eyXjonry!&XBQwx}_-BFcSc~6=vH`MWPVeFz^-&ws<^<7> zT8h>?F7Ak;&X|nGEJxW0E{}K%wyy$tQ7?LFC{-s?bHwJN+G!)Xo`3M;^06)D;=drR zK86Yp%!Qn!^s!Xaa|gW^Mj78=GoRsL 2VLtdjMzu9e-uH6#4(I5l7A4|vTX4!8~A#VSgGilm7=jbPRk-XX4!u`xhzXR9q zpWDAzA96VAt+LA*<=qF*v@71m?!Wd3kQIjuD|B=0Kia!M@T^{g(JvJxraZnrEc8H^ z&35_JyjQ!jwe?!6?BiclPqYg5LoF3*6kcw0{F*5lb}>#!ex@Msq
s(b5?y zy`TEy%(9>T(8WialtDBEx5w@>H}l;cDrh8U6DEMz@Kx&{Kh8MFd)MQqKWE-#8&^3H z=#a^$8we4}F%&6U%U9Ij_)$X=%t2T7FzR&Pf*p~^yR45gWY>k=d{_vNg%=-w-??i3 zkQC%w91iE!ZY<3{WH@Ymo)Qw8W0-YzL{i?WYx&MpvYiems6XvoIF(kC_@FKAA$qIF zP^R$7Q+|3ODd-jO{erUwzQGGIHQxna5@{-O#7iaLk1(GX>9q8n<(16XrH-=v@A>Fx zVuzX){WiT*>*et`k^jSn3cc`u8ejd_h6> )qm~Hx)r2yWek6HTg@DQ-tePxpa5@CSJ z3ef2S=9@iC;)#^ZKqwGkZnRNz15P{04nWKchy?@eeIWi2utQ(d-T_z#Kyv}Y46VEm z;LZYJ_qWXAP~=&MWUHZM1uUkWon3(UNh1{waNlpH<}AU8CLvjec-02Elvi_04)^w; zc&xIra&PZoHZ;Dzp`lk;DKNHjW$kA%qsX^!-+<(!@5 z^3PwpOR0J5AFCo$TIOStCmo(lKMwzdQ`{Mw>}YNKJurN*x%IQXI}gnjoKQO?t5?@H z*2^vTO oPCweKrr%6p8Yrl^g-PvDV$H;~PMx%vS*^n1DKGkhjH*Gewt-h<^ zRv~=BO0|8NT+M$!=^k*yDgQOQSWJ5Ba#kS}Lk^BE{V=f~(l%L4%;==%`PK9FDS}?p zCU^LfdCuG3(}u}SuQEFLPLJR9EG+9s^4MRsedQgT)rJ-4ITwf$dbB$;XXEiEt)Q!c zkze4#vk41VdHtw6KJTZerz7CBRC1BMDwh&-J4dXXdIsj{g bj+TiDHm#C(p zHl;CWnEroz9Lf?+w*i1Y`>zn#-H6_X9lkzz!+d$+SBy#FSaClUMumh@)X0!n5GQCB z&q;RE(%7){P5o=i;9_k$flGb{S!4pe1~1Y}?4)^{V~osWE|hPN?0;5R>r}83D4$Mw zxV^8z{ z(-GhK&!Hyt44vx*UY)_u_mbffb$i@aM{tC9aeb9B( ziji4)U+~*4Nc(WeLa%bK;)`9&zGE%+X?Xa)OTE;UR~*}0-|r2^kyp6guey{+5r6r> zjYkKYx?=%H{JG#utSm#?P`TatPCyLVEVbCgcj)54 &B8c=Nos}hJ=6o__69t7dbCJ z!lFQob-Bz_BWsVI-)p*wG!C(OI*OJ0qQG5k^b|o#inPFQQG!}|mWYgQtxNsp!6};< z{6yKNMSuJ78K-MEh9`;X{SNqjY`M6&^b&Xx0vj_AE{Ge2oPqD64 &kp9Wc z9v;ZsWAASy4NqlIX=z{k2E)alCXLd3{_BpFwX!k&Q$CU^i(6x8Q3Aou%}i%miSafe z`?B7rUINk2g*1ht08M4ifuh?f6?i=(dNa93G!qkvBRBKC)Ou0jnybn@OZV?+;J1bp zYN(=vl(eHBs|xDTK3Yxi!TXf?3~u37f^HgJVK|><*-MBZGFcT<^@tj#Ui)+Z%ne%2 zyzxu)Op7*~7{!qAa15vAU|_Q3<**fImkQgi9e-BUov3)BqphM|wLe}m%F26}*_+CK zBgaaf2X)pVD=qDh||1v%b-*1_{4KJ-KTaj3{;DIiJPIn@#E%_hQBJ pde B2@DzxWj5QDOEuPMa{29WQF1&|2!?VWH_}w8joI5S$R54=6Pcplak=tWpygI( zicwI53fh8z@$0z6u6N0^*x08b&9KWEw5q_SAC+Z}yj~*&TWN`Bc}mf)F*=ogji &IM(tS! z*{SgRuCI#OKbwctoGbs8+b!XjqO0{&y+lt4XLH~+uY~5YjzXJIwOmO}reb+`?R#2( zZuttSgNI5mVp30Oo}ut8+%QY2Tfed+Bpss%3+AG9R7q@566eYnxLFskn*ArrNL`^= z6|upG>%6S+_AHzJ<%`iSTFWcHtkXR|C!67Qb-fY8TGY%Fx4V^QqLSx6RZi+-`a}_% zD2~#&H6MW*FwFPN__n_eS$YONzLhm!RZFEFTQNQ_l&_2|HLk6kZ<8~G!8uA@1SV>Q zRub8Y-`s1pOc*pVPw)EF7|b89OA=roAJAwnZEKYnI8CA?57nkFjq^pLyd)p^-Q=0b zq=dfE37PGwbGlmT%gmiQk6nNB@lIl0x(@f=HSbu31q47l1%HV1UB`CVC)>V07mv#M zb2(NkL*Rm<@y*on`vz#WJZ_xXZi(q)YUe3bp^h9y>q?`e`^d#R8np^gP!odBpHllX z eC!Sp(b>#?3E|Ef-hJ+1Wk;C{ptEh7K!iZ zyzy~ziCHpGm^1p?!+PPi7ShvwcKFxaBtw5{y$TkKjgwZpZ?7+DVVEsu5XJh2Gy7%X zBLCvu2%G96#HRiBE9I|#0kU6|qbk3b-hGr^rNi5idupAr17#Gx{9|)eZlf_!P^jiG zz^C%z!S&qY8@!qH_Tuq8v$Nmk`+9qSQk9pBgueLRTmNZV@ob}Sz?Z8M+%7LZx^JE> zEV1h*sDC*MyuHmqO _w5rk6 l@9)-+imjVY#+)Ur#<0W5U!Fp{#-o)Vg+mB>RGD%*D?1v781X;!NJW`lO`q=Q!)` zwcp=PL{0Gqsj=muHWS=5pQ*O`s2cKKv9^@qej!7j?J^rmnwRXFx^+|JL!!OK6!b3w zr6E4vzZa@ZA5>?oIcZ7^woW@4I|gmvy=Z^of^m#`hL)h6+?akwm#p>Fl!Yo>0a((I zm(yUe_lC?$u)Ronx!BVSm82H_Qw{Q*KK=nDZ==q>n3)rw#;W$xl(Z5xmNrN>7&b;Z z4Qk2@D GsiBjEj)QoGmd`b-|5R4|$>*HY~77cdE zh(e~nbRsy6W5i&}DC;?x4140<$Rf13nwiPHKDJ2qC|f4O=-YtL`$0iVIfTYe`bLV* zw6e_oNvv*r#JgCBIj&n}NY6G`(%~3gzrY4VQC5e!;^`3C{h?;eW;NN_StWv;?)ST~ za%p4lvCG_)cRPBgX(M3r^$jm$7jvIu*e&S-eC`e|oto`eUViZ5ku-*E;38K&*Sk=T z`mXmRBqQJNHg;?6L8~}#6Pq?8xiR%l0TrjlPJNZQMyu*~g94t1!>7`2t{AAa&pxs$ zw~-1P`?*o4K%I_FJwrH^a&hFE#)wU0 >f`exLA9QS|%N33VKT*D-6tfZ8lZWK~t>Hdi3tWUch-_i9s zt!vh^QA?El7{C4bm;QnC*Tvp<-72;8B~eSW6Ba9-;+S#%jc2&d-0)>`YwA9SqpFoY z`n 9Jl{(0&pWI9JZa#d{WjaCd)8xymaSZIgOCwVbQYoxZ(pKZ7j z_tT4pFw}|<+S!XCIFB$%am$I% >FIXw>f9qER*Jr*4Ch} zW# 413StQEQr-%E)bh90=&Es9#^VC>D$>`PG}b8=*?e z>GC{LplZ+(B>$u}Mv;e5`|aShh95bV BLf$$YcJ2YI!)(JChQ=sDWn>t zrtZ13t0G{~mz3P%Q6JB8Cq>rASyL(68(5CkNNUlRddsb}PO6J6W_@rNziGS4eIw9+ z+1Uc)u%)VWpw!w!9M;>ZWLRV`dLivuQp})GtV%%C44O8fTYmF(G}jc^VSTz=?^H|t z#|XJ$wr#pT_$ZRYZD;qUqMD4JiZOMU&qCYzijevIRiUx<+2|Q*?vxddHrwr}0T)R< zFGW%$%8wb_7 ycAI)w^@fp9(p39$YRl{c%FdY4~mNt1uy55$oup2`9Q5#Su){Pb;a2|n6 z1(Pc%`BPnX#l*AgJ8MU6{yXeV=dNoP?K zp+LHRq!j?#Osnwm|CJ=ke7y%ptA5-wr;Uk>7BR86Jx~+Oc3)3&dq< zdv^c22|q_g^(U`DuLX{~ZD?rtc=N}%n%gzi*NGJtOdokg$)w+i {|shH^RnCA+#Eu?SqES9 zv8NL4v 9nHuN$%(@B)A2$C23FWpgHLr;(83>)=NaH60~}643y1_JcB&|2NC+cbfp#b( z=vZJ*r=QZZ=5dP>MP7X^B3n~d2I&EgGOu|hNTLiwijtt!m{xAFPJXF&UI`F$zDwW~ zc%}nVu7N~d5U1I~E!uz+Y{Uz73(JCxn;`uLh*Yg*;{&P2;DtVTdAXXE8zdXl;{=*G zg+bC45U>43R35}?fP@Pm)d-|rujdeG<`MxfFV%7Ie-@PaEOfetjTb~*22pC@sWODH zM_duuOT{v=1H#p4Mm7+y1uc)}^GSlN+rU{SiIqE(LjZ)G14#zpm0=F2Ftk&f%Eq^_ zy;jH0pMb$Z-2~p}fTtn|(}PwFU-O6oH#ukp4TS1~C#uW8HxgMmk2i6%O@XgE2-ayA zR{#N;kV(5`lnD%25N#OAfQ7bicPFPokan-4hG2%dP|h9U{0IEWH=9IG?@UZCEiKK= z%v7>)LEE|;8yoxk`(*;hYomEg9N@Xp_V)Jgv59vqoFK=X JPVWA9qN`pICvc;U~I;#esf{THAoH}IckEHD=N z$E{n&jKuDE6w35;xL*A5Mwj_#LQDAg;Tj6=c-Fjx@tqJew8BTd6zyjp=M3;}Ryp6f z9Lw^Wu5DTSo^|KqW7Ft0M*F01vZGD5ZalLMAL3ag-99&ZEceB?76i2NVeUOROZ5-W z$e$X`HZ^cB%WM3&bF9m&o?}RF{8Oq*QpV=EV)V7z=&YOsj|4430CskmmY{5Xv@>x{ z gyxdXnyzZj!t5mdC;M=&xKs? zSj2Z}%jI)FPqIWEotJUd0p3jg{0t1@s_rgt-i^mDuDdxooo*G~!aVra5)iMDm|MW9 z=jPkzLFtqEIv` ?2kNLn_T)Mqr5vUFTqm1hZA&_a@j( za1 G4y5s+-^0pixAnuZxkycR^R#%el zFolwY%jR$dw=d?{=Q5_+a lk^j_3O_7m!p;!e*9d2 }xVS+ZKiwlW=kMTkOBe`iGd=77dgF<~f6lny@9>ps# zTgSLyAOkHF{gZD-km8E{bTAQlT`9|GrPwHf$Qk#*<2MAP-m=~#B gFT{;@VEmrAedH=9^oP(NUvVRc&QLu z_j|ZyL=6vD!9o{lyFOTBFayx=8Fx&CyH6U7J{%#+Ndks|m(+N6z(+bKJPK<+$*m+h z_##p{NLR+L(|_Th$Yl&AP$FiEov}hmyIkeKvepqO5Hk&=fTsnm6SIVi!1|yPTm}@B z3JV2U`IX2-9Qr+6aba3kYDuOD1wZ1|#zAZ$D$>gx>O`tXvK5NtRK2!{i$FmKIKoL0 z_4PVPJ=U^i4rnf-Pmm}7=mi0(Ud#p-7xQ5N-J{^AdTqJ!@SPyx%P4o`0G!}4Gptka zt-CG9m|#IZla!;H7@4#)pX#k-L}Yn{`@*j<4kajese&@>IS0Y1*LHK%^2_h*Hb{L6 zMNFgVON8QrsaOm|QN}NtCib~fRLcTVoi!{}aD`0v=^})~I%WhHJ>~;RkO1%MK|5tJ z%#_q3X4`R!)pcMG5$Ybqn1IDHCw&e>4s>Fz@l|Pl;G#1e?5#ksf|50wTot(h?~-<_ zfkA&baFj)45?$rQGtFh1K#L WNmOR-D9> zo;&j={h7n)iSzm?7-~Zi&FwRw6e}HTQz}CUujZomAYHU~;$d=iK}LFw5tG16VPkj- zahpa~gq*j=O=J;lIls_8K|zO;o01P)vDbgqx+iF}QA;Ai)WqnGL^@WN+la(Vbm8k? zUU9>7U|oB`Ud7oFJ `KaS#4x!LUk}mv#t}fP$iT)Xa!w3$eg!&JA!9v{JY>75E z1+|m|wret-ha3l3MKq76$L~QSt>CbU-UF{p{VWwMjw_)V^`10!HR!IHCnovN{W8g` zqBbGhUvJ2;jVH(?rU({iz2%84&(~FeQp!y;sluK?>40+nudnjWm({vFRFS}c1{EzK ztvhqFDX&Z{wsGCM`2FF-;vU0El!X`VYCw9wIID~%<@-SRrKQTz;~T$Cu8hckTIYea zqoclkWbJ<|j1ksS)wg24^n1xwi8Q6j3qD%QYxRqLk<0NZ7nP8*MnFbkVD$2bn$>qp z;-jC-$h!P>z2KKs2Y#}ZE44x5_?g)kP1kf%7&5t;RCVZ|vk#3@v81f9{xK(${&6p{ zKl#P?y}*(Oq5oLKzorq)Wfvx-o{Zi%or(INoj{VJ|FsiH{vRiBY-|j4@q%7V;NStL z1^9tL0DI8m3kI2i^FRO_2m%}M>)PAfK~HdFV jg5_?&r840&USWoe(xU) ziW&7VDedp?cS5Ds-!%OipFLUIY+;Z(+uB`-&soVRpD_2Ec8-{Pn6TY3^d4*Zmi+qO z;HSQ8+N0{u!UM%%@;!v<9|tMkeqO>)m4BMdupw|ZXOHb|ChZ{o&gN;o_iGObg!t-z zJM{dGYcvoYdxqv8wKU(5+|nP^3K02>q7(NREZ3@Cy=YI8i6xI9lh@n%@wNN-+sNZY zQ39$sRaKS$ZdD1wExsH(y?a(L%U=TQ*{D0Zcj 4z3uNhIHYaR-s2Ku&r`fA= zRv*Slym_BQrBT6OrjaX4pE~GVyEA~)GJdR_SGVWj`$j KPg2a?R7X;egD3&qo0TiRNYghR6;%p%2`3C(5Pg7_n;WF@A%!AWDeqQHQ35s z!Cse_j2@ ENPOa7(x^Nph5JHkP zv3I9&S|NX&(fyqQn{R}B{CL2-Pp$9XZF(0bf3>v06-cPPIp$*Q$s2cU{4M%ulE~k$ z1F5bJZ d&T2-=T3 zp^V`xnexcUpj-B8h_H^>$t&u3I_Z3ARHWX_XGlIs!M7-svMN&KJ0+2os@3P*4s6tK z>_97R5 Fte%ww`$P_;FhdJUZsMp=re`i4pUV`iv9TM}cSYRXD)83gbp{&VudDP^*giw{ zC(}|BV43d+ferrEcYg^d%G+Um6D+Aj z5?+-YN>6+fPv@KJ4fsA+i>r|YnwQL7;S-6Ic33`#^irs1iyY}Jc~=a90wm AzeO&N)c@Ff&O7|O~; zewO8mkt01tN1||Ca?!FnN+5H}n5uk8EFKGdztW9#u+`ObfNAf9g(Q;JM^Vi!4|Ea+ zn{h)8CMXoBpPMS+u@mD4a@iGYT6fCVp3Gc3=zQRDja0p@?VH{mRRSrMF_N)&ifV0= z1r6vWrIU!=Opf)P5!=Ress|yR*|pnv;T1K>R)Js8to35&39Z;M119atWse_AC#Pc# ztN2ni7;f#2&3ef!n0yK5Q0km5k=g9q4hIQLeKRUHnY+d2{ty4bSOgY5>^3PTHBbLb39t!irvnf{d-;rZ3xYG*xX3itj8|Ag6rHY0i*Q@}e@ZAs2 zJVN&k-w4vMzP0WWcrmZ60r8MQZ`A+(DM312wyI%Gm#)-ha{I|->4)a5y~Q`)zF(Om zL+q(vCk^kd4WT#p_eYtP{5H7^3zO^X@5X9~8dQGlC0dT_;CRfFY=YJZIWID*jo-Bn zunF?*a*~sh|7D@U^qy@${pH5l;>*d;LB6w6ZD9fRTgHs!?Smx^?eh)~IdKFrvX8$Q z@7Kl;&B)pLHVmc=ral!=o(kgpmfGTp(UK5)RZNt4X)xs1(=7ar?ERZ_?(<6#&Agdi zr!`p2?Qc2{*{vipo7krryV}nbdv8CD@~Amg3tt{mMr^(KVlOA}Wl@UxymqZ;N rr)&iSs;}f#j=}nn2No?GIwm&f!1OjG^ zH{P?`wfxT}8y5G!HQD$A|1sIXEP@T#=zk3&FqFVVf 7^no6$pMC*n3(wV^z`81fSjEC^XJd3 ztgK@aia^!(0urFzgN}|44u=D~pPHHqkxP}Am*3vrmXwqPo(X6n2@MT}XymP}t*x)G zb8~Y?M@Q@H>w~(nv9U24jlOs9o}i$ht*tHaAC{Mw!I=26vNBCgO;uG@Fvk%14*>xI zzP`RV9PZn X--pX5?GFsu#I_ww&ovJ&8izD()i))I85cCocs=h!+gHpk?a*mw^?m$4p=ZV~ zA2U3<@T73`*XTI4+AGzEZ-df$Ltpke`jxiC=PnL?$}n($99wN-nzZbJ28;SYIR9~J z<{Q-L=Htmwyg9OLc3%Q+dwXZ^5AD>)8Y~RI+ufTSm|)3k6ox>^7ys+qoEkF^(nA({ zgerssc#>yzAL8rx6f?3=k@Pw$=TP;~zl~i^AZyIw>|?BD`rvkCm!!_~;3)lVyZp|V zdHy3Z3Z@YMm;g^L+0O0C2VY9JEBKFps^8={c=p7wfRnC7EvjZF^;vduW@ct`cJ+gY zI=Eo5qtjoopQGCI0b1pAWa2&5t=R>u_N>yl%)O$!_6miA+z)258>T~Z=dK*;q$nch zU%l|*y|G5XG;6A=#dE9r;Brg%78BHiaU2z1gcNQ%UqK8_ywduJ`&rg1ovE`hCN(?8 zWT>bjmJpQm?h@;ZFJ32nL*Q2BH&0RyrWidc9}EG(4GwZ`Dj5ZI9T&CvZgi$Kj>`Ih zSw;BSpcKxh&ZP32$1cZg6aSZn?jKv#?s!XMs28#FaHBoMya$y3QAlT43*w&qd}?;) zy(; tvDy&yK;S;J zdQ$BKX@Olyh$K=1uLns`Legm&!~F51NOzo=Qxb+j+_Vf~jSIsBayxC+$0?d!*I&D_ z#qwBkw5xcMA?d<`h20t#0S&VZPYbJy`yIiM^IMAt%GB3zp% DmM zLPsOYPo8tOL~#G`Fw0RN^zm0SHCH3aco+0x$%cjalgLlCj`2^Ds)-%qTIfmK`y-wx z_;bcQrf}vj!#~AKCHp$LyIYm#>cxyUzH>Cce)HbQs4t?J8@b_o;?YOSP`|=%V*LQ~ z7>nH|Uqa8#_Ax!w2ri4G)K|wcHZs3^wjKRuHpe3{(^JhjTr9DfQ2t~8LFcrS%A^RD zRhI~E4uiX?c9VVlF@7n-pDlj6;HB^HS>8O{{@hgm==ZA4UhOT2Ks}$xh(y9;wzPc; zHAUxT?72H(D%a1j{3wPOJvXBLn;z9yRMgkkS8Rhhz{U@P9-8_kP{ _iq5}RVt`eF15jDK=95xUenW+J#Wbu%`dQvd0rotL7Kl6S=k z4xQKT4lm!aCe|3*34AZp)$;s)x^2u&-5ioP!P4B(X{Yddv%I91wyj63s}jQ>?)W6d z?e8a3wl5pG7S9(&weu`MZ0acXZ8GV6(eArQXLVAAhdOtv?)g)A`TNXsSf*sl`qvyv z7%x$LWNB0DiQ;>Wl(*GPUx3=nDGL$cJ+Y?^fJ!dD?fo%hZ~1xQD1L!aPNk~VVvVt{ z=#4E$WTAh?&+ih$Z;dytQF>j2>h1{kGE&6nLc!+FqkH^Lq=@@dJ=)_NPFMO8@~d`N zTy;1EtsNeFV@IniZaMU{szCW}`%#{*DhLu|$jI5-R=B;>g8E#d&m2=9>BAK?=oHf~ zWs@J!zR))@`9 jdmj8@ig8#v)qX!3BSzMN(=_x z1ynQJz1RPR6Rpy}g^6>tWxMR`j7s5;a%^iizMc-do?lq#`aGGMF?NOBE-7j(q)hhd zEPq) V>uPhYn67Nqx{U)1gKe3y)HDYHc zPLg2DA)x!3adcbW;@-XBgB(}#k7s_<9N%OaBsD(FKc|-9-)VIv(7bbJ{vjF1;h<7* z2-0>!FniuRB}4kQ|Be$&ABA1w`2r>xx #%B2Gogr zhtszogm9%OGN)jnsq2uIT>lYwgMEG@k1A;B`R_slwFrFD`bCcES;=s6j_nH`Vw?AS zOW7%kY7x}2G+)Qe4pOQ-zTV(_{Gqti>@-z`WIP8#t+#AI;om6|8sF_tTGaL+Zjv8< z_j1AaYoXlx7_3HWAbGG~5YO6U|3I4+*&V4rj&Z%krDqomBVmGap1XnjIAXPK1p4uV zUFVFbx1J7a+xIGIkLY0erJDiUq8-wOx3_&b (`&a*z0Pgp1`Zx!TN;Wngg+v8pxcT}lF*~vU z(om}NaPE0Zlk62a^`urMIODO!%9qfu7kWKg0{SY`J{1w=m3w-O2F-Qw_0&*DBKTf& z1pV4e`p2hMH@xH~2){x1uO(Ktl%!aCw>G^O@W0O}BuZf+iMUmvvnT)qqjQ}f6X9+) zLK9!+vZj^=(T)_v@4ZTY6qMPI?eBfqatr-)F4dm;+P-6P;AYFNGgyU~kJKx^+>q=n zt{;)!cav=KT5#Z@5?$)vTY+=R^_ zYHZv=Lh?m0snDWS@&bSYM-WR?^1V zW?P)+3RH#!`CM3!Q!-RuUevoU K $DeO&uWLTMSw)4*NX)K@{j?7T^+ AQbn?P93* ^)dsuKVSSs4rcw)rZ0 s5O%G>T-;~H;*OC4Zv?E`&?}Qw68GVSJeIS>nX#H17g-E zeRF@RsnV&*rr)h1wMJi3y`|h|l;E(r_EN)R)G6Z}WpJ<1;@eMOO(n;6n&YN@*7|Ha zw>}4ZDgxsm)bOL*ejEkoMg<;(2XjJEzdwNiiL~A|^R90ZstMoOgw;kz*0$n53=IBm zTsT=wObG6?Tfiq^v72lb4{15G;>5GL0sDFXfbIK(g|D+m E^^bUuyIph;DS<3+d_nQq L~UNL_7~7mIF~N8@tLh!o~QB7ctJm3_-nu z$P`0vlt7d#Aksw;xl#z`HAEsGg3g%aXC38c`oPIB#7;NNLH`~}H^GPac#UOBfNciF zIlxLY$VU5jZntE?lptF_3pE6t2~nv`rlo+WRY9(&fqE}c^(7;GetsS(3=w`geH{sE zxj-w3NY*eX14J}?kev=_o5M_9ilonEqAFyig$Sj-=b#4_U2qGPSD7I)&mbDrpu$|u z%UaIKh^JDKkD!4Fz5sU$;ePmU 0syQ=f@`}5FURB zhX<(KRs;30&q3uDR7yM9=s^2>BRgH&@VY9$%kKVhM$H#$Y{BQ1UyRyS&QFG7QF i9q&%R)NwJJW=het!O5Q%yk ;sE0bV4oc%}y}Ty_lwxt=bn7XLVZ>KdC70n+XE!*ZxfT3$)hi|qQk z)**4?*}u=zzbl&skUfG5YkwBu*wg)5OrOAw>#(< (Z+O-JJ#C&{Fd4%Ig+$nPD>RaYJR NwVm~w<1@hY)*EchOD@T^nIf@;sob2=BygFH}A^()pzXShYdXG49?`4`N0x) zs2BGVrlPF8jPt&_kb|6jcPraZ&?~tNdT6})Nu5j>+K yrmZo`*cUr4S-7_(P$W~?JNF+pL<$PBs=t%uF6lJ|W zRhnVpBzH-=;I~M{h@xyN3;Qm*i5ZF?Y=1CZcmjv`Yhb0n4cFD}BD_Htvz9_ @z-%1)gfJrJZ2FP(w40Z& ze(aT`W0A)^aiFP|4|aOKdg@i7l&BvnqI_leF-_|AOv1sz4<82cBzNimbRppTkTBVh z>k5V>;`AeiWTY`&p*YRFRoeu{XJOKi6+H5;hr2H#Mlrc4_n00y>vUK|=mCn=mNlAD znbj;|lTuAhH*v+XoJ60*Vild#!*dImvR-=m6J%8tWaL^6UlLd zT6sG61F}dF^x#)ibHs_;O?H~ Nd2`G*5&Fp#%$cdDld=~G@cVZ(p8Y;4QyLa zO$Bz3WU-MLfhlM*?a#d(Q))SxyLxf~;<&jPv6dZ lI6rlCX4nS>77=U(R7#F+ueQ(JRmA)*`sMVyts)^uevig^s}<2}(mVr5Rxme-*_U zm |?Kw<8-HO)utt82L4fDnu;@mnS3>e H}@AaR&Z(&_{$ZWYhTt&t8Au7_c2X4Z`!dkJWCig&}p;>n32O?Sms8WJzwjA*$ zm0Bv4YK_|D+r1gTiw2`%JM>Kh-+S%zCMI9avp=*J$kW+su2$zHOrBo5eOr)JInd;* zUqIVYpsUb#UIQ q5jZ;uSs1fTb;ej{2X{hW+|zhlf~s z;kO+fVnumzH$6X-JbC_cY3WXff&%_4mZWfRcP8Xo09jijV}781J6%FR79H#bzVT;s+f z#wEN{hvU*12^AAd=~#eKe|&<)*es@WI%KHOb?A3_nlFImmomSMS;oSez_j)lM$gEh z4%XgS0>wwB@QLbxXb+OmgBm39#@GzSmNf2AkCh=b0&h{qSDvo#5i&u9Cvw$t$|_P} zs?#^+&;ZB7)b%j34bfxLvz#Ywf-B^yAgHu4hStG`@i^#s3rb4V`*VN)=}mjmMu6ql zQ%i;_u*OwKb|5#gQv@C {E2Y6C>8T2s{q~xRv0k z%vU;# |dzcby|IzmU+T78aV6{53jAQ<=9`EtzuL!&^QYe-TBgyS~k*|8D9 z11S?9J=hNRhPNeLG8Ef8o=Nxi7U`nnHP1W4tVIh}q9#7(dUS6W^Qhqq?hJI9^LtXO zym8wR0X>KUCXJrpy25Z7<*0SFL>{D!+}m3|h~YR&-S~vZ@rrD8bSx}1nao*;>~w9t zU>bZ`_pm2a#NCT5j+K?gIMzM1l@(!+kW8~^a=uM>9St1~YgR@ZiCr-j*}i|P9Rpk? zeR`9H(Xlf8^4Lz*%#U`jrPM~(Q_R08;hNkHmfMC_VS>C-79NXhEB7X!y+A0*=dKJu zr(MF=)U^|IWw7Ydg3alC=sE_+Hlh~`UsHI2D(F#B(rrlK5|WdRzSBIPna NzVmNYHE0CsC#K@dOv35 zNn{a7>zOH@h8ry41utrc|JFiKx9tVvK_S;@5mi3TbK(;{OT zuGU?ZOlG?dl=p@+htY9>&KZ@P4?HLt|D2ycW#sYpN`HA(@}0D15H%a{I6+ydsd^lJ zU&qROUYz|lycKb_yPt7Qsu`_hXPeMvWb^CGxAT+J{=3f4k*L${og{>yyqu%Oy(dnN z&sN{Iy172@>+4s*y8J#kXvOMvc8mu+${MuuY*5nsIW*GR+NQ1LYib%}Y!tOOJva9< z?{IOY?z;SlPuMG3j+yDDE
-*RN~KHH~%rG94PG;{nm22MKf~efl&p zKK|uX4DMv}=eOdDADw-mcc`~_!rChC{OEZ0MOL|xY$6N)&Znub`K8;VpFX$;mX>r> zR&?PK%d6N>Wmm;NXBAF8O<63jt-glI%6wZ_J8 `8O;Fz&kM?(V_R z(Cq2y*;{G#PZ9AQ7EUkdxHdO;KLka$>fJp&Jb6ORRwu5Eqvv*Vim8%O`}iz9C@6J* z|H$x`zqc2zic|D$QAI)i+q-u|`#c^!mshV~70!F`u+-MQkYDz>xIqQCc((qXQorD- z)T}35!p*gHX?Jac+4u%p+M06;y5Ce(C8pLyJPt*vcQ?Q5tFDVf$uvKInI>hla_CbF z-l%K;bn>Jc1gSi0VC038eEsSuKEZ>U9Vnlcuz$3-yVsQGb++HXAGvQdsWIeV1A)*A z{->ws)kE{-wYh%X%(@#JPFr7#ZmbcZsp2&BXnNs@UT!iW811Jz>iq)lu)HhJSg+i| z77iul{=AA*!eR?)mB|b?8!G1P0;Ipye%%bN$&$UYupz$_VzSBE<=(rB-y_}G zf5b}EwVe%;UrrS8h?o5Slq`CgH$HsrGEFi~;^Fym$l}gU%b&Sl4+0*!eR2fjfam`l zo&TzA{WHQ65@PjzInU2|DuYg-@4TDgtKWscv2Hx1^HzVgeo<&>`^Bi&CkO3Xzm0K} zy>7_n`V%zv&wiiFgLmPwH@dsU5iG(kRM#7wr5cC`3D0->8?%VBW+@ripO$zfu-!!1 zWAFK``5VWFF3u6jUNsipX+prT71M6!ZBJsBH|oDUg2&&x*z~$pB&+6^l_3!{Qju>4 z6B$T;;K+M@0a1|}LHQh=F54jer6xMY(3eNO(@M`Y_4kqayc*#twy5Y*I%q0omS(c9 zH|2+y hO3KyJyx&+ O z!@cU|`&H{Fb4lhB^quzmvt&HNsVd3Er;HS#jj!u9U~BDP8{H9HP@C4XI+e<{cj^KJ z{ewEGSDz*XA7>K~!aEwD7*LNaAH_9TcZ7*|Ff?#djgrv_5aGjPgcrwVhDnJJ-JEg9 z(G<)tDbO9is)@TvS7}-$o?(15?>D)*-esftz4_ +Uyh~H%-+MytmzPyizZ$XG_XTBMtF(9iMv^G@UL}@+{4G*VL{yKd(PL zbN*%%{Nnc@a{8!_Z?dB^O3j__M}43~-}k|Jl~p}9Ewk2Q)=3i8*>8Og?ieU>sN*Vw zsc||F#lElS$1#l5YeQo($%mYrTnV~zQlQpu;PHjbww1f@EsD7{1G@C6UW|`hkrm%` z(R1=@o@Fe_s}G2QXQ*dGLys_GC#oX22s~mcWiIwy4Vo-}9l{T_>LpV{pwFGc39pBf zM~>@GSx_#YTE6+n2Uf?_{4>42No!tC^DC0!>g0=KDCSq)`c+aJv7bq!rQqfG`M3L} zt%KeXe$|oq Q zpX@I^`-w1W$VD>fWK8p9e)Qn?uvCd+v>5^WZIT$J&CWLw3eSs6#OlowA{^h*`2~I= ztF>Dq8H^Pa5c@u|)O-DXST|$OFMHP@!U?|0vevl%6|YXUbTJ=O3$7szC6_yI2r-x^ zQ_5^a(~^%^KKX7CD>y6Op5jaY7Wpi8_z6V~zeOFRhhRuH;gWx?Z5`FaTUR0@W>aI$ zqWjoy(1f!%#j6U?5fud2$y2Ra2H8Yfp F2VbTVp$DhOdS>^BA*To| zoOWk(^A!#Uv9J>JpHHc@XeU%&s0z4@sr;i32@5KV6YiY2dQMz?tI)cUKHKAda70G; zfE{YWQ2aS_XYRn&!0UP)m6tE|*3sVdh1CXciOA_q78?>GQBZ`h@7?yxz=cq%*v;Fq zs$1#QVlL@{MA@ph2KFpbj6vRN NS! zmW*MW#viBw#QW52;R E8vkeqv^@YzyR}L-x%$!wzKPQcxa~_P@$T3*S@AUIg zn^SS&HG{{0zUlw$c^7+d#!OdSFqpK=1doh9?fOoa6Qpyf~0ucq??1QGrs&ug0# zKbO^O2B8sMJ5Dzdf*S63u75$##7V{OdY}6G&pR@zEt*88e7uc#O(u4b%opoG(DrmN z;)~1fBv)$Xg2+r0l%J%l)6rI+aZFM$t}kzoj=C24C`;B#;jU5t?2?{S3%2OwL~niL zzG>FL$va8}=0paMkd (l>UqpyfeDjO>G`4VsO1<^NK gN0}fZs!$?cw?0SUL2i$b^t1#$h4&C {DV7K6G^8kmUcAJ4oSi%ihTZ6H$RU|=;>xI0V%nQrh_9^ zE>m(;W>T_TL`GWg0LK!F;`jM;KFN)X&)T}7!86s}yL&gNj+Q7=!DTJtA&QTdNJ+g& z)a2lEk8j-ePiVW` A z6tB v@0ovMdEyns(3`hs7Pc2ewTdmh?2U~eHOQ( zP3-*vm1gWF%hzzjZ)0_Jae?t7AD>ul_kONc;&g`$Y<<(>>@w`4?qTgPrsSWZkD)Ys zq#j?WPup1^+dYf+Gl5Z6S98pRaUdQ7lYY{2=DSWV9auyI-M5PxheWg*gc*fMkp0q1 z`vK$ZW@=3s)tO(#xqe@oJgKWdSudkR&_O3Cy=#0^^RifMS5H7v^3@)?PILqsvo%x& zTg rmodBn4PGxX&luLj1hqZby z+~3HE7+Sm7kxI$gKX)3zbyH8p78e>yu3iq_nc^3sympKuor#;33Z{#FnM@s_5nr=X zx*sY_v)%VDlfLaYB{{(I^@|qfz-ip8tp0{)MZQ|C=c`b2nK9w%GWM#M(cG^E^n>)4 zD;EB&W?;;|#|{y=Xgj;c+1C=De4u#iU`3d;7|bN;FdG75%%{F4Ms>etFA=g@11I zAXy$9@JS7;@RKl^UZfj*Rxqg-_f&&svT-_jdwctOr=+HcK)T-}ViWp>n+MwW1;rj) zqOSICj2M_-=R-#*e2k0}r2Daphp?c=;^WH-=ZN~6Ux_xNyy<%7d6(4~A0o$H$9uy2 zY0@&Oui~EKRnK#|=q$CL*JxE#IR_&Zt4}}8WLdP$I}=jFJFIw 2{c8z`&;EZtq#x{mKW7W2P$MY!8B40n@0vr zV$e)UOVfy@MU#+1ZG6Ui=NSiZ)k@t=;&F84y1t(wmnyy6)rg %H=eV}CJ`ULShyW!;KqTz9dvGPem+^jcjs$- zX^Mu^I?IPeY 13~?%W#o0tys;`I(Zsg>;?EyibOebA+
u8eSN0=s0W2@Mqb zu&Vd{`%2>?!rqv|+c)h_e`oV68l3(%{+{TaEn`vb`CKR|fdCtP7DF`<)tXP%qT%mI z6Y;jt-BW4fK??C&kJIxk8gny)7XzuH8Li$(ZnDpv?&JiNpH6s9VxPW0uQ%#wpi zviOFbk~z%ptD1o$%u`TWDa%A;%-4SS j$!wGyI^7(_XRgea2~ zd>;@(qieW-bf#Jcu3RatOm#t<4_htV!6kGDTWNlJ&3Qgqh $h4uXl*&h`4iAOkogP+=FreV7jOL;1Y-)1x4*nke4=q=eDfs>3CZyvmGiWf zg Q&NU|DA;+F zT85oIh1uqAzQ09SlFJlTl-HZ+yCldgRpV9U4}VsMGPG2Zm3oGT5*yuf^Jx>H)$ynF z8Rvh}!tlN7e!3| 6egt2m8cGA@gWkV(wZ! zjYjAzUW6?{?Hy+Z8t)~s`-JJssdXkVWIs-{41)onf&;3T&6``cFCx6nz*{VaLd9)# zR*XG6FKZ58ca*;fX5<}-OBfy*T6dGS-dU&`Q|PZI#>BdGRDKKEt>BA!PKQ7&2L&lT z3k+Jm712^Y#2_S+L9G>JxU(kUYCLOXoGl+B2Q2|BWaaf*0Y8h|7eWk$Cv4WOq xG!AB|AM%;V}29$A{iZPRGKbyf~%EWZ9JJwjG=smr$DQ- z=a8IFaE(`%9sLrOdl#*_)z_C6YNPG-@b1^e?(f*|AIP6*j|7IYAfI8Huk#y8uZx7p zh1m$95zXn9%kE>IVw83qMdBnPy6}LFMTF>R 2 zv*#JvR5IKY Tn=a@k+XmOebvL^;?G*5948(j{fV(X_lZUXVR*{s zbY(vjMz*v}V=c;`tUI_LxIL <{4T9x zJI;n*K0C&= YkhwrD)}LSQi(y5lp;N z2_GgB%lmHT&hNcez8EQJc$h+EMdXcLvEa=ew88^A+ON%x_L)XJ$bewV8jo7^Dl(?q zO_u#`l+kjh*V_@Jvp2SSIni tPU#D1 za>}kdE6?2tD~*UnyJ6fDzUSIFeoiB(rY GN>3nBJbB6g)K#c_AO zti5~`kSMmivE?c~9V9)}9vV0||L(Ydr=R7~$u~;ZD5opAA5Xk;a^2GWPNRHo(#TUP zNQ>IrCnWC*x1TxvHc=Y=XpokfJw|scXbmPkBP@yd**WHF+-%q{*4dPM{o~HKO;K~b z*Y6`VHgeEOfp7JxkMXIm=9 n{(7Ed6r^0eF{vSK T?q@saW-i`%{=rpBVnYR=#RtL&k*cgEv-wUL#(&9JF7#9zf4-i3-{4 z`g?59h< oXX ze=&Vj3ol2W27PemzPT})TPQ#OHUV>R9CS3xkR8(Ivqm599_L`eDgV|Lk}euFM<5$} znL@NX9Mnrn;8di;?p*IBS|M}?iWp4_&n4*OD>RdxNM02!YCY+RbI?ZPBv=aiXZH8w zQnS#%LlhAYw6iZ_buaEL$O`Lr?EQ>OEsQ^1IUA?*vcJ*59v^z *)&-`%ak?IBEfEM{v2SGvmKl<``BL8=T-QlI)B}odS5!-zt--7>V X-G6*w75F!D=LNp+TkbB_gZ9O4@ z5PWb26zGT#v{MIrT97g!L={L^{*lyx#PE;wH i3D1gS4AmzU?|CZ_Bk_v~&L6ZJ|{NMv!h(NhR zAV`Q3C^s+@@;|!$Ehof3<@oROAPr*T{SylUBzy=v_~1d5!3XdEg#11K_s$3be?R{| zIe(A;d%tWT2HAhg? EZh{!Nt-9Q{28 zKROKd|ILRKoRbE3aP$Ae=fA0gB>zeG?>FMFeACt0>0g-}2?YWvP>2xh|2~R;75jT* zv_O+}E(oL!kOJ@q7y`rqw15Ln2xJ0K2S@>U0}KIT09wES2M7n$0a5_o07HNnfEI9o z1mS=>KnlPcU SOTyBBme?fpoKs>06BnAfF%G6Kms6u z1sV_z$N_``ECE;m5&!`#fd7OYfE++5z!HE3AOR4-0u=}c 9>muv>m2uK6?0ZafG03+ap1cU<`0cij~fC&HtU<90i|70_O zMnD?C4`2uo1JD8v!2g*EKph|j;0-VYhyiE;2jJzN0Mr3e0NwyYfEeKaYVMAs>MrXz zj^D9K4h?NBDyo%aR8%W*qT<9_O0{Yg8PzN@s#QD1@sMYo_+u*0IZ<)qL`9`qMMXtM zMMX807S$>$GOAUiIN8QFwlT&w*zS7X_xC}b^En6pZs$Cnd0*e(?>^7-{eGYOn-|X( zhcP}sl?s3PbLx>WHivOt7|X*rGmIy)Ld}J7eHd4Uu{exf^TNHt*bv6mVVobvcu2$c zFt&v8$uO3M5pJETd-C+@{8U!zinGqi{Ck*gYW&E&5R;qwR2bKX@tH7g2%}B0WwXS7 zLGi@)EB5j^Vrz8Yv|^Xf5&JpC7Cn{B_p&)+r{`O#*wR^IYr{RS(|zj|d+98(%=L?k z?NIC`bHsjDu{#xe@hq{Q4{_@hn?01Qtz?#1)-}DhV#QuGM=bdx7gdT~Hb-o=VjC2D z;ViMleMzxhiY=Zac6ts&ioIZt*y%asKAr5t)WW1DLyKi<^3&mci6IZv1NFxG$`n62 zOFVI(2!mQCzDDsUW{GFc +zBR=2NcQj<$$UbKrP7DzrA~y=Eqf@kQ{nYPVGPI~ zjO=81eP0;c_9XY*l)5q168U7Xu`m|xO8fz{Bf*x+?vISQ42Q8&cApvVxklC;+41oD zfiUW2_nI9H)+*Z)*|G5YNEqF+dm=j;US|yhvZlzG{~la+cVt|{JaeB(*1p+nB3O~^ zuE<8i>)f+k))*OU F_%BKPvmU8F|Xtom_XV8Shyr`&eZ3A^W;Q zRuviVMV_i;AB~K)(Q9?GkC;)X&9ZCEsJBkpYBTcGC;PA&^Bj?V$c+8W4rc;;_CYh& zULdQCjQO*tWwH;Lu{VVWl6!K_Ty4(Y)alyyo3V~&S%n$%>6E=MGR`38( c~~O5(u{MVRQ6Ug>Zww;A~JGLj%sCZF{5T0Wp6g)bFE!= zg&Fzlm6e&1zaiP>X3QroTW&^f^Y R)k=qK{rDo)|Ms|rAxowbLY({R| zWF=;t2R*Wj%*fxMY?&G7!KCa$Gjf}^KUsUR8M!T%U0}v}ze@HdGx~O|?2VDJ&-7-+ z;pF`|E0&sb*0kx`H<*#b9@*>7$kU+gb&>HI!F(oVMUnAYMjhtq?0T&kb1jy=#*A89 zC403Q^IR({G-D4o%3ftgJ#CepZ$`~*lfBZ6n%OBUFr()uWapVtGmA!(T)e`J=ZmGX zmzz;fD`iW}*y}a2mqkW?=!tsSOCw|5oE5FImzYr#-LiZ$_H#h?VzbQiq3lIw%qRC? zvi296vDZbiJTrQ*T=oJp_On{H*evt>Cwsmb``IE}WX67W$(|P(d&!>l%g!~Uu196( zm~p=597@)nYevl%%ARY+*}Fn^wi!99lAUEnuhhwM%;=S7*+MgN+bKKKjNJCgo?}LC zM`YP%)LORApEJzZ(*oH7GisttHs6f?TP@2nqyN^)=9y71O|q03HPInEJ%8remN{}} z?~tX G{l^r#sH-}{7X6#E^cEpU&viu{-zKof%XC<=3kueYYuR?anjQy;U9W b0~7wNIhm9P3H8J8TGhC_M{p4D3$%! zjOU9=*`OKgsFnT4j9fL!{%yt@+hzYUqgQ)nJIz@CknEpkoEd4^KO!T)^l<(}vM+x( zW6w%t17_??h3s!;tglA)gc-flAp2`%)DwNvChIq&Z+c{ZF=GvbvOk-#hDq6<%veL- zv1ILiX5_Y5_D3_;w@UU0GxE1q_Ioq(w^6pkj2hi4`<)qi+9vz08T+ zvwd#<`e(YUbKsMb5Jh`&y%Gd(7yI2HE3g>|LAeF*DAM9@(R2 z?A@SjTV$-C+L)C6(u~>|iq`Q9bIyelohd&z%hbQD+l-vl$bM$VoEl_5HRE%tP4<(> z$Q7SAJ+dw{_H 9-2QuZS=dNFS@$>R^r*za_DCdZxTtfNBL{va~ez+7u&kC@Tp z4YKc>@od^A>oCjozwCQvJfjTCzH64rzwA3^nf{+j*4S>wp7N#U;_w|g-(qElZ^?7Q zmy~?f$$vxPv-{h24d=od-S1mw ebtOQESG)7jJ#LNzHG*Mv0m018D|W&(jt4 lWOtd7_cB?d897`nyVH!kuan&o8LyM~CfV&~oC6)Q1~c-$Lw1`P zy*@14WJXP7h5sv>-o4c<^ZX~ }E6iy-`+gM&8?HH<^*! zUfGRi +EOGvh@~EzQZ=97EDcrpBz}Yo#=(vhJSFI QnP2l0nU0u&|F_@$59V)JmjD0& literal 0 HcmV?d00001 diff --git a/emojicompat/FileMojiCompat/filemojicompat/src/main/java/de/c1710/filemojicompat/AssetEmojiCompatConfig.java b/emojicompat/FileMojiCompat/filemojicompat/src/main/java/de/c1710/filemojicompat/AssetEmojiCompatConfig.java new file mode 100644 index 000000000..ddf85e2b1 --- /dev/null +++ b/emojicompat/FileMojiCompat/filemojicompat/src/main/java/de/c1710/filemojicompat/AssetEmojiCompatConfig.java @@ -0,0 +1,111 @@ +package de.c1710.filemojicompat; +/* + * Original file (https://android.googlesource.com/platform/frameworks/support/+/master/emoji/bundled/src/main/java/android/support/text/emoji/bundled/BundledEmojiCompatConfig.java): + * Copyright (C) 2017 The Android Open Source Project + * Modifications Copyright (C) 2018 Constantin A. + * + * 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 android.content.Context; +import android.content.res.AssetManager; +import android.support.annotation.NonNull; +import android.support.annotation.RequiresApi; +import android.support.text.emoji.EmojiCompat; +import android.support.text.emoji.MetadataRepo; +import android.util.Log; +import android.support.v4.util.Preconditions; + +/** + * A simple implementation of EmojiCompat.Config using typeface assets. + * Based on: + * https://android.googlesource.com/platform/frameworks/support/+/master/emoji/bundled/src/main/java/android/support/text/emoji/bundled/BundledEmojiCompatConfig.java + * Changes are marked with comments. Formatting and other simple changes are not always marked. + */ +public class AssetEmojiCompatConfig extends EmojiCompat.Config { + // The class name is obviously changed from the original file + + /** + * Create a new configuration for this EmojiCompat + * @param assetName The file name/path of the requested font + * @param context Context instance + */ + public AssetEmojiCompatConfig(@NonNull Context context, + // NEW + @NonNull String assetName) { + // This one is oviously new + super(new AssetMetadataLoader(context, assetName)); + } + + /** + * This is the MetadataLoader. Derived from BundledMetadataLoader but with + * the addition of a custom asset name. + */ + private static class AssetMetadataLoader implements EmojiCompat.MetadataRepoLoader{ + private final Context mContext; + // NEW + private final String assetName; + + private AssetMetadataLoader(@NonNull Context context, + // NEW + String assetName) { + this.mContext = context.getApplicationContext(); + // NEW + this.assetName = assetName; + } + + + // Copied from BundledEmojiCompatConfig + @Override + @RequiresApi(19) + public void load(@NonNull EmojiCompat.MetadataRepoLoaderCallback loaderCallback) { + // This one doesn't work as it's not android.support + //Preconditions.checkNotNull(loaderCallback, "loaderCallback cannot be null"); + final InitRunnable runnable = new InitRunnable(mContext, loaderCallback, assetName); + final Thread thread = new Thread(runnable); + thread.setDaemon(false); + thread.start(); + } + } + + @RequiresApi(19) + private static class InitRunnable implements Runnable { + // The font name is assigned in the constructor. + private final String FONT_NAME; + // Slightly different variable names + private final EmojiCompat.MetadataRepoLoaderCallback loaderCallback; + private final Context context; + + private InitRunnable(final Context context, + final EmojiCompat.MetadataRepoLoaderCallback loaderCallback, + // NEW parameter + final String FONT_NAME) { + // This has been changed a bit in order to get some consistency + this.context = context; + this.loaderCallback = loaderCallback; + this.FONT_NAME = FONT_NAME; + } + + // This has been copied from BundledEmojiCompatConfig + @Override + public void run() { + try { + final AssetManager assetManager = context.getAssets(); + final MetadataRepo resourceIndex = MetadataRepo.create(assetManager, FONT_NAME); + loaderCallback.onLoaded(resourceIndex); + } catch (Throwable t) { + loaderCallback.onFailed(t); + } + } + } +} diff --git a/emojicompat/FileMojiCompat/filemojicompat/src/main/java/de/c1710/filemojicompat/FileEmojiCompatConfig.java b/emojicompat/FileMojiCompat/filemojicompat/src/main/java/de/c1710/filemojicompat/FileEmojiCompatConfig.java new file mode 100644 index 000000000..077fdc27b --- /dev/null +++ b/emojicompat/FileMojiCompat/filemojicompat/src/main/java/de/c1710/filemojicompat/FileEmojiCompatConfig.java @@ -0,0 +1,154 @@ +package de.c1710.filemojicompat; +/* + * Original file (https://android.googlesource.com/platform/frameworks/support/+/master/emoji/bundled/src/main/java/android/support/text/emoji/bundled/BundledEmojiCompatConfig.java): + * Copyright (C) 2017 The Android Open Source Project + * Modifications Copyright (C) 2018 Constantin A. + * + * 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 android.content.Context; +import android.content.res.AssetManager; +import android.graphics.Typeface; +import android.support.annotation.NonNull; +import android.support.annotation.RequiresApi; +import android.support.text.emoji.EmojiCompat; +import android.support.text.emoji.MetadataRepo; +import android.util.Log; + +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; + +/** + * A simple implementation of EmojiCompat.Config using typeface files. + * Based on: + * https://android.googlesource.com/platform/frameworks/support/+/master/emoji/bundled/src/main/java/android/support/text/emoji/bundled/BundledEmojiCompatConfig.java + * Changes are marked with comments. Formatting and other simple changes are not always marked. + */ +public class FileEmojiCompatConfig extends EmojiCompat.Config { + // The class name is obviously changed from the original file + private final static String TAG = "FileEmojiCompatConfig"; + + /** + * This boolean indicates whether the fallback solution is used. + */ + private final boolean fallback; + + /** + * Create a new configuration for this EmojiCompat + * @param path The file name/path of the requested font + * @param context Context instance + */ + public FileEmojiCompatConfig(@NonNull Context context, + // NEW + @NonNull String path) { + // This one is obviously new + this(context, new File(path)); + } + + /** + * Create a new configuration for this EmojiCompat based on a file + * @param context Context instance + * @param fontFile The file containing the EmojiCompat font + */ + public FileEmojiCompatConfig(@NonNull Context context, + // NEW + @NonNull File fontFile) { + super(new FileMetadataLoader(context, fontFile)); + fallback = !fontFile.exists(); + } + + @Override + public FileEmojiCompatConfig setReplaceAll(boolean replaceAll) { + if(!fallback) { + super.setReplaceAll(replaceAll); + } + else { + super.setReplaceAll(false); + Log.w(TAG, "setReplaceAll: Cannot replace all emojis. Fallback font is active"); + } + return this; + } + + /** + * This is the MetadataLoader. Derived from BundledMetadataLoader but with + * the addition of a custom file name. + */ + private static class FileMetadataLoader implements EmojiCompat.MetadataRepoLoader{ + private final Context mContext; + // NEW + private final File fontFile; + + private FileMetadataLoader(@NonNull Context context, + // NEW + File fontFile) { + this.mContext = context.getApplicationContext(); + // NEW + this.fontFile = fontFile; + } + + + // Copied from BundledEmojiCompatConfig + @Override + @RequiresApi(19) + public void load(@NonNull EmojiCompat.MetadataRepoLoaderCallback loaderCallback) { + //Preconditions.checkNotNull(loaderCallback, "loaderCallback cannot be null"); + final InitRunnable runnable = new InitRunnable(mContext, loaderCallback, fontFile); + final Thread thread = new Thread(runnable); + thread.setDaemon(false); + thread.start(); + } + } + + @RequiresApi(19) + private static class InitRunnable implements Runnable { + // The font name is assigned in the constructor. + private final File FONT_FILE; + // Slightly different variable names + private final EmojiCompat.MetadataRepoLoaderCallback loaderCallback; + private final Context context; + + private InitRunnable(final Context context, + final EmojiCompat.MetadataRepoLoaderCallback loaderCallback, + // NEW parameter + final File FONT_FILE) { + // This has been changed a bit in order to get some consistency + this.context = context; + this.loaderCallback = loaderCallback; + this.FONT_FILE = FONT_FILE; + } + + @Override + public void run() { + try { + // Changed to load a file + final Typeface typeface = Typeface.createFromFile(FONT_FILE); + final InputStream stream = new FileInputStream(FONT_FILE); + MetadataRepo resourceIndex = MetadataRepo.create(typeface, stream); + loaderCallback.onLoaded(resourceIndex); + } + catch (Throwable t) { + // Instead of crashing, this one will first try to load the fallback font + try { + final AssetManager assetManager = context.getAssets(); + final MetadataRepo resourceIndex = + MetadataRepo.create(assetManager, "NoEmojiCompat.ttf"); + loaderCallback.onLoaded(resourceIndex); + } catch (Throwable t2) { + loaderCallback.onFailed(t); + } + } + } + } +} diff --git a/emojicompat/FileMojiCompat/gradle.properties b/emojicompat/FileMojiCompat/gradle.properties new file mode 100644 index 000000000..869e8cea0 --- /dev/null +++ b/emojicompat/FileMojiCompat/gradle.properties @@ -0,0 +1,17 @@ +# Project-wide Gradle settings. + +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. + +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html + +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx1024m + +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true diff --git a/emojicompat/FileMojiCompat/gradle/wrapper/gradle-wrapper.jar b/emojicompat/FileMojiCompat/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..13372aef5e24af05341d49695ee84e5f9b594659 GIT binary patch literal 53636 zcmafaW0a=B^559DjdyHo$F^ PVt zzd|cWgMz^T0YO0lQ8%TE1O06v|NZl~LH{LLQ58WtNjWhFP#}eWVO&eiP!jmdp!%24 z{&z-MK{-h=QDqf+S+Pgi=_wg$I{F28X*%lJ>A7Yl#$}fM hymMu?R9TEB?#6@|Q^e^AHhxcRL$ z1gsc`-Q`3j+eYAd<4@z^{+?JM8bmu zSVlrVZ5-)SzLn&LU9GhXYG{{I+u(+6ES+tAtQUanYC0^6kWkks8cG;C&r1 KGs)Cq}WZSd3k1c?lkzwLySimkP5z)T2Ox3pNs;PdQ=8JPDkT7#0L!cV? zzn${PZs;o7UjcCVd&DCDpFJvjI=h(KDmdByJuDYXQ|G@u4^Kf?7YkE67fWM97kj6F z973tGtv!k$k{<>jd~D&c(x5hVbJa`bILdy(00%lY5}HZ2N>)a|))3UZ&fUa5@uB`H z+LrYm@~t?g`9~@dFzW5l>=p0hG%rv0>(S}jEzqQg6-jImG%Pr%HPtqIV_Ym6yRydW z4L+)NhcyYp*g#vLH{1lK-hQQSScfvNiNx|?nSn-?cc8}-9~Z_0oxlr~(b^EiD`Mx< zlOLK)MH?nl4dD|hx!jBCI ku-lI(&v~bCU#!L7d0{)h z;k4y^X+ =#XarKzK*)lv0d6?kE1< zmCG^yDYrSwrKIn04tG)>>10%+ zEKzs$S*Zrl+GeE 55f)QjY$ zD5hi~J17k;4VSF_`{lPFwf^Qroqg%kqM+Pdn%h#oOPIsOIwu?JR717atg~!)*CgXk zERAW?c}(66rnI+LqM^l7BW|9dH~5g1(_w$;+AAzSYlqop*=u5 }=g^e0xjlWy0cUIT7{Fs2Xqx*8% zW71JB%hk%aV-wjNE0*$;E-S9hRx5|`L2JXxz4TX3nf8fMAn|523ssV;2&145zh{$V z#4lt)vL2 %DCZUgDSq>)ei2I`*aeNXHXL1TB zC8I4!uq=YYVjAdcCjcf4XgK2_$y5mgsCdcn2U!VPljXHco>+%`)6W=gzJk0$e %m$xWUCs&Ju-nUJjyQ04QF_moED2(y6q4l+~fo845xm zE5Esx?~o#$;rzpCUk2^2$c3EBRNY?wO(F3Pb+<;qfq;JhMFuSYSxiMejBQ+ l8(C-- zz?Xufw@ 7{qvh$;QM0*9tiO$nW(L>83egxc=1@=9Z3)G^+*JX-z92F((wYiK>f;6 zkc&L6k4Ua~FFp`x7EF;ef{hb*n8kx#LU|6{5n=A55R4Ik#sX{-nuQ}m7e<{p Xq~8#$`~6| zi{+MIgsBRR-o{>)CE8t0Bq$|SF`M0$$7-{JqwFI1)M^!GMwq5RAWMP!o6G~%EG>$S zYDS?ux;VHhRSm*b^^JukYPVb?t0O%^&s(E7Rb#TnsWGS2#FdTRj_SR~YGjka RFDI=d)+bw$rD;_!7&P 2WEmn zIqdER AbL&7`iA^d?8thJ{(=)v>DgTF7rK-rck({PpYY$7uNY$9-Z< ze4=??I#p;$*+-Tm!q8z}k^%-gTm59^3$*ByyroqUe02Dne4?Fc%JlO>*f9Zj{++!^ zBz0FxuS&7X52o6-^CYq>jkXa?EEIfh?xdBPAkgpWpb9Tam^SXoFb3IRfLwanWfskJ zIbfU-rJ1zPmOV)|%;&NSWIEbbwj}5DIuN}!m7v4($I{Rh@<~-sK{fT|Wh?<|;)-Z; zwP{t@{uTsmnO@5ZY82lzwl4jeZ*zsZ7w%a+VtQXkigW$zN$QZnKw4F`RG`=@eWowO zFJ6RC4e>Y7Nu*J?E1*4*U0x^>GK$>O1S~gkA)`wU2isq^0nDb`);Q(FY<8V6^2R%= zDY}j+?mSj{bz2>F;^6S=OLqiHBy~7h4VVscgR#GILP!zkn68S^c04ZL3e$lnSU_(F zZm3e`1~?eu1>ys#R6>Gu$`rWZJGdsZ?^)4)v(?{NPt+_^Ak>Ap6828Cv^B84fa4 z_`l$0SSqkBU}`f*H#<14a)khT1Z5Z8;=ga^45{l8y*m|3Z60vgb^3TnuUKaa+zP;m zS`za@C#Y;-LOm&pW||G!wzr+}T~Q9v4U4ufu*fLJC=Pa jN?zN=?v^8TY}wrEeUygdgwr z7szml+(Bar;w*c^!5txLGKWZftqbZP`o;Kr1)zI}0Kb8yr?p6ZivtYL_KA<+9)XFE z=pLS5U&476PKY2aKEZh}%|Vb%!us(^qf)bKdF7x_v|Qz8lO7Ro>;#mxG0gqMaTudL zi2W!_#3@INslT}1DFJ`TsPvRBBGsODklX0`p-M6Mrgn~6&fF`kdj4K0I$<2Hp(YIA z)fFdgR&=qTl# sEFj6IHzEr1sYM6 zNfi!V!biByA&vAnZd;e_UfGg_={}Tj0MRt3SG%BQYnX$jndLG6>ssgIV{T3#=;RI% zE}b!9z#fek19#&nFgC->@!IJ*Fe8K$ZOLmg|6(g}ccsSBpc`)3;Ar8;3_k`FQ# N9&1tm>c|2mzG!!uWvelm zJj|oDZ6-m(^|dn3em(BF&3n12=hdtlb@%!vGuL*h`CXF?^=IHU%Q8;g8vABm=U!vX zT%M a6gpKQC2c;@wH+A{)q+?dAuhetSxBDui+Z; S~6%oQq*IwSMu-UhMDy{pP z-#GB-a0`0+cJ%dZ7v0)3zfW$eV>w*mgU4Cma{P$DY3|w364n$B%cf()fZ;`VIiK_O zQ|q|(55+F$H(?opzr%r)BJLy6M&7Oq8KCsh`pA5^ohB@CDlMKoDVo5gO&{0k)R0b(UOfd>-(GZGeF}y?QI_T+GzdY$G{l!l% zHyToqa-x&X4;^(-56Lg$?(KYkgJn9W=w##)&CECqIxLe@+)2RhO*-Inpb 7zd8txFG6mY8E?N8JP!kRt_7-&X{5P?$LAbafb$+hkA*_MfarZxf zXLpXmndnV3ubbXe*SYsx=eeuBKcDZI0bg&LL-a8f9>T(?VyrpC6;T{)Z{&|D5a`Aa zjP&lP)D)^YYWHbjYB6ArVs+4xvr Ud1@f;;>*l zZH``*BxW+>Dd$be {`<&GN(w+m3B?~3Jjz}gB8^|!>pyZo;#0SOqWem%xeltYZ}KxOp&dS=bg|4 zY-^F~fv8v}u<7kvaZH`M$fBeltAglH@-SQres30fHC%9spF8Ld%4mjZJDeGNJR8+* zl&3Yo$| JYr2zi9deF2jzEC) zl+?io*GUGRp;^z+4?8gOFA> n;h%TJC#-st7#r&-JVeFM57P7rn{&k*z@+Y5 zc2sui8(gFATezp|Te|1-Q*e|Xi+__8bh$>%3|xNc2kAwTM!;;|KF6cS)X3SaO8^z8 zs5jV(s(4_NhWBSSJ}qUzjuYMKlkjbJS! 7_)wwVsK^qDzHx1u*sC@C1ERqC#l%a zk>z>m@sZK{#GmsB_NkEM$$q@kBrgq%=NRBhL#hjDQHrI7(XPgFvP&~ZBJ@r58nLme zK4tD}Nz6xrbvbD6DaDC9E_82T{(WRQBpFc+Zb&W~jHf1MiBEqd57}Tpo8tOXj@LcF zwN8L-s}UO8%6piEtTrj@4bLH!mGpl5mH(UJR1r9bBOrSt0tSJDQ9oIjcW#e lyMAxl7W ^V(>8M~ss0^>OKvf{&oUG@uW{f^PtV#JDOx^APQKm& z{*Ysrz&ugt4PBUX@KERQbycxP%D+ApR%6jCx7%1RG2YpIa0~tq S6Xw6k#UN$b`^l6d$!I z*>%#Eg=n#VqWnW~MurJLK|hOQPTSy7G@29g@| g;mXC%MF1O 7IAS8J^Q6D&Ra!h^+L&(IBYg2WWzZjT-rUsJMFh@E)g)YPW_)W9GF3 z MZz4RK;qcjpnat&J;|MShuPc4qAc)A| zVB?h~3TX+k#Cmry90=kdDoPYbhzs#z96}#M=Q0nC{`s{3ZLU)c(mqQQX;l~1$nf^c zFRQ~}0_!cM2;Pr6q_(>VqoW0;9= ZW)KSgV-c_-XdzEapeLySavTs5-PBsl-n3l;1jD z9^$^xR_QKDUYoeqva| O -+8@+e??(pRg@V|=WtkY!_IwTN~ z9Rd#eWt_1w$7LL1$-ETciKFyHnNPjd9hHzgJh$J(D@3oYz}}jVNPjH!viX0g|Y9 zD D`Zjd6+o+dbAbUA( zEqA9mSoX5p|9sDVaRBFx_8)Ra4HD#xDB(fa4O8_J2`h#j17tSZOd3%}q8*176Y#ak zC?V8Ol<*X{Q?9j{Ys4Bc#sq!H;^HU$&F_`q2%`^=9DP9YV-A!ZeQ@# p=#ArloIgUH%Y-s>G!%V3aoXaY=f< UBrJTN+*8_lMX$yC=Vq+ zrjLn-pO%+VIvb~>k%`$^aJ1SevcPUo;V{CUqF>>+$c(MXxU12mxqyFAP>ki{5#;Q0 zx7Hh2zZdZzoxPY^YqI*Vgr)ip0xnpQJ+~R*UyFi9RbFd?<_l8GH@}gGmdB)~V7vHg z>Cjy78TQTDwh~+$u$|K3if-^4uY^|JQ+rLVX=u7~bLY29{lr>jWV7QCO5D0I>_1?; zx>*PxE4|wC?#;!#cK|6ivMzJ({k3bT_L3dHY#h7M!ChyTT`P#%3b=k}P(;QYTdrbe z+e{f@we?3$66%02q8p3;^th;9@y2vqt@LRz!DO(WMIk?#Pba85D!n=Ao$5NW0QVgS zoW)fa45>RkjU?H2SZ^#``zs6dG@QWj;MO4k6tIp8ZPminF`rY31dzv^e-3W`ZgN#7 z)N^%Rx?jX&?!5v`hb0-$22Fl&UBV?~cV*{hPG6%ml{k;m+a-D^XOF6DxPd$3;2VVY zT)E%m#ZrF=D=84$l}71DK3Vq^?N4``cdWn3 zqV=mX1(s`eCCj~#Nw4XMGW9tK>$?=c d$ule0Ir8UYzhi?%_u0S?c&j7)-~4LdolkgP^CUeE<2`3m)I^b ztV`K0k $OS^-GK0M0cNTLR22Y_eeT{<;G(+51Xx}b6f!kD&E4; z&Op8;?O<4D$t8PB4#=cWV9Q*i4U+8Bjlj!y4`j)^RNU#<5La6|fa4wLD!b6?RrBsF z@R8Nc^aO8ty7qzlOLRL|RUC-Bt-9>-g`2;@jfNhWAYciF{df9$n#a~28+x~@x0IWM zld=J%YjoKm%6Ea>iF){z#|~fo_w#=&&HRogJmXJDjCp#oVvMn9iB~gyBlNO3B5f zXgp_1I~^`A0z_~oAa_YBbNZbDsnxLTy0@kkH!=(xt8|{$y <+|(wSZW 7@)#|fs_?gU5-o%vpsQPRjIxq;AED^oG%4S%`WR}2(*!84Pe8Jw(snJ zq~#T7+m|w#acH1o%e<+f;!C|*&_!lL*^zRS`;E}AHh%cj1yR&3Grv&0I9k9v0*w8^ zXHEyRyCB`pDBRAxl;ockOh6$|7i$kzCBW$}wGUc|2bo3`x*7>B@eI=-7lKvI)P=gQ zf_GuA+36kQb$&{ZH)6o^x}wS}S^d&Xmftj%nIU=>&j@0?z8V3PLb1JXgHLq)^cTvB zFO6(yj1fl1Bap^}?hh<>j?Jv>RJdK{YpGjHxnY%d8x>A{k+(18J|R}%mAqq9U zm8^Us#Ir_q^w9-S?W07YRD`w%D(n;|8N%_^RO`zp4 z@`zMAs>*x0keyE)$dJ8hR37_&MsSUMlGC*=7|wUehhKO)C85qoU}j>VVklO^TxK?! zO!RG~y4lv#W=Jr%B#sqc;HjhN={wx761vA3_$S>{j+r?{5=n3le|WLJ(2y_r>{)F_ z=v8Eo&xFR~wkw5v-{+9^JQukxf8*CXDWX*ZzjPVDc>S72uxAcY+(jt g3ns_5R zRYl2pz`B)h+e=| 7SfiAAP;A zk0tR)3u1qy0{+?bQOa17SpBRZ5LRHz(TQ@L0%n5xJ21ri>^X420II1?5^FN3&bV?( zCeA)d9!3FAhep;p3?wLPs`>b5Cd}N!;}y`Hq3ppDs0+><{2ey0yq8o7m-4|oaMsWf zsLrG*aMh91drd-_QdX6t&I}t2!`-7$DCR`W2yoV%bcugue)@!SXM}fJOfG(bQQh++ zjAtF~zO#pFz})d8h)1=uhigDuFy`n*sbxZ$BA^Bt=Jdm}_KB6sCvY(T!MQnqO;TJs zVD{*F(FW=+v`6t^6{z<3-fx#|Ze~#h+ymBL^^GKS%Ve<)sP^<4*y _Y${06eD zH_n?Ani5Gs4&1z)UCL-uBvq(8)i!E@T_*0Sp5{Ddlpgke^_$gukJc_f9e=0Rfpta@ ze5~~aJBNK&OJSw!(rDRAHV0d+eW#1?PFbr==uG-$_fu8`!DWqQD~ef-Gx*ZmZx33_ zb0+I(0!hIK>r9_S5A*UwgRBKSd6!ieiYJHRigU@cogJ~FvJHY^DSysg)ac=7#wDBf zNLl!E$AiUMZC%%i5@g$WsN+sMSoUADKZ}-Pb`{7{S>3U%ry~?GVX!BDar2dJHLY|g zTJRo#Bs|u#8ke<3ohL2EFI*n6adobnYG?F3-#7eZZQO{#rmM8*PFycBR^UZKJWr(a z8cex$DPOx_PL^TO<%+f^L6#tdB8S^y#+fb|acQfD(9WgA+cb15L+LUdHKv)wE6={i zX^iY3N#U7QahohDP{g`IHS?D0 0eJC9DIx0V&nq!1T* z4$Bb?trvEG9JixrrNRKcjX)?KWR#Y(dh#re_< y*=5!J+-Wwb*D>jKXgr5L8_b6pvSAn3RIvI5oj!XF^m?otNA=t^dg z#V=L0@ W)n?4Y@}49}YxQS=v5GsIF3%Cp#fFYm0Bm<}ey& zOfWB^vS8ye?n;%yD%NF8DvOpZqlB++#4KnUj>3%*S(c#yACIU>TyBG!GQl7{b8j#V z;lS})mrRtT!IRh2B-*T58%9;!X}W^mg;K&fb7?2#JH>JpCZV5jbDfOgOlc@wNLfHN z8O92GeBRjCP6Q9^Euw-*i&Wu=$>$;8Cktx52b{&Y^Ise-R1gTKRB9m0*Gze>$k?$N zua_0Hmbcj8qQy{ZyJ%`6v6F +yBGm>chZxCGpeL@os+v&5LON7;$tb~MQAbSZKG$k z8w`Mzn=cX4Hf~09q8_|3C7KnoM1^ZGU}#=vn1?1^Kc-eWv4x^T<|i9bCu;+lTQKr- zRwbRK!&XrWRoO7Kw!$zNQb#cJ1`iugR(f_vgmu!O)6tFH-0fOSB k6$^y+R07&&B!(V#ZV)CX42( zTC(jF&b@xu40fyb1=_2;Q|uPso&Gv9OSM1HR{iGPi@JUvmYM;rkv#JiJZ5-EFA%Lu zf;wAmbyclUM*D7>^nPatbGr%2aR5j55 qSR$hR`c?d+z z`qko8Yn%vg)p=H`1o?=b9K0%Blx62gSy)q*8jWPyFmtA2a+E??&P~mT@cBdCsvFw4 zg{xaEyVZ|laq!sqN}mWq^*89$e6%sb6Thof;ml_G#Q6_0-zwf80?O}D0;La25A0C+ z3)w-xesp6?LlzF4V%yA9Ryl_Kq*wMk4eu&)Tqe#tmQJtwq`gI^7FXpToum5HP3@;N zpe4Y!wv5uMHUu`zbdtLys5)(l^C(hFKJ(T)z*PC>7f6ZRR1C#ao;R&_8&&a3)JLh* zOFKz5#F)hJqVAvcR#1)*AWPGmlEKw$sQd)YWdAs_W-ojA?Lm#wCd}uF0^X=?AA#ki z