about summary refs log tree commit diff stats
path: root/html/034address.cc.html
blob: 03c374e6005d6265533719bbfa319dd98ac7f492 (plain) (blame)
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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Mu - 034address.cc</title>
<meta name="Generator" content="Vim/7.4">
<meta name="plugin-version" content="vim7.4_v2">
<meta name="syntax" content="cpp">
<meta name="settings" content="use_css,pre_wrap,no_foldcolumn,expand_tabs,prevent_copy=">
<meta name="colorscheme" content="minimal">
<style type="text/css">
<!--
pre { white-space: pre-wrap; font-family: monospace; color: #eeeeee; background-color: #080808; }
body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color: #080808; }
* { font-size: 12pt; font-size: 1em; }
.Constant { color: #00a0a0; }
.cSpecial { color: #008000; }
.CommentedCode { color: #6c6c6c; }
.muRecipe { color: #ff8700; }
.Comment { color: #9090ff; }
.Delimiter { color: #800080; }
.Special { color: #c00000; }
.traceContains { color: #008000; }
.Normal { color: #eeeeee; background-color: #080808; padding-bottom: 1px; }
.Identifier { color: #c0a020; }
-->
</style>

<script type='text/javascript'>
<!--

-->
</script>
</head>
<body>
<pre id='vimCodeElement'>
<span class="Comment">//: Addresses help us spend less time copying data around.</span>

<span class="Comment">//: So far we've been operating on primitives like numbers and characters, and</span>
<span class="Comment">//: we've started combining these primitives together into larger logical</span>
<span class="Comment">//: units (containers or arrays) that may contain many different primitives at</span>
<span class="Comment">//: once. Containers and arrays can grow quite large in complex programs, and</span>
<span class="Comment">//: we'd like some way to efficiently share them between recipes without</span>
<span class="Comment">//: constantly having to make copies. Right now 'next-ingredient' and 'return'</span>
<span class="Comment">//: copy data across recipe boundaries. To avoid copying large quantities of</span>
<span class="Comment">//: data around, we'll use *addresses*. An address is a bookmark to some</span>
<span class="Comment">//: arbitrary quantity of data (the *payload*). It's a primitive, so it's as</span>
<span class="Comment">//: efficient to copy as a number. To read or modify the payload 'pointed to'</span>
<span class="Comment">//: by an address, we'll perform a *lookup*.</span>
<span class="Comment">//:</span>
<span class="Comment">//: The notion of 'lookup' isn't an instruction like 'add' or 'subtract'.</span>
<span class="Comment">//: Instead it's an operation that can be performed when reading any of the</span>
<span class="Comment">//: ingredients of an instruction, and when writing to any of the products. To</span>
<span class="Comment">//: write to the payload of an ingredient rather than its value, simply add</span>
<span class="Comment">//: the /lookup property to it. Modern computers provide efficient support for</span>
<span class="Comment">//: addresses and lookups, making this a realistic feature.</span>
<span class="Comment">//:</span>
<span class="Comment">//: To recap: an address is a bookmark to some potentially large payload, and</span>
<span class="Comment">//: you can replace any ingredient or product with a lookup to an address of</span>
<span class="Comment">//: the appropriate type. But how do we get addresses to begin with? That</span>
<span class="Comment">//: requires a little more explanation. Once we introduce the notion of</span>
<span class="Comment">//: bookmarks to data, we have to think about the life cycle of a piece of</span>
<span class="Comment">//: data and its bookmarks (because remember, bookmarks can be copied around</span>
<span class="Comment">//: just like anything else). Otherwise several bad outcomes can result (and</span>
<span class="Comment">//: indeed *have* resulted in past languages like C):</span>
<span class="Comment">//:</span>
<span class="Comment">//:   a) You can run out of memory if you don't have a way to reclaim</span>
<span class="Comment">//:   data.</span>
<span class="Comment">//:   b) If you allow data to be reclaimed, you have to be careful not to</span>
<span class="Comment">//:   leave any stale addresses pointing at it. Otherwise your program might</span>
<span class="Comment">//:   try to lookup such an address and find something unexpected. Such</span>
<span class="Comment">//:   problems can be very hard to track down, and they can also be exploited</span>
<span class="Comment">//:   to break into your computer over the network, etc.</span>
<span class="Comment">//:</span>
<span class="Comment">//: To avoid these problems, we introduce the notion of a *reference count* or</span>
<span class="Comment">//: refcount. The life cycle of a bit of data accessed through addresses looks</span>
<span class="Comment">//: like this.</span>
<span class="Comment">//:</span>
<span class="Comment">//:    We create space in computer memory for it using the 'new' instruction.</span>
<span class="Comment">//:    The 'new' instruction takes a type as an ingredient, allocates</span>
<span class="Comment">//:    sufficient space to hold that type, and returns an address (bookmark)</span>
<span class="Comment">//:    to the allocated space.</span>
<span class="Comment">//:</span>
<span class="Comment">//:      x:address:num &lt;- new number:type</span>
<span class="Comment">//:</span>
<span class="Comment">//:                     +------------+</span>
<span class="Comment">//:          x -------&gt; |  number    |</span>
<span class="Comment">//:                     +------------+</span>
<span class="Comment">//:</span>
<span class="Comment">//:    That isn't entirely accurate. Under the hood, 'new' allocates an extra</span>
<span class="Comment">//:    number -- the refcount:</span>
<span class="Comment">//:</span>
<span class="Comment">//:                     +------------+------------+</span>
<span class="Comment">//:          x -------&gt; | refcount   |  number    |</span>
<span class="Comment">//:                     +------------+------------+</span>
<span class="Comment">//:</span>
<span class="Comment">//:    This probably seems like a waste of space. In practice it isn't worth</span>
<span class="Comment">//:    allocating individual numbers and our payload will tend to be larger,</span>
<span class="Comment">//:    so the picture would look more like this (zooming out a bit):</span>
<span class="Comment">//:</span>
<span class="Comment">//:                         +-------------------------+</span>
<span class="Comment">//:                     +---+                         |</span>
<span class="Comment">//:          x -------&gt; | r |                         |</span>
<span class="Comment">//:                     +---+        DATA             |</span>
<span class="Comment">//:                         |                         |</span>
<span class="Comment">//:                         |                         |</span>
<span class="Comment">//:                         +-------------------------+</span>
<span class="Comment">//:</span>
<span class="Comment">//:    (Here 'r' denotes the refcount. It occupies a tiny amount of space</span>
<span class="Comment">//:    compared to the payload.)</span>
<span class="Comment">//:</span>
<span class="Comment">//:    Anyways, back to our example where the data is just a single number.</span>
<span class="Comment">//:    After the call to 'new', Mu's map of memory looks like this:</span>
<span class="Comment">//:</span>
<span class="Comment">//:                     +---+------------+</span>
<span class="Comment">//:          x -------&gt; | 1 |  number    |</span>
<span class="Comment">//:                     +---+------------+</span>
<span class="Comment">//:</span>
<span class="Comment">//:    The refcount of 1 here indicates that this number has one bookmark</span>
<span class="Comment">//:    outstanding. If you then make a copy of x, the refcount increments:</span>
<span class="Comment">//:</span>
<span class="Comment">//:      y:address:num &lt;- copy x</span>
<span class="Comment">//:</span>
<span class="Comment">//:          x ---+     +---+------------+</span>
<span class="Comment">//:               +---&gt; | 2 |  number    |</span>
<span class="Comment">//:          y ---+     +---+------------+</span>
<span class="Comment">//:</span>
<span class="Comment">//:    Whether you access the payload through x or y, Mu knows how many</span>
<span class="Comment">//:    bookmarks are outstanding to it. When you change x or y, the refcount</span>
<span class="Comment">//:    transparently decrements:</span>
<span class="Comment">//:</span>
<span class="Comment">//:      x &lt;- copy 0  # an address is just a number, you can always write 0 to it</span>
<span class="Comment">//:</span>
<span class="Comment">//:                     +---+------------+</span>
<span class="Comment">//:          y -------&gt; | 1 |  number    |</span>
<span class="Comment">//:                     +---+------------+</span>
<span class="Comment">//:</span>
<span class="Comment">//:    The final flourish is what happens when the refcount goes down to 0: Mu</span>
<span class="Comment">//:    reclaims the space occupied by both refcount and payload in memory, and</span>
<span class="Comment">//:    they're ready to be reused by later calls to 'new'.</span>
<span class="Comment">//:</span>
<span class="Comment">//:      y &lt;- copy 0</span>
<span class="Comment">//:</span>
<span class="Comment">//:                     +---+------------+</span>
<span class="Comment">//:                     | 0 |  XXXXXXX   |</span>
<span class="Comment">//:                     +---+------------+</span>
<span class="Comment">//:</span>
<span class="Comment">//: Using refcounts fixes both our problems a) and b) above: you can use</span>
<span class="Comment">//: memory for many different purposes as many times as you want without</span>
<span class="Comment">//: running out of memory, and you don't have to worry about ever leaving a</span>
<span class="Comment">//: dangling bookmark when you reclaim memory.</span>
<span class="Comment">//:</span>
<span class="Comment">//: This layer implements creating addresses using 'new'. The next few layers</span>
<span class="Comment">//: will flesh out the rest of the life cycle.</span>

<span class="Comment">//: todo: give 'new' a custodian ingredient. Following malloc/free is a temporary hack.</span>

<span class="Delimiter">:(scenario new)</span>
<span class="Comment"># call 'new' two times with identical types without modifying the results; you</span>
<span class="Comment"># should get back different results</span>
<span class="muRecipe">def</span> main [
  <span class="Constant">1</span>:address:num/<span class="Special">raw &lt;- </span><span class="Normal">new</span> <span class="Constant">number:type</span>
  <span class="Constant">2</span>:address:num/<span class="Special">raw &lt;- </span><span class="Normal">new</span> <span class="Constant">number:type</span>
  <span class="Constant">3</span>:<span class="Normal">bool</span>/<span class="Special">raw &lt;- </span>equal <span class="Constant">1</span>:address:num/<span class="Special">raw</span><span class="Delimiter">,</span> <span class="Constant">2</span>:address:num/<span class="Special">raw</span>
]
<span class="traceContains">+mem: storing 0 in location 3</span>

<span class="Delimiter">:(scenario new_array)</span>
<span class="Comment"># call 'new' with a second ingredient to allocate an array of some type rather than a single copy</span>
<span class="muRecipe">def</span> main [
  <span class="Constant">1</span>:address:array:num/<span class="Special">raw &lt;- </span><span class="Normal">new</span> <span class="Constant">number:type</span><span class="Delimiter">,</span> <span class="Constant">5</span>
  <span class="Constant">2</span>:address:num/<span class="Special">raw &lt;- </span><span class="Normal">new</span> <span class="Constant">number:type</span>
  <span class="Constant">3</span>:num/<span class="Special">raw &lt;- </span>subtract <span class="Constant">2</span>:address:num/<span class="Special">raw</span><span class="Delimiter">,</span> <span class="Constant">1</span>:address:array:num/<span class="Special">raw</span>
]
<span class="traceContains">+run: {1: (&quot;address&quot; &quot;array&quot; &quot;number&quot;), &quot;raw&quot;: ()} &lt;- new {number: &quot;type&quot;}, {5: &quot;literal&quot;}</span>
<span class="traceContains">+mem: array length is 5</span>
<span class="Comment"># don't forget the extra location for array length, and the second extra location for the refcount</span>
<span class="traceContains">+mem: storing 7 in location 3</span>

<span class="Delimiter">:(scenario dilated_reagent_with_new)</span>
<span class="muRecipe">def</span> main [
  <span class="Constant">1</span>:address:address:num<span class="Special"> &lt;- </span><span class="Normal">new</span> <span class="Delimiter">{(</span>address number<span class="Delimiter">)</span>: type<span class="Delimiter">}</span>
]
<span class="traceContains">+new: size of '(address number)' is 1</span>

<span class="Comment">//: 'new' takes a weird 'type' as its first ingredient; don't error on it</span>
<span class="Delimiter">:(before &quot;End Mu Types Initialization&quot;)</span>
put<span class="Delimiter">(</span>Type_ordinal<span class="Delimiter">,</span> <span class="Constant">&quot;type&quot;</span><span class="Delimiter">,</span> <span class="Constant">0</span><span class="Delimiter">);</span>
<span class="Delimiter">:(code)</span>
<span class="Normal">bool</span> is_mu_type_literal<span class="Delimiter">(</span><span class="Normal">const</span> reagent&amp; r<span class="Delimiter">)</span> <span class="Delimiter">{</span>
  <span class="Identifier">return</span> is_literal<span class="Delimiter">(</span>r<span class="Delimiter">)</span> &amp;&amp; r<span class="Delimiter">.</span>type &amp;&amp; r<span class="Delimiter">.</span>type<span class="Delimiter">-&gt;</span>name == <span class="Constant">&quot;type&quot;</span><span class="Delimiter">;</span>
<span class="Delimiter">}</span>

<span class="Delimiter">:(before &quot;End Primitive Recipe Declarations&quot;)</span>
NEW<span class="Delimiter">,</span>
<span class="Delimiter">:(before &quot;End Primitive Recipe Numbers&quot;)</span>
put<span class="Delimiter">(</span>Recipe_ordinal<span class="Delimiter">,</span> <span class="Constant">&quot;new&quot;</span><span class="Delimiter">,</span> NEW<span class="Delimiter">);</span>
<span class="Delimiter">:(before &quot;End Primitive Recipe Checks&quot;)</span>
<span class="Normal">case</span> NEW: <span class="Delimiter">{</span>
  <span class="Normal">const</span> recipe&amp; caller = get<span class="Delimiter">(</span>Recipe<span class="Delimiter">,</span> r<span class="Delimiter">);</span>
  <span class="Normal">if</span> <span class="Delimiter">(</span>inst<span class="Delimiter">.</span>ingredients<span class="Delimiter">.</span>empty<span class="Delimiter">()</span> || SIZE<span class="Delimiter">(</span>inst<span class="Delimiter">.</span>ingredients<span class="Delimiter">)</span> &gt; <span class="Constant">2</span><span class="Delimiter">)</span> <span class="Delimiter">{</span>
    raise &lt;&lt; maybe<span class="Delimiter">(</span>caller<span class="Delimiter">.</span>name<span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;'new' requires one or two ingredients, but got '&quot;</span> &lt;&lt; inst<span class="Delimiter">.</span>original_string &lt;&lt; <span class="Constant">&quot;'</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span> &lt;&lt; end<span class="Delimiter">();</span>
    <span class="Identifier">break</span><span class="Delimiter">;</span>
  <span class="Delimiter">}</span>
  <span class="Comment">// End NEW Check Special-cases</span>
  <span class="Normal">const</span> reagent&amp; type = inst<span class="Delimiter">.</span>ingredients<span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">0</span><span class="Delimiter">);</span>
  <span class="Normal">if</span> <span class="Delimiter">(</span>!is_mu_type_literal<span class="Delimiter">(</span>type<span class="Delimiter">))</span> <span class="Delimiter">{</span>
    raise &lt;&lt; maybe<span class="Delimiter">(</span>caller<span class="Delimiter">.</span>name<span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;first ingredient of 'new' should be a type, but got '&quot;</span> &lt;&lt; type<span class="Delimiter">.</span>original_string &lt;&lt; <span class="Constant">&quot;'</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span> &lt;&lt; end<span class="Delimiter">();</span>
    <span class="Identifier">break</span><span class="Delimiter">;</span>
  <span class="Delimiter">}</span>
  <span class="Normal">if</span> <span class="Delimiter">(</span>SIZE<span class="Delimiter">(</span>inst<span class="Delimiter">.</span>ingredients<span class="Delimiter">)</span> &gt; <span class="Constant">1</span> &amp;&amp; !is_mu_number<span class="Delimiter">(</span>inst<span class="Delimiter">.</span>ingredients<span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">1</span><span class="Delimiter">)))</span> <span class="Delimiter">{</span>
    raise &lt;&lt; maybe<span class="Delimiter">(</span>caller<span class="Delimiter">.</span>name<span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;second ingredient of 'new' should be a number (array length), but got '&quot;</span> &lt;&lt; type<span class="Delimiter">.</span>original_string &lt;&lt; <span class="Constant">&quot;'</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span> &lt;&lt; end<span class="Delimiter">();</span>
    <span class="Identifier">break</span><span class="Delimiter">;</span>
  <span class="Delimiter">}</span>
  <span class="Normal">if</span> <span class="Delimiter">(</span>inst<span class="Delimiter">.</span>products<span class="Delimiter">.</span>empty<span class="Delimiter">())</span> <span class="Delimiter">{</span>
    raise &lt;&lt; maybe<span class="Delimiter">(</span>caller<span class="Delimiter">.</span>name<span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;result of 'new' should never be ignored</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span> &lt;&lt; end<span class="Delimiter">();</span>
    <span class="Identifier">break</span><span class="Delimiter">;</span>
  <span class="Delimiter">}</span>
  <span class="Normal">if</span> <span class="Delimiter">(</span>!product_of_new_is_valid<span class="Delimiter">(</span>inst<span class="Delimiter">))</span> <span class="Delimiter">{</span>
    raise &lt;&lt; maybe<span class="Delimiter">(</span>caller<span class="Delimiter">.</span>name<span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;product of 'new' has incorrect type: '&quot;</span> &lt;&lt; inst<span class="Delimiter">.</span>original_string &lt;&lt; <span class="Constant">&quot;'</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span> &lt;&lt; end<span class="Delimiter">();</span>
    <span class="Identifier">break</span><span class="Delimiter">;</span>
  <span class="Delimiter">}</span>
  <span class="Identifier">break</span><span class="Delimiter">;</span>
<span class="Delimiter">}</span>
<span class="Delimiter">:(code)</span>
<span class="Normal">bool</span> product_of_new_is_valid<span class="Delimiter">(</span><span class="Normal">const</span> instruction&amp; inst<span class="Delimiter">)</span> <span class="Delimiter">{</span>
  reagent<span class="Comment">/*</span><span class="Comment">copy</span><span class="Comment">*/</span> product = inst<span class="Delimiter">.</span>products<span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">0</span><span class="Delimiter">);</span>
  <span class="Comment">// Update NEW product in Check</span>
  <span class="Normal">if</span> <span class="Delimiter">(</span>!product<span class="Delimiter">.</span>type || product<span class="Delimiter">.</span>type<span class="Delimiter">-&gt;</span>atom || product<span class="Delimiter">.</span>type<span class="Delimiter">-&gt;</span>left<span class="Delimiter">-&gt;</span>value != get<span class="Delimiter">(</span>Type_ordinal<span class="Delimiter">,</span> <span class="Constant">&quot;address&quot;</span><span class="Delimiter">))</span>
    <span class="Identifier">return</span> <span class="Constant">false</span><span class="Delimiter">;</span>
  drop_from_type<span class="Delimiter">(</span>product<span class="Delimiter">,</span> <span class="Constant">&quot;address&quot;</span><span class="Delimiter">);</span>
  <span class="Normal">if</span> <span class="Delimiter">(</span>SIZE<span class="Delimiter">(</span>inst<span class="Delimiter">.</span>ingredients<span class="Delimiter">)</span> &gt; <span class="Constant">1</span><span class="Delimiter">)</span> <span class="Delimiter">{</span>
    <span class="Comment">// array allocation</span>
    <span class="Normal">if</span> <span class="Delimiter">(</span>!product<span class="Delimiter">.</span>type || product<span class="Delimiter">.</span>type<span class="Delimiter">-&gt;</span>atom || product<span class="Delimiter">.</span>type<span class="Delimiter">-&gt;</span>left<span class="Delimiter">-&gt;</span>value != get<span class="Delimiter">(</span>Type_ordinal<span class="Delimiter">,</span> <span class="Constant">&quot;array&quot;</span><span class="Delimiter">))</span>
      <span class="Identifier">return</span> <span class="Constant">false</span><span class="Delimiter">;</span>
    drop_from_type<span class="Delimiter">(</span>product<span class="Delimiter">,</span> <span class="Constant">&quot;array&quot;</span><span class="Delimiter">);</span>
  <span class="Delimiter">}</span>
  reagent<span class="Comment">/*</span><span class="Comment">local</span><span class="Comment">*/</span> expected_product<span class="Delimiter">;</span>
  expected_product<span class="Delimiter">.</span>type = new_type_tree<span class="Delimiter">(</span>inst<span class="Delimiter">.</span>ingredients<span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">0</span><span class="Delimiter">).</span>name<span class="Delimiter">);</span>
  <span class="Identifier">return</span> types_strictly_match<span class="Delimiter">(</span>product<span class="Delimiter">,</span> expected_product<span class="Delimiter">);</span>
<span class="Delimiter">}</span>

<span class="Normal">void</span> drop_from_type<span class="Delimiter">(</span>reagent&amp; r<span class="Delimiter">,</span> string expected_type<span class="Delimiter">)</span> <span class="Delimiter">{</span>
  assert<span class="Delimiter">(</span>!r<span class="Delimiter">.</span>type<span class="Delimiter">-&gt;</span>atom<span class="Delimiter">);</span>
  <span class="Normal">if</span> <span class="Delimiter">(</span>r<span class="Delimiter">.</span>type<span class="Delimiter">-&gt;</span>left<span class="Delimiter">-&gt;</span>name != expected_type<span class="Delimiter">)</span> <span class="Delimiter">{</span>
    raise &lt;&lt; <span class="Constant">&quot;can't drop2 &quot;</span> &lt;&lt; expected_type &lt;&lt; <span class="Constant">&quot; from '&quot;</span> &lt;&lt; to_string<span class="Delimiter">(</span>r<span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;'</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span> &lt;&lt; end<span class="Delimiter">();</span>
    <span class="Identifier">return</span><span class="Delimiter">;</span>
  <span class="Delimiter">}</span>
  <span class="Comment">// r.type = r.type-&gt;right</span>
  type_tree* tmp = r<span class="Delimiter">.</span>type<span class="Delimiter">;</span>
  r<span class="Delimiter">.</span>type = tmp<span class="Delimiter">-&gt;</span>right<span class="Delimiter">;</span>
  tmp<span class="Delimiter">-&gt;</span>right = <span class="Constant">NULL</span><span class="Delimiter">;</span>
  <span class="Normal">delete</span> tmp<span class="Delimiter">;</span>
  <span class="Comment">// if (!r.type-&gt;right) r.type = r.type-&gt;left</span>
  assert<span class="Delimiter">(</span>!r<span class="Delimiter">.</span>type<span class="Delimiter">-&gt;</span>atom<span class="Delimiter">);</span>
  <span class="Normal">if</span> <span class="Delimiter">(</span>r<span class="Delimiter">.</span>type<span class="Delimiter">-&gt;</span>right<span class="Delimiter">)</span> <span class="Identifier">return</span><span class="Delimiter">;</span>
  tmp = r<span class="Delimiter">.</span>type<span class="Delimiter">;</span>
  r<span class="Delimiter">.</span>type = tmp<span class="Delimiter">-&gt;</span>left<span class="Delimiter">;</span>
  tmp<span class="Delimiter">-&gt;</span>left = <span class="Constant">NULL</span><span class="Delimiter">;</span>
  <span class="Normal">delete</span> tmp<span class="Delimiter">;</span>
<span class="Delimiter">}</span>

<span class="Delimiter">:(scenario new_returns_incorrect_type)</span>
<span class="Special">% Hide_errors = true;</span>
<span class="muRecipe">def</span> main [
  <span class="Constant">1</span>:<span class="Normal">bool</span><span class="Special"> &lt;- </span><span class="Normal">new</span> <span class="Constant">num:type</span>
]
<span class="traceContains">+error: main: product of 'new' has incorrect type: '1:bool &lt;- new num:type'</span>

<span class="Delimiter">:(scenario new_discerns_singleton_list_from_atom_container)</span>
<span class="Special">% Hide_errors = true;</span>
<span class="muRecipe">def</span> main [
  <span class="Constant">1</span>:address:num/<span class="Special">raw &lt;- </span><span class="Normal">new</span> <span class="Delimiter">{(</span>num<span class="Delimiter">)</span>: type<span class="Delimiter">}</span>  <span class="Comment"># should be '{num: type}'</span>
]
<span class="traceContains">+error: main: product of 'new' has incorrect type: '1:address:num/raw &lt;- new {(num): type}'</span>

<span class="Delimiter">:(scenario new_with_type_abbreviation)</span>
<span class="muRecipe">def</span> main [
  <span class="Constant">1</span>:address:num/<span class="Special">raw &lt;- </span><span class="Normal">new</span> <span class="Constant">num:type</span>
]
$error: <span class="Constant">0</span>

<span class="Delimiter">:(scenario new_with_type_abbreviation_inside_compound)</span>
<span class="muRecipe">def</span> main [
  <span class="Delimiter">{</span><span class="Constant">1</span>: <span class="Delimiter">(</span>address address number<span class="Delimiter">),</span> <span class="Special">raw</span>: <span class="Delimiter">()}</span><span class="Special"> &lt;- </span><span class="Normal">new</span> <span class="Delimiter">{(</span>&amp; num<span class="Delimiter">)</span>: type<span class="Delimiter">}</span>
]
$error: <span class="Constant">0</span>

<span class="Comment">//: To implement 'new', a Mu transform turns all 'new' instructions into</span>
<span class="Comment">//: 'allocate' instructions that precompute the amount of memory they want to</span>
<span class="Comment">//: allocate.</span>

<span class="Comment">//: Ensure that we never call 'allocate' directly, and that there's no 'new'</span>
<span class="Comment">//: instructions left after the transforms have run.</span>
<span class="Delimiter">:(before &quot;End Primitive Recipe Checks&quot;)</span>
<span class="Normal">case</span> ALLOCATE: <span class="Delimiter">{</span>
  raise &lt;&lt; <span class="Constant">&quot;never call 'allocate' directly'; always use 'new'</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span> &lt;&lt; end<span class="Delimiter">();</span>
  <span class="Identifier">break</span><span class="Delimiter">;</span>
<span class="Delimiter">}</span>
<span class="Delimiter">:(before &quot;End Primitive Recipe Implementations&quot;)</span>
<span class="Normal">case</span> NEW: <span class="Delimiter">{</span>
  raise &lt;&lt; <span class="Constant">&quot;no implementation for 'new'; why wasn't it translated to 'allocate'? Please save a copy of your program and send it to Kartik.</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span> &lt;&lt; end<span class="Delimiter">();</span>
  <span class="Identifier">break</span><span class="Delimiter">;</span>
<span class="Delimiter">}</span>

<span class="Delimiter">:(after &quot;Transform.push_back(check_instruction)&quot;)</span>  <span class="Comment">// check_instruction will guard against direct 'allocate' instructions below</span>
Transform<span class="Delimiter">.</span>push_back<span class="Delimiter">(</span>transform_new_to_allocate<span class="Delimiter">);</span>  <span class="Comment">// idempotent</span>

<span class="Delimiter">:(code)</span>
<span class="Normal">void</span> transform_new_to_allocate<span class="Delimiter">(</span><span class="Normal">const</span> recipe_ordinal r<span class="Delimiter">)</span> <span class="Delimiter">{</span>
  trace<span class="Delimiter">(</span><span class="Constant">9991</span><span class="Delimiter">,</span> <span class="Constant">&quot;transform&quot;</span><span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;--- convert 'new' to 'allocate' for recipe &quot;</span> &lt;&lt; get<span class="Delimiter">(</span>Recipe<span class="Delimiter">,</span> r<span class="Delimiter">).</span>name &lt;&lt; end<span class="Delimiter">();</span>
  <span class="Normal">for</span> <span class="Delimiter">(</span><span class="Normal">int</span> i = <span class="Constant">0</span><span class="Delimiter">;</span>  i &lt; SIZE<span class="Delimiter">(</span>get<span class="Delimiter">(</span>Recipe<span class="Delimiter">,</span> r<span class="Delimiter">).</span>steps<span class="Delimiter">);</span>  ++i<span class="Delimiter">)</span> <span class="Delimiter">{</span>
    instruction&amp; inst = get<span class="Delimiter">(</span>Recipe<span class="Delimiter">,</span> r<span class="Delimiter">).</span>steps<span class="Delimiter">.</span>at<span class="Delimiter">(</span>i<span class="Delimiter">);</span>
    <span class="Comment">// Convert 'new' To 'allocate'</span>
    <span class="Normal">if</span> <span class="Delimiter">(</span>inst<span class="Delimiter">.</span>name == <span class="Constant">&quot;new&quot;</span><span class="Delimiter">)</span> <span class="Delimiter">{</span>
      inst<span class="Delimiter">.</span>operation = ALLOCATE<span class="Delimiter">;</span>
      type_tree* type = new_type_tree<span class="Delimiter">(</span>inst<span class="Delimiter">.</span>ingredients<span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">0</span><span class="Delimiter">).</span>name<span class="Delimiter">);</span>
      inst<span class="Delimiter">.</span>ingredients<span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">0</span><span class="Delimiter">).</span>set_value<span class="Delimiter">(</span>size_of<span class="Delimiter">(</span>type<span class="Delimiter">));</span>
      trace<span class="Delimiter">(</span><span class="Constant">9992</span><span class="Delimiter">,</span> <span class="Constant">&quot;new&quot;</span><span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;size of '&quot;</span> &lt;&lt; inst<span class="Delimiter">.</span>ingredients<span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">0</span><span class="Delimiter">).</span>name &lt;&lt; <span class="Constant">&quot;' is &quot;</span> &lt;&lt; inst<span class="Delimiter">.</span>ingredients<span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">0</span><span class="Delimiter">).</span>value &lt;&lt; end<span class="Delimiter">();</span>
      <span class="Normal">delete</span> type<span class="Delimiter">;</span>
    <span class="Delimiter">}</span>
  <span class="Delimiter">}</span>
<span class="Delimiter">}</span>

<span class="Comment">//: implement 'allocate' based on size</span>

<span class="Delimiter">:(before &quot;End Globals&quot;)</span>
<span class="Normal">extern</span> <span class="Normal">const</span> <span class="Normal">int</span> Reserved_for_tests = <span class="Constant">1000</span><span class="Delimiter">;</span>
<span class="Normal">int</span> Memory_allocated_until = Reserved_for_tests<span class="Delimiter">;</span>
<span class="Normal">int</span> Initial_memory_per_routine = <span class="Constant">100000</span><span class="Delimiter">;</span>
<span class="Delimiter">:(before &quot;End Setup&quot;)</span>
Memory_allocated_until = Reserved_for_tests<span class="Delimiter">;</span>
Initial_memory_per_routine = <span class="Constant">100000</span><span class="Delimiter">;</span>
<span class="Delimiter">:(before &quot;End routine Fields&quot;)</span>
<span class="Normal">int</span> alloc<span class="Delimiter">,</span> alloc_max<span class="Delimiter">;</span>
<span class="Delimiter">:(before &quot;End routine Constructor&quot;)</span>
alloc = Memory_allocated_until<span class="Delimiter">;</span>
Memory_allocated_until += Initial_memory_per_routine<span class="Delimiter">;</span>
alloc_max = Memory_allocated_until<span class="Delimiter">;</span>
trace<span class="Delimiter">(</span><span class="Constant">9999</span><span class="Delimiter">,</span> <span class="Constant">&quot;new&quot;</span><span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;routine allocated memory from &quot;</span> &lt;&lt; alloc &lt;&lt; <span class="Constant">&quot; to &quot;</span> &lt;&lt; alloc_max &lt;&lt; end<span class="Delimiter">();</span>

<span class="Delimiter">:(before &quot;End Primitive Recipe Declarations&quot;)</span>
ALLOCATE<span class="Delimiter">,</span>
<span class="Delimiter">:(before &quot;End Primitive Recipe Numbers&quot;)</span>
put<span class="Delimiter">(</span>Recipe_ordinal<span class="Delimiter">,</span> <span class="Constant">&quot;allocate&quot;</span><span class="Delimiter">,</span> ALLOCATE<span class="Delimiter">);</span>
<span class="Delimiter">:(before &quot;End Primitive Recipe Implementations&quot;)</span>
<span class="Normal">case</span> ALLOCATE: <span class="Delimiter">{</span>
  <span class="Comment">// compute the space we need</span>
  <span class="Normal">int</span> size = ingredients<span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">0</span><span class="Delimiter">).</span>at<span class="Delimiter">(</span><span class="Constant">0</span><span class="Delimiter">);</span>
  <span class="Normal">if</span> <span class="Delimiter">(</span>SIZE<span class="Delimiter">(</span>ingredients<span class="Delimiter">)</span> &gt; <span class="Constant">1</span><span class="Delimiter">)</span> <span class="Delimiter">{</span>
    <span class="Comment">// array allocation</span>
    trace<span class="Delimiter">(</span><span class="Constant">9999</span><span class="Delimiter">,</span> <span class="Constant">&quot;mem&quot;</span><span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;array length is &quot;</span> &lt;&lt; ingredients<span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">1</span><span class="Delimiter">).</span>at<span class="Delimiter">(</span><span class="Constant">0</span><span class="Delimiter">)</span> &lt;&lt; end<span class="Delimiter">();</span>
    size = <span class="Comment">/*</span><span class="Comment">space for length</span><span class="Comment">*/</span><span class="Constant">1</span> + size*ingredients<span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">1</span><span class="Delimiter">).</span>at<span class="Delimiter">(</span><span class="Constant">0</span><span class="Delimiter">);</span>
  <span class="Delimiter">}</span>
  <span class="Normal">int</span> result = allocate<span class="Delimiter">(</span>size<span class="Delimiter">);</span>
  <span class="Normal">if</span> <span class="Delimiter">(</span>SIZE<span class="Delimiter">(</span>current_instruction<span class="Delimiter">().</span>ingredients<span class="Delimiter">)</span> &gt; <span class="Constant">1</span><span class="Delimiter">)</span> <span class="Delimiter">{</span>
    <span class="Comment">// initialize array length</span>
    trace<span class="Delimiter">(</span><span class="Constant">9999</span><span class="Delimiter">,</span> <span class="Constant">&quot;mem&quot;</span><span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;storing &quot;</span> &lt;&lt; ingredients<span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">1</span><span class="Delimiter">).</span>at<span class="Delimiter">(</span><span class="Constant">0</span><span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot; in location &quot;</span> &lt;&lt; result+<span class="Comment">/*</span><span class="Comment">skip refcount</span><span class="Comment">*/</span><span class="Constant">1</span> &lt;&lt; end<span class="Delimiter">();</span>
    put<span class="Delimiter">(</span>Memory<span class="Delimiter">,</span> result+<span class="Comment">/*</span><span class="Comment">skip refcount</span><span class="Comment">*/</span><span class="Constant">1</span><span class="Delimiter">,</span> ingredients<span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">1</span><span class="Delimiter">).</span>at<span class="Delimiter">(</span><span class="Constant">0</span><span class="Delimiter">));</span>
  <span class="Delimiter">}</span>
  products<span class="Delimiter">.</span>resize<span class="Delimiter">(</span><span class="Constant">1</span><span class="Delimiter">);</span>
  products<span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">0</span><span class="Delimiter">).</span>push_back<span class="Delimiter">(</span>result<span class="Delimiter">);</span>
  <span class="Identifier">break</span><span class="Delimiter">;</span>
<span class="Delimiter">}</span>
<span class="Delimiter">:(code)</span>
<span class="Normal">int</span> allocate<span class="Delimiter">(</span><span class="Normal">int</span> size<span class="Delimiter">)</span> <span class="Delimiter">{</span>
  <span class="Comment">// include space for refcount</span>
  ++size<span class="Delimiter">;</span>
  trace<span class="Delimiter">(</span><span class="Constant">9999</span><span class="Delimiter">,</span> <span class="Constant">&quot;mem&quot;</span><span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;allocating size &quot;</span> &lt;&lt; size &lt;&lt; end<span class="Delimiter">();</span>
<span class="CommentedCode">//?   Total_alloc += size;</span>
<span class="CommentedCode">//?   ++Num_alloc;</span>
  <span class="Comment">// Allocate Special-cases</span>
  <span class="Comment">// compute the region of memory to return</span>
  <span class="Comment">// really crappy at the moment</span>
  ensure_space<span class="Delimiter">(</span>size<span class="Delimiter">);</span>
  <span class="Normal">const</span> <span class="Normal">int</span> result = Current_routine<span class="Delimiter">-&gt;</span>alloc<span class="Delimiter">;</span>
  trace<span class="Delimiter">(</span><span class="Constant">9999</span><span class="Delimiter">,</span> <span class="Constant">&quot;mem&quot;</span><span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;new alloc: &quot;</span> &lt;&lt; result &lt;&lt; end<span class="Delimiter">();</span>
  <span class="Comment">// initialize allocated space</span>
  <span class="Normal">for</span> <span class="Delimiter">(</span><span class="Normal">int</span> address = result<span class="Delimiter">;</span>  address &lt; result+size<span class="Delimiter">;</span>  ++address<span class="Delimiter">)</span> <span class="Delimiter">{</span>
    trace<span class="Delimiter">(</span><span class="Constant">9999</span><span class="Delimiter">,</span> <span class="Constant">&quot;mem&quot;</span><span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;storing 0 in location &quot;</span> &lt;&lt; address &lt;&lt; end<span class="Delimiter">();</span>
    put<span class="Delimiter">(</span>Memory<span class="Delimiter">,</span> address<span class="Delimiter">,</span> <span class="Constant">0</span><span class="Delimiter">);</span>
  <span class="Delimiter">}</span>
  Current_routine<span class="Delimiter">-&gt;</span>alloc += size<span class="Delimiter">;</span>
  <span class="Comment">// no support yet for reclaiming memory between routines</span>
  assert<span class="Delimiter">(</span>Current_routine<span class="Delimiter">-&gt;</span>alloc &lt;= Current_routine<span class="Delimiter">-&gt;</span>alloc_max<span class="Delimiter">);</span>
  <span class="Identifier">return</span> result<span class="Delimiter">;</span>
<span class="Delimiter">}</span>

<span class="Comment">//: statistics for debugging</span>
<span class="CommentedCode">//? :(before &quot;End Globals&quot;)</span>
<span class="CommentedCode">//? int Total_alloc = 0;</span>
<span class="CommentedCode">//? int Num_alloc = 0;</span>
<span class="CommentedCode">//? int Total_free = 0;</span>
<span class="CommentedCode">//? int Num_free = 0;</span>
<span class="CommentedCode">//? :(before &quot;End Setup&quot;)</span>
<span class="CommentedCode">//? Total_alloc = Num_alloc = Total_free = Num_free = 0;</span>
<span class="CommentedCode">//? :(before &quot;End Teardown&quot;)</span>
<span class="CommentedCode">//? cerr &lt;&lt; Total_alloc &lt;&lt; &quot;/&quot; &lt;&lt; Num_alloc</span>
<span class="CommentedCode">//?      &lt;&lt; &quot; vs &quot; &lt;&lt; Total_free &lt;&lt; &quot;/&quot; &lt;&lt; Num_free &lt;&lt; '\n';</span>
<span class="CommentedCode">//? cerr &lt;&lt; SIZE(Memory) &lt;&lt; '\n';</span>

<span class="Delimiter">:(code)</span>
<span class="Normal">void</span> ensure_space<span class="Delimiter">(</span><span class="Normal">int</span> size<span class="Delimiter">)</span> <span class="Delimiter">{</span>
  <span class="Normal">if</span> <span class="Delimiter">(</span>size &gt; Initial_memory_per_routine<span class="Delimiter">)</span> <span class="Delimiter">{</span>
    tb_shutdown<span class="Delimiter">();</span>
    cerr &lt;&lt; <span class="Constant">&quot;can't allocate &quot;</span> &lt;&lt; size &lt;&lt; <span class="Constant">&quot; locations, that's too much compared to &quot;</span> &lt;&lt; Initial_memory_per_routine &lt;&lt; <span class="Constant">&quot;.</span><span class="cSpecial">\n</span><span class="Constant">&quot;</span><span class="Delimiter">;</span>
    exit<span class="Delimiter">(</span><span class="Constant">0</span><span class="Delimiter">);</span>
  <span class="Delimiter">}</span>
  <span class="Normal">if</span> <span class="Delimiter">(</span>Current_routine<span class="Delimiter">-&gt;</span>alloc + size &gt; Current_routine<span class="Delimiter">-&gt;</span>alloc_max<span class="Delimiter">)</span> <span class="Delimiter">{</span>
    <span class="Comment">// waste the remaining space and create a new chunk</span>
    Current_routine<span class="Delimiter">-&gt;</span>alloc = Memory_allocated_until<span class="Delimiter">;</span>
    Memory_allocated_until += Initial_memory_per_routine<span class="Delimiter">;</span>
    Current_routine<span class="Delimiter">-&gt;</span>alloc_max = Memory_allocated_until<span class="Delimiter">;</span>
    trace<span class="Delimiter">(</span><span class="Constant">9999</span><span class="Delimiter">,</span> <span class="Constant">&quot;new&quot;</span><span class="Delimiter">)</span> &lt;&lt; <span class="Constant">&quot;routine allocated memory from &quot;</span> &lt;&lt; Current_routine<span class="Delimiter">-&gt;</span>alloc &lt;&lt; <span class="Constant">&quot; to &quot;</span> &lt;&lt; Current_routine<span class="Delimiter">-&gt;</span>alloc_max &lt;&lt; end<span class="Delimiter">();</span>
  <span class="Delimiter">}</span>
<span class="Delimiter">}</span>

<span class="Delimiter">:(scenario new_initializes)</span>
<span class="Special">% Memory_allocated_until = 10;</span>
<span class="Special">% put(Memory, Memory_allocated_until, 1);</span>
<span class="muRecipe">def</span> main [
  <span class="Constant">1</span>:address:num<span class="Special"> &lt;- </span><span class="Normal">new</span> <span class="Constant">number:type</span>
]
<span class="traceContains">+mem: storing 0 in location 10</span>

<span class="Delimiter">:(scenario new_size)</span>
<span class="muRecipe">def</span> main [
  <span class="Constant">11</span>:address:num/<span class="Special">raw &lt;- </span><span class="Normal">new</span> <span class="Constant">number:type</span>
  <span class="Constant">12</span>:address:num/<span class="Special">raw &lt;- </span><span class="Normal">new</span> <span class="Constant">number:type</span>
  <span class="Constant">13</span>:num/<span class="Special">raw &lt;- </span>subtract <span class="Constant">12</span>:address:num/<span class="Special">raw</span><span class="Delimiter">,</span> <span class="Constant">11</span>:address:num/<span class="Special">raw</span>
]
<span class="Comment"># size of number + refcount</span>
<span class="traceContains">+mem: storing 2 in location 13</span>

<span class="Delimiter">:(scenario new_array_size)</span>
<span class="muRecipe">def</span> main [
  <span class="Constant">1</span>:address:array:num/<span class="Special">raw &lt;- </span><span class="Normal">new</span> <span class="Constant">number:type</span><span class="Delimiter">,</span> <span class="Constant">5</span>
  <span class="Constant">2</span>:address:num/<span class="Special">raw &lt;- </span><span class="Normal">new</span> <span class="Constant">number:type</span>
  <span class="Constant">3</span>:num/<span class="Special">raw &lt;- </span>subtract <span class="Constant">2</span>:address:num/<span class="Special">raw</span><span class="Delimiter">,</span> <span class="Constant">1</span>:address:array:num/<span class="Special">raw</span>
]
<span class="Comment"># 5 locations for array contents + array length + refcount</span>
<span class="traceContains">+mem: storing 7 in location 3</span>

<span class="Delimiter">:(scenario new_empty_array)</span>
<span class="muRecipe">def</span> main [
  <span class="Constant">1</span>:address:array:num/<span class="Special">raw &lt;- </span><span class="Normal">new</span> <span class="Constant">number:type</span><span class="Delimiter">,</span> <span class="Constant">0</span>
  <span class="Constant">2</span>:address:num/<span class="Special">raw &lt;- </span><span class="Normal">new</span> <span class="Constant">number:type</span>
  <span class="Constant">3</span>:num/<span class="Special">raw &lt;- </span>subtract <span class="Constant">2</span>:address:num/<span class="Special">raw</span><span class="Delimiter">,</span> <span class="Constant">1</span>:address:array:num/<span class="Special">raw</span>
]
<span class="traceContains">+run: {1: (&quot;address&quot; &quot;array&quot; &quot;number&quot;), &quot;raw&quot;: ()} &lt;- new {number: &quot;type&quot;}, {0: &quot;literal&quot;}</span>
<span class="traceContains">+mem: array length is 0</span>
<span class="Comment"># one location for array length, and one for the refcount</span>
<span class="traceContains">+mem: storing 2 in location 3</span>

<span class="Comment">//: If a routine runs out of its initial allocation, it should allocate more.</span>
<span class="Delimiter">:(scenario new_overflow)</span>
<span class="Special">% Initial_memory_per_routine = 3;  // barely enough room for point allocation below</span>
<span class="muRecipe">def</span> main [
  <span class="Constant">1</span>:address:num/<span class="Special">raw &lt;- </span><span class="Normal">new</span> <span class="Constant">number:type</span>
  <span class="Constant">2</span>:address:point/<span class="Special">raw &lt;- </span><span class="Normal">new</span> <span class="Constant">point:type</span>  <span class="Comment"># not enough room in initial page</span>
]
<span class="traceContains">+new: routine allocated memory from 1000 to 1003</span>
<span class="traceContains">+new: routine allocated memory from 1003 to 1006</span>
</pre>
</body>
</html>
<!-- vim: set foldmethod=manual : -->
fDh-n7khc=L-#U/FQaF\N|q>=k$6\!Q4Ze!5H}u`׆lR FS|CiV1z?"5ZV4A\qr_ Fs3NEFJ+ap-XLzBi%yJCA#}t&#h Lb1̀`֥W",#ch(ƹ&E>ίwpy|rzN_+А<՞G[' } ,-j;04ۺg@?0i \vŴ/%:3ZJɟE-HW&k)׻2їp%' hkc'ϫns-nϼMY~rxsgl&9&<-4-2Krw<'ܾ Nf~;ix8b6yf}y׃/$hW htWbj$}}kg+ߞ|}{}`orx qyIOQӵA)i\GSv!&Zq>3v@76׷huf :M;X ;ow~H~/#2&Ҳˏ < @ ,x`Rڦ_\cqQJ%KNU$Ӳ-7UηC#$/ұ_i 3 dV9w99ee EHӭxY2z  ^e-q ZD'Ԅ;LF@XQ761[)Hh3!bbr"lOU3BN>_ĕm*ӱ38Sb~@!ݥFq 'U,09W}{|)Vp%O&-2߈ ]J8~kIKЌEMYՊiȑj$3Ԛ.wǩeOO&%lfY2O_/M9]:3x3gld:BwR=&R(+FO V,Y?{XUσ<^!Inйw1|yuLUEqwɳqz?|Ǟϟ#H^CuПvx_7Z)lN- YW*)cw8L컨KG@sd{`21RK`RΝtw6y= Tr-fϊ5-B,/.=JOv#'@KQz6AHo@>ygWFz: a;g3\3uBOZᩝ:B*0]`+1ڝqPx6.48=,u=gHg5Il:$>0|+$!27 qmޝd5H3Ē[x7Ki9|҅7ј*"LFhuq7P4++R}2\z9<v:|6e8sCh0D'L2Np'on%9Khgj bn,bĆmY ӈ^YZJ k7#R1'0Ga0sFq8v%oCnD XoNם\ 3r$?i;O2UKAq]W%q χo~2v8tBxwd0`)}zkWzTW2w7_tXwz;o'BkzGlD`msþZN[bYpv $D]-7.0'o^UOUCoH7P?mQ76UVvmdV`RnWuzHgub\h]ƊA0~O p+oPaW9ko^ts 7#f{ˡ  >֔iDq>^R1Q,b$ފQ/'MxbKԍjYlWto $RCv۴*U: ?=r@ωSL_t)`Sl`c/a;*}*Pv2#t}?lB͟oA>)lU`_YbE8 莿c&1o<9tFE+6gA3nKPB߃]iC/$>4\ ř^ ̹Pn^n,uRm*A̞fz)g,zva>pyE9 _B"ԛX<;$ҹjÚ.>wb_ӌ&=ɒlQ0%8nl%(6I߾o0Z&wr{cuEۜ!4 AV+]$ݖK^89ԃ<8_r6~tUL/мٖ̈SBcJi,A>嬂F2-n#/ŋnhf 01-st`yqw7#wo|$U PW]PK7Y7¦Pi~%0@]L{BkYL"NaRbztXŠI.)SoTl4-C̗S2}Obp6mHm-t7Mﻮ@`¸eM@QFn޾Cû8 f&.G({i: ݩFLX#, ݺFݳt2lj$dz-Rf_  R΀D f1[%WBxiId+8KŻnɄ́n`#﷎H|xY'qE×Q!U"9N-EE/H'B@15ARIQުF8y)jvSQ-W wO3l& UNe:񵘕G5?i`}$<($\,gI#$4T7O^sy ^lpJicsp]d[2r\tyqxVt:*fC~dvK࿘|YV[-^y3`ND=ڋΞnwvGe"p͹̾ פo;6Z'ȧIB/װ5ⴜ3G(0f}+f0l229ڵk1:{" [th2&zen(4P3Vqi<^%If‰WFD%(8 Y1s]*ݝѳ0v7%9@P?6%ىo)Y($~)\urW~ "r3ƌ0rmpd$×╽zF ;/H|xTrͫ)f6HbKf{Upo$E=&5]B/A~ST="].CanKpe'7Z*1#,g+p]A.'(NEb!d.#"YI#e+/Dٮ-V ~M]<2ャuG _V~T6feS5uGȻ/RvCxnEy1+ h^_od"1~^"0Q|#an2ٍ'ej1^ $m#5E&/rse+H2 %1J,bI nJ|-0eM6JJ#n%f^Pât;5|x<1r5Tt@v.N~4;Gz:OhynջIFgY|5F㌭ϭ\#VsIT| z  `Ul0ؓIW";΢G dA$dr)I|_4.o9 K^w|j&%2y_vryS"AfݥJ$Wm[/M YTvԺofJ|_kG @{%@>k$50kks )k0qwί}s.HR(~Ù$d1h!/U3o;,|޷BȲdU9klճtZr۬)uCf7*Z y4xWo=EHMEZF(Y7ܑ4]k<7~D W溼ܑ3VhȾwSܫn磝ӟ_О?HCXnZ[˙N9[@+|-Y僯[ץ-Byh"V$BQkI1ZR {o!&®p@pBI&Z\`[OWo"2yCe^: ҈zxo#쥲XŒfUb.#NZ,| ) H2\Fc厸B`s{zԒQ}6-ىZNjf`1F=Bj8< Y5h;ȰD3$ۡq0+ŰgY.س _eZjZ ZkKV`a{ZSLֶx% sb0IMtѱ'lK2)þ<Teb @/a2MaFBj(ĦXi:'ǹ*Wҩn&f');HTa%R aC J`SL#Ua43yyic$1G$b\(p:öA0C sa{RMֱ&,3y(ܑ ]*Y៤c"ètV{g(C?Cc|ƱiV.n:ҩ)ME s@M]F- TZ~T.5Sgi2MUOfƙ=%+ΫWSnqw6̓U^zP7U?6l((D- 'B໪5]fjǍ_8܃*B?b1&6-%l7 s53Bᒦ/:t-rPYkY6CVbAxb4KARi@XxZW=ѵ0i:&uMwrt{WS{XYƓU]@ A|DƘyDY.͓J B>r"R~D zq>7lG5 (YtV-t!y``Sp'nx:8r~MB-w*뀘3dA*~4ΩjA(SDl1#Qt=Ï:Ln)0m`u>GhGl2Kt)m(0ౢT'Ǐ7K?aݹ>2Z0 .`'(?%ڝuof3'El[Td\iygv$tpl˝5u4$G YhiOՔS{^36𥛃?r>9'K >'Ї9*бv^Ms4,H|?DvʉˍPY;[gU9t R;]i,WY-/=Me۬;#hXӏ> L.ˎ-TV,쮒ax*iGՙDAxz1\|<iyb#]M.m(M@2S0p%`%*ק0sRaiAyZ`,?D=hit?~G"Y:E݃qa``/K眣]ళmnІ2jW?6*Ǹ]9cvzݳN?vdK\[нQjQXu>z;Uܽ6a^3.7<{{goEAǷ&OhΓmRGYF wa/ EI>Y놶ք儳9ލ1+v:og(i.5a5A (!^NԄդO!~7<fkOzOsJ'`酪zCMWХد^iNW05DJs:ɵhͼ+P*Ñ%Qq8m}ꅆd1Z6/@N5ef0^h8J~+tj:?*˖[zE L?[ UQ﬷@ ؚą~vJ=m6-cu:hf^e2#Ҏ"zd]kF*@6y%GB5pPE@1D*.*WvQ].]kd]H$l}T2-!2qP5)%3?dQJ$ Kd\N_oTT2 sd P y})PNj紂N\Mj3>*YԒC4 x)ǔ9jpȷ?,М.8덇z`1Dt>;ܛ˿tNAJٯ sֈ@ɢFn5FS:jzpp̎%܋Մ+u--_f6_aXAje4Hz~ ,uI 5& t aEe Heqr[ҜP=IR6? [y9"ߜ-u'`YdpԠCEA:D/!&%夐т>̞sZj010KaEh ODyqUqzp?xʁN G]][ EG5rZҧˢ*Z 2cqen(i|QoV-W/F{n$c%*J>&U$LGٸ愌=8GMJplڔ8`F3IryPɝ*<"y /dR229 ;7"cwp)^b~rz==@^$X-1@@@zg+ 5Dw{z.ZsOwʏ0g|ʀGM]Npiº_GA)U"u^hqg" _n\D;gjԃsM<&Dy(B[B!T=` ǓʘG2)9U`svLy>O.Zs7q$czZM.*j/ pY@"vʙ:nXvZQ;ekDl-)6yA4X$o 3ƀ? r+=$m@ _:GK}Fmy au<{6ZtK8 tʼn<7FBx)8q:~_:yz$Zc,6U6Q$M44*F_.F,WwjX'Xd[[N( xs\=&saVa_ 9ίe`{MPuC>Lш 1̕nNNp|W4ž#Z$y/2p6S9LLAmo0P-H5:Gy{~:o./.@Ӊ?=@ N_^~W )ԪľNs\f{_ NC6A-|x{ 4û&%ؘex_ >8ks{Y,/p;{2f3bn4/Vf(zp("v"?M,2ӂEbVtz2TmZ}1LN#z4LшL7}if+Fw KOPS}By@<9!CbU|3K7? Ƨy#h['%<=DGK^ٌ)*rδX[QY~`זZp:]V8L Zg/'[4lX+firMXafބV7}K#<5m%Q8ZGkY܀zوgdPIբ(q86}:JH'6#<Ͻw6UÜ߭HU#'R+uΗ`JQt Q)gȓh(rkZWXMO jo<5,UopʣX|bްc ,^O7C@{?10(T{*\TG\B587{tev]Fx -Lt2Bb(&%2#BAᦃ_'{rar-SS KGvaͯD`Y!ig );di(R "X9=o+r%^T_~])9X}s!zbFeTCx!MC"za6Eu>`=7fEMseUdI6 ;ow~{6iZ.:qAkRA.ň-=t읲8хax:);ºzd֙f&p ҤshY>)/l$oF"o y9ACM>n^!E|{ H:3YI/ؽ=̺=FDί3|muFxHc73k%8RJ3*hÈ㴜tY;!?5ʥ ~-%b2i&CQ  SsDg >^Zˊ5HZtIQI`KQ:Oi^?8 \==$a4>>mN_Q^F433إS` ~!\\Q(RvAfB%Y p:v:u1;J:z2?Qb,?,Wc j꿬 D]' k?CMTQi:LE:4wYN^I[bbUaq`1$Sy3!^հ:aàx`J!x1<ȑw$ˁ%V -Yi6=SaGWQ'' xjw_MЏڨJ `5V6WՄvdN+7Cf$\P)ΰ^ZVW6I'Yz9~MQ֬HO^wLFE=jE;57r(XiVj^lvmPgSf;ŃLvmZ 51鸬ƣZ$W~غ @/Ih#pG#^%O~h0X EIX5-EAIZZ> DThd0LG)/ԝRhGܖRIaQČRs^d鐯-j J"[5bKdވDvVKvr/MM%׬ЏN -Nq]U ۊPRkauل@lR&qU:v$ #bQN6ogz;\1@!r UGQ0fBE<1I~ ɒ.eD, [t+<|ob(s^a+bixZ)H^ (ٰ(dV6,;ʂg>O2F@&hDRu6ٓ/<h\@7EҘhPεؓX9{i-),|0I_4]Zpϣ77渳R$Шuag_EL&9`6I(N^Q (AzKQ'~9<v:]oK<<4Ծϸ`6԰uH[[ yi\(WTLtgцՂ>bT8=Jl kπ߭EC9uU#Ngݻ۸q;b=mDȹt'98+M{挤<ѣ>ﳿ sl'm  <~^ֽ /78"ZݳZx~<ʍ}Umz]^'΅}kw.'6d l+xg:VTۍ$!|<P5Z*2J%eWI|! 7YGiNӤP4ZטB63gvXHNKR&{zAbn\a/Ir)8v>*,}P BICbBEA[؍9y!N r~8>5ʽr$O: CG2Go;mZ]o{*:^\=ZsPCfIu~ޏR!ڪ,Q]O- έjPXo !r0]a$xʧwfs$d(ŋ ]eJ=Bw8ųqt 83R$GRD`_UcZ-_Ϣ|ܫ OX|RW/VQ"vYϓRsRZtkavqq S(0N6 :pl8N")C1Nu`PHVAnݧ^*5Di8d*PTH%/ 5x}e3{bTn_XnmDԞM aYںؿ6Z~v//x0o:m)oY$!vԻnys=C[,ΐ|рȻUwhԃ3;lv ށzncKbl>.%.FWlJeTS<4~~?OXZ*PƯ}Ļٗul}~D]$&Eoa]@cYGR-+4p$SBJaGZ)1S]οG砳yo0A=WI'Z.d t^^vߐO,¢Fن :YFswR7ș!wM)IS=蔦QWEFp`ϛo@솽*+.ey45(r4ۭdmJ 9'=[dwmڼekw4Q\Tݻ@ #{O.K!#`9T1xfPE6-F7#oSohZ^seMPiImY@Y E;b-y >H1.db(eץ}Ļh ' rűĂ? ,I>=SҢu>Gem g ] ; __w% ŀ% s/T @\H29OK|׽nFy.Y> 0s+|>Y\pGgLNq)/Fw! {Ձqw a>0ٝ]7Eۿ˝>3W7j<ǽ1hm?y'yo+ƶ7ml/|̿ۏZk=l=qx7 qZTݹ?PHO~AOP ӫY4H <`@ YCؠ6z%</yz9 2 JX g A`oz{^vu1硁"" |4.0ܸyp|H0'C~^u1T޸g rs8oƳֈH^Ht:/ ">"~Spb~x@1eLT<ׂ'q2,s(''ojo̮83) aL8 8% ,%h0s"vM&CbaIAFh>qQ˘d«VEaKu~>\ xHd&Nx> n E (9!~n+ ̏ fY}^~`ف_8QduUJ: rIF1:`㱠 xCwA~ÿEB:3syy/ s'=Bq?fx:)_'B?^s8hPG]R2Ng]N$qvǓƀ]PڂZ0h ˝(wa80)HGQ:';Pavmtp3a$,Q(mb{Xۍ3b:d5`ZӧI<), >7a">W` `16\ 6\zfg}>I{jaΣ7hdu=V1XHy˦ƶydIفm RƂs3˘ g(?DnS4KAV/Ah>̌ف ks[ qx1 63@꼚.Z $nrj:5))Ƶ[2,¡# jb bARccpt}<~o~@] NaʅjOH^??MY<79I,jMeУ͵OjxZD=6 y+rRҺ<]`~%dSSҍ)R/sϸmXW '{`mC"=qYs°Ȧzɮ8XEY?S%h%4hkʀYr) =- F]ÐAxb6]{403%a'fM KV#KgrVρPn g-E ,*'N}Spxph'4掠QeZr\6= VB4A؛1?"T7-Mh\b,tCYn>o2iL |s= }'a,B0E}Ꭿy͟¿oƘs*ܩG[Do@])fTrKJFFg,do,L NΜIH\v2vB2LjDu5`5ʴ&/U! v8+`phR!NVDž;_u'Gg}yzC{=bTsXA!7Z#«ӟyLt|1SHq_I}>/1"ˏI=Büot;*}=mYM"e\ub. +T`i;i ffƐwq%(Nq[-(#$aa2?;xiB]ԈRrB|n#8 r0 H>Mba*wd/lQL TYJ0ӽP4I1)OӏB~%(*Kvȍ.j`tK5dzҨ{6]RQ3(ZW3&ty2S5FY9|jˏbNL\w,Lk I. LHlc{% dY !C7sGL,O&%kM Zk L1wolƣ[Du{G|>Fuo_.7Rfx,@cW]Shl]?Q]uėyVk&BCkM͵a'%1`n~<Ƹ߇{=OBа}B/1'Vw' 3g]s$&@i>~HhU:Ql2YlZX=apA8q&?:J+!"-nѳ2 4 VFӔ3Z"k}{O3pc*ɟ[7QsGM9Kl+2Ys6$!糖=JA‰%ЭW݆t3qkĜyrn K"U7:C4n3aGL V",ɉ U^G6.Tj tZx )JVFT-V|g5#Iϓ} qιao.6_Zs?|.Š4'4UgmS^s#/dȐw:Fe\e9Py8%˱nY :!:;kwFe̛29g ^2T!r0QZ"<˽XPV /vqټLǠYq?ק`>av @%ָ' =khc$f%<'R|uh1*FgwZ㾅G._pWR|o$y\Y]׀U ^)Y U|RӣˬW#}5J4Ee-[UJ?:Y]54xj/NZWwŬfY~jӵB6uE4Ƌq8_FQvXswo`J)~ n85[^DE+׬Ymy&6fQK!UlErWUPu ~w| ANX\IKdQzgB&{5~+W߂^Ȝol$: f[b(F.λs::ҍ%?0qm͜AFkŲTAw/1fa{*UD1WsftG]Ϲ.uG(ȡw GxR Q<-7ⷥ')};LR.P7$Si>s8ȶoYQQHsIF?A{3Z|l >;Kp?!bC0YPkutsx'*:9B1P'h&gԒ,bWA5 éNfy,' WP*hU]WUE.4Hku`h]Iàr,#P  ?[[g*46K֛IoЇ`1w!_8h,VҘ=UfLp2iۧ+_X)"~B, (2"s $|N.<,y *07a,.ZWVE^}dWS**a'5R{X6hT΅2~rKsy{[XoZdcĦ" X$W+bgM93F &$K6@+ S啄(ata #/>Sb(-;)ǎ|uvkp_00eFr&AїzClLg4V` Bg6 ѣ9yC' y1C ~a-ںN)knz"B' cdIFÒ̹8 ɦΤ>7Sޭ q|py H#b" v,ߎe90'kc/ODe|;1 yEv=ҴCCM%@ V\l%zn( !c ,0mf@`73,+Š) 첹T|}hhegH霈.vd[=жN8(SD<'R|_o\|cTPA$j2R=#`nퟴO}܎6 L: l1à0'o*FA!YĒt>^z?ۻ`(sv͓zFCw<&S!4#s*xq/7UVs}-!j|B4`$70(~1EN.:':@0PӫVXtާ!Rf(/e&Z.\w bɹ1X?NGϵ4(`3I+ˋw+nd>1/;3;Vv0,ccm[a[󝇏?m`IIKӢreA>[x<=S4~ꅟ٧Ai<4^>%~t&88<I8 F7ۨN` +|\_35^#'rW:lWB@!8!F"3/E9^u=x{?{ϺG'M;  Pl8 M 00ӫC ( Y7 Ky^7v g0_m)k&&^g !0O{$ I4?1_l>.(n@/>7H߁=}ı g5ÿJP Cx Y%0r @ l 80 3 1Q\p Bl(4ZFH,>. PD4HWe&P#H Xq&=%H@P ֝;$ۇHw},y4ܼX>KAo^t l?CSwYi4ͧl6ڞ蓁S|-Ŭ^xv%jgݓ{CjO`rK|aQduUJ: r,k0"(0mpV<y|^^9sg;? ((DXNCQzTI me9.Y5H/gZLqUyт"ďeO,Վ͍YIPSuC=Q4aJ wrA,AQFtT 0őVlsG0!U |T0چr$ތ ᆉ?eYh1rI.tHxcXMtYfkZ; zP zP qZX֓jm/1Gk1h-b,ZGZ1b\.-R.^{#/T_݊\p>]*qQۋ6Mj/:wn,X`6E~`+nq5m@gvn5Qs >l#wh8KAik2,!P7G>(\ JKezcd SD*DIMǪlԽQR C9P3m&utʕEh`^[;>q7n?'_@^U0Ӏ$/Yff/Sɽ]%1](ҝ!݈l@{ZlXq?Q{MG'nT'qX1]bJ|pBi&n㿒+N:g'.{f^<ɻϽve&1qx~I,a-1#8\/?@Y٤L#L΋&bɜb^d) ='l3~v"3&s0p("#۩y-5i[(`In^ :?ϖ@迡#9=`y>5CԻ /1>[cI_q[[H]Lqx [.C &hWsSYxN[y{Fb^XN}gLKoEeU$ Zvh̐ |{oՇýw}*a9kHMF%H$DsY,`3'>% 4jkT+R$!f1l'aʘ.Sy%8ۺ3eȢܭ(04:֖BCˈ(h(hFMLvpDi\"0AT& SkXl}FR̥: 5)綗WkJ3YȤI%qӼBOVH1wFLJ]fM'0a0]-x=b9F^Kٵ"C~fvJϰ u)d lgT*ܮSt" z(08F堇Ipsi$QfF%>֘ @IHy.*!he)Cyϛ>1 g1:0{SǕT~Ӛz2 _.XZƒAݸrw~lzOZ6:qU]X# à_LgHg?Ps6.mG8Ȇ>(q͆,%!@0&TX"%hf1lvwwf8VF=-N7$ũ5)3sm kKfIƋj"G33{K8G)4: |lN`lAŤ,K˝d-qzJr-^>9Mru)"}_ ] #_MѪL]adk$8$lz lMҧj̅Cwj.< Yk.‹YЏk.̚c Ѕ^Qt,'5@^͂ޮc:֙7udo:nxyY|,g^gnFw3;;י7 OZv|1GQi2 W'GVl'N{wÑSBy/]3+q=Ǖ(=OP5ļd!Ź-NLGa4I!|tXʫ@2=$!GHx-/+*xQYQdItA%`0gnLEZl,}i6qL]*s(Kx Yl5 xBf9*o$\A$1jH26W;?u?prtvil`ߍU]${݇b9@;%>exQQ<`ǙǏbشRA .X%@߶ X&O9 3Ljp^ϧ\`DXm 6.!)[8 bV9j!'J0)길hUoc/ΫlcMc8[7-. !@D ̍`QI۾EtcL# +Zec mlUCa7)|!(OsSEhܦ^@0WW%]x1Ҁe&KgSX"5 ?Iyand5ϳS~R\mUδ9@nw9hkthV;5vB,¢23iDxXj<򅁘uwt,byr4fwԡ̘z/8_ ųxf<.%>-J(fA5_y=U3ZP݋k͜bXI?&p%Ч2m /94ڬuaI:؄gH;d]vG:H?E%7Z*࿣psHbOO fG{ e͊u(N[*hxF_iH/h)Jñ Gsz+g%D񰤅CǶ KQPܸ\}^˘c3~ - -G?:|9l4[N5v8zZt1 `|f"P[ۺGxdvY)_*' wԔ ]̝[8))Ԡi^FU9SS -{d 'r891͑- |݊Q-/[!*TK䛜ry>hdTpv M8MojdYnJi&f؜/r§LJQߢryv3@N p[WwmIg2p~.m*D1\WhB~_:>+O42Ev/_GvCmQz3/UeퟴO:dќ$Dc 3s8D:UTbɗ ҺG~<ƅx rz,TM騅rg>jWh0!\_aq5PRe#+wl6irP֜)pYuBsVx*y q20g A$)>&b6xGCDsFK0 8#CsxG>|aS~ʦ[R)&(Y:/8F,?-4Ĝ.O%OYsx1[EʀVa`eA1aKy{HQNp&g&`](0&xA 5;c?2 πTd-!S[ ŵbqdX =HaJ}3.];H%?. 6ˍb q IG(ʔ_0+nFqd34xXkLfxj9Rwy8@&u8 ۔'0 kc1&g2dl)g>e!c#ǐ_NX*Г|vYX+:'7Zfgr-3߭#L*΂ki: 1]8&,[Թ =tK$aLĦ8؏Ǡc Y47+ gdрyG̼sQsI7Dq5,Q${bD,Rݝdݠ1~S}~‱rlQ^r; XÁ0%q[PR1iy<H8JާC( ICG0Y~1uI?z2 ~솣==Tho>t, T19e%Y.7 f.!- ?vsLp߳ e,̳*߲[eP Ԓ9*}2T3+v@7LtK+N5bI,,k8び^yNaVX=A=.#'50 SwYC"DI#ݣ}v3E0M6j@<>8.8NkCd7dkCyAXX3Wn=5MDTA"N\@"߿ ܔ>(&H¨o+N\4̶ʆAv;h:y43¦dK[%_cC8QtD:5lp Q< vlңiKlFsB'WFO!TaB^*$*uQiTCt<,d9,,?fY>/ē ;K_IBuAؚ=piH -6;2Jv)F^*#o ZD)Z @'N6,u &&vwAG|!ed>6SNң]>1P`~‰} _a <4Y  _1`Gl%3.[ ) I&%U{t,OW2`#s&w3JM%lF%A%3IŮE>9{ۗr7$\'ph9O ;DžI3\J+l` 5N[-,U)8lfIJ$lbRٹ]<;n+;Ɔ6rYzݛY=KW\xROS%WiuI\], ?Be\s!"Q/3n>^E_9 !.KUF_\'5c4',^]ifaC30'v}43"+Wbj҂S_ma.(h#gMji`r y"{Ӑ|<OTz9Q#i+~Y|-n, `oL^.Crq NNNyREľiQeg[f#ƑOo#.R,B /yGʚpU\VϽ>ו.5\5Xmz+jS5]MgFYצu! \31e2 Y%F 3"g;&[+JԢ8ׯshk4'uqٔ(1U%;>p_hYB/hx&TZ־d񬬲_iǥdוY3;rTjv RTDW{}^{GA8 Ҹ!t9)lԏCIg)|:fYJ5q1zm/7?QX=Wl^A}^ZїΎ7wқGf( +:3 r L7KEB|ddc6K$%,' /o>2swk#T-%AOV-[7`Ə nO\ K%a!V;vr.1^S/: ?WYO4]AWq#~n8l*&.f|%l%aCtj-h|s0x28,/|0f /E\3~NN _Qwvz/;Z.l I1cK P]nHٿpo 7I h9=KпND дh#!E i#s+rktrK؎7+寜k~>< ge=1U[z$o%*****W^G=ݕP?v^؜ c (l+[=~w "睿}TĬpxjxt8ˈ)hE*-Q6igؖq(n'9^dJ|0`~ RM9F\kPdmXv4n8ИJwhV ,Hv9MvH +-TǚZG\W`)bM>Ei8/6)Nʳ%˗_'\ˍ+  ,X&0rlhC@to3^7٭)/"F0@y0?|颟?)}HmC36Y $IT͒cV/ ީt(:U>Ql1,ql=")oa> v_3ƑI9=!dfѧޯ:·hl5 ;Q0E-Z+ ≱47i* رD bi, IZ &!gs. vh3a,WZ%4SYwZ|1\$ 9"T/<%RD@u0O*4 n6](%SN!/df5֔P 8d =Ա: bҧ|1h!d&xY(w> )B}G~<S4Ϻxv5Wu{klZHA>P&yb3]=ᑗ_90 L>Ԝ#=o' zWy4Ž:Xꊚ\ʗNK& e`gj͟l۷r~1Ө6kiOteCʱؤtjtv7qODn7s]*`;x_D-,z~*%Wɣ9=R`4.;݇w퓓x3po`_~gJ`W俧Ypa5k>Mz_z9UN.璋yzdb}6{%斘xоA 39O h && "w*'MOà[ "OWfp +`EM{t3YcB#P'dfQf4 FmH8WM_׼ A-d|~0 >#@dczS?`,f_~(ʔiv_eʴo5K]~uj^WNl2 OX qk Lj>Wyʺp򩱆1Aw$\SxPgz:kT[ ``MU<3F"uKzgBY3hʲְ @e $T.3C*f%! PGA2i3e"ն.+zh>[V~*ﴼwpy/]3|V>d+ʇ!+s"Lﰥ<lqKe.(JaV*F!<ЊȮު',#ٕ {U>[[h1g 5Sg C1CY:Y;1=@b>T'Dm簽[N>6&+Zws tOnM4L&_#hsFd8u ˻o"H.DÙ hsXy{RzvϋSq /32 AD>"4Q DhUCjg(S2 aj5XE"*\ &*m띚xfxZ5?MjtnƆM2ypOj9vI6]8P$;M_TI2l5&_%.g"gbE{= ۃUь)[fb 1] 8Fʚ^9! C^vhڴǃs]v<}rCTgBR[UҳBr۴/XϿCjT \/rnໝ'Ng5 4Rc<ABq(9;yZ7S^Km/;C=}r ;[ 6 cJ$avF>,S\lU\m2\u8N΅G~H~C_w;?u޶'lZdڐL2a҇1CeQICY ق3 EDˌ ~kZ ijw8ԓv-~ዲQmrJwD;F[ \$"~9:+e#嵍 Tt &QMGx.)B+b ["-*|&䈧#޾S:z%5Tg& K,>t AR^9h<9)քϯ瘍]^OەPƋaEtw džw6 *?Vh-lW!R :r}[\8P/ ے,ܹTXLd ε$4D6~Ԙ~n^{S;qMIcı\فFƥs5 X[4:ld~_)8n*ػ ?LkTra =t1zdؾ~g_J\٧wp'+p_5+ݕuw庻r5]wq?VqE+߸|V:3Vj1Ǚ 1Z2qʿM +{vtkig|L5WCB~55 X #ӷ*<5?0J|x%ŌV{2Djx2JjLdY%AJlNb,0x R&pVghq;ievaQ (%!7O#XK,)!*(z.g(AhC6ZTdUtp-a6*ZtDVN˨8]餔rIٜlr!d,aP<7Ub-rm/y=hbƲUM /cIV D{f&\+(ÒF60|8LLspI1N({16_g.c>yˢv֡>Ώdʶ5j1bEA @{WTIS^RieҔZ5y5CjqM3 &.̽|+JO$onb[[:֩@B5T,~(?ke ꭭wM*dW Y(C2eIs k~y|mMҸ&蟻LTjiɥV͗DZ柂7yeɜVדjqfӠxt f 9כk{8>EeePO3<^‡\[y/!ѫp+ /AU`[bYd."9a$:5 /'X0/yLT^@9R9SY\B w.2MLlI_$O"7ErTeA3XP! . //ϦhU)ċAH<,Ne<>,քFDʫ' HkFLZfD|^4*Lq`rޅ0EB`rFZR)_8tޛ𻣗ҕW<=g%.'L_x~hύ@޿^a{:D6^аyCKzyKi)ɎO|x x`x)Z5h.y{xH̕+DxDL M!f% 4e};S@sW?JP*|͓]'Ŭ+"n5o޹9;;5bie*|묚$`=1 䥎ɢZ'"%|q1m<`_T|bt2ܻ*D]ȑdʹu$[Þާ 17XUT݉DFYPp\1@>L#[ `Qk -IYoq:@>fLů4Yḻ]JV$ᯐ3;*JV,Gd,/i;h P rcژXrʗ{mZd(GMfT6\&֊ ёgPk՘B~ԡY08ԴawUWxkfJ+UbJ6: 1 14x(>Z37gpV6VG]7%zXbuNV+e-MKOڇ*#IEH{t<~Bb?c /Kݱ϶*ˊninB/4 dm0.])یLB.1˪ ’ZVb%|SNo•ǰb^^]wI'af'2\u/`.xUhs'\;" ݱSQvg>!3o4"%G'Pdx2VY w9 z@<Zw4x q)Ø8$^[ѵ5Vv:#R-\qbDJ8jQ?^~Yñ˱udf>I\]FU{o娧t-ᑐ_G,mF%̪ukYvݰ14{xd5U?uVFc;WG6\aUk]/H׊ze539`ט$y¯VWYMuP}rtօ]#X7_ܕݩ/lG rږa"5UT8T@'{g';PlPK/Z(lٚ3y2,)ܭP;KP0"aF2B(C4pK~Wʿ )?P;QҞe(!AɿMATUą;B عvBf+f7UE2 @,0k(hrMnB  4ޯ|&eN6,aKٱ 9LmA}>DuVLmk%rA&C o`YL--pp]aSY25]{gAl2v nL)&&&b?M'Sדߵdw ],,X+{RT_ hӨtw]W+w6.6jUK7snem9p!.!uXbw|Ypվv˺D0?Q88,ǭ w{ Wr9},Hwⱟyx#a=\~ՓLE>yۺ_-ܯ~:Ȧ_~j<}M˾娤y:,[:Gݎ`Vw5mMEG[}-zV) q٥@ɎL٣t`ECBv pGU%SbWSWL͠wk=T@BKuƿ˨!Rd7Pe"Z}"[Zu)q=D"V|V4^Q@1g \ɳ6e><Cږb5 ޚrb+# vD,@Yqxa"4U»fQ8Hx*p( K]xJ l\F){-ٸ,T!RV옏<΂Y ;.Ob✣ <tmPt3-e+ 5ǻ]Eur=hezᎮ iQ ]"3[Y:[} n$%jJWE [֢T3B4&%'is@@K(/ b+YtLJ0-=QWsɚ&sM+:$%d_󭘢?y8Ua7v[OU^v0 r.|˭>/x]*\K֯}D7e#$*d,["I,+_y1|u# #sjXt81V´YEJ5T?=e G*%E,r)Tg R@,j4[9Ye'qǑļit@F@>ke4]R P%7m_St^/5bZ&Jm=G5l)JBxeRS^120X|!7V}6lQ;Z,>eUљd S3We Ȗ=$[IYehXI[VFUiGSxEQ}C5A!ӵ[4s/ Dv&R%Lfnt~k~MVp! ạont Q3-Zz a3Ty( emlsB0}?y#;42FfG_)x1F';,RōيfP Pyw=\ВX5^^ :'~b6$ l)A]J|Sc/A(I-e ܔJ֤/fl*D]' ZlE{B*Bɿ ͊r@=0/xNo[s_Q&FE\ѱȊBX-Ƙy6#&O䤥[5)+OiLdf\ Bo&F06j<ǽ1hm?y'yo+V}v/kc>?dc}㿵a[x<9S4~ꅟAi<4^>%~z{^vuNڛw"Z!(9" L50SG0oO[+|H0AQn14d=Hitkrs8oƳֈH^Ht:E!d#h59"W"%C OݢqD#@P3? Bo=0`ǒGY0̌ h7 P"AE/p5q 2};M/ysӡ^xU6ԩAx AB֞Ⱦo糚Ꮹjd8W4*sUd3) b01QpzلQih$-Bm  Uٮ{tD) 1D' ]!ܺsR[.:k|{o~jgݓ{;=gN1;upe3Bࠊ1eSؚq89~(agw< lakfx742*G:; 6#c}7UfWyWt6L)wo Cg#{gMtڍ\YlS #Fkns 6Jv>t1j_dTjvHY%~QJ_@ z?%G@G۶hn#?=f+?awZ޻#0Eo^0g[W*J\+rB~*d< +q3m?{?L5ͣ#oV",6t%.pmbcԐ0~ }|XN¢>;GjEQ(*g g#i4(bAv|NX/i-J`4׶є- hcBՠhkʗ"]{ mO<ݕOUA@;f8+z*M|dYm%JG}ԈR&9\iY$b69 h4FޠySzf7M6,Z;jŵ #ۜ^РYK o4q^ӈiUE[z?Shx>̓u[(`qov.-kV]0 P zf`a|y"? VG3vi,km=0FZ ,uAXӅbN|E9E~[8P#euygG0?UN npι--jФc>dU!ԯ@p V$uCȌ" ;X52U'rXxs&Z/zN|g ;C$H(_V(|6W$B`6ں㣞#yΤ*e/s腷{2+W^p+|-KfGn5Sն;quUQ,%t@aPout QneLzjAy pww..:EN*k!kF/(ԅ]~M j@ntpU?9iT:E.#QCe,7w{/ev1LMhi8Z=x-o ^M8[{/~U.*GnKvW ~Wc4W'[uԑ_b FS.i aMV-jEeBs3ϖ(fn%BobgH$t ޟx9~h&ժ?:bـ gWw惥@)VP&Ӟa\N;NlWa{HЄ`.wonƤ78T)~CxB QYN vQBoD:( ~)~oѰ9SP Y vE[j(jwr`ϲ˵XG,q8GF VbK+Bu\zRw1u`ΛyØcNN 1+,cm*Ŋh)%c ഘ?YoLECdk=~Wk[y?Dg+BLJIՌ3;`+a#ݿ^G3 "412,+hHD9qu1l4J{4]1?PT#?@S-Z pVOrkyC>12i~T*瓵 O_cMz6mMM1&9io<{t>H?:l:!Z}(p9ChC>}m2K}*[u\UϵN'kOn/axk>ޚcZL*#hEPx8cok˽)ک7aSl&O"$%+{c$>xzwg- à%Ӹo 0 J3|̦3P}v#zxX/hn0A$0ׂi!r`o5N  A ,4-݈/퓙ؿ.vVdL2X& ǑS#z"6<-'&bUY?tWZj5PQ|AkT6ꌦx$EHY66BjKi\!V3;˸{~Zv3Ai-H)6Sal7iF92; uqgmiZL-?C۔F~pA9@1!k=zjyTeCAِ$wKHBk< #:5 Ip 7βLzp4d "93BF`.E5g?VMæ[/յ_ T~X]'Q ]9O g4꡴R55 ,>}dVcw~9f2XP D?YQFsIZ|pa6Nê)j6uqWrr\^MhmC޸wU7djsغe;b\~!֧~u]}U)*w1VxƶՕUKt^eWɛ_z~W?"31'ǔ4ftq^%?Z^_K8-6˘62e~`}$7K7t kPd=Zօ!LE$µx[Q%0Q:ʿ]wXX L<{007<eحrw}Q*j_0΋:ONmuRKf}u?ჵ(!m; #A,GG=Χ 2XG֔a&a/诼8aI:_v;eO.dg)/`zW8tULyRcv^av eJs38NY/5I jarU @w9#Eҏ:Gۜv8M{iO*뉣 EEN>"1fFA+bґvfv>G"X_k059;KX\B2_<\Y'ӫnm[07f[oN%>l''>Y^@EP 04KSl8U$t2YBvKuJ$}`\tq'QZQNeP.FҌ/F Xr&"8faS@sƼR`M:#l eÄI9zWD { ]rFCscKqUARA@)i> GLʑw"/zw1пƘdwDVsaA1S{*N/"#/>]T)9S9+hFغe1&$FӋMV?j;1>:ywF|*(6-q3JK0zOk1b^Cde2,1k*>IT[aE4ޑFl[VqԅWOyQL4x94o:i4r.˚bf_Pfx8h 'ͫ._f"`k Gw޸HD0_ox;uIiJ? y mRBG]!奡@YҌepk6s6c]cRɾz:Oٸ`{{jRNXŋ(HOY[x3$LVyЁH CLa YW1( ɴ5`(Xk'zR.ܕ *=,(f܊V;W]iVDUDx Zu8Bnض.0%;*~1-U;9%>lZ)0OK _EE'_aaA|3( f[#IaY_[u`HAV=$#EQY2jsM]oidQdXX|\ZX% ]ڳ&6H.,\*4&A3iv)4.J×y7鱊RlnUŔg {wϕ*bS{r%>mgO~ތbO@ e.J7Jn.dcU cѨXl f-)Qn=^_б=faO~[zoߕ#ݙ<,PQ^I rfPUwG?w0lv]̷|o]'nwɑV2MWT]ؚ^Gm/^mW]Yb`(~}t ?Ql.ws(Ow<\ ǏR;5O&fSNg9Oyw^M%)<0{CnC{ }Y#ڑJw C?5 O^I븸,0m|l᥉5iT\Wg^}lK?A9 `c١Kߚ(qT-rGEk%bg`0LK3 I!$EqOsAl: b'cZ `BP&t3dz|`, 4/-VEkyC O9>)f1ԆIwv5s-Q::eKwk"d+ d})/a#6 1#)pwV %jqk!Iu?4 :7 Q%{7zcZ)c yKxEl$AH i>+d|~WT kH?ގn q芠rc ylf4پ;m)18y>ڠN.4( .Dt罳R4#V<,(pԝ]q1?ej>r=@(칹#ir,F2U:6]ZQ4Me! 9` T :/81'N`wd:^s0DZMfTUydưLXKhdC/@]KRŞ݋Kаj˥Lv,rg%{=!aK&Zsӫ#hԺ+ q2cst̾="d=hbnE-ᠺTIq˕S( kϳN $;b_-s~Nη,NXN5M ?E]%yyYLLfģ76+ToZM *Ib7M!Y ?E>Z>sp,$F#17 ~0J`jڥyB$FߺH`̜3i0yj @P׉o21&{^ GwAC54Num^UOoSjg˫wZ x~?3kTT7u$0Ĭ*jJȪںɻ$A޼Ywm/Ԁo#$`UాΆsߍiovLulQcA=wb>ԫK?h18E]ݴcv`2 =ِ9C"5p=W)iWE\*frɒJqR8zAc8c!Q G9CQ2PfYZg}XsZ@_kLM'w[+tMMQ[5/iPh/b}nx &|؋C092\Ae";.9T ʓAy[6RBӘuXKW JV6umШЮWw@/vCKWM7&nEB!j-Ή/A5{ơ[iNjFh S`]Q[> 4]fT`c)a6yX}% KGႢߔɻ,gq>M[*ܭ@cy+_B@Akfd$ z:b؛Iq~'6&-H%~5NBDyd9 M>&c=WAS|yJ 9E5 mj fJRSάc5V,q+k"i* )̣pS-d)5޳;,y(Z#ȴl"\,M'|1. oIEm~\ i6%̊)a#%.I 1n6fKelcvZO@ 125u,)k#˥E9I%J0,>. -KĂ,7KX2?A#dhXf~M2| kBUWi4 PqRn5_Ϭve~vvxdu-GwpI;8B0{ž* mDT91mq9qnYמb`y JJPtE8`.Vކi~yb{tnPT7 ! ^Z䢳ݑZ?,U,K4?|a} UKnӸަqMz~|a?HZ~ۧGǝw b5*BafUJz xV٢YU7[R'ټOI8ٷ g~GE7=~T=<:x >xÇFm\!>|(xxϭQG/&6'66=c ڨtKwOem>}zZ( x>ww쾊zokON:;ov;c>ɎngˀsKy)Oww^NnHřM PaA<09KZoX18*xe98~;dFZTNψܟB3jpKttEc_#mn[qEMU-э? B/xſA'6K;x$KlمZ<,6D蓝C!BE D%-=@[%hAue< s Xc.A/@4jYR&c*[Y8sh߱35(QxEb?`@==~2oe_Q @joI-j8*١m'V#Ð~Dc;!P8QØתd|69QtM <7`=ēYbKXxL7d!;z?ڸ|z̓̓̓̓̓Ŭǝ3 #3r|` gro\w}'yf;ս'q1 4{v,c~xጝ bNţUL}jO|:>t+-Grtσ|VTò~2C7^ՙ ߋfÜI}+Df F0U65gD/[NJ?x +蜀fϢl봉Pàײ+fӢuסmO/-l/W-_Qkwr`m'GV?j$\#F~ru7hC`;eP{twy ϙHP%)bqOͤ{t##xUN0~[Q;9)]A鵇!3zŕ#MfIJWVVB%0{IK49;[bl޽=ܮ s%qW/ZДxg0D 36Pw/o "c( MmBTgv1%ٖ )VfS5N]9:<꼎OOyh1oǎ44am,6cz'+qLQ:,ROu"7V5>_4k")IE5Űa"uV)G~V@f:#ѩ& n c\ׯa! wj8$՛臰Q2V:Y/a:Vx zU҅ P%#{ȷKhiJp~{QnX GueGxmVRSvK@+Hv`kiz3P|7#Jr-w*Z#{}Dt9{?ܓ5XJN!|t`='s6C&G6w_ „ptMϗwD%guװ%krvF 1O#S^ Ǧd lQy/;GȱIDjBЈ B$, 2]7^JAbǏ>"Nd<|S06fr 8VfEC>)W-o:BӐ®YP 1UJV6~I/nV!U@E׆9h~d]+< yv!=!L ;[N%Tgcsm֩-9'9)ɯ&=j]%0PB5 *v b+Q$Re=jԲk21ؓlIپ\!V;\+Z%Q{IULB8/o؟acHO]L1G]ECfφm=W vXnWE6랛,L&0j3z%Y2C3VkBLl6Uhҭf7կVJBχ粯:q%bWk$^b7巗p,TWAZ:pe5ʮ*Z A's77h܁Vn#rbKL&2[!jT7= !8L&^F2oD‹٣Kkh=_lu%ʛ=؄\l&W?ݻ\Ua=\,#H[\ H R>ij3KyL,'D̶y?,Î"`Fs^.RoXo@]\f7‘PN4 EI4oԂ$BRFxoĬi5^/&[|Z~úA9]zX$fgxB Kɖ.U ~G:P3=@Z rHm&`{Ԃ1z53P4$BJ Nl$ 7b=p`)}PQbL@VoΓa-g!xX ¡9 %X\"SċWZ:2Q\V&ulאZ8~ޫ}.MjJ1i 1nHT YdH)` aPFEHTTg@JA7B 1T"%Dn& I]pSkNg-ܯ봴plŇc*9881qN-Fh/:4_{.169U-:oM7{ħO|*[2"|f kqT*>? !D vs}`sW,_.>ۅ^S1_FX`FG!g^(uaW[[2sExfţ|'Խ4N?}]3L&ch0g#QvV}/h[- 8tKFZCW ZZV ZN7"iOmשF6kpګKKߔ꽊ut7mJXPJQ(^>;iX9dx qX,eK/dr~L1s 8xR3Ux ȵEU}V@=hO\JEvn])C{b,ʴ 8$TQ„ƄkT7Yuˊ,%bAlGK5SDmZ?EY3C;7%L1ޒ5V^oKϬ3KʋuXӬ?jֱ,7GLf4hGu 6hm]6dMЛg0Ro c< bZ!bW )i<̻X 7XxAV/ƭ1jV@:uo2jrf)Y';^>>ڏ)hWWR|쟊D.Q^iRL@r#uĕœg(7L?Aۂ j Up?Q+蠒>]-`*ϗmܤφYSEZWX.7͇ mqg[=ykCߤ:].9I9s0:=g=oBsȨ oKW6;j= ~S+#¹4N=9ZlhzE3L3vdBy9́4+WXw\jN';;4?~B;= m:J=N ό4xɮ6&F +`Bw%:S=wB&22i aoT_e4oV5Sg܈b~[MȮ Gv U'ĢZcX^^E,+RƺrCٗ*$IıxRSR'/wsS]A^,7U[78˘tR)~wnu4K_ y~ ?˖'Ҵ/Mxjϱ֟B(cd|k[NoVb`,ϧߧ{3uFc a*t_ȧ=C+#BH~fdfcF^iUZq2)GIb9}܊QhB/Xa &>ߊr V_f;M@ᾞҟec/f/ YիHqN#gvmFӮ㷫'_? O3ޜs]oېTW'=˧Гmz6|n4A\WϖQO3/!lnhxLOȡ$8h;t,%,`˓WibѰIZj Hb&msSMMg j1Pa|;X=Hθ.m%Wsd/3vq' YCK4Tƚwn 45q7ٱAwW3q{ v̒W[ܧdtCwl^}XKNa5ug0pf\w.$-=ZKGF ] s9Ź-}%c,x&}n@ X1 ߵt +Ԛ3RsYeY÷˧ *&ͷHVGCF%1vڗ5䞔rLR W~ueA4FG'G'W@,7uFyLϙ?{58FKY4[Mr 񛸳`S] na-x8 t:>Xx,:IP |wxXǿ;I 4 2u;؏vw-E1ڄla71e='omҁjXj/XBŔC}s1~mtO2]#g6 \vX3Eaմvv z;ٶw;[û,r[M޻_|q) n۠_'l˔4ɘ6 _t 攁u;)8(Dym0Ll4+s|6̻Pw@ƭ/Uu--<[U1: IbslGlSI5CtP#Z}ܕ KE]*_uȣK5/KOr-2py%R*Ktcp|zYAG\)5#bY3z`tCW41,,T\qȵ#)Z@LBgI 3Pctq-$\5"Ԁ@!S=[I%Ѓە?h"b<93ULuW\ߠtqF^ǖ2g^{uN]5Jw$ij.*n%T}_Dbfer8ʛʯ"߅ rgl6gd\CteP(4D)%j#ɖ=x[ٶ*}`ea1^ Aٴ!ܣy|] F4[AkX,z-Uw=FKp"~#kRF%xo0Hq&h:G(+u3Izb%4⠀4&$ f;C6,JË?&{pz7E{LTՉS|3\F_[lVڙ!+P@6ho>V1!M'0F {<̊7Puq cޘZ|QVvGs*Se>=8=_AWcMAG n!*y3;c~MO{B1Q v{L0kH/vhX=,QUҼ T[8WncPG\ZDgG(\N.?)1R<ּu`XA?ᐟld]+5tN!:G@܈Gvi3 @bKH(,% sUh.pK@Ծgž`||0VV/١H;//B=Nz:קN5)ݨ"{Ϲбd5jܲ\+ E:Q-[~v˿mPdAa|nAyRsFe/TJ4AF}雘HQgsxwO2P>h}_6\UQ麴 ZF#+Ht k W  +tͳr-Qwo$ M!"6V!P)<1Bi|Uj0q~⻣e ϖStI#>VH,z8dU %|E+DA S$.qTrJlSʘ 惾R1R^CZ> Zѫwi˛aFS)÷͞tcg;1QQ\CblK1vwtѺxP8E>e …=f%JOw K2L/-_b6FINN/5G09Fd(6LS{tGD 7 0''OI%(?@,& B}!'z/T fQʸV*xmj$sf%ao϶̮]vn}PlAcM+nBOip81 txZB?^n Aӽ#X's"u |d.&F Gh%&ÙN" p `QF^L(DOb8Ζ =6Hļ*0x 1k%&3h,FtD$zd ]Uҝ͓pܘk!w@1$ 9,0v<ĸބ@Ue_zOu@_x >‡,56w34X Bp'n$(~ >$>>9EjO 3liQlVPdTj;^⵴P !YG{U4{ԓRLJ<A&y "" mެ1';a1:4 p|q=sY˛'dio%.]IiG"1x^XT?Xe l T]4ipˆ,2q8>&82a5hoCQ\p C:/#FNlS`ͨτca_b[BcܗZE|O5kifٌ\|_B#F0~{unY~}tlt4\If]73Jfg*܂!pVl3HAFУpV Izt#2l+ s>8U:^h>b][l!&yn83l B6/Pdؙ6H G#6YJӼ֙k*(+mG5~vιu}fG\r"_nzO?ZBwGFkxSjW| Lqƽ ZwQ>6c(=nbie2d %ϳH:83ȆC0^b.>d>^16 >¡ϠL*ra?S"#윒SO1t)v?R(u q4/'lv'g''_{iOz)韭<[eZ9±'O_>xGO>Yx>xOk_s4geۍN>DbX93\'0gٳYѳ{Brʢrpm!,OߓQZD/[gl3 o埨h/*FLa]>~u~ |:_ɧ j>ScL! /%`)ͼ" Qr24{o{Y3(nTW: ?ޤt 0FY7~P8<kFMk4ai$.88vOH %'3L8_iUT]5'y>IZ)a^pnIKnhkM#7Hg#(@FM1`asl9Z9Gpdgtw(:<=:<8DqJ(/]{ Dz[4B UI9,ٰHEN`Ϙ.xzqq2lb gg%^ƺd,I0ӧn:at(y>a+M@ܲ$b#a6+(fOi 4L#KkǻPlL/0#.X HIED Jti[cÍvve 6 *8? yq\zWp??K/f H C*DQ+w8٨&[ŲpM(F%ˁ$ *KyxR 3B…WPWٮ #xG d"~ AUoSޅw_qG;1o˗a<$i+Kß/pr "[ۧGǝw Uưvʿ`KYW*)3ϐ|xi4?xUt{g`{ތ]9íWD`s5"XkǞ`b7pw;s\-[%wex6&7\YR{ڄa|[79t.~;#5PkD sV)>ma-UN`[gu#-S~327n|tQ+\ѐL7(g>@f4*E]?kHY6nTn RړG[ޓN['Э tutvc)7'wnCC C:) {Zo&,Uqx|=lYnX*wa8`wG`ҿx7o$9b^/6;g[Y,PBK^vyRhލ&x>j 2ƃM. #r$@aqB8}g:KvǶ.91 ]kq˙^#3 nynݧ#JXbOX X6 ;cP$:7`\7;'A|x_:G*񞢃2 $ZP,isWsJNXX"h`6F"g$ 6ۗLd\H:jS4Dsw*`CmA=[۠u엦 *8r|ߣLT>u=VS;*xt=zzO;db4^D:%6; sxZeAThzD_Q} aXWDcOmɰk᫈ -IgA%LHvOa!5Wڀ9G# `L!%k`}٥~ ,Zut`8y)M*ogY#ݷO>]CwY>'Xx >iq򭏮Te2F[ڌc~ޱu`޸qoKRMt56莳7K}{X D_ {ֻp}z&INDQ>[0,0R6٫ᕜ:s,@ F5n`M$dm'd2$Oݽ{x]OVDc1 XYjG3XܤmGTDdqʍgvi5~YYUtkʪح=i}aC=#zٞhш {6wo=rUmt*~V]lvY~9v<  k/ܔl?R+*(Rz (TkD; H^Nf˚ R:R}WHvC[|7̳Y?΋2lL7: gmy w]N), kKod ]w_< $[ƠųPl(%Bd-KaPEjp5pf i*9OUg+EȋiLuJi 2FV+γ6y \Y0NMc_ݞ]uÏ!s)p z] GS΋=rh[ >*ݿHeCVBoN6Oa9{ ZUU~` Bj@,c8}_ax'gg?Q$zWڥnv&BqşGzs;Em<|FR[QN`[f2cQ[=Bg”DLi[/Mtq #sIZEr[#MBD )in!#qڱ+U2c,J"Gm3r*WIFHD!B-ZcQ—r :v)cLLͼW2Fy9<;+m]!S]ja]+(ًHEÊ7-VDLԀK4Vzo^zHR,ޘ$ 5aE !ӆPm2/4ZM@"߀t@J< (CI$&`>M~q]aDCʑ=Xt:M8sZpLyɰ]T扑`$d-[&n POךGD;%ک=AJKC wҝi/"P,+dJvOt 1E_0*gEw„/;>u?c("P(˙S;7!. m׹a@l:ar9 x,)IZ)eNG)ϴh c٭R՚d8h<)C.9ՋeÊ{QsqRLJ7y/LRdkk ~o]U6ءi RMmf7q2d usxT 6o͎4~Җ]x \conh$:Y5[~ [z$b<2ŦU/j))g-5U_`l%8ЙЙnPua}I*g*g%Ug^V `5Z2= mn-`vޢjHڇj9Jioq&R?7/6֖CSnk)b NIq*_|&NjjJ#c4^%py2g>𗙖QJ8sVQG_h{}cs$bPC͐"oCfFI Rp>&ҎZ/ˉ4lĺ)I~6NJZBzmÅ\2Ŷ&eJƥÖ%Cq]Dyw\+RO}קV ⤰maSo)+k˞M3g/0Yk{%N 2v&Yo/L_P5zFd55(]ui:kzEduꌒSՕCUF{-Q2lIzdXG7'(3 7mhkO9p`07.摕~=ǹ$.Ik!I F4EZ>ʢ:FϘ.u legu}xϽgџ@[q_-@ hyz{lְEaCƞ^Iu;fS~Z('ߕ`=kSK~ \91D,eUt.\'P~JQWbʋ4J*m`TJ7fKMI3܌1n+Ǵ D hdM.hlM*y4q6hòQ{Gts[R*3ģ=SȇtΓ14SƇFj"` DF=Rw.gyMָqZ⼜ t* b>.^$9ˣ|>M~a_O{?%b]gL5[9/'O_X6>'OoE `>=+ؿA ,O.tOk{){*?z ,;~>?>`d/x̼GHԊBR@".Lx]sLCl 6#~(eKcХd鈧~N7ћtNat8?fh7"k,'s~$+:#8X5pi^cTDF;J3@Fކ|@Z`\e4Lf=qy> ͂ϋ?>휼=8=mm( T 2Ш)W@;Bm*[/wvwN~DwN;냣h+:::>:O;+Qt"Y)(oxKg h/ЫP7Ӵffeu!fbl&RQӏ9ހŸɪcbe0ꐁ(V_rv`.2 ^PLnXOtžjKshd0et≮"^bk&RD:rʃi2bcɃI:>>ޅgdzɄau)ob$Hb/- *LPV0Yo ũ xm)F>H]#Fg8a qw8GEwhWVU 3SNS߬?5bw9hEWpQMe#PፒKx +U1br@4rqCcɌˁ$)/@Uȗm49, RtBH_e&p-j"D|/rT»pNngxw$~{)8/ ID-0VΗ '2l۲2/馧LEM_Ԇ^$_7WDp+*GGo_'o][߭q ?#O>E3О&>3hNbHu07jw; )p=-|Q!yn9vY`)sײ4 ò}jvt?yd\S:ݕx5ww;".Pjuhx:meeTtv[(>\%,#[|yr,w NE+ 6Y0|%H9(~%MH|*V\UK%7UILLtde>%.]MhN|P[ 4[''G룃e?@<֍&RIOb 5UB #4lأW-zxeggDk/3(dyL/HF㡀pَ'V+!%*=Yg%Jq(Ђ-O-^t v[́1,` X `U~~KMۓdJ'$JP]{>7 3 {>miJZNE3yw$X|zfTR&ŗكʏF6XeKdNI7mI7 ppWwbtbQ2EDEϧE:ȓ[8xSBO$cB'f'rRg`3e[ɥĀ+͓D푷8}'>Wn˶^<-9˙3O=jXUs`-UV  Nq+gH.jtܙ.aYqkSFu[U56=lFVq1O8osipcK9!RKQ$SL<(j&BCFVMd5MuҊ2Ơ1FM$IRšxPS+׋.._blr9ϝn= dg+RA0IwMS&$;Myn^^\֮`*|<|D4}Uk0l>g+_Eoݿlj .kz_2:iSo0y<<:B ;}f4@Iow5 7^.2P&Hj$4l}reQAۄ4?ʮwӋFroo} \\xXĐt @8Aś''r07hV Oo=)O-IB-=aʶ:vH*RAYxN#sSaq7g̼NnS\Kr5pw}΋Qv1ZvAgF#ahBbb[./iqE5/R\3}؂_%Amd[cqk/Rp"o*Pj*j25&E@w 'izbwBiA'x̤oU7s!-f u &R( x?)RHd4p 5{4w!S ݹб8ezhDO (HtḬJ"{z.6]je [o0+ ]Pݐq16hʗ6Jr #MLC(WCYozTr1cr\ Ar r1,k{31;.-xLIHkVi&iexG4| )sYMC4LvnR:e4”-xo՝щηҀJ?*12ϊ៟i ܇ԩ6s?o>=W3s4V34-IwNz-Zb P(\o(#YM *jm% (4_z[&&}z8$sa&OYx윁ڼL/s.XXL4'Q?UOh -|)t>{AV\$nUWE}jS\b42a:k馲^2itI@qeopoSa9vM!^[Z: :aסBOsΐk9 넑t0WEWX?R-QٜU"C_"z{;A4 lK1PJiq%s(L+\ӴD Okzh1i2 gݓ;0&U)=٭b`rRU`n$p5CwJFdE=F!2APйRMӁABPiJo2T0"*n LH2R/_]űiЊ|oCՅ)66.6ZK[j^w=eYO.T[>==Kv  Qs`g܀x3z'>{@0\WZ[t ܢor q] ywM]Pc\J7A&.Z?<Ҹ1ygEөob'AGgL JO]~ 8<NLYŲt^'XG\Q$Wqb$op d"6m Vq97Oe 9ZeW1 ܨ!b?ZbN?h.˳cͺYCr0 ;FYx0y`nF0 ET=0m0 Q5U\:@q""P@!1l.ܰѳFUQ C067MYO. e . Ęs`4NBgۍ`(>VQP:Ei EҠT-QJaNY>"=YqlzNzF,ZPer)wLnv҈jnDh7f6`*UchESl>vۀf7k 4NɩT ')ecՈVr ZkVjR-۽5IOZ9er?(,1%4i+׏c}kK6po;w woawowowow9G?f~>z, rRBR<|fh8MBy<DIo ~w q;ptls u~&O{iwrL _LiHd ռu;&6E-맋4fKSADSGq%+5V 3u?L ~#g1lY4ALr%$9'Qvܝ-> ݼ!Q`o+Oȿ>HX-8A6a6D9JR0Qh)Hd>\l=vAYw9 %KPڍ Vt[?;F?靾6~`X_^ey;M@POBsw{<9&,6'ܼ8^>gNې"*N&ի?8IzON60E`$Bi]j[g%& ÍtV=xJXǏ=P] jvDAa^lֶ j'sxx8$G<<:jU4GE>6U 6IJ Ǽ?@2AI %0x]?%]z‘fGN&sO#lxGe/wSqI6Vm88\݅oM#rpP?8ObA*UV۞*W{\ lӨʴn.>@vl@\g/t$7 Ɨ h6ہEu2Uj+7G=!+Ulش[?Rb+rVhrRٮ۠jȸ]#ZuyN S.&5u:0 x'V~Bdʗ٥*\dOVўI7zm/O!q#dET;-'a$EHH 7?ucw09F-zG?E6A5~-JsΘ;w 0siZK!gb9QxVЮi\GΎ6Lc5JngӻdfyTP 0sm4צڎ9*܋W\|w.s۝w|4Yg~sC b}NPg֓Tz{}w.#"}3-rw<|&EڊśH eȈ.ֵ @爍V+s#FK=lG}ong]C?9;og>vWH[[w}ˢN8Y*iyE8 +{wo5_{r|_T'jӹ`*X1+=Z{dВfC0QFw+C^<=9&*#o{覴㷔a:lJ"o` iL)$ёS7c9n1/ƙyi#J-1SoTw4ÍO[?ɑXs nϔT1Uz(+ w f. 2^ȫXgM$}Sfنzh m _|T]i6Ou' C*0' (U+c7PlJVuwL hS,]Tr2f  ^6S})L<5{k H'QZ;`@M@(l9HUbu"t٧sb 0̇W<}sBd^Y>ٴ`KW)P/3\"Y^v6jj Tr5AliS5˛}E%7/$dw/ Y_|CO V1U3$[QMK3x(lijt r a!ssXWi.! !ntA,PmoFd#x- OEzVگrjȡQ.4 Qhr>emO Tb '"5&X,]n$&b观ĜCe. dTؤmx_Δ|ۥE(ɮ,8_&X6KD8Пa@IyAyk8N{9g9oO;8<% |="q st_x)r_?E4:@ ҵ XBN'-sr |Z|q$kMǽgZ(KG(J ` q0|ɹ#-}> GM"JcaNd>@Zϋ,Đi7 -: Zr(i|nbi:+ BHw ynJq+CLg pc Km aM!y& jR}dEC|:AO*L% LbSW =<k!Vh8ϥ0#~=Ff _nTԫRpXtN7t&ڋ > 0.)t91-_),%4S,m|BL^7,\׃c,v?Dvi Ҁ@RpIccM Q\夠rATA}(6 A7,HF pq oC3J28BQb6Uv?g`Rair9~mS⋴"| shXS:'9<:id^ Gkq}9=̡ `m| ڬhӪ˦%Ls@ ʰڎӳ̾\:2WF\_Ir7JvS_lZ!V$"T|06Bx ժLux;Bwlf+We|mCΛrqP-L[Gtj 1y o{ڋQ">-a\l2_KIV/Ց Vn߄kxtK0D-Yۜ߲YBT*%4ܗT"dXnaP ػ`4 ײrD#-0rx]Wjz[+y(+I=BCz 1wyV'[/8iW {.RױzJsO '3Go]Yś bXP"`tI<\dܭB_p4V/en=ԛDd5E]ZA;y`!q@91&lTAt2|q(YWt+(MǠj M}($CY~`*U-Wǀ!@^FMyfm!\2֥0 ` ! _.JzH :q ᝜ft7 q,;:G:+:8Gmϕl*y6*HD}Fn$@`e&p'8/eɍ"q %2V W{bj;j~'lIvDK)OG :Lm rju%g`k/HZSB#;,#VAtѽ:+uAQ4:ez9GP)'۷9u L#VeVuq)|Da8`k ,ȎS4H2/^;O&ϐ}bL` dv Y{=lIJ}YNBeR R1uK~9 櫯X8լ/bhv@CDpa7u*}6ImS*$~leZ RB'| F@Z@ x&쨕Fg9Ư'LYY ;7fB 2FF(B47 Ȗdv%R lF*Ra\-}_}.o;A=QL(YnPhk0 7,_eCegVӃ2n!Mc&|P3 T$`00|WbA[Àaﻗs)] %2>{wWFĴpm,!jr;8$()OtTM!K[\8c]D}\dvyS~/0'#ۻ?o_"~ =XjqQ /;ۄ_|)jQ~&E0IYH&E*4K*c!s&P 4/pTqh, w4ӡôi+Ct-؈"p$J)pʓmTnG1@Jh*ʵoO.X$* R$t)ULs8=NǪ!GVy//#\u@EA~UGIY^4i]=ۇl6#ǎXkϕ DIpu2]Qewנ!}ŝ)3`x:!Xu/@¼ہNH&Q Nx&s`|#-sc*iL'^UĽ:N%1"[ kFbe`bNKxcOaVQAXZ5B@= @#d|ؔnor[o8b?ITnups!]GEA VUckUx^7AY.$%1Ŝl+;(%LJ~5{5ނ2!Ϻza)]+G%Y~[k{F 1+u]m\Я/E {Pq8avQc /~ \!2 }a8IwB5J#i_!$\kʙ$սԌBJhym+ åC 0GU9OLXvͪXFKXlr"=h:L=$tO=}V1= uy"&zix)1UowO{Gbţ jm~& uv7y2wn@SGM:}<)ST'GwTťzK 8cewq98(ł } 4U۠V*8.zZR~Qmr_Y]Kz"l{u/(o2چ^e x z\XW=.,WWKUpYm5r (,͓~s=vJn܋(P$^IuV ߽,b~N?1ꛞ D$1rwM{<=aC 9q$tS AhlU'Ɵׯ/7&CFU^6Zql8N@uǟvGSp՟]ВDG0YE,lzNOcxdB M'!cl;#^^!Qj,^ ߤeɿ:](iNP1Z|""0@ iLTz5бOt=I;U)R8oAC!>M eG0h|?Nzdi}PL0ƅ`rUcip]0 ԗ)R=D7BBᤢ29fm}zr8ZQl}w ?Qcg]c?9;og팿3>Oq'҈/Sx!y/ǂww*4ry N&y̲i~G7M;jZ7c> 0WIP㆗ّUnw5 aۅ[)/ZmȜWg0!q \L7r*U.!UE{pw!pnAtNLn1/YCHl]h>?$azzj?癋.eZB~G6K3;;5 %d^ô6t=]뗣X/[~v=/VYGj !sp)TE4La .VgK l:Qzs&D_$K,p& #"ٰ扅[:Id9HQ% 5;=g綽%/b-zr~,%?7q;#42J%W{vwrEWnyQCQ{XϦbȩ*!ȭuLVwid aMiմ3<#u{S\y߭ Ƀ#6J9rAw8NE}?̈́1ĈG Q "U#ZJP%6,}Hu%DY Æ]#YyN,d\v@",$41kJ6\)^k@i7@?[I88 |p#)2Ɠ|>'Y+x~G:Y"@U%ik8&MFPdH߉y4SPdr6sP[ 3MpPvplj"r]h&2ylZV yj4#-+rRp@WCMjn$/'/a R [wE.x̾!I E*t퟼8=&:f`gx!zdTN'LJvZί߷U8F,¶y ~%f6c2]ȓɌP+7qm~;m*uqd*HXt@Wlyt^d3PȜW÷΋wCx&8Q?qLqzI;眴e4y~ԥ0h,*۞,hbLF 07&pQg'5k:, kڗj;JO۬ͤ0maY-lXCiuwH2Ey__]{TkJ!]F{~/AYf떉'm,6y_|fXSm:w\R$Df WD/ARZ&ŭ[ڒn<U,enh*0O<њY`pSY\f ,[@fpύ+[nj*ΣY͵34Dv 6$xMj6mfڤ.ykJx% *dz!OBĔJ"P%*ɳD˪ϖw Av9.'ʌ˄jGu_œDVYQW~n֖y5rO Pv_f]oB-h +U@#z+bo8-7a^l Dl3,ypp@u-eӜgĺXA((5e6n_r@ls|-,)F_o2َXtc=@hQ0%@)9knS063H֡mT<?0kx].|߃9^oc~BSaMj8Ʀq~乳CAb3_-]F݀sapyV y;uR|>uG7؛ʕ1V)ىU55VIvӴtxv5=,Vp9sT%:/e,uyX鶮[*Zb=߾ݢ&[4,xkVa5Ou#Yh:;F-WO0 8 |6-$osoG8?;s?0M%p fiyivxt@L'|0j漁Cp:CD"$⮴VMh mZ$TD_/ }NA;q稛 5u?Xr^jJFC!8B%NrOwpe~2=a_Hg@j%s9YAiqyEA3}6ND=m#, 2iwld{bE0t sş>!!і̓I:CSЖ-\kLɈX ]\6M4ysO6I¸|l5>/'U[=\HHۢd : X)V3n*`Vc8궾Җw m5ã`dANPT r#KjY;2d{q /C{s7Xl#vjꖚE v4J9A`%/٥4t)/'q:h?u'zw-Ӵ \v[ |1y#Jp~ *6W Tq`G''N9M!P"M{4EPuOU1H`L"%3ݕmelh1ӟ>!ѽh]=9EE?y>"H(vMpƑϑ'k'gеADZl)O ԨgI ]ʒ+h=njѦ'H)`zD >6@?vy>]j<}&N2ʁ-DFX܃@Jy,g(PHt+J`L%-wZ[o>Ln4**{GwRKXC#U ꜉ޟ'(ς"Fo #Q Gw)\| l^{FSɴUf| U:kΡNeLe9&&.ܙӋ![k; JF )3YH;;ώy dliB#0T;tu:1r1þ|}M)zvyo4$U6 q1a2rA%"76'(Ll7(ɑh伽ͦ[Ж]?mb8!Obd3jCult欳ey!kɯ  gƙf`ri0py+@@TG^cPJ`Y\B xrrz ~efc&4)'3c$c$#II@6Q-Jiq j̶ǍZU4)mwԕd.pe]CmcIΡ $Y=bW )i(I(ް)_Du3>B{lCpZHs|O+7,&t8Oob>TJpg׮~rj;- cScV )) IF_=J慭Pfݴ9-ͺm9Cŗ:䵿p'B.aqR^(B/GK|2GI˝ԅUXG\(&@]jWawIo QvJzVw0~AOq]|ԵH" 5iA{ƒղsvvțssG1ve7 0_kBÅQ]psmGtahVhCh _/]pϷvuw....\A?]YW7 Wq+FeD  fjW L._}ýoawur*JD2iB~:i d{} pq)ߺ(( r!Tg‚i!4Heo#BLY ~O!Ṑ7\ (:,6YM􅩺- UؘX.3e)œ1풪??Xd_&|u).Yb~4M >V|oxKrގ+h4a)@][ Z]JP `c7 2Q0dޱ oӘΝF>zWtLTst,M5R- ʞz+lUWa0xuěW`v8YڻLTp=خh.lBhiZw\2AEՕ懺Pp8=[]תƹ$L)vUL01 ݊TK 0M1$ O*[u|_/V.].(ož:nȍt$:Y]$_x枢{:NvJ i& 4@.rCsׇ<ҽI;~rB(bq\Rv {Sr?^Gݣ~YWח5<_H&`+?숿_z kR2)SS?jd+HkUf]ƚh~ 8K|yxztO J}oCOD'jt;%GXQ JVM&b덑3DQjI<:wtWi:0U[a/PҼ%zvrpTPhZVG٣ V8Y:"G< E}%Sp1}H}!IqQ!u/CQ+y\ s€]N]qq]rV+cgUA2#5.UvX}zob6tJ@GJcL*=TIb_w:T 'C-ϗ_ԥ55L]%1bF vUCoh %Vi$lq3I9hfC]>d6'v/2{h|7}g/b(Z,J,FRHϑ0)C[;yOU&]0pAV%Xk[ƐSɣkM^3 [#Owsjw<^;֩b#Enky^\ގohobn|/M䦦ß{bizTI1Q@UGnFuߺ{ x'w$^p<Ng4nK/8YH}KJb48dڬsԝy6 YId ^4*) IL?;b۾_1O]L=4 LcT< |WPP(0D^bOF =h$u:B*_zmYM)EHQ%)W@ VT =A 5鐑~RHBٖKڠ>aY6N9Po!Yg}{RNxM3t[lm+J7V媘I D43 VWh7_CSR1dמ0>~įE,UoŨ!Uߜw cr:52X{k"| ^{5ά]۳Tt Mq(ituV6:mQreEEG1 : >]=EmL*pO`@%#3bRS kr0QO[cN㥐#QQW[#6Xw*!Wo7ֹv,^爩,?_Ô,h5 qC3X ˳#*.SHh\&c#י@Emdb7QUx9S|A%>z{SnM1V[*:j%Q͜ sԗF*k4ex1IŠ+@v#Tek"P֕ܓi(b Ǫ\O-S]MoO+k2FţjX[yI{]B`$gMX:~O h7s߁k%o :JaQe~a kUb ?$H7w,Yp-?s60YLD%נ: XR1+MCn-&!\/^Eqbex=BA;wY % 2~4aJfn f*ޞhu olWY)+mDwDav/7Di5,q0F׭PC("5~9KbYb;/fntY2!L U BM nvQ. xK$ uqI/iRv N'`;6{Rl).@^-[%.% ޿xeB /8]A-0kùOua{qʣeǃfmmdymǪT|+ȸ_`g.A.08'$U9eROYé{u7?ۇ"LeXt1C'rӕ:,SY~J7|EcYaTpHv\pphIŐ#T dNSNs녚V*3E[c5:v*N*WaaN6 œƅD@ rQIcMg{Sme=Pb2ճ}I 9fZ\Ba?)ϳl=B %:~~DW: bA QGƭ\(T%5'}d |@tL|j>%]-άqzt70/y,32G;3ڴ9gGPF-<\3@7)E%$PKmɽ!<?KT۬Hj>(M@Ŗ'R*j/Qfڤ*#IiIrzrrs>&WhfD֩AE\cg*IW.!QR6 eϕ*SY0SY]Y6' b0j@W b"b\3G Ҧ XGO%+]bl\LMi ntegJ&ǿZXۙNvY}jZdOߤO.ҵNە*xe/$CW#=@~XWH 5Pb&aKHg'GM-[b8g.崚{tGVB\cop汬G{q*K6$*A q[1r>\,!x 0JG"C]0`@9X!RCA[-𸘶Zrjyt`mXWi:󁴽Tњ`9l[^o4=Y,3Y O٪Z2- _B!T&1^SVsk%"JF%yЖ-i7CJڏ!yc n28 {a2/]Mс\Y2jX6-ksl UcIZ)HGޮ갫daO &lﴇrQc-(ܷ8FyDc-C'+epxoNB~<=[p3s(BMcD!im8dYy4A&7C>e+1rJ1f lm$ -]gB -1٥P9'ht4˪ˏ< X: 0Zl&{  卬=OՖm]T} :.uIU/ Xdohm#6D a4jWZXv>l<7h-ۍw1_c!Y-:ePrLQud5 OZMӞIxY^6] Nn.EG)wq0_mnGs"[(?H":hhV`S~,y'!kLd#: T)'qE!5{yFWÜ톴$i=#2jRv̽ *5(#cY˄* %sl j~"4m]wLKܑePtꜳPiF'Osg fvi\+mhk# ϸ82OaYxFNVɜ5J9bc4G&-MUA#h/fkV*׎)2y8꘳rӔuؤw<"8,V;?9o+XĒw6AqAp-%ltְX#4*=+6͢hn#Y9g7u9YH OxT^1$ "B" ~, Zéȟy(  FP#Z$p[ ɃS,}qfutXlVф3@aH,l&7B]Vͪ ]^RCYÙpcD5ŚLō`U)Ћʝƽw^M{1ρayR;Tf`8)xjX%aZf<Ƥ[R@0HL*b&S'Zp?u=&'݃AqiҨzzt;y}Rrs̾^6ck9&ytpM m؜emygu nn}MD#ԌI&~*ruμq "-9C9*SplvTI~]}GgEv!\X:3A)lzZ^\uNVmt_em* r ,zZҘOsdSn!(|tq:#FKv s/(eMz!Xɵ=EFf(٫2Pry Ɉ{ '_4. +Y{/v$iCtBUf,|SۏB"w5ʲ5ءJxPH5'duMISeQO*r9>GW ǐY8;ƭ-2}0z5SHn-ȹoZ_OD]%z8tM6kظ&ڽ\)JaKl܊6WW¤5mp i8.f0 ˷SQ3CbJ }f^jI0Yh%A9{ڇ 6qc~@`P/Gi>(u  Ő,>1|;*cE~h=8UAh7\<,oR#r@rKgCr #|,.Obܓ*$7O3jֲSq[,\Lf):EhB[,^{BO4TH yc/ H/V ZTN j:8_om\ěTSBA҉N0 vEmփU:, 97(mHU"ȄD0볋A9.tT!yu.LA@L,jtw7jjiw-N y&CB&D:qR4UGc+s~r/Ž&hfZp"8:|2ļ (uQ`q#:IO'#'VC+e:"ܽi~>u͞ޔeonu=A!03P-@MǑ1v+hS8?Y[nØP[d>$C{Xat+_U xCa¸y._:1Y]Hx74mr>N:tS?ϋ ۾_XliY5[:SzkbxrQ%#hi~v o0|QKnLfj&T%H&'}l]_.9zlrqeaNކ`_[ɯߠZd^%?y3xrrz⧼PJsSz"L;R hPy[Vg>,sQq=h8]'pNĔ NUjӹrV0Sگk#pPqZj9NuOB`ǶjWW%i79#?]zOb0O 2a!V1spe(IDo[\ (3f˷cDbHmhaYzakM0_Mal4jLz!q 1/ޓwF&2gu@|.VyKj_q)O~;:-Yߵ2yFVb(iFiCCTNV;eCFKC8Ud+\mIHW5]Bx_d:$G WXbf2M/~*ASSm|vj!8 k_p5"0 ܽႀp5P:sIPB^Ttjr57+ozʷ̒K~Wԯ .nd#,28ML~YCkOwSyul3Q)#~Փ zg0;2ӹO =['1ӞYաȭM֜t>lO $XYUk:tiظ':-޻fMܣIQOaVm u0zg 5/˳T9e矍 -C/'2B嘒LNzvXx(oW:y#_ZCfG_+;M!']eaSBNyUA\ٹ(B}j|FZ,~އ:fVb t "cQ,$6W?&W;b q;9BbǏ_suxW5׵e7q5I()_rH"Iݍv_ba7&TgfǽB. /%SZ[ӼM lg3G tdFK+uD5cͰc+/j `1KL*7rc(rONU3 wqU(S]:;}Q/ƅ22_N)Fe5Z6ԙ/8<4. ù so2_/c'%%6漫6:4_`]&$TF AClÎ66\ Us_uSC7쐂]֙xo gఅ75WRIղĶYhj95?Q$X1C,DQNg܍+gO?k1/E2pt{bɱI*7/XI w. NֶؘF P!O1DwFX6zXprr~/0Q+) u*`ASTٛt2n t}'L4CkEC dv~IP+; -hݲ+)YZUkn]eE`~$^* $xTx ¦܇|0ڏb6i>ٮBM؏bǫ="/? hBNFyHHnL$KE]uކ&pⷲqa܋PpNBNZŪ/~wU U"9/_Gl5_zLas۪¦]8Ye_TO 81/\FgK1K~BV-xꇜhrKy\4Լjq2Y.ܡ>hHu+PtgVFZ, m{Tpmfc”/)3F-lZC#TNJY #4u Ogl&\IZ(rl8ޮ`½ِ!">UsaҬTW^uߓWe_.<Oro6m֧|T['ʥ諯@FXhlIx~xy|USрBEȧջ1Jv> ^JVie0GԿJĸzQ۵@T6ӯ p|-&(^M \3}7lLt:EC^(h lHfhhqʯl8+Y=DvYYH؈K 1}ǎ,WO1$Ii;H\z=6"Psy& =89WƻzԺ=vqs`m8 r[J-Pv˗ S6[ 3 XD%!a-30oGBIEM!x\Y}YB5.&uF^Lx/-.94WI7n#Xv65VaAeUJnqh4 P=1XןZ6Wl+foohkKIm5wT`sx.`a8ε44WC+z@KΖ93xYc;a6!8lmrN !-~xnyqPlkeW I]"{,/kL[Ang U@Z‡+wDENVR~ÔK"CaIH 8bڞ^Vintu1a ! a iL0Pd1|Ȼ4q nDEֳS𴲥IA}-yBF(=jkm jP% sif)r'G6qj9}Iߍ&c"aя4}l rcU密!}F'S/2x1UYRs*L.S-sc)n`L3HdiECPsL%~P5ilwMD(o|42k{ē #`ky{9.RQ4 4|0PB{DFoIꨌk 2;tpClZH[9_KR^È84t Gόqkh8}~$Fm"| =&\Npg"&Wn4HAtt+T4Aw})L|¹7#e2ޱzw-s8Fmyyȷl8}ySRocX0fbX 䌙՝;oo߿F&EwOz}"ٓlXn⼭hMK! (fp9""cp4-DXo"zXĄ]|oŸDYnu/-c-eiMV %GK/T*[aKWx IJV[aCWNȚ]au4L4T.ɮ|/ĦP ]QU%*ްPg &ggEODU;89~r;p%W?6v9*3 M͒\ =S{o¹3iBG=wM^w~;98snS.AES{ni <:y{Rpjc89E1'Dp 0ƷVU YO)K< κS#q}E*-.@wy+QO(TgU0| ʱB$yO]W,s[Zv+KXK(R Twӧ?A|Br|2H8~8f}\;wVdyE׫+;'v+$= UeB[ӌj/sp]'@hl1Nqv'CR7%^N.^. u#a3n_ T5sCU4 G<9e|`lzy;2N3O] @g[: 0~ѵ_D5WF :[ZޚZnTgwa1R?)l >NL(mӍ៪ؘA`RVz'Tem{#%Xˎ}Ԉj>Φe.2n^s[ 6U3^0W_[HL%G_<_rZ]A{gz[Y.?^y<_gJ}">=Yʇ%Ryyeӕ忭<}tc|wo3~&l8**Wܟ^b9L/֣ˀ d}Z[WX ( xolG+yO"wGQv/ƇEQJ=R Fyv:ztN Z.qgec^ʆl_覧دQ4k1;Z[X7wc=﵎ftyxat`EG 1vc\769î׍K8>.9,EiIGųx1-8|Dg 4Cx"AIYɗN2Y\39<`bh^,*t ܀B23 l_p gUO1;"3N2dÑ$0Vጒĝs^1:gIp5a2};Vӓsic ?W rFIr]6.1cQaAv gc"Lx>F>/iĨFx5{:GXq ʹ*xJḿ`3`YR·& PtP{q~^ViɪĻ^_&!&'DODrSdil FY;;=h@F=N5kHla !Sq̒Ij'TL1nN> 4Gt~C7\ᩩSQϝbj`!eB: |=pIwYeBfw5*z+YU4! ~IN[;YJK9yN?Ѐ: N21(-Q(g;a ]u/'ŏmcc V0|֣!٥l Q;&&O3:C/^"I(k(ΆmQ =\-ɾNhlA..f" gmT2;0q17Pf0ty[+Qğ VWV=3|f43L v^-#f AR:ӇHa9>7S(گ@j JÆ]paUlhuCTnظ'OH.Mxǃ켲Ay/⥕+kV?'X05wrp+ʫ+чI/9X$flr 1;C3 !cC<̈Rذ$eg{|+h}U`p6X:XPEҗ%|9NƩ͕ bx6j}}1xfA~?‡y xEp)mjh}طKfEfBG?"؇ +C(+oc~wL'vڤq e.::0+$3N8V.zgl<v.& yq0]Μr<OPEH=7#Hsqo>ء\E ozsɾT:"8,Xt^Z#R%.Q].`xLbx_Rjt&'gj dI$eCidw|hF*l7e@s:\|o&wq~~ooYP/ʶGf|{N:7G$ux?.k%3'\~vЏdn>w,_4$.ru'ˡfP8nDkh4 ! P覈g%߫AYm7'|daGCY/c^k^Yd+8Mvk;`boldƇ~&(9H2} 5\;(jFh.4˕:3'XَAFS !H:lm.i^ӯ#zypR;ɵR{ȁЂ}*tI͊5 vR(ڽ Gl˰;ٶoiC\'3Ke!.1I7<-L4́d_.zC:`._:@Kuu[Xv|>6 gg΅33 ,ޱ9i|_+nΟ|.Q"1a" ;TI2M$qq?-MU @PʗLmFF41$YPH(m7 OV\\82[aiJ`4VQ('"C>vC:X6+̀4OSCfdvpCs.&MzM`:@4t.@wa=7l]2|dLS%|gb9})A&t{=4Ufc܊v)EKr]&Y7;;)sTxx+Yg++37*5xGQ~iW+W _Z9 '{W$d 7[U%3'Z)4/Vs CSov|zΎ6g [4A/fR轸I~^m8i{{-j%@!;p`[bw T~=|ֶ~|s(RiA(n[И,4D0@ $/VʆIN ^ )i&5҅qQ`d.`)e3fDsomxɩ6:_ t;4Jۼ J\XJB!f5Wi:- I~o";E ;Q490n-5+ι ]嚜%8 K[ɊDAO6b'0ZȆ؃n &yw\fg@AE0P &BxM->Ic& hl2tj`>(= W(f/LdS͡_l ܧTzpV6C_%i#8Wvp.Fu$|%*yfd J: ᗦh\J rPS[nx/V xOx0B&@2= =4|i){@b_LI&u9BI={ζ;h4dRFNJ^&cʪ.U@6"/8g?MNH\O9e87˒IcV8OagmfSx>ʆ$">#8!\g>#֎D8yXQ}h.˦v/OΓ!^b5HwHOLe#WPr_<+,JlHy<෶Ж9 4*BڇWL5vU"P':L~nlNx=2gWO{\.+#GG Mϸ%w7*VA* _AVí'r_XEXďXC>Xr؎"uurDžmg* SfSF=p.F&sY Mۘ hhu迢9;}8U0>?&쯭ޯZ J=S*ʬ\&jM80Ђl9:/Fx|,%k7%F. /(}ĐpJrRʁ*R)L 1*LtQUـJ1#/'\*w(EŦh\Գ38鐀Uxd#ȐaxR(x Uu/'EE=DHs,M قnZș<+E ]ȉ:CW*V훴՞*յ* b |;ZJJUT ::Y#xa[yEc N Am ̎sWzoL&k 雔ݑJQkH/f-GMboEu46|>1qtD4 r):w\uF~oy6=ZMޏ;$'z[ +rk`Lz:[ůPsHFe9zKrM$Wd6WAWٰ+?nyu5I>YS5Җz:vtӘgk۵b%+'RUb-{aqB/:  HPˍ[#8E L"^>ƒm7$F>b5'nyzy?GȦVh'Zᓷb>jeyK=fikt+ i1륥rQ?LF""m&jQ~Fd4RIK &sD0\;ߌ`I"6>UnآZ3*R U*]T3#I^C6U<9״^{eO 4_.Bϻ- KalP-;i+iJq0E7KZBܦm\Sܰ4g cƑh;NTPrR6 Ýb} vA҉0?lM:C;jqt哠y a ŠlXbv_ jڇ`rjY`:S :gR_]{5*+0A+T6!4YK= بT1ňޞQz`ѳDzWWf#?\j|=^',YW˓Wsp8Eeb/xp1!ȂBR R T$˼,JDo~b'oe}HeGeɝOlh #ȳ .I1Gf&j1UʻX;V2'閪TMeդgo\%;I:ś0iP]n4ocX]pUΌ2h4D(^=J\-s#@-)fH%.jWU*=WG ީPtFQ@όxUM-]I#:USX_Dβ/gJ \az}׈Ͼyj3n5S@D|XLae@D#ڥ B BVv(&t?ݫ@7ޔĒxeK hP(ff,66rM;u<:^z0(gOHLSdt3$s nԬ5YugBiZ \_@ غiF*6* (LZ.J-D  [=dM¶rU2}$9v`}D8bg1;C&?00>6by%$}87OÄ́A 趇(f1P'$|4glvDz EHJ+p*KI?b`S\eO8OVIGdwɓH2Ớ0Ϣ ^@78<ơ|a ϭgs]u#gy T%9he0y 3 (ȋ_ )֐cΖu:m7p0F{Mo)<CUޚVBII2I!~F |F&]gU)9?YsbIuYJH.yʚE[6a\T>dހ7ņirlẺƃSz<M [=֛}K!΀-3*W=H$Q+Ox=ZҼ4Ko+qQyL[Fdg4gO KbHlY]'PUvMVc`QnIo@67虙%L4<#Y4tEӓ_iΐ$9fH/D6-,yr$N`&록6P:ĝĜrc"ժt%GySL ƽK1#+H |//7d"7ۿQYF`fzp׀OZ@G'Z,yJiA4(:8:߁:J/[=G;̯3 +Hjn{}T]'jyS=Oz,{.듄DlRU/濉QpFNb楒){~ QքMUX~w<<=})AkC/&>rV EgwVY7{r :RXw>ΌFRoJM"͸yL̯|=zP™뙙I3"|t6 IS֗/l.}+8z5%Ňu=P$5Mx= 7lB܋_v pQB/5xULtWvF3߭zf.vv`8f-̗V63JsH\/>7Uє@-G?8>R'(Gi\ ݵ/ R*A"a"9BT.wL)KQ<ɏ-}V/p!S~'F{6դ"WN^~ƬutN{_^~M(fVؑ@E?ߣq1JdaңGя'VU 85ThɫᑳP;@:)\KݸWUD z+ըN݄'w 1*{pՇ%.Aue\hΆQo*_H $cynJBܧ$2U3aHW,֤r@:'OI}\2;"07xeͿ"hAu}v ZӈM%v! 9qAyG{Yy' 0(vZSX0!vZ "X.92|W1TOl(k{nN3*&4<UŘ wӌ>!,6+nv Gup2ct gy[cK*)9hEA 5b=`ϣG6W,>1Дe=)  ?}0UߛHv>|1.竇| E -ZRm쏓kUry`݊seާoFoB+k{RX\-5:{ɓUS,T)|?_زC&a|C.ܒ~!m#TOY 祄qzS`YtǴX쿗=G'I9?W'4$˲"܋f^Lێ-P$Qs,E?aFe#$i}lm`$ 9j,Nk#%^}`sP |T0Լ;"6JOP_cMLQ9KVd tmR,0dղ0e9*N 7ϓQ0(SJ9+\uQgiׁ!Ph-_NgYsfyqv Z}E$9˃OkVZnGݫhhzlѲTܟvvS/IZQ7;oJKWF:n|:l%v~]1n 8@DZDardrU :>q/4*?S>b6) >nFm .`2.W5 2@g{mރqp>A6-Jl$K2Y>JR+=4x\"GG"aOb)t6|XNnxi||˾w+/^&+Id)v`r,I65>Ϟ=gOWZ]^YesEEo2)|zE;kQT)dNQ EQJ=RډttuجPU`X>^,*tc<Lav6/8PL޳'xx͙/<V$l("&O8$qWe3u&N Cn}E;|V#|^҈Q +kZ|͞?,-.NA9WO M-u qyyPb-e%j 9+p)"A*5\. 3y&A6C>~I9ɼw RZYq$YS\ eY i~*a$/ vŲX/o(Epl".ms7ƝNQ,=[^Y[?gu&G03o&d72 Vzz2u-6|L3LT5`eg,Kx iKytŸ|rP(v=Oas e} SP{O]2#mo"ۆя:"AC(]j|E BLDφz26Hq޲wag)g"}Dǣ J \ 06";xr96M>wosGE/L2l+.reHvm9QQ ?^?DoP gƠMk' c |WUPaϼ}NI0va!)v~fhQw/tSqR$+_=8"N`_H2t{ `}޺4YHde^R+"#2(igP`qM ]*j)|Wxt.riM CÛ!q{9p -glra7+S}P>#-Fu-IOnmD463^1ƕX|2٪\DT-O, Ξy dj#Keܻվ;@C8e#؁#.˂S* f8JDDeќV4m-o{;wCPxGUa||~wk|`dȰ_#1͓P=j} z#*G+KN\(2˴ |ف+z6 &cooKu]n}:Z-$q]:GQ٦ X˯2*lD`Aw]]9OyÕk*3MYDm0mAQXZoz&A1ءԊY8uQ¯sטOC_;=I55굨U] 2*`58%<ؠLI;$WqRfK D$AR}kS2 =G*ed?1[ÒvCvK7W!:}MP%θt顒I*6hLgn 2մP"*]}yBd'iF6iu 0[^[ozJ[&Y0 V>s1G v WC(aH%x.,<9 VIa s'khFZ]8;F9Ս9`eϱ4@NDD[[fH3hmVU:bbӤa ػZ ۺ hinl*t|X0h&8-`zVjkU'}H]5g aKے^5;VsB6<*ݚ+UxЍGϦ dBb#8E1t(c^6YIڤ{Ưsϵ6A3efV鷐JJ`[eoǧ˸7Q{ eZ *p PruQ;φlIP)y:ء*iCqQb )梵 A}} ' ?GPq?J0/ 0efN$aoZzÃ*JiI2x,YA8>S祖*rBx*:lQDw^ tx|/` A|&O5mDX8w_(ŵ]d$Iz1Axg1^\4G0 S,Ig<XE^-1!FwG5D+N%(I0YD ;$VGڙ:LcRTM;GNxqNha0'e aJP*ۏHQuohDT MKw):ߵx!j6Pu,]chδe>=}jS@bjLCt-#KsS ^2U7fhwS*iCBh݃|b57d%%@Ͷ /j\ JTȶP_(+|eFxfoFtwl_ha wcWhStN&*:BCO30B s/~}8ABZzl<>m%,z{lijSM$@\ΣĶBa|CR-K]ӆ5!Dw)WJJ@IDHntՈ|lT.u'ö#'xH"8¸2 bXf:Ү QHK)Ϛ T(yDG1n?Xc7N2\6[ wW_+6Bڏi_ KAdA %䴹3Xhd#o|TM^Zŧ Ht"cznz]:Xs1<\T?Y/X=9o}O?sç8U7,|tYYYYYϿNO08gWiq,*f_PM6GBh=%CJvmeEF/>pX0%GC‹ Zy-C>?X}.alsUǿ;<8Ҝ4k6Xt_*<2#n$- -{i}56{T~*\}CuQY R,:!Ek*7&ux_#N.MbO2%>̟^M΍bjp.0gnQ$+wqX8:űfHgU咲Ab{Q'eϦjG6hx^yhE=6d\J`pn_wN)z7t*V1sXRt;MoA4ep!'LFXԴFS10L3=acVk E7eC/BZc1DͩqYRO wN9fI|,4YAO>9^gEpCm;-|'S i !͖2Vd|֘7w)`y6ܤ7Gw?2B шΊ@sd? q8 H93a{ ,f3{a2{[gWw;IW.}v Cvǀ z6jc>d;X'e*@R}n;V`4 fa,ྊAd9ZL}1Nƙn*$V3 8BW6V,U}`Ck@(2֣9,8rW3zࡎ sBl<0~>Z MI9Tkѯ:)!gqЦ‡.Q323^MnԾo8x:#Ti+~7 ߉ؾ$X~khi)Z\cBzL bW&h' (ln4's5%Aϫ dU冹w>o/Φ"J||'#\yBj[J2mx ?^$!( >-?cw !à+eHȾwDOMa"PÌȩGI5|V]Tp742L((Lc-bek %a|Uj4J i>` 0Dmϳ cq<>>l= ỪƼGAooTFl xd8FF?Aî!R~S ҃/]^!~GZ}>ir_g QLX}DBd:2FL!]1y b?YF>Tyܵ [/oY|RԪͰ})OuWUȤK( Tq6~{&7\mt$3DuBll mC=%:hBydm i-p u2L0!*2J©k^3s``i1(쒬O3 )@]81`s؁ٜ/K]RfwS#c›9=6Z2O(F{7#qt'(hVl c]@Otfp0yr׆b>.g>.8y^}'b /2ЗHc_Kl]`ՌW;0f7Ỵ_הKKOg`'oovu29YDi;M{zUK!5i,=Siŧi Xwg 'GzjG$h=.rT/ErV gtf!c;p]̀ b40}$2*rŘ#Z2h }E`Ȼr.{ ݢ)69n=g9 PS@R0X?)X^ Ƭk:^@Ko]PPxi{f<Ӆ>xfi2?H tcg+Qzz=oF+" I]j^ b8|t^ŊAT 42 eq7e]|zkr;U9z J^J $oC5^6IVH4 T Vqlnܻ]H^e4;7Kbn˽R-R/n8`"fB-uLV&Xϯ8\ud YE\+i1q_DabnZXuD] Ɇ3HwO::ꂼ/s:k7iftCrM&KkH&Ra(k^ |*ss ,F 3ZZD= 2ĈPFZx RR!r8<])4dk*fXGLmpֻcN漣9<پpfkEi8h\q]< ULxCeq5H46&'1P*[Ԗ@OLg'@uxXb\ZN-ƣAa`-~^<(eL4]7+:Y)ݜ:eW|캉=~ϽH#b6!EhpU7[@Gф ϭc"!0CBwJy0P@מ#J값5@fKmsi)zemA0㌈sJ`@,Hfv9CJ/:_0Xx/X@u%vm3 B/VQ&9!{E[ tI`8EfC23  KE8F鉸ip_>DjTGmE?9:~P|(Fl/ TpD: F(xM,T_+%zCvwaHQ?6._!r9K6c̷x`̹@B,})Rˡl"7i;;1$ҡ#a5; v`I;%UQKlN_G#d'eudbL,腣5k5 sx!<BfipFNx;\s:6AGG >]r.; mS±)%kɼ5I8 >\M]c,ŒL(*~&Ns?$f/o>mo5pa4hCxiאuC \\xAoEݞo{;b9ẗ́p>οex2?w4WXK}ngl  <+}2T?g2X^[Y~xt>4 2??????R=γ4Ze7Ŵ@xNi U)m*S+MB'n@ʱ&JI{2ՍO4O>[s啕!Ah0.9e~&'_{MfL3&gq7$Ι8*K 7Ni,q\4_ Kgi79mj}sŞBv}ko]nPog_P;AmE&pEz,м3r~5=2hsG1Ņo#K0e%_[ W#ȡ`% U%g8L|K2@ 磋7Yaa{|b=怠 '\ XŠq`ȤxaL|Әm/1SGN(z($L^k/~!uS|r *$n_Kym!:a$Y_^+ט8曭[}yF'3Ȃrt}u_B]]Ѥ7WGc$e +y)lƼnkz$*@!hc8s{k檞'th`w(f,EC0+e~LEء &ۛǛ!7Qc2lo:hPEY\ZRa,J|ҸzZS (O=j33x@J|b/ʽ\e$!fC݇fag/ &H219|"vSI $Y_4dt^zdCbdB[9tVp&!Ƕh4IWbraDŽdrʎ!LCF.+B1!vM&ԖbG{ ?SQ8kuL=|P.C9ݵ rk`1j&eOjO;=XTZ `jxԲ-3,LUpeeA(*$:˵BWQA"$+6Yu? ( l ˏWW>]_YYnFx.wmOxl/֞?^{kԓ+0^BB\Wme N^ 2ú"t>@] 4}TnGvJ:zsDgjzv69[L -;P*IU}e9 ^^(aXwYfyYb^NXZǛ\7>X>?w}dpb--Jf Xk]p]`]Mݖn,ʎ \d{\mpfq*D= nDA:|NGpe#{h׋lУ̟pr<0XTLE;Oy) ꑯ,=5BEyƵ:`ZMh_|CCLfg水h'bZ |M VH1APݍ)H6_432"p,ˠ sb䀏FSUy*/|@Ayg}WÕS U܁w TpbF $L V_xƉ"6鹂pъc Kr--V$xTj.<ȕ>ގ3t-+ݱݯ]+͝KJpԪ4s|/uǀki g](d;BoʋU>6yC-6XU1īgtoCV>F2Od%lzV*y-N8DPiҖ$ ,G7I ̲dϝoff\\QP%VY[*V ^Z0glSfEJ ::}Gj 3 Q("qD|TϏ ڲ74Gj40V \H_3`H'Fp2MD`iH W+dy4ȼȩl][GL2!Qxvqg.V-W<];bq32wx{1P碮} q$0Rʳ#YY64o]o<}2F=yJ|>s9 p;pc2 ډ%X";(gו '7mu3fйl zq"36 34?풼= !P>0I 3}&\d.E9c{!VcՕ~lg/hv׋ uwuy` `:Fj'q[.1f,8iw;&h>앾j9xlJBLu=g(Pgϖg3.>\8)`e5Z`bs<0zG/Oϧ'?]c HP 0;A$壮+6P0Rdgް Cybkćr"O1Krʺ̶|h$Aag))ĺă$j#Ex׊Ak=ēbcqc S"$ܼw6q mDn3j g7L~|0O n|0Y}6m $u0da|P*NS5^I > V2lLsoM?|^u4dx9:}Z$"5 x10|>%|]uF.5f:"4mċS79ǽѺWm%V#&| 0s+,3L ܇/{5֡DvAifs *4N7xS9] 4 b*F'{Ӝ@ʰR4cRc{Moa ?*mF~za=ۙDr /Ƨ)V꜃zf㜈`6SHK]i n*2֣K pk> ya-Jکp{B"fŜ@t!,w Hx@u.j5R;8m<}E@z:CsBKR$ M\C˱)ć7̭X. zE+&ᴓv{Jrӳ~G:0 47oZtuڶ7xgAHk61Q܍C;~>@Ia_дaPt HI,jf[՞05DIa:nå!" &h*I@fdK& tq3J:2Ű!zfi,l*U3qsγk(yH|NKvwآ(P r@ZJ,~i-I9,YYUs:f5d"Лzq|^zA",@a֩,Be`+z@:_y%_(NtAq{^˳vpt (WMl9X\U^-֥H<4.$6xU(QCiXض-O;El{px}sexy>mM]DjU,:ųs2Ԓ 6c0JTS%$dXN#?ei18I@dAWJ>'n?2rc|(y`LV\ok&0\K 4X0J4?M!|1='\nHed$+Vq*G=\]G+s('7h 0~)w9U}{p5N+saΫkAEMa% r L01'Z#< &A"LnTr)r$@YWܢPAs.Nr>PZk?#N]eG/o)>>b c"s:%@ Ԍ UQ4URQ\ TkUjaXNS\OAOPcԱ;ft U9~W->2 fʱD@eEt%&#^EEA0r) (*`@GkƩAMi}’$}=JV{H@m[^0PyE&al𑠣rlУ 0l ۑD JƿҴ5uJ=z*FL\¼{o<ӈpk -\y!W$B2/*~LQEڗ~?e0tZ%>i9c2ޣ9b<ŵ˄ZΩ?x : 耉(FeY7:)ʔe<+.{.Qm!;^O|Ir-\1>NS^c裞/^emRl 9 sՈrSA:Qb)(gplŕOHb ^{&><a̓'MVsDYKl=[x 0ʜ!;h\7W ʜho/M%#}Ft9 1I}>OG\?‘[T]זkSl8\"S`EyHY;qw\' F`rluVTJײh5W"\^'(mjȧbL =@c4yuRkkOwH=:5W_L+sTt}rȌW TT&ed,Ñ%gqk`]. -dcNSMϽL74ʸq7wiMU޵)2 E aj9 k_ m~SE P@́P&CW{ea,DD ֆ-%='\EM!y'#9FwLQ|x86%yRV90韡j&fT3z `'(z0?QC9W`Hr{op:mGE;`Bhw*AoЍ"me8@t,]qY甑WALmQ3L`צ`{ч)8?@QP#%!:Q{ P)=-MEĔpj l-*TT幉ZRxeʁA6CC{C<W"֒)s5@*xt'O5q-k~6M%BO !>! PLo`)LTl5jR(I)WӐ9mHkS+43eD'e 8bCNDhJD!rs$v%C$yR?tkʆ!ePeV&wXD>), ie{Uy3$h-nܳ1]q85 VvDߙWtYGhA}Azl܅<ٞ3-r?5r!=DMG>J$p\QlJ ;c=k{ʌxUDo`C) a3yvaWu/wmLs,'vM K ħLY~=MK0!mi(?fn`6pjiu(o )nCz';+9UZ65)Z*%a$n}(<0Ba[NgnvYюRUI3ӋbR2_`$ ta2!а72~"U2g-+gJʚ2ZNQrJ dt.>Vɳ??????2v:Eu~w!;O:y7;Mma T0!`Ov=_'s7xy#=wǙ7fL{rr4)!sg]E 4nnG3s tuN!˸C̍d4}Zk56xyRu|Vf\F4Ȼ W_q!~ ЭA nЧ0gK~'28`kQF?D^X1h "Qa%9"vxNSls=v5Z(kC+'z"voSĮ\}~ݜ"fA`.6I)o\N:3Ғk{Gl0Jp+>7#>q/h00CJ*uݹ`aQBUt#W@hUE`;*:κ؆8L58WM0޶[( ;|BFq<ϐUQl 5Ig*b֛38; 1 €`f12 0)_~RքCG5̞nqkⷎ V҉))$q ?gJߛUxwv?3L%YW{̟ 5GA9!4' qh'ۍ{_p5[P!hqCGu գZeM2٠ CM7.Lp)(WVWg3߻_LI3&Ϥk/D1\68O,3H/;3puo^8-KXFK<[Lx tz8!1>oF[\e"U'&qO†QhSs85D-#CU^ƭ)X?^IL}p.7H,BLҠlKL6&u"W fxP5lYoWe0kpI{ZxͷW&ĩ] OG1PCv dʽ '.&zMЌp[Bܜ'p߃'0Mғj RWDwZ1zR?{ƍ+z~_1~Y96ݍܣ؊-y%9Mw~s؞DҨ3nKZ}6_eE'=X[ZO7%G:SDg*S?o~{rtmڵh:WZC\ '*h66:}- b}Pㇷ29b9˚l5xU΍fJ.Ek6eM}J5i w1S.S2䳾EiGK Z܃0 BM󘙦C2?(bCx]`Ҟ3",1b@[83f1+A-6G,K`'n5ys\,%w}siUv/@ +qűt3~n%_yg?<?Y>Z?Nz?u?is1hn+v2pWC_6?u?Vl}'V{#7?XxL*>:,vVPɮW@)WwL\-hvv) +9 Q~>N#QXb]%]V[a4eVGQf9J7Ziuw ΢$j`%veDL\<&sN wl泽A;{Dn'`A4Jf4WiRp$p$Lb R^ܤc(g"?!< ȃmPH?ݰG~$-)hSadI z-rJ#nEC/Ey' |:ӹa };"KyzzK nyΉxKo/iƭT|wkw/fmW[lk Ѵ1tIf ̫f*ԬI?M Qm&ZP&a;QsJW>T}MT$\C!)ӤvrK3]D!<}lܶ\Lk)0X Y=j̉/TR%eẁ eXO-hjFy⌢T| k.+ݪf0Qa`5؀ѝֲ9pȝuPEiH˹ӠY@??w{6KhYBca :\m]kcQ] |DPLg~NKI aTZfVO Lfp/.[j(ka*<GA"e|,ֲ]vr&Ls:w'cSJէ t͐P; .i7(3BPG*e42U\;Ig )Q[|#۞ez)iHu;+&i:^"~k8챾^\lW)Cɜ0ҕOLnmRb=LȾf1N'2YX$fW8{=TzY2*~BcÎ4!*_3qR}]z niVޙ-TIÍl"4jȊn6Q%ǝFXfJX5E>YgzwL%j'!WHakl5Տ'>~Z-U,sNuif墖^ iscg:(RlCkltv{تFF0S(ts9ʼnSS3cpC ]BD; d-R2ɣ"bW@-|mY!aQn췤b/Vi Fx& %ƙC_!FM2;vXi4zɞv1@ JI ȿqFL@z%<%_̌4B^x4 ;]mCB1[UE }=--WqWK)o w0mݍJAG RR;^֝^ݏlXS1 ^j{n2{礿[*/t+!T¤|~k{QuoMX_c=VOϿ|)]3Dyİ t5m<Ჩos2_|xeؘB>: f"(Ut^| W~ԚEkl)kqA3q6(LsJmQ3\zʆĚ'=dM^*7HRK U"/XcQݼojcqx =J 3|"ٰ ͮ`ISn&ע9"ь:Dypxh?yjXXvuik-gty]}Re8-vq<<>/m9I%X*QqaH7ĕ #o@(rgwɏ)$ iPx>o:qT!MI1'd)p tp o)؝g4^4 /c_s R|ȫ.h2t lWC]F~$O!(UC1O8oR^>%#Z j`qœaNYDB$b2pr-^ҾFXlS%.u,OJOŶGVs.@g<|K>x'~Z`W57NY7/E<Ϊk\#qAsqI$ 0`qn{_/aEW#9ң%<,. Zlr`|T'iShkM-O&zCO5 VsUPNqN.iro3SrY=|t] Mµ: Γ{^W%%&Ϟ ;%_j_p<7W,\ >j,CeOnjFO~IXLyWvD&WwkS=wúA/fh u3*Dy_GNy՞눅G,MͰomEQZʹ89 weTqUOj7^MG˳5'"-/EtLh5SWC2љ˽ s5IL Ujj!B;JJN;}`:g  Y6tAϣ3 yB!?9q 2CTsHG)D$%F耕h~rJV)Qjy.s٤wGwd3wx}E*Pg2q i<V-Ys$VEKy_ $0DENh˗g]!c /'XӴWĎHrYγTJAyz5Δ|uo͵D<P'ל1)\ xW *L} `2v`b 0meM!-\a;ċy Kx抂nPb,kŎW px,㥢;;U&\}r~o 91ݸCKȅIᇫ!r`Ɖ4nyس x AZ L?hj ^NeEXLM@+9D[!(I@yn "/CJVY!]lW~ ͪ' )̷F~5,*1\PZ7x(H-MTAK`o#%w)3"T5\m삲d|#}65>вV+uNW%bkGXtu9 ֝w1 ~1"ǘ:f? Vw6)_}6 +/zmt|2`X-09)üĔIC$5K^^KX8|ҋq4C2Jl*): }36ij&?_ ~ua9!:\"AĤ@ܫ)WhRZ P?$9"ԫt5?*0KYy"o3 g˗jkyp騈_BL}L6bEeVsCJM9 |T%{M%Z©Tu?jjr,Fk;0>6Xpk= eѽs: q۷ ?*{ݡڔxKO%!'>_eIq PoM+h<9uF i@R**Wz \JT!'iDh/\>ɜ^S@P9QtfHݮR #@򌘊HwÀ I39t1< [&:J}Lc,xl k5Y~8FcŲ&\VUmj֢l~Xuc, Pr>Ֆ#n.Xtqt9EWU=Zks S" X)@!%PsnP wgwۃPHki(;tUht; J77}zQٱ7։hkqcO7| nRT=_vq6?>OqxyF ڑ*S9pJtiLjVP᰽o^e,&Bg&QmbY22>@Fb`[6щvX]9YbC(`BrO ha?ϓ`WoB%] n&'hs?&dJZAq$R:oge$u"Mb:p%9`N)T}uʫ^]HJFjɾ5CztW>Ǜ dDkȒ5)-pEq^ם# Au.+W/s߷=g3a}3՟n2N?ecǧjKڣPo-a>\?_1a,f^e♨dث4_6Dta %Ŗ7\jC/zڨɨӟ*j}0wmt>SѨ2lkb]nX=dTtTۜvH{>ʁF@eil6Ll}W!r4YI=XoY8g;랽Q4˗J;i UU``qS87OPC}X*msw A;/EFmC$8IҎ4v"6˿tҔvs?ç$s9>z~̼+3fƨл*{Y@F*GHXyC *NXl=}0woݛ߽1en(|>Kh%+di$x?KK27eU$Pq8䔮Vfʒތ%i SD1g[4cpb5O~]ab*gyzϣm<).G79 <>!ٞgyj #򇻭5dW~2IQqsΨ20j sOR8(=-p6qeCLd6D6|fYBQE(HͣdV@K;eDD9#@@nɯ*豆:dL,#a-pA6 eL&ҲҀ`43OT%Xdᘏ2ƾ1@?QPTme-c` Џl -M8VֻJjߡTݿý_Nu@)\_ܫU32YgD9$DE wp8>p؆' vL^Jd"[P A(KsKO7v+`V3js a閡,0"ֳ!KЖaB71J$auv7"^sԍSw(YHԾ50CHOnлV1'ъڹSeP2uX2=x}.@̑":wa)jN\r/uGHpk. G.8BW)i{dWkڞ}qu2KJNgԕiE(@vJU ]{@Z?8էb y2sWqE4]ݤwc+kM^./r=,;[TĄ` AXmtU[ [v z~͕(Vf]t ,5Ӈɘ|=ꘜ8O`!fOw :mTyO-8*K y^\~kAZ C왃!\-i4y?\ oGcQ@ENOcutq)XPx{F,4ƘhrPSvmoY]pچ E/""t߉ 4?&ᒕ٠އ4 p/ȟll73]J g;cFVaz]e0t!sQfcl ێT(+6R\͔մniD`(s̢}M1LWh`@CbO8&|;c&3#Սx7;0<0=z[xjj.t@ph}n ll/LtP*Kf҂L@TS uSD(Ws)'Z-2[&!D9y EԷS#.7"3rO'm< @e< dT*JE~]S XllGtXuJPMJ [ ,e8VUx=+xV:zj0"skMC+Ubw,k+pn1\[ ظ[Ct)U.1),%12y2mG# gǓpj5;R _'T;M湕WU;J(`Ók ^vSg#%?hvG!lxSLGagh3ٳQ>#/@TQF G_@+:[ܸ@hZaa/-n9XigS OJ58H؎ZQ`o|it(UO8mU4mkZAszk,8R)| -M3cuz#X s'P>cPAB5 YD踧ۉT?4."đȍ uVnnlW RQ>Nƛ0~*P>ݘ`l}RITLI18&GU7M,3b2(0q.^j%&Mg(߬ 1}"f'>ŖƦ bkj n~* 0(UQfQn&J+QPnƍn>`-\@|tqjI e:.$f:0h D݇Uʰ2Zh9l7߼JW" >r=(^ me(sT#g&VLg@)UiUZfG9]#MF!qpk0MӏZ[U,e( ZY2' \CJmpђXUXJߙ^=b,L9YlKhYK /o?{.xq"k5zy9 2 `Ziְ͂nSXӖUŮdE5P9sqG>EVS %`l7stxsdQ/tb!wQ@(.McZQEUFJa9Nh>{*=lkc"Ði48|.Ptk;*ӯ:,e.iIAcK@^Sl\bj7<0 BxR|'d|,m>i:<'id(<'g*^uLfj:V;5װ+k89V KR%(N$߄ d%jGJ=^HpؒmSṮ/% v oߨ<.C*kLSJp`6XbJgz/"4 xS K̡y}DpO<+T՟: 7Ntr<\Wv=N %(y<2yì7aˡJ6X5Flʠ3;E 8IYM4ݘ[h(Gy,F{W*]@ y*DX t)5r JR_JIUgјW UU89Ԍ2YЯdq8mk ^ PR-L¥#3Yv7j =l8xd¬-xy8ۣ@5@VM)tnc:0wZj\[مŵ׊iNDWw[>t е1Gm,]&'w|~dzETe$3Ǡ|qT j4jrMBOިcLOa Hg=˷ Zr.]8.]O;Ke! 1N|ⶉX| a>]Aw2L*rf?JoN( N0Ɇ'n`ƴIJQZIM]?of3\e}fyņN A STWqwcS3+3H٩j92VN#)OQ#-$m0Ğwdc.2pO 29;NtƢLs4|"\Lb)Q4)%ïUtLD<_1CY(f]x~eu).DT g"(u;Rʁڥ3!pNMWK/n}jEzKZ: $VrvjKs(_:ZI]&˖< +mE6)ˈ)[,[E"^K}|F*ͧc9)r3^._Jߠd賶,KLydo(7l/<;d(rgwH E#ԫz5X?yr E]Me[ZҦwy?RW.ڦԥQI,xڼU!uzuZ ?q4>Y/ǓMp 'x`wfw'_?{2D _&M҉S9:8 G-o~AwK{xt9FuwoKCo>΀|AQ{?Sw/_wA{nuIǽvAgK@ wG兔/t9:k*]u;Br.J&E_vIJGz?"Q$VK8ӴGs`oLӝ5y^E?Y&&{ʝ.L3{֕$R-cSo4FԽthI;&a0[#$`wgAz|h6EDLi2vNb^DD:;qpOH ?~1z r鏎9~} 8:D؅ ^1;<;fQr!usjɥwQ=j}ֵn|R#*(Ʉ,r\6 붔"}༄ϮZ/®6 cMja` d G}8LX撂:X 9мUƨ+DnS-xZ!EhY%@] ^WRRG!N5[NVspDz +"~ϞKaE0Zj'gxbT̎iHL?dyEnZ}[jEӻ)_xSx_vmj)n텞'vQMh+1y%GM S4;{2(SF~t%+JcK%Q=>w厅kP<G sHݴ}N&(HLjj(n-v@>S툣ϐ!]MLl RAIh6.bfїț`ɳHTn]s QY\inamVZ$6>ZVͺxzV1.j.ZA-ot5{ -ѢlZY=(6)]SȫlN Fz8C6jLOK¥O})JiЊb1Xf [] @,J"D۽SMAu\|Q,kҭWb-!-9WF" FAHw=~|f1x.c֦ŏHyJ+Ufv)vK )5QC8 ڭBHz\dYWyʸX5蒠J[X7P\嵔U)âTLU( [D r+ c#sb<|eTWBC|A/YR.REn{.ꕗd96?EipU~q|KV#ٍh04TsNR|q3^ghx%kqaJ @rN-cZS ?n{8?pjNoTST)yr-U:Ju+ ҂2E]"$EcwM]M]?kcW+{+W߲uWrjUQ΅x E+kMm\OWa۝{RƬ5L ,% ǯ;}cM^[8|*9pxtd Vgh\+TVZܘɱf:Uu l5+?%̓Ͱ_wVl hxp Z5FX:](pv.ʖ8YD֐B" |$BZY=P^I[tXRT5! nE^͉[qrwj ]S/so`QTJYUmj;uHYʍzPfqj02/kF(f?)0r֮PⰌa4Ol!F(:څNp p!h8} p`#DKx+$!MFDDSNw+hћ?z29(b)rg(-L$On 1?̆r[wgZț:h<[dLbh"0&m ,=ˢ%J4Г,ʮ011 "" pZB'1MGsw\$p 0Z0R2|:8N9MI.s]5[BV%/sx@[ !; RID폡`Q7xDt)f5JZXj8Xe2Őp@e0ĉ4,G') ]u{ tKH2Q3K*"QMH='{4突J&=O9J*ocօ[)9%t5"yl<%QA?>o(G<~|J}VC3Z|.\{ob/ YPpHtQt)8%ּ@5gyó8P9Gh7_->AȘ h ;"t^VK烡 L!]X\€)͋$'>G]o{wk9dGQ2|:u]C3GAG (CqT$^ puI!8f2V"3:QG#LfqȜ?HVuXEOAݎ0>#]~dq % jkJO6a + <+M -1>l\p"_.ShhMò== "0#]RFQ{r*X5v1J򄒲q4lyR,Ӝl/ݥN5TDnyiqDVg:uWz%ep@!5ETuշL-X͠:Nv$U ig@DskJXr wɟØ)T3FȤ-RS`h%7Ã:j\ͦ%CwX=(JcА>:{{a_8}<߶UQ1D=e|:Xp_ǣO}Dj&:HXp5|Ȩbud;XwGm2gqy4=\w#n=v>]#lLN-yOПk݈.j,GaJa6{&m(4|,Ht~l![n$^XDY4_%bc&u8|C=$ 2!:930' e:N[ܟt9ՃgJ ų4[t,RZ0i3ޠfՊȳ2)_szV5_ ,V! g6~B^LK VݎaE#OF%)^z?OT)Ќ&se e{U4'_5r٦[EkΛWmukwMQvS ^ETT̼!-U1r?gZg" K=stЬ[c\Nsn2MB {`w!05םHs h@g ONfU>߱J}RC"jH&r P5=u7Q yS=Uا8 3ymEvjHpU:9=Y O]@ Nr9j`jțtpX^o9w{ݡ|c ?P^u| hsK6^jy/l[J્i谳mkh&T8:=iHzR?G>'v1Ts7V,oEp'Y U؜ 8 gE 7/s*rR7o>d #'ư?8z0A|^wmt5Y*Ql؆.H s0/l|$ ^7!o,?Сhvv4vDe*l= kL^6\qKd~~ҕ|74-°coypW$u@*Pn#scv`PX`13XeJ1"j1$wC,["WZ5", :0q3n@ޫ%Bh Dj.YlDUF%5xNjh& qzxYDҭCDF[ d$D3\ 6C|B'!ܚT2'&&FN!_^21d AW߾dhUq.wʢSN*Qu$gyip+RoD?2)jR(Kg phu JaQ_Z"@7hVN jWѠJ(V.XUTP]yQo("]WX]4fXwQElbU @Yf&2L0IN_z)EZ9 3k%R2fZ'ʙ#0 >6pX80uStHDSL' mNdi ]>M qj |%A WoMa4bҾh P\ o=XyNO;0#ld9]}6:tc6-+flQ~g>n2JgD9{\N`5w$ O'yIW y1!xDx{c?; ^O2Mz*x(8σ@"ORJN&vvěOT94ʚcP[f;@{4;w@*v%"6B8d} `Dfǿ_2N{5l{'H_ߧ ȓd-y˗íXӸf34S颩4Q!_u&'O5MrZm3bKO&8An 0[4_xnCZ f56CYK⽹ 2t xH I0h"ml>pWg![myVev?d4L~żs/RCb|ȼMhzNeW MC` e:kZCO9GP$-v:ARG%ja F+UЅKUz8G'uV,?ǐQa0g/5znwYf]_[L2㑑YEbX.]3l CF "@FQ"Vfwt75iL -dZLѽ!?w D&0= ݏ/M //Fi͍߁ q^-nϏl̮ǯ_o_ zxX$#Nb$haxoo30ҽyl-6 '1&DL.L1EASӇ(bLz)l4 rQBrAr}h}Av}a|pi?|C4z (>D`a^Qx*Y:PZГA:.p^lv=({n>.aPM\1YO I]28Q"< @uu@mf Zk' y#%>B|YNMcM ?^O%Yq|샮kx5@ =vVO?@<9 gM</޿|!x?;/W^l }*#0o,Sv_W`^6*7下:\;y6\G0Nb \N,{whηXd)r&|ͧɎK!n&;:T]JNSZ<UIg!jYWeQxx힣^Jw%4}k显̈*r ]y"==_ e;3Vғ/ZV G7wKӛI*/bMp7Wa KN?M<7nN伉&L|&# M̬ڟܭaz\`LDWEsר q"'noj3zOO='gnƍl G+5,>Ih+< oC :;BHk\5n.h-Ex "?SvIShT&*%}Q=T&Pu^uo6/])8aA㸎%T˘~"wt$/5`ui^X@f=5.ʶb 78 o@{I-|bN]FX&WJv܁;D|s>IcѦª /@+4 ̊o8N$1-K\HmgZ:ҙL vt2)3ke^'rw;``wpwz0E٥+I[!R%yj7DH+yE麍+o2n` L 5׳{q16u>Vgnڽ99rH}!"5a&,Bg:ЬE@o E7,*zOp 64l\hكtB{˺Mm8 UvؖJ=vfq-j2wBtbo,+н'F##Zm $vПkQg,̜dId"[`Da@:a#VI"bOhe J7tэ;ݸ=ǤZY'-xlV5yus kEҽެ|10U{m! E͕_'ie 1:n 1%?,nWȔVc9St?H)Û{okʈ9X+KrHqM˙9_MNYe%j1׶^L^Ѳ-zhOeJښ]Gʧl'dk&>OsҺif[\gg gn^oYp0sŸ"3lnw~vOh6ӄ.EUrT0C ̓dEό3ZYʇ>(V>~,bէ&0oTxn*&x|`B! Waq|OlñE4W̧MeUBqQB8T8[O'Uu_pѰ)Q*yt;mB5C&Yss r*yƜA;S† wUm{)d_RRjyOm?=`Y_#AlR/-XKM29WsK%rKe%rTJ%3iF뉗zzXV62>Koq(y&l1F>7=Ku\p(ȓ rjf/)6Nk)&£aQDic޶|>cZ>=(CZ|j8>#7n*s$9Whz/Za3$%ޗpX_Tz~WӖ 1S\LTTm0AV!`$1DFFt&#u=.%Wn11]{~׏Cߝi樘%Mw eU 4Tc `3Y?]NE;̑1JHJJ(Y3Z)we1S^8(#F@txen7m4UQ]vJ)〣QtAC4Z!q*M|2sSW!u?-Nn(z1H?'.G#"cfzXy(c4'!ǺRtb{ort|r@(Rp d9Vogo{]ݎggMek\UMeQScO: ~ <72J|[g7wlWsj7~2W{Yνn\H*oVL|`RyL)Sgl Xb7%%H: ƷooYA ̺8ZSNχFyc +<Ղ fo4=BTUA2qogW{Zly+SڕS[ΘuX?(@*`<)>1GMDʕ\v/ya+|e;m+ߘou)=QDţ:nW3T FR!i9<2[]醴1z17S(Ec3"^Ƞ*&=)1 <򏳈b15Rme.pf5M Owja5<&Fq/b3 ]Mg&f2T:W6B4l{1WRS+`9ƫ/^L7$Yypr9  kBgH 5( +nNte #e(M~l!D 31W205axi#si?X$\-$[Zn^ÝGh( M5kwkLMض<6@ wfǮi3{~ @л3CؠA@X}h ~<{xf9gh42^S-DXi͌s jˏ߲?QvCòq^6(CȁD.w ҾG]/ݍEѠ^ګqnQvuQa~|՟yջ?=0 Ze7+AFL˧o=2p=)c!άW>W%>v4/,#XD:s\w)x>L0/*OϗƼEs&~}/ _<.#DU\˝V,`u &vTu+ " ۿg) fR=vTS)Ϟk4ߵ~:ScLlp ˁP<@!qm Rgd&d9 +Owl!q{ 3-A%+v!8?}pҲYKXWQ`>8G "pw7_~ cewN*PaGQsG1h5sZ5LF5* B:+YKL߄KG+ZJ0uǐa7?O+Q a(wI0IԢ1DwH4jНlt1_w_O41"s3:J:*AOBfxjt3|#Zjx?$Mag 0rck[wf>UB[kੌx ! f'[k!x#fbo046~o-Qci|s|?ZM{u4u_w@q 2 BT%Y϶sϸ2ILsn+6e!ʋiX0 E64t!F2@GʴzbM @+K$0")aPOZhRS9pY#!psBBi‹d]͓K]ϳFqg[b45Ġ n)O5_U7&O˿w2Jty"G$AlC>Bʯ MO}@[--l b[hfzÕiݍZُ|GI5y^zE2|`<:㹖," WmqW+Zv:#"_@E|l䍛>YߤtɅ\?Y!VZܿO;C BɺFs|-|VJ2``.z8P 3z2hƶs̈0qPtF[VHd BIz)zF8[ K|jr ;I "H ,1NH`v}-LrIcg{qT*7X&pSJF<5@\JLf҈0p }ޟ#c`ILQ޼aݛ^xO_&JbSϳnSo)s8N6_*8,/U~nD)5Tf{YZ;oG'RQ&e GQ(x-[u+(t)ʞ$q<[Pkٮ2M} 4L/8:2&pGŃ|y&LN<w1MS\لmHR3'К,+,S,MT)/w UI:^ y&X !LŻKCb;WQȩh׆]d7?':`88'/<Y*ʲ$򱐼),U]oki\-rF[uɒ"R'>MH*#<<2 ު:T!$VƋ[p88dYC<|6 "йN,bO- $]W48IxkVةyQCe>5 s A+ G̟lELB/гCCLr@PGoD"@DBt6*1b 6|$_ e| (na30JfFHk/*R p!䩢~  2!>+:ei k'kt1IDr`C-U Š_H –Ja :A2Ӷ2wKs~)LtN%c /G;%Ou1w캀uY_0/ IARCR"-#r%22rdĀuDfI5J{5J:G2fggă(PVˈOR9Fv+'SMLדybRy;Kg^'gM=a}xIYTgjunN?%ɰ4ljibni f]؎0>Up$İ5 ne5 $5:?"M&)akm\81*,<~ &HkTA`w~ ˦!]FufAyB$`_(b:z\ Eo(z,FZ #F8,!p.]֙=nRje򁦮MOω$OO ǾF R-4Z ɵL˄H?%"|A"-{E"@*صɢ Zai~GKKc0h_?ƝC~SHI>?^pKwkɚ%k5̕oM.# due+ 98 H|烞(#]Xd 4O*2b"bԉ9 [Ss:Elug:KzRX|m <JtĎK6Ϣ1p_(Zo#<´@С) 59+hz ;}!hRB`*y˭.9QV_B_|idD !n(vmS<H2wx0Vj ̢b2M|Rg+OQbg:oibœ+yV%_q.Qgm2~ɓ_3z Dx0t/gf$=nǝ ʗo u#WNOtJHY?o&?WO{=sFH~ sstK?&͋\BCjCrats 'Kx%`Sby~ny*a8"/H/0{C6ۑ}B_@êĆxM q~TL皥x}GҌpɆ=O<[nMe\*А ՃJ,Fw{ CG6ڎJ $RCIQJD L5Eb99sTY `t&kQ,]&=SSC:rTd}r(WoK&uG1 ȕЊ)m2H~G6w PWJ=)'J*8\!Ea5;JxHU E+taV fڄTŜ3RazܾQYyKX![,eE@iJ*IkS[<Þ댻q%TF4Ŏ@j{rCxf_87dm +f_`2@m 1v~[V3x֠&WlqE0KXSP1?< R)ӔI M|N,$蹞saZNOn&sKPPXQT X<i\R{[l O*\OSq,B?q7xsW8FhꈦxkRoprY{`4r6zӌL0-Џn{MʼL_8b>lW^N ɰl |8Z~g1.]o6Wuݚ2CG!@-my8id(A;FX9YʝGfwLv^geV}ldU3=YWW.I6eJNs-줥I/'1f“N D" QBfw)<M@v nJ  mjAILVg:9SJ6[R:Tؑb'eQkl'c*KUj%uJ_-ٯ2R`|+x njPɴ#"dJ8_Js# "\sۦcL!WeRԩVMAJg R!%`쇦JJCç6*'OLqr @bbP V* S=PQ>C)qeU'm Anzv 'r*e9&_eꓗ6 VZHHBpDj,aM}ȝd<ᗦ ($NA`*%Jzlώ'$pe}cm:[suh8Uu8{ڭ.kG 7G|:B#L)3ǃaNzDEa[cu2D%^ {% x78[+NƜW ٰ][NI7*tpꎫSYQ8>,i4t;Ea$:l `gE7zO<\¿~7 exrSCN!mT$b ^,6(l.<-n,qJ6{Il5i`5b@GCpeD CiOiK`Y@I4ve"kWf%ʬDLcRve͜Y-B_ӘPBb;YmV3?r0޵qt860ܹ}Kb;𫣣lG(WbY[Zȕ`Jٮ!!i 1woq;p D0 'LPL֛*N?͌vqbD? i",+tC"QB;a(Ȯ}~֩EQERӷ߿ytՋ篞pNw>=Ysx:yg?={C˻ fp8 i<SH~[wǯ_r0<ʇߡJ5ޒ%\G=k^Tqٓ>V2ڞB]:Q|C'K:xi6(*vn@q_~k@Bt"1[K`?OZlA<<ܳqC| l#t C$Z kT"-[c5ܾߑ]֠A#Њkns"9慽0aH[3i]"Cօq%\)I"k^kp2jE^Zڝڙw_XtiM?nȻD_p_v,6#t>p|l\zv`1Ewm2ێIq<{df=%0ؾ)ѭz/cmdd x|wAEt0(3MW̍FKfb/şCEݡP9Rğ'''ϱXVw!1K3 ! }Y%_9^[ˣ6m(X є3>7xj0b%<$EJ$2xEV96nFiN?F~Niy!?L)),8a¶RhN_n |$@H#Xk׫Դ[8qg8J <ၑPsNHMՄP!{q) PV+  |YlKbɚ㰬UX9c0IkR1T;i־ZX4B@2{sce&X:-:1zT=(bbY ˋa08krhrip##R)Y" @SR)mxH*TX*KѮ>|\!.XJ.ߍ)0$F ZmkOLS0}ͳ/q'UEu}W>(A~KEʕ=9=5:z[h]?j[7)ǩ=3 wWy%h1&pu7>=30١fL~BcT0 og: xI3)؎18::G©"v9h_n 4Cw =6B ,ͺ秵]HJAH7 ra˨t7{aϬ$_a7֦8:i=$`$綇? tXm*L6`8:x8@5@tZ@e #xUZ'Z]NnB7>jLjTnxy:yΒ WñԲ27Wػ, 1%-Y֘n/>mߋiSO،YNq:7hy%jnH!4id屉f3(py`ȹ#7`CFåS"Q@n>M4Tn پ5e[`rTQ;m;JwPT5]-rH_NbHZ/ ?>nlnqx9%+$sH˕$" 2D w tE|L|P"# _(ZSBKijDхoԌ-QRU \zz) x~>Z_S|{,4ENz#x)ƭi %C$aQw2vbQӰl̦6υ2?NBeڴ㺡O9c&K(óa5oovp+;JښozrVQ^28_h:AO{# ٛnR)HW޸fq!y`dW}|q-U)ޢܶȕ҄SI'?ZA7Rͳ]gfknOp1YWR.# kH3Ppex .%.O#nFW"pQ%\t~]Ɩ&fU$>a=#GT3fc캠mp"C+tg.-!!l~l>Y0x LpE\ucAZ]FN|;48(W^WT1_ S6+6ϩ=SpqkK=-|` kr2`xY{UΪUI8ٻI@K]ۄu7!ڗ]'ܑU zըu霪r28QC)Aj:)[iO o_a?{r:O+-]# ^{UE5#\h^0ªdit#mu:,uxkk},lsЈF'O8E%&+wyz}ȞPJw)[S4N=l0>M-<_\ֽ՝u!gPXa_z@p30ۨ(&)G\2:oh~x 0 polVU!4peQUB-Rub5W|3b2,<;(I|@ K\c`s^Y}j0ˆqi;Ǭf4\$$jQ^|Uq>g\*9T!H1 kgLDOQڻfL=͚4g)JY[q-f locs8HHB| b #($X%]y3^h""(H/PZlД9de\lp5 L;5/5Lq-,iT;&%Ci4/{W93@llalJP@ T;,Nn+%eq{,e&*~pzy'A&5Èf"%Ky`(x Z4~P&TiTYR֢WmFg<Ԭ?d]OFf.o2ET|Z܀I^qׂR+4-6,$dPܭka}=k٠NS᧮mS!W IC-ՄdSVܲ, = 5l Νg%E6Bd4X9X3 0 ;@/ ̓Gh{*U )H, eW ƈ1>1G',86ٳ#t=."t"+EY xR+ߤMdlIs׀ypW)L!HҤMnF^ࡪie^Y1([^S HN.1h] wD` ra[+MqUgHiv9٭o%F㙏pPrW@_f-|$wNh7]ξ:H΢@;&UGSw0c~|F  h8ǀGT h.-;7\0۞|'+,qGx,~} _.NwP]YwsړXoᄏ\z:_@n܁񿇬j%^hM_9Lė9MX6D)g%PGr`CZPojKf~$LOZ-=ִ-EjoK٪,svM ҒZTV»'sI(NjjDKtmLG"e2\In M@qIЧ˼b𼠺m)|&ҕȟ2F۳ڝo%+:wT?˽Soxtɐo2 V)BZpK[?;^}&-jZa#+[r|N> 8YY ` aiwgO) Z]*q7O>})J 1Av-]uT.OSyoV9N;ȐLVi |chB.GTfRI Tei)?1WjeOVknf1`73BAn62w߽-=- #~3?bH &sG#wQl D*f3굳6Hcw>oB;NAl$Dn(5 Y@:Vf gv59-NfoV yQUg?u;|QT^c w F'ceNcD Mc E{I(W4WHo{DvAtv?Mog^ϜV"#cOo%ş"*%R7$GtZK>??7c~s.[Thu/Nx;-z)]WH ڬ̩5q SVJ%v`ؾa7Š;K:u o/Mxͽ=iB9 P^`4BAp940;w[ qw@ @B+&)LXz/!ȇ#Dp}6?2>gDF 7\$#2*|n7A G_1$цzXI@@RDci.MYh%$U"`ԢZ\ih;;8[ o:݆(^Tgqb3fG SJi #8.˔=}!U)mB,?]$7񴕤>làT$(̨Βdߍ#m< Ѹyi^784ll+3̙52jEB ^]ʀ׊#17ۘMz`86\I|W)D-m0 v s=YY$D5 2V|:$@MT3N8==e֋O궇:mpt2>=k|:)TRD1JI`Q$_?L~ٺH)'3 0clgzOGNp<( uO@K=#CY95!aw`x1CƂkQ4pмaz»[oH͵P!|@5r`s(!S$;۵l@O"IN^Ǖ9Hy7* f[ӥk6=1"^ƿ|l]E%5q0lm.+Q 6=;jbe%瞱@6!}S(|)ud_|q~ %]cb9$3 !ݼãA{᪮Ggfᑍ<èxU Ƅr<,׌#6Ll`8+ߜ>H~5֚0 $A u` az9TgȮ5zAucb\Uc*t  uGԳ'Fs ۉoaQl U VnL\ߠ|N nUF3=Xju}1`r 1cT@*4ā]Ȏ@k*A hg3C S/{o5-1]_XLt|Ou?u XI#ƐZLηjBqyī8QMaCUf8C̥XE@l$Pv3٧h#a<\ݘ,ja,̻ot$] ." D5$^Nsv ie<| A )3309:AsuBTu7 5]争vʱړBsYs5& Ù r\M)O-4Tzl15"cI.k&|8pmiCsÕJʇO^8B0Iz߅ ꥘SXV'YbdDQkugMoM)'. Ţ }$jsZv2ȸ!*"*152xh8VBĺm>PJfh9,E2_49槗Kweݒzrim;hm(o!N𘔃??/@Շ+;|^ךRt&LaE]_B#[rr퓵M R7Ƞ˜,4E3zl٢4LgmEOZM1IlfEvqKM~F,+N4DZKn^xvȤt]ێ3mz+[60R-pĚEaܶv:dAknV@ _g8s丗- hmå%ȴ0HF{V!Z Tlb-'qF4S-bob>5'"oSȹO*?d3B%t4+|ڠ7_M!VTuAXjXE~|Y)IyY1u᪢z@UE@KdI!Is/?0_@`2yvy@%Sfۥ04JܪY<+-],k:+iJdϔɌp|֌hyLr*?|MuG8oM<{xxK[ѵo<-y=3Yxvz9{[&RT|t뱩OOHE؄ײ# =iyY8vLn,݉پzV.B@"Id /I$A)p|e.fq;?&eɠ..K\ ' *NY "?dN=SSLMS()j#H{ϊA;Y҉HAp ' ~x9 ܄n'Hjw{i;~E gwONsHm `(ғ ўfҽA ڕvӕ qRFjmHfK{9Ƴ]V`Z 0ZQ>o}͓ׯ^<!4S)KB!O~|F??7R;C㰯ꮪ{ʃa?)hvC=9+ V0ȋQ=Bq4,;= J i4&2QiPjRNzea^ O7sfjp/\s+.ePZ@uy\yk ԣTk>]tҚt5.:מ_:I]/ye[)lDa:Y|W1n;dag[ti#paaּuDA<+YTRLQ`!N-S򮩕kV\^mu`޶7S/} uӈX|;-&-6{m+z4䝲Pks/w^g):!n`ߡ e:v)z=zS}ׇ ?'[;X.=GaM'b5NV*i$ʪSsT5ꫪjmV"PU]knUD#νEʬ ixEOJK(% A@d1l8'}LT7CI'óvO[=`Tk2 &= ;[lYs¤v~S{30@}[dZA\or3K,6XBVHŨsZd.L K\K_`pW G -`$r ͩ2 Je܀vD% 1@l[bD!+~fC쳇:m{8O"dݍ5%L NSzR'@I Jz>D1$جg"t׬v_\:yx+K dﮄy,5 P629'P0vqH*fKqHy2P3eɕA[ePݑa#?~rO?=%fͰxoތԽI2%JtdȨxGF苰@84BjSM8ᔮpΆ1\3Nϟ~߾z5@1-'ȉBݘHz;҇1CQ0W-֋r!%|7yճOo#K:w[b kPW.h,\P7q6Uٌ;Ԋoc. 5 ?XY"XQ&B, 䋝0G\hv} rk@- h҇AX؞d;]ok{gt(Q%^ҭ-z7~ n;hjr^k'RvN.ع^vj{Ɏ`F NnerLGj1 d[^K3-6nn zu Ei}%%}w#C䎴W&I0K"ݹ'ddhb8FCh]fqQ%sͫajXAwe+ izF΅ dMDlדyI^owV#"etL8:%1^{̈p)H%ܒ6D;Y,Sw౶`Z՞nϦX<'lҘ^ |~_hOl~2`ՀUw$/f^d،;J^JFV9M2ǿK;XNNQȖwBd$ұ* 8\4^cG6s7\ yU1ǰĀ-8hy/E`B pP`lt\+G-sJ Ƹ2QDcD![cWAbzJ}<=F8 hۄ 'X P@ӻ^??'YsхKhk`: ZHNmEF*rV7{ O|R҂ 8:!ZNum u[#NQ!d+l$5"SJ,$ܼTɺ^"b,ϏJi?6xÿ@ fVl>j! .T@qi6g@O ?&/h s|l7= C=aF@P>xdŋC#͹|߉65ٸSw^o2zsjw:4$~5 cF w;Wy#@@U7Q~4fr]YDyQªY-:&7K"8KZk)q)WZSsܠx#8wqhfk- H&.2g Z]9/}Wb!\ oOÜM6G.vjYX.ymB.nuն=r2' mX~(gՒ|,qb-Y4/ /č)JR)t|d/*WAsSϏ.UC\pOj{zڞjBǃk3T΢-6O -񢩃~zq#K̮9YN70]Oah8_J8Ŀn' o\1]zr@i ~ ssh xO {u*t\wޞ 6:IkX1O$2&tt8Jnxvܺ,[xPWs v3?'bXw\8ɶw%TwbE$K.'1:s ;0Hj*9d%ȹD kWThUGMSUUrJџ4xat(# !?GcKA֕|& ?'k@]*bE fjEo:"/hVK΍|فNs<ν\&jm;X[rv?")E_Ϭ0R崽du+m#|UAkW {U'U2Ƭ t/-ϺTg]iճYgF| onc(*6$-riT>\ވyRE:ʏ*옽qn;7X+ : V)O+Ȅbz dnCfiT|_7*HY8HHl&">Xw^(Ғ{h P-g(Cu-4,fzS3F!A$qa7,ҏ[ĸz)88y_,EtlREd9jKRnҭ GXtd { DBi}#Q㥋`KX?~nOH=pvl8Cua#'|'(:PLA:y$F^,8Wŵ0eb `]DىW f5 v,a0+` :f=M`2tNalt_HFBA:=Œ3Ư )ҨW*Fn(G_3W=W; GT慲y/6#y0;uc^)snYk3 1˽k2(څB &x~Ź@vWBn.GHN/MJ ϱk9U(L}ErOMeX>o}/}3굈 ~WKZk؀vV֤ 0C0 lQGe1^h=r{F=͍ȢٿB5rrnrul&Tfrڻ%Jf"$ew+AI* @7@n4z x ,ӨG]QQ:7ֺrg<};ǎg}As1p?^l6Q7DpFᮈFh HT;2HBwJїbKƁ۰ti+_z\sYbp{C%}^ĝ0^F2[nh7W3=h1-˹pFhpr/by'9c5Dl[cI8]'e*3fT27}̜c{!x]yɃ`zDŽO @N;N[SN<RMvԄ2irZI}bViṿԛSqH?G~XJ^{(_?|j?҇fx[#4[U2F5v xEEW^s_uBm=1秗?;m|۰i`2ffuRBY˚?#Yy:b&˜1M G>aՃw\m9_^e7o}޼~ӓrlBǔy% mNnA7ox)/)=+=o:vg_l?ۿ%~kzZ6D^wq~rϕú$BW{WѸ9MɅʕHR8S#7ܚX$"ʀ("y_Fn7?4e B5խHdh g}+T+<ސlH׺+3>V&lͰw?}ȩt} ? aAQIB]'U[69Dnf0 ;geލYz3].evZaaWlݳb4&<>?К={<^%}=Di=-I5a š;Y.3p*&z5Y6NIqF JF >zYt r;wlzn!ٻ4},:\%N]u'fs1`{u$HDU}&s.lIq;nQ'i&}dz,fjE6$Mӷ/}_=i9Bsڅ< Y(4}~E%InEܚa\17<@C֠jq}b jjC7}E@r6䋴?iu\VRW6yͧE<;K=Ȱ ^JdH H)!zuIJ͎Z5L%HhO%n[|Ì\iJ9VQх&pwe S-\# x0? ۣseXYNO`FK8o<v|}|{ 揍-wǨ#"8( yXF 1qJ@Pgp>@3Ռ`(T f^qG/obT7 -ۮTĵh_E}Db w^ fh! ll|0Q2Q |h__ E9Z`~[ FLVz?Ռq&U2hQ90|y` OM 6,O-O8)5 ;Շ+ ;yt.K v,4_]\O/F|MIZyLk?9ӳg'ٴׯ_}/~}o?zw>alk9 8gCg9Z-ljjj/c4B +۷?'~~ lU[L VF+B䴳z9xNB<\UP0:X2(5vgvZ$ZwEg+C2>mv׎>o1@d{?;=9߯Gȟן5ћ)f]*%*uwB^쩐#_zok7%QŢQGK3`U#KOZPd/\f%#(QJ^%Vv-OD! m#Fr|samx#AJIk$ Ld{d­h}=h)j$lNp]$A }e넱Ӷ*W|H~J)S*1 ڲ ¥UOSO2jҔV/rs]Ybƛrl~opᶾ$ig wC؏$bʴbh Qޟ Jj$+|Wa-Z}P{b02Uv iIp {.3vmbձ9BU_G*Fkj`SeY dg9c;͹9/0DI*R^D z|*¤}< ,92\4yf|yps=J/hFjjCS?nPi9<7iS,!&wT||+ WXAN&^TkbWPĉJ][ja_t WHb0LW)YYNS:T@b8a\#\V:{R&BLq@$)9<~wd_G/ BY N(eNRgLc1|}C}QjqGRe&$!z4ͧE }[ ؏;5sAE;t1no;m„ ,jM4D-br/iݤ"A&7 G°M)Ktm•K_7'7uC91P-0aeQ@pBI8[Wx͋ji6fi49t@aCpepa@9<&[Lj^l"5]}=/g\ޖcc O| 2.{RPT"-0`m䃬X\ .:/yD `iPX/ȷ8),)z8*+&%t.K.Բ?gU6`۟hx5)j&L NݍZ'5P`FN(|!Кm^[L]5R\;N7ŒU3\y4SM_sgXPA\Ks/Q$ٌM2eAqm \t [ຊ6$TGImtټ":Rby&lZ&s-K{@{c2\t1.6O}A3@F"PJ1Ȥ*ZvA̲j[0s@c]kmVne9Hjt@I.(\ ď*_,Ġг:YPaQ#.ڌI$K*[h"~v\Q{V 5n ~ K1 W6掍 ҥ]%Yz= %_ i5WDoWlzb2A@k&NR>65idWZ Tߊ?(ܤs^E[_ -:`0Q(uh 7 DM9yF xg9VN0'ICΑܷWw()GxgCseN@m !uO\VjFHVYcptyqـxKEH9*YдF3G.nBj RaT\F B$ 5>XH@` .au0k bKV6 WU1y.G0j`i 22^ ~$\Ўn2ɲ)$Lq ="d@BW1h u1ڢ %gN:zf8 K3 =:H3,eeRMɜ@,rqylVUzk&@ 0d4:Xo6T6xh>;FT.5 &2(iZ,ˢ_+>v>o3_Ex̝O LdqfiYi&fft9IVZ0LVI:/l_Ғbzz[i* iU-?ט/Il?J] TDzzr'Xs^y( ،͕٫o~|M\Xr.?&ΗPŲ|6q$` D0i$/5$ы_|9tнz˟H._پ6Xp?XO@;/:xfԹ(:ecY,@ZLE2`ovb,3.thKkC h"BQ/R\{Y=K\T`?րG׃5'@C<2SYѲA:cUZP5bҟ~fdSK25[wnஜw=Ht(ziPf!ց}UhƜx ѣ%|Jg[4(!n Vg֪vH.6$8,%{JuXqe«vvfOD'Oa*&πVƻЬ 8󍔼S-!FDOX'FYY]=GL>NzUf^'C]0>};$[ OtËq1֧^Yl|0L^ l|qо{AhX*COi)ǝKeɦL뷯[5a[e )Zű1%޺$-&4ycbP6C52LoDj#T[ז!SYy(r x1[ 8QbC<03z@nJn Qdup(9XuQcw[7Vf/ν ~M{e+K)^l ~nxned} HNd!qQ^^7Ruƕ;?X{{UP4b2>C\a4jC( žPdUpVfO,5z3l F(  _WgsH'k.xky_[^nR6o7VA!tʸޮBm#ѐ;\$H{?;K`xE䎏s#MDtnwȻT/(ʵH5Ұ[#ߒ  rAIAtK@kڡ{$[vbTrG+^y(jY!e? 5u-nށ̡瀙*Pbx@9x5jkj[1цxvb1rn|h&wlg&ybT[Y1 v:0iYxQ :%}/6)=w_/n ۩<׊E^ׄEq_xp>VZDO3kSh@zF^O@/.@yBXx2-mEtz>.U: .*]RDu|yw횉$].қ]*XAYZ}  =EޥuwxyKT]ZlU1Mh4=,jnҬ il^CiZv*x#p .Z D D&d](5Gk R~܌X a*MR'Z:!,xz+.8$.{).I8pDaSj#]=y,&g$_txa5v^^dڅ*|j8_:;! >2_Mr;#P6Aէa`%nGЇ“MrY aܒ(j[QA-PB-0 +ޖxh@GM7NȀBA1@z$zOϾ:%EE1M&zr999^& /Bv (Zwhq cj'̙tjo6w . @ `V |]T!]|7(Zߒk4eM GꞤMg[ ][Qz Ojq~Em5'*&Q6a ""kJg8"j[:  MRIK[&P{ga`AM<#,)ȀpIX̩bN%hYGɛ@U87FGegw%fXKP]ܢlE]$MR$3}1,g҉KLU0o "Rv}V~dZA *nVm~:MaL4˂^8RÃ[qڲ֔ eh7d_(l2 (a82"BҬSMXʛ1i Mu)W ؓv"qҚW47/ d]Ӭf>n, P *E?n` g^ɷrrãڰ![sM6J֗"_?FִoGCJF)6 w":Ow$;p9&fSU @z9bRg`;5YzSfT,ex8;`y\*T-wi}(4pDG<}o-I@ MʹEt^w(b˦\_>R7M-(1Ͽbe@;jHm3UX UyHto;yf ߲]VXj6yhI*ɢP%X r^P<6UB]Β1uqkطmf&kx)[(eXhŅW=:E*6oo%PwpIч$P᭨ׁ)N4/ Lp|FF;u.r5<|z9ܥqZ$H>{AhǤ6n"4~jevf]M`' HeIQɤuR\RVpwsaF{V,|=/qՋd\di9ݒeht׵6KDfx)PfCtmKCja+F&ewK03UFAsQ=(PZ{m֨Ye'|~l1Nm:wX_-蠀kgD|+-Dܜ< ?l4{8˄7 vǴaHF7wTt砉]s^xe4q~E)@G_pˠjL KVHǺx AFgu, L' zH#uP&W) ?؄#!V{" w(滤p3ʞj7pe<>fggwe^.f&)_k*aZR=fzSj"-1ReTl47?0'Z i?:;~|}mVhqm?#SZa>Q*h߰E-@6%+F6CDi 5l=QHfH׋{;ZVV0)npN) 6(U6q ́0bQq՜(T ]oX7i2E''Xm?yh'Ad 5|3 v*`'v Aǫe욭TJc5[)PNl%C? j`9n84'wYQZJ| sW% vZ_b`Η4@j#o0IHVt_V0/Oq~ D.'iߦ`Ol\/{m5~x~'TB1ـPmqNdQU%I0UE~9V {֦zI_[5_V4bNjՆ' PS,žoQHM7}ql[E#gOe,(M6X9߂9W/D~迌'"c\;.ׁpW}-|eSGwv:vq9[lO<ת2T2YJTAD x&L Q"J<&歒P(@71,5RCh)dՇ~iֈ:&/jHYZ*FY7i8iU@Ks [q% r*hZuTtamI0m?46Vp(ƨUbKS9Z o<긘\ߕt;Vhh)|!+udV[6R.ug DT[ڊZM/H2Lc7A&QH"&QϴHY6 DHW ݡ\GיHyco鷎w4讣K;rÓm|}&K$ŕy%͓-^4bu!@&TWMHmhWҋ8237T7G x"ɠJ'B0!k1ߵ+Vl!;JA FP%t9.B@7D^U+ɞj(pwGq8tN*acZi%%ҥ>5R0<}#<,zWxw+Ù -㈺,])5 +Nȣt!Lפ7f!͑#f-Izuy &co[oCZ_V1utjϖ sm%HfI&+5[i`3S!HASuLtZئ>+KAi2>RYt[AYiݜiYxYS) )#j@4 N.nĶ # k%,SPhIZD$q@6CYf7J!ۡ(aGC[-CuBnR%lVך芠8KyOP2dπ +{$tX]VH]t-+~:VutbK9Դ9@%kטH08PM \R[Z5iq Xٺr!/?OhBN:O'bjyk>FfFTsB*%o各,$3M:&a㜔d@_#M6'ݕ>K%o:.ɦYL鴬ڙnL:~dT~0Gǃi0L7>?& wd2[ǡ H4酕[A z19)*dw!^hxay!18`^}}~ MytWiVխucjJ<#ΟbTߺt:'^·q*@$,%!HPc ۇ.:8ZW0^"dsm);@@GQH>1-:#RꡩjJa?і`-ƫ'8'BJ)z9'MP@Q'NVRtmClKRԏQ,:HZڊjgS(R .bzP)dGQP35=3)F3.ZPUd~}X*n@3:RTkxbV 1 21ҎVCZqk H۴*|5ѯ)VϚ \_O̔<-+`m?~׈6c9޾ONc u^kƪg'n{-)(oBaQ{^]o{o>j v+$5D9*(uDћJbo8qk`y7u5c?5no#𾳎|8-|q-ՓcK;^p DމSoo+l:Ƶn``t7u[FWs\ v6jdm(8X¿Q~~onxM{[:V MGZ{௞V7+JzLBY@:*a5)A94km&aWkwXm68īeb)WCx:tٗcM:WQŬh! 9z^.6d%[1XbL˦c}֑f\sv1t忳ӽϖE+?Y $^^ dZL>1:{#bw.޽=,&gLH/;qRK$i¡6K:,I)!?+X6M)ѓۿ-eWiRT 4Dv)M!d>Y.X #r]8V+첫/ b?]REoHtt[:VQdw)MOҥV4L'C/$ueN@:];}zu3Lu.:T4ڗ]* *#9ؙ1p[{'_[GmꮣKO:V "> f'{:㶩kËy\@k{"=tg!pݾ'Þ L{fb<ݰЭnN׾&bFiM3q#@H`eC&G> R赘)#prD@}k5MUGG)9hWFzn˟Y>|L 'h˾D@*Wn>qu=Of|sFs]|giN=LqDN+ivgL$BfP`ೞ% v-$& 皎W pV+_YOx@k:ogg\,Q?O.n۰gr.~UΒD.NIĕgQashZ]A,w;خ#йGS~-הᨗ( 5$JKmNܱuߥͻoez8@c dtBٲqD61H/$Bu}}!a>> >Q{$k3v̇vkэ4^PȰtuXZ)R&+[7|(cO.^שqRTr~d h}yA=ZUp>0R_ iB<.T O@ǭǣ<;v1ҼZ]&~dg=٩he SOvc@Iv2ZءT<8oc\%X ]I_VI1ωOý6>{Fx_iw?6rkIXmv5DcUK/kX5Lhu:o 6b1uC@BlYEaFGdbic[!]N53 2ըǵ+92#Zuct@ۿ[%֯͟Wjt}7mv-,+k~Ʒ?s}T#XɛH=C{iψ?kzZ:T}#tN,uxNǹv\юu;Wu%|Osmٚ'uoCfۄ7f.܉s w_t=$y'%,R)?ITףJ<6k$-hޜZȝBUUBգbXڅsx*p.v|A-H,-7nH#m>O3)hoV5h E$ygqwtFG,\7}YvrLһF܂ԤǛt;˽ަ;ja=QGwr2tÿ?.N[^ jC3U?ĭLKonV P%PVa2OUpn.Z0*@o{{0[K::Ʒn6iR[k/wL鬣K?t󳓫O`<1E,T! Zxmp2a})/7=&&͹e&Ϟ(;tlf-e $M]50ˀCp@m__=aig55]+b7Yݔս][[om FG@H#x uQNgT$58sOIۗ$MSb\3j}n(]蓭 2iHw-sD;U.?o3_ٙ^+,'8.wȋ@d:eAȂ>K .tW$tɄ, )/HY  lZe_9c$EzDEms(vI8Њxhȍ£A^!-!)AQrP$i؋֒]tJ_ulI *#m>jnv8wPnz=J0]~ Tl&.2d^#iXt|Xk^O5/" HAuG?o>џ"?*^q'̣