aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/isdn
diff options
context:
space:
mode:
authorKarsten Keil <kkeil@suse.de>2008-07-27 01:54:58 +0200
committerKarsten Keil <kkeil@suse.de>2008-07-27 01:54:58 +0200
commit1b2b03f8e514e4f68e293846ba511a948b80243c (patch)
tree5ffb07d532afca95170ea0615bb74af78b0d0483 /drivers/isdn
parent04578dd330f1ec6bc9c4233833bee0d0ca73ff09 (diff)
downloadmrst-s0i3-test-1b2b03f8e514e4f68e293846ba511a948b80243c.tar.gz
mrst-s0i3-test-1b2b03f8e514e4f68e293846ba511a948b80243c.tar.xz
mrst-s0i3-test-1b2b03f8e514e4f68e293846ba511a948b80243c.zip
Add mISDN core files
Add mISDN core files Signed-off-by: Karsten Keil <kkeil@suse.de>
Diffstat (limited to 'drivers/isdn')
-rw-r--r--drivers/isdn/mISDN/Kconfig9
-rw-r--r--drivers/isdn/mISDN/Makefile9
-rw-r--r--drivers/isdn/mISDN/core.c244
-rw-r--r--drivers/isdn/mISDN/core.h77
-rw-r--r--drivers/isdn/mISDN/fsm.c183
-rw-r--r--drivers/isdn/mISDN/fsm.h67
-rw-r--r--drivers/isdn/mISDN/hwchannel.c365
-rw-r--r--drivers/isdn/mISDN/layer1.c403
-rw-r--r--drivers/isdn/mISDN/layer1.h26
-rw-r--r--drivers/isdn/mISDN/layer2.c2216
-rw-r--r--drivers/isdn/mISDN/layer2.h140
-rw-r--r--drivers/isdn/mISDN/socket.c781
-rw-r--r--drivers/isdn/mISDN/stack.c674
-rw-r--r--drivers/isdn/mISDN/tei.c1340
-rw-r--r--drivers/isdn/mISDN/timerdev.c301
15 files changed, 6835 insertions, 0 deletions
diff --git a/drivers/isdn/mISDN/Kconfig b/drivers/isdn/mISDN/Kconfig
new file mode 100644
index 00000000000..231bd0d0831
--- /dev/null
+++ b/drivers/isdn/mISDN/Kconfig
@@ -0,0 +1,9 @@
+#
+# modularer ISDN driver
+#
+
+menuconfig MISDN
+ tristate "Modular ISDN driver"
+ help
+ Enable support for the modular ISDN driver.
+
diff --git a/drivers/isdn/mISDN/Makefile b/drivers/isdn/mISDN/Makefile
new file mode 100644
index 00000000000..87c563d3361
--- /dev/null
+++ b/drivers/isdn/mISDN/Makefile
@@ -0,0 +1,9 @@
+#
+# Makefile for the modular ISDN driver
+#
+
+obj-$(CONFIG_MISDN) += mISDN_core.o
+
+# multi objects
+
+mISDN_core-objs := core.o fsm.o socket.o hwchannel.o stack.o layer1.o layer2.o tei.o timerdev.o
diff --git a/drivers/isdn/mISDN/core.c b/drivers/isdn/mISDN/core.c
new file mode 100644
index 00000000000..33068177b7c
--- /dev/null
+++ b/drivers/isdn/mISDN/core.c
@@ -0,0 +1,244 @@
+/*
+ * Copyright 2008 by Karsten Keil <kkeil@novell.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * 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.
+ *
+ */
+
+#include <linux/types.h>
+#include <linux/stddef.h>
+#include <linux/module.h>
+#include <linux/spinlock.h>
+#include <linux/mISDNif.h>
+#include "core.h"
+
+static u_int debug;
+
+MODULE_AUTHOR("Karsten Keil");
+MODULE_LICENSE("GPL");
+module_param(debug, uint, S_IRUGO | S_IWUSR);
+
+static LIST_HEAD(devices);
+DEFINE_RWLOCK(device_lock);
+static u64 device_ids;
+#define MAX_DEVICE_ID 63
+
+static LIST_HEAD(Bprotocols);
+DEFINE_RWLOCK(bp_lock);
+
+struct mISDNdevice
+*get_mdevice(u_int id)
+{
+ struct mISDNdevice *dev;
+
+ read_lock(&device_lock);
+ list_for_each_entry(dev, &devices, D.list)
+ if (dev->id == id) {
+ read_unlock(&device_lock);
+ return dev;
+ }
+ read_unlock(&device_lock);
+ return NULL;
+}
+
+int
+get_mdevice_count(void)
+{
+ struct mISDNdevice *dev;
+ int cnt = 0;
+
+ read_lock(&device_lock);
+ list_for_each_entry(dev, &devices, D.list)
+ cnt++;
+ read_unlock(&device_lock);
+ return cnt;
+}
+
+static int
+get_free_devid(void)
+{
+ u_int i;
+
+ for (i = 0; i <= MAX_DEVICE_ID; i++)
+ if (!test_and_set_bit(i, (u_long *)&device_ids))
+ return i;
+ return -1;
+}
+
+int
+mISDN_register_device(struct mISDNdevice *dev, char *name)
+{
+ u_long flags;
+ int err;
+
+ dev->id = get_free_devid();
+ if (dev->id < 0)
+ return -EBUSY;
+ if (name && name[0])
+ strcpy(dev->name, name);
+ else
+ sprintf(dev->name, "mISDN%d", dev->id);
+ if (debug & DEBUG_CORE)
+ printk(KERN_DEBUG "mISDN_register %s %d\n",
+ dev->name, dev->id);
+ err = create_stack(dev);
+ if (err)
+ return err;
+ write_lock_irqsave(&device_lock, flags);
+ list_add_tail(&dev->D.list, &devices);
+ write_unlock_irqrestore(&device_lock, flags);
+ return 0;
+}
+EXPORT_SYMBOL(mISDN_register_device);
+
+void
+mISDN_unregister_device(struct mISDNdevice *dev) {
+ u_long flags;
+
+ if (debug & DEBUG_CORE)
+ printk(KERN_DEBUG "mISDN_unregister %s %d\n",
+ dev->name, dev->id);
+ write_lock_irqsave(&device_lock, flags);
+ list_del(&dev->D.list);
+ write_unlock_irqrestore(&device_lock, flags);
+ test_and_clear_bit(dev->id, (u_long *)&device_ids);
+ delete_stack(dev);
+}
+EXPORT_SYMBOL(mISDN_unregister_device);
+
+u_int
+get_all_Bprotocols(void)
+{
+ struct Bprotocol *bp;
+ u_int m = 0;
+
+ read_lock(&bp_lock);
+ list_for_each_entry(bp, &Bprotocols, list)
+ m |= bp->Bprotocols;
+ read_unlock(&bp_lock);
+ return m;
+}
+
+struct Bprotocol *
+get_Bprotocol4mask(u_int m)
+{
+ struct Bprotocol *bp;
+
+ read_lock(&bp_lock);
+ list_for_each_entry(bp, &Bprotocols, list)
+ if (bp->Bprotocols & m) {
+ read_unlock(&bp_lock);
+ return bp;
+ }
+ read_unlock(&bp_lock);
+ return NULL;
+}
+
+struct Bprotocol *
+get_Bprotocol4id(u_int id)
+{
+ u_int m;
+
+ if (id < ISDN_P_B_START || id > 63) {
+ printk(KERN_WARNING "%s id not in range %d\n",
+ __func__, id);
+ return NULL;
+ }
+ m = 1 << (id & ISDN_P_B_MASK);
+ return get_Bprotocol4mask(m);
+}
+
+int
+mISDN_register_Bprotocol(struct Bprotocol *bp)
+{
+ u_long flags;
+ struct Bprotocol *old;
+
+ if (debug & DEBUG_CORE)
+ printk(KERN_DEBUG "%s: %s/%x\n", __func__,
+ bp->name, bp->Bprotocols);
+ old = get_Bprotocol4mask(bp->Bprotocols);
+ if (old) {
+ printk(KERN_WARNING
+ "register duplicate protocol old %s/%x new %s/%x\n",
+ old->name, old->Bprotocols, bp->name, bp->Bprotocols);
+ return -EBUSY;
+ }
+ write_lock_irqsave(&bp_lock, flags);
+ list_add_tail(&bp->list, &Bprotocols);
+ write_unlock_irqrestore(&bp_lock, flags);
+ return 0;
+}
+EXPORT_SYMBOL(mISDN_register_Bprotocol);
+
+void
+mISDN_unregister_Bprotocol(struct Bprotocol *bp)
+{
+ u_long flags;
+
+ if (debug & DEBUG_CORE)
+ printk(KERN_DEBUG "%s: %s/%x\n", __func__, bp->name,
+ bp->Bprotocols);
+ write_lock_irqsave(&bp_lock, flags);
+ list_del(&bp->list);
+ write_unlock_irqrestore(&bp_lock, flags);
+}
+EXPORT_SYMBOL(mISDN_unregister_Bprotocol);
+
+int
+mISDNInit(void)
+{
+ int err;
+
+ printk(KERN_INFO "Modular ISDN core version %d.%d.%d\n",
+ MISDN_MAJOR_VERSION, MISDN_MINOR_VERSION, MISDN_RELEASE);
+ mISDN_initstack(&debug);
+ err = mISDN_inittimer(&debug);
+ if (err)
+ goto error;
+ err = l1_init(&debug);
+ if (err) {
+ mISDN_timer_cleanup();
+ goto error;
+ }
+ err = Isdnl2_Init(&debug);
+ if (err) {
+ mISDN_timer_cleanup();
+ l1_cleanup();
+ goto error;
+ }
+ err = misdn_sock_init(&debug);
+ if (err) {
+ mISDN_timer_cleanup();
+ l1_cleanup();
+ Isdnl2_cleanup();
+ }
+error:
+ return err;
+}
+
+void mISDN_cleanup(void)
+{
+ misdn_sock_cleanup();
+ mISDN_timer_cleanup();
+ l1_cleanup();
+ Isdnl2_cleanup();
+
+ if (!list_empty(&devices))
+ printk(KERN_ERR "%s devices still registered\n", __func__);
+
+ if (!list_empty(&Bprotocols))
+ printk(KERN_ERR "%s Bprotocols still registered\n", __func__);
+ printk(KERN_DEBUG "mISDNcore unloaded\n");
+}
+
+module_init(mISDNInit);
+module_exit(mISDN_cleanup);
+
diff --git a/drivers/isdn/mISDN/core.h b/drivers/isdn/mISDN/core.h
new file mode 100644
index 00000000000..7da7233b4c1
--- /dev/null
+++ b/drivers/isdn/mISDN/core.h
@@ -0,0 +1,77 @@
+/*
+ * Copyright 2008 by Karsten Keil <kkeil@novell.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * 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.
+ *
+ */
+
+#ifndef mISDN_CORE_H
+#define mISDN_CORE_H
+
+extern struct mISDNdevice *get_mdevice(u_int);
+extern int get_mdevice_count(void);
+
+/* stack status flag */
+#define mISDN_STACK_ACTION_MASK 0x0000ffff
+#define mISDN_STACK_COMMAND_MASK 0x000f0000
+#define mISDN_STACK_STATUS_MASK 0xfff00000
+/* action bits 0-15 */
+#define mISDN_STACK_WORK 0
+#define mISDN_STACK_SETUP 1
+#define mISDN_STACK_CLEARING 2
+#define mISDN_STACK_RESTART 3
+#define mISDN_STACK_WAKEUP 4
+#define mISDN_STACK_ABORT 15
+/* command bits 16-19 */
+#define mISDN_STACK_STOPPED 16
+#define mISDN_STACK_INIT 17
+#define mISDN_STACK_THREADSTART 18
+/* status bits 20-31 */
+#define mISDN_STACK_BCHANNEL 20
+#define mISDN_STACK_ACTIVE 29
+#define mISDN_STACK_RUNNING 30
+#define mISDN_STACK_KILLED 31
+
+
+/* manager options */
+#define MGR_OPT_USER 24
+#define MGR_OPT_NETWORK 25
+
+extern int connect_Bstack(struct mISDNdevice *, struct mISDNchannel *,
+ u_int, struct sockaddr_mISDN *);
+extern int connect_layer1(struct mISDNdevice *, struct mISDNchannel *,
+ u_int, struct sockaddr_mISDN *);
+extern int create_l2entity(struct mISDNdevice *, struct mISDNchannel *,
+ u_int, struct sockaddr_mISDN *);
+
+extern int create_stack(struct mISDNdevice *);
+extern int create_teimanager(struct mISDNdevice *);
+extern void delete_teimanager(struct mISDNchannel *);
+extern void delete_channel(struct mISDNchannel *);
+extern void delete_stack(struct mISDNdevice *);
+extern void mISDN_initstack(u_int *);
+extern int misdn_sock_init(u_int *);
+extern void misdn_sock_cleanup(void);
+extern void add_layer2(struct mISDNchannel *, struct mISDNstack *);
+extern void __add_layer2(struct mISDNchannel *, struct mISDNstack *);
+
+extern u_int get_all_Bprotocols(void);
+struct Bprotocol *get_Bprotocol4mask(u_int);
+struct Bprotocol *get_Bprotocol4id(u_int);
+
+extern int mISDN_inittimer(u_int *);
+extern void mISDN_timer_cleanup(void);
+
+extern int l1_init(u_int *);
+extern void l1_cleanup(void);
+extern int Isdnl2_Init(u_int *);
+extern void Isdnl2_cleanup(void);
+
+#endif
diff --git a/drivers/isdn/mISDN/fsm.c b/drivers/isdn/mISDN/fsm.c
new file mode 100644
index 00000000000..b5d6553f2dc
--- /dev/null
+++ b/drivers/isdn/mISDN/fsm.c
@@ -0,0 +1,183 @@
+/*
+ * finite state machine implementation
+ *
+ * Author Karsten Keil <kkeil@novell.com>
+ *
+ * Thanks to Jan den Ouden
+ * Fritz Elfert
+ * Copyright 2008 by Karsten Keil <kkeil@novell.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * 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.
+ *
+ */
+
+#include <linux/kernel.h>
+#include <linux/slab.h>
+#include <linux/module.h>
+#include <linux/string.h>
+#include "fsm.h"
+
+#define FSM_TIMER_DEBUG 0
+
+void
+mISDN_FsmNew(struct Fsm *fsm,
+ struct FsmNode *fnlist, int fncount)
+{
+ int i;
+
+ fsm->jumpmatrix = kzalloc(sizeof(FSMFNPTR) * fsm->state_count *
+ fsm->event_count, GFP_KERNEL);
+
+ for (i = 0; i < fncount; i++)
+ if ((fnlist[i].state >= fsm->state_count) ||
+ (fnlist[i].event >= fsm->event_count)) {
+ printk(KERN_ERR
+ "mISDN_FsmNew Error: %d st(%ld/%ld) ev(%ld/%ld)\n",
+ i, (long)fnlist[i].state, (long)fsm->state_count,
+ (long)fnlist[i].event, (long)fsm->event_count);
+ } else
+ fsm->jumpmatrix[fsm->state_count * fnlist[i].event +
+ fnlist[i].state] = (FSMFNPTR) fnlist[i].routine;
+}
+EXPORT_SYMBOL(mISDN_FsmNew);
+
+void
+mISDN_FsmFree(struct Fsm *fsm)
+{
+ kfree((void *) fsm->jumpmatrix);
+}
+EXPORT_SYMBOL(mISDN_FsmFree);
+
+int
+mISDN_FsmEvent(struct FsmInst *fi, int event, void *arg)
+{
+ FSMFNPTR r;
+
+ if ((fi->state >= fi->fsm->state_count) ||
+ (event >= fi->fsm->event_count)) {
+ printk(KERN_ERR
+ "mISDN_FsmEvent Error st(%ld/%ld) ev(%d/%ld)\n",
+ (long)fi->state, (long)fi->fsm->state_count, event,
+ (long)fi->fsm->event_count);
+ return 1;
+ }
+ r = fi->fsm->jumpmatrix[fi->fsm->state_count * event + fi->state];
+ if (r) {
+ if (fi->debug)
+ fi->printdebug(fi, "State %s Event %s",
+ fi->fsm->strState[fi->state],
+ fi->fsm->strEvent[event]);
+ r(fi, event, arg);
+ return 0;
+ } else {
+ if (fi->debug)
+ fi->printdebug(fi, "State %s Event %s no action",
+ fi->fsm->strState[fi->state],
+ fi->fsm->strEvent[event]);
+ return 1;
+ }
+}
+EXPORT_SYMBOL(mISDN_FsmEvent);
+
+void
+mISDN_FsmChangeState(struct FsmInst *fi, int newstate)
+{
+ fi->state = newstate;
+ if (fi->debug)
+ fi->printdebug(fi, "ChangeState %s",
+ fi->fsm->strState[newstate]);
+}
+EXPORT_SYMBOL(mISDN_FsmChangeState);
+
+static void
+FsmExpireTimer(struct FsmTimer *ft)
+{
+#if FSM_TIMER_DEBUG
+ if (ft->fi->debug)
+ ft->fi->printdebug(ft->fi, "FsmExpireTimer %lx", (long) ft);
+#endif
+ mISDN_FsmEvent(ft->fi, ft->event, ft->arg);
+}
+
+void
+mISDN_FsmInitTimer(struct FsmInst *fi, struct FsmTimer *ft)
+{
+ ft->fi = fi;
+ ft->tl.function = (void *) FsmExpireTimer;
+ ft->tl.data = (long) ft;
+#if FSM_TIMER_DEBUG
+ if (ft->fi->debug)
+ ft->fi->printdebug(ft->fi, "mISDN_FsmInitTimer %lx", (long) ft);
+#endif
+ init_timer(&ft->tl);
+}
+EXPORT_SYMBOL(mISDN_FsmInitTimer);
+
+void
+mISDN_FsmDelTimer(struct FsmTimer *ft, int where)
+{
+#if FSM_TIMER_DEBUG
+ if (ft->fi->debug)
+ ft->fi->printdebug(ft->fi, "mISDN_FsmDelTimer %lx %d",
+ (long) ft, where);
+#endif
+ del_timer(&ft->tl);
+}
+EXPORT_SYMBOL(mISDN_FsmDelTimer);
+
+int
+mISDN_FsmAddTimer(struct FsmTimer *ft,
+ int millisec, int event, void *arg, int where)
+{
+
+#if FSM_TIMER_DEBUG
+ if (ft->fi->debug)
+ ft->fi->printdebug(ft->fi, "mISDN_FsmAddTimer %lx %d %d",
+ (long) ft, millisec, where);
+#endif
+
+ if (timer_pending(&ft->tl)) {
+ if (ft->fi->debug) {
+ printk(KERN_WARNING
+ "mISDN_FsmAddTimer: timer already active!\n");
+ ft->fi->printdebug(ft->fi,
+ "mISDN_FsmAddTimer already active!");
+ }
+ return -1;
+ }
+ init_timer(&ft->tl);
+ ft->event = event;
+ ft->arg = arg;
+ ft->tl.expires = jiffies + (millisec * HZ) / 1000;
+ add_timer(&ft->tl);
+ return 0;
+}
+EXPORT_SYMBOL(mISDN_FsmAddTimer);
+
+void
+mISDN_FsmRestartTimer(struct FsmTimer *ft,
+ int millisec, int event, void *arg, int where)
+{
+
+#if FSM_TIMER_DEBUG
+ if (ft->fi->debug)
+ ft->fi->printdebug(ft->fi, "mISDN_FsmRestartTimer %lx %d %d",
+ (long) ft, millisec, where);
+#endif
+
+ if (timer_pending(&ft->tl))
+ del_timer(&ft->tl);
+ init_timer(&ft->tl);
+ ft->event = event;
+ ft->arg = arg;
+ ft->tl.expires = jiffies + (millisec * HZ) / 1000;
+ add_timer(&ft->tl);
+}
+EXPORT_SYMBOL(mISDN_FsmRestartTimer);
diff --git a/drivers/isdn/mISDN/fsm.h b/drivers/isdn/mISDN/fsm.h
new file mode 100644
index 00000000000..928f5be192c
--- /dev/null
+++ b/drivers/isdn/mISDN/fsm.h
@@ -0,0 +1,67 @@
+/*
+ *
+ * Author Karsten Keil <kkeil@novell.com>
+ *
+ * Thanks to Jan den Ouden
+ * Fritz Elfert
+ * Copyright 2008 by Karsten Keil <kkeil@novell.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * 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.
+ *
+ */
+
+#ifndef _MISDN_FSM_H
+#define _MISDN_FSM_H
+
+#include <linux/timer.h>
+
+/* Statemachine */
+
+struct FsmInst;
+
+typedef void (*FSMFNPTR)(struct FsmInst *, int, void *);
+
+struct Fsm {
+ FSMFNPTR *jumpmatrix;
+ int state_count, event_count;
+ char **strEvent, **strState;
+};
+
+struct FsmInst {
+ struct Fsm *fsm;
+ int state;
+ int debug;
+ void *userdata;
+ int userint;
+ void (*printdebug) (struct FsmInst *, char *, ...);
+};
+
+struct FsmNode {
+ int state, event;
+ void (*routine) (struct FsmInst *, int, void *);
+};
+
+struct FsmTimer {
+ struct FsmInst *fi;
+ struct timer_list tl;
+ int event;
+ void *arg;
+};
+
+extern void mISDN_FsmNew(struct Fsm *, struct FsmNode *, int);
+extern void mISDN_FsmFree(struct Fsm *);
+extern int mISDN_FsmEvent(struct FsmInst *, int , void *);
+extern void mISDN_FsmChangeState(struct FsmInst *, int);
+extern void mISDN_FsmInitTimer(struct FsmInst *, struct FsmTimer *);
+extern int mISDN_FsmAddTimer(struct FsmTimer *, int, int, void *, int);
+extern void mISDN_FsmRestartTimer(struct FsmTimer *, int, int, void *, int);
+extern void mISDN_FsmDelTimer(struct FsmTimer *, int);
+
+#endif
diff --git a/drivers/isdn/mISDN/hwchannel.c b/drivers/isdn/mISDN/hwchannel.c
new file mode 100644
index 00000000000..2596fba4e61
--- /dev/null
+++ b/drivers/isdn/mISDN/hwchannel.c
@@ -0,0 +1,365 @@
+/*
+ *
+ * Author Karsten Keil <kkeil@novell.com>
+ *
+ * Copyright 2008 by Karsten Keil <kkeil@novell.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * 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.
+ *
+ */
+
+#include <linux/module.h>
+#include <linux/mISDNhw.h>
+
+static void
+dchannel_bh(struct work_struct *ws)
+{
+ struct dchannel *dch = container_of(ws, struct dchannel, workq);
+ struct sk_buff *skb;
+ int err;
+
+ if (test_and_clear_bit(FLG_RECVQUEUE, &dch->Flags)) {
+ while ((skb = skb_dequeue(&dch->rqueue))) {
+ if (likely(dch->dev.D.peer)) {
+ err = dch->dev.D.recv(dch->dev.D.peer, skb);
+ if (err)
+ dev_kfree_skb(skb);
+ } else
+ dev_kfree_skb(skb);
+ }
+ }
+ if (test_and_clear_bit(FLG_PHCHANGE, &dch->Flags)) {
+ if (dch->phfunc)
+ dch->phfunc(dch);
+ }
+}
+
+static void
+bchannel_bh(struct work_struct *ws)
+{
+ struct bchannel *bch = container_of(ws, struct bchannel, workq);
+ struct sk_buff *skb;
+ int err;
+
+ if (test_and_clear_bit(FLG_RECVQUEUE, &bch->Flags)) {
+ while ((skb = skb_dequeue(&bch->rqueue))) {
+ if (bch->rcount >= 64)
+ printk(KERN_WARNING "B-channel %p receive "
+ "queue if full, but empties...\n", bch);
+ bch->rcount--;
+ if (likely(bch->ch.peer)) {
+ err = bch->ch.recv(bch->ch.peer, skb);
+ if (err)
+ dev_kfree_skb(skb);
+ } else
+ dev_kfree_skb(skb);
+ }
+ }
+}
+
+int
+mISDN_initdchannel(struct dchannel *ch, int maxlen, void *phf)
+{
+ test_and_set_bit(FLG_HDLC, &ch->Flags);
+ ch->maxlen = maxlen;
+ ch->hw = NULL;
+ ch->rx_skb = NULL;
+ ch->tx_skb = NULL;
+ ch->tx_idx = 0;
+ ch->phfunc = phf;
+ skb_queue_head_init(&ch->squeue);
+ skb_queue_head_init(&ch->rqueue);
+ INIT_LIST_HEAD(&ch->dev.bchannels);
+ INIT_WORK(&ch->workq, dchannel_bh);
+ return 0;
+}
+EXPORT_SYMBOL(mISDN_initdchannel);
+
+int
+mISDN_initbchannel(struct bchannel *ch, int maxlen)
+{
+ ch->Flags = 0;
+ ch->maxlen = maxlen;
+ ch->hw = NULL;
+ ch->rx_skb = NULL;
+ ch->tx_skb = NULL;
+ ch->tx_idx = 0;
+ skb_queue_head_init(&ch->rqueue);
+ ch->rcount = 0;
+ ch->next_skb = NULL;
+ INIT_WORK(&ch->workq, bchannel_bh);
+ return 0;
+}
+EXPORT_SYMBOL(mISDN_initbchannel);
+
+int
+mISDN_freedchannel(struct dchannel *ch)
+{
+ if (ch->tx_skb) {
+ dev_kfree_skb(ch->tx_skb);
+ ch->tx_skb = NULL;
+ }
+ if (ch->rx_skb) {
+ dev_kfree_skb(ch->rx_skb);
+ ch->rx_skb = NULL;
+ }
+ skb_queue_purge(&ch->squeue);
+ skb_queue_purge(&ch->rqueue);
+ flush_scheduled_work();
+ return 0;
+}
+EXPORT_SYMBOL(mISDN_freedchannel);
+
+int
+mISDN_freebchannel(struct bchannel *ch)
+{
+ if (ch->tx_skb) {
+ dev_kfree_skb(ch->tx_skb);
+ ch->tx_skb = NULL;
+ }
+ if (ch->rx_skb) {
+ dev_kfree_skb(ch->rx_skb);
+ ch->rx_skb = NULL;
+ }
+ if (ch->next_skb) {
+ dev_kfree_skb(ch->next_skb);
+ ch->next_skb = NULL;
+ }
+ skb_queue_purge(&ch->rqueue);
+ ch->rcount = 0;
+ flush_scheduled_work();
+ return 0;
+}
+EXPORT_SYMBOL(mISDN_freebchannel);
+
+static inline u_int
+get_sapi_tei(u_char *p)
+{
+ u_int sapi, tei;
+
+ sapi = *p >> 2;
+ tei = p[1] >> 1;
+ return sapi | (tei << 8);
+}
+
+void
+recv_Dchannel(struct dchannel *dch)
+{
+ struct mISDNhead *hh;
+
+ if (dch->rx_skb->len < 2) { /* at least 2 for sapi / tei */
+ dev_kfree_skb(dch->rx_skb);
+ dch->rx_skb = NULL;
+ return;
+ }
+ hh = mISDN_HEAD_P(dch->rx_skb);
+ hh->prim = PH_DATA_IND;
+ hh->id = get_sapi_tei(dch->rx_skb->data);
+ skb_queue_tail(&dch->rqueue, dch->rx_skb);
+ dch->rx_skb = NULL;
+ schedule_event(dch, FLG_RECVQUEUE);
+}
+EXPORT_SYMBOL(recv_Dchannel);
+
+void
+recv_Bchannel(struct bchannel *bch)
+{
+ struct mISDNhead *hh;
+
+ hh = mISDN_HEAD_P(bch->rx_skb);
+ hh->prim = PH_DATA_IND;
+ hh->id = MISDN_ID_ANY;
+ if (bch->rcount >= 64) {
+ dev_kfree_skb(bch->rx_skb);
+ bch->rx_skb = NULL;
+ return;
+ }
+ bch->rcount++;
+ skb_queue_tail(&bch->rqueue, bch->rx_skb);
+ bch->rx_skb = NULL;
+ schedule_event(bch, FLG_RECVQUEUE);
+}
+EXPORT_SYMBOL(recv_Bchannel);
+
+void
+recv_Dchannel_skb(struct dchannel *dch, struct sk_buff *skb)
+{
+ skb_queue_tail(&dch->rqueue, skb);
+ schedule_event(dch, FLG_RECVQUEUE);
+}
+EXPORT_SYMBOL(recv_Dchannel_skb);
+
+void
+recv_Bchannel_skb(struct bchannel *bch, struct sk_buff *skb)
+{
+ if (bch->rcount >= 64) {
+ dev_kfree_skb(skb);
+ return;
+ }
+ bch->rcount++;
+ skb_queue_tail(&bch->rqueue, skb);
+ schedule_event(bch, FLG_RECVQUEUE);
+}
+EXPORT_SYMBOL(recv_Bchannel_skb);
+
+static void
+confirm_Dsend(struct dchannel *dch)
+{
+ struct sk_buff *skb;
+
+ skb = _alloc_mISDN_skb(PH_DATA_CNF, mISDN_HEAD_ID(dch->tx_skb),
+ 0, NULL, GFP_ATOMIC);
+ if (!skb) {
+ printk(KERN_ERR "%s: no skb id %x\n", __func__,
+ mISDN_HEAD_ID(dch->tx_skb));
+ return;
+ }
+ skb_queue_tail(&dch->rqueue, skb);
+ schedule_event(dch, FLG_RECVQUEUE);
+}
+
+int
+get_next_dframe(struct dchannel *dch)
+{
+ dch->tx_idx = 0;
+ dch->tx_skb = skb_dequeue(&dch->squeue);
+ if (dch->tx_skb) {
+ confirm_Dsend(dch);
+ return 1;
+ }
+ dch->tx_skb = NULL;
+ test_and_clear_bit(FLG_TX_BUSY, &dch->Flags);
+ return 0;
+}
+EXPORT_SYMBOL(get_next_dframe);
+
+void
+confirm_Bsend(struct bchannel *bch)
+{
+ struct sk_buff *skb;
+
+ if (bch->rcount >= 64)
+ return;
+ skb = _alloc_mISDN_skb(PH_DATA_CNF, mISDN_HEAD_ID(bch->tx_skb),
+ 0, NULL, GFP_ATOMIC);
+ if (!skb) {
+ printk(KERN_ERR "%s: no skb id %x\n", __func__,
+ mISDN_HEAD_ID(bch->tx_skb));
+ return;
+ }
+ bch->rcount++;
+ skb_queue_tail(&bch->rqueue, skb);
+ schedule_event(bch, FLG_RECVQUEUE);
+}
+EXPORT_SYMBOL(confirm_Bsend);
+
+int
+get_next_bframe(struct bchannel *bch)
+{
+ bch->tx_idx = 0;
+ if (test_bit(FLG_TX_NEXT, &bch->Flags)) {
+ bch->tx_skb = bch->next_skb;
+ if (bch->tx_skb) {
+ bch->next_skb = NULL;
+ test_and_clear_bit(FLG_TX_NEXT, &bch->Flags);
+ if (!test_bit(FLG_TRANSPARENT, &bch->Flags))
+ confirm_Bsend(bch); /* not for transparent */
+ return 1;
+ } else {
+ test_and_clear_bit(FLG_TX_NEXT, &bch->Flags);
+ printk(KERN_WARNING "B TX_NEXT without skb\n");
+ }
+ }
+ bch->tx_skb = NULL;
+ test_and_clear_bit(FLG_TX_BUSY, &bch->Flags);
+ return 0;
+}
+EXPORT_SYMBOL(get_next_bframe);
+
+void
+queue_ch_frame(struct mISDNchannel *ch, u_int pr, int id, struct sk_buff *skb)
+{
+ struct mISDNhead *hh;
+
+ if (!skb) {
+ _queue_data(ch, pr, id, 0, NULL, GFP_ATOMIC);
+ } else {
+ if (ch->peer) {
+ hh = mISDN_HEAD_P(skb);
+ hh->prim = pr;
+ hh->id = id;
+ if (!ch->recv(ch->peer, skb))
+ return;
+ }
+ dev_kfree_skb(skb);
+ }
+}
+EXPORT_SYMBOL(queue_ch_frame);
+
+int
+dchannel_senddata(struct dchannel *ch, struct sk_buff *skb)
+{
+ /* check oversize */
+ if (skb->len <= 0) {
+ printk(KERN_WARNING "%s: skb too small\n", __func__);
+ return -EINVAL;
+ }
+ if (skb->len > ch->maxlen) {
+ printk(KERN_WARNING "%s: skb too large(%d/%d)\n",
+ __func__, skb->len, ch->maxlen);
+ return -EINVAL;
+ }
+ /* HW lock must be obtained */
+ if (test_and_set_bit(FLG_TX_BUSY, &ch->Flags)) {
+ skb_queue_tail(&ch->squeue, skb);
+ return 0;
+ } else {
+ /* write to fifo */
+ ch->tx_skb = skb;
+ ch->tx_idx = 0;
+ return 1;
+ }
+}
+EXPORT_SYMBOL(dchannel_senddata);
+
+int
+bchannel_senddata(struct bchannel *ch, struct sk_buff *skb)
+{
+
+ /* check oversize */
+ if (skb->len <= 0) {
+ printk(KERN_WARNING "%s: skb too small\n", __func__);
+ return -EINVAL;
+ }
+ if (skb->len > ch->maxlen) {
+ printk(KERN_WARNING "%s: skb too large(%d/%d)\n",
+ __func__, skb->len, ch->maxlen);
+ return -EINVAL;
+ }
+ /* HW lock must be obtained */
+ /* check for pending next_skb */
+ if (ch->next_skb) {
+ printk(KERN_WARNING
+ "%s: next_skb exist ERROR (skb->len=%d next_skb->len=%d)\n",
+ __func__, skb->len, ch->next_skb->len);
+ return -EBUSY;
+ }
+ if (test_and_set_bit(FLG_TX_BUSY, &ch->Flags)) {
+ test_and_set_bit(FLG_TX_NEXT, &ch->Flags);
+ ch->next_skb = skb;
+ return 0;
+ } else {
+ /* write to fifo */
+ ch->tx_skb = skb;
+ ch->tx_idx = 0;
+ return 1;
+ }
+}
+EXPORT_SYMBOL(bchannel_senddata);
diff --git a/drivers/isdn/mISDN/layer1.c b/drivers/isdn/mISDN/layer1.c
new file mode 100644
index 00000000000..fced1a2755f
--- /dev/null
+++ b/drivers/isdn/mISDN/layer1.c
@@ -0,0 +1,403 @@
+/*
+ *
+ * Author Karsten Keil <kkeil@novell.com>
+ *
+ * Copyright 2008 by Karsten Keil <kkeil@novell.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * 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.
+ *
+ */
+
+
+#include <linux/module.h>
+#include <linux/mISDNhw.h>
+#include "layer1.h"
+#include "fsm.h"
+
+static int *debug;
+
+struct layer1 {
+ u_long Flags;
+ struct FsmInst l1m;
+ struct FsmTimer timer;
+ int delay;
+ struct dchannel *dch;
+ dchannel_l1callback *dcb;
+};
+
+#define TIMER3_VALUE 7000
+
+static
+struct Fsm l1fsm_s = {NULL, 0, 0, NULL, NULL};
+
+enum {
+ ST_L1_F2,
+ ST_L1_F3,
+ ST_L1_F4,
+ ST_L1_F5,
+ ST_L1_F6,
+ ST_L1_F7,
+ ST_L1_F8,
+};
+
+#define L1S_STATE_COUNT (ST_L1_F8+1)
+
+static char *strL1SState[] =
+{
+ "ST_L1_F2",
+ "ST_L1_F3",
+ "ST_L1_F4",
+ "ST_L1_F5",
+ "ST_L1_F6",
+ "ST_L1_F7",
+ "ST_L1_F8",
+};
+
+enum {
+ EV_PH_ACTIVATE,
+ EV_PH_DEACTIVATE,
+ EV_RESET_IND,
+ EV_DEACT_CNF,
+ EV_DEACT_IND,
+ EV_POWER_UP,
+ EV_ANYSIG_IND,
+ EV_INFO2_IND,
+ EV_INFO4_IND,
+ EV_TIMER_DEACT,
+ EV_TIMER_ACT,
+ EV_TIMER3,
+};
+
+#define L1_EVENT_COUNT (EV_TIMER3 + 1)
+
+static char *strL1Event[] =
+{
+ "EV_PH_ACTIVATE",
+ "EV_PH_DEACTIVATE",
+ "EV_RESET_IND",
+ "EV_DEACT_CNF",
+ "EV_DEACT_IND",
+ "EV_POWER_UP",
+ "EV_ANYSIG_IND",
+ "EV_INFO2_IND",
+ "EV_INFO4_IND",
+ "EV_TIMER_DEACT",
+ "EV_TIMER_ACT",
+ "EV_TIMER3",
+};
+
+static void
+l1m_debug(struct FsmInst *fi, char *fmt, ...)
+{
+ struct layer1 *l1 = fi->userdata;
+ va_list va;
+
+ va_start(va, fmt);
+ printk(KERN_DEBUG "%s: ", l1->dch->dev.name);
+ vprintk(fmt, va);
+ printk("\n");
+ va_end(va);
+}
+
+static void
+l1_reset(struct FsmInst *fi, int event, void *arg)
+{
+ mISDN_FsmChangeState(fi, ST_L1_F3);
+}
+
+static void
+l1_deact_cnf(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer1 *l1 = fi->userdata;
+
+ mISDN_FsmChangeState(fi, ST_L1_F3);
+ if (test_bit(FLG_L1_ACTIVATING, &l1->Flags))
+ l1->dcb(l1->dch, HW_POWERUP_REQ);
+}
+
+static void
+l1_deact_req_s(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer1 *l1 = fi->userdata;
+
+ mISDN_FsmChangeState(fi, ST_L1_F3);
+ mISDN_FsmRestartTimer(&l1->timer, 550, EV_TIMER_DEACT, NULL, 2);
+ test_and_set_bit(FLG_L1_DEACTTIMER, &l1->Flags);
+}
+
+static void
+l1_power_up_s(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer1 *l1 = fi->userdata;
+
+ if (test_bit(FLG_L1_ACTIVATING, &l1->Flags)) {
+ mISDN_FsmChangeState(fi, ST_L1_F4);
+ l1->dcb(l1->dch, INFO3_P8);
+ } else
+ mISDN_FsmChangeState(fi, ST_L1_F3);
+}
+
+static void
+l1_go_F5(struct FsmInst *fi, int event, void *arg)
+{
+ mISDN_FsmChangeState(fi, ST_L1_F5);
+}
+
+static void
+l1_go_F8(struct FsmInst *fi, int event, void *arg)
+{
+ mISDN_FsmChangeState(fi, ST_L1_F8);
+}
+
+static void
+l1_info2_ind(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer1 *l1 = fi->userdata;
+
+ mISDN_FsmChangeState(fi, ST_L1_F6);
+ l1->dcb(l1->dch, INFO3_P8);
+}
+
+static void
+l1_info4_ind(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer1 *l1 = fi->userdata;
+
+ mISDN_FsmChangeState(fi, ST_L1_F7);
+ l1->dcb(l1->dch, INFO3_P8);
+ if (test_and_clear_bit(FLG_L1_DEACTTIMER, &l1->Flags))
+ mISDN_FsmDelTimer(&l1->timer, 4);
+ if (!test_bit(FLG_L1_ACTIVATED, &l1->Flags)) {
+ if (test_and_clear_bit(FLG_L1_T3RUN, &l1->Flags))
+ mISDN_FsmDelTimer(&l1->timer, 3);
+ mISDN_FsmRestartTimer(&l1->timer, 110, EV_TIMER_ACT, NULL, 2);
+ test_and_set_bit(FLG_L1_ACTTIMER, &l1->Flags);
+ }
+}
+
+static void
+l1_timer3(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer1 *l1 = fi->userdata;
+
+ test_and_clear_bit(FLG_L1_T3RUN, &l1->Flags);
+ if (test_and_clear_bit(FLG_L1_ACTIVATING, &l1->Flags)) {
+ if (test_and_clear_bit(FLG_L1_DBLOCKED, &l1->Flags))
+ l1->dcb(l1->dch, HW_D_NOBLOCKED);
+ l1->dcb(l1->dch, PH_DEACTIVATE_IND);
+ }
+ if (l1->l1m.state != ST_L1_F6) {
+ mISDN_FsmChangeState(fi, ST_L1_F3);
+ l1->dcb(l1->dch, HW_POWERUP_REQ);
+ }
+}
+
+static void
+l1_timer_act(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer1 *l1 = fi->userdata;
+
+ test_and_clear_bit(FLG_L1_ACTTIMER, &l1->Flags);
+ test_and_set_bit(FLG_L1_ACTIVATED, &l1->Flags);
+ l1->dcb(l1->dch, PH_ACTIVATE_IND);
+}
+
+static void
+l1_timer_deact(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer1 *l1 = fi->userdata;
+
+ test_and_clear_bit(FLG_L1_DEACTTIMER, &l1->Flags);
+ test_and_clear_bit(FLG_L1_ACTIVATED, &l1->Flags);
+ if (test_and_clear_bit(FLG_L1_DBLOCKED, &l1->Flags))
+ l1->dcb(l1->dch, HW_D_NOBLOCKED);
+ l1->dcb(l1->dch, PH_DEACTIVATE_IND);
+ l1->dcb(l1->dch, HW_DEACT_REQ);
+}
+
+static void
+l1_activate_s(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer1 *l1 = fi->userdata;
+
+ mISDN_FsmRestartTimer(&l1->timer, TIMER3_VALUE, EV_TIMER3, NULL, 2);
+ test_and_set_bit(FLG_L1_T3RUN, &l1->Flags);
+ l1->dcb(l1->dch, HW_RESET_REQ);
+}
+
+static void
+l1_activate_no(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer1 *l1 = fi->userdata;
+
+ if ((!test_bit(FLG_L1_DEACTTIMER, &l1->Flags)) &&
+ (!test_bit(FLG_L1_T3RUN, &l1->Flags))) {
+ test_and_clear_bit(FLG_L1_ACTIVATING, &l1->Flags);
+ if (test_and_clear_bit(FLG_L1_DBLOCKED, &l1->Flags))
+ l1->dcb(l1->dch, HW_D_NOBLOCKED);
+ l1->dcb(l1->dch, PH_DEACTIVATE_IND);
+ }
+}
+
+static struct FsmNode L1SFnList[] =
+{
+ {ST_L1_F3, EV_PH_ACTIVATE, l1_activate_s},
+ {ST_L1_F6, EV_PH_ACTIVATE, l1_activate_no},
+ {ST_L1_F8, EV_PH_ACTIVATE, l1_activate_no},
+ {ST_L1_F3, EV_RESET_IND, l1_reset},
+ {ST_L1_F4, EV_RESET_IND, l1_reset},
+ {ST_L1_F5, EV_RESET_IND, l1_reset},
+ {ST_L1_F6, EV_RESET_IND, l1_reset},
+ {ST_L1_F7, EV_RESET_IND, l1_reset},
+ {ST_L1_F8, EV_RESET_IND, l1_reset},
+ {ST_L1_F3, EV_DEACT_CNF, l1_deact_cnf},
+ {ST_L1_F4, EV_DEACT_CNF, l1_deact_cnf},
+ {ST_L1_F5, EV_DEACT_CNF, l1_deact_cnf},
+ {ST_L1_F6, EV_DEACT_CNF, l1_deact_cnf},
+ {ST_L1_F7, EV_DEACT_CNF, l1_deact_cnf},
+ {ST_L1_F8, EV_DEACT_CNF, l1_deact_cnf},
+ {ST_L1_F6, EV_DEACT_IND, l1_deact_req_s},
+ {ST_L1_F7, EV_DEACT_IND, l1_deact_req_s},
+ {ST_L1_F8, EV_DEACT_IND, l1_deact_req_s},
+ {ST_L1_F3, EV_POWER_UP, l1_power_up_s},
+ {ST_L1_F4, EV_ANYSIG_IND, l1_go_F5},
+ {ST_L1_F6, EV_ANYSIG_IND, l1_go_F8},
+ {ST_L1_F7, EV_ANYSIG_IND, l1_go_F8},
+ {ST_L1_F3, EV_INFO2_IND, l1_info2_ind},
+ {ST_L1_F4, EV_INFO2_IND, l1_info2_ind},
+ {ST_L1_F5, EV_INFO2_IND, l1_info2_ind},
+ {ST_L1_F7, EV_INFO2_IND, l1_info2_ind},
+ {ST_L1_F8, EV_INFO2_IND, l1_info2_ind},
+ {ST_L1_F3, EV_INFO4_IND, l1_info4_ind},
+ {ST_L1_F4, EV_INFO4_IND, l1_info4_ind},
+ {ST_L1_F5, EV_INFO4_IND, l1_info4_ind},
+ {ST_L1_F6, EV_INFO4_IND, l1_info4_ind},
+ {ST_L1_F8, EV_INFO4_IND, l1_info4_ind},
+ {ST_L1_F3, EV_TIMER3, l1_timer3},
+ {ST_L1_F4, EV_TIMER3, l1_timer3},
+ {ST_L1_F5, EV_TIMER3, l1_timer3},
+ {ST_L1_F6, EV_TIMER3, l1_timer3},
+ {ST_L1_F8, EV_TIMER3, l1_timer3},
+ {ST_L1_F7, EV_TIMER_ACT, l1_timer_act},
+ {ST_L1_F3, EV_TIMER_DEACT, l1_timer_deact},
+ {ST_L1_F4, EV_TIMER_DEACT, l1_timer_deact},
+ {ST_L1_F5, EV_TIMER_DEACT, l1_timer_deact},
+ {ST_L1_F6, EV_TIMER_DEACT, l1_timer_deact},
+ {ST_L1_F7, EV_TIMER_DEACT, l1_timer_deact},
+ {ST_L1_F8, EV_TIMER_DEACT, l1_timer_deact},
+};
+
+static void
+release_l1(struct layer1 *l1) {
+ mISDN_FsmDelTimer(&l1->timer, 0);
+ if (l1->dch)
+ l1->dch->l1 = NULL;
+ module_put(THIS_MODULE);
+ kfree(l1);
+}
+
+int
+l1_event(struct layer1 *l1, u_int event)
+{
+ int err = 0;
+
+ if (!l1)
+ return -EINVAL;
+ switch (event) {
+ case HW_RESET_IND:
+ mISDN_FsmEvent(&l1->l1m, EV_RESET_IND, NULL);
+ break;
+ case HW_DEACT_IND:
+ mISDN_FsmEvent(&l1->l1m, EV_DEACT_IND, NULL);
+ break;
+ case HW_POWERUP_IND:
+ mISDN_FsmEvent(&l1->l1m, EV_POWER_UP, NULL);
+ break;
+ case HW_DEACT_CNF:
+ mISDN_FsmEvent(&l1->l1m, EV_DEACT_CNF, NULL);
+ break;
+ case ANYSIGNAL:
+ mISDN_FsmEvent(&l1->l1m, EV_ANYSIG_IND, NULL);
+ break;
+ case LOSTFRAMING:
+ mISDN_FsmEvent(&l1->l1m, EV_ANYSIG_IND, NULL);
+ break;
+ case INFO2:
+ mISDN_FsmEvent(&l1->l1m, EV_INFO2_IND, NULL);
+ break;
+ case INFO4_P8:
+ mISDN_FsmEvent(&l1->l1m, EV_INFO4_IND, NULL);
+ break;
+ case INFO4_P10:
+ mISDN_FsmEvent(&l1->l1m, EV_INFO4_IND, NULL);
+ break;
+ case PH_ACTIVATE_REQ:
+ if (test_bit(FLG_L1_ACTIVATED, &l1->Flags))
+ l1->dcb(l1->dch, PH_ACTIVATE_IND);
+ else {
+ test_and_set_bit(FLG_L1_ACTIVATING, &l1->Flags);
+ mISDN_FsmEvent(&l1->l1m, EV_PH_ACTIVATE, NULL);
+ }
+ break;
+ case CLOSE_CHANNEL:
+ release_l1(l1);
+ break;
+ default:
+ if (*debug & DEBUG_L1)
+ printk(KERN_DEBUG "%s %x unhandled\n",
+ __func__, event);
+ err = -EINVAL;
+ }
+ return err;
+}
+EXPORT_SYMBOL(l1_event);
+
+int
+create_l1(struct dchannel *dch, dchannel_l1callback *dcb) {
+ struct layer1 *nl1;
+
+ nl1 = kzalloc(sizeof(struct layer1), GFP_ATOMIC);
+ if (!nl1) {
+ printk(KERN_ERR "kmalloc struct layer1 failed\n");
+ return -ENOMEM;
+ }
+ nl1->l1m.fsm = &l1fsm_s;
+ nl1->l1m.state = ST_L1_F3;
+ nl1->Flags = 0;
+ nl1->l1m.debug = *debug & DEBUG_L1_FSM;
+ nl1->l1m.userdata = nl1;
+ nl1->l1m.userint = 0;
+ nl1->l1m.printdebug = l1m_debug;
+ nl1->dch = dch;
+ nl1->dcb = dcb;
+ mISDN_FsmInitTimer(&nl1->l1m, &nl1->timer);
+ __module_get(THIS_MODULE);
+ dch->l1 = nl1;
+ return 0;
+}
+EXPORT_SYMBOL(create_l1);
+
+int
+l1_init(u_int *deb)
+{
+ debug = deb;
+ l1fsm_s.state_count = L1S_STATE_COUNT;
+ l1fsm_s.event_count = L1_EVENT_COUNT;
+ l1fsm_s.strEvent = strL1Event;
+ l1fsm_s.strState = strL1SState;
+ mISDN_FsmNew(&l1fsm_s, L1SFnList, ARRAY_SIZE(L1SFnList));
+ return 0;
+}
+
+void
+l1_cleanup(void)
+{
+ mISDN_FsmFree(&l1fsm_s);
+}
diff --git a/drivers/isdn/mISDN/layer1.h b/drivers/isdn/mISDN/layer1.h
new file mode 100644
index 00000000000..9c8125fd89a
--- /dev/null
+++ b/drivers/isdn/mISDN/layer1.h
@@ -0,0 +1,26 @@
+/*
+ *
+ * Layer 1 defines
+ *
+ * Copyright 2008 by Karsten Keil <kkeil@novell.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * 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.
+ *
+ */
+
+#define FLG_L1_ACTIVATING 1
+#define FLG_L1_ACTIVATED 2
+#define FLG_L1_DEACTTIMER 3
+#define FLG_L1_ACTTIMER 4
+#define FLG_L1_T3RUN 5
+#define FLG_L1_PULL_REQ 6
+#define FLG_L1_UINT 7
+#define FLG_L1_DBLOCKED 8
+
diff --git a/drivers/isdn/mISDN/layer2.c b/drivers/isdn/mISDN/layer2.c
new file mode 100644
index 00000000000..f5ad888ee71
--- /dev/null
+++ b/drivers/isdn/mISDN/layer2.c
@@ -0,0 +1,2216 @@
+/*
+ *
+ * Author Karsten Keil <kkeil@novell.com>
+ *
+ * Copyright 2008 by Karsten Keil <kkeil@novell.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * 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.
+ *
+ */
+
+#include "fsm.h"
+#include "layer2.h"
+
+static int *debug;
+
+static
+struct Fsm l2fsm = {NULL, 0, 0, NULL, NULL};
+
+static char *strL2State[] =
+{
+ "ST_L2_1",
+ "ST_L2_2",
+ "ST_L2_3",
+ "ST_L2_4",
+ "ST_L2_5",
+ "ST_L2_6",
+ "ST_L2_7",
+ "ST_L2_8",
+};
+
+enum {
+ EV_L2_UI,
+ EV_L2_SABME,
+ EV_L2_DISC,
+ EV_L2_DM,
+ EV_L2_UA,
+ EV_L2_FRMR,
+ EV_L2_SUPER,
+ EV_L2_I,
+ EV_L2_DL_DATA,
+ EV_L2_ACK_PULL,
+ EV_L2_DL_UNITDATA,
+ EV_L2_DL_ESTABLISH_REQ,
+ EV_L2_DL_RELEASE_REQ,
+ EV_L2_MDL_ASSIGN,
+ EV_L2_MDL_REMOVE,
+ EV_L2_MDL_ERROR,
+ EV_L1_DEACTIVATE,
+ EV_L2_T200,
+ EV_L2_T203,
+ EV_L2_SET_OWN_BUSY,
+ EV_L2_CLEAR_OWN_BUSY,
+ EV_L2_FRAME_ERROR,
+};
+
+#define L2_EVENT_COUNT (EV_L2_FRAME_ERROR+1)
+
+static char *strL2Event[] =
+{
+ "EV_L2_UI",
+ "EV_L2_SABME",
+ "EV_L2_DISC",
+ "EV_L2_DM",
+ "EV_L2_UA",
+ "EV_L2_FRMR",
+ "EV_L2_SUPER",
+ "EV_L2_I",
+ "EV_L2_DL_DATA",
+ "EV_L2_ACK_PULL",
+ "EV_L2_DL_UNITDATA",
+ "EV_L2_DL_ESTABLISH_REQ",
+ "EV_L2_DL_RELEASE_REQ",
+ "EV_L2_MDL_ASSIGN",
+ "EV_L2_MDL_REMOVE",
+ "EV_L2_MDL_ERROR",
+ "EV_L1_DEACTIVATE",
+ "EV_L2_T200",
+ "EV_L2_T203",
+ "EV_L2_SET_OWN_BUSY",
+ "EV_L2_CLEAR_OWN_BUSY",
+ "EV_L2_FRAME_ERROR",
+};
+
+static void
+l2m_debug(struct FsmInst *fi, char *fmt, ...)
+{
+ struct layer2 *l2 = fi->userdata;
+ va_list va;
+
+ if (!(*debug & DEBUG_L2_FSM))
+ return;
+ va_start(va, fmt);
+ printk(KERN_DEBUG "l2 (tei %d): ", l2->tei);
+ vprintk(fmt, va);
+ printk("\n");
+ va_end(va);
+}
+
+inline u_int
+l2headersize(struct layer2 *l2, int ui)
+{
+ return ((test_bit(FLG_MOD128, &l2->flag) && (!ui)) ? 2 : 1) +
+ (test_bit(FLG_LAPD, &l2->flag) ? 2 : 1);
+}
+
+inline u_int
+l2addrsize(struct layer2 *l2)
+{
+ return test_bit(FLG_LAPD, &l2->flag) ? 2 : 1;
+}
+
+static u_int
+l2_newid(struct layer2 *l2)
+{
+ u_int id;
+
+ id = l2->next_id++;
+ if (id == 0x7fff)
+ l2->next_id = 1;
+ id <<= 16;
+ id |= l2->tei << 8;
+ id |= l2->sapi;
+ return id;
+}
+
+static void
+l2up(struct layer2 *l2, u_int prim, struct sk_buff *skb)
+{
+ int err;
+
+ if (!l2->up)
+ return;
+ mISDN_HEAD_PRIM(skb) = prim;
+ mISDN_HEAD_ID(skb) = (l2->ch.nr << 16) | l2->ch.addr;
+ err = l2->up->send(l2->up, skb);
+ if (err) {
+ printk(KERN_WARNING "%s: err=%d\n", __func__, err);
+ dev_kfree_skb(skb);
+ }
+}
+
+static void
+l2up_create(struct layer2 *l2, u_int prim, int len, void *arg)
+{
+ struct sk_buff *skb;
+ struct mISDNhead *hh;
+ int err;
+
+ if (!l2->up)
+ return;
+ skb = mI_alloc_skb(len, GFP_ATOMIC);
+ if (!skb)
+ return;
+ hh = mISDN_HEAD_P(skb);
+ hh->prim = prim;
+ hh->id = (l2->ch.nr << 16) | l2->ch.addr;
+ if (len)
+ memcpy(skb_put(skb, len), arg, len);
+ err = l2->up->send(l2->up, skb);
+ if (err) {
+ printk(KERN_WARNING "%s: err=%d\n", __func__, err);
+ dev_kfree_skb(skb);
+ }
+}
+
+static int
+l2down_skb(struct layer2 *l2, struct sk_buff *skb) {
+ int ret;
+
+ ret = l2->ch.recv(l2->ch.peer, skb);
+ if (ret && (*debug & DEBUG_L2_RECV))
+ printk(KERN_DEBUG "l2down_skb: ret(%d)\n", ret);
+ return ret;
+}
+
+static int
+l2down_raw(struct layer2 *l2, struct sk_buff *skb)
+{
+ struct mISDNhead *hh = mISDN_HEAD_P(skb);
+
+ if (hh->prim == PH_DATA_REQ) {
+ if (test_and_set_bit(FLG_L1_NOTREADY, &l2->flag)) {
+ skb_queue_tail(&l2->down_queue, skb);
+ return 0;
+ }
+ l2->down_id = mISDN_HEAD_ID(skb);
+ }
+ return l2down_skb(l2, skb);
+}
+
+static int
+l2down(struct layer2 *l2, u_int prim, u_int id, struct sk_buff *skb)
+{
+ struct mISDNhead *hh = mISDN_HEAD_P(skb);
+
+ hh->prim = prim;
+ hh->id = id;
+ return l2down_raw(l2, skb);
+}
+
+static int
+l2down_create(struct layer2 *l2, u_int prim, u_int id, int len, void *arg)
+{
+ struct sk_buff *skb;
+ int err;
+ struct mISDNhead *hh;
+
+ skb = mI_alloc_skb(len, GFP_ATOMIC);
+ if (!skb)
+ return -ENOMEM;
+ hh = mISDN_HEAD_P(skb);
+ hh->prim = prim;
+ hh->id = id;
+ if (len)
+ memcpy(skb_put(skb, len), arg, len);
+ err = l2down_raw(l2, skb);
+ if (err)
+ dev_kfree_skb(skb);
+ return err;
+}
+
+static int
+ph_data_confirm(struct layer2 *l2, struct mISDNhead *hh, struct sk_buff *skb) {
+ struct sk_buff *nskb = skb;
+ int ret = -EAGAIN;
+
+ if (test_bit(FLG_L1_NOTREADY, &l2->flag)) {
+ if (hh->id == l2->down_id) {
+ nskb = skb_dequeue(&l2->down_queue);
+ if (nskb) {
+ l2->down_id = mISDN_HEAD_ID(nskb);
+ if (l2down_skb(l2, nskb)) {
+ dev_kfree_skb(nskb);
+ l2->down_id = MISDN_ID_NONE;
+ }
+ } else
+ l2->down_id = MISDN_ID_NONE;
+ if (ret) {
+ dev_kfree_skb(skb);
+ ret = 0;
+ }
+ if (l2->down_id == MISDN_ID_NONE) {
+ test_and_clear_bit(FLG_L1_NOTREADY, &l2->flag);
+ mISDN_FsmEvent(&l2->l2m, EV_L2_ACK_PULL, NULL);
+ }
+ }
+ }
+ if (!test_and_set_bit(FLG_L1_NOTREADY, &l2->flag)) {
+ nskb = skb_dequeue(&l2->down_queue);
+ if (nskb) {
+ l2->down_id = mISDN_HEAD_ID(nskb);
+ if (l2down_skb(l2, nskb)) {
+ dev_kfree_skb(nskb);
+ l2->down_id = MISDN_ID_NONE;
+ test_and_clear_bit(FLG_L1_NOTREADY, &l2->flag);
+ }
+ } else
+ test_and_clear_bit(FLG_L1_NOTREADY, &l2->flag);
+ }
+ return ret;
+}
+
+static int
+l2mgr(struct layer2 *l2, u_int prim, void *arg) {
+ long c = (long)arg;
+
+ printk(KERN_WARNING
+ "l2mgr: addr:%x prim %x %c\n", l2->id, prim, (char)c);
+ if (test_bit(FLG_LAPD, &l2->flag) &&
+ !test_bit(FLG_FIXED_TEI, &l2->flag)) {
+ switch (c) {
+ case 'C':
+ case 'D':
+ case 'G':
+ case 'H':
+ l2_tei(l2, prim, (u_long)arg);
+ break;
+ }
+ }
+ return 0;
+}
+
+static void
+set_peer_busy(struct layer2 *l2) {
+ test_and_set_bit(FLG_PEER_BUSY, &l2->flag);
+ if (skb_queue_len(&l2->i_queue) || skb_queue_len(&l2->ui_queue))
+ test_and_set_bit(FLG_L2BLOCK, &l2->flag);
+}
+
+static void
+clear_peer_busy(struct layer2 *l2) {
+ if (test_and_clear_bit(FLG_PEER_BUSY, &l2->flag))
+ test_and_clear_bit(FLG_L2BLOCK, &l2->flag);
+}
+
+static void
+InitWin(struct layer2 *l2)
+{
+ int i;
+
+ for (i = 0; i < MAX_WINDOW; i++)
+ l2->windowar[i] = NULL;
+}
+
+static int
+freewin(struct layer2 *l2)
+{
+ int i, cnt = 0;
+
+ for (i = 0; i < MAX_WINDOW; i++) {
+ if (l2->windowar[i]) {
+ cnt++;
+ dev_kfree_skb(l2->windowar[i]);
+ l2->windowar[i] = NULL;
+ }
+ }
+ return cnt;
+}
+
+static void
+ReleaseWin(struct layer2 *l2)
+{
+ int cnt = freewin(l2);
+
+ if (cnt)
+ printk(KERN_WARNING
+ "isdnl2 freed %d skbuffs in release\n", cnt);
+}
+
+inline unsigned int
+cansend(struct layer2 *l2)
+{
+ unsigned int p1;
+
+ if (test_bit(FLG_MOD128, &l2->flag))
+ p1 = (l2->vs - l2->va) % 128;
+ else
+ p1 = (l2->vs - l2->va) % 8;
+ return (p1 < l2->window) && !test_bit(FLG_PEER_BUSY, &l2->flag);
+}
+
+inline void
+clear_exception(struct layer2 *l2)
+{
+ test_and_clear_bit(FLG_ACK_PEND, &l2->flag);
+ test_and_clear_bit(FLG_REJEXC, &l2->flag);
+ test_and_clear_bit(FLG_OWN_BUSY, &l2->flag);
+ clear_peer_busy(l2);
+}
+
+static int
+sethdraddr(struct layer2 *l2, u_char *header, int rsp)
+{
+ u_char *ptr = header;
+ int crbit = rsp;
+
+ if (test_bit(FLG_LAPD, &l2->flag)) {
+ if (test_bit(FLG_LAPD_NET, &l2->flag))
+ crbit = !crbit;
+ *ptr++ = (l2->sapi << 2) | (crbit ? 2 : 0);
+ *ptr++ = (l2->tei << 1) | 1;
+ return 2;
+ } else {
+ if (test_bit(FLG_ORIG, &l2->flag))
+ crbit = !crbit;
+ if (crbit)
+ *ptr++ = l2->addr.B;
+ else
+ *ptr++ = l2->addr.A;
+ return 1;
+ }
+}
+
+static inline void
+enqueue_super(struct layer2 *l2, struct sk_buff *skb)
+{
+ if (l2down(l2, PH_DATA_REQ, l2_newid(l2), skb))
+ dev_kfree_skb(skb);
+}
+
+static inline void
+enqueue_ui(struct layer2 *l2, struct sk_buff *skb)
+{
+ if (l2->tm)
+ l2_tei(l2, MDL_STATUS_UI_IND, 0);
+ if (l2down(l2, PH_DATA_REQ, l2_newid(l2), skb))
+ dev_kfree_skb(skb);
+}
+
+inline int
+IsUI(u_char *data)
+{
+ return (data[0] & 0xef) == UI;
+}
+
+inline int
+IsUA(u_char *data)
+{
+ return (data[0] & 0xef) == UA;
+}
+
+inline int
+IsDM(u_char *data)
+{
+ return (data[0] & 0xef) == DM;
+}
+
+inline int
+IsDISC(u_char *data)
+{
+ return (data[0] & 0xef) == DISC;
+}
+
+inline int
+IsRR(u_char *data, struct layer2 *l2)
+{
+ if (test_bit(FLG_MOD128, &l2->flag))
+ return data[0] == RR;
+ else
+ return (data[0] & 0xf) == 1;
+}
+
+inline int
+IsSFrame(u_char *data, struct layer2 *l2)
+{
+ register u_char d = *data;
+
+ if (!test_bit(FLG_MOD128, &l2->flag))
+ d &= 0xf;
+ return ((d & 0xf3) == 1) && ((d & 0x0c) != 0x0c);
+}
+
+inline int
+IsSABME(u_char *data, struct layer2 *l2)
+{
+ u_char d = data[0] & ~0x10;
+
+ return test_bit(FLG_MOD128, &l2->flag) ? d == SABME : d == SABM;
+}
+
+inline int
+IsREJ(u_char *data, struct layer2 *l2)
+{
+ return test_bit(FLG_MOD128, &l2->flag) ?
+ data[0] == REJ : (data[0] & 0xf) == REJ;
+}
+
+inline int
+IsFRMR(u_char *data)
+{
+ return (data[0] & 0xef) == FRMR;
+}
+
+inline int
+IsRNR(u_char *data, struct layer2 *l2)
+{
+ return test_bit(FLG_MOD128, &l2->flag) ?
+ data[0] == RNR : (data[0] & 0xf) == RNR;
+}
+
+int
+iframe_error(struct layer2 *l2, struct sk_buff *skb)
+{
+ u_int i;
+ int rsp = *skb->data & 0x2;
+
+ i = l2addrsize(l2) + (test_bit(FLG_MOD128, &l2->flag) ? 2 : 1);
+ if (test_bit(FLG_ORIG, &l2->flag))
+ rsp = !rsp;
+ if (rsp)
+ return 'L';
+ if (skb->len < i)
+ return 'N';
+ if ((skb->len - i) > l2->maxlen)
+ return 'O';
+ return 0;
+}
+
+int
+super_error(struct layer2 *l2, struct sk_buff *skb)
+{
+ if (skb->len != l2addrsize(l2) +
+ (test_bit(FLG_MOD128, &l2->flag) ? 2 : 1))
+ return 'N';
+ return 0;
+}
+
+int
+unnum_error(struct layer2 *l2, struct sk_buff *skb, int wantrsp)
+{
+ int rsp = (*skb->data & 0x2) >> 1;
+ if (test_bit(FLG_ORIG, &l2->flag))
+ rsp = !rsp;
+ if (rsp != wantrsp)
+ return 'L';
+ if (skb->len != l2addrsize(l2) + 1)
+ return 'N';
+ return 0;
+}
+
+int
+UI_error(struct layer2 *l2, struct sk_buff *skb)
+{
+ int rsp = *skb->data & 0x2;
+ if (test_bit(FLG_ORIG, &l2->flag))
+ rsp = !rsp;
+ if (rsp)
+ return 'L';
+ if (skb->len > l2->maxlen + l2addrsize(l2) + 1)
+ return 'O';
+ return 0;
+}
+
+int
+FRMR_error(struct layer2 *l2, struct sk_buff *skb)
+{
+ u_int headers = l2addrsize(l2) + 1;
+ u_char *datap = skb->data + headers;
+ int rsp = *skb->data & 0x2;
+
+ if (test_bit(FLG_ORIG, &l2->flag))
+ rsp = !rsp;
+ if (!rsp)
+ return 'L';
+ if (test_bit(FLG_MOD128, &l2->flag)) {
+ if (skb->len < headers + 5)
+ return 'N';
+ else if (*debug & DEBUG_L2)
+ l2m_debug(&l2->l2m,
+ "FRMR information %2x %2x %2x %2x %2x",
+ datap[0], datap[1], datap[2], datap[3], datap[4]);
+ } else {
+ if (skb->len < headers + 3)
+ return 'N';
+ else if (*debug & DEBUG_L2)
+ l2m_debug(&l2->l2m,
+ "FRMR information %2x %2x %2x",
+ datap[0], datap[1], datap[2]);
+ }
+ return 0;
+}
+
+static unsigned int
+legalnr(struct layer2 *l2, unsigned int nr)
+{
+ if (test_bit(FLG_MOD128, &l2->flag))
+ return ((nr - l2->va) % 128) <= ((l2->vs - l2->va) % 128);
+ else
+ return ((nr - l2->va) % 8) <= ((l2->vs - l2->va) % 8);
+}
+
+static void
+setva(struct layer2 *l2, unsigned int nr)
+{
+ struct sk_buff *skb;
+
+ while (l2->va != nr) {
+ l2->va++;
+ if (test_bit(FLG_MOD128, &l2->flag))
+ l2->va %= 128;
+ else
+ l2->va %= 8;
+ if (l2->windowar[l2->sow]) {
+ skb_trim(l2->windowar[l2->sow], 0);
+ skb_queue_tail(&l2->tmp_queue, l2->windowar[l2->sow]);
+ l2->windowar[l2->sow] = NULL;
+ }
+ l2->sow = (l2->sow + 1) % l2->window;
+ }
+ skb = skb_dequeue(&l2->tmp_queue);
+ while (skb) {
+ dev_kfree_skb(skb);
+ skb = skb_dequeue(&l2->tmp_queue);
+ }
+}
+
+static void
+send_uframe(struct layer2 *l2, struct sk_buff *skb, u_char cmd, u_char cr)
+{
+ u_char tmp[MAX_L2HEADER_LEN];
+ int i;
+
+ i = sethdraddr(l2, tmp, cr);
+ tmp[i++] = cmd;
+ if (skb)
+ skb_trim(skb, 0);
+ else {
+ skb = mI_alloc_skb(i, GFP_ATOMIC);
+ if (!skb) {
+ printk(KERN_WARNING "%s: can't alloc skbuff\n",
+ __func__);
+ return;
+ }
+ }
+ memcpy(skb_put(skb, i), tmp, i);
+ enqueue_super(l2, skb);
+}
+
+
+inline u_char
+get_PollFlag(struct layer2 *l2, struct sk_buff *skb)
+{
+ return skb->data[l2addrsize(l2)] & 0x10;
+}
+
+inline u_char
+get_PollFlagFree(struct layer2 *l2, struct sk_buff *skb)
+{
+ u_char PF;
+
+ PF = get_PollFlag(l2, skb);
+ dev_kfree_skb(skb);
+ return PF;
+}
+
+inline void
+start_t200(struct layer2 *l2, int i)
+{
+ mISDN_FsmAddTimer(&l2->t200, l2->T200, EV_L2_T200, NULL, i);
+ test_and_set_bit(FLG_T200_RUN, &l2->flag);
+}
+
+inline void
+restart_t200(struct layer2 *l2, int i)
+{
+ mISDN_FsmRestartTimer(&l2->t200, l2->T200, EV_L2_T200, NULL, i);
+ test_and_set_bit(FLG_T200_RUN, &l2->flag);
+}
+
+inline void
+stop_t200(struct layer2 *l2, int i)
+{
+ if (test_and_clear_bit(FLG_T200_RUN, &l2->flag))
+ mISDN_FsmDelTimer(&l2->t200, i);
+}
+
+inline void
+st5_dl_release_l2l3(struct layer2 *l2)
+{
+ int pr;
+
+ if (test_and_clear_bit(FLG_PEND_REL, &l2->flag))
+ pr = DL_RELEASE_CNF;
+ else
+ pr = DL_RELEASE_IND;
+ l2up_create(l2, pr, 0, NULL);
+}
+
+inline void
+lapb_dl_release_l2l3(struct layer2 *l2, int f)
+{
+ if (test_bit(FLG_LAPB, &l2->flag))
+ l2down_create(l2, PH_DEACTIVATE_REQ, l2_newid(l2), 0, NULL);
+ l2up_create(l2, f, 0, NULL);
+}
+
+static void
+establishlink(struct FsmInst *fi)
+{
+ struct layer2 *l2 = fi->userdata;
+ u_char cmd;
+
+ clear_exception(l2);
+ l2->rc = 0;
+ cmd = (test_bit(FLG_MOD128, &l2->flag) ? SABME : SABM) | 0x10;
+ send_uframe(l2, NULL, cmd, CMD);
+ mISDN_FsmDelTimer(&l2->t203, 1);
+ restart_t200(l2, 1);
+ test_and_clear_bit(FLG_PEND_REL, &l2->flag);
+ freewin(l2);
+ mISDN_FsmChangeState(fi, ST_L2_5);
+}
+
+static void
+l2_mdl_error_ua(struct FsmInst *fi, int event, void *arg)
+{
+ struct sk_buff *skb = arg;
+ struct layer2 *l2 = fi->userdata;
+
+ if (get_PollFlagFree(l2, skb))
+ l2mgr(l2, MDL_ERROR_IND, (void *) 'C');
+ else
+ l2mgr(l2, MDL_ERROR_IND, (void *) 'D');
+
+}
+
+static void
+l2_mdl_error_dm(struct FsmInst *fi, int event, void *arg)
+{
+ struct sk_buff *skb = arg;
+ struct layer2 *l2 = fi->userdata;
+
+ if (get_PollFlagFree(l2, skb))
+ l2mgr(l2, MDL_ERROR_IND, (void *) 'B');
+ else {
+ l2mgr(l2, MDL_ERROR_IND, (void *) 'E');
+ establishlink(fi);
+ test_and_clear_bit(FLG_L3_INIT, &l2->flag);
+ }
+}
+
+static void
+l2_st8_mdl_error_dm(struct FsmInst *fi, int event, void *arg)
+{
+ struct sk_buff *skb = arg;
+ struct layer2 *l2 = fi->userdata;
+
+ if (get_PollFlagFree(l2, skb))
+ l2mgr(l2, MDL_ERROR_IND, (void *) 'B');
+ else
+ l2mgr(l2, MDL_ERROR_IND, (void *) 'E');
+ establishlink(fi);
+ test_and_clear_bit(FLG_L3_INIT, &l2->flag);
+}
+
+static void
+l2_go_st3(struct FsmInst *fi, int event, void *arg)
+{
+ dev_kfree_skb((struct sk_buff *)arg);
+ mISDN_FsmChangeState(fi, ST_L2_3);
+}
+
+static void
+l2_mdl_assign(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+
+ mISDN_FsmChangeState(fi, ST_L2_3);
+ dev_kfree_skb((struct sk_buff *)arg);
+ l2_tei(l2, MDL_ASSIGN_IND, 0);
+}
+
+static void
+l2_queue_ui_assign(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+ struct sk_buff *skb = arg;
+
+ skb_queue_tail(&l2->ui_queue, skb);
+ mISDN_FsmChangeState(fi, ST_L2_2);
+ l2_tei(l2, MDL_ASSIGN_IND, 0);
+}
+
+static void
+l2_queue_ui(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+ struct sk_buff *skb = arg;
+
+ skb_queue_tail(&l2->ui_queue, skb);
+}
+
+static void
+tx_ui(struct layer2 *l2)
+{
+ struct sk_buff *skb;
+ u_char header[MAX_L2HEADER_LEN];
+ int i;
+
+ i = sethdraddr(l2, header, CMD);
+ if (test_bit(FLG_LAPD_NET, &l2->flag))
+ header[1] = 0xff; /* tei 127 */
+ header[i++] = UI;
+ while ((skb = skb_dequeue(&l2->ui_queue))) {
+ memcpy(skb_push(skb, i), header, i);
+ enqueue_ui(l2, skb);
+ }
+}
+
+static void
+l2_send_ui(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+ struct sk_buff *skb = arg;
+
+ skb_queue_tail(&l2->ui_queue, skb);
+ tx_ui(l2);
+}
+
+static void
+l2_got_ui(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+ struct sk_buff *skb = arg;
+
+ skb_pull(skb, l2headersize(l2, 1));
+/*
+ * in states 1-3 for broadcast
+ */
+
+ if (l2->tm)
+ l2_tei(l2, MDL_STATUS_UI_IND, 0);
+ l2up(l2, DL_UNITDATA_IND, skb);
+}
+
+static void
+l2_establish(struct FsmInst *fi, int event, void *arg)
+{
+ struct sk_buff *skb = arg;
+ struct layer2 *l2 = fi->userdata;
+
+ establishlink(fi);
+ test_and_set_bit(FLG_L3_INIT, &l2->flag);
+ dev_kfree_skb(skb);
+}
+
+static void
+l2_discard_i_setl3(struct FsmInst *fi, int event, void *arg)
+{
+ struct sk_buff *skb = arg;
+ struct layer2 *l2 = fi->userdata;
+
+ skb_queue_purge(&l2->i_queue);
+ test_and_set_bit(FLG_L3_INIT, &l2->flag);
+ test_and_clear_bit(FLG_PEND_REL, &l2->flag);
+ dev_kfree_skb(skb);
+}
+
+static void
+l2_l3_reestablish(struct FsmInst *fi, int event, void *arg)
+{
+ struct sk_buff *skb = arg;
+ struct layer2 *l2 = fi->userdata;
+
+ skb_queue_purge(&l2->i_queue);
+ establishlink(fi);
+ test_and_set_bit(FLG_L3_INIT, &l2->flag);
+ dev_kfree_skb(skb);
+}
+
+static void
+l2_release(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+ struct sk_buff *skb = arg;
+
+ skb_trim(skb, 0);
+ l2up(l2, DL_RELEASE_CNF, skb);
+}
+
+static void
+l2_pend_rel(struct FsmInst *fi, int event, void *arg)
+{
+ struct sk_buff *skb = arg;
+ struct layer2 *l2 = fi->userdata;
+
+ test_and_set_bit(FLG_PEND_REL, &l2->flag);
+ dev_kfree_skb(skb);
+}
+
+static void
+l2_disconnect(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+ struct sk_buff *skb = arg;
+
+ skb_queue_purge(&l2->i_queue);
+ freewin(l2);
+ mISDN_FsmChangeState(fi, ST_L2_6);
+ l2->rc = 0;
+ send_uframe(l2, NULL, DISC | 0x10, CMD);
+ mISDN_FsmDelTimer(&l2->t203, 1);
+ restart_t200(l2, 2);
+ if (skb)
+ dev_kfree_skb(skb);
+}
+
+static void
+l2_start_multi(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+ struct sk_buff *skb = arg;
+
+ l2->vs = 0;
+ l2->va = 0;
+ l2->vr = 0;
+ l2->sow = 0;
+ clear_exception(l2);
+ send_uframe(l2, NULL, UA | get_PollFlag(l2, skb), RSP);
+ mISDN_FsmChangeState(fi, ST_L2_7);
+ mISDN_FsmAddTimer(&l2->t203, l2->T203, EV_L2_T203, NULL, 3);
+ skb_trim(skb, 0);
+ l2up(l2, DL_ESTABLISH_IND, skb);
+ if (l2->tm)
+ l2_tei(l2, MDL_STATUS_UP_IND, 0);
+}
+
+static void
+l2_send_UA(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+ struct sk_buff *skb = arg;
+
+ send_uframe(l2, skb, UA | get_PollFlag(l2, skb), RSP);
+}
+
+static void
+l2_send_DM(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+ struct sk_buff *skb = arg;
+
+ send_uframe(l2, skb, DM | get_PollFlag(l2, skb), RSP);
+}
+
+static void
+l2_restart_multi(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+ struct sk_buff *skb = arg;
+ int est = 0;
+
+ send_uframe(l2, skb, UA | get_PollFlag(l2, skb), RSP);
+
+ l2mgr(l2, MDL_ERROR_IND, (void *) 'F');
+
+ if (l2->vs != l2->va) {
+ skb_queue_purge(&l2->i_queue);
+ est = 1;
+ }
+
+ clear_exception(l2);
+ l2->vs = 0;
+ l2->va = 0;
+ l2->vr = 0;
+ l2->sow = 0;
+ mISDN_FsmChangeState(fi, ST_L2_7);
+ stop_t200(l2, 3);
+ mISDN_FsmRestartTimer(&l2->t203, l2->T203, EV_L2_T203, NULL, 3);
+
+ if (est)
+ l2up_create(l2, DL_ESTABLISH_IND, 0, NULL);
+/* mISDN_queue_data(&l2->inst, l2->inst.id | MSG_BROADCAST,
+ * MGR_SHORTSTATUS | INDICATION, SSTATUS_L2_ESTABLISHED,
+ * 0, NULL, 0);
+ */
+ if (skb_queue_len(&l2->i_queue) && cansend(l2))
+ mISDN_FsmEvent(fi, EV_L2_ACK_PULL, NULL);
+}
+
+static void
+l2_stop_multi(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+ struct sk_buff *skb = arg;
+
+ mISDN_FsmChangeState(fi, ST_L2_4);
+ mISDN_FsmDelTimer(&l2->t203, 3);
+ stop_t200(l2, 4);
+
+ send_uframe(l2, skb, UA | get_PollFlag(l2, skb), RSP);
+ skb_queue_purge(&l2->i_queue);
+ freewin(l2);
+ lapb_dl_release_l2l3(l2, DL_RELEASE_IND);
+ if (l2->tm)
+ l2_tei(l2, MDL_STATUS_DOWN_IND, 0);
+}
+
+static void
+l2_connected(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+ struct sk_buff *skb = arg;
+ int pr = -1;
+
+ if (!get_PollFlag(l2, skb)) {
+ l2_mdl_error_ua(fi, event, arg);
+ return;
+ }
+ dev_kfree_skb(skb);
+ if (test_and_clear_bit(FLG_PEND_REL, &l2->flag))
+ l2_disconnect(fi, event, NULL);
+ if (test_and_clear_bit(FLG_L3_INIT, &l2->flag)) {
+ pr = DL_ESTABLISH_CNF;
+ } else if (l2->vs != l2->va) {
+ skb_queue_purge(&l2->i_queue);
+ pr = DL_ESTABLISH_IND;
+ }
+ stop_t200(l2, 5);
+ l2->vr = 0;
+ l2->vs = 0;
+ l2->va = 0;
+ l2->sow = 0;
+ mISDN_FsmChangeState(fi, ST_L2_7);
+ mISDN_FsmAddTimer(&l2->t203, l2->T203, EV_L2_T203, NULL, 4);
+ if (pr != -1)
+ l2up_create(l2, pr, 0, NULL);
+
+ if (skb_queue_len(&l2->i_queue) && cansend(l2))
+ mISDN_FsmEvent(fi, EV_L2_ACK_PULL, NULL);
+
+ if (l2->tm)
+ l2_tei(l2, MDL_STATUS_UP_IND, 0);
+}
+
+static void
+l2_released(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+ struct sk_buff *skb = arg;
+
+ if (!get_PollFlag(l2, skb)) {
+ l2_mdl_error_ua(fi, event, arg);
+ return;
+ }
+ dev_kfree_skb(skb);
+ stop_t200(l2, 6);
+ lapb_dl_release_l2l3(l2, DL_RELEASE_CNF);
+ mISDN_FsmChangeState(fi, ST_L2_4);
+ if (l2->tm)
+ l2_tei(l2, MDL_STATUS_DOWN_IND, 0);
+}
+
+static void
+l2_reestablish(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+ struct sk_buff *skb = arg;
+
+ if (!get_PollFlagFree(l2, skb)) {
+ establishlink(fi);
+ test_and_set_bit(FLG_L3_INIT, &l2->flag);
+ }
+}
+
+static void
+l2_st5_dm_release(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+ struct sk_buff *skb = arg;
+
+ if (get_PollFlagFree(l2, skb)) {
+ stop_t200(l2, 7);
+ if (!test_bit(FLG_L3_INIT, &l2->flag))
+ skb_queue_purge(&l2->i_queue);
+ if (test_bit(FLG_LAPB, &l2->flag))
+ l2down_create(l2, PH_DEACTIVATE_REQ,
+ l2_newid(l2), 0, NULL);
+ st5_dl_release_l2l3(l2);
+ mISDN_FsmChangeState(fi, ST_L2_4);
+ if (l2->tm)
+ l2_tei(l2, MDL_STATUS_DOWN_IND, 0);
+ }
+}
+
+static void
+l2_st6_dm_release(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+ struct sk_buff *skb = arg;
+
+ if (get_PollFlagFree(l2, skb)) {
+ stop_t200(l2, 8);
+ lapb_dl_release_l2l3(l2, DL_RELEASE_CNF);
+ mISDN_FsmChangeState(fi, ST_L2_4);
+ if (l2->tm)
+ l2_tei(l2, MDL_STATUS_DOWN_IND, 0);
+ }
+}
+
+void
+enquiry_cr(struct layer2 *l2, u_char typ, u_char cr, u_char pf)
+{
+ struct sk_buff *skb;
+ u_char tmp[MAX_L2HEADER_LEN];
+ int i;
+
+ i = sethdraddr(l2, tmp, cr);
+ if (test_bit(FLG_MOD128, &l2->flag)) {
+ tmp[i++] = typ;
+ tmp[i++] = (l2->vr << 1) | (pf ? 1 : 0);
+ } else
+ tmp[i++] = (l2->vr << 5) | typ | (pf ? 0x10 : 0);
+ skb = mI_alloc_skb(i, GFP_ATOMIC);
+ if (!skb) {
+ printk(KERN_WARNING
+ "isdnl2 can't alloc sbbuff for enquiry_cr\n");
+ return;
+ }
+ memcpy(skb_put(skb, i), tmp, i);
+ enqueue_super(l2, skb);
+}
+
+inline void
+enquiry_response(struct layer2 *l2)
+{
+ if (test_bit(FLG_OWN_BUSY, &l2->flag))
+ enquiry_cr(l2, RNR, RSP, 1);
+ else
+ enquiry_cr(l2, RR, RSP, 1);
+ test_and_clear_bit(FLG_ACK_PEND, &l2->flag);
+}
+
+inline void
+transmit_enquiry(struct layer2 *l2)
+{
+ if (test_bit(FLG_OWN_BUSY, &l2->flag))
+ enquiry_cr(l2, RNR, CMD, 1);
+ else
+ enquiry_cr(l2, RR, CMD, 1);
+ test_and_clear_bit(FLG_ACK_PEND, &l2->flag);
+ start_t200(l2, 9);
+}
+
+
+static void
+nrerrorrecovery(struct FsmInst *fi)
+{
+ struct layer2 *l2 = fi->userdata;
+
+ l2mgr(l2, MDL_ERROR_IND, (void *) 'J');
+ establishlink(fi);
+ test_and_clear_bit(FLG_L3_INIT, &l2->flag);
+}
+
+static void
+invoke_retransmission(struct layer2 *l2, unsigned int nr)
+{
+ u_int p1;
+
+ if (l2->vs != nr) {
+ while (l2->vs != nr) {
+ (l2->vs)--;
+ if (test_bit(FLG_MOD128, &l2->flag)) {
+ l2->vs %= 128;
+ p1 = (l2->vs - l2->va) % 128;
+ } else {
+ l2->vs %= 8;
+ p1 = (l2->vs - l2->va) % 8;
+ }
+ p1 = (p1 + l2->sow) % l2->window;
+ if (l2->windowar[p1])
+ skb_queue_head(&l2->i_queue, l2->windowar[p1]);
+ else
+ printk(KERN_WARNING
+ "%s: windowar[%d] is NULL\n",
+ __func__, p1);
+ l2->windowar[p1] = NULL;
+ }
+ mISDN_FsmEvent(&l2->l2m, EV_L2_ACK_PULL, NULL);
+ }
+}
+
+static void
+l2_st7_got_super(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+ struct sk_buff *skb = arg;
+ int PollFlag, rsp, typ = RR;
+ unsigned int nr;
+
+ rsp = *skb->data & 0x2;
+ if (test_bit(FLG_ORIG, &l2->flag))
+ rsp = !rsp;
+
+ skb_pull(skb, l2addrsize(l2));
+ if (IsRNR(skb->data, l2)) {
+ set_peer_busy(l2);
+ typ = RNR;
+ } else
+ clear_peer_busy(l2);
+ if (IsREJ(skb->data, l2))
+ typ = REJ;
+
+ if (test_bit(FLG_MOD128, &l2->flag)) {
+ PollFlag = (skb->data[1] & 0x1) == 0x1;
+ nr = skb->data[1] >> 1;
+ } else {
+ PollFlag = (skb->data[0] & 0x10);
+ nr = (skb->data[0] >> 5) & 0x7;
+ }
+ dev_kfree_skb(skb);
+
+ if (PollFlag) {
+ if (rsp)
+ l2mgr(l2, MDL_ERROR_IND, (void *) 'A');
+ else
+ enquiry_response(l2);
+ }
+ if (legalnr(l2, nr)) {
+ if (typ == REJ) {
+ setva(l2, nr);
+ invoke_retransmission(l2, nr);
+ stop_t200(l2, 10);
+ if (mISDN_FsmAddTimer(&l2->t203, l2->T203,
+ EV_L2_T203, NULL, 6))
+ l2m_debug(&l2->l2m, "Restart T203 ST7 REJ");
+ } else if ((nr == l2->vs) && (typ == RR)) {
+ setva(l2, nr);
+ stop_t200(l2, 11);
+ mISDN_FsmRestartTimer(&l2->t203, l2->T203,
+ EV_L2_T203, NULL, 7);
+ } else if ((l2->va != nr) || (typ == RNR)) {
+ setva(l2, nr);
+ if (typ != RR)
+ mISDN_FsmDelTimer(&l2->t203, 9);
+ restart_t200(l2, 12);
+ }
+ if (skb_queue_len(&l2->i_queue) && (typ == RR))
+ mISDN_FsmEvent(fi, EV_L2_ACK_PULL, NULL);
+ } else
+ nrerrorrecovery(fi);
+}
+
+static void
+l2_feed_i_if_reest(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+ struct sk_buff *skb = arg;
+
+ if (!test_bit(FLG_L3_INIT, &l2->flag))
+ skb_queue_tail(&l2->i_queue, skb);
+ else
+ dev_kfree_skb(skb);
+}
+
+static void
+l2_feed_i_pull(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+ struct sk_buff *skb = arg;
+
+ skb_queue_tail(&l2->i_queue, skb);
+ mISDN_FsmEvent(fi, EV_L2_ACK_PULL, NULL);
+}
+
+static void
+l2_feed_iqueue(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+ struct sk_buff *skb = arg;
+
+ skb_queue_tail(&l2->i_queue, skb);
+}
+
+static void
+l2_got_iframe(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+ struct sk_buff *skb = arg;
+ int PollFlag, i;
+ u_int ns, nr;
+
+ i = l2addrsize(l2);
+ if (test_bit(FLG_MOD128, &l2->flag)) {
+ PollFlag = ((skb->data[i + 1] & 0x1) == 0x1);
+ ns = skb->data[i] >> 1;
+ nr = (skb->data[i + 1] >> 1) & 0x7f;
+ } else {
+ PollFlag = (skb->data[i] & 0x10);
+ ns = (skb->data[i] >> 1) & 0x7;
+ nr = (skb->data[i] >> 5) & 0x7;
+ }
+ if (test_bit(FLG_OWN_BUSY, &l2->flag)) {
+ dev_kfree_skb(skb);
+ if (PollFlag)
+ enquiry_response(l2);
+ } else {
+ if (l2->vr == ns) {
+ l2->vr++;
+ if (test_bit(FLG_MOD128, &l2->flag))
+ l2->vr %= 128;
+ else
+ l2->vr %= 8;
+ test_and_clear_bit(FLG_REJEXC, &l2->flag);
+ if (PollFlag)
+ enquiry_response(l2);
+ else
+ test_and_set_bit(FLG_ACK_PEND, &l2->flag);
+ skb_pull(skb, l2headersize(l2, 0));
+ l2up(l2, DL_DATA_IND, skb);
+ } else {
+ /* n(s)!=v(r) */
+ dev_kfree_skb(skb);
+ if (test_and_set_bit(FLG_REJEXC, &l2->flag)) {
+ if (PollFlag)
+ enquiry_response(l2);
+ } else {
+ enquiry_cr(l2, REJ, RSP, PollFlag);
+ test_and_clear_bit(FLG_ACK_PEND, &l2->flag);
+ }
+ }
+ }
+ if (legalnr(l2, nr)) {
+ if (!test_bit(FLG_PEER_BUSY, &l2->flag) &&
+ (fi->state == ST_L2_7)) {
+ if (nr == l2->vs) {
+ stop_t200(l2, 13);
+ mISDN_FsmRestartTimer(&l2->t203, l2->T203,
+ EV_L2_T203, NULL, 7);
+ } else if (nr != l2->va)
+ restart_t200(l2, 14);
+ }
+ setva(l2, nr);
+ } else {
+ nrerrorrecovery(fi);
+ return;
+ }
+ if (skb_queue_len(&l2->i_queue) && (fi->state == ST_L2_7))
+ mISDN_FsmEvent(fi, EV_L2_ACK_PULL, NULL);
+ if (test_and_clear_bit(FLG_ACK_PEND, &l2->flag))
+ enquiry_cr(l2, RR, RSP, 0);
+}
+
+static void
+l2_got_tei(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+ u_int info;
+
+ l2->tei = (signed char)(long)arg;
+ set_channel_address(&l2->ch, l2->sapi, l2->tei);
+ info = DL_INFO_L2_CONNECT;
+ l2up_create(l2, DL_INFORMATION_IND, sizeof(info), &info);
+ if (fi->state == ST_L2_3) {
+ establishlink(fi);
+ test_and_set_bit(FLG_L3_INIT, &l2->flag);
+ } else
+ mISDN_FsmChangeState(fi, ST_L2_4);
+ if (skb_queue_len(&l2->ui_queue))
+ tx_ui(l2);
+}
+
+static void
+l2_st5_tout_200(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+
+ if (test_bit(FLG_LAPD, &l2->flag) &&
+ test_bit(FLG_DCHAN_BUSY, &l2->flag)) {
+ mISDN_FsmAddTimer(&l2->t200, l2->T200, EV_L2_T200, NULL, 9);
+ } else if (l2->rc == l2->N200) {
+ mISDN_FsmChangeState(fi, ST_L2_4);
+ test_and_clear_bit(FLG_T200_RUN, &l2->flag);
+ skb_queue_purge(&l2->i_queue);
+ l2mgr(l2, MDL_ERROR_IND, (void *) 'G');
+ if (test_bit(FLG_LAPB, &l2->flag))
+ l2down_create(l2, PH_DEACTIVATE_REQ,
+ l2_newid(l2), 0, NULL);
+ st5_dl_release_l2l3(l2);
+ if (l2->tm)
+ l2_tei(l2, MDL_STATUS_DOWN_IND, 0);
+ } else {
+ l2->rc++;
+ mISDN_FsmAddTimer(&l2->t200, l2->T200, EV_L2_T200, NULL, 9);
+ send_uframe(l2, NULL, (test_bit(FLG_MOD128, &l2->flag) ?
+ SABME : SABM) | 0x10, CMD);
+ }
+}
+
+static void
+l2_st6_tout_200(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+
+ if (test_bit(FLG_LAPD, &l2->flag) &&
+ test_bit(FLG_DCHAN_BUSY, &l2->flag)) {
+ mISDN_FsmAddTimer(&l2->t200, l2->T200, EV_L2_T200, NULL, 9);
+ } else if (l2->rc == l2->N200) {
+ mISDN_FsmChangeState(fi, ST_L2_4);
+ test_and_clear_bit(FLG_T200_RUN, &l2->flag);
+ l2mgr(l2, MDL_ERROR_IND, (void *) 'H');
+ lapb_dl_release_l2l3(l2, DL_RELEASE_CNF);
+ if (l2->tm)
+ l2_tei(l2, MDL_STATUS_DOWN_IND, 0);
+ } else {
+ l2->rc++;
+ mISDN_FsmAddTimer(&l2->t200, l2->T200, EV_L2_T200,
+ NULL, 9);
+ send_uframe(l2, NULL, DISC | 0x10, CMD);
+ }
+}
+
+static void
+l2_st7_tout_200(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+
+ if (test_bit(FLG_LAPD, &l2->flag) &&
+ test_bit(FLG_DCHAN_BUSY, &l2->flag)) {
+ mISDN_FsmAddTimer(&l2->t200, l2->T200, EV_L2_T200, NULL, 9);
+ return;
+ }
+ test_and_clear_bit(FLG_T200_RUN, &l2->flag);
+ l2->rc = 0;
+ mISDN_FsmChangeState(fi, ST_L2_8);
+ transmit_enquiry(l2);
+ l2->rc++;
+}
+
+static void
+l2_st8_tout_200(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+
+ if (test_bit(FLG_LAPD, &l2->flag) &&
+ test_bit(FLG_DCHAN_BUSY, &l2->flag)) {
+ mISDN_FsmAddTimer(&l2->t200, l2->T200, EV_L2_T200, NULL, 9);
+ return;
+ }
+ test_and_clear_bit(FLG_T200_RUN, &l2->flag);
+ if (l2->rc == l2->N200) {
+ l2mgr(l2, MDL_ERROR_IND, (void *) 'I');
+ establishlink(fi);
+ test_and_clear_bit(FLG_L3_INIT, &l2->flag);
+ } else {
+ transmit_enquiry(l2);
+ l2->rc++;
+ }
+}
+
+static void
+l2_st7_tout_203(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+
+ if (test_bit(FLG_LAPD, &l2->flag) &&
+ test_bit(FLG_DCHAN_BUSY, &l2->flag)) {
+ mISDN_FsmAddTimer(&l2->t203, l2->T203, EV_L2_T203, NULL, 9);
+ return;
+ }
+ mISDN_FsmChangeState(fi, ST_L2_8);
+ transmit_enquiry(l2);
+ l2->rc = 0;
+}
+
+static void
+l2_pull_iqueue(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+ struct sk_buff *skb, *nskb, *oskb;
+ u_char header[MAX_L2HEADER_LEN];
+ u_int i, p1;
+
+ if (!cansend(l2))
+ return;
+
+ skb = skb_dequeue(&l2->i_queue);
+ if (!skb)
+ return;
+
+ if (test_bit(FLG_MOD128, &l2->flag))
+ p1 = (l2->vs - l2->va) % 128;
+ else
+ p1 = (l2->vs - l2->va) % 8;
+ p1 = (p1 + l2->sow) % l2->window;
+ if (l2->windowar[p1]) {
+ printk(KERN_WARNING "isdnl2 try overwrite ack queue entry %d\n",
+ p1);
+ dev_kfree_skb(l2->windowar[p1]);
+ }
+ l2->windowar[p1] = skb;
+ i = sethdraddr(l2, header, CMD);
+ if (test_bit(FLG_MOD128, &l2->flag)) {
+ header[i++] = l2->vs << 1;
+ header[i++] = l2->vr << 1;
+ l2->vs = (l2->vs + 1) % 128;
+ } else {
+ header[i++] = (l2->vr << 5) | (l2->vs << 1);
+ l2->vs = (l2->vs + 1) % 8;
+ }
+
+ nskb = skb_clone(skb, GFP_ATOMIC);
+ p1 = skb_headroom(nskb);
+ if (p1 >= i)
+ memcpy(skb_push(nskb, i), header, i);
+ else {
+ printk(KERN_WARNING
+ "isdnl2 pull_iqueue skb header(%d/%d) too short\n", i, p1);
+ oskb = nskb;
+ nskb = mI_alloc_skb(oskb->len + i, GFP_ATOMIC);
+ if (!nskb) {
+ dev_kfree_skb(oskb);
+ printk(KERN_WARNING "%s: no skb mem\n", __func__);
+ return;
+ }
+ memcpy(skb_put(nskb, i), header, i);
+ memcpy(skb_put(nskb, oskb->len), oskb->data, oskb->len);
+ dev_kfree_skb(oskb);
+ }
+ l2down(l2, PH_DATA_REQ, l2_newid(l2), nskb);
+ test_and_clear_bit(FLG_ACK_PEND, &l2->flag);
+ if (!test_and_set_bit(FLG_T200_RUN, &l2->flag)) {
+ mISDN_FsmDelTimer(&l2->t203, 13);
+ mISDN_FsmAddTimer(&l2->t200, l2->T200, EV_L2_T200, NULL, 11);
+ }
+}
+
+static void
+l2_st8_got_super(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+ struct sk_buff *skb = arg;
+ int PollFlag, rsp, rnr = 0;
+ unsigned int nr;
+
+ rsp = *skb->data & 0x2;
+ if (test_bit(FLG_ORIG, &l2->flag))
+ rsp = !rsp;
+
+ skb_pull(skb, l2addrsize(l2));
+
+ if (IsRNR(skb->data, l2)) {
+ set_peer_busy(l2);
+ rnr = 1;
+ } else
+ clear_peer_busy(l2);
+
+ if (test_bit(FLG_MOD128, &l2->flag)) {
+ PollFlag = (skb->data[1] & 0x1) == 0x1;
+ nr = skb->data[1] >> 1;
+ } else {
+ PollFlag = (skb->data[0] & 0x10);
+ nr = (skb->data[0] >> 5) & 0x7;
+ }
+ dev_kfree_skb(skb);
+ if (rsp && PollFlag) {
+ if (legalnr(l2, nr)) {
+ if (rnr) {
+ restart_t200(l2, 15);
+ } else {
+ stop_t200(l2, 16);
+ mISDN_FsmAddTimer(&l2->t203, l2->T203,
+ EV_L2_T203, NULL, 5);
+ setva(l2, nr);
+ }
+ invoke_retransmission(l2, nr);
+ mISDN_FsmChangeState(fi, ST_L2_7);
+ if (skb_queue_len(&l2->i_queue) && cansend(l2))
+ mISDN_FsmEvent(fi, EV_L2_ACK_PULL, NULL);
+ } else
+ nrerrorrecovery(fi);
+ } else {
+ if (!rsp && PollFlag)
+ enquiry_response(l2);
+ if (legalnr(l2, nr))
+ setva(l2, nr);
+ else
+ nrerrorrecovery(fi);
+ }
+}
+
+static void
+l2_got_FRMR(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+ struct sk_buff *skb = arg;
+
+ skb_pull(skb, l2addrsize(l2) + 1);
+
+ if (!(skb->data[0] & 1) || ((skb->data[0] & 3) == 1) || /* I or S */
+ (IsUA(skb->data) && (fi->state == ST_L2_7))) {
+ l2mgr(l2, MDL_ERROR_IND, (void *) 'K');
+ establishlink(fi);
+ test_and_clear_bit(FLG_L3_INIT, &l2->flag);
+ }
+ dev_kfree_skb(skb);
+}
+
+static void
+l2_st24_tei_remove(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+
+ skb_queue_purge(&l2->ui_queue);
+ l2->tei = GROUP_TEI;
+ mISDN_FsmChangeState(fi, ST_L2_1);
+}
+
+static void
+l2_st3_tei_remove(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+
+ skb_queue_purge(&l2->ui_queue);
+ l2->tei = GROUP_TEI;
+ l2up_create(l2, DL_RELEASE_IND, 0, NULL);
+ mISDN_FsmChangeState(fi, ST_L2_1);
+}
+
+static void
+l2_st5_tei_remove(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+
+ skb_queue_purge(&l2->i_queue);
+ skb_queue_purge(&l2->ui_queue);
+ freewin(l2);
+ l2->tei = GROUP_TEI;
+ stop_t200(l2, 17);
+ st5_dl_release_l2l3(l2);
+ mISDN_FsmChangeState(fi, ST_L2_1);
+}
+
+static void
+l2_st6_tei_remove(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+
+ skb_queue_purge(&l2->ui_queue);
+ l2->tei = GROUP_TEI;
+ stop_t200(l2, 18);
+ l2up_create(l2, DL_RELEASE_IND, 0, NULL);
+ mISDN_FsmChangeState(fi, ST_L2_1);
+}
+
+static void
+l2_tei_remove(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+
+ skb_queue_purge(&l2->i_queue);
+ skb_queue_purge(&l2->ui_queue);
+ freewin(l2);
+ l2->tei = GROUP_TEI;
+ stop_t200(l2, 17);
+ mISDN_FsmDelTimer(&l2->t203, 19);
+ l2up_create(l2, DL_RELEASE_IND, 0, NULL);
+/* mISDN_queue_data(&l2->inst, l2->inst.id | MSG_BROADCAST,
+ * MGR_SHORTSTATUS_IND, SSTATUS_L2_RELEASED,
+ * 0, NULL, 0);
+ */
+ mISDN_FsmChangeState(fi, ST_L2_1);
+}
+
+static void
+l2_st14_persistant_da(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+ struct sk_buff *skb = arg;
+
+ skb_queue_purge(&l2->i_queue);
+ skb_queue_purge(&l2->ui_queue);
+ if (test_and_clear_bit(FLG_ESTAB_PEND, &l2->flag))
+ l2up(l2, DL_RELEASE_IND, skb);
+ else
+ dev_kfree_skb(skb);
+}
+
+static void
+l2_st5_persistant_da(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+ struct sk_buff *skb = arg;
+
+ skb_queue_purge(&l2->i_queue);
+ skb_queue_purge(&l2->ui_queue);
+ freewin(l2);
+ stop_t200(l2, 19);
+ st5_dl_release_l2l3(l2);
+ mISDN_FsmChangeState(fi, ST_L2_4);
+ if (l2->tm)
+ l2_tei(l2, MDL_STATUS_DOWN_IND, 0);
+ dev_kfree_skb(skb);
+}
+
+static void
+l2_st6_persistant_da(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+ struct sk_buff *skb = arg;
+
+ skb_queue_purge(&l2->ui_queue);
+ stop_t200(l2, 20);
+ l2up(l2, DL_RELEASE_CNF, skb);
+ mISDN_FsmChangeState(fi, ST_L2_4);
+ if (l2->tm)
+ l2_tei(l2, MDL_STATUS_DOWN_IND, 0);
+}
+
+static void
+l2_persistant_da(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+ struct sk_buff *skb = arg;
+
+ skb_queue_purge(&l2->i_queue);
+ skb_queue_purge(&l2->ui_queue);
+ freewin(l2);
+ stop_t200(l2, 19);
+ mISDN_FsmDelTimer(&l2->t203, 19);
+ l2up(l2, DL_RELEASE_IND, skb);
+ mISDN_FsmChangeState(fi, ST_L2_4);
+ if (l2->tm)
+ l2_tei(l2, MDL_STATUS_DOWN_IND, 0);
+}
+
+static void
+l2_set_own_busy(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+ struct sk_buff *skb = arg;
+
+ if (!test_and_set_bit(FLG_OWN_BUSY, &l2->flag)) {
+ enquiry_cr(l2, RNR, RSP, 0);
+ test_and_clear_bit(FLG_ACK_PEND, &l2->flag);
+ }
+ if (skb)
+ dev_kfree_skb(skb);
+}
+
+static void
+l2_clear_own_busy(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+ struct sk_buff *skb = arg;
+
+ if (!test_and_clear_bit(FLG_OWN_BUSY, &l2->flag)) {
+ enquiry_cr(l2, RR, RSP, 0);
+ test_and_clear_bit(FLG_ACK_PEND, &l2->flag);
+ }
+ if (skb)
+ dev_kfree_skb(skb);
+}
+
+static void
+l2_frame_error(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+
+ l2mgr(l2, MDL_ERROR_IND, arg);
+}
+
+static void
+l2_frame_error_reest(struct FsmInst *fi, int event, void *arg)
+{
+ struct layer2 *l2 = fi->userdata;
+
+ l2mgr(l2, MDL_ERROR_IND, arg);
+ establishlink(fi);
+ test_and_clear_bit(FLG_L3_INIT, &l2->flag);
+}
+
+static struct FsmNode L2FnList[] =
+{
+ {ST_L2_1, EV_L2_DL_ESTABLISH_REQ, l2_mdl_assign},
+ {ST_L2_2, EV_L2_DL_ESTABLISH_REQ, l2_go_st3},
+ {ST_L2_4, EV_L2_DL_ESTABLISH_REQ, l2_establish},
+ {ST_L2_5, EV_L2_DL_ESTABLISH_REQ, l2_discard_i_setl3},
+ {ST_L2_7, EV_L2_DL_ESTABLISH_REQ, l2_l3_reestablish},
+ {ST_L2_8, EV_L2_DL_ESTABLISH_REQ, l2_l3_reestablish},
+ {ST_L2_4, EV_L2_DL_RELEASE_REQ, l2_release},
+ {ST_L2_5, EV_L2_DL_RELEASE_REQ, l2_pend_rel},
+ {ST_L2_7, EV_L2_DL_RELEASE_REQ, l2_disconnect},
+ {ST_L2_8, EV_L2_DL_RELEASE_REQ, l2_disconnect},
+ {ST_L2_5, EV_L2_DL_DATA, l2_feed_i_if_reest},
+ {ST_L2_7, EV_L2_DL_DATA, l2_feed_i_pull},
+ {ST_L2_8, EV_L2_DL_DATA, l2_feed_iqueue},
+ {ST_L2_1, EV_L2_DL_UNITDATA, l2_queue_ui_assign},
+ {ST_L2_2, EV_L2_DL_UNITDATA, l2_queue_ui},
+ {ST_L2_3, EV_L2_DL_UNITDATA, l2_queue_ui},
+ {ST_L2_4, EV_L2_DL_UNITDATA, l2_send_ui},
+ {ST_L2_5, EV_L2_DL_UNITDATA, l2_send_ui},
+ {ST_L2_6, EV_L2_DL_UNITDATA, l2_send_ui},
+ {ST_L2_7, EV_L2_DL_UNITDATA, l2_send_ui},
+ {ST_L2_8, EV_L2_DL_UNITDATA, l2_send_ui},
+ {ST_L2_1, EV_L2_MDL_ASSIGN, l2_got_tei},
+ {ST_L2_2, EV_L2_MDL_ASSIGN, l2_got_tei},
+ {ST_L2_3, EV_L2_MDL_ASSIGN, l2_got_tei},
+ {ST_L2_2, EV_L2_MDL_ERROR, l2_st24_tei_remove},
+ {ST_L2_3, EV_L2_MDL_ERROR, l2_st3_tei_remove},
+ {ST_L2_4, EV_L2_MDL_REMOVE, l2_st24_tei_remove},
+ {ST_L2_5, EV_L2_MDL_REMOVE, l2_st5_tei_remove},
+ {ST_L2_6, EV_L2_MDL_REMOVE, l2_st6_tei_remove},
+ {ST_L2_7, EV_L2_MDL_REMOVE, l2_tei_remove},
+ {ST_L2_8, EV_L2_MDL_REMOVE, l2_tei_remove},
+ {ST_L2_4, EV_L2_SABME, l2_start_multi},
+ {ST_L2_5, EV_L2_SABME, l2_send_UA},
+ {ST_L2_6, EV_L2_SABME, l2_send_DM},
+ {ST_L2_7, EV_L2_SABME, l2_restart_multi},
+ {ST_L2_8, EV_L2_SABME, l2_restart_multi},
+ {ST_L2_4, EV_L2_DISC, l2_send_DM},
+ {ST_L2_5, EV_L2_DISC, l2_send_DM},
+ {ST_L2_6, EV_L2_DISC, l2_send_UA},
+ {ST_L2_7, EV_L2_DISC, l2_stop_multi},
+ {ST_L2_8, EV_L2_DISC, l2_stop_multi},
+ {ST_L2_4, EV_L2_UA, l2_mdl_error_ua},
+ {ST_L2_5, EV_L2_UA, l2_connected},
+ {ST_L2_6, EV_L2_UA, l2_released},
+ {ST_L2_7, EV_L2_UA, l2_mdl_error_ua},
+ {ST_L2_8, EV_L2_UA, l2_mdl_error_ua},
+ {ST_L2_4, EV_L2_DM, l2_reestablish},
+ {ST_L2_5, EV_L2_DM, l2_st5_dm_release},
+ {ST_L2_6, EV_L2_DM, l2_st6_dm_release},
+ {ST_L2_7, EV_L2_DM, l2_mdl_error_dm},
+ {ST_L2_8, EV_L2_DM, l2_st8_mdl_error_dm},
+ {ST_L2_1, EV_L2_UI, l2_got_ui},
+ {ST_L2_2, EV_L2_UI, l2_got_ui},
+ {ST_L2_3, EV_L2_UI, l2_got_ui},
+ {ST_L2_4, EV_L2_UI, l2_got_ui},
+ {ST_L2_5, EV_L2_UI, l2_got_ui},
+ {ST_L2_6, EV_L2_UI, l2_got_ui},
+ {ST_L2_7, EV_L2_UI, l2_got_ui},
+ {ST_L2_8, EV_L2_UI, l2_got_ui},
+ {ST_L2_7, EV_L2_FRMR, l2_got_FRMR},
+ {ST_L2_8, EV_L2_FRMR, l2_got_FRMR},
+ {ST_L2_7, EV_L2_SUPER, l2_st7_got_super},
+ {ST_L2_8, EV_L2_SUPER, l2_st8_got_super},
+ {ST_L2_7, EV_L2_I, l2_got_iframe},
+ {ST_L2_8, EV_L2_I, l2_got_iframe},
+ {ST_L2_5, EV_L2_T200, l2_st5_tout_200},
+ {ST_L2_6, EV_L2_T200, l2_st6_tout_200},
+ {ST_L2_7, EV_L2_T200, l2_st7_tout_200},
+ {ST_L2_8, EV_L2_T200, l2_st8_tout_200},
+ {ST_L2_7, EV_L2_T203, l2_st7_tout_203},
+ {ST_L2_7, EV_L2_ACK_PULL, l2_pull_iqueue},
+ {ST_L2_7, EV_L2_SET_OWN_BUSY, l2_set_own_busy},
+ {ST_L2_8, EV_L2_SET_OWN_BUSY, l2_set_own_busy},
+ {ST_L2_7, EV_L2_CLEAR_OWN_BUSY, l2_clear_own_busy},
+ {ST_L2_8, EV_L2_CLEAR_OWN_BUSY, l2_clear_own_busy},
+ {ST_L2_4, EV_L2_FRAME_ERROR, l2_frame_error},
+ {ST_L2_5, EV_L2_FRAME_ERROR, l2_frame_error},
+ {ST_L2_6, EV_L2_FRAME_ERROR, l2_frame_error},
+ {ST_L2_7, EV_L2_FRAME_ERROR, l2_frame_error_reest},
+ {ST_L2_8, EV_L2_FRAME_ERROR, l2_frame_error_reest},
+ {ST_L2_1, EV_L1_DEACTIVATE, l2_st14_persistant_da},
+ {ST_L2_2, EV_L1_DEACTIVATE, l2_st24_tei_remove},
+ {ST_L2_3, EV_L1_DEACTIVATE, l2_st3_tei_remove},
+ {ST_L2_4, EV_L1_DEACTIVATE, l2_st14_persistant_da},
+ {ST_L2_5, EV_L1_DEACTIVATE, l2_st5_persistant_da},
+ {ST_L2_6, EV_L1_DEACTIVATE, l2_st6_persistant_da},
+ {ST_L2_7, EV_L1_DEACTIVATE, l2_persistant_da},
+ {ST_L2_8, EV_L1_DEACTIVATE, l2_persistant_da},
+};
+
+#define L2_FN_COUNT (sizeof(L2FnList)/sizeof(struct FsmNode))
+
+static int
+ph_data_indication(struct layer2 *l2, struct mISDNhead *hh, struct sk_buff *skb)
+{
+ u_char *datap = skb->data;
+ int ret = -EINVAL;
+ int psapi, ptei;
+ u_int l;
+ int c = 0;
+
+ l = l2addrsize(l2);
+ if (skb->len <= l) {
+ mISDN_FsmEvent(&l2->l2m, EV_L2_FRAME_ERROR, (void *) 'N');
+ return ret;
+ }
+ if (test_bit(FLG_LAPD, &l2->flag)) { /* Maybe not needed */
+ psapi = *datap++;
+ ptei = *datap++;
+ if ((psapi & 1) || !(ptei & 1)) {
+ printk(KERN_WARNING
+ "l2 D-channel frame wrong EA0/EA1\n");
+ return ret;
+ }
+ psapi >>= 2;
+ ptei >>= 1;
+ if (psapi != l2->sapi) {
+ /* not our bussiness
+ * printk(KERN_DEBUG "%s: sapi %d/%d sapi mismatch\n",
+ * __func__,
+ * psapi, l2->sapi);
+ */
+ dev_kfree_skb(skb);
+ return 0;
+ }
+ if ((ptei != l2->tei) && (ptei != GROUP_TEI)) {
+ /* not our bussiness
+ * printk(KERN_DEBUG "%s: tei %d/%d sapi %d mismatch\n",
+ * __func__,
+ * ptei, l2->tei, psapi);
+ */
+ dev_kfree_skb(skb);
+ return 0;
+ }
+ } else
+ datap += l;
+ if (!(*datap & 1)) { /* I-Frame */
+ c = iframe_error(l2, skb);
+ if (!c)
+ ret = mISDN_FsmEvent(&l2->l2m, EV_L2_I, skb);
+ } else if (IsSFrame(datap, l2)) { /* S-Frame */
+ c = super_error(l2, skb);
+ if (!c)
+ ret = mISDN_FsmEvent(&l2->l2m, EV_L2_SUPER, skb);
+ } else if (IsUI(datap)) {
+ c = UI_error(l2, skb);
+ if (!c)
+ ret = mISDN_FsmEvent(&l2->l2m, EV_L2_UI, skb);
+ } else if (IsSABME(datap, l2)) {
+ c = unnum_error(l2, skb, CMD);
+ if (!c)
+ ret = mISDN_FsmEvent(&l2->l2m, EV_L2_SABME, skb);
+ } else if (IsUA(datap)) {
+ c = unnum_error(l2, skb, RSP);
+ if (!c)
+ ret = mISDN_FsmEvent(&l2->l2m, EV_L2_UA, skb);
+ } else if (IsDISC(datap)) {
+ c = unnum_error(l2, skb, CMD);
+ if (!c)
+ ret = mISDN_FsmEvent(&l2->l2m, EV_L2_DISC, skb);
+ } else if (IsDM(datap)) {
+ c = unnum_error(l2, skb, RSP);
+ if (!c)
+ ret = mISDN_FsmEvent(&l2->l2m, EV_L2_DM, skb);
+ } else if (IsFRMR(datap)) {
+ c = FRMR_error(l2, skb);
+ if (!c)
+ ret = mISDN_FsmEvent(&l2->l2m, EV_L2_FRMR, skb);
+ } else
+ c = 'L';
+ if (c) {
+ printk(KERN_WARNING "l2 D-channel frame error %c\n", c);
+ mISDN_FsmEvent(&l2->l2m, EV_L2_FRAME_ERROR, (void *)(long)c);
+ }
+ return ret;
+}
+
+static int
+l2_send(struct mISDNchannel *ch, struct sk_buff *skb)
+{
+ struct layer2 *l2 = container_of(ch, struct layer2, ch);
+ struct mISDNhead *hh = mISDN_HEAD_P(skb);
+ int ret = -EINVAL;
+
+ if (*debug & DEBUG_L2_RECV)
+ printk(KERN_DEBUG "%s: prim(%x) id(%x) tei(%d)\n",
+ __func__, hh->prim, hh->id, l2->tei);
+ switch (hh->prim) {
+ case PH_DATA_IND:
+ ret = ph_data_indication(l2, hh, skb);
+ break;
+ case PH_DATA_CNF:
+ ret = ph_data_confirm(l2, hh, skb);
+ break;
+ case PH_ACTIVATE_IND:
+ test_and_set_bit(FLG_L1_ACTIV, &l2->flag);
+ l2up_create(l2, MPH_ACTIVATE_IND, 0, NULL);
+ if (test_and_clear_bit(FLG_ESTAB_PEND, &l2->flag))
+ ret = mISDN_FsmEvent(&l2->l2m,
+ EV_L2_DL_ESTABLISH_REQ, skb);
+ break;
+ case PH_DEACTIVATE_IND:
+ test_and_clear_bit(FLG_L1_ACTIV, &l2->flag);
+ l2up_create(l2, MPH_DEACTIVATE_IND, 0, NULL);
+ ret = mISDN_FsmEvent(&l2->l2m, EV_L1_DEACTIVATE, skb);
+ break;
+ case MPH_INFORMATION_IND:
+ if (!l2->up)
+ break;
+ ret = l2->up->send(l2->up, skb);
+ break;
+ case DL_DATA_REQ:
+ ret = mISDN_FsmEvent(&l2->l2m, EV_L2_DL_DATA, skb);
+ break;
+ case DL_UNITDATA_REQ:
+ ret = mISDN_FsmEvent(&l2->l2m, EV_L2_DL_UNITDATA, skb);
+ break;
+ case DL_ESTABLISH_REQ:
+ if (test_bit(FLG_LAPB, &l2->flag))
+ test_and_set_bit(FLG_ORIG, &l2->flag);
+ if (test_bit(FLG_L1_ACTIV, &l2->flag)) {
+ if (test_bit(FLG_LAPD, &l2->flag) ||
+ test_bit(FLG_ORIG, &l2->flag))
+ ret = mISDN_FsmEvent(&l2->l2m,
+ EV_L2_DL_ESTABLISH_REQ, skb);
+ } else {
+ if (test_bit(FLG_LAPD, &l2->flag) ||
+ test_bit(FLG_ORIG, &l2->flag)) {
+ test_and_set_bit(FLG_ESTAB_PEND,
+ &l2->flag);
+ }
+ ret = l2down(l2, PH_ACTIVATE_REQ, l2_newid(l2),
+ skb);
+ }
+ break;
+ case DL_RELEASE_REQ:
+ if (test_bit(FLG_LAPB, &l2->flag))
+ l2down_create(l2, PH_DEACTIVATE_REQ,
+ l2_newid(l2), 0, NULL);
+ ret = mISDN_FsmEvent(&l2->l2m, EV_L2_DL_RELEASE_REQ,
+ skb);
+ break;
+ default:
+ if (*debug & DEBUG_L2)
+ l2m_debug(&l2->l2m, "l2 unknown pr %04x",
+ hh->prim);
+ }
+ if (ret) {
+ dev_kfree_skb(skb);
+ ret = 0;
+ }
+ return ret;
+}
+
+int
+tei_l2(struct layer2 *l2, u_int cmd, u_long arg)
+{
+ int ret = -EINVAL;
+
+ if (*debug & DEBUG_L2_TEI)
+ printk(KERN_DEBUG "%s: cmd(%x)\n", __func__, cmd);
+ switch (cmd) {
+ case (MDL_ASSIGN_REQ):
+ ret = mISDN_FsmEvent(&l2->l2m, EV_L2_MDL_ASSIGN, (void *)arg);
+ break;
+ case (MDL_REMOVE_REQ):
+ ret = mISDN_FsmEvent(&l2->l2m, EV_L2_MDL_REMOVE, NULL);
+ break;
+ case (MDL_ERROR_IND):
+ ret = mISDN_FsmEvent(&l2->l2m, EV_L2_MDL_ERROR, NULL);
+ break;
+ case (MDL_ERROR_RSP):
+ /* ETS 300-125 5.3.2.1 Test: TC13010 */
+ printk(KERN_NOTICE "MDL_ERROR|REQ (tei_l2)\n");
+ ret = mISDN_FsmEvent(&l2->l2m, EV_L2_MDL_ERROR, NULL);
+ break;
+ }
+ return ret;
+}
+
+static void
+release_l2(struct layer2 *l2)
+{
+ mISDN_FsmDelTimer(&l2->t200, 21);
+ mISDN_FsmDelTimer(&l2->t203, 16);
+ skb_queue_purge(&l2->i_queue);
+ skb_queue_purge(&l2->ui_queue);
+ skb_queue_purge(&l2->down_queue);
+ ReleaseWin(l2);
+ if (test_bit(FLG_LAPD, &l2->flag)) {
+ release_tei(l2);
+ if (l2->ch.st)
+ l2->ch.st->dev->D.ctrl(&l2->ch.st->dev->D,
+ CLOSE_CHANNEL, NULL);
+ }
+ kfree(l2);
+}
+
+static int
+l2_ctrl(struct mISDNchannel *ch, u_int cmd, void *arg)
+{
+ struct layer2 *l2 = container_of(ch, struct layer2, ch);
+ u_int info;
+
+ if (*debug & DEBUG_L2_CTRL)
+ printk(KERN_DEBUG "%s:(%x)\n", __func__, cmd);
+
+ switch (cmd) {
+ case OPEN_CHANNEL:
+ if (test_bit(FLG_LAPD, &l2->flag)) {
+ set_channel_address(&l2->ch, l2->sapi, l2->tei);
+ info = DL_INFO_L2_CONNECT;
+ l2up_create(l2, DL_INFORMATION_IND,
+ sizeof(info), &info);
+ }
+ break;
+ case CLOSE_CHANNEL:
+ if (l2->ch.peer)
+ l2->ch.peer->ctrl(l2->ch.peer, CLOSE_CHANNEL, NULL);
+ release_l2(l2);
+ break;
+ }
+ return 0;
+}
+
+struct layer2 *
+create_l2(struct mISDNchannel *ch, u_int protocol, u_long options, u_long arg)
+{
+ struct layer2 *l2;
+ struct channel_req rq;
+
+ l2 = kzalloc(sizeof(struct layer2), GFP_KERNEL);
+ if (!l2) {
+ printk(KERN_ERR "kzalloc layer2 failed\n");
+ return NULL;
+ }
+ l2->next_id = 1;
+ l2->down_id = MISDN_ID_NONE;
+ l2->up = ch;
+ l2->ch.st = ch->st;
+ l2->ch.send = l2_send;
+ l2->ch.ctrl = l2_ctrl;
+ switch (protocol) {
+ case ISDN_P_LAPD_NT:
+ test_and_set_bit(FLG_LAPD, &l2->flag);
+ test_and_set_bit(FLG_LAPD_NET, &l2->flag);
+ test_and_set_bit(FLG_MOD128, &l2->flag);
+ l2->sapi = 0;
+ l2->maxlen = MAX_DFRAME_LEN;
+ if (test_bit(OPTION_L2_PMX, &options))
+ l2->window = 7;
+ else
+ l2->window = 1;
+ if (test_bit(OPTION_L2_PTP, &options))
+ test_and_set_bit(FLG_PTP, &l2->flag);
+ if (test_bit(OPTION_L2_FIXEDTEI, &options))
+ test_and_set_bit(FLG_FIXED_TEI, &l2->flag);
+ l2->tei = (u_int)arg;
+ l2->T200 = 1000;
+ l2->N200 = 3;
+ l2->T203 = 10000;
+ if (test_bit(OPTION_L2_PMX, &options))
+ rq.protocol = ISDN_P_NT_E1;
+ else
+ rq.protocol = ISDN_P_NT_S0;
+ rq.adr.channel = 0;
+ l2->ch.st->dev->D.ctrl(&l2->ch.st->dev->D, OPEN_CHANNEL, &rq);
+ break;
+ case ISDN_P_LAPD_TE:
+ test_and_set_bit(FLG_LAPD, &l2->flag);
+ test_and_set_bit(FLG_MOD128, &l2->flag);
+ test_and_set_bit(FLG_ORIG, &l2->flag);
+ l2->sapi = 0;
+ l2->maxlen = MAX_DFRAME_LEN;
+ if (test_bit(OPTION_L2_PMX, &options))
+ l2->window = 7;
+ else
+ l2->window = 1;
+ if (test_bit(OPTION_L2_PTP, &options))
+ test_and_set_bit(FLG_PTP, &l2->flag);
+ if (test_bit(OPTION_L2_FIXEDTEI, &options))
+ test_and_set_bit(FLG_FIXED_TEI, &l2->flag);
+ l2->tei = (u_int)arg;
+ l2->T200 = 1000;
+ l2->N200 = 3;
+ l2->T203 = 10000;
+ if (test_bit(OPTION_L2_PMX, &options))
+ rq.protocol = ISDN_P_TE_E1;
+ else
+ rq.protocol = ISDN_P_TE_S0;
+ rq.adr.channel = 0;
+ l2->ch.st->dev->D.ctrl(&l2->ch.st->dev->D, OPEN_CHANNEL, &rq);
+ break;
+ case ISDN_P_B_X75SLP:
+ test_and_set_bit(FLG_LAPB, &l2->flag);
+ l2->window = 7;
+ l2->maxlen = MAX_DATA_SIZE;
+ l2->T200 = 1000;
+ l2->N200 = 4;
+ l2->T203 = 5000;
+ l2->addr.A = 3;
+ l2->addr.B = 1;
+ break;
+ default:
+ printk(KERN_ERR "layer2 create failed prt %x\n",
+ protocol);
+ kfree(l2);
+ return NULL;
+ }
+ skb_queue_head_init(&l2->i_queue);
+ skb_queue_head_init(&l2->ui_queue);
+ skb_queue_head_init(&l2->down_queue);
+ skb_queue_head_init(&l2->tmp_queue);
+ InitWin(l2);
+ l2->l2m.fsm = &l2fsm;
+ if (test_bit(FLG_LAPB, &l2->flag) ||
+ test_bit(FLG_PTP, &l2->flag) ||
+ test_bit(FLG_LAPD_NET, &l2->flag))
+ l2->l2m.state = ST_L2_4;
+ else
+ l2->l2m.state = ST_L2_1;
+ l2->l2m.debug = *debug;
+ l2->l2m.userdata = l2;
+ l2->l2m.userint = 0;
+ l2->l2m.printdebug = l2m_debug;
+
+ mISDN_FsmInitTimer(&l2->l2m, &l2->t200);
+ mISDN_FsmInitTimer(&l2->l2m, &l2->t203);
+ return l2;
+}
+
+static int
+x75create(struct channel_req *crq)
+{
+ struct layer2 *l2;
+
+ if (crq->protocol != ISDN_P_B_X75SLP)
+ return -EPROTONOSUPPORT;
+ l2 = create_l2(crq->ch, crq->protocol, 0, 0);
+ if (!l2)
+ return -ENOMEM;
+ crq->ch = &l2->ch;
+ crq->protocol = ISDN_P_B_HDLC;
+ return 0;
+}
+
+static struct Bprotocol X75SLP = {
+ .Bprotocols = (1 << (ISDN_P_B_X75SLP & ISDN_P_B_MASK)),
+ .name = "X75SLP",
+ .create = x75create
+};
+
+int
+Isdnl2_Init(u_int *deb)
+{
+ debug = deb;
+ mISDN_register_Bprotocol(&X75SLP);
+ l2fsm.state_count = L2_STATE_COUNT;
+ l2fsm.event_count = L2_EVENT_COUNT;
+ l2fsm.strEvent = strL2Event;
+ l2fsm.strState = strL2State;
+ mISDN_FsmNew(&l2fsm, L2FnList, ARRAY_SIZE(L2FnList));
+ TEIInit(deb);
+ return 0;
+}
+
+void
+Isdnl2_cleanup(void)
+{
+ mISDN_unregister_Bprotocol(&X75SLP);
+ TEIFree();
+ mISDN_FsmFree(&l2fsm);
+}
+
diff --git a/drivers/isdn/mISDN/layer2.h b/drivers/isdn/mISDN/layer2.h
new file mode 100644
index 00000000000..de2dd02056a
--- /dev/null
+++ b/drivers/isdn/mISDN/layer2.h
@@ -0,0 +1,140 @@
+/*
+ * Layer 2 defines
+ *
+ * Copyright 2008 by Karsten Keil <kkeil@novell.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * 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.
+ *
+ */
+
+#include <linux/mISDNif.h>
+#include <linux/skbuff.h>
+#include "fsm.h"
+
+#define MAX_WINDOW 8
+
+struct manager {
+ struct mISDNchannel ch;
+ struct mISDNchannel bcast;
+ u_long options;
+ struct list_head layer2;
+ rwlock_t lock;
+ struct FsmInst deact;
+ struct FsmTimer datimer;
+ struct sk_buff_head sendq;
+ struct mISDNchannel *up;
+ u_int nextid;
+ u_int lastid;
+};
+
+struct teimgr {
+ int ri;
+ int rcnt;
+ struct FsmInst tei_m;
+ struct FsmTimer timer;
+ int tval, nval;
+ struct layer2 *l2;
+ struct manager *mgr;
+};
+
+struct laddr {
+ u_char A;
+ u_char B;
+};
+
+struct layer2 {
+ struct list_head list;
+ struct mISDNchannel ch;
+ u_long flag;
+ int id;
+ struct mISDNchannel *up;
+ signed char sapi;
+ signed char tei;
+ struct laddr addr;
+ u_int maxlen;
+ struct teimgr *tm;
+ u_int vs, va, vr;
+ int rc;
+ u_int window;
+ u_int sow;
+ struct FsmInst l2m;
+ struct FsmTimer t200, t203;
+ int T200, N200, T203;
+ u_int next_id;
+ u_int down_id;
+ struct sk_buff *windowar[MAX_WINDOW];
+ struct sk_buff_head i_queue;
+ struct sk_buff_head ui_queue;
+ struct sk_buff_head down_queue;
+ struct sk_buff_head tmp_queue;
+};
+
+enum {
+ ST_L2_1,
+ ST_L2_2,
+ ST_L2_3,
+ ST_L2_4,
+ ST_L2_5,
+ ST_L2_6,
+ ST_L2_7,
+ ST_L2_8,
+};
+
+#define L2_STATE_COUNT (ST_L2_8+1)
+
+extern struct layer2 *create_l2(struct mISDNchannel *, u_int,
+ u_long, u_long);
+extern int tei_l2(struct layer2 *, u_int, u_long arg);
+
+
+/* from tei.c */
+extern int l2_tei(struct layer2 *, u_int, u_long arg);
+extern void release_tei(struct layer2 *);
+extern int TEIInit(u_int *);
+extern void TEIFree(void);
+
+#define MAX_L2HEADER_LEN 4
+
+#define RR 0x01
+#define RNR 0x05
+#define REJ 0x09
+#define SABME 0x6f
+#define SABM 0x2f
+#define DM 0x0f
+#define UI 0x03
+#define DISC 0x43
+#define UA 0x63
+#define FRMR 0x87
+#define XID 0xaf
+
+#define CMD 0
+#define RSP 1
+
+#define LC_FLUSH_WAIT 1
+
+#define FLG_LAPB 0
+#define FLG_LAPD 1
+#define FLG_ORIG 2
+#define FLG_MOD128 3
+#define FLG_PEND_REL 4
+#define FLG_L3_INIT 5
+#define FLG_T200_RUN 6
+#define FLG_ACK_PEND 7
+#define FLG_REJEXC 8
+#define FLG_OWN_BUSY 9
+#define FLG_PEER_BUSY 10
+#define FLG_DCHAN_BUSY 11
+#define FLG_L1_ACTIV 12
+#define FLG_ESTAB_PEND 13
+#define FLG_PTP 14
+#define FLG_FIXED_TEI 15
+#define FLG_L2BLOCK 16
+#define FLG_L1_NOTREADY 17
+#define FLG_LAPD_NET 18
diff --git a/drivers/isdn/mISDN/socket.c b/drivers/isdn/mISDN/socket.c
new file mode 100644
index 00000000000..4ba4cc364c9
--- /dev/null
+++ b/drivers/isdn/mISDN/socket.c
@@ -0,0 +1,781 @@
+/*
+ *
+ * Author Karsten Keil <kkeil@novell.com>
+ *
+ * Copyright 2008 by Karsten Keil <kkeil@novell.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * 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.
+ *
+ */
+
+#include <linux/mISDNif.h>
+#include "core.h"
+
+static int *debug;
+
+static struct proto mISDN_proto = {
+ .name = "misdn",
+ .owner = THIS_MODULE,
+ .obj_size = sizeof(struct mISDN_sock)
+};
+
+#define _pms(sk) ((struct mISDN_sock *)sk)
+
+static struct mISDN_sock_list data_sockets = {
+ .lock = __RW_LOCK_UNLOCKED(data_sockets.lock)
+};
+
+static struct mISDN_sock_list base_sockets = {
+ .lock = __RW_LOCK_UNLOCKED(base_sockets.lock)
+};
+
+#define L2_HEADER_LEN 4
+
+static inline struct sk_buff *
+_l2_alloc_skb(unsigned int len, gfp_t gfp_mask)
+{
+ struct sk_buff *skb;
+
+ skb = alloc_skb(len + L2_HEADER_LEN, gfp_mask);
+ if (likely(skb))
+ skb_reserve(skb, L2_HEADER_LEN);
+ return skb;
+}
+
+static void
+mISDN_sock_link(struct mISDN_sock_list *l, struct sock *sk)
+{
+ write_lock_bh(&l->lock);
+ sk_add_node(sk, &l->head);
+ write_unlock_bh(&l->lock);
+}
+
+static void mISDN_sock_unlink(struct mISDN_sock_list *l, struct sock *sk)
+{
+ write_lock_bh(&l->lock);
+ sk_del_node_init(sk);
+ write_unlock_bh(&l->lock);
+}
+
+static int
+mISDN_send(struct mISDNchannel *ch, struct sk_buff *skb)
+{
+ struct mISDN_sock *msk;
+ int err;
+
+ msk = container_of(ch, struct mISDN_sock, ch);
+ if (*debug & DEBUG_SOCKET)
+ printk(KERN_DEBUG "%s len %d %p\n", __func__, skb->len, skb);
+ if (msk->sk.sk_state == MISDN_CLOSED)
+ return -EUNATCH;
+ __net_timestamp(skb);
+ err = sock_queue_rcv_skb(&msk->sk, skb);
+ if (err)
+ printk(KERN_WARNING "%s: error %d\n", __func__, err);
+ return err;
+}
+
+static int
+mISDN_ctrl(struct mISDNchannel *ch, u_int cmd, void *arg)
+{
+ struct mISDN_sock *msk;
+
+ msk = container_of(ch, struct mISDN_sock, ch);
+ if (*debug & DEBUG_SOCKET)
+ printk(KERN_DEBUG "%s(%p, %x, %p)\n", __func__, ch, cmd, arg);
+ switch (cmd) {
+ case CLOSE_CHANNEL:
+ msk->sk.sk_state = MISDN_CLOSED;
+ break;
+ }
+ return 0;
+}
+
+static inline void
+mISDN_sock_cmsg(struct sock *sk, struct msghdr *msg, struct sk_buff *skb)
+{
+ struct timeval tv;
+
+ if (_pms(sk)->cmask & MISDN_TIME_STAMP) {
+ skb_get_timestamp(skb, &tv);
+ put_cmsg(msg, SOL_MISDN, MISDN_TIME_STAMP, sizeof(tv), &tv);
+ }
+}
+
+static int
+mISDN_sock_recvmsg(struct kiocb *iocb, struct socket *sock,
+ struct msghdr *msg, size_t len, int flags)
+{
+ struct sk_buff *skb;
+ struct sock *sk = sock->sk;
+ struct sockaddr_mISDN *maddr;
+
+ int copied, err;
+
+ if (*debug & DEBUG_SOCKET)
+ printk(KERN_DEBUG "%s: len %d, flags %x ch.nr %d, proto %x\n",
+ __func__, (int)len, flags, _pms(sk)->ch.nr,
+ sk->sk_protocol);
+ if (flags & (MSG_OOB))
+ return -EOPNOTSUPP;
+
+ if (sk->sk_state == MISDN_CLOSED)
+ return 0;
+
+ skb = skb_recv_datagram(sk, flags, flags & MSG_DONTWAIT, &err);
+ if (!skb)
+ return err;
+
+ if (msg->msg_namelen >= sizeof(struct sockaddr_mISDN)) {
+ msg->msg_namelen = sizeof(struct sockaddr_mISDN);
+ maddr = (struct sockaddr_mISDN *)msg->msg_name;
+ maddr->family = AF_ISDN;
+ maddr->dev = _pms(sk)->dev->id;
+ if ((sk->sk_protocol == ISDN_P_LAPD_TE) ||
+ (sk->sk_protocol == ISDN_P_LAPD_NT)) {
+ maddr->channel = (mISDN_HEAD_ID(skb) >> 16) & 0xff;
+ maddr->tei = (mISDN_HEAD_ID(skb) >> 8) & 0xff;
+ maddr->sapi = mISDN_HEAD_ID(skb) & 0xff;
+ } else {
+ maddr->channel = _pms(sk)->ch.nr;
+ maddr->sapi = _pms(sk)->ch.addr & 0xFF;
+ maddr->tei = (_pms(sk)->ch.addr >> 8) & 0xFF;
+ }
+ } else {
+ if (msg->msg_namelen)
+ printk(KERN_WARNING "%s: too small namelen %d\n",
+ __func__, msg->msg_namelen);
+ msg->msg_namelen = 0;
+ }
+
+ copied = skb->len + MISDN_HEADER_LEN;
+ if (len < copied) {
+ if (flags & MSG_PEEK)
+ atomic_dec(&skb->users);
+ else
+ skb_queue_head(&sk->sk_receive_queue, skb);
+ return -ENOSPC;
+ }
+ memcpy(skb_push(skb, MISDN_HEADER_LEN), mISDN_HEAD_P(skb),
+ MISDN_HEADER_LEN);
+
+ err = skb_copy_datagram_iovec(skb, 0, msg->msg_iov, copied);
+
+ mISDN_sock_cmsg(sk, msg, skb);
+
+ skb_free_datagram(sk, skb);
+
+ return err ? : copied;
+}
+
+static int
+mISDN_sock_sendmsg(struct kiocb *iocb, struct socket *sock,
+ struct msghdr *msg, size_t len)
+{
+ struct sock *sk = sock->sk;
+ struct sk_buff *skb;
+ int err = -ENOMEM;
+ struct sockaddr_mISDN *maddr;
+
+ if (*debug & DEBUG_SOCKET)
+ printk(KERN_DEBUG "%s: len %d flags %x ch %d proto %x\n",
+ __func__, (int)len, msg->msg_flags, _pms(sk)->ch.nr,
+ sk->sk_protocol);
+
+ if (msg->msg_flags & MSG_OOB)
+ return -EOPNOTSUPP;
+
+ if (msg->msg_flags & ~(MSG_DONTWAIT|MSG_NOSIGNAL|MSG_ERRQUEUE))
+ return -EINVAL;
+
+ if (len < MISDN_HEADER_LEN)
+ return -EINVAL;
+
+ if (sk->sk_state != MISDN_BOUND)
+ return -EBADFD;
+
+ lock_sock(sk);
+
+ skb = _l2_alloc_skb(len, GFP_KERNEL);
+ if (!skb)
+ goto done;
+
+ if (memcpy_fromiovec(skb_put(skb, len), msg->msg_iov, len)) {
+ err = -EFAULT;
+ goto drop;
+ }
+
+ memcpy(mISDN_HEAD_P(skb), skb->data, MISDN_HEADER_LEN);
+ skb_pull(skb, MISDN_HEADER_LEN);
+
+ if (msg->msg_namelen >= sizeof(struct sockaddr_mISDN)) {
+ /* if we have a address, we use it */
+ maddr = (struct sockaddr_mISDN *)msg->msg_name;
+ mISDN_HEAD_ID(skb) = maddr->channel;
+ } else { /* use default for L2 messages */
+ if ((sk->sk_protocol == ISDN_P_LAPD_TE) ||
+ (sk->sk_protocol == ISDN_P_LAPD_NT))
+ mISDN_HEAD_ID(skb) = _pms(sk)->ch.nr;
+ }
+
+ if (*debug & DEBUG_SOCKET)
+ printk(KERN_DEBUG "%s: ID:%x\n",
+ __func__, mISDN_HEAD_ID(skb));
+
+ err = -ENODEV;
+ if (!_pms(sk)->ch.peer ||
+ (err = _pms(sk)->ch.recv(_pms(sk)->ch.peer, skb)))
+ goto drop;
+
+ err = len;
+
+done:
+ release_sock(sk);
+ return err;
+
+drop:
+ kfree_skb(skb);
+ goto done;
+}
+
+static int
+data_sock_release(struct socket *sock)
+{
+ struct sock *sk = sock->sk;
+
+ if (*debug & DEBUG_SOCKET)
+ printk(KERN_DEBUG "%s(%p) sk=%p\n", __func__, sock, sk);
+ if (!sk)
+ return 0;
+ switch (sk->sk_protocol) {
+ case ISDN_P_TE_S0:
+ case ISDN_P_NT_S0:
+ case ISDN_P_TE_E1:
+ case ISDN_P_NT_E1:
+ if (sk->sk_state == MISDN_BOUND)
+ delete_channel(&_pms(sk)->ch);
+ else
+ mISDN_sock_unlink(&data_sockets, sk);
+ break;
+ case ISDN_P_LAPD_TE:
+ case ISDN_P_LAPD_NT:
+ case ISDN_P_B_RAW:
+ case ISDN_P_B_HDLC:
+ case ISDN_P_B_X75SLP:
+ case ISDN_P_B_L2DTMF:
+ case ISDN_P_B_L2DSP:
+ case ISDN_P_B_L2DSPHDLC:
+ delete_channel(&_pms(sk)->ch);
+ mISDN_sock_unlink(&data_sockets, sk);
+ break;
+ }
+
+ lock_sock(sk);
+
+ sock_orphan(sk);
+ skb_queue_purge(&sk->sk_receive_queue);
+
+ release_sock(sk);
+ sock_put(sk);
+
+ return 0;
+}
+
+static int
+data_sock_ioctl_bound(struct sock *sk, unsigned int cmd, void __user *p)
+{
+ struct mISDN_ctrl_req cq;
+ int err = -EINVAL, val;
+ struct mISDNchannel *bchan, *next;
+
+ lock_sock(sk);
+ if (!_pms(sk)->dev) {
+ err = -ENODEV;
+ goto done;
+ }
+ switch (cmd) {
+ case IMCTRLREQ:
+ if (copy_from_user(&cq, p, sizeof(cq))) {
+ err = -EFAULT;
+ break;
+ }
+ if ((sk->sk_protocol & ~ISDN_P_B_MASK) == ISDN_P_B_START) {
+ list_for_each_entry_safe(bchan, next,
+ &_pms(sk)->dev->bchannels, list) {
+ if (bchan->nr == cq.channel) {
+ err = bchan->ctrl(bchan,
+ CONTROL_CHANNEL, &cq);
+ break;
+ }
+ }
+ } else
+ err = _pms(sk)->dev->D.ctrl(&_pms(sk)->dev->D,
+ CONTROL_CHANNEL, &cq);
+ if (err)
+ break;
+ if (copy_to_user(p, &cq, sizeof(cq)))
+ err = -EFAULT;
+ break;
+ case IMCLEAR_L2:
+ if (sk->sk_protocol != ISDN_P_LAPD_NT) {
+ err = -EINVAL;
+ break;
+ }
+ if (get_user(val, (int __user *)p)) {
+ err = -EFAULT;
+ break;
+ }
+ err = _pms(sk)->dev->teimgr->ctrl(_pms(sk)->dev->teimgr,
+ CONTROL_CHANNEL, &val);
+ break;
+ default:
+ err = -EINVAL;
+ break;
+ }
+done:
+ release_sock(sk);
+ return err;
+}
+
+static int
+data_sock_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
+{
+ int err = 0, id;
+ struct sock *sk = sock->sk;
+ struct mISDNdevice *dev;
+ struct mISDNversion ver;
+
+ switch (cmd) {
+ case IMGETVERSION:
+ ver.major = MISDN_MAJOR_VERSION;
+ ver.minor = MISDN_MINOR_VERSION;
+ ver.release = MISDN_RELEASE;
+ if (copy_to_user((void __user *)arg, &ver, sizeof(ver)))
+ err = -EFAULT;
+ break;
+ case IMGETCOUNT:
+ id = get_mdevice_count();
+ if (put_user(id, (int __user *)arg))
+ err = -EFAULT;
+ break;
+ case IMGETDEVINFO:
+ if (get_user(id, (int __user *)arg)) {
+ err = -EFAULT;
+ break;
+ }
+ dev = get_mdevice(id);
+ if (dev) {
+ struct mISDN_devinfo di;
+
+ di.id = dev->id;
+ di.Dprotocols = dev->Dprotocols;
+ di.Bprotocols = dev->Bprotocols | get_all_Bprotocols();
+ di.protocol = dev->D.protocol;
+ memcpy(di.channelmap, dev->channelmap,
+ MISDN_CHMAP_SIZE * 4);
+ di.nrbchan = dev->nrbchan;
+ strcpy(di.name, dev->name);
+ if (copy_to_user((void __user *)arg, &di, sizeof(di)))
+ err = -EFAULT;
+ } else
+ err = -ENODEV;
+ break;
+ default:
+ if (sk->sk_state == MISDN_BOUND)
+ err = data_sock_ioctl_bound(sk, cmd,
+ (void __user *)arg);
+ else
+ err = -ENOTCONN;
+ }
+ return err;
+}
+
+static int data_sock_setsockopt(struct socket *sock, int level, int optname,
+ char __user *optval, int len)
+{
+ struct sock *sk = sock->sk;
+ int err = 0, opt = 0;
+
+ if (*debug & DEBUG_SOCKET)
+ printk(KERN_DEBUG "%s(%p, %d, %x, %p, %d)\n", __func__, sock,
+ level, optname, optval, len);
+
+ lock_sock(sk);
+
+ switch (optname) {
+ case MISDN_TIME_STAMP:
+ if (get_user(opt, (int __user *)optval)) {
+ err = -EFAULT;
+ break;
+ }
+
+ if (opt)
+ _pms(sk)->cmask |= MISDN_TIME_STAMP;
+ else
+ _pms(sk)->cmask &= ~MISDN_TIME_STAMP;
+ break;
+ default:
+ err = -ENOPROTOOPT;
+ break;
+ }
+ release_sock(sk);
+ return err;
+}
+
+static int data_sock_getsockopt(struct socket *sock, int level, int optname,
+ char __user *optval, int __user *optlen)
+{
+ struct sock *sk = sock->sk;
+ int len, opt;
+
+ if (get_user(len, optlen))
+ return -EFAULT;
+
+ switch (optname) {
+ case MISDN_TIME_STAMP:
+ if (_pms(sk)->cmask & MISDN_TIME_STAMP)
+ opt = 1;
+ else
+ opt = 0;
+
+ if (put_user(opt, optval))
+ return -EFAULT;
+ break;
+ default:
+ return -ENOPROTOOPT;
+ }
+
+ return 0;
+}
+
+static int
+data_sock_bind(struct socket *sock, struct sockaddr *addr, int addr_len)
+{
+ struct sockaddr_mISDN *maddr = (struct sockaddr_mISDN *) addr;
+ struct sock *sk = sock->sk;
+ int err = 0;
+
+ if (*debug & DEBUG_SOCKET)
+ printk(KERN_DEBUG "%s(%p) sk=%p\n", __func__, sock, sk);
+ if (addr_len != sizeof(struct sockaddr_mISDN))
+ return -EINVAL;
+ if (!maddr || maddr->family != AF_ISDN)
+ return -EINVAL;
+
+ lock_sock(sk);
+
+ if (_pms(sk)->dev) {
+ err = -EALREADY;
+ goto done;
+ }
+ _pms(sk)->dev = get_mdevice(maddr->dev);
+ if (!_pms(sk)->dev) {
+ err = -ENODEV;
+ goto done;
+ }
+ _pms(sk)->ch.send = mISDN_send;
+ _pms(sk)->ch.ctrl = mISDN_ctrl;
+
+ switch (sk->sk_protocol) {
+ case ISDN_P_TE_S0:
+ case ISDN_P_NT_S0:
+ case ISDN_P_TE_E1:
+ case ISDN_P_NT_E1:
+ mISDN_sock_unlink(&data_sockets, sk);
+ err = connect_layer1(_pms(sk)->dev, &_pms(sk)->ch,
+ sk->sk_protocol, maddr);
+ if (err)
+ mISDN_sock_link(&data_sockets, sk);
+ break;
+ case ISDN_P_LAPD_TE:
+ case ISDN_P_LAPD_NT:
+ err = create_l2entity(_pms(sk)->dev, &_pms(sk)->ch,
+ sk->sk_protocol, maddr);
+ break;
+ case ISDN_P_B_RAW:
+ case ISDN_P_B_HDLC:
+ case ISDN_P_B_X75SLP:
+ case ISDN_P_B_L2DTMF:
+ case ISDN_P_B_L2DSP:
+ case ISDN_P_B_L2DSPHDLC:
+ err = connect_Bstack(_pms(sk)->dev, &_pms(sk)->ch,
+ sk->sk_protocol, maddr);
+ break;
+ default:
+ err = -EPROTONOSUPPORT;
+ }
+ if (err)
+ goto done;
+ sk->sk_state = MISDN_BOUND;
+ _pms(sk)->ch.protocol = sk->sk_protocol;
+
+done:
+ release_sock(sk);
+ return err;
+}
+
+static int
+data_sock_getname(struct socket *sock, struct sockaddr *addr,
+ int *addr_len, int peer)
+{
+ struct sockaddr_mISDN *maddr = (struct sockaddr_mISDN *) addr;
+ struct sock *sk = sock->sk;
+
+ if (!_pms(sk)->dev)
+ return -EBADFD;
+
+ lock_sock(sk);
+
+ *addr_len = sizeof(*maddr);
+ maddr->dev = _pms(sk)->dev->id;
+ maddr->channel = _pms(sk)->ch.nr;
+ maddr->sapi = _pms(sk)->ch.addr & 0xff;
+ maddr->tei = (_pms(sk)->ch.addr >> 8) & 0xff;
+ release_sock(sk);
+ return 0;
+}
+
+static const struct proto_ops data_sock_ops = {
+ .family = PF_ISDN,
+ .owner = THIS_MODULE,
+ .release = data_sock_release,
+ .ioctl = data_sock_ioctl,
+ .bind = data_sock_bind,
+ .getname = data_sock_getname,
+ .sendmsg = mISDN_sock_sendmsg,
+ .recvmsg = mISDN_sock_recvmsg,
+ .poll = datagram_poll,
+ .listen = sock_no_listen,
+ .shutdown = sock_no_shutdown,
+ .setsockopt = data_sock_setsockopt,
+ .getsockopt = data_sock_getsockopt,
+ .connect = sock_no_connect,
+ .socketpair = sock_no_socketpair,
+ .accept = sock_no_accept,
+ .mmap = sock_no_mmap
+};
+
+static int
+data_sock_create(struct net *net, struct socket *sock, int protocol)
+{
+ struct sock *sk;
+
+ if (sock->type != SOCK_DGRAM)
+ return -ESOCKTNOSUPPORT;
+
+ sk = sk_alloc(net, PF_ISDN, GFP_KERNEL, &mISDN_proto);
+ if (!sk)
+ return -ENOMEM;
+
+ sock_init_data(sock, sk);
+
+ sock->ops = &data_sock_ops;
+ sock->state = SS_UNCONNECTED;
+ sock_reset_flag(sk, SOCK_ZAPPED);
+
+ sk->sk_protocol = protocol;
+ sk->sk_state = MISDN_OPEN;
+ mISDN_sock_link(&data_sockets, sk);
+
+ return 0;
+}
+
+static int
+base_sock_release(struct socket *sock)
+{
+ struct sock *sk = sock->sk;
+
+ printk(KERN_DEBUG "%s(%p) sk=%p\n", __func__, sock, sk);
+ if (!sk)
+ return 0;
+
+ mISDN_sock_unlink(&base_sockets, sk);
+ sock_orphan(sk);
+ sock_put(sk);
+
+ return 0;
+}
+
+static int
+base_sock_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
+{
+ int err = 0, id;
+ struct mISDNdevice *dev;
+ struct mISDNversion ver;
+
+ switch (cmd) {
+ case IMGETVERSION:
+ ver.major = MISDN_MAJOR_VERSION;
+ ver.minor = MISDN_MINOR_VERSION;
+ ver.release = MISDN_RELEASE;
+ if (copy_to_user((void __user *)arg, &ver, sizeof(ver)))
+ err = -EFAULT;
+ break;
+ case IMGETCOUNT:
+ id = get_mdevice_count();
+ if (put_user(id, (int __user *)arg))
+ err = -EFAULT;
+ break;
+ case IMGETDEVINFO:
+ if (get_user(id, (int __user *)arg)) {
+ err = -EFAULT;
+ break;
+ }
+ dev = get_mdevice(id);
+ if (dev) {
+ struct mISDN_devinfo di;
+
+ di.id = dev->id;
+ di.Dprotocols = dev->Dprotocols;
+ di.Bprotocols = dev->Bprotocols | get_all_Bprotocols();
+ di.protocol = dev->D.protocol;
+ memcpy(di.channelmap, dev->channelmap,
+ MISDN_CHMAP_SIZE * 4);
+ di.nrbchan = dev->nrbchan;
+ strcpy(di.name, dev->name);
+ if (copy_to_user((void __user *)arg, &di, sizeof(di)))
+ err = -EFAULT;
+ } else
+ err = -ENODEV;
+ break;
+ default:
+ err = -EINVAL;
+ }
+ return err;
+}
+
+static int
+base_sock_bind(struct socket *sock, struct sockaddr *addr, int addr_len)
+{
+ struct sockaddr_mISDN *maddr = (struct sockaddr_mISDN *) addr;
+ struct sock *sk = sock->sk;
+ int err = 0;
+
+ if (!maddr || maddr->family != AF_ISDN)
+ return -EINVAL;
+
+ lock_sock(sk);
+
+ if (_pms(sk)->dev) {
+ err = -EALREADY;
+ goto done;
+ }
+
+ _pms(sk)->dev = get_mdevice(maddr->dev);
+ if (!_pms(sk)->dev) {
+ err = -ENODEV;
+ goto done;
+ }
+ sk->sk_state = MISDN_BOUND;
+
+done:
+ release_sock(sk);
+ return err;
+}
+
+static const struct proto_ops base_sock_ops = {
+ .family = PF_ISDN,
+ .owner = THIS_MODULE,
+ .release = base_sock_release,
+ .ioctl = base_sock_ioctl,
+ .bind = base_sock_bind,
+ .getname = sock_no_getname,
+ .sendmsg = sock_no_sendmsg,
+ .recvmsg = sock_no_recvmsg,
+ .poll = sock_no_poll,
+ .listen = sock_no_listen,
+ .shutdown = sock_no_shutdown,
+ .setsockopt = sock_no_setsockopt,
+ .getsockopt = sock_no_getsockopt,
+ .connect = sock_no_connect,
+ .socketpair = sock_no_socketpair,
+ .accept = sock_no_accept,
+ .mmap = sock_no_mmap
+};
+
+
+static int
+base_sock_create(struct net *net, struct socket *sock, int protocol)
+{
+ struct sock *sk;
+
+ if (sock->type != SOCK_RAW)
+ return -ESOCKTNOSUPPORT;
+
+ sk = sk_alloc(net, PF_ISDN, GFP_KERNEL, &mISDN_proto);
+ if (!sk)
+ return -ENOMEM;
+
+ sock_init_data(sock, sk);
+ sock->ops = &base_sock_ops;
+ sock->state = SS_UNCONNECTED;
+ sock_reset_flag(sk, SOCK_ZAPPED);
+ sk->sk_protocol = protocol;
+ sk->sk_state = MISDN_OPEN;
+ mISDN_sock_link(&base_sockets, sk);
+
+ return 0;
+}
+
+static int
+mISDN_sock_create(struct net *net, struct socket *sock, int proto)
+{
+ int err = -EPROTONOSUPPORT;
+
+ switch (proto) {
+ case ISDN_P_BASE:
+ err = base_sock_create(net, sock, proto);
+ break;
+ case ISDN_P_TE_S0:
+ case ISDN_P_NT_S0:
+ case ISDN_P_TE_E1:
+ case ISDN_P_NT_E1:
+ case ISDN_P_LAPD_TE:
+ case ISDN_P_LAPD_NT:
+ case ISDN_P_B_RAW:
+ case ISDN_P_B_HDLC:
+ case ISDN_P_B_X75SLP:
+ case ISDN_P_B_L2DTMF:
+ case ISDN_P_B_L2DSP:
+ case ISDN_P_B_L2DSPHDLC:
+ err = data_sock_create(net, sock, proto);
+ break;
+ default:
+ return err;
+ }
+
+ return err;
+}
+
+static struct
+net_proto_family mISDN_sock_family_ops = {
+ .owner = THIS_MODULE,
+ .family = PF_ISDN,
+ .create = mISDN_sock_create,
+};
+
+int
+misdn_sock_init(u_int *deb)
+{
+ int err;
+
+ debug = deb;
+ err = sock_register(&mISDN_sock_family_ops);
+ if (err)
+ printk(KERN_ERR "%s: error(%d)\n", __func__, err);
+ return err;
+}
+
+void
+misdn_sock_cleanup(void)
+{
+ sock_unregister(PF_ISDN);
+}
+
diff --git a/drivers/isdn/mISDN/stack.c b/drivers/isdn/mISDN/stack.c
new file mode 100644
index 00000000000..54cfddcc478
--- /dev/null
+++ b/drivers/isdn/mISDN/stack.c
@@ -0,0 +1,674 @@
+/*
+ *
+ * Author Karsten Keil <kkeil@novell.com>
+ *
+ * Copyright 2008 by Karsten Keil <kkeil@novell.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * 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.
+ *
+ */
+
+#include <linux/mISDNif.h>
+#include <linux/kthread.h>
+#include "core.h"
+
+static u_int *debug;
+
+static inline void
+_queue_message(struct mISDNstack *st, struct sk_buff *skb)
+{
+ struct mISDNhead *hh = mISDN_HEAD_P(skb);
+
+ if (*debug & DEBUG_QUEUE_FUNC)
+ printk(KERN_DEBUG "%s prim(%x) id(%x) %p\n",
+ __func__, hh->prim, hh->id, skb);
+ skb_queue_tail(&st->msgq, skb);
+ if (likely(!test_bit(mISDN_STACK_STOPPED, &st->status))) {
+ test_and_set_bit(mISDN_STACK_WORK, &st->status);
+ wake_up_interruptible(&st->workq);
+ }
+}
+
+int
+mISDN_queue_message(struct mISDNchannel *ch, struct sk_buff *skb)
+{
+ _queue_message(ch->st, skb);
+ return 0;
+}
+
+static struct mISDNchannel *
+get_channel4id(struct mISDNstack *st, u_int id)
+{
+ struct mISDNchannel *ch;
+
+ mutex_lock(&st->lmutex);
+ list_for_each_entry(ch, &st->layer2, list) {
+ if (id == ch->nr)
+ goto unlock;
+ }
+ ch = NULL;
+unlock:
+ mutex_unlock(&st->lmutex);
+ return ch;
+}
+
+static void
+send_socklist(struct mISDN_sock_list *sl, struct sk_buff *skb)
+{
+ struct hlist_node *node;
+ struct sock *sk;
+ struct sk_buff *cskb = NULL;
+
+ read_lock(&sl->lock);
+ sk_for_each(sk, node, &sl->head) {
+ if (sk->sk_state != MISDN_BOUND)
+ continue;
+ if (!cskb)
+ cskb = skb_copy(skb, GFP_KERNEL);
+ if (!cskb) {
+ printk(KERN_WARNING "%s no skb\n", __func__);
+ break;
+ }
+ if (!sock_queue_rcv_skb(sk, cskb))
+ cskb = NULL;
+ }
+ read_unlock(&sl->lock);
+ if (cskb)
+ dev_kfree_skb(cskb);
+}
+
+static void
+send_layer2(struct mISDNstack *st, struct sk_buff *skb)
+{
+ struct sk_buff *cskb;
+ struct mISDNhead *hh = mISDN_HEAD_P(skb);
+ struct mISDNchannel *ch;
+ int ret;
+
+ if (!st)
+ return;
+ mutex_lock(&st->lmutex);
+ if ((hh->id & MISDN_ID_ADDR_MASK) == MISDN_ID_ANY) { /* L2 for all */
+ list_for_each_entry(ch, &st->layer2, list) {
+ if (list_is_last(&ch->list, &st->layer2)) {
+ cskb = skb;
+ skb = NULL;
+ } else {
+ cskb = skb_copy(skb, GFP_KERNEL);
+ }
+ if (cskb) {
+ ret = ch->send(ch, cskb);
+ if (ret) {
+ if (*debug & DEBUG_SEND_ERR)
+ printk(KERN_DEBUG
+ "%s ch%d prim(%x) addr(%x)"
+ " err %d\n",
+ __func__, ch->nr,
+ hh->prim, ch->addr, ret);
+ dev_kfree_skb(cskb);
+ }
+ } else {
+ printk(KERN_WARNING "%s ch%d addr %x no mem\n",
+ __func__, ch->nr, ch->addr);
+ goto out;
+ }
+ }
+ } else {
+ list_for_each_entry(ch, &st->layer2, list) {
+ if ((hh->id & MISDN_ID_ADDR_MASK) == ch->addr) {
+ ret = ch->send(ch, skb);
+ if (!ret)
+ skb = NULL;
+ goto out;
+ }
+ }
+ ret = st->dev->teimgr->ctrl(st->dev->teimgr, CHECK_DATA, skb);
+ if (!ret)
+ skb = NULL;
+ else if (*debug & DEBUG_SEND_ERR)
+ printk(KERN_DEBUG
+ "%s ch%d mgr prim(%x) addr(%x) err %d\n",
+ __func__, ch->nr, hh->prim, ch->addr, ret);
+ }
+out:
+ mutex_unlock(&st->lmutex);
+ if (skb)
+ dev_kfree_skb(skb);
+}
+
+static inline int
+send_msg_to_layer(struct mISDNstack *st, struct sk_buff *skb)
+{
+ struct mISDNhead *hh = mISDN_HEAD_P(skb);
+ struct mISDNchannel *ch;
+ int lm;
+
+ lm = hh->prim & MISDN_LAYERMASK;
+ if (*debug & DEBUG_QUEUE_FUNC)
+ printk(KERN_DEBUG "%s prim(%x) id(%x) %p\n",
+ __func__, hh->prim, hh->id, skb);
+ if (lm == 0x1) {
+ if (!hlist_empty(&st->l1sock.head)) {
+ __net_timestamp(skb);
+ send_socklist(&st->l1sock, skb);
+ }
+ return st->layer1->send(st->layer1, skb);
+ } else if (lm == 0x2) {
+ if (!hlist_empty(&st->l1sock.head))
+ send_socklist(&st->l1sock, skb);
+ send_layer2(st, skb);
+ return 0;
+ } else if (lm == 0x4) {
+ ch = get_channel4id(st, hh->id);
+ if (ch)
+ return ch->send(ch, skb);
+ else
+ printk(KERN_WARNING
+ "%s: dev(%s) prim(%x) id(%x) no channel\n",
+ __func__, st->dev->name, hh->prim, hh->id);
+ } else if (lm == 0x8) {
+ WARN_ON(lm == 0x8);
+ ch = get_channel4id(st, hh->id);
+ if (ch)
+ return ch->send(ch, skb);
+ else
+ printk(KERN_WARNING
+ "%s: dev(%s) prim(%x) id(%x) no channel\n",
+ __func__, st->dev->name, hh->prim, hh->id);
+ } else {
+ /* broadcast not handled yet */
+ printk(KERN_WARNING "%s: dev(%s) prim %x not delivered\n",
+ __func__, st->dev->name, hh->prim);
+ }
+ return -ESRCH;
+}
+
+static void
+do_clear_stack(struct mISDNstack *st)
+{
+}
+
+static int
+mISDNStackd(void *data)
+{
+ struct mISDNstack *st = data;
+ int err = 0;
+
+#ifdef CONFIG_SMP
+ lock_kernel();
+#endif
+ sigfillset(&current->blocked);
+#ifdef CONFIG_SMP
+ unlock_kernel();
+#endif
+ if (*debug & DEBUG_MSG_THREAD)
+ printk(KERN_DEBUG "mISDNStackd %s started\n", st->dev->name);
+
+ if (st->notify != NULL) {
+ complete(st->notify);
+ st->notify = NULL;
+ }
+
+ for (;;) {
+ struct sk_buff *skb;
+
+ if (unlikely(test_bit(mISDN_STACK_STOPPED, &st->status))) {
+ test_and_clear_bit(mISDN_STACK_WORK, &st->status);
+ test_and_clear_bit(mISDN_STACK_RUNNING, &st->status);
+ } else
+ test_and_set_bit(mISDN_STACK_RUNNING, &st->status);
+ while (test_bit(mISDN_STACK_WORK, &st->status)) {
+ skb = skb_dequeue(&st->msgq);
+ if (!skb) {
+ test_and_clear_bit(mISDN_STACK_WORK,
+ &st->status);
+ /* test if a race happens */
+ skb = skb_dequeue(&st->msgq);
+ if (!skb)
+ continue;
+ test_and_set_bit(mISDN_STACK_WORK,
+ &st->status);
+ }
+#ifdef MISDN_MSG_STATS
+ st->msg_cnt++;
+#endif
+ err = send_msg_to_layer(st, skb);
+ if (unlikely(err)) {
+ if (*debug & DEBUG_SEND_ERR)
+ printk(KERN_DEBUG
+ "%s: %s prim(%x) id(%x) "
+ "send call(%d)\n",
+ __func__, st->dev->name,
+ mISDN_HEAD_PRIM(skb),
+ mISDN_HEAD_ID(skb), err);
+ dev_kfree_skb(skb);
+ continue;
+ }
+ if (unlikely(test_bit(mISDN_STACK_STOPPED,
+ &st->status))) {
+ test_and_clear_bit(mISDN_STACK_WORK,
+ &st->status);
+ test_and_clear_bit(mISDN_STACK_RUNNING,
+ &st->status);
+ break;
+ }
+ }
+ if (test_bit(mISDN_STACK_CLEARING, &st->status)) {
+ test_and_set_bit(mISDN_STACK_STOPPED, &st->status);
+ test_and_clear_bit(mISDN_STACK_RUNNING, &st->status);
+ do_clear_stack(st);
+ test_and_clear_bit(mISDN_STACK_CLEARING, &st->status);
+ test_and_set_bit(mISDN_STACK_RESTART, &st->status);
+ }
+ if (test_and_clear_bit(mISDN_STACK_RESTART, &st->status)) {
+ test_and_clear_bit(mISDN_STACK_STOPPED, &st->status);
+ test_and_set_bit(mISDN_STACK_RUNNING, &st->status);
+ if (!skb_queue_empty(&st->msgq))
+ test_and_set_bit(mISDN_STACK_WORK,
+ &st->status);
+ }
+ if (test_bit(mISDN_STACK_ABORT, &st->status))
+ break;
+ if (st->notify != NULL) {
+ complete(st->notify);
+ st->notify = NULL;
+ }
+#ifdef MISDN_MSG_STATS
+ st->sleep_cnt++;
+#endif
+ test_and_clear_bit(mISDN_STACK_ACTIVE, &st->status);
+ wait_event_interruptible(st->workq, (st->status &
+ mISDN_STACK_ACTION_MASK));
+ if (*debug & DEBUG_MSG_THREAD)
+ printk(KERN_DEBUG "%s: %s wake status %08lx\n",
+ __func__, st->dev->name, st->status);
+ test_and_set_bit(mISDN_STACK_ACTIVE, &st->status);
+
+ test_and_clear_bit(mISDN_STACK_WAKEUP, &st->status);
+
+ if (test_bit(mISDN_STACK_STOPPED, &st->status)) {
+ test_and_clear_bit(mISDN_STACK_RUNNING, &st->status);
+#ifdef MISDN_MSG_STATS
+ st->stopped_cnt++;
+#endif
+ }
+ }
+#ifdef MISDN_MSG_STATS
+ printk(KERN_DEBUG "mISDNStackd daemon for %s proceed %d "
+ "msg %d sleep %d stopped\n",
+ st->dev->name, st->msg_cnt, st->sleep_cnt, st->stopped_cnt);
+ printk(KERN_DEBUG
+ "mISDNStackd daemon for %s utime(%ld) stime(%ld)\n",
+ st->dev->name, st->thread->utime, st->thread->stime);
+ printk(KERN_DEBUG
+ "mISDNStackd daemon for %s nvcsw(%ld) nivcsw(%ld)\n",
+ st->dev->name, st->thread->nvcsw, st->thread->nivcsw);
+ printk(KERN_DEBUG "mISDNStackd daemon for %s killed now\n",
+ st->dev->name);
+#endif
+ test_and_set_bit(mISDN_STACK_KILLED, &st->status);
+ test_and_clear_bit(mISDN_STACK_RUNNING, &st->status);
+ test_and_clear_bit(mISDN_STACK_ACTIVE, &st->status);
+ test_and_clear_bit(mISDN_STACK_ABORT, &st->status);
+ skb_queue_purge(&st->msgq);
+ st->thread = NULL;
+ if (st->notify != NULL) {
+ complete(st->notify);
+ st->notify = NULL;
+ }
+ return 0;
+}
+
+static int
+l1_receive(struct mISDNchannel *ch, struct sk_buff *skb)
+{
+ if (!ch->st)
+ return -ENODEV;
+ __net_timestamp(skb);
+ _queue_message(ch->st, skb);
+ return 0;
+}
+
+void
+set_channel_address(struct mISDNchannel *ch, u_int sapi, u_int tei)
+{
+ ch->addr = sapi | (tei << 8);
+}
+
+void
+__add_layer2(struct mISDNchannel *ch, struct mISDNstack *st)
+{
+ list_add_tail(&ch->list, &st->layer2);
+}
+
+void
+add_layer2(struct mISDNchannel *ch, struct mISDNstack *st)
+{
+ mutex_lock(&st->lmutex);
+ __add_layer2(ch, st);
+ mutex_unlock(&st->lmutex);
+}
+
+static int
+st_own_ctrl(struct mISDNchannel *ch, u_int cmd, void *arg)
+{
+ if (!ch->st || ch->st->layer1)
+ return -EINVAL;
+ return ch->st->layer1->ctrl(ch->st->layer1, cmd, arg);
+}
+
+int
+create_stack(struct mISDNdevice *dev)
+{
+ struct mISDNstack *newst;
+ int err;
+ DECLARE_COMPLETION_ONSTACK(done);
+
+ newst = kzalloc(sizeof(struct mISDNstack), GFP_KERNEL);
+ if (!newst) {
+ printk(KERN_ERR "kmalloc mISDN_stack failed\n");
+ return -ENOMEM;
+ }
+ newst->dev = dev;
+ INIT_LIST_HEAD(&newst->layer2);
+ INIT_HLIST_HEAD(&newst->l1sock.head);
+ rwlock_init(&newst->l1sock.lock);
+ init_waitqueue_head(&newst->workq);
+ skb_queue_head_init(&newst->msgq);
+ mutex_init(&newst->lmutex);
+ dev->D.st = newst;
+ err = create_teimanager(dev);
+ if (err) {
+ printk(KERN_ERR "kmalloc teimanager failed\n");
+ kfree(newst);
+ return err;
+ }
+ dev->teimgr->peer = &newst->own;
+ dev->teimgr->recv = mISDN_queue_message;
+ dev->teimgr->st = newst;
+ newst->layer1 = &dev->D;
+ dev->D.recv = l1_receive;
+ dev->D.peer = &newst->own;
+ newst->own.st = newst;
+ newst->own.ctrl = st_own_ctrl;
+ newst->own.send = mISDN_queue_message;
+ newst->own.recv = mISDN_queue_message;
+ if (*debug & DEBUG_CORE_FUNC)
+ printk(KERN_DEBUG "%s: st(%s)\n", __func__, newst->dev->name);
+ newst->notify = &done;
+ newst->thread = kthread_run(mISDNStackd, (void *)newst, "mISDN_%s",
+ newst->dev->name);
+ if (IS_ERR(newst->thread)) {
+ err = PTR_ERR(newst->thread);
+ printk(KERN_ERR
+ "mISDN:cannot create kernel thread for %s (%d)\n",
+ newst->dev->name, err);
+ delete_teimanager(dev->teimgr);
+ kfree(newst);
+ } else
+ wait_for_completion(&done);
+ return err;
+}
+
+int
+connect_layer1(struct mISDNdevice *dev, struct mISDNchannel *ch,
+ u_int protocol, struct sockaddr_mISDN *adr)
+{
+ struct mISDN_sock *msk = container_of(ch, struct mISDN_sock, ch);
+ struct channel_req rq;
+ int err;
+
+
+ if (*debug & DEBUG_CORE_FUNC)
+ printk(KERN_DEBUG "%s: %s proto(%x) adr(%d %d %d %d)\n",
+ __func__, dev->name, protocol, adr->dev, adr->channel,
+ adr->sapi, adr->tei);
+ switch (protocol) {
+ case ISDN_P_NT_S0:
+ case ISDN_P_NT_E1:
+ case ISDN_P_TE_S0:
+ case ISDN_P_TE_E1:
+#ifdef PROTOCOL_CHECK
+ /* this should be enhanced */
+ if (!list_empty(&dev->D.st->layer2)
+ && dev->D.protocol != protocol)
+ return -EBUSY;
+ if (!hlist_empty(&dev->D.st->l1sock.head)
+ && dev->D.protocol != protocol)
+ return -EBUSY;
+#endif
+ ch->recv = mISDN_queue_message;
+ ch->peer = &dev->D.st->own;
+ ch->st = dev->D.st;
+ rq.protocol = protocol;
+ rq.adr.channel = 0;
+ err = dev->D.ctrl(&dev->D, OPEN_CHANNEL, &rq);
+ printk(KERN_DEBUG "%s: ret 1 %d\n", __func__, err);
+ if (err)
+ return err;
+ write_lock_bh(&dev->D.st->l1sock.lock);
+ sk_add_node(&msk->sk, &dev->D.st->l1sock.head);
+ write_unlock_bh(&dev->D.st->l1sock.lock);
+ break;
+ default:
+ return -ENOPROTOOPT;
+ }
+ return 0;
+}
+
+int
+connect_Bstack(struct mISDNdevice *dev, struct mISDNchannel *ch,
+ u_int protocol, struct sockaddr_mISDN *adr)
+{
+ struct channel_req rq, rq2;
+ int pmask, err;
+ struct Bprotocol *bp;
+
+ if (*debug & DEBUG_CORE_FUNC)
+ printk(KERN_DEBUG "%s: %s proto(%x) adr(%d %d %d %d)\n",
+ __func__, dev->name, protocol,
+ adr->dev, adr->channel, adr->sapi,
+ adr->tei);
+ ch->st = dev->D.st;
+ pmask = 1 << (protocol & ISDN_P_B_MASK);
+ if (pmask & dev->Bprotocols) {
+ rq.protocol = protocol;
+ rq.adr = *adr;
+ err = dev->D.ctrl(&dev->D, OPEN_CHANNEL, &rq);
+ if (err)
+ return err;
+ ch->recv = rq.ch->send;
+ ch->peer = rq.ch;
+ rq.ch->recv = ch->send;
+ rq.ch->peer = ch;
+ rq.ch->st = dev->D.st;
+ } else {
+ bp = get_Bprotocol4mask(pmask);
+ if (!bp)
+ return -ENOPROTOOPT;
+ rq2.protocol = protocol;
+ rq2.adr = *adr;
+ rq2.ch = ch;
+ err = bp->create(&rq2);
+ if (err)
+ return err;
+ ch->recv = rq2.ch->send;
+ ch->peer = rq2.ch;
+ rq2.ch->st = dev->D.st;
+ rq.protocol = rq2.protocol;
+ rq.adr = *adr;
+ err = dev->D.ctrl(&dev->D, OPEN_CHANNEL, &rq);
+ if (err) {
+ rq2.ch->ctrl(rq2.ch, CLOSE_CHANNEL, NULL);
+ return err;
+ }
+ rq2.ch->recv = rq.ch->send;
+ rq2.ch->peer = rq.ch;
+ rq.ch->recv = rq2.ch->send;
+ rq.ch->peer = rq2.ch;
+ rq.ch->st = dev->D.st;
+ }
+ ch->protocol = protocol;
+ ch->nr = rq.ch->nr;
+ return 0;
+}
+
+int
+create_l2entity(struct mISDNdevice *dev, struct mISDNchannel *ch,
+ u_int protocol, struct sockaddr_mISDN *adr)
+{
+ struct channel_req rq;
+ int err;
+
+ if (*debug & DEBUG_CORE_FUNC)
+ printk(KERN_DEBUG "%s: %s proto(%x) adr(%d %d %d %d)\n",
+ __func__, dev->name, protocol,
+ adr->dev, adr->channel, adr->sapi,
+ adr->tei);
+ rq.protocol = ISDN_P_TE_S0;
+ if (dev->Dprotocols & (1 << ISDN_P_TE_E1))
+ rq.protocol = ISDN_P_TE_E1;
+ switch (protocol) {
+ case ISDN_P_LAPD_NT:
+ rq.protocol = ISDN_P_NT_S0;
+ if (dev->Dprotocols & (1 << ISDN_P_NT_E1))
+ rq.protocol = ISDN_P_NT_E1;
+ case ISDN_P_LAPD_TE:
+#ifdef PROTOCOL_CHECK
+ /* this should be enhanced */
+ if (!list_empty(&dev->D.st->layer2)
+ && dev->D.protocol != protocol)
+ return -EBUSY;
+ if (!hlist_empty(&dev->D.st->l1sock.head)
+ && dev->D.protocol != protocol)
+ return -EBUSY;
+#endif
+ ch->recv = mISDN_queue_message;
+ ch->peer = &dev->D.st->own;
+ ch->st = dev->D.st;
+ rq.adr.channel = 0;
+ err = dev->D.ctrl(&dev->D, OPEN_CHANNEL, &rq);
+ printk(KERN_DEBUG "%s: ret 1 %d\n", __func__, err);
+ if (err)
+ break;
+ rq.protocol = protocol;
+ rq.adr = *adr;
+ rq.ch = ch;
+ err = dev->teimgr->ctrl(dev->teimgr, OPEN_CHANNEL, &rq);
+ printk(KERN_DEBUG "%s: ret 2 %d\n", __func__, err);
+ if (!err) {
+ if ((protocol == ISDN_P_LAPD_NT) && !rq.ch)
+ break;
+ add_layer2(rq.ch, dev->D.st);
+ rq.ch->recv = mISDN_queue_message;
+ rq.ch->peer = &dev->D.st->own;
+ rq.ch->ctrl(rq.ch, OPEN_CHANNEL, NULL); /* can't fail */
+ }
+ break;
+ default:
+ err = -EPROTONOSUPPORT;
+ }
+ return err;
+}
+
+void
+delete_channel(struct mISDNchannel *ch)
+{
+ struct mISDN_sock *msk = container_of(ch, struct mISDN_sock, ch);
+ struct mISDNchannel *pch;
+
+ if (!ch->st) {
+ printk(KERN_WARNING "%s: no stack\n", __func__);
+ return;
+ }
+ if (*debug & DEBUG_CORE_FUNC)
+ printk(KERN_DEBUG "%s: st(%s) protocol(%x)\n", __func__,
+ ch->st->dev->name, ch->protocol);
+ if (ch->protocol >= ISDN_P_B_START) {
+ if (ch->peer) {
+ ch->peer->ctrl(ch->peer, CLOSE_CHANNEL, NULL);
+ ch->peer = NULL;
+ }
+ return;
+ }
+ switch (ch->protocol) {
+ case ISDN_P_NT_S0:
+ case ISDN_P_TE_S0:
+ case ISDN_P_NT_E1:
+ case ISDN_P_TE_E1:
+ write_lock_bh(&ch->st->l1sock.lock);
+ sk_del_node_init(&msk->sk);
+ write_unlock_bh(&ch->st->l1sock.lock);
+ ch->st->dev->D.ctrl(&ch->st->dev->D, CLOSE_CHANNEL, NULL);
+ break;
+ case ISDN_P_LAPD_TE:
+ pch = get_channel4id(ch->st, ch->nr);
+ if (pch) {
+ mutex_lock(&ch->st->lmutex);
+ list_del(&pch->list);
+ mutex_unlock(&ch->st->lmutex);
+ pch->ctrl(pch, CLOSE_CHANNEL, NULL);
+ pch = ch->st->dev->teimgr;
+ pch->ctrl(pch, CLOSE_CHANNEL, NULL);
+ } else
+ printk(KERN_WARNING "%s: no l2 channel\n",
+ __func__);
+ break;
+ case ISDN_P_LAPD_NT:
+ pch = ch->st->dev->teimgr;
+ if (pch) {
+ pch->ctrl(pch, CLOSE_CHANNEL, NULL);
+ } else
+ printk(KERN_WARNING "%s: no l2 channel\n",
+ __func__);
+ break;
+ default:
+ break;
+ }
+ return;
+}
+
+void
+delete_stack(struct mISDNdevice *dev)
+{
+ struct mISDNstack *st = dev->D.st;
+ DECLARE_COMPLETION_ONSTACK(done);
+
+ if (*debug & DEBUG_CORE_FUNC)
+ printk(KERN_DEBUG "%s: st(%s)\n", __func__,
+ st->dev->name);
+ if (dev->teimgr)
+ delete_teimanager(dev->teimgr);
+ if (st->thread) {
+ if (st->notify) {
+ printk(KERN_WARNING "%s: notifier in use\n",
+ __func__);
+ complete(st->notify);
+ }
+ st->notify = &done;
+ test_and_set_bit(mISDN_STACK_ABORT, &st->status);
+ test_and_set_bit(mISDN_STACK_WAKEUP, &st->status);
+ wake_up_interruptible(&st->workq);
+ wait_for_completion(&done);
+ }
+ if (!list_empty(&st->layer2))
+ printk(KERN_WARNING "%s: layer2 list not empty\n",
+ __func__);
+ if (!hlist_empty(&st->l1sock.head))
+ printk(KERN_WARNING "%s: layer1 list not empty\n",
+ __func__);
+ kfree(st);
+}
+
+void
+mISDN_initstack(u_int *dp)
+{
+ debug = dp;
+}
diff --git a/drivers/isdn/mISDN/tei.c b/drivers/isdn/mISDN/tei.c
new file mode 100644
index 00000000000..56a76a0ffdd
--- /dev/null
+++ b/drivers/isdn/mISDN/tei.c
@@ -0,0 +1,1340 @@
+/*
+ *
+ * Author Karsten Keil <kkeil@novell.com>
+ *
+ * Copyright 2008 by Karsten Keil <kkeil@novell.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * 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.
+ *
+ */
+#include "layer2.h"
+#include <linux/random.h>
+#include "core.h"
+
+#define ID_REQUEST 1
+#define ID_ASSIGNED 2
+#define ID_DENIED 3
+#define ID_CHK_REQ 4
+#define ID_CHK_RES 5
+#define ID_REMOVE 6
+#define ID_VERIFY 7
+
+#define TEI_ENTITY_ID 0xf
+
+#define MGR_PH_ACTIVE 16
+#define MGR_PH_NOTREADY 17
+
+#define DATIMER_VAL 10000
+
+static u_int *debug;
+
+static struct Fsm deactfsm = {NULL, 0, 0, NULL, NULL};
+static struct Fsm teifsmu = {NULL, 0, 0, NULL, NULL};
+static struct Fsm teifsmn = {NULL, 0, 0, NULL, NULL};
+
+enum {
+ ST_L1_DEACT,
+ ST_L1_DEACT_PENDING,
+ ST_L1_ACTIV,
+};
+#define DEACT_STATE_COUNT (ST_L1_ACTIV+1)
+
+static char *strDeactState[] =
+{
+ "ST_L1_DEACT",
+ "ST_L1_DEACT_PENDING",
+ "ST_L1_ACTIV",
+};
+
+enum {
+ EV_ACTIVATE,
+ EV_ACTIVATE_IND,
+ EV_DEACTIVATE,
+ EV_DEACTIVATE_IND,
+ EV_UI,
+ EV_DATIMER,
+};
+
+#define DEACT_EVENT_COUNT (EV_DATIMER+1)
+
+static char *strDeactEvent[] =
+{
+ "EV_ACTIVATE",
+ "EV_ACTIVATE_IND",
+ "EV_DEACTIVATE",
+ "EV_DEACTIVATE_IND",
+ "EV_UI",
+ "EV_DATIMER",
+};
+
+static void
+da_debug(struct FsmInst *fi, char *fmt, ...)
+{
+ struct manager *mgr = fi->userdata;
+ va_list va;
+
+ if (!(*debug & DEBUG_L2_TEIFSM))
+ return;
+ va_start(va, fmt);
+ printk(KERN_DEBUG "mgr(%d): ", mgr->ch.st->dev->id);
+ vprintk(fmt, va);
+ printk("\n");
+ va_end(va);
+}
+
+static void
+da_activate(struct FsmInst *fi, int event, void *arg)
+{
+ struct manager *mgr = fi->userdata;
+
+ if (fi->state == ST_L1_DEACT_PENDING)
+ mISDN_FsmDelTimer(&mgr->datimer, 1);
+ mISDN_FsmChangeState(fi, ST_L1_ACTIV);
+}
+
+static void
+da_deactivate_ind(struct FsmInst *fi, int event, void *arg)
+{
+ mISDN_FsmChangeState(fi, ST_L1_DEACT);
+}
+
+static void
+da_deactivate(struct FsmInst *fi, int event, void *arg)
+{
+ struct manager *mgr = fi->userdata;
+ struct layer2 *l2;
+ u_long flags;
+
+ read_lock_irqsave(&mgr->lock, flags);
+ list_for_each_entry(l2, &mgr->layer2, list) {
+ if (l2->l2m.state > ST_L2_4) {
+ /* have still activ TEI */
+ read_unlock_irqrestore(&mgr->lock, flags);
+ return;
+ }
+ }
+ read_unlock_irqrestore(&mgr->lock, flags);
+ /* All TEI are inactiv */
+ mISDN_FsmAddTimer(&mgr->datimer, DATIMER_VAL, EV_DATIMER, NULL, 1);
+ mISDN_FsmChangeState(fi, ST_L1_DEACT_PENDING);
+}
+
+static void
+da_ui(struct FsmInst *fi, int event, void *arg)
+{
+ struct manager *mgr = fi->userdata;
+
+ /* restart da timer */
+ mISDN_FsmDelTimer(&mgr->datimer, 2);
+ mISDN_FsmAddTimer(&mgr->datimer, DATIMER_VAL, EV_DATIMER, NULL, 2);
+
+}
+
+static void
+da_timer(struct FsmInst *fi, int event, void *arg)
+{
+ struct manager *mgr = fi->userdata;
+ struct layer2 *l2;
+ u_long flags;
+
+ /* check again */
+ read_lock_irqsave(&mgr->lock, flags);
+ list_for_each_entry(l2, &mgr->layer2, list) {
+ if (l2->l2m.state > ST_L2_4) {
+ /* have still activ TEI */
+ read_unlock_irqrestore(&mgr->lock, flags);
+ mISDN_FsmChangeState(fi, ST_L1_ACTIV);
+ return;
+ }
+ }
+ read_unlock_irqrestore(&mgr->lock, flags);
+ /* All TEI are inactiv */
+ mISDN_FsmChangeState(fi, ST_L1_DEACT);
+ _queue_data(&mgr->ch, PH_DEACTIVATE_REQ, MISDN_ID_ANY, 0, NULL,
+ GFP_ATOMIC);
+}
+
+static struct FsmNode DeactFnList[] =
+{
+ {ST_L1_DEACT, EV_ACTIVATE_IND, da_activate},
+ {ST_L1_ACTIV, EV_DEACTIVATE_IND, da_deactivate_ind},
+ {ST_L1_ACTIV, EV_DEACTIVATE, da_deactivate},
+ {ST_L1_DEACT_PENDING, EV_ACTIVATE, da_activate},
+ {ST_L1_DEACT_PENDING, EV_UI, da_ui},
+ {ST_L1_DEACT_PENDING, EV_DATIMER, da_timer},
+};
+
+enum {
+ ST_TEI_NOP,
+ ST_TEI_IDREQ,
+ ST_TEI_IDVERIFY,
+};
+
+#define TEI_STATE_COUNT (ST_TEI_IDVERIFY+1)
+
+static char *strTeiState[] =
+{
+ "ST_TEI_NOP",
+ "ST_TEI_IDREQ",
+ "ST_TEI_IDVERIFY",
+};
+
+enum {
+ EV_IDREQ,
+ EV_ASSIGN,
+ EV_ASSIGN_REQ,
+ EV_DENIED,
+ EV_CHKREQ,
+ EV_CHKRESP,
+ EV_REMOVE,
+ EV_VERIFY,
+ EV_TIMER,
+};
+
+#define TEI_EVENT_COUNT (EV_TIMER+1)
+
+static char *strTeiEvent[] =
+{
+ "EV_IDREQ",
+ "EV_ASSIGN",
+ "EV_ASSIGN_REQ",
+ "EV_DENIED",
+ "EV_CHKREQ",
+ "EV_CHKRESP",
+ "EV_REMOVE",
+ "EV_VERIFY",
+ "EV_TIMER",
+};
+
+static void
+tei_debug(struct FsmInst *fi, char *fmt, ...)
+{
+ struct teimgr *tm = fi->userdata;
+ va_list va;
+
+ if (!(*debug & DEBUG_L2_TEIFSM))
+ return;
+ va_start(va, fmt);
+ printk(KERN_DEBUG "tei(%d): ", tm->l2->tei);
+ vprintk(fmt, va);
+ printk("\n");
+ va_end(va);
+}
+
+
+
+static int
+get_free_id(struct manager *mgr)
+{
+ u64 ids = 0;
+ int i;
+ struct layer2 *l2;
+
+ list_for_each_entry(l2, &mgr->layer2, list) {
+ if (l2->ch.nr > 63) {
+ printk(KERN_WARNING
+ "%s: more as 63 layer2 for one device\n",
+ __func__);
+ return -EBUSY;
+ }
+ test_and_set_bit(l2->ch.nr, (u_long *)&ids);
+ }
+ for (i = 1; i < 64; i++)
+ if (!test_bit(i, (u_long *)&ids))
+ return i;
+ printk(KERN_WARNING "%s: more as 63 layer2 for one device\n",
+ __func__);
+ return -EBUSY;
+}
+
+static int
+get_free_tei(struct manager *mgr)
+{
+ u64 ids = 0;
+ int i;
+ struct layer2 *l2;
+
+ list_for_each_entry(l2, &mgr->layer2, list) {
+ if (l2->ch.nr == 0)
+ continue;
+ if ((l2->ch.addr & 0xff) != 0)
+ continue;
+ i = l2->ch.addr >> 8;
+ if (i < 64)
+ continue;
+ i -= 64;
+
+ test_and_set_bit(i, (u_long *)&ids);
+ }
+ for (i = 0; i < 64; i++)
+ if (!test_bit(i, (u_long *)&ids))
+ return i + 64;
+ printk(KERN_WARNING "%s: more as 63 dynamic tei for one device\n",
+ __func__);
+ return -1;
+}
+
+static void
+teiup_create(struct manager *mgr, u_int prim, int len, void *arg)
+{
+ struct sk_buff *skb;
+ struct mISDNhead *hh;
+ int err;
+
+ skb = mI_alloc_skb(len, GFP_ATOMIC);
+ if (!skb)
+ return;
+ hh = mISDN_HEAD_P(skb);
+ hh->prim = prim;
+ hh->id = (mgr->ch.nr << 16) | mgr->ch.addr;
+ if (len)
+ memcpy(skb_put(skb, len), arg, len);
+ err = mgr->up->send(mgr->up, skb);
+ if (err) {
+ printk(KERN_WARNING "%s: err=%d\n", __func__, err);
+ dev_kfree_skb(skb);
+ }
+}
+
+static u_int
+new_id(struct manager *mgr)
+{
+ u_int id;
+
+ id = mgr->nextid++;
+ if (id == 0x7fff)
+ mgr->nextid = 1;
+ id <<= 16;
+ id |= GROUP_TEI << 8;
+ id |= TEI_SAPI;
+ return id;
+}
+
+static void
+do_send(struct manager *mgr)
+{
+ if (!test_bit(MGR_PH_ACTIVE, &mgr->options))
+ return;
+
+ if (!test_and_set_bit(MGR_PH_NOTREADY, &mgr->options)) {
+ struct sk_buff *skb = skb_dequeue(&mgr->sendq);
+
+ if (!skb) {
+ test_and_clear_bit(MGR_PH_NOTREADY, &mgr->options);
+ return;
+ }
+ mgr->lastid = mISDN_HEAD_ID(skb);
+ mISDN_FsmEvent(&mgr->deact, EV_UI, NULL);
+ if (mgr->ch.recv(mgr->ch.peer, skb)) {
+ dev_kfree_skb(skb);
+ test_and_clear_bit(MGR_PH_NOTREADY, &mgr->options);
+ mgr->lastid = MISDN_ID_NONE;
+ }
+ }
+}
+
+static void
+do_ack(struct manager *mgr, u_int id)
+{
+ if (test_bit(MGR_PH_NOTREADY, &mgr->options)) {
+ if (id == mgr->lastid) {
+ if (test_bit(MGR_PH_ACTIVE, &mgr->options)) {
+ struct sk_buff *skb;
+
+ skb = skb_dequeue(&mgr->sendq);
+ if (skb) {
+ mgr->lastid = mISDN_HEAD_ID(skb);
+ if (!mgr->ch.recv(mgr->ch.peer, skb))
+ return;
+ dev_kfree_skb(skb);
+ }
+ }
+ mgr->lastid = MISDN_ID_NONE;
+ test_and_clear_bit(MGR_PH_NOTREADY, &mgr->options);
+ }
+ }
+}
+
+static void
+mgr_send_down(struct manager *mgr, struct sk_buff *skb)
+{
+ skb_queue_tail(&mgr->sendq, skb);
+ if (!test_bit(MGR_PH_ACTIVE, &mgr->options)) {
+ _queue_data(&mgr->ch, PH_ACTIVATE_REQ, MISDN_ID_ANY, 0,
+ NULL, GFP_KERNEL);
+ } else {
+ do_send(mgr);
+ }
+}
+
+static int
+dl_unit_data(struct manager *mgr, struct sk_buff *skb)
+{
+ if (!test_bit(MGR_OPT_NETWORK, &mgr->options)) /* only net send UI */
+ return -EINVAL;
+ if (!test_bit(MGR_PH_ACTIVE, &mgr->options))
+ _queue_data(&mgr->ch, PH_ACTIVATE_REQ, MISDN_ID_ANY, 0,
+ NULL, GFP_KERNEL);
+ skb_push(skb, 3);
+ skb->data[0] = 0x02; /* SAPI 0 C/R = 1 */
+ skb->data[1] = 0xff; /* TEI 127 */
+ skb->data[2] = UI; /* UI frame */
+ mISDN_HEAD_PRIM(skb) = PH_DATA_REQ;
+ mISDN_HEAD_ID(skb) = new_id(mgr);
+ skb_queue_tail(&mgr->sendq, skb);
+ do_send(mgr);
+ return 0;
+}
+
+unsigned int
+random_ri(void)
+{
+ u16 x;
+
+ get_random_bytes(&x, sizeof(x));
+ return x;
+}
+
+static struct layer2 *
+findtei(struct manager *mgr, int tei)
+{
+ struct layer2 *l2;
+ u_long flags;
+
+ read_lock_irqsave(&mgr->lock, flags);
+ list_for_each_entry(l2, &mgr->layer2, list) {
+ if ((l2->sapi == 0) && (l2->tei > 0) &&
+ (l2->tei != GROUP_TEI) && (l2->tei == tei))
+ goto done;
+ }
+ l2 = NULL;
+done:
+ read_unlock_irqrestore(&mgr->lock, flags);
+ return l2;
+}
+
+static void
+put_tei_msg(struct manager *mgr, u_char m_id, unsigned int ri, u_char tei)
+{
+ struct sk_buff *skb;
+ u_char bp[8];
+
+ bp[0] = (TEI_SAPI << 2);
+ if (test_bit(MGR_OPT_NETWORK, &mgr->options))
+ bp[0] |= 2; /* CR:=1 for net command */
+ bp[1] = (GROUP_TEI << 1) | 0x1;
+ bp[2] = UI;
+ bp[3] = TEI_ENTITY_ID;
+ bp[4] = ri >> 8;
+ bp[5] = ri & 0xff;
+ bp[6] = m_id;
+ bp[7] = (tei << 1) | 1;
+ skb = _alloc_mISDN_skb(PH_DATA_REQ, new_id(mgr),
+ 8, bp, GFP_ATOMIC);
+ if (!skb) {
+ printk(KERN_WARNING "%s: no skb for tei msg\n", __func__);
+ return;
+ }
+ mgr_send_down(mgr, skb);
+}
+
+static void
+tei_id_request(struct FsmInst *fi, int event, void *arg)
+{
+ struct teimgr *tm = fi->userdata;
+
+ if (tm->l2->tei != GROUP_TEI) {
+ tm->tei_m.printdebug(&tm->tei_m,
+ "assign request for allready assigned tei %d",
+ tm->l2->tei);
+ return;
+ }
+ tm->ri = random_ri();
+ if (*debug & DEBUG_L2_TEI)
+ tm->tei_m.printdebug(&tm->tei_m,
+ "assign request ri %d", tm->ri);
+ put_tei_msg(tm->mgr, ID_REQUEST, tm->ri, GROUP_TEI);
+ mISDN_FsmChangeState(fi, ST_TEI_IDREQ);
+ mISDN_FsmAddTimer(&tm->timer, tm->tval, EV_TIMER, NULL, 1);
+ tm->nval = 3;
+}
+
+static void
+tei_id_assign(struct FsmInst *fi, int event, void *arg)
+{
+ struct teimgr *tm = fi->userdata;
+ struct layer2 *l2;
+ u_char *dp = arg;
+ int ri, tei;
+
+ ri = ((unsigned int) *dp++ << 8);
+ ri += *dp++;
+ dp++;
+ tei = *dp >> 1;
+ if (*debug & DEBUG_L2_TEI)
+ tm->tei_m.printdebug(fi, "identity assign ri %d tei %d",
+ ri, tei);
+ l2 = findtei(tm->mgr, tei);
+ if (l2) { /* same tei is in use */
+ if (ri != l2->tm->ri) {
+ tm->tei_m.printdebug(fi,
+ "possible duplicate assignment tei %d", tei);
+ tei_l2(l2, MDL_ERROR_RSP, 0);
+ }
+ } else if (ri == tm->ri) {
+ mISDN_FsmDelTimer(&tm->timer, 1);
+ mISDN_FsmChangeState(fi, ST_TEI_NOP);
+ tei_l2(tm->l2, MDL_ASSIGN_REQ, tei);
+ }
+}
+
+static void
+tei_id_test_dup(struct FsmInst *fi, int event, void *arg)
+{
+ struct teimgr *tm = fi->userdata;
+ struct layer2 *l2;
+ u_char *dp = arg;
+ int tei, ri;
+
+ ri = ((unsigned int) *dp++ << 8);
+ ri += *dp++;
+ dp++;
+ tei = *dp >> 1;
+ if (*debug & DEBUG_L2_TEI)
+ tm->tei_m.printdebug(fi, "foreign identity assign ri %d tei %d",
+ ri, tei);
+ l2 = findtei(tm->mgr, tei);
+ if (l2) { /* same tei is in use */
+ if (ri != l2->tm->ri) { /* and it wasn't our request */
+ tm->tei_m.printdebug(fi,
+ "possible duplicate assignment tei %d", tei);
+ mISDN_FsmEvent(&l2->tm->tei_m, EV_VERIFY, NULL);
+ }
+ }
+}
+
+static void
+tei_id_denied(struct FsmInst *fi, int event, void *arg)
+{
+ struct teimgr *tm = fi->userdata;
+ u_char *dp = arg;
+ int ri, tei;
+
+ ri = ((unsigned int) *dp++ << 8);
+ ri += *dp++;
+ dp++;
+ tei = *dp >> 1;
+ if (*debug & DEBUG_L2_TEI)
+ tm->tei_m.printdebug(fi, "identity denied ri %d tei %d",
+ ri, tei);
+}
+
+static void
+tei_id_chk_req(struct FsmInst *fi, int event, void *arg)
+{
+ struct teimgr *tm = fi->userdata;
+ u_char *dp = arg;
+ int tei;
+
+ tei = *(dp+3) >> 1;
+ if (*debug & DEBUG_L2_TEI)
+ tm->tei_m.printdebug(fi, "identity check req tei %d", tei);
+ if ((tm->l2->tei != GROUP_TEI) && ((tei == GROUP_TEI) ||
+ (tei == tm->l2->tei))) {
+ mISDN_FsmDelTimer(&tm->timer, 4);
+ mISDN_FsmChangeState(&tm->tei_m, ST_TEI_NOP);
+ put_tei_msg(tm->mgr, ID_CHK_RES, random_ri(), tm->l2->tei);
+ }
+}
+
+static void
+tei_id_remove(struct FsmInst *fi, int event, void *arg)
+{
+ struct teimgr *tm = fi->userdata;
+ u_char *dp = arg;
+ int tei;
+
+ tei = *(dp+3) >> 1;
+ if (*debug & DEBUG_L2_TEI)
+ tm->tei_m.printdebug(fi, "identity remove tei %d", tei);
+ if ((tm->l2->tei != GROUP_TEI) &&
+ ((tei == GROUP_TEI) || (tei == tm->l2->tei))) {
+ mISDN_FsmDelTimer(&tm->timer, 5);
+ mISDN_FsmChangeState(&tm->tei_m, ST_TEI_NOP);
+ tei_l2(tm->l2, MDL_REMOVE_REQ, 0);
+ }
+}
+
+static void
+tei_id_verify(struct FsmInst *fi, int event, void *arg)
+{
+ struct teimgr *tm = fi->userdata;
+
+ if (*debug & DEBUG_L2_TEI)
+ tm->tei_m.printdebug(fi, "id verify request for tei %d",
+ tm->l2->tei);
+ put_tei_msg(tm->mgr, ID_VERIFY, 0, tm->l2->tei);
+ mISDN_FsmChangeState(&tm->tei_m, ST_TEI_IDVERIFY);
+ mISDN_FsmAddTimer(&tm->timer, tm->tval, EV_TIMER, NULL, 2);
+ tm->nval = 2;
+}
+
+static void
+tei_id_req_tout(struct FsmInst *fi, int event, void *arg)
+{
+ struct teimgr *tm = fi->userdata;
+
+ if (--tm->nval) {
+ tm->ri = random_ri();
+ if (*debug & DEBUG_L2_TEI)
+ tm->tei_m.printdebug(fi, "assign req(%d) ri %d",
+ 4 - tm->nval, tm->ri);
+ put_tei_msg(tm->mgr, ID_REQUEST, tm->ri, GROUP_TEI);
+ mISDN_FsmAddTimer(&tm->timer, tm->tval, EV_TIMER, NULL, 3);
+ } else {
+ tm->tei_m.printdebug(fi, "assign req failed");
+ tei_l2(tm->l2, MDL_ERROR_RSP, 0);
+ mISDN_FsmChangeState(fi, ST_TEI_NOP);
+ }
+}
+
+static void
+tei_id_ver_tout(struct FsmInst *fi, int event, void *arg)
+{
+ struct teimgr *tm = fi->userdata;
+
+ if (--tm->nval) {
+ if (*debug & DEBUG_L2_TEI)
+ tm->tei_m.printdebug(fi,
+ "id verify req(%d) for tei %d",
+ 3 - tm->nval, tm->l2->tei);
+ put_tei_msg(tm->mgr, ID_VERIFY, 0, tm->l2->tei);
+ mISDN_FsmAddTimer(&tm->timer, tm->tval, EV_TIMER, NULL, 4);
+ } else {
+ tm->tei_m.printdebug(fi, "verify req for tei %d failed",
+ tm->l2->tei);
+ tei_l2(tm->l2, MDL_REMOVE_REQ, 0);
+ mISDN_FsmChangeState(fi, ST_TEI_NOP);
+ }
+}
+
+static struct FsmNode TeiFnListUser[] =
+{
+ {ST_TEI_NOP, EV_IDREQ, tei_id_request},
+ {ST_TEI_NOP, EV_ASSIGN, tei_id_test_dup},
+ {ST_TEI_NOP, EV_VERIFY, tei_id_verify},
+ {ST_TEI_NOP, EV_REMOVE, tei_id_remove},
+ {ST_TEI_NOP, EV_CHKREQ, tei_id_chk_req},
+ {ST_TEI_IDREQ, EV_TIMER, tei_id_req_tout},
+ {ST_TEI_IDREQ, EV_ASSIGN, tei_id_assign},
+ {ST_TEI_IDREQ, EV_DENIED, tei_id_denied},
+ {ST_TEI_IDVERIFY, EV_TIMER, tei_id_ver_tout},
+ {ST_TEI_IDVERIFY, EV_REMOVE, tei_id_remove},
+ {ST_TEI_IDVERIFY, EV_CHKREQ, tei_id_chk_req},
+};
+
+static void
+tei_l2remove(struct layer2 *l2)
+{
+ put_tei_msg(l2->tm->mgr, ID_REMOVE, 0, l2->tei);
+ tei_l2(l2, MDL_REMOVE_REQ, 0);
+ list_del(&l2->ch.list);
+ l2->ch.ctrl(&l2->ch, CLOSE_CHANNEL, NULL);
+}
+
+static void
+tei_assign_req(struct FsmInst *fi, int event, void *arg)
+{
+ struct teimgr *tm = fi->userdata;
+ u_char *dp = arg;
+
+ if (tm->l2->tei == GROUP_TEI) {
+ tm->tei_m.printdebug(&tm->tei_m,
+ "net tei assign request without tei");
+ return;
+ }
+ tm->ri = ((unsigned int) *dp++ << 8);
+ tm->ri += *dp++;
+ if (*debug & DEBUG_L2_TEI)
+ tm->tei_m.printdebug(&tm->tei_m,
+ "net assign request ri %d teim %d", tm->ri, *dp);
+ put_tei_msg(tm->mgr, ID_ASSIGNED, tm->ri, tm->l2->tei);
+ mISDN_FsmChangeState(fi, ST_TEI_NOP);
+}
+
+static void
+tei_id_chk_req_net(struct FsmInst *fi, int event, void *arg)
+{
+ struct teimgr *tm = fi->userdata;
+
+ if (*debug & DEBUG_L2_TEI)
+ tm->tei_m.printdebug(fi, "id check request for tei %d",
+ tm->l2->tei);
+ tm->rcnt = 0;
+ put_tei_msg(tm->mgr, ID_CHK_REQ, 0, tm->l2->tei);
+ mISDN_FsmChangeState(&tm->tei_m, ST_TEI_IDVERIFY);
+ mISDN_FsmAddTimer(&tm->timer, tm->tval, EV_TIMER, NULL, 2);
+ tm->nval = 2;
+}
+
+static void
+tei_id_chk_resp(struct FsmInst *fi, int event, void *arg)
+{
+ struct teimgr *tm = fi->userdata;
+ u_char *dp = arg;
+ int tei;
+
+ tei = dp[3] >> 1;
+ if (*debug & DEBUG_L2_TEI)
+ tm->tei_m.printdebug(fi, "identity check resp tei %d", tei);
+ if (tei == tm->l2->tei)
+ tm->rcnt++;
+}
+
+static void
+tei_id_verify_net(struct FsmInst *fi, int event, void *arg)
+{
+ struct teimgr *tm = fi->userdata;
+ u_char *dp = arg;
+ int tei;
+
+ tei = dp[3] >> 1;
+ if (*debug & DEBUG_L2_TEI)
+ tm->tei_m.printdebug(fi, "identity verify req tei %d/%d",
+ tei, tm->l2->tei);
+ if (tei == tm->l2->tei)
+ tei_id_chk_req_net(fi, event, arg);
+}
+
+static void
+tei_id_ver_tout_net(struct FsmInst *fi, int event, void *arg)
+{
+ struct teimgr *tm = fi->userdata;
+
+ if (tm->rcnt == 1) {
+ if (*debug & DEBUG_L2_TEI)
+ tm->tei_m.printdebug(fi,
+ "check req for tei %d sucessful\n", tm->l2->tei);
+ mISDN_FsmChangeState(fi, ST_TEI_NOP);
+ } else if (tm->rcnt > 1) {
+ /* duplicate assignment; remove */
+ tei_l2remove(tm->l2);
+ } else if (--tm->nval) {
+ if (*debug & DEBUG_L2_TEI)
+ tm->tei_m.printdebug(fi,
+ "id check req(%d) for tei %d",
+ 3 - tm->nval, tm->l2->tei);
+ put_tei_msg(tm->mgr, ID_CHK_REQ, 0, tm->l2->tei);
+ mISDN_FsmAddTimer(&tm->timer, tm->tval, EV_TIMER, NULL, 4);
+ } else {
+ tm->tei_m.printdebug(fi, "check req for tei %d failed",
+ tm->l2->tei);
+ mISDN_FsmChangeState(fi, ST_TEI_NOP);
+ tei_l2remove(tm->l2);
+ }
+}
+
+static struct FsmNode TeiFnListNet[] =
+{
+ {ST_TEI_NOP, EV_ASSIGN_REQ, tei_assign_req},
+ {ST_TEI_NOP, EV_VERIFY, tei_id_verify_net},
+ {ST_TEI_NOP, EV_CHKREQ, tei_id_chk_req_net},
+ {ST_TEI_IDVERIFY, EV_TIMER, tei_id_ver_tout_net},
+ {ST_TEI_IDVERIFY, EV_CHKRESP, tei_id_chk_resp},
+};
+
+static void
+tei_ph_data_ind(struct teimgr *tm, u_int mt, u_char *dp, int len)
+{
+ if (test_bit(FLG_FIXED_TEI, &tm->l2->flag))
+ return;
+ if (*debug & DEBUG_L2_TEI)
+ tm->tei_m.printdebug(&tm->tei_m, "tei handler mt %x", mt);
+ if (mt == ID_ASSIGNED)
+ mISDN_FsmEvent(&tm->tei_m, EV_ASSIGN, dp);
+ else if (mt == ID_DENIED)
+ mISDN_FsmEvent(&tm->tei_m, EV_DENIED, dp);
+ else if (mt == ID_CHK_REQ)
+ mISDN_FsmEvent(&tm->tei_m, EV_CHKREQ, dp);
+ else if (mt == ID_REMOVE)
+ mISDN_FsmEvent(&tm->tei_m, EV_REMOVE, dp);
+ else if (mt == ID_VERIFY)
+ mISDN_FsmEvent(&tm->tei_m, EV_VERIFY, dp);
+ else if (mt == ID_CHK_RES)
+ mISDN_FsmEvent(&tm->tei_m, EV_CHKRESP, dp);
+}
+
+static struct layer2 *
+create_new_tei(struct manager *mgr, int tei)
+{
+ u_long opt = 0;
+ u_long flags;
+ int id;
+ struct layer2 *l2;
+
+ if (!mgr->up)
+ return NULL;
+ if (tei < 64)
+ test_and_set_bit(OPTION_L2_FIXEDTEI, &opt);
+ if (mgr->ch.st->dev->Dprotocols
+ & ((1 << ISDN_P_TE_E1) | (1 << ISDN_P_NT_E1)))
+ test_and_set_bit(OPTION_L2_PMX, &opt);
+ l2 = create_l2(mgr->up, ISDN_P_LAPD_NT, (u_int)opt, (u_long)tei);
+ if (!l2) {
+ printk(KERN_WARNING "%s:no memory for layer2\n", __func__);
+ return NULL;
+ }
+ l2->tm = kzalloc(sizeof(struct teimgr), GFP_KERNEL);
+ if (!l2->tm) {
+ kfree(l2);
+ printk(KERN_WARNING "%s:no memory for teimgr\n", __func__);
+ return NULL;
+ }
+ l2->tm->mgr = mgr;
+ l2->tm->l2 = l2;
+ l2->tm->tei_m.debug = *debug & DEBUG_L2_TEIFSM;
+ l2->tm->tei_m.userdata = l2->tm;
+ l2->tm->tei_m.printdebug = tei_debug;
+ l2->tm->tei_m.fsm = &teifsmn;
+ l2->tm->tei_m.state = ST_TEI_NOP;
+ l2->tm->tval = 2000; /* T202 2 sec */
+ mISDN_FsmInitTimer(&l2->tm->tei_m, &l2->tm->timer);
+ write_lock_irqsave(&mgr->lock, flags);
+ id = get_free_id(mgr);
+ list_add_tail(&l2->list, &mgr->layer2);
+ write_unlock_irqrestore(&mgr->lock, flags);
+ if (id < 0) {
+ l2->ch.ctrl(&l2->ch, CLOSE_CHANNEL, NULL);
+ printk(KERN_WARNING "%s:no free id\n", __func__);
+ return NULL;
+ } else {
+ l2->ch.nr = id;
+ __add_layer2(&l2->ch, mgr->ch.st);
+ l2->ch.recv = mgr->ch.recv;
+ l2->ch.peer = mgr->ch.peer;
+ l2->ch.ctrl(&l2->ch, OPEN_CHANNEL, NULL);
+ }
+ return l2;
+}
+
+static void
+new_tei_req(struct manager *mgr, u_char *dp)
+{
+ int tei, ri;
+ struct layer2 *l2;
+
+ ri = dp[0] << 8;
+ ri += dp[1];
+ if (!mgr->up)
+ goto denied;
+ tei = get_free_tei(mgr);
+ if (tei < 0) {
+ printk(KERN_WARNING "%s:No free tei\n", __func__);
+ goto denied;
+ }
+ l2 = create_new_tei(mgr, tei);
+ if (!l2)
+ goto denied;
+ else
+ mISDN_FsmEvent(&l2->tm->tei_m, EV_ASSIGN_REQ, dp);
+ return;
+denied:
+ put_tei_msg(mgr, ID_DENIED, ri, GROUP_TEI);
+}
+
+static int
+ph_data_ind(struct manager *mgr, struct sk_buff *skb)
+{
+ int ret = -EINVAL;
+ struct layer2 *l2;
+ u_long flags;
+ u_char mt;
+
+ if (skb->len < 8) {
+ if (*debug & DEBUG_L2_TEI)
+ printk(KERN_DEBUG "%s: short mgr frame %d/8\n",
+ __func__, skb->len);
+ goto done;
+ }
+ if (*debug & DEBUG_L2_TEI)
+
+ if ((skb->data[0] >> 2) != TEI_SAPI) /* not for us */
+ goto done;
+ if (skb->data[0] & 1) /* EA0 formal error */
+ goto done;
+ if (!(skb->data[1] & 1)) /* EA1 formal error */
+ goto done;
+ if ((skb->data[1] >> 1) != GROUP_TEI) /* not for us */
+ goto done;
+ if ((skb->data[2] & 0xef) != UI) /* not UI */
+ goto done;
+ if (skb->data[3] != TEI_ENTITY_ID) /* not tei entity */
+ goto done;
+ mt = skb->data[6];
+ switch (mt) {
+ case ID_REQUEST:
+ case ID_CHK_RES:
+ case ID_VERIFY:
+ if (!test_bit(MGR_OPT_NETWORK, &mgr->options))
+ goto done;
+ break;
+ case ID_ASSIGNED:
+ case ID_DENIED:
+ case ID_CHK_REQ:
+ case ID_REMOVE:
+ if (test_bit(MGR_OPT_NETWORK, &mgr->options))
+ goto done;
+ break;
+ default:
+ goto done;
+ }
+ ret = 0;
+ if (mt == ID_REQUEST) {
+ new_tei_req(mgr, &skb->data[4]);
+ goto done;
+ }
+ read_lock_irqsave(&mgr->lock, flags);
+ list_for_each_entry(l2, &mgr->layer2, list) {
+ tei_ph_data_ind(l2->tm, mt, &skb->data[4], skb->len - 4);
+ }
+ read_unlock_irqrestore(&mgr->lock, flags);
+done:
+ return ret;
+}
+
+int
+l2_tei(struct layer2 *l2, u_int cmd, u_long arg)
+{
+ struct teimgr *tm = l2->tm;
+
+ if (test_bit(FLG_FIXED_TEI, &l2->flag))
+ return 0;
+ if (*debug & DEBUG_L2_TEI)
+ printk(KERN_DEBUG "%s: cmd(%x)\n", __func__, cmd);
+ switch (cmd) {
+ case MDL_ASSIGN_IND:
+ mISDN_FsmEvent(&tm->tei_m, EV_IDREQ, NULL);
+ break;
+ case MDL_ERROR_IND:
+ if (test_bit(MGR_OPT_NETWORK, &tm->mgr->options))
+ mISDN_FsmEvent(&tm->tei_m, EV_CHKREQ, &l2->tei);
+ if (test_bit(MGR_OPT_USER, &tm->mgr->options))
+ mISDN_FsmEvent(&tm->tei_m, EV_VERIFY, NULL);
+ break;
+ case MDL_STATUS_UP_IND:
+ if (test_bit(MGR_OPT_NETWORK, &tm->mgr->options))
+ mISDN_FsmEvent(&tm->mgr->deact, EV_ACTIVATE, NULL);
+ break;
+ case MDL_STATUS_DOWN_IND:
+ if (test_bit(MGR_OPT_NETWORK, &tm->mgr->options))
+ mISDN_FsmEvent(&tm->mgr->deact, EV_DEACTIVATE, NULL);
+ break;
+ case MDL_STATUS_UI_IND:
+ if (test_bit(MGR_OPT_NETWORK, &tm->mgr->options))
+ mISDN_FsmEvent(&tm->mgr->deact, EV_UI, NULL);
+ break;
+ }
+ return 0;
+}
+
+void
+release_tei(struct layer2 *l2)
+{
+ struct teimgr *tm = l2->tm;
+ u_long flags;
+
+ mISDN_FsmDelTimer(&tm->timer, 1);
+ write_lock_irqsave(&tm->mgr->lock, flags);
+ list_del(&l2->list);
+ write_unlock_irqrestore(&tm->mgr->lock, flags);
+ l2->tm = NULL;
+ kfree(tm);
+}
+
+static int
+create_teimgr(struct manager *mgr, struct channel_req *crq)
+{
+ struct layer2 *l2;
+ u_long opt = 0;
+ u_long flags;
+ int id;
+
+ if (*debug & DEBUG_L2_TEI)
+ printk(KERN_DEBUG "%s: %s proto(%x) adr(%d %d %d %d)\n",
+ __func__, mgr->ch.st->dev->name, crq->protocol,
+ crq->adr.dev, crq->adr.channel, crq->adr.sapi,
+ crq->adr.tei);
+ if (crq->adr.sapi != 0) /* not supported yet */
+ return -EINVAL;
+ if (crq->adr.tei > GROUP_TEI)
+ return -EINVAL;
+ if (crq->adr.tei < 64)
+ test_and_set_bit(OPTION_L2_FIXEDTEI, &opt);
+ if (crq->adr.tei == 0)
+ test_and_set_bit(OPTION_L2_PTP, &opt);
+ if (test_bit(MGR_OPT_NETWORK, &mgr->options)) {
+ if (crq->protocol == ISDN_P_LAPD_TE)
+ return -EPROTONOSUPPORT;
+ if ((crq->adr.tei != 0) && (crq->adr.tei != 127))
+ return -EINVAL;
+ if (mgr->up) {
+ printk(KERN_WARNING
+ "%s: only one network manager is allowed\n",
+ __func__);
+ return -EBUSY;
+ }
+ } else if (test_bit(MGR_OPT_USER, &mgr->options)) {
+ if (crq->protocol == ISDN_P_LAPD_NT)
+ return -EPROTONOSUPPORT;
+ if ((crq->adr.tei >= 64) && (crq->adr.tei < GROUP_TEI))
+ return -EINVAL; /* dyn tei */
+ } else {
+ if (crq->protocol == ISDN_P_LAPD_NT)
+ test_and_set_bit(MGR_OPT_NETWORK, &mgr->options);
+ if (crq->protocol == ISDN_P_LAPD_TE)
+ test_and_set_bit(MGR_OPT_USER, &mgr->options);
+ }
+ if (mgr->ch.st->dev->Dprotocols
+ & ((1 << ISDN_P_TE_E1) | (1 << ISDN_P_NT_E1)))
+ test_and_set_bit(OPTION_L2_PMX, &opt);
+ if ((crq->protocol == ISDN_P_LAPD_NT) && (crq->adr.tei == 127)) {
+ mgr->up = crq->ch;
+ id = DL_INFO_L2_CONNECT;
+ teiup_create(mgr, DL_INFORMATION_IND, sizeof(id), &id);
+ crq->ch = NULL;
+ if (!list_empty(&mgr->layer2)) {
+ read_lock_irqsave(&mgr->lock, flags);
+ list_for_each_entry(l2, &mgr->layer2, list) {
+ l2->up = mgr->up;
+ l2->ch.ctrl(&l2->ch, OPEN_CHANNEL, NULL);
+ }
+ read_unlock_irqrestore(&mgr->lock, flags);
+ }
+ return 0;
+ }
+ l2 = create_l2(crq->ch, crq->protocol, (u_int)opt,
+ (u_long)crq->adr.tei);
+ if (!l2)
+ return -ENOMEM;
+ l2->tm = kzalloc(sizeof(struct teimgr), GFP_KERNEL);
+ if (!l2->tm) {
+ kfree(l2);
+ printk(KERN_ERR "kmalloc teimgr failed\n");
+ return -ENOMEM;
+ }
+ l2->tm->mgr = mgr;
+ l2->tm->l2 = l2;
+ l2->tm->tei_m.debug = *debug & DEBUG_L2_TEIFSM;
+ l2->tm->tei_m.userdata = l2->tm;
+ l2->tm->tei_m.printdebug = tei_debug;
+ if (crq->protocol == ISDN_P_LAPD_TE) {
+ l2->tm->tei_m.fsm = &teifsmu;
+ l2->tm->tei_m.state = ST_TEI_NOP;
+ l2->tm->tval = 1000; /* T201 1 sec */
+ } else {
+ l2->tm->tei_m.fsm = &teifsmn;
+ l2->tm->tei_m.state = ST_TEI_NOP;
+ l2->tm->tval = 2000; /* T202 2 sec */
+ }
+ mISDN_FsmInitTimer(&l2->tm->tei_m, &l2->tm->timer);
+ write_lock_irqsave(&mgr->lock, flags);
+ id = get_free_id(mgr);
+ list_add_tail(&l2->list, &mgr->layer2);
+ write_unlock_irqrestore(&mgr->lock, flags);
+ if (id < 0) {
+ l2->ch.ctrl(&l2->ch, CLOSE_CHANNEL, NULL);
+ } else {
+ l2->ch.nr = id;
+ l2->up->nr = id;
+ crq->ch = &l2->ch;
+ id = 0;
+ }
+ return id;
+}
+
+static int
+mgr_send(struct mISDNchannel *ch, struct sk_buff *skb)
+{
+ struct manager *mgr;
+ struct mISDNhead *hh = mISDN_HEAD_P(skb);
+ int ret = -EINVAL;
+
+ mgr = container_of(ch, struct manager, ch);
+ if (*debug & DEBUG_L2_RECV)
+ printk(KERN_DEBUG "%s: prim(%x) id(%x)\n",
+ __func__, hh->prim, hh->id);
+ switch (hh->prim) {
+ case PH_DATA_IND:
+ mISDN_FsmEvent(&mgr->deact, EV_UI, NULL);
+ ret = ph_data_ind(mgr, skb);
+ break;
+ case PH_DATA_CNF:
+ do_ack(mgr, hh->id);
+ ret = 0;
+ break;
+ case PH_ACTIVATE_IND:
+ test_and_set_bit(MGR_PH_ACTIVE, &mgr->options);
+ mISDN_FsmEvent(&mgr->deact, EV_ACTIVATE_IND, NULL);
+ do_send(mgr);
+ ret = 0;
+ break;
+ case PH_DEACTIVATE_IND:
+ test_and_clear_bit(MGR_PH_ACTIVE, &mgr->options);
+ mISDN_FsmEvent(&mgr->deact, EV_DEACTIVATE_IND, NULL);
+ ret = 0;
+ break;
+ case DL_UNITDATA_REQ:
+ return dl_unit_data(mgr, skb);
+ }
+ if (!ret)
+ dev_kfree_skb(skb);
+ return ret;
+}
+
+static int
+free_teimanager(struct manager *mgr)
+{
+ struct layer2 *l2, *nl2;
+
+ if (test_bit(MGR_OPT_NETWORK, &mgr->options)) {
+ /* not locked lock is taken in release tei */
+ mgr->up = NULL;
+ if (test_bit(OPTION_L2_CLEANUP, &mgr->options)) {
+ list_for_each_entry_safe(l2, nl2, &mgr->layer2, list) {
+ put_tei_msg(mgr, ID_REMOVE, 0, l2->tei);
+ mutex_lock(&mgr->ch.st->lmutex);
+ list_del(&l2->ch.list);
+ mutex_unlock(&mgr->ch.st->lmutex);
+ l2->ch.ctrl(&l2->ch, CLOSE_CHANNEL, NULL);
+ }
+ test_and_clear_bit(MGR_OPT_NETWORK, &mgr->options);
+ } else {
+ list_for_each_entry_safe(l2, nl2, &mgr->layer2, list) {
+ l2->up = NULL;
+ }
+ }
+ }
+ if (test_bit(MGR_OPT_USER, &mgr->options)) {
+ if (list_empty(&mgr->layer2))
+ test_and_clear_bit(MGR_OPT_USER, &mgr->options);
+ }
+ mgr->ch.st->dev->D.ctrl(&mgr->ch.st->dev->D, CLOSE_CHANNEL, NULL);
+ return 0;
+}
+
+static int
+ctrl_teimanager(struct manager *mgr, void *arg)
+{
+ /* currently we only have one option */
+ int clean = *((int *)arg);
+
+ if (clean)
+ test_and_set_bit(OPTION_L2_CLEANUP, &mgr->options);
+ else
+ test_and_clear_bit(OPTION_L2_CLEANUP, &mgr->options);
+ return 0;
+}
+
+/* This function does create a L2 for fixed TEI in NT Mode */
+static int
+check_data(struct manager *mgr, struct sk_buff *skb)
+{
+ struct mISDNhead *hh = mISDN_HEAD_P(skb);
+ int ret, tei;
+ struct layer2 *l2;
+
+ if (*debug & DEBUG_L2_CTRL)
+ printk(KERN_DEBUG "%s: prim(%x) id(%x)\n",
+ __func__, hh->prim, hh->id);
+ if (test_bit(MGR_OPT_USER, &mgr->options))
+ return -ENOTCONN;
+ if (hh->prim != PH_DATA_IND)
+ return -ENOTCONN;
+ if (skb->len != 3)
+ return -ENOTCONN;
+ if (skb->data[0] != 0)
+ /* only SAPI 0 command */
+ return -ENOTCONN;
+ if (!(skb->data[1] & 1)) /* invalid EA1 */
+ return -EINVAL;
+ tei = skb->data[1] >> 0;
+ if (tei > 63) /* not a fixed tei */
+ return -ENOTCONN;
+ if ((skb->data[2] & ~0x10) != SABME)
+ return -ENOTCONN;
+ /* We got a SABME for a fixed TEI */
+ l2 = create_new_tei(mgr, tei);
+ if (!l2)
+ return -ENOMEM;
+ ret = l2->ch.send(&l2->ch, skb);
+ return ret;
+}
+
+void
+delete_teimanager(struct mISDNchannel *ch)
+{
+ struct manager *mgr;
+ struct layer2 *l2, *nl2;
+
+ mgr = container_of(ch, struct manager, ch);
+ /* not locked lock is taken in release tei */
+ list_for_each_entry_safe(l2, nl2, &mgr->layer2, list) {
+ mutex_lock(&mgr->ch.st->lmutex);
+ list_del(&l2->ch.list);
+ mutex_unlock(&mgr->ch.st->lmutex);
+ l2->ch.ctrl(&l2->ch, CLOSE_CHANNEL, NULL);
+ }
+ list_del(&mgr->ch.list);
+ list_del(&mgr->bcast.list);
+ skb_queue_purge(&mgr->sendq);
+ kfree(mgr);
+}
+
+static int
+mgr_ctrl(struct mISDNchannel *ch, u_int cmd, void *arg)
+{
+ struct manager *mgr;
+ int ret = -EINVAL;
+
+ mgr = container_of(ch, struct manager, ch);
+ if (*debug & DEBUG_L2_CTRL)
+ printk(KERN_DEBUG "%s(%x, %p)\n", __func__, cmd, arg);
+ switch (cmd) {
+ case OPEN_CHANNEL:
+ ret = create_teimgr(mgr, arg);
+ break;
+ case CLOSE_CHANNEL:
+ ret = free_teimanager(mgr);
+ break;
+ case CONTROL_CHANNEL:
+ ret = ctrl_teimanager(mgr, arg);
+ break;
+ case CHECK_DATA:
+ ret = check_data(mgr, arg);
+ break;
+ }
+ return ret;
+}
+
+static int
+mgr_bcast(struct mISDNchannel *ch, struct sk_buff *skb)
+{
+ struct manager *mgr = container_of(ch, struct manager, bcast);
+ struct mISDNhead *hh = mISDN_HEAD_P(skb);
+ struct sk_buff *cskb = NULL;
+ struct layer2 *l2;
+ u_long flags;
+ int ret;
+
+ read_lock_irqsave(&mgr->lock, flags);
+ list_for_each_entry(l2, &mgr->layer2, list) {
+ if ((hh->id & MISDN_ID_SAPI_MASK) ==
+ (l2->ch.addr & MISDN_ID_SAPI_MASK)) {
+ if (list_is_last(&l2->list, &mgr->layer2)) {
+ cskb = skb;
+ skb = NULL;
+ } else {
+ if (!cskb)
+ cskb = skb_copy(skb, GFP_KERNEL);
+ }
+ if (cskb) {
+ ret = l2->ch.send(&l2->ch, cskb);
+ if (ret) {
+ if (*debug & DEBUG_SEND_ERR)
+ printk(KERN_DEBUG
+ "%s ch%d prim(%x) addr(%x)"
+ " err %d\n",
+ __func__, l2->ch.nr,
+ hh->prim, l2->ch.addr, ret);
+ } else
+ cskb = NULL;
+ } else {
+ printk(KERN_WARNING "%s ch%d addr %x no mem\n",
+ __func__, ch->nr, ch->addr);
+ goto out;
+ }
+ }
+ }
+out:
+ read_unlock_irqrestore(&mgr->lock, flags);
+ if (cskb)
+ dev_kfree_skb(cskb);
+ if (skb)
+ dev_kfree_skb(skb);
+ return 0;
+}
+
+static int
+mgr_bcast_ctrl(struct mISDNchannel *ch, u_int cmd, void *arg)
+{
+
+ return -EINVAL;
+}
+
+int
+create_teimanager(struct mISDNdevice *dev)
+{
+ struct manager *mgr;
+
+ mgr = kzalloc(sizeof(struct manager), GFP_KERNEL);
+ if (!mgr)
+ return -ENOMEM;
+ INIT_LIST_HEAD(&mgr->layer2);
+ mgr->lock = __RW_LOCK_UNLOCKED(mgr->lock);
+ skb_queue_head_init(&mgr->sendq);
+ mgr->nextid = 1;
+ mgr->lastid = MISDN_ID_NONE;
+ mgr->ch.send = mgr_send;
+ mgr->ch.ctrl = mgr_ctrl;
+ mgr->ch.st = dev->D.st;
+ set_channel_address(&mgr->ch, TEI_SAPI, GROUP_TEI);
+ add_layer2(&mgr->ch, dev->D.st);
+ mgr->bcast.send = mgr_bcast;
+ mgr->bcast.ctrl = mgr_bcast_ctrl;
+ mgr->bcast.st = dev->D.st;
+ set_channel_address(&mgr->bcast, 0, GROUP_TEI);
+ add_layer2(&mgr->bcast, dev->D.st);
+ mgr->deact.debug = *debug & DEBUG_MANAGER;
+ mgr->deact.userdata = mgr;
+ mgr->deact.printdebug = da_debug;
+ mgr->deact.fsm = &deactfsm;
+ mgr->deact.state = ST_L1_DEACT;
+ mISDN_FsmInitTimer(&mgr->deact, &mgr->datimer);
+ dev->teimgr = &mgr->ch;
+ return 0;
+}
+
+int TEIInit(u_int *deb)
+{
+ debug = deb;
+ teifsmu.state_count = TEI_STATE_COUNT;
+ teifsmu.event_count = TEI_EVENT_COUNT;
+ teifsmu.strEvent = strTeiEvent;
+ teifsmu.strState = strTeiState;
+ mISDN_FsmNew(&teifsmu, TeiFnListUser, ARRAY_SIZE(TeiFnListUser));
+ teifsmn.state_count = TEI_STATE_COUNT;
+ teifsmn.event_count = TEI_EVENT_COUNT;
+ teifsmn.strEvent = strTeiEvent;
+ teifsmn.strState = strTeiState;
+ mISDN_FsmNew(&teifsmn, TeiFnListNet, ARRAY_SIZE(TeiFnListNet));
+ deactfsm.state_count = DEACT_STATE_COUNT;
+ deactfsm.event_count = DEACT_EVENT_COUNT;
+ deactfsm.strEvent = strDeactEvent;
+ deactfsm.strState = strDeactState;
+ mISDN_FsmNew(&deactfsm, DeactFnList, ARRAY_SIZE(DeactFnList));
+ return 0;
+}
+
+void TEIFree(void)
+{
+ mISDN_FsmFree(&teifsmu);
+ mISDN_FsmFree(&teifsmn);
+ mISDN_FsmFree(&deactfsm);
+}
diff --git a/drivers/isdn/mISDN/timerdev.c b/drivers/isdn/mISDN/timerdev.c
new file mode 100644
index 00000000000..b5fabc7019d
--- /dev/null
+++ b/drivers/isdn/mISDN/timerdev.c
@@ -0,0 +1,301 @@
+/*
+ *
+ * general timer device for using in ISDN stacks
+ *
+ * Author Karsten Keil <kkeil@novell.com>
+ *
+ * Copyright 2008 by Karsten Keil <kkeil@novell.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * 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.
+ *
+ */
+
+#include <linux/poll.h>
+#include <linux/vmalloc.h>
+#include <linux/timer.h>
+#include <linux/miscdevice.h>
+#include <linux/module.h>
+#include <linux/mISDNif.h>
+
+static int *debug;
+
+
+struct mISDNtimerdev {
+ int next_id;
+ struct list_head pending;
+ struct list_head expired;
+ wait_queue_head_t wait;
+ u_int work;
+ spinlock_t lock; /* protect lists */
+};
+
+struct mISDNtimer {
+ struct list_head list;
+ struct mISDNtimerdev *dev;
+ struct timer_list tl;
+ int id;
+};
+
+static int
+mISDN_open(struct inode *ino, struct file *filep)
+{
+ struct mISDNtimerdev *dev;
+
+ if (*debug & DEBUG_TIMER)
+ printk(KERN_DEBUG "%s(%p,%p)\n", __func__, ino, filep);
+ dev = kmalloc(sizeof(struct mISDNtimerdev) , GFP_KERNEL);
+ if (!dev)
+ return -ENOMEM;
+ dev->next_id = 1;
+ INIT_LIST_HEAD(&dev->pending);
+ INIT_LIST_HEAD(&dev->expired);
+ spin_lock_init(&dev->lock);
+ dev->work = 0;
+ init_waitqueue_head(&dev->wait);
+ filep->private_data = dev;
+ __module_get(THIS_MODULE);
+ return 0;
+}
+
+static int
+mISDN_close(struct inode *ino, struct file *filep)
+{
+ struct mISDNtimerdev *dev = filep->private_data;
+ struct mISDNtimer *timer, *next;
+
+ if (*debug & DEBUG_TIMER)
+ printk(KERN_DEBUG "%s(%p,%p)\n", __func__, ino, filep);
+ list_for_each_entry_safe(timer, next, &dev->pending, list) {
+ del_timer(&timer->tl);
+ kfree(timer);
+ }
+ list_for_each_entry_safe(timer, next, &dev->expired, list) {
+ kfree(timer);
+ }
+ kfree(dev);
+ module_put(THIS_MODULE);
+ return 0;
+}
+
+static ssize_t
+mISDN_read(struct file *filep, char *buf, size_t count, loff_t *off)
+{
+ struct mISDNtimerdev *dev = filep->private_data;
+ struct mISDNtimer *timer;
+ u_long flags;
+ int ret = 0;
+
+ if (*debug & DEBUG_TIMER)
+ printk(KERN_DEBUG "%s(%p, %p, %d, %p)\n", __func__,
+ filep, buf, (int)count, off);
+ if (*off != filep->f_pos)
+ return -ESPIPE;
+
+ if (list_empty(&dev->expired) && (dev->work == 0)) {
+ if (filep->f_flags & O_NONBLOCK)
+ return -EAGAIN;
+ wait_event_interruptible(dev->wait, (dev->work ||
+ !list_empty(&dev->expired)));
+ if (signal_pending(current))
+ return -ERESTARTSYS;
+ }
+ if (count < sizeof(int))
+ return -ENOSPC;
+ if (dev->work)
+ dev->work = 0;
+ if (!list_empty(&dev->expired)) {
+ spin_lock_irqsave(&dev->lock, flags);
+ timer = (struct mISDNtimer *)dev->expired.next;
+ list_del(&timer->list);
+ spin_unlock_irqrestore(&dev->lock, flags);
+ if (put_user(timer->id, (int *)buf))
+ ret = -EFAULT;
+ else
+ ret = sizeof(int);
+ kfree(timer);
+ }
+ return ret;
+}
+
+static loff_t
+mISDN_llseek(struct file *filep, loff_t offset, int orig)
+{
+ return -ESPIPE;
+}
+
+static ssize_t
+mISDN_write(struct file *filep, const char *buf, size_t count, loff_t *off)
+{
+ return -EOPNOTSUPP;
+}
+
+static unsigned int
+mISDN_poll(struct file *filep, poll_table *wait)
+{
+ struct mISDNtimerdev *dev = filep->private_data;
+ unsigned int mask = POLLERR;
+
+ if (*debug & DEBUG_TIMER)
+ printk(KERN_DEBUG "%s(%p, %p)\n", __func__, filep, wait);
+ if (dev) {
+ poll_wait(filep, &dev->wait, wait);
+ mask = 0;
+ if (dev->work || !list_empty(&dev->expired))
+ mask |= (POLLIN | POLLRDNORM);
+ if (*debug & DEBUG_TIMER)
+ printk(KERN_DEBUG "%s work(%d) empty(%d)\n", __func__,
+ dev->work, list_empty(&dev->expired));
+ }
+ return mask;
+}
+
+static void
+dev_expire_timer(struct mISDNtimer *timer)
+{
+ u_long flags;
+
+ spin_lock_irqsave(&timer->dev->lock, flags);
+ list_del(&timer->list);
+ list_add_tail(&timer->list, &timer->dev->expired);
+ spin_unlock_irqrestore(&timer->dev->lock, flags);
+ wake_up_interruptible(&timer->dev->wait);
+}
+
+static int
+misdn_add_timer(struct mISDNtimerdev *dev, int timeout)
+{
+ int id;
+ u_long flags;
+ struct mISDNtimer *timer;
+
+ if (!timeout) {
+ dev->work = 1;
+ wake_up_interruptible(&dev->wait);
+ id = 0;
+ } else {
+ timer = kzalloc(sizeof(struct mISDNtimer), GFP_KERNEL);
+ if (!timer)
+ return -ENOMEM;
+ spin_lock_irqsave(&dev->lock, flags);
+ timer->id = dev->next_id++;
+ if (dev->next_id < 0)
+ dev->next_id = 1;
+ list_add_tail(&timer->list, &dev->pending);
+ spin_unlock_irqrestore(&dev->lock, flags);
+ timer->dev = dev;
+ timer->tl.data = (long)timer;
+ timer->tl.function = (void *) dev_expire_timer;
+ init_timer(&timer->tl);
+ timer->tl.expires = jiffies + ((HZ * (u_long)timeout) / 1000);
+ add_timer(&timer->tl);
+ id = timer->id;
+ }
+ return id;
+}
+
+static int
+misdn_del_timer(struct mISDNtimerdev *dev, int id)
+{
+ u_long flags;
+ struct mISDNtimer *timer;
+ int ret = 0;
+
+ spin_lock_irqsave(&dev->lock, flags);
+ list_for_each_entry(timer, &dev->pending, list) {
+ if (timer->id == id) {
+ list_del_init(&timer->list);
+ del_timer(&timer->tl);
+ ret = timer->id;
+ kfree(timer);
+ goto unlock;
+ }
+ }
+unlock:
+ spin_unlock_irqrestore(&dev->lock, flags);
+ return ret;
+}
+
+static int
+mISDN_ioctl(struct inode *inode, struct file *filep, unsigned int cmd,
+ unsigned long arg)
+{
+ struct mISDNtimerdev *dev = filep->private_data;
+ int id, tout, ret = 0;
+
+
+ if (*debug & DEBUG_TIMER)
+ printk(KERN_DEBUG "%s(%p, %x, %lx)\n", __func__,
+ filep, cmd, arg);
+ switch (cmd) {
+ case IMADDTIMER:
+ if (get_user(tout, (int __user *)arg)) {
+ ret = -EFAULT;
+ break;
+ }
+ id = misdn_add_timer(dev, tout);
+ if (*debug & DEBUG_TIMER)
+ printk(KERN_DEBUG "%s add %d id %d\n", __func__,
+ tout, id);
+ if (id < 0) {
+ ret = id;
+ break;
+ }
+ if (put_user(id, (int __user *)arg))
+ ret = -EFAULT;
+ break;
+ case IMDELTIMER:
+ if (get_user(id, (int __user *)arg)) {
+ ret = -EFAULT;
+ break;
+ }
+ if (*debug & DEBUG_TIMER)
+ printk(KERN_DEBUG "%s del id %d\n", __func__, id);
+ id = misdn_del_timer(dev, id);
+ if (put_user(id, (int __user *)arg))
+ ret = -EFAULT;
+ break;
+ default:
+ ret = -EINVAL;
+ }
+ return ret;
+}
+
+static struct file_operations mISDN_fops = {
+ .llseek = mISDN_llseek,
+ .read = mISDN_read,
+ .write = mISDN_write,
+ .poll = mISDN_poll,
+ .ioctl = mISDN_ioctl,
+ .open = mISDN_open,
+ .release = mISDN_close,
+};
+
+static struct miscdevice mISDNtimer = {
+ .minor = MISC_DYNAMIC_MINOR,
+ .name = "mISDNtimer",
+ .fops = &mISDN_fops,
+};
+
+int
+mISDN_inittimer(int *deb)
+{
+ int err;
+
+ debug = deb;
+ err = misc_register(&mISDNtimer);
+ if (err)
+ printk(KERN_WARNING "mISDN: Could not register timer device\n");
+ return err;
+}
+
+void mISDN_timer_cleanup(void)
+{
+ misc_deregister(&mISDNtimer);
+}
gmQc>뛮 rGvs.F_޸dx (}l8tm V~Hp:ŚW0lSu;2/9@;U}J ^g`I1%V(k?'Ѻ=^8}10PQ5xb˓p|F[˶0N`W Q+\`vz+M.jr@&)3KbX8uͧEC0C*b$?6GpR Bw+-r]ka"`q"Y,x 4Se^c$]`ds6:0">u )] wB2Vtuf=k.3xaxT*s>=rϭ^ZZLa$]~ QŠST7*/z #O(|%Rd;wB$Y6̆aW K!t& bD%+-,֚AP{Flm,iޠxLhe?+[%6F,A} z3ż*>_RE:" vv/;ǠC N+} 8&$-3lYZ`mgfcjtͶvRB% Oޙg-i0tvÎU3XJ>g:Uú(AZl]pijvĭZ/ AR \||LS+LfEv%0+5p6-,#10vdcH1@alGZuOaUIxʖ[9:MH9^"T-|(Nj>txjfÃdp-lTT-J~F947\:LfN7H mNk0} &%; {y;T=Rַ%t;P?|dK}-'`@t8~MgyiJ2ZjǤ#{Sshu?ԦTgav:&1RH2E>~Z;3\gR&_,5i}?J#pqD24a1>j2=9?)x%QD)aZ])ۃ,T1mz(%o=,z $$㢄NCp*2Z%LwRes3*Z[U +ժ(MDaߩ]xP}f2ŗV(t"/Y^N㵼,߭Ek e|%a-wY@~T" -ek|cGyb٣|+E #|;as&rlX>H+0)dr&|۝!1bH^Ac]`w|2 -GD ,{liZؙvc"^Aن0B[*[~E&B{:">*hEAkE(^\Qܻ$:o vW;J" } ;9eٰF r$ʼnZߒhZ-F{X1o)ݯveo'GpjM XQq`56_h@@hU'پLK6fXҠ`o`Ö(XizQTcIxZg\vHj!iJ] }fv/ti&{Cw9E{:` ;jn]<鈺Z:ŢSƇS0m3wm߂ox7ln1?w\Rm.Ht뷁tYM&)ˌ8] [Po$aOjb8(3z.^Y#,LX 3Pԃn䌜|A걯u0 ?zu4M@+l˄v*hy "J7<"rO>TFMsf&okBؘ'K1^,HG|3mWm7Ӊ QmMxrbR y?5 CZ0(xN~M-w7b$N00e4"ݧ%ahPEV *N휴%0, ҙQ[D`ǰ!Z @#D6װ%$PEuC=`Z=^9oWLh8 j6{X+lP۷n\JIe;p=k;AB~18/iX/BX FUŻ ^!`+[,mB K4 HZ kTjV+Xvn_/?F2jG2*yꌠE -[]58}5!'b5[& n@t̡x`)b h0ڸQ ˝ T5dcrc߳}G۸*;22ɁSw'QómdV D"eLE-ZV*I!JdKc)+n.lA: 0h*[d& j"RNI]x‰Y00ͯ5= 0f0^5sy;C=0o8Pn$̎eQ&8V( ~xs߫x*abWScT]|m1wer-Of80A{?cGM$eW\Нˡ£ZF}`Kypg"}Xjb|G"ڀ3>?  nT%Y=ypqC+.HL1m誤cZ Z1+;K.?^^R[.)uN!ɻi=&Bon5/Y~u_WH'kPN]IS ~>yŕ.b`9}Sf-~ZyL:-(4lDz{-l*S}G YQ+Χ^o2ĴO-pJ-3Th&0 'P@o$E~Wa,.hGhj E^gcA yL+^raq1AzeܓLd-P8LeU^92N 5E]B1LYY}罂0-cܞ]YU`E< #sM x"Vs2{4hLtD )FE27!" .9 Q[F ڦG/~ o؂Y" n\z=ͻW"8a,fO&g =sĘFΨO4Teڠ C5>&,[>8Ư7]N}AT;I GCJ[bThT3A mSĜ'(զzGK诐spZ" z zIhuBJp3 aR;|R^K.#t2;7 $/>Z4 !UǴq}-):HSRfFZ|ƟMO-TiOd*yxA%hQ( U<{AE79`o v.vwDropH.`*"_׹.u S9XU KlFEr݇^:ݱa k& wѱ ÉkXdLpѮ :gK36X*c<`EyYD Z(`Za ~葩?җ\Es2D, AwiM<5)x ׻2-JVl̍I4$=bL6`V.I6˅ASnm@7o3ҧ| = D䳡^˃fɵb+ſBB-j!1.kܶj(ϛ΁' %ߜqFǪӀ E'$hFU;?l΍sAnQf$j`]fAKu5:Me X/mPF6€; tI[++AvR[<-u z1ڍ4rVmlEүK<~!WF0F&Qķb0sB,q TW^Te^u^UA12T"฾7m)-r08D͊$}E+8lH}+"(kPRB\a&)f_(o ~/`!ru E6\}kgm%I.C`v@G iFHnܺZ*$C^<悙y:к@---DdƧb6| {Ѩ 9 }`? rρ]n|qr\1PA}>WˣM;ΈxDt]N+<pz%ea(i_! :*=2Y:c"F%TaQ-y#6,>A |z4%֌Qg֪$PL&H4QzdAy,xw%6ss)]vWPаG`X? xabrFdVU%yC-\|c֑b|\) A`4W 66la@{'x,t%jv asuչM.(Ӹo2ȱ Tj Z3ewT[hF! d8ɢN6bfe_6:oZ.V9Q'do3LU0ޝh 5rAT ;4y)J5Np1yot3n! 0TWavv2\1鉀z4J I+%КIZWBtbe;׫ s@kW 䱫NNϚrOǽxi11.T9([ЙX26ߕ*_79fɗzX3,ү|߹%P%_ O)^kʇB1R^! $+뵮}BMʫAzm%2ϝ:AE3omR8Nbܯ~s'-?9df&+MeS4%:]o6HpgfrNGa.u.XuʅruwAػ*> <g⠙PTQ T1c*ͦ}.qgPs,:CVĺ,[\y+~ո(]VnKkUuD>D8 R,[!{zz')X_!`ƥ X<.4f=yi N'-u9놧ؐ#x{9jD@>Ϲq˾+0IO*0 izbBr (,zIz?+=hWvZ2XF~-aQH Kb Ng.%bdqqկLRѯwnje:R Q(;y[?gC10,:0V,j1yK9IM`͈k8Hn-&{̙sLzL&XiӄF"ȧl8"!z*w(v^'XQ%4!1W;kAZ"ue*>"wMa7H69oL'鏸c"Z8idbM%ʼnh=O~sџ"n nV>ԡ1$*Kz7l%R#Gk{rH(Ѷ5g:.ۥ#ߩ"l0ȹ5t*%uC'wv_Fy@4\O7{ތ/J|(TS!a+S/k1)\LB,Y\e}XaA`t Q&Ku~D˙.6h2*ad=!S3ON 3,z1oI$= եr "=ͿJӕ.:IBYcVIM,uVYTrF 6 g^zV pBA]0kiQT4X@@e'o]Q] cj1`!JEj|; :IK101}FKmZ ?>IS7^q~;VP͓д}a<-:W2ekHAZ SZK!p vт,m&TOE~ } O\WY`K bXu x܈v$L뽶c $O>;'.uR>+2)dLOB).xØTbA8p8\?z0=V,G{h-T)zo4#:w15"`5ceя$,G-q>`o (߭&SwB ~^ \r24r24V[@# 0Sͨ-i'] mZ~\uuP7{1Jq:2uiJWuwWA]h'Sݣ!Z[?m6؃y LkރE\6NFX,1Čb|goq7xZg~NZ$ BGf1`ñj t G$$6&p&-C]҈@ZlSaWUSq&Ie *Е,V͏w( f9d/PHf}X1[4i Ň~n)n =*G{5n*6m~S'!)?e"o>WE6/ʀ'`߾l6ïOU]&#Q+Fg+&+m2zʉs`l 蝦pS]p]U-٧`qr̎f|RS7?Pfnhd&8F=F{ K }Jg6/00d6q7~`Q`v>,]"ZL 9WԳ*H\=.Li2oQB["7z'6F- ԜD!-wKC (h6+[N$-Vv=Jt k{xuVQn N0bY0:UNz(ygdt ) 8}hsC-X+'JG$DR. j%i%H?r@_ZJe kuM9}Mh0C ٯ kFJ[#ҏr 9%Df~BaN ˖G]~~+弚 ᐻwFт3X[0!l)sw Em`69ձܹA=ve+s?]Ȕ1+,HL%jЃYZ_"G'3he͛.(n151mG8)9qh6:ֱALMI`c6Snozľ(^Mqc;j0sB'UooTK{wPnu-w\\4IHA[e>똭f M &BWLeIb٧߈#2̘$Népl5rd{qi{W4xb#ϋidn^Biߎ+ZcHsh,y6bܴR*s1ge0D4>ją,\ ԯ ׄsӱQ3^\1c1A#7dw }篿*l\/h%X0v4H>M~نh>V9#~ 'J=Bg~Mm@vB[uE PYu%Wc-/f'P1SxN>k#(UCUZ| G1f핦l$`*閈yZo&̇K 4SzqP!BUg"\=39wA ,UݐTFw(J)үK޲$D1uVw6q(}sA;WbW3$Ҳn'"!'0N5SB5u`;P3R D(BRQ4MLAFv$3|ᅿ|RI~\y-i.,Wc<> g}V0~ DDŗ[)z|8F[=*8rB´bOh7EF ꩣJ0MukU_T~}`<t 힊#sB-S9l4&$(r Gku?v|]U?+6x[-=[`{yQ&nm=b䝇RJ\c|h۾2X ~ ^5ЯwVw<xa(0zPY`^eU|Xbq<8ц™( 'Y:e k@R7pV\.:;M Pv zE~QD[s$}ъtY(X~R^/ӹ iT&.zU%"u .af& 28 SCդW͙6]/+hO{;`2UDjxMiLaсWnS-$fw8EW"fGA<7pvN?T@'[Mzr#sJs ߾U3qUKghɿٶ# Z@UףmM)ga9RVhi]hfOs݀kkf?P 8+J5Pݦx(3 XLH>1VKiM8JuQ?` ig&QP k ~~VNv^>FSt>eh5VgQŜQ|Q=HRT!*sgʬPgcw:oTt_Sd|7Oūw]=Ii TK x>ıEkF;j U}2gXE~s= " 10%d`"d256v"yʵ+gWD][=9HhFJnIrޘ*TgJ22N7q>HJSM)<| Pv"jt4@"p!= a&K!`̽E΍pԔԮ #uI}Zx*/ 6!'_|sK3if@~w8 D: 3fJ |4fxfYgh9}gрc!MlghĚZ(z@k +%3c%jCa14B59TkD%EVCd NMR!uA q[.B.+Ns zXr^9mEׂ|[O“O?4i\>?il2]f+}E'-$Xen&i&A`U2F+%sQsh//V^>yZWa,D18 2sI+NjXyVKHbT/gjә}Vؗ,$˛7&"2!JYQSflpa|4!LX/qHUG(䊱gdEsGVW`RsTX'XU5Zl]4 5ݡȋs̨(G FrH& Hf}L24b@k-D:Xn9%5ᙴeC__{9kךBxK%%$fFȱg/ڄ m&kK LZH" a3XfB W z~=!-8, ҳQCE`'Z./jS\l1EYO(?)b[$`c;Ix1Ƀ3GklO]"QZaLWU2:;z#d8׭wY1[{B N3nd40,fXHH$p4*giGD`3L$iM%FG`F̈L=Q+cqTz2=Mb=ahCnibGF h?S'T?!cmʎǬ| UcW|i\'QV.4}T*}3),MQ:HR#L>]R$6ɼLo ѳwi<#}:ؑ w(bRӠO>QyRq ~9BDXٍ\5a/g]C3Ҥ oֹXǝ nBjn3R,\Im3bA`׬ +ep+4=EmA53q $k Oטs%M.~*e3= Fk{uNg&6Rbu p͍4myKut w&i>Vfm@RK=r{BMBo,{ V!  1NzO6]Ql F.ViU9`qTys)M]TC`fXud>Cȳr)`TS~ώdKJv+Fn;FaWvR8Ȭ~^Mp5 |cR XKÀ'I8ryA}B nפ@#DʑG}5x)5TͿfGcrQep5@_{ TBZV2fel%tϱg' r(@4l+Snh HkUWeg|nFado+y;%ԥr*iӳDZ?(;vpWjb$C |v8%S 鍼/},}D lbIgh7q JKu5̣hC?Q;@g_׾B,HW.q t\7sT|C|~mIcTj`uA_8  :M;y ?ϏFv45Eu%uCjC%,2ǘSrݿj`}}3mKc*][Li0:2:(p& ,zMR:lתy-s^ NjƋ jҀ(Rc_j9,U/bϙd(IJ4ÅkizB%"~IV8E9SR&4TU Drkhz8/wMJʒ=j[ykB9Iq.fZ^4liOًȌSYҀ5#Ppi f7=Fِf/x#_|Ǽݾ:2JD%ƫ' ִˍ;vB?% 97ü_φQD "vG6_Qrl1)c]'F!NY ]K0?e&Otzc7E=DU5$iPD,خ6^ByZ!3 RZ"[z&L͔Q{=r όU`$E/S}y0vI!:V҃U()j(?.Rhm?OqG}G(K8qZ,|iNŖVѨQ@-(G?'hOBF"&dk{5Neot5cXM@a6/oxך=2% r>Ͱ.J2T Qd˱yX5-&a!jSU&n çb"4-堀:SM><+2I8coH W}P!9IN¦+fhz6}o\B\Ty73CV5˛@L z.')P-Fot* 05]bJzZ3\je]qXxhBq[Q󬇁3ՖkRXifc@]mᬙhTgq?K؉DzSc-o-]ԄM)ތmo9|uJ쯱ذ܅Z֯u\Ye! p?EXi.ù"dLCX=K"6^hWz4RG3to+@w؞;l3 ɫB;bNKL힡U][ X85\HH 9p>{5sI pu/mn\4Efxc@i,ZxÑCp΀+*ɍj-[@{rWh$+!\= X*XhoG n\8ht/^jyyT}!GUdka # `$~> bEr ]ɽNfp6+AM2J V7(E`n>_'#{ iuEis$Gd1[xU6 Mut,] {1+&ڹI|ۚR,qHW6dHuD"z:r;Ϟ h&tgus47Ga#w%KX2@=u}Ʈ9Ǩa@~!c$$̴&>eG̾#&GOyrEvoYH"GMaTaR aP$zCM oIn((CC9b3Sg M,샽e9^S<,)$kcX𴸌`wؤ=}?悌M<]+],yOv\E'ŝV Wf- Q=fTd \/h)HYIX:Ȩ|c$s{1Yn#]Tv- ОܱC3J<MZ^B,@NEYYvq,dzjįIO%%JCAssywڐQ&`*I|{ZDίb%ld:JU;e, è-uʁ.hյq6xnc ZJ)DžaRvǣ[wFcf- eQy(hIy= h=QƐ We?~{ 96ضWyEQdL?ř;s(GNy w <%DؾRGVγCYqհ16޼)-XMRM#\Ȭ&dM.CܣG%uM~l<qpr1%cm-,VЇ,q*k" g+;L9LE&ix[0\= !=|`jOcQQ(j;TjopEp{#Ŕ2U@R*YH|wCZ1 b>BQD@?%ڳ'FPژx#{9(ʗGKSeaH.N(鵶Yq~(|@*L6٨֟ 3`3Zژ0ҽFdJ8w{FFA¥d+loJnӌ=q'@4դt1k@݈y \10R󽑠$"ӪLJ˓KY`ƜC=vNSsy#h+`#(;d@SO]j֩j/53>vE?;G$.lϭbQ).wmV ːb؄=M$<}rѼ%ԣw 7>d!IahXdBZ/@_:ȋeE^ [HG} x 5՘8~&7O<5_QS]D;g /pS]OMajri2xX/IFv֫zd^b4}:*\E=Qo!:*ٺIJ9[/ FHt cK h,ZޗGn)ق<1 ިdw&yiGK9fLo6v(L0Fpw.Ҋw$! 8J+۵]z|[f91v-H9jYI_+ ].ƥ I6@h ߁ྕ>qwqAmOXJH0vF?r[͊=/a6L[~~mrSU2Xy8|28>fJHogPL,pP:<KTɻK%x>%7ԹOD!Wq_iK%aʬ U#nG=bS{|^#i%A#Gfa:mR%ȆeJk#ijuF-_۽8Mjr_ Wjl 24-x+y#֔K;x̽~*ooh-kg8ͧ@7{M,ޜ[~M1[|ԶĒdIXf$!]*3D0v`7/xN 3;]:: LzQ{Ŧ2 mA e;&WQ4>}27.=o8y~V-5?Ows]YԗЀtW%^hG(<WB;l|q=sqe_yXy?%nH#1Do׆Mu%\'&MȂ`r1獐d'%fĻ?Xq?x3Ča.NA/~SxMј?dtKk,*|p` [56ĩ{qS2\Bg &ti$ }9yzV_m`]!dc-gE* ? &.rm%t> :f",CR)8,4.-:: 3{˭56ڛ$mj[Eu'a i3b|!x\_K;1.ztPhgKar A4oF?'3 5mݼihsn|OF.2 _֓b`fƱ ?Q!YZ }ۃl$^su#\W}Bz_^w S)jezͭ@ 9j6}4 f&'ߚneHSVSU 4ˡ]VFgO̱CS:y^9IOƲeI 5QYE[q~ @H6z㒲c1t=ۣک g&3$TpCKZy1e:(شo._-{E凒uSuUS,2fډX B3ml:^UdͲXjī vؤ%]Z3zڪqfgSz o^6y܆[ա%C++Rp0tz=hӬ>_UZ,<5ڋ#jMM;g鎟, l#Ģm a3xP`{*q+HQ%<+Lq|CcG`6[Q!?n$hl߾<_]EDG-ṣ{ךɓܐ`3<УFՔ^{U䧊[k=:/ьbG>F%H/#N"xᤁ-tr†^\D1°{Kt%1گK.? YZ<9^b9+6^\J8XgB &S7 Q+YV?Br:%OmB__*3L:XZܫ>иD eI5/Ojd,`[ $ a˂R8w쮐J#gpσED=1MKfۉ^̠'sSHǜvm _g}[[wIm? /+j"p~x쯫W5AR,+IqXYZSVMu5\~ISW3ǟms9Pt]׆ ? vᐤ`"^6ډQuZlGlWIZ,AJBۥϯK-"u+hר:-צfQmmU1t T99j#o @5Ւ__FxY\ơs-A(K"'MV$W%sy2 k汼Z㠍#tG1*_W I1\X\*_IQ]C]{UX_B\d/a! A R,ղfa`C]Rs&9yy*E%((3(0= z"Lebz`&61K.[@f bPp.GbԹGS .A%L-4\(!}  B7 l>JIs$7_1z `idҙٕIպl10RCd;Dzz(o.b1熹QQK7!z8:P%L*PטX1OJ :Ȳ u\sۅMRy 8:ۦԠwDCG$[]M`lI!oߡ}ѹg 1bdمJq7ɮn\E30ߘl03X xr擿ؖhߡL^G,H ^3Q( ce|鈣>@.A2'hm$8$3-y(QN؊4ϫbtƷ ?/?&eK;/U# ҢzdCC9rfՊgՒ#K3o0 H!._l;L2_wtD\('wK~!f%5cN~kFe&Xm Ǥj| ً.n:+ Z'a¹)6}]IpݸҠhn^~e!UZ|Bk>wejė `i6"-1vq;Iӷ2 )JaKNk[l`eSv\@;R>Z(emx=YS4kZSuJ nnj ԴnWE{)U9K$qr6{1`NwydҸ}7>e$Hh[ 9CtwElƲ*!rxfh\9$ݠ1zLi/qOrM['m_ÊIECbge(y8DN _]sp\ggiۺS𬅝zu.ˊ԰Np#c\H TbaͺY {E9Ձ_o[J~YdwjN߿}~2,K@L~b,۠O\%ϸ:?`dhٶ.?0e{#G vj9xnsQ( us-52 H~0KZL7ʈi|IYƾxM .[0܃b3>Z1yڌ,̻s) Ьa:ByfĠ4!Kevy^! I(R(2HIV iH]Tꓢ1, =ɝLUQfbJQWacR5bI f[|o *$^' =Rެ=+ʃ70kDwOtG(K3&x ;5M]cP΁ㇺKUW#ۈ'b"٘51gz+!7pC1\(S-nR^܎#5!1@S3LԶq|<:N5*iOiV4Mm/]THbuu8)=L]  IA ϖ]~Õ߿ZgeTC,R|y"0+o*2q2&> u?g& >ܻ#z3d6pmͲHٔqnfŸqCy w:Po;UiJzQ(1 1w˦99Uհ΂R}1rz*ObHڜ9RsSwB1XBpEV3RB 6+lV+mvΌ39RjzerM8F1UiϹ?UЩ^A`=jH mT}~9.[jŋ.iBn?3_֊ ,H2de?28kzU0&B Dn6>[g-3Sm}cI)1t˕ {M@=Ȉiwe;M84i%hD;UhqmкNvmzx3=8jO~.$H~6=_AKrH0/]6p2m`n*܉q!B᲌n>KoW'm#}-d;##:wYPY9?H1JxQ\օ]^!%IN:\rZZYRt)J|HU_|:1'||>O9ۊ\w8̏uduNJl%8:m ;! QWG44 QXx.m)Ne$ Z}ѴtӅQ.T/lmLŽ ?/x)kHTc 7b@(qaS(*}̈y9'TԾOwIx1Z%,=9_CۉFsne 砀Hԩ<,I:V%>5ΈuA;uwk f|4{fBNIC~esOV@6 jc)Ipg0VЯXƎwJ_3p/>%l)Q 6$X#gj.h`bv< ZHYK@Y{ cL=lq=2%_D&0V^?J59~V#pX@+9`dz;`n[?h _!|{k=k \0\ nLVCS[ U 67@J\RӋ"UROȽi#%گ05 Y. b?hꭚ0J VzhaoDe݁ yU}@-5՗3t'G嶩F0^zǑf;TG;jP|PoЫ 1,7]:IkšWN,\ ߙsӤ.C]KͲdJ 6{kzsF\!vߊ/aҠ&Ѽ"b<:d3ah"r@,j!-AR'n-783`>2EaIo1JTȭ c"$O X@ }iێK'IˎԈt,ׅ+9rI 7~am-ېDӫGD e^ 8*4ϊ~K2#,q )knJ9 !4#}G } wrND۲ZC:4 7oP-F/p?pkŁ p8"iC&(:2I+Z@Xjxc߉D~t"_}mbs6Q#:zi 90HR6n#$S"do8[Bf)rnDo'I9GΑ<p%Д?EN1GU]/olwUeQy%2oPK_Lh 8ljx0w)Jr%PIxJ9C/|yC_ˆ \#bOyk3ڕ$N#jnIJcBCu\,j{:z2!2Vqk{' w!G\h x11B_Mfw,2wȏ͵=GG%3}W3;DUyCW5sU\卐_5әOeQ5Ҿ -TjG=)=Lmܠԯ`AkF r|^jsyОqo.cHIß 6g:|vLZ{287Rû@ӌ5c=*/zie4UඕRh{Cl vuo aG{,sQT^5q,6˚p )^%Sj-/Zg)oC…pwxe<[{fv׳즩S=kTW}3êETӗL.)y,ծ>2H᧼5$|ILb6V!3Éd,3VOR:ۃn$U7(N>+aNV@=b ɝ 2HMٓ޹j|Q3%eNܨ7 W[iܽ=(8&Zez%[XbxȻ7jN0_(y6/9L$QI[-vL"ma-$ JSa7k.lFVv/lx7W|z=XO3cſKN;ՒDJ0w[%mlh@#F:]; M^RYȩ PH#5we%75Y_p -=*om-1 =f@C#/Wy hAt&gw+ĕR\[G3O7-G BS=֗"WFP3n"ww93;򥹖/2nr5dLqA5Լ}XsNE1pVO젼+ӪITo8v=iD,N)@*rAޥ͈] nm@.9+ ,?"꙳8}YkN.dglDr;fqC'1K`چ&/PPf0q:]&OeiG&1"6q+Ŏ7>gONd]M۽"t 4r͟5>Np#5*oE~'5(JJJi};>oVb=as6nͶ)u3<7$qj k(ST>^CEp* b_%~-m7.¬0Q<SOѐ.yvǹ0{0b8}Hw3|}6t[ 5L߮K=gH|9j#22Vפ0όZ4`cZCF+5NPF&$F\%g`tmd/Mb7T7taQ6*aJ[v[7X"~N4#.60рY_t$@E2p5#Ǜy$_= =) &(JⰎN ]6Qb́vj1/ @IԶGؕUebNf?o-3o!poA6 ǓE q5ȎVG8I B.? FŹז r~/zl[֮He$5jVB"-FSӐٷ>ÏULIP9jhbq`u#M/ :W dZc2}ʡfD %뤿\҆ñ~:anZ/{nVPHgyҰsƪZLbCJAK~,oT$iZi&R o_{/xlpzj[4N@!SDlDaTlP~S[sw; ?s*#!,zn﮿N]RK]$qǷ*d̅!zpeW 玭;Â?ds ~*HKʗ 6(էkYD^ZH<V%U,XEʾ0&-c:O.# 2B p%яQ0гnm9KP4x< $Jj@BeJ2Ce%q8#xWxjT&OBsy"I]j%'grK,Y:q7}^ ٖeY9oi373xeI*7N yF9וX@cNG FUm7*@1S7>JA*+5Oxp(*ZȖDp_O/eV#BC*,wF;x(j.TeZ ]ҹp[@EJrFNH(EIB4ΘCRE%mX~[?J`7ЮkpS:"G:KxU˴!} grmy@Hn?<hh$K!B7.oeR.ps)gmU z9m5d[JvZ'$x`yu䷿G9.|@eci#] PM擁lWuSUϢ ^n[،tS6 'Q5$6XtDIG9fѶI7gXbD{M6ڒ5/$߉X"4褠Aed7E 3ys.fp DP;'H"EM3=gpMQ_kfw^Z\+:ݎ@m#l^+eGr<"Q|KH=:20)xlPA852>q@N8r֚#8"_2i>?idJ&N)0KĻY[q4ț2mˆĉK-zX/NY9N҅zЇ&u\4Hoʭ[jŠ36%q$ \§P6юQ}06}BXW8\K5RRA9$2y RY]$pWgsc֯a(5h8&toay3 :8v>2WdgMxb^RhAƶE:,gPՔ芛uǹKOoO"a e溜?3@շwTXm^&884sH昚'BmOv4g^sKh(UF/b"e 6Rsc ;Lpo,YXS XQxPN~G7ZZ)b[AT[ԏ+#2(>쮬ך$öumV6|]ؔ;p}'-Fݾ8piY/n"DXjt(\@6n`Gl:)bkT{v d> VK,_ nм9s/DFsZ7sGe3 Onsre&;j'n냕k~ADW[i@@I xF]u9|%,FK¥*g(BgTOUC +n8f[L?(MςpK *=^Y#'/<f9k̅1sV/jj,y} _Lw=9kr CR 4t$ ,-EOXg)7|2GY]Mt 3yu\=)u=OyMnjcq;"bgm D6 'JmrR!Ut׆7((.zVWm fS@wڐ])FlkQTmpO(z0G:-X&^k-^<oM/UWdl͕׎^)Ht^e 0ĝp0 yPpꗨ8* N^8o 7B,nm]m%G-EE͋%﹏vah<лo %7'&fb`E߽\iu+UzU:(,"DC ;렲Sj4[!7 IBC6~=qWꗤyXB(VFTǦ>/VLQ2f)̈́5A@5>eF ږx[ kЍ9&̒sp\(aaJ)2RQ:&qmSlo2%<J:ro lqc4,`ܯk<@Ê̺EGlᎷrz:*#hkNvIι޼,V{7޵k-hqXI D.#C4߉w̜ h)ӘnifR_"My~+I+m`hwBjomo$}c`T;Y]G)#U_,>:r7EbXھ~l%>c~>.СRѤb 765m+o[ Q[7'h$-X(( z\8r/7>ӤNtAL Չrݟ>L] JZ.מ)bj8ܝ7_AB3Y_W! =U9Xqi 6l|(cd6/v!Ka(a `zmU?0? xؤ#cDjܾ^,D ~1T{ET4"iqׂ̮g%>sv[{{'Q`ۅ@ W XCD5(n4vō:5f%o#Yݯ*z/HiBS ˭% {&{$-}eH  Y&l.aiV C~ys( #> iM 2va;4;u5&O߃y9WUdҚa] 4]wm<^o82=Gre]T'aB ߼u Ƶz/` >,|_e=2ְ7ӓJ"_t>wH12`,L qӂ ]Nko<}dC̹^C69z:0i%,fNʧ(mP'~R.J`wqP#UNM&;V cʡH Jo8h{ԗx?^L-LGNŅ: |E}pzs'6wgD88Y'yW)%|S_akYhhT=3 } i2ܡG`(wfʩc W<ᗷrg[3YW.Ź{>5@{ySQmA G=>ˀ"$h:4.`?N 81*VT_0XHnKt\G** F/ UDdnYLlO`k2U33EQN=cCGsˆڡ'A^qm\7{O -|5ׇ}XĜ=U]Hp@dW/Y%1B6 0s*H1  J:ҏ0iY?2Lr-U/ "w MD5 )L7ҌXl\pJ*S e[L/~֙ {6EH߃W)F]I4H h}0ʙ fЏky*7-~- ErfĔIL3 db~#fDDW2l 6r>5Z4L:ZO& e:1's1Kɮ^hR/" ADd.'~f۶7*T;*^49U2Σȇ^6 N NM#\^4듊A*BdKNI/N=Ǟ:}z; ;\ANXwʅ-ŅAL)Mڑ`@ sd 6)=2 ȮW9Ztq|owj~d #V|1эYDn03)Op0[I ND_O75~~)#i6{:A.\l3V1xCģL㋯"q%G/R 2ܛ8bd+m. 3Ξ3a œ -cX mlJ(S¬: i`i{a$QK6g (1_٫&9 4_$$䃼ku@B泪8q+ tNk8dX0e7W4՛t&ByG=ci/fg;)ho {S%CBr\SOm@HHaA8 F${K;@<: A<懅Lb~wei)*$aȏctXVD ,Ļ9auG.)g`V#Ez/r" =+0zgiURt5aHz&09ϱKCW-^2qz8bJOD}U0U=FFx["JbJC0vZ,Jdg%طO>EH-"F7kYM"ala^EZߕ rD¬N*飸8( H e6@mGUɖ6L2PmTՕ Q1G,2h I=;b݉kcYɌg P^)@ۉBR= 09hsPzi-B^ᷬt~L|AL]%r"ͰT X7y|n[1Kf,fwcbO):yQΎu8e 싀b;tW[W%͆Q67Lzu4K̀4"_^՝}2дIQAe{q,=!MF%6x|ѳ8s,݊ieT^ڧD*]rC/"hD W!}U@ᗃO7*|<&JƐ[ԅj5W:K2-K߄81Ꮛ9D:V`?9NdU"Q 4XA @;w&Kb,,(\ǟpљ B[alTVk _DX;ڵD; <';Ў)e%56~AIwvˋI[9sMM9N0 vCM (_Tnp϶fi)C!^(,+,>%$" Mǽ4]=JwWqńP+ӼR1^?mH9mNOgKؑW|bKDRSX]/>#hQ^#Qz l* 1=67tY`3xw ח \ z'9]!Z֗9I++ꯟTSQY| :98'8u)SIͩxL \ܯK_KQ.ƬuǪxr|7h8j#r`) |n.Ƞ>4r J u:vJpHsGګ΢e¡75:!] 4 I'- s3-w@%qo xZ19?$®9 8oT_=[(o[GwD5 ~Etm14`Ru~bE Z+]om@QgbkQahwDł hJvuD a{:GDIBQxIzttTMژnLyޚG sEs#pR_n `ɈKߣiADG>~>UmOG)bK]cކdWۍT. {\u<?G1Ⱦ!Ҽ!pSNF .Oo"E'coCӏdNjť(KqXQc@5AH (!q%RcE"ڄ MilWr;R=b`pZoM;yMsҐ B9Xnb:aZ+HyG'go@x05Uͫ#!|QtE͡F`}hOO*J-w%KDIn:}@'ZgNЗKY?L=\m]Մ 47JcW d BX]Z5qrdZ āaV?xIO6[+@Nbd=oALG@YotK,,C-i⠸9bF09N. -!{j31Ws%>s?tI0 EGn2pRnU뒉*zu whg+StQujX/4$. ibZ0;=q+DTtum%';&\\6 ZTVclBJwߋ'Te_v "H7iNׁ4xv+Rnq2DSᝁr,T)SŊ.)ҪX{@GM}Jk&]g\O/D-8uyPfJ?S{}8Ϸ1I.emZTPǢF8KU1u;y]O ѧT -:EJӶ B4iG Xs~^뭆tJ P*gBh*kpy|{4EH#r 'vj>MՖlL "4Pcc;$\eLl2H%nMȨN)G$_Ad;|T%#`Y9lSIiws4 ]%>YJT_,56W+µAѲ1j|e)O*0CZBG l 1z=YkR[5Sݵ_xHSJClww("ȸ#G͢:{V.]͝Cq`4][> Dn SO" YXЫ 4LE}Ux@ֹ+;$ʐAY a c ^Kx T1Zf9i/ct*7-~}h8VDA忸UA!6|NaF%Ϳ7}HtUacL5(;5.&' GȻ7E{0|ʯZT aixP8oV 'fx!5f%Fۧ/1NwQRVxM Q\"qЄ;N *{2v6 [x/8Pxӟ- (iOBq3TNz/ȓo7 $)'lš$]!C2#ȣr18{9W,ֲb N9:92B >7kԹ#<=F ɰJt+:` Dڷ-#8'tqhŏ-Z:ڦB6* Ibjb`[Iז-}[G""9c5Ђ[:q{A BuxHw217~Ojޟ~cFl,:_H-(Rde/+CqW!LlL"c Gg.̫ȷ"|ntq_ z'$EG?eXؓ MV`,Ŕ駘2 P;RLϲ!~1lYv`k7<-#Ѕ,Н}E U+PֲQؽ qdC|[;@`)"kj٧TJ1m|ltcΈ  iD} haP'H0+ L2Vi{B.^%(+ B΅'Q 2d-'K^* 0ʹQed9| TM~V-FXKkxbMWXtB x`zwŘ){r"3zh|!»5PoP>l<GuP0\k'28B>J:JF< ]!%"$K s um42lr&^FX MT|'"jD8f 7A[C7) "y_pC?&zGBWr_4Q`Q8i&UR</$d79M81/zzII@2! ^zu\P$`VdjFp{c)7ju^,z6\AӐ8JQrQg?*8g1;V{z [z5Xw>q=i? (^_-$U*RY?c>+ՑM3nNxR+ɛwX Kv܈OLIh}p_B:Lv|˹isD^VAi)!BJ\މEC[TJPGr3?>|o_`-oDw2Pu܉wq(v0TzQɭMxrY3ve8]|ZTr !;syYS9[kA4! }rra"Icy:H<Ԃ+ ,GfF# -2|2?yZtZN$sI3Al 5.Ŗ̶r:Bmf5OT G@aj.3 `jXFֽ\4Bh,>4-f<&W4"leN"u=N&Ǒ?Rt`MGEKi2L8uv'qk,H9] \遰_t'eof*A2e8$Lo_e (\pZ]5ߎ/v!.V@3dz߽dHV$Q?>Sd($?O$ ޲@^=1)kbE{.s!)t-V/Z(!s_@Zsp#69 I894VT}4emd!BHoiesݳ[|n*ޔNXQ}s1"WMͻ L$}+{".²L2X(olsT֏ 4刡"Ҩ5j%(}q"V Yp`$}gvӪ!A+7tbdzy$oL!+.&Bw%{C YTb38]pՓah[='qwz4 lT*I Ub(ڠeU5DʐÝ%ye(UnP@c/v@>RI tٺT+[ Goo", [AwWkq2Yc\po{S |N}ы c |-pɯkEZvfٹjD %*'`E@]&l#j_HQI:CE;(uC,FM#R}ĿQ}l"Nsҭ<8-K 90ΩL>w{ʶ0I'yҌ%^ IZLfE!c< Q'`q+hC국 )M3d7i>w0檴tE1hQӤXmʼn)WOz;dW+e},#pZv/B7Sp3薶AӯĐ ܱ5(V0 ND8#̉/11?Ȣ曓Y <u$/2PA 4Wk7#wprvb5(q89Fc![q+VRڇZ<*^hHPAmMF?wqW,4\”?ޣ5  Ro=-~"B9G!xX%K/wWmKJ][%E+Q1Au59Vn"X"mHlMպ¯b8Pj ^?˼3e)(u[Ȥ9P",$",;ޚ:[T $gpA4B]Pڋw*ZW],J%DP>7N pxBy깁g-|%ݾgn9%W^^V_/Pu*0>%@T|B\&eNxk0Hڢs?9d7#5SCqc㨈^'SO#} +B _U􂥴IN?Е$6zÉ nw5-ά/;ZR T?韫Q6S@iiVdSbQ_5o*-.M ,)*#q(Yf/v6[h9xc3D<`_tʓ]*fT8Է3+/yx֣d@e<,^hG3/ 1 Kdףٶ*uMKgЖskrq|BfxQDLf!{T{d#ʹ9cZ­qZf 2&)Sf+ѳ )6CTPdpJIJ]mBBffw YC[o Bf + >gP-;9^ʁH6G$Mt83P+fD~ XKo[O0Mps΃tNᔺ C55.J3xjI46W7 $BrJO/qrN> Qf #,F8? Fdx_9ɘ(\N82O*FA@`}Syx& ZJ#@ `S+_k$,+KF̀@" 0¨$mF~ͻ pY m`g@`Yk`Ǔυ7$/ 6ڜ&/e5h% 9֌5tc5;CC\s9J&6kh?aMZnK`{X̄/W:p}F 85>i}zƈ6{jA &MI̒B l!ѼivRJ.?xPqρ GPA ucaf(Q1ܺ[6 p`zTЊ+EJWhc!PL( V'c8 H2$~ x|=/ORŲCf_-2_iW:(,xAmW P+R|sX\!ZF? :+]e&L1d l9t |ˈČ5,^ͨkf-v||.s$J^׶Gj>lrމh3 dH4/Hq^aCB;R gaHD﯃Mhbj}xm4‰Kc\uz̵=cx}XB[(*ST,|T HSLʛdA1{tB{2DwހS0nelP=(2E$fFM7_%$EdQ ՕS%Z3P3[ 7 / FlﺱHV مk/#)gt=T2'͚u&Gw [GZ/#tOmI>=ԮR2I{[׵T)Wa`7HftAECǚ; e*T+Dudǝ%wgSOCHtګkE^lP5p}gb*yEEԌ$ ŭ`[ pAin+.(g͸֏牚}0E)BֳuZ s /y5XEh6x{H $uLr dĔkSѫ?T$4 >f h F9!ОvYo4g8u !,me"]^2lToG1-s;7;I^Yd;2:* F$uQ(KPRrS; },VLi!lgƴt!sI LT>NĝzW#hжD ?&B4/x+7)g6֕{nvRFjӵJ9bwoE ߹D.|"C)Е x%"IԔ3 QC D3xmM$Ĺla9)1U{Ѡ;;1h0LpІ%ٶ,r"2x*Wu JSxNC .G*Ϙީ+'0OuxƔ~ru3&;*!;d<Ѐ§qc|lEnR)Z^_YLbYĚhZgV. 1'Nx&˵50g*wg J-6%!3CY$N$eHܤ(+Β=vAV77Ac< Z캛$$mZ!?tV6lɑJ\;G7-+7s՜aDf~7|vrQguASÍ2Z_IΦ0OEimcx÷E k+rKIOM];am'@\$" [z2`(^7СlzؿCɯlp$ ̍7sV fNk߱3ي:ftFB%oȬ ZPO)+49FqpvIK{uE>dV'`ؤoR5W.1SEpHgGZFt_S}H{Ml?ދh%v$xTeN#9IIiŸd?#o-v s%ܚt3=z5x:Z,}'k9J 2Zu@S}sպWܙh - 6N:I;ɵ5nʚjAEE,k4ʈUfΥWHU]-X Vkө#is~V%-'{|LJIk-2+A6XKWX[< 2Q 0JK `J\ِxvO ,yEj'r+!EHkg%;%i$N$J;|O^> 9M)e?,9o~jp&@3庾p=U0hKno#3CNh]=UEq$<Q oNH21G1}eov Ccz`IVgAg`P,+ YDaň19JlrC UhCywT`@% A^>Pu=[c{ڼegSֻbֳvRͱm!/{a7w+Z2Z HALMI&*\8ʲ"-KY_Jֵ'ws$~$vB, lvF4$(`{/y?)$ȶpm11"ޓp--T?Z\+`. YX?Kr@󖽓xƟ|#5#篮!DGM O(qk,t{ V{lŋ\G. =s38IB͵`~ >"y(KM\ߥKnIb;)Gp CQhK:D60 T=·F̿xLi,Ok#+N7|RF9..SkxbE ~WmPpq  ^>4HUCuD}Cgu*R=a_ #BY3,}l~]ڢA:ݶKf"r |GkmŚ*;SFŦ܆}˨2VAYfHOxė!7Y2U'.i̱̿CnNeWj8+LϖͳJ?Vl;rP)m[sH#XᶏA`>Yh]O㑎j˟f`P M~Ήĕ#6bCA~<MydC9y-sr7%xYJ]>ߎUtryߤ͇Ok~˛4{8@|y }:A9}=u PJ-L=SX|3 j/{QUΣSg[ Zo%ev6%!::`p/^@F]5=H)*JqZ: }!9*{q#TQrbm0j7]\<]vԱ@ ՈSݘ,݋i9AwF/F'xiՊzUMN\fAŁ Mf{dяerM߱d=I4X^~t8ӏoΠjdAsa")C :yP_eYe- C.xz\+?Osxd.MBt}dd>-&kh3}oC~\fx&RRSH+eJe5"L&[vwϻ]EOl렊6Q,X%l(y(S,\Yh0dSEPjښJD-Բڱm.XLmY#¶ҡ_8eB|Z@5Tre=!%#og\[t PK߅Ͱh<$E6 6y.KԈ=@3r_ge8yT]Ch՚'I$Ӆn7s;dab~pXP`6t%N61QŞ#l;ZG{eOTXΧ 3b~tt`,q-;p{Y\9y?lH^ɿɱ4 T*G1eiBIvcS=fyMQ׶> y(?j]EA0)nU B`j,h2P?TuTTQg%OU G%dy.; "~PBf4VoZ'\ϲ]?B;a͕BiITd4SN^v0AWBws97tEDR[L{Z{_Xm2 zPᇳVl4^s``1^52a=vZWڹՍ@Tpw2nIN /]@Fz.t1,fWxlǰZDv"V.RG8 /Cӗ.<@vۥ6[y  gFA2PkIz$ΰ'bi5~$#m.aQOme:WQ3HJFSvY*Y=d7|kˬ݃=8B{CFrsΕ&%FaFN7A(sU2 d *ϝ')&4*JS?Hqz"c%,| [$l>KxR.V7.\k'T$*>3Jg-qRH2ʟjMTPI~f4ICdҗ"KgBaT,7K0$ kRf?}7Le,.DmK7CMW@t%{ڰ+Mكǥ y+\霙\kdIxzZ@BH'U#ä{4ŵQjF䘇@p Mjܖ*.\yHG Q 8hÖl~;=FF:WMibL^^@Nv9mTC2\$ɱU 2h$\,%Z L~$AG C&=6^?Nt/\ap_bEEO@1 nN('WZrrQ-|[w`®WCrds?UeH@MKʮ+d^hI-~0K-[̍o$PBe+Y (YyGAXni^_e5rtMCXv"5f{_}\pÎ|ssa>:}G@ܬY -]-;4Ȓ9 'ߴkC)U!pUC?~Tc_OU6q}qo53k*ׁ@gXDiS4D E>wgf!㜰ْk%GދzwMĴz@8+^kmcl-q1z}"?ky,2|"Go?cTm0L:_Z TD[X\}}-ڳdH{hmgA _+bmZfCPNMf1DaX~R7]ڃ,D]VdxsArǔvt *kXr2 6v,l1)sCюOH@e"%Ӥ1IM{|s٤e _%xYO|Eqs= EYM]b Q>ɝprHgY`ҀuDM>Bl:J:6OtE geJqGߑQ*WjM6X᫆< DB[>ԖVKkcYpCzM,Af5|~1=ԶjXB7f"U@"d%eV2H70r8{sRf:XMo=?E3S=uK=SjG17&;7T~.6xg5Ȟ=BpZ3L%1 Gp ?daD9p_ ,.C4q 5 {:b8;5Ӽ҂5f>UyU랠gJKVٽDf|+z ŬgGwP&ђs[nYcyV~e*X:,Yi̵&Js>רZcHuUY90bߥbk[MvwvlT a@BZ@Hrpt6Z(-@ȫ}Y.ao UQ־msոY#0 G2߇umW/{׈6X6 .z23}=[%5N+<bj..x J JB9LHx?x0~%Lo:4< }@94oOi-g]\r莎b魒 RaߗJoXMˋ$YaD^ȶsMƽu(8k\iYS㔂]]j$R>qr)r۹ZFp( 0;.wL~7{fp˃{r;Bȯ]tt(DN%ڸn *c;еGWߓ,z}eòPV`2m\y3|'2 &_7FWϦ>h[[랮Vj(}X_V]d;Z  꺡##d—.O &f5cT3WΉ!mە̱^tHyTHVr6wlw]a+FN%R- 5gPkwŎ"6ԙsTDUq< )HS_|M(|BPR@au.9t}>^7LͲ\ON `}a36,컩"M3-α ̧7 l-PLŚ51\`b@LP @\4PV}%7:SÖɰ@]9CrwuHֶ4շv:)}?mG cl]wQ h- y(Mӕ8GJ= _)ޕ&@p\P,vs=}7pؘK{VxF-N>,>6Z͘6@t_i&JYE *yBU~"Ab)3n6rfx~GAT,Kz[aN_5}"[%p8:Q4dl͢L y렕 cDF;Pi6s> s\~6 ˎNGhY5o`U*z`keWF٠L`m_p_9 aijA XហK 7-gބnjHcS!Ƕ%8|j3 TFFINjOݩmk ˙C~btʿ'vu ҕB9*agAkg9 q:'&b]_>Lvׯ7 jn: _mM#TO0xq$N͇σzyǝx>zFny P.T{Pk&׿ ieY -yhZ @fvr6-FrWBzG;і34k }bwk[Yg{k`)R+ˑc-狮?H"p('a8%{Φflբ(W݌A޸RXa9 .lY( 9K$.>Ece%@G ɻ^7GuΖx,lU*e7q>ܞ/Q9'+++WF~v At-.y&Y2ւ! {Mx kJ71\fiGg/T#J ?~ޥe,FP!`~C{wmIe +q٠}JWfz4YjTyIZŅ4,c|jR Ko+ͥ?6T{GyT/.750wk~:xX' S.?d~KKNd[1' {]_L3Y?쨲laked聆!hOe4}$=~ɶ*-]G)Vs 2A9y˖R,4OJm9W6IZszvWGnSG1Pšʺg]QuU-D-`b AsI  2-k}Cc''&adkH.Z/0mz@I-RBeYezg*!ho<z9K"v.Ș4l M/l,.]YY6Lr?rcR ~vStIA韐߶i,4 hو}' CqT evx^Ur+/V"yOuUv ZNTZT {/ 1'J(vjzTu2%s6{dQ&OTQ}? &]"+nXֿT8vxyi RiW(E~h~;\/+ՌD0Wl$46ƥ>GÝXĢ3k@'16 F*V'9&aaF*UoGEx FE{C2f9a 7Ue!-ؽ _*?k$8wwͧc㈐@t$CIC0 3bЀ ۨAC(0 ා(9Pf&U`_=ġo}BoTt61~bgr(Vyc~nWF &A?8*EذbE/%F9(W2.ޯ3&_/. MF^P.UP>N &G)LG8ewy f]qxi™&%Z Y(>yb7';)( iۙ?e0W~~>i EBNf`,Zr#nR {iU ,*jbh9a(VwCQVD]p;@bQ;^EPfz(pSckbtD_>nb4(křW6:*QTY6+>|5<76fW1AH^ h31&Bo7bKJj(C~[f+h.t-,^h]2𓉎e>}'ZzO^$-Zl*&4 Mռx(eVM09-aQK…_^V= P?O ;t<]v7j<Zf+ 4dvLGinJTxD: %P KϱeUkr2WD5AX# ?:v%q>9Ј([lc'#${HoC 4aIO7'.!alh*.&C=K0 rRH2 Wh,rSMiN_a_+q2勿G U cVMk2*aSbgO[|6ͤۋII|w#FzWMEA>nŵ;G$C_D KHCXeflߵ.D\%֧2R>5+^w`(G,şSKm'ޑrޘFK<-YgrMe"qy%Sb&pu%,iiԫB,FCےRu*ABuK#j6[ sCLe<'i)&Wc(eUlh&^e6U;`t2Au ]Å}90FSk{Ճ ȟz|NK~i2r\qɥGIaY9J-XZS'|Š{'DV$]Vz$Pbܯ ұоO}^qʙI0WxͣVl>/NhI]OQot|J.GsD~O3d?W+νB^>Ћ5@c ޜf4Dz$yq5&v`wRѽ *:|Hlpxm @MZZ)'Хjwk يsTɼ l㮎_@ ?,HVv67S /R dʒ:YYB/SOLW r,q:EHf#Gn\;:w Y ߾@f(+ϋvhYx vΕ0[5=~yd%7fmI:&BھEۓX "$G$\iv[փ U5ʃ`ȁrecJ/oe5 [V.u4lYn& 2{i>ΗZաЅcmn!]Zj30jJ؂w.kx_R")'m;3<<@j#r$^ 44ٗKW% b(r;X#n$_ ~ar1/%9J ,C-G]E[i!όІ[<_MsWv]f`iϝN'79jX",Ͱj#Ep>.A +LDٵ([@PpkZj6S$TdE\X/Q2ꄰØAENBOQZ+Hh$n 8)@- L^׀2ڜ$*t~~" ؞f%l5ZG J`BK!7%&ɖ<<| EܦLI @:A7V{ao"6'SЛ /G|LWI&in:ڐ1P1jsSA֢;R%!>a%V,z^ߌEaWN@uz-,2Xutq4f"E72NֵLE8?@g$1k7HT\"Z7d~{?Lg]195M K^='wBvBD6W>fdj\*"SPN>߈>qGcj)~<; [Z:74Iu ύToJQf9+拖=# Ỏ/gDY=BüdB#H( @j'*ji[ff2M9oo,WQm8hK Cs[؍BIox5mOP0.Wiby o u-oVhS4P2ldX?Sʡ2lwM}W4.j'9Cz|g_}@֙îekqאQG?-9eTLK^A>#0~)ؔbKh@ /_uCs!N/i$$rp7@/hlkLotj}iUm/>oԣNތ3աAJ (ڃgv 4,/Rc|$TGH >y#Qg}vȲu ~~/dy[> 2XY/Sn4*]B 1" S'wB)&bL&P%0Heҙ 6gF\D,YA0m6gW=D0*1E:$ 4%uh@%էeSQ{ܬ8"]†c '6=닯oc \RH\zE gJkO8g$H0)O%~@ _t,MK$gs9vX(d}>Ofrv) e f`o7:vmD- Stϊ-ўi޻Kv Ǚ[Z80(`˵w0umR_W'2W)vz4I4oMY_-BM c?|s>~\$;/ Dj/7T yP&9J:p?75mtz5]ydhV]2АTຍU+vMh4}뎉dͮz~*FKPu>pNʨIȽ*"Zd'vMƍNscMGRi$RՄ!o0}qmF*\-cbÉZ*5h(lG:%^,u@ޭ+ @&-_8]+< ${X>:n nn4TC5Znaީ~䫟l!)rCR~s2w]e)&@ZlY${)2-w`C."}b (5s?ɴMݚZg2t jPcpH5Dᑘ{'D=@]מߖhDwDlݾwl"Fz df ~/Ec¶RR5]m<' 񉜙%5 b+aH\I{/ ܫ; wr bn?_vJ|Zb+\4Su/Ad nY`RY-Di\4RU3AwN)4|/l-Hf J`c4^Ml\s ^|+g^U:J`Gc#rd(b_ |?dc Dys]зP87"S؋<-wJpr瞱- GIT»sJ`źB] ]o s,d.~nB@y=P~/m`ר̩b;* 0YUI<Lt4%N|MQ̱%9֩^G.)afV9ڒ!` GQ5i,{#W-a} N`U/UT7O\!oػR7(t ˹LJTg qmX(]o!KHJN>"TC*^W67%KMC)_Jtۺ""EI$}Pf}[rL"9ssO ZY!lbiS~y/lbCK,7wȬ3e{P=񆀱p:C%cA-A],&R._ n|R~nvIO .+ .$a=`iFHt0s64 5-_9t?%p7* lFɨDLмOѓZ 'RDBrY=e-SFR[{)Snɭﳥ",4Q_I::s(I_/Y/V#S[c6rl.x#PzxlbLdvLO+O~4F🝏c(MݾE4ԐlQUM3L!伎"J)@ϊ &OةD&?S'I2"la,1& ?9BTtCpi0tYTa,pEoC%6Ⓧ"<˿:X>X{X/H|tk;=;wVPPٶx{*Ep So w¡B8 ͗y jDQ"_ v2 \g{$> ϧ^`[W0}^B7}h{KX9}0%:8|u,`|)o4_3'iJu<)-z4uڸ9EDq㖷O9ͅzl5[ ,!8!yڼܶz}ABTb#4-2;coՍFdorCEf=V(Q̵{jU0i*v)7Wf'd\uV?c#tT_XGÊ*S'Ou8Q'+l|t>nha i8wa77u?>o`WȔB 5>&5›u F0&}=-h6+i@ώDk a(0'v 2LUn]ZOx"oOU0AWЍy0=#V0tEZ@bF9 "3A/8>5jy顏k$+nտ8B֧^}t r7{߬6r7( ֱ\ )[.7VMѥ1"t٬`J9`]JB+!)L XGp8XavպZIUq _o瑐=A| 0ҰW6+nlc?-6`e8_ɲm#yOSpZ'-dBGeUqEKgMz75QJwIyEn|ﶞH}FA1㭅vx:~4 >\XI)yaFHٰߣL̩svLjXћ9#b 9^yA )˾K/Htt3/P+XP(@!4.@Hd4Wm;Chz1Pilu b6Up-u_x6&ӣqK5 %=`!m\'_#n+j0OmT#܀ ʂˋ8GNOΚ!yN%DYrK `y,ޝqE>h,(R>0˸Ѫܠ}dI `C3XVkR5,ݧ"ʐӚ_AV^6شff0v=MsT L>OG6:FVP l/UȤ$3+Oյ;C}ܢ[ٲP\JǗøhюu޿d8-'>>=-Utw{")RM=rZ@{,lO͸6c _hVSOpۀpWϊI?pw;?pMtN #kK_i(%*X S^.ŁvVکyU|+0!W#7vhYuk|Drך-Q)$P fI}LѤ)VdS!WwtW~p}_2.9s4UFŨtm蟼@ёeͯLbR,40T#;ƃαU(J(5nD//#ք/2J< :fiz ?V:!Fv7/rM]j RUݎS9qʲ7B}=+wgz頴ʹmt‹Il{@?sL'(3 +;Bǂj]r[Su V.!`) HR22-Rn"D ^-r SSff>`Sa䘃$pV[4@Ԡ͵܋*I7;ym;\0Kʠ8r?8oP1/ i+"[]P%)ܯAx)!ni/D9beU,LM;zq/^S1/ w!5VDd즹t9ld}!7ðY}wy!}I`b SD/|OP:_-+6 [CJW>(b[vRՃ>8ssې[t|JtEV5e[8eFCvO šuX\hcmY  h@:Ϩ>YYP~*QγE@|bVxNAu @#pb!FZ٢iˎg%>ۡ+Rib]ٹʦj%Tv<=OY M-ao@:%2:.Xj]Bm bX^!^X SBg1Ki ?oj!s'.4qW ^-'`"\L7uP^*Y2I K=.\I05L|LFMlt, I.ihZ0ʏl9.xRR%Z;Us#t2KBFnB;R-n͒s1v !ۢ@,5B- _w @7So&pp]xvNd\GVMppPԲ wzOD\EbPbޫ_?QGY2h{GՋ~7\ VGPTQh||u^5 |#gǠt a8L#%5>LR&*Qvk{lEecVm= 4)́:IcЁ:`l9] d)x0Q?LgZJx)ڇv#E.6g:%y, tvêrX0GousI=y* hX<6!!pMWܯƪ#G&!cyJPtBMVj)6c?"¡$y$B[n^tJԹ7Μy+NoԫSeI mC$cnӴW_Y!AJO}M =J>k hwnj`؎P;%? E[)q;2M :=TL`XcI)ac%d^ok ܁r$C] ?1#n57p05>>vaGO腣}ᐲ4%bvJ.]/ B`] `s?#gpN*to[C%$TZ #CC]*JйL`Eb[6|M52'؟wʚXu.#} Yoy(ExL]#e]1YTa*nǁ@(UbJÔũd[1!_63I_5BǔY)1'HMFC.V 4h-d_3R k()~5s9*5t x4{PlPY9'CantIkr[h#9%s+@aBP]#&̏=Q5̚:_oA$O^U Eh8-37bP(a RIhP0DeGwOdScgʳ>f;L$F Tz%Eg$VKQЬxq4I2eI9D^'iQY+SCȱ.$H15xI5\}+x_{,x`Ʈp `f6 zӦh):.j#Z{)47Cߔ%M@;_89m ^ek ;zyCVm5p+Y_xLlhIdCfD}hMLa]0}j*?in=`NCB[5 ¥n~Fl檚dʊeu׃!||ClK /z2 sm<%r%RxP ԦUk9A藭Oü0^ԯʞqe-S0 G#{i'TrreNB6,NJᨷ0PTe) ޳AV!0z. SUI{֕z6 #uL b|j~Z>:# j%R5>@}2c\ L.ɑʮ@c:zV Ld9)*_ Ixm>chATȸSV vֻ b株y ~-m]x56~ &t޹!,ֿDPdG`Nm%zhj  DYI͠C21gm'3RrziJv ދ}SZVr s9̾g q.%Xxwh&q#jkYj&ʛι+rN\uչ)[ޢ0Ax `JyڌVэtW& s\ IÌy[7:e{4C%$jC/O)%[0o檛XM~60~|\))YGmƶ ÊfD(d~?l{JIdce-,,} \hX _ZA 3!;7F 2S];Ň1K m!0wY`Sn5ߦj5Cn8ٓ$j}zEf5WAOaJ ߌ0s9" ܓWUW MϻGӮ+)-W]Ćla`LC$%gv4"Z%Ϊ; XfUKKyETQIL I5kf*\gFD@?:^ww̌x`#~VؚQ~) tVeeZ!Pnܯ#Q_>H Elg]* )3] *5E36h З}We7{ o9G7P:GwUrΡOXemDQ/HW$JyS=5'0hW6JO}™|(ORF Ff>CfziGt<%C\Z0TynʮaʓtXߛj{GB,԰URz Mq 2 (+fj{Qǎ֏UxIf Ez4cGRC4>S\*ʇ<"xQ{㢏8bwlݹC+}T\E(ݡ3hZ3_BlL  W@J*N\ԉ+j+傲KD8g$\%" 3 =%Z7ۚdIǾ%ƒׂ_' BE~+u*-b}4 ^š{ћ4#Ov"ҫF>zBb)9\Z%Bm0 ?窍S4yźGS:D()O ׊ر2{ x#X%w~G3SEӉ*ŠoG{uɉۼ6HᑸmruS˄z[;A-:-}4sdDj[S4l6t0:!Oyl;(ٰ)8aE zBa&Sץzf.& H (6.6mOLVXr]xVAeṺu>K4X[y`aiuF T)"F@Gy2BLsVԼ+fsÄ\RԸ;[PmԤ%(Hh35M [( G+ӵ{mK†H}Ĕm2C59O_jR¬j+5ު4.N?PY:F_'Ę;0:eɽx)0bI`U!5Eg9FsODѮy43I{EK/qE!\&P2g1L֣#qN%iJ+ݔ+oiS[SZl3s'\VPEsy#:1*^CeTϯzST0ƹ<H!y~?b[Y!m?a^A8>tI͗YIqaӣⷎllkPRS FO> ?,,nNo,uܥ>˒!3N#8A^ް I PhwQ` &\=NA*@Ys26<kAf!^uq uB&ƢqM%ye.mf3K!dY'Kw1c۱%3,/}mv2Z#.zh@¬}Àh"p^zg!j1^c7/@ɬxLVbr@ f7X;'Q؈ZU?L~Cv8M,,_tK{䰅ԐЀ n҂z<¬ÈDPҨ)o=`H4/Ѫsߊ:L9)f.r} #P&k m^Y?7r&F]J%SF>˭-Ȑo]? E#ZN[LZJ,𣅼29X֖ͯ)\096[i_D󠰊Ȑ/܇նOT7#H>:/K9Il Qq:SWZ߬ѼY_fϟޓeB%N(V H*Fi9`>CM7:`{!*[VVA9iܣ L1,7+Oxx άF M]t{X88Rpτ30 #&{ g$A;b>K۞B?zIqO*]WU˺8ދFA/;K.IqNS뇋NquK&нHbBљ%PdTc`@?Cf тEV J1@Sfc0WZ6|E4 FvÉ 9'' fgby-J.]}jY$`Yl쉳,žvf07čK6m0}Z,#yg M 6PlKk8љ{-RF,芔oHuܸ۾_3n>}l"LXXutkƃ;?lT~QKfj&, uJ_F?b|(c҆^YhO,jCH{ 8@z(eG D1e֭&}Ͳ wPZr# lr";*͡_=P9/ ExSb}W(oNYoH.ƸƗ=D nYޜeycw~|ڊ7F_lf C!%~3<"= O# QVI|^e\IɶXzpmX2،x\5ZS|6ϲ\?bs/0õ܎ M~Ǘ/TX`d6KAù&AFȤd W*",hv g^3%*[y|<='w"X%:\n}~_꡵oZy%LTqA#f[$6>P 1po"W=hFh~򗢿;MÈ;Dy!y2Ś%&@ Y07u tdٳe#T+7 Qh6!ܺRPCA$|1fB@NLJ3Ⴢxk+b,: >x'#q4 ȹ uz1614֪{;>NIf**`#90ԣ4uDl8|KO~>Dh<#fδjnm `v%NPM(=`hEȩ$$Y"6TD> XbZ>(g(F*Ӟ B`0IW"">U_"Oe2#V2ǬhUˀw6*7|Sv \ߡny ˯eҍ|ij& S _H1"P?); 1q7x=h*fy jAK 5s~BsI-[>e֣t/o)9]@9 `ÿāK+M fӵȞq'qcJ !&-cqU]&wRdPtPC2I!^+@af}chR >g?#@HL,ڞ< dvDz 3)c9!wNuv`YkE?pՔnB&ҧI7^wx[ # ;_1s7UYͪGkI~rU/`%g` "⋤qRlx>% $3MpH+Wd b[ R!3)ŨM"wv+[@.ˆ.ĭM.dwywʾCN,wet\ 8АJ:=,Wz?'S:Qޚ>cdAփ&v@6&ٸWbI ;rl@<>'|>m(eIXUZ]Y@cH,@. }Ew}ıE(_uJ~{%<=Ğ*_i MUC }j_;x(Ǒ[l 9CWɺ "o.OGD M]8npOIyKo ,\)@v 5M<.C(S"}ڛFKNװg\(XkЇ$e1 #47]FC!QZ쯜SǕSp8jCtu~!"3eNotzc.ݫ[u<_Л[j ニSQ}LqE;0%nVU5&.}fvgN\ߜ==3 5K iDWPd? q7x.~ ')=S2afaz-iHU?Bey,E AR@b; mEP1!_Bb;KA=wG2{wuoxO]G9:tRh@ 48oS`'}<^t3qĐ~;DZCfb.沃υ3$Fn6q EÈPx'fv\x!ނNt9 fiR2 Ud+`~O"tK躏'쮜v[9B1=dh\9ck_?Wv88knJV*glVՒT5&F0yՐ[VB8JDKDV^&;p|06) MC@nc0ML(Mb=ӝƒǼe7=U *jE*WárS*f0pzGY2۴]i-:Y:k֯;v5Ϭ&&p4Y,3fc7VԌ6d{.ƖX*s(V)Jҫ77'Kg*H $9E_n29WnN]5o\t>d݄"JHr*p 2TGkvQ h({~TN-x"{A?{MpVC`;("Bei Hb€+(K9"kF6M@sG.mF~ B 09 Ct  Dc~`hxFG|4TWi5AvY UaKc?O#2KE'bߒ E}7Բ/A( B-B2!8dV,]#";P(']"#' "1*tB_Bn+T*)a3p#8<yL|nX0۟r'p|kK- h.hSؓfKc @͓-ʜ\a+_+ m_ϩ:s:b=U. j./r%#EqK ~/? G#|HN$>.DSk[O'dYsCF:42H)< ]Vf_. 2+i3JiԴsXt/V*h8:Se gnسH `\ Ѽ̮Cҗ 7>xkUXR}VfU> bO4(*9ejj,Ƕ,|auW`u-$XqEẠ5TtSBWv{Կ>G ): '/ uV6\69!ՙ'W 5ɵhcDބ]BeMЬbߙWZ D*dSꮰaX,+9 PNd  ڞO0:G(|\keo jFwTR/7 fHqD޺TK<6np9'`͓}J"J~>ħ}bo+2? ,?^rDsa\R!,'I(έUQ Vv lP"[/q>7xUgǔLq{7۴2 i|J.$ߊcnĘю.2(iBa:cu}^6s2Za!Q 4Z'hAh,&j8<ϽOmMSO-IMb$4SB.@@33_SZ:,?7#?2:{6Rj9אD}4gܫ׫VָGJV6Eڿf٬V-'4 5~lيYrAĀÎAH+Co2s`Pg*1$vC~Ui9-7NzɵZ&՜"όu]p5A>v[Rϣ'i޷1^,x 2MڌJ?4lB''g)ԣm!%kîm3wTUFC\,G @ qEdO*N;2Z8,cE5F9P-@8 7Vekѽglڡe'J MOJGe?C@s*Hu BaJ$KOzKAT/p'OxxTaqJ-sLv5C&lUI{85FՕDy^EݴE[oUl{;t)Cv`]dv o'N BU-dLQB% 0iwʀ2{]O|?]5t_3eBw^Σ] CQ6~m`a [Sc#!z]XCD#\)(TEOb6WzT|DD ?L' 7O7F@eWOb5t=WȀf=^s?t(#Y@_כ@Ze3HJiSWR[}g >Dk{OIәf/su*mKe>d6qa$.5Y" @؛A VlCL8wO&* ҰQ 3H|WoߍF^dG\ZyoxdsZoplyE+?rPLua÷22b \װPd^)7#_7zxX"~Q}a6 ;1'X-PmOy׶K֊>/m,y%;PY'ϙ1\sTΠ/4'8UzڈqG99d+yзzUMUv^g5氲'lv|ϋMȗn# YvG:fnX^\ p,TU V\h~lKH=."@l/;A{^A~ Ӻ(XuV~06_ŗKI IXj]a ^ ;dnBoy|ҝȺݨ3R@V^ow\(IX ]n`y*ZktD" (O<}v Sﱛ5&UUua?CB8nUw נCݘNH$ܖ 6{1߻)]!%/w^*\ѕ( I8M{E_oq.'ޏPҹḧ́DiEIW)-w#W[+U(уc/` wŇFwXRTm[{n!&! H{D#4?JTNf`"qϺw=m_a"D ل6b|tY51P2l;6^alZ1NnE z-ąL,0,!ـ9X{ň"OoNa0 %)oZo5W)Y9L?bЎDa 䶘 al[ H<ӉҼUR7qN(UNSm(&<.L\:It k%5ua[2p\(fnu&bUsC!E2*c95A{Ыec_ߘsPHY/POmA?4&?ҿFX$jN'Vj~0yYqG̐PDu&dv" h}j߳k!:GuR6oe *51?F삏EOwY!iz20iKMD*v[}n-w8}xر$%ȺNb$w;w6ѺcJ?M*a&T k6XC%1ٰ.}k,[ROdW;|cv_DziH}r&SpҥSIh22?oZ(ZvM$ӆt3'ܛ -磐)'CHb@f_)Ulwer-js{\䑅ҧh8Y4'~%=7R O\$3#j󖎴KV\ټ=d9/vKug m\*"H|93btV=^Pl00v 8XgΆpL, 2Xxݺ#x2wT ']zF- ؘbBK__ PJ{ O1a^xWHԡ @' p:sO Vg6klkI_9Zv#Xկ]90Q&y2X$DB8؃}ǝA}Y0x@9cF]/Lh@0ʿ(E3' p;)gENw`[ttt%8S>2j3/GiSSb?ckm0/Azt8;6?zާT Yťc`8?H~^f&Koܭ~j3irF:N{o lp()6d}0t櫖u82X!LWhH'"4ޥ.ı8H Qcֽ-%MP[vp%,Td=cBGVXZ}9ý>\WظBzura,b5(1y,MCRIOBhwz;̈́,tK4VeW !G%9R g0xExXW=8m^n`֔Kd(@'M܍{t'\q8g6[O=rT-Z*[rGʊ6ϯ4ΨNK&mNc7bʦ1cÄMϐ]kf o0#'ЄfP';n1sc鯓E`t.&.LlO74̣JW5"QaJ F,/{?_EH fFkcyHXԻ#B`䢳L^chVrUr>_~͂N2rmA+skJR}0h(uP\:C^ş4ڡp $Ke#h W+y'^_}p.rkxpkIA\^T?5MQ]][G=os|ֽN S|JB﯉23 /<:U>N0`8Hꛠdd^&.jG9xF{lmt sdXȇzOYRٶprt5Mڔ&o{_Fڗ&1w&;lNr Int"O|#I' @;- [\aK*2ڛD.c oL=;^ 7?TchBA]o}(C KGۈuRT#˱)hMZ^Sk9V`Et\SI[< ѪvV: Lzԡ*c0MKBC-dKYsfP&q)v'IR͢b Da2Ԏ59 0! ȭh\&stO'6z\Lr;(A ? ~X{oi !ǙͱoN~I~[I5FGa22V6,)8 J25G%LԤ'LfPۣ4cq䜼قPRtZr,9d_g 4տJ%`T%L1,D[Tv:O)8a2%%1l!|vG`Gӕ(/B@jwueCS$+lr J;fv <'-da J}A Y@U\J~.߿dB5-K\YfU8iEV|) 8Ez{==,$*o1r"(,zA@Ӭ/P橹Z#b۔e͍E p CYK:"X_7@d%\S3ߩ,3N>RVͦ֐):14{fQl3n7[—l[ @ȭ. ;^VP(7?w,\Yn6[_rK2.D;񛶬X=FżlĽX\ED:fx2w/}3 peS-ҥA,D"@ɉ|WhǴ6J)!0|[GN[ zʨߖB5b%X~*1 qG1FpCÐD'Q+vN[ op}-iUskb l:f`pŪ=7BXLF,1IGpo w!=P cA Jz0͇P壧:,I*Pbh50~eATҨ歈i|ҜnQTC COȠ{n[zLD=չx%-U/ɏN2*}brnGY_G,S+cE'MW!>C^#8+}sM-8&D6x,I+[9YDD:hG.kLLT .<>!.]bs8pyT l[ BzԀt ۸$AP3[ ~SZ,o?,Ҽ8fSG޸@!]\ԀpV⻾XID';]O%{t\ڳn%( $::=av3o=>1x1uw8-W!r+Mv/l? Qx71mTh~(o#y vgKv@P.%DP \ߦLQz[~8) h,!QTϼJE|,r6b]chN~a; {=zңlS3l/C1GFPw0aFLT4gYhyU};K"*g#QMSxu(i@t7ؖ,!hu'}uf,ER&h>WvEdK"`l5G 'a{cFl7. CY#*(RպLǭ|[FЛQmZ_+t;z" l ^L'9`Dh-!j^ VGWuOI Eđ,.b`@oqV/܄;&Ce&D#H 61ЇUVߠ-O1VJ5L!w)a#::K`\C^w= m ڻ)"()*d;0xW!L'!?{o.ړ5LàRlpYlwlPsm^ R &_"X6rAN:eDCU ( ˾qI6C:x!y?/{2M$ez>%4&Y7xO1LB3B^A6󽫁b@g&ے\rnIn78YK1}}FܺJVH+VRrbH]@~20 ۉ:2B:X1ˎ8|1S\ #S>DF"int"':$Gf}$LF^-"P'Mu̞vT/`?!hDBg ΙO7"xr'VQWW讙Ae1L_߇zYL 8 r c3i1ʚ1~*Py0~F @g޲ӿ m >~_g 4kr\EqP'k ۍPwmq( N闧R5$=WU+ lCupIHP&k (D0IvGbIns*rjkj\.Do Ù%M,}"WR!:#WL|dJ'w(JRQ\.~_+!K߮py/SzfUy=/GI [WWV׿ V{ FU4n ~`)̛a77;]|~G `jF6_# (gmxѭʚ~ Dyq̙,K_=Z5eXʏչ=Ss+ϙR4~ +ad e)>4sV luAi ~kz:-/(oXzrkdf]!WՇY#;R&QLҔT9DoQ<*w~ahȿX<_m56EЖwUњM.|ow6iOjXjcd˓U^J뮭a]F z|e|2V/ 1 ڢ);\R)ňosl5h]䑝,i:ciO8A1]b_"A2-;8{nD5H#0rEq$RP1U]@bUOS\vErzdm&:kSہ`vU[ch7@4_)rZ@hdر=3!;m/ǖ*V3*MwضDy'GıPVYE a_qvd}3c|+KӋ4o}beR7kd_>'>iB`,-)+p2j|R?v-ޝL/ _/kŚ3X!('hi`1FzNi5S?YI9[]*+=L+M8`Z5]4o}Z1Z%U`aO5 ظWـw~^ x\S%k}|IXĕ]bC&ٲU8Fw}Sпzӡ}G iy ֢0|m59`T*O4 t9S`ܛƱ]:*ԶDrnu暛7T;HFaj;aKZ9=RFdDs#3MdBi6nٰx&@ -&r ǂüǮCnM"%sıC`bW@\v;e*qN<{_:ԣ3+Zf*1\HQY>ܩs4 O(#2zRћŖ+zb̏c_3W}Å6+3eR#>%q_g[D~TQnDkj,G6NG6tD/P} (ym$$XQ8?uc;#`Yw&Zyѭ? ;:Ah oԉFk@2g4 ^'i6КeǹyЀJ8yE` b@)㼮L+e?Ⱥ 1QkVhw.%Z|}֞]1$2gww c!$#p2C g)bIIesQ'Ij.M|P:!XU{6\ WvbfI?35 {qd* g#NcCE^'$׹ ˧Hۿ 87$1+t5K[ۘwKm o4CS$;VCZǞCf-4Fd4o\IB:$0L86L8z *0_dX;!x*+ sRl3V C3{L]yo'9t zwPv/bC,Ot̞b/9;y3MDtϕuX9@[몼5 4ĴhOqȻ .qw&}%<; JJжAȍNPm烅~"~6MkO`hqf,s@7F .Z\<2CB~R<ՙ_D(:_n-B[HU_Clx2%hȍdlfqs%.W Wk}&]kKEb`۴1cY ׮;0«M6DfS)(0dB)WU͖Cք֭[ɗdOasSȡmb7y[{J {0)MPb$:eyKSh|kr>~j?QVΰC28BZUq\%uRejB;ȹZ)Otr@-wmR{VIJ;X"&\gÕm!ϋYP6VDfujWcGf2ʎڸM! ?(XTR)B5J% Wܶk%'@+R"6Ƭk[kXprވsl"f,!|ďU ߙ쵽NV>7I,o0ո.=h")z5Z6\P$r?+%[#n(P) np 6}HVJ(bN]l2otHt+ ;&aμ+7@׽Q <s2-I/pifSX!,Bob-+ [%8BZ+ 1٥P܊$vcY" 볌ep}}Ӡ3l& t %D *rTH$}NoưDK FIIlmY7,QX^`Y\Ԕü\(-Zthfޚ-z$$q4y쥘1IhC5e)5ɊS13]IsR&m8T۹BUy"EK8 z"ܦ|3,~n3kUǜaw(rg&MMjơBŤsb!I$ڊ_ӵwdR^G);`Q9V0RG _WaF`THm\cYt6_?#FJkhr,I[EN9\'|EY;RzxzYkd&CҘM\n: XqPME(0g;Y͍fBG^Gp1Q {n8qbkm&)*Y/=4&{غT8XkKkp95vS'?g%WH} Mw3aElBA mP6ՎDlT^5&j'u78<?WXMw[._WQ𰱋De9he9g8V2+\֧rXg0Ղ8 GWǎH#yŮc]Bj >ŁXp|NiKZeSAMcvc7BڭgEìb8JQU7R\0ڮ㠖yw1lW נŝbgˢcM{,bw٢*dQt7oI||` ܁eRX{N.%]<lWz, #n60g#ޭ3<{ ::t[G1u\N³e %3,K( .}$>X =Z)=5JGpE{/)]RwJISkiˏ.-} i+GR\&3 a4S"jlLO%b+wQh_8k, !J1̀5 MG`ΩLL.) :{s// b\&t|YަMהp8Y­:C]7CQd˲⺜tl8ӥR*=e$&aZE{7GB ވ;B.qI#JJBIreZ63m ƀ﮿= Ewv5 B/J*.p4u x]ɸ)ެ#әeh.}J-c{s>9 3\90z;z[R0f)d1/ O]İQZEoKE/ؘdӒ?-$ՠfmfƜ V1HM4PRKmە9T܅+1ue?EuI?Sr'm? }U'9m8|{/P~{f5tĉс(SQL9AmGC޽le*nòϩ]z'_`DF(# \gzY~S^XxjP9-OS'|wpQ}&ÑY%\̑,ZXf YB,n~1:DN5%f:E?dIv9DdA#NWH.z4XaEt QjaZ`x-U 3!L0)'ޝ}f2/ά_mۡkѮ:Gb%OӱgtԵwƣ7xk]=Θ=qXNŝqqwuK S/ !6;7d "ޓAU`k%;Sp%7iY] (ç)w)?Bj]~8 }n iS#.U,VB`FٍY{2?f.uLtXDunS)&mEȔ*Ln*A]W~D$  ӯ3&[xA@1#ș[@#\~ۮ. j1h^Z \a-C81+=Lp ʫ; ,oeUX=F2+3n防' TnrJŒNBkFn0T Hd1va.'!]l"t=}Lb8]'(wF3*D8z7]׺ ZLδ Ϭ"Xb{w>pL^vYzF㋩UhAM>woC4 Y̤"%TDB3Tt)ϮcO5@A.{ELK<E1 }Ѵ*&7k@\y˞޶N\ƯpU*G3ef:Lp1aBvK8Dh%@GrwGi#3NǬ1tv|Jl2IּXw`aբhwɃ|vygTǪ-+z\a|A}7'w,kh$MʊVEӔaG~?,;cߑ{4?^4%=pFr-rAxB 9N-&Rdc=`m:Z`bhe~?BGyv&8k|qwnj)N|s%mw 淢HgpPF;į5I* e<Õh[Uu52(Yh6SĬ<;n =rs*ն#1p^G߲uLVp&hP]ǟ~GQ VZ4 A7.Jln?rdƵNTK(fՕ@dk ]w|o1|MF&f_sw-:dOB%k6ʯXbQҸK-zt Z:9X>=[í+LRA4<\.ReT10A69馧)J>NF0WkNY$振vfk c81yܶX]1&gZ-Dja4DVaE^/خ'u| 5TQdiSdgsDPz@wW֎XCzDrV>RcK\R2dz/'v׷2]-q }Zj :]Κd4Iڅim`(J͜t56e}ZG,Cm.s:+VF\|!6t jVxt67pzo[_C.#$gۏqMW i_T|9'w)9D"Q'GLJ3d#tt)b*&#GKj- _'e D>zhSeQp4i.Qvힹe|+|>У:tIqe1ʾAm) 94Lj*3!g]㲮+dMә?΃m1V4Cj}QzrS QfcR, [홚ᑎ0}OR\qnߵ usk`*Us{yWpJ6U9,r7`lfWjO& ),עtIO s(7ETfnAA7T;(jk3ofl!:>R}Tr7m+h'PvT83i: bU,dLM 'W@pg;Om` \ɓœEн F˽jyck@ .> Kn-5dgB`Pe*=bx^=O-@1BIN(tfrO 3m>bb%9s4Rr늛e0Ѻ*fPr%]8[zۘS&ejʘY|x+г+[3B)(gܥ_FC )nafR^{~q4qfԔ"HtY Z3DS9m'R/o6/2<4Te!HgEIa_zDӭ{Իm#+@~^gVB cO]Ǻ.liTcix1/O~=H4̺C52 Җ|c?zjÑ7gǙrTլ6F-9-xZ7h7v[) 3"ωi"H?&V- ASsYSא} s%#s(-5C-Gi"oR'1g3M)+B4h'EgQ=E-Ϛ|B>7KTH޶V,ZwFLX$ךm1dNSbZ}7xT8Q1o:WP FH#NDn6OJTj}&v_ޤ+;(T48Y!Lwż"׆k񐻋D rF9 uvpӰw,Y=^(oxmaR6PY~֔3 R]iQLŸ/~|@#b"akrpҔR qCv "(XQ)R*6[J͡~q7:Ef@m+n7g/GF03sN<$9͋DPm]L_< A'DS[Y>RD%2<_l˙j{JFWPvI;v b8\/g0Ul].,@<1cۃ|ܤ l D^5u~ H0jӂ4K_,'iCLAhIV~GDՃ\ ݡ1ټkR 5~0,dAPh",i).WΙi&ؒҴ<2cA`*L1,̉0_+id"h!Y%AŤQRd}ä@ GPfk)J`O]MN*q xm;BE1A3or]L;eB(O#:}L,_e&2iڻɦ o`,4"5l7)@"o9ŗ[Cu"Ä]KgTNB6:paơy~tW<3X>+οl(z"K>u*bowJ2(qFr@ NSJ8Db.q[J}>IBJy*tĻ3),ClM Ir<.GwGf-a4f/%i*(.զՔqSvņ iaakFYT?LMUn&l'Xƶ BN6 ҃hP#}ܧ PB1Ȉq|9$V,/ySm >i*Ɂn )k:&%ZC:x^ jKJ{βK@f'~Z9A}[;RL]=S,`rWE(Ci 703-&Xޟzbي Ŧ/tM<rd䊒̝bPLƏÄ@ze* 6 / DhGY%HN,f=6_333)ԉ]ZS` [1`QQjX> % (34yuƇxX']4 ֶ\ҎΛS0ƽL5 :#JϓiX,`|O;J%C~gᕪUQ HW?[yGuبJu1˗CMHZ0 *W .HaJʑz{]6_$3[]p9Qכ0NohvCRڟ`9Cwc@vsf[2fKZ7]H"9 -Xކ!`G|{M)@#$ڸl˺AhIqJ(} ('2ҭ$Jϙ~$ydedp%MC{(ǣIPͽ˦IN}ee4޺lG蕰4I>w,ЊAH1ieCͰn?p6jpx>)OO!sXk І8.ʟfW!D z';[)UX%9p S L=A8,4BSSg.E*Gux;?l8QҔR@>:r84ZLߥAl}aҞt 3!;<,aY f95&-z$ȃo#K髳+ "ZjMd4G.cdzpNaȮpj|-C;+.Ql#א-:!'Md֨[mF'7eE'F2ŏ">9Bו*Aŵ@o FhV|B*l** sCۆ'&o]Hɲl6Swqx67{CtjS6@z /1}<<(7M%Hc3紭EʙtCKЅsҁZQ CSg5@@ɮcteXH/#xBHDp@6SeIEqswP*ZPۭjJ& W#ޯadW菁F} ⨊2""Xev5Չ%0"7Nxdё"(i?#²QRɱL$z4d!L>r`,b ל{> 5j"EGY sl܂Q0FI 0"%f$TP_b@sKm6ay!z7Ff|xcby@af>Ϥγg8̄? GWȚ؋CESV16vj u(QjuF:zBBXR@kq2NP-mk9# 4(IPfhwvPIIas^Dq+@Da}-A@Q$;$0G)Zd"aDspw,"PߎXwwNT=[ MB)$IYJNaN淘*h>Lձ&wY@s-]l Vkӿ QxօĦ:AwϵsV wIM+3AId/J5b}-x\90/lKh퉿.:R7]U@~'K-uӓs43 MZ'i?y4ׁ80n[xnҽ7O z@55W=<ݖ|O~5mfVӮTVg%֕PД?pWrtd%FOs$6w!yPHc¸ďn*ĆQ9n@_hOn19ۯ;45 |o$Vb}6/;}&r5gAχa¬&/mAG~Qio3R:"VlhmIɦ`j:6DМh? wr8.Yk[He,ۘ&>%+M. ,s$(r)$[K(g ڌؤ\6fP,xhP@d#4?x %KUg{U|uR.e/T>ù2Q+wjx`fL~_7Yǖaa v9B(=YMx{OԨ;&4 =PP{TBw?\: x\Jx#W#*WSTVCŽJz?}- c >3I)5 uTbD% ڶR-D yTPtx6YOTA=G5'blO,Ľˣ­@#SfIH?BIn3fn-|2>85u§| NBIRjUsЛB^ E$ h|:ut%2oq+(6=:؂ş Lb(kbyM{u!jس *{:27vh&/\XCx %F-i[AΎ` ~d1zH̗Ah)Dg3'+"YlKH&}y+ݫhʋ .7 BvmKD0?{E+ !/ ADQ/M"^bDG{ILB`b{3@D4F!Mx N_gXyBT^02Y&mj2@:EWۄgOQƠm6h&89LؽEBo$֘b},"aB/uNr58_*ύS~ cix~0&Ėl䠦oh_Uo \\]TcA Pfa"pT!Ui@F}bsXf6 RV5I=Ѩ^qb\\Y:s80F,3oc#ݮߧlBxAs$55̃D8]V9&Czc2>-k%M-_ŵ.KEFp EJ#G1! -F3eR,q݀w\pb^^tWN_ŮIZec$QyFl jako|lu@zpJ療 mӡR6}m=7vEN5eMp/4ڳL3Sٛy28B`#.njhNԝ sDlߎ{L,W{NPz qs?F {һ=ƴ%F3͹PM][F9>;]\n\.@K'Dk^:1įv^%}[Ɔlp̒ɛJ| 4׬O\2q9I7!밃:DZ :csvu݊lfB*w ͯ g!ֶDQ*`zf$˖XD3P$DKqSUc ~pVOTM@Yhx/CvT 8vco|Y .N'jL;.] ׀ED4Tt1@ݘ' 5M =#qdDz $Xu>^Tfwxcv / |uLӦ$q+לnh'b )M_2=JIL!jp_?D픀[drkFk=g\t(9;Q2f#sbW<# $b?X{'-۽?(uPꭂ^.ngqQR:YHx2li%5rˠs0 _!:S jH:NV(jii 2*6~'i։Lr&b$1ߤ~+PF*ݓa(xRcD4iѣH'*LS1@׹~0=V7󅔻hX;a5FE/8KmR qUHOXxsZe7z˓* 22\8!I`}:L;O?6g+.̀Dop8BL7z5 zZ=-6ձ8U (s+-I:U<7'A=Q8z5Ԉz;Hq.fT0,XB SFPvjD|IodtxTD eA+ a!wī.3}Q8񥫙%'_^'V!2!B˃SWlQo׭3ix. d">2a^6~o2Nfj3Qٛ!2!%`\vS|jW}7 |2fFXMm5x)ٖ㪅$i> ) ޫ)(`,8 h%gb): U.oCM#.,8;z(hZ~(T=Y=\a%a^' i{d?EڎzJvL{+FR@ I*!! ( KEz_vr2*Ϸs>DMޞ縗8;[9Ǝ]8VAX݄_Aȭm-mKsR$^cMl|=4;h~tu|mlDcQ莳z>*yN)P:Ez%W)kcQ ?S/P+ 暼߰j<+{ΦghEKAaltլ(Qzh&v;)UC'gCJNE4+~C[t~/iYyH27B` (he)g,XqԄ;oYoBGW2 u|1n k _Uk6D}=B*O]ɔ. k7`ЯdDSXP\\O`\%rL+n}x+>=.9f319-ܬ^ TpHתk\e>_MV"Dxj8C& i@ϔRxMMhϮ2LJ-tx';r BL+CxQ3%d+¿EAVR'j5;4 ~ K"Shwv&#L[*s xU\9]:ڜ5jT q{Ecb(nvQ[TA>~F%o1ʦC6C(P}VTau@Jv OYo|xTĢYi}˲- ʟ8/or<P$57 z~m&"q졘 Ef.ă>@޿\.ąg͘Vlyhb(6'G,x4F4q-YWpb)#hL|p;c`M; !E2pxML |\cڶq?R'X8CBZ4 HTEG+l9aE-[}76 HIFLEv2^=amѬ7SҟWcC޲"-8y\ 6);iVn7{Xʌunl+(z_ T2|!Zd 0Wbkm O( t>VlQi5:HV܆Z_ IPPY}Z|pOT+=I;Gz-}4ZU'7"}~0{,-r\m^FLu*J x27/HZ9$O`)>rV 3} <и(Z2{x̳.4,pbSԸY27grpra^źXMv3*M|s9^7-6CVp8d_ HI0Jy~ܹ/,+5No3ȫOmd(&h+*S="xgם>p$%S``RSZ5g.m_o_i!aH1$kܟ.M]16dR4$ LA|]Eo@M(!4(Iѹ|!FN{-"]?Ti|O!IS~-j -;諶صn/j]y`RȆ)cZo2: yvyOV\"Wsբzfd3va~'9bOy^IW<DREڵ`@A"HʚU 6ȹuR8w(ET?gGJnB_ ҧ x; 0;xb#P>hZ?w +:ٙ?}5VOǫLgd|] LP?KQ"d-eN]4l d$ ;xM%|(_) ҇9@" >e<[w)',VNT`>"!|-U=LB^a(c-α’tMW^E20BX =eؕTRu_L!`|]gm`37);V'^}E#3*Ĭ}Za& s -(c}b?};j} xKMeمK=}P@e!ѠWKѤ!K m蕕֮^^#\mIY0ᣴsO}gdvX$=[ 5}@N>Ղb;C-ReӼ4\~+0)[o_2fF̬rW 56I2\MeFivonCљkmV˖Qb<]1UU#j-.%"7~JA5I%o媑/N]C)/0V9B˸9o8Fj[e8,yHN~wMU|]~ɜ28km<1śm߂SYS_p57 Cb5$mo_\wRAġ;b 46DIOZ# I r^K-( 9U(N6T/ u .^huX GJyGɴXCvi}R#'WYW9+qُavm8h^Rm4t(b}kkumSZccFn?jN DA"4/wQY[y]坓TDq`A? >vo,MaV6ZX8Gj<aw-ʀψ5% d8uvN.ᣟw; FO/ԏgׂ&>Cy\enyk ^P9"1#RIN/CKK™iRӉwڏ¿BbMguV޲PQTa&g(]Q C=c>N݊y:BG"fohKF6$"!Xt%;P;2A+LG֛;73+8K=XzrLhwtIKC߄>{{9ЏypObI{#|'爰7`j*V&>5tuGsd//__ic[ex {zO`o|Fc޹ ̏/5t_1=#r`uƗ6{ z8bMf&?n3ey1,Agm7AGWIaz$嗥aXl T0' 3)ft,P0v~ ~vVO2}m>"T:jvjWp_# $<_xvƲR$'?"KL@I~GthWW%$gg읍BBKj_KqBυ8HRDׁDʤ.eȷ(sZdp>NfhhddhyHl@rv#J™kW"%뤴\ԥBUDn 4"c.'>u"Yxv;cz*Z'rݙύL72@<"^e&,3J P -&dI鑭2ٶ5z1Ž =SF]v ]AoC3AňٹqEg`hN~,jr<够` H[i.5_۔vy߆|aJ,B]{֪ x+V/PSbCVF=&I ý7}?I| Kwf+c¶1|nP9~+08iyX^#wa|0gaT0Z-F<ŘP[ B%;8u70<[T0˛Yۖ$ !A9SSi$@V䌃Z#UpH'8NH %dp|4H`nt'3yYrKI%hfޜ(5D%8q'6'_Z.\>ϑ[v|Ϫ"IlxuM&J}m+*@1H户,\wgxRH:ˋ !?mKA-|ĪxuMu0RǶRFhڶ)PH(&b9Ϟ:zzuNJX^);~|(4xcIRD㷋]F]Sr\2aO_ԎA@- "91Owݫ3KHyp6^kdDRE+"b#렳#"ܣCM(D5/dɕwC3 PiU0'ofv+; !(lpF #,:Ǻt-$ch>~a: W4GǢ;Юp1.e+mǰ*W~N JVZDSa0]/2~Ϙ钇қwt&SuAb!R鵠4 Xܸ"ē+z1ǣTAGV[(& q 6tf[\hN;W)=U&2 zF(h!l."AXX]{In 6Y6NSuy6l?'xDŽj,z `uw|jj>q]ᠲoGNՀ1;ža[߅M;B\l>s~LNJc ZAx{gDRĎxCMr/nڽ_(LюTnAfwmjf"nto9]c'Ũ{`a~N ldPa+ z( \,E 'm_\*5Ą-̏ASfW1k>l?pzϵ-d9RV9ov }T[6ҸN4?h;n@zE\ֶb3{8ua+ tAW]Y8cUa$v^r[Fh"Aj6u 23iL }k[T/EσS-`Y) qɶqsI-N|W(= GxC{{JWy?g?5 QMzP_fs`šmo5~Uzn8EF_Z"L)!qx|6];_0f a#AP2.1ЬE \}5ke:LY07`ݥK#K#pug.8@[q$,t; ![(P]JOݚLh8Zߗ9*2{Ǚz.Fr2(Y.ą>46FdL,N@8sP*aǾj{_sL `gBVF!& 5o.6 |G' 2.X3]rf&bx1yHU}Kmk{MĄgN}cLfY@ԝ@ znh<'zIxS誹ɂ ⍼`2j~y]g╹>&gŜٶ-L@6 `a2j0>2,$&3n8t8q:v{b-,z*X/,9z#ȉyDxtҀ0ql>h1vLZr[!h ۫ц@c)2 $cML=v'j]+HP Ep^ #L)nFϪT^kֺ^j-Z>8 nc=\{hPQž8#`yTMǩ0䏜Y}hl&9*n-v9&JnMl-ucsUIȥoOp,q`KHItj~~4:}d|#[YAѢ n-Oal?!sSmms`UyEʌ0h% '?lJr>8ӥ#}`ΌCsфa\\}_f~8/QL@x$YC7MWrBG\x$Cl[3V/l*ת㩯l=ۀhHkr9]AQ>r0t{MMVgeeBM]1mz^tY:7i>*.0fT^ y>Lj. D`—_K%l~ lb:% qF$8^ cȨҢ|s ეHv'bf  Sc w&V5UiʴI6 Gg$0(rMpF{MHRi(21CDN/k2<~Zg:fUX^|{K0=}9os[rNZ+* (؇0+zI FW_0x#A>Ly +wHYɬSOPN Q:ix H> ih+UZgU q*nqd^q Mx܀dsρ:d,Lr;mτ?5OF}hsbsjv4כ>ڨڢeo}$B%bʼn9#{Rf`bt/U+Զc.nX)2v%g 40Sྜྷ#H*ьcQy뺺 ;|v. 9qv,K$E2]0J& \Ye l & oq)gnVX"E?ʧh%Ũmb,RU(Q y䯦tPs*d՝!q'"D{FIr>bvI D.nG3)sBޢj-&h2 ^a b`֞ 7#<@qG@#œKa1n?hW2ke×˪#^B*ًD $ >h6JO.GAyM6T3vg/ iDv(a{R=m!?V +is{8kog.9_-}Pp#GA+Ң.I?BEP%ax'0 M?gU$Y:bKy7gJyӥYMaÒrW*Zd*K&]u4Z wd@LWse,Ky,(A~ۭP_&NUۏuI\a*́gO{u·֟*%PڣdqJΫ~R jsGF/dGΕ>_ʵM&4'faeu qqY $G>r%Uɡ9) XpQN[x5Sa(E]K mb/P*c!'0{b;i yS-}!rЫwt׈g<!B }4g{<0V7 b=@#eG}uH ljkӚͅfC3J7㙽uKvd\gMg{{M*δ_Ŀ#65bvI9p1Q7]R,C|swe񌌱TT- ZjĆ+5 zhR~Qꗐ40kO"Όro$ĬX!Y4[N4q`J \NRm7ls׿-tw)#㧙!SxC@Wop.-}*LA(W "_H~zA[IGQYC5B.4c@$<kC;ψq\^mkѡWie4 Ӥsrs^trYBim{t}Y}; L}$C4uɀU:Iۜ<$u8ԸMztB '7}9 kYT&Lq R9N@e0Jaȼ.ҒcyY±2LAoruKJHj48;kX>N00 ʪ[\8aD>4B8D>r\T{7~XR1dEukoiϻF&}|iF| 1Pi0rKh'S;'srӡ\۾Ogf<.WGP0TI]K'X0Eƣm}u-HT~? J|pכ:@*k~Eyo*eXH%_'Յ>Y&OGn0~ 5T `,fO=x $wo,avSZ:c#g=wT pUVv=*g|ָZ95>Wnϒ0ayqJG>vb|,x]>·躉]SϐXFK8lu??K~INHH~@<:^"\OoMCTt9gق+~`oOVE.poE㚛s"\Tj__iQ)U)֯H`[]m6|4&M95m_F2gò,p]q0.KT n|ÖlӘ׌^kc53(޴B/M7j$H|'Vю҉$>pԴo-R&_U Feui`KZNZEwQS/w_YJ@D)U&giJ4#"<45\zT-1~Pȯjbӣ_&J@.ݪ0p`@h(xi%oxI")zNY /U|[fHWԬk700=Gs=|buQ>Nkt>0 ?X`ꀨof('$ Aqv)A&J*n-cX;,` V%($v 5(Ŕi$Rxw; @8"&ˠT,4Hƨu㻓jr1hz^t힩**K_u/Esb'Kfƒkr9iTLrvEe cR-DU5AK *!!mCK1C d+/cn8HğM"ӠG.4Kw$[`"Nf+9,3 i05qYA9z4-ϕFRJ0`m>n~E&;&+cL .]zd2s^h4iE\qqDzcVPof(c<:&;/YƁ Cx\, $:B;(ѫ+jA#56(j1bCd)zm0VgieG=-d* aXyoKXLvҔr%(L ς6|a(/S`CIFlҾiu23W`y J"ڲ1 %uCNa7I8^L.scA,]X_,!&{+RI 8o)>/V+5@OEO]y0MwIzs#V(uy)X`Mn15>O(\RJ_>zaeVu^{Q;D(Y0(~r`juR3 >H䎪48oմvnaVf FAcu. 'par?|fAp˳*Wzÿ&%*Rפ몫Ɲ"+9NdH}91#/Ҵ2fƲx:?KSWS=3Lsw̭SR 9pYDdtJkβ #XajK Doݯ)>NoK!40H\ Y(Jy3d1E cYGmhAkz[ /xy6MC\%Y_Tgm^ьW _n6*5DtQ `]09cZ %W|lNqat9" T5.1ްϿhaxmWzq'Sm(}*uˊlcfRpoH{e 2r` UD>W N) 3y1N4<*AS j:=J,h_D&~ȗ^BQr9D4) .SSU&#pb$| <^o[1Hl[/NU =$h%rM:#}Ki c5%Ap 50*, |ZEnH̼@ɢ [s4g_eO!_ǥmN|EÔ(OK'Qk!g?5`gT+^8DIG E5K=e:ZE8A Ȗ4nlr^\ 5xa{6Px\ߤ@oHT$K1VH+rPxsφBk#hV )ںR%>;$ yeg'ʿ~)?Lcrb>$[*UHSH w#{JYAqڝdX+$}mtRV3'Q"G=t`^_*>*P-@[rx!&[߃BH@#`R@9]0%֘EY'#O±UA#EO6|(ɜC1W }5T-΅R9?M\G36ۋMx/ڳX=@$nBO:'KICEZUPh?ά8>Xll`ZB:}")@os4Wz*k⫅UFNlF#S 8}XoX[wς:@L:byF=֘ǀD vXi 9VK~9'z=r F[5p`zV;EQSo>ƇA'gVE0>9GL+sb> (+ՈcE[f@9~kUo~`ؚ0ji=}[ec l!I{v-R 0OV˨nS+j+ gɸ17H \΃[qD{~SHo=qjWrt }YRT9A?32QEW 1?"ܶt٠2M>EÉ){Vs_UP -; b4z!:;%6ڶ($2?T~Faޟ%i0dS|5D5Ќ[ݪugp"IDQ<; Fmoc1~1VEl&m&XK34aΗlELh a'u%aJfQ5߰u,3 )RbJ ;4KhZsD6G@{g/S ESԢqԽ~ ɱ!ƹ&Ƹ$~^ۺB:9`f!?;F<7 P*/9ԩ!:j + U(>ZB6y NM?tq$X/E#U*w`"k %g8Hn܊tEו|/B@hVUZ~NcdvSwMVW?5O&; _|;Տ wUbF#1ٴ~n7id82%j3&(5o 8f q %Eλ9R1{+i34G )(IpE`@h O|z#yә6RJ:HW#^a)Cx ;PSE#^ o\?C+C&}!o;ꔙ hERH̙鵠GXzLիD5em4H}ԁP'%@~O x &}` 8N0&$XD.vnϲDmɺqf>a]idBPխ&`"9L!v&N3)9]r?<\bj0UؚY,_vu"7_b7~V0zJ>q}PN,adMbqhk:'ЁPγRlJ]YsK AsEo1KQN#K\Xj|;~۬Bhw٪"n;ER$ [Sil |=|BRkj#7fAy\` "zj;MÀ6S!zB-ѹ :w)pLJ[Il7mJxxi PT$c>XXX(ª4c< oў>W(q{a.WM%…,M >h% &/=Hp'e6TU`P w^7SphEũe"5K,^])V9dr>U p|RWgVY'{ǫU9]ޅ[Fo:yUI?27saQk϶U``i DGn`ɑbiӫ@,"a*W/%Og?/r33pocAW/iʔK}'bUs3k;r19 :3^}KY1-|13V¿,&nY-e<4$]V4rJ9f؅>vO4RhuĩX!䋬\yWTPݐE1~i`/d o 79/@7vbJ\Kx"rd@-PQw/5N/Jin鵅+($[H=rZ v3z^`)o[e:5Y"֫:ROldvB Bދ*OcFCf c0g O5N$Z}tjULмoBVgv)րfY,/$_![Y$jɷ/$ q:58 @Mr_ldD!oKod牤2Y7D.dEqES 8\؀ 2h16`P€ڬ&(鐅#tN.U`p3u9) iˀuA%z`_q5wa ޷S`չ 7#<[0l3b7~D D{ 1?%d9j,P=9t < d\ 3J Kj7%>"D">UjEf.sاU :P`_jEUMC[ U=ݩS? aB%ѹӊ˼Kc8XF~cp Tф2os &\0K KVY)\gX(ʘ<)_R) ; tws!)rpdr,BKN1y>`9*#hY1|,[Yc1.`0o.]ZQ 29*,apj:%&_+RU;JkoH0+*!1-4}xFxQ/{\yY\GC7V:3F!9#ѣcK$a 7X#Oa4z<0{u>ނ|Dd{]\Rtql@fM3#Njy2̐e[8~$C ]r9WS]u jB714 L O $(P\5g]$면fHt.XoHrH r 3-]tM$:@^WԒbvBP (ӈj[z/ru]IQY$dXVcraWa~(G5.\rW1R"SB- a5Ka[n6&;R~&K>HA} \vr@B=&~a ~0IauÏB'M6q}F#(}zDeU*Ό@MiG9Twu" N3/ZMF1Q9e=՚^abkpJrbv⹔YEI6VDk#ޏÒL{HMX,IvZS>uV$V~1yQmaA/̭u9e39u }Ҍ$R%77UZnv͗(se)Ay. Mf=bÇBhkOŖˣ ;;f-XId]Ƒ9.tEZ2-Q/΄)9V6̇t&=|ȪvHQEy&}N=-bG~ׁ}Te߷IA!Sp쥐h9m(B4{EsD(@`eIk 7 vqw/Gb=C6t:aߛQfnig(?OPo1ѕšIr˕lE.ovyd(Y״+)}CV٣˨1hCy n⒭YvՅӺζ 1,}o7NIS›܃fCe05T #~,6dgNH9 t XDtorP ++F623 h/|niRa)1~dQZ66( /mڨ%8kJyM̐uc6Eic뭯lct0*u۰]ԃ ^UU jL.6n ʁ>XÝD"z$Kn8^ܬ@F86l$Z ڈ>EhH1rB9;=xfb)"M2wv@!)FD1 97y63 | ,-a$A( rFT%靏fΧ;$-qeƭ~(DU{SG33K&ɂI*}5 (K hP7jʤ+t<\LzKxRRPo1d8Ē%=bK J67 8^%m_?/໚Wq5uJ ?QNˏ nTF0l%() 7X,Od{;d M;@ddp||(ԲK`wzk܅4pJkIыm`+ERO^ўb&$;*Tߝ ߣ `)Lvد{70ˊ+j?iGz~P%ܞʭm}i$=ڇl^TCvV]&{RJ y]mJ>`G0U|dU9aVV]zh Ip(I?k\V<- I_c :7iZHP|^-JZ%R)Z1U]n(d>1^?< q-%2i'{joN{h}LM%X@ "G|&+ߜ{X<-tfX3*89*&c^ρ=u'0sl& N@YG3$"D2d.vc)DZXA2nػ=u[,O?`{M9T9'L7/q{Q7l[/VɃ:taRu/XL._|^7fLr;ebșPrkjS=Ʉj7 >y0hJEV0|}b+>=B?V PgA(Vl}ZS/14mUuSQ,E,cebt; ;YعHen6i'9/Z]"Gc6nLw).C 5%ۊ$\yi:J|゗/sx>s'"SXքe_֧CgHô}Z%jW͌phթWV/gxN0U.1E(l͘AZ\WpPT ]ѩAgT{"`sH,'XA#C.7.B(Ab.!f9W*+w:>2J !)$<}n;7kү޹ ܱљ3kѝ)Qnڈ4/- Xy4y?lTcY?? _+`BR};a퀫Q4v 5D8 w13tKNTv_S̅Ԋqő~Q@!!ɇHҭ]Od$OƑn=zڢLN=6+v| (^ɰI/n6{'罭T&RZ qGb0ܑ3d&x:_xnJlK( г,1ǾVtj4I9X7ex践) u6 _\d+iwuH9Yu ZO Luj>sL&T N),:gm( j0HMl!t.Ͳ]<ʧ'&|@k0Z"Gc'Uq3<'S %@E p9<39I6:]R,#ic9SVLy`fW7+~QbHEtJGm0ud_:篘/UqW68 :Vnx¼# Up>|,rimzsEٶL`J'q#LUbͽjƲ\gBcԑxMǼF4pPޞPAQ # g( )9N*I2=&\%Vf L̳s?1!osY1&8xWݥ1lMp;CՈ~7"* W-RtMK%F:{ +=`M,wVuo 'CpX'D?(xE(oK;U.g;br -Sܲ%ٸf1}O 0zȹ\ ,UrySPRz:s~ RɞgL1vZJhEvXAH*j蘑K1>-t R__נD7T%B4 hysfەNeA94%~gWF&#_goG+D(j*Dfx+(+ܺŘw}(Ax+ fFn(jmhjk|"xuo`|\Q9֞8ZV%G#`JsHpJ|ZXʦ ՗f2k ńԅm'd~ (B꭭t>4b0z/}dؐ4yox NY֦&:tƺy%i@CG@dj2$F%J#wZ^DeJ8{`3Mմ (κ +ՠ;;qt+0jNDr[K? 1>=Byͭ|#~Qq;9Url6vl]Gqb&/ip+ʏq01iEĈrG֩f"u R~uRY|_Ԋx?q["R-`CJu`7X~q:uiLgg&eunzLU!ذܲ|9~V!A/y+9|:m}5ZAP:}WZw UonTF_D]DFy&4kR{5AyzJv],]ܠ"3I-B_!7B cz_l4Ÿ5eq¨fsЁI!ת&Q{.Q=9ź +-GI@{Z>)AjC_[O2ه몗41VxlyL0a2@П˓<"AϬ8bod\{M 잲RM0ݤ*ۮA'ѭvj9 ̩x9;8L{ .JV&O\uE hY\vt?9wV k!ɉ={_>-qWJ0xnidK֣).gw>DaB>L|רV[3SF(  r!ų p6_x,;oTbZ}EENLob]dŲq`g7@E0#"=/E{y.~z|=&Թv0qmAto8~RK[B5mQ͉?£jIRpI@B<> ~G#!ْ+/~$B"ɔꏀ;wZy@)1۪[ ,cY Ёľ^-ӓ7xR;erԱRD 7şEӊ5rWDky2~_%WAU&"bQ5um'5סz)/Nei HxZ'%R]޿6C(cMSnn0aRAH$Tgvk>6#X~4L< :+(,:v M/x˳ ߻[|MPNS7,Y 0>>hg{>>'P~f곀>l]KjWq&[vxGi |!n۾}V4/{)dUV˝OGFt&#賀3hh.-r ̸t@A2KT6p"0[Wy=ˑHA;Q?Q]XnF*ygAVrK=_F3E!fѹi"߳HO(}ƙ#xB|xi8%>$SI=!s.gˡyGi71DmW%P]NA @[Qj}oOV-a1h}:t2߻of:X8ٶĵmFAYUDeV^'Sd ?Qm]0rFpֺ N lk5ANɬx N}5\IB@7$[4Pfg {\0 ]sH>32:#Qvh[Pj9_(`Ż6 KYFt: =ߙ*Myf\ݽSxN9vq'/)t#}0A<5& |灈^}!B< (oCe7Cg+i ()}-r% R Z@v'_֜U}5X'9Խ.Dz+grtiV'=A8Ͱi(ʒaU.׾;4ζ׻v5-*_-P~CKڟY%kBl\3CfhfOy7b,…GݲR )BSW9/XsQCDDgbu!]7p۲s̩:KP.zHi3CK|q堾'W.&ep:Zcq0ˑ;7u0CٕwwvCrW2DHDp +"x#i \elqUڧofT fsn]ߧP8*VokS4n7 *D/3;B 9anc/KY|S9W/./TL0 91;q6oS|C֘oRd͠n \2`btFv8q %W\TJrm%YG[wnBiwƭrXDVlӖˀuquMm;oV}2[^XY^"Cd " %014_)s^,M2Ed)I5:ZuEyΎCxdyE) /&.,tA:~ Chx{w?#7uk+V bD@в!Fv6V,?@VT1߳&˖H>^{q~DJ&lM%rU# uI1$O)ڝ \',JNRVO X\pޛĆZcʊ&CNcTfmsm!` +E+f &ڢu#^JQXO Tf5ZI CC]ͷڃZ6fR@C,x<c-HicwC[Խ>`6K$9}5J+v6ӄrZdE6C#$ 37]/Z*3o8TLJf`lvnؿQ8]H e<.^%g|WǨ|:4f:ؤ.HySXs|Zkpi|!~/Q(.X\sAye˞sCm.M9Y9 ~\xv2rt {akZ.)GZi$p8Q'ƙXO h9 3 n4wO_JJœ|HƳKr|%FLGt uJrL+sT6E1kt~(BkDl( 35f~?h,郎27.gp[)_I:k&1ZKsĖ%U!nlefh[HRԍ) 5紴s0כap㗚%4kh%&%8nD0b|/T{tI-p(A{! O>u3FxZ9D(K+4Ja%Y} Y׼a\-G⾽j3\q~d8<7񦈕}hP ;?y#F0:B\!F?wZ:"&O $j̒6 KҎx9+\={ 1=E.VU<ibϣ֢ /6DN}-^p֖s̉K-.-h->uh{= E%cEL]4.''"cn8-m2\P4-oâ7QIl%PcDz޶^;N"U)C DLE3+y'a oE͟iW3hhvNSf^+ {wq9GTy~B9feKp^6h8+lԞ@Xj/:I 2BKO>'6ORwB Q_+G+Vۛ)W9;6RϛXy}=CY./-&jyll+F"s4ܷb,1ZX$wˠ X77Tȱ5K0FDp(?$e6p%V#]v:܎4􅷐OA>|EEq/C>U IRwT)j|n=iMb$Zb0pg鮨Bf&9#zaVUJinx(W=F\AFFդ뎠Æ_aAH6}\Pu Qaߛ >wRi|LY"J?, ?땏^ҳEVG̝".}4giS8;c3|vL+JE*zrhߴa bY:"JOC4f!7E38C O2='}tVD Ϸ֑#W.J1CFP$D6Y$;M2]9*m1QG}@9a n"ӣ-"2 {wbO;D@R(]ݜ!WRϋ{DruDVp}C:kLKJ䜱Ko]aXhqwRJđM1v`&9n4DH: /rİLn{m)?̵#z##Hl-)zhyh5{A83'LR:9*e/ tmUl9_[=ݭa|dP!hWNœng53*Ņv(6Ht8؈#FoRPYgpɫ,GdEWSx ==M5V4L>| .LK"9rӲ%3}K\[<&nXƥyhdxt 2x+Np33|lrw2~ ù F6ܑ,p޹iԑky 2N:;`[IxrKpGcXuꦎqG{oIg(P4cG[-*3RP|)!9-)SUVSK^k, LY%r)D0/JppV=ڸfⱰ.m8X&;.`"5b>g\ߏiR-JЈAs/,)HgJ.CCr_D~v_ݒ7T3EDivSBkM_S%umvch7Z֮n(c`bv{?b$J8W,lڃy#BǙkrQiX4FY팩 rvL~1Hfx]`όƞ ME疫P4є\W}Bkcn{ Yxkja|Mt GM=7x{;= ]z6֛x* [>Tg(rh9Up5Ae$E1bgFo %,c C:hqxԛP *$+%B.Ae-cwQ?IKB}a>UI&?^(֓o$FU6Jp%_A$Ql纨h+5[Wׇ=xNʌKib4/rb%0& 2-t/e+4=8_O)k,V]rЊC7[:=e&Npr!4K{ieV`5~vn': Ics~B^/*AvDgZʉ ޻/n!t/%,H)Wr*V)"3E/Qh5hwM CdBc|bP,ojhʺNKKt8 XSRC,Ցev Ɨ;SR0J~Wz>3_2 hxEaYy9Xa/i(j"͋곑&ePxLqI;ӍLgie#>K9^@ֶYGP_M|\rkazQl|d8b,`7@<"ӽCm?vpG *.[VhNz)g /ZN]~V}(h1*n#kIrx\ xvL? A1ӹ"lkwZCMoԂV\]hgM4g 5!<6h)  4q]U 7]UUx֚EdqAek1> 69޷<@Z=.Қ3)[ l$-9bCKYπR(XXw] qaCU^`I| f}G \=PG,mx}׺yU+#<`Jl?vv s^i9IOg`C&ш&2+3^mnR'8/dhu2xBG_Uam"14t`:(`* :|HL#~kwveLˡxg7#1O?8Kᖿbǯ L'TURڝYI3Hy..M]0P M0Fw8 O~\pQMs_g_ _%5uTd߬k w"ϼ7XmwdG/IXgc%tU*Mf im![z*63SolWn5+~3!Z0h7*f8Uq|%C=6K {r6֧;3/H%@cl˜}CoBf!䝼Q>2z|Fmq4n?1$ K-;ڌ O#7ɊdVmy%7a5\35ȭsi+^La ?ݕљ ~}'TsWp^& '2 8!ꭔ)!.w^E"iu^:&&EG'8zi}NmOuT.̛Y&TM |9 JcWaT?>*AԌd;RG:>Y*3g\j;[Ij87vA/"[qO &e`c:C&8@9<̺$q|3fDTNh4#!dQOE()_@ 'wLx *#+69ۣ3ޒ'VGozp$shBEG1IFu 6RNA۽0Rs0aSL s]8ڪdJ!M's^тfdkE`+܀´l1UC>`L{y=ς+z&uXbvW?P#C+]vECC6Å Z<JxWKwoi˜eFYIPeȹ [c8b! e98QcM[wسe2+@P49WDϕhXNٛxb/OԪ?hV.ᢖgd.qř5$ib6=`nuE @bR eC$N'ʽjύ܌Le4D4nv+Kdf4d6~AFlzmKw ғ| С(|B18A[%Mf2t~$8Y{{/+&FyLOeC0-oΉvr Zx׵#]Qy&L IfAR} >st߭)-3w@Am.4CSvRt}.B\S}h<Vk.+ImkX#y8*!,Nl{K>:^Lui Փ, $7A-dUW={^L o-bd;}mw ~w+\V#ml-߇s..DlB9eRz ꄜ%Xg}azP1^R~jC.m?t-OZCfdكskX}Sz cB(Am&PU:zA"N ?sg_++&%K\x:52}6"< ĂwkV:3YO$+\IKpMwidtbdry 0}zggƩ>ײoVd%"\|J\ 'L.Oa3iIn!̢4cm0&26RT 9UӓWRQ=MZ0,9(x,[8M!;MqVoEHٝtERk wSM+g}78eщ;15HG>,(!b!4h{=˵(x`|b%Z(֠!@. ~.=k_ ºcYh+|*8/dvJǬ{#_ǽ(of:ubRA{LV>(Y[_?h˂Hc"$͆DTwbbR2땠힖t8/Zp߂0u2aYlQo9l7(DOJ'kamDKRKMk=!"5f+b*JlЍd)k2Tveau05j>w_ëiH쳪޸%G5D]9 Q&[ ~[WFYHoqcA&u"=@I-os׶5H~152~aY:Ṷb5?x3f.0`"ܐ; vj_8N/&G'lh bA)UmۭF2;엏x/I]F$4QHF߫dcSXBk$ 2*3*h Yu"NC5pY[5T;[;HQ[A4v&?'S$x57HK0Q†w2Uӯ1*]ZSA7!U&=x8vH惽sBF&=n/0 ۊe#Wqt1n4GA dyny7lS=JGagI+(Xgī iui]liݕK%&GXFp^)}Fn  iof%mg#I]joȟ_K/͉؂/9U{lwyHwvBeb,0Z~iX{& NitOu*렃i)!j :.;Y`ˊ 8Š MoF7C'l/2i|BU->LDв9t,1-$\Itː .{0t( ~!BW72ɶާ~mﶁR@:R81+0JD` -žD5챞CZ[V1 `^k^ȹ\SXUR蹕-FJmÈH,0[˶|rg-fs#eXC#R0$b/cm<}uzܱ<7E8mDBU޿hWءe^}Ŵز;qW2? j΋W{2m 393k?bDb[쉧 ^F|D5^RqQC2j / Uz/jRwFZJ>l*>4"pvc=Oy} 53+ܻZ:>OdJuALml\}ӠLL\0${ec+A 0(iN1o4 +QتmLW&Э?߃_mo~ Ji@İUND]si.'c * 6.#TSkٞ֒xo ͑LP^<3~abiP0fߢQ'la'-a QuV cT='1`aqvn.Np9>KfڞK4vC ,,.3yxQ=YrڃީJ42]UyP-k:R\ߐ/4Pĝ8E 0>>FʣC ʽCI~"(*Tʉ=q^*^5ZAAmsAax--A%PDSǹx(THg":"ƿRybaք`ͮSPNk:xozĨO6I'AAQzٕMq6YCxhH 0tyޮUW##}H;1i $O@ƬS?Ux$[^f3\d}0R8)(O7cZi )>z؉cidj_$)\ Pr- 2ӧ5|3z 1"&9wUt㮮Φ!]qCVʦ8?-$G v˹~){hfu7Xޠlo qwpi@ 6D1$)]7ֶ-̌;7}HfbgL-f]v?KWFFZ@Ȍk~N-N&MZLo#F^7ubȣѓ+D C/,(+2D5+u5@xe;n HST4KG}G,"cOn,]gSQ`Ȕ|dW1t;nf|aV31] Z Qiч}5=-B3gS 9ےZbh@F40y02w6< Yr5m+EQ$l$]s T-M\R{yJʋr} 6&(7KjKg'l  ik, mRW)#z37}|LlR0>uòt`?e9D$Vsu#6[XXXʁDlChF6pr&+{dyKh/_z!o#](K³uq.|jZGur["BM sC,@[鏼0Yy!%`*ۂCV4y/,FkU+'.;ݔe񕑨fenHR~W70bJ9i "߰žQ%5s0~eSv .+6NhIxso/ГۮLۣ}U0Ƭ)+НuT&8xɶY߁ kp;LpaotR8TI?U>RĨlH>:W1ۓ3lGg nUog5|:V)z=^ejs~juam{3)9YC92VYzuQ b?m!,ŝtݙE%&\#SAd]RL;jޑ]Iw<s=]q2d\Ur M)k>f>uIwK_ٶKT$G@%K؜ m=L Waq)5t/'۫D1?F2A7"?ƵdzC@BMKX;"-74׶ftߥ}/!j7Cau%@[s@OJruGo[gWq\`M]Ee߽\'C^(u ;5*y[j,4hu C3vR8ѵ9YasŇI5RDun>4;Q$E`?jƛzHĪ"\Vvf8cn8 )"vJ߼"jMC-$ppmN+N,Ms7Y`4ZJ6?,&R&|ROHPÌPǍFV֑!I佈7:dkXGl:ZP7ta:JET׶SQd *Qn  6c҈3xyԲ_qƓC2W8p<&+K%Wpęl ⻰fH[dN할w|PNSWL+#7JɈPcNfCMyH"v^#՚Џ3e$Z_GR•Z8"Dɢ4VE Ge흐4#yqTVcv5=>a 2yFkGNQQ U-3վuH1ZmXl]:r.{M[4`9pHi4,V?>i|fM#fRC;nΣ" CDg3FbD?( 4[F6vR@ı:xC:;7X6qf#'>J6DZ#r8E,]2ŢN+\hmjhi%T}֚hpB {LL[9K9PM] }٪"km&YI&yڂ܌1$&x(F]d6q 48=e1`-XAA9A vZ7,\ (~¡1-*vJ+i™dBJ%i #-v͔+agpe|M~_+(^8/HlZ4ӫgu[JQ9dUYH@*"|ڔT3BeC@-)TZ_9\R1B?N<LjI(((V}DaRB\O5quaZ_L]'dsvdz1C [*$TMUra&R/*/ڕnv&xAz^uzl[MƠT2{3%} }j98u5_ JVQ䟜Y'b!d( |lҁ< try9+:DP/mih{8ie=^X=y*L7U s,^~ 3Oa|5Y:Ĝ.{#*74 r|)[t׿ȔoeRX0YSrK%$0z#&B"Qǖ ٧Yb=Y e^ux ~ 'JD25}Yj Gxb0̩ȍC/OO1uZ>'tcR@<%ǿA?ϗH-#.NvSϐO5o5d9J*VFÓ.&V MbYUxdaQ4:h.7U:4[WCNV,GFh螁rrR{"r!&Z$H \)iid& ȏ"YWjq (ֈ LgB:sTid#eW`R- 놱1~rF )a?L-u ٍT *15a{lXJ1D׉&6]\ 0, ƅV{h+/_,j0rVk-[ +Kqɂ tJ[&n?{7@k }HUNv Ե]xgYw޳hA!@ꌷxtRBw&_CĘmW&wϼQ_\!BDxfO%+sG\72#O:Q0R)2z.\&;M18*PhVs``X,fuʈΟ6X+vAYPH*=227B{8 CfsLK} |.,K|AB, 7=d%s7?%6wn,xId7[#@U :j?z9_H^i R ̗7KVΫ= C@!فLJTMG]}2:dSe}dR In_ywO; #âgXshyNSCx>v_cIX61|m|Jd<(W6cs'c7xIߤB4I9 76磮A; L1=oD}ffkbNF 0mK"a$&G S9P2$&&ORQ4E |Nϕr=SbiX3i ,iDÔ#tN3ccU 븎) `K, vјGfƠ,`9MGM{}dPPkj 94qiVQF6P19 rU& \zh]tƐ˹Q)%A8MtPgYV"d^*o1+rfVS\s;xBtYP?D~"~!s;}4Ik_O]'Gh[[nA?Nΰӫr8s.0J16&|D_] Pl wX3vE}t@R)S U8a3-^ghúՈcLmo/~mJ[o*o }GfNdk,yDISsWOWVUFU/.?8~ak syb4 x.!ER1I:8>Lҷ [jRՉ+*Bq)" _QOJ[2KZ1q怎{9zYo}U[q6sL >-0Sjdum{I'^]\Q;CײN9vBT͜n蜿:T8CIJO 3OtjX~To,‘bi}nt^u% ^}R"{0v&.],} L^>z(|YIi%&{ 5:G?[;z@7[;qdxh|7ކYGU[W3EDvoe1Hs#"?ߗL\èl; P+6Cćӄ>{>-EҐzvB+"WQ^  5Æ`P8R/9W2w`:(iF^k޹1OAP6 ?*^1Evhաc8eP%})Zyƭk:D 4KiIk_< Wj8̏zYrWPـ| 3˵C0592u.ps.t3PvžD 2lNJ;4]_ c5^(z^\- .AHed/ړ=eP-P=} 8EkV1)9!֖+E81UkLcWB]yۭ ^BGEUmrN}0(bJ/g>4O2|KP4C җGhJJ'o;BɝٱUR$;!gNMmS[s0Ff;-'<+%,ZB= thҌU{g- JwZBp<.Әb;63p~m(c]NFcrj:;Ȳ* J(@`;to2֫ DNP[`ǽ]E|j"VzM-Ba\3otsm*;Mȉq *,=%gS0[Gمz(RE Ni RW rz[2 `|]LbÁ|?™ۑ~>mXhb{+Ձ<\e˔9o~+ً|,M df[I][_7i 7$R$;BWn`7fEr+vU*z|8-Q`áj[%uP9ڒ S}` ʡBx pׂJPtK؎I P1d9>.Cdd5T\[mg4*1+yoCl~~  Ɣ p}޽LLT w$$+ص*-Zȵю)l2CKOR/~ztJ?"A g(gBgz_,Ok` gdۺmEP7(ȁRgo~:V3sSdgŤ&E_ ^o2\;֐Չ0!iH(/ kp1q >۱.>0,s~@i_La]Od~de[:糲0LhU`yl*{= \!\F}W(pXM|CW˽@jT6CfmԕhxLӣ\8Zeag)N|Z^}Ǿ?AX͋`#lJ|!m8@A)tV~ /6K՘J梧4-Y\q#PY5sn'9kuw }ֻI"CJM#A=(5%ayl8l'ԡxSr)c|R[x>w ^ja9V!N)V{^Q4`%6:g 0>?{ URr.zDm)2͉>=pjߢ=kKsȲ(ҵ&F]PVԲ w&Ѫӈ6(kx,ȷcx;:rz@z. 塃֍ X,r]#V]V K-f*iTn\}VT K%eӳ٬?x,>#Z(/\(=t[rx!玲!}f֍y[cAa\o5bt -2IF=A2|0 oi g^,q@ D}j:ꭨ| ćk:,m$`4F!\?.2|a;k[֞/W36"XMi "򓮔L9# U֎|Vok${mJ#K=O o$xqtqq/"%a`zCGR"jDZ>yQ)Z[[`c̀>;,>(SfCMt?mN_qyP{N qXhvl=%&k{Z_IfL=֊ ( Qy޸\ΤKk V.<a$VwI;+lH;}uɽe8U6͌Usſ_ :W7Rn^ |-}!0X OOT-²l&C>kOUs5*> `BtH"Ȝ^> 8esPuR#RRIdeе f} ^e=imէL.""D΂-6!| ^y~Fh3F 5SIYJ`!+',Z? v&WMd []gބ*ڦ&QדU!7tyYz~x;ؓx_څ`frs+2I,Ke?N*KD/<'jB<|#kvi7\bP奶$v1hT[dL׵=~<{QߓI+][偶tG"@9;!d'^e'ZQv LN!MS=Ug +IK,z9RImZmQݛzft(ԯ΢P@0'>Frr2-V+ͷ̟RW&{i:A۵w@R@7BhِU f~Q)m%:4{.U5։nm]d#)T+>T=)I1-6\pk M4du}"axG>tlfçu3[B_ {i^ᭋ zýkk rڱ'L&ܰ3ؐtv3YΌԌ5C\,uq `9jLR1=%̲_t&6!>m 16RE}uYKxGQc{T} y52LԀ3lW,Tq@2jځԗoo2:oow<\J" yWb~46:YևlD(,J# u.zfbݟLhrtN-PPEĹ/5< "^PІ߽>М󂟛Drc,1 >oVS2temy.TQ<ߣC?{8'UbKK{,`t8aIh[gG!2hԝ]1G2o$oCH]qbTe|sܰڜ )5.Szq»oEI:Nˍ)R-xsDCJ3с@lEK St.DqKrt\Y2wZE8c9A~t_Q"XW-N"F!D%RqGџQ@8d$%zEbNZT%/w<,-U&PjiDz긋&KIFQg&ú Bx)菭6Ij w Nl5GX"cw ̧IZqՐ?|.in'"la-q6H#%]a4n$((b4 mN M l{Re,R<Qs|!JD {꧶8]- \Į "N3/֫DI'>k[L{<2C~Z,dKLILL2+G5~Izh w{=TR}@§KYd=8Ik0 s [n;yhḾffPIE;U #@;ѹޥV9&b=^(r u3Q9/#i *3H!t7^P*@GRtéfbȪ %Ѽ*[/KH#ה0LZ;2k0rE?Q>ӕ5gKڰ.&O0# , =}K29A%vՁ3 QVOT=b޶)ɺ~!1[Y'`O4۝W T0?/|i" Uew O43A8AÅH$]YOKL> SG-[䁗ycRXb<2ԵpWMrw_R@ֽ5Aъl C/{I)gjtT3ֈ")X0s˾ȵS/[t!}\P6{gH4dm AY,\gڍk7#,D}8s>l V]e%,2;t؊qz!td<,y NZE -Elu*^̀Pި\1`xcwK%\Ƌ%bi[R0; OD/ =z`sPg 1mYQp,$7-Ѱ)u,hiV9a ;6wR &w9"4a^\ˆ3pR(re+SBZ]JX^mSjWgeҊT>ex(]cS95t ܞrNSSS^0 [j@$Ο<;%~wtDv sSC,o۹Y`I?g!G"sXjIod<,*T@_L ;:˲kriy nmW 0)HlZ'9iP !=]@%G HwZM8B˙N[8[-̕aae⡠)p9KǀVaJOkxZ*(dLfNͳ=+92E5uZ[.e0c}R?3Ȱlu1vE@/MVO 4a^x Up/1VD/ASgb!q8'⹉#4:4Zk+q _SRpL׊XÇ\uDD!~:ɗFr6e`RqJUTyɲ rJN<~`1b&13&ڞ~h¨Xӡ0kC92WissXhBeeďs̬ux2T^aI 1dX0\IȑdKyml7ЀϟNG5 #XnMAˆ,';sEyKSzc;F(l^s76)$ 97ߎOW eaoUr 1[,ay>Yc FHA]fε.(HķLcpG:29gl~Qv% miygZ*%phk8ĪC=7ZD4A\g%hZNdv{*@~En_9>:h R`Dɀ= ~jjqaP̺Rr"4D5U gP O_FۧSzܠgx{<` )"^K.2Mx2mTQPUMةhn4xen?-5ߩ "qkVN/OwsJ ksk[$a5 <ޝag^Gf f:kH |`/>$肋WXTIL a ES34m0p^7{wm_ ~ow q~b(**5,zL)^FPGs%N,DXD9<"jV1ON9ۺ $~"s9~UL Qfi>Bzp YU>Z:W6l E't-\QiNД'./+[^ȭ>dYo f{,T(-!̜X؀0(=i( hԛwخESGR}d߁WOT&%C%;jC>85t˻^Zl4rB7:C$-9l =Wcš`_^SRh kҾt/q ϙIwI^Gl;B5= ~L1X0ˮrߖa@ m<(B91 Xܛ Y:PU.{Y7Ky:JKO~(gr8ng՘3ocO:U" 7u 3R?7p=?g~ʦ]u; y߾"zp$*w2w^{Tm_ɿ.C'\!DNݳoa3`NoXM8} |Xk˂Xڰ-hcF_瀀f:&`5G~w6OCC?Tjbsn,+(1 (Íg|}MZLY0 Jk: 5Wd& T30FaնqEY_#IQ+D^Ȁ}Qr"MϸlcW9o[s(8IS8Uc.@*Ģk`H zurS\_,'P"V-ݗC/=XDbnVYl}6 mBK`=Arl,>(:k%i n|t7%gV Sm/sjH6$VVcu2$ >V&QQ*5 bԺ U]-Q%7]>+&9Cո9{)!Տfq@} '%߮ا6oDg +iƥd3^JIJkM8Z}a\ 5xrhCjdM΂9:h^څ>\; ޫX {sMI-h>9:VUEEk_NHGi%TJ/ܥ% odcS8AS;Ƹn/U[ @ mgM-)杤?4,n0UeDǤ~" }x5>AI/oɤt{zpۃ QA6T,R?0n6T heSh\5]o8v+w elZa.sTd`/\j`>"͇B8YvacƘ6*c5*#&&;~FȎKދRF@KPM?)[Fj <WuV->1s*8Ϥk.t/>ZhųCi+:A%Puc4O$+j1 A͸yeR10-w7I/N@n3H)) fC촜[XUTC݀$&ZU-nh_zp*bvWPO~C% YRXa5 i/>.y}/d*֬ˌlW@۪& %>),lN "kk_ؗJM!XMh Gk5l$K p#:h##˅f WgOlzgLTpCX5$YJ孥{ QM{x?~i)!N3K VW1QO>]:%OD9HqE-,)EHMay$@c iXa͐mEq ~3FDC!_Lgh,tvKpkW,H>CWbuO3Wڡ7TdRI(p#aڣm&J~B̊#&/ 8Hc=TS:} *܊1k.dfA=p@[HEAmWU _)Sg;E}إC_;`ÂܝI6]ǛyԇhA"4~ІjЏ0֫d[\2F`ț%*!aZwPXDz=GI;|E5?uT~!t[\3泘"3i))0td"}J1_ɂkNxSLhβ&U;Yi 8U#|MfDLG[ƢR/k9U)$/ExuI(@ܝjs z8lݛe83Q9Y)k7L$rc;ZvcDSԛLuNsl+2VkĊ r먉M-Lz8%'ZJ+fd !kds|t9pz^utwo4>CccE^+ )ckXB-LHUWգtF bݖJ@kW2mY!t\ ,J3?,gܨHHNGFgqԫgv$5%_e]&5_E%rV@8yFFєZGGbzBA1#ս5ŝ H`ifjNXBJs^1$w(F[㡊#lxba԰ħ#ozM&&qj ؁Nc2s0a&tISf3Ðu{^*\+=m0FI#a*W!и\F ,=w\ӱirŊ:_/2[:嫰ν`3fMvNke']SYڇ 6؞FѷnSM:l6*xhnPYL֨.ҁ˱Cj@sRS7`y%\Qȃ!MZ :h{U#sr{dSǤY-/jE*OJ0ha OS|PR̦ *tӀv'_J4lThB#69`:N;5 ?|;PzDzAޣ*W_jurG`=MY%T&VHͧCB~z(5:ޗv~#bL׏ _uSvf䃯˙q}z8LW^1.uۿ~DvEmH1ݪX+u.d|j~؅f㈋6%q}S؜-[?kE|no{9@'v4-I6'j,s NY { RiҐ9ՒVlO5z#gIKFUu;"ѳA(4dlA:3IBk"˪_cK&wW~u,a9=zJ(Xr,0XIuGBY2l92h<n : K~ dJ48`t2wP}8d%hM4ftX͎GTt+\a#uj"s^'cqmE߸N@ŴuwAP\&zz7bynI4{aX9EQK Q)<ڌ])4u~s%c- ZJZAQ-N葻7Dw,}m nfVet_G$jS?(5boRhҠ' rJҋ}PP#D CĝG[#_=Q0}#,fdS,GR؏+{af#Vv6G <^YՏU1?2z VWex1!'[u911'|̠2ugg *5Sf'-DgCҤ k_&=j\QæQo أG~#^ )8S7Yq0?t*/Q $|FwNϯf}F?AU8}p]Ĥҹi <,q_ZmhQ-7H-v4 TCAkѿ&U$׫=Z4,:5Ontu&FVW, GoXu+~4Ξ{9_X#{o6f栯0',Ơ`y[[T4Zæj w!%#QZ©`!4P.v!o5`q [~H60I82va4$K caSm\ұk\knWGo&B;v Î>㾮pb.mݸU6]|V|s⫃0D#pv\l'=@Xi(s JT%ʉ{Ym#lӖ"Ù΅Zgmb~ J kkdo K+.c1#0T, Ī]V=:-1OB8n-B7Uo:%0t8l3oA2g\YEV?JSy%\[C?]G_3-2wGo=r3lEddjTdpܾVzxvA]J+uPT'tKy{ BH}@=\:p&*"Of'P^)F^coP>띍D| 䂲WK?dE |UJ-9)};r:'.euRZ~{g/ hDHmUkF_pLŜI9WS Uaq/ \YA@wH{4MdjKx vAYNK,,͍i9nŸr4g&^d ""{f7O#'׉W0(ng ܴH0ų3*:;ub2-?fbXp}hlXǟ_sh& fPdZ-(K2 owheTseW|K*&!a_%Z~>vN@ &S2sE,kd;; ˎ!h۩s~p*jn%<<ͨl|WGl.$8qV R£:.0' #Lm-ɟ!^%t0C?aáְF"o~ɮ L8 oi+K7h kn?D.k 49;3zg8-EV?1j9ďSv D慙@a]zz.# ɑB-~b $ԅk<26m4=$ВŴ{sW} ~I`P4]#ޮ Ko$1 xXK7 00=cY䕺GN5rZEz< 7˾'.FJSy̱P@)If7C+_U%bA=M<oz˔RiN[, NeP1ӈ#ca@ oᙹo *7nL-st_ 49QGT]`7`ga=[bMxK^BlOMʬ8: T TjM*m[CL ux*E:7SR.cS3\.Fo(wR=p1xVɆ'8ʂ54_LX)ǻa8Ҕ}ITaSnN` vLyCl|cz5s1̸ &|8֊i6mŽwvܖBtNG%OsCÖKu٘rH R̐,9^BH!L B5GeTbI`gD;e#z& Ka%FV aKɸ*\\FC1<8(H&IZm?a5TN,(cVW7rz. V/p,;.F%<wA }ԉdf L菨fsJuo-!;Idϐr|ܼDR N-8?w.J(6Џ:w^U$1}N.@]3F֡3Yaf@?QvB`Rfuѹcc Jh FJ߭:6{KrTzU|0xe~y^[BndwUnM26%UDQ=.:pO=@S u̚";k1jLariJ?U18 <|0 7ܸ  Ƅ_-BnjR4SDY .;'vN/t:cT3/oQC9S@ߢbspe\V%][T/;Ry O~|Bg[c*t^ĥni8JvN.zV0 L4hR-cXFNw3ը#[y0YU9"2}(QY`vcɒ/)2ڢvtIt0"tI([3[^*8F9YCz~W?B*TY0yXߑ@MKn[zC 1J–y7fOBo@X>]yL'@8D'29; Jăk: ɲb]A/uzvfѱ,HuOs>]L]l-?/Ty pz}78SVymKp$Cfz)Ad%Lf`i6tB'5&r'jA -F /xh3Z'B3:q F޻y͔l+Rl@"$ 1zy?ݵ7zyhm ~^Ѵ.k\GbϩM r*3*B9)B >y?e3VMT@\=< #pk& sHs0v2e{{v@h&rV/S+YԀ-K3qG3ՖsPB쮈!D=wQpu2̬PqLe5]${rw䬁Sk_Ųxڥ9z`!ݳG?ujmwdD e`F33+u&v܎h}1!h͒QN4ff1<>>sVLwVhh9b1IsӖ"6'KǯQWKh'}ǖmxd|iuNK_1#2#6MRʚ Fbog*ѝ)/KSΑ遌E1PN& uHRF- ۦl}*VKOVׯ>D΂Ih9D;*sc4h' )7A@εRP|!ʦ3baɄ8tv->jpAA޹Jnxn5ݒ/"C;M #.b܍\WiK X':zzsզjxg!_oa+noM-ܿa.!&g~a-&k6ja`8>?K k9jtKj[/Yq^:qJoGpIlITcB!r`?=*jv+7>j:bٻк2$28*‰+̨~N>CVt` p!@8_O}.<Yo4ȷXe.c ]EW :/g|QGJ^ V`)Wk)s'pQ'oTlǔS[D_eRp*}K{`Qgq:i6%b LWq K^~[3dx,%,-Y dq˳(NҨ;~l7gyz- E/ZpsuqJ_*I ?Ys)Wd! Q='qf_ Uualwkz.}\M rm@27 9Y1@TȒ+cz5)w!S O4-lѡId- I)7Vg\b$fvǮQov3 T1{@⫚Pϐ9[@pv?IH,I! ,JImdK4WH'%SAGH$$WFsmC& wAJ 9`|͛Z"_TتϹͳu<Ƨ;4\Y^Adq9h ;6߸.ࠧD~F@VJ V iKrI6#n2l zf-jHl [霈by{2ȟ"[uW9(#(Nٯ2 (Ko~ȠW)XX6_~[kdX㥲TQssCӖ@' #a)}ZD{2m;\aMqt7+84|;d*-@FP6 0y$̰5Qs8ľlm+D<o!Xz& o[+Rq P>` 1T+FQJf<*,/8+⅕˻ol%ot\%S'&Q)MwʾB7(zyyIj1h!=ƉQɡ!TčBI'g[+nLFN, Ƕt+%C0tYtqI!4@;9V3̎؜_@fF d?[YQ’GY,r[9*,o&1tgZn=Dh]`P֜WDwIm0$,PYТJ4ٵɥ7N ScC<] _(6A䐥=Y@PW:Fo_DyLkvr`kk X 6 p9m7e/[YSdNbu:8.+^ZmWuTN^<2W/cv)B+uʹ]ݿy UWi>dz9 Dj *0?`AHsE}pAtgXjΏ5קj& ;vpgSS PHPR0^7If_0M}HRd.+;%F]2`Pb"5B\[sQLn _673tg Uxe9C,]SCc9˞m#7B}զ*2)Р |>R[$\Hҙ}65pYJZTew@uKލbrC@>Q]\w: Y$d#Aҥr=Av%4?,+A*2lx#%Jpn}؉y+be'간a;0D {ʳ {!c꘶H,zjz#]Qه~ﺘpEɾ-D}g^rwb, )4Tq_l#Bj6QcS^3mmkiPYã"+F/HWk\gQeaO cW]&ܤ)W@3$&dtZ: 1ā5(i.|]f>^|hT]4ӑpn:\M!Yrcfn7Ϛ;v Dfɳ]^yc |B%4ocKOW5,.#=%-B|0mRBnf|B)_S8K߭{r#ޜ ^p^2^;o8颅Y<#abE&{^ `)uih*Psa={-@}]p;G9||Am~:0avQEZS\ Q8{&))VR|3tc՘GüIM󎂁Xm/Ut-9EUr1S* 7F9p:ǥd,l|%zv?H{|2]b[kN)}z_J6g3rͫťZ*W'DHR/?%TL9nSqVuoO6Dj= 1'}l b7pVCئX=x 34V@ݷ(k"@wz5= tn EG n3rFAxyϜwP?l j#n,.7# xq:" aۦ.8q]Xk-hyvWN^(/zP8qϑҶ8\^  C لk C䔭iaR蜹O;b*%E]ju/i?!!XEVG7i~ׇ+i^v=z|rE(j0Z7 w6[p+YsowzyJ:Ɩ>B9W t`,D>߀:"+-<0#HCi+ {)NOV̈́˾,vxCw2l|GNl6%hsUU.T:cV 왘F1mXPRNA/1?W>|$Fob63%ќLf)$Yoz[wjzj>z٫M._O0Ǩ9V "hSc ~nXrAd)(=>g Z}^bL1 NV?ATdv*RwZ2 %b"h7sX!hg0{7Qwc@wu k3=9=\CEٿHkUAۊWK3!9@x֦#R|[ GLܵ5q?}#Tg5`76-/]|ݻ[KPT8_F#?JA :(xx*۬*aYnG%ᕵYB 59i90H7]VyNWFQj^cbtQX|{˟&C I\*7a& X Ujo q 3ژh cEҀЈz&;u4ziH ~n}^|%"ܴT-w_$rvqNЄ̂Pi[r?ܙ=Nu Q/d~n՞B2 o*Y1  25AiMִ\E\ܜ$hL&:s*!9l} >DFqQRXArq?^Kqœ0SAMB4 ~i>t *^QX4L4\3/L}@/}3{P`T߫^`*LHuKCuYifYL^$s;B(TmI ~w]tZZ 5",̂@GdƎU{  { ~"ig7Ej->V34B'JΫv-+&Hgs񩀰l%D~_p]FK0uH݉*CXmk%д`6UkaS:w=XƣEwbPyږ89_s Qc*#V'N3#\*L]xZ%i]A)>nI#E(Ω*ۻ4J'55jdm${O}=w# ,vNg=+.j;:hJ~8z+2n9nb1J}T r'pu J> 33}Wm(wAkAxD_~ks2蔖ԟfqbJa:&C<5pFHD _3=a{*oy2b#z@#JoGXý0# HnRBr9 $n pe, yģZ7R!m~&Qrb:K tcv$8198\0,mSɨ[o.[j#S[qm+W X5>usʩ~͐`މ/-D3!4Dk3;aˢ|sOa%5ͦVQ"2BaGx$N%^/ٰQޯh&ъa\UmƊA3gCtEmVգqR˼2'+uH\i}s aj #kN*IldKIՋҢ2S %pQ fmi2 F4>VUoqɣ(L/[Vqc_ޔÛ"?dvrwMG#oHU˾< f!df2%j4:t4d(fE>gg:/)>7CEO=y5R½MJ@ "-2- A(m>^ř wDZ%-D3pB!ǖ2zu/uz!VUF! 椻@_A' ۖȲIjÎ)M}[o0$t $< F50" J=.7Kwع sRPOl^x0~սSo,* %LB[ɳ0=Q] Qt>k1ּ֩%3@mΙ5$EpY(6PA7 Vo+7+.:A}, y}"8)°_;f̡980oҀU +&r[2 rަzƿEDI2 G&f_%;r_te)[jDX3bIiWsdnċ zCqi Bբ^P;)ڛ! azBg_b8 "/,@us K* 0 ^ =S7mߪG"1]yґ]'.#)-}%oG#,}O|G(Mn^Ԑa-9"f_pj`f#D.nUw$+.vϊ;pQ@~h"Yl-([bYm`?G„D1%V-AQޕJr;#<" ᗾ>oJXv3o񕪸d XN˒?;1TP63^>!}ZaE\X:Jez& <\Byh ΓfפJ:BO,xDF;#Zjo6D6EOsI /e O`B.EeW1'8H}'(!6vz|u(`}믺\"WŨFQ`kGqH1tѸ LƟ-'Z"߁Q,mA :?,hQ"z%NpE @tb)P)Ah_M r99pZ@[6"&ſΎ Wݒ+^_'3^[* &E`-^?ZWC}lq!3``ך?݈ p-HOYŦ#;2n+e4";1>$,o%XR :AВnL1prEeʨ%lxdyW-;Es"tbjG" [`B>ϒߧ %Xӝqq-VAa-(PQ++?i4Ki(VؗO ^ BIyuj5Fi&kH:{Y1Lj/LZZ);䩹)zxJnyUZx} ){˰7H ~lb;~fթgaKe9W&4WK{eիuo |Ow?dgR8Kg\eftQELHeW[pco9iQ4goP k.sQM j9`?-*} ŰDӪ 7b;A,T@ك[x_4:Y1hW3~kwik Z?*zD&]o4-&I&K'X\7rjѢ2uUxڹ26!++AG- }x+V,/@0kRR!5ͅՂ #bֺɽ,8}O4Lj 0i e7`015ݘiirLPV0nnc| pgID%wWf# O *ؐ?_!M褄FF/aD,/-U!u-5iM~Z7Com@:qA66YUe]OCv~.pmW [޴,QB2P hݼ&a0P=|m{y޿JWx DF=8]^֜!sFUF59Au$xF"`RO@8SyMJH&GHD%3;7Y@H{s,Mŷ[];Aw_Z~(l% jϲS|'Ұ~ܡGT#,nu=ha%6RU y$i O2P"QC)z_"Y2> (#g;?#(`fwDKk$l!P] awŹ&K tir@w#`)mg*""^,VG1n!O%D̚5*ȿ"87BG5YzKʯzԦ4],wҬ0\T,Az4S g;{|aZ4뫼`rT'Ô(}b7ixXَ\=~YnȠ'@E;6mzHCgCB8%Mϵ!G^g*o÷:#R&ʠ˰rP88hx(2Ad黴 O!X薧5yNSڴGԈN~ 'aawXR<͚1Lmv4\ ~6LVÑ^1 4N+:Z/ȿC4bb)[]Md(ty/Ka`oo|$ɠ-> 3jktE_=+#q1aӏeU@ &:2޽-AiwL54²+Ŧ$gH#3hɺ='›26X.w`֣5Czdl6J#, Af&9U]ݷ匾c \LEu_&w,E%99&xB@24IqqF8%Fv;v(Er.>Vj5ӊ/ľ oN$IKY9>2ۆx;R\5j뺃't@5JZ~HVځR2ŕxy%eחo䞂DOa sϕ:bk]p\x7_Ƚ]paHi?D9ڽ'yB=mCg DK"?YG(oU)^CR8[p.-3BQ 5jO45<*!<9s'yJ,i`D!jNL68Sڷe♍XþYb7 5P ~"rı,Um4 JJD7aEr{Zڝ |Sy$\'xuYmn'FTVJZ)x :P5s:F0L(wt1GE 1=;z>f?Asm2s}]nE-0Z00d=xQ%Lc95 QjQ׍2 fg ")Żޟ2GPM`P~Aѻ*FN=': |cRysg`")*rG:Ř^8FZX)PEv s j]<2`~R\?UA $~F⧼; \LOs}/LUf fA?*tFhp < BU[=3KIqgGކX%un687%cOt'k+o= \rR/RL?"/奻oF-|7t,.*2W@i6cA Pm }\o>E1%k^wr3! T;;U$I)x[ Z 8~J.'uEȋ|UNd/,N I!wo+eTTw:ǩWR/Gc"Kﵷ Sd˯U8[2Űs,;ᩅ O/Y>H0*'FJHȀ8Km{kD>G/StΕ4ƒ0E -GDzprtӎ4 }3T-WnF| QmƇ34})pQ@uƶ pVA6څ9x=S@Z# .ttz"Ɔ֯)xBՅr*|/;NW "@o",)#ј yJ7Vݬf=~B6zJkaH0Ҟo"hcA 8dr ou" n*xSPpP DyKXk(}`1:c¬)1X3$Y"yuByW|!#&ԃr)\11<'րбIUұݾN;D9(MwZEP xL_M2Ș/xqeAA.2.)ߍR;0Gd gQ%[&y,*b}uHHz BxyD`Ğуf&"ёoo'VXT9?gVq6y1S]O( {6۱CEpDSP [TCtFzE&pې4j9q8+ю h$)OY@C6=dKam?~9Ѭ#a0bdO-VٹC;m!UZ,4\峵R,lF_&U֬>xrV]ۘ8ig*n5RoÆ(NVwJ[,#OcnFK귬d|AZv[ȱRqLdNXZ/Y6!OܓV;(% 4pvW0+UhU@VFpy&9Õ÷j-0MPuu~ /gRȖ^sKb Vkga4~F+3VNMT MlN #AmOrQG_a*8P48j0)-֘Tb8ae4sc[xbAi@}|tK.}UB;UQ$_~w\T"I ۚqݪJk)' < !:W94Ϭ|ܣ#E<-]gמt8;)H!&L]ydx$vз lɍ-„av1؈ﴱ(y!w,}%۝tT%rhOs'fΨ%2Hcww*3e -׃R[&fo;6>MrJGuMuenZ+{Ũ;G7gq\X'w;]Ә~5z]W's AirՀK6j?~иfՊuh i(GH Xy>knO5db?dVzHh<"%u;+$TT.o-Zy\gh+c/J&eV|5 mq=84X|rIWB\\MMρu?1Skh? rc؅Te'A0>}~N ΐTSm•,SC>4Ef#Ă((?ߒ*힧S B_TS`f 0q;Ӏar{G Q$—2fT l7!&SkT`4oS7p7v[#/Lvg;l$w8]=[md}a>e"ە.u R!RG :8YNo! $GwqM dJ%);"oiuE_SL;M 'kc3Gw@֥yBp*XoW;:gxB,$ziZw/bu 6Txr_RGZ¨O<C snSEO[zlM}=O1Y>qqW_ޥdgJc+G(S~;y,/nXNQl"آy4 [giq@Nd!%V/-׹uh + /7[J=j{II^] .z4\Rɓ5>݋N-V dy|"wGcA܎0!%ZXϾQEH,3;B@CPԲ{DvIOyƨ_L"Y<\l W`>&\tooMwʾMأ*sw E*3|L97U]O>}_eL5,'Bw x9I8w"\nV^I2"z Qqֿx7l-6dMVlFsz s^HH 5Ii*5&qUxrq&"e[D/Or{1)F{>g^4(b̢马[pZ{v'8MRuܑ% db~Ua-;D!xˠ!0YoDol}Rl kkB͊pmyq0çF |Mi+QoPJ|M  Kx9`k1\Z1 ׀ yg(}1rGE تlTCsڮG`.>7h} LQV-}$c:8IAvY̼uo6]l|7̨>}iI7+)I#HJM얼KfBE5Po%&z%IɞK:Z.߯5D(=k?Oh( 1 GW)Y( K[^N1zJʅzf!3)QH-'| K*S&A36=hE'Mqyq`NBKD 2P,ѣWԣ'l!֜3r3 ExIEw 0xfpx8Ed)W"-,US˗ iFYiBpJlvgu<^Xx=ꝴu 7JdZaTZrCuB9|L͊{ AF×k>ϙa,bzhp;J06R?i,9zRWW;T`M8fpIH$^kV_uՂ;V+ܰq֋ځ_ (!j6!֬q!09'-2!zE%{Bb ?;D #vy9>c3l?(91ʋWdd8C-~SH)Ǚj{+ T(wFR $xAKݦu1exfmhU3Զܶ9f -o<`PWh. ә32BĉCPK_{:ᗮ' 7*Voq#Hb}}ln%"Czc{7|¸XMD."vڮ_[_=tUX4 =3ki?NJ1g9 *F18+ axrSʒjtdfK 2orlyx8Eރ W<ܬ}4f)!gRb]wgj{^z'":0u7\p딟¯mϼO?lٝyn0@x/ɠ`W_ RG(M)>G$`"NW 0Wxק{ouxHZq3 J{*wM<Y`N;M#s6lGdx׶y؛\0w 7}GV7Էۜ/f"_ȅdV}QFf`E)nW<Ш8:j?探S7g_{/8Kn10 |T-QF[zdxZ:XwbVLuЌ|Gduչi7߶i=;Z!F+(Zj)O6-u?sGs5^G̞%wH%-7AB>|0cIt]C9]1jJ&DN`is*wyB,s,`x 1l!] d~̖P\FQG~hbǐh!F=S9  ذEli809f6gFWl*kE ]4EgGҐy,2[S-I$&*iqv\:'zE+T6tяp>#,t4ΐoE_<}'ڍ>|?P(p@=A=Xn9{k2شlʵcs͑Ȯ `[n-#?Lnu0, EIv'ap'(J/1v&gOn.~; ;d%ْ6` AxC,9"3jZ)yIXJgY3KJ$"Ɩ3>h34Og tMpl6b*"@ \,Qf`ވ#/]V[PsA3͊Ģ >E4cJ`zT{~䊖kJf2(FyGz4W1=Aԛ5qd>-;Z0#X=!9ɌZ\dX+Ma%u C"ǫH#$w3p zQKĢm1M2$˅vvrFdg@}S:k}ѬNA>F[q[{bofF2uD]>8Д_X{wfQu-&yE)6 y70KUbC}!G͒ZOveHrvDXCe爫IVECgum޳FV,׌- Fo^;8sחc n:z!)N0z UmP)}sX³U{f œpf"?ٹ<Z2c?gדOƢ,H.D+xT'ʼnh%7E\ӧ)8So*`A!v8dK_zQzqVa^#z]Iܑ\QIiN'H{X6gAk/!}ziO]`:՜8p٪&G҈Mќ֦?鋶WWn@I=K6aCwcl۵+guPu#6zK WP.!DN޹[6ײttRrAg30pCP3ĕwS} }HJBH,yd 1斫9+ դP@ ֥;3\N OcYixYu&ir "W|My jVj^F1>>KNpX_ժ˚ܰyD0Lϙ/hz󮄇0AH)b2ZDkӗb B >,oMC(W:ҎT) ]>2̂ԆU"' 5>Pӧy\-v*R&1?F6 ^=>`W$yFh_\͸I$YX mm50RD].7 :/xqz;`148Lp4Qp J(A+g]%5D`NaCX.$69oFCPa=A1TGXhg z_ 0D3ajVPsp;3H2nC7*Vp Tqّ7վuUAOa=wC$\w @"wÄ#&UkLD 39_mFY? }'^9 voaMgs7N&^FegP𰨴:\+DR V-Goe9ݭW޳A@ԑCXf&;nDL aiae%H fr-:FneSSZ_dD `5S5ZRWfGL 9-|Q/PU) rW|o8ה׿Сq )K<+옎!euia9Pr3%u %^`%gy4:T0 jeA\N,~;I0ço$R@uё#bӫ :߫h,ʭh,k"'J+~ME Gn7Xɿk{c0GzqEY v39azDgv}}v&‘ s>% Ð1X ?偽6-޴bE萼pC\$ݜU|P~z̵C;dGw4~*H3%#?4)O6Z 88jc|ſ)>~}U!PE6(07yDND}Q`M,ECJ3jl.+n|=`P/']DN{U$0s9q*ݙ51c3/1 ={~ Yl$ _iOM^S90*U =T6қ*ba-A|eh6٫=5UESx.G}M;h!pOK-j않W0㭞'k. "E"7C5ZM^[z:£Ny𖌡 Lw'[b%xP^ p9ftz^E&6Ápi'4nM%瑱+u՞A1_PjZ:FLrvPYXS>v8w3}(A~ty͡0liC r,2%,̢͝SV r>Mo\- /G "?aw?j 'fxUˆۦGF=Y$' vcɇ_y^)V]Z<= vD=h6RcMMT+ M \܃МNt 9PVt^ L%u(iPdFk.dlj%^_ǎA}Dg1t~f3g4]BоI}VkR$oAӝzf]VHx 0,t(/ j~(d Hy'>%RW.wNo}s?Ho:᭫#93]Z.P!սaPϺR>X,(sfwAa)RTG*ackez`R-ta~Uj[RZv]/c)) QU t!;Ʋ6[lJ yq)KS"ѯ;>M$rj&aJe#!f@{sSXUqYz|-8ǾΗ7X 2_>2؀.'mRkflr2t9!^ .l*EvOn0fŸ҅"_n>3w*}S0u17'"4O@:<%/ҧsϋ%_KD_)GVȒ[EO']ڊځXA oO11Z{w[EqU-KH} ý"oWW߷"FFVLP^(Btz-{LW0t_~yW33z]{594!ҬMHv\ts )44w"n|̊S 19$}0F<cleCo4S`8&"J2w.p¹ {P$vі0yDcdBPxq# ʤz5]bq]Z>"w3}z8R5 pyoӠpc|4K!Kr-*r},bUmzpnBwķď%gk6t/' -w*,G$ gǘgM"_"BؔXg$i5J|eI9K)%L떹Jak<_mY% jz##^ȓ;0{V9}а*rK䬎~,u;H)^v&V;P@^5R :l{RFa?ivȭca$c?p𪚹( ^3l)uH0PiFU'HM݇9b/j4/bM'h|]ADž $?&PiRwjվGO3ߛBN93Vw|WR _Zo(zd5:E & yF8ה@ _%Zc"aL]3=X![r//NiM|#{#PʩҶj*(ݑhD5HBtXUˆu[-J-0)JǤ({.Cj~E^p'׸֐LSyhϒr:.`/(S^3jQdws򑣢x*Pm3M֛+£2O (-A]VToRc9}oCB%sVO(Kz#WLG~Lwd%c5D+WD"6m@惟o2d Bn\!.UPoPv> %[33  #ݱ߸UuBg @N Y+*=VMdPW|şT';*r[u#@.Ne3$6ܻʨ*j#DoT32OQC FϦƺ܀/qeѨ3@]ނ8k\_ %cژR%$hhey5 V7}=Rr~8E6AgH@8(g ;$T],:pW!ժT;!Ƕ+)іK[?xh„ us!p]@kn!r- c[ A`/%Nl;4qCGy/gmqʐZH$H8FCR=3hĐ7f`"w6nNqwn1NŴ rt`{Ԏ!e3Ȥ神8*qkEbI! {@ Z:ja5t^j\xSIkW@->JLL2"uhRU_NXUT7ZdHu2i/c;/E"hK*<dđאZDz͠;.: P*]홶ENhroJ2O*#4ĐJ>0z&UZ,` H?~[jlK98Iֶk]q.O'n  b8ƨ 7 o]XP؆`%ٞJK<}gYQc ݊l-N݊f^@8!6l@dW- !uJ%$\W,L6|\PwnKE۠oOw6[ =]cLޱ0!(N*-DM}E!4M#A,R,6!02L[po ~pz<~I`B l]FruwjURa# ΀1="_[" d,UPND+&z^X%XV_(F j :_%6'"E&I#Ytw]pN$૸-g ҰV,f vkX<VwXΥuQ 8{ `Fi\./# \RxY D* uZ)mW:ˆL9Fh0M_va%Ͱ 򆑷 j>7޺?nir8DRid9ȯgl !(N 9yI'=1J[G}5'0zAt.!;3ЀE)5`|&4g|Jʑ2ٻy_E8jTGMP7=Fj"cLշ:fh&@j.䎂NӀHFi.pnM GJj%kb5TQΤx’4emF =U€՚ (wS}wWW#k==c)eIY7;15#J%-s$BEo6pM4l~gzzN[7!/V>7 J+M=>x@f;m1{3TJ|(u83BbSaꤨn2sbϾYY[1\(MDs;#ʌ3Dn"v"mA2~/,6x[9đ[mTZ(ǃ㛩E[Ȟ69VciI<"b'x-">b")SMDDHtXT('Yk>%C_o޸XH#A׀ 3 -A}tONBS  P0}V]>?f|3f%G=T`z4difGLxs{XtcjR%rd4&u)x VUk}+%d1ZȰr{>oSO#Fnl9r) =)oQ?8 iA&ڥ=3L^-uH ϟ+> _{cv~&[3& ]3myBiSNMw` esY:Ue+ ]l@鑃q:8~dL 5N0k uw}# Lx{5}dAęuɳ3*MwaLs`n~-0f9e.CcD"(J:v0ԞɐUFS~`*ym9S#t#V9hH_0 !9 ҏWu|\'NǣP@PȮ°e/POTѼR$OE)+mTA0op>劓Cx>` I!um2VD0sp<vWk6AgH931/*`L.;ĥw]SD@t))Ga[?Gz·@)cAU0}aVMvpc nLͫr؇eph5\ch/Y.D <3zl7@td#VcN;U-qO7ķnЙ xs/{ zR\L#,()E9`3q:}^w_E=Cf0&1-Vk"@bBC#c>eyՑNޤa`P`СX #kϹvI'hxɢ/Vm+SZ&0OtR}`]Lo4?Ow% 0@6ӳ\s/|-XMIs*T{J]m)T^G]$9Ƕ 8-:{<#yDC] UVhq ":o9h$8-սA*Kc[COk~# >z.U`yHQG)P?ե?còE9$ ࠱or0ՓF[lV>E֧^ڔJfn &\Rҿbݴ2D:%" aV4-w=Y8ϮB<: R 6!{Rџ}dwcj` "O|̻{ ^1:q*Չ1 e*Yl9Z$:& ak2k7HH Qs h+fw{bDlu|kxHe~ue22űCXn;Z'֓)4QH|h:73ZK]W<˧HK[I5D2S`L2PvVϝ5f|pĠw# ^oub5a+g9R VRݰF%׽I3gK33|?H;'j(ReMqUkPj68lS9ӡ"-ԯ[q@ H[CqcڰûHnB[M1Fp\Vk9#`7Σ`>0Fǖ4UQ@ZCR#*jX iWqt0puRt­ycĩ i6@FoYºTf B 4/u}a;~X?̽+ "Eɫ% :؞q,qdhc<-K1&$&@<;x}CHyv}k<mh@ՉWfrF9XO>gDA͌BwR‰HUa펒`"&T(ľ;DY:!uH|sܤyk'"ƣL6`޽~:9)C1/# } A b"'% ˔^I ~ _I@k0.Yj;( zxyRm P܅$[bnJx7c? ֗ ٰ5@;= ,66v<{=R6l\;ϴOdȴ{pf@Q5rwBLMc|ˉ(6]afyZm-\MnV}UzOͲ?7(`)ٙ{ f?kqY/\g7B\HMt(q1DD]-Mss}O x4"=%9fǧ= 7us;-+>Q&YYÊ>RD8pz0z. @X'-^El%;9p 9GJ<3Yf,g34  췱Of[(n[*4&,ʚgq`eM0-{? LZ:sSe)?*/т NqK.נ@<[Ѷnt7`ELTqͷ7r1Z;n}&&iЀ,3`i$GJ\E$v07=%%v=xHvù1Rv=|`:u[~goP/2Hqǿ|=Ҡ1hġ2'E~9F}%kP:=]ir <^'SO\{4' n}}5y?50Qx&ݵ-'h  JkO gߗ];Nӭ<_>Ghu(k2 V;اTEcٹB9&d1lSOA}YE=S$kp5]P%Ű=/\̑6#އQ|; oc)-I f.H܅7_ {^;@{(T:d&*|2b/*Gm4G c9=S? IR #Hcabgkk o%J=o% ø!rqgiUϲ;[(h*Cb#2wuŁ5$ispGoI>~#=6ƽuiut,"@J]nA_,>x:sb3Tq%b]!Twf(ZП9RU0 e2T&"%zR{yԡkd ݽT֔?? 1 (Fד"y8"W%Y!Ft%5Cd5t[sygћ/ɿK߂tWǫ@gNh`<۳vUM;B52'Ii`@FJ,*[v "3!";RorkCHi&r@T" EUg4)$zX*5Y\kojg G+۩ن M+o0J<0_%)bf}pУ߱g⎶-G}BN*I~\8p +B`PjYLKK}͑5 Z25sUp=ǃjFQIs)m !ꥋFP!*eu/0܎9HK'GK[dk@:˒3&{wRe=HS.J0[;20+;nR|MH L=aL R攭o[l4L}̇(yL| g'&Ҡ|l- }e>? k?1OuTٹJ9׍'J 7-Bq_ l/XG)jnI`pUU -gpi ^k"G i19É oV?&2ZM|/`k76Z#ErʎB-Mad%Z+) Y(ܵFM^،S%V٬뷾[TAcojx6^@)y4CXb[4OMz/9YO{r""JCjbFL㌅!CoTt,?% vzIܫ NqLYO!:`OnK7~E) PS >\?(YPH#v;XoKhHGgȁkŔ8|c"hߗmFu+J9E}iӓ¬{ehrUeTS{? Ds*Mf+'2OER5"gܵRAY<"+(kC%r(2@zf?5sT"V6byiSr& .Ѥ"Y )•aLޕfrʩ*_bsʼnˌ " 3ȟ6OBVƳUIZL]|'Z/TȚ36,~΃Kҹ<5**/^@XBŚJzl>Rz-B)~bd ?vˑ*4?FlOO]+k0yh"]YFJy8Wډ4?&bXr4V{^`{İr6`UK=i.wD%.|aepȊ$ʆ+71oJV~i1i:BN|olj_fon[ҖX5t94Ieh zLlwkrH xjҒZk;fT|R\_A/T7z]$зOZ"nmJst X1aÏeڛ+{/0=4]zJwJQ?H|PyB\ Ν\Kj.A4ޣÆo޼z</x.krZD5eSlMa˨{5Nub)+ZtFT0ҖS!"h\#W01o$۽Z್ G~?=ب}v9#TX%*pe1mXGKltlC'&`uyaB cxsՖz݋+x]At?A1Wt4'1nZF}aL Y!_6&31,AOȥ|Z9xvW*,Jy]Rw3H_KhFLߺc^?]Ga2|3Bi! M6 _o9oW*}ސgIo9~bJ.-rC\<["A|e*@!輞qumK#E!hhIOp%b!m{? |6Xu*eaB+e ,9v[ɔ2Cī7Ӭ)i sq`ŜDSS2VC ᶸ*4- ϬKXx@i>,m D\2-,R 6;?'b79ևy? J/;v+uoJVo΅#F.Wk*ՙQ}FjAݤ?%:ʟcႛ{;J=0㯯 >2yUSvsLkw.ys4YHoqISb)x6^8H("[ͱOCLTm/&HSL#*%Yy먓kr 8Sq>WIJޛaQ pђ% l?^anAYUt?%[pBCyܔ(2ˋK@ Ai[ mм #Ve)9V t>C D8Ǘ&!L-2 w zfuR]7<)6&}_7U#.vOh)ziUuT$rsFU{K#KȦF:W7r.ES}؉N*. WϦg]dajd*oĹsi]VUCS?z2h:)I?kMqc:BJUCP#ߣùy,[u Iw a_*2>2E[akWQ\XnSXU6G>FfW+l-!EiF+ L)YΜXCvVǚ8Ƀg ִ sJ+ V17u :ii)'m^r#nHn}Cli.'/|EdqHX8oc~qřemަ[ hBĻ8}J%o?T!b>kSRBX=j7L!ݙ}M}aL#.? m+jsW0qgϟD:Td eK<|za.n @[RrX|r] ]n\5l#h:GԿE "%s)K TuTV4_wS*]8 <Ű"]FHc+[GFU 0֓:#,ǘvlλ? :C} :#7I+(F G.>G1ZҲb0,j0Yj6fx? -ku c]߭Z ĞfEdEtdjdُDM iPO Mb0gg{ZVo*̽&$UBsJcԙ`3iã sZṗB&]J|CHd\g#kd0`pDiO쀥gH,&T=6A_ɔ#m<}s30ݣ9҆+R1^Gjz@f3&ސ {l7IL7xrBuT@(W ΀Sˣ_)4dzQAfwf)&;ß=cg}YɺkK&F DN`[+1+ugnk ,4ܼJL.;LIgy}I 皵mB hSAe])*ڈ吏ffdy. KdGY38's۪$W Ob8x2ga$|9|`Oݧ)WbZt]чFE6pl3sҖk ܛ47Uf0et" t/@-qMCe2unob(ue%VBD4%;H?){4de;IG0:?j82 Ѝ]·. e: Ӱƕো@^! zy 0tWˍ7@ȣP F`ӤwZ:d!LNsndtqw|vè"tSUOFPTf.gnP%NZhZa+8.; Io;@ x%9”J7k]"9>gt %uE6\ 9~J^&Z}^ayIJ L-i`^Pⶊ9YBTlk(,YN ԫfMy>U8❪+ЪWB%# 2@OG ['a̡z:J<6:!ⱔqZMdqIһ[IGFJ9:ia4 z?NkK_0PbyD?=݉,Seo5eYn/;Ot_uJ<oT"}m}*5ѽrt`{ձ4>nƄ %$y1|YyNmT E'hQ tq^< O1*RRe}91ln.*XV Z:w5AT/\˹&ވbmvk^a?=FT֍V"^rMpz HL(i?ZDj7yv}R4ޞu*#mt&"K]Nxf׹[W+H ڼ$[ڧ#$lKr4f\Rg;*ĽV"K#hwi=SBx1لe$}X$oܤ+Oi#-yJm'xp3!"rPUeCL/ntaH_LJnzL?`)dO j$Zq݋$4bGy06+6.9QǑļ(3Ir@-Wκ"Ns= r}3H˴RهTT֘9/# Ҁ(ڐ](a~{]C-,p46=K5JpVhGFBAĽ9T!#YHx*(Pp -ox+kA#킓8a!tPZqSh}oJ9(re+&/(9+*(DjtYg(MmFo^{Vsc-e{=0߈Yb|qzďIf!_N$XTDV*=Uq& mk)卭'َu*O({6Y~wH*ȂNR^XɷЍVF}w Ld҈-z*D8Z6H߆.:'nc~șc5̔("z&:f΄eak2،P' Yz^ w&ՙSY2. a8#ܶR+N<0@d3gtC(73Fp9<_IzP4o wc ;)68Dp,߯ڑ84KWJ6\4mwyfB+7cwx-`L $9~QeZ2ln\24{׼H|\/eT81=@Bs®^[ef&B~6sE|WoReJ IToաҹ2-~Z$3Iaȃ҄]7Щ%#O酩έ! 1h`hPBwJa{a jDi|֊)[Ã/c٥ev-+rt:AS9ڰ|@=unQ qEucb;Qw57=pلgJ`وy]O1%[66]%@бBu'h%h\ Z\ ?˕Djb"/!z[K\oRn9jMRU!]h,(Db+]RDDC[^wQeP$`/侏&=V<8_ ` EH%U~Y.Us ʼn5LrC. :!*SrR`N@Օ1̈y?C'j WbHWf ٪ 홣6gJj?O"YmhotE]429H7s0IXmmDڑd`0vn(IPYT,>FHUKfQM5] 9]=<0o5xI̻! kta /)5Jc=%rE{ݯ9345_ׁJa_K~^ f{9NEqo r/ 1IЏC7)3#䘅.^E#/Cn9/5}$9]ƤmvpJHE(8Zr m[O&.C=;A@P2>/m &э)'yUU$l)p,p\ NZ-idsĥfo枫Н=j4wn5T@Y dc<]Az j<"Ji^iS]TyS?X}7baA p c7憢0}i`.* )|U gaW d|V܆Laԧ0wi/f?k.73wX.Y>B|}G[PqX1T#d4&ePȫ-1dݴȌ>54n nGMf/V7|@lL <G\5㧋Rx&O |}Mvi*Qq0v[L'vfvlWj; HB1;/ܵH{&ߦOtVpGgC&DŽ4dmU{[Sb eJT$h :) K ̛`@1HL!pB9#AfOHMczYL/Bi֩@$qC J9Kݽn4sm=tDžC?;> 댻Xr\vB5Rh}%>Ag( l۳$*-bel^*md1JnDUU$X^efl$bDE495|+XFKy+Cvj] f{BB{#;)@TSiR{L5CN*| %ٖ]j҇;Jނ',| PBKsznc%cc 8F&9(+MΠjJk;Aӫ5Wj&ӥar! Tx;5C_TdsºT̰z?y`BwBCtna *kP㞥 t`tɌ]͡@h1n-wmAc3X=dzxa+Av2{Pq Z?%zO_!BOfxQ@KF&M; F,b+wچ$y%J8>(O%?(EN<dz`N"P$E&8RX50u\ iwCVqwn{Ł|%5VAo55 FْimǧSȾpQR)齎 AsVސ":#_DD<ܶ~-+T `euĸyԊ`X{wHᝍ35-vi"L{DO QIHlٗV&6kv۩3\gfrۍ(^/~qFkh3ɉ`&#{GԺfﱲJ pEyO'p<ͪѣ/ I,hjtYۀ ;qTb:C/LQZu-c7R!C +H i1~py;Ī)E='>~:L9 {1Ryc)Ε U/ ( Emn^LDqO$ŝ3: [1 |tr@ f؞﹃ qY@}r@yO퀞Ȅ4Uv:'2(ߺ<&8bXI3\1o*f>c]^9!z֜ l=D:~^?MzMFhX'zYMRD4*͆QPg8[vLJuN-JtM[wYG}QNAh2;B?fMv԰^N"XF`GHY15ODR&a볙ũljZMXKsvLPMcE+ag&`OqDfAqyL8n $(zjhC'jѢU] n<3$ 6(̢N =>Ҁ]yE P^ &7+:.oeʃ’YG줚m!F 4<^1DNRän}),,ry4ʿO `Q X3ן1!^iƞ#+e՛VH=yXOXf@`ԈkJ&65SN }h#cwIs nJT)A+3*M=N[~`F5(Rpqq+#ג cTW%aN^ܪːjH-ΈͽпA|fF4 C%]N6}չўJO0]Nxy-:?Ib#s(RZK$|$G.sL^>TXU|V)j&9Z48"F*/2QsH(s=Z|Ң!"\K (GW)fq9yB o\j\ѐ4t:˿b7 e;Cԓ=P_u!lcPZj9: xC ("q3h\Sבܯ#<)R+"V?*^Y/clN*Rۅd o5ۮrS.sOeZpd$$.uj}oKSI Nbp%8/9C&x $3H%XJk`?ˢ_S*;E) EN==@KF *Ѐԡui@z' XЖR[ j rMXB@3[`zGswpj}3p)^ L)QP#zu%%V$FgTö*_/ēڇvϣ8Y>Y@7Z&!g+~P xh#R&$ l>(mVW_Ġ|` -CȊ*(荱Iە{7J d[ґ1I'd>,FoK◳ :Fp7(쾞C[L"uXer{G)pUl40rR#GBյFXՒ{04P?Pke)^]@Ik4p #n=YOZ9[w;Kb'Bv];qn\m#2 ~cW:9zWx>Qj qC>|㚾)i=o(V桮,pB+ Dh{&*^Jn !SHetAGW.ʤXN2Y?H h'vu%j1jGgۈRjMdZ? [êoyERmy5 G67Bݾ$uluK?t:nWH%5 H/3H <^oHfth[iMBXuI_vG ̓3)_j&>z|\Ɵq /esj.ͤ>;,"coAn4`jyExW b`Is~nQsmޖxnS:20H1n"HK< l _wEZ-\昴ĝZ޸ϧG eyDt& rܷܟ%(㷩%a=Dc% _l`\'6DMѤiK丽ݨP|R7mz!,J:Z6aϽz5].I۽jp:0+_jP"اf%Lyc@8[hQhr"4~ UQT!J~;t~eRܩQI"fį .*xL91}V=@ Æ%PbzjT5~wXW9ybe/_E\UbbwCJjߟKq^J@}8N&Y""W{iq,ކW [p`~r[!gdcOR6!\LlYC]HuѢPP1` %bBqY+Ϯp~&Tk\)Ce1Ƥ r~NG?/~A\xv !=-Pop3ljlD6˶mbFWuf, &nb k"c٥zxτ{RR 3_E&魚>r6rstjCCHdzgRdU,OSXrzxqwxn@k})1;Ue#tkwa69Lx01c @{^ip~H J3}&I#]LbRrU[;wn]x$+0c&6yJy͊УPo̮ի(l  +&=+9z )_V[ L~ k/ao0Ի-9AZ`.}6 QX)N\XxSHA?Pܸuy+}@*kenpjQ ,Rx4҈UfDxAl#bOFG9xm7  BwvNHa̼E;oxi&8_ZKWߙ%G44c"+ľt7xqpY);m9PRK2=t0-W 6{c_ce>ѥRU5hjQ.=V $#b<^Hd ni/sO>vFVi;*2#EnڐE+_~l-Lú76e48Gn$"Lz.䜞|tٙH6_$.='R 2QY\H'"Slr/9© 6o@/uD/nqGB+lч!g1N=o)C4l֭BT*6fم Trxem.qi*R0Ǽ N@kc_}y& 'WRjj'a=QrHD[#h}G;]3IJOY6&Zfz ѰG l Xg-lB &oꀱG (E*G_!ߎTٝ49 G{ n=SUR D?xTAJbv {ڞL)U*cXi)9ӏ1N ҩ]5`tm}9 9ϖ[۾Ў2Ԅl# 7kh#se<{VɅΣkOƉ/AU9n 3ߴe97lҾ+>@f%? _Rzߏ,CN b *,S.j#@-f;G|RHBpHM)8" ]d @o?4P[j HBk.fe'T^sd`&[BW,w-DMG"!N2bpcO}$LS{q;{I=<Ц5婊@x~[p>6л8h7"UpX|F1aǧ,5Wq!L0; f1~ d+jl!10T/@6wenǟ~j eiSj߼I;lx;k8DđV/%{5LxKi*U~1F+3+׉skSZ!8ҏۡF2gPa{ԷnlV, HOn\2?3ao{oy|,'5P > d|So~WHpe:o5E#ߩO:ϕ nsD64]kWHa7Dp\P&aq`0ȣL8ug- U* `0rU91/ihc~+U-G(${.&>ss&Ap+>V(hhK>nl9 Gcvx:|Wq=e6ο'|4dHiϒK} (*%i* r ^͜zTb_hx'X#g]d9[BWyQ, ߖ֫]1#PIl}{JGPuU`$ ze􉵺kSG ot]Na-&("{0A{q!<k5fGJ?URAt9&18Q|[ 6Ò*(xGubme?N6rt<lnAƾˡ^. ~}5"?. ?$-s8W>NmGsמfطc~Mr>2T7.(ʶ 3X}cN-^Fub$FbXSN\x%rZ{L9Dvnj`O9M%hxtjˇ%Lk轱{lCSJśLVJ@ͼEqw@cҪel@=MaeS=Qk%(,a%=Pgo}qtZ^h^/Xę1JΫYAaz剥(j4i[{FGr9\ݮV޼2}؇žBf^0k~U 8FG@v!RoM@!Jߦۯm-A b%j>X2_yTjxWXq6.ZfdvmֿwF!ؠF* R3ԽS)xm 3V,fv=7vЍj۳$ݎ9]lRjUW^#AX0r tDc)JMvWb#v: S Ѯ5}^~YOr^Й1RW*?)? 29ZYTt*^/=e@4)#R5T-ɧ2i.2VFBs0䜶ewtSEOB1_hz:Gr iu5Vg@é=o #RA세C hJ| ܟ2@Ff=ã%0lY8㾝, Zm7+  Գrmc%3 5_M"/Trev Edv)i+WA3v6WP`!{;,<(Q!HJc@kja)3֔;n<;m؊64gNܖ4B,T|M υQ[9lH$JKZ*JePy`$l WKU#E]]SZ($m57˱@ FCb[`"*#E+\Iv{+TĝRPk˒) 'OѰ.0 @FN j-0iX5ƌGUUT_j)ApbBA~; !ZH2ϗ7#URm2م@:}DžNc(7gPO"@y^ ヘzrƚVƮ}T\@Zɥ74.,UWHQxCڹ*ďsr6JЩf0Sfn"/}CN^=D`Yu8"?Gt]iԒ_G ~mxY;mG 'w.(7!2-V| ly՗Ic# jR߮%\=^b4\,&"NHE{5Gm.[H5]ŒtC)94+D=u6rz7M71> 穈YPW<2#$*Mvto-&BFcCZo6ÛvpTn4e8X%H-Q|YN U<,_LhLn -ը纒CK/' j30`AsG7IvIv<݃6RQ&Eث6HrUjmDqQ)Ip9qӊF4_[;sݬf9G57#K_7q$Sv {RwFn4~#TάHA*DPҤ &C,KCֶY6g^jZR C3t]%0~9>Q"Ky8B? \>s(FP:T+@i;I^O==$nTQ&_n0h 4XPXb *}KZ7ԻR7(i<~!~Ex0w?P&UY2t>TQԲNEtfC)-Nf>!*@_NBNs[4f#Iduv#@ypy [ɸ2! r$!L Îp2Zb:g?$pTy:@Վ+jk˫PtA/)_kתEӟ_fuj~m`oȵX 0uGm6!?k0KNGHAQ̑[Pn8sjy { l] 0tzUkA6veyLђto"]r_ uP]|A^uKdz7MUPci~ /'!Db/L5T:Y-5_zf ɡ^߸JV#rDu 0XQW4茴] TOs ~%^Z GI'7|+mgZ sS3cSF 2.rQXQLS1FP_@q,ˍR k2_ѡ-&`m EJo&BĐF>X.'w֩,~%T7}\Y5˞ |&hx`wYy:w9\!=spzQ DRU3U6Lo aQ4 /dp,nW8dVxzMEaǸHc1ne!m wI.k-7~]t!j z%y׾łCiM2KP.>}Zj=Y1FGH>~Eg`6NTX/_+nO U!.i%vJ *qES.-[94~KhVtth==TɯBEdUG>9el Dcr^8_r)ăn wLcJ:R)BR0<5a:H&^_@ZXtt@(J Ɓ8ۈANohy?A5j' 0Ƌ(6gU8_.(e$ *) 9E{ZZ 6ܹ,z{0g1IPڱ5eK%R-RnEXOAE*~akrN| \%j. /wF,%+ƯYۻ Pj", [6ޯ  sRu%/ƀv[A_tELyuޑ,QT: >ysx[=CRD2 j莵fi+Lyb!?0& b``s<|@ϊ,]Ȉ_`o~FWMA+>M{r@n:l_P{?h= B_#48`ϐm:WoJvv!ǖr~Wɷ|H/@U쒽=Ž,u%RJ6W ܖ9!nˊ^]A Yfy!]N=EӾ5:i+j~/巌myM}tJal$!Pquڡ>1ºSQp _Zn>ipA^*DXaYnY6skɓ(o?Nꦕ][Ǚ"iUŤ@Nkejwr{gD-&U4}F50[EXU"7!v| o|,*zUn۩` oC;;콢l΂BsgyUꉋ*o=Zw4 5Ō:5HcCj2ypAZK/f"0w,q)N(DLrTiM6}rj:z!();KlL 8Nج! y"Tz^5hmq_W8ѕlZP/ULègX) 1jV.ȥX8T!Edx/<ʯi8.e;%9A,[cfJۃJ@@MWjZEWVY«WUq "wuЯu񟜴2בw!n$W%T! xpu\7[ad<'ۍ%a&2AG{~.dx%J8$=Ͳ6Ar'M{NfA]<%奟˫u%YQ^L-ęk]P ڭ\$rKͲ@mgB.t8/wQVcY"?t.mvm;LX(kW>'X7WS>J5E4G0HH S r<Z bK_lG)&P+@CE3ֻnı"h|-*m!vT`mefj8@k WsIh/U"gʞJ={gE_Vn*THW;vUQ\ggiLt>1=vI@GxgE~ Z1tK H',vx|-C@>A XemvE t+mtcnE)K%Pii&LBEMBl@Şn3P^5rs/b8# 5+r)WcbEB91Y3$ zx:MR S,7hNbWd,Q } chVfKdΑ>%|G e .N9\7̋ :;$%(Z=XdD4eoI=*w\;4`E+1}Z!~jpԺWs"q&o=&<܉'8rIu_z ɹ tnL"dNmT2YդQT98 7p񩘗 {eʉ]xysdpV|,Xsfyw)%XOjCOCIUQz9!6a\`+ղY"bqi@GGc}hLoW@$kR%.Onx)ŤBCLi/<+c:0,vHg7琰{:o-=wiES7<UG{:?xū:{X՘ kqEf9ssm(:TD̹f̽Oqgʵ(93DцvItżTg0&rtPXf-#d'Л-{'=/@J8BxtFJDL~X= a./aʜ>$Cu# 2d` A՜bŹݹمF7x jZ49)loj3U\I]. YZ>Ax-?a4#cchEUk4k[8YBvaɱ,&QBLf|F5 3iyH %Fp"ңԕڋ /~cg̩@ d1=_} J.22T'_bL?8WrtkDͅGD3i˹ 8oCRچ |ըOSICŌm{M)\\}k )©JLvI@'tɿu bͭ=\ ,)De[O )XIl˳wt*n: 5<ό1g|Y8k4-Z^RNC`ف|Ϸ+﷯LWskLI/}}wǥL`~'J!RҶ?QLy|}P/tkƛIkkVHiU(v> Q rp/.@IP%l7ng56/CuW.@$USo6 yU(/zVU~WeϰgPyt35Q7dJV?C#"0+NjR޳{>Mj {~;glr eۭt-~#M\dXb4p(h[uԉݿ G[X'PR;pT/M:v^$b-m[@sj%6/cB+Ŗg05̤1疠>Q/ 靘K|#SsOpIO=dxZlMreȰrtOH3˶&].qwcY 2tvzՎO.>`E`<̝ 5FpH~ _qk'a?~^Rdz<Þۯ%ղs&e9mAf: ONJ]UJ(@,xBј8h"9G\S9Zk^3 :4L 6̱JF;{,Tۜ)GxF6;ZyLYZG)RNI>Yΰ_Ʋ6m xoV׷2ǬVor Z9 `:?G[X#omWxq?JUdE /PBK)ڱ(c"<_1X Ec觇eD>B Z X /S{a&WPݏ tR3tvHA 2 }_逧U '69F\ Y]d' U Ao" Pg5o9GA u ,<~gRT j~G{\ a䢩jްt*Zd"\;K|^϶@g%4$5Jꭙ% VϛQ!5l, Z~6ANSag3\奏1ً՘$vݧNĩ 6K[zJ,)FhOHq :V̞-oh>|W;qwO&>mjOZƃ9+>mcKJ$ymxx$6?L9pY1(F"xX/3"K,$6GhrYY jNӷ&rҍ`hQ`vANQ)\TXˆ#Jbw!:X˄q3-sJ/ A٠:aC S?|DFtÎD7z7$cv$wȘh}BQ&dUZJ2\[Kd+أ[Í6sU{ON.KD=,#%Z vH4Y$$ ZɍrX1}U'"6B =*D( Ե66s KpC5Szswȩ"N(JJ M9Zp84 畴jR~kš/yūGغ#3v Y#56y*64i@$u_$Xf$X-g3KE)%7lBƩj-PHf W>Y j^jA[8y| ^sk! }2O%h VƓiw97QO>^V$GXՒ]dacFU{A.KlNX; r%| T.}y3=ɪgb_ pLpط,H~{SH71Ꮐ _t'Lrpj"b0N O/ o2"ⶺXl|y2z&Tݑ̣-Ff.ynW~C3 ygR>.pX;-@侉eb9ALOe-5,3R?Uwl.N ]wU5t# Dm|Fl xrn^ >.rOjVt/ l֮@Gy2Svd"A%{ѭͶEVRH@M[>j8slnRtFjܩkyڃ|m么+ 8[H|@VqJFDI5c$&re۬o)IҷuIn&qhyg7=k⯍)P H:kOkȧ!b&TufoZFc) m;' #urA [%=h_lmT|Ԕ3ޭXJg|U1&)+*İ1 AYD8c~'(jr GeG{Jkdn76h3Of'Mp>MAWlk5B/%\k;TFdH?يnܕPP6edULκ9ZRnLxW3.N71 łK)&jDl dV)XP6X660"n;mqmἳաOdkf~Eօq)Ib l):6e#3f.E1Q0I]oظ1MC~y{"nU--K߲Z5= g"y2_"woi%3zC}Tphdž@oN\!%ӤmU*OɾA܀V.#I_ n";tW WChJs ٘nJ^G9aTiowbTJ(y%;rO /Oٜnw9Qv oj|1c!5#&ccg%m99u:Aթ$8Te?̾ZMP?$ tEteF^0z nGW{ 9!ήTj[}u}(# g#Y6^?'"1u 3F;Qf&`W#HVvt\8E|yea&ү]7,^ 'H82zUS"E:eCt)$D|8i\j1 a2סIr5Ҟ`螱2T=ծRħ2~ʁo ODqnˁBh.d>iZ;ܓZw7J`kqmtϮTՠN-6!uݵpB-BT ~42ђtRr3𥀝D} 8}]^J5];ylsIHvT?:UPa$eLD\)X20Fi5[vTNUú= RS+cOf;{+7lۅ$Ηv;׾\Tњ`b\ rؐ8gJPm#NP[hj& vӻ<)x,֘|6u!rVVwTٜ:3l!j_ᖲ {37v{de (mY 9p6~yDߍ!]h$J9@i>Rnhb(+ S0 1zn]DR}du$3 >eX;DH+W'vc_>&4tx(R{*`-QjbP5Ͼ":e2ZvNu Cʺ%[jHB,'${f˙L @4#`FYaL'p-⛸NluL)N:m]Oȃ7chjΥc7ѝ QK6"+"1IčHttfsu<\l%O0M֧Ug1w#)Eb8d\n&lJ$C~r;HI xVb`~Dˬ!njٌ%=T|δBCetTJWJӷ-+♒ㅟk0GMׄqeZ#|%lC$sNM(D~WZ?ê|9yfoJ_ĥ< H Ix TG+IԾ, oQ^` '|uևئF/y>X*ۀnY+>̯8@z@ťTG̫ 1Y9S8YڜQjj2%}C9o_AfyԶ%kE8bP 8crK'9cL9hV,2Jvu #5>PH2ܤtft:g&;A4Djut8S1\WFU,k=nb/9\_n0t@Z>P|iS%4T7F+s銂Y68CE#MG&YP㏏bSV/tGJ9HTqȅPr}kjvc}ʞM tх1w3V<-eT_rǰU 1.+ymnĞti#QFd9YMck&OW0w+H A&\*z,0\, tm&{5̡R*p&Y~aW%,?X ~- @ۄEzaot U{Խ^AH9Zj(dbrV@ q9'.b0*bD ,( 8NdSKUD3?jl)#?vhb1G4E=7G0G0^Xކ$OpJK2W rxlQ*$z|$NAj "YᘙW+W%ԷA%`Be?ӌ-;5 @Vd":PI\w-pXHd)ĻfG{Z^@Jr Qt!_wDEFGBn\ڭR^2T}PNR_G>OyF⬳t%4wΙMO/I/ Ģuzt!_r]}NIoi$?PMP`mLzvxF}P4s iqpQ0#U1`hr>HPω(QRg=c.M@?!LnB@J1DX%J^(jӜa4{vm -*; 7"珼k$ '燋$ qS<WjCFmk MpDqC3JP}ԡwPrA?ܠiM#ڶߥ9|Uh7[jPi\wV]1*LQV-n0Qj"SiBx+<]j|'_͌% 5 Mw!O? 6:E;4ls[vpdB'  } kG*-*P@x'3s=(yi| #8K2Ro-,<5q cCS~W \c>TOKZ%턒0?z?0@F#|'x!{v!$3\gRV3fȶC$qz~8Pzc='J8[0Fq1^L'dxJLPA["rSC|HZi `{\C/@:!f~Jw=~YNÃ8u8\&AN\y)Fsl/h⿲e`?.f4yG \wXFv\1 ׄ ܇jTj Iqi(/8oȡx_vQ)(O@=煹_8Z$fo|/_6^];G afϰakҭnƭ64=3G r¬; Ik ;'6p=4{#ޞ(jvzX u+(a処)qw5Ѽ'x$Ou u-Ttѕ.N5u*⵼Z4C; "XKwI5R$iO0-|Vc~J;QVCiQr!SOi*”T,j<*:$Cq2r1 t˫eV5?tR˵/tAs{A;]CO$)]X艪g4T` s>4 jY$dMPT=^ZQ궸.Th)WZ~uߪxMh˺ݫQ]6@ԩCLթLf\[aCjgh>k"c|'tF:f2> ΧPˏI{1xq{2z\2I 5]V苚*Pk^)H/-y1IǀwٗfűhL0>eR0ݒAh3uzqwׇw%mf3(jfJRzؗQU윇<8%WZ~V4 6X+|!r:iDX{8RNZ쪸ٳCE(R" r.\5)YּVը䗮¸F9޻/3X$Ys{̸O#8k QܓLRkp"?_|R&yU|'osF~tm{kYGdlVZ x'>.{TٚJq)P{bV Ceo4} vFqc;cעj/Lu7!RZ3A23c?kw . <Au ˚S]{;O_Qu T:Gږ b0jXҼk\I|zA ް %,԰0M"k_[d]ce+p(L4 B H kWrXMO.Vk]yߧ)ǂWV.׹d>O|R{}eV/dG9kjpo1EB32!z:a'vs.M;u2h1egW}z¬+GʰЭRrʡ#jr͖bԖWǔ ;JJ&~QX*EpІ.4\K*9]1vk`Ni5p=%L>U A=R/nU'}Aki9ۇ G֩e=Jo@4x5Y[6nѓ&i}q;.9o glaW! (58WP3ӯw@Sq ϋg"}t셯[-Ѧ{Hj@PN9 LF'k_>veվՃiJd Z`vxvʿ.mI *{5jxm?F04Dfb}2!#ZIQZ1K] 0Q 6K#3aywbcTcv+3%78p!kG=s5>H(!!Ϡ5;ZcT?VP< oS/U e<%H.Sc :@6T%r*$'w4^/5I0$ҘV9h!SQxAr,xm/-O]ů"jvϦF #BҗJ͠DɂsX,Xi?3PywWa`pM?ffYi ӐlֈTCe2l\R \nQXzLTlU.3Ya`տ,?w :hm%vqF@7wXW}IJ8;҇DFMz&ߞ4X;5{GNr$@VXjz9A"ͤ\ZnP}-ЙD2s7uKEe"YFu @sE'0!4P՟´0OahۆLylhcF&gcI|}\xfs` qbdKP37cFIVO4|/ fLlu<WibdA.1PC?HްR0{V"XUOUSķڱ֨c!2FYU=51j4uj;6WR%ke [6i#iZ5=Fbq"#W{BWv®JIJ 3V,'˞:ϧ|T#Kl=Op5IHc,(JJ?({juA?k<[Įv8[͹VHg2AU=r*Ne?3>L7\\iLj槫xp>vJ4Ų5_)TOFfy(?Y<Z{Z5A{ 1b^G췾#ǚ9 W=ətΆA60jl"t1@sM**ЈKp;)3Cm@#c~6ve/P|oܓpxYoMw79U@:qT>m7/%{i鹿f28nv7TL:(ΐV@ẏ*ցeb.U%…0MX B=B|w Ĉ._OIi{䒚[8+B4*]5IRyڎdQr/rYg61#Vdu ߘ,yA>]sطR6S?, WE ۄÉR5pO1Cmҋ Ֆ1EKu i^ hvM y%Onl NYV͔^7:5c*<@/ݸB=Qqo_~{uz!PM@MSR`gJm󻈫6=>) Up+.&僰Q-q5O'u26ztaSt?,v qĘHA=}2$>\aI E_UnB)x1؞}#7ME>i"Qa dC/pʃ#YӦi)ysN]XVgt< R`Wc"Pp]Wr6"ƺZE4fF: -?~\* ۷N {J#ʷ9h*Zlk-n =9x77,WOW}78pgF8:LY7 !`<* T(Q#ƛ9˙c9(Iky>0l u|m1p8JيG(sUHX {}O̪w@/'aCߘy@^\\xM%+= RtK987< N-a[17P E \nm +!(ש:0JW^4l@M/N|Ik4r"LJ 幵;KA<s$xEF-nڅ iSx;l@~9%ɕxǸZpV {,Ճ3;"|Hx3Cr[V,aB}-x[aZLȠHM[zf/G3sBS(mdX (a{ryWb6~0O 9@dk[׳܁C#dE48 8V8dJZMIO,m U`䑆 c]tg z,W+ c!s;+h\JӌSJ\s吘FsEBY6n+n,w+p3i7tqGye, `W|94n]JmwzO唯#ە$_k;G[ Iu;2(x ptuq-q4ꏤ݈m={XvXޤlbbt1 J J󖖂t]: Nà>oDBac TSElYG_Mٝi6U0cJFM@/.pxPV!_@ڍ M6d[ZUZ~Yiֆ$n(6̫M5t*V04i[|gTf@TDY'AGTdMdmqWG?'&7I@&YiGcֽlG5Á'G45n8FR$2NYV(ҹͦx_ɪj[Nm}\ytcY❗#p9Hь]^RTΐd|pt)PNPW El'`s<}ѝ亘veSI*)⺛QSڀqN{O:aQ1 UmCء>'p< >yP/<8$Qw`%g@>{ÿ :!#Bsvqp>&K:=$ۅH*kկA Zv p=UB0@>cH[6-)'Mi8LHW *kUd}"?&ng[~JTqYx5 :SFGa,(JTRoyx1Ӎwyy}8e?5\+T7Ipԙ6z@Bjxf1d  u(g )Rm,q,*& $fĶ5N`f%De+F\=RjP 0UM_O%p]ɾn{SvGZlG߬!bMkI (gw :..4IBj9dVw>TTι᫰ݓr1e$o8WW9 6BhkZ_XɛB R&Bt_sފg?5H E.=C[!o agv}VN=Yc"σU [}fj Cy"N<ML5 $`iՋYMve+dA _Аu(Oh&l ȃ?,䢢I_ <(ޟ֊"&Q¨HKa(w.f(1u"T8hI*xZMówٌ+v8>||! =:kvoFH>S.;L愋N(_ۻ?#@jK{n4kJUZGWc֗F¨v!~a%`#Ֆ\PWI0,}}HԈnx\ ]fQ#sԓ*SM_ nv/Ctc]`, 6PgJʡ(k+a$E%N90ͤ G4%Ģav;)fIݿhB*5.&yԜT81@!0 3+\H Un[7sD\& :6} Q"wlw{0>X|Oq ylہ-,jŹι+uyi%ˆd ע_ D>F@9;^>Zcńu@hIkvǼ5HY@";]FG)G,X8Еv^b`*!=`|:1s9M>U1Z-*sOǐo^<$Nwqhᔤ^6WžA|E%N8W[m ")u_+eÌh2^bo@?fjp~~xlv|6i4$yʾ{ܞcg(~=gsLV+Z.eԇGػ\eOZ 0ΕrJ`%^ 3F;@ݷAv@,W6{v(9K#hNZlw ̅_/8fL4[L*!ȋBf%R4td -v)X t&EJs[uΟQY \H\,"퐌ގF>˪7 e[\E"o慲- Ŋ{ !&jNPi_T4. kv7mϸ'C%z$n NUbb y`MEWۖoۖYksTX ϐ(׍*1 87rl^1Hgy[O`GܭBߞvrבoY/ؓFҵt'Y[5Rs|AIW~WVK8TFAmP37(uS]7Tba e`65xB]=_ҏG?]x>: #"& ЕB:85}8\_eN%\+Qo)u9ݏ#GϲRɎ cV˒+3-BJ3ʲ1G{~.*ި(euձ+觴qC~efŠ8U,Kv^u'i$Id}:G zFBQ28Y*l܋>2$EpRCKnצ)CM 1M\\f4nF z]%M _+lgl-yԌ,G`C pD᮲w2pw9u:Bp^)QZϛAP;oPղutP]̘nڪ+5:߮@j.bWRo;.@N|ߎjl{U\cٴѽG4%(>K6#{Ѥ!~kN.ijElz\E2m\ r/a1dcun,K?Ğ:co_kΆ|BAP*XSry>˻pY mRt'e8l/+:-ݬ=ېmiUdZY.aϜ*U$02V]ph&ig?xLʆqbQQ[< 4ۼ_)7֖M_HNa&ULA]H F`Z]- "iG7Cj>f/p1AE5hdM!.|Zo~2OGDxud>EJg_)A9?мIbtK$NtV!Io^C>=k5fk=gl4" #ݿt> Q/_=a!%W`z!#sqI"(ި ? ¥l&|R Z|}Dg7V CA#@=t EoVn;#fC'% $eD;\每6Dr,rOC %As;EhqU2ru/_"V,\%i3z\[?苾 X޺&h؈_Aɠ8@cE=Hv؎i;̧Lߌ]ϑ"# _xmp"sx_86+ XdCH UP樱Ez-/[2d0HoJk S 8' `}4>ԙu;27!b/hkH[f !rvNbL5 ݖl ߢ=ş6"6FJT:ߖV.䒌zNcWWЅ{/ tlY~Ɋy2cCO̠C.{dpj/FV(.U!Yufְnì\DiLf1=vCmL}K7G VgMDi5nQ?#5՝9;ݏ!3`tw] z0$˹"VDؠؐ>^jx:~ 3ԀFV*8wQ0$ ׈76zg.kbd ApTl*0͞&,B>b*1c*M׏\K8:^.Əa}|dmBN9s=EkߣrZ"^rO'#_pU: $͞o2uF[ǞMqGۚR (y2&B'0 -Hx h{hd6GO2)˔!%俶]w[V0,( ^ ѝ"O~%BOJP&Z)\(iCC\:[CeЈQ` mD^NȲ悕f.hg`AJy]>i*]UR($?q±v79菵.` .S kw۰q?&(*3Åj}%yUZƴ>b=`&w3 d4YZ1pvDcJl#O8fh6 y)m}=%4$]ѩSrVWՕA2K_P#WRK'zP8}!. l,Mc`kfbLBUӜqzS&h(i5,*r%N$);2'Uj>5-_׮qGzI=9vF(}pgvSIAb')(2' ͤ5-tl;bUvDLaaѢ^(zB40?}OȓBp3Rj;w_  @Oc:JGȒfz `~5`8^`[<;6%A% BJ/X ^%e+C:쎗wfYJlӺl +M^iB>Qp4fI+nXL6⇱km(wӘ B.Jt= \(d%#,Fa;xWI-':F|Kh "e) 0f hI\yȣg5R)VrtesbYSt&#뜗TlpY0'ЯQL5$?N"p ):ywJt*fSs6(lCˁ!*V0uNS{)r)Y #2JpD(XlCa3|~02P;$ 0?~TZt'ۯB1z-{3ְKRR叢?uز' ,JrL;q> G\y$t*66,5EsM@cXφ 1/_1R ~t/ʖP;g{*?^R|EG>l4H|imas7S/+r ~#ƮvtD:f\eօ X"ҝMu(⺤X _8w9###q."pʄ=-;/-E`3x{Kd qJZVd0\&~ȷVFA2gU `ˆA4EqL?^$e@ἇV "\jX&Ng'O0`o@}Om8cC0$aIl7Ud 4mX%ŃS;5c !Z`Xl ,s@Y?s2Mq4 ~- GV@CD:ewGb\# 8 2 ID,y^[cahPLqh/s,U򇨐Mv~ܦ[&&e$?xpHqZm+;?~riW V53e z:@:bN12a^?91|UkkG-/7,+Gu%.?3?5{=w.?5uR$42 vGjb*u\oζHlꠞfSo׀.F:51$ʹ5Բ.E&U镌^ A5bS+fպ)&L3Xm)cB M,Y"$Y?xd r>|a$HKmY~Rˁܪ+{tCYwqW:1dmՌwb}*,P(:ZrfDZ7v&%g 7@[Rl6'T%ڳ0e~qxÑo@tDRVຩx(~A NU(sǖ;T/JA=@MEvGlǬ_XSZ=CjcN}zMBфC V7z =xQƴ ~dXUJ)k!H|SxcKƗ]X^1q3t"-Fݚ?wHUYSpnL_9@Rh\8~o'Mu<_q8z9L!5#g_$ٲB{V͉; ?uj)毣ew^sF٨n tHC:4M0&ӗGY42GDZ9̱|v`.Z!K >uw_j5w=ԙԦB{z#|Ȁ͖Cj*;)z^ TwIQ9b 1[ַhIX7 5*3 |[LO%BŎ2˦OhA^Ǝ:orD<Î !:5tB$ FΪ:r㏌JL=E[4bƌÌMT7e+md|f~!Ji^\)77)ZkzmV i+lhQخT"G201Nof1Ҥ/3-hS]0r FtSS6ZkpZuez~3d`ҁ~,K%K!\2}OSի*|K_21|z'k7[ oor |GL^ܳp O݂pA Ӹ{{p ~׎V=cE6YO-Uj\XoI vkAǰhWGtmneݷoLe}hRiX)hn:U 2H"Jۑ͡YDBY ^^2&Zd}əD[Ih}GoB 2rUGBNv>pw AQ܍!'׿ /h0\G$`Nc(559Bd3y= F_lduN@IsZ#!h($Kҳ8Ge/ƌL`RpXVԽqÇtso'Geag?=ÇM~\k }Y1uFJ!ϑZ|樈"@wBR;GBF~ɞCݪ#Ѧ?$>{=_2N<D#yƌ2v.IOԱRFJb!"ܥni%Q;@s]u R&&~qOR)M~3A(8Ao⺘GY!TOH^ufN{;R]mv43DmMC++-eY'iN߅{ڙ04Em DJHs)^ߡ1!k Q ѤJYs@c~D!AYfҘ[_;jJhrHWU>ɠmF阏4!6X%aU>\NP^ w^@:&?f=ro#q͉_20ԕU e)4qxܲx9K48B]"ܰ+. e?7Gʉ9UWtPV6>XhK Phx=_-_B~\Cu6h]D4=Ԋ'@YDZ %tL+=0m|WwLfḈ6`ZxU3}Q! hxG : Wx2| F$)Mh$|or˲vٙx^uy ,#4EffVF D!7^e],e E$6Jx}MPT}RM|sp"'A*]7ς'/(;`:l|2zq:`׫cO"0)uC"&Rn?Vqu3;a_( 2/ 0/(@ '\\/u}Kz̰C/=+U ɥ{: JzەꎁdBoS|:~Z)`XP͈VAp\+ÐGbu_a#dxo D"G+`c 6 ok! zP>L"y@LsD<-(G7W-rhvx6J 倷-[S/`9[&eGTE}~r,D~g71\]L[x`qq\jt Fˌ,aI#*yr6#nk|=W R5j+H/o )jZ:݈c_vLc > N`ֹ㛒qAPT]ҩi;i;*OzLeP%&Abx5%MLB2׵b pi#K~"*wI/p>jHs0)-B.X5g}F>xj -35JUvė:,\X9ZfKw~zz-w呚 _/x=O]2"=*<uÔt 1ixDRU'@;\<`5bKsJ6M 8(=x"u4X 2 `^@g0}jN@;EKmÓ+*:XT4a˭(Zj57tG|8L -v{4,ƈ8RmGY M$YBaήI2.{s y Ə*Y"*mum[]&oiYLp:o^ų*dw+̑$Xz//|BӁZʿ6\'K X5V*[VD~ΰFG$ڪUH QJKtG4Wi)_qD:;qqSRaPD0JRK7D婙,MW5l?A*~fsVʖr:;_t\M];ZYk*"{*/Hg}YAPq7<5A",_RQ1AΉ@pORW< :TSطϪ M?m`FN܋7{-0jW Oy94Z|G_VPﴔF@4 :wL dduI."h%WЂzϛ9'a(d["tF{#szs*1ja6e|(Եc-s}+>G9׾@ut(ͻJ󇓊\t Ս*:(  K~Q_-oX$Bx(?v8fZ/wkRw>ѱnArNGH7uL 4VmHaϓC4G]T. EѶANYtB(l yKЃ|<N#USeqFc±$3U/;P$Z>NF LoaY), 7 Ov# ||~mTK&+0L4x %Rr:ZV]W)wڨY?EY1(u9 $&>XIPAPUBd|%qFNZ^cf- wj!Z|+5Έty=>0Q(dLvu8 O,RX)W6[ `6"ķLj] dkgkTe0s)ҥB3 :n|t ̈́†'ُ;OyAEQ}w#,`s:($Y,ur5Suc&1?[8s%󴮢:<)`DXd<#k_ QMݴBõc + NU dh f}MmEYȶYpo.SHy-=.|RY>#Ny}e#D.ZXA"WP_c(ʜBejxwNBM4c)l% Zki:/edW[LFGZF,-y3=g@]``G #rB|ٽD 5x8-J&T/B֙mͦ4OٕȰ,M;otO ZہT0Ԩŧau9I/y6AFd9 :j'1|N"{1d1#o}{Uðda!t$wݩlt'?@nH2h4ŌtdKU`eˆ(@fz+XkǼ03L{H9R"MA[<ӟٶ-DR2Gz0uԻ&4y!{3V-K|+#xT&:"ܯ[FuC~B Cog[\+g嘝#xh ,wJY{2VᦍJYGMVH^jy6fctK4ȸ!p d3H EþQDWK -վF{l~-NN3Z Wࢗ4Dy ǘVy&-\ /q"+f,;{]^LJrb Ee\~P{`b?g "-RK~aɈC)*|p8:>}1X`\8<ҭ7#*+c‹=p0LO}B1ѯd6~^Ζ^|2J5!KujMV=v*"R Fޮq=YFx ꃔX+ZXg0t#w]I|-' 5\v)oB`R,wOE 5"glsna+1 ˸oE]a_y| +_Wڅŧ#QMkmrʭ %NRC$Zz,ZG\^:Zn'UꔙԈvaf{z O|o0ʃ]}Sҙȋ9lo4H]R!ޝ`lq΋R-4im(<9'}Tiºص ' pF(h^+&-S6E1hJ|S}g~wsk+:,Ԗ ~l. 4̀ QBw`bL dSv5\{-ٰa;wH Ѧ³R>˸TD {Ba4S$cH%~QN`=`URt*~|8 }rz{]{WQgI&bxz̰}WG {Fjvܠ\McDb\; f@Tv"-7?K6o(x8U˞Cfﱃ! ;XPTH0D0'dtąga3&$Q'x== {~:ImL4zb`>6BMᚣ8^$Ah.@W}-z6e]k#imP2̅͝9wos]-%F2 o(bcDeS@oFZ EG~? iP{ک\4YamX9@*_Lf-k0tQyG2̰eAg\pϷ__; p0^g*::p#:Ur^OSST|n 9̀ˑӾz  Cw v6:ӄ4Z#@=CME, ȕyzpy5O&`D Vf3bI,@'i;n3 VLhCH7bJYȎƀVoٌl,Ҳq`TuO_o7=k!~dؙP>?%q(~*Б][Z^MsZzv%=4~II*FvRV 6Eῳ $x,nMuOT~ 3jyDs u8Ucoc{x}ޖA%B\:oƱ+dܺpC[27ad:y7Ѕh/lkXCޠ@ï&lRky:ǠYT1ho^6 J^RE8OY%ކFO#qxhOd)l cMP /tȹ~ٌfu<}?O5m@2Ix:ep3$(ql#1RAw`S"zHV\Oq ,7KzgoyCJvx5.sg1P[wQ."wIٔj)_a0<ݎR^];xDvպYKP>.躝dfqHK՟oP$4yMGA'xo݉ΉC"qq m ibzl̐OA 9?~TQ>a|bߜD6\gz4χp"Hj_NNgwo=oB]qrU묚,b-6Pgcz2 Xr .A5J>l3=gzqt`'W0O-{J-Xd:_y3GŲwQ}Mm ՍlNq1g,A_v3sD3띘{ + u>*ԾrHRHt o#cJgQ>sA3l5GmѸ[d!{fpKX#SuL❲֐ȜÐs|`Wg\1RIVzNKoC7( UEnV_Ϛ Ehu4q!@"y*l1D)n RAf뀄L nTZB0g:IKRFX'&t x\у" IW7gOҭJiqccbovQQvOYϞJvr\1/z֢` Q 7"wrSf:~3u.)Ce)bI̿_{PQwIəgF*kOz^Uh5|y?ObF}=11Xx5 /"]"Ո_$b$i)>ǏlS`Kfƫ_;K,u0 oyHa)ߣhT5@QV߳'fXN.x>݁V(cr؉j#9tϧD/wDL!➭$YPaaz"-Llң?]u1RvrM珴h<4o[{ḔR),AP]Z-9n+~y~_5dVI]z \gf_7}D5BuS[>/޴%l-I8l^})#E_&6G4mc`hZkUMRO o TPs{F8jJwR=2vCE4;=_3  $W q%O!MrPF?`5:''PpfIqh#hZ5#/ g[']lW31̆͝@9IyScDWΞzԆkj} r~Vwp&QƬo-G)ڟ+\Em|dfryz'MSM>=^6JL BUGmiS i7JG*CKc){4(%ߣ.9UǮ}YvRt H'uXSԍK]A8 e̮>;Y#4{ =QKZ i QZDq6;kNڑΕU.kS^E$ #moF1Lو9F`@ Ό ~pdJ֯I )հdDAO JT^KHbsgD]LhS9P[M&-UG`Gh~vd6&W_hs?Ѷ1f܄U.d65o{ʇ:ѢjH Iwr=:)'-QmCozbC#$ ׬&`.:{BXYjA(N(j&qNuѢ?e0{c:p;6|wUd>nU9jyu_rҼG؀ 2 \٨ҩIc ϡ w& A?V5ld6F ~5oԲ64gO_.t$6彗S,غSq.jBZ^K@`&Ư k]ts <t 2 o sLk'?.5cƂsqU.!)%d:CQxfr O4f&FQP;fQIz(Pwٱmwӽ~X28Uz, }汙(M\SVi0 J-6I[p s*xNqwf]pTR ɠ6宭Mwmuc~5Oe\PkR}duiP,Y/H4;i>7 g3CZHuL^c<]FIt!`d˟ Ru/']`t琿Vb1eO7Kd*++XkOk.U" @(3^9q< ;$qQ#F}s*z\102n )Q}:BN>JnUJȈ L|Ng-%ڎ3+1rZt ӖIu}gݷ*jXnK۱v{Dsxkf-ZPd/._t;AS294yr_ eBRBdQ6迯UMAHU1%LxAɣ[46Gs[43M7nօqLiMl(DsgM!B0eDVx f-D` /iʙ5빴\}xE'! @MH}"/;L: ,zpJQKJqW} h̺zml(ǚٌEo,)x8D+NtICuaN!~*F֚9 R I%;!\TPpyĐ#3頔Ur泙m|t5ޛ~>K/P.Mp'MAmද-u]3ȏ3r Ja`땆Cʳղ)< dFnH|>q;}w;Kp.BS(Pq;z}2żoZ EXf˟Cދ).w?ΨX v1|="Sqr2m?!];@rϐA\ʇ>JAj ?#a U<6v"sP } J<[_zYv]PR[WӚ5eK"ܒ9j+J'8osj|cLv f2V7#RhCN,8J54CDW uUwY-|$#J\Ę;!Yҧ"XSW']\Aq L$nebŴd):tBC2!Jm׺(I~ ?MoGLnR.}4@+:k_2:tDìx* Pd['Th"C,q֩:=N:m#[̾KW4㜿^upawYwزcDo@?.5 oB5fwhؐ2>/d0`*1ye U)ðf 0P.Ẹuxv,roEԬ-0NXs 98m:hs<]f/HA5kl.+)"b-#BB0o҂rQ3Cbz'DpMoZ+/}He,gNXŀ_q\O>k[dftP,+4<`!dNVp$tWzXԖl(EB?ё]f P3 ֶX<=d3}qG™lL@RzM,oX iåCgx` DJXHfZH?TzGqtr,7FQl%C昮=aO"4o1G d~wKrNW’# sb!ʡ ZTZk DvN\`Zo]/; qXmі$CU[mu"1_c~zbA\4Zpڄ=&iRm+ hXpO Ay;w >VԉgQGh7F &} +]M/i0JFCylsI ciO'5WםGKk0,i+‡:RJZZYm.7?Ƞ/(CR=l8U0;ڦ hG5aU2»tIwW l[D^8Q7fʪ͇wQ/ힶy8#$GJFK>0ݜ(=H4 F(Zy")C5.ErB,+QȂo_=ƤAT5;47|F]o6Dm@f.6Kޡ0E{yalz~AAej)HQ c]kDE HR5ŒҹDsB)WÁ#z1lPih[Ҁ K\!kο;b[]^1AǯP\ BŎoT⠯/wdf0S: Lmធ򵌼V4D6}PYi  'wAZ:,qQ ?88C{ġw@vR!5rXV63IK>4LiJ'U.jة]^pRW+9!oꭽeZļlfpzz68/%X]2 lz}dJrݜ$Ji.xǬi搿m/ݺ =R')A{oY9[YLt=6]d֤D<49JE;2*ಊFI~M7UQӰA!ͧxzE$)\= 8 u8f  D1*oe{BKj Xpz8M[2,!۩bx89׍еۺ+49@э$:T8я,C&OyfꬓwC]DR.sǒΡ=f3A!(.QQ 2v½Q].fmxS:(:6;;fQ Z J/[$-@(m$K}?i 6bG:┺@fKi5؎Kuk^cV%t< ($"1)_ЁG.ρKtMÔ$?åm˒*c¶6FmSU +z_H42wrk9aXf^H=!/. ы V8Emqg QyDjx|kt=vCp5oSB%`n5& .[]O~3!p$kx3~KEzÇP.Kmx?mil;7O?LkgR=~&8_THSa3*_VHj2_&#n5"I)olد:sOz{Џā)l Ӎ674.f1p,!U䎚YZN 3U)#YJf"iP[| X{rt1߹"n^ɷƐl&M*G =;>z7/o_Hc#Wsg/$ܤ`pi5M τfK s"z¡cX/N_ϕo{z\g$`nŷ ;I=Putӱ({c Ǐ4S!Dm0\Ρ~56ns Ȕ7k͕dNCҞ>q#*byw$VQ. ٜnmnavcnoKܹbF{Ƕ./!hJ&NKev\T~ V>xO tL&C\}8 oTCB-&Mge!(B)WraY 7S7#oٚ[}D~[/ZX ׯPGsaKӍ.+@zx9^Ɗ_݂h***D|6U-񑂅Vz@`(vsDpC;x֡Oyã/>^G@b{0WiwTn g0nղJA_xBe5-=^!,̄>)?>\j* 8/0o%qR5R/&4" s$dP̽] ǧR:bە`]M!&3LAz6{6)13UC+{;Aƫt-͌b{o@,!I\G:ZҕX;>ohs Mw`5'$UB_R2Ŗ!]76 :7Y('K8 "dQlSf lZENۡxoj*/,0 jMϸġ7$UI9o ceFQr)p%Maӓ?_<#:.lE-&Hi7!Z 2.aY " |mN(k=֘6Es{䉡 br6wNJ.!& w+On3Pa%~Pw+HZlqgQ: ~Ah\-X84yokl*%\q>r H$߿rucsS= ydaHMUсxIƷ_uB {L_\NHdO@:FyNHtcjUZ>+~)}^G)9c%4v۠X2(#e-Fw;"+H.fs1w1z`/l^$D E9A1n"fd{wzcl%ւ[l%', c,~|xb6K;o'{2i0Avh*P^cYNs荮49|B'+P %-w©!ٱwA~e|?tB&^0?u t_M*.c2ȎnȎ@yنwXaTqqN0uQK`3}Ebs-,v4)pS#z nt8D.p5 $6?jZ :0D9#Zc; L)х LCK!;h'fls.RGT; ӵeq# < i~#*ȺJ><]ŠkuqU%EFo3/ݖ70xÒFpk}Znlx*tMp'^,顇p!F)C,P/w nF tKN|&ƮAg[愃}dcAl1e|Jn.zl&"s;;g]ao#&Qڢs>Sx+mBrRX% : ?3Uw4Ȓy聰j{ІÄhe'FK޶+A QnB'hk|p0ɏt.+t \^/)i/G&.iLF~Y)8zRZ:)Z亲2m;ZX;Oaߐt OˋW9[ߏѽC8*]6&e^5XAVQ`sfgwҺ [% Q.H V/#)%ބ/f`~ݻO2hi#Ik~ڻ>fJhp0aGmzJ<2%w8Ͻo!U&L?K`8XMTTlc\y' Q'5Puˈ]"ZԵLot!ILJUnZ4zgF8W"=Kv)Z(|L֨Fqto{1ۆh0 !u* 3v I,' O_bͅ$YEu->*Uk Qwy;{[C0pX>N(KFU J>N=OGw֨L;(nߕgI}B9F4@Go6ap'JR֒2*mQuC@)+t(_Y|Uq{[eO^w*7@@W`!~ްѡ hlK΄h67aȴ'ȖA 8IW m; 7k:I|-5dn˅+zonhS$YV ΜHWŻ_j/i/Q`icH:]&A%wK6m.÷N%tufF48Vך@Wj|I& j.PhSmXbpӭZ!f'ƃq0kDF]W=3lCgIdiu+DzyGp/FoE+S~pegB7*RPp N+aLC+!~GMGf[ a[ mYox<)_}@c[[R5C3/ctz)GJ YȥV(3VKay_|._Tymn@p3wS\!ƺ)N+s0_hHk Sxng=.1XI]A Vt3ny`rjןid<1@ [ЯTQƖBMR+iyؼhc+N.LvTEۿ XgLK& ׄP]X̐N?fo|F>W Υo?՝IًQ͸9y$\RpZM8 #0eOe]ȚC =̤'b`RYS/`tk d/7[&萙Gٜ&dN4žW5!Uht-}ǦڠNsV? 2@#C\=8R8?B {{{9X@W͖: ˡ:#R徶RVPPS{J|A Ǩ@QƗI6rC/g<|Uڑq1l'Z Ȝ-6[}wkۥ ͉1}VbB ~=aB*A_NÓpd )UI*fJgcMŝaWk۷ypjqy2),cqa@YA ] c=}@z z#{ONi+\AqX @ֳ,< =*""){ 46ĭ&4xѫBmDOq?LT{CAٶAXt'ԍ6gk }JA|peY>0֕yu3y~>nOH2cy \=ɖmRCSRO#kuiE\/kkN2ߜH-4s 6W%S@ ɚi$D#bsIB YJ^~6ʼk( aB5&E%YVԧ>^HUvOZ!Ш=6]O/i6G.2mx0Bs7s?2o藷xg(B r9>='0z_PlA.{n'Tg <fϔQ#YzߣPEC~%7DHϼ3Tso͝'4N>lMxYiG'I æ+Qs {ٻ6 yqoCHd4F{O|QebQ][3_Vfy_07\ãL7takpuM %FgrMr}DNx7P)I󑞝!HY_"ӢA7A`?:"eN2Q.==6) AY_#:h:}Vs:^5!dE&Mq. Ƌb0[N_%h9&RY$ϟZ9}ر,Knn ]ݏŔÍ_p!2eGw)' 01&dxbޓtpDN>g)MiXzk5z i0\jA3O缁=S(6<9^!%񮌎7U%`MW *ӌA*ORfpd%c(51^{o9 fK'5. xg#t* ߘo+Bo'-z Eyvπ MLDf_"w\c$71xѴp(aOWr7$a01yڈa`S!'t7Ŕ>Z2.D(PEU>(P&j-5?rY$b uPg"h %vaX5?I`rJ%Zŏ&A}gn75=PK:3mZ,˭ B̚P=ag60WUg:c#5b Uc`g+dyQz-tSSHLn)3@] q[ѩ/:͘+7</!_!ji7m3i`Nxry~r6N+)κ bvǾCo1eȠQLO2٣^+Nt<://!ƥitqi(Uφܔ6Bp8^jlx_ i4GП DD s|5Z`# Nu)'/ 9bȒ.?VbMLt ]' Del- gc(؟Q: ΀3g m#Md2l^FYc5)h8%Yz,=_h)txرI*cdjR pUgrZX).P[JľH+q$"ׯO#%WILNтP7RtxPPj{P dzwtXAu=ZwdϒRF b؋aI p-xev nq3-˩1[Uk謹9$/B})pR2[CU0e3-! O9&{N"qۈ[߾d)![),#ʳ!\ܩYɀp.1Y,:NT+5J&ʝ4ƑۭhtĉE_2I EڋAsLzg缁@Y k7R4Ϭ‡#b:$ڹ k%u*z|2`p'>7tl.F(m{^&ygnH{vMBnrrp,l2l2V$̾%y" f õay4>7S'|bt m➬>fc|SAy%l;Sy}Qكȥ}rnhD+'ɫfj-v.AQi櫊l'I:D]ξxU|1}n <3 3\+ħ{@hV5h 2|w]_InX`ߐSk 9;$t ͛YMFE>؊QVL0t nhWTZ" ?ȜU-.qbMqh; JSyw~KTۭ%]IΕb2+=<%eި%$R|"y.]$&gh[VKx` *2Lx,~lrs-^ $5ܼ1C"q|jG{9+'@BQew9$,<})~7F'i l2}G }o>MpuVƫzKw(m [qEݪb(QkćX꼪-S!֝ѭڿ!˹r]%aCȷਐR[]^t"7MG<{/x/I%# Ue%/LM:R,n@!Ө[ȕ/h'Nw95(=;Ai}U@`z.ncs{1GZIWrfA+7݆MmeK4eK$jtrCt1hBP)Ᏽ|Y3US~.ʛS}^;?'xqhXd,2_ iRS|)%@{M֤ ,ax_f_> }×s6uV'17!T~0걨?!l|DhEõ*th+![[ob̓vz0fqzOrD\n^ YD釶P(!9Bs[|?!tMDgv^= _~|5k8QsQ靪Bp,>V[uu /1_ȝ/oC9u#V1ւ`8FS_XC 9z-,l𸴂R+Ty%C,9fʹHgkws]jjB-go4oB{7m3%^tWG♞@#Y%0"5iAي֫p4GFDlZDm!8}8& 0OYqJVr?K_UˮTv]J@hoLjwfy.w"X/V~L y,X|<7տ7⛜Y=1 g1d̋*RYmd| 719!(Ety e^?c'1 7,ΗmԷ{~ !B؄Ŀ9i^|QLڞrK1gOyI? ' 0c{Gv#x𩺢),sx(!,qSV+#@D[l c6Yz _eώ>bnz_FB|WEQO'GX.msdV`G|ol42YIޔjfp0ƀ{jF.q_l \~ V DavVbk&ۇP%dy(jhc+[2vi„fW9s в8,;& "Â2 ,? 2!iZu)~yJ`;v jNMǫ~` z=&kMma>H5H['g2kshkRqI8~{hIwf>LgZs?ɭu0?FbkdbFMbA;#05`cM7Hn~:i2);[jENA ̛Pvz FQ(4n* z׾ Ha@ e(!#r U$;L[.%tADN:+F:V70rT֗`wyU谦etΉ_gh}xtUI̽W-Fn(/8j ! !i-enXggSvNj{C8ɣХkduеPAaZ@Y%!V_Selv2~O+k?it򕖤[mV̜Nfustǯfރ}Q ʣ+ 7/7\13t³+R9/v(4PشPO! r=1DE>KHf2|*RSȆVx1B?!thh#[@]rPf!g<8\+n S|=E5.x\ S>E:OWy@ /#Q! @r|y@Y n Pza^822.zun$]Z%~ѧ*TP܊*t)eqQe>PfvUq KGz=$nU8BЗFGg:ڴqXLp~yI +έw,ڸWcBu:~ \]孶`ge+ :by6_42~ /`au3_wu'6ҏ]/Jyb%Z1g# E&Xdl|K,E* zmVkĪ ³A2w\/j a Mi~Q0~Fo??kAdwRɐ͠MլJ՝!xyVD*v3LVx:哾9Sp^P%W21EIje4ٚ KBOCHrC\&ѤDl2p0'Q!? ]+ &.ې/$ p."Qŵ Kp]3.pN**w5oH`}Y?tprOzʜ-Q@hDY-J"( 1zbx\^m"ҔЊ~ǭ9E#d߽}L<ǿ~F'I& aA|~of9f|e n:x|}~iK,nb8Q~RC1/eA쾧QI[c~8&0ܴ]9(o~NdqY+Vt!! /"ds*(;JoK6) V7|W=z3,9O-7 ٯgHdh ɃM/u-f~ybW\L#APvqΣ{F{]/܉,jh]aM0'†uks{:~R:aK(p[zZvgs5^7߅]=ۂPlAY\iGwLbI18wA'N5WYZ %wdr6g3AHjd tZ&@-Qkv %HF:jUR0·9D跽=nXLuѶ\ [_3xI2n MwɜṸT6y쯞p@8Bxb[ r8ǿ,10֋3K1qۨ)mAһ0TNMGvP3iMuK so@'9#lN&,hDn?ĬCg>p1>'Y0,D5:DniL11dWPwoޘHQ'eKNe[m*lD*37-PD GX8W\#5˔Yze˔lM\jץ蟃bʹ"G62-Z3K4u -Ӎ{Y!B>f"_PK8ܣ7Ztgh DR}5X!LP2q/Lg, KyejDh } Ek/FrT6['pwT[<7\;.qó}m ,ǢMMDOi4vƦiE|yأQi׺l6_K>y)mĬӏTz1ɿ¡f!^EL%>jedT<tP^7? nEg.Ql뭄0 5n,(D&f: x![ebB!qѻs,{&/0\'; -$VJϓye~da{mƗj xp9ZV ȩt!@&5j)h2\Xkv^ s@3cڐv};]24Q1cz %[Xĝz.ݬ萔 ;h4%*THdr.ξ{sw[$HY IFHjn+fG:* @}`i'_,@0(CEv aX6YꕋX(ȟt$NӎfjmW5t, [f8 jߝ&Yz5L + ByU5z=)~ު*_(aD4i=Yˤl5Œp +|ñ7p᣿~ykL7`޽WDQ~h*^ n U,q_ IHax;s1bR)ljJ Pu%/ +jX]wDԣt6g;^q Jqʇks"o]uâ;*f`J,;pz+ivI=:W2Ei4GZ䤁.7Ƥ>n`tv k]]O}[PËt-n;cE}L glU~]DKX:hiyMUU <@]c.8Üss8#Qi+&Km%W<e\U$RXnJdt/6KmՈ`枝+z8U#S‡|RP*"N{`7Oz1E qQ;g I(NmZ](G7Km7QB%z|ȋg.;?)'K%N%Okp ,z0'HZ a6 xE$rX6w\L~v?.iFY&M4n1wؑ\ki (ˎ{kE}d՝iӵT r Q6iː8Lͩ*Vg?$г "ؓ G^0Y J|ܠi~tijm)l,wx"a(bNӓ;`m;T׆nFꑗפ%ܞ&% NFggI\d{p" >>ȻrIԕR4I^ sڭ܂hNE UȰ3L!e{yhFb:#cYCb|fݳoH#g FU|(Ra_(,ҽ=d][Zlsb0ɣ _P)h.,(GAEDۏ y .WG)UH K]0⁚KqszdYr K]IƵT+{0eCU+؍˥s"+68G<8O2+RNe~߹ܩ"V!MGhǡ "cI]농ҋ ѲůX)E}4b%: 1P)TCSE4uPnZ̹ @}4껾p|x$ ?d=!4Dkmi}\phC *%ܦ{ ٽxa gY4gU"ڎQIZfμ.sO &hUWw]Uw3.#ᗼTSOsx߻"_9޳#gc>v( ֺ1Vy"gݬܭCvLFW-0G]|&!T;Jg7qfH]Jh~s1'3x1x$N,!Yk8EN{!̫^@yTQص"oO2hAєL,Ö˳%68(L,%X36FU?6*2VMFcFd^%OSUet|0+gօyj8*Q.7s:W\'KdՃB`j']i2J4Q$5GSqEJ?u 2&M=3޺6q6 ]%Dh'V>@(;d=Fb_K⃔G;±eSX8_V&:NJjs,Alp sAP0}3DHSK6 jpO2@JH|Vj:ԯ5;Fa4i+|Fs1 !qZtVAle`S \v^(8yP=KTRΕZؠܴ-Jdg:i'Z`EcX;ȿۿC.;n3sgvLo I&TRBf;JCw8lA1qב}zK"jzV{GMʑZ?;,#~dT(fǍc laqS BؼO0sl4$X0^ûV1=ɬQ#/j@P.m"I]SO-~P鱍`z7~(.9| .PδD4wB Ԝ(?-@gr8Dgvt|ps|q c`v<*!&{߭f2細"}.8O=ܮ7@#q/rhh&^g?QH0 {'R: ;JP@k'` =OEF1pYIGkўrG8G>ε,>-b8=Zwn]HpE ;ړX@_qD 8~ U)Teˠ9sߪSs 2y@sinν6]hMOHywt[B7?  ^aS3`H0 U̙^ !ڻDE-/O#|k\Yɵ%`T_{89vbh/6۬ȗY7`UC 8F"R=ML5{Hl}# Ql8.Dh(a޶ϝصC b; ZĄma#JN; 3׊V5,sJhL:VSќ0h;ymi"XK+BŰ E0E+LR n`g')wa G/{wsZ>%~W"#c,V]y{&LFE@˂Tfq.){!V&L.A< HMO eJY֍#lyDopԃTlx.iSooKOCR yP;!T4QCdФR1xQ' 6 $ǹ !Pr.37"SnpA8 KmFK&H`:D'Xј}| [OdlyXL@h b0ҖgCnKl)\S~EPL۴P^,';i!1j-DPS~[-z}3{C2va_R .BmkDSi|>Jtf)(n:6)e֪~̻!ԛSy08u ú[1f-æ)HV 6iF #hn{j9b-D8NC ]}k {ЕbV;`'&sQ4{s+6Sdlt1,$It|` 0É6 VE \  GĔꏱY{CɃz d$D5q{^kP̽c.#,xYbQFR?r.L*^$j\GT1.8+SZ"+d,sV״?4"+^n1V]mE fc6Y"|ac@Fzv=/@uRA֛oOq1WTQlLL~@.ZHi+& 0aU:7D$~nsdP2;0'eE5ݭ =?@[.qgol97]D6bbQrGԦw*2,_Tif79-cL׷|7Qv'hljSynX:M;c`S 8!2(˿aN:}{߷b]4A]L~yUvtI)Cym\4ޮ9rlC HKY dc.5%> AF*[dXc(zǜ9`fdF?}'~3T*L1q;?q"%'9=澶P~$sDvn|)bDɢs3ڨ}o8FVnjfV„5(?\WH>↱H^dd+$w6'ק _ϒ>DVlsK*Va'?'i"j\H_csS=;PHڦp"v@dmck){Zg7;r7'n}.@3Xt]تD% ܇$)8뗧{i r3Œy}7 ܂#νMB%IwUB(k05+ɂ[o~F]9VER#PA^d龕I5Րl0X@XO֋0k5ԶE}M4mG ;!YeRdeR{,)7W6fݡ&pL }2ANT3[5kDbyؤ`rTBkuQWiIU=0#%`.lpS½h0vRʨ*ehgIљIOm!<7o˩={|o甩-x?:DEl;pҷw<0O mxY [$8C%|v¦ҙ] @O?Sde&a0O؛-‚:NGԸPe7M 2fG^|?)pŀx ?)8{ OV"z7BFyLjx+(*Jש:@ʔЊ<^+rnq(>9z;G/c]cf@T֐=Yf͖hLX";->+ gHDc$HPɺ#A{MNEwR״Ժ6"G^k pXYD!g/ .z1 6LwDj AӢ١ߊɋYW@, V`[N  %h)1a<Tk + v?c:E'̐v(?Egs&J<CfB%hB"k;6vtyCF1g~džd}jdaZw 3sH Az[8F>i󰹝+W6GF)/v|5(rtB4Y@W'BDoz{KO 97cm7K'\X*/OrK0 73<\Fњn=k)̧s8\ntr)t7H.^WZ2f 2yn1潪yVRCT:5lt$_GఅͫyS{!;!/]j | R\To> `SwB/c|V!gM.3<@\ylS82{fkDeWF  Jcߖ'jbculQ;Q)6K;p KH}%LT/B,c;!'Sb O@_}"ncu"R{5#snCH.=ɾa.=6݀mIʼ[̎픻] u_ _M-<^0.wFvf&|LDnKuɽ$(X%I38F|(,.bvݿjzM!vTj-^iΚZo!FO5.YRz?>lô6rt<ؠ/ Փ9//ڦ͎ؗ aq $Ұ3qA98䳂)-[_^[lnr@%C0#-Bk'$vԼ^>mط]~S7K9Y^˦Uta=JP 談#?*v!%i[th.h,=F'&CV +%(.*}ђK_;h@B#(R'<Zp?/Ny+9{Z uQFv)FV#Mf6*\PޠU%d⌅uFf&x=Z;n%k#rMK.|Ʉ]ɺC+jqTJ}~(S^ 1Lj[/;(uf Zʫ1<1i&LoM"b>;a"fgDqd7 ~xPe84N(rj@ rkt d2>6E,-x8hO4o"%4ӘHA!*bϱ;Ӈ[akO<Ճ(GޞDcp.,sU6WF(?3GsP$! +WE}rts8CG s&,NiA`|.%e\t$,KRW~e_wȀr͌dRN;wgE_,x,Zjt$GleB(1gKa 8fc@]>p GuƉ"8Nۯ?cio,JA7&JInb"eR[9Daf{lQQ~ i)y}l-5ͳӣv[Y0 ݑa$C!ͅNvxO(Ēهeg-,8VGnJSg]l Jy瘐3}ܼMo 24MY6Mb;q Ojc^NkQ%^T/>44Yc@[{XhEzE&^q 9ȬQ.q0+6 1IIU 60pTϝ>ɤٺ*&حc6W.Hir^ί/dnnxP"]ϵQIw-FCM/1+udHP6~`B1uY4;w=W(g&@-W7$tJ!@RvQ32[LK|ܘ@QW% ]u$~9P|y5վë^0wOW=XKP2pƐTiVȑQ+m1r߱!9>pȲbwe֦Lr#"6P:p>heR>0#6յO_*}Fq4:|.f4F;YF5S#ÆC`P/.fπ[\TKVNM)P(FfלƳWj{A{LJzYsOA5*Ьk2>T8f`.`Ƴ҄| _2#<\[;b%S=vYu D?4 W+N'Plj)qK$>jNhTjtyywUW+>/3HSt[E\Qʋ1eP@74˳93ZR I ,r| +j$8Op 1NVFc:*+f[ gf)5tr 2Iq_ ~3Ka&Z[-FaZ収=MNsuS V(fv9u RB^39=>찵lr$zgZ5-`&wܜYYoUь3oBGmTWgp4*,T"\DS/9lُ2wU1>2Uic} mx`7 D^ʘ/YrLEe+j't8T1vo3"dA41+d:Էܗ3,/D*]`Dӆ2{ꍃ %/펓bjwa!Ou1JX-kod=xߨ'TPD ʪM4LR^>tra [!w+QNV|{%W6E?fܺÓ{ِPaG_PHr:AxV]t9*sGFSIYwQtחV)%]c@y myp ^$&-(~}g OR]ٔKZ{Ʉg@ulPi`āE ΡPΠ2=e)>D<79 n D'+jFD`W_RRxg謩Bh6a6\@~lȏ(O۶Oo>瓣83d7E): :-;"@.y 0 ֣33.[ }(ǹPWGLe& !)/z~]=LRu׎D.%M 2U-Xu 7b?RjXZbZϪ4=Uk_š5xM9\B ۢ(7blWU7Ї72۫h^ti"G ]7)&kHy~E^ z5u^|.I ^qVzEp'0ONK;P3aeRPf1 _=_h*/-Nc^qAC&Ӫ߻Su#'F?mU C{S+K)_O=_v/dATn3JӢ,|@K:U\*k-fi" @ k5~M+52m1 ?4CB_Znj0*Ph3[ʎ4OeNuSzS"9F% E+d*_LqdB"c5)^ӻT}hZhqBjD/Rq0 fmgXPT[ ;>u-%|#Ċv[70$+5"(Jafx%OHkTl,ԇ%FD9\:A6THPX0luchL?=fh)082m( ?}8.j_4TJUmk4ĝFD)#%-ݘ궝\[ cE,e'M^muCs,)L* `Ǩ>w*eVT`UjSBB0/Sy%~YVLIsF8!_2 p7dF=[}ߛ-&]MR9AwCEedQdE X{]PY}ukdGÙ,@r"}_rJ'U|UW=ns[^,}tj8CGdIY(C(=[`d+D_<3z N2U_sE De}@D&]S~ASD6yd/*89+xHџR>ur6yÖ@5Iu- [k$M=^';V) A. 逋l،zcAj13^ZмųQ.Qk*} , ۨn)tfb)p'͘*]n13'⾞Qf Nɮ/,9ɋ$V}縞+-%56ж!wB̌Rҿ"lU߂C[8A}r@ީ\a4sCpLlئ*@j ZX=$xݔh}i9f4ݫn/~ N9\^5,)rq?=Kx-''F0Z!,ٌl&x__C)+ \ YlR`= /:3=*GsZN]yoD+ghZ2([i3rDrjzm^ȒlU^ >=!V]nS۝F%]8>Dև?EMx:3$@͏<,݃ ;slM 2dg bǷr3|ߪ.[3 >Z{#{% ""pE+Wbu[*)${==Ubvh$,LXLGN72 윜N FE%bS::r+q)Mi9@ԹN}cG߇UWNf~_4#9 r{GVAVC-x- YOԿ:[Շ%#m AЏW.^c :{=- Y`?-Iis DdqhnT4uM%COQ] ;53 RR\Ըp&yo=#xiu@Y;` +r|vfhwd+GS?+A콗}~񺶊&̤}Tm} ^qF![aw1NbvQTDѪn.WV3򛬤<'0O[9DҔ6o?:j !+~rxK}ëC{!%"o/Uo[b!t08ˌ ;'ee~*J09VT-) xPq/x(W#R;߰ 8\|+5pν#?UoVmX xY_Zx~zڇ*`6M0 WKՀ6} 8𱇴k/(:pN8= U'a,5ŇdYsDf:ZF!8rvM!JRԟ q*OxZU[C2 ZRkf8?q?[+Q.߿۸Blwe븺;%/a7yhyEWh]o1hj`QO2Z;*uH_ZmcuyѼ:.g܉mS?ϊʆa_b!E ;EnH@:ժwˬ0̹l;U3'[nEȇzul/y RQLf.&SWZtP>DKF!Ml͏7>$k-$9IqON"1 mBPZkXP={`ӯ-ʙ:+h\l%]J7// !|G CHB43d}<|]  Մ/H /S=r6P#}Wՠ*Dˁ0s['(ݳwq͑5Fa_Q,cl/PWMdk3=AIB:`|'zX-%#^f1仠.p_AVGN4ct?3HOyQS/>Ks$+>^gfp{Ҷo(XOQׂ˿e3>wGDgdeXjr-i`<4-I|;at6c6QG~#㌃LjӞ,!| "w%'}WnWad]+Pc,d/ʲv0=5SK,[~@!,-0{)aјpXx -L#s…aJ7r!!x1DǺı dRkПx.X+ima1JX8hC`C*H4q 2ȥ,)>C>8VsiIC&{\6b|_QǍh⿦r%$ZPr0x7oL ɅEb= ԗxM*^*YGI14$$|v]v90ItҗZڧt4 QpY"bt[:7<6PCO 6?vvJm{ n [t$ct^:0!'#桳tq~Ώkek]MAlA~u⪴ZOopG˴oj4’n]StTwű>wS+l.X$÷6D58*[T=_)5rJ h!ŒWRڒxz yfl#9tp#@tXoGitS7c\Tp)YaB>~]:̮%^48HB͋weiO0ZČJt&ʁ\@CaN aq[c 0Q|]ş7b"w Ӣs5kupT/';vT֭B3q<}n_ឰ`PK#)wՌ'ty~Xza4^HWvt%lm9%r.<1nG#9RF[H;eEW'3gݔ; a =)+M|xmJp0U PsKr#:D{[;u=޻Gf;wy53MQQyPY*H\I$`CvѼj()7 D[{%Ƹ a&RT&a*WZRD-BG'}kA'(cvHd=mDĦ[UqcԴrF89jdPjs┹{˟fI*G15xm@`{>}0 4Dh;)!qYbT~4TxhjF^ɼgrt(wvugt+zb6aG3P{eW@F̪M/yH}3]w7f -dJ]}l&\kߜ#j̯sik̇wtMRӚ F-4QϦI#!OmnGN^zC0 7*i:w* ǘɘ9!_:ʅ3 l |*z.٤, vIDsMk2 ^J%c/&)NFG.y[ Deb}l-.U-zpmc2xޣ&Cb=_hAQg5̰2ϊUM:V"kʰM¼1u[OZøvZKT XՉqiVO+O4#7psr"ΏIhD)^ӽ ^SB7[:xK Gn=XA:cGMz5u[;rόӟ(d3˜7G:<ub,8YU?E§-b1..2%őNh6s7^H4ש%z턒3b7K5 M)FMZ el&5Ad7ݼKEW˧pk;xLUVߝgt1ґ\ K< )+_`NO|SBoπO>l6-*=Gn$o]~=I!ktψ9AeYz/+̭ȴ{2`k{ލA/Hu"_h#0{%[EXoꈙXU7E7>'^W﷦]|b znzx[#& &Yك7, !O#=ݫ˚N] ~бp3Uw/_nn;+Ʀ qp7dR~sZ;v03K_H}zpRmG<=V&ob jv}]`óC{Yf\_񪲷#H[G-^_o ( KA󆨉C#oc, _OS{oMoI*`3D'ʵ5:yA1BS9|ΐ['2OBܙ Q}|8sOAbN +z}Bq.I=U wƟpW}t.$$q/Kcÿ I=}$,K$[r&+Y,05EQiHM*oejO$ w^"(jҡrւK ;ǘZvR} ŧo#e'E(1V P TRs@sQ[W#jymt,)SmN!dނHuhc yDwD)Sfd;mzo3>NCE\.GzgdOmXd~@&'Je ,M}}KWxI@P?Ąů[gcp;ts.nC> TlƐ\$ :lYS *ZHuyW} 9Icd=i+o-kLXDCڜUTqu{_+|1a2 G37hhq$Ur; BIm)<8ci;qN}5eN  6F6}spz¾r=HD,1-=t3gdpd[RUZ52dbp.IR>QI-P%$]n,?{oܢ1~tC"u]֧=O3iԆk):a` ¼޸J#ҟ$13wy)Q=Ĝ@`o1d3GZh8=wJ9H `T.ĥZĴpwo(F1ܕ" ]Fy!s@5E¦cIT䲺0"Oj +Gë~k1l'0`6|3=G3 'R1}7E>WS /v<*򚮩t9c$f=-3bvޝ%Rt ASCua~؆uqXR}tn>;lc Sשԏʤ` 񼞐6"6fPkOSk֙+]7N}8 U5Uaxң\Z;5"% eο6uV&] :|D61Y9h';jVG0䓊.}.9H#aיQljg4ezx^Kٸ-:7x,W[3z'~Oa"7|lV7uy |Np?2 XPS0Y]D=F'q`d㗉5L)˚:edzP|076J nP>V ܾMTgQ!RCסzZC2 9Hb[s$>_\ )!_ t0o[OTRCX*y?FfWyA9bKSJG`\KeShI= |4-MUjamČmDVjm ЙQA iuҳW_i"N ڙ_GãUuvuD cȖES#{0%# mo%:ŌđxXr-q;x4WϷvћ@uBL]b di|k"}x,5v}9ثhEM/̲q6x(Bb2K}S15ъ?& L&gSl s>gKr=h6vft24 E'vWH"YB]za-di303.NCǜ$hsi{ 1 x,ڬ%+ω |j,ܟ.qr ֢d1F9lc}Swb1[lnoD!OcY3WyDv+LgT8x=bbxV|ݏVqS}zsa nqs?(ceKi 9Fp':41Eq\{ Q]l; Y?d^ c(PF)S/YOKBK/߶O[32OJ~ٳkZgCGA'izQS"<@!QYefA-@vٚ1:޹ YQ\Muzh;Y"XVX;2XN9նO7߃,K^OԾع4AMU4vw{iβ,rK V7혧e44PP&υ9$Ih!!lW+<|k^i,lLr2 g& oUj8vQؐs_|3zɃ|ά@EBjmjK#F?{f;1>P^/߱Q@!"eQš;0VRjeeIS83e0:(^"E8 _4zopOV{(BC !+G}LR"Ni9m);q'"| 4IO ׈h5u.q-6D !Am'X?.')\61Pի5jq@}Fn tB7'tq`Fۧ ߘC1Y=xCnvyACkfsB*dIғ5Nzw=*(uF\[Z t{.&?z@*}[2+ |4Z.ʵs z8`MnRL32X L!ѓ ЕA4(.hyg$х0g/ttd kp;Jsד .S_h^OL&nNH<|jv am+yK 'NgDwTUF35<=䷐8EifLh`˛em?V^J [?9{9b8do6Am/*I$B`SUa5WQNHRʢB˛^Y+vJ]}z bq]7ft*pj%l㫆Dt'ʫeR|b쉡;ƨ(˦Z8(=qU6fOd@I7I734+4x;#11B0,D?MqB!|z}w^(à W+S7Gpu"lH2=%(JXQ ݠISFB19!C "YG˪Kx}<fj%2B,Crx')'F|8${Fa`A^|ਡ 5bW'"Lr^o]d1-Rvӎ_C?KKU O1ZV["2WvIw' ǻP5}u-L"%(scpKDaMHZdU/QFܬεHq|a xAJm̝39^|я%U^ 43 ͵'(6y{uLgօHR]8gF ]8Q^p&  `Sέ6A@lL6TA2cwF;=%T אE/ZC?m)AEf=pD &s~ܡ^Q|">Wx[im]KDigRGLDI 1z&;o;ɪV=lfg9.= J*BvNJ|&%:UQ  f):OE/܍r,oU|,'kυC9+ " DjycIVoޞs<! tw˯N~l,\Aast>.gBT FOEi W jKyi=ݦ,p›iBhW@;V٢mCvTQCNRED$c7f;RZU#t3 @.$m6׏.ľ˯8‘^=+etqf/S+7#kQk v_z1B J "B`<3 >A:F *kaJjvr ]_ i oWнǾZnu4X|! 2®zv̀odP8ޅIFq FvVQ'^CA{{NVLpиkՂܙ6-C)m>l1:bAbmI,RVp% _g2cXBXb3Җ=ۮDu6n T* :>>q-Q! l RӉc5 27I3<{LD_GZ"M)O_Ŀ`̎yp'oQB4~yGMYh@ֱ3P #*$ȼCuT2xBjVkT%3'99u/ЊBRD GPq0L|_ͦHωJKq$H.1fN&&&X+KL%1z.2N}!3UM1v)iZ/*8؟w>oOJPa{ lp_aղ}@zAVramѶmC<ĪmՉbq?H۫]^M| /Nנ~Jn5#W]ͺˎ.$.]OO0.-[=}NΡ}dR`= I2!Ms5QYAi;^ پaY\foN[ O>-˜ *_UrX;r0&M3Wi(红f`6,sx>s"3~'khagb `u,>׉W 06cHz7^5`_ط1B%vPE.;g#x+Qmp"'^k-InvH  m iI%!F_90 lFgNBs8/NWDd{#nNbpBo8J֋M{NU |;b~-̞.&Ĩ\Iuo<#֗^RU`RLCXՈ٩#ٳ+ߨ1,t`eNT5 +3*VP Nڇ`܄@Cj2idhJiT`_U],%g0fǂvF wmrVqPjW\W kFޛ&T2*%mxK6K1pi ϦOiSK G{wb払j.8!m³Jv޲I% \D9B6|^h,z8j1y>yu H8 7g?̫ y{ \W՞ #rU[pF`+F(h|k:LݑL,xT+Sc!L)=G-Tuj"#.s$b) ʉxB"63i+Ǹʞ8Z~R,yl/AlQsD0U[0@#'3]=vѝz,}10Rϝspg-}Mech7v]K9<CXx}}ɱеU>>j,;~}iæ'8a?gNٺGIuszc8+|RԊ8vSP E="GpN ECpb$(] Pa+^Abb: $e.<t9B8 j@ymZrSeEP{J:ק:UWquϷO8ȳ\L:/|ccv"{b_շd*S;?sJ"IUiP)t΀yMy>%+MIL NcAvT.[1 >uL6U1*j%Z,%YzQ-EXT'k5XI)țVK/wɊ @xry}(s*';03 FJQ^9p$WcZsR|/KQI{\3|dTݷB;Y%12r曛]2&.*\uJCMz~(]8mNv2qs"LYI*~1 Yޠ*o\[> ZHK#%[it50h@Qʚ*0,D'tƂiH8Y m F#I"X˳kƤjR]FF3%zL ߖPcֻNq57cv_c*Ϙ8 zi'ءXFPC>=SgLJ=Hz7՝{Jw 6./~pVb~B1YʐM%0uF@ {<^[zg#vWJX]s Ex\-6~`?"fvLJ$;joTf2Akwxn.DʘKr5i߃xЪaf xuKQ]?o/ $݊!.-oKǞ؁7O_Q*mP}0D{";ubi@BlqG2gH0# Mh1z dG `:qFH쌈B8>Dk.hb?i+)B8勌GzO=֨[q2[w88DS ]Д0BD3+5r] ,c%F g\QEw-3ĦS6PjpCusZvin\NQ:99$ՇNA/pA8OW7G4 Qzd:CB zPsJ"1])lKft%jr'qmS` lT+DBo 1YR't( 5|>(h=F pWI[΀G[|RHy$sc{B:imuy ݼWCM>1źϓE+%odݬvPe &d/LR<݅͞@sNLȻpE NΦ2x_;vn q?5NWͅ4!; -YޒONsI=phÂP+*RAǎeىXdCSUɥӈk0|r-xy_Ź ("J3*g `z_EQߔmi0S]Fb7Q H-,Z9SC˒0L1QmG@{zQabԇiq4iCGI v{+͔:INPDb8Kþ##x wwfRz8_?Xj&XHm]nK_s܊xbj9o,uPb_rԓG7IbNsIFZ>[* 5rvqW5Eٲ5ϐoPSԙ}? v[ߍX~i~Ǿ ҙz3xUKZՙ Q\. ZyJ;V`üC3}j`$Lc9LCfڗ6#]8g=l GyA4K&"C./n?TY=6UFo e/ 0{ON3A3XN!ůïj}``jrv;X9z(kOO!BD*^yJ-2spO-KtƓm#]]A*1}P7QU*`l0ƯGɿ$J .{b eF'l;BݮYc )x)9Yd >;0k 5(gp_ʗln2vj-jO/ĊdЙ!amY) ^PsZDcULNjmea&ZWGZgAr9TCP3Ci dF IҞZJ볁ќo {żb*)X&/uX^o"HCag6SNE""@75,t m9-* Djmx- $@k4{5JX7buGMʵHH#R.~ƴ,X4ef)i)iG)e9GeQ Zv@kǚHkŽC"'m!D b9j(kד8΅bWu_It0r>Eޠ[2=tbSNf pk2b,atdEVrcR gD.rhAwzBK;!m1v"a+sf_IP.erN/";.y%%kӡ/6>QwYKc'{_7"g#zB?WtRxk.Q}M)P1U~ F/1cAdئ:GYnĨ^+[oj4nMMkM5|L*79#ۉ*f-iNz*h<%^.(bé-"-JSFmZib%cCn < X2KoB2I+Y`xUg}?r8$3^A-L L65 `F,f]aB]:d+W RYɤuG A}K)< w$`R잜t@t%K~À٩,tEdSMfBb}ILv~h8lLz2RV%?9' 21U"%&ɐhZq徲Bz jA矂ѳV!̞߽hC |s$+JQ .&vA6q;:+:r&> O2{q:\yOr`3g":NͲ^DT7p@C#,u2x+xI*x}&.#4`Ք=C{'ٍPdb5՗RmU:=ohiR3ZuÔv$U )W<{% C)rKerp~XfJ~4l8MQhmpQ *"n{T߄o,\GU6hd _eFMimI V4SV2W/L;kRgq4NlmlH7*_!,ˁej9DRN>w]wzt\>>q/_j1p@ w[A@Z^x|(~zřeCxB`܀som ?v^!qa |~ KR[,h: {L%|8jBHuHk6gS`y iOs'ky]ysI`6y&3fçje" btXr;yfY}Aa Ul Y+Q+Fu+\-J5(x9}H4.BC^9K!DaK) |e|;>d6iy'0FORe/v,=T]L/R/Dcd{T- .K[(Va笘pjנZ~#ۭhN7s+B]L*{1k#هI iRZ6ՖVNNw^}uz~f&V_LNNt#.H$ -'cQ\ĆXuZd㝧Hf"ڋxmeX>B@VEQ] MmSڭ" ű&>쵑Qw5k9Y{g{*d4M1mT%RyN/ dH"ۯ:64aAG%Ny>nHtlh|j)bK<o5nˋ!9ffC1G~@":S=b6 GF:;rY$ 4BcW_Wd ژFޢ ̯1msLqR.~.(vE =5܊fLd=ടb^3w=_P !5P>6FCQ)ryR8*{m-/FPiJ[|=RPMMvM4]l;)/AO(o0~>k گi@#νȭ [np)OF&!82W{trfmYQ 7cvYS MR"?95 SaR`j$a89>CQ֘,xI$XLCVHpx?SR*`z^:^&aZo#,b/!t|H5VSf# Oս dz$fkpL5})3CI=/W V8Ö](h(dQa=fv"ˣGHIuB< 4tY&0 IXpu3>>zz5(TH> +EkS J59QcI'z8Zy0\[}.@(̅t+Sc;>2'%>H);vf@vmLS$vmo.aӸ(to:XYY3^Ed~%zGǀa _!C"x2 ^]g--jTPn}j%t OA$+f:+s~4vӛ1ôKIn"Ev8zE<0#2Ju 0A(uU Z9`zxYDZҷr\6Y rг>%3ޚ3cՀA$+uEa)wUL)czq@_}03\PЖ}RL#muXuDM=+gO S9]A0ngd/[ @E y&Ns%Dn/M` v` b@Y;m H18TݿkɲؼNJ*b Ɖ.p]6|U s2-nҾ9G:6:xb|\k؁X1PՄ2B/N' s[V*%.A;o,t`u3 I}"7$/ oKf ))F"%@'& anb96n#-Q,w![)\ `1|.ם?qY(Kd3z=!IBZ S䙓oc22ںwiŭmNvչu qhu-f|v;3k9 Aޓ.6ߣKp?D/iBJ;:, 'qZ=]zu2&t/ 3 . gݮpH >ǭOrCSJAۨYGp'ǯ|:_s{{ 8Ʌdw7bS"A_VrjkENIJwQTU}}. ѭi!tEfn ߈y8L=瓺P)Uw C |AL}3 [p>hrӥ 1UIr5-1~G]@t!q؎Z& ^)N#F)_/ukҗvN_q-<`ťg&w~7y l]:@)wh{ 1:'T_ʥ]҆I["S%#/ G5ͺlBouãL`oUZ#"mOꤦvsb9ww@G`w ah~!f w!Ek,wi8N{sDl)Ίa1Ԗ iLPL'J:S SNA?T40F(Lr>@0/`>euS> Rggݗ*FDH tʜ.ȝPgTxvfMb:u4#GR{/-IsY2)jF-cK9it@\{{M8aC-z'ԪW1 1i{B[NpC~aՕ13$$irKn!_2ElpB׺{zZMA÷MdkX|}R 3ٴg[$Fes>^*Ly<̔۰#и׌DտIZ ȍۈWMUHj߷b1B6[~$#7I~Bjh&iGUP-c{ZpN!>Lk& r>=,;k,>[O{E=O̩vm}Hл {S:Lc6y~st-`wQ'nNڽ" ̖[ K3Jxldʯ8>"6ڢrgyH^ zm9G7d-,&#$%dlEQf F$'m}"]uλVO.ZvsP'ĕ -~VOqbZ=#% 55 Ȥ?xSa,,l3”ěk#^tb!oG^5zY* LD[N}(}kp S1 Dmեa}lf_U2g~QyZG9,<.\܎&ZY/u$[pLWh|&%k#^P_$~S6Έ,jك'.SrCڅ>QG2ÂMUD;"&+vyaAgn&rQr6c67F9X,-Y> : VF:Y K21cw_[͜q65ȕKA [+ :( ebTMiޞ^Md Ӵ h*N G$.ʓK#9E'[tkک9us;AN&^s!asOxxX5Af@h(tIZcdVa9)8N!dnG!E5.ʹ 2K 18A>O_P9^W0/xd$DUlsUL=llu/:s:Ίq4hZZVh9߈D8ϴz=9\/j kC 0f&]Tj_+AL1(x.jT %;,0ɋ* vWAk$!"cRt?h4(4'뎧dr|:E#K߆[NAy1_ΞȈ UP7%C 2aŃ?OWlN!xOZ7E~DVYI[4m-'8t'ΧoL|)4lG`o-,6%"m+$ѓRڲ7ipwGdU2BVwBnOZJu{oܛ>OÝafz%p`:yhv.}(cQ,K͆j_.K䎆7o7 b7mɢ.rB{C]:*݅K_b;|CNIn VFAwv?Vz{ϓ>"v${gVZ5ti!z(]~| KZ}/~?*yλڥ.Z[ըRq1-WӍG&nz.ϚY!$HgV;9u+X2jQMT/q^k[mOYkj_F6N$-5KJjv=[lpVJ0Uo5z{WѽwJJeoNYf[Xa Z >:1W88zkrNoGc+2 !'>m޻Đ $>0*j `/TsKyF^,EK2svi ?vC`oq;!eX¡x>ɻ_W"mb9겯~y7jVD9d+,_ 7q_-=X_:GҀo(|"$d2_~#Z5!%fN[x<ic[]h,nTnwy4oC*3 Re"v$q>dl^ؓ<Z%Z^2mO 0oi-U|:}ި=yt &jGEdMJM9v_aM >xT}H^Ȓ 3 PF'JW/!v4Ldw5 ~$_OI>]lJ,i& KOT~>UGTE@Wm ͛q6J=#hA8o}9ò` ^HC)?AjbK&q }F%?ð7e*p)-7eB^uT򑎋2'ce{ 9Oz LO =D;(lnc$4f>[ŃgwrDYF&ztۅ_Cs`rqa<qQeU9༁Hbd}[~eqcMhna,0,$z7@ 8TWT?*pIEu y:W6iBx?> cHa~jf^Jf"HI%wL[k^z`@>hS\,q^E!%#~>*Lb&\wϲ%ZS7BY&i!s (/I :{ӭa|5'"7;vEBbk:ҴǨ[i`7SC{2wŘiwXd3U#x>_yt'9*Mk**wnr|ƒ3oeЀnL+Z{G_+iW':+Z,圀w&GfFSN>ެ T1I:,3e@.dkrCl7NYhE'?M8 C1l25.fj8;zuQ6.! ߊ`E3RmB:u:Q-FFnL2DJV[aX턧 Ӡ/i`-md/*:7[ŀe'5m{iz r+rSVRs1q.\σ/B?)QåߚE 2)MqfmEү<3v oYK75˒qCeW2llă@Sa~}صQxG9t;G 5g\/WaO\mE2u\%rD.!}?j&+I4{Dx#U>͔*?#c=uЊ'W}G)"]J%Khێ n~=1LZt5ǘB$?;>-QyhHkCH6f L#i=jlLoPs} RӉZ [W}:UlMr%0E~kDP3$|Й%2'VPQ|=Q*3i)Ɔ4,sfjB.t.ur usEZ[?n֮fz%3ϳi\_$4(_x4 w\f}Hѽ裏ƣ˫Sq"SW^٢CbLx@f[݈v^fBģ~+DQlkyϏ~G32+qزzq8~ GIxc+JR$*Qlp,H!A`a`-`j5 kfܟy-|}F?p!_ʲXU K Ss˴kKb諌 aUu89ˮ7U uPs.dI2樍 _2_ ]IsC2ҜOáC͇="fzϙu)_\%wmDd< :'G n6yBW%UV2V45 &ńeԀ~cr╣Ba.ۅsY<~s_i뀾T9䂡yZm_Pv6$Z(j2ɡ\լV 7rCs-q:'3"8Bp!Gexvq~ )u7FSY~ իw+<ԙymUFITޕtOPc@Җ1d@Q5h9=3v+RO ѕ"H2ldA9 H54_+}?/䴾->#g:5iWO0@_RcYJn9.- u؉Vy}'~GW9L!:<U}9-G;1 8?m]KĽFNn\E sb.g/cj+xL ;K$3ʮ?^m@ )X\]=/g9 UT$j|QW+!q-/*mbRQ |!U#Յ$3RU+n__?R^.u)l +4t,<\ײ;\u;c}?MT y7ƩT@+ɗϑ6Nwwx5`g7-1̗YsJ:Ax@ = Mvy-i}Ȣ3VCW9V)?Ѥ6 ݵ^M`S 2 {?H0JwK:Y2e(bg/wlWmBxO .lR QEJ3,*җ]{p E#"*t&v|HeG^4h U/ʥ&Y_H~_wF@1*jܫ/Y_zZ8|% ŭz^OTy]j H^do6-ZHUx?d"`@ u&-wEYX'Z餀/Ğ>ly+6Ts*J0;9=Z@B a8EBr6!BҒnP g{V*cQ<&/ |tDr@#WJjX0Çteʨe&X7H[;{,͐><ŷdKq(A5RJGM#dnR1cʞľ=>M*=fR4.GίMBm"D{ ZJ0mk<, {mX,]ܾ ښՉqsp6[]W!}䖨[Gw A8h}oM%R̦)X}6| # Ag2{b\ús)?&/k#TY|.y6ń+#Уa'?Saw :XPižj\.n-9vDJ"-o\l{pLƵmбSFdCR O!I!Z\g{_WT%Jxvͯ@'v7~׆x*>9ٙ*^ۂT/D WnI۳^]QÙ=ÂAqta=gl9O7F1q:Ј*bIw}Ȍ O$&e-3QE0RpX~҉lcEW5ưfs ?#ݕ#Ü W୊'CCĴ 0z>#H[҈ X WlY8(?>4R8KQW&t [l={A |jς."Շ./s&L͖EZ4)ş*nٞVy06ͭF?v6͵d8!;J|b2ߑ9kHȟTXoˈ#7jcSʹX;ܨI 9stt?MK`W%0PFAX@-82e~`~-lJ "`{,ԯЂ7Luk [O ^!]"J\;O&t6kIO}}\7}N]Q0R_ s/pNZnmQr~Il- &.,* E~_ wB}zq5 X7VNRt@ >ru%&.F,0Ȭ|q)"J۳o[{_yt:Ȥ>q Q!k)Ƭ8Z;wxܐ$n#+w%GԣX'&Mw<]^>l@"._&HazVX\T~d$˹[R"ַEaaRxˈK>c\tFd6 ڥ;]qQ++䡲 &QlHFi-'0S|-|ڙf$>}?_'mcJ_d;$fo};H>zḅ^Q XȍT % \ZlԢs,sz}ČVAп6;K8}id`BC$6U6<g#&'ۑ_,nm  ?g 9S5Ǹj7*ʘyH >!r\̖eeo:|YwkOm? v;Ԇ"]P([Jt6)V;{kr+kn;Mb<7K7bD3KR^C!㭳q>~I7P緶@N2V{2⪳(f`h^'0q&o=wERɘ^Gڳ]z/MwS`6 TEWX=3KyM6$^*f?xvu@1lwv؈KJmH^W+rki̭T5NjJ`iy @ BLH "%+H5ӸI Ȕ0 :lnЀ3 D\Ly;^؉r_c,3){\]?.Z.X#s"BLOZe`m,SaϗcMd%,)*CJ/VO+ ﴏHҊNm+̑;o%(v@ / #)TWjc?uik4Ͱ>c\5v)Z{M@FZIgIKgl깑p&TeB8nzv@%Ep&RW~Q"ْ"#3x}8Beό٨Z2ŖZp0[1mÎr#>L%KKpf4}޴Id>Km4S4=?LǩڡOOuR7#t>nQ&+mLY7^&?l7C\.{R?jA1Ef ,J+O_~To8Y;ukL=ozo}BmŻ΋% I8VU:pp{4IC>If uwH,\ށ!^qryu,%N_17IL:M$|rnz1jT;{ ?E㳹f5wt+gm=T9ݐv+بj_.rPzPi~n@^p¼B䑳YIRes >}"Րj~ uBM+[G -)vDFaΗ@Waʳ&+Tea)f ɔlA 'PL"]kavt;`;b+kl_1oYB "X;9!$6|{\H[Hv,Ȟc|,KgȃɋHsfV5fgf8'̞#ph] Dg-"e5fY-?9ΆwGn#ʖ-N$OG!y@?NӝE 0gteuj_0za~bi<?kxB2n/\{eqw;At|D(2"y2ª(rYRɀbޝuguO3hŷizӡSePyfSI1!2eݰJ7iOBX .`, N."Daj4fv(B',y 7Sve^bPm/"Ga;YZ/% PXp]m Tʀa^BOcE+2P1@|:gͰ9}6*Ds9 ;7P} x-hyHj}Jmw`&֗28#t3Dž =$ &çL93(kх:zYSƀce t΁RhI,rGCDÐ<{) p~G9.v&ZG]՘:E4;5 uxV$oZ|< Qno o B|t39ϗ҄-ʂ >c}!_,Nht"NFrWe,f,7óO"*@#â^J}Qo&)p|ܲ(Bܯr ~c'"l`2jܶ>l,>7}Ѹ/\^4uQWWڑ$ƨ}GI-[)2컭{r<Z 5=,O>wʵR FB)^L8 6YdL}jn7N0pǚ!6⽆]9p_ǐ Pi^pE\/:;)n%mUFzwXn;0FnZFDkD.:aئH7bl"Dqے6+j<141NŴ:z,G4c"L\\6~lĉ&ƳcDC h4yivjg#>c>txn(DOSh1:kOlRYӀ GfBۺC-ɭq4 |XSoxk!IӢD>n;EWeH^ qAq qS*$hjsx3F:4RtgfhR־݉ U`yR:<=}'PH st[5L-ғ}Lbt\*rPwÔ>Gg0NRg^WenQE~>+^H.>Ljz GNgN }%k}rym m8<3u' q''xĻ@ʎ4@w+bąIx"Z/Y=Y]dй? omVB_Ro#aiXkkOf`fx~pWq$,&zl)VkZZY5-cn< FN\cAqS6962k:OӇpv0v $V<<ܕˈ5a+ʇIj ÜSځ \9odӽ@" Sw^H$vﴽ*E<h޻4C-&D>7I(w .q@;6yy1aZ  v΄ғ7unkq&= P";XWs/|t/{9~%4s4\`_zX{ȷ߭3%E`s,8ƟO@b≖[0~Oi>o<>)+9EL룙g^G?{mkE:@9Z8@Uc[ ɚo C tJ[{/ \o 6ATޯW1 _ps/1k %tݞ%f( Il*lHC{:]sdTX<}L'b= ybhd\!=Tjg>}/"Pu)XdCsWѓNY+ؖŔ(ĝwAӯ}uEhwv(UM52zv'uJ"b)@s U6Nf'սg^ !dpfr*K*~ iM595.p7aQOgu [PŶ6'08x+FRy%Ĵ8~6^v.#*!T{sS%Sx#UTs_w79q3Ov)D:0+$="ZvurQye" AzBZ-.ԥ6 g4}_y~G' v4 D^z9je[Λ9V[!=5N*Y +kA)/B&Ge^+s| t` |]ٞҗ~bĭVɬDཌ!&'WaEZ paVSq[7j'- ym1Ȳ^ȯr`e?nEvR#l4ݛZTЄ-Kf4[vZ"xܫc:=#78YnU"s>f(A׀#Al>fNQV7C 4Ҝc svl,_\i/ `= .c ۈui xD& \JM`9klQ''P 1R ]clGP4[3:Cˑ\yL~MAӾނzJ lii$<5^ JyWugz; 0Vy~~]NqnZP_n{/rv-WXglZD*Py6O0PO};uE ̣Lm7'4f_HaDagj6|וz6f."u IQ^@qϬMt T8ȺeU_C5ҙT̿rA-:$P}pɪ_fB*&J3- kB'xMc@@~<- Kiɮqi| iuoƻXqcne i]:%|j5Of„d!es\SBo_tsPږp(t`3p]DoC uLV^{u)W-S.B&_\/!*j;[9v%(5=mC_m{QzN&r q7EL~/tvX uM`H%֤YS@C__yVO;("_:I &fnP@Ř13:@}x8[7xlnZ z;ȿ;}Gt> ki0ꅵ{dǤbQ-Nd#7 U\vq7JzLd@CX-h|&p „ Ɠ9yX$MtU9`'z=J>sNL6=5&Ѥ$X* Z܃Ud] t)|#4pNH5`/*jMW3bAm)dghBsu\?z៣q2}lje# C'HeR[$ |1clW`lR`o5c>씤Jn$Շp r+(ЯyW2}n'2`tl8ݍc.+!R~<?Pn29DL S_=-6l[Y؂z* ~uc ܨUB K T.xykG7Z¾936i%R44$FrݼJªqg}2mME .cJChϙ)>5*Lv"{r5sWmoQD'0,N È!o7/ ^~G=#BXS{;mg-@' +г%6c [Pd*3Ί|XaDxhlb"㕛"`ێ<¥+tw.5tAnV(vƺ!J+n}MA;c tpM h `N"-yk=NlDk,IT@}8,GwUcd2hbm} d➘#QkDs~2 G_9Gܤ.9 GW+Q5\8q=d!XR׶\f9LNӷgVtw]m:R q!^=rL$l`Ex%~GH>Lί s ]1[$a"8ž^vKa^ʅV5NO3Ӥ=9/{>gJǃ9t_*/f\=dt>:o>scȜwҀFX?ϚW܌8; ׏xnJ}~V=T ic9q.Ŭ_oiQ*q:Y(s6A`6ᵛWRGka1J_#^kwQ"SWeu4ެgBJIR~Ho vxbؑ|82Pe;c̖vqwNbV?p?0.75~`A4ј~XAn8TH r-)SVSPBGBjM|EJ p>fжFdIai̸e,,ooi>.=1{jB7֍ R[s@v&CIuI^MNLM o$5Avz%:HI5p*^rf湇!ٶ=KHU'۠i&yC܍bᤷlۊoq`#sDxNd^,0RŒ&`enؼYԂKͩ .:7aæ8kDw_U(>PU}Mx][bLGqev_550cغ%ĉ|ghf kOBJa!eG܄kﲴ-C$%@"BN ~we6|鎎+Y'g|`Om(v_/ZZ3-  '\jyc91*ף1 WKMqcP+u4G6o88#$4ж&PRHr:)N,Ĕ2f3@_af3$ҥ$A:mw>,+@BTP/߃sFM6(M{A $vw\9HDM(<d!c^0,H{S|$u*B~}Ҕ7ښ:$㿳u_F^W5\u36NNpV!lbmd?. t46 Gq#6ELed\w"nxJp+9""ڧ n)g?vai 4Q2ƶAp]젗KR4+JlY"vT~ T@莯Z'֨0rqŠ<|3QiMBXf]%}ƛ|xEe2b:'3ub){@-~TRo2wr[:Ugħ/(_qAfe'*<iF+o zU]>dlsD͎`Q6A%ûKDX\9]>q X;UvM5k_йSpU{fKl| X{SD‌Pbp|f 0Luf.Zo JS̟jRYyB#7콕O~c &n!x=R6>l0.i#:[9"8DiwnlZ _bK,7ԻA}bW:Dwl˂ppٰ~zHtB<ս9"Q1LzD_ K(~e`tf>_H$t[zބmduJikw  Z(uZ7Y/R@M#{KPnhYy>4Aw=)Pт}XN&]tRlcǸ6e7&Y D44w#S#נc D'w1K39o5BH3?'9N{ {x?ܘ|= :qGt'ӊ& V7ʔ8q:,,-܅˯Xo ->_n^w@^xP_,g@&ޞ,n:ޏ9Jl[.`Vubx)֯Rf/I+?bJ\;6:]Uj/ #+x Rr#CcX؝CӎsqzSj|)|?ɵ>⃎fnѼ)[-5ZNUz2|գa>~3@nڥYH%>p)vvZz͋╶E34$Hx4E#;aذ}F  "APycR0G/H9w|BTb+m p>=eP61qfv acF5N<:o pwJ߅T"iUVTVuW6h{_4A/P5<-Sq>D6'[Br.6TL{9n`s+|߲d"s/KS6NK9$ y5bQ9EϫmCjD`>{T&[~vD1?s>, Ї5&Qe#fNuUuͣsq{FtccOpV0"•wԲCnmO5 3$=0~S !TȪrL25'ŮI1x}{1B%nu0i &8Ľ iܙsB@/\N+og^ nh:fji?d׵6U/yZPju伵\fG .;k(G? *L%A IY!M*UE>4.5$9s0Vsobz=ئh>?Ⱥar"U\˰[w͌키}{FX?L˓,@GT{JUa/Kr2AnˆͱCm OG{#ZjCb&tO{%xEi_̛ax.oZ_ڜ>&g*x;q%.}1C8)Pz5z!lޡ(ȷ|M.hM Yן4E Ei}P*?2놱}OF350[_(<ѝ d8IA06ai`'R0r!xv6HAΏYo! 7d xʹTgRUn(,2c0٩qBm)ln"͐FK}O] Nj(dη0noLk@V1F1h.dvWT֗,0/C kfgD8xBiq!xXTF̜hɘ!d>:ͼ M(]r&RM ȼ($S}M7 =oKCQ"ׄ, =ۅg))J[D@6= ѪdO!c}֛@)8?E|6zLd1Mkm^kT%j#o^i8kԑ8xD0S5DY%66ٝbMǶAv"!`ƂkTkn;jiTzQfe܄\0 -J[0eeo$f<xĸ azR Mpk \7MNgJmÆn)޽X63GY U6+T%׀t| acM]!ԓGF`VwcǑr<9O>s6W  +7%vY[jIA~4Jȴ?E< w=n@}f o__.Cz"oW%pzqx^\y35T-*(jS޺| mQ>f1p!5Ym4{O'/Z zoRFfpXrt%yLA}:XTa^<\M`fؙTgSX 6 ޭQ)n1;gcH%˫U!i$ Z,e,c+kP9Ky da Jdmc7A&G_.`fk }O<_[7*cH#%~"<ťs[ۂlMzA^l\~E7F q -,tg>+B#.SC>ܨ6bvmHoVՁ;TX}Έ*$[dDwm!~1q@qm4 o=`!`B2珓҇+I8~V;̶0aQ\lAYPjq)=x-Մ4[IfozM7(@.1煏BJΩҚ+q(XN:M]\"8$R/&>=Q[;ip(5#OhP{ 5 Eӕ*6[Zւypkj}xϜ<#(R-VeV^X'ti[&, 5o,~L7@!N]G'Frj4&]ol5g&v2hk#>;vk2o6Lz.r7-F5__^`7gWg-hp8A0E뿲L*ny^}9>g%/> 9w${kY.C :Za̧ѳ Y"^5e3LQJ[ .Fz94u(HyƅZ#~X[#]fT>M(0dʞ5ZDm*#rH>ǬgGGD7`ˑ@064QlsfOR%oIͱۼǽfl('kvFI9"H1uMO*|H:em#amh錰>e dG4}†{] FC#рenkd Y-]?սn#!˚$48/c; #(pXS?Դ^ǻþy] UV{,ǰz>1N ML2BU%d{/>` pN=|:6aFj#JkJ3vKeEb8@M y_knq46|͒J?e[ŸQS9 e&y׊5 v5YܦFSP l7IyŀH;!Nf A(Fe]9lCwoVWO^md\ٜ""}e9 j yvϏ%bꨁ:±_L2m}T_2 5'/ܿeh)mnq1nϰOO0ObĦBc6m^xtv͸^^:Gf1>U\!PD#2@LҠ0DmO\<sUwq_v?ݐ-,+/z҉4rjVS= dKbq)OOM2N򷱔aN&cޯzӓן#2OVI#Ef{LV幇HyIn˿6{ʢVa VΟuoIOs~sqӦHB6++gZM* ޙ.&(NZ)7"ɲ02yq%[fR^Elu t`~Ssߨxd 79uqʤ;{3$OjY_,De[l@ˋto'k t@gF">cˇݲYN~D3 &OK45(]tuHh O';D/g'^d_&fZzg| 5tt+r"a_܈ e[bo \_ -VvtY 2 O-9rtKpF?%}C̀jnzgo`Mk/P"ipQtsdAg_ٯvו.8*M^ t]8+* u; TAuXN{%5D텢bؗeǸV'"g^ }ku# O}PX|Tv] NH5.%z"?οw6[;u`ӯ-ngf()Mf;WjYwq?la%T%J6Kr%Jp}^{yEFL< M.@H1 #[#fPe彝+d9G|y;x^eZH! ܼo&i=&Rִ1.*7 zx'b~o/H=KQ@U$e22z`飇zׯZ(T_m [۽;!p5LYYV&+c r,O1IjjĹ t$f_͝/$Dihy[>{x4u6P E7iJSfivƈ֏UN8@}+qMΥ9jmYe-Nc^y.?(:%Ǣ?p08::uJ~@PjDK$6("Hb%~Jev [r4"]xܯv=<+ zFמ,>Yˍ|-7ҝηRAaqTq}.}SImofCΌtz4"pġ-]YRuHX85~ЉزD@~K*:WTcQM 1M]X9zJW?k~8 hNw`-;#)ȍ3x#WuG+i賍J::+7a\Mt8-?o0X>M!aܼ L5UF_n:U!Py Ca uʹ4<4 A҂K{q}T~ϥ Hi~?Fxypw )M瞷uXбqiAh$JdʺnKץt^ʣ&w\!tV{-1e< MԻҶUΝ7,Oǜj 9+ )|-#Vo ӵ^{Kkqm/= >WĿR0Op%DoV@ 2C~aVDUW_@Y,Dh?oW#m;'g&-CSS*A}W-]Rթێ RMq/7 4 }Q>[)]1_,ӡ**9#Wx!=g;J+k3)/i;xyŰ` S1%ajN.5[#(<#ZXv'XEh/g{QJ|W+rned?Cnh|h2ҋi2-b1J56']{o$Pt>_Sz4lwVh4& %=ʒ{YHqkBK a~vҬ^0 "ݿƴs/}fJuc%^C M%IuyrʔFhtQ sǖ,duSc(m-Bh q{ oT8בt.d6]oi!jCnjJq;E{S@̒$ ~< l9{@FE*ϟ5W}Rb6Ք W8f(2ʮe[oCB@+4}*tKJ[3T]e0M"S+z ]詢K\ɅKkp<9<0:m UQ}"KĔ˿]x@n%Xƈ.!ԚcUus}]|R;H{̗<ꂠm{ljJìwZC( 1xMXYY0$BP ߿qv?ܪݶs >ъA@jœ~m0\ ]Gh^`|лUeB 0+|P&9g6~ =>vL$pc;կ9FXᴾ %8lv*>C=efTϟ*ɛrC4q]:0EsJ6XƕJJGPa_M-Ro{Ue,NX3lM~ SQ$3>~p \p6b9QOBCoW3P6j5I.6>~x㞻@@hV^1Hv%L?b~m* TLPE}__͔D''e dZ?ɍRՈ겮BIֻ]yex;w u% ~Y6-s((U MWF':q.Rr!Ylj&b;O h,BMP=`zƛ\k#)r(nhM(#{'T %hn?B=v;hVjc$$Zs} @S1!qC2SJ2Ke|*pUTX/5P4X;\^j u|O8`17{TqM4ܹW}H0Q1C0eaLa߹õOʹUjgЗ̺#=qc![QJԝ8GNTo<Q+/!9VPoq6' #>[Q zFC B/01ck\ʎG;)|ޠS$3A(T[j53#kП[fw<ҰA9ȃ⨣rH#D] D~׮kUg}ˏ=t{.&HeG20L=b6@u&)d"&>2S Q{ v<(E{@Vd=Ӏ޵Vȥpψ;3V?*[⾂n(Fp=PbX=u).|L}3Y50*W9鍦=_D|@ /[Xe1JWseeU=\ŊCᄐ]pP IecY*'٠7OTpvDž_6$"Bٷ?'U|TO+fKCx&#nm KĪ%f)2TQcfkʪ{Cڊ|v_2b``zh߰tTҠc+yq ?Ip_)RAvnM:zQ†ѷj/ l,H/[ud|h?iNlCl.y?-t @˸vmC|V{-X2t%Qld}03vQ^@ƒNTEFhxxYO!@ِވ%-$V Ms(0INb|~>)p~iMW|X\N޼ѡJn7W )ۺh̿X?ę5tPm{EZad } ʍmwwP:?f\ lHJ`1Ӯ"{u-wEAj=ɰ(bUa<2I(t!st2J .zپD:,|˚g?~iI wZ~L<<|V BX VAsϲjqn&;:nײ^U_;sK;W-%PP=f#HF:٠㥒&MU"=@| wiw!%Ұ9in];%q?!`ajT&w,~߆uy |lũl'x pBe4mᙥjy?/]A^{Ma O]ݰdU0:e:+ D3ĥC~?x%cgxv 7'V<о[N'v$F)(S!zJA'(\p--qUX8߰&\]Mns=% RbJ|WaeouO̲PS\i͛-o=: XRϬX@3|jxE п ìNZ{ ̽_fyR/<|\/e2I`@PXaYShX y!ѯ e7b`5- v%*A5SN.NIƪ?Kd1{n^$uI 7ft㞞m@̈́DHb 9yh#K bBho4%0W 9N@砐3?Qp2̺Y $t,|u&8"=ݬZ n9 x>Y(BE/Cݰ7Ci>MtKA~To?- 6WULˮ[Wo>wDŽGRup7)ٺ@~WXʢ]8><ь>ƶtxhzF4ڪٽ6SE}>"$ #RGj^eA(#<*th|x5\?S㏮OuCLKUu t]cEIOBjS7AR70<1fNy*J8l(QȢ2\853h燷}m-WfwPJZ΁,lUxl*X,~M]B|315AU`+ !Rl7(4 SpbUc9!9^&!:hU+"J){\vh uGIip*%TT;]!nL3j4pڸ+_Ջ1IVHq^IҖjm6̐*7ހCdDlL[uEIUY|#?(t\Kj1+O(>E}N֭үN+[Bk%j P{mӚ߶>=Jɓ/-0#^ɥt> N1hu&h]4&hxE5>q0y(Vcu,R@`{C|烓@/,Eb(bE(^P|ccI,2W/c`$Hkrٮ|d&Wdۈ\VgF5'.62.@p08EO;KjI3E),5:n$i߄Xi2?tO8[,%S42Aawɠ*N;y!AƠsM|liM 5i3>ָn !eڞr57U7kyv09AMEݫS0HoB# +H g_#/sMb8b~bLBڸmsaÇ@zU:f pMqёh\􎙠 u74&޻si)yfj=6No9"pnx 8>*5"5˖@#R82#=A==Juq.TCai͊%zwoK1_Z(_XNv3 +::]+-ju:Yϼ,ug@/iEfMq6TK'>AwU4 C&+oxcaY7Т'1@ +מ4 '9~1)|iu3pNsoޮB4aF.xL.%2.+(`<:Uh/Ӕ\i^nSt,mCZU! Px=]1?4Dv*MJvN!|<"5{SvYD oM[ֈeڋZ.PsplT,j+)oWA4 3ށ(rHwQ.ΔwKі WëLU;.nys:0iC G'.IR-Hq3c2;L$DrM̕Q%w=spSDSKԯO+=D FdG%EYBQ +?J>VD]5IF3D? R=k>S%,쿿W?2< t[@|gH`zw}|E HBh #=q񉐝6TTT3ƴayB%|(2lhPԙI4 }Xs Pu̎cx~GPdDJl U8dN ɮȡ'GWY"v= v׸Pd"I)A\ m\G8aR kzλ9BҦk6 Zvʂ~KeWNJU+uk7`ȵ94)JwҒ {'c[xLJM&psbфR?`/zwbG0c%: fX/HG:ZlY=;j 3u {/\pu <\d_m|V(]XF2Zq0@QE(rç$,AR> 3H;|UOyl OM)-ڑOCT]p?bpnAG޾4D*o`k>ufM R:@/p*.Al+&v5@P1Ȭ`ޯ$DVZe{ /P 5H4bVwrx鎎? ! H7^Dv 4eSeAeY͔VaCr;^ ^[]mTD}$+s4'3ŲP_'azKxkcd鱽椵;ƩA1ei=xZ{H$K+8fg x>kUԼDw4dg $K=$j"cE\czV) ?%X[^^ٕ4Lt[rd@ó&NQRKUEqAxFOb#^l^}Ȧ#?阾c\ u t'EY[e mwfDC6~NbΤB{–9.+{pCl&n+C N2J Poc >b1-ɐp(ށ7ruz1bW5쳄&N#EA9fU9:ьUoЖt2ϧ4N ju:@gnNOG76⎿zy.}M$$6}xT;)N kw/ĐxY1 zV]e{̅FmI47dF537 Zì{EJI-Gh;:LN{';0TUJ;_#0[owƩ f꡿ڕP y^z҇Ռ7ʖ4\Xޙsk#H>` NR}/`^Te05m"N)ItrA =(+zJkAz®YJCe.ɪWp<\ }:A- -KyД<6GAv8NBޛ '=,hp.i+;;,*+86 #y eVIrz#XDZOh9BoBJs]IH )sNf}WBg\O=w7p|;^8E+i{G~*@,+@| Va+R3G1H)O E8!柬赧^}t.VX ޶*I51h )c@]*?@~fΘz?d!E5B]B FLo%SFo2Of/-1kt H_˞}gl]rRʆ/P@x`/y&Tq9a]]ךW,eFy%NSn_#3-5FM0APyTC>EZ3k,od#< Th\hKFԙMX>ؾkѢScK }vGU@;EZR/#NbNx_I`@ 9 o Ej?-0iCvo NX Zl@W``7q1;XX1HNMƯaI?A6nbw\jǒU_Ud JVlnPK'T)aqa^D_׿0k] ȽML r {j+Dk*ny !Mo-Z19F0cbNYXYEݘQѩ?NTt6"m}ۂ8ٙ' ^Djy9oHRq۷f1Œ,Bw,ugl+_թ?bXz|rm/WHXtH؛LjztRryFSOY[uinfHZf֠) 'u\?#v!#j v{@u\lmsdvcܴP^ oW':id .ϹdŽ(yn2Ze<)8R?p. "%yBI* lBHy>T$Hv>U ;ir_-9}8,TMSz?YLR2ߣtu9:VT4|9՚ ?1tO3I(f!A2 o SB|{q.A%R3ZVnd} ٠WIB-Q3ڥU>o H;XwڿrPH.ZvJl9Vs&-۷r?T+QjSם.AώZ#DEv,L1:MozIhT?+c 􊧜W&҄@Zuh\H۰:!(bPd퍆,VĴtFR1%ҚU\f?u7+߻mh\ & ǝ4ZpS,[A#뽳xUQu,Y;ۓ! *[|s7-UXbrP1: "E4@ʍrgRگ\%~y^y\\yD8YMӓVD_i?OAe=\ilx<$AZ7WT۱E: \F%Q7!ePpa==._,NN5 m>k}oncTee j.˛zhqs.m095EXv=2DĐ߿ *@l4zytAşu|3QG4 oq`ۺBOpz`K\͏61Sp[bިVlOσ#( 4o{b2:Yɇd0F]uXY‚/vv0"y?vMj=H[<}mPzTνX Bsx,P'FQm)b`7ۇ|o'gki!I>t2j>塅1ǧWtB~`dдE0j]|ЦK|p!9< e52{tq v#8㈫"Zs}'&[?뇦fr8FX93B*1NXzǰވ-1b"UR!$ұ_re-r%N VO5(je )7ɬ`9`y@^U~NU}J@h-K@# +b']B1+ "=6a մ 3!Gƃˋ2YIZΝɽx8ǑTHBt[?C3%eJ@BӞ H.B;A^$Nj"Nf5[ɋI=,{PQʚ> .}r0I)00<]:Z̓.&|֣xoe~_,̃<]Z$(˕ R@Ʒyu{}b?@0Jߥ#QHn$Go(0Ibj+s9-#(qenxQl> 7,s|!4ogG^7j7dȽ@E cARs?@AjQ]4,t+w2P[&QϔxǯH q"2>3Z䰎6]},.Q*5VDA"QYkĄvrZ|#䙨s#qϱBOc e/_\՘Мg6~$E}6Be#z1]S,f6:O|tYxu4YD*.pfU|#) }7qM\^0 r4fb2[]Z&d6j₵4ءD"`t>@>Jmk47.~xz3`B{8Et %dRD<@m'C`}6JU  {UE>&XB7o9 )X;DEnW,H. PԵwnI]sܛUHQq)<vը5镡p]@U/YW(|YiPw?'t c+kDL^7E*vzܺϱ׿ I04 d<&<5qxtN(Ǚ_hC:<+ +[Vq!8[-Tn<9TK`d*U[B {NY/Fw(sA $YpٰfS?>0S`#_s3=Ko0JR<6~{Cb; 1[h zm-F]Px؏õeiˇl+CIkjUc|?NSX h7r:3@qڒKC̈́ZZd%cC!jk? g]Tɻ&?G-P`Gα) s]{RV)$EnE@vy$=ﴟ%Dj^1bMQT<8?Z>}Vg؀gx,5x!j$D q@lŸ-K_q= H]?Θ|YSK,\u\:I%d'sN' PfDX:s&[/pv]+tknꟅ2FC|K)(&ŌNMUȒ 77wU$Mr{֢:}R9:% bnk(=6/^[Dr2\qEB2DlF3?sZ[9R;uYq$Lʽu*wi.)?̵}P$JCZЊNj` c'tY`|b_^<.J ?X\Y}6ΕfjqvfcQ&onSmge +p>V姝72}lǔ~v=1;6(:`:{Z?v|<olq eXČB+ WBD`pR ,mel[lR]^C)h30cH@bhAuI\}ݭ'vdiDa>*[E͉'~O6ĕ $"5ZR `dT%`"]⿺{-e eb^pP>%O=LqxoHW= >6_ldN}(E9tq`5dRdo #Ȓ1W'FD;=%l*ӥ<)[@Yp9z-ULvU#t%W~*|w^'ZWB"\9[Ax8iu-y9 2h8i~(<6bI ]TԉH"|1`C3| UZ-/ba+ y݀;(ʹ*ȉ5ss =W-qS@ Uo\0qK71Pu 2i6ɵd9rTbI[g]әvY'##Jii ][S^ >'ddTg5'3 3,NUG9Sj}ncgB3⇁Ӵ6/or/xwYPwCy|Xav.O30Vɞubqva=1w#}/d Rvmhk TƋcwski]S_pvѫt\` Ctr!]LjLo>:+w4 8Kwm~ jgMkU%,ͅG2R;XW;.) _z \iq |!qς̵ Yz@&:Eo RSU f]=Tcۮͣ)l(48EOhQB&Bh k֍B咛ˉk1Λ /1^arBqf Zvdž؛7kͬS^l '[W H `/U\ؚx%ݸU*9wB›%>Q4Ԩs7hiIb[AĕvÄ}/~&@9]-np j6&S;lSƏ!pK)]@ǔ hi=gcKƩ %bУW{YեfOo' ~}ÀR_ H,G~!vGZgIehL@ ;V/lt2XpЊv:-tF|--V)Y7iRI (Cf o|K #r"nT )>Lrg/GКxUBv9[+V|LjWE~|U3IVzV>q%++vIBЀ 6P#Gyʢl; ,HeW9ogl w}V@zΐ@۟}?U|ôӱg1Kq&[aovVLіJ! ?g4Dfp$6ԫ3^x|M\\~J=^ups( #Fc]E}A,%$VV Gz4V/1jڝȤB^+/ꊹ]b.U}nyjŻ-5T'jJ1t1K4k 3:_W;>}-,J|K$5Nm.vQدM.z²U3^:j>2iI!Ȼx8^Z"h(xLh:g'܅䑭y+%+ 27oVZsWZl*&{I 9EfG'%x΅t:0Ut"@oPl0 fauMY@藳[8ʼW;PfTG6eCff;:z G1qdİxz(WяڸW_\Sɶo(3Q 5-7w DqIM"P9նUٻi+ـ&FhYk{BĴ)\0i1[Û#/\\~7J‡AEl,"vb?4PȤڃ$˅vxB/&=F/ǚhtݯC,ܵRhu}$Wݑ~&eXm'm9WDt,S6Xyf7;Nw' ' 2 0}L)ԏFNdo.Տ^92*( Sx+zFM-m`WFDr_N8p߄)-/ Xu8+j }Hn.n=YJղmϫjC!X6#M ߙ+u,"Ctt\rEW nǦȦdDZ ނK"c-7~3 m\!)/qA{\GGsͳ] ƭȳ6gW#vԝ>WdLp+⍣s1?twIY7*B.S^G3ޔ]87S @ǐ'AaQԿN/ZG۱xٕ_TW#tjrJ8 d(K~]˷ x*yPnWBߪ8JڰUb[T\ l(1>jJ.M-uT|tOCo8,"Ǣ%þ FH\K`df|&HP׻:Qy,e ۃ q}=l 2 ]yޒuU8s7LL0@%f~L3 _ΡuH~ 60,T\s+l|D8wᲨY:OG;(1Fr@(yHUN~<'#c@% (<Ĝ5 xݒ"Ee>@˓ҿo޴ .E4ĺj4mXj^EAS j+v[P+Xx/WXYL[G"܁SGRGsQVdlibҔ'U%mD Mtpהq-ı.h3~GMRc!@J˲iUGY渏{an~fѯq W)E 3rߔ̐񌾠;1L &qL'iLf>@'91<kQ6AZ,2TaO#֎s 6Z6o;6h2m2i!1}Xg L3il.PdEk"rtC@OfL+Żu0`snni_H9u1I?.nqn %:um 0;$J:,SPA97˟E[dHjVۂ]:Ijz6JvciИc>꼵<&ljnl jԛZWuD ֈHSf_+a(OF-W!SYFWJ;Xv! < Nޯ_geG©ozY|B9w-5ӓhpĭ>*+ۧr|SvJ#,=K[O<4bCWyZlb(,V IqVbaoፋls.;_SAsH sva-Yk͋ц?Gz# -.7M$@z.\o|o2G= PD$ȵΟ{7ݠn94KpPJq4,#t:IWh U6%M_h#Sq^w GF9|jwZNӥRF0]ש6E{D6tchMCâJ)"u/H2W8<j Ϟw:G mc 忓TS#;{_Z mT_x݂;B:\j$ #~d2լwu٘apZsD0Oӈg 87ާQ͑(JQ T+(Qiyf꡷4b<Λ &I&9%jS_%hk݄z1F`TJ+v̬7 G6Nf{ jcEܨ(.8BR+"/A/ꉲLVx>sjwvBr, hMi.!*nif'ʩP:*{0Z^_KMw/K ^o0խǂ\9X a r`)9FmȣBlY-_t lbm̕a&+\`2@{w/N*looEԮYX,z谩yI*45!վ\nOY[EJfl7 Y[x3d"6ImO*7 t|bjJd:^PowΉ7-&3)#`Ďpw:.+'DpL9+nƽEE9Z_N{оC`܃%j(Qbezn}ܕԌ!!$%nTL !Y(~jPzI=lCBWQ o8S%EIl`ZgkbBEci`Z(' p?~{ U> 6߫Cs>Ru(g4}$Fk A=g;U!a"G4 3R~r >;')ਰ.OFcWPzYJ3!ih.nech"?}}&qO'v?T@iJ׌^c#􂰶-U5Nf-ט7&'|&+តN!7Ib ް3B?jm4Kx!RF&thר(R0RؓXn9yI;ە$ivS8e"o!qB%FIj##s?BO\cgۭ9ƺ:yeP/,k{ b+ZL+GuR]PkΦς9UbQ lM¨h`teٹ`Pٗ7er\dxqǼuQkxc$kR%ևM]ȸqnՎ >NA M#rpm! H}cK3L/?V7ۗ5{nY-.;(M,A!ST`N`6}ԗ?i nr=6`vKZaO{4FWA锨#LʝTI [B3/XiװtlQQ>8#۝HnlCDH&aȺ01In0wb4 R)v>("]Ⱦ Hi I}G_~(afmr|{Ș%p\1|AFAFeM}lPH0YVj8Js!~/H\F;n[-6} *Zv'@LWy:KJ on2Oݐ=gA6ת0ۚgS#To1ND/sF(;ⵡ =3 :9 R@¥h)=|ZAVtgW@e!|,D<%֛ji8C4Ɣ8m0`A~6\AZw41N>O~9Vp6I~e~O'T|~>'xh 6'Ľ[z䲆0sk;9B. ^geYܣXsO<@牗f| C)^q<["'/cRgQHo7IRj}nܔ#?'/@6x\)'_Y&0<8} h- -ne ȝAܞv}?J)} s431 p)`]GNmZyX ^]\3235jy*M,Ș\rL1yYjľɑYnf7?RfƋ ;!<9YY|,{t.ըcn8|Ƽf);\W~d`bE>!)|lmB`$13y,Xj;H@߬Oj-Y~Z:a{pAّme[yFQRX~MG+G[llu#x~.J ozF$g`wgQ⇾~ɸ~|FJ(ۡ'k?J !`aIr d0fQ ݍ9v]ƒxj߮˻*jV [\4q6e hˮs=G0 k(\YHJt %\ ZI,qHbq吺1^$;vAN`$QkSx*fo"H[gk`èNp/*ކ1:1x Jacu F_ذ˚^P :2OV٘vKzIyRECIO9*X~(f,j0~5$m/7Xo^4*'.8tYeG2Hm4Xy@Nr}u,drmQ@LF䦸}״X\WRN7Yi~%4lBe˜@HX#aυ 2Rh[n/$^u3EA+y"حRwwOK愱_{i22[Z S81WҧDa*v0-Zi-aκ^4`53h WEq<w1.AKI]K*D#$iMvUcB=ۼ pɦ "k5-{#mQd0F#tpgZIP\qLDj!GkKQZ9=jبM['lGFvS”Pj#/H %jo,rW>cX[F3)82AL㵖(UMcrV) %:@XeC=$I@wRX P9Eֺ@dX8&'fjc9"TS̀9   sȓ!A-O9˙Sk1UڅE / :6͏(YCB;ljζ#+wNa1Z $#Ν~} fDw9 Oom2dwxG PT;2J5!ѷoZ"gtFY^Ԥ㑖L1DvpZ[W\WŖ|vWF NXDQy F܅ PZ:p/XuK1TcЅD< U'>!&n ׻L]A|" z̴k/:.5 J⪏*R=1y+@pe><}͂cv߱7=ܞH`f+- F% Q ggQ^1<9r U4OdsKtn؈ͨcXzӳfB|;ĊoBm:=(rf~X;Գi _ïڡU.S[`uB'|Mj [ hNq$11J ܮ쐓6XM8휍 fWkR)|Uqڄ索 Pf~~١VLeTj߬WݝGz{OS ()|N`~0hW N}N_nJư(Ɖ B9 Q -~x[t]Cc~%^`xs=C&pA OJ.MElv!|<O #v麟V+I`23?SXZy!2CwwB-Iձap {l#gmkE^?Br+yȥѭ <[\tg!69x缩W rB+,YU07%i;ڸ@$bʜar'ly3t<+P47@=s#2jgk %9JTF2:{me-;ZW@z؄/V ://eg玮SL(pց$ dWG{҂9硛EYK䝵0G  JSLo([j 2á7ն"a\Jft Sœt~VIE (݆[i}`>X$.ַj` 'o8 FsDjB7G^ǦK-,iDF[>đ3G N)\tգ $ @a>'UXYqs-aqEӉHT6U5UvvdӪNT*գu5S0tr9]v/֓aQlVjWRKQ{== Yq+]j0ov^'׻yⱍk[ >/uĠޯżmVVaѴ&G#_>6˖8P^&K=}'̈O H }ԣNZ(zjA`EZRkb[s_'ݥf uG\kkԳ|D 2>op߇_2γYyiI_'YHRXb+eƾd9}g.GL(W 6t+oִwxk@1*GdΖLlQpMcx%2 [$dV֪s\/C%b7X{Ob|77(&|/D{z[)} _)6u8UF^i`0cgylSeYž w6 㰐y(ZU͓DmP S{6j¶&jFJw|:ONa={#qONOwai3| ~ɿހifw Qf; >V;t/XMc9`o48y8My"Έf-|3lp')yD%WMyeĭްJ T)L! oiے \@cE(KKgPNLQ(E?8H! si}z4gUMxgwX8GF܃%_⻖nGF EL:/#™_-t)[r拴/&c,q֟U:`!z#+H#yȷ]_emr?qח WzxC=@(;#XhP#KF2qFWq$^Z\+H`qO9Ƞ=4Ny4X*VX㉜P+)O6Ylo3;=m sV@.`3e1&S8cxRFy>G5& Q?,* yZ%Ƣ htxDd8w޾XIF n/=ދhH9[5XZfyl9ѝ+#*O%3iX/ry2,r+\2?Օ^߭%^ӟ bVR>^W:!i؃U1MgS v_y"ֲ}أ&~jU JYEn_Dg=>UPRJYvcG[qsKP & eQ% URsXDɿ5_foN`$IOe<d4d.Hx㳆 {|/LJ[zY{uF9ֆPU+z|̥{yVka7^bt? ?YnO9(/#ϱ`Mfl`;ڶa̡~ʯtK kٽ˘7g z_AA枆E}w RwiU~,;M==E73=1=C <1 y}(NL/qL'Trc,H Oˇ)$P=u" ۲32ebyy%k~2y.@8^a$M>*UNj8Q0L2,@C7Q#}pԭyLQ68E&*BelMb(=x =8nSecF)(%ßvéKJ*N@(1<]3-EDlӌ3IKmA6 /JjN"¶@E3) 9VDBAtQaW3F fO<!SI_8Ystc]N24ȫŁ%?VeϰT zah4WC@ů2G sՠO7JѢC2:1A"G {igD+kUAl6 u*w{YcHNEG\FmZzylfjW`"S%`g[rjC}@y'OhƤR%h)φk2LaSĞ &QݘNS1؟/."SЉ- qtc8bwhu_ uΦӽ6llf<2XvOAAEO"1zfVoq3r(2#Ua |^֨8_fS5wf|Ftb SJ`>?&u-tz-\cLqr;XL{1 {!5"̆uU1n\s?Wx2#0њI{5KHnRur]Ӕb|^æC.uY&p˛g 0<}6 RINl=jVpթ+Zw@+ND _;P^}k#BruN,qOCH6Zg0-~і qz{97$Vbͻ8" w6@{~MlAm)[;_i¹_Ylɒ'ku=jPiqT|0΂x ŵo_ܩ wp ܱv8%qHKRb[;cG%w$]h%QT \g3Gtȵ1/aVR ng]r[ZJB~V670e}'nht(;]Z(喷89Vc4.Hn+6-^S+`^v80wNxLk'3PO1-Ϗ"i']t!;峊a^*Ub;߾ׯ̂SAK fS ~y}ZUifzߚk'(;:ON8&%od%{9&gy!~=v7+~ /)x/\4;},dz-%TBKy(NٷhcchK^;=/k̷lme .<ޖdh/ DR'EDb\" I*qfi h gdS`i[BSm8#DU6%%[ȹ_5xUX5¸3<;ޞRĴڇfr3keDk ǦW偣<^7A:gYP4"~Us!|fGę# \Jꞅ ;X!Z,&>춦:p]" 8&P=V6m q!CG_o-ƛ*As{̪ootUH.-ПVrGY.=7ЉZD<$W ]EXX:0[*(IV=Y93͛ _D0}۱؍{5d땐kA)k 7jBgs77B e|$b=W^z+Ѩ7_>iK}O@޻v}K^%I- 68"WPb3~=E@WZa6St0>1ҭ) $b%kG}zİ_Qo766!vI13cspx<@w ȁ^3V_(.?s.1n,hl~,`Ȫ_Y(CҋMۛZ PV5ǍhrLN *}U8x,h̜2@ٺ ?+D aCs[aLI]_Ƌf؅[8!T2 D% i&fGo̠}cn4x4s[ec}tEѨߞIL,@VӺ+xXMzͲJISl}]Cko-ƀP5]nՓ%/THvj˙6R/&9x94U1忝ca9͘Li澳6W}> 4TfT7& Eۭ(>P6ҫ֡̏=Wϯ+&b9RGhdVT^P C,82p"LiB0Ts`5\ز-,Db353(⧷>.ϸ+%RiwnMw/H>pU$(0 dzXP&U֎l!=M_$%`5;%OOߒHhu3jS) dAp;fFii'!w=b-P[LU,K$=y0U%viw #SP!Sݍm0k]{4Hzr`Z<+PIC3w;vK;EZ{ՎE1k?Pe5{Qf=B9I& QRFjSeds~5ea{528?cP] CiY-5S1X+bޕeyOV!Hh`4VwR':gzQ=ъnfx!ʈ@՟!HK>P:`v%J]jR j<׍F5%Y7t?jMAHAmHjO .1jHʀ>KU{q{rǜbMGC rb\!0^JSa.nPcJDSC&h1&_j3i_"w}npyt9[qR,AoSF9W)Gf &GKQmNJ%W`hp t*u8[W֛-\AC#Uq'=!qҘ2Ϯʐò* ZWB{CHn~lzl೽(eRN !PG6{LueoMNl[u7:TtrO`Lw tֆypʹ2?sXj$ҪCG*zY{sx53H00eLV'!uUaۉȫ\#tt|n|{~0}4(*Ґ L5,_{I$k 6b(/ҍ^{Vm[d)~Ѳ[-,ېU|5uez .f>בK9[n4=0VX{xʕOM[=Uٝ?Lprބ)am n%(RCO+f`RU(-ԙdN eB\Eh+_N;˺aq qSK-]zg3Oأohc{oa]2Efz6$߷=Hb#lR7Dܝ٧wfmZN" ҭo=7q;F\{LVHZ824FΌu*@>Nm5(Q?йeĢͲN"r~<ҸhhSH1"5') 8@‰BioswD`3E@a5P\u 9uVmXmx0HEX\kE*BZH!:Lar}K'hQf$O!\omyƣ[iIkȗ$Lg"8A*^v3_xp-KTs 0t =d&}ޯVo4FRxBkxP}#d~p%g nLXf|^N964jKxrǧ@ذdmVcWv wvVrb멛с,>H?}SԆ++Y )} N}g棤'w=fsMkc@{).xm9*BP>S ^ /~oA)cz aSZk5wO_Ja ǏYVntm5+ƏV_\^$lDE GvwKR>oF2K|LU3, rak 0o1|Ҝ N]Ҵ{ݙ[oӦ G6)\`gA}˨Z^.- py"P1(l$m7% )&UbZWQ~R,oK`&9i$y&Ïifo}p1ۛ(ZF(%*nPޕ p6hL>yhfx_JC"6\P~YK;' k6&ĹCpav\,U޾TeϮJv)DYo\JHE:QnT O.wLNq6K.:0ь"FtGk,ޟꡃtqQ(t `[f.۳& fmj0xH\] Yѕb!qMP 9;|W_ ΐF7?[fI4'sc0Qz^n24Nv6Rx^#LJ!/fx0JdOYy2*ٸk.O{* fơ6E+ZiO&?"j[hP!IE7PgzBkn9{SGJLtWTfl }@gz$bĀkF8h'egw$"Mb"W-s jpA"#gC+⓯{[Fi rMg3!MLمGv,[Qeh}!:'\HHBAy0Bd b 0ywzճK.< 4L%1N36/C)` AaiUJCKݶƳ aef='T LĻh)0;"i?9xo4}v xyIs%VH)ș߀ LQ19ьD IfkGeX֒e׺(x:-f؍͠ (s|0.mp _D3n(r.K:0$7'wF3|8.ځ#V` ~~G`˷GQ;Fʫ*zRɰRC$D9? I"ɝuռkz9[gk/$-+Ə;VDzDn,Q&nGc{S7P`ȶ;=-C>RHšcu?R՟yXȰ) q/=v$v6j渱l}L#4TCB 0("XɆ:D+Zo9W ^nfJgRew ]T D]qo 64wwr nR!I1}n. iaן!`dx%%'3bm#`|GaT_0yl-IS*1Qk)kfIK*%Ա)'N֗ kK̂.Sonh& ZC: #RQ/9jL?e'K鲷&XI% zIM+)LVұ/z ߪaBfիQ VOv^Z6MAZc!ŏT{+R;Gv얐/ʱ"]3k{1Y vh,7͛S rgqL]! gJ܉ݣg{Ҫ$-is2BY㥔ڐoLɪq*.aR325]< 6X XLLmkċ񖶉d` v,UMH"~T^|dc a8OMkOF[ #ZΏm2톡C2r4]I:,~S[PRQLHI~ԗ,hnu᣹lX BQ Pe[vʢNeR6 )Fm,g:FԪ/_j$;|} Uj$CؚC]:/L$xTȅp /k-7 |=>F8I_1O5$Ν"'!ůwٿLOY xGc.rM8T'f_1̕X>Ǫ%0.ɝZ!q*Dk#WA*Il#)b.Hgl Q$)SLs&N++3h$HՏ6-d&Nnqh W} *QmL{&xUc|(_)Ji8I Dd(ɪ~@;ZĞX[%VEY”N֏@h洧~3^p.nrZ`ly|3[ .w"J~-!QxJ ^edT_t۞85D3)AKG-req;4D~&" yRp\[$SlzI!w22昷09iHnw]qZ .`-htMxU@=ƿ-Y^E9<`W5gNgeoqw<Wl$9]ШfE@!{}gMҴR.L,t2<O $t +6C ]ɂQHR=]dj2+Dsa 7smp[778>xa:థAj+UW4 '#^*{L<4TFs|?v>$Z>عvi\HdpїWwx]ri0r^M UjHo1#PwH'-cFX~0Т+3hPGZd/M]JWBw\yЖl d~zx$CdSׄtUUͲ1apM{َudl%Pzfi]2cRKDž"P< π*s4ŒRx] `>_9CM$L aGA->6%4$D6۠?[.dNn |]$=-·(9x{ jn$Aw? ;!چq.^G_xjUsʄ(qbU30cX}ZT1P)(px!~ v5`Tt`BfT>ZČ6fAįfRgv߀upkB){ÕP?tsD/fǏBL<(V>wgvHz1T\}K3WYڂzrl\UB;8ϣj.s4t" 0(sX&aA_ƾt뙴3}QK$c5M[Z>Q]֗[~S N_!Pǭ kAV" jl+sHـ !;S{F]}&u\6g>&)lfϾw4nE?R;wېVE0iDoel$g'GZHwߠ}h/?A Kf 1`S]@nF|L:r GLL^h9ncEP@r kIofg< ?2u<@WOy!]M5w:D =d]1s21}2eQw7j͙BwpS,j+Yp"Q$jEqDxgW*Y2ݍ"-BJȎ ]d`].ER +l_o @U-=iLRzGhdNYiZVO|j,SoTZB%J_F3HO,[$KacـΥn9y HSF$NLW3(\cFa%}g?OE |+d2¤^M2ٴ֠ qڜI11 8hV*,$sЇBRh$q?9 { hH'9" zUD)ԍOh[dFVV9Av#kwa t}ՑQH] eog~q*} mތYkա'e(iIbH~j&cŐgoD}^< 5j kDSb ΍-4m¥z@ihxL'TM@-Eԥ[*yFdJ:Z0;$ze)G9xVpr%gސ@X"S駦Rȃ4)[*'pS G#d9FEj:]_΄6ZQ;D_4ߟ#0Rꬊ'AjXQK> د(.ځ.QNS־(G E+x'ϡn4'J=$՜Eozy+mQN|G&<)2MGDͨmpT';S<ڻݐH7݇wGH(Bcg x$+=siAe[nj߇GpzJt)]ae}O'Ըz_U)TA׷>^ٕϽV$d V ext`م^W A+شQ:>|ŷ8 cN E#8+#QNfh9;OסoE ANi'+ dJL|;6@uH)2=G?b 7 Dul9ҳZS%\EhdRܛO""x> xEWC=#jKLZgޒO9^)3hCVl>Me*t{Hzw*tv%7/+$&o<ʽm{q ֻ/bxsa=>_q;.w-7; )%H. J?>?B7 ,C"٭"Pk@T́҆1ߟvί8(/G aNHJ^!_n F;|};Ez)/V"7%*4 _՜X(=NDy%&(stOZ NB {r{XZCs<?6 sV_Ouy-ALsLoL83 ~`p&6m8T]`rJrth(3ZM#${>F{<7ZU_@ӭG-p?lsf#2thDƵyk(5ٸ̾>@ o ~3N?eéc:uZdn7=G4a~Ni)1\]!M+v 5I!JwA%Tcz?I 6D)ko9.q0Mq ¸w pu?xH˰$@vZvf+cTV6)ЁɥG-Yh`gM(+*CCqXJZx_or1]3EIv/i2HҙvN*NlcH\E鐋Z*se& M~􊅢) ४9,eE{IvW/ŕ旙\:X~v:j >!δӐϺdK<^@򬗃mPӺU Nzb})CA5#ާ&D].8ջL*W'(&Wr0~gw=laN~ag1dXx:RaUE{5v8jEoW5ps&bImd#ǣp9/z5i#:  %#4(niV7<i9l׫|ҩ07)>B8|ʪ!1Hs,HDo9^m7HqP=Gq9A ?FFP {SB|BETL;R\kl\dFuZ`-bMf#ЛM#_tcڹ7_.fm Dd}T:R"r3lT]Y\8a0~1>M3|h',Wo80z45dw)Y+RSϼ GNyڑMw.:Kf_'Rr5'Q6eAІhZ=!e7dd^ك3Q89pݿÁyA`0/ dQ0Ҵx $]},*f:4 iv ]?lC[ol?e+vt?r7?8f?Uz$1 74ZRJ Ci1N׬T1T8V *tnZFh;S)HVo#)yPKvOOB|{~ iKc"]l:z05#JqIf<SUg4b -wz@1oeZbZg(2wtZdq26PUK~VUpfV;^?)]?Խ 4᳜~Ioa%سIdF]S?)GZ,,#%f,GRt93}\bWSw5rRwT9z AW{'Mp mҟ8YN_5"\k^ݣ(5de_ީtlƂ5qm\'d~s%o M{Wl #oM<44"dAw maI)tW\j2BKЀǨ2* c,G6RT:K>ltDkcSÔOPA1YwqqNYa9A1( w"_MIxom ^%Yc)~]ΫXZfu9@L|ej1G+ZE|yq|`j”{H( -ƿ‡D Bc*jUi W7g$qCA2< s'X#.u<~F}e0ԙW'輭fiw X48jCM2SP!IdПd!(=[-qb70p']Mdv KF:bqѢ7Z40GbЕS2-w,AAbQ KuB(6> :=ޑ{ DY ِ"60iUgХ˙b 3Q1g]ڙ{8Wcs+RsY.l^Bbd)UƯFѰ #sέ!*}dF> p o}&ڞL֥gd.Yb0@6ruikeU@)1c*o[]7ruaҴﯭ5) 0{vbw#l!Nȶ;:)3_c_>x͟Z @FIL`ULHe͠_}L_ 'NtpS1mHg` {.(y}9Lڹ0ܗ҉tAɤ@<p*a ?\M2EЭZqm̔1ZF=1.Ik܁:e9adŝ1)n L۔mb4HS[C=`k;#+[ y\70;%O+,#g[|1{w|H{hƢ_7kq(\33蘚[%Q#h=3S2X5 ~h 3^@{"u}5 {2W0ƯCs {'71bĔࡲ}GW\gb3i( vrdH(p]$~]"g#ZPa-T//ru7XHß DDCtJ=UD>!Ys6;ӈ{ZI#PWZVaK|h\Ś|J tߤwm UfX] 8)%ҵ& _hf_ lXE޻x_02Ein6%JX^h/ԚUQf.6ң,qJ({7-GPy Kt:6ۏqC8!Y,"5_έE߽җb?NI tۜHJ{^&dTz ѵ6]F%"Eu*Jϵ,99}Xh<̧gdi*y}Vګ}O7 nݹY4H{GF 5zx(AA{hXowJg;X*-V`wdܪE 3qBrQ=Y^CFt%m| 8>WAwxeBhFe`D;#*ss86~ټG /6 \ /CwP spFFףX0G?5\q~JI|cW, O / rPrANo_7 {ShbąaIHC!Aj#WSHU6]9Y&GՂf nvV ]w)U(߆W,z./t8RPQӕwt8:ZT 0ӰzAyAf0r EV ~2{|?ňu,u-auk!z˚$&@F;T ӹ]QGH @*TŤX& &$kmdsI+o Xr[U\-G̮7 $Crx%uÈ:#oΣzp_n9X6hWlS>] o9S*&B6|l@. E@X ǗwUqw5{oO3WHZ+/Ng,g?\٘#08T`< u ںM=:.?)ԠWvS͛:>v0ۅ_45֚k y10$6ԗ!9ѯU|vϘ΅.#/ˎD+jw^,!rnVOtcyҳ̍|\j 4$auC"7"yG&qcyw^KCG5(s?M6YJȓQCUq矋"v+Wwj}Sj2)vJRlK2xa}4#dh`dݦxݽU-< ;86}wwQ4.8EĘҖ)Y3/YS5q'4=8eWm2n"1MVrM;t[`qUs6:βO8gc9L20Lژ!+ӕn )t}O%*-p j{RBWo8l4qlR5)I17Pa1'iaCWY0jD(„lYKSl%.3ӯ =!oo<~̠r`Lu Bcc_/o[WΛɇͬ_ W nuYj~,[QۓR#5(Q$%bSX j^]=x)@qfb!;$U#Dz$ѾHVfNgtLr?|ML ]tg3)t|N%\$)Ǩ3sD)6ɅHz=hDģ󲴵B%-(ia]?`8[P~}9ԵSV_im%lQꙎ{anZ0<`s$"ÛԻ1mV w3h0(H-f2RQ*ev Ms/oe43nHF&K03co7ZX*E#(5~ T; ]we ^Wi|GNrF&zs)0`0Q-;\5g(\Egf]޳Lz 6"v8<[Kҫ"zs(< ]lZId +R@jZNiAP#`G}%eRY/\J+,ܚB3KqT e9v);G%<VY KTPpĬvq V'ڱl͛T*S3\!b4eXƠ Esfcϥɕ9& `=1f݀<  'eR׿(N8G}rJZ2o%Jv3Ї$:NĿat裴1ec. &BhЄ³z'+uMVOtLiԌY͖7X?nlbcHa 2!s(iF%m7"uT%Ps{SR[r$G?1N0mcvM׌E_m[Y)X]L:YY$*]cgC(c%SHzwEq,w8A@l(*B ,]HϰA~tn ri.g>9*r#ƣD sDb#7N4C᢬t;3qC$T'l^'P f>O&o3LGM0JvӐד'D󪡈3,=A5rg`L :8Q;E$M ,e$l3ݜCh +cP)fm`|a[J0naPX(Yӏa ?$BXw _6{;SR'V;ҁE51&nEucE&[FmOG(j4nRQ3k(P%cv:m-Pq>Cl?O)d6!Rm2WGJoG3NE԰fq85]F~y,ms/AE'sS k}5Bgdb<_E7)" @ U܃MϬS[S4qW[҈ۮV?k)*VV}HxKN jx(l \?SKZ, qlQ ua> bE!mEs{ >M~9SwVKmJI XE{  {p-̢yP3uq};Խ4 "~^ƄOIn &#)7`PZM#Mc} K"A+BBq 3zsa=TbG3{ьBPj֮™!إ0 ;b'[>>-̃_w g7 աDցo qsstDٴ uXL#Xr_βȻ￰JJKҫ?UqwF FV׮ cHIML1iL#`#"+FW>1Jw,Dovp5])a+71dF pԽ]pOzUq`bҜZΡ[p#~O>d hg*zzx[nL?O G^-Y#2cFg?Kwz #6lZ,Z/H\\Z#Aޭ⺙QA0_|P , UjlS F?lsS"/\^N&IO'DbDOQF5{:hd[WM}|>aRkg @" %3m4B ]#ɓ-6HH=#-䁁1Q󨵖=S_*٘<u\q֚6QRiS''|7r9TB恌#!JvhjX v%Ei&H7W!p# mHX./D+Ņr"2dh[׌ve9m@--qIp7|M73\OyK {>-NGL%~)I⋊_Lr '".˄Np a#.W{Nk̠>=V?hqb/V.hcORhq b˒\$>W.}Jn)wsFWEy3h ^*oc* d1v [BcuM6y1tB2Kn 3. Q$` m%`؊Cu8o`>I ;xC}؂¼ʾfekd:Q hҚ_Rf*T43|G|aPG"¶tgi||\D(6.CG(vAH,>CtkcOUX0b'ľlÙ4lP<<6E sIynb5U`s  "LH%P ]^nNeЌ5LZn>6n1AL sbwlr)(|ITb'~ v ^YgkQp LwJ`e=J @3)VǯG?@ZcIa*̴WB&Om\*YFˣ|#'CJ~/kp9}}g}v:>ܼe@ZkR&Ecj=,]?czt9},D:k0H-2*̺ce^I(Nŝ &F' kF6^He# is L).:ݕcML0aj;k7(0iJe$Y%w Š5NEwhc 5wBv:+(Ϫz3e!NFvD|븥5m]K.^ks]cV־$L226-_y0I)gBz5$CMHoBE1Da(-u`D"VDq.l}i<gSNY*IsZG$] A#@>[s\+)" WA ̀g]>Q B1M̜ XG!sv>z-D{:Z CUcy4 8 %0%[) :;0^IJs0.ak .~C y2f7cQ`$ȗZ7.W,*AW Y x;AZl4t_x.b7G~ÛնsuOo! 1xXrr_0+@}8)cjs}$u^&~-2JH:41|q?vgsq &D+Ivߴ%zZZJlBtԚW`v`<%n7ho: /]ERG+b~ZIyf^d ǟoRj|ƊR6t &ynE@ަϟ[/@QIA ?6TUfW#:#-paٯ#+{/Je*8H2|]{Sm[\FUV {MdMobSvIdwKd*JLj/5|ڵZ%h@#JFݠYPI,tGfM5u~n=ijRzt)W_XE_&O:swKNYzNK- myrRDJ@Tgxt=} hu\wvL'`*^֎)RF7LD_m$3ѩY&)Qǿq}i ՎKd'aP8o@^,ޭrxCnw"P(GI]Wm*7 巽=9htJ~VSmlN줚OoUHvIFmŔTF3z5%x #G98Ld]_wx}2K7 OZD` L ߭9x\U^*n6i~OF-L6`Tŏ& 6P5~}B?ApFlwHgi^|E\'`@1Y>I=. t&cOaKD8p]6-L Ēe;a>3OI/T"wF7$9p*nUv \ {N:u &&C0 oψ,k/,6\?>hӲBIfK9IYetf&i՜6!?jYxqM.7JC/xx^L40sXdU Fw9aZ-jt.C@9Do']#G ܫ8(\d}8cvRU_10~>V"aϧnV=$@9z >]+rȬi*;,хW%4>}O&]J`&?W'[V@E88Aѥ>Mw4TKHҖCQG<(Z=\ L I%N`a9oϾN0rcCBq9:$Lyn`Fũs#~z=?ǶCa!3,:sO:i~yOmcKCM:%l[VB>kU||U߽Q HnpH']yO$C@L*:ȗ%0\ "H v12i"Ђ1'b nrlT 6i7EԞ"DpV oKm2JmX73%-qN29kzV'0FFVb4E<* 9%1T!P\j!V 9,iؙZ9&K3srH󴦃aTi.i~z,_-#-*e1–D@b29+KP8Ap ;͕\vFVY,d0_hAb]:݅.MMSܴOG[ >DL<K@n(tgQ-,c}r7 er7.4)Єw>2;KڑX13A@\g/_oIIٟFM}.N5]1H|JWTj'wr0Q#anD+e$@yn 1 { <$Cg+wU1R*?r\,צ,y{!LY-\i)1. ZΙag|]HnyjIԐN.x^Q\u=7f@YEU,̩$&eN9>QL^^ϣ'ü,I?m}SM4NM=Rl$e)t2 t.殳 ʊ6qOM? a+SCeC[ Xz@żw_ AǶ9J +5yWUA2a}zknXeB!|]*HW=]4jGlTsQt5*,_WE/-z۽VsN *yvBct٢; Wnh/ǀY?c .hg5Q$)Hf+~#j4f*RMn6zWH̭& mș+#'j2]t< UϵeK673~1"9~Xߘ ;i0O_].E7V2eKG񺈂Oq ;Fl TLu4~Lg6D7wQA'w&Ed Tް"a &0-{t ,B # /|6{bb߆A k ]Qc<~fM P,+aOZ1B2vGuyկB{B)!Bi>SGl~uA)'4]V &٘&/_V 9 ̖/ mPBZ `FGfoN2Za E])YFBVF_cß6orlޖC /h+,E,H辽UfM'7YQ# }Oa.'RPﮚ/qyw0v6ݑMW9M LLbxr6TRN}h84XZ_r  7yXlEqXݥ0el~i&%4O#bNvP29EYW8iF]d5A[ {;˛12L.~N1է)#-3goZI)m Wf 1rg#xJ]U^g1er@:cfڭpQݪ_!8quʮ*zr/;}07#EVQ3v{sJ~,hFkSbK-_`ӕ^zf@N{9|.ov;jR,Y`9;W5boϸ0MnNM?(H[ *'+1a Ayhz/@)!>GH(<3@ƭ,A1S p^簪3ى~|`RH8A9GGŵ&y o S;oa p,i.d++9E~&x>C .@.lo($tLgͿc`P-;şhG4u]l\AsSܳ.e5TqNnv Ú0a?H Pw2e~|F#c$l}'BHOXey*p?<^O9C?b7jsb0蕎OV4.)E+C|C;DI{(B[t& O3f0/C}xU$ǖKI}9`> u5Хɦ7$e' `5{z˭[-c|266*l|T]>4va",:K0ެ|f=ҒOyFHy:1k51*.!_a/z$g{dP *AƚO":]b {|ƹec32%d> fbC^hT+mUBO9_O5 w޷C2mzeecFSʡ6&,$Ʉ|Hv2,̷Mus|o٤+%l:>ʛB*eQ3ΰb1e)$R}/r'P,xolz=y{߱Bْa!d:ŽZ[X2y~~a:ľ1~|XÎVZ" Ϫa6DJ >co%˻G:Ag_mUWVS\rԯvfUyֹZFk|U&,lh}s3@ǻtAfkYaH՗`]=g$P:(ehճ7"f tk ꇇө-?.%;5y;Ѧ72uc81\uqf^.Cu oNt㡫/lgg7궸z>"G_pQ@5 n#°gOf':f'pUnfQ "8~ֹ'eL @HsVEf(.iG!IfAގ/20yߘXؔB'Teh jG: =BL5ԯPcy3@(> 1el5Z'Qi l?ui,I:9 \Y6NcT*( CPJafyKG,mɌN8^&T$qnLX7Cjg0('4F"EYFtʾ N׳ty!N)y7Stx7awج8zɉ*,+%CJՑGz݃גᑭիVz<٩/3GZҔ'@ElJύ 3)tjsY1yK%֡,8Uuv`dyҩЎF{H 1civT)?I -D4y/ .Sư3hUe@W`ɛ)\'JnAۘ9v7+pv+[f| -8mJA${H )g-IU W6|5Y͑n !f7.w@1QI|vd,wP^1&<2M (i n} t 6%K`fpҰ VbD"i馝lߎO֫LU ur@M P65 uh&Lfv$Qs#{tu9dv)!&ghS|ū>{g$9rnpwַ 4b㴖{ 7ѩbr Y{vݺ( ǚ nr~J/VL|W|FO*OwϘk!3Dܛ'|fIqC:$+8!VEǴ+e xLJ"ahU 9[fh 3.\b- B5iyw/@NJb6Ic12MQnpW?H`[ ́&:EK`۟=Ljh2=p oH8!l[+?Y2ˑMGraהGafTkqg(סh.{qyf=GD,?$rz/j*o͊iqсP2-yBu\BzB}DrtmKGʆ$ߡ^8O8yW9@Gk[DUͺs*My.QL|[UKhRFx#jGvvg .$BX\2>daOGE tj3|%\UxOOl9 bU2q@2-e͠ҟ]Kk3~8%E]+:`TШ*3Nh;tb־WsqHJ`mq^UT-j $~c ~kcl^[$>Od-&?n㤑-T.5Kb W.aNQ*Ū@Z}8 ##6 hm]>RKo &O's߻Oa(I{pب,Qj~¸f`QnJ g~ۏt+/HVFᄑ7YJa(iy-5ʩZkklR=͡Vs'qBEc4PfN4 pG%EJ m47p`#~p/] + # ^1 {^V,HMxVE7*&wh*aYШ^[@Ru$1tu3,g?f (@F}ZWDo@Ptb,u35$HA}nz/eC+VϏ7ڻF5{$ nZ:|!w?wL;ff# Ln-=!.Pus}v!וo'45ܵ4|kѦbK{ZKώ^i**qKP\-сz\Q_AL)-ibbHW M,sH$heQ]BY VFwr kU U%8*SC%vJn_W8hJkLSd/_8ګMmmW55$fN_m\. {:jF3' &bjfhiC8GæU&!j v謑ds;u7*UjUyEcApr>i0HOVcY|UDk_a5Rya,!T T5ݥ]L<9(Lt&іs_? )IDYY|Ҳe]licNJt"t·=b]n}ǘc7J?у4x#[YTG d>SxqQތB4^q]zۂ2;5Ed9;<FOhIDFKL 򂎂)C:sS y@b|xG=`N&AA7ۼu^NN͸l,i)Lds7G c!bqA׬|WI?;NC$1F5{QAփ0#x-3-ld#@){8o"GerI%9FXvʁM'%x_QMpϪbĞSChB %- A;DNfKfgȴ@é(Br"*];!/:֡d4eil~8%D*agAq G95] ͤZ9H[jv+dB9ρV_iRM/K׋/eT #WBTs`TǀL7I&o`uat<~eiy:? &In VOJ[_PbRdUOuHTw}c3}l%q% l%ň5noN%(P7?'Q VQC_814priIIgJ3VxANiF' Y'6Q~RPS}N,[F̈́CPcx2q>ϪӦ?A]s.kA;]jsh:j/>PI91Q?}l\  UUL: S[Q@ŝl݆Exڔ=|w%u0%=98&OۣM)90x]+ h=V'nQ+#KˮʣWnŗ!`fN5+#􌃬Gt@`ϣ _aJl:`|6엺_V?7R! " ۂ%%kqy9^į1L?*/anaC.^]gD'/e?͠}t߼aK`SknI/@>m.N2Mcl<*CqGZdƒMmR8!$$S`ժ@ǓQ55w`-y͋T;| 2f>/2$®%gg<(5lT_ oV50ab1t\U;<Ʊ)Ȍ XF2,^1rT1F(k@ecs\# [j{ѫ5DA<#M‹*>jz4w^TH5!aK(,0. ;s;YK# BaL4jGL ?7Kߚ^n.ȣ^ ~ÅS퓡[\2WgOq5 P$(Nn~@6Rp'ÂX߬G(9? @Q4g+HMmy\gVM $7ѫNJAswY,'>ڠ£d]Yr,ޞFd  )> E tkβ+m]LMIrwV>lӃ·&aSL biņPaRɜ~%ieD;0=^4jWN `1}^^a뤤d$OcMy{dU!pl/ ~Qѐ&4:7e-(*uZopx_3f턝~6Q~.X+ kf?>n)*14iljBپ'%s cre5dUyJKWL硴+i~x|8ڴlS,N0p4)~fx`U Y9%J2bXgʆk2͗I' bNEɿUJ~~O.Jj'~:fp#${7ـbG }holgEq!Qz\[r+~9r9Yn7; x[jT^Ns Nuc]90cX&nkgIx_!(|3[sm檒Oz)r ͶKg? {ahcxHvxtZۍyCDcɣ|KJ&DP-fjmB^6Dk-TҔcҗ 0[_,n^2'VnÙEZ1_+PRkr00:%AۦSu?H $lC8dkН8ѷK̼j %<_=6ϳ9kHL܂^+ܣz L?R1c|г,rx%"BG|Aļz2@QA@B# XƻI1gzrb%bWS" m>bSS! 5lŦ X!|,i1 uKͲ3"6/P)i3BA=Yyw`͞6'E6o؀% @T9r_'?9, ۱P+ǪѠT;`u'8hpW,t}Dqc$c#Brl,\q IM(8b]eH#uJ%ڄR{avZuyDgA<@-}XO{Z5|S$8;f)#4l̦2+ۣD g֢ȦmcN J@ql//K6$In`jeOU&uWa FƉ)A?ͤc-&rKL19sIL nQ $uB.x)gmσ!\cWjٮ~SƋn;5v"'YZżDB|э6[9MdQlwKˡ`u'2r+hSկѮ^-W82R}R~Z#x/¥,|T b |+-͠VDr4: rz>hXr JXW>(5\ xNIs1gG9y|\2Zy OEՏLYAip*JZ$ M%M } Ob)-:j*5Gcg)N  vs R<1&`_!,·g,Vє({ocؼŲw5԰Ut1U k '9tfm\bxOfQH*dqBrۢƞN=:hWvUl&~XȊ|θź]VOxuhG%ǹIԡp}#y_<'j wj;$B 'qyaq;BAӀ PW'3Pg_RnX_zХ͝C&Uk CnG`H2E.;1ЍSed> P 'F>nB%kӨz$O]l^Xe_ ܖ2QW67mtZaf($xUuB)N^=:bAVoJBRd.cF hi`aT}LHY1ͤltp^*S;OBAڑxB0ؘ^oE" \ԇпH2.O2TO' ןHZw ] i|[us1!0`Pk-`͛<.> $/p8d;`8Tʛe`~*N/-L'ץ%8Έz0m;cXBN\ӰMSg%#|$N^ΊvK_C D KqQu}+n\}h$1OC}zߦ0cPu}PY_Θ< z̍]uG Rq3cYnCˡ0 P,r@P6HD  Z2ZԃK=H (W) fN\F;nXr`Dkm Qp$5 JOS@tN 4uYY}̍Z$SB$lP] K“>:X}:׫py#58"]3']K^)G9G䌸(T_nZAyvIK2gU:3 qTqlJ79p W V+i)-*>Q~2R^ָ}sӡsqoqtv}7(. f:^Ts<lěu1(J(e@ ! "O{Sճts+T <#\ZJ{FXOzmK"#'&e1fM=AuG| 뤛T~"kҙ[ _08JqD4 ɪ>vXA!`w+ c0k47-뮢pAwd$@3H-_d_A詎Cm()_X"<9݊ߪU+*(Q ^D_7 %Il|,).M]Ŋ=Ħ@ L E)hCxtT̩c)`*_JTǖ.h3T6?Z3:JdɩO57۟QJOBH2 |`U<)E`Z"]aO^QЬM`̈́~:pʰHy]/akYR 4sHJC§q \L+&8@r`dZ_`1IxD)u-dt|o}?K'%:OmFKeeе~mWIE2ffXP ĠuL5_o؈&ɠiTO9)jl]`CrEad^e RMe} vFP+R7g2A׷R$E #3ж@~>XeC3~S/ 51qsO?Om5pd/}XH'Іl|D6Ufe",{ܩWzM >h =g/Ɔ34aj~M!'vJyF띫l j Ѳ8QO?^aw+Y9Z sl2q+A=Z5ev\hŞ~j84pGY&~Ϩ:GdNNI,!jWw]PMDdta5Ll_9XպC6p]wډfOC[#3 )eLӃ,3DĵI@q[iA%mv+`%B4[&]XC\}ξ~G_Ý z|.U8M$%Tr8W%T !,k\^Sv*ke35`XcIyuMV-,)"-on?ټ%iJFZ1[F y8I,G%=]#;k'zagaJc]׏n*mOl Tؗt?-ʞ)J4!/v;.B!tɯV@҉N<]sc>:zyQ #co{USeocv: !QS{fn acƻe ZcݾD"Z4I룲>+N;8 5__.7hNXQ~k4f+g^D"^iW;nct!O$۷sqL-ϻ~n֖[\=yrHh/uq6td?zjr Cm\\E&\& oG0:3IY_bPd}k6^]HpP&rxNմհMF=Ȃq-jx=::/okd26Y &'2&dG'hřZ:b?BB. ),X82}kP̽t'W :v-o\BO;Tk%?C!cX zC9A,HS 3 Xֺ7 ṉmV̄Y_wLۚgh=K0mM4cAכFU*ǗJS [K;zsf:}v Q:gvIϪ=Y֥bs8;(JvYrB\RБsj\z`kJ[ c!E}8:j1f|sz?4M?b"N՚\{YiN$ c+q(Ԣ5>uL b}Z(߭0 6s0$e >~^ڂ7mXa 8PR+*,"g'z3*D^[*/Ϯt<}>|ibH>7XZHSXZ8G0-SJg4Ż5-~}4؀_T}!"PUg[31[߮g.A5I8#D [*ǩQ衐ʻWdLVV5 ]sl&9d6Bg,#6k+XVZ[-{}OU:űz襗'~ζ3(w?;u?&'$Ytw|ڇ 0/8@>cD?875ci$wuď9W9~I~M ~#1tI"C,)|.1 T 8Y 6z>d.#T&öA7zIgW9~5&>ZȤ!9h:۶͎Co80/| -du0cxRz@WJ*U%zА.Vm4Cz$ G-t=0\e$_ςojkXHo_nr{K ]B)x!.?r,Ine љ𻑿Pk`u hJ9ߤ)7i{{a2*ik 0JfVnǜ#/Fr8em|ALem)`%%nCB(X;N$9g/)q|G3a L;GbZm=i `дqrL@4Q/1 L5+&(;  g{P6>Nǔ?xoY#(ng`&xp5zO>1ƭ忹!'b fij(F]Q"6 i<1hX@`zvt{t :YM 2 ‚3-Q=!`a[lubE 6jkt '/!Qr"tz:JI}rCiY3\*wF* W dl^ X#o~vG-[#iąَ"͟nR̙\#o[6*kpur%Y+E߭i}xJ~$ >yNAre RԤ Hg vE)QdoKbk]E)#'b]Tև}m;ӋX1+hJ3BU@*> Yn&3G@ts;?f^"UN|QaIԥ{Ncƶ|1&Va( LB FoDS*[;_vI顛R[agA{՘Ko4&t]Mo@/Q]&rLO0c!G.z= rNӬհF:r(VP+42|(1{^p'_吐7gV֋!E<{m/4J|#39%]]O ~9 &)9 8ey2ҴpL/9.(ѫȖKi녀aedmP~==\v^PyU(]a wb 2E O/ůO~+,Ǒ S% E7LIZwŕm&[IB ӹ|jsZ 'iͦADxŐ *-(r `5V` > <؆y{:>"ON!76"pfwApO|)S$F +Z&? edSxn˹l#/'84\;CҲDGem mDt 4,{Zqs'؝=N+D}X b"ەraޢEo=Q# { U=Xt` VSE:oֈ]| ƿ5"\PIDʤ0joiqm) dZu˦HaMwL{̧%,.x݇(@vM6( *h&1^ML_"Quݩn`qCN7M]zɜV(w~)D}Ѣ6hGou4DW%`u?eg85X9 6)D׼NahJt.kҝmpa{oV˜&Jgp~x}b1ZgwU)O8 \b4A4S`gi؜'q $bB͘[N# (W~yO `_kΉar-tH֧rq萁1m;- k[bPZԚ34Cz5߉[,}`-) g\p4"epUxАA(72''9(C֑W`@ɣ^K4O.;HqΗ!"d~ل$vQ?.-@<#sq ҼCaǍ_Ϙ{csY( Y4O,4SSǵWb͟rj˳eZ(15K6?+y7P`75핺ѭyh-ޜPqqI9{y51iP/S .| U#H̜^ηppd^P?WpdzO2,Q5{UΆ* TS@+"4vg.Gz*/dfRd+(;Sy:6"\C I;'KH14'~YBI- ƑFxY[@gKBÕ.iN4&%o/0 OL&D`2qQN:v1`SV @]G9Dn$Tf a r'm#F`AeZw):@Ug&d&*B6pV}@b mJv%y̎Γ,S(Rn|c›hqj&kM/? ~-Y^9RUд-S<=`Z~7L1/' q-wFɫ04'Av(ʃi X&4G|yT,-ҡqɯ_鄼J7/U>㯦ep ߄72/۩b@i$ZVd1 m $P$Ҡ~Cv[vnY'mz/a[Lڡ zAt&ጐ/4,iVV6fq"REÏ-m̽#43'&;"FXAK[~7,; "uӸL_u4.ڸA>dl5 /!-P.7W\ƿP$U Qaм z Kn鯵qr ,W9Jlj)V@DU?oB(& !gZ`AܴcF/wX:h~2n_>ȱ_^/(wPDuW@t(!V&j-hMض~)8+K5ɻeB=aas˒J.7k.Pqv? XxX+vwEߍM} ۢl@_@KY2{Kr>EgЦWtZl x/n3f Qí;XqlZyȂ_}4ᨨ!@ioj 黃,T}kjtJ3 )Rc@ :<"/9-+pU spn :mD0R -pK5a[o~UΈ΢ 9g\Iq`D6m`;9es]փ4ZDug|KH|'rP=$M%Itmkpiu[e TkljJu6w_& z2v5L?6;)Z禫+] #\Ϸ:sjuRK΀O˞ ]zV5ǫuAZ?2Hĩ'P/&277S㻮yIZzi¥ 0?tQQzh8dRch sUٻt|@eTOlŏRE1͹z?@+nLsi =񄗑 _D_8`Iu=%.wadv!:ˏF5W$#ei2w;$qՄOA"Q~MA!4. 5c\C!6Y&s͹j_2)CHۻ fE7pOqWYHU?R1?Յ*;xdԭnc Lw$>!*g-.;=F0]o`Ak/ 9V wQ*ƑPfEf ذHP;R(ޡ>9DHX+bklMFۢyJ7U}Cǔ[ȬlKq1 l1DU]فs$$1źkEĈláO|7W-mmUWH*H-cz|o5nwV?7} ʁqV'on=uAxX`P8vC ~ٹ"z3]JM|;! x5d]kdo^ۦUN0U%!14$&XusGlMv.65￴󪽁0U\v[\6%`m-cJ6o#(B2 MuX=W{\z5(WxE X|:+' hyw/yM}o!U{K;Q| cOE hhC8GW,=4AuP$?ְϋ@>ݶ!qP2g`-'d4ɚYڔO>)Q|yC@1U8W~s|Ψt1hl ꨕp!Y\3Xl9vo|^,) aY4b)R_筴[ĘRN2՜1s719Xf~<;82p'q 7/:1jw/)LɆ(mN} FTXJ(B/Ǘ_3WS:oİ~#P?{ pxz9q مI2dP٨ W d掠wΆ~-HV|z&{.&tVj{Ku;jx[gWxū=>2ZW6+I@sPhWf>ꈨ'ޙU c"֜"#sn<ۅOiCWut* ٟ;D/P&S{a%Z7kw(_K(3f_ ] |)&5H$l_ _F ajEJG#E &b lQO6X_ M *N>SQU\ʯ' #,ROB?A~혗)Ω\m-"P2 ZRl>jː\Ƈb'͠ [41eM)^HX?CքT|Cy9A(-v:HĘUC)vpzJgRGRJ=fz]VNJ}xozf诀6ʺ@Mnb U/ }~U[:ohҖQʙ1i38'dL&K!^n>+RJ^TE˚'h 8郏Fծ+΄:Pp$zU|rvWUt+Q^e'Ѝc̠wx74opr;N-^iGckK$PdYl,"pM _167IDuQO 8p6[zԦ6-Z"^ ●E^ K%ou_-sb: :پ k@ sJw0_X{u%ۺmgGۊ{KA/>%@&/ۍ,ψ9@'\ (3a[4|<!D$YF>\;Dyl 5^\fz}A2_Ib=a'WΜdI~DRIN󎯍RZ-a>| CMS7vٍ q:7VI`f'bHJo;u6Ti+<i.u{,.m.8y&uwVs2c>|Nb'w_}昏|N! Vb3zE]^HPB܊⡟`k=WOE!&zG&90\5A;J~U?v\!h^ .I- .K},FL+{ׅl_;%r X+ ۓg9Z;@f5N8ʶdN*UQD@14_$i (mϪ.DHNs$I`vzD# !lnnĘM6*'v( pS,OAP*Ѥ!RMN2&aW PͻI!gȶcHL}*)ٖ:Y^ڳ3*Fl(S;✹šdDH'=u7A>md?^M. xt~MKU  2PE } pۚ^q8w/bzb1YkG`s-wIݣiYx~§ xGWoZ.YPTrk@y.*D^1?6P?|K]:ÝZf?6|.^0vB nOji7]Cd~G_5CB03At2Ѭy@B[ȯE!C+g :j֓٦.0ЖX4_mPӜYOe-S`Lsx -PzFdqb zJ]Q ai.,Pi9: lK  P4Es+~ٽԺ썛jQƲj| 'Yjvc_z%U_{K_v=lYY<'4!ZK Gey*5@?]MJ,Ҟ4V;\=  Pb@m7O)2!C3&IWֽWNS(%vݭeGGMѹ+&I+s֦S͹ 0"W sv ӅjB} ˢo`;Z%6&𙞅5hwR:A'dYU2%jQ={Պ1Yn!ԙo,~Z׸7+#<O". $eIĀHW38C#q(ib*Qg pwR<]Tn\̝:e}HI☕&8n [[=kRQ?Sʢ voL%~7{Qd|b(J[f0wBr8\*\rܱcFVrx7`r3kG\$(pznDž@͓]fꈼ=9cD,$hn*_}M*- J\Vzjx[V*;A~+Ң\2. dK怵|C֭ TpDNdc*zNi`*ZLFF1eH;З+AQE{<#-iW(jF VbS]̿ K;0wn@$| E|%)T"J3"#\c#890F0J; Gs8:7BЍ5}n7*.}{x |-"qGΪ;GBӼQ 2W/!Ԣ!ծ^\#]W! ĂcZTrg2WC^?Dt֍16KkL&0"y\y7h2q,٫=X, R2~"oac]juOE(٫hU+9åZ&ɐ@S&wQXsy+eID>IŭM:&Y.1| Ӆd1%|YibL\V&JkA^||6`%WcJJy{`,, 5r{)yf6/xJYB) &:^b\~[pj>7/h0!,X}m2Ң"W?,t(u%F#m?XtNc'CamK7Ii-v+hfZQ3dL㼉pe߀ /M#Im/3evT|5n+͉٨je7` 8s VD*@Q$1Vπ U2fnMkB:zW$F: y.4#8&CroSHm"8] 8ɆIvx6&$M*DN=#@( !$q:qQꖊ\Ɖo+ BqZM1<2bT4ä-AA2`ҺGN]ߵ=mt__.FK ,]VwI:c0D9YpOȃ-zjIoطrnu>H"v8u iKR*@^41=-PqK` {~jD!r>zAUjJMOUϪ||X]UF6aLПj9/X7]3yy.t8mM~{l Y&w\R5Mug!'rocddLƭv),k8|e{gOP<[^f#OtѫW{^C hx ׊J95c(ĐK"$B_ MOE<υenC5xT|8WLb}\T Y+6ܭrK/zEce_ߜS~:[X˫x7'T{ G3 n"*fXA\*}@Z~>6aނ, 6$Ma%)bb$. _|}'#7 LbYg` #H W:~ ^^q[C"J@陓:s_c@)q([觉+jeA])^wN%CZ*)t}`@U!yרIN/ nbwJ dBDҜX!]#lj ̻R&Fb e7ž 1kiMs]G.~=*t5W6v~h/SuZZ$^7ģ F''X"cM@Rv)켸/1J/(MId)ڈ1:Ms.CSDC̟/AP& Neg 2 \Lۧ j0XJveʓbfj-\sSBITfeS[l>pJguycFEޣ#QQfrjֹ7NFMVP=]P-F&]sB%ЗUC mq`tSy ɛqUKujPDK#YZ37x$$?aL js#DEA^81Yَ[.6#b] ;ZaH?cە!|"I^5tǗycRu俒&]A^SvC&:P: :ZgI"glSᾰ<{0ʧaAbTCsKd_¥O9V;fg"#&* 줌1wMJ4kZ^N҄Yd_#䑩Au=b6 Vgkj! =$o-1-p򭚬}kAʂ/j@~R>e>]'SO|At 9&CvV0-G4?^fx;1OaSTN"{u.lf,jB2,.o!][`~ \ qRÀ[^uCNov;z 7[8\ Aum{#A~Fwl>GA7<~API^ZIDpyzbO._'q1+\^B"fpOD-Ɇ4nCnx)V tJ=ʝHC\kn Yo-fK]:ZE*(0DTI ah3~l72F$JE2Q) JKdP'-VRБPǩ? ̧Qݷ2Tk]Nث#4XBDTo 8ʓ5^J䝕A5v!nd O/F:m~ƣ%1/ӧ2>s B/i"t DWX:DT۔jA叛ȡyCȕ!d >Jg=ع;[S vMZ%_UrH?xM58YpPbD xܵg w5COP;0@cLI0F;a矻7u etaӌ~y>TmiS"*HzB --/h=Ep9Qv[^y1Kۈ>"K 4zysUR sq\QW񫽩T|JʖBo4UFa)67&kזYHЄC4 3o'xt@%y/:""r CqAIMXyx9E:1{:RtE2H`J{5VX]*#$a^gA,!}ܡZ]Axbīw6XSN:#w+i?jmŇw m}\5, :iv g k{3xSe{בgӃ~5zX^mDM;qwfDȟ*I/U+yql6l皇2#hwcz0ظ%zR?4jp/p8j O,w[^ ǥеk ES L]iEV;{() 9'Y"̜8W]aVr|R7 a:^GQ$u=I"J%;"E,Z2,ĂAYinHWa, rl?o( ~hP:݊ qL|H1~=Wjk1ɧꕠ$EKv%DP) Ai+R'#ʧn8ਲ਼ u[􎧭RLiIxWNz8qW;]W2,v) [ 4y6˩ n9Ƚ2D"Cيy-./Qhb i[:h bm[D*v<~~8W=&w􎈪rId!YztixNLp\w nL$J+ 21Ŵ ͧ̀~ى]t[71ғ(sW {s_y`2(AWBQ͢upOWà[q{P {?j80FZ( U9WԲu}CxU7JP2Btϔ>U1Q2 }&ɉ`g#2Up>\+Ai s]hj[^2UmDU Ű5l͈Ugi6X*d{ID7LtO0S/šk˜zh6 lyp )C` vYc3DD:-V~~3{R{E%x76LTA'n+BдBkdZ-$7-\@[i_T:U}܏;^+T2`Q8y r-y>m$\"nwpCg|T-j(vLOftDg 3QNv8NR_{Rt?m54*G|qaPizWrA;%޿o2)EdXdYvL)Gk|T'ܦϓ%4!'ۉb h$"MI!fA&`og[-B8 6pO:B2wxȣ@. Ճ+:Qs;@OC(tK>t|.0-l1@zk] o֢~@qC~7v:<V*`d*("}na݃0HO]|l2Y hK<@ O19:La o/+$U7,}EJp^IR}YJ~N.y%H׹?eDHXk}G&>_yvńZj54(?À0A,5B-Ͽ łkIjf-8nM0Bfaf^ zS=#ku>!0H2xv8'8 lErNgͶzǝ8͍R vTg&U" K'vil _AtF2hQG; PMw/jPX.tsP WdNIaّlN߫E^ JӧNdjL`v㊴ zd6ExUh#xR_U=Dz<﹑wgY3.v[}0e{EJUUNO&mY}uPVM$P*>{w8F,Fm>bJ>3~͕tE [AϜO9EZqjd/ٺ$7s>DBr0o=og O>[ *`KK~N*|!pHYd4bG]wMcBlW̄cܨ5ap6^`LC70H"C9CZ2M"84u,Tخ~.i{ݶ?T󚭨Yi88Cy ?mK\㕨Fa_o-][5. 83el-kb1^(qa`r+CfkWr]Hۀvn egpg}qG5ô#*z  쨜O'cODz T@NYyf1Fކ7e` e |rB! MklJݦX(ݡMƧmk2ՁxV"m'S^ #!7b\OE% ;8b._TeĉS0|b#BvB$ pQdlH[kȒNP6GA(AOfgq{[%[Rm8ylR" ^O}q/|P@篱$>PK>Tv刁R6Ŵ(6{W Vƌu W {C]~uʏ2$%u\<k/ {gml1qOT9io( -q}xPDPdo4 o%dGhk""8HviP,eP U-т3b jNz3)MQeXNM.)4uЙ4GTb%do`#5> EaeޔĬR)ň&7 Y3؄z'=j16ːtdc< M\n"º {j^ix[&a||1[~TZt\^y S!~lBc֋>m];D b:'ʇȣv%yLe"E[uT.U咚[t~ь%DW*N~߻@K-J@~P/Y}|UT# O^HkzK?d8q?Oi|FKCᛒ%ՙqs! dx3[Qt'`6dUʣwfiݬ2w@F}>t"66)eyÐtS)" DJyʪN ͍pp1CΡcWbpG>MMs '3b%J0/?7(hǢqI,+xX+Lxi D n13snR/X`{CkQgiiB1W}]}5QmWzb_.Ls )agZsLP?0E_3ghD2D7Z@hY2olv#aK{,6VQ֓Ii{!#7d~ l#70Me. 9N|لDAcRbW 顥 HjW:8He ՋՕh"H~L]gƨ 5R1k(s뾢japcQEܤMyOd>l,0y/\ beBZ%7ٜOCmyB 7ʽ42TœQQ'ǗryKֳ9{>#3CBqF~5P{H!ĘVLO<@/PXG-"˙J-6"Q\pۛ<5e $3ݞh$+9àR8Sf۠HY|nI?53#|:$p{! 5|!vrc_[܊1:!Zg;7N*a$&T&*U73AŮLf/լIa ^ZP7CJ#LjWi\ b6)7H9_G / "#%g,8v6҃@TX,'-Kdh|a?2Q(E% Rr}&P ѱ`q.M]VSݰd~0&rE=~E `?׽ :4VlV e<&TN;MR"zz9mMt0/OT656Ģ11HnkWRvX!*j((qHMΡ&"!m+c{!'E&Vnϼ[rǘt4_zVlx0s͊u{g$ !x}|hiۂ 8=N*#%ufܰo%i3Z7ӤLmV(.`"`PAT#W6B +#-QX P`R9]x፮.DП lOgt&^%f@oHMVY#2ნ7Ncz#rny c8 NWipǾۜ+%#Z_Qj& z#c5I<=ew24Fh+:#|ŕ&C*r9Sc=vO鲖[:fKss?z\pji\fV宿|꽊FCL0sG奉wkTokDIH\oxAbi^L5/-3_>e%8f,gnmvCfJ ׳o,,eYD1mS-$)Z[t[P1 D={̶Ľ'km>U<ٞyeY.F'Ր=@3utcTJt&!r &%V:_\3 6eX%YW%U­ R>3:~óىi-L56 w}2z ~|,91{>ւ7|x0ZQ;nnw}I 33tx\զBh=lMqp\$'ܯ4z X"Jp)hwJ7_tz"adbb 9ؾ#@Pddybl?ksJ*t/$?wiTL$&kA,͍nV{SGV>sG 'l{JUF¥%3h@yFg@Oºˮȍky˳s8|c!ͷDKhv S; p`EnSC%pVs1tCJUՔ`.Jƻܿ4on`*BL[̰YM#Ov3sRG]V+MEsmActE0`sѰR3#8oM'YoG)o{R1Lh41Yn41 sPOCES%meHٜ-)ZB8\6K`S1w/4G:umBn )y]O-7lM&Fk,ۙrc{a钨Oc=uC,8&% UNrS2O]ܤ$lCJick NkJF]zwC0fmgԭ[Y;:UXh/6u[ 9f>/ XAD }R&%Lk_\<ڝ,Z-'tYFk;\X8L)ZO>LozK9,;A#V~WC/}cch.Wt)6Q+dL[i"E=J2a*?[ Fk 9 Ѧ~_" ~ZH`- yz7_k%{0w8Q]Ebt&q"K.Ϧ=^QY5wt'䗴 h5Qry|bM-VsOJ4gdl;'<)ۢVPvWO$H__$o)gL 4hTR4wu/}tW@Iqdll0/|mlxFa_ 7rS؅3a 8o 0^@wq-hՊIbpz*Czi؍#C_V (.I 31 f=UY|Ԋ5o:a!g@E3&4b7I;A]Y/B</Ǽ1R7p#?N ]u gOZp>zJ>Y5AVsPf0`<#ejh3:c6 ǴI' >KI7=[ iih}w'L B14 gՀ#ڳ׊rᜭEc6|,ވX`@[Ŕ^ GXvZ!wGI3!/b 3=r)i6 21k*W*9ARENu)V`:RY>SI-K^©A>~1W _)J m IQ{ Y==17.USbtav*`^]EI'm45=TvW%@E_3`, NAVӟ`e%`)M{t +tLU?ĮFHtK 8OB-hj/GڂS Gi^ۣV*I*nbY@@'Q P3zAm˺ngIx3g2X:EG"=4k/R0_% i_W?ũoT0)Gv <İWg 0}XY\u`M~wwUɼw-F@44a7\-!SBu@OȮޟh[3:eÆMĶ (;[4GMtRmv8FӍ$bUSj`+lT^/+e$6tYϙo:=MWW epamf4]|>P,'6l=sY]n?נ)I$TuŒ1*xJ]/VDDzܛ06@w/jEl {;b6ފp(a!x iŁ#U`Xpt)o ƵfzQ.4PJ+rkQXnjPUz0ibP尩=\IFhVAr 'f ̐FrtM[ [-v zI /C?e5NqC9SY)&Wҥ/$PEWaWtۣؖקﱧ<%Ho(/6Glun%s}2;'txx#E87fᅺAvjo KvjPsw O82L=͕GLhw;j9}QXXJ|Ej/ eh:W1hQvv>h6y)\-m+iz;i VE,7=>*r:Vex\ʨ&q ehz4zC5 Z>e`nLs.5=9,d/~3 4G"nc`o@}GG_1Ѵ"eioO3LX$: 6.—AY/Vt޶ {b>jȣ;3K&e ¬Ebv;S1FZV$cВ2kNգ0r8V후Lkzni9WM?27'?h)nA"o+dMk0#\y3~_f |@j3[0:VҮZ}=9`+hQZ-Rɨ Lؠ# i%:BӥZ([ΖFAoN*$6]zs5J|LVu $`2O$4~z8.1N4jEAsftuص!&"ӝqW<3v*3Fڵ*3 0ei.VN^c1e!yZzjpFߠ[ (C_"їZ;KH[1\{>Ms(d +S~zRI>:Z $Ѵ'l%Dž$DJAfWxծq̝fٞfh4{dҡPaX5$Ad >΋ q%1 K[&*%MQ\po:dc>W3?bA~#]?*{ wd^]t^.hQz#xM5rQ(kW+ᷝG?pdc~M_T5C~Ej& Tj#%1s( ܁E+jN&`(<+XgnPV( qkLU8 u-mZn 862mPh~F^)IKy`0$9UxETL b-1Xzjca"{ Vcu$(1Nb:Sd|L3#´[2%7*-I 0xi_TȣdWWsS)^zAy63z4j@ͱNU}|!@R ża7;*J|im]GSo=G崉U;~ޝ)٠dy[CGۮ\Dl"AZrr` xI$^x/LsDcK98#?.M65E+ 40'fdQ ~ H>HϹWs5L6iq_BUUkfƥ:фχ=gIб*ET7V'Vlt=H)&@J:F8_L^/ňW )wW,S?w-w/~n<&L-޶J,jOC!\Ec_Bihi&"$"G(7j}2x1cQn`o/@20K4J kQY겕,p hk#}3R h_|9dxƟو4s蜥\+9\ tH-b"w43bTGWk*:ߍ(j^]OJhy & уrVo8Jņ}AU D|bf[quQ&C!c >d)l!$%J3Bo\6m{^=oZ~A;-[9^i,Ǿk6'#$2 ;JJ[<@Zy1b;|r է=HUQ8uXgmX+x#STݜKo;#t0yCF {-4RLpPW4[)++Nٗj9#@X#_D5CQYOhRprEwb58MXUu9sP<< QeLp@+F]d!mL/%Bu&N?k9$7@fe /l(ڛ/*΋ bs,PsI܋mTwm,k$+xRz*iTL7آ: 3oAF݅R_wdrU Q5 % R!|r8Q9QM.]@&u|k 5Vγ`SkH^;A^56[}^<+=Vp%o  DK%E(!U,`}þȭ.櫻7x0*"0`4K ^+xR(Ur@( .^^ Ti@y V 2KCܪ=҈]- A5iĮ68]d'ߦϱ' On9>@-^;`rO4Рo!kNƞ.Z M%@"2 fރm{w<ՕuU;L ;}֋jF{5o?|zkCDhWN^z鿪| m6ƀ5_ۍ=#[wG ocBֱ-Kߣd^GWSa0 o\?B5"6ǧN=֊,S=ˣޫuyFV-<هLl_d;b- 4B5Q1eaJ|y9)`;^纍o 8[K~s . !ˤ bpTvn%-^Ԋô=0'M.&z"Z!eԁWr;VvFoZbwǐci^'IP|kq`P{Z Էf`2ӇNRwqV};:^QfƫS{04S*F+SW4f@g iDVeuRw|N &DД˴ Fy齪XӽVZVr .`yu2k#V/#|k;Ne7. ơٳ{>-3BBʋ|k7Y֔y~"513IC1 $Al'~ "-11؍L' pMMzϼ%zZ5F'>'?ܲ 89em5Q/:fexNf}aLwm4>hQNZr_{!g@XTӌfX䠟R8d~I yÎ-ڲ ԇl_kp 2{YiC+jch!סQIԤO[½_f8!1a {#GWIX/;6bA)4^0;~px&[",=88:/X+J*r˞Df1CajD66:x:uJj!_ "I 8,U ,3r˳]cakOZr^ l 헒^/ȣ2 o{x OM?rVL Fi8j8C2{y^ v8ҰR~郵@ @FȷFSdN#^'KO2J]tdw'Ĥ5Pbw| mPrAvigNcsGv-ZrFrtRh5秥hI ,p0zt-8\<|@GFhNсt2ㅫ"tC|cJڸdJvP_.ZaHdu?ZCZ[Ԏ|ȘGl v3t޲ B:H(5l6ƮΆw-EGS_׸lWGU.3ttD׈!(j= FhE}RaoI.7WMܞd ߗ"rզ)5@V= j-cj=;& O8 xM\E/A@7\ ~|vkXKwmlEINOa2Ii'Ýhe =\qjFB"D9ըlc 諬LYޓ4qVEm[Ս ^7;hOFuEB7_M!1(Nt2ds ^ W1H 9)pDs^* jF{;.'m oҘ0^ 9> ˸o7DBf26̪:Jդ)ꀅ.ى@,~́KE?8Ij.S]@X Zk֓50EMMZfBJ^^c)oj-KtC*MRe8rZ?{k"['E/grd[ g҈Tݟ@O5 o\wg8YK4K㼖1:4aH/&FҰ豘0-]e H8Sv,Րh:Mh37ӭ*Վ\V ~mùUQ Ng 5n &ir !H'3)kH' A vf2CxLL*mؚE.[DF&/:\DP7UZ-zL\$~\6[Ȇܨ25GG%'l@H_3z( ?rcZ8]'yu"⭌Dx6nhIB]\y?q:xI )ڊd~^7rzT}m斩L&PqY=h5 ֳz5aB]L?e[H9ЎRYCB#`yVڴĚ"4XT?=C^ YNs2@U¶Tsy*YpxI/?&NTplaR_m9($r,pyQEm 2\co5BBy~xL]ȟRB$yVKoؐp_DL8 "oO|YlEn|%u%;Cێvs# ,L}OI ` W9׷;Sc$篼 z7#>a(H۲_<߻^(|R QJVo6-8s=^ND|MnجB`AccNQYbY e4J\<,þ+_tz>X]T/ӊ:X ;,; 5,h7RyHE/qkopLJjX/T(" $or34tK߻o)N>|&c5Zvˮƿj&v* ?g o݂k<h3ӚSb|&bԔG6A?w"De1spxKtlikG>›E*hK!dǕw&krpGD^E#").b;&O cO|4XjTX v( jB('rF{'8; =C9^N:h\kӸC湭)U+eC^/8*2>l+pYhS`60>ϓxϠkCGR4)-8_|߈rx3GTrv~h:WC5BTw!*" KI[t$>F<jGyFb4;<$̵0-Z%z]Zjޡ«e8zztIU;bDRZ xjk z)*qc|}`8ewq-1V'-tnXAwE-ZwoD>PyF, DQ]q6;Fk_pmXx,`m`7YCz1\*lwݽ萐LI, _' ,].=֥ͳǀqw\.PR:QXTdq=WV!MLs888z*!Kft\'jm>0~dۙ+3@DTnG/֦HaZ"YTL 5iC:,8Kv疹SlP!-ĕbSUauQZVu>KL\l\UOY84ު8j}krvF5r5yP|epl_A&{pm :G%z@Y(W[3⅘b\(8Otm񄭽4 4omK◰@7"2prqiW.&},ɼ¶lr-@L$}X!}qdՑ!\|1{hF3P4;D3> `\ fZ;sLF"7j8Xmfe-P䚲Y-uWH1,=^^ ,ҹ~Mf#Lx$E ϥWw^ޓa[5`´* -\%usQ̢$KfLRoؖ%31"lkژlh4ZRIY g>-9rZ- Lʶ&Pc+>/m׿2ߝZ[i"'*%Fvxp̀w/?10sM>E܃(4җ;?%+BmYPQ"uR+}҃HGH@xįAa%v-=huQJ wgN((_.eL$}p7d/Ύ >j#:NrAEG^KG3_`i2 L6jZF.,|v/bH~iu-D^Ѻ ~݊}hV+jjw;ZQ4o O WN~DŚ ?B{r&?+vP qCNmOw⎢|&$՚]ϣNN7ߣ;D܃~`F؆(VDa’KifsQ.Wq1m,' Q]v f&ck3%+'"*8z)%I 97,I:yQ8FpGu[P+- M4jy:7M;`epcy+7ueCV$?:]OQ-@:rRp)${ }H„~Ku[x8PIr2o-kO .FnkhVA=ΫQ)gª歴ɏbA*{Ng?sSلU*n~Q\wnQGoA=š/tMloԠn(Ӧ aRCӚ!M J\JW ~/KN*r^vMF߶Z w0QjW-BIDSj'Brr[[ϡ3{۝b?Gij T06-,HpT8g%t]m⽾>@Gԍv!;Jg8}r! @ta׊st\ ,.$);\~KCv~-.Ձphn{Ts^זdvf|Hz,{f6=6~㋻i oPAq{bY7~-ʈ]Dw>A~,ckqܡN$QK a{#d\K`@>{쁓Eb {/4@j'v/$d_yl^N8% bW7_HjCbv9ŽܼDpxthS`ƥ3^QĹS>9ӜT @OG>3e'&rި9|JkDRF> 3jBge 1˖R9VF*ߕҍxpca({{dNdNc6ׂ|q&ZB<7Wd.n|P+rdVp\w31싶i:_r26_.eq#r-!5䕴ZEүqIFŮѮ+Ef;0>=l?xXiE+ABpB{<8/"<= ݺr 35 8,g! @lnPzRvKPwOÔ|U{,Bv "dJWvO3+t$cy+{b'pcv@0yuz7"vϺQbȸ/Hww'|V X84©d=O=6#`y]J\a)=3I#´J9J<~ՆKo+(& QIU$ʔDA+ ǫWXtϸn6a$X+jW=U{@|)!9hϾpPa)xkmTכLjRv*.=4ܾHUJ2K$ѦR%Nbe/#-C`Sf}{ŸT;h )o}O># 'ug#iEֆYU T~hZBu7@@iiЭ G`U3p8O4 Euc#Bخyi!z<#JJeL*e_O0A2}ݩq[CG,!쬸PU+ .!;nsᜊ<խP`όpxO1rE "XD搨1U-#z>` ̙ko,8#M拶A9afWlхIGWE3O>4W F%y`+m}| e},gu]kK7MFp8Qg-9/2S_& &(Q([ l6F;$,Q0rܗ5|JshUZ[ۚnI ;h7h}'K.:mj!^Oޡj@`EBVW'Q""jAI$/T=ݺѫ1(4V?S]~ː_>sp&p΄x8jn~!b P̑vèI6o, WI.(KoǮ̖\1[>|E@ooiB@ՓڗǒJoᚈl  P3G3=m.uW/ SPBBׅ0NUW _(ƜߢkQ:9nGzSYp XfǝЮ(P\$d-h%ϓsV-³-mŇ"Gi_l}3=*4GK$:5Эq3B L;3͋o(X k|HK.WmXA ]\%"&7 id9=ıu`*siIG9Iz-?֭7m OWp#,?}S^~}&g5B>&XB~ʐ4UU16ʧY ?1pa)vl-ֶTƪњ!ōՃ9cZ}&X/'*Cŭ" @ԍJ\ŝ9SaEM"aן)gGy4i<n >C[)CF:.;\} HZݲytt\+иYYb8./Kd0Sk8ס*{Sdr)Gz^<:2HL_TWԔtI4[~Zb#$}2?6}m'xSqS_| F+!V7EߡxR M%mR/i"f>.L,>} -f[I[oX2Dv+ЛrPF2u/4`hGpZ#3Z *JP)b v -3UasgojxMUu$T4>A|͚~5uKVX,; X Z,X+1t'NY|5z(mϴËH/Ӣ-U؆ PıThaZ{rI| aQE-v(|.ȹ' ԙ 9EkE|j2ˌeK^7PZJb"Z !7b o|0wI`9@tS%ۻɮ5³m􀋬"ɸ@Ek]` ;"̣Ek\-^l8wMNna›c6 ۄaP1{đNP}do{|r6CBg]d DTT'K<ٞ&ni9 )>L>h <{8LaR]y 0bY&WysH_1`XfJӄ"rC0EՕ1q%p#邆/hȁL;|YΌ]IQΧA +uX|QUC4JCpjA7q< +IX^o2&BJO8fu\$"Ī?ò@-/<,V<5E{9 NF cI"QP7Ops胻+ۿ}a%J=K`g? #S4KcQf:y,8Pz|MRFl5CWF<[`+agjPa&qԻ"M j|`>AN ar7pǤ]S"s1|qxҿSjQ@“8!JZ5TZ:M C[msk4sO*C5[(,)zF cu 'a\hIXgD\̹|_,^ =cz0ImÔ{q[#1e0Jpړkpw7G0S&41ώo :`"xu )>SD\WHY*?KB9:TC %?~Gy;S}'׬̍.O^ЧKi88G,z 9?4Jj4E+S mk]!<$Td $ڙX?&TA#p"beV54zѝ~7F~X2uq5 eQ@x^&/ &W(؝7(IbI.Az8oSK1"NEH d-FK*\Q%rt(Lu$CZwzRɠ lتE2:P~y.a p^TV}{2pFCQ5m )Y𘂪}u'e[dn;byyjN5aWXA-K=,*`q7.x3EBL\Do*11( iakI(O^KL$ :Q<+m?_v Mb!XQv!\6CլDKKw&6uhX)s:L ~F- P[AC&A&ZL+o(NA^;A]IU$ܤdg+j Ai?G^91ecAA! }) =Ջ8l-c=.-hю.?8 %.qw '~ 4k<4w N@+#ɦ!Ꝃm)xS*w cvߴ xY9) c/Tti_crȼW3<=[Arzc֩~uTR}Kb~Yvnnt/ H#9l͔ӈ]YEe=B<E!U" [PMTח"|؞l:_ŕ5)殂|h?Ej(+ȠLXYfb{<X>"65B@ =:ܞ@ eʄ!@4'@5odXyz4\+=RF~a~uYWq>ωVwWzNk'Ad )VMF/vF31!D`M4Ģݘc5WA{uٱnߩIݥ1rK #iq\%=Fl~Z#S|11GgV?[LW ljs%v |1H\kυ+yZ'fb˃ܷKqq֠-MW[C S`5&7 L8Yf}Lvjڪ aZqQB:1^"vLME@0/&59]/!~5 H} ?_JoPNh:3T9#(yD, /8lqe, D^5 ncYb{AϠ /%/_P =;\Ü_/xѐUG1Y1<W(OS§=|LE_wAvI pFHaXxqFA0h>uo2,M!,ut thl` &&Jh&0"jsW$W{<45aLܛC=4y]T`v(ؔ:aDEƁf4t P*3޼?tiB*yċ ӑ9tJfq M?0@V#3TϠM QRPմa"{D |'4抑}8NxjiefmY=}͍)МxS7핚k &)za.0{hxs=Xa'0jث j[`Yo3jq0+K8aʪثx]yp_ R@k|92Eb׃0Ov|PKgAJ6[Zc:iHYҟFA >U-)DjwU+>{+P^%,zt 0qX g 6.o\ĩ'*pErD-<:_FVQ_hɄ9_ =TB@i)yMϸvC lן??-rkuraDj*+H_!m)٢>03Z- Gnwl#ix|,+ዥeVܕ!OА]d6S~Zkڣ TY9x'\ $?Ok[D}o9o NBLCE  fQNX&)k M{>Hܰ^&LfPD%ZēoSFlQp TuZbngaCK:~Ƌ\nۙq#[OB,f:ʐ71"6?w V8MkbQc`2345"ҵP ["`Y{ܠ*`,"o$R )lٛ;:Jpgʀ._uRȸh6-+}7xD/ V'0Ίl"zڸ sƩG ZQw 3D&dpp`<ϘrqkWVt0F YcϏQzVDƽ\ffKiIVj+Zv l]<:OdѿT+l|Wy7F2Z&}xxkba7r^Ԝ!TpqA4?'-P" so~P0 -J7eO¿5Ղ95~ ɜM ;>a-caNR`@*1垀;'#&ۮVo(2Ria/Z8(i^\\z h`,;[|jEpp~N]`%w tY~mi꫇g3?Oř1*Ʋ{u0 OjTOq;>6`eU,-_=+6~VZ j>v. +C0FIϡpE'V̋ J ]le,<x\`Lָ~x|[Z*gpvˌm'dGȄ7c/Tyy>n{sjOdD[h`>5TdϲvO5F РʆB(lҰyHEWpZ7lK'MO;* Iu X,z41cmvѴȑ1<%pM%uҘɗoX1;R'a5ƇbUH]Mc[d|wB"rC7:cKH*deJmH[t"cNBwThi`2OK4.ŪLb`X,GWC/Қx}'d.* ˗TwM_ΡDiƎB\HKf MD:[oKqҼԠ `MVWEvm3  "" N u6 텫3xO uخEkMŦQ<7&IvF) hT 6#}̇osx<ٱI9҅jXr2#ո>טɢjȍsFnT^%[Vbyw;\67ށ1} _AF!0~OkMtYwrYpq~[p'0xw2j\Aq;y@MF'/֤+,o1:8d9f!'}?+u_+աͫ"_K܇k~Ω n !Fa\7aDun0"js+mVҨ.ܒW #θQͯw YZV/${z(R9~* 8I2C^i@$8B`&1>R2DPGWDPM/&p]i?&vR?<&/@][P]cj }<ŒᏣ^:%ttӤUiA{cxm}6ovYFa z@=5Xp>c\AWu-*s>};LҽQ'ycɵCE^1!.}~~X'j)zd\47rn;CN &('0.=^ nxh(KE4,AO0ՅuFVJ9-2,<wX"eɦa57R Ԕ(/{1Xc3QXmFF q:3Cϕ< vs[rXJTē%mbK,uO?m;yJ3 V^E$#da~_}&\?#>c(>l$>!S DKDyaQȞOpv󼢆^ZzS"\߅na@g(!Fb;S#2YkYՆCE"X"];8t b޿(Tj9ҭHswIx BQRR : pQ =ϊ`HǤ?|<87P秇u3aT"^.:兤b\]^rǟ;'2ȳX W"s ߥ ݁(),cb@k/ѹamK 5C@KG!5b ?}K}o ~mКmU6 4C^ěK6^-tF2v5H ?Zic'֫Ib} ^dfWte`g 8S`j6(6s,$%sތUdUAEm`mC4#>ó$ڕV4-t HYYr@7s5ۭӿN&Y}sIo )1ftZ;ۊ(}ßF͸@Wj[YXI&KU a%2؛$\$Cf-,b$N1yH΁l{ 'vW'ؔ:\KUeTMXTţT {"]`_(nm;/QV snjb9:DS70pA,mq/mv%a$Qxe>$/V7"٢PIs3~-vfuo\6AMljSN͕5z.C|ОQOy#%B|yt~҆0tc%p + Eݹ tE+:0/(999F=2s^9!t*Ÿn!u=2G%z7X$y81g xm(ml`W9Tj#cC̮3rYNl,7ju]ìv)p9f ##DBUmAZy\=M4z QT z1 Ku]j]"3]߈-1ΫH>lpWi(k7Mz`3wwy VmqP[B<Z72v5"Ob( Dn*`x|<393ܷS|$ aY/ Hsm|P fdf| ɏӰ"g!`Ǧ Sk(H/#XkVk6 |UsѮNJ ,[%/_cpOG?@V#[P\W5%݈Sc]qd橮bs!xvVZ Z~\aDNu%DZILѯ*:JG}@%8p@[B3ދujW&gh-|=0JUI E(#ۂ[@GϾY6<*D(WOp+G6~ QS_[YXccFrHf\R!KRn|I5+ mM|ՄJKJ3kr`Dy@}Фm-B"Cdlkj0SW7ऊ^¯.-K=[:OtЈ\v餭 lJEuV!,le'Xcs<=;bїՙ!^U rfc$&% c@CfrOXKDd,!sayšQa6.EuM_b_>/ab&n K !|;D&, 욝WNDT&)߲G$2HLw9CNi*?`bx[ Xwer&vevVWyHff֣9)x:>ar-)hc*gMF. xzg4}]ہsb<_r+XdnB^3g-Χd8HE=s{KKřˈ,1RŨ ~ظ5/Z)ɽWp'LL)a`rZZ `CV^<4JP=*|HS K6HsGs<+8jaɅ$_?E5`M‡RZ9G'ވ[)1rh}P>.EoPB`nGSxz?X TBn>#z87|Ȇ4x^!)cNmgA D+@!7kC1Z2!$pm4{=ZvFͪkm 2[h E'I7| 35s@ĴB0R- d4m?muLb y}w|@xn:J%J|~? ;cGA : Kwߡh^"8bŭ:hʑt l~BC2jBGoćz>vuoa<~ \jse]r :5/lH,(P8 roDP4)aWScw$J1du%kdA9>zfLaYJ}rƶA@OP#~Of#VD=pMn,m2/*=k,2sI=y;>N~"0AU:^QP pW FDK>4pthBՃH$}D,ϼhx8Ua_K{(f-Օ]JU>Hgߦ-hs &d`~XF1LN r STV]:)UO2Ɏk޾ ͗Tw[S|A1\Ά-qz݁nHS[rhw$iRH/j|gUZBA$DwC4Gk"Yt5Қ_ͥwxܢF7-f G;~jEH36lFĺC2;tz建uXyڤ2flT+ ;d|*)F2S%gū0sv*#$/NXu2\LM &9dB LVNdSseAJ_FS~y>(QAEҠ//'eɞڠQ):۽ӴXcՌ: lG(.ܰ p+d۬UUˌ(O^Bs"X+GY=qlGOF~GXA֋zd# \LVf.OZ U%뇙3#c&/Vu8X??E(3 $j&&Y=7 6Bi'[$}b19#6ű_H9Fau\VQ8X8].QF:)>~|1o0oh/c.SR1dlޙjZ!cO_Y+¨vivB*UN~Qd?@Ζ v*`KclC#/H{KCO9 R7Inu3NxWT8Ev=3񉩩$ @`B#OTTyP@ Xش=#D .rkS\' % 2a՚|2Xz$Q2~e7Oy-WNiff;:Ov82a\xG<Zg nFLtѪ$J x%"j;՜LI=:aͿ=űP?!>TږEw'%긇ѷCgN t¸ٜ`W$鯊}'OՒ1)Ac)I /dQ{l> 6p @1 9ēczgʖb:'F*.n|y '`Ɨ@V41a[Xi39:SN1WN>,~>WFJݽ'>L3ROcB'_ꇹ$0!(z ڔר>vvM:lyy@Օ/O|) ucб"ُI.Xb triXК%7J_}[ 9zp\OXZ&Xj Y_[[ g \z"{l3/s0eH5x0mo6SkVh"' ;[Yrx i"6'ӞFXJ4]3=!B†n7,RUBZAA6817oO.|mq:7̖ oEO t5E8ރw,bO6Ol[bO=!`LǬHab3N(ĪD-Q9r]3 G} TbSv@%OP 曛i#"5 MA?3 _r)HNmIumF6&; >44뵔MIF7t̨6zA~whL 5Yj)$'PSIXF6[qˁY*+eI59 [΋Ob "v5Ě[ĩio^[@Bn$9,~uS2ݖ6>lڨLsҚ!y^n69v&ߢGh_K"%7= 3ecl"qqLbQ P_E<%2&,>u dPP܄ nHlƀ8.ޖSig[pRMrEBփ9pqKms邲T^lx`oǛ5hy "}^X-#wS֭R +3n^)x}'3 +q0x6^LSTϱ7N Vf<= 3wH7eҦyj\"(ohm+is58Idδ/*Xdu@T `^]T[6ST 4&))W3x%Ml9:͍ yW} zRs[. Vi?>j{r]aOBD٦h+(eJa=LA ~ꏣ^5"Qp8?Z6?#DmQ~jA됔s蒨=᫗EI8Xɖ|_=]m/W@uB]PN8Xjou BQAd˺RqW"Mka2ASNYVCYA}=Z>+Y&w(E7΁"j tx"IN9L@<9D KkIOn30a0~/>Y~ձ5!/ir$K;;[8 V]ӷ-ަÇRX>w<gcڷ=I5p7eub`XRg>0&KqW=nAlr#3`Lr( )neAYtD:?37 kvO@4~?? J'܈EQ^9ۺ !+M';*쨤 yxGo#nU+OhA(m_/RQCDw}pIdLRLwʝMuUW zo?r fGZ w MР\jq m*k v \2 =[12(U ` B[T9"2Wvj%Y Þ+^J HÒE{%>bKVթZ N@!UR_ėE f ; jj 7ȔY0 >LLt{*w=yqg![g A\0<1ݏ7I'Ν .NjV$`c}zHď5RO&9ȜhHGvMv]y4°Xqcr<a@9JIpjtjCʠ=gOՖ ]'Vp9.l!Yg,cn[QGUA26oJS|~Ƥv.pP ~tVi_.cj}a]7NDeq_:Jb<ͩٙ| e>k yEQu.@(G-/fM\?818͜H6{ǑH`X Fƫ $(S/ r\(fR7G8Syg݂vlE 6 N2r\Wc[fvվ?F9 ]eO}J͠6h]!vkڝ[{$gOPV ]qjn6ʏr|^(_47a |bN^kmq~q=}b v[92 i0_@ A}#|W_A4jA |3ț]'dH&VlF6O>:a۷8%?J C<ѳJ5e M'8x7icd>(k]BTcNWB@B3>!SߣH6-vC=pzB6B^+'Q]qHX̆O xxm~k4"Qz 2LvN%;Gc-8Od=k w/D)ܸslnW%uKGM>? 4 Wfsh/f.hs?]X,.")4鴑3.E龢3/_{'=ۘ̂!q:NVM˸&˞/uŴ;I?dI\Եג4fYZx(DRmaIřs ~ocr+ )Y+SCP?⟃ Qw~-poyiO봨@t"D%gR6eqdb]T,gNbN7ᚂN+.2H2#:$!U85I>9neKF-D+.rv0k6l#ng0,ṜTQ$`iхȑ"-Β{!b7?9arU + % CYog>к.W=i]{qDm<ԝrry(iN  Gz U&㻢Cշ!$(cJM!z5fB=>! t3M6s~- q ߽)6j"8++o7;<$|!?36|odP!55$ Wi(s}kU^*H'e(TJRHN*kCrYnu*oW4pWTzza>@H-ay y5WqZ,w#*I6d2 LLkť75{ {;Gx4 Ԝ*Vq_}G#&)M #Vnմ l!EfÅ h/8Q)#M٠b| ;y H<@ņ#e\(dO/!SnӰPO" ]u (E7ᙖ֌5ڿF-{Θ+(Wο!7. y<]F þMVr.HZKYݝRiwYqhؓ,5JݤV MX.gʒG蹂Y[v8h,{Qk Kg$g>oS#A`0ٻcoֽEgxagE/O5=ƺU :$ 132˟p@(ɸ.Tmzx .FHG7PPѻ<pl8WWarÇhj1HS| ƑKLLt0*Mīj0}G#nEGJAGќ!ڱg[OI \@}oB.#s&ںk~2~Jz.J=cMWMf+ҋl:S JQSI?^gqHHaR[ ѼLQns7-Ѣ\%bA4Q}iTw兙p6-\>oTmZG'KUuRѴY(%BG'sz QnO606 CUݚRӳ8>C\td`NrY,&H1]S$T?y$gȾvJ)@LZ;hmhxE Fp]0C)/VjǒrK|tX(H~'[gh mFȬV|E_<1J,1߾2"* )ar;5h愱"y[f"'i쓞 dqћ@n+sTjbG4"G٨U򯦯fS+#i)9Tez(r -Ks` ǝ94a$S˽4K2نڋ؄{y±;ЋvE YRS'[>Bei6^cS?2y`yv91g?IޯچI+D+L)&d+e_Րǒ Sy@3Ǯ(bl㬽nVh?+f&Wj%CbP0%fKMJ?gUU띑X}Q(X&ZӒ}ЃVJ|F֭ {OBUg`-R̽G:` bY<c߯0XڡΩ'X$5 vưsEG+VXb[<%5ZPvg2yMC# SA!tWAJ;/ v֑Nz%`/K~-*ɹc ($1^G\ܛ/.ʏ[V(`*8c@!LD}:yP< PG T}Zx #vR-;Sz\u%pD RzxU`dGUüldM xK3)'p}۬S*֑![%!:NDZwqG#SJ W[fY9 ,Rh`V F^qx;~&0.REVw,Cx2n'%d&M@#Re1h\SIwSNHږc[c2Aͬh\j[UNʲ:νyTN\'xܞvMA8A]"CDMy"\t7nǓܑi/NAr_p ;m`Sw]`(Э-ۺ v08R6>2,ý2'qN٥OabN}6[XOzq93A&Z?\0-2cyu%etyл㝉+({/=RJh? ϔ|$p/g:"?|O71P#F}P#!.VG_&dհ8Z+O"[$"b~it{3ߍt8P`oIW?Ϧǃ6 ȶx{$)U(;f+SOU|,5zAPqZw)>9`1)Xy3 &C:=in{C!v۳mՇxvG'e(զ鸚VcR#?\"=F0_eHLęǞue.E[ĝL); ǹxoaywW!Yl!EB!P Gm<¶T]4/OzqX^xumBz8S%}m{u_0 pPYQ xz|1s4PY.ެ`wpwI fh9m`>&% v[o|A Y` ah2kC"FSd:ݞ?}i4vow&CodYlh1)J LG=TSh¹"2csth+DlYf#|4f 7b16j<ˀ|,RQHM.[^%u_2Y sw-fC(O x >8Q) #_ ?\ iՉxؿifppq!8`2\20[̼BghmvrqYl S&h鮊bױBYJ(,|wllIQa}ݶiܞ[s^`7~8#uafHȪO $} p Md1S [k:UjK⠪ɂxo}jKR(ա`䥳^B%& wq+^-Ɍ;>gRgESdtxxE#xTҶs~>?,xU"NU;Ł;åۇqkUp°Q66tq jrR9YRn-=H@eb P\dbc`X:}/o6+h4e5 xˢ5/x 74bNa%5<# \佯ߤF졞faTv-Pau8VM-\ 3`È6q;~-z Զ3q0h]KTwL~S$Nə2PnG ` e12uV mᗩvRx-_;8LD!QIt&mMVY-3If_p=f/QA!l mgHhAQԦ_J]Dy|FjvaZhHr9'YUç ^T#ΐ :&5]xd#Rqɘ2]1SX+jag)x\0ya|<;u&nUxKSl XoI̮fmr;@[=щT>7^d2KF8+P;?*6= 5jE'ǥO/UԆV& 81˽`NSۅ9WGndZu+{ۛ(]c&!Gr FR3d LWpϑ#_'0Elv9rX; s{ zVN{<[+)lXBULw2G\<8uFe;~_kpF.&*&t^^_!-OW(8zi+ltV. ]Ϝ8dVԮo*l} W-Sk&6AT6 m n +K yB% !SZMB˕!05ǽ /'!M i2V Cw%rvm>P\n[\gqBtpVw`HH75wb\18J_ls}<=q"`A04гԇ0b%Kɘ} s2U9z:;\JF!WK+ #n>)ȟ(?Y&n; ]݌+\*Ɯ?LVZ1p϶wZ$awv¤LHM.]GWfC{-29=s$i/jM583c]sa /C=rJ V&;st,X^h5*ûF=ILlE_8ƥnT;@OX&aU-'ܤW n%3u{ 찐Q϶\j{=c;X ^tH&*҉*cia[ 8Sk1Q |UXi+g5B|Xw<c+.6ޅAϷ啊Iӵ$ 28i<ÖbU|:vLBL RN37p+h39{Q";EYӏ,7 م]ܚ~LiF~oΎc$:QB)Wcïh.m iGJbT>/*E٦&1# 2nzK\csgS=l8 \j;N#&? v/%_>R?j|KHDOqv0Jc 4cj"[/ {%]Z5cm ~nƑ8=BN;da$B%m0WyU Ro "CB< e-oSY`,g}ouW䓠E#Cs-:]=E r]p~'הZ4~_n0}gN ˫Dpg(=@ؖQUgn@ S64>H|f2{vecHq|`5o*U"9"7xuI`*(E@_~&Em'pXFXX)SM*Y$lZ Jf U3'#ҏV1EOQ~ԣMZPȲ1[so3w2K.5@sLK SqȞܔ'0xO1XkI{NԷsIB`>1^gZp)~7 f:mkvn{x*m gfֻ _03M=١ܓbR0 lI:lIxEԾh*0JFlHZHv*VĨ-]-U-dɁ[Sw!pxUMmzƒr67hRR-\) 8M,!<&?䨣[h9H8KDtm9ֿ$ޓfc)+5 D0ӞJ-55yoO를"O3:N{"Ki8%f7nQMx& =vC#-뭯 ib@ET|5qT:R3X:P8R 7 JI8:mucL I:y<]=4,({8rɄ+h6kሽt4Vt'lvy[ O#%U"ǝ IO)%)ш/>Lz{R0S D)cGflN~L.i&cy-OvCn(u.g8=J_E }ޡCMrL4c)F3vG/xurMk/ IjGG']e)<+5{A{3[$ kgiR%8=‡k.,;A Aʌ'{3:8Qh snDM/G(H̋UW-٦ZN#2}mO|ToE$7+ Ն%1W#&Þw>W9@TRi_O5J8(It9񐖊2IQ0 Műk|3uhD6_q P>(b$EM La脦e;-ye{'WTRL穕$1INSL\&P ,1Ԛ+qog|@xd&p#uѾY'qKE"w|. 0Ovb=g0Wr_6VpZdY? 9/8 4SgZX''m7 fzAճTt" ƠOlFQ^ nFFЕ@}4^sZ<[&Mfػ-Rx}T͢*ž1N"n TPLhjP%47}ejMmG-n8:$X' KZBz+54 ˏ >*uL}]*PE.c~+<.y6fy##!靚c~x/fIC糎z`M dؐp|Ш[4܁,(\ ; b ({N:oę+a@Xw4_=cA m>-hIszK1v}{er^FgM!/k bQaWO])g஝HT$܌pa*ﷺQ+u532v:mzƂgc0a `8Nɨwl2E|ys-XM> )^zݩh<<,o* ]B?{`8Lw`f'~+ɄLF!m!~wzQ36lSg2-'޴EK$GV+vtU+xW1LBTTFf-/oB!{ պ >e6Ũɑ:3l1L^Hݵ0ŕ038IvfD_U_ً9i!R=r-X2$${GY.J3 Еb*(M\_WEN_$Er=q7QL!m ̌)$m_5 0u'Pyw+z)8]NyDjvv⛈6ڂ;ڸ05Qlp"e-!wp!RHu>bUrPQFE::UYϹ~vMX2uO 8mJ8̎ =:B $FԴ=.w0CJ#bMuEɛZnRtY@>uXf> ֨jYcwU{XV~v)%s>'Uhi©cmj*ǀqL ifJp6ua=Jzϛqk>& ץfl8XFzQ-e,RW.gl`X%UK`uo@QO^3 x-%` BxSD `dVO# '?R&k:MYI {j`d06' ??drI@lKބ[񀞮+aIeIMԃf.?±o#8յDn_\H/}Ko37puiz| N5&?/q2ZC /1(6jhpICRЦ2h_&]y 'p 8' !`Ht,&;Z` qZB+4#/B%XE)?y߁6B0mv(snb~86BxEr< )ʏ;ϳ ^ =녃҃/~~mH3ցd lBJD-N_N;_,& I&T/o`uQn|sy","/BKԋ ]358ɋpjxI+w2zV]EUARLq${ޣOcUrj`<_u?5N 1<\)n-(.c=ut~ 5ľPm +rONp5}[Ѩ }ra$ $ 0 O dtmA3*Ujv{LU^n;mQ`J$ קKqWung7~jO#uq8_ҵHͧõk(dbKE:C{O_`* 6^MaZ( 5dDs v aq{[μ  0d]%+jϷ:R͔l xqy4Z;Wk4;%mN짦 ^MLHrbؼXftzJ- +)v- bc?`ȑ#<j>Ա#c7.P =zmnН-(H2fY]8YY,xnf.NO[?S"2plPh$AiswIut"W@CG9׀0nlD`AN̳؄oV8Bff7R'1q# ,͞BVƮ^vUYm<:<#b?2jзHF0T;RRbE_X6m pj~:'DSu0;nmنT($lJAg~<Ѭ2hWVVƇ ` Z@ltd/9E`P`h[PDcR WSX NrWdh*^Y/碌 S}zpP,,>Q|qә—N~bD>2">GHsSM?_[EOk#~v.a,"X4Nc~,.LݜEBs#6QaH|DBmk7.o+Go DߥCtȌ?HI8 W4>'&z&3PSpFJU|${$7րFҫ:/7J?; |0OI5i΢ NwyLa߀ XpD'nьܕ(P425lᚻ!Ӣܧ@ȹYW&k`F5O!9.w}a;kAzC*7"ذcXi9{DY楎jzu2ܘ!2Pq֝= O&M=c݂>]k]P3zvG i:[F ǖ|2A1tLېxߧzrg nDnְڅGC|}_ZR섇%e`i n"R,*@I&spCNgFm0WÔ #7XwӉP[ :g]]N$}_B\!VeVѶ'}3[h--,4!y0*7@'h2C@;uh{eFRDy>LF)v01 7+k'oPI ̏4.d ETcJc_\ҿ%"F<=W/?sj dE,fwA`U;mIV9u'͝BԖ:E׾il~Xt濒~nO=׮W6k7x;Y!qn\5)NBRta,dƮy+y3',uHSd<6Q-N/tK%d5h RU5 Qf9:qX[~PdNm [AGKq aM@g}ML6f!pb!L. 3q[K/T9Q96ZGNZ.a^ʣ/AIǐW며5y3#ZsP!ibetMj cHBv5JB?ϵÍ{+j9Fы,_-Q{<]GTّ iSC i[ Dm}N\!5׸dx1L>{ܵG s< f}GpiMt iс'bH9TyV09[|;r ]t0ғW'UAoɟ8nqkzz/BJNܜ qܠ4ܺrׯ7j.)y†IBCU?Od aUl\o|iV5Ř:8@!CGQZǦim;V#;9`ε{ 쯞6>L~ jv>:Ea}+wٻNIFKukp6 a /p,PJp RO!GJ-f]> P̭X@]K@)`6ޟCޏxr+ˉy3v&kflhKˏYgA7ƉK"_,l; FZ0˅,.{۲j9?Yp쳖wV@J ~\eb,cSZN蹅_QˤSeDs;|z*Ks?= qj|uBA|fq)5qlMesb7Y/4=IobⲚc^5>0+ע@6( AgV]r|Y}S^!K+ Kd6XC&/0 OWL[9%ߨ\ _u98}GKM&'<2P7Cy6tLzyq{}u:QM$f]nĝc,!GA _Ңr|ZL'">M79_v1tq+ AY 7 rUŠ}xW>oE섟؂V)[^B;dFn'3t ;&otczcuL+CڏruޒX+ܲ[39TDXEped:7qջ)-t"zU K׭Hde]bOyQ xQ<6ĶZ "AdNS]szQP~) ,o 4ЗqTmV& 9"6Yʥue0m 2jU0 )ifW$ô$RQiai㓵Pm[<P˄Pٛ֒PX63,0n]Y$29۹Zv/:8~`6w~.8I=ڳ+Zo)%gAo'[Z˾xwxk. rƞnS"?7ߏPDX"jZ=kc/0\J/Q&OU]~j`jQy f]_;D&Y:|7D1`ߔqc-gLBf_#fIt#|梈&Dl]0YY&+9;ڃ6\}nG*tH&sִ3nt,9.$ISϻ'Qul.p̅ jߜ[27E'ؿIStܞ>eGJ`/r`\j.dMY;28>mD(K~/tMz= u( gwr#c!kȁ- yؿL)F'j 312k.cdGO \Jv0hw&" }ܦq;ajK?Q|2-AQm˶-3S] D|<CvƧ+,q4H\5CWXHDU' 7[j%f* VzYǛg>cܯ#k%-cOəQO'1&4eMjllxĜ [[L¨q^O)EDZ94Zb6o[dY.^"ՠ[𥼕Yb,* Z3%_kr4uEMuU@6B#өHA5=ePq(u0ibPbgӥ%"n;L  ꒎pp hoίV"9}줎ӳXAJ&E* t_y!=BL`bzQ DA1>H:L󇌲(ϕxeJPDoE \̍?3,Ŏ#- s~aOI"sFjido y7ĖW*G}}ekq2j?eԎi3HE2t{ UNiO;g *U@Ll=1_r-en10$e-P)C̀Kzwt$Aޗt0vt`cLDr51\+q¨:-Ji\>qCY~Fz)HCDƀ>W]sw`0|_B8L^_5U0C1. eSq-zDĽfn C{qT͖kVFW|I󇾈:ݍ-$U.MjgVzJga[qX;~Vq8c^|vM~}Kz}i+]z/ҵ)/yHKHp} }N=kuú}ڝI FA/E0}Ijë+{ǘt-a[“sέUliwp *yWC8A=<9 O>WJǔȭ7>3Hht!Hhemyk[l-7 UeHnڤ}|(9 ?ʼnoS}$|VaPRn0> ȆHtQ1 $`^1ִ~b@͖9.Inut@6on )'I=6lN@k{D;qsY6wnDd UJu(}K:̮6_ +J9u5 PiZ;hU+a)!-sE6=+ KϢ j.)9D:ANHFӔ.ռ0+5bWwO\wJT)}s\mD3fN&_L< uGpՖ^a8Cqݜ*CdhP Mw˄?QKD&sr{"Wgf\GK"oqj'i KƧ3 o(?oߧGb`EIxm  S#&8Ϝ?_M-}+'R'RFBټ+4eο!D_P(( \/Śh!FgK̋*cĉ7yH/ r#ݯ?XDm}$2C̯8@t\Mr6+Z97(]+$.,Z%P}g'@jVCUR8|G~Cu{+Ir}`H=5yk{\G˯wn`ީU%YV*{n x&pw@<;&fڠɽ=8Q+U@wRSkDO5S6C>'<̷%ڡlqHI[ūr.U^"XO5͂+c{vWw2ҦcSn6^ },Jy>" .I;Hgdur)C8 5+^pP5k E%? O vRLq/F*`AS>71S+WbLŮ#1ov?Irfw#Pc~8](m1_"49tF@[WMBWlތ :umNZڻ#\h qiJ{vE@'6J\M@ 26Z>*K>VKJ{%@t%|Gg m(IwӮ% ס1~*4^A[F8ʣcɁb,=ܾ0֎GWB*?!LF1뜪jjoGDgAIW P,Bkw͐t}wil&H뼬ꅦOZQdT'Ce_ z8L7A' zQk|J c3hjtQr_:v0ޑ'8HnoǓ}?5ktށ”f@o%j-, =ڗB'Y[6j*ak~u~iHHaIG Q?_'vX^/ɯID~6߃g*I%pPH1S܏Cs 6Z̆Jmt%I7jnGy,0*8?wd嶞qrldUh_NydKPA5Xs<3 2 T Q MȒҋŰK8x<{ L0vv20T=r5?Xܟ ȧ0M k)!,,GTO* ћ~\hIaA)71P]o_v,$hytoLg(DiVq>۸CW`Ct$ݞ#AD V##leKY.*u)UV|8=z BDzZxQ,̘" =tYbTPWe'@=W'S7!&g) ịM0'qF9T9Js0ho4gNݫߑt,`iFstޘz4(l mSM=WhQ`>*yggjHxyKV, w7Sqw1Y(G!  l{'&Rb֔d4Cc9"yx/x\`C࿍4/2a}2\v@ZV+7wclRJ-͒aA ۸CHe Q,c1*uȞf.af>2tW+_)beg)Y_ئóYՏ_jtFYF Qܕ\Wy&`Ev79&1=VJFIXoyWyf6fʭVSrWݟ N,[8{fΤ7$)bPaT}Il6OjZ3k|';L7&@Бy^3iEW.)CMfF`%tMEܱ5[W&-v-\SSG 1iT`p^| Q$!'1.6G1g&9!~z.6%Ƽ!和;mԊY:ZuGx`:#`p[O m)$)K"<8\T0̲g|I<g$%֖FݿPq1#nkث0VqtߏLA_ J/,ZM(6x%$wwdj+ Qۼ>mda )ps2"9eYr :YWX<*|Mlcndx'=@ObUϸ8_EYQ hߤX[H#_OL 1qr^noƏ1~sl ܯ' ^5<c$zH%'‹"aC:aYk=+EZ)k7.C懿ȥ~7R(w ^5+}q\CmߐO՘ND.a5kUk/VKcc-B+SAHi}e Fa{DzVTWL\D,NYdrg[|i\xK'rn)-lݮu&z,͢CM⊿j%ƥצnpI*խ NSȺn+Q\N@1iKXS- pZӈN”f_I~4T"eH3Ł?9`IQ]«.r Ѕ.8^wAL̡  VA7oV O,KNםY,z&c/ Z׼7OOiP4\y9Gs d7B?;)OHM60r~4XC4U; KO+*S.VޜlnzJSLDƃ /$yj E6pN?4B4%DFXXfEwuk+qZv+Jn!77`G'#uD;Fȅ6ǹi$Rzʀm@F7ZTN%5Q*}TYGJ᎚(CR S>TtƆkoύ)i5y7lHmtP`+k(ލIr{째г9GSʡ/t莍|߬ہ7y,vт&hJz+J{8Oir 9d*_K.IP&,@3?flZsaPd*@hxhG8~ &#&N_{b$H;!XlnUʰ1!PKԳZo] ΏN5iWofSnGZxywW`e$vek-B>Dw=8}v{ wW̿Mx{k]A5|.FJkk.ɚy뎖YmfK!~2JyPw3_Vxdk|&Xt9uI[`ҧnx{94澜_/n v.@3K KrjwҖYarVq#ADRL^eщ扗|un@X'_&zj{Ҿf$7w*Ů- URvq O7]q8#ŵ(E`w`҇-6J!uk \#Ov&17.B~ ^%j&;Ƨ7h2tiF#겔j>)V6(?wȲ>&jՍ%KN~$DYKkȈ)D-+ 8W1oQ-zdĽwؿU&EtC6!VH|NpN˻ȴȋaﶘ1xq'=(<(vI*Ze 8褃L-dinc:?EP=,^tFG <ٰѕ\%x`I@{1@5x)2^ d˿dO+&j"2'x=P?>b.0ZpiKtC/VK(;y<9@ylp^wV. 6 8pa|wBjtִs' t(f~S:]p#waokcO,dQfڥI<+h6.rUmBE}\Gz^N796dFFTYQ|9W@H6>|0G Waԙel_[DgՓiˌ߰<7K/7`#?ISeVunuJKG~*pKӶ,fG׫8rA)1/DlWo@Kד~'+^h/ցO3tvƞ'vW 6ј @5鷺F?$G rV5}T+οscGKLu29cSe\:/!QgфO+! Ơl5kc[.Rul,ImiZjqf!$|a_$qfW eۅV@M4^yxc "ڒYkX zvA1y䘜>#Q"$pÀvQ^n願ߎxbןu}O@#.b{~ dqPA^dwgw$wOuhL,-ק=5_gdGwM}^:+2cj~ȴxP)Do9[#&pΣ MYS[y2iiUAN&^/!)?lD3[8=D˧E.s-FKzZ9Pr\Vw|RToOWe?Ҙ);F>큯H%JG0K<Բ1}ʏ%4FI+SÃzИ:GKX/ Šb3䝕Sx,aO$~5'(6B76!M.c9ћ'uysXx8JN8 dKbs:c?t@䶑gSkBC9X^&I}=yPen1֥eklu"M>>dᮋvݒn!e?x䶿K,okb? G rp ǡYGI!9fXz<Ǎ\xI h,u*i-z 9= 6Rw K4][h[|w04:3u],:B聛rH]e$kC `r}7U>y@C<]&[OG2 }u"9fOMaƂ娻;sXԹqw S50~sJa!x 7Ѭo@`2Y̜ &Vc8nELo]JPuJQh Ca)qZqR=gj+壽!i7DƯ"z*2W9j_P<l$~ SWwqudO%Uy Pw!pT5؈ęiJtӭ,k !,yDy, l"t r :!׊B2&4Ep]mbb8 kbR7_nlYE׃0uTr5@Kiݢ@͞Ʒ3LaԠc1j6Z4FZh{Nuka"/#NohԿ9MgOiy4[mV;CX@^ztͲXVlT!fZ×g'ށW"=_ia%`"Okjx*ZkX:Z)䳱A}<#%sشl14rxqqRC~{G6S+\b/lj_Hi24sy&4Eh-;4³;)s^cV4 84yK}YE*DO; BYlsNL5 N4jy0\;C韃-vL%!bˈi@kÝ @ŢcB`;dtF#$2YzbY%Y9a;aE6u5CB > _{_2{zITɝNJt d/j(2ิwcj&lU\QzAMedA;[co?|,Da JBP|A d'(n7pL'BB7se)D1mF6I)'Tnu<5Y5k`E狵soWf012*XC#ߩ^}{&{! _!~m["| ᣽Ey2ܺƒ/Py ?U uEU;=ąj=9 q@iY7B̓LUps8R+l24;EOpWdA. M*Qi>Ջ cI4tTP#S YU D%<49VA" sy,$8fsh ,SG];ē2|qTRmJ`Dk?%yE0GIY';8BfR(kџ!WYJNۭby~]0@NE +/Zd+CvzBKPe,ɘWANF|j@.M ܡR M@$vR3IO?mIՉg:,k xvbi˵^e/;0jw:JWØoA%j&SfQm53SxU57^95/i0"]CC[:!@X{p0mnȔ\1I'Oso/u@7Z>D=[RK,w+ɀҎgѶ}/rb^7L3ײ]P3ȓb 㭏6N;W-=c(m7|tR(`iC-Oa.AKOok!kvĤp^b T^9W1B`V!=XI)@Bժh2}4^1+ʸu<&];qym'Ckt82Lg'?{c} ~){>A"M4bAZRҡOSK9GX亍۳պ +LB2K Ni(/hLt@ۆr^u(҉ghđ[Iy%yjxFMlhc,FC9;_24^ 'gvuU`BQ7 WY&^%G(b"G;B6}9T-iRʐɸͳyEN%au־ڶό/'njcT\DKW9hZ3FC#6. O jdp :BUtT`0)>XT--+h<OOZ59$/5v]v:;V} o x)ѡZ9ܻqBΙ qT极[!\Xݮ<@eg1XH^fl9BmƟ(,4SBJQ[@t<&td2'5FMmd$c8+qhGwr9dYĞv%g"gm az= nk^H.w\􈨉O:fezx7y $rp@65ZnUO)o/B»/nR̂ Ze|-!yOt) .neChQBIQ'Xx>^tR$,rA1XXU_JF I{+esa؇93龰3~R` ;#Ta7#_F9@3 h@x>*Q=:QS)1kը?gER2bDaUypyK2j3 ộsXqk{&y1aL=Y'nθ%먩"(-֬N[C^h 5Oqνl?+xJ^jϵ<"TpNޣَ ź=͂d-8CvBZ maV2*F1Ij2t,#k~@Wں.]:lj"k SS_li Y%U TR"ػd~&鄊4~- T5voZœ.aqR܀N!,lrx+fuc[};A^WSHq捏Wڐq~_sPH0%\֓7ߚϠ-lب|WV8`"al)-2lYk݅QctsraտKޏ(Rl?ϋJݖզT?=,d@~)pa,G_"q-Vo}XavPID !QtmKO?SiDP`q8#ᛔ<0|fвo |{.w>%%Auw\Km nޫb6ݕr|=U1cJP{"h:M0PW Wn) ~(0t9?k  :CGiȯ@՚Kz؈k|W8M)F?Jm1L \SX=ήyŗ$ĢS, 0,N=P2I{R?L2#{ ԡZV}%Og ~d+6  'Q^аgPkP[ە_Ъ}ݴoRC&6 m ._u.62]~/ }A@V)jPR,'6jA(7㑠ߕ۳̒TwofF, G%TD2:wx8xdF߆YWc~4sl( g ߕ4H?W|v Έj,B(ŢɫniwV8@8̥I5 FBBWG>ҫ [|"Tt٨oq`0[>X 7=k'Ș4&oyI~Rsc#32=V)5;d"IuWVɎCFô"EaNKNhͻ'|rzd)*]+=ϰқT L qQms 6;/dLg*W3wMa}I*~9p[uQNtRtY67Zg@ʸ~gzx43>ڳoUyI6H[?]a?v }ΑmPh鴕(a Wמen,d_=a qh~j.S\owfߥ:cprD$m{b9[״W.sBan0T:t1(hIMƥ ad`yPxB?o$p+%-t\;i)6KN{j!GIWs`N&.ymy낀SoH<,'l/;,eH {8N4~>O bQ򉮼Aݓ]?=} C}I6"Q#=d9?^#.Lڊ5fwC` UTUJd88'K*}1a>v%(,X;w[QVNvw: ]/=fd57^Y3>|@Ld@U%[mzM7`+f8@OVS].NG@TSZ9f!|YecX30ⴙ`kEGha}^"m*V%EEiY:y+.7,?>((m\ALGHS ds8 Rõ~m4D͏.2HnR`  F?'g[lWbε=c5*2RQi#kײ8"vhěNoCx*Wo/oܗ_{cTXENDUѶQ. DZR6h$3omu''Q`7 cJjZWL)csǻVS4`3(lTJ,:웂`tv' $MkqQ3dIm$qcx]]qŗ#zojAnhaL'2Vd;eu3) mSQ ہyo ޗ ag& e*J4uG>)QDFMgPB9Aݹ~5>߇1FK`%V݇ɤ(KavjIeܑ#@p;ݞv-gs)+쬣g}!䅒3I I38c/8+"w@@i%Y h>yVT pkfcT%L\mqip!TY^q/>߹ (J>v7ɨG}ρbgiVNc!y5tvWu ;bgWwae+|SuǦhh;]FvN o;c"{\kq+7]/d–E!FͼUk]r.UӞ;9!gb/6zڥHT-{* p1%3#۴ R.3,#]4wmM(Ekv&TỹG 8(H{:f$e2"ch5väV_.+ӔCiZs:s~Ь&_1ɗ+Xs[/>M/I{.Gt%UVTCZ&.$0zئ|R9/;f0~=d`aƊƑ5Nn=wF%Ɖ 0=Ϫް+t!9HU7pfj@ xM)D=y!@rAHЁ]I0ۅm_˙ hFh*pBugt,&,۬|m҈Iޣ`mx6{zDg&σm\axqObnQSPjw;L_=$SKGM̊B'Tp^RzqJ>,' F}fZ+?_r~pmjxWNq?hBlKsh"IiӾS3LzHؾl+:ͮZnsD< K,^b4ʎ3e"&=#Ҙ9%jg{A{5UY9}s_Rixݳ Z>/zK)G?wh/ge*[lDětK\_AJGcQ^UVC8KtuE@ ͆Ob=K&\Y*sY1H_}0{b Ԙ~K(}YY[ gcdZ+x|3@# x ?=un8u_l|: ~J,lGwXNcjMްZ.ڄ{8qcTӵ֮ PvCPY,Ns6Ye [gH/yS [/Rx ƶh7Au2JJY?sWesFIDcegnڹtE{vEW&2 8\"oy 0o2D)w+8|* I:Ey}'Vv#F4'!%۷ #D020WVg: ts<:x3 pQCt[ϻC(SOp g }3sk]9lTr"l1쌣Z_6tDs .kʃf/}s+-Š5Ct.!EV'MDy 63O9f_EApק֓H 4,m0Wτ]y^M<8cc/`4MntsTTS yo.њt1VȆå&Czwpv#& &ւ֍y^NT.|*撸OAhDY)ܤׄHW#7-%0?iK|,TX >X%#È: \XxడG{SC6mOW lUEO&˟_F+t|:(O@,(wz[w(AndiBȥ&C^o]}騄H5 \殼^#.QU~4ŸtUi +`k̷|F3D+v"ҵ?* xC2f7id(䴈ɠբ̋Q}kw7"Ϫ8.]x$-.Z,4ӓ0s".Zu8]1oxe,$'` P>V/`xXHȷ}0>C؀mm2 B$3x+  x3bx,m/HxK5w7Nup'7C%)d}eV 5ᦿd6|pO 9S7 \DgJy/9Γ K։T>^ߺADe~hOL*- pz"CJuSJnVMTi@ $t~sUOGS'ϔ~94_]羑yi`*fNO֩a@m"׶sA'5d ^doazZ]Tqt\o | Sh:L|Otj;̃Oܚ~瀏ݛƹB[,8S:6LJi- $P1wF:FV5$Yr)d5g=JS~gDoQJEQD7y3#dr;/}"3 x ^^P 8Y%gd&*) 1%}R#0zy ^=.ieRx@yi-#,VZFYj9 <3؞QT\so8NCt#әyNVs{9FI4m>kWm\d\ PfOYYOINtߣMJ)~Y^N\!f0dzsajEX'{7WX@RFy QUۻ}&EY)FP -R3GlOjέg Tc'n?O~fբ q k+ҵQi-~!ЄA!(0|)vH j>|7招'~Ӎz|\"xp di :gۛb-Acawp5J.TcZTꏆDxmԲdjQx?js[ݿSmjȦљ{&8r%Yu2dΚڲe(ФkP/cRaF]r~i8&#o7rM߻:NÃX+6^иb6խC Ȓ"*2eN&櫈R+N=;>w3(y*WK[ 1HX]Bfw7QIKvϙqj g1f":9^=\RŰΚSgm勄&NQA`8@]6ZrR_IXcU3Ma2b.ifB lDQ=1OPԮ@zZق=M=qsv_oPTT1cN}X 7ʌy0ƓEƂ\%/pmY/|NyC&IyĐkNEi4CDIybcϞ 2!Idɥ8I(StUpe D;vGiLJtWIɅaS1U[%*r.W8R-ra>`zk SW^ QӳtmBNV`N@GMD7]%G56WYR@` pr=Kt4SpAAsDv\ҏ$ۗMdЌf$53$ 8SNnurV,xj>. F|6:xS>01QM/U&Z?-UW!0䜘D]k$jo`۰vjzjsu|uF1zC 'F7ɣgZ;A4h;<* F*dlweL&V1q ZaF-I FК/$ik (;)MGhQGDئ|^ w~P V/ BY+Q"*^hv2Cv ,Y1mۚa캵۟~F3-%2C'5ȓp*GQU/מ(cw l.yYW>Ge_lnhur|ik}۳DtbĿr%|yG7} :D 2o=H3E^I2U\^_SB)Kr]Ƿ LrRw:eNDZx|Yxqkf5*;TZ1pP1At,{ł蛁FcI m}@4~6?Pok;?D}6ޮ}w!Dn؀↯+T$JO(,jo=6ڜrŚWe&O X=a,0LC}~ubG!Y G ƴ7T#HKӵ^mR…e vɄ ]Q"f|Ix2Jd&/H\Wwμ6rBy3:{Xۇ!B7É:D?EL)GBt^anKC oNC+0Hϯ\y|E"g!u9V_7)™vřs7hŜ.~vJ-hEb hg(\sQ6E}7af+x^H-Ǔrǒ0+%C_#HO#eKZF_&GqKί..aDJP 覫nB8H|P|$o<3M"^Z}VJo>U} a^iîr)6@:nFxJX6k>1MmT^) EbcYC#QM, jz:T-m[x GzQ%Xٟ8_5LB@rȱQP[3|R#JVRvB,ӟٌi25H-dݥDGC?jSN8 WxM.SZ$P!-'Fz9ޤ];kj?}I*[-G2LyPѵIL{C\L_^FYp@` X$7%I0sh*>i(t|ŏXk@<q+ vjItaMnnF[;F/Б&CIDžOZk3&o0B :͉^V;num(Ca-Bj2JKMn]̀#\\, `evA( 8s( 5>r fH #%7cl iA+0ͥG&z{`Ϟ^|_?[q3=3@9˃x; xuzX[aqj 9l'A( gsC`Uw]b.Sž/avw;b5*VJHAz(M?CDI!/Wf>?;T; 4k_$'# 4s a6~Y-c[)FjA3m?^\A_ftd>\8b}K͔B=b;zIV1c=c*r&9(:T/ts :#w=_TjAn&%EO1,Kp9ʇf؍XhdCj1kt% -ٍ^/Ƈ]I&LG5Nqlt3NIa0$ѻX$e#wt_qXzJE3dVUSnlЕi74v Y@&ػydo*%X˳p dͧ&tL$DP: ,ӗCN -oF}2Rk6V )P `etCP*g1-)Aa;r"Ņ[)?WV$r_e-mah2ND.r'yWN}6}3C< 0)mI9 ?p*)bfVɶaw;=L\xļgYi83Miaj!٠C,4W=mb`"@oUzҸ\Ş\nvv,xc/\ V12JdOՍ:nX472\u!$~d9o:w%i4Ѽnsj}D}>alql`=~޸/Sn$5 );ҩ̗Z9QV~R;VRy׮zd[,aHʳz%T++]Twk{ϥJ,;fD~( *ݍ6p k2Ubm8tTm6i27b,hFvbZΝ8TNԲdHZ0h7=W"7`ӿw)>Fyq*gALB27KHN`m[D{17_]ꯇm8[V($x7Ap2xN<~^rSbpꮑM P~#e Ŵи]VQ` 2ხvǂJ_9i*LR} E T#Jɍ 9R4G$w/ i#Q=8 B[XȎM&^`4X;G)pgyTރ/INh9}Rf^i@`'bn‰oX/iZF: &xC8C*v`&:9w*+}ekHV3 =P$ow XG".s<`2M 1UDq&hn͌FP'U$?]Z"I]BlܛpEz!4 W1Kv /H߽L~̾U_/] *~ +ӫo釄j 0Aq|R|[+ (űEW() i.+ڝ)-:>l}S&3O"xy@֔D,'U_f<l.vlʦI Cf<7m"K5R&ߛBL5"3S>ՊKQH$ p-Y|#Ԭ-S{ZlQezDԿ޹Qca4d3VYܯFxw%~d4|K<ޒkLUv(lc'D)EcE" A}0e=&4sP+H]ujKzF{wZlbM6xĎ礣]VFȢ,*DY~5(#`k'0M|ػ)4 N3ǂy`A+d@DEb^%iK"x~6uVm0О!x²IvA ;+};԰U''q*eU &teKE*sCÍSe]րS @vցhP'E:kx=&,_S5;a` "/4G;qUT~bF3o ,,VXۍ*;cn9ԁ^! D3 |6!yEk0 WVdضZV y!"Lߥr%TY6W+h}APC?Zz[˼`_g-[z]'OT _ eJ;zu&$b4:q>Ng2w⾩Լ&ZeB-iAc)tN%*R,Ldk`\ﻨQT{k\EqDWN^dMA4̞'X:qR8'Up[ACS;.P\N+z"VܘL 9^=uDRPJ\>냣)_.ٶ}6m%HCns\wpbq0V7vHlO) ?ZQa/$p~ʣ,^5X]6N^Au9G5LkU;6˕6Ä' Δ^;;Na0/Rz͛9oZU. u*1?xb)|EP3ȃ7qY--Ж k&u12Ϥj\pbEh= d5&M|\UL>0Z4M[Mhmo~cF~ Qq3RE7=? 0s$^vQHjZ%vL.ݝLm0߄Cn[m3i~s0m o9doW.YD/RoS6sqX!dӝ"tܕUHyJOW,pbƱIbM ef8cQik'yR0"-#Ehȓ˯^* c&/,⼸@P{_Ffg:5:`Nxѥhh~PGdM ʐԂT0+3twrGe}ulцjg/N ѴPnw|`10d.x%ݻUUQ_P,˴b\㥡\1|{!v`75_!԰*cqTԇkuQ hoZV AO]&ۙ>xpZ$>~q@W65j"`ZyRc^rxi7%-(x+dR}8%BQ捐LDR9ByǑzJYT{ OCPxyocu6GGu짃,> qk{Qz1KZNK@#]#Lʾi뛡G <ߛb>0͂!`C=9g \L9"$9Sf3 {%%MJ ݍwtplvCU\?*9~9a~ꝥ̩rkbR>l!PgrYԯRбZ,sq19Cwwx3*3#cPY5TZŽLiM"pVh3Gtw[+PjTMREKu޷ *r.,#J!v뢯yeMfu P]yc8Sњb-IZr׶jɶZ_.nJFSNU<nv,I+2[`z^"s"#C5B3.GjkRN ܩ<}7O2+OGka`[׹[-}\Pz"'%R M\2ƥ}۲`ca17oO\^. -Q8LAkch0殷#'DNHHiuRlIK2I TOgv0_َ ߏy@jmحD/  )tk t}]9[!S%/$Ա i\6>O$aZZ B MJa03xr"FU%juUe֣=A! 53'B׆č*yv47yq(UWe]2ӈm إRG">?{>f/:jI|دzEz)$J V@T%؀hG譅x g~. oWQz Fj EB9 >5溌t@LQі*k/ |HLִW&)"6Hs*\E6Etf_?-'T\%+j{vg 'W %ܒw%:gtIR*9j*HGbh,bF6~;wqc{ d<RPeȼ3R넏xA M.Jm*n"oNSxZ}'5y֘Nݏc!ZIQwIA\Ղd 4./*%f R:|x> f0e d6Dk3v*1G侬w_^U}@v9_OiCŤH2!:Z',DBV9ԯCt95(%,g}ߴ1w5a"TDt g!=iHC,v6\遺MFᐐ-0E^ͶmI ,җrm#I~%(B4w~Z4L;(-if}%^SLx z橆 }66)ĉ,WFEwx,`ySKl5*3S캞k:N~>ԅ"Hdc[U)OC)\[UWBvl|arZseǏiGU 5t`ɑI/NJcoS(Tx5g^#}U)51UϽ^>/tZr(˽$2~xMo<*lJsQ߈[a]_;o>Z?\oөuADg/v4:vVsUŲ[9.rAy\_~N1U>aIPUַ08JA9 Wbg, 0+w?Gŧرq;& `I>H (D1HF/Tr pĖ 8..cΫ>9hɏ~%4k v2Lk,$\QNl|2[`Khf+i3D!Q^5Χj]M)KQ4vdy4ݲ>#ϓۅ{w}N)Wxv\Iؚ㞱WOtc4-'esis@yVU7ȓcn8p,Gb*r.|x@B|\_ t{4b<ѳOSʔw:gJW(^\:y)ۈ5ru! ZPVIusS0MК8ip0I0Ux~rGbjסZl2)ZTȇoPzUbspw,s\P[fN(?OQ[zWNm5sd8jҏLY-\:2)1o Q|H\- P)v !:.cs"#y9<0u.o;O )H'z7H~Wnzۣ VӞЖ߱IFy .hp A?.YU:F)=3qa B m@?`N2h3)_,#o'yH8K/1V6ikwBB`:%/^bM~kumEgsnP&qYcgh#-)' wB߷(}c*~ZwMSTuV.LјBGˌҀEs<X0F|4Qf1*h0 4? jHi6ۏb*PubQM8j+1]VL1XKra,5Gc+ KScꭋ&0(A:+?LX:w8uk\ڴBSe.=2*K7/Vl5[[an̑}s v]m/Чv5~ )@ k7CސpUgAv]2/9g!Fz5lO$\VAY^`Q/U&M RBϜ b@܉| ᴃ4v\B_a\vc,S5ޟ>,X, jeG9du͓/Y{n |m3l*l  W@N|KuF -R6D sįiz\'ԹQ=-%7蛂F"ϩ$E/Uۃ7XVG@%ޙ GP'?=SPY#Wץay, 5m mmOL٩KA'r DI)*r9s@8S! %"Y>~ae\RqF1WdfG/莋OP΂ow#W" QdX5Y4Ol ļX"U'27 Q .˽ T~qu'&"=7pR,F`.#v=Rd6W^<:2"hHЄjR&"Z $xs8=|^N_  4m30<UU 6+^38>KcǛ2* ~t6Y!TuXD[|H& e%eVY_ƍqo&GZ?$t}$K|e.@[~GŮ64M*/\" t7yO_zU!MT|$2<6QT=^wZ.Gc=eز@*bLg,Sger]0h("zfJ檸N2 7}MBI82_οnhs5"[ i@Wձ!:B`o%; TA+ Ny‘ ~)Ε{;cY+2e mš8b2'v?ąrru@͐ͮ@[DVW>6(#uIɍ,Y Гv+d⡊P./ϥ(&.j%=a5*BOtņxͼ|j&|TPxHۭ grr#p]SEP.BqfYW]nBn}-K*Vj ղ61d !<!xDG4, k{TGG>%X@kPy* Mkvgcם6{  a_ff,@Hi 'WЈbf#(gǾ X_>Chds&㧃RKR^Q^$:&\=umQ:+ M"!jW5K&wIbLSH-*mk5Tz.R 'F9{z0ͪW]rNf!7z̗[Bt˽e|zW,^2^smeC2DP7.۰'pڇ1$^hL@sp q"-QmOFE/r:pODeOcia.#@ޡ' wHXyݪPQ[cxalKxÿL!ܒRE&`𱚗F;J2M4 }LwW((ʬ7U,mClq;y,s8; 1iO-/&8tӹx_ v |p467ƶ0F[!55J@IpSjpEH6 鉩))7u=UmZc+}Uj?֠YIXXSRU},mqY QF9Y?1Dȼv-D3.YÿϯVs/Ѵh 'kBrP, QI8XOEJW;ZԼ*_S 8^VgVPh&mpձT g=(ۚ>+^i  3RF)vY'^t> I7?I)RZ-,nF5<(4U:wiw+8VRk^[^AĻ9/G.#Z5UH:H'n_@i*= MAS"hvK(kupA(o Ea+ G0(vE'*P+hfqO%v "ZI^'-j^ẕ:ER^Ead#"SM`fZn*Qq3IGM{BS0SV#v4$"+&{u'q4E@JBΚ JPԏ0S4N_/_btH[GhX6@&ؔRR0Q=%I:>IdRMIbFp7ɱjjbPX J!>_2Mէ)ی^Ef>MMx-OuD*WgCK׶3築3xHD7BaH&-/\1IF,lǷPPC#{ۮոSO͞!ғ`}5;2^ b]Y )6ld/>Ē_T#lT=sh5nn7(=MK}9ی8Rw vjk5衶!j4O%464m/TlmuZ}T)afQ) }['s{0Ea;δK`k)?~">Pzm  kQ{2z2tZxKs@r|:-J:h.hsZ@Iz×jL7`VNIVmm׹DgJ;#L|ܑD4FҔhlIkh~HCsͷER۲m3j_0liɕq3^fGY66+mi7iO2zϕqIOłX*)EDHrM,+Y47_֧E)J+hkƯ}*xkQ'`J+X:et54e}yyx|)DrYZ%_lJ=GϚ?(ֱ@}-]U= >]?F@˭˺JUpKt$ p"zMw0 .E,[㝟PdN~|JOc0LйCQb?9PnH9!MmY, #ڑhؙ7=:F@w)/84 M9( +c*jZdk^4ab^e*p_A $cx-P^kfmƋ,be'o/àp2I/ 8vϴaߍ90jх"P2Yh䣝\t[ΈщFo-4.<8,A6!Udbf!&Q&P2O\Q Ҍ]޸顪#ܭil+#8U˹ B3ҐԻ7@rћYt+SPH479Ř+{-"䛍fF ft ~RU%"PJ%W)ݻDŽxbHʇ#n?#  (ѕ8lh',368t^R(6@I?A#dG*( R7wGIq?RP襊 /䅱5lNNf_j>RQt2(߷4]+)ם^ "ƽ~!0;AmGO^g|po#?=֐SvTlL"XF] memꎧ[j4@U}3nNr_YT@Z: +/VK V`> A{g{tx+"$vꃇtFNF=nU`hfGM@ R#6W^_w2wH'$n*E?&Y2{}Kٖ`d!I(E7ezϕQyٿ:fWd;jҍ5F>J( p'4 73uaN{I.^+5R藕}{ kQ )rh7mߚGw^bB۩楈&L!_`z7YdA%`u*8c3YsfpyoH3<l'o7[ǹ+>Ϣ$@C~Cuu}Z X1sc}7- <8|]Vwo{GSÇy?]G)ޒ^aKO!$ҕ U߫Zr%YW(/y\yB%0J/|ٺU+,0SM/kx8@@wt$Ҳ鷡"(n#Wlgjs5Ȏ<ӏO@ BBT!>H(X;r*-?'q];:~OI+T#MX ϲ{xvu?yT(&e\4oR;"c.bL2Ș"C$ec`[Dz(Α+5UpnyE7'^@ z> F=ܠ790J,ڋf@y߱϶kn,}ODcf%싒0uRJCUf;,pLLӭG(L =FKu<`m̆sO{YzJ zIgX Ȫr} Nsҥ]|fzklusXܲXJBM u4Vir_WՉ- z7Ώ#RN}8Zϫ#9nL=|eLU) 踶\;xZ>Ƅ*X ̽/8l+md4bg*H8̏l0vpNJ@XvQcAuش2%3ǁМx$Ptч4f U)% z྇u^]G8sfD׬sʂ>'gsK8* Q1&ۉ%)& 7,   @ke#lNcei*䠧:Ҥ5]2:^3(#Y*m@H2Qc_):IJ@My^S0Cyά&ă*=V>Nqbh ֠{a&68<ã]x Rrժ\b\L׆B< `'- ̦o5¯0yW5?S漡7[QV {O>rzgh?e,8>E=2lt$U;5)_L&FÒIhGBNYX%-[ lEFOH+"ҡ>CсՃ|Q3i-:qe:.58I5>Q Vz))4dX̩CZ Yj .'`B`Q́UR /qk9Zw b\;BZV2{HAtw5[4Ę\Mzv]l+/s=bJO+/͗ X|w sgQ~.Ľk8l(>B]U1k'ݝoz6!CxA:K:sjji,r>zp}'0ō>6~{>@.1.ȗLG.FH 4rHT"|doDq:g#+0##0VجkC[jwBw$a! ՞Yݰ $ãǰ\=q!!^-1[*'>d A(Ff ;iGG6^]Kh&7nmfz]IGGO,T}9Fln5 vem:x9ښzѢOG'=G%f* zTPP(󍭡ɸAKyfDථ,I?bxUQ[o 'X}u{6>aoR+*p/9'I@UV2-v3w UF/>LQ'>[h-zdp<Oqw;SkAtosE (c%ʇ&ߟ*N8(B"+", 1_rfeY ~"wc +nJ|b ٿO*#-vWK@W8qi:kq?F!]pbdfa 8e.P"wU: N(9v pS:뻡(mxn<ȕCh#J׶O:0Nاx" 215[`doYl>xP|klnf=k1a+Z4UOC^/Ri;d=-=]_@{iz>rYqݶ LUIT@y/}jp\hOnYy4LS2B ̞$L?SgsexX,th앵VS_ț86s9) xC@GT\,O|D}r9Jx4MwУlD&}]rM@N _L2Ջ&KY%*c=MC5}ן W1 AmcZe\9E(MD 8'i8^R<m6FbրnMZ);%H 4lG$&Qd+9, h* mثKCvTe[p2(I#5 X@nnvhny;]6մftrZT{~׹*HllC聭`kr2 o G>0kE1DH b*w ז;|A|$F&nN~! @ڣ=m ͗tA;y0)Jn(4&O]RPm8\>4D{3r3h"'cbl_}Nщ73=LJsfMaA"ۿsEsO?fH⽍ QyW !g$$k h9f)Yi~ץ.gPbǎӴX\!iہH<{t$ L\ZjHvDrXy ˥!gf0Hˆ?h~~.ON t8̸VdNjL#d7Nc^cpx O\Ǣs.d.nժ}P!yNFZRd83d-VyJO^_F˫2L䯳Y2ZZXJt=-j{- v4YK(&Ҳz D/Wh<>76l׆3"4)RNgٖ!?нp\'(U'a: G=N5RDo /E zokRo$$QR'n:`ی8bUqG4u}-lydOG*GGs*J9hO7*UiWM#=aly\87ō]0QbqlNQu'x\,o\yi paxQbW7/u$iRѓkl#/_挕aͲ6|,A囹gtp4"9|(L% {C ޷ײ=я|dxɈ}KV+dtV=nN1mW>ʡ'n}>'L{P%=lWc? $q(z%…qt%8nuWnE=_kU_`_cF.m#56F{a2sc Ӎą;۩as!tĝ2.Xyy{6No,U6"#9+;]0V4df[je&7:g!YTLǰu_h,m#ـ7,4bFu({ oA?k}0 _ dڽ5`m*ZH1m%5h| PѶ1'Yl|iK'c:N[Eq*wx4~lFX ~a ^j& 6w p'h؍]J#`^piMw.HR}8k=9W2_;"n%YbF6ev70$>}gmoq+l1xxdPYV6xT&,.VclOE($BZ͸dsQ[wrIPv5AFI"G!\CIh??ty)Ce\2t}heܡ*|-Aj,#t iW;E,yΡrlJGjH^ߎGOWBRyH$PW|0=YiG+!i2Qm~qniNw㔗 tB.'W:6zndCR!'tB/c~-ql%b^FvЊisr/ICYO(t+&ؕqBHLcV IǓNwO͠y sԶ랦yy[?scWX78UHFT _/m-=/W<@9GMu*|dO/%?r 툎^Oq(,SSHmG:=E>%- .{f4w*^{68| ID݇?tWBY//zfو pzv3jGʰG)-dˉ`,i%@NyWi:g(6׻5X}^۴K{s|w}&) >DK~7XC KsG` -yEq`[p}"X#˺lR`;ͷI] b'ME6X2l;Į-aېX=gNl8rP;.oL᢫jNok; e8G]3_o+/$ Ļ|\㷬K1v.k|*'=(|O'-POΕcLcCp کZG9[ >L0y^eQݐAKѥp7 m^Uw- H竽uapy%"aR8G?<@e@L8/ٛT'.CkI-]s&z~HJ_\ l+RleW+/i`SAyM`ː4@`N"4/ߺ2ŸK??ݐHW~ut3xVv-JJ+G@J,v!`F}sʏ6`2+-MC*@pj&o Y"87?8o Hkf**U>ٷK_رLM"h'_E.x&]Z:HvlZJ@)vHo|/'],j6w|P'jۑu#$etjt}p N$+/}-b"X Jdmg`tg )s ur1j֡PH.UJ֬0XZ88Q(|AW*(v&UKgbLyUp ެW9LS>(Ru"Pj79 }IVMG2?A)2j3C}Ayur®ꧏ* YF"ډǸ Jb/~G>m3j(h^Ι gfk;gV@= x$x+aݎwk Y~QTS@MtK'#W@'͟-!^)^LٌIe36ߤtI>FlSޤ\Zԛ)BnV#E1QUG,r+#jI{O-j'/ 5 loFSG@_ӂ {l}xFԬ;8bE6X{(6sL5BV:@a%㥗y:;vB8_ Ua\KZ &K!< 5' +ïywJt3Qd1tO qCF[7zBe*h 5ۘx[2f-~ZO;>pCwZ퍬RJ(ԓ(o &I֨uF4Yߏ́Dĥ6,:*(fNД6e?R6.54vǟ6_&|+؋7Y]9IX)󶑼,Ic5~rM:&5 ϋT&S&qio5wM:}ӑG(4ݶe!9 g լ|SݑEO k1l.ADpDګ5>;^I<{ *".&O|Z[ExTlp5F3Z"޷;KGә {E8?}:0# ( 9hwFL.1'[I#{$@û0$vQ1ȭ1ٰ25iu i$K4Z{ "CK,zU2HkLZ~/Ż/H$0s!0剞Ae{8F'dԿ~0ze\emk2O| /!B ȹq9םӪ?pygr4&{!?fvJcEwg[R壡ΝX٬HԶ%Yٹ9<gVQW{c-fmH\e|Ub^`2e |,{.K8kյwgxNC"K&dYȡRK>j.ZVqt@ہL hWiZxtW\v,UgbSJ,pT kҦ'#_Q3)0\kYۯ\b䟮T<*E L K4SRJ܍I;.8 )V`n`Ӹ~×>dv)~Є:r1#l6l8\EQ2pД݅bA }~>ca"LSQZP,cPE؍~g>%vf0nmlWJJ yUόQP,9>0@ DXeuΞ79p3tݢg2e`($2R ˃ٝqX|hSNaT;yrꍰZ(N:?ף¿iu.f|q_i)>M| LZ'T:HU?y!?Ŝ]E,eE^.|,]hYmȓG:7tTA8PPƞ9(Xnq䬤N1m1 4{ p<f~&\"<@(-9q_+Iy2*ku ìKӷc v?ޥ,T"+|~1պ}0489H#q(]E@)XցGI.. ipM=@{xkA GĀ JڮxdU4E`A.W#$4/jxR u0uJD`<]6P@jDFyy| u˼8\򠫶W!'9:\w%B^ؑwe;ӌ՟ʃ2ׯGrF/J&`SCC"7wDk£rJ?I%+P8dKxTe >ÁD.5WS"*Wi{WLПӆɶ]:!&9z1!2@&z"m9b4e\4wXB;iUHiOLԏ"woyhpU|BEO֭}`C b8?AuPB[ߧ5f*9HYPE%34F6%lO@ P^f錉Su#~ rN@D:qknO .|:WZ%!7uĞꔸgb4F;V$r樁pBW~xhOA[pn"*%\^"I &ѢߝLv yͧ~Z/`}d 8J#aa[j_nujÎ떾wpy֙7~'niEdttox G zX<׆pډ6))ͤ2Ml~6cvj6Ԥ<5\6bҁVDSN%+ =oe L&&Xj$+ͅr7֙ G ڏMIw皇[[ +vQ4-3_*q_dq0:'D,ϪUc}ƛԏjio&˞\/y5/6 xL5EmjޅgEe7F7㣇hHfE[fcF4lԡAPZklhbu2VD&F?be"qNNGz4<{ ȻG%f[a?1,5QQau(_2.`t'ːI`> ƯU_K"gH-F;^ 2໕ĩM)J~OW!/Ԭc.sI!% \IqΪ CtqFr3tlW&`77u<gK>=nKS2S;o/=k0RT&`n6(HPٵ@41>G38%cV~L^ &lorHh dͱi!_`$p-[:OɊjI$7ټsQk4Io Z]fSfkIOO'DQU=T7O?$??2$"8v)TXP#s[%T ʗ[dh"Jw>LeOQ~H#;%kg 6U'Yn QY,~enQFínfA:_~{sg[ y1l:d{@*Ut9.?އ6\׊$ k)&} ׺zj^FkX]eZen(e4qO&{0bK X㓭mؚ+Yur~,h D[b@l' >ol={1{Ez/KUEKA#dE@!& 724qnr~Hiɑ)tG|M nz0 O9%uOl#X!fkm*+.m$˛3 6!ԉ78'/- J,n,քs!K*D%_uN=䚦߿ -Qܦ#Ak7P, b\~w9W\̅~O~:2}gF"`yxei,Z$On=8BܗxK8[\ h+$&y.0NǺ-Gn(t랲ڹkLŭ wzIyAH-9at> Rj GHJmkr.7R SQbapmgi:p͋, UPzy| fk`h }Ի0Q`pXΦט^D 7p@ 5n94u@)!lOaK{vL 0.4W!Yy= 䓅GdaX >~Fp%4x$l0C~IRK&l5slԧLSehUz7jh|GVV,8kX8DWY}n~΢R/%uDR4l =}{th5mC`9@޻&?y@1`PdhaSMF}Nq' cJ=dtV&9ʵ L:C p uf4 $5%c;pז&\,z) \ߞEψ6 ՛G5ɕ<;uay&YnuEwsb,Yw@Q9B3@@Y=Sv8cֆQC#+\ԑ9a(lT+wlzǨ24e=O䑴hyąUq5f} sQ55֎cUxT¼wAZ#2/Z ih+G Nμx}8J)y*[𗋵ܻroM*V}յQu9BbZz}; /΍nfGNJ sic["^H؂ltJ5*ߠ ,0~~Rk (Y?m*"p %Es@Nb3NE%iN_+w8H 쎡.aD9*l_獓u;t ot ~l!Y9 fS>.~v?Wlm Mjgr;W}|*ns::0|cı0,wamqjA< 쁕k뫘9&}+5xݠ f|'mԅYa;|"6Ϙ?ڡ|ȒdSKNt?'"m] ]_!^Iu({w|5o/Wyw*lwØT(2&t.LGeDUE s=Yx7 ﻡ}yL{H8ε/[ Z ?@ukCO@ 5;1Spl3'4b1rͬi&7I9֓/0:ɾh,'¶e^ir<`жι02Ցy/ЮlK$gRb5C?hRMhO z m5oHj98La Ѽ4AQF2L:GbGg͕XXk|1GS4 ?/1fSfebv;U\c Q1g+TUuFxRE܉4u3wU{h$3erA ><.S8X84ZW2C9tXnFMR|o.UN^)>冨3`i44Pj` :'K{|YGVYĘ1^qYQ:/~ 0dk04rcRrgmO O4Ʈlo#Tc.pBɛ!K+} IRV&Ѣ&6OlEP-.ͨ.(mDMI -/a2a`rmtEpb"."hE9 `JRCfǹN j2]~'~S a9jBMGU A}o匫I 6;oAx'~.րuaJ:lod8]A'[rT@)0k*th]TOr@"{@!z ϳ`4jԻxgZpb)8Whk 4QLLjҫu aN$n<6ۖcHȥ5.b&=6!0u*ۺ$+ʬky:r^t?8%^'pIT47e"F6| U$g'[}6RE!DWMV5;P/5][Qw:mKg Gt_S&*f$N`N2CF\RP, 捑 s_ʶ hf#%z Q J$h5~AgG)3 .|Yh&DMKrVQ\+s>0]+~oH]nw/I2u =mk<НO64aHxb>"}PK'LVi/l1^zv "S $å_0a':$u >̮IB7uK24z0/<<;UwP('xHaCeqHp[;>o,cFW`l9#)?x+cWٴ d,lYn qy"=E{Jrif#a˔?+:̦J("XH v/J]#pOsS4I A#|܅.esS›'D+'vS!X2xo"/UWtF`!E;jRHhӸb3KXe;p\׃S 3fzIqZ4Xcds/8De]+Dw0ҬƳ(H7Bh\XzZ E^էԎ4(eݪdZ;9WUzȃ+JL)f\&f.CzV.!y$ ,O:0;ѻ ڑ_~A i:;ήzVw >֛UP;) -]|cq"D]%MObj NAX8qOgge6U0]IrVxmźv8?H$@:>>ɫQqC9 Ӝm0`ϵ%+}94Rȫ #uBb?pXD :tjyt$(mɔyi({}n;ăviJm>5RrIJ,&n82v5}ӿ[ؗ)O^oLzzp[$R$}.P2U]FAJyNzzY]p* -$\0Wc<]/j} HCD9~=7xr`I噟ax ?<<^ֳ%l@ov1/BF<'{Jh0ڦ4=kr>p%ᶑ OQHC+|98p5 gY@^ zJJ/*h" 4 e]&zc"jơِ#PȜqBI1%FLvk5@#xEEo؎M &_Asaګy4xI@aXy6ޤ Q;E7l|mHÖ E M :r6g"نV steՠ"k%M9\@2zle@l<7#-nkVɢFr+xe`Ք?n:XGMP_}u,$14_r&l׳x~1=B_Ƴ;=K 8#G9O 9}#C4?D3 BFG夌F1AamS<LY h'-*]\ S9迎H4ҟӷO{y91_ $Ȅ u5ȞEN7rWF.*?LX:D G ] " {3mdKyze۽EdK43(l4 Zdj W2[r զ[D aG2mMX fdVA  J"f_j2?$~ïH54ؗn' )z -{E^;giE:DmmgB,pkrAzmSlWIy5 /ܢY:)}7gJ YSrSDQ$dg:yf /j"iwIr9ś!۶L]~x %+7p"VnLY=8ʲSM"jo4)v+8ɕ%\#FƫjACSN/`\|Neɚ!P{.|Z%ktso nbOry AWlHFB—dBvy6k,,2Jj ry"M,iW P×+mSnQ3U2O +PS-ϲ@JWCV)urFqS!n\~NYfcmilE^H-8kjڌ"ɍt9e8X-_Ș))h{`( .S#'+nϱѩՊ6 3JfOsk{F]KrI`r#GmcINm\H!Fp(987gm.3'WB{8K -7jmGxu,MV_'{g9 \0pahdD7dd^QNC&% WWko #¤r܄Ʃ ^ۓh+u =hѯZSYz{'!<[?<8vh2sy9#m ex_2x}uER?6s$sLjXc| čch:Ȁ++CP8;!m ^:]Q5ϝBJ8EDɴ޴Πk|MҪۇA< Ċ;-zH\*~mV7wAڭ!M_3''N>4]Ig,FiF(eGpҝf3֣o\y=5iMR{! #&z6fʝc<t5o0DG/t|ťxzGy߶Vq\Jځ5AT3^к {tj,؈6@|u5хwP W,[1 \6 s-揑7_r^S؜`?܉//CmAH>N,w#4Q]L=MtV5 zGxG%#Pծ#e~™'9Q P~,=MoiIIEtC5k'^Vh=2w3_t6ogZI'oXN^V 1H2^Cɿ Hji([mq$jiM'R0 3tiᶔDiOn l!`>Jt9&n+f. czfP|+!?F.XG,*t#*AG@-ZFvrOO/jHWldq+3H|v6ɘ̿Λ}g!"p/yXSAT^&S8] gM:=krǪʨJL‚|/l",X*x+ҊV .zz`U<5KΜʃ3%?h&3Ō1lb|!u`TM`?6(XhxZ ˜8MF;l2?.IQF<'aIL8C|XcBZwwR(۝VuܴQg#$c;خOXWDź,62#:ʚFKV cPPgː4uha%t-KKVD=uα.7yW(ޕGȖR* | SuYͿ\nq˒s&[3G8ԯē_63B˟Ju<)m4ZAfԀC˥r2U_:h[ҥP5kr8Q.1#ڼ*/ΨphP dn&%rJ/g*ӒWj2A#P`Pz1g/Ebk6& 0zSӎ.eGuIJ!䷣rt^*M7W9SPq/ࢅmuåz&)8T(w?? 5GMHA)|m{K[ +ۻ}pAٓ`^=F HŵB:)ă){ zI Gf |g k=UV&mglCPͶ8<"eULM8Mm[GQlfs9%y~5-ܡ4*q0ۏ}ی,X2j{̢2Q'Ld%J=|H< 997:O !gI{AF)K UHׁwXnkx|km՟*$k \,H=*A d_rzh2 &s؁OSC!m)Gt:l#"5`.N{;h>;Fq+0CyGۆջrCNۤ>zˑ$߭ceQQ W- ZIEhQ]0fϸQwl1gir>N4VQ[-{@eQIr?-@:dI'SuBT1Ǡ@06A~b|}+7(1:`Hj8(-LG0 ٶ+G?O[oD6u'@[)VC~xNh|ZZpvmGl(?[G0a3fXfFsɭλ#eVe ,"l_w6沱&QÀuVФл\#6@bQ:N+Ϲ}RF ٷ Yu(i;To. {+DS_F(5p"/e Fɥ 4xIӦLZ|h:oo s i)ڈs^ <'=0E e]mȴ{*0ve (]178W?O>?עۇ>N ȊA8 XM>7 ^rd4ӈjr\ nG z4`nr(NYfo8;eb- W !!u{k~AzĽ&y k+h@jc UF2`Dz)ðEiR M(B|dWZFTԳ֧`2c(lA8,~o*)m5RjR;^T Bu20l3ז*F>S޹jճH8lz(Fl$5&Ԫ| ) lB/@Q7-Qټ@E $f!XSݔwkBܾ?Iƨex:GK ܅WEEV(veѽm۳FC^4H$"&(d:x BOxP.og"k0K6k㑷?LؑhjO)o͠Ӳmd"RV-#'035;>}}9)JO55ݝ1dSwد tO3RX>?xGwmy.!k0_/۲o%!o0co@mu٢;fCM|0fޅ8E.}?S!!|="^*0- {oM2uxVŘ٤.PC blX 8U3ʹ/uZP+g3>MU]=1XU)N.+H/ ;4W/ JM '^zt|nȖ%I/<4pp;{ߣ_Vh^thBh2ks`λq zxMo4WR=n?`HS}iErz;H/:ZG9!xo A5#%PopMj pAZRhzIkUN-9q3e~'æ-h;蔚V ؍Pytӛ9~[_,9{x2,ƑF0 PC) Zm z+SfĶ[FH9 L! D`gӪ3vouҡ!mEE6zlڎj&l,U8rf`GA+^FAxhUy^A"|ƒ>ZD=w k}I|kj;7e_3nJ!w 1xEg'RVxHVNHVz!Ҕl!ߨ鞵lѡ*49i4ϟ1WRhvқ'z.vcbO\v y4%V";$z|Jԕ1>D^I|&6iW A_ƝR w<=| AQb:D0}(#s u7 )1خ6({Q|NĐm)$F?};5]eK#Z 󻠸׭m--Df%j8pGDcRWYNnzB*#X?9Ah xV;$lxգš5@C%+`L 'Rn9 B\ꅘ&{824g,ݶ=ƶӊ:F͖vT7;1(6]UbڪS%.b&݀xb꾔Zz8AX 淺VɺF ʛqZ;݋;$Lʪ>z{1uUh~!rq 2_e{6}C(P+'n%`ч[j0wuG⥭^~^쁃kB.Y~'*DsJlî֩OHfIg9s- ʎ24G2vH㕬_hh^f9&<; b"&f}z8jiF${'B_ BnB #V38{2Lcs˒d:)ֈ4I_+۟ @;<|b&lhG1s'*uS8-fT@֐<)h1,$x-tRݬ,w /  wS6B4',o3,cN Az)_"I3Ό50V@*FKDz69(҆7{$#0_|齅ྷj [iKtn]Va)c~#G6^S5@*oP~חkŦ3bٌ]R/bJrS3m\;=LRQIxxI]WJė_rSc@8:ƑyNtlmg ]Bs%s0ǴͶ,o=1&lFo}XMpZPH`2 l)COׇ 1\0|`H?QchIyMܔ̼zƀJ*$ cN#i(5s ps0ß!piQT1~ hGbdX7nWg-T[H,u Ƶ6TlŁ>ffKyE#!R jD*GTw' V?ĥFYTƮ)ZT?V|A%cs3~_@`uaWh[HTp1?$ ,oysgBM]>˫/\] fN#vR?t{:;4R~mm?ִ ut?8z.DYw Cz1"Qu1 覂o#%OSxm҄w(O??[ur+ UfjЂR_`-eyM ?ILnwYW,پa=^C3{z?{j$ ؝F-{6ZHbPd[- &:94]`>1X1L,Аmk6Jq5 Qqa˚E0bR?B1{[&F1f`,Bw br9YQT'F^?lGKܯ IuUkRb+ZtcX8Ҹ I925qt)+=wPæ;w}K.,1V쒋#H?KudJݝ&R|ӑ`ޑ[}W}ra{w}&)+v2<㰷䑜r^2bjEM>&<:]!8V_!b3V!iΗަi+7C,ohoѶԳ{TL+i˻WD2J`伮B@.N ]{B|Z*@n U^K^`̌m5~(KLMp[#`+p]7Utr2!PT^UpomkL͉s 뫷(㺙Oy,&Yʒf^IJ:IM~ԍ)d+[cg!ƾGxmQ099/y~ ?nBZr_y>@ {{/6wN%*'g+N<nyJ2Ɣ>YF4&?hNStc{{qǭ JBxn9юV$h3*PnvJ5ӽ .J}9hQ N5="l/G+aK͖r_im)J6uUԸ&}P/Auq8BhèXFm,%xL;e#gcZ$r#_͘NbqP՘n-ttC&;pי ;lu ]AICJN҃$PK~s$}T.{a9&jnN5Vrhc:}wQ48[Dɶs&nά^ƭ`,Fj7]P˻իϒ'@!yQ`T/:"Y޷M)Ki6zvu >#~FSr-LFS|~ ( %l\>&+y,^B~Gjڵiv鷶 ÍQ~V.U$1Kc5 d>&X `m6dRȄXݾf'dU:,rX + tVt}.=]dU8Xq.1]9V\HKN}sb(^I diaMa YC.;!)h"i(.̺jY:4Ĉ'Gcnez17e)ΐ+C\wIE9t)Nfh~xCc^|]IyĀ7kٯ@\.zo|\yh>+1'F].s&+Sp?蛆EZbӽq_gDA(b'$!WPt<W1'iuqlxGEw39G yV8HwKF tǸp t;y@E:QMU<<lՑ3QqFjxzs`pZ'lTΝW4 hOTV{l]W'd0fy LM&EiKf$]y5=艖J0oX_t$k ¾۔ڜ0dt]VuT!Yl4:|"o~|+ ^l֮Yvƻ85J5l"A!|f;8Ri)3fkڼ7Teӄcq{ʵ\DX Oχb@2㡎c(|!MD*)Ք7wO_K?ضBu`CRE퇠`̋3Fg ^}4bmut{ )FXSu/}bwh\ (o.lΓTĭ~kk9jft'TH,g/8"{"d[TT\ m"A0K7\!Sl-ʋLV 8ݻNV1fՉA(6n&0B7q~R%bi:wmYfTJ>̈́E§=q[U' zZ Ih'#t~ڀ $N|eZ('TK ?:Sx4'B,䰠áfAk*QZXiJ%n`oÞZqjMj5H\R?*%46¹II]v P4t(c4WK٢kN%>4!l'[0Y1J˷_s,2Qbvc/&(¬1FH_pאPXHH90w<}BSz~kұ^d3Y͐vFx52o0lV{'ǵ`R>Қx\Goc\lmo*Z؉=*;x6”#q4aJvr\ "`v"?kԫە^; `Z(=lN$;*ghןTpD\,6,s{лP PU-]}ȕyaF A?'D$^L)yOo8D}!(:&gfG eץ~ T>sql=DX0w/ALX{jǺ6(pL\d"^zjЏ:L6T@=n%I) Ka>"7Y,;?#@=w%bb|f\sj}ñ6gwx9߿~a0b"BX-ltGBb bQ_njD,pBF Xgl{_<)`g,w+΀}m' ^rƂBp.1uE1F CתlbJh aoх`Z6oMhfvۏ^f;8|:{%K3parwpk=u™Z))Q@FU:LcoW6+,A|d /B-Qk@XWym)ON4סUu)MՊLE^ dpIjTOf?\*a>gE̕EK ^XV.GmEcڈ2Y 6S'gq,:8Hb LHҒZ\ĂU..rw廬O⋃M<)\ L]-^e5ַr`l$s&t .jӵsz3?h^E u-4tB}ޔh?MҍeȦPV|A[(B@4%ߤsѠG=ɥ o/! Rri trcO/{ {jqqZ =ٿ,7 p%V7@xJ,/9{AyVC2_=TsX򰱸]Ydb8q͢?A!@ +gļg_VE+x qIqL2$D<%Zaqf$oW9 NFڑVQP:mm8=A@yGy$91F6͵6Ο:0o NDF$<[LH>`A̓xR4xpv8"}~a~k_o_R-MY]ٴHJ/pIl616LN3*ϋYG X%U=PTL}]0'}Ļ+Rɕxclڻ&1@\o w l˳\ 0䮪y=\# tDjЃ) _^/ AXV5>:PWȐ״3oyĉh:u8“LiTpT{{+YY(R.c Ux.iN'OVqpYC1:š)E7 ǂ3bN'!]PઽؔTG+cMIgKK-y@IqM)[ {CUNcju i9},tgtӓ*:q!lydڝ8xb=ՎG(|$A0hK6[}#,ޏLޠwGc{8 @ah+Q}S09M_a܈H/b.V03U8K@6߮7mH4֭-5)Q0ۘrsv/0pqΆ1@ys~G1WcAlС =!wH4:J)J*[X۩x%ol=dXpZ5>_:[CDT~0YMވ[*XUop("(c?@~q=i4)6{L{mW&,'V v ${578Ku7fFNg8|C %ޫhV冶1#(Jv1ϻe LZFkp:14kjħΐq"7Cs;cڍBo%ӕ>x_`XH<^1Q'o/e )b'Z6GE}GBw it(fͰSbG IӶ  I #t[K&S,*ECn4]Γ`=XlyKғ:bB'Mes}fE<$zכHe]Mc~ݶj>j &^Sf]&Xv?gSUrXGa\i.\.U+}_<˲g1:+o ʎIvkhJt wFfҿDrzX"㍮dzmdtRsC7N (ck:h|(89Z"[cڎT?aP l-j.y?,?k | 6DdQ>3sDrma: 5oB(.kx{& {>\QM"^ RцR> "p$L W2 i,swb83(U+Cs TYlrΊ6dG†*@q 5Awj15W=WU,xi ̥pfM`m::ybiِQdUl/"M\OJ5хu653QUg,`~(Jk%F*W-&TtݭY^fJ:Z4\3Rwz~xKB?Vfq9ob (g_x lS,@L&DXz۔;֧Q@673+A}龞r@F,"8AP tJgRpzzô Uv݈8oA=Qhsqs}2],X&ܧ-OC]bAY2NΘS4/J );B VW4ׂ:*#Jʬ6PKKnO[j2N=P.R.qWj-Q}1T%'0zK~@oCVbߔ˴{j'bg-z 0gAf $ߌ8 ~J1=DL 42uM楯L^w?\TG)mոz7OGonYˉKeYh.G,77 bk_3\4(I`gp՟_ac>VQSa:25ZPF4ڢxvwKfhē/\fthqF.ȰW2&6xK.k ʼkN%>ڮ },o#ibx)oTfWHSz-(o mY`ƫ]MKM!PDեXV~_%ͥ甫;8Pĥ_X)-G#+oH߯G͊e{`8wmN:{vÀVX X2uX}&Fs(3Ub]mBm?^X qB f8DU20 !**VMk9>SB;:Ug҃6V0Bfk۽¦h1b%=P^< IGQmnom2ߦlu2H>c:WRn2fETD"gqz\T61VXU{Ub4uh]0kY -K/(BS:;]LטUsK t-[EN ~l~'AƵHZp4G  W"#܉ Yl}\G+'\s>gٞVks9F;,xNF _mp%Ţb׆]vR#1# ͘u.@vb/2Zpcl }ʢ:GnCP2' >ƨ!n]Ā͕o3Fm:f艖6Y(Nn!WԇKޣvЉׁSzm\jD=!f xz]H2Ĵg}M>_j:r9'+瀶:8fB:Ӌ1زD-rs]w!tU&0*.p$FW H%̟칛AP$rJT7Qur#V7sin~5ri`lsA$&)s*JV ]Bl̿*>[N5 nk+]翸g^+֢kw3^W訫:,Mlu b=.Ɍ6e;eA6B|#?]XŸ>B戱 B+oovȀ[F;{n%)WD$2%|?Z_‚ffA+%X~8פ _C2kG]gB+KIKh?)34^q(HEaLݙaϓ &kQ.*3"%O':H#EwuU˸ZDae-(2D+c'#lr&F8^x& J_"fƂg]U-W*Q#t (c7+j|CW|U+ue 22#y71 nU4pi0[#}Im0+ !< pfJ@^P*Bo7;!٘1;$QS^;] AN@ a]l80Kt?OB[/%֬@>M=\ ^635I?Ͻ:WcU'frk,9FE)R$⧚6,QsP_HdŀJ_qķ9U31wd)p*T UO%VQl/ 'l¹jP (ˠni.i&1i<XϤVPXbZ_YwZH. L}/5-M|d+@ aXBEU.,w+,0غNK|jހ*čO@ @##{&S Np3v`!)Y^ɱY{k1\D4dl g}-Bt\^sTGߔғc$SZ*!)n%-@"p蛉\UHsg.0b+x َ`vj%SP MCC2 702%}}&Tb'hY{N< dm E|#-5̎)`8Bض`b&nFᘞ%-de0zc&< 0ͣ 'b\}0RgB!)`xb?g,jRs48O7N.p)gRJ{2$Ls|s,\嬦q'\*?B2;nC޾"ԫ"`N+eęApLl^U>&&-^8Ӆ[ gyuK%MM@gȖY(I.ͺ7Bص(ϑQ#]ש_Jvz1Uj8 Hm̥4"R#I4Brz^(o^fa̕Ïb)`/ ?>bR_|)'ߦX!>E^bzf PNJ&?mu+*Hm{kĖ?-۱-j_jd,AnL^P*Oy@i4wϝqp9Γs- 3S"{0_k,Ќ4!yfe @lF[׋XgW h˧l;}ivxGeq}z,3Z-K9I6W˙}qz"?7H2G:+) ^fDws[RDq` fgjyAdGbX4CKX|[oRF[[7ٝ7I[L_%Û]{;|<*p}R,/÷4˹ZIRf!!a9ڠي i\BZ$K.nߥ@@!\mgQ(A=sOj90XgQ[kOO8 w#S%Y,;fr28+ QY<;P{JS-x_cs}P_{a8ݩL%h(#?]'L\"ǀ:0Wyn_wD~"* u'MU$0HW9TYh mi ;~z!gǛaA -xQ0σ?6D*B,܉ C=xy:\şXӨ/K.{3cĽ(!Ϸ.3(ta&(”ݞ=P۞BK8oļ,)ʤA>zGtXѡ& -K<2cnC4E\VntZ 7ΐbo׮,i[ f$;̑xI)|&7M*x[Q< =֥!;̀(oͿګ!b;>[̉*ZC/p+myj7q[?1ńL) `lι._J^<*&g[:ߌCãiLe3"D'L\,:u x%@<3s|K $RFdi{ OpE6T(GPPJVNJ=P ڃߌR}uA&}<0wֵ02&gvܯo=YSxcͫe)/o%6?;'Ex9/ JTyP@oVQ.[?@@ihǜf;2f˫%BS(y{/+dZ̕XW=Ӭembs֏6hJI][:dh~6=2<w`Fsm5#l\1@{+g%:Uꖣ$!!L\迁"{hq! 6AMDǧQ?1˷*%}J J}cJћxσNx}K2CwILlnqWB#hP1͟h ( \zkLm_;_Ҵ;y6*0>S)7xq8 }\3LW+g]M(/O 1I}HA$ןSL@ںb$X{ZWL3Ja]^KS¶<_6^$@: Iq>z{ L9Qx|NHhǟZrmK%"5S6WGRk#k3~ E^r\%]H2&0,Mpg wIgmμE"81j9nC1ܻ\giߞSw@' 3QG4(Das9YkOo~8)EK2C&4r\o]na<Y룤*-y@imK{&omRAVjh$W"]&<r9)?'G8Ȧ#(;["\}"?38 ȰH}\uqA"+}L߃`&;LBҋ.Y|D#1f}˜`jV^c"hc qD!> =^3 lChܗ( bi'È~r)'Bm)l$Hr!6쯀awnB3\^?jFK s!IRnTOm*&V3 47?>L8i"zF">YqBSK"ڡ^$ppJ$ ? 9^X9|y+_c_gkԚ;6"2Lt:GK!-! ;O,m,1`֦]:!TҞP$ȋw` =?VZ)gv]">%'0<*“ɔVvG&bBo]ܥtEn'+XP%6^`H*Ki5* +ގaJ?9fgU_?ٔ/C@]a.vqɗvY9MUjM/0ph -pڅ.r_o9m+8DߡpUP>ȎXFG|DE'{Fuk~玴9+ gH.A 3)!Y`^Z(krȮXF]О@i~ kRW_jThQ@VƒA-Ǡ#E1TM Ep%SIt})ٽnUzAߟc-ҩd N31M8`.H6eIz6.Y)B J!U9Uj]TxZ+򗹑.2:u.*>dp0}tˌNފ}cCzޝ Z^ť/#1Î[qڍyt dHwDĨh]vԦ_ Ñ6reۦ#_z$Z `9a0lL(Sf#~k3*]I~6^5)\ c1THjƧcw`I$.6OxCY `د=xm`=тP'? VFACk@t,H_J28K" 'I@4 YgiK&aSHR5 ?pY=n;LjrӶޒAnY7h_,4x_U[MAdjBUY?O&׹{XO[M{+Z_wp5 ` {]slCi_tf:T#PZ+ZCf0q3guDGdd=i6Lؠ-7v jR /ɹ_ dK꽢gKr@Fe&١w!T`, 0U<n2S .뤘ʽA.l* 6B)k$ƍb9W[ȱ4%P$U^-2X <@mVt3!RrjJ=t'w wVSl\IyDq؂;HB>ZoZ! n7xg%&J$nIJ6xLO+?= a/-2pz4tAM}v(zDsLZ"QG+6|I"x?̾* @mԋIK!9H?LvV,@f5CI<qT!g|d!nLE215(l ue6iDyBn `K̅Byt#bDFcgfU ȆQ+ڳUa$+ @GWcS2C23Ff̓RƆ\ 4WqaFWݙePIɔ[ϖKp9 \@_d[E~3IB䂙3w8 mw-JBQRO|Xs](=vw=V$/ڳ%!{ug.J C6kQgwa٬ń?j`x?׷p8wu?UXIîNE}^]ºKm^x,|i2cS+zam0b,}zo{DV 3pT5n@guW@'nb8t:ke<&w1x A^o3X:`7ؘLFUN~p;c 6q0Es#9VwTċqgLsv !Z]Wҕnݖ:dZ-/NQo̻C֯Q Rr w7 @6i)iz_.(6hkd6ٹȗ{\n˦@d>5^P60( yq#AQK+f6UcctF E?w鋖 2 PBq5a$:_n*&KhoZ2HQR%y6xc5:bE5RN0J󌃉q P4.>40 %Ob-0.=#j1U6*TiǠUcȱ1-@$}CcivKv5ͥB"lEu͢^+}_װC5P%Nά+O<j,LX';CiĉNhl %LE*ͷ2 dTM_c7oǿ_v .2#E8`S?'k#LG CRY=$a$kC7f0qCѪ=YtXB+_6yokl-@˻jmq^/̬4ںsH zf8X  a{’avUW"\kEXf.BT=J}ZF,hڙ'Qnԃ Sd.fq泄pۦǮ=AXykRDnR;nzBSBs2ܢzgBq[ ,㊛Qg4Vlt[{dF/r{z|܄UڞG ~fZK\аh if_H3)O*ڽm9(߃Y9LWzr2lKTK1ik|3v, 5}uunAɺdCyݯ!p̯NݨxkL_ƶ&t#UR-Y*ꬕPF)XM*AՖYlBzR~D)R?E| w77d{6ORWcgsPwrb=N'WLf3g ڰ4,rsd+ (sjha[+AM)*H&aQ  6 ])-4|=B|KΗ92Ӯh=$O٨>I8B7nA޶O=Jπ69;nRI[~I̢K` 1Ϳ O!40")s&|acsYU`W7^a l>Z[)1,E&4? yHd߮tx 87d\YsT D99w=$zsB$lcPҷȣb߫Lm C11yMdOWse0>o:ȝ#5~8^]D RE?K΃7Gt_zqU_&ņJZ :VGV ٍRm0*Pc>"pB'ZaW&8cHYnu #z^ V??S' . R } p`tt 1jEA_d1֡OT*zgN%N̯)deG"'@oB|6wY7C<c^ 1|L;b!A" P0'!o)ŇyL?IJX$GJdsge[Az 3p,>o' |Dˋ g}k 9Rh% +|u#c6GS.4v܎1|$,`ru]J7Ob'`REU4_QʳI>RvS+}v.cw:O195ryp1 INU)@y_&^PkAH`,<]۷g;zi9@Dĝ`0G6tY)]#zJ4@˂/DlՊAi/_#wF߃ cKs'# af\7:3E9@{ѬYձUoA~rs8|ThI= W^˩GW^C߆TEtu 8rpV59;p|{fu7$1|@P$2bFTGA]3}jxY#l󎶜[I{S>L Ȑ$%Nv1\JDϦ${_ayVH +pPNU:&~INg;淐Ҩ3yAU/,~ܛSR2SoI|ٓ<}*+J0\箨xs?Uo$ A3^lNB Bγ+.BɟΠ( !co^1 GNc. vP1~\Q3DYC&/Γd @mDco2rYGKVcY?C!ݚ{FO1U*8ᷣ|Ef2so—?B($ swC@M&U!Ĩ˟[o1u4R#n@D=Jjp˝ ސ@ Q ;>5eq Ðj7Z)xz5~vVrg#HVS-2M- h n!{ki.'v䤮~47ޯ)j2bO0nJ44H#59K7#,̊J ZigېHIzƝMz#X썛+xju=-(Ϋ@oqSãIm<ڟ.УP U\@B~;OZy=sb;y,d{u:%mUs#,w,IUQtQSɓUqi0\Jׅ3nJqs/Ot h>Vy|fpn,X0K~Ymi4c?ehƻzAw;;ZrV0.WߊOZpS(TAqwol-^JgdTCCa8]OP)>Xh?mdFZ/ޡG3[sYƚ,S `/MRоJ 6CicAcKٝ%7D|fԜW("j1Qʳ_bw>t{ !ڑW/E5#/7:2SͦSa-{~/8}0p_ຬ]UU7h?~MB}g;bdN^^X* "PBr7366hT\/z2Wr!`u$ B]0i?kWYT08/DZGC-_%Wk~㮕\F-O t2R8t|氱%sAZ㌴]5E 5ic㯶xٻTƮ b?g{g$ٓ4{Hx#gI̵!~̫<U _֫Urw`?8X>LQ/6Rwҹ&[. }h%]/Dĵ:+ xK3&~*]y&'*X J ѥu?*8%)(Š1lpIwLѡ9Q{qPMb;?͎/$ӂPFQC/mJo8ݼ<'>ƴM8A7ul^*eT !t3tQH>|byQ0WamaZsL]X]d_ӄ!*Ybϰ?F$I">0ڦ *P jN~qa!KpUUeÏ`4(|I'}0m,iBmmN7 k6Eu۴d$R8r]xC#s!%LoI}ZrbrDuv%P,>\Еax{7 \qGa 70-:H͎/#3KP,`\$Kt&-zVK,@rW>|YP@[wSJx6ҫԕUfV/} E̥K{tJ#,Y'C-* [ٽsiBپcBn2ːnfGkG)*wIM.%HyKƿ~^ r!f@1p\Ñrݐvb\w·D.\Kxe#a.Yt8Ϳl !^+)LI{\rg$hfc Mש #i {KW<q}٪PYY?5 ^5qGgDŽtEhoUcsmGh Fs80W*gwčcH6#b.0?Gߪ15,W2 ெ HU9< hk31D9pF+CIf[hE&;> 3H-ʋki6v6zֺ57L?Iyi&juHx$}&'] [eZ2:Y!i(eL 2L1e/YbʞZ f`XwKY!Pe'mu"LW{T1Ø;>U2D <肧-mxKZx\W& ZibS2` [QiL?,8J0mm59xkAlT=&!&q}qdV-=֥3p)gdmQͫǪhXrAN:mه,lfD8^ׅ_bR ӾLpZ=.Zw72rXƷ(|%Hw)cDEe):9Je-?9NNbqwxxnEU`M:dB&^sb" ܝ.捏d$ \T>duGϥ O4d&i#¿zP/t%{`^T,m%0%<q_w]kVwKPHPa}z;VN^QsMuB!NSGϸ&iS@*}u*,r-glɔ|)bV&y+h;lT.cZ>>i; g+'z}2@E{W BʃXoG=~4,fShZ=w4=po,47T?E Gڞ~š#Z 񃅙nd)x()`|X/ʼ#dU7bvXTgŔgo x<_ n!. R*C^⍪(ywao!/OF^R[ҍē Y+1*[nJȦq0K ]9Q8p(6w>d4>pؤx}9 oZ*\^/GB,%fp!\g l;>ZE+U\eRYCF'y=T{"0vX<@}4oc&(Yqab{9t#ǑL)y}7d؆@5nU6Aj;ga"쑶9P[ЪeU(ѩ2[\<*Q)LR^v\0%K A,/di1$bM%xqwW"n(LQ8ϕA0697=<> P]`mNrW8_ ucOuκ8"SG{(tw%ҎDp^JH;@3e_-*2oXO)6`ε_yi[WȦt1EJ_C/blO"р[%?|@IrG($@GO)*![Wc0 ЁuسCZo3pHN)A_xF]]j4 W^^ ˫T^Òqm}F%Cg0{􌊽' =N&xaKc1vw_sLtWw}YBFXـS0V%p\ 7WnL6R[N;!F$WHT4O?3z JȖ{Sq23]I昒 غfsS:!i[5LbJpNě/R,E\H{͢ ,_*2oTߌ2VLI6k^]n[N,/o;Y@ҝj/ OͷAg29X@4ㄡ).>vNzbe$M7 J'?OvL;9+Y?+PY:Y!U7La@p.4R?܆[/= hcU=)),f A諝,3r/4V씘h`uHvϴ 8i:j\,v!/xuGj;E&_[1zpˬ=2&<@Jd62NNU EjRv.]X=IF Y"~}ǖ;Fdѭgwhb%i&4.;mƬ^=4m7CIM7EČy¹%nܺsqǼ: g,ԡ*}3 U']̲"^V *u*pv#,5{2ӱ59!b~9SZНf2o1~nWx[AKAmVb/^ݑzD +[q{詌|,'M3"b_&s|/?{=EWlЇ}yۗTRP6>2j;tMX8܉QT2~[;p3[Fg? @]sN5^)Зߕ1֊{jxO^JAk9XGlgID h3pYhәqκ%Zdt c%4h|`ǑUcivP_R:@*vi"Ҋc}k[ܝ~km*p5>*)7wK#L~.v:xϝ9MQAgX 5+q$YsX(U X`7H4@ wq A PZTBg񦢻> Yka4~|&1%ʹ5 jmK;:u:4\ҵkғEDX)`4gQ2uyWCp^c n[,jk^#{0,hG{v:c;2$YyFtUGQA=>!Zn~'nI# XbTq8ҴcP_%6سZDޖ#?̷^ن-j,|%)RSC11em  rdQ`,"ud!^ ڤRUnqU3'k p΄t?W#c .<5F@ D `xIgZƒěi`q1cg&Rh x  nH:Fу%IQ|i*j='TlLw60ؾG! @LfG><Bd^Z%jm{iYkiJ>oN]5 ׻HZt|Y1yX:='`18 (+8Gjx¨hu+r;Fb͉p’<>.dK[h9.XLO"ʰ }% aLY|\#쌩z$Fln8g?\4m-I2*|,͸oIaA@<52f)ЛUeIeyr9 NKǁy(iGɆ1 <ѯ6{?r5~ǀ#qeoxLܭY!d?/QTp| ?-p:)Ü,֝.#w->v$g8BK sz㖛Q.Rx:%gzXc; ݇fDThꚔ̥P͢1mR-bbs[jrBrc,Np3nawV,ν !H_% u.Z De3D`FDG^TǰDux۫%FP$Abќ 1{}2^;"E79֫[@kQw SV1ꙝ ~T/Cf!|@Je/˘brMS!j,<7})ÉJHE8<7aRkgݨָEw-0Hza|pӍ-o^NM鐦D^^NjTFwmz2:+NR]M?VvGݔg?^:H8xk[.?(YFʅ*+ +F<|N7} >8\fsPG.1ߺ@<tݓy}.Xmh26@!eil3Q,=r:JNf  9kX@F97$vQvC&zb (#a~hʣxpsQogw7@ᴌ UoDJٴ@Z^R<͍?;2$܎`i4λ]L΁sRQ]ƚhèʒ0bi2ޒAEūIE{b (Gb!QNQ\]2 <;kYA=!^s XSN_iO܈C~8l, 0$ѡYH+?oa/*bBEgLf, @!$rnCOmJW ]Ӂ=1'>ۭIڿ4_ౡsuwhy9!)@}4%o89e(=31i*5ȵ֌Y^7YKV =lz剿*%e6TU*sLnzt.8([.ٕ!ќ/v|׫q}׳,iwb=ME{DǙl0@"q֪@:}XU{?5uG[W{daR7cJNxES| }iC(vq&*no?ixX "Bra3+@3wJ`xK|? Hh R&4GjmG\RE0q9CG3F|<0k9`?,8ɍ. f(/tZ@^V7T 2R\\?#->)z@3SG :es穔w4GFiIzv"IM_k'STPl׋C7;7: ˮMZE ;\#c~ȴJVqm(ۑF0k >&g!VAnǾC5“-k1GCpJ9rʚ8\xha_,dzb6u.>:C1)d^+v?`Wb ,*{ R4ejyU Lh (9wt A) T$d]e)R@h?|+uT|H բ \`UXwy"Qo-ՑEs7]ӭ9VlИ pe]b wǖt)"" 㸎jgfHhT/.#&dx`s+T13+UH7LS &_C_$z:U@-v(yqjg{sGcUvC߼W>3r$PPl$YS,\CJw9; N QB\i9`L3:OգEOS 5E݈G=h/RS֐R+ykJ}mɄG21q,Z\+= 'QtPp|I&JƽGBz i9oStC@cr֘:;` _3{ZQ5LGx/ !yL-A5eݗ]:硓ލCmtŝ@J`OZ*`0!ȓ+d˽?V ZP:)z^";ՇYVTFtt￸'L,rΆ-qѦ#8Ķ+ \{VŠ{òu+jz: >fZ9*vؓWw:4~ =H7섽ls'vCPW*GBtQ~|xH{ղq_h{/"^:%=}61j\nI'?S ү @L]xv5rS{ۂGdv h g g| s,1cz T:mTB&74NX1-2=]d"WӹWSv3JCr}.i9Xھg+A";,y>AA`rّW#B# .fV*i-r2j&w[5~pIGAԩv2W8i%GGT5b΃j̎GZz` `lZ$3tz[ uW g q{J(AYw{v\E,%Ŏc/gB!OhjABbڃ!):;CR[ؘK{gqs)\:8kЁLlK/u/ )ZEq/Hj4SφB*%EL#P&=91)#e̅43K.#Tev[U0$B;4 oWmu 78ZA{M=`, qlz Kq{OF̘^eL4R`)=kL5M%=/~@隋('Z>w(glXG*Vbtͻȅ@&,qرhL'ˠ~n2[r";= d ?.,rO/ƬQECT=GEn*<3.{y 4ȧ6k1Nߌ2ڪej -L.v @W0㥧P9J=j2yqK5UeiG k<8q֟ 6kEѝ:J Ya$i\/t8sw}pu"S˾ҜI$Ty#;iY܏ kqay; МؤUBU6xEEV4c':Dq2n5ݙ ~>鷣FGmD@>e~lLZa$qhVr܄]DU Ra‚Be9vq(l)Mj7ƨt aoo*9YIa9}6eYZ6aƶYs=8=@ 8?VPg+;& |"m%VZx_f- Nf?*}{9*kW(yj+d? dH"ASE}xK0ު3=krgpli3s(2AoU,?.s! ^ rzmF6:~lQ4'΢ojmi2ٕ#"bea0@)+%bFT ԓ-/%Z?)֟(Õ9j $_ak+tqт6οjHYY"]EʫȵW@&SΆK J[ڤCkZ4;sc},/&Ebz\6XGG`G?-v%:Q2"ABiϯIq"'IKta٦r~ŞB Wǡ+"FPϟ7ʨN].Э,xYt+KSTJ[,{嶦fuxG}ӻ\]?{U|}Og|Pv "hXPUxeIR,H@_茑[-y bB(Θ'X(;cl:?kU q|0%3ԫ`.Qgt(Y(h[|ӴdҨ21c S( W֏3nm^h KRt"m¹T I8v 5'fʣlZ+Tk^uNA^ yT^q,DD`o$e)X=w%k%Dg or$VeԊYޙDɰ?Q (Ng^tM B qw).ѣ=rjФr*Aҵwb]RriS <=fi$H%OC;'oD3^.TY7Md#}沇(CV% MiqFbʶE|#<iIr>F?}~34r2ys]Lkqh/y]299I  1C,Wmtbn㈦:àavU,fUI0<֤(`ՙ|;5H~ Be2|=YF5$oua)6Пwd~j&P'2N-`.? hȿdd0\Ƣ;@+:P#Efp!Fh Uڇ,3z&HA[#&*ULA~Г{E(sOxK]ܹ\A C!m`TZ"?2O-7kI o=f8&&%M:35 M ĕ,bR=EչIK@J @ Lqo۪4۫E.́s0|ȵȮ8/]bbxn̨6i\{ĝ\L{i> eв16s.p~j-Fퟐ2g=o%OEjshD:ȓ; `z(TĔ& ?B@x<[tK5 q;۟V8GH -Q{ɜ Pf"o1 x*C0ETqsh~R*ضRa+L@ε@P—vR~jrrdKyOx\3|/$qD~bI;,00}zC!Łs/^)wyz;lQV Ԩ(4->r嗫Ψtʭ% 'yrAEig/hN?P \JScC{"V3\Ch\Z' EET" 0Bmd@sJ'_f! 1oWSV98zV=,))Ґ؉I8>iS9̏{%+1{'~I1^ DwԗZ?"d>v?Co§M!0)Tyw᧜,mc: zݔV]&4o&Hl"FɚF ^ k]蔗F~xXۏa cAAm[t+o+v']]D Osb&=p*R8'N໩d3ԧu=q+kLf(=MwMl}DoM fpWV;ζylXLڨ` z(}^tj4rI:zb2%5GeW@cr_=-4QJvRTw?'!G *vׂyL_F|Mju %AX_ WHnHfk/> =W̴gD[ȳM]".ȕqdխzdob$cmZӢ2 su53LbO L~OL;P IYV~. .Š3(Բ1%(Q@ |>L._^*l{{ob,yooXr1S0翎%}6e(Jf;zA`ȸDyO%GŕK#Pz7! AhD.R0tSHe#J\ynFXkBBŊ EE|ƽpU,5 IS;uLX /!t7~-fӈQ; H`>L!6ohOv2y|q˛D 5}ZثvL&$c X <[wx\+Lk7J_WhTUsq@M  :Fs>ȝWpB+Ei/, H{˽}Px c6ޞwsR&>H&[CmE&%6! !g]ҾlSV*]2Ǹn4-op -AQѠ˾!` MS\Y>;s4!NhfCD:1QcN+ asr#0.Zʩ=mV4Q3}M%OM+b]8PrȄOrސ~.f`RΑ|rK6qhajo!YOxSta~'_$I5gYTPT%wN/YSO{8ķ@dٗIt'.)78sz"ՙTCȸ0qcĮuKJ6C"7/D ~@4Pp%Qd!ch|f }}~ F򛦼2GӄG;j!l)Mи~AE6 fwJ  y =Ǻꓱz7)ͅ2 XIF3+8BI4a,RĮ0U| ^6Y@GfFH8pשmARطFؙ,8$m7{wB&]^ y<F+Wo.aih@0T M8d, qj&x!,-u[ۦwԧRG$v !E f@i֎.ܗSMMׅ@+vI#׍.t{ " 3Nj7G.R>XI6#ksLa4G=(|:{&~ͪͶǴrꭖ_,\*Êpv]Fy݄nc^TSn,Z~ ru-_x ūσ~k: &|jP.SȾR1v5s~K˻IխvWT YIx}O<?  RF7$c$E.vk_`ܙ۩? I-ĹOWtſ c}֔jYK)tg8껨f6`59Ψ9*CfVRnuu 舧5$*n4J)*MjJ,c97fY+㴹P#X ~* 8w/Ϸ _CDdjVFd7nZDM~ό,:8kD 77RC0L.S/eMKоxO?]d#IQr?`5ÌgP+ )z2s`,Ge졇 uQѿS$Lzxzu vkJU(Q㮽:^Uƚ[; 7AafU{(Cb5h &t68jz8R6Z73j(5Wr7(iiOZvIVܸ90 _?ۼ)ի=f0pK,g+nr {6/fA}̡m&%5bPbAfJa'2I7,+/^L $o&Ԍ=6p `{`¡uMN<(Z ڏntB*%whb x/6qGm K'友iIʵ iio&e %t4OȂW?#KrHjm3|P4Ӳ y/MNP6If"sSJdZ-볂}Hz2}E+<=F[#1DT 4''^М>OqVq._I;w!eiH -w?pL-5Rc]>x`Nm&L*8^Dѕ| lq(LuqC':;GFOa2NLh3TGL;,] V@zŶ3R\*7.Op΅WW=C{8K\Ixȼ𮆩35}u5T@+НTq#^rZ^+KAÏmGB/h+ A&ƈzSxPo`(pr ߆-8z7B|^ F@"Sł V~@G %beWa0#OD$ j 1kn#ԉ;lRD9: *8>5x~~AcX<.|X۩xoo++QKjgBn\Hۏ@ ԅ s8 ȗD_O߽%/eyA|t3x{SaJ??g$ẀO'RHp⮯E!iF0h  Κĕt尭=Vh8}bį` Y'ddx%Ja t*)"D$\Włcفwٜ@i/*}nL3A颟>ywņùJ[v2ŰmqAwlxA[\jԞĘ'oMtΤѺȖn1Nlja>O- -;nZlw}5^%? ܅U5nrpŔp^FǸJHW]<:Am󋈦GQ$> Ĵ5JׁK|Yc;/3~+g&elJ8ҵ0"ZtqL„=pXO/Vӗ 5Qh)cPhV>fM眴kI>Mm$&)|k1rx0&> BFˊa mU%o/;+3^ϝ(2h੭˸S?,(8aM#\@!SÕJM e):??$3n5pPzcÏsZQo`zRzC+ -UҹwMs7ր-*CeF_nHWb)_;.7=/O ÞՎЅojp( Z٪ހ5Wf(DJ\Dq-F k[QTA55l&WgO}U q-Zq 1z :V PՕ|HtE,w?tU@\%[hcJWsܨ[elf2^805u] zF z6˅=> _fB)fJT hR =r#PQ%_4;Ã@H :$2f7C(- PS~˙7n [6}}?rGEΕEnZﬤ!ڀyc0ik _E @ocZ9+~+yҕī%u>uo*M{8[1ڟR:f{t0 &=[.qF$4`AQ7G}'OA!^2:-/]0OXZ6`FxZC$G&.Ŀ9Mb·!Էp<lwР hhH[J ?&ѽ)eILr iSlE裔Rc\s|iGy&YBƉvqm ‘gJƑ ]5ր()xTgALý݂K?Ѵ>yK'fpLʯ+Kx;SV% GYkfr\ɪJ* T%jF[%0E_c?G i%?i5$jel#_%u"+_ Anc2liZ<$~E!IDZ2G9@!WEh{Hm?|:9=: q6-?:f;`@Nxצ*€p=bxU0-ٵғ5iW?9\הU[>g~7kKYxQpIuOA 9i ~&*<7xnjb N#drXl~~>EBd@?C_hI|AhnMNwA-ǂ3WcIP0xn;i{ߔ37Is.'G`$M,vE1M4<*%>~o^d *pRڤNͣ.z|zn$;8w~~kiDPaRɅC3X2PtW<.ΟAcvA[A7щVE"[gY`$Tߺ+yփ9Kpmzcj*N@rG[U1Ve`pv0'}S"34H&&5_zGe:G O>x鶹[*Xǩ-by~־1)Lyw]GAd}#ijj| ZRT Zc7p[䨥)VPP.Ϳm*?(ТRRà3iJK/_p0A$ In܈%*D:s?>#lg^3KZ45sq֥S,U>VR #zm!C FFQ 'H!wg!=2:sm2uTJH[pի ԟ5t,COnB@|na_I9'(hW̄ lg˥#i~IC4mTju Cv(bM;PKae5S,xy]>f"SogwijzּGَeWrgSkz:G4[H`bE,#vcd2pMe顤 _rMznDbH ` /S]7vKCNxNU@9ooM4d!V2pcQZzDX1wΫ- A񡉵١ > )" )DC-dX\°H<9eVQ$D?TCLRm['Iۭ/9<;,0izoP?P1qW%X ÞGG9ִ%umV~?#Bs4$O)#sz`A7[ff( !`Q %g*/ b\@";8ܭ[KRM2!G b1ה4 a8}i4ws"^|J<)ݟ>H|f׀Ik`@>+h g|k.ԃ;j !M+Q0WhŪ6\6 8g?";*0|തNM 崘_;qDpo*CGWTlorga=*RfAOZ]jH2l&EH©&9YQ1T7KÉ$G}Υ {1BD4 ,& Qa "6Qzt/DdӁ!U!饔 s|Q**lAt#3DƷzwl`Aˌh4% dIj/rw?Dr * Vu˲{U$Bmt.q.H$_*CwU C?￈e/O\]leIZ v/'qPhl:&덝"nQY` 826|݄YdEݰp.<3M)A9ZK!V9Ù\w&ק<ʾA83&Ӡ ;P>ܞ[l[έ~\k@i32`-\d~@5?OǠm x'H/qhڅ.o/m1 x,!c// œ5VNx٢ qs*#poQsG4 .L%ѽ>R?a<0 ӼZ׌;E|ej3g_HN؎"_ SY1(|=׮Zwa)43UU+owԅm%)w S!绑w R{D5TjpɌ+JJcY8a *gƷx=6aaB\ّ hN`OZ.ٻ-VƟDgW@FLu2j %A/>ꏤo l1B1鞈T%/c74|EfvZxbDUH|U :uN?pՃv`A' BmԏI맾Y2b' <+әĝS}riL?|>b<[m.̣ gfT {U-O9ԟօ'ϤKOP8누/vJl0:?-:e|1 A9.j[%XiʫU=T(߾"G(U :a5=\S^DLflZБ.G*eב BlWq ηP jPxk1OD5S,z-ȾDrV ׋deX_i5`.<!@EV!<1˪"D(jߟtcibN令ܲD 4I8*Nzɀ0s4.~էFMJ"Z1^0Thb2߲,b(* (!fɞ;Mp>\Z-x1|Zo2sbBD=]~0pK E~!a-|aa0A2z.K/LP=wthJٻ#QjH:ּoP,]5*! VܽkI &xnxRC}(zVc# Yo@ ԚI /3WINxssf*.p@Q90g #p|2C;c) "0FaG6tFA,1>^]}rq4:<.#GITŦK}S):7MKU^KUֵ&K'HS MHeٗTf^7wZ (cچm#949*Lgչ֎VRu?+{ p)PA\\%ky/&4AA͑im)5,"19Z9:\6XCͫ:@vRpQnZQ?W}`Ze@G*^^? 0}kKaƢ`aAN/Ŋ7_]c:DP5;}&Pqq:/At=t#;3UaLתqɴ.U?Q c`☳&^Lhk൦jRUCǪ(?qP)*sƇ~Xddj*$HY~p*_nKTDp6"_6I7ifs o47KvѺAq5'c"u5CQq\㏷tq~t,F%Pr*it[z+yu-RE>di%(Z͐J]·ln#`"J_|Q_ށ20H\OFSQ4Tfј)DWt<?%5G7m6[ fUmlZAi-78~`85 _4-3( Mܦ7*\|KAGdsK\O6)_giO'/=[y3H\|TB :6BOm_|Z@WYÒZ}]Wdc24Ni1yɌrQt1Q3X MJ6Z7#$IZCwi$Wڔer Ґ?G{`{x`TVz|͒{V T/vˍ<!8Pg#.| $69g[8/kP+$1lO0dE_!A8xe9h ]pa]^AR$Nuӎ+l&Oē϶;hZVn))nʶ}#"H" I>TKWݜK27QX^)0l ~C/(=˒ܮV|9ʫ7yRIE݃s52 NcS`״Є; P3ݚ*N_L|ge.z5O%Dwa8On#Q>%E2+=?P7ЁRBs9hoH;Ϊ7~&Gx\ej3:_U*!DF.6(^zmN)" QɓTJƕ\K|P'*GK)Al?SEMꡮiޖ:kr7ErT8Kۗ7f3'pxqvn}ⵣg}0XmJ*_6=jx#&5vy9)k w}ZLOQMoB*r*NO~Vw@޳O-Wf=/Pa eS9\ >hp?Ŭhu[m_dA7๮ӟ:t$y }PₑT b-?'@ܙ]| \"(Qtw1GEqifVmšN?!w/=cEͱ_s])C |nb9r#E⒩ M_V+Ujn"e$m\I.2$(/+c֡,e%b3YHqq̱s.&ӇS a49|8)){aFo?zmqÿG&jx` N"X#7x60i;Rj뻵lUI6>& UP/hpa1겵Ut-8җF<(3xV՜)~t]d`o0'hC:! =7745tJN&IpK_4~'|jCw'dL#ic2 GHL LFNnZ,r}ckV=QYBQ5{mb12^%H8IԒ9\=]shOa XnJ9uŇO Zɜ<nRo滭,N=>&w T| A$ UyffNz^5V)m0TgO"c0#?ׯbγ=K:{NSb!Rмa/Rsi&B""yh([iיKa52 t=L9A|B ;;_Ҵ_U0q|/ZQYvv7i6t_ ~E=uj|TtltϵStV Z 7.Mump!Ѽ*D6xX2>Rɽȳj=`eb2i[W?EJ;,]t7i,h}uW)g}gyg&ؽV;&ܛ9'ҹ=Ch$FLWV Xt6\Rf]s| 0V,`W),}T6^jPNiÅżC!EW}#o ̍nAXm":'yU(E hK~ؠ{K+/Tu=>"1wq' K0; u!cX'[<]x@#v;V>nQ]#ĀKLB0?_ln %?7@:d}ex&& oߵ?FlY|q4.v0Jq:dC`iZfM箊w \w9}Vlf*~t NF>^OwXIS3H]#EEunol q j6ga D:yU0rjܵSVs7p A X*=Ͳ %)臏D0gbu34,xu_y}UXNw?MKA_b:1tQeLFo\u&!ãkT^w+9JY8`@ϯbzS QI*dIߺWibmZfg T}$hR ̢2ߢC(te1hDѮX%_atJHjpeZ4\IfzU/ ~;wo…C-+)Qv$= /kVaߏ}5(}vx4ܺ;2qJBu!սdN%4['RmI[3wqi=i Tu6$ x@ C֗psX"Of#D8&ǟ( % KvЙP6!;Pj?iIM!$D߁*S){ Rz=Y^0˅r8!D2ꖵ ""xj{i:}aT\qdO/NYgrp2 D՞X3K#ZWrS(fLh=DNx\:ոxT1u[^/Zr;o ;rhnHrIWB# d|]֪G }*㎮H-8U{/toH|)Q_Qx}+sIq>}t^zRn_&xnr1YwB*`MN:J2b|/ɍ0c.; >F3XIl{:xLk VBtGEuUR_Vnۀ3% ًONT#zDŽwKgݷs96ex Hk23 4G':aY%qUlLC0:P#ȓ%Y" u)u|#~|}<_Lám={| V>Dx(|;@r;9FfVLH#/8 ooPJs# p@4O@b64/mі yfW'/` 84b} T YKCor-O Ral|+&fF%˦n53biB\ ]"@*(-V'Z~撢hZ#bv~ ~8X&Bx39vs<9^ %ɉ5~.H*Vcbb* ig)MnvC:W:Swv6mD3[r4e׼[1]0FN&#bR4ث?{[XrKKX/} z_ҙм,2%r<4ԗ;a95\6owa2!a:i]"r˜,Ve9KVQ;쏟5;^5;)h.X,̺SڏFpA.sLrtaNư|O7 w"D nFZ 2(aםdWO$> Tg w!<0]ӽ_'6ZtͬL" :ejTS*țG)uөGxrY7()ia.é5 wS">>af^Nz aeuf~JV@7"vt!a~QxO4nёz>L .\f.P}oYxHWz 6LSCmiS[ =ٔV#Cy=7QH2D|曼lO}$YCIIZFSE[B fX#nCW#B^o1W=yG-K {,ݓ`K$jL{Zr 7p\QE^M*5lx;g}Dk0|2^'u(-gVW{3i}}<כHm6R E"Yi5˥9ѿ/痒"eIPeZ锠+/J$S-"8v]Otc4.9X`<ﮄW^"i V0^gCm Uo'Ls%[%*L,vv _F{W=ҟn!Vp-n:*| TrZ8({@C6./|?J#-O yn$m:@1ZZ4~5#f?icŎ{ߍE+x*#=,foQ[KxT% QDjSFMݦ` @]WZӾ4X5AC4}gW1 >m@V+%h$Q񮩝maFQ{AFҿ? /k5K^wTlg,ccT$1[Ix۾v\;A>r4A"5dﻕojV󄢲ca%X>-Ryq`z!ƝzNtytxAܗgE¥:$4t̊ .tsד!j;PP ;,+ttr2۱/b3?mrR}#$(q]tؼ` Qp/#:6lRkV8`jog+N-e"knhVf%wuyCu' خDˆʹ\u{S*fS)BjdBg9dLZ "RtM?(7xɣMc@RQeA_H1,,~&CNN#}E*|OPFMQb HG˦/\Α>e\~"[cĪenk1"V)\,_W[( 4:qӔ(Fq1¿5WW%L2;kFPgQ͂dz3|l:  Xe:=\HM䌾aG}S$GCNc Rg#:\|*yn.!d6d\:$3e]1FAiT_Y9.uUsϻd5zvMC HO Ab'!Zᇽ IE3ǘݑ{sMy.PuNj"or@#E`tcw<Q< <,5:m3nQ&oxqz|`~S{hF Y&8qq5YZ';X „3n‹2wט9 {d`>؎VTOs\o e9zƩ0*vRG2F:R <4( *dlA0󙭣NHIA ƻ\py\6WnQ(7LC(L,6#}[սRQn{Vq']ѐ╂Fscw/WjK9_b#DھekVlngb91:O CVk(5VTRiSEv;[Fw֨i}"^}MG2꤯vy%8V$1ZrdBI>InVhy2n}Z²^f ß\謉PLf_kʛhmFA*tR$0W,kNQy%S9\`Q#O nT R?x=As+2NtKxq/8 [ecȪ0n#Y*Rh?q.T8!pU1٪nRtUVqTЃa񍫝iA]oZTg0vH `TT*>&ȷ|V'йT3 c=CˀS+[s05AsE} }H<M#4@cz*37!)@ "3#<׮$X"[;7RsO#-TXŢTfxwSu> />b4X<۰kS`E#Zq'ܥ{o)*o3UŠ a(S_>; ش>-sIی~̱ݹEcHFg۬r;ްvCW26>74M2X1ŔyPjj RD[ߍ  ɔLn /':mp>d0jתߋ7mj|h=Wc$~0Ygr^*_Gq}UVU吰ym,Fٖ.;q@AWgj,e *bgOED$9Į^X+F8kRz+ c(uXa$BY]76|n,qSb {O~&Qv1'/CQᤔ[AzsFި^ G~3&385/K{ÏM #:`8%-վ(A@ʠ/1-CsVBs5r|a 6x,Ґ 5{f^p>p.v4֏[@-g@]s# 95Imf {6" *fyCZ鵽H{na \>*yOt9*QA6?(A9BOD6-8$2vFhi+t#bfm&1{4|9`eNoNa09q!EDe6rʭW4+~4>lcMՂ^WAXxRɏUAa׮(ٸKG1I)>8NKʳXQsE2Ŋ<[vN{|RB݉p}hNͳڴų9uޏ9 X_4s*oik i~d`6_'5.(ɬ?xмjJ'FInEk4%0\ _ 2]ix<ԋhԜ*,ns. \J#r2:>݅4^Z0\l UJ^4GAȈ# ЙW`1~Dh,6 I#Ф^KUKi<` y+}W-"K;@kqJ*20R񎾭W%wO !mA#/NUsH9z"y .f9v>{Jp^,Ěsŝ;II |.S"PP]_lV˄LiҘČX0eT;5L}߯QՊ&vçA T~[ۆh.5;% B~]t@yTC#`HYi@ίz0^v-BzV8bO2d#h[Ձd ;r4-.JZ7pM.g'Xr~&I.ݧv(=$=)0;UYNd'F4x;o&3Ӻod>/ߎ7nJHoH;T$q!d;z]֑FC 2?eFj>;j Uqq"RQ1{)_7F!P)IpVm;D`VUWZ hg{uv g+UE Šbr"M]}0&0I!1$@%i>zKuh2,Cbh_n- xv{;FQq1!=5b9Kڨ0jUW/C7"0)ۇ56Jύi`ӛA82$ְU6aUz[oRkmQ d 7rr!nTO[b|AOA89/q#4,pNkđKg=?ĸ8?P5bЭaH0\ZF/p,nӨxʕJjkS DJ-<) _cH:ɸ+zQ)_R0(UkUg x ũ,i T%۠fk5ut˝dQO>j'[)iaQS &H>%[TDi^UPQкx(EG-(Z2z'藩AO8 -*Y?`:vPPAC,3 : QJ ^}3-[i$HB-9?Y[no9Њ @"{'sAr5eV#t%I Yn?@?W3PBJ S*{G^8aU \ۀmTreqpk{e",XTe+[f%*whnnzwł! $hA+!^9K֡K";x{PmrY/CHd4lW;'a]az`yTE&jQL$! #,M[Qo9$}ؖv˾ֿdH%skE_ID#&.]D{Ɣ= <NKW(k A:U=]Qz=J̥L83_SI=Nwˇe z:{g|NgRDOD )^d.ߒ<~zL[M+nF+ު/95m=AkHXЍ)3bFaS@5/|@Ng;Vb^x<~!I*?|'+>hebCgc۶{V?è\l(Ӯp%JJFp)* [@=c6@\}xiuq~Z$DvJ)fBA_ǵ̂ s^yOkɆ3zᓐ& ')Qa(\8FyPQg+!SF :9'-ᄌ,|N2u|(;YH)5D ,qr'.yUm+5@rWgnUC;Cn3 т&t09Jε|}<ۺRyD!,ώآ, @3I^\%}~eqޭ_I&BAȰn5Ks8$  5&dݸNO6rig6,_* DURmA17>`ICnޅ-jf |Q %י`o.3BΣ ٰ+H[L RQ%;Gu1j3ךv v|a"N95Lv8'J.fqX^Ct2J\#Q$ueo䆰\Cq[v=D $s,MEt%ʼnk~u#ui}q: Qcidȱ}C}j"n1~l|lFv0(%FO 俼OD_N9>a06,U;$E=B2@+Arxh>lv!3g@dT]9g1>Wt6nQdbӟHQ'b 7n4`йz1<(jӾꩣT@3ek`^I c?Rg6$G'`Ɨ"ݵ?KӜ3yQ# ~_>QJxWQL@,p).jFܲ Bl?7쭑4oW\J3IE]1۱4o.pCGSr n3.jl1 /4IEA8Gm'gոrB^QJO@:=|EIf $1*>{#VM  Zg NeFDZhz\m칧W@TQ q23o6.z x;fP3E}2ga ?M=?A'>!OBȿ)mJ"Op.|yQrE~qDN׼9 Ci]+TZd䈳Zv`Kgc)݌)7*+So)ܗFP~ps5vt#̸j8 fLi=PE" i"ffNCu 㮙z*_ccIʘkzXuUӟ|Ì29#k崭|"lN"53ހP,9^چWs:Qz AN1mBY*NClWȲn\meL3ՏȜSes'X_IM*VΚf ԩ!CX[UUOdl!1w 7 z|*A$i ckڏUN2+†$c_ ;؜LzTf4, l#e90y{Ll Ji1MM)Bs6N{eϷovFԫjXgC7oMh.Xw.`d΋D=9ϗP'<0 C;[ l~ b`, xd޺:J0-iN rI%2rP t >ג~0dG.-U\UM/Rmz9:\` М>%L:4};<ӿ\@ԩ0w6IBTrwfeS"M9?I)lw# K«{<Zb+6^#~0Y q1/J׍/ ɕĘi0q36Q>Jݯ:h#_ fޑbN2{ZL<ܓd1Џsqo'M{m5ĶnW y#6 ?l'\zu D1qU1P+qB.%u +OqP@ 0^`l18bsw\+0Gzo=pLYk[}Q0a"ɾGIc佷l|{5KUV oiGlD!NbBOwԧZ#SmƷoY.meݭoy6N0{`͟$q~`[S ?5AdfenLa†O_k^}-7y]PAʎ(7aI6oCM;j fm3MF]Q{4Fp#{,g,o@ Ee?//RZjq21B=ߨr}lӳ`h@bEb E3 stvfN48W }=/͚W5c5[+C^{1sC됶_쪴 nVrm[D o!ȭ >gDOm$)`rS ~La2 oU:qJ*.dզpf@bN~8cĀL|^A+0ctGxIXeuyItclRf.6lO)Hkv6Q:X^g + l=F Nm9ūK(wF2#0y4|TA9o,y6ݣ2i7CG_fa /d+&5 /2¨FifU~$ہJT2/?ɕMH-Ww8j_]g[,rDͽL-0NEP7q(4+kR DoEUl2:M&[ʱgL-E)bRzi8A3a6BC 1ReoH\(bI2KD|g߹S)[wB5ݪl+:lN{HǤ+2I\+|:řA$HH;-wfH'+|{*:1$ygMS! G0HMR@6CDR^P0 v1oLߊ(AÚi ϰEyj u>DF_v:/: GšBTpÿ%'jI]H$=#՞680@ÿ?JHcM RVұCiWӭr kEpO3.^@^ccsbcHeqPb+$Zk>\ ?#0b_6x;U-;!=6@n eެ6I"a""q*vik~6>r8f&D05 QokJM=rvCQ*r>Ҡ)E!B8,4];C MڽKL wa77xI#0;XC u;).؀s>o xRWtxxm4e p˥O*JL-;?#is5tA~U+fVqPF6r;leeHATCƛt^_j*{ ;]=/1&~V~;1s4&ʧE?KkŌ{lN#QIa$zzkF<7ʬ]oJ#DN=gPw 6*52GU~dR펓3bە2i6:.~xʮ17童yϘ'Ť~u6 X,3R1EՁhNM!p-hƁeũ }Mf_l7fC.yRcMzGupdE2֤EnOW;/f4;ř[BG갑K4⍛/9 4 j?5p*8UE: XmSok{&QJ/J 嫄&5Eg's);QW6\p?E 3#4PAUZ.Cj0x2M~)$(>Okp3(el`AT9aiA~+涽H@sWMɯs#fH!!x_yBQ2$%T+q^CНlkvku~gr)cHb0.Msl 8ib-9",ì/v0m ^qArS MMMB%ၲS( w^!WVHŀ~Q8P6OM\fT:50ѨZ[[в*!_ Cd%BQ6[h:v bd Dav ƊEʁXl\eI1H_`W S-;P;35A!7td?kܚ؉s2䙇T7wfdFea)Mk T -ֲ?o?{KT[q-SzV,k^Lml9A~MC*C]8тw(X1=K2KЫ>X36p |bLmnܾ px'鬈-:U!F@Bo[d5ohoh%x/R͇2!Ӄ򺱢 Qt>ȧmKU;RQ^D3Ü+a:j}03]ৢ}eA6QU%kqA1ĵ'ĘpQP|$?)`~l̺G+ͽ (Yw܄*TS3~ָ{nx6(q'+/c )c["xڳrTlB& >s ~z|_Q%O_QZt8on` GࢨԲLk9]0whr1Z VQ(T=cՏ 7AKG)Vp` a"5nCj5ʹ޲Z l p2*ȓa%Hő~ =^d!ӽ &,a<=W=9`g.PH^> St4[!mJ$"V1mJLvr`{ JR;BD0"Bu 1xM,'';g KT6 U壙Ԑ8^NK푥H/U4ΏIg pZ#8jR&R"_=kƧ`w]7zinŽ\ pO&]}JWsʣlǖ|d;P Or0n |eQlTͣZc\j%w-3k;7H]ӖTUH@/aFU˄tA c0Ͷ(ȫcZF%R\Z޾ Y,%\gq_sWQx ?,Cr'F筬[cΛsR[Z[P,-/wgPFR;kQK??QvIuJQ%`*C;66d'hW>-_w#Z*"HI`\Ey 8{n& $jV|}[Y'0$0e8ܐx-d"EYPGS IĨ{,65yEH~VpK5 $ T@[*2t.zd50U?wҶuo }J֣T1<~NLdoMPh=btwSt\lYSw n)4KM^\tukr{[Г,7$zdB`R;^Ihn M2@On$Cx"ɧŽ1RVZ EZVpN {.:4Bx\SlUȦY:ڻW/n6Ph\Q 3HZK[2)RiiO얰Ys$B@ߘ]xY> cpUJ ! p_vfvĞ[HA9(C9cSM+'_% h-] l h/}r#"T"PknD_QP\l+ qT̛ꦣ[}6qE9} M\@Jծ}hok i@Xwܻ Lz*bm~W걹?ez N<[R~._K#O-"}b=̝ZRdRWN0 y߶A@vrqОÉϕG37.$^gk<_Tx#|HHAVֶ̝Ȟ0˩^iMzCKGNYę$ qD̙$B2ev~a oXT՘+l̦W޳a/~ #[4b'T5oG/9QM(IZMmƙ_ΐ#>Uɿ#1%:yZ]߲v`,CU& wtSAa {(B?[IY]U*wTQ#A^#sfA02 MY үM|hQ`8˛{ތ!bx.{9C^t}qy9kl]%`kZ[$ e\NuZǹH]5i P @ݧhLrh2-Y\F4K\/yU&?2Y;v}[>@3^\ c `!Θ}x󈨱J~oFQZ{_aVSBuE9 pAGTu. .NJ}wC*y@p}#͊𦸊7T&7w5K z7kd_ѫ~H>byX0ԑY_* q%ksMyXFgɷC LtmWn/-|&Jr jP4H~NV PU||]9#-m~q֦RAnmIȹ.dNW|lazhoF5:֋յ}. dYjHVHXEVɻ:Eܕ5խ՝p,^Foד b>{Y56 #72zgtL+SYҤ:_?cp h v 3X$aKm%d_R]2rWuIRSGS(:B6ǂ'3Y<8lls0 {aFl.I3X18ɹ̺^g"7—ffDg28['F\h(~h.l]dsiW4PRG !6/䝚9-+&iѯgs`n\ui<̋ N,?+rrx6aIa3Zb FoYYÉRWUln밠;XW);!JՇ-m~ ?X[,K9f|,X/:gz/!10xy(:u(}Ɣr\&I`"7ءT4تI@f]_ygdBk(_t'Msf]pH`d"k֒KL"m9Em4Ռo*~Vm4EwuǞ2L\W 1%zɳBOYܹCѳDKQcVÅ/n4?gr.Fxӿ,3jXXNn,?Csl0ف"z]jrēb֚]Ci(7ZCV4lhةb!Cg57!՘ OoYrP9h(5팼N1fNJ) nj=?h|s'=ډ~SryKMJ")ͷqDڱ11SFSe<#.6~D 8c &[ ښ]4asLٷ7$,-D KumQA˿DN(dE)3bH?M4)Τ IѳkqɽוY5'NOLK,{BHjTDA2m=P6<#}xAͲ-TWpAk*YB`kHLKNNrMO@ tv,d!UI,)%JW_ bDl?`GbΫ0ZQDˬG7B- ph[>K!,҈9Gpŷ`x}8۹OJ=BʏoGvR7rG^^yLW+Cˍӝ0mzLa2m^lOX!EXJOULu=3;ig@Xy$5\7֊C2mGC+$z bw;5B3;`8|sH;U%ZdȗeC5$\[BV*?PD/\EϹ/o$r qNj{j N6$WdЋFI'/+PwB"ָ.߭I=ewq> uS5 AK虆Qf;!2V')z8 uwiiwSm 1Ez kLH$R~VX xG+.2P|>Q=ֿG[.]JfQ4$\3Ziby8Sd`ʼTBXyO~m]{UW.Zz| xޙ`m[넼~2 X]!˫; xaM\G&ՎQMgj-i}*iFN2]ukQAg#YJm[BvH7q[QPÊ>C=SV6ڍB-!xd7Q'C^ۇ/'3.̷ѽrJx1<=|t_M RA$E&qϜk@U7O͕q:u4c>X5yYZi8-EH'BѦJZ(EfqW.E嘀G~? TWNw4kkJ]b[59+NgrЉ` %DZQ<$ޯf#KXx糁mJ7&vց2;p #$1,@_}9Yw7*E0pNw'6{(^+~jz %3Gx3} ɳ}DhR#k ZQmO ,7ؓ&ᵾ=f Ŵƒ M*Aۀ2HC+K6]5D{>exG X|{Ħ5&uc&'^&6ÆKo maƪ`jU y \!*LpMm2Ȁw'p )t"`ZǕEUI/ UPV̮f8>13WYswEbyј)k;xh]vf|T̐D}s[ICr֐ÿ7TѰ񉌄Rב]hDt)MOegp`aqrh}at'M' :>C44[swkpV< k,V/roXQD/]hM~^: Ek^),z\)9l-脛/.L,B%J@TkqUQv䠳 %ofxlQDZtMzCV$bKKC.d\缳A_oWor#V:6UCyH|GsM95hh0Jՙc"!3%a1!uimq=G኎}2梚Tc{&34 mm.(֍6}XّTow'heujnZ浲r]Ll JߐFG}emЊ H(h*]?Mcme݊o;Ywhct,@օ& uf/ߋf*~/*TCz`+gw=ORr(,Y 1y%4峣#^T)}/ %@3dvɽ1UtMi?lE8i\*TCş<ǺuM#87#ֈ|=kLD:ٮ.r8{XD掴>bj G 3R&w2ďP?WRKvXdv](6+wPO^V[F6?Hc<}\X'ᖥUxi"I Xf6* RDGЃv.7&9)Bfmc#"/7a$/-.t7ɪ:6_eHNwՅ0%BrypېsX4*/?gu~V6ͦ8v+ ͻMv=JdjdI0t7=V$umcE]r6G=I~+&8Av5TyPnjL FsJ(dtn}ڇzV<ߕ ~,xlӭӶL]$Ss@z<3EF;ef ݩ#dg[6zcY )*6<.S͎s0 JAGtXXîFEz+ؼm>} d4^+ŋX*#Oc'䆒zU)Ӭܦ^L/'Yak|Kݽɯ T$v$^)݁d+R_kk-{Q^UL]e@.YSbG`U5FT"j`d9!f`\Rf8BÿNI`{mC5P#iܔeSqkjҨʳ*67_!P*`#XGU/Pcck)#Y2Rr Z9jG'aOw @dzHm2zh(iק-~-[G`FġG[ }ls׎*099GlڥjyA-Zܔ5 T_tyIe!C |rm-] o:x[k׳UB)~\hU@'h(i Uִ 4 )䌛r'!Go~*|Prg};cXS$jw`n~ G@O(=ȑHP.BU%ܔ;b0BPʜb\ Jvxclv#1q0+ oԙ|{O*p쥮U0t6/PNxH=)ߡD;dB.Lw(.4P@+sKѹ(p%,z4Bҙ "YRC4&|xyD:O$LY2fBSGJ7$u}u癫1[5Mex%rv0 #d'p籌OJӊoZ:>8t|"+yu_T@b=u?Ԃyt F&>nxк'5ul 7`,Hvg?!MPU.nF@Q>w_ fOiB@t}jRЁc@“ümE@:[oa>_9~FX6>sLKl#? ~΄|HRtJF5{sQ:%m3 FI}Q,x`$艀Jvw*_/2yPAP5ӭΤ޸S` %ovcvvcy^R;w{~PN2:M4{4^H\ZvyOUV=c͈zhk_³᫇Ջq(ޢxlf^:Ip ? 1:LrlJ$)bC"W-r}TWG[,i|,S:whe%зHPPw'TnArMb`V)L.`î˽,R4Uf+FA6tztsxኩ)2_"ױ \'R{>-Y ~QOIP{"dX*F(R$<mdd3I"7zoêa v^٨ :p'g` Z0?t]薞+\xjR8rV6/Ĺ7Ecg-oΥ=5-&At"8ܜ]<9#V~ǀ퓶!25C ^m:tzIZLjџySe\dP7 s\&i694[u 睨Km{!B]?wv^b'=E(NI:{̽&.ZK(SPYԖ *>M Xav~)voxMۓSȏj4"B#@p(kA{Tni HO7 5٨*}KwLJLڟZ >i!>X I59N(MV& ^NIxa0x>G-[kFLPo蝡KΞ?OظACfh&Vo2P{_6Is+,^SR>?:O~Bwl%¶iMg_]:k]J Gì&lߛ+JAB΢XĢDH H%A3s,ERs*J[͠/a'CJD-g znܴ[yw; t 3ΣcG7qVt'ƙ~_/Q_d4zyhk)ThP[`?O:~`Ofá<ՔQ-]$Y$?( >_*\twzQě9)̱[6 b5B`bU0L]^^%__mg}}hY\ aJ`^w|;gHySĹwGuq*vզ#'&۠H&ZBu3p#\`HZym4|q?{0i;sEl5YOg&C0'x_]\-6T G5shOm|:oaIRNlvd\1c'{g'6 hCL=vޱOp*w*W RSLe,H?! v[2mHѫ &BYsah5ĉ~%ƀ|gGXh- ,z4,AlpYoނ?Y ;t^ = kHzV+w Սk1{~{V܀1O}OӒx8ߑ__xA(r~m+قbE|B$!\?w3ak(fp\?FFߔM8©~-DqSKk 8# {LBzə2mWq z@ ??YPyx2qdj4XxaJЮLAZ}mRCCBI.qLSߙm(n޿abK@ʝt@5NZ0[f)L 8#ϤPj!=q6B'CO%.궎w'pZAeB( (X(c//yɚA,ϮV{ĭs$4A8~+*6J߄3m{d9O`/º}D?Mgq>NOyCZ!Ir<E^Wgr%%cmtYU5-npz<ϟ (nTe{Omn ZZ.ǣƥs+=>!x9f$Y?Kj0"ڟmK{F׬A lB-xPSH>%mx0l1> N$څ]S&E /n{4_W4հ#";kWfQqmጰ-XުEY9Ԁ)/W}_ 'C!"/fҶw9"WB7A;չs/#1.gN M[# Npvm3 զSGJTӽݞy(oPt'sw_b0fƂJʾ좻#uَyS]P>P3v?{GCta#}hPU }mr9a̝)Ҭ3h֊{ AFRKjv~4XwN|RAO\gsEi,j`u]V?F gl]]S\Es]Bu6MP nh)~eqGmDg`iacy,gBLL/+ W/}MqAwatm+4w<8hoWl1"[$u2,tZ^3=xO6]\ꅝpF)ӟjtkde]dD2'jOKzKUFRNb7F|aa_=N/MJ#ݦ&xbU ?#PWX2ҩcZ!U#(-Tc>:["-:aݵ*CL鐔)i}2sRY<:kDY2 X_h̪zlQ@"qP>3c>PCFlt5{n:uô$sJb[ eK>=h.eŔOoHxCwȹ+eD0b ##mɍomJmynM=M9t.=Ԝ^ 5܏K#u?$Xzw NЗlL}cIeNٍhEPR /۩S2uIEΒAW?Gk-=ɮ*1<7g|v]LdBk^>LV(ESjC)!7R0Cց @J\gBɁe컸D+]r7R+QXSj5]@n-}'TM;yߊU1LO +rR~˰%i_G"EVo(`l2k}v?*JzI=z cRzЄm{̯LenyUY(y _GUjb vcB;yzcYӷ4 6[g|1zGe . AsOR\IzÞ5^J8Y܂;檛sDbOp9P5Qĺq{?ҴA!H0Y.ކ#͆7h۵אq) ƍ7==7ޣitx6Ġ/N;w6kC{I9inL<; ęz7DI3^ R^]l sFl$^(|Cllt-ƸD}26+؁&TWDPcan~4죊7ʺNBZ' CB QK VM#Βv!j>]Ic+7YAz#21`E>feimVd)zWs K~~ SH$~ WiЉ~.p/.*#)pcz:b[ǎ8YXvQڠ^pl .ȾBI3\iW"&E9ە2H?1)9eMQu8hq#M0]+q]%'6xm)ek#؁4%o 4ȒUҴe۽lh}v>b 筕:}{jnQ:.z7TjOoأ[Z1*u**):+fD=r+A4W"5v(Tb/Y2nT]IR/U1psg+*ꁮYI]?a.MA _W]aEY9 NEfƳY:o!gIqɶ̌I=<M9y M `WLH,׀o @H-Vo#g*]p`-S4QOSjƍ0z#g @Z h 2}\u!!sB k]11ѹE,ǥ~")RO1mjn9Wة{k,۾b +{CMdn]|rRh Elܟr2( Wf|*Atr/3xnЋUGNr3r0( Dt U 7c-m&h~7`hdāL' oODF03ej74&SG $os]sʄ=H1t'Z6hV0!ںo7#<kc Qhc@^4v)z˔<}#t:uyoʅ5q?Tv5,Ts+HF}͏`_EX[5-ι"7Uⲅ4ڜ4jqS0ʁ)!,(5yK_t8k6Zt,,C~m7HyH Íϲf;@I㊒~Ih<jeV`e[fe *S#Z@FU k?6J#+V섗3>7|t˵εz΄<'v[,N[ӷy$mV5=患dRCh5b݊ D:Ucy雿JEn!SDK10xrʏ/Z)ӨjxKH3-Hy]mPVxCYt@E ź50& F.n-5ʳT bNr @c^R6~#_؆>n≠D.'Ӹ xy6Z-=:.$ ut5Ol/9hIYtkf}ƙzap5'iRêy@x*d߈j[屴8kCQ&. @> n?T5횂*;&KүdiWTH4&[Bh)rr39Zxx(pٯCE蚜3*^2FˁIhZY q2Vtv ޮa ai?+8|ӾA6ԒmgJ5ln†q2 6e1\iVw]5M~@PIv2>Rn&>Lʟ86]3Rmz,*P1ہ@AfнYwi-IZEcE:|m+xF)^#8=V/j83Q:@I=/(bm!$awLBW5EcԱ )[IQN D"=-]ǺF6~+^05l&ÏMg6(Ie6UGbǰ )L" O_Ǩ =K;wM95[LeA"Ɯ?ÖEn]qeŔ-J]k_qFHK\,AMv"r86Ս]ko{Ȧɗ/u;g3, enڻ28nCZ{SIB b}Q4-MsW9OQj]4NHSʱc3zBMqK $J uz6'^|v4,[`g.93}5CLE_&Gsڻ.y;4%B܆}PN|$b`h nKH:u㥅g0̀WQl޾er ηtrś.d *#tO\2f;=@#ģEeGgʯT5.a66!$F\`;KBPRVk@x|vw!Ǩ$·?p?#[z3PeqHPf6[g q6nPX&p {I{ %FA2cx K((v'ӳIxTȮo)oLq=Y{̦O;zJ/Fm)-LXl9~yBJ/Hcq̜(P9ڙLņ9M0Ƭ"5c5xو \Q)* "jxʹ?"fV10BᕿU{H'/Ůu䁊-ƹ{K2P!1*fAUw/k( /> bWo^W3"PuƦƸQ_@iebkH{D=X.EZ߉PY?դ7h-67|0Ʉӹ8I$ {p\y#J$䒻vNĉI^]sT|5ޮ#Vk`^ƴ1B]lw9l@7; Զ(UwV_ sY|PYVdz,_)Up5|;m!D9 /ߛ\l\lm焪Qڵi|:FMӉD}`]3$uQ{X.ۉ(DF |p+{Q􆣵8, $QF4143X|`W\30Pu-P$c6.Usc6jBf:E¸O]x*ښ ۱DaO]mV-R'~=Vt>b$ĢV?׬6"2 s`t\WVԫsԴE]Rkז{-l!I5I$y]rA:hwNa u"}8{"Zj(ɇ=efv9>NFCFHA+H> _JD3c8F u/cϪ6ќnsZ٫]LiU^67rjLjf6kl"8|n>_!V\A9g1-18= _?'dϥS(!Vjf{T\&[1ӟM5|%w.D,5kƞ%i4Sb}hq\IźmP!$ċ#SDpa-FiX +W#l9a_tFr.l).˓ D=+\ tv6hL{h9n8ARqpq1Bkٙ˰4mtB]J|czI^b'pROK~xqY{^M˾ܲgu 9!FګSVP[3ܦڷq ,{}).IB!]ӧ1r~f*yKޞؾAͅ]e fr>-]jX<?|n{֮d36,`u8"膁gݍovOQ 5ܕ\E_$>",ۉ;ird.FNGEWj*^Kҏ[߼/xvXTofoŲjh.\wapN6`=6Pm923[? N,TҎ.iV`--e~f42&MAPqSn ;s,ePK[?0xihuZ*PiJ-Y437FL$7K}]J8K蝬SG1/hN LYR/FU&KC+t 4eX&:XNN#;xy@?FwVPkքI-^>V#e9+yZ -7M^_.l|{U7,AW#MM0B$ϔ@s [fW}!MVWݞ?a$5̔QWZ1R_Sbf#wx\^0[H0CXy!KTrh?'؏&r2M̼jVLwN} Ӷ[I$2dHd ֯(6-LDFZөtxy4|7Lhڱ)zD̃ Q- h'? *iaWWo=Na)f[Lj%džlIp*X85_8q(` [8XŜk쑃7U'8Mc1kܺy}_v&w5Rdq9<:W5XP4Lc=~ 'it?.%+na*;p$[m&^nsmm2;}(۞_fOkwSH[e/h%LY2<3p_r kϭ) "Tt/]:&qQSO%~=r2U;FIL#+Ý,Pglp ` ^y!D Ol ڂMon>v9&c<$<-M12#aKQu*g5^w@E*(GR7$'b 6iA8RGxqp, O/kH2)`7 an3{X NYay,?wS&cK o7 vLޯ G*ew&3IJ9 ,7YaF eot.˖H vBAxe b&xmtEwfp"n=Ԫr0N2Kc^f$PO'b*;n jNF < -t}doI[˲l MpKbe]s$__)|> .UlN> O LĮS%^$JLO jJў?`aRJg,!u!i}BvI[18GZɐ8?9wV+U N 'jN03m`6L a\\IgNb4ܒ$Z|O<Ϟlo5Rn|B"+gh܏lK2Kx[ f]%/Lw uMfTkT%.첳$M߾V1Zw'gNd@֒ә/RCqae2M\\rM \=ʓKޭChr:՝t c@Q1cg_+jmx|fN؆ f8=+˙K~i#gjnmub0`LZgŏOPϲ 7+PNra wp ~t 4#S1Ivݻ2~eu<]"?vrTǓ +t(Wh'N(`YqѻFrRKC< [!.O֍t`$y m]*Y"s#'{Xw#ܠ [ hw̗WfyM,T_u-QWev`hW!Z79^Xp HƩB&-2Øa >E<\G,U2YHBS rmmςIZEJ\A!Ν[`5@=PK$Bș#%3At#jcހ'1lcV{Gw@tBfWz# ˴PKoBc>Lڜ5.Uy"p '.f~PF̹l$l9Aڥ 2̙. ^Sxvc }bҲ1iHd>0I+@WW~+[f[cj<eaZQG̱]߿kkpd/պ }]Z>8BbNkT1۩?Zz&BK-VVKpA 읞&5]mӼwKX! B QB DがKpXŲan4('~=M=fl RT)Hvqخ}-Rۥg-`MK&)+*R:C-0c!tv0Et-o 㙄j8RwM GМ30e2kq!cSVI)k*nICmN EsUWL&\S$wN-C-ՃO&(~j0@ 8HJΪ.Y5+YV XmTvA.#Z&l7sڏ%Jg*lP>1?]EsWOLc A=z9.j9Ή3tsj Bu3.)`R X'`EJ8s&NvMnlXgkW(iHa>U?E7!>"-%4ʬ*u dj YaM_@ZhEQ;HO(ufBZ#.~%Rs1u Щ}318˿t"=P<4>!kc#5P̢6_[99#!4_0]Z+F`xnQrsa6ď՘weE,izr`Ȩ@쥟k[;I& ߳Tn!/#["͕wb0H=H@( KEvz"\R~IRvK'TD \شOQY-;5-ާK, ><8wл[ţlk0 T 8bY]FJg8p3:#4?Jh:e^)+XCћG L$n ;8vzON^+ MiL(5dVHw0"`U{xA4[*zng _ӧJv7 .W}Rz/.eJ4Ha.!v^Ӎ '6R`lG0ЕrU|tz"3 r$:oda ,fhc(S1pB:ϣɏJ{,S\yA] _D(< )'CyU@q5 :mNM0E jc&̟cGi&y<'c |⠗ KA'P?z+w\8b/8 ͋MIU2GlOa vu}[i"lpjs:,^~hfv~ WHle#rID ^GJ#H4 @ClR۠3vG9_65}>YRwT bB  0js;]|j95SGnB._rAfs:BnWFpzFWطq_k)fm+ɲ۟I֏sXt6qqoalA+#8[~RGR^1U> lо"/;dbp>rRPM!K]>6Pi|jV7+sPޣ֒+ 7o3eZ$t F9..~%׉J(dJ$""z\a 8%7=,x:Aa3Ùz޺})&USHt HG4ZDVH] Pa Wf3_;݇:^`XY's'w%8:Tu q90B) :S5wLXtT\EXEOU¾/.́7|@Y__uSkFhLxK>+5(bAѻ^t[GIxPI`_.-H|A5i `W.9q|JUOR9y%!H;Uw}=0C>P/g9g(7?֔uyhR(v@jy-YDHɉdcB}% ԥ/>kg~(nk'a uN̷Fw6~?6 Ɍ;/Qw SD36C 6qPoU-+A=Apl=lb_* ?%{i*dҐ^%U9@ܱ/S/4rU$ +-`H87̭,3ZʳU<>Xl{ٯ4j@~$aj>y1u_6b4c_A~{p~"dͭ9EAC"<{ DPO+`{ ʸBt" hԙfFkne)#|5 #'f~黝6tݾLj]'…OKY.~@G@#=ŮPKJVF_oZ Ke(gpιH 2?^lO):Ob$E)'ANUO02n6P­e%U1lE)bs(A)PVnI=tGBe;n9M|>Gx/\B겲홊W=f!H״شY^cVWqӥJjUMnHQn?SZ}$= V2f~op@coqPŖ߯04kfTz/UPb rUSAZƠF:/\~o着egtMۿrcm5zC cN/}35JwI&k - 0jYv8#;>xd_WV.Eӂf?`m39UE7V2`w ϝ([LވQh04鑺āW{_I㙒{e,nŀ湡*K̎/CC G঩YenhݱpčSȍEWobM54?M= aqBh>bPC!LAԝϽEO,ļ/ -"lDYtey 2cPIu;{Fs\%q|bH=P{쳄gڳ7^Ax3jF h74r\ĭcGdYu>`ߕPm?d=e6o ۩*_J!P띛>==<]tƏtkǎ?Η΄ _ySnHP]HYfd e$\ b9(7h^{=dk-TF2O‹p 3E_K4X-]r C&4m[?ѱrM[BIAF/Lsu ~ՀaU$ "wz8U zyweEgo-}9+%=.@wa'ՏrF9fF[[h!ؙ~z]҄xl&SF8&h[ӑp9Q(ZPdȵ3"׿Յs8wUymԶT&[֏f_7Ec@V.~>m ?c:Nk 8ӈ=mzju|w=Iv9 6khf*mC}u4ל1>R)&eMGtu" ${}sܩx.gHKp<,q(P?ž]M0@P76` M4%iĽh&݀zt\:r_9D =ٱfHPHF޾ "f.p DҵaIuBGk`Gjc$GܱNɛ];wֳ}%\6H?/.Wڱ[8bӚd(Ь&2WN9aYTTlK>&?S`g ]\&s5V#N)1-8@ou9`j_ESTVKq;Q"=A>C.3]y:q.>Hq|',V*.'9Ujma98@kƜ+p2~n|ġ1ZS%iҀt ]dLZVG5e##)MZyc2=v _>};9mK:jbIF]ho||bKYCrF *4xH>dוخw 5 bD S_ @r/p+Q<͆@"B]k0VZ#^<ٍj4xoV/bGɁwVJ-c~C{wW)&Y.wIǕ{L[Z8krn2&!j¨:7g 0L5$B ԏ=芙W9rqbe򲼍 ,?A:W5˜Za댾#PegD`_Ppq7CQ[daܬTg jJֵ,`Nl}m֑ bVP䡍NB޴,nPl?~?$hJz0;;+NkH&5)ޯ%$CHx7sCpLwQBdVFvh16͖܉FMG4!"MHS\%ljp۟c-} gƧ{Dd1DM6Za 5lSc0Yik*g3ֱYGgm/5*Zߓ*2rAkpeW!VCо;,]̧K3RPˋ@P9 Z[z,j+KZ[Gw|F3NzھsAXk/\˾wB[fWrdK[IK6zqQBAщJ\ MN)T!A(hxTҵMtVWf0>~V6#A~2Tۆ]'t :+I^7synp&{]TZF3\WV~!(/kObn+Lטm tؘ`>95 vo%qE R`e,]rBfܧnIK\@|'7V mαa~HtkL -2#ҵƙr & H59 3u"5Cֵ3g%*rD |E4mm+$à rro \jAF:a-Ώ1 ᱊,EX2ivTA;`z'=3TUz`ǜN!{f\h|+!J)Uwc^[-c|vSGSF\'`%1'>Q(ͳ~D7C^5C0gFڕ5/S$w0iƮe_roh,1fNjl `bQ{HBr`?_2efz~tc/H.$i vԁаM@2J1FҞ^a5s #h|G3DV x-P\auf0.H77H IGoUnF$R?h!dꡎ;p[ܦ& *4FDyGS;?1.zC2]acQdì41% *0Fʿ끎9\/D#[}1O՚;%2-(ٗAn&_ؼ8H5dOE )=IPo=FNcN]K` , ܱ8`_re,^6Òfז& Y `);  mCP $Ǫb: #Wd[(^SQO:8jgP]0t^ l'`ROqiTjb/}ESH zo`NL-Rcoeqp\#PGdR3⋤6K./sاf_v;iV!Njs0ϭQ{!R 2Y3✳c assi_/aXw-w4ĭ+oQP~N NX`ej8Ekm-CP`p3zEV!"^gW)?ZŸR=@E<>Zڸ&GY+\9imu?t$*f\ u1+EP#gV.hSahLM#| BUҍknubPRm!D*! ֦Z?^߽{jEM cܞ3DXB)k$)"iA 3% MPl&Z { tlxf+OK"DPGk@|$O2A9n?Puj!&Ԁ[^1zTG&79ڠ&ͽeY?8=tCWuVLL!,&r&):=3,I]~v# Kxó .ϿprO^PpC>q 6),Dž;v.*'4rR+ 4_S=Ƙ -Zd`xKr<w[R:Z蒸;HrOhț&R|svq{ _a齇irndYq]W @4 ?k;ૄAF+U.bkwW)D<yL?%0-Cͩqu},g~9dmBnU)xp>:7 AVNA? µ\Js ~a tm]6":kAKC06$9_1UtS(mMQx/y9MR_ 4Xz'F W'=ũJ 8qԃI'":8)a9\8Me:ca.~d-F"?Vp x2L#26E$n]ۿ!^~4:ڣcf}K`E/!zMɲl;b NPLũ0KX'wܴD Y%pAWl[}.H,}+Vi_ ݞQKR-HK2"$"4S>2s8eg?2ʍ j.{O i -'_TYе&Frj>=\*Gk}*? = \#nYܨ<1X9>>tiඉRoI?}mg4+\c`lpBv"Xk^TlR?=.7.9#Y.L`gFr2mm|D^vݸ@O?Gt1/6t0 :R]WҿMS!ȤpEpFݞl;򏸪Z|6jj W\3URrIJR ȕkt/uT}P^~/rOlIaoŌ:ᚫ #[Pik(Q{RtBkUv%Yp19">>RԱh޺F>.v6y!tG= 3摒ݾhyUu1h|'3WWg],2G,#ʹG9,(|QA~ZFJѐiX V0"7E`gs/WD": h8oҳHk{;T*ZYS0ݑw1>7&ۙp(cIh|29Q׃gl#ʲ1zͺcfG_ QQj?C~̑⿒y8t>LIpE.&|Y7̱#OIYֺ4("'Xt)Hw.d`gT#":Ji*-˄dͅ2=Åۯ"BciE ӗb¨MBznȽˏrƆǗ{^<@Cgh90{lRLFzF;ڳRLsKyZ`B$;ͳq+/M6^)|5eM1[Meř$b tCb䁩h A[<߱wǑ^X҃nT`v6 B-5M\5=45s* >tjQRC՘1dN _Y:QGnI\%|3임^U255۽.khuʈ_,KnquEor?o:z9~(WͯL\dmQ80x4ܾG2xZbCU p'z[3S{:!d!45tͣ] Gs*(2#Ld2gYAsoմ2"b)z &u [FNA~칒f ƇaKe뼝b>9!*8L 4,9X!kQ{hCфӓd ? CP귘鷮siPE2yR bNXjEaYˏJC'6y爐Efuk (. 1:%8IkUЇp^MhM(2!,EjZ]Mjh !p^#u08-~<@)<|!t׾S Tg695Pe>rkHߑ.Ԃ.ߤ#c2$>0۷!x]Ke:ir!x-8P\wICip:f{d?:*$yǟ,dHY„a7)*x=u7I)Fy!K6%1?Hf;Heth7E+dU*+EpMJ,v_G$ Um.2^_͙n HB= _<4Y=X~c~Ub:˵2(1ѡwCώ<6+8엀n[kJ% & cx)~<83Mrp )wKX q?K0_Rk=%?O?#Hjch|Y U1D oE{ϢSi>">1*"a86_) IwI6瀽[n\!-3'ӛxTqV~%G<(&ĐwIh`$ڱ];2<2 q_/=R"B^{I4{uBஈ9ikD$/u-8hk#KeTfO2΄BAKCH"Mx~R^Mwf5Q@H D/ҪUFaʤ/PK 6׎|'3֧~'VQ1.KGw-CCIoԝDjb F:f5ZP`'fGxDJt&EX9 .:Xb7?a&-SȄXĵt^یB*@ ^s- {~VUlOtxJRًO٫9A ~#(,D h/w8Ƭ%AJL7X(#s7 kv#TG 76%Zc,I/اŗ^>$uVVnni0kXƬ(- mwo?ť )蛄,)LS&k=h4(.61Vѩ][`p*q D}],2^b=<6|!c,!-FT'm)O]aX`&%&eմyKDD {%t,i&]j8Tc/%8=u?.ZuZd0H+%x!W Zk5rZ9?r汨cihM8yqX:Y?jL78'#v<`?Me#Bx dV޶fъKD}1#Ǵ+Wܒn[2Jpi3?i#/s'ׄL=r9`|]HWS^&oXp=y+ >@_`cTwoicݤ}_/)n;0>L0+bԯЬQo%_:B9Lh#h3)crbeA-=':S67)mE1hyNX/nd7ɦ7w1}0uwJxM\ص .=5,D=4A%H<.6e,s{-.E;%PtUVfV90QJ:%Vf >hI0.cg{un}U];FBlȝ}7Sc!w;쀨٭ 4зNq DުY`CCcdLމD8>.:3upY,j A$f˚ߤ6xLo+ 8QDž2 .g7r{3lit"lBi֜f;y"J IzAak=S.XkD0ey՟%/a?OsVĩJ%d ŞXs꼥|^ZUP C,32#?RS;4F[vG3F k!f 6wHZ^bVąD*d%ǎNhFBO@Z,oU oH' FŸK)vw ,Xb+Ùϗc 8\n|Ns @#o>ޥ6DTLZu7uYjXEGi :Q ZZ>XpKG&ixar =9]UX ͉=2ĮuɣC61dA0Ӗ.-lhd}6R0iM`Yݟ%߈ czdNHؐOϤV>;XîG<Hd) !^VJxj^Ʈ~u>;T)%$F=FuA G+IK-ޡ@S$˨Yhz]#~G*F ÎU_Y$'}om^pU C5X4t/ ?7OzB6H ZF7xɻs;4Dښz( 'Mgr n꺿.>'%بH0;w5=FYtJ:z=fgíGޞz4QƜr|^ʞxJ|ԕxbqXIhB\ 槃F ~R,c~?|i 'Mž=#h%'趻C.iLtG¼cZ* '[  B@CoibјV"/mzzܣb̈́@ȘgOT44V?_H O m0u۰OҊo+3K[8N13_! 1cт'T <<C2dcJș$̎ wv,'OZ1p~0.U'8,@4:` L_RƟSXx8ҌB@[v -߻/O wFG%k;f8"x4lF4AߟP%N^):.J"ٝ#FEaƮ1l$MirjTj%]r͖ݢz1Ö_Jj^/YB|*07ްet,owX l8X| 0j=ylj˜snYujD7[stL3"xuLÉH5w@3#0(WRqԢWsKjl9ś(]18Vâ;nƴ5hWfhqw=Np;[AZNELq< Kqv N*LQ,-=KNDf"yjaNj{nS`c pEq^F&,BϘ6ݣK6CrdՋ@1 sAdaC8ZgFRԮqw.LnFe#4)9: Lk5ad 7ǹb]f2{jCl1$jSxקĎH`ؾ5ԽLIha{C*Bv[9]/HQ,m w\c\\f]=:[TJni&Dkʞid +:83h- Mu x58YY$>sɿ*T ۗȀZ_}fsbd9AV9`'nr7=sw5UE\w-J&) E;1ޅ2c -FfS\:s{u):_t]l*ýn޵Gn>~M|Wc J0EA&Q}a ]:di%Z@Z|jNGhU :Kue˕y%||i!vaD !51@`rH _*;}Sa &%fOkYH{ϰgvO31ԫΒRv/bI<W I ׎p^ Zn~mg^ۗbv#`WpUlQwgQSBaHŸ59 3y &K@XZ'ٓnPdhc|FC$h4$VH.qc] MA[YuZHmXd$jQv3߅Np%]'8e@Ats '4n%_)'.(t-3xr@V:/a*||[蟷-?vG2?Mr5j@vci(akU=ȯk>=~rccD|S@ \ń΂Eb.=AsUys "Ȫ_X6Puvexz5X[ /I,fAáѓ;\P;_g:| M5+C;=i%^5" if$-W,=|+CPmbsK?42q|v%*i hyFkqO[/=)BAj/ɏ|KgP̐TjE9?8Q5|crK,1hy{`XO0MD89LTOj7u/VzO_8%}]R39?#hcSKS1 7'W[^_: t䈧|OF>,4_5(vJEXJ0rEA)9j[7wʍ[4!jZv$óٳ (: :m.T)%P'ҟ4HE<4,ѱy8ZwKUH̀Qkv9y';@AZ$zwmG8^dٶ/׷av}s̡^ȼwyJIJIT 8ưB;fl Ϥ%r@DG17jĎ-b0~vsqJ$ZEJdë'AR`pVIj}^[ьfa=K1+Mg])N\֪ۑZ'#~n|>NboVm]8|Ɍm'QDk“TEjٍ۰?9 iR1,©e j`k̸/<=:iZ%PC% iՀ.[5 aџC[,O\lfEs14}ZQGJːمUh}]뮣"Q1%\ OA(oBnRԭ2m_ShA$6{UʉN m7,F9750O#N+{dqa)+6BGBg|lSՉt{wN8ksL"l6:+:Bmi>ևd5X= Fvnmf[ 5#edV\'cQ I>L b⿹/r{zt.Jt`䛉$F Siܥ1<'|jvIx̯©1Yd RW2ۜ#C= g?JF [lW29$)/, !+PjʻOVFTNJD(|δsJ<?>ȥv|"%E$/kYʐȂ 7ϱ ?2[cn$mnI+^mlu*;%#Cx8k?!io~06G=df8 4Ӂ#4lYTkNmXk#02IzI:z?!R9Ӓ:բasi񱡟ކp I[.upS(Ǽ0 .;П$H"ވDl?hB6.y"mpw7wpϑO~kiȠM#BW}I#`S53bfLOQafګ[ |)+XG[jGk][ϟtyr)!P!^UcQt" #6.=JX=phݨU@ܯM8“Ty%!Yu0L^Jm)GTHn>Zd:U-*֠VaGqoޙ6.Ԥ%^tslڃk(ĥ2Vj=S')Z? a2jeY|6e } ";q2źtRAρ9%)J5Jy& )y,߬J# s怪IzUnel|׵S@@[5'lTؑ@hJF}ϑMr83gϟZsd3G'6\1o ,)P1ssqJz_/N&6_忋FxX -eh^uv+_eƷY;}h:`#Pg~g%ᕐ,|ns.9sV'nL!6Q(MD+X ~樍+ %ou1T#ayl? Yq)bD _ @ s*#X%>!i\Nk|GnXvi $J6C{өSc 4UyR %0(i^x۵~vC{r|GQ}$=cʿw.X `8`BLKJ6ֳ5zv/̔YgF Z)L g* s 헫nܨoƛ.UJ y&lw~1SS !nUd _|gYoxbѾ[ie/z*% !1OO?zˢ1@bQ*3ӻU Kvq'k;~2'y|tzE%y@s mԄ D, סNN|Xϩ&" OCa`ƞ("29Qȣ<Fز^CIHtB,;aT+?V+!<53']}9+p܄8,UxkX4.*kc([}K/,Ϻ 2-: (>4P;癬7OtYQID?* dBNNɠvouҩju œc^w,\: i ݠ C.CX&3X8*.JMJPd\1"uk%l'I:{H9-;k{ѥ gHŘtBŭXzV3-7t$exK W75g\O#Bq4Ӯ (L[5`V92%~I#IdW7=#4/SDt#8ך:HlQ}2Uy؁qUm%lw+”ˏc1 PAY{UӃ4꺬~|N KI8}b}j Zhqϣ̃~:=vt}Q Lˀ)? 7 o ޻̪1vqvozj%D۸6dn%:W ODBmޜ?4tb!APLF}H &(_l ة3Ƣȅ{d׷^!L}َS 8+2EC*6 !pOֽ?& 6HgcnWptƊӕX&O-r#)ǼJBmP;uʱz❎N+;V>Jq!Y\/1(Yo< rC4rXɋf; ڠ닞;Ew9c$"t'mFvV@-@/ T0Z#)G8[4ϧ y2[Bπ$-gd(}z+}MODu4I'R<J }.R~ޮ)\MCR*LElwi8v%fŔ 8&YD|l3BZ~_* }Ã*LC{O&I*5 + O*`L27g,.,*Rxfm$4QK*&vRk|҆J K9 ut#Ft/)Ruf$6r؇=uۣg;F,L=C>W rBYל@9ohE!^X&u/Ft7"r=q@`OlMGH9Ev7"0ȋUa (N"59YܜʧW Fv4e;p-h3}I5YXyTg hB܉96g,La Ͳ˨TYNNʴCDZxtyP_Ʊ'ڀ6UEg w-ر~}fl RC@'AA~Ha(8 Lx G! 4rl >ixF(a}'Mxv26̩B˜OgnSJG!ms. WP>fòDߞ|^ ,: qϽDݼ遣Qt[3voï tʾ 0}H/ f(1fr%xrVH5n*K:iߺ@)k̘h 1ҳS)wLKG\ R{ֽ=(Tc$RԲةc|+Q7 b ?фx4l$3gzi G`Iÿ_w%;/ɷ|mt2R·gBW (&HVG駬YCP]تO:l҉GU˒{I ԼΑ6gelx5gnFϹG_]{'^Q:H6[9Gf/k=Z8.>=Z"$vP /Q:0fO쮣_3px:΅pKI_<߲Tx&:Ta2hq ֻFMs@65xwX#E׊׹oSײ"c~(-;FxyOItp˂XEGZ!C251˹%71ouOBrXKdo{' !K"OW4꼫tݦYװwze]z-L% 5E>ωG**-d(1U#A_wLJtcU>P[KLpꣳ@Kb#ƅ|ugVy|<^[HT&B(%nU_lDCK Dǁ˜KAZ_^{uoQd*hXhZ>nkN۩x]!?&Uo˫B)LGnw2z;*k &:*j"Zswei)9:Llm *J1(uF^I|a`-*<0B=z}(D!Jɔ\kf dG8)ȃZQ]q#*:S'*ٻ܁B]: ZIg1ȐmRx%xvНŮ+MD#|M6-*!,sUOJTB8E駒\[hЯLgڿ٣/fW{@U"n8Mcm{sjm u6V]ǃ <`F č&\+Ժ^Yn^2ˉa9m)}alMwbN0I1Nt_@45< agEDYWFꅔ-G谺5ֹмLA{c^yDTBGr]7/>IH0X/A2(/G)}_ovC*WƱuTTyuT^j.F=z pѺtފgZ