summaryrefslogtreecommitdiffstats
path: root/pyfirstaidkit/reporting.py
blob: 21a4b45f06fede02f9a2970f7ddabcc95f6a85cd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
# First Aid Kit - diagnostic and repair tool for Linux
# Copyright (C) 2007 Martin Sivak <msivak@redhat.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

import Queue
import logging
import thread
import weakref
import re

from errors import *

Logger = logging.getLogger("firstaidkit")

#semantics values
#first the "task" levels for START and STOP
FIRSTAIDKIT = 100
TASKER = 90
PLUGINSYSTEM = 80
PLUGIN = 70
FLOW = 60
TASK = 50

#semantics
START = 0
STOP = 1
PROGRESS = 2
INFO = 3
ALERT = 4
EXCEPTION = 5
TABLE = 6 #types for arbitrary table-like organized iterables
TREE = 7  #nested iterables organized as tree
ISSUE = 8  #New issue object was created or changed
CHOICE_QUESTION = 990 #a Question object, "reply" specifies a Reports object
TEXT_QUESTION = 991
FILENAME_QUESTION = 992
PASSWORD_QUESTION = 993
CONFIG_QUESTION = 994
ANSWER = 999 #Data sent in reply to a *_QUESTION
END = 1000 #End of operations, final message

class Origin(object):
    """Class which defines mandatory interface for origin,
    when using the reporting system"""
    name = "Origin:Unknown"

    def __init__(self, name):
        self.name = name

class Question(object):
    """A pending question to the user.

    Object identity is used to match questions and replies."""

    def __init__(self, prompt):
        self.prompt = prompt

    def send_answer(self, question_message, answer, origin = None):
        assert question_message["message"] is self
        question_message["reply"].put \
            (answer, origin, FIRSTAIDKIT, ANSWER,
             importance = question_message["importance"], inreplyto = self)
        question_message["reply"].end(level = FIRSTAIDKIT)

class ConfigQuestion(Question):
    """A question that allows list of configurable variables

    Each item is a tuple (id, title, value,
                          tooltip, regexp_validator, validator_error_msg)"""
    
    def __init__(self, title, description, items):
        super(ConfigQuestion, self).__init__(title)
        assert len(items) > 0
        self.title = title
        self.description = description
        self.items = map(lambda x: (x[0], x[1], x[2], x[3],
                                    re.compile("^"+x[4]+"$"), x[5]), items)

class ChoiceQuestion(Question):
    """A question that offers multiple options.

    Each option is a tuple of (return value, description)."""

    def __init__(self, prompt, options):
        super(ChoiceQuestion, self).__init__(prompt)
        assert len(options) > 0
        self.options = options

class TextQuestion(Question):
    """A question that asks for a string."""
    pass # No special behavior

class FilenameQuestion(TextQuestion):
    """A question that asks for a file name."""
    pass # No special behavior

class PasswordQuestion(Question):
    """A question that asks for a password."""

    def __init__(self, prompt, confirm):
        super(PasswordQuestion, self).__init__(prompt)
        self.confirm = confirm

class Reports(object):
    """Instances of this class are used as reporting mechanism by which the
    plugins can comminucate back to whatever frontend we are using.

    Message has the following parts:
    origin - who sent the message (instance of the plugin, Pluginsystem, ...)
    level - which level of First Aid Kit sent the message (PLUGIN, TASKER, ..)
    action - what action does the message describe
                (INFO, ALERT, PROGRESS, START, STOP, DATA, END)
    importance - how is that message important (debug, info, error, ...)
                 this must be number, possibly the same as in logging module
    message - the message itself
              for INFO and ALERT semantics, this is an arbitrary  text
              for PROGRESS, this is  (x,y) pair denoting progress
                (on step x from y steps) or None to hide the progress
              for START and STOP, there is no mandatory message and the
                importance specifies the level
              for *_QUESTION, this is a Qustion object
    reply - an instance of Reports that should receive the replies
    inreplyto - in replies, "message" from the associated question message
    title - title of the message
    """

    def __init__(self, maxsize=-1, silent = False, parent  = None, name = None):
        """silent - silently discard messages that don't fit in the queue
        maxsize - size of the buffer"""
        self._queue = Queue.Queue(maxsize = maxsize)
        self._queue_lock = thread.allocate_lock()
        self._silent = silent
        self._mailboxes = []
        self._notify = []
        self._notify_all = []
        self._parent  = parent
        if not name:
            self._name = "Reporting"
        else:
            self._name = name


    def notify(self, cb, *args, **kwargs):
        """When putting anything new into the Queue, run notifications
        callbacks. Usefull for Gui and single-thread reporting.
        The notification function has parameters: reporting object,
        message recorded to the queue, any parameters provided
        when registering"""
        return self._notify.append((cb, args, kwargs))
    
    def notify_all(self, cb, *args, **kwargs):
        """When putting anything new into the Queue or mailboxes
        belonging to this Reporting object, run notifications
        callbacks. Usefull for logging.
        The notification function has parameters: reporting object,
        message recorded to the queue, any parameters provided
        when registering"""
        return self._notify_all.append((cb, args, kwargs))

    def put(self, message, origin, level, action, importance = logging.INFO,
            reply = None, inreplyto = None, title = "", destination = None):
        """destination hold reference to another Reporting object"""

        if destination is not None:
            return destination.put(message = message, origin = origin, level = level, action = action, importance = importance, reply = reply, title = title, inreplyto = inreplyto)
        
        data = {"level": level, "origin": origin, "action": action,
                "importance": importance, "message": message,
                "reply": reply, "inreplyto": inreplyto, "title": title}

        try:
            self._queue.put(data, block = False)
        except Queue.Full:
            if not self._silent:
                raise

        #call all the notify callbacks
        for func, args, kwargs in self._notify:
            func(self, data, *args, **kwargs)
        
        #call all the notify-all callbacks
        self.notifyAll(self, data)

    def get(self, mailbox = None, *args, **kwargs):
        if mailbox is not None:
            return mailbox.get(*args, **kwargs)

        return self._queue.get(*args, **kwargs)

    def openMailbox(self, maxsize=-1):
        """Allocate new mailbox for replies"""

        mb = Reports(maxsize = maxsize, parent = self)
        self._queue_lock.acquire()
        try:
            self._mailboxes.append(mb)
        finally:
            self._queue_lock.release()

        return mb

    def removeMailbox(self, mb):
        """Remove mailbox from the mailbox list"""
        self._queue_lock.acquire()
        try:
            self._mailboxes.remove(mb)
        finally:
            self._queue_lock.release()
        mb._parent = None

    def closeMailbox(self):
        """Close mailbox when not needed anymore"""
        self._parent.removeMailbox(self)

    def notifyAll(self, data, sender=None):
        if sender is None:
            sender = self

        #call all the notify-all callbacks
        for func, args, kwargs in self._notify_all:
            func(sender, data, *args, **kwargs)

        if self._parent:
            self._parent.notifyAll(data, sender)

    #There will be helper methods inspired by logging module
    def end(self, level = PLUGIN):
        return self.put(None, level, None, END, importance = 1000)

    def error(self, message, origin, inreplyto = None, level = PLUGIN, action = INFO):
        Logger.error(origin.name+": "+message)
        return self.put(message, origin, level, action,
                importance = logging.ERROR, inreplyto = inreplyto)

    def start(self, origin, inreplyto = None, level = PLUGIN, message = ""):
        return self.put(message, origin, level, START,
                importance = logging.DEBUG, inreplyto = inreplyto)
    def stop(self, origin, inreplyto = None, level = PLUGIN, message = ""):
        return self.put(message, origin, level, STOP,
                importance = logging.DEBUG, inreplyto = inreplyto)

    def progress(self, position, maximum, origin, inreplyto = None, level = PLUGIN,
            importance = logging.INFO):
        return self.put((position, maximum), origin, level, PROGRESS,
                importance = importance, inreplyto = inreplyto)

    def issue(self, issue, origin, inreplyto = None, level = PLUGIN, importance = logging.INFO):
        Logger.debug(origin.name+": issue changed state to "+str(issue))
        return self.put(issue, origin, level, ISSUE, importance = importance, inreplyto = inreplyto)

    def info(self, message, origin, inreplyto = None, level = PLUGIN, importance = logging.INFO):
        Logger.info(origin.name+": "+message)
        return self.put(message, origin, level, INFO, importance = importance, inreplyto = inreplyto)

    def debug(self, message, origin, inreplyto = None, level = PLUGIN, importance = logging.DEBUG):
        Logger.debug(origin.name+": "+message)
        return self.put(message, origin, level, INFO, importance = importance, inreplyto = inreplyto)

    def tree(self, message, origin, inreplyto = None, level = PLUGIN, importance = logging.INFO,
            title = ""):
        return self.put(message, origin, level, TREE, importance = importance,
                title = title, inreplyto = inreplyto)

    def table(self, message, origin, inreplyto = None, level = PLUGIN, importance = logging.INFO,
            title = ""):
        return self.put(message, origin, level, TABLE,
                importance = importance, title = title, inreplyto = inreplyto)

    def alert(self, message, origin, inreplyto = None, level = PLUGIN, importance = logging.WARNING):
        return self.put(message, origin, level, ALERT, importance = importance, inreplyto = inreplyto)

    def exception(self, message, origin, inreplyto = None, level = PLUGIN, importance = logging.ERROR):
        Logger.error(origin.name+": "+message)
        return self.put(message, origin, level, EXCEPTION,
                importance = importance, inreplyto = inreplyto)

    def __blocking_question(self, fn, args, kwargs):
        mb = self.openMailbox()
        try:
            question = fn(mb, *args, **kwargs)
            r = mb.get()
            assert r["action"] in (ANSWER, END)
            if r["action"] == END:
                raise NoAnswerException()
            assert r["inreplyto"] is question
            answer = r["message"]
            r = mb.get()
            assert r["action"] == END
        finally:
            mb.closeMailbox()
        return answer

    def choice_question(self, reply_mb, prompt, options, origin, level = PLUGIN,
                        importance = logging.ERROR):
        q = ChoiceQuestion(prompt, options)
        self.put(q, origin, level, CHOICE_QUESTION, importance = importance,
                 reply = reply_mb)
        return q

    def choice_question_wait(self, *args, **kwargs):
        return self.__blocking_question(self.choice_question, args, kwargs)

    def text_question(self, reply_mb, prompt, origin, level = PLUGIN,
                      importance = logging.ERROR):
        q = TextQuestion(prompt)
        self.put(q, origin, level, TEXT_QUESTION, importance = importance,
                 reply = reply_mb)
        return q

    def text_question_wait(self, *args, **kwargs):
        return self.__blocking_question(self.text_question, args, kwargs)

    def password_question(self, reply_mb, prompt, origin, level = PLUGIN,
                          importance = logging.ERROR, confirm = False):
        q = PasswordQuestion(prompt, confirm)
        self.put(q, origin, level, PASSWORD_QUESTION, importance = importance,
                 reply = reply_mb)
        return q

    def password_question_wait(self, *args, **kwargs):
        return self.__blocking_question(self.password_question, args, kwargs)

    def filename_question(self, reply_mb, prompt, origin, level = PLUGIN,
                          importance = logging.ERROR):
        q = FilenameQuestion(prompt)
        self.put(q, origin, level, FILENAME_QUESTION, importance = importance,
                 reply = reply_mb)
        return q

    def filename_question_wait(self, *args, **kwargs):
        return self.__blocking_question(self.filename_question, args, kwargs)

    def config_question(self, reply_mb, title, description, items, origin, level = PLUGIN,
                          importance = logging.ERROR):
        q = ConfigQuestion(title, description, items)
        self.put(q, origin, level, CONFIG_QUESTION, importance = importance,
                 reply = reply_mb)
        return q

    def config_question_wait(self, *args, **kwargs):
        return self.__blocking_question(self.config_question, args, kwargs)
