summaryrefslogtreecommitdiff
path: root/src/noise.cpp
blob: 8b84803b392ba014de32c5f184916e6c4a659975 (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
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
/*
 * Minetest
 * Copyright (C) 2010-2014 celeron55, Perttu Ahola <celeron55@gmail.com>
 * Copyright (C) 2010-2014 kwolekr, Ryan Kwolek <kwolekr@minetest.net>
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without modification, are
 * permitted provided that the following conditions are met:
 *  1. Redistributions of source code must retain the above copyright notice, this list of
 *     conditions and the following disclaimer.
 *  2. Redistributions in binary form must reproduce the above copyright notice, this list
 *     of conditions and the following disclaimer in the documentation and/or other materials
 *     provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

#include <cmath>
#include "noise.h"
#include <iostream>
#include <cstring> // memset
#include "debug.h"
#include "util/numeric.h"
#include "util/string.h"
#include "exceptions.h"

#define NOISE_MAGIC_X    1619
#define NOISE_MAGIC_Y    31337
#define NOISE_MAGIC_Z    52591
#define NOISE_MAGIC_SEED 1013

typedef float (*Interp2dFxn)(
		float v00, float v10, float v01, float v11,
		float x, float y);

typedef float (*Interp3dFxn)(
		float v000, float v100, float v010, float v110,
		float v001, float v101, float v011, float v111,
		float x, float y, float z);

float cos_lookup[16] = {
	1.0f,  0.9238f,  0.7071f,  0.3826f, .0f, -0.3826f, -0.7071f, -0.9238f,
	1.0f, -0.9238f, -0.7071f, -0.3826f, .0f,  0.3826f,  0.7071f,  0.9238f
};

FlagDesc flagdesc_noiseparams[] = {
	{"defaults",    NOISE_FLAG_DEFAULTS},
	{"eased",       NOISE_FLAG_EASED},
	{"absvalue",    NOISE_FLAG_ABSVALUE},
	{"pointbuffer", NOISE_FLAG_POINTBUFFER},
	{"simplex",     NOISE_FLAG_SIMPLEX},
	{NULL,          0}
};

///////////////////////////////////////////////////////////////////////////////

PcgRandom::PcgRandom(u64 state, u64 seq)
{
	seed(state, seq);
}

void PcgRandom::seed(u64 state, u64 seq)
{
	m_state = 0U;
	m_inc = (seq << 1u) | 1u;
	next();
	m_state += state;
	next();
}


u32 PcgRandom::next()
{
	u64 oldstate = m_state;
	m_state = oldstate * 6364136223846793005ULL + m_inc;

	u32 xorshifted = ((oldstate >> 18u) ^ oldstate) >> 27u;
	u32 rot = oldstate >> 59u;
	return (xorshifted >> rot) | (xorshifted << ((-rot) & 31));
}


u32 PcgRandom::range(u32 bound)
{
	// If the bound is 0, we cover the whole RNG's range
	if (bound == 0)
		return next();

	/*
		This is an optimization of the expression:
		  0x100000000ull % bound
		since 64-bit modulo operations typically much slower than 32.
	*/
	u32 threshold = -bound % bound;
	u32 r;

	/*
		If the bound is not a multiple of the RNG's range, it may cause bias,
		e.g. a RNG has a range from 0 to 3 and we take want a number 0 to 2.
		Using rand() % 3, the number 0 would be twice as likely to appear.
		With a very large RNG range, the effect becomes less prevalent but
		still present.

		This can be solved by modifying the range of the RNG to become a
		multiple of bound by dropping values above the a threshold.

		In our example, threshold == 4 % 3 == 1, so reject values < 1
		(that is, 0), thus making the range == 3 with no bias.

		This loop may look dangerous, but will always terminate due to the
		RNG's property of uniformity.
	*/
	while ((r = next()) < threshold)
		;

	return r % bound;
}


s32 PcgRandom::range(s32 min, s32 max)
{
	if (max < min)
		throw PrngException("Invalid range (max < min)");

	// We have to cast to s64 because otherwise this could overflow,
	// and signed overflow is undefined behavior.
	u32 bound = (s64)max - (s64)min + 1;
	return range(bound) + min;
}


void PcgRandom::bytes(void *out, size_t len)
{
	u8 *outb = (u8 *)out;
	int bytes_left = 0;
	u32 r;

	while (len--) {
		if (bytes_left == 0) {
			bytes_left = sizeof(u32);
			r = next();
		}

		*outb = r & 0xFF;
		outb++;
		bytes_left--;
		r >>= CHAR_BIT;
	}
}


s32 PcgRandom::randNormalDist(s32 min, s32 max, int num_trials)
{
	s32 accum = 0;
	for (int i = 0; i != num_trials; i++)
		accum += range(min, max);
	return myround((float)accum / num_trials);
}

///////////////////////////////////////////////////////////////////////////////

float noise2d(int x, int y, s32 seed)
{
	unsigned int n = (NOISE_MAGIC_X * x + NOISE_MAGIC_Y * y
			+ NOISE_MAGIC_SEED * seed) & 0x7fffffff;
	n = (n >> 13) ^ n;
	n = (n * (n * n * 60493 + 19990303) + 1376312589) & 0x7fffffff;
	return 1.f - (float)(int)n / 0x40000000;
}


float noise3d(int x, int y, int z, s32 seed)
{
	unsigned int n = (NOISE_MAGIC_X * x + NOISE_MAGIC_Y * y + NOISE_MAGIC_Z * z
			+ NOISE_MAGIC_SEED * seed) & 0x7fffffff;
	n = (n >> 13) ^ n;
	n = (n * (n * n * 60493 + 19990303) + 1376312589) & 0x7fffffff;
	return 1.f - (float)(int)n / 0x40000000;
}


inline float dotProduct(float vx, float vy, float wx, float wy)
{
	return vx * wx + vy * wy;
}


inline float linearInterpolation(float v0, float v1, float t)
{
	return v0 + (v1 - v0) * t;
}


inline float biLinearInterpolation(
	float v00, float v10,
	float v01, float v11,
	float x, float y)
{
	float tx = easeCurve(x);
	float ty = easeCurve(y);
	float u = linearInterpolation(v00, v10, tx);
	float v = linearInterpolation(v01, v11, tx);
	return linearInterpolation(u, v, ty);
}


inline float biLinearInterpolationNoEase(
	float v00, float v10,
	float v01, float v11,
	float x, float y)
{
	float u = linearInterpolation(v00, v10, x);
	float v = linearInterpolation(v01, v11, x);
	return linearInterpolation(u, v, y);
}


float triLinearInterpolation(
	float v000, float v100, float v010, float v110,
	float v001, float v101, float v011, float v111,
	float x, float y, float z)
{
	float tx = easeCurve(x);
	float ty = easeCurve(y);
	float tz = easeCurve(z);
	float u = biLinearInterpolationNoEase(v000, v100, v010, v110, tx, ty);
	float v = biLinearInterpolationNoEase(v001, v101, v011, v111, tx, ty);
	return linearInterpolation(u, v, tz);
}

float triLinearInterpolationNoEase(
	float v000, float v100, float v010, float v110,
	float v001, float v101, float v011, float v111,
	float x, float y, float z)
{
	float u = biLinearInterpolationNoEase(v000, v100, v010, v110, x, y);
	float v = biLinearInterpolationNoEase(v001, v101, v011, v111, x, y);
	return linearInterpolation(u, v, z);
}

float noise2d_gradient(float x, float y, s32 seed, bool eased)
{
	// Calculate the integer coordinates
	int x0 = myfloor(x);
	int y0 = myfloor(y);
	// Calculate the remaining part of the coordinates
	float xl = x - (float)x0;
	float yl = y - (float)y0;
	// Get values for corners of square
	float v00 = noise2d(x0, y0, seed);
	float v10 = noise2d(x0+1, y0, seed);
	float v01 = noise2d(x0, y0+1, seed);
	float v11 = noise2d(x0+1, y0+1, seed);
	// Interpolate
	if (eased)
		return biLinearInterpolation(v00, v10, v01, v11, xl, yl);

	return biLinearInterpolationNoEase(v00, v10, v01, v11, xl, yl);
}


float noise3d_gradient(float x, float y, float z, s32 seed, bool eased)
{
	// Calculate the integer coordinates
	int x0 = myfloor(x);
	int y0 = myfloor(y);
	int z0 = myfloor(z);
	// Calculate the remaining part of the coordinates
	float xl = x - (float)x0;
	float yl = y - (float)y0;
	float zl = z - (float)z0;
	// Get values for corners of cube
	float v000 = noise3d(x0,     y0,     z0,     seed);
	float v100 = noise3d(x0 + 1, y0,     z0,     seed);
	float v010 = noise3d(x0,     y0 + 1, z0,     seed);
	float v110 = noise3d(x0 + 1, y0 + 1, z0,     seed);
	float v001 = noise3d(x0,     y0,     z0 + 1, seed);
	float v101 = noise3d(x0 + 1, y0,     z0 + 1, seed);
	float v011 = noise3d(x0,     y0 + 1, z0 + 1, seed);
	float v111 = noise3d(x0 + 1, y0 + 1, z0 + 1, seed);
	// Interpolate
	if (eased) {
		return triLinearInterpolation(
			v000, v100, v010, v110,
			v001, v101, v011, v111,
			xl, yl, zl);
	}

	return triLinearInterpolationNoEase(
		v000, v100, v010, v110,
		v001, v101, v011, v111,
		xl, yl, zl);
}


float noise2d_perlin(float x, float y, s32 seed,
	int octaves, float persistence, bool eased)
{
	float a = 0;
	float f = 1.0;
	float g = 1.0;
	for (int i = 0; i < octaves; i++)
	{
		a += g * noise2d_gradient(x * f, y * f, seed + i, eased);
		f *= 2.0;
		g *= persistence;
	}
	return a;
}


float noise2d_perlin_abs(float x, float y, s32 seed,
	int octaves, float persistence, bool eased)
{
	float a = 0;
	float f = 1.0;
	float g = 1.0;
	for (int i = 0; i < octaves; i++) {
		a += g * fabs(noise2d_gradient(x * f, y * f, seed + i, eased));
		f *= 2.0;
		g *= persistence;
	}
	return a;
}


float noise3d_perlin(float x, float y, float z, s32 seed,
	int octaves, float persistence, bool eased)
{
	float a = 0;
	float f = 1.0;
	float g = 1.0;
	for (int i = 0; i < octaves; i++) {
		a += g * noise3d_gradient(x * f, y * f, z * f, seed + i, eased);
		f *= 2.0;
		g *= persistence;
	}
	return a;
}


float noise3d_perlin_abs(float x, float y, float z, s32 seed,
	int octaves, float persistence, bool eased)
{
	float a = 0;
	float f = 1.0;
	float g = 1.0;
	for (int i = 0; i < octaves; i++) {
		a += g * fabs(noise3d_gradient(x * f, y * f, z * f, seed + i, eased));
		f *= 2.0;
		g *= persistence;
	}
	return a;
}


float contour(float v)
{
	v = fabs(v);
	if (v >= 1.0)
		return 0.0;
	return (1.0 - v);
}


///////////////////////// [ New noise ] ////////////////////////////


float NoisePerlin2D(NoiseParams *np, float x, float y, s32 seed)
{
	float a = 0;
	float f = 1.0;
	float g = 1.0;

	x /= np->spread.X;
	y /= np->spread.Y;
	seed += np->seed;

	for (size_t i = 0; i < np->octaves; i++) {
		float noiseval = noise2d_gradient(x * f, y * f, seed + i,
			np->flags & (NOISE_FLAG_DEFAULTS | NOISE_FLAG_EASED));

		if (np->flags & NOISE_FLAG_ABSVALUE)
			noiseval = fabs(noiseval);

		a += g * noiseval;
		f *= np->lacunarity;
		g *= np->persist;
	}

	return np->offset + a * np->scale;
}


float NoisePerlin3D(NoiseParams *np, float x, float y, float z, s32 seed)
{
	float a = 0;
	float f = 1.0;
	float g = 1.0;

	x /= np->spread.X;
	y /= np->spread.Y;
	z /= np->spread.Z;
	seed += np->seed;

	for (size_t i = 0; i < np->octaves; i++) {
		float noiseval = noise3d_gradient(x * f, y * f, z * f, seed + i,
			np->flags & NOISE_FLAG_EASED);

		if (np->flags & NOISE_FLAG_ABSVALUE)
			noiseval = fabs(noiseval);

		a += g * noiseval;
		f *= np->lacunarity;
		g *= np->persist;
	}

	return np->offset + a * np->scale;
}


Noise::Noise(NoiseParams *np_, s32 seed, u32 sx, u32 sy, u32 sz)
{
	memcpy(&np, np_, sizeof(np));
	this->seed = seed;
	this->sx   = sx;
	this->sy   = sy;
	this->sz   = sz;

	allocBuffers();
}


Noise::~Noise()
{
	delete[] gradient_buf;
	delete[] persist_buf;
	delete[] noise_buf;
	delete[] result;
}


void Noise::allocBuffers()
{
	if (sx < 1)
		sx = 1;
	if (sy < 1)
		sy = 1;
	if (sz < 1)
		sz = 1;

	this->noise_buf = NULL;
	resizeNoiseBuf(sz > 1);

	delete[] gradient_buf;
	delete[] persist_buf;
	delete[] result;

	try {
		size_t bufsize = sx * sy * sz;
		this->persist_buf  = NULL;
		this->gradient_buf = new float[bufsize];
		this->result       = new float[bufsize];
	} catch (std::bad_alloc &e) {
		throw InvalidNoiseParamsException();
	}
}


void Noise::setSize(u32 sx, u32 sy, u32 sz)
{
	this->sx = sx;
	this->sy = sy;
	this->sz = sz;

	allocBuffers();
}


void Noise::setSpreadFactor(v3f spread)
{
	this->np.spread = spread;

	resizeNoiseBuf(sz > 1);
}


void Noise::setOctaves(int octaves)
{
	this->np.octaves = octaves;

	resizeNoiseBuf(sz > 1);
}


void Noise::resizeNoiseBuf(bool is3d)
{
	//maximum possible spread value factor
	float ofactor = (np.lacunarity > 1.0) ?
		pow(np.lacunarity, np.octaves - 1) :
		np.lacunarity;

	// noise lattice point count
	// (int)(sz * spread * ofactor) is # of lattice points crossed due to length
	float num_noise_points_x = sx * ofactor / np.spread.X;
	float num_noise_points_y = sy * ofactor / np.spread.Y;
	float num_noise_points_z = sz * ofactor / np.spread.Z;

	// protect against obviously invalid parameters
	if (num_noise_points_x > 1000000000.f ||
		num_noise_points_y > 1000000000.f ||
		num_noise_points_z > 1000000000.f)
		throw InvalidNoiseParamsException();

	// + 2 for the two initial endpoints
	// + 1 for potentially crossing a boundary due to offset
	size_t nlx = (size_t)ceil(num_noise_points_x) + 3;
	size_t nly = (size_t)ceil(num_noise_points_y) + 3;
	size_t nlz = is3d ? (size_t)ceil(num_noise_points_z) + 3 : 1;

	delete[] noise_buf;
	try {
		noise_buf = new float[nlx * nly * nlz];
	} catch (std::bad_alloc &e) {
		throw InvalidNoiseParamsException();
	}
}


/*
 * NB:  This algorithm is not optimal in terms of space complexity.  The entire
 * integer lattice of noise points could be done as 2 lines instead, and for 3D,
 * 2 lines + 2 planes.
 * However, this would require the noise calls to be interposed with the
 * interpolation loops, which may trash the icache, leading to lower overall
 * performance.
 * Another optimization that could save half as many noise calls is to carry over
 * values from the previous noise lattice as midpoints in the new lattice for the
 * next octave.
 */
#define idx(x, y) ((y) * nlx + (x))
void Noise::gradientMap2D(
		float x, float y,
		float step_x, float step_y,
		s32 seed)
{
	float v00, v01, v10, v11, u, v, orig_u;
	u32 index, i, j, noisex, noisey;
	u32 nlx, nly;
	s32 x0, y0;

	bool eased = np.flags & (NOISE_FLAG_DEFAULTS | NOISE_FLAG_EASED);
	Interp2dFxn interpolate = eased ?
		biLinearInterpolation : biLinearInterpolationNoEase;

	x0 = floor(x);
	y0 = floor(y);
	u = x - (float)x0;
	v = y - (float)y0;
	orig_u = u;

	//calculate noise point lattice
	nlx = (u32)(u + sx * step_x) + 2;
	nly = (u32)(v + sy * step_y) + 2;
	index = 0;
	for (j = 0; j != nly; j++)
		for (i = 0; i != nlx; i++)
			noise_buf[index++] = noise2d(x0 + i, y0 + j, seed);

	//calculate interpolations
	index  = 0;
	noisey = 0;
	for (j = 0; j != sy; j++) {
		v00 = noise_buf[idx(0, noisey)];
		v10 = noise_buf[idx(1, noisey)];
		v01 = noise_buf[idx(0, noisey + 1)];
		v11 = noise_buf[idx(1, noisey + 1)];

		u = orig_u;
		noisex = 0;
		for (i = 0; i != sx; i++) {
			gradient_buf[index++] = interpolate(v00, v10, v01, v11, u, v);

			u += step_x;
			if (u >= 1.0) {
				u -= 1.0;
				noisex++;
				v00 = v10;
				v01 = v11;
				v10 = noise_buf[idx(noisex + 1, noisey)];
				v11 = noise_buf[idx(noisex + 1, noisey + 1)];
			}
		}

		v += step_y;
		if (v >= 1.0) {
			v -= 1.0;
			noisey++;
		}
	}
}
#undef idx


