summaryrefslogtreecommitdiffstats
path: root/perl-install/install/media.pm
blob: aa0b1cd2317689478ad37f1d67e3e7ba077f3c96 (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
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
package install::media; # $Id$

use strict;

our @ISA = qw(Exporter);
our @EXPORT_OK = qw(getFile_ getAndSaveFile_ getAndSaveFile_media_info packageMedium);

use common;
use fs::type;
use urpm::download;

#- list of fields for {phys_medium} :
#-	device
#-	fs_type
#-	is_suppl (is a supplementary media)
#-	isMounted
#-	loopback_device
#-	loopback_file
#-	method
#-	mntpoint
#-	name (text description, same as first medium {name})
#-	real_mntpoint
#-	rel_path (for isofiles and cdrom)
#-	url

#- list of fields for {media} :
#-	end (last rpm id, undefined iff not selected)
#-	fakemedium ("$name ($rpmsdir)", used locally by urpmi)
#-	rel_hdlist
#-	key-ids
#-	name (text description)
#-	pubkey (array containing all the keys to import)
#-	phys_medium
#-	rpmsdir
#-	selected
#-	size (in MB)
#-	start (first rpm id, undefined iff not selected)
#-	update (for install_urpmi)


our $postinstall_rpms = '';
my %mounted_media;

sub _free_medium_id {
    my ($media) = @_;
    int(@$media);
}

sub allMediums {
    my ($packages) = @_;

    @{$packages->{media}};
}

sub _phys_media {
    my ($packages) = @_;

    uniq(map { $_->{phys_medium} } @{$packages->{media}});
}

sub _pkg2media {
   my ($media, $p) = @_; 
   $p or internal_error("invalid package");

   find {
       $_->{selected} &&
	 $p->id >= $_->{start} && $p->id <= $_->{end};
   } @$media;
}

sub packageMedium {
   my ($packages, $p) = @_;

   _pkg2media($packages->{media}, $p) || {};
}
sub packagesOfMedium {
    my ($packages, $medium) = @_;

    @{$packages->{depslist}}[$medium->{start} .. $medium->{end}];
}

sub first_medium {
    my ($packages) = @_;
    $packages->{media}[0];
}

sub path {
    my ($phys_m, $f) = @_;

    ($phys_m->{real_mntpoint} || fs::get::mntpoint_prefixed($phys_m)) . $phys_m->{rel_path} . '/' . $f;
}

sub rel_rpm_file {
    my ($medium, $f) = @_;
    if (my ($arch) = $f =~ m|\.([^\.]*)\.rpm$|) {
	$f = "$medium->{rpmsdir}/$f";
	$f =~ s/%{ARCH}/$arch/g;
	$f =~ s,^/+,,g;
    }
    $f;
}

sub umount_phys_medium {
    my ($phys_m) = @_;

    my $ok = eval { 
	fs::mount::umount_part($phys_m); 
	delete $phys_m->{real_mntpoint}; #- next time, we can mount it in the dest dir
	1;
    };
    if ($@) {
	log::l("umount phys_medium $phys_m->{url} failed ($@)");
	log::l("files still open: ", readlink($_)) foreach map { glob_("$_/fd/*") } glob_("/proc/*");
    }
    $ok;
}
sub _mount_phys_medium {
    my ($phys_m, $o_rel_file, $b_force_change) = @_;

    if (!$b_force_change) {
	eval { fs::mount::part($phys_m) };
	return if $@;
    }
    my $ok = !$o_rel_file || -e path($phys_m, $o_rel_file);

    if ($phys_m->{method} eq 'cdrom' && ($b_force_change || !$ok)) {
	$ok = $::o->ask_change_cd($phys_m, $o_rel_file);
    }
    $ok;
}

sub umount_media {
    my ($packages) = @_;

    #- we don't bother umounting first phys medium if clp is not on disk
    #- (this is mainly for nfs installs using install/stage2/live)
    my @l = _phys_media($packages);
    shift @l if !$install::any::compressed_image_on_disk && $l[0]{is_stage2_phys_medium};

    umount_phys_medium($_) foreach @l;
    umount_phys_medium($_) foreach grep { $_ } map { $_->{loopback_device} } @l;
}

sub phys_medium_to_string {
    my ($phys_m) = @_;
    urpm::download::url_obscuring_password($phys_m->{url}) . ($phys_m->{name} ? " ($phys_m->{name})" : '');
}

sub _stage2_mounted_medium {
    my ($method, $rel_path) = @_;

    my ($device, $real_mntpoint, $fs_type, $url);
    if ($method eq 'nfs') {
	(my $server, my $nfs_path, $real_mntpoint, $fs_type) = cat_("/proc/mounts") =~ m!(\S+):(\S+)\s+(/tmp/media)\s+(\S+)!;
	$device = "$server:$nfs_path";
	$url = "nfs://$server$nfs_path$rel_path";
    } elsif ($method eq 'disk') {
	($device, $real_mntpoint, $fs_type) = cat_("/proc/mounts") =~ m!/dev/(\S+)\s+(/tmp/media)\s+(\S+)!;
	$url = "disk://$device$rel_path";
    } elsif ($method eq 'cdrom') {
	($device, $real_mntpoint, $fs_type) = cat_("/proc/mounts") =~ m!/dev/(\S+)\s+(/tmp/media)\s+(\S+)!;
	$url = "cdrom:/" . ($rel_path || '/');
    } else {
	($device, $real_mntpoint, $fs_type) = cat_("/proc/mounts") =~ m!(?:/dev/)?(\S+)\s+(/tmp/media)\s+(\S+)!;
	$url = "file:/" . ($rel_path || '/');
    }
    $real_mntpoint or internal_error("no real_mntpoint");
    +{ 
	method => $method, rel_path => $rel_path, isMounted => 1,
	device => $device, url => $url,
	real_mntpoint => $real_mntpoint, fs_type => $fs_type,
    };
}

#- used once at beginning of install
sub stage2_phys_medium {
    my ($method) = @_;

    if ($method eq 'ftp' && !$ENV{URLPREFIX}) {
	my $user = $ENV{LOGIN} && ($ENV{LOGIN} . ($ENV{PASSWORD} && ":$ENV{PASSWORD}") . '@');
	$ENV{URLPREFIX} = "ftp://$user$ENV{HOST}/$ENV{PREFIX}";
    }
    if ($method eq 'http' || $method eq 'ftp') {
	{ method => $method, url => $ENV{URLPREFIX} };
    } elsif ($method =~ /(.*)-iso$/) {
	my $dir_method = $1;
	my $rel_path = readlink('/tmp/image') =~ m!loop/*(/.*)! ? $1 : '';

	my $rel_iso = $ENV{ISOPATH} =~ m!media/*(/.*)! ? $1 : '';
	my ($dir_url, $iso) = (dirname($rel_iso), basename($rel_iso));

	my $dir_medium = _stage2_mounted_medium($dir_method, $dir_url eq '/' ? '' : $dir_url);
	my $phys_m = _iso_phys_media($dir_medium, $iso, '');
	$phys_m->{real_mntpoint} = '/tmp/loop';
	$phys_m->{real_device} = cat_("/proc/mounts") =~ m!(/dev/\S+)\s+/tmp/loop\s! && $1;
	$phys_m->{isMounted} = 1;
	$phys_m->{rel_path} = $rel_path;
	$phys_m;
    } else {
	my $rel_path = readlink('/tmp/image') =~ m!media/*(/.*)! ? $1 : '';
	_stage2_mounted_medium($method, $rel_path);
    }
}

#- return true if the medium is available
#- ($o_rel_file is only used for removable media)
sub change_phys_medium {
    my ($phys_m, $o_rel_file, $o_packages) = @_;

    undef $o_rel_file if $phys_m->{unknown_CD}; #- don't take into account the wanted file

    log::l("change_phys_medium " . phys_medium_to_string($phys_m) .
	     ($o_rel_file ? " for file $o_rel_file" : ''));

    !$phys_m->{isMounted} && $phys_m->{mntpoint} or return 1; #- nothing to do in such case.

    #- if a cdrom was mounted and we want another one, do not try to mount cdrom just after umounting it
    my $force_change = $phys_m->{method} eq 'cdrom' && $mounted_media{cdrom};

    if (my $current = $mounted_media{$phys_m->{method}}) {
	_setup_postinstall_rpms($::o, $o_packages, $current) if $o_packages && $phys_m->{method} eq 'cdrom' && $::o->isa('interactive');
	umount_phys_medium($current) or return;
	delete $mounted_media{$phys_m->{method}};
    }
    _mount_phys_medium($phys_m, $o_rel_file, $force_change) or return;
    _phys_medium_is_mounted($phys_m);
    1;
}

sub _phys_medium_is_mounted {
    my ($phys_m) = @_;
    if (member($phys_m->{method}, 'cdrom', 'iso')) {
	#- we can't have more than one cdrom mounted at once
	#- we limit the number of iso files mounted at once
	$mounted_media{$phys_m->{method}} = $phys_m;
    }
}

sub _associate_phys_media {
    my ($all_hds, $main_phys_medium, $hdlists) = @_;

    my ($main_name, @other_names) = uniq(map { $_->{name} } @$hdlists);

    my @other_phys_media = 
      $main_phys_medium->{method} eq 'iso' ?
	_get_phys_media_iso($all_hds, $main_phys_medium, \@other_names) :
      $main_phys_medium->{method} eq 'cdrom' ?
	(map { _get_phys_media_cdrom($main_phys_medium, $_) } @other_names) :
	  ();

    if (@other_phys_media) {
	$main_phys_medium->{name} = $main_name;

	my @phys_media = ($main_phys_medium, @other_phys_media);

	foreach my $medium (@$hdlists) {
	    if (my $phys_m = find { $_->{name} eq $medium->{name} } @phys_media) {
		$medium->{phys_medium} and log::l("$medium->{name} has already phys_medium $medium->{phys_medium}{url}");
		log::l("setting medium $medium->{name} phys_medium to $phys_m->{url}");
		$medium->{phys_medium} = $phys_m;
	    } else {
		$medium->{selected} = 0;
		log::l("deselecting missing medium $medium->{rpmsdir}");
	    }
	}
    } else {
	foreach my $medium (@$hdlists) {
	    $medium->{phys_medium} = $main_phys_medium;
	}
    }
}

sub _get_phys_media_cdrom {
    my ($main_phys_m, $name) = @_;

    #- exactly the same as $main_phys_m, but for {name}, {isMounted} and {real_mntpoint}
    +{ %$main_phys_m, name => $name, isMounted => 0, real_mntpoint => undef };
}

sub _iso_phys_media {
    my ($dir_medium, $iso, $rel_path) = @_;

    my $mntpoint = "/mnt/$iso";
    $mntpoint =~ s/\.iso$//; #- make the mount point a little nicer

    my $rel_file = $dir_medium->{rel_path} . "/$iso";

    +{ 
	url => $dir_medium->{url} . "/$iso", #- only used for printing
	method => 'iso', 
	fs_type => 'iso9660', options => 'noauto,loop',
	loopback_device => $dir_medium, loopback_file => $rel_file, 
	device => ($dir_medium->{real_mntpoint} || $::prefix . $dir_medium->{mntpoint}) . $rel_file,
	mntpoint => $mntpoint, rel_path => $rel_path,
    };
}
sub _get_phys_media_iso {
    my ($all_hds, $main_phys_m, $names) = @_;

    my @ISOs = grep { member($_->{app_id}, @$names) } _look_for_ISO_images($main_phys_m->{device});

    map {
	my $m = _iso_phys_media($main_phys_m->{loopback_device}, $_->{file}, $main_phys_m->{rel_path});
	$m->{name} = $_->{app_id};
	push @{$all_hds->{loopbacks}}, $m;
	$m;
    } @ISOs;
}
sub _look_for_ISO_images {
    my ($main_iso) = @_;

    my $iso_dir = dirname($main_iso);

    my @media = map {
	if (sysopen(my $F, "$iso_dir/$_", 0)) {
	    my ($vol_id, $app_id) = c::get_iso_volume_ids(fileno $F);
	    #- the ISO volume names must end in -CD\d+ if they belong (!) to a set
	    #- otherwise use the full volume name as CD set identifier
	    my $cd_set = $vol_id =~ /^(.*)-(disc|cd|dvd)\d+$/i ? $1 : $vol_id;

	    log::l("found ISO: file=$_ cd_set=$cd_set app_id=$app_id");
	    { cd_set => $cd_set, app_id => $app_id, file => $_ };
	} else {
	    ();
	}
    } grep { /\.iso$/ } all($iso_dir);

    my $main = find { basename($main_iso) eq $_->{file} } @media or return;

    grep { $_->{cd_set} eq $main->{cd_set} } @media;
}


sub _getFile_media_info {
    my ($packages, $f) = @_;
    getFile_(first_medium($packages)->{phys_medium}, $f);
}

sub _open_file_and_size {
    my ($f) = @_;
    my $size = -s $f;
    my $fh = common::open_file($f) or return;
    $size, $fh;
}
sub getFile_ {
    my ($phys_m, $f) = @_;
    log::l("getFile $f on " . phys_medium_to_string($phys_m) . "");

    my ($_size, $fh) = get_file_and_size($phys_m, $f) or return;
    $fh;
}
sub get_file_and_size {
    my ($phys_m, $f) = @_;

    if ($f =~ m|^http://|) {
	require install::http;
	install::http::get_file_and_size($f);
    } elsif ($phys_m->{method} eq "ftp") {
	require install::ftp;
	install::ftp::get_file_and_size($f, $phys_m->{url});
    } elsif ($phys_m->{method} eq "http") {
	require install::http;
	install::http::get_file_and_size_($f, $phys_m->{url});
    } elsif ($f =~ m!^/!) {
	_open_file_and_size($f);
    } elsif ($postinstall_rpms && -e "$postinstall_rpms/$f") {
	_open_file_and_size("$postinstall_rpms/$f");
    } else {
	my $f2 = path($phys_m, $f);

	if (! -f $f2) {
	    change_phys_medium($phys_m, $f, $::o->{packages});
	}
	_open_file_and_size($f2);
    }
}

sub getAndSaveFile_ {
    my ($phys_m, $file, $local) = @_;
    my $fh = getFile_($phys_m, $file) or return;
    _getAndSaveFile_raw($fh, $local);
}
sub _getAndSaveFile_progress {
    my ($in_wait, $msg, $phys_m, $file, $local) = @_;
    my ($size, $fh) = get_file_and_size($phys_m, $file) or return;
    if ($size) {
	_getAndSaveFile_progress_raw($in_wait, $msg, $size, $fh, $local);
    } else {
	_getAndSaveFile_raw($fh, $local);
    }
}
sub _getAndSaveFile_raw {
    my ($fh, $local) = @_;

    local $/ = \ (16 * 1024);
    unlink $local;
    open(my $F, ">$local") or log::l("getAndSaveFile(opening $local): $!"), return;
    local $_;
    while (<$fh>) { syswrite($F, $_) or unlink($local), die("getAndSaveFile($local): $!") }
    1;
}
sub _getAndSaveFile_progress_raw {
    my ($in_wait, $msg, $size, $fh, $local) = @_;

    unlink $local;
    open(my $out, ">$local") or log::l("getAndSaveFile(opening $local): $!"), return;
    _print_with_progress($in_wait, $msg, $size, $fh, $out) or unlink($local), die("getAndSaveFile($local): $!");
}
sub _print_with_progress {
    my ($in_wait, $msg, $size, $in, $out) = @_;

    my ($_wait, $wait_message) = $in_wait->wait_message_with_progress_bar(N("Please wait, retrieving file"));
    $wait_message->($msg);

    my $current = 0;

    require Time::HiRes;
    my $time = Time::HiRes::time();

    local $/ = \ (64 * 1024);
    while (my $s = <$in>) { 
	syswrite($out, $s) or return;

	$current += length($s);
	if (Time::HiRes::time() > $time + 0.1) {
	    $wait_message->('', $current, $size);
	    $time = Time::HiRes::time();
	}
    }
    1;
}


sub urpmidir() {
    my $v = "$::prefix/var/lib/urpmi";
    -l $v && !-e $v and unlink $v and mkdir $v, 0755; #- dangling symlink
    -w $v ? $v : '/tmp';
}

sub hdlist_on_disk {
    my ($m) = @_;

    urpmidir() . "/hdlist.$m->{fakemedium}.cz";
}

sub _allow_copy_rpms_on_disk {
    my ($medium, $hdlists) = @_;

    $medium->{device} && $medium->{method} ne 'iso' or return;

    #- check available size for copying rpms from infos in media.cfg file
    my $totalsize = sum(map { $_->{size} } @$hdlists) || -1; #- don't check size, total medium size unknown

    if ($totalsize >= 0) {
	my $availvar = fs::any::getAvailableSpace_mounted("$::prefix/var");
	$availvar /= 1024 * 1024; #- Mo
	log::l("totalsize=$totalsize, avail on $::prefix/var=$availvar");
	$totalsize < $availvar * 0.6;
    } else {
	#- we hope it will fit...
	1;
    }
}

sub _parse_media_cfg {
    my ($cfg) = @_;

    require MDV::Distribconf;
    my $d = MDV::Distribconf->new('', undef);
    $d->parse_mediacfg($cfg);

    my $distribconf = { map { $_ => $d->getvalue(undef, $_) } 'suppl', 'askmedia' };
    my @hdlists = map { 
	my ($size) = $d->getvalue($_, 'size') =~ /(\d+)MB?/i;
	my $name = $d->getvalue($_, 'name'); 
	$name =~ s/^"(.*)"$/$1/;
	{ 
	    rpmsdir => $_,
	    rel_hdlist => 'media_info/' . $d->getvalue($_, 'hdlist'),
	    name => $name,
	    size => $size,
	    selected => !$d->getvalue($_, 'noauto'),
	    update => $d->getvalue($_, 'updates_for') ? 1 : undef,
	};
    } $d->listmedia;

    $distribconf, \@hdlists;
}

sub get_media {
    my ($o, $media, $packages) = @_;

    my ($suppl_CDs, $copy_rpms_on_disk);
    foreach (@$media) {
	if ($_->{type} eq 'media_cfg') {
	    my $phys_m = url2mounted_phys_medium($o, $_->{url}, 'media_info');
	    ($suppl_CDs, $copy_rpms_on_disk) = get_media_cfg($o, $phys_m, $packages, $_->{selected_names}, $_->{force_rpmsrate});
	} elsif ($_->{type} eq 'media') {
	    my $phys_m = url2mounted_phys_medium($o, $_->{url});
	    get_standalone_medium($o, $phys_m, $packages, { name => $_->{id} =~ /media=(.*)/ && $1 });
	} elsif ($_->{type} eq 'media_cfg_isos') {
	    my ($dir_url, $iso, $rel_path) = $_->{url} =~ m!(.*)/(.*\.iso):(/.*)! or die "bad media_cfg_isos url $_->{url}";
	    my $dir_medium = url2mounted_phys_medium($o, $dir_url);
	    $dir_medium->{options} =~ s/\bnoauto\b,?//;
	    my $phys_m = _iso_phys_media($dir_medium, $iso, $rel_path);
	    push @{$o->{all_hds}{loopbacks}}, $phys_m;
	    ($suppl_CDs, $copy_rpms_on_disk) = get_media_cfg($o, $phys_m, $packages, $_->{selected_names}, $_->{force_rpmsrate});
	} else {
	    log::l("unknown media type $_->{type}, skipping");
	}
    }
    log::l("suppl_CDs=$suppl_CDs copy_rpms_on_disk=$copy_rpms_on_disk");
    $suppl_CDs, $copy_rpms_on_disk;
}

sub remove_from_fstab {
    my ($all_hds, $phys_m) = @_;

    @{$all_hds->{nfss}} = grep { $_ != $phys_m } @{$all_hds->{nfss}} if $phys_m->{method} eq 'nfs';
}

sub _find_and_add_to_fstab {
    my ($all_hds, $phys_m, $b_force_mount) = @_;

    if (my $existant = find { $_->{device} eq $phys_m->{device} } fs::get::really_all_fstab($all_hds)) {
	add2hash($existant, $phys_m);
	$phys_m = $existant;
    } else {
	push @{$all_hds->{nfss}}, $phys_m if $phys_m->{method} eq 'nfs';
	push @{$all_hds->{loopbacks}}, $phys_m if isLoopback($phys_m);
    }

    if (!$phys_m->{mntpoint}) {
	my @suggestions = $phys_m->{method} eq 'nfs' ? do {
	    my ($server) = $phys_m->{device} =~ /(.*?):/;
	    $phys_m->{options} = ($b_force_mount ? '' : 'noauto,') . 'ro,nosuid,soft,rsize=8192,wsize=8192';
	    '/mnt/nfs', "/mnt/nfs_$server";
	} : $phys_m->{method} eq 'cdrom' ?
	  ('/media/cdrom', "/media/$phys_m->{device}") :
	  ('/mnt/hd', "/mnt/$phys_m->{device}");

	my $last = $suggestions[-1];
	push @suggestions, map { "$last$_" } 2 .. 30;
	$phys_m->{mntpoint} = find { !fs::get::has_mntpoint($_, $all_hds) } @suggestions or internal_error("no free dir available");
    }
    $phys_m;
}

sub url2mounted_phys_medium {
    my ($o, $url, $o_rel_file, $o_name) = @_;

    my $phys_m = _url2phys_medium($o, $url);
    $phys_m->{name} = $o_name if $o_name; #- useful for CDs which prompts a name in change_phys_medium
    change_phys_medium($phys_m, $o_rel_file, $o->{packages}) or return;
    $phys_m;
}

sub _url2phys_medium {
    my ($o, $url) = @_;
    my ($method, $path) = $url =~ m!([^:]*)://(.*)! or internal_error("bad url $url");
    if ($method eq 'drakx') {
	my $m = { %{$o->{stage2_phys_medium}}, is_stage2_phys_medium => 1 };
	if ($m->{loopback_device}) {
	    $m->{loopback_device} = _find_and_add_to_fstab($o->{all_hds}, $m->{loopback_device}, 'force_mount');
	}
	$m->{url} .= "/$path";
	$m->{rel_path} .= "/$path" if $m->{device};
	$m = _find_and_add_to_fstab($o->{all_hds}, $m) if $m->{device};
	_phys_medium_is_mounted($m);
	$m;
    } elsif ($method eq 'cdrom') {
	my $cdrom = first(detect_devices::cdroms());
	my $m = { 
	    url => $url, method => $method, fs_type => 'iso9660', device => $cdrom->{device}, 
	    rel_path => "/$path",
	};
	my $m_ = _find_and_add_to_fstab($o->{all_hds}, $m);
	if ($m_->{name}) {
	    #- we need a new phys medium, different from current CD
	    $m_ = _get_phys_media_cdrom($m_, '');
	    #- we also need to enforce what we want, especially rel_path
	    put_in_hash($m_, $m);
	}
	$m_;
    } elsif ($method eq 'nfs') {
	my ($server, $nfs_dir) = $path =~ m!(.*?)(/.*)!;

	my $m = { 
	    url => $url, method => $method,
	    fs_type => 'nfs', device => "$server:$nfs_dir", faked_device => 1,
	};
	_find_and_add_to_fstab($o->{all_hds}, $m);
    } else {
	{ url => $url, method => $method };
    }
}

sub get_media_cfg {
    my ($o, $phys_medium, $packages, $selected_names, $force_rpmsrate) = @_;

    my ($distribconf, $hdlists);
    if (getAndSaveFile_($phys_medium, 'media_info/media.cfg', '/tmp/media.cfg')) {
	($distribconf, $hdlists) = _parse_media_cfg('/tmp/media.cfg');
    } else {
        die "media.cfg not found";
    }

    if (defined $selected_names) {
        my @names = split ',', $selected_names;
        foreach my $h (@$hdlists) {
            $h->{selected} = member($h->{name}, @names);
        }
    }

    my $suppl_CDs = exists $o->{supplmedia} ? $o->{supplmedia} : $distribconf->{suppl} || 0;
    my $deselectionAllowed = $distribconf->{askmedia} || $o->{askmedia} || 0;

    _associate_phys_media($o->{all_hds}, $phys_medium, $hdlists);

    if ($deselectionAllowed && !@{$packages->{media}}) {
	my $allow = _allow_copy_rpms_on_disk($phys_medium, $hdlists);
	$o->ask_deselect_media__copy_on_disk($hdlists, $allow && \$o->{copy_rpms_on_disk}) if $allow || @$hdlists > 1;
    }

    foreach my $h (@$hdlists) {
	_get_medium($o, $phys_medium, $packages, $h);
    }

    log::l("get_media_cfg read " . int(@{$packages->{depslist}}) . " headers");


    #- copy latest compssUsers.pl and rpmsrate somewhere locally
    if ($force_rpmsrate || ! -e '/tmp/rpmsrate') {
	getAndSaveFile_($phys_medium, "media_info/rpmsrate", "/tmp/rpmsrate");
    }
    if ($force_rpmsrate || ! -e '/tmp/compssUsers.pl') {
	getAndSaveFile_($phys_medium, "media_info/compssUsers.pl", "/tmp/compssUsers.pl");
    }


    $suppl_CDs, $o->{copy_rpms_on_disk};
}

sub get_standalone_medium {
    my ($in, $phys_m, $packages, $m) = @_;

    add2hash($m, { phys_medium => $phys_m, selected => 1, rel_hdlist => 'media_info/hdlist.cz' });
    _get_medium($in, $phys_m, $packages, $m);
}

sub _get_medium {
    my ($in_wait, $phys_m, $packages, $m) = @_;

    $m->{selected} or log::l("ignoring packages in $m->{rel_hdlist}"), return;

    my $medium_id = int @{$packages->{media}};
    $m->{fakemedium} = $m->{name} || $phys_m->{method};
    $m->{fakemedium} =~ s!/!_!g; #- remove "/" from name
    if (find { $m->{fakemedium} eq $_->{fakemedium} } allMediums($packages)) {
	$m->{fakemedium} .= " (" . ($m->{rpmsdir} || $medium_id) . ")";
	$m->{fakemedium} =~ s!/!_!g; #- remove "/" from rpmsdir
    }

    log::l("trying to read $m->{rel_hdlist} for medium '$m->{fakemedium}'");
    
    #- copy hdlist file directly to urpmi directory, this will be used
    #- for getting header of package during installation.
    my $hdlist = hdlist_on_disk($m);
    {
	_getAndSaveFile_progress($in_wait, N("Downloading file %s...", $m->{rel_hdlist}),
				$phys_m, $m->{rel_hdlist}, $hdlist) or die "no $m->{rel_hdlist} found";

    }

    my $synthesis = urpmidir() . "/synthesis.hdlist.$m->{fakemedium}.cz";
    {
	my $rel_synthesis = $m->{rel_hdlist};
	$rel_synthesis =~ s!/hdlist!/synthesis.hdlist! or internal_error("bad {rel_hdlist} $m->{rel_hdlist}");
	#- copy existing synthesis file too.
	_getAndSaveFile_progress($in_wait, N("Downloading file %s...", $rel_synthesis),
				$phys_m, $rel_synthesis, $synthesis);
    }

    #- get all keys corresponding in the right pubkey file,
    #- they will be added in rpmdb later if not found.
    if (!$m->{pubkey}) {
	my $rel_pubkey = $m->{rel_hdlist};
	$rel_pubkey =~ s!/hdlist(.*)\.cz!/pubkey$1! or internal_error("bad {rel_hdlist} $m->{rel_hdlist}");
	$m->{pubkey} = urpmidir() . "/pubkey_$m->{fakemedium}";
	getAndSaveFile_($phys_m, $rel_pubkey, $m->{pubkey});
    }

    #- for standalone medium not using media.cfg
    $phys_m->{name} ||= $m->{name};

    #- integrate medium in media list, only here to avoid download error (update) to be propagated.
    push @{$packages->{media}}, $m;

    #- parse synthesis (if available) of directly hdlist (with packing).
    {
	my $nb_suppl_pkg_skipped = 0;
	my $callback = sub {
	    my (undef, $p) = @_;
	    my $uniq_pkg_seen = $packages->{uniq_pkg_seen} ||= {};
	    if ($uniq_pkg_seen->{$p->fullname}++) {
		log::l("skipping " . scalar $p->fullname);
		++$nb_suppl_pkg_skipped;
		return 0;
	    } else {
		return 1;
	    }
	};
	my $error;
	if (-s $synthesis) {
	    ($m->{start}, $m->{end}) = $packages->parse_synthesis($synthesis, callback => $callback)
	      or $error = "bad synthesis $synthesis for $m->{fakemedium}";
	} elsif (-s $hdlist) {
	    ($m->{start}, $m->{end}) = $packages->parse_hdlist($hdlist, callback => $callback)
	      or $error = "bad hdlist $hdlist for $m->{fakemedium}";
	} else {
	    $error = "fatal: no hdlist nor synthesis to read for $m->{fakemedium}";
	}

	if ($error) {
	    pop @{$packages->{media}};
	    unlink $hdlist, $synthesis;
	    die $error;
	} else {
	    log::l("medium " . phys_medium_to_string($phys_m) . ", read " . ($m->{end} - $m->{start} + 1) . " packages in $m->{rel_hdlist}, $nb_suppl_pkg_skipped skipped");
	}
    }
}



#-######################################################################################
#- Post installation RPMS from cdrom only, functions
#-######################################################################################
sub _setup_postinstall_rpms {
    my ($in, $packages, $current_phys_m) = @_;

    $postinstall_rpms and return;
    $postinstall_rpms = "$::prefix/usr/postinstall-rpm";

    log::l("postinstall rpms directory set to $postinstall_rpms");
    clean_postinstall_rpms(); #- make sure in case of previous upgrade problem.

    my @toCopy;
    {
	#- compute closure of package that may be copied, use INSTALL category
	#- in rpmsrate.
	@toCopy = install::pkgs::select_by_package_names($packages, $packages->{needToCopy} || []);
	log::l("needToCopy the following packages: " . join(' ', map { $_->name } @toCopy));
	$packages->disable_selected($packages->{rpmdb}, $packages->{state}, @toCopy);
	delete $packages->{rpmdb};
    }

    my $medium = find { $_->{phys_medium} == $current_phys_m } allMediums($packages);

    my @l = map { path($current_phys_m, "$medium->{rpmsdir}/" . $_->filename) } @toCopy;

    my ($l, $missing) = partition { -r $_ } @l;

    @$missing and log::l("rpms not available: " . join(' ', @$missing));

    #- copy the package files in the postinstall RPMS directory.
    #- cp_af does not handle correctly a missing file.
    mkdir_p("$postinstall_rpms/$medium->{rpmsdir}");
    eval { 
	my ($_w, $wait_message) = $in->wait_message_with_progress_bar;
	$wait_message->(N("Copying some packages on disks for future use"));
	install::any::cp_with_progress($wait_message, 0, int(@$l), @$l, "$postinstall_rpms/$medium->{rpmsdir}");
    };
    !$@ or log::l("copying to postinstall dir failed: $@");

    log::l("copying Auto Install Floppy");
    getAndSaveInstallFloppies($::o, $postinstall_rpms, 'auto_install');
}

sub getAndSaveInstallFloppies {
    my ($o, $dest_dir, $name) = @_;    

    if ($postinstall_rpms && -d $postinstall_rpms && -r "$postinstall_rpms/auto_install.img") {
	log::l("getAndSaveInstallFloppies: using file saved as $postinstall_rpms/auto_install.img");
	cp_af("$postinstall_rpms/auto_install.img", "$dest_dir/$name.img");
	"$dest_dir/$name.img";
    } else {
	my $image = 'hd_grub';

	getAndSaveFile_($o->{stage2_phys_medium}, "install/images/$image.img", "$dest_dir/$name.img") 
	  or log::l("failed to write Install Floppy ($image.img) to $dest_dir/$name.img"), return;

	"$dest_dir/$name.img";
    }
}

sub clean_postinstall_rpms() {
    if ($postinstall_rpms && -d $postinstall_rpms) {
	rm_rf($postinstall_rpms);
    }
}

sub copy_rpms_on_disk {
    my ($o) = @_;

    my $dest_dir = '/var/ftp/pub/Mandrivalinux/media';
    #- don't be afraid, cleanup old RPMs if upgrade
    eval { rm_rf("$::prefix$dest_dir") if $o->{isUpgrade} };
    mkdir_p("$::prefix$dest_dir");

    my $dest_phys_medium = do {
	my ($part, $rel_path) = fs::get::file2part($o->{fstab}, $dest_dir);
	$part->{method} = 'disk';
	$part->{rel_path} = $rel_path;
	$part->{url} = "disk://$part->{device}$rel_path";
	$part;
    };

    my ($wait, $wait_message) = $o->wait_message_with_progress_bar;

    foreach my $m (allMediums($o->{packages})) {
	#- don't copy rpms of supplementary media
	next if $m->{phys_medium}{is_suppl};
	$wait_message->(N("Copying in progress") . "\n($m->{name})"); #- XXX to be translated
	my $rpmsdir = path($m->{phys_medium}, $m->{rpmsdir});
	if (! -d $rpmsdir) {
	    if (!change_phys_medium($m->{phys_medium}, $m->{rpmsdir})) {
		#- keep in mind the asked medium has been refused.
		#- this means it is no longer selected.
		#- (but do not unselect supplementary CDs.)
		$m->{selected} = 0;
	    }
	}
	my $dest_medium_dir = $dest_dir . '/' . basename($rpmsdir);
	#- handle rpmsdir being ../../i586/media/main: we flatten it
	-e "$::prefix$dest_medium_dir" and $dest_medium_dir .= '32';
	-e "$::prefix$dest_medium_dir" and next;

	my $total = install::any::count_files($rpmsdir);
	log::l("copying $rpmsdir to $::prefix$dest_medium_dir ($total files)");
	eval {
	    install::any::cp_with_progress_({}, $wait_message, $total, [$rpmsdir], "$::prefix$dest_medium_dir");
	};
	log::l($@) if $@;

	$m->{rpmsdir} = basename($dest_medium_dir);
	$m->{phys_medium} = $dest_phys_medium;
    }
    undef $wait;

    our $copied_rpms_on_disk = 1;
}

sub _install_urpmi__generate_names {
    my ($packages, $medium) = @_;

    #- build a names file
    output("$::prefix/var/lib/urpmi/names.$medium->{fakemedium}",
	   map { $packages->{depslist}[$_]->name . "\n" } $medium->{start} .. $medium->{end});
}
sub _install_urpmi__generate_synthesis {
    my ($packages, $medium) = @_;

    my $synthesis = "/var/lib/urpmi/synthesis.hdlist.$medium->{fakemedium}.cz";

    #- build synthesis file if there are still not existing (ie not copied from mirror).
    -s "$::prefix$synthesis" <= 32 or return;

    log::l("building $synthesis");

    eval { $packages->build_synthesis(
	start     => $medium->{start},
	end       => $medium->{end},
	synthesis => "$::prefix$synthesis",
    ) };
    $@ and log::l("build_synthesis failed: $@");
}

sub install_urpmi {
    my ($stage2_method, $packages) = @_;

    my @media = @{$packages->{media}};

    log::l("install_urpmi $stage2_method");
    #- clean to avoid opening twice the rpm db.
    delete $packages->{rpmdb};

    #- import pubkey in rpmdb.
    my $db = install::pkgs::open_rpm_db_rw();
    foreach my $medium (@media) {
	URPM::import_needed_pubkeys_from_file($db, $medium->{pubkey}, sub {
					     my ($id, $imported) = @_;
					     if ($id) {
						 log::l(($imported ? "imported" : "found") . " key=$id for medium $medium->{name}");
						 $medium->{'key-ids'} = $id;
					     }
					 });
	unlink $medium->{pubkey};
    }

    my (@cfg, @netrc);
    foreach my $medium (@media) {
	if ($medium->{selected}) {
            my ($dir, $removable_device, $static);

	    my $phys_m = $medium->{phys_medium};
            if ($phys_m->{method} eq 'ftp' || $phys_m->{method} eq 'http' || $phys_m->{method} eq 'cdrom') {
		$dir = $phys_m->{url};
	    } else {
		$dir = "$phys_m->{mntpoint}$phys_m->{rel_path}";
		if ($phys_m->{method} eq 'iso') {
		    $removable_device = $phys_m->{loopback_device}{mntpoint} . $phys_m->{loopback_file};
		}
	    }

	    $dir = MDK::Common::File::concat_symlink($dir, $medium->{rpmsdir});

	    _install_urpmi__generate_names($packages, $medium);
	    _install_urpmi__generate_synthesis($packages, $medium);

	    my ($qname, $qdir) = ($medium->{fakemedium}, $dir);

	    if (my $u = urpm::download::parse_url_with_login($qdir)) {
		$qdir = sprintf('%s://%s@%s%s', $u->{proto}, $u->{login}, $u->{machine}, $u->{dir});
		push @netrc, sprintf("machine %s login %s password %s\n", $u->{machine}, $u->{login}, $u->{password});
	    }

	    s/(\s)/\\$1/g foreach $qname, $qdir;

	    #- output new urpmi.cfg format here.
	    push @cfg, map { "$_\n" } 
	      "$qname $qdir {", 
		if_($medium->{'key-ids'},
	      "  key-ids: " . $medium->{'key-ids'}),
		if_($removable_device, 
	      "  removable: $removable_device"),
		if_($medium->{update},
	      "  update"), 
		if_($static,
	      "  static"),
	      "}";
	} else {
	    #- remove deselected media by removing copied hdlist and synthesis files
	    log::l("removing media $medium->{fakemedium}");
	    unlink "$::prefix/var/lib/urpmi/hdlist.$medium->{fakemedium}.cz";
	    unlink "$::prefix/var/lib/urpmi/synthesis.hdlist.$medium->{fakemedium}.cz";
	}
    }
    eval { output("$::prefix/etc/urpmi/netrc", @netrc) };
    #- touch a MD5SUM file and write config file
    eval { output("$::prefix/var/lib/urpmi/MD5SUM", '') };
    eval { output "$::prefix/etc/urpmi/urpmi.cfg", @cfg };
}


sub openCdromTray {
    my ($cdrom) = @_;
    log::l("ejecting cdrom $cdrom");
    eval { ioctl(detect_devices::tryOpen($cdrom), c::CDROMEJECT(), 1) };
    $@ and log::l("ejection failed: $@");
}

sub log_sizes() {
    my @df = MDK::Common::System::df($::prefix);
    log::l(sprintf "Installed: %dMB(df), %dMB(rpm)",
	   ($df[0] - $df[1]) / 1024,
	   sum(run_program::rooted_get_stdout($::prefix, 'rpm', '-qa', '--queryformat', '%{size}\n')) / 1024 / 1024) if -x "$::prefix/bin/rpm";
    install::pkgs::clean_rpmdb_shared_regions();
}

1;
ZSǑEJ8TD*?S:ZZ? :UO}v_}:cӀ)7JzA~ - c1ZS@Aa."".M۾po,G:Pn0/eN\B3yu >CqR&^se87}nѴQ?7Wf^3uV9DђcΉo@O|¿艮Gwṋ[yKQ20Q!0D0\"[^Ǽ\iqDBtL)*￝ouyuo̍1bd8&ykgJ:N?2cTU}89lL2s*#H14kea.e.OÕ&JK\ZyMrYU1 rwDa/6.jqnń eX)| +iϑL4 U{ns \F)';#q&̞S$WުAa* vx}L&*Rrd7<1\  wj*-%0j&l7GvvrKG _?C[91 q#+)BL4L\LԸ(eƏ>=op+etR-[3PbZdR.0uyI b.,H&d,zO[R3S\.nfB`;7{_%%?*14>͈ϔ/RWri0l|$ɤ~r $h/Rf\s9x^64 >i +5u%hͻ@2mʷuV9py84>47 o~ZfeP8 H / 5h~ϯ\-F=\o  iKX>Ig06c$-LF؂٣J %.}, ڨfGr 5{x4N0Uv$*]maV>v-65ҽ*:܂۴4 %dOINi^B />>$yA%:_hz0,_.bj0vd-ý?=8Yf"]&X' H%}8.Ru>Z瑭Һl3{Ѥ " 1eǣל`!N1ue7LTXPIL?nij{$ Փ_!V~YqW  cѢGʛj |\C>b#ku=[+ D:axҟx(۰`;G)4z&& o (_ɶkNB@o-~!.`O /6YWNcGYmV4ʺ 7)tjJ<St74ਁ(E#?2}?: ⭟ 2N*v~o]sGe ĝ6>=D<kC~c~q/:*lv H0mD2>y%dU]LP1*1F )gm捿>ק&?!ҢC dd3 K{ 2 F޷~G|Q'kb~OB&P4%ފl'a?;&CGl?jc;JI4b ~ 7ZfQf`8~z!0 AK|0O ԲHN b2,qʛ8Rwxt ꑠh%2O߸Ϣ .@RlG0BPqqY" o[yE3sgy9x@jJ#YKX ?xfUM k;Hqt|N4S㛙n="8pp*Py P}Q8J-⊡X&bc''lͩ/I Y+SR@& Z+q6YP'8'_{ iEPb <?&~S! 0vnj!1V@E hlr)\)n_o|b˕pM5CۉXN%WK9h%@J>s W/ή؄Ϧz$&W\ڒ+_`-?ehz7npS[ʦ$l* 2_uHjpVVϏoHDc3RRz'MTh!1v߾rCi'>b}A.-hΈDإQAK>-pB>zj٢f/ų WynjSzu8rREA0Mu,0yh4@%B L8<ɪm q,EP1u$oGVԣ㪣p㿲 46\YK\0  &D H8_FM}NmmгrhqSXj)ӋdvQC۠Q'ϖoo#{լ\&rB<]hZͣPUͳ[ *ʣ/g8)T)s\ڕfJ+T=6c&HG}2):\m;9БDmB+Z@%w|RԼⳭ=Lz$+}I4C99ZJ-T21axqUuIVE!%({)w{wwRw@+N~T=kWPﶍi39aCW.fX:D  1kë%%7ltH)Ȃ5f[XN,^Sx[LȦBj9vґlsbç!{,q3& YZ(=qk;N`cϲwFn`?'gVSV KP0;A1E=#0zkAMH)] 8dI}4Pf&Ilщ~V/SRY^m/A*P\Wx-A,JhRмA^\ Y*bJ k (O8!J$7SL/ U28IL;KIqI„*%uRNW!_L?ŊcRtU'I7wOn(| r_o!㟬 &mB*'ιzDi*݁=dḯ:?;AkJ y\ƶpTS& ݂ͅ|c/fdYO{ȿv k6BfT)MB32OB;/20Ni)9CFW~ig Lt.HS뗲(F'-D1+ YKOf6)ŗR)1~v;1;RGo%`f7l%@ 8ZP3œ; 0Rk|&%܃. Mk[ajmYLϷAllmKrK)#%W0ɅёUZ4q~-*ƪ]6>_)ṿ)S93A ¾k孨?2 wS:fKH&c7f^=2WڇYC-Nt]%Pm_Zaܪl#AōeM 9oPڄ$_kSڒC7^u B٪΁DVF~7tOQ %xO"a"ˎ-\aNmpF;3L'}7ċ~^^}%}C&mӺmG2).@϶i_:lJD3RJ=IN9'A+&&l(c$] 8MI9#+j8fPE%{|hL=8na%9iEN/fIt:e(ԸE1P>Q.kRxoH P52Ub:u?CA-qC t e;*ӈZ,5:8p;6v;:ܩfY֥ec/MI\iDu~PWGGn6uyyAjwT%'jdkH(c/;\bZOoyudjU#:^J#(r7_F%.v4ʲA_& <Sb;=t8Fnp5ࣱޜ/=ovlKv!# TpR^_Iu9bl-`yEeꏀ LDה^ TظC/߸Z;OL _9o%h/<b R7w.@ ʇڨR&HؒEw֪H.@$<3W7S2'g>`@TME XFv?tmՆt EB/iD)wPRoHPIc*3b5vcbxS,+ϣ;nW'aSBI U]|`"&\;GD(4x;a&9h1ݜ%PU'Y3BOU `TɥDюNAm~?&1>[+P*3J1Z,(?E0 iM!'Y_6^f;9C?{~YL#ΓXǤe&:=w0`JٻD,J,&(73(NztOKC ?+(y;S ?H! Ew7<|{ƬzkWA.hA@o8C ?;?RxBzSrc˒ Nq bO,>Kۢy/6ؒ& WajB,_)]aFp]ac5ʷ1jCFFj>Kay: >D.UQwAΩ$  1i}gGOa,4M"n$Zh-x盖myv*y!P1f_twLR8HMݬAJ]=1jpJt2(SK-Ar2WP:pc6]{r2h5f{ M7Ca,>K܃FC|[6y&CF~|H H/ TdO0iW/ 7s2E6h0s赓BIOQϡJ'햒w^_))u6V.6de>nc3G\ q^Guj; ddTcB%%waԁ^ѿ%&wpS_Ӝ8 a,1n4D 4܋ 0xI:dCPY]}~txrHg>Ú8,qPo1]}(ÝjN . S(?8z5c=@~їtҵQ;d>Z_֏:ѝ.t?tˁv7o |*i6UAk Ęf3ۊ`> wdqm),,ǾI4T{8I \x Z)p7> N{ /OwvwfLNOR!ļIm˴S=Ӹe &,~Wxe70w+>vRd!NhgETL |񛉿]D [Qǻ3„Fw.v"ˆt*^E3LUA!KsęDwux>/rpAOOeyV(W_H^r=OskG#|<h\Ri f,|#٪X7* …Hi6-]|%)^Q1Uc!Bf,,raMm\-PpENQh"zEjY+&}{#)=}p<& a x0¼_!F(̜0|8Hgs?YƧ)giR w%W"p?Y)R-ÿC.B2iEuf0U;0Q p‚ lDՕ` ~\Ǧ$ ֨&$(>Gd,mOP_P8-*jMʶ8*G1y;%)kƌŨ謍3הNJM|KNXVD4H DJ! 7T8x5')%X f)Y$;Zdt:+pLEF'[K`30bӂ~"MW^J֍liD":pެESu ur4]A&^:x&|3nvMvKpGL>lfla" '{CNNJ$A:pjН?D4{e'ܰ%IX}>6: '3I$)>JjT(GZvYDk{xhb_e2wyصb&G &EɳF-ۦeAF *]$ZWdgO=o;E lr`I84X"1v2ɕF?AP-OsLeoQp"by3sCt,Z0qP嬲8”qKQx8 /4Nm<#i{@ rJ"% | uӇ~2OLev_1nBp-~±T3J.P5Q ߷g5~wZ ?=w&LEs Jx_NWz6 Ta Q3/:5Rj}n~0C./&%2OZu\@Y\J)af\ ]fCfhU4 P]!R`Bۜ٭?oWIO_ޔ7j9 oͤu" 1\% P0D=MSA\du@©),WNp@8'qKFL:{.+X!ڨRZ K< CV4WeUeIu ;~gx'K3gc Q "JfQaa =Tl??MǁJnVg; n22\ -udQ8H]IAJL0sHItOڴ (ngK$ ?H~s_h*NQKo{Vv A(K1OZ($LUg篋[ L1eڬq-J\^!yzA@Vm3hd/ +pfxtHX:sc:H/ҡ%QPtX>$X'+vxxle*v"lDrtXWe]t2ҵ/xx7V9T3ׄ#xWQ"ʙ"18NА2|0u'$ Ȁ_[-X+?W^G}H7#[o*.UV|-؄)&4+#:g"3aX\з6e"do"ިJ_e;LȇokWkh> q]?m"u8FBkF!Xܮ;)-6OI&Gիzr>v,,Cdmlc9~d؟Õk7bsNYo%;DdO=!|ǼuRov~& +0=*MW/z~.gr缲8HL Fr=Zmt~1aPޜclfdMΎ} :Gn0H*>Qf.][ (S)f Jvv"5&À }*oV[OJ=x י잌w rFu҆1y?;lq5MB)EkR Ņ= |;T#{y[}76 BVzDZ{zkGu{[`RKfPC3\C6%{q&4Y'd8/!wH:$PҏN|,1[g0:Q;J-L-RU 궣nyN/nKrb_e]l&@0n%>5Z@ۄ.Ð#ٲةS M[h "KF$87>U1s[}b^u:7%:Zq`~S"ԗ蘆aNIO_$Q P ==@XbkVAzJ3-J$tY2ad$s++ DV=2I`07S >F +vEItS psLZ?mIn *(QѲx 7ēO0 / '(۝'bsh fm$Lys9Dm^8K-uy]Ċ)L#CP9 8^LYphoj<ZV5{c3s kˇ ||f5tB`~M':r5 1?[]{9:|"k-Sj8O(qSxZb]z9ם[zK 3-ܥo`a[vn{Cx|9$ FT4=_4Uo""_b3f*`"Sj&WDZRNRcPg2avT#n&7:J6z8Gr$-t;iO̍j.6?"%M=[)>;m5[/xYAŻjC \{DT$!Qhކk]NH6(,ĒsĂq4UAt^%gջҚ:]Jb#nHk O_ƃJ NH K{cf-? jGBq4^`-r׮/.+SbGy֥jP0 /VMw. Vl+׈)Ko jc;!ɨ8/2Ij'D t Īӂ!m0>q< 5hҒ!!xs(Õm$64 ?a~!BJpeJvm=YT}5+U>j%0}sH #\0 nFG gvIf&DN^.uʿuV[BeAg=Mg/INԐcmR({.&-MWPF :J8$ZL`g:S,8.&<> Q$B"$F!0X*bE2%@!DH|M$C(Fm!wDۿ9/t~X0e3{CFZU >o52ȭ~A_C ṿ!;}1p]CIgLۻب(Fq5UoQ!G26=\u:| y #}BD+8%z)\͢*zJuRKuZrEQEB-V>GTtf~4l)t,OέoAʉ~2 @BޏhRp&^}+:[Cn;fjl^DZ /)%4u2S)cj{=b] zR"Wr_Ο@XrЂ])K1!CھSM.#c41<Ը>ؓVv' VY|Lu) )dž^FSJD!H1[hm?{N!6 wA%C,5CJۈƬvD0k1_grA qW.Szx5$uC?C;¾gU? L iBzI}VUDK^ 69#"$MTۢX߫E3 Bɐ:>,Z wݼ{ razlF5yʯC(}ԫ>AERl^g\L.Y>MmYPa73y޺|@]c)RBԹ>.HlmTf*hB|:6ṡ 5-&ʲ֙uI= Xd_A8R"H4RGyW>y.~+et"I{'y2"&,)5Uu3&YR*ݾt)1\atۚG4hX%Caj^/#]Ɠ"pIƥEy^kCXw34b̤*ҕ@7~`<;{΢iurPNyS?9Wq;]XTGXA;^"zykWT+Y[8hYu%-mT^kk(TCI6lZXHUZv@߱]6Ql~vک ڇɛ9 R-=.B/+Sda]0O{P,.'#][ٌ]!l:P_`ΰ4Osf^/wϫv)N{D䇞4ч mLs޲аkvN!ӷՋU '*s +7G.-iMgL0$D&t8Ͷ(_LNsrN|0Y0 (t _c|5lܚP,{f>b[mw@LZL˰9UlzZZN"c ;(*͉xO Id)BO@Uķ1NLTem.zv>(; + EPT%r)74pcl-z h1qΟP߹MZ B`bX]ދ>7Mxph #[FxNKRswKUn^7o6,5s-+ǹ zkZbt.[N_dG'y ˆ"C7EQ%&m#r?愯O2c-q͸H,Y7,-t8)*)KnX3 %3l е^6_BXkp*vj앫Xe~/7 Pc<nl wlNxN)Cn"?rLz#8ͼe>gLtz: 8vȘ 2E$ 7.y "mkt?.eŗϪGR7eGBRO.ʓ'E7XPCI?zCfFGPb1ѝ #\p9P 1(\KF`0 0Nov$Hz׋2f5C6*JJ(S&'v%$mhSa a*3"Z6! C[~Yr(H%z^2_pC-byv:JvGt@JC0^'RIE*J:oSg7U*'M:X?C6}뫜VOeQْ*:<*@`y<:}`d;Io YѪbxZCs@knuIS 7xZK5(,"S$~E2LIyA%T{ќ73yc(չWu6b6TJNt^UPFC_(P˚F{Dd_y0`Ĕ.N4g 6W[j_sp"- OLϿLY`Lm~+s|u1(,棚F(օ}i9'ScD9!,-$K0P\g f=~`ӿK ȍz\7I46d?(R`n39ߩ UBf,4@٧l_pqb%2T8˜Tzq5W j5A*2C{`"n~PZ;7piߞ1O@H޴JERnP7ǫӉs# OnZ x2tI4&%+vZͣuAFǫket7ǒU 2wGðȉ T" WwIJF`]>hlϷcj,*yBSgXG\2y畦6vjVy[4kcձ~x6ۙ݉T~Jx3* S]3Wz^hceK8 ?@K]"갨0ã)^dRuP4uY`5yM zViKjUŁ޶QRR`0#Ñ%/.AKxl̖TQ;v6ЊU=O*qr3pЀ6QcP*+䏥gin.Keâ5'sJy2 Wm2XŰ%+NL_]ͤa[WGYc."ƱG_Od#ew4h-faci/bt .p"k{c[ Om٥e쓂I4p036$FJ}(s\fnobO ] HBNJy#]\XN)rpH7vΰ91{9m/K>sk [+?@3br(t5nOAIi0لbDwPCt^ҙd+|L7fAi-`.@hު؅'I%*_QuRA^^a5Ků 5~wi*H^Pxdca^@Q33{mbVgry|;_d "Ubˊ덊¾f1%^vRf1sdΚ@TF~ޥ,: @aI4mسb\ab̔!<A;B$WڍV+fQA}|aKZ: JV4~2ټjiXY$m[-CC@Yh411fYg,"3&Y_fZhU_v], N&<Lג;bbU,6՞%gNꅵ2t>qWg3|MZ9sI?C2 6$eA-q=U+o,=Ͷ_Df"!}yv9T ;u^^¹!%:FIݱg%T[l̈ FF m8ql[Ii̛!HQżM78.==lІDTCl]9C5:ע߇fv{?^Q@_z t4 b2sE5K,#r5.+\T3u3CS %zY&)H>R֍qY|ͭ NMULFo扐Hm[YALs4J|hlFw%]"7jl=ۇ !<2H&O/;y5TrUKEf&Ӛ֢. 3҅R~1RVAh4ސ"܌eپV4 p(Q9&H:2c-%: |wm>"Ӷwr n<}m(j$/O~݁y. h:! $ bn:΃لyѵuV_шh9!B:2[qoDŽ#g+8N@`xD25}O|>)zڽ/R>#[r{&!2v` ;7S~\Q6in}j' g͎k͟k> Cejuбۦy4(;\=+s`wn3B3=r$]>OfI@evͻm1mth1j]%|46nYQfYaNqiiRTwz8"4+@S@+EEvЃWg19ss-%.B(ImUbjmRa5Gf"1"ųqq@Df0/f XWVi1u#fJ? f>? gnK1[l{d Nz)j1\bT>vQ-IJ-cH-cwzGƺʄ<[+Φ%hpUcM aεnYHISFqj&+)1ޜ.2;xEF$2{D6n1~a1Z}^ %vkvcHltF*I{ bA}Hr2X[:Ur W)'gۤ&,yy"<H3؄ůswpՒ*;%\^cw8vr˝JlfDq$QcaXQCׇ! /Gg?E ~0AO"qݲK +){.z&|R.2Npڠz]t p(n0[ v|gg^;}d`1nSgbfvt@S ɈoIOZ߂JY EM>.W,(bH ƌ/jxN=Q~2(''/yPEOBg+q*3%]n#U>ԓ0 A_By@чbw |6]k]#jZ]R\! sRɝ流݆_`gg^2ˠT֖_Bier*v ɺХ{@ED{9~8-]eBxLX5&0&Āy~oUug:кo-XasPIg#z(ֿ2Y?v̜:6>/y0 `*.,uiIN0]1FnفQX⹰XvQk|z# ߦLoR%Lz-x~Ut|8g㏥@j3Der(Jh~T?rܱMΩZTo^:>ߓluEt@&-E L7G/c:g#_*9!h|EؑUظo"ڸg˚r/\n&/~S륣v~ɝQLsUmx SҒ S%#*|Lk0PtAo[y&;!G0RD=9]"EPLFG@bdlqޚ8$K_(Pu2T^tc:fhضp  $Q$;bwBKe%(QNݐCkpT 855xDrqI*$\)j?:1ZlAOk7LՉ#5[42zkwU9-ۥW*rGQ9gXl=E{[SU6 C3 ^Ƣ>1K#f1k5¡}B~!Xc/O5w7ZyN?ڀ/pvN]Q2(=]EYh8B5{G˖Ez% %b &8GjrAEJTk++L'KSe-87P^Gdi@ W_-wT"j{dSNyKM2@p^~©&ml k^Ls8.21 rDCDDgJQ-GRϣo4qu;T56?9[fL <)rDC/Ba? to HB2N\ќ{M6e'{غ JhV݃1+} DԩLɠ6&Rf Ef~}%4HV'mJ)x 1ua co_lq.4TD#WMۄ:^|+qS-Om@H"> 񖄝c{Z9oGd(_pbe#OT-X6 06ڰ 4C*C&xDŽrnqGPJ=~_:+S0̔dAwX6C3 82/uEοFPX&jPT{ۨ0GRG~K0x9q>5>(Z3Gg[TI WtGoΥII+*|EDM65ΜZO'.$bxڥ1؞?:\2E<5}+,)=s/~U.f&uW@K4Ft/;_OLJaV8.פi vnK\9kKvs(lR5_ !ۃ6w`ϧ\kkj}V4*vbMv*Jqzd )i@w~@bOn1x*FXEȲߖiGQDܺd!2X:/7b:nF$,3$6vB $Hds=s_-(!? aLxkXs%C6)6lGeR3Z$gXɋA0 =WBqvkfSM,RfV6R%"j0S\ړ)5B"ןZ-m2!~"5Uaw$SOzH=d͡{H;,wFѳ; U 0Ôp8t dtqe,\c>¯==4Km揙(ie'I J]i@n:iGewgڴ~4P#ezY7}zr xy,s;=S| m2Jl3Vy?tYHH0RkEC-K)HesP{ֶ֚?fWo5cAO;ZAoL̞%,ڔ Y,Og5_tS:| E{l=Ϸ&>sljy ߿V΃I~KUojD uB vl(&7ܑ)~IۼD %5 ۨKE@%¸ *.\K :f7U=kәg-ֵ0&]xgJa.V'i /9ܔVA:lmg7UM.P[<2uOy\@ x8[n`GwmhC0Iԑ\ jEN ;yW=ܥ=#25LA5>ufi8RY¯1+[j^#;fb 0rn8X:P+0})\qq-F^DVIE>V BmaÕX-9sEOq m,p^zcp Yqq[ K!ҮqۇcmѤ=pAW%-625tvZ?+%/jў,ڐf70coZAG0I½@W{2"r`-z, 7>qUY'6$uU.^C- zhoxMZ})-OZMm$py*bHZ t Wbt*KI m#:7h]yvZG> .pJ[ 1 򤩝&Zz?J:ά Uͧ(2e;t;- Ogy$:51ivM^[sI}[et^~.A2G]MGf 0a][y [v3o@8+{HZ*  m^F||y(P P<#@E,Vi~na[}Pr>OS9P`5V}@W`NsӢL(@/@Œɼ0(E%^c'e @29VPH^6F$=~:QFŧ!e\OJum4:^ aHz_'?wnS!2΅Zss]qH7Xۙ@6e+F*.M" 'D1OR+uۉG `P,6ѓFNkɶ^2ݺZSҵ8}W6h^wS@;1ptYBWD"Blz}&JCo܇v ,xe?LfvbE~/[qo֞ʨDXB_+>Jn|64{F(I_#bt!ږףEeuXd뉋1<8WXl}o3=7l=9h=vR52DXK)Z:h쓈Ӛʧ%Гcwa!3t\bWy(1u`cf0Ny4Al^k =gͫ tֳ(VUZQ$#_m-:;.X+ 'Y#=αR1tLt۩j"7*h`TT6Oo25D>lACj_t(vYuB4^O8bfhWW$: {-X=Z5j]wh2wЁ|=E ̍:T쩮 s8fn*3ӂ\g8w+k@({iT˲ j+gc 2tX( ^jd HݣV0}7 ]OF"j HN3Ϯrm]xdQѬ" |/@({7=u'$I+;:8i`|T3weQ-prݰʒtDmĭ`ɪ+o49D xspLH ZaV?`s˘9JtKuR x1pVէ6O݌}k\*Uރ]bTr'&SmТe z ׵W$ >-&ٽe[Z_uudߓ_27DZG$%MB, 8hn$8,x uBk#r\}g>;aGŷ` ra98]7DE Y䉿C5]J(_y0:UKzYɳNb5zf<-8O9~]`X7Ա5?Y:a^kvq{c5gv>k`mnÛ֨6?jUϝSf;2K`mKm ,V}fZ΃h9%6rgs="^SБV9{J  rB0,_DTλ?#0C;tGj޺,@UEMyYW<#O,xFʞ= u$2r҃e4eҠsN;oE[b17޸Vs|nGhTISO$ZI%>&"6$& X 0,< $>l@ǔnS! AKτ ˡgiFˋy<6^zpȄ< c.m&^rxO..(rl0nE(ٵ% IԸ3mǎޒl|kPi]H[o"rffX~!f {\ƒILVv1XJr! VUªp2eHjF:eZp'~ih׫03b!)1)> I`wrju^%Wƾ,jUVk ?$|z8 %\z+|t4bRUy.{jyH;&ސupVhaToelx ȯy$WփrANEW7\jyPDkKMzM6&N=Z hdpQX˪S*+Rm @Ȼc-<;dbMXiTvINCv)z+E&M$3.vqs :U5fl(w[<Oe Kh$Ty51f-" ?sMLOp H;B}GJ $8l*AN3JZ&L=[[^MBO<N:Fc`<LkCPO!`ktK+4X֎u薿{_!-Z!t!@Q7s B//;EItk|݄%8F0WeSQڒX)pݗ+z|%bY4߭βQ>%"x-bFά4Z,hu/Xݡݎ2=9B} ӃQ~{M'_|J|Z)0m[u N˽̫gK,/\pdt@גCBo)rm\S'Nj8;XwAr0[3z%l-3W`Єyn1n@?B8FYψ*HJlǻlǫ8v6 ,/<a9`. ,⒱З|6pB!h(I]mh;''XS<@|[#{ǑR:2襂?: ˼O['_$ .Ar2}e71B%Ŝ9%NɅυc6\hruB &9%"K<@CJR!7#F4?Woy)+ yMMx?[h )Z\ Xgmd4ρ{ _+W9ML"5zL#>sQXLDBB)\~x:J!y)0R ,+ho.aEoTGecMOK/} m>>nа_jҍ~C8Z5R%i!#AnP UzmAO KzScu0e 4) fWf mg|*Q(j˩ >I?{|,"b#3y%AףR%XU5_Q@1Y)M)+Э9 ~gՅp]&y`q;f'NM'KWFJ:ﱕOE8}.qFѣ65"m nm5$Ɉ:#3 ,g*1/鹞a>'iռPXR ʏ)XF0Ca/sJg{||Jm3@yxz{Q9qE $O2 S+hGb}fvvٰL.)!K5ex^JOP & Dy*rt'DlT?$﹓qJϞ:Wm/+~;VA)*ռ ^I\`noJp2 3E;.2WD7>9W 8Ni~BbʏC2sA`_X VOi(=Y#4db \@ɸaZxچwMpN*n^#hor[wzxl 75>pzA#(ϸ2XAsJ,O޼@tptmh=Ru(DqlZHN~/R~W,|P0Tw3ہ={F<4)V4ٳ0gۈBsd ",ߋGކfB6?8xYZŲ@^QŅJ[7 ěv}6[r.IkƝϽ>',G|d8yv$ >G.R 9]"C z 7p/0~p<n716|8WZ'BO!HqEgpnlL|Vlq)U]?@hL4aR= ^M)eoQFW27QgŞH (ƨl=$hZ'oCi5S4?Tуp}y}dy:.0{oO[.UNǒݬ[@5Bv4QJ6_$ yC͠f s(-)`_{\.I3GSV&OP` 9J#}!0y3:+e\yp/$9w&ܭ$ޝbpB-Ĝx y(!^xv@+5Q ˹}.)Y2ށYOcu2AYxu_ĥl:ƮVYOه}HpX(h|{0nJ5P6:>nL@p;阡e5N3oʩD30['FQ*sJ)B漣٭oST3AB/f cFRbΨ3XPqB |k:}I[bNOIxp|_E/ |YÎÔN$(qkcYIwGYɢڋB\}{.Ox"Hsf:W;'U\ ~g؋8aͥ0F x*w]j'o>K+,WbzNsA OnwmU$9w ͗A,(9o8쥐l@DX%6"²YQkLT1o"YDг8H4+^|NEn/8\H L}<նPIo2:&NߊjڎM8?"ɊXMۚXW3ee>ry$Ghλ@L30F1ǖuA_Ď-"ЛN;xד=i CHް$=އ96y?@񬊙aF:EWqٙ,p =#Z4'> ?z,K*^>7Fr knzՈd޺ȅjEj]."+^R̮_n"8pX:'Oܕer{qYaN῾#Lj1mwjwg%E;puWڽ.GJ5ӝ mZ9mýfzhݭ.RZPcP'̎ɋV&U3'܅A::XFM4#uT{mq6w)OB9:B-lM^z_g;qطv4b(Ư 6$zrc|bHj j bF\0 D{W*P==T }E+;Qqan33'^-=7-|Tug<9lW`^W tb#0eS40/]$=|_0p>ܪ#ˡ*Oĉ.9dVrcqҫ[ X8 rY)G'ht B6ŀ@2>Rv#2ުNmwlIMw\l>F H!.kkMjAhl᦬iMBJ6pD Ъf׻S_ZVxȒ`u3R|#)4pd}h`bQM*FkbPAvVCf/)pZv)JB'?Jy;S5ԛߧ^)SI{~:=иRaPuyU؉f!eϙVP]6ht2DZWPFs\e>&_$F^d0j >M~B_d = \tj;^$ ןw4[^`j_WVɔ~KG7H1<.?'s[AlÀvx]mk(9 MpbډIiI&a &sQ FdW PmmjK}JCG;&_H]ܢЕ7 D/F>j>S;$-C3|uQ]wZY?/{R=ܿ,J?()Nj׆a*.=Y4V8!.==ompQqb%i/ZPN*~l0 G>-^Ӗap_sW2lӲ̘@*[}e%bBo48Z c.8 މq0hۮʼn Q 8-':U)W&Un.}tjr2\g52uӫ +/Pڜ 1A녀`]A.ⴎ ng =ų6sm@vAä.bRPE 5bZ|S~cQβST@a ꭲ3=DOAUYH]gR-46T#&f"s̹~L^a !_lyyZG#?Uҵi:-@l*,ڣTZsVB)^hQX<8PT맮#9}ZT"§ǿ%NVOmE]+2Zm]H r:McVdEup^:{ꐏq)˜/;];g6ڏ&?p>en޴ON13diZٷwiB,x~PmgLzUz m2XR( ^:=/D! ς6Nl`~^FDJQ\-2!&-t4]P ^n%M9Nf;_gl~:8N$X#TR]6h>f摦%.73R1l';t+OH(~z_*lf9@I,>Jߖj '!p]H1 pVzUӹiq.:0z9ѵI7ȼ{!ڰS鱰T;KpM3~g-bvoth] qFn&.)[lDaSu Dpה;&—W:n_{ٶ)2A784ϫWhj^*˧7@ aaHsS!{l23κ|&:d2d/d "4tr>{k!4<^ BΥЯcSL=fYd X4D [qѪ'D7aWءOU7LR!c~B^):vLJ|_4(?phu \P=y縋r#ZNާ(caV n/,M0ȱ\u5,缒oɥg:t]瑳WP-VݑLMAh]խsiWmq\ VKt.6h)R)6'$Ef9T; *)Dơ5YdtoW"~GKYZ[ry3V֘"M#J!WbWn(o'a]|l쬢k҉?G=;ACeq/c̑ds"AXM„},lR+7;x=`f鵣#)'.@-wo\`UùJ;0P%1\xoϭ&*~P'yù NxFfsm4KQ36DunZ-|B+leo_2T + ڳ&[K }2-}o<7a9$h{v|m"k|{QS61̮>֟XL?* Q9GNTZS )f^5-qi;9xgݷKm"bG{B@K. ڬ]~ܨ^F~^$5v։E(C(Q)NG%3^7Tr!նC-:Q(WsL݁a >3 ~;,I\w׏;n@ Tʚ(%*})SͭM\[8 Ԉ4q(hh*Zd M D./9]Y!v뀛8034CLL1!Vx8!g[a=q1a}'jC_O)21 )`%w6GWu9e/ft0{,L%pޅe.&C'V~`SX%Prȑ6ad`XW3, {_׷JNΆdM ?d4}hM]O 1ř^ٳS؀13^Vڥ9V}$Q]̫64WBŪ(= >ݨ@QɊM[s~qh+b']~^x՞:z }9PYm`GúFlt s4 y"$%D7;R"Cs `eҟGp= 4]`C߮Kbuf~{HWMqMjG,'d<0oi6H/ S( sO Mo{6$ wq "`9J֕RU^M-$Tv# !м &P&RKMX8 ܒ$/]D?,z"Rro2+[-+Eg+ց]_ h"۱i9GGPuvĚ.>c䊘mhINL(v"kPmz_pva<_;}Aߋ0 }$߁0mb5١I?߅v%F}Nn]ح~'*y`?eo8stOUse<g뱡R3[ VʁkU}y@qID<|I*B4׷\f|$׾F`P!:ѿh ,Y5 ˰߳(2k~4My$zl͔GOqWˋ2«'mfA^ExWM0Ԫ]/+št559/kc] 40ހ]AXW~*w}hR+([;iZAVR"!UbN [5fe}KnsSs-5m)^;%H:PP ADˬg+mȶcxel=n0Ay-%L wm6[}>0~ MLXFM&u4Pr#/>-ʳٝZ)TRC ,|̣Bj B_5s/UhհF TPP(OHܹIpae6[P`%slf&㸲_8aIĀmJ|C>P,#i}Pۧ]^oiWbKo+:O M>DOc ΕBGJPJĶxk55/'GhQ-_Sݜ1 bϞ eMB鮀7h ]*-FӬgٴ!"BK5M+SJrޓQGbᬏz֕BðrPeiv ΀(쑖~P!U޶*huه6fEBeFw1{I  ^8.熪bvyZ7(*e88@@.Va\_Ve5#T\V$ 3 BO4hR@N3M]a0Y>+YhN[x1?JL 9%ѷ ˆqu>;y 6Co2yIJOKRJU ψ5&(_O>sS/l8ZMͷ6Qa1Gi)d5K>"a=遍VR G]"f79\!pzR1%Zr  2=C.P_.۪wk/B!!$[g8t jUa{ D%FuDWAx#~+ 0NHGP`ulti5 2?xxۺW!/}ovY-;TV%mH[WF~3 \;cNm&hugH,~ pϼug\mjIJԃ \CZ]Ӧh hĂ}w+)P:ÝrCxVUD o#SOiT; ҇a`~ޭm_իThm@: ɚ\5sLjGbԅlzNYA:OvY4gRTZL Bܜ#`RQ`)};<gYIKwGVt/xS`lL/?xZPX&]Z,$À {XTr/Liqm"m8,R+Nuo[tUw`tsv>6"tI !L܎PHќ4æ"4G|K 0xazL2;WidsFuk ̖&l I'0t|8Y"`:؀H.-R[zkvN$?V.Yb|.prp9MgR~@:ੵZrQ#x[z}/ ː@nBz:6'`ȯ"A+cOFYghƝ!jPS̾Q 4;œ؄9o5i gsobYOoCp@( gGs幩+HΌ E\$y&vԕbruV; SE_6hTv%'vd+楊7bR }#I2>DC$9aq~}q@œ.VIo3ET3B}JiCMrhTjPUB_#z㜯=W1YEo_1;jS_fGG)AVQvD tWRN> ,s8_NbOm W RUP󣽷ӉIϧ(wCm˙ Oاy.%x% 5fPuyO*(y/#_F;:c}'&Do~:XS[%k+z]DjxPqa2>NĚ!XW\!NmTiUT %L6$Wq=t=냸.K.؉lA޻7d8ׇE׋)cj11w 1Wۥޕ_9甲Sݵi[S a̲H#TP72c b7T*3N cAw\x˷IIii]=ie>j*\%v+B:Cb-z^&:`%".{x%_MB:gd}3؃ ] eUhЎQV654BQ|B8Ic{t&@Yeq_\z'3-/_kl~\cz"|A_z-F##jnGa&yHoy"x;>L/gYPaB-'ŏ{񰣽1Ѓi{c:Y۞MsΔ]\RnVO"t_="V4$Ux*OS 8PCyDBx`/F7cYB>] @ - Mwf_~FHAHy/|\aqηD A< Pxa/s%60A ,8%n.mICBsNC)DfԕW+<٧5mQu$eiQq'Qke sǜ.\v:(iof SfqSd#nwZ 7@Hsw)*Eض$UM8G/,fᏔgyG1V(3Bh-k~ࣹJWmCZ8??zhQf>CGݪgo"wٙA^wD؛rűk'\EO@bRZ56ƔB+|k9DJ\:Wy|ҁԃ4[o_3ʻ:؜d>iA[n*i1o$Pfx%Y~PQ X?A17KaxMCE.sS3  ͼ]?:)?)lϽƯGd |T={ Lu`#3=9ՄBP~ sRhoF5Vh{8.'"jDᙫz hVazmqպj#pzs @XgmJks XMdEs݂8`xحX #9:J;~ZR8tv%ؽmV-vuK[b7ݩ[v\RoM%Q#[]BQwRd7׿蕮Hf +H ifx sUڜh.M[H7g Om-%d{Nr,uԳ ~=u4Ϫw}KPIy( (u{'5"ăU\%R&`Lde['U Њlj8Kxϛ 5Z2I@U7{ɼ9BF޹lEYFs:I1MaDXY,Xճ"$Zwc,.D{Cyzsס bSQ Mo!Q!#VBszGp977 ';BOA(M'xD(.`z%Qc`V4Tܽz \C֋0 Բjt :{MFj0,Oy'K7`}!Ӫ)3 ܥ Rݿg2ק16_"8EZ=Z zf`.шUSȶn,P:ymZ;Bk=\AcFa{ ! ^=ڮC1\y&t de!E %t"Y`x!c\r/rxZZ p@8]]'PO݀|Yb/Fx66=߂ -͛lai 6 C n/昭+PMľ/kyph5yXB[m;,z_&z?=f1@6?GNT%K@k6x``% 68=#jU|K2)iowMzA_ 7 3LCyӏRn+'ŋudjtTv{t"#]EȯsJn8BXSR[O3!btAʫ2fQMya Zb58]^JSϝj Cvb'ywۂKKyKKEϗ} d>>]/?eZ:jYE8me0%9 q}k:8rsP"v>8#45o=^Q0$a&bӧ4w{J=$')cc$Ţ̈́R>f)l&e]oՠWCL^dr)AdjcpCwTu#|Z\rL?ΗgL#efBHFP[#ȆŋW!yTb0iΓ"[a0a؏."v _[| .wǨ22GAk@vnf=Sf fIsv;e^Hb\vE*Q6,L(<_(E(aX;Ba^1ͺIlz@Z|m'gA匣h`ǣA-M=QY_ ҃%Or& =?Ts`HMqIxxWe-ר9] B+k-8 &&)9\f_^;+ )uD715AcBnDh$ D1ҷ}tXeOcmefř7[KhEȫh4<6TI>pO`:R(tD܎}X+lcuF®jiKvOG  $t'?Xl{ޠIozݠLnއݼҩvDqcM fͱ%Ycp̠(. (La;e_`E}O⏷5קn#sMcb Jz[N7.}_^3.jJF1z@\d`}T! ;["'T%( D;Ԭ;.Zh,qW^ʃz**jٗa ~7!N@4JHkGkj (XƉѲZS_AX+D3'"oA%խBR?ތfIKྃhY7#$OM6wXJ6lTjIJ W\kn]2)ժ(GbxF{ܔ^Hv?q2N [YK^(zDSc/@v^Z d̜bMk _&{pՊ1WmJWZ3>E%4M;GSvƪc$$^:&B*j/J1*׽2erG*Wq2B}`k8K>j#[+|~iHń4CdQǒ.:v# "ӣT+D ;(Ҷ3&&~Cn"B_ `tˉ£c}FO["BJ#픎%)RfO*tAkz@wxUH%2^XUЄJGFK荰Q.N~\A\5J٩ؗB{.QĩT֖kyř1E\]ڊ_&1&`ێ"p'& Q~gb DŽ=A>JsPHiFV{%|/;ֳx#:)fYt Ow Na [6s3rm72h׽B< F* * cWT #tߴg-oȎ W4ħJА3 y= &]t\,RڏӲ\|6jϵg #}N~q?24bpOZY쪉2( b|DnFr8/YFpt +wE5diABin5E(Iؗ:,y}<[k[s68qCs!+@Ƨ1Y'y,=o|kpnmk3FS|H>7nՅLQ}4\yltkRMȳC M h)/aj9盥%_=aO A НK@3gHc~3E E\rm/2 wW|] VՒ ]/I$?I%aKG~O,vG@ pɦЖ2_,OtُP>g$l[)c}?ˏ~a5r(km:ƣA|JvV7z _P%ߠ ̷ـUyv}8X R@wl4vg§|q;=ﺥ{_/cJ#38Δie jLVo?yΘukfv)8."Qё j-/{4 ҽL~?YmzP1`sF5(Bʖ'0}d7\/h9Bd3UʋdnC928!LmgY~ e ^79L-`HUK`,Sk(:rښш۹.+r,ũDaԟ֖I^>oBI剨=f+X~LA(?3[/fLCqE;Y8H1   5 j7^A2ˤU_]i^G j0PQ/2@eV"(f?\U, T& - 9;O-h? S=pi>begDIcο<ɫdV^B3%xo9'9W&%ɤ2;ORԄWZ`J6>A=8fɿuY{L2LΏR3+Z XL%ȷטIr[ =;ߤ.6ީ+YWd9{Avf kϳGy!̉hA\s=_w0ﻟUAq1tz1ڋ?#o_V..-1߸~#E󘳠Yn{(z};'4]ife ^g!]MEdR Mw$IM ڤQ*4-N^Pi!״~ve{cR=q!D!,Q˅=a)x|XJÙitP/1+nRI@'}l-)%Јo*si\x)BApÒL~"@r5N$z,O|Ȅq,᯷@n9.t @44x0D2lެy'T EWMp$M3U&`A$[+yWKHt]=ڙw&J@;l."+彾KnZѧ]2̕_(И?o]N^\z#F{ȃ1A'}MGpTɞܠR.]KNə2s+sq񻂐͌̊ {pKИ~Qw#7gh 8R/~Um>tIz*:4$sȃT̵1*)x]Ŧ\| ! e#]fݷIӦ4[:?.לIAm TvȺPvfQ:`iǥW_~ƶأXjzKb`RIa{Y?ˇ]j? 6a{mѾȠ$qv=D So#E.iKpvX Ud͝րtf !L4ulqPOyxfҨ 0Ô]^|aOVvm{t~qtůP'cZb0c!D#wR\/#Տ[U&{ɃB*g֘*$F7ֽ&u/re#y/T EDDzF +VC1wj?DLX玲 mC:,Fy7am.jFbZ(lsE`8Z9oAiǣW.^ϒ~?w;Y #&̥_#T_mh(TUs-}{xZ⧁^$V!ۍi7;銏F٭H)7q׶I]4[{>+K_ymeqT>ZWۢWG \oEy9Fi+ EVۚ-.iE]6IF7|l`{mnZ2ЯB:Jw.`iZ@=Sg,DsƏ6*6ߓзְ1s:`ٹrs#?*MN\(\n? +4K`1 D<L),.SSYqb7n% tTyI>wl;D*LPk9-]IV{7Jxz/-񹲸Y܍xXToE(VRX\OG, ֙7cg?xcjjdOzXNm85e-F9>wz x%V.-Xr엣Qk\f⏧@BǸpwG)-,fK` 5EL9cuaCs0Pm 1VQO7㩢!+Լe.?UgPD.dI/O3Y]ƻ{c~S4sGtp-\ǝK"UknG`%iAsz.^ę~oC`U:0k$7Ѐ%kY%0[\9I+A,6t 墹0[)Yhք`rBS%Nvn"GK SWy:C!Vi[ S%^j~%19wg?14rX5l?TH) x5 $tYx [wBٜT8*@+x|Ro>5 qx=㇗h|Gb Nj7Gcw.2.7%~gNπAHϠ89U4h*Lj%k8꩞dps痰 #YքlZSA{U~1q9*M.1bBԏ~ V Ԧ/ gM EY Y; :xfLIXom3H)@ lz1`꒠\PCrlaQ2:;,IK\a( PKݯ~[(q(LiyNl7&Q-G$@cmY 5]M/0.ˑag<ϛ.}i>7oG!d'NZGQ֮!7:eF jx/c TFO@e}uKtYC ˍ풿[=/:=<}:"%^ .9C:5*<]VKLa`!R/z%HvR5<6m7~R > ̶[ |J)Ax˻ZVlǛH٣G ݍpsMe1|~9q+8re\`* k[ uIj5n=p[0A=uC7Y bsf o+Lz&~-L̇];ұpU:+.{l\c69ՀiޞSVkTkT0wGQƂ̴Ы}1 OGcۙGǃ-`:7<$lƚf$l0^ط?L, \FS#-P1 lI+_]]M'WIajF?(+`+8{?FWͭJNFm1DF%elًj M Qv^@bnO@#zC؍?~ | *UT@;&wh0L8"`1;YJ=5n0ڠ+vtǓ_gqY31{3jJ\՞o{RW[;\%&ou2F]]M|t?@/ff%j?Xg{K8? ywZ%Vâ$*` y yX(3 6"н%gGs$jر;RwgMX]e%EYOLA ENq(C">X@eQNLV_CEYnӿƯ]dW|z!EʤʀS Nvٹ x]= G(d-1X O&^,;wU {UXxnH%ΕsL|8WxZ%-۩Ѹ{z c+׊‘_Us68Y'οqSjfJ;=гUM D-Z{C~?͏ z =+,fVsUfk5י]|3Ǒ> *?\#t!3 c*Bn9=!?xI* `\'hSTg 3G^gU8[ʛ)9h/cWSv7+E2eA.( =W2);dY|fs]O T7ÚU>-_;=H'3QKL\ZF =NRR;: eZ<Ü`:,aGq˜ ZdX*iǑ{ h$vB^f)^ (GmRQb" e6L~o2&RTI_䂞gz.'4[4cO=k7јO<ٛ'w(Ch/ωs'_I v7B\Xn\oYC{햤D(U;by4 &Nd":Y)Գfl h$@F5æ@,4A ǚpՖL'C$ZwN#f_ZܸmdOI)Rc.B8?ݥ-ƙSjw?`Qm^*__ޏeϭ' i62ij!RɃ cJ1Q `C,5)#دZOU8 {UT8Cş@F'1s袐OGmv7#+p$ Nzs8%X %noCW(TzZ<2؁ gOL:LA%d÷Q؊ A 4oȡ_d$>'gNw2iDwoZEmM-QK[IJ6Kmsz"c؃y * 2YOmͽ\C7KƜ`gf4̌1uᮆƟw>QџJI1G%S-N[f :'Z*HpgDzC|<߬]jldEРEO]͙jq5v,ڻZWCHc^6 $iγq,P6Y3|~;/n64ueOt j[fHe`[U&ҙX+-=$ѐA'Dxf"yZMB:W[@*H+У \FłFt?ExLF=vj`AvdzJxwK(\^ sP?{Eg4no1ܜ?fkrӇ*HX ߐTD>{%rK|e>vW,DN2`"<ۯ±``QUNa}9WDA勔YI&^kPYf9Kw([#!3d\z{7*8Y2QP.ww+V =&X-ʹq#LvpPjx܇}iIge@?6Jź7llHh֕+,^g2(7|#ɐUg]/]aSϙThQ"w@c0:'g'=cVEo>9Bo$PF5Ɇ~-aÅ5PLnEC^dKrHDN{ZJ3Dlwz 1f/>z\ea~izqݏ89,!Gx|rI עrᅫ4? eܪ*Md4Bf"6E{D@t+0e3X5Lk[7{  u95>%sH7pY2"GDÇr9v9AWhޚ¡+{F<'4-  N5q.O]k.[DZ7yA;ːA[EVz6z^wa +(]l u CK:\c|ŏԎp mFhal$]zxtXD++g43bs"Lia7o)j`sN÷I UTAp:j )o6 ó}Jk{l>);q,WoŬkXg;s;X1 n5eNB^ͼqYo{@A]Y(6b` WVB 'a12+OārF~zyWjbk++GCouW5Ѫ.fǚ0< N,D4vL:*ǰbNG B"YzLa0Q`ʠ`ƚm(Ͱr{zOtEb7]&N"wXC8X?™ ƺ/5S}t=CA |k)+^KN}-\SԂn Ӌ+#٬B#*n. S\4P7L3h8mJf=*zRrIO)9V3_}x3 S-i0dxwn5S&ԃ]1DLm-<iicxӄ?"-wB=VKfXxe7>|3sfou}<_TZ2CiHx -kΦ(pTJa!z}&&6֗o>1L V]j荪^.MыE'ydT믨E/hNxGIFQ '콐wbbچZ3V-_6^Z?5TL{3q>~ui苿A,Ǥx-Si,x GYnGfwc g@!FQQFz>xW AMPgH) y<%^)6.~D~"vj+p~r(hCcyP" zdb2l8=^ȋىxѮk?_TQ(t3gft0^}j'@xu@8Q1@Z@]߱`<]M0'v8mb[V,rdDV3/95rXYB5eEU%W5]5PѰahv4nkd&~Y,7mMEb׷6ilx`2ݚ}3IkHr3.:uy"*mbA;ܥXQ:9Ϭm$܉%KY,Rl̀-Sx䊨$_ut1w7i ߵ1ߪ6wd*\ lʉ1+BT!捑Q,Pn /79!G2)LX }`tTEl+Ϳr>Wde1 Ji\-3Rs,[xEg99|R1nC(YPXQ=4W akhh  %'ɟġ)mx~N%a{c!Hp'8⡽WfСpg_d0|e"ʾ'i"h x) n0AoUv }寍:6V,SH }1MпT 挐.&d˭ɉ~uO%p-}ⷜWrSmȒ < W_AYoJTFW2I[۸42 G O\D7uUw݂ڑO[ @! ",+mHØɋ#ȀѮT&xd+4T.RuP Wۙe30WaKo!ĕ"l]Wz&MIϬ)GSIɺJcv;;d`7'A)%5%M}F:KS E\ی !"@DCEc?#;ݩ=sUm~m1Ea lɍs [YO奀'A#5b>qX!`&Ϗ9>PHE'K1l,F'+ F9P%l[w{sP0͸-b=ҧ$b.}\UrQb9%Cx5 v5;c.[퐕q>Q}7(A=η f2ȸ%ӕz"x$੻W@av N7Ɍ[>ړJpJKeXLP'ݲ8RnIL Q* w=|@TcoT\W@bD%? 8vqf$aώ4T;`[R:;p5eS;'I!͊@0P.Qq(g[$KO28m!=zmkup~[uymI$5b<m|BȂhBQe%v>9D' r"e=#'@}z*~ҵM'brtQuW=㧶I~ _]å$J{+\<%"G Jr4wB-([JRXʡ 2gB1O,M+%A'#~`jV`Y] .)_SE X͞ĭVi*8MI& -No1x8|% sO"OkuY|ݻ7u:u,zK_?L+c~&V&cE8ndh`C ?{yrsvvFkq EHLÀK1Nq׷wzҍ˿Z=^ m2BΖC-lC|t< }<ؘ~Űᣫ"Ĝjt_>Bp&13ϷSf:Ł>d>ubǥY^Oee.B񴧌c'lQdTꒁE%n?yxznӞ9sؖA.ذ1;x,N\c-y3 )]yFWXaUF\/ׂ1Qk\f;qDr_#"91z*{Ʃ2Y6h"Y3^[008yAC~p7@ZȀ|y#[AD- 7΢UdKO+g|euH gA:ǯbY4:SR]ojpA a_>'=XHHT}%b)-RwpseLwgԲ!1eUXbKz`4{p'?2e#(/cy`~_@˞Q̃뫷YMTBf0O p"T Bhp|6{~T{Np)Ť9%4ZGy_,'B_XhԪBK_{R%M1̓Rݫg,YxµUhho3^)15}62<M|_>kjurI'[CRfd.UChp& Z)+be ^LA B {Ѡe= iP]]U)Om&,6Vc ]57D/n.ʽpȩ*A:NglOcH:"@pUD^Ϗ^\J>j2"WtXgA+PH- =Qǜ}q]o2z?QaQ?d.,.'m~NJRmCj6 /]O@)y)촆2s5U__hgr,- #çc t `!䂄58&ف@Xn _R8*J}RALk(ڰ[vi¬+ο.7 Uh\IÉA\Bck` _`.! zʋz_&`g,Wm%Q+h+C]_!rpoU᯳-0uu%1DxlD9Q\86o|➳JP݃a <.3.2@fc/{Gon[ 5-v)Ad˺WRA rh_&Fd&wSHZjNBLRBdpf%Z㠛Q}sZ֏aZ޻,]13":R>R"^"(ˠ>HuwOd,dbJ)VASu˧w3?2n:TJkԗ2PQZCFDզK[GhpO7 D$ZjnxE֥NPœ}b<,~sTUf7`{t>TfTD#!L^ҜId!l w>(Af@)2:6|g# s]1@wktbc@svnرV)"/x;drc=(b6sϷdqI~_Gp) IvtqFܼ.$_Q>?Z1ܟmiL{B) ݰb3J[;Vs+KL{2꿴=8V7,g’6;,?+Z#6Y/D6ac &f:U&EӐD7*ƃaoeѣgt= \vq(Ub kPkZh:p3,e7 H*m>vu~L$RNƛc*vLc/F|"߻79P,NqAO,/a+S'D8,D\AvEzshN*Q7 Tƥ._8 VȘ fUw;弶l(;ziHPwEKTX |_Q7W|l@R S+m(/v?ʧq)1H,㥏"X1C6:RS-"qnw뱈\''NxBEݜ_!'Ut]'Ysm]4P~!8'WgvP0 <&S E dʹ"+/S6Kwv-1-8Ԋ;DZ99?4}F|۩!uTxv.~?3] ڔ@ȟ<)9 ߀#B9j^I :\s= K^rVJlEIAChU SXYCK]q Dx򭣹іx8q" ySe DK /eL4+R`> 5bF4}i}8y"xr泑+ 0EgqʂBHx&5Q$:܈ \ӚveNM[Kz`NRߠ]bBŴfemwNgYVrԀ+(CZz9,`/gh"m.0'䧓.;&aIw)XJDyq猹 u")?DlSm&r %YEtfMnȎ%&׽]Io1+Q3 M2J>8Zu7bB"kUB$"dkR fg.nI@ "qヒ;7! ߊw7]{G'hߗe"Wį2Bvi4cT1xĻ pӠ2ẒJ,+eV2J=#g7y"v2H m*CM}Hh_nRU7].M,DI1:t;oHܻcԥ>~Cgf}`*GK i TMnШ K)~BAz=ۏ5If$'t줆<ۤ!!TnWϬc]COA9#yKH9ejY@lH3d?ߌ@nUK aB@aDW^EgA⸵ic2E濷Rń`'.={U+yYC9K!oD/眘~5dhDTȿ_&UXqY%X4!p;"rVv; .7IQtJ%ygK.K҃ɐ"tb:א?0 ɼC]f_g3e%tfM#_z2 wQZ H2f 5H7Ä́oqSHR _/E\Ե~`D+r2<"goa㙕YߚG U{" W:f6T,K rHK*㈂Tf۸LWXV8aTb\VB8HȢ38o.HQe-6 -Bװ)aK= 2K8I vk*A1#z1;YAWj:-_cbHi?wFM-/WBTLB[ @]bvWJ"q۟Og;3p4R2\/ov6`,4XNCkvEj4l}? ztNܽ4L{G`ء?F E<4H joq,2 ~=҈-jlQ-B9]S۽;P&B v&p]ZgΙIm= ZG|Uߍ'U)/D.`ͱvz2DEe lhA7QP݈}Lj 窆0X" ]&1 x#K#[g5)m /^_& <,HQZlO7ȕVHHa3cUpt4R8(OInBr"c>>y,f $[̃cRrTP[U$gR_r?vܠbOlq1{ [dV dL"T0nO 6X]\4HN/ ђz[-pi$K ا4jѝ\gceJY ܦ^ 5JWW5H9V7d2 QlUIɒNh,䛼ۚK6sTvⶅ5BeU&80< ؿ;?oR>NjBt%l_dccC6yz~)fLGxmyCRQ܋PVm|^nd3J-(}szSl}yxDGEuMo"8 dA#^ -7\4Ay5Hkn摴ȩ51!/.DjM =2P󬮕A]޹;hzC\8C:ՔGʅZ`tAƧ& Ztv3KsD 1MS$ ^:TNI9Mz T,k[C6S 5XئWD"J$̜70[mBA5Gt]0%pZn7x9Dt(;K|nxó0w :b2Wg?'aDƆ׶ٻAM#b5 -Ց QLE_wVZe7s-DH̑i8]:`N"9++q/\R`@ 6)bv# uҫ C&cvX eӵy`dGꉠ.e6orCf[!7ok+RѡA%C'XiS> P^Y~'8ǙhJ%c\b ]9H9bǯ%E#Sɕd>0lB*n<&jB!(:eOy]kPw}TxN֚_V~,L2!䙍9c n Dr@$0hࡨRH:RvqqOt?X+}b&^cz@֏ކo`u;F$Wduɬd8wudDh8rxuSL'bΓ/}!+.8vKVe2]~%CT^`}ryrtDv#ꚧ40|s=&lFL(M(;1dٺy`u?rgEu@jk?CPBNb~^;E<<[!ݫ$6lo/2oqCyAEV{_,wKP͞&X#R 5AN/_hf:U8j8'R8eL 1sB+@ _x26%ۖ&'YmkT@iLMH$_}#™1$}*ʬ?=ּ3kEy 'TC]WiƄ í|>nL3\&135*<ǒ6pRª"Ɍ;A;w.5`-xHO<>"?gq> <9!DdaKebdQ..!9r6G+q 1I=~u$׾ zs vfsb+3hXbS T,"\/Vbw;y4T&u;̮%O| _HRʙlNoTn%E٧Vf= .[.zpd}mAD[HƱHr HJs35byBP&`( FzFzR3K%3`ǯBHy~x[%~nlfJ%T%"e8sj6!^b<vri%!N繛u|amGɈ=*xTA nPO <,qmy_/>gr wX5~\0cw H ^娬\Y#ZDی/rdXV$5;klTH$O˰]!=}2Ufq&IBZt9Ca8q$jb]Mo=Zx*["Ӯ*FRUnSw8 Y١01JCЖN]uՁR:?uR_?B\ SXHA$&ˠ& S^99:ѓvX6 ׂ@?Y_> 6O-i{9"X3l V HbpL3TRQj̙,^/hkBx^p_ѽj1/flC!R][~6&°]y&ȸu4$ZXIxDGs J2B'=#8;l6 @0$1Mdփ+Vd-4"=Kc} 51[^Ug)4{Ǐy @u, rB$,UG\0UԹX+9tiX}V1 U$tqllYX`-%x%}< ,-H:Ԟ OszPq))UTf9 zgyRICj|&lbc`ό(n Il/,k0N`"~h'qx/qQTBud8J܊F͑u%JG绍xhu+c~]6a $GPAU'6M {> '9n7h S%ׇ^7՘KH7}Hfyb/VΠXS?Kp@_a{Ib:bw1\ BNX9L);Hr~"{$A7G2|r*[FAǀAf - 7 Cv@6Wm5@ Orf&!T?'Д;'~u-IEa|ݩ 99Ho&57P;Y7pbLSjb &590RZ}AkM2ĭ=cAҚfQA9ӭ B?93"ߝ|ikl"ï&bHkKՋ,Kf#)t"B,]l1~/-810%ܟ*ܯF&mP~I଎|&;l5hI9EJJnBDBG;fp]PN6L< OPhCGW+3n nƱ7}JA7M<5#P~(GM쪦/@BzsâK^F¸.r/e3)?;BqUkXa(†SZ e,%K+n|i Oy -S8 J ho~Ŷ߉s:"/3_Vwﲢǀ$[:=a'O}_ ჺ_uVkXl,rtVQ?g<`^/^q$I~[j.C7g`On`Q Bƙq >|9=HȡM5?L|ׂ}9'E GO8CìϋzEj_Rp` &\18N0R|@p3#"(r`{{7T;9R˼g<>7& 3% =>JV.B;`~B`U3ݮ GQ|c_QpxcPW-|*G]8a=-ve&Pۖ6rV' 1!~4^[P.H9h)aBD|U]K& A}q?+rdB ~YE'L"X΄ -5옝Q΄i&ڻO9qƘ\9AYso|G@FVT: 9GaOjӮI 3IrmtZhKsYh^W9NVǤ&'u Uݸ!Zch ѝ@)3c$T-Kf=wɠ;ng+ls==!܀1 'T3 0mi# 2\}6MIvLXxR:. δkU/]O y,śn`UaֈZp8J7@jIaߚ&W[(!^9 ꪲj1 0+ԡ<$T{V)S{@'e{YPY tWg$ !7j˙>Bޟ5Y{ԼUZ^i9kJgwd'TIcEТGYM'U1a&4ӓ)U1㴒IUO5(|B-f:5*O SgVz;;4_5X^JC]C97v.(KA&|꼛4R#0XxMghDwUw5n/e#Τ&:o_@ZV"O} WtEN$sOA]#byX@MU:]]SA?;p @o"ŗ~FQt=}@V:C(Ap16ƇM9W׽ NB,MN+1aBI#UqR-^؋H;mb%4ῦ8<3]gLE0{BE},Oޡ͗5RouOA(K:xAV yX(ˊaB6VV۔g V|| de7Rõ^m4T&raeLeUyNпb)K0jx{QaCC1m׀(`_<>9h92͕s̹ FwѧB5M36U ǶC|9"D"8y[+ h-b"Rf<7l 4.CI'o-қ(**DQ.m`";3XTx鎞&XBE։$tzX3שf.)iǯoݡc]>uJ0߉gݙ{鐩u4 Ml ;WvZB-F> c8Ō`!nB!"IJnvc46gY]^x"5Ou;#J;_.Z mM<0)ޭP>rH+ÜdAWr wv0K6F N]˦mg8 _)[4X,\u-Ď'CȁIFɕD^Ye YawU-/{ɴyjv'|W}3[;%isNI\8.lMgzUT^ G$2* ( CI{b>QVsCKv)QZ1,lVLejew0  |>AZuڔ0vDZ}9'4 Qϡ SP}ŝT ?]Gʄ&ӄBtݿS;+?5HJKj;f,2C@fAƖ&fa m.טf))"խ NדGfNƂ- WkHl [` #?@)XDJl?~ER>_ɩgzLzpS7@ےYU ̘G|ϩBAV㪻=k+Ϟm >Ҍ7,1rz?ZQNX/#Y#V)Wfa8&Eg<]S5M9n c!xm,= :;tR泧ӓϚ$>,L"udhqj -)E_$ BMlvjRe$}9*X*F ;Z?$3XLzT|Ws@]Tf^; ztM 91_0\K8|,w?{A*RK{S)k?Y( gh=%?>e:Y-rRH"Ԥfy~쀪g)Ț)5J*Q. do q: sm9Zģ/uQF)z5MEc#/~eWū]$hw( 1­lnnEڰDؗCU" !` +֬8Ɵ4Q3eELoB2W\xqvǒwQQ&QRYD˭͎Fgwܯ A1F61Z*T;c&759ݾ̈}-7~!|^U*#ՂWaeFӿ}U.gϻ^lNK'}2Zyi#il'""ؙzh6p|oXVO&eVy]ƾxcɚ 3I; ܲz@u0cxB~Qu^}g. E֋b/kRRvqK',@t,(aal ]DѾ7TQr6,vSM2ȇ.Hч' ! f*WZ\Q*'X_20]G@WH;+-㾥#A5Y.tʩ cgD^,G78̂T+:ۗ 3zjD t Y v42u._X̂+}CQKެ+I>՗d:"2F̝2LB9b?~ +בvx?=vs@ELw$N)捐ܢ8l#҉b$Y1_Z~RLf@cuw1Gu%'@.i(#'Kj \Y,05{Ywdcri;t[! 涍M^?ǜ%m/yaZ*i|WɈW|NѵoX=ž14>?cmȵ& a=HSu bh`>"3Q>T_ {ֶ*vW+ G E?H Dg }'\:SjQA$ da[>ͮ$g82EI+zрKkدV6T&z&J1*fxA]~.?%s$bڇuk:SLY$:=49+;>ˋl>آgutlVQGqf|sB`c% ;\@l@жo]W2 RVkQBDXG􆷻e;Ӝ TVΞ3~|׫TRXc1n-s?` ?x/=J=uA T0G ^FȖKYU)]ŷ4 )rl1zfo U|>4MԨk[La? Ɏʳʡ3Tzq~18RZ/A.oJL(j^+uo^'4`م vE ØwX!$ E \d!ٵDzȇ܂.]"+6?]a+fțZ*؊sM 33LCzZLج]|iIҒ_|%qO!7^|3nڼ&i&u"Ÿm[L [0\r|mեA"Yz=&PuyYbi(% x=kXD_yVscd2/Pb`#!|: `} " l-^<7 L.n?cՔtʻFh( ,Db,Ky|\%| ~ v ߋoP\1A@7k?_?ܾ#Z I9qNԑEb՚&1bEnISzEzۃ7:d[ό{&^"./J7ekwIlPsSAťL5*0ήE)'[f_!WYK~wyŸnm Ge?ےs폐}&#9Q:'ph=dȞteÕR X""=In9VBr{\TkvGsCYx׉s2^LM X@|N;J&0oSQDvA3U#oOeXF) @`|87 M?FCR>6}_y(E[̫H bsxUU)$+wa4X~td•C ֦)9e\ ŵ-bQ\3~ǢK!]G>3}@v`{J?C[Ԡ XӡHGDNK^k](7GAMS+DHՍy4>t%qScP£ί2XbH uӌt)ǩ!ipE?NiSfφ."sx|ȗ+;٣ JV:ft)]=+Dh ;9yCUP0ɕ$ZW6%nD3,4^uҮi3Ȩzץ@"OLv^X#;hX@3v[(YYRN^8e kJ/ HFJfƇpLj@Gb4!KWthDfZ} c|gL욕{_IwO TaKbHfAI!DG\BmJ@"깶Yz6]K9uK) 9l`Mt}(!F`^ВM4ؓQ.E0xCa/J؉N̘JL`-Kk39O븃Fuܿi=AO7%*-[u l@ikd+b 0.Kn|>ķ7u 0-bëUPIvhCK/`p9DJͦbs^7QX ɝFeEZKIPH;/ XyyK‰eѻ6ZX{GF& FTPdRV!?Y=faHMC)VD)i4\m$ZH~дhpVIlSt Di!3xcLdWVΙ`W&@XT]UK> (Bf.s/GQet$HDtکR=oW*/=fZ|uƈQ6IC ^z0v#G=ϣC  KZ3S~gT/x IлtT|Z­( U|QOq}+TIN4K7JHz>?bSJq\b*ynG|џIÆJs ݶu!tv?o- 0K8xvR5ߔu}"1?pfWXj`2L}E=gL=Kb}uzh ۈ`\?f}ڥaN\Nvkoߗ?V|-p&!Rb&ԩK4Hj.&i>nMg;rWOu+B#5GpˀuQU{`[O{J~+,b{/*)f_x8T$bS_Vt0U/}Ը7G!2SGmr<'貁uӱZF /1 )X9mp/i_'䤑AȨr:vw>&T_cT G ~KX)@Y &np'30 ?H9D%[pyV6a PZD)lX% ٗBΙA`XvՅD9V_E O祈˕d[JE0.I"-Y[h?,7m߃JZ{*V\z6﫜g\(U!wu->=1[sl%j:3=T]q0BJ󷚆= /G)GFSl!*^m9r)cܒ“6U @< ;:XoPU#Ek/eEyR%y+f'k0P!\*M5Í\tO&~/.ŀvV , ȤB{: U26*I%7jSgF^@{Cĺj4#^&ڈzt,6?;:׿tc=u_5aENtZD`Yd$moF-\||P!yVCc ٯ<sn,\sdfON's E_afpd*^~7ފƏ!(5dE71IVҁ8&xY^@B_=}q걢ugzg\N(qRK ZqLFH nBP<^VVWJ);pq8EZ)v!H{/{U)5@7 oط+OmiJԔ~yͩ*lA$>c0-¼u f͞ʨOr[)789l"rs0 :gs&EW}v Ղ^AB|<-SE6ߐ΅>sDmӅPXϓZks\& sX8ӜM׫ zifZՈ`X1AaxM{? )o^}4?'E+G@ȘN5`,mՖ\k!IoODƖ_hů/%Ǎ-1K~[{ȲRU"H0y5# ^B>)T v$.[awS]GU2IA+%[q}YFDq3,fHKKW3ŘZzHrnmC,<;at ?Юjt +Ɬ6N;:7S_ L/{_ĝ V(IRL.H&4WeH_^`|T(;4z?`B4\)~a`ȥ*63rvP3H[< 4xŻ]+H w;uz FY SXy}RK/bfcEA?W!u)XFDAV` zMi> 闼< [eSMd? TF xG ڨȔ|`i.zN]E~A@,0xHA&G ̗Ke$nF5˦k[E\i /(ҿo~m4!͠U5.2N(MFnnQ/0mt O AI ,Fd>W-e=U'.IiZ!NiwG%W)f+MCn/矼1O7VbTVDuA1S!U0jSN HU/qyAn;ԚCdEX=DWlzB0-¹(V:O&6!,mʂ*=rsI!=<*~ >UwZۍHE9[xn泯#DY$XTEM>793O;#SO 9@.0З? A=wEɤbs])tF{Pz6tE?ƚ')5#{U qAj[9OPH3ޏswrhxBN_[T1@V(J.{x u|&S8_LEGEQtvQo`@9dlUW?O_ڮ-b~wYBO/DpZ[Ml3}R}M*;(s# lN96oYKƝ, Z!_ځMgQYT Cc1 >7AlC>/|M~Bϔ X,+$6\y+qs{íG^[O*8_t5U/~ϙ}*Nv.[ȴ> hwes2!LNT{/yC뿅QD#3!ɏ9>G")l&b.hmAnm:_OcmW 9ޮ&{ 1RwF h?Lc񞍪^IZm>"cO㦢!^ȱqQhXhWM]Ğz=@`\$2t@GR>!o}xy @. F|jq G0z-HeOOnE/E8+`@#s :!΄Ē1/t/~[w֠(sG c[DZ>n]%ory79}5F!R/ -ʬc;S̩^@7-m v0SWdhQ=M5d#Íp5JGMKę=}v}e|g4h᫘r0=:KKK}\ɇ7-(UajX iע=%f)Zat #5V0"+3a|u-~G Fߌ~5hSr=ͧP++77_v}QۼO&hJFmU.4h|EhEP eǤ(`'pIdui*/MCWd7TF6uTPn󙲅+jZ](Z9 l?_Uj$Xo[aÐK#XH``Tݜb~(r& ӫLvWKPh<-An?Mʫ1IMrm~pl&!t"+Q ξislmQIك"OjBkp)Uq}HPQ6"[wʐVvkaש;d\"),68L$Dۘ'|pϳ:HŨ~DQfgʶ+J͠L+/)o,'a83|)OݝK|sGZӃDrgt〓)gdԜ_-Bj}U`([WIS@%F-~t҅:n7U57/z~Pt7H{rW!sƠWOڥ.w:N1\(."1U՞V0=$bkEJk|,YgYl"O-J %"0ש̃< Ou5#:E;-uwnpp_=ݘjDs"RQ<1v%Lt6yHHa,yE τj %+UbEr޼`ÉHZ&0AO.[(`B΁ ϵ~n,B$d%{L$ƨƸLWy휊fI-wJ.x?΀߆06,omD$ZRb )*6 _Iu.4H74] $)}@?aD̟p2 4W!MJQp3 my?S]pEW]kmU4‰g 6N{<[z5XU46 i3^V0iBɄ@$3G_AQ1,\R e/IkU2ݱ_&z (&;/*2Q3e' FpLe+Rc|L֧(?s$)$-3i'|gռRz]bjVnX@It$x ؒN'U[c5!Lj#7/45g`%>%9=8V)3oQQ{?U}&KJ6܄g 9K\U/dpUu K<s8mY-glHu 3:LΫoJֽ=Sjq΄HP`[%!Q;XZq}Dv3Na[M֊*(0C~V΂ۚTv(?aݺ?x-v]ɼR6]V PS4[ &}TG 7<;Bu%)j!iD >ص<#&qr ;LSN)b7)HM-%k2J`T7>jqJS#ȑFjWOrZ`tM@yzhOR(Hnx A"ʽ? 'S` F5NQ$_膋DZ3RW4 ZEbCUnbia+t pFP?ڥX>B5nqڽ6]vfht9!3ha>"~TM&Ŗ+!eΒƽة.?4.d<꼕g9B1KϿs[?WϊUpShJ)Qb{b`P8㰒DQ(kEwWT䗯߆~WDŽ9pn.e(õ]+n#j"Wgin@w:LiRRir2`m|mK;rK}H<;lM֧ E%LGlTB*F[!lNY//d*ec`-y7OdX6)cXs$PRd_5x7hK8@\k衢+Ndr O#?|1ٱvy7#T7d񶱅*6<MQ)SB(RG=AnK*68124dc߳îۋ<¾|* s?0)Q+l+K>0=rBm v IXNI-SWg[L^UYB]9H\*uBME .JXۅ{GzKwZZO8r*k*\ot>f]I5L~y$ude4DK.&h (SfvC1}tRj$ v5,maN\֨-\?d|7jdv=-(h : ꂐg Uk ܧ}<Tɽ F-Kƭ8g"_JV<( p9]_^$;'Y]n׾s+b<"R@[(Ľ/Bt_bÁ9_>c>]}DZ[s,Y+4 +^bWǘ.ecVwksz0^;sZF\h ߋ֖y30J3S=2Vk89mCS 2 %Pk_-/?_.%NeJnM,lxIhw6,Tkq^i%d'%8dcdΨN)Vc<0`Fʥ-_e&sTKORh)ղ#cml,Kz5>Brk}Fz+ LAOV_fydI.<$_2*O4G?ٔOoږT]:(?(kl+*oT*&1 %D7V3S g26Q \ _Ԃe4RLwySvA.) 8QBf-Ayܣ=&T/,|~{Y5^a 8&hךQVQ+~~;^W,6D<%QcD->a%b2w$,0> p#־7}zXysHȃ+8K`{l2Fs:]$`sX !`-zrtYaz|AHV we WK$E*kawUAh؜>WgkNŶgrf^c^YPB,7qptj q/P0`.LU.kk1KӉ1tƷ>]\0zaA'%%8UX}L4$&q|!h( N:GeyP(!D<iBN+{Ʌ )8WQGقֿBw,Syi9~~S'kIA(=QT1h6Q>Nb9X ';ב_%%{svٱ!ޗmaR)(Z8z(oi( ̂dh:)?¥M um\DBLh pݰ0ٗ:ތ}Y\ G1,Wl~enC.-6;ڪM SF} e6|oL,V:}NZi#Azwc>t?p$,AmB)r??1Y3-Q}6ϔ,- ~'Ԏ$ MY8+Fi݂eq"cv#}ԣ>#:4?} p5Ѿz m=3}P>vEZ@֙)F (4ˎUWzub];%H&uG')T r<@7\Ygn~dI};'[w0a# l9Z9K;k8'.X{Fo{%L,ew;䡨AMu%SkJ+ Mm&90(ˣT~`A,K} dNX1C6ҢCRHQuDw̵1lˁ ٣=_^8*/CW3);λ9z|rsi!;"J,2-@$aLAH#"3y?𮞋<'L@NoC}=EW|"%%J Y:i"_oiښ'U~\4뮣P ښ(3#û&: ȼNTНF*6MݶpX0J<>>捷zȗM,_2B53ݭ=><&ɪ6L' -p`uIvsgL:bNT/'9kI3N¤.iJ䂐,! Q _SG~0NQ^wGUǁKKSU#ֿf_GJjK}PJ$DޱBGsp--5 K~Tx.]9=VZPGx_YFg5P}1.DH#HtgVrpLљ}UO (A,Ab6+(?Oa}ڤ<1Aza-׀xӰ6r6B3UG["J-,?&{zN{ ( h>ͮl`%N0+ jue}N,zQf~v⤜-X5Z=`Ca.!8CZ0oԌ˭wq+Ƙd! pr$>][' ;7~8 ~r ָ*l'͗wȱ;x2@A3Nݷ+ `HF聅!kш18z5ɗV.O,:ӖygfQጓķP3'TAӴ9ɤ8^x]i ,?d̐pRX~ԩUk]Q|ȷOۅTqyE 痫qm}(j`p@QW7|ӥ"H*ԣG5&Q%VQػ +(Nq.p~'pXD@]jv; n1Jy K?=N28]=ۣ?~Յ #Pofq…d⧿=nH.UyBsLO=j=FLJ`= 8YTAD1+2ʑmǥ)6  R%{~J .ڛn@/{L07!"t-k8< S$~) D +Qcâ!$`?z7A?ZuŃ:ٸ9V0GF;I*/2Dd-8ܸLH}fTuL Ӽv?_eB|G^-ܗl]:X,do2Ԫad=%x%=!Y;XD>WܮQRFgn\%S֯5kUPzՖc&y\Ծ)Pa7y`uET_^ :oIt,D߶֭wvf}SQ%UǴк3wUB<ɉj@|/ߙ%:y`}!6""LmTaC"#' Wzo(R vnXcOIt&9̇aIz A74Yw nˉ5;wH8XE]`:O4#C4UbH0'MJ^0&'jjKE:vez?Zj` :0Rx]')"n _PTrJ?(M᫴DYWk˳э'mX/yXWo}CQuX?)bVְ߆h@!w>+>ٰgrCe}b1 x `#-1ϣ/!2]?SDk:Y%)e43)+i# _+Kʿ"/4mƣP׎߂irJ}஄ >`o_KFK  zR)g$7HTcvYEY3[Ax4.]A2`?JҪxSC-:v>#d |"[$Rl66T]gWBWTV oy&J2f#~TI=2 u/u$ە~ FB~RiP!,Nf}e)q VKvW?IpWN AE`[^i(#y][Bp 'OeX`r#o2{iPmH'.d)I'mi|F.[!lK1( -#'p!R-c{{OT+Zyd_uMM7 sO;P4vLF;7vHK+"Tp,]kC NFy~ J3Q} vk0έh8Wh71 GbPmcg""SZb0\)^p@ϱ`ԵaYa@%O0 8"BS_K?AkqBոCFӳg & DXkX0 -Q̹d_ajS@ Ӧd LQ\$[{iq~nY_T^nd ]s7}ȟt^[XyG}zZocLGD`8("Zi&٠ "|?L\ uc a-е .q`%.֖Lcf +n[[܃s#cWc!RMUw#['U{*ų\ -A̝Ng4ɜS=z^˄{~~ϰ^Ҝ-%P_#l__-jQ|U1h DNՔ;̰B7 \q;.)X?!1 *dm֧ӽgirz;!ZT\y=a[k{ngL pF(;?zдAc[t0;j@RB׸$pAvp_# 2"~lB_ܶ+.imN %jN.9} C>~.RN35PHA f5yM7*YRz) :6is)T{تz(-Et)TU/tv];m_Yytma%6(\3ޕd U4GFx2',:OZ~Vbr{T@B(,q%<[l/T_W1.U~Y, ^qSC,Nn繰s+.\ZÉSo"gar|Pɭ> ebMQ5uHb+=<@lڣr@G$&OIQQ0 F4h1˵-rE΋R rd7:'j(TcEQrX*^ΜgwD7em]H OStwD _,֢˰(٢Ƒ`pٻ-F G͞?$C%;7%%)CM`*M+s2.f\LLcD̑7sKL$ =V;nx>VmD5tG==69d-^q< #2[)Y꒔NW; B )gja`J hCY:י8l}#@t$b$oQ+?*%șR{HG7J[9to+KiC<͏ݩ|긌PHՋEjǤq]Vґ0d}  ?|_wOeN  h; @r1 ⤮t{rռ%ґd8$K0rYeU??όLcOuzj&g.dFE$0Wң 3(%Т( *NSK3ŕJ#g:qF;G#r&;CL=>:/ړs۵‘ O2+x3^Q S{I0&-CECx)QX0{|"NX>&E㨆 H,ĔLc\WU^L LjXwBV|x1G#Ceތؾ}+73zs[xrzIQfRcwG5/=weʑn3a؇sfy$b) BjW)'Dn/AAz(ٗu0]U0GFF lwr?wTϚBnWKxc#n闋SZs &B=u|`I=sx+4@UIS΂iBY܆zm5q/{xHJp=0JQ8(X+̻1Cro)6m4kدNzN 例Q*d+3Z6u^KעH[zBqD]|!qV PSf.N,lnQЈӤҭ(n`.vB{ a'zl2؈B._dNֳ\3gCU2WHJdN8Zoi% h3^ A81 31"h!V`ฅSnxqaM: ?ЭyQz}XJP{;/Eu °Κd.+LٕMq>mz S$|Rb*!>&{lK)x{ׁ<,64p;QN/̮٩^ı{KX_)C(4c4%?>f|b m)p'GKvש%F3&Uҡ/d)Ĭ!H}8d/~V4nFFł\C-)?KZ˺arp ;}jf=#?H>ȿ>㿃Hőru9 +`ehH0N>R,[. `wW8d[etNީ[Vb"*JC`5##;ؿ_Q׵\ C]׻rQg,[Aqt &c1'L/ ɏ?R{S( "./_MQk ɴ~&ꛐ{k<9$i!c,9p P\v+#{bI:FX)4!T.\]pig-Ey4*Mưq?=2ғExÆ=j~h}9 urox&tC5bq鏨E%1% ñc+1GnGJξP@JW( oJQi獭DswE)\A{+k׈qgMmRZF6c [#i+IOuT6B=%^i#"o+oCO+9W=bs~߼sp }'.eF4>blDpv?HMaPz?$n`"pCVgOg'LBmur#h@KRf{ޮ7,O"-=:@jM&S:'D!5!;=Is>/gx UO2%7͔4;H`A8LkF[m8^h)0W Tm֗1 JU󓾯t*pfoçʅ L.'{j@v ؐ{28_>jx;+i7[mϫj& W&V-kd^6Ř?T{"ć˱ (W)bJgl,KK)qӟ\K9ӗ*ʍ;:/yNx[1,ע1%u1>c $(>ޮQϚRfZܓe*FOJu]rRRa]ldPF`O\9s{ݏjQdzuRqeM 1 ޅ fA&s|!DP*jcҾ⮕* h3a->[ڂu<'eHQ{TLnRtLTX_ bU衷s1΍LoKNOFf_LTf$QP֪m/ pG!NGݲ~zdv1e A&DO:^bx"Fn|m&gyc}ڽrfa$F.gQqw\cVc!zx$BAv( :?w՚Q2 HvK}AQm j]'Qs;ޜJٗF/ѣW:JA^vy3F?|+s81_@@'BpDf+ 6e(x 딴T{!V,eL a I0 P>w$}o0 4nX{Yg`K ,r?=r/v+ڎKqܨ5XeRSj D6'J<Asi:qjhv)O:Sv,S|ϵ͐K4C"2TMhMUkTڏ[_os0ioFDj4qn߬h:xv{13@҄ɨϊ(əCвb+C:*<trI~pm}JS,VDJ& ޑa#Oڎ+dmdpTbT˵xTCOL| 3ťOOU2+$ŨcktI BRL_3N\zN /Wh 'ss> 2ҽé#42㓍['aqEaŰs>EVtqsu8XH0|~J>QfH9`س;ypS8l0X Zs +&,_-P%@ńM['[Q2]m@e2 폌qUޙ՛:S N@U{o^@2LD NO0H{U_3BW@v>xzb6tT,f]S\\5Y5<~Zj&'ˌi):֔eJPl='yoPTSqVvw2^pGw;`"WG[ȕW|ЧI ~7*;}x9S!B1DbƔ[tcIgETzCo՚ Cth?[:\c9tcb|.-€s2{IIU,CXGϼ Sr'U<^,[@'TpӌbK$W}ɘ0aC3!M GrN,I ;KKjto#(; 2bK-7%]u`wPlM,m{{85V'jB fz %~ \no'+tcaaf%V7!tfPz9,rI^ ~Ĝ [oHr;e:/FHdo|H;ƪhiuikHNR9f&?~)DzP͈iLg} 圻V~ީ'`ZҗIUQJyE )!V 5x.30F?\H3&O4z^?ija>F^NLwӮ$N:D{[_L(BxWpUv2f3(p4+`o>۔Bj!┆EN|dQ\'x <3BB02Z !Pۀ=gzh$RA ړ d9:L,~Yt5Sg:z+7(DFXU}v@Ւޔrdfxky@6Sr E}ch*8tϛ BY1&TՌd@G*[a١@ۅH(<$6͌j:u0g8!h[IuphB!sn 4W&!5Ʒ\(xF-V=wX7:*nc@fF0Y^._wv~PЍNNDLM\~&XLؠݹ4}v!wT~aњtН0K"eHPdص->2,a߂M+ N@JmbWKS̝ѩ !:Z`1J2fMrj5jmSfWdY.IT^34bc\/"i勍K,VMx|;F3Y)X$,̻l8)".ɐo 9Dhό%(:k$OR_&cE IWv{gFs7߫"]X 4C zqit~o1FHw͆Y)-bH2 \l&Hξ>-m1!*־!y@G16lk A+҃#rVii f|crI[1AAh κ:26S<.-5F( t 闸ܫiilUV>IG. &[I5l;3:9&9 n[%T  2^ ̢-x+/ m(٤.BpSjuMADR. rLiqꚬ:8Q(݆W]& S^@4ND%w. +J~4*a=6'xj > I w|*ϝ)KhI^MgBJB\癩`P<*C|<:/etSN-t 1chs ѲfD1X$OƬ"8[.ZD=wA.Bi9BHݏY~h(̉=ԄYzhA\aݷAyV?8B*a Ņ:|&-d+8[G?GBz@Qz}=mH+;ru_~7eEcTE1)q?##4mn z<3Be+iOW>@6K7f?Y^iyջ-:v՟k'NSi>C0p*?+vҟh)/ػHj23DN ౶#|K$lP!YEg5p\ O|~+FA6Z9Kd_0&#TK]3 %6ZBFZ$ oI]ʉ0Ʉf{m,Lad89Hi~^-π-}\W$;CUvCUaْӸnbܛ @b߳OUG;ܴ41ʵRe }Go>R]0I(EK79V~p\^_𓆀.Nk쿺zpQ)PSسU %`F33 #c[F=U7B]z0R]@f^)2&ګ:Ryl;e-#Җo'/FήLsba0p j.8fG,z`/hw$H2i(t-FpX |CEGF~Doا koIˑ&M:lD,:a˅oA5ӓz׉l$W!zZW]7E֦,g΅]5|9ס&xr+ĵlko&](|P 6Z XA/ה?Lp٩Dm֏툑f w6ڝ "B_o(cy^}L Uv⩢M۲@+?3qehp벰w&|!$[{sܙ92J!R(%sQytf5F cI?:i#kAvKG`F\ 9};{U. (ғ fǠDLaHn1Ar3}Uje^I\ @omԗ+ c -RR*PjiDG JH=]v^DU~(g{Y%MZm$f:=sZċ6qar}"zd@ɍ/>T&)R)Q:|B‹gQ1E|<}! ݨ]"ޞf azwׂ+v9w]몎j䪇MO!<zodfNէ9ϼ`~ PMdM#%7#pe8F#Y'h:6di5꟔u P_ف@vMMw,؍1mXAW,n/ ‰)0OlSflxG0$"U36<-էgqfhctb HWTfّxi|ŭyvCY$_=je<h~0LYonJV/=+̶C[xdzCMH {#ҬVD06eg,z 1y0"e%0G#v] JoDJ9jf.&Ǽvl֜E,fx/:k(.BR|Qf@ni,0\Bv~Pyf2T/q7keO zTzII`\>WB8淍/?X [igiA0dj@&t"J Uݞ;IPLJe&f3*cS+&B\OdI2T\T ۝ fSywsw;zhŠ\8:x Rst%.&wqxKT*=j\_JƕP'ΝWH1"q\1Jfz+[s^ݤ+YRA&,vXN.;&#E璱03"sYM5 %,PAqꌹ)# bـ|ԭ/# {<;VOG珧-MD /槲 :޼#>m8l&M#E:pVNӴKaޤS6Yz\cfRM]k\T?Vٝ[b1u#_ۄճG]l 宭ud S"VC;ԣ ss*ZdW h[ރSU3l8G:=q1frC@BWY2 BLru >;'EƞlmSW$5A;¹ (op4 ;son9BB::/\թOSiHFܙ_Uj_ +o,~W;Hh<%O7B<..J*UŀLb3lso& .b qŞJ!_)@)ZR:T1BWX_ER9?HɃlᖥBW9 }vEnB 4 dxE5y?+py"+U00`"Qz1pkϳu}ƿynxSu6̪rj͢YpI ?dd.buA1FqqwXNRO#Nsw}Ғ4adQw ߥWuEt]ٙ/ڙؘ͏;;뽩|[u=4~! Pkj N'Q<%Vm}s? AjaCZﯓp*o~XiFRh]JnQ1 Idc}^\&wlJwyoz^Utt]ZtW-F%m=_ 7e֬Fjy mAK0lY0(v#Ox[k\ud%ը`^b0'ZzY;\[Êbiœ 0_ܱ3lD÷pO0C#>H%Ǜ^H(F>۸&2Q^F(.}l 6J?xμvM&¸JxP}BWl0&@e3vyX yĠ(M;>wa>}.c T'!!T3p&+tدS ÑJ^~r-#M⢴hPf#jiw%mϡ/|݀eeeU*}Sݷi\ٶSz%;*Ly ί/TQ*%>Ww7Rgb"Sy!.V5h2K)/"M~Ze[-A CX+p+?冀忖:o0z3$)c#"e>f MC` (7UdY P[o+]L B|2+=b%[Go wƐXFdy;Rx}YhOB#e͔Nw`+o))4$L,JYITU@HnS:1ks%rlo7kt[3U-7~slPg=jdøȑ}7PI%$ Թk`CJbtcGݹUD$arDH._lF cķKA7Q< R~u5+E l iOĮ:UN9THޕ/nQ/:koft>*qS?!_C1 e~@{5=WHer{I= u6+‶N-U_RQrSEEbntqgF!}Hml ;4b oH&:{'Arߪ MJnFmV5Gnc>؄g:@Ti`_;R!ݩPT)$t 0U3'% OЭ6 =$0qblɭ iVt=< 5_E%Bu5[?%  ȱ#g à2Pt9|_3g%tiCjHX+* 6GYqvk%mDr za.,NA 'ةJRfO&>(0I=CQbCOt-gYTꑪ.USecNU*>89C<([U@[oVOk[$2GySLѢu* ,*jaH6E db:\"(?+-Zer h;BVʛȝsՏ2]TAm[I*)T2X%P5Mu9kU@jפ@z]XցщAanFTGf" X @8Q:<~6bNo[?w1zp9T9&e6w\?i:e+qB)YwTL TqmB֣qk&%Җ. M#,]gN8:{aEqhlR{_'$H_W?sṃ9fiE@WɳVE`?[~A]jx tg)}B*EGPKNWa#{۶ܬ;uzΦj*ww, M2FND .h#$<䕘[o`f9pNhO;sow9l`|a)=3KZooNJ^Q|ri;Zˆڲ^pm>V3$:zp9$na/gXV[ǀkg HEJѶĖ߁l&,|z1ų3j0i҇NFh'OtӖ(="EODషFOۛQq:t7ۀ7ƘV'W_IZ u"-mg'pNoD0ÿ><&Ʋ=9o\9F5Blg1R_i4z3V]tG~ !`JݙaY!=.Kq̾8ҩM"ڈҢ`/!lҕVϫPEnf)ԔBû_ H\.s}># Ggb& ŗL ]0/GZkIFa~:ojX.z-.]~cE+^-U[\$ hRyy10ޙ>x )!Z.Xҭ̚ P5? &xH<":7ñ]md׌4T WrD46U \_B)LYu SA4$Zl]cy_XпRT#^^ s]|}N C`wF+UKAP F@[}93Q*oGESI@cGkf.F2 frIcKӄu5tw- Q4y@T.g#U~k rlr1G-//x+^b{ƗŎXsɘ|%S}[e~ oBKD8f籬{47wwр7;[[}w7"W(QdL_ j6Le96n-kE=_he)IR$'aOtY ex8NF2Į>hEN8kVKڙal^6*̉D{Q^[:uػN3#+ownp妭Ch/kBk>I^3P̺ZAf?n>s^0+0V|)$55/seGD`t-4E(Y_ َXL>5a!%vv@wכJ i@YޥXV}ZT{bbhV]U}3}JSGU+YbxD3qۀP- f+~JZ8Wg{ ފhhyJKdmBVEu'wjA&KD-)9Mttڷ{$tm%PtRf eەY6hq2Nr̸=l~AXelPl;բݬt-xb`GҷxW4Щ(y}!Et_C[r;BZ07TNs*H  (/a~6>ZDVB|ᳮnBZ,FߑƜ.]۸,Fgx5dvi'Ӎt?&TYԨ%z!;q>JU+,8Z>z_05j"P'$6;E?!h>oa"|"RLmGpha%5^!1 nkZaZ<)At-Avr`ݲ 75?56ٌ@۷oGM"a9ő؋C@bK5R^kCD&ϸG lMfSkaB]Q !6 XKDvpyi:ߚ~QXit)_[.m(n:FiacMnЩau/gizElX8DŽG}vQǍ A'mgwۢfRM #k'4t'#%`6-~:/Jg.I:ґ`3x%)QC~ɹ'mFW%F2̺ƭ`#?9O9p8"NC:MTt&%'K"WBKlM^!Peʸx:gws\mYB9n誚Gq ʣj娷!w.OTt3%ќP~ :w vwCywkU'thV۫& _%~7U *zpv``̦",c+=]siwJ12%ll@T>m%E꽩A|PZsj?ɨci6GjC#.`t}TVHP!Sv?LVe<{QeS9sssNH (U[kA5AX?Lr{ϝ2sӠTmu`jT9sVȥъw R@z/ 9Hw&=4E#/=vtmpKM ?5Iv_8?kv£z국MAo2z+ccװS> Ŵխ*Y/F?0#30V> Dc ZjD6r}~\oB9Z\L¿}SGخ=W7Gt 9\w/},㪇 YڲbOgg \ˈ$I!ڒ6I3U\%+@`5LM| 2=B a+O]>!\m{b+ħ Bp$b́(@^5a.\ ,P-ɠEggQ}:^C5sgJCD|/zQa&0?xFh: Rz`5jb -Ր饁Εq/œPd?3Ɗ3؃q}eNpF.2 8@=蒨8;;.5llO4^j@?a^u^GS#\A;x:8?k9NqB} R c[_wk=7tv=7&R\iK8C==-M5YPF֥e߅Cb<Ո;ry ypiX3oa3 |)6N +0Jelo8 >v+t;!-! ,hj_9x8_ xGf,)/@YlgV^ѥĤe 1+=frC 钟ӝ? 3~R>Jv˘qtKOY3U[@!WƜRCzgbW*S} L 6 Лp2\)޸’kBbzwi^@aŽT9Ȫ!H|~1}ɍ$/}>3xBx\?dE%ڥ%֪ӣ4it׹Z`bʅ߷y=ЊX; Ѿ%Tm @Zm)puvI[5w7f| jd,̂b0rFV/;Mi?ʌ-E]/`+Mr-mKmi#;=Ѷ[OxQkSAFhp\Y ݏU ƾbcQ͹LR3>o$R Œ5NG_^#ܗK; ;2)ze6]mѶ";Z*%|Bȁy&1.kM [uH!& ^4 < sj1ujݨfNsIK?os-8`%/&۰Tff}nwBgkMF[Z*/LTW [LInV?D[iU&]^p0W]MXmgoʇ9\̅gN uVWP-͞RtB %3*joJ&.wRn̮̳0tAITxEeqS!'JB^L&d z] ߟ= ď+yĖH⹾c5E# @s:v>acZev=~ ơ ACUQW..?F)Kihm1[PaJw21q;P+8q{P)L{sy}m[W ~LЕY`!ʽƆ^ |6J 4+TuEew gQ^e*/o~։q$;_df׃R\gRH)9^)AF$⍂ۺm cddFj-f{b W^J|sVD1X>)fuL \{`2+S 陸$rZs+u}CT哄%v M]_ =3C pJirkcvpi0!*(+|td#B ?hH3Ky]Y *#e.fF/M'0<-@r`;kĆ1]M ix$^ P$?_lp2.XLH©,i%ڕk>)L Dg Lm8fE/Tv_;&?/*f@Xb,]TLϮPcFy`y3>4zd/0M#oRN@5DU )ߕ=wZ'To @T:*~K^t^-\֑@Hy]jŪW$.vca 15I/"^ʞz{ K?Hg?(5w_ϗ(Y=8!^amjpfxM=\,t/.hxpݯi ؅?>a\5 ^;*txbe#ҿTv42/iǁ *ԷӦI+!9ђ`eGMEt;w8ELEA5 2DGbp%ěW`lxIe[CtT8- l 6೯Ң!Њxz`qL6²G0\T.J.o:mc<D{@>ߤ5B_ d9*!kZ 2Zh͝bf "pi5̏ |wqY &@@i+\l rJ# 5k< 9?/ "0 V\.%68< ׾\[=Iͼgt~ Ϡpʰ"˘c ̞'3|Қ/9w2MRop?e_$U޲yԫ5fd$~b̞#R?:YQ[gVPcA~ I,vɇ  C"чfwS9.%]OB,}Ù?JK*>>1X[ "ݤsZ?\`^L}IHB$T } #oBbk^)~Ѱ'U? ki?W#iVܥbk1~HǓ5 e!I{x ^zWf{Dznq(ZD;`L ׉a]47/'+]7T-QfZ`#H§R:[瓃8_꣩7Uc|f SPm| 9aؠs+&E$hXtI,VɧQ[6jZCpw]>``7:E:Dh-P4´NcZF7f&Ul [}nޢ2CkX'!WMYP" ޳o[ϕ S<6"Ɠ:AhٵO./Yݫ$*ZQe\")f^ytcXW\.Gca[e}yR.#ut%bԎ-ImO!/LDÖfx^^#x_ǔ4G?UUJvKHJݏ!y޿|6X84 +t'XkS[eϝuB_ #L`e粙v(pg^_n03\`N&jD{rfEƃΖ CHzPBn}rvnE AS"G >'qϨdO:,o(",2HSr6ܣ`>Y}'3}#ȍE"^:0y [>s*)6E&[*joM),|%#*Xbb{h Sp1Э$UF"ZN:)R\rZcؙc*(dC2ߴ,2 \jlvD7ɠ1z<.w:V7e 0謃[N>E1%= nNƖU/g [ ~k.آHp:?nǛKu.)AϬBr'f1Ʃ&nw/D[~V.&^Dys4 q3fn&A9]PfB«f40/m]#/f^ݐa<#~T?ͻPŪph5 m.Y6 "@B7*UРy T{SLlog + n,bgqYQbWѩi=[|95.:6nt>ݫ&$П])3o9d.Gxh/}ӈ;Y‰쨒=)/2p}f$Š z❘zݼV p}\%,-G+q]-\r_5'^~<˞VLzBt >FH0扄:2ƨfDZodo'橾!JϺf|sg)_u5]%dsD%Z}s} <@)*]*Zylrrއ6m7.~9Nw0䈥s9=Z'7`Cfrsd^gϰxD.x2Etգ|$ z4 ^!*p2\$L=c@9j(c͎ .B eI*xKf{.ͨν!C&DgP>S_d9wa"S]ww>X8N;}@I[GM5{kXKB̀ϲ_=jϽ[$ٿ"a4P$>([FtDbn:.S S2R(aj1ogǔ_΋*D8Q)Y ; l*[e! y{Ə.)RfPd<3:#HԮמ̞3*;pZFa1i .nW u/o2^OB[@8o V;<#1e@J? ڝMz!\f*b\"@_RuPf?-ͅ٨] |0%Ex̷mNe#x{w4y3RfkM&fwߖ3uR)YzҊ`c,ZMMl'_n+[Ldk^SOax%o {h,ڔ'^~$xCɽDe%U<-s_ NiT fÿn$˛"̶ΌYൕ/}$\+5);jɎ@(%9y5}=ԟ&W j;P  Ѽ0K& KE۳a?hX ӊxf{>0 (A!O_]Q^ ю*vx4RkZ}Əvv8'2f]~mpM&ZVԈ Z8]?>S2L#E"GCU.lyOO>CbЛFcCkV-\p '!^(FbcYx[7ia;I"-3B;"`W @ Q̎N;9i|_5!J=[L}4ޡ(߶y86{akUеOrzib/b机56' IEt J '0 uec(W3{LtCƅVO!ҀB,#;&Ü~6O9$,?d׾k]&#nm!?x[* 'ޡHf6n%1J㾬 \䝉@{Ta'q@A4zқ~"YpCF٥A$6KA : ge?&~`nm.[9E7Nan`:-:%op$+[{Taw4Iz$p-hV@jZWZ! >IgDP~dEP@b6YhM(//6; zH>ĺa$e g_8lഡ'֠\׎8HI:I=qb[_9UDbI ᨪoFrDDZm8 &gu*B Iۇws75uVt@a=z.Vg$!ߊGשݳ 18 %D`_ w=V!YÒ CFJ4S9 vA$9\!ziУ} mfaPB>XzH} Z77 T umU0UI-y"z?ܞDUan =e~U'X>SEtfzr^H n:HXG#vMXdٔ*ץ5v ?C)b)<>ʃhoASۤUx1$ fpjuϠ!gXTet }?PO(.&~n Eػaxv&u0tu{7=$uSгav;%QܫaN桛uR]HElʖŘ^D7GY GTοT?&MPY ^[5?3I94D{#)O<՞&[Z8 `h=Wut9',T 4 \\W`">g4^F?dp)#̘̞c&3[CP96UƉ~_Bpyh,PYV+1~b{LUڭ u<,VH& gX<M]gA-.t gutրccN-6*íCMZ2'(EN"!و93`'0[((1Ċ% VeчcI\kT?%BK ؗCX8ҋ*lFb.nlP X.KG^A1@6)sO ocG%^dgfII}M 7wAǏ?)%^@fNARAhr^u4mV_jԆ$(6sfw KZ y'P񜳕t@xr3kh9 .^:*P~t}2_׵T%%/f;ض1M 0g@˪V|;4|^>,p3G_4GoD>c;!$葍}&| ,ܮ!kbދ'^jC3j ;qJTK Ařn ninBY zHF*%0xa4(Lfk;h[IY٧waD;)^;tH-L$vZ>]Q TD,#GP T>76xS{dp;suD lSAiC9I/_v@ІVI᪤.O7M[/y`A:%j9k|aRlNV ( YR EE;dk/=Z\? X X(\.EIJPb" s ;A\5:c -S;f"Û!ÕCc94"gTa*Q1z41:4diFڕ㖈h@ LyФ=ݱ?N*bq]w4, C5G+z2g8. ~F X;𣻐CZ\$A2|u1h陋\GN"lZXD\0/C5?% k_T,?jHJ<yK0n͋5NOj_Ie<F G}R$[e-u{}u=OIr`7VDq3=zHkk*HjW9sQQKM%{jTtXŋ՟ZQ`♭C:t˸=FTpO(Nf񛂿y0^4dzm%HlYq<'%aֳKy6hWO7r^qV~R?o"8 ͺ>,bÖZ/E4 =4pU䥽5_/iZA9T.29'#a \FqMJ(fBw輨q*FfbRZDYQfɗi$̌F7 o-%ڃvZThɡwwHjLT1vU?(1!)o>WW2Y!V(-Va*@嗟P-UB)٤B°ă/#F= 1"F%(khI+7 ^XXnJ&&',[d2뚯JRIpc9 QH~ԗޯcR`!4X_Z{;Y80ˆm!'h01;آ'\m23ßhÞuN5:=6)sK<ᖣp,/PD@*J!B=gOD$ K*u6#l:$J-;Aog]2d!AQ=ꓡ}0q.NO@_:ϣ<06bagnh#'̓ԩIVbHyEO;%Kn1UNc hǏp fLfGzչ3߈*UTWUFma֑I\&Z>=7}fg#vƒ p~u8ٶ/0Z λ Nc]QY8+/ v ) i22%Pcg5gP%f{,q%@bA}unmPD~9W3hybciiq}"FyTJGgpB%(KUrlfQ0 )D18ItTf4%OC dZv piq׉()TqnVI$P|Q&LXʕB ,.,I 0r*/XhB  w4bb7-:1W K/jպ&"V_1p6NWn 1?X}i52X"uN$dY|k9h\v݅g=|rZ4ڧ;Ї`^yњ %WGOIlZI? |aQ4r[(Hn"t=E^k(av,jQ^ZrMr;aZ3o)!)$5uO:n",(Yu>P !BC±Hǫzfq/f~*xP|so~ 9ucm 8G7mZ;gN/*uܻc",̠8Բ0&97ƀZ橹YE:w˗IJ;Ce,VZt-TS'@#Vq1/XkuPF# NQv>z]I7ǃ9HSO Ha5r&hEk]'C[؏~ W8"#ː 6oEe[\_4ԍ3?ɐo-OWeLe | ĨB||GoSd-O_v\dY/HFUCW2rb˖똣N\ds[{/Γ,cgB'd CP cg#o<XNmYr ElhCmֿ?SJYO2ȤލfY|(ߩark05.b?T\g3 b":S]&!^_abZ5F#!N5\ɿ߬ _w-gYۏFXPTo>_idRK Вm"Q(C' %m!6MUsmZ9Ӄ&)v#qRxc t!RϝLgqRlu 2׊oWuy\ܐibhp#WZ,&_$n.n&#H򳉋'*1R9J*Zϭ}[.uA+DNEnm{F:yPdY&B @I.%@rx|5nA릫$n駴Fvz@( "Lj_ .Y䭙#[bS]f^cuLL2 \FWbM0'BƜ,QǺ0KJEcXQdS^wēNБ37;>ɺɵ =2LHR"z1g 2 .jӾ$į=[bu ?-@5_ز h]r+fM9֤q\K~54Or@wm!ެY}u d/Z !hgeJ)^F0k/ؤjB|GBAr2[h9Do#~9Ňq┪[_?d<%܃+g" M]VI0q'gxMbIr!l$4I--_+,)Y])m+I\D6\1"%3} 5e|m2YSmk:哎f(~*Ns4m1YʻUOV_1datjD^kHޱėdpDBɞg#,XܬXC\n&q :j'{v΂`K2z-\1\=g]&yl?^ȯ/*z<4u—ʪw b>Ѡw\I\J!U:9ʳ 1b&@2FʎK/hV4k=֕JqJD6CPr!,\6u':Hݺ fwS-8eI E]7wh 7Ou)Y6%Y SuH#O~{3r<47M%pLh4- 8wGP EF֨5q1[tDjUN0u_?#'vej%qj!kNϒ"6I%kYz3B7nq3QOAq,q9,k aӺ r1J Kn'QVVT@x+yD](u ! ]~Lv PZWV7>aZJ'&ލgeJ xB>+)¹Zf:biy0swY͑!2$维5^R8 qmk#D"٠Z:=%*׬SȍS.xil C^N]f \1@V4ۜξ  V"D O`%Ei?S._/;oUo Fzl]:cbƷ+Z>UUX^9+Ė6%pQO^FqWRw1 o(YwmQ< ֍etQo2d]܁Ki ΝOeew0Ǿ6^.CzZї 7%?3WzqHu.el|ȠK`i*Уryp ҆k9cXr޹d0sZft$Hn9ʙl0*mDrM8)E({yg^\. {i/5'cYo/2fϻtiYM)*o<Z`CN[5 M4P~ au}TGO,z? (*z^dh3qԂx}s=@+}aVu,9q*PҩwCD\2xt k~7fƖY l#=o-x]6"\HѶ]# ;+<J_c>Z9^XuLc#&_Ń< 䐚'x )z=%Qk6ן1 4i;+^jZ#*'IՉII<L")"Dfle4S xʪaq$*0f:$iJ,"± g.`zJu 4Q'}>}1դǔ:Xf&"P*le(hDs%яrej&͞K8 2 X0WkᗄHYU3M+GO$ԓ*F|dqU<_E]LPKOC?*?!Qʭ<tH8fmnf]fZ[r}ɖg7tS% ⡦{.4!ؠ~~UJJR*"9LCa l<1w)Ow<@ y*HAqU\D@rY6|F z@O BI\: +s㕍0֨&I3+hs̵0Q1߁cZM87KB]8y4PY'F^䃎B-YyXȏYbi#BO)fӚ[gV Çjd}0Ώtf N0@KҊe? #mҐH_5gc;JƒE@_'|U?9tk+}n^f_;N g+(-J֪5jfZfVvǪi)3_͇1QámpYXYUtԏч od[TV> CGT" 1 >OZ/C(MXWhfd :HOiI_3Q8/LZ6e>xH˯zMHh-ql*!1b D*#o䔎r?LzG\UJAIn!,aÏ8x+~L][|>&M5 ҳWqz1E Eoā|ww6RI2H`sL`h*zJVhww~м)tWr.ܹLc10;Jb}}XNFi7|04с N^q,_q ] 7 36Ar⧩f)B:$R\ReJnXH ;j$ ](OȾ-тj +E^pt=_}48$3[joXL!;} d+t@b ַ (:]^"cp9^D=>lFVL|tmj\;GiUNJ:MXiEz?T{:E'HjmZo="Ƅ t kKL!ˈMf gw fL5­¡n@@rt~#r!jtӦN@0?'𴀐iDZ?^յ|)J6AMPG4WTF.m g8`L%/#G$Na WQ=3m=ߛƆ>CnJ!Lex$\"vg5\';S쬪>KNPGo*S+LB"i#r)jA$C*׀:V21СI^jpC|ԫNYsc_'lHRbH`܂;ѹErLfCگOԻ`?(1 &Q 8CGZ|Դ ZyE=2:f%|njt*҆O)g Y\v:G [aso'>>W $#6E_ٽ R.q^v*UCh;I4*"2{?T5+E$ =?тD["ZD3,+뤮'Գr P1ฐ0f 4\/6#>|uW`^\&_᥂p[c'VB;qa3=4:8;ٟ]l6{xa3T <wOq$ⷞ$'wQsY+y")29K#YL?K18\ױNήTJq>2͖ͥ(т  eV"cm(,IvHNt:+IљF?p25`Ϭ K؋,]$`8;55L#zQFEUbɫяNfsES'[{n{DؕJPf{*tDcpz:m aN' ӆ:C!_:0q"̦Tݮ7Jގܳ7RF n:,ɧ \]\ξF Cu#?ݗ9㣣[}q*).tāuU|2drz:.,Li^5Y=O9gg*bO T ;%CdSzfBh'_XT/xgqH#V.J#pi9YV%#8WFӮ羨W3)"DiaYO<ׯ.^3 ePj҉jr*EgZ.kMiy+4eRisI8v*8YŌOM QC{U} bՍM]A#=R]pjD^skab+VlFZ, gNO%`mlgU-@Ӽaaڈ8hOXX=,ՄC4;Ӝ/Ne,K>ׇoؒ Ĵƻ;(XS`2f2]^ .q!1e_X 2k&] 0TŽLpkbSq_w?H=*T [w.<8"'0sM .gF4z~E^F*|02uOPMO/§,#wG)bR̊86Nޮ'(-1CQ*"lg:EE:ozX"S0elr;:bKy\:N5Y9{SsRk \]FڗWNg.TXp _M򃯙-sɛaۏe8u(gg7eꄚq[w8qzC摺ZO*Y\ϝ鴬e /UָM9$-(7+CA`R9(J~uR.@k׀ R4j2*^ZOcW01|/ +/Pu C“2xS; -|/@8ҼO;Mu'f̭ vۙҬv~♤Հ_ SC^%!mޮ+`JJ*Y̦8 ch#ep|Fs8マwxV+!W;{knIP4 ,_TG(/!Eޚ)G؄sY0wtW`^.-H?h<I5bkޯ>q.cy]6ЏI C{~wR*N?V'de;&\PHkQ2.C(@C8Yw,#?r3U \ ԎX8&9%>oy@#Zw 2i+<+]% eǣX뵁w;W8i.NrC@:WX]-U4Z'ߕơ< H{chkdjp2L)T@GFbqi&:ZczV-'  -⎪T -(d}R@>m^hэN5(w>},4"6}ȱ r=X'esyҙAQdj:[n*gJs^HQ+\8jV93ng?/C͵}IM)Seݫg=?F-<[u3JˆyN/&K`oI9̓|Ѱ)2`YP=Coyf$RHې,Ozߩ6Fܘ ;HLT6ޡrԈJF=10U_Z I-hہHBƦ\Q*k)jdlWCSSwcZ8=,ho_ @Q-,"b&viWLhN 02!a;3鏰7D`=G21<<cZ<:cq2=Ko2>?E7>kEBd|;r#@.调*b3Fi=(u wegAza>CA6h#tnDǕ Q}v*]({EN, .f)&8N8Н'=y91 F wΧc./#Y85Th:5Io4n A{gz B(4 ajCo((-|{4U0[v9dxd1d;q? avr)Xz|1p[ݏ63Q>'>ME@xv<5iK\=|vHn\=GQ툞Ttdi&yp'D@ԣ;;`Ξ aj֣!}467I42 32 1JU'ieSkTQF/G f66Zg˾,[%19͝!e Ϣ/H$U!JoZ(N,^:ݞJ]9mc˟57uAk1Zy1^^6hlL]9a k #(]xBOLSb (i([Sm:I"Pg,BI+f|Hb@Y4\Bٶa^ds4]7AMCsMlH#VlEx9"˻W\1ª>v:'(+^N`-bebt٦?oUUg2wgZ Px'1.g*1JwluQۢQ3jd{&cpPvX``;!2=a)imM%n\5|vWKd/+Ecc]BOܽQtËju~f׆^HXgnykbl"w¾9~xnm݅}-zL4?m ɄS2 \ M;$6Bl\cZYVVmͦ{} peV޹Lju|$ZE]ceFW,ב$ "mhDD^6?a܁N>Ka)ђ7<7KI6o5rl6s=5ֹ=l }7-2}K2h.y7F̎;K7Y$KY~9r65@7U諺ڈvo'(,V2d8"-7/ZH29.eϢ5n1)F` U Z۾A~ERo˜xyAT%ƾHmv,=-v>7&8*Gz ,mO#CtD[gH,TSugdz::$mcndh@7ol+pxOˆjg!R3eSzx̂&NC!^@>j\Dlo_WWqJ9ڊGˀxV&϶]BxEb7`=q7M0 A@6'On> ΔE_p>T`-&[҉Uo&^0i2 #~n!!Z;^0Jzi 3':{_*7h'O6(U+ y;-I 'YSqvcn, 25d5cqpXψxm<^K6y~ \7"mI2f(>\,x xM' 5GL/ 䣃gAcFw| $'QV_`Zrёy - rIï(:,` 4/O#A$nR3k8fI+#-H*X oľEh58mTU%l7&u}GYi%#P< }c!KUI?U82r{DwV9K-o r -/,i#dHAl}~"%KЪ7)# L092XRd=HxpzO1)zQIʾ7ֵ5m&6B>B' c̳'͆sQvizYB.,9f x6sL+Z˃ޅkW]4HK^Wr/f tEE:Z _U%i'u.;b? Yq@lH _ɪ 2Ng0&]U'%^xN$mY-!e@jtWYUkMA,I:x?Q C+#i@_$Itƹu\0ׅY24ƈB<^v.Sko >18j ›OL] D+CXPG*%R}UIxe'WFMt.l>$X=J6>-.億8d:uݨݯgk Y`w7c3mf; 8G֕>jԳВw{F䛗fׯ1dK<<=k܁H ~)?_ȐˠE7)r .4`a:]-i;&SQ aF %c菅fs 4DfL4\cw%p:+m&tVN_K:&º1N}jwN IhZ9܅R[s+݀Kotǭ9^Lː]nmD(j?4ҹX9J|1L$JV۴mx{\4e?QLݷ5صOna8Vmab,$F<4@ȼ^A7@Xk;]}m4_xteR~AdOiO0oG [Nk=x;W3VB):>"ne.7 N+^47mRDթ8y!zn8]{ ͶM\Nf'Yq܌B7F؂kLNRY'H=nzrTµ/k%yD7fWa,luS|HKF K|Qc3V+CY.֗oo2|}9)''-|&-գ =>g0vI UI:su AP."[ބhc[)908CIy@ihV[ F~)΂FgUe*w|!3&_1/b{,2@ pZbV1*E Z|Gfh0)oڶH ~CIX@xc/3eY6 H=ж5t> \7Y_|VGi0 Hydǘ>+rFյރp)annV _&+vL|_ 2}? Ґ!E/)Rp -iTD>I䠄CKv6`\%Cvɋao^RKhHgx!Ѱ9ˣwiNS`#kwCB7,H/awrIrG5kuMvš2,@hkb_[s(=ZµJtjP) iWG )_%„SFl<'T3WW. 7c7JжI;*%8M3|uh#}0گe5nv2PΫxYU$\(/lwаҎr+HlIgh9RzVSbj ܒV4U jY5fCxgl'?n8(~woxi]d,@q'!5xglyԌK/o !勌fNAx[&ZyFKDǜCeaPH X"(yeH!X!&WANܕbna2E.H ? 9VL<Nx0ZGHԛM*jb fJO%l93{. 6@K>08,C*!=Q}1$ZߠK,pF.W)$һYYͷ}Y#;ofMCUZǩS5hŁH:^RȦ^f @ lO5 4f ,caZl3ۙȐ:9gR*/u5]6)uuVr7qWj̷]d]*}^k&bΜB(Fn8ݪ1/|f5}<|k(P|c:mrGiWm:av^x?U5x l}~xBW $zcZ@m8x-7GLx7 z^=PoԮj0Bj,I6{xc5"^O'K- &m8L!}acIEK23RpL:lHoOҖr~s}Oai'08F Б`]yV{${$RMWJ!tWmnZIə? N{'2jT,ܗ QmӨcgʎƷ}9S6@YGVCεOjF(r)k옋L[B%@36 ˝&&B`(ޢ1Cl(E7Ukcw1T:rx8Awo8o:[c}xQV+mT8bs e)`JyJo?ccedj!Kv%o겂a1RZ7Y2]Y#D8'EySD%w,ore7Wz$$#H WQkΌ蔘ml-S=Q'd7.V1J)d@ AJ1Nd ce *9hZV:i3f-o)…rl̥`dsPvM;;d/n@L>-!\صa$q^Yn/q> ϗX; DGlH&&z+%?ڮfx36X,ޗU>6V˿nhEKBF.U &~ .q%hz{Y,3+/hf:[s,jT^/EQ/qzŻZUДzlF4kڢzMeNUZƋvh`,}a-8߬.%Dm5ۘgM+>ns5np sB 4dL).4jʄos+||eTɉwQvȢmZ7rd_*%`i.Іʆj#M-E|,HHɴ^S-oE12LȸwF|lF*qJ}l_]񄐝UkǢs!+?$y{n`HrvpM$2btҊɱ5{=\|O 6[ IU/w* GCScuK.hahAhPb0͢+JjSJ 6:Pxp  -`TT| qN!5.cxHLy X;1magݖK 9 N'%1ǍO,pPrA|Cr"LiyFL*FU5we-.'4C8'*qW{Lr`qMw~}ikqr;ae\74Y(/HM$-t(^xr-WF~}ۉSgi}Q9%?PTnzşB{.#K&EEgFs#q ѡYSFE+X~O'lO='>i0Ws֭/& =}LB`Wn!%hOivҚ*w [h-=4B/R-m8ƉX3idTUYD2¦ɶJL_z=}KqZHy}|?M$'*¨a[|GX!-WY9W6X}I%]⟹/RhD/vUFH}09VS ݰ+B2^P}9-ԨIL-s( %={%m$-T %ۓ&MscK&8"OTA|^Y{L|ZݮҴԣČcV*5Ջ t I>FM+cIWe{4}D]tp_(>Iσ)}c(Llޒ)EX)T *l8*Naiq':"hOd#YTS3yĔ}ڬUXJn^.Cd /A3TupyQNJPaV^b!= லs7Dv}ZK΢뾎(o[7P`.4"C d7 Q3uT?cedyJw.,O%ũ:TGy߆H.vvMclܚ+aD_)kBpw JyWzʡ.XsEP;\|_PXa<&v?+kٙtFxjU3 QzfMGYzrU6 2OUMW=`_kxoh Xʀ?.p0T4Iiq5e&/~Z:U2c)Md+o( E]lGГޅd#Nq|LqP`Vs'|ݠxc&` [ڦMo%Z/ Λ;x6V|^PߢAbnƂf=ڎ2)C :{UOGfnF7 vŘ2H[!]h$k9XXZߧz$@t}#\ zz8*U\p3YiCE+[IO8 wPAmhv홟Ta>]cwOMr 4I=>p:sH[Sﶝ|%V9 /")k`ޫg,8b`TP-q)q`o/aTC ͈(F.+FRZ[JA }l݀JdFFQE^SNyY- ,׸я$vCG&@ g q!pq`HƛlcӐ|@k%۾\[7Qiˀl P~߉qST,4VJY(ѫtR"$MصpySt$^W2mKAY/*Z}δJZ!ǽAv?hg.nWl {1 v~D> &~*#d *A_ސyPo:x!&˥K1 b&x]3 (.9GLw>P]Vl.$O6{gTN=Yˀ^HP̙syT =|{6dsMmˣڗaȣ6cG,iñR1F-/MQj ojv,̥k'-[/ƀ SuUW!T8nGϥHҴ[?RMa&*\""-lC6pʎzvj ڂUpoX+Zx{(28sy7։?[)dqo9:h6hJGaؤqHLa& $DO\A6[1t7,7QI/͠Mei֙>.nJ߮EJL*o6 u._oɇg{ƣUMBJLr',~OqNghqPХ X 9] Sݱ+}v95:$^ 񼳥[Ŗh]],*W@yo r=#r|N#nSzN j9ɞh؂ l5 cn1yX3W|yHuTؖ<6:[]sEX<j+iZ/z.,]:+U V79\Xz+y;@g`Q~?g;&wQtPbwNS冱70W6pKrVija!%;UbY=e#;CPމָVegB1\=tYL~裀M)Dq '^Ɣ,PV/]rH<>^o#'Ƒ xh܈t[yeDǚ`a0,baGUAhKȨw{*W|H_ʖr$ { _{~ܕY(HV ;:{tY\+pEa2Ͻ?V& e A +DA[U5)"=F,,1(Ͻ»WJ洼|X4r0W7{ƶhLsyW[A f;Lo cb=mmr}+h:iQ`CCtpDF*fԖD`ʽFVbELҍI6dQ0uCFG\> a jZP^w r+ה3ٍN=iəVSY=!]FQ^ 8 #$?fbrI9܁[wA[>@r|B$.=H)բk5+pnlut*gOeL$}it#,<:t6ޤ '7 B% xL!?={i;{ݖ!]q*Ts%P9Eo+PiJi;G\}2ЍS~­"l=JTDpVC?bzMSOi`Eܵ^>]CsZá8 eǙ'mLs37=ʗ\a&V s1~v|A?lz?)f4Uqr Ldj h֪NB%i b5e(ٮnjap!폨tI/ßzky]Y' ƞc?i+̔H)vvtfVz&{Q~â: !Ssxjs(2Oh^9bPPJ! C!\U0p8W KL-ћ!?SU,HJmOQ-];@r7ۂo9TorRn'M k.cjk T4X> Ahʳ|a/d>:^[J6{sR凸c^,( }*ԬQ Fwd,>vg~ ?ꍁ'zeS(A dV}tMڙpo`Zp;"\-蝘U )Sf$d? I/w'4omv^*Um%fT$~=3q-]E[^gƘ 1#o\me !7סdӁrRTʈq.BW[]INLd0ȏ&;6(53) MH#t 0m Ja Zmѫ^Nd 4d}X|_azpz~N%ͼ]^EPzcNc;ϕbB&/xɢ<9zQ8~p$dq`f8|k:&<.Ĝ#hN?oh!+sH!U*'eW{k<~eȜş/<)hq()k^%=ȿ oCd*2$ƍIh 2BtMyVv:jՓh0 mKm?SW9(8 $iDEVdB4uHŢв^ޒ,aA}> $ a17U S T,j M߇.39V?3T!?vMuBOG<ڈG4QL*E{NBBXBkKOg,dz!7(/w=,aE!n5_Fo/6A 8Sn1rGJ*e⽢?ng[GpZ~2,v*s 8PYbʱHgkIa|%TS8U#H}1P>f)[^px2&z+$HJ>ofk5Ug@@,meLT.^@E> g#f\_66eYDi' \GaqgYqjr#W<*ۧu^H.G!$xT7lܨ\rD`IayMiD|PSAy4B@ؙƞw.@uB5fpSK4>p`E"=,;*F9R%@cm7Uv'x@ՠT̟@eӛ87۱5 f-H6=Sde'W$KKkǤTMWv[]D-G՞.4Qk2Tg`ﰤjFZ Lkv|NX%5wh:F_P(*Yb"K*~J6ٕ#P-ݾ;DPdDmĽy'*[`Btv""ZթRݜ#]-L1 G${d̡ϱt[cR$Idp|=yMCCRUw0VƊW';l&T``U1'3MƋfOU*7p] mqoH (E#۷;oL./I{9Ļ[Wk򯇕T8]S@e䖎bTΦ!$^{o X# a3#YVPC{!O0zPt֘zɛD'Ҵ8õڛW8KGx4; n{}eXxDꜽR2篻Oc4hդ7zQREE{S!g5>#f|8+e e|=B{Pp,f,RD##=T4`bgUpd%FK6*-*FCh:/"սְAc]c$E`c^@ңrήvz/壟% +̹Z!u|8M[-5V++yR}fm̌K cO QZ)CgoQ_\&^@8Jmp^)z; }ѹke0W34߀M #d\H95X WH(H"\)C+#KJco|gZyVTn*%]:_0[1< *id-*fn\S ٨ŕ3m{g3,v L6%9mۧ Mvhۇ*`P{hOp%Q4SyESLXcNIZ+z Ip>A-9v77HL{Pˮp=*'MpּՒYST淸}0b{(({dIXUʚ"EKPK  9D[_p.E܆rٯmB6"ۋȹzEBhاe|c1\Df7r;"_>wlڒgELwoL뚊9Ol)ML,RKG:Ō)eO!yĆFF+l^J!2kx-t?dI~ O:%b ACk͋X3UCkdݶ,sZÔL\4&ikMj11IIO3fliXA.O|d+дUݣ䄻:ŝ`敞H ^#;ˣSv_l6 7W~|ЦB玡9 j[H-j t?%kz 4E?o0 P|蒬MB$?eYu;v/H:O?k¦νY>*8#lĖndWjwk' EL_TKϣ3́w$&2YX c.©ȡ,5V%7C` _ߺ@"NBpɍOúYKV3QlD3Y>"BSd6 2\4'H62gM.ش~[W_"DՓϤ"8 A[z&hdHv_?JkW;,H~4'WxZ"BCreĺ7}#I Ou˩OTh-gڶ'2&Xt m_ #Z (lC<@JZ/cg4xNyQW0 0`B֞.2՛]?HǂWAY_Є 2hF>$X k M'+tLDaM> kԢ5a~8IC>ɖF&^)SԞ?ow荩pl/y%^*n0xQqY8g8+ˆ)| a5{¤?427{*%ބ(CV̋Up瞶6̎ S !Tzf5mvb찥jJ!ٵx T E"gTiK#8j8UmG|iԄoekM1vq+2> O=R:1zzٗИ+S愈n$)F-/њ[>Rul)rK&mV[K$`٥g;_I _MmqGau-d kۀvvI%ˆ['=a.ߥ BYh&,O TEX&AN$C]4#̵7z`BAeḂr-SyĚ/%'ި/7f*!ΈW9I5vib6l&)ˈ83DJ$T.W00a(S O \>ocS7=,HOF z, gAKte֕^U/WH%u@\{(^ƚfq{9W;cIM+閘1\jE=LgJ;o;0C a.ga۲̕>X%FLj}zJx)=ؚQ fծV`m皦 (icp,,OSQ⩆,(CC&z9II.˂Q=dtݿRި+&En~po.6xC*r~H7PZ2lMO8{3:1NcL bwÞPˑ8)\Hn|fN}1'EWv 9K1hQp&v|] .g͂ =Bc#>R,h鹯4`i|&n9/@>R̈́Ft F-<%CȡdJ>>U(lm\ؙ=Fd͛Tij$pZ^uYA|Ni-<~yTd,EM"ڎ#vtޭ!8!Q@0YE#fj#bt$,6pX9fe^РԎ}ll[o|hmV1캟fZ _֕"zC:٩Ci[QORJDlc|?EriS)p?8{ӝ-upD}ٮ#:eӚLOR)  俆#OQ ,kR~+FlƩ]s+2dF7ض48CςzS䱴t:Kx bvk"$aHZ!JqRg'ywl9}ܫ?}zJ?ruK=憎¸Joޜ=|{@,(AtvEAiA˄5 Z Cy%&FxֽKU+ Nt=Ub.`-*hf=Y/!ѽa~Kک׻gv}+$,LXcUH>9j}ikRzRC[HĖ!f:o7iOdȵfXy\W%ugzUYBh:QBCTMFioFx\oW9oFJlرVgv<|jʵ6hfDJ路'봒C$=Tv`GZu8椄˜iWx$RiD8ɒ4I_^6oGyy8;)oKoL6Dmp )\eβ:Mk.L&'ϹSC 略{) i{UvԽ Z,pS3s#[K IO<a眀”pCl{RŻt4PӉoRxI${:@]v+ [հGy;ްK-݌eBUrc'6Fhj.Ơ)yRQd Bfp 懵6՟O'sL!f)H§I)G \sCK WLî.P%ەRD&* œ ن{NzzmS3Ї_|mXU. vc= (@;8'^*hn!c`۵8uթ@0eNƎajaj^$ıRkCz7buA\]1I"IlpgpgNdF=?C@!% gWEcb?X\iw9es(n)Ҵwt1|Ct,b&q=~5f%uߋ/Hg[G1E7 2tH96uq:קyj""<aw‚Ec8af*FĽ)^oazcWn-[F I:R5 Mq@@a='F}Z? o$oh $ C_kkew%EUgDI.9Uf)K VbnijYwO]Tf cוclmhu%LX><317U&ON ;%\)0^u;BCˤw] ,,@Z_u,楜`Oܾs,ٓ>D7Զ6wk0a:{NN$yIYW=K 8шٳ'x.Fia XfD$\!6:!&ڧ ī{ F1Ur}d7.2uH zR VVjՆ"6lE Ҭ$.N"~B{y^ZX4Gθ&lG_u %!GKd׵E]f^X F.`#K(Jl,2p"t=;/Q'|j]F9+-JW26s-KS~n0x-uUf? 2?NNongs߽0bF砧 5=Jw1K7 x) ;ԡ%iSo WӴ]F͢L~RC,_N8\O5ji.ࡐ36|XT[;z|7WTTOߙ"RBd SJ[VJf~dA/I] Q'($=H9j "GSL !V}I_-|Y0ʠ=ДLOQ2\z׋&;|;LKCʦT" l{'s2YJ9[`yz NJmGwJygvG1F5-$EQW 5bA6y-N[4$f %T" lV p :ư6lr]r$%E63r 䔼 )F!o8-}m]wvtZt3 S\--o_qYvEH!ڡ;<<2^xlIpYNG5ڂ4skͿSxi]8`rY-z,"؀gWT!x Z .nȇ^&8)]&>}PR-tKʘUdr>aҵc?+1]J@-8,2k9@Jy7@Ŀ&XÊmD(I oM-ha#jڟ-H6:,$%yskY{lkPbzeG6_r;*2&xEk;I{T˗^ZzA-XY{8'ˎb?#PS Gt[C:S)sbip/"EמKyErwǖ'L;Qffk&oЯ"lkb4HL-?(͙~ǬtVzZ R6W&m(qvn+ &6kUH }8#N]L;\M ь4[` 'V\+ n폌5nMOH 㶤2g4'Խgǎ.j|qSf^O`eqN VJa Ζ(yG3h)"Zᕱ">@9pDZB >qɟcZ~"Pǐ$H>_xd:as:t@vJ<@aI`C~5 38ގMJM3KɌƟ<k9O8M3DPb _ !I~ѡ 324FӤL:axI Fv0yԫzZ%?1/Bxc!S1hK͈-ݓA$]M}75YʮQ;GYFÕdQN\i|T.N?D}ͧ;3l6GZ]6AD.4,%Y4WjJ!L(Ho,EhtTmINrNݏ#VDtn(i@2X)/+׈@'r#MCt0s {b)4!;tGeZ&50̀>*DvH?C.h>g/ޱ/P'cZW47BgvDcu:n_lcSZ(<[eOF f/ #{ LrTHAb,=1(U΀ $ѠY\/~:_@ Enһ%8u_H[5C2%(kD o"d2ïByon6|MP`V?zd0 xa'y<4iy_"Cb@&6rK|co Hgr|V`&`/^܁'EDfaVz(Đyf܎oڎ 5v%xlɉ0%(ܿ>/GU:亜[eŖR=I%3ݝcԦٿ|aZvaRH1+QPӷpz18;/yj0'e2![~E݆HDږ8'YuYh0n QHqBnkZ^~(^JyO>Ʌ~&# Yy79,T-3הͻ<ĝOx)sOuCt07fm<0mheƌ}g½|sin¸.j]@}NR\Aׄu R[te5\Մsam۟k4 '^. @ -p9#o!^yz=C vN:NQ 3㘿Ɩ1ZVga ޕl0F/c`L"|& LG>ͭ['7qSn$N&a9O"V/rY0|zZG>`9;hȓnr tD7 {~ }| u}δ\w@g_O>+mE gI?*N J.ְL4 4L.d[Fx%T ۨQ;j."!Gь*iʍA]0a*T^R,o'DG fKѾlEk.fBs[XJvJןNܶ]!7D$dN^1- VMՠg#Uuak=cشf&I;&W25$,sDxF 9RQ։aؙ۱ɶΨfnT0"Wto-Z8# sܲEx~qaݪ=ny[c/$Y[% ^ײlލ-!ɕ3*r?w^, (T9? )u oiiXnٺK 8z'{PǓ)[N<`zMt7O .S2Z` c% v~*avKU栩EC~@JebzEVsvh.n}a}0R-F|t4ڜ:zbFl49jnx`1NNNcoIUD_Pi5e5)\IZ^>D> "cx3 Q;8A^3F'x!! #}'5@Jy#TA;{PP\tb(ѲX%EG2q$i+c'|L6#SG'y"")?piĻys GWq_lsǖz(q W}CCDreufYt\%X{!uJ"сhڪE^MҼL.!Ah;M(@Ku[&XB;šRq } DVIfv58qQk&Eo> J.LLB4z5 `hhwDZ3Z>x-#2MCq(5O%=ZjzwM^2X\Ql&)3:2*3,+)*+}]FMu%մ\$]í{ R= iQS(k;t^jiءXQpJoe*SojE pXE: \Ȩlb$~zۭ*/2 +)'m۫/`Ƹ:AƍieO/${pt&5Rߡ0$-SJDJ#Āk%E7"C?45EsvR=q(.xTϺeV]*+'HKK*ⴭP߯oZ\!+|d#gcs+?N #L93墵|-qV>9#9 /%O@9Hkz-ԷlE[?A.s0MO)s%pčƽ}QzNԽY#ܶԴd?Ë%1Us%=sOt,@Sp@@my~CbLKžF2. 'cp0 a:v+ц67$GKE7Wc0]% WyU$9>vְ (6KĨLr!Bn,թk!^9V426 3\Nb3ڊۺW,~yf_jP" S0G _h^cͿzB.IR<d|(Jy?O? z]8 cI<~<\:NPnxk~@ʢP6)EQ* Ȏ<rha5) LKykGjK6-_h7UyR*<|,P|b!yV1MpOGG>ZWAs\ѱam/ _1 {&"6pSFlsΔ?@e|S%jo 2]U ;/2>kF;u%V<S$Hyؖ-/M}.Wl9%g_~V\~?V;P9ܟg uo;36S&_4ܕd:@S %P܄S^zcj]t*s[m`2>Lcj(ƙMnLRW0dd"u1x1)C(9zi24‡ѮRIW"gP ]2o{tR;cpW {͵)l8ȡ̈́]8 G6?e ˆ:h °*)"#!o{k&`KĠEXˈB>FV ,Kߵ6vD`//쟀=|$9Z*gyS#Ux~-3L]?B8LDp-|]Ngܚ k)V%# pp/Xޚr[s#uVF^ BGhЕteZ5LI(4؇yۂׅH5k/\a| f1N"-ieE}av<ҘmF uNKp_T G7'+k/7kQKZ/W=[د6T;NQW滠Rcv}~*V#9AXz$2MBMk¢<5 O{!>'>+ igE54Kj&bQQq7Y5!^ b`b|W6' lR<`gv?Jj14[_.N@?_i)z2K?*H}@ڔ-]_DC 8%ż{ܳK12k7c 帛,? z3Ry2Ċp9fd /5yKt.\{晒N;# $4=1>zv[}H~~mEwGƎ̱x[UcXIqCOQua!8dy !['E^M$cD\))|(ˀWe+`m^]M9CHba5""TKWg8 8<ϫR@Ak;#>YqxWN 9R&(fR8)|2u2=(pvVV3t{7f.ۺ!nb # P;@n+ 1"=9' fFJD dIo EX b l,=*e(~YꆮW}Ș]Qqj*IOqRV"|tzi^kC*fOWoAZIkvKH6GQVZ*{ qUM%a}RI - YSŦC1?oR*+̯o }n\e3WJ/ ˣR}Yxn6%H=襧z9ͮJ7h'p*a,Tih;Dz :ZeBY/٥8]܂zC Mo d~, 7G\2Ma(sC`KjF+ÚwNH%@6FnvЮwW_` 0RJܾ2|f=g( >%Tq/r $uhVuxΰ*l+d#Y}FkT-t 26blA }nD$q#.FybEg佛R#ՆyZgBE<*!OC4k \DG$%ve!s3i KS ?Mlާ&zq G/Tz?V"E7!X8,;6]e$7&wWog*t(FT=Ry-~"!`;kT i]|Hy\֠"=dI=Escݩո25e8Z°J F,^NAgVu([Gn㍻=%nQ*{._A)_J`7`nwux)>8\y_BӥIq*@qYq8u_ k! +# w`Y~->2 `Ym kF"#Ψ?:(p uqLzep ȷzkYD#?3=TMygJ \Q.MBZ>͆ƀtQ 3n^ʨձWq3w+ٚΔ>i޲'!Q(\UU{TSF5ΙW^<5?01yJ*K:cks7QTRR:|6XgLPȫ Xﮘe⍸čb|Iqd/(9Hq5iŮ@~ Ur2 ;`sv.* 8T1vf-/u_ײ7rF Jd[-zd?f! $,QFDQx_]Ͳބp&r/E̥FpXi ǽTr֣Sc(gByD@ՙȗbQn R O  PI< G)h_W34_ 4yYS{ĕuՂeosk P:O@og&aސysm3U?hMTE|CѤ: GT u O]2Oɾiz@.wIA}6W