summaryrefslogtreecommitdiffstats
path: root/perl-install/keyboard.pm
blob: 8c29c8e0389d1d08cb7ab600444763517aa81eda (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
package keyboard; # $Id$

use diagnostics;
use strict;

#-######################################################################################
#- misc imports
#-######################################################################################
use common;
use detect_devices;
use run_program;
use log;
use c;


#-######################################################################################
#- Globals
#-######################################################################################
my $KMAP_MAGIC = 0x8B39C07F;

#- a best guess of the keyboard layout, based on the choosen locale
#- beware only the first 5 characters of the locale are used
my %lang2keyboard =
(
  'af' => 'us_intl',
#-'ar' => 'ar:80 ar_d:70 ar_azerty:60 ar_azerty_d:50',
  'az' => 'az:80 tr:10 us_intl:5',
'az_AZ'=> 'az:80 tr:10 us_intl:5',
  'be' => 'by:80 ru:50 ru_yawerty:40',
'be_BE'=> 'by:80 ru:50 ru_yawerty:40',
  'bg' => 'bg_phonetic:60 bg:50',
'bg_BG'=> 'bg_phonetic:60 bg:50',
  'br' => 'fr:90',
  'bs' => 'hr:60 yu:50 si:40',
  'ca' => 'es:89 fr:15',
'ca_Es'=> 'es:89 fr:15',
  'cs' => 'cz_qwerty:70 cz:50',
  'cy' => 'uk:90',
'cy_GB'=> 'uk:90',
  'da' => 'dk:90',
  'de' => 'de_nodeadkeys:70 de:50',
'de_AT'=> 'de_nodeadkeys:70 de:50',
'de_BE'=> 'be:70 de_nodeadkeys:60 de:50',
'de_CH'=> 'ch_de:70 ch_fr:25 de_nodeadkeys:20 de:15',
'de_DE'=> 'de_nodeadkeys:70 de:50', 
'de_LU'=> 'de_nodeadkeys:70 de:50 fr:40 be:35', 
  'el' => 'gr:90',
'el_GR'=> 'gr:90',
  'en' => 'us:90 us_intl:50',
'en_US'=> 'us:90 us_intl:50',
'en_GB'=> 'uk:89 us:60 us_intl:50',
'en_IE'=> 'uk:89 us:60 us_intl:50',
  'eo' => 'us_intl:89 dvorak:20',
'eo_XX'=> 'us_intl:89 dvorak:20',
  'es' => 'es:85 la:80 us_intl:50',
'es@tr'=> 'es:85 la:80 us_intl:50',
'es_AR'=> 'la:80 us_intl:50 es:20',
'es_ES'=> 'es:90',
'es_MX'=> 'la:80 us_intl:50 es:20',
  'et' => 'ee:90',
  'eu' => 'es:89 fr:15',
'eu_ES'=> 'es:89 fr:15',
  'fa' => 'ir:90',
  'fi' => 'fi:90',
  'fr' => 'fr:90',
'fr_BE'=> 'be:85 fr:5',
'fr_CA'=> 'qc:85 fr:5',
'fr_CH'=> 'ch_fr:70 ch_de:15 fr:10',
'fr_FR'=> 'fr:90',
'fr_LU'=> 'fr:70 de_nodeadkeys:50 de:40 be:35', 
  'ga' => 'uk:90',
'ga_IE'=> 'uk:90',
  'gd' => 'uk:90',
  'gl' => 'es:90',
'gl_ES'=> 'es:90',
  'gv' => 'uk:90',
  'he' => 'il:89 il_phonetic:10',
'he_IL'=> 'il:89 il_phonetic:10',
  'hr' => 'hr:80 si:50',
  'hu' => 'hu:90',
  'hy' => 'am:80 am_old:10 am_phonetic:5',
'hy_AM'=> 'am:80 am_old:10 am_phonetic:5',
  'id' => 'us:90 us_intl:20',
  'is' => 'is:90',
  'iu' => 'iu:90',
  'it' => 'it:90',
'it_CH'=> 'ch_fr:80 ch_de:60 it:50',
'it_IT'=> 'it:90',
  'ja' => 'jp:80 us:50 us_intl:20',
'ja_JP'=> 'jp:80 us:50 us_intl:20',
  'ka' => 'ge_la:80 ge_ru:50',
'ka_GE'=> 'ge_la:80 ge_ru:50',
  'kl' => 'dk:80 us_intl:30',
  'ko' => 'kr:80 us:60',
'ko_KR'=> 'kr:80 us:60',
  'kw' => 'uk:90',
  'lo' => 'us:60',
  'lt' => 'lt:80 lt_new:70 lt_b:60 lt_p:50',
  'lv' => 'lv:80 lt:40 lt_new:30 lt_b:20 lt_p:10 ee:5',
  'mi' => 'us_intl:60 uk:20 us:10',
'mk_MK'=> 'mk:80',
  'mk' => 'mk:80',
  'ms' => 'us:90 us_intl:20',
  'nb' => 'no:85 dvorak_no:10',
'nl_BE'=> 'be:80 nl:10 us_intl:5',
'nl_NL'=> 'us_intl:80 nl:15 us:10 uk:5',
  'nn' => 'no:85 dvorak_no:10',
  'no' => 'no:85 dvorak_no:10',
  'oc' => 'fr:90',
  'ph' => 'us:90 us_intl:20',
  'pl' => 'pl:80 pl2:60',
  'pp' => 'br:80 la:20 pt:10 us_intl:30',
'pt_BR'=> 'br:80 la:20 pt:10 us_intl:30',
'pt_PT'=> 'pt:80',
  'ro' => 'ro2:80 ro:40 us_intl:10',
  'ru' => 'ru:85 ru_yawerty:80',
'ru_RU'=> 'ru:85 ru_yawerty:80',
'ru_UA'=> 'ua:50 ru:40 ru_yawerty:30',
  'sk' => 'sk_qwerty:80 sk:70',
  'sl' => 'si:80 hr:50',
  'sp' => 'sr:80',
'sp_YU'=> 'sr:80',
  'sq' => 'al:80',
  'sr' => 'yu:80',
'sr_YU'=> 'yu:80',
  'sv' => 'se:85 fi:30 dvorak_se:10',
'sv_FI'=> 'fi:85 sv:20',
'sv_SE'=> 'se:85 fi:20',
  'ta' => 'tml:80',
'ta_IN'=> 'tml:80',
  'tg' => 'tj:80 ru_yawerty:40',
'tg_TJ'=> 'tj:80 ru_yawerty:40',
  'th' => 'th:90',
'th_TH'=> 'th:90',
  'tr' => 'tr_q:85 tr_q:30',
  'tt' => 'ru:50 ru_yawerty:40',
  'uk' => 'ua:85 ru:50 ru_yawerty:40',
'uk_UA'=> 'ua:85 ru:50 ru_yawerty:40',
  'uz' => 'us:80',
  'vi' => 'vn:80 us:60 us_intl:50',
'vi_VN'=> 'vn:80 us:60 us_intl:50',
  'wa' => 'be:85 fr:5',
'zh_CN'=> 'us:60',
'zh_HK'=> 'us:60',
'zh_TW'=> 'us:60',
);

# USB kbd table
# The numeric values are the bCountryCode field (5th byte)  of HID descriptor
my @usb2keyboard =
(
  qw(SKIP ar_SKIP be ca_SKIP qc cz dk fi fr de gr il hu us_intl it jp),
#- 0x10
  qw(kr la nl no ir pl pt ru sk es se ch_de ch_de ch_de tw_SKIP tr_q),
#- 0x20
  qw(uk us yu tr_f),
#- higher codes not attribued as of 2002-02
);

#- key = extension for Xmodmap file, [0] = description of the keyboard,
#- [1] = name for loadkeys, [2] = name for XKB, [3] = "1" if it is
#- a multigroup layout (eg: one with latin/non-latin letters)
my %keyboards = (
arch() =~ /^sparc/ ? (
 "cz" => [ __("Czech (QWERTZ)"), "sunt5-cz-us",	    "cz",    0 ],
 "de" => [ __("German"),         "sunt5-de-latin1", "de",    0 ],
 "dvorak" => [ __("Dvorak"),     "sundvorak",       "dvorak",0 ],
 "es" => [ __("Spanish"),        "sunt5-es",        "es",    0 ],
 "fi" => [ __("Finnish"),        "sunt5-fi-latin1", "fi",    0 ],
 "fr" => [ __("French"),         "sunt5-fr-latin1", "fr",    0 ],
 "no" => [ __("Norwegian"),      "sunt4-no-latin1", "no",    0 ],
 "pl" => [ __("Polish"),         "sun-pl-altgraph", "pl",    0 ],
 "ru" => [ __("Russian"),        "sunt5-ru",        "ru",    1 ],
# TODO: check the console map
 "se" => [ __("Swedish"),        "sunt5-fi-latin1", "se",    0 ],
 "uk" => [ __("UK keyboard"),    "sunt5-uk",        "gb",    0 ],
 "us" => [ __("US keyboard"),    "sunkeymap",       "us",    0 ],
) : (
 "al" => [ __("Albanian"),       "al",              "al",    0 ],
 "am_old" => [ __("Armenian (old)"),"am_old",	    "am(old)", 1 ],
 "am" => [ __("Armenian (typewriter)"),"am-armscii8","am",   1 ],
 "am_phonetic" => [ __("Armenian (phonetic)"),"am_phonetic","am(phonetic)",1 ],
#-"ar_azerty" => [ __("Arabic (AZERTY)"),"ar-8859_6","ar(azerty)",1 ],
#-"ar_azerty_d" => [ __("Arabic (AZERTY, arabic digits)"),"ar-8859_6","ar(azerty_digits)",1 ],
#-"ar" => [ __("Arabic (QWERTY)"),"ar-8859_6",      "ar",    1 ],
#-"ar_d" => [ __("Arabic (QWERTY, arabic digits)"),"ar-8859_6","ar(digits)",1 ],
 "az" => [ __("Azerbaidjani (latin)"),"az",         "az",    0 ],
#"a3" => [ __("Azerbaidjani (cyrillic)"), "az-koi8k","az(cyrillic)",1 ],
 "be" => [ __("Belgian"),        "be2-latin1",      "be",    0 ],
"bg_phonetic" => [ __("Bulgarian (phonetic)"),"bg", "bg(phonetic)", 1 ],
 "bg" => [ __("Bulgarian (BDS)"), "bg",             "bg",    1 ],
 "br" => [ __("Brazilian (ABNT-2)"),"br-abnt2",     "br",    0 ],
 "by" => [ __("Belarusian"),      "by-cp1251",      "by",    1 ],
 "ch_de" => [ __("Swiss (German layout)"), "sg-latin1", "de_CH", 0 ],
 "ch_fr" => [ __("Swiss (French layout)"), "fr_CH-latin1", "fr_CH", 0 ],
 "cz" => [ __("Czech (QWERTZ)"), "cz-latin2",       "cz",    0 ],
 "cz_qwerty" => [ __("Czech (QWERTY)"), "cz-lat2", "cz_qwerty", 0 ],
 "de" => [ __("German"),         "de-latin1",       "de",    0 ],
 "de_nodeadkeys" => [ __("German (no dead keys)"), "de-latin1-nodeadkeys", "de(nodeadkeys)", 0 ],
 "dk" => [ __("Danish"),         "dk-latin1",       "dk",    0 ],
 "dvorak" => [ __("Dvorak (US)"), "pc-dvorak-latin1", "dvorak", 0 ],
 "dvorak_no" => [ __("Dvorak (Norwegian)"), "no-dvorak", "dvorak(no)", 0 ],
 "dvorak_se" => [ __("Dvorak (Swedish)"), "se-dvorak", "dvorak(se)", 0 ],
 "ee" => [ __("Estonian"),       "ee-latin9",       "ee",    0 ],
 "es" => [ __("Spanish"),        "es-latin1",       "es",    0 ],
 "fi" => [ __("Finnish"),        "fi-latin1",       "fi",    0 ],
 "fr" => [ __("French"),         "fr-latin1",       "fr",    0 ],
 "ge_ru"=>[__("Georgian (\"Russian\" layout)"),"ge_ru-georgian_academy","ge_ru",1],
 "ge_la"=>[__("Georgian (\"Latin\" layout)"),"ge_la-georgian_academy","ge_la",1],
 "gr" => [ __("Greek"),          "gr-8859_7",       "el",    1 ],
 "hu" => [ __("Hungarian"),      "hu-latin2",       "hu",    0 ],
 "hr" => [ __("Croatian"),	 "croat",           "hr",    0 ],
 "il" => [ __("Israeli"),        "il-8859_8",       "il",    1 ],
 "il_phonetic" => [ __("Israeli (Phonetic)"), "hebrew", "il_phonetic", 1 ],
 "ir" => [ __("Iranian"),        "ir-isiri_3342",   "ir",    1 ],
 "is" => [ __("Icelandic"),      "is-latin1",       "is",    0 ],
 "it" => [ __("Italian"),        "it-latin1",       "it",    0 ],
#"iu" => [ __("Inuktitut"),      "iu",              "iu",    1 ],
 "jp" => [ __("Japanese 106 keys"), "jp106",        "jp",    1 ],
#There is no XKB korean file yet; but using xmodmap one disables
#some functioanlity; "us" used for XKB until this is fixed
 "kr" => [ __("Korean keyboard"), "us",             "us",    1 ],
 "la" => [ __("Latin American"), "la-latin1",       "la",    0 ],
 "lt" => [ __("Lithuanian AZERTY (old)"), "lt-latin7", "lt_a", 0 ],
#- TODO: write a console kbd map for lt_new
 "lt_new" => [ __("Lithuanian AZERTY (new)"), "lt-latin7", "lt_std", 0 ],
 "lt_b" => [ __("Lithuanian \"number row\" QWERTY"), "ltb-latin7", "lt", 0 ],
 "lt_p" => [ __("Lithuanian \"phonetic\" QWERTY"), "ltp-latin7", "lt_p", 0 ],
 "lv" => [ __("Latvian"),	 "lv-latin7",       "lv",    0 ],
 "mk" => [ __("Macedonian"),	 "mk",              "mk",    1 ],
 "nl" => [ __("Dutch"),          "nl-latin1",       "nl",    0 ],
 "no" => [ __("Norwegian"),      "no-latin1",       "no",    0 ],
 "pl" => [ __("Polish (qwerty layout)"), "pl",      "pl",    0 ],
 "pl2" => [ __("Polish (qwertz layout)"), "pl-latin2", "pl2", 0 ],
 "pt" => [ __("Portuguese"),     "pt-latin1",       "pt",    0 ],
 "qc" => [ __("Canadian (Quebec)"), "qc-latin1", "ca_enhanced", 0 ],
#- TODO: write a console kbd map for ro2
 "ro2" => [ __("Romanian (qwertz)"), "ro2",         "ro2",   0 ],
 "ro" => [ __("Romanian (qwerty)"), "ro",           "ro",    0 ],
 "ru" => [ __("Russian"),        "ru4",             "ru(winkeys)", 1 ],
 "ru_yawerty" => [ __("Russian (Yawerty)"), "ru-yawerty", "ru_yawerty", 1 ],
 "se" => [ __("Swedish"),        "se-latin1",       "se",    0 ],
 "si" => [ __("Slovenian"),      "slovene",         "si",    0 ],
 "sk" => [ __("Slovakian (QWERTZ)"), "sk-qwertz",   "sk",    0 ],
 "sk_qwerty" => [ __("Slovakian (QWERTY)"), "sk-qwerty", "sk_qwerty", 0 ],
# TODO: console map
 "sr" => [ __("Serbian (cyrillic)"), "sr",          "sr",    0 ],
# no console kbd that I'm aware of
 "tml" => [ __("Tamil"),	 "us",              "tml",   1 ],
 "th" => [ __("Thai keyboard"),  "th",              "th",    1 ],
# TODO: console map
 "tj" => [ __("Tajik keyboard"), "ru4",             "tj",    1 ],
 "tr_f" => [ __("Turkish (traditional \"F\" model)"), "trf", "tr_f", 0 ],
 "tr_q" => [ __("Turkish (modern \"Q\" model)"), "tr_q-latin5", "tr", 0 ],
#-"tw => [ __("Chineses bopomofo"), "tw",           "tw",    1 ],
 "ua" => [ __("Ukrainian"),      "ua",              "ua",    1 ],
 "uk" => [ __("UK keyboard"),    "uk",              "gb",    0 ],
 "us" => [ __("US keyboard"),    "us",              "us",    0 ],
 "us_intl" => [ __("US keyboard (international)"), "us-latin1", "us_intl", 0 ],
 "vn" => [ __("Vietnamese \"numeric row\" QWERTY"),"vn-tcvn", "vn(toggle)", 0 ], 
 "yu" => [ __("Yugoslavian (latin)"), "sr",         "yu",    0 ],
),
);

#- list of  possible choices for the key combinations to toggle XKB groups
#- (eg in X86Config file: XkbOptions "grp:toggle")
my %grp_toggles = (
    toggle => _("Right Alt key"),
    shift_toggle => _("Both Shift keys simultaneously"),
    ctrl_shift_toggle => _("Control and Shift keys simultaneously"),
    caps_toggle => _("CapsLock key"),
    ctrl_alt_toggle => _("Ctrl and Alt keys simultaneously"),
    alt_shift_toggle => _("Alt and Shift keys simultaneously"),
    menu_toggle => _("\"Menu\" key"),
    lwin_toggle => _("Left \"Windows\" key"),
    rwin_toggle => _("Right \"Windows\" key"),
);


#-######################################################################################
#- Functions
#-######################################################################################
sub KEYBOARDs { keys %keyboards }
sub KEYBOARD2text { $keyboards{$_[0]} && $keyboards{$_[0]}[0] }
sub keyboards { map { { KEYBOARD => $_ } } keys %keyboards }
sub keyboard2one {
    my ($keyboard, $nb) = @_;
    ref $keyboard or internal_error();
    my $l = $keyboards{$keyboard->{KEYBOARD}} or return;
    $l->[$nb];
}
sub keyboard2text { keyboard2one($_[0], 0) }
sub keyboard2kmap { keyboard2one($_[0], 1) }
sub keyboard2xkb  { keyboard2one($_[0], 2) }

sub grp_toggles {
    my ($keyboard) = @_;
    keyboard2one($keyboard, 3) or return;
    \%grp_toggles;
}

sub loadkeys_files {
    my ($err) = @_;
    my $archkbd = arch() =~ /^sparc/ ? "sun" : arch() =~ /i.86/ ? "i386" : arch() =~ /ppc/ ? "mac" : arch();
    my $p = "/usr/lib/kbd/keymaps/$archkbd";
    my $post = ".kmap.gz";
    my %trans = ("cz-latin2" => "cz-lat2");
    my %find_file;
    foreach my $dir (all($p)) {
	$find_file{$dir} = '';
	foreach (all("$p/$dir")) {
	    $find_file{$_} and $err->("file $_ is both in $find_file{$_} and $dir") if $err;
	    $find_file{$_} = "$p/$dir/$_";
	}
    }
    my (@l, %l);
    foreach (values %keyboards) {
	local $_ = $trans{$_->[1]} || $_->[1];
	my $l = $find_file{"$_$post"} || $find_file{first(/(..)/) . $post};
	if ($l) {
	    push @l, $l;
	    foreach (`zgrep include $l | grep "^include"`) {
		/include\s+"(.*)"/ or die "bad line $_";
		@l{grep { -e $_ } ("$p/$1.inc.gz")} = ();
	    }
	} else {
	    $err->("invalid loadkeys keytable $_") if $err;
	}
    }
    uniq(@l, keys %l, grep { -e $_ } map { "$p/$_.inc.gz" } qw(compose euro windowkeys linux-keys-bare));
}

sub unpack_keyboards {
    my ($k) = @_; $k or return;
    [ grep { 
	my $b = $keyboards{$_->[0]};
	$b or log::l("bad keyboard $_->[0] in %keyboard::lang2keyboard");
	$b;
    } map { [ split ':' ] } split ' ', $k ];
}
sub lang2keyboards {
    my @li = sort { $b->[1] <=> $a->[1] } map { @$_ } map {
	#- first try with the 5 first chars of LANG; if it fails then try with
	#- with the 2 first chars of LANG before resorting to default. 
	unpack_keyboards($lang2keyboard{substr($_, 0, 5)}) || unpack_keyboards($lang2keyboard{substr($_, 0, 2)}) || [ [ ($keyboards{$_} ? $_ : "us") => 100 ] ];
    } @_;
    \@li;
}
sub lang2keyboard {
    my ($l) = @_;
    my $kb = lang2keyboards($l)->[0][0];
    { KEYBOARD => $keyboards{$kb} ? $kb : 'us' }; #- handle incorrect keyboard mapping to us.
}

sub from_usb {
    return if $::noauto;
    my ($usb_kbd) = detect_devices::usbKeyboards() or return;
    my $country_code = detect_devices::usbKeyboard2country_code($usb_kbd) or return;
    my $keyboard = $usb2keyboard[$country_code];
    $keyboard !~ /SKIP/ && { KEYBOARD => $keyboard };
}

sub load {
    my ($keymap) = @_;
    return if $::testing;

    my ($magic, @keymaps) = unpack "I i" . c::MAX_NR_KEYMAPS() . "a*", $keymap;
    $keymap = pop @keymaps;

    $magic != $KMAP_MAGIC and die "failed to read kmap magic";

    local *F;
    sysopen F, "/dev/console", 2 or die "failed to open /dev/console: $!";

    my $count = 0;
    foreach (0 .. c::MAX_NR_KEYMAPS() - 1) {
	$keymaps[$_] or next;

	my @keymap = unpack "s" . c::NR_KEYS() . "a*", $keymap;
	$keymap = pop @keymap;

	my $key = -1;
	foreach my $value (@keymap) {
	    $key++;
	    c::KTYP($value) != c::KT_SPEC() or next;
	    ioctl(F, c::KDSKBENT(), pack("CCS", $_, $key, $value)) or die "keymap ioctl failed ($_ $key $value): $!";
	 }
	$count++;
    }
    #- log::l("loaded $count keymap tables");
}

sub xmodmap_file {
    my ($keyboard) = @_;
    my $KEYBOARD = $keyboard->{KEYBOARD};
    my $f = "$ENV{SHARE_PATH}/xmodmap/xmodmap.$KEYBOARD";
    if (! -e $f) {
	eval {
	    require packdrake;
	    my $packer = new packdrake("$ENV{SHARE_PATH}/xmodmap.cz2", quiet => 1);
	    $packer->extract_archive("/tmp", "xmodmap.$KEYBOARD");
	};
	$f = "/tmp/xmodmap.$KEYBOARD";
    }
    -e $f && $f;
}

sub setup {
    my ($keyboard) = @_;

    return if arch() =~ /^sparc/;

    #- Xpmac doesn't map keys quite right
    if (arch() =~ /ppc/ && !$::testing && $ENV{DISPLAY}) {
	log::l("Fixing Mac keyboard");
	run_program::run('xmodmap', "-e",  "keycode 59 = BackSpace");
	run_program::run('xmodmap', "-e",  "keycode 131 = Shift_R");
	run_program::run('xmodmap', "-e",  "add shift = Shift_R");
	return;
    }

    my $kmap = keyboard2kmap($keyboard) or return;

    log::l("loading keymap $kmap");
    if (-e (my $f = "$ENV{SHARE_PATH}/keymaps/$kmap.bkmap")) {
	load(scalar cat_($f));
    } else {
	local *F;
	if (my $pid = open F, "-|") {
	    local $/ = undef;
	    eval { load(join('', <F>)) };
	    waitpid $pid, 0;
	} else {
	    eval {
		require packdrake;
		my $packer = new packdrake("$ENV{SHARE_PATH}/keymaps.cz2", quiet => 1);
		$packer->extract_archive(undef, "$kmap.bkmap");
	    };
	    c::_exit(0);
	}
    }
    my $f = xmodmap_file($keyboard);
    eval { run_program::run('xmodmap', $f) } if $f && !$::testing && $ENV{DISPLAY};
}

sub write {
    my ($keyboard) = @_;

    $keyboard->{KEYTABLE} = keyboard2kmap($keyboard);

    setVarsInSh("$::prefix/etc/sysconfig/keyboard", $keyboard);
    run_program::rooted($::prefix, "dumpkeys > /etc/sysconfig/console/default.kmap") or log::l("dumpkeys failed");
    if (arch() =~ /ppc/) {
	my $s = "dev.mac_hid.keyboard_sends_linux_keycodes = 1\n";
	substInFile { 
            $_ = '' if /^\Qdev.mac_hid.keyboard_sends_linux_keycodes/;
            $_ .= $s if eof;
        } "$::prefix/etc/sysctl.conf";
    }
}

sub read {
    my %keyboard = getVarsFromSh("$::prefix/etc/sysconfig/keyboard") or return {};
    if (!$keyboard{KEYBOARD}) {
	add2hash(\%keyboard, grep { keyboard2kmap($_) eq $keyboard{KEYTABLE} } keyboards());
    }
    $keyboard{DISABLE_WINDOWS_KEY} = bool2yesno(detect_devices::isLaptop());

    keyboard2text(\%keyboard) ? \%keyboard : {};
}

sub check {
    require lang;
    $^W = 0;

    my $ok = 1;
    my $warn = sub {
	print STDERR "$_[0]\n";
    };
    my $err = sub {
	&$warn;
	$ok = 0;
    };

    if (my @l = grep { is_empty_array_ref(lang2keyboards($_)) } lang::list()) {
	$warn->("no keyboard for langs " . join(" ", @l));
    }
    foreach my $lang (lang::list()) {
	my $l = lang2keyboards($lang);
	foreach (@$l) {
	    0 <= $_->[1] && $_->[1] <= 100 or $err->("invalid value $_->[1] in $lang2keyboard{$lang} for $lang in \%lang2keyboard keyboard.pm");
	    $keyboards{$_->[0]} or $err->("invalid keyboard $_->[0] in $lang2keyboard{$lang} for $lang in \%lang2keyboard keyboard.pm");
	}
    }
    /SKIP/ || $keyboards{$_} or $err->("invalid keyboard $_ in \@usb2keyboard keyboard.pm") foreach @usb2keyboard;
    $usb2keyboard[0x21] eq 'us' or $err->("\@usb2keyboard is badly modified, 0x21 is not us keyboard");

    my @xkb_groups = map { if_(/grp:(\S+)/, $1) } cat_('/usr/lib/X11/xkb/rules/xfree86.lst');
    $err->("invalid xkb group toggle '$_' in \%grp_toggles") foreach difference2([ keys %grp_toggles ], \@xkb_groups);
    $warn->("unused xkb group toggle '$_'") foreach grep { !/switch/ } difference2(\@xkb_groups, [ keys %grp_toggles ]);

    my @xkb_layouts = (#- (map { (split)[0] } grep { /^! layout/ .. /^\s*$/ } cat_('/usr/lib/X11/xkb/rules/xfree86.lst')),
		       all('/usr/lib/X11/xkb/symbols'),
		       (map { (split)[2] } cat_('/usr/lib/X11/xkb/symbols.dir')));
    $err->("invalid xkb layout $_") foreach difference2([ map { keyboard2xkb($_) } keyboards() ], \@xkb_layouts);

    loadkeys_files($err);

    exit($ok ? 0 : 1);
}

#-######################################################################################
#- Wonderful perl :(
#-######################################################################################
1;
e{c4EwyJpfTy3]<͑JgA)Y>. qIԍ˅[ptKKLixxz/Bgoܯ-Td,p`س<0߇fzLR_&(g~I6ApFJwmfO9ĖECD>;Woxr:KFO7)5uL^|3 \rLk5#~~-[qzJ/4nmgT6;WE.  FOFQ 2󐻨ת&Obו`_o5?إJ"M^I_K}!1%T$Vq]*wSU4z{'N~&%tL\U5D蟉3Gn7p?^g&G(;r9xwn.b|F)1~]]Ctk[R8іPүG#hAEah)f^nվZBynKV`ւBd: :}*EjηJ5kIU E`4BHӞ1+`Bj{m1.]8*K *{gG#NG FͶ,}f9@Nq@vuL,oi3M:nmIe?"7)Kbmn^dų,~4>D&Z8c^0^$d$i9UO.OU>/:6圫*}!~bR'>y6xkarݡs鞱.}?/܀-zXq&xr.K?X_RIW'ݕ%%|s~m9\}Zo1E͕_v9j-bg6[; 'lF#/nl,I%l(OL 77= 趄CV? vU1_d$;w|6r.cO#MqZO Λ?~Tv/~ t9uEϿqJLۙx&aRwmR{rfs5Eh|4WrmHE?jlꛒ8C_d[S /GLփ[g."c@: z㼌t.7{*/Ga;8g}1Ζ/Z+Uw+Ovc9TW[/'ʋVu)H䩹#q;8_m,aLZU3u/3_F??wt|3w>m[g[OZs6f 1]>s1BHwty}3)شHГ{gM'RDDuפha<-m l>Lpr 0qI8jN=4<P* Ϙ铓 !Ÿ+.[Z4$]\@GLG]sV"S7łBh}Bz-ũfsի6-mct#[^yM5Eɡ1u;klI?LRf%mx>;.z1<,jr804 3^LFE0' ݜeIįT=ֈ9AǪ Ar?K6'͞(ϗRYxN/ɛkqw}-氵^lB1ܻcZҷax5.^7 W;PJ)q#0@ZV FGjc6S%&7|CnґЧd$5 &1v~nk'ۆy]DuۤvYq9 l2<a=R@,"ĩ$0+ޣ{/Pa̯'nЋvӈT:}}|9\ߩ^9(bqԌoeyJ{!6Wl_Mc%8kz8tj4e6 IJڐh~&F;]ھuš{V>T@aI!+Ɏ?ON`e%$kg򌇁Gp)g3R`&yNel{V:$Jl,(2mӘßWN?VjXAj=iZgTДR=T+é/[=̤ڲZw!%՟3 èEAa~*]ͼR(k$"m3УnͲ.yC|#@)bKT\kDE-J?(YL\E[zP}rH3r2 9(v+(< \ǰ"l ;%jWW/S4ԇɀȃ]T8/*C,f[k2N"h9rp#. 8_//=sҝNpk8ԏ.D;AIhDkIw oZX+0382[wJΜEFYκs4溷>"xw,jr?Qcr6}"i/Κ2Ε%j%3 M`oHQL:}iܠCgOB{67hb!Q'M)8[A3exrmFW j#"+9u srSuw,£}v5 7EZ';G[8όt#+HOSkEҘgcwZ5;"b a%lk6LWz";IˊBY~mpܕlK!$ k ݷaX6ʝlW0>$8p#/ܷ.ٛzhϸ|(CgHmߝ'HM}?bj' #KOB}f`9xrϠWf=^!+T5@~WIqd B7ihWJ9Z**s0ey&< 6 5=yrUl^=)j\jb$Z6"ſ kpU;3[瞊#JҕM CȊۜ959j[['&D=H?gHwbiQ꽓zP5eEG,nwn,d1]m⦢JQ_tvbY ː'P#=V-1&!=:f/~4p0-Dٺ̬CDROLs΍|cޥ}1mUb+;UU+WPBCM(}A㇟ԋp>OYL:i4 ?yg:mSZgE =)ybjpbrҭ.=Z BdW0%T?D5z]8lQtB.P`ZHHEMIgwh<-V{x%:v2GE}C,[}zc0;,F}9Xʹ3 bO259V.koi5^6M!!QLX'0I!JZaq]J/J`4BQL lgݛqEru"u>FhȰ+Z׏5nMx`ju|5=UUnJ,i%U쎾m|5{\)\[9ԴF 羛/d wtt ``>K&zoҾGHprPdW#`6EӉU+6snPު[Z+.~/T o&nanJeenx=I{b*(n̟1Ld}T2Hhw4G#y^Ȩosl-oMz|GSrk@%DUt?H &K*pxaE'x."sS[}l-؛ew G1u{S4ς闇NҺ ;ȍ3_Kw41]|| \eH5G̵CO/Q>ؒjmM]j2.?M"A+/H1,B$}aoS?Ȟ}nrUf Qa~p^1 <bD(a5 3{7FC"b0fI[0\"_X=ez3k = kNK0yA-3W70Ts{v|+гQm|(nu递2FfSG>Zٳ8Qwn}Mc`fպJ$!EzĄҫ^Vh a4݁ {v2Z|X5ٳ0$ 5}w Q^ uVPFd#`PHJO*!3Ώ.elQ׾bϝAzJDϬ{Ȁ?#td!cmy5`Fơb ŏg\>FTQ' ;uA_:[L߂_oG|%>99qڼsB]Iܢtdv4Sٱ/aq輖-|t2)k| uV 9RGK1] '+!ŌvX{_(:_v ]0,_2zyt\}Fzsr:8/* ⬂.; s [J5F[?&PUvCg_S{hϨ+fg"[ NrXɬ-q^މr=R+;yeЫT EYZU/'*@o+T4nXږ:8=<a9Z ց~fMcM8| Q`FP#V'5Ac Χ .슇O1O_.a}QbX9$"/>ɳHKWWttgCGAƄ*Y}SKO*Dmgj'yx>VȴGN@ҦY(ݵmR8ah5uyw p"O=  RG6;[)ADC6#w%hmդ`Y|avG5gYFϺ;G: ٬ 7yH|3ntdU'~¤y|L3~>ZAP@,cCjP0a"![=Ͱb|g&UJ%1y eCeY҆])^(cyy߿6TjfcԄ䏑)}3`?-CAW-%˷{;^T}riԜ˳JI 4|_d_O`]+|SWqLmp@Џbkk|]sGl]SWNc-߮UYy 괫VlX];ip [51xi|hc;RZddOL[ϻؕX#~ʐ2,~2C N`O=!Iߴk9~vEfDm{ŒjcX S tzx˚\g-bRLg$r Ħ|x P1#%3&{1N@J-GngCJ4TG>ڨ^2U)ި߬rK[sۃZeFZ.p$hIF=2'J44h(_ͯ3Y0c.3'ýcjg%Xm㯑.?߳YdlFZOcƺRϩ_|:IGYtIucEPZm ~\^ȼoOr*a"Me]TmZf-k?n&0qम.v l;#.`EH ft$o=U$ɚ1r!ƊZlǸv[dH'3l":mhxRZtGyT`U"q&R}86^ܮr@f^ܼ ZȲo\c=N߾O vf]TAEY_r gedt:i] q0wiv(燎nJ@%Ѥ"%To/x7R{(ݽXnCqߜU9zyX@"G30Su7Z&uWSRX000Y^ RZbápZrY~p&ԑ@SzgwO(al7mygM\?ܳGT51IΖӎաp=Pһ+,NS&"8 .t`?6Fe8< ֛M]y̶|_D5VPbttvI8ei "-;K\!)ZkW5Ԏ6Q,/@| <yHKa-M[(Ty,WW̕Q/E/M!GۃTKW͵i8e_hs)icy4Uzu 땏EƫZ7v.n&Al'',BX Q!Y̽*0ȦLGBO1clW;糏o}`+'֝:j{h:p档 <ua_ >Ϝ_YQ_/>xj~+/3#0)*hP^2EUA(WGJDy#VvGplϬx{K bYOe\eg\C*RGaۺPwyB2^cvS i.ZF鶴Z}b A-wMeǓgi=;fh؇oV&=E\9W&/u_<53R j;wn(AeX: y!7d㳺Y:tg>*c'q啦!r;Fɲ,C^1Uy5oG 9/㨽rk5YB߬垺},n[n<9K}yc0u]9C% |sagrP6R/U 2Jy7ˌbx.nڸx׼.;u:h&x⤔sR#NڋH:j,9jzalFoP3ճwe>_ZQjk|n)t3!pts*σ#S ϸ `**6WM)kb[addbܪVb 6yLVyNqDR";@w­`dmiۼ7tsj[(7vcG|f[7+\_)Hh͍3h3L oæۯ"UX7_N·+)*Oj뇇s?ԑ4^(cZQ ߦ P^L^:?M^ki|p_{(eQx%HQ "$%`QAAAd$Ka9s!{}Ϲg{Zo\~tWuWUWUWw1[%&Ppu4Ŏe3 lsZǥBLLȯwr5U^ޘu($Owę9AqqL y+-!DPVV_DA𨾱<8I1c2xTDͼ|cO!뤠pBnDUp^Lor!6"rh[xNBFpd'7Ն/y!ag˞@J75jQA:g5Mc—TpT7ct >̠& Z5#opj1#C =YPtjf3CѺavvw}.xsFzyzcv?jVs^N+?}kb"+cylLS<+T:lդwOC{Ɯ uyM&W緩wQ7.!|A1~F%PLc=efQW ;cbQ\b2YIUD)(;Xf0zOd4-MgtwEJLJ+>j9aNcITd ~x />'.pu0phͯ'хލ@m1=cZ+9DɩƖ+j]ˀ׫}~.u}y^ڈ$MH|ܧOcaPG g$Tq֘ZMf_W57]ey8?o:g~PE.gu!F W܏zBeۣ.ÿdSTTDŽaK)$k!Um8!(w<ླ!gAϑI$IE)Ѷ"bPLj1hjv ^ ҂6 zGUh޵!MEn ^b親?3xjUw}tDӪI=h4dK 3Q />?!D);4)nYzҨE O<AZᦝӛgppee60(C.+ֻbUпSw0%bu'tGDEoHAZFoEvY|+Vd̑Hs:>Rsj=Sс뻨Awo1{TOi.Hp"dב+ӫ :)Q2X}^!V;D7$Kwϭ.ilur#O-&lg3mZL$[Ĩ e0pi5/+ Xuoc:_4Ak0yoOك%u̹'z@4ɵN~625m*8FϷ?1Ѽy)< I[usL,^]AϴI94|$o%L}j X JG˷C_w٪*װ:'PU5SqQi aQ]I/:D:Z^D :KK2̻1SvQ'j"/h,8"!g$˲rFwe)*uW+ipL_F㽭u%=rQf`67钂LLdNfWRjj0lv3qu,f,8K` tR {OgTQw鴋FPOyDOZ#2Ji(7o3{]RBaϒ)y3 QG&rOiP弱;xSlnje[ҫ,Ss0@ٗshwQugUѧ> /?h%vtsȑC蓠⋺OݻpQIjQjA~h2(Z3dL/+W͖JbJ^X L]XOoY?`*lYIDIJ߆W6=|2nilcT~(ȱv&Sybe;B:onm6q?.XI7ß< 'd#? bl!)aP9rL<Ò pSk{1?[eXUInQVl=H^io@|lHAkH%_-96NsEPOA=89hjm EUrvs_5S*i/G1(nw8kgs9eBq,5G2OZPVׁx/NbqSL0ʾQZ/oyvqQЍرN5y/9>-Hƙnৗwk%G7-1A6ʰbCf6eNvێn2SCʊ1dμGo6GŇzw0ѽTTf-+SRxVr0m?gpMj:8Bf3lLI)b;!tm!b7߇MX#n&;iL-`n61*XaqY|¿t'uU_Z25T_բ#x:H~op! A`fltkO@ZX>9ˮDVc==8bNƵ*o٥H>1_{dX|mM oMثjޢGP \ͷ, -KBUedYx؁i] c$0owݮZ4g0qu-^'+cE&o\ Ú &'*ΣɌL:T]-$?y~Dϟxlc4۳;Ip֖l;a ,0T9 0:vV#c;Z[(ګBNQrZ7rB~k&s3`@Q̜d0o+-8/6Og?K2^Xw{>{UZ^]r1{B-8ߊL[m_8X$v0v?ASFI7ZUڳ ϰG25 mez^qj9Зs=f0!5̳X'^.) %|IoWZŐ4詀3W3zd%)hGJ+`l/Da~bٴ5 ,s ߹]ynitU;!oofK"c/Z?9Wsѳ!NةӁo?p5e¥rdIޤax˜RAPK'!K~?x]6 :(RԔɑ*>)zw]D$aqO*aWзm Ow?ߋ A+I#/._$nX|lFS)HE/k%zZyBQ#pKyyi>k6kB6#H${}?nxwz*te<B&s&1Q(q #;s <ύ_zpϕf Pq2U|˦by4^zVI3;0k;LU¦Bk(ë'Wp+}Ҍ>|X$e)#b_wWhꉳ͚ڥ0!^~돾'`n_o/h;mC )Zw6G?fs.ppNtHnVI}>== o&8^}-ʿeFa:v㤷tzqU}0xb]C"ȴCzWB!vuBʜnT]}럯^SBsa)4j[Y[W/nrg(G\kj,ՀV'7GId0b+Bvc?yqs|4EOəR9Mm3o\N/{69&\gogHM!_&zvp'G U ZGgxhB]ӱ71o໑OE= D.('5j60[f;Ϊ\087g leo>V~?:1 SgR<.1@_dcRA,5T\8l6ƾh_U=␼|09͕XYّ=7 !˨ ={ydܴKѷ /x/qk ]FI>}qK 6UxfpsgG <4>;*~Gbfȭ<䀧7_~:I$~|~4;(gվYFJ.'B< Ur}볤跍n 0$/?ڔ   OAJ.͆*$jJ:|;ا"H4q1mqKz 7A1.T=r_3V T6 \|MNG )s^R9>oeIήE =-N )k>Bj${<6$roO竸!/"|C$.4:ъ5u(?ΜLޔ .8ݑ)p!Xïvl&<V3f+@qv4[Uʶ5V{Ϗb_X![]r6|<2_TtJ(n [F^IRwЬjvy8mWl\&>iqp8EyzjB4  ?IAA|]:r+JDN:uCF(H0H ᔽ)ch9iu\ks$~Cc[܊%ZFJY}dd5zͩ-`BFO[jƘV͠/j.,JJⲧ^ߓ5ҴÑ5ٗJ|Ld|r)S V(wY1dU&$D?jQ}3ljo[iy4 }LyX]9&5X|]kA CN]]DOe#yw+ pʬ`ɮ-UU2@mHZq$9Q5%|mhI6Yuxjݸ dvƲ#$nmgG!~|sT L#ql=xA9`*»9۵258`g"6fÈ'| l[}L܋JNmi =EOu|gps$ٟ#QV]PFi]o+!Q%:i+T7U)R%į^+z(/VUFˇGo}ӳ! ֣]Mtrl ͳF>P~s~L޴Qic]}}u!\2)W +sYK ӥ.x97o6z (=9w`+-$A<;]0.-kaEjE'~zk`#&}wWJW)!m;Ӡ3vC\a+TNznH٨EYpq l⣴u3Y9iI% 8|/ӝ 1JHGx"IL3Jʭz& zڌՆ%F,&Fz,#,{%6?Sߩz\VRVtO݁g}woKmEl9{]ǕӮS#]2ZLQC9@J}Go%hxty7He,fQsX(e JX 3 _ r$<1v}7y>z[m!7Тt᤽S>4y5 "_LJ.=8H3Uvl vS-0Ja1bS͈n#gE07u-lP~~oՅ18<ʞ`nn&:=H{P9QDw Ly}<mnO%|K,xqg,EC:m01#%Bٱ/%fʑnNd0-t},^̴]-Էߜ\2ʽ5A8= 1- !Lay иFafj&RI{ȤӉa2g;-k<[yUu4euBa_iqOÝy\W0Q'5ƠxL}Ǽbqt $t.7U}YFXds/hd@BQ5B0hlculre(C"OgZ6O%#ry@-0MO|fC~&5:x15\a/n#`g9aܾ6-ZQce-o4uVƘ۔v&I9dHڗ&yKAL&̜ 7\pÒ3&6É`5h|<'װ3_]muۉ!s *È֕ǹ&ȜVcIN b9L"#ᑆކq3p0`<-%GWϜ -K'R}5M3g.tk`a]o|yInؠ86gdP"9-P?nɊY6MU΄[ s䔥z6Dj[=XX ͯg#薴nlne|^Ne*"ƚ_ʊT|0QuAj!j7ɮH]:&z?+!/CN*=Ə' !,DB SϤNH=%]a f<:^s}&yR {/kp=n:<7.[ǣ!D6rscq--Ip;kX 43)wޏtZlRuـԪ4ֻ<?,Oוߣ`y h lHK2_(X ~uzKd{lv,eFS3J+ÿ1,䌔߀T&N?Z'KB`IJ`)-Wg rv!ɌZ8a}),&g̛Qt"alaJ9A&IK"^cɌ}\ש;pЊ9jl1'PmO -{.JI2HFusGII,gY^m*=,4H`~Lp}1D#=Re+e[,d`s0QaQѮÜ;'4Z/zzYF }_p:ņSwUlA'=>? _6KxfvB`Ү+ꤰeyl*j/92_#.r&)SS8ai"IwSBR>Ir~eyYo'QFYWnM2DTm_).R23+Efzy6T, `aX.X)Qe*RmPKoMF;Ǹj?0SPVbJܒ>CwvLۢ3$T k4+&_"U0͓/Gr>rw%J}3*YVgi+:er]U_e]Y{5ttUg^5 @]s|.nIFQMEAFfǻTi)N]V)3ͺ$yRylk ڔJ^6l,w( c]cj;&[ {ʝ,) ˜lUiLwEJ[VEnWMXeQw9O<8EKJK&2Нǫdΰ1oi^ tܲS@gvp]=֙7O/?RD }C ڙ8w'pGGϩܽzÝa{Wp+?=^BgG"x889MiX^I$^=8]Nhb@5PNPkLntIn\TO֢+źT٨:4oyGp%\cNUlv])y_:Fbm5U\2lZ- ],c:W{Y>Bm)#vEfV!uv+8L9Qp?5YFzLummLe%ddi [`"ͣ>rc-P8MzjAr;mDr%5"9·R6݆榝xхwX,G JBVA6ڊ}r4Eyc@@u,~s93c(7PZӥJnn '(00b%lྕR 0\Llyюo^D5iϦ%!tE$; ПønE~zL*ث{˿Fv Gel`OF`3c_X]"TK?=HKݩT~*8w\^G2>ˠey\ҙ5M{J8JCb'hqʮbgx2$0gR.,I "9 ,ކB> D{;S6˲~AyIaws5t7m'Qo MdYYH%nʢnrHvIHN ~-@c($WLVi3R#PsSmgQb5þR6l3ٔ<%vÝ.o7\tYd6nd kꮱ}iH B"15*㻊Fwfg Suhys`jvIsyAkm+Gb6 p"XGxq,瑵metJ fS]沝/yǕӜ0L2.K.R v祡 /E5í]]"0 )s3I+/(P4Ih6I%m)?Cn;K7 r0]N=>&s p-!Ad"14>b5O^r4{سo%i~ ԨRV)Sz1 \[yMsdoKF6a0b9K1?~Z.C]Ab1|[ oOs@?ިa}p[MYpE&M]#e]/&?]L+l(sp/r\'q6< f$vCS~ ʱ1 dӜ+nLu7cٌSxf0ipa PqvrJB<NkѶh'+E&ĺnuf_NoXk1V)^Mr/,8ViOr"f?Pc)3NuǣLֆ}YPc#JlpE1:R.<6w.RpZ579{&l`JA\v}0鑦9ӺTj577'_0yxZu,Lr$ͮ9UqyUmQYWnщE_11 xs 5I2a0HVrΘ&D<90zK|RJmn1kƒQ{CTn ݫ(43=M42 p  ]VayG8e}#d"VØ=nҀFGluB.|R;b[R{`ݕv1ebxR>$ޕvqp $BէU+QjSQR)u[l~:/oW"S I +3F7 (h<7K4aTBܺl]vT71m9ahfvnH'Y3,Bɛ`Z$;CWBSIgqI}BL[kLGB-s h e9Ŭ;N$(ߴ ۠ȹ/6Lq7((1v+JH6 si\{Z+ ƦA FIJ=\A>x<͟B޸xK<,fwfCwv:{*x]2::S _S8`K5azg9ıywT †d0"<]gǖL5=ae!2A7c.a'- xkSq[ˮ!Jq F0ӿ ɍ<(H,UcN~h~xiyrkI].9hҧN\kK7>ϣ8Q0wAC;s.^;ۑduk4t  ]tpϰ=K[cVdfWT¸rBEI"=:No:9U1[׳ IT)& KR$ɄTO! 2pncV\BHNu~X-8(@|+S/Ys||to< `E=̍ڤE҆urRS~k,, n(F)d8| o8ՠHmwX?.ԩxX 5J?) u`EȊ\RA9u?鷻H␻Cj]3ʐuy0V21g#^[̙OtSyʑVKwpDloF} q4b6+;Stj]p-X i'Dgrd)ƚw 鹟R8.UN$ae8Z؞i9b s;%of poh߰"ՀQǽiq2M4)pxz qjW_-ܣޔtJnx.4I $@qF`LxS)'R.bHoCVpN 8 wٟ F nޤ=7Oxo[b77'_؂[)]xj'`w4׼(n9n +{2H&JUr^Hm!E݋w9y=9vqQ3UWw^<2(Jyǖ 9jۗ.PH/X9U.R3!i .1%𵔾 h GΦ@yN D@Q{+c*=&~,07v+a 6ڝ:w;9ZZ ҜӜIҡ㾯 vz,S+0 3$\֖z|AHRًy$SdxSܲ,Ru#IphZFH7S)ʋoyynMcH%W͜GGyi?VZ.Nȵ&ωeTK2f|a-&Jᇧ_ik]ڎ]/B;=rAa}')`tBGd8n\\SF׈>RNQ\a..Ss]T/̤O1 Qu;eMzu2ґb$cx.n e]!t˱5u{[]X abKڮGNntM6#:-}[MdDzyB8SX{,LN?mɊ"WW-2d]uP`ɂ0 0s )VM|,8~&ڎs(9ͲIx\?^jbaGn{vsUa&ḬAS2>}|!kv0V-lN鿔6'|*պ2,f~tG̥B >Ҿ-dd;N]54/uJv%q Z':a6;džT.m<1xT=_+J5.@_<f[6N\0B2ư]CBK\Ə[c O!½6]v2<:_dr?oIvMnUā1 Ǜ2Rw(=<ѱGЋfګMf'q '_ Io`>y7oļ~,Dӝ$dBoUHCA/o?3.`kHe9ɓw *mUP)^KW~ "U+3KW~ CQVV\tn3I] Fe~6w>L+wQ-,pNVM Ƕ˷]5#cw^* حDno{M #;]+M671]|Ⱥ] +k D2R'.Uza+ i4 `fCp>zR~[xy\)1qxc_dӻ$R#)e5 ZlWnF]K.DUSD-{bkRy#Y۹ JKkt~g m}D}Sop#߈j3 l`CxecoÅ1JWSS2)[ ^ RҩOTi3?2swAk: R4u-%tTȕJ+e2>Il4^]S'bp\}]Sَn5 bY&\Tyaeɿ4\uMyT\}O@@$$|J6ðDe,0˗"}a<8|B 9{eI|r> dKJt #|Z;(rJ;8]I\zyȾl ~ 0{k"bۭQw/|DXU!B޻"+l-肂Cs(_s:q m =]XKzUr 9O' Tvsm5Mu$i{TYs?ȦZ,.-2Zd9fˎ*Ӛ9|q 3,mɝAխB<0[%:\PHKJȧPsťH3cqʥYAȆmx=ɻƩʆ0le/]I Ѐ%p,' |-T^+C kHPL8lxA+y"{6cVΝe#5_= TorD2]X1r9Qrn2^-bޖlнS.jfBBB7_G#O*ͯ0na+ F'9LK x#V[ھܽ|bmQhxYiR^dKVs&yFJ U{ҺȖB4\V< I"jxm&?ܩڕGYeuLVe'bw[xC :0SXҿXpb;.%_#:6"!|VֿT}|uϜ,(9B VQ;hDO#x_ݨ9p0Kv~RgG u W'pNOonP>Tgf:͒E<5ge$i1\g;/7H]g^.U_\~Vܸ ;+x={PM@m3گ[Iy|~P.Gjt. ,'6ږGS:S[բt#Vx'BڢB6ϲLPlƍSFc!We+<0mlxLi龀% {:b Ϭ 8dt,0l6>rL񓰻`lJ_R3h1\i,))q[;:VR>w|}hN9Ƚu"Ɋˀok^w*0JX9 T>64#@bgY|^{q7KN/!Oz_`s% ,s~93T=IdnSt{,h SL<_iJ3P CB0o̤3jP kMw2ݦ3C"4 I]>C_asjogSPoiPN`pطȆ|/͛補3QoƠp1 >'Q=E,elXfзZ*C=:܅{㫀[G=_X+3O^y)Ƃc2 Oeo)o)iqډ}lMt"5PBߔ_-ZMvŶ/b1$eXwqKGgG.= R}?D:*F=BGB).}@9GҒII+ uT9q51Ck8GOE_C;9ʛC_}ڐ68>X!?!iY*hpT e;`Ig˟]>Xdg6ߗrϞձgiΫoF8VGao*+oL̼*dv**Y(JׄGvv?.,(4ܿaȑ T^}/ghz.gm䐎[qm3{<$r..R W1{0z l΂pZ%k+ES$_#x s7Lމ +>yܿWOLrM*/Z. Y ȉ`͚A7-;Evy0hl&`.eȰ{_uo<E KВ/gԛM~'\m8[q_Z*=iז!e϶2٫1@ eۮ7t}Ҁ|?$M6OMcckookCj ?ѷ1s`daeybcΣDCCGO]EMYa1l~dcxpr/N.D' ' "?![5Jk0?3ɇFѤ =sDRјZ:6&z@M[+ x1 ='D @ ,L@:֮ '7:#τ@:6& k,CM8Fo`h2п3%DZDbו i9̢gz-:C7X !5ï0@6vֺ C#;k]w 6::d ?bhn u@z:& #,R,TRt, ׾O7?iM ֈJuLb5& R@z`  B%l*,~hbaB&`"x 1l#j6k"( wf:\?Pb6 Lw;y7DX;ҹ" l4R 6#81v4r@|CA ll&9nY.A@ ῄQxp-stA$5[DfpkIFX֯iz u b@}Z j-8k0D!p<ma06012F ỀXM@Y#F 'hw4 z+iB;?_O4@ԱAY!8DW `C&DS^;N',OYgб6fYgmbi1q2f?6ω:}o_;x r<ؙ_wqϯ-kbpNW.PXk|L@w> BŠ"RR lր{> `29?%*Z߫>g&6:G/DDTE9?WQ^:҄OLdR 17 ׵;MvLhoC~E5 GnU/Jr&? a`?0!3[m*η嵊V5Ō* |66&z?g^&`k?((Bx7k= bc_q>Q:Z/@`&:uBr. 9e2 FP ѩ|oB '"_n~?MtF572@GGԵEt; :KG&wmclѳ15 L, ka/N໊)_} O݈`P˜['R#A`[]s05 Z_ڬcnp@_Mo J0 5@|O63i_h$YX#h.?KWb߈d#yrSB-G}#d`:N://?dx|d ?+Fa1P0!Bv[=WJ_b–&z?؏gZ7Մ>O5dhNcɨ*kccb~ AAb 64͉I@t&ӿY3â,wJ@pL¯ ?il $Oϝ P]cal'~ù6?0a&uyhh6jү vـv&ήZ nkk4D>10@DVw~q14'B~/Z;wX_++(G4`a/os5z5 +-.%q@pu A8({ $d_\MD(ȷQQPPP`@G }HD |@EJ1vvv ZnV~&6vBn #:!&&!+%)%z-ҍ87pn\5H7H7?w\n @BFFGGEEvpmd{(, 'zLJ:sb~_?3E]HHXA5G= ע9TBQ1q‡_EH $8H8!L <|HN|DUnQ3 Yl'Mx r3M^Wȴ\X^%`W u _H-^d^Oyش0'Z8q݊ 9RMy|m@fu[l:wɣ训/FS1\vx"[4|2r J |u֔޾5:_}~t}Npj1?uOHcfI!ϭz 2y9o],0}cI}@R|ɢc|}>'1q37zbM97n7 ܼ*72??k%E22w?:<(QB zQH'v<#Ht 8uZu@PSVkSj4SDɘѽг|MB@8U‘(Dc}.K ~_'BgZM*Wq,`bMj:4] Cr}c3v;V츇8"15uZͭryS,|鸦m<]<|T/_'KX'[Y(}NH;])+hݐL2cV ,WiܠK'/uݼhpEQ¨t5]otn|-| },l|HJH%a[Go) v_ɩ3vB8 g1H97ά\B#rNv&ŧEᡀST 9wBZ}u3r]EKM˹/ CHY@fժ0xkn" 9גnXiU( _-Wuj&60 lgcD Z҉RXƸ.廓G_ljZ 'Q3cQRXC_[S!=*& DirjY*/Ta057e#ꀺخQiGPMx8Qflni@/aT2)J'SMܭz|hj '09Aplja9/B=}'~Ƙ (wI _,DF %TpWN@PoW]5 s=qr W9ឮ\{-}rHWjlsz ֛t9UpoHao_n:zXr)ኇpN{r3w5r|$a=BhG]Uֽi4N]-&'g Qp=J189 bkMO:-D w ;޺c`*'tv4YfV?qUD7ž؛iFtmK籦/ P3ѮmЮ[ }Ŋ|JSIY%ڏ)L&o1du-sI$gr _aTDVWy^ƅ<'j^neeb}>GqL:b>Ď5Hx=}4 w<,o ~+ܬ2V4NNO[3f6G$#Ϋ4M8v80b#qlT}}+Iy֍.+3oyUK`[̢ ($K/v.rd5\2r;JDٻ5>+~NB$UW'q]@9-}}3A`X#yYì:+@+zt @ٕ%z~ ϠrJ|;WxҹW5Wwfdus]NX}t 9pa0~B '#::f'aC#F{qFi}swM2e4Ыԧ~ oܣ4Xwv&I! jӭ3f4DY@:>&mxN__+YO󙱭د=]=42Zx*T6і倉`iJ4qڻHC<Ԣz:JQvf1c2Yn TjX28KkuvW%ҙWW)LzVi]}`dgeͶ|Z-{.GLL` SdHG##X)&AR?9΂9-C :Ph;׶rCI 1r{Vvx衈ϨfV8 rbJlOϷLŚюUv?FbRn>d.ptc!.t QDu>ÀE J&R0axF  ^zSN }lݦlhL#[lWƁ 9q/͘c#6܄Pbn.SE90i 3"_ՎP`iRJN(R -e<2p|5>IP̡$@Jy҉В H`&f\>Gh\Q5n))[F;\+tM uIrfJoЃ!TR\̤\`٧L*(蚅8]YIIOy&~%@(te~'(e>\a郇a2{IWIɹFf o S=>[l:Hz/yXysM/=)7Z݈ ˱RF._Э#b!ۅh빽n ;A |x ;0 ORⶱ:"lAЅʴ'+1OvXegĴ*kD4N$oH j}]pQtsݞWJYre UHV -ӝ~dk:UH~[z?u1Rv6WD.QYB4V[(eߖ~J: Lm-c{P/]]\Ba/Rvulo>> x-xWrB*{t$=HݪA2K4sMldK,K"YŻG-+cj L]EґΥXf'={uCâ2>r4U5*}([ԤcwVlJ^sg@3vFX2̡#{=u7Jь躮% [p$w4‹s2EFÛhie(*#QSH=Xy'KhhOR<Bf<|t Śq&>)&mD3_(NHX&V[Fp)EɊecª|KJKU秢0}HLc0Ry3 /=D"%76gbpdRX"YUnrոٯQX_;ܰ(gK%SY)KDkEq[#>)k9(fܖ_R'ɇdu!/g<߲~)[RWgъk"vXD=߯%{ZծVpljp˳g`!f]9 RP1qz.iCzpB| ,Fop(oGXd: R=6e&`,GT 6J5ӻX<}F)(xvܟYOkVra GBKV#6x:5Pϲn <?ug4e[ZH?D7Ǥ\ tSF]r3VF^hܽH>y=_j4GY>D5aXiS13yw㶆ȭ|[ у,'끵'`gߘ'vo7Y *"BXS.$퓲rRi'WBC*Çns`De3$B{5DWW-yՁ]eRj̤q|H(R2i 'f"k3 |,`l@'V˸<,ΐv'}_O^^WzyMc:7Y JkӡZM!h,he(oNiMЧ^˄n~:I|nN@xJXf=o ?gɩa4bw{&Dy"7:RU{)|(9-"O+Tu3Nk9Zbl9uWٽaKȑ`^p?uuhEof] DO)A|/J%^:Wmҟk18 /ɽeKvs)9w͂ΫX"4ueU|9,6O~X*\+ ?_BK|nYU[Z֣Nȟ@")$IH'`y ߒ o5qe'mz)[˦f8/PC3rK j;Jo~0J%ΉNO :S28LbUv;[z{F$vfZU]8)5$c(:;\!܎W`N X)8Ɩ H>2q\Q|1<ݩQWspGFڤ`A9@1>Β&o%o!c.$EKM 9c'<[5ȧے^aȯ1'-:( ~1ڥ0q*;_IXl_Io!#.2i/O 2mct+@V靿>WCE-&\ kc>N8+@,J li\(Gj/vW~_^`A^n3YؓZHfv 2A]g*/4%9b > LNu8{9C"qMs+I2Kyぉ|;!ܝ^u֎ĻuTzI.ʕ@)WOC.E,Z _g<Z_ uߕRX <'E][)N[݀EgFؓ cZe u"pq·yoN>yx"SAOfo< h>ZYvjgfm4a5%=OOEv>r=$2$c4Ѳu-J};z;$ֵ{dҊjb)@h [ 7 ׀>Gi$ClՓXq[nrnl2>9b.fRsTpZ#&GEMdue:uڲ9x@::'gdg[.< ȭGqF|qAL7Էp}ß ajD_)^#!xK4o\gATl KaOʠD[al1AՅMoc?ِ_u j;rb(JPCF=v27Y}I )+RT^Ϣ#Fu*f8n-[Y %1N9GiGG.n4pY RU?6['JpAyCjYqSnq⦱nJr)O'̛sT2`Rf%3tBƐLożTOy *Cƣ"s+Zw-wFڙLO 7/,h_bmM%h8Smz֒C_10&tEEԎ\P8F?cJ` *⤺pG@Pٿ xHBJ'n엸Gy #|xlB1"*8!]ce)b<ȱK:Cw|o±N׈ܝKfxnŭ[AVg>_lWt6ģ2qV)"3fh˦wW[#a3'mR8dRރ'9-j]dc6!Vw^*ME/XtacY$\ƛlAU/?pJ 0?w [s'  nR4PXYJb)o.PƝNy cKbUq`Bh[!Kab)HjY#ǂԕgoӓ* )N- 7']8,L/O\>k@u|Gy# RyUĦ'55V:Q4[k"0V=f(/hU136WX .)Af_K` DU&cxf:'^U%E:0 ءi%rg8 ŔGC- dgQ5wܗsF۷Rav hܣ,[Vfi^){˵:Z{U$E,M3dYBWrl"}Y3Sb *o5eT:o O>##ǖGTibɴ)6tJMM|risoϪKR:غaaj=`xs'׮S7$)ycg(x6(+]03(^cxWD`QTJĖ؃j\*#l{·vF( Ѕ鋉КjѴX)Vh`-.AJ )Kq @p]{ֱ}s{#1Ι94§#=\U]MmG&ZOPIMcs}ŚT" &*|unh*^ֱGի`2cJM0x}ۨkѵM5CjݟtȗVp*A"(^|0ꄸYsKH<< ,/w"Þ0t}B >oe5эf//`U|薠.P0&a|@m? >Vc\00X;bӊ]_7!yk<&zz҆VLcPTu#pdT[VDnqt@X&w 1XyFv-2垫/6h|&ҞsW /]8$[)zڪU#vuj?d#b"=!1(215g>uuQvuRiv/<o@=4IS Nrf U9{e DGqO>}^ULv$Ԝ!Ssd#He%S|QuCLu+JxtWLmMbe Sm^-yD4sc1Y$ `5KF\l}#]q$~xz &!=G'LAs,mX*!MfMxtQt䯀d&l ?7⃎Խ4{|Ck$bݝ7g (3ޡ45"+u½cx8:gd`^z=_EsxI,Wb?0[}Ϲ|Wǁ/E>kqd2uTN*>!s3~V)&q֗.cz1W^M:۪׸};D,8~ jl:+fY6Y.>wJsj@Ijzd+'$[&.Dd7g<F'6ıd joYaȖ6 uS b^7*WuW*byi'D́볼ڶ;,EYvtvzx2A,7ѱeNjdr'ܮE roMbz'Jo6L4>uAip1Pkh)%gլ^Pեu3hoكwAzC˶`[JuF@p"g.v&=p@ Gom1N~3+:J1 "w H^LqVQvlirWȷ]ȒS\H~]܆^jA+`tXJj(.;6f!Q(Zަ޷0l,+!F#j\{ga_oӅ{%8{0CPx+iwx_8vP&~3rd*=j knP\-*0ys}{ﮤ:uo%HvHE`^- љKPmGIՖ!#eVs#1Oj.l 5ޝo`.q=~=sj|v>߲3=μ-F|D\sUF(CRM{$Rj~h7f7)iI0x*XJ)Ye%䠻ۏ3;!54-,˛6ⅲ"3qC|Esl.B [G2RIFO(g m}sWp-VZ۾j A|Mn*+\up(3/y>x5EC&6D:y:Ș%$)+W1jX%P y:!k%븯i=<AtWnP#P^U'H 1铊s *L̥wfW"Ě}c;֒Km[E͇,盱|4`8=ja/iхdků0w{gј+_ OIbŻmcܙLSmo6ȳpgPG~7^ ս:ۯHaU&?;뽩^VB)6szq=f[51M=vr @~T /D':o %hgvYϽޞ08t}xPi*YT?! E6Z9T9ߢ_gîAWs5cCa92j(g"HDyÎ}ơVW e# Qs+QŨf;@BѷM5P~%3+Y5i}2s:@Lx?Mp [;C\ 0"YQm_l|EY>Dl\WW"vkm:Jjt{:3+E@.JkSoy -n)͙֊k#Zs\7QPh,&ZHvstSYWS^v6,%k|;$5Do ܬ2;ӌ027Vܾ$#P2\?Jy_r߷m\6ߝ0vV N 6}C#;mFwN FP<; y<~n4zԎ3 #?gCWS#maUC6n]o٘4iF\ģ r/?hw)oD]{t+1Ns!{eu^O `d^|y*:pڕnސ](_+\J`&srjvDlj17sTꕜ:&)@r1ˊKay=G2tWKCGp<}}jǘzDEՍ 9MT78znsHq2*d Yq=ˀZD:A2'=XZw, 8Y/قf~NI/ŨK[ b0@ᘤuv,}g>{k&{2m<s(h|Ou`sT$IDթ>w-jeʼ 4dU[˧Ӿ@7aM-]/_! H +ZkXsJ[z~)U(F"#j{?0ty{u9^(F1^kjq>c/7qK |~fDYN#j}f]'2C.JڧU! = W*|2Y~k|_K]@[DGw]X@&upxtBOP:֯7O G'g Bz1>GJǗar9xT 0h&^n \QET'\ި,> ]@;g"{ټ{'V0^}M4O?"W9.B%z xKPl/!p$[l)țFVC6FzZC sb]#Ab^u!JO W>{ 503zx,ϼ 8:4і>$3.ލ?b_AfP  | F!&Xs0)H=6$E&jˊoL _uVnE4;~{R{IC/>#YM+DS,T8u(>'M~rLdǙ#BwUmg,dߟm;̴obzIaHA'+X\&\%UGd>_PVI7Ow1@?S7Kg\ut>n6Ywo܃X.:Ǝ,re}K lT$Wfɬ/lR="Q#j6,NV`<~j#0n{kWٛ.sb)dcBt\]1<zѽ'P; ky׽钶B*jk6FY|99jCZ}%] uLuʃϤky~(uKl_TԷ}9מ_=-]kʥP`dd$/>T%Ya .$7-^H#>A*8TҸaqLaY?Fد=]+M)prM\ܷq۳7GexWr'$f^9ՁO/"H~p|2E^礆NGnnNzC&R'tE"9|< A!#'޵]j {,P\ȸcW@L6޲|01hAJ/ZȠwMU<+}Ry5b >|qF艊pb*&tlw;nIr,Uť;@?n~j=uuWg0">09Li ޺3Ip#j"ޓrEGyyVDQ|zn-4{w[ɖoM4ELpgiZKg:bo@CX:NFP щI7<*8gJ4?bxMK86[$;:#P{ vbPt{Ng$^/e^W?i1+(PavmL88 (~R0xڋ. r%- `8.@?}W_f^#j@.? +Dԑ"ɐt>lEwçA:s]Dzkqܛ㙌zDbޗ2jocSZ_%% [wƀF$Is|ju("213㐋 7+g3hv{5ۢggwGOeA#u<$mͺı#} ^fϘIxev?1-ţjWY l#,YR߾:z)q e>3u-Z2Q-z$.TFSϿ\G:帊aeScxXw|L8OSBnz²F En iDQ9s)~o< }u}  hwf_V؅tۅ[Q*ɜ[W3_4Q^K<,TKCfLQ? S7hGl˨#S;L'>#F\ 4}T:Ō@WONj>Г!3vi r.E=31݄b{m1 -/!߳,7ڱ/뼧=u+|@Xo5d3j`TWQ*'1H(Ռ{c3H0A Lb uȁ#Ԑv L&;8R+E^j˥ ZM]GI- A+.p!x 2|B _[wx8[I$TՉHuxaCOчSjj`>iGGbӊ .8&?䋚Xm]27PJ< p ,"? K}e*mv秝3u/Zv2qWUhy9O (_ i6Bd|az!8ےrfDN8S*hDs<{nqFqrz,mnSv3N`-x>tE~ݕ 0$U} WhRWO>pڃAh߾~lO%ŒiYeE1Ӯ)DMߤBX%qET`ڒ_ҴY鞫*D;yuf݃Jqm/zf$.$GJF [\S 8W#Xf^;DuP <$kH.&9`R}kF1;y1h .?FYOT32cʖv@ Qi 6t kwsrBu %{J^nΚK{wα=WPk01ŎZ=c/%c|lL@*1 ]3Pt#Q=0sb[VW1a]}^}m#0ֈmADx"PlKz!"#d%ccX9ڈ? 8lHLh:,mӴX+minh.R(_̈́8?#s?s%K1EfGE$pDJQ{imsclupe 湱blꬦgC6K?Iv g6\K]vΔݽe|#gLztl2v ¡H ^bhHaqz"Zk5o5S) (d sjSbz7,膃" !-{ʶ1UN\.h,?MIge2W-$?Q G:ǂT9xOٛ׃:e:+[M+&'U*4yfWUg.{.@yO3ǿB>9=M$)ԑ ;R l+ImkӁpP4-E Pe]V40T]l ]`Ym7 oւ$d5G^ .Y F2Q5KA^m Yr嵝J8bڀg"ծu,10Xu.TTOlRGS4l"}lS?;w=ae t^ox*ҡZ#-w1mio QgWȫ[̎6&~l]5¯Yr3Ger6|޵8jۦaJ(Z21`do$f4 o&#jZF}8\(n#6LʶJk>chxG^tv0cA RK0d7QT%a޹ n[>׍FI8<= 6儃 iYzTގO5 sZx$?63[k^&2b8);ɀ<ӠdHhZ ]qHc)$HaN)'DFG̛CtCͩX gBݿ1ϳdoKmL@6W+KXG1VKN8Օ<-!aXo\T/Q\vr =/P,R Yj ^_q%y\6ёY*⟧>tXT9i7nHeN֫pnwZ}(lu+>J. $dYaVVh#ԗ,YnQ Kou*$1V.g5V9Y8`DL,O8"(0X0[__{ig~RvH<'rln஭y O_Q n 9j[a3+rhMᤲ;NU(m:\RwZU]1 gmJ sn)r=tK3xFéB_Ӟڼ]E3W`gogπ+ya ZF|U;f/2!2\VDg)w[ŎZ8.y[sd}q%j$%/3;ݰ}Nj_g.^(w/;^>wUO^*Ip- t[d7[t@**s+;ϮDv0ZeA>JzP$X BE-Hh*a"fk)QF݈ö6xэ|M"W _h^T?uUifʩY: ]Ej\?fw4+m„nM}]*ݵwR`wd.F 0c^"'}$qn^\[9.| ;IQ o'Td.p[s [$>^W8"Aoh2lmsi^?O;=!n#cs*v[]t$Ą5p׬š+j+s{翌Q uM׽`E>n68glTBb֢m"_ԔPr ӱhPr<#E 䌼uGC㱾2[+}95 +u#*?=9M#fr\gh+'qJ&R``$`#yGV$jLVаֿKO*qwsIBoPOfr"eV$Y{OU}r_f3L4HU GlD{Yc8z uW s^zP)T-i)'Ă+x|a߂Ff5xh~͈p(o뼼#REbr\ͤTB[0Rxfoz!pІFK擷-ZdnݧJ΂_eZ( 5 dZo __/'ԝ=W]슽4jY􃼍%iARdE&nidԳrO"_ls*_[ٙPFq]<4oA֡E7H %;>1K^v)~ҦbqTYǓǬm4-.jJ6i2p3:J ƃÛ gaĝ=SRLSXi99?(9L QћRBnjFվ03uwoKֈ,4 n"qmK`;A`NSʘ/?p.yGrey=^$I:|Jroz=qs%g47O.y=/}gz$;g?rË3k:im OIG3S&D#rcJ7;sڋ?:?0; T4DS)M/#C OՈD[m?C'tlr>?aRUlpWO 4MH$9&CK$PqѨvm;i{2.e>zXtkCGVNʮTb%ywe)Bi̷yh<߳/]$paqC+tfe Yc,ſv!) 'iK/ Y+AL\(Wz{7QRk񭬷٧F[!cPKLOwߎb5QUNJk~b#r` v ރ/چr#U28G^)O۬\Mja2{x2oSC *ܧtlqg@UboAl\r0f6^g2yPn@I +yO[G:pNT]W-:nLv`LW~zq'6%:9P>rzd!!#c>QðpDj7 ԖPka=uD5!-bGؐt19q8ų.~5*43ߚ2>1KޚL%Ϧ^QH}FQC{p>`)g{", "CZSyLW|x 9cIRw%\$ǴDK:x\+laXW$~YoېM#^G}-?&THr0X*,H0%`JĒi}]yݘJ+Fo)~i+CŃp᫮6a[>; v=4g).)<{yHg<퍈[JF,*t⫻tBp1X0 (Pݎڪyj)L?m fb$sbg>`{^2< j$jl!w?&٥"pYo ť:f2.S6,+1 Xtd1>X jg+F}Nm-[d<߃'gv ϶jm`G w5uPh@ Fy/V V#|nrp EaMcp?ZKهړEnMfzEMOo&t{uHw 0Ov5$;A ^6_| w\QEWn8Yuq|5~&۱"w&[3_?j_'1`WzVtLlˑNY`lXl6wd!ȓ]=6/ |M~؂Q ~Yϵmǵ8ݟXǕ0:ƯUB'I*v>zʳm쎔)&xA b"J0ĉnO|{K> i )JͲ# `Kdz9 Ƞ*j/*}d.m08a ˑߛW jv=,A6э,ϡB"Mn<ґwq>ݒ @ϥ@4XPc?-2Nr1j'Aۈڣ{sR5+'"Vyۍ,GrB31O[ZoT[(m#&M&\`G{Nkv@o@ 쎁L@<5J)xʽ|6<© )1%h~jڎhc][)(~7roMT*lQ.3 F=&} Q +NLsU)&YDQ-C!W+AgBrY@UV %#۫&\pW=u79uSh6gqc M:{O]:q [Y=5Kv ׳ă2Y/) "c'x"k_c"[y):J70E9HҦeSP R?D._ {PAwoSP&f ac֮j>B4$\pK^J[g=ih:s˥Tk~/< SY"saS 8R{p0;mf0^B-qߩp2^ї~lfhGiGHǥOkrڽϏOJzE-ݔX,T@Ӫӫ։ʻ<`r 9WH O{Ip}R?߻C7UͭDНC2BPmSpupdt^4yac{O6bSGI:Jv8e~K~\:ܦbJɛ̔!($XL W N ƵI;^շr.9V!aXiy'`tloX Ii腍2"0`[M%ն }ѐ 3ײ!Z)/TF-Vc;:&'BSAd-w667gIT&SMDhDD$ 'vIݗvW>9h)EF4g(]V;rx̓ak$f A͇4aOumJqUHW1{J=NLa޴f.@yKn DwY(0gЖ&}hQ{dƀ׃E%s"1P``lB-IvQK3De}]h/i{z'lmeTXdm.QCN得]aZs8]=dį2 {%m"Ne3iUPZbxQvKK[(t:i.$4xL t_,dnd#1[/j45$yf<+?{S;'٪$vU^("{Zh[ kP dz x Rكg鮵dYvet=pR ȉ֓) |"yc6DńI),R!lU:D9OjNx$em:4?姽5Vn%~U^aV]h 2@"PsJ1EfKpR=ixz=D!;t:_g3 xEC}>[ps`4%:Nr p ikp̠631`f0=b1*zٍY B:>;-l7?fl^<=YwRlᐸE.y{L~a`m^GE[GZJ7rݙtT<. HR戄MYĔxvV\!? .,ZZي̌e($Q:):RfKΈ UrݨZ\^'S`3\ H[<PCAݳc߶n*a8:&=MsmEZq½^ﺩ|d.>2f,3!ʃ؀w-F,ikzy-:#q  &N)3(zW0<ݎrH FnXxbzlpZ(D|&Lѥz26\EDthh@C9vΏH0ߊɒ "J"lrF6gIƵsھO)C4+kP8%Tܡ`93JPByeCh bZo씿4ԙ,3܈xkoiS{\ĴF*iÈ! jH95D+Ձ!j4m}9xJ̒HĪX9-{ِf4b)J5 Q&Y<]'1U=ޤp;dg|fi\Uhn#(idEp90o(@leqJ1 '$6A;JIVJ q en(P-I>7lDF[Z$U&A.,"W_NSLVHm9ѹZ>y-nrjzY͢vD6NҶTZ#}gRG 4,7c,e=>7.!' &".PݳiɔQwlɅNY#GxOGrW!׌dDQֆc6Su;ޫl3MԳ{͌n+ܽ=^̃m<4GSd}ڍu>QniŇ2իǚ-AiӒΦ p-&(~%|ڂLE]1D>uAoD믬5 wHR>`*tt )-e--#Z9 Gx٣ |BzP_{2?{=Nwo9_$vjazJPHq'"d }Ki-d ";L& #nA|.aYVlbWg< רj\Ƿ6Do~qe/ףp8ՆTk$lΠS}=llwp.v̵BuR};Xxd0q2mCEkZSb*rA~ɏ}tE pѶtLeW);,-ݓU|E9:|?{~~ vY O't%EU!4k&/({#lhpWc=x㴺ym,oźQτ,< pTu҃FEwBJϾxt!kq}Ojz9dAOdH\~2۳UNF[c:JD1GW 듏-c~uD"phaʭe[V.^;ʯ/I ~wl Q:b=kg% o0 T[ A>?!LB52_%o(yкN ;0 ԗ^onvG.vbK Ϊ%Kq4o֙n厂|k /^ y^)!W^۞BŁGA B eV9A\*%<9{k_IF5\  ?nk/m_Lbə?VOP0sJiUc7ܮSf/y*݋Qw3*d'1GM@q 3SGMBxRUdU;mqXɠV=qy:iF,ΛK"SVjqA@g)!m3!%Qq-,jX^J[DnOħZ͋E}'MhդHm+H,&%b72)[/~x# okv+ ih} ۭK2)56.">~XLI:;ZO> JYxS/:z7Dľq9u>y-PpE>D i)yk727]Rr8MsoF*h;Rn$PQ RT< 8x ^Abwl=;65 |κ(B/3_6`(LD,"H1σF E1/~H͍5(RxEHZB;\ Xnokpܫ9_DsNgHQS)'^hr7[Y=!-V5!`”$ k4ThqxS]8dOJv\Lg,nMFu( Pe$nM޽eZsN`5)d+jV d˲2FNGRh#4S֌k'Y\G"A ݅KcGK uUGį{>?/"3RgAivEkA`X#ˆ{r~Z55Dq^hGBڂՁ:U:֔%ƅv;ˍ6ŤQ@Q#/jQ_uq' &]<񾟝JSKMttep' 6vosP#QrOoInZzZLGꊯJOg-0!8I d2a_yyx-DiǪ󓽴A&HI砹7Co՚/ǭi+opoۧ`X\`xg߼XiP[!+ڦnSI ;F/&۔sFEV]fdT#ݵ_OU|5Ux nfNQ|*XfCPkXw+5,^3ޛ31Ϙef@˛!SmB"#J4kp3)b^ŤM 3`U:m #$m*-yzyT;+{o BNW5rPAGړ G72zQ:t0f!76{D#.M-|K9螬0RyL|wgVCR:W2g9^Ti d*BICKhuANSPF19 W=ÝPò_^1:_Z? x񸩉|MSiP("S#w=eLOti[`||)Dgݠ1}\FvF' ZZTCrQ, AK]Z~U DPEO-zkjQ<@YؼFyf'%.OEi&V&AK^f q.Hҝ͒_I7wTrT tJT{gX% ON;}]owVc_|B%&pƧWʬ g@3ҋ.k)QFN tj1u|`all(X Cq%,~%i'ƖGȮ,*w7oxhZnG^ͨ=ï&0X%l@A],J[C!ʶ,''^_FRe_M9-mwyC iVE#ǔu4ھeY=_ryfzݩ~o<]rH#O$w_+% >^>{b[vV/8n~u9*2HIC'aU?Oyb+oMqEYNGkMbBNH "iӡ @o ,|h=&)l=. !Srdm@"Fϟ}Vikc/sKćf{,;$|M4ײ&'[~I)([ôX;"T(a73 yQrk~!t &z2okj qhϵaP:qwN5Ұ"4,<‚-AA[^J]s˞i='eNss8SrI:e Fi>"v2ھ瓻x'W)t*~rLBtlqj]C,t^P 8-I[@3;9־/ 1U21&xsyv2"a:8զq(H{Qͼ:'( \)r@=9ւ"IGD8'WԻQ+&|q Y^鉔q[ "pp4&fe3:yT3vѫ c-@kk\ Yh^ǖe^5xZ\21I5{|ӄEd~dfw:UD Z"I/m@_VvA+m |&hO'}e@n:xl0~YBr̊l^i;ȧYԱy\5ΘNђ|ƛLo/Oo`h.}IC;x^;x-h*rӆ}[mƉi&ȺNT}=y=3qrYO{qc~$FͮFCM&{P5ڊm%&0HtT#"CuNĉLd)7v4Gͷy]6Ze]r`m N2 8BF0%~|l> 8b|=չBrFqD?ᱸŇ$Tan4vH2W!lJbcUM|jI(WV J)אd6Л齃sdCG(ʩ+Օ]'KΪ걣BGn >.oGSkc C˨04|c3#)iߒX^y(_»zx}|OcϑQ?0y嶚]r^وc\Ħ ?8[greaSI6v;%Ifx @0L̤>^E{W .?/94*T(+XAQ@ژnxK$MR滂%3K{IWrt/ƍZ-Gȋ 5 5ٛVօz iU :χ ?fKG;,Q*ҏ̮GKg~4]^%a7ܧjb:dbnNDi%Pa&"c)'E|}.&[@%C}fh:ֺP]gjmwA ]pP#,Dڣ ՞O8ŗ6DI9Xg^XT~2W5iy-"[~쌕~+9&ӱ9#y6i(qGDy/˜< Jf5H1-0cxVYpwK6'9͊CIl%Z%Girq+Bu23_;sPE٦$֮sYFwI.(V[KobLH)CSJGw'Rr3_$Mx-z|mFb^re*׷>mWȮ.Ec.+4|*}(L;3?1=ε$OwI&W96+E7g-kӬ<R9 {)LU$lfwboʣBp1lb̋a] r\s'>BW3 7®X1ԦtyY1(>7(}W%FJSVlmfJ'>mv0 񳊎'}MKB\f[Vm)XZ{x2 kM/s?MJz*o}9+xuA}`0#'{=l0e!6A>-n Մɕ+nZp3;cĨDKOiݮb;{`88.[ P:IVSj7x=fξlxAQed'LU{h3jMswĸE6c&ƥ65{U׿60?į~hvNs W쟠A>V ˍz5;B<|٣;V~Cf>}D+ NW ZB' $cT5YOe'ѝ,@V71;sGJU<Ѝ NzK]9ևZb4rTwba57YۈŠW:7ڑR2K(]J} s֟'rXffֽFl:DE{"oH2׮_q ο̠!3TLKJ09 y䋖OV67_Ȍook܌B?{fo1\-MmS~hZQWM˱ee ?ɟm̞始W GrY;&`@ro-aG+q{F:MlW)4={_>Ot{v/&.h8W ;ސcm?ʼ}T&q&ti+x:.f}Rʚ[%Ju= ; :y6r "yJ}zI*S&0Q*pBn ",q уou&/vh֒@rwoV_w"wc9H[:SEm3E5G|^gBb+|G2Wdc|9=2Q^\>afߧlѮEq+'o]Ar zo"STrT폥]߶gh//]?d<h[ NjomzxUJc3g L&|2^tlrt%(nm Z3ܠ0 itIaQӌo#0945%کLYjeb.(;6mcnNHoRpV)nmt@ϯ"r(,7ʢu&=Vc!xyy41ѭ8*QO~q䖒=?CH搠oyf$8ޢZ91%7<^!7eS){-ҥN2{E 4!e'[ H/Z)K.PpMuEpyCOCMJH-^ߪ[$-&:M&\a"5ó׋o#M/ϓ, LƚMHz,!7,S\ =8@rc\ W=TȔKknijip l?Nn6tc1UCp0袀ԣwp_=&Z8ϡDAr4k+ eQa3qޥkBgjR\y-&{{E 8QR+X X-" Hv[cñY+cKARù߽[L{xPv,{ݭB0|[7(nnWp+9 UCĒyڕL z0*5v_'\?6З[/(DsI9+W\TΥG8>uxm Dl2- f ~R[ГT6jfE R8Z<+=EE-33'G$0KA4̭ K++e Ӓ g?ZN7HԘf,6XM#"VT ;#@lA;/.?℮;&(Y1$yy1 ?=q3K@C  n,ME^O3 C wӖ.m7D+e#r@aP0}NHvHs<= _B}[+X46GB:w'{q7U 9!73j1tgw4~_|n#.é4GhwM2R&4Kt=Ynǫ|$A8xs2> {x{q%rUQ8~ױ*] ' 'ZboJ8cZt#1Ǣɟ1w&QО`w~RJO=yq|Yv#֍l!4?n?zQG+a pc4ryQ\>,ly_S@?ov*V'$[۩^ ɏ7)T.JQ|Qzdx~t2FЈDst1P-?Fߦۥu1*{3RSĄmB1o2, )oTyyg 6H֖ N M}eqѭXSn"I>vyoaj`TBA⾄ލ<3Xo#h_l3#q5vw;a.ș0S,}aᐍ)h~ޏ+\$nZFm/V6ǍfYW| _o޹M |Ԇ~~8,*R!$aۄ]!'Fcn`iHˇdgz_q*zGtܚyޥz&/Fyn|[)Z5tظ֬)~hc)Ϸځ5>`{\2[1'>rqNcoF^"NU5soᚥh*k3_}ST@Uee" Z]`RAHƮ_%nͪt)"E×;[Vi_:L#$0AJc9 !s*zŘh踭WJsѷRpwQ?sM9'm9W܂t"'j f8kU~,vg,J*5 Pd YQW^:Xo#4`Mb#7FڽQ?77Hkt߱myw@Qc-}̅yELjn)=#.n׷#䁋[2d{ 3mvX%ܠrS)"VlF@[ot.(`}%cfUFOQNWSVǫ?$.;4GgcVO) O1̼۷dfiY'axU)9Y-I'7dޓ&E9+n(vF|4+Xޣ/!-emM"eQQ_$p.AxPĬ4Al vbk>GUtI.6"557޺LT_ކS OR=/{!G𯭓ZeιZZۗ{E6n~aoq~3ϵj{@|?QEIuR @S YGwsgpZV^z4VHXGO&]DXۄlU(CY y/WJ* }ɭj@RV n[VB )=6}JeyMкbm4_m%+mׂLW !՝D!kNI3 àVf\b!`&üoVz5n<Ҥs f7}Tltδ^߉06.T)6H`4L@Ovɜ"|^]Θ1ϟ&$ \F}Sp͔[${MZZӃ!L/G(Y૫W'ӮV4Ә.p~Z@ n/};YxބOSM_nBA/ $؛eeڇFyRx8ѡ׍>XŎ4KAo?UTWmwAдYHU0,X<-nK±͠.g'ŕZutu8;OX m# q[_bٻjݱyb6w'Hw*05SLo.:8oo 8KyH@'׌ۉHPḏBP҆6?cYb|4ڕ^x:Q]qTigE[r+z662`Ah_+/U ND~ "v탦NύXV~[d'Le:QZ%jD@ٕr_R$rZm& -څGr/|.eeKA"ZUgAĻM+"eOELLVH+MƗ8bA-7[dž"fE%:])]qg(4_̷klp3aJcs0gr`*aȳґLk8rexRsWu25@|DH}hE& U_iwINې5liW rq76KGn8!B]PIA^Sg5 ˕p,x-햝#Z:&O }%fCA 2+̯"R3pOo,Q1m}e~szh _ϊk WzU;= I|rMJxﮫ~S,H$Oƒ/x66|Bf+dgJR,e8#;f&.p{ӡSΌ o Ej_"DWq炬Oo/ĵ W6.6+j5z՞6YW/⮺?2idVl#gKşfs%:c]#z|ϱO-#hӽG>HO1s/EI#w)U6*vV|fFm5OaG2e#!wPU@]<:r]]Hw"4*}^bܺG\,: +J4k/kCm=SU,U^9K1꧛e$r$nxQ%&y˥F_F̏$V՛[c8\f'3 ۮ7?+At xn;|ٛMJKGm[-/.)I3rVtuYEo;_( Fw:tUo fW/ݒwRH7wD!cgiDy>e H5wR<ysch bl7W2LlUqnSI\eӜDIs 큼v6Eȳ 1"-lP1a| ˮNp>II+\<LO< ._J_#d1k.*᲼~ij^ &m+5rYl1]M׭`|4{%]޻ʘR0aFBȁU\g6`,*sޡk;|mfg~r+#M):w~kPGÖ+j:OxO7zJ]Wk;,L\KB܍dXDSM ؜εZчu3%~x JJ 1-xo s)&ɞ&s}vzفMB#Y,}!5?u?RIDdi@Gì/ ~P9Dve!"9 8<yՉB@94 -ll܂*.`I`K4B@ wҍkC#=xpF4wwy眙ysߜxo{{UoU=㍨wqd'vx&r,-`ӓkZ^}Ӌ˷PQ^\%gy4?FV#Pk&ީoѨoy`A㉄@hL+r>|NCN Y/B'bB]"yR&~ԍ= 8ݺ฽\ា~%LUH1EgecYzJ o 9R^(!xXeIDsjwmzk|7-~Sb阇EQg cr"ghJlV9]DrV~S2jU:pa@x:Gj#:Z6S_9XYYbRO7X7h?7{Z'PMP`*Io,`wE{hn3c'#%<'*?q7iS[|.tK}Fh[1#~꺣ٜoBuEULДin,n^p`NnizGwXV8>Q`ǎK 2TX/c%F`m$SVӮVm2F++$$E |M(u!$veP̺[$q3w$H?xWZ]R~*@8졪<"Ζ`t@ D=t~ݝŴ<|v1ghw1kߴ9"EaS|pc(:JgТ`xOݠWpd5̐+^ 5˥hlE?q=qI`X:_.:-P~{\rZ7JNS* JW6N |2oi\JUJ&GqdҔe2FsC,&#P։MbAv& ėCWΦAiqA6v \[X<,oOXIr*jK摫A{&Tn-X SY2p~ѿvjȹ 2. NObՔ\/h|iT[?U jZiK3F[:8g]UhǓK+[eQɱW+i;K},KcYiĪɣ5\M;tƨ^8||DsF V {5 ;Z yA)Fd ry)$ȣNs&5Ӟ $qtNTTSl=FɯQH$r!X$̹İsj1~y/XVU=0;+N (m|<EU))\uM3ʥHOlaRi\Ay] tRj/T.YKMhRzjE_(IODH^%_ w{ 590n p_Dm!N)ԣSm.5tqs}<A=W!irl߀Ov7hVouy={V5OOT1DŽ:>]Z{uE{&JJU9s$M+磤oz;Х䝾mZV&YjVb褷p'O7E/ }2[3Lx% |4 I뱯lV4]Ra l:bsQg5 Qymstڂr˺mYUϿA5} +nj|ӖS YnRyęʛuh= ̦m$2jKwf|/\"%F?_Q l;`LyT?А2#mm~~!,b+ýa-4d~)d|fᾸ;wLV-Y{FYZV[! h:}< ;Z,+0m^ceQWI u嗹lגLZ%q}\lpUoϾ}%wůvj=ɜ=!,VќQ3 }NYxjOh꥔`&2$;˞cgnP1O;i%e_~>*YAͪ:WmqE?O؉4Q٫D7;' w^L-4Ow{698w~@mC! +QcAU]3wns%+;]OB;V̯3OY"FǼ-^|2<*Ҋ.%g˫P 3ItGW|T?ЋPl *iFxeڷeGi" 2V{ə%i`>Fc?UAo~ H<.Ŵ/Aߨ'i/C%^X/ZyYݱq }cx9?tżlHI\oDbhi!o5nLT YfR"+ e5}ϙḵX۷Gfr wOpOS9Cx?pc6ePd8m --LwWA|Dߑص8\Ծr5_qaQ^9e^h=򵔐9x(~fi0PbکG wlnZ&ف 3/PH{!8z߳= jkxJ% ӔՄ~#}-PDj+8sI{"Ͽķ95?o(+*`M^$tV _:ū)ߖAbL2:^]p/Zh ^5PCw;a*ɉMpm)&'˜5ْ$O+@7mun]~lq_ʫד:Eחf%V%|3FDž KX/߈H6v$&⯆c l #7h٫0/$_kt n &S`0r>Pvٝw?m0PZrzΉ ^Ojq%mh4#|׸܋# ]u/Q9zAv\DDV־-$}{h9HkQYhI|Mfk=@:{a֣7o"sSh z]ƦٌXBeK1.3Q/S72]"UУPږa:7@qtsGYFל' 90MS%"#!}mRz N Գ1avzL%4qЫ$ϔK,]Dڔl.?%4ӞWqk3ۃFܽ{PV&L=?bȰrR_]D#CҗS9=r<I2ª' p;$YgF朩XށEu`GUkoO(uΗN,f806>IMN>0F)S?e:M0Rwҽ<.d޺ʅ?J9e*ir6]lDi6Ʉjf'iVFõែ_7)5hJ3j 6|WY,:JUj=e[=>oOst`zuOv~ݠK~am{.Kx1᝺GY4b^™jN^hYu/M =2Zb" Nho5Xz"dPׅkPƤ,ϩtfUz龽X֘.D!z؛<$b3yJpv&P$mjT{H/Kf\T`oA&_c/H5=&]pfdPwE$g|n֯###a}"q|[зO'tgW+ A&өOfh-,])he8 SeOi7ZPmDZڃF՜A8,?"\e{)-Ĥà5adٕ8 l |<3US~L:UpbVxx I0˵ruG)B{‡nD؆%.+lC83f)RNNDZG@$sgz])iK#y0/6d@|Vw;vk*KhfL5@4\)ory 'lep|<8~6iIljgHy7 )qm-#L=nˎuj/IzGBDzhD/ĝT,t' G,gE˂-әȚD͕̊E1ԡɧ aohΚBQl&6VoP}hї/\yGD\Ofm;!6swSq/>+˚;ʺUKr^R4m] /|ډ8pȑ@B7]>g+m<ᵭ|mZ5*4W`")Lkt[a#*ɹA[of!OWYK(+lr }QTป%|ehGU_\k3ñ։l~k( #}3j|`̫ѣv-+eTCV#`=浳*,w>^ýf{^Ԛ{t&G(&(˼J_.UD|W,9qk˶^C,\R?r* 0I,`P/@- -qu^{H}#In;-;@LL898fїDtJ 4@6m Fpu;R3@PY]^Z&KE\!Ϗ 7QB]uEj>>`X H3 iYPޠ^;Ġ✑/.UGxʃ)"-0"#aS\Gs 'fAS搐!*@5IC=q:ɽQHjTUSlLrtښK;YxE_BJgXTGMC/ubz[RILnҸM'lp R .#L_}AyJ8+}BXܜd UQ d&Pn;$˸ / C`C̒SxdZ'cpGC~*nȇH<(e%^Ԍ"9}ȽBS~>7Rid;qZ~䒓$PͺUB ^hTw'c|%2WChge7/_BK,haW ,q1j- vj$G'T)/GC~ x u|Q)3(y"NY,g/ snev&3q_7If{(t:43i./7l,(RFvdN-$qr88zR"0$m斟cô_ߴ򜩜\8rTAFR cO7=)ۚM ~F'väːÊp|TY4D/)+&sȱ?se=I-;>X+7OYe@s9Sax1R7O &q:ەe[bGqtWV:Mpd|*Ĵ 36ct8*LDžyNO)mfKIZ7x,NqE+nw3ZZ'm>=6#[Q6N [13fWݺwߴ E"+{7iV9O 6+^=/U5W ol5;1en"ݰfىweCoJ/|LU9w_H h.l>קT78` ėf: 2NO8ͼzfu#*gLsE&MEcC&˟ɶ$39#_]C9%$jq#.̀[lQysij.-'87y޼^߾H8qf -d)>XsSJ1%ު $f1xvAá:[Ywz*{T41\z }!H$ X /.*b]XJ\ T}L'BXV9<7,_\r:XSB/ Nя%EJqBu݅{dfMt6CYsr9#g`Cȱ)ɛЉg,.#[#JsV:?$ <ѻI_"E|w~Ȉh NЂ:?;q=u_ e+.6HC;©+=Bø]^G֑ivϿsɑ(p=[nIo 5Jw&")uy֚v7P)/fk3J,yIf fs<0v>ohR򸸺ԌKԖ!vIroi>ME}-X=&0ޡ4HO8Sהږt|.\ss)~1ސE Z8#qTD EQy<צ? z\V|[Ÿx> QiyVvMٷ TmNBkS<ߦF^,?™)p J8oӒ{hÕh3j&#iLWpj\;UeG9Q}XÄE݁'4IK9WJa[+3/CBI/-fQuQNirÆ},}| oV^&gf8gq|NH Oq bfsTe-M"F "C?lNx_1Z>׃'iBHQț|` ES/-C ^]HAgʄ6zd<}z1 7eJm٥4WZ{NkϘp1RYPW浆94^ſr>鱠9+m]$vb5 3ztth" ",0$ (Q !Xϖ wEB=JHqs+ ℾŠ͂#u"ԫ^G#/ D4Eh^):ؤT%8"UꃩVȷR h* +L['"d)U'ԡ5Veo<;I[s||L '6F鬭&H/β[µH`C9U~eߏ>SV5 YVD,6׹ 2:CUa•vPf H#pw{Ngg? s e9N&FVx(\o#5lmy4('GVz2ZS3m u\S"W>:*Q"&)'9K;ے@uVɱ{:vDe1ҋP=/֫ĢUyB|NU\Ēc|sido96"ܻ3hPbVmlF\3$Hk#qa{!=8Ӏ{.;q=xܲ_wA+YOsF'by+'յ"J}zLIP1WOA]񛕜*r1FCsV{>W` J`{(d| %E~E*kVm jʓbM/EM'D::奢klF333V9{>kNGD$]{`g 7^WNx۷}پODxҡq30Q&'Rϱ10HZh/iˋ\31xop!"X@Б%XK We]t=V&姛wDFrVl=ҚO6dKg5N(*n\'J=1(؊ntdeU!&<̉D*qp{uvxEn_;η ;OjTH샸O%j5.k2r@1"K{;9y净$ƮE:Hff DJc[ҟYcSٴ'Ec5C;pR]A>=:I@Xhmrwsӽ( h:w&Dil>r!ɐՈh56^=doJѼ\1^哢%gMHT` w}D`NJPQODПG8?<[2"Ks* $1.av`%KɊ7ONK5XK>ٖ)(Q /KR{mhE{}R/\<ӭc!B&vɥ [6[Za>CT!O!wP*}OGb`vS&-̿Aq6Yd[Uh̾^C$Z$]jW/t~j&{%B]#a+waIwdIBڄNbMY<.Vlx;,̋8ZA1`cFΡ\uk}Ty嵢İn5g@P3Zsd<[Jo\+}b8ˍӞb8Y(*7tfXyQgQ~6~SzZL(fM F7QOJy=[[<]FCYC3iZkuN Ge BdŢ<鷔KWʗ)m & 8v9G]#Eڄ:*m_1N.`|I7jQƂ"C+ v s [ru Ax}gKU>ҿ ^ m/.2 m3%v?ݴH(Nm{ܡeN+F;ICh dnPAOD|u, &ȁuAV9!sQYV(N5||" }o#YջW3mvpMAJ G&QH\ 5^s&\2[y4_H( ObcA7_69߽!lvG-3\^[==|ce->>6w6n4<} #'~8ݳF/WUI7z716 i,\=(7D"q)mLe x֋wo[̹Jd17XkxQ)KhM7xf_]Y1&w)3+ZU0~ԛo~ٔoAJXBPghh}E㦙>VbM:.?.a̡ұsD績Ѡh(dvg6 :6߅6O1UP]GſADNWxd<0ov*АɕGuxE}G+QoK7Z&im ѱso2WgP,I|ZKʼ1֙nTp~X=HR{ }>, qZ?SGmqh#HȍW)O.^͖c6MgBtˀY66G b;}~U?$eՒT. '}37r.1np:J* T~|)$\򒾽:53g&gQ27̌kWC:Ě@; Jw^:(ݫNY=燿‡yMjP I4;ӿ 4 MR[O޶,<+-pY ג*zyD4^̀}ip'EE$w%2FN@\EZsXz%9 wOy|:({օu͹%;$s?%mò@ >a]ˈ/kk%k%GAmzfuIݒ %rj.ΪHy!oe`sH+ ,z9״|QOU Ldz!ʨUT5``?ݷYЂ6Ϣè0Gsg An{cOԂB@\gS:fV*; + 6:&>^9&#}V]J` <ʼ1D?x3 ]{]-UTozQpkjF[Kq F~[HoH|O4Z/P 0hLx~ z/I>^vѪĢӬEP< /_In4')C-eމ-ʨ=QmƭAk]v 4OoV \O"ٗ՜II/$hA%so_Z֢I(ChQi_qs.G1;Q?"6:"o0ُ;Q$|suDݲzd뗲ہÔ:W\Mj&b!Al@| -3 ݓmaӖ±g&4x \7U#'EVn8h$jwqM^@;U,&I[X*aqwFBSjF< O=0IFO#+)kT+PʦvZ6|4bsWEt1u_CnffdtJ N_Tςn9GغoiX}bl=a#w3L *Gi%K'tRZc52(bԆz_j% -+@Ӕ͔h&Cx;RM4c8RPԓf!~ȹ`Og|!J{}5 Y4AќLY(%Y~aߩ|Gdղz4SoSmydkBK2MСM=~7^g;uydAqL )= (zNsBrq]ji-%k/hӪYz]ZdSI,nS&dYpbRvaJ8gimֻ n+VOϘ<n:\~c̀2.NSuïS$܂:؃& <#kB;AyPzNiOfo̜r-Q%NbSa<2q[Z?ɤ<{!i<0;Hr Cޏb>3KJDr1"]K5ϳC<\&ӻ"m'p{E3t6aL$V:'vudLfK1U4w^)`W}}(A[SfЇ!(Ak55Rvr9PǏILߣ1MA0oǐ}]$+S\3cwal?-=[`6r]hɵ{Ș:oTYJ} ki^mER v1.?(CmxKt3ai/M :3S hIC~^i/SzSQfs[\ !ian7Ak%~(c.9RZ'wq7)쌌,WK_5hH"*z6Ә`.Th;e䴺6-碟d4I{@MZ烋@hAM*բu\ΫAK7XFAryx 60T#|~i98p dG,%9[BUGP/VaiBLuZp;21U0*SG\νf=@{-Vw?26R<=K1qnGtؒ;9ڛW~J+ 9kOTWϭE!Mϙ`bm4š?VNFlb6Zcyb@YMc؉)}F}uONZ JՁ#(\[o2<.1fnXjAF$֞c6E͗&&#K W@#9J}Sk}9 LK^^ > Deq1|&y3mjSl}sɢ"rtkܩ=PHN{Z^']90?cCx7"yeA ϗY51mG- ̋ʛOC;6PY2]hŭq+JZ%ڐ>Y~aIut[xB2rQŗpΧ˵P;>0v}^or)B Ƌ\f'"^AP:~5K Oh\hE:V MC0=Oz&) ?GaD{u{i^ Lo?u[:Fg=Fu?sz6Iz52Ņ$>o4.]Ci[c&WQ* cL}fw(;wcCZc5&U܁St-ax_Syf+4MeءkhƮh¹ GoߒUhzP |:Yyvw 2'#qhe\NZhAuXg]RtdxDD͟<7 m e6Ÿf ']lwZ x}&|S M7/XSG2M}$`Mj[O)b'%bKfN} #==$jR{M{Q͟SWYb~Ⱥ{G۔KOq]XImD񒜓ڗ>iB.8X돧uiB.f]_H3̞Zt02)vO\zV>CTk8+M `Wa~Ӟr2:ڋI|TPS^*e w?9?\4yX=Ȋ \i 1>L0Y-p2:V2E6?>3vlLA`NhTd:Mr{8-ȖY4=i`)Oa)Zժ4}uٽVe3" [n#Hp(-zFh$ RPaY\yr'~A4 )' ۈãE;6.VpHk>*NO׋CК20e>\+Ͱޜ}y~-jLjXzGszk\+(_ @їg^C]@ bB=͜ M)/)2N_bIi(l7bo>ܱJ 9FMhr%G9$WHP \vg$`IT 2OSB1v <kÊa2\ڍpiGܿ2dgO W)0:j/9CK ?yidDѹ:Y('4{i`d2OuN{n6DcpFd[ɺ?!/s 3lႈgEXƂBN 39YXxx&@f2O3 vIh7,jwPӯml<@ʥKvM~s8_KY|/X0}mpXҥcS[<]v,9 (2.2WF (s3UPt,DDN~tv]nʞ|[>h g^NE +_ˏLKl$'z~۪Å?[LsQ~Jf?SZPz-cvTz$M+Gd6|Ie%HSnS=]$[T2/2z{:?#l<%r썵7LP8ˠ:B?1uן>!6_fkуZ^KO[;Z4}z^yowTE^#68~3Y|[v['Zӎu6fg\q(!]5p J~#}O95Gpv(J~pq?) _0[l M]99n#rtrnļ29< ne=L*rb0;*O:[\}~|dGp$!dZvk+ZFWP2!Kµ5 #Zav֥پiolKT)}Z9Mf,G`\y:k^7[)v>y -w"%v<.|/$,VzgDeRIt(;@& 8x-g5Viϑcg R7h+^kAZǾʅ߾<*͑U^}Vqψ6]bew ,rW\'6FW[ϔ)d K60ʭOpoK$/=q)c噣2UPRNOjK-y:3 oRjN{ug;b>~'=5:itNtWڞ?B GCDC eXԩ? _n'iTĀS[lOmK/_pmsbq* n2ƌn @t`JthW5Z-$ 7;UH[|mgN=U5I:97zW0ƽ6Ǜ>ߟ<{I>' A͇k+I"|JTRrJM^}dXRZxoLw bͤ9QlD]X<(t}JZtu ʿڬse!BtSv֙{YQj*J>-&Ja;{1NFSfey6։'BY~d~aB5 mb&6߅?7be dM"NP}&%#k==@ɉRcSs8`.z}Εm gggًE.JѹPfyO4Mr(&ݦ`-(py1;Ko gd1}A [*kĶe/"tPo]96~szҜ^t8m2;~w۝P*okNO :Tt靧g`PMсճֱb)}5P]7+Bt.@l>/? wBRY?ZA5,(O_@)H節JOLCr׸cl^( (ly$bginD(< /8[\j/h0s!t&ڢ ~jZc/S^ K"[+np"KTd/f@}7pFIz8BP+Zm#k&/Hŀ 'Fzs l/LUhDr.?xSƽ]1`jT;÷x^spn8Åze^gyԊw烅rf֝hMyhxJ\,7 *w%-^0;r A 90/ɕ [&cõ xĴW-DEYΰ̖["h0I CO6*a/ *Tݙ~hknxWΫ_t빵ZY^+&ݻ1[ UH!W(^;byN^8/QO2BbxxJ!PDn @A֘#&cCC p'Q ,{ȩOjMSk99}CkF-ύtA"M]3Vbp!^;r똍m Ɨ/u{X22v%at>*ڙ_Sg|-Gޘ3;Ry5Tw$k>ȧ3ѝ{5k~bi9Wsg.H$%P\J߻r\x ]~i`;&^\\솛Tм;u\$26EX93;AzOBq:OE>T,7 Ϩi0F+q Biہ5j edY,lk&/&6Y!t@wnn=1>Jܸ*5!Yէ>CSs,Rs;;(wٸdisD Qn" fPgɧtt,DԐ-^Ҩץ NSil]c-)Ҷpﵾ3.FM2"M Y~اH>[k@M[j]O{hr%&~D:ʺn3+֓֟OIB&f=ҹn Ϗ֓ 2zl$S'NF^5SnmOzx,0O ?\dzM"mB4:=S\0SuO>VpAKTZ >ṃImy~iG5)YI& bǢ,ٯ(E[5sj/zɤ};S0.Jq2&X]iA@fMkݢ+GW_EƳ~Z)y'ؠ@dg}TBOOt茝|qc.5g2JlaMC"g=\`+\0 S>GT/dѬF]۔>llΙadMiDKrO9i2<(+ዼB=ђJQ\HGy3"Y:ҩiZ &<9v&? Wv Z5m3mAb2zM c~EM/ 2w E-4ʊezR dcW4kXVPBGqMAʨFL~u$,tdj QZW/  ŮKfJlD87A {^Ag=K{"G䴾 qaڛ[o|c@N )S_Dvra"ABTmlEevO鴍 {6{d{XRDl(M6)߀-i@AX( .4`5!ȓ0/!H .m4J\S{R+-ĚT޿rcB߆֎xtGb>EF |?e 3QM*KB  LaI}-vJ}|9;*Z}ɢ1;fx8B{g[!lW & W& kJk9$f43 Obp{:>Q1_C^T`? lw~6 ^Ʌ'Tx7\ÂqՍ;{'i'Ag^oJ#l9_zua l_Z7μgS*MTVݔEx}27.z=? o~7ڏ#.|c r٬_TO 7H.ᴶh;a1oH fjQ_.M1e"B%`߃@qk3Y+rsk3_AL"W{Lcmz*Ao%{W˽cYPW#\Bx6w'7ȌG#C;GJj_ul}ߍ/ԑ02 c-\}qLIZ+Q7q@=‚pn2HN"oMsN1C$!hsFP0XqhƨF֟ԗj`~0,HaF 6 ~X.e ˂l{|a y #AGMS@μW"snS\M{\Y;ON=9vţz՝ @KgY' S$l-:g<0Iﲼڼm\c}]&=QZL|INWyo~o&_0COb"AwP%z\BT1j[[na @z6*&$ԁe.K1D9C 44DERڇSσXm N)n3E{,@ ƕ>Mj-1ؒ3X6)Ni%?WN^$(:K.wR۾ZMlS*:Рj aLf) xV)wԱ~yY#&LQ.|{Go2Aג4t/=uo,%K`cWo9ܡ=| ^6^:kR[):,]0;:U#R%lK:_c[axܭǂR t^>~TyZ/i&7 n$n۴DX<0|r*ʦg_tM|Nh+VZy19h cԻtho'-ӮȬ- ߝtٳoU _}21)CrZ+k7btYxpCr7hXj} M w'] 8,6g$P'OkbVy1G![Rt/ڒH'+wC/Pb 39mδG܅?6nK,rz/]=JhRRDSJp\~[?e9Ax.3kQGN4wc ^Iel3)WAQf~%Er#}Qxq[X Oȗ5^j˚Zk}F@3/=Qt;Ŧc_:;R,lO{7 "bu hZMT )B3/KMWyrN G &ٍl<ߩy%?lKj!EO $I12'?w^5rTs)IRq%ag=.:':9R\ӜW;7>Jad oĵSc|+olern5^:.#6PfܚAhAu|D&l%J_x۔j>:KV+O..fj>H䛢 XEQ/0dwh1K(YTJ3{f2j%D"s!2nA'[!w<:XE^cHsd xyM՜]C>l8J~Ocg{@;CmH@C l0a7*k$qh(;!nse q1!®? ?x=)5jke"(LI 925Be-8WY"~=Қg]9ŋryqmh.Imi_"_ƛ7=ZUhoE@~R'-) $+^}@8#(]+ߖ͟lxV2 j7NPz;\~#Kb5b7xd*l*v"n< |0shs~p`…mfd3\,ծY(e5kC{̲<.7}F3c_s nKv *ј+0 GǕJ PV~u TZK+nW8%&hx!JaEd9ӽ|`6BFCAڹPO>h>* C^QY9_Zn~c(n#.iCЧz?%JrAf>kbP_X+[E/V A<%Hƙ[3/_XTfd/l6(MbuW~h W'iq_\(w甐pYlת[AKU6<ڃwR+ ӧ& u578UuZ¥5GLqpQѨ`a|kJ8"˻ՖC޼V=yBFLT᡽{LYVn(o(OUFWٸ>n;sɚs®îjV6}g#٘U^s ->*3X[CNnGfX"S\fK]X28:BE< ֳD鿗$ݨN5o0ؓE1E9{vj ~Gј wQl+>87#SF6 w׌kU3E" A.|O.vԊ9Amn#NgވIC~Ȥ6$NI$O7kpmz3:doy3VB-H7ivcx EЯAA] V|ԣiP>KKJKSu \8Z^{`f5dҋ-A(,[X1rO9'Uk6w5KJ穯l|kb&fT޵'<_JTiZ\H;9z=xeK 0HB蔧lu2Z<~qp`'7/bD{UVl6fiNΡ4]"]1ukhjȋ(1e.mOb#w9! q&&Da|Eny YnB|~ŔK 7m#և_ӽPF\ڢ3]F1 e_(h7kއ$QB]\֣!^Fz)̡ITnj>eɬR2q$hR6(_Uc..l) SZ#L98,{E0{=<+=f'I;m'u̕I!Əp]$ b"0((j\S|Ľj'JZII[=*ǟr1.O~ Lw/o{0ʦs(Tħx1N] GƮ.4|'THmc9UbkWN47Cc;"DM i®Z8q3IA@ k$.7?a>/:5w!;D@5d]d .[c*~OcB*%n_~V沱] 8C IhQ8{tS>5y#QBhA} a v܌E@C=oCGm' ͘^v$iL] Z>[M9j?7`wi'"x' m53)5OlOqmd@!Ot75c xe ^?Ú_ul{\ 'WS A4,-\k0~q' 6w($Ey>OmuPs>N$/p=_gw P{6*AEW|RUZ.07EVy+s` )4WI_5:6k(y)ԲOwUœaݮ߸C^T^9l&j0h\_H6 O<^;l`jKȱMB: gzD9#lF&r6 qXO`ө8Lҁ۽^n~[()w^ZVӫBaj0xK}C4 y{B ."Ӏ]غ$Xb է1걧"I+3,\Wވ)̋Dv)yci+WFvM|'?XS tkJLФ mo㷿~KypF$a= 7? ڣ3׮\sjE@A8)|wZZ i7$8vMĕ=+ByU?nX)-o--aveJ2hEEdJ}xs sz!&{zHNz{MxmAfTIlX3ЛYE5wXpJ=}0ӆNTT3_>Z.Hhrpv4}&/3%>\ۛkuVܕ*O[Nۥ]`!~\Z)A( zvZʡQ޷؄]oheHc2{$9\dd_sQ' ɉ̓ {@ƂY_ܶ.{sLy-O}$\0( <~j"wS.{#$d1 FIW%y^<:}kw M]vּ^oKƗzp- >W9e,r?|ϙ G ,/v/P'A _$"\bjs}\Gㆥ %khɥ'.ES%C]Dأןs:dI:K~/ (W77op_t@-{Q7#jx3efEl6_SʵY3ISu/ &?/#.eѝ\x(ϥͣq{+!z;5g i[Z`c$-ǝ6S##Bt&j HƳ= pу&N|_sl X;[GlYxp-pŹϨy0}L\kƫ cA+ڔЧsWU5πM˫ʷK56dX{ gFl5vi&'+ ms>8w .Yk}оtMvmUA.wLN`|%MmZ B#Wa2gGE/>rE{a@l~#.Ћ&]S_6<}BR5tO j3̫cGӸyLPc0v|= 9EOd1sNΒ#B?٘Z EC=ђ Z诣7u{Z2&z#_%7)ݻ )r؁ITG8Oe&bįIr#e|,;-ZLr@! !5gz5f`ͧQybjs~ x+w82Іmkgz(#ĪzPwO4S m!)WW2=ec|5f5:m-!#.̚CS[cޡ\ݫbd,\&3.!F7u 鈛Ҥ\n=eѬP) P0%8ؚ{4:֊^9vE돍͡qpzL#`H=t?Ǚ{@DLUPJLZ'մu(@mo\ 8)NU(jщJ ?z:Jȵ4cBH/X q\ÁU_؛3Wy JJShP-5tH7gi<]w5~8]l\xB\Id[=@1)I =#u"!1 jU w:ilۭ.CA:Z)Ss(9pc9[C'QZ!>f|> jbif],,1˟Nʩ~W_F 0ot֤:M ?"mJz $9u(3%ԻYeDfbqH/ m?)iRi)Sy^J{WNg\_?%gNYZxr&ŕUbCq54fbJ 5T~At`}~w q?OrM^=_~Fa~sH3\{u0>rُRTQ/·f#Ҩ`B=;^>w15;# Ⱥګush m"Zuėburb-́4c#m|͝D4MN? oP70:J1Gjmفj}A`\rY(͗桙Gn[Rj0/o&y.{F9=>jeW#"D-9ȞWlR*1N)冓88rD t>P#5m[(s;ShnA!]=`P~{4c|^JbsQ]}W2tv%w}wn}Q3$Z Zj \8n#FE;Cw(pwx{*zFmWh7zC_oM \(yZΫ(4G4@TsĎ52I\n\ۍ2I*kexJ3\r:M3l/2S=_r> ig> ,ٿUժn;oN`UX/?&j@gU®L:",fy[ F{!!\sf:*;/.J5+yW틣w a @p2C !\Hp\ N[pwwKp }{n^S{u~{uWpʼnwlS%$:g,\''\E&6}ZARfֽ9)Odn|}C<܌sVd 8_}Y"z*@cYC6߰65OF7VRk3q @$] I6ǽ0dӊ. '?췯E br4l8X.΄qW߀">OnNrGl \0y ^l |Y2|RP:SdE]T폕uklL=3S35JJo3Gi~è 1biS$I!^=w%߀ǯexd_nj[h((QSSjI 7k"3=C4qd훹EXI Bn˯kk"2t4p[U(x$(K٬sE-R/;柹ֿl\KotS[f. ~S->= ahݵ=%P- 3` '10{AAAI둇O +~W<s$i*\3DP9 @)lfjfajɨni(y{ z &&&66>.. )!5=5--#'3-- %+>޿ A{: B5B)ACy@%FA#FPJLt4T?gPPQѱ>AG ~BBʄIj9(1OT; Pz OI`qR0qzuHh֟MrKCCp4b$`f[h[^ߖP!G0]}|ghiƝ) ++ B;3'ƻw&_u ˃ehUu+՟P;&d'?i_LͰJάfE~MmE!˷ 3~BDnQ})hRCO- =GEK.1e5&Fgm_42#~E7WI׷2t@L;Ub>'m4'}#>zRr4ӹ{/ U9LHtݳLY9hWu'4 $8i=-^Fuo}h*Κȓb7wLZ;;GTOS5Fژs|i*M0oŸ*1ݓ-X/-#g$ @)앤*Kq#l=44/y3XHGtl 0;D!(U[dhwμ2>LRxl.M MZtC'vuo]@ ϡ͠ @uQk֬ d:gƮ"ac&\XRb䁴NN@=q<* ER;q? ^㆜QE8i iA`_L]Ԟ* oBҟT ,r&H_G8cF_2zx/~mLv? U x#tssaZﻯa{xx}a|e̖+O,쿜MB.dMUm xZ;Qbs|F@8]2o>W;y>Z lZ?Ώ_[Dx?Z{YmHk.%U)gJ(TYYFmF5\\ ~ tX]dAS~q?0\5D{["9E(|O OmWIV'Jx8ܘVNst h-~_):iR'.ThwYDI}mJ7{TJ'TOq[:cnS͊)^/B^ގ ii$8efA_0=E{T77"zVbwj`K:>WÓX^{'b7NFx(cբ eT@AB,h*nR+o@e;A)w{XXÙf '=Z ¶qr[.Wq6.~5T(ʥM@(_<h,sl&t(/Ngݜ_ZLq$˥.|da-cK!S_;ovT]mc:hHf@03=.NG/̩3_bQvHߺjmW?Xms,U{OE]9>(N6 5^?\?B)(N嬁LU{Z<:atE% +9UL;.BTZ‘mmPJf0,x(ėL^J);: zC )Y3![7VfE'%`x,\X@y*(@ |IFOu!ooeh=9'=bLE(5&aAXN/ {4ߴnr㪰.g:/|^]4I:XU3N1yNÎ NN*t%'8ylϬyTN T0).݀@Sa>[ne8HI!>?4<l.&K) ^g%{ Xl_Hsa (CLG syn]5#9.["ja,MEd DZ\ &3 0` h_3Q>tl՘[i^d~zإQjm~pf*d 6’@6D/UUf׉\8;9&wtB3d&I=,;Փ\} fհ^㚦W˙`8ƥ("ݱ`v`cEowսI0ZfIH֒/wl$r=N>&?`@ |ŠzZ.9+5S+(6`fźJNQ Km0U䣖KEyƄ#ՀM2oE>#jBplZR劆l:p,o/S9m\!u,ۻ󁁱}25fvg:p?Gg9ѺE7{L+'.TYKMoT+PMxfU=ǼvE6p[5NTUC^/8x@Z: WM/ʤ"eW3qqB(9l-wّHK" CcxUJ' <6Covnv5O茣,aY͟a̟~7ili8]A~rP6dΠ姯7eQtU3Qv-px)ifI*߼TGYp(͔͆x̀kvgS"/riQ9W} YO/7$YӲ#;JHNsjΛnIT0^Zv<\n^w>HO6 G!M"&Y6wײu)gD_IƱj7Xw`x䟏sإa갼I2,q08c_]MmTd wqʸYɴJXP ݵrtg`+kzɶo[Hޒt<;Lt8QI'ަL+܈,=? ߔ4ˏ'(緰9dGr[fxoD 2RӒ#HHPDY6l{= .SLʽeH6ȡ[ fYj8`j6Iۙy[']30ԗE~RG ˰%}%-I!;"&,?5;7CU0meUN`tG;(fM I$+z@#DU(H-\ΰq`!uG)ʁ3b i ii;Mv^k>6Ipu+Փ7DC8ޙOM:g1_ӿ6Q[Z lqpyOkWydGQtW|^B 8o ?0ukqw̻0G^|$섫zs,kS>1/@0`+'ʩbm:di3N,aV`i_4FSwb¹Q͋*?:$AD{Q@i}PxwkQaĠ:wrKrC<2 G6BZXiYRt$6Zg ͕éE4 v&s͸ľ$ gw2gyȦ2(3?8D! :R6M(7v'O~* wri,.e*h[!mb[qw~ײĐZ,逮]0w#@h '6Nט1LpИD I ywuB)^k'&aǝ뢓1$i`'3)ᔞh/ZљC9T򥝓|NqTgj{,\QJMoLE0V?~e`$o#u=D#Tewm^FR_]4l>X :'*_l ƥkVH0s*=YיRCj\!Ƙ+}7/]lϬh?t^?V~1!-1co>:wr/A]XYG9 ['%:#jɮ9 ʹh ˎ./C:$b$v:+G`uQq|)ۤe·+gRk<"Q\hWǹR~$.tvoFEѱ:P$ ZiF^FQ |{-;ib9R`iqōa.ڥ[REnO _Hd(D>Ջ)xfDжW)chEH^@>لUSD*F*Zx"FnV57{UʍcQs^0H5zC~1~~>WޕD~⓷Y|b v./ݻ7_qhry]G88~kO?2-{]=@*AM!P߀N?2H\5M(ڣXet DvA-~.۫t߀%Ve#D7{ә.81O=2;,='Ln nW>z8?2-&+|:4I+ ;=G}t(mF1Ŝ.f+{kQa~&-u7{? +iU* ˈ^^%H{ylΨ񘛤nX3{tEN3D)JT8Mrc|:r̵߱iVdO$1n/^})ax)؎+$3b ߕm#jEm`خ/Yq-nTDMYm4)v-P 0n5T+SL^ HJ'BN|Šze d}~E!24ܺ`&&"n|w.6Vg pVS\:ӭȺh5/qVJD*{?6C+V\<ЩWHp+㴭}Zs9 u0ʹ8WٿJ6_h4W(7nrt+g%N/+1Ş$kcӯswn&.eq@2  / oԶsC&|`2v>K ҂A8gHbL]wm6 UzQ`4^E:Y+mV$UX|6 bΜ>nߛYllY!#2TԵ)zX: 6r"H$ >nP?:]֧ YA((_*Bũ3Sej%EsIJ@=yҚJ:OpO[0@}z1_=mQzJiCȬuynwm-bx7_sS9/LL{hݛkD$dWIaA Qثjnz@ `W'0=Dc Va/(̓oC]%3tou)z(J sfJjnxyMeNܵ ;,Zlf; cqۊʬ6QNl*)ɩШ $+ߐ,dZ[ Ps3!oQE,oA@Qee7M &-CoU Ӱ&Hw2S )`g̠IVje$']Ч'G/Opp`Y%IZ"9e;\ٺB%`b !+oJffIv@or|-IA1xo1ꗻnc.^<÷W%/_ ,>jtRtxu/3=U +!mU)aJ3v0jϢ NJKKҽUz]T???؂OX$$Γ*}$M5/o\*;qc&gus" :*,^'(&Efyc'cOdLESwʚ.m䒳UKa}JC0+RG@AH|vZU]6iFGB&.ۨBKi@  g񶙄\! ,Uw$UOZ)=AP3]=VUG企^٪zD ff?E) {W\mkFNgٰ ͙p^Zw)/ ;ڱ)W1j"u3TLܹa7+كNn^?,BsV* NPFQG`#{%on][8^=`Z؀+5 -Aad_IgS'fo\KJsNm R*rGvKHž,A'hˉAY7\o );p3 B ѳp2?сM~~`A0 A]I5aM餼2௘a\N>J W lMij*G_l?N2S0cXye~O ›`Q^qΉk1R%&kp$Fտ1m9s[[F"x AKv2}%!;ʰ$K2J٧504%^I߱ llG"/UWvFnP $BS Xi W|ǘiW)&u|)Λ-kԼcwއGmz-#U6)n8BHOij>}{#폏+ŦB!4K&n:lJ<0ץeŵAfi3bуy䝞WnT9@B5'J)/,}dTu7t̴w?/3̡k~+lrA`pAaR(AiJS0]ZFcfPf^h"3l?Cd(OH\&MOs/'IOÌ $mQfW IkL8g&*8qBSxF1+ٻ[^>K u_&&P#u#О烸MsE)/k  vm $3rՅ)[;2]ˇ@oޝ>4P輘դ oo=h3Rlb.Bi T~ 7guMA5g),[@iT${ku% bd݉ĴBj _iHI BijԢoTQIU&pureBTU0A8Q*IO^EEݏkg/^ nS|YԕĕAVK ~I~٤VMgoQ,&XgJcPe1 `jgz6>O^}a)L)OI~!1nO7 +kb?Vҏ=V=㶜g6|OwQHq ۀGfnm-|N% t:±@K!R{[{QF "pR˭}[w x> le-"~i]$4*cLeiym53vȔ/ .3Wu#u%&M@pF{>ۚt^{tF?SdžBhP5y1fD]#wڣ;i{ / { X:AM$Y{T|Nӱ-msdvX:_0QOR>t:Mp]!H 0y~f*%B'K"/,/!xK{~N4( !+p99 H,痘,&, mA(ݐfb]>[]lbNAݐ;G*Wy=$^KL,Bh:lO+8ndIܓN'?2maybNd΢RJ -[pp^fyhf,3ei̼s}bR> \Z> E @0ae a^br9]r$'"$a c3 ؠq'D@E?`R)]O A@ ȫݪ4:gTrm! ;.~bF>6E ?Ps 9]㤶ڐz `JTL)ҕI0^G}b=PS( m7"G|VJ:|rE~# 9QMbU\@/5 gȈ %79ŷ I8]P8XUiۅ꞊Lj{4>V]39YGǠ0"pA 'H]ȍj/Yn4/>S%4vu.C0HwN3- +dMJ5ϡINI$(Bؒ.Kg+ Hua.ޤ{}&BmެRE$Lxѧf<]aL,d DOK_0XsD_nS41wȑyU J:"ۙc(lL ~up}rXOh9Rtd`Z?BAm=q/["_F+wa49 Ba\Ħ#`Bv qϴĤvc[=5Nknش_a2jN3db+t8jd“"JK1{Ӥ GPK+?3ZSxS߀i#56&){ˋFo-rsy=屿n䓱wa,ѫJ%%|aUrU)tBeR4EoFmuSV S`ct6T, tήE G'tMUDzYі{SM+CU~Mĉ b}'ZtDO8.I@7`G_>U*pL~S rM*%%ܛ6G~TjWQ;sPj3A~cC+L53n\m+U]/s?F[}w 8V062xnDrJ*+*aZ%_]@F7}~)5Sg[ |yZi_#t dd\֜#bt&ydmM[`]k=a!m\%8s[tU'/.wTZ>;y=LP}mk996oC(k-5#G6+E G#b<15t 5Sr?dSE' {NfeE]Y@MBʩ_&F94`.DžKF)Snj3pzr!tě֢XO@7(Z )9xX]ǯ>T̶uo.Ya_Ggהq|OS?MS/F2DͤcGePѷtYW|,Px/)Gg4b(juUlGcY,v†BDJK}leMNjō 7,FGHWe~Ǚn}Іt)MV˶!!Qe|J F ),'$rAы®zĴ9RPΫA!E |Ͽ]Yû?X)*YE9و&3MF=h9΋gpY,y3Z}"Ȱ]w_/?z6v6~N˪]}ђ%qu8G혅| p#˜߀T:0_9;aš;m'k (cNs4L,~}_>FvH2e^@ȩki%Agh#,[~|jD"%H:As忌߄#ȈnY(r.Pժxf[MrRB TƊDgZ+k'fw|$p85zPdYnAptZVW,4DYTa rt-s]DhHn=e5Cʉ>+qeºGnmd[y#hۜ>${k%OS3,OG΁l.׏M_)f'n2/F9OFoN.`ŕ+?jSh~vOgIvͭ苎ߵ,T *},U$W!JH/gnR#ŠVKkb W*궼̋B[i}3+v9` LL_OWNQkvRU`p&l&Vݤo];;k[( {}W5L@Z6g!6WKs5[?(-&qG;fJJ8Wd=5lFsC7@kM^ǃ$}mABz Cƕ0bNm]"$L__>Amд\!p3[uՑ}ݠE0=RԤti}@?>>CmbF{;[D2]hOD,BeэWlvOo$@aVc`xwzGWBhXc{oĭw¦JP+&S1083+ԏ]r( qպ8E[ pdS?#=v{wB#Z7MKcp\=̺Ϳ`~&Ҍ!@@V;ryLW7 J遶u47``$Lr,.4 ~7ɃQ8-u`7Ie~dZXR)T,L/f=LCWa$abMJUϻ)g@8 m eygb؅f2~X?l2A Fl997Nv?NGNm*Q˃Ml{<([ 1U3A@ @60q hL|ksI4uD U,,r4.֘ޢ柶w<|4N>zç CI*hae ;23Nf-FICy{V}d^OEM6Ff{&DHa"ɅvѢ@1ݫr𤓠h.NN0Z4}8<rs M@6у``h'gpms^VM<ʮsL>6]x`iX db'ۇ9՟1 ?}*f> #:t[Rh!Rr3+`B>4=wOL4NNhVl]AKɓMЅq怱ayÃ@cpm[$$]3U:3/[g+G S UB Lձv[L