#define idx(x, y, z) ((z) * nly * nlx + (y) * nlx + (x))
void Noise::gradientMap3D(
		float x, float y, float z,
		float step_x, float step_y, float step_z,
		s32 seed)
{
	float v000, v010, v100, v110;
	float v001, v011, v101, v111;
	float u, v, w, orig_u, orig_v;
	u32 index, i, j, k, noisex, noisey, noisez;
	u32 nlx, nly, nlz;
	s32 x0, y0, z0;

	Interp3dFxn interpolate = (np.flags & NOISE_FLAG_EASED) ?
		triLinearInterpolation : triLinearInterpolationNoEase;

	x0 = floor(x);
	y0 = floor(y);
	z0 = floor(z);
	u = x - (float)x0;
	v = y - (float)y0;
	w = z - (float)z0;
	orig_u = u;
	orig_v = v;

	//calculate noise point lattice
	nlx = (u32)(u + sx * step_x) + 2;
	nly = (u32)(v + sy * step_y) + 2;
	nlz = (u32)(w + sz * step_z) + 2;
	index = 0;
	for (k = 0; k != nlz; k++)
		for (j = 0; j != nly; j++)
			for (i = 0; i != nlx; i++)
				noise_buf[index++] = noise3d(x0 + i, y0 + j, z0 + k, seed);

	//calculate interpolations
	index  = 0;
	noisey = 0;
	noisez = 0;
	for (k = 0; k != sz; k++) {
		v = orig_v;
		noisey = 0;
		for (j = 0; j != sy; j++) {
			v000 = noise_buf[idx(0, noisey,     noisez)];
			v100 = noise_buf[idx(1, noisey,     noisez)];
			v010 = noise_buf[idx(0, noisey + 1, noisez)];
			v110 = noise_buf[idx(1, noisey + 1, noisez)];
			v001 = noise_buf[idx(0, noisey,     noisez + 1)];
			v101 = noise_buf[idx(1, noisey,     noisez + 1)];
			v011 = noise_buf[idx(0, noisey + 1, noisez + 1)];
			v111 = noise_buf[idx(1, noisey + 1, noisez + 1)];

			u = orig_u;
			noisex = 0;
			for (i = 0; i != sx; i++) {
				gradient_buf[index++] = interpolate(
					v000, v100, v010, v110,
					v001, v101, v011, v111,
					u, v, w);

				u += step_x;
				if (u >= 1.0) {
					u -= 1.0;
					noisex++;
					v000 = v100;
					v010 = v110;
					v100 = noise_buf[idx(noisex + 1, noisey,     noisez)];
					v110 = noise_buf[idx(noisex + 1, noisey + 1, noisez)];
					v001 = v101;
					v011 = v111;
					v101 = noise_buf[idx(noisex + 1, noisey,     noisez + 1)];
					v111 = noise_buf[idx(noisex + 1, noisey + 1, noisez + 1)];
				}
			}

			v += step_y;
			if (v >= 1.0) {
				v -= 1.0;
				noisey++;
			}
		}

		w += step_z;
		if (w >= 1.0) {
			w -= 1.0;
			noisez++;
		}
	}
}
#undef idx


float *Noise::perlinMap2D(float x, float y, float *persistence_map)
{
	float f = 1.0, g = 1.0;
	size_t bufsize = sx * sy;

	x /= np.spread.X;
	y /= np.spread.Y;

	memset(result, 0, sizeof(float) * bufsize);

	if (persistence_map) {
		if (!persist_buf)
			persist_buf = new float[bufsize];
		for (size_t i = 0; i != bufsize; i++)
			persist_buf[i] = 1.0;
	}

	for (size_t oct = 0; oct < np.octaves; oct++) {
		gradientMap2D(x * f, y * f,
			f / np.spread.X, f / np.spread.Y,
			seed + np.seed + oct);

		updateResults(g, persist_buf, persistence_map, bufsize);

		f *= np.lacunarity;
		g *= np.persist;
	}

	if (fabs(np.offset - 0.f) > 0.00001 || fabs(np.scale - 1.f) > 0.00001) {
		for (size_t i = 0; i != bufsize; i++)
			result[i] = result[i] * np.scale + np.offset;
	}

	return result;
}


float *Noise::perlinMap3D(float x, float y, float z, float *persistence_map)
{
	float f = 1.0, g = 1.0;
	size_t bufsize = sx * sy * sz;

	x /= np.spread.X;
	y /= np.spread.Y;
	z /= np.spread.Z;

	memset(result, 0, sizeof(float) * bufsize);

	if (persistence_map) {
		if (!persist_buf)
			persist_buf = new float[bufsize];
		for (size_t i = 0; i != bufsize; i++)
			persist_buf[i] = 1.0;
	}

	for (size_t oct = 0; oct < np.octaves; oct++) {
		gradientMap3D(x * f, y * f, z * f,
			f / np.spread.X, f / np.spread.Y, f / np.spread.Z,
			seed + np.seed + oct);

		updateResults(g, persist_buf, persistence_map, bufsize);

		f *= np.lacunarity;
		g *= np.persist;
	}

	if (fabs(np.offset - 0.f) > 0.00001 || fabs(np.scale - 1.f) > 0.00001) {
		for (size_t i = 0; i != bufsize; i++)
			result[i] = result[i] * np.scale + np.offset;
	}

	return result;
}