gL?&Iy6u?C>r#uYl*KXbbmbIpwQKG2HHMMwCjc6 P{tڹ%[e]C4P띉Z<ڄ)6^zA_VuG]<eDeF1K\9kc=jْo [EzKQf,a+ZXͿ.wZez4=Z G逡\Œ<F7PHn\ˬ$^#<m.L Pf0ҭ8wZDK_z5 7:"ٕare pCʊy n2fvMp*lagus&IlRW`>*VA #UHS ڜXxEc>HO 9k)WV*$oQ2D?X'r>4ՌC8n(iأΗ^NBǔ '-7\@d*v(>YϛXީ4\1)x<4YʓHR& 6/sKWM[pߧ:*蓬lBk&c:1⼣ ="ț~q26M :3?E{4c "C8u ޕeoBsEKh¨U^+QB86`?r; 1xГ؋Z `n;YQ%R&Zq.!G¬xRHG)C0.{y2lm@vJ|Hs>GQm17 픟Z*=p 4zk h+Ч]&C{G a7(e, @pQjF\ υ19.WGEaC9 ۫WK /Fb@%xK!_ڦ4Xó!q8qP~MB36<K%REYW?_* ?b2դ>$\gۅK<:oy VybC5x/=$ q$õ`'(Z,O=}"6j'Mh88=o'd <paQ]c:A44|2bSZy^io[0! 3+PUvnīk7dNu>D.)e-Frx`VB]TFTs [%`1FQ|[ \q[̩[ ce ; JNPwU1YS`QUth-A_zPtaEL/dYL+?k9 Se,ź k7^؄Y](ىfZtv() #QoQM;})]rN7PQax/M WP|R 7%75 }',v"g)04t>2OZqvm.c4xY,H|BpaLWo8c414RK7AIådwm@B- 0-]/&Ʒ GCC"hpO,'H;p0z{Em\V;RUhj%8y%s̎[{@!oΓE9uaOPXZpz2SǼx!*[#E2Lgߒ6+aC`ps&%Rt4dܮ^[sߧ7>ڳ^ƤN鉞޴z8'1,/>Z>Di?B7y̋H'yAs!mgzWBr7][P`q|nQ!8+/lA\|)MZZ69|:H 8Hlk_SPBxؤFF ky $5)A«0  t{d_sycF|j)n*KPkWGJ͗N " RVRyه.AF>ek*`^S>ߦY_1-pRj& -d-t&sC]fxῡoo'*@ Mِ!H,€_[8VB> dF$ l+.w^l(/hV*:`![3o5J_q4+B2r=HX5EaSla@\dCs:gs6?cr&j[n[kzT5*eaqPp¯"ѕD92q+\]z*+̞Jsv=50Ьj NkNͿjHf}e`J2d/ _3ǚױ P>OX[si("N=kojtqPKaO9 IP ^7>LxGو KM؍/XѰؾ>X#t |B/&@ņTN>ESZV1K;Z&v(%grv#φ8*?_%Y\}#k%ޡU\#Ö(=(1㶉094  ]$@SX֑L2J)셡w’e״Mc$-rjMoKj*yd) C?8'plhxu.0)b3}dMfwiXd\?vg e9\=mڭ sݸni˚wsݑ@3ER*듩@(;Rt/D{ֺO}bć7E_6O^vUwtoE) K5"3KeKE إ剪"pÁ(/+0gLT&^/._PUc@p!vzI@0% drHͮ.'LОPV)Ey>8rފ44)hGvM[ݕe񊢕s(-0{-DMB/+?L2m5]Q|f#G^Ɲ7zla6zp=k܋AЫ%M|}-{_S= z`KI˖'gP ]gʞ):^okB[&֕PK1\>}WYDm`R- 2j>aϘ(`,)'mdҩIbϝ^1;y/[>cVی<,#aLQ/5Mӟ)O/>aJD 0BD̯pCB7eRNxS^;nha1F qݷ{u'JpwiUQ:I3گ0lJ) 1̐iםTeQR7PQr a6`fI辛`Nv؅vB. (pAJ> jtPk\JVCuFߔeB g*lA.&F|Tt䀖 醵u5BĨxjB9 e(w!?<߻&f󇄰E4ܰRTs,| ޕ!*YᴾO-TsjY= gxҢ|Q~`ЕirabBnx5P` {Oyu)ܡ0ړ*?`1PYT<[eMMN:;Uu>gWckI[/mrU+fMGC/d߿z"\\˭EVJtj;gz'[A;`^T Nʥ{H&zO`8H ƕ\\`'h, "v\3h6-Z۵["k0(1R8IS<+Gx.WJTp4)\ք6 wlA,ៜd9{ڍV4b-Y#r߳ލߡZd%#~maQ &!GID(Y35mώKDȩfiACm~ޝۦZȲ0/VFT.`AH_fٖ)HwޞIHٕpop@j@4q8xo,}DH~ÞÈHSxf[M~F Pag-7JI0Ago/t;HNP\8Z갊g&em~\Y>{­^5 p _Ƃ2p’[ .':i8ZsAG!|>_l_yz5:CKUꀻf#K^?a-sjc +k 9Щ\ "CP5q1=;d״M26BߜO$d̆(O"ҊkIFT#f-l=1t~ UiK{ѣIs޸~]?&7g7){ta?hjt5RrZu+ ܮR'C怒P]9K9qbVA,-_f*u$- ;^Z敉?>xTXXQ=d[2a^*8@*)bQWiIo]Q% 2 Zgjte`nAQd e:ka?""|fΣ>"xƔEq sk1\Ok8}66$PZ:lcg gヨ\j $_|9$EcZlZRtxgx݋dwF¿'4vk֝*'*PXlBݕoY]C7cYԿӫOHotI"{/T>~Ve aAO~Iv)xC.5)aѬr >7' .l$ *cCPsP}¨-Wc.hh/꾊!#W"?tPar?Ne[_ sǍs2By D461Y-WLew[=r.ġ[p{pvς[ٝ4T կ735gOaq>3N~;س & (:{X;ZU|fq4bn`h{ C`WY^Њ2 iXPcK2f(/QB$+ e9*{0$ *f^3lv5jj Cl%nie'c-VZ on$9ldFh lSg3zc? 3~v7QnT+iʱ5kAc".cq~;徽9Vr)?ۈ4zsjj28 _@fٛ*=ڕ~7UuE:lŪ#8A"Ħ k$tP' ypq\zʞEs%KVQ|ȱj k,Swĥ%:S(Gݧ˶B_SbR>39< z.]X7QWjc<{RB>IW456*k /B,dpwAO4XT(3i Ԃ> H.U}l =84,oCQW.O(~Uj}LJ,'H\ϊ @">_h#/kv3A5jj8hOo|2~5괼Nզonqo!@櫌H__sDH>Ϳu=u9ckp`Q;07Ԃrrƍ@HQPK@& zVA{[ n_1OOշ=H jt(rZPw$rb JljV6zP#yvX7(u5uo|SdgQ%b77+YCӮKgDD} Dwj`\GO6pGγL!5&,05N&s$SRZGdkRhx_ p*ԪA e zSI֎fi m4N+1!da}^zd< \Q/ A(1=7ȭ<[E X}0T-ՙ2.mh[4Carp~(QJ9tC1ϭh #ײd(fq~_5V›R* 3s\/ }b aa~ k|E鸛(ߡݬ6`$[1xqFhMj}J=%ҴC15ƒuH~ ʎkRjF{4S[iHi>;:JŸѭu)gmW',AѰb)>V6fo,’/ze#ĚLQ,{;1v\[.cFeA7bR+sѥs*M)KN 8E*/v5+=#qn֖ABEAR c;jT@d_M`)YWL?鑧ɸg9REy`6Z@lR_l~w˃wW~b 4|HFQ3H㷻`Q*vN|ISoM<-lNuǘ#JJ-.I ZRE'?lhBb~U$7#ߑiF a}OʛC^Qu=})b(a^M ]g Gq_aPp7ěvEn/3CȈAo# -28`ܡov3LW(h$&hO oջ6$1^$c(寊4'־Llǧ:zr),(6H|.UD>YT7? H<]CwqYEٌKw ςM%ШZ HH՟ך &CsM s8p k_~ :CwY}B-z?+ MX? .~6~yXuXXU۴,M h wfx$2oK`@[V_o(%U^~}O C9hO#"G!|2UIZ[A056NY/ƽy+Yl4I]n-17'loBy5PBNqo>[QsY/gw/ΐ1.@!RO/ DX p!h]pcP1-x}xi@->K+{rL.$)6wB04ҨEhe0 8þ@D", G yeV%#gSXt5rC5"˹7 w$;Ο \?In|O.?9 "s@Y0(/b՝*C#wf5f/_7qF[;n.{;PC0LZy~˨I YU? #>HRI] J(BHqdDݐ *)`Fi3D4 .K!AeKDEٺ^]+r9#녧s#j,1N5i1.Tϫ oo4U:z3`1} OD3 ثQI@Ն߉$RS V!?J뮂0Ku(6)b^w1@\*|x81 izMӛ |+3m^F98,-+jAJD ƧYlq|b٧VțlRXAoVIjJ#GKt(!ew@цq@BviwrLo$_Cf.+,?{BrG'zlhNi^Zo\E$BvK<,g ?ZsVdBE%5Z0Z}`ngjVYQEBBU4-O?ȯEƶr72'(2f . uXXj&H,h_hv͖"3NmdxٵK~:Sv"&DR5ֈc }iM %Rrh8y Z` "R1Sƚhո")ÿzfQLP"v$=@wnNr@ vqA5Ljfb=նRfI3ӻZN%&s^ ]"qt:<'labejXmZMMIxSZ,v6j[4{XeGVH 6ѧ>yTֆ Ρ!he&ЏN˥+wl+`^Ogxw}]"&ǃ1z&;xձѪ@))o_O>A8?t,帝NNJA=f '}ݠޅ@);D½ѹSP*|ՔM毆tQy/a=߰` VKsSh (@nN8-T3#ztP=]uFg~畕GD/ '& 8ܽ]xYT|y:-%ߤbߪ_2,:6/f}^D{b*CL%՚tt`\L0h:a @9'uFg:'~Oh$'^A25q]N,l\o lCTz꿬Tg:?yKz7J7.&J`,9ԀQLz1E!}r@T._\P]<^B䓘;gVdFoF75+mxL3^6a.kDH|BNP?V++ZѣԜB8m^7:ڟi{] KMh{ɮ4w+'РN?aYp;~74xK:TzM:ÕJ9e'T;M6JIŲ?J \:Hщ!@7LRGNmQ].R )R |~?t#uz\X^ݘɛm0_Scf)~g#Uo깗2n*Y m "Z Ǒ3GQu*1/@>y?P\!ح&(tб'g;ێ5a@D:2%̟DWufQWneb:zAM'׃o#2}+Q8󄁙_; OT=\DD ;)*TXN3Ām@^uW`YЄ nmһdcnm85B"'#ވ %X#:_RӶBX+HR9oGQ,HEZpfJ^0L ы)Dsŀ)qE3x<يZޫ@,N&? M7iIyri ]q%}Xp\&)0"&a[DCC3FÓaIJuQHg&ܝEm4 xѹz OM@!3֪KIlEe".dMQ (Tvim.ftՈ]/]4R$oD:{5v?TkUH?Ix%#Jj<7fLʕJ#F@ dp4c %fOFQw}Iv5ý(MmD>*OÙ7iڸf?]#mR1g.X5HcF~L Ν@6Ls : 7.~7*6DtݯUoHgҡ[fn\i&pU~o?/EO}8 bɨGǪ46) |Wh%8zd)021чK."2fj9tJ?IV\x'|']"}} &I~\ULetX`_F02(a~/Y* L8 g|]^E3LsQ ?E!E\>RDʵqyk1 끪@>ELhbidV9psIp,}qg͐+ ^{b 8F_N"ȯ JZ7pj3۔:p |%ateZ ZK /CB, 3r)2*jwCar՚˂ 1_T܁ QeޠMVBM,nDoa(пթo*j՗ &1ԔtlyD5`L`C)7Nd@^/"F8=>78U 45a Z5>xtV˨$Ȯm]Q~2̝͹أP[|-!vKF-t;_o3mP,%jo71cYB$FB+Gzirce\$º^o^uon 'Thny'@'![}t#_"|;)WϽ"}ִ>IȺ^@ M愅j`}cbuKXR{&Xː8JB۴9ֆ'p٣@-h%M)IiҬ} M&1 Od((/ FOZl\ ȴ+]k)M~8ۿ{7\y(f<0PSñzG1O㓜vtbd/:ψ)5a#2eOIC ߽8)V@9g_>$|$YP{v Nd Xd MVWp.h;z YȨ TƷd)>QN7fL,5|rv %~d=ىޭj Ou.,JaRVX2WX˂_i7=nޢ$$FٚI N}q%QX^T+'NJ*LnV]J'Syܬ̀Nn%{3v.d$%Vy1l1] +(wqJo|m"9njxKy8&qhʕX-L_^P>lZrI?H H-F|QOo`m 1]i b;b1#e8t7xbPe|O&AHyOվM,+4=7rpAgQ2Gz6#iMDM0r?NT!kQ;$ofS?.d^j<|_υ!7P*=?($WI+;1r~? L%Ry$!Fw tOB݇{Kp* 81Wսr/+6F |&>{e&r&J]_XH>+0Q>:Meb?ㅘD5X6N)%j'a{)| 98nTM\z͍k@:z[{:4J(GfNl&9W d/yWc1H Mut2Fd+Ks9Nɤnzᘸ9"!61'}zS%g "]\쩜Д}w.^yoXvfR'Pc qr}z*T*KKlÁ#'G14"ױhBYV/@fk4&M 9tt$WnM)ӕ BXA$?)4 (rU`DtC|*h4V},1/U_(Xia]Qڟ)'" B)*|WǍ͞Ch{zDH_ DD, P{n>M,DZyfLv:_Rg ̾K7^7@5ցNgfӧKO6P{K#ܓ03>;>Q70԰ 8Ø=)&cB֢,c0Olc+7,koAn2MųS8'nj/h B6ah*O2^C~Ԏd3*B:Uo9 bR-G_ L bYpj36XSFu =S9.Zpد /GWʺj' U7꿗ocCB~Em9`P|zXqe\Y&ϖH2ѱUkHQuvikY;E (ɖ( -.jZd#%F\#^M[71 SDj'Y4޸F"UGB-Igt!u}p ن#Anxn< "x1jՌ1Hĺʎ:B -Od4¾H~KHg0+ h\, ג nzk'+ Ib8*/X( S k/m_"l) Xe5iM ń$!׶LZh'IC!9i֟`^`*AE9c ڱOQ }FW A=dY b2O]&Czq/('c(qsj"U-;1d^b+ui\U>SQ#:"=}W{gapS`H$ül;&yM.WaGb L뚈_u%uFѹ*/-JEʋY0 JN!p , daKl ~y]Uwckڰf9|,)BU5-zP}Yrʅ,֓G+~~JCVN[X3Z d[N/Q%׽O)U%`!/Y?!׏KpH/ E )~* ?a (eޜz+6i:\ :[_v"((0K,s_bΰ܊<_KJ_xG6t=HDT y ;rW"$g~2~ !|| Y &2Wh3Ut} <++͛Yz2΄W91:\e:Vßim'[r[48T#Z: P$,ޕd*7ojҍ#`* j6xK /D4XY=ɵ ;0KObߟ(8{ǭ+Tw'b`[Z\w8sm YQ$4huO`#OuΎ1-zڝTSl#xॖ5ռp.bQ >TןR~zWXesIGƛ~mXCn{$pˣ 5 j4&.g#re)",iw_mOEp"zX02E<\Y'^1}@H-lC5L@}'ĊL <r7<)NQ!1O=d*DMG9'2,ʓ|[jiPz\;=VlAOހ-^wLTjXt%M^ӡeX3 i7qӇzʎa8raȽ0RU8Wwũah+nP N6%‚Iij)n-HNf+=Lf(9Oכ#⿺>Re4;atDJb@.d.!\]w4TV Q A6$'RrsM5NW?8lӖAW+,e S `!w.<+mbּSAt\DZ"/b7XYm C؂M9Uʝ.X0_gƢ{Zm ےVfOaҠ;Rr4~ˋxjl MoXBc|(pF47ؑy"vn(;$CoOw `SX&]VonBIuuO  + QoմԧuVqjgO c).Z"M{;r'/d`MZח WAfjeV-+Xc_\"mFO|@꽝_P\]]"!q@R : _o"O45sj.Ӯ G۵0B w)Ra\fP4 ԥ&ЛJ磼Մ%G/8B{1l|:?I] zjRA`TW#/CB 3IpW/TuI4pY7C;F\g }|uT(|huU) d? I6ЌAR))z+iBȌ@}; N7P/Y&קFSqɭ\n7[HctVr^gI%ŗlH+)[Dz5',Ho6h tBfZK>s 3zV("j5W07fga@y;_5,iKCGj H#s||D5tG)^(@A0o<]&SOȢ0f*G^")|KMWφh0"v\) t'¡%1~Br8y6{Eoͳ GC{y%{mẕ Ǖ\ n_/q4 [JϱI/g[Dml+ DL;t>VVK:5U;${ʇY +^wsA/(n*o@8hWH} fQ62h|)r}/Gjš GVXK֝(HΛ[rDx\6^_+*/ f+u.f[_VS׸N?w&sK0^#8ı@I+! ~ga0xḛ7"Z-mQyO&^Oepp,}dN,fܩr@I#(j8R㢝}T WC?Do={jhtzLKAeTnAJ &2eMYvFrkD 5*S] `p^tpl\FMRrYSB܎|Skp>"#[пcA{%yKUZǬy׎NaRwp8OrWi[jnIу=RZ)a&aR иɠn"q#yH@%=]7\YdF/)7be^G;A@6=|(eY 0 A5.{2dNQS$Α֕Po~ߠ*hz$'&hʎly_ scmсFx;~ZI0KL, 6v>艣 vCV1PU9ouT|'N!F#[=s&Ww-ۡͼӤ~^#)C0 X^= $>܌Ϣ";NZh-āL)(3TvFkkmfUE.>Rg.۪L:@gIFrIj̪ K8AgĹjMs!@B߸H]M!RmQ'UvB>dxzo%1XeOM!wGg<(pQ:rJBWܓ|8\ș.#`ל2)aGwAa?)n8trrq5NԬ׿ YFeȭBjə&=~~7 DArNdГϵ'$_|o%h~L1k C@`\򩦒X&%$zپB+NǢKg%7gJ za= meBf.8Qz TZ8sGHDzY0ebl_N{V 6=ӘAۘoO`(GAZ# n\ozx{܂ 9~p80CN}ڱut> Xu\WL_WtÁ>=T:LօC ĴshBHsg4*L&J΢hvvC/#143ԽL-bKoA0; .aէlX,#̸uå>m hzU=qHJjK1x'nDߋaM",Z Ď% ZN<%u^rZ2yjHl_64O2JIek)҉D>oGXo1'8s V-my\?t|+o[8[rn6 ;0BJSؑ<wYJ{) ܱ\D_ܞoF+'=v8WLjLmVidz~{\Xtì\FD72 ;ee- bIa]q煱!9vgZO9r25!#R{ÇsJ7 l>:usGFyUȥVg@iHOCV'E¾Tj$ԍGJ4A]d$H8ȂV*aSm,ugbDMaEe(Ѳļ1d.e(kZ((,Ty\Y%m^Z`&b.u1{,cPX0ҿP"lf/%ͩo{afFDɻ @fxj؟w^z{kbliRt#C p:U΀#N-I0xL g=Av'^w8b6zI7{reWGDZOCON#u@-W烡xAMvU w< 0<$j{\wDp?:ލvGt͜rp {.=s Yߑ{eGR}+5M8'Z`'X&h1ɀ.vje|Y8~+^_Sjv-. o)ΤsNcvXg 1ñe=W֒R۔,7KQz^) Dwmm "?G+f `,P|]O}tٷ%DS wSFsEQX㸼'/ ՒQ5?NLNO ZZπ~Ҷ%a|qU;`¬!:T_%CYBU̪q XrQֶ /.7gH>yt8 cD#e78@O3v?K0jm6l&/TK$%'V9abɀ1y_hЁr"Ch io+<^Z=1gŎ2TsMSt%ܟSc3O8o\`aJ Nϔ Nqܠ:aۄF]#dž]s*B[ X ('T8cWњBMOF\x;t<>w,l&1>"@:S$ eG 4(&j=72>0uDc pBHtd `ıh0Kgc' Km፺> 9R] @|CЁ6pS])+^>ĝA1WyZy xBvVŀjj8Ff&jp<׊QCjO۩OgIIѾx k\82E`@Е4$TSl^!&>\@f !HS()kٰ9wgzty،e ]IZv7>}.L]P*^ fFfeyStӛd0KG~r2ұb+֞Y9}Fpg 6tiҠrb(!Bfm\xxkߠ51B;48 t;Z/1Td٣,RC>qBA>LoAx=,܆h[;W<t)< aGˀotWMjd 3\q{UX J.^q p?)p,]m⯪}; d\n5qjG[q'n1jl E*(Z;,-N1%"bؙ\ /C~~+O:P8SFap{!>_1@.r>IVOU |>2%ŽHIu|B 1%/Gʦ\d[TxF@wxm6l= Y>*m|VZb^#\V[ۚr媗$"ʗ"n#GytmŶ¡Eh%Ȍ-I4W jiV]BR5OZ__rs wvD'DzwtRp^Xsv%7n;:=UcfY>'FKȇX~Ym~%e5!s{Z'3A/E4SV x4y:v@;pDwE6a6O &։X~Am z-z؅v!<NG*@F2Wcx1sʒdN" 01pͦ\B EavlKɯM6#!n:jr =C~㙡 I0Ax: \Z@*T#HTz'Bx fjD;!@Z@p{Zm32| ]HEsqFp1Q+3#H'^ɹgU-L, Qyc)I^U~!iP,&&ΐ<ą2g5%LL0r{';edr&Ww\n8!(|GV尣C Caci~FP {}ro% Syf?fCۃpE`uxB]Y=xT0@I:e@0-c"}\mǜAN#Ѯ/&XCߨpn]v-/T#F,vz ~/(Nz2F9qBj<ʹʩ6sDy~kVPϲ"@i""G]pU #GN&(Pg210a{ ii! 78ޯN~6 ONh0N~9?Mr/H͉@JeYyBc"|s;T{w?vRu=]%26oe?AˁXomgE_npQf:l 0%) 85n,VL@Op2E?E{a/QJ{9V +m%5k'bD _X41($ЗWu͢|iN`uyv]wb^ H-- (hP?'2M~<%f*lAO5 py=Vr{FdQh( p|VҢaUcbMS A)f"?!|aBIgQO iu/X^S,݋}˱z<5"~ߴa8ӑl˩s眎n9T=Ҫn@݁_n5a(\ʊ,la:eɂV ;q# o%O!3y=HAI}rg00I8=>ې/QJq\\Jz}ΚM rךHp8{ A&lrK,ݔS;!g- O571U>M4`L !`Bͤ/5f ImPCJDxOSY~D9Xڇ!oH%Q ,udJse$LYUW.q:|D8%e/3jJԻ9Y#Y$!w>8L2 a(lTZNV) -u>qc]thPp|=I@T}B&hh2-*'n*Q X| QƮESh]c0 .U6n)nd~^1[*97{MBL:$֛NjZ5t}hڻ0.kf+#abv3#O+("zS +F_p'*=ۜk@6 #cW©r*U cA/vd;M$w+b^ɰ{jͥa&uO0UҷcTP~m<1 c7LΕdGyjdU.T"z{EpZ"9?9P˔Pq>TsyT/BVB' KPk5! jge|ڈ o|PTKVJzܵyi  v Hב˃]Y"z>oXI -}wuNBxbBCi-%W<C$<(FW9a(y=S ƳQz7mzA<M1ebbeBpE` X39 ppТV>iMZi /B"uoU21۷:!D%m7WkE1yq&_-޿%`fP F̫_ݷ $cdl;A\C:^;&M{Qn[rH>*=]` ɳA.b\QPrëKHʝV':4CcYBt~ gު9 /$Hty6Ŀ}:OIv"$Vd>Um'HF0V-H{d({X~ sU(zV l(3H>I|,NP/7״raI~}R_ IO q<Լƿ,jw,b ˪P>FX_n-=p+. h$cC$wƯ˾H7aڠ|99VH2VUQb++rn7 *ȯpxw|;N'į.,B Kq<$[rB]qu :G+S7J|=op/_7NTWáa*qWRm t7Ϩ/< pVʿ]7S@5>P=OV_N\`X#WH>G ZQ*L$7_@u?>RlD @|xX7)lfw*3pR uER8Xtۖ=uFf[dcʍd Y q Y0ìBj72}btMo]XW+]ԓG^׫^Sv:vCI d_VSa'O"Ya+zS=o ~8*~lRLt9Iy{l2(p2jved jcŠN'KV$5:fd"ghL-r|󭸨JJ|r㨴hrqcS#$7pG}/No`ߥcPkGApDQvk,N~tcbcx2SP/c @&ؼ+j;"!Cg͊t(2;GZ.DѭeSfXj(9 p Ehp7Iz>:rK: *n8ԙДk${6&IzT!ʬ<0_Αۓ8m_wCNB6_Uag\iaC ӝs{@Eκ`ְL2.Νlu8Rp_zk(mr@鳡wr֪ 'ʾw@m@#e!bu5;cإw+ |MDQ؜#٫$v;N;d6PyB;,^ $rvIƱd4Dsy S]t&r;ji :"P )ĊKήxҌtV뤛! )Uhj5:qIXk3)?-XRybs@yd8vb5Y$֌jV9̪75?4׫&8|!j+x;|"dx}7qIBX&]0kgo\.'!:p`B9ɡ%å^ڒ̈́w!OвdCdo.ecѤycYT:]wmЁ|4t ߰VbRY,=gMn|i\ZCrbdSBjQ\4{f*a(qp%f."Q1[.2Kt_:#i+w5q>%0_G8l`k]%!^V_)iN`A[4<ES`$t";*A1J25O@`B >"]>|kC'wjmcBq#g 5oFM͸2YP*$6Aew79't (nxwᴟZ CpD# +;ي<@L)COakc`0 llOGqv쯻A8Sob8Q<'w?oG)-%TMnp&#VzQLE4L|ICiURڂZO.&c! ĸSWEGS 3Ţ#x͙1ɳm]) ]!1p_2>\|5M}?QR9c@^쐞0mBCޔ^C t0\Ș CUg_ieݺfEB)'iSP %[Y {/nz>N Tz+<^VE=~4xՅ Nbq Tو%<Ԏ:0,zX[Ӭ 86H,rEiޯPhD^T/T ѓitC%b;'JZxSiv70m#0aKoiD4,tlIE4*rqQ;;: ZV4C=BahJi9޽ZhJIT_XH$'ZUT@'Xn/"gcedjZfdZ4_MfS1{7Mз8YUnPzfN}顂D\҂ʃ}o(JN'TuS틟I)l?@F^ǁ]mdD`lvJ'@Gam1c}[w/E'ئ,~ޢ̛,.oPw.sf4+/`2I bmP h au54LjI.pE@ά$d8'Xʘ;gx>]%p5]"/qsӚ5JA!H0`,&?q?V%XDe3$ Fi}y:.p{KsusVې.U7ARdubCogv0tÝmH]xFvg t: B7vo@Sui\IRE̹Xvt F v;+սvT IzyEGfObڟ{b!45JUrX%1prH El85[!7$\΄Z~!e\J xY^`f&+^2_PߤܼIzdSZWoX3h'n+07E8|IXA"&+a? G @jPnzzt1lPC/+VnaGy^'f~f(Eƽ`~u_jl}[P69Rs2+-$O{A^ s=$⌴rZzX,N!/Xɗ\y+^/re&ŵU5mpI:j=nZnANiҵ mn}OY9)iMgF{BIcĞ7C Z? mMʼwycl-'i^/&A>( k> Q_rYD&paq7rI8\P~T\_[w09:&L` Ɓ,MPor)2p?2 VrTz|2tO2lͧeԾQŠANؔWR ilyϬD^(lz LiEpM,oaAc.}W/NJ$zY_юgnݿB\h>_N=Md,BJUTHoqm!~LqyI.@ .IZ)"B Ŝ;MLq}.CeͤA0 JdWJ0?iPuiE%IIlWmN&Hvl4am3K[=uMPYS2W2\zgE&C/5\+gw]2ۈR?Va9`q&֦bog8r/pZe?*P&ڷ'a3+SoVl9V232x'-:f/-}/eYO7wqhIVs?*|]Ei"HP*8ǚma倩xo#iU0Ve(H9EqpڳOkVM6^WҺ^aR&#a0^s( 3A+4ʂE' i-^iNP\KL@l]KWsm R|ai_"ٴZKi.XZycuAk8+S=V[/ (?EJCcq8%]u7Y Lc'ip*K*BCi1N"0Փp;/K^%xQG9&d |I,۽"\ m0(iiFC[ =Ӌ":SY d<^KA7$ݛFcl8 4XZ6a`L' }/=4tJ]{MG1;=!)U*A-\ip>cM:۫F{c޽/B &X:Lz0!\ Ic.sRlkȞڪc| )uLF}Lq%UM^> yV=DIa6Lvh'`o+ `bviV߈vr4`TR}}F1 2Tbڮүa/Oaۢ`ɪ9*V֨~G3U҃OV|N/@ʜϡށkJD'= |NzY mZ -3Ea.{`|Y,GTSdS#;P<ҭ6t\<5XaK~ VA~Gs+vkb4摧N-jQ>u DPF/%uِ)>눀\{+Sz՟!Vuf__0q\LjrvL* m7 ްbQԨ'`A `Z@IBnK҈TQk:9 cMjBKK\t^ oYс4I:Z~ =8蹅e*Dd T*B i%Y/Ɛ>s: ҿD!u˕ړZOK>K=/N*9ȡ8t6n"umAo$OEMM/ꖼ0w( CSɚCɿXtM 0 =wWFdmi L1rY)feW9s4v R`Bz3A}cLu0`^4>Jf3[RcE'v)3g6.8/mɄ("xTۀ07{-&~^p(5(uDT?dcErpJ'BHew:’5?zQb=,^O=,//L,5mCML1κIW(b˗rozj6$دĖ{rK^b(xBR7T2[=PJ=4}ч8}w3YXe> O!,縒|a2^O FgZgS{Fú:tQޟ$.;,kq,FnINxܲj·Ip RtN B?9vA=d䢁b(TC#4B]-5C8iJtLSecDў E?o?i 3Jl`5eˠDܐzYk#̢mhp`BV68 fKF] xY|Y8N,s2MY6=ϺBTGB2vs0/ncvN580MTS?3c>ȘSy].DČZʥ4Z]VoFUrǵyw M_PČ/gȲ&w Ϋta>8 y7;3,VO3j;HqEwK3w[s%u}nFe %ͻ (?t*dQvimbyyg<%~4I>7r:6M3 4ڝfV$C cᐾSM#mwHñҘ4=n[ZѦtqLzM'޷S)ˡ1 o'K0l,dd3àLHs$H&EkP"Ruk8TA0_óI|8{}H`wMad5fq&ra̜J'#uI MbdH>#f"Ku_9A/'PƦarC`ߺF){$!xD=t0#Be@zyRJҼQTbIvj+Q~}572SQ{+l*)|25d3ѻogE7崑E~26Lk歡;eT9tchтZb|2yav=kGYaoNQム-6LB[ytMnO۹h#(F@ba-}Nٳa~9yCJ'T_ĵQ%wYFis +2;W5E~'^Ǥo6-Vu&F.#5{m&^WeCZL_TQ8xMGg "J`tr+GzWr(3%)PuGN2*s/\E\Y4f_.2F hϔ{W 3ބBuu]JZ7Rkh}PWթ*+3dR>Ԧ hVa-N] J &fTb$=?K/mc6Sp 3g`V%rv"aݧd!P} ^uZJ)Ih+hx0Kz$Ԥb_e-2^XeD/o6zY>Uyk Tu滀_Xa$!iH (|B砓` > %@p-S;+ך*Zopǧo%!tn%Q|@xワ-Ǫ'܂!9=ݔ٣i5,x@q<{u H Նᓖ9vdl×MN&jG🲛Sp[pMgArx(iάp[Vs@ 8{?S !2L)zy9zŪHJugY*S핶M x` |3Qt$ȟI׀`lRZh읰;hw*P$~R'zF$PN@d7 6V =Q%FfS?]q $FA 0>GCPNP2QY&4:xTN I6M j`#p3VEqc˭1?6)]?N( q[v0vU:d3- 0 `5=F얗L!=N:\~JNd.4!>ʁ>>K7khˣ^y xn_lT \5Q ;uGjDt?N&n/Cr͛'O  זPz~XWN\2S|% *xbjUcp$={p#T4kc*1usAvQ'ê–{Qat fQЏ^0o=EyU~R^ n$%DYg[gfQ?`◦yXئl)f4{ņ-z0 fkLj{7ETj/NQ2O| ֦[]&t{.f f]Bܒ}Fc4 yWѮ>P&v I'+ݪt*SR Jڨ7kL1D_'/ Euj|aܟɀ8=/Xܬ1u˷ޔ BQh )8FMz#oI9`SZ:tK.t\{P_CrtYQ\_!u6+b( F>J)yd^oJEWX6n)|  W ‵kx[#w@oO3Tg~vf;Jl!)u]+͐fZkOog]uэ јed2`&R~6 p"fӕo^WK7˗q*\Y&QZ%2ufr- egZ6,F <K|2uǭ1->^Bxx1a r^g_T㣘7äfSj[`Mo_dc)>6E`QLiǴirNw:E" : ]:n0?:d}vV ƛf,M-|Mr;lBw@YN_{m؎bPjٿ^~l* &)Z-Blv1yZ|4.)آ8_1lQmlΏ>!5Z3C?hO]9.wmK=)F"fƞ+P}EqaT]t4j~%А2R(Xb4#8.8]{i/3 l]VqYCq0Cf {&2rafԤ<$.s%Ē eRΫêA*u1׃j8yFa4YJw}?,3B9{*CBk*z"b8K!R1<#7BX@QC(۴+&_ZFdK6D}5J"r )%d " AGA}ꬔt+Hz pai,t?~muqל8$rV"`7DALg]>Ӿ,CER(4?elO\bW<آ&s-S"8v/woX3UwCO3<9(UI OV Xx[1~2Q~/|CQC0:kuF뤁v錝mM|kLHM#1RIM35d$ܿV/?H3N*j׼v,~&r3t]x-d Gv~rZ^^%GN|auW:'kK^0~ٲdmBibvWdvt-2hƳR*L.1ܣna$\"0:ASP>|s$ **A;O#KwN)袮sp|Rg1@t[I,!d"^U6㩲M;vH{xirja$CC4xȩCR eofJ lMtW14Hpf}G>1l1Odz|Gh)xrh*7yIk2][/zUEᣞ}]-%Ly܆ ouc,:?77GG#o/ @n Cu|+dXQ^5<8)Y1؛yNC׫ -`^dHy~fP?ky@_6i&gzdU5g@ ;,_"]?$L?8~'Wer8ZqXW[scV)˴g(֯ok{L"SS=&S:'e`^|is{8I= [/oE1aڲWjRE􀈿[.夾NVB&\pnVQ`k}P!I,O"&>{D=y\ hs'ʐvۦ 3œ]K quʅKMgrt/kc(ڽ&D:{]&ֿ9J .ZI:̲ca7}$0aF(v80 @Srȉ6hGA,~,챀-*& /˓wIB_>3nJnW?K˃ ^=YC:(ksMLpjKu^8 Ku(ߧBΧHK' S6 uMmrh(ƵޫxaB1.]^wO78M 7/&u@mj5MdiL*Zd$Jg([EY6E<o2IS8CEJ̣ I&>̷@\mLVJşctuφ5eŸQmTx^~z 3J3xn)ur`\.^)H-lQuvV")ޫN{kZ1Րɿ:I1N|Gy/ ePٸˈM2pj?5 0H5/BVǀK(g.i] t'y;)F-\1EbR̛RvS<.edQ_>ʜ- 79aV]Q7>LP iymbC,lȘ0I1ٶȚ$O5tR1pv&.;EdA^DEjJ${ݤ!=>ne*9UIw>m!y, (P\!$(xx A⺸=fdVLG˳DJV??4;ykHl`k$B%ہ̜E'{QP|[sBmE!2lKc:6XnZeD넢^-ZCTOzK$ߡ?OJS?\W nA\B_$O2f܂™).)iN鬭߄,-M2]ϰe!QnubmC 1%+9zn^嗑ѳt5-8&/TG5N*Ǝ*gHuab w"RQz P>r3 Q]ί9:zg[gPaߓC CCBQ̧Jn~tUU F%8z2<:;J[pdLk3%K,YajBS"AMBLĽC> YPPwDĝ)̬5 `ZIl = ``%UI8C BccXv`OJ 5Lu/} PGU rUiC 8n}%E&,>3mɡö`;RYe\Bv>l^$d״::I⫓Af0upƞD)Ć^eFy,aeݴMnMM*aHnpWd9P ϛ"I"RW<"X~揶Y'HBOs54;tn6@ #p]$k}"7@P┑\ J` J,RrNqEzV'F1MB8}u['xWIen7w᠅c#Nujwa\8 K"\!~ask8=\{l$ aM -qi#j]Y-6%=RKkҸ +$~ܗs3"Il0PCe;r=Si(z]~2@C.?uؠА>^Q,8dG`f:5!#['*]H :σ1rI^"W2O|#}u*$T9vvw6h+QM.:dNB_%1)8(ʶw" I O"^b6 /"6[]K\"͵@#&jM\ D[ZEm~Un1#pFۀҩ(yRxN0g%56~ۣKQhfr+^굛m` բ1 eOXX lA<;HX.<ğR}hPnHv7Ƒ؈ 5,22w;M>5d~eB tOZ0K qCuǏo酯) HYqzu 0poC=sLX$Pt$oBP N>tiJuZ"}Ł|=g>5# sK7f 3Dq885Ck[Q Y73d\~!7P7L mL$LD8iX`!y 0L(2ؾK)/j= +F>Vsi|` 67?uBD|G}7 HH~^M6*_E fJ 2Ie A嚳_.`_F<\6 weҕM<<2.1T ZqeAEަ{$iPbGib2m]U֘J@.Ϩn4U%K[U7ߵ9^; ]}wc<8\}Մjt: 4+;Ƒ 0 ^I`_4F;: 9ƙI9;gh|`H*[ޝq6Y<Ӵ٥u5m"81Kj}/H-xv: CrۜuKo.lfX ^_#r`6|"wkݿt>QBЛ^T)>Kny_*<3wJ}FkR4ew ywN8܍5ڟ^~e6aED3 ɔq&3o{;!|Przc%pp#\PaXA?6(j\x8 |Y]ŢXǿ^)LIC)wa"W%L܃I,I@]^O^aXi C{l~04?4ǓvL%D_OM u? NN⾺X1鉏oo?.BMU+]GtS86K:ޚ#6ngen{X! DtX툑h(vt [0r @zENr23N|2xw,HePz;16N6-Տd@Q >C_7ekBv쩷Sq{dYUa+h~#25)G{-[P(p!`'SZK]~CCǣBQ^U $Քu `[3bG ޻7g*X9dߦ7m!Qvo}r3V [||i_*OPdt=ݾny{i r-"}3^`Yʜ46XBEņmU]~8v! Zz[kkqf77f9h9̦lAK6:Tdol3{Izq4Zs.oz$Lp9zt+"_8ЄŠ|ƴ}V'~7GCnq!_nOo`:Dz\1 2!89UJݙ1Ir|lu)˴c$许?JFQlRL yi9Q衼G,,,[X>PTxnkh] _JSNx@şS Pg]%\ҿR65,51Irԅ[G&^FXڬ ~lE[>l=F}hq+7[WQ+!~iQ'ؖAqt a vT/_>z_iW1ۍ`Y;abdoqؗ5_[Z/tW2P^m~7*`WwbyA;kP&CbP;ЂLX/+ 9(u/sD8Ҋ괜"LM#!MMɰ{Q[-)A(3< 3Y1ci#ASn `g,G5K g[ œ /6x2MEX b^;")BYJ cɺ"^ I6z_XAM*rhA%ce;z:^ +{3K]@JjrlȾ%rovAuMV̫Xg_Ve^ 5#b,?ڎf>[\,F*٭1#ѷ%F)7dͧS97c?Ѿ0ǚAEs[e j9#6SiXgnث\P*S*^5x*B4'tFT|FjQ/)ՙ{d(kD-~w~78:7t,'ƬW:$ i;x uwq s=-gGzr0!V`` 11,#U3M*I)r 8Ge| ]V/$_twiEjZSp|eKEi%j2jձY"~ xCUlo/1JA\NԞȮi2Q|Tuo/B9 ߄@uewu_!Ve3XQlmrwL%SM,,䓍/oCmc`K*2Xh+ByMftyI'34R{tl^=da=^p|])lEN[ CtQ'Y6t=pxٝm}f (eSj`/ݔ}9bpD`{B9<̃%D*f,΅GL 癿h봡jjG6Nn&^4Qzɒ|S ۙc7q=O3CoQHizBH3 P>WRW!Sc6T^ F ^^/J5ތ,T82 |# 3K-AgUQlJúUWxB3ӥ 㯤peYqB.ݾ԰/Hnjtl/LvZRl;(<0i p [)}&mjjESЋ Q9 w/Cgo6/sJ*V: ;q86^]z(ghqjXskޟy*fdm<W܇~Pܨ7K<-7J4/`HFT#5ZYGCr#XǼX-#rM+,xGnIpLt 2DcBT?=;G %'P28Cr g D{if_i] 1Ytj=gYXڄ59ŵp)ZtPHۚjSkjLEoYOÎZ`5 Re+x޻uP*yx@r >0KN~gJsG{4*iRfrui݂D1?rB3*s&z9zl;I}}^]Ϯ 6Z S('0{V TTX6 3`0rǾPk\uE7_SЙj NtS,9jc|0GX;v?5Grdmm^771fʼ,B۔ʘb æ;!s@i |W΍V^qUBՇIw#U#X |QVusm=1EHOWǍY^Q]^C[qtDPu |$u 3MmF:U!P}mST%TԴ녉dƒ $Ix#,ZnuW+3If|]H) 8QgEeKr A/TG [h( ynaf+'?E伪^,+^$T"^F1DO,8Ƞҩwla56W ?K\iXlܨfuH;r@c 0zfzDjӣR(s;f) 9Cش|"1W 7D.V~|A)Iv TJKJ)[@0c[#S]%&^.fc)'gT=O9O(m,bN%"! XSK?`jSD8KC;=p,^4 օDK[Oa>l!y?SeNB;$+Xt/~˥Yۂ>a_և5fx*XD|JJf[qcGlO;+朄Ø$N3Bߒb⽆w6`B+sL-jrtxفN+Ė92߇HȰud>R#y0_ )k]zyr|J΂]`\*d =Wd];iƂФ2.QL֩I(jڡZj!~k^J !L;}nLz$G>雊Mo>O_*oj'fZz֎OH e}DZۅ5 W TWzy0yPY*^]*l,捌Q‹ЏrXA85LI"HU!js ^L 6h!FXHt??dTGԬZ8̜RQ6ukQvl`F!Qo8^ؽ.RW2n=ЮU> brƟT55+ ;qѐm9`=Whoi0c}@B%lGЎ"j|k,Δ=^Tfcz uN8ٓq-4 s4G @ "D,kM\vCC KPi΍z^,tm WزvKհ 'WQ%k"QV ¦)~>|GNoL{\,*R{GXuZh]9KY~AgX4͢:e:vB^L[$!m@63q1Xv.{!};^:FWb7?Coي8qmQs+YXNE)gU54_{Zn'. +QOY4aAmvogݤ0c9 t'Zn< mQؾG\u<}&T<쎶*tE0CX}d^\iJ䋾RT<'=j 9|r1B|.~i^ i!4 k+i nN%We1kȾo/șiCcT}n 0ZbcŞlRCOh?_aSo fJ!V$O&N0"kdû :QBQK]T:Z9\T#_8h-BxYg@v}6|N{| $(3} 5c`Eʩ~L] -a͋1+D3߉F 9FUyնU 4Mk} vsLQ2tKrִZ|V䣪^i|m* ?-_@Fe @/ -v?dشSAE`uj4(F BuUCyv%m~(EcϽ0-v]i 2J%qOdn_-|A(.\]h8,@$,@qk̉Y?w㾧'cDnYA#{(Z)y\Id}XX 'yu~Z#ŠGm ^QD9 u˭GSKXZ8׮1EhW!&P?lXXrϱFfV?钭%0 ~rN9ؖް'1U)q')VC1 ` Çځ)}euxW|O#Ah{EkK/sva&2G^e^#v ;wh$Q!VeoWbEŅoĊߖf}.9-LEZ4HT3]u t*T\W,^*~W,~ dQPa8m!i6>z>{V138@QR38oZSLy̐Dy|7GWZ;;TCWBGLXhIr ϧBvpAc)~*fձ0\ǶW5 X n~_-hrDIr}@J@Ro$X.2X-n3/"4jeN)2dHNd 6]kt5 %fFY`FŴZIYC^ = 5 &P|JC&>Y3 B63.6F~$:_2҅&L[ "n 5.t*Ys5D_P"ԶeLfMi$ۺNݎ)Tl|\WjW`(c)2>Ͻ,KCv)I>(mkH3ķ@Pم]r>dѡ`/"!-+2-3dE)/N 5I'"o .S1&(h7a+L$UN)AqV-1*  \'`3f*)LV4v.`zMU#Uf! &9D?"$Y+zD_j.숫'/:Ϯ04`TiMأ(pχ_ζz;~veUE-Zwz`땡`("T_Yeo'lӃS -9>Q hN[ yŴ4G2JMOqޜS[]2j#P} Php^KO*/pp%›ukg/ǭ7]Tk%Z ǁ7GfAӉw!;"ڬ/(}>y=}oV&ɖ]iXBH/q%(94kU9Q@]eq0l;CԱdDg7j/smkr2'F d3^ޫ e8Bp ^:HhUsjQ=!WJP u4{ԪHFX mC%:FF=c^rY#8h(YG\KB'c f k:F `x( qF x`g"S c^1)fmڔi[ n8cmނc+M~ nv(J߉+.AZX\vy5$^זl~O뺓3 DVs9&{A:\l@r##r!WOB]S$C?TJX8ͬ4Wuk"[,N|wɎDp'ȡ2k Βً/ܞ>/WG{)Aezn\z^6h6"Pa;zd'ĕIL* Z+&օmְmfD+vFW,Gb>5L f9&(aR44b ϲq CEY?; ٕm0u0|Р>l ^d9=';wGBj§k-ɴD qfx%ۄuG-OKPc1{R/]ޝӼAU`,[z%w,؈smJNɌ˖OW5ּ9u| p/V.7R-C:ݾ^;{C4ڡfM8nzʐ&@L.5@bǁ}="`[ٶY2^`U餚ߢ+Q녎|kGY5]I`?Z}o*K@JNSQ$ }*Z`TL6JoӜAsVk(u\̛=jxgRMvqVq|hUNLCŅ1/)v^Z}=MX| TF@.KwNh17K^B[8,JFk 2M_k\۵n,$`요HL9W S*0LBm!tr݆N, Fi3pGx2og@6jX!%Pke6hz#|{=+ze8: VYJpώ胛,~kIIc$362Un 2 #=ɭoΜ+=k''.,O3:dc>Iq9"Q4[>9=W?P==B= /nXޟ]wƚܗ<Nz'0%(Zew/lޙNbnnYJdLnVn~Pk+i+W/l/# p40]Z`-~wQA %!5paPV@ߒGX ۩H O4曙8M X8g1=i' ji u"~2XeA]]PJiPH5*XJix7WA1rpBԅFntfHDRZ;_#]JsgtUt~ho;~lh$1wM |V#l'9gT[p$pRGߏ|>Es%Mk};6[NmsEf 7WS]k dRP.bLtF>3>{}x\Jiخ5jwU=,Lj,c9@4U\WP]/YF wӖO0^N0f쉏w7&* rũ^ BPD%(ʏrR[9B+(䰳Lڒ1q k ,gfr|RfM]AjqBw /*_щglVsBWiK y,WG]jiapӋhx/YTN2 vzF>_ ͝WFSx2(H2Ԫ ]96+gh 7}֍fOwT^Ljů$y%\'\ts0k{-.V^BNvbtol1.e0)[v$8w2tw̸3"^#Gܿs@XH/4 %vE _KX~>tmOlBHLZ;{ClSard6mK{1V)YekUYSMV1vĶ4)|! v-:ƛbi't`e`•y4?WEMt4z @h+Jh A"ŶG3'Ԙ8>GUu۟@p" n rAA]$0Wְv@$?׎%yVثjޝȜ+5bc}i&($W2Jև=}(l<,q$}TbIwRȔְBEOqva-owTa?A4XX'>yϷq,g^[;^NX飍M4q]3#4MU BE!,অ;n>ePa[̃V;۫tr~t{v'?vvA/jHXArC Gaق͋K8?r9i]]!Rw:9svD!.!m"3fS0oȳ5 ";tZzӖq Ƞk4oiE4W=_b~1Qtmrc߼#Q\XgtX BoK@ng͜N' ݾgso&7frDitE +鐮pBg)5\l ?ӝO@x΄׃&8WJ. h[r7&L= ǐ$,0"8 `Y>L&|T9ws\}@H$LF}7}s$!w|:˂<\CeLAZcد`{ػe-a*7c/3+s-Z,UK1{}g.F ME(fR3?SԹ]lopȎC/MC)QO(AN\UQ\E " $LwfVhnnuE b DCo*ƺ/ ^BAC%х?fyJoJWk]߁`~WžRPVK@_UKY8F SV`طy3-ɡT`2t,qbscPZFS]\+;P?)#7`Ptuz07/}YL P ]Eohrɲ#TէWJyW=1(q=]afEN=uq|@aeHlG)wX\:XT -UV p&\Acw:&!ZZ So 󠁪o 84@'D% EqJR!Z7U& "* ZI*k 4np.Êk JQ 9ueHU:tҽ)a _?S1^nuM[m#P/bSަ3~$`F{Jn"p05d$p*n42N˻ӎeTP57.=I^ uJWjH}x!g&6hOΙ+  I^?ETC}9ܭ7[ǐ+/ 0L f uRs!q(KD4bzAr%R4πsڲ7_te Ĉ퐘)2.Aٱg3guP3$ t4 C rCFIlJ\ZCR$KX_l#&Wїׅe?(\,\:6BtU6똯Dʛ<{eXyR]n`אs.~LPH#&']1 L^jJ MѼ&d*FFȁ#Ewڵ]ܯo䊒R=OtO?}߷f=eyM;߂څ'⎔9n. d/|ŏ=&wB7K ]HָcnCMfd@@tJcU|f'@N:}M#L1êPnۃ*/~;~vmn[M? et?Q:ZwaYj(R~B,̹maL:I D_vNu8m}@Y`Ia1kQ$4q[MN^CNaDܟ*Ρn z1TōZT5/fW"3ٹ~ 3Da%Or>PjY6 _}~Ϯ_-5.+.-Dߜ5.Je _]% g3hL^ԼdԞMFӖE!Vq9*ݓ&9Nn8G´T \Z:/}~b(<]@zd; L WLJ]N Y_IP`Dj0}ハS>LeS\e^9so% "[We#W5щ۴P0dEA[yg5c?I#\%f2h57p~A[^w vwyj=(A$WYvT(8N-~隋;B3+\>&ZGPZNcװ gky; 5\ wNY, P9zSt sĜS e Otg%8ʒ!b&t]Q]6*O0ǶSIV\;{C z ,j'ޘ-L.1YӇwyh(u(g wPI1b"!`mOg\'yVFZCX\X$DᑏhAv|iu K b;)D4r-.|kI׿C}HIjk[  Lv),$Rwv&}5fta7!EGƧM5dȻk{Rg+QvKDk?d h  8'm\aχo-B!X)e&qRc--PhnN[%eR_55H> mmr&yu kbO_2Egy  K8j=+ !,ˠcNjk\:Ojgn⚹,!=3&h 6jX[E{kֱ#a@M.7gjvO e}k31} LaO#M^+6N6^ǍPrNaqZ>:O4lA%vm^s-XށǠ `<'Jov6lH*$F>nbmw){Xt,aO$ek ҘqOZn0|R]&eu1TXI~d/⯲\Q Α+Q̧M.13-OWն&ZEjߣ }w"-n;eբ]p~zHf . "43D+YG3 f9 T=zu;\Ƿc|JĶ^2hNT/;b$fi8,-^` _rZʠ[ӈot{q%P*N]?1+m\}ܾ ο:w՗>1\*'!>kP](Ǻd CIͺBXu{cuBsȷzMny2pPu&;QB+OKXfY]zwOt BhfoJ[IH2[_h,DOxhU.Z?x7=7DBbq..UHQh1`Una:dNWbN?) 4F` g"FTW!C$?7TQBF뺴n9ő3Զ;:*9*Spc8.mB6`5<49.nS]M8se+J,ki-HERhءom{M:׭䢣Ê$5"hcǛ"(x"*7Ss"Qުf:)hRWo@Ylӫ4b젃 B<^ݐsܤH2Jgr.@t4 "ɡp>nI_ -E^c MPk^bfke[\ 1Kt-g:{QqQY*L3o~ĴN[MoĆavǙ%2rNo{eKa#$o`a$"|O\|~C mPȷvvMJF>7X2Wa,&#ٝd0cDC4VNm5$FmAneS[6c}M9uȭT(!#:ň:x;nrU3w%y;YKQ 7ո !&Snhk5f$ʯR׺< Ep]U, [mԱ(RH? Ĩ|άg)/gL531=rtpA4~#L }LCvfXg2*K& SxJ|z@ڷb}:VSeTC=^n'?-RPepd4/ܞ #Pt8M-wh9j׃LsXkdk:e|$jL1lUaY e,P:# Q+ns1IkPGb%f!.LLI`73uF48s\v¸j4U!ȹW,b/ K[9yWb .$<Ԏ^0S!4++;jQRF-;g?c 5OMH[I_r\3$>'9nj1s"؇,Oy0Ąi$焜B[}imSһp**$8L[eRͱ-R ɝ 6n Γ /w8(&6C޺0ƭKj _I$򒗈bޮZtiXZ!sU 򄣰esx#8xܞù_Z򔺲`>f7p°ldLf씄iDَbR˜qp6tlP/#_xBlĚ{.͹QIE cq 9SN4"xzhTaնyģ!~_gIl6pqTE[i׎k$>uNb)|~׮߳YDPg?0tL9O" ;!@!a'sj?vZ-GM%dl%xo,V>;~y _E| {.@_9GjxJ0eĄ" eǍ6ÕRhR I\ mc=f+5{mGr#rn`=02g.:`3)qdݱd ^j:5&%CvL/qhڃN6Rmck| l,R}RE&ېwŻ)e2fER3k_KG|)֠9;sldYb trM{|+FT_ɐ!II+:/QSϕn'5E=^cIIDʣY.%b $A{2okx)὿GVRb|l+=ܫvunX:$Xd䐈2Դ&*(JyIt'hpGyӪT ULH,$c~LvaL,$JdVsTgh mf]Ȁc}Mѐjc N_"D(85`(we!Uќ;DЬ U~χ8?x ;M0Ef$YXw֢0fP~Lg=P}iM=4L!mUrP>IA"% =yr^ ?)@#b'[Wg)\`}>.L\FKy,퇬>Z_lͧ$UŢ ם:xnX鞨p9;Xl !xR Ž)chL7)M 4[0D͓ \X YleuԌ±;;5!eY;d@ %iJ=<> rrtd"AMW}O8Yv 榤5՛CiiZ;\.x*ڳۖ>XʳmY4iP~^~PVhpIA]Wz ̵$;wݪ{_zӺ8[yنo *#g[ )phfdtU aDu@#OBA|q%Q+:Tw-X&a`2Ϳɞ|xUml&lOK%仜"iq\#2d|aaֈ > Mq錍e=<޾;UâghlIא!0v\J'N~Xz:dlJ\bn]cz6h/~뵟*?ThRJ&[SO}O=,7iª]L4c7j53`GE)qcdjg,d /,drn=aGS¶ZMؾьc2N(M"xid%錫']T}jBrlq4*"=/X q0D6O?pu^8&B :_;#qWu~F֜'H%Jaތ|IwFʕ>"\O" L$s &0cdB[OGkT^#zfx-2J)p# &xj,_lPIY'5B#qN.^חEaHྉn-K(% vBo7.@AQb@P7$5pբ +܌&pLϴ>;웟wzFIAA%@a1Zs:31Dj)#a$y@jMPpwz˼Ch2݆7i 1&.pXGǕNCXx]G|@EywV@Lj!V 9 oaQ -lю،H~:Ϥ4&N(&Sd< ж'M6xЯ.[hu+p) +oaMVnU QK(c2t0>poK[6n/MY+1go $)*rfq%1y  #ì Wah3x/}cY_ߐD&#Z Q$bd$G+F3'+XՑC-ZyJ D{X֗ e5+{߆@&&ߖ{+uΊR?6:,ȜRg>BƾSFxY%;QE+vn:_.=n'Gف9#M_TBSFhcR ʃ^p2cz!0;TDG I?&?f)ckHe.`)#oQr_riNElx3(eL8/zd+8}$6uWxr?cvQeV=LoWq*ljO Tzo\cs@!6& N@0ԷF#0paQ]z-; $pKm6=m@$v[y<`v A3~2ѩaKoJ76l&,Ջ]7Z,m^QCl5V-P,>]vQujw2"Tě)"-Y߀9ͮh;N0ވDM:ہD#)eӣ%cvyQXò.l5l=YP#l k۴I+m %Vְ3-k!na+N۟RyVajo*TieŻdhAe6~yZ k-"\K8Ȟ d3)+6Pɍ|-| . ;QnDQE`彎+kx=Q(cޞn0Щsf 4s*E.;^:(N{ aw_ KiR"YdTǞ5 e&zLi8N}J{o/F_YiMGZyd~Ղ^ $0 +GC;BVѩ3jbF_4KU(ڨ@o!y+yqlpGC2>;d-u AϞt;$xadСs>Cl6Zg`SӏY f+)%ܞ &^qjS`[ ;Լ[ro0D:{v5, QB1 ]-=tPn¡cpHi+i,b-*rqT ;E`{\7/JI3BsǴJ,8A ɒ)o3YLr\xTU㢞]ьfFNVe .7[S"7':,)H"ہ 6'גԦP!FUǚ큒uI9iP(色#UwH\ؿG֢ZΎ'~SԊ|Oݕ709G< @Fcw[1M25s[`,,I9Z6@<'VieX`r68j|bϖAyexrd?׫UE;DV6CRc4ρGҖCh3xfc$j0K%V-ǕT#S#?ޗ{n{5'GwQ"-]z*065ȪcEuyQgx $Nho I @]&ic7ܰ)x˓> [@A`2*Rqқ_e ԣЬ3 } #/^3lE듶Ogu`௩?PFΝ/OxO{`mv᭚`YC #4r5#2/Y㱺q_Q\?״c#CۅfԡO~l+Gc26RI3DczNi+KUⰣyN~ 4Ng_JC#'-wL֐S081{<*&H>gm?ihEbcE<(7mCB6H몇.qvLL=9_owB>K%W"eK,dCO 'Оw(!d-ٷ s&I^k'ىHN96F+ʶ^"w)ɥ{m:⚮ęAYRlFk̻9%NdD͜D@$Χ89l*~fx?C4_7C~u@@EqϷQ8uGs 3 lF4:KPkMctH4@;-4qA[k8డd1:4&.NY7&戲c$u & OЁg€7.iQT/~1VŒ7(/]!K)ib;CcfS~ Gis%҆4Y*sӃNec ~TGs\a;1;s3AbI ̐Ɲާ[nNRU񭣿nk˖dfU::7OY&&tE܉]1H"8 O.cGU9](Q&Q6vU`MB] !!a6𢜊rG3ߨ/~a r#F- @4{dQgͫdFǶ CȂ1%omp DSvL!ܪ-Sy ҂,'"wSεT@:NJ7"#A*R4!|aBtyib"Y$@,EZnb]#Ϡ("E6c2 jLylOsz)k. gnS.R~X(.M kڃ{C3H1ntya1#B#XRpPj%#|seIjKB VC5Q? μN}a/},9VmAÕbXů=\gCur^5|̰F-u]|p۶+}ڰ S[8.J/漘14ewd*nl ̣[.eٔ ɬ'~'Z=(t-:'K =AZ] \ ]_p{ aɡ^}JN·xz}dƅpԬ7&i\kSkŭUTsXM E b5`8) vpaU+$5˦FW*pUWÄgJQ/׉cʚUeM rtZۡ悎ef ,ޱuSgaaIz, ~*[j.sW` ~J,/8`%`)J=lN !q4 Mش&F#f#lV^dz(K8lQ&1pm_IȀ# dt=`Jv/~Só2P/@ فsA ȷ9YGhvW+1ȎD+ ZhmdV6^QD3Bx9>TOQ w*7[*uXW&h젨Sznn,Ȟ p +qbw9|MMS"OB,F\CWt`K1 @zDE26gdEXßjrR85' (5@^o!?-lB yӊ~X3jUeIgBתkL߻k}ZT}(noFPVV]i7~1 ´XU`@E#bʋY1ϋ @W>识rڮj?+z011H~SToK[W#t_i].2]:Z3у4n`3;ʽ0zJ:Hr.sq0?lhe$!; ؖ 3˅rnCpLgRP~mf1+cYXf{4tE6n4B1 x}U;Hݻ5vB PXDs .<;tP`(8rgL,pH=pW:eYϰ`qehGE:#8t\E K:3>r',!K~

