summaryrefslogtreecommitdiffstats
path: root/source3/lib/replace/replace.c
blob: cec158be313e16a7b52a5c5130cfb2cafb57fe52 (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
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
/* 
   Unix SMB/CIFS implementation.
   replacement routines for broken systems
   Copyright (C) Andrew Tridgell 1992-1998

     ** NOTE! The following LGPL license applies to the replace
     ** library. This does NOT imply that all of Samba is released
     ** under the LGPL
   
   This library 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 3 of the License, or (at your option) any later version.

   This library 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 library; if not, see <http://www.gnu.org/licenses/>.
*/

#include "replace.h"

#include "system/filesys.h"
#include "system/time.h"
#include "system/passwd.h"
#include "system/syslog.h"
#include "system/network.h"
#include "system/locale.h"
#include "system/wait.h"

void replace_dummy(void);
void replace_dummy(void) {}

#ifndef HAVE_FTRUNCATE
 /*******************************************************************
ftruncate for operating systems that don't have it
********************************************************************/
int rep_ftruncate(int f, off_t l)
{
#ifdef HAVE_CHSIZE
      return chsize(f,l);
#elif defined(F_FREESP)
      struct  flock   fl;

      fl.l_whence = 0;
      fl.l_len = 0;
      fl.l_start = l;
      fl.l_type = F_WRLCK;
      return fcntl(f, F_FREESP, &fl);
#else
#error "you must have a ftruncate function"
#endif
}
#endif /* HAVE_FTRUNCATE */


#ifndef HAVE_STRLCPY
/* like strncpy but does not 0 fill the buffer and always null 
   terminates. bufsize is the size of the destination buffer */
size_t rep_strlcpy(char *d, const char *s, size_t bufsize)
{
	size_t len = strlen(s);
	size_t ret = len;
	if (bufsize <= 0) return 0;
	if (len >= bufsize) len = bufsize-1;
	memcpy(d, s, len);
	d[len] = 0;
	return ret;
}
#endif

#ifndef HAVE_STRLCAT
/* like strncat but does not 0 fill the buffer and always null 
   terminates. bufsize is the length of the buffer, which should
   be one more than the maximum resulting string length */
size_t rep_strlcat(char *d, const char *s, size_t bufsize)
{
	size_t len1 = strlen(d);
	size_t len2 = strlen(s);
	size_t ret = len1 + len2;

	if (len1+len2 >= bufsize) {
		len2 = bufsize - (len1+1);
	}
	if (len2 > 0) {
		memcpy(d+len1, s, len2);
		d[len1+len2] = 0;
	}
	return ret;
}
#endif

#ifndef HAVE_MKTIME
/*******************************************************************
a mktime() replacement for those who don't have it - contributed by 
C.A. Lademann <cal@zls.com>
Corrections by richard.kettlewell@kewill.com
********************************************************************/

#define  MINUTE  60
#define  HOUR    60*MINUTE
#define  DAY             24*HOUR
#define  YEAR    365*DAY
time_t rep_mktime(struct tm *t)
{
  struct tm       *u;
  time_t  epoch = 0;
  int n;
  int             mon [] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 },
  y, m, i;

  if(t->tm_year < 70)
    return((time_t)-1);

  n = t->tm_year + 1900 - 1;
  epoch = (t->tm_year - 70) * YEAR + 
    ((n / 4 - n / 100 + n / 400) - (1969 / 4 - 1969 / 100 + 1969 / 400)) * DAY;

  y = t->tm_year + 1900;
  m = 0;

  for(i = 0; i < t->tm_mon; i++) {
    epoch += mon [m] * DAY;
    if(m == 1 && y % 4 == 0 && (y % 100 != 0 || y % 400 == 0))
      epoch += DAY;
    
    if(++m > 11) {
      m = 0;
      y++;
    }
  }

  epoch += (t->tm_mday - 1) * DAY;
  epoch += t->tm_hour * HOUR + t->tm_min * MINUTE + t->tm_sec;
  
  if((u = localtime(&epoch)) != NULL) {
    t->tm_sec = u->tm_sec;
    t->tm_min = u->tm_min;
    t->tm_hour = u->tm_hour;
    t->tm_mday = u->tm_mday;
    t->tm_mon = u->tm_mon;
    t->tm_year = u->tm_year;
    t->tm_wday = u->tm_wday;
    t->tm_yday = u->tm_yday;
    t->tm_isdst = u->tm_isdst;
  }

  return(epoch);
}
#endif /* !HAVE_MKTIME */


#ifndef HAVE_INITGROUPS
/****************************************************************************
 some systems don't have an initgroups call 
****************************************************************************/
int rep_initgroups(char *name, gid_t id)
{
#ifndef HAVE_SETGROUPS
	/* yikes! no SETGROUPS or INITGROUPS? how can this work? */
	errno = ENOSYS;
	return -1;
#else /* HAVE_SETGROUPS */

#include <grp.h>

	gid_t *grouplst = NULL;
	int max_gr = 32;
	int ret;
	int    i,j;
	struct group *g;
	char   *gr;
	
	if((grouplst = malloc(sizeof(gid_t) * max_gr)) == NULL) {
		errno = ENOMEM;
		return -1;
	}

	grouplst[0] = id;
	i = 1;
	while (i < max_gr && ((g = (struct group *)getgrent()) != (struct group *)NULL)) {
		if (g->gr_gid == id)
			continue;
		j = 0;
		gr = g->gr_mem[0];
		while (gr && (*gr != (char)NULL)) {
			if (strcmp(name,gr) == 0) {
				grouplst[i] = g->gr_gid;
				i++;
				gr = (char *)NULL;
				break;
			}
			gr = g->gr_mem[++j];
		}
	}
	endgrent();
	ret = setgroups(i, grouplst);
	free(grouplst);
	return ret;
#endif /* HAVE_SETGROUPS */
}
#endif /* HAVE_INITGROUPS */


#if (defined(SecureWare) && defined(SCO))
/* This is needed due to needing the nap() function but we don't want
   to include the Xenix libraries since that will break other things...
   BTW: system call # 0x0c28 is the same as calling nap() */
long nap(long milliseconds) {
	 return syscall(0x0c28, milliseconds);
 }
#endif


#ifndef HAVE_MEMMOVE
/*******************************************************************
safely copies memory, ensuring no overlap problems.
this is only used if the machine does not have it's own memmove().
this is not the fastest algorithm in town, but it will do for our
needs.
********************************************************************/
void *rep_memmove(void *dest,const void *src,int size)
{
	unsigned long d,s;
	int i;
	if (dest==src || !size) return(dest);

	d = (unsigned long)dest;
	s = (unsigned long)src;

	if ((d >= (s+size)) || (s >= (d+size))) {
		/* no overlap */
		memcpy(dest,src,size);
		return(dest);
	}

	if (d < s) {
		/* we can forward copy */
		if (s-d >= sizeof(int) && 
		    !(s%sizeof(int)) && 
		    !(d%sizeof(int)) && 
		    !(size%sizeof(int))) {
			/* do it all as words */
			int *idest = (int *)dest;
			int *isrc = (int *)src;
			size /= sizeof(int);
			for (i=0;i<size;i++) idest[i] = isrc[i];
		} else {
			/* simplest */
			char *cdest = (char *)dest;
			char *csrc = (char *)src;
			for (i=0;i<size;i++) cdest[i] = csrc[i];
		}
	} else {
		/* must backward copy */
		if (d-s >= sizeof(int) && 
		    !(s%sizeof(int)) && 
		    !(d%sizeof(int)) && 
		    !(size%sizeof(int))) {
			/* do it all as words */
			int *idest = (int *)dest;
			int *isrc = (int *)src;
			size /= sizeof(int);
			for (i=size-1;i>=0;i--) idest[i] = isrc[i];
		} else {
			/* simplest */
			char *cdest = (char *)dest;
			char *csrc = (char *)src;
			for (i=size-1;i>=0;i--) cdest[i] = csrc[i];
		}      
	}
	return(dest);
}
#endif /* HAVE_MEMMOVE */

#ifndef HAVE_STRDUP
/****************************************************************************
duplicate a string
****************************************************************************/
char *rep_strdup(const char *s)
{
	size_t len;
	char *ret;

	if (!s) return(NULL);

	len = strlen(s)+1;
	ret = (char *)malloc(len);
	if (!ret) return(NULL);
	memcpy(ret,s,len);
	return(ret);
}
#endif /* HAVE_STRDUP */

#ifndef WITH_PTHREADS
/* REWRITE: not thread safe */
#ifdef REPLACE_INET_NTOA
char *rep_inet_ntoa(struct in_addr ip)
{
	uint8_t *p = (uint8_t *)&ip.s_addr;
	static char buf[18];
	slprintf(buf, 17, "%d.%d.%d.%d", 
		 (int)p[0], (int)p[1], (int)p[2], (int)p[3]);
	return buf;
}
#endif /* REPLACE_INET_NTOA */
#endif

#ifndef HAVE_SETLINEBUF
void rep_setlinebuf(FILE *stream)
{
	setvbuf(stream, (char *)NULL, _IOLBF, 0);
}
#endif /* HAVE_SETLINEBUF */

#ifndef HAVE_VSYSLOG
#ifdef HAVE_SYSLOG
void rep_vsyslog (int facility_priority, const char *format, va_list arglist)
{
	char *msg = NULL;
	vasprintf(&msg, format, arglist);
	if (!msg)
		return;
	syslog(facility_priority, "%s", msg);
	free(msg);
}
#endif /* HAVE_SYSLOG */
#endif /* HAVE_VSYSLOG */

#ifndef HAVE_STRNLEN
/**
 Some platforms don't have strnlen
**/
 size_t rep_strnlen(const char *s, size_t max)
{
        size_t len;
  
        for (len = 0; len < max; len++) {
                if (s[len] == '\0') {
                        break;
                }
        }
        return len;  
}
#endif
  
#ifndef HAVE_STRNDUP
/**
 Some platforms don't have strndup.
**/
char *rep_strndup(const char *s, size_t n)
{
	char *ret;
	
	n = strnlen(s, n);
	ret = malloc(n+1);
	if (!ret)
		return NULL;
	memcpy(ret, s, n);
	ret[n] = 0;

	return ret;
}
#endif

#ifndef HAVE_WAITPID
int rep_waitpid(pid_t pid,int *status,int options)
{
  return wait4(pid, status, options, NULL);
}
#endif

#ifndef HAVE_SETEUID
int rep_seteuid(uid_t euid)
{
#ifdef HAVE_SETRESUID
	return setresuid(-1, euid, -1);
#else
#  error "You need a seteuid function"
#endif
}
#endif

#ifndef HAVE_SETEGID
int rep_setegid(gid_t egid)
{
#ifdef HAVE_SETRESGID
	return setresgid(-1, egid, -1);
#else
#  error "You need a setegid function"
#endif
}
#endif