void Noise::updateResults(float g, float *gmap,
	const float *persistence_map, size_t bufsize)
{
	// This looks very ugly, but it is 50-70% faster than having
	// conditional statements inside the loop
	if (np.flags & NOISE_FLAG_ABSVALUE) {
		if (persistence_map) {
			for (size_t i = 0; i != bufsize; i++) {
				result[i] += gmap[i] * fabs(gradient_buf[i]);
				gmap[i] *= persistence_map[i];
			}
		} else {
			for (size_t i = 0; i != bufsize; i++)
				result[i] += g * fabs(gradient_buf[i]);
		}
	} else {
		if (persistence_map) {
			for (size_t i = 0; i != bufsize; i++) {
				result[i] += gmap[i] * gradient_buf[i];
				gmap[i] *= persistence_map[i];
			}
		} else {
			for (size_t i = 0; i != bufsize; i++)
				result[i] += g * gradient_buf[i];
		}
	}
}
Xi m FdtmG>#$<Ǝ՟'~;pOK oFwAcÏN;1뇘Kb3(|)J}>~ِ׏DeQU<ߥ%:!sdv#R8 PҜ7}ڋ7qOOɋ;lCXmr O7Ifbf7G;SMrw )Jyb'i3<ɃGxj#|A9C9͏*}kvor 2^oMqGꞬ4N֟waHPë~qڣos= cQ 1:2ǵu'CFofMxʞy'4X\ď;Uǩ?cYqn2p9uLS${׎xӏtn@=`NvNxNl;zC&ߧM)ҝ̜TFDt0zn  *yNG<)4H О>(ꏵ~6M㽟u:LkL8 'ޟ&#TySt8ǡ'm~ ϞTl^y4Dm46 '9Bk]j|=ݓŏ:՛DWx!”N@uP7gX;G~}zys?{ݍk-+ DI'*f>aO|Nޟt9ŖOXTc"|GfsglObf|g$OGp:g=A2~)MN'3"wNsl9=qx^v'Oޟ<Zh;SNǞ3N{G}=pOGJunUޡ{#7?->Ϭ{?:=ǥ;v㹧$SN˒]92+ dž;wЯ9w'^<QCf;[-?7 E:=7 %x&$XX!Q^DǞ)_)2Nӣ4p~_Nlsҭi`ߤIG{ݧڸMwiѸ/VGi<)^U1$f2|9S~kGpM~}$G0\'U'Νݏ;t/hU&nnPn"OP|Z܇`~5>mtmfm\)be%)?m׼ƑpW~t#H3? ~.%'{,Tŝ)m2SD31~cd,rpJ Kr}U@WXu=[wxmD9?@y[z 3@3R\eeɆ Yϛ1,hGH p˨Fs E(>dsvv.><~DF bkh4$?O+tIdI'O3 GFlǍE'3='&2*C!$xryxə)I3 %))IJO~>ƻç~58l*M ݓ2?NaV>+??ՠҧd0:9야FIBlة_5氌D%U4 Q42w#';H㩄Zj'*UQCI Ox<[K3:4-cUzID= a ߏEO6>xoqx?$\[8@ @?а/Qx+-}kXoH~&qG9?(GG+ޭ *ݍkAl{a<;!_ ]>sRx1BaAX: \e/-y_ĹK~⸻5.q?kSDDF&>!:cr~'I/X$$NƓTwN:I?ƱΈ>vC 8fy΢sR֮oTZVIs=od8x)Cf#|='B{<GF;lhm l###\eܪWEwy^NX/Y}jʽ6^P8pr 5AiTV܄5 ){;BzyT%2Ԥ9<7&U׬{Z~dzbzS $O;6g&@Ү/~Uרq}uݣ#Y 9winqߺè>]Zԗ^{5.w^Y!x9a׵<%Z72ۣtB I*ȁSR͞Ψ2Wއ{3_?fXg2/=ۚfMz-xگ>v=f=^5XzG<2<y [l .Lt=u\\d&:ߟrxN`nN`Kk!&ݞ#|38ts3'')>2b̘\ͣÉ;pJ$6`EGR>=4|Dh||yfG[E V?迴F% 0"/⸋/l=9gQ6F7S#ZSqI,LH 08IӓjwS9Uɧ`tp&<|UՖQI$-U.P|@^kн'p';x[Q]ʏ,z',1dvl)YB>moaɆFSICIlsNa7ә]4 hL$ꡡrhSJ< UK-\ Ǝ*q]iR13<Ԙ5%mK*I 3YƜAN]<wbs3Mtg=:y&֜ j];Q4w됻#G~u(^]:|F2pF|0 u ;5hZ2RF:1ю::n(l 0w~hޠ FrMh3go-\0S5, aM*adxNxcTs7{VWb[x眺ӟ{qr#GBtFsGZIq7%0H݃ 7O:r[­hXYS#l27&sI<$GkGKPT5I+;ps'-?;wwu|KdC'(6f;qra[bӞjc>9p 7 p9PD'PQGܛym>'O1,J~r#eYyC|buOR8&gNr>`dG0妡6fZ; %81FF2|~l,aMἛ9)ܧ4nT>wO',{ 9熚L w#s07wRRsd򆓥'u59#d\apDsCxz`׏zůFJw$<̞u5}12d L?!g7$ܓ;ÈrGR;}@4"0<eZܜ"7jM0l0fd:w'7:+P+д=;aVL4\M B>q_IM|Q/xS5ΰw^'&&jxYcRH4@#H YIȔ>a4ULQZ͓RnrrA p xaΙIl!ѰaNэ#~wC؜a 5x3ubrMSdN)Nk F-W7H܇fG:":O/cpb#HClRz9b9; D!I֔4nMx)Spl"mY묮(훙o2fpxIvM;MAj&` ##!t,}J5dU=0%(;ŘJ4;"y4mHtrcUc9l O9#~M7|s39Ә5ư8DQEq"&bC;3rGTLvk멮֙W')+[ zzq9Ǐo'{':8Pɤ6B|mmL}ݐM`S$Ay'aԜ3 rp6=/c n8~F|kا8Kɛ:uhM҉*)9uM1,CX wۑI<"X)mg.aE'`.!%ٍK-L[M 1)rڽKFJ1pNS6Nx< l{Gߎ)x >>%Hh; |SVI58(W9d͚aU=hVlLoab?13r?EӤ4[ÁD֟m>iG`?IӀ;:fj'N0xś;X>(ޟ}2v'=zStz#=0xsC 9s^7GwfStOX;99iYN?䴴:SxdqΌ莄xLuCܑM  ;,gidII"GL'͞xtڍppIBs;T:39Ui_b [lY'}rYMy\W%tl0;%b1kr6N}8n""'8Qˮkx$C|6Ff 0s(qN<ybpǒ㛒wa`$s꣸l;liHi 'Q9LCtLf _3I:pcBᴻ Ⱥf@sV$^p|t;⑥-h0済q0 ^)4P)>b%o6)zyЉG1H't=U7J1R++M ~9>ӟvxC+{ eXHs|} &H|}zxYY2oϠh}po yoi9NmDFv'[1f:߆]&,|Gi)% 163(MvV{#<;vb;6R?\SYXo @T MEG!X!EN"L0z(zcfJRC;7:̝n,{sOW<ɤ,uq8e`qv e*Ct{&5(.͌rw3)._W:)/?=%)'c:ǙH13hv"\~coHDHq;q0^ n(Fqlt:)DVw^7,b֫ttC{qpYһceaoBDH!\ 뗅"ix2$zU88#dQr@k{j{)A'~% {0Y]8 ͘%>~|lI9. | 6&!K`77 pHwL=٤t l/a]zRrI[ytBB D ۗ:AۇnG;έvfL,aY`\bHG8cޫ ;u8nC, c:~a uCƲY0-dn(*l.rLUVW6}\ws>_WL0 iMA ف춬kPu:NKlfFFHb7#:#8'(o8*6 i\g?-Wg㍁8˚77ǛU)լUΤǕ8^Y׻ڕ|:hhSb-1o|}s 8luOgi|+ruh"q#v[*ƢiLolhJdJ'Dvΐ)ݹ4,C'$N"ΣDAJ ce/;R_klվZ3qt^\~_Uyntoul9#tvrTXo'x' DfKC''VMN:uӝW9ʪdTiG~i߳_y!xRC`;ljg>`cO2b@>Ljq lc"t:a>ܛR"ζ3c<#;1Q9q$wҘcZ`.8z+:pWp"$ DJR#bdVS,eUV;m(=~|OD?[:1lv~*ʲUU [UV0a7`™qIzAlR`$d,RLa(Dl&e,h@Ũ*")(E*J(#Ai1131Hؘ,Vdk5UUoOy?JySćJ~O=q#@SM2+_oc}Sl|YI,n(յBM&Ҙ :M7U،i*h%_VIy!# )heJP@8N%K"T#O%<PQޙiJ]l*0"ã=Q=#5TЉ"|x"RRQ2 ?x3&fLIIDȜ3#"{hG>!y4 u^u`g8O:4ӯ;00|rTĨSzY`I6-HuӔr Ma#ruC?lߝ;L~h$M3H;v}- ,<%#93O*~(d=~YEU"fw#`)JPO)ҤfC" )4(FLԔJJ& L(R"JdRIJRfi)20)Lb0Y"~`J`LdaCCi)E(4%%)%Q0Q`2)E!DFFE()4 0TQ00)F `Ȕf!7d<6J`sҜ9'85^tH':`r09#]JU,y+U~d(d((R)IJ()BJ()()JS!o]CUXcҎD,nsCG4{ǘl[/lL#D{B;qRHi â8A#>_;3,Θ r|'}QS2,v}Y{=Q)Dv:Oxs'Nj!ڴP$̓fӐ'ty9O`v#p7 ]]˭Ip$O~IKFGjvqS uG)OFx2N r7QFG:&޿PO>*;5`O7LxSdndRO*C",lŦOX<'xqIG>Ĕ 2g0Sc:ʭl4-yb0LL}@"4X@ɅNQ8g*qO>/)p$ͣ!ÄcJ\x3pG֟~RX'Nbj$_z19SroF2?0`) *,?Ӟ0QvShN=e#0eLXee;L+ sgc6&Wn`Rfꔫ_?md$j.LIFFeTRe˜"Y0`S2RS#s)(F #)IELLb`SASnbh)Ee3Pe 4d<1FF HBȦ34,2`*RݵJRLJUͮ6e2^X0! (iFp1i1"5d0RJT]Jm6ͽ]؄yIb!C!CC Ja`321f%qF$q PhFS\`,/_X!=$hL` 4EB@ !Q$oW:h,+Ю+Y0 "{X\a:)I)#rHnG!Oqg[=A?=|o_ᇆp*Pmz~;Cäd=1(R~h6M6l+j2áVaFĸ٘a?e?r )9SI`)NqۓSQ)_' r{b#֛q2.53Bj[Ox8p S )Z )UJ)N(Ot{o)_ ޖ&4+*cd!dL’iR4LAQbM DFo7>d{4ϾON߳>4f#q߱mxڏ .eRkE2K5(b*7pDq0dh4VO>9S؍OnS^A+lZVfuHdAFrg렄$G6;Iۉo<*{Y)̓Mזz#IC' [Ъګ$/l sf9+/c(!zbxEb*('yja].,ȑdKg+f׉@H:#ER645fL&Ue-ң"RZYRD51pD zE+ %%0[nFE)rN 8I'rBdIs,rM)`aOˑ]Vy)L-&q?*jsZIVFP*z-4fC`8GIL()46z2x }zc j4 keY^qJcm=[6=|H? ?}ɨj5,ZRd9g"Hڎ{jۤhf%WW8$?7^>i6a'@I2L6.q9@4naq\*\sF~'f+aP Jx4>{ZAkBM51 }gS&$ta0'ާq:pOzآ],X+ѓI ȥ9#pMZq' PXT+a{d|QD1R7.P&?ϐ]C3A)Yg'ON^?sA BrV^Sϻ BauS5!U*NZW_g3yޝϔ.6]Īyt_hkX?iY̟|?}S)D7))Y q& tn/d@9>bӁdHkR(DZVxb^M/j KaMa&^Izr{1'/ s '6:oյU|HGz=XInyq)!2;Aۘ3?~|ŽPR(M7ŧbl'2)SI&oNߜHh1x,DCb8'2lNR௰ mvX=>/O.oIxq!|!aë 9DDp' HLaSQCƫsQ׍tkm=UjJ>yN3vA81}\, / @Oܧ7"v4#R rLMswS:>QOz222L H{68!m̢3)'Srɉ%6Ѷ+s &pĝ emȔ,T%G6fo^6CSqtmkF؃E-º!ʍ,'D:!ǀu{&"11>l˝2lڏzL8S3.ˮک'6Ƨ %)9!r{%(e(h姩.KRU%`"2(79M'hfک̜=Wv?5$ApM)IBC&}䍁i'w#SI\ℤ;TyÑitngxb{y҄{5Hy1ߍ1!f$$I`Hxޛ,=ƑVD#dϒyÎ,֝lsô:Ѿ۵CǕ=tI#H?Tk<#[?_OOO8;fw~K=,{G卡Oih<%(l1*blvnޜa08(}Eܟ/fٵS2Msietal܌.J9q͏s.[&'2k\lپ,4h4#!*i<[m44 {럺Sœć80d}{ S'uFC)9H_N?<~yGѯ?wIi5K>Q7Õ$;>S?(Uds"sMFt?k]2U҈1=dVtl^KURLLpG'J}62PyU)JYRY[T㍘nɈ<&m]**&BYP0%_0 &I8%)(!$h)Rx&Mc_-|[֭~S܇78UkŦv,LVԞR)Ivrߎ)jN0F$bPK(2Ğ@MyJ 1 R [Dd% @\h&<0%2A,1B$@Ie(DIHŀ!Ic5%TE%0bYNa$8b9]U#k%j0 a0b4IL3J aVB&[uۦKoYVYY$-9"Y`&ZY-l5WSSKK$%Xg*fԘee-V\I K(FYȒ,e\UUp&pV\+$j⬲х.,'K;0$A%#(8an2,-FX$2 SLB%X)' 8D 0#ŖG茹YU$BY"I4`Y#1< 1( a,g$l"Dr̫ypX\7+Mիv,c'!?{q=t=e>ryp=Y#q>sC>"thnĽ?v؛t2$9g7^..YLJ9 b& iX)Tg EZh)&&1BY6˅\-۸[pXnv\[\Yn2ˋWYmn..-Zeū,e ,իݗ vF1bKYfi#,ĉĈNK,c2FYeիkXeY\.eeefefYYfnevfٛ>On#<hghg׭l]^W0`a;SQԝ,nQ%yѐxXH}llf~ç^:^r nS)܍$aI*<'lHb[? iZ X';/mk&hcg+;q&SNL^DtF%'&a*)fY)crM3d7Sm-@vm5N$Ig3䛕Cj?ؚ;c?VYRX椃3py}OD-U{kFic~>|boMI8R`d0`7]7 =q!| $uj [ܰT(C(h4寶(;離f\Jj[L)܆;e{%{III(17&ystMtMs\pN= ^u ''($zUmDQgߝX$i6Ɓ:*hFDwslNȍ,hzCM5q3w&9D<4ߦce;i0AZWM(Jq٦n|G<~!ڇd>(97g9iM8[ps8;4&7BA0M~+--1 TPSO?)QOb&vi0df~XjRѼ2TT{{B4hшDD>Ó}v)<%KTZ6R b~8O}$dyK%ظ-UUnG6m TY*UY)/Uu5HJJIi:]ݲIdk l &pfegUYWPz!(8 @x4=m] #ŖD#Ȉ"ެ>ܱ2I͕0*s2D~LϬ@# "LI<QKdPJCd"ˆQ*R؆Jd9'0n SBU/KϢ}k9Jw3V;Qܡ28y1Γ|7j=0'$gN;b*ժcղ:9\s6r &ٶsO>8 Ƃ> 뗛J}1͉ϐAă2(LLsuex'ϧ   % &R`"i&$Ц)4Ri W~ ʰyTDUw%LIlG_{qw4caD&1"2H"DLI .tey^KډW)ǤtSbX䩚08C-%-].ݑS&Id۔Y4#uwf}L\5 ul[R*Uiv&d#9EEE$bKKKKEVəpU qzr7I#ymzßm1=KF.&OH{iُ'~p?4pW蔞TP\9;N0dg342ZaWH4v,D6,N1 FD.iR|F18L_4]q˧.]L4-~A}{r~|@kr*N1S(CA11XEL#S2U6H"2&B`?̇pCDf*a;4ѣHљe6LB 4I#3]١"CL71~ׂMu$*%Cۖ2Lp689A㉏pLpA,?dGgF6wEzNx y#`?h4O6mۨ19[rw0' ^$Nu5h(6^DDSMT6i;&(0DINRw1$ITJ0DNsK4Ӎtm""n )ӣy.9ږHw8 #m4FX--jJ)pܜx5 Ye%"tNq`0 [E iZ6IyE8n(^]jyj/{'MscV{ێ19/{9qy8GFrCXT9fu)YJS&%a8Q)o8.j J8ہ)DW)i9⵪”"VemPY۷w)d6Mi9/؁Z-aNn F 9ɸ<( Wj4j[Kmd<@zϓ痲(A" "R]u7ih"M] UiJ[iJ+Z:` E(L 8& )IJRD,̖La13X*)JIfH$J$4BlE!i* 6M30j)L""£Z7cCJ`$%)̪m,Z00i8i#Hӡ/$}?8N{A;}܉V|`q+II $G>Th$Qь$HRRdJdJ(nPQQ4,$Tᦼ2n{n|1&퓆w?wI8#s'd:û~Y`@}0Oh` '!PUc[ Ti,iQ1D,&-Wd'd>'iюMm{ۆ1k'xPtRssScbmvŶkƼםTάHQmjuym%)0)G#<$#V/BQLJP4yē"=D谍/t> Ʊks J) I49Ӛq-C#r]+ + :\BMZm0>;ߍԒI@nuwsSbb hqFqEL5JL7ԜyʪS*Qnٱir !i!h, I8M2wYpab 9Lpy;mÆe.tҧ^JM`R& Fr K1pSA{:^0v{Jci"cδ;e^)ՉÇ$c*AF0M2"(*:Ԥ6Ŵ 2,5sSt:=Lwdsb{ƕ-l|( ͣR4O~O(LkATfy}ݜ)x˲`0vwf1N&/(dC19CI og+?XN<2M⫮`y1?\jz9 ӑ$Fv?m*8OQ Z[beRJƖѲXJFkkm[k#UiP(`ګiFнwnktJʴ[+imeVYVU6w|Rc v>nnXsd&0&䋯4%" ~sSO.P'v wz{˽QOB^?LڱY1f50s8sL:m b92sÝijsvj2? Q(?Ez}0d=ڴ6X3$edi`-J==Y95άCRT/lcAML#j\7X(n/塺09m5gC:i=!V0?z~>6070ߞݖ<|}Ž2㽞ЕXTgIgfQ1ppDH"NSP7 >TF孆1iTX]w bɉ,|, ~pCX A> ,*_W"%$2|D 'KЖBb3nj[B$xD'OÔ@dUXj> ]IדC!5GO$%S˭+11l[klҋR(D`Z9Enus:;DMpܝNskc"Ĭl*1 mm94%ҮG;uȆDDD LPr.ZE*eYrָp|}io9gx 'x(7S͹Ø=Iqǐen353RY,K%VR1_}boR_H**|I0O}2GNY EEix;mZRd %DBI(S&0S~8pg;hDAiO]J^c^"/BhZ+ ?8#AbAhߣfת yCܤkxԼ ig6Hb Η\` G[ YB৹@;£.'hx 7/X<{=)YJ?R2%<NTI(I L2)R"!2 RF $Mk2$#H&LH1"&(I,;̓tc{p͏2OrkG+>c3c2=ͦ4[Ԧee'#nd:M)7&F+ˇPDT Q |6[ćxj* [bu3N}IǪ(n;JrD`p )MZU0=?< ֑QoDrฤmJ~?ڷgz$>EO2NCZIaaGNCDhtc%?YC'ʰhՌ[>fs!h̥%2M T)uJWQ:S1K9:E:S;ݶR+v 0F:*^PN(wN콦鎽z-)Rx;^pZLMҽcKbIġΜ1iȗ )Q`TɭO2{ IJ#IFFl&"akˈ(%CQ KASYIN:@I(x<&XL2L45#6flY ,2f`Z>r;pŒbrٜOX5pqJpO8nѩ M12jy=7m{vp?TxO Mwf,M@M?&F.=޺µ? ӭ:yDOtS#t↙m _;zIݦ')OR<;R6 #r`lsJOHS?ަO{@Y̹<"Q<˪m͂~:>svSo=ۖ<}a?G'VbK-cjffl21"b$3%de)cvnF޼b)iJj&'PSL9])ՄJxcQQbYKf?0sß,՚LFb`v3:#XE'p41&88澽k81#@DV~YlڵsjlJl$h6IʴLt/Ɵ{hnGCY80&'ٛ3QC4LCw "g 4ϿJmdsM21h6-M xKBi?,Se'T5xMD=iM2Fގo Ri*,X*i/H`tS1RItVFRJISLЖ`0e2!)opdMr?լq(+X2p@sI4817$'$辡GqѶx1⓺!o\;/ʯ/obbuh%^i|;ri`P3Pu/E#|R^g0Qm%G"O=YJbI={*06mKmMvݳaXLyBrKcyj ,,TԖ[5lʸaTvVD"<Mt+SF٘[mŖ}2a^o'5ÂM\c bJ9xv=?$?Gp,C;: -ynժoI"4֒-%$Bl;OM[DmC R)Km8dLj'v8S.4_̚ZOO|u1zǠcT;II90Di#LNާضM2>#ST+ܣzh#MNxtgFR:stCLSOz={ >/G(S;tn>(x)O >tg8|;DÓɱU ', & hr:*1wFVy'z),bDek*HbQJ4 <1*jbxsֻ"zbd'w9tB6fR f24cL"_x)L*0X*apo`X$"2%g*K{=#D%hr˭v3r_߬sowoLk=Cp<x}9SIJSʔ$,jW[?̉ J6i%*[mR B~MQ0&bx4 ;q> Hd'$'؜C'?d)Wxu)Oha sD0e9y|2CC698ˢ jvIԖKUz;Iϲ155&3eto]20RK5H5,4%*EQM "_??ſ:tEzve HR$bAōaJR~o}zQ~aۏ9imٳV/~L&/bxZ6((:r2,p 3Kq1o^Oa)Cݒ{TGͳp&CBv?ei/Bb)ݱS7UlLȲ( {c+qW%ĵbWpN0p5֕Z1eguר$cEEh)"y7n}-N\Dfz!SQlvۖUOM^l4Zdi^?\?zo0k[ʘCjɤdMT*7,2Ie^ Y;QHQӉM[ZXr8ۑ'JY %D͈dr$Drɵ8no7pO?M%]$ZEmXEM:d[L, 'p!Nd9vxbd8*RJ#1g7x=9;@uʞ?>pz+bw`dH2Uxa MsAC'8!N 5?>&#ݎ\OytH|b3qe8yl|2lGl#*xI*O(`Li,G)P`hM"O``dME6 c\M4)GJC8zhrww*)(e;klsIxlW୶߀mqӐL9TrsHϰ9!4RG89s)p95:4`l65Qj0#&82ryqYe&^`j2[nLМ=VUp!ǞyUKU\.alđu.N]K%)Ngc9jW|MS# Jm=Lht[d2Ur30NH$ 2rh sSrå$ (J>y a2#Z2 `*Z2&l ѻua|@SD2һy <"oLH,K|D2"9Lt|R\FXXS(|Dd>:\L !gK$Y0IѠ&1(LCBɀ1&S dO|dK d0,Ird%ē dML 0 %$0K }}|C%rX(2G2t` E>2E#$"_% Aa~2cO/ `D~d ?PޏG~p,?p#?2a|D#^C,?^LabY!D͹1 גIad@X?Xt&;`D[!d <7ݞ}ӽ 'a:vwP/@ {=s9<'z|'yw}wz ޱ%wWOs]ʮ5ĸ{j[*[M4; mӭ[k:zyqˁUJjmJIuGP5K4Ael6SK$$ԭ5K4A[el6SK@kJYY@ZSjjYI EeiYB m-e5M,HZk+6hmKYjmMSK%Y5K4[RZSTĀZkMefk-Mib@DYYA!jZSjjX5fVVYjmMSK%MiA"AZjmMSK%T֚4$TRib@D֚YYifDmRib֚K4$TRib֚K4mik6%i5h$ k6%֚K4mSk6%i5h$ ͬږKZk+5,HAmk6DVkMef +Sk6D%l֚K4Zk6D%i5h$ mKSSM5,HAMږ$-Zk+6YMY6$*٭5,HAVjmMM,HVifB jjSjjib@D5e +SVZSSK&kMef4V6$MT͖֚h$ MYjmMM, "V5e {?}R͒}551x׌iW^!C&CI&4;߻g⵸ָk8.8MYjmMX@CVVYfB缹n_W]jպ]{W^z__]uMiYfB 5f6ia Zk5Y jSftViYfHmMX@B֚eh$+Sj٥*iYfHjͪjSfYjmR6ia Zk5Y MU6, !ZkMf4DJKmY5,IVٵJKm֚eh$+SjKSf֚YjmW)T6iaUeiYfH[MZ4k,@6T-MX@GVVk5YHZST6ia VVk5YHST6ia YYf" ZZK"jٵ-MK$@-YY@ ٵ6٥ Imfifٵ6٥ IfifjmMvH$U5K4@6,H5K4@4D "Vm,!<*l6 $mfifښHmͥ VSjji"Fk6hU-Mi Yݩf" 4D5ͥjmMSM$@H5ͥԵ6 $VͥԵ6 $Zef-ښHͥ!jSjji"EiYBmMi ifjmJCIxiYBlڛR $Zef5jmJHk5K4AwWW\kqqqqqq­5K4@ٵ6SM$JYY@ lڛR$ .U5ܫ3c8ȵFnnnnk7756fl6Z$F8ܱg%R+\+Bٳd&Ø~L6}Jo?Znfoocsڕ[I c9fo 7z"ٳmB}|*VU{NIiA@PE$Bcoл0JU%Z)ˬ٦fJ;URS("BDNKR@B%)hWZ'4A> r`P7bΜϚ|B"\X`͉$_\ 9}W{+j>%IyaiJ\/ >zIR{ailh.x2M!x8q¦s!?A ̣~`Azho__2̈IC@h̕$T6$#nf=L6l7 6msL@Lm 9p |$**M*@K@XҠ >@pl۱l0=RccWQ(U<Ņ G8$յBUUQk\( $C6m4cէcnm6mJm fXfIcg?JٷؙeT4@F-1Chx UشJ%m .%5fޅJ$O^{F($r9ϛ{mM 5aǮJQ, df iHCK)"6 ,HӊQMxHiIgNla:,637q$4l897"8fc}qn33e9Fu.AJ(``@ A0Q nQ;qԨi)$]wpGIñqIt8p'GGwN&p"tƒ(A1Q!J@d1ٻttq'"NǁrŋJb(lq n6Q T\!RUR$$_0BL1h Z"F44DHa(\^ z_8`a>A# # @s,Gt;'9]͎  \ SŖ*EW9^ewSQ=.le~}@-9S q kAF cqqT)_XtÔy@0րRl >YOd#Zf,&S~Cü%&t>hwJ{ny:Xѯ"zLF+x-&hե81qyE9Z?alaWQ(|X3ʟT8+CzNp6P)&G<"}P.QLX3ypOރ/(rV'9\NT9 pmAS.ibhr rw+x+KV)pr9ICaSֆr9-Od!Q(X?kʜBޓ26()#8Ae&$Y7~&{ 'oAW+x JP -¹mAS@vZX8RcP_Sl'"GF,Oޓ68h`~G<]G@6`ϊ텽6W@TC -¼SU|CX΁K@ >/DrTOH>z%O%~[~4tK RLeЕRsd>8H5>PlA'fH'/{tiԏj{@{d!&}}|sSՄΏg\|DGY,pPcG=7h5c}&RQy0.YSK߄)?@?x8bzz6r姀 R'y$.4(ODI2I' yzzcקj֝XH1e3:0؝C-W$6bc1rW99X~&L8b}C zG)ET8%+?9N}%nlVpXy|)Lj629pyp4r3Z;0=gNDG"AX'O8qVSb$NdvbPȡb,j&"o'5#D!҃|Ȉt>zeǴ69X4 V1ʞohn|Ԙ۰xgpt!:R~#nlS)7 O)1z)eY jl`r4c;;SKt,OL\>8;/ x  vS@R yS` D4)> jl+ $_g9@:O-аg>0F'-C헔q)w;!MS@ nS@r'ԮKR.}[\Mœ&<)7h4O]C%؇)ID?))n?=x v1C(_1b?9c9@9܌(4GPGK%%>!c`Lw>?|7 ;Ph?|:`?7 ~!Op;ϾnCA7 `SS'"p; vxew !@./)~rA?3?b_Oy\\)Mibh'(r,MTCe'`|Vĺ+@0I RAX"#E&'K̂3|YI_A dSc Ig'Ob|rq&ﺼxh2GFjI9%q)cjL ڦ]sŲot/b%`O`OD'PID"eưX7|rw MD%ICaISxd;BlDi"_15,&=p0aiq+9ZZuZWjOz&Q'p`7@K>OQ+4K)t촱4_=|T9]&xʇeꜯ)dib]|ST/Ĩr,MTʇ+u={'yO/+C)1v8?1 pURvރ+ʇ ebve>C+z1+@;K0ơPV'W<|TE@+[Pc Xe5/;9\m|T@+j v"1> jn?r#xOdޅ%ò꜏!r!(" Ҍx] MT{ȇ`ljx!(nx ;A9&xuONT KjdGAꝔf7Sُr%PĺyT|RNRyoIJyta7A(=ru)h|q]xkKE%Qv"Dnf=2DIƉşqOrS̞leL-s圻Lp䔔II}>ARs'F'9oCqFmY-=q鞿4oDyǴ&Y3̿c )2s&XwC%Ƌ@L&Kĉf~TB'@O8&y8A?J%G^Lx$N,p4׿J x ҜYPg)ǻa&A<[6Di1K6Tl/'Ed I v܄n')twRh> r: MdruORsdA=nTcA<~= 9 X@.;Mnr`7nY^+@ty.√|`j(r`ރ۲Ax#nd9CDo C#̼z nyNkp9MyOC Xރa{O¿19!Q9(1WN~»kj vNtrTN5ݗsgQvrNMCd۔;joit߲o7Nxۈ)N^!;N GgC}8nA>)I/ >,ʋX%9_%^K1-G%= {\ӻw,\_JK,X/3"F_eIe _2u NBG#ceu0VRf x%EE44KKǒp8³ #{=D%ǛX# |Cz^ѽ'=kzIh7?kP/j?'_;X'j~CP|tNG}C)uv5݇4_;v iy_Pa}uv C 5br'n}CySP/5 iy{s`<MC>y!)6 r<MC̟=s!͂~M@CP:@Pj~ 6 ڠ_PMCS[!iNS?')ONS̜槙?O2x)⟨{4Id:a|RO{a/z˛I?{Q8`Gd^t2=s|L;`H"#.La1ľIH ]Ph4ADhCBGz&382I">hL3F `I'b !"i 2DhC@ID넟M/x[yt$Â#&߉v#!|M ݉'GNH9BN^(Q/}S*S =+ԔtD::h8*(0d(?0eXw'N$"'s~RˊYJcf&yJ뷚:9-@oI _=A AxKBĸsLcď>t/<ɞLuvCvLeU4{L{C9"4%㪎G]<}t?r'@C@P'ʏϵS5{MC̜b6 5~|@P-D윧Nd')i<ͧX'T 2 iy_P0r'j~CPHj)>n;T jH64;'ǵX'j^tSՇ)͂y CNp>e?`b=O~~mYٮŚؽC.RU / W`+Jxϛ<@_V }R%Zեe,Ab:S'0I| EHHՓ9Cx8O%b\NE. J"W٦""'6;*DV"V:Lt}q偢XyQtx Z0"|ģ8.KLhVb1|h**6|Bzى7 VIK ItuH7 1!LY.p>%w__OlXjǖtb*:uo^,QF)Q]fe*zqM 1>5&M2fL،Kʫ$vQEĸ6d(l؄$̏96h|7~zM8mSUV+c*LF怜4 HǦe$\/BZ W"[ tAs=v/Pv!luZ%Q![]EQ> fr3vCw{yދ{s[wC>G^^ C^[AyOCs? ؃01O)@OS?Y9OXO$00GЗ!(RPUUxPpQE)Jx!۔Q ;ē̻?/b:h/k΄OK!1 q 2前}1PPN6Q,uIDQE$IBo77*fyaNJl=ߙcEHRY,i$Kk%4I}#~<B"l*Qpv.5Ow(6;Y%MZrkeO4ҥE%%$?"3d7 `='ٚAElXlr[!!,? ~nt~W#G*2^ MmQhZuV[ER+:(qgYbvH5ʮvc}TuQ>b+$2'ƪ$<͢KZ|*坝K;IglK>ĹtX,'>#`"RL}(.rKQE!~##: ,X|JJm7c&'6Eۥ#c9p1ް (_@SMQ4-Rl%֢nFD8(:>[;ʍ%%Ei~Pawr'\T8Ӝj 9UC.OMT썘},~hfKX<J%5iNO^qLR&Re%n%tݙ8vnuaak[ :vm2[[U)ZRi$mbԕ/d ݰ4=ܹ9ny9A!x LUo*E3~KˈzpVu,-`/r>W(ޫ:Q0KE Υe u./N]3fe,'R{/\8諾kdV}'[V`C6³ehwf^ 7BܺQ`+]FF`._TC(IP"t>#>Q>$OR=z0wT\9-=am.Q=ۏ0_0^`08T 3~a}P?LaBO\"LWDZK0$ >޼۫%0Wݗ,(caV"(_OK sbg 82 ~6dg%AϮ#'*X:x8%ġ/?hKMW lB1XV&pgT]/Z$"z:ӯQEJ(mG7wlS;CzTY F7K0Z;C {pw%o>'>kvs(hhҬK5No~pNZ( +.MT-Jj#Q¸>#T^%XxOa xJVKydq\P&&aLhSX];-JVR)x^CzSaEa0m#kn ^07PC|cx9GxnrVҚJ9r6 O zu(`s iH75M& Wqƥ(!26C3ga}&Y7d 8sr}ޡ62 `,[X.\ `[Xd[ as"kfuXv|npnZal[,ZZۛyFѶ+%! ZZѾѭS{m78r;={x\A10G2ʣ.KN uϓ:4:)N\ؒ3sE 3M7.6Db$8|H9$54{DV> [n[sϿrˊdzLdok2YFCԑ}\BҾ;|G\MoUYK,=>J3S-C&e,&EL5 Xg0oKأa(ˈ}(.42JC)|4dUٝD'm;3sk]!iU 㿇n/琧Cyf3[<}ny A0"v@x> ~(QIx8| z= gtOZ_5IEI)f4X/8qnSV8 ؕ:QFQzk2QIM xaO*j#Zה9E8KOmJ. ?ٸ((E00:`]%㫛  6NJl$Ǩ@5?wOP&'?%>Z3 Xc )M:~~141H3}>B1ִ1ٵ2 ,/'S>!2McOL$Lr(P^QIy"Zب_gl^=4(55hզXcMgy܈N$w'NGs'wrvv'wb"q;f쓧t'$ݎrtID8v8w:n:wIa`24 4Pg#D8;:'Ӣq؝?N=1yn& DQ.;wEL od|%Ɯ|/̟/yfT]Zȭ)ZR+"UqU TC1Sێǟݣ1YrFT9y0x<:%}CCbu]uBcCCڛt e01.рYFZ(WsQwh8c>1)=8^\>a'c)a ד ';O\Ox^X^yq8YI}7qtgdMq6[m-Z(Hʥ{ {q\|&UJY221ͧ=iRS{-&4(pZEDG Fj@Z7 =3}6B#eszĴK;=,%gZH8YLwHլ"ɓY2EfOV`hN?4i -4i ϋ¿_"ɒ,&HN+0#9d&HVNedR,̑d -Ň?Y&Hd2d:Ld. Eqt>>粋}װ]>C;,giʌUFwQ33s׌}^R<Շ7wZ,QD$p'CMR{ZS~iM|R6#&ܬe4x!r=np3cFFaSFhNG#gA3 !7s93G!t s0`s72phnCrMu1ט,u:v;#쾍&~qnMLrj2 71o ZM\>| h!~ 'tc7U+q-uS o7H?2Xն!BeLH*OI.`{R'Knf-mǜY!#o@~EHt/}CEhO%/0f}0C/oTX5ZZQUV,6/8>9:wG$v%J˧ӕ*XFH,dF\ /UL'LCÒ% KdG|7yOJt&`cK${!},labQBȰ4Lw@=)Lߵzϋ瓛y潜f**Ǵ^ܜiWa.jt$?b*q T>ܕD* e|9Ж|Q>)ytm2*2T&C*;;)}m[nP-Ӈz} ~.^#|a<7hu!gsI,rIyg8(ž]*>Iz#TO|<8tk}=s}RnęE`^ڪ^1/Z~Đya۩L U%punU!yDn|X JTɭ\X˞74g 齍& 2snv^JN=L)$O((\-rt/,piԑ6k$ 'y$$lYD0|b7cBd6$X1A<"6MQ)%J)`_}Cva=ۈSCLcܸӣHAl&QiUA4TbTT``4 ƆM0cbRc@ݍ1B61 A4 ΍ Ѓl1 cӁ0^0̋;ץ/^$ܑ>]`+:Q4QǍTlwSۨ-37"?LVr+"UC =N_=_.5Qj/F!?說1 A.bXW>;3akemdVEmڙ+1!1Y…O0<٣[\V|1_%H )? DzFRû>>}9B=S~A%5pc ꇥ#`x)Fjw#~"jQ/bqC*:-!2.IO?a0 |%Ņ.1m&Bd!b\,Q?Z=)קb:˟h5$‰tǦ6N2}S(X j%PylGjG1#(F S(M99)e/p C#huyˉd{FRzwqO!F#ϑ(;-gR|UTY_p2^byO|Yy<;Xa]qs>{/'/pKtɃŏKČ93iWొ cb+TUUԈIK&K,LI͘%Rp#Nܖ!E(Ifɚγ3v o>p 'JKchӆ?(QExVILlJrx(Q I9B&>E*D3yG{DȔ>S줚*;~TLWwEYǾnoݶڲEՕ@,SFZʓdhdmkI`VSk3mrU)Rި[cb݌.F!@n7~6b$c0Ѓ<=GVFt݊mSaۭJZٴ$vރZBA f$"ͷ\oXo^;ٻhjZLȴ٧'tm$iL^;*{d1 [ct87k;=Zy^mN'xQI'N4#D:ZS>X/%b,\K( U~# p JNEoUhZ5$M 11MVg2i 1T, H^p C"!J8I$eMuiUb,*U$vf{p Tz?(U)W+m8FqA@dqIil.G"#VRD\JKClRX`IFYkτНOҬq(^ZgLv ]I8s&z>ӏ1=Siia71)ɉ;ԱVc<xD>=lʜla&b]1Z&dEx%ptUUjMJSVUפRK"It ~i*ZY)ܼIYUN3dkSTqp/_n)ZZjRQ('OƽM0z7;nnHnF<yA>;a22e0K]di14d&HhN~,hxuQ8IOJ#pr?2Hڑ;?X|:O~ɭ;9XYG~V^̆IQWZz$DbLGt@ֳ# :KbL>1!fy3# Y\g$1i&D&dɰhM2{L<1Cj7;O^W7x|O埂VZR\UHF;imMY$#q#16ܔ']I[\۶ !AmM ei88qDX@"F4G8mTm -RBUnB'mK#r;,7Y"Phr-kN&IDvyrzr.$r<ד4 bZun|YR{v| ݍT{onDj#} lIM RJŒvu((I扟8G)_Jq1~5l? yBQczfoBC7 uɗ,,r#z"b% xb1^o2iJu.)}(J$ $<ҌC <τz)~NUU+`Ņu-Jf7AEe Ƽ~^ 6D'O?w<3?55y?L`UFY-eZ]$K rn@>C'Zlq0d(Oε\)۞''Kş,./& ,^ONӒ;yrbw.4ͺƁMT*JPYiA5KaDaUUħ$6'da7*1@hT`TP `/bY5 &@`-v܇@ZQElq>s95 ޓ'M Dw"tncZ浭ƛ4"b`@PJIT"O%Dj6*^֢a=ى?tL?y*N;snE+)nM#Ip]IlnMYյP+%[sYmÜRjUYJږjR[ZX^d~ȝYΊ;wВWoI7.\S=OU-'L~.F)h%0E+ ZeT5#E-ǽt7uiϤ[LIrm)J G&2~ Ngޏ?uRUKjYJVIVZ,SEc)RI0O5^ӷw =όB?c05S=XN'>O;tMkh4JԭlN{04j%9z{ι'~\f|+"X4f9g6?^~x'h!!=`- !!`O3@3B9֏X5c^}\qx0֜9΀\*ad)Q)2OLz0zK(≟&w;lϙ@6pO|IO|idbOfL j.` gZQTc*%Syhp'7)mC&# 7O904RQ)F"chO (FA="g95 JQDDDEh@xLiU^u̫-e )IՈ&2QܢH.4=NK׊ ,ZdŢ4&9`/J=8x>P2Lx%Ix$ Ĩو d0F9'N{y0˓{JR9ԏyv o |qN T;bzbif2IIݡLȹp4n} DD6@ QBRe3Aq~/"s^I\YkZk,֭(eIk=uZytn11dds#KzP8蝻nGg4_?UUUJjUKZ..w=_T;~vn݈4}|IϧҎ./`Da/XE=PՎğTa0p!l8tDy]7>ã;I&vg|=RKI<Gan/TRRRb="qE'r|fQEoF84c G܈ nh_>| \ EO|C0 lEꉘLFF?ϒ3iUM,uMb JC,r$1LF|D\n3Bᔘ41q<|z$\*RTJEA226of~Ed~#;>f8[ 31 x-݃?r?qwŎ /󥏒'5yx"K4C1;b_&!)(SfYJA#ʒLrf@fǹ&S\nnrKKJIGpb&d? |yԬ&a2̲z18:^..(|z#w#jM6Nl|8D_%FKٽԡ0$v1,}3&M,%keֶ[>hw6Λ2KުO':LCXx9};Ͱx̓o ΤHS*$-Xm[go&;!?i rF&rcx [cu en7y EB^ Old' s?bbh!R*`?$t #7C*<ڼN| ٕ+UI!-khKH*JJ6:TkcEE`#|Xa%,H٨_J0FcKwE ԏ'G[x3DXizCІ- 8ux Sh'cGb8 Ǥ7P|&;6{"muv;oɦѦA2tom&<^/4͊qm'#ZG$5fU= ~ŏO>=tb#t2D2K0amG3LHgpҒaګr I<|Qܟ+& / ^LR}"vdb:~<];Gc#qK{1=wG4ƖN9X(EOz㪪}0ffp*VJ}'V?zJUj}jR^]Ѿu}^ִTNUxK2jYhg*>*|ۑ& s_"Z*> ;!~RqF0 쩸$FWrM;Lx%X{}2/kJ$E C„R[l-fr)$D م,⮕&dV2qz_UVVC&L7A|''[D*X+Ԅ_.Xn,kO^V zXzXb=!7M- j9c.4F -U%kUJI%ZJSIZxgwsJ,nDID/*}DΦIrʦJ%U$`<87; u |I!ͱ17u>i̤I%H݉") '&k)sRKU.X'u,KMʉI'w\Y5eş\s}v<0UV(a~8 L2FHeR])ӜTG}~(#E`<5Aƴh".%0NJI|caH?4%{0uD£̧ 7B2Dn ϧ 1Rŋ7 GW@?p"4L$pR` 43O4C )J>JzA t9aT J%E%%6K؍iF<rFd DfTVb[77iжۋ. 6قURTg/ O2^<,Lxqa|ɊJ:~G|w׋YGKؓ={4KOIbP$gQrR.3䱻/_7Rb=pپn=<'<('I3Bw*F1iRF!aӑFKz2ňHDѕFhVѦnn&hv cgFǠLZ8dzZPBSXZMD4vK[̚TU6ҜJich4҈bi'^5/Z8'%xnnvuV浭jX%*4,ZDIIM)i 5ՠlK1*rckJFZ)%% ԬUmUVĐ0`1Sf4Ui"("B2 وAA1(DŭMMjM01edZֆMim3Ul60m1KUn5 @dc+!Ariuƙn%5BԕUZʕ5(8搱T|]%vܥ# kdVk[5RыZɹ4g5¢O2O0 7M}/ ncjRKU)IW 8*p7B+|퇱 (v\ 1iC@O0wc{G IRRN}ٝ;}[ׇG,.BK .厦uЅ&"yS& #cT9eKSP~94F<29e8 *zċ^" E!m;C~<7Rɾ$gN甓ϵ5}I/ L+.$g??OtiMf92M FlI|1)cP8T=M7Q$6 1M3SdFg 䉐ݓZ#<6C#!hof6 FJ% ;^\Lh}c$ǘVbT1F~Zkǝ;EYe6L$wDaT"|HHMTx}W$.z>8^w6$o/^:װUiSM%TDYuTƚlO.}=nۥD姵-T`K Gwq?|q2C>PLczDu@''' J%|{О&j1$H &̘L+dN(K=1=III4eiJluTUUJ])pI$  g  !~F|ħ<7ULk Hh.k3G2D֕iTDhFocv#ٓZ|%"˕93AAƅ+֓|b11PK|\80 E¸ $|{ϛՒʕ;3M O&u%sEEFb4D)3 OvGbETa?KEKҕ0K?;t8xd/J'܃#1Nk9'gm,VɥBkRMI˶Y%(LXe8'D$d$\K6du\Eî`#Fo&9OOzL <)|!(xLr7gYp3kI6`B'DNH09BnVk_)7B)x(eˣ;QK&!kkZ%[-4ZjI?o.FzfmɖLa |irmęe,w%?1EᎹ,fѓNPԖp$J ,c6҉zd^$L2!O$~xa"_xE$Tɖ|tㄲsGe KYgJOm /$ԑ'5W KOT` 4EI%Kx^{وà O\t :Qq+5rd.MI̩03~i= d6hIJR"5F""D&o&'yyG KAx^(<7p="4HK*}wqݑ!arhI,Iy./.,> ܟu&0݉"nY1xfΠ/U$_Glw~dF-/I&.z@KQ?ܗ|IKY内>cp=w{ 3%dD1i* K՞-6zl5GB5r"#r).jlh%͒Rirɲa)"7*0hlbQi\tHj!d.! FJJJMccTHDФغ\yLgddB$"`h_Z/ 5Xثf8Cƈbѹ68E*d!W%kj]o0 62 R602R@`i.h|fiŵ2YYyrY,;g"hjdɔkq6%$r)"RYn]055HDpF4Ct\bQldM`r_#nl@f Z!&3G!b640r4B \ppVƎolaΐ}/yEj4 "j-JMWCBBn1 8ғbɱI 4K҈[.,4M&S#F% F#EF#FGGC*74G$Tr1,DBV6+SP&kfM.]5)!P6- hRB""AcCEXܜط/#XK0l4.ML%L&%BJ1 hhTh8C!r1H]."]0]5.MK-$ HL&D(к44MdudYɒșLHDB&L$"d!STC0g!ᆆ"h`94pph 0c0tB ܉ KMLRK%&S.FS# FYlK&DR! rR橩ɢB 5.LB/y-L!sDu"DCDdXPa]oxPh2#c#iTbXؤ؆ JLMDnTTr81PPÑRdG"%%.&dL%͊H5L-&esBcSbCTKHD55HD!R62 Fr)u]M JJM4)))6J45HDФLHDdI$"萉ABhIIIԢ$M DL$"lj2\jRB&BdB$"B%Eԉ0RRRY(B$&Œ.h HDɲB& +ɒgd'|xP..(x\,b­cspdއe7  s2zz:[m:,b[ڌi}$de2٬udrK3n1SG*h&ne&; 䙯#e-D-lJ4B'6\zBt,b 5,q3gFSc}(8w-DN;%.njhnh}Gcf}yYL Dh2:*4U.__ Ӌ30Pe3Wa<,t+yŀm˞lp=%ɗc EM9N=%=.·p.8Nwc-L:U@d: CsR勒:(ÃsSU 3YLKn^LK;1KXWA>-%=`)CDu{a v97,pY[WV=)M9K,$5: &GSy6w2P& :!XnAɓPC@u XpXt(ppBZ"C%L(CA DС@{|fDrF_^Ma3Y塔tg|284{{h̍M 7 KC5(]Lu2hC w%hfO)ùF8uYɋwCrnnP@| x[ !bD{ܭ/qK[Tҗ v5dh)e/%XR(Rђ{kDH$OdޓNۙ[$$ I3zDg1JYٯ b?7wVop)R Je]T晲/_2'% Q ɫR L CK 5L@PF0av6J 4bc kpKf%Z}hew}Ҵsvo!fXɦ+V4LŴ)M1i""RىMU)D$D[L,TL4RLMkDHRZVD$%-$DUHɲI$UDI2DI"mM0I&H1lZ ZM24I"$[[kjI"BM!$$mMJFhDh@IFDI$I$UmfRTI$I4U*ٴHmUU$UUURHLVfFՕ#$UZIZdƛ+ZjVĶV`UKf*I6j*TH$2-)iF$LQ5UUTRTT*RU%$JRUJT6I,T!4Hm"DMU -T$M3ikF1e@;Yh,y%׽<OHL[ X.)X&5,Xk.SU.X%֒ WE>pa0w]((Mt!K`-Ami88Dnռ#LH7ݳMnc+M< 2dv "HV6T!H8Yirw%66rK~Q4"w4|f*G1U\':Tx<_=a-3r԰3!LA\@YhFMlQE2B*KrlY] n n صX9vNﭳO\p7n`8 - 1yL/ ,Rv;HE :wA4Pdsf FB>$jA F@S@6_I"bM4/686MK`BFzPR Whjd pX$DsO=цs*^_}>'ГS=OO01H ~P4IO 3Lt;0_7 L?Й>}x$ @2/\_]IF>0$߇(O9ˡzCFqE'1/"cb>L20 I"MZ֑Y[RD|T~s؏_>`RMZytU/=ynؑ,RUB4%2] >a`tlIʥy2yOl͕ E%En ލعxbF:#hH7ۄ2$30QFAC_hAD{S 6g1D~BP:EH Rщjʢ`y3^rgyp:ᙜ[1 G3Lf?lΞU.(>.xqhcL\l{@&r=m@<|O[*KI,LfbL{՟zU8R돪Ϫimem,B!/tN.A<y}I-21h֏Z<(ff7rI+Ô(ƶwQ>PI$_8#>'\-Esqq.\G<|c-@G,HLr䗗ȲɌy*\J:y5"M߄DB\G= qq?@14g Evh'}#,IÁ{l^Tꊔr'6EH:"\WKЇEf%,}Hgѝ*@znAbc]{]Հe2c?Sp%Ѵʔ\L|4cіsP(u[aa2u1o@t8J"P.. h e _K BDU*$R) ,3 !3@;9Q?/ D'DщB%XMњA4h&Mщ%4bhщ@ 14hщOS4e F=tOOO_wCKr&p]CsL#M7J<>)~c(ȔIM<ӓ㓨2I$g4O`if%>iKu[O9 \ݥH&pҥ8W rc|xI"R<ܤg߉d8  m|hOZ)ZjKjM';[[ܲhYF))1a e3yxjK̸q4&Qt<i[;e.O IbKKJy?B_xACϱ ]b7Ry})iKľGGtE߰Ɗނer#TJU~d|Fw>3iRLΞSm˫q jft[di:7%_?hȍ>m{gh3=-.v._J3mA8ShjOlYY|T]V@5mv qLX!YBK Fs1.+]tn$DER QG>|'g&tNw6x @C;Ʀl& 0Rx.CM ةv]LHW u8;A:q"8H@%7O "n .~\ hbF4hl++awDKy]9#3 D hDv瑸kY&8e衸 6tQذ|P2-ׅp!-Nνo.MZLa1a\/1 0BAcG?_PgSZ.Х'pH*/ $r:7_ :d/U-.Nr J".Ł.ٓɷpv7bÀ㎎nGzwNɮ=T y?|=~&DH䩣,̤zF.-3i/ J.\KGd(Y('!Pu>4Oi(fT=Z7^^H2N8A*Hٝ ʑELA#2 N>J|h@L$Q /MɈF8¼ u@pEg;N Ӄ83ـ 'p>ٔe/!>Tg'h//`)EV7rOHzo,N'E7R/$9b.r-k<Jt!tjtI$:.B[҄eE(V+o"ђNΙ^@z1֓5t?Q<@cP#hb'L`>&tN5f9 &5Micnt85$nX^%S{j˥]0Jc\R=CJs z9</=ssSy~jJy\9\TSXo=Ð7cl$o%6N4 ^8SaapL89mFQcPD qqÈ,Fq0p\\a6ܛ(@&hBl4@01gC po~^aIekf0B({`anp*.Z 0K|@X ɗ;&DRA%AV]7u6:( )hz n7)sSL6%+u;!pNq&N{ VD6!B, w%a2B.Wt1zxZDwE(]tZ Y8TYTYٞeQV)TMTבvݪ!$pL. c2jpDHЉE, Fha]Q wN3)/ևHXp!7&2b `41wLIE]BM67!txS 9 0@X75XXJV,p܁p&La1.@;:^y^-K87w&tG;|g$ќ 3T%$F71_UHj I'7dF[l H hYrcDQxc&F"g2_7{oώT+qũZDqu5\l+RIZ ğI8t]:i:VKJVQ[$u"ITtvbխ-UoouƲ,93;mE4SDV5U+G}w1_0pbFPHw\f4nb0l,F_#< γ7^̩?WJ֙[%d&V^PH:Dc0}vSkm 37G& >yD-+j& uzq,b"Qܑ/r +DZ[qib]w ux DpԨ$8%е(jYAp8)bP@rSPBJ%W2H[tQd3([XAzd"#N Œ#p `Gqz  &6]T)hBdѣ` R eMeZ7d+`2hj 47ĝ6ԋ.n| Z p]FA0ݴZ@mcܖ%-R\sVŪmRĐh7%Em@HS@(r X<Mvl/]d R,(P :c bk{?92'xE1Z7$ݒu9їC:k'5 q'N[PI7Izb23bM3,{ņ|&P|`d_bhn"Œr\M5M:O&oDDގLhZ;5ұz#yR{1$S#8X#OofY: 쉽XED6}$݉&f.UIP#"Ɩ%-4V%Repz\?77hF9#$2 jF4EĹ( gכv}m25[VY4U,ki%#F!ѷ{g?Z"KAHx%29.O9+HR>9T,Vr)tGbPJKجk34݊,I|b`-+^}IFlO<2ʌ1Y~yqQY2&./?/fj q5LxrL,b(.xOٷM߈FMI/' 0tyĒo%ܽ3'"a PGS^P"И?E<a(vDHKϓŒfQUO*6/ qbO?f΃@{;>_VV XzB'[OE0. "h .Hn7\.ˢh)tS%R['X`H`J%,  euu7 %G"+`L9,qŊvøy Q p ņ, 6 vV@ZxwAjllUZ֫]# P*JQ\:.#eݴuDun 576Ά.=BLK :@z"t PlR s qXc2f@/@`6yyv:]/1wpR_2K",P˙b|S?\yk}*#bC|ez O$*Ki.{BtCF12LNL%ԛ?;PPLbވ%qHR p#[:GBVx%:%4w=V\LI_1hwG((E~ yvT+edD"u'< J_'F|Ʃ*KK|\qFB"QNxu}J!t_%ĞXv ؉3Pόsx\I˒P/ @rQb(&#GTLa>IhMH_(9c9V5B0ʗlK%%ȶ" i2lUkN ̂7iCDC'dgsiTZ&dS ]'%52Q)L_=/v1~/hͺe[k}*:;m)nH.~}1ĝO<(44a۸pnGjD{20F! .M)sKG˄`Ln&Ip`v]"j25_D0BLD9%L=p=PE[ZC@:'S@vD^!}( QA8EdV:R75 hBA`0壆GPuyQc%$,O5&tZ2 BC n- (`Y<۠@d<ܯE9]<.南 p^PPUIt2O!xyq i~zH鄧t.1!e17f#F8G4mź?f!J .nS z4j۪4;4:q(Kc!Ecgd(OY9%-Z%1ħKZT%3 vB" #;ŋQXyvx$~JE|XEu>40Pl8F.F ;whڃ&䟤>;Fy1"7P%M"| /S #ɽAefƟE..?7d  t9"utWeUsӹv@#%HO74=sۻ[crjZYX;X{ )Ct 0td3Žhno"eR  }y4J8HjY,i'+gMIq ؋&nKqAĤ&,U|$V$rEk>ΌLx0q𓾒h$B[ϓa3OTrjIp8Q'TШ zBZ{K{z3VQE\TcTcQi=ET^+qߊO.h:%~+}H=% ͎L5J;̇HK@>u4/e܄zK2bꥉu7[ج^7J;eLKُ3'58nMd Aх1q5 ߙzgzs LMFMv8pÇIECsgyL 8bb{;̼٘TBj}y|_/s9?)mvmVqh&PYZ)NHvZyғó AfZVUofgw=h[Yu5bphZ-EvK\J*Rooݞ=G}G,:t?ޞwz= }4Ө~IiCO\NY9:m6Mi NNBɣg/鉧~V^^^^^]߿FC TM{pfY5zf8R4 #}"(Lu:NffffffffqbŋY#: w;ss9^za?i 6JJa"Ah4Aii6JTUIUTRVU T}*X(Im޳ Ah=9ufȢK ,t].06D|(V 9{OW KRݧG66M鲲Z~_6Ӽ'OcœCIi4Ol^0&SKim6yUtgWؕ4Z-Csw;s9ׯ^})ccә?f?YyXbŇ&Y폺upf`㟍EeFQg AkO:dh~( hZ-Ez$ވPG;UwӾLXs{=QM1ݥUTB)2mc}F3838ο mvmG}Gw1g_D[ɶ}龷E{&@[;=|0Dg2b0a_ ZA~_Al||||`3Kee5 9yGz=MEhZ,8pÇۓ o*' Jf3tz=Gcz1rya7fxL̼Zitm6Mcŋ,Xqxc8x|$$&oֽzL{;g g6Yyxr77373777xcv߽Go(&F~Nf3s߿~nnOm>εbv#CIjFF>F>FFF<&Je%y8":a6;&)h4 A9ctgDgbq0 Xl4 2 XbŋY8pV7]khffV^ek5n[sebؼ!&Ag y Vgibؿ:˕uUUZ)n@ڃz$nCE HF?)G5*g&}ޚ3i֬δYvMm6Mkp$i&{=gܻz3cPرcgsՉg=pfeeg ϻϟ]Kժ[=2󟎀|Ayz==-0&dtr8n.{߮| H:ӛ #Ȍ w%vx4p24455-꿗WjO3s|N^mT4b S@ÙQ׎oC jL&ōbeIgIXfs't\so-홠 V{Ý_ŜaS4ձ,cj)Uɬ5n#rĘٓd㏄xrs*sO&5QdRt~ws6[ J1]w^PٱlٔiP MiޓaUa/][ cpǨMWSToa ٩d6&LJ77'0L^\%. O AXw#J4 ˈܛE(2يf3.z33#8s~. V9 Y7Yf535ǿ9flUSL&#=EXoVh<7o!=_ZŖEM3Hfx Zy\]˱h ~C{ƄkܛDZIΛ%OGr'$u'by_0S!6~/?͹6> |7dYنLQr~2'԰M))zqG&t'.t'p$8e쯮/ / g8qi)1]!9f$VyCbX2 ZgQȹ DM0i5Z8a#k`N}SORQ.9f׸!r^;X<˖5f ÞRb=tǪ i VUvKvLKgw~~p=~ᆭU67Qݖ,XTL{bLk!ޭx;lNiL +C0F={>@(H ԓuskdGf}DWu.Ѧy3tΙ:t`x4SUmiVfG.}'7dQqٞ0x3}5Fp4L{DhM^'D2HZelI2#бpirDhOI22_05z ҫ7,Q(3`jM>pN;kS1GscX."ěpZpԙcJn;}r~eiv5r̽zl<5fYVb⚃Pi{[[96LS5匩qRΧOU){6!6(Θee~RVxDb_̟H猣4N ݝ͓eU+N5PO^i1xklf3psM)AMihf0ቷLiѨare =~!f;IdXZ&W:L3>3A^%,dxf6?28ޝ9EQFksk4GCOb|,gth8,^_8jfVlo`b5j6flJę̣`t{/hXbS8uf=b3FQԖ<N]e싚chӱ|ףi8 M23GShnLɾLC{,&~dN_Y1FDȴk=3qK_䳚]-WM>32fHTh߉3M&;oؚr踮ӭW|]v8Cm-9p /W8'~vgq^66蚖wĿ𛙃wu۾o[0|"Le^fiF9dkK 5k~[ 5ҫNls pxq'4c>a jw[cmwMk7'8#=Ex$,gvoRr^8\k aۣg9왠8E]{- zW\GM0yW SzoxѾcףۀ0S}.㪷 ϼ̬γ%MB'hL #$δrfɩM*MY2BhY 8fi 3\8y͞TŎP1gÎdX5Vk (Λ4L<]$5,Zֵr[l 6hYS QjQ2ivtlӵo>gLL r0[H_Ň!37]7rfdy&1ڎ]*L%I/Mַ{C4< 6;ᜋ*sǨ:s⦨aB{yL9?g<@ܺmʮz>?<[>K>*kUZkRUUj;xUݏ0̐"MO[zy5*-o-=NX!:r6ɏѶw?Naƽ߶hv9 wdg3ۑ:5뮫VťoJMq8Ix':Iӣ箜O=|O_/Ka<6.lS_6o~{fj(=aʍgΔ<:N18^1θMGa{N<3zog|ݳQe4;V\aQ I& sNNtϓ2ٟA8j~Gǿ[}w?dax~uWO&%[͟kUSbsv9p/վ7/]tČV{ѝ퟼x3\z~"9;Wjz#=SWn^xq t3ӟoE= .yvSV|&;x#卑SӮ^^Z*ɣAh̦a iYi[d)Y44 :bߓq^vҍQGrM/@Co9'1OКWnvkݠȬC7|qY~g={gzz]?Atu]s~;o'<|% '#rEq@I #ȈӒ.\W$9s)ǣ׾?d|aЩRJRI-ZJ@7~/Ϯ:,Xϝ̍ofU\]v鷺v~8.k z.[Oʦ޻xc{ozq@M.<;h^߫yUYp>?xtUv>FftSץONC}SCq&Fw7nѷ⃪SvRm[zCǣo\?8wFp9#=skr$=)n|3"MПCw+[<[Om7=7>ԛ' Gèmxצj漏w گay63 )a:g.L.sj<}\b:b36 ?Npg?pG@VUUUIKU*W3۞b; *c?;p ʉm3oEYN5'qF1O=畝)a<sbig}ৠ/G?=l#7O {I<)UY"2&ReGnZ|ewGtx>|è]8$uϧeGV[fk<'rc ˟ 3ёs'y͛UkoF$CNo'xD{nR;OzkMؚsv3F}˹IeJ85gHս!6I wrޝЪTR*LI*Q-Z֪EQX?ps|9 1'w7ovgSȥUP*MY-Ok-ՕEUVTUt>ox%ڵ;J[|"y=yNe=$݄ztonC{=<( mɽ80ߊ?⟰iI3%nǾ%*UwPҮ}W|M}{{v=.7m\ҶƘ3oI}?h0WZl/f=q2szIn;I.z8BNI17# $ndq$Qა:,+i{7(IӉ<8(&<:7G>*>xddD͒tYq!1ǁ:3<36f4oݍ,','''{Iv>/*y^^(?#nXYu i9γO lZmm>$o:vb_l|Ϳx:DrDIiԊ)}CθO1ݽcO ђFclpUq8[ ţ|V,"vڞ OLWZyKƛi&DϤNrwn1nxzd~dܹ3x޵6|ȟ0tT9;q#v{?25_3d8tA/oqO:M '/ܣ?V< <^@)37E[6755%}=j#aǯexڜ/;65. <85FZf]V[zv6Zd"|Nß駮 QS0{ѨNTs~TJKsݱRUR>ׯlvxOVwL6;{-u \x2rA di& O|qݗävγA9SO^K'9W;AO@~?ydn,s7߁u_nbUW7'> E87= #Oq⼟#ULw~`/UiyNzݥ]wOO<~zoxd/}/kwÃ[=뱹Cq=ȟ HCѺxMexo}ΦgUn%*8oT~ŋrb2w%ŋDkg#[ZW=:.KmbO=xEK-QFv?@ߑO{{kXg5\e{qVb#yktsem'_k,q<{vO;|w|GMW=Jzx گ(flmjCq/܄s/].M6ܞϝG;kGbUW!lD`TZL1s? AbrHy9}ʉʼnjQk:R~ 'qR15.4g^5'5Fj9\ yrQ1Lui h)FϚQ4J| 9>uoSY6O>Yufvkp\/ZkMi|+BHhD&еDE6 -d4_lDMl&8sgqse%XJdY)5?ssgmvǾkwX7gL\)_}-2'4ǹ{wa{EX(ƉwCz{)H|k[D!5ikܽ`{-ri4ƾm:}v S#{l6J]6[3lKѲxl\I8 Bl_1nwqwt_izOx?my|VW lU{:\|ֽU¦hpC9 EWWOh4P˶V>NUzc{{cGjYn/|]^:w ^ջ=wW?/y]Jg9xVge|iu^U5^L֛-od]xb; '}& Љ{som5ڜHD{#k\+tgӝQE8>M~ #œ NO|BM6MjOh<Qqwo38Q<,w{NK]wTֆLdpO1L0g^6 Μt!{O}L%9loX-g1ݷmpN5E>:>jyS1>Y6C1MC뇭5G?Xc|e`ϟ 6cN5mɺ'+׳qs3sZS7 J!Aϧ=b7#Ȍ9tMo/u: 6ay*xu=];Nqh2p2sY#q{=ssד 82,n㏶ݏ!޿>{B'ߧ"ĢKD韪61È9mI>x9+]F5_Wo-G#$ /ڟK,sg(&BPc>pDً>R~n6~~ɏy;5splvSZz.9.-:sup7A vݭC:%==qLό@t'"'h7[+Lz tu].pxNw`Ҟ\\=QɎgNތv܋V|wm>ߧ5n9ٓ8\Yxw'M-nFtIo?'m {w juO\Oz [*\qR18c)C>;[M։oXGO&oI Y)8~O1ߝYzbŋZexew/`=༝k'MV?ByFUU{~TTIOߖ#uS&GvOrǑ5FSԇ.9Xڜ}QܓdeM4oϓ'=<93YV^pF};!Ž]K{cr>/'jGw>i8НaNLT߽˞/ym 0*O9o 4BsǾ h<ƜȜ՞u侇 7Om ?:ɿ.kbNMy>r&4t\6,Qg^g|Xg'T}TB.<$M6O%rbzWVOZϽ|6>*wxãXb}7E39Y>lv;Gd3p2һ6&D|E@o0vnQF,r9Ӛ(ΏOI= UUUU+ϲq;MUwIϝm{6ITԏr:A?xjO5GVxۚњ}19BlO$w "zSbvɦ48uO5deQ=Qﭻ،g%z+q=cuMi&nF^r7#r7#rh HeM6ƬclmQ=-)Kmƺln>GncvuUfNhfGH[KDL ZMxrN*O~S#|&ɭ{&oUpxDtHxx'&jMx_nxDy?w!;y;s }N>I;bgFc&C1:OǞeyOz#9?N`r@ǫ&IGv4Ǵ8_/i/,oIϏ>;WO;v}%>Tɻ%ꫛ?a>|\o^#2v*&qc->6cNPO}&QO;\={!qc&mA;j:o'`z36$̏l Hp?3;Ngw8|sIa8fXcF֙|<2Cwz^_v?sW]j;Z,״3ߍsԍXw`|_ 6q?\=Lq6m0*pxӷ69FfuAx9#rjʜiHy=eӚ?ZX0edceez qgh|8-j4vhsY͍s:b`#Б(K 4GʫZյ'{qyL>~;7C1^A:=Ӵzrv:99n&W f\ߑm:b1%Xg ŸY4m?ߞ<,TKgQ>E]ch~-mYgHNM+yi}=qezqG: vabŏ*X3B{|_:;rǛ1\U*IRR)UjU_8qMI٘ >1ѝ ͗p荳fᣓX{5=Nr}n7PNAף[UwAv <ƶ66656&fqĮ 7i-]6]3]7NVwIS>_!pdyQw]M-Ɣg  bٻ>yss |g93 lZy05 Iȁ S%SS{ fxVN ?y8߯/9!Dt pUg 8]\GO.o?ǃgn-ɉ$QE1 ˥x\9t,'JJ=Cq,q'6x|f|'e&RkO04 \OW|2qjM zu;|9Xxwgu=_)Y2\`n䏣8gvO&}&G!X|Np*q',p==ҷzS~yOeߺ/x^odiG:MzW'=NqgKz-.oA#e>A(Ӝ^/xbNI6aoׇߊV95 Gfn}TG:,xqEŠ(̘GǑȾM7BqZ'cz]x=fBN ;ǜ0ٵ<ƞ\g7(G/ 'i~PI|<'s@z3^Z9魭ё̛A#^tZ~ޫ7wjSx[r14Z91swן|ICCr\Y1K<9Bd4& [V5c;ksk&in&xc x~/ NYh5ɚwju{ر{^Iu^tݗn@/;o{` 5.2kx^qjoO-PNѯhenuJYg|#AOuE/TUIHZJHs*x37󛇔OMq?2uw_]eK)(Ԛ4XMfǓ80w8G++W*"yNY6ݷg~_OhT M|~dSZ;+vﮫ]=?3ƴ߃smq횟OFܟc~xs=סW-Ηvu[KWc[g;]Io[n|ttOU;[vߧfz`u:|NQ+ F.6h ^rvr爛&oAGr1 7-QÜ2nSLh9/-󻌞d3{}-s[ov˾kZYo-]STH՞aVy؍ejI*R)jU%SjIO7{omo{M#Ž N=?`vJE G}. V\x=Ҽؾz(S"쎠M8g04.P{4|# =\v&ގ؞KuֻT +FѴp8CDp9zUT9_^Uzye'<3Ujx.>Ψ<]*kj뺇SzxBt)!3Ǽ9=u8ޜs8q9p-pq(87s83s䞼g9c/w}O}̦yM8.Mo;zntYNuS 7tz;铇:00QKp^:XڸNT 1čĜHN$Й'8~]UTxYy~ }-qn͛?玍fw;?w)FOtݝꆵ0󾏒}BP3dZy8S%J9J#JC&|GdL놛j(P'|W޻w=cr~yL٭Q<}9g*ypRpulHnsNw9ZiDw`Zd{?a؝Q^/t8|[[9 s]%JQT8ڔukZ)/Mn]9&;2O$ےOVS4>^(~(Tpi܇[xvFՎNhIhOd'8+vDM>"eŬ{C+KU[~eIjdՉ46.^o^''dx_/)UN9FaLɭ`ډK\%y g_:NI䜉zVvSdך?7#PQ(%Qb1ApZprkZW~16zv} )nh4z^EkFoDh=|7Xt]>}[I@۴a6>bŎ@O:r^.rOq۩5S֦V^s縞,;:aɈ4f<j{S(=iPӡjul/{qr#Ox?':oQ?vsLjN].9k:8PLDkf݂y;rF7}W~[2Rì30tsT)Q;,x]&q>zQ;c y!ՈzEb(o䜎;'EIɄlcp08#._}X&2mcٍ t&|jڦ>f̙Lh| ?E ,X…VLmkɨdՅ6d5Fź_8/fQn;en1HqiԒ3SYW6Gi_w/XQyo<~wn$>Z+ԵVtO>O[߁mI|}F̧3_nb?M;uY|{.z5[?hc7=TA}wnV]1ca`.'hK'w%$ p$wSh}re|Ԟ #5fOԗ:ݦoxF7ieݖpo"63( Nzޏ,)U-4 ͓y7YƊ<4Yҹj]ގݴM!:~7C%v4XXu.MJi9bo7r0:RqdN}}CtO~#8L[JґFDҧ9/OrzWVon*Qlm&If,^-kNlݍz5A2'wy,p.84g jK%8c,qp$Q|EM7ms`4ojZfϡVpބfĎHG'ɣy#n)MN䎣ALL M3Mc7Ve.4˯ MI5ODM=2O291GOp>C7SmVyМHa9kě00N ɜ摳ţLxwlTv' %|"gMIa6#00okzEu#A:MN2&Me:5:ncUեW^n$&\S5 J{ࡼB*dJN4Yx$P^p';:NM 5JhEMFU:{3֓L=9&fO'0tb3iĚM'wSśl69^dWy- Ggm!|g>>sFt-*v>َ 8I={76M# 7Yˢ&G7jqa;#u'jED3Pdrr:0k|.63SI7@by̎z^7r=r|ݾCp?xهEֵǯM}+>8xn9z~O8w^j={N&W);ԭa K=xzp_+xǸ/N܏=OntqΌ1 ҅Eu$ͻe13Bvn4&#̜2y佀w=jˮ(*gL3pI7Y&/dI8xOVv?N`J4MMAŕ- ׽ླ)$_.dfhvvHRtDxLf՚# <8;c9Tœ%#ՒkaɊ5`7эDgI&FxH2ÍfhoG' D39Vs'"ptUJQ}OgqA*ě|5 jYcXb/&X30@'ʓ,/fN^N[Aram6mmМ3.9?J(Ӆ"NsvG'Z<(Q84 mώ9{vEb}"Q( #''}&|q$vQ/L։{>FkVca|8 oF8s]UZUtϪ-j,HĶcJe|46ë;RĸkJc# ǘʖ1cL]kSSWufNlJ M$ 0=Ao#{I'%g;6f40;nc681o,k|*wkN ,kwz1d ;8!ϧv|m}i 550,݇kv˃x~g6 l, `lS˶k{KZZ V܍'N0Ixv(D]_q\VX80ОwBC ,!8f{(O;os9! M>ht:熉źS$IjFhI 3IpD 7_]VxKԫYWVK8(ؓ864tC}W-9{p[{ LG~ =}w$W-u^FyZdÌLtݑIHUZDƈu;4G63Hrf9#9T[iA3 9|2pNL-x$'VM;O%yXTγIg$2{Zk@yG:v ߽kz(yDkNj8uWjUZ꫗nd64G]N-8"1N/[mw, '#2fܙtl_\r99||C}((7fKs>q%(G:ML}53NtD80IDa(O qv$bN1 {Tt* K9*ˊSG(X'<YOTRɈɒ\ @IGi.op;aah4*BQEƒI&6Fw%7UTU*xƑM#:hDr34Г%(&Սڒ"/p\eGq5C\NO(<TGP 8 )'8hQVNǰ+q; 2f24z(M7'8n $5.fiQ5rOt%*pg fӘE#`Ԟ4Ξ<C8c{0-;j{$n4Dui8NkMj4mb593,/2 s 3d\'Q.nyhœ 0`j\1/|[semgH &-99䓴9jakMitoKI:TN1%UIk%i"UJ^X~<_gxBUHyÚ>>N`tqݶ#ГCikzɿM{}IpQ<0)'4I6GNNH G1s"7z-n>c+5VF]e=h99Z c_c~toξv"ɽy{ܷ)2#힏z[yޓNcK|o{gm3,M9cda:5V#Hpz2wg)'^W]y-m7x)$΁` x B9ӓv# Ɲg`b2\6Rgc fi纠/IofӪ3}vov^)ܵa]K.QDR)gG6L鰭,Y8#p7rHITsDk ''6Opќl^wewLM8#}۵0 {Yc5ѳ4\-*^d؉DNxtFuԛ/>/iKWKщqqZ۷':_S:t)}"H߹HOv%Y ǝk*@7IQδ'(_!w1DuWR}'=~~EdlfJGjI7g)p4lw(ԙi^7 wNYK,#*@󆙇fKRJ$d."_1T.6D݌gR$uCFQ [Z3kX{'N\oTUYu򍿒n-]wnчOsjUV9?F'&U1dRJM౧hVZ4,1\[5^ϧ:ʿ7݇=qs9 [`qG8vMDA.=6IpfQʝ|жzZX',qǂP݉;8tMơJ$x!.p`k)pSs7rz9R{qFyYV\N?sLn4C;c_+>>|[[ݍ`sؾ14g\:7jW+LԵO VxƩm7h:&s&XG~<WIډГГ97:uc:npYF[޷w?siO=tqɹFtNo-9Yۋntޭ[>O޽{Gk=aYn.+5ky0u3M4Np5dp'\n ژO@m| Ia.12 1$D<ɤߕU͑ yܝby='ī!3Y6K:FaՓ^2I̳..<ٝ9LS&^C@N,Z<9R!fcFsk3oXf=@BL w0]+U[;u䗴; vΛNP5\hM q6ZّNDx2̶:Ӯ'L{KUfnn|UjU-2{~g 0Z_6kֽaU &9\EiC*)***)1iktHz5~ZW/xsnr5xeS(T9h(tKyu\r;翅^.o{mSFzNﺝ}+W]V+umx۳Keon}~ y/>'<=k5|h5F>(fԲu4PJt;jsn `9`q&kN9. õ9S3D9UU;3Wnp9'Yk9ʒ)V~'#͓ydxr6Cܓ;V5f;o*8к:Ց6:2ȝ@&^g m .,QE& EzPshDc>22Rq$Q58\N8֓w'#F;ƒ -Uik<] naS|vCAPa{OvAU]kk0ɕ6UUն-y~P^.UkLqUTT(U)%LR֖eZIYN}N%1ϞlCzLAPkƹÞZLG;4&3RDcl5tbo󠬋@hG.wc(\q)h5#zM1I0p'vQQbƽJ19 bd/ LsBno&nnۦZe[mcfj ֨dׂ+ܚxvDe2Emœ!F;Ukzp;tbV8r=(;j19j#7I&|ww;C8$˭$N 0y)) <f9"*Tx>zIb޸C3O39;;;tt{Y'MtUpIN#'= {q`ñ`߆ʪx8|2!CM4<`OПdfd*T(DC57FiN/j9[{rLx%|NUJRUǍhym;7yjUZ~&>[7]UhkbcMݓ7@yWCJњՑt~" ޻$x{yz7Ֆf::S|;C8C8Řsӝ&d8sS|AU]x臃M 8MaDήI>I{^FG$RCVyDZGVW5Xmˇ#uovUgtWdfaŏ&Զzc &a[owںc1G7ɢJc'n"rZ.Ӥ}>GLj9,n%6smNC`sBv(bIYc涫]Xg6Jw3כ ,&xiĨO@wImv4T~ikp=Ȝi~XNW7/c9q;ۓ#3ns}EnsֲjY<_39kPIx9Mu4$Njq;B`jƵ6F3N"5nFݱo&x&_N 'NoAo-YKfQLw\g ϝ`דm18.g㚎ګnޔelZ]R\'&_S=$@q-iFI=Šh(Kp\]uս;>At۝h[UkiC}&_u7Lozҝѡp^/6p`NR8ae*5 >q:7xm"ko ni.)'IëJz<,Rz#\E (zKEId4ܭ2N &^LH8'x g _}Lt6լGtFM1fhD%Lc3LP&F@G(1dH#//He5F9EQE*3פґᒉxW`FUSFxLb`/ؓF%3 f$Fqv<  ( 4z᱅0b<0Xixڑ|~LeF0 ,yppıDGb#@YrP_ToQT/9ByS^c p$Ը 7.KrB _%MqcX3 `^^&p2N8!BHru$CcE#"7|4c&J.2JUUS~'7T1;<=66;+>O2'O'4p ~7͓#rgF۝؞cn& 1!-d}3 xZ;5f3'vy.koĞ$ {Ս&𜨟$ޒoIɼ ԗТ"$ 4Ɯފ<ůkI͉&%D(%iXY|KŌto!,p2VB1SXxvZP/z]Ę-CTE#@:si}R$Æ`ƅ(<'D:_ 2Y15r_Ndz5#C5ˮR&|F>Zg1cuz?ܟQ[`Fx;)^)ܷ&׊jH&5.*{T/:S)8K D랰:_kUVFTR\sK4(dI96n7 m)"D)վpQ$A|4.M/F# O>OB~p}'F7R~(erj4=) \`O6&Bו*Z^+l%mo˸9`k\Ԫu00 T%cJ,tÑqq2 `y5=޻CP,C,.pIJW"D:Uuuݱ/y3LXZ2M!>(%J%KF.k˅T[7ԤVUkVZ֚V1,Kʔhn. <(BZ)JpjT;ДG*>m,1߈P_h:CocC7M {zx8yZ>ݧJJNFﺓъG1d> ^%2Wp&i*LLh:gnʥ={NtUkRQxш>xc6&7U\yHveޢiiөTRFYFD$g xo37Q<\|)#h=XލmG.%u7n|!3If44N{]TR9`6:n LI1C_k.#Gu;C2 *x^/ð\LgǓ;$%M& ~O,DTԦr`0J|t%"$T:S!q/ˏ_oap.Nm9(%Ч*O0Ce5ɬekR/& }&$0$a&cm(.ǜ'r/.R %9?rA.{ "L Oؘ/2Q sí\PQf e)2BÚ>yQBPЄCB/n{oS'(K)$J.'J g0߸KbmDfIq,((yq(6)E$ң vuܴ gM0 1? Lxv(}},.,1KY4p[B\|W+4ԲOD1 Od/#=a?hsG|I{AOvM/KŨ׻c8Gxs*^? ݌K2|8CFKRZ*URliKV+TjWҒXL|yghNvj$IJyΕKR-ZgK$)Fr>%fN,Q/62EĿ(EĵļQ=y;?s5]9Nrw~x"{L8I)>:fLgT!,K1 ix'>)b'JJK+c֟$ U*^5'fjE#e \m`%?lvmԪVZ{nX)Px*;]IWi7~i\{vNuӵ~wa! >xBXń঒N&Jigs/n|ഴ$”[BɈ/ 3Ϥb=A.:)LC\b$&ʪVTۺ.8'.R%`g~u 4+evkםĿ61ONi>ԣ$KS&'་aaE <17Y_"ba$dߚdm~ ?Gr `yA |2 ̿MzȤ*1n ?.35H&uN*YRVjVKRKէg4O֐|*U#x--U^F7laJNlO-AxN(>(Mڧب^R;K~|dTJ`- EHqǘ4-7B7Pk+"q4#E^,aq7˟N\㋏b$&H6l¢'Jʓ7!dHc|ӧ&ŜO Պ$(Pwןm<8WS<˘|vIzabtLi osxG=LsBy^'%|0ԖO<^\uڔVK.jRݲZZsl ~))1u ) F(a(Ot}2,Pe !JXٴQR&9wrHʼn?4s) ѹ掍l qAojX9o9 #U6O'Ow(KŸq/&FDb'd#C :u,cL^%wwinmZU_:r}&10İҒD%Ĝ9TG!DhD4DPUN%ƀ&yʹ4<.ę DguB/#/\rvku4m7wv+zӹht3E"w%*1Q$S=Z2%O|NNԙLuIT͓9UUUg䋓'ϔrq \ĸL) Ǖ'7鬕*z7 i J'80~~c: ʪU&0ؔz(.A-hRPy# L(,;Q,l[ŗMߍ?w$E' SϷVz&>RɢH;߈8JYI>Wl>Ag2܅z@BY6#odr'&ŕhˋ6 4Fxќ%zs1%(8r_0,\K2g|!Kg~B/!哛Ui*n=)}!ztdv,Q`рX 3 I/+JnE䮨P¼O'Md'#ē$mM+bRr'=IR'=wCޅX`+0`(0./b6͌l $˦[ԥ=4}7}R,%OS1`T>IJ`LLdR]!9|5f,x}e#&8*/tn]U Hй\dzeM5,DB">"8tD""",Ye9oFF4ꍱ4 jhQH\>7}l|a\Rk&'%rӿ7Y;ntC0NMΔM{OcA9dc $$?rN/NF( 1Q2 -J< f.JuVds#$ӎAmB;xk$9Ή$}٥ua$1ӧ<9\XzNS9g+p'kַz}Oc$665Zo:JP0׸;wEɐ̦Ix3vF96쇂"&=gȈY##y"4 Cq&Z#|nn߬gNVդՒJZ)_&\O{@Wp:IgQ8tG8di4F=9aaxpr疥^\)y?o_{Ac'qLqsnZ"UOP7$D=u"ELlYH<%OM /?Ž8%{/Y_bwTc=\ rzOE$糚* ]k.ܡ5ӣMϬ7cpDpp`h킋:.E^tۜY7ۅ'j'j'0ےpf=Iq{y~dr≔ݚBHDI , G 6$d'OvY,D`]%"pJgb&pK"(Pp(FF'/a' ETᄲ(O:hYDd(ciUJgU-K$IB'^'׌AiPMJB!HC1ϛN>עbn'zƓ `_E%a:R|$![! N(VKsͤ񜙊/$x%1vOdѓbK2J(#d`k35r/VA~_qe;ܹ;Čb_'%H3J'V%`-n;;nv4BB4FЈNږlg8}v7Z,ش,e,tu _ b`bp75Y1[nfuI*( H;pނRIi)JZKRTBZӍ#''l{=9}/(E^c5oy~Kk FӃ=i(e+|!/JFM12%˪7N8ky{@š x=aʋ _Cz7$Igf&vT-K^h18<)&ίđLJK$|6qNBDDhȴw&y=$7Q#ڏ8'bIӖ>RxulvzY,NuŽkJy|rmSxM *8ktI)Ĥ%ĔIƽ&az>=`n$bc3~іvoǡ,\^,^/;QXcL2T*!R,H=FDwƾчOf'l ,!2ȹ>I<Qk(9OkJi.BI^J4n77+>?[$kL(Žq۬?nh~k{Ғ ?Mttc'`~9(\9EEs5MIcmid1t ?>#AYey S9c2a*zh98PKQ'e!D'H01I"`_0𐆆p8ޖuR6xG Q=JДY5s*QhϦ\μ=uOu{j*T" !=I#*v}M_:Yd G6.H|F)w(c6PB#D" pDDEFP<f۾7K?B<=-OP#/(h Y$:.]rLm&1&=I,|y'4kz)e:8xRDDT6åF8n7Һ(,R^YJ*UUMY41aKid-de֖'UA,;y-"RTUEePJRdJZ$KVZQ$VIָ8( 6"h`ZeP`D!B&AJD A@ !4I3-o Gem#6y;MB̙fa߇,wK?Ĵm}?&ZIJ4'nF1^ #ȟDđ7Q: hMG}tƸ(j,QG:II2vs_\-ӕZ 3bW]/]i&9CR1oSCςFmculo@ }yUUx'!=Wv?0=i$*I'^5I4Dhq2h,(SwT~5r2022r`DǕ:قK d 8WIQI)#$AM Q`@7"8Qj))8$ \OFfOdG&I9>SȷvLjamհnBgc(\>$}UW7zR2CnFpϟEm QLE aeŅpsfucY_cs\ qc̛eD:S)C̏.K(,~p,}}JfiI?yGwX/PBq(\bR..OC/)|:ft JңT~]Gk=b2%Z߀7~"MZop߂~~H`b0&)VG?!T{M$7XR7$R$4&(|deܓ.:To!` J2bT%K v^6"(0 Z:w֎,khu"Pyn H78$7ęOI_xq$DÂPɒ;\=b}?ZXEuxIZ&zuʉ刣 cx {cٟJjJRI6{*SN:-JU**uUUbnZITV饪㥒HgJZEѿ+ CHhId|)/̎x e|G"D\|4#@ Ks'>rnԙ~=Pۍ‡9)&3NR)t1X `I_LIVJdNI8XIv4XU7}}RxB#J*xkTԜ2}1ҥO5"g ?UnLi9 (E<ĝ{~q~妴'-./7''^SJCP6=6J T~BHP=9#`<^I ^)}ӒۧK ֿO:JtjJMoa^5֨ J\7E 5bQa 'B:!a2%OԺ;ǥ/qqH׌$:R}Db2Vqi.IQ%G$&'z"m6(P68;Մ$'z7Z`*U)J֥9wfvgVU|]k/_4#XzR1`0|s6L:0!p0C`yW]j0%Fn ܅|2~)J@x;,N:cQ$Y]^s><FY)ҝx:INJO%y7IӤOO<ĝx<vvIN--܄A<|9w#d8"U:pq3q0@Qor kHK(&nx_*I7Nt}8o0FYq&~s7a8bG -q5L3|>i<{`T.%zȤR4`LDx}@Z7l$$! ;2>p&*Z4ROM 4)Jt4`$^E,/.m|ʼnL:3g{{x'ggNv6SGytGabƛGD/\KeȇH& ?FVJ7 PdnJD-!T"I#qKFQ$d" 6wCQ,zBE1<3iɎcb'bGBOMy1kURZVony_('&Wf Q-5Ә-E99Q|E\~Mؚ&pm|He >UK')LcS7UWIU]rqW_YUPnUؖXK",  8y>4q8/מ).N/CBa&脱,&HK (0LhA$oRq(q' lz&ިǽa#ׇ6gEv#kM:y+Zm0APdm\Í9GH戶nc֎=~LcJ7OTH]T^(ǛƔKI> |%Gx2XKJ^`- yj_/= )* bLR'&1=<*ea?K5+YMo2Ugxcpw<>EkK[#hВVQkJТĢfgvoj6aBnN?Oo`G&LҦ!oAx-fo[jwZݏJDJK,< &ſ%/}90L$X^&9?}0JLqKJ͗A/F > 3mM ,(SzmTq'%${Qd0BG#{pUi+KJZS$8 1Cdd5t^ zPiInu"c^LEm&Y&ۆ;l3pKn$Z8yKоb;,2b\RKz?E(QN:%%WǓROPW';tpܝ8\R;U'PdU8@MUhi`,;Mo(a/op˥t7Y-z2 =hXvfN[fwJcϋnLLdi|&1uSed:/21{Rrd7f'> > |Xx-8by HR#cZ***Fp'y}JS(%G.H".93O쑵A1M~xĒyy8xad=FXb`>!/dFD6D#w7RxpN}ei4hQW>xPƣ(;q~ybm_bHN F@%C`LyT`& N|Y3 4-l# #ɡ(Q5\;?Ɉ}!Eh7D&hqnFj}h3Z%J?\ ;mܥ%&gS"=|A%I?7 . J(ϾkZM51&8n0P(չRgS.eK0 |#8GC<6Ğ昘%ˌA-N;ÖM@l^OKCRaNw:XNOA"ZD4Q$o&JmCB *URă'> 䢒\t)=Ы^.Qzx%KuS*TQ>I%.}uJ 2E>f c@g7F}^W^yXl`% n9RKRwy]%UWqUE%\ZULZJIJRLRVJ**7)i%JU%ZUVOͦofoVolͳ3lސUWkӄqѺ>pG';"8Ʊ-#'}W$H,KLK&t&t7Z>qrrúM$I 4h7Nr1%&_>XX>*7O&Ğy8'' gU*xbK捪"M:Q:Z]wIHwb$~G;Lma١bl;o׀@??h~mC#tͲne¯.IJN4<={ )VYB'$XZVJIƕUI%!G].;3ԪC+ 1#ᄖ'M͛"BA1N mtg[U(៫7m<H LַˇG3L|xpYk[G('miK2'=bbx(:t`txn @iv^xQ?$&ԃmtq-B $F嵺9c`iҶHcZp:y"bE xtJd I|>9^A򗚄L / K'zgW&ak%ɸx9΍R.l]-*FjJIӜ`3WP^OS8)xҢc K;JٿM[<)doCyʩ:y9cFm a^H&2ѿ)J&M&vZ Ľ*%o: [p*Լa+D=2SSV+MGΟ/q8AEbŞᄎg|kɀz1f0c:/+ /=&S'GOIU;ߏ7ǜA7o ?~ZQ4QBj&hqkDZA F4YTr誤IT$Z OaV*-i;܆` AC,RZ;R#cDDDpݷ1VhyBLI l MZ5iI3%H`> A'QϜ?^1b EܣهMؤ:3Ih$8:N&2mf KSm%t@;Ңzu$NpSȜYo)x+ FhLqbq(/ZIhdZ4ΈC Dl1w R g_|R ~Edqc}zVn+ƴ:7-)+F GZZѦ0)2 R~(z뀾=Gա9 Rhtd^ai?8h7|xi+ޑ~aǔo vmbpA*Ia(C&0Fq9]&aહaOVGD{/'>tO`$PYDDXJ(<4zCϥ4&aDI9>s|GIHb5۹&q#UUEӿ آؕ NY1S(DK!aaD2{J^G K)|" &91r;ԨMnSb*ObJKGGA}GZpݕken\r![rֲs'3ׯ8 ?G(\/˝C%onI& tx}w z[Uh lNa <ރmvd匌EdѕuXKQ8ӥ9SKTܖow$ R)[ÓP#ӧ~$vqvXNkq|2 B_ D'R&4E(5H'i (L|Y=!;>S(m7A$%Qb!pmI`1Lq1Ⱦ\sp7s$M,w Έ_Lt~ӏPOI駈3MHdɒJ!cSfAF~E"O7aTx(¯\T6dI?059?H3>)>#p;A/>IE "shCj:i$Ho!:` =ГY%"K4\'l%9Pi ''I;d ÕRJdlQ(?oKd`W?[.Y#Z&1OMf%r J4 K؟t$2#0K=%Ϥf0ʼ%ʫ AI#{ *1GZr=W¸fC<(I=xУ4w!;Gm#'G~#=.4UnNqU'~bqB A lPEDSz(1!Dϛ cXơ5*VhQֈQi$m)X"$X[YLe-id$&-uKKZsuZ$Zw岧]i*u_~/ŷw k,eY! $}RZ|%3&L:2gokOgnR\N&lRIOW3'UG0sd8fqdD7l'}&m)8fQF|~~SQ1q(6rO HHM{߽%koS=5o,Yi-oM%:֝:ִzߔ߫JuE3oĒgY-dc&YRUKZzJZֺg3$ɞV]iR{t+=+hKޡ7{hrnُCuO?%IRyӶyHHqI?Xq|3lC>Otck8X71[0YW?ҝ?Ǟ7h2x =\8X#u7X=%q-n;.사=hP̒O(eh/ 21ጿB.^"^ixl7.%(~x=q,cǑ'& I扮&1 b"RK\|NW8|±|zNJ*d鉶' ;]$ PskS2Z a(\Fy%|%Mí.Hb1z!" Q>b{h*gI\y'NF)e4LxIa^RN٥>JPߺ%~?]q-eЍ)IE%1H12}y-m8{g^O!8N M8\O$eP0,ydғ.(Ö.xi!Tw*zqL|kCΉG=?=#׊hL k 672}hВ5ƴg#G őd` >:֪ȮVɉo7sáDEkDDyb7yGH{aI}ogxLQwXo[yE/IaH}2#B=bKi"SҪ^ ՟=6\x2~_a)K*^%Ř $.1cɹ#鏮m)><Ί޽ھ7wn\h>ćG}>_ϔlJ}߉o}X@7JZKzD3Fu}F_"B2ŲkEj=I>RRvѓ4LfT *TO/J|0zI$Ize72k#Bc0uo-"= JCmJLlHF`q$.hOJ>)Д.eUޮ>X [8u ?n zZ\|9^?o-TRYER*R^271q2&65)<XOF <>8&u2%Le\/^L`pz(ГY1A(o2']fCJǪRgSKށ'l4,s^w>8Ç b'Z~` n$^5ziz 3jjJ&k F{rlIΓ'JJK>wCf2dr4<zSyjԧ~;w$]?7Fd?oHo z*,1p̌:^K`20csʹC#'(8qMXSLnW$ P^0`4\$3O|3L7Z $Ǽq'Ŕui>JII2Hmkɴi2#~yathx~Q`C& Y6# Rk4}b''#&"_rJ$H9F“૳_Ujd`5 x'^曟kOV,҄ k^rʪɁBTQ4n+BMJ^qс%A 7 ړ+/FŔ#v'gA1$j`#1G*X(O=#O8>v 2oIM 2y6!?L){Q1:1TkHbe"N J'Z%F\3ܧ얅 I PxyΓ#NVhhOl18J|ԯ&D$m =2DB,J$q 0,<)/^Kq1Kϥ+U8"_(Q?߁g*1luL ]=7T'1|ٛE,J4FE#0n"Hlqw-DG|.#}#Kǝ#&onځq.%q>h`&x->x}'&cX%!of7vUkRuVI1K PN`Xj_ DvdgneZ H;#lH(ŒabL\.#8qt88hCCD:n= 77C>B,/%$ČBGtJ@M5i|Y'Ekx=Y;c5%i $2s LffA2&Y2ɖO&Ⱥa82[nH}:vs203QG|9 c[-JRL)x>yW[H(:d^deZ&e+ ,2uq, 3aMt#DB:"ґ2Ա!R͎n9 4Y%U>5&=xܑ"THtxO<ӕ3ꇲ6Yqnr8ӖSqq]u? ߅#ٺipA7ۢX pksCQl bPxRMRP|LYj xKDIZ73tUfMVISsZ=ƷYo%:Gej$?tB! ׯǬX,2nT`^ޭ-ikYkZ?0,ɓ&{I1m?ii/d,K,m-tkn='Եw7oɿ)ȿzRTN?)),wa-GC£E1(_,adHA&eQ-3̷=Ie%'{)=BַZz(-=j֒^xk,,XZަަ=IǩZӬ-%)*yX=M5Yo}LI);mQL! YIk"Z4eN=FYoS-㭭1nYdzOTK} nIIKOp)1hNSiyR]"JI''0h~/eUJ 䉘N'zg2}B=O&zj|V7$}Q2?`)FNxnb{R/ӉHIRd$ed%0 BudP&IA4B4_4I"iHjH1IL$ha>D%rM4DjZ5bfVFh|cX%xMP1.ݝI{ hM(7ַ"&sy|#"'Us<ljٍ `Nxiz_MLq4TQI8Cw4`lbX*g>SNI_5M$5ThNɮ=!A/ĪV>G!,Qp痝s({%94„HxQw;k{|r7g$%/^#$kOr73/4_-U2r]HÏ&}xm7.4q&()66^W0񥉐,FblRIB~MѦ}qK\N)UJW5B <ϫ4 xyƈדuo:mch <:c]51#tJ L'8^c|3p|^4$_ч Lxf/1/w~ }W5[.=[V*zi7~UοW{Z޼{ތI)8,EY߽gM ئ`qFK秏'O X(xcش$wb~t853<0O40TT:W~5 EEM5UU{|>P^YӲN9Tcr, q}N*uѤ·}<:bRpx&DHxGB&I!%ETJ&4f dOd6rN&NݥYf(x)@0)J1@h_E x\ h/Q!<#^E#%G'8ޕ*rRaddMDz^U]4RƐ/$"-O)6Sx!I-iRkV3jfd4`3ILD|sߚB``)zayY`>cBw4 p#h ƚivÍoJVICr%ז\ݓv}s=|Вg)Ǐ-tyeخLIkL$/cI/ُmÜ3&hak%a,o,0I/LxL$nMe %T>a5di&33Ky/_>s`IEtQpGK$=@v;A|bJ>_IY eKTLy cD1U-':HOz9jL#N.xpcs ^%E}X _ ;F ç:'@.:+& }#_L:ئ4$?ij+IMMM'|Tlo{8Ȇ֙ >nk@q#fc)@u)Rᅃ ]e*ԭJԢժJͷjnmiD%"uBJjԗzqq#:Tg-IL{$?O:|kN0sA߉:R^&1LNН)<1Y1se'&2䉃n NW*Oz =<&O&'&hS%&'hSRH zo.YNPk0R:‰I8σkYֵ8mz֖[JްoN̉O |#XaȵZȫ[G2 yZC(r 8bjHȓ5S,Ե.G*).6yB;RR~p#IHc($7VQG('&x#ЦBgC^g2"DHhCD Ğ78֎ äڤ#N:tm\LF9< Ta<'u-}XiR AKֿdi:y!pr}T\7z D~ޙӱ㹭i-iei&[پ߽>MB7[OƗ'tƼ9`((·A\>O,& Z H\3Eġѿy۳ݾ84ۿ*qt~=NrqeSbqU- \nܪo7ɞb>=Cȳϓ11#->h?7W4Ec J/+yT>X0ka)k2u>ȓLKݘrKDE>8} QAs#2j_`# hɷt=Q7#pn$smo!`靎$:RK`WItE<&OI< 3bN\5"K',&dV_U+_``tt=J z$rx_/\j1^)*=EXbP3%4^nl DaI\pEEFwgetJsk,SMeKhkk,kiD4L}OF璅|#~,Oj3W64ś <}p@/ke6ezcU(Q“Cϑ4a:aȢQ9⊢ED(RmIp ͙]Jz,EaTa0XCwID"mp^p=oX52)06=o> 6~Dd&ѥ/s nV4q%N%H'-&E&*1ؒΡ#:\!ɶoo"&$7ۄxO >a愞tOa\a =&QzԊΏp>&1ώivm<5mM_SRCJJ6)}'"}yxg 2BeQ%n{Y׉0Lbꔢ(#Y#=ijU|*yL'L;)V:H)~)9OKęm{ҎqTaQWxub16*تҹ%+V( L- C饒0z*d3c{2E&"FT*TqE"cVw8pLnv8pXRe/Vx,N+FJ_/OQE`hNl9fσLM,KS|eXwkɢKE uj8 dn%'lh&# $$<\JevAycD4)CMҳ_p\x)eؓ6SI=Qk,erjZ(jIžDK%'9b3G.M1xB\nz7,XURN* /sIh9]ۄnXR8:7# %"Гړ CZ*Il)1q]okfB7tRݷURdy??\ZD(ܜ"jжE); nkY$[0`4׵36rK/0p   AhUGc9耀 @y[7ChեRڕ њXIvY,g֙n׃KsNA ~~ٗ_H(FɫeI>[ZTIZY-$%/Y.srڪJZG99W'7@I=zO<v1%D8RV|"S%G&ȗĢy`Cr#T7F,Ȝ1vǞy \+%aӺ]NJ(Q_U0'Z/Q1f1QEXڃ[4J;B 7TI'd'b{Aɞܝ,:"e9"!ٓr-93ED$H#摴OJğ"=DjIɺr$%D^(^U Jw_R(בS'O QNPOzcauWѲ֖_//_;QF&|N p4. Cݍi}0y4R)x /O&D.cPK*u;ˇN:T(ȔO\uNm&\2GV# X.D%=Y*4nj4>O>`PsÃ&K;=:#F'=E0^+JȘI(qdggOPDDڧrA8QGh'-"iT%2"?; #jdjsh\|s`NC( 4$~$4zSCAaC%e\Tlh^puiqjo,2餕$㔾<ɧ(0"p'Η1 c  |/Nc}%If0I~0rW%->9w#(W%dp[0T6&Qdg hIKߘd }9 YAh>:"^RR4b9mG?yo,~aݜ pQ?c|,?dy dec3L7Қ\4&Q֨A!J7E;d7#F188:8q8#uwC>'#;BR|֕(DyA9C{Lu>;o,G(@ F4n0?cZ)Qh_<9lA÷lhiɣ 7?Ąֆî$t{em&jL%P׶F~*)NdᆐqĘ=i_!KgهgmFj)(J%1aS!Ӵ& >utE2UU*ERo/!l|{Zldx1>1?Y'֒n$sдz<]_( b`dO*&&%)aH QI? 򦽺$KTJ'Q~UR'p7ӏwk)EVZI2&sHX g*TL"frzAHPea#ZNJ$%B:rGv0?З>I@ϺRg1z,M(("ghgII/.J/pJҚiJn}je 7Fɻ:e,eIKkZUU(J!EV[KTpy]ֵW?Q(X)*l伉J*S j_6:9io3Nwp'%\NqN;Q.)5$I$(bEňDHy:; ,E&8{'o u`xĄdxU/G@j"=rZ"ҧ&đskTޏ{:VT*8 ݈&x,HY(i Obxd&#% dyJ,ן #4\(C?Z3&KO2XRgz> „|Y;OF:j=^I%v O_i7 l:~?8mU7.ZQZ#w h">ZsGXBj &*^W.]%7MKJC kƕ鮚/^^%>ȇ 3@XQB <:#LO.g.Ö8_K}/i|Y,2#|LXx cM+m]}Z2%G0'yw3qc)a^aFn+roi{;7үM {%0\+/;2NO6ONMD$c6 J=i=)kU(kM=#Ya; v&;Zz9?Ovi b}bW ~S㒹"MI2ZPaΦ>xpvϞN|uk͉VSp |cc2Fńbp/賸pjLpL>@ I턱 =7ß6> C~UWφmIg I'R7=N$nRjF8$% Loq*V0? O3*T>ʕ2QE#dpn|N-@ӗE\Mꄦ"LGjCȚ1>'BlJ|%l TEͿC rS)M k'6?zi|ʖZRJ ̙ɖN޳F8I) Lq"Xp#T6ĤDdgȼoYF\qr>LKE.d4ZO|7I1CI>UƜ, u6ڀ&#Y"YC/ʹӒhK04lN4qK&y'nFķFϒQ6J*4rM `Ä,)')|!gV0 rhaH|K=ڸ}oNSTW.Zo_\noҏpހ˓PInS>sM0vdızwp>&Q:ן iI*OܨWh'jqwJy33ng yu؏TIIWCczyGo5Z+!JTe2ğ3}&vIz-.=bҪuc^CH4k4cLyJc JQMe4,uss)G&C"UTR•%I|{|yO8n$q2vIB=#ll1n c7B (~7̙?+xGKʼ.puot<݇a6ATBC3Fx'42{\ɣܺT *{d$/K O I8=i,I'LD`$7>7l|>*n> T\Z"_>P8wFy23sI ?`|7qo6N=|E?~]Y,zR|F!h0,I.YrD #ӉǓ&̞Ld7Dkb'ЏhpqRt\q*H른\:I$N$I9\\pQ.'iiU}!KM9ڤN|f<ҪyI%:KU!ӚB{I&bLDtGHӉhN'$sLm2J%F DI{^UT{[V8Mެņ3wxw8q ĉ&犔TGJ ){1%': &xljߘn<Ay LA0pDMxVw3Dk~_`,XjHicrF&Ję9yLK56gDnrrsk?șL3nɹ6f͜gq3p &4Y,#43 ,2:gO>D&pg xeefafd=aLfG4<':{&M '쑖F49ޭUI?ҪDส+ ]UJU)Gy$$:A7A>PLj➈kM?Q䚢N<\G.m'}8r$ǑS#g9G`g&f(Li?ȓNIǼNr:p4pͳQ{vNkUï'4\;"ht\sH:vts$?zg}$O'p֤=eT\a3g5w㏞K4>ыAzZM<f'n5Kx|&'h#:̙ͻ&pR$ӓJKQɧ&Q6ysK٪kZ>kj|bMGNPx.G'Fi*w_$ hvAqyS^lN.ئ=59tBJi#k:= yߥ0׃xw :>ԑL$+_nM\#nߣ ':s({՝6ٗXo4x3/x,o&xХM 5^vb,\lœic08ZI*'Ԟ{Nh9*Vixg#RoMH"cnpۆy!'$g ڙE9FIm'roWKuNS\uJZl20NۃMwlc-G",s892=i{ُŷzcOGWG^G}=Hoyq }ܚ{89F2'א<<;1>n]߈xp?S3=/̙R龟Pz䷾iJ/^fN٤SQ&xlDwx =hh4e8bhW7;9w x1t>1$rߤ 8r:2jQ=w $_Nz]KBFHݧVvtOF9q<0Mu<'6u,Eau)'&K$z&,7qDx3 Y>ș-,a"kJ-k^EZK+$R7b7ndi7n77 [4ɸ[8i߂߱<-$Kmek[ͼ啩ihZ7GhS)% epL?HL $⧂゙{W/\Ow&LߍXғf?ٝprwEg&cvΐqϤQGRHnd;1}b BQ(gM95 ?vF~i8Q(=Ox#p;uS@7iOǙɱ&bNC =龛^l q=trx{c4iUb=|OfT(NfnJiMP^ v*HSߨqeS~yǯGpȑѓ'a#OdTQ')ϫU::ٷtqDXk Ò'::{:ҼM gl{͜ʝ֜$٦}qzbuFIэx~=זvp;V5 :Sv>Ò=4(;'\L$M8!M˜2g6dF % JucMQ'jqu(>g#(l̉O,sZse&O;>HmZ[w݉珜7؟@O O0c?/ܻ\~o >cPN̙xR!LԘ>a<'R@ I3 !?4g|jálsG4A0tumfIӚAQ&HڽSYU-k\ 2Nz e({L !O LqTI(ؓ<{'N3{> vOv;&[3g4F{D|:ꙃ jo׊xSxxV:"aNG 4Ԙ:z98&T;ޑz4/&cju/Jn̳ >]@"iN "]BXQx/]+/0FbtDBЉBG8%̒I}X5ĞLO@XXX(E(D=Q&M^#B4b$`I%E~モͿ Mݎ k>:'\SVq.|h$7&/OL/mRC8wEg*M0/bJIIxA&A5Hx1+ǵmNI)%&p&#ɝf̓zYy[z"b75c%e04G՛wDpN(&RpHnwwi 9MkIN !{& |x=ܑha4YY&h&V:zqN d85M!.I:Ii%MztɔƧI:tޓM:D9:IN:4|'FLMzT7 ALzk(Ly~sI&ڧZ#'0O ~1ےT(vHm{K<"GgO'L``{B#`:f̺zߞ}h<_K_31&v9q'8k0٥t=LqQ&dާk;YNBhm;iMƅ4n,}=Ky(Er&F  j0Za9o ߘY(e%!IIHd./of7بraT #e5Jc&a4EIz7vjG $6b4PBl JL | ̍bEd,I'"'`IM,m<2!RZZ*#C$g}k3>wuQQe ꓈wz&Kg*^ҝ8É9p! 'n <JwUv &% K{;@$ ̎_Aˣe\4? H}SBn>Tb'iKXu|;>P|;*F(t&4Sf *HL1^?Ir]94bO!CG M/5ќ$\j|a34&2|rtB5bFPh&XGʧ&1`lrMЎ&R*;80'R9"c&YyGrt&zBO(O>#+ɍ؛}].ד Zk8TZ4&\Ԏȑ)ܯS)% 5ˌq;\iyppF<0rpNLIL1v|n`#`i42cRIL(RuI)8Bp)cQ 2 &$III3dۓ'\bLbLHg`g"sC0"(ioD ;mЩN# % 7Ru#@#yGoֺ]u\fRW [J17drf0+OkV8>Q1%' >0ҐNvd3ĤC:I.6Αx`KD셜t.MȒ5bQ16Gĝm˝A^єM3M~h`6R@lIrX\K1bi6%ɔM0K1NG֟~G#ėɦCIgˎI"oɅ:c8T'"Lӌ_'tpf/nK J'4Jiq#8סr>kUɤBNzjhnR\b錼6cJtf"' u]֥Ug;ϯd *e/H߻"yǍQ0Ʌ z{anT#i3a7yf,!=cxՌ"xAҘ &SDHΎkWn=2a//ʛ<n[UNW;=nMxR-KJ3CAT5&EȘ ٞwFsatIONg}Gjktֽ}U{_8֥g祍|rq$D'!2%>76xbl͉ӍJLw7S;6h({Gz1rg z)&W8,!3ɚ_yԓ&4O G Yy)y;RLE:CgS3(:rZHM06bXs}JxsƬ<jZ3NF͕q9yT׬'[_iTLN;dRj2F7t&]) zRyBoّ|J#ƔQLE%#$3f&\FGɌR6z2BQTy]CGPvļ&IDN&LyC1ۑ&Ě)N`53 !ʪuSb1~6&E ,LmURI7=I/I)3DnCz&A8Rc^Mٞ#?R %`11oߔ1ˣٚv%QL9=ቒxN\y'h' 粛f8/ K*u `L4g*eĎ@q$toGH:Bb8Û:fDM %Ƿ8"1F $, }6Y "[4/t vğNѫo7Yl:K TZqrBo Ģp̂q$p . tP '~&0IoP\ bƘo8uId!ːړ:#44laH(&*th>?RRQf4Jع,3SDQ7f F\uī:Myq*o1 F:E ;b)pK|'NђljD(lI}3S%7..G _a>Kp.1ގnJ1DCceLMɾ|xvDNQ.:c1W9;nlHwRtunF %>S؎he_x"/*6SX* J\a|o_6R*FKS|<NJQEi'#2DΈ=4=4IRҥӈNF7IhH'buǺ3 t7MPR<1)4ivl ђ m$nPd <2|p.8Y$qdْOz~cc}4'#pnŒlN aLM919%1^ud'|&Z͐:r4#N]sBNG&q[^ZYh#xfމyJhIk]{MQ)H㦤8R  &lҤ~3Bhd 96VM+X ʴ0̉~T˚!͞ p񌆜Q2ӗnN)Qmkn4 UQbxTP&Id%-TI%JM62d މbX\^C%9tRy)r+PKȷN0JOT`nO`X)SY3t7!I43'GL d9# K%%wҫRR*(QjQU%KjDә0t*E'ٞ89ռLoQQW/& Iy ډʑ&F3dRi.#jODLqRs1QFKtpD'`NLDDxJ$=ǟ+ѾUatڅ K 98Q(A@!4~ yMo8&#C$X\ T#ڣ&Q(7RBBvkMr1xG6qQ5I$Es$;"l J%q/CD1#(1xJ&p4""(!Íx4D#ZMq5a"ՑB( 6$ؒDْhH(TmDnӓlM9&%7h'<8ьL&|wd!-Eiu/||:[DڤTo3|a6| : &J6P8 B3ؓ/#$PYc,ŋ NI2*fccH_%;青`R#Ǒ%Rc:]<1#'Ldt43/_$STi'sy3P'"<CyJnbD{0cX% K٧(i.K #>qyQ/byiq ()i()_yC2*J7M-ygv!>$}X)!>J>182(`LH`LldٛٞI_K &צR?l83e8QO7Q-x47>PrhҼ;4D5s%E%JZ%"V|@`IH'+:=6AO bXZ0#X"c&hI#Iɏ{1y ,N=McJhOj/:1qJwzӈt&2Έۑ0Tmy):M 3M_i#ۄctEvM؍7dc><ܚO|K&ICы7RiI#폤{nLhŠ5F ^HXOIdx:D4(Lq//&Е,`ӿn"|%F1?Y!ǖl>9xZ^X兗ˎq?S MܓJ^`OG\' O'j'ۓv A4ƒiFQҊ(vGMnnG"7Db#pDB&G'7џ .rJef~P&>99|fL F̓'(7Q3RRyM`O|\}TǢ,ьҞ(BO*'MZ&ғi8Ǵ@;1D?A>y %߹) $JMuhmL4o=$KURUUIUKZ֭(tlVRmSw{_'@I(eǔ ;JT=jh|ۓ$YuUJchFxc"C-ƌZ^j(8MpstJa Ҋ8Tgph>,$PPVK̂PIR@R Ec ƽ՗,~@&N^g8$!œH>0sf1xdؙ ]&=]etNQ{  (J(h @)8{nU|G:ëK@^vv& * Ք1 ĥ?%n줼CؓҌ&:StgGEK"U)*jҩTHKVT-EJTժ*5-e)qÜ}y͟:ĤxLa0%I 'GDӿ'>dn&Q>)<7MBJXMXxSΠCܿ\6A xL S)b",1,toHFIXɟoiO:W!Gz3xR5w25;!'("g{`S?h"espnBmnmÃ:#"8Y@Z@K&҉Psn:>gt8xppv-o;[";$L"``0@@G B',#$5E6 CQ< F;uUTmEjժ_>Tv7{c?w>4<ƌͯAܔ/ zR t0{'W29?>LHTOx)N\V(~RQ5$vtt"yOt3?–;C&t@1TESۓrf`pSui# N(NRNDa&pF&Gp#G6藊jڨ׿3xlxZ}DžRjV'!D՚v*e޾Z& S!9] t[ѾI۳FyO+VQ)_s!QZZn7Y>(H>87 ğx:gJR_&&SxZ}_|X™4)BΜd{r䞤/ڊ)I/0ӭE6jJ))JuSHn\FHJ}S%͏~fH!abghOiIzG61}!DGc;S*-/ wp 7J+Z&)V9Zō #}~sИ>إ c~}V\Wqބz9#;Y^zD_bkC#0PY$yLSG/ oݝ$Dώ7ڧOFzr6d%(?~F (l'f`ےFGl$Pk^^qPPieEE8"ƘXR+?2gov|V?@=88t{xl,L&}dlN/2&z'$rzq*Ny9YM*eXLbr f%P+ 1 OO:{C{~:V̟q?yA' tzRUUJVx7(JɑĒ'2FH1z'%oNSVj+hB1xp}NH? 4 ;1Kpլ4.ܗ͉F10"ԒMt rK|'h1d%@0}@N Zbdl{c<طH"p#g0t(q:fѸm7]:Zr)}#|[V[$f8 .^O P3vRX!BdVNdx{ 9S6.HO'Obc #Y-W]t,Bz2|]EߏՐt൸L7Jߤ6[kgOnBu|q|J(IO44jI?'$O,%\%`VI$3xIqy--ۣs$ E5OLDkܠsΝbJQ%9 xy|z>I:ѻ4zAIT%Qx܃JLן >Y͟|! www?Dh L dE<1 Sx&3ꍩG8QG$]Uopd'NT ^-牴LabIFF7 ݿm>pO&ȓ KHh 8 Ւg/C>/  =9*&Fwgs[ϪT <؎D@,7QԉLQ%ROzݵ?^mL͜mgYw]Q*#Iy"hM5%ETTWjOY|1~LQ5YeRGrvgMQq= o< Jp#*4/U* l,K&طse\g9Ƨ'Ъ"wO4ʖ5E}?E$~Cn|b?\jP$C<M3I:Gs*7Ѧ) Z=a'}$/,R#y>SjH$bU\%Ĕ%mN\C5(cgZJpm7c=JSy?BtJv 򑏉)о<T:3G5Z|4զ>OrAĉ$ xeTUO*x v`X roAB}1h`D %f2%o)ě`6t$kD}G\dVMoM spDQFp{=16lNPQ2x$ۤۦnn ,Q;d>'5ߍ"FF ٦HhI1T[s*I!m8Aqmp6'%"E1Ppe,MU$•Ƙ166B(J["$pp8j5m`XD0Iq(b5ǡ=_0c%SȔcpPCͭ vha#x 5d䟄A/E`q,I~_''"`% ۉ3)Ϧ2צ֓O4xmY,`&1ƪ**.'JKB1$pf&B!Bi!BSL$e:ݔQ&:^eJ*{c]$a}37f?kzpcD__Ό)z^*(--#pϝfג~4HbNip:Y&'Xq-CI7Zcb,sNX-m1V,Elcb n74֘nZkY:9n9ӧ[p4#Mbۚc7Ǭ'!>;ɉ}b>IϠiג(N8'OUE)֪9/wzCݞ̞pp受""":>~x<12(gnoFa,O&3tGrM8pd0d>  Hܠ ;IPc\)DJ$Lb~Q%nD优R5ZH:КU >5~=nmV~ē}i8 JreL iE,e &5`AЗ'neωqb^0 ׯBGʤ^֜b-X0 ,\(r)&(^2Hy`l\`bnmM%JVVVQRr[| ,X..,b??;'h!**(бQIC=#Ƶ.˗i((nId:_'7D>햶tpv8pv4nb_<|^K!Gȗ`.%?Hc!HH°zyK\3)NXp pc $߂oF_W})|V{}ф 6ͪURm%TZZNU:SJKKHmC`PT{ @| HUU=p1T~mVRԔZTJ=bYMTZҲZJ"EjZTH-5)'H߃G,/53TO KyxpךԒy lqZַ,LrtkCIRoRǨiCoo+[RMj6ObgϟcP&gۣ$9y*IۋXUMfmܶݭv;},[n?Bk0__&8c'&| USeI ОƭxMFv%J`.&k 4(4!5SFM)jk#R`dBL$'Rxa2&Mb|IIژ6o., I3!*RXq* G_T~O/L#%F1X'*TaO-2EF"dK,xi &mClQFn C'4)΢mȮȋL%gѺԖ4XOO,l (Q(GD ϚzI;v;XJN厽63&d–}P>>9奘Yzpdl6feBQ 2ŒRb1ձBrH4" 31#inf dʫ[1`ɘ43 Yd fI$3!*r6ڎ6$'3 InL*0EQO֟Qy)KC!~<$8! 04$4/\ . \2xΠ42$BiTZZ-URYV%4]d"D8A{ovnUURbӨeB~ ~Mɕ)оɼ>zB3lw= gi(=?q?'|ĞJ%IFP>Lͷ5n14RP^&D: v =ۘݜHI90PD: nG;tKRɺ!G8X΀#lxϒa, & \n黣Ğ1ό{P3Q/*[M),xc&;jLpQ(Q(%l -e#H5P*.6V;4n)F8mSҩ'::J,.5E(maWO'l\|ƅ;ݘ0*/&!&%BbRYؑB(Fq%O ļIRƍ#,u t* sKZ1bir^qy*'TUEIEzc`~x 1rQ}ω$МTIH71wbQb9bzD}_J{!g?|["ʋ `\jQ`'&N%&2ŒoQ~5V‘D. S$*5 5Ց`e4h@ BRe*c"eN]|>~V/ӫ1~cG0O{ l>RzK?:K\t SM^wGYT="^rd9Qےva8W,K*Rkztn\{辀(h="qcS}ChDGߟX.Ί61J%IQR5J'ˉ."BGUXR6qI$n44n'$r7nAI`q?-,{t*@O`%Dqx_L#']JU*OoߓIAaLv }]𗧴{"Topg.QIzlm@S0x)*TКsFi%gn#cIuc~-#Ԯ}:? B{?Wt1 |1Hyv0'xΧ>N ,,Y'P4"n Z|ClwY$$jRP@=dV_'jI4hjU1zFxm%}/^]uxܭ'7-gִkF>=s[OʐGqF9o$O% BxTlikUm0ewC1cCʋZ!8A,Y$t}tn =̈< qq!%GxNDf Bzs=% !8eh3H㿶[$מτ``)o"}1q|r6zKPGlDbZi "ҔK~KR)JUUj*>ϯ]~8#?S kxȖ55#a?)r叜.|a ZWdOL6d\%,I3 1p'cb堺MpdVAdɿRE<uoo [Y\)jifv(vFxg**UT}Jyъb41ELTh^)C7lw:!ю㇎4}3[6N*gMH ٸD0kbJ{e'L}ux;:j :8"~"\,E8Gf&h'ф.NTʉDHjL{AǶ7x !Czvu,^)#$EZO ,2kf '&D_Mٴ,I0`: [1JY61(ԟ}I>" > JD\ܽϮO>h>GV&}4e5CVK~} oۇޏ6~Q%jU*Z℗E *QM=0RgpÖK}FDNPCJ}w/$d&@Is 6c.#dOP!=y7tA[:EC_ǽ@f-4p?gjej7o8dy2xNPBt)5.X`{ASͪ_%baMA΍#ǐ~S%F؝i f%KQEK1E |N5%*oǘ9ɟ@D ?B}Aȧe *].tO:O=,%,˖\Qc/ NHDG}# i'ON1K 0jp,B5* x!h?Dh5όxb֥23i>nGG+) 0_,a.QńiM, \],KYtRP\,_~J/Kj\3;)J4,IqfxG|qK'xLdҩV85eLÞb4@Q!gַp۾*U]uEW]UYF>t:ǎz^J^;ȳHΪ{?,$Nd3ƸgHUUUW#2Rt'J‰Qo= "-# $H>`9Q2N''`NM Mj[I=# q.&dQz7 ~b"9H!ֺwk>2cgA!^(%J>YqPb+<[gHM`LI$Gb,pߍ~J=$ 4PQa`#G'%"R4`MX`K>o _*޼KDo`7ᴧn4b:b:0,K "xV 2H8e$@چ黴M4M5o:ް{ughK+ԧ&pAcɱ#xg! )?rkSu%]2 =dԥ}ŤI{ZE~gI $~4"yy.Ex$us/nHVHߌU޹kdž췐nmƃ7='݋2,階7HyT*rIv&̈́UxP%u& uTkT4ҦT'xjLغ**:'~ ;Ih<?GZlB90:$9nB_c"(Qb d{֑4hw> x}1WvRNxRüK\wr{Kԗ'f3#UU&iT6X*a?/alK&RrxG5&=zqq[Sv 9QyOhѽis09tX4&yjEou}0K&fХoM9@a:lɣcbcصfBh27I y+$h!AF6N1L0d!FSs܌͍4-! lB6  R=):<˛Q/\`&}sԴRF싏3"G?#mEiqIUg+r޵'&FÄВn7TD<{&e9a믓:Ȟuv^0Iiu?x MO>{?h=VKiV5JR)O>3S'y{ >-a?hbM>1;BaD6sJLCP'Iu