wP@ذkFn_ Z[95veݹbבWkS #%EW!A-ۧ=.(ԑ:s7l[kw9z䳸*ܒ1̘8j|rd]WQ|9ݸ&kڌ-.),3 J;HWhˢpNÈvs܄|XCGyvB! Ǩ7n*%>U L~:6`pzKHlJ6n+GBgP<)JKPÂW,Q*;@jw?;%pMX~wbO}Te~7_߼>tX/V7|c G&ϲ* oWJ=^Iyqħ!z(/A_ߡF}3\k.|dtl(%:08'E7I8Y46ZSIُ: pn ]2/w~|Í沽쉻?{O=n ʹ~6lPwXT-UC߆i"⟟hޅTg3q'j9]"QR,,/Ӻ|(zjyDZ1#WdGEmb<1gSδ.6+5UE8%[%,b[θٮlEۺ7x{cX,*yg٢QՂ5EH`:X^H"2 vCoBC8v)?g6cM[ĵ\.rUN φb1ySwlEa* }X9(ܜYZ-ՄIl6T>LHe{|h,=b4Sl:/!)ICO٨W7a].:2Kvkguư'`ZK'"ڶ:mչB 3{&vjdem#_=?p+ J0 R-d(ۃ}iFafy\~2N Hُ:tk_7+~Up[5Zye賎bKvhyMVwgP~,tE7=&+˼Y8uWwgwi`dwa4}C ؕ\eJt|8ZWS]M92¢ `bVh=p3طcbm\*ؓj(5W󃾅t 4eDŽ6@vDoC a|~tu62 GmU]E#^NZO{MZZO&yztl}UFMOt #yDgbM*V^2p=C&3mAO%"Iݭ %c#e($ǗlOjk\EEe8npR `Mcvj"?$J@N6H%m6a<{n,PZA (^fMFWTهBG`wᴰO%iM0p#Un҉ u WVfY6jK2"O}Z(˕~6&PvhUQ#˻)RDoXA~ib,9AJNP۠Zy eg5%D^YJ7ҹz=h>ѸVp&/$ȌO0IxbR+\)ZV0&0Q?9Q2!m57kq}$*SGb*rd3 ;<~8f!K6l_&Ϯ*U9jN .7e>&d2v&fjم"j[%\U[ DXUM3&*DZ|M$?ȝ>S]Oo$(67H(3W_`}*xƣܤII9c}>,ٷ[6 0&,d.3k w, BK ? h4Tz;GfBS )EGZ L pj`#Nr 4(A(AT-N&%W@-b|c~5! 6 F~d'"ڬ.]T<3zfV!)Qy pssl+݀3ga"N"r{,,.&Y*oϡH27f8?o]<0YgGyRndEU0@)T9|:eޔh DS<,DC1#K=īvwAue_ %R W*}P+ QiIBka7YT^ϥ!բ'yʒJS8y81PQ{MA /3g)SoPW= ^,Że֝v'ty ]@MKsA };g;2QďK/ג\=c$f6@2:Y& `\ q xb6}aILP*{zONa?5g\b%=G5PHaw:L]Qԛh3tm'yjb%n|4f`)f^K:,W/+x 9[-eBʒ}6wG>W^Y%դ{J֛y+u)q..;]{Ρ`]23Rn>@mQ-n_ʋ#?c}`.0Cf4,`^qT:(ۖ&57Yv8K~#NXF+?R6OS3 nѻ@yĻob xϬ>QעOʰU;F ѕgX &TПߍum`!OuV_ 4  Chj7Qg20%:*>G\B@3?bUZ)eZ^OMW:ͻ:&o~X4cm%a!{ 8] 9Qe ~=GCIwmRolˢ~HXclK}>bxGB1 Uҟgzs,E13+ٔ9s1w"7>LBPrfAж up.i3cc6,FF1ZO$\Y}k[@͒{xeG<*AMH|FJPf^35%3¶{IJcJdԃk%[fF kbe p w،A.Y?2AFɇ 9J.i,>RHjhaU?)ZrSߙJD8~̱\wq٤f=nOEYO):`>g礼;|Yx81 )â#0CD IAA/5pclˣM<_t}bNU{v@U{?ϡK:{E{v#aZ(qfEhN>hUqdzH(-@Ȋڒ34azqG['Ah՜cY>[ 2ԶdCg;A*`*76<iH1}̄S)%o [a~qhh/ZCgy)C_ n !D}[^*Ĵi2hpRihπ:| ~y@H6:׵P(DtLD9lIc$p xBhz':-h`xJF4FsSocSD2"&K4- =la+(DX>u4:qE>xQii(O|Hvgfzldjުة: !!%=W|nKdf/ss|Z+A`n]gxk,s?fovsӈ9bSO$~XY-hEuLΑ@2sAܽˑWu-A_sQ GwRSk YTO^Iq̝VP rH"<%l $˧gCgp\0̀Q;qIR4yU[Sg%#kAU"YsU$;N—[b%nvp`"5w*}$pFCE>Fw [1QCPofqT ,Jj+lfu \Ai-h\ޢ<%QR]z̆GTxěsA*0tH*K?ir{sɔZi=)^Gs~=_1- X] rFvݞ 냕+:k~!'9.] udɒ{yKk9rTM{~Qb[TahS*{)KSg.iNŝ##=i&x  ӹ4<<.ۼ +`\[; #ť&64IxE/,tU- *˙վNp)|z8>r˘0J)";K`^ةђrIƏ (2'lП\ȃ'{CXZJBj;|Ž}z;Q籩 -I%ZY|zNZ_HTu[;lJ4G=n4 1NOӬkkYx'`C_˘YOsjlhA+ScTMm,.@;O GߔaIrTĶL|i:OPza_+7xFRYo!iq7k~:rtt%hz{| G|zʳon B8#rHO]VSWRJlHg74jr85iBQY}aX*c)ȷXj*ٱϤj'L?]d#Pl XGʎMT4^YlysIԈ 9\@ 6>7ݼo ȑcNڱ>ljh 0+SoAPkoc:tu, =Cں\ TsLYe6>UJ#d c<_+ F#v`O\+Q3ɿ2{ B<ӳ 6q@Ѧb iWem&b9)%eI7O4 I8-@36o ÌDSdSWeUANRҭu57*LI~D6+ J%-E͵ nL'&>sq&*"%~aוŲr2t ga3$˲͡lSèP M"sͦG8b efTdK TeOػ@Uz)PdcTąPǁ6^Lߔ\9tyV֡{DO@k wKD>A+V[4**-y?l[wTR=BxRL¤C"1\Kc3>+w;AWh!Ѻs{ڟ½#hUgk/aeg/ M3P(#҄g Ѭmo $Lu1ea 8FKʑk-?N-LGQ!Խ`"gULq6Ot#&^yYR.Ӛqirȹ0BI:0C2ِQ)TA2/]{/s9SwpzL97ewo3LY\A:'{V|abXME>f,S](iu3PGA+X:^N9$TBb9p9=s0i@*3P~#g cx9^fSΕ:k,7EIA"@HN`3>ېךbx[-jT(b 9tW:II WƵL2kp!BO ]@6ޛJu->Lؚ @@O5" ~.߈D.L DT dx 'f09_%3N ZR`Hǭ๞< W t~y:NhU؟, a4;9c4l2@h>yqC|?D*'-ӓ$ʧAAS/g!&2qA.@ְ &Go7]Dhre&UхP0HvRe) '#4gnu" K>W@^;KN+>q*nM4vnP3 Q,"{%Rr)&Oí N2F8M ۃS ͕޸V! TnSFD&UA2XN˿Ȍ:`6zbd+#c m}xaZţB̷Pfny1d֠'oXq蓟[&>}J?*ĪUl XۧߦP$WmqL (iʟ)sX<:F"seENRv.=@m>6? %EӷayL՛:Qlgt#hY'Mg)탰]'Kؖ qf ew>w%9QQ=.j3<ڀ'MMog\2X4c~cE~m#i\-۪ £Cmm)}1uHƓ[qLx&Rޛa_# N)Ў7b\ ٯAj/gD, z,%KE@g1 aVXHPA3fJ-8iik;Wq#47n9ŀ!ܦۍﴹO5`c6^jvww0Ɋ跿߃v ׍!ehC|HF+[ ̮ {=>x=>51_=01(ilO g:4ٱq&~|٧A謩GATq_ MeI)0f o#$mϜ-*56֔/-Ls"ۏ1* Bŷ3wTL4|ݽ2f\Ԩ(OLp]RNfev(h8*I6ᜡr`:®>&4Gw#!_tiR;x=&ѱO?/Zr mK씷>rF'Ao xM'4ChИ,01g6wd﴿Ҋ,]x/zCσ|=G1AY㇜aS6 x%ۏ] B_9bMM9;uQ\r+,,tr&zCɼw ,(&Ǫ^mt7s Q _ B|;S1SGzyJFYvawLKEWKgx2B}uf.UuQop(Mρd :gnyj㑱8dv PӬbѽԪE33S_,tEf$N`2 T_cBd垐2qAt`bhLLдv։vٜᖩUa*>[EGznX@z]7[Eб12؎DgfP5<`/D<1V]D1.fp(^|65!S„ݪNv/V0oxh^ס2qz\uٻwLbBbK ;gS[p=/8e:3~|-!'s3t _ nHcAPTy3Ċwc8Z(V|eƁ6̙c&Bʀ <YdΕ.37-r{Sp$Żh.\ѐpjrlp%iOJ 6N42`tI E֖.L1s_AZ+|8KߖY5lk]Yrk(HK F;xt#˞)kZ@~mE1l4zkyЁS;YI#zY # {Q%4h>phL\|16MiNL ]>DH.kQZ;j gM(^_ cƭL2.\.!.gjOM4{ O?[H_s;o;G~_qe*eaR3Cw|b*'oe2~ck{% CDV1\?,05A wh.OP_ࣕW~ [Z4߯{ UZ=̵p]{ % /GۧUR4NRuP3f6b9i|ypCT1M%*i.HN(Jz2}w(E̽_3}XAP!=*J(gZ\6rk$ =,?ar:Ne.~8>8wMU[qH2hVqwz>MDK)QXV k7d{~u|*J'}?SS#ɧ?+^Yˎ_T,Ir?uϼv=6,ŐCݪso&Y[+n]uYwypIgێ9U@b+FlF5r*ԧ'!Zb '?(ˍ;/Ub:#̡K Zgj4Q#و`[69>uvźoC{̋+ңo|>&@'D_kV~o $ڑ!U \6ʱg%[/'$DVcx=G&QEq*I릠OU#nM9U"&~/4flόƝ3u:('I Ѥ(a{z05t#P'?oAJ䭓)A$~:$L3f\祼 O+ V8sM'٩0cd}oٖ.ÇLh,M^E1eCEA _?N͊d2d=E[o=jQ`-g[rMqN+=aNPC%ɒxzڂؑ[,|e RTJ+FDjr=r7!.ك=CD} +ҭSa!U.*D5;^ y#S{ j#+GbSP ЈVh^b߭^c'm_>JƲ?6+Ίʚ4b;.Ÿ'C'E G<h FEؚWHrSBΗR<Řr+%A 4# څb1Y3L:ZOq\*Xb&{n\dξq BN(l3/e #侾Hi~t(!|j˂&ݠ0 Œ*-K'#LgUݛ< ;Lb-%JgYAу<\G#o&vS@Ub!%!  m/RۡG#|$WJv  FggN9a>D*Mw?V7(P4vA9P4mhT+'WADo۴tTZ"βI9a[8#:Qe"h?Ŗ;f2.ohakpY,TWy@1wIn􃘹n`yṗͫKu)`TDASŬrHbhOӗkT|=l˽z_#.26b*SEXGrSǿywwSd [sո! vClZ24GSWb7ϻj.xF2cP z͟PVʌcŮ5$Y1lz%?ij,TP7Q]JG$ˀVV#AK[50,V[K(`ekb0#gduqK)H7-CV?j:i.[$eJ#9ǗyOg][U u WPkXoRJ"" 'Ӡ[3eE4{V9}wnn* YPyMڃdsVFIJz ,z,sDA,Ì"h 0pV&4ZyC,hvd?+hɺ A󇔑_ًVLqAZz@T0> 3C,x!xBݎU6%bI <]NAE~1,kP,$aM)=k%f(KBآ; ԇA0oD@ѢAU5IZ閩RYh$ Z{|:_.,xoO2K򩰳p" s#2HѦ,CVYV ْ4R7yJ ۿ tfGO :X{HߢkNC*þp {8.~vہw)#5a6)Z%5l~^]1WpW‚^ 0e$#pڲ6F\供Ұ4+~~0U۱q9i/CလJҷfz_9o }± BE _bk20'݈*nOaQ8g \"E^DdԬ 1m3һ."S S/Ƽ/"Çzk7_{i7ҫPW4lqc+ E& g#7x '^+闉ԲH }Q#jɊP(y1Lfwx4ފ>k & dט;uQcT\C_{n?ubg+/+8xD GRN+W~/x5@%Z mg~spkkA(+J]gzo;5V[ D=AeUC$p7ʳM"Mo֪kԦʐUv+9y맫΍ԅ{Mr'ݠʔ=C:17",i)cAkW;q^k/1zӓuTwͲљS7~)AWڢp Ub2YenJyVd >UrZo7{s^۟!.H7 J$Ʊ74{%7?`w;fO4}z6)\)Ő.r@l' 6ºvbI;/Z5ՠk%32ZxcA .}7%)$ {E5Py-%&`oEPԋEpZUt- ǜ>7MEC4 7,hD39BR!@0ß7kp> nrz(MJE%׊ ?\= W$)O^;lڊD [杺~ 踈nx;t0,^5sw(SĆ'(Zdp ܱ`T Y(ԾsvTP eL]&|-sJq^WDKMӆHT/~»Ϻ)5ii H\lk!c,9|WY/fmq}r78ijN`P#$@P+l$^^*aXcX %T(gK٤j4%غ3Ü*v[E9?DsuϪM mf4U\<+eU<?@2sd(r6@jc(fFY#ʉ-Yw|)E4m3f[fv)ˡC0YdM]c}V{),E?.AAhТ]k#c,ooƀGiB\9no.@#<ƲDz_@T@$ki+h;\ץ $7fV;.%uI@u"B٫MhӜ󰔏E  [pJ̈<NJsou瑆G3+aAa(ˎu=h}F(`cEZ"Efd#7新~jWhj3k`&Ѻ޿ukOkhPM?KVeGdZҼ6XzDCY# wαTL0nBHʹuri=>V hKC[|%Oב 0bE׬АUzyXYd\!,Λ0/м0?G. OXX]$Vsm_[Ҽ7PpnRP6^$zECp姞/0:wŬֺ-6qk?P6EWq-<" 9j% =iU([w^"1)$Xb[^^AvM_>6IɃ́qv4rAn pζpo>.3Cb+ʓTiqΛR X~*Hz$Ot/K6(7 Yc_bxmMd*W_MJ*=VO֙pĨe D{0WAs~ڰ}0ú |2K&< _ 狠_Ɣnܯ40OU.C8,J;0|/q1+i UBh7 Ɖ߻'P5id?$ |[ϖ \٢|dʾ|b]i"큒>WOd" ?EwN(fKaZR)t-ON]`o[LGnA.Oy:ge Ԕ~ysnMR/;l c{t'hrAQ?deSR%AI UUĤ|W~cO-V=5ڏ4 G˓^ $p_zFҜq(:MC R }0jmƎLoS }(m(o!10mWOvVܬ*nyNdl`Fit˴O Fѝ~IξrFl܁}P[eMdJ/jNGND]Py:RT2-H;ԯ8xaX OnI6Xy kQw aۖ8'H8Qѽ7p1\f(CfErm#oC z*k3z[TE7pSOҖ>7.Z.ߦŤXyh6Rr|\ AFZ4Hgz@#? \o>0a ٯ <߰լg:sw')`˸M%وy\ 'hPn}KsUvc)tr2&l_FkٕUH]g?{pseš.HQ47dh.5BZy'7gv0wt+ "; R Xl!]`,QЍ p6u,UO>7P2DO1q)$T]N|4G1t`47i`W[ԉ1KƳS' LkQH:*S3.\xSq Nn.ugXM ^nÈh0" @c~s-uyzvM]=Dts~ f!}&Õ(ђlo JQu<%8Y-#Nx@^;C]Rra4>zboqΦ{?] I{_zq+V!rEs Kzs)b*Y+)WY%h73MReUv u8 B#X]ݒÏ^&HáY|iܟin^8=y}`Mqa2R!cZ!ʮ`k䜉ht* GTK\ ~J@^^XUACBS.M DV~Vp ko"4%Bw=tķ|- 9=Z-Ogf ?ײ;дB/kձr3i& JQ%X'd銺 D]w4fp&{od.yJtmH"c[ޯ?1: z)_]N R^g8zo+[ֵG [1HKdauPKR|Dի5cTGc\\{2n`oBFbOgA7@Ι[8ʑ d!Q:J^ifzḯ6E aoaG XAO? FN_ܽnttA:O% r2Ip<m?~2s e4|V ]Txst.oryh)P|9Mz/HoquBc-܈mmfs2!8pRGaK"JYM!CIQݷn)LO&\ba 5{<#0`mkcFCoN9UbeA< O /9E@3+ l:}TtC$ӯW/֍y,q?P,w(YM[2 kE6hyLxn@3(Ca,i>]ʀjtxb~kH艠_C!A` |sCa*ԣkwLTIVMLF\t]m+J;/^EwS x~BFzx3v6=J<'o. /l HCDS ] K$OQ #3Z'YO<% 4}ѥvXTF[j>"s^ )A&6q,Z1%ۋ y_UŧeBk+]AJGQ *7:udoc]sS{R}rˮa*6>JkƏw ?C3a⩋Eȏ |1i!NJ Qq !M%\mHU.S s>(0Pľ 4fWaAksҵׯU = *?4Kf<.8ڵE^qD@[VPݏW+aNCOuB1XmN=OAݬ-:k~\㩖wjiiܴ} {_Є Fha]"Pl꾟KqgSw“=?E/-?&M:vGF)M S4uhNuW\/\bL~c5(;e}d8Zږk ďos6+PpOB[ V,!qt?!L[YaL2+W<{ȿ:[@--4sSUJ\6%'݇ N̔vuVh@? ûՍ^T:b7X])iyAW \O^E*ɤ: bfaN-CH (XjZ|50Ӹ Rtd4թܽэۋ\JG4ṕL_#<;4k7&P;%@cK'@!@`~J탽A(ѷ 'bXХZGcLc3hR)E 1tp(.H8HQ >=NH'/yK$gzܽX|[FfGj=Kbjx`J642a}۸ 05ga#B! PAR~-PaeO4MՔrIQ Rfٜ]ݣLtmWo,OR0[m{`Ǽtp{Do sLIK̉/tNҖڡyͤ$G fLUꤒ%E-zRF˟*h0A?f{ݩ 5ٗ2QNܡj@ U%`d5n^ :Wl <ӓē z!"5N{+7l3!}L嵷k7wkIБmb/1ˮb*Pר%z5.ݪOgSR𫥁G!1Uc0hߵ`% fUo{EѐFr&ᣣH eص<B\P<ۋOl=@PfыDJ- ?* {e`4 .f"'K5T |g)BRt/ $i=gaC2=p'Em]X zUs0LmhtO["`X({ͩmzH^DCI8EzZ ]<}5tAqϔmz$ \;Un4ZD HX+6U8K*6y ~#O*נhq";_xE(9o`= Prpp@K¤w-#*s+5?I5 ,_] f3č(I ^4Pl~a)Z}&(5@ kzKŠ)خ)QuMJsP8ya`UZT 9Vd;t-4__}LeG^;"^ոDVͱkƻ#*2@6fM əb\Q[5$0FSz)/3t KG-?4B vX>Pf!"eOǭ^77vi: k*&Usa ATME$ɣhӼINzڜgMsv$X[a^O㓚 ̿cwpK0] =.#6 ` oVRsW  TupI; vB;S[Fj-UtHeM}0g[|ka\pskGvUa1^RqH؋Vѻ6qU~3ѷvˎbТsU_,ȝsGOO}%R#wKvp4u0ڞϩVܑoOa]dH#C [L:%FcٽKr=<3?X609nn& FH) CW23ī":6;S.]TJJj'2F(JPq\lw-aߟ7ize}‚I6zJ &#41Ɗ #;,vYj ÿj ]Nmq`yꏥ;WZIIP?GVAT;TN14PX #uVkNLG?)j輲fzԝϦ줂Ci-~}e%fHR=SQAj͒7>4 V1\ a[ Z]ny<휂Lmav~ba kT,}jQKG˜6+ta7mcB7H+T q-(J0AId+)R;͂%s980Ho׸[rCĢ&v@(轡LܣW5RI]mvZ0|âpez3 {-F{ItpհXI_i@يO(Up F`>:8>/8qWd57,bqs5><$'Xu:^YFޗ+4CT) #h R sݢJ]aP&%:kVM+KX펡zztDe\z5|9g+­0E0U^&YM7I3Lmr)in,>:-mC_q͒jG!ƃޢ)*t3= ^݈,ǃuk78g-IIBگnԚ-YJĽRN5r#]FRrC1oSEYVd=ϵ  ,/4YsA6}5qdpS?.)sGyxI=WY E'q,:rv O` tV{ M8R\ɲ ]Crf$% ۶Tm}Arf䎴 %IZ/ŔH $ VR$ n];mRNc&mٹ->1V~bZPtLY |K /-K\}럜+{Ջ)) ߵ3킓*ǘu̹NN> "J:'.JhIU~LLO bLkr/ $%s/8G0N ;cVתsTg]E!lFE2 ~F?\ Y_esb :GVQF0+:FӬ5w=p%Rx!mϱjZfy:JͲ^`e~rg#8UU{plTq@! Y@ W i/#L}/@=L3oqӊ2wV8/h@ z:sBαOב/+>r>qkNCaœHKux*Enar8nvt /m<1eS~Kw)E~'VcqV6)-?VPiN*ɵXHn߯xm ۭ khjwҩ+B->uOPN7Cx[PV(C2@zۨI2 )X3CsȩO7-X>C/@1Ng 8+ꁌdL6.T z=:D4=tYꬽpbAKQLS٬wC%?-XѣCIz_1|$ĜGg]W3N7e\W"xt.Y4,9@ U#@t\)BmʪǨ5}0A=^'OfS27Ϩ v:T? L-RvB5TnxG){_0tSzŻ3'duރ4 B&3񨚎&IJj5'_\#{q1K{e { lf_+g֥)4I}1EYg]FFb:ŬG 9~jQ_%pB{U.k룸R)DNXHvfNeсnܡ$k,+i"-d@ }1@\יk{Ku֡UjFnu2Z9e#}Nd3Ve: tbj+fT=ro#aWM \ lY|.`E 6ֿBu갧FThy cܦ-pY$a`i}3$|J٤K&.c'u6NfU35]2_7J8-yרoI-YJy)G,+9A"xX9ׂH`b+ 2zR  R F2R29;e@'Co-&(9 oyPvh1@-.l˰0C^$2װa }YE&Yi{=#jN)Ep°t?"lxQBLs M <45R3:sKFQG e ;+u]1B9K Da Eb U<~#~#iel3Bȑn W=ҴMk i(lz %Uk+2ۢ\7˙iX]%^ri7XG[> )̳.6j)"hhL)R p⭂Ѣ(#.9=h(fezAߞ~y.;IsS"`͌!?2*FAI3M\qM 'up B*l;TYMјYТ]k o:.:Գ"sÒp\[lT V9@@P-z꓀\jl@]EG`~cCck2μ 85*B6F;t7L:ÝL_߹v1SHN?A!ޞE+ >n4qS2MRZr2\/@Fni安Ό2 X i)v`[3F)څة>ď?ooh*LB'r3+ʲH҇6{+߽-"7VghǬѩS],O?'?d300F{Ƿbp&Y-jT;uIdF^y`vVa0}4|py9t7nz#ŁEpK =7S-fTX(.m'c !TFcC!6BDYI cC:/ڑgK5f^_}.kU Th c>p\ _7/]nW?eڦ$Å @c*ng]V0tŷK7`w_B? ӂLQ~RzZI<"de"S7WcAPu:Ҝg߈#7>3ynaZL$ľ FHSF:DED/u:In7=> j̓K?1݈}H'\X].lad,j Yw83`Zie ~F 䵏_b?o( dթ9E:3"!=UH|M0i.JЉtCe ^<Ԭ8l˯[$B~+,Ȥb0CMVؚF;w~w|4lKQʵF؝r򻫉Il(%i\L"9Bm [<2H^\j`GtO>:<)6|Ș_K:~i%Lt&V5- E'9NWld aB슅_hV]py~m=r,x řqU5MERFKi V@Y8"x S<z2 xnRfA{VcNR4V7css ?.vviʼ7GC%1]/qG2j;Ǔ4Mbp>iAW2)akB=&W9MX& #`gDELVؤ^$x LˑX5`/^'tܡ]\swBXκ.>&)ƞׄH}l y| +=Y s:*v|47~<{">T[ )܏jt PU/ ?bLB&t6DB'i v3_uAM’8'!V;m6 4Dܠ?2f*I4Gn )K3>L`)V0ʵNui7+:nl~10 wƘ q>>Lj&ݏ17]g `2VčmK{Cbd*.%] luZhڻu0{L/0e %S^4Q"-<1z)֑/i02j'jy i>e꡾2BdfKĀ~z2d#U۠LD74 $)Ek|m\bD@k8 W7/ weDf+תw_3JA=Z92ԽҪ"I -f^o)8Myp>~KG ӫduǞIoԏ yoFIUsqCtrHS\i#sfՆ8Y־ zT2F|"C !^S{6=B.y͙@"$=[V4bݿ{Y{ ˼Ji!W!5x}$t(]NDR_2;`}Aৎ܆Vb#!\lSDD#b&]1!CI1zzI6M񼤭+N49Ѫ4CˆCj[nIJķȽ'l>[Wx4jo'xd%}P?ӟ8+c谧;Fng/Gi_4:`[T?G[m+g3"j.d(.j<᳘xknx8J[?z;1^t @y{b ECO> y贱f_Jg,a;-I"X ϗu9PFy|v_dw+/N˩a*9,F;;8]Ga·A;'oX#S, ɳ}N L TE\M.?>Y<ѐic(m>VxO*@:s%5E-f- dkS W(kՈ]a={K׻ $GQ")!-3Q߫#"|yDV,lPpmmq-"\ͯ5ѻRC1x ]9zh$ĩlygD`if[m^.2SZ>i7@}S}]f ~SsLU칷V 芾|9PIm5p3‡Hn.DaXQg#` d,JpbwGlSjk@z) à ;?cCm g ْČ\YWNXͤ٨R{%mEЈ$ 뜗c:ZĴ={ V%+Bll>6XFYr*$P s;tt5[!&ˁ} hϠ @ ޢ3efnL`SI+詝⠽k1уw$$`d0mQܧ0k-75O"3cPܷmu5*ss1G )dm҈>RKu绨‹~V8RD$yyf98Me/6\ htv.Qe5YiżS9[D|w =9kF!;9'ퟬu(cofH0һ(FdxB0 ǀخ2$$2dKsU!D A6DƓ,>Y[*65&/@O‹WtpH*Nlry<}LȮ"2-GYg^fyZ:T. L՚R&OESfF5z_lD{+4*].c\t8d监NҹF,4ȍN 5m{v\aP`bWd~}JP[XzX4ള]I骷c}\Վ=jKxHn!e4L6>w Cvv zJFi86[-IGL"N)j3:,d7D,,?L%YdsSq+oֵĘF= -LOP hcsa5c+Yޕ滯IcƱK^G; !f:M9!Q8G1nEu )VRqlㅱ#n0giw:%ecpě1ݒ]WNP@wEcl%B2ZtZEӇ1@qٓuyڎ 3V* <Y['G.>62| S)L!+[Ca54^*Ea\[99W"c]7yQCTCp! 3 G0FYyJN´E b3DLw<@0O6]wI$WjrA7D{mFWgr0T-4yc'j,zÜO"=.E.$mԞGӏ3pą9R釞fs -a"O`.DrSu,T"2:GwN/#S*AP}}Ulq(_kPyqՐ.N.>-sN6l8wFj8y(< 8vKRnu'BY+&.ƞ/6ঔGR^6Qz{{"#{B{fGE1allwA$j-6YX[!0 yKt鏈"k4W)6>OlڭOiM~E(Fe*Aѓ! ; e>Q3cVXTqJ*/x1I ?u(#Csr*v!q#C!#)5jw@jǯ֒Ԧ}Hcd̕-%WON V;=/1$WL瓺3f J}lqukWAMNE5O@"}&,kt$ln2RK^VC/'e:?Es?&up$'z])Uْ6dȞʡ\n2]"b;,.괻PTK3z,SKUĵ^ Q*A'*'fj}`\B]\."Z,6,Y`B)әp.Ա܉cATi[pB ]|Է_c%Uv,rS.~MRxԵ^&U7欬߃ y1ɌD!$r1dv{gH~)`OfTNC2z~9<~Wx0n5Zd*6'\RS}sWb[> w~*z _,MjdŶ@[Q7@"]T=>LCO_ l ׎|BvYQ;zRSgjo5kggVp'mi q?yP9_ܛx@2>7zw)#RRr,OY3f6vWQaBMQtRuZfhxˆzn)U+.Bo>Wx ijTl]vmSZ|!,L=qv=Vuȃ%\NryK!Lώb`'D 8Yp6T^%E'Kpr{tC ~{.|5Vy+p)iCv6" 㼤 mzz%?ں K!װe-RX^D! QG3)(ЏN:e7y8ɓv3oz!9ZrH&YNUZS.t:`F"nYsSvkx++tCXfLV~Q( VC ؃G{:94WĂcO4H7D];θKK1FIwߩ9 %18~8:vz>o]=_X)5h9Q6A$]^ rzo7ΝWN4>Ό}:CR7s2j$se]ʜ\&7#ҕ! ]z?Q|25-u>{< A P$yRLiX$cBG30 |]Z{تe؂1X-^aqY*a;#4M Hce)SO)r:61jIq=, >Π} !4_5dݒ.y.딷S.))l 76׼/Œ`}\~9vp9Fitۗ]b/טV2_jm ̉! [ԍ,@UH8M.)s7vH]vB-;5."K_N+539W+h«c0z /ш5. |6剺Ӟ` 9ԏ.hT"CMh_b+M3=xBmD8 d(BjC"AדsRbIL,{8 I$ G{ḿ&ko6O_e!K~0MR܅̊xI'';^M)r I Z9 Xv~X}:lse/$l\%VfID6{Kɘ242Dx+5MdN\A{;c A *E(5zZLuxGȔZ]kNBڏ)xTDW$iIr&1# ;8bSQl_Xg}MHHo3!'柳 Z-efs[8g@bmn.u=QKmPP $qaH3eMߜ঒j4/i,?5 tqRX:G 7[h+kKq9Fw~bh J) {ݳUI7Id4;%{! i(vsd:ibeDm0`9E\6jn1W2$t%::uPUt M#wi1anBXN~uVD 1ֳ,&/}ED" ~jOWҋonP9wQͬWjY mGp%kLڴ7-27w 85OX|_:>3]&cP~(xs0Zƽi~FmPE;rnf$ \؋aYya|^|G:mvK0~m]$8wC!LF8V(`Ə%cP)]E,'m聾hJsow ο?Ny{f߾ޭ fxy658rHU4B(38.R1|s#-`&f$NͮL;m ƋXܝO/=KC Mݐ,e {ԏ_H#mGo?O*zˍֿ4B*nxhO"̜J3s± Q;;ꌀAGX8Uh;ny{Eʰy5{d]+unkX,GT"*P`=oH8U毳N Oskx}KZI {cIImx=].eg* T-yS3>T|}1qvӹob>XA>SS0МX(;I]Y^48AD 1iОXM"$J=`$k̛<+>Ɯs-HHLXygGD`w b+!ʱ8!>0nkTڗbDk\c* v `d^2Nq,K>Zt3:(ĤaTk'e`%'9{۩vY"/WCk:"ݺe1*ecQT3Q-JKz Vm>7dkTLd@{U`$mIVmjhTyZ\rAb1wD4ɱD:m/a zô7QЏGaw0ϿAjHE h/s&vd?݈q*lj eT!=O wn6쬉#5{B͡}z AT>V671qbIk&u68~1t8\zsHNش uhb S0eY-unʳHDq:3z Nʴ7hV>1/e#e4w<:M)n+sв_h!ܨE d_2q~D:un00eXs׀}O Þ dV;` ̽U[[*ҸEBKHp]`sJJ\{cWsir*fE~/ՃS`4gKء2PqHPVG qv)rZDŽI5pܩ6wA_9+FLw,-/[pJʡo|$k85V(*-+2/[0|.zIZ;p#\tmdc9Rmcٖ8C ]a`DXffa^:&qH9㟰D}U$ jcdEM V?M @NFiK%aʹ8L"'MhF-.+ 2N;uZHu`Ӧ?V|#Fn#k{Z"d xɑvW@iX{Z"̔N~Fޜ4HF+H\u&ib6jG/! kц`cUnFx [XcmGM=0 btkSe2щan>Gt ̤r}VjН 5xpZࠠlo ,Yק2}BC })=" (dV8|W]_|hJqI6韠N*,PޓTƎU%3` RIG9La]mv՗MI3Y<:(-SM. &u=x&:Vq{J2f|j(E+1j_Uv$&I= G{2CÔ7o\GF0uRpPRe]\Nrp$,BZF30`vjvxNojTuݍ#5 ΠGDzsW^-9w ΋:}dBc|HQճ¿_2/gɧ"k:*|=JuT& S `:S(q=LT\Jʈْ>jo*#%* F`$+-&i B&^Lts.5UHڿoS4=&fr JsV~O Q_5JM^t'11 ySj :K+&D<рZ10YE8IaMB|nT/+d7S~q7D撥gGi3T.3KJR}MDKx\u:XÍcl2u- #ڳL{z?Wfy"-nG:X?_ RJv TԜQƮ]YEyQȸAoG|2!yHxH+~8-`Npfr&vB&; `3(տ˟m?ݗLܬ" L6UCnٸEӥlÁp T\Q;\ZG)rG~ 862|fظ(n>8?֐3aTo˒p,!oiGIO hn M 40:ߝEyxnI`Ю<7jkxX|WbCBq5Z7Wפl et})C .+A_GU2 7074laLΧ!dr%6m093W.q~HUlR@L$"$OMnjCw9IZsB^pՠ&1aG.bO 议Ѝ#qqhI֟gL[=ЏF?;V@mE e$͢p㓓$AY)Ǝ58UxVߏgs9يٚl*zI($f3D.ȤԚ=3vsHBs0ٹ[sݙ@Vx']>b*7)'+*˅ Xu U'v5 ӶVUϚX6me4]] inPUsmzCcOw8/}I'QbZ>62UK\s21V\wXikVvLȢOpgzI^ZOLZ'إGa1ƽi簞JͫfrB]WcOp͉P7z /ScA#vpe(B ;Juiik<>[xЉSt ν^!~BYq 4E@"nc5 $2g"#Vj퇏*yC.K#LP]55]> <9:+9>C6M6k@_b煏(pڎI[v踖GP@gq/zpKio#"a:8m!w~D*@4J[BDqQ%q+W,"F0r'Trufa B˝nzVKZg>D-<6IR%D.z뽨o$֭xYGݟY6[~ӓ+(o-7RGgJw} +@jZ#j70 <?Zn5c\TQռGW,Iο=DH8k] R*%#4c:Pݣxk]eM2imء KD` o[UWYt K#0C*]G2BeNu\l` .ހo+HtԭlhC5(k5CD1@`XX(A5;WKaOU2.a@V;+Qg)=jvCU_3m30 BN+ 5IOA*oF\X Y7VT!YP7>«ZaQGZ n1q. 9tYb@p~v_+7TcΆZۖ;2 U}3\mkkќ Lak4 =JǾI'Q$ S_αF >"ou|_h_!2VWos2Ħ6-NMrUڪ#K¬*ݍ,bnǻ249Ø97!Bֺ|۫P4 kyH&? G J*o$uaD!AˎQ,\NSlA#R$zgύ |]AHn?AYq.M:^Gu$pKQQYg k/iM."60xj=r5cߎi6h_WRΆ2F mKwpvU'ԑ'P}j¼HR?qޕR%FZUYz܉85qdLڇ@zv k-Ԛzu4I5ϙ@0S۝ѤS " Z& Hp[DIW?%Vpy"n NS媅PF1B<)]MpFxι`l?Cp"0v! h"3:}Sjѐ:t:&|7,&fB}E*+pdFlҾvpaX,V"։ǹ)\&%Tssp4U8Q/ _gVFo ,J z9jO '\9ݼk8=T?}45n0D;S/ު8m5/h#O2cQ{O`I1|vOk>S,[m]fG;60Sٖ8" Pex!w^a/FZLOD݃URi &u^8˿j@z]O9b:#BIZ, pCjLǬ0Ul.(=oA+sF_A" .wD-LE`)-) Fg˻x/P𓤨zr>%?JFz(3sa? ݝڢ ,"cz1haAcrl7$RG_gq[og '<8TӃ[b]읝@Z2C 4ZS h7?ָǗ >jV )?:"|MY9WKw5o,ȍV1L\[E&F S?kT(8sH$\8ILQkɭ+e ;cs wzyZژrLjK9A/)ڇ#pN 0b+wxWV( 9&̱p"Lit⒨'ܲ }0aڵEsI06?'gTB񑕯 -̜QŘ<@VЋvV^+@/o1p ρ>,e7yiGX]&:{<6cԾzB{cn=)5t6XvE8o /!kpsC'0/E,np's.}7Z?'{S-^"::g]mB=Cدn-5Cķ>'2<^ g=}DG<q ӑrGwɡEv W4 @` x%P*d]W??M^ L@A_ a 󊭱sd:M *ͺcek|R=oq~!ݎU%v즅]<64jMD ))$K^ VљKǶ KS8 (nY?+\}ZO*wB $%ĸ걥0gt|Cɨo₧xY fUNC"H3W.bJqe)G'se6U3CJupO*$JmN\~E8.LE)ع0re$7^̍!LNrgJ89Sn*n60^KXlGx+gyQll04X!X z}`ռMB oT,!N4fѡuR""U6gFQ!g!UD* Kĺߗ_ZCf=8 ޗ|Ip);lҾkWwnf'}wʐEMXBB&EBy}hFe<52JODY6"&`L I:ثd<&i׶EB`?0)9/cMReJ3e" WK܀BMx G"!З@H`yP9$=uoA#BtZ%T?U.2>p7쮵7 =nH7R!5$]@=C1ފ}8ϛV'c ZuΟ&d/^)Vl8v>%S%VW-#.wm /r7*9h3-4E Jˊoj6^M$  7QtPtb1@SFSHŵ{iD}9I@qOhe'#9|6aRĹs#ۗ@ai_硣!/|Ne-L3x>[HJyq8'`"/,g(VOEZ@ER[2]aw0˼- ;pqҤ>}NS90jF2_9ʖ 732c9;vΰpCr`r#Q.Хx»+zwI՞Ζ8qnept"2k=Y2cc%(? 6$N2١;It6'++ٶsG*Lă,K;Eb>؍KmA!{pGl .-#0S oQ|!FajWnx *jVO_Dr6.1 .{ \=G](}w s?.25{$ފGK{<|jcqJXamEPNxLxqRZRUdPμwny V,? ]LDLn)^]̲"fk`)P9aP_(nsktRA<ⷂkh^!1[GPlu5|VKiԕu]s W{:Qk Smhx{Ň<-lc#F/}zDE_i5 ~D5[!a]p}P*A3]] 7¹gsFzA}&E]0D_FʖJo;| n3ʱ&)7Ll