/*******************************************************************
os/2 also doesn't have chroot
********************************************************************/
#ifndef HAVE_CHROOT
int rep_chroot(const char *dname)
{
	errno = ENOSYS;
	return -1;
}
#endif

/*****************************************************************
 Possibly replace mkstemp if it is broken.
*****************************************************************/  

#ifndef HAVE_SECURE_MKSTEMP
int rep_mkstemp(char *template)
{
	/* have a reasonable go at emulating it. Hope that
	   the system mktemp() isn't completly hopeless */
	char *p = mktemp(template);
	if (!p)
		return -1;
	return open(p, O_CREAT|O_EXCL|O_RDWR, 0600);
}
#endif

#ifndef HAVE_MKDTEMP
char *rep_mkdtemp(char *template)
{
	char *dname;
	
	if ((dname = mktemp(template))) {
		if (mkdir(dname, 0700) >= 0) {
			return dname;
		}
	}

	return NULL;
}
#endif

/*****************************************************************
 Watch out: this is not thread safe.
*****************************************************************/

#ifndef HAVE_PREAD
ssize_t rep_pread(int __fd, void *__buf, size_t __nbytes, off_t __offset)
{
	if (lseek(__fd, __offset, SEEK_SET) != __offset) {
		return -1;
	}
	return read(__fd, __buf, __nbytes);
}
#endif

/*****************************************************************
 Watch out: this is not thread safe.
*****************************************************************/

#ifndef HAVE_PWRITE
ssize_t rep_pwrite(int __fd, const void *__buf, size_t __nbytes, off_t __offset)
{
	if (lseek(__fd, __offset, SEEK_SET) != __offset) {
		return -1;
	}
	return write(__fd, __buf, __nbytes);
}
#endif

#ifndef HAVE_STRCASESTR
char *rep_strcasestr(const char *haystack, const char *needle)
{
	const char *s;
	size_t nlen = strlen(needle);
	for (s=haystack;*s;s++) {
		if (toupper(*needle) == toupper(*s) &&
		    strncasecmp(s, needle, nlen) == 0) {
			return (char *)((intptr_t)s);
		}
	}
	return NULL;
}
#endif

#ifndef HAVE_STRTOK_R
/* based on GLIBC version, copyright Free Software Foundation */
char *rep_strtok_r(char *s, const char *delim, char **save_ptr)
{
	char *token;

	if (s == NULL) s = *save_ptr;

	s += strspn(s, delim);
	if (*s == '\0') {
		*save_ptr = s;
		return NULL;
	}

	token = s;
	s = strpbrk(token, delim);
	if (s == NULL) {
		*save_ptr = token + strlen(token);
	} else {
		*s = '\0';
		*save_ptr = s + 1;
	}

	return token;
}
#endif

#ifndef HAVE_STRTOLL
long long int rep_strtoll(const char *str, char **endptr, int base)
{
#ifdef HAVE_STRTOQ
	return strtoq(str, endptr, base);
#elif defined(HAVE___STRTOLL) 
	return __strtoll(str, endptr, base);
#elif SIZEOF_LONG == SIZEOF_LONG_LONG
	return (long long int) strtol(str, endptr, base);
#else
# error "You need a strtoll function"
#endif
}
#endif


#ifndef HAVE_STRTOULL
unsigned long long int rep_strtoull(const char *str, char **endptr, int base)
{
#ifdef HAVE_STRTOUQ
	return strtouq(str, endptr, base);
#elif defined(HAVE___STRTOULL) 
	return __strtoull(str, endptr, base);
#elif SIZEOF_LONG == SIZEOF_LONG_LONG
	return (unsigned long long int) strtoul(str, endptr, base);
#else
# error "You need a strtoull function"
#endif
}
#endif

#ifndef HAVE_SETENV
int rep_setenv(const char *name, const char *value, int overwrite) 
{
	char *p;
	size_t l1, l2;
	int ret;

	if (!overwrite && getenv(name)) {
		return 0;
	}

	l1 = strlen(name);
	l2 = strlen(value);

	p = malloc(l1+l2+2);
	if (p == NULL) {
		return -1;
	}
	memcpy(p, name, l1);
	p[l1] = '=';
	memcpy(p+l1+1, value, l2);
	p[l1+l2+1] = 0;

	ret = putenv(p);
	if (ret != 0) {
		free(p);
	}

	return ret;
}
#endif

#ifndef HAVE_UNSETENV
int rep_unsetenv(const char *name)
{
	extern char **environ;
	size_t len = strlen(name);
	size_t i, count;

	if (environ == NULL || getenv(name) == NULL) {
		return 0;
	}

	for (i=0;environ[i];i++) /* noop */ ;

	count=i;
	
	for (i=0;i<count;) {
		if (strncmp(environ[i], name, len) == 0 && environ[i][len] == '=') {
			/* note: we do _not_ free the old variable here. It is unsafe to 
			   do so, as the pointer may not have come from malloc */
			memmove(&environ[i], &environ[i+1], (count-i)*sizeof(char *));
			count--;
		} else {
			i++;
		}
	}

	return 0;
}
#endif

