diff --git a/Makefile b/Makefile index 6928341..2750d69 100644 --- a/Makefile +++ b/Makefile @@ -12,8 +12,17 @@ C_OBJ=$(C_FILES:.c=.o) SHADER_FILES=$(shell find -L * -type f -name '*.glsl') SHADER_OBJ=$(SHADER_FILES:.glsl=.glsl.h) +RESOURCES_DIR=res +RESOURCES_OBJ=$(RESOURCES_DIR)/res.o +RESOURCES_H=include/gear/resources.h +RESOURCE_FILES=$(shell find -L $(RESOURCES_DIR) -type f -not -wholename $(RESOURCES_OBJ)) + +ifeq ($(CC), gcc) + CFLAGS += -Wno-use-after-free +endif + ifeq ($(OS), Windows_NT) - CFLAGS += -DSOKOL_D3D11 + CFLAGS += -DSOKOL_D3D11 -D_CRT_SECURE_NO_WARNINGS BINARY := $(BINARY).exe else UNAME_S := $(shell uname -s) @@ -30,12 +39,22 @@ else endif endif -$(BINARY): shaders $(C_OBJ) $(OBJC_OBJ) - $(CC) $(C_OBJ) $(OBJC_OBJ) $(LDFLAGS) -o $(BINARY) +.PHONY: shaders resources + +$(BINARY): shaders resources $(RESOURCES_OBJ) $(C_OBJ) $(OBJC_OBJ) + $(CC) $(C_OBJ) $(OBJC_OBJ) $(RESOURCES_OBJ) $(LDFLAGS) -o $(BINARY) shaders: $(SHADER_OBJ) @echo Shaders compiled +resources: + $(LD) -r -b binary -o $(RESOURCES_OBJ) $(RESOURCE_FILES) + @echo "#ifndef __G_RESOURCES_H__" > $(RESOURCES_H) + @echo "#define __G_RESOURCES_H__" >> $(RESOURCES_H) + @nm -j $(RESOURCES_OBJ) | awk '{ print "extern char " $$0 "[];" }' >> $(RESOURCES_H) + @echo "#endif" >> $(RESOURCES_H) + @echo Resources compiled + %.glsl.h: %.glsl $(SHADERC) --input $< --output $@ $(SHADER_FLAGS) @@ -52,4 +71,4 @@ bear: clean bear -- $(MAKE) $(BINARY) clean: - rm -rf $(C_OBJ) $(OBJC_OBJ) $(SHADER_OBJ) $(BINARY) + rm -rf $(C_OBJ) $(OBJC_OBJ) $(SHADER_OBJ) $(RESOURCES_OBJ) $(RESOURCES_H) $(BINARY) diff --git a/gear b/gear new file mode 100755 index 0000000..fe3a424 Binary files /dev/null and b/gear differ diff --git a/include/gear/base.h b/include/gear/base.h index 81ef634..674fce9 100644 --- a/include/gear/base.h +++ b/include/gear/base.h @@ -35,4 +35,10 @@ typedef HMM_Mat4 mat4; #define SL_SG_RANGE(x) (sg_range){ .ptr = x.data, .size = x.size * sizeof(*x.data) } +#define g_buffer(type, size) \ + struct { \ + type buf[size]; \ + i32 len; \ + } \ + #endif diff --git a/include/gear/font.h b/include/gear/font.h new file mode 100644 index 0000000..bd3edaf --- /dev/null +++ b/include/gear/font.h @@ -0,0 +1,9 @@ +#ifndef COMPRESSED_FONT_DATA_H +#define COMPRESSED_FONT_DATA_H + +static const char* compressed_font_data = +"Gat:P#@(50pAalQ2a^NK(Q]LO#7Et4?mpm>\"+st`!>X*4!t7V4dO_Ym6pkdIM2@[7U/;TK/n6BQB!Wi;,UAkj.DPN*o\\MN$EW2SWhZ_DphAs]Qo)/(dJ'2o@-H80Z[a/gkaEdiC%?((Ul+RiOLn$?3lM?`+/i55Od\"^nKSf6TR,b8pilFTDEE2:OQB8)AC[c+pEe_!!'RNLkkT].X*tck6>)!!E^Z#XBIKI6R:U(q+$]M]l12%2?VqO1bOAUu*LQ&5hl)Xm6J4s2^Ut]+Y$[(-0).Ga$?[G[eW,VOJ@q9DpdNrFF\"hcT_&dTVjGmlcq:FGJ3?mZX5-]\"/oraV#,]D(aRGTTZbNJWsA`l=&q0lJ5eJ>CIfj%+u'3)0MkS$;RM8G+XNZF\"R*`QO-1)'f=T%HOIa_u/Y503@'<>iF0O-ZHL#MWe<^A\\#_4WR4Z,0B.QIh1\\ocd,cI$D-E^0uVf'X>!%rN5;5ja\"/&I6Y%+Md^hi;5jfF$k?<[/2Qpn9kf)%NNB(m)BWR`'t`eDCi[+m(f/OJkjgi%=>>ogT_9iE'(Lj$+L%`E=d!^$0.DX;R81Z;rYSGTUn]T+=8<*lc)O(^.\\)_>EeP4I?ZA6hjJAN\">(rGR+iA,Is44E%_ee6YSS<&GR3bii\"Sq;i'\"^XJe.>O#X6,'+SZqKKA]CM$%fAN2$gq8[ikHsjFG;m1GXa0!?q&*&I=e#44T`JqZBHEtC%a^r-eo'KlZiREa,&/]g1TF7OW8IjjT01%NJ\"UYoSGotT3J-=ZImMHg6FI\\;\\SW9T3i@=K()5TLJq<#nWGQI2oJ3RBG)no&(@H?e+=[W4l\\)Loj\\)kKoKMXCb*,W4jX,L?K9s0]FW?MH$gcBbW#*np^VbT2Gj:Op5&F0p6>8R(^ZZEG%K>*Y]%Fn&,X=&e+Be'cofr#Ar\\Q8RcDW^jpC0LF/HLa]ZRn4I'pN0]\\RtAq0)@,o3LD\\?l8LZ)9f9'9/48Fh_6[klLP_Mu^Vs3O>HNn(Y)Fh\"_fN,GO*F^Zn%12L@qslj5RpX0.pa3_/n)W)7?L8?l;=,h\"`@us>%U1$`5O?t*n%sO8)T\"V`4Oe25)VWFb9#G94C@camRsD(1#4j#0;=h&N1gH\\1m!jS@jjn()hK-?f%*jenPC.!5RC\"afB6qi+`SAFARf*bm1GU`rtOsOo]_[j9u-\"eVZT]k]g(g^f;W+QI=LO];km*AT,N/nfR*3bofq\"$'`HWRs*EX2cbO?1'Am,nRF9g#Dbi3jE:\"s*CqR*3kC:lUOSu@dEbr0S'ACH;g^PXi>qh2/QKDKHVF=^&8W1ra>Vg]$ocHhhI_/UYHM][M(8hh&SGp?U0\\^>G*&\\+[EqQiu/rCP*_n+4rfcs4.)Jf)PUJ+Tq!6ll5HVJ?FI+JTD(Q1@V]&Y79h:1jRI16\"^Eu**bJuah^1MnI2sTaCdl^;#d5U&)B/9d@jnU$Qlg!fX>57%f:75Dg9LqK&N2R5;6R9LrL#kKVX=_LQmS$L271L(NM@nrK+3M8a*rdCM7bP[*XN#FeKa@ruV#?kU3(=NXQgD2UXLhI,le&58s?==?tN[Yjl.%@8DTj&b^KPQ`711Ce?BE@!^W#Wp+$B0BPN@W&_j[`LLk\\chs%'%J/cFY4-o!iSd5a-c>s%r^$=?&Uk<:,*k^\"M:`D[>JrZ::IMi0nP7$S(1J.pZ!*;A3L0i7>0AtMFdB_,Dar,OK18:i8ffj,eA>'_URiQMC=IH.DB31,A\"@;(Be?U@=P$Z!=:\\TmN&3uW,;US-792i`*k=0!`lNdppI.7aq-<''3m)a6ej.,-:a-DUa)7OeENcDOf]4]n4j'E]!hRKb`&Ciup1hq,38sCj+.I,cg-_k\"/qCLoJFPgbQF@((moRc;p&fGgm>J>[Y_FdgMGUggJZdHgD./f[_oO^C4'XkNU[85hbAo%R$*Q':mTIuE+QnG$-+%b%Zb+lj2]*>`*J3q,m>X7,papU:YMB3=Rt*T>B4\":#@Z'qW[`JIqec2e'H5DShXeGh2IOR6YEQoq=1OXZhDX)4mUSPf\\H253I0N,Y+#==lka8`RQiKU<;tDFU\\SikIp*C\\&6gi^TY-r\"i)mfY\"og.'$=/?3Kb+1^^H%)4r%^3Mm_H@pk<;*`DOtoUiOk>!/b9IsqmgBTd?^MnMGZL/GZ8ZlEH^lGia:kER(mD8$O]W9(,*1/_:K&B/_mr,c-%G>[XZ\\X7B\\:hGL8p=D2VU6hn/[<&md?#A7s$/DPMPMWMT7+de?@`.'o8jPT;/*/H;:-Eq)qNMU6%c'\"O8RKGE#fCl2gW*NPQV\"W?M5'>/^X6X)jo@4fG/*]ng6oJ;tYdInhK6N`'frSc:/UP3/CRinaZuJn%MbSXp1Rkg2?/Kb\"l%,^ERbhrYT]qB3F3XZPk;S_c[kr#@hV7t+k*+'iC`1Z!gp4:u:!:hJK.Zi*4Os!hbQ\"tteoJ4,?Y`&F6>KV;EU2'([B8&hhVNR.lYEUe0)&]o\\pV`m--Pa[IWgET7Dk!e=5:(?f9M])Ht_&l.eULdZE)\"EB`\\f-q4M0bK24q!2]/Fp$W3s`_B<3[fgUq^Qg7-^N]s`\"LgM=Q,a4Cc)(VMGPJ)B_tr?XA(IQ]T#ea6F`YBoc>[l9B'Cu%3no8:eJ2ug,$\\YWt4h3KS\"m+p[Wo&Q+G[sWDmKWCYFDnl.,[[CuZgHN.ppmTQF`a\"^H:$+PDqs]_/,'5Ag#L(:#N(>M?O`D<9MU[r'p/D;0VYa1)\"igC)cmg@iXsDmm\">J_S)N7rFCDT!mI]]lnbGp8bXZ[/I-JQ6#\"09\\=@PNj!YiSHF(>G:qeKgs0!)2-uboD>(Bh?i0V@!S8&m\\)k2fG5:ULgU1Kla0'&urGoU3qWkG/&!+i/R.Dhn&g#XuqsX?L[dOmPY^+*m0chU/'m,tHQ.^&$q%1<,0J6c@LapD;5JEKK/d\"rO?!.Jas3:cq+>i=X%M6l9fB]S7#QNJ][1Ca`;r&[uQ3p&-R>]3b%,(o,V04oe>pSDjW*R=Cq*+Ja%]iqnfC[U&EOOhg*0IQ0g$1n?!Z&5,h^5lah=#t\"\\K/\"WBbKkL`-Qa)]4^lS:?hM;4)8&b?MN4uIi!(>32'd&6/oK'qr+dBDb^(2E%T&TVkP'6Sn+3%/+4rD].'ufpf.&(f/!t\\,T(m9G@-IWYn#cXW'iWisK?<$h6,\\!t:LE[1B9ZSmr5do[-@g$6U56=-,:j`P#T]Veu+p\\4,+,Kstq5?e8go*RMRc-^FW_nM=n=UcOBL+4^TcT3!:(7Qg5qT+!JU5h>*$3V'8_3iW:+dGqW^'0pl@fpnM:sS`5Vj>;L(j6Yq4HFAs0_.CkPq`.5!5c3$YnThj8[bT#-(OW.Q%1GG5p@..j3`N81nkltBLWYEd=c8a+BGYI8rQ7mZ7lB7W'WA1?q-IKJ$[Y<*YiA.EiGB1AlV3*WP.t?;&VC1/Gn[oX`H/uk+7%qQ9=1/$.1G:Y&#]d<\\Ndm&1\\94YF]$UgYEf->2bc.\\P\\5&=gB$tZ6,f?i21\"mjI7k)k+;*WqO^7@_GOSks2C^5p9u*f==Np%7@BYN+gi1>d[/Ma:>8CjUE5]+cfa%__LlHZ=&S?=*guN=5#n=PNHZgP_Mjm!@@Q?uFOq3_iIMrULqQ4$bR8/$Wg^])QQp@I'%NpJV+fL7%'dKX[G1]+c\\GY+Ge(1p@67+jQF:>De6Y2*AP8_XW3oOg-#ssdHE*8Uk`Mib.:&U3adcs'j!)/>/TU9Jj@GW2=]nR\"Y([ZUD-$L<1D]-9c86a]nG1#3N8f1A(uY^LoZ'3*_I*eg:^e$-(d\\dkOU-U('\"*AlVqV+KVqQRu5]+qJ46V0W*V_k@%eq]b#6N7uCB&`g/cp,pTDsuFfcR0M!'51IVAYR*nss@q?UBqWs-);fs'Xa*+6]3ImB1.M]?A?3)p!2J?7X@Ho\"7A^(R`4/T$_ERH-A-T#9Z8YWVZHk5]f$P@oAj*[&d[o%[$4KB,$pT#9VL6J@&U`ZdQ6g(T`I>A1<9:h(#K:sV[G^$SN,)3@lfH.Jfm:/)]>M+CJJDJ@c@u&_(lnH&(h8t\\^j6SDl-h_1rOr[t$fg-/X6Sr8V*BUJ=fA\\T6JZnPP^;K^?2^p'gUm9_-DBfDNrU^D.B*iBu0>q73lll'=p+ZBEpdQ2@VVtlANVDsOn%S@Lnd1J1d^o+a6qK7(+q3I'/;S-H74u1V'Jii1.!\"C6C^tL=2G%OP)*,CW@kgN',<21Uo)`7>kO?$0*\\ZN@gr6Vp<1_?UpbY1*cepV@]F5MJ_W,kJ!\\T^XWV(B_a[1l$&\"^mU?7^fNE>uCYGb2\\k4HV#]A=i@!qNB$[H:]86pq?_3Oj_WMH=(X@@'r*&3(C`E9]ShS'Pg$AQf=\\[3sS6tkGo'u!*T$Ufl7`_kA4@=TjL^pu27_,%q!PS%.nUVKY`bu#bnI9ibAk(K68/+?WgXE_X#LYV^Z.u3R,(E(*CJo^=%dcmT?e>CL&<^?LbIm:gs&Lf;YDMcN'5JccCSE>ZDUg&>l\"Ckp2nMF0(L\\8\"dk3n^%EQKQE0SE$g3OUbBC0)lu\"P%A2.dBCWW_cCLMafS;8%b.E?9&--JkUH*3Yj4[23WgAj7;,1\\-IX^3ebp8$\"U*P7[*@e\\!5B@0-V`->^MmV`\\K:JA^NC0=iG)FNH'Y%RL8)qY7/2sXj1Z3Os_PB[FQi[oP1Db3&_kbV?*r)&/:.)[s<+VE+X^b?q&q*958jNdF;>s6ur*q%W$m[#!_k8s&l*pti'q6R!PF6lWp2LC4M@].n+m/:8hW<5R=!l-Mp@2OXt[MGD1EK(X?:2uN#Q^iU?[R\"o?=,U'A/M?L+Z+?jPR[t;SBt,\\8[Csqj6NFQ&/XfOg\\X3CFOtd:gjCfoknmG8s_8$rlcPjWE0UX(slW[LA\\@6doVn+l$hlCV-CqHcMgM_CA]\\11cWOMqe_AG\\YNauZE)`*S:U0]Xi#R8l*]Y%*(Z,E,r#8nmPLoB>:`?2V-0SaBd`i0#ZF:dh4rQ*=G1\\*GLSt%'MPM=2sZA#A(c(pA!O]!s,'TuTERlEth8L/:d*#V2^a=oB\"\";(_:I`2im$D66>]T(P4,+cX.nH_0p2t\"Np:]s<\"+BD'@jfKEE0V].j@lF/jCIUN$8-71GmK`ojcOQ3]4VF!W#X?Y!q$^)k`2A7Y6p;'E4*V5`:Z0p!4J#=Pj`[4!b&,o[pQeM+[Rdit-elq3D=AD:?cKZa6>7,VO-^r:8DMdZZ'6No)s#[@cR\\/6K10p$%\"Z&NQ5])n4>n4$6_S)\"9@LU&9mGr8q9\"'`mfo+[e4Mg-ZZF97NbakY#$EAn:_Ku`[.T$HNi&fB7.*mG@D)P=n`_a'E2'R0$q]T=duJL9o,4Fp;j\"oL+md)*ioGWpuIo7\\lkR?-I)-6qQ2u91:QbC=6T=jV*@2'E3sH_6.?nZCU?LnE)3dqO=_gmYH`Z#nP,fnjks5O5XUE3$-&6Gmobq_Wst7!0!*2QIrsM@CigcI5f8L]1I2lf'PE.j!d,HPAsa7Ihl?mpf(-b(6]*R6s@RTU;q'1)6n4.U,Ierend:;^aJ\\P5)E(t;g93Vk>&:'VbPoeduCsu?ZkHFRl5.d^M`G-eX*IC\\RKi\"964%lZA/4eg7\"j2WiIU\"4QU.NmZPPI/mGhnIWZ:\"6N@MA]9;=&sQ6K+E9_8WU\"GIYXAAgm.#jUQ.H)d3CQofmsg(B:LH'Sr7\\G8R\"F%Jf?G\"hN7:odZH$9I+LXO-bUYIVknp):#ud_)<_E%`ZFKW'!AOX8dUg`^OnQ>gnbEJO#1:f5s[*YWsR_Kj!b[`gpt7^a#T0Brgtf=[rak\\a\"+7Z\"JH`$hp&G#=#4hDCWn7BX]G$+!013glRHF>rlVog:dgi*A!/\\]g0\"Z46r(VcS0u%0U5_<6ks'JKb9EK5$u,lem(\\>'FhDZ49)^DnTJ(N2l9#ZAr$WMsXJhWVf&52PM6%dl0>UP,U1T%WmbapJ(9cDXj[ir%&W_GE4@;(tb#r0h6B$Dd2AGS&4tiD*d9LE_A^GM6sWJ\\%0^'@P0/@Be(g\",G#bd9k'h/'[FM$%.^4Opt\\Q<=!b2>=f(Vri/-8=U/G<0oeL9D<>6L\"H,7]``'iRimk,/^$Eks_DrKem?jk/QUg`lH0_1W&88W]G]6UtOH1QrIf']tuU2Vd(!XeH9$]E4DDN?)+,[BCF([IhLqT,ef]I53!,,D?cdcMjp?>e\"C=1HL]/^eEjbRm7$oJT*?g`EZ07,XKh*n`Hpgnp-mO;?i]KGV6`?>>a8aWo%N'W'egen/ok]pG!PGr9C;[K17-Pd[:kEEP!.4L/d@8X(OV*,NnUbGfZ?=Mi$\"jG6e*`0b5OU;']-oP.G&M=f@gS[cmW4eEr`ohg$H5:P.L7=L@XYIfZhIPe*L=d56_:%fc<-r9Es(Q#se8?^t%X>qS=Dd%TeG_g$Mp%c>C@,&^YA73':c!o?]SM&'!2Rk@eOQU)p\\mTJQJVuiB+#./mS>]Rh8hA0=@7lgh(Ij<*PcngLbk5Vs3&(==)(p+Npg.1Dg0H/D3F]@.k4+[[11'8IoIERtCEG,#:K$aW-^\"//!gCWbJdDH3:7b?@V:9\\nMCqNRhL@_>7i$?HX:$mI9p^^\\-=W+=rS:iugOc=LH_^F*U`i2o(k.NY8Of2+np(,mC;K)K_+n=5rm5otR`XdN_G%oTgPT,'AJ?=UU.4LfWjOLbo?`R<=*$ccAAT1\"%&s2W4cn7]HfaW'IHug=cV?rP*=O%g$I,_'Oun0$`shM2I.-C\\-k5kn:ahF8O$p29UDoW5qr]+X\"ZAQm(H*YrDId\",QVbehp5OT-M71?3;FY`)>rm4%tUHZ.gSS7s2<.*k)KeUfH0-EXRfVGe$h5e.Z:=nIk.$?7dp;*$JeT,att-qC!*BXqA\"P;2X*FAN!W%]f^pLgtn2,_407m;;3a%3k;[W\\%15[Q@;A2`XIc^St7U0j+@(qQ=)L?7B1ekA5Uqr7:n3^(8Zb]'RNDCL[W^=@bk$]lVqj<[[GCVrOo#&brid7gtjRCn>\\7%bd3\\ML.G<;BQ.N^>FSqpoKJ)>9eZ#,89%'6O;nlUY4B.WY\\o?p:W6qnhFfC?W3WK1(LtjD7@'4t?CG-X3#9oJuWBW/FfQ'8I:oH'1GDGX3W46e-O1V(jGI_:]jP%1r4&C2o=CH5\\JSo^=*[u6r5dD1A]d#X;@CIh)Rr8VBKQeP4^oRHjFPkGS.E1-%gEeo!T>RG`]0JDJ*@%hY`F6(gK`o*tlO:7q6@/n/jAB`j$^\"4$@PY,R1#I[W3WK>*(\\6erm&\"-\"YfPk:n0$Tl&)W(pHl&OQ/mQ5:TpbAdAZEC@efTHbQ#75!28`s`7]Y)Nd%\\md\"^m>`4?@a43dE\\G[?n*eqZr`L'qI20[uc)m:*,$_UE,m0\"$-l?=MnKFoG_oC10!ip%+&>\"KDZ%k=GAMY!!^.Mi7DHSh2`eTcZDD2q(Ca5%DK/*)>UoWMti'@B2nFG*1*XPkEf,LKMQ$BP/umP.h5Yrre+E%ktq3(luRJ0((ur6llG.\\;,IJJ.+FbC@'LGAb',/a`kQHlL7WOieL(!i=;+$Q]]C=6EY.2$i)!-_tP[^7>oCUKUm;'.WtOsmFihe'&u]X6n%H@%,-CDp(M%Q?bgB[,2+^OiN*n,3UW4n%,^m+M7J`>d-I@(^)q#NHl&q\"<6Rf\"6dEZ/ki?C'0$!o'LZ'I/P&mo%_LlU;T;dPc<:ep92;cIP=Y/m,LPl[OB7bSa6Pga%HT!Tk'NF9Gn:!_,YX[RN/ep;@Tqi@s-YSb)ZhD.4@F)ffI[:E=rl\"P]p(>))_'#33q\\.M-=4:.+pJgat7T4^W;pG%l9goZE@&'^r.ka==&&>;VI7P:l1(qqdNu/iOj!E7beZ_WmG\"IH]3eD+\\n&-3'EP.ZReY#'NqH@[IQl7KZ`jcrs@f;-@T]d:_D\\-\\^XGbu4<>Zk1bXGLbasT1@8#]VVEkMeV&p(/*]NB@o;gJQ\"q(=e(p%P#@p@b'GS?TPAS\\\"^<>f[]d4bJ,?!;WDpq6Uk3jD3h_2WV2FjR`?\"O7+H.@67rCBnLis$s3>Od1:Wf$p/k\"[!(=e_\\KoSkQAP#]DW]kMb\\^4FCC1ZAs_Zs,i7G]f'WpK1!/-H>=T%-\\f`;+KAuUOMIkoUCk9D%6=ZSjoV9!1d:9VYHEKlr`M1*^_Hm$14f#m.U%:V!;.,+K$fP:m_].k)gg,_V?XD$c;BP63Ih/Eqm]FGP%Dg[.&!h4Un7_-\"lqiL:J3t2^nO)^uNLBbja#b1htm5t]GC^&P)f>GS7B70dUId1N6HB4e+TFpBi9<&g(r9HJkP_ZJpW#lqESQY-h>W=/62hC?/-U=+'\"P@^1YESs9ap3f?uaWh0&jL)AVe9R^'b7%CTs3sTYW8o:DcE,'\"5r45_WW*-6%-GC=nM^_eq$b#N69\\6MhTqC&XJHI<[cRg-N*Mrp]B:-$kS5;8`.g%1[D9i7l192UG2-VOa)J4#);0,!gS_l6j=le1!PX*h\\o/n6L(Z6G/ijc^k*`W?4qb%Pc7<9_aq[igTtd_\\aTa9^Mf8HNcQe(;gif&aRUOM[-YX3!=>;dT2'M$C_obG%3]K$u$Q\\(P@[)dAd)'G-)22.q(9[6`4>qg9jZaeHR5=.,p[#dE_2G)LE8DEfH!\"QE'g1N<=P.cqXJ\"@#a%u1`A8^N>@RE^X6/!N5b?/glY^`5!pQE(U_7Y&S4(V.\"_u\"RLSZ^1nsf@(s1ZtqcZ(B7kAFFYSN-lSr.^O?uSK=^@%fa:Icd>+Dnbig>6P2GQR_WX3cWo6DWa2Vrg7V@3mtB2ph!EMGD(0BK%2GNAfkq50Bo;bT=f,@?VmAlCm+P^l'r$n1OQQO'o&4\"-2ruYue#2rh?2ab<>)U,\\u(hl))>$#lc$uW4!;/Hl:YGHU.AnkbGhK:At@L%0W6U,d^3I@NB'T;u6oO(2Y^b\"1n5\\T)JO,XPdm!UmlO;FcQnpNZ@a-7Z)I-F5B9rpWV+pWUMiUbmXOsfAoB-]8o&TS\\bmC5:(`3RNMML%\"'Zso)m?MSG>A\"$NFo^K/LYGBJ>Ie$pt2=q,tr\"$-5!OGC]18kjuFVO\\TEc9DO(6IirW4aO_X!pW@2\"[SmXYBdu/sDu@9c7F@:U/am#\\s+Oc!F*+V[s$eYt8UAi]cj6.Y!7'B$e$IT?fp5r7-+P%9j;s9HNf,OX]\\H+a<5D00Y\\FIpitl+afoc76u*\"6;^:\"q)3Y6-;&goii#qn,&aU4;fI8(d+7A&OTo=)eS2I$prr[EAI\\cQ/;9Vh1NkGh?>EI#M7m$;c>.Xn4g)u?:oFB)A1f%S)+2@&mmh'=.4f.39*kq^T-^=;^.a1QE#sEgF_h\"u`^c=&eFr52dWZmoUtn;f\"Mg?,p_Ej8Bg>`HE-<:AG!=i2'KC:eE:0@piHkk\"7AqF=&F]5[r<;\\IGA<+7oL22;h#_/s1O?3:cgTt*]D$ATfDHJS==`D,''/U8R)eqFNc2a;^(X4g!;c;6Z&8!<`?1Ci(E1pSN8o2N__X!/?\\;I03EG]6B][>AQa+OOPY/LufmFr\\j9r5[0>qtH&4XAF-%$jCq*I(:6Hn?qOnD5L`Uu@h#P-A!8K@@uaM-U-)M8LPpp6Y(bI[)5K/?L9n[Mjf&M0O@^)?W;]q^4<\\):-#^qb:[or^N7e-CEL&&IK0+.kAK,9.<\"aCh:n0cFOU(?5rPT/VVGGf7E&45uAS/PA>ET7-6a1g0H!fNL3,D;JPN?@X7%cU9/)Gf><-q,\"sU)a2`#G$)D0AotqLZe1V.e#3\"`(Oc6-,.4'GR^k71B2T\\\"Xqecldg&,(<25MWOUA/$K@2EB2TX2*,[qemU/]@tT0?jrk@.`$5D58O!iH/t=0baT+)X%\"aOj$mn?_:dW5W17X:G+XE;2,[p6]S8]*,/GL*tOAWqg,0=LRL5[G=8/-n-0dN'DQZ#*oPBd!t&r;/cOsH2a;TJtrOee.3A29Q>dRZE=i]XqM1.Wa3OXr7f5&iTB9IDX;9JVOeOutK=?CW/6in\\6X%[ej(HU`n7I'N`bE#'PR6aDeY7M_-*UkH6L.4HM'`'Z\"F-)i*=A-lC2C.KqU,P@j`/Akgc,AA@HU]hk!A($5ZA3!dYmkbgSi]]JUNHbl$E?%d&nMC`:i,@,\"LT):YdHs/cCko;aNcD*h8R*MT;kX'S5>soLX''c?j[#C;L&$;Li[#.o5-$1T_5oj?^]q)1CbQgFL9b6(3#f\\#==>-1_O-1J=ZD=I(,h%Q=X4s2`iu^a*/e:R/;D-LnLT^RR%;4>BDrNH&kcgcC]^*I;V<aEEBZ[>fh$J?CWQd'#/XI.7F$eRdh)-b#pZP)D4V6#W@1CpNoQ)ojCZR'E:X-$0pf!>RhN&@mff$%<\".pL;\"Ya'#>]:?!8CY2h!Nicq5oI!AdQ0^!/R;HA6ZSlt9gWHt0m;.Q*^XRCBQ[!]ugWaWS8N_=@?aUkQcY/3nZ!@(Y(@eK(GWt^?Ft^Igh9R-M*UH)i?dCB**asP.-SKr6T0:Gj@K0`]ZKKm3lim),H\\q]b^!'ekYHld4s0:2/)sg;mQ@*`N?1tJiVoRHqlpLIYqj;fK5%U@kce0-$9D0+tRXN)fA`'c]famH,lppa_qjIE\"IV!0E=k:R;0qWjJ)s*$\"Y3Blddbi.mhf>X0?aDs=+Q(?7g\\5N=E>(;&E#uhIHka%rl<2S/rYFT.c[K3cpF5Y>gY`\"1k#/sb-kfD5MJ$ni]>Bm'V7_Q7niHS/pbM@D9A[lsGUm.H=7DK&'u-9Bk%jan3AY9oN-o,.?$0CWHCU^trq3Cb`hp'<7ZX/$Zn!&uW'erH@sY8hXKfLbkgl^V]sQ29l7odp0rEQ(f%525)VmF`bUBN0/8M5eW:?qp/3D2LN:QgW?<1CiCre/K$Sga(aXh5/G;gIH$H/])>WR[2OoSR/IC$PebZ!+5i9=[0/d:XiWPPE(oLKTS[9#jJHZ`l!kX]91IBuo\"B\"'9/+.1lb79-N,fqn++?<-9.1upJpf9CUjeWLbj<1g3kT6'Wg=6fsPUO$\"D;joM%<\\FcLedH!0H!]r,I%m?,5t`^I4eB5'G?oK:R:1i^XJOT[W0'JJE@RDcR%^Qd,70tce>j2A4A0Tmf;ho'6d\\<>/A5&S5$2rFnVZDIqM$I1F4F8G:L0eO=/f9)eB?CmX-]VXDH0>8V7X\"/[`7.Ogo%l1b)ieO2tfR].+K;/L3t#P;'uNnh'P\\p$[N7Xdm_/a\\\"tV?1_f57Rrt80`<8&V$(@Vb:l@M'F-Hk\\8qT.8\"tc!OEuM+F.^^%3mPF#-D-D7`N-!K:[O;NUf;jtUHh#(gpm(#f_gGb-g7/gYfbG]joSAKmVZ]W)eQTq9?Z.5Adb0[6Aqk'WWtAaRcRW$CB`7R[;K%/DDA0JYe6uNQ;LZ,nsZS$R.QW9S6eADV^ckf\"5H$A&`i2Y^8G36l>H8\"[9V?`=&-3eV*_^bTq#0OWG-MpPq9XAW$Vk@V.r>a[T'8-,?<2Sl-,fC/TaFhZ!Q%C2-/8n,oLm.8LiE[DDA.$Y_K/m<`W5F)Od\\6H84tV]a)7.7K!XpmlbM>]r/!HBA+V76C^bI];\"hQ-7J.U1f;XG7?\\H\\;)DQUVkP&d\\eNE;W@^kBKkjVs2MGpF\\2K%V;n+`>X,K0WVJqf18?aOJS&2RE.]VuT$K&#Um0[4f!=YOLQeI_quh_GT^WU/^-gj?'Wsg^3Y\\_aiMoTs_4bfg$J1tj*=CDlE#f;;U$s$/01G,p@Pc6/Cim.4%*NcK:Nt(,-1RVZ]la1=GB8LJ^#DXUKG8d'c-`GcY$=CkjeXh_QF54$Hc25uf]4J?e5k2C%F%gP?WZ[a=]&5[Xt;j*Dk3?,oZ_uTn^Q_YoI.F&YbJ_:Rh'9)[!M\":6;\"K&-2&clfiVNY;dC_/^L4TlQIXU<\\lCF1h2XY'J$6LSi<#:m8I:88'MVI^=f67ZMV8cP.iPUiC9LTqdp7en/l'NFl^!a/BY'pYC9q/JE[nE$Z8*-E:!8j!:T`HP:ORVf9i8Ns'$'._Q[m>W0*.P8n#t!4>b=/0?H]INDlhFQj`ukK[tliDWiod0r0O^a3+^\\OQ$0*JU.Qd_qbC,aSZ(m:;;$/fZL:1mhhfLi':!tn.f2t?p78/K4&O[T@Q0mao0d0Q8I@[Ri?p)P,__kdn<4Q8P/:!mpdkfW8`;$Gr$6ugV!sQ^IZhQD;Y\\?@5?Zqm/,Wp(2d+6sTN$9qhTV^q[eKqGO;dhR>C_G=8.kmBX\\iMS4(FG6?in=9pDWUSHW=b=4E95lA.Fci!J<;94Bmo9'WL$r\"9:5,ke97g+$3u,J.iFaS:%#(=In1tc-L;M85p_aE'6fDZ+r!\\:OU$siPIYP_c;\"tn85==CB.X\\Xk'@^JdaAhr&$9qJJB.EgQKqG@61DPA9_Tu3VR0l/WiFaY<9SMq5pb%9h;YVkumo&p5L$qq7/qralpb%9h;YVkumo&p5L$qq7/qpL!>!eOlcVjO@$9q2BB.Fq>j9CVlg*$^datDAQ/5f0sJ.D.3cQ_j2W'OI*Bb>Q/N\\oZg*qZAVI/?>s+m?K&o9p%BmI%CU2/ug8eEeqBB18sN$UaLMBoT@8`p3L.Ce)9Z(:mBRV.[p8/\"H(`p,&`LU=D]OTZ)M-NVOX)L3Am:HC,Y2'm#I;oU:InC?LNRfJh6k`^m:fmWBDk*`JmG=*_]0DfHMu.;rZfsP2kQ@`FrN3-1YjgjX\"6-?K1d,)33Us]--S%HARue-ft07l7-<\"29e:C]pjlI-`b;@<7PNENk6]V;in]9olTrT0oO:s/$2eJF(8RRRc/B(8WPC.>pH-;EiI<2tQUJtN5FHR/4pJ+_>1eC]?TLE=O8h=$AOI?&fH>]4oZnY)>GX.SOi%:8FDbaLsp\\rm9dV1:J]CtJTRe75-RJjd4B*&9j,J);jQ(\"G$d'PSr;%I(St=gR^,P6:b\"+:PebH5A*kr;K'Tr^2>)sZFg9pHEj@&!nMVhq+Q'.tbN_sL*g`TRi_n:#9i2^H.I&*07JXJ.FV1Olh=`fCG<8cOk>:]>6cF6Z(#M#NI-4>rSO:A?%Mdk]<.*k*nXW%dG7GAF3AS3d<.(D!4,8^^*%J[DW;+Z3i]DpQmi3gkF/\\lZU#J.hMXMN7^2p7JcCqke/>p1N3Yfn91fI8Y-P]E]q.>P7ASsjD:.HOBm;@[guj\\V:A%Ws5^:mY&iFXcEKQVn<9alH9b9TG&WJ+;gC=RfE_^\\U!Pc873+ErtDS*6J%Ye@.7aY.@W`CT:^7f9:E#FB78Md4$+hsnk:R>Bd@?e&$'p<>^$pni+KqC!*VSZ,q=]8an&o/uh5)XV\\b!&Hfa:sTuZXEGil^X%flNu7MSh=e.L+t*F625FP3CO'OBTq&KiCCDanh;RRO2@Oc4f&N)E'J\\fs0_OCUKT-0setP1@BZ7>W?Nh7\"]25UKXi!)$?O^lm4WY[hkY/6VeoAE>n:Q1%CI^,*=Sd(0=T9U2epP0-Sg/lt5;^GfY`93,d*Sr2?A;gA-rNnn<.$Pmq/D'B<9YA^T61c=r:3)i@DYFC(9^1sQCAUW*oJkC4$f,)PrX2!7&B(927R)OE#@2A>)Kiro/DpS;]p%NT,&`R1hmF'^bkc`scK%%24hR=H!:FH:`GcV!AocDNM$9)3R:srZ]Y%T=\"J]\\dfRq]BYd\"%\"\\]*q\\chmps*SL$dCNu^LU70Zp<4m5e>[Vf0m?h\"OctR4:`6@]$W2QV!Cg2CI,f0\\#[XNWKP>HXASdXHhJ+k3DCOs,Y%jVJe&'K\"+Xnl,b5%#IKktL\"-UApl&U@j;aAd#.fB^9oK84W5EOq0P)]Q7[f]4HJ,\"L.m2f!Cs!KYss&&J2n53.hr:mgHasNUha_h_h2VHpQDYgeX$7-sZ:dP[]8dIk#.\"NZUH4R[sLkt7^UdV!t'G1olOX?gKTDGY1ZXUcE'XO#'kFS*p7.@nIn,Ic?^773)DEIUJF3gB0!!T[10]I&0AhZ36(\"3A(TOEX.hErdEPS:XN=jIHFpgB3PH*?]:rs3nGO\"nbs\\81?Y%'H/).\"Rn]'r_@hhE7!/j=.//h+Q=79D*+5>rGHjBk`IcpaUlLs)<+t1R\"#laM\\hS.67;[7673?43<%[W7Nf=+I4^\\'&I3&\\?t?e-.,fNc`kGqVBG')KItn`j0BhP`\"6>^KaX[G6.fdY3\"6=\"ojKWJL!.\")7H$Y\"RE95tC!-o9ogEcgRq\\t([7j-Z,J9Yu5nU:o)I1O,?\"2K6e^j?**Kg<;7JO5I\"*VabXWdIU-km5TKh?X1T_P_p<2tLWh=Y]'d.YEIEo3/([MILPXf0?$BRp]aE[Yl[$j!*,115qclo>g?I>Vg>H-u`;m'LY$>$>,4l8:2l4_<9YC`m#.gt=m@PY('$>Mc7Gk&Bl7R@K&W>IB=NPFSCGphi:tReUZ3:_F51e`m!'&g%JKkC'upIXa#V1Sa%<'IFrYJf6+\"h?h6@:6)TQm=6:A.#50%3S30Z0rOYYE@^k&iRkiV*i^tEbh3LgSL/OuhYkeN7@3hdUf%M9<6gm)r\\F+27,?9qr/pY:OA#1/,+oPOY7&\"lQUau:I!bB(rY[--3HmR,\"skYM9HbBZE?4'h^t[+2SW5-uJ`+)XNorTSf82$L6W`GTSCFTXFlc)aHCaPa5gFOg?2Y;5(rgkMCt<\"%X@rI(\",Mb5OPSIL;b&fj?/k;ococqEQ(MD/k(a2nN*.Tki=[(\"rfb63W?lmT!(pJ2Sf@lPlL^s%g@,pLL+\\*DY](kq0K4?'JWf+Eq3uZIE$u[KU=n!Esl$VH7L\"U\"SBs*K.7VPWDui4>=P'eErJt<`9\"sVBU4jerL1*)n.Sc=gsotb14umAU^uB;eJ/WL8kJ]s8Qb8$e5uaI7EUnlVQ/K)*)SGq%UQb!PZRh(lZWV)7X0ii/RiD:!Dn)>)'+rl?m,b$IIK3jsXVE>1QAJ?C!WB)-NpG1:h?Q.*f)'WOH%O5KBq..-52WJ59/?ZG>9f7[\\H@b,AnN&tjZVdTfe??RbQsAD[5+Hki%k.X\\QYhc6gcG:Ah.o9.\"hnu4ISCFE7k\";XoAkZTEP^Y;n9\"A#maic)\"b4o7.5@l8AaS6t>;[%T2nW&4(AR,/6P`52OB/1BjX%+raAE=Bt04T4!ok.RV.Hll)N\\Ycg-oOr92rf;*\\r7@2D5k)k\\uIM$.k%&bbc=Y0R%'f%ETV6mTUPB1.Edm1.tbq)2$FYalo3kY+X4Y*CUhL)86>.,o@F]1l#anMVB8Q7X?cWRoN_g]/_*IiDbo8dcjm*>8mddbXQ9#-l*JiYAYr6u+/dITVCU4Kq^8eJklV\"]p(\"I&>Cb9r]q`QI8oL>nV]_n;:$EP[MD\\m-[=[hD.k<89/mY_jl(RA$]i&mB9:#[Th+^gkP)ONtMXT3'(=Koh;tQ-A0GM6O5,WgrVV!D!T)mBCVd33IX(dI[kh;H%BPcDm!'1g-_7ha;(N7];FY0ua1MbnHqTM\\r$8%psBfcD[qAXj+Vktp6dPdmMh\\f3oR\\n/!S!>m+6.K\\l\\&HgrdKV5#,#,2793STPg86;71G),)8F0$Ed*gEL1dpl9&CBo:/,e#\"R[L7M(MA=)Y?c*@:Z=&taf$bKkhllW/SrJ\"U_55&c8V)J3rFk#bje@)aJ\\@p:=<2#k(-sq(/-RIkhK3^e0KV?b9gNP'Q4GU4tg:,_d.;4E@YpK+Sp=fDj<;Qe%NODnFDeV!>:5W+og@Iofj9p0jtqA#Zp>=2.:+mE:ns`>_Bs-hWp#;f,+k`DgDj;pV6hhG*:_<+S!Zh5fh&H[2X>F([k?@R466WJZI?Db*kZM!B6cUom6or825>l`#c5VUhUokKD?]WJZ1e^*Zjb0<'S%(&O.tSuUG!e0n\"XHjg(]d7)BYV$A!It(Wd#Sa<8H(U9r`WMr+8gWV;5ucXG,c%7BmWbDAL4_E4*)%G/N0M\\T7.p43gt]W3*?RIYm0n7I`huLFpZ+\\*U@JX4spch46-e!\\oRu-r(n:@9K@O_j9Da2f)Wq=olf_FmWC\\W`NSrCf+5tARpEi-Z(qS;7[;O;!G[I+r8$YH`!*gMMZI\"G\\gL]KeK)LNWkNue<,67ZGW[R?%eD=S>/2VW^K7h]r0=kBR;\\OZZ^S;EXB6b>Fk&]1?W))/lPT5o!Bt'OXOk]hJ(&>'O\"5Do;Z.7\"5';Wt=ii7X%eC?G`?L_Z#1*R\\g:jCq`?L^_R2,$tXu7g0Mn.!3[]dQL=Bfh_ZSGSD[d\"oFc8@-VA6*HRfXY&Bl8H%)k]n7cmJZdg?8O=1-ccmT_/c4*KR7'M/bZU(]Pqjg!c5pjQ095.:*^u*O;ILFMO%+)]pcu'##+/^M&39+ZlPW^J-rWd:eJ@6ml>8*Y]&'u)h-rI2_?]#cBr$b(>X=YK;b\"-[L9,SY@%1(=,X#*mH8iPkgfdZ4>DeD[hKm#hC@qPC7Bj'7k>\"YB$d8QPa)%&u9c_g^YA.4Fbs$guWb3?5YR[4YUU7=SL+Be7->#(M<-V3qf84L_9,_)GF0sll[aZ!L=pQ@a74,*k)F3lrBNF]2jQ_(q2259&jJq:WaVAX48a`#%-+Q\"G/O4>oEgPjWj>;BtF)k`1%.faJ,Eie)[E1O];+aS?rbhW?^j+W/Km_GGBl]s<\"62HC`bW\\Q`f%sf!0$*#B8hgds\"tiT2Al0,G68\\+(q1@6)-6eT(E;NUCQ26nN\"_/FNKqLL!62apM8jQ\\];*I\"?n=\"C!K:/NRk]W9JrK6>/OmE.*5ED%CbScLZR.OUrKd(cdPh.t[u=OS5%^_.V\"^%$9=g7-\"X*%rdVh_?R'2iu3]SqZAC=n:U]X28P'3ZbOgI8c;pq,1jm:KZZnQ4fhp\"[fO%I%c;V!Y6L3j!295`/3=q&?W/I*O`Mf\"$O@c(=%Aq-=JU0'L'\"'t&J&OPF?&h\"8'6'W,9;R;#*`7^G6&k\"Ymk?.!a(B942AJnn?+g:;ht+U62G&T^DQ3nOe.(93b,pR6jZ(%4W=6$O)&P0`V%T6Wt27mW7hR*SK'9U!7B*A)>.%f9?V*O5H%!,WU^&e.dEjfBL_?cHm6:V;gik0@86:\\:s%6B)PZ-[A:Ih:nh+O0(cY,+RCq]`]ZnN^-4f+IbmZ38>[=De7.7UqEN=I'BmD,=7g9]&25>DW<9pn*@,Olin]nI3Zg+G@%`YJdN!+\\6g_eoE4lL1AkJ&!fWY#RKh5>!e(U))5oP#M'9o?S:m*=GF@gPd[4?`PphBqq57[/DdcV>IC)7o5LrCF0Vf:ZkatF7\\7FEo1LW_Ef'@N;1::CpS%LqPj_!8a`t!\"-0&'h\\R^q0Xbd1t)1tC7/H,loGJoCVf\"?]]1ZH`#\"PE's=Ais8)3[=`UP(BLJPJ]AAPI8D5!&b07``Uen\\OWK@(1t)DV\\3\"/#=$>,7M\"9k/IN_>?KOmA^3\\+(nhEh&LNn\"565(`ENEW\"]_auUMBbiRdd7cBqJ'HY\"!c%dEQ,$pgrS6mH=$L^]NKYm&8,HfkHL,>7NB`H/m>acKH#jGIp/uelUnt)C=lO4JR,*nE3A@H-Gh0cE9hRIorbm%sZ\\kjLKp@_\\%)\\qN!DOOmIn;\\;9N$'16`qk5aIQi!@OqH6L`&)4gbe^%`VO50B_s669@iKsgF+AC],V93eS$C5_1'Qk#,J7dndO3,D,Gbn);hpU\\=Q*QZ8mnLg,9h*DK35RaR_J,ga,L8o^E>l9))H%Wqr]Z4G&<>2U2'[X5?dY0WA0jH2MIn1.oPMNbj1W:QG0sm\"adD$U[IU7G/Y@fef`t`AV0E(JO5GoZ/LV(kPaCQT2;\\4KPk/h[j6J\\YY9W4&jBRP3D35Jfki`UJiPY/\"(o%I1$k#YJ\\H[?1#^.?_,iY\"9)8A;[R;bn?&2ta3>-u:Qm*PpV56f:ts4bb4Z''G9H$1qa/frWu0t+g+GbcG!r=8E$aU>t#+;AsQ-Ap%D/\\ob?JF+_ob+eC.%G6CEfUedmLS?]``UYjGF\"P[C!D4k-c@3jf:ZfS6O.g+>-#\"[r6mGJ5da'*8*7?bhI1t%EO?QQF&SrK462V>[^dkJ4EYIQl7/B%,T8.Y+QEkt*,J>'OIV50g_`k4l]Ml7<.-FsYK:WhV%WQEg\\$t.\"jS9PT4cuWiimFK_eVH$L_ARRVXK=beT4KT@rma!OA$M)YOo?!A?c%/,GcqQ2C'&8VkWYV1\\.2794uFK<$#]B,l0iD*$/Q8q%i5b8=@^pcAP`1D-B/E*Eln*`eH-Z(3r2B>;G)bE1n&Cekr&bYO?bS'f'5GC>?MB;;<:N8nss2>IC7'?]ZhM4W-\\`6::u@XDiegGrM#^Z('C4lJBe>qM'g-^Rps`R^'hHE$%R+=&!u.:1jon`h?DeUS8P-pNNI/J2u`VQ;(sZ8N9:]PE[iU[\\`;$a9Ad@3\"HXXLF#1#ZnrJc5!%s;)m9>Yq3dqS'H7l)34N7lsgonq/ksJl4TYE[=!iEHEb#k:qWh6c=X\"K7kG(5[0Yl4_QmK-_^HqJ*p\"34r-FT'd!M9+`Sd3%Z^&0:+h\\ZSWtm/7fTL!F=6%Ds)R!0lr/?7'o5qX4K]@+U=%WgX74>2@2$#\"faVobq:,pO45In`m(PSfIKudDQOpdDe&G[,O/ITrQ9LK?SJA&[Vg3su2j#1Y:&S7itl8.E0DIbfP)0([qaM[!4#gX)^5\"A::3R^jNFHl\\.[W!ikHQROuj`;)Uet[nEjKD'JX5h'IOCc:/(a]o-p\":eh\\p%n8[HVP7/FKrn(F\\/=@o+og.bq-*K4Z!KXm5/hj0e%o\\&-6VCmhF3Rt37_!PjR_,;N'+D<;i@c[AQTV!EmA'.hiK.g]?$c2@o.GX7SSeBZpG9+1=9ue.'GLrNiSojC[?oUZfG-+0].Lq-dWR73K_qu$*Bpl*YX;(JT@gogK'&R#\"kp^Bc*V;aaUjLhI0MGKTn-PEZ;9=rX0\"h;8u0$i4X!hh$ro?LhFob0'rhZmmd_VQg%D9cK'dB`$s=C,M)WE;D:GVES/QEUnCN#m6it>lsBN9@Z:!l4E9jDb%H!FXDiCT.pgJ!ba'I7Gq:ZS6KDh%02.fWhhrO#r<6DG!:.T@,?KQnGN@-pcY0Db4&XH\"UXKg)L!lPZN1Ld_'KJBFar`#`']i8h/46\"'aAss._AD]!Ck?Ta>M';?_0<*mIXiMJ45>BKn1ac,]#,\"5O:6g2g$aU3%qI(+$[9[:1)'S]N]^''aW:f-9?V$0fh-V=?=Y#B6S$6$3e0CZG1%OU(>6r]\\!`b[9Bf;oQ6)sMP4.T`qC9$C05rPlb]u/YS]#fa;3_\"\\n-o.!2j9_&TA\\jPbNV7$NSI!LM#EVmI>3*9gImTHqm]#c7IDjRPeP;2i(hYN\\OQ!<]uZc)cI',22n72u%JK\\(oK2dDZ1J:B!$JQa>QcOIjV0])[q%!7FpDG:im;!CG4b&2V&,#:'M(6isT@KCD,k!Wp+=JY//k[t2=2$N:_FYY:.&J;7o*i$*,Z*XJ8:$B;j=;'=3cV\"pqN2hAb@rguG@Ac,)kL67e4159p5CrhK:#p-rE\\Mho]`[fKVN=nrt\\6f2Uro>62N_FCE4SXmlkc\\n4RO&=?F6):UhiZK)]t>kggt&7:FXuBVqaGlV-U\\cAK1W.E#ZJLoqD-I!Q\\ea7IDE#-a;=ZFjT2UP.AeqmG$dJkGNA:K+r/cbp@cj0r>%#)Y,,V_\"nP*=W;$rKk6Hr*X189hX&2O]NW+R&%Rk_Ud2G]Y!tkF.m*=QhlK&sL/M=ebGIf7\\W9*<%Z(;m_C.Vh?([KK^F3J(,ps:E$&e[Ms?k_dJ6sakWb]I3#o;O3n2`ED@//n.8*]IlEPupTLJ%8$,DLZd*URN=Xno2@84o5\\ekf7gaqWAVHF4.L&gE57aA+L1a/6r25K+EG1q1B3,W&o7ni1WLC%lB6Z>:qc/0E:OXq`k,YrWb[35&g#Ldg)L/E0.cD=jqb&GXJtJ@FjeG8%iG+Er%k^\"J0$Pk0pu(_(#=tI-CH'13H$i3VN`cOrPNJ-kg!I(ifBg=PHd>q][$]/Z0sKj#hIT>$kVF+_>@\"$FXtK)JJd^nE]W,p>abu\"hG?H)[Tkl*;\"RV%\"T(+h2Y5Yt/;>D8q)Y?m(Yne:T'dYBM4hc27ac[6sNE]7H>mEqU1!`!53IcHDH:.ONnSF@Rg&lmMkmZ)LNM'e0W)!C`VUJP>Vc70JMi.)f;JPsE6q'si8cAG)7P6.SZt.\\Hj6K@:B>=(rFK99k0pDM_Sg<\\plCrRP-dp2>KgY&2?7W>UC_M[NKjY@n%H5/0%1No%('?PUYI\\^k3,>T,Xl26dZo)4KkZSp.)_\\>gA^@^[%f@TS8gO(Q;(p1]EPsKC0SGCIFq#U+p*2B7H6=m_^>RK8EtAE3-age,Jd;jIC`lCUPKomYGtg=1>t9'0@oc64aKF&ubUR<\\3O\"At!.k-tmpn%u%pB6%+Y4r?%X7hNVe^*b37V,gBKhgs(6r69RVt_QBto_r^2JMq^;li0L1=\"CUn-^+i#q5#hWK\"RpR2L*j@Ae\"eual5XY+u1+eV!7\"c\"dkFLpa@g\">\\g/l.fd*`qTZJ7U$7!2/f@gkVE\\W/h'I7lCgp6Kn=G:\\RbNd)acC:`/);S'MeO66r?ljJeq/_.O=r;\"*4\"D^)67H?5i`NDY9kMJ4u<8\"7IK;Ecn?p:2JFrc@(TG7Hk1mY%I`Mq1Xq^:%P!RMdp4FJ']rQbGLFp,M=2rAUP0ZR;On\\$&=eY$=7:YJ*:HQhW*iEe<7E:^[-u(S^ih:;Y+WQi=QaZnpZ>L*ng2:;\"CJ)$L`H:)@!b27UMf9Ps+LX6t)^Y7lBOW/o_V@25LNR9pa\\.Mi2jZC.@kXPtGs.'(@PI>A)stf1gO-YQ)0-k13'uO:',)!F;mQU6FJpsX\\jD0\"WfZHnX32X;BecAoQS\"cQ@e\"d\"BIPKE;:O7ifQ_JpoitLBpdj5E0@dcpFP+38/foN3q5%::Wn[9`ej[7g:Fd:/pPUVqI`d]i]kLSJ:s@$5MdENjB(!h84MGFGbkqoU(-PJM-`+WD.iN^;-tEAJPD-?9Kc&B90d\\k^+G<3uGTW1US2Jcjo.[S]T[FL7c=>;a(=@L;)^Bh&^\\7Fad-%\"rQaD_B*!qLG[?3M3rmETus#TS3VG-Q#rfCGlb\\9EqrZsg;H1PmE7G:ID.FuJIBbM/D$kQrCi-c2'X[Ye9Mr\",f9:e1Ad;5/pbG1YG+3n$c97u]`cJ>[bY1Z&;`61SRSHB5_s7)_eg1GC6a.?MKrV`-uBtL]l]5F4Oj`,]^5!?PGl5HH#$FS-fH)GU!bhut/O4'l&a2EcLA!eoC']did?@ms#^EUt`NeoXG:sCkh(0.W,F!u%/'4oN0BruOINmAfnSm]!eE1[&APpRc%jQ^03?^`tAc&Io^esDTTX7gFVB[#$7Hf)AUqXUNXpC7_bD@?p/,CTHJ]:X/]L%Pt+=BDcjNjSiUd7jlB0.c@pWjW9H(_4>o$&p&oFE+NM.2Q)'CpZYDPLj=f`(UCpIEoOj59q(i/A?H;3*akq_IZ8m*,#lQ`Sm5)6$YRp,/\\d<:cbUl[@)jiFp%YP`kaH[Wc*2]B?9DD8PDKO%pcps.DMrns2$%:5g0AADYsUPHAQZ?g5a(T#?Fi!U3&Bp#L+qJ`T+J\"lKc/\\A@0D,bg)CK:r,Xk\"XWrr%*(Phmm\"DqPFes%M-s)$B+Za0g+L_kF-?uh8:>ZY'BM-1AL@$bm,^6G3ZGL7TWDLAUZK48!0\\X&K79N\\aQr^]\"bT3pY']V9Xf34\\s4$G!JM0NGI!SXNGCN=PWi@4,JmnAgB%bNm(eYQ(FQjN4K>&\"AYC9lU2klX@@0HCFX0b_b!>K.-Qh_op1\\Bfs:CuFfE-SN73u[XX$o>DJVEnGh2g\".RC&H,=pXU]'Std9]GSdEa5J[]IEtM,j\\FWE`A-M3`Ao*`17nA8_6?;ZLY!)&q-F\\+^Sia_@)TC@#>Hi>1]GWd/)I?`7S-O[p5mBZ-6AZS&ddGLoaU0Zr[ZFAD0b9?f?khiu!Q;A^*@BSn^i(>be7R?[[G,2#\\bLq[F!Y`W,p/@`)\\$>pu+00OFlc/dj)BJ$g0(.lJLh*k`M_?B6==Y$^u#*QVh6;:I,rF(E=;4n?gF+e:>ip4nFPd4g&bLb:C3Lq\"LK0cW'O\"3p.1@TA,*m+Mts`C]-o5+8^!?NUWQmXJ,Jh!Y2WRln\\WJT)K#X+Zn[`:k#F%T5]7!21T3)0_kWK.=7*>=?k*A9N9PKkBu2Y`u>JV+/Qbhkp(oP\\?&hGFdQTe@Ma/:3,.A)VOSd!9^L)jh]XUq'B,7&oe,'m_WoqD?E0B0'=h>IdWmO%q?c+mtp..HQs$<Y2:,D7l!JYPNi]F`Z*h09>LAK_t.G$\\K=nIY\\X2uIlC2)H#mDF^:Ih1(m-^Q[)ZMANceU29%[8N6Rr0H*FE[[4GX@XG/(o5CT&XD_-_16=PpgV3MGuh!m?aD`EXLn(GL8\",?tDCI(fsNHndtW^#po8U5=9@!@s0YH3dCCu#64]%>=nPOn!!B6riE7$f>349-[bZ$_hXH>7gGl/?_9IV,)J>T.B,:J=uu6Ce'a:]\\!\"h],_:'m,5hr@qWHPL\"C\"4hOLkV5r0Dusjng6-eBBe;^$\">-Td'Gq9;)#[6Z>?Y>-'\"+Z'[C>[RBlaEW1D*UV`91d9uMF3B;T/>s!kRr@md\\-rjg`nsTt6])$+iQS4KlKTtlYg$-3G[LeKM-h:5Y0_L./dVWT6/1H+(7km:rr.:fPdN.T0:VZVgMPp=ZND7).rFmjgrPfjql?2sOW$=+.PB(c6Igp6kFE)7R%Hj[Nb&+uj+j;l!dT@8fiEu3Vr3ZLej(+7f'X-',RginY*8>/ld'e7B:eNWAuE8Vp#&1l!8VTs#f]6n#D*2*AP@Xe'3`IG2'j?Df:SV3FIr[cgZ703r-cBKa&!M(LD,HjZ\\&W:a#]Y!HHS/TfOQa.!>Wc#*uJqZ<_btn.\";'K0H4OP,Pk9J4j*2m]Yt,t!$W>a._H3f;&=N1)eB4*b08%@\"_unDlBW2rs+JC8,YPV[`N/M=$kOFBcIB\"b45Df_9@To]Ck?n%,a=KNadk\\(5.naTdi/84*0[JGtP%^t[Sp;$2WeXGB9\"\"FI;s/LTNthcjl]1DrDsO)Wj\\G[LE:ls+1nG!^[s,tVX-Ga'\\%D\\cY[!%bO_@X\"O3B?20@.cTQ$_&2UAZo@b>n)MtJg_1MD26dE0KB+[1IHa5mFQ&Reh5dN*G1m;^8P8f@85c,O$\"uYV0SUJ>0=lWT1`NT0.e3pjWRLi5;W4kNPTQ4ldP1gYi!e!2;dQ)nU4Z468Q8i`)GFhm-0nVZEHE[AHqm?Zp^Xfkeu.D3^@\\,IWbB*Z@Nh/Ag]UK-i5cI:S>%re&5r3bK.3\\Z%)R`HMER'KQuXSq\\F*h65D2+HE5E9@qEJ,hqqIrimr,Ad*C3=i]@hSnr(jb\\J,,8P]#ADjEqe6sKNkqNn?10nqTH=6$Q#!MNnI`9+=(\"[7>DKtVa^L#`hF$2^I;f*k5TQr$jIAn=ScI`q=>?5VKJDrQ>%D-2.@EME>P(tEYnT7G@0r8783K^OQ^u5qQa`qac`6>n5\\CsNmIm6Mdsu)`Pj98@:=IC`5fl@M:VHl&>@g*O1a^aE9hHtiitT&el(Yh`0^t%(cb8t=&]=?#/!shW\\'+n7&s`^K0G$;p>.aOC,7qn/fQW]o]bI/mIKm[p*F5&a6.N6/s!\\.pZ3&A8af7.XZA24II2Qkj\\soNDlfEk\\'?pN^81eLk4)[8oR1f8&'M3DYF2eJYRi?\\C1EmiH1/pB$(WhMCqB#')UC(]+5aJ)kLc;uSVIX:-I88EGJDQXAYSTZrrO4j&Y87(3!Yj$Q5,7[Yq=-FH7djV(@1Wut07Ve9IZEE_UWIDsAS$8^dY,^k>hV)G.4)#fR\\6cNs/W>S^o`>Y#(8eq\"1\"Y%F<;;d?PZf>.nA<Nn6]WhhTAdCF>1boRpkTO\"6.IL\"&e%I;,\"/%7Y4Y6JJqN$cH?E#9YSFP8Q&Bu*/8O&OfUGII//[H3sE-iN]gr$Rf&YHC((I+_.+DR-rKMW&4;Pn417b\\BY)5$bZO,h-Y]K_PuP2JqCO]dp=\"g$BK\"q-Z-kfs;Vb9=sEXX1q??]]Oe,nG^rm5q/)l7D?1K[);aOEN;,bbZ@DD8H4-)>+3o%a$)@d.MCQah#1OE\"s7!>ZM*(@WNRm;s)4Pa?&IT^q9$M@)X]D;^?DNVj9Ua+(Lgm,mb:f8FLc\\m(eUSb`LqPJ4Z_S73r19C3mg_=4nt5XMg^]a#@i%2S5qP.BR51:T(XE>JD&WmjZMjl-hs8q*Z)A'kT-f7RW(scmUKXlI\"RIEbqccQ0iPd*WpJ*oeBF44t%Rg]^(+X\"*ZoZBacGQ?5cZ[Y$DYUeR?W6\\u&iVpX2t>]^b$4^m!$PH1kQ7/6dJ+@A8hCUS,5OR**54,jie`[]Mio1L+lirDjRG4[iV)[\"9^,M9gPq/2fOUd.$#A1#Z2?ODZ&l*LUFLK#EK/R#jrg?AV41'8$\"HUrXnn8oIS<0YL9VNj5i0bPS.5lhPGt-elreDemgu:EKt8k?m2<0ZmuK1V8GQs786/PBHpiR-t5&/E.?pZJRGK$4>2W\"P.ql:]cCtg&)Kk3@WLN,pndq7]Ii*c:V07b@dc3`_&V?56'762p\"]j$3%M]1s`J6P*ks#8Vpk<`9AInTcgelhYqOkjY<$m![s1]r-Whg-UVWXO=!*Aq!SlZ`AVng3(LIQR#^='@@cE3oA0>f$cZ7Z\\Xsj4kPZ8[G'gt89t_,!(g=9[cSY\\BHODKG@MA:MVZ$B*)ctM\\)'._O8oOTfd&O)#i2-%6fQk,+3eM@N=jG\"FG=nn0T!$4cd&a.ou&gM>DuLB%/X\"?K1gn1@+GYr4Qr0e!F'U8a4/e)L@!9Coi5_(_qKARRc7^^[f1l:%t!q1SZ;;edZA:$=>3pkXNjIf4!g`Z1>jXJ+k\\98R0<_WXhp_?n.`2CP,t,$ibqQEGFY+Djj,TJ\"Zhl4*+P4eDB-e%,J)#*Oj2p!M0W2Kl>p'I.*jQANKm+*gl3FXTOCV=D^j]!WbX1V/Ti'JAsdkB/GH3Ont-luicmcFN'(B@/:[D+\\lYH1MYbaml4<&*4SHitFst%9^tXU.5uI$:(?me+b=NfShJ&TYaj+2fd+m&hr[*8/qX?\"VrH_\\A'I;3Wg^hHPr2df8A\"$bV(l)bC=4$6hJ9gFR9s;T@n2UNLSbPf_KuS7aUEfPGmd?4YLZHFW*NQhDH.oq/RP=g>=H)].*/*NHcU^HV?Oi=1Qf7?V0N#3iH_*tP=7*4'.'Gj4R'T.V=jq1ja3&Y;?X5*l3R=MP%#`>4ZbQtD/491qp6M2b5$:5B/bF`O5?F9[MUL%.KKE'bspoJj\"aQ./1s^W:d$bn:QXo'Q7XZ3KC1b3'7/XMul2D]3u:c'JB2^ILDODI-VZ`\\kA,ENOS)j[rIKh-*$bX`IN_Vn%gF_cE2S(O'65ZhM?-nqFc'/a,semTAXU5BMUuDRZ\\a]$=G[;EW\"-B#k=ch4D2uaBDYNEN]Q%bLm=fH7WT:T+&NA[m=LHX4RDu]hYWUKLKpUW7-G5\"7HU,KoTp57%ccMX^jd@8>'Gl&J+7ujrBL58W`Q_Bd^U&7s^H-QX1uN2\"DL^2gqaK5O\\)(kmiQ;GBb1L!H#6qfi)HgjOagZ`T\"]]&@h#Y\\o7G+']/I$:mg#8+)[ieKKLZ8pu2R7a^]/ER>VNs8rX6+E\\%K5Y'S+\"cUD4dY+575*jdm@Cuf)9Q2%F/XrH!'kFac[:#FdE;mq/9K#tQE`_P1CDa[IsIUBfHrEsVgmGd+ql`t+tRCK#$A(r<[H+=%3D-0UkP\"Qn/0\\KbgE:*qBEH._dZm`VdXk!85m=5Kn/Cl7uf05Xl]ZFQBX\";CAlB#U\":cI(^[k'*lBge<#!Tgc2OT:X,$'F!gikE7X*mr\\E/t#139HInG#!jb+PXVc^F6YW@5<=bTOFKKD6FDI\\>Og\\H,Juhd*CQG*tbeH&UsieP<_-ICJjsPu5j\\n$KI+^cgDVB\\fE5mMWR<$01?d5!!;oTl8Pbqt?Ei?A_Oqor:)e8\\P(ft4b%.-GJ\\=Xor3(3d0#ej=[P9;XI4(hZJRuc$tMU8MbJj0Kl[em]I(q%KuKIbXVFiP8cu@(G8&X,X>mM,b0c!;Y:-tK1(\\D2tcLCC%R5+'c!3nNugH-`7WJ4\\7*)&(U(?cK\"CBfm>O%RqkT#*RDDCNGcjD?+H+kBU-9rjp'0MinG$jEdl`LJ_=44*H^r/P1AINrS-r^NJYsM^[tgN?rQMh*QEFf[pM(-l.5c(]c+seDSUq/qMqUqFR&-^+6%1QA6Pt9[ejC>P?>@N\\mBb'T>?2J)ch<7K#\\ZWjmeA1)'Rf(U.FlM-`7h;PY(*b4#YM0t6S\"f/G$H.lHk70npFn-jBot3^MUHje+5QSnl`]QnOMW+(\"Qq[,g)p\"j`1!HD-pB858)\"J+VpHJqHS,J+CPhX4VX&[aQj>3S-XJJ.@+8V`'BpSidIt^/4HA6YAH5rVB.GE$%Co&/3ft!DjedfH?>@Lj8^SF']rG0a0m)QPl&3DI#_b7H(-*uoR$1lGn>Iq(pO!`?$>:*$nX50`*bj7fC41#MF60oO_^iceXl=-i5'Q#E^(^Hg:7\\_!_492\"B*3io0UFl\"=QoP>#TBcRdt#M\\+^-%R\"=`K$Gs?I=nqeLh`>t3:f+Oj#Z^)#^C8?TP%*p2OBTt?IN/T).9;Mq$/WeZ::&om9_6&>XYX2Z9U;:N%Mi0J@,fE)j>Z@XT/2TJVk9C7hi6eZ`]FnG)Ihb!OeYLnr`'_%8j6+f%YFO3[YS`1Q\"hNBND@JOI;q'k]/OR.=r[LVggX[u`/<)##PRH^eb9!n8Eco%f4fb/ig?NUh3guB2YP>8`Nc/N(Fg\\2(\"330VL$RCb.*)TsZ!O&jR:qEeonA/iBR)e)ON:HS^>d.ucB)766sI(k^R-([Ffo=ddq0QX3\"k8fp9#Rj^8i)emTWRGcJ,>SqLM;K(0!)\"Uc(9MQ'36;dd\"TR:j'R+#s_/th>e%kT`@]X@r\\fTD;3iN7o=`L4,;j:6@JPa]j@TEiD&iqR.0=uE(=53XOl>>s8Oi_T%:pLDl71Ulg'jpji]`MXt?))I^X\"MVA>C3XfpH_AT1N(Ob^I?l>00;>)iu+0@*\\R\"QLJcAPg^'d2SU>[qKm`l=`oQK`6,Kr\"ndn4UPMpNiV*=0X!7/3#KG?8_<`(U[]e8I!dJB;^c57/iJfraZp^=]24%A+!d)gt.8]_UT=>$q;5,5?fFT&C*6Dp4\\1fO/&?.=Q-j`s9:St;!d,@gX>*H;V3\"$%'d]jK$EJ^_dlc<<&<-'iHORt(/;7*THaFOQXdMVm[,3I_?aJC>\\CVUu]d?Yj2b;5&=o3Z`#W]['shYo/j,lp$V@)A$^)/.472?*_CU$V'$sdsMUTemOEAj;'W!^JBjq5hf_*A3&2gF_joW)ksbH.(!\"F.)R3jjckMbFAP>d;)t_K3;hH/oG5YcQeK6SGTKPZfkfX8\\:$rUWPsHaWfff^5o1)J>XKg5T]ZJ4=,QiWo4;FDdJ1B`5\\-/4c/7-r,r?seDb.90]@UMW\">a>!OQ$mk?2E,K=SN&,oV\\S*bC*i<$goYUIIedUaI60USQ]VP*,\\9;:9>rpF%dpH=@TC=s&uP!='\"$cO4B=s$/]\\s&WZ&pqaV?:):n3t[6U/WNAr$M_(GM'0@)1a6_8u.GW)QaUn%'D*n,O\",lp$Vn0lRtH;a6>D'2%JCMU-+NS,^/;PQc\\o(0l]g59BU.mf1&&OXKuTO@'&XNqY^-\"G^OnnJHOXRodT?1?!)5gqP[,6f&>/)[H\"@k]Cm>;;)\"Ym_<)WK(AHTcHYLTbF-HB+\\rQ+4W?a(Kftlbi?.XS[QEHO/rMqo2;]/cnW8UbRo>XncN-l%P>u4k:pgr:Md;T!E\\R9*ZPcq2$Qs$kR=_RO>*BS)-s.#TKeSWcGRWS$@%rSFUX4Sfa=l,M^JY_kZ;$_1,[6Dqc+!LW@M5J'/sqNkXh9bs8J3=!k@de@o4c*$FlkjZHZjP=$k1a]qJHafqd4J-O=>5W&.UCd%gMU(^D!WtTk2TZ0><(sKD!j$%6qVF@l64TZ?,+T'l2#PBeui:#nia\\,hKOOWNaIA:'X*4X83(u2H&_c0Gum[&4;d]7f*\\iD*HlVo(+/N?i^'oAZZ,[up,nAJVH1Tc2G?'84')jOjEgH+BNlVm$;bJ)[hZp&n+jp9q&qidohlIWSt\\mMcTSfu^=4a)h,Et-=u+$Ng;H(#uQVeNtC1Y1p5G3X,]fd:Qq(>?nREZtPMh:5)/%BBTI+:=JV)M?-G.)IEq8qg2QZdD+j9!j[kmS/?&oSa(oC)Vu]fRf9`k>f:M0Oi:/P8piLCFbB4VD2j9DZ=m#a50bLd,k^7lZ80t-e/pNC\\m5iF/^@DZ\\M6\\kuH5kqi^jUKD/`$3T?UU-bo#Y$Z`/?q)^`ln'l4WXL%41Nd\\rp)D$C_@__,T:4rHS=R\"Yt$Gc7D1noEL/:SEdpW=q<1m)9q9[5S'3JHBH^E.gbE*9]2c?lE.7TGYc@4[a6EHDBa?2Q]PYi;d'qCQ0+=TrRoQaCN;TR>?EeP)RsJ1c1Ee^7X-hiDldOSr9D#UX:)%($0&(`_[N]8mq0+%PDE\"?BW_o4=&f*2]1TYuWOi?\\=Ng,637q*VE;3!3l!F7p7kqZ7KYnSp]I?=<.YL0d+Vi_.ih48iBMG\"\\tPO'a:\"!5R+M-eb3gk4Z_>EGjL_19OaoC]j5RPGKI\\1LT_V/Ou\";b5CDGBSiuE<`F37XB:dqbiUX.L>')G(lun\"I3;oT`D_k7Pc$+),9CgA\"Z#!P9J,rM_)l2/jP@l!a5S$HG\\b(t\\u[;,NQ?qhl-#jg416e+.7.aa:QY8nJIV:6(#lt`uAH:ru-EO7s#UZ;Z/W:%?YP^KTKDRF4fgJ'/<\\RX[@4/tI5h6FMT=C<]6)]>5)dd:bC_!S+(5WaPW6sj[KL&?JnF7^Y8]8.RfJ/C,8BH%gPIC)kj;H1N@8(;5\"\"bloNR!d&J#n%\\o%Hc)VfE;_1Bn41^m+Cp(Zj4LFn1_eBF?T<\">6_mJPT9+Wdadg1b>s;?Pa][T4(U+<3`sjN)DWZJpeO,pT3_NuXsLEBDfZ2OagW^Q&75+Te=0\\pFc:%4H&3^VMu&O'H@XIAcYR@gb$gfm>3B;iIaIW\"+d_AVZUQSVZuN:kS_)7]C,[=UAeKn,A_h(r:?cB;hB\\,m)Co\\=+U2L#@q7r%jb%.+;MN(>1*SWl\\1PM.u%H\"r$rl16ak.cL'P\\1LEfc\\`QC(TW7Zkr^TN[28g>_l]g-\\1`c4NXn_kJFC,+fQs23&_eUm1nB1)JVFt:8_E:;>%[th$?L[]B55bHm3$ijt-kM)(e8J,(j5S`k#VMc^MoiJ,.[d[QMX.tB7i=IucKe\"VTKfWp4&F<4<84dNX6nANNElnOP5_aEQ>%C9+gXVEU#$4UHb^H>tReq)O:]j$eF(\\<==5g-tmrF8pT%a,C!+]V_Uo$sWA4f6l-4hqZ]1>UQMUY..pH*l+I_]f\"g:qqT(%)tsVRk0?j7PQRnbA]l6H!)#JNge\\^A>e73PC#un2rqa]'RNV\\DisD6ZfTU44A5+f:tm(JLa$acb%`fBr>g@#YP@Q@_X3(k?KU,f+oU[=LT5serp#%f.P^4p$BWu2QCtaR/NgIDdi=np,(k%\":O2UhY=<:&n94NdH'Cu*cbD]Z`.&:r/\"7XooA,$9L3rH2\"V#n128@JB.^ZB(%><.#NRjsh,!X']727RYhSR^sfi3QK\\S8M&?B%UOL*AG-@K<=Iu*=?$*S.b?Pl#c%%Y`fBme9a.-%pI1fj'8:MRdq$r[MD\"T[4e>c/`I^P\"qkG^\"Y#`N\"7+3Iif\"bT9-h8uPhg\"5sJoCG5jC<5C&IV\\Lh]pui>EUq&n@7'P(;g^C.C(7BqBBlarf?F?bZgn*,M(fq)'5rH3(6^o,u]Vj/;9VFJ,hbP%!rier5NDG7[VRBIaacJOX,lL(`mFmQ-q$[`_nkL&X;X.$]XTL8'HX^YIG+PD1f8=4'$WMP;Ud\"L*Le>hN_LN(dec6P9Bm,,[=G7\\WcuKG1bTgl:]W7.laZqg;;qYZE%W1#]30jbbo.>HUOu/)tGnA\\'CV5'(8s^64ZXZ^O,$lLY\"pXe.1Pr5J*sGC!KV2S0sLT$#kg4_J8B^J3ooh+g0KQaVFI=SCF.WGc)jp?L'p$^[u:?b4Uh[Ut!)bk)@:]Y!_1`!KL'Cq`(6[2tjJ]gu8coH!LEP6JX>R6SqF]<$\"p8tKmfE/g:;/]t6.fH$\\jOp)lS$3^5:=/tcI-+[Ca3nnNBZjR+k]6qiTVqi?n:anfAPS#ERE%]Nh5-9u?J(\"3.TkCE^Pgkf?3DM&,8FO`UCEe!f>(EQ@S0j::Qk)q'3LPrM0aVl&R%KG9V#!^BF;T4PQU8@*n`4#SE]RGu_gdkt/g?p3Dfm`n8m4sa&$6<_5l;QbX_P?SN$5u?5q9Xi3j=j`^\\oZ@qmebK_ZG5C;ia%pZ4+\"4>PecW^8Qf)FOGooaa9.GHS>5n)3FDBKlrgU_0-p'IREjdX0V*P2*S^pMft!;FDKLlU(:pE@LVd1Q%ZMq\\^nB(i!Na`h==5]\\_aCm8Dftm^Z-/=,G83:JB\\\\KcCOArZD(V+FUd?/A9Wc)LG:S8mCej.,GN8XCJ+ra^0fe-9jV3;RM4EMEjS[1OB.1Cok5`9?#jSc.DWBbA?N9)4YH4E7pR,:LD\\NWOUaO)@@50l0G(ZG/^9L0ZXe=,f$B&='Z5\\J9q\"_i;T&[*^NeJPH`6lVs@E>EFX!8f:WAI/_kDYUQQ^!Iol22'aJ9F5L\\&XpNeA:CX)3]*\\7PF+,*!N6_!PnI]/\"%CKVbbQ?0eH(_>?/dG4p_i(hZoK:kL4_SI1S'OBsMacXp%ru]m5$W1q_[BFZpgDK1/gYKlDKH:7b4\\O8e-KZq[,//^+IsGorEP;\\&9d20jSG0Rj/mZfs(g`uF96iP&*Z8Z5,>o1TFM\"F5$UJf`]8g/@hC5tU/NH#@,FCB@)\"eP'Uk]UU1,*&p?j:K603OE9%kiL3k4[e,rW-EirUi!c5$nlUB8JfGO9k+c$\".K\"GsIDU^>'i;7>._toi+];1gA;qig;IiO9>Jnl-)\\3G^1sT341nmo6\"%#9f8-N%L\\U_,,r#mmT1OWqN8.6]iJ'4dRlVq;Sj7/EP'$)S?q\"'hXd#fFcCiLP#2k_/7);n6e:d\"cD\\2a@O'QW<$+\\WV\\(\\MI-!^aGH&8X`7D._6rV>X*\\l;rVM-ieX\\c&SWHOS\"_5-RVU>tl\\ue(=;iE=J]sHG#36SOOSXu3)BZVHFoe[qq9fZ\"J3Yi;(TH'[6N*%$]d>,\"f0[0'GI_psFbm6&=Z0^DWk-@6h#@#cr`Sl!4RnpTVTp-Ak9?L]\"H>MOmK9.J#8@t'kr\"HhLWWj^rf>t7I:5m(PCiA145'k\"P?cW!+YY[hI59i@g0Gb;'^[s>Wq(_0GJ,lQH%Ft5smI@[dP[$oB=W.jk$kO,GG>(hDlrUnBs>1UaJ51-RJ2Z(M^/+R#H:oI!T@W@/%feO<<.O9a9l=]V`U67lnJD8D!:lVQ:Q\"rXtrR8Pd_Cjm!;'MXs@J4tBL$Gu8,E#M:PN567h/9XSmI704Pa$tF]m?q\"FjW#.,T*:gb_cA*9?gVC`&M[oQ1i3S9/s&#)m2T%`aC?'^(Q!#_WrOp(JE48d\"B:-7'OW&:OFbITjApmM15@U.\"M4AL;Y,AF-Q)qlU0N:4s>&M>TL\"ZiWE25D0f.Xs*HAmYp\";nrnf3p\"]A$84`g=/nI)Aa2^uJgS\\Nme'>FRnLRfY,]n>gamZpaB]W]!]\"iqbcpAV=\"uu2dJhC`1o)p1Ir5tl8g9DTFhf49`C2#usGO.T$>?X-Q1?LL<@NV\"gD(-WABWB6,VOduujO\\Y[Hdo.28`q(;WF/g8SYfE(-bYm/p4Yq8O53gGXs9TfR^'Ve]'8kc>9l>NA.Z\"(s1kDinqYW9&Y[\\$>;H[SI+q?=W4kZroM4IL'2,8'i>L_V`@i;VffPs.+b`A/d5@6BniMVZ`g;^k8pXmruNFpnTYh:[J/)t[/Q1F=oB>Ui3o:\"->OIFV&)j[+\"M5aW$N\\N3uR+nFn<=*c3dhEcA(+,?hUggOFO?_R`G^q.6k%&P'G=gcs3DTfA*j2`BT?J.^\\(9(>(KG9%h[cL>rtC@E>LknD/p+M)gcKK+T:+3jh]CSNbM/fC\\+G%#^%Y7RoC,'6j1\"`m_2[69obHrn](+.V2;iu-^&O^#QIts/3]i\\9iY*qT@>P.lP\"E5[96-j*5.-MXZ')l]9p/fB'CEbFp`+=nCAs+)`3\\G:76\"%!rEQP'0B)[W/%)Bm#1X^!)f-fu8hC#k/qp/jnL$fBmm-_BNs:'K%VuV\\&F21LqhrESOY\\1.-34*82h.tnR\\7dtUjj4EW?MI/`(oe[GXG%N1/oAQFC(`;n\\Ul`D6%URo:LM8H8nJK2At'oNIH_HW^s*G,2,jI:?r]SEqR;,k;Kc@Z#48%3TloFilIhpBmQA:>%6qOHgR/&HroS9]2l?5O\\3=Jf&%scu0mif?Nm0^\"%W.iGWSaT/X6NaEeKEgm[#ADWkT*R/PVpTc-`cUP\\B0:/UphT]X=l40%5$UPR:?+J#/u@<\\YgP5@k8h/aP9/]-(XeoPL?KJ#PL0!V3p]<3ao4[)e#>Q/-Z]9@^Z(s4bbg*YC3WB's7h%m+%:G*((nMHkD=/!(5+mPC[?^nmY6LY(*Q5Db/X4atY><-S7JEHMLXSS,ZYNqo4Meo8B$@sX3W8h);bc/!hoahc+\"r8lZuAp'%eD$`?W<-qlaWsa_ch6JO6PdFG'7inX4[ck]5qiF,?5M%8`9X8boT58RX@k=5)AW`5M]NfS4MtL1@0iFUn]0-.9(>MYTcfQM>Ni=4#gu,R&O^db^a;M',M.$%Pei9sU=/A\"C3/Nj_Nt[G)]lL;%d-4ItYMLfq15=pn'/kflo57db@KQ)N>MWlnGh1hMZ;?d!#U,*aCOcCtA2s$3n+JmfP&An$5omMq/C&5:NFN@nG%o1%Dg[21*T%;6Y2shJ#HI2QqGjK\\@S=MP2r0Zjg;=>ii%;feR19lkH3-Ta57Y`K7MpJdc5j[XK17?Po9X*V`SDApWF8=Q7KD(j!Ie_A(j`.?.\"EMKY5`+Y^Qs2&j#Da@6k@#\\D6ZdseXB-GFE:c[huGSQ+l-V$6Y.4)iK`Z\\n_f87%n@2R&/qs1Mb^0'(lA^A5c\\DN'9kd]KQH2d(,4UP,/5C*S6dILebM?hJ?j]^:roSYR7gSb#77)bkER;_#\"2>97K$_7Op\\9/h?CA\"Zlp$:$e$*&,F/*>nlC(\"*(CK0X[;ol&!EI5`FTDm5(*gCLY42M\\^*6^/Rg>PHrs1t$OCd]K,_DYi,9U7Fe%ENa?MiR-\\-9Kk`\\mYPp+$qdGMBFNM70^)W;S30VW`[)6J0#oBA4e;bs5R_J:L!VqsE%#$PR)%Lg_Qi-^:-QD*k1mJ4LFn;Tr)g]FIGD;@p8LWsVpH_7-[i_:jk5b/2!+ntYA#64t1B#b*X\"KD9d/>buUPI46J/*`!1k%JkJ2ipi6'0N/!^O]pJZ`[oOb^Y\"_7ESRm8,=s;^\"5pJegn&TutYAMYi(6_!H-tn/DB7NeG2-NM1RBiRRb$h;$eAR]d.a5hV+r])etV[e^hFc74W.u\\.s!6jK?^Rhe,]:?Yi..F)KTD@_jlb?^hQ+Oc@Z^erE6%%kmZ*WTaDV*nAci\\3!l/\\)(1oeb7Ju[:\"76qk:=GE7nojtY(MN's1Id@`7?B=k2CFHe/R.#rRb6PbPJ\\.f*Vg#$3/4%pt+iQjSEtBH`;hSL%WhUpO202SHfc]J!n9M9JEbI\\ZBF>YrG]3':pQP?IYdk'qDM1E_PCg\\^^*+GZ)jM%$Iao0`lgL7^,egV?.g3+B-&KMYE.?!!Y\"\\,tWaF=?hNaF8000@q#`d0D9C1LTm`g*mi]L0^GO4nmga0peR*<8ALirUWf?ac>*U(,G10hcqL]H:N^Nd2ZP%RB8&fgq3gdBY(<9+?i;*5AcJ9OR)4&7PV#UP[r_Ct,Ba7\\#!5]^*>EIL*T[A9$(%ONqEh?I5%emfE9M*WF;U&r_e^8!8g8pr9$5D_fm&d_g$SnTKZ3Eau(#d`8HIU[Dc9GpN!V[9%%(B4X&0)[c#V)dLenhsIH/us;$]PL-P>j8F?hqK]+Tl3a\\=.%m^Z:Yu(t6QmDnL$?\\+.Jf'9/J/c;3M:Ma\\j]eo_7)aWcTLd:`ORL?Ubt=$F%ho6PMpJGY$^kupBlD0tOsEat`Vm.ptbf0Lqe93Jh3NYcV/rW7b6f_3go5=+)$+tJtD!N'ZC6WMt=7?/kq$Zqflhf:o%Qh)g%L0?)1%\"dJDuN`RipL,pc[*RFj7N`jOE7IiI$-?t\"G%%CiI6=^\"\"e!$+T$>Vh$]olZ+nP`(0`OAsZ^66hr5\\,ZE2<^tr/aHAd1YRJoID2^*ODqsEQ9rNXUR/DE%OA*G6Kbhj;IS:SF>@_*ts^=hBAYGO].0ddph:sb&chr-rF'U?X?IT+1H5jKdf,h*EZE*c-ei'Qu:%f'Wpp6\\+\\]$>8Ddj14a@u@'JFIah=X@))G_juGn#'(JchQJh;)go8ZMbd3'H?,6<<`HC(5clRXejg5(Shsb;u[6fE]#%5Fq+SMYW,u7N#R0n_+<4/:2EFQb2F`7;VD.W=E)iILbYu+(G>sS?n+\"UP1)hm/,B:W^uVjB.N6;B70G7s62HIqTLVJ+@!7;Z^_)]E]gki.q&.\"AF03RMe3%R1-2=_3r3jX'`Z07Jc>L]84CL@S-6_/6oqc/1P`8kbu2WP+9\"!tb-mp?(rt4kdMh[tKsTPE>\\+om9VekPjCgs$uscdM$bI),lHoH0,Km?MR(;h`PNro8qjT5QJM#4[fAr6r&@SG^/+.4,*W)/J1=^H`u7pnh9ETcMd@2P9m?=J\"f,B_qQq\\C[9!b'Bf%/%3_Nm_S1+sB[Q%*iV\"C7$EZa@[Ug6@J4L1eV\"nUA1q`P29TJ04i805TmHkXdCH8l5+n*.;mClA7,fn(.%XD_YLrbB$+%9-FhA$P6\"cn\"%He1k*9#WM%$Jq>$ZN#H\\O.9i*eQ08JHieY2'*nqD]#A7b#&qsk7>H>;qAo\"i*F`o1>8s*8GRE`mGTVZWJ(-OLc@I5/9W5UFps@cZ#aW`[R:fq$8$68o]5,S?cuS%Jm[5_7i-sC2A$jQL7IsQOX\"=e]HD#cl'B2hb7O%n(,t1Qne=EY\"`+,!p,0[Q`C;HTT\\\"gLhRb-N$@?\"hp%2EhtgL$;SQ9T`X9/P&(&$60UF/86dHOo_q7.bNRil]7]T\"8^KJn7O@2!/bj:D^@2+<2Y9guGoC.\"b]u0c3bk_H_T,f09>inE7Uh\\VF73uM/IeEF0q:o>8N/4n&`P\"rhFcM9OIrq[RfIrcItg)@(jU\\IM4!lp401kB6E@r=506CQWiV9S$d$XD-hRj*mHVWKSW7aZPX'`n][h@L`j3Wr,7AbGpgeAjf4d*eV^Alpf2U-l?jG\"YL8`FHnZLiQPB^:L*0rG\\mt=REfl%n%+Kf>T]&o*U-l(OUf,[G.mc:L(7meZ#.U[j/\\JFC`&I8rZXKd[r1iVKn3]-DH5*JD5D!2iMl;lg[KbSANeWU)cp8Y)8=[:($bfGOnq;d.ESU.)V-?;8UYf3@]t'V3MAkN$P?)V<.8TnU7po&D*$!#<0oa%7o(.QoIN%2RT(0S0qQZ(U&gH[)/FrpP1hto0^LeRC:`K\\OshBVe/0X/6r;)gkq:MA3?HAsY,:22F#N6r_'rPlkrdQnXuGk&ds8+n!!5CZYLM0G*\\\\.0:!YkcQr-<+`E#@I-`o97Bi<4*f-e'9]$+#%7g:9I=/=+_/Z:^s!]F\\WBkLU(m7h^q(F7!b>o=-&jlOijFWl\\3'm\\.[anZ'O\\,d`AM,$*F>pW*`;qmX/.D8j2`T'I675>.STLLic.#K)@*)mKP##_JWJ:qMQ`X[<.-L1NNt?p\"QHn%bW?F&*h8p/5t2(HVCk05L]]N-#\\V),5-=W];(UOOX@p#R+8QPS7X_5b5u1P\"7q$18e)#p^]GlZ+/ilo'ps3;c6NDh9nZhR)9HcXo.;!Tu4XH>P[2Vm?+*[Ni^mBipb<<i^\\T=egVYkbZ=\"A2U>/rKY3/qZB\\\"VD=\\qV+5L.>\",1$XIQ>V'SJ!-AX?a'5JdR[,Ih;Mg]^8u5fFe/YYtWqP/HcnTaq['nr6Nf?50F5f2@O'=SdJg2\"ZqWM)WI7CuX/[.ZgqJ6o2/%/?p'^Lu;%$LHhWB!/.-!U&HmkOT[/,VKTo0muZT6c('lZs0*>>aCo.chl*km&LIWfHc/[n!%'Mm^^Qg=Q2*cm,qCf@9ngpe\"$NPeuY*DF(@('ne>,\"m].2]$LAocAaFoRK]-uA;-H+Y)TQn^5!*ZN_q7\\RkUtI\\Ui&dq@)\"1AP,TMoti'-=fuK\"PY\"4B^V;N3kr^*WC9t3@K--1=B!Zg<'F[Qk)/g.#>%,Xp9-]0U\\\"3C9Wb]%]=NTBoQ6,@.Z[TjBa[8'(O!;;*]ESTID&OEM2#pMlldQ3`gV\\!dH$a_uft1ZQ*4GD50r(oA;'OTs.*D#ROc3\"KEP2kun%#oR_`r7:_-7!cMHcE+S8L4Mf*>LAs7+*%giC3:8[8YUn&gN)I5TPS9;uMc6+8Q(#:aeD7+[`ggoYSFs&V)m2u.FM4s(Zi`qTcmsAmffi:Z>RP`2h7Jh=jr/r3We@?gh=clSGPE8n9?mo`7.MV7L,/B(&4Fi]jU'j;+3d)iPpD:X*`Yelit(YVeBSGj68)UU5).:T1dD`Q<\\%\"nTkBLee+.JCnVt7t>L@[/3l]b\"TIaoe%MXKb@Z(Q?EXq_Zkiu/Et>KijT\\U)(Z-tg:=2@orHo^#e6;2)J0>4.j-L5rQHE>^`-)jd)bVk1^uKBITQ@up*QW55\"*'g?.H\\BKuiF<8ZjXRP!(WUL##Le#6OGc\\d.m&BIV\\PS*h\"a>u%G<$&Y&-#YT68Y4!U[0T\\a\"(d,*)GQ`fliWV-74jCZrVklf6`FW%S)\\Fm@Mk]M%#j]po&o;Z)Y]:S@MmD'Qg<9`\"a?_;sG6\"c1DUL9'&C87[p\"de]E!l?\\3.W9]1(XfZl&kKdO,0b?l]LH39lV76Yr3go`S3C[7uJVhG]Q/p-2Y[F5nBf?H84Z4^:e[cJEDE#YqIYZCf&$uVI_\"K0VkY\".60+tikb0.[DMGRij`$&@M?\"nOZrA&G3RRY-#%m53Q@*l105mFEeJuJ#!*;M4q0r/QLMP]X7H6f_`n9-VU'tu8Xk7'JMmhm`@VpqO*LAqq%4Y,-[p'kZg$SOUud\"$gshZ/>u(S)jh(iUEj/lsiO;M1kV?FTF5N`%I#0gGuc(bF9/KhJTueEMD+Mj7^:7M4*eaDX4&W8RU,J`Mg:\\=c'KEKLUgZ3gT3M4gOZ*>08W%/M*D5^[rl#'QfnU1KK*b\"bB':#(diGW;;+(\\6c#=ql!6(`qbX\"To$r!'mrR1Pa5KQ2n]u17_16VUUj!;)1Nl5q_%G1urEf@p\"8/fk0ce0O&0&4bj.+b[G-qMY4Z!e],`,*Zo_c'\"cpll(&IB\"D7T`o32h;A4VkHLps:Wo=]]:,?A.OZ\\p/MhVHZkJ]M@0cK98\\Xp[sko8pX`d@hYh09M%_73SN:c'D#u&DGJ3[uh+rLuoom!P/O\"XC`5rZ?O.TPPfI*%\\OZJ&,;Pt\\OJ4Qd02K:HR?pu%/_AoH/od`<&.Vai;c(VWm!f5?\"-5+RS3RMe&mi7S\"ER/\\4:tiq&5b1/hY$^^WAEkg:JV7AuFW%NV+U0\\ErYC??4\\##'9C)d(jsECnT'mj-Z4*D=hpl50oTs!s^ck)ug.=:+pc1U)&BlSl4EDFTNR+NX)?A,VE]::^8E0gYA4Q6?=1#8ClXjliW>fQlp)5DGYL*#o%KnbeQkidi\"-na_dAY-,IKEZW*G;Ll)mu_Y(6pKl5ARcd%:;`bRoddu_ILR(2%-tTW-MV\\?F=8DTIhF,C2t_r8k&VKjDlATBIE/jfkf%B=1,W#\"!;*P^*C5@`M2!!%e[(0^!(G`Dat@2d(]1k&l=_=Q2iqdhaqQcrZnH'mMrDF-a71aX3d*Rj?:c'pZ8g6jm/c)X3J.lO$'3O`I>9qc\"Y-GRFjP?+3SC#!fO-D8/'pO21FVOa7Si\\:@)BV`ii',t_G$4MkL.O>^q6B4p;G^s:Nr+ut9/Y726;?9-Mdu>Et$kbP1DWu6[]E0./I_Vb_G^$XWkej]j=0A,agV3M6X`)igK7A1/i0h9N51l?=s3$sQX`\\ol)bbUblVu>qD4.@B;8SrfVPq>3\\Hj[pg)[eP.4)a0R4O4CW/aYLfu-):c;:jCXhl!h,:ITOrF7\\c&OFE]7EpZRecQi?]Dp\"$b]Ns\"3!H(0,Qq>G.*=k<\"8kPj#Xrbe*K9K??Ra?W&B0uY#l]1R4N>.r_ei@0X?GCHp<:XUF_<^OC#t`QP4=g6XuCR;3p+fMj=+,NjD\\>rlrd?1'7/<.na#\\lcD)3$+$4f->jKVACM$SK=p<*1S6<9^:Tp:i:bQ%_E040Y=ek$C&u_?H1)5^'&QF3+[4[m_gB&3>70+P)j6cbh_(CLBDXBc9HSS5,s&+PM=Pe8!1MDJBSW\\R?(/1&g@Ks!'=LtaoIR6BLpt1PZaU:%$3]\"8?]YdU6>.8*ejhe#\\7K%G6r)k$aT;r5r_&phO&)5^Ck0Jg0ESo&F9#lmoS2QNLP5>QY_5dQlXp_1bOe#67haanGl),ac^EAkc=Ptn]$*:J[\"e[^>D;XK0;<)I845]8XD>&-&i\"J0@_%L2lO/bi)6nY3Z,TY;-)3tqQSIlg16XUQ,Z=FKoBFk*2E%FU>Zn`YC52,TDEU4#=7u(keViV8G<4p5_gG]h)Mb\\9lKl3^X5QD)1BC'Sk!ea0JVoEetep,KmUiq?KR$l9G:,OM_C[Wc^;nTOESPa<0HeR;$hKk'Fqk505X,hC#Y;GZ!pJuQPD5f*ISN+]KR00T$84/d?M?G*'q`N^,G&/8:bqGH77!M0Q.#L+^EZEFZ&\"-h`/rZ#TtCF)4JI4&8Pha6WI3d8rDA4,qY!/=S9pn[Ve#_q2*$@XqXl?iI1e+IV^]^R;]I49gN.]7.@dqpDL/k2fV;osX9DV1$RV:YX%VV6+Kb[ZhJ$+qBk_j;\"//qS%'VAkf+5-R6<'DA9\\T8:IkEJpe?crsdg&Joe`J+?L#*T(5mU'&uR8)W_!=T$@+Oaca)3rc+T,EsFbr1#g]?EF\\G$'EVi!!j%@mq<'_k'n4D4H*IMhCS5Vjo<@D7Zg!,T=[*1XW_Q:SCs*i$:?Von9]&4/hf)UiR2GiJHmk_+idhoZ0eds*&?#*J>j]CF_5FBW1oDhYmn-:^W/m6l8J+k,6,uqE3/pQYd=[&O_5QcmG4*PcR/XE&c'`Tnh(f@ST$]XJqe>B;_(>'^;Ur5M[gkPMPut7-5i3Qm,rKAWjgQVUpHFRFW5[HkJ7=]+rABO9aYHj$[:&O(9:T+up$FKq]KUZsgA:`[-BjULM5ZI:H:UrnN<]V5NI9fc#b[bZZnOF&R,SW2UA=)b*;XR9EKQV4Z2?Pdsrje8*?@gqS;fIDP7XdtaGR^:pNihp>$&p-M3,j_8k!g3$la^9`Mn9bS#M3jF'pg[2!:B3A>.i^g7oC;rs4]G6e.3c>'5PgHI!n1D=K=1!,J_5TjnIig!-q]2:dni8RUQZsK:*.F,C,j)/=,nceF<2cV1NY9'p)a^kp+\"_L\"UpE,-TRO&=e-Sl5S_?jcc\"Q?\\F_k_7>j%U@.*BomcSCcsJZ0On$`Nq'I?iUl`;%iC-jEN_$a`Y?*M4CV:+(12d#r4bKa7)`m^l+Gj@@-F\\BZNO`ELkIk*8/#ilK:E\\;c?ArBML@BTP--2H6F``fSN^uGgh.NPO.'!0[!KskP,con-B+M?f:\\jfZ.R*s\\7AD;&$/\\rY7b3O4PrB:^oacjZ-AF,J]=5LnKgPk-^jiN%=Lq'L#M2SSQrI,XB[W<$!qmrYXI7p;=ph+r:'#fVm%6^DPhd/6*(ORR;rstn5\"6TITGATh1J!YM`hjf!2S.#.]#fgQ,r'gOscL&`sXH[G2eWB@UkqF0,kDsBX&M8=uHTiE,DZ7-a%C>/?RpGL#o^I1t\"*,rS)Yda*R/lWF+7E9g/$G]BL^^j48nb#)H(i!3Wk<4u[\\7%M5!2!8X-T%N$>);1;[M75PQ#jCF+`kK1c_kn_Vm5q&>JKJs+OQas1'fU'4m>sk6Z03t8(oBXI>\"h;:_oC!@h'C'.0#*_Ao=XeV?Jds4W_.F2MZD?Qsns0(VMtY<5cPf#P`l]X3n\"74@lKhrU1B<(;oPLsceIgjW.$E1:+Pt9]9>FH(<4\"n'QOu,JVUm82HbMtZ4R_Z&Qim$oNW?\\qmj3fi]NiT=OS5KpLa37k^nJrk2>dnuc0](U-.uHfr`)_\\fVEf(\"'K*5KZ(Ie^JWO/2@Bs!d&\"@B!LLDKqJjs_VWD`A-hUmiq!!SOarb+Cj%L=0u/>GRM$e2G$N*3m)LVQ/klsq43?uu-[jB<)O-/R4[I.9AQ^>NO1;m*='4V+))@G)VfO**Qp'*6'lu\\=N`D1oV^MhR_jaR)fqs9#P]A9Cf9m]]\"(XYkHuEH/!\\h2[4KsH;O9)XQ/f4jd^c4\"Q/-[W@(1;2s2#dJ/0u:\\HXXH=q3SA5'C61%B!jXo:eC8*D73@qVNtbEMOlahIo#FhSG]6,',lDQS]Z38(_Y[mA]1$RLrls+SZAX]VZ\"Q:dW*V-iKAg-\"LXD;Y@Ji\"F%SWht\"3e!;&cP<'Yr8D7Yeo%M2]U@BEUSJI!U0d\\cr9\"%AF]P0Kg,[XN9T_gf[[]VgJ]$0/+-K.R[o`!Y95d&W)$Sg8Qq`1oJmR:$!+HEU\"Y\"MYkXUoZGrt]J@[iAkltnjod+/Y_]$N/%pLao1h@o$48.%5s%]J%*n;\\(n=`r'G@1(RhR%1Oo@]t.O%Z0k3(-_U,0h/@sdkX(Q6mC<('L2N[o$DEd`MuWHp\\l#5j3V9`b4^9dL!(9^pnd?q8!VaA]W7@Y\"hPm#eKs#kPm#`NeZo8M\"hJJ4muSN.tpdFsP]:^?eCh\"=E[*8?V\\YL9JCoKM'&G(n^+,L#QYT53m)HbigD(BL]/?W=PB-sS-KSjNhKM_d1k5LXWQt$oeF`+ooMc(3*P]oq+H0FM3+'b*2h,(@16?f`kaKgJHX:%3-o6f5J5E;=W[2*\\90n3t]Q)4.3S6+q;09;0DZuGl6gJ32[j^-!L:M0rTU0`L(k7lInL&(T,YJlRtUt,p='aPi)g]P8/SFNM,#(Zng_b[1-psV-ha;IIj](K%,VKmJEdS0lX4dLUcf[6/&XG+gcX\"NLEo[040W3R`dKL^2jmD!Mpr9\"\"WRhqUK:Irmuh%qdf>(/\\QdDA$Ef]FV+3JYUk]KU>`ou7GB-[^M_JEP_^fu8VI$\"pk)@:g&YPTc8]'2D949iDIJrZc=t%\"]m<+$oH[Hol@3?#jt!OAGUff-]YhRYo:#]5_33.D2%/*P=AC3R-GV#/2p)\"/;(0m'U-Y_F'rKF`b+_ilcGt_Tl;0X!^A_.^ZIo\\8@^7S<`5sT9Ug)oEoqLY4kHfI'_\\#BF1m[_W<\\*&cWc_JSo1AY:\\jpG473aU%,qhQn]W?cR/4b$qb&ghDb&LE[r*'Dr6`F(Z5NOTuZgN@Gk]ps5iXb9f7%,P&/9l)^L';S=G#LcWNaW6,_h/1m+7q)>hnh#=ap;\\t57U9a+]]39nIO?Bu1Qfmc+:?a@HSj<.`s20:6F0H!PCiWRSN.VcB=SH.^a%+b?OP^/H1U?]0et9AnENiT)7R4l8OUs%6Qa]m`!_o'^-iE-I[J+Q(!OW98B(gSVH\\Zt%A8>P[8sT$8R%sZo=&?l/Y0r8O*s\",*7/(%);Huko?sC#3ZZOo24FS;:`&Sk:q9HFu_7rAXg!k9E;$`(Es=[`))X5bfuQpNQ#Xc$ad?N@n]5!C?9bE5W$Md@_`@^gjMSr*nAU(j#9=6LT:;dO16OZAJXTBCNIT?.rp_qpHk\":Qb?\"$T-iO(Yf%Ep;,L#D`Cr:^NpOLRP'mE!gMBbOKArBj6U%G'c2I/FP_CdG2J+.:\\P]j/_$2F.`j.qJHU`_:p$&4@^/ZWQRfF81&t4O67a,)aB[/hGCk2=%#\",[3X:=HdAZ6=+1CWeMS\"'=#'-PWD=DmC'oBU=OCV1;4+p(a)k4R2Du/d8sMTdnc]K3jG'21`r$DjILET>n`tXOtLgitDq'$q9?1&7EAg1EdGHKR4LN_NNbIL#-PCC[Vhl4*io2[^mg3[&UMd-t@)8mddW^+fgX+2!6H_c(1\\_>aJk%SMuD[.4qVQj3GI<]OHfb%jVK8alD)`;+^-d)4WUaJU9tUH+7V>!j!O!&I-.j,;#3X.mbQrmUK'i818M5LrDu__%>t$J\\7FJqu$I93fT1-_Q:\\((\\Q`:lM$:D1`gQl%9tUSe?jq?+m[Hm%8+*L=`&$>,Ao\"(P\"WcTY!b,3&/j<'1Mj4!FEWQ#P'`DS?K?j#0t:Y%^mJkol(We2!s-kt.\"OWs`W6-485)'toDmPi,b&@(+`00km#isRrNb*a?2`*n]olrrjT#5Zacct>*hPH6VOom3I;pcXh3%Z<5kq*O&J:-PCh^\"01,)#s`r:I)!#(9L?P0][)]ShHkXddslatcLPJXl2VbRiWgs]ee[hmap%ig[1YJE@u;.oRY-g9dj$If.qNSh-#JsJc\\M1$4B,tkftoX7TDuM+f@\"6K?U*74VU&6T(i)V,(t;Q&;['4@/W$l@\"313I?jVY1k(B4aQ&L$'',FYFJ[b6Q8UthRB+r#4S)UqQJXmm=W0M6`osg'8t0F[Zu[V,kH/LQFL7k>oonjYr3,iZ]X@'jM*5,bYE!=qIX6HbI>rM`qT=cLju2?(0g1k8`g5klDh%O[3#d<\\hkVLg$Rs6XZDQ`gX@@J5Bq^sC`PZI-Q-f/`SU4BBhuGN%.cSItRgbUn=_SNVE',GUMX7-/K(0u0*Js+uW[oU@18GU!nTJ\\]ltii(Pi.`jHM[ZuC-oqdY?Hq+?Q/ia)It_b^,\\>EAe.V,Oh>_TJr->q8uMULjK(B8i=d]m01d[pd29m$V6&N6I*kD4O]oZL^R:IntlVm&l]T-_#s$ZVTQ'O\"hRVo?/-hfTF*gnlnUgJj^;pY:]TTYq\\fY[WOYTXA;324C3td#>(fYOi*K-S!cl1J?gLKI`0RO/tA4c(Un^5!5PIW]t_IL2Od+Aa=+:%pp8?rn;ojY>:rVQ[[B$7#4:[9[d(03/;qYm^BLF#^q93E.\"WKrrHUd!$M7rPjdJPrTd$nBBJj;`:O_EeZtsm*CChJ5(Zr@BOe*Vfp6er>==l`2nrBb2WE*JkAhro_57@Cd]:iCG^DrUIhJT8mCLcp?qsl66MSaMfW5[+VN]l<$i&>!cD]KZ+U*BTCG#IbqBC`Ydi5BUXcc1[MuJXFh,AN:=D2g?\"FRdfJ9Q?A3]D6Z$\"D`DZfZ-EuTET=C2CN]PX/Ck=N@gqr-C:d#:9E*IfB#%bc`H*CL6Ye=Pa9=IKt')Cq$fc]V=;mt65hBs.V0eX^*\\jNd&:2_hrReQprb,)0i_XJZ%#'hJPJDK.Lc8J:e\"`Xi\"\\a?,+aV5Dp$40i9;4!Wc$P!BM)/tm_lb)UVl;ScRO+GF*D!&^UeI/X\".op()3[jc>W!:O?2p.D5E.HcF]C-DgQJ5g4W0p\"g_-b$P(ahI!'MlYT4hRR.FiWjX%>b1:&S`1+\"kj=`e\\+5sG$P79E$T=qqqf@C)6\\\\XJHVqpBOGm].BGqWc;3peGU0rK5F7]uYVO+>\");_NcCB*.Y%*[s`Fq50hk\"T/Q:@mN4UT\\8Q<20.K6]0G5r.h.*$d!=/dI?j;M3WLb=,1lPp-L@F[\\fa:$'=I.9/>6ljV8X\"`jG+1\"eN-P@@Aq*4B%EKF'\"h%`uLLoEOgGICL(KZe$;l?i]Fd3C)0iNc-87a+'t9tWN0M\"]%GCZfr5A%2nq7diJ5#]T5eG5A/o0kR:G'QEckui=qtM&YhSTa,fd!j-K/B+3(;t4+Wg&a=XWUB*&H-!5mY@\\sorbYNQoJ$>!_&C;h5'bK%Mr#W9/Ioj5Cj#q=%b>FgOI2k*TU%n]AAQgFsDf@]%L87rkrnjETA^T^ko&.A$?rSlTonUmn`-qHokBZL=,&$e&qn`fe2!sF3l(6YS*U&pGc+R9`9=sB\\^cC6BHN4V.\"R\\/@._Q525m2uG=eH`kJB;1_d(D,?'JJsFdf@K]Ja\"lrG2ohP,_-V/_X;55q=08Sa)s13Ji1+ag717Pd,@Cl5So\\-*G7g?`9KLF\"?0X+IYUI_lZ&1hS^+!j=.RVY:R\"\">lb+Na,jANp0QL.QeLC`cO*h#aH:G_G`&L!l\\&rIPN7,%)Yt@W51k6]n?X2fAfOL%b=!/,RnIQaBa>8)t(kp4+_Ot!KVh1S5IImq\"U;VKK]m-&Z&1lQDY93E)lT@4u4X?FNBB\"<\\U[71X#V1ufc/#]^rI-f`g\\6qZcaj8Ek0ICZn$2%K2U@mpe'Qs[\\K(2KFOU(>\\9r4_bZ!['LQo,(&_7+9ED2fV7Kd1P^iii073/s&1FC,j%P_%jnFfLb,IIB?JF[lqHJHn9Q;YMB\"2;_J7RnQI7Hk_@/K*p!mZcs\\=nR8TshNu!*8r6>TI3NCsmNdrF\\MqXeb@>>m`N-jNChtG=TIcC@Dbs-LgY.jkf/'j9g5keU>c[@V8KpD+U8PRlfXfp(J3U\\4@J.Vd]Sl+Nqh'fa!'cIE..R^D8BjD\"E*msNNVmcD,j:CsH:P95G%Wq/h[C,,(,@&`\\,OcB7I@.J2Okkum5ARsi#XAF2f)Fk3+8oMd*_0uXh$ZQ#).^9&8A/?/e`i;,$F,lC'IAm_bWO+6+,E6DkWf&`9#mYn+S*cZU*tiob)rM6S/9\\LR>[A)h3G6ifSeqN2Q2D*52V'i;7;n[&*9-aIIed3?$i[u',$Jfj!faN*t_oe(\\5a(j$l*')dsS&*f1$3bl+Ik4O\\J@d]YTdDI`Z?afdXCEQgePAf8jbh4ePW-9O-Qf\"WSk?9#@A>!L6;btSo==;IL.>s<=(HJ1Z-nu1V;:D?mOUn:>!8E7GCrcJ,]_iBbg+:fXqfR.CcA_XV,@aVGXB/6)]rm>Q_0hR`7j0BQY$7SP=(e-p7\",&GPTJ\":,:cPpk8P-QNiT&^\\F,rG8J4.5khIXWkLC(m4%mg:>X/O0,&fHaD0S7@GM.@>KJ`F9sh8bOQPrlLIFdrbe[1<1m8)FEu?&TP7G)).Z8E=fT:a1hcFP*I]:H`?mYp'`0mP6\"nah@ZLJ!ZTJpD^3K\\c(4Y@PR&=.M8s#\\\"(eb@4Hrs,1_:]tS1-CH<K5tf&O+df5<:NDr_8jC**U%\\JVC\\%JV^K,f7,O?.Yr%V(Q.4-/<7<1,O'r!s,77mmk4Y=ZnG(GO,q+I\"b$i;YKTp=uTmi$^=8d(6\\KK@$YL6Rf'8P!P5it4j/6g@KOQ*u.;/7SB(32muNMu9hu(4!-5!+H]EbX(VM\\jK:U6i[^1`-].f)KRe0@;$53p\"?6ui:k`AkIb_QBK,OCVmXJW42n`XDil6Vs,2*p[)tS@msSFImgdr[\\JV:tu]4+^m4\\!MDWm=?R76KbREe.cV]NYZX>i;GSHA?fbgr\\?iCMrgp.^Idat$1aT>C&J3sK*-`F_I%&k7@Z\"W*/Aak%!*8g,i\"pAt+s%79V5.s(ol90?O[RM!F:'7ao%)1$hEAf)KOQLjA,%`1;a<+U9:#K_,ZE_uGTT(qQC-D)(cj\\I#\\\"'6%%Wc1e-q\"'bO7#.:>J?Xa-$F[W&\"],8_@<\"b.#]Z!<0o\"IEi4F4V.Mh'iJ5Ne\"E?-moFmoLt\"`]CD&:k-)M<*6Z?\\NITuZ+Og;iA-*l\"5+:c'r8\"7bbU13M0KI8*IjO#A@MUV$G(,GN2@ADhq2L[Wm:E3$5NdcJPIakMZQaa-C03g;L_QM!p\"j8MM8mN4_j\"3^hU_?n>jh_N5:]8r%&?\\*j$SPfco#cuZ3f?ENmfqM@o@Gt:q@Y/acJqt[Rp-VA0L1MQNj:D];maK6FPEq`?&UQuD<#EfQ/->eZeW5qD3!-M(1hD;Kh$/-AOol#HCkhs;p^)\\([USL*W;:U_7:]M8B&pm?($Y&,NrMo$R-i7FVeiUi.=?IW8]rb(ZX'GPVSXGZ&CuYc087nVpoL30bt]jC+10G,9kGc+4BP])N8\\5-IiMQDb^^J%b/BmQVXnVX3;H1Y9=Q\\mX7TY:M^r/p$=?L2!\"KAL6_n!II5lUi''^phl_^en\"+>TEm,MM()>`3BB4H:[6q=\"pJBq#8=bCjp!S>KM_=?N94#%qWc4m%ULcrGZD#^f.9M&Yeh9PQ8?.Fl!1aQ#=gdlj]Fnh9XKUF&[h\"B_[HO=qoPZUCeQ&[a;:b<%EAk)dEmH$\"IO]!LOX]fjV<:sa:G.a:h;mPa:&K>Xel6#/KXT/'74h!.m4t7[*V?MNE5`-TA^<.kNCE&9mpEaV3H,WcD>$Hg!FU^:\\:g[j2*,;j7.UVg$+BEGLQoecIrZjl0%=J$9it]i>;n;Y]oE.jobA/CflW]^\"J9rQ?\"WA(.\"iXqC)(H7RRXTuQ'Y9DOX:S31'j[,u-BUKp&K8/DF`Up-#d3EKHdPU!-o<^u_t\\@pqr+&?Wm\\LtgnE`e7pCf6!!7mZO3[kN+Ngf3)4?j9UhE7\"\"@39<'E!V4rn,;aR]--BD@&9%=njS8pG/6HkdLgS!K3,Tm,)srhj']@j40AaXeK@\\/l^8-j>t2:i6r>_.nArS\"i>R@lC%4!iIc`AD45#TZ./hf2IcO'b(1f0,HN\\,+rq`?^<`'8a[^,)#GNO[.up_EZK,\"@0^J;=/0R[4;#m-K!V$]a[UM5-ZC%gm00X)@i(mW2Xd!M%]5^R%2s;D$\"JDb*?oif-?.`-Z06HRjP-J7\"Q,^:6.^r1bqNOQAJ!b)2nu84L\"kF*3;du'91NWA.>):(Xq(8-05LPRHX1ah6U]E/7)Y5K;AJbQ`KoM?QjfC5:,jo_VFr^Do5k#6`e=Qs(dn\\Y7kGU(o&6]q/]l==\"O\\Pqe]9(P$=NLu'r9MCb=`OJNP%A\"nN.5qb@H2!]h;RcAQR=H=Y*A?`'mY(%@;VpVfJ^'_q(NDkjE:=M1Yg0G9Y'Z=[CR4\"&Tbflkk]O@HX*O&1uFaaH1J`5`uHRUkh>;D@0du@P4'Ib.5_Sp5RPrrBXCqV&i:\"!`1^()CbX4V^\\4UQ/O>kG14`deK6/J_-isFsiu3-UeaA]!ch8nRdaW5^hU8H/Wi7_r$UU\\Z=a>1V-L@EFb9&bt-\\g`bU;h?2h*9r>24JHD/\\6?$3u_S]j=6X')k(P6cT;'^[*:`]VXCY.(?[```=me1`4=D695JEj\\q+:?7YPZMjL=q:kHA&0%=c\"gs2\"2IDf.W7m!gq9Jd`_VmEAX\\_nSUs]$+IYG_TUNPF^WT_^2<1@Ebde@\")X9Xp`uK%]\"YX[n7uGWKNDmUJVgD\"WYs8*R!L13,\\sZV>L?0G7NmR@07HH3h`1On)%p8?A^]\\fg^Q&^mfRk'9?:J%-Zg9dPgr\"C*Z$#sV'^b;>C>_g)K;\"31gQ^K&lk[Re&fX^ae-FoAaUFNr`K&k.oJfbQU$FcUUK^K!ZPU4OC&K\\ls5QKNQh-llc-YZTZ)X#99\"4rSsrG0%rLX68#MrZD@MnjI48#T#kNpceGJao[L;@h0sqi9+B#AN`/7.IIQl[!s7PMB*:K(8/qrM\\`OWAZcABnuFq[+-DbcL9mNbZ^/LETk_&miCBLMHF28*ppaHV,F-k'-=H^H!L`mjZ�>mSEHH_n9CL]IVM+:#?]2*EpbQI1+-I.\"Y1OO(L6G%SIL\\LSsZc$CSo)@H\\hp406n(5SOIL+j$]+=g'5Q6%e:.m,g%RFKW1ei)Oa!q*;S$1:Z>JFs*NdUfpp#AgT?4YhDrE^#kj$E#0-S\\Mm!\"ma4B`G&m5R0$4lm*j/CF`FL\\2l,0po1\"j%V,7*6R2uBFjOP*pBmCGR=B$jPq3!\"iXdQt$.F!NC,CHj77<9>!H7=8BJko7TKW=\"LlBF(30>FFNJO<#i`I:M?N`Uiq>.qZ:HV411b%ENBSBsUPd-Ogd<+i*2g(*EL6BkOO.XpW2^Y1DP^YMBQ4W9/8fm-r.0N9:QiC@]);+j6;up+oUK3dG=g`r`eeTX!jlVfb_i@h-)/i>Mnp4SY`Z,O(tCHm;Huo\\T\".PpI>%dYia8CkPj.[^M:_Hh5C:c!k#/dGE7o\\[ZZPf>HsL8Wl079<>T/Gk+uHK\"fpY?_T:#\\GcQ9W#]Vr1lPKGBIF&HkYTu_,&:5V9mpi6>h[&lq`NbSd#\\ahW0'6ibZC^,Mq0p8fb-D\\4[)0Hu=P!A^Jd/Wc=*1h[][^+#4ET7&/[Dbq)D@\\9Gg(LBJ`-hKY\\cc0cm/:,bRVg(B$876a^%53VS$8BuAh(/Usb,m.I2r:6(fdFi,DJ_n226>iG@5B\"t`lcY'uRZ]WZ];!HnV@hO+'9fncjN5))S9*Y8E0%I)\"69LDnk_stiB'?1I'C+Kj*27A-A\\:5.8+K2Jh8K[dH90dhM_\"0E7W2FXj24i@_Ju\"l<;J*QcW2FVT1nN7j]HfY''VD@4#>%6aDT$oeVZtJs5qM6_H\"1>$48QKa;a$4*PF_KaRa>uHR^Du`QNkun3NS;fpnf`+5K&_*P1UmKQnJHKrYqQ\\GehMN#Kai!EO\\MF'!0?MQ(sRrn=EL$VfKRY#+i)9\"nI0M_q^e/,bu$@pDQO3Ir7%3_Bf7haLO'@cVK`ah-]bIs:O$\\2#``>[9_B>m)EskiL(d\"u?H\\1F2]n.VV+c\\H7U[s@@U!O\\dE]!)a&2$Iu4?(`AcRZi-^=H\\B=$Fh5d^DKMdUb?8#gD.^`$NTL(JDLri]#Qch_tn&^\"_b(3_)E%W>hKRJ@?.qj>k$=80a-7TL?C/$_`4tjL@sALW8*VI%:NijVMZ;$5M@&6;&t!(&&`=rX*Rp.GX[9&pPA'P\"T!!a\\]>&^QD<$%00@J59$7^,QctS2F.9>1-(5ARR%mZc0=D\\,PH.brAa\\HDgd%o>PIZ+2k4f2k(DtMhHE[urjcbs@<6XOhq9H[[4^f3Wt=h'mP/d&t8M]mllre$0>UU3:Xti;bnqn,j+dmj`Sig\\\"[9b7)5S91(Q*S?jBGgi7?S4a5V%T73\\:bor+%:FA`Va'#55J2Sq-<\"*G=i[Ep\"K1,KDbCifrj@AlQ_USOJ;q&c'jKrI6#cN@fd$d'Pbrj_fYBXFNihP8;hg?[6K=_,8C>V0d'n$1o0`/2tDRX=r)P@KTH]n7HPrU9\\=k.UR@G>_jAAWoq.YHu)$1n.cZ`i_#GdJO/Lodk8bN=#`s&.$k3OphjcEZX&]YO2fS9QA'c.+_[%>72A4\\:)UV32oC6Zjc.HN8JGQ^;(iTVd0P%]J5bq5MT\\r][$8ce3cjRSg\",kL*BSU+/095X<`e=T's.nhO/:>B%%=uY/d%0`ENkPGaa=h8aN/3ro>K7#nEO)G*gXOTHE7:U+Xc![(pbVG44G6D;9*8>,0X4U_+j'cENTP%9ZOs_rI#>BLeS]m_/X=p]4KR;6Fo9a!#J5#b?D\"B^m#ifp*c%d#+#5P/\"SQ^.mP2et&;rAV=bXl3GV%fO&#kX#e9'Wu7kZG)noT:>CWYr:Z`0.39PE6Y1^=&@i*?Y1OVl!lBI(YM\"78-0-6ru4P^C^&`[(TiR+\\o.Zm>u,s3)C^l\\PL1uZ9ZoR!J7[D9+fIeW`QMk?U'FdtN`gnB)`hs=P2T;OQ5G/LD3qhW9u?r#YYg?)GRE*9\\%4OV;q+se:m9'RQ;SjG,U't4l2@=B7B,Nr29.I?#ASe'0hF=ja2#q0-@]hHG37P'`]I)7K6uY4BimV2Gn&:NUD,V9ZZdq>+H6p.Rp<9&DesmrU50@WjA`7OsUSBF,1_'\"IrGYR)C*%U;sZQbI\"X_BiiEHY#e;%*hTA*q#NO[;ntX]]l%9B+Er\\>]_X9kh2mU^\"slo-k2,j;+c>?T\"pS0Ok[AZF-k+BG:%1tcIS;pD(b5j@E!-R'5-D+IM?(7ua?`n>r:fNf]@,0VFI>HURiR9GtK^\"UC9bF==n@\"$$;uR9;-cCSklnpX]94%8X1ad67K>Xma%!aUdi(f5Pt=rn-+HlM^1?GFt:PY[Pp$kSl6FE@Y>_Q`=H^Z;3R&,Xj7S,].0iE-!NBu.ji?Zb*'r\"X_V`r>jhqE';:^9D67lSq.C0k9%bZH>pZjhuUKaI6%3c*-h[t'>_1jP_/`nn'C#ho])D!muIVI+hnN^+e,J2_Kt;A(ug>+'>R\"OVN0]KG4H2?j9L,ojAbD[=:aIo80WY?E'=f$`lk(`RC.KHjA]k)!4Z8PJ8f@uggGEVW4RXDo)O&-=LWa)dfT)F6fj/Z#NW9iIh:[0%FNM;r$NVjNB/?+bC\"iQ.04_C\"77rSQ:Ke>6NcnV;nE3Y.0J\\*IUdR.rT<&8%C32FI#ECp$,QRkq@Xr(ikBNM.c`13W)%WrI`WSb0-YO(cPb5>\"[07\\ojk31oUJ2f&bJbE5eHpTc(t@0^QLO>3rCN!RKN+mrL,j7$-8T)4n^Ds=p\"9KWB^B>4@qeEq_.2hqk_El05r24i-ZrsX24d]e1^I'JUSICXpG!3$4QX`^Wi;lImj8GjA3hfnI6WcmKD[;`]eMBrQQJbqptlKHS]dHcVrp:s8*j%AfB&j]oMEd\"kS[o<;Ydm3m`l,QY`lGqD5l.+4dRR4_k.q;!iLN`X9'IAaJfB<>3;9^L8piS!?=>o@WYu*ujPkDo!@bbF1n+_`^IS4TXN)5Yhg/Xm;<3NHueIa&WGf+l*Lp9TKp#n4S?q_Z4sQ],3ZZ.tr#A\"F3RkjcMdeR3!m&i9(8h@70+Tn4^#\"b+0.*fa#Ye4ca6%X>&,\\&8(cUg_7-SSj9%Och'hf/@%E[TcrqCBRGQn@k&l+@Op4+Vh(fNX?Le\")&P4:.)0q>hh2pGm`jpMLYh1pKTRa7(d!(\\X?N&;r5/UkaSKEK_cd3M^C[i7c%IOVRO*D)a%iVY?i]bI)fI+lWN\"%OG5\\FrRnsfgZQI]PVO@Fero/+c7.K*gf7?]e7oAQV^m&34+pjUf]/<]ns]LooR_0VB#EE4QH,4O2'+!3TQ\\4JD9)i-^.'!46ijnUqrr,$(Je#hB0j?&5.3S;RTX(Oh`X\\Gko$?jfIJ;rE4L_VMp=A0q)M6=U:\\jEUfm%Bl%qr.DhS08&gf/+i-D;OK\\@iBs!'0[(D#Z4V5@23Ii`3`EV\\JR9EpUObV\\JF$S@B__^@o_nRd%)e?+(nspA!_\\c.)3dSCf!*Wr6sG*K7l3U^`WBqf.SAO$-T?7^*m#\"N$GcjktTeoCiVZHf]_npWF9oS0DnT3G'tahiE:qApXAaK]Po!I2--PrS#SB8i0IZEI/Ef(f0o$?^lj`C)Y[P)Y=*NbGk3YJTY?DDK#;X3I&#OiHKVb*rSB&4PVORIFMH9Zg*j,J+,5sVnqAZrOrHb*T%OS=qCl^OoJCadWS*k.<-1Rmt;i8A2/;F/R;-HVr9T)rR6Y?>^3CQVhrbDe1;u)c*MH\">Ffi+Y1_*Weksu[$g&%rX>OuX;.gPS\\L(0tXA*DC9ies@W?j!mV9+0LI@ON*4\"C=3ir2g?%X0:n6`=&C)52)+5RC#7:72N3%#,urW,R5%\\A)p@TFAuqa08j<^;\\Kp7[bu\"N>QB#PgSpAR$5ph1F)E`<,O708*d?_bNn_&_Q7\"%Hb<8Z\"?W\\prWC#&/4af^D:-an#.s/(KNfG9FA`I\"9ZCI6!>P-G$X4i=-\\m`n%oNO7\"nFA8K6li%5A`e8;^9R@b\"C5GjGJ3Y8#2_?aA`_:=6/MelILfeCb_%d=[Q%WgKE#HmTVR`KRj86F,)(f6s=`dI]Ro:7J\\2'^B8!0^g@Lb847oH1Hd%t,K7cWDtE^>+d5-KVo6[#bi7KF5.lYETh7mIO/hsB0[U$cK@*XTLDlkQFqCBdms3f_dY)OtM@Ft;?@i6Bo@ug*Cq@Ea6KrVq6O[.2WojNVA^Els3+d2-54ugNLqA&B@BO8N^6eR=+EY'\"Vf:ei0moepMDV%%eAJdYbu(TngM&17nJ2M^pE5JhDaNeJM9iY17&h>aMR^Y.j;Y`6ucu$4?\\Y.K/*:Jn/L?Y>Sqj7L:'F\\5;OeaoF,NoVZ--72M+0(_.n37h+(m*0oB?:#FsQVWC]'=U7O#r0XRMr$^^7AbS\"BXr0VeNK)lfX;NERmb2**Q61E_sQc8A7BoiiG-c!!6l^-G\\\\,Dk@i^`;0F#+jVdr65>l[9Z5Y%ZX5N+uMioQq;I'd^ut=LOu!NoN*?X;pR%T:>Ef5c6bIc.9=[4\"7kb^.\\q0q.q>1\"kr,;]0*k@h5!>5qMN,Ddoq/`Ra>P@`X\"reJ8fqhHRG^kf*+-L>Mg9KoAt)k3/?<*25iRJB+$d_D:F[3Xo'g!XN0[bD;q;a2!KK$=mmG9T3:\".UI#X=3o4SWuVaqNppKT\";1aLAffR\"Z\"hk1J\\,)`RK7CMg&?S5AW%R$@\"0q0qeE8*j`00Qsr@1>b>lu^.Bcd7qF8XKQ0\\^pbh\"6h`^8^pg\"bG-g5Xp1*S8#MY%_snZg^gI-sCj[I-Ylt\"Gij11>fAQ)a#=@,ZD9Xd3UNZnuE9Z84)Ws!R_HB.5Bi;qn=p+s3J)Jm/s2'r=[5]AjP%qDMFb<0RKfq6@DU6CSVsH%&h3O2nN]JdA]JX;GWKFa*?lRu+m^L$dUHd`;`0D'@FHL-72Dq/CD!GNiicU5@>/*XBnLC`7,c)k/d-57S_9BJ)G@h'Kh4:Lj;*)3i6VYuojSZE+`jKtCI.ULpVn!+cH4?6/[/%JjD[s.+EonD1q(6,,oc$2j_3#Q24=r>`!QhpZ*!)^#16h(\"1.P,=3Q#S./T\\_(BuH7e73/W58edif=E4Cg@g7pWd=TsrH7CqA10`Vk8ANQ(:W5<8Up;)QtG5C'p9nkrSgY?TkfqG^28nfR'7FaL$+DiiG>gT^,5L\"_Id.\\!IVF0QO^lB7*jD)(g'M26^%,m$Ue4e9Oi1j!KdL[($%\\u<:TbW`AUY>%qNVTGI@7Mt`JC-*s9Uddhgf.jgRl!8#pKSC>Za47TWm],2,5P@2PYp<+LqA)A]i>MO/I\\sT.PKPgK[B@^U/XNbF,NT#@3$GTtsg=VKp2,i=Fa+`dMgo*)o.DZM04m`a4,\"rleQWpUT-8)k0/_TqchUh\"bCeVkt-ZFKAX1h2Kc%eI^9d2c1ZQUCrMO*MI%0X@c_f%*_n]!?h-lP7n(&A!]@Gk3ZR8QqpYXg'bZLJJ]`\\mhaM14didH$bT6[jeVVf.Ag9E3-bYkYaQVdpO&Hb:g6iLc5%'9#*_.=$@AT@eok+cU\"5u,%Q_U6@=%Fb@>jSKVki\\ffe&gZ$'[UMhJ+A$PQ&=r\"p-'YD&I=fWjK$)^H+SMRS5G?:lha`(.95r(a6I\\AM):W`c8_iV6^GE*;!YF]pa4:D>NWQ,5g59*-WTd_]O9h#*F')n[mlPP'[a/BupV)]$4d->^Eujfho(%WLnjWP3E.Ij\"_&?5Znei\\pAcIjg$q31t6f84)Q3Qf=^3tI0k\\Ps%j+#eks.@%PN(eslXW/mGa7=e@(pQ^,/E+pEa#S-7f\\##>d*`IE+YFE8'YRBY&KN'SmU4%>4Lc&peWFHfCt\\#ipHtH37+*BD<_oLiHXAgN=#J97kLht-/ee`e=ZLt1%K!8ok4NN]jB\"KboPMVeCPhun`Vh/*_.X>)BSil]>uMiH7jUn3CH,VA#CU!BrXWC:(hA<]=C#aqd=mRhR:N+EJ8JBKm==FpZjJuVCao&`[@6^%'9CIh8)m,L$1AsBL!2fcqe+5>1/Xt\\Ss-0?CTDD^&CUA]XDjA)mqMHr`\"Y0X^u=+^SR+jchU/bhX_M#l\"[cASg[&65\\Ss2kVjln\\lI_ZnOBK*9H&LZ4\\2W=GISbYdfkDnFKNiVjW'L2Mdj$^4W6a^lhkaBKnKior+%F-,#>5p3:i?*jfa^bq4\"2c:=2n&ou*#Srr0CqVfWApjP_g6,Ah#(W0YHC\"8>STo\"jZ0lQ`[VkOtela(q0b^fW\";/9Ga$rp&)/s,]9en)Uj(09.&6k0Z6^$MG_[#E=%7#\":f`AOb[KUuZRiO>:/Hb)Cr8^jt)?T^Q+BQfMl#N'5Wu8r#d1u3@.2BfXdET/qpb5J)CQ$Lu%D2Kr=qgdV5Qbj>-;-7MO`T(Oh\\^k+P]lX5U6p5Qb+Nb>*]]fgb??XoWjSkU&r\\qT>E0p>4O?diS=:J>_U@2%0``SMO]6!,Ii@dL)_)oFBCi1Qm\",Hu6MDB;#$AEpD5!sajmS>V!BA7s6%eX$Kr$-78dcIf*%%fOgp5#`+-Ms;fTo>kY0\"H.sJ[)A0G2I3a$*fK16;foVbgP9$kk]E?[)[hknUMZF+JTG?*1kp[.o`JLULYH;(p]5I8h8Z:)$Q13(n[CjmKQ?#.,hME+QG`C)^ItW#r#\"55Q0T\"FqA5lu@/HDIb$>(#$HLHpZ!p!OX-Jib!%pY#!F4n@EKWf8Up=Q7^\\L&(IF2f\\CF*kn(M+#OMWDf_146IZ7r*k,fY/J-S5X%+QWHe'@VCm+=J>Mr69:I$p`jndt]>4Zsgo.\\:g-$',iDZA`ZiHpF[t&O;=$:/Yf>shZ.VTkKN?0@MC8k^Rtg@9gAhe5\\'K+<=P/($h7We($_^8eG@jInW#VMRB/LGKT:Zs,RXP;A3,Z13rFd9[']!O`!f6'?so&EY8(DgsfkSLdYKDRHn0,0ERLm\">\\+Pq:Y22u;=B\\[q@-j>F>%92H>GWX[oEDTA-g^=hSbb<62q@[R%[Ol;8f*jqUuK1s2b@C!$-860uPG[TqBJ[uK-kPJ%r]\"e;m_!'>VK]t&*&<@7cbfCbCjfgo9b-3H=0l![>0@oQK?X9XkdmRf%&*qID'C7n#LIaBPKV')5GDSbH'N,4oKcI\\Fji=(')0BGT2[9V18W)B1W)\"[ir[[ZkYWem)d:L^tWD.GN(pr8[4D(#M@r<4psu-^0Fo\"%`+a;\"1-)(@9ldpQ=/dp=`5T3]:Oa_GQlK_CE,+[7#nQ3fe&!lZ,\"bSu(+C)T.F0c83ehcQ]O(jc)!8G#/tu&_)h_PFgK&VgJn5,'\\p,#)^KgG9FKd)?/';d4\\=r#H$;9-Jbi0MkBW!%BQ^jAkeX3hI0N:\\8ANSlu\\u%]]*LX\"W)ANhr\\ru.FDREAf=K7M((aH(%Z1A?qReL?a.oWFC)7Wm#@i-+7S2+lBql-I+7BQi9T`\\FK'**&3@g!FO^55CDAq]]'Mt`@4<+sQ[1aEBG9mjoah*X='i^EQ#@P<+nqq!Ih@SVgK'KlFmj(L5FJg_2YCLgLm_XJb+QcL?1fk0dK#<\"r1/3CT=Z-jr1h799h+c=#6&/1h@iPUlP'e.7?C='aC7B@iQ0Hr`YdFgHe$Y_.5';7;1'Zi$/JuJ`HQ*_F=&A#5#7ZsGP927CHoRmJZ_2fDX+uFXHr-1s`*'A?E#%npc_!pYMrtpg<%&]+1+=eX&6O6:XSI3h%Eqr7]UN:\\E]ED/:R*!QP^sM:Y[AuF;mBKi\"Te5?+.\\jlAMO(%`Yqhk$[bR\\(=)0A7->cd_p7CE\\93[4]7kSk94#D,550qYi6+nt3e&**:c:T^IpdGsXmgO\"WX=;k#cH>fPP+g/u@ToR-EdE%`HgQ\\aM-;)\\W=2FC(B/[ga]\\`GEJHH)BFrTB;m#]-rgn(3p`8B\\1E$ogYY3ngR8g@kV+&@`:9or*aDHei-&&9T&d9fBP1?-iX@sXK:o_L/SK_+82SDHZo$<*:CINiZf7I0YgB%k4Gu]^)76J)dKQYd^dQT.-&H)G3\\82EYbc*p&UFIXJ2?etLR!^.AhpjnHYTkWGYf485%O>i_c1#e*B\\N#H+F]%t@^>Ei,Z\\bfd1q)P]0HkgcoSS[it\"K]AI4)5.7e`G0-:*;,fHq`BKOW]JiBW_a['Cg7s9aB@a>K)sY>R,^IlX_)/kf:)X^QO%kMkR-?t4D8>h6d\"mVdO,OL0alFuM49d5`WG.PP1/OU:=b$uPBHeiqNkSZj.?q\"8$_E7\"%fI0?IFrd8)A5CoOD`;jGpYT\\Q<^&O0RGSq`tSMOKB'BN?/4F-;mK&u3dA5L@hLR0V%Tdc-N[kit(4M8[nc\\94BT5LL%Hk*;V,13@=@3giX)-VFTn8lW',+U4_k+QgY]O@QQr\",&,oSI\"X=6H/'-s[^[Os5p61fBoPOF:jM5s[Z`D7qm6>3S)6.4oONm[W:n1Q%KEc(R-H3N\"7?'^ik5=\"DF.eWB[fiN=b.&8C!*Mr#?#]ID\\MM6r67ohdO8R\\4YY9p1m2Ya$8a^D:6#a\"d?QL`JL)3%40e\"!g&pU/AuebU.IQUckEW.]+tumDA;HQB(M*\\Kc3:=jO`@aeN\\41IK$r'4[n;,11_6FUD8:0Z8-sPa:N5&Yf]8NTkjIaG6*6$k\\V4h[\"lQ#bR0e,bnc6jB\">0_Fc>pUCs%*R+-Go8nZCP1^PQ&PeLYh\\0B$[pFdG0/CYGHa:rOr3BZ'Dg!3&,:#fRXO(en,.#ZnD+.1jaQ@b6[(l::;/6+?NKGR^QlRG0m<*lruM#r^C.M!`_PA)b)aO!Kt@=p-ZAP4M%916pBlCC@I3'%aDX^S3:ukqra*IoakuSp=bN:oSEh%Sq10Yu#F=luIqiT^jG/=>,]rp2rY%%s-Z9C(MucJ0E.VZfj@@)]hr.#5nE-TmR$B'l;4Jqk[-'#1kBLH=>U5r4):mr:>lPP@\"]<:4X=tYM^8o4ha]79:6palNNHp<<)aY1Ji;.(E!V\"K$sNU,Ji,+h=54KQ_iPLoS%XT\\c_8c.#N^Y>V#[!Vl)`?I.V%c$g[6@lo\"3@l45S2SkQDnRbNA-]M%(3g%;`f$V)Cm4eL&EN#%!/oN)_78,90)R6T)m0V&-(@R7X#&h[[hILj/)2H)0.iGR[/%!;gS%d=)]3W,2^?)$c&>--$UD?@[O\\c4&B%X3W3!#^Z\"E@WK7;C0lZJR$aI0HhpE6F#c(i@)K%J2P?eU6#kO2=NO7C5^5nPG2h^(+Ps'(7#gc>&1/HQ&I#7_/+n`=?!Z@;B>C2T?fHaHkgIpHRY8RI0e^OH?6V1*9gZ2Ud4Pd5_7hqUBJ9NicB2$'680)':E\"VY5cu'[6R0#AF6D^l5jOS?l3JU;$VkgQpJXkL52Kc6j,nW'FdGO.KTZ@&.fHDJK!PN:kB4*)`;Ah@Ua`)Cc60Qc,N7qPE!R^2\\0E(-7$>dfm%NMW;]Rm2_lXuc^r$7h0#-bWkML)ea9A`mh[i4L1XGO@Yb%iU4*Y]Ojp!dFY8LU#D!2^@&B`32(.Bf`%DH#HD!F[c8BoELLFB`'+[TJOVikJm_n1R+VCRodtkL?F/&K:_c(DE`W6\\J1d_R0hM;rR-XrCRQb22dEBGR0?BFd?ro7(P9Tf]J,snbFAo5#!:8;WMfi*J]Rjfck$GgADCoe5LYID*i+5(t1jlMk2ul/]&eQ!&)/Qd;7u2fj!-V)SpSA#l2XgqIe\"/Uk\"uN>js(L(SQ+h?tOc09l-/s_N,U_`B&cN/.gP6Qr2G_kM9NYV\"`S^)*SJgfZ/mPcAomoI4!L!FKgd$U9K_]Y7SCHis5QH`0%eaY/m5.M,dlhUb7C*gJ-nJ..#8%Z'&DnO;1]W)ln`T'n72tW>[kjqUJiCtJ3Rl)r00C-#6CP9&.f[,NFA.e!Fd2=)m!S@'Lbm0rl6@0ei#h.&7W%NXn9nRPpI\"7Hj\"EL6_]/2dOU1[Q#EB8CG\\)C[l:,cF\\3H0-H^/sHYr;8f)#8Z(mI'5_JFEE`aAN#E8r[A;k]FL7/K7g.4k\\)DH;L3WZjN@^Vn?c\"Q-b4dBkqLHaol7dr-O^AYm2ZIs/=HYC\"+O9L#69ng,X&XiFXZhd#_H*\\.&QJ2E?;SHCoAm#ngCa\\3(Ob&n#bsP/N,-HQ%eHg$6U7+S]r5uQGGot\"CGN\"4U:ME\\.4F>%c>:,eF4nRMm)%7pi89*R@ZiP,F+&L?TPhC9kcFkp\"L)Wa!U_92ZRXb`Yh>hT?6LV^C[(n[RV\"4Jc/=M>pHAc,3;?^F#!A;E^e)!&n%]%iJ>,!k1VP27cd1>>>(iIGd6[0%`TJ]ERhQmn.a\"ejY)doJgL-4&(;*tfZ.`I@r6S#ZkO:j#dT:Y<;[!=-YfZ7-4\"+[&]3p9`(/P&1.01UTT3Ui`7b>J=$d%5UM%a+X).ToC#jpc?$7`1gJ?GZQFUULtjpETbTL^7,5W.=P5m?C$&rZAaC139/77'A@:2r.C$H4EVGj0S)7-d.V'FAVl0=O>GE=3KfoeL5kT,Fe&,,HC.->p)]6EuD9PTHNhgi>^\"ePcc>TLS4b0oUbA+6^uYE9F9]]N`]gB-4:%`r\"!/jCER4KkVUK7*e*0]\\ugqm.??F48K#Q+6#>33_(hD9e#-V?sueO0>3U'*4biTdtC-Z#k7h`p5UfJU:=]l:5=n%_'V0)E!_[T\"50<4$m]>11(QN$/AF(=%Eu_H_+I`Af$IV+tjfYCKIG5**7*\"9&.&\"%.=HWuFTK,kO.sND`Z!rF$Jnhf3IRs$!g`fP>Uo]ef\\ldrK@BXZA:If!uMKDQGpe]kQ/ONiX[t?aY=U)4nD/G^gOuPASJqp8o]Gn1ks->]_e0h/[_uMB?3-\\N\"p%NP`h*q'XH8CpHhWL-Fic*GDG8Q56*\"]B+4K>\"r%dH'F:n5$X4nfpWDF,hWq,Y7%\\SJsDO$V&3a>QQ->YHd/qhqp53G(?D3m*2$K_K,Kn%/I<^07kZ9tQa>HRrW(=QuZJp:GI2p\\d>e*IGKm&;4307O>1)T-A@QEAWTc!-G+B/WUHufc`LA7Y5_(#2Va.?2(nqh+)b>f#D&L!tHlF3cQ^#\"o*^(&5W&'Cr%a9%N-*m[06LU[$N4Z`G=r[1tQhR'A,T_8NUD3Iu'6q$SOFf-[1qrY]dsQ-ZK\\cR9_;&1EZ%Z2\"4dinXaH53\"NCi6M#@)1B^B-S@F;:5lJp$T]=q]EYENn7JG_F[C`P1J-Y;A;U*BK,rM)=bgYMYJS?Ia4RJ&YDW=:cbW8hj4qI8M\"NXC139/7:J[LkS4'*N;-'ZO+s>T=q=&L-D>;Djkl76T1NKh3bi/s)6QLSd0R+9^Eb$fPDCV&mGtIlLef'B?96)`2Cb(^pBo_$.U`kg-bR1kJaTDNY=\"Ar=mTN_3VD4Ru)M^+gM>hMem5cd!77_Zk\"ZK'_!9.KJ8M\\:ASUX'PCulMbJ4!%@I$Z0aob!p`VV.F2qha3=M;Pn2X41r^$/RZ`(U.qeRR.iXMp86].`DBZAs2)JsiSs>h5)kJm`-@>ZDetW*)L6PKt8^n$OS\\'KObIGi-MX0!3&66-)QLPqUj8'htqbqK_G>_rMX8A2GI&ZXPB)73A*Tq%)>hZ\\seq$ukBjdI+S4-X.l)Yl\\d7Y@RjIsVOaKl5*R&*V7;'7\\gc%_;l:8.\"]nd5)C)0]$.g/SM_la0OBLEg[[VVp*LD5c^O&((Eo]kkO\"dK[N=7*J,$>5=<,gI#1>pi=kK8PTcUd>M)aI4q[UCE@1[0h`6FDTl'92qY\\/s(AYMo;L?EH5[;XejgV.H4rm$\\cW'N8=_`/rrAEP(sVcOoIBd[HOhW;8$5C2FL9Bo!q&5V'3^LPnaeA[?>+:Db`9;ne?4ES?Pp9GHu[-uND%ST`50_.]/R30\\*(ZFPNpNM].i>Y)0FCcBjK>Rc4ArVLo[edYua`--4[>[%Cr[;r!!WHc`HY1ZeS+$g\"&oUBMo'r\"COZ6ejI_%oQCK1*0+TQ?#q6h)qoe(>([IUR]_=U\\GGDS>c/m&8f=J#2IJ/shlbn*oq_l!,\\PT>@G&q!sFakJr/bJ\"W)t,?#gA_9!4nDSK5+&o<1O4+S&l>qW_I!Bb0RuEgI/l9\\eRhUk\\t<.\\Pi]e+/+i@03o\"L'bGc`Z;2W0u:$(THncEP`n,Kn6qEKu\\\\67O.5JF+sW[U4lS)L_7kZBk@#;_t/J(pS+=L6flBmG&^E*=Fi,8']X3;m3kS4#EB48]%;1G*61S_0LJJd%\\7J'Y7$&e\"LR[4k1S+u,8$kS,M1=%=To-XWSp=q=mZR=r#V(Y-U-,Ep'/a/FuGB\"0%A,[[<@W*3LJR7&<-Tq/,W?6+OO7o,388sI7VMHl0/jm=hGCn(nUiK\\30d'Y88hLR6[[B3\\o]5k]9OTA.7K-^lt&VEnl@;b,LU03203Q2su$JeAVU2@n@L0&W;9c@\"V?%NPrHIVS5Z5o>^(bf#*6:B9sFZ.P=tt>DQ\\mGuRfN:$oQcG=WtQ^c^)`#DsjAcs7PFFans9h#1B^4teBp1U/#OJOtG#QdYSqU^<<:l[fJ1.2!je8Y@%RHC!=_(]aItRA$&:9C$]fmen92G&bpqrV_*\"fkAY9AhYd@;pQ+u7*kC)OD+@[EmS3nSqmTuHjj=urH%th0e;k;B-2&IhPDg'g[bBQT8_o.=']+f]b2nLgQ;EX24W/RC0XslpO/BWq=TFAJLYc\"^WF5$$m6$>&dNCTYlW74+:hOrYY+$F%_r'Sn9GFN=>5XmUTp@N(?.n'$fuG@@i0(H6'nPcT]#dB.O991)E>\"d(7u=]8423`9\"O#O(X4=&EM;*U`VM*(Y\"eWktD9Z:^t^r[r29\"]s&E0OKH_YI^FWfU6_\"m1,e-@UfLF^@e@Dnt/^+d)sJ,T\\S7fmIJh1cjT:3\\t+iHf #include #include +typedef g_buffer(char, G_CONSOLE_BUFFER_SIZE) g_console_buffer; + typedef struct g_console { - sl_string input; - sl_string output; + g_console_buffer input; + g_console_buffer output; void (*log_callback)(log_Event* event); } g_console; diff --git a/include/gear/ui/gui.h b/include/gear/ui/gui.h index 2f283aa..3a594f0 100644 --- a/include/gear/ui/gui.h +++ b/include/gear/ui/gui.h @@ -25,6 +25,8 @@ typedef struct g_gui { g_gui_context* ctx; } g_gui; +extern struct nk_font* g_gui_font; + // src/ui/gui/create.c g_gui* g_gui_create(); diff --git a/assets/OpenSans-Regular.ttf b/res/OpenSans-Regular.ttf similarity index 100% rename from assets/OpenSans-Regular.ttf rename to res/OpenSans-Regular.ttf diff --git a/res/happi.jpg b/res/happi.jpg new file mode 100644 index 0000000..b56e76c Binary files /dev/null and b/res/happi.jpg differ diff --git a/src/main.c b/src/main.c index bc6126d..31d5419 100644 --- a/src/main.c +++ b/src/main.c @@ -2,6 +2,7 @@ #include #include #include +#include #include #include @@ -14,8 +15,6 @@ g_renderer* renderer; g_camera* camera; g_gui* gui; -struct nk_font* font; - void init() { sg_setup(&(sg_desc){ .environment = sglue_environment(), @@ -30,43 +29,10 @@ void init() { for(sl_vec_it(layer, gui->layers)) { log_info(" %s", (*layer)->name); } - - struct nk_font_atlas* atlas = calloc(1, sizeof(struct nk_font_atlas)); - nk_font_atlas_init_default(atlas); - nk_font_atlas_begin(atlas); - - float font_size = 22.0f; - const char* font_path = "assets/OpenSans-Regular.ttf"; - struct nk_font_config config = nk_font_config(font_size); - - font = nk_font_atlas_add_from_file(atlas, font_path, font_size, &config); - - const void *image; - int atlas_width, atlas_height; - image = nk_font_atlas_bake(atlas, &atlas_width, &atlas_height, NK_FONT_ATLAS_RGBA32); - - sg_image_desc img_desc = {0}; - img_desc.width = atlas_width; - img_desc.height = atlas_height; - img_desc.data.subimage[0][0].ptr = image; - img_desc.data.subimage[0][0].size = atlas_width * atlas_height * 4; - img_desc.pixel_format = SG_PIXELFORMAT_RGBA8; - - sg_image font_image = sg_make_image(&img_desc); - sg_sampler samp = sg_make_sampler(&(sg_sampler_desc){ 0 }); - - snk_image_t snk_img = snk_make_image(&(snk_image_desc_t){ - .image = font_image, - .sampler = samp - }); - - // Complete the font atlas setup - nk_font_atlas_end(atlas, snk_nkhandle(snk_img), NULL); } void frame() { g_gui_update(gui); - nk_style_set_font(gui->ctx, &font->handle); g_renderer_begin(renderer); g_gui_render(sapp_width(), sapp_height()); @@ -74,6 +40,8 @@ void frame() { } void cleanup() { + log_info("Shutting down"); + g_renderer_destroy(renderer); g_gui_destroy(gui); g_camera_destroy(camera); diff --git a/src/ui/console/create.c b/src/ui/console/create.c index 1fccb14..e070a83 100644 --- a/src/ui/console/create.c +++ b/src/ui/console/create.c @@ -1,23 +1,41 @@ -#include "log.c/log.h" #include #include +#include + +/* + sz combined_len = console->output.len + len; + + if(combined_len > G_CONSOLE_MAX_LEN) { + sz required_trim = combined_len - G_CONSOLE_MAX_LEN; + if(required_trim < G_CONSOLE_MAX_LEN / 10) required_trim = G_CONSOLE_MAX_LEN / 5; + memcpy(console->output.buf, console->output.buf + required_trim, G_CONSOLE_MAX_LEN - required_trim); + }*/ + + +char format_input_buf[G_CONSOLE_MAX_LEN] = { 0 }; +char fmt[G_CONSOLE_MAX_LEN]; void log_callback(log_Event* event) { - char* formatted_input; - vasprintf(&formatted_input, event->fmt, event->ap); - - char* formatted; - sz len = asprintf(&formatted, "%s\n", formatted_input); - - free(formatted_input); + strncpy(fmt, event->fmt, G_CONSOLE_MAX_LEN); + strcat(fmt, "\n"); + sz len = vsnprintf(format_input_buf, G_CONSOLE_MAX_LEN, fmt, event->ap); g_console* console = event->udata; + while(console->output.len + len >= G_CONSOLE_BUFFER_SIZE) { + char* new_start = memchr(console->output.buf, '\n', G_CONSOLE_MAX_LEN); + if(new_start == NULL) { + new_start = console->output.buf; + } - for(sz i = 0; i < len; i++) { - sl_vec_push(console->output, formatted[i]); + new_start++; + + sz len = new_start - console->output.buf; + memmove(console->output.buf, new_start, G_CONSOLE_BUFFER_SIZE - len); + console->output.len -= len; } - free(formatted); + strcat(console->output.buf, format_input_buf); + console->output.len += len; } g_gui_layer* g_console_create() { @@ -26,17 +44,8 @@ g_gui_layer* g_console_create() { log_info("Console allocated successfully"); log_debug("Console pointer: %p", console); - console->input = (sl_string){ - .data = malloc(1), - .size = 0, - .capacity = 1 - }; - - console->output = (sl_string){ - .data = malloc(1), - .size = 0, - .capacity = 1 - }; + memset(&console->input, 0, G_CONSOLE_BUFFER_SIZE); + memset(&console->output, 0, G_CONSOLE_BUFFER_SIZE); } else { log_fatal("Failed to allocate console"); exit(EXIT_FAILURE); diff --git a/src/ui/console/destroy.c b/src/ui/console/destroy.c index 1c8c0cc..d3a9bbe 100644 --- a/src/ui/console/destroy.c +++ b/src/ui/console/destroy.c @@ -3,9 +3,6 @@ void g_console_destroy(void* console_vp) { g_console* console = console_vp; - - sl_vec_free(console->input); - sl_vec_free(console->output); free(console); log_debug("Freed console: %p", console); diff --git a/src/ui/console/draw.c b/src/ui/console/draw.c index 6abb7d7..4cfac32 100644 --- a/src/ui/console/draw.c +++ b/src/ui/console/draw.c @@ -4,30 +4,23 @@ void g_console_draw(g_gui_context* ctx, g_gui_layer* layer) { g_console* console = layer->data; - if(console->input.size >= console->input.capacity) { - sl_vec_grow(console->input); - } - - if(console->output.size >= console->output.capacity) { - sl_vec_grow(console->input); - } - if (nk_begin(ctx, "Console", nk_rect(50, 50, 500, 500), NK_WINDOW_BORDER | NK_WINDOW_MOVABLE | NK_WINDOW_CLOSABLE | NK_WINDOW_SCALABLE)) { float frame_height = nk_window_get_content_region(ctx).h; nk_layout_row_dynamic(ctx, frame_height - 42.5f, 1); - snk_edit_string(ctx, NK_EDIT_CLIPBOARD | NK_EDIT_SELECTABLE | NK_EDIT_MULTILINE, - console->output.data, (i32*)(&console->output.size), - console->output.size + 1, nk_filter_default); + snk_edit_string(ctx, NK_EDIT_CLIPBOARD | NK_EDIT_SELECTABLE | NK_EDIT_MULTILINE | NK_EDIT_GOTO_END_ON_ACTIVATE, + console->output.buf, &console->output.len, + G_CONSOLE_BUFFER_SIZE, nk_filter_default); nk_layout_row_dynamic(ctx, 30.0f, 1); enum nk_edit_events event = snk_edit_string(ctx, NK_EDIT_FIELD | NK_EDIT_SIG_ENTER, - console->input.data, (i32*)(&console->input.size), - console->input.size + 2, nk_filter_default); + console->input.buf, &console->input.len, + G_CONSOLE_MAX_LEN, nk_filter_default); if(event & NK_EDIT_COMMITED) { - log_info("cmd: %s", sl_c_str(console->input)); - console->input.size = 0; + log_info("cmd: %s", console->input); + memset(console->input.buf, 0, G_CONSOLE_MAX_LEN); + console->input.len = 0; } } diff --git a/src/ui/gui/create.c b/src/ui/gui/create.c index 07d6135..b607e27 100644 --- a/src/ui/gui/create.c +++ b/src/ui/gui/create.c @@ -1,8 +1,11 @@ #include #include +#include #include #include +struct nk_font* g_gui_font; + g_gui* g_gui_create() { snk_setup(&(snk_desc_t){ .dpi_scale = sapp_dpi_scale(), @@ -21,5 +24,51 @@ g_gui* g_gui_create() { exit(EXIT_FAILURE); } + struct nk_font_atlas* atlas = calloc(1, sizeof(struct nk_font_atlas)); + if(atlas != NULL) { + log_info("Font atlas allocated successfully"); + log_debug("Font atlas pointer: %p", atlas); + + nk_font_atlas_init_default(atlas); + nk_font_atlas_begin(atlas); + + f32 font_size = 22.05f; + struct nk_font_config config = nk_font_config(font_size); + config.pixel_snap = true; + + g_gui_font = nk_font_atlas_add_from_memory(atlas, + _binary_res_OpenSans_Regular_ttf_start, + _binary_res_OpenSans_Regular_ttf_end - _binary_res_OpenSans_Regular_ttf_start, + font_size, &config); + + i32 atlas_width, atlas_height; + const u8* pixels = nk_font_atlas_bake(atlas, &atlas_width, &atlas_height, NK_FONT_ATLAS_RGBA32); + + sg_image font_image = sg_make_image(&(sg_image_desc){ + .label = "Font image", + .width = atlas_width, + .height = atlas_height, + .data.subimage[0][0] = (sg_range){ + .ptr = pixels, + .size = atlas_width * atlas_height * 4 + }, + .pixel_format = SG_PIXELFORMAT_RGBA8 + }); + + sg_sampler font_sampler = sg_make_sampler(&(sg_sampler_desc){ + .label = "Font sampler" + }); + + snk_image_t snk_img = snk_make_image(&(snk_image_desc_t){ + .image = font_image, + .sampler = font_sampler + }); + + nk_font_atlas_end(atlas, snk_nkhandle(snk_img), NULL); + } else { + log_fatal("Failed to allocate font atlas"); + exit(EXIT_FAILURE); + } + return gui; } diff --git a/src/ui/gui/update.c b/src/ui/gui/update.c index e075e6c..0855670 100644 --- a/src/ui/gui/update.c +++ b/src/ui/gui/update.c @@ -6,7 +6,8 @@ void g_gui_update(g_gui* gui) { gui->ctx = snk_new_frame(); - + nk_style_set_font(gui->ctx, &g_gui_font->handle); + for(sl_vec_it(layer, gui->layers)) { (*layer)->draw(gui->ctx, *layer); }