aboutsummaryrefslogtreecommitdiff
path: root/src/serialization.cpp
blob: d30e83726f307cac9d58f83c6f4f80d93d1ebac3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
/*
Minetest
Copyright (C) 2013 celeron55, Perttu Ahola <celeron55@gmail.com>

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/

#include "serialization.h"

#include "util/serialize.h"
#if defined(_WIN32) && !defined(WIN32_NO_ZLIB_WINAPI)
	#define ZLIB_WINAPI
#endif
#include "zlib.h"

/* report a zlib or i/o error */
void zerr(int ret)
{   
    dstream<<"zerr: ";
    switch (ret) {
    case Z_ERRNO:
        if (ferror(stdin))
            dstream<<"error reading stdin"<<std::endl;
        if (ferror(stdout))
            dstream<<"error writing stdout"<<std::endl;
        break;
    case Z_STREAM_ERROR:
        dstream<<"invalid compression level"<<std::endl;
        break;
    case Z_DATA_ERROR:
        dstream<<"invalid or incomplete deflate data"<<std::endl;
        break;
    case Z_MEM_ERROR:
        dstream<<"out of memory"<<std::endl;
        break;
    case Z_VERSION_ERROR:
        dstream<<"zlib version mismatch!"<<std::endl;
		break;
	default:
		dstream<<"return value = "<<ret<<std::endl;
    }
}

void compressZlib(SharedBuffer<u8> data, std::ostream &os, int level)
{
	z_stream z;
	const s32 bufsize = 16384;
	char output_buffer[bufsize];
	int status = 0;
	int ret;

	z.zalloc = Z_NULL;
	z.zfree = Z_NULL;
	z.opaque = Z_NULL;

	ret = deflateInit(&z, level);
	if(ret != Z_OK)
		throw SerializationError("compressZlib: deflateInit failed");
	
	// Point zlib to our input buffer
	z.next_in = (Bytef*)&data[0];
	z.avail_in = data.getSize();
	// And get all output
	for(;;)
	{
		z.next_out = (Bytef*)output_buffer;
		z.avail_out = bufsize;
		
		status = deflate(&z, Z_FINISH);
		if(status == Z_NEED_DICT || status == Z_DATA_ERROR
				|| status == Z_MEM_ERROR)
		{
			zerr(status);
			throw SerializationError("compressZlib: deflate failed");
		}
		int count = bufsize - z.avail_out;
		if(count)
			os.write(output_buffer, count);
		// This determines zlib has given all output
		if(status == Z_STREAM_END)
			break;
	}

	deflateEnd(&z);
}

void compressZlib(const std::string &data, std::ostream &os, int level)
{
	SharedBuffer<u8> databuf((u8*)data.c_str(), data.size());
	compressZlib(databuf, os, level);
}

void decompressZlib(std::istream &is, std::ostream &os)
{
	z_stream z;
	const s32 bufsize = 16384;
	char input_buffer[bufsize];
	char output_buffer[bufsize];
	int status = 0;
	int ret;
	int bytes_read = 0;
	int input_buffer_len = 0;

	z.zalloc = Z_NULL;
	z.zfree = Z_NULL;
	z.opaque = Z_NULL;

	ret = inflateInit(&z);
	if(ret != Z_OK)
		throw SerializationError("dcompressZlib: inflateInit failed");
	
	z.avail_in = 0;
	
	//dstream<<"initial fail="<<is.fail()<<" bad="<<is.bad()<<std::endl;

	for(;;)
	{
		z.next_out = (Bytef*)output_buffer;
		z.avail_out = bufsize;

		if(z.avail_in == 0)
		{
			z.next_in = (Bytef*)input_buffer;
			is.read(input_buffer, bufsize);
			input_buffer_len = is.gcount();
			z.avail_in = input_buffer_len;
			//dstream<<"read fail="<<is.fail()<<" bad="<<is.bad()<<std::endl;
		}
		if(z.avail_in == 0)
		{
			//dstream<<"z.avail_in == 0"<<std::endl;
			break;
		}
			
		//dstream<<"1 z.avail_in="<<z.avail_in<<std::endl;
		status = inflate(&z, Z_NO_FLUSH);
		//dstream<<"2 z.avail_in="<<z.avail_in<<std::endl;
		bytes_read += is.gcount() - z.avail_in;
		//dstream<<"bytes_read="<<bytes_read<<std::endl;

		if(status == Z_NEED_DICT || status == Z_DATA_ERROR
				|| status == Z_MEM_ERROR)
		{
			zerr(status);
			throw SerializationError("decompressZlib: inflate failed");
		}
		int count = bufsize - z.avail_out;
		//dstream<<"count="<<count<<std::endl;
		if(count)
			os.write(output_buffer, count);
		if(status == Z_STREAM_END)
		{
			//dstream<<"Z_STREAM_END"<<std::endl;
			
			//dstream<<"z.avail_in="<<z.avail_in<<std::endl;
			//dstream<<"fail="<<is.fail()<<" bad="<<is.bad()<<std::endl;
			// Unget all the data that inflate didn't take
			is.clear(); // Just in case EOF is set
			for(u32 i=0; i < z.avail_in; i++)
			{
				is.unget();
				if(is.fail() || is.bad())
				{
					dstream<<"unget #"<<i<<" failed"<<std::endl;
					dstream<<"fail="<<is.fail()<<" bad="<<is.bad()<<std::endl;
					throw SerializationError("decompressZlib: unget failed");
				}
			}
			
			break;
		}
	}

	inflateEnd(&z);
}

void compress(SharedBuffer<u8> data, std::ostream &os, u8 version)
{
	if(version >= 11)
	{
		compressZlib(data, os);
		return;
	}

	if(data.getSize() == 0)
		return;
	
	// Write length (u32)

	u8 tmp[4];
	writeU32(tmp, data.getSize());
	os.write((char*)tmp, 4);
	
	// We will be writing 8-bit pairs of more_count and byte
	u8 more_count = 0;
	u8 current_byte = data[0];
	for(u32 i=1; i<data.getSize(); i++)
	{
		if(
			data[i] != current_byte
			|| more_count == 255
		)
		{
			// write count and byte
			os.write((char*)&more_count, 1);
			os.write((char*)&current_byte, 1);
			more_count = 0;
			current_byte = data[i];
		}
		else
		{
			more_count++;
		}
	}
	// write count and byte
	os.write((char*)&more_count, 1);
	os.write((char*)&current_byte, 1);
}

void decompress(std::istream &is, std::ostream &os, u8 version)
{
	if(version >= 11)
	{
		decompressZlib(is, os);
		return;
	}

	// Read length (u32)

	u8 tmp[4];
	is.read((char*)tmp, 4);
	u32 len = readU32(tmp);
	
	// We will be reading 8-bit pairs of more_count and byte
	u32 count = 0;
	for(;;)
	{
		u8 more_count=0;
		u8 byte=0;

		is.read((char*)&more_count, 1);
		
		is.read((char*)&byte, 1);

		if(is.eof())
			throw SerializationError("decompress: stream ended halfway");

		for(s32 i=0; i<(u16)more_count+1; i++)
			os.write((char*)&byte, 1);

		count += (u16)more_count+1;

		if(count == len)
			break;
	}
}