/V̋ݕ"ӥ uS_b8sgPq.B /WjM\!oLI53$&(Y>g/`Q8;O!H"*\f3EO<Uhe"͠nAշIp׮h2v6LJ bS;E?Qv{ M愴[AҤyySlR,-@XR.u8؊1o'qS'QiCh0Sעɗ:-6U=.qKhtULoNnqg_?;ȏ>IZ4 !@22$0irUuWfeW78)ȗ?P~{+ڹb%2~%WR}?f ;Y؆:OˮuBh1aa9X]Ժ 2wclHT 2pf-mI3\O^aVкK(] E$E&ΓD#5\fvwT$k-F,1fŬs3ֶ0忻b̑֎'"hN+vYh ۭ(sÝ̙z_c6`io ϩ9dpfD]“699z3Go >8'셸+a${U-hg?PmgpzM_@f٘q#,N7xWj.CB&QGQB2c}гRV8[%D༾;Lf&=|B{ÕwGo+^A՗aYS>Cڬ\}Gs E0=5u/_i2[=TJ_дj /z+6bMȒmÍlC FKYL}m'jɯ]8sY9Q%庂uuGz-K5Td ;` 7Y {3~ \?%c)ޯF|i`qu.z{?nP,k9x<:ox2" 59eQ])yvID?֊o覥MDt̷9wFS[FgfeNw^+?*Gdc?''Yolx"Coj/yw̦GZà^]J/)?;8),:(&Py T&|p8xk'S5۠0&FR0%`uS5 kUy:l֑ڻ@|40@rY=0pZ?ᆬs">KnqeVb& x>{ʭdD?(*e:Jhgnk=ćt֋"x  >d{/SHlP{7=6X+*.dЖ~A:kM(;&?JOP{DX];/jb6X}R0^b(-ɂYU0(S-cAaC 4褄Ej7̈gpá[v.zLVϸAv*Ug)l7ܱFi w."je^u۪?bˏU?V|v W]n7,&#Yj~&1<ʽ3\! 9o+l9GJ| ,2N(J`-%͊)QKy]b+ P5i۷yDrr:9r|E.}.LN+MQFij\,Li~6sae*`[:bfl&$|û}9#R..[Z3<*؞]=h /hjX&Nó-j\_gHgXY|q(-]>%_S:'k2;X,RՓ9e!U&a@$*;Y3hQ Gӡf) qZumWg.2ܵ)˺AND175.^drhxU/\4\m,h&EQd۸ fAP-ޕ2^~3\k i2clAHHۅe_bl.#WMd6H\u3 4Q:A@ tZYonWSίjJbٓD*d.+M9 cwP.{NmԻOe|=АvHj+e^- (ICXs!BDۧuO\T|@iB*TDش!ztS &D#C߫ * c'z{zKIosԎ ֕(#X/Xy*<#ҪW];sch]J~Vlj7(Ϝ Z@ ;骅27wzij6;eG^c#+#v]fspQY }sjszz+Ln'] L0?ԝzx\ZqBE=B+?'=wf{>B:5 ),j/_a{FrULb^𦈔 NnVu,}jR g[vY)BKt+6w; ļ]\בRnDòcIE17@*ѕ)MVktvR>cؑv_/xN fWшw:\lw|K g &yoxG=>/YVfT䫃 1IhvȋDi+A6jM_fdz{; a {;"N7߳^nFǾ|g%z0{yHILW+C:> slDu [?.G)/^JkR~(XxO_o;_xRTXY EQ00 3͔&MgWvdlb7;EZ@9 /ef e3 7`/_ J?ۥ6%V>ډD=;i6O(heA3يN .C''or'?jI1;Q-JñNE$~O +póεd٘G~4yVsuUj<9/qwDDa& %짴 )M*A:E0L;сQ'^l{R.?s0baanWap=KgUqYDs<Dͩ+q %vW4y ByjC2\zD߅ 7QEpܨmy$V }v7?Vǖ)򛎎2 =h1 *_ \.Y\l҆?lmiɪku'bWaڃD ֟JA\S-pHLշaN '߀וO֢ab:EtsGwٗJM/,v_,1Rv;;/ XK]#: \@bGku?Lz2#TN9菪NK[:ncL8tN#dNLrZ{`mETdi\ZiZ 4(mR8H[T|du?RMȜn𥁾'AopKs)֛$JljpGuCi/. %am6V1[Ds!)>PIbcz9E[me9nC BYQGs`t>&5I_}j PBb(\l[DKpuK'9!i^@$zEŹ,?IAs_[Nxފe=${wyyΣ ߜE_V( OK^'d@_g]m]Q+i sL&K;=z)?t*S1`,nv7MŇ~6C!$ j4X8 $U~W89mig6ೱa~M!)O’*7{"Oo1'; r==<+ @bC "WHD3B|:=-gл K7$y)%'#FJ_2#'cx]#_aSۅd VAgQA_#L2aMHDW$l+Ϟt/2s-_d V`|riiBTkV(>rYƜ4xAԒ6MV1x `pbjxQyAuLsA`8sT}7L*Ҭt׶b8ɫg_T\/撷]CÖ&cMߠU#x1i2_I)1K\ڼWApSeƶ3t¼\`587ӃC`Jt%3?yE+.Z,c{JѨ&a+::`),_SIbnSΜ/oXsÈo  Vri0VȅFI:~"4H+cvm4=Zn/wφ3-kj@LOV`O/Wk("yn] a!QzX@q8]p %Y cnVaLxU>ZZ<Tw0`kg