From 82b79b61de808d58467e675d91ec7204f5b9bdb5 Mon Sep 17 00:00:00 2001 From: n2232 Date: Wed, 8 Jun 2011 05:38:33 +0000 Subject: [PATCH] =?UTF-8?q?=E3=83=AA=E3=83=95=E3=82=A1=E3=82=AF=E3=82=BF?= =?UTF-8?q?=E3=83=AA=E3=83=B3=E3=82=B0=20i2c=5Fm=20=E3=81=AE=E3=82=88?= =?UTF-8?q?=E3=81=8F=E4=BD=BF=E3=81=86=E3=83=91=E3=82=BF=E3=83=BC=E3=83=B3?= =?UTF-8?q?=E3=81=AB=E3=83=A9=E3=83=83=E3=83=91=E3=83=BC=E3=82=92=E4=BD=9C?= =?UTF-8?q?=E6=88=90=20typo=E4=BF=AE=E6=AD=A3=20=E7=A9=BA=E3=81=8D?= =?UTF-8?q?=EF=BC=9A360byte?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@337 013db118-44a6-b54f-8bf7-843cb86687b1 --- trunk/adc.c | 4 +- trunk/bsr.lmf | Bin 166336 -> 166588 bytes trunk/bsr_k0r.map | 500 ++++++++++++++++++++++---------------------- trunk/pm.c | 70 ++++--- trunk/pm.h | 44 ++-- trunk/task_sys.c | 6 +- trunk/user_define.h | 2 +- trunk/vreg_ctr.h | 2 +- 8 files changed, 321 insertions(+), 307 deletions(-) diff --git a/trunk/adc.c b/trunk/adc.c index 21938f2..99c093f 100644 --- a/trunk/adc.c +++ b/trunk/adc.c @@ -349,7 +349,7 @@ case ( ADC_SEL_AMB_BRIT ): // } #endif - if( (( vreg_ctr[ VREG_C_STATUS_1 ] & REG_BIT_GASGAUGE_ERR ) == 0 ) && + if( (( vreg_ctr[ VREG_C_STATUS_1 ] & REG_BIT_MGIC_ERR ) == 0 ) && (( system_status.pwr_state == ON ) || ( system_status.pwr_state == SLEEP ) ) @@ -550,7 +550,7 @@ case ( ADC_SEL_AMB_BRIT ): // hist_bt_temp[index] = adc_data; EI(); raw_adc_temperature = getmean3( hist_bt_temp ); - if( (( vreg_ctr[ VREG_C_STATUS_1 ] & REG_BIT_GASGAUGE_ERR ) == 0 ) && + if( (( vreg_ctr[ VREG_C_STATUS_1 ] & REG_BIT_MGIC_ERR ) == 0 ) && (( system_status.pwr_state == ON ) || ( system_status.pwr_state == SLEEP ) ) diff --git a/trunk/bsr.lmf b/trunk/bsr.lmf index c28dee2f95817a4c4550e8feadf3494c4b31797d..94737231ad6200d222ee651105b41915fb5c8660 100644 GIT binary patch literal 166588 zcmeF)d3+Of{=omq+4P{4QYkm-!69ct%b|z_D0hKU5K*g;ibWBT0aip&(e;E%k#$uR zDXzL++^f4Pl(vfCDpEnQ6q^Q74s{`1t;EbUzt?+`BJQp}e&638zwbZa*yK6K=l*== z$jk&sw-~OBum{GkT%#z?{47{B=MQLeP zlr&S8Nii|;Z!eE$>WJY}ToTQANeFqLZ>A{D=8EE}I@bYeoGlMvzey7PnVovV=B#u$G$zv|&6GuAozMHb; z{YKe_OdOswdCJh7y@Zo@Q=Es1Q}7#cqGcO#knr*z5gU20B+jkTI2Upw`zotBQlF8N zbEiuybRYwHr&}WLHN@H6nna?n=>E+qvmQ^b(Qrf92g-X99VGA9iSuQ2(dOC=+A1x6b@nyx7FzR)G|K1iIyq#>`?H%98yXm>hg-s2fIbTVV-{xOmF zE(V;uza!4UQ4)gf>CcfkXOyNmQnp+rX98oN_wT=)OJ#keKK~cz|Jv>U#?JrNw$QZS zInB1cj{RrT%VbP6ZKwIu$4nSAWdhr^ya%#Q-WqY%|9+gwj}l(qzyE5=XZX-u_HX~Q zIQh9!w*Ofi*~RDnzs<)fWse>ga+~sLI;U{3zyIz(+rWq;`}iqC$K*Cl@Lj=PO{u!b+0(iaPTE%_#7GjMAelUtX4hpktZMb{=9cx(%zSr z9zCb*eZ^7#X1M;1aJAIJ7WbKA`OFe?J~0q;Uir*oKcBeQ8Qz<5dT(#dsAZ@6B->}E ziu2~rtd8@x^Y+hTJm(Y6H&-2Jm4=n&Z<`u+9Nuwc$LF7Z7Y=`VjQ5w}a8(PNR-YE$ zoBsXY%yWA?pWWL<+uL>e-k#yTeZp1Awifj+rQWU7XDRjBN>x9_Ts1&xQ-76Gf3;FS zT&W+WR83aw_17w&o*=m&c>jy{smAc$gW#l13jXwJ6fqJe@z2|4WJfl9{=yY4lJd1vB&%y!|y-}4OG*{Jx zX6jG4^w<&V{B*U)asAvt{m)l;PX-#Qt9LiFlKA)j>`qQ|sL5%h6o}{JwT4mt?~epb zXBi_#Nm5^`JX~2EH?OkTJWpS0NwV+v+v-P!0@kWgA#<^5zLdupr+SuUzt3_c;9WjX zUuWI#i&0yq<(mWf#g2LUJ62t>EuUkODVJ3#&osGGJv4<(r<;o7p7L88%DbD?_#=CB z!tRHTm;*nrPe@sjv)a2j!FyX=aoj%tA^mb2>q+#ij9+P_rW`w~amRk0Y0F5a6kD<; z;(v)Xi&!N1>xlU*ahubw*q!YOtxsr`Z(Y9n)z?<}gS*@hmr*G7p0d4Laz1_A6Dp2# zuh{YK-fg4Rao?!pj;e8G#g4T(ffj1~F_|ciD;-G!MkJ-)E;Z(dKOx zDL~QMoJfruhFML%*iBYbd4eetWK%bjqafrc@5a_^VWuF&q_kOg+HdK__N(5MX>!c5 zI%rk`&1vqK6W(YBYScE!g>l6A#5k4`j~iE4LdnyFd_M0}Z|sP~qs zS9Vsf%$S{MQTy7|L7mmU7IjcYUW&fQtU6CCB->El#gvy>o?`kmM@exRiKrH$AEA0w z`(lSu@krh13^hHi+MSX{i!v@EIb5HpsaZx2S(1ZnGipX!_3p>*t(y9IASvd(a_Qje zB8@sLI=)!-jy2E8N6qLEpX>OHbUow6>5u_4KQ=F=GS8vE;;7gYV=a!!O{q&Lj&ZNh z)8f3>#RN`87kWQFnH00ft`ysItxN~(u5Q8Y=7w$TirriH#qRDu)TTbXtM1&H=#;m1 z4JF^V-keh6v8`6~@@(G4X76I<^f$5#z8L<)U&1Ha*4Xkqm6Er6Lvpblp0t!5bcf3h z9Xhn(pnfu;V!tmT&rwNBQ&|1Y_+r~WzukMC{p2*eQR2>V|2;s=$y~cSBhR+Ss_d~T z#Wr^GJ&J9zU+;8rHy@e5bU&YHU1RlLXA4vfRa$s1bYh?Gz0O)}-RF1cZ^i3n34vdg zCCMQzYNbWh8`Acel!oo*_2!&drS9tWW)3GQB=W@k_2z`UOO7OorZuMZW)3BJtg$vc z@NcVVu)sD?!vkUO1@Cnn-}ZSgoSg3ex zuRJU>bd3@3DWARAlxy)@js;8&GrS>n5{czHycbBy-8aUzZjKhP)X&j8bF>z<&6qeH zO)Zdoj4t+$G5g+@!?={^%-#Wx=&|FcylK(-SX#S+U*zcC?UdS9j#7)G#OiRA zS{;RrnTmL-Tsif=Qu$HJ(8LxspNCtN>oxGoUKReY*@qX6$rQ!`Y zKCfsO!ikMrWx)Z31QR8-I~VJvc1Oi2t0D>e$_?uvBrd zah0@Be?jPwUTSjenxr%qh6!zxsFjlv8sn6T>dHwS8qH`FW!~P3SJ&=b5?;G=#@e0U z&ms#eSL`fk*Z5VKSfahj)CpO-KAGg9_PxR z;_5r0ugf)Rs=KdC30LMdHom181(Om}+{RbJ-p?+4d#Xy=9pW%HTQ8|l*4RG!aDdgW zP>z26n zaJTNysI0O$ER$jz&+8TY{R0{YDu1y$SQNveZ}k0Jtqy;>5JG8FP zyff}zTfDJKmZQDmm=yMQXF!*H9`+8BA?+Plo4CBd;*XuVYiDB*{nRJ=uAQeo)Y;)x zO;XfiHMa573reF_#!kIl2~MtP_|u=JIUD`Kp-TS=6SDj20b7gZt6zIHHRsU@{`&sr zpo>M;J&N+$C?m|H6S8OjTbS9pi$zUgG`_0^8ja51aeBkS9cPt|4RpeXmoE9bA-th> z$7$A-9o%@{lDy$iG?=CA&G~7W`CI-YIa?&PX}?OX>+h$w z>97(>Zo@$%y|0@`i|2LE>vE{<5T$G;rR-8$R?8v^TS4*(Mh&7tKB%tr-g^5^d9`{q3V6U)XEPJ9enZNhC}Z5-cxTM^j|1D)Uxd02NkSp$Ergw za&F@8n8lwOeEX39JjW`!q@sG{K~DF>>Y^I8qWXrfU;KK;4HC5Wh8o8W2OVWJ%IV>;Ls8-zBSGosY*{`1*bT6IWc=~PEKRoZdw&iWxygjch zscc5s=JLZIY~JbIz4?>Fdy`D3Q<74gcGt}-$0&1^Mf2`e+VEfM>Gm^{75VRfJASci zP137}H+!~JY*n`A{VnP3m4A1>JLCPl@^!m5?_K%1Q;Gg}uj^JWE~PY&@AQBPi}nipYxFX_rniA+;-b-Cr+H0HEWjHY&Mxp zwzP@&uKnnH<$?R}TXN6hyBFQ{hlTUid3VmeW6tc`Zk<(h%gjRWjOjPsSaAJy)2^L* z&E)(^c@rm$A2)W)n9-v~ju<{{sAtI4g9lxC#XytQ(JVQ&eJ6*>WHwtYW~DLo)49{9 z&;4vo?mTe(^tp@fSu}V0_<^01tv}1+pF)j_1T&i`Zzp9CcS7%0o>ksazEsXBEle)c z1XG(X**TL7=PtT$>C*ca%`Kdqlij6FQk*0Dic30>9`rRU$HGYXs$(YLoEWR6y zEu|^JVvZ9nRhKW6XO5mxRmBJU20ZFOU+8djNqu~f@BMjZJ-;W1y5_|uIZ<>ZnmMAB zCj>Vo1ap)ZYHbHc2%8&gsse*qffO|tnw!w7)7yECzr)6^__!Nef5}Y zxz^>VYq219Pnvf^t$kK02QABEfge1q^T$$H?*$UE?5fU-BVU(Csm!zM{rHCQ%*j3G z-Of19+o@Qd{VVITw3MIn>`%Np+8TU$rT-_1dgA2Uon2$Et<1YxqR4d*r8dMe)lnNt zwc1F_TA7z1#gnTiHGTCnChNwulsDW@Ccoic;l17AolW5rC33?`LdpcWtuf`=ydUo| zSv*}BHjytyr`^4+an9{#j{<p&ji6oO_dbKuo zk7;H@dFx={T9Qg{9n3MUlVu%^Wy57_eelKF_&ugL*Ljl!bIBsp3$n--UDUx?^pq@8 zqKmk?oEeNvvx{lw&UVJi1;zS9p+MVW>jV>5PA)b}z)@_XiC8Dw^$4p3WS=yt)?Ve( zng{wZon=hN2QFti-k6RFbYR-r%n>XNVMF0G_(a3b?PBto6t(>54i z*GeK7)AqVJ+5IFQXdCqXvJWb$36-`DvitVi)SI1wEFIaeT<>l6)@*GlG^ zF24Gb)OnG;YfJeudNyD>B1u|}YqRWpJzUedI92PwLGv>g`>#PZQ_I)oM42VHJm+WB~rLGmSSsxbDuA<*fPh&jCqc8jXBVg zg?txJD7F+d8Vi%wm|5hAgfkn99MN#rNI2bCXeAugwdJ*?1jQB_*eXpb-_}d#7h4#{ zccd7M_uk>~&MBDTEi5eM(!lp2X_A}xM&H$#zR7$^o5*FH!Wc*78j=5eq+QNRr`7BW z$!?n*YW6b~BU9D-pzd6W_|2Tx~mzt{>FLO& zEDB{@--;f@>7J6f;2I12cCK)8h$}3O3v!I}Su6_A8re$|akset-X}A)1A8EO!Ie$8D1hK<-mC z9sVxfn^?~g)?B&VSRqGYxr4xk!NKxP3SGf37^H4mzR^`avCZ>SFrY=CMcf!)n`nH7;KrO&}L=5j$!}UM?^^@5)RZ^gx30I!A$YCD{eWXWmwZ*_ ztm4X1%Ky$u^yB3#O|IC7%h#I9*O71~l4o_42rd7KFirl&* zirmMGgj2K9s!KM8Hg62=^Dl6JxzDcNu}vt)bWnp?Q^(*{0qVGCNmh z$u&B=LT1UH+09!*67Kq5=UVQVD?yB@*|OG{n#m1hxg}kDxjOH(viC*D-nA8bOPAI^ z9j^aVxPDdm=(FLY&xDWuIehfF@ZL2Ks0#O~+kLC{_*QLuoEwqqJuj+pYu&5X$}P3{ zwd#U2)sn8ZOs7HJ^V2%2^V2S_&Tb6#Ulq=eiQb1JbY#6lT=cUkKF)L-jw0>d%L!Dn+?7 z>m2h3jtwb~2F^uFnHm|D-fvHuvNJe2{)c-@1~WU{nHGiF&)k_Y3V+^%tj~;>MW@^n zu3umIG#j5aS)G}-81YYLMIx^4yG14ro-FUnjdfPpJmi^4n)|KkHhP5q7M^ zW+~t9)WS3)(gX78=nt$4b2c2mHgIy* z+SOQUld7o6>9YzRD79al9#R@3)3XYOlsY04ol0Z1z!KM(LDKf6iCSQu%Nm((t_5bg zxd0jUxFlbgOpZ$1@By+yvx4RyTHIh3M z3Z#{s4|yNp+>)miIE>FKJs%1*3&gV>U0-K2#t<7(tD;<2ZEWsILjY3u5<%Qs`_Y_`d(VSTdU8~q9u^yTxZ|a8NSw?eH}7?YKCcN+i#` zxsKEVSGcF7XQ-3Y)xz`xeKmPjMhnE3^wsjrU%fP=bd**yN+Ji6-80i2(P?`m!IF`Z z?}3pLsjn7j>lsPm?Nxm>b0D#1q;@9R-Dq)lnn5?0jL|0c)qEM(b|T@@F`68E9Cb+x zVpGytUTZB{6tFxR_;FULN0UOcYqXpVH2;327W-uy=fEwEb8zYQ<@1Y8-m!I=XvWq& z&tpt*58b^YV3lDi+d!A)^8@M8Fjl5pMZyiM`*k=;QH?t;t@%qM7p-+)Y-IOC-*Uu% zvXeX)MT5(jF}9MDF4_chEoF2Un0Hr@WE!#5~I1jaYJGn`2Sb#@fvFaVg8J4?b@-%xzKI;*FGI^J?Zk zF)Q+ENeV0!tujXv6U=pSOf54%_&nc!o0fUMa2N}pdfqHro_gN0&wrJ%C^yNUL_GJ3 zmy(Upg{uRpkrk)?iN=a8O)FS@F<05ZPxilpUC8bOQ#3A;E=+f+3)9sW8R~*`mT(n$ ziY9yVdw!M&29#mS4OYVvr1on=P?v3&9sJFxSJ@y*D% zOwcfl5Eo9~b0sP9{oX>NR~1_>Nl~6g3tY}evBfCpRLv+THz)V`$4NJCknLH`j|m#5?2%hW9nyXC5f7BXkCoGhLbPrOXXYf?*2(O^~+s#&G~A2 zX@Z0@`C9O4^TkU{vphiAX;|b!MsrQ_HNNR5YpTm1DmfmKulDxn)sE_#WUaEMg%L`= zyZ*Nzk*n5R*NCL#;bA?0Or*3^)Yi43Ju%82NAjN7rII@%*`eNZV2?c}U{~+OKB;mi zTCNDMlLX{yZ&OV!Gb;G+^*L)?1ZI_4p5&XWZJw$hn5uJaJZo^(RNY#V&XwKc8NT>T zvmz(1AG2J(`(=%CwNr-8)%Hi$gB;dCuB$&%J`Wx-g~Fl?d54TG~GE^?PI)MVB- zZ0kbpm@L0Su2KfFqRF&s7x8BJE{=AQBsm5WRzi4BY`sf!XUD{<85vUA zK&m@4!){D9`^#K%Ab;x?R+My>a?6p?p5bej;ZK(C+^M=VcvjMC7P$q){hy2uo_QKq zGS|)1n6UXIW1*e977Mh_Z0W`ztBY|hy^`bHexrjrxYJ|ou4Zzs?9RzZ zP={y8voyw)8GX)Ref40DcAPRXVlxjc)_m5@i?!;i#ae8MN1J%J=4+0ncWd%QjS)w_ zy;^+MhO)NR2YwFu9StMf`r7=xt?|8?$wa<3CvRvwyw391w$&`&U2-aPSN$nDUUKrB zpHWoMe4p>yBI6{Tr&R;F#)CU8=qKY!*Tu_VMRJzjA~JiR54#(l_|lvAD`NDMj>Tf! z7vdUQ)73WPQk(1mje9hlRL61bSP<~a*y?QKNy$KSnY_m4;*z?xrgQMjj2B80gKJE3 zgT-9ZoXct@NnCd?xkp=L<1WD(yPD(VmRYiD{1+ zOAOcSBlkRvQ62dLw#bv=YbRg09vLE^A>(tTN2Zg9o?PfTkP-Cvl!4{5)lcK@)4FN8 zXPSOXZ5$8k+IT$oI>STu+har+@n0kie(M8cs{027PHP-3d7kjCW%pmz#jH)oo2^$y{F7=tWx+vQi{nA1dYO7vr|ZSfWisQs#t| z(@j@*c0s^Zo(Ol3YN=b=4T?03dX9Vler9aSRO!EXLr@Bx~s!u)Nx(a z(d_KS{>kB_DYjr)#- zGb(;VUT^BhkYPn&0=J+2V_3xGxwp?e5d@1__Gsejt`r;3P?n@RMi)2imwUbQfC? zGwh38X1Pg!!s}SQ>1oNJww+{11}!DS0=+K2{yC#O&uheaj^PlA^Bk9E9IKNOj3?lB zU%XEY_e=2>@%r)#mJU=bq?S2 z&4HWq?W-)37$oS2-~m0Fuxm=WmIFv{0% z-Tj*9e(m+hl4g-y8}9BF{72v$VoZJgnIc9}a>EuDaSQNFeH*R5tybSotG{1UZ_bc| zo;-mq*Q8pP+^>~(&^Z$}YO_?kwWIEDpp`fx+Ut_I>=fIPdvYAWI5iJs2RrDI3T|`H z&#*0DV+kY|bHDFE2c3r%JLs~Q1N?x3szO6V$&M{+op5Eg9n5U8D0d#ppahuUA+m+NNSzR`!t#$;z>va&t1`LpOo zS!CXDa9iM$^>!j#w>52IM5|qI=SjWjL{{@?Xd{73v#9-uC;#6{mT|nhRmmTv85Vgb z_|rE%sxc1hVi{KHk7~(*p$#%D9m5{ge3s*Zte*m|)H7R>xiU7~-|j!hDpAZUh!rol zacq6x;3~{d#)jfHXC^cZ>!SPYTf68dD@Li7OzCQQAlkt_mHI+GaCc3R8zOSv+T6Gd z(;~xHnBnW4;Ts+eaIKne1e|!FP$yP?%u!<5BP(4$E9G7EK(?$(jI4?-O5MMnKR!AzSbuADU?69ll^f^iIlU^lM=^)nM1jty|7}4^ z11r+4fdu335+N*lw=uMn&3JsAtFp$;r8Mr&G?&{lv)!3i%Sx_w?U-9#b*nzAzMH;r zj{Cmy-ny=j-tU)l+)Fa3mW96NzYbXaeK$R}D4qL3<=yr4-g?U%K;=DkS9d*f z?_|#ATlE9C>i#5&x~`k<>85w`eoSW7a<`McL5B6LOd1bHI9vRxQdCCjaD*mHyL81m zm+s-Oc5uB*uW{>V+(WE0^%R*ZJIMX%0f}72Ikw+tHLdcq%bmtWZfO?_S*>&H9=FaT z5%q4p+N*iB$`3!&DGeew*UXOz+Q)Wi=zcq%Ji57&rCWmH0!`k28^6 zayT^o1QW3(--M=rAL4-m?)S@mBI5}NbwP$c)>Y5N_Wt9VeumR5nldYzmOj0!?lMod zZt*4XX{Ecfb)KOjTurtf8J>;|UrV-#z%{BT&vule@uMAL^ZT9B4#84qu%<&$Ps%PV z?G&ua*3HqiMvkQ2-k8|Ai>q^F5@>Nr)dCAxWR<-AElWBDOFg!lPQgk^?FD|tkVN`- z?UuPuT@{jOjWc*A^K!-4E7Pj@x@D#-z6`lonviKyd~Gs2D!!CJf~P}p1_zW5L2tlL z&DV7Z8p+4~QpEr45c+X9y{3*m%1^i^d8S+WqGxYt#Z%g6Bfr1<<{+JVbVr|Y}azdL&h5}iH_#Y(4ufkfU?UaEM`1gTg z?A6sgmsx)DV*H@Uz4b_QezYRL$nl?(8{C2WS4?_=+vUsUn?r}?azP|kVh}t~RU9)< zzpG#2+Ppm`bD)w3-1qrCEAseN76JG%kw3B6Hc#K)Prl8WOk8F(aUX%7Ns(%|s%-Q1 zGDQe}k2O#4(653;V*|~X%h%ONAj`>^+$6_;ZRY>BxisBxEOBTPp9%Zhl*DQipAGw4 zl*DNhp9}NMB$oz^XC^t9`Oicn8`C;23I5lOQLc49*=dbwg;YKdQ1xUHYU;|LCisU_=9FiHon$Ju5sHV&tQ7o;n+IcI(InG z#<)z|H{CN?Gt19`Z8eiMZYq~f<`nGPir*?XKf?IWy+`CCldsJs*)@w?w6I4mTKs2f zvM>7o_8()|o{-$SV`g_3zjEeh*veP@utQOXY4TY%D7OEj>Ds7vy}#<6Hmcv?KgX`W zT88~|S6=8YVHM>XUZWKEA1ps*Wh7T$`b>I(v7VzUT6rJlZRhQilgD@5gP=1fT2;=b{lyWUaDc6H2<$44!!^g2TKEqpH%b1sRpGHY{4N5v2 zF%h?-r1LkFbpC-Y@m-YqZAT}r<1McW=B3>}MESQ3cA>Q2KT*Z;uSauuf(fy5DvwwFb4(<0(1R0jC{Ds* zI0c8}wU~o9;0TgGE@1x8ch;8(+uU@hzN#8}Sa@g7felRPkM$kK1tp zmg8Oc0WQLi@E-ga@5N7X3BJo)Ui+DsaeDw|+#Nz0cRn=69m@899A*6dfU@2F3uXL` zmPou#GcV!KMZ-0qjMHE=oQASpg;B<-nZYjO)PXWSTcV85RFv`A4rM%cL>Y%^DC3Vy z>`EGT#je;LWxvu3WxVx48E}PZ!t=GOHj6hkD~D& zVP49$93}n=lk?_W{2>kTN|@!wF|?>&_5xE#}QCuZWu*abgD zY0teV?YSQ>$1kx59>SjJL)p#`qqO%?ly*LWvfus@v+)$l_8mZ}*LTr+{lvWVyNuo6InS)ZEJJE>?P{!wCly+W% znfL&9#)nYa`w^6OegdU^m!pi^6)5ew3Z*@tMQP79I1pb%*+2G|LBZ=U%u79AMXCCF zlySTXWxQ=gsrTPd>OC|X?;p%dy!Vl=P|A=$rGgJhXD3ShT`1cw^+63nkta$e(f*9};gEO8z5I@*RiLK84YAa+#NO@=)SWLWws8CEm3t z`A$QLe;rEv0+jKjqO{9hDC6lKl<|Ha%D8$EWn4Xqa$d3wW&E#18UKGm8DGz!jQiCn z<7*AdxGKeTd=)eBb?l5Au`6!DZYcYo%W+|}Uhgn3^?DDbeYT<0ZwKfXw4Nk=Ga0-5p(=dQHU=XLHna-GjHoOJn@HR}s+c5>_VJa>_C;kCP;$1in7vU6K zjMw54EWihFIxfXRdVtf>7QDZ{kr^^0%VP%TW5a5@mZo zh|-^5qx5GTO8zHM@(rNm`xCaopHcc(M<>e8Q~J%0-DDOo$7a|Q+hH$sVsFgAKG+4_ z*bAlqCZcS2`8XJ_LD}A}N9nJbI0|Rs7`y|e-{zw9*M(?37cejNzY7^s%3`Fb$`X`% zKZH{6M^M@)9F6xF^RgW*Lw0e>lgK8ktVI5lKk*^)pGJvaDxJgY8RjM23n=-lMgEj^ zd`Qx-ptS2&l=gcMrTw;}Y!@G(^xwzm#J!k~`%t!n8tjTk@N)bPd*Dfw{nX-8 z%Q)DHQjXmy?Y;-4991aw--nWaH5&U3l=|19>^HtaX@~F8*ngmu=PXM5*Q2z<1(fnN zqU^^SqUA6#Sfm_Qly-?hDNh1QyIh7+p7to^>4efg87Sqt9Hl%xQO1G%gXz*P15xtN zLFtb%DEW^^83z+l`ad5p$EnyIZ^WK>3--p_P{!@;cooh?4=%)^xEP1yeK-O;nfc)L z0P`~WFiO2vptNu2==#;nTbbX4($D`uX~&%??e{Utc={Bj+*K(3`3>@?@Gk=y{Tb6a zvcFBh0W43#E3hR>dE4OC*dC?4T`&iG<47EUqi`aQ#wnPK*WpCG3-j?_yape`Yw>xU zf$Q;Rd>dzCL9~AFF)#hI6J^|ff-+t{L#gNIDE;&WN_}fk`sp;vcsYkMPR^r@XC0l` zs!OEbTBEds8~IZP^3e^4p!DM~lztqE(vPE2_Mf@f7pG!27GQt83FW-75T)I2M%jNZ zi`M6M=B1xhl=}PuW!x=B8Fvq%)MF(|J)TDCw`Wkw{{qUmTZdBajmV$!H$J4?@1X4G z-$NCK zbCiDWfKxCXr=lCDVSl_HufQ8{Fy4q`aXOC288`_G@dlLfa1-8wGjSHq#oJKD*|-Sj z;Db09AI3Xz8LC)}3veYa#Ak2`uEqQCFL*z`ic9e|d{m2Jx?`5kJT2xF2uFFL5p&z=ik~K7@y`pM?)zk1=n> zm1xIj(1FjR9A`^W#`)_g`}++jQQE5*rJSo! z%J%|F`CdY4x7Se0xe?{K^fpR)-$yC$hbZO!CrZ0jp_KPaWY?$Epp@@h?1L5xDf_MF zDEo(wDEo&ryb?2U5W4Ux?2jHCfU4+$`;jd6GZ9A_$>Cr zmr=&m8#n^D;3#|_$KeM!89zZeE_{a9;Q_n>Yq0>2;Z1lPr(+)(G`xOfUdG!gly(WA ztm+qCe>%GUTy*{U==wp?^$pBR`~8g4evK&YXQh&H7=tp-94P%YG8!+AdC9jq%A!sv z{m~009T!SE*(mAcM&k`)UgBMiQr-zDtFDQzzc#vlR&@PM(dBca%NIwN7e$xf7hV2v zba_p5`J>VKWhmuZfl{ugP{!fYDCK$<Oyrn1P>TXZ#XnJk=t9ia%OzA2ZTE-=MV5QIu6Dq?33Z zi!T2GrCz5{>U9RCUguHj^%F|He#Qhe_lj(1c9iWR7G=9gK-u1!qtv%0%Jz|pQtx&s z`-@H}_0B-4Z&#H1c1PK7^hT*?f0TM&iJ5pRTJAy2OTC7m)N43Oy>61i^BNspKR&uV zA0_H!lzLr*Qm?7l45y*&H|9s<7cejB--43veJJrCLy7+cO8gbr3|~Nr|7bM+i_!U) zP}=7;lyR^Dr5!#(>Hm*W+G8(D|L;fHe;hz*k3%T!QHRnVM^O6vD0ac)*cHFWZul>h z{b&H$^ptw!Pr1N{>|Zo=VHn+LW})nFRz}NhVP5JTi_)&mQ0m_TWqhQdv_mRNl(s1C z@k}&+yXg8%lyTAx6R`(MJM=~wA6Y2lV*pBfj7Av;<52299%bB5Mkh{1seb{=c$khd z9tu&~p$MfNW}(#kc9eSGiTo)G`H*@qLaF!NDErd~QI5;YaS*P+!MGBK;Gb|9K8qvp z(`Y@PXI|QAElN9WKxwBhqU+y|uHVtL9HsqgqwBw7UM3HrjH9oy8GeJ(PT!&IKaQbn zS0_-~?MIYxbPA>Y&Y+B=dX(`KLTN`+pGZ5#ptNHgO8X_Ev|kI9_PY#aJhet?$95>= zr~^tnrlYiDH{?(0&4;vKUzBk(5VLU*N_!5+0XPz+Jx8Oo=VZJZuSIFs>v1^VhBkCEzg!QOmx)0u0Hjdq|*x}9r-^cN;<<(f{aFqKO-7`9P`qy6HxNWkA}M@8g3d&J_RVpg_}^?_YRbN z=b^OYLX`2k2&EnGK{*~gfYP21qm19jP})_lW6SFa=B2z(qLkw)l=A)=rM|0Cg1(4S z4vQ3?S1I!n?`4#Duc5?y3#A?#QQ~hwiT^fA)PJC)^FB7mN|f^NLKz4DL@9sEXg*cU zOFsW#W03T=p`^D1r5$#nw8JMTxz0(lHCWp=_Uhu|M`h+237(vR#fw*)Fd`58jT$@O~VQ zPvHoB7DwR=I2PC9czhWr;%k_PZ(=@f#VPn6UW425S}ex`{3qUsdvFHs$3m>dnOKKK zcob*h3A`0g;cPsEci?$kfMzPY5N&ujw#3EQ3YTCe-iKXrDfYt$aUed7Irs>U!pCte zF30g$jFa(6oQ6-~4Y&$##6RH-d>U`YKVuO-gSX*ooP*Efe0%}_fNSw?EXDhA9X^P! z;A8kIF2mPxCBA{Ha6LYU8*mM7#I?8uU%{>TI{ppc#J}Ta{0F{`@8aKa8*axkEXQ)J z#1C*c?!>+L5$?m?_yvA~)%YpaU=@CYU*d5*fiC!#LIC(bh}GtUbf?Q=)jH`hn=w*4nW!7axe+UU@}g?mN*$@`}2KwNV&JHy))O z4o1^!&b*oVmMGZo-eqeO@AdF#t2uhIQDEW^-$!{FWesnxa zzLQbf|9ZR(Z$zoz43zy}Axirfq3r)|#a=iE``|*PN=ietJa;oMKcnQ| zh*C5YJ6TD}hEkpwlyA$@w>Fq~}asVaWgDB~KjnbcWDE;{zN`t=8t{7zyj zo}dWC%uD_{O8MoYspK1jl5adpeqB-aFFjHA?|o46aiiojI-1@f=4E_NK}oLw zr9QWyY^SqP(w&DAf#y z9!A*?kD-jie_;=NDq7Cd%uD}08=e1&c`2`kQeGL1QeHbsd1Fz6CZe=Q3zTxFpp-im zr5`$?v`crq411xJ--WF)3)^5e%Kq=oX#NA3mwvb!WgLt|DbE;`^1KrbHz_)QJxcj* zL@D3xDCL@qQZ5x`d@MvM$3rOjKZ0%Wag_c2a+G#liLzZkg-+ZX&F=-~r97{ol;bs& z@v#Xd|1y-I6)5|e4^Yzk2<1HbE0lC=Fb%)OOgx6tPd{RJJcT{*49fl?jQug;N@GYW z$;hA5i4WNiq~kDj;Rwvak=P$cp$Es{a2$(ca2$@qJe-b`@HUkF#T=ZBcj8oBh_YW; zgg4?nxESxnCAb9d!#_x+c|FR!^w;w!?eii^`@D=2V*|?g-i$I%-bNYc|G+l* zK1#oQfYOd1qZ26G}dXDB*8G$>%nd z@j3_F;+@zI=cA09d(esZVFoTmsrN(J6(7N#_&D~)=h2NXqtyQml=1T}GL)3}kS0>{ zW#izrgL$dXPL%q5j8cy;P_~H6qI(HhSH8VU^>o3X}?+69cQDA?A#FpkJnN1*?^MICY1VY zM#<-0l<`rClKzJ%>F-1t&%02@@z!X5A2To8(H@lis!+z=mnhpsHA;Ryl>EL$iFyoW zzi|SkUZ+s%)qs+(hN&1v*?-usj*QoMY|nfWN;z7hv~w%W#P%rd-3ev9X5!`86{Y=q zqqM&pW&CF2K1!zM7BeK$UUAr&`DQ5log{Q&OU%Mn*bm!ae{7G^KItgiac5-HQo12sr1U`9 zj(g)s%*L@e0LS5#n2Uok4?Q>ub1)xA<76C%Q*Z)agOl)DycVy+>+yQL5pTd5I0I** zZ0EOPAI3Hy@{{!BJi*OF!i+AD!sNzGo03X4n_&7d@%kd#xfe+(T_y|6YkKwcU zI6jZd@I_pX>+nf@1y|tfxDwyOKjTJx0pG?_d>_~0ZhQ%=@Gn?{FJmqK75(@+ev5D5 zaom6b+=Lf!D~9kN*og0=*~7INv|$;>;SNm33cL&}u{C~(PTYwZ_!0KRUFgEyn1y?= zKUU#YxDP$}1rEo9I1>LK>dph)it2j%=h8(GyV&s3L6I(Ezf=Jc5K!!gb`his7sMJY zv3C>2mT2sWMvNLY8e43Mz4va^s8M5LiBb99clLT`_F3l)_Zl_N_umiPb!MO6thM*r zeb1bkmmo(%z5=-`~zizkqBCc?o1Q z$jczPe{>}zeXO?haoCUcrVqA}-$$t7~$c-UygWMGI4#-ZB z_d#}td=Qf3*F%t7Kt2Z96Y_D$-jGj2_Jw>AvLECtkXu2%3ONw+9ms7UKZ4vA@>9s| zAisp%9`b9*8pxe2U*F)k5sn)V4*6>a*%ZgCK{kgRX5ms7 zw}gBXvKQpWLxNwbA?c4DAZs9pK>{i40*QZx-SB59kEXd~}=Rm#$IT!K`$oY_O zK^_G8FUUoZ51Ajn#xec45|Vywip0{7Eg@S%wt-w7a$QK)w+$g#-`YX00of69O~@{g zRM{Ppe(Vjo9^}@L8$u3(+z4_wWIM=RA*&&$LAHmS4%rcM4rCX|1(5XrLP*xbBO&Sc zVFtYS z>e(8SdUk-Mo*GE%84XE2VAe)k^uuo;>GvBTn?T+M*%b0m zkj&46kgTVVKr;Q$LDCOzL$Vy+g=G3afu!osAvrHz3CVo49v2d5vn?d;)<7~pLm-)-;gHPF2*?c} zr$Dk^Ooyaj4}fGkW&dZ@ zZ2u=g_J%wKvLED`kQ|481~~xoT*$2l1^GwFT_Nv+90xhY{CPKy>CdMj>CfjNn?b$^*&OmENY<0r zA?eSzAlY8ufn+^-50d`;0FveU5hPXr3zFsg86?Z~OGx_nKalJ{9x?l0gCP4r) z$m1c|zrSVqJpsqe?=F`zIv*_HRg**VmBr*GjYh4UTEQ z@yKAm86@qufMh$z+v1aSw}Yg;_K>vG5t4SgK+;ZENZMJCkqF&zOg&pbwt(CklIhAx53co~lQ z@ijX>2gl6kc^3amNT%;{Nc#6Eo{aDqj#qdf5ZAJLFc7>|X{#vVYkgvKQn| zkgT7BA=$s|0?B&0A0+#e$&fojE`%Hcxdd`3M{oNtyhhC7(e?Lg(e*h%=>4A`J4}&1PKn{guI~Wbw19BWB+rdOgwu8MO`$A5I z>>)R**+S)Mv#7KF|1xTPKUu;VrDxThVjZ^ymucoRGBYsVezxW65Dv*Q7F z+|!N++Hrq7-qwz{wd3vWxW>~n43Vp{nZIXF+8aDxZt%%z`<&YMO+aZk` zGH5i;r9QTiaPE*X6A;(3I`nH<+~~qkaELZ;@JQ;b{nKwSMHST_sy9< zWqR$xp3@MOh7cDHGhdbKtEs7!mP&r9l*TbFA+9EkEBAe30~O(UFl~*qxY76GnEhq2F?i5~VPS5_ zv6gWR?5`QVUD>kGhLtM`;X@A{LUKH1Sc!)}=`-scNyQb%jwwzYKXPa0H;Thi$bT9) zVf3(Jrpd?FNMe!?>7P#asZu`r+IPhV+Nsx`= zxJeTxAtug8CA+~F!7rwwP@Fq|dhMKIa#+bO+l&I+3WMzO^I-gs?J{mW{>T1f92)}b zPkb)>3YJ|QcM^^{uEcT6aojA5tCY9kAD6coQ|8W^b4Zf8N_iU!oeEdmhuH2-i1T^7 z2XS%UDy1d(tTZiD{{;Uae7mwmat$UNF=ydge>lcm%|5I|eQp6Y9g^d6eSb%MNMGP8 zmhZyasq^R8CG~yf%2tK7Q#I)anJs*SPn`SJ$1zPD{_5j+J!zc=aGQZ!w;rxIYf*7} z?UJM~Se4ySpH95Zgl5S}}}DYE_{ynO`FGoH{j;ui!7a>Bg}QF@$e3?r(^T zInK!#f;Dip;SAQ9nB$x+4zlYxo7N`xmXI&bJ*2p>b`dXeu^y~hW$9~`)W}Su^nHn_ z*zOvJ&}R%vA5V`t)}J^?-)fHI7{O2%M5?c~ zZ^Bg-8e6^J6W?;pagI@{_q=w?@|C`$%r7SxSDY0-u>PW6RdIYMPMbe>0c5i%PUS({ zaed)hgW;4Q(t2>P<5ZswOWWHr$Elv4;q)ElIL#-#zMnd-tUg=2Ji&40^)!@+IQfrx z_hA?4Iw{eYl?Ti1b(F`&2CF;*mzBp=_Wk)O7y6Cgy7aZO?S#^K3e5gO=nwe{+D~wY(p-LHRnvU z7lumfiob@hlE1unhap~9@ctb}EAD@>=6oqhg(W8W9R6@TVW^ak55iZ4@3ZC%z9_X@ z-)I*$82BG9x-;vPVpUvs{MIQG5qxgQ~p?LUtD8gb2{IIRN^ z4KAz$f`1s3g!Dppuq3*5BMx{09dJ#U{ zIITJJ>I>g<5YiXcOcl%bJFGdUKwm@FoO8f6WX-u09Oqc8S|idg$AJ4W*PN@U8zpPb zO68{V4fQY7wNP&ulZ9e&*!b~wSgHMP9F;HM1HquW##8w}lx3)EvK!)p-B3p&ML|vS z-UxoIRIfT1UR-Ds_rz|i4%uzAtHk2;Y~ihdAGtbVgjrM`nZXg$Qe$EN(F3 z(6yv?<%5vEP#(dzQKpy)guQSsLnR+<72yXO7w7F@#Kk_SWH*LyrVXU)zt>ZXa{BnJ=9udeE5m2$^PJW$dr6<|xjpIh ziR1m<4D$1{Ib5JJyU*uv)0{p&YdX${?56sxUe(K4KHhZtdP|W><>Rl8%i9YQr?$mC z1s@(n+j=L_m+d`l2WSP_>Z!`Ft?2@ntr1T*W%G^W;mgpsmg_g(L)_X?oXVHa;Ew&L zUWoV8Gl=6ex?@gjy2awm&wPe=%$2R_%+Gwrcg$(6c9_%0XMo3CS-Uj5p7VPY%10|S zh*%%zM+`^EuBC5n$8p}nz&$Jm)dN0*Jl3cFAW)hA_>A(HQ-5&0)5m9+$DI0uRG;P7 zbG%I>h8}{8&i3D@_hH0)0nbcocWZ`e~&qhDTxyN zkx%)2_?Xj}@(ZW0uj9(Y6y!HRj2Owx}B;lJsTsoPz-^-yhcmm0zoCd>%h_ zNZ(7zOceWn#!+`S=vz0cYmDRjs2W3ZeMD6CV1MTq&1r5-?S}ft=lsXzp+1r8ZwBe} zochFD8pv^fIMHW*p5yFFU!XF(dEC9#C|DjA6EbP9)y_V+Lz%$OJA|B zcJ6}W5}S{sjH((Z->;1oNu%Ub_#;1ieQF(Hpg}H`Ya!w>)b%DOBomX z4e3)m=hzd6;^2wJX)|XR?o85`^&5i#RTuHQ6#2#ajk_!#(zkI{s8#P7N8Q8FM{xYX zUQksN#8+B#%6|_#zi2M?q3oJp_&$!fJo4J_OODg{!96+#+5OmYWpfp?`>EqJR|(pn z&p5vCBTirWTqTspx5mkTs(;c)S%m+16Kp%QVqHJ_38Jn-dFVYGTCY|mT-J~8VCC^2 z%Wu*j;M`Ci;d-ci(A~~eTTq{~Qogdh@f{;^-Za)iZ4#ufzvDDdv?QgzAL%&F*P2@g zC7<%0C9z%at2~b9#6jsB>-1F{w7Rp)cca91QDh}S`aIXgs5Yjr>{_(>wQJHlXDX$S z?_i1TZehq;N}u&%wT|1;IPU#2$S<=U$8}U3@;Ki67zc6loW31m2%nV?z8faa$6(J{ zz2duLVs2;|7ut+CwV7d#sN*-sDS)K)ns*ZhiB&W4S!Czy@r z+&M&a8svMvPbc=N)`-287W2L5G>?!%>ATnI)A-xp>3hg=W&NMk-R2n3;`D892DdkT zJp2VR#>2!1RiSWtl+0d2+%@3%iPs#6ah%!GwXNcu`STZ0DMHW}KKFE-^1G%>-@t$u zYFvK#o}oA&+Zrb!eS8m5%&E-`b^7?8qL|xBicCr$-(M7S!|eOv(r145+;HPYIIgeL zCvLnrt1o$+lBqs|?^TM^Cw-pddzWHvgaDJ$H_>q;J!kpldzoT=dm6Wg%ZKOoZlJz0 z&ivx_?dSDbUvi_RPi=p?<9K)*>hmoL*D|^Pk9+3VB7WHv+>fJtSRcmsOfkRGSJfy0 z(~YCP$DwaMw|;vWaqA~>jgoa7xxXQfd+)fOVs}O0cY=u9AUap|?_TF;%^7B->6=QG z$$PKj@=*VBpg8j%--{JW6q;k3k&Ymlf;VEPP#9AkOUaeOfWs-Z%;A z>jw^fclzF#cncwa;ul;5e2<8Qa(kjItvyH>tlU-{f; zMxuV2*;PAI{~X)?25q4>;j;Bnd-!AAR9qi#97xT_`MxyfSNe8t)GPtcH2?8{?}&y< z8;?u@#su-#+0eXQYoW7EfjGXiE%v?U0_Tb|U-4aTF_$;LKiYAc z-=8Oa))(_#aIrqEnJyA%cKNQjnA18S$vpljA9|OZ^1G=4mpFYFJAKtsWK#P04!YQ` z+Un&_AKy_IbAIhCeSC*q%xO;Z8>f%&xQn?SK7HmFrdmtDRqFV?3veZAS$UJwt% z+$YqvJ{9U(d(<@y0VQ*!zBzNGzc{-CEMYgf{PG=rar(;E6;@yP4!@Y&(e&Lcea1CH z0mR%;<8BjY{^L9TVs4ai67pY5$Bj1NPN$FW2#ocOks_1Qx2fYM*!Oo!pXGz^6pZ!l zW!!z@EFU{KZr>ccqa3%taesFD_>RKZE~XVFLHXc23}bGZQI9x%e79lD%_z~9wO_vb zFy>|&_k`1Tu;XUu=sU`BbB%k(={w1BS_eq2^2>KE#_3yVz$;E4-@zDji>1h<#wgD% zX&}eF`Zy?keCK0q_i%&WaOu0;aojVCgY;eLxT6euOZu#y@?Da#-D8Y$CdexfPzXdf>SmjN`py3R`15-$?5>4(tdw=8Wfj7i*lp zTLNC#K>0Ac0~~j|ahr*=eC*`7JB*W1J@DL}0!)e<=Jeg|IZL1C?lX?}&nb+8UvPg| zv*i9T^UM9tFU1*irW}A1z%`G#2OOt*&v(?u{`-p=>+bx*ci6_(va7Ywi;m;rB$UT-N&3Q`2k#fi=H|RUw@*#a&HVz%tw#F3~hLN@z&c}Q=*~^em&v8CzPU8qW%7*!h?*oo~%Dvb) zNFU$-8*^IYh*jO?`+#FkYnO}*dE@(n$tiEu0wOsTzIq|yvUTXs@cnZ5O7H8{I+X7l zj`fW*UyV?Htq%RwrH|`UhSBnA9e(_akowfxOw*jU!1ox(`CXkSBaCr&`JUsLYaOt{ zcyU%9d=GLZ&hT_@!S^G_TpI)SaQgDN`t<2K;{Hw_-^U!=6_@I>e0Wa#VV>*k^sOVn zr0O5v_Z-{R+Ih0lXXU%KAi7ai-W)DQctz7vKqcCPMx!;7O_N< z^)KUQ&8uT1dk)3Pr+lY%?1NTd7#7K=R+fC%bxQq>ze*q9p&fJTa}IO*_-^f(Q{9k4>HCx8R5yO&^zohCvA$|4GAVt0XLrnXvhR;^ z`uI-onCp_GuQ4`KVy>TY$D6*Q^-b)O!v018`segbZJa*sMV_eiS(|C+IPFEAD$eRb z`y5W$kze>O@;D#bi{$<545|ltT%fXg<+<$zn3O)g`#iSWP;Q3?>f5o5L&HVjyVhw} zZGTV_Tl(h^w0*vVo%cBCx4GQY?}mxjCGv}1>j+$??-Bbxnt+2!vY7*r4Vj(Y0zTmq4^dha>;?*^xj@4AomiSzpS?)sS9(14qrKE2ys z>C5Y{?sED%n!ekdzCYz~K7F23f0c69&hK~n%DGVQA2Ck#9*1S&Dmd%0gv;vvj-a~D z%${ATF)wgg{oBL}_&(*=%I!s$KGlOii?e)u>^RNMlt|SB&uMO^cBgvvnbRlE>+_th zL!_Lg?@OnzoC|(#g~hJ9D6( z9jZBv=j7+eY~eoG<+Db;-L|m%n##lawZLU|cQ%D7XZ?%kOigUI@FeUW?d)=#=?1%h zb9VXcQ_kiRr6~GB-AH6IADz|l9J=m{F06vZ!^e^b+q2_wD^)2Em&HuJEeadeO!U+GAU#y%kCjf}E{@ZDQW;VCdQSa# z%2_^kcltD+)J+BQ%YKg2TBE7T*YZ2faqVT$r1aG~uA_awy3;q?ah<(Bv+KDop0oU( zu}0JGH? z?w&Kd&p3U1d(QN|K2vci8>R*oj!r?E$@#?Tf$O6NX) z&P9G3of z<6W9L4$efH_jhTYJs#A#-ECUJH@YseW%hN?8p2RIuxWCzUt&O(|G zv@~;WOFwgOX&KTy!=-ti)Ax;~S)9@gl}uk1^~lehpD9j0J;dp&l)j}1)(9v@LO!(x>(2FQ(Q|eG3Y&Vy(X77Hiqq;!AFOL}NxJ+q zj@n1h>D6;}pTmG-7$_uV; z@ZAfX8*1FzC3*7#o&qh~SD#u>1&sjhu80^xkbwTt44bxVs=7tbhc z7RN0NaX^!LZ)OVDBBDCt)VK3p5b?T4eetPjKBgwN`A&$K<2b``dOe)x?Y#e=L1P8q zEfMPz7pQFP;X5Z{ZW9B3E`2uNXzMu5+s_kc^Nl>t+vPhhV!K?cGhFKQRp)Sl&hqOy z>W+i_;<@S=!e?PX4>u(r0$} zbKF4Vt`leFG1+n2SC(Pr*K=k2z-E{43W?LVlPS7hc8%k^KVnYv-5VUocZ0;-B-3}Z zILim$9TIb8^IfyccZEpXoVttEq^zq#)F~@yshKHoj z%7gD-iMe9}R(L|3l`r4T5_3N_PD1sR?`ny;lLVMle)%q!m^;;TW|!}JiMi7o$emfn z%}8RTPveolpNr6)7%PrT#>;H(&3eD$KfTsFSFnOKQ9n|r_P<~cYl3y;9= zE6(m}pzzb)0_Q&rnsWs%v%3z)Uxt)3yMJ|dO-+FDSM#gAv8d7fijT4G=^Bzf+B!M! zznx!=uQ0zFP+@-6AsMH?|NJU`Zvpci<}^R-GbHuif=?QSXL{1cs@_{L%IY(@`kvkP zZB$q

