summaryrefslogtreecommitdiff
path: root/src/complex
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2012-03-13 01:17:53 -0400
committerRich Felker <dalias@aerifal.cx>2012-03-13 01:17:53 -0400
commitb69f695acedd4ce2798ef9ea28d834ceccc789bd (patch)
treeeafd98b9b75160210f3295ac074d699f863d958e /src/complex
parentd46cf2e14cc4df7cc75e77d7009fcb6df1f48a33 (diff)
downloadmusl-b69f695acedd4ce2798ef9ea28d834ceccc789bd.tar.gz
first commit of the new libm!
thanks to the hard work of Szabolcs Nagy (nsz), identifying the best (from correctness and license standpoint) implementations from freebsd and openbsd and cleaning them up! musl should now fully support c99 float and long double math functions, and has near-complete complex math support. tgmath should also work (fully on gcc-compatible compilers, and mostly on any c99 compiler). based largely on commit 0376d44a890fea261506f1fc63833e7a686dca19 from nsz's libm git repo, with some additions (dummy versions of a few missing long double complex functions, etc.) by me. various cleanups still need to be made, including re-adding (if they're correct) some asm functions that were dropped.
Diffstat (limited to 'src/complex')
-rw-r--r--src/complex/__cexp.c87
-rw-r--r--src/complex/__cexpf.c68
-rw-r--r--src/complex/cabs.c6
-rw-r--r--src/complex/cabsf.c6
-rw-r--r--src/complex/cabsl.c13
-rw-r--r--src/complex/cacos.c11
-rw-r--r--src/complex/cacosf.c9
-rw-r--r--src/complex/cacosh.c9
-rw-r--r--src/complex/cacoshf.c7
-rw-r--r--src/complex/cacoshl.c14
-rw-r--r--src/complex/cacosl.c16
-rw-r--r--src/complex/carg.c6
-rw-r--r--src/complex/cargf.c6
-rw-r--r--src/complex/cargl.c13
-rw-r--r--src/complex/casin.c16
-rw-r--r--src/complex/casinf.c14
-rw-r--r--src/complex/casinh.c9
-rw-r--r--src/complex/casinhf.c7
-rw-r--r--src/complex/casinhl.c14
-rw-r--r--src/complex/casinl.c20
-rw-r--r--src/complex/catan.c119
-rw-r--r--src/complex/catanf.c115
-rw-r--r--src/complex/catanh.c9
-rw-r--r--src/complex/catanhf.c7
-rw-r--r--src/complex/catanhl.c14
-rw-r--r--src/complex/catanl.c126
-rw-r--r--src/complex/ccos.c8
-rw-r--r--src/complex/ccosf.c6
-rw-r--r--src/complex/ccosh.c140
-rw-r--r--src/complex/ccoshf.c90
-rw-r--r--src/complex/ccoshl.c7
-rw-r--r--src/complex/ccosl.c13
-rw-r--r--src/complex/cexp.c83
-rw-r--r--src/complex/cexpf.c83
-rw-r--r--src/complex/cexpl.c7
-rw-r--r--src/complex/cimag.c7
-rw-r--r--src/complex/cimagf.c7
-rw-r--r--src/complex/cimagl.c7
-rw-r--r--src/complex/clog.c14
-rw-r--r--src/complex/clogf.c12
-rw-r--r--src/complex/clogl.c18
-rw-r--r--src/complex/conj.c6
-rw-r--r--src/complex/conjf.c6
-rw-r--r--src/complex/conjl.c6
-rw-r--r--src/complex/cpow.c8
-rw-r--r--src/complex/cpowf.c6
-rw-r--r--src/complex/cpowl.c13
-rw-r--r--src/complex/cproj.c8
-rw-r--r--src/complex/cprojf.c8
-rw-r--r--src/complex/cprojl.c15
-rw-r--r--src/complex/creal.c6
-rw-r--r--src/complex/crealf.c6
-rw-r--r--src/complex/creall.c6
-rw-r--r--src/complex/csin.c9
-rw-r--r--src/complex/csinf.c7
-rw-r--r--src/complex/csinh.c141
-rw-r--r--src/complex/csinhf.c90
-rw-r--r--src/complex/csinhl.c7
-rw-r--r--src/complex/csinl.c14
-rw-r--r--src/complex/csqrt.c100
-rw-r--r--src/complex/csqrtf.c82
-rw-r--r--src/complex/csqrtl.c7
-rw-r--r--src/complex/ctan.c9
-rw-r--r--src/complex/ctanf.c7
-rw-r--r--src/complex/ctanh.c127
-rw-r--r--src/complex/ctanhf.c66
-rw-r--r--src/complex/ctanhl.c7
-rw-r--r--src/complex/ctanl.c14
68 files changed, 2024 insertions, 0 deletions
diff --git a/src/complex/__cexp.c b/src/complex/__cexp.c
new file mode 100644
index 00000000..f603e2be
--- /dev/null
+++ b/src/complex/__cexp.c
@@ -0,0 +1,87 @@
+/* origin: FreeBSD /usr/src/lib/msun/src/k_exp.c */
+/*-
+ * Copyright (c) 2011 David Schultz <das@FreeBSD.ORG>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include "libm.h"
+
+static const uint32_t k = 1799; /* constant for reduction */
+static const double kln2 = 1246.97177782734161156; /* k * ln2 */
+
+/*
+ * Compute exp(x), scaled to avoid spurious overflow. An exponent is
+ * returned separately in 'expt'.
+ *
+ * Input: ln(DBL_MAX) <= x < ln(2 * DBL_MAX / DBL_MIN_DENORM) ~= 1454.91
+ * Output: 2**1023 <= y < 2**1024
+ */
+static double __frexp_exp(double x, int *expt)
+{
+ double exp_x;
+ uint32_t hx;
+
+ /*
+ * We use exp(x) = exp(x - kln2) * 2**k, carefully chosen to
+ * minimize |exp(kln2) - 2**k|. We also scale the exponent of
+ * exp_x to MAX_EXP so that the result can be multiplied by
+ * a tiny number without losing accuracy due to denormalization.
+ */
+ exp_x = exp(x - kln2);
+ GET_HIGH_WORD(hx, exp_x);
+ *expt = (hx >> 20) - (0x3ff + 1023) + k;
+ SET_HIGH_WORD(exp_x, (hx & 0xfffff) | ((0x3ff + 1023) << 20));
+ return exp_x;
+}
+
+/*
+ * __ldexp_cexp(x, expt) compute exp(x) * 2**expt.
+ * It is intended for large arguments (real part >= ln(DBL_MAX))
+ * where care is needed to avoid overflow.
+ *
+ * The present implementation is narrowly tailored for our hyperbolic and
+ * exponential functions. We assume expt is small (0 or -1), and the caller
+ * has filtered out very large x, for which overflow would be inevitable.
+ */
+double complex __ldexp_cexp(double complex z, int expt)
+{
+ double x, y, exp_x, scale1, scale2;
+ int ex_expt, half_expt;
+
+ x = creal(z);
+ y = cimag(z);
+ exp_x = __frexp_exp(x, &ex_expt);
+ expt += ex_expt;
+
+ /*
+ * Arrange so that scale1 * scale2 == 2**expt. We use this to
+ * compensate for scalbn being horrendously slow.
+ */
+ half_expt = expt / 2;
+ INSERT_WORDS(scale1, (0x3ff + half_expt) << 20, 0);
+ half_expt = expt - half_expt;
+ INSERT_WORDS(scale2, (0x3ff + half_expt) << 20, 0);
+
+ return cpack(cos(y) * exp_x * scale1 * scale2, sin(y) * exp_x * scale1 * scale2);
+}
diff --git a/src/complex/__cexpf.c b/src/complex/__cexpf.c
new file mode 100644
index 00000000..47168e8f
--- /dev/null
+++ b/src/complex/__cexpf.c
@@ -0,0 +1,68 @@
+/* origin: FreeBSD /usr/src/lib/msun/src/k_expf.c */
+/*-
+ * Copyright (c) 2011 David Schultz <das@FreeBSD.ORG>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include "libm.h"
+
+static const uint32_t k = 235; /* constant for reduction */
+static const float kln2 = 162.88958740F; /* k * ln2 */
+
+/*
+ * See __cexp.c for details.
+ *
+ * Input: ln(FLT_MAX) <= x < ln(2 * FLT_MAX / FLT_MIN_DENORM) ~= 192.7
+ * Output: 2**127 <= y < 2**128
+ */
+static float __frexp_expf(float x, int *expt)
+{
+ float exp_x;
+ uint32_t hx;
+
+ exp_x = expf(x - kln2);
+ GET_FLOAT_WORD(hx, exp_x);
+ *expt = (hx >> 23) - (0x7f + 127) + k;
+ SET_FLOAT_WORD(exp_x, (hx & 0x7fffff) | ((0x7f + 127) << 23));
+ return exp_x;
+}
+
+float complex __ldexp_cexpf(float complex z, int expt)
+{
+ float x, y, exp_x, scale1, scale2;
+ int ex_expt, half_expt;
+
+ x = crealf(z);
+ y = cimagf(z);
+ exp_x = __frexp_expf(x, &ex_expt);
+ expt += ex_expt;
+
+ half_expt = expt / 2;
+ SET_FLOAT_WORD(scale1, (0x7f + half_expt) << 23);
+ half_expt = expt - half_expt;
+ SET_FLOAT_WORD(scale2, (0x7f + half_expt) << 23);
+
+ return cpackf(cosf(y) * exp_x * scale1 * scale2,
+ sinf(y) * exp_x * scale1 * scale2);
+}
diff --git a/src/complex/cabs.c b/src/complex/cabs.c
new file mode 100644
index 00000000..f61d364e
--- /dev/null
+++ b/src/complex/cabs.c
@@ -0,0 +1,6 @@
+#include "libm.h"
+
+double cabs(double complex z)
+{
+ return hypot(creal(z), cimag(z));
+}
diff --git a/src/complex/cabsf.c b/src/complex/cabsf.c
new file mode 100644
index 00000000..30b25c70
--- /dev/null
+++ b/src/complex/cabsf.c
@@ -0,0 +1,6 @@
+#include "libm.h"
+
+float cabsf(float complex z)
+{
+ return hypotf(crealf(z), cimagf(z));
+}
diff --git a/src/complex/cabsl.c b/src/complex/cabsl.c
new file mode 100644
index 00000000..40a067c1
--- /dev/null
+++ b/src/complex/cabsl.c
@@ -0,0 +1,13 @@
+#include "libm.h"
+
+#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
+long double cabsl(long double complex z)
+{
+ return cabs(z);
+}
+#else
+long double cabsl(long double complex z)
+{
+ return hypotl(creall(z), cimagl(z));
+}
+#endif
diff --git a/src/complex/cacos.c b/src/complex/cacos.c
new file mode 100644
index 00000000..3aca0519
--- /dev/null
+++ b/src/complex/cacos.c
@@ -0,0 +1,11 @@
+#include "libm.h"
+
+// FIXME: Hull et al. "Implementing the complex arcsine and arccosine functions using exception handling" 1997
+
+/* acos(z) = pi/2 - asin(z) */
+
+double complex cacos(double complex z)
+{
+ z = casin(z);
+ return cpack(M_PI_2 - creal(z), -cimag(z));
+}
diff --git a/src/complex/cacosf.c b/src/complex/cacosf.c
new file mode 100644
index 00000000..563766e7
--- /dev/null
+++ b/src/complex/cacosf.c
@@ -0,0 +1,9 @@
+#include "libm.h"
+
+// FIXME
+
+float complex cacosf(float complex z)
+{
+ z = casinf(z);
+ return cpackf((float)M_PI_2 - crealf(z), -cimagf(z));
+}
diff --git a/src/complex/cacosh.c b/src/complex/cacosh.c
new file mode 100644
index 00000000..c2dfc1ba
--- /dev/null
+++ b/src/complex/cacosh.c
@@ -0,0 +1,9 @@
+#include "libm.h"
+
+/* acosh(z) = i acos(z) */
+
+double complex cacosh(double complex z)
+{
+ z = cacos(z);
+ return cpack(-cimag(z), creal(z));
+}
diff --git a/src/complex/cacoshf.c b/src/complex/cacoshf.c
new file mode 100644
index 00000000..37ff8800
--- /dev/null
+++ b/src/complex/cacoshf.c
@@ -0,0 +1,7 @@
+#include "libm.h"
+
+float complex cacoshf(float complex z)
+{
+ z = cacosf(z);
+ return cpackf(-cimagf(z), crealf(z));
+}
diff --git a/src/complex/cacoshl.c b/src/complex/cacoshl.c
new file mode 100644
index 00000000..2a04e27b
--- /dev/null
+++ b/src/complex/cacoshl.c
@@ -0,0 +1,14 @@
+#include "libm.h"
+
+#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
+long double complex cacoshl(long double complex z)
+{
+ return cacosh(z);
+}
+#else
+long double complex cacoshl(long double complex z)
+{
+ z = cacosl(z);
+ return cpackl(-cimagl(z), creall(z));
+}
+#endif
diff --git a/src/complex/cacosl.c b/src/complex/cacosl.c
new file mode 100644
index 00000000..5992e056
--- /dev/null
+++ b/src/complex/cacosl.c
@@ -0,0 +1,16 @@
+#include "libm.h"
+
+#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
+long double complex cacosl(long double complex z)
+{
+ return cacos(z);
+}
+#else
+// FIXME
+#define PI_2 1.57079632679489661923132169163975144L
+long double complex cacosl(long double complex z)
+{
+ z = casinl(z);
+ return cpackl(PI_2 - creall(z), -cimagl(z));
+}
+#endif
diff --git a/src/complex/carg.c b/src/complex/carg.c
new file mode 100644
index 00000000..d2d1b462
--- /dev/null
+++ b/src/complex/carg.c
@@ -0,0 +1,6 @@
+#include "libm.h"
+
+double carg(double complex z)
+{
+ return atan2(cimag(z), creal(z));
+}
diff --git a/src/complex/cargf.c b/src/complex/cargf.c
new file mode 100644
index 00000000..ce183c4b
--- /dev/null
+++ b/src/complex/cargf.c
@@ -0,0 +1,6 @@
+#include "libm.h"
+
+float cargf(float complex z)
+{
+ return atan2f(cimagf(z), crealf(z));
+}
diff --git a/src/complex/cargl.c b/src/complex/cargl.c
new file mode 100644
index 00000000..e0d50478
--- /dev/null
+++ b/src/complex/cargl.c
@@ -0,0 +1,13 @@
+#include "libm.h"
+
+#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
+long double cargl(long double complex z)
+{
+ return carg(z);
+}
+#else
+long double cargl(long double complex z)
+{
+ return atan2l(cimagl(z), creall(z));
+}
+#endif
diff --git a/src/complex/casin.c b/src/complex/casin.c
new file mode 100644
index 00000000..79aff278
--- /dev/null
+++ b/src/complex/casin.c
@@ -0,0 +1,16 @@
+#include "libm.h"
+
+// FIXME
+
+/* asin(z) = -i log(i z + sqrt(1 - z*z)) */
+
+double complex casin(double complex z)
+{
+ double complex w;
+ double x, y;
+
+ x = creal(z);
+ y = cimag(z);
+ w = cpack(1.0 - (x - y)*(x + y), -2.0*x*y);
+ return clog(cpack(-y, x) + csqrt(w));
+}
diff --git a/src/complex/casinf.c b/src/complex/casinf.c
new file mode 100644
index 00000000..cb9863f6
--- /dev/null
+++ b/src/complex/casinf.c
@@ -0,0 +1,14 @@
+#include "libm.h"
+
+// FIXME
+
+float complex casinf(float complex z)
+{
+ float complex w;
+ float x, y;
+
+ x = crealf(z);
+ y = cimagf(z);
+ w = cpackf(1.0 - (x - y)*(x + y), -2.0*x*y);
+ return clogf(cpackf(-y, x) + csqrtf(w));
+}
diff --git a/src/complex/casinh.c b/src/complex/casinh.c
new file mode 100644
index 00000000..f2b3fef8
--- /dev/null
+++ b/src/complex/casinh.c
@@ -0,0 +1,9 @@
+#include "libm.h"
+
+/* asinh(z) = -i asin(i z) */
+
+double complex casinh(double complex z)
+{
+ z = casin(cpack(-cimag(z), creal(z)));
+ return cpack(cimag(z), -creal(z));
+}
diff --git a/src/complex/casinhf.c b/src/complex/casinhf.c
new file mode 100644
index 00000000..ed4af643
--- /dev/null
+++ b/src/complex/casinhf.c
@@ -0,0 +1,7 @@
+#include "libm.h"
+
+float complex casinhf(float complex z)
+{
+ z = casinf(cpackf(-cimagf(z), crealf(z)));
+ return cpackf(cimagf(z), -crealf(z));
+}
diff --git a/src/complex/casinhl.c b/src/complex/casinhl.c
new file mode 100644
index 00000000..e5d80cef
--- /dev/null
+++ b/src/complex/casinhl.c
@@ -0,0 +1,14 @@
+#include "libm.h"
+
+#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
+long double complex casinhl(long double complex z)
+{
+ return casinh(z);
+}
+#else
+long double complex casinhl(long double complex z)
+{
+ z = casinl(cpackl(-cimagl(z), creall(z)));
+ return cpackl(cimagl(z), -creall(z));
+}
+#endif
diff --git a/src/complex/casinl.c b/src/complex/casinl.c
new file mode 100644
index 00000000..f9aa8ded
--- /dev/null
+++ b/src/complex/casinl.c
@@ -0,0 +1,20 @@
+#include "libm.h"
+
+#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
+long double complex casinl(long double complex z)
+{
+ return casin(z);
+}
+#else
+// FIXME
+long double complex casinl(long double complex z)
+{
+ long double complex w;
+ long double x, y;
+
+ x = creall(z);
+ y = cimagl(z);
+ w = cpackl(1.0 - (x - y)*(x + y), -2.0*x*y);
+ return clogl(cpackl(-y, x) + csqrtl(w));
+}
+#endif
diff --git a/src/complex/catan.c b/src/complex/catan.c
new file mode 100644
index 00000000..39ce6cf2
--- /dev/null
+++ b/src/complex/catan.c
@@ -0,0 +1,119 @@
+/* origin: OpenBSD /usr/src/lib/libm/src/s_catan.c */
+/*
+ * Copyright (c) 2008 Stephen L. Moshier <steve@moshier.net>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+/*
+ * Complex circular arc tangent
+ *
+ *
+ * SYNOPSIS:
+ *
+ * double complex catan();
+ * double complex z, w;
+ *
+ * w = catan (z);
+ *
+ *
+ * DESCRIPTION:
+ *
+ * If
+ * z = x + iy,
+ *
+ * then
+ * 1 ( 2x )
+ * Re w = - arctan(-----------) + k PI
+ * 2 ( 2 2)
+ * (1 - x - y )
+ *
+ * ( 2 2)
+ * 1 (x + (y+1) )
+ * Im w = - log(------------)
+ * 4 ( 2 2)
+ * (x + (y-1) )
+ *
+ * Where k is an arbitrary integer.
+ *
+ * catan(z) = -i catanh(iz).
+ *
+ * ACCURACY:
+ *
+ * Relative error:
+ * arithmetic domain # trials peak rms
+ * DEC -10,+10 5900 1.3e-16 7.8e-18
+ * IEEE -10,+10 30000 2.3e-15 8.5e-17
+ * The check catan( ctan(z) ) = z, with |x| and |y| < PI/2,
+ * had peak relative error 1.5e-16, rms relative error
+ * 2.9e-17. See also clog().
+ */
+
+#include "libm.h"
+
+#define MAXNUM 1.0e308
+
+static const double DP1 = 3.14159265160560607910E0;
+static const double DP2 = 1.98418714791870343106E-9;
+static const double DP3 = 1.14423774522196636802E-17;
+
+static double _redupi(double x)
+{
+ double t;
+ long i;
+
+ t = x/M_PI;
+ if (t >= 0.0)
+ t += 0.5;
+ else
+ t -= 0.5;
+
+ i = t; /* the multiple */
+ t = i;
+ t = ((x - t * DP1) - t * DP2) - t * DP3;
+ return t;
+}
+
+double complex catan(double complex z)
+{
+ double complex w;
+ double a, t, x, x2, y;
+
+ x = creal(z);
+ y = cimag(z);
+
+ if (x == 0.0 && y > 1.0)
+ goto ovrf;
+
+ x2 = x * x;
+ a = 1.0 - x2 - (y * y);
+ if (a == 0.0)
+ goto ovrf;
+
+ t = 0.5 * atan2(2.0 * x, a);
+ w = _redupi(t);
+
+ t = y - 1.0;
+ a = x2 + (t * t);
+ if (a == 0.0)
+ goto ovrf;
+
+ t = y + 1.0;
+ a = (x2 + t * t)/a;
+ w = w + (0.25 * log(a)) * I;
+ return w;
+
+ovrf:
+ // FIXME
+ w = MAXNUM + MAXNUM * I;
+ return w;
+}
diff --git a/src/complex/catanf.c b/src/complex/catanf.c
new file mode 100644
index 00000000..8533bde3
--- /dev/null
+++ b/src/complex/catanf.c
@@ -0,0 +1,115 @@
+/* origin: OpenBSD /usr/src/lib/libm/src/s_catanf.c */
+/*
+ * Copyright (c) 2008 Stephen L. Moshier <steve@moshier.net>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+/*
+ * Complex circular arc tangent
+ *
+ *
+ * SYNOPSIS:
+ *
+ * float complex catanf();
+ * float complex z, w;
+ *
+ * w = catanf( z );
+ *
+ *
+ * DESCRIPTION:
+ *
+ * If
+ * z = x + iy,
+ *
+ * then
+ * 1 ( 2x )
+ * Re w = - arctan(-----------) + k PI
+ * 2 ( 2 2)
+ * (1 - x - y )
+ *
+ * ( 2 2)
+ * 1 (x + (y+1) )
+ * Im w = - log(------------)
+ * 4 ( 2 2)
+ * (x + (y-1) )
+ *
+ * Where k is an arbitrary integer.
+ *
+ *
+ * ACCURACY:
+ *
+ * Relative error:
+ * arithmetic domain # trials peak rms
+ * IEEE -10,+10 30000 2.3e-6 5.2e-8
+ */
+
+#include "libm.h"
+
+#define MAXNUMF 1.0e38F
+
+static const double DP1 = 3.140625;
+static const double DP2 = 9.67502593994140625E-4;
+static const double DP3 = 1.509957990978376432E-7;
+
+static float _redupif(float xx)
+{
+ float x, t;
+ long i;
+
+ x = xx;
+ t = x/(float)M_PI;
+ if (t >= 0.0f)
+ t += 0.5f;
+ else
+ t -= 0.5f;
+
+ i = t; /* the multiple */
+ t = i;
+ t = ((x - t * DP1) - t * DP2) - t * DP3;
+ return t;
+}
+
+float complex catanf(float complex z)
+{
+ float complex w;
+ float a, t, x, x2, y;
+
+ x = crealf(z);
+ y = cimagf(z);
+
+ if ((x == 0.0f) && (y > 1.0f))
+ goto ovrf;
+
+ x2 = x * x;
+ a = 1.0f - x2 - (y * y);
+ if (a == 0.0f)
+ goto ovrf;
+
+ t = 0.5f * atan2f(2.0f * x, a);
+ w = _redupif(t);
+
+ t = y - 1.0f;
+ a = x2 + (t * t);
+ if (a == 0.0f)
+ goto ovrf;
+
+ t = y + 1.0f;
+ a = (x2 + (t * t))/a;
+ w = w + (0.25f * logf (a)) * I;
+ return w;
+
+ovrf:
+ // FIXME
+ w = MAXNUMF + MAXNUMF * I;
+ return w;
+}
diff --git a/src/complex/catanh.c b/src/complex/catanh.c
new file mode 100644
index 00000000..b1628022
--- /dev/null
+++ b/src/complex/catanh.c
@@ -0,0 +1,9 @@
+#include "libm.h"
+
+/* atanh = -i atan(i z) */
+
+double complex catanh(double complex z)
+{
+ z = catan(cpack(-cimag(z), creal(z)));
+ return cpack(cimag(z), -creal(z));
+}
diff --git a/src/complex/catanhf.c b/src/complex/catanhf.c
new file mode 100644
index 00000000..e1d1e648
--- /dev/null
+++ b/src/complex/catanhf.c
@@ -0,0 +1,7 @@
+#include "libm.h"
+
+float complex catanhf(float complex z)
+{
+ z = catanf(cpackf(-cimagf(z), crealf(z)));
+ return cpackf(cimagf(z), -crealf(z));
+}
diff --git a/src/complex/catanhl.c b/src/complex/catanhl.c
new file mode 100644
index 00000000..0a9374a3
--- /dev/null
+++ b/src/complex/catanhl.c
@@ -0,0 +1,14 @@
+#include "libm.h"
+
+#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
+long double complex catanhl(long double complex z)
+{
+ return catanh(z);
+}
+#else
+long double complex catanhl(long double complex z)
+{
+ z = catanl(cpackl(-cimagl(z), creall(z)));
+ return cpackl(cimagl(z), -creall(z));
+}
+#endif
diff --git a/src/complex/catanl.c b/src/complex/catanl.c
new file mode 100644
index 00000000..5ace7704
--- /dev/null
+++ b/src/complex/catanl.c
@@ -0,0 +1,126 @@
+/* origin: OpenBSD /usr/src/lib/libm/src/s_catanl.c */
+/*
+ * Copyright (c) 2008 Stephen L. Moshier <steve@moshier.net>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+/*
+ * Complex circular arc tangent
+ *
+ *
+ * SYNOPSIS:
+ *
+ * long double complex catanl();
+ * long double complex z, w;
+ *
+ * w = catanl( z );
+ *
+ *
+ * DESCRIPTION:
+ *
+ * If
+ * z = x + iy,
+ *
+ * then
+ * 1 ( 2x )
+ * Re w = - arctan(-----------) + k PI
+ * 2 ( 2 2)
+ * (1 - x - y )
+ *
+ * ( 2 2)
+ * 1 (x + (y+1) )
+ * Im w = - log(------------)
+ * 4 ( 2 2)
+ * (x + (y-1) )
+ *
+ * Where k is an arbitrary integer.
+ *
+ *
+ * ACCURACY:
+ *
+ * Relative error:
+ * arithmetic domain # trials peak rms
+ * DEC -10,+10 5900 1.3e-16 7.8e-18
+ * IEEE -10,+10 30000 2.3e-15 8.5e-17
+ * The check catan( ctan(z) ) = z, with |x| and |y| < PI/2,
+ * had peak relative error 1.5e-16, rms relative error
+ * 2.9e-17. See also clog().
+ */
+
+#include <complex.h>
+#include <float.h>
+#include "libm.h"
+
+#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
+long double complex catanl(long double complex z)
+{
+ return catan(z);
+}
+#else
+static const long double PIL = 3.141592653589793238462643383279502884197169L;
+static const long double DP1 = 3.14159265358979323829596852490908531763125L;
+static const long double DP2 = 1.6667485837041756656403424829301998703007e-19L;
+static const long double DP3 = 1.8830410776607851167459095484560349402753e-39L;
+
+static long double redupil(long double x)
+{
+ long double t;
+ long i;
+
+ t = x / PIL;
+ if (t >= 0.0L)
+ t += 0.5L;
+ else
+ t -= 0.5L;
+
+ i = t; /* the multiple */
+ t = i;
+ t = ((x - t * DP1) - t * DP2) - t * DP3;
+ return t;
+}
+
+long double complex catanl(long double complex z)
+{
+ long double complex w;
+ long double a, t, x, x2, y;
+
+ x = creall(z);
+ y = cimagl(z);
+
+ if ((x == 0.0L) && (y > 1.0L))
+ goto ovrf;
+
+ x2 = x * x;
+ a = 1.0L - x2 - (y * y);
+ if (a == 0.0L)
+ goto ovrf;
+
+ t = atan2l(2.0L * x, a) * 0.5L;
+ w = redupil(t);
+
+ t = y - 1.0L;
+ a = x2 + (t * t);
+ if (a == 0.0L)
+ goto ovrf;
+
+ t = y + 1.0L;
+ a = (x2 + (t * t)) / a;
+ w = w + (0.25L * logl(a)) * I;
+ return w;
+
+ovrf:
+ // FIXME
+ w = LDBL_MAX + LDBL_MAX * I;
+ return w;
+}
+#endif
diff --git a/src/complex/ccos.c b/src/complex/ccos.c
new file mode 100644
index 00000000..5754c238
--- /dev/null
+++ b/src/complex/ccos.c
@@ -0,0 +1,8 @@
+#include "libm.h"
+
+/* cos(z) = cosh(i z) */
+
+double complex ccos(double complex z)
+{
+ return ccosh(cpack(-cimag(z), creal(z)));
+}
diff --git a/src/complex/ccosf.c b/src/complex/ccosf.c
new file mode 100644
index 00000000..9b72c4f4
--- /dev/null
+++ b/src/complex/ccosf.c
@@ -0,0 +1,6 @@
+#include "libm.h"
+
+float complex ccosf(float complex z)
+{
+ return ccoshf(cpackf(-cimagf(z), crealf(z)));
+}
diff --git a/src/complex/ccosh.c b/src/complex/ccosh.c
new file mode 100644
index 00000000..81f29432
--- /dev/null
+++ b/src/complex/ccosh.c
@@ -0,0 +1,140 @@
+/* origin: FreeBSD /usr/src/lib/msun/src/s_ccosh.c */
+/*-
+ * Copyright (c) 2005 Bruce D. Evans and Steven G. Kargl
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice unmodified, this list of conditions, and the following
+ * disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+/*
+ * Hyperbolic cosine of a complex argument z = x + i y.
+ *
+ * cosh(z) = cosh(x+iy)
+ * = cosh(x) cos(y) + i sinh(x) sin(y).
+ *
+ * Exceptional values are noted in the comments within the source code.
+ * These values and the return value were taken from n1124.pdf.
+ */
+
+#include "libm.h"
+
+static const double huge = 0x1p1023;
+
+double complex ccosh(double complex z)
+{
+ double x, y, h;
+ int32_t hx, hy, ix, iy, lx, ly;
+
+ x = creal(z);
+ y = cimag(z);
+
+ EXTRACT_WORDS(hx, lx, x);
+ EXTRACT_WORDS(hy, ly, y);
+
+ ix = 0x7fffffff & hx;
+ iy = 0x7fffffff & hy;
+
+ /* Handle the nearly-non-exceptional cases where x and y are finite. */
+ if (ix < 0x7ff00000 && iy < 0x7ff00000) {
+ if ((iy | ly) == 0)
+ return cpack(cosh(x), x * y);
+ if (ix < 0x40360000) /* small x: normal case */
+ return cpack(cosh(x) * cos(y), sinh(x) * sin(y));
+
+ /* |x| >= 22, so cosh(x) ~= exp(|x|) */
+ if (ix < 0x40862e42) {
+ /* x < 710: exp(|x|) won't overflow */
+ h = exp(fabs(x)) * 0.5;
+ return cpack(h * cos(y), copysign(h, x) * sin(y));
+ } else if (ix < 0x4096bbaa) {
+ /* x < 1455: scale to avoid overflow */
+ z = __ldexp_cexp(cpack(fabs(x), y), -1);
+ return cpack(creal(z), cimag(z) * copysign(1, x));
+ } else {
+ /* x >= 1455: the result always overflows */
+ h = huge * x;
+ return cpack(h * h * cos(y), h * sin(y));
+ }
+ }
+
+ /*
+ * cosh(+-0 +- I Inf) = dNaN + I sign(d(+-0, dNaN))0.
+ * The sign of 0 in the result is unspecified. Choice = normally
+ * the same as dNaN. Raise the invalid floating-point exception.
+ *
+ * cosh(+-0 +- I NaN) = d(NaN) + I sign(d(+-0, NaN))0.
+ * The sign of 0 in the result is unspecified. Choice = normally
+ * the same as d(NaN).
+ */
+ if ((ix | lx) == 0 && iy >= 0x7ff00000)
+ return cpack(y - y, copysign(0, x * (y - y)));
+
+ /*
+ * cosh(+-Inf +- I 0) = +Inf + I (+-)(+-)0.
+ *
+ * cosh(NaN +- I 0) = d(NaN) + I sign(d(NaN, +-0))0.
+ * The sign of 0 in the result is unspecified.
+ */
+ if ((iy | ly) == 0 && ix >= 0x7ff00000) {
+ if (((hx & 0xfffff) | lx) == 0)
+ return cpack(x * x, copysign(0, x) * y);
+ return cpack(x * x, copysign(0, (x + x) * y));
+ }
+
+ /*
+ * cosh(x +- I Inf) = dNaN + I dNaN.
+ * Raise the invalid floating-point exception for finite nonzero x.
+ *
+ * cosh(x + I NaN) = d(NaN) + I d(NaN).
+ * Optionally raises the invalid floating-point exception for finite
+ * nonzero x. Choice = don't raise (except for signaling NaNs).
+ */
+ if (ix < 0x7ff00000 && iy >= 0x7ff00000)
+ return cpack(y - y, x * (y - y));
+
+ /*
+ * cosh(+-Inf + I NaN) = +Inf + I d(NaN).
+ *
+ * cosh(+-Inf +- I Inf) = +Inf + I dNaN.
+ * The sign of Inf in the result is unspecified. Choice = always +.
+ * Raise the invalid floating-point exception.
+ *
+ * cosh(+-Inf + I y) = +Inf cos(y) +- I Inf sin(y)
+ */
+ if (ix >= 0x7ff00000 && ((hx & 0xfffff) | lx) == 0) {
+ if (iy >= 0x7ff00000)
+ return cpack(x * x, x * (y - y));
+ return cpack((x * x) * cos(y), x * sin(y));
+ }
+
+ /*
+ * cosh(NaN + I NaN) = d(NaN) + I d(NaN).
+ *
+ * cosh(NaN +- I Inf) = d(NaN) + I d(NaN).
+ * Optionally raises the invalid floating-point exception.
+ * Choice = raise.
+ *
+ * cosh(NaN + I y) = d(NaN) + I d(NaN).
+ * Optionally raises the invalid floating-point exception for finite
+ * nonzero y. Choice = don't raise (except for signaling NaNs).
+ */
+ return cpack((x * x) * (y - y), (x + x) * (y - y));
+}
diff --git a/src/complex/ccoshf.c b/src/complex/ccoshf.c
new file mode 100644
index 00000000..683e77fa
--- /dev/null
+++ b/src/complex/ccoshf.c
@@ -0,0 +1,90 @@
+/* origin: FreeBSD /usr/src/lib/msun/src/s_ccoshf.c */
+/*-
+ * Copyright (c) 2005 Bruce D. Evans and Steven G. Kargl
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice unmodified, this list of conditions, and the following
+ * disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+/*
+ * Hyperbolic cosine of a complex argument. See s_ccosh.c for details.
+ */
+
+#include "libm.h"
+
+static const float huge = 0x1p127;
+
+float complex ccoshf(float complex z)
+{
+ float x, y, h;
+ int32_t hx, hy, ix, iy;
+
+ x = crealf(z);
+ y = cimagf(z);
+
+ GET_FLOAT_WORD(hx, x);
+ GET_FLOAT_WORD(hy, y);
+
+ ix = 0x7fffffff & hx;
+ iy = 0x7fffffff & hy;
+
+ if (ix < 0x7f800000 && iy < 0x7f800000) {
+ if (iy == 0)
+ return cpackf(coshf(x), x * y);
+ if (ix < 0x41100000) /* small x: normal case */
+ return cpackf(coshf(x) * cosf(y), sinhf(x) * sinf(y));
+
+ /* |x| >= 9, so cosh(x) ~= exp(|x|) */
+ if (ix < 0x42b17218) {
+ /* x < 88.7: expf(|x|) won't overflow */
+ h = expf(fabsf(x)) * 0.5f;
+ return cpackf(h * cosf(y), copysignf(h, x) * sinf(y));
+ } else if (ix < 0x4340b1e7) {
+ /* x < 192.7: scale to avoid overflow */
+ z = __ldexp_cexpf(cpackf(fabsf(x), y), -1);
+ return cpackf(crealf(z), cimagf(z) * copysignf(1, x));
+ } else {
+ /* x >= 192.7: the result always overflows */
+ h = huge * x;
+ return cpackf(h * h * cosf(y), h * sinf(y));
+ }
+ }
+
+ if (ix == 0 && iy >= 0x7f800000)
+ return cpackf(y - y, copysignf(0, x * (y - y)));
+
+ if (iy == 0 && ix >= 0x7f800000) {
+ if ((hx & 0x7fffff) == 0)
+ return cpackf(x * x, copysignf(0, x) * y);
+ return cpackf(x * x, copysignf(0, (x + x) * y));
+ }
+
+ if (ix < 0x7f800000 && iy >= 0x7f800000)
+ return cpackf(y - y, x * (y - y));
+
+ if (ix >= 0x7f800000 && (hx & 0x7fffff) == 0) {
+ if (iy >= 0x7f800000)
+ return cpackf(x * x, x * (y - y));
+ return cpackf((x * x) * cosf(y), x * sinf(y));
+ }
+
+ return cpackf((x * x) * (y - y), (x + x) * (y - y));
+}
diff --git a/src/complex/ccoshl.c b/src/complex/ccoshl.c
new file mode 100644
index 00000000..9b2aed9e
--- /dev/null
+++ b/src/complex/ccoshl.c
@@ -0,0 +1,7 @@
+#include "libm.h"
+
+//FIXME
+long double complex ccoshl(long double complex z)
+{
+ return ccosh(z);
+}
diff --git a/src/complex/ccosl.c b/src/complex/ccosl.c
new file mode 100644
index 00000000..e37825a9
--- /dev/null
+++ b/src/complex/ccosl.c
@@ -0,0 +1,13 @@
+#include "libm.h"
+
+#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
+long double complex ccosl(long double complex z)
+{
+ return ccos(z);
+}
+#else
+long double complex ccosl(long double complex z)
+{
+ return ccoshl(cpackl(-cimagl(z), creall(z)));
+}
+#endif
diff --git a/src/complex/cexp.c b/src/complex/cexp.c
new file mode 100644
index 00000000..3b8bb752
--- /dev/null
+++ b/src/complex/cexp.c
@@ -0,0 +1,83 @@
+/* origin: FreeBSD /usr/src/lib/msun/src/s_cexp.c */
+/*-
+ * Copyright (c) 2011 David Schultz <das@FreeBSD.ORG>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include "libm.h"
+
+static const uint32_t
+exp_ovfl = 0x40862e42, /* high bits of MAX_EXP * ln2 ~= 710 */
+cexp_ovfl = 0x4096b8e4; /* (MAX_EXP - MIN_DENORM_EXP) * ln2 */
+
+double complex cexp(double complex z)
+{
+ double x, y, exp_x;
+ uint32_t hx, hy, lx, ly;
+
+ x = creal(z);
+ y = cimag(z);
+
+ EXTRACT_WORDS(hy, ly, y);
+ hy &= 0x7fffffff;
+
+ /* cexp(x + I 0) = exp(x) + I 0 */
+ if ((hy | ly) == 0)
+ return cpack(exp(x), y);
+ EXTRACT_WORDS(hx, lx, x);
+ /* cexp(0 + I y) = cos(y) + I sin(y) */
+ if (((hx & 0x7fffffff) | lx) == 0)
+ return cpack(cos(y), sin(y));
+
+ if (hy >= 0x7ff00000) {
+ if (lx != 0 || (hx & 0x7fffffff) != 0x7ff00000) {
+ /* cexp(finite|NaN +- I Inf|NaN) = NaN + I NaN */
+ return cpack(y - y, y - y);
+ } else if (hx & 0x80000000) {
+ /* cexp(-Inf +- I Inf|NaN) = 0 + I 0 */
+ return cpack(0.0, 0.0);
+ } else {
+ /* cexp(+Inf +- I Inf|NaN) = Inf + I NaN */
+ return cpack(x, y - y);
+ }
+ }
+
+ if (hx >= exp_ovfl && hx <= cexp_ovfl) {
+ /*
+ * x is between 709.7 and 1454.3, so we must scale to avoid
+ * overflow in exp(x).
+ */
+ return __ldexp_cexp(z, 0);
+ } else {
+ /*
+ * Cases covered here:
+ * - x < exp_ovfl and exp(x) won't overflow (common case)
+ * - x > cexp_ovfl, so exp(x) * s overflows for all s > 0
+ * - x = +-Inf (generated by exp())
+ * - x = NaN (spurious inexact exception from y)
+ */
+ exp_x = exp(x);
+ return cpack(exp_x * cos(y), exp_x * sin(y));
+ }
+}
diff --git a/src/complex/cexpf.c b/src/complex/cexpf.c
new file mode 100644
index 00000000..0cf13a3d
--- /dev/null
+++ b/src/complex/cexpf.c
@@ -0,0 +1,83 @@
+/* origin: FreeBSD /usr/src/lib/msun/src/s_cexpf.c */
+/*-
+ * Copyright (c) 2011 David Schultz <das@FreeBSD.ORG>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include "libm.h"
+
+static const uint32_t
+exp_ovfl = 0x42b17218, /* MAX_EXP * ln2 ~= 88.722839355 */
+cexp_ovfl = 0x43400074; /* (MAX_EXP - MIN_DENORM_EXP) * ln2 */
+
+float complex cexpf(float complex z)
+{
+ float x, y, exp_x;
+ uint32_t hx, hy;
+
+ x = crealf(z);
+ y = cimagf(z);
+
+ GET_FLOAT_WORD(hy, y);
+ hy &= 0x7fffffff;
+
+ /* cexp(x + I 0) = exp(x) + I 0 */
+ if (hy == 0)
+ return cpackf(expf(x), y);
+ GET_FLOAT_WORD(hx, x);
+ /* cexp(0 + I y) = cos(y) + I sin(y) */
+ if ((hx & 0x7fffffff) == 0)
+ return cpackf(cosf(y), sinf(y));
+
+ if (hy >= 0x7f800000) {
+ if ((hx & 0x7fffffff) != 0x7f800000) {
+ /* cexp(finite|NaN +- I Inf|NaN) = NaN + I NaN */
+ return cpackf(y - y, y - y);
+ } else if (hx & 0x80000000) {
+ /* cexp(-Inf +- I Inf|NaN) = 0 + I 0 */
+ return cpackf(0.0, 0.0);
+ } else {
+ /* cexp(+Inf +- I Inf|NaN) = Inf + I NaN */
+ return cpackf(x, y - y);
+ }
+ }
+
+ if (hx >= exp_ovfl && hx <= cexp_ovfl) {
+ /*
+ * x is between 88.7 and 192, so we must scale to avoid
+ * overflow in expf(x).
+ */
+ return __ldexp_cexpf(z, 0);
+ } else {
+ /*
+ * Cases covered here:
+ * - x < exp_ovfl and exp(x) won't overflow (common case)
+ * - x > cexp_ovfl, so exp(x) * s overflows for all s > 0
+ * - x = +-Inf (generated by exp())
+ * - x = NaN (spurious inexact exception from y)
+ */
+ exp_x = expf(x);
+ return cpackf(exp_x * cosf(y), exp_x * sinf(y));
+ }
+}
diff --git a/src/complex/cexpl.c b/src/complex/cexpl.c
new file mode 100644
index 00000000..a27f85c0
--- /dev/null
+++ b/src/complex/cexpl.c
@@ -0,0 +1,7 @@
+#include "libm.h"
+
+//FIXME
+long double complex cexpl(long double complex z)
+{
+ return cexp(z);
+}
diff --git a/src/complex/cimag.c b/src/complex/cimag.c
new file mode 100644
index 00000000..5e1ad46b
--- /dev/null
+++ b/src/complex/cimag.c
@@ -0,0 +1,7 @@
+#include "libm.h"
+
+double (cimag)(double complex z)
+{
+ union dcomplex u = {z};
+ return u.a[1];
+}
diff --git a/src/complex/cimagf.c b/src/complex/cimagf.c
new file mode 100644
index 00000000..99fffc58
--- /dev/null
+++ b/src/complex/cimagf.c
@@ -0,0 +1,7 @@
+#include "libm.h"
+
+float (cimagf)(float complex z)
+{
+ union fcomplex u = {z};
+ return u.a[1];
+}
diff --git a/src/complex/cimagl.c b/src/complex/cimagl.c
new file mode 100644
index 00000000..d9a0780c
--- /dev/null
+++ b/src/complex/cimagl.c
@@ -0,0 +1,7 @@
+#include "libm.h"
+
+long double (cimagl)(long double complex z)
+{
+ union lcomplex u = {z};
+ return u.a[1];
+}
diff --git a/src/complex/clog.c b/src/complex/clog.c
new file mode 100644
index 00000000..6f10a115
--- /dev/null
+++ b/src/complex/clog.c
@@ -0,0 +1,14 @@
+#include "libm.h"
+
+// FIXME
+
+/* log(z) = log(|z|) + i arg(z) */
+
+double complex clog(double complex z)
+{
+ double r, phi;
+
+ r = cabs(z);
+ phi = carg(z);
+ return cpack(log(r), phi);
+}
diff --git a/src/complex/clogf.c b/src/complex/clogf.c
new file mode 100644
index 00000000..f3aec54d
--- /dev/null
+++ b/src/complex/clogf.c
@@ -0,0 +1,12 @@
+#include "libm.h"
+
+// FIXME
+
+float complex clogf(float complex z)
+{
+ float r, phi;
+
+ r = cabsf(z);
+ phi = cargf(z);
+ return cpackf(logf(r), phi);
+}
diff --git a/src/complex/clogl.c b/src/complex/clogl.c
new file mode 100644
index 00000000..5b84ba59
--- /dev/null
+++ b/src/complex/clogl.c
@@ -0,0 +1,18 @@
+#include "libm.h"
+
+#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
+long double complex clogl(long double complex z)
+{
+ return clog(z);
+}
+#else
+// FIXME
+long double complex clogl(long double complex z)
+{
+ long double r, phi;
+
+ r = cabsl(z);
+ phi = cargl(z);
+ return cpackl(logl(r), phi);
+}
+#endif
diff --git a/src/complex/conj.c b/src/complex/conj.c
new file mode 100644
index 00000000..4aceea7b
--- /dev/null
+++ b/src/complex/conj.c
@@ -0,0 +1,6 @@
+#include "libm.h"
+
+double complex conj(double complex z)
+{
+ return cpack(creal(z), -cimag(z));
+}
diff --git a/src/complex/conjf.c b/src/complex/conjf.c
new file mode 100644
index 00000000..31556800
--- /dev/null
+++ b/src/complex/conjf.c
@@ -0,0 +1,6 @@
+#include "libm.h"
+
+float complex conjf(float complex z)
+{
+ return cpackf(crealf(z), -cimagf(z));
+}
diff --git a/src/complex/conjl.c b/src/complex/conjl.c
new file mode 100644
index 00000000..01332262
--- /dev/null
+++ b/src/complex/conjl.c
@@ -0,0 +1,6 @@
+#include "libm.h"
+
+long double complex conjl(long double complex z)
+{
+ return cpackl(creall(z), -cimagl(z));
+}
diff --git a/src/complex/cpow.c b/src/complex/cpow.c
new file mode 100644
index 00000000..f863588f
--- /dev/null
+++ b/src/complex/cpow.c
@@ -0,0 +1,8 @@
+#include "libm.h"
+
+/* pow(z, c) = exp(c log(z)), See C99 G.6.4.1 */
+
+double complex cpow(double complex z, double complex c)
+{
+ return cexp(c * clog(z));
+}
diff --git a/src/complex/cpowf.c b/src/complex/cpowf.c
new file mode 100644
index 00000000..53c65dcb
--- /dev/null
+++ b/src/complex/cpowf.c
@@ -0,0 +1,6 @@
+#include "libm.h"
+
+float complex cpowf(float complex z, float complex c)
+{
+ return cexpf(c * clogf(z));
+}
diff --git a/src/complex/cpowl.c b/src/complex/cpowl.c
new file mode 100644
index 00000000..c1a80a7b
--- /dev/null
+++ b/src/complex/cpowl.c
@@ -0,0 +1,13 @@
+#include "libm.h"
+
+#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
+long double complex cpowl(long double complex z, long double complex c)
+{
+ return cpow(z, c);
+}
+#else
+long double complex cpowl(long double complex z, long double complex c)
+{
+ return cexpl(c * clogl(z));
+}
+#endif
diff --git a/src/complex/cproj.c b/src/complex/cproj.c
new file mode 100644
index 00000000..1cf9bb94
--- /dev/null
+++ b/src/complex/cproj.c
@@ -0,0 +1,8 @@
+#include "libm.h"
+
+double complex cproj(double complex z)
+{
+ if (isinf(creal(z)) || isinf(cimag(z)))
+ return cpack(INFINITY, copysign(0.0, creal(z)));
+ return z;
+}
diff --git a/src/complex/cprojf.c b/src/complex/cprojf.c
new file mode 100644
index 00000000..71129743
--- /dev/null
+++ b/src/complex/cprojf.c
@@ -0,0 +1,8 @@
+#include "libm.h"
+
+float complex cprojf(float complex z)
+{
+ if (isinf(crealf(z)) || isinf(cimagf(z)))
+ return cpackf(INFINITY, copysignf(0.0, crealf(z)));
+ return z;
+}
diff --git a/src/complex/cprojl.c b/src/complex/cprojl.c
new file mode 100644
index 00000000..72e50cf5
--- /dev/null
+++ b/src/complex/cprojl.c
@@ -0,0 +1,15 @@
+#include "libm.h"
+
+#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
+long double complex cprojl(long double complex z)
+{
+ return cproj(z);
+}
+#else
+long double complex cprojl(long double complex z)
+{
+ if (isinf(creall(z)) || isinf(cimagl(z)))
+ return cpackl(INFINITY, copysignl(0.0, creall(z)));
+ return z;
+}
+#endif
diff --git a/src/complex/creal.c b/src/complex/creal.c
new file mode 100644
index 00000000..2bb91812
--- /dev/null
+++ b/src/complex/creal.c
@@ -0,0 +1,6 @@
+#include <complex.h>
+
+double creal(double complex z)
+{
+ return z;
+}
diff --git a/src/complex/crealf.c b/src/complex/crealf.c
new file mode 100644
index 00000000..078232f0
--- /dev/null
+++ b/src/complex/crealf.c
@@ -0,0 +1,6 @@
+#include <complex.h>
+
+float crealf(float complex z)
+{
+ return z;
+}
diff --git a/src/complex/creall.c b/src/complex/creall.c
new file mode 100644
index 00000000..56e64097
--- /dev/null
+++ b/src/complex/creall.c
@@ -0,0 +1,6 @@
+#include <complex.h>
+
+long double creall(long double complex z)
+{
+ return z;
+}
diff --git a/src/complex/csin.c b/src/complex/csin.c
new file mode 100644
index 00000000..246a4595
--- /dev/null
+++ b/src/complex/csin.c
@@ -0,0 +1,9 @@
+#include "libm.h"
+
+/* sin(z) = -i sinh(i z) */
+
+double complex csin(double complex z)
+{
+ z = csinh(cpack(-cimag(z), creal(z)));
+ return cpack(cimag(z), -creal(z));
+}
diff --git a/src/complex/csinf.c b/src/complex/csinf.c
new file mode 100644
index 00000000..3aabe8f8
--- /dev/null
+++ b/src/complex/csinf.c
@@ -0,0 +1,7 @@
+#include "libm.h"
+
+float complex csinf(float complex z)
+{
+ z = csinhf(cpackf(-cimagf(z), crealf(z)));
+ return cpackf(cimagf(z), -crealf(z));
+}
diff --git a/src/complex/csinh.c b/src/complex/csinh.c
new file mode 100644
index 00000000..fe16f06b
--- /dev/null
+++ b/src/complex/csinh.c
@@ -0,0 +1,141 @@
+/* origin: FreeBSD /usr/src/lib/msun/src/s_csinh.c */
+/*-
+ * Copyright (c) 2005 Bruce D. Evans and Steven G. Kargl
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice unmodified, this list of conditions, and the following
+ * disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+/*
+ * Hyperbolic sine of a complex argument z = x + i y.
+ *
+ * sinh(z) = sinh(x+iy)
+ * = sinh(x) cos(y) + i cosh(x) sin(y).
+ *
+ * Exceptional values are noted in the comments within the source code.
+ * These values and the return value were taken from n1124.pdf.
+ */
+
+#include "libm.h"
+
+static const double huge = 0x1p1023;
+
+double complex csinh(double complex z)
+{
+ double x, y, h;
+ int32_t hx, hy, ix, iy, lx, ly;
+
+ x = creal(z);
+ y = cimag(z);
+
+ EXTRACT_WORDS(hx, lx, x);
+ EXTRACT_WORDS(hy, ly, y);
+
+ ix = 0x7fffffff & hx;
+ iy = 0x7fffffff & hy;
+
+ /* Handle the nearly-non-exceptional cases where x and y are finite. */
+ if (ix < 0x7ff00000 && iy < 0x7ff00000) {
+ if ((iy | ly) == 0)
+ return cpack(sinh(x), y);
+ if (ix < 0x40360000) /* small x: normal case */
+ return cpack(sinh(x) * cos(y), cosh(x) * sin(y));
+
+ /* |x| >= 22, so cosh(x) ~= exp(|x|) */
+ if (ix < 0x40862e42) {
+ /* x < 710: exp(|x|) won't overflow */
+ h = exp(fabs(x)) * 0.5;
+ return cpack(copysign(h, x) * cos(y), h * sin(y));
+ } else if (ix < 0x4096bbaa) {
+ /* x < 1455: scale to avoid overflow */
+ z = __ldexp_cexp(cpack(fabs(x), y), -1);
+ return cpack(creal(z) * copysign(1, x), cimag(z));
+ } else {
+ /* x >= 1455: the result always overflows */
+ h = huge * x;
+ return cpack(h * cos(y), h * h * sin(y));
+ }
+ }
+
+ /*
+ * sinh(+-0 +- I Inf) = sign(d(+-0, dNaN))0 + I dNaN.
+ * The sign of 0 in the result is unspecified. Choice = normally
+ * the same as dNaN. Raise the invalid floating-point exception.
+ *
+ * sinh(+-0 +- I NaN) = sign(d(+-0, NaN))0 + I d(NaN).
+ * The sign of 0 in the result is unspecified. Choice = normally
+ * the same as d(NaN).
+ */
+ if ((ix | lx) == 0 && iy >= 0x7ff00000)
+ return cpack(copysign(0, x * (y - y)), y - y);
+
+ /*
+ * sinh(+-Inf +- I 0) = +-Inf + I +-0.
+ *
+ * sinh(NaN +- I 0) = d(NaN) + I +-0.
+ */
+ if ((iy | ly) == 0 && ix >= 0x7ff00000) {
+ if (((hx & 0xfffff) | lx) == 0)
+ return cpack(x, y);
+ return cpack(x, copysign(0, y));
+ }
+
+ /*
+ * sinh(x +- I Inf) = dNaN + I dNaN.
+ * Raise the invalid floating-point exception for finite nonzero x.
+ *
+ * sinh(x + I NaN) = d(NaN) + I d(NaN).
+ * Optionally raises the invalid floating-point exception for finite
+ * nonzero x. Choice = don't raise (except for signaling NaNs).
+ */
+ if (ix < 0x7ff00000 && iy >= 0x7ff00000)
+ return cpack(y - y, x * (y - y));
+
+ /*
+ * sinh(+-Inf + I NaN) = +-Inf + I d(NaN).
+ * The sign of Inf in the result is unspecified. Choice = normally
+ * the same as d(NaN).
+ *
+ * sinh(+-Inf +- I Inf) = +Inf + I dNaN.
+ * The sign of Inf in the result is unspecified. Choice = always +.
+ * Raise the invalid floating-point exception.
+ *
+ * sinh(+-Inf + I y) = +-Inf cos(y) + I Inf sin(y)
+ */
+ if (ix >= 0x7ff00000 && ((hx & 0xfffff) | lx) == 0) {
+ if (iy >= 0x7ff00000)
+ return cpack(x * x, x * (y - y));
+ return cpack(x * cos(y), INFINITY * sin(y));
+ }
+
+ /*
+ * sinh(NaN + I NaN) = d(NaN) + I d(NaN).
+ *
+ * sinh(NaN +- I Inf) = d(NaN) + I d(NaN).
+ * Optionally raises the invalid floating-point exception.
+ * Choice = raise.
+ *
+ * sinh(NaN + I y) = d(NaN) + I d(NaN).
+ * Optionally raises the invalid floating-point exception for finite
+ * nonzero y. Choice = don't raise (except for signaling NaNs).
+ */
+ return cpack((x * x) * (y - y), (x + x) * (y - y));
+}
diff --git a/src/complex/csinhf.c b/src/complex/csinhf.c
new file mode 100644
index 00000000..bbb116c2
--- /dev/null
+++ b/src/complex/csinhf.c
@@ -0,0 +1,90 @@
+/* origin: FreeBSD /usr/src/lib/msun/src/s_csinhf.c */
+/*-
+ * Copyright (c) 2005 Bruce D. Evans and Steven G. Kargl
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice unmodified, this list of conditions, and the following
+ * disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+/*
+ * Hyperbolic sine of a complex argument z. See s_csinh.c for details.
+ */
+
+#include "libm.h"
+
+static const float huge = 0x1p127;
+
+float complex csinhf(float complex z)
+{
+ float x, y, h;
+ int32_t hx, hy, ix, iy;
+
+ x = crealf(z);
+ y = cimagf(z);
+
+ GET_FLOAT_WORD(hx, x);
+ GET_FLOAT_WORD(hy, y);
+
+ ix = 0x7fffffff & hx;
+ iy = 0x7fffffff & hy;
+
+ if (ix < 0x7f800000 && iy < 0x7f800000) {
+ if (iy == 0)
+ return cpackf(sinhf(x), y);
+ if (ix < 0x41100000) /* small x: normal case */
+ return cpackf(sinhf(x) * cosf(y), coshf(x) * sinf(y));
+
+ /* |x| >= 9, so cosh(x) ~= exp(|x|) */
+ if (ix < 0x42b17218) {
+ /* x < 88.7: expf(|x|) won't overflow */
+ h = expf(fabsf(x)) * 0.5f;
+ return cpackf(copysignf(h, x) * cosf(y), h * sinf(y));
+ } else if (ix < 0x4340b1e7) {
+ /* x < 192.7: scale to avoid overflow */
+ z = __ldexp_cexpf(cpackf(fabsf(x), y), -1);
+ return cpackf(crealf(z) * copysignf(1, x), cimagf(z));
+ } else {
+ /* x >= 192.7: the result always overflows */
+ h = huge * x;
+ return cpackf(h * cosf(y), h * h * sinf(y));
+ }
+ }
+
+ if (ix == 0 && iy >= 0x7f800000)
+ return cpackf(copysignf(0, x * (y - y)), y - y);
+
+ if (iy == 0 && ix >= 0x7f800000) {
+ if ((hx & 0x7fffff) == 0)
+ return cpackf(x, y);
+ return cpackf(x, copysignf(0, y));
+ }
+
+ if (ix < 0x7f800000 && iy >= 0x7f800000)
+ return cpackf(y - y, x * (y - y));
+
+ if (ix >= 0x7f800000 && (hx & 0x7fffff) == 0) {
+ if (iy >= 0x7f800000)
+ return cpackf(x * x, x * (y - y));
+ return cpackf(x * cosf(y), INFINITY * sinf(y));
+ }
+
+ return cpackf((x * x) * (y - y), (x + x) * (y - y));
+}
diff --git a/src/complex/csinhl.c b/src/complex/csinhl.c
new file mode 100644
index 00000000..c566653b
--- /dev/null
+++ b/src/complex/csinhl.c
@@ -0,0 +1,7 @@
+#include "libm.h"
+
+//FIXME
+long double complex csinhl(long double complex z)
+{
+ return csinh(z);
+}
diff --git a/src/complex/csinl.c b/src/complex/csinl.c
new file mode 100644
index 00000000..4ad86745
--- /dev/null
+++ b/src/complex/csinl.c
@@ -0,0 +1,14 @@
+#include "libm.h"
+
+#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
+long double complex csinl(long double complex z)
+{
+ return csin(z);
+}
+#else
+long double complex csinl(long double complex z)
+{
+ z = csinhl(cpackl(-cimagl(z), creall(z)));
+ return cpackl(cimagl(z), -creall(z));
+}
+#endif
diff --git a/src/complex/csqrt.c b/src/complex/csqrt.c
new file mode 100644
index 00000000..21fb879d
--- /dev/null
+++ b/src/complex/csqrt.c
@@ -0,0 +1,100 @@
+/* origin: FreeBSD /usr/src/lib/msun/src/s_csqrt.c */
+/*-
+ * Copyright (c) 2007 David Schultz <das@FreeBSD.ORG>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include "libm.h"
+
+/*
+ * gcc doesn't implement complex multiplication or division correctly,
+ * so we need to handle infinities specially. We turn on this pragma to
+ * notify conforming c99 compilers that the fast-but-incorrect code that
+ * gcc generates is acceptable, since the special cases have already been
+ * handled.
+ */
+#pragma STDC CX_LIMITED_RANGE ON
+
+/* We risk spurious overflow for components >= DBL_MAX / (1 + sqrt(2)). */
+#define THRESH 0x1.a827999fcef32p+1022
+
+double complex csqrt(double complex z)
+{
+ double complex result;
+ double a, b;
+ double t;
+ int scale;
+
+ a = creal(z);
+ b = cimag(z);
+
+ /* Handle special cases. */
+ if (z == 0)
+ return cpack(0, b);
+ if (isinf(b))
+ return cpack(INFINITY, b);
+ if (isnan(a)) {
+ t = (b - b) / (b - b); /* raise invalid if b is not a NaN */
+ return cpack(a, t); /* return NaN + NaN i */
+ }
+ if (isinf(a)) {
+ /*
+ * csqrt(inf + NaN i) = inf + NaN i
+ * csqrt(inf + y i) = inf + 0 i
+ * csqrt(-inf + NaN i) = NaN +- inf i
+ * csqrt(-inf + y i) = 0 + inf i
+ */
+ if (signbit(a))
+ return cpack(fabs(b - b), copysign(a, b));
+ else
+ return cpack(a, copysign(b - b, b));
+ }
+ /*
+ * The remaining special case (b is NaN) is handled just fine by
+ * the normal code path below.
+ */
+
+ /* Scale to avoid overflow. */
+ if (fabs(a) >= THRESH || fabs(b) >= THRESH) {
+ a *= 0.25;
+ b *= 0.25;
+ scale = 1;
+ } else {
+ scale = 0;
+ }
+
+ /* Algorithm 312, CACM vol 10, Oct 1967. */
+ if (a >= 0) {
+ t = sqrt((a + hypot(a, b)) * 0.5);
+ result = cpack(t, b / (2 * t));
+ } else {
+ t = sqrt((-a + hypot(a, b)) * 0.5);
+ result = cpack(fabs(b) / (2 * t), copysign(t, b));
+ }
+
+ /* Rescale. */
+ if (scale)
+ result *= 2;
+ return result;
+}
diff --git a/src/complex/csqrtf.c b/src/complex/csqrtf.c
new file mode 100644
index 00000000..16487c23
--- /dev/null
+++ b/src/complex/csqrtf.c
@@ -0,0 +1,82 @@
+/* origin: FreeBSD /usr/src/lib/msun/src/s_csqrtf.c */
+/*-
+ * Copyright (c) 2007 David Schultz <das@FreeBSD.ORG>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include "libm.h"
+
+/*
+ * gcc doesn't implement complex multiplication or division correctly,
+ * so we need to handle infinities specially. We turn on this pragma to
+ * notify conforming c99 compilers that the fast-but-incorrect code that
+ * gcc generates is acceptable, since the special cases have already been
+ * handled.
+ */
+#pragma STDC CX_LIMITED_RANGE ON
+
+float complex csqrtf(float complex z)
+{
+ float a = crealf(z), b = cimagf(z);
+ double t;
+
+ /* Handle special cases. */
+ if (z == 0)
+ return cpackf(0, b);
+ if (isinf(b))
+ return cpackf(INFINITY, b);
+ if (isnan(a)) {
+ t = (b - b) / (b - b); /* raise invalid if b is not a NaN */
+ return cpackf(a, t); /* return NaN + NaN i */
+ }
+ if (isinf(a)) {
+ /*
+ * csqrtf(inf + NaN i) = inf + NaN i
+ * csqrtf(inf + y i) = inf + 0 i
+ * csqrtf(-inf + NaN i) = NaN +- inf i
+ * csqrtf(-inf + y i) = 0 + inf i
+ */
+ if (signbit(a))
+ return cpackf(fabsf(b - b), copysignf(a, b));
+ else
+ return cpackf(a, copysignf(b - b, b));
+ }
+ /*
+ * The remaining special case (b is NaN) is handled just fine by
+ * the normal code path below.
+ */
+
+ /*
+ * We compute t in double precision to avoid overflow and to
+ * provide correct rounding in nearly all cases.
+ * This is Algorithm 312, CACM vol 10, Oct 1967.
+ */
+ if (a >= 0) {
+ t = sqrt((a + hypot(a, b)) * 0.5);
+ return cpackf(t, b / (2.0 * t));
+ } else {
+ t = sqrt((-a + hypot(a, b)) * 0.5);
+ return cpackf(fabsf(b) / (2.0 * t), copysignf(t, b));
+ }
+}
diff --git a/src/complex/csqrtl.c b/src/complex/csqrtl.c
new file mode 100644
index 00000000..0600ef3b
--- /dev/null
+++ b/src/complex/csqrtl.c
@@ -0,0 +1,7 @@
+#include "libm.h"
+
+//FIXME
+long double complex csqrtl(long double complex z)
+{
+ return csqrt(z);
+}
diff --git a/src/complex/ctan.c b/src/complex/ctan.c
new file mode 100644
index 00000000..4741a4df
--- /dev/null
+++ b/src/complex/ctan.c
@@ -0,0 +1,9 @@
+#include "libm.h"
+
+/* tan(z) = -i tanh(i z) */
+
+double complex ctan(double complex z)
+{
+ z = ctanh(cpack(-cimag(z), creal(z)));
+ return cpack(cimag(z), -creal(z));
+}
diff --git a/src/complex/ctanf.c b/src/complex/ctanf.c
new file mode 100644
index 00000000..9bbeb051
--- /dev/null
+++ b/src/complex/ctanf.c
@@ -0,0 +1,7 @@
+#include "libm.h"
+
+float complex ctanf(float complex z)
+{
+ z = ctanhf(cpackf(-cimagf(z), crealf(z)));
+ return cpackf(cimagf(z), -crealf(z));
+}
diff --git a/src/complex/ctanh.c b/src/complex/ctanh.c
new file mode 100644
index 00000000..dd569fc3
--- /dev/null
+++ b/src/complex/ctanh.c
@@ -0,0 +1,127 @@
+/* origin: FreeBSD /usr/src/lib/msun/src/s_ctanh.c */
+/*-
+ * Copyright (c) 2011 David Schultz
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice unmodified, this list of conditions, and the following
+ * disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+/*
+ * Hyperbolic tangent of a complex argument z = x + i y.
+ *
+ * The algorithm is from:
+ *
+ * W. Kahan. Branch Cuts for Complex Elementary Functions or Much
+ * Ado About Nothing's Sign Bit. In The State of the Art in
+ * Numerical Analysis, pp. 165 ff. Iserles and Powell, eds., 1987.
+ *
+ * Method:
+ *
+ * Let t = tan(x)
+ * beta = 1/cos^2(y)
+ * s = sinh(x)
+ * rho = cosh(x)
+ *
+ * We have:
+ *
+ * tanh(z) = sinh(z) / cosh(z)
+ *
+ * sinh(x) cos(y) + i cosh(x) sin(y)
+ * = ---------------------------------
+ * cosh(x) cos(y) + i sinh(x) sin(y)
+ *
+ * cosh(x) sinh(x) / cos^2(y) + i tan(y)
+ * = -------------------------------------
+ * 1 + sinh^2(x) / cos^2(y)
+ *
+ * beta rho s + i t
+ * = ----------------
+ * 1 + beta s^2
+ *
+ * Modifications:
+ *
+ * I omitted the original algorithm's handling of overflow in tan(x) after
+ * verifying with nearpi.c that this can't happen in IEEE single or double
+ * precision. I also handle large x differently.
+ */
+
+#include "libm.h"
+
+double complex ctanh(double complex z)
+{
+ double x, y;
+ double t, beta, s, rho, denom;
+ uint32_t hx, ix, lx;
+
+ x = creal(z);
+ y = cimag(z);
+
+ EXTRACT_WORDS(hx, lx, x);
+ ix = hx & 0x7fffffff;
+
+ /*
+ * ctanh(NaN + i 0) = NaN + i 0
+ *
+ * ctanh(NaN + i y) = NaN + i NaN for y != 0
+ *
+ * The imaginary part has the sign of x*sin(2*y), but there's no
+ * special effort to get this right.
+ *
+ * ctanh(+-Inf +- i Inf) = +-1 +- 0
+ *
+ * ctanh(+-Inf + i y) = +-1 + 0 sin(2y) for y finite
+ *
+ * The imaginary part of the sign is unspecified. This special
+ * case is only needed to avoid a spurious invalid exception when
+ * y is infinite.
+ */
+ if (ix >= 0x7ff00000) {
+ if ((ix & 0xfffff) | lx) /* x is NaN */
+ return cpack(x, (y == 0 ? y : x * y));
+ SET_HIGH_WORD(x, hx - 0x40000000); /* x = copysign(1, x) */
+ return cpack(x, copysign(0, isinf(y) ? y : sin(y) * cos(y)));
+ }
+
+ /*
+ * ctanh(x + i NAN) = NaN + i NaN
+ * ctanh(x +- i Inf) = NaN + i NaN
+ */
+ if (!isfinite(y))
+ return cpack(y - y, y - y);
+
+ /*
+ * ctanh(+-huge + i +-y) ~= +-1 +- i 2sin(2y)/exp(2x), using the
+ * approximation sinh^2(huge) ~= exp(2*huge) / 4.
+ * We use a modified formula to avoid spurious overflow.
+ */
+ if (ix >= 0x40360000) { /* x >= 22 */
+ double exp_mx = exp(-fabs(x));
+ return cpack(copysign(1, x), 4 * sin(y) * cos(y) * exp_mx * exp_mx);
+ }
+
+ /* Kahan's algorithm */
+ t = tan(y);
+ beta = 1.0 + t * t; /* = 1 / cos^2(y) */
+ s = sinh(x);
+ rho = sqrt(1 + s * s); /* = cosh(x) */
+ denom = 1 + beta * s * s;
+ return cpack((beta * rho * s) / denom, t / denom);
+}
diff --git a/src/complex/ctanhf.c b/src/complex/ctanhf.c
new file mode 100644
index 00000000..7d746134
--- /dev/null
+++ b/src/complex/ctanhf.c
@@ -0,0 +1,66 @@
+/* origin: FreeBSD /usr/src/lib/msun/src/s_ctanhf.c */
+/*-
+ * Copyright (c) 2011 David Schultz
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice unmodified, this list of conditions, and the following
+ * disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+/*
+ * Hyperbolic tangent of a complex argument z. See s_ctanh.c for details.
+ */
+
+#include "libm.h"
+
+float complex ctanhf(float complex z)
+{
+ float x, y;
+ float t, beta, s, rho, denom;
+ uint32_t hx, ix;
+
+ x = crealf(z);
+ y = cimagf(z);
+
+ GET_FLOAT_WORD(hx, x);
+ ix = hx & 0x7fffffff;
+
+ if (ix >= 0x7f800000) {
+ if (ix & 0x7fffff)
+ return cpackf(x, (y == 0 ? y : x * y));
+ SET_FLOAT_WORD(x, hx - 0x40000000);
+ return cpackf(x, copysignf(0, isinf(y) ? y : sinf(y) * cosf(y)));
+ }
+
+ if (!isfinite(y))
+ return cpackf(y - y, y - y);
+
+ if (ix >= 0x41300000) { /* x >= 11 */
+ float exp_mx = expf(-fabsf(x));
+ return cpackf(copysignf(1, x), 4 * sinf(y) * cosf(y) * exp_mx * exp_mx);
+ }
+
+ t = tanf(y);
+ beta = 1.0 + t * t;
+ s = sinhf(x);
+ rho = sqrtf(1 + s * s);
+ denom = 1 + beta * s * s;
+ return cpackf((beta * rho * s) / denom, t / denom);
+}
diff --git a/src/complex/ctanhl.c b/src/complex/ctanhl.c
new file mode 100644
index 00000000..89a75d13
--- /dev/null
+++ b/src/complex/ctanhl.c
@@ -0,0 +1,7 @@
+#include "libm.h"
+
+//FIXME
+long double complex ctanhl(long double complex z)
+{
+ return ctanh(z);
+}
diff --git a/src/complex/ctanl.c b/src/complex/ctanl.c
new file mode 100644
index 00000000..4b4c99b6
--- /dev/null
+++ b/src/complex/ctanl.c
@@ -0,0 +1,14 @@
+#include "libm.h"
+
+#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
+long double complex ctanl(long double complex z)
+{
+ return ctan(z);
+}
+#else
+long double complex ctanl(long double complex z)
+{
+ z = ctanhl(cpackl(-cimagl(z), creall(z)));
+ return cpackl(cimagl(z), -creall(z));
+}
+#endif
'h/fFv…F@a+l޵o$1>\֙Safo:B~Z/"HZ1hQ*(XPl`z^M z>}WlOnODLNqaZ:Q6:'kuo"%?hv~{"`Wc_Wgh^rBXyE+CFW3|c lZf~/BI/+EэWu)+D_4"K]vxtBQ[N`3G'`O1Vzppq맵{a{pT,c>'I?mYr_DoG''dj(lBDl#ܸ ~wtx#<gA4=1U'mPYLof5mN\XZ':yH;3"]IҒ8ډDh}%#M쎢巁LFq5M'l+EQN!R ="ҍ">kXlնdCT([njv)[)U=S2"(.qt>gü>φiߕga4gM&($9QϏPȻA~H_? rDCNJlT,\/Mb"_SV.̝Ai:ldv,vƵMX15 }&!6Pdͪ 䂼KĩNA)99m؞l0nJi_n${Je4Ee4Nk_QRu[0jEN1?f؞=ϱFMPz&~T ~8Zi껮׿JK(L+D~mTy!yVY)ca[ҧ eP?u^!F ԑ4lSլkPG>fS۫I-|RGQnK`ϵG@й~BMAEF)/jo 8Zτ&:X4.ϔɚB:OJ~+^FB~ET 0؀̢>@Kg58 2muSt'1^ul/O[[{i [Qǚ8u+f;9BNdJGAZ-ua* AW⤧owNj{Kq T?P,W30}Xvy ޲"5Gb;P{~C0FKoKK2Q'FnCaHQ* _i"0 Xiߠaܓ㣃vBF%i<~ocfI^\ꍞ]ъ iìǽވup>oYJWr0L߻yx076'g-U ?0;zˆWˍ89$~ Gli*n7 (3RdWr8wQ4eeaGtm{xduJ m$i^8wMhwlXRa[cضCmVW1B$ቦ,y<7bD^=8\ԾL=p;EFmF+l8zv[aҠ?a\9‰wJ("k^e N iS@-V9¬޸\5Z'Uio:/Z΄Vqn=7c5;\I&Nw76'n~?O/?n-70^Od쁡pw+a|;b;Yx#*+Ucy4~]U E6+ ɦS$~h}2mS-芷M#j[5ZteBkf߱i/V5Eȭ3ZrPc^W*XzD1+S S,3!b|A0c-"u[&q4qKi5!knҟ<>}p'J3xGr\,=%刽b|J)-?2q,TAd/jѶ-_ɶB^%9̔lJ_o;ZEE ,i+M=ӣa%}$`^#:fi_ٝ>(/%. ifZ⢑ y.Q6RjDCC#"ذP%%k h(XijѼL KZϳHlu;0?r{x=qaUD>+׹{+7⽩ +#oH]H@f?}8˸KdȧU?lK-;޿`*8jtdxh٫-g􈜛Q[6e" VB1ѸaI^ڼcsڻ犚}ӬvKv26q, C 6P5lGi8'<:;{/3B.کL<{aDۡdk'qu3XYjgJe q`^y *OOvpEfL7Rc4waԏx~>8< 5d0q.NI4^}ECOwvo6dw5G>?X?0ǫqG,35[wxvgo.71=>7ovzvq8R(^xثWD!s:z}g:ynݳcqV{wqSB{txxR;=ې;(G~<pΦZalX>imL jYGg{G{v~pvp{4|N"jN qrl:WgmtCjG1]<;2CI4Д(䱊ȿ:!=%0 O@&r Oz,F(쏳Ww}-1H"Y@r QsԾZao 䙜Wo⑒܀>:93 ġ8Sdd?:l]Yq Ֆ+PZxa>XȲӒƋ q緝צ M'a-^zmY_~!\},6PA*|)%8gvF_ d$%.biatNпzx|w 0չ/A4rb"30c?)p4YOߞ+ mμ $6A?Н=+H+;h;am:3Ы=` Obu嵛b4Nj@4 pU ygΏ@s ퟿3c > D<gR.c2~fH-W2?/$gCWE3.vb;hLnT@.4g29bkIc:DCn "\Wp"tYErv+??6|yzKym2U֊?\ខt`g9+Woaƺa;j~sa6i8j_T}!n/{A [Y<0#MaVN c@Ȼ+#煑_8L G[[9y4aV"b0r_&~Fؼ3'#nʿ&nu]h.6h3!"Pj ύ_"KY~l6V2b@Ak] ~e*gGì'q.$}& ka?')5{ \`hĕʽx}F}<"Π/T){iZAXiw  ~* M"i)-AmX=OX;S YPTi{S<_J ׻Ϡиk%bZ*j䚽e/-ze ښ?ƶHhx\COz/ZW-UC^+7˯bӻ918=Op XUɀ:iD# L ƫS"mO8p 1s8&4O| b2^6:P>y·We"SoCn~K$95,;%>bEpHW;]|6w)$+7?BB S"'<Gdv\} RApxWٺOh6 tؿ3Sj_FfF풭LL??zC\$;f+Sq&(؂ f=+u3mbr1`JNH4D@ܥWnn g/X؎@3AaPo{'k6c})9HT86Z>]Lz=4zk Gwt'<qRsLLs\azO>}v%?[@uJ縩\_DӚ3^H5k>Q%j4.Ĺ'?꿟g'燻<^VJ+raVg0_)W?+?[DEضO#1N5>H>yL)vIB~ 0R@?Pt@X2 QBƄuvn:9yS;~]^[7$S'L4ojgG*UY~9;+#kR5MV_HX$-;ShyQqb$Gb\ rLHlfOM"*|"-`2OG- /x}N~-ˬD]=7ak:EIrgI  /.tīJ`-~$]\Q;uT@ߒ_+) y¼"P98w*?SN 3?@>X@sj0@zW)?YDqݤ0{.Rn-'"geݵ}&1h#^@i[[?LWJ X%XwR_rEoSoG29afjJT"BJJ [xUd}i`n]E蕏YأT<{hB깰KUDqYCЃr[5)ko(dv)6 0~bd=gbִUE骢"H#[D 5 N"xu>lg 3wz48WJ0O&*vc7ÔQX(bqT̴^Ӆ.|Ș6 xԨάN葒eH&-2$HQ!@dO 71L;& %bhphbw{'$*5ӡh*F(A1v@I1tU!wjR4f%O>"6ٖ,N#(eU(T\_C|ðMd"'Áu,79_#[n lrE |_(vM\Pa F}dW2{eW1{կ,Oj,2{6h=t̞Kk6鹦0a:Uh0nl. : sMc:gWz Xb+ض$DhޫótRv,^cm@+pP4 \M[mg7P)e6n2nV3 (*RɪQ6eb8VZnA F3e1ΙS3Ɲ49)nܫ,?-~ض}G//i6Յ@z~O?=eΌYB'ɲSm:YF m2}]Nd<?dȹ:7/xw/aa٘6 |Khc[+w*+&zo%ݿ,X }(YjkY?{9Ne} '\Ou/u0:6wdש*|@lD"^T)x4eM3/Jzm4mKmb;k G7vEg.;õ}\.</}{ȋЋ(R;ۊ`J@[x>[^3SKhuhpoJ[Dp ùm+ V.9'0:Ŏiqw,r>UaGiW4.z-^sA XXˁ5[jȱVlK!%X,M^g^W}I-cVτ#xAA/BUh:Ek%P8_E fL1UF83{6FKTEY ,gmu9"Nwl¿g1 Ϡ0+6:~ր}^aNaRq Oi/] I[%FlP~U[gNbOvԶRt|ὠUeYīi*ia&);xCU#,9Ɩku6aFFX1iyb%-\_:l7>gw4x:_^lm>1z$beMb3Jm,JBk ^)ĵMX$Ab@zWXԦFk +!O_޽;/glބp?/ Mѽ.M`^w/amoh F! <]@S Y-Dr( BLG/ `+ ުm<]c PC2үbzϿr$Z&=.*~|оG!>\_w AΒaފ+F$Fٳ=t6)|Y.|c9 "H,js㆙_*#F_4 ӟ)lc/Dm%zWBjqU)FEJ U]pJ!8mTy(4 SRB8*}8׹mXy>S`xrJXS61lX?3 N0 8܄mF p{[' \UrQ@]9yѭG" .X ;(Zc#&KiS*ۙ<Hk5ŋȞ%]/_B|&,2CcRv-|A𞀏HbDS4bX/^}8c0lq攘~= u noA_C>/< 7!4<,۴saU~FoD7BGtKǗVmwHd99#'H(u;^vVc8m ȯ"% dtx1^nP 02T h .&Z,EӸgO<םfpoqt1Rb1eu:wi <7벗* I0> lU)K8CVЎuo;D|w̠%W3N8"(ӂFËDR`1^A\M%|DihfU%>>\XAZ9 rԵnw`Hڀ_6$^KaH9lK$$PCP+ŎAIppĦwp^ʿPZNe1rOW:%R՗[ԣT\:rKSZunB7zup/G |kw{lv^E _ABd)jEe"m!BE7UjZ'4/IذU¶IVCIx! +vߦ*O|ɵYi%4Wh!mەb.W<g/['Wk?|^YBrw5Wzs}M{$iOwOU< ̄`-H(5ʽuAF1ϲJ_)0ha4S㲌Ǭ/\o080+vGj';g?.NEdb--ى{KKN"_s&vRR9ppkxiH8?ID{ѹfTꤶspf82yOçց6 7G'c~hW~8O a_]- ;\K*?_/]FNjwy=_`mHusʺ:σ'2 S5ucvnX{ $tiRoA f3S]40 4JQ6iTMc46`[ vMdeӮvմ7L{t,ӱM1tJS6TMgt6M2]tuMdSÏ6xGRLl(Ps\i>~+wk:"ȕ2!\'6 ѹ}~I\ +<(y sFy0U:5j{ cuŮM턊xu'R( Ƨx}Ry$scthr)k6ҧ̉%::GBcM9֚ȑY0㋘k6ڍh'Zճnes:&K5zMIU'O/;ѤBGOh0lq.gx|,}~t?V>@ ˗'O[8y#:C O^T8mH^ G_52|R)ԭ}&bobn9!SRv}H!j(j!xrfI Mp9Ni ` /%%cq/`7`I,9υ8c2&@cAke~ ;A1uK՜bM'wV?[ݭ,Gޠ[XaN@[Gs?[Rx""2:٥֖W'G??{\{u^x~6~|\4a^j)uv]D?Qz>=Xk/lW=7W_|Ơ;cϋyVX]/}ATGQLQYuDu #rAa:A~ ?#6hB~[Qd[p7??<:QZd!%㸳+ jFlb-Ȳsvv i /}j&‹ }\, βGAۿC6dܒ`[lw^F6&E=@ʹcs}.Jg0^| v&貋>΢u«4'rw$Ih](OOtW4(bߋN7(eޡъ pBzW5ᖆ|ҙ&o߄N;90d倸}{Ћd8i5Q}[4>./Zu<.X$2ay`uXuO+➐}/afЋpwGTdk5]8)."˰xW{ƳAԣ ~v ~ֻuleX1gXnӽ`-k\.l:}#o7֍Vˠ{7~s =ouT>?u܆D@3QcwFnzxO$N 8:Aݐ˞d8M,:u >/]3&,yTkM}yc iǮ{]g+m-ULm]y]RSM `K{ͮ?L,Д=Z%n^m_c>2}: B-={,4.w[Y` j>E ~A5C^ا럾C4ֆ<|\jo*tRX<^5l@xQdgi*4[ C@0 A1.C @uB樁: EحV:1 آ59:zM8hN4y_jG ׺BQ&Mv[/;!Sӈ i&i/7!3 9%$]9'}Ok'biL2 ?CZ6^0rb)Ijbчi?!?NlG,zKN;=/:dw[>6Ii-Aa}KVMrjN.>nCA5f&ndrQ7XZ~!%Ѝ)DYNgK&Nqg"M}OdHc^^o!nq-wsϊ)T1^@F :=n'q[,SSattcx~q:/ _fӺow @A6.h=n{מg15>}Ԓ^mc-guhMzގp^UѠr(a%0C7 ny->LmؿX̅Dݣgt{,8=;=9,1 8 iwpF‚ԙ+7Ȯ(VOBt3%G?΂EEZPr/.+X%/bu& KB:a(RTeql6_7))^Zx(.Gl}m ů_׿R^,XK/^lkvQh=Ό>g _˹"r3aEq\_}V\1nq#U$1bk9&ĈU  /Ĭ | sE֢d56=`-nuWЛ,|ގ$)=lS2E:r2=c}"jՆ.f@T Z\{hC29/?kFZrH+Ռ%l=*+EAQ麵Y+$x2 ]EAtkRf?3 B F`w I0^ކ&[ɱERƬء6dE$NO#4i5mg "? {جvi얫 kF(W˛S8UJma]ָVP-i]8}cVۂXn٪8ZݰcWNrkkY V+Ρc{ãw6ՎOSt67K%wQv2͒S(m:0ʛ5hZf7Lv74]LmQ =n |tx:Y9=.;ߩB"JacH&2h"i%`vF51TJØIicrfW(HsemQ,k{Gj=+ejcvf)lQ:=bV`fKbI诱v̥20 Ct|3a<)f LD({C&P a`P4o sx]MImgض L+?>`OFz-=(|ѳkt(1]:JTn'b#nr ۗz\?uHmX]qǽj^s&2r_ُcGR'v)YV .:47e6~ŋ(l-=z6Q-fԬ#S'/Sk~}R|Fɺur#}b ~}C׽ޥ)8y'L&%y~C _(<*ƅx1sz¹^ₖdB"q(;I]^Z$y׹Sof:k \^Gitυ> wTHmKM܁Յz\M`S|ƿ׽:F3egz_^SKt6S<1`*:?Fc9$L[/7<Ւ]_&=q' Fi[wf;VZjC_IKӒʩ$,+Yu:2%7}@νLPR{z:#K^+Hf EbJ,N^C5Dܛ%fLJEΗ +%E cr'r'z&o|cM6d<= :hun_R/ynjGc zס2}-~Ͱv0moŸj|WSyg/Ͽm2[JJW*vμ27{ K@,lWR$߈3R{'Ģrz-' @c/ ^q+2iux8 ˲*ipE:.8п0#CjgZE?=?Ji,cT׻ߢ yYB5 pN:sYi$A6霸['ːs;Y' VMP\S6iSm m 8@ З#WuF(qɞ#~?1 ]vE8n맿BX㍋P 6F+hyQmqJPXi:_Wd[ enV&y,:L2YT?(:s+ m/q'ZԂlVX|sQ_&Jvk/4F9t|1vݰwLYwqq^w~"up?rEp9|sjK\Y l, LOA؃Z4;ӷ^3!{.!֟rf''?_PiJUHjfWƚcFʍfín+/$471E.VoIfUE3>VjGy 4fA"V3Lw a_岝Z@q80;k07[k2[m+uϭߋ},nӔEsVoy¨Yݍ<2xxӭs_D韙,?@fY懨iy vF6>h޷[aR5ӳ.ϗEuyqE5m;Ig~7xv0 D|h0#q'-$f+hۻ`/:A|Vv̑z'B) ?cq_]'s9/"G׼\;…JwKY2PLxyχgzHN=aTFn8by1>Ƨ-iTQӴ=Ց?m%2ZkW ᯭD1&g$_% w)Jw"ˍ"W* +!F@¸F) x%_ .ū7~O^tZʉsLΞP^v=;`~/mZydM~85Lj{~@P,`Waȕ] YˬIȤ^yh!qHn 4Л7Xi(n>;O1zu bp F*`"sxH'}Sg`"GT[{- Юj6 ֎7,r^w$zGHIR>6|wNCrKr i~]roi͊'?ґv_+xd&+HAg'7 C_=fm/^P^O*+\5YԶ74"|AؑYX`F"?y{@,a]Y2VEmK\JY+*gV:σfSiHrV5F̛Pw3pV~a, ʴ-N#{BDV:X*6C k!i:Z !͐_9ŋӳ~74W{}~=z谨{'98zs ^ lq_ ؉ L"EA"1޶*nr!@>n-b_%.YYJF >[i\}&0 8}8ЯmY{K C[1("\?lw/A&|6ThLyG,#Gb]Ĝ݄uE̍3T vrK+e#*^S{J}<7RôXb@}å-xDE| )'2Ʈ)X0Bdm#:;g0 M_c91E(h.@:ܤ0MFww\BAOVPֿC}Z=k<&*+AO$#$m!Sbd(I%.Q,CH46 q\Z1 Qh),ixN˫^K~@LA*J|$ g#ݩCKQ +a &Ť%XPx&cbdL5mr}l?6y{xzݿ ۩_Řa0>Дҁ"hxgTVqGHai0Cp'HfybWKVFRgt o܂ V_JF@`.xkG::.E > ?#e .匯F<"=㎀=F fԯR̊i9@yՈ/0&HULC)*e.,VՒZ϶(^’ITh&OǴ\[3vb2Ied ;wi 3ݏIi+]f *ae5]ÒDO1]ד5ƃ㓣ImgO6$$wڨȬ?j(DUF$SwW-oH6a C15ɶdq2!d g#J uMN :9:J(>@LkЀ.pN>#D uٿBOZ:{w>{ )5p&qLxs\?>m 1rǃۘAmOk5olb2bR`'` =_!:~_Í`hhUQ"- 9CVr:YilohŇqTibD؅XhIGm/8*W"8ݟRG{M6u"=iR{ )t ?iשx2x2eMb5@MrxO;Gƚ0|iy` gmpVq)~QG 4e;8;^3F?cSb/kEP%'"xqf"JϞ1[b)/!1ЂFU -}Og%:= VWFdhC0zaX7¢bb4(푰Xd cAN;go+'=v[a/<=6a̒A,,-k@ҠD~A,| '5 qCd5gϟ 3xɆAzMOBW)jGKel,8M%?:N_=%8Ttr !aJ2K~~PvW溩Sq|mHAB3{#74Т ҿFU5|r9! (q*A@^;AP`=!*?:s퇵^m/e %EP]?5Yh'95c zhsL 8`~c bO+ } "Qq@X>”Q*nIiZ1NYY#. ] P\e;¯FE0~֐0"E(m:%3( sqʖHi6ڗqz$㮰b|6uJ,p6C9'Ii${ΥضHfjowIS[T'*g3 |)U1L4 hNj[Ɏ^ˎW:|Ma|Kr & dC']N񋌅PH7C{fXʉw|u"c2!Ad0Cb9~_$2-XSq(DH=c'VA =4(K &WEV^!+F =fYM8/i= l')!d1U%s5)̌79ӑkmsbi^Aa @>`uh rNçXn0B8BZ$kgxH{W';'i R]a xFv[hg $Sљ.LJvHSi7-"vހaF=ʰq^owӞOf l>.æ!d ']uò"d;}zͿ򒡤xZ=?q{xeD6.bw}g@5 -C><|Z\k^99ٯ8D6.|4[7x" \֥[@DkvI4.+HZ@~hM{aoN@P~7>;׾'~uG|t|lDJliJ OGF?;RVĤy C#Oئ@?Nu\ ^t:@һ-N鳺]eE"*-!;SD?nj44m'D 9+:Ol;5@iӸ =5n"\#᥮>j=R5@`fhoj]S 3Մ6XLI;Pi1 jX^TJX[&^&zK$*ݍUμ *Hܨxf>/!3%%~lëD"t5?gd ٿύhFXW"g>ρͷ1{yI 磒@ז٭:17 Ҝ^SM~9a:{JGVgƵ\M9`'%Āód#%p=C )&-I+\ryg߇ϟn $ML.ZPhm!'nNs/k.I .q(μ??|}T!T 0Wj+½gB:q醮$gYm4d2S&lbeȮF^k@KBlh.aúM7%;A Zar15@ˤ"!o a"T4 ! Xè:|e]7~QӿvJI (] L Iפ T>3DH $cyפhIy_id3-2Y.t1 &h581"OI pLҲ]qv8>?<خj'wvkIx}~p8?yuPcWYݖ1m]!9 h T.,=QK}ҌJ@u+JjyT_S[o-1a-OblqWh |ŷTi8/]1^Fh\ DOAʓ0Af颶;F 2Iɘoe#3(6XB^H)ޫ:yq*ݚ&]Gkm! TQ%tm2/s`kJ,rA)3/n}U(%0IE)=WYPK6闥r|J*Z3ev q|/O$$фXɰC39C[v=?鴀&= /|C]Pқ%/m,-/ W׀MM[+{&PݠN'O '| xE-m@Q\>a~oN\b`mU@ TTBdqE⳪%q_ pi+1R)ZNY8i%!j]v/֩ckBfIalP3/om)8Ť+rSD@eލEtS9ejF͆R@kPJu>BwW<;WpLAuۈLPX^DA2/""JPmM~9$ 8߮:Vqa,q`VN6G<9{¬ћ5RN%y!a8 s;ԒC4cc"{(8J+$x+d9/ |=جk6t3lϲ=3/JMϿmt+0Zރ['fŵ;fo,wH?x߃>?{]ڍG7p[^5gA9e;a]|0*drkB5%@WD A$+v=s,0}_kEaA\-E~? tg\ i C/˹hVGۗejfv.oac鿚-U\0mb|p`zx%8wJ%'0#KM# LGi4_g@ !aIYĜa>'XS%3,?3<'of^?l%?V/"h 3~3줢e*N&s[p3u |[!Üa1GSA(<~ SUi3^N2+^*鴄Nx٣ΠH[]F v@_:2|J2v'A 0k31SU{7Maf||Y\ Io>$1 \j 8xAaN/yRn0?-9aUɿ 2f)蔗b9_;f9E`p5;8Kp,_-Ef> YQzLg9/:J:P4!At>ZyOSR^q ?d/~B=aY-r_@^(GAK@z#8gky rwgã>R>VZlkx"\lAՉ$qoRJV5!'?7 sۯ#kT-'mc?lPN$-׻lѣ`GIs1&X@<0};ۭ{y =֋3,FGӵiK/jOETHD` 8֣ڈ)}? ʫ\KS)E`:y@RwX*+|fwY;8th7fmѓ&+?r`2XPn?-OC2ʋD%HX8p20ao/T 4*5X)^Y9 W]X-,֦dBboktd*DTKm?}1.0fD, (ZPd4>בf?c9w9JNn0!&=s>ySw-5La.Sr%0=N40wc<׹2Ha+Ovqr@ Nv6>GSA{GãݳIH,/LI2C؄z"aɶ?ۣ?O?ݝãC%vOs{RR!ʏF4lt[і~66tFQj] $K&߿5ا.|7,p`6-&6N=K|f=×J5/, ^gН` '+."$w Xe;NN$@iߛeجN{!vŢcb#3#O D= {%M7)"}b Y=NPmrXh)qm$V;;0{f7FqTRr?& I4$}f+Fb(TG?KȌ~TsE901SN?nxW {Z&\5 0ܗL>>'?f(~Ճo~)ؒfShJT0 oG5mJA A}߸ŀ4}l?1ٔov~9ϥD KMDЩ* R' ƓU6f}h>)c$fktH.9e't0\0 ` k&4a4"uXqZZȮ ^ǾӤ6]bLCK׋*&1ÌM\y$찞 D5q߃hP)iO5uʹAY,ںuFtd'z\E"6PddM67l[qeTaQ|1aMVހON~0֥x6jb a9̛fޤڿ_r?:}g:oU{ z𛪯wl#.=wJb;y!MQ^LԣFwy6vƞf`?;V[,"$}Ь$vG [Y6o7}iTKM hG tћ[BgswnWGSFRTePݲfw KV"IV}Qq7$3,8OiU+-" /ĝL l0ׅkȰM;Aw:APTq@^VJh|avD&MU'[D=ƒ~.YNH?Hߐ_ d'IO`cE?xIjFpq9;^aGhe57N-E_zip4Z@\4Zw s?;Aӻ7;TEұ@λn7^Xߘܔe#`LKX9af/^k`>sA9yϕ@֨Ocނ%&KFfZ*=m?cPdFOb o÷j_57y8q 37?꘵{!o3O~9Ipa.o?oK违"I}*AG 3?NjXVz0_A W8}iw=fl$oy."YͬH?+2Ȋ̺7T! ڦҗOtHOX"BJϷ|}'+{0LF `  c?- S u2#0a>wdϰsN~0#;*Ҽ W|03#NǯiJ/"9k\c8"g) 3?NL?ńiؼg3m)gmM З1,4J^w^BxK0unѥ@'$ t!0 酻7K?*š9YqY\a/=gإA?!ٕr ^2NA=So'QUu.q"8D5%&mU/'GI"*8qP[bʼW.EģBn"*U&&:" \Q|ȃ\A1#"lghɬ 8F' a0z,0DB!Dh%F">40JB(I0چ1? ,eɨ `C ٲ ))Lm%9%s,}NC(vFA$¾8e$]d6ba  ҰB+6 ]1lǰ H"D1Plq8Dtq 6W%60ldxjλ"!#Xu$ 8ve?4K@|wJ)&("E¸"}(rR@8J+A%A>SdCVFjriD Ef P$>5m&096#^J)ֵ鴙,j3 $[L/9$ƪâl .%ZbQf{ ?i:E;ǶI|Wnaɷ1Հe8hY2 `^' r I鸘k65G]E \i\ikf54'ipvSAJr+m@'a78 㢤d[]ܢ3&f̝vlN\f&&]HG3a*/IHa ]Ӡ͢.Е겴:lǺ\E6`s w"!Xr woM]=C@bOڙd,K+kDG̣ϝL?(^OLfn2tO.C05nlǏϥ` aG} ׷F{RdcGZrшǭŠ6k2hS ڿ=vGk?7OME3߭y2XO p־ >Pq.zzK"ïH(d[3E^-'a}N5wuVs5Mn)+@Zxf?MMߏ%2qο?@?69/t_(?rOЏn)/a)ش>ƿ~Fqpko~Qsg?qOrn? G#8?wwڽ:?w4hoٔ>?/=7-߽^^CSԪ;Heo<+iAǃE-?ŏ3-|;ϹMN&-z߫{cRf<~~D1VKD>c'# B)H_w7L_b{&.~$ [ 6ߪD&gJ_?촫F/3EhЬ[G3Jk^̹9_c<?|?_݌w}o??oGo~ow7?Vw.%I6_w?ugsB*߿x?q?nת3[SoVmڥM۟#Ga0okj}ghnuc;> ;:Gc++++?@vO{=ݞnO7OmxjSԾC{vÓ)iCOi]]}?|LFgڣu51Lj|#@#(cď?^:Ǹ#~};} ~Q>FcQ>FcQ>[p?f:FX=F#~1Lj0 1>cu8c?#11R?&1 IpLcsXL8f1^Eky_{5W5ZFZ˷GkL{5ט^cz5jV~-=a_z=SL5Qy=]OzRדyI<>yzp7ow_5׾}[ߙЦVzv_krۍOnnLO}!}qqvp~_.}n57o;[vÃCK[oZ<1MyPo˭^Ked h@slKpL34 s֕t 2 ˰~`@uaOxm]c2Tq[: /h]j@dvSk`ZPml;`oW wVu2 ;`~[? ? 7Lndqe [iS5ͼ~ Cxw1Du)x$C;KWJC _ , >qFǍnw]]nwO?W>WTPk>Pτz&3 ^tӏ-7280΄njuan&pS3.̈́njW!t 0D#\o z]`1tinm:(iBIZqq&4 Utfa +M*loLd SEn|j1ivj=;i&U3E[JMPjRT=6448 PMjT&(5AI sog MLdoc/4Y0iILo맆 J$ %ً~8 ,M`i'4A 2}[ )qMs'4A 2M`ۆ6WJ 2YzaQo BXYd$oRyy &;rna-Q'5 b +Nj'p5o9WƹU8I]&uqR'EqWUպk{BW8a cM&p5ioQpoD]+=GjgiMc4@N@kR Mlk!gu;@IoI]٤1N&qgkp۷ mjQ'ۺހ+ & r 'md&r}98Y0nA| ~[uS8!o8I{0=NHr'$9!I2I| \Nr'q–8iV/Ⱥ#ANFgA I'H:A N:L6dmd:ɑ$ I'5rR#'5rIX'9r#':I0CN=&$;! ~[2T;Vgc NviLu5Nw!'m4J7Krr$AN'rʓ8` *%8NygY' =鍓8`'=!Ioy1ʴI{I{zJ$AN }"'!r O}l`FLr$GNB$DN`A Ojaƺ`~`Οpو%'?i&9i'c! OR'qBIo`Ȣ4Et]/;ZZXM-,B-,B-,B-,B-,B-,B-jada!Mv%ܢ]Fd0kedE,E]X0 #m}p Gb~bJ/Zk~酻XXT|Cp Өۙ HPmueO[zYtNvyy!DB,B|,r,,j%#hE=^hXhXEI^Xgθ3}x3ex!5ڞ/fcb%& .K,K,H,"/腄Xz`w^ewۙ<  z Pz+  ;+\a!aQWu;xa"F/bBE,Tbw^9,w^Ȇ +;B9,d"X/djjaRa:a:a!,,*֠n `! `QWXXXœxWJX _Tc E^h@/~eӒz/@~q/p~q/@~ _~mCxx _@/*ͻn' /} l_,`UXO}I8ګÆ y/{Aۋwa/{A ^T ^8b]<O/B"/B]"ᓪ a/g/8뼾O/xz ^Uۺl [k]3^pxA ^pny;3.&E_-~wA" E__$E_@` <~*@ ؾX~8hvT?E_8/p~]./x~/@~̿ _d.~A _/8Q"/=  E_XX)aFȲ,/.XxXxž,LXm_^L~B!,~/ _`:aas4/t·i&Ra17/B-,B-,B-B0,B0,foɁlXȆoY̊Y '6FNnmjjkUlW88om6|k5vv[Do~g+O;|ߚ|  1 z6ja6ja6iQ Q  7ja6ja};QQY7`c 6`3lo2ToFlBw7`c 6`c 6iQyy`6 l AP(B(B)8X56.`O oM7]xnWlOx7ؾov5g&o}zTnd2`ߜl`7w т7ؾ-xl|ӻP{7ؾ o}l` H}^796 oV o|.ߋAxޛ`p7a Boֳ7$a Cozl^ *oPy<{c=xx0؛E֕&6ۿIo. Ooxz3l.ͥ 677.[ր4 go8{#`3f-r3 l8{aoh{Cpfp#ؼk`/`l|C֥3佡-yCS齱 `6_!m]9B:߅ο s<<;`{C:f o|sl(|Cސ7̽aM߁7: yo{7 yob?æo8{p&o8{@w7$!MyߔM[߰&o&oni뛶i뛶M[ߐ7MB4MCߐ׻ yo{ܛI0Ύ7p7 M ߴ Hώн%n:7< Oojo@zާ7o"ޔ Ooxz˜n#UF Coy7 0oPy7 $ώ Tޠ7x%n&@o7y~Ab 0oy~9HAMmހ??S_`Jfpm7yC[.s7lͻnq7T}MWvsovöݔ };|7! nۺƓd7$A}٪6 enHvC}7zöݰm7lgӪ7laMް= p nvód2j7Tm]i%ݯa U{S7la nvCPd7{óg7< nHvC0^7^7_, nu7 a nݐ즈0a7 nuCwulPxuíb nuíYv`[7.om_@j!8@RPj@O< BzAHBz (5hAC>(%Z7n]]]]T")=`۠n@s΍Vރ};?CNrP?JU?U?A|~PCr|^?C y} Pp  z`p 7 ߀|cA<t>;};[`q`6{|P^x=`ؠX: ٠X:!)8`ۀmHD꘳oAA"u@$d C<3v&- 0lpkz [l^@k@Ah04:$0d{E` 2HA mjn 1h7M6HAtF1b+575ǀKLAc 1 À 2 N 00cIeODDWd 580 `0jU!s7ƃ`p5Rs$ ժ0V0aP]& 0Cͪ C媠Ɇ'~R]Bnbjb Zmjn zͻPb@dmu!À naPop`V e6غI 0 àL,Kx0daDa}6 0 iB!8Ԡ *m~6`Ȁ! 2ؽ;`Ȉ׷ ZmPfCa' ~oes?wdX 3ȷhfPr x2Aύ=n. - `3Rcx @34 nO 7h[F׃ n zPA Rn!}9@`h;Tdyϙ$P5`fUp-|d k`kAkp` $d pqde8&Pm0Wl$p bp@Q+t jp@lPm~n g x6 TD nP n{lA ro0Wo{Pp`p{08 7p0`ǕH}<8 vgs0Ź쀛n9h6`sApqMH: p@Uw@A:Px:逧x:8tA$ۻx:逤*qPJt<$4bjp0H 9$8H$n@opt۠ڀs 87xXnPi h7ݠn@MFC\lRcpn¹ &ll³ G>YBIcM5ɪ &ĚÓ; &ؚ`k~ E­IuM5ք[nM5L0M4WU &@g t&Й@gaLfLp3+ؤ&w`fB9h); t&Й@gJN3LIzM3#i t&ЙfR]c;7LBkBInAN39M3I &5Cd$f &)5$M4AI$M4AFК%\iU'5$&xi &uvuB &+uªIM:l &Hd$&xsO=ֳ#" 'zJO=`{ V/ 'z 'xr4dNH=7!Փ'xۤ&t gpۓ:ޓz թWIMU3:@o| 'x '6aT+! G '6dN 'u T+3O`< Onwc:NN0<SZu"O$'\x ^JNowNV$&q7aN;$&̝ s'̝ y'7:Ggr&7 'H y{SNo BzN9 0's 0'sq)%"'H0N8$N.锁݄>e:ɽ 'xq 'H q%\ٹ 'HHN 9:d +'88`sxN99lN9ㄕHN3:T,lN9@/F9愛SjrҐxN.!'8x΋L9!!'@r $'@r '%9;9e:^n>D*͇{C=!{ }7rjx>a\>H9C=$}H>ҪqՇ{!!>l}`C=T`.v@>R7nC=~:?R,~`} }8t~p?p!C2H>u`hG!@hH>db}vH> 88 8#`F(v&}H>C>؁8؁8C>8C>832}c pl||>XC> mpypTl;(B8A8A8YyH$~PpP pr  Bp  d}pwpp9QpP~PpPp"pu 0wmpmpmp` ` ,AAAf<8c!M8::A*?Z8A-‘} Gr8()pGb)ng0 ,a:?2KK8h}ⰤZ.1"DaL?范8/4[l8}ApApT8hép.)ng~Bp"Gm?ȑ9jTf8w E^mp6Erp9 59X59X59Xl.&AI~p'wr;U`S6<a? GiAVl9 rP.rX!~0A,6Ada8(*/r/mQH`\N(rd~r9Ȗl9a8x"qX$#0la?999':sM9ș9ș9ș9LGQ;?`j8d?#nNq6Gy5q5 kk j jNr|8|ws5 m?<蟮wp:s)fT999(f`vftADADa8.qEV9GIã8?dA朣a?l96ãfp99&lAtA9 G mi9 khrp-]8ș9ؗ9W8x9p*Nw9x/Je>(# `S`P0 Sp%*nz%Grp$09ȑ9hpXj, 8HC?8888'+Z|TLTő}0Kp?؉~NKHA?A<A9JDØ~ p p~x` V~l*./" .r_5t+b.~fnttttQ͵<Қ//bn+mpapi~iSp1Sp)_pǼt _οp%_ _`ؿr/ __@/P م/<R/  _엷.~ _~).p/,~;w2_:/0~P_XR/,~! z_Bۗ~ m_hB¾ _wQ./m /|;gVR/$}a~A B_/ };{0_R/|A *_Pɗm XR/` 6_/| 0q! 1_/͗/}A B_~ =_ʗ~A *_PTd $ߥ*䥳_/|A *_PH/9. _` `/|p/{~ ^x°0a/zK<`[^XB$ F/0z n^“s(/@yK0'/$y! I^Hw/yKI0!/ y =^~&Y^(/@yK[/x =^2!J@"_xBWB'/bBp\PWap\ =,i􅡯 I_HE\q".h}A{HG/WU s_Bھr .}+/妸妸 .Oŕfp\_q DPꗧ*Cw9+.~ _6x//8qq9._Ƌxq,.gŅ/寸._qW…< _W\Sqy*.O妸mO婸/ŕ~p _AqqWew 7E\T~pwN\\5p/..+;E\e8#Sp;GH\E\N)qQp%_yWE*\ v4攸N脋Nqe\e+!6pQ p.j2A\&q pY!.n .JWE6\p WE6\^r/v<\f+a<\\ey,!qe\}+$\Ƈ+yb*.eXpq.^tEg\!6.CeSExSuySx*O=Ί zJ<|=7`B-Լ{ȡ_PDEPDanMx!r!B!Bacxp@oFv6*衂K<<D뀘bVW 6W;S[\VCyϪg iI&i$}M/4ODIR$I$EIR$I$EIR$)nwuIR$I$EIR$I$EIR$IĹj TKZY$9"IHrD#$_ȗ@%/a%/| K _]^vSg$G$9"IHrD#$G$AĄ0m@"&@ĄVFX DL,$G$9"IHrDH[-cZVRNln}uJy%x/a_)1^я>JyeҶհӰѰͰ˰ɰǰŰðc!iaaaaa{awas J޲ECzecddddDJQHjvk=[aHQRhjWX,f1eͣQ&P jC 4\ X…xYLD9"ʱ79Pr#(G@9Jqqu;((G@9Pr#(ED#{#(G@9Pr++Ox n/p{۫Vg (W@Prl_}YD&W@Pr+\ (W@)^n'\ڛ\ (W@PrS /XhtE+\{+\.W@PBLͪM^~.DVvok-4UJVWkjUkYڭ mjj_ݮv!;y:G|}[܂*YZOshlAc +ovNJjvkCڣ m|&uy |@)k TX *SS&mBд-4mi Mevvд-4mi M[hBд-4vBд-4mi M[hBT4д-4mi M[hBд(*ԟ2cjvkCڣZ;UhBSM!4BSM!4BSM!4UNqM!4BSM!4&SY?$  T G)YܕXmǼ>[ɉ՚w[5E>[ -i1HW`(AaV|t>:>^}1DǠ<1(AyV|!BV,4 iMChBTd ,4 iMChB4!4F4ʺ4!4 iMChB4!4Rʺ4!4 iMChBSkW;vmݟ՞vt\j'Wn?(okXUD/]c&49Jê-[mjVڪ۶޵u]f[oz۵ޭfjOmZz{^ (o}og&ow pDM%SUTZ߿ЦV@('4Rۭv}?qf4?` { /StMcC"91D!r c cr "91D!r cC0 (ngr b"0v ca膡:Auhm=9qxsv"91E)rLcS"Ǵ8J91E)rLcS"9=8QvN"91E9~Y"ǴyWbcFmcFbFmbFaFmaFmFFFFFFFz zzzzzzzzzzzzzz|U[zz~L4iQZFieQR hVƨd樕9*:zC߫EGŊQbbGʼnQabT5R_ѯWR+%Ju~%:Ҝ_zy=oOKz%`yOKPi/kY_jk!# )'dM:\ov>|֧׽(TQhO D鏌+:VE# R H)<R H) CT $N@J)R@J)R@J5vRJ H) R H) R HIA}1f^^K8 2)LAg BSPhVK{yi//好^?Vuzf5r ߲,vZ]hUo^@ժ`Q֞jV!jCZ[ 4o`ߣ#p /o%.:V4I%UkP^o9W6C*j AA7AA$)E ?S# ?US7(rY lf48i6NqS_e?짖ԲZvԲ[/~jOj"^EW۶}Nx&"W\+*Hx#^8W+mG-=xE|#6x" ^Wcj ^OWl+U)xE ^XW$+E!xEz;x ^1W+ZUի2^*lA *J}%hֆv)?씊S_LnmhS{x϶6ÑJC֗.T-|'U)4 >Oۻo'=I|t$'=)7$ >OzSnR|^iy:OhNvӌ4g9ͺ?SsӼ&48i Nsp,3i"N3qT48Mi*Nsqq^*%cNSp$f4 y8Mi&Npu;ތ8Mi.NqteTn/ԚMbST(6MZST5jMZST5jMB9uNS9uNSo[6Pl* ŦBPl*Ԛ BPk*Ԛ BPknwu:_Wt~>0MbST(6MZST5jMZST5jM ŦBPl* ŦBPk*Ԛ BPk*Ԛ vSyO.(dDևz*Q?IO 팑'I|R>Ojڀ8d\u;#I|:'kꚅfY fY(oV0-Lmaj S[P.t0-Lmaj S[0)EBQP-E EBQP-E EBQP-EVk,Lmaj S0-Lmaj S[~f0TS!L0TS!L0ު*jZVTS!L0TS!LZ: S!L0TS!L0կʴ+4e?YOVd?Y`]ڭ=ZYO&d>ٿOE'I}E>yO'}R} 'u2SeI}x'I}Rw'u}rvҟO>O>OU's}܂Eg@S&ř]"OiZ;=D2Hr]OJ>)OJK*w=Ob&Ciu^w$ABmPۯھB}WM㭳0TS_*+LPP0 CPZB `Xr$ )GB€,LIHQ0 Cu프EY``: SR eC프#!E jڥЦ3mpZjV0%!EPy0ThHa?2Sg2ßpO}Z_LEoxORs&ݓ ?yOŸSaOShIJ=OSJI*? *J? OBP$?u('I. .˟'I+ʟ蹧b=n42͟Oo?OS)T{}S){2ӟ'?OӟSП<'Ck׸==#kRҼ3 $6l*[ʖ՚”&U.CPZkVbZe: S)LkR2T /Cje: E0C P3VgaJˑrdYmY).G,Lv9] 4C1jfmdY”lӻO.Gˑg(Jpld.rV0%vQ3vkCkyld.v,LvQ3T U6T cw[#kȚ: fY4l5+kJP6T hCo+Lɡ9rhV_adY)94G>mO[”jW:L/V0%ȡ9rh emYCs0u nYCm(zV;S[k)ȡQZ)94G͹n2${ȞLWSmݢj}w\o`L;бu6zSZBvV߰7,a KmXjeO-a Kl0u;Kjx"H]=<᱔کRm}tH7=)ҕWڣu9Kn'ҕ3TvOEiVz`n!MX_tPXV~o>sWպ3/Q$u]4X0Wk SRdVٷFsj4W0%H:RT#8":sC9P͹Z)X*;`aJ*qDt(=b,Lɧ9i|#ȧ9ivSieo)4G>͑Os(]RԎ”|#ȧQM:TVgaJ>͑OtvvJ>͑Os4PW0%ȧ9iԗԚS[_Λy%Vk&^_!`Z:iY5uiNuZK+GS[k-uhdYevju%-nu[񲌹6>K[򲖗˲ gYˊ.KGΒ^b)>LeTսeu/r("_(R_KͩV7Atٯ,YK(-ngq\qe\..C 2t˫gg8.㸌2[QQ{p48}UoT]%w.@\}Ga՞YU>_h.|T_m?Ǻ~h ʆts?_ Tյ;db_- k2wGV) Lx1ZNӈz~oSx"TREt g o{OZ}w?gdi8paKlX]SϪo"J*u}5k3^f~mnķż-żmsKg[6Q>^۞g[g[ۊ򶖷Um^jVZպEmnkvmx[Fi[`qZjmXaZx%mxK`B@ CF! B07 ۭȧ0a XR\î) Ba'ZpN Ho,'إ\d[YRr}z"6]`(4*`9{uP˱Gv#eǦcU1ϫk>fXY2 K|{eM?Qѕe؏"q#("ߧH@AAz'n_[żͱ͵K}댷o]n@u}&8gXaaoxv%rlࣲFEջK+uQ ~:2%_e}7+_;Ê+:ZXq8b`Mx uQXa]u5e}͒K:Ⰺ>uZNx's i1RZi-vM9zw?,SM<-4 i]ꟺVt,OZiI%tZ)]S4 i@Ҁ@J6QA+pSiХˎiإQKF-E4\i~;{'Pyjrd?VE|WEap.i.|e z ϽpjTն`Lˍ \UT{'%6}e#Lrw\o>'tspmW[=9JGO~麃zeRY&Hϛxp1+߿b?*$Vҧo'c=7\lcA>Ul7,\㻔F$|3GEޞx(jQ<ëo$dV1цHZTd~}]si9_vkCiͻck8?ť>ϱb uu}},cIc+X[،cٱLсEg;cmkXǪ<&ew,cˮu9215>W4'x=kSo?e<9^ W,/y=Y&zkGԻ_+|^] +"]w1彘6[~X61^3 ʿJʡ8OdPo  5~j0KE Oj_ⴁ(RrQK q! NR7ju`8v>qzՊQ?TjAejW!^we\7u(wwP}{d~IOV5oPMاo4]QnL9+V7[mM!5*ivGXѥ?pfpNO 3Zrm;ky ]{lVYz^SKoTucqֵ=p}ug}zkg]?+YѵYO|,g]F򳖟UD̪R,gGgE?+YϊM"E7gXay;z=C 3DO-R3RO}B6gݳ zb3杩V\ ]^ÎSJD֦X}}Oqש=ʰs ULgc G¾^Wqh`m4}*x)R[AFЮdbSzw_kŻ 狨Z< 2GZΎި9 5?C݊|Oa; *7 txۏ9-nEqG]U lVޞD3Tg X2n<л6[8Q=9w}xlܣ*_kl8p,3@gX^o구QZک]ڭ ^^CcTju;HL4׾m6}aSߩ/<;FK-ݖnK7H>R%iyZ^vpi4\5H$)/K~\;:ݎnGRp򁗄%xI^2T5^MI^ %x^,jS[W2ǰ!G2a@/6g Cn}Lq  oW?xY #*;V{Z83) G@g՘#f}җ3%_Nݵk*FsW7K 2!pW8奈~w'3ld6wΖcϮCV u;p./rI6y V_ì>!PD~r{ґ߱3]5X&y{Ma9{1zogXŕXO[b7I,}x xT!juț˫:˪ѫ² cXÂȏ?GaRǰ?,b*ueOyr{ng~яjeO4Q??(DAD& ʰJ3׺}`\ dʳպV0v 8<~aW9 #i\S6ڝ<S{Oj/PJr1E֚QWqH^ lsn oI5OV_MI]UP?_۵%XKزCnӅbb}4aw2Vϧ{./kNmS6mxJIFJ"yIVxCf﫠aN$x"*FNF^1 o{iM Qߌ}^Q}a'l/Ϙ^ҳiiew1EbL-diEO+AA&QKY1?fh/uB ڹ{pIAAk?V@VfV9Hc5L^>̬TD,*UX3[ulZfM=0xƲ Xbr)hLQhR,H7תۘȍ Nvs8tT֚!_,v\i5wmf"h # ;oԾRHnT X5uc~ߵqS"B`ߧAS)#o ڻXgvD'es.{?4f.h?~9jlm]öCVN/YؔA_7Aۺ&mEAobvsxǶKOungy{1.gn$| 80*ngoG`4|/`lhl -c/4a `DQ0BL DG=w\Ԡ@aXd_]_:w>[Fxv^Xv5$h彖Hc> kd<8˅?|WKKJbAOH G=z=ہ_:nW=-;Ndﵖh!>8h\kYJ`)P7+%'֩>}dܒ8%#P Wd>39@z~(.::ɪ@Go]'.wCuvbMpHlpk[juzR|l' V?YqmؔS z.|j84fY,ޟTd񝳈ḰW' pm6WY:l> TOxTlȘ试>4hP[uJp,d\C4v}fR27o ޔ22RFRvb\BbGxVYYmqE֕2XW}\Q䶬) 9Jt0p! .0]ίVg(fK# wHWw¸ m*W40ڵ0M¸" @h. ޅ`,Z,xvy`fOvi]c-g|kx̩083þTtَr]̊S%VT]53QP>zG@fĹ.'\FQnON6) N&@-mkdCrM)T j-l*o_eƲ{Sl<}q%ttN:߶\Qsm:`WڃnDk_O{nJp4tn.=yy`XN(}B5p|zX-d xoYme[oPmC([{`o--ekp9XWx2ˀpxk`j_Sz}˴2xY1xVt<֕2VxV.`<`U`zUOr0Y&d93f0mzʿ'd<`&d<`vF(JX(N9xM#!Տ7\q+T14hh؃iSid I{e,4/k>6eHTtfxXFr9ŨVn:Y,S:Yfhikdt4nGb3^.8AJ[|-+awdi,-e.dl-t5ҼXWF˛dc"d(3bf}u|uf|2S-SV_þ\,gf~y:w")T_CLզhVgQfL)fŕt^3k&]sD$d,EbHL)_`䔘o)Qdwm[ceQ[%&?; sJ9*ߗj(EbPu*'QI56hCҔ9jCt,XOBW{dzcMXX@>aSJ*Z HgVS ZVКbwH "7^-*"M+Jˢ?e-inH~SD {ѩM2ϗd"&v(+c8aH-gm Y@">̊EIeŠ+lrwƖ ~ wdi<&TVgCg D\9;ysj5gLikr"d݄ 5NΝh':ng1ۨ93x3yy&/jCڣrNV9"Y: DJsL9f@44@@s GLA)lmZ}% \#,4fo'hVSu)Mh2jNifOEj~+ްAnm|D ^Ȥ>"QZwU؄ϰrzaJFd!9pcS»LwMǻN˸T3v {8'bu-)&ĦS!*S;%Q9ǯ'FCT$uMڎՆBHsVmF2TyyPmь=5 &|e#/_ 謔MRt>៚} ]FQ  z <^7ٴf@JL%d&Wy;mNሣh-3Z*L#=(1*O|T`E+(5 \k<|OCTb9 %1eg=yӑ^tw J&M`Fb֩ Oٲ ӱյǵ]\G 1i*W [ O.-Zn1hҦNd\أ3X9[l`Tg.1^o*C)3ojX\:ǧ+1p,9.z}R aW Ti ץ}Bq2ś䓙Rˈ[frLi9dfkYb抙+frT-뽝Y&kL9:B7d|2wbrLR$N0f}W(}nf2Lf̟Kv1g&䜙J9g&Cd ^L0fh-F03Y&dy]KNx(Vey4ui2P@BL1f0}MOmYVA)Zw z7f]`Z٠Mj`Ly;B#*&dt*r19luɣZ?8fb 8x+E@oWg]smon0&/`HE֕UIjuySM0W`m?DPi,#?. 4igi WJ-k޿bR̢)*VܙuE .d~kOv){Om/hl:`v[>QQ/w#jPoH6r eMmrU1D' leR5>XWҖf:5ڙ$pD#*cvQ2>6v7RiR8"izY䄩*OSb,FX2KBdz3I~e0v f$K٩Ȉ?+k'%Hڟ\_gظGΟI'!Tqװ"W+`P"/4򞔕zK"R[/-¸0+"\."\."\OЌԌJv;Sp>-ΩM\EXkH]b%Qr%N6BK,ݜI`5^SaqQW\xTk04.[>mpD4W`ܩU<1TH+QSp{EXp w@wtU[ۖ '3U,tڼ:.}&S{Lh~T M//mI]Q:K[6 Khr6tA`4Ҷ; ;`3ص]uM ?LRp(!{uE^E^%ggaZ Hҋ ЋQfN"C/2"C/2"@/(TrktEV^ѫoWgoouovVZ%WVyF/Y/ޢ-hd!'MvV+g-ݢ-jݒltkte5nz- ݢЭ٥]r?mmmZ/,]l;AkhDQTzB#}SR$~N^gM uGPBz(9<[f'T^"j·ӻOΟՆ޿oBi"w_B hmScd/6ZG`IR',uȦ0)[_]gd/t~յTU@!D46ߜ9-5(Ms 5hh/]q*C|w1p=׼ kSJۦE]TE]TâҮju*"Dj]!xxR=N[e̖ȼ_R{E [E [ԯEZdEZEZk[㤮6/"c-2}.2ZM<% ~i-֢5-ZUS4/J,Z] ,jE`QE`QE`QE``Q`ɔ_6/?ZXMyN=N,[90]a0=6er.?(DKY>h(րti5鼻wmj.^Ά*̈ܧJٵpUpUZx"mX%hۻOSjaYvSNH m6]"nбMRu2N$ĩD!ga/[Dz/Vn,Bj1,V׹-b|Q%hy,wgm `K*/#d/Y˟d/`t5/NiKzjSv0j6KO_?E؝"x^C A*/޶g]49hf^`ɪ 츍Q-ߪNy#$E ?&p}^Hcͫu"7:J_<6^ȂSCEz`]|Z8wwNkV;[4BXKt<RVz&ڏۙ dS1M"KxA9kVRS2¦ 34PBN]Sm[lۼ#T;d?d4L9m!?v/JpPٰ,E&PŖ=^DESO}q5H[TEkUնr_KqTR}Vנ$c-mjѬjѬV// +;+"`- ~/(WΊN2."Z-~QMJjiP|t^ufJxӕ(zԢG-J4b"3gV'/ zگ|iSK$`T W>Zݒn<4jѬjTS_td.I )'pQV[sk81kn[v\E^Rb]R.r+mB ջMZߡ:ykuaէ2k-kU3RĬEZEZ[R b"6cXI]͐vu%(VG.ntIIWg0]|LLsfz2ųg9v'$w/2o8ٷj1} /(\NS/饴Ʃ` \+M9-gwj(C A"җJN,KW4Dp5u7OR8q-ZMP*+:/}ܢn,ޛ~o%U͠K7Y!(Y/l,+91:W^?▣ҾDF=GO/EAaoI^j,֒XGykVIu]R]kݷԩ_K.آ-&%uI{]%uA%;E/K ErXB~brіExY_lNY%. o5KAZ[bFPn)[-(֖׺nCcX7&m&m9ׅۖc' [:Z=*T:oTZx*rUL5P<HdO< ^ YpgM6^Lu"zsا N^mI K}nmVK.YZVUe PϮr@"{al` OjJ_JXRQ:UIԮZ%TkT"Fdźv=HyvӉòBG$5ď(, Pbed^@[&v9r7w~7p]T}O }H'TMSֻZ׿^dd.MS9'ZT!јպ@@kxdMےI5V7ȷ%PBoݣ_Ot݇6Gr}ʠq$nh{m& !y3lM܄M$݇AتE~j7{T j<o&'Rba΁TXbgF[prm;bXr+ 4:>3f|,)E1 9Q 0n3"3rnrò{v.}=yӓO /CZ;ޮ)̻̹i[20+:^[>@& n& n& nMDM- JSV7@& v79pKv>Dݢ k,-nI{#(;aYs5^n[>ݦ>FY:ݖNg>LDDMD޳߳)W쯋6=冾iϬ^$ݼR) 2](O\6;N01YIM)KeFE2Z> x.vSwK.=B>9Ϧ#ZMi(@Р-KuCS'XIRq:Jp[]6ڹDԙ?qU\otO] }7$r-r3l"m=n&[o?VvbN( b[:p[>VU\嶥_n闛 hil:TȾp-T-rTM6bmKm_%V܁0 0V\!o"&o")I廥r$j:.tM-n3mpĹemYp{Ej;*ڭ02*/+թ}G7tFk Rш+o:J*3*F&ogs0zˆЇ/&0a],Ͱv9@Zʔl;:o\]/$.E/6-aАjsƇMdAUl-4$u%>iӨdJ)\|Ɇ'SCK:ٸ;*uʨ0R(IY6%"JcӢa(b34}.v;ys 1> pg߻l3죶:[yɭ&ݾmimT4;[!}+** ێzoڔ`yro݊xcm[yߔͮz*֬|ЭDM[~\]ռϔFͲ-ht"-xatF~iۉw6 ç ~d{왪j]97~wt!?ShQ~ X/e4u<-wQ Rۙ}4vy}ݕT].^Dz:y[sӗӱNg=Q6T$PEH:^3a7U<^ő}vNes?R^VJ,_tcQxToe' XlNL ` HW;@r&9FJ`]=vgu'. j(&-AQ;^LWKnBMMSʬ؈m&oo*p&wsqv[QMN!uǥ"nwP٭[]~w~KM)wRZ[bѺenI\9VR^-ustͲ9w6GVrlyſ|#`gf-oy ]3.l4p-E^jvi5ԺGض[2(nE`N"׺2ԅi,diclHEqJtZD{Qa lt@F&K:T{iUi7K1k?85S<ǖ֩26G;u=~g0wټ",sY66 )P$0LcD/-tFqo*|Զ5buk dgڇRUQ- t\+~%|ۿ nl)R{e8f~0JyT'}~-zfΉ9Q͏yP6F~Ό[7ʖʁ]pm5;d:7'>VN&%Y$ tnޔ͛v6l>N6͛_B=rEf f6`S hV}ː oŴvh&*?Kjs6_K| DXΙIzwuXN juog4oZ r-l;mﰯTMn7Q< Ga(l0ewO6C2Pp8q&iIEjWE \Mߝ3/!vJCM_]rq1nȳqƒBʲ>U>G_m (Jj?ZZ/C &L!MEz`eu* ւfp#ۓʚR۵>1rUx%N$RP>_HEƯ/gkhx?{˨G]{|zʜԟQejFOce3l&䲙\6fr6z!frL.*T[6{3_e<%qoomoVufX]q59((SUUʫ[K݌0[R]دhKUZWR\ kngys't Z768| [fH !a"lVz( Ptu͑5zz7s–ʻ_he^Om3 Zd^;氍+ӣww`)?">m"V},[%56'W-_ht}RTť IW)힐tN?6!K |O}q(q}G!lثضQΫ-n v6d}ꔞ[v;q7≉d>IY2ܚڈvf^>Khԛ3aT.]+uwd;۔ᬃGڗT.0`X-۾sl$fuWB=`xO@b>s`{Ops8QU8E\%>,O8idx>`͜4tL.m|`o p3Y\,Vx0$CB|TH.z.)ZW}حx! a搣`?OWYpC3{.}.}.u h;zG*]wP:)7CS $`EN[g?l4;%5t:GrhzWPل^W?ĝ tvN,a*Pf[^*7~ٚW"'Ivx'2Mܥ<%7!OrP8AkyzmF*O3uӅ՟+'Pg/*aRsNX|ߚω<.OIzD%68N:IΕzQDl(i~h7żhl 䫖Qe*LiIg] ֕ eU5tEtz.c-["X LKǃ5}.Z!%Y%Yzbf f`f SWG՝L\JV*`o U?+KfBZc`k!:9!:..B!8ȼwRlUm.enL[:*oDNwTĒhJyj=JP`gު疝#ޅSU4n+5|Hw.P?Ǵݔe?5esX^ݻWR wՖ+tzZ!p35Ddt:Ё.36F!NKˠ\UB'm苹̸խyzu%jA$f0GV>C=DI|SB LpȄDiHV` jl>)\u#X]=oL.V պT 7$yƫ mjM&\]8Ty7Y?/(4Ryd-6/BLLA 0֬}u;ƋYFMv~0$CB0$CB0$"YGB,v~5+R֏3u&3>{ Zu,qԷjYS.MkPt2v.$.rl3e$Um|`bRHפC' Ab\ur_^/^ONE>huz*">yW3DgU{HsU@RȪG8lOK_)XK+mAlP)Ekb)-lm{8{z}ܙJsLiAZZzW!I!֤Mm3[Vg ~u}>>-ԀDC(DC:+/w|/t2%$`~i8X`&Yh<0ѧ B-PbeYR fgwT,T:PT ge#bD8!j U4b&_"A яv#cSz?hM|N#}muvv5vQ,ĂXa G&}m}^@ ߵ]/:'}Hz+Sdr5.E뀫0nʚ}mlJZwbj'WNM[Jܥݪ9sS۟dS[^]Di]@dgt ZM*#BDiQ>,;*Ư*)PD.b9ʡNk&(#,8@j y 0<QY'j}{U;;;ѧqOٚWkm=<^ GsF$ɦhμV^"P׿kHC` F`o vh#i(֩!1 P0 P,CX6a9F868s(8" (z'P $.o !E4Kad۫\t1T(G] ZƘH+FGy5O-fH4l'8SoZmojʻ[E{d>6FAG}K˔` aEkԏZiͱEޔmgEv;bIyKz\"@\?t!+8\*yށNw\Њ$~〖dJgrpi!Fݎ 8J{*YZDB ba Uh}PA +-psnÜBv6})Rvj+4e7f`,iixP!x-~%0:S$?J(Sҕ)h S^ydc2P?W$GPbc '*x'*1STtK\B7BCXAp p2)1NT0NE5SJȆ:ҽR#ޱDzI^apV!em;~JKRNԸ0Hg߮Z6g@O޽믹=% OG8OAʳuJ{kֆTd($o*)TSv6gIitaWt67gZF/J铐'xgP-.tAPm54R8R%.|yًL8j?$Tꑠ[w^С2 K+]Ϋ!Eu4P1ω}~>pfVK.q~u'Yw{THkɜ]0Dr(݇!aҫwUa RɌ\|3>[>dSծ=JFʠ кȤW1}1R|~ڄc?J~XMmR-{NuR>3:Xg}`e{?V-p &Pb 3oECYP(!T na#J&XmTήV7 &ٮx?rē  N>B`ĉ~غEWU8ʳn'3a#Dj]j?'Xp'o&|]&oB~Chn-|`Mm!MHnCmhS<Iq MUx䧵ꏒV.ʵIN w+'TϩtuiؗE]AqקEj]uYSE; 룼kQ)әwhSmW3!-za;3f{2ӬI[Ot-GD$ U<3\ 6kS''y܁R=avF#C~g:lmG@Fi`ѧfWt)D<&Mbϔ#|~٧ûT3R2?mz|주W {cdּy7;NP8Vڄ"R⑱sQSH'9z' ^K(fg ۠'SjlS śl?l?dVgg0C]cn.;PbU^A]qE$?L+^: B,<(OfT$Y$Sתn3Xr΄q]Nju~>Cʗ$_Q&*.Jߑ7ֶxzXl|V>D]fJ*YLGn1?ߝU߮Y [>dO2.v4X`-G^GYOw"*=MՊ+f0'd냻8ܹ ;OH~,1^gc47⑘vUͭo*}r٤ VswpoÎSiw~v r|#x8ZxFKm}LAgUYy1:&{y͐jɪPj٩/v6α]D(Ym&u'zA2$oH^a$䝜0ILVduI:l$KuեsSn$cK2$cK: "gqkq!'BL0%gצI#> !1ɄLɄʰT+`.ӄZxdG..+rv5_N᎜Hu:R9tor-$Br*$BfM+7Q!Tr*Aú yܽMNYsDj0~\(ѦQM(WA-^{V\o'5&N bBVLȄ /qGo`I. dTJ[mVĸ^%vw10|mvU1C@H!G nW?6em~un{og1o栒^Eܽ轝A:;ե^=]#RYn;ny=Q|Z+vڣaB6{dlI56r)͕ ,ɵ3mvVru%8Tr53H1WJ,M_mY޲d8le/Rً&_@ HHrbѨV/&HMPZ@R|V[7R"I2'm?H~$$_'gƴxIW5pzZIO{qIyO{ާV7$#Q‰1Mir[d]ζO>q>k;#;@ csvlŎWn;qA-i3?4Q\u4RLy(a3hi͝6CMO I-xސ]l,|Pοo+=ٲgIjjO_Lfq:*w2;;N&,@N5;7N| Z﫛t\-bs:anR:%pP]fU&2&Q=lQ=ZFNg$$'<[ '< ~:" I*ORyʓTDtE'fPRNx ߭1&yMxdz$gt ',o1WJf\} R,/NX]/`EvV8[%{YGV93s,eE9jޚ"/3Nj}vYպ+s-!'t"~ݜ=Rhi۪Gs=wK'ZRl] /п3^/2H}1INAҿ﬿O}34FOxXrҿٔ<6:A}+.R`DW&y}*A6 V\GRa:q(3 t\Z",jgɆ^O|`:1d/Ջt^EEo?;ӧxd*G*.+tC,uM֮.c{tt+R .ν1py{ Mdpnju81<m+ g)S"\Kxē$Nvh)Bɤz=Z+"!yB9~Sq:;N&WW]#1G/S]$I:^o?kZ?mݒн̩XGJIE{K ]#HDŽe<( MX}p &(T!BN)XƩAyRHu G P `=vA7pr7oȖzPX-oC:cv"k+H){vݶ-j'KT6bS;uNj5ɜɦ<$mp"z*}X!ʜ 5>?"_{_m!pÑ?^'d+]FwuO;y:'dlun2oV,]fFdc;;K{m2\Ȱ6b&Huii9%ix T+Gd!@Nd BOU] |;?֓؞7BvRSIT"_ NٓD$|޳هORғCބ$' =ղHBz :@ _' +7FZ$' yz%:{,H*?C*?d?tW(M 6dyHi55}>0TbV84~;v:XW(r1*G>E2j*7ZrưFtۇOҗO}E Q: dC}0cϻ:4_"Z8R̃%].J+dBB xФ\'3-Ս_PPP1kVxAl<50 jIDzQ Sa31Tl%:@%NV%F@%F@dYPUXa&Tbx&ϱog@ނpN@,؟0/f@/< (^X,gH9šq Bw̉C)1vx b+yb+ #yŽS}AU_񪯘+fS}x^1WyũbB++pzũT_WzũT_9EȌ {^qWͽZ_qk3bxWM_1Tl}._1TkBX1W<+bY@+fbb şbկ@D*FAbߩ*Бb_1b!ւR2C0vF̨N\謓.rEeiUv&d5$bK 8)!2g;@HgC|lFuS:S`n:V9ΖGd;qfr(C!n!cSc*㝂U8S'4]RqF!Kh|,={%#0\&N[M (*$ pAdda${ T| |H4&]QR;ީP+=M& BlD%+@f_T"dUq'24LTP* :X=+ :B̐&<+Պ}ŬZ1V̧*jg695⿫l%Zkh# M+8 fcyTl A[ـ*p}TPT\+;ת2CT81 rb 29NAT`A8TTپ6 *`DF;%mG5Q0O =s_5WΦ"Xw 80A!AC2p$u"*H=\ 7utQkj٪m5Ǝث[RcKjlFmYHg6k?<[Lcsi0Y dW 1ikĨĆtppyxUNXjbw-/@W L6;0bFTU3* Wk ]X9|v[.d*8 N\%\[#+%ps| IGl)|4X4&;**GTzТj!j20]!G+E8ȱfJ p%FmLV 9q9TJf ?j r!olB@q*%t YfӪ"?0J̈FUJ^Q%nTqbSU*GT`Bl[Ź@૕X0CPU̐#z*QXQ?x̐#BVsY*$Fcjh{Xbg;/PcV)-@,]!E1M(t8St XH,8vH,h|E&b9J8bG78/ƈdf:H8& 3B`؈6';`C0 Et:V(rFHH9Q 0F(E|0"#7vg, HyH )#tdё7:x;PdۍA#Qtz@ 5qPJ[L#_BЉ/0'3r_Hq#Ώ* V6S'To[(#bR2C!g*%/tw_%@ͯT6ʁ@bR^ b3͔FCT] ТTv U)!Gx"fJ#< <̐# 0Gfdq߀,%D~$LZH+i#%3 ƪ*`,3Pq#YdϪ*Q*VN檝"R2CRpt޸ )X!m\V%'΂.E`@Ph,w% 1fSV@ZH+i$M4܎ ڄlaa$]tBZୢ'98idV&?_A%NL}SkI]nnxRG3Cq K]l $$Sx^y'^GC 쳠k J`2i!Jx*`%ND RA@ V jՂR^ sڡX aHXaQ+p -R2CS΃vB)y53^B)!J +0CJ Q SBLd?D_TLBDS4"6=$jO#jO#._cn(QJ^O^!12Yd+(ZmvȬ(!D;s`LGA*vtBuv@0ΔrS.y;ض6m$큘~;CU $/ހd/p x<<NԃR€_SQIy1 8:wHP T/0 x@\n~OS' p4 8e͑z|^ݾ < tھWk4z!* vDRyeʋ P-v<Q"DF)9p̑24>iBY`\K49(6R "06L h40; Ns͎$fdÑ*e~iDhO܊RP)i Z7̝-$Xcq* 4z70> +m@4,-YiDj+C'06M j‘B&p f!/Q F'UJHf Р6IA͠A hKd&@jL >yꅀ(Avp$= `8#n= P:ƴҝƴNԏ-])X$@lS A;D_@o;DOˆّj]9Id&[2^hwI7Hہ2C$bb$DqZ@ e: Q3L F!Nhn:#"5NN.4Ԩ5'GGRd2;S۶gVJLZEhHEؼfd;;N7wSP𿰑*&8ii~׉J)Nt:!H#0lR2s lNNu:Q#*mdf%k^uUJf"=Nv> 39ݣD͝ ѣcφV x["ˣ#w0JyBG*"GGTݝU&ab@j(4XjvNN27YtHC8])w7GhxMn4FcjF(: YhTQ4Za] <~BБf*ƩwmU"rB#D㨅Q ZD|-de=Dnm))P4BJ!34ЏT dkĚCYFor~Jy>吅fQ+Ga6Q@Gf5pek%t-Zz>4HPtBto(1}gX:#2uι֝xx ]윙8vƱ N;:#A tƷ3=%,3؝&wX)٠x礍̠3]ZFHJ uaBt&DЙia*άo>!3ćҙ(8:3Q8K)CL\Zc!DLt":ӥ3i:3i: 4Jyv@el`c;t0 LC̀YD)h9=MA|;0%_@B'* s"=G$+$$ΒV4R*ˡHCޮ7R@RD<xRBTFnDd\OdN"Q̕Lq뙼EdjQ!;Y*9MZĕ̱p{5Nv;賃;#c;#n'TspXX1if|8JLWT_Vcٹ5ű\٢IMf)Yс`WSpٔzR2At&3:PԤ5@M)%8&֤G;^:xm[s tD@QJfV"xb(%3 Q׸@G߉( tJE)!3C@N@NDu°DB(%3d"q:vA:;E:N@wI.Gq8tse.;bJ缏00LZ1YuZg 9.rI5lmdr J,5[HtDIτEH 4ts<p a@B)wMR!YXdT )<#fq1[Fʜs9.CQ2UZ2ex ,@= wx !KvrL)W@bK"TS!8p v=-S\xIuހ*SJFV6QF_ ļ6` D P\z;B)eCEb' "dD0@!R^l/3g:Z F̐&tt=DOGGvf&"t&3nD@ꧣ#M$ROq&"G)!M:`X~6d"^4:!B҄BDu@D"!wb7's݄4.;tŠtŠt:NXgP퀏:ࣞMPss4:z}:zIʋY9A3K'A/1s0131&Jbkvy%-(eΓD$=J8P a:C\NGG)A$:*U{EH8T& .(3TK%+ϣ& =3W ѕ3*Ԏ>OXTus,B1Ã;Q\gN4 ,(-:hDEcN՜u!6R"K66J&Pm%R2C@u[:SrhV1@Nvelx,/etzg&4&L]V!0Q] ҧF)(=xDo $g/DrF)B]t4Ot>l7L;:QJ)@GG<$APPu tAhP#RJ<,^@AtNzh" l 8ԞHA\Iv5s0T5Hb^S鍉7aMZ~A4c?͂0<޳'xȑOvE-{5y"y\D=CW<i຦gZyaXwPO<;4 <5` uB!E| 2XCb;&^:mN)p)Ă^sq)wtpgu@AuYLoԁu@7n@5S<:Р ul[qg j pRj6X@`Bj)%3ꀅ:a{5`C;""HY'Zt$͖:X |s%\"ZJDSX@Ѕ. HvpD2<Y8a% Pa3BƤїwp(s`V'i2dGdÃ6 o6m,q"TZHw̚ :`Fl7*%3XQ'NDoAY,MEtWDdcAYtF8**%/2CE樔w`:أΖu,cv$JdFuGQog:eĿ2_̐&GQ{f< t:t6=:أm`IguFDꜞ8w;R頔z3Gsq48kl *9hK R2c%M)is( uL]uL])앒9D^ fDf갺 J]V3,G'lZT^)qq| m1kM䰔==AOyppU4GH#Gdߙw|x %(=OxŐ> !6[ @m ^&j8vƈG`'mGy6#\;NΪ&V\Q ܁uL0D#%xz3Lg:;19=0yj@ RX(ZfdXfdhdiG\,m+r$0Kv硒E9`WCeTT M*b&P4Q|{-3kS/O<`( BPJf!YL! ` JTxv<;HiHiHi ; hR2CJ+7@J4@J R R*9WűDHiAAAH*ZJt"04@J @ @ @QQmLm О )Om'P-P-P-P-P-P-P-O-O-O-O-O-OM22222222G2G^+%++++++++++++K%2'2g2g2g2g2g2g2g2g^l+8++++++++++++KU2W2W2W2W2W27272727^+8++++++++fdedededd"df N4zM) MdLcJ*ʀ1)@)@)@)@)@)@V%8HS4HS4HS4HS4HS4HS7@A)@)B"!M!M!MA!3)B"ɰxdP4EHS4EHSSiiiiiipyc8HS4EHS4EHS4EHS4EHS4EHSdcBA")B")B"ILLLLLL5]GWꙃ"SZZZZZZZYYSq́́́́́́́́̑GF#####/NMq2'2'2g2g2g2g2[f2g^ɛɛm222222222^\[+bƛ#͑tdg<;t-/nmvQ ̻l !B")B")B")B")B")42C")B")B")B")B")42C")B")B")B")B")Z;\@4EHS4%HS4%HS4%HS4%HS4%dh4!!A)A)A)A)ALS24A)A)A)A)A)ALS24A)A)A)A)A)ALS24A-욃NwQƹ(Vq1Db)mdLyȔLyȔLyȔLyȔLI9!S2!S2!S2!S2!S2!SfHfȔLyȔLyȔLyȔLyȔLyȔZ )LyȔLyȔLyȔLCEe2C_+|eWĭʲp3_iQ*$WAeϯP!t됃 9 9NA*QTA F\@@4hfhЉhЉhp 2  2 Ģ ޠ *Ҡ" * "@qoPU0CF(4w44HCmc(s46Hyc|DAe@T(P_dwLBv"]+?dLETLETLETLETL%TLIh4JH JJJ)*v*Ad*Ad*Ad*Ad*Ad*A$B8ةJJJJJ`d*Ad*Ad*ALNJ`d*Ad*Ad*Ad*Ad*Ad 2%AH@Ii&]_܍x?dd} _Xqdz1٘l;1 CC6.(1^ȴjay.- 1Dj^+c&Z~Gд=-&Ȗ CƒG͸ete< bkңKE i@pOSJ)TنG汢==! =a =::8=oJI+OXb.5d<;;<;=xsq??[؀~]t~qvtk׎]_{Bvn:<:Y-~|٢/WʍMpM/7p#]퍼_|?n͍ſ>:GX|e}#lo|ϟϿ{Ygnb8ϡs877G/.Y{gՓjnu |Y]ڸnsӽ?:|}īA:8:=9_.4==p7럋1Ϗ/U_;>;_OWG{NjFcʝZLgGS◣:{jqOre8}9:?->;-ճxj =?#PgFەkNF6= ӽh}/oN.ǫ{N9+nrOE5e eK_}¦oR/}(_}9䫫EM5ٟwogvoΝ1~4r=}w,G'?}-VN~Ν(yǣEG' ZӣޓIO :^^tY*jwq~m:b<} ,ǫw=ԸuWUw-nȸ?ޥ__.7__~PO(KoΣn둋ó'ߺwc2٠]w/N{߹{q}J?!jmŦe?7RkvܝZp͎M]xO|Y=kɺǧuM|Vm׫ܼNwYL6V=bW|F-ƈ<\}5/z>}F^|{ZWvOtԍC.цx\P]pS~VCεӍǸ`^1ˏ7vwq<~1gg -ƫ|迺~tzz#F~zt"Zۿ57H<:GFmFN{Ko"T"b0wU2sgeO?{~w %hǨ˱mFuqF(޽קc"߫ ӃIZܹM':_.di^rzxwmԦ'㗼:Ƕgd_6/OW_^wz?K9x^,sFQ_$b %?W!󟿺 W.̚6e7F/i[z ߳YPÒ\iMڥ 0<w]>,^ƷDX>zC[ˇ~(}5dqo?ڽqqyͿ]ӷk\ {zLuI?WxƩЋy%pd2N7\W W>fk3/r&x7["ޖ;OVO~w@r~{o ^-/_n~b\P?8׭]?[G?ix_yvX?o>{]? ?ݮ-? ?ݮ-ӳ15~o? ?ݮmpon׭]?[gO]? ?ݮ-7vk?S,wGB{$oQ?ۭ7owy7[6MoU~~f)wy_#`ߢZ0?|^m|gtx-3wfoy'W^?۬7u~]|^oo~YoU Gyg[wy_{~jowy<dz8?o?x#S߮wy_{~fxCuo?/0(?ot_[߻]?^ә~wrt[ZUڕv[r4+9=BZz͏)Eds;㦾ǒ ɖr,R*Id2|k+v}э0F=.r'׼ꦆ*{k4Κ<YjUR:[^ڍ"i"Zwϻ!M',+GaJQHrutHTZя-eOvȯlj*G(.w{YIWҔx%n$܍a$E;#ŢE}գJyTp$AITSwݍ:1<VdIq\JFS5%QN7T>9]ikUU%YÑHՒwPݮV*vL7]o4V6b1V v6GEF}Ԡ̌{xkU]vbmc&AD{ xA: }Lͮ-{L>d3lb+Lc_[vvm^ۼ8OlAͮvnX:.x%AITAp 'Ѝ挤)#М֙2sZeNi9-1֗rZ](h(KKie9-,u崬\}N=QZqj:-8rSj97ڜZsZjN+iFYZg+sZbN+i9/崺ZZ^+ˏuLTDZt%޵ltBZL]+ktM.2E_hCZ]+kvصd5 5;lϑ,LS鶖@W٭pw[mqivwc*$c컃i%nw=cC#ckRŎs[Nh~lth h9nc Ա[ xf0[b(\ꚰ;l3]3 f0bb)qa`le]%"%E"-Z;7nd6YCrRH=Db&vɒW9(xgфȢqEXk t#^$~Ĩ1cufEB)Kfj(zdL/"hYCͣ5c-(zgT5ʐ1譧F1c5G}Yd wS̗fE&p$/49RhyBzpd,'ETd(DEoI;xj(ȧ2[4E2R:Ѽy1)xM١(u)A*EcW%f1nWdq+UHUN8VUٷ{Kw5l@=24Y2Fk"~_{0=_(GһDԲAkCՔzq-ƴwqUpCnϚj]˄5R QBL^J"BW#4.&ZbA]*.-/i|@*ƶFI5uk!rzSj$kw^#  bm=p"YdL!1d#uvhtua*xny;ZF٤63ذzjQxMfQ(tͪiB-ߡܫFYbM3QsM6(x5"n>1{2kc4fֱ=71jH<(STc ?hԒWjnZ 2a1)KKJݯ988WKS.b]LvJQQHϜ4GcQk@")Zd^"vbt0^(b>7g|ežGmcd >1-?N&J7VB;xf/k9o, s2bp0[,^ .;F)K!|F 4&[S)ٝƼJ16_PErNZ]Ti49/9)8Y"s`4Z9i; ])#(Kd5upMDtK42Ǎ̻.y/kIHE`dsMdf#SObgK0d+犖Qd.T@Z>/zq zMfEƁAJ K[ϨK_i#F]ib7 .@jqWZ<=Z%iK;$ Xoi1jW`USѦkU1^apG$j%C`6JSI ͙P"v<,g3x 5V"ppM&,5d":W[3b+E(HF_`\%NV!M1j$Q]XǪ6``ǼlsnHI 9ajLe *@'+zM?&qt]iӰHpE~krM[U%ت k Zpc2h5mZ 樰|7I4+ 'CZd~ƪΖsJQdKĊѶyN6e$ ,DlڧBE6%fX(b$z!G6:%H?#"$Fj(dJiCPPY\" ōf(`pIhcު7RQ.adՀZ d 8 PvS<7nP4",(5j6: ^  )2uY) bċx=uX: 3`cVW,XvӪq#3DxbL|hҙi9hX A@z:BT-Lx\o5IDl=R3RWEAVŘ@*UAUX4Sn3z1Bxyig;@i]gtt{*L  iKV/S5&H5! tBED4Z=~%>;DA#輨YZj&PA7VvA!SPP6MW( eD 2l|et ٠;ƐD+ZlUYA d {YimTr53ׄlPB,e k)-O#Q8Ndfbh+U G&YGaaBVg@\c~Ih61*IIWH ajP <R,dƠi# "N4CVԴU0XcZsH}V0ۢBR>6$zLD20*-@ApjLB.qM a 3^tT񬁂氛$>LM1캨ގXWH4PRdXV4<ټ)vK(T#S4B z[j5RfCV7"8hK٘NIkv7yjw8.B4jѣ cDĒ4(K9s @LE0y%T4FrY5c :`ya@LQ(Hbt`~ [t0CRƺF m*,;Ioc l1K숺bHդgiY^[IpGlNGRD^bK:aQSPi -#1S[4 3m p L1 N˨` -Mnk4d Uv[q\f9\3Ltj>jR/>N- ېI@VHQpw_تhZmpEqL3mNs2 19zK @RѼ]hJ\5? mY/A`UT.#p]"΋S(&W d,G}" K(*-6䤴ɶhjoKZQ`WP9;_r6Ɣ5[VaօuL!SHu4׆ ,`?d#fΫٽMVюR~aNQ('q5SF#rCD ?OrE[:xGv'F[G0&k,氺hI+((C[%$ -bL07S1,ѵ*"K "yiU7cf'XcPffi7^ ~_!Mbu%:'"F#EclجS"k *hnKٚRT!'o(L326},xr?ڍe0P0R06uF|X bf{2S:t#) D61Dcj|&qƠsE >laGLT=:٭ħd2Yf ŚpV1t-@^UzjN:CVP0f/h'ZFEJG~bل(taXP>X!Ee*?: Ma[GT-8J =4} KȰbH3 Ha?bPĔQczk7Hҿ #OYjSwʎbu8[;TR5E) 8wOcržrX>+h&;-0dl)G k;uHJ bd`?3CŶmMfzfP!J^ x6fa3t0dYJA'Xtvjd4C}Pv!0B0fk9‚cAʄ>c*b gzWlch,2vՈQ`>@:(]FV)JgQ@֠). ة$s "dRrrLBIL1G5h:Z3aaOLQ %,70zmXgDW) F ƭO%h٩ܪ4 L7]&Y6=x!$1aGX "Yc1:L#` fKcsw|*"Js-h */b3Hal*PlVɦ3{:K )|w<1 h7F2$*u+C"Y$"dӒIOr E0% W;,z=7 2emQ$MtPH3;SI@}fa;bxc>9$8( 6F4(8:&LgZMk: Q =8-SW4ޡ(jTwh8EM6C1D8 J4G4="@#@}1*bG`"Y#Eiiΐ N DuDO%Fcwh3!%]:L77#s5;: Ji#MɸhT0cnCXS5 @|ɴbnҊao5[3 JhKͨPzH1 >qT1,:2f([FP搧=pрC$ 3)Nj [t-b |p8 2SP,(õ**dK-^ʼnbsN\@!,x M12 Tǂ#qDʛ)a9(Z8TZcuѾ mdv^`r6kn !"=&@]!9aAYqիM2V1b>,oE8JƂ^Π38cS>1fG^f7%\A>&YuH35FoYDY)D™B6M(-ѳ'9C;fCԁ3Xu5y@W#T"V}BMYVC7ތlX4eA$7  8 KkJ6Hޔ~Pg $\su Fb2vX@h/ fqA# pȄ ?Z:A0XAR85 PuB{_qs5Ѵ ˃-xC%ufU HgF,Ɍډ5PT{m,uݭuQ:~&ܳ`WI,5J=llFU[RtE' v,t";x%tnoh(Uc!t4q]48 MS0 Y!) j;00k{䍏BH6 svP@ҮfpƐ؃5 f`ĺBR+r( Eիh':y #\` p wһDfFMɤjmXModc+[HQx& Lp! XU.`a;fP&(-f1wqa x3BW:ҘR=Kfgk3鵎]Ezи ̛q}5͒l5N֙z惃*hMJ B6㍽0!6vDf$Co>]fLYH[8`4Mq;2]DU'$$FTviz'͟4φoMz1-SaESB7rA1˜/2!@fM'/}6@`m=(Uk$9p$NO:2 Xdf@˒ن nBcv6J?7ܭ"(|X'f(ĚM/d@J&7"g4P?v9 ;# a'Dd*ڑnh, $`pv"&*hN@5Z&7F[+cR6KPA^blb3k&]S: M 5h͏A20l6nPiux24ceNE9T3vlMEbp3 ;}i3gsFX.}ùCd !8+a^SG թa=8us70\ Eq,r1q {,cdi(! gL'jL&g/ ѐśʘ * ~`9]j5M>G 3cయ:3a9D}qPw bo]ooL(-C 0lҿ*H lii>&gC[tm-PJl0EG뾫1]8獀D)j8m*IgTo=TKZ2dM19rL1|<,(ڜ MMmfp CLP &?wSTR;DP[f1+pp  8@4ڏAk^@n{gr eJîoZDp`3&c b/;-0hC<GxEм<گ P{)c HY9bH=@>TVaU=FSl_R3Q \ 2^͡߂`|l(Yy9'n'OS"Yب QK~LU2{Y+RtH6 )[l큥V*V pR졞ɺ/IA`l;E LǛe@w"ySPPnA elWA#%J6 ȑC6!3uxFFQ@K"Njd`jz F-ESq(#K'òfF `yx1jMiJRRt<<ճ1cFl^ 0!Nn(gPxWQGgƏnqD!bb1\y1P 3PH` hof;F8R-k2OR4޿:Q RhK(m"b#AD+^ű|EZl̾#Nˑ\GOl66"EAa Yj31jEv.6+SSv0paB4LgNPy])l7gN,F3u@q*nH',&P:JP LA8%\"UA+;X]-}̅7+qs)j D.'5&vп`7SzP{Xb&)v27 lb]'4BH#ݔ1r`r3!M6׌"lci-dOM,d:dހ^cfS-1I1XR"$c) jLAn}@%- +,mjʬ̛լ7)XXAo&L/ɀBlN0DTp"YON4̒8$xv&*&'lB¨P'335$Yؤy"CBaSQ:8{g5l$ԈO@jw Xj85kBNfl cBN@ d'`* M9I-zԝy$֕D\5 A;\! M"cOD)KwF$㘣&R޲ PlbĨ8L43L8AHtcuW `ٛ/oL]0Zf4#- )כ 3=&x+ B,D\ʣPs4+؋Aad”Mu$(<v)+8)Xh),DŽ6NHѠF 3'?M^Ɩz(WdH,Ͳ @ 2)3H&GC-$pbŒ3HSzFuسḞY<˕Q2V `d [0ri2r6]Fm(s"1fVt@d0eܐ2h !pVdEF8Fd } vFZh22w”a3-V6%E`B)!j Wr-#RE*Y!8C6 3 KaÂ]|ʀzB I1)2!,7}„ ݮ ,`J07[]wR]V(& C kǔh rv.UE-$bq r H(o9OF|"ba*(يE(gaVq 5+A:' !OVF 0 ay:ˠum"CA] Qy%i[)@^]0=E|*|TW=$,d_UC xxOŊ^-V/{~1Xnj<!ԩEV{uV3FE+x&e2@+ BHT؆&FB*t`d5LqSSDG) PyT(P +NkfU]F3NǬU iRl6x9ZTXJ O:rD~4 ^o* bEJGLZnWq4*^߂d Xb&A-RّH ( $M"UAP3Ѿya(8* E,U_*Dm|ԆJ"T4?IEҩ?j|-wY^8uLRّSਝE jWM*fNlͰ :]݀! @ ޼moP078EiGFӵ!4FH||X P8MhތlạlzhZGfZMOcJVnCZppH}ph63 yEF LXp ~qu dq X +@=ذ54-Y4zfI}0ĊIަ<ģXA=IfǓE ,tcV&3Jlh. lDgh鼙FkA6k)KT fÜPqBWjي~q t$27`3*&8y3 A54B agoAnd]G$Vb7͎"#vD'%Gv$ls"\uh ljGt F,#,x X:\yG߱t í`ʉxT3Q(|\'HrgSM:0=Z``_:0H k7рю+IP+pÕw-:\qq,+D,`Nςb*R-B)X+PܮQk41jژFD~ac|goŽ~ĕߙ-3;H-Ɔ•M^T@D5 Ż@]pގ5g'~%{3Ġoᯈq f:fr52'Ԫ|ڕj/Ep,BEdJ F&Zf c t1!yԎ%@g1qTV+DN eGfŮd(Gs")u‚6ȩy;wi&Ox9^8ԢЃܾxV/ QJʌ(b$M7+'I_*z LoPEf{_dd+Ed&☯2,89s'ǩx` m՜}ǑaW""6i!,x+wN +r./3e|AEmv]"BnA^1jy PG('.7EyN# ,ضj O@|vi8|S0iV\&D)tlWMpvS[qBArGL bLțI#flmA*C(wY"4̉WߝsR"x:|'`Sމs| E @,Z+V;nԑhB(qB`!,$#F4&R^ƑU1qt8@JBdOQrVRxM`6B2,5'/BivvH`VqLxJL[Oe0A?2N✣䬸b) 'q#`bX O,[fy>Sn׈8lQFz5]׵wtᔔxn=т!$;Se8>Uf%Bjl=@uSkb6T]Y7:+#eBr)Ton5 G#YX@h K*˞PZ^y.YB%"&#-=LE (H3" F0S-nȁYHyg!FE{N> ^рE}G7H% $?@#d p'9!C^2\Hv Ȱ`#ՔvAo|-KD'\5/!{d-&}N{bh*!'H`ar+^HN/#2('+)@Vq"뜡rSNZ(>wb}Ѓ+9[$T+RP# N.ž'RS;;0dTl& %0KN2 ͌$10W^_ V YSrS-j6%Ɉ/}'EdΤ9΁K H#Q3d"e Oi% 4g)H ;bf BZ߉ {z &@Q pJ!^qv`(TppaEqZV#lB "`L4,}@q,¶]EnFl&=\AHQډk i %QDYjCc1G,09i' 'ˉX='#[E& g@nda ^@FBM|O0p>d&:5;(@DUX,(+`vG-GñrK! /TqD,fUiّNN`S,Qɉ:m) "^0r(kAEELoa) WT85$Ts/͢-3h |aN8=EvMdH 2$CG-#3T`GE/lۙROZ ¡+Ѝ_QwpsL(= ) z:qdU;;~2ڑDfSTLڹY0ny唏j7v#b&ڹF8Hajq̜p`M^vwtrplZ|b7̮y~yoggtbqѓ՗_-yg'p-ݳjiy<;{e\}λ:"NֿFQ(nul۳zj;/M-xz\7?6oxwF) s|c7xѱe^jzocNzzz:[tNwF?F_k[kO>zS??kSpS!ʔ7b*o?OV{_5yF<{:;:,Ǐ׳q %vs(cbd.|.-_/l!ݽj̻{?>l*wv??8fqwb`|/_?wXQ㵣"~_j36i.ퟭx[>gq/KB_7r7_>M[yY޳ q9ןG-~A"ypw1zbLF6tQ{G{wdw1_MW_|nJ.IKztd+iKVlٰ=S#Qv ߕФ]BعĖ%p1vqq%l‡`ǡW>8 J\3ws/\q6%8^p8C9hwvW]x]x ߍOߍ)f0۹ϢLj?@7­BW`v`Ɗ:[2F]͈P9Lmю=5K"YGv'ۃtջfn@# Vԃm3/6Bhqw@}J.S*L|#W?)=LXRQ* tRK/!mtB&hR *뵌X2g)x쎔R_H!Ԍgd%ţBJY/\sYsхKoڑC)9dC:8.&ělaD'x+p:FtiEd N{J*݈ Dzk@/='q-Q%SA8kXj@\k/- B^F5/B]{Ll^/j^/TKrȑ%^,YYD8| $/Oa/I&ˣ%|FYUYh`;^^Ü%=sқ2z{qxr{^FD]Rsj?2,{ `0O e@o{A ^/W+/̀-0BWeg!/=/` @e 4I^{8xY xKv/t G^[yY_`8,uܒp&{)wl3-y4+:Z Y݀ _&\8sB{)̎^*amsDr8_x9HwF)ST^f/O$r{1X9!m>Q^ xDy/x)\Gu)H//(X^G y鰽b^?/|"ѿ 2z)t^gH^ ȨKEM90ϠAؑy 8*`T8qA0hpo#Ŏ8465i( x(DŽnfpP*A Y,4@؉膠%Hl4,zxEq 8Nv2 (W< p$Q-V!>|# F d f,P CYƬB`"ιSnU&U:*Nթm*t7FrtR=VYTU%jlRrP#;MnM&Uʻ}#DHG5D<"i 6!%OjbFYIόm2a51M&V,5e6Gdo77!B8Ⱥjua04à.uѡ."Ӆ3ƒԅa FA켊3//oVwA_@$.O.xtV:.EhP "AEHP "A]$CVZ3Xvhu- "l&/䏯F!kowyזG3n?;Xk,og?-QMں>==?zmve#x?N/(eϓՓżCx㳟?]F鏟J (u{WZv鉯N=xqxxQgggϿ{zl,>h<}b/]ˡW']q''Ƨ^=fWϏ>4bރkO޻ɇms'x5Ȫ[>7Wl=yzp}̈"=Oοݝi=Y.636n.~3O޵g{_~w0m䧔I2+&1#|<>~5 x2/>on̩EuY2Rz5p]sVfN0קg]VG9X|xD{b5X.],>8_~Νj1^u0=?xxp\=zx2.p*l߬s0bp/g{g}pxhbLK0?У~qK<_?rye⻧FDc~Lqwd:?oO_yvMf}2oOD/Wzf2&/rK$f>oWgggo@^uor8=LR`|oݑޮ۬''?ޠW(>G//=wvJicݟ,ڍ\A:8M'Fhj'e~2qbwǽGSÜXc>?^-^L>]Gǃ89ޙ~'p5:>绋mzGRNdT%>^e{G.]tGy@NwN>h3|ot_jZ>ojo\^<{u歘uK~r]i?`yCn`{NONmA g3NjG'R*X=}pތA}胿`Z;~ZxW_4+ugoTTBUX)$<j1u ~J玅qzJ hܕGX+VuѸs~tp wx=M>ZL323rb'_ŃG;}Oyx\D~!$hKƻ=m9t@]5W[ cNwiŎ_mM+޸>oɅ n:[|^%-6该.K!"r'222_Dm_5ovV.>^Wfʪ?ڿ]6ٓ7k_zo;hBvw 8 K4 &f`:L|K{gǫ{~d 0=7ݞH-}~vu_!s7k+{f=;/<}wz8kPn?罣Spx^4b^?./ ?E\koӣ{J TOhDMЈEIۺ$Cv9ajo [KL4A~l;ҚVS }=Q+eӽ\:VovSִ!y}{Ni+v/e'Jtne:Hryw{O%u?~itMYT:XwȺS?m[M2N-ҩ{ӌXOr:J>44S ijZpe'ZhO65w&ZikUA&梑P6oTr6t`jq󴦡bI.ٯM-4Mw䣼:-Ajl\%Wfx{pkijjKxIhu::qhKGgPH8Eo˶=iHWJho1mi$XIEfz,Nm*Yb8R&bt`3ĿOZi6 .my k1ƈ[mj$EiLzNopuK'm:g +uig6 ɶnޡyJVrhb;2c G ]-[Z7Vdyu.dybEziL%o+D0ً'5ZmZ*k[e7ָׂVM=Wɚ&wo) ^{ClY^k{s4Yκn%c}#&xԑ~C-^So=ĚnZ8`tkӿ<x^K.tm]+\ ]i\r5+u{S\HWJ{Hi+g\]{ȥt{mnnwi丹qQZ.\[{㽉:ີz9%f%ɮ3֓'7nT{WQpqۢXmҺgFޕލmkeMm{W޴mjqۊ6~\_ڛg廽{̫'}2CN?4$M8+^~6魄}wu4'IOo'}Mz<{˓&Muxu:޻&|҇LTkovR7ܺ&W&YY{WbL{Wyr}]k!=w6K&fI?'o8Ӎ޺ִIoQ>ٓa;xsJ8%Q?{rNmG.gM:na]q>qm9P|u۷{KN-vuG(_7Lz{c:&T9>_޲m]wFڴf|jͮ7&}Lz4Ś~'Ԧr'>{؟=iמ7EgO^ú:Փy伞'7 uzr^2暞\*dooOym{Ogɽ;kfDg}Ƀٓq^σY2 y=zԜziϞ?g쫕gl60r^\{u66P( QpS+1*F2n|yAv*yWkSWb?ݻfC7Mu?L%0ll W`]A%۩cqr]_ƪu?Y{SKngV0`u]`hWSmW1J0h<(}[J`Ou?QM;'Wa޵f)z jyW3e~FYm 'deٓre54ٓ\S֝'qƬ:ت>猲><=Y;j=gdq.MY7-ͮ7q>ٸ :?q͔ISd{~ޟq7m9vT{rOy}rOZ{p+ܰ`6?)`֟3Ԟ 'g<ϸ͓ztK^IU6mKhƸXlp=D֘WmKx?9lrQX͟s9&aoW?(F޺ v6Hmg*lFfl=YOYk"~Ο\Ξy6o}lfʴ `zr&y=/WˉB(VStQΊ0}$mZ5?Ӄ,nܢ h{|_Np[Ixfz?Sm6;{|^}c~pqwrz mwٮ[|Ǣ!;]`}m9U;% ßYo*v&Wo;f銿~Yo*||^Bj:p={ҙl{>zo۞ӋoV{͝ ́W:b/iݐ q<rqŧsܝOVO.8y]rjƅ?/V+ّoy.{ܴ/ni|}= o ou]|noL[c__fXoW6L7Yo]|^5,Wxv>w<Z旮}z'k}?_ೳv/}`.N鳯9nq0Ww~|<;}B,F\*BM|[gTn8Sa.7gG?|g7;F}a{w~VM6^2ޭ̻H9z]{ M͞ZIE7"Rɷ?O._G'eo v+I_—5Qy\p {>p1ŶggQX&ۋ{+79l,ejK>yGe| tH}ǿſ}->rz2 xK@+͹76?E-D x ~>5pZS]}\b }-E6?ETqdc-tmj+ͼ6d͌{zn\VY?̸|my袽W&W|ofϫ(]To&7olu{š|pq?G;y^ٻ8}rtϔW5EDKּvyrzxHm#dzy%n*R~ᶼW7UBot𳃋I}E=5͞z1 lAᶅH 8]k/V[t?/k~ytڀKz̫peV˒T Uix[-]o{Ϣ:t=KƌW]~׿/>__nxi/_?:w᷿/񯟉}Y_~_|q) ?7!m{)#}4ܻܿ\~ ˿~?=wyl+ΚwoZ̃˭wg~N 1}/>[,֢=?5ЫzyNyUP_|wrџКQ iWuS _p"]hŪTEV7^4 EQ PW+6ڦ6uzz[u}*j>M;,IZ19ݨ拵@~i +1 8k~{W+(b}xbX/&|=ثu*vy_x.1 \ b9{ jlqѴ/?zf vg2GaoY1\˖޺YGNjOJt9k[Omh*7y/>Z-vd}t/~aT'ѕ7l-O;(npr/z>8=J@#S=׫ ?͟Ջ{'KcWTqǞ_RٙmojJPI-[tS'm$WTvZv!,=IH˼>!A`K> owJXdx3'$ؖ޺ܵn8TV ;^6V J,-I~"Y 1av\p!$seZ NJe4 bcC8L>mi_2~4klAeު'/UՅq0j3UwK+Hf*8YFzQ Sj2u+U 4ym۠04 qsc}":ښ"E8C W X*)ЁgHWP2I$ $@BiXy[`{owWɄn5jŰfɰҥZxRUȮTq0SJS$Ӂq$:c_Q#y AÀQD yEim%ͲˮR+s{a)^_9dx9( 㼩gC80Fay,L)`rӫTAgwZ fJ;_2UԝJ ɺw?pjp L7yiRDmYP1Y5|U%Uؘ Ơb! FŐ:Nqa *ĪUXɢga|sU>UtAAJh$r)nC)cp+ 3&z:({_9$D+<Q<}0;E{YOKu b۹J#m=Ӯ0yMm[$=#~{? C,- x46: ,$f,rY 74P?,Ql S¾ӰnТ=tq`LC_9d +zdu.ڃH,sUekIT'͇_xL5 %O30RDZtBbѪ )eAfÆXIUk _ WUDRD GǜoJQ9hcJVWETM r1ڦc)¼Lj]łSa;dإdb5,GG;7]0Ox$K|(g1i4 tJk-lLbGist kz6tqc>8=ob~ |7[/@n,C}x.źph;؊ukJOXOᩤDhJPmX%&(@1e@C|t8 ).ٞ`wC_Y-cݗg%@Egy|kea>s,o[XZcҥ=Ǣ"N^k7vG-ף>s9>MZmLu t(D<+zk)3K|ƒ O(=_n%Cxe1%IH\@2n¨dH`K5&.L9E,YFeaB$nY\4O#k/{a:n@8^lQmlPmJlw~,N{vx_׿iٛ~"xw:v]>`EmUV/ul9A~Qcw[ 5#|Wv~C*^.okNwz=M/T3X55ԏM+kQ^_Rkc~61j nxt]J9tn4"cn Fo_5 "kܬ*o0*?;'g Mp+M.e(>^w!}hS*N2"x[˼'n| qUT=S3$.G,qY-%Ӟ - d.80fDŴ@ D"i=W6lHd`:^ דDX[O)v߭@$rO7~z8ʏÖ>'o=Şr56Jo#`ࡓJZ_O:NIi!<I;=Y'_Viq O KHbA ߩ8AUF2 CECrz'r8 ,xf˾R]pld`yX>a 8=ňv.zޚX0Џ@ >f_بaޚb[5QƖKecVФ+*Ֆ%{/: <9=OqGs.PN茕(q@A݀oYѡxu[6\o.X:s#c@t9oAdC>|`vH񰛢_GЫ4i^nCf+Xtm_g'Uq)pԒ_:b8Jx/T[ fÚCKy䬯atn(v>bѲm\9XgB Ӱ30e{]~_`{Q&a**#<9ɼ_AݿGI4/z)Ԕ[U|v ? 'R̀QO:ox)pدemx|7߉|P0rcP,C: @{{{G{>M~}ϷU?ٿ.gwg롋@[#F2f!fHѽF RƔ['B"+cXR/jj7o{eO-uA\mv}?yRqY"{,a>_-rŧGlY_zp'倨AI [1*yb}W;~|nͫhҁz \R8iV4Atԗ(Y&߭{D`˿>dCo)Ѭ8^8*p/]zcP~=ߪ ?|yo{g[<?]mޯ+{#<=Oc,ǗŒ@1MN~VU?fFp7f5hjsZnwm;v wa;kf0(xs|0 lqXY;:o4_; fˎo`gݖ𕒬u۵Cx5wAAv\mwj[d7:ꭾ@Mտ7sX=:ʒ rTjF^"9] x9s\5:PRms4N' I h+<hI>FmtOu (ߩo]vN:u*Vz܂d;4ofnw&هc*'D3~p{{Xmd)qj] ?bYެ16kc`mxBc[aYt]Z5Xu"3C?4tiRIPsŀ)l0.(S}.REnY!$O.?r jGnJrGa pm3Y b7\/Y72t=Gj@(̃PF*tG6 #(ϣ8t#/qR*.d$() b!9$Ny&.Q0d,P9ۍ A\hD(!)v/@!lMWD QKSp=qqxh\?EpO.ZYBexnlTJOWt0pcثDn9)t[,hp)Q #:丂ażP d^L ^ _Ȣ+<)SBl ,UtIA&2 L2G7䡰!@*:yz]塡PsW]gXa/Lin. h(T7|D,}h> 3!=;txhY!<0a[گDJ7"gKs1!ƶWȃT}?܋=[ګ *1F{G [jD~qH<2miho=/CO"=&6xpv,RPPڧ}:L翫Gxuz{&םO翧?}u_/` U@6+>Te*T/I 3_aЉŌI *>UI8E{M"Wa\ \nZThM/iv+q  "Y:%zUr|~&^6"᮵v+Xh>v@6 :^ggpy[y+[y+[yٷ^o}ط$008L28L, $:[uKÀN @B7%ND mgF *GiyOBO2e)bH)^;l xoxi!:BgP1:%& , &L\tN8f{#z'Xt&Xj&X js#p#4 7mklhx'Rcݾic-OoEz+_#6׷Ə^A+I$db1)L,/{_wO xx/f/l*PA~[gJd>Ytƌ?@ףK>=~5| _Zb}__|D&431/O&_&yAoOi;ONrw?PG,z ;g"$ Z(H01œ-ڭ4\/h𩧛/͚, sn# BHխSkww'L&hW58!S5̮FwC-p]֗ùBK,ICbWY%ؠoɵl|_plC}9E v= xFwsxŜw]uj5sNqa9s̹3)U*n֢/,sq_tx|&sAC;4~|*!m49K"z] l ^XKEWQ~yw&z.뚥Rٕ]|!rj êtsI)"/((]E?P`Wq}E.z6ܥZo efp@R,3u>+|{__=;\>2{])׷2k WT>Y\QwTaoFl_-nce_ kft Ix>+j`LGfj$5w )&iFP'2]o{6*,kGY,VMd5*kYm#T52:UVhUhYE%HV)띓.qnYʨ T|MBBX UYC>IGpZRjKJsYW@V/)dUW׳BmAh lwE%]%TyW^87KC@ď=TI0+ϊiUN *SAm^j2¦B j CDxq&%hdDLF\qQ3PZ9- kq !ĄsbhQӲ8~ǹA GZz'ňXW r4?3iT wYƈl[ uz}PZ4Qqۜeȸ}J>|T IT>i`4~ҡh|IWG}dX32$[v dSopC L&1I4ZASW8Ox*o^l`Hwh&mKALڿu,FcY0Ď  ^`=0<*@M;- UScpA=.qJ(CÑS~fwW(Q(UjA'ULIt$4/.$YFЮ=CWCz?MnP7s7•(?}?I2?SAZX89uހ2'{|W{X*J E~ >htO[',!gC0Iy0 bfC¯_$f l*-2 xI%m`ѦY^IOy ?+)pK4VI$(2HxRF{$~-E  LzLׂ8?أgЭAXanx,7 nwSjv܂@[=(@[M X9}r@n^R^U8"Qw%ueApFG M XH"xa ^Q~U S^$c׸j&ۺy: O(@JC5 Tă3Kٛ<;WBjbj~B93u]nx/O{qDZ.3X8W N#rr=;l>TnTZoti?Q%зA/!7TmQv̯| c)c zhzF'LMnxq{Ky?kT.mE~XFQ(R~ sR|F6"b&Ee^i?rO9/|*crvNO?3aQ2X+)=\Iim%e]v ;k+O6ҸA# 6ScUd0mn{n&߿8_ER/1^2ӱs=&@>r-_&PU鱪V2&Su6q{SZ͜PU鱪V2Ny:+*fQ1pw ȩc$9#nN*Bn1Rhj+GaC >,3ϪNuSVtbvJ >g7uc]uX~V?8hfn4PK>z]0Nq)f [{Di;߲xIt?b͋Wt;O>/-iGm{P{L.Їy`ZU² QvʔI5!sV>}NHb^!A:!Rņ9]D P 5GyJ\{GI|UV ǩ!n~FG[hj(*RM%̎Wg&m.  AA"S㥱TH4g xgp=n^ m"嵰?o)aP (E,,·V,8hӣkvGB?YTkFs:6n#eEB1-S%t5Ί~%}vcW(Ϩ:(/ƣay0)ʑwЄ$cUO5vޚ5&Eƀ,횚< J0h6 Pt1*bge% %'F \ QBP ˾0^@-y>60$w-3!g"V (w=KI#iX5'a/#}~a>9x޷K؍ph EJsa#9Zru6ZCHov1+lV(8p*u$:NaȫxM`n8^2}ZݦHݿ}fOו~\4-MWiiY i^N`n`2o꛿Q4;t5R8&rOcqDKq#I$]ZkCIa\EH&0dُ0&FV}B18=s؛LZsŻ)l" @3C-;XU^7.1QDAon`& <ˀP6u.hԆ`G9·n5=Ov.pRvT^ˇTwS%%pZ򺥨Ɵۦ,W\{:Vj\d:}3ހk'CXGXj/sz(. 9y> XF 5d1d;lP<9y3< Mt vW;e4|כL>_UB2hB/dNhE`uUQe69>{P!3 "}5H|M2MGryEtX-8:PNTqPY3\_YMPWxzNL*xtE4QF`nK[Ɩy]yT0ѹOC[1Qҝ4 g-%=3%,S1ga+5mf i]g k} Y,u ) %j4 yi4T+h8in@2U³Bĥ ]pJ]MKzeA 9zt1K΂x^浊"Kd:P,˞MyFxe-), R1X]U'kr9U4Vd )2)&x`yI1U,Mss.ga'6 È6QhNQ ,"3zi\P:<8ER7ϥaB҂Ҁ z$un\5B1ZC @rLc],Ry4gz.+ 89MR0(4N3Ju2%P8>*7/rrKKi+j/>aZ(f+DZXgV90BĄtQ{jhZNWnpSTCiA}10#s# .MDFT:$ p{(MyYӤ>LM09ڨPx+gj ydjjB0g59D%yIrȝcP6e㓪 IUA$s)Pz}HƢ7&,uɣ_4]U>} WtlmaA_P#ZG-[`RT2gVF6uUpO[WMDŽJtʹt :W'%\Vf7-ˣB1@PҚ*'U|HXfa W`J猂 01$Vb @m. ٠p1&昸yւb!]YY36k$Ӹm\h,\ĽVI084 eI(x7}򠸳l ㍪UZsQVW&HMҶK(e/` u&W1I!PIX43c<@M>xӊCL nJ[krPW?R缀G sˋb, UTn]$ύmu+_ulktjAKa8JU@\Zc#Eğ=E^Z%}Ryh2X6 +`:мFa'Q 02xa tz)-S(esKJs *uce WxĚ[ׂ2ze灱c]+ ڕ62wy`$SYԀy! IU-i!j]늨SX%BiӲa*~Y4&J(uⱕGJ5Ks\_%52T07kJ]< J4&q`Z/t_V8##"O?IvNkd5@F 5GZpF5q_UhaD  ڭ~6:JZ2/B-LχAE<;P7+=6i nv#Wxz!-M 0Q/7TT\T8HaUw,Vj F-^/1C tg*/'~^&5ZøΠGmh1mRdJRH:o$0|iCgC۹3٤U~ow'm4xNP`w1 ҙ֭A=NnDu~pr;8y=8y98y>/.лxF^ ^qcf07"EK<={Otka5]Ʉ( tƵH2O^Q:mx 3@ۦnq-;'(vx\~ؗ,<x2#yWyrY }=茹+U~=<}[|1toptT"W=wWmɹ@GT5NK_Zt|u.Ѐ aM9e&6N.oWcH*G>Vma5VYvsMM! I7݌|h]ִK5ڗ^Px:E&Ӽė19qyNp$j}/ΥWtR`26yXá:I;}mt[w(6Γljސᅪ'kDi~2D;<>kUeߧ27Ij|VvH' ؐ}߸Klÿ@%Y1_-CB 9$7ن9ב%Mf_{v@V{mg#8$E lB_D26HUa<pm 7Xf U*H5hM_5MYŷ_'Jyg'J/+2o;&Xo,~ yt[1%9%mt炀Ȗ}Elj:N9^ͯOy4? e\AN]V~K}v"WDn1b;qTJkv|hmod;~^a7_|g9#ehpY=Ow2;~j-ggBF GЗ4;Op%'t.Ga[&d2\ ǒ #qۋƐ <涷~t Y*5kEV`7W$;ݰۆ]fݳ$ϲߊӢ 19ed?f'>( 9@q|tsþo$toİ7? m>qU7h,g;Cs8NOxT#^՝&WwVyK *anv9.mr8-óM娑Krѯ4D{sN Kq}; %:t(0NY5@NO`#M(wF7:NR}'\uV,`,"e@GIw!Tx:6taY*$`[hO [ 5AHeuCMP^~r$qڠ61ZgCCCFՋ@@VjWNbKThZ9utoA*`1h733cU;יUx2_߷^O'GH8ϩb*P`hѣ*40z(8F3Ke(P<8r! lSMt:>2 jZaA\!SE}=FWR1bWC~$F@U a$nCv=%g~kUZ#5.ٛ7x0eb|vLZehrMXѯVTk&gk!NoRBiḣf9]{b_m ӉJǓɪuLFW&p Ng<7gn>(>KQ&<C'O\2)숻 3LWMw\V e4`ួY%}{vd=>iig$)U,y\'w Xν8S^zzW?v /](iE צ5$ÿ^A0wzx gHz<% )AK8)=_ ]΄Doˎ>u By0鼝q_/ S,wk%?/׿9/[ϯci͛Ea)Auٺ,L, Xxr]#}ۋSxq7Ogz7ƯE#?ш6v~{v xґϲ糋)B$do? 1C? 2˜bfYR4 Z4=:EU&"T huNQ6($]σ(e; ZwZNEΏp~e 43j z:6s~D.E۹]DPܗ8VP 1L^Rb"OP Bv4af|ǴR%9e,a0jqvoop]Q@;0ė_: D;[}?wjz~F#V"FiԾ7)m{qC \*{e7CpOsjk诅#}N!tM& RTj>|s.[E][#{ԃWA | 0ٖ ߇?֒pܽCO? X8tpS^a-%we`;h,tsO[d(9#rie =cˢ)M~ƚ*#]Jћ۵3SEJфQzʏHbP1XMRczӕr!مtCxMW5Tx;ueUiEmƛV` M6]u~浭 UIJ.(K6Dq]IiB)9JњVn=i5%S,._؊.7)6mZ߻Oy4Hf>ouה6/1 =RkH#)E4惂n&!gY?ſ^U/\CmRKjoof;yQHZpSgmgP6H I<9OG+"kHHUh>X Ktf#Ect HGl@aBLM3 fuEÜ1Bh'$t7&ȸ1U] ZJ1*Q<{W]YK_`] pl^VӞ` TN[U0Q%[Dl+Ze'G\AyIC4[7{<wv}#55/pi i?aݺGYv8FW+:G{!/EҒA 1% vzxKR`W6`&Wcr~ye6>E= حq[XYhF0[ϻ͖aL Uz4dr1Vxtuy tz@+ :r:ciNI mVS2A{ZgXg怘SJ86̰1~k~q!FE>"u64?X9@zQwn.?kOy>bFD6E?U`EБ{ ?wooؼ-zxa(%>lY;vrwN.R;ov'[Ɲ\*+FZ^ݧRgKޤLbY)x8Z@r5*Cunv?p[̓coxG75eo-|m:T ރןb1/]$vwu)>}_P*1tVu3ם  fpOoC~H 7xyꥁwT$>Jb{H|OQ~F+t=mkJڼΞ{Vr@]ˡLڴ]|-:lS<=R`ȢF6Z <b7^ӦtH;r~ݟܹE u<ܝݜ_LJq󞳬'FB[Ek>OWu_zO ܴcowaFoa{tΒ\{RYýa| .yܥwk_Mg 0ʃ_6jù \Dww];.Wmx k2ݝBw'Ez֮\nip\ 4A rǧe9L]z.h҉bI40Od-*-(5 ̑[2P7mKVnUG ^}~..\DAeק/qx :'zK=N>Z+/1|x(}z cYxx齋ƀ~~D`Yqre7Ǐn ~IW$xL p4͊ۮ٘I|ͽeww}/dk`/|6-ziol2Rl)Lz:*n)(|a#֙5N (qi6i" Ԟ{ճ#1%NІKwd$ipv<'S69%A >P%Tw !\G&Z*ڄ*PՂx% l27:&PA- UD廔کx4^M=4L@]ѐJm8XnO9lD}3\ W>|y`{A{/g2).jzF(gm&g#Z,3@{X&R-ȣNgpsɯOAeߡ%E>Z@>ʟi7ً9.gWl݋m6F׌`/p R7b4H=/&T12t5ԍЩi92_.fz򊫀Vg*5R|"H.iuq _m'A*;MCΫ/%ȫPo0 xD NAx TF{9=9hXZvj8.m{ 5^\Ru項v[@Z?!?B??7,0/fGod&c~OYkzxW{M]2YoU&[KrJ|BzրO}2 NeFt*ҿGc̮[2˯dk ZJ0Qڮ8mgF*wqkN7̜S9y\iLU*mYz,,[93ǍDNX9> kE6z.J2A#dm.ڕTxJ\n<0\l4$P6cmxѱM\Z2dZ4l ~0%͹.:h8c臹̭SѬG٪]PO3()wTwm̯2Mqzy7@nfo 0pEVv,ǒNJ7s*MCd;D jKdS:pLxAY #9Ѡl%)c7:xBRB)7R8䞛W ?(g-7!X <b] $%%x,@A<ܢ5fro|VsRnM* 7_h$q9z/t'Ƒ@EdM;R~]}}u;~If&¼F߭-S֙dVGKR|aWZv+U%5/7P̹tU6XȻ$2_>dȗIg3lQCFR?-I]O旀b7L=- my.LҜ`'YNցzoMPj$uAT[Wd-d|ȃ<%hjdsf4MT eIhs씜Ȍg;~v]҃Gq GYyڇY|Aw"@PpnosܩJx^ZWM8C*?Wb-`e߸=@Fuh1O$14;`YCo`XwQ?8Q.${P8xGԀ ;_~<`|w*ثhP#Ъ1걞ˍk1"(:}8Cd /FT{e{xDQBP' B<_Ub~P#ǡK:g0^0>8ȚvPE Q̯1n@@{!O[F NH!v[ WT~?WW"b>B P㣘Ga7TUEڡN[l՚U;zk'1Iy|RI;Y(򔊡r2TĒ<6Ҝ.FpQnG>֥`v\%T^Y6ӻn W-Nֺz SO ']LJ7 TZ~X|;6]ye!?\HUx5.?@25?z_5nW??qX@, lr`Ϊ bEdr"y]iQ-@D' D*&6C rVGraGR#KFɝGRI>T{G]Y+=e?_LK?.+dN~Wlw3 (@Va$A9fJmPLBlB.FNVJƶ/*.rD=UlGK-ڮ%):jpݒV/kH* qahk[cMX֌ir_1 eٙ1 GlQ$Цjt7H R'kN[E(yM+mJ+ZP4k%3ߨMQ2[eZde*UILe(ht4 l]{mFT?w;cX,t :,az9y~:^ϯqC**+vkD}=1x~v ǴlڲŬ7AXOTwyDeS̫sf/FQ?`K.Zg c'LZvcd ou>b1 uYF˨N]__ԍAҁLJijW* d «uc~Km䡅Q}id$ҁ+. #8,M6 =MH[aX.O㺇4%LDǚ928W1 kJ>b-4iz(s]QnU wuB?w”}bLqnm1 ^#藖KFKœOMN40z<Ȋ`8P)y4/WFq$CUBᰔbbPvR /IsR ݂ k"|QoײRl̟kxa{EXf3<ghǷÚ {,+Q3dzc٭j^;7f i մJ¸j䰋l/ gM d\P18VrqStq0gYCn]?`uX b͊IVzj2X:lF;(Q\jZ%Bqm)%_Wc Ψj&(4ĝBGYoYWnR_4θ(k \[0e1]ை)k-kj^쎚E}-c׻eɆ0P%5r>r3͕+Z"Di.jAٲ(Tw^6}?½1 En'Hi:bPotA R.:W%yQڋ9U9_~Jln+<`}^ژ58|fӁ?]{X6_QH1)ʈ;vFA H-bRkfN1gKT:0U ORC[#ӷgwN$e #!՜!5ύ9JhyVi0gY.f)̯&RɁp)3|| 3~2iO|~ %Sq9GdYݜ\)A[Qם~=ϏuxŰ D.| RGl7Ȭ=r s6X$tTZ'@X\p/\NvW$u]2I2Nn =aAI {Ҽo<}o'de_N&oB1>QhN)mkC3k \pLt:<?*QRb)ߝ̹򋻇?,Lo!}k?9O]F ^ZeA_A2g-G'jӂ}TsLqx}^U7u`Ut:)5@A_\ zU:,{{zmf4f&)=89ks@[9]ح*$:ߋWV&YT-w6Y/fk ;n^E m%:MmQ4֤{fVIC~ޫhs5.D}k{_1yJC=G79ĵnn{dik#K$R䷿Hΐ-َM44k͐ @kxqD9 N+X F }8FoUBu5j]JM%O5۷sTmeq#eoy0-ko֛TCQd 2?wVhs,8* ~x*s\8+ဆr: zar?.-\)N WOa'w@q`|r՟v n.TŞ$2!/%.ZUIEJwҊv>iXs$ŮbE!,3ٵMsFuK-B!~ akWiwM*|%ef G}xRMQ*)]wHʭ͇Z*ٚڄ5kf[dIЍC_Qɭq#bHo@)YzX 4n(I"_+}bܖ-(?0]P+}e_.5ms0͘8OXo1/݃_o[:l{t;Jk8 d B$%ed1咘,e*$lOid ᩨQR"w^r0}_5TU:ѕ}?ANm?k}&uD6DKɋ#7duO὎V6.—½iW 1f(:yLq hȸ0 nTd-֖AJIjuul1#9zJ 2Y_&UO{IMY[T>aU3RݫU2Mۘ~]ˬ^ҽM* ^V ]z7_tA]п&D?ly=Pm?v:޳x)XR>cp/SL7>`*y *<~JM鬬_y9yfSdDsI>s)rjF@b lw}K2IF]<| !PVQAffd[n5f,Cš,Urfs%*j^wT%lPCV%Ni:ɚJ41Xb"WmAשe@.en?v'4,j,*X-@!wإjBdKLv_2(0f40r.3$~jkRŴ 3&V?p^};?hP\99 yN1=oჲ+IQ0|o'8n+_^0(b*ǜe0릚SsH(rE( ;NGN50r+xppΙ .z糀cnZ0 2-NN;ia8y;q;2bGΒwC aG~Ҟ `w;f p;f}8=9bH]1;zV8Z.}wo޷yW>跊n/wWtgU]3Ѻ-ޓnC= oڀ [urG^j _ϛ.|zs]vcNKr>s?:97yEOG2[n 3tU ~Fck|ڜ g.zfiH76XD^"%Z"HS TZzN - vK@Q vSX4+;>5P|ۊVX nUĪʔ}gInIMΖitĻ#JW3:xZ/t ALE69:CmaQI1BNi03͗&`}2j&cg = JLq05S.LveXX(YE9vWH }?no?Ƴ1~}"Ūðr\:l1%g'zV.@Eb W&q}]%&DoFN=,#m=ƳV?ذ`IOe `67 2Vfv͖Osg~8?e*hf\)#q@[-`reJ 2l.NkYO~J>+^*yѻŸы'̗W{:vZN)f410S:YnLʧIaYNϯ%|!=TGwxּE}+2ׯ/! K~\2[s?f,YxQiYDdCgP5^8>YGj.>RB!d-C0n1ɹxmJ*4ۚMxQ B3!^Iy^ʢS`*`&gAucuGW@TrD&gV(lϭBH8^1P *ҔT,^JPߥ`"9hY0MPi0$<&a@Fι"r_%B/!;֒9V'T1 C3@<禋cغN~ׅ+boPC7^ x`?]s513^^L"#f}U=t Ju\Ddb CCr',TSzr. Qmf{纾4a/1m7Ѯ %Aܲj7]suO8X|R1#ȁgChCQU0^6uc7v`~CIw"ԝ/bRdqyRԖ 3P\g2ZΕ$ӚT]P[o~U`cLzP+@LDpI;\@z!H5xJ_!p@V΋Gr)N8~Q+R}Pq{@ ߃"ށR dEg/_LI+Tn]v9Ár(SNrB@^؟Ϋ8o@m`P9=A=럃d5]L`x4&9tt9֥ۀ6RɆ F%k YCY ë8:,7['ŨO"1!.(ؘ΃a8͛Q&( oJ]b'HA&TZx8qb r0Muc9 X(."1Y9b,S qhM[ #w5VLhL_mv4ॻFQ˭H A#me:&+; 8$-؀Q2o ֙64U0F;(=:[LtE8NHZ拦J.b[٥#Ma D4AGYӑo_HdDA, +`X%I$(>:'l#DqHl{bĽ*fZ@.@.+v4~&v,x|xgIW(|,%+Ҙ(kWaykm<ʳS]7ώnpl P!Q(]i^ c%TU;8%n}_7/iA bT#Cb8j͠q] zĉ Z3ƢjfF|I7;ݨ*z J1hfavnoql=)e'&қvεFtUZ!zF6Ex*Q*x&pXN=/C{Eo?YSKU>-nQی3c:yUA Kp߲0UbsłnDDJ;O]>XWmո?zqMD Bxq)3\1>!wDi6{;O7sK-S YO ^i܋ֻE܀AJO D$Ơ+=CNcvKoso4&B~l*Y iVr*>S oq,HIy|[됝k-zdL-׺_s"yj5,~9F5 'Nդ89y[KEőr?m ᠨkTm`uD3<%Q8{qf\xf8ST>2?jZ5.JsKB׎gcB5yr 9tɤ,x4R 4U=סYUXՎ{y=rrd4;gCW{9q3|YN}ڞ?gGH(cϞNjR mCyW:}/ lgYҬfX@_~:}S1X۬~W߶=1Cs.L%lsd (4x;' nМ0\.UUK9|KT '+_5|\1up7?:^جPbxoioA%L[V K墿ZMh0Ss K.#>.OAVU 1LxAtbuc}_6j ToV jly"@ eΛ*o0%Fh wHKv>h 58wr(. $I0rq38[Mc-aqE9 MGz֓?YrZlt/z81&a_ bAY[h 0 v-oq cod:F \MFk;\fy׶;-x3 X>sΚk,υ'$du6ӥu8cAr#m>—D3DH)ssɺݧ>]vs,eoki줝>>L g4մҘ$֬$3}(nȈ$$I2OWc0[#ԃt ݋^:hs3!Byn>/=˥70(kHh~BG+I:5XƗWrKC)^|^k硞ܜ&c<5.d ) ɝev'ڕt)'MFNLoNxjqRL}L jk @/@nꘞ SHE )]iD:C]lS:*)QiRu9]D4A_|K{PNO%00ܠ?$ŮA4SzK="pŪ]ki܆Q6,6|NEUO"{'?׎Z}xVӪ >ګ_Yc׿ZM߿,uZ#CĠ9xu\ƨ/~([W'֋'O'Pe/V{OƏV??[܃Ԭ~A:|ut Ch7j?4/]֋>z :T)XA5ZKhF/e?ZlAkG*ǭBj~: &V ƫO?ɫ˗MĮu:~ucD|Y[ԱfF@A:'48i:<hgϗ/p̂ Z/-x(Q~D/M<^~8/ǭ"1اaW4v@eAkϪ5aڏ%?J\}`Oq`$ưvF*^ݔS7_[ѕ̟fKq'Pe("-ȍ^}F_̫>(OӾ7;R+HS&Dh{!'*xx}TΉ%z h -Ɗ%̛A+3J9׵ nCl9_ݝ+| RtLtpcZlj&+ڃ [!^c uwj>Ւ"H"˒RT2&oh5 x(NwAg|gc#?ƳOs9?rӂZa3[Y \[}0"ŮnG-i(ݿ_[;cNgh>a>ڋ-a gJtd[M|I @ۃ75TN68[Gٯst(LGFh'*46@H+jf9bc?iZ.hȣɎ PReߗe*^PU011Wz=~[痃6 ;H 0QI۵ |[QgqKHG:xlzlT1&VJLE "vy{FՅ0  F]J+q銨Iv,CV.a1XTb>S>RS P]2( @blmUjE *L鎦{S?ƃ΋PCZ]1V8Oӵ1+1B!mCoXjld,l˟2ϯjb;/ Z+mN%z)?xy0dH~Ħ5\L5&^K;dV3sƀmX̾x|NjaY*TPs[̤[e..,Ё Y Y6.dFێNr%{zpHZb>"1kbAڰdmImAͬlX~d8F ߉Ni< B00 Jh \ 6li0{@$(d.l @}[6aeup_pd8ѳlXؑopkz Z>-CX>Zat<0F-I00 ~T"0IzQ׹ c0 ]C{ZnIF#z##IDfhwZ{DdAG>p#40NTB_x;!p`Sv (5BÁk[lܯ42q= z!H3&15V $Wn.@,b`N t`Ll@!xvi`i<m ,,0WP c5E~Dsk'A#=LMTX!6Ll Ž$bFZrXۑԼ(d`U ~ ;%F: ՌB9Hz:FH+{@'@g 7 {#9 TZOvp*[ q Rad,2z`-]͆}reX;!pR \̨ZRhNG. 6\K{$ZrF%zgG%x[ I$`@H@}sǒ_1qV|!VV?(8U=#!0{L،fYYY_-3MeM B~Ψ[6ѹи]:xZK /G;9|f8sW:0  iǪOp=|U^Fvn2B1jLȿZ2"{PwlrcÙ'.hp|tE1R:R?N )vVÍݽL l =yגo_΋P1B0M㞦sD~M77K{7"#Rkè0<*èèu,s\r\ݯеCs!gfNIiR]7;o7)f7L%d$ 𡗎J]_?ڮz7aȕnިI[v=kk3FktNS+ՎJȺJWm֫]\\%HM+e*Afx:.X7$3gI ;,;؄3KflRd(|Q؉߾Cmi "3g  $r8a[=nhoGEz}-ᒭr;krgǫwAAپ1یx `]3؟ v-̮4U`Px8pZ "ŗf^};U%%_}g5jYB{"(:Ng{hͤq}EƠ# J͔;`#_VT7Jk) #0)4Nky`(v5lXf9=E7Ut徤l.,YjraMeJ5NKtr/=eIq8 U)+:P]5AM[,qrpi:NfthO/v.MY?N"(4H' ?zHLu>tL PQbxdsVӳh&Q"qޗi0jaD'I``h0sSj_I?3xL 0QtT<Y!\>A$˧iFyܑDj%khuaZeG qR(BQR0OߗS%URJCݡ g~~~,q!h1 8ONPf)&'HL] = w ~"2LC9"Bgj6ai 6' N))SCahKhaliB* >@?"%/0IzqZк 0"hLOy*8 ]$sqsDM7&%<5Q& 2\ Zߤ%hk/y!"ͦk&4W܀`S9LnAYBae%p?0ob4hIG0dRe#򐡼-Agv"#adRB=CrI,BYi2%m!}zi&2 &p#F'Td{ s%䁩tӤ>ЄT %JX6Pd0"3扅27D_lC`i>™8ü d Xh G}c~Ё$8NAc`Mr3c[0U45Be<"(S{N$(I0< ĉ[G#C ,A;8r['uHz05nuqLrBӒt$5^w U5tvP.5q-Bv!c48yӐ#:IzyI07D$Cvܬƫ~'ɂA}$^ŒT~Cmɼ:-SZ&mQ$ƛ?T\pԾXyj%j?e@O , _v>K~8!N P#D_Mg$Any:#ZgtBQbvG" y䄄Eu]yA\Mg˒RT :ʦ$5C'RU*Od򴢲 |$FOćr1.*SA&'CK2,^ e65 hiMF+r׾і}2,RCcݺ}MPaY ZlA*7zEGoYO@@?) VS@A+C p^d [{=:_ Д|G_e|3lwԌ01ؤc3L\!eh1I0 mہͧkgLEH >p|sDY@Tϋza^|':}k'sP|#`J~쓭tq?*f`VD1;YP]~0sov?/|^|C6m>/|޷]$3,͇@Mǂ1@n>4uW3~2lt`(g3ۀO*T}?4dcm?]2vqҢ"siAԔKB2?,heكeكeكeك,,,WH'dնh'GRsrjK\~v%trfz.!#D~L&({`u4F@ sBi>|#>1:`v޳ǀ9žd1өę+;+9#. >Sa-vNrC|'^ȗ";źj}:XO`Lɿ{)I6g9]]=}A٠gqk>~S69%M52C ˸t.YOHC c/)`:1c.'3ӡl~ҟUYOu%ixw&dDc:$VMT%L{'g)`[/^գ_.BzO.Xm$UarkWǗu.8$g(OǤ,D~8\W|I/vr|Z@5CVagG])f=t}.ggLOFs?=9;OϞub]'-9g_>ѬU%)ћD|j-oUwM@"~td[r>!՛tclC$E*K_nxJ75ݡvnPh^`S'[4>كKO'` 4]pzI&okx -T_"yQɽ(r#v@Cad2ҁU NovlFbY(зǰ壃{87*M^3CIͿ=^18>glg:w;?Q*:=~:%%QSvt#[c|#̣mg`kHu(iYx9k)<;A}!Ժ/+IEk0+矝  8CѾ.:> $}A~R{z'T~Fxy8'gWI8KoIo/%&v7~Ӌ'4vhӈ{pvz.o(M|㧸#Y>.Ϳ+sA j+ckD D56@P7׃0S^JtJ|{޴A6;0fC.B!P)a_M;tavxN lmXPOcWT~M7߰Ke}ҿ6kҿ\C{>=GҗT4=*Huj}nC7?˽꫕{:~v-Ͽ*9]y=9Cl?0"E\اƀbK{{ڤCԼO!穖w\Ly '= j顔hC=k_=ߟt-%u}`1($R?V}Ls 9ъҔUb'4Zg"%;;R?|_쌮N!3(lqNèrl[[=8<%\W)IwÃ|?32{{t@0sj*?n<|t7g>|pjaw ٟ]QkW``:w>pÿ_@l*`LJRAǷ{kPܻ}pM*[%t9xNҘAzk krj+J>Wt]WW-oi‚^Eٽwu+ 98LvԿ8[ݺ t{`b5)4 s-f 9-TcSn9)bwN~M\c ,s9UV"TEK7áIݯҥ RtY@MԘN~͚W#0yyN9{ʊID ̷(Q]>Sj1XͭRC1: jUqa5Tl/6=M4CmmM)*Jh/j64r(VbbU,FD f7ˢUD%P&xumc-!t|t1F2\ˉP쪘JغhMǶ҄f#/Nj+*(74j6@pTlZȢX3eCFS1WOW۵ڊb4Umød5X\k gdzz֊(%S)ݢ$AkC Dв6%8W]#ȊF!PuJ罪3!8ihRaMt:uPPlE7mT7a&x_)$Ăn:4^r(b.tj ƻ`tU7I1_5,(m `CCb\2]p .J RG)VW(vJޖ[`'"\cB y0 Xxt9czk%rC:,*& ڨ VLUr*'uPjE]HM4>X_yڌI"saڨln BD|`[VhU0^_R"%t=.V+¢ 2r]T6*UU Dz} }+tTis fbhTVW\51omhV.BL)H櫶VA0ACthiFVh_Э2FABO] &U2} 5^A *린~PV'H)<;PKSU0#u{#yꋩ1`DJwebBTg =&F,|9/QFUC1&eSPs)ܾRq *G %Goڴ&b9ienu1֍PyO`HHz% :Bc'*X6hI&3UyäX!Fl\j,oJ{˜Y5]@hh gOtHai rEk,QmiԤbp@b0o jM.]J z -l Ua( oVگ!ʂpǵPת)UebLgSc|SGњ01Vu4nj /ͤX\ MU:f"o0§* >*rnpt1J hAir,7m Aͤ6DZWIXB91ZC( kLYܚh/F 3Y#fuR1ZT* oq1n$R芄v$tCJV$6 ;wbXG mIUahN)"hiU[ xThL6C*52Ae%KGQ>2p7M=U1F 0F;;9 $.ڡjVcC1/ȃck7Xo1:&ҖêeW0 PdC낼X7`fDtL z¬7%Ɗ-pFIhR4(ڪP5ulb=Ԧ beL LCPK Ӡ NBB&n Koj(6]sB`M!B,T!pw-ySH&`F-ms%|mj˙NjSI' Q<<]ky)@\嵄ۻ*& BSޅEmnm] cHk|1X(BJ׍)ĒOxj+*ء8PGG79EV2kF7Z v2RX*"^(j )A OU;1e-&D#)e?t#7VorSQԍK.ȉ+#NU-&1 PaW34Q% N{|Tܼ(. v,!p|tSNbʫõdQORI%?SuUYQ"đ\$6U) X<Ѥ) !m)q6['VY@1Fw$dG~a`^j%mFԜ. b<߭Q V;\h[\)Q%v,6`EyvWU j^n~P.(}aJ?70ug0D8i{~:i޸\zp3 iIL? .<>!wqU=˹9tqqP[z}z}~yq,)t&w❾( &G@fiJ~^^EOw߿C]~sUW!8O7s!(8ڝ#i܁ xq+4~vˢ66Xdw!"N/o._k? | Pw bis3=YZgɾCm!bf0/X;hCoZ ۯ_fV 榱vG9gwTDx v&wWU{a{G?r`ߒ?_'''''&_8݇1u,3#eŬޛ롼z- z >wd qsHYyLx[CĤ>H M@!I@v. m5yh?Oދb!cdg{'|hN C~.bwEȣlnr.̧`sPWY^rWlf x1>e9p0Oc;ůt[P]m7&{e77ޓ;0D;}<ju>΍`xw_ɶ=y@_iM S_[ 5&u//s:k76g+wK͞lYy>1 s}#>fL%z?~<w W{<{}n_|_g?%nπUz=+t,5<Uݭ(Lg&̎=;6 w|kX~Ao杝=; Ϋ;\F3Bkq]&|+n'#wޟ¿Kϝ˶{ ~T^{/ x?o{ճ"O1F7?M0G _PCJlHwP:(_<5 2 Eןȕ=I0vu:)!w}+Em{OkІnUQKmA8:}ǒ6NBl "cUG/V8>2m LA/2AtЃ$~jte(NPBh*^̡-ʁT}qcX&řPU#PaZ a)sڙC"htYYM8'p*B֢D1EBm 6EaM& fZi&+J4D8*֚Dpnv%L&ycK;" A5 e4tEM# R4Uni#LL"9G^>?dUJD"$&KXǚA2 uP1Gx#U&Bm5m"zc+S'3w3P "'pb{\#dQ@"^&WwVZ>"FfH:K%BVBcZ7A7Ut:cUad2%* ])JӻԴ Ljw"mKi * V]%نUƶ) rVd.MU7K%‡p9LL6ӲUСFt+,%2O8_%(U]! }SJD%o% AFjV*̀15=$'oF0ۤ|Dɋm108QNtQ6)D#ܬYR>b=Dla ̩MvRTA,'hMllJQ+%K"\}>_G`,2w2FTn@3c H n+_ $iq qqX֑@HiA1&uJtBg`<,7hhecW)c1>VQ(2 F>4n6T$aK.'$%NաT0Cg*) PZU#Y^Ԡz'.€O!}BϽ29X`@> \6*{16'3u[V;!9y`u,B,R&Y9x)Z,/ t?5v„8\  [X+joG$HF {;U9jEuk*xRIDj0.x#VPh)K&¦!a:PK da bsXmXt"&#F,NA㴒 UIq@MlAM|"UHUz==qDթ6s0iKj--1EɥP"JRaRAUψBF ?],<g" {KڄmDJװijIo|ͱf?ApƨFM5:A{H4ʼ9Q)Ku[.s`\<(;_0 j[f`͙1Ef;{ƘB9 h3 xz2{r0u]×jt+@C1T Yr~C18 X1hHq*bHHJCWOYha xW9b !(ՅBONĮ?pq u(1=%pM,S@>RӃ.,C߬WCPS3(4H م cIr8hUճkhќs-$Uٜo1 ^0ưcgچ@)v wG6s,j<ib M_kQ3"wVsc3[oP%{zO]=b#$:;wgP5yvtqqS\yo|O^°DC&>Ɏ\']1"![!fQ;[>uHl|ȉ".h.? pKw.Y⿕#>wo;>{Sa ` b\@[zokоyhMzo{6}+oпd U٬7!`U3PW.h2nbfT8'֩6Xov?`9l$MvAEk{aꨆxmhj:yCM}XegcL O73zc3U֪IqܰU922C/E]r<ېP* oh\¶Լ.jig+"agW嗩bHhaFfdUЊLheJhTY!7BpUK׃3~,Һ0q|F=*4y=@d|;%ڹ:~>>U}t=9a36 C M^K8tx节BυlPSubƝE3R(x+;+\ /9XP}x1G_>LGqaMSX7ӳ)LwӠ zkR?jTKM¨]?~\'̛NE̙={}JW]3I}). Vլ[ @˷ˊ* GiU|>v6VIr`}CpzWdXuӟ4eD`kNO_a:AdDV.Wy~^t.qٽofbT:ܿd框P:_58{zek /qgh71X\'>%&@o hL:9=T\cnCb_pf7嘆}}m;ta@30'f:G'gnh.#.p 6/&g}r/གྷ,ae3%62]$sgbB0ort~9*6F;/{WF݈ٖP0#fO Y@F=Q՗Z x*GXMwYWfV^F/_3i`FbDs5ᘚ_`8k)IufNCK1&I}TrX.忹)w 8M?8, p,vSԶ>k'.Al>NV5bS.3\mX2XOx z 4sU@Z? OB2`#M1lElw~^Fe 1a-RN`gUWP3)M-6N#O Vj'5W;/߹+lӐb\ݤ*!`4'!>7^c2d'c9 rΔ<m Uʸ,3(}􍯞V 3!87_ر.J'-݇C aimV۴S'3[ 4ڳ@x.|hsJCS&t4>*1Nѱ%s4x=c,/Ϗ!k7/s_[U񲻗xL'B/{Xs$VֺNf QF&]薰O=_ad丩!ACv"`]/  C&/^ 5}tR +('P9jKV>A)x6 /6MuKg^*oh 1h[J'3i6uc` +ɄT3MS۷'pLc_k(ɲS'6ļC!EK7rM~ſ^?Rw? T8kq{/fi-)>J9kMqtt4#xUfPNB2Sh3 p`H.DᖏOxVOA>O@b$5a1a(ҔD$tCHz0#ehC &e܂M|LdXzJp!6=HubHMD 5ύt}kH D3t`%% e; S hl-2ΖPY%Yj+}.F=C'M;?:啖LuU e»&(8s׋m-#~/w\57&TRs6oEb*nE- .ڰ,MU4cg:۴RgwU&@Ǘ~vƶQ֪*^[l\%#V=Ը~<쉓30ݒwqo^٣)Ō}2h Q@!`}O?F8~j 11ub@|!Lu8K\O^ۚw{؁'bͼY"ޅ T݊8xQ;"oV^StwÆ~z+8 f!i X_됚n=[r̀[@0JOG`t&Q ) @2wQ1J3VFqѿQdK8e 'hzUOhfN9 ġ((3d@b*A'DAR'8ZBE c `.Hl \ܑcW|CNa؄m9E0;LF-!*%Tt:KTcXK> ze^mv7۵ѱ_`eQUkpeds=X٭)FQr<dbDe.1! d` 7Γ|UtešB#E-(֑qyDLV3{`[3[ }scnG h1..B}5zצӞ;yA' ;|nE'5S>Zm ٶl=qޥe{ٝ2v2uCzg}K:ƔqN&{>@o6\ D1vN-fO̰LdDdǡf\ Ea:˦bȈ-Mm  .Ԩch[?[oI"1t o; 5pcA\1-<qW h$~0_fluQ )=JRJ)A(#?_XWLuT"OOF2.1iD{Ih2;?ɵUto17Nd72j؛yܬƏdҎ8r1|N.X(^Sş\dśj|gw*5U{zqZԚc_סù3Ƚ'c@dy%3Uj WDz]KnUh~71Y_&$O$T̤v6k486tj5ɯ}wkvXpnfZFT$d[J) l; PH0crO2l4_b3X7r#b*XN/xxxqXMgK_m~=ޞkKwL>dEqrNF%y֨X#?%G6O]ȧq]l/te >GuAhGOszŚQ8Aj⦘K9zbŨ"%Q(ua(_&(a 6gCAb|-]MXy늁 R켚RDl/5zvc`( , ;f)mgԠNryea kya8ۺRX&q* d8ËO 3mB<^u: nz@6"3U4| ^bu^)A H z >!A~3m@a;L|;cfes[R`B$Re~(`=|0m蟌~8MEfC r-)(uYL1>Aa]V8|t)/ ְD̀[V$drb߯:!؞]1WJϳLC:ę-> #?IEwnɾoD\2imZpB˥T^B7{Pg"Ydh$2"K= 8Bz\1O?9V_`T~{+ ԵE:ԡSPNvd=Nm;X0 )X9k KLl9tۀʟHzIu:S\`ƒ Z?lFy9 =yVIUÁ `ׁ^>IeOY al,V~+Kpݓ_O$$3Q0Xvk-ҝ:Tl]j!c :v*D޽ $JNXt  _wߍ#lh޴G{5|˶Tbwfik{q,&B[/~O }%Ky?Zo,n1v}k?t_QѰ#sp?Ok3sTW^`}1\?'kתW783_+9/%d1k`%b+i2]Ò?]?]4bE\] \p]3_%c[e[éS$J&TU^D:ОJ kr%;vtp2=BwO _ hXr7Ǚ}l֍(2%ϹOdu7S:^zZvQX@rEٙ؍W z0e?.$܆#:?ނpSo;),SٟXb*eMΫhP`)+d nf%=dN2*3ޟHk9Y|,mG+csĨM$.&Mj8*VؐUn0|gbn7i/ -??t.@f=f7ᕛ8FFFuVFXT0kn>x_-엷;k.lK6oE\O9b?Kfcͫz1LGGs$c%ʒ")ooGOlITgWn/鞝J2CKN_U dKQ'11=HQ UBA.T,* lS^;[ueu#ԏaО>M!-Ƨ;e>m՗餽jSs#ѡIUAY eڏ1/UF! R|NGiQoiL)QBP?,(v*Gx}E*<g,>Ql2P+X9QX猦Lf,˄=C$ςJf*Y00=VH $P9-g@'ccyrq3Ir\]uvݠ؎HO0Vn2Θ,}]KG (T 1'}pW3|t.) "P۹U3-XT L_J AWB!E8 Up\JIo(GLq.:S4x# 3N\-¸18A.  CZq1e>?U ?ܭ* y"Y.OUoI7Sː\੷8X+ʍ#[QnzZ \Rv6 q>7o1]Mba0<ǴP9Cm~]zX $cŪR+9[|biY甉[@hĄlpz^ reH Tb*Ef~fOX0.nߖ:c.;݊$(Q0$Yd6jo9F]XgE.H<`+U(4NIM01^qՆP7 lţQ :K(BKN/d#>~g1 H4YFts"` h'Q< `l ވr3i֛/_jZeі&_̧i:bd\Ӧph3 fc_0d1HR , Ű@?~(@ &Q s瘵dn77b83`6D%2 >ı5ff)&.CRG_&>x\ulA).1Bu::/:b8#ӳbxu&O;k3l7 xƤC3X5i}lMk6}bJKCg-G+Qm 3 "HѱQVzƄ-`FGaDֈߊDjG%-a𛒓]6PgrfPlꆡ5; \00+/_}7 ";rTii0)ɯ쏧hODZȜ]A!<縘#FAf,F_]sh3DxSo| #(hT@PV7c0A3 d7Ӏ G@ D kPcLAc|'0x0XF=U q*OSMQL)y/_]h?^??`Pt|RAA-ڋ?h%l+ʌz[XU մk^7~z^{ӫ_^Pm-լh`e!U^F!Y 1‭_ZГګ#ҾZ0*0!^8\Tx}-/ 9d;|)U Gќ Cٱ趔x (F #Tْ#HZ;[@إ.•Ae_Uq%GusXAh ͤ֒< .US.c\"0F4i鼅K$Bcyy]E{a WHweYŻΏ͊(F3^1CQ5F U?wO((G &>3w1Xf{5&yQv+@6j" \Mqg3 D,-她A"< sbcrq3bKLBa Taגw(Pl cbQI4rhM?#%?Vy[)Iw&[j#jJDYq:8 9͡aƇ\#|-  yqX H^(zfT}= #"0X |*ml\13An[pzBkDUo073{;M2vlx( htܠv\I4.LHtx'i5Y^%jcm8`s]gԷbPƠ+9Sߊvxe$j绨uG vB 8!yHj S4w9&;$~.\MM% ́? YhIDy\Is>uz+R"@d1 zc4v8w UEd(\`T-EF.J5iEYRYA%0AJ)FF53\CCB8d(\?سL@_ }`.E^uF ڊ97kPcy:f,gL%.4d52 @s/^BFeGO8%ƫE+@PE&^1J4IHrTbQBCڵ-}*q6 sEsȥb07*BII{hB :M= AGʥFAW`cx\/x^0!/T]/](·pU6$ª%]Cqܾq)gfxC%a`e.XDNf zrgk:Rjh!zYRz gZy P3 ; ?  h 4Ӵ˦mjAovL.͆͠՟߾ D$]Af*&/-ߋhd2-GE!$}>͐TT >@CXS\Op\灓/ Pf&&6Qhf&q6JUZ0O f&O5̏*@n1T 6Rv YyuV}G$g?E6m=B Rť~zlj?31!]YT"ѣV`3d=έ'Iu g4˟kzP/9E~ݰ_$C8Q~,>b+:i˟_`$z8zEfBӏ ؋m!PZFO-4ōH?"Q.#.دrDr>q91ۻ(ehCRb}Y\ } $S?tIn7k 2rwL}+ix(ը iS֪1zY|$G2\*<>I(`a)Q:G3 {K=MrFAgJ˪0z^r#~[طwfA<$ /MMtq8dHIstlΌ#4ڧw J-~7@T 2Nf"MyE&2qsf)PȜa>!3\g3&W"I!D[Y\@*#:6qGloQ~1=QF{9o(C"E\-Ui#*&5[E)D&[aJ'3m`!@1ŬloC8+*I#MđlcNR_$CJ$ZJTQӸ'+8BʩM HN0/q" 2,L;80*)YEIOA3g!0r/r/>4 Fo; >(:tsPhdw;"{1Io iDy A?^mxB:?mLHrA.$eJ"=cM,ܳ |(v_`')c/r]?7WeQgvaޱ6uFHgu*RȞb%%4U6WkW?3!/Ũ+OJRow r*~if7RoIyZ/Ӯ '?7@[;nJвR%yb ;-;-,4=jjZV~!mp5KU\PG?}3f9iNHU qUm_3:2 ?"m}3x朝D׳{ıFQ3UK뮴HƂQrAfp )H&PbG'u5u(?ab1F߿;عs'бH}0^J{;ȫ9y|%G=18'WEvdsx d8WF!0߃`|D 9U[tSȘ9 +ެc2g"=\6(`YJpYJ3W.KGX"{n΁+~ތ\R| $ [,^`|\~d9Vx3ՠtXQZ7&Ǘ _(`1\#7;i:Vgzi<|:ȹ(2왅)!@hP~8'}G ˗B)*[ 'ğӏ]JJއ;5gXNk#]p 8[b~=j H#;WpY@֗nQM8d'[/7*PeC!njM>}\MJ#|fť`B4Р2gpCW5oh(_J|q!"S7X4q!MD<.1.1w(KJ0md~c$A9Rm׉N}]~qk" \ӹ!sl#BDN5/}ˏ2f)_#W6̤:1O~2uEDh`OsjY V>}j&+\.Pمљ\#7WLr L#ƣIWK&0bkG^syl=0|%VO0e(䶽}q2!lhЊ hCyg=Gsug%z;Z@1KY@"-xrrbu qh#i/<%sO #y$M[ ~/Ay˔(=;BnmHLi;Lkb'4;(e4Յ;#[EOX3rH }z _1Rod%m$;Ν(_ėBAn+zJU}:CNd<ߓ^"a@1JNu'ѕ0簚ۙRqhy:ZEG auy,"(?})f30?F,(t1ƁfwP%~l|: }x6`YD=BmVֵ(EyrFf\i*8.@7 K<^-Mr?si gmY&DbMK)<۵gn²*ѿ|g#K2GXہ<7JQRfx2R+,* ^|zݵtY^7X :ӷt4ٍD/mN6V b_c|xGbՒ/j/ԒBt/lIN3ǫL1Dc:ifux!^8 ;H F ]-(҇PwA??/()T.?Y1rFJjan?G : ݳU ~Gӻ~;+tٮx.Mg]:ahf<*aJ {%w^v/ ])A콜D^b,34`IP_VYS&4v'D .YqaM洟 ~G|Oުp\cP35[7+[7svR*zJᾧ r*e)vi}ú;7ʅQ-a-t($n ]ineDo_\Qx,HaЮb9`60P"Y \(@$ #0q]|J8Aْ5U[MoѤEd} !nS!ҟBUDͿamD_Y!#)b*C }4ЏRLZ*V d|'D~SO&BGD~79%ȟ%{HҐdH Yrn%nBj_#IY=QYV$u?k I=k6v3F2b7 6l3!,pAO`Ԟn'T&[.?!1-䆩`>6_vM 3-:;ҖyKQGWY9lsi*_%c4H9M+Uf->1 L&*mz1>mYi'#}6m֤s+PrϚ2( ۴4Yfr "4'yavnx7q * U֮o>K­Hw9<;U0:L -=ٶ 2x;yivNo<6Yv~!_L&X村Y 7A*e`/a@-pE WP/cK_(cz~[ė3.-M@@j}P!L U(ϊQq >kQ r!U?&A_- OY$Xx[$y0%Cj|`@"wUmWo6ѿn妌2K? )vp6[v"E4e$oY< D [K QE]F( <+6?"N>HZV"E7\ I[H^|Ӯoa7o_H20bfc ƴ3oaLII6ғs8L[6ҿaBLa|z2ܜ|iW߇?+H2r\sWv}3? IyON_}څ{pb/}eHl|]??i)v?ri+7ѿii7C$\^$ {e Jd%OP6dB3i`g3w_F'Qao.62v@Nك}{cJj&F5cS5cDZ89fj&CPd`d1ڿKe hi-,K8 Pj+t2+CJCI\j|Z~λ` o9 (8AŊ7fXm&@J %BcRz}\(9 q)608H;gsåm3vs!I{@X'vo[)v2H9?#oߋ-'CvڑAnwN;,0L{8?"GNsv=ͤ? '}# IC9<9xso*L{32w_f$,`o L{ˢGC$C$*sҮ?Iv IDO2@t7K9IpUiÜRL W;g/-L{M7}sC$e'Y,c??L{M7}5rIY$I2@Y@#{d"Iooo2M\ڕH=D_̈́oe+%Sd3!LI;6YV$ѿ'V/NڑYGvn;D_Z;i'f3_Io9{+|ig߇=#")ߗ@?2Yמv}f IP0I]\u`LۖH, z@n렌2/>7?eo燝vF2>D](;O3$v̟OR!&R*Uhv2C%7<*"vۈU:S-?|Ԧ6<zZV{Yb.|}>ҽ1vM"ֿZ%o(j|ٝwqoC$2'9@ ;8јt/?ݲH +Nӿp$_b?ID,2kv"J&?|Us.?u#[!4{igC,N;f )KmۮM8ϺH _\px5*gwW=~<5x mY|Gp<.g$ڙ)͵.Tcjid?} _Z/AQX30$}/44?Bb:?9N٢;O:ԎN]< nvO5Q;T yxԵN\.жQ*y3Ġ  S7r8K+k ǟL dNX?+ +t 7ѿiJ}R"~dow$LگnKޗK,B~AyC-@ϛ8 _޴~i",[M80ybYD kfڙ- Ƙ”d"*bOǪIU﫝e1🫵Vq$hl=ujՆ3Pj8곦yW{Ƴg>%<3ݓoM߲3?\;D62GO4Md1L?-F9GrrX;ft ̵BժuWb}؛g4ht6̂.gu< M0,V.;JFEk5Vڲ}pX&X X"'v XZRUpqQ92A@s YA/E ͉}fO.t ˣ\?ѴeJ0>>5ʮUq= Yu=8 Q0O ѲX<*LQo<+,b==AIdxbW9K7a`z b!/^ʵta8$ ӯ""Kϩ"X!KUʧq8qP(Gbs.V^)Wx=:nai @.*B IqV+4 m}OƣR숒]L@uf, YFQL>ҠY_[IvI˧fE.UyX[ L>*0 'fihiH[9b.G)S-u0xό"q1rQZ O?`Eo17g؍ݥjĚP ujG7:NOon?XC:8DLSx1UDdI:/”:L:67c= ^1N <G4xMZT n6tŨ*_1VE'^<+u)<輠$3Boj #,Bʍ0(3ǰ6׏ (tGr2WNŵ c{^<4ZZeͦWպD`׭癖9amYj%Ӷtm6 ߷HWW jl@ͨb +nd-FůVGU۴|zhc@yM,_wZmUYyUԆc踢VU7nU ^kBۖi4ȤP*oYVizVӵڍ jZ5o|, alVVMm׵,˳tuVhܦMkۼ<`r=0 vfXutjUV j^E(_z~H#<nJڬ+^iZZ`Y.}ο/_5 ZCsУ@,ŦSfOϸ,8kTH~XVF[`Im?4!YMf܂f^$7ӌ>{?͎{l ?%;`Y dnK ѴKkэE DUΎzXgYX7'eBp5us#H>eюbIRQjd=X=ƺ ,,x,zɲ'<ꊢa^.'q //*_cO ?qLY}3Oi5, x9 &G}PX1 6`z|%=}<b:GPWHy4I?*>?cl"j/X>v;fEW1PF ӓUI&P8 |^,@.EUeiv>e(!}x1ta%´$V[o͖tUUzS7U 1^繐nIJq,_YnZQm-x*05XYcTmǩ~߰9n]z *A-2 l 6z:&˃0LGZFݪt&cPut 7&{U`V޴Y. #`ЂiU}QP6 ֛ e[jV Y0=K} 3@V-3!1 Xi E<*Yм eC%׉Lըir<6 VT G2谂zʚY5\ۤ.x6 Y,hva@t𰴭bl[nlnRպE3^33VRHfׯj״f^Т* gf:@@%LeR*(t i}/r q$_, vfd^;S$6N˄$/*㷬bE$Z0 8 &,`т#XΊE&\b5+w]Sk!& 0N9D66˯;d-XN:#|ժkW _׃TV0 10BeqP:@3Ԫ,n|'|-@Iӭ;I`D`\0YN%p+t[b@,d|ix-wmVԩRml+EЧ63G-2U+. vA=T[mթ(p-]GwaaAo*BQHx=[GJf(o*`?hKԌ*h@¦tMe #-V] QaGj'Ck-ӮGf9McnN&֪8٢(4 x J1,0:`=FڨWa vcXhJQ Oڦ^3j#VZVjmϬWͦo~+~@R:p^ة kFY%@ f|5B@`.L]Y2<VK]iwr_Y^Dup̚VA ?*jzC* p2բFݦѨ ZVSz̀TM`ʐVv߸,'K&|O|.᣼w+dة`-hUMO76z_~Am/.C*N6Jg00['a},M_3o[UZ rxb\Zȴլi[m<9tx-k1m'DjY!d 26[-l XoXo*0zԁta,|6 ߫`u@?%h1_E"*j%7a ѮQU $e^ 89buYmh\XAj`Uuɫebu@] Էt\qDa@ 5]"C/,xdr6Z#ʫݬc mD lT<8 jja6ml:H- 1O4 ]-"[婶7O;u%K:6 kuQp0\Uzo@#B2ȎA*h~/뭆 &iӎZjP2jC RiOߪ9fPw*P[5 pՙlzЌ/P &>hve[a E&5.$eX l5MFo4 ජ!( (f]}\Π lH:lfE2 Jhk 4A7j- z oEb"(j9 z B'TKѮ-Ph]u*AxaVW@D܀[8TmUW$'TR8 עaMu(\እ1m ң5m&'-Q!UńU/Y8dl3T{iDY#JD1.rhY  JT4)< v"織$9.0MyZ?  g k9G/Ex$<Hg,wxJ(ӓB&̵ѵr=~!WHUC*67RX{ ocϫ6QʖKSI>c"Ʈ0맛^x[nOtO_7?|Տ |o_qJRS|aun8Mez~{Di:hBUl8tT 1ZW@|$gU^S.Y3P|#=is.Yr,CYTkwI)dܪiU'yCHK4t` Te߮V&YsT%ppGWP3_߽N#jTMgسk$)KԟZSvLd86pr:z#r7%rCcb48+*V;1 1p㼭 5 _jX;LO^ŊfZ3b-Ƞ3DuAT67#KDjA/<7H+}.6&mID'qyJ W6Gt"l3;Ϲwi*rOL~˄;댍 |l;bXl7EѦbXb;{3CDh][6ڭJ#PUdCʕ0 e rw]a7OuBLH?:XJ͜ dA[9 rRj/$eLap_m2Hqp paYn}D)UdY(8v'7-jqJL8!>.O Pe |%^"areKi" FH )W}ӴKp EEl2;kYېkU|`#`.^×dVH+lj3ME 5OIF?}8hoџKy])m9ȑ,7js@0o(6k3 (ݑ$V9[MA خy: *);-GnjP5=mdg7ҍPᎭ 0)ACU@toA[b0`9 M&Fv('b⻍avHg@8w~@W9513*F7mI"&GL֓Z_2mN-ivbDh<2Ʒ[f Xlxd>ӛ#WVoWߦI0 \6mxƷE$5uV$l ,4(ұ9º0jh92]0? Yr𬅪[f6G}1Wvʘb5t9z;Lr\5y%3kw|YbeHmE}(p5m-YgDT)[͙6S5˞-@a_Ãɉma&[9ʶIc0_êY̑ovd_BXE_s'7k}7/_5/< |AF#q#}/0-?Wc?r ~c&*^"0 gg?!tKӾ{( >(ipdK|NzuJ'>8_ )ã ;/5e~od˲Y6H2:5^j4xowިp=DiAg-Yv4.MNN*ԣ9NSTT(|ZI%pf~ ?6Y2\\4Y~)O> ή$mY( =?B:#Ió$MxW !]LmyQ i\%$S 22"s<2ޚD(?ueӚD񉤪 ja+e$eO|aLjPjvYnN,~ϗꍥ]]oP;bw+.i13]?d﹦V^K'T. X0Zg*J3jsp3pzqG/ir _F. َg$ѩޱ}ǔ $ n` 8A@!|2lRpy.ҳ7hv#%Ig6OAC]S$h<3\*܊bB:\onڱܙٸ]۹&1E nsb7el|/(b]Z3vV[CR2#Bz5j[1JM 7$}6LatM;⸱1sѭyn0`I-wQPϙnݩ9~d%_lH (#2^[rT}ޝи'G[.5m$xSu.t}25DrqWx+c:jp]jM@P V-sq!iPXaP#b2sUw$Au &-g}#;`)`_)xg<^.pN g*]SJ8ͦB9V^Ky/Be/P.(|^ ((I ZH_ΚJ ˡ"_VX8RANNN8!>mf6J/3j=ܚ יr{C?8!W`KH|kh i y~Aٟacr/+*)Ez%2@W(ݡ qYŢWlcTDюTUIEF!>zw,vm5Z ,aQqI+EPH#,qc \(,Jۺ]; rN%e/ʣk2"VP,'|s}l MtCyID .Z9Ƕ`FH|*0| S^4 ýt11-5O-#;玶W"nmUi.>csúkΣpmX+҃J+]t k/ʣ GJGEʾC'C z`4VhU40Qx%ҋBjP~UWo5cnH0]8޾T _K?Ш_k0ixءcʐ3Imޢ싞VeGYB=i %ZIQ6/5GhIe֬c%xf~mpjm4QO$q6EVu]Xܐ q1 # WFZ@L$o͘!y-8$.(I:Uh !ސU=xm8 ܋Si D !E4J D9WLP4/4N荏 \J^Yb$$Q-šlJ^*[ aӐ&B4]Y1ұqDȣn Lx]˻Ya铜"s u4R4R2 ַy#sDyC ԢlZ阸@ye n0Uթ R7_ZyW\9o4"N tC -C(B.#e-% EbjHGA&nJ7v.GѨJQJM!yCJğsM%uת ։al $85ЃU+lx=7}YVh# gP +`Zp~ 1sa1w"h]{*`0{FGV,yp |cxLW ͎lG ۃz,yAZG4D~Rm9!@X^bX/\c eiU pŋuL;{?#k2]!uk58 )&gh FUv]1|cy))k a r 8Xoa (Eh( "bLbZ vq!8yZއ4{ZfBS@(-Z \l;8=Wh hqC-$} 4f;Lq@do IFCȮ/Ƭ:!%"֊Y"8`~q3gYw:_Cŝ~qC>_1u6(|Os>ósMI?`3lh|"4.֙{IM$L:h`ۛQ 霮mdžA-œ?;,rgE+s#h"yIȔa^34#yYfv˄CR-Mʴ5\DS G"ZO*F͗-FO$i!aFy/ Zf+L3䋰͸[lUe:yFyG5v|y<.lf(l!^e!i4# S7͖‹2! FaȵyE\̜ץ4M2IJHV `$hSG'11|ӑip:mˎuJP 'Gi}2}qL!:Yo<7Z/ƛ7˨0%)9tubhw,-|iQ4dl~BGp.Q,h\'a=GꙌ'^hưfcy !18Nz^W?szK+Iæb̓H*VJ/լpDh3AiqiQv8YPaM Qn^p%S ndWDj*Ai _#o%_űE2.IBG>kD)=sp6D#vZ·VAQ0|7f^ d(B`Qc;h st~! zeif4;ZDGW{ u _jV.x5$i= HG| l0>ACϵxAIh/hFJ42!tXES|\V\V\';Iq)#n ϷA!6~s'L7)4ڬ9g Rb)Ckd32dH 2pf,P%6]8a'+ѳJ/Jaq@ ;Fr~^BQ2qE ^Nr~lIo+QEez8=v\72B4Ak0`LaK0 JY3!$ Rcx\nE.ɼ$M!t%y4. u;!< ~*l]4.`s5H@Ҥ!x-`-ۑ#|b,5~_\+NWk:A=ј>ȑ"L'p`zbFoh//4Nv07*fPL֮ÚdҷB2f5 j4D,}됖$)OIRϾ)2DKkI_]'3HCk-t<]l-"@*P8L/#Lt2nkB%F*u'V'N^=&lRSaP `Hq>#SC]]8mOM'ΧOΒW*QTuPJPEMZTxG#JB~8[TƼY8oFjVcaN%>?4'Bv"| zrשNMcV/zd?Ph|Bhe2c },5f|*p.Cd2S;+<.–@FG!vѭOG-䐣zm:2vԝ˴[Ba|?;r@q&n䘀A I/k y;hEBѮ#!—djܳ:5j*|7Lz10ɛ S)Ldo5$- ՌVY~M פIlCYQ&mvju!ަz5 n>hûcXX Gsm3p̽>hn. #S7mMsuRGújwG\ChˣEcIR&8Wp+ʅR sbe Umbƫv5=b߮@-GfIkJMRWIqU%Ս/ \9dH!ڊЧ($Hz78V0~f%uX&KɴLJ]IYh'/ԚS/='z/t8WL g(Gxq Uw4[vNB7^a i_. |d׃8C~MO'Ќy-Jϲsc͗/ 7goz_<“DeH>Yr[l?X\"8 +\7W[Z gr!ՠG8 v%WF9D,dkJRFpze~L71Bb/F!:E#G@Ho+su<>Knj uWs<'zwa}Lcʩ EN'_'`7kA+%vOƖ܃kF#y’ܩ [ ^ߔ ^r5E"bs#kv%R !HrjֶCJ亦EPN iP_~3D^-kY}kkq'Nk)fp(U)+whu+ёVmi`_ɨKY˨76r0[n!pۯr ^. Hw U=nqp{{\(%@@N:7+x;Vw:Ѯw92Ƶqe%''$!Eh~q5!\ϵb BI(u|Uj.JE};kck>aiu֎`Tv7 >J7NuZσO1%lҴ=)uZh;,@QBҐr>Bz1-Юwծ4bv+e[R6,5,Y`YǢ6I,Sý=XoG|&{֠,:*[R]#<Y}Yy6Jt+ɏ Cȓy-(U sR%}FS7 l_\9\zos< Q ^B[fwU~>B,'gX$rC1?}*2u^j^0?P?IΒ'޵pCt@Ho>}+:Hn0@eD#7LG=w韣?%xElsN*FXh2=?I.'3,8!OREz?(B~۫tO1?=ϕvyruJz7"\C""y "8fl ÆS;wa4z!&KTH<'/Nm3?`. DZ_‹7M}*DаX}Զ Yw`T{X;?46zeWIL!b4?,Vz99'2#GNi.vΫVSdb6k8<9pQܼzKR zltt5-. 6om0[h_z娇!CG;? `zϦ3GBؖwCT[-\-p w~b;=1,NOb0f{i+ScHꐀ,?Zz рkL,30^KO:qc"՚Loel)31N5|?_!J-"Ű+`h;̤zrRݩh}ڕbMoÿD';hDqmXSg\UhѯM$&Z)li_LA}_+(zm$MGir3OZniSç>&Uut-5rfW\GRa0"B>Ae[ Ͷ!6гު?g$Mge&֠Nxh@E/VepEòƽ[5&82%:̋Qz3"Ԋ($ e]bT'tuBmĿcn>c D~c^O=F1Q]Sɑl@XK-`׎ Eϣ-l-;A(efUt B޳GVfVvׯ24bBqUYa:09ћ8~9e`@UEɢaeT}iC 4Leː]eڗjSldu#X`R$K%hvTF:/*" BRQJ^ ?na40.AW,ܕA~H4f%ꕱiXe(]W<7 kD?.¨AZCU#W_IWfL]r4 ‚Q`p%Ke+ADņ^Y]s LXJWLT4פ{\Gw,<Q` F)l%&du\aԘMF3.-7RɾaA7格cL?QB 'W[Z*svZU+(1u7 !G&/@F÷:WZrZgaY&F((֘9[]aڨc\sOADz:.I9SzmB-FUdtL`Д2+&:ؕ; &[^-kQc‘|Эc-T`4ؙڏ\X1+@ ?WZ \Q} Js8@u;4Ws $0߂k;f}IGe+U+0vX|d_,]Fq%M:tGA`]S%cX/Ic%x0GDo %/Asب x̡ !%o \` ^TAr?#YҿKWpX{&h?б5c;.GyEHߴ 07Jbho9Kx0uƋ.I:Eyz)nFL例_mT![*۞]ޑPU'$!plGՋɼ9'֎$zb{x |?S3W +;לlrPtttDւ?]]bnbꃍ]6{]7;[KIwCw%o@.Kx"{KN$zotwr?0r ,SXwo10PM75{wNwAwIwkNL;~,Aw lym 5?uu:\?-j`I;[WԵ+u튺v~em=K$K$K4IDE쬞.a6b;cËa>g2T!TW凇gNֿ{^9uO9+')'{p085<2]q1Vh*]F>;w@;pC3yC3yC3yC3y3ydY1zﺠs/֡ðBp:pGX6N^v>M~I mZ;6*WClx?-d?AVxhOz?}qxGxWs}?ϵз>Gyoq9[ _;l\&w").Ny&CX8撍? ߒך ۄ"LZJNk#4cK6'`iV МrjUnkSj'FlS6Ayc5vE|Gp*lKnKP^v&a0M_ɩM L&LIJ7Mgu@Mim `ɾ`Vݚsh9@eaT#gM51f!c-^J+gC*:5f>½Dpvnp'% db}MpX*xzbeIo*13vτ0^If9=\';vb&%mZ6^4}cpGHI7B0֨!,6>UZs;%2ZM&b$Mv禶: An!RTO|ÍM >|ͧP,1(/ͬBX$f3mE as܆vh1aID=xФ0qNm=)ll:7h`4Zŀz$ Uå!Lط_/L7MMIIS Zՙ̦t36Ef>TqڧM0)# tũ91lglΌmlQOptvĩq:H&崁Ofl L'=F~+=kL `<@Bl1gz殏aC0}b9A+s' I[ܳ&!8a'PMp9.EB Ca GO:# Pz-e净8"$V㨛(7x8h&xcP+a#x3Pqk]t"#ڬ!nF9F0F^]X;xrЍn=F3hoY8 B8/pe>`_aj ZU h טǠ;k4]j'LB*dkl,t?@C/Dm4 h:FbKa?hn7h ݸv n7 va =uߋhRGUM h Q<8Y>0Io?c_/q/01s~k_nw:,ʏ~W.,@߀8>:- Teq:9!' U~vz N0)<{sZBYC.Еw~D]*6QeyTH{Lg'Pi$SlYd1U R>B(OsJgD=#1#b>FOZ>F|B1c@b@]8&熒|P.$#= ~7'E9byGoa<{;>x:Zbrߖy2p:ϸOӖ}R ŝI0n~F HRtnYD޾RF"w/bP|8ι aCt?[ 0ÃGAFfi~y a|O6%2*+8 ^׼ tJ1|(&#\=2 ] 31 Sj$tvJg[5 Ӄc^k4bǬ k̽-F.Jb0|d/hTS41J]`@ ˠ;KI\@ aYqrb@0!Hb Vbn1h@9 a6c)&'9=˽ ١:d yϹaoPz YL|p9Bl>6!wd 0bº0 ]600i-xƢ.p QXus`A#* 2u9;> QexB.ģDm5um`B[HK0!{B!]3. ,Bhlvs`+ w=' T`U0s=9bIA !19w-; q-;L8A(QkDYyZD5`9qŒ$t,4LbL<UkAB_-T.,T ޅ%eX":&N* 'Zâ QCq"&'C#D--aFTaXR>j buúDd8e`G -F!=.y^`5BEBTza]fzdvobLM a[9 |aG"jf;EM2MZd3æd ‚".<0uցݚP` LFwQu6D`!#qT:C)uۀe!,D}B VR+zC .ThZp%BP`xgO=^7X!j5 H0&*'0NZ5X0G-5~S")x2ˏ%^[N.!r!]^ /{rœ# 3r 6I۬co,# ?(h'm$>]`]ڬc߈cL H/?6*.8Z`KDONz*br睲$mKs_M[&z)f}n#+FD&3Cr;X$Gͦ9J)q̾lV׊#|s$_I'Ϲ|♩ Y֌ hbՌՌi͸Q#k6؇laQwf#L0OB`01^xdH RweAC5ZSEotWIڮ; W8(EiWó^$q/Y;_SA5PrS8<\hqbD6C%ҋ" %hjH߾:hj*Qvi}[UP,b^' jN# hf^J}xʽKQ(7C,d̂s@l6Qe~ЩzJofornmE"&iI\$ʏj{ P].Tao^ߤhWVߕMH|e=]OqAsU\Ud*2WF5ުkEZVĮkE:*^z26P]RjZ:T5mf]5UbզX)VmUbAY"5UT*RSW}TG;Rpt!aTpjN:&IIdkڙVqZ3JVڙG0bFʙ'y*FM5!nԄQFMO|~bg" ͈u;@ |PH,V$;gѨ;譂L~7T1Iy ֣?Na6s,c-s<q_}\(B4WFtECKEk~Xl^Q_nxcOY-rG'o{v?Ój0$z:&1d,X# bYFs[nMet]vv;b5';СUY!WB7›f<"|Ƌ_GSx71yu]JC84g ;ܴ]\'j܍;I7'T"oZ@V jŸ2P}kKjqψ>5`%)Y^mqWNa@q#tVʻo@W1 *]v![[c/A ٳpsDV <dF\ů.GTi4pV2S\9˂XnEWm6E_|:%joճr V3:˲nTQk8,͎pQyQjW륤Up\.==`Kc'i0^Lr HT{7e,UXnD#@Tb[+hih aȎ QǺOߜsM; _Icbb:WW$0U٣H,}$F819Lb 2-ȳ1v):f904f7J[̘ [H& 4ac]+!n`~ .:AA>*09Y*5XUkLkW /V`+E : cG4/H~ʄ8+nNߌ9PGHLD"mҦ̲tJ7y*{gEh$b)|chScaKD%VTgݍZv C#݌]<E`W#2vDPC&`56ψ6BǁbYhzW'G37>zXyBS- yF2Z`lB @35ثG'<#X`# LtOeP;~iگ<#Gpm>򈫃ݶhGfh2 E>et3]t"Ɍ qՉ}:Gbj!H"?hmvS̪u/@6}Խf0AE"_O?d#:xɔ ߒpQVA~M]Hlnp6/3EY 9%xK*5#DFpT90>:}*nR&t]9U"CR{^E4ȢB$j.B9e2޽y0&]i+r"5rp]륜Jh > NQ'c,i^P=0^jN|Cz|C[Ww!θFfJO9] \s\ Yr'F]P Jr"=bD߂W<2 Zo.C  MJ5:" c?\Jsqw`~,7cbơ!"(r&]쭜t콴'sq(V#~/~h?fnzx?"<ݞ=i8~9kGƲ_J}sI\=z.93hJ[!LؤԃvtXJxȳX5(ڲ4}PC?n|.H<Z{sJS-'࿪H_i] 'ŧlrBxe#D׍w5&0䑫?115E?('? ΃d(Xo~EJ"^_UtՊb$xRA4EVK1xtp%eq"HpQp6R2 nN ~+Ӆbe 6*w@ B31fC46~8T A|E@"EvG{V N/`hG,QeC0NbnܔH` d](1_k9[O{_gv|u//Ye ֖+ku"y<)I-,tXgI;DHυHL'juìd,Ectq,3 hC\/e_u+)SW=#. D5 %tX%Z.ȦBry?B\]荼 l"ۼB|I|gVmv(5 %$R3l/%¨_Zq9vw89&~Gk{B_!uyaV6 MGΚi"EDV @gʨ jD' nhq֋m"C^h?®W"D>F>O@۞>dzoCnCnCЮ AALxV9|Ґl7oߝ+.k|(܎;-kґg: Od-³ns94NG3O[8dk&Q)Rej4C9Xjx1+iWbYHEGChx!}_76q4# >ipʻnZː'SE"?¼Ƿ;k9BÈq00),ʮi5{&aFhEl^J^*-bS~1(k9 S n.pchW|ǒr0.Y`/rLgg4n%Y<xy1bo 'ɤLSAb#Ab-01ĥFz΀̚_11W?Oq E.A;<]Bݶ*h@Nvat'ǴmuM SbMJٞo&317GsB a@Z ACr8cb>g} 8 o /E>n8`grM1\(r|_a(4&^i58\}?qgZ@}4knp,gbE@Ab#t] yect;2z ;;@ 6\\Kvi_j2&8꧘̻sz@a5bHȨ h7NW&$p0T}!j|6LiѺz^`b C>Թ9u ,\=b>`,dJ BF- c(ºah1 &Fؙ2Xk s;}z#` fct#vNFYM$|#2='8^vSS~٠B/ 0:Άn )ouQ\iXRO^?RFTC4@PvCjψW($EZ܃@6_nA|-L8„-L8„-LD-L-L8& @q L @5Y݅ϟ wjP:q%B#@-8—6{{yGYn>}|2Jb[h`F,@?~Wx}8G{40Iܣu _Ji[bY(˾WgqԽF߀q2u%\]bPtC%&E<]bPtC%&GHC9|@g%ZKY_+oZi+}Յm/Q`G*fU&V$P'7'Ml>?V:uh݇M܍FtPUi_wOqgoI ATP a!xIJU jI i _hzQEa~z$Ʒl.ڽՎ:a1a(Tby.1ZLvd"g?~FL1QOy @<*5aXU;y/tc_`۹\e6) 3PHNn/QJMR%FJ ( _7W7Yxr˝E'<80I„yjӏ\>\5 Gn;n f3 xn~Rtu h7(ӬZfə>71M;f4&h ?ٵUbZ0^R[0Y%7ׯ~rEp&0/:G㥃M[d ܥ`*%\xep]epGS^ ҇?lx =8*E錩%1?Ozf>3_^_s<<5r8xy1|2Og5cw5`+ wJN^{UvP-MltL+arAOb]&q8=нMi4|k 'f4f*qX!kTO)gV/1flkϧ %poM;9Gkv'9G쳠7rN]|u㿒?˯O65N i~!KX WsͺҎuf&g|!} zrukfXmv z:hx{) !c!׵MH@)zf@t}.0faeBHI7nӴCxq U=c7wf  A9lnDܼ a#_R8>sehnbˋD7FN:HŠ^$4O A}4ۑ9!/6AꔖJt#4yP"YAЭz<(pI4|@LQQ|&W^ U=(Q+{92kHߌ0*Va}M_—1#ox>B T@l!\^+u!KBO%*=$S/|(fO1Er.(]&%L_vi}VaY)'"oگiHG#77@eBA=y`WLK&8PYitOw#T"#c:A Tx]Kyc);)RNBP 0#pF?r| bD2b= Hvg:w6,~U^e\ĸ1[f4xIUamd$6"Gkﹹ[gz>+[c٧Fփls7Ef`_q/O4Q-8?6?z5Z`=chnnn{0`[`moGܤ)KX03`ņmse@l$Hl_p$m f}8Ӣ,OKN ?k?~D3wxnx0.߸垼p ~Q>﻽V;4{Ԥ=DWy*- |gp+Svb[zM^_o>DMs{fGGH36ʛb;OOu_oZ^׳DmK2l]F-Fx}Qƫ֝F%3%|/_>٢EOÜ-WO"ZvaQN1R"%9xlo6 YFQ*8aRs ӪkᥳiIuXw~ x{Y}{ec}hJ L|,\}w,cϘe%~"8Z'%;, T\ qY]`4S?7V g{[߭9p隣͛>1g3~Z,?/#0*>QN}^_ mavoqɷ6@߯ lWòf[0a7|? 8Hrh a/vs8@Dő1cC\>fømEt+81ԥϡ8@t9z7D?sioYkߋF׫-J?QF.(ojhUMn }A71m(aKxɜz鈴 qD BQdpb@8 hrn]#a{"YϾB4i$qxKYiI#}y.ecft0Y(1đt;t> "!w7"E3z 7;.Gt#:o;;|c̦KIuS39%x`d#C 1pDsqqr+ DXV #Z[lR!U ^ێR?S {y9 O^ v8 fiTŜB &"mq`G{&p׿]O3;~[ O1ܽ^Z׃qχ[cۊ[m=$W/EOƪh,{>5]u#"1e 05š%ٌ8d{cīxpY}'o&kdQSg܍xP)Le OK5.šzŪIΰ5d+j="+;TRP;䵩;YԢ.^UH|SN~ާ/|%ozwgsr;{T7oO8}DGEI82?=љdzwoω6K:7__:{HR9#M󿇆AA^7Mh?,.\K g?<M㻷o_ 7n5͏ُN|߿ +oGot?hR 9{|qatz,+|S^OG P @F8=1^)V^$yp~* G8{ t\{yq:}$IKņb}IzͶA~L.!B~T#~wc7tO54 R~?_ JTY'B%P$"C]Oq0.m3l[x y( 6835ߟ(!1*KANFiT{IP UkԯFgfɼXgLR؆ n,_,"ˆ-gٍ2ZH 7DWtd? }.q22$MMC*B͔^ mO-&o0Лѽws|#e3[=ž+'emu +1+ VBtNW9(ykxZƪt쌧g OU9_ Ty R[-Z]x@1aJ=l1[]҈H# 6XUki# v翚  ƒ8"b@m8PFE): oAso#S\iO oX~t':Dг, 5 i LƃЃRCkخiڡeZ }'}f@*HH5W͗Dʆ #)4\j H:6/FI-󋈚 囑 v@HX&)8yPw-XsრQ⺵kWJFfw8vK+E_lg0Ӱg!{_x11;^6_ iQ{ پalYm@**G'iSv:T޵tSu :l 1ol9h) /,bԂf:xg5 i4Ow?@5!tJ]HcH4+B`D4BIuy|xv43ٖa@]۷BƄVO4%[0 w>H31$=/t]\O4}zձ}d0ݒ=YuF7Хn஢֔}sGP-Nni03z2/Mv:iZed'0WfI;T 9兮AkT5MUE0E_@8`HA,Ylg*R66԰PȘyȀ'f''5M"NիǑj(u(֢v kIpOdߪMkqmV׮k7ޟnѬ6~/jem R EmH&n͟ QOo^x QOKiO>_ PQ/9=52a@`3.fDoaFM덺p) weY]%E~øXfI FTCA{VRĬ-kz7@j ' !wv^~,ȸ,ȸTn4QZI Fބ2+|4#ny$M'fIVAB><%XR=5 ʁ&5bR*Id%|U_aLHCL"m0= HZq #cɜ/>B!,VL|2~hB8Q-T7hwånH`J/Q ƕ|^ⴇ_c{rŋ>KM;84UPzZ"\Ե.U3Z τș^Xx-Dw T kfT_PoQfO?Nج%FoRZꝕT;K68Gk T s%E26T}޷ez_S?Z혿.Md6e]r;@ ]5ZґPBYCy Vb0e(||~ 0_Q)|Nt[-ҿ{V^rBU ^z2.M~ĩIȦ6:1o!Շ a8Q<M.UK,tKDE}mrtXdc.+ FwK1HU;'~ćxmz\,JO955ޝ!G`EC"G9ib*To Ժ+ϞF#ͩW\#y+&{8$)-TȊs >|K $F!SXzyOS1=nɪKnl,+D,pKUc)/AldBV MG`<5,B6DVZbRK$2Ğ^2U!ЪcʟJHA NI;DVL9&5NN-fU9NsҍTӶ㚚EFm{fc9+ p|SVuL[`jVmۍZf2QmʆJQf0Bk ח>:kV nj'c% ]sMP!]zk B昰՚|xb0mXڡȑzewł30& du^;h:XBLTM mH>&w&!Ng d\.˵v؎&ٟzK6f{2VJUT*ڪSK[&tJ͙ 8! hQk!z|Y 183L 5 [Mc/zo#[_{5FyhbC{-yx4ZhdMzt+G9W{K3n3vSS7c7Zr5Xm bWYT9?Z]ju=Z|t`UV+v[d::O%Z8o֬YͮW't萗f١.=aOk߬fɏ.ٞܞmgvRwu\xg-u&kUqKW]OY.8W7C2m=x7[͝Vsq:x/7d_{gkKl~݂RbjYyz)Zۭ_*P;΁xeϚjl^ѹ#;7ͭvkn [;ͿtG=| #P{y {o{>R7̓M: n>$is렵P4NvesgpkkcotEZ@dTX@ Q܃xI_حaY/yXA`oF @ag >vQeNug~k=sh#qXJ9BuYMיF4R˺ףt;;枍(%vr)tԮVsij>H;,+U8# D/B \RRmT\V+իj)0%h0WiKFũFxu<ƫ5.vWkTTJ)90pn[RzѨ5J 6k0 F>TU(רKz,\NTuRD5 OZUp,x[>(~]I*Ǒ}$6VOQsbH1gHP]Jf[6ߕJ.%X+5ϩzNVËW7 XԪNɫ;+UՆ ץTFݭ9[n4*Nn^80,yNZ+Ay}Q+UʕF=V*J^VwSw:LU2dڏ^C~/*ը@s54u+O#FЙN XJ܁oAЏJr zрy1F*:՜Ra&5䅞0^0I!j]4@Р#ݡc@'sA4]e50t0*p)wgO Y, R "Cj9rllS @PxN T 2=aTkTuG*^L`8*^d/-ud:y2 h>]5M:""b{" ;L +U*'deK ` ;>07혃~_mK;R{i{V'яW"+_"xEm*U1xQBR,o_^v4<уY1 8Q%/Mu3F8cڹM&?OfFT}tX[IH~>={L _V2y3A`9=SYܢ)0?XZZ>l \[Ɯ /]P/|} __?ͫYPyNG`%qՎV_G 鳍 yc Hp܂w  VH(R߽Gkd"GZ'L<6wwE(ֽ\-"2b*< WMb]ţ{4xL9"dIMD4XY F+9R3dkQ 裣t1kdDŢgab^A F wy?DՕ;4e뛲ѝp捫9}ꜱh:̜3 L/H tTr ?9ȁ xSFTk3Lu:M(8ڿE.h ږ`h*}nuOTR$3e[\GZGB1?XJjsɊ2 >77m$ BmrZ/ȸtG`ڥ}t# >AО.jMN5N 0yDk-(E 0Zuʧԧ+e\ :nWH+VymL ?S6V0t-;x׆Q&&KIRVU}]9~W}5W"ut'\?It[K%3QFN_1  :ז0Zaфg?Q^O>_}q$ZkHMY6B>//{=d?hZp&a<ːx4>)Akiy va !]x*Acd<I2/їՙI9&z\r:%}I AԌN4MqT@.*4t a\#9)1`$:RuO`ځW(Iubc qF1lD@'Bh>&:u`X>w`. iA. Ui؉N[pB^`!/TKE4b%@$WeDDW^"W j@ CΏ+lS6hf/,P愬2S xzOd x}+}!I0Aҋ|H!SիlqiyoG1WXbXԃ 3:;٫vrxDe `":!TT5U@22+Y7𰍐RZxp0{u($ X˨/.O0LH)>q(^PAx0h$yُbe5.kHF\G)*>.L4aHQǷ|\RU5?a]%6&0:==x4t%uxƒ;|;7/0YW=#ak-sƌtz_ sCMi'z-G$O pQ:CDC. MDGJp$Ըw1t;OOYR qQ?fyl 50I~7[FclM (?8%RQV;x/~hx};qԛ lDiYa*_k.gsZ|wx~y:(>*D^O@8{`My/5wYՑ?S.VA3zo::Ѣ0`>ɺ2 gt|2#L,J ޘ*,qޘ)FhX*\.qA`'Yul 56f;RAar #6ye5_c|`fxYryn8;b )gOsfy7>@gm"_baWv<7๎G4)%nθgɽXZ3VҢޥ}Ȍi:hXGFQ2r WT^R鑩7VЊT&JϲQzKZ)|RzlumX̱T8*_Okt_Kr6)خG047&hkU*]06^\&:Q$ ɏ>~W[z/P tj exhڜ }4_E)G 킩Z2f?#̑&8 C8==Qd%rKj* KPXd! 3, JųS*+EpH0AWߛ2')FN!c-\p9=̟@N&)ߘwuSyekw;x!viܯcPT} ؆,kXCCB.O_ P\/jOy~v:/cǯ97τF8Lz},337k<2~(1R_lcz h]gF 1;)y4ߢpG3Ѣcsh_G88ABr9.3C"ڔ%*|¼l.d et.!8P/, ϰVG2hS5M\ʂ}^r2;sUalq}<]:HYzbu7EDe<5<Ξ>u9fbOC*Ŝ={SdT )/r/p<{\|ZY1zUr1 F$ƚ.r;zI|hX(bhCJ[<}EP2B>PFJxNg'P8]T|/:fmERdL kV_#EA eyW^葾~Jw(qݡ Ɇ-IDK~՘עW4XlEvÓ1#"m1ۑcmܤӘ w' ѤFر{n;W u3Jc_NYIiH?sFSud_⹲92PZK?:JUz"Uo]{mqJڛ3n&[lmnWwfo#)t7/xu?N+o. wQ ̄ ӑt."vC d-/!Lx~뿛09t4an|5L(_9~MW=\o]V3xѠOh8qd1z~7Q3d ׷Se;G.8C4@IwP]+:8y:mLB"r6v/6t=;ʹ߹r3mF$jSs5uW3@h)>>beaxT'pBbM7q`pCt䜈4#^cYd[WFb;-f<'g>䜾#"$ q9 I^ ; Vh֯;V1ȯ?ݏqqnFk7KWTA,+czGG9PmzZ[p<]WxRmg| ZA%*Ml|vR"6iuVz:k,rdtEb³k}3otN_u[3]rAIόySԩ>#L$A+(.5٦J^brE#X,kہ5&&+yao#D\8J+6Q[?Z*3 Oc96Inͬ R~`td Of4cV\LiFkΊ*Yjm\dM!b H $ i;q6lg~+Sی%&9]>Ϲ>?.r_Zs/yvL}¶@xΤV\hx۟R[>篽 udԘ;b)oL!9P`[pw!+m[:eu~ZqJ|otYT-⥠[s@=d:V|N7@fh# <S}W/;p:$ǚ@V7X(s|Zƶ8g%2 Q oA򤯯}7>Cú +EE9AS0߁įD876C(K"Fﰽׂ oəN h,q^<^Qu<ͧ9ūklsӧONçZM3mj?"gQlF!y+,*\f] imɲF֝slM? F^:W`O,.+vu;yB0``E=xWw^nPpw/H إi G'/CÁbm@ Gါ/*P.GoI*oacG=q0%LJm(bJy_Psx޵1c*HxQOTXbϦ K16wE1Swԡ|hKx?Qxe_qU<5"lp𪵯w_T?Zϛճ_eSm=x6w˞=W_Uo (|޽͝Vsl[;/ z:l,%! ~n>km~%^vHzwz޼{OؐsہU͝js{[ ,.5gۄ.[Nm .7ͭ~i lZh %Y7_oKjd^5 AAS}=j}rI-x ߟoQv{{oBrm*Tǻ;3ޯ냚~yՄ=RM w B}fNvesgow/fZZ\/o}l+[Uj?ZH ` Ĵv땮wNDp;m[2 'e]-/=j coWM~&z|70IٷWj:TpH&-R@p6ց 9BreW0m hf{Ef|)`d_o7;#.E;q ޼og O\m2C4כ%gw]tƒ4#p"cjL!0c~w@29eFrLa@GQl}5Z bb!^ʑb7\K0Kґ6>SؚǹboPt#VOTS=uJV@~q20qsd.^e}T=D[)'n9[?GRgoT++u{z7{+sT|VtfXcc`#R07st PbZ;@y`~sm遼ݖ[;VN~R}n&Yבr< ʿ0cs;/L[L+)?kų>W R8"=\XMIv!&Wk߭dxRK>T] #0|(^ 3s:& IR? `C ցKjقQDq.+o,JcV/˂HafH %O/:,#stbHţg{L[n$ :/JIaKS?8-^mV=:ZM2޲ ;o J|ؖ{ڋޫboX6Hk8SҤ%~n$rܧ6sgxuޭu|;$J,.P44?W|f| Ȟk>זE?qO0'*ײ_j,RG&Oș 6QO:L zЄJ|(O[]]3Tr? ( Nq Pv '#]~ir6HsSrzG!c@-;;̄Գyy;4A33}+P|w:qJ3w}Tt)gB)p6/hxn|Th(5"ާ[^.zU}mޔˁX4!LVߌQGFj`020Ul"VFD,dsPT vI8gG,ZXI'qbd VhrTMv 0<7j~a;>ocP G&OްҮu] ˆMD^3R.npx:g/;Nz_z-_{Qg=_:Z?%g-TL`"pH`-%a3 #C,\/i{5.Y[ %Dr*e֮.έvAIU)jM3LFƝ:omxhGLlBd/&_(< _E1 AIp◁НAFjk+݊7~/v{MT[RF*]TF\EF#AeYpey [>{6=g05o1 لeF-J)Y]<)L=X'J1%&(2-$7[FRo`53p]*G甠>`͏<#zOxΖãЮ#y8=!/z}󢠊ɣxܲPN~l$ #ʛN' )"1ښ S?JfaFc4oSZom[)T^_ZYc+L-"ژÍ#NC <vAD>oiXc>Rl:-C)EgҸYA]M1 Ɲ*QKh9:xty87]A­9p'by]?3|=!ȚRs,{yYf鷊ab5= >tߧ,Y֫VS@75 LG(kťa\x26"5odlkroa%W&s?乢G4)/m名#v:Jtx=q9ūpѸ G5fu =pO/]:0.{4R渦챹738.{isF[l0;>B-:в4D׿^]NT;x;ѭ;g/ПcN{ 4?A\  cGgpeo ,A+;Gu=Bknt :vS谹A`+oQr(Y(iH vq)]m2tÄkgM}f0ZrYu]j/?afrwSJf;lut2%֬+IúҨ.y363] 2ix fElAӫw h%:*tz9ltjYbqqQ𾈈\LE8i|CYWHC\?8N֛XV`-ڞүos-Ȅ\nQ_NU;yYWzO> <^Yh}B0O&R?9Gx0ɔ ^E`]>F~ xq x5. >Qp"%i4"k:#0d@l06etlXUm%NL"hF0Ԉ1}`B$ HudHC.n.II-64:f| -409ø) dtW}ͽovz| /j=Ym<U`5i~(@_3[;/ {[[`@ؓ`BnmgTTo6Z[o7ԛ{ovV`ykk{گ?;jdYCQS[{ͭ$]c[P#@vAinKM}sԀo-d͗}kqVT۽klu^>Uͽkj{z$žolR*r So[TM7ݝz P ϩ>wwgݽ_5xA {X&V^k@f"v_|zjb]DKk6jc ž%ޱa6jAz6-E^S0x*d̈́$6|a)afh%c]nVOnY/ O^`jE) h {p<_ɫU50))iL3!n9ǻbjcCWym%Μ-6 7Pw=m/2FwyiMfЖ$kckLowr5Ys_??4h2 :4X3㑿YRoCIG'>j4 כk)O$0p 6>-VM6ӓTax)_hj#ɵ` _ǣ`B>/'aDG):GڊTe_9c>#p͂2n>ܽsM3LdjRtr2/ L #4r{/gхJ|h$*ڻIsitb4X\W#b!O_tt2:VHvQST&c,O13dtϻh-u.Af[<LmbmO1RŤL\OK =:':@{yz%;')v0"$I3s]FL}>!Dlyz\FKtSϦCZpEGC(2PjQ;0.nIN`8>(A?# _N_ :휓ZjegeZ?G.⿘RZ[2@] (RzQmO TJ ?Wag/mk %mg4~}7!yGYt YI˶Gp\ K8|>^z'`*"(f7( V l^M6i~SuH{Dt]PQ&}<2>0]>8Ghnj]-.'Z#8w2B&FrPe}! 3+Tg"mHo7i C^äIVg\ jE3B`ApPjWD`ψzڇ衱Rtb݃0'Ӌ;0XPt: ަ`vӅh>HbW|Œ=+HFڞ/"V;hu|.!Bp\2L`R-'h: !GS#v )ܗ)tbrD]mųc;@;"4@9:2؜qȨ"==C 2YxҶl|;ę a&-gsugM& &[mਘ> rr%].FNq w8Wy8ԅ5h4EuHEGݮ: I1vP4&+TհG%7"2ލ X[P л(JW.A4j+EeZE铋 tLB8cZ<0>BBh~&t)&&db]WS8f4ׁXWr+ȅv§Qri:4[uT*LGevܼLݘ SM&NpP$YYIV(r>x],FYwz+W\EEGX #4=S$#eH }6zH$N+Oר<Hv{f@RPfLqo[JjJ%lqIa'"e'?0uꓲcкmn#yR fsIΥS36S۟ĦĆ#lr:[9!ID vL'&ukCUl5g&z2`LO1ORfhFyو۳UgI#wU+gY;Sl6F#ٌ&Dط قX+m0Jv]<uhcfWsJx?_7xQ}[`bMAYNGz8:ŋ`\k9B}AZj#/Rxü5n?<&P~ah"{@?UUC?~/uz8xPꋗ=\8+imj1ўC Gy+xY#  gOrL/Ż D5c[,Mn,wap^ڪEcn)X njWE f,^TN)=rnT#,Oc7IrFH h7>Xo:upJJE9{MLyL^%v6QB?C7d24fR mߖ:كҎI++}7^p˯}жEW =N2|3nϦN91>ZZY\n?}x|uO@>w4ao^⹚g9^^fîx#rnhpoByׁ̔+n(>D|W0㋠,]Ə}\DU)tu1tjv07c`$6lSi]PnQY?zoeRJw\91h?x|LڣVڍs|<R,l|tR2'xڢ}b\d+]y_^qjLogM+Ͻx/|l0MaTWA0=D_tuM<0A%Y(vbJ^g +)w}&Tx(2؊N4tJh$x|'8څ(_ሩmZ8 &peע梋Q=3PQ7(twQ<]ެ"#i%> AKIRXd00ӐW, ޑNJ#=7o${,8X,{ɶS K&|skm0IwQ 1q1&t~?%Qz@J&JO(6ŬFfsiew)@'UEwek77vӆW@m,zcIڧ\MQS.ՈiU!Fb|xU{|>]c]#Ѐwz12J hb&+E=ݑE&<g-_nxLۻZI/////׼}&}POXIwdwt?K>9OA F@#ܧhPT7\yN8:o/eG}x6Fpq@Xw :r` }ٵ6,nhfkͮlR@i18\D3d_ZsW7\ .%n;xRx؜vV1pgcD'Nt\Zr^Q;l h]Yzp蔬kJJQ.? ͞@231FP{ "_G}{+DH?' /;xn$ /\&Jlja2 p XG7g۫(<4D;柫`]>Yq7 eYTKO"Wq/ cbͫ8!K؛Lwf=$Cr{q+ N_Z^zjfe^,ĸzuw~O 7|qlOb.9o{-9omI[ZB?!Pk(D> vϸvj?=כCKP%7A.oA$٤"A`. yDҪ\`.!7voj֕["9U ȅ. "|ׅ7O>CΜW(pCHHGƽ?O𪗟'}ժB?lc!#}zGWo<5z =WS^0d4y"CE?p tcerlA?%NaS(T-V۠FPآ[T +9[^lWW+g>و` 0gt%^ ǣSȺξPK|!ODmPxHD/KZAuKo=b0g^pn1Q_-C7x ɿ<׫UrVUsܒ(5FmT*p+4e~4jZF)U*hK[-+j+Uu`U*f÷ U[ñT (Yt-tEQq+؂`5jQjR )Y\ZuߺNh::I]-5jn^qNn)\Nr%0D^:XT5^Z܊\^:)XTYQ0ԫ>ZTsBԼF p˫R^Uk.X)=][zNéTk0K@=]'U W/C3ʕj#8u~ Uk A.рԜF>} vJqH:fgF57V˨yg5a,_Z{F(삒h\PS7ZIPD8րh@BU7UVSͱC @M[תX.Zte *_`(\ .S c߆cPr5o2a$*jaluL0N*LF;P-'urdU`\:KVo<; <N 4Tړ?ȝ=V -y`N0ץ< hxA&TLŹMXg *= P5!M>gVTʔqA}*D ^(DNT1?:U0I2[1%>gn1;%s%qM'n4(0h:R=Lu,c,a0MO2d-M(XEVo}$ju7(A4q6aO_F er<˲De6_pqg&\|ע (=jMGsE-s7*ts=8k]OU}Iw _pz")g٣c~1MA[/U2'.%(۱N뎉ލOEDmRwX\T|1<7y7q=7;Nsg[_ưw.̥7:;_8xpY=whmͳN0o i]IQᾸ vl_n7Gn('-鍁}l . 4=OwBh62=*F8O·ȳS7,m[LGܔ Z̷l떿}PP_V~k2%&Ȩ_!~N钼jpCU\JCK}Sy=ASދ)TVD5a-g4=esԅ*Ksn9sj,QaK\?4'S'2d_x:2i78Բzq(#5@?{Q2p7#Kiwi\ aF0[U^.#x ^$n2/z%TN=w\uO~ 11~q{nγց_yuۢurHS!x:$ŲLFʄ{Էكjb aˈ>ïxWpѮ\tb#F<p ں9f?8!ˆx Y mjlc D=噴 $kEoG88in!\f * 㵙dGm`׉/T 2 U$jf;:ޔҕo^p_W[sM^=/VCZeO>{SVe?w;p^R%UZ5{0~^\ V? Fmwiuz>{E! nNU=I8/OK8͡.|'mT?.'14vg#SH>SP1&jv] _&C0x4I+r2f%q)1%y7/0ҏG9gj./%@1nsDN19FNKd) NB%/D 5[=}6 C=Z ڎ1x憼3U{nh1-96fM3b8!$ ,?]oÀz`7cٺɛOpzQͤBR\\oA/2+@c73 Iove`S K>I0is+I8=|zv`4D)a~K -%pԺr 7\i=^-pe?S_UMrLu{S\miT~:s S 6|W{`swзA0́F:Tѣ]Ϗ_b^o)&S}SMJ4? uxx6ph~ԏn\S;tQB/iwVJ&w<^^R$MPvlum4UN&`Y6 YB0|z/QOУpI>d (s,Hwt2E,ǣnI?]52=`0:J@!bA`3j34uF@@|g|k3 ez{6MPhg ֑@F !g>(Rc:'pF{ 1uOIqS!b1WZ'8|:i"Nu'@sKhjs# .N G)ƥ A;MK sa^_6 Gyz+lͷvssz`wo_nCW$+;?5^nsjTkgk˂,jg@m^ nCDIHBnmZۭ_,lno7o6dykk{|UPjs_mnoK6&PlPQ1^sىmAq/6ͽ_ ~o!Dl7_or 4۽kaۃz|Q?Z[5OvYB6x-Aso훃N*Tǻ;3ޯ냚~yՄ=RM}&rBPY|zj]DKkkc[b h㯢EU|3C?o>1zk?>*; A+t?3ƕ\)*TG$skQONoa  `DU T5 &Bѱa`K߼[>a0}P?A2uFb*tP[AӰ*Ҹ=}VؙǦ=4.?@Ը=:+P=-PopC4 9҂G~*=zT+}lAyXL&פ> QHTI4JЙѯ;9 &}z{ݥ.}wq(SVwݡ}/Yݣ.}wCߝjaZzssޕ߿+;n/~@uPTq`!uO({7W{MyTziSymMpmm*QmmOjw4t,U[yGEp@PRyۺ<eSWN3"9wDIy Jr>X_u[DOʫUuSh{ DU#d=tު8*T_0#1/. "t2,.(ɹ#JQj6ADDyyJ/2J\1W<Æc^h,ʬ0i8Yn*2() ,&uy ˂Hq5 !K %g&Er*@ç_>t< Sh=Æch,8Yn*2() ,&uy ˂Hq5 !K %g&Er*@ǽl*R*^%zT^\UGJpD[8l8 ?'KVE^Q:!%D޶.!|AuY)!duA̤HQREpRѡ_ۡ;DOUPhx DU#d=tު8*T_0#1/. "t2,.(ɹ#JQj=2K*By+TzPyBp*QmOt4t,U[yGEp@PRyۺ<eSWN3"9wDIy JѠ_ ۠DOkU khPhkx DU#d=tު8*T_0#1/. "t2,.(ɹ#JQj=2}%*ރx̟(,N{(A=X .ރxlV{k3xQA=+A=_ zAn/*|P{Y|ėdQ{{0gA=d>{G zzTo{_"%]{x.y6ރ`%fKۻzfJ{UY8ʂl={ z$[ރL_ z}?:[/ѦAW|svyTʥ f׈T( ޤXu.R(Zu'GVp0*>T[U1eV5Q+|Wk 2ˁ^bnC-[#M; 9\ OvËh&wUib*zkv 9vӱ;&J4v%q"/p8,< qic؆[G֛tCv.rj}W|{7{Pƍf!x)_%yfBEK v؄\ҘG!$^Y^Z0(y"8ǹ`+=WUNf0;XӸU8]fwsMiJ8{\E.m_HqV[.yTʥcvǴ5"("o٪YoM߹sk"W{T+>zvtOTŧqH0 (ؕp6\l\ 2KnjNikD:"o٪YoҹsRⓗ[x`r CKU|e5 > K;15Q+cT )9< !j!$Fɓ\n2<=U{=]xo2{қ)!l@bjDA5Q+lgR$_H\dmyG!$^Y^Z0(y۟L1DEp0sAӮT0U~Z& UEoM,Cp(,rjMiJp[GJ;*C9CHaQ$sM1DEp0s+9`2ޚ86^v屚(ؕX\3y*Z5koUrxeyi5I.zc`ւjo|j7T-݊!+9Kn`̆0_TޮU%y2m ^yTBCH'CT87<ފ]7F!+y?Nk05k$OcWb3$cYfJeEsUrxeyi5$80< OG >z> +>)>茎CaJŸDuhǴ ԺH!ʣX\W˂6S*CyTBCHCT87<7 !+Hn$FTT%yv&mAE֖yTBCH'CT87=W{2K(=X%{/{o{~G  gs=g~=o|6FBb?1`]A]# !1JnqT6 >xٻ{`fp{3>AA|0 >= >|\b. bOED mM`UB溢HDW#Jjk1\[$JdCs8|Km(VԵܱhoCT=R)Jj:M943+J*khC#Jjk1\[$~ɢ=6BoMO0JJQRYk9#9w,ۤ DJYBhs3EogEo3EoM/Q$x'Zl}Т7f17?hrQmC!䲻 %p\CԘn~JQ[A-M89e" : |=t^r!#>f2mC!dX p\CԘn~JQ[x[?]rJjn7f@h $pm !75-bhW1DC[)k!s55ê"p%?QD+.8 d _A5O!E_q0wga\B-bhW1 K6ӵ๚kaOIp^8skix9L䂑YE_䕋D5Oˋ=$_q0wgaB.-bhW1\ƒKsӵ๚kaOIp^8_"ta2݄sP/ʠCq*/8;3H0a ! 1BP@Z`G\M5D$8uy{{VP%q)AC+jn8IS1@`~ Ä1 k[4Юc%Ck!s55ê"p%癿]l<xx+,A DlV֦>VG87l#,z祒ƸC%c|ArScۢ!v5C4){=~G6?x<[xzT6x|0xAO6x|0/xA|I^+ރ,Zԙx3}2}e,ZY{}xQċf=Xx}.y]l<xx+_"If G GeKZfJ*xtϷҷpO é:éJZW^z& .cX 62(HS j0NFA"Z h>J,i8iBc @M V@u (HCHb x$ @}coR@1G/ߛ\SlKO3:sMuk+q"XIH2_լ`S4 \ 3VlCjQaiA ۠fp;S 6>6څTUnplxԿX%o>]3f<5fE u)"ǺEFpAf_R/1Ow7$[N8\ȟQ~ V/?A&d2TZj]wX4}3&H6Sl"׳4.@ S2?9LU7;3ll-i? e5 z$vi8c dxh{)yχq_B9KsrFZNH4CP* Yd>Tw^uĤ\>12  (->I8/ E#An\喡Qicՙ8h=ė"LwBe82HJ&v^ϔa&)k7;d5-")ka&)w;I 3Id$޾_"LR"$7ۛۛז,;4'$w"ƒ0w;K§$AfF.?; )Łg8UX YP#\ Ʊ䮣z_zjjzDCV\Uda.0D^'ݴfk׮Y"nV]feŖg+V3*LWB*qg22*AA0N㓩>2X`8bJ:Lb#]Gk6÷Q.xE\usmmaHFanc.Cijnh= #:&g*@>x~Zv2#4ivr(|$rP52x[]cP<  D5Fo"QT=>4!t_VHKp5OS4*5ѝA:~Z ԛ0<MyrNPgS"1\ ᇂ낓 /AM' .Q{%kcvGA8y|!A;o']s[Wr ?*,pBO)߫%tB&3I[`(d[dR$OUkh ?J Շ )y蚅5(|@XϾ+ Kш\M#>PCp'k.&\&|\dϬ$< M+vio'&adY? Zw1 Do 8VvUwଃ^W WU F>-̈́R//ulA}}90ơ<} YۓHIH(~^u0M 3nUz}J\ q&g1a iS.ZF"Z[[N/rtOf//o ϐv<]Z0h"̃RKvt?g湮ޞWr iФR?_gS=G[ ֻUiLyuIf9q(+(Ƀ_߼u/]BoSIT26PT]dqgȱhx?PL0_8*:WCx Egr 1q.r\n .aC. wtvML;'I0v իթe#rOOp'{kh94jyol:|&q~ ?C3 7BA?<\})m#95Hpr HD~:]^wU*=;oәb;:EV.I+nr>sYVwI^CT{%sa2:\: LkJB';xb0_e7ruq0.SC%aƏ+DGvԵ6F >yQ hV8u|Ä Fj"Ob@7Iq8cw0Jq:sYcR6J\2{ߖnQZ# 5TROD=ֽƗK>?ȿW&Ks|)AQ 5G'avYtY>4l_֓-D6g~kLO~^ X*`>N!B`Ϣ0WHzEVPk!W+It8?DxA/rw'= L:d!-xZh|0?=E- x2tnCY0`yVtS<ʇv\*dW5[)s4m]!9%gT)(F w{n$'OkNhh?A?s],0$dݞ?y}nCkif]< Oa?Us#jko0O%ƌ/qgUip$Bgԑ