sM* Mp.+6]א.cw/) 02x2 ʅ6|G92a|%H`:UD<#38fx3-;c %k\!fpͬ3m(PRk,d:lh1c5>=$E=1ۜ=}1(%dV2jݶ5 `CF#H^-<9]#I9>`:&JSL?UV?P? XҵjL0xKZUq MFO&wP@!Hs P<" )Â"`P[1켯+r7bIHU-YN%n(8n2Lgh'v-{@`^Zyfkt1qs2zNr}SjOt8!$q3·sJǬBňu ,ma_-}9`(nn)%+ޒR uv{od ^gGZd= ܁8g;Pi1o"1s'3n@ۛ SxLj4Afylc3 9ߎ, rah [mx@ p脍HQw#@sQ ᳡+ZfFjY#.l9kP31Q6Df`p6-q1C%5-  ʏ'yeǟ<9GwW}"#ΖAC8vsdSO~\Ń$8`=,2mO,byB?ġGI$ #~JMs#zr1$ʌO(BIAg {T,$!G rNTpJ942FC*+dy2r*g;{.{MWyU[{5L$v6X$7l1B#IkmVm40nd;I?q:#3h?p'iMsКGN=:Ñdtd|ԝoάpSg5@쎸qp:ӧ=?5>YXW9:':Opw.]6aߞY!Ee*@jR-MxGQ<\*жuwwF}"ܱςmLVeƾvd< 666^"Żnp`mDtVUBƩ[r^2 LF 0,QkÚ sC!#Ccp M,93.31C#_&\3165;@of`,jpjdbGh4AHlFMq'lom6(q,J#wbh kK`k 8889>@{!N1>H<@Ӵg$``?rmI9?0F$F;| O(7;cx@4Q4D>dNm*m6F1?w؟,v=݉oO7C0}o5<)OI() cHg6sc>i̎96Hk NP}܅ى"qC3jU 6ٻ2իJS֟8!c#E,'?b)u.tՒz)_=`:L%<$\vg`;iՌrb`m;QJz30mNug::q':6Nv22;qC`6Gt C(| }gqko6h&W3(S ~@c2zspG;LaF3o!pl`qF`?'ȑ ޘ ~(KW~x>;GEmUof?3>岺Y[CH͗\2#:cN5.55Ue;f=y7%8S2bxm޶Q{OxF'J@U&W H+`;m s&SCvaѨ(ҞDdN'5k`=;Q#C;p=iǖ{aG91riGpH5D mfxaۺ$ڹih`&__ǗΏeޥ*եUW,R12=I?4:uppʝ '"8`NsG^k\o sB>;pMc#ANrlC7#ޔpn~zIFiy0x ̘Ww0`\=q(G9TK:)ίHhY;[iScf㿿8!'M+^6t}w%&ܕC8GL3hxIϘȯFNl 9(yrڊfC9[#Ǟ@eG&6L 6 1E,R,b,N܊Fر&ؼSaL#O8Xi_"接Ց$&gNgі}@v33 S\}km[V%u\ɬo ~oJ:eh㪕9d|ٟ:ȉΜ)uBlY3 A?8t`uۛbɜ#7rnN:pG8wGsL)ۻv[]v-vf~tfmjh쀀ddն6ffDحZmX;}1$v/sH$>L=Nf%g>5+@k\.8aFF òb'vnc`7jepAfafk %80\ ͛A" $l je;4`3(ri845ApĚ +SP&.\yA4 ^)agCS#G4?1$? |87w)dg',F1 ۆU* fZAQ}}z}>3XHynnn> cl6w]g;,˝F9(؉S19q3FLEbfGQ>A3Tk9G:r ? FaLbyD & =n'Z7θL?DR SAImUe-iL Szd&vr'ȝa;M =tI tێA \vͽ|)#5caM[[I$D1 L7OS1=@DI:o=@hSف;P߫"9%CPrahhخ͠K zΚA^~X+T31}C1V.!63J-|!'ɀ288h.Ybq=3-]FƠ`f5. hh1Y }A,4j5UYhu'AL%$'z<a0Gş ww~wh| G=v);?^Wc|kU,]3.٬5vVEkHIԞwxA9+ P'H!'5Ykb[KRʕ;3;{}U_  NiC) IuIc4IjT2O'E)`jLJi)'!|~(mM-am#(DSvbS _];#vaوfvaَvcNvcj7'7e)Ս!NH{0l}lJ뾪QJ{$$af'LmtG??kH[jۜ9%pw镌x'g<+f~Ƿ>):܏0G8+ʷ\^XSA#H3GźGHG>nS&slP'4K'p0 F{ш0e}0-\]?iTH@9*AKbx wTQE{ۇ [*GrDB ?,rHҙÙ1 1&\Kt^̛xTQ`RWzmd#c)f̤|Kh+RRjX)4S+IZJ1L*R( v=wO7}gc:xߓ$̙C9?=}<3Dv?ܟ0{PMȞ-o-09ᑑpv)߆ )ա<>vawo LYʊ*L ahJ=dhaځX 6q./юHkfѢ_@odA6E&>x1ɲ\ b%kM֚fiGќ/9~=8JFZsT4m0%-%QØ u)D, J!%'1Å*p, &-;hD"(B@,+2$&nᛝ20pEzU2aH32IZfak}}z(FcLi,46VM>ftm[kQ Uw V\ͼij^:P Mĝ6j <(-?CNrM4Q3fUYLbP#F,-kw,x'蓼9wqTNd5Fw;YF%qTQKn`"Lx|0:3FYt9-1K+9Loj|JpNp8{,B02Ha F 0,'-F1nulգ 1Ҙnhs>a N8;mڈm(B`?Ȧ :LeRVM b}ZSyJqsY/{C;{({fz=,²Δ3UUp-mw*"JxA<܂䪯|K<111lCAG8Ȥgxm̆J¦vfhzd'N=B-Bm;0LB3lNGwg.<{`_ ͝H{.vn+94JILɔf(̓1jѶeq?Ib) Fc1T3 }q'{=&y\{gܟ,gmG?UltLC tY=UWji oIj%jL:9}nۤmSQ sM%6LduK,gKvA&ԛѲdlRJaoHnf~#:!-?P3<("l,CAו5q$\jO4Sr݉=J p!:I dhotlJÍ,ȴt(02jDxsfj8KX \.K.+ l.+! *stC2I%3DH$hRkC""'EB[CEY 3h0iA;\l#Aa@aƛ;:4r\qM& Pؠ u3Afㇳ%)@pv81a>=ݷxGtl>0_d5 l@426ӿV\l,6h4 B63!1 @Sp5ÉX0c! s5P4?U)RcSPɫ3CB'1sZl--T^+)Oe<ݠmEhMt*;Olo V6JMs8&d swXخt e/7⹲IrbnDC!1؂J:W`Ehr60#}v$dh%b:$.dNLk7)՛MIګPԌi9њ$TCXobJS'3y#Is-3Y o9њN5';&󃨼FM*#~ʳS)?/~F)k23Ch j$YȻt'qJTH'|uLYS 8\#r7#<4)NTݴHѨjjƃASpH6g(j<atkK\FcZiNNtf5VcLd=ㆸ@y@ho1q24J.V ªZ,Afj޽! KZ BghVTwfX00'Lc̼gV1րy{jUyܖfebk5k\-ZWt3C!tom|Hӵ`КZiH16>pMRgெ?I"0D`b15А: mVa;;8zTMa45)[84Cb?(?7kM70` BVTUV2d@H Uw]04lF?*޳ׂ]3nϘ9O>jV`3߆~L؜3|VxXg3028?o;fKq]j*\l]j[eX+CeUsMuݞA988MHc\5=ټhklOY9Vո57Y)/f=J] gRK9U[@]^58eAfU@aX|$G4x5\4M@iªޭ+K?WK'e柵~E:kJP?rpl[,8C;!3߼!5Oq y5AY1q5['ūN oGM'.<rmpm/VB%;˗۴K\#0V;"l#ds j12=욶V4fFCXb73ǛmMl`WW,[P&&' 0",^0^06P ūvs{L0s98dnA#cc_+grqOZPI]FJDA  " R@ 3Ft TV Xf"z KCN#HAt̆ 蹄Lt㽘M[絳O8s{6 7嚉 5Ɖ7P]L øci4֡&h4*m 麻B9s^#){4 U@ [9mFMZ6 O' 3㴔ܘPnOSt Y(vO3 ̃`(5MS &ie'Pc93LHjM͸m.h 5GPpd2 >у T sNj6dK6` ؆dd\ƹ Jbd6sV zs쏀|C^6 A6mFiLFG3p2 ՜673jÅ6[`X>.1fݛ!0N+C$[ +#vNLU'cƮIlo&\S#PA9q{xaMk6#lbMs`fs7[&qfcc5&;^^^Fpqh_._"r+( ̎:yؚ )6x >P44vB,:kL6kj CP`D6.lJ8Bki]61sA:1 'f> S9mMѴJg'.sb@ўj&S31p`6 )5fj܈p;@;[ϰd\k5ڛ1"k#gY,alĖ3 `HAɲ1ap546fu-37H螺7>o5 &u|gl't36d¡Nkc9}c fs3f>|Qx&fI'M MRb3 p0tTK,$ʆ4zBf6"0՛}tYq<rN NG^ ) &  %1t6lDžji6LBh*SPk6q@m{!s,SRFD]ߜ!llZZdn\I P Ayɬ Y2#fHl 4&& ɫ=qȝ!䍡ǐ5RHn `L_MeeYSYYb̓it^15N;x&cno JsZkS$XS) *]uh- JXUZVD:#?W+eЦzvM).9`3 [9 鴚&r;IY aO $&20ifOvLYy'h4 baaΕ.crnJSVhvjIK49~8 a:X22fՂ)nڄǑ` l&>Rw)<*TfjGd|,D h2f[,6ic>KR4ԓ ơJ-sK#966^c68?\vWFU_6g6C1  l@Ay]/qmiy/#fcaF$f*jSd4h rnFԍJߋ:^>c mǬ 8wq:2of &Yj62LNXg=Un |GU4͓PW0ԓCXjRb6;Lɚ7i BEYS,[ dƫ j6U厵\˞Y0oPnMڶ۞#d.i}uW#?֍ft,LɷlLڌLJkd%SAFcL3:816e5LQ 3JM> /TnOgGk,ݢYxH3̳F60Vjm41Ac]V^Nh{f6ƕr8pPKigZo X+\A`Do[RXP-ZT7c)@t [#dlkƠ j83X;a,dh~ѝ$ލ3Y&5͞=%&9nN/WN%P$<)0%TMr+U޸H-:a;SQ;d4 m9!MYs >ê+I?'|,s 3 !NITi5P7^ <zʀO?O"Q4guwO\O/{<en3i<Va|9cQ5?O0Ljw>4 v#6C;{?].fg8(8+wþ{#vvǿFx o<;WPC*t`Fӓ̞ѢԻٷJ"?eTUQJjC6&f(1 ɆFD" i)$ZOD|LmJQ/7u_s/gY5_P7YSCA\,`Ď:zHʃ;gϵgʾdDh" Rvtl6K"حb&AI&B@Ue[m9 OMiG~ ю|GkZ{3_9T}EXq _ 2jE*U'=YMISNq7KK塯[& MW?w1@g6s&N8ʧV:NI'i=rkƮ[s>r+g5?v[F9蝺3I/jcc0~4GoƑGXX%lYdDDC 큁{ɥ ~TF`o9<|&egUr9h+WlبUcc=AT7-%I&|z95 *헉W- ~9]A^]#< :?rZ:7 pcVx:>/ >꧝OEf7H*Ir9u|W ù#gk3>ޟWa]3\rg&<5P?}ж[0$3n44]Ĭ3LSkzjiNnx{^@n֒*HФ ]!C3;@bDbҚ()͓uC8J{nwHx.J~(TyK\ջXn^l>'VK"$)9~H-:")ӥ 5D,D+[Ӂ*ҔNtjZzF*c6p)tDK9#Up.ǽFw+kuӆ8mL.$蝖.61 xe=33}䊞 h8 cgLq|&5/q7_zmde+[k-+jѪVѩjw\ە]EQm*XiDZ Je-ƊX6ءUE mQhҢҴPK[J%Ҹ?~LkQH1Ď A"0aC!$bYUk9蟞t&ơ#h'*%{Yma4'~vXhWfdf\׾`1Ʈn~Ksvj$'g߆&Gn[U^쾟o)i"cHfl"dɳfbl6lXdB&f`JMŬzԜ#ۯ.r5V? I(v/P?EǸ?cG3xDGl>I˚xR~Ɉz>sU>gg:wWo[JK&!I6 ;] uK+QE(նZ-")FkaZ(_|ϔG'SQ^m^9v5[  .zD<+>u\3ܿC3>:h5͖ vMve/ʲf&Q-0 ]_rɱ.ڧj'~UfВ>9c3 :iF#*?\Cxfэ$'\0 ix59!7;҉!=\R4"9(C@'W6~#\3(=!xß'ԆFpz`vypd~m2e R?iK*H&"LdAd&)F2"㯯s/_Oo;\ OMi sxٜ6#Nj,ǘ:Τ`G<|mp}|5g: QSNxc|=1ԡ:͞Lce%$1$''6xxO>w㷧 }cOZImU*LP! 2Q,jai634LZ2lЕ L 6V6c@g,+As L-=J\ NȒG00L)^=sM8>4@xh2@db%MͲl2!+)4#M E,kfzB ZHd(" $c$'C/x 0m4>%k3j8Wf3kvD?U7Tmյ(%&IBi RUAQUZ˫Y[vaؖ 6A$` zZ=_Ϯ.bNY }km^ɧ{{q110bYNy[ߟ0DBQ|`z=Dѧ[WAI׆'6E^ftMCk:ini842LW3ROY[Kaedd]훒\RUE`zz`~ ]O]&z9O>:#!˜vݎ?+oygޖ&eVkrD6U_mӡ7cg˩MHB? 7RI(B]laQїUsy^q;KQ+䛽npk,V> mIO wsk{06ގ>gff<FGDBgnX Q\G0hÃor:,XKrp4idkx5p4~x\=mjv瞚5BJBCM1ci- 4g+ybY rя8 Eҥw^Q(ּ}-}pm K2b. iJWbO[<4Ϡ1餐$8XxPAeaX K9+ 5ZTLyyնjeml띑Rnf3'qM뒪5K#6{TLfdLQ>vɀ|263~ =Mӆ}3RFndQN1±DN<" &5j-Ү"Z,8xyJ\Oﯜ lLbUK3 np ?IRYeu|mn |iQi+#nEœ33k\Ħ(f%|]|/LIr>G15R)3 w~֛Sv(EZjd@5l"8k8,eVaj8:6l*Ua.ׅ%^A6WZͭ;^j05@pLƫ;d|MÁU1M1f}ЍiTT,eD:2)%/jx>RPn8GCxS mz1 6Xcrwԍ"㌎?-t ߄0<$PFcwJhޯ; y!`O*+F03fNx3.ٺܝPHl yq4=w eqxMӯx$A~SSBT"JN)lJr3YR̲dCb]#fݶ[C8X%S]bllXU2eK6HlG}c̞)Si*~ F# Q-zC ܳHqgRiNiFN\V&leګq S>k$)*o9lycf7'GR 6^#Ukif&&'3GRp&b_wNNE%R-KlVZTĵccc!USZprzH@@@ XxmJPUz`mY]r> 3Rں:(etqVl #x|8kP++8wwVh|J-zpOHO9Dh47nDeڻZel9gߕw5Y$D;۶pkx7vTÓ?h] WW d$"}~ɰbkqˈt4m9e.#@&gKQZ1Dr _ƩZ]އJIRRMIIg8Nv]m4_P KD]!|cp6M5sSQw,葟*Q.Rc FigGgxY[sٮp 6FNrY&m5Z57EY"M~LtQmU ;G;?L9hdF,Sfϟ(3^ @e9*Mv-m.Jbj?+.)L:xd^~2U37G&| ᑏ\ h'&6%H5S CA{ GoNB Tv{UixBR6 )*M1p1fHH:Ag3N|Cշ6f#̝#`C1O4u j`nM!E0=P23 ]& C4g+L?~XNh4eYÜFDXԻ9,) P9vd6^[șdϭ6 G܍̚.FC;,~<gvD=I@{? ;J~ues7_꼘oEvD&) YF!B (%&ӳ&ԝ9#=թe,|7FVؑ|WRĸ4bbi>nnjwg-n垎JyéXL-'^|/ 9{,[Y₼^o_}.h샇{- ;& 3ѽɗC pɾOJRRJQ'o8GNi?{w`l'MLq̎QL w"rC#00Ld|?,h)O P`n ݸ:d۾AH|*B`Mv mN7GaMݺ]qg eFu=d:-QE^|/ `ZOrqs "5Ooyr#[n]_@x [ژ,Xmزh '%:C0uy]*b)]כ@<51>o!w9sMp]djQA):rਧb=q>J\53Ye˘;M1U@yVg"lP e0b"B52B52in_YRUCk)fa=`* eJ!E )5ܛEԲ3a6f̳w,̙&i<:B} t#Az /̣j|=T-| [7K/_\qرDGěkN|9؞`pW aN 4W B,eK;`\8? ?S63߬yYޣlMFe_ؙ̋uIPR KiJR0ۉ+1VۭIlK$q8| q8n/9Be; Ca?9MKč:mKbz~~Ծj<&hhF4%?m-18? R _KǦ2Z<~f(x 'O_+.m7&r)?{@~y}}KEe숙3P }?L2=GzO-HqbWav/ q1ޢUpU&fIpfʽgζ`:db, }0傷Yۨx1؛lᜉ֎{sᚧnl< 6cSM(eCb O<{~޾݄za-os8dɾ9S-;Xk}# 36խ<%S5\j3,6\G1ˁ:zЌ,7R, 5fۂ( ץeU`uFMfMsJ~iNO?vs|'^wzd8gj~ۜ1324LOx3GH>Xͷm.U oψc;WZYQ-Dn5-.2a vF%E!4&hȔ vƻ.05[M2+řQb팽wuЍDEJCv01Bh?>}AI K~|M37w`T*v㿽Y2">1ڱxJ)/]4 EJqfw0ȌFRBC6l)),ɳe)hF),fɤmcjdLԚBHmlm{J{0H/ݛqxǧnmKXA>y^f|ŞIO%w!1ԟQgw 2g"cQ"fj Q iZR[mRm-K[ilu7[:PMכ/*rɷ";9&ԛS6z2u.t[nj*30DF>s686ʁzV >7zLߔiFm\θe3xt:%N1??,D<bhsB’M* 44ե6.58L]d3L3-W鷂ۣ?i " \6+]C0y⇹5g6Ld`o0Y(bcL=3ۖ5fwv3ӥwg|p܊oS>KsI~ʛsd:nJe㸔'h(=P p b~ ΈU, c[4|AC)#y7zgfXWwֵVwWGg:mgjgGyD8G&.DZ;nʀ{mѴ1 qAҦn)Lyvi5u\0yo篵1G쾝%oݛFY\t'긬9NhC˝wwt4샸_ bovn 9aͺ+P}[*_ثTA_.N>!ՊP N@L%9gJֈdx c5%+\x/Rhp{ScV~榡fԮLe MQ II?y?DLM)~+x9&FZy k-աэ4Ő &_ Gb>a)׈wɴa>Q8ad$[[Gյl?~ j)HJ!0v:Z7@3VF1z#= -03R:SKա?'wH Gd-4YJ~bFs8:1Su': p]rmD󂰧H.Wn#x~YCuq8yR ͲpѶmȟ(QiDDlz6 O-.1ٹĎzdOnN{?v,vJHI:$_Ԙxzj̇E kRf  S] #-7HS u$Ҕzw=tvVqޓ8[h_TLML!;sIΖRPgN\4n3lc6$?t {@CC訑7ont7}ss 8ߋĴ6 -F^ i$p?/-r_RiPb5^؜ Q>{~)uªه)UrfL*;SbnZ}͝o*:dVꙊuXpMS?Nq[ )-,':a>'BG9b6s? >1_JT:H:6ѵVۡ͌6J&Ie#U-YKQlS*wt2@p? Kwr]b%08J0 <I$IHI)1(%:)6簾1}t06lncwߔ25_{[~@7VYY*VDDĤ!oxx:t\e?@1p6䦿ػ/_-|_mY_^zW7 aok)TETPUOW_ŸDNp"Nt:fjN]8ri5:mu'vL1;}>Г׉@vOE$ӎN=D}2fCAvi/rA~Z^R|d}{G@5l`ٌcm7J CpVZٻsz`0 &dg"|ؽȶVqXY)Y|yjV?j}~˝cnH"S(" d Ò[.. qA1*j;u\8QLknb%'ZnOJv pjYtI mYEtUm%B`K[ @_g~5bKV^|Mvͬ]=ZhMDNop:?9{ynFubd+ 4Rrs&iK=2usD9, 8LUE `\~ %ߨ]$ZL@ @h/"8ͻD8fɐޛ`; ֜wpk;i 6]mm} Jƈa~( 5D[al [r]p( ^Kz_~WudoE(҆Dpu7κ]03OiiU ɧACW7}))BrQ)әQBS.\ϻXG$\g6>%%9~?Wh_dW>_8aujM/-T҆q'Xr|]4Wcn>5$گV"5' 8r_P7B:GK_6zO)=( E3 5C C#%%7Sy!)IÑ'4 Haߋ~f`{U$hoHG&P`qS7 S)7N[,0ΩS>GZ;(ʌfMal)9].px(/ ]xKT^(qv2k ֣s:pa7BPn mmcTqkqJ 0uv ۆ36,ݟ1lm@7vN3S]ClcM78; 380sMq ^{cZg 8Wb.WO%JIn-UIW7Vc.x^xO7\,a==#8ӄGNfqԝ{Y!/wRۂ87= T5Q;WW-MhVmeDYS1 JX  r00f,XA(K6l2vJƹS)mJQeη eصS pvceԣ$.3D`&V](­v 21ljQmR -tݖޭ:]x!OV4ںj-q$ݝqT{yӼ^VXf[ˮ7nkѺ?X7'țѝ+Ω|Y' 'یďF?m`(chkF&}Yp0ueח9Xv3y%r`X-ԋ zhlP~+^bIlg24m3Uޝ]1,uzLRUl(l jD}LJ*A58Pg*LK5}!do@98 `oKn'hlkkݗR6 <0c|P&i"hyZ"x }F%4mR4FL̷U\'> 0 冨߄<*B%( Z h MqmVBɚUba&X$HZ_u/8A1ø)ʹ|`Y)6 6qh_X{wcAX[U%;e9npNtLCmǸ)jƨIt.~)3 [_\/8mK5G&M/.1!W@Υ{Eenn0b1rc|y{xUpWP4q8ӎ)Oywc7Tk[-OM xSWY/8?$>$$$&Vɓ|eV'AW6ɭ[nQ_H1^/.* ˗ͩ<&BRi1}joABݲ !9*`-\vB:c%w.[bۉC2V sg3[Y' krr8ipp[n Mo0܉$3g]94W 듈Gyj^'i4P)6L ;H?[$@8;|Fs0p$-{lbJxy @J[r4$j=pRhU1L. kz *uZFE40w_D nm^CAl 0KsS`U+ׄ% г\.*3M5L<O|####vuE) 7p=1v{e(km3bKD(+xiΰ @H_4[ Cq!GN\.v`h`9!@ Ę,Ulf/nߛKZ ޓD8f.+f58&ɪE SÔ۔zq&Fi*==,(qNUPg(fbN8}p:æ}6.0/b{mlm(jkQ$Ӻќ}=/> ؍ԍ5ʶF٭515tPfs)FvbZFϒ&܊u&Ju@3AJ(ۛ*3#4YbS4s ŒDz\\K,B!a;[5-J-d3en`c%[c@vӨ&m6Y 33Z̆R݂ &6vU,YtjLJf M2n`4ȥ9\aR7/)r`uh0+p6LA w`cdtd$00FF5זnF5} ʎ"ģ϶N\SO^cvl&t98 J֝K!09kM6? AxʓXyݵWΘaX4 ۹dT{9'\7uֿL i2LFM-KvqaqŐǽ`A80q@ U%sPD=|4A'zzvi6l=;t'G,sy W>`sBljO`JM L $A+Sy Isrd:ӎ6UB ˂:miS@I,  )IRȫVfx&W`AlaֳD1ND x-,mj4B$usf`Y6H5J2dHPbʪmgL7=.|&oG^i;zIzzmUTVT#biC)}}[tɟT4T DA+D4(op*(݌iUe\j2`1V`ѹ$qHy z 65ov62-z, Xj9fdyk\hZq% p۠zyO[!ls凤prIPDxc Z>"l\ ͢4:inZ_ZW}F?s^<ל:I%/ۥ=1EuU٦"U  PFva3!_czChH$A8ޜF"\ ŶṰQʧ`u哹MS9lkPߪgzMi5]JԳr򆃄z HiOt4xS?;ٸ5E<`Ntf2$I 7tiVc=ÈqlcnՆ_}{-@`F8/o/SSUԻJ/IdM14&PML2je2kLQ ytzYҶx4phRԘ*1dky]iK][ohU,I]٨85ET  ҝN}` t'==,L2e.#Q:IEH _<ˁf=]ӡQWg2 JK/ ?] @')ZFƵj npqI`Rm]0v-/wT5@Y:IS vdDv!z~gm?Cwͻ;j eAJOü 3{]aՆpg՛̔E-ft팛YXhn~*k (-C |+0Rw狹ui{}gp9s;9}]=H$Bht!t 5D;!Q xI]H \JφaU*Y{cn͖=o= '=M)éoHGct; Dxf&As2=  Y^[8 wx_*=7;Mysy*AfVK\0xza`7PyzP4 ЈpS5m `l4nxu;4EMy&ߛplK"5֦G73Ofaoz')SW9,`6Epxgt*7gNN=S&IO&J{0TV6G xGK2G/y k՛…^%#{VC1ㄧc祿A.[4mɊk3RIAa$vFr̨X@B!M#>s$0 i\Vi4KP>@5x^+9 <=}QQ^@%{ mQlw m .;oظ8˹03rWJDև^ņpb5eE[byц&m{j2!j`oPӾAh$t$$RpF^ xY`0So6eJR{wnӕ It(a`v]֍rssəM= G6v/eCm6E0֦e ;y7c'31o 1UY0m+4",B@Plٙ#1aE /F,80hC`BA #ɵ5t{.ad37`fոZqm&㦈T 6۷T~@Z,LAkݚ,49aMwwV\LM1M4oc75uȍ3xA s˕.%AAwNT{@ lpnRٟaˠW(䆎sխFZz\߄Zed6jق^v #zCzYϧ'2~&LdT4H ·RVYlILF%&ĭ``-av 6]άUTW,{03=eGtNEnXǚV.;,N62s Z.:Q_m{׺\!o_*jB|,4um+sBȼڒ|_ 5IT1̦wMj8r- `٧{/r|'jI#ss5޺Pञmիn~d}&{8rI9FTRK 3g2;U4 yoߌiC&}@h+WC75e-Ì3ꔝɔZ̭Q*2W(ɒU1&;qx ;PHPԆ0l+ߧa0&Lm1ŧyU+X./@i%9BEY!Ln>x7ҕ+Ai1ȬU*l5ZoMzjFrmmvQO~x, ⯊_Csim-RUmYm:)kZ8彷Pv*NRs7i,i; m obw+XA3,"e1Yzh%Fmӑk8,,4(&GfAv֛D'Ca)(" &GwcX3wβőVz=BV_e ְ 7[!`&QK+_\6+r !m7Wnݐm?FovA{3% N& P6o=Cq%@ހLr!-5y8ӑ#Tc%3UsԊd3^Xwrg Rʼnh~0q @Ӑ`f.\K7߉#}BH-" 8-O@v˰%qUO27 TݰB7t}[w!2;P]d4ԋd/r7N:Oz8Ste44KMj%OD%JJ1H|1|X┥owٞwؘ,յ~5My5'*5`;9a2JSF3:6w$l}P(E TH0%GM{vH݂LpE "7wQ0WzT] L#&fIL0Lc%vk:'43fI u3-+ 7I `K$LNG!7hwjI&JpLԒ"%^J?Qg!eEFJGCCmdž>AJvöF.m';yG}}>q8S$!#G'bɘI?̜Ѷ ި9qڢ'{2#PsvUU`kFBjSn2;AF?Oj'04>g9YFy>7\:VMiVP^MHvXEgaWw)!Sde5sf.̑ ^}gkZܤFU(DԮ*q@r'19e3IhO9AMq놃7:=ե،L[:B=0QJ<0[#ş=nӒ$ߒHDG2#vpjC 9Ə?;|W㸇<ѥqB*pƹJy3*YUm4p'3\ƱŹa0UX`>kB5dɬk:6JQF35MC>V3QΙj?|I#a|YeI6};,?ʆw8`c=aG&?kI'%F80K`4s^Ը*C@+tVBw).rWL},4iʺmB>D,ViɩL-->, <TO8\[?{#=&8PJPN1cJR< tڴ*VveWm"'9 &@i׮VNV]r8`UF^$؆ҪZ > F|=9z<0"4><5ox&n=7  Tĉ5 ɚ8&Glb}TQXOgs]M>"N["4嵻cX4џ^J#E O+E%AСZClS#q;ѫ{3!Μ ,|;k39~`vfIyHIm8v"8{+f.?lVYCYXZTQY9?\OdsOdQS9S4MKUJ$J&% [ma3--E%j&r}hŌF&R/QWU_5_=x2=RP3:zy!1R]`&c{D:p""tVuEV'wJS1؊!G `; S Q TkwCsI{TIQ=O}4y! _ya -懅rNDC i}t:'pūd-KmE2L v5 VlI!뒉wkwL%5֦(Sf4MWo^*P% KbP@>_^gn DВp4M&um6l1cMS(ʗs55ͼ*~hhIL5jwrsŖwtoMFvfc 00\V%aLF&#baTa{T '4#N l$FYv0E/-)h? mn=<: ,yє 7cr Y?hĤRJRx)EEL&  XhhŢFuueYJY]mIѡI 0 %5wƳZәqǾ46%,9eMo-^w1pŢN'8q(.8sñ'-)Ew9r;hpD7Xh -ۅAlC1y4=rӛ9ˍ'4NlS YS1Oޟ9*(%BLi)T*Q”a7I%#"ThRPd*SJQaа1V- XaъHŅf1mbc L6h L$*0(2) eEgL1hؿZ]A040*`CQ RP`& $)Jt^FafGK la 0hiG ŇEhbL& )rA204Xi:ZEXbCs4Fju9c2*ߓx-\5'at z5ihh_%/_m|B2C"3C0hUiN;n^R"?D:!uâ:"d(g;H@|SIWFѿ9Sr(0NeQʭRBY^~ڡ2C=\7p?L ӼIL0YX` k3[r\ݙ}G w7zܾ(9:,TJJE@BTrrIȗ);X<8$[Uϕz NP T<|qP&iM &g<,9ۍOg)J&~kסz8p$]26 "iI2YI͡r;bxaFY"R$SpdcD*qS438-=iGPD4'i|)rՕj#z ϰCaUulyMERwlZZ]zPdjR%հ8ń{EIC¼f&#wƐ:HSqU g)@yabz~rm䩲ExYs3Ǚ'F'άu  |_t,.=p `ጱJT4n*QAr`4G]J٭GtF9a'3L<01Ja0s5]qmՕm"$!ůU׷,d@I0UJ@Z<̑jիVUD''J5P|zGo@7Qٕk@D 'sGY2OnMѴşMQxXNVIњoK6Np'Uԓ7D,I G2F٠2"~r jdfUU:)޴|&VʲU] s%mu[m{Y-9v'Q``8?bYb=HsH$H8=Xc?}XYj%Դfl c3==BZ+BAאEUٖ5?LĎ30bYeLLLB17F83Ma1'Npsr=p9Ȝ Nr2I!چr&I(F #M S= HP8)Â5\%XO8ne+Z|Ga:οO@8C_*Ns[,~=0E}ҒE_()qp3ή}IK%' C#࿿-FY2NxuOXtG2;f+u;"@2ҹs3#\t>p;$|ĉ8dd03+M,wh#:}OmzA' !=3Nt~O8FD)'u{2o<8v3Ntga, ]>T珋glաQ9u^mJ Qe#-=ɦV8Q e\0b ʒE%Qe,؎9aj9C#rNDr9c9aLd$¤xn[!0R)!Sv2f8x(GGNϭ;Z9Cvkjwds蓂3hǺndd;2G '??h9gI>й-?}G5]sulooxs47a㜦Dzܕ&}9$4CPJGBLaӼ0V|WOxڽ<'309JttLMjoPdÃk!ٳq3 @Y摟Z)MW5^29#).ei6IWnݞ/Nz:JsN{Rp as_aNzA,5[%Zvi-nR~"r#tnHmhlVY& ljV[#oxO^>ra>J> S釺*yށ!fQgC!xQkrc=y>@CʇE#ZdS/ދM[a[wDj^,+] cX"zRJ?W0[OeJN*d>pH=4_x ӖC %^n*L";I/!0 ( yPX4cFWBXb0~\zi措YZ)[mpӡ>T4F ߬o8Uw!jC;Z>(=dIAX` # F22K2K# |0#gN;2.?s|Q Z (ROrtww0tx@?=m)^v^W.\V 0wY"VZ)2\O?s=ߘ#9d`f3hS Igd*y3vn ,[>i V zlj]HRGx샌 ؆SzڒHy E 0ps3氕.d'x Wd2usw;[Ծwcsᩎ,X,7}7{~/D3V_cf^mO6mGLD9jRʖSx~56-`G#oΘa<Ψ؆ -,/ ^͔-[q;QS3 J*L12ec)eVUS4 U  [L0ѣ ن԰ ,0K*ѣ 4M8ѕLٳi4eF4jF MS "W0b2 Uejѣ16jhok[N) 0QS),(!mV a`p6aa-iJSi0܍ڭaFʚeݛMeaaF)X2șaUՓEi`v5-L,12L1V'Ea,aVQhѣCIG-0a LjաKt^C,&eF092 ,Y56̥66Wժyi.(:c\c06Z='CΓK B"~P*+ffn}oU uC2y'NyLoͨv%G|zD۩F(%eXh2ia 0cia`,,0 0c7y3M3J2ARDӝ<>C`|듦gSZʖK&))),RY@Kim)Ke-O:ba]yJV00MPiʂ00eEV,]ڳijwrxݢ]OjE?O$0ٴ ]r ɾm=Y6n7_m<0~љ/(# ?VZjo@N?ZoW6'_@b"=?HHȍa"<2&mA# ekgJWW:kPƑRR)ϧzy~wo*QIR:ڌb)S0JpJ`z1VLtl8]L8a 'ݲIeEX!1n;9`n%[Dl UqDd["c(f\U*ُu=Lcn;"mO=p Ȕ43իWA1Ռij5 5 N;E5gmdigVH7c0ꌍS:]ST5Fc!Fg2ZTs#(d(lZK,R3!9IKTfY_FtS{?#r61LNdOoՖYmr/c釃!?U)ɪ3x3L=Z&o&Yu 5&)A0dme#GG ߯Do3=ElK*JZE2y￘dh lJYP ejVuvnu hZHhPnr)ASܹn\e,/=T$IQ[Jĝ(GJ;N鎈:tjГtITV=|蝈;Ehxo ͘l΃urDRD'xs)&.<6\ &MYS=Na?*mګz,Vp =I#Ϭs '8.:|'<fX~is31#FEj1R"Sg V'.8f;XSa4!i YXd(c`]=$ٵ5 24%͜&.ŽVlJf0M $k1F#f7nɸ2B᠄ mݲXv> v~y%}!AAGոf3;FhXsaBZew]׃K,q&vIk0nť:s9i ,jWrzT$%R8; [5fG'6IwΜBWnA4Lwp94$2L fڙMO!՞f3,is3&&бQvj5ZR͘Y-d ;?;Ü)䎜gU[op:vS-,Lju-:aէYJa玟<5.!sN/&L7L!9AI9 JjnKj%Vv y=pjlǤ;\Fv>Q7*~O=aIIꎐ988Ol05j9K)Ǵ,zϑ, i <ފIGiD0sBeW?<ȚWKmv$Fvf|4Yiuyεlb"H`|d&m6mbٓDA!GWeQ2KdH` G? ?cU<%So{~}R]x9ѻI^9]<;z=\OwLO,Z$p3 T!?!3 |(0sq>7b"ǎL$=~Zd }HN}`tanI4D3O *4>Hy֮KRLZAYRZ'ujZIvy1* EHk){w49ۨzk؇fmHЪ<Ã!4Hf`E=l2'2dyqd-۟/x#)(U] [)d ҆c 3sŚty> y@nՁn J!jcȘKEҨuFtU:jm̋ĿHUv4cCC` |1fU6Im\H3SЖJgn#MD - @;byJu]hɯ Yͺ F)Nq$h;[RDh4`Iҽp' D4& v\'I+jc(l0P0f14 $0 }yEh{oj>tz@xD!v1tɁAE"K<ԉ^æ@%]XV։47*KIt+Xvn:a#rw^ҎD8x8NSRtM׳!i$ͦr,;RD r`1h2:eB"3^;YW xL$h;ӿ`=X=dѸB\gu %VIjAqV81sHgYY35w S QLy"zC !l6mH)h' &$ҹݫ5AX`ZYi0()XO%MBCi ((ZSu;Fubcw #,!ǟVjh^r?6ScgJFh¦dFd^Kk Ǐk4_ =02sǍWZ<6Vk~K5%7*;,@&= oX.c-c4%J:C!Y&{ΝmUԼp["Bhk#;@tCXYw&%6\;xi3&1Ǩ: @TNhFaȶhFBaR*[g8l^t4ejĦ )'zWg~3j`ݱ].ا?f7& R &aDwAd6%c?Vx܀O'4pE &5XŠ>O_TSDվ0MT>t9ѧ1׏lc֒!9-Z)Xm!Ѻ3&\ (zCpI~]pF0_'1IZJ+On|kp.=C7sS2m4M܎اkaHU-Nٖt0#BךC:/.k#;`> Ѧ`b/;măW{,j (ADbi>wA2a!wlj4&HU U]m561c{o𵸍#_͉m+5h iLa:dhО4jA\T6l }r+0:,r1KmYSø̪gƻ?·KI$nᲭ6չ#=8"B";_O?<^߈iB~>lɑM%uWK].3K]3RTdcQ`=`}pwa>f:~ :у0)BmθQm͹>8x (jG66<.WCueWkZu|M88JWr'ۚ?n".oJn#F%t=D_9]_{/՟gme|c&_9k$}6UzstЅ7h+{Mmc2ch|nXSX]$NC2P&+_"lwL`EIf[މ:|iDZtkcnDTi4}ܔܖ˦Lf5ͯM&:k M?FU"emϙeq,?Ct2M,d$X;#!.Q8G"t-9׏pf F|U f7o?>JveњՋ0?T ]z'鿢퍙@ _ =QDxTeK.a :ѶG,`)ӁFytÊFf&ѤK[*ck;KjȆZdvbi'\*E`s  Yv,Vi4`͉A0bVuY'iS,Yf;VjMJ9+ a՝L2?N6>eW3G{gAdg_#FҦexEk|Nf^4Z8ΚGEb-Co6Λin!+a\4R@j_q<+kΥ0l6܆pԗ aʋSJ@"h`W"VUTu4‘$J%0H̑;d0#6:-p&0: u }Z+CEL1,_PZM5Qm{yWu윗r!'x= >gY 3[=Ґ[0jeWVpDvsx l7&{!Ynށm܉1߂4"c=1U+XHPҮfM8_c"AƥAH :rEZ}F(9+]1mVEy_^nOwsn8x1BbE>9ckpVf S3n͹0oyˋ<Ѣ .23`G.9D墹𜲼ܙ9q?~}sM[n:L*Ib#)3 P""nI.bϢ&T"69xKE~(,pbmM5qsk\uBRj^a$K$7)fNgL[Qގidy!pwd#ŘjZC9j&wT`X4!F0#u2t&dD ,ڍ <'iXȎɜnwCUV+clli-Ʊ6ٝgR^ج#4U;kiK;@ޙmZa<&4M-JF0;so"l31{|uOuL"MIcUWQ 7 J5LD50#c1hPSnTo5,le(1͝z>p@9'mm\̫mVնض[[%ª0`dx3 9Lɚ$3Rt0Ըa֮Ŗ`V Di&Fs8`8)O+4 &V i#2l=0> RU DZ)'LpA;77g;JqTnƕ^pyiZqƺnAJbR , D[ڔuwwg)8T;r[0O{E~?z2Rae,33q?l$G&a9PZjp`yf H# „at |ieg~@pVFlO8U CHx-4}G0y\\!8eЪ2N*7A>4R:29Ia?f_RzW|ż!Kr*K'V^pJ3@ o;3N2P펱XmCF"fd2, &C?<6'hy?9UİbF~۩U5n#,m Dos5WpM4U_,a0T!TZ}y[ d#.8ap^Q_1v$ŕ,Zob&EZ%cZ8f Ys܆߬N [ 7u]}-6.@4H_wmC2NxPd1j),66{p29[R09BwM/imݔsPA9:N ICCHKVt:X6s&X%nX;MX1gUZHBm1:e;"ri&5?iϮlGXmmuFd-P @`H0o Ѹ"g/VVjj%P.,(C$%ݬ=&뙴/W<֌Y,YY'M.f --&mEUY[,ГN L$Αӎ9ő\pnFelH*Mr_V\)I_q*͕,Ta[x\&d4@,;l. KCSmY9KrA@]{SIcQF6K3pF7!ِH3j_36vp-M]XL[8 @7s[r(DHN!8~s)q 0Tm*;hpxq6,c":dsfƫ0ѱ8aLõ d(ȦcSzcs:M&1mF 1eZ)E07#Tdd`ROC!'J %T k6i}ӑxWפG1fbmLIDvP;N{Uq?pFaf 10 c|M޷t(x3Nu|KQcF0ѣF0`Rb954#9JS:{JRR(b\ l?eUK2Ӑ?DhϚbz͂gNY<;$b/lyƣ)9Pԏ4p gAޖ~R$'H}JSGZUUU\<8fYH 2)6-+,c.1Y7g(PbBFNRy)N63sYXK9w1N!-s-"VD4f/K#+eZN[)E3šS%1r%bp XPzxbM ! I! 4|tWnچpQFOrs)4JRs'*?[- RխLEU]Ye"Rf%U9=AÎMQj4f3GX8D0)N8kM[; )!$Jecexn͸/xJ7-뱶H$£==Qc0P(BIP }+Z!Z92A`0°Pmx%|Ȥ/Ks2Nx w\5 2cX5 m\B*wQJ ^9svs RTif '@"l v>=Ԙ@oRoJgjMs1m*h7B 5E"DlL[ Q5Udv+MRfL`><8 Ѕ PDJЁ0ոdRyOGJJZC4>zI~yq)M̆eBQ"k Ely}oT`bTp XUtHƆzBmF5Ꮥ˦H^dbh0R%Lr,laЊY˚pwz$ ]{6&ǧ,Z5LqI*O7/.RNl7="6M߶^ߣrk$#$ ?Yxtsb1B,`A948QYE) zNlMЏ JQu 'Bfx|;k[R]u֘\5-n jX#J l,S7UpkZ4DN^Rc)Yn =\ilT4RMJRV;5'c)_(۫=1''!)ETNCM29dn~3NjCX5S)Q;Jy~Zbr[>R 5Xθ:b ]GiRx"OHJyD^c%4@Oƣ=m.$PE5XkPTl3_u`gx7n5)sa 2@X52x;>]Yx7b4 07K]~Cq4ԅTg\\=V6ƃA6 GkE۲gDݥ0S@?왙2 ͡.lq373HLѽ " @W;=bQ)JR~D _r+Yur$gU|Mffff> k$,srQ-IQPPW8ct3.5X²*V-X7#YKf+ ':8RLf{1D9=oV߬w/eYik8MvJI,ov榾,KMrwr]$,XR @1֑'%55R(2Q?Z5G1'Jx AHIi3 &(cks&Tƴ&U PZRb/ #@QH/ s4Z{MٍYOCláNO@Bׂȇ7l%o36SLh^AAqLD6KvkܳFe,$YZЕ,-(.t9Ʃ;XTS{'ޞoi*x";0 ěqXUdIr5)ADxL%jldޕ%|H"m  䐒#+dئX!H"=xsQyШ,VxHӗ;4XB`L 5(9RS6\:re'xn{yucH2; gP(fD[ʷ_ ٢z(8tx`4f310RFE)"L0`MDOMt@R08 ygiXH :*Z^pfYgkљ#C"$˶ bĤ,[M?y<=u9;]vSVY0*nD6Ihs` $@pj% &]MFFjTədڙ ne=]YF31Rl^ HhUY$p\mm\e}Nz]mܝH&ѾvuA*Ա-d<ҐTU1Ou()NOiq'C̒xXv`qqL>f` GAF$ZɣeW3@ˤԼӀN\eZ650&}XT$7lIr1Nre$)MyIYj6I#o^|c 3e)1p6Cm9$6kc$N Ǎ3 R C"Nrɡ3@ vˆ"5 -*'O^y);* C93]2` t%,-Ss >~&[V QL}@Gp;i43LlIM(F2m$U$g0`0r<rnSxj$ϧSRBЪ~$1&9E:,,%k`{81 e4̃6՜?)$ٵm$mY%>D #bƚ:X{9 CD VhiUMxUČ!}3hex, /a9[uJ$Y@ "a852X=9,xo;󷇔<9( bp d b 4բ(YvlhNYh]B0X9@Cݿ֗x7D ?Xօmf1Z{ڔ_|ZYZ!lϾ^b8Ѯ l~O{m^hx0fj^m1iTRz&[s6xCbJiRxm = f z})kaXaL)RY vǪ6Vl %QaTeNv|ԫp0PC )Š09ƃ@)(D s Z$Lo#Ijl]m,ԯ(|xG->?iK $fSd#֓=(C#Ǜ#IF)[}Qͯ˛ɫ R% f-\ٮ%Y > = M↡nWzewá5533Z]TA0`GB-gZ'Y8זk>B?\>0{OW=~zh5ʟ=9T|007l}{1ChmO {p6Ǘ>aC$j7 zݛh9jӭ6C$mϜC@mW,r~|b~bnK stiӆx@p"32)Gƒr&wJ^3)-*Sٿ+m1PT`Ϛp7&EJaLÖLБ18.Nm6ϽgY  Z/˳˟[ v7V4XZWq8I"VMZ80<ވ9RvtȵĶJ*NL#$/䦬ߎ)(`p6v7HmO5\A`68rnI8汤)0~{H %0SS%R\ tՋW=6:7ӬrkC!1|<`|Qg.qk#aݝ+h:S>deѺØܭ|ЗFv%D`Y{-Xf YPٍnOnKyDžI !UM'`1V q#Ոgwhic%#HCI T4 +Ie#5cbc QRKb}edWN nKBJzqY "٫,YhhʴZhƚj -\ 百@SᆈdBN'L0F\jN34+"34reћ!%zd0YM!kkjmmrlG-V[$wG8 )$1BͦM6 [_CpKp>%99mW, $Eqjc^ahcXܛӂdr62:aCD H/`MUXq @ hdmQIJD,mfL& l%!BuIu3iwDKK^)L{=n$rq6 aXvx# Ev+@DIݫ2%qB0&Uߞ͘)m֣nn2EE!5 {VH3{IY}}f!K;uL1WaL1W [Vt25ژijLOI@Ԧ:fLʪ9vӏ[oz-VeLȉE˨EJok[B< Iڿ=1aۈd#J} t&C>$"dq'~&q$1B}Qd)IR&0\,,P蔢Ob()  ~zN=ISlj-`dR3S}EIGpZʚ1$i*LBvENèV\ C׻Lr^B?B1p+).4V#aJC8 $D8S+`B``yZU&b6BIdڣ)b^@M f%CeMZAr3$h&I`(%0]&$#VeQ#gBIy>U NÓ;ux2]D7ảSDIY?Rv\0)Debbd {犂1*e]Z&;l"@OwU̵'ux">2nSgu:h@Vt݄Z2Ƣ5#)ɓ@>l7wrի7PU} 7!hP!t-:"@tfܜ;'(g5#Q%Iѩ]S Q*L130[Yk -&j0R|"~mP)fAg֪$E>-C݁-Z@A0p[e`q4aTle>0P4# piYN6Ѵ~W~3O,NՒᨲdIF U`X,b וy-x-<)q! 4}m8Vcqs!PL UhԢN-Ml >Pp B|$XY&sqXжWx J3.2A*J qaaqv`a7E4ō2Q*̈́JQdJ)aT\gki,_xrCi'wbp ^pѢDX˅ 15EgTo |c%T'a3󦨆RI#`hj<>$I#RwSG;Aؘ6yjb|p,}!RHU2!KR?Y`tb%}i?:)J%b-ݍ98p(g4ܜ;adu$rLwAFvN86nӀp)6;=&0ӱYӘ0%5iŖ&,eM&e-NWŷU \SW(ԟ\/l$|G$zBFkX]Z "P_`XnQ.M&G=Gi5KF5jYLfxΪ~⹄'>Y{UoksXjW:maFoN8yf47s:;BC ` ȽERȳfKdJ&:#X`v:-S?.?3fje4h{OŠl ~P=J%JkdDZ )ExŞP;@E$d5dOmɚTNI&pĒ3LgrԞsPCzk`YMJYSkv VE;001w>aA6($N.;{of&IF}m2oix&Sj3b!5fwkMr7Zt^Õrߊ|K9vV>=+*׃ Sڇ =e~S`=24.%4$n.5~%x _2>~UY*^s:VMr]mԽ9<"&9'TBDKu!#++,ګIKV7mKhP[k.-RtTk sz'0#Qsj?1=%V()UlF]3GNsGO #mVHd1$2?e$Ёםs==xDR%h\b@GQ{LgFX+$3diQSXUOS>pd% DfPn_5䛧rL&Oxd'YeqnGj{.2d F¤ƥ2I%URj8'45މMstk܏^'Nꏄ~K;|o]M# C?:AGr x<5~ <䞐?@}!₏4$A=)G,)8k%/9+Í8SqEF%Y`?5&(gKTfOj>A,=P:s^suGVZnS`I:#|_U{ūoy;UuLZ;$??rv)Nta:txsHD6 r/;aMweMaM 48#><5mշz8(iJj6rq6Zg7=9F&0f3%CR~hť ~{G:&kq6^+U9v:Ð#A8nkV,td`V r"qAL(YI4NP=9N"ֈeGZVFyf5 9{19~HTNl; sC?įwI6 T3#aĄ݉'!ݜih,IMܿzc׳M'\yoϬU :SxG8~s\k``SܥYa ~p˜?lJ2eW `_V_Cl[/߭Czٻʪ4$g!ႉ9)kstOl"tN"hΜfIleFjt͌jKLKl13&g|!kL&s1̙!sF$d4%qBv20~W|TR:s SK{jQ1br26fdy; |,o32oHoMy23 7Gt퓘3 Q5RHń㻓FpϪICw(?)*#ďa$$X6ΊtО)rgpmC02iȌ@sU6ldF)du:Zy\bj'8g v7kM&ydC{3D6vx`MbR!hO d5=ĩ&.2d bmVJ|ၙVۙp &ֵxJneR335CA߁$mVh펖Jt~e2Mÿ>88c`}r)MEF2{8d`d)d`dS11̧4F{h~B>f4 eKEt8"l03& ŋcaehJ+<̦]5r̦IQi Ӈ]vF eRdחrFS Js.WfuRYM6ʚͲhBiӌb$5`XpvNdItJiAU !T[LN791A>Ifs# P1YNHC##DS%8q88 ;9|FIG z@lĒFrēĎ,rHޣ0&"s d[[Nfe2Kjo ɥ&aiTI,Yd,??fO⇂ 5E;=`2^'Y冲uv0c(4yo'ςҥL q-K)1,ı,O|NIt])~a ̝ 7JvB0FAFțOr5UtSLշȡ[X*~8O 1JS|=)ޞImܑi ~3L 92S?|%dRbriIdUI33 ǧAODj>q( SnJTbqF[+=#>k9<a~UDR w>8qx\pV r,vGHs "=\'N6b|!hROvlZճJCP9I$,)e 9q&ObG#=!U꿀$|I'b#g(pW5٣I7?pͤ8N&։ fƏ4phhhѳCf0h`#!tnE)3 0t4Xa6lL!FBh%%6\4llFh FƆ)JJR3cцeApttaÇ '4;L0Rh2iUUU*##041."2V>dzS*m>x*R[*e]<6kI@V&YBCSVΊk kG ;>|{~O_e~-[rջw~'lX)JRK*RdU*EOLO'a##xdf:6xkMO=<5Fu }tJN"qr'8ѿC3Y2*j?dR~ GV?~wlF<}"albywLɬ4V$) /] ‘d&,m kN;$iJ,P@'ំ;TRI# 5aƤ5)Nj  ;8dS1Ja Bp{y)#늒I) SݞŒIOFɽ(QGGs4'r%0,ލzoj/ uQSLdG{+Um#)3UVt1PBjjl6jOƌ&-K}'D=s?̏;Mmڵ]&1}(NMf:|#HHE$XvҪGr%4“6Va,W,[mڶ&["TJKJdJI5MS uXɄC^'av)d0AJO$`stfLS%`*C :CNΎtiч8:t8N8!b"!N!DUdaUVFSڰEL4Ja&qd7Y"kʕ+qyWYgهUR~ܬr{ZEk[ݦQ9ENN򀍐gPbT{s9qc8sim̧~%Ti9(7{flVˌbvc@jh3=0jSU?|hj(jOk?l}~a'zQƫ*rkb~$ ׇmkEя|z3П#ӏ "6jleKXkGCLɄsv0!ܫU)JrAM$3#912LCi6RgJ}4B8E)J[ȜN8'ftpSQlCQ9Y$x D<a }ɇ22g^8kw~ 23y34=Cjq#nyd=<Tݍ\b LsS9*Ε$v̙?Cj7r-zIQ6#l3 xa1ѱ6:5˧#iٚf5V?7lbXYd3ZPbMSqܑ$"y_uFFihVҶZpIstm;w6N3w9wp95JF[jl_! `<)'fO@'>H:G4b?t?  >J!$0D$IȒk>p'C D`/ [5F^K?pd$1:C0%r4II' 8t4&9\Zo㞼rAw)] dj#n)dž8eS_s 1RT%J.l8I'zșώP@s~ϜDuOxtGNa8COtSR1Oe[94EAÝǧ{{U%:ѧ&b>~0c)d3M,1b2mGp iLU^}K$#\&uwa*lJ0G) HN#ԄB;֐}n<(\"ѡPT`guD(y܈{4rTCk$ 9CL#oscBp|lF-ڱ _:aie0|)"'BDL )" {BU-*i'}''!aEdpK*nbh()ّߎLrxxw&rc0ȣ7&RL&306~s:#(aAkEJIhe) \3=JsESfml1$ ݜ9sٝuPsϔ4byƙ4{mYfǽs8N?r㇖uUK}Q2'?4&`ME?[j2fe\0qS|-嶭;.jզ+E $C/^yG^|햕{L p İ g12C$H#$`Y%%c7eZ,ecMtt;HHɅď # D#ӣ现ty7IHX RIa$i~I@x Dگwǯ S7<,Ԛv~3I}7T~~8rDďz0Iĝ8&%yF2Vb$pڿq\xÄfc|"~Idg'?73tLI10Y/_̩0ʗG4_AE+,d<猪n^<#e& >ͣ\tDCX)k'%)gQE<ٶʫmC;% IRMf>džcUUU<~LLVkD)4#VdwTtB9%O$S0r!Gu'e4 ؙ4KA&ܠJ"ZD  T42j39!O;8c4!hs < ,N wiajՖMn7deje%0n0PVs[vuGJ:n\,0k:G9JgG,9aF+3ɻMf`hHo!TJ ')cijūʴdR23A1ZbYm.RyM4NeOXD3Ri&q7f$'(O4~ #%{Np#Ę?Fdd4 w x;E׋f]T)rYkUBzkEi)yTb5/VQ%a"UD]EMXj>;rbT1Fa33rf4)Li8 Ojn S0)G~ 843?-Ma0K.ݾvm۰=oU+d!S7yW^=!U*XLDu9^zp>? fɢ jo[tS)իXLk*ڶ|6*Un)meQkMJwDr^e-ڱj|C=ߓtMf ':1O&OU_ŬCuA4}ds ;' qOc 9N Qê=ڍ/>lVhK@XYP(M&0 A"z%b™Y3h_]/C|Nٮn8p浭r泭O_|u둵>0d ROJr'CVn ݃q3BoEIC gj][WMf$$'oɁ?i{ >ٵYg q>dJ=f9MV-Ǎ7чgBON}˞k Nq0FjC`p2L1tNA>qygK*j7\|{&FboJKC3צOsAiŷnPggfۛcr0} TC*k LM!;QT"qi?Z~TYҧǮ'gM̒ޙs-Um ʓ$("I,kfG˃茶~^lNL9  lLG-?n.ͼ= )Bf>ޅ5sN!^aΜozq5o9~^!DO@8Lqp\&P.*6W0Ru4,9LդrvѪO3>Ϭ-g{;j)HvH.<;Cn?U8k &"p"yaݍ>YX3P"y9Ok =hy#Kܻ(~xS$,vjmo43 5fW:,˙JFA{ᓨXq"9C ʸE;r0h8Ih+h h$ k!pYOGCFA3H&o;EC4{J)ᦕƌď$'$>fH'#`0;-U3i`آ0%T+n9P00VTޟm$$O#O46 &XnB63 r3#]<ǀCh3J8h #I@B$ϓ Z)):Pgi5ɬ,kEbSA%YYჿG}~,p$duM '8'DȦܦ`ơTQ#,֦'>;j#ybI~Y =mGw'47s,F&"q _|>8=O>(3ɧ`yI7V:r#Gw? $}G՟ʟtrX6G.h#ޓws'f8#h(h=UwtTdxHj{Yf˼V't飒N+bطe#mcI#O`g h>``E!-3܎LJ̈7?m?”Vmq`w_J _4{SNe#jݜΚ3Mxd7ʛVYg6ٹrQN”VqόnN_k 'jM|R2նD7g*T) U VZ'=G';0OQ=n+qg;dtOb,F4[UZd3p}”$ҧ'{ vS`G"2 ĉ(xLd#d5 f:S6{Jo}gmd?Pɿ(<:!pRg8ڳuV۽7'`֞j[UUJ^S QLS1sM()eaM SE^qJYýwŠp1)RNqt;-iPGE;s=?O~KKN,F,@c"`G P>(b`bwF:ٍhA(2mU-c,&,fO?47ЪJ*7I"mj %&ciik,Y8cRYiZ֖lI2S2rIY?8pq$?d!K,dCa8 j:/%}G֍x"M,3*?U3MyRt xzb%Ev*W>~qJo'"}Bu"oscO?yUqL]Bp}4qrɤFG,rTCDijUqtvns2q2:8h %q&ONsH#B--I̓ɾq7<*uR=G$S<#PY b8x4LbWp8a/9(כtY,LJ? V|wiG:ڟjn OVn 0^oճumĤ(A0 1MB#5]Q5̓5jHɽ_`.+ӏ9=$럂fi0ff5kPy[m?g'qr C$o,#X㘐<[Uvq "BII=Xxѷչca>kcƁZe;^7NxZyZPIkޛx &,waèNO;㉥pڙ\\\c3Ǹue6S3Gan0Z_3,̗20J:c99rCCr8tnos.a825?28Fy?G.DxISlJ`=ͮ}1ځ=n?\|Dq\q ;O"0tk#pV6'Xrà'PSHd4"~gu ʾRFBrd0rfr&:ÓDagFsת!=NrIϺq*9\x|3왍RQAJ?W)0va,7UGw*F[FL_tį:QFؚ9ؕr P~dX=TE=AA[gzS E0a=og>S)Y[{amZ12T?ON>=Dy܇Nx?z{ )Mqӷ{{iҧGucBhfPrfݎ8|o7qlGM18Gs˱Y2--ut3+3ǻd̏;)7ct6ly~s&Oz@0sѓtNOkON~NBu&cue{#Wڜ' ނҠpÖ $qVoDRD)Q/?!)(alJ^m|@䆓@0vƃ;I懥#ʏ@<#g\y`?8'7'y|՝pcy92~!tK_Mjի]'(xq>O\j9=-TSGVgU-ZU+qSS JM ?HOzvu9dJtitcxwVNQ}.)! |רP=DG81=\*XYSLސe'z#rz!FW=36;jGq N3κ^ bg(꺦1F@98ͤ5 ~[*Zu#X ZHg-{\6l=p\NA}>BP i!\}xl_Zfy :!nSv}5-ݍq ;i܏x{1f-?h~xNKmwpz*95.Z.j>wVtuNUz[^ј̫s3;ɹb|Eߠ v}(?jͪމʶXLOzkd!<Ы_imOhvf{_&mb_Y&Gjη7K9Wa4>7]Q;c6b4Z+qW6@`2hZI<]v Jy'|!8t<M7iO&O&Qa.~GO1zbE:tΠL]^ZWhxW<]E=O)~zNa9dO>IyDyOnvd|OF~aޅ;/>}]S'OG?> nөNsSݙӀ}yk*?95r9є7G9|w/Η" HvW}GE;Pə/,p&Πt$}wpSG?oISُ27i'k]\Ӛ Џ{-BiURN#m >=vJAx +kXbJ5=y=̧jS aj-K[MN }1ʧM=MDN{sNl<d?;ψs0|ΌTzSݝ8'>c{Cs:Ǟ,'Ɡ焟?};LO?sNoO?<I͝g zs\G7gOYsGP|'j<)K9L{S?w=Ag>1cO3=\ : }s֍yOFm#iIl=-:dyq:U<;J}w=3ַ=ޣ@#>3JmrxO:;SO ;}_P<)8۟=)C ~e8<d?\>;0Nm̥-:ƓToNy1=ԏ=Q9GP(mQ\>O>CK kr̓;|NtP;DSS<쇁;8$' z?`ޏ"<#ďvc7}3r='~u*V&S,ӳO>G} @\wVkUx?xFp $pgUn7 \]]]\1D ̝a;iMCuc Ɏv?Pn?`ꌎ;HP |;v#f\#ҏO9䜀r7O;!,ú;Q>0ǿ 0?jӔ:Etއ#ONo^?˓y?us~??oϜDz=q<R>>"|)g=4ʲLx>~ ~vXL.ÀWrYXKxg8#ԏxs(z[~:8,9 aO?L1^yxQvz9sNm0!ГԓC띞z\#ߏXgt=( :SÛIv̿-,-l<ǣ?j-9!N>82ǘwHQퟯ]%9usZu<7ώ@М7sНΞi~,؋6fhIgOЋ:yG;KLp#]2=@>N0i>ؖyyN_iTP'ݞdH8tYe~վsoǮ?4~!Tџ{wo'cHP=PD?{SGtsϞ7#OHs&vkKaca7F=DgLtPȔT8Mў4!TOT͜aNl*z3y:T8Gt}|k)MɁùG?tA<@7>NQMx@Oj{O&v3֟~!jyV*sD*ҭI70mO{s;Joώ"7$;ټpTǯ9"ᛳݟeۗٺ3v_ereVjW3,eJь\YZfɁ5ʭl ~;[3&ɬE|S?xSH|;C@GNly<͠`ܤCAGxz֧o]5Xyvߔ;nOMz⟬r*p Gd5Gz_[|ϞL|Ѳ&⟛8 x.]`iÂ}~Yfvkm4ĸkjLc(5g>~0 z(|C2= 舃@?L?D0CRs8qa%>KsX&Gxؼp5\\(U7@W'Ќ5&fό;0ep}lq)%SƧ!zW+,2h|`'pߔ6ěj!םOh߸wYra/p:LK)8z;ioˢrc %(=G3obԜgϝ\c QS]:C.q3!";@0?qiI%~tlć5A8f8Xalp4h '^~'i![&u`퉄kuNEV=?)g?*& #:nmdΟ9Tl$L#%Q?UFeFqJ:vNdGoh50I?qQU$(J;|w OX0[u9{ζ/UG#@5$;)G`no?o]N>6-pN+f@P?̯/u~VbĽ++ </:O]y?mrF|7c&" 7 }B?ZT==S ]88MMW+PS2awfNs&'VygN̺ _.W/-M}JyȈނn{ ۍ\2ܓ U: 8au8#|@iŘ _ ~ b^X-TA]Z*]fKT 9vkE.,aܮn4p-$<HOHG HHGM=<:=Xzrmbwv(g[;?B6~Gz]ŮH48qه;;f&t)Π.w늦A]u.qp4>x*ڜVCMQ*rFs'uΕΣc,YD(rȉhQx1N\zΓ*_ X1:03 J YeO8'Rpzf=w֏ȑE*ulkMvc’W໧/ct(MtWU.+ p6ã8;{1J9w{ hvr"7bvrRRrxAQ0<Mln:TFܓH!* ꃞ&8j^ %WO8(6=RȪddiMsŜTMsOok@ V; ̧X4sC82#JovJR 45 أ( H4ŵ\ׇ݆y Df7CzrF1*G&'8C87Ltjcb qM\ Nj UN"h86֑poq׬1Ur!L*)6G4IَTb'*oJq@ٜjkqNC\ޓfqWUepKFczkHیrlL^iܣI4Rn=222\v)F n83TIc 23 ƃllX㜐5Sz|6oNJv)3XcMQ4 ;q=<{^y8IΓjl M+3(˜u3Jih&mOyT*RVTN@\`pvdxvnbjPsGxijTAY9c92h8p4t0荓9)JfuØ6æm Q9qL*پ a,{`J,c򟔳.W]L36:̺6<ε`j5%;:g*\vvXӥ/> (-:@PCp W4ZM2p49'{,X$OX6h&m̀ e4 6v8oLƀ9" R)a6i)J&XRP֔` yDbPLCJ1RVdq  i : aFa߉n|<|C4iG%**mnm҃tA66k" Jg]ֻ̈́#0e.Tq͗4MmUJnaPqa'8VaA ) b27Ժfԭ'YJgY8ûc0S`t#&s8'>6<\p":o@9q㣣cGY;9lST MCtU{"@`sIud)mcX7II͎`&rx2NP*5! bR]g6ȯR 2pz-aN?)xEpOcl9C{oقgHL/^2!Ys, w@Ȃ OU'F ?[8PQHHc'%J/jĆm^պA}y,01n>ať '~p|f G}HvǧNl4;;ejd3\.S24wpGForΪۑȝ):ej :" $z@9lx.<pnNӐ(DQϜZr)΍a'iƑ3XUL 2MI p" { `wdt`8;CDǶ`({3uc#󓖚Քs|39Û97G ${-2eyeLe22bz9c^py#ʎ|zѪ (Rp`d<Ƭote=DkN)N3bLYg\+OH9 7CʼRuJN GXO؁=O+n?oZqwQ. ['.<=π>r(QUUfTUU4k?J<t,+,VL,e&2ώ>|"R$l%tZG%YWq,-IomxyVrH3MJw6 mr{Cy746;.\-ưǑ=yU0;44Lct.-'4o TzAԝAAK{C14JyRPxG1`oy~=XGv8C~9ǥ=o,r"Y6ǖ7i& o,P~NS!' )jU77MٻMٮL: 冃h<\O,w1Ǘ'pN`;a<2whߏ5G+$c`I#; cԵd~e@O bc:4 ӧ 4 Y>X/'t^s$^`Je7MF[pJ;9܎0<"#C!<*dhIU,dxɎlO9)UVnJ%;Y>ǘb1XyyV,2VYenu9J<# g{80U40QO||mMDɸ՚|HlIN@{F|uGMq;$(krRGQ%+ unZ 6:ZӜM _ n%(xw8 #@:`oHA?Sh1c3Ntߐ~LX!预'd&zUMLg٥σz;ѐSV;<$Nj=)?>N}15uqy;1 gxb"]gZo]d 1/n?$$wef(clóltS\.ԇǘ#H斫lsm˲j鋲4vS1Nrfy>,Z~*bem*8hdxY ghGR6 NS(8'\o\-Ɏ!<;nh=|ZL1jª lmMc~:R*~A՝HY LCi aV%->1q\(| ~ /_ D}+nMfU՝߻yx^\۞pr:?HGկB>$& ]NK>>@z/͛C6@sc%sΔpwҜMC7e)XHݯ{NI?Ky<.pЧsCQ=B12ױ =v̘Y$³*`̮bH7ÛܭV}t!#mjpcɇ`#|{b q㺥Mfix#:T77pv"D E{,4H (d;5} pw75V}\[\ss@6fݛQԍ4w}q+Msroƨ '8` Vʪ*g@m_+ro|[v*:,ggV)ӂZc)a 9}+}4}s2Mt8$!n-5rR%4IATDC ,u a͌Ӝ c\sJΑ:sЋ&qY?= `=e %Cyyzq>0۩ 5&&ٿq߮AD~hf+3- \D69gL߼^*ajC$IJb߾!z$u A3TB#&H&У F00ρAT폂U}.1|wtojV'A7.Q^?S͛:AГI'Q8%!$EWWdS%t001U\=QR$ʶҙe+-9m̢Y\s**r~B6;@UeYP-Yffy )3F#]$Y=@JLjI %H$̥XDE%,h(6"Rff2iRիT5gbxړ>}z2Fp*%i|Y|ȟs9?t>f|/GV֊n !Dɴ4Ptk}֎bQ~'ǀ4'I;dbxSKP zb07}8-sbaWɣR*듻ʹi65K7 26$t@[&k**m6:N;e;iQ2`T-:K,m3N\Lr7W61n*}s-*0`F )@`fp >}}x^=iMVxPjFzOT RP2'iLMRtA Sژ!?zIȧYH}C OBWxzQ򃸎V[DL)JFM*X̥&dJ_WѿXu2&3ϢȨ{)Х?n2 kp3Lf4т(ŋ)TO눨zG=Pn}f槳hui՝Kێ`>/"ڕ:*0TVl:ykyAiPBn&:AwW^'9O)Mpha> cO23RUJ ЩY@ђ #$CRRRd`2)JJ(db`&:6\.`ë+C Vfnxr,20`bYJPJdS@R fbS4č2,RQJ2RmS*U*45hݳw eXh22)K"),+VX`uatx9ZX K4 0RPa˫G. [>X{opC9ڦ`j$h2HИ!BKhd,+퐮+Y8"{ashIag'?ao¶ƜP]@}"k"ظX=_D\ -q,cC0yp,aSIC+ߝSnQՍTj̓T,fn~[ArΚp`m\,o>TCst~+BԹ& Jt;aCj(G Œ!F6MnCٙEG9' qg{Mi#+nH`RHPـ; 5j~˓hFiZх Kj+Q}'69ʈvtӪzv"11>x3LDgEPSnNUN\r@Nbg>K9/'V="d?1Տ?) 2M>T9,JR3D򂖭n2 bJNp%e(h姩.K ɅR\֫$FroDv 2ji&r$l3y~?ӱN8 Fvg)JJY3 k ]k Q8$p0bAd5 eЩ#2m&u^}k[mnbfc !!=bt󙚚܌_@ݎ6i2o pۦ)MѠY_nKP{j# ?HTih3CXG睊{ac<~}d6;=<]?=:hoRMݲVLoc5'h0Μnmx20E:#@CaS|N33h<D&zo,ԅOG@c`wc843<((k1*bkmܛҢa0"(e]`vffM Y&yC]9[6FSJvi̺(Q:z(#jjєX -ջBF$a' B9\h&<0%2A,Q D!H $"$IbF#-,b0,b6aaQ[XbԘdaˑU[b8咷D| &vpapŧ#KKKFF2ihэ,1.,2ښ޵uunԲ 4*UL, =APZG,\x-G e)l兺6dq2ё\& O0JXD'IB2DXUU0--FnJ8[VYl,]5{MK,ަ-nWJ܀1a3@a(bbp(IH8jŦ1idqb#C.F,ZUūCEUf<ͭ0 ,XI٢D%taj.KKnU,Uqc,I"zR9zQ;~`#' A2;"{O91ȌdGNpA;Q/Aڂ5}d9 &8s|4rfrViD9% Yi_yT+9T$K,-,QW-[n.\5j˖Zj2eYȑ'#ei4cHR1M,FYe'g&F1bKYfi#,ĉĈNK,c2FYei effVnn̳2̳,̳7[ݻ3vYff'9uN9RpӐ8-Мq_/C{lWZ[3Q9ڣlUG8Rh:u۞c)ɰe:rpnF0I'0#lΌ^bC*%Zjʫn1}o# J]+$ 9Z_Ĩ< ԳuQF y2gwrziPwŝ̞@ώ9x#O$֬'8)d`49y0 neP!0Ν{ᐚ;x4~acv?0{f1V7&o- 0MfM9T ڶբ[?S~cli/5&6BwTȒuNlhI֑<} <HAYtH`LɻLSΌ];aƀNNQξǩL'fiRϸ$Hf /{`"|i'}d;: x-.&Ŕ@y~A2'= v-jUGcՏўmRddIdWSQ)dJH%SkPw |΢tjՕt(CJ n9Q28! H#?:SY2Iʘ!IN\Pe&HxaLi_:b2bpacC#`bQxjIț&O0)ZuLarŞ)G4jF;a2G7n\rv͎DkkUuZW bZZ(jP0C l?|x&?lx!qRXrbr;A9&ՠNx?T;yFYWeWy^PAIBIddɉ4)JA-JmS%1h{N+I"G0cI"K %)b&bȇQ=ۛoܥn*CʵKL$` #`Ųbr` Q1j:$̭g7臀>ț5e`KuKdTɒY,;$M2B&1f%Sn7j}mk>ZiD)pbba3,eRimSJo$34FПOlP_+m3abl:D# p=ʉI )NOu'`a$f`=7Mp9lÏ =heq0Qh0 T' 0fbgW8n7oFߕ:_ï|#w;]9qlֶ8 vF?8~Hz~1MNB[Z8eg"&+@if*U\\>%' 3 ~YM i6S 0P&|g4dRmr^s!͊$䮊lIX[-\LfPY>iDz8rfCc .ffS3VMd̥bߒB;IC" 0w!&_hA3im>mvmPcscJ`NH 9j{Q9w"mͶ‰Xm+RwLP`ӆ6ۢ*Fsifq\nmDAA ẽ:tvеo1T{'p$F7c.hR-jJ)p0r5 Ye%"tNq`0 [E iZ6IyE8n(^]jyj/{'MscV{ێ19/{9qy8GFrCXT9fu)YJS&%a8Q)o8.j J8ہ)DW)i9⵪”9D,1nR,Tl/^z= m uhy秫IHQl%DMcG~NŠQ DDiJ%)J9MvAnun1e6ҔҔV>0}39H 8B)0RJP($JHl`1JF V$3$%b6"%Dɦf-E iDQWHZ#Ah40p uׄT%4 =|H先ѝ/&=:(}a9q[G'?}ؒs‰%ʕ% IQDn*t1F` X0pz0b!PGy?x=Q>xG3 AMYېO$59#*z}Cď$va#DNHď>Б|xadu_ku~?X/<),iQ1D ud>di4^czԊtӟ: 5mU[oLMSP՚Yѓڊ:C?tm= Sz`RG\76NTr'@?dsF0#N/4QLP48x'Lrڟ`z4=h?Pfj5L&vn(.1' 2CxBj9ks00N+ Sq 7jնBj纺I78 nevS"2 7G&yq)*Qm-<@|쇋h!( I7&)q,Vpgg,W1We҇JRRk0%-*kӠn/;yZc=rӥ14y ٌw::vʼ^N8#AF0M2"(*:Ԥ6Ŵ 2,5sSt:=Lw%KcОP4#<{rMCAԝtFG'Mu\fSP)0;~3<ԕ?XȸpL+0 9Mx@9$ 1Mvr; *U\:i220f03tC˙` D>sG.PGv pQ$ޞhTUut1[`=v-2yp4Fs!w8SR 2Ӷzv<}Ó`n,yQuEc.\#l ]*dQA"#cCLja;"D`VL27)H)Xб$ihi"O6x)ÎYyvv^ߎӧLL@=pY-2'o TIJZ' J{C\`M–TKOp0L(zyMklXŘX儙ftnſsbsRiM6#,&FZlW"QIɉUdR\3 Y#b\,7Ä~hn9[f#/O0qO?d~I?Й:a=uB^ q0dsfd^ X3X1dY,R_"߮~gLK7oV)=GBY[4;z#\$i)Tf0d-mW^W$(I$* La8pꒅ 8^8pӍbņťٲ j0B P4 nQ>^~f1c3S5%dY,))IJM#2GG ee7|]3:<3x WMO!f3ksbj){Ui>S(gcf3ņZ v#pޚNT0!U={[pd@(l%ns-c2٭ Uwrc<O`|4&b=RzF{Y2 ` M_:A;P41"I&at18 jY\{(&z^s% ]k2+h2^RcM)FqG*,iÜ-ʔk0 1h;1.7^-<=p C܏CNJFOږC0 XtE s),ܧ S7-;Ǣ=6xT5 ơjcP'Te<[S 4 >y| OZS./1Âj/KTUh-Lhp&Qrat4U/sx6ĝ'(&iMXd:o=9M,k+5.|':&pسO2baO^ ~1'@`xm^;w郖D` BDa6Y+Ɔ|20 Qlrj1SF U#&RR&(I,v&F!X=y8RrirMV) MrjݦCxd ٻhf6|p%x(Fԥzd`5qn`;v'r>@ᏐOY[MeYbT3l,5-HhԪmOoS<ͦ˦`0¥S%(DQ,^oJ$"PizrEgyYYCYEp=`3\cq21 I57z)JJ)Jdn&-]R!oJ?>Y?0ǣ:S146M 5%iT!T*Ŏu`?7SŢQ)j1AʌGqYK7'$sBߍ܍H7#0 ji y4tSoD'I>xFlu*5Ȗs oo T j('4IhNjgOQ=sǾ> ]C͎ 4?zs$j΂wg2Ni SGbFx4qǜƜDfnpIbRypwדN&͹|)^-I,5 tb$+*5dd|l y7dtDG v}6>\h`0 L<ܚ6nӥڽ垡XS6cFQOV NjŻK˞ A78 c,QjmmfRLaZl% "(p8X~HAt߸&.A8`>1gfiEL*<\ITWcXµQ(LeÙ FDbahm2rdL.\ ũ*Y淑9izF,zv)hb;` 9E8'j9 "&j;zȳf8$YIʮ "pF L%Dd$`ppzVVdInG䜁,;"6b3Xz 'y;M-/̰d۵$QQecjffl21Y&5RC2M3JXۛA<)̔ϷLO"r&38W ^M5Bg@f4i5K0blΔGgK?ƃQ,Vs1gg4̙*c_5MTO8CaOa Δp0pơ5ulXu)<ߑbm-f2Vl6e I)|AL$ګ;ɏ6FǪ_xJe1? 6S7ߏQH-`(k(s2 KO$ə,dc l[4AuKlg–?݌ID]' T5Y&P3Jcp:34%LX9ueқmj/'E XsSlo'S [[J")$zM:GkK-#?V[/# 4J>DoMU;I!͝zyq"v`8Ӹm.|8; ydp OJD=.=۪WV{Z øͥ'UyJUk:)\H/hb4MtyM3טbk07&n)7D#Zaq)**"7$mGI4lQ !;9؈=0"T2L2_Z,XREmJUigv*~Y4zȉ="J_4ᒙ3{xpbq'}xH;GԾba4 fѯ,U'5W0,eZz[eRD/}LhMMˣx Va3,O`?X>{omT}V[='_@Y)E zEM1MVL_onStɊGcR\Ȭ6 Yuf0Vmٳm4`oS0h2T*9&&Cvb1XYFL*ޡ}#zN`;l%uι\<,=~944,G3y"9!ꇴOI49I'!x>sEvksi4if^s9 g3Smcʜ+S2isIGxUbzaFOr@쏢 D/z!ȕxrolUVX-SGEU1.y;GjLMёXC8W?RNJb<|~a?StNu$)6Ǧ