8nfnOzNicH5VU4yznNMe_GO(^u(PVJ%P>6#nJxGX7h{QDd5x|H1nbf-lPR z(ZV*ME9GMi%g6V5c4hEIsonaXUAbZ8zYQ&Y@)iBp1#z+e7&icMs6wev8MiayxE_kn z-3M_j(l~A&;%G9CI~;K=I>l9bo?Gyb%UeCquB?vob}DQz$Ob>3hd7_ND-ajwtx{To z&q~umeK(nnO3xS^7^UU@G%ewolzH{#i8OtIt609@;n|gMKp)pe+!t6oO@8`;SxCZ% z;CM}-KJH6!ykDq3t}!+vcf>r4`lgg!8q;@wWwmNU>H|*Rrrwp?E#MO?51Bb?!oj~(gc-0TG4Y{LtP4X zQ)T$DO`5*dl6Rzs?*ca>O5e~leJzrAs^{q&mvXJZDIaJuQI)BbzTk`U^i74nF!p3~ zmBC14@7?g;2}_^m3>u>}_vv669i4Jhlb9ArR$F}1KBlf^jd9#Mj?*cuKW!#J;rjK#*OCQhKbGGLrU)db#fLYVrBx&vx z#M!yub&j;_&O?g3j@)%*p*p<#jq?M>O&m0G^yg#4d+->iy{d-JrE2~Yzkln$e+LxP zGJ5Qwp`W)2?-I1M{GfYP*bn2YzzX*wpX}R$jr_f;crK-R?9ovfO&U7Ul@RV#9;%ft z%d+%Y=ndT`{9pS%p2xCj{TRO2JeJR-ZEH3fI**m_&qnvI_QCzwxziSx_}}87{r{%# zIePv7=KK2A5Ern*SeToRJ>hx74P8V0Jkb#iP|#PLH-EuE$WULhv4_;-7<(=;yBd2` zuhho^NkYomdew8Nj%DFc7J96Gkp^r zr}4Kwu57Q_d_U3j$yZFP52wQSydS?U-h`@qvNi`a0vFbK-xPz&d|#(;NiuW9Gcx4+ z38M#*Z-oDxuhDPCDbp7&f@~Sb*?r-xTjVI^s|C&nm_8@rPNl_swa9TQBg0dDiygPR z0F#Br71X4ErSDG1wKw8<>9c&?>$r}_y)4e`KIpj4sm1U?cAs=y zch8x=hH|eveLc(cg?TLRnTzX2rMk8PmEhBa%jz1rJtyE^3gy@8+80jWS60_PFs^9r zm&r-%m9^iJx@PS+u50quH!g2lYkaJ3a9S~!h5 zLi?>MtX5C^?dN=eqDX>0?j&u$d|qtqQ%kDRS^FL8IJMtqHgKvx*u`;q?RUK6G`{gZ zCkB=I0gh8yt|89KJdX?7vi|Bsr;p=X9AuZ*uw%bqtGy&BzZW{rw@cNvi;PoU+onWY zICutiEv$R8Ywx?_tKR3L4l2Laen;D0v-B;sn>cyD7K8G!pK+R(sDIwXI6VU~og;Ao zMrdLEK{(3vO>_F#?io7Bu9b)9Sa0JX|9P%#thIjJb9wWoQ(gMXeyd<(_u0;Wybk5V zYbcL%6D}(cEY}MUqC5sDzg8aSIenK{dGtuRFrU1{r4Q923BARc|E_af-kj!lj#Ild zwP`zl*>SAfaZo*d(>T>DwYQjkAAY$wsn6LQo$dE3EWZaSALf@|xqAPA^@-aVr#_K~ z7-y3En^brC{J^*k+9_#LREK`&xH4Z^ne+NL^(k+@PEzr=$lFZ`m*tJ)!t2P}IF~nG zCy({LWO*B|yxG`TDQ~4O>HH zVI4U7`Gm`!t=SFKz}>NqP(G|41TORar`FG;oY}>zyGwlP^T9-PVgX~I;(G=4{N3(| zS_-@SI=g|(?AlMYGS2LFPxNJ6CA$M*H*lF<){PagJJs3s`qm3mfs8Y|yEwb6L!S>L zVVC>3@p}|!0s0bl>zv)dW%=l4c4wqq=!eFcU5yKx9~>yo>fdgT!(mBK{oB`Zs#o)z zzJqc&DV4rU9oIpCN!922xf#hB+&hTdD(j06d&18*C0w@W(FM@sd*HV_%7@kGz-4~k z%lyoHD;boJTU|cn=flOBpYyn&Ez@_0(}%;7Aiq3SFE=AO??vO(C;I+{&=AO)|#3nZBHA^t%g}wV?_g5Sdl$_Ix$pLT z$L2JF<9)Av2W^h?I9FmE!_lbYfy?H44v^=A%pRq0;>CMoSCd z<34NFG;X_vb8Xyh6JM0XcX|4>e*1mugD`%q;p~dL#c>%SPUG9dPTx?+b(JEM@{8v<4~v8B zj&}Ok4j3MlUCZxYj??wkC&gKQYaO>$P?!Fd-MNn2+K6YJzD15JyJyzY=eZqB-^)(l zDNf(8G-cs~{O7sho-?~=IejCHd)?Vx?l>Hl1o_2tV@jy3-g|Cb1G(MGxEV>z1(rUI z``C^y3+J;>?7==Zn-5{iSvX;Kq41INYki{nV(Giyw56QQcemZL^!HJn%B*4?3A@`R zTxJ(hg_=2q0>?}S%{Ky<&BI;{UuT@z9pda_nNbonCU1aAg2v=IwbM(+W1fJx^t}Iz zV>106#=#$FOde`}4mR?y?_Y2APvh_JS-=RD?)6(sn^yS#9^>Ns(jG=!7#r={=l|fI z#pX$xY%ony9{xPLihOKf`S?EfECyec+O6-N#SW4G-mT!je>wj#Crz*b4s(#~{k7{M zj_a4$_uUc4wiL&0kGL?W$<7^xI5u5zx(_OpTey!b_{Zg~o_iL%M|s-^HW*}spASG> zu#u&u4smhbDy1d(tTZjucZ}I6y{9d7N`s=b{47mNxR)-kzWg#xU*Ia1?{~Oo@jB?^ zT#WO?Ro%1r2XMR|Qy+IfxOE!9Jpqo_ZC0i4``oj*in?L-FZi!gxv6|Z{R?$1)EgU2 zkZy(7kq?H_@(q3dShe4}+J$oimgHCK%8zhvsB77~u>Xy?P}f2nelNLbNguVNG%hg^ z+EILOV|Ah0>`)XBSU8We6aLfB**%bsn>uGPxuNxN@(YdYUdd308B-dXtR9ZPT^Zji z8MsMNy${?mfx;9PI*P_reZMLC& z_fN}het;9Z;XUNV>9up1l2Aq#H*fyI1e-*h(h}F9knhquRGcwodM$1|3FBaP9|c#4 zlQDl;Xlc>>WrUlT^iNWP`$&{#OG~h8zyCd8{uHRv`m$utd{@)w_w{C^cBkS@{HEG* z?5`OP6le4M368U`1B}0#$L{Vp8)h=j^zGp|E4F&MRw)ra=z7JTrcd)ut$$;@4~*=c za9Mc_0dO&#c%1TU^VofzzR^}5ON~p`;)@sA`&e33t%d8bp&qaXDd6|wwqB@p`PKg4 zp{d!;p{0 z376%gE#jBYEfmg4(--swF3ZPxrZ44eowAX$tFguKM2v;qjh)>i@XhnE`;fC6xXkXg zrsyK$c(@<*{WjWXW!xOZUFYHsL)?lePIbJKrCEKBR9~XBSl#tpS)H^t)6MB?%>*G_ z?)3F^T-koC>Feh>&Sw~|ls@A|I8J*(zY(WC(Q*FTvHY^H<2nShh3lQZsgCPxoP_G` z0gme?z@+SYZgczo2HCaz);WD@3pb0i{4RBzZws>Px&CJNR_QalM>&1EXX20I%&zAK z=H&Ner*B*1?soc4bKLeh`p$6Nj-Ipho$a`q26BUPxO1Jpp=Dg?OT?*<9p*S5o`|-( zJkgi+O{~v%&BJpH(sZ-%L zr1@Ew=BM~2rj^_`V$i%Ua9O|G+UBHxv%Hag2>Py%`qSc!g;VC%;vL^{9N&+K-TND& zIG+0&&b={-Ymv-FD$Pa7eGcvq4d7a1K)IfpyR zaU&bZjVj|pe}9$fQ~x~HbM_myrSQA&f>g zeTnq__rFbxuP1X}6w>$O>|I}Nel{QEUQhOW*PYOJhI6yAb`sJ$Vgc@jQd_XG_Sdc~ z+uB&$Gvz`XyxutVO&UY{inF@=qT@7Yh500?t$yM-^-U>f`s(LGo&472qni|&Sw8YOB~yNR$LT9u zlbF7b9alD%+1%$-mk+I7WS6pMEBry{8(&vr-R^c!p)gVTFuznKTsDu`*XqltlnZ`o zYMlI{eTLDFYvVW@BABcssIO}%*U{-?*5aV~l{l5J_e&8kePDg*oaoEi5&g0Newm!+ zBh@+anP2ucF7G}gZ1q*#H`~(XL;h1<hm0NR`2sT@0SHmpXP8WXLFT0$MG6O z9OUQY9oII7@LBaroa(`bj^p7j@N>&u*}r7{P*cROKtIGWlR@+Lz-8_2%J6l@Svzl? z=*zgW`eI}9eJFU1$xHCeO#g60#nFr(lRJFdrqK^MCO`TkjLBV)?jLhZKGEtyePePP zD-UuEds;_S>3Z_dt<1?yH!i+rI1h1Lt|_kgKe(QJa*`%mEe%Uok&g>3AK&MCa_~i| z-TJO4UlIB5#0vg9$N7&rx&m>HAmvlW-HbT4n>g+v#D(iF+4b625y$o#a~~qESrn)1 zGojqVHNM~FD=?h%N^8F6ilXru@wUCxoUDst=_XWqkygqIwIPSmJ$1MW) zV_r{QMcpX5o?NNiRKB79g}N5%O(-||L*Z!TgP~GC^iWj3XB!vSwTlrK*EQJ!^3j9441KxXG@%s6n)BJ|(;$)vj zTxeVAwetV3ub&6shWs-93a_PpDZhUHZd4v08K>*#mGpg|>*t{i%G38{n!dQ)*b^5D ze^3?|H8A7K8yTPZCriN zh}s<7fAfr}kjL_8Fm0WtFD|#heG{c`aGJhw-$S0hF)0_{_kd;|H6{6vR^-3ni}LhM zhQ2UI%GMCv7p=xVcVk<0Xl|>yl;+9LJ?t5$PvTt9szMPM))R<+&~m z^nxHjSI^sn@dblh4-9Ov{+aNN47rtm@f_H^9(#+~H!?dQ0*Ir^qLZX@GPbNUW& zoPWNB(l^I(Y!?h?Iem*A*CAl(U+Fv4ah;4f$LaftDg{66mTTh%C}@H*uey7+Mcs( zK&|1}l50TjhyKYmAp4bRF>-RQ_lL0O)M?q)CS|Ce*{K0O}NZ1?|WDQ zyPrF|?VY~OZEgRyao@F{9BBHqhoZIpJE`5!M|h6cR~X(GXKi7a)2DevptH8Wx8v3| z;3KDRKgX5z&o-Bz-je~!1oWCxv{EAchG;di@C(=k0%l{+V;bAG3d6&C27u_RnirfmFIS zwz<_8I({SL;%j4_5XWVm;{F%c=&O@7l`kfHt|A}3Rqw})9mBaJLz?DslO{~UahwnB z{fD@4jW773)NXy(=(mgfw^IfGjduQHy7om}n4f0Xw&x;_V~EmB?kL2u--+XXhB%HP zaon#E7utEyS1E77KQ3?eT%#WxNnqOgX0{vKCT_ObsE5R z2gh-KRrWEv9ff)m$_>d*LVefDCr9Nw5cy?LU2EvI@=!<0 z>(wyRSE>J-5!v0t*<~80Aug`t%5R7Z`3-3=w|h`(H@?;z{4zhXdt_>t*LtNV9+j(b zooUvL8H?1m8YRE2DbAiXd&)fZ8zGKqJ_-6lzY(tGE6s5kg?zg*s#`Q0^WbS=oXO_Y zi=p#N3_2%Rnl%S$Y2%T`eZ3c8iE+jGbEX&j4J`~w#@g^~Ii~MIq;IH;`!(W*MRA&| ztl{P$+OJ!hre!Ks7B+C4<|>CeZm{FlOU}k~$;8=we5~XAd`)vC&y_z1H>A&VdDq%@ zcXm5k`Xpqx=(sKdOlod+xN$0@O7rZS;rk;KE-Q2HDco{Mp>Ue~V(YiSW%pyAZuU~n z)^8^{yMF%6)9!)YlM^mH?~v{2O~gMByKg$Xr#O8V*?jjL|iodeU~{-dpEyu`mS>v z$B8&7eK$Ey_4!v$-`$QYtIxI`e86$qx4lgIjC;~??JaRvi8H@EtqZiVbx`aW`8FXL_$XZih?{G2R8hUN=E%uU0PpyI=ft-Gdv#Y z+Z6iPPjH{1iRl~b^yS@SGtP0!#}3Z!?upex;Ys<$>eX<^O)~CfaaK=9Ic{&`B;;q$ z?IXaXxZRw-{Tj&a?>WoIUQS=OGZ0RY-F+Q5!|Sv0Xtr@02Qh6b3*As|a}y48m8wR` z_v7(*#9^3s*@m3vKJ%Tvb&Y?|{9K$lD|ru0_$@c?3(A?-seBK1`QTcR;eC~x`Q;~$ z(|#hKiNqkkoa;D^TY<{juje#w{mbdQ!09X7pR{`AIlHx6X47_*$9*olmfuUAUCryh z5@&X=bR35Bk{~~OuIyTZ>HDM8r+ro_m7hJQ@i*f_jTEQ)x4r@%3zMD#_y-?af;4Y+aj zaLC8>TC5c&h%-ZDa4x$-^oeUysyueEd}w~9`m$!4-!Ok3=Qz!?*A-{ww!7nW@0%qf zwL8ginvb`2`u2BRdnq!hd>rmL&9mD%eMdX4Y@D`ycy5OryC*n(gN*Co?4InnAvyX^ zb)5Fngsa|P;W&+}85ipP)yAow?jpcs@c{fD5%vDgq`hVP{C)8K8R&QWD<8K0xZB#L z^c`#cZcpQi(`F``o8d3VUsOBZ2cLUC$eXU6=k*8mb0NPUx%7ornItLwvnLYuiRD-0 z4E?<3;TUUNem{5muC(`^Y-=2q)m~6?l_GfgPp$B9Tz2^$xPd2569V7U&17urLULcSk7_K`nQj9sxQ7D=Q;Cn@>U6# zy>H?+#7{I8N)@{l%HxGaOeouA07!9Jhg`YpT*W1x`d)WjmmKax$8~QYw|N;C`ZeiOJKDl?c8zaiR3u&FTUa~qfLixt z=OoU~t#FO6ImfT1_^)SUY|;VO_|v%L`4$uRAA@(7rg6BlVq&2%_?tF`?b5iRgC;`J z#AFU4eLu{zG3dvTz8~ivj8ClG%m=y8#<<7ERdNi6SqE5YkNae+ljKe@PJ8Q&I}dT8 z&&j`j^wUHKsVvmDr+;Q-_ey8Cp?mrv?WJ~^f*YYP_$u48vabbEQ~#{I$!$*^W~Z?h$A8ug-CK>vPYk{@p8mHvS&%^ySsR6CCI3 zmFlVIw7!(L#GUN)Z7RT|%KS{@RG+II$HO&|xt}LoR^}fdzW0%M?x;0n^)KZpL5(F9jAWsC2>~f_c$(Z?&vv{ z5ud%sP+Yhqk)b{#Z#Eokoa8e3D*2=QzToUu8}hD8-&>CBkf{p#EFYfhn8Ur}^mX=} z)!h#q$2kSV-<4l$mp;FnyZjap4Ckfo*Zi`D%r@v;13>09ZzKEX`kpW@6f zp4-Ye3E6G6ZRuEsC1?^plRmS%w&ReDBz)nx%^b&hAH#pdS^7MecMZdHHHo%D;T!3* z^!0XjIqoy8tcTMzjHYVSmcAiQAN%__sL$EOaie1hpXF!IVVazTHqP#Rrw`NTk|4XD z+r5O!)`*_lBZsSVb|-nx{Oq~CJZJv%+&($n!Ore}IozR+E4wyfc0E@t(-+oEhnqf) z0T{|lg5HJmKFUXHrYX~=)h?W0x@Zb<;Z(n7>R92~MU~b}3oERd_NcICI`BtWGjUDH zbxKXmkF#c4W_}Jf^6y)Z*Gx4vd_UcQzMREyj=^&oy4ZxH(mHAzYe(ez8W*plwntp( zi^DqVe{rv5uOv;@@iSo-hOZ(YJ6S%y&-09eFG}s!cdz8A$bXY6_;0%NAG1=2xG)Z8 z_e%a0abcd5#hr&Z&eP-axCU|D-;Cq_fH=;76sLQmLb-+exq^RO-s-tmaBcr&oj!aFKxhu^o4sRE0*tf zxL0yB=);l*K3Mg=lAD8LR_fyhfWyCfxj}%q$Ga+h-{)S*Rn!fuf5Cs1%1z}P>R+g9 zq26dlj)WuBx34lkD&KK*3WDldL-$oe9VxF@`GFqW0R)AoEf#%nEp zcxrtV65VQ}bO)&8(D?!}R*Xdrn`M@OAoEb5YNAO$pOy z`S{xD>*+c3-%7{zZXl<%kZ`T{x%u1?qG)stLY52t#s!lYn+{(zJ_w;{tNjS;ryaK z6xpS`7k(M({8ESb$;)t$Y?_atZ>-aIRdTfvdxFMM-*eE%bjR(IvnI})6ttGyKPSI; z$*#4dTF3c(NM9azuhTcn>9eJ^l9#S^4|SaSs|TIFWsd8VY6>5ezM~!2#khx^z7rg` zWsbf}9oN^mN2SmDtE(N?-|5TiPq)hHPj7MhwAUiFYUiFCD8QupwOdV}`ZaW$W#O-= zS7B|H-M7TOjOFL!{yG=>apnD0u=}Ose19eXd9JLUTKn*vB`YKnf8}R!@=NQK2p_ap&=l^{UcsW;IWzEF zgDHz#gvdz@|}Qt!-R=&rjS0+<)`@#PF=# z^5+wFPt#Za{KVE#`ueBo3(rr?(^r#n-|hK{!55|Jt8YECPL#g!sa@Mc88&`A*EIF5 zD?%R2*A>OoFD(mg(yzmZ4I{e?oL!dn5s0hLZb*Bon5QM-WSkr7T6TS!nYb96p3}^( z)-&C#PO9zCPJZ2m`WK~dIrOn@BxASPxB_wP?-Zv#aR<|$yEsi{XRp{@dBz$G9QRZc|if);ZPF zX*v2@I&Ow>Bb`3a&Gh;#AD*+zZ7HpMtn2K~Gh(dS)%EkR$C%ao`L5pMeQ3%3r<}ut z`WzH3aGdN`JG*secY@3BaK|k%PD1)7I!HjB&SP$@Dgefv62*ERNW`ldSW zs2qKK2XAcm7|&U`EpXh)4dhNO<3bIRKJ~k&IgW?VqJODN>}LJ=I_PKG;-b_I%CFsX z!gtLwAJW&v?hQR4<-#2E2$v5umn6(JPW3AEf34H&-OXLUrh3J0FRoWDa_SY|excuTd?R}kUcFDhu_7T55A)-_TNAy%%sxS z+i_Z({@m&7=eX^2^ljs~os7G{=^O62pBe2_(&stN52RLpUgq@8 z6<|{B!*lb?xM1NJ)2IF(w{4Y$f1-UHpK#ediyMNvYVShfZso(qkHBT)$MM#lZce!{ ze(;?nae1ge)jJ`Sk33F^lwU4%`pWt>E8kz%%LTuPlV7+m?!!0m%f-$woFBahzdV%Y zH|Pso=9g>CFZZQf@QXOjC#f$E^2?HVm|f|6uqtSL*7CvA+Cm@qh&Y~WFSR4$;I5LmUWnuPos9dC3_Bo>`&Ei7 zE+{Tqh)H!b#p%Ymk{w^pGO!ncbJKY&j#W3FcfL|mpLf20&vCW|Rd~^HUpQ`q#5(rt z#93YAJ0IdYzOiuYvIgTAFnSkyrT@^^M3GwpL2EcbFKx&sf%ZX`Vr<_ zp)z(Z;i^*qwRU#5NUUOC)aAE} zPyr^TkI%%8{XC+9+{iL6_;{Y_Q=1v>I36xQxh+h%tPLWn@E+RWO8Le5SibXt>65;V z8io2VPWPHxn@MKy+N1rcJGWAQa0Cn=Z)xdL)u_PzA#&CGqJ7y3>JI{!rDcndl#H`` z!{f*9TI5}0f7~uy!woj_?<4bj!>6*cAym3&qC-?k&NEK;YVe#(5yu`xasP{Z z#@Z%nvO$!IuyE}v^3l!m@qO+Y3%)3|Ti-on{UZO}QNe!?IsY*$FCi}Uug#yP028}&;SYM}caCe)(Op5Bk&G1XON4WGJs(bBR&9m8F z81|73o5MZmIBcJk1kEv@a-6QY7M(uNah@E9JblX2G^g)5XIJ}I(kXo(IL^AELap@K z9O)m9(_Hib$Nk%J)n;(EIP+f>HY&JwlAkdgmjtD6b;orwYOeHI`ZjW$_L~-oGrJuf z*S*AQw$I?X%{^y!yE}bb8n;+>jqB?;&4G^)XXzW@xW3+Q4%e@N+*Y2m^bK@&#qk|u z3@VQr#|;c$7mjk=aK~x?>UeRMkBN@Uo6CDHZ!W*T(>KV{ce1lP)p0|NlTdzVI&QcD zXF7ee9hbK@@Z3llG%35D+r_>=TXwD7<~zIM&J|~VUXsJfyzDN`;m(sjvwL_Bcab== zyDW$Ec8|{CE_eD)&*4&iX7>lCDFrmxWsrQ`2Z1Nhzv z2G!@Lj+-97PXDUkXzsWfMm#2cW_NYR9bnuOj$12-dq$l3Z`~YD2~_$v%Hdve`a0!s zsXnt?FK7AflB4f6XSaI}m)bRby&N}7fJv2GKgZ2(AUCIh+}tuQl(_6_?mf?Q_AHgJ zk$>&y)J?(setPZH#Rrt`>)ekyIzxs1oF*LCZ7*ZYgo&ujm_Tlt#)W68)Qu^Bmdc(L zeiyj(2inhx@AbnL?~k&dqkH{+Zu@5RK|}BL(_UH?76T=|pF3-je`CcH|HphE@1^zl zk$kVcw5_adeb>FTmr|crxL>ag5^dpKmmWKbVA|IPs zKEBUh+J+VE*0-0odE~!VcHt%V--d{b{l^@2M_jz$#JFt{=l9aaAkOclO+lRBOPh~4 z?p(;O_BVpvu)h)fQ|i-VJ$q?=qP#7G4F=iZ=Ti{p^L8HM;=EN#OYm7~TBz?Tvr%a; zZDf>|Thp|JJ)XS!a&MZxz*Q{Y@35ElH1suOFYPsO4cSZk09-@%(mn_GWA3G`qHdJz zrBy07m2aqjp{|8`!D?o{ zeVpBf{_ZoRz0@vqy5lPHJ2kR9(%I#?`?&lvZYJX5w#B%`i1Yo%(TMZ?#_5Rj{l+g5 z7xx>~cMamWrx^SGcEqiW;wt$*__5pvPvP7!Ze{zYTSM2LM;8i*n-8>qI>5#^&Ea;k z{nHsKHx*~%n!KB1YHxF<5Q|v@+fDQeFnn< z*)?vAq$87HB&#-5I=7GP3y^y!Z4n8O|5IPGl;*EQS&jZ?X8As~{k zpdQRgxU3#<&+-=3gEN$0yPh1l>>BPO({r?OJp2Uu!u&bxqZj8+nL2CstimD5oVs*x zz0T!BJ=1ZrYku||rn)6Tem=zM)1LWBPTvuZ%i9Y-(Q)kSLyd!taz1E04fs<#C2-<9o9h}MM5S+q)2DXMcZV^EyTx%F^BFF4+})1T zHIb{tS^ECuxUza+e!16iyhkn$s#o_rZsQoj=R9tc26CI0aWj$_*;PHQbWhtlNc00q z`oizKImR!**-KGRKa*dqo<3;#kiI|I_;IswG};;Z!kCBmNZ?py^tAJV>f~**VZMLP zad~~jD~?m0{G;?)8NKB=)yccXnca6Bm)DoP=Q!QR_$TQzyB|4Dea?N3``mH11S|Ym zoTcyU9F9I`ke@xLy8D>Zx60^ljp}&Zg%L zr7wr;V%)ppEFYUWed3f%rO$I^a}cxJ$?5BEiav05yXJ7IUDMaoaehvt^z~^V*WYoy zWYDDad9HUE7y8bvOrQF?Z5+qLe(3AAPPptH0E-bn?pUm)tOL>9dk3d)y{a(U{>S`> zcTmijZxgX_kETZVmiAPHkN~x}AuhkVpCM3LJ>A)H>UT3PZ8iw;OYvXN%Kkq4yNCZk`@8WTBj?N^eLv1~->xw~n-6lI zmF@4>8-%*XP-$(?cXBH1YFxa&oP;>892NJ!*kfEbNmKcHb;>I8(aG}hefAiGFG}s! zx5wBk^54P={`-mZAANl~;{0C0#fW38m7mGoh&aDj@BrfcUcobnYZjebX%8Uy$K|b_ zJ;ni1-rj)?hB$qnA}+2Q$@hqh^HwP>!Dppu;kj#A$5CmIaZHq!&5YAC-ty|p=HNp5 z!X9JA^8F5bjN3wAL-rVlfosSf<8I)%-l*?>y?w#`n0t(?s2e4FjFrkw*y{`R zhB2jKHuAwxsUMmcmG9xk#dYmO#Km<@c0*jS8|p}Dy{d1Iaqr0Pxz27w_ZUOkOYJhB zmqA|`XKWuNxo7c^MWG+h*7on9!90#}zlAMQHSS;Q#?}6|W}0kiF4oPOTRVSoUATT( zy07wr8@n~ePqlM37kJfiTE|a!+}n=RKHN-kHg|m2aW+MvJCY!~e{-DH=X0FC4;`oV zx!3opipaWh#v#Ohu|tqqnqeV(gMHH8nFJGONC^5*g#9Jj6M zJJi|T!g0t}NsyoWJ5KkY=^e~U-wux3wM1LCMx5lhJ&ilsrEjw1_RZ0^&~dfK9q05d zcHGPyeFr=4K;!t1Xa?o?FvraeU#EZNzmpw@Ezu;L=JcJG!%3m^-RQUr4LHm6@$d#z z%Fv%?@6)^}>HVZFD~|`9zDo@GnbK!#rpI!)<>IXUKIOPyWhRqP%EvP~+{I4c3pt$B zsyrIXz3lW|CPgNdzKyQtFejX2QyX4C)xGfpFL;!*xu=T+_>M#u5mSvd(yaD#96%> z;<%@clTi9R_ly9O^2@F@rT%-xzQ5hso#MDRjgyeR10DCC0e48B<#(Rr-Z$=EahBhM z9QUDd63VaV{w~0z(syc2X@37>-#_T=dhVMB>RV~t!%pANon3KKtMpywxaKw;dfe%| zGKcf}Zg$*yrtfK|FOT#3o^|>Gbt-+=Lu`TRCnIl83 ztFs2N{btXo;JvU*Pbw64a%-@_W!G1qF@3GIV8MCMLf;V;u5F*2*vQrpT7$JoZA@iy z3Kuv|`>bm@?h420`qp~l%=gzgPS>pxWB8*!`&!3Yl_>Ci?hG2ERyeL~4Q6&dr|VWh zTfV;a1ejF%u6K5IooO?r&-#d)9f#sbLVL&E<~Us=?JUmnafjo$4vd4+=ecTwwx~y6 zhgcat%g?mLHBCNuKJRi5-J>ghRXI$lD@1jX^pSOos4H$%P)2f zJaAcGvRR{`V@S${{-E*T(z!)rXIJ%QHOFzy7zgD;obsXmC1#u9B5BJ+UzQK{2TPHU zv1$539~-zVA3YldO(|#3aoEt(C%fveV!Io{?nVh0?jhhF9{b4^u*>U34B8J1TxNGi zvzu~ex1F=gJ@h!}p7*n`NvrEo{C*3h#fKV;`){vDEg4h(dxO0z{NCWmAK`jbPh{rD zydJfg`T4tEkD8GBv_+w1l{_Avp}WA!oUzl4tMA#ubHV*L&laAU*eZQ?FYO+hrmy_j z!b_v{{WMKqc(!n!zB5zqyFFVt_@Xp@J$uiXGTS!EDqSZzI!fQAk=+)^S8@83LyA+U zC0m-j=D;|HYr(N8#c{VFj{T0}igRbpmv`>V;EqeU)=4^f?gxlFp#kT92JSR>ZevUa zLVeEmoP-oY_j7XkfRVZ9!T(NFuaRky6+Iiz7eT*B8xP6nhAL5wi zHDLD)rN!PI!redL=eGrSjyRr(&=qm}C;D`K0oMbHa|+87&f*r-PMM9k^WC}qaqfkR zOYJTz)Fhg-KRbcj1U9xs9+{>huI1O&E}YJ~vvOtAWLHwp@8r0`dcY=KT(q5uZ@%M38K-wYi(BltU5&e1c5QxjjN`@`_Z!EZ=D6LAyFr}!JqXxXuSL3PTxYu zZ7xM7)doGch370EXE}ZSjCr>+_o35wz2j946r-=`+9F?YQB_@qOeBDz`s7Zs+iI`d8)gjN^7miSQwh<6IyPd7Q=yv0Br~ zuG$us8D(J++SYSP`m(m#7t|-G;yxCveHb*SdBO4_eeJ6_N@GkmzZ7TAU%U_<0-t$| zak`4p^3_|;2ThVQ!ODiUnfDy0Hf?yS??cC}Za`D%v$FimaacMgVKs4P_bbPh?Ms8bx24m!vz6ug#;GhT^}DTHnwu!GCRI;2a9mkg+FE>bmzFi0J|3Qry!A-9>|WS| z5WfO>8|w1b*Xf&G6;jwqd9!z?H^%vzi_*sBu(4@0k7eBN5!Wt>%U^4#j&Gfl-)>5u z)wQvXYehp*kiOj=*T$G0PG7C#%JyEZ?s`sps=eixy4ty#AH?qtS>MKFB~j^H634-%B|-X@I!<+bfb>~Dj&fXk)3&WR^Yc#~$F>j$**)HIonr`}Ri96CoW^P4 zd0aOECdHlS^p%a%);`3k?QiMy@$fD<^`b-{*1Fb~k4F6D)A0;n`Ni7)rDj+9R#b&m z{#fIRhty74h;!Lq)jn{K>%6*|={zi~)v#9p#O^hp#fFp=F zd@MX>mBX*|-gdrfO&DQ<@@8fJuH)3-2Ra*%*2SP6_s{Bg^$up0QCr7tDn%w$hdie_ zp>XNj*y&T<&A1uKM{z16KX**tFLcnty3G=OZPGHo1ZRJOGM^{ESebVe>kJI;swL89_n?dcU z89t+qC-Wi3e+V1awvv%a{(HpqY0kj&7?z}VrzXeGI4-na>`96+R;A3J?zAZcrRKX5_@f$CO{gn4Ii8iW@p;A{2E> z=2D7Fp0_mNIGo!*)dy`8@SbXL+oy3j*W$Pa%+fNtFcjzZO5=Xm-_+oDJNW$!-Z=~X ztaE0!LBFY~siBwq^yc`(wMjTPi5tQpj%_T9>)W4Y%rPyC>(`$?VH?Zh`VZp%A$2m2 zp$Y{Ne#?`+XOv^=2JKI4*j)p@->gt-_jTC) zy|Wv*?3x_=Q-+i?yPm6Lw=L|hS;6inuzS0+8@SA__R><$?0T+}-43w3b_KhI3vi9X z*$rG~w=QHiD={i3>qt0&N zGP}o_-IO!Co~vZH26o$4u-hAUpLTWwm)Skj?53RA^;{*pyTa~973|i)?u*WD;4-_v zGP@~fc0E_g?q0CFNd>#(VE1)rH*lHVYs_xSnO)CSvRezg?JC%v47=|*yMfE>{@(1S zoZ0nUCA$Z~ZgmB_3t;y{XE$(}-FwV#%9&lyRkC|H>~^SNcNy${>g)zCv-^nIO*ymc zxk`4AhuuyU?4AL;Upl*i%j`aHc2mymdajb)vthSO1-lo+?zhfv;4-^!n%$H$yPm6L z_ZP6+t%BVZu-n8Yc-l`4TxRzpvzu~e*K?KZUJbjOSFn2*?6!1v1DDzT((I<3+4Wo{ zyEnmZj|z4lhut-u-N0pbn^XnEDQ9*)SIO?(u-mhO-Pd7veP=gtncX$aZpxWm&sDPf z2<-N*VD}T)-Ne}qTxNFzvzu~e*K?KZz5u&@E7&buh<5Gl1}?MP!R)4-+4Wo{yKlp8 z{|a{3gxzk=Zs0PzJ)nO)CSvilM24ya(a8g_d+yMfE>4m7(dXLdbT$?jLMJFtS? z-mu%>*$rG~cd*$_IkW4zN_LxJ(X?#^yEU-8t+N}r%$!?{w<;6{SFpPbcDX)f(6|t|%<|(jA;uM)ik+f>*gyf5gp_&2q!J#9Lr9fP z0+@tADv&B3;hAy(JHPMi{$_f5=cE(1$v>JZ>AHXO>#tv5cYpo$%q;m(>73-;wD@U& zs=(J3;E`#6GTznTQMFFStAIy-uM_be&u>7TKsSv3>Gmt?H|bxke_GeH-Vl<%>ZphQ z?s;}Dej6x9ZpI$l^slTvw_`HB0QY2#y^yua^WJIc!Al`e`!=&@Qdfa#-==v6ven^V z#MI@>KezODlZW{Ex0>SKBV{pu@4Fn{dj5NtC;t2QIr84&$U7(BOzE=~E>HaT?-zN- zKmKk+tS#!;?SKe*fX{E;ED&9C_b#c+V9<=C7PX zxIFjVc|G10t~}Fzk2v}6F}%-6`3&zdhX>PohwbK^PSnAN6|NqeqwZ&8vS<-&$fNu28>pI!G0EY@%Ok)qxQz#C#c63G8}L{9=lk#MLyq? z*~RCWd@1h_7PQ}AIqgThe*|XRj)Z*~m}?h*ADC+wZyg)8i_Zt9*ZuW>8&$WDQ@4}Y z#phdf+krgj5j zp1!;cJe{xR7548b*u}>oZzFc`Yr)%yUHoS7NYzhd@8Y(1CwNr-6Y(C8U3>!F$l1k3 z{U-gZ^-uS&)*C|d*S%vh7iV_teZcfwoV_#kX<&M;%k1a7Je)ti$@6@p2Vy@z+suiw z_B;bTy7r{J2FG_Ao~+$8uIReb;a%bIq!up}o>}AfIy{&Vxl7h=mxrZ1cZn@fa^%Ug zF8iH)ryQO+T1jP!ylIDL#CTaZ8`o0G6`%Cw zc=+13z5CJHi0uuG(-qj>n@C@c-MQ{FS+6dzy;}vg_s%E5_THVA@5!;fe{A~WRBi9C zj&YNs?MHpmZ!)?@jBgvBZC^bCOxrKouKQWo-ml{_QLg!G%XS?vs>ki79*@WN)@_l` z_hh#B-B$aZXUb={-*#Xm(Z+TIv+Yx=)dVot_C5^EwY@vQT%YtBFtQOO53z?fF{bSy z-9Ch5*U5fM?cG-0ZbKe)Ngfn_D=?i$=99h~m|eG`vgkIWl=kT3K>uDG1c)owN75oX)zxWnI5}RaH-?P$p@Xz3~h(yU(j}M)%))BF)g^Ax! zDa==w?;j-JBuW!J_ShDFCjh^*8YaHzv%z|LfztVEOv+-nfv(SJ8@vEz(erq=uXqD; zz618gS4~;O-jMlT*467w3I8eOH8e7vf3{ofjfaG1?1)Vc&n=zU5n~Qd?2^wr@){0r z#HVWP&Yr`2o~g%|9C?Yu8#g@pBjr2l@WfY|@=Seib$Ie_ZpLeKP?u+kW5kzA5!E&m3!BW+(oR5%jf`r~B(rwP{C?Eqv9x@;T{JJN$K9r2-${A89v^V(A^P_N;fa0k@J9BlMqj?+ z@QfJme?*?)J>u|2-f1xT{@CHkS%;}ky8m!_vX9Srx?O}P?d;mc#1GKUKjD1gXV|ov zMbQ4T^j6P1A9gTZGR`$GYv)hu+uoLxr`vf8Hcn()i~m5{d8_bDea~`uBYI`p?_7r` zI?(o*zf4DqaEA30h`NfVr(F5Vi_}Jm_D%6ghDYlMy)C$l_ZpeM>9>)`ZVQw8 zmYjOX`+mPF`I>fidE%!r*{5fk9Y-G78gyOk$O|2wxvk0gU&_~Wc=8_jrH;H?9Nx&d zG874yn74eOJ+fVpe~>*@9PEf8n(P)kvsy6An$dSyiVNg<|Y@2!T11JEbrw7@?LMr3mbmVZNL(P#qw?|koS9*yf|1I z1WWlAEY&Ips}(pbab@FIgAd~U+6mzH{PGq{-XQS@OS>F-)q1&laF-)bgZ~0~la9Q% zS@Q5H#w2Pu@-*nkn}lCkzh6sxPb#12(47Ts@OCQ?zY*s%Kw4ldpZ?3*falm*djIz- z;C36l%aS*U+!+UD0Vo19dHgr2n8%zDRRN9<2A z{T}l;+pNMPO!G=9Z)5Kyv28J5*I#cI0!UWB{}qiX`| z^hI3ev%DR!F~`VZ%N|<#n_a&S-e>S*mGlkC9jTw|Chw+85frU}WP0eJUsfcGl!KCuDb8^PPm?T2E8?S%bnDw`u!#Zoa;XD z#`yjH*)5lvd!GjO^NzePYTo9um+`)>u`M=s#=r){<&Hkd)_qfJ9Nvlfvd6L?+ zRO+z7W{)=#`Ff;1ZoYr2d3vFiHCg)OcJQ9dJX?3S@w@w`X#D3c@b(K2h@yp|e8iJA zfaEcTj}Cm!tP7IIdy)1T(x%K?4VuZ7K8+9Z!wc_Y;9d0Swp?HS9k7cZ-L^GtgMJi| zy}Og;oy|H_;&GY(jxZ?R!&+XNmarcI`yqzjh2B#?n~jCD`I|9xU#>GRL1+x+=CLaM zJIXs3ydN%j-V08`dnS13U#eT$zvIA4q6ew2<^AJSo-%j`Ql5+zTO&1g1iUHXA)P8w zJCFO9Aq-P2ZRf5oOKyC;0@!t&R=4Q_D{>2|^4G08ZEhU>fyQz={%(z(nf9AmL}k6C zK8NnI@$+)@2ibLkk%2FJ1JRAYhP+Qm-O{!i9d8fld~<#NIbhJMbR1EQ{#|1<-qQKy zyTIy}juY=p6kw-={Sq*J7OmHX_0B6U0}r~JwgJhz1{lhcYpX?I`dcMgSzfBs=GwUj z?7@*ar(~@jl!NEJO6QU5-#2J1m8VvtP(@+u8mDe|f%hT@doQqS9qc|}B?tR7uzftY z>vn0wUs1GPJ_KIbN&8h`6AtzRVApIw-eydg=UwE^#b>48|E5yVJV|;bdqjx#6unRf z({6(EpmQ9VdC#+cSNaS}?wyBQ=*yfA?bTRLhpNC1b3JH%yVQFvJ7e?m^tjwN-hf>4 znNnHkQb_v@sfUKV2-q_n>@~o)8($FDL$3?tUqJaLkxt~j5j^oJ2=<4-#P1{6J-{xp zXI{L8@5&bc+< z*}(daZtMYei-S!78#vhYz+wmM07D+R@sR*an3t91R$!|R_I8~%H-7I0rhlt@vt?gB zkH76>x{?3<1$gt^m$tojf%&?+W|}pA@55GK8f@RcT3D$R#^k6GpA5ArVYGXeeX?Mr z_u?xMjJA%lAJmxMNZpy6i^C!9o@JkG(((rQB@U1B5dVSj+_GrB&%P@}JcEtXIG~|o zVNLQQ!zE^6*|&x=UiPga3){C3=}<%~?VhV>pXOjb?ML$1UjI5^bml?w==xjqoBnQ; zZ9k8Zd62sv1aFz=lFZ)y7BKycQilBq*k#~djTveOmhPf6W?CD`kt9ASDa$WB2W2yU zR>8Id6aTYdou7~BtRvy=7)U}rekEx;~!uv>vW=*YVr*jWzmoxqNwZsfa`vV0hr z__GE36tK|YJp`=hU|#`Naq{>Eu$F`U5ZFf@?3~Ly?*k5Y39wH(*gjz58*t-g_j|02hk@p2)S37CH4~%@{cE0DM zAh$Za9l+k}U@rjnW(TVQ`>utN{?Ytm?<>qawEOevwcW*T@gT`7)OIK~l`@_vsm1T|Vq*CMLay zP?iZBo1XRlIfwBc?D_weEA!-H6%P%H|BB?5N>htf4p}$psZJ^-6Ndo1mg{di3ug)AqXkJZDS0)eP zezX=0qMjNAevCh!nxpT>sq1DA9h#9yy{0A>%GCoBuT9TX7bePw76f269_O1V*Xx2! zmKW>SS1U+)M4*|Pov2!=RjP+82ljYssysI{d!w4HSJQB9acVY;Ojl>-7CoinV=+Dg z%oQ5OC~R6gw<7qFk7&>gRD`!&@#0uNfwoRWN68-StiXHacdVf5HCiNV*w@FvyO3mg z1wRuq=&Hsb!f(}ZydU}rq;^$utPg0pwT3SfCgWBqPPg$%+PG4!s@nCFla*SHdNWat zgpN%6=nQ<@89_C)!mS?r$__)ZE6@zM!*o#1m5)?rp&l8s+m4`1vO7?(EV9>*ESBfX zc6^^5Sy-&h+wu7YIPGZ2R4@$G%-me%fU1{khZL&h(SK@+e3NvSB9jaA^_h8mAsYj0 zNyW>43(ulaZLudy@M|%umkd-N>XoQ4TBBVWnjl_L4L?apGZDnsP=dj#A96C%M`|K} zfKP)ANc)1$N~gEtt7R*!xk~{Wbs2v7zzh^m`Msn=SOSsI*DmX`-@>>s@!)9EYMNqD zPk_P@GUr6cRM+nf+kTUBA7~<)wHx8N2@IM9P6%$T?oy|zZW(r(E0p)Z0%@#xDjIZ_ z7Ey^VO2MKPRS7XP1n0oD*q*h41)b=XijATAWj}lLu4; z?UW$RG6+x1;=9qv&cLfElLpYW9hF6KA2S)vy&@%zk|h2Pjr6>QLdR6=^8=E&K#S8q!MMBPFLB%5OGsJyA0=lax-) zu;xgtmPD8$auZ3q3Y?yQPcr|~l)FmZ&?NQ37z|nwCZHux(Dop}KvP3}hL^ptf-^e~ z!Zs#o8jMD>c$9?ENRLpLcbh}C=64eGCdm|tHOE(tV>F^|FpKd670Tr>%0oc4x;`d+ zqg%VNT#KBhAL99r&|kG=vvRt^7>v;Zl9GV|&6o}rL)%i4p3<@?Ra|0rsWBKaf^g5M zf3gM*=Z4q%Ps$9;Qf-Q9)jqAw8@1R-n>)RBq-JT^ZTqc2CHVO`PlZ12XtiWj&PZ8^ z5+j{zb;O<&5z)BEcl6vxoS5evTA%5g18bc&TaURlTHDxkOC>Nf+o8Y2L{*3R3$<+O zl2UpuXf%YP6m5WiWWFg_ zKM9nGgg%k8zm|m+S}RZ*!ddF|WHbc4TK7%wZTGA=#BYQcFu09DHGW!aPiZHd*ThrU>*ycWG`0b@F2g_#V=|dT-i^>V zr?4^(X%2~dEjpeu>m*EWHqm(>M7U8QHcTllTL3K6H0QSh%&}RRI@-ixocLw|z~%&V zC-kWkYXS)(mEc^kXTWT}N?QW#6S{%l!%lIzgCT;V(KgM*Owq_dZPFW0kWQf(b9bi) z!-;k@innP5>lQe*9b&Gz2SE?}HZvo0IJX&8gCPufP0}~IU5xTkKEvdl$C9ze8_I%Y zEbO$su~B;?*HNc3wX+&G8!NoO8AP7K(^4`J_#XB>W*$qUW|~Xm%TYYko5>hcDx0fV zt$AhckMB|C$w`)Q%wsDZ_6IHDPxOrcQ?~&7(qs_RGlSTgH?(OH_d{$FwDoKz2e<}? z?KZh4=r7+(f}V=8|AuKrZaK^kNko2-cnv=VN85Bgt`2(r-#`_hgojI^ElQD z8p9w zPIs_@jw9#}&&~Fd#C|Y8T*6P>!v_R^_Bg(FG73KN3o88_p~7Ps9$e}80Ye?6-#65u zK30!rG{9|`o8+j2C7tkM#V!s`-R@y)N4H6nVeY}H97eq*{-Hy5@O9yy$AU#RMi0kV zS;(Zo?uZW>)G{mvVz3!(%wO2rFtyqE==7TKi?adVhE++PT7Q7NxwsfXeH0V+Z>ZU9 zN>d@=?rnxtBNjrik!Qx3sbae1Q&ni$XS|^k2un%XV35};A>;{mwKfYU4r|RUEQhIxHtE`8xk0=zQNK^+O9lS{K=OOzdrILpom@SGUOBReADE?Ggsjz{m? z>U|fE6!}f89Ae)m8_#7B#vC%*aGXhr^&X2~!Raz zJ`MMW$ufLPeB#_(#=?(gk5;ky?6k0@g>gPPeNffvWdxRe_>35vq33!I>Ze%1r?XyU zrjAFwfR6v^k$_ewCf_I~C!EzP2#h;)Cd?~fkFn(ugOFp z{~?)TWc^TFb>l|fmnHTK+*!Jmc;M*Zq?%nQA3$0PPFE0|*Wr43W)`p%kz8l#(LRCf zTG0pReP$VeYC;Y`ozwK76a)6kv~G8-}c`O-5ZzGq30XZ@yB0eH=nF2V`R#r!M(JH5D~+LXBLzg1m`ce0rRE|o3$5QUs}3*BLXEGVKTxjTnAaQfk#=aY#wlAiRgwQS z=Yl|6idqpKs}3cEF@-s$eN@d&A6LU&SLrxC%!8a0A3_);H&kWdlN*YHH_*2Nba0BE zJE_vQ9CUo>i(CX3^{}v%j zW03ZAw6{Ysk)pqb|Lhb?5uE3|AJhB3uumrg0S%A?Q1kWkC0GVJSeZO-@+j4zT1!O@^Oq)yTc1mbW{@>5FW z`a>!kXB`;!nh8&$M*a*JM-}m>&@B7a;HhIqRxj&yd zGBd$ZEruzpe>ypC-zr79tCgbUDi+1@ydp1?d^mV_Y&zGkN&1NiKb>*!YQgO<`r( z@4uW&WZnP8`TwsC1`i%TZggS(xTgMTQb|;l%-`wL$T)Djq=V&cjlL6z)9sJr3~NtV zc{kUZJ{9yW3K$o!$M z3c|~~sefh@C+~OScs#@MbB8O+4#La(k6%uwtT(pP{M@|%NgShW6GvajCysRFeJ5or z_?@y1&L5ULang|7D#FRTDb7R0Df*o_(XtIcKzMmy6&ra!L7bVE+qvmQ^L(Qx_f1LeJt4wCnq#QAr-Xau-8&bX1o zrsm}j$!(w<@@}fnds3f{{}spBk4l_zqsNU_oUG^F6sJP!^E+|q)A1805mv(UzMFE% zdpB_w{CAusk`cQCqYWNTR}^^{b&b3a5a$$W$gAY~NPW)Rolcqec!my{$k;hDI`ZDh zfRp#XiIX=XxdH-r;Z*!deSDgYkBu)oxC;TIR7}##P10&?>~Mu=~l(I*U3wcfXG@Vm8*xz6C-)&&Tk$wE6A*1se@;NT>Zfffk;!OMR zIL2|oAGwb>^0xkA98a`Q3nvXJ9O*hhczMg%`TbWUPSbi0?~1(TB{sF6lJg}w50aO$+G$Ki#(#8L&RgVsL|$@EBIg?NlJktF^9PA5`x|-5m~PsSNL^%m zl9z;$e8XW$7^*UDnsYPRd27|)$f#|p4;g?pemWc_W0t|q|ZaLC=kzrC40Qz z$xLZx&}~U<*togDJ6iGCyi1ipz5azs&ob$cnej&J6bHAH$!IgQOJByMzDg3Qfj|8@O&gT#Ce)sTn^49N+*;z9o zX-a~7^|Z1sQjDTqWtqVVmMK>E@?#7KUs8t8k>O8NU75ie)gvDT@^RPCRcn%}URv_) zS*7Y#NBv*J^>2l1q!zZg&lJmNmY8#iftYj3XBPXp#42aFD&tgDZ_TJ>r}`w@XQqmC z=FhB-bGCE#&tg3163#VO9cPq=C(7S5HEcV)?Z~#zKmB(&{OM8N`@-Ss7B;OuEnJm; zyeji-Rp&ERU9_sMQ>%K0tNMhilWi^PT}r)Msn1sGbCl}7in;nSrA_@6O8u2e{V=6| zq*6UmvDaU%eEJ>9eb4(x-X|NwRR_XVwc)D%?yAe@R`<8X)n9I_zbvd?b4saqh1G7S zl!8afTbs(;n#$Xo$~&6WQL@6UI!w0u0$cr-aQ)VB{cGX+*TXftDx;lVV&3CR_TFN4 z65Rp)p_Y^k7N2}m+J>F_nrte)YR;1XeDXf^|L!U&7mfzky;?0k2e}d`i~z8 zn9eXxjMAjORC&0vByMhHiFvO6kR{2!*KeyI846gdM~2KLrg>5(W31|zS@!xYM*`ku zbM;rPdwnr#%d|psps>U-SO37OTW!l`n`FvmRmw9>u2c`rA=BxmlDH@R)`s%#CN=&@ zRc_e*z!7uc=d}qb%X3$H7bSRai7ScQ<3FVLvay~-&&U{-hHA>Ovl@5w*O|7AWJ<9m zYa;$etQo{2!Cyx#WQp6HcKNOxPiSpIt3vCtm9M?A!XMn}erPL&QWtNn+L-(4d!A59 zoO}7U_p3IKQpbL+j{R1R+gjpSof~MO#vhf5lDM)FBv76kGD_P@ueGL9l)XMXrHM9g zt4IN+ug;CsxM8T(t>dNuxy>7m*yUOVreCBZq9sLADz;BduoFqxM!!{oJ1v3tqi= zaCMPJoe>>htop!O;N;`rs1ToP_>6QtGRpS8QX1-FPtKSft`q0k0v!|m| z-r7}^e9u~QN~y=TQY|R3c^8?zi2W^@NJOzJvltB`r;1^$+7qYg!7cAJ!jE#|f6+*qaV%C%+=DJdkfblzHXLcv8xlSI=h(^@l!lLFRQ z8}9p$RWw*&v!~&{u=l+8T8?phyys6m;2>?;&9S3usi^Ios>Pz3ZHFr(`?>~8lC_{E z1F@hvyC`;kvVbl!;y>xLmzeS_e#_B-sbQKoq)s5wJcsu@NxHLQY-?s~0ZaXC%`;nT zQQLxvQx~NgNIpt;dq))19wf90#?WL<^ zml)k&+_m-M1CY9S8;87Y?7f@`G+s%9^gg}v;=YP4_Q&_Fa+IX3iZ4l_vl5i#l6d#> ztp{4_CCwRv_ry}M-8Q={)O*qOml#tF+gofhGLGpR97h7`?l`3+F3(ywi5_9hZeD9o zVQ-|<8*ir+uUuKx^2AI#sywCa+G1mPCmwa zZTyKnjx$M#j0E+r7depV&pOCbKOCpu8pmPkfmm9C*fh|YnqB*+=|0S?;! zof2bLlYAUR)YiUGsV{V2rhdmB-&Cf`GIdXS(BkhrUCweksp(D@%4B@OlFEV>dSc&- zKrF?MOiECnolmPjeR>fG&Gr%+<0VK^G_*51xwD4OEOZ3yg_eN1(B61dX>6y|wsMqN z9Hmx=qs;0kZp>7~ljX|E50%P~Q-&nAIQV(EMd_ZfyZ7)N6*XtvFYhoNsd@2;*OwRT zPo~ftCgAJ{;efkSRhx9U&W9I~=u{caX=+J0JqbPH$DqdT?b4 z9n)6t@O~CqSh;*hQM<-3!^AQ*)`TlqPDR>QuKRcSEPdV4^4a>jedTj>S2(=w-`kFE z+gBm0TU4%}rEmN9`q}!nqwDABvb3^%uHLeIo_;!bz^I@mVg{$jR<3mlCclXl#62F$yLnrnrr-hP|Ji|K?=1vMarQMMTi>uyDPW26!0`|&xm{v*sR-NmA&FdE<80*yxJZ#(tQfo*4$bq#dF_KTN% z)ewHCcH1e|Y(22Q zPx&n}Rg=qik1mn%^_{Y0TSLRPbKB04*Qx67l>1A+Q{0xH*PW{WPC9?%edWOj~rXpoXi6I@(+8s^N_Ly=5rrLBi*9$4Y)@k_*04cpFaJ6G)3*6>R# zN;z#_Q^lvvYuH$0r)=-k+G$7cf!7b!?D3^mZa;M3#RKmga<})MeD8q&{MJJ)w;uSY zf>rHUb?8OTQ`{Z1`BQ`M9rB;!SVfmq)QmX5sef2qcu=jVnex?(Urn1LL2IWRbWAzm z*h-`9Iy-N~QYd@UO#FNv2aNNhwad>&7QWD|3{EbMI2x@L%ew_S2FT z`R{)_eu-;U(rbq|cs5pSQZ^O5oAllje|Nq=?ZbldH9I#{J@L6yiT-z&YbFE5x#gDczWZ** zj2ULL*<>==((>7vAxw1@qLox6iq4_N-fG&X|7lO~u}6Q*XGw z=(=mKxq9+d6ALF4{}>Cz@C&JlgZCGAfS`kIwy>l?E5J^l&R z*?LEPREB;u-96OV%x!hXy3H{*HJg2~nq}3~GTd3t3#Xhz%=_bmKKq9FpgPp-&NbUr zk8#d3$`|64#l&Tko4eF_%)zm>DSUoVm*{B`>{e%8(}D{l!<@3_%33?0TWb?N$;O&w z)(myl)VB!MGwDvYC3;#0%|vO*ifm_%JIfm9IT*U4&MI?imb0D}(KB^x%u%mv+A2$F zN^rczcYTSaEG1aNaiXQ_@`Vb_(KD**_+VDRqxScO4o8>N#|OCvP+-6Y zijG7xN0jn};QEAMuJS^yZU4cLKem7~E#nl;xF}GXrQe||nfp5jeKytN4D_0wpQU@x zyC*r@suP`@)KAZg@mcQo#~RmjEIKEFPi3lRr|bRBdg$*-*2mIPek!mpeQlIA_{tOhpCsycC*JGq8gq4J!Ict4u7N1E zA(p9*+EA+1Mq1X&f&?j^TuC{YrJpug*QKSr<$gT*E%$Qotq$)j3ZE#E8=fGfOpx0u zQ=ZNH$!?Ry(}iIZ`GR!H-P;=H++yZ_zxeR86*D+|p20jXB2 zbeS>oeRf$Lh%2#{9SoJ&$_~+?vNpP1#IXD;xhfWk|EriSBrmpr`hy`gDKmKDnXV;V z7L|?27TJiTL##W~QkKqRbJDqlk`P=a-@SKRO?-zB*h-nVrCQCuWVfiqOm-#aNHUg4 zGP$PLYGZesZfYoR9SmGeQt7ROxu!L;tfR4Pm~5^0zgQc;+Z5+IXOdtpS!8-a7TKbU zIv9(dltoH(5m%ctgOO==G0ogL&RDs)Sbr!KXj@_(Z{jM-g=PsjN=!5n>twqgZk2%S zlP1*Kt6f_2KwqY_jp_KnrA)^g(=mY#OxwK&NM6EO0?pW?_-x<0cr@GMT z{ls1DOjV1W>H??Q!g(6JwR0;Al6AkWBFWAGDTtwyn=UUzHbB*xWFv%e<>8lg1r}M- z>7vjDtz^l?7iN7)>fFfQwxxVIJrgh;ku2EUqStQOA$z#y^W>#DzR=R5vXze|+#N0m z7p3g+rORYd%DkMfLrcB0R;tA@lNEPyjExKM{-4wvW7J!_=A0tV4=dGf6wfF!JHfra zE2YqWo3TGDNWG|dhoy8E*RCL&C0q!(P+j#-<2YcHm2y@Z*L-%Hm0t?H%2Hx2a_;dZ zmRM$+m@&_Gt}+K&vXJlW2_=@IMq^>pDl>~5k#J^Xks}(;8VRQx3$28s32X&zDM^Wi zjxd_0fh#-m&Ax12iG?A5TZ+Lr?`;n6?4oJj;^HzcBODJ&Q{BL~|E|XL4d#p5N-p~p z$2cO_mi*@;?R7>v_~4!pyZELKKDd`T+9Yx{sYajCovRmrc=d_)vNeUj_)3(~-m1mM zq01N+hc5&&M$W~f!p{|z-lP*517(T9e$9ish{q9^(bE)9HCxoSPJLF-`nVu_u3wL< zHpZaQk9RXJ&61aqzO>tg!W(N&{c@>{3@-$Vo+QwrI*=A?jSx7it4Lr=DnHL~ksAkdcqJJQjmwV|T3^JHCubXIMs z^t)(ht)ja+BJlvf0Q2(;lCLY8vxgBa}r$_V`-l#08fY zZCiOTE+`j$*oMy-H%%VycBY2Lp)X5Mh3-gY`69YJgkk|Y-~u}6KOiUUbqjkmLs^ia+$H>A&&C$onA57)H}I~Ibc7R ziPZrP9$BwLYImSn4*WE=DCP@9^>Tj4#5U@qRy0$cS&o2|Og7N@!o1{_rf9#IE=uMRwUA^jZlm~RWiYTH6Ju23CCAQx|^ z%UqppwpC}DN!@K$2Od@Dy39=}tJ7R&QYReus*FqU)4ln=*csmOb(UuWriZ7`V`tDR zHRZ3??fQ4&$pW?)x0` zxP+`KXB1biQvP>N#2+nx!sLp5sC>1le3hyEc~kjwrt)V@;bM?kF)uDyzH-+jqh61YT@O6WlH!A+slFHI}zRJJK(r0{O&_@+?o_|V)+$?Rcbza(q)j5r!ek;O-G12>ageDO8nB3;{OH_0EuAH4A z*NSkf3juacpFgAZ&Jck})oo4hC@DAPm9rw;Z)fO2SQ2xmq_-qv^{&;Wc5U_Zr7_y- z7u3b%QN1TrRJ}Jewfaox`syxPzv`~qKWlbXSA|+sSBEaEZU}`Lwe{yi^}$g6&!PHr zp~=ehyqoGA^ZJhoDGvwEMoO6)8I|5|P7Ke<-~>D5-k8CRIV;nmFxw(4Ge+Uhdw}(s z@vh+@SM()e1BtRwDEb} zMboz$({~%6%Z$%=jL#2@&yS7Is%#?(QX;)CjYUVYBblDe&Ww}1e$LKJ7E_HP*>X;d z%9&C2dFVu8j_aZBd=r!&sFGRF7ol1H6wkiUOn>5xyxIO(*S$ko&t7##*?tKyV~@}7 ziocR&IVU+ux_zZAliL9f*Vvvc4J6Ev>(Q53e_;tnMw`niQ7$avB*@02>=!R`%Cj2N zdTEqxfBT?6c1GDxp*8J;fh14+psgCat);H=bF$&-OmtwL0rn*jin*8<|+#kEz zWP}|fv02JDM7220h;-lF%GA@DE=9k^Rbea`{GSVA{&PX6|5)(rS#CaE81(yBggK** zUmZ9xWA#cbvq@FdA8^iKF&LN`hi3BjIwi~K(jzR+tGD(He(F25w)70=c_RgQ@1v01S-N*6=uMD)Eo;Tj#+7L>1$j0uA$qXsJ%s^+kSms(Hn}g$amqu%}DWx>Mw0VIfb!bLm-$3jc zqk(#Aku!`)D*b6BU;7OCbMf;GU+c^kimx3%An_$L$bFXtIvxph;8Bw{h1S3&h4w&; zLR+9&VT_TOajP#(k=!}yL)7f_(kr#HFGHn+w6gk8zbo`z2M1|-PJi!XbG?u0i~3g_ z9IBmm_nB5UL@T{Q%O9fonyEw6ONVG>R~T*K8LY91x~lsz=4hK+Hw@O)0uETN`07-} zUgfs)JcPQ~rN)1w#vj{R6NxCFHKCea(s%yI%}P$E*I&kPl`l!n6bUdwQ%5mg$GUUV z6V+kq>WxOOBecNf?n&tx>cn)lIDLPXCePkzf%wuat-$={OVi3mYNaD3av<4#Q@SHM zZI2{aIzsZ@KSCm9X@Rz$5ft8Dou!!ri3dk$r<2`{7I&v9~&Gs--g6q;S5xt((TLUm6*I^ z>N3%ct$9AknBZQ#dwIYr!&J6`F3aWx(xYLlOt*@J8(R14aFU`LcT8IImqwnx+I^vs z-4A@j5&!W{@~jmNE@Q^nN=mzEk!jQMNu1TGuOtYJZ8QBd8=U_PY=A6 zQes}o+`r6*7zj?@eyFbF%hu z;8au7@&%3ODB|k+kxhw-0M^M`%3I!<{@AtV48C zi0-}C64=If*WD&liTRfle0LdhQj}xE{4xXBiW%Y-oM)(6R@jy zVV_jFn=RLJ)<^^mlzfN&-$D(E+n(cEKdf`(Kbxh_fOWjzP@l!^<>>zn$FeX zV;R2qOtT^w+ez)lk&7Bhy zt7c?KX#=V5%nZ9R)$HXt|fL7_piA7im80hDBOU^&%~{)T8C!sri~?*`1m^ zm1D$_Z?6`gwP9=9n*BeA{EmhZZGCP2-q!fu%w!^8o0H#ZJFL#~dfOTn?^q$; zfV31Uq9lKhopNPuBS-z(m(z8;J~Lx8%{}~ z2JSO1RR47-a)Zx!46$4uX+Ir#3^7(6mCWU-!}74Z zI;*SRsfRi&MjhK#9mTF?6g}1-`(rj&`O?*iW_1deMiSL_z4Z@ll+?z6kUbUsz}fkw zv}1I9(ll@Y1v1T0Ar8~H%7YBpgU{!-=q0Ey3IiR`3@hn? zns4vXYCQL7r~D4LRT*9%nft^aA6Z?^ni?X<5hU#EvWC@k%&%`9aEm}qIvI*wA21?F z?w8o38K@I8>hIRnc`y^r+?P$oda8I-#N6kZml`8%IxlVsCN6Iy6sH?Dz?^D z5Ts5Y*1Rd~+eXm0{~)CCnDB!mwtrmOUN0IfCq1jQl#ePtSkqo_*y7j{wkH|TYVgh_v1%e^JZ`-xtZTYrPj zg4_usYU438scU(W9%$n_-(74$%&;$V8RiCksn@Y`{nL^`Z9B=33|dNtMS5L){c}cn zp4W);977@!=Q%FjI94Vl7*E;lx^P8f`O{^OYRjJ~TdFO8w(K!&`EzByw)q{pX++EN<=Xx>oMP;6%Qvh2?KEG{hK)m)YyQ;fMV2Qc4;))> zGr0#Pn=Bg%`%J2yIkKfba5&ci%z+yV?JHK?@~Ad*iRN!uzg#PSSPR~($$5CUU~XgB zH|*fO8V?0@3#Po48xH%eM?VN8{Ick!57x9XGH<`8ttR=WtZAoF1b;$x8!cSjmUlZ% zzU{V>I5D|zDz!GXI3v)hVWh9!ntL_Rz1o|RCCwtaHr&}Q_>aKX#F+f%Gt(JG$qgG> z#4W|s^=-8Jwpx8Vt^Qt3y)i=$hVsO>T(fFjdaqX2LFY`_sLc{>W=GxMKr3;iwAUqZ zSt_<8_wzWgaq1q(33kvU72NEemtkAB$`VK};a=hX4muA+cF^AlST>N@5_MsQx0WZh z)eK@qz9+~-`;nGk6;t|{^uQ{6=~6>m>7$0$(h`lM?c*AE4tb2;l)NY}eRD~SoP);l z{JzEe2~RxB1Ml(}RU+aakG1=LetZdJ0{w%sp7Mb5UusQIrwRR#~H#co!M5|qE=V`#`#IWYk&_)6m zXHokxzchF|S;q0MR;3S0Gc5Fu_ouIaSYsU4#WJkYAJ&osLmFgQI)*;1`7Fl***^tb zsi!w4bLDK9zukY2Ric=e6DwYB^VqW9;wsHg#)jfHXC^cZ?V|hao4V*HGDoSFOzCQQ z=-RNt@i4rBcJhnO*G6yVr=TS8W-C88$*bHCS3}0MEAT5$= z&2Qz@%S=u+kvw=OU5wG_WGw8b~niJ`uvAmyD*JY{nz%T(vcBKBaN@rn%g< zndQ#3TAtuq*tR(})id>x_1*M!v)%WU_ttgq=)Hb92fiqS8d>OT{_B7>$GhpV)6=~gQ+BDl1Rg{;=Nb&p%;v5R`QUgOogTIKeScNHeEPu$m7=|8_*pSxVEj0`U> zmPNjBRIJvft=4n)H5S?{K6vdl`8n2(k1B}l|BZ;oPjX(}Sv#RVM>lS!@>>{pW_mwv zE~^>orFEgHN4e?OuGAlzdW?zW(!-&t-!Tze`gLgP@emIq@SK3$M>3wMQ0Hgp%U$(c zjDLP?)6agIMN?)))6%DR)?MPs(Jj6NKCN_jj?Qyhggcm{M~0^(!`G56B5;-JDX@J@ z(fE-NvH87FS%+YmGkCB=P@j}jT-GUAouiwhYmFR9yS*{7V<%Vd$RyC>qN)Yvv&brW z`&*WF3YK|n2Rj8TB{hFeMIedv@7N`C&D|A}=s{=jbmpasuUDp3@pa2gS9}?AF*PC6 zr1;uoc2s;Rfdo&7;4}^>9fIC~otm%d5HymH`=yBg-68bjE_zKJ^DRFao8Xyh<%^)b zp%qVppNah5@0Z`4@g%14njk+nYnmyL8Tmb2%e0;JY~{x!wtqy(m-s_&XzA+QmvciK zMuY;{g!msM$FI;@rtOe{68O)7V(it`0+(5SR%85t$-U`FbAA{jzxwf?l^fuJdzVjm zf!pcJr5P+bx;SO2hY@#=!zCUc;Yhv@hCJzdp9}L`CTGINbD5mW{CA>}jcE;+41aTDlxv}n zcUomy?v|hO+7*7sD|`9Qf#LKKk9u9nJsH_xo6cnuIR*Qs;`hqU4?X^S z?-98OrCdu;%5^_Vx&Dlo z;G@_YpW!X9$C#INpGHY{6-qkmFcCMQr1LIHI{(0y_&!SgwxAQ&@RnBv^U`kHQT{!J zoha@1Pn7i8l#TSOQQC1YO8T$!me&`|OL-2W#IHq(??;LMHA=m|K`H0ADCvBMQt$6E z2~S`PJcUy3vnc%%L@Bq1(hgy4gYwVgwMCxzROFv|vZMU_3J&am@hJbqQZwv?%`qM2 z-`C5)*4PuVanhqqz@-i{M+9!|nL z@G4x4lkr}>8Xv%G@XvTHK8ms}EyL?^Io^OPa4P-*(!%J}PsY1jk1VsDiFiW_CTWuuI@z9{3ZBwD_H%=4$Lh|c$C zhN36~Q0hMjrTiY0`f>x#sOLzOdW=D-ZyriL@=>b5 zId}$T`#y_Oul><_g_xIqH&Hp+pYmY4(QYv)8J*Y- zWjtJp8F)0B50~zY{=E$OQwH!M{Wu7v-90GnISQpc$D*`nK1#U?QQCDfN_);gDbKAa z?RpzZdFG;&XFfV{Axe4fL22hDn28T!XM7l?y_cf2^W!M(TZ%GnSD>`#Gbru(0!n+X z!T$IX%Kovd3<_SaGcV)#EtINnKpDsHqKvn{qtyE!DD}>Y#@o!i#M_2+iBgIDDLeR( zbUs0e&#h%+yZ;;|oi9<+IfycD523W*kZ8KK%uBjQQPMq*lHO^QAU~m`tE22sEUc96 zVPrHuzg#imC!)k}iv(3VpakiPQorsf@yA8u^h}@yr_}HvLBB$&Zyic~=SSmz!#sb=@#y*=QR*E)84o|9)ca?Y z@z97;Z!_`bJR}BX{~m`@-{vUwO+ned+M;Y<9Z>4+MA^PFQ0mXO0b~1$lSby%lX?D> zK72^N{ZZO?AWHknc$9obq2wduMA9ojN$*;e_9?>dDD5QswOQC3XQOP7x1;RG?#9dT zQIzd)8OnCJ0_8mA861c!@d{jpgK;em!4GjX*5Y{l7W45toP;Ov8a#_rP{*lgr!%Hu zEZ&TXcnhZBt=JmpVmq9VJd&yW3CG|an2!tb8eD`^@NS%j_u-AW1gGNzI1?X56_?@y zT#l2X?S3!wGJfty86OX!YzNCx#=%;Ypu14|g`4%pc-V_F9`>X3j}N7P4x{Yvzd`B$ zqbTG5N0f08KUrfA^ql@86+p-#?)A=Sh_O&!glUM#(oOHnLsE zq4aMvbYc=pzqP_{*ak1f4%icWU@vrGZ_LI%*bm(}2&Mm~qHK4?I0$b>+1_TM^w$C$ zi3@Qw-h7o^GzuA_!~NLJ7(Y~n2DdF z)Taui9g;L%&DDB=BW&hIwo#;f8QXY@ypT@l8-x;M}dmv4x^hRl)J}BcS3nkxdly(|~ zvb}gvj#EQW`a2h;okpUx)7of0?_V<`1}1|`4OFby{$f68V)WLzDImZO4s83#L1%CQTj-FKsuqZ+0DdrNrnDD7|@rCb4&@|;0w|9X^mIFC}kMwIrT+`@Qk;z4 z@p|luH)C(S1!dgcidWzq^xy&j;>$Hyp{R& zDE<5oly=;K(te+yjHgdg%3Y1ppI;+?3jg|$(VsD$Bm3I~yo}{ZcsaI2DQ_FR65FGc zw+rTCZybS_;YiHKQ8)?n@LJ5rJFpP%!mIERyc(a!X}A_|#P{$fEQ;3e1LmcFcA$*g zf1!+*&rs_5IZ8i$fl}XtDE)K_WxSk487JpZ#>?9=Q4%Krk&xLbo#?sdqY@-81z?!Tez=RZIx?-uNf|3WEO6-vME!2!4r z2jT&ga(;y#{2ryBbsUOel<{e17%Ol%{u9UG zr#KEj!+iW4r{Z3`75CvB+>ZPnR zP{#R3DC2w=%6|R}l=1#0w#7r(4!=Pe_eW92`!RH)T#u92_sq*=5M!_r9ca5WvVTv) z1m-)Ulp_rjF$1MMJyEv5ER_ApyiC4;QtmfU+G`z3Ip0Gm=Z7fe+m2Gcf1m*JIK7Cs5)&g)*+5LFw0* zF%I8A>DPBr+N&I;KX;(C*DjQCwi~6r4xo%PAGXFHQQ9kj(oP|icCyh)(oRX3fh|$` zwG~Rgwn1sP_DEAI9gwI>WwiXAn3u`kDCN#Z>EC`R-XG5~V#}Kxv0pP||xHr5)Zx89#5MjF-Qm zw8K_(;&zmF_!y=BpQ6;W7JK3`?2X@J7M{jzJcn`|{0aM_g}^edVsSXOz>(M%$6`88 z#O^4^g{MM%Pb@t{)g( zKbd)Hzw1!i?*^3iy9uSAW?%x&MCq>)(Rj0%mwazWS#%#te>{$o&J!r#g$oS9HD#C7-=0`Rqp-R|in?`3mE)4rM$YMd|nN zF$GVcjHlBm{a=r={|KUN4?4bx<0eSNG`h-YE6TLaA3@lzR0?snVLI09w68G|y;$Dxe# z0+j7%B1(O)Mj7u@Q0hGuW&6JorQS18>U%48z&R-Ufq5wPT#QoBdodIJ(Q@C%ywvMK zlzKgaQZKo_Ca;p{`X{5ypFxTGEK0prqSWhoY=)~)>T_c>{u<^b{kKrktwf3cDN6j$ zP~z{!X6Q$Wzc3pA>*)NqDDCqD$~ZWU(hjj~ywd*(DD9Dq(*Lbc_6KcH+M^>%d!(bZ zM;Da-z7)G)5A2G)up7Ei_KVrbEr#-AEpKNDq~%*I5#9i<)Sp^T4(DC6TUl=dh=83&~( z^?wp&+&_y>d>*C#Yf#3+D=6dPb(D7aD@r@OjZ*LRDD{39`BUEKL+ZU5rQTam_KzQ< z9A~R>AnwIMxDN+o4GzVxa5!#>*0YXzX{RG7?Q|NYopwampO3CL_lYb|MQOj!qU+l- zFOwZn#!)A1hMloFc0<{JbVu2)dZM&jACz&Fh0=a~QO42bDC1`^N;?imX~(fB?KmE# z{R&aq?<$n`yB1|U6`{1_RFrY#MQO+BDD5~K`BUccA?tVTge_3oI|Ze^Q&HNvEy_6Uh_c^GLuqe*g>1BU zSCsbdj?&(}(24SYHI#PG!F240(*BpDwEGn(?LHX0;!u?Km+Rv48qU0ov(YHyD-Wff z`6%1rM3ixK6&lA)l={v$>*79 zxRudxt5EV;gK}JW8Kr$UqU8G?N;|%fGF~^MwBt6EH8t)tCCEhWVct4=T3!v2F3`%_dhYv>l^CCTbSd31*3Da>pUWzlYC(gtyoP~YyHtdh{aRe^F(Re3bjf?O)yc=iYJ$NfF z!9{pK-i;68qxffBhL7TMT!v3#2|kOD<0^a-%Wwt0giqnC_%yzOf5E@vGx!d!#0~g7 z{vBVy4{$YZ!7}^^*WkzaDt?NuVHLiK`|vIN64zoazJrHx9Uj4r_#JM-AMss0iGRm) z_zygf@8i$78D(&61q+s=4L`zo+=0pXF)(JTjH}Q+utgb{mx4$+uiFZ$IZ8~18%@h_;*ah4=@9_VQ1WqUGWpV6l;(_#m7fq zd^}p-Zg%`$*F% z$D-xg!n~CC3zT;F7NuRkL#h7{DD^*y(w?VL%2AJ(;CYmM8&QtqXQSzw*-1)0d!V#S zZg+I1uL#`jR#_aDfi zPx%nDa4WKlP%2Q`eNnXhA2BcO^9f4(RH3xbebM!wGcWb~5~Y1=QR;aZrC+{7X^-P5 z^$eiY^DIg|gDCaWQ0f;(**J|b4)to?f(@@5I@Rx za15p0e?Zv|P5mR|sf`R$UN+_>z5`{P$D{OLbCmu|MoF&~N|ZJz>9$8nw-ZW#rla&{ zHQomlzhjcoS7m$@kW_xULK{0SwW z%cJSt$GnWs=TOpHgHoTjP`1-`DCxe366Hgbbhn_S`w>b#cB7=b52gHHV{1H)vcEcq za=g&diSY~`8HcS~rR9Ok9}9*xcqWM0baK`C!8N_oeily@9T z&_a~MEGQvL-f(Ow3iO#P^Dc?&d*W#-BJ3f4|c~a z?1B6%F2??081`en0O?|7GV-U~$cO9)rsGgtfWvVij=;q@5+B0R_y~@{$8ju{VgbH_ z6Yw3B{lx~Hi0|TLd>>`Muok&8DH0-^k*?jf6hcH=PfAXXk|3sEaoNNB9!g<9+dchMycmAlzNt+#D60i@2P0G zRVewqjK=sy3I7&KKJTE6*A3Vf-^F(Lca(9n4V_qt8Mp(b-aD}?{u6uRZtRV9=*D9x z^*@0!el%pLDmv1%$}rhDc$u$=)W?BRp9GY8q@rv$?NIuq54OX;DC2k#$~Yd5Qm%ZI za$SR6@CNLLGf>KR8%p`+qV&@pDCJy?oB}C#BZmg%A(V1Hh7?sl>OcpDEZf-Bpd???4&Pao7=GiRPEUylh8FDEYNS8F#Hw zwu^Qs`K6)c*A*pdca;4`Pn3FPq15Y2lzQc&9M?yp>_5h#jMs_S9h%dqdwzyezr!f)`VC4wze8!)A5iLd4yAqbBoSUg<|Y5mgCqUc9VLGk zO1{}BLHnZQ(;toYLut36DCrMJNq-bdyG=xCugTaMuSMDK6rl^JVm20IU%VOn;Y^hF znS-(&tH`FNEI@{gvJi*jVjO`>a11_(WAS0k!=+e&B{%_}z(RZ)C*rd>37^NS@I|~D zU%_kfb-WJW!YQ~Gr{M;a?fg9~#`p0i+=jB9SK=+W9cSY%yd6J96{~PQ?!hIv5AVks zd;kyOL+Hal<6(RRzrjcGC_aYAaT)%IkK-v^j_2?R{0aYpKjRCicp}$p;&2VKsrV9R z;LF$xUqKhXj@kGoUWRYsKzs*>;d;!&O_-1Wz(V{GC*u~p7PsOJxDBUc1>S;{I2*U) z0^ETM@nd`lcjBYC3zy+;T#nWFH15IY@C$qa58!J23SUAWzJ_(U5&iggJd7XU*ZBWX zcOLLo6zBUt7my~11`BpTiWCtkiv7|-s({##L%SD{DqID-BC%pO#wanGsL{lhSfa7S zUZN&;jlCt-m_&`yMCJcHJMXhQ=RIe+*QojYfAfL+o}KgE_nmoXcG~XQxdZYo$h#ol zhI|0>UC7@sNa~_JAA&*%NXYWG~3QAo&~Hv5-4J?hV-ol6$ZBh1?giALId${UHy6{2dIr4&(yJW{|rWw-CpT zaC``4W5_y4a?2p;k0T(-9}U?8vf9o&2FHzXd^{x2TLDQsN7(nL;FupTfTX{E4%rs+ zCdl@XI}Q&0`_7Q`#~zT|K@Nl59`aa7`eh{~{c$N|HRM&0P*J!J68{P};m;7r+aO0k zJ_R`n@=uUsA>W4F8}cK_iID$&gfe*w7_;m~T$DJ1LNIzvN!YX-@B)&g=*$c-T3!orr2_*dwRKf@un zgJe1E067w}KjdDJJ43QO-Z#JOj^oBS9uBz<*#c?oiB$k!m-L;e}EBjme~ogm+bWO;rF*$wjFkli7_gxn6Yzooa? zu;7O_ko5Z|kWC=BhFk}-D`Zp1o{+4kJ3uo1yF$_rBOqB0qad07Nsv^103^r7Ga;Fe zLm-)t<&axI9tGJR@>ocwd#t7BG#u0Zk0F~v{tS|Ke*sB<-U3NKJ_^ZnyaLH|yavg1 zybVczwnn96dNzk-y=V`~^c2lb7aX(vw}WIpcYtgLxicioYY-&$kAY-4jfdo^6Crth z9R$gIEr(=1I~tPZvI3IV(+QBBA=}d^!pS(Me^)`$-Z_xXAb$YKd|d!Zdlx}6KNmyN z?q!h7&(9&5pI<;SKUYI?K5#!I>%~Km^y?##Ovhu8?I9nBnshB-8Z*WLL(O8RVXjtS3Vt>CfSiyk7T$WIY)TNq>%mWVud&r0V@3S-$&2vRtP? z(!WJWwjXzz{b@L6{h0;H`dS0o9C8jM?XHAm`JDtwd#6Cs&MHWj-x-h`C#;5KIsOEa z_32Vb+Peml<#|0M%k$Te?ICZ1WO?2K$@2UyB+K(o$S#m~Lw1F{7n0@q0Aw%7Cm~sW z&p_?~`8;Gl$d@2ley>8Z{9cC~0Qo-TE|5=Kem}r5^ZR#5`u$@_=KJ4}^gA1M`gc7@ z=KB>puMLiQ-bRq*H-%(*Z2`&iwt-}Mb%JF5?+wZG_kg6|MnKYUqaf+G@sKQ^Ns#p0 zzL50WL69u3X^`~S-_8DX9Mk@6NZLOblJ@6AwtzeglIdOnNqgUiq@9x>Y3Ec(+Bpr9 zcA7F0VHJ+4=S;}vkQYHR{TD;BzFh{HT(^)+|6`C$(&LaU_a`B#?-@v@`*}!~`zw%4 z|Lc%!-=Cth5#GQt)Bh(sehbI^_^KWM8^_G&mlod`7Z20d0+Rk+!jlpD;?}OX}@>$5ikS{R+z+xH6*#mMO9$Q6*sK(2&b0eK?iO30HTPl7xJ@>IxGkY_=j0eK1gOF?oAA@8)eFBp8|2arj^%o&o{;xu^{NI9Py?qCg{rLxw ztiS(&WPSJqlJ((VkgUI(TDrc(G1JAuV3l15lIdC(lE`|Htfw15GJS0!TS0CN$$Gg3 zB5m%7 zmXLEG*M*!1Nqfgb(#}dq+Bpf5`cH?XAI^nj{(lI`{9g#kc6v1=uZPPayFgwE$?M>H z$exflLh?Ge1(Mgn9guw>AAsx!`7q>;kWWDJI(PU;%4MN#+ya&O2rkP{%g(dm@9NLWriAz4nnAz6?5KoZ#tlKz

SkP~+A?de=nQ4RpIA%U~g=9VlL$W@PgJeCP49WaXfou(V z5i2XgVjR;|m)h|XJN~&H*V*wkc6^u}-(bhf?f6zZKEjTFXU9j`@%?suj2%B>$H&?6 z6L!49j-RvRm3I8H9iM2&Z`$$6cKog#pK8Z{v*T5E{7*YR!;b%B$7k7b6)z@)bL_a8 z9iL~%t?l@HJ8o;o7ufNpc6^~7Z*9k`?YOfYUu?%c?D!Hp-ocK4ier}FPIi2m9q(?( zSJ-i{+PU*K9{X{10)X2ag*vv@i}8hIK#0O(>2WJ95&mk&eElaTDJ|9NUP%k-~NQ zWt(K&oyJYXm_o)1Y#-XSEN*n+N^poaZqP{T zYyVZ7q#YtBUp<7+U#;0QS?`;_X!@+0CB0@MDh(kn9A>^M*H>L#DJ_-!QppFw_l-(? zpPXCnzXtef^pFWfq-Hd)eb$@cmkFb3nf_y29pV@>x^M)1zh@f9w1l|oG_KtDi49bQ z=fSiy&f-Sjhhw&v!N#D0TnBk$Waw)d$H4ZQ;j1+*3vF1rk`O-h)FCAMQ-(Ebnxvmu z??@`HIBsll(u9%2ncpZ5MD~=sE7A{DFY!t`uJ8@sc#QCUXH~1p>#Z(lE3l`0)nO{r}E7|2W zqrhv0L3a6h5dOz@88-p{WB)OZ7Xs@~d@kDxmR%foDvsH&#BmqkxM>tuDR03)E^oEd z7tEc1c#^qFc^d+q3Rl^O*zQe;^Le`madF-%r6u^RG%ZyB1pgp>g_qCp9!v<#8T!p| zko`j{WN6 zm?m~_^>NAlqy}(XL*It=aK*Vxi?eDDOWK09*$wqsbuIXBEp@}{U*Ia0o60xTzi|DA zdK1bG$xcFX!SuNc@#%T|Z--LpQpH*l?(xna6XrTR?lq&9BDsgy4zk9IVXvfC6$;b% zB|@(mGZOhS{*s$z9IqjU@NLGui@2EMn2aG<16LEyV4aCMj@jZMyPo41mf_$a&~6-F zTvD@?x42jj)~~YkwMuHFK@igS89v8$*E57ZV^I2ddd#&AU#EYiuZ82-M=;a{k?L#h zIL?jYAiJL9*gFog+t%spV9@di=KV{CHEUWI@Wy{cmWP@K7F!D7g!QJl(yw&VK3xdy|kAkuoU%yFvEhNboNILE1;p5^o% z?>LPuyguHGjnh|FpY6Il*>UCdG?a%p`H#AN7zJIYCi=4SV7W~iTPR#&u*xHFS$SM( z-(Q$=q20LFrLUEJFQIyRyW@QNRIkJ-AMK^cWO2@{WpfwKt-HhWq4tz>X3klzFi!cn z%j`-v-o58K=UCs|q-6-t{t$(#{q zi5bIv)qUKlFPEB+k5O8)ZM9fo*b!RL1vt+@Ziob$yb6_%Lf zbNIvlgrQPC-Va|DzR8?3_@dNqeRIxF%`U}{>{R)RaaSOY(Q(|(h`^;)689kD{G9Ve z#Ify-&;1Z_y#C|3FA&!>iqkv*(cr>7AozzdSt!;s=j0qqfqNA&#CA7DT(FU?QFK9E zoVQA82|g=L3w8H583G$eeRI zIF7N_Hbd7CHDb%&ecc@le1<`<23FT zM1<=y#3?PY4?=!QeL#KpS>7u7fb$oHKN=?=F#dJKh5TmM+lPoF8gu_agl|ilBf_^O z8zIiOC7lr$@{!r-gSarq$>Ihf4oypHS3U^o3*`}f8)b@_K-eGWGF0+G{|G2jT5IKe$_$YSz0n0kE=h|xCu-8N!T+=`mNB{H@R;R(xNfp zX&u8@z>f(B+PUKRE@7?@h|^ljP;oXU^jzLri{~^Z-Aan9~Fj^nsF4)P1%nH=lm+B(BTr%&%xmj8IaGY-z_2tiw%UcT)r)!IA3O;bZmcJzWvbBd@0d<-ho&) z>Ek=SW3KGFG`pVjYZS^yD_jtrkRgH)g8*K>ScB@W6j-)$c2+cJjmS@~%1xDI7pZ4x6+^%=!e7Cvc= z=UNhdS$*yb>awXA$0)zHMiIEIKJ)$&!#T$Bb4v^u+E%E$d>?z9H`U$qQX4aPdh)*Z zm{Xr}fjILi-{&54>QfRW_#>b4eeW@+KILMkuaD!(>ZIBAT;94U-zy*6Ro%TrcCGI6 zz4I}rb*an5ncZr~m93wezJZS8vo~>29UAVqvOdb}dak@qhPozBb&YxQp&jbRh{SF- z&RGVi74BfZq5N81KfyAL|kJ?&X0(y9!z!l)tKhS z)NZJMd~bhT9%>Ug|7MUrtkrGXsRhZB9~=lRaA^aU!jo5$Vvb@esWu5sMAAofey z^~dd-*zVRcXj1w3wc~srp!VQ4 z$93}hEFYfh+(52N85i0O>C<)2z9$aFL6eFz=gceoE=gb3ZVUu;9@>phR=A3F|L9mm zZ7~hcE!jn^F>qDFW%_ov^7xPCH)#)WZYYm%KU6;GX6I@ir8Z}cd}Vp#o*{AG)Yn37 z5~PoNio~48iI$|)_ahyr@me$G&Fpdyl31Vjm3;3xo)ZV9k9(QK`q~?`uCvR%PGSy4 zRuZJob6t#TWBSVOMVnu{CarU(Qu?^3N^G}>AsZ-t)`rzMZad?+_RAo@%yS&)QE|xQ zc8ei=7RNnZ;`HtAIZGe+dWpF~p0o1hUNA8?q>KyKj5u90LmkIM?oY|RWa4Xv_3x8u z`0auGVr^L9vTKIFb7n|6yN7nJrB8O%HU&ET{XXmlF1uDcL*IteaUasz99P!0%c4lPb!cQd$~>Eq$W$QTb3A5?|H=~*&*32|40<0sy8AjW=XJ9ljr z=Pz2cm`V|XzVNx1tR{%n+xK`wqo^*;9&4N+0(l zin*co{V?e>KYMPNaU&ep$LSL{L7df>JWk0}8^L{&;`B+M=eUnj%#9FWQu?^hQp}C? zoaLAMEXCY@#!Ytl@Z13n)K|utU%bA9ygqA7xbG9wr)z(f<9NuuYHvxnmdW#fTrADKe?_alfya(;Dq@P9OIJi@E+e`nX?M%<;L1I4Hj}9LL{o z#UYO?Yj>@Dy}t6XPi>-prrFhXsrEUx%{`oJ5-yt`b$~zan}Pe|jRUFiIQKteex+}C zqoxUPw)u|-E!WX~zqmgyou8B22wc158VvWhR7SF)al7V1=cOA${CaF1D*{^>U|=d(Oq2pF2w*_oRzCjcI=A^l{I+nCq#8nN%J3oUUo%vdg{i zVtu-%e`R*H7R19a_6e1B2aKf*k;*~`)HQSgC1a#MIb$U5wHMpn(X`y;^838w%H|bT zU$`eedi+_Nv{_A*XF{^Op0F*n+P-#LBU^DpMcN|8zF z+tP6p?fbi>&+@UO=7<%4??#@tM! z9&`G*S7FT6mT1ea--V8wW84!?ANM$n_07xCcf8{k8260R$Gs6_eVPYIt@6vg6Ju_P z0WUj!=R59DDKe?+*K>z8kmFi?9F)F`o!z4hdflb(a>sGaC=Sy1bH^QT(3{d{^^|)< z#(p`$xVObwJ>{N}F?V8Y6rW|6drHRK$;SQ7>ATx;r+Iy5*K?~H$er#v%kP8E?wQ8@ z)1{AlU&i@3+v~IRdF~v~nO)DFZ`{9R*EsIA8QZ3iLA7pI!S2kGNppRwIbjBBhhlKF*ufyUfVbM$eK(3rd2xMoh@myY{+j=m<_ zmg>98xOJVrW{&%1jy~>D8mI3X<2G>mxQA)XUFY?gUp#lc=d2!h?gr!d?3lt%=+8IP z{EZzu!i_ooIrmnL(|1e23!5k(W_L%&-EQ30;w&F~I_^&6Bvem5_d5Y5#SL}(?)IFe z&vW-1$LHr1_JUvVd|1=u`7ra#1I{nS+WFIG;{#U-JqZHn_T-c8mrPxqmS2O5b?%)d=O+>JaxAj?;&!ZW2bzr*-)8FGA{5yJptOxfZxDajb9M zpsq01+2y{)G1uC-3F53gI^=MMr(+B5cO2_$W58smFOREFpY9`0b^5r!a%@*zs?YM_ zIjx6zj{7vn`q~OGsrtwLn`2IM=V?lxmG3ymmDj%+iDvHq9P87%nary`pX4}HpOT>8 z=bdSs>R*o%DjY0CeLg$kvTOfYe03k{v-Vw9edfN>OrP|vY|I*ocZOPii?gOD^_2CO zbKMq@#ToOL)*zNhGXG`V+=X?FWXqvA`ILK9$3AEUhGD6EYGuj2t7A@eEzsF`_g=@T z%=x@DgM9i&$7x+9P?^4G9j7+uNT=@&$Ej|3ecDUgud5vE^l^{vIKSXY)3-;N zU0k>bGtI89)q#%V;o-RUXD3|Nm$7YHje*yt@{8T;2wZmUKW5*joZVwN!P$k0vT!OQ zxmWvEcq`rfm?`C;~I%12&%#l7oeecPD6+nm0(Ih;?Q=hR-MoL%P|JALI`sP|hMr+R?w zmxU|gtgRC+tM^<_Tsi)R=2pk}|eK zq1?pDuI6Ad{u=VJASvIheSQVN7q~vQw*;u%mb!XyP?G@sEppH&(8oiK^=RuW#8n#q zo$l&ibHWH8%P&?>&vsnPfTe#`?=Nzk<_7^~ad#~d<$e>B-yWer!*!Sx? zeUCVeIKQ0b4qKEu39(sXp_w=QJKqIrH-dPTw#CIyk$VIc|g$nUr5TI&QRmzm4>n zUC&K0uA4Z^M|Y=hlDC_~?c+JK+u!NSd-iCU;|}urtlb@MoZ8)@<9OH{jrOR7%i3Ku zlZ93X;~59#*ZQr%W&Ou}_I=8k-Eq#YVI|hv!S479c6-9E`eC*Afy?av-V~;s*`3q? zyWL=SA7^(Xq--?o4s-dP?DRd}guO?hP;Fds=7L$pL8G%ZGJL1HrgPPY(x-7y8#~o( zh*RGqR(3Pm>OC>ClBVqRk z3D+`tZk=-+_5ruU?mo`$MNZ#G)_04;%i%CH%KGUR_^dS^+UC2_k~sd}g&;!mzBEYr z>RM;Rl8~_ab0E_EYnNvBgD)Y?d^Zk*>fdjizR#>4h*O$*4#yjDnpvJnoITGPaz>J& zDoyi)&W3f_0mEOtEB0BWP4DfQ+h=BRW?kvaVl6H?&%d{)L-g)hy({)RJ)+ zNUp2Fdy1p?3(&?9u(74?=P?3dCE~V<;)-?4i!%dfEeUZzS^qQ?EBp`7-Ct`ui|Blk;)^@$5wv-XtxD8$?r2An8; z)`uSDIE_V56=!zyIB%ExHpF(h4#9Aq)3-8*3pCrN;6Kk%cO3G#_A!Ld;<#T#oW8D} zGrw>@iI`)*z;J=f2lthTxg7$Q{#AY9z7sLm&xi}9&+OjqxB!X3$;jI$?AdUW@bq8N#*7_G&xE5wX@58I%2zXjFXT)?&A@2^9{J!=^Ny@ zMN(u^`i3~}5c~eOP9OIJiR~VmqmTQA#M}|a-7bAr9^6kP=1wr~9&uK_D;)QIZ`U~P zKN9OZ)pKU|EXSShIn&4eOJaRzHjq2JjH^vzq)+{ke@2PWRp={1f0>OZS?@nNIQ+(d zjQThAtJ3!dzeM0~5g0T!YrkEXn~FnsTo!%IQ?}L)Fmtk@2@K;Ynx8 zEIeuYD!u>e^T_Ti&Mq~)gE&^VG%f#wJph6)tdeKhD15Y*d|=yxBz%+iF$Q0h+O6+> zjQqWWLStL>m9H4TKH_5kF|Ix0P=!*TGHwUNaXu8EI}~xuRvfn<;%G9Ct3@1Lqqs`% zC=32^d8_Arj2lFGTLv2pvcb+|^N^2-jMvv)^NL%y;x((Ji2-5_bfbi~=YUw4c&X87RZn2}>f z7TSmX%$7qB<0cIpIr`IaVQ)9aX|1ZEW2x%@#CuBp_iI&5%jj_fhkV+`_IC_v`BwKe z!g?6Dw<_ER-E7-Je)HF=;<1#*u}h;e+IPq#S3-FHc8F%WEX&gOdpC5Q@PF<5cpS@1 z%j&_m>U)i2ceHDPHX1sPmG8Mer|X03u?uD%TH=3;gXaI6zDM@{zw>>4bBI-}Fc$Vr z`=0O)-Gn05a5QMlfej}M*DEdN`(=((89`MNr0;OYtt&vB={wqSWo2nTJ1^yR}EX{Ks>Aco^mJpG03)9+<8dT3vws#+6@dPr1iE zbx7Z(RvufXTv&fuXLM=$P%Vf~>G#fik*QKdV+t_NyvChUp^>mnV%7?DE zn0*?4;l1Q`7-8_8o*dKg`rTq5?0u+wm|w1N_5ML?6MGt0v^J54=x3_fUa0O~Z|AE2 zuv5~cs1DuixH4Z^ng7P6rB$ja`|u9(c5A|Ad1JpY33(gn^2T?Z(U0=giLY7sQqJr)MqP@1>hr-wtcL<_l5m+_j>A5H-7(H?;4-`R z^P`M2yW2IuZb#S+TxOSbqtj&U>*4HreH(?LK*pKfanA0#%%BT>VRyXcSHJ(53uZp- z);PO?%ksOe+1)qgLOV3c?CRRm_<+w4GN``n<2W3a1l2#TpT_l1^{VLf9h$>Qsr3Ea zaUBJiRQl@YYLheg8=AOYvA*~)2!6gb;j%T4E`WyM0fD8;ht=o6Wq#h@{5&`1f}ihj z`H-LaoE?Mmk;erpYZLEr`fykhr0=ufb>GUnOcRBKzKZc^sA$X|vUeCgEY?8*!Ty*F{Ojt)GYuu%K6TR#5W~vLvC@t1@ ze&9HtH`O(cVJp>Lrk6oJ`@P{O#wd4??@P#Mu?c=c^c`@5mhPSK{niJwAsE+Oli#TjOkA zak{gs`uJAFgbl!XuSpXY{o&g_2b^o=m?31{~U$KkLf$SbuyC*rjn6{Jz^~udKNKl_Vzh+iRf6NmQm!9{3 zu}`MILqGW4^vNeTuutA-Ojrj||9c4w7@^WLi;dWkTDaP{__?&35f}PKyZ8A&cxLgl zq#jyls>DIwwU&G|w|sn)XBLAmO6}J7%wpTfe@|5K-z(04%+8013uBOMPgXo8Rrbtc zTTIY-Eyd;01#w|albzcSadeqDJqH!aEj&jS{NwUg&ohggMR^+v8w|3+&wC>-*vQf{ z6>)LiDy1d(tTZjux4>+aKGPN&r9M$wj!DxJo~6sHFQ=sG3tYwW{Tk0K{s{Uw7UMW^ zZO<%T29Eb*>f^2l*N|rxZv)5sHfz)OO`cg?OWi1WX0cMaseD8I3w15jn^0~@b{c+< zd@z)jZ)o$Yb^X@WELjk+B)^(hK96%lUCZ`&eiLz_u7x=Ku5#&NJLoz};}QemI*Old zY+q<^b|{Lomn@|0g#Yw&_6(%sX3Rg7+>m-W`Gv;ytYoOej42HtrhbW^l?>d7sNR2R z+?qAvS;fA)U=^;jFaWLivtM%WYAbDebpi zoK-WQDG6m1_S?quFUtrv!GCc|OI(LSzDw&6_Pn1}g9lGSKbSp7!5QLZ7{AQ4v}pXY z%8g6-_-65oQd}}Igaf$!-3*# zeE&no+1CNaUyWmbn&ZTd8x)ciNbH;0jn6D}){ z!2sTZ6ZM?C%HtBJZ?u)iT$KlZ(|YJq+he48)dsi^8|ndTkOF=KZS#ezTz*v^^W@qH~^*J%Ov;Z=TZ zUJ=vEfqw&oa3-PR$vm3a~?lq?94C8n> z9Qv+})>#=h8FAOSxEjP=AH}JT&#^SC&5`PJloqSIo-3=9b}h_z`dTwV2Ek%chtrV0k6rq@ z0_ueHJ?7H)nb%hp`dV>HA8l~l$!DV~^~uGVi{>v{!e?8;xRdRV#u1yK^7B0i@`3ta zM5WX0xWsYX z^AD@{H$-tf_hFoSV-nXq8H-dJi;{Z{+;1De{R`Y(^>DgAwlZI-y;mRgiptHdkF6aC z6D2|VIy-JXquy}(`a5o;5^dR7bZ5u0PiFXw(>Ka-dap*HGks$nr}q9G>9clig5%WQ ze<05MQgmEb88j)sOm|#2`~E}eGrP5p)7axG8E3u`h|Uw)>VrOg>J52_|TPQJL_w=PPs6j z`KNJeW7UW1H>;|XTj3&Rza>s%RzxL1*FrzXsclL*yB6x_LY*9B`cx;kl_HaTH+>Nm zF8C_Dr@lYFzY&w4oznaUeci^CK0i6!?x}B=a=|aXjZ=Q*mmS1eKJqvvQ-0aY=_{L) zn7)aQE9=W_>@(TrqqPi1vK{Knki>skePP|6e+c%QS3YcPHq`lfiq)50Q!e;rq$^*o zGwklTiH@@-Jx!hJRYSSiP9L&X5;VRNr~2akQp83EtS@sDeWiZ65q{Y_%}1y&3(T(c zEj7Q4GA{2qBP{h*TsJ$!9arwZkiJzeeZF2%Z#OvWjD*YbyC>q`LVjnu z{GRFbt+f2^lX9URoS&0E{XS6j{u0NjJ|84~R`2sT@0S~$K8@j0&c-UYIF9!q;vhdi z;<$D(gwLv1;#3bdbsP`-!_Nzo>oRMHIKKY`?GXD+294VTmyO$h9=^^vyUq`B*Lhie zu|ApiCeHbV8w{VXy z_{Zg~p8LrcM|pc2HW*^NA0sZ<$nGZ>(3!<~tCW`Dv(mIscN?6`Q0cza%~4v~8@Fan zxKEr{UwVKG=?h%N^8Fh3lXr!_4UoRI-PdLMhk;{TULQ9B9M@m#;|>D%UEWV#OWi2B zpIoWjRKB79g}N5%4P#2feB^_nQaf~eRK7fkZC+@Zem#p{6&^Rc*vq-%{qq~r{D%ADJm*ftg=;IlSN{L? z{qx}4kYA=>;o;OT<@e8@kILhD<8=SLlD=)igv@hkp2?+rKJrh>w8DkhT#62cSMCe zmcN6kgW0Y0j;If#^z}^B7oK~_(>EaH;^!W4nWxtZ$F{+LOpW{(d{Lghy`V3Qk+L}i z*F|Sxo%<6@pT@QtOKGe;zzQPeY;60wjk(0xBOOKuu|Mp-k#L#a?eNuV*ll8y9oc=; z=^Jiym(SAl%}A7fWt`^rRy7J=7^mN=hISY4e>R`37dsD{G{;$Ihtjo?^+VFrznW{b zbX?w?q_yMNkHtZA5^?e$`!OHp!hdZNeVPA;VldPMSI#WwzqV#q`fAL7EsguSbKU>A zd}!{{DzzKRqhp^^|0y5qi?cam569)LLG9=`t+#LJ^zG(2t+&gED&NtL>uNwdr*DGe zx=E2q={vx2J?#4}oW5y}W4(`q^wl~Jhe>Gf^d087{;@KAmcFAMr*&`sE|Edpi;f!> zzAkJl&dTjo$Bi&fLf41qMhY+~yKg&vW9|E%&hCef+dD_!r;eLwTyLk3FZPeuKqu$u z+t_i_jq4+Qwnow3aWjqEQJnd&qvL9F?DlcoT;q0g`uaO=p4Vq~JvZNTmX9->zEh3c zLw1e(f#X&g$KOLTs2=2Tfy(ONYNziE14cM~o;yp5Ov>(0oW65BXZa}LfrGdn+-}@x zXScEA?#$7*uH)`Cj=zUwQ2I7<+ymk3^slau&W?NBh)GUg568WpY6>5uZ&$~?ZQOoN z-=2>lCMNg5x?GC$&nS=Q?@L>a*v%G?43B#?>ZCkUsU7-5f{gaP+^E zl6+*(1fGWYqYf(+PFH?y4SuraSNblf;*6wFm}gw2{+HjM3>)3Q;5!;yC+i%T_aytf zaLpLw=j06$@>S9KlnlcnrNw+T!*TX?fbm!Q<~mO6yGxzElO5M4)f7HR-|3Fqz_?{j z-wz$PVUE7lj@#I{Bb~lW9oH^L-xZGA%(!EnzF#`dzu!Xnz20$bR~Sxk`fhbx$AG1O zrSDG1bu!{4r|(|JbxAda57PILJ?Na zL1T1r%C8@@CikP}E;(eqL|>NQq0mx?{Bm8NL35l9&93xSH3})z@0yCx#ciP2a&Yd< z(-~K+oj;rNt2EB<1D)6iPHU2?cU zXJs_fahkvBH(M&BJgz={sD33u`o=lC4du$(I?J!uS3YkH*Nixo`S(gv2fx@ops(Q1 zl6yezhyKYuAp4hJt}CjC)*&xU(rO?+=G-e-oihkGoH!Jcc_yMfQkggESt zWpVtSZHOB@cH*Sbg)4Dx*EH_Cc`jq3m9N>&eJ;b_1G*9wA)K3CzpNYg;rjif>bSL6 zvZ1n6d!KT)HZsl9B2L#J)TZG#Ffu*iGP`{4;S<<>+u5yg`nucP{u$%GZaaCD>C+mD z=JwB}c0(KCIo@Akcu|~P3#T}J8b<^=yY?@3+=d3c>hxXexU%-y#`4!Yu9pm&)U|($ z1?f}y^1AThL6q-r6T8{iaTuVLsGuJ!zgDkqxAaM0=mGG&ka5)g zEcCG+aZJcQZ*Akmr(AyX`oXUp=kJRvzv7fWjhmP*h1Zb2!j9}$v;2-h)Jw=O+cpOE zgN+g{yMKPN*7}Sq&RsB@e4JnP@jdKZ)m`?LaZp)~avYNv2jxwi@>bT~Tl+i{m0Iod z^jYQ4%^@yT|6RAwyL|`kGslLZ?fh=q=P_0uU$=e!%nGj3y|K+T7(v>bSi!~j#@0g| zr*(?^U)-bLAW2jCWU`&5uTnlbSU$eVJ^J8_QoHrtqwg8{uUiHG?dbf+3O)>RyyoOn z#_fwZ_91cHJjAixiQ|qzoWDoE3UT2&5BJJ-Un7)TxPKY^;-hK=l3~^en zLR_$s-J`!5adF-%r6u^RG%eJ9zuBmCkA75?mS@wngnRFK_2u<6eSxc3zF*@W{Xd|O z{RZa{Yx~VNnwAFLqi>D@Z`%gwYYUG3{Mzh(liz%=rEZkmqpwtMD&J85LR|~>hA~;F z?_N3IAE40DCIYH!4ZT+$>PUIL+TQe4YB%{dIwOwSm^#dTcy4RImAA?@XM4@~XG z_j-e0rbTw=q;`3)S9;=JxeEIj&#kRps%xuJ^4pr?yt(tHFI2k`;+W<-=nL&exRW91hcX9q4Dcb;kXQqJaYe{gpF_?f3&4ZD9#xbVJ1UPo^rev2atg{Pd|$DO_( z+j#dRo_g+cXnQ^%FnXVbU2<2na5g`YTmT^z?XkvPb1PseqOA$*qqdO5C#ahJ-j zrLT|Uwm0r_aaIooIIe7-Z2ER_Twl}oOQ)~eahPtF1m)Lrs1_wb`5oo-aqWrWI%jvR zwfpjdDdl#v&;E8!`+d-W*8*0o!~k{6Vo@&>C1b@X1wF%m*bt?eG;pM!oBi~)vHq- zx36)JiL-iohT{$}PD1s{a|a4ADeebO-$4!Jrh3lu@nfeiTNwx^$nGVMtM&ShzVZPnuoN*`wVu zo3^`o+}pBi_26x1SL3?(#hKmr9fwQ0B*@R6E4!Cq`l<$$_Lo{`l~UC|&#C{-xKJa- zss3#&z-00}K8(G?+Isf;nH%tZs|&F&g*jYf@6*uma11GZeX80en%0AP!yzBDYOp{xQJfhXfOFXtqD@?%Qsr@}IgWhf8cvtUsDJJ#vD-^yd4am9r- z%Zi6hpI=fQ%N8w}2OVsh_1=`Q{z6ItYdrSclC_gbd#Q4}z~xu->A`9GLOXet77ca<9X*>kN0m{j_1cluOrqh#00_ff}bUOP^lrSECSmG!Hp?{&v*V(FUb z^u6o2vio$V?-R#q{=1L#8TX~*)PL+R&hoMD&ZYG^um9NCah<%MO>BrG=OoU~t#FU88T+s0_^)?kY|*h$U>_dh zlJ{Fox(9s<=gT1u&rwXm?@;j^#ja@_o}+-GNy!*Q+_&>?4EoX1@~!S2ti2ZcS-F`H za-YHIV*M&Ph8k-CE3I)KWp$F=Va91~opC21F0?uM_m2)sbdbtIeQWwFBD-fhyA55_ z4{0y8%M@G;eZg1Rnk7fLqmRb(pk`NXwtT9(JHWD#ayCcY$$T$PeVO5j_yz0+F05HH zeH=?of!&Lo-Cdo&Nw#Krx^ZP|0MMiMbcnlt)sCN;+6e9a1jnfzKUbW!8~ZsC+z-x@7zQ03XBS`*^xkXirLb!ezqk!?o-0(SE`=xsVU+nUx`gdKLmf(Zy9H%7Q zAkOOFEso2ZpLC3Bsk2=oRE7eoaX?_{3X5->NI(_V$;-E5r#yHjI z_Az9i|BW*GQ^I9s{yx5|Lz%N5Wl$UTs?&F)mHB<g5_+}?2(~6!!*TLUe`iDg}@u@gV-$_m% z+xs}EZ93C&qhko4l@HHhh!}#}60>`Q(}&@6NswL7?NdU*ZjQdmIovJI?!KNgKYMO} z&zW7%9hk%2=IkDn!`nWoR2S+itO>7*&d zg;V{UX`2e~E~+$VdbYxxX>x@*)4|`toQZSF?{dy`pZWRg%$cgIxj)^GeK?BY7(?@@ z^=-gWX&%+xt|OMj7RJT%s4j>LZE=`K{V$%CY@ejb8h$3sLhrTYqqpVbn>;HSd{Jt* zzGo$Ojr=#Tg8#-k|1m355f}Qw>>0yFhzsMKEbauvahx8P$N7lk`eqz=8R9tpQJkKQ z3gs4_=L-IDd8_AHNxcUPstY&427_$y^WBIGHnKGT0daBODy1d(tTZju_p;fj^sM9o zk)JW+zLn4y`m)kJZC`PHyyoHyQXA|M@cSXhwM=3Qg+s*I800<2<;`(Cr}dX*PTzl= zzOr?1v+KFC`LB(oJlD?hak%Un*9wE^t?-@h3u!(3NXKpIIL(DlFi!U{XeOD5Rk__B|7wisxvnW;`Ya#SPG2w2ng0emu6F}D&4q+(zCXnDX{^^* zKqSvZog9&HSsm|)@B1Bx-}R<`u1(GeTy}r|B-3+d%7uD5!{tLQ$=UUAs`sWgEsr@) zUqd;q6=eECKIS^V=sFTdc`>h5=NHzi`NtIsKTq=!^aU>S%LP<`@Z*#Ve)+!3hwgL! zq#jQG3tF=|&S_3xL%DMQg?y}Xe$g6=>{4C}znt#;Qiu4B`UX+DC!bDh2`le>+D z!ZpU>w8Guc$8^WnB}Yy1`ljZRKh4SSuVmM*qpKX}^C5kC9N$C9pzHh^r_ZL$0U~GD z`JIkadv&YRcc0@rrJBMA>3hI&U5vZK>3h_1+vVtc+i`u2`Zx5Hp0i|y zMB=afEKYtY8%Nmv)lcz-)(V!^%&*0J4W=)hQ@UR8I?99LyIw1p|1GT*j2<$fh+nyn zZiFBdf^ZB(8x}YEK78glE7%=0aN^KHVX@T%#??0-|0F8Z z56t&pcRc=KqN99V{CQfI@o$L2`w72@?6%;f2cf?AHns)#-@LamA zi7IiAG=1T{jd}WZO1ZE1-p1gI^7M^N)7P@lCUtN4&@xKj0jb?=em)y1Z-2*iFrc03D=s*^xODL>TWiVgS9DCgCv92Z zUE}oiG-RtNzdu9X*dBzjO7QP?NsRP`xNE>MB+t2ps6ww2F0;GH+3gojE$E%k%I{H* z+tIi#&VPBF;pv!WwbQq|0F$!&lH=HiGIV!#-*Mc8fTe$>@2`&2`h9Pw&vRw#@>X9w zhpJo>WcN#F_duiiIlC=Tp;_ltPiK~B%gSv%$JH9Qi__=1IbNUT!*h1KEv1!@cFyiX zBdX1=?w^M>#;o2ia`hhjp(XDl;}|B?=b&h@<7Bs!vs-6&hq(Oi<+#I)laRjs9Jkzn z5l$cXq>ant2q`itebXGL`x>L2zFNl}pQCS%<4*9Lm0O+TPHP}{dKnjLko2kDJ;QN4 zybJBi^2Bb|j`Mwet8i25GUeBvIXTACCw)!q+0gw`E{rj`_iF5CTrNqNYMkm-X#ZNL z_q&_9c1`t)&0buun&;H3Gn`$GS!XDH=H~|;x1Oa>LiOND$LX1lTBq+B$8o(k4$}9s z>D$e5nwy^J^zG@m-E#DCPpG)u_B3vl(>K|1L%cpK z56@v*Q4*AoqSH6hsB@fM?o|}0Z)}M+&Lu(Aiz#^cB56v+KEO z4dkYK&eF#{HRAlvGVWrRKF?`X_ii#UxZsV@#H-y2*$ z%DIpaamt792dVob3gUuXnfE(>T85fkJEbg z=UPi`jX0PoiQ5!$?7x$KACjRf;<#R=xZ>jC(j^#FH&vV-oGV%J@*`n}B>Vr^5&5)^>+a$4$^*V7@*IGMnbK@jbmY&mCAmywr z+1Tmh{RM{Slp%Z`4j<4P@m#W#A9F1(&N#F-lxG-oh055ugsV#Zx23b&gGLcvbou2w z&tt!o-H)<-6dgAps4Kkg^wl_S591`{KhLSpOF6S!=kyH`U{d<{p5izkBO1t!EaQTY zk1>6^W=1=XhXRk;K`3)oOEb z)A%Y+-#2+?Y%O)e>R<3*rE*jGhWZztp$heeFv~1WIu9f4kd{PoLcHG2qy5~CH z>GK@N$#KZjrz}l!`ZjlVwSFa?(zm_i&_pC*vh>*)slVg4Fm6A`?e4ht#!V4t{u}Bz zbjKw@=^N*`PDV|YK1<(J$7#K3mN>IJ+i~4WtY+&Bp6l*8v%A3Q+s?RJ*){Gk$7u|_ zP@JXj2*>sDc5}GC4dnWJ&eC_3vny_~(r4UC#||Zz>-0T5(CIB z)41?1mFLHnze{Dm3cm|n{w=NN#LxO+$@n{2&(X7fm)p7-ebCTn{j`?$Q5)y`1#_4B z9V>48Kj!;*Ev@Hw#n8UpZc`I^Li)~g(r-Q*GpbR9HzVJ8p{7-Ev=BG ziB?O)pVyL)^(`OYWG$^_1-tdFrEMPh@6!tYYmA#QvHzH(wup<@n;6##aeggr0OI^w z+9<^NwY2>a$CV3}o7Oji-LSq9{8Q@FVm)hV9izM*3>yrx!Ow>w&gbm}#Kn25l$PML z(zHhQA>n43*aOtE2KwZp?s->ssq}rFBhq<2oMd zNNK&Q?>Tes8>6r}Y%s`fLx1-f(q3wpdbTxvmGV0=vfJ0$<+(#$ei=6baq+dqxFX_w zyD=YezTG$+alYL+1#xk^L4D^Vj%$kY0pqSf+?pt^lJA2b%YASM&JF!mwtl)3bgf=d zC@e4^X#MmEH-_8O)=#;Q4}-?k#~Y`$Qmt+7@3@m4w{B2VD2lT&wdd@XqS4vfoabyP zopCl+KEv5%o53($c8xp7advqWYQ$OkE^yptL0$S+ep&6f_9+oQXpDZPt+-r@~*t>^-NIr;qaDBpM^?+-ZU!Wcwul(xS6sK>g=~-$V4_|=3Fn$i}=*0!o zXUv^9w{UnerY>Duzs2Q4Ez>gDH9va}L*0@fKi}c>Y0dmdr|)jZ<*kK3<~X+XaZtIv zSvj@@2A|1B<4+*KDJ8? zr-(B@zwJ1-H*t`kKX9C`^V6iyuA_fAPUUg7IJ5h)N4fFlxj>~H!Iyg>s@>=P$GV1C$)yZFrGrQd#m)Dl`bex`Jyixkh zZXd^~&EZ~i465UMIL@Xxh2M&^^bN`3g0@Vb=Tvv^a{7iled1DmX4iARty4b6IDP6v z?~z^ei|2GLJRr{OPIUUjrRg($`#Db6!b8%R!);}X9v5eJ4|Mv(rFL_;tp%9WwK~=5 zD;o<~`er$C54|827w5OW$m#Pn?pe^m(pq3}SZYJAK_u(M!(mq8u)@Yx<6G zoFCIDeMdKtJI-<2%b-c=^PKM23RfS0yy;V0x3hpqZi%+;goMlX05}xipSKdv*vc=~ zcAnz&ZB!L{+YgMx9u&2UY#b6pW7jBekHZE-oW7S37uOAb|1RRR(u64E2UFrC}fBgP~G8G&CyTTI1rnwiI!3U6b7q7wm>Q!k8@7x5hXs zvU|L<+t4+}koHo$Ou-q@7y21n2T7h;JbY_lMalIX3K(=%v`oW4^WH>N~eHb?xKCWkvkoL#?N9rshy zCn3Ata=5ddzU^|jRG-;xDA(KRyG)8qDt&_;cddQ@1DC$hj=SDC3F({cxZ4c)q4b%b zYaRDH<1P|s`JL~$dyJEi-8#qJYXJAKW>EWbT6JkXcqsWc`;*5#oFU04**&kiRNv#q z{Y-W(zZW>}N#m{(XZgLzaZej3q4as~8387hzRRmi)AzD{e~q(yhvVKbPD1(~aNIiv zTqk{&-`_j#J>zZ?XZd~1aUU2bq5OL8uL4XeeeYJ6=J!AL{jJWf=e}&9zBR^iPjLpN z?;q8rcEu$SIrB?lU@6zEDiC)&eT{QCudl7+HZpzpJAHYa*Vo7C>ty=4Upj;G+dqd3 zRF>aE9XG`EJtBSPm*X5a%D6v@v-)y^>UE$vL$BB*dIasoYfb-OL{>yP%XKj?GWd_X@nhq*$V|9P4sW|g} zE63@+RiXrcWVf~Bl%@5YzV#hfHU~4ip3{A+)NT%^d#NdB*Zv01uI@9fuk;zWiQ`Zl zN#OqG49f53j?+ETjm25|wsIWj(Q%MI&$Ty*`%5#Z?etv7@OAn(kIS1Qc6RCOVw&1J zyW2Z%yVPR%pnUXp-1f$Gls@xwKgaE0To-ZXzug_zFURg4j@!|5rf-_#c5fh8HYd)} zw`ZBY(3Z%q+LCI=@$gktw&_XwvbLl(;?Fw`?--F^>^@H5vbJRFMnPe}l$()6%y#+Z zx^Ns+UlurybH+I6ev~-nL+wk<{vG*PnCQ#$!S>*Gh#o^naK4qfRhCf8G00yQe-af5-21 zD|42|7~|@D$M3%2{+oCFavyBGX~b#~KZh_YO<#*bE9>vY&5hExC{15@$8Vm#BUA3{ zz2i6dqBMQIde=^$XNzQ&?vpHy(sz1fw>h#_oHhOM;*6Qek}&T%FplAe;OK-n?x%=j zyQ8?`g1HNMF0Z9DZfVU-#_@VpoYv*p7OlZ#u@?RdKJ%?pp>Q>9gnA#=u5n7?X2czr zTno+deyRL(9{_h^!nID)$#b7U+{q0%_f>FbxO4xCxKN+7b@@NR{)Vg22AWUR4xQrK zml4Sutf14lV%?nL2&5-m=Z%x}F>W;CrX<&Xh+~>RgWa=~7TY_7tAD=DZ-l|h`QmsY z!Ul+&n&{L01>6rP&M#b$a2B_?X8JtDUFgo;3g@m?Tx$2YLUp1!`_m2F7O=4k^2jt5 zaWB8FX2~qpoi%ILNmeEG{!aEQtOvYgic6R8!2Uec7rfImi90-r3w2F#MD$+HmfymV(sDb% zxGP=yS~zY>j=psrH`TanoxTkmH_huazj$uC=PVy>oxYjI{o2{>^aNtevVsG#)Wa6IE~jhC-$Kq+Jh;HzHFTMDxfV+FBINa zK5V=@&Fo6wBS|lVeOZj7?!BQe^cAJge9m@h)|mBv*|5CjaZ0y*^$VvD&2ADNls+r- zUpa1T;~o)bb{}$FN8==9_i4v%?pZl@f5 z>!1S^+d);x{ zIc~Ud5-N|K9XCpV$vlo@fjH!G>MO)*PA9v%wlK{o3kTua+BHdEcCGdS)$a_9_b~Ti z(3oa-%ZK!JsA4Z2_Eo1W&RKNm5;O=LlcArkqPtYbhdUoM;Ry(z$ftJAjCP!^=|E@t z#yf6Z13r~LE6e>IhpA%{xX(C)d^*)}W$RL=&vROD3feM#bDTbVY)M#Zcdp~q<_J_- z&NEKF_v=mMm!d2eBwRK=-3IZiQI@S;SuS+?hFe)SGfrh$soh=d(yX$~(mW&ic%|4Iukaw zjK;Byy99AtC2{$44b}0Ba`L;W(r0!22FJCcp(se-t&VGB%$82y!;ULkd$qdjIjyO7 zkYDO*l06w{CVt=R#?~h*iAvvd&aT!}JG=C~;5fLnBuL*&j#C})Dt(rZKRd32Y3m`* z{QR!tcrC<1cHehg=NQ6gwGkgWPW`m-JZ@V7CdGZ}^p*9~c72G`wZEOy$HQO1sa5Ex zwklw*YuEA$#9wx1p};+a8Ptw9OSo)}?E0!O%da-BczDh9CE$6z>iWPlt_$ntq~owK zSHoHX^{x|h>;rJjHX%DVtP8}~ThZ19*n^0}$HJ{vIs80tgr!+yi`Ik@hA3}V=A#^^ z_CC<`L1>$nJ5KHH2&eBT$89M^CZ*4F8WRdvnIG%)sqSW6ZSql^%Dkfhlga){$p^Q%ylE|Wf2GCB=oQE1wSTWU&i4!QY3t#o<4)_^(}b!IZEu`>;QM%%P+2}ar}8+|>6_^E zmGxVe56}5>Q$7xI`Zl(N9q#NdcU;-n%-V>f9j7+pXs2(55vTfG)^FKwY6ioxx`#1$;oRcnp@S#Izo}6imHK-aoxWVvk4*!vdTZfP9OwK&cJ z?Op=j-!!^#CC=r&NK4CTriJ>rt{CDNGrDjD^zE6(F)bmkI*l7VaP%a+{}|`?&*Jd= z8MFyFW}P#;4f;(@bv3=bLvQv!oSTGmleod`;&_c^aeex+jM=AUaee#IC%ne8xPAk< zen_2+V|X9R!n?P#eMTE0e#46jg-caWtq;&Ux>aAaHkWcX-te5-m&Bm``4{Xifv>hM zl-lhCyFYh!1DB0A*q$<^oZ0nUCA*DK@#-qr?FYNpIJ<$%>}oA7<;`sE+TbUC&jr+Z}d~s$jPccJFs~1DDx7+w7*C+4Wo{yF0<|F%|5tgxyD+ z-N0pbe`UUv_o_m)X6??53RA^;{*pwXl0)1-tjb?wihT;4-_9 zncb8#yPm6L_Yl}Uxq{uNVfS5UH*lHV=gn@)nO)CSvU@b_o?5}~Td?~#XE$(}-8al` z%9&lyRkC|B?5?U{_Y>Itr?VTl%}qxXf-xvzu~e z*K?KZ{sDF`s9<*z>~8Ap1}?MP%j~9{+4Wo{yU)Y!g%#}1g59m1-N0pb2bkTIGrOLv zWcMxDU0uO$9qe{?b_18$9b|S>&g^=wlHI?|RpA?s>4ggR>jB%&wk;PdT&eId2#5VyG+5TT=LG1-qBQ?oQ5b;4-@!zo(qp^&HpR z;y}BLF{!w$g54WocXwwuaGBjj=I4|%yPm6P7n7rA@=l51i&DGw zy;I_l$bUmC_-}&qAG0z8aaxQgZbHQp)F8W$DUPR%||P;VGh8umaw!h6rN`{E}9d2|Zq*jB#(uf3}elH;iE zBgyecFcwKn;$Q=3*%AH%q?0WSw$bk0?MW-&SM8o983@hX?(E&x&F-vcX76;SDi~q{ zWxG?!NP8ycfChjQ-Ao0aM=+yWeMcACdAI-cE-{@pw8u=J0;O;a#n1-Y0}-^f%`4 zUS@dmNA$PL;aw{P^H=J7xx;(;7I_D@$g6CTR~_MX7?JYH7&hth%)U??gS+^}VbE4B zzh`d?c?RRu|5v~G>+lJwoyjMxRA?^-en`o_(C(*UUuaL3?^Ej+%eU6vX!hxJ-8TPi zRM#(FH3LW4H;%q*Y?qY2Zg{ru^Lk*~r_nywPr@&Ll*=^gH{JdO_4vN2$CL4kwJwVJ zp2#nL+|u9gmgw(~9Q~1={|cDxI}-LuV6I>M2r$<#{#RhGU;H>QJ@0Ss7i;}EbvuDy zd^$N}=6KeaKCx}%0${dn5aUu{cHP8p(md@qX`L0zLTRr?S~|-7;^$dqsgE%Yexml* zHnW#S@N~YKSK7WO;TN|dZ!3Or1m0Hs;@5&l=JQ1UE^d3j1|C)aiFi-OFMa~sDEP%? z?I!K3?N7I_wi`l<$6Lo_EYAJddx7b(IDcpAJ;3x>m;29e_ppck7W}4xu>m$z`c$< zdDdl*lkXopJhRo1$rO3-ba+OLH!kvw@AC5+BYj-wuZ-KHQWe?{tSZ;=>s| zKhxn=O@@aYdB5oJYEm%sSM+zj!$b88huGiq9bUb_%Ad8m*x|vADjXuu<;@pZB(KAW z@T6ZZI6S)i=on)BoNxXvz%{^Mbtimw(TjPOMDy}>@_+>3IFj*nKfl_khs0=)IlL){ zC(rZ0N_fVe4?Dbbbhg?5(jGGokDi&a57A%4;aTnj(}hPbYf|_}#w%$Wa{x`d~dCbV!kKxz3;U2_n0Z4t-ohnSkxcY;Cx`Ve@fUDz+B(E0?hTjo4{P( z+XqHIg5)dy&^E@jKcw|TNPe8?x72>is#}aa=#V_<{8xbKJaT)v9hhCWva)EMQOe@+ z+ek}CneY8>t1R~!p7`FI*~|OEqg;en+P){@d*2UvTk*X=1Kw7A@2`Nj72o??;8FFT zF5mkJY@^_Nm$jR;ueLvJYuauIDIWicdeBj9U+o3|g=t@Wiy=)kjq7`6_747OTo!W+ zbG-htzwRG8Uu`4eRSOf(lkU>z#e8-7J}mjBQI_EG$9M2M0r;KOF!jZr4c6Bal+IUU zQWjeWx;~>ixCmv@<9NQVxC1#q41eQurYy3qknvvT)x)NQAJ2G8jI^D3TKtXsg=hST zz~Q;26F=fshbMl?CmnhBJG_yYs_{EN>+oJ|>hUQ@-a`&=-0_~nU~k20sOSP@J?%1z7A0hFR#ZvjC$VJ zGoG%;vz>Z~{e4q-radlpcxM@T@<-Zt!QmM(-nT@av8!Kpcq8vLn0#O3@MNze%Xbr= ztmAW@){Dp!J-dD}@#mpupYuhWVcT{VLF>y~@4{RSKbQ{b=bD%6`ET`Y@B2=Dmz{cu zo_{DjQ;*Q$jo6jZ-=_C z{o^)=C-1-rQTqAqh9~WIo)E0RKHBXL=H>n42<|_87y7Ey*YtDE%iHbSM$XxWNAm~0 zEx3o*8hN}aK^}W8OzL~DQxAFH?^%+s(X-2wIE_?8KfMBZ*k-tU*ld;cc#j+Mx}+>+NxLe+|TcoX$S ze$vZJd4GvKdc%j_A$qwfpOksEB##$6dBi~yq{S?}&y?grI`{wv3RegF9C=Asb(cCt zfnVN4-d~r9xRbJ>Bw7;yJ=txgq&TQl<&tS@(x<^y1ilOi1I1~n)*xmDwP>(Uhjh# zc%FlMwvAtJ$qUQmg~LpsEAPP)dGnUMZqn|qIR&gRs0--I`(cT^rY&z+CXc{!dC$Rw z=GOP9EiZ|K-e~y%mdiU>BJY*9ykVI<0?XyCl*m(-ys%7v43^8gyF^~gmRF{~aC7~A zxEbv1-W+{dU_C=T!*Q;f4FS6x@$;zlafSbr` zl*mhLdH5oXE3gt0SYBWHO=-8j>z2H3(&`lk7l=Xs09Y>XjuLsVwd93Me&1DKg~4)p zZ!3}aI!j&>EXToeQG=Cc?O>y(cLehOtHICV{n`m+WsfhvYRQXJKVIJB$ZITC8wdAr z0dsj8d zzMH)}?0Msbn0eXz#7Nsb@q5gw(n`?8>AV@ocO!3LK_4Ah<{rj^IPOQd`Cs&%MeLI@ zuemruc7-;l?`V!OHe0RYFC7_npr{v4d!VQngVDR(+56ZUqq^nw&9VIb=?pXVy$*R3 zM#mMHr+0Cg&-8Y~$NU)z*m8uH{^rLu;C<>x`WuqFvpCl)yjSEDKC6NE(_{4h`PmD* zx4{tkxMkbvUd5b4e-n%FPiGfyyO4Nig15svA9-UJx{x#R<|mJMf6BaPGEWORyTBuC z9{GNNd6e%CO#|z6b0&XY1>Q%u!0UoXF;rcT&E;)?x1IHe?;e>PKaW8md{QmyTju)7F?*aA!o$oZTgJLg6?h#-YKDHBkV>3S|^=)em-!Ra1 zQw6Y|GluTV@jdXo zF_fG8>J9^s^8Sb9&3oQUPry6lm$-eYZdvK28~54&GG8lfGhGq{b$| zn-(6@sS4?N+`kOxaP2ZZAJt_k^p9m=hdHg*X@w2Bja0?sCY`p>k6x#-f{ov)vD345 zGn1&ym(=F4U3PxN&k>9qd|4ZaZM+lm?w7h{x*F|o@7MVj+We!yU{_f`q8k03#;Ct# z`L8e|!mY zDP~G#p`(tp7f3xc}!s^M}bNFN_hVctk1f7W>)5Hm#|I?bHF*k z299k!7uZb>b_KB5!43dR9IOcp?N;a?uLhPfFE7hYz}6h>jXG_i|GpKN{;lrqmVfnP z{4M*j15@aDKJZGY`N^L2I2G;{ow4_j?%u>Fr%Sfvss6sVDy4C$0GT0P4;SunDD zi4_P&OGjA`YD_PrWPN0KLs~t{I$1DU0LxleFv>&X2ZFg}(RQDISBQ898>fCiUB$v$ z6h}r#%);_-4duN2TSFGMe?QWZhize3(>l$;d|Hnbu`B(0qipHUWO5BH>U2gJ!YC4DUc*FC@IU2kao<(Sp|E> zrJg78XTdH27CU|LQeZ#pq^$xw*TG&1>^cX#3D~2Kyjy^s=kR_5*m2a2V%JiZcL0-k zwqSn_EOdAu0oHf02Y}t+^flEv5qI1R5!9e8ei;ng&BwTez7Tvz~>+5o{*i;kq)y9-uHxJbt^ApwU=LKLk9_O2= zE-nf-SzTDXp;1H1V*=HicA`eDS!*1rP3`m4bal2qbEBGEY-H!nh3T36;!vYLyWlC6 zY$W&yFjr`pps-o(+=}2wKBBl4s0eSl;>EE+3TvH+j*~ywT}AZD?^>s-ztkpK!-3ug z-h(77tN59axTlul2)|Xs*MrbcA+@K{jRByQ_By^yn2uYeIHltg=(yHssOAlmleK1( zS~FEkDQ%e!&=~l(GfvgeI&b$mR(1r2U4vyH9HvjzZ1q@e2Ii3?d+iG}Nqz_Bm0w(G zUo2GTs`mAM`(l2fHfLYY%_C?>U8aU^pz5=;wJEh&ZC#c$(TG^#DuWGQ|vM)lKJ4PaiW3Zr#er9lPBs#@~Xlq?gc_!>$OulXS- zBYPwj`7u5X5|i}>-PLY?)mJOlx#lhhQ0fZe@`33np7Q%?m#`EfVXr;5XTObpVXlMY zX}e{LK`j9aL&%&HZK$5#A9nl}3shft~)+*&4TOjon zPepNec>$H^p%g4yQI&87MQ{#WOV&k~+KtU(IKY#JsB`SE<0LO-Aj;?m>#;T?Q41G_ z6cGj;QYh7_GYp`h6&gaYh2BjB=7EB48ZwFkx6H>!q0ua=l|o}w_^uyzZw}B-3$tow za!N(8PC2Df2Imtq_--_^Gw>S9qyaQ-SLK(ukCBYVUXhYrk|h2Pj_98*u7U*xAqr0y z`$>E^zR4&_8xpimj~=kO?bR9rMXg8is^OV3QK`8!a!nZuAmwkNSzBzmy48{ZUj%CP z+KQWZe1fv^p&A=O(Nvd;LHZ)2_uDa4EN9xB`((~^L;0;%kR+-@`y{GfpQLoE&Nd=f z%{0PbP#7|@@&43EdxDXc2G=!Gev1qVy)9@*7;2V1K|67PE~SR};4a5o1!r~=gdGgU z)a{H7aeoM-krtsQ@3n?%-S4JoO_C`P+la50HmL8~V1C7qPAHedC>y(K_k0ZP#{6rKp|9YcG5>TO z7S4*-_D{wP%rb4d(x!dNnz!nkku`Vwok-2l1l#f3flBd1ah?i&+|g#qrks=VGfIqf zs@)aOQA9-J9^cWU9B~pJb7&@}uM4bqJM1SGW@GJ5(=C<4q3neIG85Gz99@`YOP7?= zb3vma46TUw(aF$Re5!%u)sNC{X9L&t19)kqY)-NCT7E+pJ+G98;oO(8F=RIuCqbb} zI8O1Khr#{q32VNM;P4^k3VbPLKm$o#z z*6hK`hVd=fkx2ce5FG}$(W%ByS?x)!d5e~K5~~{h6Pm_1z#?TBs9{3Ramecq`nnWm z#vzR%Nxw}SQD&ZmbIr~;uXqSICd4i%U5m5NK4-Vz4lu^%=hV>V8qSGtCIBo$Fm}S8 zx``%`ATkNg1*-#$=4<5qV@1#l{65x%D_wLE6pa>S=E@X}9Ml%Q+XU%!mSF7e_Tf0u z+C}k#j9{&SlUoZG)Ex(XtkBGe%;$w=pNfZY)ip`q==IRcNBIm>93E4~IxihdlCiK; z{>E1QjY316%+Ste+*(@Y^-Uak3eQDJN8o!{_n2`kyEMaGcD)iML%nQFFr>1(irJcH z=E3+rRh^t<2^$`J>F_^j3NM!UDIWe$Mgtr*lTJ)e2VxPvq+N?-5Mq&_y=OBxAP6w* zbSMZxfB9Y-^i_hDHe4$Tz+rqyBZ_z=>-f<(T9E5ug`Sw79|Y(l{Oo)fC6b~&L_RH! z7;wfaiQ%B@(>A2R$2w85;vkJTsO_TilJzz?*E+jX+;Fr8GDF#^Zno8KRv7R+zG??c z!)1Ni!=odoT+p9@3!248?SSY1cZ?Oi3P0FR7SLJ=5Kg4&oThb-e9;L{=?s&5;7PcG zRzLfuOiT+g4+@K6BOIXv_B+fa2Ik`_FAc%JMbzgQtQXan~RGcG(a)o|Av~) zt~3<_;oeqAHDVzI8+oRWnJQ*eK2?RLefG<_DoBZ+XS7ejX)&6p1hf5!e)Nw)s!kuC zak}145wFqb;aYY&K^$x5vCp$&0Y|}fSrCtr(;lgw3kbrM*7;S|Irf(_&P()Us{7ih z>2&MUDNR74wXEZ?k0L1j#d4eW?oRo9G%{^vn_VkSzTN6>b&}Gvd-&ihU+|j$l!mve zVG90j78ESThIxKuE`7^OPIzXZjXDxSdz5CzmP-yaV%It+AaY^?j~s|ZxMURxyB@t+ ztJhuFD&%*r3W$B5d_0#y7<0&J!^R~g)@v+&WtU%DW)LC4ro7Zkx6C!)!`sa|c_uwW z_`X?v7oIH1Bbw|HFH{@VS>qcw>eDykBWn7Y0=}5xiw3>Xqnh}Y#u~ye{yK+_Xr9hC zsmnIfdEeU~rYndo@!oQ41rtBi9<5>V*==J<3+H_D&_UH)tm0(FN6d(^Iz7R2P(QB% zKJDrvGj(&+4``#GHvik*gkqx@oO;-#gTSOqyT81Ln_WTtY<2F2X*{RX;HNCmmfEqB zHN5P4LG!~9GrC+a4HLKoaJpQsU8~gOh4zzB+}pbb6?U(>Z;v=1%(b5YsG6fY>a`DmKSud>F>paDNs(Km}0 z6q2@FbW!L`$4ls}-Hj=rPp3X&tGx{1h+zkgtjtZuXlW1D#K);5?#_Vdmkg}KotWAN z76Ze=9>Ru>pUTK9Ho%LoEMA|4u*{fzY!lR_c&MhLCXPIQ9)JkcDR55*Rq3Kl%K&0$ zD>;uEogJ2d6Y+NvqCagJ=DchxLAp>x0v7KJbzeB3oq>Ql$W-;lrkbYDl^>czgVEfy zusElhGqu_R#gjab+tKb;s_=dNrd2d&>B)B=?MbY z2v73!NEG@*DjR1T81`E!528kXod%?MIN*#-<6>w)LW)Qf3b6;_TC<7GJ(g05ZS_|7 zVEYbjM49wf_u3cZ`hwap;inzwER3*kh9KoI?pJ9e4f9itD?^2&%)9+z;93^+QO8h4 zhD8Pji_n0nW`1q-!us&264mL&8Xnv`T3t|hp|?Kgg3bCXYRGo5u^3IE!%moxE`4Z& z=Hdj=*f8ASR11f0Y}PSL;&D$$o_mLdQts}J+T0@g_ojE~G1q2oailuN2xvW-pxx0u bF|LXV=EJt=rG_8_?vQ-gA*@sPWY7Cwb4I7W diff --git a/trunk/bsr_k0r.map b/trunk/bsr_k0r.map index 9c369ee..95edc6b 100644 --- a/trunk/bsr_k0r.map +++ b/trunk/bsr_k0r.map @@ -24,8 +24,8 @@ Direc-file:bsr_mcu.dr *** Link information *** 67 output segment(s) - 3E28H byte(s) real data - 5755 symbol(s) defined + 3DB4H byte(s) real data + 5770 symbol(s) defined *** Memory map *** @@ -100,53 +100,53 @@ Direc-file:bsr_mcu.dr 000C4H 00000H ?CSEGSI 000C4H 0000AH CSEG ?OCDSTAD 000CEH 0000AH CSEG - LDR_CODE 000D8H 00955H CSEG + LDR_CODE 000D8H 00945H CSEG LDR_CODE loader 000D8H 00218H - LDR_CODE main 002F0H 00046H - LDR_CODE WDT 00336H 00000H - LDR_CODE i2c_mcu 00336H 002F0H + LDR_CODE main 002F0H 00042H + LDR_CODE WDT 00332H 00000H + LDR_CODE i2c_mcu 00332H 002F0H LDR_CODE self_flash - 00626H 0037FH + 00622H 00373H LDR_CODE task_debug - 009A5H 00000H + 00995H 00000H LDR_CODE task_status - 009A5H 00088H - FSL_CODE 00A2DH 00322H CSEG + 00995H 00088H + FSL_CODE 00A1DH 00322H CSEG FSL_CODE fsl_block_cmd - 00A2DH 0002BH + 00A1DH 0002BH FSL_CODE fsl_block_check - 00A58H 00013H + 00A48H 00013H FSL_CODE fsl_common - 00A6BH 0014FH + 00A5BH 0014FH FSL_CODE fsl_reset - 00BBAH 00001H + 00BAAH 00001H FSL_CODE fsl_si_ibf - 00BBBH 00064H + 00BABH 00064H FSL_CODE fsl_phySwap - 00C1FH 0004DH + 00C0FH 0004DH FSL_CODE fsl_si_common - 00C6CH 00061H - FSL_CODE fsl_swap 00CCDH 00030H + 00C5CH 00061H + FSL_CODE fsl_swap 00CBDH 00030H FSL_CODE fsl_write - 00CFDH 00052H - @@LCODE 00D4FH 00277H CSEG - @@LCODE @cstart 00D4FH 0006DH - @@LCODE @imul 00DBCH 00011H - @@LCODE @lumul 00DCDH 0002BH - @@LCODE @isdiv 00DF8H 00022H - @@LCODE @iudiv 00E1AH 0002DH - @@LCODE @isrem 00E47H 00021H - @@LCODE @iurem 00E68H 0002FH - @@LCODE @lsdiv 00E97H 00039H - @@LCODE @ludiv 00ED0H 0003FH - @@LCODE @divuw 00F0FH 00034H - @@LCODE @ladd 00F43H 0000FH - @@LCODE @llsh 00F52H 0001BH - @@LCODE @lursh 00F6DH 0001FH - @@LCODE @iscmp 00F8CH 0000CH - @@LCODE @lband 00F98H 00014H - @@LCODE @bcdtob 00FACH 0001AH -* gap * 00FC6H 00030H + 00CEDH 00052H + @@LCODE 00D3FH 00277H CSEG + @@LCODE @cstart 00D3FH 0006DH + @@LCODE @imul 00DACH 00011H + @@LCODE @lumul 00DBDH 0002BH + @@LCODE @isdiv 00DE8H 00022H + @@LCODE @iudiv 00E0AH 0002DH + @@LCODE @isrem 00E37H 00021H + @@LCODE @iurem 00E58H 0002FH + @@LCODE @lsdiv 00E87H 00039H + @@LCODE @ludiv 00EC0H 0003FH + @@LCODE @divuw 00EFFH 00034H + @@LCODE @ladd 00F33H 0000FH + @@LCODE @llsh 00F42H 0001BH + @@LCODE @lursh 00F5DH 0001FH + @@LCODE @iscmp 00F7CH 0000CH + @@LCODE @lband 00F88H 00014H + @@LCODE @bcdtob 00F9CH 0001AH +* gap * 00FB6H 00040H MGC_LOAD 00FF6H 0000AH CSEG AT MGC_LOAD magic 00FF6H 0000AH @@ -188,250 +188,250 @@ Direc-file:bsr_mcu.dr 02266H 00000H @@CNST led_cam 02266H 00000H @@CNST led_pow 02266H 00020H - ROM_CODE 02286H 0275CH CSEG - ROM_CODE pm 02286H 00A44H - ROM_CODE i2c_ctr 02CCAH 00060H - ROM_CODE i2c_twl 02D2AH 0005EH - ROM_CODE led 02D88H 00265H - ROM_CODE rtc 02FEDH 000E0H - ROM_CODE vreg_ctr 030CDH 00486H - ROM_CODE vreg_twl 03553H 000FAH - ROM_CODE adc 0364DH 002E7H - ROM_CODE renge 03934H 00190H - ROM_CODE accero 03AC4H 0013DH - ROM_CODE sw 03C01H 00178H + ROM_CODE 02286H 026F8H CSEG + ROM_CODE pm 02286H 00A00H + ROM_CODE i2c_ctr 02C86H 00060H + ROM_CODE i2c_twl 02CE6H 0005EH + ROM_CODE led 02D44H 00265H + ROM_CODE rtc 02FA9H 000E0H + ROM_CODE vreg_ctr 03089H 00486H + ROM_CODE vreg_twl 0350FH 000FAH + ROM_CODE adc 03609H 002E7H + ROM_CODE renge 038F0H 00190H + ROM_CODE accero 03A80H 0013DH + ROM_CODE sw 03BBDH 00178H ROM_CODE task_misc - 03D79H 0017FH - ROM_CODE task_sys 03EF8H 0038BH + 03D35H 00177H + ROM_CODE task_sys 03EACH 00373H ROM_CODE pedo_alg_thre_det2 - 04283H 00502H - ROM_CODE led_cam 04785H 000DBH - ROM_CODE led_pow 04860H 00182H - @@BASE 049E2H 004C6H CSEG BASE - @@BASE loader 049E2H 00000H - @@BASE pm 049E2H 0003FH - @@BASE i2c_ctr 04A21H 0018DH - @@BASE main 04BAEH 00000H - @@BASE magic 04BAEH 00000H - @@BASE WDT 04BAEH 00000H - @@BASE i2c_mcu 04BAEH 0009CH - @@BASE i2c_twl 04C4AH 000CBH - @@BASE led 04D15H 00000H - @@BASE rtc 04D15H 0005EH - @@BASE vreg_ctr 04D73H 00000H - @@BASE vreg_twl 04D73H 00000H - @@BASE adc 04D73H 000B3H - @@BASE renge 04E26H 00000H - @@BASE accero 04E26H 0004AH + 0421FH 00502H + ROM_CODE led_cam 04721H 000DBH + ROM_CODE led_pow 047FCH 00182H + @@BASE 0497EH 004C6H CSEG BASE + @@BASE loader 0497EH 00000H + @@BASE pm 0497EH 0003FH + @@BASE i2c_ctr 049BDH 0018DH + @@BASE main 04B4AH 00000H + @@BASE magic 04B4AH 00000H + @@BASE WDT 04B4AH 00000H + @@BASE i2c_mcu 04B4AH 0009CH + @@BASE i2c_twl 04BE6H 000CBH + @@BASE led 04CB1H 00000H + @@BASE rtc 04CB1H 0005EH + @@BASE vreg_ctr 04D0FH 00000H + @@BASE vreg_twl 04D0FH 00000H + @@BASE adc 04D0FH 000B3H + @@BASE renge 04DC2H 00000H + @@BASE accero 04DC2H 0004AH @@BASE self_flash - 04E70H 00000H - @@BASE sw 04E70H 00000H + 04E0CH 00000H + @@BASE sw 04E0CH 00000H @@BASE task_debug - 04E70H 00000H + 04E0CH 00000H @@BASE task_misc - 04E70H 00000H - @@BASE task_sys 04E70H 00000H + 04E0CH 00000H + @@BASE task_sys 04E0CH 00000H @@BASE pedo_alg_thre_det2 - 04E70H 00000H - @@BASE ini_VECT 04E70H 00038H + 04E0CH 00000H + @@BASE ini_VECT 04E0CH 00038H @@BASE task_status - 04EA8H 00000H - @@BASE led_cam 04EA8H 00000H - @@BASE led_pow 04EA8H 00000H - @@CNSTL 04EA8H 00000H CSEG PAGE64KP - @@CNSTL @cstart 04EA8H 00000H - @@CNSTL 04EA8H 00000H CSEG PAGE64KP - @@CNSTL pm 04EA8H 00000H - @@CNSTL 04EA8H 00000H CSEG PAGE64KP - @@CNSTL i2c_ctr 04EA8H 00000H - @@CNSTL 04EA8H 00000H CSEG PAGE64KP - @@CNSTL i2c_twl 04EA8H 00000H - @@CNSTL 04EA8H 00000H CSEG PAGE64KP - @@CNSTL led 04EA8H 00000H - @@CNSTL 04EA8H 00000H CSEG PAGE64KP - @@CNSTL rtc 04EA8H 00000H - @@CNSTL 04EA8H 00000H CSEG PAGE64KP - @@CNSTL vreg_ctr 04EA8H 00000H - @@CNSTL 04EA8H 00000H CSEG PAGE64KP - @@CNSTL vreg_twl 04EA8H 00000H - @@CNSTL 04EA8H 00000H CSEG PAGE64KP - @@CNSTL adc 04EA8H 00000H - @@CNSTL 04EA8H 00000H CSEG PAGE64KP - @@CNSTL renge 04EA8H 00000H - @@CNSTL 04EA8H 00000H CSEG PAGE64KP - @@CNSTL accero 04EA8H 00000H - @@CNSTL 04EA8H 00000H CSEG PAGE64KP - @@CNSTL sw 04EA8H 00000H - @@CNSTL 04EA8H 00000H CSEG PAGE64KP + 04E44H 00000H + @@BASE led_cam 04E44H 00000H + @@BASE led_pow 04E44H 00000H + @@CNSTL 04E44H 00000H CSEG PAGE64KP + @@CNSTL @cstart 04E44H 00000H + @@CNSTL 04E44H 00000H CSEG PAGE64KP + @@CNSTL pm 04E44H 00000H + @@CNSTL 04E44H 00000H CSEG PAGE64KP + @@CNSTL i2c_ctr 04E44H 00000H + @@CNSTL 04E44H 00000H CSEG PAGE64KP + @@CNSTL i2c_twl 04E44H 00000H + @@CNSTL 04E44H 00000H CSEG PAGE64KP + @@CNSTL led 04E44H 00000H + @@CNSTL 04E44H 00000H CSEG PAGE64KP + @@CNSTL rtc 04E44H 00000H + @@CNSTL 04E44H 00000H CSEG PAGE64KP + @@CNSTL vreg_ctr 04E44H 00000H + @@CNSTL 04E44H 00000H CSEG PAGE64KP + @@CNSTL vreg_twl 04E44H 00000H + @@CNSTL 04E44H 00000H CSEG PAGE64KP + @@CNSTL adc 04E44H 00000H + @@CNSTL 04E44H 00000H CSEG PAGE64KP + @@CNSTL renge 04E44H 00000H + @@CNSTL 04E44H 00000H CSEG PAGE64KP + @@CNSTL accero 04E44H 00000H + @@CNSTL 04E44H 00000H CSEG PAGE64KP + @@CNSTL sw 04E44H 00000H + @@CNSTL 04E44H 00000H CSEG PAGE64KP @@CNSTL task_misc - 04EA8H 00000H - @@CNSTL 04EA8H 00000H CSEG PAGE64KP - @@CNSTL task_sys 04EA8H 00000H - @@CNSTL 04EA8H 00000H CSEG PAGE64KP + 04E44H 00000H + @@CNSTL 04E44H 00000H CSEG PAGE64KP + @@CNSTL task_sys 04E44H 00000H + @@CNSTL 04E44H 00000H CSEG PAGE64KP @@CNSTL pedo_alg_thre_det2 - 04EA8H 00000H - @@CNSTL 04EA8H 00000H CSEG PAGE64KP - @@CNSTL ini_VECT 04EA8H 00000H - @@CNSTL 04EA8H 00000H CSEG PAGE64KP - @@CNSTL led_cam 04EA8H 00000H - @@CNSTL 04EA8H 00000H CSEG PAGE64KP - @@CNSTL led_pow 04EA8H 00000H - @@CNSTL 04EA8H 0000AH CSEG PAGE64KP - @@CNSTL @bcdtob 04EA8H 0000AH - @@R_INIT 04EB2H 00038H CSEG UNIT64KP - @@R_INIT @cstart 04EB2H 00000H - @@R_INIT loader 04EB2H 00000H - @@R_INIT pm 04EB2H 00002H - @@R_INIT i2c_ctr 04EB4H 00002H - @@R_INIT main 04EB6H 00000H - @@R_INIT magic 04EB6H 00000H - @@R_INIT WDT 04EB6H 00000H - @@R_INIT i2c_mcu 04EB6H 00000H - @@R_INIT i2c_twl 04EB6H 00000H - @@R_INIT led 04EB6H 00000H - @@R_INIT rtc 04EB6H 00000H - @@R_INIT vreg_ctr 04EB6H 00000H - @@R_INIT vreg_twl 04EB6H 00000H - @@R_INIT adc 04EB6H 0000CH - @@R_INIT renge 04EC2H 00014H - @@R_INIT accero 04ED6H 00000H + 04E44H 00000H + @@CNSTL 04E44H 00000H CSEG PAGE64KP + @@CNSTL ini_VECT 04E44H 00000H + @@CNSTL 04E44H 00000H CSEG PAGE64KP + @@CNSTL led_cam 04E44H 00000H + @@CNSTL 04E44H 00000H CSEG PAGE64KP + @@CNSTL led_pow 04E44H 00000H + @@CNSTL 04E44H 0000AH CSEG PAGE64KP + @@CNSTL @bcdtob 04E44H 0000AH + @@R_INIT 04E4EH 00038H CSEG UNIT64KP + @@R_INIT @cstart 04E4EH 00000H + @@R_INIT loader 04E4EH 00000H + @@R_INIT pm 04E4EH 00002H + @@R_INIT i2c_ctr 04E50H 00002H + @@R_INIT main 04E52H 00000H + @@R_INIT magic 04E52H 00000H + @@R_INIT WDT 04E52H 00000H + @@R_INIT i2c_mcu 04E52H 00000H + @@R_INIT i2c_twl 04E52H 00000H + @@R_INIT led 04E52H 00000H + @@R_INIT rtc 04E52H 00000H + @@R_INIT vreg_ctr 04E52H 00000H + @@R_INIT vreg_twl 04E52H 00000H + @@R_INIT adc 04E52H 0000CH + @@R_INIT renge 04E5EH 00014H + @@R_INIT accero 04E72H 00000H @@R_INIT self_flash - 04ED6H 00000H - @@R_INIT sw 04ED6H 00002H + 04E72H 00000H + @@R_INIT sw 04E72H 00002H @@R_INIT task_debug - 04ED8H 00000H + 04E74H 00000H @@R_INIT task_misc - 04ED8H 00000H - @@R_INIT task_sys 04ED8H 00002H + 04E74H 00000H + @@R_INIT task_sys 04E74H 00002H @@R_INIT pedo_alg_thre_det2 - 04EDAH 00006H - @@R_INIT ini_VECT 04EE0H 00000H + 04E76H 00006H + @@R_INIT ini_VECT 04E7CH 00000H @@R_INIT task_status - 04EE0H 00002H - @@R_INIT led_cam 04EE2H 00002H - @@R_INIT led_pow 04EE4H 00006H - @@R_INIT @rom 04EEAH 00000H - @@R_INIS 04EEAH 00000H CSEG UNIT64KP - @@R_INIS @cstart 04EEAH 00000H - @@R_INIS loader 04EEAH 00000H - @@R_INIS pm 04EEAH 00000H - @@R_INIS i2c_ctr 04EEAH 00000H - @@R_INIS main 04EEAH 00000H - @@R_INIS magic 04EEAH 00000H - @@R_INIS WDT 04EEAH 00000H - @@R_INIS i2c_mcu 04EEAH 00000H - @@R_INIS i2c_twl 04EEAH 00000H - @@R_INIS led 04EEAH 00000H - @@R_INIS rtc 04EEAH 00000H - @@R_INIS vreg_ctr 04EEAH 00000H - @@R_INIS vreg_twl 04EEAH 00000H - @@R_INIS adc 04EEAH 00000H - @@R_INIS renge 04EEAH 00000H - @@R_INIS accero 04EEAH 00000H + 04E7CH 00002H + @@R_INIT led_cam 04E7EH 00002H + @@R_INIT led_pow 04E80H 00006H + @@R_INIT @rom 04E86H 00000H + @@R_INIS 04E86H 00000H CSEG UNIT64KP + @@R_INIS @cstart 04E86H 00000H + @@R_INIS loader 04E86H 00000H + @@R_INIS pm 04E86H 00000H + @@R_INIS i2c_ctr 04E86H 00000H + @@R_INIS main 04E86H 00000H + @@R_INIS magic 04E86H 00000H + @@R_INIS WDT 04E86H 00000H + @@R_INIS i2c_mcu 04E86H 00000H + @@R_INIS i2c_twl 04E86H 00000H + @@R_INIS led 04E86H 00000H + @@R_INIS rtc 04E86H 00000H + @@R_INIS vreg_ctr 04E86H 00000H + @@R_INIS vreg_twl 04E86H 00000H + @@R_INIS adc 04E86H 00000H + @@R_INIS renge 04E86H 00000H + @@R_INIS accero 04E86H 00000H @@R_INIS self_flash - 04EEAH 00000H - @@R_INIS sw 04EEAH 00000H + 04E86H 00000H + @@R_INIS sw 04E86H 00000H @@R_INIS task_debug - 04EEAH 00000H + 04E86H 00000H @@R_INIS task_misc - 04EEAH 00000H - @@R_INIS task_sys 04EEAH 00000H + 04E86H 00000H + @@R_INIS task_sys 04E86H 00000H @@R_INIS pedo_alg_thre_det2 - 04EEAH 00000H - @@R_INIS ini_VECT 04EEAH 00000H + 04E86H 00000H + @@R_INIS ini_VECT 04E86H 00000H @@R_INIS task_status - 04EEAH 00000H - @@R_INIS led_cam 04EEAH 00000H - @@R_INIS led_pow 04EEAH 00000H - @@R_INIS @rom 04EEAH 00000H - @@CALT 04EEAH 00000H CSEG - @@CALT @cstart 04EEAH 00000H - @@CALT loader 04EEAH 00000H - @@CALT pm 04EEAH 00000H - @@CALT i2c_ctr 04EEAH 00000H - @@CALT main 04EEAH 00000H - @@CALT magic 04EEAH 00000H - @@CALT WDT 04EEAH 00000H - @@CALT i2c_mcu 04EEAH 00000H - @@CALT i2c_twl 04EEAH 00000H - @@CALT led 04EEAH 00000H - @@CALT rtc 04EEAH 00000H - @@CALT vreg_ctr 04EEAH 00000H - @@CALT vreg_twl 04EEAH 00000H - @@CALT adc 04EEAH 00000H - @@CALT renge 04EEAH 00000H - @@CALT accero 04EEAH 00000H + 04E86H 00000H + @@R_INIS led_cam 04E86H 00000H + @@R_INIS led_pow 04E86H 00000H + @@R_INIS @rom 04E86H 00000H + @@CALT 04E86H 00000H CSEG + @@CALT @cstart 04E86H 00000H + @@CALT loader 04E86H 00000H + @@CALT pm 04E86H 00000H + @@CALT i2c_ctr 04E86H 00000H + @@CALT main 04E86H 00000H + @@CALT magic 04E86H 00000H + @@CALT WDT 04E86H 00000H + @@CALT i2c_mcu 04E86H 00000H + @@CALT i2c_twl 04E86H 00000H + @@CALT led 04E86H 00000H + @@CALT rtc 04E86H 00000H + @@CALT vreg_ctr 04E86H 00000H + @@CALT vreg_twl 04E86H 00000H + @@CALT adc 04E86H 00000H + @@CALT renge 04E86H 00000H + @@CALT accero 04E86H 00000H @@CALT self_flash - 04EEAH 00000H - @@CALT sw 04EEAH 00000H + 04E86H 00000H + @@CALT sw 04E86H 00000H @@CALT task_debug - 04EEAH 00000H + 04E86H 00000H @@CALT task_misc - 04EEAH 00000H - @@CALT task_sys 04EEAH 00000H + 04E86H 00000H + @@CALT task_sys 04E86H 00000H @@CALT pedo_alg_thre_det2 - 04EEAH 00000H - @@CALT ini_VECT 04EEAH 00000H + 04E86H 00000H + @@CALT ini_VECT 04E86H 00000H @@CALT task_status - 04EEAH 00000H - @@CALT led_cam 04EEAH 00000H - @@CALT led_pow 04EEAH 00000H - @@RLINIT 04EEAH 00000H CSEG UNIT64KP - @@RLINIT loader 04EEAH 00000H - @@RLINIT pm 04EEAH 00000H - @@RLINIT i2c_ctr 04EEAH 00000H - @@RLINIT main 04EEAH 00000H - @@RLINIT magic 04EEAH 00000H - @@RLINIT WDT 04EEAH 00000H - @@RLINIT i2c_mcu 04EEAH 00000H - @@RLINIT i2c_twl 04EEAH 00000H - @@RLINIT led 04EEAH 00000H - @@RLINIT rtc 04EEAH 00000H - @@RLINIT vreg_ctr 04EEAH 00000H - @@RLINIT vreg_twl 04EEAH 00000H - @@RLINIT adc 04EEAH 00000H - @@RLINIT renge 04EEAH 00000H - @@RLINIT accero 04EEAH 00000H + 04E86H 00000H + @@CALT led_cam 04E86H 00000H + @@CALT led_pow 04E86H 00000H + @@RLINIT 04E86H 00000H CSEG UNIT64KP + @@RLINIT loader 04E86H 00000H + @@RLINIT pm 04E86H 00000H + @@RLINIT i2c_ctr 04E86H 00000H + @@RLINIT main 04E86H 00000H + @@RLINIT magic 04E86H 00000H + @@RLINIT WDT 04E86H 00000H + @@RLINIT i2c_mcu 04E86H 00000H + @@RLINIT i2c_twl 04E86H 00000H + @@RLINIT led 04E86H 00000H + @@RLINIT rtc 04E86H 00000H + @@RLINIT vreg_ctr 04E86H 00000H + @@RLINIT vreg_twl 04E86H 00000H + @@RLINIT adc 04E86H 00000H + @@RLINIT renge 04E86H 00000H + @@RLINIT accero 04E86H 00000H @@RLINIT self_flash - 04EEAH 00000H - @@RLINIT sw 04EEAH 00000H + 04E86H 00000H + @@RLINIT sw 04E86H 00000H @@RLINIT task_debug - 04EEAH 00000H + 04E86H 00000H @@RLINIT task_misc - 04EEAH 00000H - @@RLINIT task_sys 04EEAH 00000H + 04E86H 00000H + @@RLINIT task_sys 04E86H 00000H @@RLINIT pedo_alg_thre_det2 - 04EEAH 00000H - @@RLINIT ini_VECT 04EEAH 00000H + 04E86H 00000H + @@RLINIT ini_VECT 04E86H 00000H @@RLINIT task_status - 04EEAH 00000H - @@RLINIT led_cam 04EEAH 00000H - @@RLINIT led_pow 04EEAH 00000H - @@RLINIT @rom 04EEAH 00000H - @@CODEL 04EEAH 00000H CSEG - @@CODEL pm 04EEAH 00000H - @@CODEL i2c_ctr 04EEAH 00000H - @@CODEL magic 04EEAH 00000H - @@CODEL i2c_twl 04EEAH 00000H - @@CODEL led 04EEAH 00000H - @@CODEL rtc 04EEAH 00000H - @@CODEL vreg_ctr 04EEAH 00000H - @@CODEL vreg_twl 04EEAH 00000H - @@CODEL adc 04EEAH 00000H - @@CODEL renge 04EEAH 00000H - @@CODEL accero 04EEAH 00000H - @@CODEL sw 04EEAH 00000H + 04E86H 00000H + @@RLINIT led_cam 04E86H 00000H + @@RLINIT led_pow 04E86H 00000H + @@RLINIT @rom 04E86H 00000H + @@CODEL 04E86H 00000H CSEG + @@CODEL pm 04E86H 00000H + @@CODEL i2c_ctr 04E86H 00000H + @@CODEL magic 04E86H 00000H + @@CODEL i2c_twl 04E86H 00000H + @@CODEL led 04E86H 00000H + @@CODEL rtc 04E86H 00000H + @@CODEL vreg_ctr 04E86H 00000H + @@CODEL vreg_twl 04E86H 00000H + @@CODEL adc 04E86H 00000H + @@CODEL renge 04E86H 00000H + @@CODEL accero 04E86H 00000H + @@CODEL sw 04E86H 00000H @@CODEL task_misc - 04EEAH 00000H - @@CODEL task_sys 04EEAH 00000H + 04E86H 00000H + @@CODEL task_sys 04E86H 00000H @@CODEL pedo_alg_thre_det2 - 04EEAH 00000H - @@CODEL ini_VECT 04EEAH 00000H - @@CODEL led_cam 04EEAH 00000H - @@CODEL led_pow 04EEAH 00000H - @@LCODEL 04EEAH 00008H CSEG - @@LCODEL abs 04EEAH 00008H -* gap * 04EF2H 00104H + 04E86H 00000H + @@CODEL ini_VECT 04E86H 00000H + @@CODEL led_cam 04E86H 00000H + @@CODEL led_pow 04E86H 00000H + @@LCODEL 04E86H 00008H CSEG + @@LCODEL abs 04E86H 00008H +* gap * 04E8EH 00168H MGC_TAIL 04FF6H 0000AH CSEG AT MGC_TAIL magic 04FF6H 0000AH diff --git a/trunk/pm.c b/trunk/pm.c index b5ab97a..9c48f57 100644 --- a/trunk/pm.c +++ b/trunk/pm.c @@ -38,8 +38,8 @@ bit temp_zone_charge_disable; // u8 pmic_version; u8 mgic_version[2]; -static err sent_cmd_mgic_2B( u8 reg, u16 dat ); -static err read_cmd_mgic_2B( u8 reg, u8* dat ); +static err send_cmd_mgic_2B( u8 reg, u16 dat ); +static err read_mgic_2B( u8 reg, u8* dat ); // ======================================================== @@ -243,7 +243,7 @@ void pm_chk_adapter() // 電池残量が1%台で、アダプタ有りの時には本体が起動し、ゲームが動くが // 1%台に回復する前にアダプタが抜けたとき、割り込みを入れないと期待通りの // 動作でない。特別対応のためここで - if( read_cmd_mgic_2B( BT_GAUGE_REG_VCELL, temp_v ) == ERR_SUCCESS ) + if( read_mgic_2B( BT_GAUGE_REG_VCELL, temp_v ) == ERR_SUCCESS ) { bt_volt16 = ( temp_v[0] * 256 + temp_v[1] ); } @@ -391,7 +391,7 @@ static void BT_mgic_quick_start() wait_ms( 10 ); // MGICの起動に掛かる // 0. バッテリ残量IC クイックスタート - sent_cmd_mgic_2B( BT_GAUGE_REG_MODE, swap_endian_16( 0x4000 ) ); + send_cmd_mgic_2B( BT_GAUGE_REG_MODE, swap_endian_16( 0x4000 ) ); wait_ms( 150 ); } @@ -408,8 +408,8 @@ static void BT_mgic_init() /* // -1. リセットをかけてみる かけちゃだめ! - i2c_sent_buff_2B._u16 = swap_endian_16( MGIC_CMD_RESET ); - sent_cmd_mgic_2B( BT_GAUGE_REG_COMMAND ); // こいつはNACKを返す + i2c_send_buff_2B._u16 = swap_endian_16( MGIC_CMD_RESET ); + send_cmd_mgic_2B( BT_GAUGE_REG_COMMAND ); // こいつはNACKを返す */ if( system_status.model != MODEL_JIKKI ) @@ -419,15 +419,15 @@ static void BT_mgic_init() } // 1. ロック解除 - if( sent_cmd_mgic_2B( BT_GAUGE_REG_LOCK, swap_endian_16( MGIC_CMD_UNLOCK_KEY ) ) != ERR_SUCCESS ) + if( send_cmd_mgic_2B( BT_GAUGE_REG_LOCK, swap_endian_16( MGIC_CMD_UNLOCK_KEY ) ) != ERR_SUCCESS ) { // 残量IC NACK - vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_GASGAUGE_ERR; + vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_MGIC_ERR; return; // おしまい } - vreg_ctr[ VREG_C_STATUS_1 ] &= ~REG_BIT_GASGAUGE_ERR; + vreg_ctr[ VREG_C_STATUS_1 ] &= ~REG_BIT_MGIC_ERR; // wait_ms( 5 + 1 ); 前にウェイト入れてるので不要 @@ -435,10 +435,10 @@ static void BT_mgic_init() iic_mcu_read( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_RCOMP, 4, origParam ); // 3. 一時的にOCVを変更 - sent_cmd_mgic_2B( BT_GAUGE_REG_OCV, swap_endian_16( BT_OCV[ battery_manufacturer ] )); // マジックナンバー的なもの。メーカー指定 + send_cmd_mgic_2B( BT_GAUGE_REG_OCV, swap_endian_16( BT_OCV[ battery_manufacturer ] )); // マジックナンバー的なもの。メーカー指定 // 4. 一時的にRCOMPを変更 - sent_cmd_mgic_2B( BT_GAUGE_REG_RCOMP, swap_endian_16( 0xFF00 ) ); + send_cmd_mgic_2B( BT_GAUGE_REG_RCOMP, swap_endian_16( 0xFF00 ) ); // 5.メーカー別パラメータのロード { @@ -478,7 +478,7 @@ static void BT_mgic_init() wait_ms( 150 + 15 ); // 7. OCVに「とある値」を書く - sent_cmd_mgic_2B( BT_GAUGE_REG_OCV, swap_endian_16( BT_OCV[ battery_manufacturer ] ) ); // マジックナンバー的なもの。メーカー指定 + send_cmd_mgic_2B( BT_GAUGE_REG_OCV, swap_endian_16( BT_OCV[ battery_manufacturer ] ) ); // マジックナンバー的なもの。メーカー指定 // 8. 150〜600ms待つ。600msは厳守 wait_ms( 150 + 15 ); @@ -498,7 +498,7 @@ static void BT_mgic_init() iic_mcu_write( IIC_SLA_BT_GAUGE, BT_GAUGE_REG_RCOMP, 4, origParam ); // 11. ロック - sent_cmd_mgic_2B( BT_GAUGE_REG_LOCK, swap_endian_16( 0x0000 ) ); // lock key + send_cmd_mgic_2B( BT_GAUGE_REG_LOCK, swap_endian_16( 0x0000 ) ); // lock key } @@ -559,13 +559,13 @@ task_status_immed tski_BT_temp_update( ) } _dbg_rcomp = newrcomp; - if( sent_cmd_mgic_2B( BT_GAUGE_REG_RCOMP, newrcomp ) == ERR_SUCCESS ) // swap不要 + if( send_cmd_mgic_2B( BT_GAUGE_REG_RCOMP, newrcomp ) == ERR_SUCCESS ) // swap不要 { rawdat_old = raw_adc_temperature; } else { - vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_GASGAUGE_ERR; + vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_MGIC_ERR; } } } @@ -602,7 +602,7 @@ void BT_get_left(){ { // 白箱 // // 電池残量 - if( read_cmd_mgic_2B( BT_GAUGE_REG_SOC, temp_fuel ) != ERR_SUCCESS ) + if( read_mgic_2B( BT_GAUGE_REG_SOC, temp_fuel ) != ERR_SUCCESS ) { // エミュレーション機能がおかしい vreg_ctr[ VREG_C_BT_REMAIN ] = 99; @@ -615,7 +615,7 @@ void BT_get_left(){ //* // 電池電圧 - if( read_cmd_mgic_2B( BT_GAUGE_REG_VCELL, temp_fuel ) == ERR_SUCCESS ) + if( read_mgic_2B( BT_GAUGE_REG_VCELL, temp_fuel ) == ERR_SUCCESS ) { vreg_ctr[ VREG_C_BT_VOLTAGE ] = temp_fuel[0]; } @@ -632,10 +632,10 @@ void BT_get_left(){ u8 temp_force_fuel_left; // 残量リード - if( read_cmd_mgic_2B( BT_GAUGE_REG_SOC, temp_fuel ) != ERR_SUCCESS ) + if( read_mgic_2B( BT_GAUGE_REG_SOC, temp_fuel ) != ERR_SUCCESS ) { // 残量ICがNACK …バッテリはずれた - vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_GASGAUGE_ERR; + vreg_ctr[ VREG_C_STATUS_1 ] |= REG_BIT_MGIC_ERR; bt_authorized = false; vreg_ctr[ VREG_C_BT_REMAIN ] = 0; system_status.force_off = true; @@ -661,7 +661,7 @@ void BT_get_left(){ // 電圧でキャップ - if( read_cmd_mgic_2B( BT_GAUGE_REG_VCELL, temp_v ) == ERR_SUCCESS ) + if( read_mgic_2B( BT_GAUGE_REG_VCELL, temp_v ) == ERR_SUCCESS ) { vreg_ctr[ VREG_C_BT_VOLTAGE ] = temp_v[0]; @@ -847,7 +847,7 @@ err PM_LCD_on( ) void PM_LCD_off() { // BLついてたら消す。// チェックするのは割り込みの関係 - if( ( iic_mcu_read_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_BL ) & 0x03 ) != 0 ) + if( ( read_pmic( PM_REG_ADRS_BL ) & 0x03 ) != 0 ) { u8 tot; @@ -870,7 +870,7 @@ void PM_LCD_off() SPFL_LCD_AMOL_HV_CONT = 0; // 他のファミリでも弊害ないし // 50msとか待つし、確認しましょうかね… - if( iic_mcu_read_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_VDD_LCD ) != 0 ) + if( read_pmic( PM_REG_ADRS_VDD_LCD ) != 0 ) { if( system_status.family == FAMILY_SPFL ) { @@ -903,7 +903,7 @@ err PM_BL_set( u8 dat ) // RMWを行う // Read - blset = iic_mcu_read_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_BL ) ; + blset = read_pmic( PM_REG_ADRS_BL ); // Modify // ue @@ -935,7 +935,7 @@ err PM_BL_set( u8 dat ) { wait_ms( 16 + 10 ); } - iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_BL, blset ); + send_cmd_pmic( PM_REG_ADRS_BL, blset ); #if 0 // SoCがPWMを出すようレジスタをセットしてから遅延が有るため、ステータスを先に @@ -971,8 +971,8 @@ err PM_BL_set( u8 dat ) ======================================================== */ void PM_LCD_vcom_set( ) { - iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_POW_DAC1, vreg_ctr[VREG_C_VCOM_T] ); // がっかりなことに、PMICはバースト書き込み不可 - iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_POW_DAC2, vreg_ctr[VREG_C_VCOM_B] ); + send_cmd_pmic( PM_REG_ADRS_POW_DAC1, vreg_ctr[VREG_C_VCOM_T] ); // がっかりなことに、PMICはバースト書き込み不可 + send_cmd_pmic( PM_REG_ADRS_POW_DAC2, vreg_ctr[VREG_C_VCOM_B] ); return; } @@ -1028,8 +1028,8 @@ err PM_sys_pow_on( ) } // 電源周りIC情報 - pmic_version = iic_mcu_read_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_VER ); - read_cmd_mgic_2B( BT_GAUGE_REG_VERSION, mgic_version ); + pmic_version = read_pmic( PM_REG_ADRS_VER ); + read_mgic_2B( BT_GAUGE_REG_VERSION, mgic_version ); // リセット解除など。システム起動! PM_reset_neg(); @@ -1262,13 +1262,23 @@ void codec_reg_init() -err sent_cmd_mgic_2B( u8 reg, u16 dat ) // 送信バッファは固定 +err send_cmd_mgic_2B( u8 reg, u16 dat ) // 送信バッファは固定 { u16 temp = dat; return iic_mcu_write( IIC_SLA_BT_GAUGE, reg, 2, &temp ); // DMA転送するので送信データバッファのポインタがどうせ必要 } -err read_cmd_mgic_2B( u8 reg, u8* dat ) // 送信バッファは固定 +err read_mgic_2B( u8 reg, u8* dat ) // 送信バッファは固定 { return iic_mcu_read( IIC_SLA_BT_GAUGE, reg, 2, dat ); } + +err send_cmd_pmic( u8 reg, u8 dat ) +{ + return iic_mcu_write_a_byte( IIC_SLA_PMIC, reg, dat ); +} + +u8 read_pmic( u8 reg ) +{ + return iic_mcu_read_a_byte( IIC_SLA_PMIC, reg ); +} diff --git a/trunk/pm.h b/trunk/pm.h index 7cf1575..215e7e5 100644 --- a/trunk/pm.h +++ b/trunk/pm.h @@ -161,47 +161,51 @@ task_status_immed tski_PM_LCD_off(); task_status_immed tski_PM_BL_set(); +err send_cmd_pmic( u8 reg, u8 dat ); +u8 read_pmic( u8 reg ); + + #define PM_Chg_Stop() { BT_TEMP_P = 0; BT_CHG_DISABLE(); LED_CHARGE = 0; bt_authorized = false; } //  これを呼ぶ前に、現在温度を教えておく必要があります。 -#define PM_reset() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_CONT, 0x00 ) ) +#define PM_reset() ( send_cmd_pmic( PM_REG_ADRS_CONT, 0x00 ) ) //========================================================= // 元栓 // -#define PM_LDSW_on() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_CONT, PM_REG_BIT_LDSW )) -#define PM_LDSW_off() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_CONT, 0 )) +#define PM_LDSW_on() ( send_cmd_pmic( PM_REG_ADRS_CONT, PM_REG_BIT_LDSW )) +#define PM_LDSW_off() ( send_cmd_pmic( PM_REG_ADRS_CONT, 0 )) // システム電源 // -#define PM_VDD_on() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_VDD_SYS, PM_REG_BIT_VDD )) -#define PM_VDD50A_on() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_VDD_SYS, ( PM_REG_BIT_VDD | PM_REG_BIT_VDD50A ))) -#define PM_VDD_off() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_VDD_SYS, 0 )) -#define PM_off() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_VDD_SYS, 0 )) +#define PM_VDD_on() ( send_cmd_pmic( PM_REG_ADRS_VDD_SYS, PM_REG_BIT_VDD )) +#define PM_VDD50A_on() ( send_cmd_pmic( PM_REG_ADRS_VDD_SYS, ( PM_REG_BIT_VDD | PM_REG_BIT_VDD50A ))) +#define PM_VDD_off() ( send_cmd_pmic( PM_REG_ADRS_VDD_SYS, 0 )) +#define PM_off() ( send_cmd_pmic( PM_REG_ADRS_VDD_SYS, 0 )) -#define PM_VDD_normMode() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_POW_SAVE, PM_REG_BIT_VDD1P_1R15 | PM_REG_BIT_VDD_PWM )) -#define PM_VDD_ecoMode() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_POW_SAVE, PM_REG_BIT_VDD1P_0R90 | PM_REG_BIT_VDD_AUTO )) +#define PM_VDD_normMode() ( send_cmd_pmic( PM_REG_ADRS_POW_SAVE, PM_REG_BIT_VDD1P_1R15 | PM_REG_BIT_VDD_PWM )) +#define PM_VDD_ecoMode() ( send_cmd_pmic( PM_REG_ADRS_POW_SAVE, PM_REG_BIT_VDD1P_0R90 | PM_REG_BIT_VDD_AUTO )) // ほか // -#define PM_reset_neg() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_CONT, ( PM_REG_BIT_LDSW | PM_REG_BIT_nRST1 ))) -#define PM_reset_ast() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_CONT, ( PM_REG_BIT_LDSW ))) -#define PM_chk_LDSW() ( iic_mcu_read_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_CONT ) & PM_REG_BIT_LDSW ) +#define PM_reset_neg() ( send_cmd_pmic( PM_REG_ADRS_CONT, ( PM_REG_BIT_LDSW | PM_REG_BIT_nRST1 ))) +#define PM_reset_ast() ( send_cmd_pmic( PM_REG_ADRS_CONT, ( PM_REG_BIT_LDSW ))) +#define PM_chk_LDSW() ( read_pmic( PM_REG_ADRS_CONT ) & PM_REG_BIT_LDSW ) // ↑ 0 だと異常 // 液晶系電源 // -#define PM_VDDLCD_on() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_VDD_LCD, PM_REG_BIT_VDDLCD )) -#define PM_TCOM_on() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_VDD_LCD, ( PM_REG_BIT_VDDLCD | PM_REG_BIT_LCD_TCOM ))) -#define PM_VCS_on() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_VDD_LCD, ( PM_REG_BIT_VDDLCD | PM_REG_BIT_LCD_VCS | PM_REG_BIT_LCD_TCOM ))) -#define PM_TCOM_off() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_VDD_LCD, ( PM_REG_BIT_VDDLCD | PM_REG_BIT_LCD_VCS ))) +#define PM_VDDLCD_on() ( send_cmd_pmic( PM_REG_ADRS_VDD_LCD, PM_REG_BIT_VDDLCD )) +#define PM_TCOM_on() ( send_cmd_pmic( PM_REG_ADRS_VDD_LCD, ( PM_REG_BIT_VDDLCD | PM_REG_BIT_LCD_TCOM ))) +#define PM_VCS_on() ( send_cmd_pmic( PM_REG_ADRS_VDD_LCD, ( PM_REG_BIT_VDDLCD | PM_REG_BIT_LCD_VCS | PM_REG_BIT_LCD_TCOM ))) +#define PM_TCOM_off() ( send_cmd_pmic( PM_REG_ADRS_VDD_LCD, ( PM_REG_BIT_VDDLCD | PM_REG_BIT_LCD_VCS ))) #define PM_TCOM_VCS_off() PM_VDDLCD_on() -#define PM_VDDLCD_off() ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_VDD_LCD, 0 ) ) +#define PM_VDDLCD_off() ( send_cmd_pmic( PM_REG_ADRS_VDD_LCD, 0 ) ) -#define PM_set_BL( dat ) ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_BL, dat ) ) -#define PM_set_adc1( dat ) ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_POW_DAC1, dat ) ) -#define PM_set_adc2( dat ) ( iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_POW_DAC2, dat ) ) +#define PM_set_BL( dat ) ( send_cmd_pmic( PM_REG_ADRS_BL, dat ) ) +#define PM_set_adc1( dat ) ( send_cmd_pmic( PM_REG_ADRS_POW_DAC1, dat ) ) +#define PM_set_adc2( dat ) ( send_cmd_pmic( PM_REG_ADRS_POW_DAC2, dat ) ) #endif // __PM__ diff --git a/trunk/task_sys.c b/trunk/task_sys.c index d43ae7a..5c9edca 100644 --- a/trunk/task_sys.c +++ b/trunk/task_sys.c @@ -207,9 +207,9 @@ void tsk_sys( ) { u8 bl_status_temp; - bl_status_temp = iic_mcu_read_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_BL ); + bl_status_temp = read_pmic( PM_REG_ADRS_BL ); vreg_ctr[ VREG_C_STATUS ] |= (( bl_status_temp & 0x03 ) << 5 ); - set_bit( ( iic_mcu_read_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_VDD_LCD ) != 0 ), + set_bit( ( read_pmic( PM_REG_ADRS_VDD_LCD ) != 0 ), vreg_ctr[ VREG_C_STATUS ], REG_BIT_LCD_POW ); BT_chk(); } @@ -521,7 +521,7 @@ static void chk_emergencyExit(){ else { // (TSボードで手動で/デバッガが)リセットをかけたらしい - iic_mcu_write_a_byte( IIC_SLA_PMIC, PM_REG_ADRS_BL, 0 ); + send_cmd_pmic( PM_REG_ADRS_BL, 0 ); vreg_ctr[VREG_C_STATUS] = ( vreg_ctr[VREG_C_STATUS] & 0b10011111 ); vreg_ctr[VREG_C_COMMAND0] |= REG_BIT_RESET1_REQ; renge_task_immed_add( tski_do_command0 ); diff --git a/trunk/user_define.h b/trunk/user_define.h index 3fcd73a..1906ca2 100644 --- a/trunk/user_define.h +++ b/trunk/user_define.h @@ -6,7 +6,7 @@ #define IIC_C_SLAVEADDRESS 0x4A #define IIC_C_SLAVEADDRESS_DMY 0x4C -#define IIC_SLA_DCP 0x50 +//#define IIC_SLA_DCP 0x50 #ifdef _debug_led_ # define DBG_LED_on { PM2.1 = 0; P2.1 = 1; } diff --git a/trunk/vreg_ctr.h b/trunk/vreg_ctr.h index 29c65e1..af4f86e 100644 --- a/trunk/vreg_ctr.h +++ b/trunk/vreg_ctr.h @@ -27,7 +27,7 @@ // twl bl のミラー[1: ( 1 << 3 ) // 0]( 1 << 2 ) #define REG_BIT_ACCERO_ERR ( 1 << 1 ) -#define REG_BIT_GASGAUGE_ERR ( 1 << 0 ) +#define REG_BIT_MGIC_ERR ( 1 << 0 ) // VREG_C_IRQ0 #define REG_BIT_IRQ_WDT_RESET ( 1 << 7 )