aboutsummaryrefslogtreecommitdiff
path: root/src/database/database-files.cpp
blob: d2b0b15431badc0ffa80503bcd852c6294df2d76 (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
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
/*
Minetest
Copyright (C) 2017 nerzhul, Loic Blot <loic.blot@unix-experience.fr>

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 <cassert>
#include <json/json.h>
#include "database-files.h"
#include "remoteplayer.h"
#include "settings.h"
#include "porting.h"
#include "filesys.h"
#include "server/player_sao.h"
#include "util/string.h"

// !!! WARNING !!!
// This backend is intended to be used on Minetest 0.4.16 only for the transition backend
// for player files

PlayerDatabaseFiles::PlayerDatabaseFiles(const std::string &savedir) : m_savedir(savedir)
{
	fs::CreateDir(m_savedir);
}

void PlayerDatabaseFiles::serialize(std::ostringstream &os, RemotePlayer *player)
{
	// Utilize a Settings object for storing values
	Settings args;
	args.setS32("version", 1);
	args.set("name", player->getName());

	sanity_check(player->getPlayerSAO());
	args.setU16("hp", player->getPlayerSAO()->getHP());
	args.setV3F("position", player->getPlayerSAO()->getBasePosition());
	args.setFloat("pitch", player->getPlayerSAO()->getLookPitch());
	args.setFloat("yaw", player->getPlayerSAO()->getRotation().Y);
	args.setU16("breath", player->getPlayerSAO()->getBreath());

	std::string extended_attrs;
	player->serializeExtraAttributes(extended_attrs);
	args.set("extended_attributes", extended_attrs);

	args.writeLines(os);

	os << "PlayerArgsEnd\n";

	player->inventory.serialize(os);
}

void PlayerDatabaseFiles::savePlayer(RemotePlayer *player)
{
	fs::CreateDir(m_savedir);

	std::string savedir = m_savedir + DIR_DELIM;
	std::string path = savedir + player->getName();
	bool path_found = false;
	RemotePlayer testplayer("", NULL);

	for (u32 i = 0; i < PLAYER_FILE_ALTERNATE_TRIES && !path_found; i++) {
		if (!fs::PathExists(path)) {
			path_found = true;
			continue;
		}

		// Open and deserialize file to check player name
		std::ifstream is(path.c_str(), std::ios_base::binary);
		if (!is.good()) {
			errorstream << "Failed to open " << path << std::endl;
			return;
		}

		testplayer.deSerialize(is, path, NULL);
		is.close();
		if (strcmp(testplayer.getName(), player->getName()) == 0) {
			path_found = true;
			continue;
		}

		path = savedir + player->getName() + itos(i);
	}

	if (!path_found) {
		errorstream << "Didn't find free file for player " << player->getName()
				<< std::endl;
		return;
	}

	// Open and serialize file
	std::ostringstream ss(std::ios_base::binary);
	serialize(ss, player);
	if (!fs::safeWriteToFile(path, ss.str())) {
		infostream << "Failed to write " << path << std::endl;
	}

	player->onSuccessfulSave();
}

bool PlayerDatabaseFiles::removePlayer(const std::string &name)
{
	std::string players_path = m_savedir + DIR_DELIM;
	std::string path = players_path + name;

	RemotePlayer temp_player("", NULL);
	for (u32 i = 0; i < PLAYER_FILE_ALTERNATE_TRIES; i++) {
		// Open file and deserialize
		std::ifstream is(path.c_str(), std::ios_base::binary);
		if (!is.good())
			continue;

		temp_player.deSerialize(is, path, NULL);
		is.close();

		if (temp_player.getName() == name) {
			fs::DeleteSingleFileOrEmptyDirectory(path);
			return true;
		}

		path = players_path + name + itos(i);
	}

	return false;
}

bool PlayerDatabaseFiles::loadPlayer(RemotePlayer *player, PlayerSAO *sao)
{
	std::string players_path = m_savedir + DIR_DELIM;
	std::string path = players_path + player->getName();

	const std::string player_to_load = player->getName();
	for (u32 i = 0; i < PLAYER_FILE_ALTERNATE_TRIES; i++) {
		// Open file and deserialize
		std::ifstream is(path.c_str(), std::ios_base::binary);
		if (!is.good())
			continue;

		player->deSerialize(is, path, sao);
		is.close();

		if (player->getName() == player_to_load)
			return true;

		path = players_path + player_to_load + itos(i);
	}

	infostream << "Player file for player " << player_to_load << " not found" << std::endl;
	return false;
}

void PlayerDatabaseFiles::listPlayers(std::vector<std::string> &res)
{
	std::vector<fs::DirListNode> files = fs::GetDirListing(m_savedir);
	// list files into players directory
	for (std::vector<fs::DirListNode>::const_iterator it = files.begin(); it !=
		files.end(); ++it) {
		// Ignore directories
		if (it->dir)
			continue;

		const std::string &filename = it->name;
		std::string full_path = m_savedir + DIR_DELIM + filename;
		std::ifstream is(full_path.c_str(), std::ios_base::binary);
		if (!is.good())
			continue;

		RemotePlayer player(filename.c_str(), NULL);
		// Null env & dummy peer_id
		PlayerSAO playerSAO(NULL, &player, 15789, false);

		player.deSerialize(is, "", &playerSAO);
		is.close();

		res.emplace_back(player.getName());
	}
}

AuthDatabaseFiles::AuthDatabaseFiles(const std::string &savedir) : m_savedir(savedir)
{
	readAuthFile();
}

bool AuthDatabaseFiles::getAuth(const std::string &name, AuthEntry &res)
{
	const auto res_i = m_auth_list.find(name);
	if (res_i == m_auth_list.end()) {
		return false;
	}
	res = res_i->second;
	return true;
}

bool AuthDatabaseFiles::saveAuth(const AuthEntry &authEntry)
{
	m_auth_list[authEntry.name] = authEntry;

	// save entire file
	return writeAuthFile();
}

bool AuthDatabaseFiles::createAuth(AuthEntry &authEntry)
{
	m_auth_list[authEntry.name] = authEntry;

	// save entire file
	return writeAuthFile();
}

bool AuthDatabaseFiles::deleteAuth(const std::string &name)
{
	if (!m_auth_list.erase(name)) {
		// did not delete anything -> hadn't existed
		return false;
	}
	return writeAuthFile();
}

void AuthDatabaseFiles::listNames(std::vector<std::string> &res)
{
	res.clear();
	res.reserve(m_auth_list.size());
	for (const auto &res_pair : m_auth_list) {
		res.push_back(res_pair.first);
	}
}

void AuthDatabaseFiles::reload()
{
	readAuthFile();
}

bool AuthDatabaseFiles::readAuthFile()
{
	std::string path = m_savedir + DIR_DELIM + "auth.txt";
	std::ifstream file(path, std::ios::binary);
	if (!file.good()) {
		return false;
	}
	m_auth_list.clear();
	while (file.good()) {
		std::string line;
		std::getline(file, line);
		std::vector<std::string> parts = str_split(line, ':');
		if (parts.size() < 3) // also: empty line at end
			continue;
		const std::string &name = parts[0];
		const std::string &password = parts[1];
		std::vector<std::string> privileges = str_split(parts[2], ',');
		s64 last_login = parts.size() > 3 ? atol(parts[3].c_str()) : 0;

		m_auth_list[name] = {
				1,
				name,
				password,
				privileges,
				last_login,
		};
	}
	return true;
}

bool AuthDatabaseFiles::writeAuthFile()
{
	std::string path = m_savedir + DIR_DELIM + "auth.txt";
	std::ostringstream output(std::ios_base::binary);
	for (const auto &auth_i : m_auth_list) {
		const AuthEntry &authEntry = auth_i.second;
		output << authEntry.name << ":" << authEntry.password << ":";
		output << str_join(authEntry.privileges, ",");
		output << ":" << authEntry.last_login;
		output << std::endl;
	}
	if (!fs::safeWriteToFile(path, output.str())) {
		infostream << "Failed to write " << path << std::endl;
		return false;
	}
	return true;
}
f45&a  qn0\ O`\8cؠ535]ib6flaLL̘l24A)LLy[a܏\}Qp׍Plo<ɚh4xё7luc(W1hp2UBBW ‘&̚g3<֛ Ο36c_(*:1VLB20XŃlyFMB``֜c(hD͈\tI[wOXyë-ƥ)?p'bfBM)G8ndq&4Q"`ۓ(iO!3&l`nQAin| 55Zu CP`Fc_ fdlbTCX3L661k Qэhm';#|ڏg4ͱ6L|Sɚ3C9 ҭ}yG:uwui4 MЩf2e.5M!!fA+̶{2ifOFS 2b`6mͬFI8Q7[Shkim0[9fn "oN|;4, >r @؋38sfI,*3 g4yYe-ZjVX3;P)IMkM#SY6&٘d5NkmK`ڎPj67vLMQC MRR^-%DS\ F*& a$1$Bk} ̀o3'| `lC^p PqZRQFv6jv~jCXʹMQlN#Fhjv6#`t?<0H+:tXȈ5Y&䔢2 &?;1fPQ"lHؚPO,l Rjg՚4O$9D۩76IJaS y0itTyIeznaIM&chr# YE0'p18 pQHT!4 ;43;3C8HC_ Y`@f8@]4OLM&2f'ךAR] c P\mMJ vɉGMSU4VNh5fFigi( 54 !3 4V]5!90`  FPϑ5Y0fMYD,myCњ 6ҷ}-07&&;0JĕJg&gSމRѵ P B!6ih`Kڟ7wBUTUNuG75QXvɸMshқ\ @V52o@Klk!M2e<̟ 2eZϠךpf@),钳rRfջC-XkdkXmΈ03K|AMUkFk:afd۶kimFL&s\k52JL)VRi C1}iFa2N0%&)fL2g#9ê1z7h|mfM08#7 Xkjh (*P.h!ЪҬU' i0\s[bƭbo|Cx ÊOSA@zך'`z~iy.hЩ5010` ,Xj3l ,4˫f9nN/^]#ǬeLMTYԻ>h5Ē̜BvA3L[ʝHmG0Emɴe)5`A} M4K88M]QZMI<gOu<tğU>rO`5OHD!o<)p<}(G.+CM;]z& ?}Pi2fyӄNObg<zg>s7iq{h)uxdžiԻt `aFPO8{fgTf޻VS$XE`95TJ30A30B&la4 [u4ɚڕUv^ojht "F:+|:?PC묄\%&~혬l:ܳ+e|K_˾|C|A " G_77 ͥodd$ "́]t~>I iѥg/ԝ:P;[tYҚp*­JP):wdO4bƺ2ɇ?YߐsM{6x{p<>anA@Cxo[fEvvn><ѕJ9\8;7֟ڽ壨 Wv:*cul% Zm.Y6'HuvFf rnU"&7"oD~ X| iBh#*VmUׂ%RÌKpcM(/x@nvf+ MrۙUM׵L8{aSk("pN_d\Qb&aޯHPzK`{^W5ԯlE^BwTzBL/Ips/p-DzD/|^x!rNp^pq.Q[ uTTZ&h)=ǩu=9#x#, Da9/L !˜+e[z/$<홙E{6n.5G(rC5l'6ʧ @bHɋJhKDj6 ܧ:A>J{nwD;tOYۼMNWk,U-Zp+v`> '!M9nЈGE 5D,"up1ZRCkLALcN.r'8y Z]wKFu tmхSD Զ,uAh;D4QD=P<<00? C3 qa7Ll`H;.*H*n=!Ģs;:)DC Ьkj%b%mZ5Q*5-KUe YJEە]#+J-ZQ*£iRYKD *(V-X+ lѥEhXZŷ YЍD&aN=Bd4 Hda0aC!$VԲ`>qN>IpF rV[XM<ߪЕ=F٪vp)No_8Tm6mߙ-ћBINϔb An$=E&`61 ccC3`C&M353e!b"33`ƎsT8]2p|q/ygxgG3O~zI˚yR~{!HלsU?rj+Vjil,#9_-b  .z X#Ҍ`a}1@XXXrܗ܈33+RNt>P/</+~3uijBbZl0pLkS R=:d{@fc5 1%)V9+pvd۝e*3#ѧJo_%4IL(# "ɒLR!dDD}Iw?55^5ΒI㏺9ӆlG>xG;N`ǧ=(;qF{SŝȞX yFX2KG*='6zz1Ş wϩ;=3x =TP}OVʱ]-|\_8[%]"*,k~7k7.wP|$Ta~suLKf܁Ssm 6ɝ)3Sіؔ XVaY+#cM ަNe{w 'q=Iz\u&|c8h0w3pN\=<M0y'h}ȝ'= I8Nt y':cў~ZzP ]XwAh,$N:DHjrQԃ=0gk( yA8qe5{neU_5eu2aLv@ik}w⦆fJJf"Il``4TMٙ *d"ѓdFRdHdرhF%`Yk eVj$`G nWx'&|Ih,!1TL&"bbIR4ȤRȱ,Qߜ7XI @F1$doD/n1c7įbWdm;q:mHky{N|<_oџ5Yf1P ]_Yh,մW+a\X?ɦ"fbg-_6z>֧EHk]8lqM;'; Itsw7mMG>d~I:=@H`,‚O}*A+uN+֮M>yfTx?EI2bA")M %$JR(2H" 6.w""N!aHLuFv˸)*JK~ wgwk4A6ؓM5# u@aم@1CA_̇u^^Nĉ2wlEKWUՔl.K-PEMJ*(jQAx`ؚ XYy];du۲pq̇s.sDBq mtfqa";Ӓqet/;ހ\"z IBDAV]Qjp1*%tKfjP8û@69}Xz^'8h HY3\v7NV:cժKC|:pDޤ}T?ߥk}~M|K|& b/WaBe'/)0.dcڳ#  +?`h{ꇪ& SNywTӽN/OdA x ؜9*䎸>8bW 0$;_(i p1ڵDe4D'Ț4j?=9 l|0%5,/Oz7_F~ 3L1H́384n#O^hFM?9t롑BR+N禯m6>E_Pi~BafQ=,./w?cM=y etWQ ~'t@(-37 Z}@2vZ:T(lD/Gi)|D!f3t`ξ||xVW\0mrtYeNfs1jOZx6[Mi8<1{1~XfԬ2bb8 1 8{HZ^ k󀤏~ Lx8 ŭջW !g녋D`jPg o otRVNk$ۥخ_5c(IHHi41 c*~RsJj v1:ՀF.H6:δQu'vZM)+w P-iJ7"O kVgF\lAAD:pYLGLbX}UE+ETƃJcξ46Vf[6965&c08Ƴjl>\V)vd3gO\yuDfj O<웮 +4gg\68{]ZҔ旊xZh[ x Ц/Sӷ?[KZK,ee|չ1t3{$$/1*gw城$!Yen53wSjT&/q'Nܼ>EVLDD]^S3 7alA]|@1$q# 5pLjlͻ<)x"T#Ei"D `ccرa!E͘pr ɳp@ԇ1uT;G`䦸=dP"P)ꂓMS?1~.]s'x>G?ϐOb9m<2G䒡Gޟ7j}k3Sn D7 *)D<94kwe۫y S>k/,)*o9lyFj7'(0=b፰ (]On..|lN4hW6c\+ -.suܻ TĵFQ*Ss~w| =A8< :cPq͌;Yo*jc B"F5 Hn6$+ 6>0*e?1yAx1Cea{Xnh^~ PE4 ~/@R,D](iY˽`Y L5߿CX֦&fmg~gى*!ɟqx.kk'4I?=0&6 MlQ!V+3'>0cM=t=̧NAC< UJ뻑PiVq3V֋/OSJIRRMIIe]7K.qsi$.p# P8j"ҪM4~z=W3)Go!5t/L=0e#B@r8u]uzw1qC26V%UkX+"pž1.Hى;TZUd\}40mdfdg8,Ælik.Nnsi\E%aދ|ȷcVÆ=D9qHu%: CƟ =Il=!&cbPizMsW3ժ`˒ OnVa#yi U*n\ocJkf经|Ӊ2E[jM CQ!do_2flaE$DW0rCS~RV ٌhgu>0{18u jNݼÎ13ga^q?4XC58 AlbWFyj}'cy8 K F}7sbf, @xm! A<X$Y>('49,eTԛsŒ$gp86\Tl7;z:f{mÌe}'=smDRqσ:CӬ7Cu&7q~ʟzD=q)| }u̔KP 1J9ͷGYqv!A62&?(!K,,R}xmoڇ&ԝ9#=:թe,|9Q"K**LKyM&&j݁MX,㧄g@=GV7fُ>8f Kg潶nK;=!7d-ݛ߇P6u9#ĝ=Zs@(ʸov#F#/UVJO.̞((ߟp̜S1 zy412;2'w)̊ ž0B~AMRr&ɁH5FM6{5bXHRkkhtUdJt?N uBt+Ap M:p0ȣxM.t>^u$ ϧk.'\x#e$ƻ=i/˺}08@ `-Iy6{bY(4t(' C0uy]2b) +}cքۈ;P3*Vp8sM=P Aosݼh,p(ˍ,="Rpy KvvAүM1T@wUd\n +*ɯռPMLPMLkT/T _ X1jj4iZ<D(QIܓvȺSfl&ٖn噓40zPGZO:p(nxH?yxi/;![cԔt;=Qg}-SsJyk4_BneWs"Rgݶ̐[- #0'f8MmM7͢=DQ"R4)^7].A~pd#__¿y2/r뻥AAJRTA)m)JFDVȞƊ(hlPbolQ Dmm7{fz6̓1> ͚)M5O8ɧM޸Z- ]ǽd7nfIOJff63%/xljx1&' ܇ g/ƮZoba{)&ܩw y@Hƥq?%´/$PP|![_Ǔ W\a>Q}҅ p |Ж|d n#w?LӤtΏ[ƍtc87 ۵Y(@}>r1r%g*_"ـ=Q[獴lMNzSɵֻ]Cō^gG䎸uݟ?'svrqt{oM#Cú4 USޖt{p `LMD]i3e rXFkqfJp!yi/,^X 0R':%,J*f D}l}sUK򽵷:=P$,BS̀d2LZa+AR>)L'5Sᚧ>{ʦcBugFcΜB7gH|3#˚Oa2=qSxt{ aH^iYǸVZ:73oQMA"h}hZffp {vUqqƃ躞OUݓno6a>S;C  dH0 H$IB$ccmiЮu*9U [mM V)Dh N6><"ūѠ /S3Ԟ0`/h5m}μQ(g}~jH:`ehsWRZ>?}B|'c2&l1 m)TvCۅv&ɜ%6v[z J i}[If1jj.AE{b !90zξprlkGO@y^hez[ hS;@_rk j ]r*t:E9_T%zL /kYdW݇ݮB^c] HBѸdZ AsۍHp݂ZtT)_B ʘ44љ|{ 6aށ H戗~-eDEvMk#',˞΁9b:h10G\9ߟw#؝ ?pl=ޝ^t6|cl8g>Iӱ;=y6E<1Gt;:1s#m>>rǭ>?xsG>|gXSOz,8~Ҏ`鎈~aF'ܛ&19cX4Nm+>ZW<>mn(oU bo{- u/4cCL&ԭ񈔻p6,qX>i4y2 0x.Xb`Q;.Ք>ˉsem JQ8S%^g=E]XWmM);L=# ?Z?Zyno9qgf^~_sҩDoߝkX:p(Uj"ҥ ,0jғ|$$dY&)$)H &fI2%mj}OZ~$>dmY)M֜T=wƒSҞ s􂽎=IpJ@odCzD)ZjZ\dq&JK(XȎ"$C"Rc-c Tb?xb@tml1jCM1Bb~?8{Ȉ1D[Wl$ظ6lv \C235g0FǕo P"4@X0ӧSȋ!6m%$2$l3Ad4RRYfRѦRX*-IX6- ș5XmZV+W cp/-ckn.Aby֦ϼjDD82 PUbeJ+ÖfO;XԄ7lmaZƉɳ "?4^ʂE*FzE$&3pmRm-K[iH*ل[T5t&͗Nx|w9dۑ՜dM6/eW'RHJ8\Km5Zi˝'"ۙ 3趵 8ϭyBm{ž/p}wFm\θe+orNۉb H_/WOLS=QTC+0qKJFٕgvG |P9a5YM8 mmlp!>G bT]WY@3w37KSn[-Fm Шg#+缳3-j0IAM;38nE7%ݎ9HxPߏMSd:~Uӟ(O?mၘR=qтKsgX1vi3߶ XU,H cETp(uE"vDof_[\_6lؔ;GHW/B]َ5֝zp:\# X <n:[j DfӶۻ}N6Ys,-lkJ1cmı\bjXF*ٖ7OڿkY F-bmN2Rflٸێ6}qqOhSFN'=pj}зоWe]vxd B?F+Jߺ69==<vs>ɻzCӜǦ@uoR>vNVffnN<*3~_:8acYD=a)J|S'x~ퟠhb-j$W \ZgUY`(A7V&C#bd|UHjD˴Y! Ҥhhlɑhw >,bRx@鼱yXX }??(%c 6~2!q"9o裯+9k]u+ۭL8 _}  pO*D@֭p*sbce$R9bx^ e;Xj~ guNP'cKNF籷i!eڕO!UP k_Q5 [E-U˞-.:ɮ2jzIqbzzbwf.vpLjv y:RԻ&ߎ껻.>?I M;IOM$Qӎ^=D}fCD/l~j]9ilr8ᥤ`ƛQ:I?$7Y/K7GeCv+ S̓5fO#ˡx)$& "hHrk -͏˝cnD"!X8oVKnPLzW-۝U*DU7aBBd);&r| $O8͘ Hf4-LE T(?b9+0^`KZ^pwKŪW]2@ żRRPĐ.L\z"TTtu+KA/E^"{{ wm\{%_Y{Րy]/qa| ۗY~|MB ڭU@ LUE T\dz*tr -bh, 3CF񷽽*S8pÓ!s1p;+m#}5쳻cU*ڶU9[~Knh扥DNJ %x; -o%]`LHp|`E@^:k^j/1z ۲/ED2'q`tj+4ZY-  HM0YAirWgM)Ʃ64)@ACMH xʹ!|OUiJԡvyh_dW}_xa7UΫʕ'o-F&CStJRpsM a Zi{}EU|<@ךSAPm 4D=Fok_}|_C{%}b7QvN3S]C$ƛ(k罷qMb̠]6PukKkUW8;s^* =ԟCRK&2`Ě0i jTl-JDn{מB~~̱YKxsS88q#'J8s1Wl1^X< \[GrVžND$%2,mr7gem6I9AM)&6vtXG' $g:qEԜ @T.,lZ6f\L{vޑMn3#U:AnxEgK3:S68ZBHZU* P셠+] @AK#"#9LVSP)9`-D5u%:BŒ\&3LbF!-4 VPuŊHNU$3ORlԲm"ڥ)m+DHJ&$d]7iyY u[f-XЈLU*Zٛ1?oIffhѱ X6$% =b߮66lrn]0[X5LPiVPTj62.&WY`^cANǜ.+Wn-IY8hs6mg/C/93qq =NcBX(~dI`YnCg @-*J| 9i#78-'v!m;Y;Alk, tJJJB(D!D'>v63q66!,bq퓓\`b.{"^H3(HA?:iBbv89;ICb ]؍ni͝Q!5\bLs Sm{ 8Z4H'|!F McnnR9Ȏ:Qkr3g'ե~sJi @FNsUƒ>tBRJ%%%wٟ/e^K_aQQM.ltTŌhQ268I>i/:*/%X *Fx⁉MDej5jU\̺y醾rp ,; ύ;d82Ljn2fFg#x 6PS15{u,m}!0ZCLJ?rcŠ/()p핐*GA\x ۸Qme\0K,Wu9Lxjm4iZLۮ91f⇊ZjSA\ 59Fӫj&Ú%;FSr^)ߍN hfaxE|Nɚlqr65˪~K\1]UZS c&w×slM}oG}p=;e[7`fFڋlgʭ,:4g~7ܘaaC<99< J""#@ad* aM Q3ͪS3[jYlUY$H$#_]_C}~-apAJqƳmѷ^%1)vo50lι,-Ʒ)'vtNxMSmcۍstt#SodcTr]Ơ6 m}shLy^_U]e"!A]UBIx 4_}f-W>91ҡP@6:E ;:icxV.g9;7P3%11c,q1f 3v+``æ Uވ0s9MI 1=,[ncžӛJVw+5Z9 un!˱q\d(QPdda<D9^"" ;v'j?>9K~|K 8ʧ @&sX66 V(uYaCyÈd ;Ӧc~0ˡdg`8 Tg^ a$KbgzޠXDb"̆iU`SntkxUXj9c_dwiPѵ;mY$| hvy2U'M I!FO I b vN#\Ci3|BSMPM8 1j=鋂6ii\ F o}¥U@8၊ͣ8PST)CO0Xb܋P5Hn7H[%Du"ȾϊT*93HgHl|pVhy5>s[M1 C*"]c\<!jI$vy /M1Bv2q a 4Pb ⠃ o:#Z"Xh [neL5؜vXe;!۝a;a9|Sy>wF1Z\شɉ!"HY❙Ϟ|ZjZu$5,D"Gd`w,ʅ)29pH! La/f𲼲 ^ 'sOS \^|@>5xz 8<>ETWxѭ`uàO_!7sƐJf;vCo'#&+K .,@c*PW.> lo7iU!nb ?+%[?r{^߆/ݢ-*ua``^.50Ѭ׶"T̖ ! :HR$йr" ':No/kQ ݔv L;0~p[EV'6tƚ&xat~ȳ܏Rk`78cXr"#{f,/ jJ S W°綛iuM4)FS6RRIHiK2i4ɉ5uo~Hfa/s s)YUhhvKu+T.Uf c-[4@㓞^7Sa/Sɑvd}B2ƃcm↰-`Z- g߂yyoO(>Ҫj` 3NC Q {@k^!-p!bi&=PB*s5r.!$vdnmo|?55\[mZ"CnS:b^b <|8+NEp4)Vq6j[ \TM6)dY1S#<49.Xڐd>0Tn̈5^n0x\fPg_m&m U ]ёuXVե%%u5kIeV> ux/4֙%L9S`2S>>О&i:훈>A>MRk5rhE}1MHv[sxBnq}/oqMͪ5ҥJ*XoF;wj9_sUo߄iCU*o\AěM˜.c5I` z#流7C~1] Ytfmi&:!雱Uk 7yQjE6*66p&pGCVK,صnvT@ VJA}W{Y .|2rΙLSYضFNSJXeM} U~;aGێtg6DdL2FʑDe-QBLM$ɂ&bҦ!IPI bO ě(|1;#r ^|XYC07Jr343咦E铆VcЪc"³*B *偐edPTޓK邬,,,#`V+@F]Dp*kU`K<1k:&C3ƳaAɍS^ing8>壂&&rrJqCqcpj,>8nq՞mp.{59NzGϾE>Ϯɦ 2,љfD-ڂ~Ԯ^J"c(}L8%$& 7"''"zs mq+Έw+#AݱZ$2ɯa z(2A,4 EGZnD^Y42h!Iݱ>`F) qwl8`ca&ʐn45]>NW @ ˱JtJ*6;33v G>iH_&˽4۞X+41# 0 .bs%'d9^\7u'@Lr*793GD'/aĂEĔx\9%Jbtq6n" E-k3[YϸMVo.Ȉ[Bnنm9 "fA9<4a_i0p*‏OCzIWo a xp@k4h:. ёAAM;7Rh&ے"QϵS{ X/wq: &3Zzcmt]UUUzj䫼RĈk,ho -0H T>P@0ay/{ Z7-6-Sp8dd ?#A W6a`]0`8$Ꮟ-pCɦ)84pԺD ĕ$CZxO8Α#w~ɚS\|[x+>C? t)ae݇ a(r xEvBo~!/H\wIHJ @feO|/:p؍ fW8^VphԀXKu+&SDOL\͈`0߇6۾?QX c>R޷0F(t5Z%DJ*J ))UU ĪIRœ)&yfb4[VsPrךU5ךӏ9#\lQ$0dl:3h"DO:j9!tpjɃmvbd6^źcLҨʘ+*.&fNfd3 $&r53C$;GN3-+WY$y}eHDFLyr#ŇzSzM׏kpЩRk RMY2i5)C%&MzE/i=r~$ehZ/Aۨ貮dh+9Key@~_5#ɎmJN\xgo;x8r,A{e&%εu_lQgeE{FJߡ¡m|rODkzSq7擅:O)DPx"vIĜACNhmoXO"'{2HmUp1*ڲJ3$vfi{;iD?Oj'M @fhr=85蚃Zn5ei ~pi}ՋTUnIJ-_9e+C9Y32"Ӊ_|jG&;=P} 3LtKUm#c6o;#GCF 1p\33+OP~4G NJts?˜ Nelr??ʘS<ቮc_̕\"ʼnznWUY9q =TRL P(TL&&.r@N EYXWuQ:?~o?Wvm M}lnMCr[FRJ%)J%JYl2&6T(n3 {f 1,d'B~5',qLtB~tY7YeUt|7qNyJ;H9@x>HEP>vqlbk8,4"hJ{"A?W.VLܚˇ[f(MlUf6FC:gY+Ѭ'}xd̖bs%C;0~˞ȏ5V}cȱR]X0jrœ2B&hEJ9Jt}>11E)xJC7)4֬ӵSB0,Z[|9OMId4k,2*I}̊4'-9ap8yΜb9ѷm&g3!.{Y4D5E5dZO'8\h1ǡm„"JS8uW(c J ZSqN]) Ӓn!6=ˇ߸Tj֎3xVUj<|LjjЁN&xCל+ѓzFr3v*7y#LdDp( tӺ3zDePr:RFLI8^4yRם #SRXdcJi)yss5ZڛSnS#q;ѫ{S"~IJ?(s#;3D$$uY78Q8#x2I&sdQiuãcc%5e IIJf<pYY?yGvLL:96ھRHD먘bPyye)?^Z[\IZJM BWS^KRk/K"sAn푑J( x]3M'?ZǦ/TܬoYKXhрEKJtcz0) S Q TkwEDF(‰zJZ"aazy~fҲ֨?ȈĎc#Š9aRqÇ i#?I3ACԪߍmEy[^[~-~گU5DP1FQ$%rskwL%5֦(Sf4MW)>A C蘔(Puj/gn mI?r;}?Ӝԛp*Q.͓* 3DG'6Tm&0`МqeᥦW\>綴RĢXT:&FI:s"4Xpiq(x^"ZSsfRۙ2~C̏͏~99w=x4&S)ӓvo K+§q@RJRy)&hѥE# &,1`bŋbJѤihщ0S PQSvƳZL|glKZs9$"hJZnRtĢT΋ciO@Ww(84R^㮎V(yxBdd`G.{AyQ^yr9prI99VgT`'N"8TQ*JI?:S)T3)nJG(E (EBы%f.eaabZ0  4bų0lуFVBXȦ L*`O*MIR0r)(0RGJ0,WtXl٢04[aC / (b4M UFL,f 'KHR9iv幎a>zuAI Gץ-UY& 3Lro`T~YdG,`;50m Ƃ XVg9$J[T !IN(nIk3-J)G*n$rtn̤o[7Xn3+r#!LNLĢRRRRXomT8gBF4 xU 3#BDBL2s@Vq'ߏ)mI:GF6flҬURp11q{߇'w=',dN#ӝ}sNHq >wmMʚ2b}F9Vګ:RKe>? ] ګsRyHGLE$J$w۟4ɯm6L戌H$Q4>ݼ-,m~yϜ":Ϝ2yD<@=7Fenʐ z1}lm?5wb^7r Mq;=o/]̉S,ᤂiy ˽X҂M#~@8 k 0Va2?27GGVCP2O0VF+~zdK#ICiRO22&ioS%*b׳sISFbɽ$ߒr\VnS$MnߊM~lj%@7B!8D028hنcG>px }2XY%)lRC#~BM޷ *$NڵDhT$T5+YIg*nJ$쬉);^Bxɫ[UѕzNas'_6?(ff}r~Gȥ(WCFq ҮytX(XR}[fK>{ji&~d۾`mQq9J}W9'9q§3N8#:S㩑!i8+K>zfaeZw8|9r*$ WVR5HJ0UTǫNI*Ъ)퇟yU-" ixJCOJiZC@AM |B dEݮ!&iFSMQ6SD& F*, /cZkFJKj&ksEz>x?A3&fc'MP8 <윦EHE$9)Ga>o'Nt捠>k_;I6Sx\ܭa%RVWFqR X *:Vj<B;*x]3OzÈik&# 34I]23cZ^mBwD{siIYI=c}Q}ye ͣ4r#p;^V$zIl-36a~W&A̎i4w ѯ5cm1-EbYSM&͍̏9ګNfct3#܎h͏p3S11FRB;19x9SEI9d4c1189qӊXȳ茡.V0`ȸTaN$DjJ;y͸CRuirFI+>< V__5Uy݅L$`z0=CҎ<659%KӼlh*j3m6|ֆ˔ӯj22O=њ[-~2=AiN՚$TΔd}p7&:9qںbӹ*s.+>2;S15',7r%|pa3Lɕ3?;}8rΗSkD`#2dmzqOR'ه џ ~p $9S^kf3gRM|0#''v m>T瑋gqԶ˯Uo}ZRR24q =!Xq.1sIR(2XVlG~5MQl9a'"9aҜNQ9S$33f 0-$o s20d3 oFLgC>}G-"|"şJvr8߉AϓN<1vx)<=xM?#2 4] gtPE8cw/"o1ϓAٓxFLՉFpWjj/ڧ"d2RQat8L4#Ͷo#4FuugJ#Ď9L|C:2`:D &tc_{2~# s5+0I,ϩz+c2YvFGU餓zl4w?lMq7CYw6ee[n[-i̛#djV]m 178pӆ m Cj+"1cM,p9Tzg „"1ߪzK'92hMk5^jlLC:v'W7Rƽ<FܺRd3*6yaLhBMK| +@(᧊9ɓSNDٚa!BQ3M5 àktđ0QwJQcF 쒥J*T} e{q T&C!L܊@x:wgsiƷlssLm|9l{좡i!~w\T96i6mڌHθ`ӠV~4F ZCWץJ_9Sr$Yb<G$2?vQ~U[jZlT̛T`S;x&JOFa!Hv?JYέ8N-W"{I,Gܙ8ߎq͏4~gJ w&dbpM|ul(z@Y<[a%I$&yA dv,8cmS1XQ3!@\Hf0 +[Rm[!>XWF2VooL$7t̓L3N{g67n,12LƄJifLK03EɜrOy~8KԐz0zySo~>X`J)!K O"d(`$a^lqw{s W)NFriJS-Wݠr M ƙѼ龚bI3L4$)?Y0`KRe9ʜG_r0LL8FqJa)3 O2neg?mG7Tƭu[_u;BnD7Cb-MHM!Jh$zhd(@epQZ%̚oߡrIZw2O96c#"TC<*ZZׂN/ ϽXnm- NDYN2mJGmM#ge\Soj P2ɤ~(,0dSHf01'>?KmmXH\ hR=Ht;ts~ 5^իsfaAE(|P뎀X\^ ?A-ummd٘^8.TC#d h~MvƝϏ593+c>dž<#x8ٽ\blw)? M؛Or.\Lrܥ,jl[eY] 9I =Ҹ'a)#.~z^Α9yQG 8ҎV21EK  XK 03aa`hhyiTifT5K LM9*t'1 'rtt:{}wvLKieXR),UDAB!Ap p qnnN6+U&e9P_X  _ ^>nzYs!]#+Vgc*+ԞgVB|]/-]w kQ y0D~;;;}uszT޷dv LJ6kzӴӶiөzP~ D}>0@НțݍEV?,wduxFqtL4 N}8s Gzj!j(Mf)R;d&D N0G3Du0l? '׃f*IeEX!1n;9pn[ UqDd["s(f\U*ُy>m m7v?[mA'n~;(tDW&MC95 C#֎QMCoYիOkh MU[uFFVj1K$|d{pfVTjd{eW R{1,餎RF1tgꭺ^ hv&DZ2@IRT;ՖYmr9~|2d22j{9-ZM?$",!#vg IT8/91fNŎx2tzy c-UJeS1h)Ӹmb1T(Jm]ٻk82wp'w]ۚwhΝwvwY:awNQr)ˊ(Nnr9sYUU+QpLul_ю!ls t#jw%8;5&M`U7· 2^JPH$%nŷh53(D#f]ZB.CiZwDrjin)dXFa"&#TgYVZ ږ؆%XC24pS+g,e'+26L@d@U<ҞSʫmBx0"[RbbyFUbQᎈu Π0 3f;0GxMx5#)&a"dT IFc2'¢:(Qf`0IK4Y dMqhiaa˂Ѷڔw-~~Ч6 JJRRQ2*?8%OS VUJU)IJL̅M`jjj*"@(:077+k]LJt,Y$oOjHD5,jzt!g:AJ> S2M]L9xc%*pg(py>޷iKE%0N $2>~q˜Q8h9 L6g )6d Rʞ" K<@thN}wNi FRًd*4 ~ ',UѣGGlրN]`Z> Y#T<~A?_MF)PaʶLҟ6tD¦ddI3$bUT"V[V<'x^6do_b<"Lȗ!*蝃`iBY7Sw5 5H)>BXE) Gz]MP% Ua) k&!بw9$klqf2cz s˥Dn̊,mkTd)&"Es&uF3F]JmL0`Q_ywk5|~8pLvn !ܘ)JSx2220h gx?JHܿy?`$:4-(+#Qpt>޼ͪ{ 3vYq&$ema1#Fs_l<庹vy e"'N)I9)bZehmMu0rmlDE)8]DPС 1*,tS"(|??VN y;ʫ80wOW.шfadl}TCXWls@1cM1jb 0Ykс+'dUBr<,+7Y$8$!I$haٛ= 0~E٤6o%3w&j Ste2LFr҉PR{& j]{rOv??j٢҅aمE’Cf[qe [ȄCNb2OIyGUe, Dٿ<>Ѡ~x,D_#wNq߃C ʀxg']oEjàfDQE3Rdi4E(4lUnT:,*d >Pm-Z"`h"p'A(UTV"vٞwYꧬMchZ5h6 $QI? NN5w{ DI fn(r3 N9*KqVȝI1eZrUi)M9B4X9&V2r;7Kz 4h\fb#Yaz;iF-~E~ôu,bk.Y5j"0gNqKn1QE2Ajs@ZUaƉ1(%$5Fa Bo; EH#rrRdfHo +`.mE̒gjۧ_#)2g&|Tz+Z,)bGN$yXsO;Em44M1)p맭%23`ӽ)(f7JN_O|{Cclyi#5B@*R1EhbUI맰}HSPK7vਂ\Eu)[AD *T #D&ÞF}7 f)\{"?no6Dao81LzɘmF vakrt\y@Rd*Or:^D_ܐ] ?7' SUMUVXw{XyTJTF~a !ʄkJ _0qcPiHV6ZJ`1HRA+`PO*c_h#)8"B""&?H޷#WJfLn+I].R]t/7z]3\-ɳ5fYec4c ;uquhFFd`n J) 9J(S`Bp3If9mB'KD:_ lcK n J$fGB8#@F3y_pG1:,O)>[ Mqбx7v }x=+jrɎ26Zk& G`ŧB(vvG/k&%.霘8yA-CO"˕g i"28R0 O%3KRZL ""_FM"s0۶HZֿ>,;bu҂MWHѓ.z׍umM/K6A0T̘%\ ֌́hjL Li#u&e**MGܹsy\@]2g˹h!h0YKTL4CPOgEqӢM' 6Lj!،!ƌp[8ndSan8.LΟ͉ ~7ČDy#hs: ɐ~`8S=bjlMvY?^]^0?`ؓEN2[V3Qxspk6yXp1Hۄhڔ/W5("&d YX-@[L2VnRYT.4%51fTȝl"uX]ZT\JM/Ǖ0cRJWk7dzqZznaݓIv;ʳ!b<} uj4 *zS \go$d] ݊Hc=jr$Ǘԑ4b%tʸ7axc9i!ܸBJfgT#TOH׫Gˈ%vL!MVi4l|qqFT&}<)12RZDʫQs~ ,!%D|vQdJʃlp^Gg뚡dl1q{Z-z%pjvfD {{-"As ?gZvҖ݁ Z< [t̻ҥ5i3_XyWVzvHF5ˉ%0p!Sr]MgrJ}06'9a5\IɦН3 S#tI5 S03w`$CwH`aF0qJ93攧O\zq &I!FfpLW,}VJ7k,75t+7^"=]b`5 ͊~obqHphz wxFCIlc\4+UM6flVa5;L[-mXUD@訬 ) `'pf]u AyY+lT)]d1_u}R #Sڧ PzΉjl촵ز `ʭ=T} VU8##'L:aM{d`ēpJR7^4JnF s=Vj9jQR4C(3B,m 9Q%rLNlyNxybǜuͰܛE-t7bk"P+ ?F L0,Z dPU=tR2sig$d3fr$dG%3>c9 c9JR|98vl60/:\q &%JҠTƆ1E41jIH ,5$ eq *4^2j--Kd"[ mCccf3%v̌Fv*όXոVf SfۛSz`w8X4 `atu`ѱ :0`h8r\xU^ `nL) @/_m#B䙋Q: jHJF)ib"&_z"m$&F=L6[CRã)Lp6g"`5URva&t5\_;xx;S'?m׳ CKQg4MCv@_WA bd%L  ]&gњ@IL# ۔ &lYEk-{gƒ*ZQo0C V.!4Ԥon-ކ uf[^`YJZg:Yx IU ́3H}K*Rؔ2Y{0%z1YQc;.=9mߟu _ :*0`dx3 9 ɚ9apì\%Ӌ-S\ qE)N#"S~r5FnXʳd!)\*3!TYU" gKlz㾔JliUĢ}(EŸ0mV1ؔhm )BRX"Ơ Jh ˮӺ[n9|:"=/ZJL,ffbm0rG$0Um[ǎAqt hne0Jk:6p:@2:,tSGKq3[>,4%J%qYpE&Xu#B0Ԙwb0F<rn,y׭:jW=cZV䂴|M`̭1&Ɨ.Ꞟ\jL2L=:<͉;~9ذAŁFxArd'>@ 9wvd?Ma@SC,ke[&lSa6l0#b7%,L5bv5>j]i C4]k 30Q !6ڟ8{idС:df*6MfjHʇ3CIdE$g:T</mכ";1|nQee:d 0!*A2l.RIf#%" k[<紓KIgtc681!~<rE^4͐bّ'$YV7 `HLgʖ3IifDSR}ɍqx<½͔ǝwkLb9Ήy%HI`OE$F13%LY2ѷ iWoy0hmdFX\ef"X6Ui:ɰoR*[Bܰ.we87l֎]zM~-ƼMި3lU4%"baAZU&tñyqsm$9(“ !2ģpRe!(TlҜy)N63sY; L䠀 )y݈0SG1ݛ j!@a mBj2_91d.C gb6 !@hVEȈGv!R]$a $?6y ,G62$$ $!$OqX9̎ZnmsP5EQSp7M)Kz[|c|廴lbLi1Uvue6LS|QJ3)\YVWs/zl)d5i f'8 ϟ7/YjpL `Rq֚vIፁ6|+YeYf%MyNjC8c0`6^Y-BBBJ@U6qyVvIhZAd"C2Z]!x30*7b61aXwUՋ+YI,LYvƃKlW`P\454Y $f[1.ߟ+4ޔԚ16|Jh7B 5E"DlL[ Q{I` i$1P ,6_:"li!34T #FxN/ u( [~!K $LJЁ0ѷrGc5zA"JA$cu.til!V5ą!AJoF8!XI8#v C -h53Zz2G%ie.2d陑׋I&ǽxHfknZ4LٶQj|NRn?d<8")|ߎdy2sbd YHVLΠC!Lx ;UwmgWǝ҇?u"dha)-N^P.pjYAE_;0%K92҉hvJYYH)Dbyӫ@{H4!23e3[ KVŢ,uq"%YLn{`Ҫi`J^l9,ŷ,1b 4m,4h> 2| w 0玍OnF(NRf Sچcn:a xnLEnK|PRbϕ@!HGqF‘a'Ҕǽ&*XʫᲚH ZE쌕H'i HfW,-*hCcO:|DTU͵6w:3]6쳓 cv$sHp:ҍTlj⻚p VNlVò?j'؄FGEZ-,qi6E;oFٴ%t9>g q$$qs؇UkdcٓcW N C&j͙SD)qVs>Qd# `b N j׼T,5 ,>Kg)CVHw*@Fޗk!$k5V+bбɠ~wTSu*W e ~-Z<;+"0XX)dQGZ@8u`:iIKu D d)!JJ(ђHF1%k7p/|4a# 'L='"3#9oN#&ÄȬf9pKkJa |8F f ">&Y,4 -0Xe\^&#ə~}Zc8*?=d.N(h4o9kf֚(7LN @ac {bMڇ+ rÌ8!9!a"EFDK>@r3ľ!XsQPaF'ݓ 󷧤Xk0PbL[.0&iIFȦ֖X3Xb<(NXh=k; hB% 3&4X Uc @5J'T޸7h0YEb DY l&H76m#'&:2J:&LU i@<} N1WyyBIDZ#NZ  V@"$\2lXJA50!tKm{\S UXPCf'f9ɡ4vш4&4)6 ,R EjGk.=7];ϭ|4HaJQ)&$b̄i RI3$UeW7ع+18_oS›hl 5 :e'\^S}(9ى ң6u R5US!9ymX3BkZ RP(`A PB!ԑ=dNzfDSaƲE\a 6l2-I6mEX Uk)ggP,Y1*6}$B=y|9#K>!EKA`b߀fd2N8ΌNNS#,G.dNZV3W)غ.ŒFw9HB\Ԁ^@f jٹk Ciqruu2e'o[djsBwٙ#i6$ܞɧ,re,ciTs69xs* f($x\4Re6FXi ,lN=wFDvCJ /h %ZY wT$Rehc;!9#wUN58C妊`0a`Ska2r FVӌ3E&'X}Utb4!1Fe>jjI,A0aUU%l[ Օemg<~zvt5Ynd7]c0@{TY8H32@  ӸDe 0flDHL.O&.aKj ]2 ٣"Ƶ[*xBi837B乕lKYd`n#7ZIH!"kԁ6:8f0t amthnԉ" P,! U2*rŝC@NH1 hMK@2=]ZrS&a\49D''Ss ?BzCRUY-pi)J5E0f;aMѤ>!wdsBNmFئ 0yoLs #ʰ')e7$þ0E+6(uO[}ԼA(?8gά,+[Jaj2! vJe4̃66:|ҢIZWEG6޳J;wMԍs.StÖYk&$=1՚A%O9o̘"BD0i$"QNn P `Ki S+ʃP)6͍#i8m"Y &id&Dea'tq {sǀM,RN 0L 4 "aLy+7%}hiQ,DKW@|"Xy\ FmsbNJ]o0;*BS4䠁,`6(c ]z*=4DgaaY: b Ina̺tS"b0V` Ʊź ۗIkٷ4MN?mOd^hx0fj^m1iTRД׆4R`CD gg;{MU#dITm 0He_WI:ڶnأ0h0hDbhcA"3d|dtD;Fm$;tc]˻嚕x' j ֛$Je:zy 2>g<hmA ȊG-R{_ H$DJ{Z)n&4S' C> _'>OG:$4cw 08Z*j!46?5F&:QTȔg0r*)#!zndaI哃WM--*71"#%@5GB`*jxydۉ $5@T`TĶu8ƴc4#b44Fze^ 웚8*G%DPDyZյV|3lƃnmP1<,GU1xЖyyzWPS9 9&SP Eps#P8.U66 EefeWp\˙D[dJ҈)Y@6ԉWb;ytH*aQ)jm+*Yn0ផយuJ`n|S Sl=cH['f{2 d$Qb(g3 YAV8r٥VCMZ]3KEdا!n[lo[>}k i{iOz݌ij;%aJe4r˔|#*RGP<," bFpF mfKɯU=5^_ސb~6*hôWE Wp l. Й%3l">~Q?(Bʷr&c9--g#]6Q ht?I0fQ6KfFa؎N *x'݋;DC5""wtddbFUda CLvGje2!43ͼ;nz3"cKv6cM=чUm[Yb>vI6SH:~wb6LI&X cq5]HLT ٺ>nRra*pWR9]4637rٷ[ _.Rzټfg;ecʍuk0KFYgtΌS6gN:MB<,V摒5o]I='KweY\DBWfL_g#W&<ԶZZ %ziƮ+m8>gԾ-flpVOC,ĝ7 Ih7ڟYBgD k.+1M.ì ;6 "uH}$B,wg̉vpԗ{:m#@MS0Y;á41^υ]A0Sh̙Ԑon.| VLEj51R*#s&Ƀ\q}ƾS2 AyiZ34c,wOGa='O0??5xtf}|t~Y0{4OR+?i= r'*&mG6Қ phS$j7 zݛh9jӭ6C$m@[L @u R^@8i.1ӝtX]i2`X}VߛO}A>6(U#Һ 2vN GsR$R*<:+l5h7헭: kv }$Gyp7lqU;m(rhժ[yNs㤓`!=ԙg$wdOOd?S=0=@@+ؐfO-$h6Fw˄؏[nMsb=>>%C!؝^T X_I.Czbf/ !@VPx:2v $:\?{ OZ; rvۖ|;;8(}aaفtn1V*DZՒt(o2W ЖyQXT2Eҩ N¤RĈsLfɌpdc ɶA'8D,J%rɾuiiPx")ò :(a|A-0!RJeP,!Q59ЮuHN;[siݘC3 kh[CL6HMY&DC e&CS2L݀P87BC鮪 &wk<ɥ< ѻ 㾬9),=#vaBxJa؃ ܝ'}̷wCURD 5EJŒ)WExUŒP 'i9!<ŲP$H75"i3Kw3R@`dLW85mD1+-)VFՔVhܵ3YVj{lu-\ XoGy3J6޶d;7, #NdJ2`))㉘ASWe0ScYa1u,BГ`m L,M00i%/g_`h2_Bɫu^zbh *b@4c'+'}zgzEe8gD|Xdϸ:6RzTyqF @P9БHc+ S)7W$Y$Ԟ&0 )& )l%!Bx=o]cU#lĘ\jZZ,4 mnaP95 Ë;8kVw5`4qv9M: Khs55ږ;׌Yɯ+]5,߈NIf0Q5J쩆1*aEE?s8"$> w}JijLONՍR:uI?`32Uksm'WRdYY-3"%ww7.*iM]|̃OE=$9[WG=<;R='#:y |3߲1CK) M$DՙO$!(RP$L),7e``°btXX,H0JQAE'E  ~h U*0?T0-'ȥ)78gJ CHS@ag!5X]?9]wa+gxQf@@0B %;F9QtՉL7GSKL ը)Z]S+"!$H H$GU"tݒaQ )>V`k \aTPե\\*U ;ObVfoeomT{x(>!!@7 'Ə9TLfdɚ3w֝qzgyv(S4Y%=կ)Gxp&kJL򦢒UK-ބNI{/K^Fvw uO/Uub9Ff!Y>F'=x`G  E8Tל̝}|{o]>wrDSʑ`Pv*Z‡GrӟWggŒ%w8 NeS' 4~."42#OpɓN @`zJBI ( A;8'N:lU (f. ܢ̡a1JNH|#lNMrf3=Q%IЩ]C 0y y)g k#85)J>XO,&B4յ~/MyL\鑇ǑbvXQeX*Ɋ,*eUDIR|DߌppmWK!282Px_?OCK:.vWbJȥ<@.aT ?myh,Fo]4 S&K7T _Co=DD+WUtԙ& ͘0NdH9,5&XVťb~qJ7f 8bx7vڵiUaݍ'_QRnNy~6)9nQ93wd%`Q F n#[=c^ 90s; qb\-d>wG&'+2Ela7,+։:ziaV/E(1Ņ4w\87(٠,i6@d B|N8ҝ4C8IOb8^s/8~2Rt<׶ݛ͜$p#) ޥ8NzB ,"Ux:X f*~ٙJ+1NhxFs9ϺP6$OhgfDr#ݓ9wU[unL _+-х2eghie .~j,1:Z>U;侙sI 'qr Gq[T07m:4m#mc]fƍ9coG'U0Ԧi;nM|/Ʉx9ҔɾnQR k#;Y<1Xdf"1x³2݌@P BEe*C ؾ'-p?$of|eygG+B~]3mGڭ` $ON`>ն.mfV̜:Ctz[mLNN+\V I2Z0SӛrSA?hSaWL]iqdT)4JU]9лs&t5D2&ղxo5'smAe>Gl;O-LRO&Z&Q I~{$cMBdX"ImJ2'E(8:nNN9*PtX QH4h6p֧ pw^Yz"iM1<'GQYCؚS YhYM"eM&ebHA)z-1 nIݶ\ ~؞&kX][mJJK< 5%ɸcA=5 bƠƵK2,ڏ?lz9>ܺr퟼ֈ>'j8ɵW<.Ll"IHԑDʹM%Ԓ$M4w5 'z5F ILr^ai;`ݰs|fLLD# rAdFPLaLHQi@" )l(")y&yLမLgrܞs#PC5چrd,CnhmpNfF:g2jYb3aoFbdo?Slz+H6ڛU)>`ՙݼe4MD/8{KMnC[λ&>;?AZ=EJ~0HPݨ ;f$P???K'k8U8u38<强۩q䋌d\O'"X pXLYYf] J\Rj[B^!w6N m*xhˢs\O\/ O? H(O ƣ駚 mH 52q;dv铿?BaI4L Ik'sN/.)>8rIi6)+f$!fS9vcMy5#:g*Rwp'4$'^u5ٷDE*RVk=XIg>ptճ~`#9r9لL#1E)515f%:>s/Z"1?1smd.*&G ^"2꽴ds#~&L &A0][jB{i)$\\5B{jTJB)`xQ >b`#t)b~Ymۦ಼?$D"$[VAI!im==Fjgjsi2D=^+eAQ51)Sa1=*g10R)03bT ߷&(N33)'`mMjMCf3 0d`M"6lhfǑՅ ✷ѻgJΪTR#dVf4OB8lo_VU|gGПI'{ljQ9hOZj~{?$?H~[#܉Sa;|ܜ4Gq00T2?('&?hO9CDx=Q?{c1=>a >{SCk9@K 9eJZ0}g<v#T ϝu{՟buMTnd$BOwqߺ$~mRrvINv?A֓#Lj$:1d{~\S%6 b56F6 hշWV#ߚ!)<˙k⭟x1vp]DJhC:gbYn eOpҧTzd7Әmvn&0bjc#ΦN7 5~G<20rm SDa0Yb~0Yx.c߲&'$ỶH*EFdi=0`SG'Q݇D̏'sO_S YA?cjZ%)" y~\ ,7*KF+nV]MIe4, eAԱhBK, j:вVVaeHY ,ĥ>BTFTIش0VA:S]w &ND+(ĥ"R1(t&-Bnl)J,>AHm89D!_{I6 T3#$;C!s^mH~1dN(8ofe< QdMFIW [kW%V򸎧[\ɚxY~i9!OQꭟm%YaFX<9%&gLgNgIDeõgށlډ*44gD' ᰟ1:NM8S"hΎrYe6Y:~< !MYucVZb?`td?sV_:?hɎc΃`p, 'xz^/.c.h2/ (1E(Zm)+㛍ŏZ4ilkpe-IcGNhG0B*A|t D&qyh3:bINu,sQ7;a ,7# ̌#)1g2)Gϣ9[ETqb#O2dFȎURޒ fu{SpDeqŷSHwHvJ,nMݥ]YeM2]7nfinvZy >/fH.)N8k.Mh`eSC Ə xB?(~YăTzK9 g2LCrN( y'SO' 0K$ĒQL $0J` 2Z4rr4 j20415LF,L-Srnjjh 0l0d\?6̛ј,al- %ZU'cCQe,& CE01FKSF2jaFuŪI] ,0"!$O_]r~[ 'qdJT%Dk[rc)md:ɓ,ZJm@WuSYLi]6RI&ҖIiMJ)w(ݹrL@̌q%3kvS runerӢ˻w7eu:&eGw.n$r]2I$ĥ7en0]Υ$!;wu']%Υ\;mj櫷nݙ72Y+TrvR[LherLĩ#U)ERTl,`uC16Lq7qn~v94ZɹpNs2OwޗX>n%2SVzԓÈla)ӽٸk׹^i$ucD_cѥM'(.ԑsjFfJoaxVS9c&^$a)M#0tpN9a5J&I4'B;d(D;:Gw*2dzCdbj8v 7BkMY$7<Ēn ڍj4M2*za5~6p{ӯr*I͌6CXxՒ8`fvmd8@kZv%7LY)UY9GXn@:g!|P$4 )))*?̼Ɓا'5D Cp)IS)EȦc Տ~v'GGFح--Y#ޭ/|rp=~zn#؇vH >BrݛAJ98"`030tt(eX(  XFHDIQi ӡ]eMyw`a)]kKJSJLۮjK5)*fSPٶRHM:qDL%OzNIt2±YYpŌH֪xo'`[YplML9 Ǯí'&&?p{TN9cN9N:8qߝ# Lh?JJl&rx7eIfDyT?HNi= >n㚙Lګ|ቪn0c#8î $?>sw"{ټ`?m$#m!q?t(mnj G4`/sC_7>fs7?Wv-dL9}{"y{Iw ^_oVRc&Y,K%11e6j,UHzϸQ(qصx%^k cnÕ12U'8+X 2][ czڭ-E:Sg6ێ^ָUsp9^^n)8F:(h܋Z$d4$qvցj\Y;ekQ+-g,*2,YVUeLh8NON&ߓzzק23,k'4N|s8oP# p C3iNi~e+)X,LIdY,K1d5JŔc3QJ6aUIfUng56(iFhmL';x`򦖩J0S\#IHܟ If=h 8J' 'Ǯ)N%)Qo/v 4@rvi֎cd,Z2..[9㎎@A#ǚg8b> DzqO9G\ޱ>P LRe4)nt>ݟ*ֵlrPRB,e9q&OhG=IGSRH>YI>wTA`rX~a"'KoO=4xԬsMU,n Tbۇdꌚ&Rze28N ~pCl΂h#$28&F {ѣf `lѣFC#ݙRgL0Q`00d`Ȣ-15aÅFFΎ4a0,hX`lhlaattt[0lh68pfc6y F  UUUJ>rpv5g7m`~[zKI/s1|OHf͚pbRe"?pm_;,:0)L?Pp؀a}SJS(RRS(RR]@}^qTy0`)JR.K*RdʺUT)ZO:p80t֛IӺOG<]# g.(vJN2qrG8ѿM3'O5e`B{ΰD,y;EyYi'nHR^;ɮ5"2 ,LY2*׎#G3wqôIy4iJ,P'{{$~;I)ܦ òH't$LƸR`BVCb5QXJ|S1Ja BpG{z3,I$"X@IOj$ߏFoT(Lj##iTȹULxo77RxpMțJQM)0d````n0RR`™Z :ZL1V2hMS S+6e̳ e5uQ',I:?XS&Q=8J)'O;&y3)sBHÓ{A"?oOh#t&82MI6UR3CwDv6ÆB1`0ڏ8$LOr e;ڽ`#wYJٳ]g[ܭm C֎}N;Y'\OohMpc8Ho3 ([y=ƪZЭs$܈(a>HgoEy;ɕz !UV{c:dtShJh`;qy}2|aM?>IE1{rYQ`lY;&IA)?tyrCv\,'-,<4`֓ޖC|<vs,i3K2LnjOj6b?!Tm8yq̇'4:ՋMd>}g#9; uHc:6 tB;9q:0̓:]4F,wX{!kk^GԍةExO#u~>&uW'+/+Q`bM1-UVZ;|fUɧQmj&i3MI43U} (box2xTُtcOO3p}:{mժZ cԏ?rk0'\a4>iBXiU# MTFϲ\lEeVVۤRmlRLi*ɊHE&k*<σL'>-4 ''J5 P8BUU)U)nɒp,bbvivttۣN8pLRtt%8N8!b"!YUaUY&goUUl:mю:iNF YiVÄL*>g-9dD3*VD/YgևիR~Yr{?S`{)y<#9s--2!!3|˼sS)f%C`9 #8Fs)92C̤ M'4Prkgel's? ðW8Ã5Q ~I3L?j0B!S~~Y'jUǫ*rkb~$ mh*:Qo?l< )=h{r$y?p(x()p!s8JK\E;D0!ݫU)JqcktZ1>2{륋Ҵ1ȥ)\v9#@7d"4 sÝ ~0UxYdI[AȆ>| 41xB?2s |$f334P$9a#iIz Xs:U*8iF36~1j>oC&7[ r! jmFfs@tq0Ɔ·F4&v h\-bI?7lvXYd3x$OjI}wdjkgxD6>!O(m-JVҴ^:ww$ڵKTmZ֣J5m%mmmZZ40 ~O*`H)GlOL'ݟ(`OzB0=h3 ~~1?@s@Mb1X1hn|9: ,s+M#/Idjї3.cmڏ VH К9JJSjI'qh5 8BoCݓi3[jg.5]25 Ua't?2HΩZq(O;32:\> ISĔ*nᧅ%֞T|wb:OɟDuo"=`\ c#bCmǷpnw6YfLGECr,@u޷{^Zo7{B#pGQ7x}A3HG$Lc<̃# YRO$4>aP xC{K13üfOn~yMYY4cYg&&jAպÿ'&Nh7Ô9 Nt#XcRF˵p顆̎H6wYȞDᙧ"rG'$ HrAn蘒ba1-}eWJ'lW(egr*SdlG״`ˎ4D;TNJRΑE;ٶʫmC;% IRMf=fcUUU;:""1)­b3W&$xӞ*L5GBQԣTpU<NT{ä?y\b{1Ϫ{S39=E}fMBw87SNM'wq&y DN,NwD; es4  (KI@?y%݋8m,QgHr덭p>Y!Ԟ~(v!ˌ3$̢jI[mBx;CdIGZkU:ɒr2"(H&+M @HZ9[D]ogR٣HT/t4+|wK}hO|;2Jr| 8uzQsΟx:4 8Ҹꁖ`c~Cŏg)'4~^ֵZ)PhwuO6*Rk;XV,EYݜDHYTՈ֨F=at|KgXaDi87)FTqv>q~oxz4%%%e8XRBHI }*1v*"B&ZX5=r]H*sf^,=|ǖ"3Y4m[mUBFNVbj@}mjڻ[mҡ05R IeQkI&;9QȞtS0ԚMS|kəLūc{L,fxc|r8L|X}S艅YVT&1B* \NXo0dv< 'taYLIXRۯR&wAN!"~,ē N6K&p\C$&7sfa1,1,01$ !K=s|et̜ZDtY뛓Dާ]!m.|Fg[8e$uB'醩I'?DrÕ'ZnIs3BoICOx5v.Ϣ{ҏD}& ,I`Ogzwi⇽6K,:n3G RfJ=~f9Mƭ[=;g[;Yt\CXfJs7STp CN)d%FH 獔'O#^t6[mUuI7$f&md2 HMdD" Ƃ Jl%Ra)FDY*I1i4-7ӥ. dh<8&S&IJX,gvbn&[lY8g20{RU2szj7Uymiqqq=(M%QHdzX2aF 5$mj5iHL$vHl fvk<RnrF5&[N1$ْQ\Se2;@}ADwOQ2$'V*}c˓~d0Fܾ0i98x={x9jҝs"_b"':Zqz׏0`m4_lUbXCߓ~K$3׮c)lq1mĬ9dk1٦6܌`nsk!pn 5&&Qkc$T"phppGMyNU9C?l~qVvLG.cͼCRq*> kg\8ppٳd5͛+HCxLAulԧ<$sc&@Nte8~RI30TGT.qY K7lCpGKA}\HL;nCzDG>zǑdcg(M7g6W0R4,9! դqGj5'K,46܆fئvsGpG;(މ XMq7' @8Ǝ?2OV,,(|2yk =ysK;>IYc0=mjH·<2Y\2\.dr*b~bYjˠО1:֏:,:a9g V&a9g0I9 ! 6M'0333cy2;/>W+o;EC4{J)ᦓJV{@Y}E:>N(_xGd&ɄI1jͥb`RSSh8faYRׁ~U\A$d{IJ#`l 5)(lSF06qaÃK938&3d4%K .vGGpIׂ"RSoCN͕ $) A%P# )cZ(1%&+Pşjbx(j8G 2nƄG8'DȦܦ`bơTf0G#e:ن118R/ՉA?D='0)T;xi'; ne<NEPOs  xaa;'8GޛX˟`'~Tc'$J`<;p4j* FF1HDs~;sq㙎9"?`mEϞ*xΟꟌGU?'4o+V 6]?{``)œk [<-|vZޚ\,I6I #LYm}q~*#g '#Ƞ7?m?*܂p#|G&~tj/=)2Xn3y$H'g2t卄Jī,NpܹI(GRj9ի:| IT CIjs&353RXK%c,dYJVK3QfjLoA~f5-&;d+Vγ|Auϯ[^mmԯu\!=L78)"{#<({aLh99$Hn-#6~g:MbdAJe qK-ViGԺ||폱3h,P7yqտr[mO02~#9I8GH ?(P9݌C"S)L j/s6KK%# rWtH^5B!iRɚŖlVVعǂ?770pg%0 IIS 93MgoS4daXZի} 秓Yu)J}㗓15Zo='ֈ8 r?x 7R0؍ ̛2bH{"vA4qf~?۾7O=d6a1'fUART5CTaъpTÜ<:6BKjRš/G9)K8u.ͥ[u )BSuRNqtKhC)Q7[?>O{N=N:`RDb4&}kn$s,0a>Y;ujy|?#1&J4f K,RT㛝qM6gGܟlߛR*J'6FN2f$Fs m#ҡ m inq, )*!CM&ʩ)P~II׿U5td`NJ qS8if{1uwoesx`jq\9M}RTQE& n BTe6u{4G&CI>O^r06Iqmјd%XiۘCd+iC'^Ḕ1庨m 1_&JY*,JlєX?JݯM7v{Y^ffK5%4QZiI6YSThloS{w^fF)ek5_ͩu64$ɒʯ.SM}[V6%=СX,``E%F)-1e<x ە)UUJT;2)II*(L&E0JdUUUfNΎ^ѣe 6lҦ M 6[?yN#E`il٢I ,Uepѥ-4tlѣ6ZMS UmabŇK f`كKFӇAyJv*h)M'8x3(I$ɒI%Md{}` o:Z̍SCu=!~AC8PT$FށĀ`]` wjjaA=k>՛㿉F4Yb)QOv}#75e:?6μO' m5I:C0r:#+)N[f)Ӻfvvi-FYi~y/1yPnFN];Wב`g-Ui(>FOٜT3.hpߔ%GFr$Vi6c9T44 Mff>EeMɻ7Nf $8Gn c "Y}cjw)jG [K`2+1/k3"Xݗep]^Y\Y,r殛#cc(}7I>K^PI:Q=Fb14$a33-?JV}[$ Ox/1.rgAem[;M$59c6:7&'ZKRs[,i@L(c93jxAal--mLp&(LFNda On'lO8xw޸{ 'I59"5%e2=_z>sϊQ6n%YjA##<\2VwG>M7E3n)<)ϛM2c3&e !O6tGNΰoZEZHMG6r+֏A=Tfi0ff5k8y|}쫌yIS_j [8hs0}O}y,4O]2F2]WWek(5ٗjbŪB~!?QKUwj\h22ru׃ بt㟌MCRpYQ|V1m4or41’M 3u34bOlz}]ʪ~Ae*R7)>eKGXTǃ<T):Q L2r3_\*{1G\L ΌNgP/z%%ĆH/l\*E*nayCn"-me#)XR%-Zի,v4ao\tC{sݬbƴ[zCӁg: af ;:8SEQefaXŬ-w+43#|㐞xd'YjS k,dǺD!,yQOH= eP4JwMy7W }*սkYchýryZz.Z@WDޛx &6D##}3ŇP ;㉥pڙ\\\ccYMa[33%̷ 5Fc-~YOۜɜ8@Cg47fݞ8f\Îr#25=eUp'*z1$xISlʷ` =ͮ N>vbyT;~hۏ>*sv]83^BN28S:F5 Uzqg8FcYZ@C'PSH9dOw7Jdj5K%@D` 1?4Pu)9f'Α7SW? >ʧ lO94sSsFcIi ?ۿM2 r?d0EL%F-4Z~|XJӆKSl&sdf#Lb= iYf#5';a522$nN|a3u&2'τ})cI`ՔzyaRmRqcqɇJs;R3oY4*sdEfk9#1*=%,ϟ)5?c8(?Tde,gO|&hϾfC2W{?2՚5D٧@g$ 0铈O'''&b|k&rC'xJ}3 WWX+I*y?0jFyg i 1O3&YFR*YE;AFCF*Nai~adb£ž8J#"b_tf{"5L5֕fY S y}ظcFܬk'*hzTuIHu:'4Q5u$5F̨QR&)Sxo w˜88_EA9a݉"ʛI jۄ>a17쌦FIgu'k{<;G0ӯ/~s?|}i#r>k372'39̧̡9墳)CǤ~cg;ڧG*{(ݟ{JifTr8#~o7lG3jqF8XwC.ʫef}ˋkv(qtkA44xّqox7cn7nz~}1t'&O yNF>;?\5bty2'ZI,Nfpf#1r?-C:ٓ?ɸ6i. yM? ՅUq0*73yyO?yLޜgpwOD=pp}p#Û?P!Fqᎁ燝~I;rwߎ?"W?l` UdՎxxcrd-ON@J0yZuC܏8MTgsuf8$3h;.=|?~Yjի]NPCp~Ofj9G{Feog{/b$R\/01[#&nP~~u,9ȕ =@GH4=VVN09 1fUmV'?,I;#;1N6Znӷ'#:u#99ꓠ<`iF|f#/[zIșG81=|*XYSLސ'#rzƱO_=I9:.2h+t=LETugo㜩àRƆۄ~Ow4*Za$:S Zz m6⯉^@C-oT7qt|e5o~AJh6.{>㲎UiO&RtD<,yў(TNJDxbw't/L^(SΙ sQ!}6ODm5cL1)IAZ_@_WV^` t)6;jجXSm*T1L_L\" 0{iIH!aO,g=_kl)FYg=')s)Z`xxTR0bdbpS,T"ε5;S֞s5>aXE$aDŽ77t?DgOV`ΌTzޝTvdzE;C|~<.{s<>{#ܞ.}Ig< scO;tFhRsghw>;q&3Ɩvó9?v=ۏ},秷=q({)'o;:#|i>3G<AB?~<٘ORmckYxǍ:YS~<g,\z#%?};5\$> Rzw2?4=󓵖U,vBm@x97cfUyә a;3ݞ䇱>Q8C'H4 Ȓzc~Ҙ?8g~2yA#rOwPpN"$q;|i2f)gCqaOYNfY?r"*|&YmQ;.dV0^=r\\-29ޖ$I @;1Y  {l5ѡEO'|#JJMW4oe~AG>!Ob=5@zӿ29Gx?Ît9p<~8C P2 =/g "DD;5z*7# Q?wQNT|9؟(8Hϻ=rw^NUܹ>sCkhs}~Jzt{2xͥ|~ |&)=4ʲZyW?=L찘]*䳚;ٵ(s82#35Flq >םCv*^pa u'nY*z×9$iI;{}9>vsק{:|#;=^?\hOl &sxmם1ɏC͏g8X^8yGP<8]mY8o<#y/٫/X=:0ܧyxJS o}US>~bNp{GlhэthN"7s)#><;b,O3Gh~z~YN> ߉G۝3p;Nf3 )n攚 "R0)=Pf<dpit)8O OO*Gzhbf z5q`.ɕ觃\}_2mS4@wD쳻>'t#U^菈|B~O}O8#ˏrzuCjtz>}uC#CB=1L:{]z93[ä?l7&S ?<0[0oK'33`yFaelO7&G9S7=Oj~<: ҟԞ0'ƱgJOJL&;X &}ct3 {BxQV:S`6=;$2zK,Ym5Ofថuu(~Qffc8 }3Ǟ :'s>͜~f<'>9~!͞现Gy?,ݞhG>Ǯ{ޟx3G}?`Oȳ:4S?gB~ ON{3՝DcOߟ;OLg;#NO͞Ӟ_~OTx1ϼ:+U}z7E=q޹c{twc؞<~`IS?lo"I.=#sȖJJr'BH;6%kGtU'rGH*ҭIIʞpoO0{;D"7$x޷*ycS.#7g>1s_tOfy?ȜOxnlv}cE\{doe~ߘ {i! nJ&8AlXC>Alh=g7)&l[MW]7HGhj&;۽_w~S?3_⍑0./ѯl5Ƨ-S♭1Wl^h x23+}ɃYO_^f]2 Е5&9_П‰9x?[ %}Ѥ>ԓJPJVOu 9:T97C{eo_B{uav1ߏ ~0V˓ x՟.bYLŏ]MmPzϻEviAgf~ǿϜgϝ\c뚣''Mt.q3Hu$?9?>O3aE?+JQsG:iDf30`)IJJR|mXg?xa - :w5S~+J'޽YS |*¦Iyc\3L'2tʕ#I>SATOUQQR=1 L'&OTUI9RՎs?,02s1͎m^jN2!#߇@5y2Nvv { r:Pqq=S?: 槄8OL?53'?Dq2>}Q7s^$Ux93{#z:q}0W9s崡JaAT9%mWP5r.:-)u+ѯ=!5r""6+R orL2JTdh C,D?[@kq[z Lh U֒殡u rU@WP*K]Jܭ]`p-d :N( Cg =XԑgB<5ϻGG`OXM\Nph/<_ge@ȚJT IDIgK$'S, lV@ZlD^#* (=kj 㭙 *S Hw0,EBwT/-,ɔ3%YH♜i'V:!i^PS[ $2h, Lv“0Zk43'4Э򧧙L&/)4ט@Bݦ ZgC-A|Czݮb K/dWt.wk^ Xt8`ð;ŰYǗne|[r,q0ID_7B)'պ@E9dӤ-#RC\\x@m{rYBlnQsÕefrŖg=0AQIz N C T1<(&ܦ15jSbØMCbyiqg'HXp- .tJdu]RVd,=* $6$xETm>} mNw)Ğ2b̘\DJ$6g={(G_λeWVZ=<ű[Oj+aP/"򶭫hkށu7q?/?2}M=sQ?D|ä,v &i%{ѧtN9r$qfИpҾQ$of@F!z<:mlgOvoGpNe7mv9XFki#)؍fs]aX:v8&?7SNm#9'ď;bq9cs&+ռ%:F%a#;㽍߆kX0üG)$K,4|%߇D-k^ju,&SZTcNDc: pStSamLɶ# HvdbD!| 7ѲK,gx<[oVWz¡LVѿW+J!E\<npDQɹGW ĥ8aX6"/4ږ]PlqCr"'2[pV])C [cJ,,vyy_t## 6K) ))Nth7ӾK93?9i!62@e0/kFlW>"rfs'+n W0XP\Ob1ѠX,34afe\1,:'qO~N){T#b<">c ןڞBis^h>(c>|~ҁ*w14Jkt.] rmH>dS(N9z(h2*yێ݉ IIʓ1>N2;q6C!MW7rM"N(9PO^5Ft+Wm ڟO"8(7=HTȪddnMVMsOyld5I!܂Y=Jl FqXĶgt_Le1tt;&11Vز1pM#|3ޕ4|c<ՒDm4 d`+A2Mbe4mF ݎ@ &VJT㓅7C`Vbk% iF M2[,+"%``)ʳ#f(SHdLՌP P3Ms4SwˆG%**mnm҃tA66k" Jg]ֻ̈́#0e.Tq͗4Mmʍza y@ ;RxÊU`yaՐa9!FFzNz0V;; ' ;;N 6H29g=#s`sΩ5 r#{ypNp.Mqsc;GFr_m|c4GX?ISx;ɘߝ93IcAL'{ }qOx՟vqnO=2v.=ގyt9 fry=x9v6r=~4O>RGq'-5)M- ړ9W9pdptl`4tّ4eR{{[/c)ɓlG4' ʞ`s PoIBs;DO5QPنݤU]B2VL9 Lw gnF4+ead'L鞀P+:oÆ""pqF7LI·zN\7C@V+~|r\TJDM$ nP#wC.&:e^׍exio.rk{68/%#NjP8 UKbR\8Y0!1my\qT*geiY\pݻ+m[Sxfu# DFO(mY;x3O)%)=GxUW7{|pGpG6=o͹G&Fk<xSx-'덤MSTߚɿMMnkuO90hh<6JvGwlywDC&N8^e>V od4ӟ4ތg@6 x>+w ޘgb"\N(,( x-BxS+1Gc:wKm]v@4>c<mF[ |.`}ts}݌y;r<_ D}% >[{1^=PY`\nXmC;_Q?_>S6-u9. |xi習Ibdt.s&vg)9'r.Sr6%)k/u'$%hSQ!Mo aKg΍u۷o2ad ̪Ƀ2k#pnxlf0i٩lf8D0*dJ'8v:3Nx)yI3 C'$N"Ɠֈ ^v}))W臡E}kiqs惼^\~UYmsNOt9A#|t'qq:Ip'S7;n7N냆O*NSs|mǡ:ԯrTrS)~Yq~d9κJQ} `v8 v)Zw8OR$7KQ!d.o>'&TІ9βXo_%#_z;4GVbm $KȰdPxЇ4UVa#`U,J?E_o5Io}C#StiԡBɞn[NNV a}:JX+ ~!QTd߿BmI)Y+mxe`ۧOӵBe152gгN:H+m'FQFɁSG,w99u3 \ŸQόh ZZ N2)mYLM 44u%#&3J%"3)I-_kYdM*g3Ȩ{iХ}Ákj73%f6iݎ.,X'x=tOFk,m)J(et{QGwQ쇪q*BOONJJJ-Ƌaa`\.l=ğ#zzyʍP՝?Aȩ,(㜑a *Yܼ]~p$Od((R)IJ()BJ()()JS!n\5UXcώ$,mg3;>/O15*?tQ=\?zb)4)Kf?yߥjU)TR1jdH"fB$ ɳfe!$I*R,,sbrN(ޜx|KeLe>h4&""<q d(=7M:>x|OZG4G4si͏`dsC@nAsbDe6f>esK-Y§ILͮ٩RLf {c:oUlwMyW# dj3ϞMCzO7>Q'' dK6f11u:nt%&f|LI?Q&jO=RIR'*;-X-[,OhYe10dF *Ԥ:\N Rӡ ZF0ihA01Iɼ)$M5ffɚJLK4e#EbکUV1)dNx>y2 0`22x=;GFw!I#R|~Hٜ/t*?o|zMz S_sُ$IBAij IBLvoߝt F?/½QPFKL0ìE@ 焂\jMÆA%2j=/nY5ZOh23+< 8M;oߌ?i8#\M0Ȟ%$|q^o7M˘\\Kq1]<9ߛ)G\ǜI僊4?brJ6Sd|rdg#vT0ÿBxcf&ي;tot1i1*cVS T)]"]+mj)(Y)FORmI\H9J\0njTReنYZ4`ի U a` ,ltу -44a [5hCz0`eha`huhFnhYL4hjj E4 )`E e 7j6eLR*fRқi0lգvpT,h0006:RWu)5Նj4ra 7ZM:6leKC 2eգ[5&Z܇pO7 8!΍Qj]_-j_kBz2HИAF2h!BDY@;аqZx7j,Z HIIg}wu3CoYcmս >;C$bj|f30R*9?r8pΙJl3aJ\1bO3gLemΑL Vc'$:񳰭SeZJHYYf ICN y?"q S$$$ !88'"7iSUƦadE0UbZC30 )Y)UJ)NO DԶYe5|RՁ$,M&i3 ʲ,i,0TM,,fĔlXjB ѴZk6?dzO>_>d /(ض iϞ1LMhV*\^@n߼I`7ΐ{(j,ǽ N&{O|A_`W|ly|nse>~9\8E:#ڇ8>dr y6M#N)t?9=v6PcJsf9+/c(D(TQy*N?z3'1~dH²%۳F DԦة*`Ԉ0a0B)m,ǍBZ!ۄ5 eJkKad mȥ<14&8*rL<9К 5 m_IGBNC?R| $E zs NJ8f3CI3G1q nj)iGʽ3 fF?{WaVM&rwAL;ʩ^86SѽbXk،$xt&f i4Ojsmn΍2x`3H>Imڶ4׮خq%[y"6{NI t9?LxSY`pGⓄQ9A8ͬ6m7S6͓݅9~UoiMB`i( Jv4wnZAkBM5C"v)hDdrs·1;`sx<7?X23ye-7{A2)N0n=Ԝ ރL0,,e-J=zL=ݏ>6!8CS7Bc98e?e7y?qHgف\+ՍU}GR(>37s§Zk'&S{&nMݛ†h^"F(;3z~wM[P|mr2eQLH {jC # !e,rMÔmk(m21y51Rxub{M:Yj%Uc 3JGZf%~=~3;a\JVLMrڟwnYߨ7#"Svg>gGhH&0RS5OA\}8#cͭ MoCٙES+)O8sL&sq Xٝf)9`JI*3Po^6CSFlF[[ b b  7bLΜ,#έu]f)}''i6\CˎPIҌL3ruԦCョ:#L@;>TP~>AbR# ZƧ %)9!ryJP)BRV .K)K$zהroDv,2ji&r$l3=~ZiاH3R):gzHy1GBG!(¤I<nMNL4Le=/j۾4Q7)&oY+^w,7 cpv'R7[6X[|wXǧ$ha @G?2?;?h<XY 3䟠=hp9c`wÜA (P(k1*bkmܛҢa0,(e-۟33;3Q=$֑6Ql:fe99ȎTqlkyQqɚ(W q*nB=qNac24[[m4Y3 Gu?t'Gv~>8((PTs> 72N)Ċ9w4ٍg&ܞvs(uc~"@}#_f:Ӓi45nYlD2sWйMl^KIURL,ow':z-dTyU)JYR*Y[T xmͩyD#|M&TTLUa1TIO1T p~p;L +6jn6:ܴ1zvjxMMEZn |ZfbdVeZ1=)G%JS$u$돒sop:Ǹ(Q:r#aգ)y[v/+EFdqW s@.4eDQQ D!H-ZhKkmF1cK'&XŌF,4j4k\Z 1uٛ9r4t5V؎-\V#&)aN giňёZ-;4cKiXIbN0g PK,2ŌZeXʰG,\y-G e)l兺dq2ё\[40Z,rťV2UU0--FnJ8[VYl,]u09IH0IH20VQm,YqiTiY$ "K%# qc ZIK#Yz2b鵥[XZ4ZnYmvcYaD8K+Xݵb1e.]-VXUƦ1tOO\G$\'vO;D8ySh=Gq'~$3a96w^kM$9 "k~L*j 8Cp(əY! TRh4ڪ#~hoL[զ"bj$YeZY}mե˖#Zimib.\dj˥ŗ-Zj 2,H4e1c)YuYIӑ1IbK:iR2,HH0c,eXO7,35,̲uufeeefeݖٛfn37abq@`qN!'OaoM ǫ_WlWYS9ӟ8v^\ds{C h::zz:/9NM7[)Êp7#Iq$S\x 5$1Rk3 iUXKq}ǯ!2I#6Sțfd7Sev˜:ɲgffL43I6.4I s޶E)$ƒygx9=I46<'w'6pSāɭYNtSH(sd'a' QL&2Tg`liwMT 0MfM7))鏘ɚ:EDwۄsL-dbmX*}Ɲy(g3ڥ;hǤeŸӋSxuf`{Pz#膋i><MqHbLɻLS ];iMI]%+Dg43>S&uޏ9C /凔E^ ! ƠJ5oͣL``)(,1똬+--1 Z)P|'o۪)~"lxp!#` Ӷ=3T3̕$eb͇3UUEQ!Oe#ᄰijFZ^ & dzEش[YV/ɏžj<edRTeZI}ҮRIII-'KK+zF ӶY ٹD!Vի*]%CQԐqԏP#•?x:"ʼnNT L8#&c ECBW O pi:0:,#1qab0EJ!)IC'3-US0sxbϸ|'|%;CY5WЙG#T.Q;$5qpNT5bZ1-[-r5G*rg >a6MG$|Gx<0#ܸw)Oܑ3H3Bb`'md<ѫ ,BvNly(OJZ4 (I24L،1&6iH!lVe2SCڞ}r Xr$wɎY$L,RLőz7uK7\=Dk"'b颔X`-0DbL`bKDX90w}TLZN#⚜u|77D<)D I.IjuKdTɒY,;$M2B7]]J1j"o5 Cy7ka/6$B+oJ۫^MhũTTZRJf.`ܓy$lh|9b|X[g3[m'g Rlu ݇m> ',%'(:oN$s2$c; 6`qM:1_,N1 FLYc4e3>NoߏjPX@AEmmZjRKkmp=SCFu80fZcYmjcFqL!d]Ut r:qDJJO!Cf#?HCOq7nm|ۆP&|k+Rbyܻt ٱCD3$vmH19[ruL W9sMZ/\˹nmNJ4N9 MI+<%9I፶T`%Q(9m,N7im""nz::-[aqΪ[U"[˚#lTVSs6`jJ 3DNq`0e4-N^rդ=^뜶E-avmyj/zѮsbݯ]\tPu9qy8GFr9Ì԰^NrR1-Uׁ‰Ky1t7 PJP@9䶖 Np8r',KIpV,knlȳsvE*Da'9/؁Z-aNx1*wF+^NA!Al^G^~Ι#@96`aQJ)J6ҔJRc,XX* Te,)V b,m)m0Nx1PpL )JSJVRQHEb)&X*)JIfH$J$4BlE!jJ L*4Z@coz\:)GNc:)"{򔔧2D`T%4EJ H兒4gKG&> :<>7/'v Gm'< C_ONQ"?Ġ9bH#r*Ib,-$ Al`r0b]a&aPG>ɔ{ڞJ>h3K7gtC$M:֎=$GHO A>'>'gn'wog䄟 ?TߩM3E-*&( Z`tD뇸 u/^1^=:Ӡ:#5mW[oNMSP՚"Y܊:SI6q8-}Sz`RLG^76NTr'B?lsDi9;Fe0gSR{$92#$Ori ajF0QPğ7@  n 27+Uϰ°å8L5M$VC ޽.M2u۫ K*%/GlL Jy )?7;ӐTTX5Zy㖈??;A$~' ~D$5cP5sy~8tۛޑ)wȲ`0;ciʈq!k!n'!?-XN2MҫXxѩ?`:o=BnN, I1UW0gmt`ڈZ(ʕV4mVŭR5K[[mm*-kY[JD[J6v A:TEiVlmUhmYkAi|ï[>ҍ0Y9cf.IQk0 =~k^]Y/)/ܩ" qM1n/P%82)LUϭ;x05=?F˟JaEh?Ch=2==cpBL704Z< s}IQL#!g?w>A>a<]w0z,-/ |2fѨDqq &LOu0mZǦf72.{b2nOJNTMHr$ҕ>*0Hd̡F.*൸Cqx8G Ün ry٩$=(qC81ɢlCj`m7ai=I,fw"Je]O@JU*R3` &: %Q1,yDSP<|S46L1[JJ2I&$R_.̣=;V:D!v@ NЖBb3l[bB$vQ'c-Y$EUXi> ]IՓCA>PD*ōKiEmE"0mIJ"ӮvQRhnwvwrNvH+-JeZ e.Itr)wwD LPR.JeUrV7/v6O$.2WqyW,rG3Cl[-.jK%dYJVf5}ݵlB-T$ikCod<'#p&lM ވ+IKIZezWWau|WI,$IByy*ay&ff )`mSXSlw8^8p) ťٵѦqu6 'L9pv֭kscIdY,K)YJԤbS3#CSκf3K~*:YRTc<ϛ!\ẅ*IOs2I>T#\c؀Ɉx O~SRԫ8"mX*2R(pKTf)1SpsQap8r*ƚ ZKMfׇih0N eu3{,rCOܴt*xV/f*e߉Rgx1 6J;z凉<а)YJ?,R2%;NTp2߷F6t0D[LTх,t0GqI R)a`&/A`$P;xsS2Odh,9M3IPޅ4Y&ܚB3i=#6Cvn!5M_$0^@:'dtL@$R4F-#)\\\Cv;;T| {|>B?>iem6-eJ3l,5-HhJŶ7>ɽO86.Q LH "qv@o 4U79݌1FlƤĒ)ڱ!bIڑ FE':Mέ&<@ї1[y,! ()>`z0RH)bj-x p #-x؟~257g\?Kz҉"jCC^RήP+<=+(k4XH6> (##,r"rdO"CRMqNߊRR2fmǷOO>Y͓O?HgRg3KhmM mSfxi4ƩQ1*fNtYY31De$0Oi7f䚣ŽlQޛ5 F\dp & uYx#Qwl:$Oߒ~XFz+o>L;OBҒaNiƥړvڪY_=dI>]C4?zy :)'0$S;B άݙ)ي`CH{{mm*0`”aJi\%`f\i%\'y XZH|Sa<;WR0sfK = !" :cCXv3fa",01~ !u\C 4)S"T:DbjstXuPa[mvV`t*^PNIH:z]^PJW8;9օd%jbSzc)JvL.DjYe*,*5OP@R)[Cd`4(a*Kmcq<]<:4lgF.,ZZtѥݍmƖcKM:y;;8q6Ӧ3ԏv#;;f~i6u yc"; Sx2pJoO`pڜSI Ma12iy>䎻ݤrNOGm{6,6hI7djTǣEH79r"}8h1׿N$#`Д] D8$oώrC6ctO%')׊8nCbڞ RR| b`F)ʢJh12Z*j64>@uDGyt%2:1#;D~V^c4VQ