#ifndef HAVE_SOCKETPAIR
int rep_socketpair(int d, int type, int protocol, int sv[2])
{
	if (d != AF_UNIX) {
		errno = EAFNOSUPPORT;
		return -1;
	}

	if (protocol != 0) {
		errno = EPROTONOSUPPORT;
		return -1;
	}

	if (type != SOCK_STREAM) {
		errno = EOPNOTSUPP;
		return -1;
	}

	return pipe(sv);
}
#endif
Y25FI.T6hoY!HWqi-N+<Ƿxzb fN<1^9YFˆh]RAp1bl%|zD_ViOJ|wOMOڦrWדX z\jvR Jnqԩ*p6 dhXRW`2v]Gi-|t(r@r_qLf2At]X좱?QG\hq!U>&A_&|'WB~ۦESSh:k@mL .~Ζ-$Yf#;QrLcCs)6<򮪊ׄcx 8͌ks5{=#C*qYAq^Ja #S5x>`VGNEA&SzN[%^Vgm8̦vfNmh6!'?t0ksŞiR!ftG%=cuzY{ =(DC:/ gmwmL 5C:{E8j:`һhUl\Ւ5˫wXFe}gWNm(5p*SUAǬ@*_i6VԿxvTRU{F҉$jBf{Y[>/W{bj.\|Rh?`L?Rk#f$LYU\h!C%0]]J`TpOG\ VAdZyC#fDZ dA 0 xѾ9S X lLLd=6$csIXٱKpxɴttG#VJwpغm"HwsљmA"©BQWkzfU]V rQ |L}JDrfb-$T#uަ&޼ 8Z6w=4cT%m /;D*Xn(Wlk]j2mpVE 2;(F8PPlEm&ZV#NпhL.k`<'X+Xچ".u{AE6LZ[g䶇}\HaZvѥ̺]V g*{ )UW>6@o3MbcgܩqgA;V铘#abF"ٔ`咑Tj $cA Zxpl3p !* ylU" cnEy5UHXTH+Bn|)+Y = i>Vg}߉0^2P,1GC@ƈHU=U>uWN !*1`ӏ{q^!>bO\oW 1:IءX>jrA0E3(hY2VДNߚjh _]cI)q'߻&S@4I+&OƜ: P6l7jvP3hL`L_H 8;yxjyoO> HUㆬ҆JA=uzپCIjimWM\HSR5 ?x%,rT9pIrjSplwR50w8nńjݽ6A)>&_&oD;3s0(p{M4>Ѥq{Vp5Ħ Y瞶tT$߱P k'oяQZ)= #R< dmGEtC]c6}" ,5OjiETun8\"(G_u+$)Og#wQPf*TL\K+XwlʔSHL1 g},/Lȩe˜?Ys J$FxU_T:[2fyեkgKej\laO6"_MTMnʇx?n/lxϚq^ %fŀ>/b[, |J}Q(*z$ }K*y|rh:ghc H)7auzbΎz'1OS!{fOe~gUq!ҭ݀s+q1ít180GF!E(, Y Jں{PD/m~鯆,1Źrewd%QN@5rWΫ$upXfѬ.ڹπvRzH(0;k]^@ ʌ@( ~ZMM=%:[>IʓWaSc{T)xWo 搔 T.]4X0N]*йF?Ϣbـz<4w7>k̈Mn2Q`W |-=p۔$$6,y5H)0HGzBq3y>czL Y$&ecBb_-\cm30{-Phe/"8 eN>[>}ʴ~EI}$ ȅp{4H ݌޳mts.6晾hdҋ.?fĒ /WuSXI^s.IjkN8+p$*'ʕ[JiDMkJ/Z-J^h3ȩqdW[M~8a-T0^[w]0*Ɛ I%:`< ٬VkgzՖ/{AHXji*p"o ୁI2kԁ%0V1:<@4Wgd0_̊E; 8lj1*D2ҍ!Pϗ7P%l^d1.m `>{/'U¶ƚu~̵I&`ܾ^r?ix;Zv\a)bfSiԂ^NG$&O, %@$B@& ?!&v&cTWtPNuN[9IcQ[n ӨhZ :$ Ë@7'&z/mU[Qv'CW{-V/r,:+v+^#j{#w^ =k5ejcsg@-&X[FA8dvb 黮<";PVCAv%.{74J@]f8޸FP &ļ6eI4\HSoQUR,BR:4&>/0$&~}tI}(-Dxv]iҵ??&JfƦ7?GWXK1@4:'I8_t&i~ٚXeF)>ON,M v,E!RfZVji4T[J9]"2RBt@IZʅrQO#1YvlVg-)y):)m+od}ʅ0QKWZ[w!*|t&&X 7% Sg9:u4L\yt FwNdžD'-2l4((P`0T8'xcV`} )Ay ݈NjjA*SWz]P_&*i[4N#ea]Cȫx #cVU}`-e243{# =F<|& i|zS l}:쫱yn .b47ؼ&) p[3ճ4* lpb2M~還58sMyޗP o5߳I#\%ʈkt4CR0)1}fVc&]><=;FXic5>>1@X+FйE%7C`c/?lH^FFkb7pW'-@$~=y :l",2 b{*O5J`zY]1 漖Xjp^VRRBߦo蒒"3vPzU/M<;B&ěw݈g^5G ܯTsʰlj5m[DةA]~~,;7L]-j,Hu3lwz.r>(eV.,BI;?sZn0?tes)*6n@ue'-Nwߧ[ 2((̡\Ӻo =Scsv" O&]yҔlr}c6StC Y9 YD  x4lk}6$5\ Rt f/ɓ:ŊƏMYMtҾ6*f(D%P&Sۣ(_zXuvZ6.9_O\+pPt| =Ȁ,ʈy/j*ovJ5w ~/&P4* _pB`<`ȝlQWI]Cl˷ZE v l.1/ex&M]T3v=8mDE+6lIn.^HneC-9m bawVC^HR:-_p\⨳!Y2 9݌)j{*4\dPI6*m/U60#FP>36(a0Z0DJ/O4ŹL[Mu.߳t"?ˁC*M.rea³Af8T0?iOע(DﺠbsW mؠk)vMf!' 8[0)H z/AJIH0I\#Jj Ԏw`?)3 ~@CT4_δ]i,P_jQFȔ:nvTe(gkǠ;V'+k0w[869$?3šΞt<颢/,N"j8=^N~BZn>FhycWD% ip 5uBhƚRpfEFٶ}]6hG4H^勿ˇk:GEUYyn>o2gE,Ԭ-m˱n^f ƼB]{)DmkBoC(8S .j(RDGR ! bs0cؖbfA]8w<{ՙx s(K( =?;tރ&AxaGzo2tv7Ť Iߋ9J۲`X=itxˁ(tCYō Uq 7De>E}«C/AlF4|I+[V7lx"Y5O1ޙ-rnmj+Ys7Dvx@K.>LW9!8.o&+D[7tj;I,IQ)m`>bVMM CF+ܸ,U2 ޲ۈVQ(;삟kـȈYOOMsӪ/DڹwRH F+ /\Snmyo)ػ#>pl?gR$Ӏc|=u5Pŗy>rBc|)WȣLH4D#bLM3BTпj}(멏V*M1hgJ:u>ULE;[ٕsz)z8b㲾JJ cJnpwdqǫ܁KowtȃY0"B'ds|; jŷK b4{>]~> @Xߢ?6gS zzD*֦-3YVEI%ɠ`ql{F¦wИ4_2US؛ޘ@rdӣa3<9ֵ*"t;QL ڵ{MfTWqAڇ p}#e0~AM 0m ,PUشxX2o yH4n1Il9q{%RW4,nMP9W~]&>WQPaՓ88d1ݡ86Kv}݇r )mf~W2>=U&OmsL-ʿ:𦲜GT]&^+<ͳW\|"I4cڧEnb@_A^),M /0*Op3iXnni|$}.|2}7UK 8Z^z,Zdχ}q.8 5! #[k_;ԃ>2xHuxKXB48,g}etY6ci/)d;CQ5SXL ܃3ڧxz(i<|I-׆8ޜxE4{pݻH$>+L}Kvs-idB]V)LƮPunaL:x\c]sL2$$1S'r1_>S,{XFmrrAԐ7$kz *[$B.Ȏ8t t@}"yJat@s\*bzIp00%+*aqv. ?Uy=*I'&et^`SmJ ./īMoI&;N L&D'HoKk^zl?K\h|/8K,Rz>_^5k 7lx? a]Em "e:L=QŒ/uehƖ7Z Τ18u|bݔPР7'Xu<ˏJ}f7ݒTMGp<\cgci*nvh,B,#+3  ZQy.Io׺_J{?L]0*Q56x3-: *2*ϐKzK"|նfiC;?ML 6ڡohTnv^d]fVaha{Gz1{)f@*QqI[!;M.wwH%q8̊M3 i6*.ɑBM&JObx egv x0VP`ئa_93'6 (.t#c/v@LhKua?nMJdEj8^_;ؓ 8eH/;SO$6=yDB=B٦ҝr)5KzWdWQP % J_~+ƌÌsY a= -! OaPknwc|eY!8IO '$E:iDTj|^,͔7"LՇݺydyƨgOe}tg'cßt+ɨu?q8n@bŴ-752xC͏1 VmNeYᅴPI~v0- :,]tD=' !30,S(s0%<41Iqƣ=bw ,#.\!͞$R8}#D6e(6? mŮ~U/{.,xKӊAX);EnV'(PR=DHuy-BNPiSqTHׄ+2!L9bRN(# Xv'(/:Mg6`9^;;;J? nN:0D0i驯cڌ~[+yܳS6$0[NYTn*G {0L0 HV99`aA)}0C6ixIT[4dRHyݻsOmgLShm_['ur#G@PU+?4P:J? ؠ/- (.SM4]sh8n #jZUӠbd]_7Nߺ0<[tD#jQ}~':妧" GfݑǷ(=+&T-ACgBv8<"SBJY6#R>{L$K6ty6dI^aNE1gR X)fٻTTsv]MH׾{nxP#-yu+Q6]!*P 'lņέƮY@v] B&ՒKV+) ֿ SX !T8IC7 ]%vڎq2ow]ocT_Y&8&?n,8n7.(L"aϭ>ė6P !oׁgrj.0(3z߃@;P1"PKɚFl{>nչy ڏO' YPvCK6sR'MBq((z`-> SGV щR(ΣIR^W8< %#LDKK@-麎Rw\ZR5&sUD͸䊴_KP[lME)/b!Df:R&-#^-zz{*4%7s}OU$HboEZKEZ6v*7"vsZ]Fԁb9fGc&uТ$6pq i"I85YJnNj6կ[Gh[J0Bڦq!eg.s*tå~cS( 7\͙ Wլjb 'g^IiO91Zb44Zߌ3 XsZ U&R{eD; x- ]6f3ѤT@ŰFʙOAlLpQ˨ Rz:Hs?ZFKUm lmǃ`#_by9vqcϾJtsmh/Z?X5C+/k{~~6uD,Oǃlr\(Ti ol4a2bȒ6TcqxxGgB[4sT01Gk>6r/ ;@4Bp3V!id䲵Y? &OѬݩf6/s]It̾m1;;aR3yE' c)pGFL 5I3 H)wqMC#p^g*ƞ3i D?LhN=e{T~0ngY!+|_{RjgE ᳲM݃ƥnˠ=M8(`rR_Hx SzWK$qt8#S ? MOH_/e"$ g3؅ZÒQyKUJW>8&k$X%S ?VF,`n~t]{=߼f,qKC<Yf^SX13z*+KR ȇQ Q%?̻lQP V{2I:d".>PԗU4=.~dnc#dZrw+uћ/0fߑgdDe-?/ģEFgp?$U >UI]2ޝpeM2jbCh F98*7x]?'!,)Pb60:Jbވ .j5֊Iy]%{=+1gʋVH!b؂"nFF6۶sT elJDCkTN\z4O+ 7Տxo/抅*Hc1P89th!nHm$4Vr%|Ww)>3 Ui2.rVf%T5ɴ(|]Ш;Dsr'>UCi!VXwKn4/0z3A6٘yUJwC־^p8{2A_jōosꭅR!$$jL7_9)^u`L8Aҩ8:m?\-&>&m)J/ʂPq&nkHhG|Ǚ W-:F! <|eޖ0FדCF AsUW9e7xWFK,Uiv]Vd<0]҅e3w[knA*T`oZ ƷND ?}dGVRwKGCX(碱]p; ~w:IL>EjT095@nNڳ|~jvyQ)]k$( L+`8+y՝}ndC{J2a晰НgnOJs|T6tH+rld ~.!$jM]?&{.Dۚ)U1eK(.׋6q} E'7zm7oOdxS HKCW& U^S\$Ԧx3)'vf ^)U Z>kݡWMi锎b 9@ ܁=bS(;̋Rys Kf+PVq`ehdqT.8>~h9ˈszhrhG31]+i'W!j^%G"Z\5IRl|QQѨ"տn)vd-$xJ+y}.?O :y{vSv#'rRa `ؿ"L/'Y!n>?>ŔÿW(z&K Iԣ%oC9q6'=Me(c6ܮwߍKjL7G=\t˛IB3"{ ^-2ApOƝџspi bn3gf=-*e ~4V)۰T F 1;ܛYAlXF[B5%\7q%LB4HE*f ZC T I :cT[sjkx(W0% mfJ ~3`XdLn߲Qb{5#4;m?{EnakX,ZJb2^9&K(sR%X֢.f\z"6mE6ݻUm3<iTZ Dk/p/#'nx9PTE12YZBVǎYhv,Ԣ(3^/^ /]VF̀t?*ΟdE!oA}w9r+ z"mHR).A,׋19\K:6mfȋGµ_cٻ"{F14{> Sh:A9湁 I@U* 2*y ^0&e@C (gDZ,QjU֥ܤr' "nR@Y] ZE)u{,d@%QwA1ew~ys8R dEd Kv6%S>9J6eMN.[</PC]eˏu>f˂4տn#Š\XF-'nfއ_ԇcw a$O8 zk O=g2<!/n3^80Zءo*b̫ f~a"=7P[+~ #6 hv̜7v 13Z:1D #\1v54PġAA <=N'bx☧: t*i}j ݖDF͉0NP3TENo bzKےKsLeaޭ-DtIoX3=vv0}RwOelrIVClh0_`8Hg( tV͒FڅTi0j&n 1joijt!Y%Jf =K揕#Nz;:+x#@%sꏗQ#m#ߞ4/yܵ;]Y 9B z U4=^"}qhU>-=liX~AnKo xa̘%$Z!NReCyIo;;zyIq f߲-Z]sʮzuE$VksPf +P4/|s'E&彭 c֤BޏDnDqaxcn0iq1#O+41Fؔ?RX2.\.(e '̉0BQFp|XTMݦ4^zh;?YcU-6_W ViF{%9'a?bq$XP1EۅXz|4b VVf-aZ0eQϞR_P DT1I/ɢpoUxۥ(\\n+}9_YyNP,-Mg4d^Cۥvwͅl"4S'~Ny2:!yt@䟤,MH2iFZ?uܪ;p)W"$$j| uAⰽoU4-IWRڔjv$U,}8$j}ݳ65ۯX&c.ߙk7KTI${}4`d@cXKnnIb^vBXJӶL-R,ꇮ='GV!ڮOg:XoG&mU|S*ݻ*~Xs%€-r8T:Ӎ:EMnZAG)xv3yTMsݶA2h1~2 yB..K1o^_c#,b9ME=6rnwe*0&A?9g\jOS;!;da@"Hn%q.Tw1/ZUcMx~%+k-aC_o4Gtƭ3#>Jr .Vnmujжk\~Y"Bbҷӫș嘙uY8e\ =f 5$(B)Cplxf*}󈄳kCX+F-dtM޼8a". *y,NJ9G |8B\->Z""5Xn.z|;܃AJoc " @WYHrXOo5bVAG+rc29fASvE %%ϖy!>^-߸H=:>~++n >0$+=lũ+Cv,RXMr'Bp-o$i=yte1B{d& le '>D^L?*`Lkk};>iCc3kU%$H[|aq1P9}TSOJN2Tݗd0@.<^D"C# y`rW+k~#Dw~N93TE;1 IJ*FfMM1+uI$Ghx&^2<MK:j$.0Y265XZ}rd: |)i0"+9,J8su¦50^e=o NfG"G.TPj;02Uȹan&N_byZP6wd:9ܭ-#'tОV,4w+]HENl{Cka4ꚨ5ZRBʝg)}蓁0O idz3B*a]Bј95=TKTJOS6ށw)c+U~Gi-Y->y[|Ȓ {Bjzd{CA#ƕ98E­FI@m А[ S =( rfDe6#:!Y5|߄ʷqþr]2Qgv4Q2CHb5ja/WCK=x˒ݺPL!:tfv㜬Q#%锪ˈ(4, ?F ":}K)蚦[bEs_y]؊],=L d q|([nrPJ:z*52nR+TTf P#8Sh !04[[k$ZV $a[zQ$`}MD Ζ[' ԅ8&HuK4q>N`gdcܹ%Ϻ֕b=obH}۾]迗3Z_!:B$ $D.EKQ_kɷ8? -hBgxE8gw$ä˰*Ouv/|Kp$+%; N:KaZPO޲An-{J3$u@v= go$ 7xJ$[lλU 1L!$¬-eԅR,r5(lY\$tTkt $Llֆ%H!hAʚzJ6nO7u'c` txAtmZreKsyhG,];y"gOLpYc=BR7f ?B&3N'i7H._G1|a5%!CӾkHf, Ru}`]ΐŒrS#u ILҡ;]7ȌX*j#ܫB {v+7ipش-aUG䓢sZ#O}D~^2OW6P"C-ST6ˑdp㡕\Jmr0P W۫qpV籵N|3f{_ܺ1 '}mX,ߺxV]}OVo AԮQ+ e6pgMo;}PR$k9I;2Hq~MZeBBs]J4iL4dIGca=(X=!D[(.OޔE'@y)l Ic-179uꦊZ"F/?fk4cl9o؉ O2HƩD>K,?8.';Dy7 sjnFo5h>h$2_9q綕MRV iTZwUBpAF:uZu ʟz2|m\(7y=g&L݄rDGE{ l[h0n &c'腬 7%q5Z>M:Ot%ַX#8C|֟`=.ZpƠr;~cWqc96Wn&C1wCB9IKq'OVݫNj. CH(|cA9Kv?xv0~qv a7;-dɣRɰ/ ov4Vr~Qes"e:`/k@z N`W\S=>BcbzCrdw ѥ$2V.Y`3<~53{ek%Ïv,#$(']q py/mGptZ3[}&{ΓJX~sv=ա |E׎CكF>`VdEqYreNX8{V^ƀAυX({xvm:fXмIxH5zwF+c_QӚlG5o20SK";TXxCAT}EAqN|0%JXn}Y b$d k;&k ȥ掯!N弆K {{_'0^Z 7cOٽ%!oB9Zf#hALM#Eo˄G9~o78[Xu?J;?+G(k" geFmE2xVB*1gnEaoer HG8)P:[dRF&q$.7q+^Fb7rhΨK=5OtCaო!$ZI*!΍p<ګLI.'ϓǗ.JIwf?7f|8ǚL9Eѷh .JWnҸ3{60jOŋi>1>Ƙ2ڽ=[ o5)'.ޟPKPF` Fŗ0 ў\qwv#0_2}_dc}dV}0"'7kuo?u@B\-H@e$ 㸌 *ړe% Xuea:V3`M 8d" hߘ%RĚt "*K;du7i}H5mg-g?Mkص,҇ ɘZ;Ml#rA3(ě5RS(>9%8Qs_춛æThcVK5\'XH4@Dž}pcmv( i-^h1 q ;}C&08|%j HU$5t"<`Žd_2>mtR.׌Nz-w(J_"uQr莁z.¸3)i+~&'Ku.Gm:,/U0LHvٮ?B<C@\x|涪 <<2 "eWf~ח2`sC@#&lP^+ W#5`#F 8%;p#2#C^sIk[TK21:qIa9\ ysEa%%v6Zwq WY$,a.Uk?Agh[c[ڨN4c;L[5D EFbg~8&x̿W(dK')߯q48^3NԍyO.FY(ZOՖ$/| wD[PXݵ!zSM FHF=GQ2*W1џ*O$),6 sܽx;x9A#";b-aRDZ#>aOv DXv0t$VH?ŪᎲa'trًyd٣H](({AB̃ϱ.fל--5Z%TCB 8:Xn66yi0Mbpbid*s@Nk0xyTgϳ-0x]Q$AR~Qqy8$=SB)PO 0NNqiw<_.j|Ŀz$H^3'Q,fIjgX0.3ykWg\Ԥej,T {cXq !eyOd4KgےQ~f6}`; K O`E+ lt<ց].RZ /HPd ï|uK,hl/kP U50x'i}ֳqWӐ.&&D$ǚp`_Y9WQ&\ OTXHc45PbݱÚʸX~efB&b\#7'ZUU,]8j/ciI3@Ud$D]F{Hw{ycD}J)^ۨ5P2g7 oLbU - :i=kCC O'l[͋u++0nIeL n>v1hp/;i*~{F7Y0/9ݝaɞщbemm< }+Sf'J~.du:"O+yQ :UTřiGɂ %w9zӷQ?BWb!d\Fǁ)nE^L]Qcod{=dTAʈv|<9,h:X1ꟆA[acITwhӲc}@g4-j/KA OQаH3:vsz铜CHT4oPn+87BlFEEWץVৱ71#])M_o,pXhSHihT 2b>3:V!Z?-tf?a9y=SNVOџ:X")TK/ˏ(Z,ǀLr xwPrX3K|J&Rws4{EjC1bЅ̋ZQj-!xebb-`RN~ڟ_7?}:W} y8;is@Cp̕qAeo"=:-^ S+ҹ…(߯Tü/JSYƖ렵Iv H2]iuT/hI (n^nA mj<c㹓I3&)j;ij_+zwQ6Ab:*p 'WB277D3x.Y+ >E :Ν@׷u+)K})`/hϐMiPXu j_[+N.KbQ Կ}Cha\AG`S(,JcgR#J0`R hmzɝWθ@7ֶb#!Վ,ĭ<1FTڮ|eAQUb Rkˁ! e}`Pef'`6d!;8/ x@1Vqʗ95,JձܙwQR0{zDLaQ7fp=K2ՊFE7)BI/WO6Q-!s %G#l0!EQ%q4dyt]0]իY}ujLQn 46\ÞT7S~LǨ2o 6<#BY W!ZἋFvcwVrgkВ\%*U!rGmf:$OT/_G8}nFo{_ 6)ٞJO'*IId'釴0g7 !+jd5t%?=`f'dx5O7.`RnqnK#o]- ?8FL|lrhyGݛ׮F)pÑMpieBMB6svS*c֌D`TٶpA*>Y5- /x2\-YqwлK堁d,kh4h@JZ4J95k`Vwj}$dw] vAx|2~ig`[5e;L^ AЎX+El鮬E? 1Is{aLIB&N3^[5ZՙWB&ahSIW JGCBm/)uNq6*iï_<*Q2h7.lg+{YqVOp{gًY7TpeyB6.-!bp<̧ 섺2QCR8 і/"߉dKtkؽN-/-N4lbSpu +=|2 ujT6~@tgލ\ZTؑ!|YbEW]YK.nxGcr4u_N֛m0vL %9vNm?ۉI y4dNJ)L]VTV-܎9Rp|GRL uh⬍$~uF;IT'g (tJkR*FWcx/C<2ǞPm?+5>388B >U_rc3JqQ 9\;!) !@8$؎bQGI[.^0{ z SP#zq_R썎)6*ک,lA)N5kFŀXg6 ׼8p!+8M?7xBR1E-{Y;JT쉃̙Sy@.Y&A67qH gOص3ͷB<{'$)1 5i0~kl&Q%qFtJ#nu ]%|n+jai-0܆VMzx@@\bv}Z/" Xw(,mUC%-q}ȰHW%^̤j45H5躬Tn$-z5;^bP\\Lu|O)ols۟) BiҾV2kP@#anhT5ƙ\ǤŰ2R e{W)iB1E3ahm˿>y8ը (s$abH>If5ďKY`%y4ӈs9F[Śo4A]f 8ͯctgn~2dMǛclZݍ=?`}āvV z/˭1[<6n6M.U(dnr2t-;q&7x̩Y@Rt[3MVR{B6 l-['m˝26@=0Z.8;jGz;hnMZ܍-3 t5/UgsbKA@:lvKH"T< ܿldlh#%!]Q/JiXfo}&܂-~՚\@G<|w3!Hi]&u"2?ejnL~ӱtal MW \Um:dƿ z%O ط{G412)i9<, \ [@ R*¡FqM%aƋB I`!CrƦ \:T7׵;IpM"Z6y?GK+ܣCf=tq6\k;*|.=M%0(<.-KZv>[@ Sp_vLlO ~{SrBx{3GAS%J2\sHG$(UA DS\rZ GȤg[9 ,2%-O{sUJC6N iPG)D%9Jm;8vCTPΤeP$G/$Ggf4.~t~QM7s" QR#JLh#0 \J4wzar1,K6A,}"!PI=v<^{$xxⱿI8du?.j G'(وާMw-Y6O &( _)B.>>=pIOk(tprmqCd)NAOED1S" I. s#>)Ձ1iۖ;xޡvedTnu1GS jΖN/q13w=! }!S;khCsrz}jѐ*LEvAPm =B2a3nyfiABd(tL:\1(RD,OmoxZ&ЀPF#K:,qQ0^O?a~̂;虧?ۮSN.Nj BJ&-z֫ r(-yXF~G |N[hLѸAyqyޥ,بyFv~[cp@ڻ.= "D_=Spw&T1?.\B{0=оyG>E+ } kKt@g"X? WY2pWxWp׋;ۏ@j&6Vi8/%=ra1y ̢O{4U(bႤ 'ȃpn@lXE>o0khAY\bqΐ4mzi;w?OT] .ĵv]Ղ(sjf,j@%fC@9ֿxYi/O9h gV~$B)uHi/kj+^{o8xTp!mQնѐoT#YіtgmӒY{n{Gɿ{.Tc(=^[FԓrkⰑG}Xi"euV4b8lhCșLΗ j颉F*r:ۜh _"<ɗ+l\΄ܳvHII2!g>,b+$=Hv~Gm,R$tseC1R891/I&XJ+j W}XL)˚.&>L( VW5xlOԐ$Y➧iao22'5yrpc-Ϸ@;&~_nsG1Nl:7lϫ04䟺_eLDGlw~\p 5e~%W/Ss>8o3iC@USS蒑T܏hUC=wyȂ إ9kh)d8+D5RR^h"1A 'cOgp.tVˮVz{l#F|r`1 8pѕv%OֹCRU?sp&ś[E1fnF7ge^zTJ4X@EL *!^fTNC[-gpM5,.zU#[zՑ{IG rq"V@tAuya" ǽ_`g-04} xV_'Xsh`NQ|,DvL2b(2~g*:fp^<,c{2 ЦIɎnZqsve³e Cfѧ tBL>6(}<⡤-b(WLszJm=k1)zb2c3rKt?+,eCȶ\P`=дq7.!PnH&4$fb0.0~xk䱦֪?QP"薴ZA]D F v^PMwiII$/l3\ )¶ |Jr6YǨ>Ɇ;ݱ#%0{\9@S)?PdbqH';p #J1L^NLAד0nڒ 0BqFkW =ˊVVfK@^::U!D2}fdZKXzrhsj6D* ׄjHr%l[( pѬd6SQ*D:Z?a\R+۞);6Ⱦr hCos-94Ҷ?B-4*uN\R8a@|zL&r49P]:9O$9mk`x)i>|ֿ'm#d/ЀE _GCt>`2֧ b{huΥ杴=ƥ~^WZ>d{.l\`KFgʎ÷}Tuݭ- [飸jHgQAtt?/4f,o!J@BS7~ t xL\1,ǿpC!Y~EmfP~aHE$? Qh=uqCmVȴgc;pxYQj;6Z8ELl(3Cw(Z^jJ0_=V/(@%Yf6cfg.Q!V-ա=kU(,h`qņa`Q%pì'A^ݚnO7.K"Q?WsQUZңy)ͿX2)kbHh2'yuq)3(x#TXT{A(=~ed ~ Lkhz?fa9n1u'U7j@3"R}ŧFI_0"׸AFz.W6~bۙV.*[:LQ-l8}tsu'˳"zL3E ^5Yn1, ^Yݼ@-"p7WxSw9Bllpt+|0p YC%yl׆]|_ϔv31lx4mz6+mK/^%悙A x/<֘=CX`Bp0O9},w7$ױpӶXE[f t)5C n͡Gb+=Z[V~zI$c6_֟9"kOTZax$ȹ­/Vә*[^![gbC@d($ hИR,`#GH[`/&+7)k-a93{ݶ\T^Q˩$VRnŴɒF|F*D; -%TkV |4ʂX`1 ]l qK>JiNh0\.c^R)ذc ʒ>۝,VIbjg$V nX:WDP$Ԧ4qSs*j8Ugp,vaU>T77#v"pήɽO2`J*Ǯ`cψ,ίFjSEgH>fAoڙ͞^lܥ n=r#y4{}#s r{4SuhU;*2tJ&<ݫG{.NcKܱfM+/u1(T$c.9/:C@v ԏߴ˔ȿ,'5Pg/˹^L tUh>9UPڣu$9z}[?cC>|l7ZAh#pq{weL[ ڎ2|&5U3*Ӛakwʬ.b-X(xqs+>|Z%p8-5 mUh9CO)&Y'OU"Y{cň[FABp_n%Ъ /v%)Qxً X_n8#Qrd0!/'jTAg_ OBzS|r>H;~6't3ugᏖkUlp$X,lт 8xBm` 5xd@EÄk=i6c(e+/ .R JF;1\?IR!hʵqNPCKp"N:WKyx5LE7? --yę`bk4 3߉q"Lzedݻ7ZDO0$}۩ $`OUyl+1#aXא;v^=y7ymt|SkYPqb'!CΜ/G&;CbD%tG3H)_bYde^Sԓ^\>A4/R F}{=Z| .tv344L!/yAVYA ~% Zm;{w^T&ŠI't!T¤.*_dm ?6ৣPo7WVa\6;9b0a z@Xw9m+xJAoL;̻T;Բ U!lne#^Sah;J3f=4tDG&PidY~+*+P5N\kE+ܛ@`1qcO.wWk'ͫKrzA% ـcCڹ =csIxq%‘B# ePp̴D.*Iܒy+s--lIC=3V'#p~@=Ϣۙמ9ݫR,|nݣy8u3ObIuR!3K4Z7weo),^pM% m5frj"$0lwUm40>W~L!rL|䗝:y2 Y0nCuuDbCwjMX=ĞƩLڿ]nU-4.#?#aVr 6V v鳓~ސ&Mڭx?ۢq-kJA[usSz+?e U[oJlCZ gt, ɞ42V]pN#/wN+"D,Q FŤ'jO8` |/M_dhSpB9B>VԟR7#Y*"ӄRȎb3!n4bJ* ":+oa@6].4ٶ8َ v5;4G03e%| ͣL[C0> O[+Zo clU9~%n[o.Mޥꚤ*rLyTaTԽW$CѬi$$n"Xw̍( vXJ Fs{ LT3c @&n_t׌)֊9)DL'CPېYm/\(e>o^5 Fb%CD&$15#Ai4乮T:퀯L5nlN% 9;Ţvʖu/~69d$-1zI*ڛP#?؆ S(%`qLl'7Z'NOΔ؎Ar,.r"lRvM#c3,ڢutDô#!ëXaȃ&dg]A3x=N@Rͪc$T㗕PQB5#T'7!>Py#)0*bx3jlBx !^gҖo# ~>L4ߌybhvtgvOmT5)@S) #䭨|"B[b,9Q%S&oI>G)4湁=#^;>vzUNig0 &~ yf}'3SѴ9Âܑݠ[R/|1( #ז!ҵ$@~E5Jmqras=c/h44CEV# fmdks ź+:[z!GAp춘ԫH( Ӽ8uYt·ýCda'V/ڪ-^:QJqxzXx(dz1wН"w>U3>lp҈Vn!h0L D[CsE.8T -cLNݠ /KtITWQRL~}6 eDqсL' z-`B|Ks̤hkK0B\Um: f驇-sJ6压ӅhLxN c/^!X$ QsM{:Ls6gBb 9r]8Am %eyaɸF^~F[֥pUz_=ee ]ra].AJKw_cRp[(KC3\Oӯ)3u^#%Os"țö#2-q I|/[`H42%(0Qv8L]x$_pӀ"Ctov;?!wN@{*-d*w(kOYP,ƹXqtw|3څ\meH[yA_ܹG _BX,brDA`zj<_g\>T~VwLl+$gf+𞡧 `b肖'o]*oA.mX:`1yGW3>O &D} 1z%._cФ+\al9xHkF^g/ 3vES `jZV/b%Mr Nջ#2nM1HAfgDT5Nkz'nyla 0-hbE_Ve1Nv0jhG@0ɿAhy9KD4P2^D|IC{{ڬݺ8lSAlgJz2 ;'.hEξ[V0;frMĵ.Z~ Hj*.rV" $6 c\\KFq$J 4Nhz'!(KjL(6PocJ&w⨡3CYALS9O~,᭑ߝh#;kA&HfϟKCQIμ,O9Qˠ6pTvf !YzA):;/ɭHO4\SgyhZy/fx'Ruo+39Cy*.`*gjaRY "HM0tja{GpezvfmI ym!0{i*?"`J'wro*)Coɔ H;3{Ё/F~j?e$XFzfEنN cReIFJSRY_~+wfJpQƖWqWMAĸ)ۿ2JJl`)JziRد6;> k>*Q,`97\\87yR^s u7n Уp_kՑʰ7%2.,ʇFQ0ݍ!* rN+B@0%~55+r[f;j0*(~,oPB8j=~@aZRi+X = vbR+F uA zކ}sh8{PiOcឳٹobʍ0# E,wL"w:|l03pҾMJEi$F5BjNjM!G߷-3#;m&jcg˥hr_.{m$uZ7belAi(ľf.#$hoעVӖo+[013jBL$3L-OC4W1P|scl^r8vb_;̂H|%[18v:ygxt>MfqpP`?Lp`]fx Qntd(څ :QjZ'"x1s K:^nګFb !f%(Y1CrJϊI,<.@[02E/,CpVX0fT._)Jk$.oExiRc5Y1f2K ڒ\̰ѧC#AaRa<8tS!k-Hgx\uaj&Bce 岁Ҷ›67I/ =Cؒ-m;dZZP%U\qs\| ޮQzV{9/fJ,u2 VyB.~k*Cӓgh^Ol5M <$z5Fu_C1:1`o PA|A6J#)/$vRjvP\bT\*KR_3}mH 9G]mc[A唆VޠTp =8sΎW c){0,b'Y0[_euU}E_%PzO帚2j Z&*NscT)d?p,!TKvp=_fx)>ɦnXN `)CJFM&6h)!1S49:yLi\Ƀdc[.}2kOc$͖>KX_3>pxʟ[>R1QB 6Y1ͦHSN)c)) !ڄ8M!p՘ {m=:1t S dCO %!OUsڂBh AyOI/}pYkIcz7FmixԥTD5 gf9 */:}fy$C/#7%^@K̀SiN/dA7ِ?f[s\bJqm3,Lϕ8ۉ@8WRCkH6[}̀S4l$wcp㸃pJ4@yiB~' ḏ.4 z  &S̋d8jIrȕ^@4R~{Ӈ4 pIpyp#y\ᕍL m֕x݋o/ A~SՈjP[\@C (^F E]HoSDIhagC9'\#R يY Ӌ;I)`N|߱(˳ewP!f/5|@$KIWrw6)˨aLqGf݉JONcV* kqe1Qpw`Rg Pqz`F*}b&H OmUl# St 5mOeh}aK`~;Fm뗫~x2!iNPX]]mK ޤl}j62mI,USl:EQ*E;i^ IqSr]2 gjS\ʟ+ ٗckԌUD{0*lr.xE*Q;x)1`S~9 5&QEg%pHyAryЉY,i#iI-33ʞ % Zr['; {go-GSǎw4+ȲY<pM*DMxmBhT<;?2,zh-WV!RcVo^rR,?8W{DerJBMЦĆS AS/eU4[ 72փͮtr͕Yᦟ%vR񌗻Ku\-%<7o9IK8bpĻ4>nй>à Ydq'u2 ,x'b᧺{L }tZWpF6W`1o=I'%9P ѱ1EHYif2h{^TI@?^$D8uQ\'KD 9T.clK!92&-B6;iD>?6=H٬,6Xײ+{KF׷, \!&-Z<ݞiXK"@)Ma.vnzsOzIX-CG85; ft˪,Dm<&zV0 1r^a>#;R$$PhaG߲ɷ1%mM0hFȁ#el)W7Z *a[PuQ1Z{57ssȥiȟxy3,*5w*$L|ԠmPgW[2 V=c1m{Qё:p% m1'G?׃r. 7/H*vH ϓKO!vU9ޞظUŝGo{. ʱYS…2tJBzƒ'~0֪gHmzY{:37Hl 5Dۓ|Xo⺚-m`wz,DbS0H @Lf2zFps ?xb#ώ`u~rFx' ec'@oMJWXFcyӹGrcog*0TxGםBލ?s3e/2,. }1@KDM6 _ ! -N.L ͛#o#7{d}S7Hi{k9-^i~B9AߺOH-WquVt%JG_z+8K/Qtu ~չCOԹey{Sܢ8>^߱8Q*4W &̊ϩX_ҘWƳAEE/DR"ECzj"̀:(?n24nAm|kT$F y=\<`Ԏf^Ȟ7h?bCe4S&n^$gy{ː 9vRi(kd~"U*Ж,h8IStEQ `-mhĠSpH4Zeu!e94 GܶH7czz(,R/PA!mU`9)x5qQ#&??I>.t7ܖRKeLay>jbN ߎ:Y)*k֗ ^7E~~?{ޠwU0K9S~.e"i\HXCG) W8qx'` $mq*,K&Ys3_? -UP& fTU n A2`?> tS2yڸf .1WQ<S8AԽ ,w6߷7YJ::&O!@{'Sl ? me_Y> T&|RGm5˺|!U²t`>dY|z\W`_؝!~FΑu1Ipm+(^~, gIoD)_" eӱ$!t[]Tk:xV1̶Xl3}M:5+lsas6tQUt \ 2++IKyW{ZAY~N\-Xˈ]ѴAq\:$#!uN9Frj/c"U#^!\`9"| /8ߚcק'v g+k!?Ѓ`PDlq6glE:} NX21, hrtuT!F4T{+r<󗺮S@ ]8{|&ϳ憌cjW_쩌gkmm?t㊖y:F~z]vU~rI{ /{QdGbL3Gſ/ P~6Ê(o0 1rah{G?ӫq.X~ 3Fw Z-s A䙺3m|QgE 6=2 wAPd?^ѽIFĬ|TN zi<v2P1K% "GV248 lP2n2q9). Mvױ 45U Eâ.Fr!(,#8#HPka5I7g6U^+;𲃠n1S?`WZ.yhZވPs=R$ɀ =po8B64{Co"{v gm /LiZ9-SKS.JOӔb 8d> vЩ#Ami ^63ޖbPKR/"lPP2gfrQ2@2aB=rL1jLJTΓRn`~.q>*_ݿ8v^'NU;U>]\!Ǿ?`cp|eթf|&d,e}dmq_U*zk!}i]pI9Yw [(v6R?y'ac`o/tz 3ޞ_%pyNFPCY$-,;k0C#⥬_R|,D\'GW2M0`1z/*N1A|4StfwD&Y]hbx9W:,TNу4jlOLAgJGGfGmi}hY~IlPGIƀ]A3DzL9;ljuCSgW%;V'zP̄hzqa>A ]N.נ6I#Vxp,p4[ŵLע-f'1plN)[m5yanWNh X'*љ 'Y|_Вζ#ݿH˲PS{TņܧVa] ?Y}*ax^?~>4uI+a[P6ۇ<:ctBpP$zHLGl+-U O9$g{eÁN2ΩAH}8 x쫪(*=Tȩmn{D]n=VLRcat\.Gy̤cT'D]0 P 0\"^hTF[|տ ~8jCދÖ|+ik;&Cs<ފ܂E*+sEΚTy+|.\,5`0j/}<SEngfޔC|𘜒+wLR<8 }Awʴt8L!'Ls.\ ?ص3j Fɩ ubhZ/bx4"={z,Mh"@š3mW ~O&Ӈ6h e(/>eb0 p퇶eYu  Y~y 5k45珘#>[T@V.tW5mcu<I'u&'6`cد{E֜ (A澒;ׯ+^ (e?eGEK-"5v+~QIyS-3ìUҔ0I<8$k~ &f9) @#.HB-2?f^ՌH&H&X?#ߙ@ "rCGg I<a uPn7(o M{^Tc @QhW3[ [s. %hN}yiYִEn! 57+̷C8lHkSne}eUr Q@|2y3dBEU DTsjVI9H7#hy&?^)d|][u]c{2۸5;߈ fRe0c6=є|9Mز:$4wO4*?2ي"wk:" b9bjy%skkl>5㎏FА`\?sp ;gQL}\cj`mn=_,0pڣ0LޯؓKvk\IJ-3W)#ܐwޝne4!4Ț!<,R32kb͡ S]7Ka6UxC2 2%CM"7r"o|*,eubtF=`y6"=}NЊYT"~_riQPdv`} J|FRiThŬ&XBYϵh|b i@; $7h\>h/hW%esc=8߷%n *1`ur#ggy~*șCh(7wre x*dVUF>^iʭyʓ}A5QH!ɯbRiL'{KevFqdb=]N?V{?Tby( P7&0ܙ&-&hx-Pb(ϗSԼWd6cCUOAb?\A}ӧg<&?{KGJXskNNv=PAx ,v^jmBw&N]U T#'t!b_xjjFY3V:gϞF4}4)/KU3ce{["\SX=1zeOawQ^SQ̛ {kA$Kcᡩrx\߱(A?;f∕)z0w?.@FXJ`I[`t%&A)qjy`t1N-QbG:o şÇĥX7>;X p.}Zk~_=T(=^s{ };*7pQUVgul'xu]WQ@Hj:wD;nd[߸નZ!~?DK_6M!<968+{1ˬX:F'Qmi;i=&IYẏ2]1{i۰aɮ=v @}yyӍSHJ] oa~ v[^U/2u!m L`2I0N>X(&XM]ϋDX-8E9g-UhP G!.ܤv@\1{ˤ rΒt]XU4pd!*SB* Հ>-jGW@F}(Z: VM^>yU-D \ ݁ Ua皍;>P9P3IOim?/?N.- :شihKU?]$wz҄Ow!c)/6k<I9>OsɧߚWX?t x봌͑59e)39\9(^$$H l~sYO-x)6Օ~QBu5QƝU AUg7Tcc:Y\##pzʯ]z'QΟhA !fDt48b<\~$%Pfe)E¾-/B$ 2av ,)-?@ <\[叆 f9uKPe\>'%Fo@#_ij똄ݼ5X@nR9j0ځB3+Ga@TC&rtb,rir2{{2{/dP'>,ǒ up jQԎ-0@2;У0mqNu5"_h^✮_Ѷ!pTz&_tݓ̞DORII""V!'B;WwxDnۮ u9{a ]{Qz@"?Qs~C$ ??lZs1e3/p4#QƼr]*, $ojoG[)i]K q;)NqoEɕnE% s !kLk-zS~3 a%ͅHy(}Kl#n6dzwlI`\o;mi4Nub "[(@ijM AtI&yrz?evN%R -]j-}l_`̑Ug"jidZn[/_Ɯ4~'Dڐe]Fa' %o6vX6vFm$Xz/#@鹎VRj'~,zr"poJz-^׷ZOqZ #|QYA()b v>Zʽm?Yz(P/ANUcaHVTC zJ<:fY ' YYf4R>*!UI" &ۋC[&Dk>ׅ@ l}"`~4,۾>٢xrjaP덻'퓑۬EI:-&&zJz㜃戉ÿzIPV9|>BHﯮ ֕;X|Q"G|i8ÿpcd`DZh/l`+rfd.Qq|kƕTX+S)`.GU<T* (#c*`-q@|?J)W/QPQ5CcO6!8a\WF-%_d41@%)1xUĦG%\ϋz귋S9DécG^o0+3?0f!|ڒZY 4 qB#EcWfgFesQSj3t½6M^qP(f˳Юi7ldkQ.M9M4CsR&HHq^ƌZDEw6Ħ;߸C-˰4 TX^:aDޤT+"E,W~U=7% v&<ӏ^R"i}L18@Lš+m*8Z:Xd䲹/:o{E GќR>!&VW3(i]?{AsipAsUڀ:~Ru tᝈ|L FVqxXI^zblvtV<)2"G]Mx#Gp#`%,(Jq hJndl5/# 6>u0(xoҼo:(x vt) f]z^z) 4$Y"~'#-7ˁwP_Ck+b,e 놏ЦJV!*P_ ڪ\tΠ|r' q4l+)Ij'$DEwd7`eIt#Ԙ8={av~>aPot LYNi_89RZitq=w1s#fIP4 @ά/44"_@2ķb^O$`2\ k#^-HSE'QBl߉ʩ;.˕Q*mV(yD֎UEGB&&DK=HSuG?-կM%V[óCN5 œk K+BƱTP=`vLpSY*Q|&v/eox8Dλ3zɗ"]*"|u5I-ſ :sUlLad.2;%JqNl5"cQ ~U3#гIV| ,.+Ԛc۩pU$_ѕ"Sx^c\W [O - w>)s4A;4'+.&|Sdl {%VI=1-|a&O[QGE !غ)vdݐ71FouHU98)P1*fcܳCd(gRm̬dm):.11K4m. >cTT6= ,QLVZ ,;[sz4}Q"]g#M襌9K1K#yoj5A,ur ]2Y։_WHד錟ITd b Aa Uw)qS6]F` Ⱦ)mf+FA!ő/Oh{7sLXf)M#3'W0#*Ilj˂aƓ`\'Oa,>*Ku_|ڜQh^t4Wmh_1N]оH@}*4(+`Xs*b7E!S `R,RkE0eQȁ@a^_F⼓3 l %$. @h{+9ji @<S!2lEa\Mi%C?G \|:"4) lnE)K 5!l Vv}{N`ݼg{W y}rxb bޭ`+r N'Z}AXde6TމGT6GZY_`̕ tE{$e¹Esr1q i=Ph?ŗe)u Kny돦(Js%:|Do3@3AFK[]jfIOH$JrH2ft QG(^DTJht.pĄc{A3+kQU+DCy7H-N͋A< YםmheL5Ҭkd}m#3+=iCԡ1.,_>sf ϢF׺zL Y$A;X oBҺAv!/POTKs| u47)E$!!$$m) a?T!_-7 p6j;<8*Ȭ[I%Ɣ!6o("/fb?cEM }#w `=ܼPL(ߗIY ϬOs#I ꘡; Gx^)f*;;8Q*7w{CTUo5ٖ`tL6+ N(=_<[`?`|#f/3+V;FxsN~>:!Іtਨ~(7=`׺x^hu|-QpdM#C0b\sKNIN0VcQѪ0 F C6Ye {WMvB&y \2jh;)ڛlE^F`6iU.,%$JҚsw68ă. J 4Y(0cM^ vmb^YҹܝuU?`Azx$]ļJ↥0jՠŕæEMUޕ ZEQKNB ,JUIԞ1_rүSy-*Y?VAvYv@ +A*ΠCXp[A*{a;9B;Mc+v&cax*mŎ4z4${x/ChP֧@GqaYR?#{SI/ )X4̅OĝJJV( [E' P<Z\8s"AΰiڕF R'Oߐ$ہ!s" s:]@hPbQژf?ھS4a8Uv^g/Ay;K?IAsŷ\W":({!d2zdщ>FD?,>kOfOij}t7-k> 5x-M\H Eq6x7AͨͅTr#ϖłDl'v.dwxsa0{Q.Բ9/oRLFP :@6Zճ\&(frZOO&r_}R>=Y2c<3uZQ{FAFOv~4iR\0,ځDWyX}ϢfU7i42׈頷[1&jޥ/kVW?uz &%nSFxF("""}kPdkg&=xE)SD9yD`هn߸-7*8g+Rwl\ogh8ԄX}>q,2t3sX$uݖIe@]`6< G{ePgtͺ4\nw\ mg _pc0ai v<{*^qوO-j&ľNjFWLPn\A ;ǻNRHK P1yFF92JYTC𐘱e9qQ [۾큈l7*#I@S5ՄFeg$[r ʈeu4aܾ kq'vK}Br&#ꀰ[z|U61ަ2WbdM(c3iV3oٞkjqYؚNQ П8:0ѣ懋uXQ|daVߙl({$f~8i{Us)['sy٤ġCXdS=o=\m+π6m{FΞPiFjr3p#ϹMVIHe("Co~'2L>3&3P<s6g#ެ("Q|WPyP|ff*N<;#m?bnsyDRAD3Olk xO: PYl: {~U1;N Lwصq ({T$V@" Uvju͚%Y0BmS%DawA@ܗqm)_}3xIG^"  z,gvL0GhG+` ͅy. H[O-;Ң}we7"wQVZ }[m)idY@OqjnXn5WHTMT7>(˼^6ƘIB[Yݪ!m[Qf &x?Hd,ĨmoZ6f\҆ymk<-d.9%B;j<k6g0b1ч,3$,_xA.[R8Y,Od(cTɓ\HaG܍#4?0T{{ kmblꩂ/iaGOyfIɸ1rp+yЄW4ftYesb`.gKAiMQ VV_J5b'*?ϰv>;>]w@Ąԇ/>G663vߊߵ£+ʑV"qJ=jόp2ԓdC$q2+2,?=Jm(/O);` JdG!5qo&uveA5"1" 畚q 9n,*be{ .S0&jCz Esw<0JE`e'Qn'>HԎI" ME^--1'ۻ^^>.h ~VF(}FfԛHc*)UNy3c3Dl'nC=MGH]A,,w}K%[뀽r 㹗yš}QyM 6ҊYkQRKyWuA=twP))V`HUc HzjdׁViU2 aCƀ %\/z"*ME Ɗ9&u.t!|^N  HP-5(ZNG )N~cj  qt_rhWsNUVIJe%Arh/lb)I)[MuΧ8bBs8)F s3M}č+aAsrb9?5(j`~G#ǖ=3ʮ٧l칪9@MDzTk@o䅭*ɚ3nUΉ($X:Ko2ruqmIJ+WnGV&Ҍ6dt׾ђ9E]ћ%Bb0ɻӉVsڒ7oJNMZm FɔGyGKYF98e@lo$9UHو .볔w⤁8Gq&`{kC~:iQٱ5ЮɱI/;G ɝiw^p3ח1$D*~~ Քc%%6k uk G7+r6cYh> EfP_4wZ0덩=91mSSrwmH$.nSJia-kdSv v2ftZ'w R?2K<\˧A${̌,[nM 5&LУS[Rt:9)dό_l{[Fk0W]P6Bv9#D ܹo6]&)ZSHMn݅EAr$rg.#^AH%0fU0ZJk~vbȃ=[>ΞXH^nMւ+c%g`6>p`7D|1_o٩Lz:LDA+_S?"Z ֑c+ vT*.x\Հ}~'g FLzyڢFS iv16 Ot lu=^y-aNG &}}1s<1x 􌌙վ$@6yBWG `=?~D0|=3Aif\׃ddsօZQՅmRj7>"ZR60jdxؽfב%"H 3T9'A6 ImG塠ǛC%.]uك̲(YyN. =Q|bxD1U8˻^I+x*i▃#3_0{M6?e~c.;;s <88?Wwgoyٝ L@eG윇QӔf'|&ow=a.Bu|KGd@;)¢ST*M$ʐS䛊oJݨ֪}zV7uah^LbWP(z6+Ӑ/KtMR̬  7?h˜h}vM$18$o.[(/dE"sh&ڱ; 1;dUMA YC$4qBg>^; Y><1&k{*Y'ܿrEch2’plU fv/DoS'p-`0PY&mV7Rq` P)V2BQI5xt@QE\; 'w^ fgIOh7@U_1-Sލh ,Y C 4֩9wC_=..18K7VvV4oKRV_2:Sݮ7c{rRQ%x"mXSx.4 v2ӕV>\]-e(v9ߠP<"# Z)|Bu9;ͧ k6#/WJMfصKtn 0>D?"fsi@[XOzg"0o% 0/Nn^ԀÿOBTFQJ\ UƆ+ٝlGD~Ffhcgd]6I.;W#^ z["y4%fI߼7H2uh\{X7amLL$A46'HC;s' ؟TCyV{n %Dt,[֝䁚]m g,MDu! igFβ%N ;?o7VZFXM݆Ƙ6PQ@fΉd.K6ᛎN`2%PJmV<[HwrN IBbfdawCD>r#O1eWciE:܂r+^sH7ʕK6=)M'A9 U%*٬AxDDSH(H-)%nFyɊ vcO'~ڹ(I(Pո冱{޸ ORGd*1۟ FHL[+84-Gc"ƷSOU~(4HZ!fZ:qGyu tvDcBҾTORҥx33.XY.YIʪA;of qSvD,ƛ"k )}0Ę@ctWuင'k3#Nv|,PCkn.-<׋%) pqv젭Wk E$ʛ`,9'zܾyN:P'y~B="ZWHe(Q=xs ˎ~e۶x&&OP>EO$:S#=@*+DLC{>}a频j;45USx6 ] c&y\`pHkHuZyֻ8:iߏPy28L#qbZޗP%IPҘ^E>a~]5=N? 1 P7$ȨUqt%wq3*uT1!Өy7t/F@K(TsEZwS=eLZ)-aM$m&t}loPKt l`)|aw1a9ݫjW[;?gowЕ|P<TV E  ߷rKgqg1>3CGB>a@̿a;d)rX߈ToLp;4&Dp@uok) BAybO35&]B&,o--Bv֤^`]<*.V㫬4#Z>]dr&@ʗaڲR"ø9P[)3VHNP#tF0C!K*OLѺɂb``([p}[ UFEnhT7C].zVH &: |[),4$9=InѷnHo׷%8X9tY%Nny5kEFI#ѣlU{veC9's (] 2Fkh"fuB&1eJ3YBn?)zZo#mu C_lVl'L9'$o+|^>@2bpbLanՔbm=|g'M m *^H4OМ-_sC7g S` P.d |kkx4s6bQ'hQHCoZL[fs@=k"~Q7Eilޥ[%$ݛ~`?xD҇uP ^x6o%Ϗc`sW yH황Izڻ"1*탓+>"FbxKIIJYք\ېj!ZψbXܝdb'Ǣ(_7ψ8a K%bX;=t#fAs{)&"pW@"8d,jTo"K(z̧|ɹ+c o`wˤeƽUJq>pW#,u-PJ3NkfNRh}f1)Hh˫$8dF quJV v($w)  z"ՉS}J,7)H{Y1\U5hO;* |&EDJCI^:A'uF/I FcT80mRde#:O򯱡S]`!cgwYoь5 rcPm /6BuH ![X`g ͢VEQRy!6TAf֍/-+F,x+|!8|RȦݝ`vc#]̠nFro/yVZp|%X %lI SP=jek{p);iPAJDT.%9f 5{w zEEt3ٮ>8K#h!ku;X<0e8 Y[V*f,tQSY sQdZ73/ۀWS >4'[z8;ɌhY#_el)㚦{/y4ȝI4a^ Mc"%|EA!g5ro1NM!+%)ykPa2Lt7 NwE/Q2!ǟ g.4T0/@ 59g򺎊` g jLΑb CC<\;!0Kc;" p kM @^[\RFK -TJxu17WewhU;\[y1}{ՒBڪ p[Wg%C/F PJb;GR~Aq[Ϲ8d >K)ם_QĉDs$7*q*z(.}^v+}O$A\gyIUs=_xȫ Wg?ԁ{L j Js]CE{"kVCqmz:Jчgc= k^r'[_$/&C%'{zrs ͧHظF+MJ˧&Nm<9hW#,"HMk`Ia&=Ft;FkQǡP-o#]nFȶWQUoBx7G8E7!״e|@o籩CL͏N[0rTrQ{qp k0 .%@NYuwdf3@6#T)~/O%j ~Yǯy*6*CJ(@ dFXx?hBoBp茴qniw}lt%77M:Є'+v墜)Z#h j [(蝄hFOJ= u.|&D.^-eZuV[\(}kL 0"T>GSՀ g(&l7z%K v%rnu=_xLj%<뇭}%Y1F2 ;:aQvCce1= bAx5hv#zߏLsX.znޛ6]3;b&!yC`e?oF",eF}O*,rt*-G ӫ+e ~9~^aۋFvj,J1U,pb:Y:3J<͙}U`H9{(t9=s#?6=)0ϘDFrOqSeW:۷Q<|ZR1R`|[Hйo1)dv8tY rW`ڏIEROxm "P6bc}S% yRo3Tʃ)!ɪ8'!,,\ ;SyKA/=rqY-z$$OW:h E5DZ\>(,oaR7бݙVvf+F_`yٓ;:BKiq3hVy_K[lgV:Xα~D[Nkm}Zz|1.}P !  8#{Q0j3q,NaVa;Jj9VsL00(<-U*XV|5SZocaIK948II;{s9UT5puMՔw^^Wo Pe}P̩w5$0gMЦ4$=FiVu$ /ƛVcH>Ik_unZʽ (Mk|Wt蓦%j!9c1ٓ,w;8޽)rFςÀt&˦_ sDZ,[VL:iV1hcA{םG>3 z fqR?†d*X1Cͧ,ģF꺓}+6K^J0LHOh.4ּ%({<1VX60tWm#$?zcQn1Dvpc)Q]4lyn5}a)]#cn`3H;9Mz^fcWV$=>I9tid99N6 aB"LiP<4anotiMj) ߲ZONoQ&fV0Exh?XlHӱzMY7kCml˪Y:nL&d}b(X+shgxl-yi&GSa:<v#&VgRY!}8eU,e }HSRԮx--)xw )͞_ =W] <ךұ2$mu=(/ _u}-S$mE(t͂,m= * "z$ukJs{Y1qewݒ@ @݌ټ&Ϩ}ŽO  aL[0K;mnf*>_d#gJ@hۂa nE(Cڵ+2+il%1ժE ҺK1Tv)'{ХrαfLo!:TDZ%=LI-a9el+m/{ #|ziA4`MX& UʛInwl]EɩRg;FF6)(I!PynXBT' )QHVx~):t]n#vJmZɆ.dz9=k%b)?qw`UBG[bbliԕ\ȏ#b=$L%u %%h&l>AQH4 ƉkkjTǟGٚ" SC&̰(C2"̙R=b;|,OÌ?-,GM̏sƟDDFc+> 6ksJI|2<1Y##hSni_ُfjG^drA<Ŋ=?'/ nJp%JaHDt3= U-5r~+$.u m0 0'.6\zXHo&y5w@zMm\vwИ  xuGXտ,$+p⚁0ܟhrFYRE4|Kʖ3SFA;;ASr쫹MA<UDcznz2U2ꊦ J Q%Xbte⊇2hY{ftA.*l!;+qD_"&aAz^Uן屆EȡRh:xCAc;EM'$/t|%m 0bAu 6 wvp7HR0j]We _cG΀{!;==bpxؔtuI inf@0Nqc:z`}%l=X(ڎ /|eBZsa-v8Af,!"l_}hU WdXNKk? I?Bޟ _M<;Qn[.0z cT T|0br#RL,' 6%PN įVmr=SW4Ak7)e0 P~&2U:XL_w]t33gMD]_RjC|ǯ/K.cR{P 8"Z|"Д0fy0hۄ %|;\pgkȷe#9ɿV.^~Zzʀ{{98^ޔ?xǪ]kwd|{'4^"wQ5e=$; x]v̞w8O)1:PQRH|cP8^+rq'I5\x_D%Ŧ "XE$V:P~19ΰש/ ^yEk:_F7|qzlRuHnoi0Ebz?b*z=|v'䃜3yˣW~oEIž?j3k/I>*!) ӃJ W^e w<2&fE]wD١=#Y8dId[}Žln ǝK Tup"V"C̭m]hv̔<ψtr ۍq6zLs,12!9/@;{5(GC6<&g!Y61]W':y78}ECb0\x?ˆi_q51Ĵ+k4uY-Vu6vgh5(|4{؋EDG5P}1_髁޸ ȗ,V|a=}l:s¨86<6+xfYt2I\A M<[QdVJ1z͎1iɬ ש6RҁM8#9)n+l^|lQ&S[kx{E1[;LP"I}p/1T^|dZ}hO,2mbk فr"Lpf;B? Ss_9h -[q HF-)h8PGM*Z"Uj!1,ՒqW ?b2' i`^Υq\\Q6gy R;y\6Kq1]<,!pO}JkjWJڼ uiT$L/C ̡qmY_wm솘a_40jqÒ2GN v~o[ڑ}|/t̪Z۠ەlDe1cvv3`iqGA S_}[Fj/8+ѯ^ք%j~GG(fO}ݎoJ-r1ۆ?tSӞC3꘱+/'fhwIaPؼJE qt1;rm}ݗ1fJ3q4,(Ut:tB3_ݩ7nbl(wY߳iZR7tuI;2mMSYR4-9)JsK2GMY8dיl@=:Бc??  F)O"d)3~C $zʼnRK8=:" '?ox∰_ xP_U,G24 ֝6{2?(?y_Tva% M2DDi!s@MsC1wGPOƁ(>+{-;Yaw׊1q{-ns<2aWN-R!Iag*À0U<=ٕ?v KWH*eb|u+(I¸ۼrOz#i#q1(Ԯ°AaqoO4e,yd{_8¾t Ilr@ ݕoWL/ 3Xon NI?q**lf:M?e7}lbs▅|^\zu@@mgw #`.U4KK)[Ho7N65OT>ւT,2Mp.%*O7nՐٮ,, x`?raOf\@|Q]O*wqfPWHN)-h.GatFKh~?V:U[Q*-RC0ojKE2y\X> A-r Od,GnLp $5NV*oS7 H#'p:kи a?*KFs5WYҵZϨ k~ 7l;nޱ&ӵ =q(8̅vѬ2Օ0=tT>IpEϤc϶jG}-% +* r_ea/nYؾsTJUVfZl0AUXh'ѱijHKLQ5 z*cSÖjP Y7  B v@Ah֜H؟u2{\| Wadvh_p{ϲt{"x]P'7;m7%it"]UXnydnՀU WƓ.qwL+lϮD5 խS6{"R|EA))Vt ܿmzryC7i5 M%܀H_ٶ(oN It*-E<=.*0<?Ybů.F1Y K#oc_0)/Vu4 oqI1 o/H!uD 3:Q,SN i7@E@!YrV+ vH+{za|OXuK7Uk܆sa(hm${v@FLі$zSphef8|U%9&:C'!4OV 'UqPQ>gtz|(+yl7(mХ0e%\d˙|Tc1{QjgkѝDpvoЫnŽӴLS15"74O}P8愩ܚ&Aݜc1V3,ӆr:$:K2([Ty䔉&d 2b[AH֞[nӾ7O~OiJm $ܣjf 8'ܒ!l N %_}Uwb]}tZ !Kj͡ˋI0}uJ}`(.-M@ܹbֆj1d#j8DZsxQ baݠ LL~[-nv <9`sio6u22E,4X8 wɮx5CW?֜*_a&uuٲbDƶ#%|Ȥݣ;IhF^OkLZ@^=`1q;8{}ye\fL~I(LR3N~Ӥ]m5"{]Da”3 55eR14~Ydts@@ "pŤP ʻK k{BZ_uJ WT2 /Om`2Zma&$b@iBOʻn35DbQifYF>0JoS36&s zӪL|7|&E ԍwHs O|]"h@ yҚlL=:yR401=DJ0,РQOR\@D3u>_񁕧C6QgWȸK#vx X,~wuݰ)NC+gEAKROwJVwS$vOC_G[bmb!skrQ5]wKNh@}0B$!1eeJcڎ0폇;H1 u04+9(E."dH-3ï>Dɠ%X(p4׌sjJ_mO,O:SwkPa>Rßǭ*ߠ|^c5|UMD|\HN+MnNSf| Wrj+^:nѻҰQC k QhB/JnH23 | z] a9(ĠBw|˨> b?ȓ3g'\QJ{5p :Ս 1J2鍸zs jS+Iܞ*nbܡK4y~;ϒJwoI #οf|vP1c竀nk1əɌC٧^+RtJic2W,)g{ yDlh*8a֑͞@ Uo3%z? 4VVfAD~ТZP'wNoo) >%bDIr(匵}Bʜ6M;Ijr]Zz.z߷ebҽ%:dxvl*]!mG;H~n /d.2ج/HM=1'@`Й2!ϛG$!;Ho@ru$.  1QcT:o'/? E  gC0zx\gKZɚP@GP)\*@AKaR čr6 w%n[YL ?xn٠xJٳA.%A*#jg6vG%\>Ƀ+xNY?H%Qr !]Ȩ,oR_ ¨zm>|d,,ouA*JImo$G~mcՕZǷ/j_=+7;:)"Nu\dl({VܥtqDds6k8F`o&m RHw]H{Q-U/иXg1kMCq^"\^|%&9Ev\aly 97X&R:;2rjk6n@ |A*f"x2iGA X7m.[Gu5FZ0U%əwiUһ,!e+7"ANӼI22oIVQZ_ n/2JC>.zE`ђGs_6[U,.`SkP*XSṫ+uG[ ;i -^0AJ)4lnwfR2=``;TMo[[8H38zv&Z@5됞sñ (Lp.>fU󦫡s ݘspLFFMهPcTDiج+r*uɇSĮgP&05>a~e&sK`_`QpdIfchzM%:vU_f\)aMMpIoяU"zn8^ׇV*?ZEK$D=NhSXKJKQ=Co`IK0'͋T6IwVtu<* 5z_xU @d ̺pĸJ>˨h!@:v`y1 5W}XTp`N?f{TeZc]4j WKbIrI u,8\G@nlrLe(YS WHKl *>OwѰ#Ɨd#ǐ:!'.Q6E!e>LsO= Yy‘V>?8gxHcVvP~Ũtʏb%o#i͟E:{Nd:҄ɂ; *ټRlh"#K1tzTZ qz Pg"o$r ȧ4dm]zsxRڵ"x@|G(02v=YlAQʐЅ| Ȓ5o'{U:#RS:Tɻa)m5Y􌫌ppBkF@ *g 6l ڐ]NSP?LĈEo%7ZOAwȭ}r9#|89N?H(Fi]WfKy/ZZA2L)(}|,K^p偑ٰ.gbw5rN0HtzJ&U.d:Cʘ"åSImU,/!=p}Wv͠ <Ù$̵}U"%j7 :/:Rɂ9p 2u@%6p4 fPf#U~,1#`xR}d<o;M+]Of9L'<#C QgFoxht=ӪRgE<ϐفpWO{-j 39US %a)Gyt1>S:A|.>ztr|Ļ8a~_&v@á@N!L %O;X]4 \6֠S7$k>!z2ldg|߬ҙ`}i6X6.S)X eG4#ܲEt?~JTXT["d!Z' Kmla$<<(ݗ^]t#0˟6w1z3VФ?z儶"ep!J 5]$ f7RY6&̋իeP:]wGnLCL ?t>/qPdsvhchU))p@/C&񠀢0yRUB'fWڼOUg1`|'|I. +W$״S/=Grv7/MuoгfßkXP7 uZ ?ʎgNN>!h߿eM@.dps%.>ХS/"Kf\&t!ĔLxC 17@F)mIм$n׍"؃⭂3n->iq7Gh*d̸P >PYrW!ֹjlb'fBDqHC ClbWIu\8pgU}FE)92>G;JlCdupT.AͨHqWhc}T(o 5Im1;gŦ]K`n1obVE-8;0֤U$0I] ELLߖҷ`g]룅C wdg<cx=KN͍) 4{ aDA/|3<ct@TdӗˁV8;uA֩󄍼GHNSkoH*7;v[֌BX)d +3VFV7X|@Uxqnffg ,=TEs" T+(~]B0NF rSl۰3SH`[%9e Q{t-kl DK4'?.HO`6^3P;04;pB*Im'1䁎֥@7 X!WdWYItHĂWUްbl7 v&9b]ɞ T+Y@v2w'+}΀fds8A桅*vE~NX挫|GNKi{B]ivxp]ib[qwId*mkn_@o"U,_,3Q#r@W߰p`߉u2OVںUkdQzlYʵB癦ﭞ"T;p kz(A$6 s%[ 1Dzu lpFfY'/~׽.ho;')\='Y_S5׷W6 a:*e(&+U':EF}]yX'FiMP]N?/i-aѩ01rJBJ1c.9g8V4Ql! tD7ymXhxo"Gd),%#;)'_$1t=Q߽Xyҵ# 9:rȜ?y>l(d4q]|nSq 97~ZL׵99}6f9l3|u8m%Nb` ШTǓ,ݾfqf81H0ԥ&6ĈPb#\nLզ zEH^RL3J=Ϣ^kO߳c=毯"*Qnx)fj@X e-i:+%v,:db!y rw0AVYH[G t7Z@\q^,g"TLE3BKr*Qv =rz?x ަ}$Gc%Ȃ)LWt0;)S5s yi!oIX+>2D^e3&ﷻ[Ȯ`O @旇 /z/t${dРfn{@fcכ2.ETd#m067o|Ѻ2tFcSuݣ LQ#Hd~b^ni@o;T#xGxϲ`k_wg{^kk(jOՄ8R &s_ۜ>1h8 Ml pL{3M[MԒ|n@~Ӷ1!mҨ'#j0kvfrW UTAbf/W .;J5hٱoޯE Y|r$o 7H*!,|g$B1xwJKn<ˆxO 'e<*m쥙x4-TFCEM &C?=?dg+5)Xc,̰NZV<Mͩ%Xhv) saۙ 5 s_L<]a>Ř x^Cqes"WlxFBY@-WJ~@5nc߂XMqC{D Շ"nM