summaryrefslogtreecommitdiff
path: root/src/shader.cpp
blob: a467c2ea96dae18568bb2a56fd099ed06a5eabcf (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
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
/*
Minetest
Copyright (C) 2013 celeron55, Perttu Ahola <celeron55@gmail.com>
Copyright (C) 2013 Kahrl <kahrl@gmx.net>

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

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

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

#include <fstream>
#include <iterator>
#include "shader.h"
#include "irrlichttypes_extrabloated.h"
#include "debug.h"
#include "filesys.h"
#include "util/container.h"
#include "util/thread.h"
#include "settings.h"
#include <ICameraSceneNode.h>
#include <IGPUProgrammingServices.h>
#include <IMaterialRenderer.h>
#include <IMaterialRendererServices.h>
#include <IShaderConstantSetCallBack.h>
#include "EShaderTypes.h"
#include "log.h"
#include "gamedef.h"
#include "strfnd.h" // trim()
#include "client/tile.h"

/*
	A cache from shader name to shader path
*/
MutexedMap<std::string, std::string> g_shadername_to_path_cache;

/*
	Gets the path to a shader by first checking if the file
	  name_of_shader/filename
	exists in shader_path and if not, using the data path.

	If not found, returns "".

	Utilizes a thread-safe cache.
*/
std::string getShaderPath(const std::string &name_of_shader,
		const std::string &filename)
{
	std::string combined = name_of_shader + DIR_DELIM + filename;
	std::string fullpath = "";
	/*
		Check from cache
	*/
	bool incache = g_shadername_to_path_cache.get(combined, &fullpath);
	if(incache)
		return fullpath;

	/*
		Check from shader_path
	*/
	std::string shader_path = g_settings->get("shader_path");
	if(shader_path != "")
	{
		std::string testpath = shader_path + DIR_DELIM + combined;
		if(fs::PathExists(testpath))
			fullpath = testpath;
	}

	/*
		Check from default data directory
	*/
	if(fullpath == "")
	{
		std::string rel_path = std::string("client") + DIR_DELIM
				+ "shaders" + DIR_DELIM
				+ name_of_shader + DIR_DELIM
				+ filename;
		std::string testpath = porting::path_share + DIR_DELIM + rel_path;
		if(fs::PathExists(testpath))
			fullpath = testpath;
	}

	// Add to cache (also an empty result is cached)
	g_shadername_to_path_cache.set(combined, fullpath);

	// Finally return it
	return fullpath;
}

/*
	SourceShaderCache: A cache used for storing source shaders.
*/

class SourceShaderCache
{
public:
	void insert(const std::string &name_of_shader, const std::string &filename,
		const std::string &program, bool prefer_local)
	{
		std::string combined = name_of_shader + DIR_DELIM + filename;
		// Try to use local shader instead if asked to
		if(prefer_local){
			std::string path = getShaderPath(name_of_shader, filename);
			if(path != ""){
				std::string p = readFile(path);
				if(p != ""){
					m_programs[combined] = p;
					return;
				}
			}
		}
		m_programs[combined] = program;
	}

	std::string get(const std::string &name_of_shader,
		const std::string &filename)
	{
		std::string combined = name_of_shader + DIR_DELIM + filename;
		StringMap::iterator n = m_programs.find(combined);
		if (n != m_programs.end())
			return n->second;
		return "";
	}

	// Primarily fetches from cache, secondarily tries to read from filesystem
	std::string getOrLoad(const std::string &name_of_shader,
		const std::string &filename)
	{
		std::string combined = name_of_shader + DIR_DELIM + filename;
		StringMap::iterator n = m_programs.find(combined);
		if (n != m_programs.end())
			return n->second;
		std::string path = getShaderPath(name_of_shader, filename);
		if (path == "") {
			infostream << "SourceShaderCache::getOrLoad(): No path found for \""
				<< combined << "\"" << std::endl;
			return "";
		}
		infostream << "SourceShaderCache::getOrLoad(): Loading path \""
			<< path << "\"" << std::endl;
		std::string p = readFile(path);
		if (p != "") {
			m_programs[combined] = p;
			return p;
		}
		return "";
	}
private:
	StringMap m_programs;

	std::string readFile(const std::string &path)
	{
		std::ifstream is(path.c_str(), std::ios::binary);
		if(!is.is_open())
			return "";
		std::ostringstream tmp_os;
		tmp_os << is.rdbuf();
		return tmp_os.str();
	}
};

/*
	ShaderCallback: Sets constants that can be used in shaders
*/

class IShaderConstantSetterRegistry
{
public:
	virtual ~IShaderConstantSetterRegistry(){};
	virtual void onSetConstants(video::IMaterialRendererServices *services,
			bool is_highlevel, const std::string &name) = 0;
};

class ShaderCallback : public video::IShaderConstantSetCallBack
{
	IShaderConstantSetterRegistry *m_scsr;
	std::string m_name;

public:
	ShaderCallback(IShaderConstantSetterRegistry *scsr, const std::string &name):
		m_scsr(scsr),
		m_name(name)
	{}
	~ShaderCallback() {}

	virtual void OnSetConstants(video::IMaterialRendererServices *services, s32 userData)
	{
		video::IVideoDriver *driver = services->getVideoDriver();
		sanity_check(driver != NULL);

		bool is_highlevel = userData;

		m_scsr->onSetConstants(services, is_highlevel, m_name);
	}
};

/*
	MainShaderConstantSetter: Set basic constants required for almost everything
*/

class MainShaderConstantSetter : public IShaderConstantSetter
{
public:
	MainShaderConstantSetter(IrrlichtDevice *device)
	{}
	~MainShaderConstantSetter() {}

	virtual void onSetConstants(video::IMaterialRendererServices *services,
			bool is_highlevel)
	{
		video::IVideoDriver *driver = services->getVideoDriver();
		sanity_check(driver);

		// set inverted world matrix
		core::matrix4 invWorld = driver->getTransform(video::ETS_WORLD);
		invWorld.makeInverse();
		if(is_highlevel)
			services->setVertexShaderConstant("mInvWorld", invWorld.pointer(), 16);
		else
			services->setVertexShaderConstant(invWorld.pointer(), 0, 4);

		// set clip matrix
		core::matrix4 worldViewProj;
		worldViewProj = driver->getTransform(video::ETS_PROJECTION);
		worldViewProj *= driver->getTransform(video::ETS_VIEW);
		worldViewProj *= driver->getTransform(video::ETS_WORLD);
		if(is_highlevel)
			services->setVertexShaderConstant("mWorldViewProj", worldViewProj.pointer(), 16);
		else
			services->setVertexShaderConstant(worldViewProj.pointer(), 4, 4);

		// set transposed world matrix
		core::matrix4 transWorld = driver->getTransform(video::ETS_WORLD);
		transWorld = transWorld.getTransposed();
		if(is_highlevel)
			services->setVertexShaderConstant("mTransWorld", transWorld.pointer(), 16);
		else
			services->setVertexShaderConstant(transWorld.pointer(), 8, 4);

		// set world matrix
		core::matrix4 world = driver->getTransform(video::ETS_WORLD);
		if(is_highlevel)
			services->setVertexShaderConstant("mWorld", world.pointer(), 16);
		else
			services->setVertexShaderConstant(world.pointer(), 8, 4);

	}
};

/*
	ShaderSource
*/

class ShaderSource : public IWritableShaderSource, public IShaderConstantSetterRegistry
{
public:
	ShaderSource(IrrlichtDevice *device);
	~ShaderSource();

	/*
		- If shader material specified by name is found from cache,
		  return the cached id.
		- Otherwise generate the shader material, add to cache and return id.

		The id 0 points to a null shader. Its material is EMT_SOLID.
	*/
	u32 getShaderIdDirect(const std::string &name,
		const u8 material_type, const u8 drawtype);

	/*
		If shader specified by the name pointed by the id doesn't
		exist, create it, then return id.

		Can be called from any thread. If called from some other thread
		and not found in cache, the call is queued to the main thread
		for processing.
	*/

	u32 getShader(const std::string &name,
		const u8 material_type, const u8 drawtype);

	ShaderInfo getShaderInfo(u32 id);

	// Processes queued shader requests from other threads.
	// Shall be called from the main thread.
	void processQueue();

	// Insert a shader program into the cache without touching the
	// filesystem. Shall be called from the main thread.
	void insertSourceShader(const std::string &name_of_shader,
		const std::string &filename, const std::string &program);

	// Rebuild shaders from the current set of source shaders
	// Shall be called from the main thread.
	void rebuildShaders();

	void addGlobalConstantSetter(IShaderConstantSetter *setter)
	{
		m_global_setters.push_back(setter);
	}

	void onSetConstants(video::IMaterialRendererServices *services,
			bool is_highlevel, const std::string &name);

private:

	// The id of the thread that is allowed to use irrlicht directly
	threadid_t m_main_thread;
	// The irrlicht device
	IrrlichtDevice *m_device;
	// The set-constants callback
	ShaderCallback *m_shader_callback;

	// Cache of source shaders
	// This should be only accessed from the main thread
	SourceShaderCache m_sourcecache;

	// A shader id is index in this array.
	// The first position contains a dummy shader.
	std::vector<ShaderInfo> m_shaderinfo_cache;
	// The former container is behind this mutex
	JMutex m_shaderinfo_cache_mutex;

	// Queued shader fetches (to be processed by the main thread)
	RequestQueue<std::string, u32, u8, u8> m_get_shader_queue;

	// Global constant setters
	// TODO: Delete these in the destructor
	std::vector<IShaderConstantSetter*> m_global_setters;
};

IWritableShaderSource* createShaderSource(IrrlichtDevice *device)
{
	return new ShaderSource(device);
}

/*
	Generate shader given the shader name.
*/
ShaderInfo generate_shader(std::string name,
		u8 material_type, u8 drawtype,
		IrrlichtDevice *device,
		video::IShaderConstantSetCallBack *callback,
		SourceShaderCache *sourcecache);

/*
	Load shader programs
*/
void load_shaders(std::string name, SourceShaderCache *sourcecache,
		video::E_DRIVER_TYPE drivertype, bool enable_shaders,
		std::string &vertex_program, std::string &pixel_program,
		std::string &geometry_program, bool &is_highlevel);

ShaderSource::ShaderSource(IrrlichtDevice *device):
		m_device(device)
{
	assert(m_device); // Pre-condition

	m_shader_callback = new ShaderCallback(this, "default");

	m_main_thread = get_current_thread_id();

	// Add a dummy ShaderInfo as the first index, named ""
	m_shaderinfo_cache.push_back(ShaderInfo());

	// Add main global constant setter
	addGlobalConstantSetter(new MainShaderConstantSetter(device));
}

ShaderSource::~ShaderSource()
{
	for (std::vector<IShaderConstantSetter*>::iterator iter = m_global_setters.begin();
			iter != m_global_setters.end(); iter++) {
		delete *iter;
	}
	m_global_setters.clear();

	if (m_shader_callback) {
		m_shader_callback->drop();
		m_shader_callback = NULL;
	}
}

u32 ShaderSource::getShader(const std::string &name,
		const u8 material_type, const u8 drawtype)
{
	/*
		Get shader
	*/

	if(get_current_thread_id() == m_main_thread){
		return getShaderIdDirect(name, material_type, drawtype);
	} else {
		/*errorstream<<"getShader(): Queued: name=\""<<name<<"\""<<std::endl;*/

		// We're gonna ask the result to be put into here

		static ResultQueue<std::string, u32, u8, u8> result_queue;

		// Throw a request in
		m_get_shader_queue.add(name, 0, 0, &result_queue);

		/* infostream<<"Waiting for shader from main thread, name=\""
				<<name<<"\""<<std::endl;*/

		while(true) {
			GetResult<std::string, u32, u8, u8>
				result = result_queue.pop_frontNoEx();

			if (result.key == name) {
				return result.item;
			}
			else {
				errorstream << "Got shader with invalid name: " << result.key << std::endl;
			}
		}

	}

	infostream<<"getShader(): Failed"<<std::endl;

	return 0;
}

/*
	This method generates all the shaders
*/
u32 ShaderSource::getShaderIdDirect(const std::string &name,
		const u8 material_type, const u8 drawtype)
{
	//infostream<<"getShaderIdDirect(): name=\""<<name<<"\""<<std::endl;

	// Empty name means shader 0
	if(name == ""){
		infostream<<"getShaderIdDirect(): name is empty"<<std::endl;
		return 0;
	}

	// Check if already have such instance
	for(u32 i=0; i<m_shaderinfo_cache.size(); i++){
		ShaderInfo *info = &m_shaderinfo_cache[i];
		if(info->name == name && info->material_type == material_type &&
			info->drawtype == drawtype)
			return i;
	}

	/*
		Calling only allowed from main thread
	*/
	if(get_current_thread_id() != m_main_thread){
		errorstream<<"ShaderSource::getShaderIdDirect() "
				"called not from main thread"<<std::endl;
		return 0;
	}

	ShaderInfo info = generate_shader(name, material_type, drawtype, m_device,
			m_shader_callback, &m_sourcecache);

	/*
		Add shader to caches (add dummy shaders too)
	*/

	JMutexAutoLock lock(m_shaderinfo_cache_mutex);

	u32 id = m_shaderinfo_cache.size();
	m_shaderinfo_cache.push_back(info);

	infostream<<"getShaderIdDirect(): "
			<<"Returning id="<<id<<" for name \""<<name<<"\""<<std::endl;

	return id;
}


ShaderInfo ShaderSource::getShaderInfo(u32 id)
{
	JMutexAutoLock lock(m_shaderinfo_cache_mutex);

	if(id >= m_shaderinfo_cache.size())
		return ShaderInfo();

	return m_shaderinfo_cache[id];
}

void ShaderSource::processQueue()
{


}

void ShaderSource::insertSourceShader(const std::string &name_of_shader,
		const std::string &filename, const std::string &program)
{
	/*infostream<<"ShaderSource::insertSourceShader(): "
			"name_of_shader=\""<<name_of_shader<<"\", "
			"filename=\""<<filename<<"\""<<std::endl;*/

	sanity_check(get_current_thread_id() == m_main_thread);

	m_sourcecache.insert(name_of_shader, filename, program, true);
}

void ShaderSource::rebuildShaders()
{
	JMutexAutoLock lock(m_shaderinfo_cache_mutex);

	/*// Oh well... just clear everything, they'll load sometime.
	m_shaderinfo_cache.clear();
	m_name_to_id.clear();*/

	/*
		FIXME: Old shader materials can't be deleted in Irrlicht,
		or can they?
		(This would be nice to do in the destructor too)
	*/

	// Recreate shaders
	for(u32 i=0; i<m_shaderinfo_cache.size(); i++){
		ShaderInfo *info = &m_shaderinfo_cache[i];
		if(info->name != ""){
			*info = generate_shader(info->name, info->material_type,
					info->drawtype, m_device, m_shader_callback, &m_sourcecache);
		}
	}
}

void ShaderSource::onSetConstants(video::IMaterialRendererServices *services,
		bool is_highlevel, const std::string &name)
{
	for(u32 i=0; i<m_global_setters.size(); i++){
		IShaderConstantSetter *setter = m_global_setters[i];
		setter->onSetConstants(services, is_highlevel);
	}
}

ShaderInfo generate_shader(std::string name, u8 material_type, u8 drawtype,
		IrrlichtDevice *device,	video::IShaderConstantSetCallBack *callback,
		SourceShaderCache *sourcecache)
{
	ShaderInfo shaderinfo;
	shaderinfo.name = name;
	shaderinfo.material_type = material_type;
	shaderinfo.drawtype = drawtype;
	shaderinfo.material = video::EMT_SOLID;
	switch(material_type){
		case TILE_MATERIAL_BASIC:
			shaderinfo.base_material = video::EMT_TRANSPARENT_ALPHA_CHANNEL_REF;
			break;
		case TILE_MATERIAL_ALPHA:
			shaderinfo.base_material = video::EMT_TRANSPARENT_ALPHA_CHANNEL;
			break;
		case TILE_MATERIAL_LIQUID_TRANSPARENT:
			shaderinfo.base_material = video::EMT_TRANSPARENT_VERTEX_ALPHA;
			break;
		case TILE_MATERIAL_LIQUID_OPAQUE:
			shaderinfo.base_material = video::EMT_SOLID;
			break;
		case TILE_MATERIAL_WAVING_LEAVES:
			shaderinfo.base_material = video::EMT_TRANSPARENT_ALPHA_CHANNEL_REF;
			break;
		case TILE_MATERIAL_WAVING_PLANTS:
			shaderinfo.base_material = video::EMT_TRANSPARENT_ALPHA_CHANNEL_REF;
		break;
	}

	bool enable_shaders = g_settings->getBool("enable_shaders");
	if(!enable_shaders)
		return shaderinfo;

	video::IVideoDriver* driver = device->getVideoDriver();
	sanity_check(driver);

	video::IGPUProgrammingServices *gpu = driver->getGPUProgrammingServices();
	if(!gpu){
		errorstream<<"generate_shader(): "
				"failed to generate \""<<name<<"\", "
				"GPU programming not supported."
				<<std::endl;
		return shaderinfo;
	}

	// Choose shader language depending on driver type and settings
	// Then load shaders
	std::string vertex_program;
	std::string pixel_program;
	std::string geometry_program;
	bool is_highlevel;
	load_shaders(name, sourcecache, driver->getDriverType(),
			enable_shaders, vertex_program, pixel_program,
			geometry_program, is_highlevel);
	// Check hardware/driver support
	if(vertex_program != "" &&
			!driver->queryFeature(video::EVDF_VERTEX_SHADER_1_1) &&
			!driver->queryFeature(video::EVDF_ARB_VERTEX_PROGRAM_1)){
		infostream<<"generate_shader(): vertex shaders disabled "
				"because of missing driver/hardware support."
				<<std::endl;
		vertex_program = "";
	}
	if(pixel_program != "" &&
			!driver->queryFeature(video::EVDF_PIXEL_SHADER_1_1) &&
			!driver->queryFeature(video::EVDF_ARB_FRAGMENT_PROGRAM_1)){
		infostream<<"generate_shader(): pixel shaders disabled "
				"because of missing driver/hardware support."
				<<std::endl;
		pixel_program = "";
	}
	if(geometry_program != "" &&
			!driver->queryFeature(video::EVDF_GEOMETRY_SHADER)){
		infostream<<"generate_shader(): geometry shaders disabled "
				"because of missing driver/hardware support."
				<<std::endl;
		geometry_program = "";
	}

	// If no shaders are used, don't make a separate material type
	if(vertex_program == "" && pixel_program == "" && geometry_program == "")
		return shaderinfo;

	// Create shaders header
	std::string shaders_header = "#version 120\n";

	static const char* drawTypes[] = {
		"NDT_NORMAL",
		"NDT_AIRLIKE",
		"NDT_LIQUID",
		"NDT_FLOWINGLIQUID",
		"NDT_GLASSLIKE",
		"NDT_ALLFACES",
		"NDT_ALLFACES_OPTIONAL",
		"NDT_TORCHLIKE",
		"NDT_SIGNLIKE",
		"NDT_PLANTLIKE",
		"NDT_FENCELIKE",
		"NDT_RAILLIKE",
		"NDT_NODEBOX",
		"NDT_GLASSLIKE_FRAMED",
		"NDT_FIRELIKE",
		"NDT_GLASSLIKE_FRAMED_OPTIONAL"
	};

	for (int i = 0; i < 14; i++){
		shaders_header += "#define ";
		shaders_header += drawTypes[i];
		shaders_header += " ";
		shaders_header += itos(i);
		shaders_header += "\n";
	}

	static const char* materialTypes[] = {
		"TILE_MATERIAL_BASIC",
		"TILE_MATERIAL_ALPHA",
		"TILE_MATERIAL_LIQUID_TRANSPARENT",
		"TILE_MATERIAL_LIQUID_OPAQUE",
		"TILE_MATERIAL_WAVING_LEAVES",
		"TILE_MATERIAL_WAVING_PLANTS"
	};

	for (int i = 0; i < 6; i++){
		shaders_header += "#define ";
		shaders_header += materialTypes[i];
		shaders_header += " ";
		shaders_header += itos(i);
		shaders_header += "\n";
	}

	shaders_header += "#define MATERIAL_TYPE ";
	shaders_header += itos(material_type);
	shaders_header += "\n";
	shaders_header += "#define DRAW_TYPE ";
	shaders_header += itos(drawtype);
	shaders_header += "\n";

	if (g_settings->getBool("generate_normalmaps")){
		shaders_header += "#define GENERATE_NORMALMAPS\n";
		shaders_header += "#define NORMALMAPS_STRENGTH ";
		shaders_header += ftos(g_settings->getFloat("normalmaps_strength"));
		shaders_header += "\n";
		float sample_step;
		int smooth = (int)g_settings->getFloat("normalmaps_smooth");
		switch (smooth){
		case 0:
			sample_step = 0.0078125; // 1.0 / 128.0
			break;
		case 1:
			sample_step = 0.00390625; // 1.0 / 256.0
			break;
		case 2:
			sample_step = 0.001953125; // 1.0 / 512.0
			break;
		default:
			sample_step = 0.0078125;
			break;
		}
		shaders_header += "#define SAMPLE_STEP ";
		shaders_header += ftos(sample_step);
		shaders_header += "\n";
	}

	if (g_settings->getBool("enable_bumpmapping"))
		shaders_header += "#define ENABLE_BUMPMAPPING\n";

	if (g_settings->getBool("enable_parallax_occlusion")){
		shaders_header += "#define ENABLE_PARALLAX_OCCLUSION\n";
		shaders_header += "#define PARALLAX_OCCLUSION_SCALE ";
		shaders_header += ftos(g_settings->getFloat("parallax_occlusion_scale"));
		shaders_header += "\n";
		shaders_header += "#define PARALLAX_OCCLUSION_BIAS ";
		shaders_header += ftos(g_settings->getFloat("parallax_occlusion_bias"));
		shaders_header += "\n";
	}

	if (g_settings->getBool("enable_bumpmapping") || g_settings->getBool("enable_parallax_occlusion"))
		shaders_header += "#define USE_NORMALMAPS\n";

	if (g_settings->getBool("enable_waving_water")){
		shaders_header += "#define ENABLE_WAVING_WATER 1\n";
		shaders_header += "#define WATER_WAVE_HEIGHT ";
		shaders_header += ftos(g_settings->getFloat("water_wave_height"));
		shaders_header += "\n";
		shaders_header += "#define WATER_WAVE_LENGTH ";
		shaders_header += ftos(g_settings->getFloat("water_wave_length"));
		shaders_header += "\n";
		shaders_header += "#define WATER_WAVE_SPEED ";
		shaders_header += ftos(g_settings->getFloat("water_wave_speed"));
		shaders_header += "\n";
	} else{
		shaders_header += "#define ENABLE_WAVING_WATER 0\n";
	}

	shaders_header += "#define ENABLE_WAVING_LEAVES ";
	if (g_settings->getBool("enable_waving_leaves"))
		shaders_header += "1\n";
	else
		shaders_header += "0\n";

	shaders_header += "#define ENABLE_WAVING_PLANTS ";
	if (g_settings->getBool("enable_waving_plants"))
		shaders_header += "1\n";
	else
		shaders_header += "0\n";

	if(pixel_program != "")
		pixel_program = shaders_header + pixel_program;
	if(vertex_program != "")
		vertex_program = shaders_header + vertex_program;
	if(geometry_program != "")
		geometry_program = shaders_header + geometry_program;

	// Call addHighLevelShaderMaterial() or addShaderMaterial()
	const c8* vertex_program_ptr = 0;
	const c8* pixel_program_ptr = 0;
	const c8* geometry_program_ptr = 0;
	if(vertex_program != "")
		vertex_program_ptr = vertex_program.c_str();
	if(pixel_program != "")
		pixel_program_ptr = pixel_program.c_str();
	if(geometry_program != "")
		geometry_program_ptr = geometry_program.c_str();
	s32 shadermat = -1;
	if(is_highlevel){
		infostream<<"Compiling high level shaders for "<<name<<std::endl;
		shadermat = gpu->addHighLevelShaderMaterial(
			vertex_program_ptr,   // Vertex shader program
			"vertexMain",         // Vertex shader entry point
			video::EVST_VS_1_1,   // Vertex shader version
			pixel_program_ptr,    // Pixel shader program
			"pixelMain",          // Pixel shader entry point
			video::EPST_PS_1_1,   // Pixel shader version
			geometry_program_ptr, // Geometry shader program
			"geometryMain",       // Geometry shader entry point
			video::EGST_GS_4_0,   // Geometry shader version
			scene::EPT_TRIANGLES,      // Geometry shader input
			scene::EPT_TRIANGLE_STRIP, // Geometry shader output
			0,                         // Support maximum number of vertices
			callback,                  // Set-constant callback
			shaderinfo.base_material,  // Base material
			1                          // Userdata passed to callback
			);
		if(shadermat == -1){
			errorstream<<"generate_shader(): "
					"failed to generate \""<<name<<"\", "
					"addHighLevelShaderMaterial failed."
					<<std::endl;
			return shaderinfo;
		}
	}
	else{
		infostream<<"Compiling assembly shaders for "<<name<<std::endl;
		shadermat = gpu->addShaderMaterial(
			vertex_program_ptr,   // Vertex shader program
			pixel_program_ptr,    // Pixel shader program
			callback,             // Set-constant callback
			shaderinfo.base_material,  // Base material
			0                     // Userdata passed to callback
			);

		if(shadermat == -1){
			errorstream<<"generate_shader(): "
					"failed to generate \""<<name<<"\", "
					"addShaderMaterial failed."
					<<std::endl;
			return shaderinfo;
		}
	}

	// HACK, TODO: investigate this better
	// Grab the material renderer once more so minetest doesn't crash on exit
	driver->getMaterialRenderer(shadermat)->grab();

	// Apply the newly created material type
	shaderinfo.material = (video::E_MATERIAL_TYPE) shadermat;
	return shaderinfo;
}

void load_shaders(std::string name, SourceShaderCache *sourcecache,
		video::E_DRIVER_TYPE drivertype, bool enable_shaders,
		std::string &vertex_program, std::string &pixel_program,
		std::string &geometry_program, bool &is_highlevel)
{
	vertex_program = "";
	pixel_program = "";
	geometry_program = "";
	is_highlevel = false;

	if(enable_shaders){
		// Look for high level shaders
		if(drivertype == video::EDT_DIRECT3D9){
			// Direct3D 9: HLSL
			// (All shaders in one file)
			vertex_program = sourcecache->getOrLoad(name, "d3d9.hlsl");
			pixel_program = vertex_program;
			geometry_program = vertex_program;
		}
		else if(drivertype == video::EDT_OPENGL){
			// OpenGL: GLSL
			vertex_program = sourcecache->getOrLoad(name, "opengl_vertex.glsl");
			pixel_program = sourcecache->getOrLoad(name, "opengl_fragment.glsl");
			geometry_program = sourcecache->getOrLoad(name, "opengl_geometry.glsl");
		}
		if(vertex_program != "" || pixel_program != "" || geometry_program != ""){
			is_highlevel = true;
			return;
		}
	}

}
qWM|ٽ&rݾM'?OXz*fbZtyW~-QMC#q*6XUlY,e±ˠȍ?(?,nތt^|eOLYgz~L8TvOaz#I'O28̒"ցK5w"M_J5G2$ay4cL4J;t0}c"0;قdro܉)ufkҚFAE0LA4&C#HiqSi9u5$ۊ45,KI %RC@TPMܦL S_N)˒2qĤ8c{nɌaK2XfnO|pj].*"KʰY:nΕÍu{es˲9vshJ{kkM#! l O;Md[7:BR{R{Qɏ?LPG<5U[|b2sn~w;GxNߎ2HhRRGMilZVY:rQ4d4c !҆d䩉)=!NVxo0 VmUVOV0?2poE%LR:(_;S$q~l<@ O^Ahޡ!iDhXl_3g'*Y?p7 U[bן\7RoψOd}kJAM$ya4 -ZJMdMdMdNOT00l恃mA=Qͱ: B@ td;CpMd܏*Xe9#՟88GT,0R§xY5gNafgCeؿ:?ZrǷ$u0qb]XO\dxVHHRڱOϱٷt ~_}V mٻ37Y̷n۳7{4-ϴ eiRhW'l]9|a`hXF1QFF lǫ$N]wc4 lT~-~P?^φkn֚x;`o^1?7QMݾm>G h8<8欮..1ľn?>h oΣy$ 8fLON>[jDHSCr@>Q7f5~Q'܎8dk {LWN.'0zOJN\)t#pFu @ ‡#Y^BO>8SΝ18*ӏ?l♝xڜ᎔`šNFdC|7`:Dsf28DgNfa'R׵Om :#QO=Vk$- ؒ<?4@O $*a'(\ O>109cFW2EZCA0FŸjziҎ>?(xXZMHi?di5ON,0WVڹL1o%ɇJ#-&TOOИ>t bڛ@ڕrf,\\g3=l5cBO09a$YK*Y& fw?;lkշլc)MCqI$dD̟ r'ɃICT39k%uBT%O(|Ѫ3?g7C }O3LΜ22YR,b(ʓa2 ҧpJfFQlJ?\0}ћةhfY 0ad;@į?Ud"$HD8 ƺrO#$(GSL kMA?3m**TyF%T,ʓlĩ7tLc4{r<06Dj#N=iγL;,^اZ6Ó0jz0$#)x܏9`jN;Q\'JM*r;9<ɢRʚ;Ia;L`0 gmΠ&Yx nGh*MpNu TY#XN=9J4Jq59GuRxQv+fb&T[aR|Ckx/{CXIOsÔ!PYIM\]z;٢|MwDgOZ_>񆙃yza݇w^iCߏd~#hhtҏ\>p'x!S˞$nT:1 0~Gz??~h)jի]g&xV~Mg87j=-TSWPXV*ȜRz7xn9&q'*6s":F:!Ndǃ8U%vJY{Û?.'%_ctX[ribI>u,rڍӟ)GTd%]Y9)ӓA=:9iSAc΢fG=4zY&#t'T%'+&z!FOk0{ST-tEw7u13sy׶={|`tNԛ@<fg7@^VL>OtZN"o'{ >FY=Yayc-/j~'s8oSָ͓ͯ$HSL0i_5W؞яO>z{e[#vg{wh'd잴ʧtkVw's*:)E`y3Y##',?=qk;a#>I=s@#{#ܼOGwUn@;wWrdǃ5Mx' |1GXOk,~23g,)SCdc e upf1Y׳Qםl5I<=O'?qՎ `0>bO7'c9319S'>< w4ʏٞN7pSu<:bʶ8 cHNP&%x:>w~sQpۣ cMxcIOvNr:r'{aŎ~y:SN:?Ndz%;i~q9iO`~ƛ? 3:?ӹO~Vso;;q sŖvñ9ê? v=ۏ玞t>>ꎐ=Qg?:yHgq>#'ޏ>oc͕=1m}3Ľ:boǚqQ<6 O?zxnc =a${"G,=K*W};I)98cnOriܑ$G >)؁rOr][-45Z#OlZR!:!GcߐlwGzr>9Gp?b_qXYuecM]AqN H*USdp8h]tR2l24 @JTXCda,J_e@q Q0C!0X^KJjLo J]"EԷ|vn޹olHNsXἒ`'ݏ ;qOJ^M,]P_POG'%K2?rFY*~M#QEt!0. ?]q]8cRq# `c\ >ǣ>=Icr'珮yVٻ{-<'y;q́ڇ>(8R-y~H䃴vRf-:'B7o<žǩ7G~( ;Aʟ~&ha?L\睠xGD9᤟;Tڧ'@>SjN}aTߏ< =p<w`>Q>rwW=Tѥbe2ȱO:x)'y& vKP рpnHv$Wݸ7)&rW)kdk""`h'0uD)̏<sil4Ig}~={)M2ϟz{ɓD0]v pOX9~!xcGqc8ܧ1WkArɆK+Bé<;޺咬l9SM 'b܇-aNG|yD{3ώ~8ў lTFrC؏ =DIaxxQ`uƻqTUO?/ESwՎLJTnS0vѧᏬ\1f38Ot3<q7'l7#Iۏ.dd(Ctd~C0l 'X)0JR; <1ҜDn #7HCpNNv'J.2gyY?'~I:frc TKW45]|ܾb5OzA{rnwaߏ?Bo!,TBbGo ˋqK?bG(>U.?xwI YEz|J~8G*[џz_d4O=q憰P=?|m7Gxzsػ}c菆7 ww鰬*v5$S1OTO9SȜvYblg,*{31>#9O_6'3=cy{#<ɟ4=Ϻ:03h>d'96|38Ǜ<$>g~ΌVsӷxo${c؟=yOw<'OVJys|C"~םG<ϐw3lwc8'L<3:C3O;'v5O>y':gN}v39#',Fk]"'|X«yvJ쏌G}!AF6 ~zߏ7RLFR>'=>(*W8zi!wc<+QTANuLJO'9 $Nv|q:s'>X{D8)*x3"{ v_q{legYeK~Ҧ]{0;pFղcMpWr~ս}Ws~'\=sG?UTYp/ I4DwG=Z}aHɨ8)6&ݟlv>LOY9c;_vGɇv_ݫ?H?ؙ/X~olԠ1zM/?5?mtmfm\)belԟ܀Ê}t\>q*U= =Pmil'qC]n{Sl{ ^x wG?V0mv){r> Bd!۰Z I?O)J^UUJ\Bܓ U;I̎lto엊U_9jvOtNxyxy7O&U5ܫEXZ˻]v])/x 4N9X8G$"<HONG HGM=~ɧ }"vf}Q>TSWlGc46jo`fAO'6g! әiVz9SPW="l݈D),˱;vs8 @a]e딗^{Eזט/=gYBt[ L.fNYDC ?2Q#`laP/"򶭫hkuX9d<=ɑaQb)6`I't98ӰJK=NLX8ITOxMn dwh:d99/a+ Ħt+d ~qI;3o+8l<N!˛XӤ+#;üx-UwX$x9e~ @5DR\_ %Ìߋ.8:4N,N*hLbv"u7Ň?;i e=gC5 4Lffvإv3'81 'I牼}QwXSu#9h9i&=j)kt,ZQDg~<#}M8`@AH>Q9r%5- JH7P&G&`(xN9$&c'Hq#'E D8rd*37U,q#YgSJ[ * `I7MݧNꝸ Ru՞sC<ٙך|rsD'z MbZjLF04 aAO8X01{8z3=w?&G<"?vSM#rlMPbmz_q|b*14JkEu]i 7*r;1O' {Q݊9w|Lʞlv HoIIʓ3Nxdvq`x! ѐmvf۝*zSdo I(z牬43Z7x? n.0UG'yʍJ=Բ*2)&P#&ɫ{1@a'pL2d_ypM:C9S"oCœ@ә>媻pGc }Mʞݝ]:woNcd9C3!dyQ͑N*Y5Qʜҙj9!i7wsF܎5 ,r #ʏ#7#w"d2Qғ!]s'C[ɗC F+NۣTq(n^QˏM&AsGxijXJS:nУ9w#7uD2hFc\fm qr!=&dqJL$C#!< ԝ8{;nq7g;K#DO9IG>}Gy ǫrg>nZxnJg1ʢh`̝Ȣ#v`㎀xNlޝ(d{M2ez^ele22b#|9sş|yʏ`5zJ3)ے<@֍Μ̺e~8>:~أ̥a".qYŝo/H=<+eaY.? QḈ>W㍴ۿ'p O:;6m\"{Ku]-%,+!͏m>y%y)fjۓ ?x{-e礝 q$fU{%\jṓ`3D,"&nN3kE%>(*Ǵ*s9nx; m`<I:QPRi5Cci4Χުu|d)'&93xrm$se!CO#8eT(@ՓU&:cLuKVzS<: "@JQ =7" yDpI[ ?{B7P,FO48Ş|<АsOX;< g=!fO:P %WXL N 2;uݵ@ /%(RpxnjҙMxR}ULV<\. x.Uem~&ߒO;zxRG{o%:ww m]:'zpڎ]jض2i;O*YyÁxpSGd$HH- \6 0 C~6]#bdVS,eUVrYBI O|w;t#=rJ`x<sk; = 3&FHЏ6Uj"K%&h!(ٲLY ЁQQID@*J(#Ai1 &fc&K^$[3ڞ:#y#Ԓ4ߍ¾yc3OH8:~K{'ITxk.%}6k=`ITkGz,J?A_[jmN(Y9'FCEMXom 6|:U*^;ɷئ ۧ`Q?OCkJ6fx^uEMBt)Н G~[lgo:2;0X8m.*&·E2 `/1~؎|fdi)k17FbWh;*x-a%,TL8JAee9T1(j̑;`Fbr0)Gt9<))(C̞䙒3&fLIIDț̡!Pqz'CDݝHԝH9c4q:K`>:N,GTA7Πy8?oΌ:CvvI#~4 _ኯ\ f4v v41 q K$`xO73t(R7Y$wQЙ)J|()+"d((ԔJJ&eE)J S)JR3HH)J`)Ed~ VA!i(ȢRДDF ddQ@Q)J(i%(`Q00)F dLPnə0{)4~sgC59MIaE4vCeJwj8# '2RQJQJQE)JQE JRRE%RR)E7noU1D;0oKOiʾ++6-G.?=D=Q$$I>(_FXReU*dB*i"B$ ɳfe!$I)[%EpNMϓљwlmO1j1*riЫ,:d_C3$~~c_➼&jIÞ<9>7<|ߩ45:SNxx>t#~Nr$9C0 }D2 ֛.c={ ?\jO;y%Ŵz3R&t6M2N35\-KK3 $i`7wx~An,۶鉎vh;)0refI?Y>,;ksQ~8~i9sz iʎ8{lUQxM R!-,5$ \:$1*R:t!ywdt蔼01p̠V%&jj*FSbv1-bd!=D4A)JRS|=E3#E"I6QG$&ta}蓠Vwͦ@m 7M_I!MKJ,KI5{RoL]u۬% w3p>6V;nnɔ_o2L0%!ňDWD(TN wI=)ȍ87 Wxߒ]3˺+Jg23RsSITʜrT}sLlvp7B%.@/ & a~9J?Pz>$yㆇyRmT@mvaHaU)ehIvS\NR=Jc TVS׋%%#HWq}ݯ7_![m=t49R&G/XAJ! d0Q,`L2R,=MC9JYJ* 6`Z3E20`bY)))S3I"YF YE)č%2,RQJ2ɂ,e,2dSh,҅  1D!@EQEYj1$c1iL XҔ0RP #ۇp8fh75u{m~~OOXd("cXHHd%Z ژ]1r7ݬZ ̢vHh~'>O'q!܈w̚=`τyB9aG.=R3tUsБUIX;&W$;!,?XU+j2áVaFHYYf18?xqÊ8g"78\QD>8"VӇ S ª.8D\HAkZ)^J4IVUM&,25LTҒmHZ$6سͲq2=Bs'O4R{&G{bws#xamsW )I,֖b7M&oѝ!>Τl q܎`Nagt<ɝ;ҦlC 2lA͏>Twa;=l{$YSՙ'^?Q4GRYM'')m;iɽR^MM{BF1/c(C#&LGom_ǧUS daiuv3B%׊Tf Hhj5Va0B)mD@b%- qpD {z S˽8f'?МIǧ,1zd@9Ȗ9Jl)?BGwe[WFQܧx[mMLbճ#l;$i9Zcez 2x *#Z#n&A;!l;{)^(m=p2;6ms(ndQ=擹Z5"ىiu$ozY_ҝ lkpOHDLL6p:?t6ޮN<\ .y9C?(#z{tɢ+\&" j wmD(QSj-V?XZ t G%;2)n%NTܞ=YNuVN:HUCZDLyVjA@>'3쯄E(g%4!<ͳɼ2ۜћFz9$9@irråm[UWĝ@'I6M<vڙ?h>)R}'9yogNNQ620)٧7|o80{+"!pb9'ɱ9Ks_KwÁߨ8 "J+ǫ㈜v cFd32,,vD-g{:ik!ՖjJDN~ڛaMdɉ07.[[[7c2<9B>#LDW$INT۟$yac!#$Qp '0M,d}'bRbYϻ J):LLILIFVܑBe$XK0hXltmkF؃E-y TΜG.#:yսSr4֍&gM~wGx>yW|qhfYʮv Zq/n&NdTٓ>r(Rem2)JTJS,d*p7FL<&n]6!DJxPʧ)IRuNx\#xHSSrxyPA t wq FxUjpkʼnYչS͒|Jr2}өYE"ӪL=/25<JA $(N)R*hU*3LA. M2 L @"PK((LF` $$IbF# F"DH(Xf"J 8JV6apэZFLS$i&C F`0Ҧh 1 2y-9"Y`$HRF =YPY%)*6! B0bC `RaC)ahӌiVVƐ `F0iٛjJeoLR7`A!DЊR HeJ e!f"J$ HΌbbP!I b$b4+c @P4Q!Ja%=@%D< $H#JF 4B(يی+#@GORGGOqq\_ mh ='Hr34GNhm vlM$t2$0ٟmv;"ӵde$5N7ir@E( v#ziN|K>m`Ҵ1]q"Ӎ61 iA4M4tcM884mƛc41itCM6dcX4M)e$H#ƚc1M!nYffjYefv++,3,23ucih`c'݃v``qq鷻jiND`{QhΈuƿ*GN7SDdTG*re§{stM/7[)Ӝ8%%T#T Ć*Ul ifeVrG{{gT6e5]&'!?qM/ &5)?10 QL2?nɍ6K[sp6tq^2v6H|cj?bYڶ6T(99nxDk;y[UXpq n<ʧrVF20`1o%GL'{d&^ 6^ߌUὄeFC |IDϮd?g(MM2~ #i(7?d ƹk dgn-Ħ\U |Qh%SV:wo:a7$MD5-]`n4ye9rImzmU_oaE(~lbŖ&6G@wT"u.m:7ǁy/yt|EIdݧFiM Sόviխ+Ք|YAYǍO>Dwb1}_u^_u8Սh&߂'n) '(C"h4AF ,M)ژrI242cDdIME54W~Hq@rV#; %R3,tn7nq,UU*J5-0Ē`x-EL^E_N+5▮px )!OrgkMyw0KU-].ݑS&Id۔Y4#uwK1*u X5Mľ(_i]^m"H> zVޕV6KKJыS-QQj*II)pUM7 ̑'F<|+ml1q6yCN>oTJOQOwG~դ1JJb>,3 [4MT5: IFZزM8(P4Pb j*y' (pg/h>:v|&oSy6{N]wn9LY&f7݊3[4`=1>̒M\:c]mk~cFbCB11XEL#S2U6H))>ș #1;S ~fQfstnEanC޾ʽ/^RcLlءIqSdeUYrCc PyLq)K {gL kFz/?6"(L pL )JS) JRelIY6l™aҢI5Db؊B6ԕ&Th2DE]IwIV- )"}JJSdSIJeI$riҗȍ}P~x$8[ǒ ?W{'<*DʔRI Щ HRR`!E$E6(B? ՞<3Ii<%$NLss9Ψtm|(#v;X`7sw}8~-_b&M)LȑeKJ$zX9V4@΄ަ-qmQk^tSK:2{GH|}tå<ж}JS`R#'w'h"4فx3SR@ǐ$ȏK,=fܖ# CQ5 ]&'4߹Aw߸fpVaaPuOD6M$rիmUuo{]]I$dR!ieDt"m)?8'YɪST`6l_2sP?x~tfɥ'#I5&Zvљ4~ ё)w5:&|LSĦ21qgnM%DD(. :$+VX\A`懰Z~ڍZoq!8Fumg2Im_g+W.qr2(ZKm%khRm[JBmmVVJ mTk*ŨQEեEZ!e[lmK;~ -0a9sp}U.IQkчH?>}d?j6 338'2)Lr hOH2O:`?fy1MS0`&T7dBX!&b+9sF La13)짆~vzWM˱Nze E0/|OWjzOyݏǝƎ?j^6G~φ' hxHE4`>d9/*Xu)@$wWa.Utddda6qtF3!闝,9C\܆ޒk9&ï[8#Zsż8NSO@@9׈U A5̀KO6FB7 )M}݄yh0M`=1 sϱmU=^>.0)th1šcS9& %JUN7)Ј=AD?ȲHG*#PL $a>d#㣎K4OX\ݾy"R?lθc l܌D(Н @WQeD"c GPh/gcJuENc ?"<ղ~=OK¶SrHʼ*_c|{pQ=F %Q1,}7:z zl ZV\-̴PBku,5+s1iTX]w bɉ,{V?w!T6 O9eɹEU4? /B[Q 1n p%?@dUcQ͓¡d}!qu)yXEEQzBXidIUc?RiMj_<$C")(!b $`"4 kB"RȔT\QPXXzs2O4>xcvM#vki>P#< XC 胢Bu(FK~񑂔...!wy*9ޏ*==jyl[*LͲȲhԵ!UmٻO7]d0TĉJ(Q`vF=l ܍7^4X[8e$* $ɁQB~N:7Za:`T9Fjn0"J̌}alOׇ㍙CO%ɥR KYY&Jii0)X00ͮfiY0Tii+&l?9vܟ`Ǝq>wz6Ml W6TkUƒz:Rv8G?4`TzNhʦṳen"eC(hg \ ߏX((\D08QO  3LڌvߏMO8RUs£pqv7cO͔E6Oۍ)Tü[')Ic g"rJ"JEMY;=k+(ho}016NGFDq'b䑃n+(0L$S"4m]M/{??`Q?h1im4eÇ%Z9^-ܶs<s c,3cJR֥1ibR8swٛv\9”@D)b2T6DR!ker5^(r/)Hmr% SnZCe-mE9eR8S9m8pԦ8p)[ N9uQ^mjZ*ZDRvZ-e)g9ˀp===/%IIyrsB"9pg Q(RQ%)b"9(T[K9˸)-\a[X%b$AhAb f7,K*"BImkc .* 999A J%j.ֶ)KWғs9wt%v7fG9%u_?G1,T~ > F &GPP$(ȑ2J%C?I:Dp\+L^'8Fax  pR,ʮ#2pF L%Dd$`pӆpz~Vߤ7 L:#qI`;7=_-yTM~Ot$)-OڞxCuk"߫٩"m3AhPdHfI3fla<)ϿfѹLORrLf\i)yTu*r.f3IMFY(, O?|?fYO>i0efi4% &&JXE'hm8)4) 58׳MaէCDh!F{g]Ae5I>p&s$+C'C֏T?ȇ(=e6||`"'&4Ƭ’,@}6,dc l[4aVE98ZFd4JNz4~@ =oߥC]LtcK,i'E `sSy$Rݮh|BI?n#(vT) H[g!S"k2QCɤߛʧ$a@ql ^Uk:T^A"D{ ;mFC@o4R<6&maO?YJb<(ى j!!& JA=LZg:ʲrIͧ5 ⽌h׻34:mXL+o7Xט\c bJ8qF)&] `q=@{#`T\]6 s?hWFGB [m@4sE*r/ 49=}59p@tD9w8~T]iʼL97ibd.)^oTZ`i[~mپx yDO#X,{r%W?RNJ<{~Q?zNudi7CȦ&! H}04M2S͔dh$!үs)eTu¤R?ˬ247o vRii6qL( "ҳߕ%|>̤:Zc3 1f*t_y?U޾́oV>u7ѵ3~sVU:U[$d)(٦6)KICˉD"Q4 D߄&Bi!I3'BO 99!ٟO}" =S}($FY2OhFSr7k1xZv $ȃ!)W !%R!=ZI#4bi&Q$Zj 4blRP#J)F"(ߺԓ?ƝKw:[OڢzvUX0*Ri#0d4& PJhI]WkO>2vNFfdanbΩXFD~3V!T"xbc uar*c+?Qb Y6/-ޱS޻IÀqP)?M? ?~B++kmKU*¢α~hF-WvKj[*,`O;TQ)N ,UXhأ@!HQO7¿_NmDDfyQ CI%]pdt59hogQTGopj:08Mj&6P ,k@|3&hCCېXNƆ}#IJ%,?& f29"9MZlpߟ0$p3_7ݙ7ӑ1{ s ݧdf%Ie_ñm6WПO~.qg3Ч$!(L"~({IW&ZZ\Msd5NiVudLL`#,-T ?!6Iy222sgjdܳa=6E ,8ȕRS7Lۍ!ȟ!$ܑ<)$p##fHqRw7G䌜L82 9x=ےpGT*OPL4O#C0HO4 &'0Țl!# Q(]~Iϡq$YR`a&Dt[*m1y$2`MI#3= HЙÔG&9Br L9C5(4`l 5Qj0#;Ax,^Y8)%! @a@mF10nG%Mh BJH%|6n{ =51Sm]@`@t:PtB0c18>9pC ׸ KݻZ5(C!lR: Ev otҨ D$F0(: %!TҴj2+l-`pQ2ӻ@ u:fR*"UQTR  @Ik6$[%  4 ; H 2p(2ւ@(@*jkSٹm]t m::Ц8%Tqf8:S`r.qS8!ɈCMh cH] d:I9 ]dܪ (llI Z@ (((P( d Si@5Q(@"d Ih&P@ҋ &T8@:Z$d Є4@IA 2H @ TP@l@Ѡ c`Р("4, Q @0%`4@H$EE0: h;sفq$M r5(4 Bh`B 7`rU.nΒ$&T4$]3Q@6H:Q@9EJ:`"@ TS@rP(@v@"Ɗ Ѡ휚@SA րBHH DhhSgC C* 7`HE(C`]$: (H@N` `P`PL!* MUB'@PHf:nNƄ-w`uf PHt 6Ek*;0F5APPSF`F +s)A4q Hl @J@@iE"AvFj4= 6&CA=L=Oh ~Ty M1<'L&Q`D`f5LdLѐ ڪJU?TooU*iU2oGmdhфhh0FFi`@hbh " j`ihi6#&CL MI M6Tj چ#Q2IO&L2mODڞєѵSRD b6425 ijl#&&M4'M14Msxi I#H$Kbm62|Mrn|""j5J2Mѭ>6x6F4cE8rLJ=9iz,8I%H6ݞ7'-h[n$ |9y&pq&er봍jmԋu۱g<6CLQ(3B0̬@H] v)Ҁ5.8)Vx`IK2`2(%jEPQ0"Y{/4?9Ll[~}4X. f{ݛX>6xec|n%9x&ZE b~£Bıp;H!rJd/$c/."D7n@pErF“ !1 #| E7 oɃH3.\\ cM8 RF0%!,88U%7M6 pM *0+`:W}b(}Vʼps=[S KnIƦ2qx[ 9˩KAȦJoRE9 C%/G(tHCd'N.rqa. )pXरYr`0& z,ƆKK.h9(\X*1hUTG8M". t. MėD(2Lχ@'Bd# EI҆:P鎜1 Dg/ .0TdXuDu('^G`q3Y\E ؆ .I;̎/v`Lj(ZB-߈`QdyAs xa -$ !YH$x"` b[ "?Di^FEv e{Pe_L<>l ebReyB(}J2@#ItErLRezR]/X=BZLfR,A+!ɖ,ɉ2Zz(2"ęobKPDira,Oh&Zĸęcڦ{`tI}b\.Ldi{\CݥɄXGK0.bL&Pa0%*Ľ1ɘ=^>}(\>ul`),i|zdh,K|i.4.g&w%fO&%fX&0ϐ4__ )>p,K3H|2'̒a- 3~i1&h]$v%L?iB_ ),_ P\@i| 2t>}Q.1 #DIX.EI?1?8Ɵ\(#$~ A (1 b!~0 &qp,?xF1b(2  bC${ X(댁baeP#9=;@> 6W@vX|@y@P%F1q1 d<_=w. 0$ݏyaH\Y$F''J8z:.KΪ>BƖ'a3d#9gO9՝lggIZU[k]uגuzZnԫuiGs*yvn~}nw뿿νzpZl6SK$Q%l5K4AZRHKT5K4AmZR I*YY@m-e5M,I/Cmif6ZSjjX6Zk+6h-e5M,Htչs[s\9r9sU6kMefԵ4 "UYYA!-e5M,HfVVYKY6MiA"AmKY65-fԵ5X6Zk+-,HkmjZ,@"[MiԳA"AKY-Mf -fVjY[KY-Mf -VjY[MږKfVjYZY-Mf -VjY՛Y-Mf 6Zk+5,HAUMږM%֚K4[Sk6D%kMef *k6D.W-k\nj幮ss-ͩjm4 W ]7O;Vv[]]vvvvٶmKSiKY5,HAUfڛM4HZ٭5,HAkJjmM$-Zk+*Y*Sjm4 "[MifB jUib@DYYRԫ5MĀU5 -VjSiMZ˦t.-VTA!m{]5zym伻k=QE͆LѣA 6 ePmMBgQj5 FU)M^DD+vnݻ]ݻ]vZҬ6, !m5Y~+5vn]vkv۷nݮݽ m5YeĄ*ʦ٥-k,A$A[JTڛ4#ϫ5Ye " ZUJ٥+MiYfH6Tڛ4Y5,IklڥSjlfk,A$AZT6, !m5Ye " ڦ6ia Zk5Y Mj, #շ5knk.\˜ͪj, !jiYfH6Z4֚eh$+Sj5KSf֬5,IjjZ, !m+5,$Aҥjl:f4 kSjZMX@Beh Ե*4k,@ږT٥}O5::6񷎼||||oԵ*4 $Veh ֦jU6id@H+5,$AZUUkSfYz;ZVk5Y$y-MK fYe+ST6, !ZVk5YHj嫖m\ۚ\9\Vk5YHV6ia YYYf" -KSjlҳYYHmKRڛ4k,@-KSjlYf" jZ٥+YYl@AKRԵ6ia iYl@AZjllk6YI jZ, #ߪ. [H or_qpYf셸3}3pBLf HB, p^H  `m{c>O}>kyyky5yTږKmk6YI Ե-MX@B5f4 $YjZ, !Zk5͖h$ ZKkilA$jԵ-MX@BVk6Y.ZK< #kܭnms\9sk.s]-KSfp-Vk6iU-KRe*eff6jlm5[ۚr.\86, HMeff-ejmMX@5͚h"@jmMX$5YMHԵ6,H&k+54DZRږYb@+Mef4 mfԵ6X$MYY -SjZWK,"ZZ+s[湮s˜8RږYaBVk,ASjjR, HmYY +f6X@Mef4ZSTږYY@ ښԲ@͚ mf6BYYY٠mMSj[, l [6,$+Jf6ٵ-Me!m++54@ڥjmMBk+54@YjZSe!5͚Hm-KSTd HV͚HutR6YfgM-MSe'YҶk+64+ejj, Vwt+64> <<=5鮖uUui$JRi1It. l(7Ct^`4`&PYELHiM:i:};O;p }AЅ #.tttttk-KSTd HVͦ5RԵ-YVm,!k-KR٥ HZef6Ե-Y"5K4@ղԵ-Y"[iYBmKR٥ IYBmKR٥ IifjZ,I^;µ[k<PȃG?0(JUU˘5&8!MB2"J1ğ$ (aZca벱@x8 j X7$jZ-m B%i UG@t%@BwUW7:J5KX%Kb,-$=6"s'%D nO(_Bb[pLe O` r 1Fs@Q|nF4v{1UmUiIi*s6ir[͉l2HA!ԉ!t#G7& DHH:O($H%I(Iͥ?PZN{1Tp=FFo70!!%DѝPErI YhI,\Z2 R]*":$!!eL88ٿcgYdheqY@A 0HP8q&# 7x=ILj)M9# dzG =Ï'8O<؜xLI$<#o 燎=DG燇$戓d6XiFj 3mbRȞmkJBXXĹ"D&|W({c=M|ҊLE4-2 QhR$H#@Š,cB$c4ل`8b#QPqUrGąAj.INBKlL=ȇL# $o$a%3#%J(0>/pحĂ|Hx2S֢hy !`.V$, -] ͆<?: ! "'@oJQ  /#rp)O\h(wK,>>oJ:KQ9R-#ǘndSqQl2b2G"8R" I8XADza@Jty44jSAz1kJyptA>tBy +?DqCu|J{N3p{+A~):B( +Av)|-?4C@\t<O] tREptO_rsIoKÍX^})#p},4Uz:Z?g`>C( O'YRg~sh`]>Cc6kT x4yx/٨t'Z]v tJW6*{5@:ZX\tCA:N/ifibu;1Od0~Cmsb{1f>c5:S@:Z~ԙ/b- :OGCI0}Iv]/#ɄO҇⁥֗]_2@en?0KS49w^ E`NtCSIo"@;%O-C $_kX'!,K~%'3t(t'.Sen6/pZK@l4x# R?*' }$EHB"=~"~x>HNcJG=g?#=#'2T_R=St!Ϡn* `ORpM}*H8C2], MBAo eMN $(޴MaR*RT>Dyȓ&D2O19hM=Y~;T>> ՚vcF:܎Ӗډ)nSpsC 6L8tL1F~)hfc~ toZXZ<XxaUg!৙@ »mAS@<KW4t&X`)JWmmA@:';^>t ,Ok?en붶):`  ,Of;}_LOH`s\:Ov,O )>!z\,CP@>Ag\l0[ɰk2d BJOK~2A< $_5,k4v ~Io" 'ړ<9t0~Cms}x( OÐxZ|FԙhoI9Rg1Nt:=Cp;Co+S!hoIyRgsKCƇ]T!xpd{[{ z`>Ob9B'pzP`{ 'CC}t9B'@\ %'2Pa>v`䤋;{r9~:@:(0=nA:8r>=0If|%4sP}7 #!y 2<8 ðp=r l ЇC(xKCAdxO K }+VW azNS6Z ^5֗;Kiba؜'tX]pzPnOB=ĺց/+商>:(8!58TpADYzSw7()-*O<6A($''Ohx'o+q<Qh훱<9-q)djLϮNItx 猼`d3{Kzby==MI' l|kEΔ}[|wo2k$*O& S!{16dz25DXb0)K,oq\yR {uW՞ni3NjAjFk?~pmOdXKDž왤b8ULj< X2Q&D`< dn$ I@K-^}`?KO]zO_RKiba{ kC;҇:^>ĺM~)C=v= /q=| ӭ{yJ^Lx_xF}S)YtEh&~zPp0'J[u6‡0=vWu;t^4υ:\)buv‡4=`]]dn; R'IA!\|xM]_((t[xڃ>pW4{C4?`Jt@en*4p,O; s0` C(]r CzORg|b C(񡷕_X!^%'3t(t'.)+pڃ=pR\h3|(xK]]U+[Pg.@RW4}4>Ku(C2 | "1># =&GkqddJL >jYG*) ǎptiKˆN0ImY->KJq4h,0&x^I.q+34lFpxђM&iIғ- DE*T'B؟{Ǎ0pVmOU}}s @wW%9=Y(Lyhtpf"@%%Ro$7 @$'?2}kZ VDțVQb77x\w$,&p$,|6_{g-Mak=md8?+ӠN*pJO߇C1Dx@:L)YNb򧼍I~}🤧H i}:DAuaŸ*3l; @: `tt&:GsA?B&MbaàN^h2<mV{O8iãy<o+}ӫ,6/Y<Yx%\coupUt^y!߸Mu\coup?= y!Wq:Bo+?*' >Sv M;Fnڃ>:*'YvZ+A sA sQ?v }bt3p~._)oqr~9r9NCD&yO| =á xOpx3j 8$Ϗ>B0pK0/Kc[S%.1dш`%.1̓!\eojnGZJ`|G'$`&~>z4clso}N@"P1ѐi`=#iDp 1)Җx/aE kПܐЧ"rMqy2ryt7AD .&>x}1p"78}l­?&\˻^ejO;:Hk*1z܋t&hĢ-M*R8Nis ϸ0FF{!OdX<ރ.% mPڦ})LʩJUS4(J4,RXjZLR2%c0LK%IJ?P/l:OOaׁA:EIՂF_l>_l=wN>C{j ]XI}ytX'U ca?=_a>u`*ÿq1j=_aAIV @B}ïՂ_a߄=b6'Ꮛ:PdP={6^?(CE 19>Y&-;'nH$hD͓ L0z2BXRM(Q@҆|gdY#+JG #8/Ӓi4X1hNFXrL@ђsG;',}BP~Kק'T 4򸁍:E/P/l>臾 ca:>X:O_`*\6|X. ca?t>/ _{󸁍O::OE@A l?@A l= />:NJ|@úxït[T T6z@p>;'zï,@ú}ڻm. wR ^iT?>VH5x >j#RjQg+̍iUX)GYlc,UfU~AfuV%81Q[I7?Oۋ)J֭ZjֲYᡸN %R`8A1ȩ%)rGUe ,^ۏ,(ϓxA/&L & 3&X8DIQXl4DiYyF?M86EEFG'M~݆`\P%D쎜n\`& 2IYtȡ(&IXYR6lɊR̺aՃ&l)Q\dM{k{jm???ݶw/Omgv|`fhN:钙9wx4o$[ysNsmuSC''+_yg-9l,4@n*t!> ]xaSFiQs쉑|N~i7rnWkk`ˍyZ"/^tI'`"'C=ğ""&fI`J?T&JH_Њ%N5?Y9ğ0{DF`>ZPؔ)K <4p}R<?(Iز]a'F`Y>9J(<,Z;W r1~"qp5,L 5CTI;!D)("4$,D߉ghX?nƫg)R>#DokXTఈᏦ ۀYӀj%82bpPYh7<^ |^zjM\ۯ'5aAD琓I|I+'[ҟiG%GRNJ)fÓMl|jjfhM4îjk5Fn]5bvǴL)/&L+ӥv꒻R\(N4KKKá|HXDGu a"),Heeq\=I{"K?|z%G扽ȍzm7\#Ȏsce/^2234 TiSU5"y)=M\wm]џsɋ>d-ߛJ)j[HAQyʗssIo ߓW ?7֣ى'AG<jU,hx4E^̥RMP3ON9Jsxsx&lj㼮hǭ[oB8pq <{ͼ̶kJVZI-[FX%cn/ttz%v–ڒ_p®Dm",E`Gi`#${""(ex˺DG .F8e-ND'pKpYvT|pUZ(T]^$tN/Z0wэa i2p?cAeuBKpQ/>%8-^1.]p24ీC$¢ 'T) PhC>p揈>Q'=G|YG+p{u(QL 0^0b(Xt}=Z|p2IKϨo/ NL#ڦ>(:b&PFI= IB^d7"T)otFe[TOxy5*aB|N7 ԮWs[ gv9 aZqeL>'Y|wz_WS%{ȟlk9G=ڵZeb=eR 6j_qώ[bvziamyTHU>9Wc{Pvh{{5H{OmRjZ1L×]v+\NADy8O%q e,~ ,rfR|a/?>sQ4Bŏ?4ƙU o"y`7}eЌFb\ϪK ,Kb:{(7 X f=3xtGYɶzԘ}}iVK%BR?J/QQ"")C8( "胻0 HK )a00XQdwEPD XrEGWIr%%JM.LJ0\d7(\L-ːRRJD%$)3`z꪿ݙZ_|ӓIɜQUR꥕hiZBa+.6u@1CI`(89 g87,+p`1ĵKRBS:r$B *h`2 .^I&[zzapC= $$HF!{HK!ySt1%R9ɶZVҚJ:IE*6faGg, $&\,ΑQ4%"-oap 3PA BKCQFY|`*c1F*YLiY0sXȘ"^q)r,-`\qv r,&[ql B[ ^.8\enZ;$[-f[---. 6mm6"R@X\EY0k8(]-0L^1nsWxp N-_}ۊq+]~NJ#ɳ1dTKR+Q8d, "<7cFNNxtV\XqibbLyTPQScX'E%OL(3TI*g$n߉??_wUp;8+@dFth,pop9ɬr?DF]87ӃS޳8*":]X0r iNݘhN9^: iuo]:M`ySW?WؕhD{p1RFҺ]%ңtT8|z#?%ijk%&үՆ#ߟ?DH!I%;! XR&4{蕅̝IFQ~|X.\d:SJ/S2k$;4G(( IMR;7HPQ(E"?HTƗ"-㼂_/3 lv-LvkMا!xq;>2Mhw =`u>Bۭ<նDŭ9[bZӸڕk6J3kNېYS\|zTfW+Z^TfWC%LVeuY}Bb+EuY̫֩&%hYZ'IUiiVR-4M{eDΥwiQMJ&Vh>,|Rd,K7RdB }U0 K*/mgMɲ{sӚ1X֣Z>z";s=ף=8<=OIMq#މ礗 =zZ ;RjXugpk(_%v]r{m.We_H2]2y9brtq܎)¶b%\q2"M*#4H*ơ8-TtN 4X{ 'pa쪜k݃iH%]rc[oS |:A|<i2X OV/\>q37%XzB{Dg}"4' 7$j>'$&mEbXYT˶}C74-YiUDud.yb~"mBi '?6E ӟC҉qqELƈ"C #NN`}2P!\_0^԰ǍkGNM|3*۷'qu[i wA;AѺpN / 8*"3QVdV#?V:pW>}`D}]>M~a$&UJYYz,5}2RQ:o$>ऎ5"RKm}!G*K<doj@CA囍>a\o{I8FےIn؞9 XA6*TH q(NmnaܖRT/jWjTjrYW`]_.(Wڬ33#}>8ޜUؕDwQ#,ӍFJ Ӄƽ88?^e#Q8=&i{/N CdAF C \㮻G}5;%+s)N{7Jژ Lf7MLn[.X&$ f\2I$8$D*Fc,\d.Jȃ32a\{ G}:O5~󁟼Xc9TTIjn eC)PʡEZZh?|HM7{눞z>zB #}W%ej|3,GMBDaHG>1d^c?r[>!3q=giz >XtY"LP7lE((87SŖP.iG%˰ aq<ʪq Y ϏNeJ ֕*X` q⑟,mThcqY&:#-ۛpYHdBd=f[Tp"ĢabiO(u7 :I_!q#fc1/3l $48d&r'i9.DξK䉑=HsUDh:s919b&G}LF7dtH˼ޡH3S“McV[ na"}V8%nI>IKL^,.B1}.%>0F|s؏7mz?PY". ^:6B&MCֶwv܏= HpHg/iL0,!<2f6Md* ,%*F>b d(h_ .݉7nkv7noOF0`00l! h8n6 \l4Д `ٰAC7KRl iA 0`p4ز44noMn֍9xssXMئCJ ЀA6c 14ӑ0Y-X,5_J(nsy`DH*pnKpom88.Z%@*ľ)89Eܜ<=xM s.ǛO8zO)sf~z>Qo:)%d۱Lњ5Gvh: 'y4'lcæ@t'%DR#pxo*a }v(auĸ c K$~bb18C "lj.2 adL( #Dȱyq,Q?Z=Avgt7"}бXQ80Оxe %2 }KO7D% dHAb0ʟ%;h#s'!ؔ93w6ࠔ4 %J'tF#.&@M\K%<dd1 7PHDf#ۑ2T5R ruA?nrpFs&9FੀsYq3%(%#gC~7=Nܼ3J4V)D\ĬF"MpJ@X#f@G9rMq 1q!DBaxɀp_tњs\VM'7zW?%+?O0 vYfPkP8gҊ'T}"(ő 7L3Yqz4gh<>>ګ&nA-M*pwWm,iDGc@=y&9v'(B}$?U|&x':wo?qgaKL|5)RRx(C,UP'.S,R}egos|oș|ʶa*1MlkM&#Dmڦ̕VVkgjKIz3=d 9IRhts&T!RIBҦzrBCIFzaK3"\is$f6:Vxފm8>~f2dDa"I3-Iޱp?$xxhM!E]ihäM8L8aUT#OIj1`\#lQ;?2~d'EOQ,'M^#$skhJJC8}xṦCЍ=*l:0KAFi!&HGt~18Q,J%(p!T"p8ӛfs=%fŬi-m-4dLQJԘL7<?M(0|ϼO 9ُ2H$oym3{=$LTH|s?3M&~ o ZGwDUM:w]u;N+wuӹۻ9K5nҭZτl_ }/#*ZY)ݞ0ꪧi$OG|懦JԖKDZդDM|O}HomNވonǛ˛E ɘLlY._I3NԙR$j 7#SU3yg[EVY7o nGQ8"zog:S$')>Hb~(, &MמxQ?7> m ^ d1ŖAzA$\Wd2#'(5$0 naR}]-kXP]U+nch aHȊ)ǩi$i+n]+KE=:wj"?X,HIR% \גOJM^GF7P$XJuJ@BtI "I*0 ! jHMM2MHpHä2 䲙 q=Izgxmt[6|xhѾp|!DzZDjRI-*U"T ?|'Wy&vɔ$N{9#UU"\!DPiaIO?ה%Ms(3>ҋվׇ'/JIN%ҔmD'VŋZr. (K xOD6! "MpeQ=Լ3?xzi3CNGZO$0~OM<'o& 6F#7O: TQLC2^' Ș ((`C4ZJZhDDDA>>5>XҲH&SO?- {=RV}}#_Н`IOBkL-)pre%"QbZQF9a/{1q,q|<)e[eETd$JOl#~"e/M)h( ̢`TS d0`ԃA,(+X ``-&"O>f,3ǎ\HMd2I(\sdyoZtC-2ç0_trdd]<DON`R{ FI#&EJRBֵд*R2E>??f & ^\lJ—!  QF^20F:+4[di%$}BmI q`|׻kg4 KCB(ӏُ~|6?|G>}URʒk;~CB5 'DlkJfK%^X//Zj1IǙ}RyBɔ- .0"<<>O &hh+磋&Q &iq?C~,RFgQx#B"7 f{M3bJȒIQK \A=g&Q5S.2dZr.E'8IESp}b}d (3L|sN=Po1~,pT{6!$cYiZQmZ-E*Tg".v&XɊ)y뉷 l?Xúr;dkhJjUK[_LbUw%OyGLL/0&$Hn1G3ՏΛ_%UU_Sm1)ÇHh:M鉺Ԫ,x訨[%虯OOTwMQ('O6e`8^'a0K,2 hA#Bcx4f8*27Gn!=xGx734hd4o#ǂ' =&#n#&^d}$C܎TMRǦM0J DD('ޛݏmͿ/4#X9WcW>KЎl\<\Qc &$cňE0ˇ'K|TÍs$6D(GŖ79  İTpmoۛ ދoξ?k^K/xQp71Fm49Md2fTd}b74mmϝ="Ug6VmfcNH!/jLfeI*LF.7"͍<"2oH7o4m& KaX($ȸHIB7m6TլL;UM&:-$6MdKݪ bt3`"1ZjHmpoP.l5Ń{0jH! !2妈5NO-/}ldF%ycqaV(<|Xn4dlY6 f6Ƴg70`1[V ۑ =%n0y m6kz8FciU_b*×nY*TWvj`dHsE  oV|=[ ζIuq!#4ѹ n,h()\p\\Oܮ<ᔤ JXs<$݂p%7!F 4[=I3q=wQ:-AR 2A--lc Kg|EL2I!&z^2寒gѰc4 "D,h(%Ip٭̕ !`B52P@#LWo{wjAj fճoejPAZ`އ\X8dL/!ѳ"3LI[,Ik*T%UVՓlbǰ&ȏ쑾xX@1&p /ISHoqBDuiFOУъjRܗy ,?}ߒ58أ4g_:!,d sU cM.)xxs724Տ: 0_%z3'%:[U}wZOL⣪KɼCc,O`L4ǎtpfF?񄡳:TjUSh{܌ M C<9Ւe3Ah& a*%c}wi4##ocTo%63fޖmXXڔ=``0 6'/)XEPeJ~;ɮ&$^M , }Ɛ2J:3Bѧ& 1e̡qǾ&aXsnmK7wOFY0/*XO1H酘z˿}T+7q2ӂLyqqEӛTvN zs '770h{?&te2 X}4DҵBRhYc~R1E, .zŎa"/{ =2Xx9}'؏-vgN8~ -R$KxOXPBlp„O"6)'zyq4nI$MzjQu͖Eb**U2Ϛmz|! \BA>B4%SMrxS'뻮L_\`3 TRRr.0X8\e@z`%Q0fJek%KZ&JM;&RyRKE <6gHpzϯ]&LcQ6o6?ğ+2\ $na%~h} 0$ 8/,x)| ^Qe)eiD&G($Z$$ #^|3{s :es:+8ǙhˌG;OFI7sr&r)B7vE~śn E9`x+0u RY`nݻC{ lhM,wU,F*=S!a=}Qy'Ofx\Qx2+wd`LgU #FzOޏ ȼ[X'Ÿ UTA.M֝P{vQԙ G1)O9)7i< ޓߓ5-T`v40Q0\qr(ЕdB*a|B J4= bKGWӳS݉eQ.>cG#CC%!db'w/aF+^ߣ'uR Ќ(5,GK`ޟa~\7 s;kJsyK('@҉M4L `KRi *T"Oo$ь` *J*;#秧x؍=~٧01k7E()b]#r74nimO:~ur*tׂuHؤ(*D&@`ۖGϻ֛x֛RTgh/,",LiH(uĝ9sm+ᜱE:3?)ŋh//0=ڔ٧X\wDK*,.y%Q!ڗ,6 H-{d1W*TddkHxA*BXmF2%=&9TyA`,Sk){{Ka1a #Q`I0O\|2:' zZUIU%Q=mU)qj "iÚ[TS$J>roVRHFkI{ &6m`5kXB DĞ' omI'5}ڄړUndδNG'#p4Ƙ:znij%O29Nxb1rRRT? G$Oz"~J7 O " C*%@܃,7XXjjQHWGC`݃MxS#G4<(NxQ(Y>EI8'*sh0 3WbxsbL#O`C A D`'=1b||эmrNj`<މ:Š:"2e3D|>!8Tc?J7*ay50ҩO.7z'BIbI%6,!?`}&o@OL!Dxo/70 }S C{&Y蚁7bjDQ,!2`1z7> 4ph ڰ~Vs%=q`cT6~?>1؉=lu|>oO{֖+Yd!BodZԓD!jS92$$zRd%2 gĘ"0ۗbzDh+wu~ $ofAN(y"S8bQ3IW2f)0Uzhq$h Acx19rnA JMԊ/%>ϡM$BִKwHXkY$$ɒn%MPKD)7Cf^*I~#I0`ď"d,[+`@ИG,8BkΤh =EdsClcnZo+'vO#PNgcRHge72w&S'ȜY#v#>y2/;U**){#&}[ODۣry@{zG.e?ү7К_u)~?oUyzS0(NE${WUc՛Ko[<9ml2y%4еw:`E,EdmN5a]ΎKW23@^|"$j֊N䥜pCwƌ$wD>){eʛ`9Q;LJ) "(FMtR`+\rȲ$ΈIsO@%<-7(#T§՞4'M]3O44=@OR7z֌~FR`PdJ2/赋Q詋dXIIr6pa08J!I8N)IIERh\`dBII&ͮHRRl.!+FJJL'!'f!iHDٴHDt}ֳx\Ѽg8Y`PƆ41 C0m2m,Y4a!WEoziKHK824R@ɴɅHDSyᄖz{Y,K>Òf˥HDM&%xq//|[)pbHDtѤؐ"RYn]26m!B&B& $"B%HS8.Xa6RB'ӃBp(#L1FcPZ C3,32$YATAC(\ v%gdf( 'P͕peCE{+nSTCDMKrk& 8&a8pRCF%DK%.,0$M&N 8.Z.LKRY(QIpM[' d`d4$ *gl8k3kjN\lM hp+$(vnK9,Ŗގ{ݰR̜.LK̥LW"%) XhJ,!$"B $KK˥r')Q 6`0a0K&K& HDHDHKHDєN "hB&"lB$"\ rJ(fPё.D2QCEECfMDlIIIF JJ^ XItY6e"a4hrdY6]0٤HDB$"dB$"\٤ф l2 @m08[.ȑ!ehU tQ /lNJ.HH%IIɂ,N KK-HL!l@pI&&SB s)2ٴMHDN $"dQI]0RRRpQ0RB&$"XdN $"!dJf]DbCFR864\lM I\-&ȑ(%%%%$"@pY!4e!fR4qρdY K>G};q~!BLë]9UѮYvNs['"i)}lH?ѠIcc<<.p?p[fgS >&3_j\>hYvH+l*e&sKBFTu&K Y3XF]:bK 2$nl[5\#qĿ:x]lstk&Vy(k^ ?AX.ÉKL"9M`/eG)s@V[%"E\srWc Bj˴s"裿|ђ SThm`¸W6XWJ%\ʶצN.Sy5cA}Qƒ08 3)$\.r)F/ . EFG1ȢJGB(,R3 3̖FBl|gfg; WYn!`Y!ϙhd.1Y, t7Xzнid Y+z7G&AldjsqG1FQʷp9Ƥ8ѹ+:k8d͒`I[hh3 ߋnIωVǎBf,CVgٙqVk49$p{=|IDIQ&φ.TQOLO0 '"[ݕ(2H(`ŒakZBnMzKL+ S_61Qc2o" זdlpr,,pl6Z T ’n$Rka_K+Ek L fmz-C-9L@X,d/XhVZP3,hgV,364)0`Qs5dYrL22 EqA[3T0޸)ze*)7D(X0-, 4I ̍ ތ8-#40@PČHP C 4d2卉jJ~sQ`Q'47㐀8 Dj4h0b % Fn8Łgu v8R9 Ē*&|'m PW''˪0Q&k#2)hjBLrw ȕ!0-X03&! Y Kdo!hR44 a씃#ťȲJl3- lŪ6\x-L5Q;#DgٌLiae y̔Q&{lHۿx1dd 9 sPNflcTiCX8 2V P̪xTd*TFrVEf` E~ J̫R ,PMT"h%VP"C7/R&9c H/PU,(\Z Qb@s%28ބlsGoHhCrM1Zf-)JhыIжHmlH-R&$D%deJdLɦdDBkZ"DDBH$Y%i,IhI"&FML$Ҫ"I"ImiBI2@bbhI"[RIZi %UUUU%UUUT#hhU4F$M$HETURM,22 I%UUUTI$ER3k5UJRT%XI$UUURIV͢DUKj$Be[26I&Jի&4Z֦V%B[Z[1UU$UUURIUIUU&ڥdF!iKJ0$b-e*UURU*RR)%UTTRUJId,YChLR"jjI$lɛKZ1-R'ү|( 8D%#.$!YK e!E+B&&.k`ZK$6[+)]փB]^ (&5`WJsh#zVl@%@ Ԇ5kZUJynK9^ItKO]<^ݶo<Ҥ2w.YirҸe5:s,K AD!bB>`r_P,{]NRSĔ+.Z)c"cW)4G7b)RXy  , r.cް8,2`Y4 C0V@]INڐBe3Q;=(QBC=X AK 2d9($,A%(,Ǹ&J }dDE`8LF<*lF`922( 4<¥$b AģPRa` bjIUV3bxO`yr9g2'CrN0QG~#tG ."S72' `&'?OL @ ?(O&$ C"NyPbFA|$c i˖eX3By"{q ,)&%vY2$0a]Il^1B_A$F(> (81z*sH_!`8"pq&L 6-1P$ I*H~ok'>aIIpjIf!I6;r)zL.ƛ8rHˆ6ΆM̳@L(M ^Q2 $ȼR0XD{PFf!4lcQTTTOvVF_f$m7}?P:EH ?>ՕEf(A<,N f (L:ySG)iYe=ǕLKR)6 9jrYvm[AA`Jf.CT^f`^|g: 1115eUiIoh?N;I))RTUI%R!C;\~Fp%% G"\N(\D@s4*V +EKti`Ei{.ai{)^ci`h, ^ rinBb[Pd/#%-6{oqYlhX-)w>`erwAe$B.C(OH Qoh,iXlZ[l]ke- ;y q4dѓa`K".!'HPp8ה%AtvB $]Ed \0<bg8mɷfIiD|acZ("QXU ؂B N-dtOpEd^An)b1`E,([p mI$4]ryKB402Hra@PXi\XP^a11 0("@=9|//q3Ԛ B%>b*]h r%, `}0G îd& Y8E 4ȆbW% ((B'@J9#gY 9ψMEv--r[,Ȱ4hX@QMXE.!8@(X,\ Ȕ&'xl'̉ DOP'F&!?(4O@&M A.iӉL&!4iDM0^&M0a4BhL&M0a0&L4zq4"iy'1Oaw)[SrFd|RQHzߤ??ߍ.G41=3e=ؓ+Kt0[*YCe0.%-)y0$}!un¿h (RO*5Ğ-jj!+q/?zD=SDz$Q( e[ n2 d 5&lXXD@X|zIx4dFēpԲ1%]a]y'rLUI^((q!t_.x`-ch0 qmIʱ"*s ˂NQ;cnJJVTBd"(ϺA|P&qǒyOLCӯLJ9W x6ov,[.&2RzklM+rSkevdD4^ D9]~(nup'X>X `oOh=МKa^""鈜0p+ ayDK$2= x s3 UXR$ؖ%}%!(`(ga/e1Al;`V$QoH~K8= e/d0" 4FgA#-rEP;q$8<^ T1;3I;'cK/-/j XyĔEؼ+xԙܜyoNM`e72s6=s^/=" 3IpL揠'GbըLeI PFS ҒKH,TOrşM "E%Hc)# ʚRS:rأsHTPV|a*IJm#+wȬEiJI&BG)91(MuHq nL2u4:f1I'>F`dЧOeJ4L$Q KbMဧ}{@O4 a<8q㍱ ǜyΦl#$ȜX"x40clzyǚ1U8B9ƚXU]ɻa`ak*n)J*I?I<pRO2`',Hu)'\& Jt !ÒȝqRI2N,`ִv6eN LD2 E([+‡Gi>{>ς8MGnO-ͨL / zJTJE)$F}ߐYʋ2 Gd| Q>}%G.K&Ac9[7^ 6.2EpzvXAt[D mTh"y(SdʶJ!MDp8rFS$2ڙ> 5  fk  (7`u+9,-XFy '+u!pX2r,f g$l26K$6|c#F1&|nIJI%^PXL0 &Hf L`0`!ffL hl09{lے7$[Cp &y$\X.E_8`B'b9Y"ċxHXQTcAAbflK,\hX2!ęd)S4p̌Ax` Pkuꖦwt|q#!?a;2 @'6a3 pz!=Iތh,фCۏ:(;btnp( J5D'Dmd'$?93l즤2 BFXނnH$oA,>`蒋>Y—L&ZڅraKϖ~Qѥi>~rh<ÕTƪ+W%t4-TZ"z9z6FBX$,N(b yNLL&)Memqhp$8a;4$FiƜi&8K,iƖ'g5"^/Doܛ)B,_8#~=x=ɸ#E 0pXĖAK=޽L$sR:βotIv4$D "X8Ѱ!f!jj=C&%aH6"m!o  zIup2& HH 2!KCη^H/"ay \- bD_Lb8J,JωTEU&EU|u>Q*>rp&u&H9E"f!B| }hxpbfCI3Q`{z ċURm:%F * V D-RHD{ va @ @m"`XXJV,rDppd\ܶ&.%@vfjfXZ hX!bcw(X-Bᩰk$3[ʛAh!0ehUm#xGBih-DVYG)=͉tI]*LN裡z{s(.^~Y &_$8,XX'X\O`',&azȣe\GR$m҉3 KN&4iKE4is֔͠$wFy3Gj;4ЊH8CX4zJT :F7A`aR%&PXۘ^Fƃgԋ`7C5I=ψx$"6D&A>12V?(O'{{0cJq gpnuW3JD oF8ЍCϭm>#?s :/];T_%b٢d1RֲKZme$ִ֖VԩZ~Wyϖߋ`bM53]ePńm ebk'|`t!&j_x 69{ṗ3^UWwwԵKymlZ,J[=/CADW.<4++pHp.L 9!I5KJ_KrvO掀Pe œߞ8cVM}(D'rED0FI9#d>ܖN-bsc$n $u*N AJ<9Fx{Jhܙ/7"4$pL2 l̢(ϔeo~8$:z\RhXx~lqBȋ2N}ti咒1˅# u :jōqՌDpdN Eæڑ'IxϜT 嵻k;nu;om,-HS+>}a;3 5$#bfa&Ybnoi6Em4.%A?6JekhQhhY+MK&FB4! o.Isr)=^ܙ)-r7Xb2 䔛H Τd'BY {u!@%RKن`gƐ8COyXJ}l|ffL˦zUUJgdK XBW2%.QE,\KK '7H?MfNĠyJ}!%Be,c0Ql=3fҞ;m ~Rc:Rd)pّߋ^H,Dz1^g#ğDϘ*R 췸+,OT5XyъgAYR{s~~Sʛ2-(->Q(d)2^ah͂w`3nD7)<ZXd40B57Ҏ?ɽPPRrycCCA^`o[Jp ,I\}w` E C&BX<,N14kҪձc'8}$ FqN8ɔq>Ɲ j͡}qy8y&a18S&Ihdٓ MT DI?ֳm>'F-&@'P4N.)bUy}Wi볖6%DhH Sp+Ħa -nv *H[: q1$ L|[̨CP j$[oy&(^tBL@'dg>~b?3(QOOO$O^Lt3~N%)seA4aLȹ2DB+g"tx\&J\)ɲ[NXdHdJ%,Uɸ)@ ^W2rn*:_.ˢ!C"H6 ȔCR"ÕXpYiDZ^32"fb'˘6 `XyEa伷;G' `&mxYU:P7p0P%H6f" d#a(P@3̓`޴j 0/fH",2Cs( , S$2Rd.c Hz`jf_\L`Til 'Ǯ`KO~ 'H9Dd,/ ˄}&JzPZ% Lߟ ߈-_0&'#gL  >%`/p5qOܲm3~BQE co*UJ~d.$'xR"LD# i ]-JDA"#_Bcb}w b22K!aQeas Ng"7TgQQ1E4E#Id9E`勥)RˋlrLtMJ.R iUXy/߀>OBxV=JfX뒗G-PbXpB1 ٢.sH֥L"{g?V> |j;,k[<=m'm.zWf .5J׊0#\bAB)3h3O)0$MKGjh2&rLt JN˕ɑpiK`8WPbLd:AeL:f $$L!4ƌ(c<E2bI\<"p/ o{#ۭ)vS,2 b^@\%/#RUmhBX "p@,:h$(aeH d~%5dUe3$3Y. 11)fKGBx^ExlV "A 4仡&ijj@# p62!Thhe='1D12.5;7Fv&(YТPqEث fXq8YmGw/}Cy{@FTw<>ܟ{$/va4A//Y2,vĤ.־Ss$i7>q\Nk)RlΦ# fn*q9'CD<&$:@3 f)S M L %(!-SLz1 $DI(F5eb>ZcG6țԍ蟔ߏhMH܃> KK푾&$0pQ$jnMe=L:Gf|9#QGF-Y.̆AIAD~ε!e ʯ7c HNrH9XyILRv"!b;!+\XEE /b6?IOVEC&!ux1@G%db3&G}1 kx?9:rodd,jٓ%qB*d=9ydiF$rs?2R&XKԞIg-ƽ_ϖQE1slȦ3 =EYRFZBd/<%M~;G IOMA90y B= do6 #.b$FOK6H?Gt]̴`hY&D{f1ˉC Nth5Ğ|w>dP?G& $ML4 >QqruJ|= W$#x3ьx!P&%D8#D(d\SNCm5gMԝ/2շ3=G}Tcs=AF#w7 rqiB2^8Ԇu[/¦*>vgDBhj|_gرbŋ,Y0}BN%2G6yC0ÇCht6ptk`.ig^^^^^<1cyY\ |C]tMuNpR0ʖՌV012wEy+Yku>S4ChtCHݬ Éuuud~) iLLߍCή7 RVZۀ*4]p:-ױv;}y۟:e`#; 0mjZff !އWjZ^8R4*#|"(L;]kpÇ8y@X,pÇ9AWp^zy|_'U^zk~> pEn~n~~~~~n~n~~~9FCC%B%Gѻ40i@@6yOfTK (}>@.E$M!zV@>X7yƸjm^\jz^WU4;-FcF<7{$}>Osx{MFSu:{WWWWOW//^<1cnݻwZ~ wg*鵭j_{`|^#N$rDx k5:oU4jRJMQ-Vf4Ny&UǪiz6gzG,'>ECiUJo¼ x['t?xi}FQff1I, X=S{ Qj5FFv]: tcVէH C?ѷR7Q(ǏE=Fii4='鎈L{#UVޝŻcx:CNMym4yy_+|Mcc1|_gOOOOOO/T>o|ODQ?< o 98rrryGۇM4OnCMmE|c-kgwyyz^b4MtM~lwcvuuuuuutx!WWWWWWWV1c)@]^$=g{!im6Fc}Z%y6Dvٹo=Yj5FQ^g8oῇ`Ayyc9yyyyy|.9L^裣sivOfKL)Y,];<ی_pWIze| Xy;߆l#c=пb }xy0nŋG G%;/ӜIG0LOmvoϾLiJ5d\Jc>߼7 53g2|qqu{?e_Ǐ^K:Z]GPl6$xMtjx(@fzk\|S(2&f <#&pg05, ;kw1&ʵ̔t !8qbfM{5> އ9Ĕ(3FI7S$`LT)NiG/e _dmvhFC ˱Dd a3@ȜFp dLM9LR{[DfuƗ+ sG:Ϧ)Ƃb5yb`g ->Y_7$88Xw.1n{Ue>xO>b8Zf<4 }Y8Ph~/7 .XS 3PK*U4fNMǑeb>SQdlr Smg9*y}#AǪiRh22c~DŽF瞃;;c|\33-&?Oos\ЍSDJ,ƍuԪDݟ&|NGi3ӟMZyDQ%%,-?`B;/L)-)dij݄0OL& FdDyOQ,鶕4FQLS=ɺ Veވɴ70 &`KI8#k/lfF͐`XѓF3p6eP7rf3TRg \]#<262bfœj;iˀ=4RnV/u c:}|C@bFnw *3g>}Lgm[<9ʚ?(մ]Iqzg:s4'Zp;e;%'&S"lᇮ >yyuҕ,^(^'N lse`D7y|0٘xcLw:uUVP7зUXlvLlyy$x4qL=g⾃5ۻ8r2p÷V^HiS5tQObbMCi8A|NPN`N S2g䩞rޗ$p41&"ˣ7NƶyD牝Г =iMybM9̓Y3&h$\$<Ӛ ,5:1G =-g{I*jtJ).3N=a:Z:h0W"ibN܉Γw4q\\\\\\e#&p8@-?"R)lcYzі,X#`5fk/>iT4 XsaF2w37 0SXug~ok|6*<<54KM)ehKַq#6 0̗(鴕RddG80&icJ7`ibVqySx\8c3 gTHC=43&x13NdX͌4.Lɡ&C}110!dXZ& Lьa0 JR* `8wT?$;l&J(1+*Χyw9fkUa8'7t'>qˋ0,'_b.dW^8 t8$Yӣ 5M2&^^^u勋,fgΠ؜(1z;7|9ДtŎ<4[5sv'b^DnC^NKp|I~7;pa*hnM̚cرN'Bk&Й4t%Dd8`Hf3zDߟ#B-iO\I1MM2I&,{32j4͔d4MD˔=Imi=[7Vl&[RNG)ZAɪ&YaܽGuy|c"H1+N!6p}|L8Ic.zV2}>c\LI0&oL2᪮t0w{2fS31Q;dC&v]gf5xq.={-c䰦T6S~Ҵn5&5Җ2fOo,c.4yFIY1:#8ڔQIc \(Y/ 86 ŸH4Z:FP))E1d&:mGɦѦVxZJ 3xugnUY{}3&O9Mhj^ЦFͨ4:*Õ2N0ybŊ8=11(XdX:]F$[W[0uA59SFJl{,eM xqˋ&4eD̜X3b$ڼ7YZV)h ]# xuϸ|rK?77K7_ǙOk"ȒЙK7{U{ShQ^"eM3O'1!7I/H,lV%XL8;{OŨ[p͠=f j*'uxEO#زy&]xktjEȚ577hj8~y"/^n9s:vM)GFS\ق`?5Os4˚!;8nI+:}aƊd:⅙5qcEZ*ij)RVI-Wҟ2C[n:/MoToXz*Q=(7mdžv)n*JUybp~_ۅ'92rk9|G,i9D6ug63c2:u;M?;g=[liJU*y>k=נ~O>ovH]Ž 8`z*]HKړzz: (6{;u p @6C&Џ:lEl8LA=?U*Um]PɀO2M<# Ξ;㜜A( HLSzr|Z,(2M1#ycVNK$}DuH1cUsS}lĽN/#v6ZТK>#I7_4վ7AbX{r=CvymOuu]j6Gn ;'˸'MplK/4T3OTAA/֪-)%iRIE+VE%ITb gɖm:s,XCχ>d[+<#./ɜ2w%x/?qZss|@쀻y.cosku;^+o[ަʵjS=x5j3_2bHx=ٱ6vcۧ yAy@ ͎vS'΍Ixw1ۨUꞷ<'DLRUM%UU)>s;kOI5Gu7(QgӴ1'J׷IΓ}j~a.?**։>{.KTU_vu$sdCVq1Է?9^Zq㓖Lyډ^d3e 9x47rѦ<V9O 9Soc,GM*VSa7v|8 =car,H+|`Db\uO (=@L'['ZUHUKJȕ*JJJZW+ 9J2{w_?o'k>OsJD?eޏpQ{OPX𧉜> &z`tQb7)q?ʟ&<'?܎) {)NGXnܜQh:xj5m >I\6i#'vpOVyjyLr'.|'ik,UU{ڨY4e>ׅEEDx+}gB?B{S}#0QܒGՉ[˾?}=2;>x!Nςwⓛ$f'o^jӜqOpd 9z4d󞉯/:d7h9FŶ$ h|qȏ*6ǸFGo=u<;&MQۍ3\ޛE?'NTismf&=pܣw_ѩE$TjI%E(VZV)DD9\MY9( i߸ʴ*ҩ%4g-2o݊J)*U5jTUU+F#;>ۈ KM@ށJg|1ى84&&Xc厄sk}Ԓx^x}pw]73Ǵp~crl%)U)UJRVJZZVTUU*qA>q̮;u39A8w&[a{FDͻuFǓi8&H$tYv^'qm܍$焝aEhO~8S3LQ(zNNęx.q䍑FDrb{"|2}.RMk!jUn5ܚm6/h <9Y괋Wn;y6}Ժ_ 9!]{q?z 3YJ~%Y#YyX3Cx &"|'va޿ \)|2::黿 ђ\zFk)=zn!C4hJc\؜!4tY87CMѲg+K ˔ͥUZl޶ZF&?̉U*wMz:To/뿮ZU$*D?KXޑ}'sG;sT{s۳gOﭮskpyˋ+exR71(Hû?@DnY2 ,GR7/1t; r.kv|5n:}J7~7*=3s[i9]7`~ŋTŋsH][jۓ^|>z}٭!QFv?8&{N_Mn8䉷 {bMV W,o5Wx)}'k8lN==*o#w# 6[5Syuq_;x/cI6Kv#t<7_tv|Sly!Ld޽=Kbgɭ fVS6s>TC|XFF>Y@]t}\T&t^p]'?]qߟڏ85 և>[l[ PݴOO: t_&aM| `RZ㭨|8F'#g}WR#t139g%y0'&e DaTD35FVukMP֧ue< cYGuF ؛`4 l ? 5"e,?}!kPSJZmZi,drŧsYDYe89쟹z~{V|uyxD`<I qfiu}nV920>Q>}ߢ7EM,~mЄե} |[[YwRvto&u[ouMzѾhnÃK&Yp"a6ss8hZׇ+:~>6]ϗ7y<" z}pꈮnnפ=>S\KN:SO}ǶvMݖG7wiX3~Oj:9Ɣlۥys|ŋaxzWKJR%RtU'?A q?!kmQzuߜis}&rj=h ;4}'D%ju7a$<=9[ݸGoS x}5/ݝx#z>НV`7~Ə}itύ[C{_7RobwQ=ds][z͜pV`2(ٺq|{'@y&GenfA3>pm`rx7mb C9/8^3iv^`mG쬍h+73'';ёasn>izzdG#q>%Z$̙]=_XmVF|OY$E8]M=43>gڌiA }IK,rǓ(צ܅!D7lń}jt7`鼏$e?9ߌϾ7eŚOnLnԷuT^dWjtݷzP+W[]e +:fs>)r.\n0)Љ4~m bkaw5kktόNNdc|rizCG''9fW'"?~q7/VTUz_g˜Vg^2}~(\QGxՏ׌f26Ŏ8L <GX5'5G՚>ɪ\&x'8< iSSHi O' QuG1Y#'@sdž\'W|Mh/M݆;њ6#nst7Ct7CObJR~\nk4'}> M5bs?pg4G@nMk bI}?nMw0Gdykhm.A"q.FPLƠfNGȹn~3`a`4ǝkM!y՝7؎quG%#<ڋ,X{JVkqo{_N^]5t鉩''qt^(MG58ќ_U|zRs|v=4"uiNە'lms=ych>FA=AĖL\ypԼk7:CssAK}7 .8zl_!#4~4RdAw,Aş|-ѪR0Dr;ςo =Gq)ΘNY&{q>q9HqDy4d x,M1̫Zը&+sGKnF^y |~יl; :JdWQ-߭0&ӛgg(ןxg&͢f؉hS&&/A.1S'3}n濫ϛQI^T|S f4ᑚz-'Х,ӡ~GhN{5MWX^8?3OV?Y؛q8GnkticOmψ~t,X  4VJy̟ݟUVUJTRjUUIW֟l^|xgpinyiu{nO_~_a=T|fim9k+kUIlQr0M(8W5k-io4>iMNl AyRsrp$}0 6Mf8 Ry|xo.CsNMǑf5QWsٶg_}ЎwF;æ ljfdž(fҼ{t*'{c8ގ `0 ՄM<Ԫ|-v3DZ6F~>;FMzss>yߵȦn ݀=ɻυQ =N% wٻZMڭ\c<סvbt~q<"#potL=)̜F5 Ɵ0?Yy<>qlq'.s]=LG&NJY eOmӎf[?[0vG9ܵi} k]粵}mIG<4j~ƽz_9z^m\ў?Ik._sƞ0&[Jo>iOY0(*߼~OݻC{O/Vwb;n۱; xoK'ϗw^Cq42uvP1zK|]orFsOwLWE[~׋l罫tϽn^42RUUQJDR K)jIUo}Kߘ}X߸>'"vADOPi J,d.sVcaOycXNO QNF98Ğ3ϰ}sF77>CnJKER!vN g;ѻ M{|qܘO2zʻy?BzM^;մN8S8SJpyo^U{&  xP >WUjxhVv>=2U]Լ2@m6MwDGbFhM qq6+xq\KvJ9}/u&xMeC74sL47sg6aS=2xcON7xG7sA/:^:%'6MQ 2N0 !qc3EZXU( ox:Š8=^oѓ#Ο(\H#)SvGOG|8c'9*!:^oj}ۑU'e=`OyqO&ne+;~3yΝ1>n MYY]c7~':G9[#4]߰18W0Ʈnw2F> 6ixs E7pB9ӌ&#KCbvfvcUxL( _"/w\2]坫aw#m͕½#꺑9AG~9TYDv>άqӝ9E:u?s]q~=;JJq ("ֵt8~çv{˲UYG{d66(O~<GstYrrT{y=jA91'?k{m ~EOo~O$04cDtZ>['rNOJ}<ٚ&͟<s 9:=ȵUy@5%/8ib'I=>uupc>LajMsr{#$=ɄlOԎ{֫ղe'<]9n%n^gx^ĝ:vcntFܩ70Ldkf͊yC}O\91%.wyUvv=A!DO@Q(Qb,zbdl#bM[/7$iG6u&KhI*nkBG}ePKMA&l%y0"9UiM"QR l` Q]ҩϳ<֯`Myqyyw#NG$'tVL3Ro5zfقRUTDXU&ܟ83Y^isg_/ߖOSAd76'a=DœG ozƴLԟ`Q MS9 ѾԛI(㍛ q9Fy9r/pO RNNI ?TQg z!8k`ea͸MqSΤȚnoc&Q8sLII)7 t?fOjLyID ;rm I)2 &"ucZgln:/q[~ 9ӓf$ɪu>3v~]d]8h~1cx=dϜG2ujn7&4Wω9N$k˓ pTCMAOmg]#ҴњƏg<4vʪֵFfyW*'a9 0L5 $r/BrDg\u5کv]ur(  4u~#=!;КA5gPhPNLի ϺBo'3דLׅ=I: M$KO/l\/134'tƚ76mIy>/}E673t3OR'~>_~}{etr-jBujsinfp'vQ:sٹ2Ӊqcl>L/ǐ8uX9o<ևn[2<~%e.q815Qp{G3!9݆ x_yt5g[eG$v‚ω5sbq㒑IZ,{FHĔOODќ̵92Q(g&',HDC\N2!9W++`I$׍N&tfZĤ)6b,E%#ƍqUmݷQ{snf{:cs/;Ok΀NIɱFG5IezZiC!뉏?5ijf y'`UJULlʲTg6ӓiUB|"eRH>}Kpg͛ Dw0Iyd#LhY,Nͯwg )ڒe<4~`qGfF&LzC>}J0Vr@easGvݗ ƹf x?4a'4wjѹ1nvfQ2M .3yq8yoD;BO*jEؔЇ 03##x"?xbJM ^3=>'di/1o7 =7'`8߸ vbs3Ӥ9B(ÓГ A1j pLZ=<.RmF{)(Ż<g'o$:i ڴZu I0'0`IҒRt\NJ':Ӟ+J. ))&ybh}xcoss4[zbTc&Лrg>JEf&q9&aJE&!# LnN,IəI'+YWAjxzpe1var~>mg}ye>컽&wˈ|3G{g9~wI䚽~6G<5]M9nFZ<Lx6p6)N~Tj+<@)Tv6}JSwIlLXqՙ.PVgFz 9[g#zi/O%)p͞861cߞ*{բo1{Yג uw/y-2׃zMa`11hyQD$$ZBJk+E ~Y5 rN9irS&lz?O|?og>8V>h}d$lqg{~jW.ޒ5Vmu[Nq%uKN/t: [n7w#4ት'w&|imr_w}7/yw}]۷F5X{=Ocϭ/rLtڣw50u}Yik=:&C4;xhΨn:Zl/W;3 _&nzV}'2 {zYZg}ٓukv3ByrtٝS+-ka`ycQ74D5ڡ;Iēn߸- 42ۂtQd߼Ǝ3 !h:37/9w(4h FಌނSV\kyz–Lgg]rIvĽ,Ip_l@a.HPMGH "[$H. h4ЫHɤ,ϗ4 iC jRՉُ0O26q C.(]ַLN2٥1bbɎ`Aug7|ߠf[F~qK"ii,c0}aXIRIU#tQ9NvWKw~j+|IMC#Ty b)8qTETWxn&knF^qys7ꇧ8"r 2YϔΏqLuBccxfRCO_Rfn:/zRO$yC4ΠB\c6[2o:HC& ='L8 Ӂx1185aW6N #Qj_!6RNT݌qgQL2?->N{v2|]];n ~x^={o-;ӓڸО)➴~ÛsQ7O[wgG}z>^^:kp-uӗV??>\vmǏ4˓>;zC,Ď _;4Ӽ:͘&hES!< d~GOSW9Y{LރJFA 4CUJoA16cu;Ŏ7XLdV˝#\4œFqK$|:n8> (M{{s}&蛜lOWq6tt\x\0M/z"d#s4=:_!wIק&%ќМpNѺ|&'F1ԵhN]ҵ-vDӀN/2[ ekh1:F7 $LOz%<9qv7&M) =ϧuV6ͬպjI I4{?zW7ueq6oT(Q&CFމÓ4m}F7M8aǓ-&MT8}a *Mx (:F}Ǟ&xEJNl|?WԄq8vm(E͖tu޵B]Vqfhs97],֓$pƞ_]8^'Fɖ'%j+#pĢgM65tbd&axYǘ4ӜqoUsF&9v&G59ؑ'&sNybΓYxƯ3|i*v6NȚXNk(7! p#l^Rv8c2 #sөm)(&ʹ4wqhNҸxLR;xPp55'7Ԧw{6mqVo7kvdaqM1aܝI:mYYvn8u82|_eߐA)2b2{~(}yvV-utM]mJ0hMAǼW oU·Xko_ڭj7S7So-;77aohN T*T(y#z;2lyo^Z5Lr~b'% IDcn;m\&IOT' T.u 7}(v:Jt '&ASѽ5Iێ鉨v97]=Ww/p C6FT&akf`c <`]=w߭ &B>S"^]A,sww^7-7oG#&k8tdCfnĒXѶ'uC“=AQEQj3ҸaoѡC={,n)L:MC㓿7VΩm؎>11ΏDߞr٦,],R)qX--RܙAOBss]9:oNկu/x'gϪy^g3h6oV.'z?Rt'-.3rW*w>3õ

X{ GHCFmI0'. dڬ 鼓w!p񄛆h#ؚSv<59="z)RFRM|㉞u8.Oդf3QΙ(?}gG9b1 ǧ&I>7&V㩪Uu=]n Dݛ\p*9ZUp۟V%knܞJ&O_WZNy_fS',m^<[7m̗qTI2p\Io<{ǚ<߃ϴ#S{oac&& lM1=d}c_WzgU4r9ڼ u7Q ߙt]lyjε[dmSGUS'=|w~jD[7N8٩LEɽmNmLM7SH`^qg< ԝ/M'ݫ-59i6G&df`2pmjNv sm&֓lq;zݚtnueݢirnG&Ԝ{&T8NL)MG!k%JCua:Y'U3N\xŞJ'6c럚7ƈSZM4&*U*UE HGE^8 ukvX8긼q8>Ǔ9Ӟj{(zZ}=2mW#{'jsVoPef;o^4ydrU4dލМSZjFnFӜpMY v'd7i\;)}ʁmڈqOpR LpCal]>GqԼה/qQ^9Qٙ<ی35]/?߯ݵ'$z.v驭W;žѓu&o]vcvzL{9wzo2*HTvG&qg2ɼGB\gͶ>fw]'8Fk ΐऎ6r3uZDHOr닋a5Q3UUJg{s/GS1%sRb0<xZ]Gq%sdgR8w q'w gsGZv&G䓪r]#o7 Y^w1sH3 9?!ېSy#6Sߊ{k]ikE_^MjgsYt#ʎ$ўF{ܷXNu&rmIDgϩp~>j '#Γgr;dHM6ݓA Vg;DI.9jUqAI:jgzbʝX3&nwmO(.,QEFpE4qqc%;-hdUP[xXyE,?k.J\355U*UIMo4Ǥ hVRN,J&Yg#5IɷI^;҃pVZWWwz$<|^aKZ``rf|'nQC]V vfmUD͛wo|?dpj My?qM(I%kJIU"kj'I;? qșBhOc2|32lqyil!cМ@#J6b>I8 &VUHi3w[ φ(hr31h|ݺ(&'4pg(ފ(EbQJI1-` =!ژo;nqfo&O7bk.6Qr囮)3he׃+5P즔en61*ͩj cqJ'#)t14N]KӏFoջf]ԓaB0ۍ8 mnp陛Z>X>q;RRh㣋;7ќrJTU<.~ uc\aǿr#vFv'NqûM\84s8ܟ/ Qb~9vCMʍH˪UWRWO8(D:Vlw27ލQ5K5sCڜYoН!ո JQJ1[o;7vrUZ뫂&N[7sy/&'|`Ǝ%f?JЮ)hi''myS\V[D p-Cq2|N&MNC}᫢XT;>y᜿Ali(o{q]lfӇͪw$ofl[Yy{ uċ-)P^OK.7+c=m"mjH.)'IbBY I"\%' b6D_Z.RK%INhvhY4aF&rɍd\¼bL_E;We|S%+ΆkݑRFixy&}̉2^#(`#͙:\F$%&L3iQEQFiS&}<:Q/&J~6Ž1EbM05hƗf\] S< l $\J$ʁg2h.?Qd1b(YL" ,2AqDGϐMGBS/G)BbPrB4F &H4qi r^G(. a`&X$ב&A%8^v8)EJ'27o778 BҜ42-S.&(s ,И̤$I(F'LC$P4A3#?p(elЙiȦՕ**ThƬ\38$g1CLI>EJUEmVI%WǼ4&I/N 5j8Tc3)e*3|bB^g4JfNbL K a7DИ0t.$aI2Rc;e3e$){b7B7sx&o|*/qpCO$G UƨPB^q/䜺oMjf}AF>1@Gd8׍ĕg>=&ə,/)wr2YL}X<~t>IӢj a-8IRi'q70st yrc#PQ&q#f}1=Qb&!&\G>x =`$n\VK%^z.f82O\(8s u"^{:U)JVNhO Bp)8ؗETػ:5gz8!c k6'3$DmE/$%:^IXzGtT>NUwraetHPecj6@P(+VLLJJrbC":Lm{$eM?Xu.]5y3e%lBnBgBoRwB(Q`^=hӒӊ%!bC Ok81=IlS"<|̅!|Ѽ=?qUG@ɣ Tr@Zg4#ZFƼUTOj~ tj d!.=>笘VRB=O*Q.vY,#RhSDD&4}ѤqLB |˯ 0O&X%_թz E#`"\}>D%BX:t∺93% ay`x{ Y,D9 þRKsD>..%L?vie%(kW&ORaI%KFs`\,(z'|wpkQHR3&Pnh1tG\"NOmDտ':׎Ŭ:h(?ɨF"mdꪒґJ%-+y%ii;z{ͻesj,K.,]uU˔#r!RH(J*>m,rb߈haIsӓFM/0nęZV%q“zTwv$n7b~ Iϰ8|q\ӚdtD "ܒR*'vMc&Q(Gs#J P-U.%t#zEэDbL x eMC`LJ&Q( J>KXLeH69]VIS0B{@˞!&?ɱd$( AA! ;!oy0i dMB̞X(( YB (PךS&a/&DT6y䢃jϬ1.f|pߍG$IN)&6)JcJ31,E-izJ$`^L֑}EJ>>B2pybOI\OJ2)LOf`OtG>z~ȈF IFi=*~߆ʩx<#œxiy]`W& ,SpڭT͝ZgtzOy?aRs2c U*dZUTZCLKU)^9d6fqǸ&FhcO3E 6&a1v' gyΌ9Od:Ę1 K !y&Y%a0(3sjg3'YSNF;DeG$PZ.o2Yg Q(a l'>/,l\L kyD&A{xZR` gQU?KbD'>9aSҥ%%*S a.B⪪U*f5'}5XNd&|h.-U-JFHH0Ĵ 6dnoJ'( J6x>iJ>AU,PStBd2)?lz=. .'s 4Oڵ]JDszКTȟee_if1䔶7dzM[fl@.`` 3YL=-z}ڪ5'|II)&P(`85Fb!2"x3B887=iKYm~g9Sݻa6PJ' Փ,M'Kb#%$LDjV4C H( ZI%"˖M - Q%:RdJf&(gFCRFPݦjVv%NANXQr^-aԎC_.T9Gh "[TZyaG.%,'Vi8*J|0emޓ`~o bm .&|M9k1܌L4UJ֓%"lĸR0RμN0gR(HKeLR5ҕz16;(# 1Ȇ|,0>Q?yXXQAEEQɽCPH}pƄdcjTLf#‰Ay odEHʏJL2b'${sJ:".Gg,}Aqb#pǑ^x>!'.Ța≵e '+6H{$GIq9 2ο81Mʤ*2Jnn:dEј"v֣Z`oeIZZ)T+@\T8ESI\{\חJ^f*/F6adSGF^}ܜIA'p $̒(=0U>@?IPLKKZ?} TJv % R")}OV$g$6{-d110/"1^`4`E:N8kQAح\2H'N?JS/&~ay._I'w-3FzSBF}{0"6/)p'&#\EEJCَOU(LTّ 'b(n !7@dƇr>Bw~vK͸O֊$(Pw >y#=NSSl# ^8$wv{3 zoW<=8&TDYӄIP@?A?(U+<\~ 2Qu#G<&Q y~e. > L)"S|*s&C'1zʑGC+Ͽ4)REERpL3&{,+y|6oeg,6rY?>iua|$1ҏ%z1EPڃL%:gx(lƑyEzc%J!5 fK 1 J%*@9OR`L6E ب c hF[9,xe :&==**{e)c=oa_BÄy ĸjdؚs? lI]BM^RlToQJ(Fϴ0E/2.133Sr-l!9Ƅ5, }f&2La7=RApwDsĨϾ-Zq2W!ih^ EONɊ|cʞPRa9zA:Ϙ'*KG( fkp v/"܋GN ,Mo;3_ZW]qϱZGZͽ[[XkeXD}i"8DDDXvk{ͺnMA7#:T~$R)t>Ե`O-* ]h.,Qy}׊r9_#?ED;i盇Fx}j yÆ  1hl $jُP4a=s3`D!4 CsLM1oZ~{==$.ߥMQ653qKdrAkLa0HIB;XXJlJ(&P&P2ǿ;SN @P "DAv۷-wnЄЛ_1$ ïEEϜ> Ԟ-RI# aF%xzl@F3 jB!ɝ9c 0 5(,ה3 ~ =¯VXxrC@i$MH}GǛZ"ֶD=kZ!ЏG""!ynk[6?toǹ>*16'2uuJR)8>U_e4i14'5xy(yqǷ9'y5Ijl7E4grFI0 ~Ah1Dr x蟍gnԣ4Йh9G 'jNhx1K\|4ػS`՚nL8 _y0h$KE$ɥIC-[[IkYjZ(H+!-!pʢT>pE' da#Kv#哴%ސ) 0fbDjL8'|dd F6gp%fvX`<唥"◧4?AԪ#6p9A9^TxxPPR`M"~DT'RnR>S#QӄЄz=Ah>wޜ~)I%zY_rxק FCю% M&q=s;*+]k.ˎy,i`PQ۰+K 'M_|xd.Su7c%#u N'~ A7RN'xO0cBoKҔ)JRM$hD~t6 #f8mi)&TBK3XҔQBG~!Q(afOhJNK!2/'",:uRыܪZNNH4%a<:*O g=ďpّFFAX{s۳95zaEKUVZUZ{>lUV4 biE%K-J%r֯@=Q8sLdpd' 8R`>{ạO&왜!5$p0;I *Jt=mW~ҩLCvS61<`0IC>Q;/-&S6`zz%QTYe/5 "l8jݘBɭKc,Ypۑv@}GkoZedBm5, HA`d !XD_>S·tCRT|^tHBg"L; f=a/(c(܏y.KlEG-%`/0?2 ;eRԓ3qb\uc' ,I<9 |P'(nY*TR*/J)]+jZZ#'pmb1IC0„ĥI0 $74q~M6BL[~t?rLd5JJO M:P>7k[E]nUjJ-wtJ[ukwuҒjk" dD@d |qtAy2Fl*T#5$䆨$N $;2Ը2FRdH'&XIaa hn3|~]@ oƐ~42W){ޓ-mmB!>9ĜrO4|n,IIxzOFGK&Ŭ2MeIY/߭%7 % =TkdXhh'"a?RĩA!f.ņ:K)1)1J6$0u&Q. D٘Eh$Dn17"""{C7$ۏn ~4\=;0*4dFQ*N )њ2 2jIcOe=a`lVYK,?x{DŽEK-R""'mL۞Ofn8g9}V~{IY% $iAbI"RY Y,di&EI,Idm-*ֵDIjVZJ$jI4Z71g{9< N'G։>xNI}ף8(O ִ?(kSEURҊ=Q?,g3b1^QQtI2JҗqDž7Ñm@<7`^x~~cr|{$ph`ImʖI4isj$*I"e и8BG );TRJF⢣@R &(F&%rGxrpJQ H\\)] ďFN $]<8A>وԶg'^ UU&"5Icx1F&9[O$I۰ &t͖bOC'3Jqf?$ pw&&[Z[<*1+`x~?RLJ'dd/5Yv1IϛߓnC2bODpni6͒6g*[(ROJoTRO4>8#`>5R@N8)v;Nw?I3۽$q^b&=!"QS啀 Sa7Bŋ/D/\M7A9܌l%b>Azab뤰`1,4|}MOp<c=Q ġqHb? Ϟ|h$>Iw\~[2O'C>M}a$o$`p0DN;?dG@J }/ЅOq H_\_u> o}͑=me^;l1zʉ/&LJMI5IrOI=nDqG ܦi=kJ?)"摥ArɤiO>o1D,nṤ$tdt!rdM|r'>&K' 6MÑ/Ї€[pƒBX0b1ssxDJB*^1O&5$d B8ZcE=FB=B\](8úO{w.?sW_aПT 豈Dij B=Yfm UO{iS$ӦƔsBeપLFA a JOBGHQ(C2^hI CwPX%LNxd|\֙ImJqyqFX Ѹ0ēAđF+$:R~I8tLJ?q$&M8^ON'A(Dv:p _کMG}eY׽a;2տU43Xz2P$X nrP'iaĪQ{1u֫!M'oN^yW㔮1 &ŋ+nKS0 .yY)H$9 aw,:"K$2 eea'Ğ'NsqDŽDrGţN$'oziOrfz)94ǜ"0&`( .輤=7)6ba=kISN,Z]Μ2<5 %DnnbŅ (h?B$җyj D֊(JO ?v`!dKKp*O~_J3 TKh6EtISE%1T,XDoehHĹ,/aHvDO  ";@N&Hh9a8:d2nIWuݜ]dsi?*?oŴ~qrQG^>|OTKOTK Zz?[={gD"T0jL9d]0H.jF(ecp\/'&!DLd1,$b% 'jZ0f"|L2mqr[.P 'bI0tf8(DF!љR0.,.,Xb'1%H|g1>87vT&|xuMm6:'' hC(ϓ\<-rnҒnPH&`E$6ys.癥dDZBfz`mDB&hF&FǡxzM8vG7A;DEMUa/{`d2 2G rMsM2eSZMwy⬛96o=x٧<nCIx#Z-"DM"Ziᑓ4mB4DhhHKi s=o7Ĺw9\zh!=ózY' +xF܆<8q֊d Qq}ٵ_ dE1A7sj`Q?sM3 Ȥi9n>Iɋpf~mf)2TH))ʣLiE)Ĺ/>)CK0d6?A@?;@QEQTQEUL(`.錒{1hL,JS%Qgͱ0ybP.Ֆ4s(1yyGG9IyGH/$$̑*AO:OmkUWUOG;IU\^W^9ʯ?Hꪼ#4~Ӊz=x y8>< q81,rK胵'/&2D1bCİb,$Pa4Aa81C ؒ\{}qOV-Teh!DC8R'# X 0EroUSh<];GM]#M,#;D[yo->10|C\f>#~\p"_^6pF(27O:"`.qQ0R4fO@%֏__Zp}Ⱦ YİS9tr.QTQX}^O:V'G,~q7ړ 8a.&M2G $MD!1ޔRGym*W'TN:MOO'OON4Cd!8"w7U)5(;a麍pG'j g^J5;\x"u$*{5S'L/wrӁMiU2,r 79pDвR9egq?I L#M7(qqc@:D'~-6Kc *iD,é'`X<݁C  ɀFa̷>$f"T,J/&I?Ic%&H $J_ωԖ)hH%$1)$r~=rMhZkVUmi=&qsKǃƎzǬXM߄6={"[X|&&[VYE\<=׭%N3džz |=8!=Gs< EFX &?fܝ,TTs O%{gS='ُ~II&D]UZz'NiO>!c4ʼn'N bac1#aKP,)Q[*bP~ULe%֎0Dђmp%  з4ΞNoIˉ2G'I't,2@4$%%'H;i$\RC-bci m>蹶h(EG.|`Ď 7A7bŎ(64QFiOd&a6zOc27\R )J`tK!II݄YrS䏗'4ޗ^/,Ol\]dZfapB&ҩh,< i50JE 87/'`O^DM P>eŋ'BȣAz*#fԏJԣR<ցCzdr a,XcF(o%.=Y/DL yeeK/X_/4%/H}RRrKHtr"S%+^^WMh>Cvǣ#1Q<I5%(Hdװ+}-.E%Ը2([_4T>UC \UI\XQNJRw3̘. @0 ʒn=X|1E >$ XB|aq$=`]Q Z-#vM K'{S$%.x,9:s'&s fIlʓq%!CovQ=o،ȆȄoc}{Dךypļ9? i8iEQגvXd%弁ޜb\.,xrӿ K˓u~{ !7cpC(dKɅL2yT$a&NY3 5 Ksq2>u CRIM.EdFٮm̜)(go&Hb7{@}t35R7_Ӎ;7"›tIIIʦUM<ER_g82oss/ZQީ*gE :3̹˔Z],ԁ7B{ϛ&4QQy LIَ'Q8"I=Ihđ@i^?O>|XXb@y?Ѹ=yRvȩ(YAe\(a/))Y%r 4fNݵlbeʽrZyXԄ1C B8*PORC1Z&ګ) 41yEP Z*OO&j;U_j6II)&Ƅْ'<{FO3N])S6X"G6d ? ؉(V U{tDȑǒI9e!t@ ?PfϬH0 d?;R'H`**3G?78`7pzC#HD/b0~%5~kWT|+K̦'!)sUF% cCC@ &ZX63$2 &55T:yRM^KWt GPTQc4px$ F*`"œ.'}G$H,K׳3 g|eZ?Ѹ"Z\DzM$I 4h, G@kW'ңn4Ϟ<0) @igESkDHw<8~G&FHBF@ N('O'KRPKC?ms6m7v$Iaf(ˋ$$"ҎHdIuIu]k [UPR-ށY ڣfU)jŖx>k (HqAq#=3L4~,}ѻT&&2I$$3Eǒ |Q{qt/Ѽt\2 jJ( CK.BPWb0 Eh&+^鳓q/ajoXO,&Hԏv-Ca,Q bthVкX\tznre162m\H$!\m)))4d5oJA*Tʦ:*Ġý\YݗO(J(m6q?,^KɺF4. O|$ r.Gېbd5 )eD(&">`O!2L {d{`~,K BSʌF[r }8>!옇 wnqGc4?E< `.{ օ ,Y1P*1‚^Xc¬L4iچe]>>}TWUT'{ד) %(,%_f,2B#"A#L@0  X e0HXX-!Q'b&ȪIT$Z~3g QkHi܉ [$,$d*TR z=DDDGs=񞞚 RMB֪,]'lvB|c"mk\rk|AMY3bg^JhT&ldD**'v*LJ~'\&x&|2PUTJI%ŋR:Q!U"NN8ܥT>`/QC:ziDX` ɯMbtŗGgJӦF>Y 1u%wI"dQ%?jV*fP2m!b j㥖~2i*%^Ծ8K4K:2/aQ<(b&JUoEH:r'$%_.P8$gRwa %gS U?Ğ#d^X 9C=xFh'TQ'4Q($ 4%hO i̡3%NY8)v))6l8\>&Jh$ʧQtJUIbYLe,‰:qu@ Fkw*c1$jF7w;&"Dy/$!5M1*& LcL)=hl`(\ XzzsnHM[HaIGAa'LCL@N!l`'KԪ0`|ʡpv`h@0 @kن}~` j'>R\5ުS7rv&=ΩUWMtDv}erҥ)(%XN!=-:Q4F$)MRjNQE 3Xzy>89u c3G381M0 (Fi] K$,m"ߙԟMI*qoRPr\^FIt\ѤO{UUa%n&dHݿE\bQC;S),EɤA5<>yJBJv y(%!I È^POP,DR$əаM/1E KכBgbDmhEm>4C<G,VWoLX!;ҾP IDLe Fp Ü ͝J$uC6gl?h˹5(n<׋v%|O"IBPQ%.$. a\7NY&I e  ;v'H>RzGKx#Ǔ2K*(Q3*Y*ytQ;tIIIaġTv\XQV ꃚ0J&Ԟz,r$70~";ӏ(޷ S4ؔH(MY4 n6&'H6q{a'>3s%䉰k|)p?t? }(xM9r'Y;p:8QE?wKg)M%JaGB?- Ŭ.Y#Z&A~ؙy9T%&O%$&Rʤ*RZ/l`so"a#IB/ngi23LBQCʑ 2u3RUaI$O^M)℘G.}# шG'pCy4);A܄DG~'OƏ673X6QooERkus$׶nz*%ڧ+&{4x֩ Ξ+KڼkyݥVrkgH0D[m6TX-E A[:}k-mg_-%'2-id$;^o֝_։)k?{ʞy-ŷk,et߻HB,okE%-hT3'>1"%BHBPa=J(TX ~BpByTڮG~9 8& fY;bgIıQ3~31!q e`hM9󶶖Y-[}|kk;>vYdZ;|K}kiiy-d>n|Lg|IU-i;JZּg2g&}WխT9=kJom bOM3nm"NbMw2ѼN' jUڥ)mu]rLLUJXM'&'&Ilj (`oABy"o3~XIX}RNԸ F| (ҥ1D\n)4g(R QS.4QLiI<?֏D1],-)O*}ЛBXRl? rqhM EM&K''oRQB{a2Gx]$R,gmi>ɖs=Y2oų̈F=<9 vxGu-mG C '%F#;fO./L]UIB9wKTIZYvEV+++V[X9*4iIDHsRݷ"; wܮ][JGusK)JwuR+g$Ib"~2B0‰}hhG\F`;ч \=v v!&P'^x|q2@g&>5!5(,TӮSڧOF'Vp4F:\Zi%QxrSz*\BK %G'fJ"g A^N <9q914! ((є&I(3Ĕ^,XHLŖ.bGȓ O^)3g<?mN|OiTq:`D'L;2rB'Iz#(^.LjOT^]Y-̧tcys :{݉$Y"he RE)$!D[KdeZ%,*RQQIBd8˯XIb<~I? $xtxQ9R;7 M [Q5Bɡl4[{9h񾩟֘\ڋcdh~$'Jnh0 jKHu'%I*=%݀^!w@~j\ PȚM5)BTJZ=ğ) y|<2?H8{ #OtL8䤨v()#*FT&IΪXd@nqdLG:w7%t|S5]w>0Ǒ=<]:Ϝ8Q3^Rcɡ,z1c3-@~`X =G:C'pG>( ơ6f͈iTdx؋ғ+&2`rr4k6r[?磑Q8+W5ʖ4x~0c0pb\F@Ȗ&J߉cV(IMh&P5hl$}Cr,3D D,`hM2H3յ\Xf͠OOQ2D\)LI D"TNJN> -G{8Bw$eĉ4o*NɢI ġ(N|>גih|2}Y'&q(ED$c&%&s+ $$8pD%7q"=Q 1̬бynIxϹ8:obẍsC8R) Qݪi7QE#*Xsɡ>!I*NtMQ3 &He0^e '=̲q2'9 1?\2ֶAʔRxR^_>bd%:pzY'|Id{E#(5Qy|TQɩe3#;p{%. tcBn[A۟3K?@74tfПy&Q$52XFPp<x!8!!<,8qo?!=h馉Ot4B3c&0ki'|Iud<l q''LHR&a3L(e4'h>1ܼq?Ϸ>(vNߙ>܄`g';lL3J((џВ>s/;%Ɲ,H0%bNS, (jB2Ս(LAiQ5㥍("dFZILLp)$䙦Se2&R-Ÿ>mĄ,ǤǡГ~*"mↀyΜsO'C|3.@Out8[Kxu<{7O7I>#G6oy,7'QT1%XX*bh6U]Q/Bt˄`&cR<|4gLF,O]!PdQ \ ?mF%JS4Zn֏>͌~~#|Xf[#X,Y2W,XK 0c[RvF-ik/[c֓&LԘYg?<9X"Ra'ፋ.g3ҩRѪe7;W RY'4NbO֔7xPe,rL ZbdHɶ \!GIe%'_g'k}Z}["h$AY}>,Ym_Vb{ʼnQ$c 'i-i*|,iѭZ}LI)=m}Bɓ$!?ϳd!%kwikyI!_yOV$OV,X=X>Icb/a8 Ѹ 6krg1 ꋤCᢒprd '6,Z|<0=K}b=ȞO&z|$}q3g?ȟhb \titI K;IJ"2\ zi4hjMܓ퉨#(M0&122I4VekUk i3.h ' M47EߥJO7RTГ$M𤢤QTR;$.&|fl xz"''>F9_YL4ШrCZ'DŽpMH bx4E5.63c*Tӄ׉D J&D諡+$CӞ5ԓf|jծ3I? C8Eß/uY0 %sϦSo}k| |7ǯdxߌID܏z gFm~c?T̾F4G`VQŚ(i,ڊ| _&Ȳeb6Dġ?y&itL.?a8bjG4U*_2&0ֈ2|;0&" &`c6Gpz@0QER(k9"OGګw#æFDΉp;PXT0IMAl1zHEh!CFx>q&@G'x;%å7no=XpA҇ kⷱz!>X_;AcHF-0x! Hva3 "c 0x@<8vGݷ}XG_~ ӖcKo6TәM RQƿq`H\ܚ#H~f9&`cy$Bcz?Xbax(Ϸ?ѢrD5(rOOHO䥒cf͟'OJd%JE(Yr6,6GPm6?fa9XX͝\Ss\'9I8D O{٠ tcop(I#n8D$"ĵ(jV2g 0 L|f3;1 ##>'R%nN8\`KAD$X$`,Xe`Kް\6b׾*Qp6TTn"H#ؓ7ҒM(ӛR"'ɲ;u$mBzqD<*t$CL4Ɵ8OȞ''&I|FPFgçGIG~C`0IO\1Z`Ny,'&hk n$ IRбj7ra.\Sx} IIL$ E ("֕)h13~43&2Q>gQ&G'%e!%D,8`4> SB*\'$_}`.Ro)؛G0{BI?ir)gMf,f>˙L:DhHMXŮRE lVe_`@NS!I&ܬL@P5Mq&0iC1"f/(//L8M#c1rg,.XI*HTy)_R '& (.=!Ax~|,uwuww9NSnnU9ΓunRQ7#7GԟZ}ߣAij+IMMT)omX,tkd,qI#\+1cR1`,*R(9iaŏ>*JԭJ)MZ^)$jIqUBO,NY,JK!؉)#Z0|PF| d]bۄi?<} $LY;@h-"R\ոr+$;O\QG(P.;A-#ZPГl0MJe$erғU"vDI'%u\߉$䉏%}n O0MLtij5ߓ2rԙ$ۚ1)6a8CJzG'.K?[,\ .<)4ǟI te%I71}5#L,Lp2Thɔ?+U[JY(}I$BI2 g*У4駗g|4}>kZfQѷ -=[K!Ҫ4{N&Dw0||=a#W&4 ٬F%YN,RFL%IIfZ_ΪJ ֚ozd#RO J'>>ȎߍXa|” >  L (5RfF $(DЈ>~D'DO])>A=]"~ IԤIד56$4nT($8RPxRqKF|~3QQá xrfNMGMD"D TOִSGn# 4kŗ'fwaLNg**x$#({kZDk-EZYkZk$ɖ1y5##TM7b[ny3BlQE ;i`ia%K.a&''a-!rf $u,g>٣M99kMD}bNU8NUKWuo]UUU痰=V4/'2}Bz"g&0}1Œ3bo)E"b,Zb,fV0ϵW0Zt?I% EO q (7WVAz+3j`aKdl-DQCʪĒXK"Ho3N t];vwyoϾ SxhaFvb=9r`193؅ӯ<4{*9PKO*>ޒlƞ3⧩LY&e2LfR뤸|HLlqDnxN-ETYd4-ZQ&M|==8aOOJ&ҩ9#ܞtB4r$B BB?q,f0OLIX$s6=(o? xygũyfdžzyǽgrHJ>5ʗJUیx߬_k=~x[D;;Yz+eES:/G>J쒷SW%{БShW>DpøO#}sБ4q:a Q9҅%Bs'dE9u]Jz0=\.,5KYF#ŊǒQ%PFnb= ) C ''&uhׇ1͂Qe,R?0x p(t5):Ts,z'MXRI{ Lj)}đFi?~74ÏQ&Ǟ߿yTro[ hSGԘIxdteK,-)xxմ3VVMY=!(ٍԃꇦ&M&ܽyT(2fa">y&P>3b;j=&z:]}ha3Y)jU9OK3[@=C~/b"81!2C n ݟ\`|e`.12az&guIϓ??T %9i6$ v %.C>Tojtt%wr o=2fI7bX%,2 ,I;rubXR ,T, 7tINh#,$r`. =gz8&xXz`7NEk<đJ-e,IbrkZ i8s t~tE dph ˓9 F4o.%e:oUFKȢea?-Z{i՟G{KNysuϣf>7͇Ɉ! 炓 %Jgnq6Q4>xsw&ɞgp7I$U*A#$$E_歵m cm*Q04owRt e`b\^X./(` )L` tx|'<}N-*RejYM|[l `YIJ,EDF/NG ~p߸[i7DC٤`8dpMOP]5R#ΔQ:B^^nhDzĎ\K ߎb'#G G;/|Sx' sdIۛF6&rwlOlG&!1 'xus17}5Di? qJ4)8~{2|O9(NߺRx25C5>nSJ~ 9)# Kc .,djL#ľ8z1>@Qۄn1;)/pEwdW[ ؈2!E - 8R7'lRG7L;M˞@s&i9t퉼cgOJI872Gt'@=H㏆af](Q>6.*I&4ahNP %XjؖS?-/숤DNuG}:3ÇjQ5gjof^򴯦 ^԰E 1,M*Y8t'Xp~lH~w 2ZjɄXj]NFsRrJ'~ZRe$v$ xlbye rjI' R}|ԑϓ&[DX@М@OqNFzӵ/xa> % = Ot5a<ŅQFG/4wȝ] O`Qw8rc1( ~243T"s~mN`oŷzU-ށ|!NG65KIѴ.>A'(>XҼH !=,Ӵ†a `0."N;ixG//+#gh8QA[jOw4W&2jJ?h"@\P1(%DS¦JN,U`M{1H͓aO&V`e=&֍LJdٟ-M!0Ě/Cϧ>`֔qc^0_R)LQB& T7cΤGpQ?1͖|ˬ  2J`@bKKdc j$o0dp} INs=99n"KEpfHV>Q)7(y9!:)܊Gǐ;S 4)qAy{*I_lșǻ$ZI"$?+ ,FO;ec OOI}"Mx9v#=Qin힮9N21l̖fbe X~$g<8@y~b#Ob%Ù%7ڷvw7mۿ"soGŬ t]LOBRRb $j='>>;)7-UZ#ՅMD?MYQ=yT`% .o.3K:_(zXnFE0fҚ!cf}'L>ʓ<•%)JiiJҕ452 a,~~PB鵕*~}b&!3y%(K3[1b?E)RAȜ0]^sGF(wD{Cv#ܟ)'2';M#5&=_+D\% fb.O(pNɧFz)lG22\7Rx0UU{u"e'uZxoPi+¼5aqB((Xb%|.bb4]|xNa0b"֢ )8'OT.SGںGۘu >`[-efF*s'I%PIBE344FܤL,:vc>17q/n7鷏-ZZ$E%H"S|;ֵ cB~ۍ(s&ĭȞdeM 0K1JQqpؘ#C403Kc@H''9N{x"YJI=ف#\LDJ"0&=#)!x7 ,E&e  z{X^'HFPǎjcܿǮNc}=i,˹{UU\|F!~`ddTQ<ވ0`$Ƨ|0IS#:rmc-'h4.!PN# '}Sզy6=F< ٌ{xٔށw$ ӓVNȕ.Ut\2)YNFY-*e$Ccj؆Z0.^,y*PЍ QaE (iR9)FL`L ?<ٞ0K% ,D$3\aRǸvJbvukʗSEߓ<۝/dqL8sK#~\o:#nDӰO$eŲs B2ZOޖ!ΉRaJxREpFvtUJもɨ' Aډ' vĝPM̉Ɖ/$ܻjjlOXZ_PFlnЄHdYuiOP'F';C>}kia8A( qR*p$A0Q?}OkUUUOl'|"Ep6pBXO3"nG.#\ҍkXiJT.5"o(Hׅ|h}9%H%rВeg$2 鉧a#x`G}`Qv&|(ElMCjwi2tзv!IȞNK`MǍД'9OoUTL7u' 5'0vph߀ԉԚ' Bc&XM+ OC*TBJ1"H47R>P]RMX (D'Z%1ݥa<@O# hNv9 I2 jCADJ&1?ϦAc^ls`L`824'jDΗIHS0ؚвIqd>zǣT؂Q70~X~s4dDٽKHR£]j%o3˼SɞMhpPPMBjujI%(SR Cs F2běA?6zM-NIOogI"9$y~"?dTƖ)IjkE.BOaCvY>{sq8YO.*p 0"/J.<𗏐IP% bMT`G'b$&@rDF؊PN:#B'2&X7O#{FL# ",1 yǖjIJgTԈZ2&6v '&R''n'vM(?<$71Dt5BH݊RHn$i$R-~b8F?6B#ݒMa4d{BasâˣP$ykgp!:Пω3Bwrm 3ĤeIRDa fzHe,(xLm='H֓>O@5d9sRI94I۷M,QzƟwC׏:CTqBttthG[*&o~Ѝvd@&Xq8N&M&%HT}hB}`7`a Hb8Q44q#bFēb% bO2͑dbrMa"d|;`kI#˘<: 9:rbbQ6uDw3Hؾ 2ϊP~|I]$9:Q>PcVX#`6퉩$3rW'E 'T&N25RQR-y=$I4DkVpA4٬zcCبe*(Py5 #h0;A:dӎoQI8nqk $6vfm'9S۟FO_(:4FVǓ77(^e~7o/D'i$MN&hlƨ:9a{`]K\O$v$~#TˋRr%,G}'G20IӍz!ɭ8pruTԒOFNŢw?S~ybŖ)yOzlxD{Sµ$;yH}S Ang%mdn5,)G 7؞C*厔[țҰύ$&cuA0 SXw_Q'X qڞJ^Kt+Yn=1''r8$N 6}Zވ zdOxySS} 1fva8כN4Dؓ>r=QB(3R6=9< )2LQ0nGL'"O5vԿY;o,\$OZ }Ec{69`qBx;BHMylm`?|g.2.tg̘418a؛豿 O(jS&M;Fj2 #ڛ 9r.c8Ny1:77RiK2SOĚD3& 5L~1XctfTɨ9N$F;! !Mf(c!B( <߆1CDh xk ..4D<6XMy1;C(I2Hs"LX"%DO0$$4?۴nRcida hB~R[M%J^m9OQ&+q1ډ#0KiԚ(<5y|c85b0^=O*Y4=W-UÎNtS~!c$G>hhII3(DZOl2}cFRX6Go 6:rwם>Y\o94' vn<~쁔O0nv$,EarII>bg!'㍛ GKj/]oJYu̙g̙͓x'x맴=Yӟx x?Q&q3ӓvm{ӇFscD?sqݍ=Cܣzرe4#&~ݧPvc%3k3bu)Mc{//m8 NLXQ=u*G8?ڞ fF::"mTjQfW)f Nx޹)O;#'=6dɴ#=Z{g=[̧% URөtʞ a$ ț{#,9R|#97íOx{:PwFyюt7dУn!4'8&%“t^nrOVpv2n8V֎{7޶,Jo'=f1I$U4f81{ I雱x˞L٧`1Kûv$NN tˏg>cLgp'2Qɔp u;3:yO2tߝ >Q3T=>:XM]4ϟDp>G'Ϝ0GRoվAؓ5P(qg;14$Gr1>.=95c.?(CAaHREsyK9 Ic<Qb (QɅzMi(24 ŖxT2eK$0$PG\R.?U~7̞8R,?+Ky8grN(ͣ˲_DuNȦqԞlpn?#6jOL$zdD]}VzI:o9o(򁻆zGdfHhP`Ȓ%fkF\d&Lޕz,i I(%qRRKGRF1$Ɣ,0 VHGI՚e^LS ^rL䘒Rgi2f|ћSd睕UoL|(^3YY3j}C"q92u$/ J5"fDOޛxoNMA'6Ia3̤?'5s5gE377Q4qkrZofL$؛QŒIHpa2hFpO ؝2t#% 7rtcF#ygp622FvȁI. ܐ ,c*iUC$eP6dgt 7޷0.{^^^rl(Б%u-'J=`NMCw2oMW) (p3j-Tszq?9GN'ˮpv7^]w꒥'JO"ԲFYɦ%A99st/rDI)LD9D9T)<asD( $:t^pêJGnI5J3FFtC%2RRRJF.,qekkefTbRJ$p72f؏c #RLLJ34iI)8qNa5(S?2y*ߥjA:8hod\y"mK*VɿQx9Mn4.Z[hٓ{O>3 L^C!"4}]VNU]vlؙ'@g 7FS.`e[sِlkٗ51hGI2Fvg2vN'4Ykp7yHIK˜VӒ"$Ә攥>:G |~QG7p N\v$l˞$Tn FJwQBڨshoYn8x4f0MM sF# e(Vz&c,``)zYR(C3FD ٌNG!:I΄%ɷ:qq qq`rft]ʬsv FC6ZFeux5A:6Z[&#JSَtgϴ{~i`0En bΙpcv\bp0t2)#pL_}O 1QFk Iޓɫ)Ga~OALiE% fOGn.N0=aOb Cat/F^i<]ݻpd S8J$_MBhiMR(08Sqz$O}qtTMC`&G"p$K'KJ\j i-%ŤL|JRmޏf\izIW;')9[ڪ*V(Ɔ&&oB<`L ؍֦ئo1xœYc(q-yx5I# 9`Ӧ= (sX|ŒI)4IdIi>7ogzs*w YbԼETb28|M*)? ,G'F?E>1H^3 c(v,X%Q8M7t&pЈ%&N oğyIo;C #ԟԘ J2{wiTչ>Bn3#2=EG R#Ij(@MxsCw骕Zq E!4E# >y)J*`.`+kQxŖ֎6$9&!0a ;!~Кz],mx.I-Dl8aIHj_;<_&ԍq“ 'cRQ=>17˔QɄğ7ys T¥r zr?ұKM)W&Kdr'GChwr6Ějb4]8Y&ؘl5 ؐ~R¡t;WZ/`;֓ьFq?=D>X#Ĉ"BEKKRi"JY&))RVUUDԴS˟Jo~g(Q9ΡOJN\L0a'#{GLx};78ԛBM ) .#LuO={"iI,))*9Rf>O@nx|"{#!=4,\&9GMBGPT@}\mƀO%wM <`T)X>5V''$N8z7R8C\gB!ʑIt?%OT،"8Umj'&SBm_;]X >Q<bQ (Q'FtzJӓHf)uS󞸜POOO*OvL$߃5S.e@ad4 2 (ѼX`ؒf4 F~ze=WY#x':3 6OdLšXeZF"T>RÆ=BPTc2I:J'\CPڧ%%I$%Xo"~Oklt4 Ŷ?OVG&TI$'|v'䛒Iv'*>3 Uzo a ĆqA,ޏEeD[ l?ŋПiē$G6!D (`W %h]s/)<}N+ Z*)VIZō$?HtuEAɄbzʔ\ZjMGY?Cha=x?t<%O46U}5D;#Ҋ:&}Zʼnia+ G$ܖ$A ı4DRix '#&mO4XI=ag>c磉N@;S nDȕ*JUR 2SOG'ό~̭+`OZa#^'')b٪RUJ`=C{ZdH͖Pb> 0S2{׌Q\(ʎR*쟔x2OEb^0HI#v'p'&X@ &|?1OLL!O6`'%Iԑ݉ކaŽvL|tTUGK߄Tہ8iIDtd7o=nnA@gR8?苇&,LX(ʘ~((Or0I͈$ONB$ݕTdm|FQt$$ =y'8Tl#vS6ė(ˍ/'rPᅒ X ZEYta?ZE=Id@`I  zC9\x>z34K,$K a uq#tLe *JfI,%~|I-{}竧=l5=h=rMITS BPX0se p}N_xsttڐ2xO:Iʇ&hþ ]KUZ҆]ـٔd -RHl7\~!d0LvG{,j5dbX \B uNΰVU㪭UcN]ݕ.kw]wS= ? ldҔK\^m-Kg8^>*nCӅ DVNpy{gtNmhyD܇hyK8V~~{Uw}A 8@y4+\%m4&i,'&7-YݧJFx߄Dxo&8T8i'n{WlII(ˉp b5=hإI&g3z$}["9'9i<7'&25PtƴL.>Ig4\l#LG;)4I).0_y5A7#!2C_Wr5%*U`=E.aIIDQSDԶ8C4Tz3*>2Pgk*Tݏ 2 4آ(MП8'dI{.f&t֒X] L&AW"HdFT/xA'TG|"z4,K 3㾎,=jĦJ)'=`= \ykۃp^kDQ* G^"r5&*+ '&LBn[8 ;9sj0R'MG#dՠ1#apm*W]Ddabph=I=Q=n""TLN""*`F% MS,0 ?lLMPS56 +$0P7Q&q;5G=s&"z謈QDYNONU8;Q1 e,EZZZNtw/FAڲ? W q% DQ?IIf)q~8FqGc%j)K 0KNU/(eCi٪Ĩ'v<##8٪:ZM =z=숓“:puaqݼDRzxE'l >JOKM(0ڄrOMa/&c"Vp'6eMjd?YL]z uɞ#ڞ|[RxyD \~IM&,APwF'FyC63o-tRۻ9ηrܿgQSēSk)Y"tHvV]';[wswy]hn^wnxs.nk;yQo#۳UK*X/‹%Pp3rPCN- L,@T5d^ȟ1/Rq'JLՓt?>A(D%V.Ms zTLI%tg+0F**.<2! "ph))hB! !C{Gץ*u~ةGɋْJyd(b;zbZޕ?Ќ n2^ hZjTu$'Ukq'hq͞-~ oZ:=96Ę 6lSb#v-i-bMm4m;2kgHnvֳ<-o49y4z-z85V4v&i&96i֊}3!|nh89OG#sQ&FBqDn g-j6NPzjNX 6氦b,8C((I_Fqǔ&I&S)4FܝA<?A22E*))?Gmi{!4 N' R"sxznx^R˂:p$Ϝq*\)ɓLJ$L~Q%o#DĽdhג7(~P`hLU%dY^X|qK(%G%E̙E ǨLD։y U:Zr~O,tB\X1Ȱ  c87>jɾEkmmx<afU>%8%ˀx'+ŋv2UJO4G3b03f OR^잉(@ 3&3ZO&`:Ѫa"L,DCZAԌSyb}@W z$?eO0lE+ p$yxR#{*?+;D)|IkqM Yj$q#ZvoC^# :sn4Miظ'=Py2X<`.3k(P(QlʺsޓC|RSsg4Q% #bahO!C7UX .GϏQw-R(6igQUG1J*i?SgC5^'Iy3TO !& u[`x܆I9byQy&Э1r 0O ~>U*MS<ߴ6mJ5:5UqPJـ9+n-eVVYPT_R^`0'u/!}Z hncǔg92"2 kfgV-hiNbI T({zopZg( q31?&d&1eʢZG h % I1 E &hؘяZ# .A#HhCv'FO4ZDSviԡE^/M[D3b`fI8g@wE|9 48UR겒VdUJ.CDx~AZǓ(Z"YB`-qyREϓmשEp}v2T&>V2dK&,>_$}gOo10 G$).%/jRQK%tH2G3F"}%˓ŃY))/%\L M3>x$h|qĭg7 :ƨ猑c0l{e]+Hɜh"Pt'.7нΚݭɦݸ@6 D.ϫ,Eq1o0q wIws[#A|4~ޱ "[~>H^ IބRs- uD7gdE$\oǁ+CL$0(Qqޏ8N:Q0#4PþZ/J\JRX@V#aiScwoAV R-l׆Zmѣb>vO}S@4 d($O^z'g2A$[+ ؜Kc ՎXXavzy0J(J(у>Y@oG/kN%37)"zRg}ND%E DBhs~`EJ@݇JxW",o a6?$9K[853aiGVYv.\#-'m(L${XJ^l-0I!*)?(S5 5Zlj5r0i E?4&=ŝLJ*rK{ϐHdc} ZH*IJU(OF NP,`4,lt‘t\iFW Z3̡mnO)/nBR\8 ȟlMF@=O&̄l0y2 ijUVC DV` '=a>=|R 2q#,{K4uȸS ,Sr?!1aL0HCm9سoJ?_3btFCOi9UG;?.wKUxa Jщ̚13ov֥YakZRjHxnsss;Oͼ%iU*o?6i{Ii˾===s~}Y:j;$ڏLY 7,N(;W@ʲp*ޝk.X2U@2UQM6cX&fffU$C $F $E XL6I5$B-*" iH "8"MQE dTs2Q3c,2Tڠ"d!6ª"""*qk몢wvoOOBIsgHU=πN(<x=Ω*NUu]d7#zoFjĚI4DEijQ-JAZ)G=;x>$nDqMn{{UU4;eN{c8K.&!0XRGt*G{>%s*|+&BM#:(M[ш{ LTB{<);'!ş@C<)6o>X B3`RM)Dc(HDKLF3{ѸMI>')~a;Ĕ܌_KK(ݓwGGNOMhUUP\eBjMJ/&P'  >OٮzfCtㅷN,Q˷{{' oS~8QAÍv&J몟\nw'0ÞYk[F){G=Z2G=FdXJpc˞! &#F2(֌1ሢQ(Q7aAcJُ03;߉Jnz+K%L7B\$aZ(Zѭ4QV˿['u$:O4Q e,jH2#fE&><,&RKJdxe<6T0 0 zȵr^9 UT?&(_ ]| S$$-0Mi&u7S&"71sD5_T^d=m}J}|ȓ.,1;Mi6A#?9;KMHI3SK8}>'׉'OkHsE(dA B-TX CA PUhA`nA5QRJcLqKOjx8?{J֥ xOmť `%A/ }}*ꔮWR)W0L%T¥0aq׶MrKBqd_U7DemAã_|=#''#fmHsl.6䎀Q7Pe@%%EJu6(K.' D.1͟KWmwN::;Zu:ԧ\;s';ۗ:w+ܭxouo-txF|װ@,`&M*qLC/l')>֤mĿy z{G/T#o6G.'(f/Ks™Tff-=IA(dʕ4&D`v)kŋR>B!ŭ8xB^3eR(P IS0U4!_*R3A*T//4=;@&Kf&euԁx&lQ¬Fs*[Ex~2 șI6f 4*K$!7E*^)w.^݊pMH8@=E#QDe/uQ祾,Ql-zc((QuyD ؟@JcsM!ҪdK,QLJ=9">'-i]y>3kHKX-ajK=kTknZ oCM5,-s&Fa.>!*ZJ@]ɒМ' UU+6#PɃuDjUQUT)kww[iju֮TT]w]neVs+]ۻצ|?\7O:Xo 7|zUb ܓ% NDlO>KUUUpE1G3ɯ^`*I'~]qZJ΂`(LsB~:'L` |4 %ܱb~I ܂֏Zh(PjD(JC Y#bp Ii;rnoY“'% Q6REQ(9R'tU:wF@wԛtꖷyq#!2E}q>#T4'1 +1_=fo1#O骪ju>=aĪ*J,UkTkWo f3AB_ s'&M $s ]"NXY,G>4*HNH{YɄ$z""{Z-0n, =H8Tk(!'jD*G%>xUEϝ*􍸎*UnҦQ<);ˏ93Г((yG p-Wa$F aM0 S1?EUUURU6%KQEKiE& :\yYJ]*\y( 'O2Y EKθI ƲX ,iiE:9ަJ].QqE (uߑ?4dɱń#8zcv!RrRG$z5^ǦDVՑt:ӏԥOys8=>'(zqBggLBbX'Ȗ:MX& cJ wpMIOL,f)5k*pIFxRh#?JZ<س ….cR4b(ȗA $ZE-VNğq.%aɈ\Q*HHg<d%RT=3PJC U:Վ'z,N?T\yAi' RHbTI FYɘ(? ,3cgĉDd .,f e0'P?vtd)8)&}Q|i*ZX2,Ld_&y}fuсגH3[Ğผ(7*O9H8a7dPkCI=tfq\KrD<J&|.DǤ^>I^[A(z&Qc5XIA'JJJVEg\,üK^q(`,n&q><Ϩ\W#U& ,TuVI.̘@KQeҪ{_-8Rs$$B~F5E g oFq{8FAD1 $?:TbJObtƨQM>9}єQ(y2pеjko.8i.^H/X N ^vư5+ ٛ"5 K 5ʼn:+U"O wZ2B㨥JzL =# A B^gFDx'{Q aS0,EK,S ^X`^cC4_=pqQQ|0􁬉I?bGLI=8xKPo'0I\W;"K CŌ%5RGTKpSA\GyOJFĢ>:k?QH4϶S;~DbY}k)>9k:6=CN s]hMPN@кtm5m}Qu_\6zs8RM&>{̥U)U^E3Iu$ЏnFnyBkV9'8Hud6zuj 7Surðyp?L mߟ߼NMG 1#CI#)#۷B>.$qIӕӕ^9MD@HAeTM4AS3=\xs^yq;շ$H (M&@1ff*8mÇI$ʈ!S5"!$0cr+έ;Jݼrr