diff options
author | Antonio Cunei <antonio.cunei@epfl.ch> | 2010-04-14 08:25:58 +0000 |
---|---|---|
committer | Antonio Cunei <antonio.cunei@epfl.ch> | 2010-04-14 08:25:58 +0000 |
commit | 433ed7ef4fd7d6ed8067c10cebe1e7ec3f72b40f (patch) | |
tree | 270b56354e7dde32bb3fc7953d08baf92ba49326 | |
parent | d61d2c93d788fdf01ad2497b9c6bb69ab9d6a397 (diff) | |
download | scala-433ed7ef4fd7d6ed8067c10cebe1e7ec3f72b40f.tar.gz scala-433ed7ef4fd7d6ed8067c10cebe1e7ec3f72b40f.tar.bz2 scala-433ed7ef4fd7d6ed8067c10cebe1e7ec3f72b40f.zip |
Merged revisions 21492-21512,21516-21518,21520-...
Merged revisions
21492-21512,21516-21518,21520-21525,21527,21529,21531,21535-21537,21539-
21543,21545-21548,21550,21552,21554-21560 via svnmerge from
https://lampsvn.epfl.ch/svn-repos/scala/scala/trunk
........
r21492 | dubochet | 2010-04-12 19:04:31 +0200 (Mon, 12 Apr 2010) | 1 line
[scaladoc] Lazy vals are printed as such, no longer as vars. No
review. ........ r21493 | dubochet | 2010-04-12 19:04:47 +0200 (Mon, 12
Apr 2010) | 1 line
[scaladoc] Signature kind (def, val) needs more space to accommodate
lazy vals and implicit defs. ........ r21494 | dubochet | 2010-04-12
19:05:04 +0200 (Mon, 12 Apr 2010) | 1 line
[scaladoc] Comment summary (first sentence) is extracted by comment
parser, which is a lot more robust and correct. No review. ........
r21495 | dragos | 2010-04-12 19:19:29 +0200 (Mon, 12 Apr 2010) | 4 lines
Auto-generate scala.runtime.AbstractFunctionN classes. Moved zipped*
methods in Tuple1/2 in genprod, so that regenerating tuples does not
lose these methods. Added @specialized annotations into genprod for the
same reason. ........ r21496 | dragos | 2010-04-12 19:19:38 +0200 (Mon,
12 Apr 2010) | 5 lines
Regenerated tuples, products and (Abstract)Functions. We needed to
have separate files for AbstractFunctionN because the compiler may need
their symbol even before their sourcefile is parsed. In such cases it
relies on finding a source file with the right name. ........ r21497 |
dragos | 2010-04-12 19:19:51 +0200 (Mon, 12 Apr 2010) | 1 line
Don't generate forwarders for specialized methods. no review. ........
r21498 | dragos | 2010-04-12 19:19:59 +0200 (Mon, 12 Apr 2010) | 3 lines
Companion objects of case classes extend AbstractFunctionN instead
of FunctionN. This saves quite some space, since FunctionN methods are
not re-mixed in for each object. ........ r21499 | dragos | 2010-04-12
19:20:07 +0200 (Mon, 12 Apr 2010) | 5 lines
Fixed various position issues in specialized members. Removed an
instance where the tree transformer was run twice on the same tree,
resulting in double definition errors. Fixed re-typing of super calls
in constructor arguments for specialized members. No review. ........
r21500 | phaller | 2010-04-12 19:27:14 +0200 (Mon, 12 Apr 2010) | 1 line
Restored partest behavior to write log files with normalized paths.
For new tests the check file can be copied from the log file. This makes
the behavior of --show-diff exactly the same as diffing the log and
check file. Review by extempore. ........ r21501 | dubochet | 2010-04-12
19:30:24 +0200 (Mon, 12 Apr 2010) | 1 line
[scaladoc] Inner objects, which according to the compiler are actually
methods, are now printed as objects by Scaladoc. No review. ........
r21502 | phaller | 2010-04-12 21:18:31 +0200 (Mon, 12 Apr 2010) | 1 line
Reverted r21500 until all test categories work again. ........ r21503
| dubochet | 2010-04-12 21:51:53 +0200 (Mon, 12 Apr 2010) | 1 line
[scaladoc] Use case symbols have correct owner; inherited filter
works as expected with use cases. Review by odersky. ........ r21504 |
extempore | 2010-04-12 21:57:56 +0200 (Mon, 12 Apr 2010) | 5 lines
Correct oversight where neg tests didn't demand a checkfile. More
trying to get timeout/interrupted logic so we know when things die
but also don't impede interrupts. Folded precondition logic into test
sequence logic, it's plenty general to cover it. Closes #3282, review by
phaller. ........ r21505 | malayeri | 2010-04-12 21:59:21 +0200 (Mon, 12
Apr 2010) | 7 lines
[scaladoc] Cosmetic changes:
- changed link color to underlined and dark purple
- increased padding in gray lines of method definitions
- lightened gray lines of method definitions
- changed dashed and solid lines from black to gray
- increased size of top template declaration; changed alignment
Review by dubochet.
........
r21506 | phaller | 2010-04-12 22:17:13 +0200 (Mon, 12 Apr 2010) | 1 line
Disabled test that hangs when actors package is compiled with
specialization. Review by dragos. ........ r21507 | phaller | 2010-04-12
22:41:46 +0200 (Mon, 12 Apr 2010) | 1 line
Another attempt at avoiding partest hang ups when the compiler
crashes. Review by extempore. ........ r21508 | dubochet | 2010-04-12
22:48:42 +0200 (Mon, 12 Apr 2010) | 1 line
[scaladoc] Members inherited from sourceless files are correctly
printed in documentation. No review. ........ r21509 | malayeri |
2010-04-12 22:53:02 +0200 (Mon, 12 Apr 2010) | 1 line
Changed the colors for types, value members, and tooltips. Feel free
to revert. Review by dubochet. ........ r21510 | extempore | 2010-04-12
23:36:33 +0200 (Mon, 12 Apr 2010) | 9 lines
Still working on partest. Added ant targets which can be temporary if
considered clutter.
ant test.partest
ant test.partest-opt
They run some recently troublesome partest tests with a low timeout.
Logged some more exceptions where the compiler has been dying. Review by
phaller. ........ r21511 | extempore | 2010-04-12 23:45:17 +0200 (Mon,
12 Apr 2010) | 10 lines
Disabling what I think are the last two failing tests, one each of the
two leading bugs among those we've seen here today on testing theater:
"could not find toMap: (x$1: scala.collection.TraversableOnce,x$2:
Predef$<:<)"
and
"scala.tools.nsc.symtab.Types$TypeError: method react cannot be
accessed in java.lang.Object with scala.actors.Reactor[Any]
No review but hey lets' see if we can re-enable these tests soonish.
........ r21512 | prokopec | 2010-04-12 23:53:30 +0200 (Mon, 12 Apr
2010) | 1 line
Documentation for mutable collections. No review. ........ r21516 |
extempore | 2010-04-13 01:20:03 +0200 (Tue, 13 Apr 2010) | 5 lines
Noticed that Settings post-set hooks were not being set in the place
where they ought to be, so multiple setting settings (such as -optimise)
were not flipping all the right bits when set programmatically instead
of via command line options. This may be a factor in inlining issues,
though by itself it does not appear to solve anything. No review.
........ r21517 | malayeri | 2010-04-13 06:25:09 +0200 (Tue, 13 Apr
2010) | 1 line
[scaladoc] Changed comment code and pre tages to not have "font-size:
small" attribute. Review by dubochet. ........ r21518 | plocinic |
2010-04-13 10:12:05 +0200 (Tue, 13 Apr 2010) | 1 line
Some clean-ups. Removed old syntax, code duplication etc. No review.
........ r21520 | prokopec | 2010-04-13 12:29:58 +0200 (Tue, 13 Apr
2010) | 1 line
docs for immutable.A-L*. no review
........
r21521 | rytz | 2010-04-13 12:31:39 +0200 (Tue, 13 Apr 2010) | 1 line
fixed most of stability, reviewed by iuli, so no review.
continuations.jar is still failing stability, i'll look at that.
........ r21522 | rompf | 2010-04-13 13:08:12 +0200 (Tue, 13 Apr 2010) |
1 line
closes #3241 and improves serialization of hash tries. review by
community. ........ r21523 | phaller | 2010-04-13 13:37:42 +0200 (Tue,
13 Apr 2010) | 1 line
Improved handling of uncaught exceptions in actors. See #711. Review
by community. ........ r21524 | prokopec | 2010-04-13 13:41:54 +0200
(Tue, 13 Apr 2010) | 1 line
A brace got hurt while documenting. no review.
........
r21525 | rytz | 2010-04-13 13:53:50 +0200 (Tue, 13 Apr 2010) | 1 line
fix stability. jar is not stable. no review.
........
r21527 | dubochet | 2010-04-13 14:08:47 +0200 (Tue, 13 Apr 2010) | 1 line
[scaladoc] Fixed CSS so that styles from wiki markup are correctly
displayed in comments. No Review. ........ r21529 | prokopec |
2010-04-13 14:15:40 +0200 (Tue, 13 Apr 2010) | 1 line
Immutable up to Queue docs. no review
........
r21531 | imaier | 2010-04-13 14:53:21 +0200 (Tue, 13 Apr 2010) | 1 line
Fixed #3258
........
r21535 | phaller | 2010-04-13 16:41:02 +0200 (Tue, 13 Apr 2010) | 1 line
Hardened actor tests. No review.
........
r21536 | phaller | 2010-04-13 16:59:29 +0200 (Tue, 13 Apr 2010) | 1 line
Removed obsolete AbstractReactor trait. No review. ........ r21537 |
prokopec | 2010-04-13 17:50:39 +0200 (Tue, 13 Apr 2010) | 1 line
Docs. no review
........
r21539 | prokopec | 2010-04-13 18:32:09 +0200 (Tue, 13 Apr 2010) | 1 line
Documented immutable.*. no review
........
r21540 | odersky | 2010-04-13 19:36:21 +0200 (Tue, 13 Apr 2010) | 1 line
more documentation
........
r21541 | odersky | 2010-04-13 19:36:54 +0200 (Tue, 13 Apr 2010) | 1 line
fix for usecase in doccomments.
........
r21542 | odersky | 2010-04-13 19:37:24 +0200 (Tue, 13 Apr 2010) | 1 line
attempted fix for the TypeSkolem problem under specialize. ........
r21543 | odersky | 2010-04-13 19:42:35 +0200 (Tue, 13 Apr 2010) | 1 line
Fix for specialized fix.
........
r21545 | malayeri | 2010-04-13 20:13:53 +0200 (Tue, 13 Apr 2010) | 1 line
[scaladoc] More cosmetic changes. Objects are a different shade of
blue and classes are green. ........ r21546 | extempore | 2010-04-13
20:24:05 +0200 (Tue, 13 Apr 2010) | 1 line
A redblack tree scalacheck test contributed by dcsobral. No review.
........ r21547 | extempore | 2010-04-13 20:24:27 +0200 (Tue, 13 Apr
2010) | 2 lines
A safety improvement for random path generation, and a small change
to Random for a more general interface. Review by community. ........
r21548 | extempore | 2010-04-13 20:24:48 +0200 (Tue, 13 Apr 2010) | 3
lines
Some mopping up in equality. Found a stack overflow in the way equals
was being handled, and hammered it out. New ==/## tests which covers
all types and values. Review by odersky. ........ r21550 | odersky |
2010-04-13 21:46:21 +0200 (Tue, 13 Apr 2010) | 2 lines
Removed trace output after having verified that skolems are correctly
identified now. Now review. ........ r21552 | malayeri | 2010-04-13
22:48:50 +0200 (Tue, 13 Apr 2010) | 1 line
[scaladoc] Tweak so that left pane has a little bit of left padding.
Review by dubochet. ........ r21554 | dchenbecker | 2010-04-13 22:51:44
+0200 (Tue, 13 Apr 2010) | 4 lines
Fix for #3284. This code should probably be refactored, but in the
interest of not breaking backwards compatibility, the JSON.parse
method has been marked deprecated for now. ........ r21555 | phaller |
2010-04-13 23:48:21 +0200 (Tue, 13 Apr 2010) | 1 line
Reverted r21523. No review.
........
r21556 | dragos | 2010-04-14 00:50:37 +0200 (Wed, 14 Apr 2010) | 4 lines
Fixed deadlocking behavior in actors. This bug deserves a few more
lines. Specialization removed a 'private' modifier on Actor.resumeActor.
Mixin did not mix this method in actor implementations, believing it was
private. At runtime, an AbstractMethodError was thrown, but swallowed by
forkjoin (probably), resulting in an apparent deadlock. It would have
been much faster to find and fix if the stacktrace was printed, as it is
in Java 1.5. No review. ........ r21557 | dragos | 2010-04-14 00:50:52
+0200 (Wed, 14 Apr 2010) | 1 line
Don't decode symbols in .toString.
........
r21558 | dragos | 2010-04-14 00:51:04 +0200 (Wed, 14 Apr 2010) | 4 lines
Made the icode reader more resilient to errors. A non-resolved symbol
does not cause any crashes, but the method using an unknown symbol will
not be used for inlining. Resurrected tests, removed spec-matrix for the
moment. No review. ........ r21559 | dragos | 2010-04-14 00:52:56 +0200
(Wed, 14 Apr 2010) | 2 lines
Revert "Fix for #3284. This code should probably be refactored,". It
breaks test test/files/run/json.scala, and we need at least one good
nightly before the RC. ........ r21560 | odersky | 2010-04-14 00:54:25
+0200 (Wed, 14 Apr 2010) | 2 lines
Disabled failing json test.
........
287 files changed, 4328 insertions, 2299 deletions
@@ -1129,7 +1129,7 @@ BOOTSTRAPPING BUILD (STRAP) <scalacfork destdir="${build-strap.dir}/classes/library" compilerpathref="pack.classpath" - params="${scalac.args.all} -Xpluginsdir ${build-quick.dir}/misc/scala-devel/plugins -Xplugin-require:continuations -P:continuations:enable" + params="${scalac.args.all} -Xpluginsdir ${build-strap.dir}/misc/scala-devel/plugins -Xplugin-require:continuations -P:continuations:enable" srcdir="${src.dir}/continuations/library" jvmargs="${scalacfork.jvmargs}"> <include name="**/*.scala"/> @@ -1493,7 +1493,7 @@ BOOTRAPING TEST AND TEST SUITE <exclude name="**/*.properties"/> <exclude name="bin/**"/> <exclude name="*.complete"/> - <exclude name="plugins/*.jar"/> + <exclude name="misc/scala-devel/plugins/*.jar"/> </same> </target> @@ -1520,6 +1520,29 @@ BOOTRAPING TEST AND TEST SUITE </syspropertyset> </partest> </target> + + <target name="test.partest-opt" depends="pack.done"> + <antcall target="test.partest"> + <param name="scalac.args.optimise" value="-optimise"/> + </antcall> + </target> + + <target name="test.partest" depends="pack.done"> + <partest classpathref="pack.classpath"> + <env key="PATH" path="${build-pack.dir}/bin:${env.PATH}" /> + <sysproperty key="partest.srcdir" value="partest-tests" /> + <sysproperty key="partest.scalacopts" value="${scalac.args.all}" /> + <sysproperty key="partest.javacopts" value="${javac.args}" /> + <sysproperty key="partest.verbose" value="true" /> + <sysproperty key="partest.trace" value="true" /> + <sysproperty key="partest.debug" value="true" /> + <sysproperty key="partest.test-timeout" value="25" /> + <sysproperty key="partest.scalacopts" value="${scalac.args.optimise}" /> + <syspropertyset> + <propertyref prefix="partest"/> + </syspropertyset> + </partest> + </target> <target name="test.done" depends="test.suite, test.continuations.suite, test.stability"/> diff --git a/src/actors/scala/actors/OutputChannel.scala b/src/actors/scala/actors/OutputChannel.scala index 8bf92b448e..5f99f57ecf 100644 --- a/src/actors/scala/actors/OutputChannel.scala +++ b/src/actors/scala/actors/OutputChannel.scala @@ -18,7 +18,7 @@ package scala.actors * * @define actor `OutputChannel` */ -trait OutputChannel[-Msg] extends AbstractReactor[Msg] { +trait OutputChannel[-Msg] { /** * Sends <code>msg</code> to this $actor (asynchronous). diff --git a/src/actors/scala/actors/Reactor.scala b/src/actors/scala/actors/Reactor.scala index a5bdcf1dd9..85dcd57189 100644 --- a/src/actors/scala/actors/Reactor.scala +++ b/src/actors/scala/actors/Reactor.scala @@ -195,7 +195,7 @@ trait Reactor[Msg >: Null] extends OutputChannel[Msg] with Combinators { * * @param handler a partial function with message patterns and actions */ - protected[actors] def react(handler: PartialFunction[Msg, Unit]): Nothing = { + protected def react(handler: PartialFunction[Msg, Unit]): Nothing = { synchronized { drainSendBuffer(mailbox) } searchMailbox(mailbox, handler, false) throw Actor.suspendException diff --git a/src/build/genprod.scala b/src/build/genprod.scala index 099c24ef20..8217ce3c3b 100644 --- a/src/build/genprod.scala +++ b/src/build/genprod.scala @@ -32,7 +32,8 @@ object genprod { def productFiles = arities map Product.make def tupleFiles = arities map Tuple.make def functionFiles = (0 :: arities) map Function.make - def allfiles = productFiles ::: tupleFiles ::: functionFiles + def absFunctionFiles = (0 :: arities) map AbstractFunction.make + def allfiles = productFiles ::: tupleFiles ::: functionFiles ::: absFunctionFiles trait Arity extends Group { def i: Int // arity @@ -48,8 +49,10 @@ object genprod { def xdefs = to map ("x" + _) def mdefs = to map ("_" + _) def invariantArgs = typeArgsString(targs) - def covariantArgs = typeArgsString(targs map ("+" + _)) - def contraCoArgs = typeArgsString((targs map ("-" + _)) ::: List("+R")) + def covariantArgs = typeArgsString(targs map (covariantSpecs + "+" + _)) + def covariantSpecs = "" + def contravariantSpecs = "" + def contraCoArgs = typeArgsString((targs map (contravariantSpecs + "-" + _)) ::: List(covariantSpecs + "+R")) def fields = List.map2(mdefs, targs)(_ + ":" + _) mkString "," def funArgs = List.map2(vdefs, targs)(_ + ":" + _) mkString "," @@ -59,6 +62,8 @@ object genprod { def descriptiveComment = "" def withFancy = if (descriptiveComment.isEmpty) "" else "(with fancy comment)" def withMoreMethods = if (moreMethods.isEmpty) "" else "(with extra methods)" + def packageDef = "scala" + def imports = "" def header = """ /* __ *\ @@ -73,8 +78,9 @@ object genprod { %s -package scala -""".trim.format(genprodString) + "\n\n" +package %s +%s +""".trim.format(genprodString, packageDef, imports) + "\n\n" } def main(args: Array[String]) { @@ -96,7 +102,7 @@ package scala w.close } catch { case e: java.io.IOException => - println(e.getMessage() + ": " + out) + println(e.getMessage() + ": " + f) exit(-1) } } @@ -112,6 +118,7 @@ import genprod._ zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz */ object FunctionZero extends Function(0) { + override def covariantSpecs = "@specialized " override def descriptiveComment = functionNTemplate.format("currentSeconds", "anonfun0", """ * * <b>val</b> currentSeconds = () => System.currentTimeMillis() / 1000L @@ -126,6 +133,9 @@ object FunctionZero extends Function(0) { } object FunctionOne extends Function(1) { + override def contravariantSpecs = "@specialized(Int, Long, Double) " + override def covariantSpecs = "@specialized(Unit, Boolean, Int, Long, Double) " + override def descriptiveComment = functionNTemplate.format("succ", "anonfun1", """ * * <b>val</b> succ = (x: Int) => x + 1 @@ -149,6 +159,9 @@ object FunctionOne extends Function(1) { } object FunctionTwo extends Function(2) { + override def contravariantSpecs = "@specialized(Int, Long, Double) " + override def covariantSpecs = "@specialized(Unit, Boolean, Int, Long, Double) " + override def descriptiveComment = functionNTemplate.format("max", "anonfun2", """ * * <b>val</b> max = (x: Int, y: Int) => <b>if</b> (x < y) y <b>else</b> x @@ -254,16 +267,245 @@ object Tuple { def make(i: Int) = apply(i)() def apply(i: Int) = i match { + case 1 => TupleOne case 2 => TupleTwo + case 3 => TupleThree case _ => new Tuple(i) } } +object TupleOne extends Tuple(1) +{ + override def covariantSpecs = "@specialized(Int, Long, Double) " +} + object TupleTwo extends Tuple(2) { + override def imports = """ +import scala.collection.{TraversableLike, IterableLike} +import scala.collection.generic.CanBuildFrom +""" + override def covariantSpecs = "@specialized(Int, Long, Double) " override def moreMethods = """ /** Swap the elements of the tuple */ def swap: Tuple2[T2,T1] = Tuple2(_2, _1) + + def zip[Repr1, El1, El2, To](implicit w1: T1 => TraversableLike[El1, Repr1], + w2: T2 => Iterable[El2], + cbf1: CanBuildFrom[Repr1, (El1, El2), To]): To = { + val coll1: TraversableLike[El1, Repr1] = _1 + val coll2: Iterable[El2] = _2 + val b1 = cbf1(coll1.repr) + val elems2 = coll2.iterator + + for(el1 <- coll1) + if(elems2.hasNext) + b1 += ((el1, elems2.next)) + + b1.result + } + + /** Wraps a tuple in a `Zipped`, which supports 2-ary generalisations of map, flatMap, filter,... + * + * @see Zipped + * $willNotTerminateInf + */ + def zipped[Repr1, El1, Repr2, El2](implicit w1: T1 => TraversableLike[El1, Repr1], w2: T2 => IterableLike[El2, Repr2]): Zipped[Repr1, El1, Repr2, El2] + = new Zipped[Repr1, El1, Repr2, El2](_1, _2) + + class Zipped[+Repr1, +El1, +Repr2, +El2](coll1: TraversableLike[El1, Repr1], coll2: IterableLike[El2, Repr2]) { // coll2: IterableLike for filter + def map[B, To](f: (El1, El2) => B)(implicit cbf: CanBuildFrom[Repr1, B, To]): To = { + val b = cbf(coll1.repr) + val elems2 = coll2.iterator + + for(el1 <- coll1) + if(elems2.hasNext) + b += f(el1, elems2.next) + + b.result + } + + def flatMap[B, To](f: (El1, El2) => Traversable[B])(implicit cbf: CanBuildFrom[Repr1, B, To]): To = { + val b = cbf(coll1.repr) + val elems2 = coll2.iterator + + for(el1 <- coll1) + if(elems2.hasNext) + b ++= f(el1, elems2.next) + + b.result + } + + def filter[To1, To2](f: (El1, El2) => Boolean)(implicit cbf1: CanBuildFrom[Repr1, El1, To1], cbf2: CanBuildFrom[Repr2, El2, To2]): (To1, To2) = { + val b1 = cbf1(coll1.repr) + val b2 = cbf2(coll2.repr) + val elems2 = coll2.iterator + + for(el1 <- coll1) { + if(elems2.hasNext) { + val el2 = elems2.next + if(f(el1, el2)) { + b1 += el1 + b2 += el2 + } + } + } + + (b1.result, b2.result) + } + + def exists(f: (El1, El2) => Boolean): Boolean = { + var acc = false + val elems2 = coll2.iterator + + for(el1 <- coll1) + if(!acc && elems2.hasNext) + acc = f(el1, elems2.next) + + acc + } + + def forall(f: (El1, El2) => Boolean): Boolean = { + var acc = true + val elems2 = coll2.iterator + + for(el1 <- coll1) + if(acc && elems2.hasNext) + acc = f(el1, elems2.next) + + acc + } + + def foreach[U](f: (El1, El2) => U): Unit = { + val elems2 = coll2.iterator + + for(el1 <- coll1) + if(elems2.hasNext) + f(el1, elems2.next) + } + } +""" +} + +object TupleThree extends Tuple(3) { + override def imports = """ +import scala.collection.{TraversableLike, IterableLike} +import scala.collection.generic.CanBuildFrom +""" + override def moreMethods = """ + def zip[Repr1, El1, El2, El3, To](implicit w1: T1 => TraversableLike[El1, Repr1], + w2: T2 => Iterable[El2], + w3: T3 => Iterable[El3], + cbf1: CanBuildFrom[Repr1, (El1, El2, El3), To]): To = { + val coll1: TraversableLike[El1, Repr1] = _1 + val coll2: Iterable[El2] = _2 + val coll3: Iterable[El3] = _3 + val b1 = cbf1(coll1.repr) + val elems2 = coll2.iterator + val elems3 = coll3.iterator + + for(el1 <- coll1) + if(elems2.hasNext && elems3.hasNext) + b1 += ((el1, elems2.next, elems3.next)) + + b1.result + } + + /** Wraps a tuple in a `Zipped`, which supports 3-ary generalisations of map, flatMap, filter,... + * + * @see Zipped + * $willNotTerminateInf + */ + def zipped[Repr1, El1, Repr2, El2, Repr3, El3](implicit w1: T1 => TraversableLike[El1, Repr1], + w2: T2 => IterableLike[El2, Repr2], + w3: T3 => IterableLike[El3, Repr3]): Zipped[Repr1, El1, Repr2, El2, Repr3, El3] + = new Zipped[Repr1, El1, Repr2, El2, Repr3, El3](_1, _2, _3) + + class Zipped[+Repr1, +El1, +Repr2, +El2, +Repr3, +El3](coll1: TraversableLike[El1, Repr1], + coll2: IterableLike[El2, Repr2], + coll3: IterableLike[El3, Repr3]) { + def map[B, To](f: (El1, El2, El3) => B)(implicit cbf: CanBuildFrom[Repr1, B, To]): To = { + val b = cbf(coll1.repr) + val elems2 = coll2.iterator + val elems3 = coll3.iterator + + for(el1 <- coll1) + if(elems2.hasNext && elems3.hasNext) + b += f(el1, elems2.next, elems3.next) + + b.result + } + + def flatMap[B, To](f: (El1, El2, El3) => Traversable[B])(implicit cbf: CanBuildFrom[Repr1, B, To]): To = { + val b = cbf(coll1.repr) + val elems2 = coll2.iterator + val elems3 = coll3.iterator + + for(el1 <- coll1) + if(elems2.hasNext && elems3.hasNext) + b ++= f(el1, elems2.next, elems3.next) + + b.result + } + + def filter[To1, To2, To3](f: (El1, El2, El3) => Boolean)( + implicit cbf1: CanBuildFrom[Repr1, El1, To1], + cbf2: CanBuildFrom[Repr2, El2, To2], + cbf3: CanBuildFrom[Repr3, El3, To3]): (To1, To2, To3) = { + val b1 = cbf1(coll1.repr) + val b2 = cbf2(coll2.repr) + val b3 = cbf3(coll3.repr) + val elems2 = coll2.iterator + val elems3 = coll3.iterator + + for(el1 <- coll1) { + if(elems2.hasNext && elems3.hasNext) { + val el2 = elems2.next + val el3 = elems3.next + if(f(el1, el2, el3)) { + b1 += el1 + b2 += el2 + b3 += el3 + } + } + } + + (b1.result, b2.result, b3.result) + } + + def exists(f: (El1, El2, El3) => Boolean): Boolean = { + var acc = false + val elems2 = coll2.iterator + val elems3 = coll3.iterator + + for(el1 <- coll1) + if(!acc && elems2.hasNext && elems3.hasNext) + acc = f(el1, elems2.next, elems3.next) + + acc + } + + def forall(f: (El1, El2, El3) => Boolean): Boolean = { + var acc = true + val elems2 = coll2.iterator + val elems3 = coll3.iterator + + for(el1 <- coll1) + if(acc && elems2.hasNext && elems3.hasNext) + acc = f(el1, elems2.next, elems3.next) + + acc + } + + def foreach[U](f: (El1, El2, El3) => U): Unit = { + val elems2 = coll2.iterator + val elems3 = coll3.iterator + + for(el1 <- coll1) + if(elems2.hasNext && elems3.hasNext) + f(el1, elems2.next, elems3.next) + } + } """ } @@ -271,7 +513,7 @@ class Tuple(val i: Int) extends Group("Tuple") with Arity { // prettifies it a little if it's overlong def mkToString() = { - def str(xs: List[String]) = xs.mkString(""" + "," + """) + def str(xs: List[String]) = xs.mkString(""" + "," + """) if (i <= MAX_ARITY / 2) str(mdefs) else { val s1 = str(mdefs take (i / 2)) @@ -303,7 +545,21 @@ zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz */ object Product extends Group("Product") { def make(i: Int) = apply(i)() - def apply(i: Int) = new Product(i) + def apply(i: Int) = i match { + case 1 => ProductOne + case 2 => ProductTwo + case _ => new Product(i) + } +} + +object ProductOne extends Product(1) +{ + override def covariantSpecs = "@specialized(Int, Long, Double) " +} + +object ProductTwo extends Product(2) +{ + override def covariantSpecs = "@specialized(Int, Long, Double) " } class Product(val i: Int) extends Group("Product") with Arity @@ -354,3 +610,44 @@ trait {className}{covariantArgs} extends Product {{ </file>} } + +/** Abstract functions **/ + +object AbstractFunctionZero extends AbstractFunction(0) { + override def covariantSpecs = FunctionZero.covariantSpecs +} + +object AbstractFunctionOne extends AbstractFunction(1) { + override def covariantSpecs = FunctionOne.covariantSpecs + override def contravariantSpecs = FunctionOne.contravariantSpecs +} + +object AbstractFunctionTwo extends AbstractFunction(2) { + override def covariantSpecs = FunctionTwo.covariantSpecs + override def contravariantSpecs = FunctionTwo.contravariantSpecs +} + +class AbstractFunction(val i: Int) extends Group("AbstractFunction") with Arity +{ + override def packageDef = "scala.runtime" + + val superTypeArgs = typeArgsString(targs ::: List("R")) + + def apply() = { +<file name={"runtime/" + fileName}>{header} +abstract class {className}{contraCoArgs} extends Function{i}{superTypeArgs} {{ +{moreMethods} +}} +</file>} + +} +object AbstractFunction +{ + def make(i: Int) = apply(i)() + def apply(i: Int) = i match { + case 0 => AbstractFunctionZero + case 1 => AbstractFunctionOne + case 2 => AbstractFunctionTwo + case _ => new AbstractFunction(i) + } +} diff --git a/src/compiler/scala/tools/nsc/Global.scala b/src/compiler/scala/tools/nsc/Global.scala index 3e54b68daf..16bff5d399 100644 --- a/src/compiler/scala/tools/nsc/Global.scala +++ b/src/compiler/scala/tools/nsc/Global.scala @@ -255,6 +255,8 @@ class Global(var settings: Settings, var reporter: Reporter) extends SymbolTable override def flatClasses: Boolean = isFlat private val isDevirtualized = prev.name == "devirtualize" || prev.devirtualized override def devirtualized: Boolean = isDevirtualized // (part of DEVIRTUALIZE) + private val isSpecialized = prev.name == "specialize" || prev.specialized + override def specialized: Boolean = isSpecialized /** Is current phase cancelled on this unit? */ def cancelled(unit: CompilationUnit) = diff --git a/src/compiler/scala/tools/nsc/Phase.scala b/src/compiler/scala/tools/nsc/Phase.scala index cd5a399c12..98f0f840ff 100644 --- a/src/compiler/scala/tools/nsc/Phase.scala +++ b/src/compiler/scala/tools/nsc/Phase.scala @@ -34,6 +34,7 @@ abstract class Phase(val prev: Phase) { // Will running with -Ycheck:name work? def checkable: Boolean = true def devirtualized: Boolean = false + def specialized: Boolean = false def erasedTypes: Boolean = false def flatClasses: Boolean = false def keepsTypeParams = true diff --git a/src/compiler/scala/tools/nsc/ast/DocComments.scala b/src/compiler/scala/tools/nsc/ast/DocComments.scala index febb4b221d..ddf4fb0a23 100755 --- a/src/compiler/scala/tools/nsc/ast/DocComments.scala +++ b/src/compiler/scala/tools/nsc/ast/DocComments.scala @@ -90,7 +90,7 @@ trait DocComments { self: SymbolTable => getDocComment(sym) map getUseCases getOrElse List() } - def useCases(sym: Symbol): List[(Symbol, String, Position)] = useCases(sym, sym) + def useCases(sym: Symbol): List[(Symbol, String, Position)] = useCases(sym, sym.enclClass) /** Returns the javadoc format of doc comment string `s`, including wiki expansion */ diff --git a/src/compiler/scala/tools/nsc/ast/TreeGen.scala b/src/compiler/scala/tools/nsc/ast/TreeGen.scala index f8678ce24e..cc3581c3f8 100644 --- a/src/compiler/scala/tools/nsc/ast/TreeGen.scala +++ b/src/compiler/scala/tools/nsc/ast/TreeGen.scala @@ -31,10 +31,13 @@ abstract class TreeGen private def isRootOrEmptyPackageClass(s: Symbol) = s.isRoot || s.isEmptyPackageClass - def scalaFunctionConstr(argtpes: List[Tree], restpe: Tree): Tree = - AppliedTypeTree( - scalaDot(newTypeName("Function"+argtpes.length)), - argtpes ::: List(restpe)) + def scalaFunctionConstr(argtpes: List[Tree], restpe: Tree, abstractFun: Boolean = false): Tree = { + val cls = if (abstractFun) + mkAttributedRef(AbstractFunctionClass(argtpes.length)) + else + mkAttributedRef(FunctionClass(argtpes.length)) + AppliedTypeTree(cls, argtpes ::: List(restpe)) + } /** Builds a reference to value whose type is given stable prefix. * The type must be suitable for this. For example, it diff --git a/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala b/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala index c587b8342c..5318c76311 100644 --- a/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala +++ b/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala @@ -874,7 +874,7 @@ abstract class GenJVM extends SubComponent { atPhase(currentRun.picklerPhase) ( m.owner != definitions.ObjectClass && m.isMethod - && !m.hasFlag(Flags.CASE | Flags.PROTECTED | Flags.DEFERRED) + && !m.hasFlag(Flags.CASE | Flags.PROTECTED | Flags.DEFERRED | Flags.SPECIALIZED) && !m.isConstructor && !m.isStaticMember && !(m.owner == definitions.AnyClass) diff --git a/src/compiler/scala/tools/nsc/dependencies/Files.scala b/src/compiler/scala/tools/nsc/dependencies/Files.scala index 09f694b6ca..194351a13f 100644 --- a/src/compiler/scala/tools/nsc/dependencies/Files.scala +++ b/src/compiler/scala/tools/nsc/dependencies/Files.scala @@ -1,47 +1,48 @@ package scala.tools.nsc -package dependencies; +package dependencies import java.io.{InputStream, OutputStream, PrintStream, InputStreamReader, BufferedReader} -import io.{AbstractFile, PlainFile} +import io.{AbstractFile, PlainFile, VirtualFile} -import scala.collection._;import scala.tools.nsc.io.VirtualFile +import scala.collection._ trait Files { self : SubComponent => - class FileDependencies(val classpath : String) { + class FileDependencies(val classpath: String) { import FileDependencies._ - class Tracker extends mutable.OpenHashMap[AbstractFile, mutable.Set[AbstractFile]]{ + class Tracker extends mutable.OpenHashMap[AbstractFile, mutable.Set[AbstractFile]] { override def default(key: AbstractFile) = { - this(key) = new mutable.HashSet[AbstractFile]; - this(key); + this(key) = new mutable.HashSet[AbstractFile] + this(key) } } val dependencies = new Tracker - val targets = new Tracker; + val targets = new Tracker def isEmpty = dependencies.isEmpty && targets.isEmpty def emits(source: AbstractFile, result: AbstractFile) = - targets(source) += result; + targets(source) += result def depends(from: AbstractFile, on: AbstractFile) = - dependencies(from) += on; + dependencies(from) += on - def reset(file: AbstractFile) = dependencies -= file; + def reset(file: AbstractFile) = dependencies -= file - def cleanEmpty() = { - dependencies foreach {case (key, value) => value.retain(x => x.exists && (x ne RemovedFile))} - dependencies.retain((key, value) => key.exists && !value.isEmpty) - targets foreach {case (key, value) => value.retain(_.exists)} - targets.retain((key, value) => key.exists && !value.isEmpty) + def cleanEmpty = { + dependencies foreach {case (_, value) => + value retain (x => x.exists && (x ne removedFile))} + dependencies retain ((key, value) => key.exists && !value.isEmpty) + targets foreach {case (_, value) => value retain (_.exists)} + targets retain ((key, value) => key.exists && !value.isEmpty) } def containsFile(f: AbstractFile) = targets.contains(f.absolute) - def invalidatedFiles(maxDepth : Int) = { - val direct = new mutable.HashSet[AbstractFile]; + def invalidatedFiles(maxDepth: Int) = { + val direct = new mutable.HashSet[AbstractFile] for ((file, products) <- targets) { // This looks a bit odd. It may seem like one should invalidate a file @@ -53,34 +54,33 @@ trait Files { self : SubComponent => val indirect = dependentFiles(maxDepth, direct) - for ((source, targets) <- targets; - if direct(source) || indirect(source) || (source eq RemovedFile)){ - targets.foreach(_.delete); - targets -= source; + for ((source, targets) <- targets + if direct(source) || indirect(source) || (source eq removedFile)) { + targets foreach (_.delete) + targets -= source } - (direct, indirect); + (direct, indirect) } /** Return the set of files that depend on the given changed files. * It computes the transitive closure up to the given depth. */ def dependentFiles(depth: Int, changed: Set[AbstractFile]): Set[AbstractFile] = { - val indirect = new mutable.HashSet[AbstractFile]; - val newInvalidations = new mutable.HashSet[AbstractFile]; + val indirect = new mutable.HashSet[AbstractFile] + val newInvalidations = new mutable.HashSet[AbstractFile] - def invalid(file: AbstractFile) = indirect(file) || changed(file) || (file eq RemovedFile) + def invalid(file: AbstractFile) = + indirect(file) || changed(file) || (file eq removedFile) - def go(i : Int) : Unit = if(i > 0){ - newInvalidations.clear; - for((target, depends) <- dependencies; - if !invalid(target); - d <- depends){ + def go(i: Int) : Unit = if(i > 0) { + newInvalidations.clear + for((target, depends) <- dependencies if !invalid(target); + d <- depends) newInvalidations(target) ||= invalid(d) - } - indirect ++= newInvalidations; - if(!newInvalidations.isEmpty) go(i - 1); - else () + + indirect ++= newInvalidations + if (!newInvalidations.isEmpty) go(i - 1) } go(depth) @@ -88,65 +88,73 @@ trait Files { self : SubComponent => indirect --= changed } - def writeTo(file: AbstractFile, fromFile : AbstractFile => String) { + def writeTo(file: AbstractFile, fromFile: AbstractFile => String): Unit = writeToFile(file)(out => writeTo(new PrintStream(out), fromFile)) - } - - def writeTo(print : PrintStream, fromFile : AbstractFile => String) : Unit = { - cleanEmpty(); - def emit(tracker : Tracker){ - for ((f, ds) <- tracker; - d <- ds){ - print.println(fromFile(f) + " -> " + fromFile(d)); - } - } - print.println(classpath); - print.println(FileDependencies.Separator) - emit(dependencies); - print.println(FileDependencies.Separator) - emit(targets); + def writeTo(print: PrintStream, fromFile: AbstractFile => String): Unit = { + def emit(tracker: Tracker) = + for ((f, ds) <- tracker; d <- ds) print.println(fromFile(f) + arrow + fromFile(d)) + cleanEmpty + print.println(classpath) + print.println(separator) + emit(dependencies) + print.println(separator) + emit(targets) } } - object FileDependencies{ - val Separator = "-------"; - private val RemovedFile = new VirtualFile("removed") - - def readFrom(file: AbstractFile, toFile : String => AbstractFile): Option[FileDependencies] = readFromFile(file) { in => - val reader = new BufferedReader(new InputStreamReader(in)) - val it = new FileDependencies(reader.readLine) - reader.readLine - var line : String = null - while ({line = reader.readLine; (line != null) && (line != Separator)}){ - line.split(" -> ") match { - case Array(from, on) => - (toFile(from), toFile(on)) match { - case (null, _) => // fromFile is removed, it's ok - case (fromFile, null) => it.depends(fromFile, RemovedFile) // onFile is removed, should recompile fromFile - case (fromFile, onFile) => it.depends(fromFile, onFile) + object FileDependencies { + private val separator:String = "-------" + private val arrow = " -> " + private val removedFile = new VirtualFile("removed") + + private def validLine(l: String) = (l != null) && (l != separator) + + def readFrom(file: AbstractFile, toFile: String => AbstractFile): Option[FileDependencies] = + readFromFile(file) { in => + val reader = new BufferedReader(new InputStreamReader(in)) + val it = new FileDependencies(reader.readLine) + + def readLines(valid: Boolean)(f: (AbstractFile, AbstractFile) => Unit): Boolean = { + var continue = valid + var line: String = null + while (continue && {line = reader.readLine; validLine(line)}) { + line.split(arrow) match { + case Array(from, on) => f(toFile(from), toFile(on)) + case _ => + global.inform("Parse error: Unrecognised string " + line) + continue = false } - case x => global.inform("Parse error: Unrecognised string " + line); return None + } + continue } - } - while ({line = reader.readLine; (line != null) && (line != Separator)}){ - line.split(" -> ") match { - case Array(source, target) => - val targetFile = toFile(target) - (toFile(source), toFile(target)) match { - case (null, null) => // source and target are all removed, it's ok - case (null, targetFile) => it.emits(RemovedFile, targetFile) // source is removed, should remove relative target later - case (_, null) => // it may has been cleaned outside, or removed during last phase - case (sourceFile, targetFile) => it.emits(sourceFile, targetFile) - } - case x => global.inform("Parse error: Unrecognised string " + line); return None - } + reader.readLine + + val dResult = readLines(true)( + (_, _) match { + case (null, _) => // fromFile is removed, it's ok + case (fromFile, null) => + // onFile is removed, should recompile fromFile + it.depends(fromFile, removedFile) + case (fromFile, onFile) => it.depends(fromFile, onFile) + }) + + readLines(dResult)( + (_, _) match { + case (null, null) => + // source and target are all removed, it's ok + case (null, targetFile) => + // source is removed, should remove relative target later + it.emits(removedFile, targetFile) + case (_, null) => + // it may has been cleaned outside, or removed during last phase + case (sourceFile, targetFile) => it.emits(sourceFile, targetFile) + }) + + Some(it) } - - Some(it) - } } def writeToFile[T](file: AbstractFile)(f: OutputStream => T) : T = { diff --git a/src/compiler/scala/tools/nsc/doc/html/HtmlPage.scala b/src/compiler/scala/tools/nsc/doc/html/HtmlPage.scala index 74ec740204..ae98ecf1f6 100644 --- a/src/compiler/scala/tools/nsc/doc/html/HtmlPage.scala +++ b/src/compiler/scala/tools/nsc/doc/html/HtmlPage.scala @@ -167,6 +167,7 @@ abstract class HtmlPage { thisPage => case EntityLink(entity) => templateToHtml(entity) case Monospace(text) => <code>{ Unparsed(text) }</code> case Text(text) => Unparsed(text) + case Summary(in) => inlineToHtml(in) } def typeToHtml(tpe: model.TypeEntity, hasLinks: Boolean): NodeSeq = { diff --git a/src/compiler/scala/tools/nsc/doc/html/page/Template.scala b/src/compiler/scala/tools/nsc/doc/html/page/Template.scala index d90e3d2f64..41a7de93bd 100644 --- a/src/compiler/scala/tools/nsc/doc/html/page/Template.scala +++ b/src/compiler/scala/tools/nsc/doc/html/page/Template.scala @@ -267,9 +267,12 @@ class Template(tpl: DocTemplateEntity) extends HtmlPage { if (tpl.isPackage) "package" else if (tpl.isClass) "class" else if (tpl.isTrait) "trait" else "object" case ctor: Constructor => "new" case tme: MemberEntity => - val attr: String = if (tme.isImplicit) "implicit " else "" - val kind = if (tme.isDef) "def" else if (tme.isVal) "val" else if (tme.isVar) "var" else "type" - attr + kind + ( if (tme.isImplicit) "implicit " else "" ) + + ( if (tme.isDef) "def" + else if (tme.isVal) "val" + else if (tme.isLazyVal) "lazy val" + else if (tme.isVar) "var" + else "type") } def boundsToHtml(hi: Option[TypeEntity], lo: Option[TypeEntity], hasLinks: Boolean): NodeSeq = { @@ -357,7 +360,7 @@ class Template(tpl: DocTemplateEntity) extends HtmlPage { case Some(st) => <span class="result"> extends { typeToHtml(st, hasLinks) }</span> case None =>NodeSeq.Empty } - case tme: MemberEntity if (tme.isDef || tme.isVal || tme.isVar) => + case tme: MemberEntity if (tme.isDef || tme.isVal || tme.isLazyVal || tme.isVar) => <span class="result">: { typeToHtml(tme.resultType, hasLinks) }</span> case abt: AbstractType => val b2s = boundsToHtml(abt.hi, abt.lo, hasLinks) @@ -374,6 +377,8 @@ class Template(tpl: DocTemplateEntity) extends HtmlPage { mbr match { case dte: DocTemplateEntity if !isSelf => <h4 class="signature"><a href={ relativeLinkTo(dte) }>{ inside(hasLinks = false) }</a></h4> + case _ if isSelf => + <h4 id="signature" class="signature">{ inside(hasLinks = true) }</h4> case _ => <h4 class="signature">{ inside(hasLinks = true) }</h4> } diff --git a/src/compiler/scala/tools/nsc/doc/html/resource/lib/class.png b/src/compiler/scala/tools/nsc/doc/html/resource/lib/class.png Binary files differindex c6e3841e53..25a8b4c185 100644 --- a/src/compiler/scala/tools/nsc/doc/html/resource/lib/class.png +++ b/src/compiler/scala/tools/nsc/doc/html/resource/lib/class.png diff --git a/src/compiler/scala/tools/nsc/doc/html/resource/lib/class_big.png b/src/compiler/scala/tools/nsc/doc/html/resource/lib/class_big.png Binary files differindex 1969cff9e2..51e85957fe 100644 --- a/src/compiler/scala/tools/nsc/doc/html/resource/lib/class_big.png +++ b/src/compiler/scala/tools/nsc/doc/html/resource/lib/class_big.png diff --git a/src/compiler/scala/tools/nsc/doc/html/resource/lib/index.css b/src/compiler/scala/tools/nsc/doc/html/resource/lib/index.css index 63a2ffaa71..0bae7dbc3a 100644 --- a/src/compiler/scala/tools/nsc/doc/html/resource/lib/index.css +++ b/src/compiler/scala/tools/nsc/doc/html/resource/lib/index.css @@ -41,7 +41,7 @@ h1 { right: 0; left: 0; top: 0; - background-color: grey; + background-color: #B78E99; } #textfilter { @@ -124,14 +124,14 @@ h1 { float: right; font-weight: normal; color: white; - padding: 1px 4px 1px 4px; + padding: 1px 0.5em 1px 4px; } #tpl .packages > li > h3 { display: block; - background-color: #142556; + background-color: #2C475C; color: white; - padding: 1px 4px 1px 4px; + padding: 1px 4px 1px 0.5em; font-weight: bold; display: block; } @@ -140,6 +140,10 @@ h1 { display: block; } +#tpl .templates > li { + padding-left: 0.5em; +} + #tpl ol > li .icon { bottom: -2px; position: relative; diff --git a/src/compiler/scala/tools/nsc/doc/html/resource/lib/template.css b/src/compiler/scala/tools/nsc/doc/html/resource/lib/template.css index 5c8822b1c1..f315a283b6 100644 --- a/src/compiler/scala/tools/nsc/doc/html/resource/lib/template.css +++ b/src/compiler/scala/tools/nsc/doc/html/resource/lib/template.css @@ -1,159 +1,191 @@ * { - color: black; - text-decoration: none; - font-family: inherit; - font-size: inherit; - font-weight: normal; - border-width: 0px; - padding: 0px; - margin: 0px; + color: black; + text-decoration: none; + font-family: inherit; + font-size: inherit; + font-weight: normal; + border-width: 0px; + padding: 0px; + margin: 0px; } body { - font-family: sans-serif; - font-size: 10pt; + font-family: sans-serif; + font-size: 10pt; } a { - cursor: pointer; + cursor: pointer; + text-decoration: underline; + color: #69481D; /* brown */ } a:hover { - text-decoration: underline; + text-decoration: none; } #owner { - padding: 4px; - font-size: 12pt; - display: block; + padding: 4px; + font-size: 12pt; + display: block; +} + +#owner a { + color: black; } .value #owner { - background-color: #ced8f4; + background-color: #7996AC; } .type #owner { - background-color: #f4cece; + background-color: #799F5A; } #definition { - display: block; - padding: 6px; + display: block; + padding: 6px; } #definition > img { - float: left; + float: left; } #definition > h1 { - padding: 12px 0 12px 6px; - color: white; - font-size: 24pt; - display: inline-block; + padding: 12px 0 12px 6px; + color: white; + font-size: 24pt; + display: inline-block; +} + +#signature > span.kind { + font-size: 11pt; + display: inline; + float: left; + text-align: left; + width: auto; + padding-left: 6px; +} + +#signature > span.symbol { + font-size: 11pt; + text-align: left; } .value #definition { - background-color: #142556; + background-color: #2C475C; } .type #definition { - background-color: #561414; + background-color: #385E1A; } #comment { - padding-left: 8px; + padding-left: 8px; } #values > h3 { - color: white; - padding: 4px; - background-color: #142556; - font-size: 12pt; - font-weight: bold; + color: white; + padding: 4px; + background-color: #7996AC; + font-size: 12pt; + font-weight: bold; } #types > h3 { - padding: 4px; - color: white; - font-weight: bold; - font-size: 12pt; - background-color: #561414; + padding: 4px; + color: white; + font-weight: bold; + font-size: 12pt; + background-color: #799F5A; } #constructors > h3 { - padding: 4px; - color: white; - font-weight: bold; - font-size: 12pt; - background-color: #000000; + padding: 4px; + color: white; + font-weight: bold; + font-size: 12pt; + background-color: #333; } /* Member cells */ div.members > ol { - background-color: white; - list-style: none + background-color: white; + list-style: none } div.members > ol > li { - display: block; + display: block; } /* Member signatures */ #tooltip { - background: #142556; - border: 2px solid white; - color: white; - display: none; - padding: 5px; - position: absolute; + background: #EFD5B5; + border: 1px solid gray; + color: black; + display: none; + padding: 5px; + position: absolute; } .signature { - padding: 1px; - font-family: monospace; - font-size: 10pt; - clear: both; - display: block; - background-color: #dddddd; + padding: 3px; + font-family: monospace; + font-size: 10pt; + clear: both; + display: block; + background-color: #E5E5E5; } .signature .kind { - text-align: right; - float: left; - display: inline-block; - width: 7em; + text-align: right; + float: left; + display: inline-block; + width: 8em; +} + +.signature > a > .symbol > .name { + text-decoration: underline; +} + +.signature > a:hover > .symbol > .name { + text-decoration: none; +} + +.signature > a { + text-decoration: none; } .signature .symbol { - display: inline; - padding-left: 0.7em; + display: inline; + padding-left: 0.7em; } .signature .name { - display: inline-block; - font-weight: bold; + display: inline-block; + font-weight: bold; } .signature .symbol .params .implicit { - font-style: italic; + font-style: italic; } .signature .symbol .name.deprecated { - text-decoration: line-through; + text-decoration: line-through; } .signature .symbol .params .default { - font-style: italic; + font-style: italic; } #values .signature .name { - color: blue; + color: blue; } #types .signature .name { - color: red; + color: green; } /* Comments text formating */ @@ -161,169 +193,181 @@ div.members > ol > li { .cmt {} .cmt p { - margin: 2px 0 2px 0; + margin: 2px 0 2px 0; } .cmt code { - font-family: monospace; - font-size: small; + font-family: monospace; +/* font-size: small;*/ } .cmt pre { - display: block; - font-family: monospace; - font-size: small; - margin: 2px 0 2px 0; + display: block; + font-family: monospace; +/* font-size: small;*/ + margin: 2px 0 2px 0; } .cmt ul { - display: block; - list-style: circle; - padding-left:20px; + display: block; + list-style: circle; + padding-left:20px; } .cmt ol { - display: block; - padding-left:20px; + display: block; + padding-left:20px; } .cmt ol.decimal { - list-style: decimal; + list-style: decimal; } .cmt ol.lowerAlpha { - list-style: lower-alpha; + list-style: lower-alpha; } .cmt ol.upperAlpha { - list-style: upper-alpha; + list-style: upper-alpha; } .cmt ol.lowerRoman { - list-style: lower-roman; + list-style: lower-roman; } .cmt ol.upperRoman { - list-style: upper-roman; + list-style: upper-roman; } .cmt li { - display:list-item; + display:list-item; } .cmt a { - text-decoration: underline; + text-decoration: underline; } /* Comments structured layout */ p.comment { - display: block; - margin-left: 7.7em; + display: block; + margin-left: 8.7em; } p.shortcomment { - display: block; - margin-left: 7.7em; - cursor: help; + display: block; + margin-left: 8.7em; + cursor: help; } div.fullcomment { - display: block; - margin: 10px 0 10px 0; + display: block; + margin: 10px 0 10px 0; } #template div.fullcomment { - margin: 6px 0 6px 7.7em; + margin: 6px 0 6px 8.7em; } div.fullcomment .block { - padding: 2px 0 2px 0; - border-top: 1px solid black; - border-bottom: 1px solid black; + padding: 2px 0 2px 0; + border-top: 1px solid gray; + border-bottom: 1px solid gray; } div.fullcomment div.block ol li p, div.fullcomment div.block ol li { - display:inline + display:inline } div.fullcomment .block + .block { - border-top: none; + border-top: none; } div.fullcomment .block > h5 { - font-style: italic; - font-weight: normal; - display: inline-block; + font-style: italic; + font-weight: normal; + display: inline-block; } div.fullcomment .comment { - margin: 6px 0 6px 0; + margin: 6px 0 6px 0; } div.fullcomment dl.paramcmts > dt { - display: block; - float: left; - font-weight: bold; - margin: 2px 4px 2px 0; + display: block; + float: left; + font-weight: bold; + margin: 2px 4px 2px 0; } div.fullcomment dl.paramcmts > dd { - display: block; - padding-left: 80px; - border-top: 1px dashed black; - border-bottom: 1px dashed black; + display: block; + padding-left: 80px; + border-top: 1px dashed gray; + border-bottom: 1px dashed gray; } div.fullcomment dl.paramcmts > dt:first-child + dd { - border-top: none; + border-top: none; } div.fullcomment dl.paramcmts > dd:last-child { - border-bottom: none; + border-bottom: none; } div.fullcomment dl.paramcmts > dd + dt + dd { - border-top: none; + border-top: none; } /* Members filter tool */ #mbrsel { - padding: 4px; - background-color: #cccccc; - display: block; + padding: 4px; + background-color: #B78E99; /* grayish pink */ + display: block; + margin-bottom: 10px; } #mbrsel > div > h3 { - padding: 4px; - display: inline; + padding: 4px; + display: inline; + color: white; } #mbrsel > div > ol { - display: inline-block; - background-color: white; + display: inline-block; + background-color: white; } #mbrsel > div > ol#linearization { - display: inline; + display: inline; } #mbrsel > div > ol > li { - padding: 4px 8px 4px 8px; - font-weight: bold; - background-color: white; - display: inline-block; - cursor: crosshair; + padding: 4px 8px 4px 8px; +/* font-weight: bold;*/ + background-color: white; + display: inline-block; + cursor: crosshair; } #mbrsel > div > ol > li.in { - background-color: white; + background-color: white; + color: #4C4C4C; } #mbrsel > div > ol > li.out { - color: #888888; - background-color: #bbbbbb; + color: #80384E; + background-color: #9E6A77; +} + +#mbrsel .hideall { + color: #4C4C4C; + font-weight: bold; } +#mbrsel .showall { + color: #4C4C4C; + font-weight: bold; +}
\ No newline at end of file diff --git a/src/compiler/scala/tools/nsc/doc/html/resource/lib/trait.png b/src/compiler/scala/tools/nsc/doc/html/resource/lib/trait.png Binary files differindex b1b043080a..b3871a01c4 100644 --- a/src/compiler/scala/tools/nsc/doc/html/resource/lib/trait.png +++ b/src/compiler/scala/tools/nsc/doc/html/resource/lib/trait.png diff --git a/src/compiler/scala/tools/nsc/doc/html/resource/lib/trait_big.png b/src/compiler/scala/tools/nsc/doc/html/resource/lib/trait_big.png Binary files differindex 63be0d7a3a..a44871309e 100644 --- a/src/compiler/scala/tools/nsc/doc/html/resource/lib/trait_big.png +++ b/src/compiler/scala/tools/nsc/doc/html/resource/lib/trait_big.png diff --git a/src/compiler/scala/tools/nsc/doc/html/resource/lib/type_tags.ai b/src/compiler/scala/tools/nsc/doc/html/resource/lib/type_tags.ai index 5d5d25ee98..b56fd1d3cd 100644 --- a/src/compiler/scala/tools/nsc/doc/html/resource/lib/type_tags.ai +++ b/src/compiler/scala/tools/nsc/doc/html/resource/lib/type_tags.ai @@ -1,5 +1,5 @@ %PDF-1.5
%âãÏÓ
-1 0 obj
<</Metadata 961 0 R/Pages 2 0 R/OCProperties<</D<</RBGroups[]/ON[37 0 R 65 0 R 78 0 R 90 0 R 116 0 R 129 0 R 141 0 R 167 0 R 180 0 R 192 0 R 218 0 R 237 0 R 255 0 R 287 0 R 306 0 R 324 0 R 356 0 R 375 0 R 393 0 R 425 0 R 444 0 R 462 0 R 480 0 R 515 0 R 534 0 R 552 0 R 570 0 R 605 0 R 624 0 R 642 0 R 660 0 R 695 0 R 699 0 R 718 0 R 735 0 R 753 0 R 785 0 R 789 0 R 808 0 R 825 0 R 843 0 R 878 0 R 882 0 R 901 0 R 918 0 R 936 0 R]/OFF[15 0 R 27 0 R]/Order 877 0 R>>/OCGs[15 0 R 27 0 R 37 0 R 65 0 R 78 0 R 90 0 R 116 0 R 129 0 R 141 0 R 167 0 R 180 0 R 192 0 R 218 0 R 237 0 R 255 0 R 287 0 R 306 0 R 324 0 R 356 0 R 375 0 R 393 0 R 425 0 R 444 0 R 462 0 R 480 0 R 515 0 R 534 0 R 552 0 R 570 0 R 605 0 R 624 0 R 642 0 R 660 0 R 695 0 R 699 0 R 718 0 R 735 0 R 753 0 R 785 0 R 789 0 R 808 0 R 825 0 R 843 0 R 878 0 R 882 0 R 901 0 R 918 0 R 936 0 R]>>/Type/Catalog>>
endobj
961 0 obj
<</Subtype/XML/Length 44678/Type/Metadata>>stream
+1 0 obj
<</Metadata 1054 0 R/Pages 2 0 R/OCProperties<</D<</RBGroups[]/ON[37 0 R 65 0 R 78 0 R 90 0 R 116 0 R 129 0 R 141 0 R 167 0 R 180 0 R 192 0 R 218 0 R 237 0 R 255 0 R 287 0 R 306 0 R 324 0 R 356 0 R 375 0 R 393 0 R 425 0 R 444 0 R 462 0 R 480 0 R 515 0 R 534 0 R 552 0 R 570 0 R 605 0 R 624 0 R 642 0 R 660 0 R 695 0 R 699 0 R 718 0 R 735 0 R 753 0 R 785 0 R 789 0 R 808 0 R 825 0 R 843 0 R 878 0 R 882 0 R 901 0 R 918 0 R 936 0 R 971 0 R 975 0 R 994 0 R 1011 0 R 1029 0 R]/OFF[15 0 R 27 0 R]/Order 970 0 R>>/OCGs[15 0 R 27 0 R 37 0 R 65 0 R 78 0 R 90 0 R 116 0 R 129 0 R 141 0 R 167 0 R 180 0 R 192 0 R 218 0 R 237 0 R 255 0 R 287 0 R 306 0 R 324 0 R 356 0 R 375 0 R 393 0 R 425 0 R 444 0 R 462 0 R 480 0 R 515 0 R 534 0 R 552 0 R 570 0 R 605 0 R 624 0 R 642 0 R 660 0 R 695 0 R 699 0 R 718 0 R 735 0 R 753 0 R 785 0 R 789 0 R 808 0 R 825 0 R 843 0 R 878 0 R 882 0 R 901 0 R 918 0 R 936 0 R 971 0 R 975 0 R 994 0 R 1011 0 R 1029 0 R]>>/Type/Catalog>>
endobj
1054 0 obj
<</Subtype/XML/Length 44482/Type/Metadata>>stream
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 4.1-c036 46.277092, Fri Feb 23 2007 14:16:18 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> @@ -17,15 +17,15 @@ xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/"> <xap:CreatorTool>Adobe Illustrator CS3</xap:CreatorTool> <xap:CreateDate>2009-11-23T17:10:12+01:00</xap:CreateDate> - <xap:ModifyDate>2009-11-24T11:35:55+01:00</xap:ModifyDate> - <xap:MetadataDate>2009-11-24T11:35:55+01:00</xap:MetadataDate> + <xap:ModifyDate>2010-04-13T20:05:12+02:00</xap:ModifyDate> + <xap:MetadataDate>2010-04-13T20:05:12+02:00</xap:MetadataDate> <xap:Thumbnails> <rdf:Alt> <rdf:li rdf:parseType="Resource"> <xapGImg:width>256</xapGImg:width> <xapGImg:height>208</xapGImg:height> <xapGImg:format>JPEG</xapGImg:format> - <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgA0AEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXlX54yWv13ynbe
YJ5YPIt1eTJ5h9NiqPIsYeySUp+84F0cmm21eoXMrT3Uq+rown07kF+VVxocf5iarp3kyXn5TTTI
p9Sht3kmso9WaUIPRklHL4oVbcfap/kik9QSYAy+q/sYw57PYswm12KuxV2KuxV2KuxV2KuxVIfN
nnvyn5Sht5vMOopYrdOUt1KySu5UVYrHEsj8V2q1KCo8RlmPFKfIIMgOaK8t+aNB8y6YNT0O8W9s
i7RmRQyFXTqro4V0O4NGA2IPQjBkxygakFBB5JpkEuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K
uxV2KuxV2KqdzbW91by21zEk9tMpjmhkUOjowoysrVBBGxBwg0qnp+m6dptollp1rDZWcVfTtreN
Yol5Es3FECqKsSTiZEmytIjArsVdirsVdirsVdirsVdirzfzhoWrWf5gv5xS2nu9MTy7caaYrFPW
uxdCYyxqkPCSvqep8LcSoI+OgpXJxyHDw9eK2EhvaL/LXTNZk1rzN5r1LTH0VfMMlobPTJuHrrFb
QEetNwJ4vK0p5IQGUjfBmkKjEG+G1iOZZ7mOzdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs
VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV
dirsVcSAKnpirzDz5+fflbyxdT6bao2p6tCSjwREemjjj9uToP2gQPiBH2aGuZWHSSnv0a5ZAHnF
1/zkn5xub1JrWwgtbUUra8vU5UNTV2Su422zPh2aK3LUcxZh5Z/5yQ0y7nEOv6e2ncqBZ4W9WMUU
/aJ4kcmoBtQdS2U5ezJRHpNso5g9itrq2ureO4tpVmglUPFKhDKyncEEdQc1pFc29UwK7FXYq7FX
Yq7FXYq7FWAeefzr8n+U5fqssh1DUOKt9UtSrsFcEgs1eK/sn4iKg1FcyMWmlNhKYDzkf85Raw5X
h5eh4g/GTcPVh7AJ8P45nDsy+rV4zJvK3/ORmg38wg160fSpHb93Mp9WAClAGfZq178QPHpvVl7N
nHcbso5geb1u2uYLmCO4t5FlglUPHIpqGVhUEH5ZryKblTArsVdirsVdirsVdirD5/76T/WP682M
eTSVmFDsVT7y9/vNJ/r/AMBmJqObZBNcoZuxV2KuxV49/wA5C/mZd+W9Ii0TSJxHqmqKyyypQyQw
inJga1RjWg271B2zL0uHiNlrySp4F5D8ja95u1T6lpcXqSAc7i4kJEUSk/akeh6ntuTm4lkjijcn
HESTs9qs/wDnGUi3/wBJ18LcEdIrbkin5tIpb7hmL/K1HaP2s/A82Gee/wAo9f8AKcP1uRkvtLJC
m8hBHAnYCVDXjXsake9cz9LroZtuUmueMxTj8jvzBudH1qLy1fz/AO4i+ZvqpkO0MxBPFSSOKyH/
AIb5k5i9paUEcY5s8M+j6PzQuU7FXYq7FXYq7FXYq8t/Pz8yJfKXlyOy09uOsatyS3fekca/3knS
hpUACvU7giozJ02Lil5BhOVB4d+W/wCU2uee7W91K2v4Ingm43DXRkLu8g5l+Sq9a965tJ6iOKgQ
0CBky2y/5x784SatcWTS28VpbcAdQYv6chZAxES8ebceVCdhXvln8p4xEHe+5Hgytb5q/IrzPoem
yahFJDqVtApe4WDksiKNy3Bh8SgdaGvtk8HaOPIeE7FEsJG6I/JH8wrrRtai8t38pbSdQfjalyT6
M56Ku+yyHalPtfMnKe0dICOMcwywz6PpDNC5TsVdirsVdirsVdirD5/76T/WP682MeTSVmFDsVT7
y9/vNJ/r/wABmJqObZBh2vfmPq2n+YvMVjC1kJNDs3uNO8vyI51LV2WxN16lm3rR0jST92wWCQ/A
3Q0yhm8/8wfnR5wvPIGoO9xp2kPdWWr/AFbXopI2WV7W0heK1tfqV/di3vne5kKcp2IEXLhUlUVS
S+8zeepr/Wbe11+5hnkufqswM91LJHFNrdjZwia2WaEWB9KdhbvAQ1xFycsr0YKvV/IGoecD+Znm
3TNct7uKwhstNfSY5Z4preOBJry3SVaTzS87sQ+oxcc6qVc7IWVfP/5+6ld3n5qanFcPz+oCO2hN
KUj4+qq0Hh6tPxzb6QARDjz5vff+cdtJtbP8tLS9iUevqc08079z6crQKK+AEX45ia6ZOSu5sxDZ
iH5q/mp5q0X8xjZadcmGw0r0OdoAOE5kjWZ/U2qarJx9qVG+Z2j0cJ4rI3LVkyESe46np9pqul3N
hcrztryJopFI/ZdaVoe4zUQmYyBHMOQRYfFRvZrC7hvIW43FpKk0TA1o8TBlII9xnW5gDGnAjzfb
Ng8j2Nu8jc5GiQu5ABZioqaCg39s5CXN2AV8CuxV2KuxV2KuxV8gf85FawuofmZPGgZI7KFLfiaC
rozB32J67CvgBm20kai4+Q7vUf8AnFj/AJRzWf8AmKj/AOTeV9o84+5lh6pz+cn5p655R1DT9P0i
KH1J4zczzTqXBXmUVFAK0+yeR+VMdDo45QTJcuQx5M98o6+nmLyzp+semI/rsIeSLqFcVV1FeoDA
0zCzY+CZj3NkZWLfKX5gWyaF521SGwPpCyvWktOO3Cj+ogH+rtnS45ceEE9Q4ZFSfX1g/Oxt3qTy
iRqtUtuoO9e+csebnBXwK7FXYq7FXYq7FWHz/wB9J/rH9ebGPJpKzCh2Kp95e/3mk/1/4DMTUc2y
Ca5QzdirsVdir5P/AOcmvLJ0zzxFq8KUttUhDSNy5H10JDV68Qwpx+Rp0zaaSdxruaMg3Z7/AM40
fmDptxoP+EbydYdQtJHk09HNPWhlJdlSvV0csSPA+xyrW4jfGGWOXRmXm78mtD8y+a4NfuLmSGnp
i+tFRWWf0tl+In4aqArbHYdsGDXSxw4QFliBNpr+ZXnvTvKPly4uZZlGpTRsmm21RzeUigbj14IT
Vj9HUjKtLgOSQHTqynKg+UPKulTeYfNWm6TFH6wnnUzJVRWJDykFWIWpUUFTuSBm91ObhiS4sI7v
te2gW3t4oFLMsSKisxqxCilSfHOaJtzVTArsVdirsVdirsVfLH/OUnl6e084WetqgFrf24iJWp/e
wkkluwLBth/kk5stHP000ZBuzX/nFKTn5c1v2u4/+TeQ15shliZt+ZP5T2Xna4srpr5rC6tFMTOI
xKHiJ5caFkoQa0Ne/TI6XWHCCKsFOTHxMltING8peWIoXmFtpWk24Vp5T0VBuzHuzHw6k7ZjyMsk
76lkKiHyPqFxc+ePP7rbI/PWb5mVEBZ0hZiSaKGJ9OIVNB2zfykMWOu4OKBZfZdrE0NtDCzBmjRU
ZgKAlRSoG9M5wuYqYFdirsVdirsVdir481v/AJyE8+2us39tHHY+nBczRpyhcnikhUV/ee2bmOIU
GglBf9DG/mD/AL7sP+RL/wDVTJeEEW7/AKGN/MH/AH3Yf8iX/wCqmPhBbe+f848+eda84eWdSvtW
WFZre99CMQIUXj6SNuCzb1bNfq4gSDbDk9UzEZuxV2KuxVjnn/yPpnnPy7No1/VAx9S3mABaOVQQ
rivhXt8ulRlmLIYGwiQt8d+b/IHm7yVf01C2lSBXrb6hGG9JqMQp5j7LVU7fSKjfNtjzCXJxzGle
0/N38xLe2FtH5hvhEBQBpmZgB2DNVh9+S8PGecQiz3oGzXzX5u1b0rVLrWNTmIDuzNK+54gySOfh
FTSrGmWHLGA7giiX09+S/wCUaeTrI6nqLCXXrxKSkCixRnf01qA3+t+rbbU6nUGZro3whT1DMVsd
irsVdirsVdirsVY55+8kab5z8uTaNfkoGPqQTAAtHKoPFxUdq9vl0qMsxZDA2ESFsK/IHyRrvk61
8waZq0XEm7RradfsSxhCvNa79R0P6qE3anIJUQwgKYz/AM5A/mD5r8p+c9N/QWoyWYm08NLGAskb
ETSCpjkDoT70y/SY4SieIXuxyEg7PIdX8+fmD53uI7G7vLnVJCax2UKBUqP2jFCqJsP2iNszYjHj
3AprJJe+fkn+TU/lflrXmCON9ZmQCKHZxbqaNRSDx5V+0adR8Owq2u1Wp49hybYQp7BmE2uxV2Ku
xV2KuxV2Kvzv8zf8pJqv/MZcf8nWzew5BxyluSV2Kvqz/nEX/lCtZ/7aR/5MR5rdb9Q9zbj5PUtR
84Saf51sPL9zZrHYX2n3l+urvOqqhsWhEqNEV2ULcK3MuPlmEzYy35u6jN5d13zDY6AraZoF1JHc
C7uzbTzWi2lveQzwRCCWstwl2PShcr25MrHiFV11+cHop5quFtdONt5ZLRPC+plL0yiSONWubb6s
wtoGZ2/emRvs/ZPZVUufzetLe80HSpH0Y6vrUX1ssNYQaets05hiaC7kgR7mSanwRpBuQwqAORVe
iYqpz21vcJ6c8Sypv8LqGG4Knr7EjCCrGT+Vf5bk1by1pzN3ZrdGJPiSRUn55Z40+8seEJ3pGgaL
o9utvpdlDZwrXjHEgUDlSoHgNhtkJSJ5pApH5FLsVdirsVdirsVdirsVdiq14kcUYb0I5AkMAetG
FCPoxVjHmj8s/KHmjULS+1mz+sz2Y4JyNQycuXB+VTxrXpTqcthmlEUGJiCmeieUfLGhBho+mW9g
H48vQjCVKggHbvv16nIynKXMpAATbIJdirsVdirsVdirsVdir87/ADN/ykmq/wDMZcf8nWzew5Bx
yluSV2Kvqz/nEX/lCtZ/7aR/5MR5rdb9Q9zbj5PXtW8p6Rq2s2eqX6GdrO0vbAWjhHt5YNR9H11m
jZW57WygCtKE1B7YTNitx+SHlRLiSXRbi48uxy38epyWulQ6dHbtPBBHBAGhmtJ0ZITE0sakUEru
/wBrjxVTeXyA0urT6w/mDUzqphktbC8pYcrKCeaOeWOBfqnBg5gRf36yEL0pU4qlE35JeWJLRrVL
6/hiureS01ng1vXUIZrqW8kS45QNw5T3MrVt/SI5UFABRV6FirsVdirsVdirsVdirsVdirsVdirs
VdirsVdirsVdirsVdirsVdirsVdirsVfImtf840fmhd6xf3cMFoYbi4lljJuVB4u5YVFPA5tI6uA
DUYFB/8AQr35rf8ALPZ/9JK/0yX5yCOAu/6Fe/Nb/lns/wDpJX+mP5yC8Be7f84//l95j8keWtR0
/XUiS4ubz6xEIZBIOHpIm5HupzC1OUTIIbIinqOYzJ2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux
V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV
2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2
KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K
uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku
xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KoY6lYgkGZQRsRg4g2eFLud+k7D/
AH+uPEF8KXc79J2H+/1x4gvhS7lWG4hmUtE4cA0JHjiCxlEjmqYWLsVdirsVU7m5gtoJLidxHDEp
Z3PQAYpAt4v5v/5yX0iwv5LLy7ZjVvSLI12XKQE0FCjUq1G5DYUIoQ2UyygOxwdnSkLOzDIf+civ
zFLDnFZNEOoEREhH+ty4/wDCZV45dgOyIHveh+Tv+chdF1W6Sz121/RM8rBYpg3OCpIWjOaFepNS
KAd8tjmB5uFqOypwFx3D1tWVlDKaqRUEdxlzqm8VdirsVdirsVdirsVdirsVQuo6rpum2z3OoXMd
rAil2klYKAoIBO/hyGAllGJPJjjfm1+Wol9L/EVkWqBVZKrv/lgcfxwcY724aXL/ADSn+la7ourw
ifS72G8iPIB4XVweJAalPCowggtU8co8xSOwsHYq7FXYq7FXYq7FWHzf30n+sf15QXZx5LMWTsVT
/wAvf7zSf6/8BlkHC1PMJpk3HdirsVdir5s/5yS/Mi6n1T/BunSmO3gAbVGUsC7NRliIIX/WPWop
Q0JrRkl0drocH8Ree+QPy/1/zbem10mEFIqG5upCVhiDdC7AHrTYAEnKBEyOzt8meGGNyeyWf/OM
6iEfWtepMRusVtVQfm0lT9wyz8v5uEe265Q+39jy/wA7+VYvLXmO60P60L1rUR8pwnp1MiCQDjyf
sw75ROPCadzpc3jYxOqt6h+QPn+7klbynqU/qJFGX0ySQ1YKCAYuRI2WvwihPbYDMjBkvZ0Xa2jE
Txx683uOZLpHYq7FXYq7FXYq7FXYqwz80/zGsPJHl57x2WTUJj6dlaBh6juwNGAo1FFN2O3zNFMZ
SoN+nwnJKuj5YuNT84/mJ5liS7mN5f3stLW0DCOBGIoAisQq0VQKnc03JzFlIyL0GLFDFG+gZvqn
5C67oPle91zVby2jNoiuLSHlKx5OqUZyEVftduWMsRAsrh7QxzyCEQd+rC9J1DVNGvEvtJuntLlC
rB4zseJ5AMpqrCorRhTKRMh2WXTRmKIfS/5UfmdF5vsHt70xwa3a0E8ANPUBqfUjB6rt0rUd+xOb
jycQeV12iOGW30vQMtcB2KuxV2KuxV2KsPm/vpP9Y/ryguzjyWYsnYqn/l7/AHmk/wBf+AyyDhan
mHmvm3yb5z1j8xNevNMAeL9HaZZ27Xz/AFSEWk8l0dQisr2O0upopmEUatwP2ZKtuIuM3HS3yTqP
5m6f5Ut9Pntb+x1bS/LtsnlrQ47NpLC7ki0oEG/u5LTlBcLcKVMDTRUYBfjryKqL8k+Y/wAz7rV7
SHzRc6jbaaxVtPmtNMnY3M5kAe11OSbSrdreNBSkqQRKVb+8YqTiqf8A5P6x+ZGpJqb+dFMUqiAp
ayQTQtBcEyevHG7WVlDJCKJw9OSem9ZW5Cir5V863M1x5712Sd2kcX9xHzclm4xysi1Y7miqN8xJ
vR6f6Q+svyN0a0038ttLeFQJb9Wu7mQDdndiFr/qoFX6MvxCoup7QyGWU+Wzzj81Pzf842fm+90n
R7v9HWensIfgSNnkfiCzszq3c0AGUZMpug7XQ9n4jjEpCyXlmpa1qOr6nPqWoy+ve3JDTy0VeRAC
/ZUBRsOwyiRvcu4wwEI8MeQR3krVptL87aRfQAGWGbZT0IZSpB+g5PEaLja+IljIL7KzPeOdirsV
dirsVdirsVdir5A/5yG8xXOq/mXdWLvW20hVtoUVmZOTKJHYAn4WPIK1P5cx8h3d3oYAQB72Wf8A
ONeh+XLzUdQvtSRG1LT3tW0pmlaNldxN6nFFZQ/2V6g5HCATu2dpTnGAEeRu/sfQmvado+paRc2O
sKrabMoFyru0SkBgRV1ZCPiA75kyAI3dJinKMgY/U+XvzS0ry9o/nCSx0BETThBE6rHK0y82B5fG
7OfxzAyxAOz13Z2ac8dz52l3kHXbjQ/O+k3sDcVknS2nBYorRzMEPMj9kEhvoxxSoo7RxCeMvsHN
g8c7FXYq7FXYq7FWHzf30n+sf15QXZx5LMWTsVT/AMvf7zSf6/8AAZZBwtTzCaZNx3Yq7FXYq+J/
zn8sz+XfzE1ONgxgvJDdwSuVLOJfictx2B51NPAjYZjTFF3ulycUA93/AOcdPzA03VPKsHlq4nWP
V9L5rFE5o01uzF1ZK9SnIqQOgAyzFLanC1+EiXGORZJ50/Jjyr5q1Q6rPJcWV9IAJ5LZk4ycRxBZ
XVviAAFRjPEJG103aOTFHhFEPnf8yfL1p5V84X+i2jyPa24iMDykM7LJCjksVCivJj2GYs4Uaeh0
mpOTGJHmmP5HaBPr35hWs/pCSy0oG5uiwJTcFEUkA7kkkV60yzDHdwu0s9QrvfWmZbzbsVdirsVd
irsVdirsVfFP53Wslp+a2vc68Zp1mjYgiquinavg1V+jMafN32kl6AmH5NShvzA0Ed/rS/8AETlc
PqDm6qV4Je59KfnCrN+WuuBQSfSQ0G+wmQnMnL9JdD2d/fx/HR8lKab5gPXhGaAj3nmfSLWOvKW8
gBIBai+oCzUG/wAIqcnAbuLq8lQPufbebB412KuxV2KuxV2Kvg3zD5687R+YNTjj8w6mkaXc6oi3
lwAAJGAAAfoMxSXoYQHCNkv/AMfeev8AqY9U/wCk24/5rwWy4B3O/wAfeev+pj1T/pNuP+a8bXgH
c+mf+cWdZ1jVfKGrTapfXF/MmoFEkupXmZV9CM8QXLECpy/FydVrwBIe57TljguxV2KuxVg35s/l
hYee9DELOYdTtAz2FwADRj1U1p8LUodx+ApGUbcjT5zjPk+RvMXlLzX5P1JoNTtZbWSFwI7pK+kz
UDKUkFN+JDUNGHcDMcxp3WPMJDZHwfmz+YUUSxr5i1DioooNxI23zJJwWe9PhY/5o+Sv5e8teffz
B1XlbJcXzyMFuNVu2kaNBUCrzPyJpXoKn2xECVyaiGMVy8n1h+XH5d6T5J0NLC0/f3j/AB3t8wAe
WQ05ePFdhRa9u53zJjGnR585ySsssyTQ7FXYq7FXYq7FXYq7FXh//OSH5ZXOt2UXmfSkabUbFBDc
WyB2aWCpb4dyKodwtBWp6sQMqyR6ufos/CeE8nzt5U8xzaDr+natGvNrC4iuPTOwcRsGKk/5QFMo
5G3bn1RMT1D7H0j82fy01vTFuP07YwRzLSW0vporeReQ+JHjmK1p0NKj3zJEwXQy02SJ5H4Pm385
dZ0G4893r6FLby6aI4Fie04+jVYlDBeHw7HwzGyAGWzv9HOUcQEufmzr/nHT8u7qfUB5x1NGiigF
NLiYOpf1FIMwIK0FNgN6gmooVJtxQ6uB2hqrHCH0Vl7p3Yq7FXYq7FXYq/PHzL/ykeq/8xlx/wAn
WzEPN6OH0hLcWTsVfVf/ADiN/wAoVrP/AG0j/wAmI8uxcnU9ofUPcyfzh501vyv5rv77VJNQXQYr
OaTRLO2XT3sry4tNPmvJ4Z24SahHJxiLJQqnw9d6G1wEjXz15yHlaWefUryz8y2V/oU+qWdza6d6
Bs9YvI7YRWht2uQIXBkoZJGmHHfjUYqna+d/Mup/mtP5aiN5pGlyadqUFiZtMn+K8s5bQC/FxLEI
XipPIiBXKbKW3kjXFWPSfmv5uj8meQLsi7Nxqa6Pea/rEWmz3MM0V1ewW0trGbeCSGOaVZHamzbB
UBd1oq9wxVQu7CyvEMd1BHOhVkIkUN8LU5DfxoMUgkcmOj8rPy6Dch5esRJ/v0RASV8eY+KvvXI8
IbfzE+9ksNvbwJwgiSJNvhRQo2FBsPYUyTUSqYodirsVdirsVdirsVdirsVakjSRGjkUPG4KujCo
IOxBBxV5Z5//AOce/KXmi6n1K0ZtL1SarPJCAIpHPH4pEpT+Ykjck7nK5YwXLw6uUdjuHnrf84l6
2JqJ5itzDX7Zt5A1P9XmR/w2R8Jyf5QHczLyX/zjR5X0a4ivNauG1m6ibksTqFt6gqVJiNa9CCGL
Df2yQxgNOXXSlsNnsUUMUKCOJFjQVIVQAKk1J28Sa5Y4JK7FXYq7FXYq7FXYq/PHzL/ykeq/8xlx
/wAnWzEPN6OH0hLcWTsVfVf/ADiN/wAoVrP/AG0j/wAmI8uxcnU9ofUPc9kHlry4NXl1oaVZjWLh
PSn1IW8X1mSPiF4PNx9Rl4qBQnplrgKVj5Q8p2FlJY2OiWFpYyzJcy2sFrDHE08TrJHKyKoUujor
K1KggHtiqYtaWrXUd40MbXcMbwxXBUGRI5SjSIr05BXaJCwHXiPAYqox6PpEenwadHY26afamI2t
msSCGI27rJAY4wOK+k6KyUHwkAjpiqLxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku
xV2KuxV2KuxV2KvnjU/+cR/r2pXd7/iv0/rU0k3p/o/lx9Ri1K/WRWlfDKjidjHtChXD9v7EN/0J
3/393/cu/wCzrB4Xmn+Uf6P2/sd/0J3/AN/d/wBy7/s6x8LzX+Uf6P2/serflH+V/wDyrzRbzTP0
n+lPrdz9Z9b0Pq/H92qcePqTV+xWtcsjGnF1GfxDdUzrJOO7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXgPn6HTvM
H5hebbDzNqbm20O1s5PLehSXiWEEzywB5pVdxxZ0djvuTWlaAUpnuS7PTyMIxIHPmatm/wCQXmLX
9e/L9LvWmkmkhupre0vJg5kngQKRIzuT6hWRnj5D+Wh3ByWMkjdo10IRyel6PljhuxV2KuxV2Kux
V2KuxV2KuxVi3nr8wLDymNPtmtLjUtY1iR4NI0y2A5TSoB9uRiFjQM6Bm3IrUKaGkZSpuw4TOzdA
c1PyP+Yth5nuL3TJ7STSfMOmmmoaRcMrOorTnE67Sx1IHIAdR2KkiM7Z59McYB5xPIstybjOxV2K
uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVK9W8q+WNZlSbV9HstRmjXhHJd20U7Kta8VMisQ
K4CAzjklHkSEwtra3tbeK2tokgtoEWOGGNQiIiDiqqq0CqoFABhYk2qYodirsVdirsVdirsVdirs
Vdirz381vInmDzBe+W9d8vyw/pXyzdtdx2dw7RJcIxjdoxIoajMYFWhoCGNSMhKJPJydPljEES5S
Q/5b/l3q2nebNZ87a5/ompaypjh0hJ/ra20UhSSQSzlV5vzjAUJ8Kr3avwiMKNs9RqOKIgNwOr0r
LHDdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir//Z</xapGImg:image> + <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgA0AEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXlX54yWv13ynba
/PLB5FuryZPMPpsVR5FjD2aSlP3nAujk022r1C5k6fka+ro1ZOl8kH+VVxocf5iarp3kyXn5TTTI
p9Sht3kmso9WaUKPRklHL4oVbcfap/kilmckwBl9V/YjH9W3J7DmE3OxV2KuxV2KuxV2KuxV2KpD
5s89eU/KUNvN5h1BLFbpylupWSV3KirFY4ld+K7ValBUeIycMcp8gxlIDmivLfmfQfMumDU9DvFv
bIu0ZkUMhV06q6OFdDuDRgNiD0IxnjlA0UxkDyTTIJdirsVdirsVdirsVdirsVdirsVdirsVdirs
VdirsVdirsVU7m2t7q3ltrmJJ7eZTHNDIodHRhRlZWqCCOoOEGlU9P03TtNtEs9OtYbKzir6dtbx
rFEvIljxRAFFSSTiZE7lAFIjAl2KuxV2KuxV2KuxV2KuxV5v5w0LVrT8wW84pbT3emJ5euNNMVin
rXYuhMZY1SHhJX1PUorcSoI+OgpXIxyHDw9eJrkN78kX+Wumaw+s+ZfNepaY+ir5hktDaaZNw9dY
raAj1puBIV5WlPJCAykb45pChEG+FYDcnvZ7mO2OxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux
V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV
2KuxV2KuJAFT0xV5j58/Pryv5Zup9NtUbU9WhJR4YiPTRxx+3J0H7QIHxAj7NDXMrDpZT36NU8oD
zi6/5yR843N6k1rYQWtqtK2vL1OVDU1dkruNtszo9nCmg6gsv8tf85H6ZdziHXtPbTuVAs0LerGK
KftE8SOTUA2oOpbKcvZsgNt2cdSDzexW11b3VvHcW0qzQSqHilQhlZTuCCOoOa4iubkqmBXYq7FX
Yq7FXYq7FXYqwDzz+dXk/wApy/VZJDqGoUVvqlqVdgrgkFmrxX9k/ERUGormRi00ptcsgDzof85Q
aw5Xh5eh4j7ZNw9WHagCfD+OZo7Nvq0nU+TJfK3/ADkXoV/MINdtH0qR2/dzKfVgApQBn2ate/ED
7t68vZ047jdlHUA83rdtcwXMEdxbyLLBKoeORTUMrCoI+jNeRTkKmBXYq7FXYq7FXYq7FWHz/wB9
J/rH9ebAcmgrMKHYqn3l7/eaT/X/AIDMXPzbYck1yhm7FXYq7FXj3/OQv5mXflvSYtE0icR6pqis
ssqULwwinJga1RjWg271B2zL0uHiNlqyzp4J5D8ja95t1T6lpcXqSAc7i4kJEUSk/akeh6nt1Oba
WSOONycQRMjQe1Wf/OM5W3/0nXgtwR0ituSKfm0ilvuGY38q1yj9rZ+V82Geevyk17ypD9blZL7T
CQpvIQRwJ2AlQ1417GpHvXM7Ta2GXblJoy4TDfonH5IfmBc6PrUXlu/n/wBxF8zfVjIdoZiCeKkk
cVkP/DfMnMXtHSgjjHNt0+Xei+jc0bnOxV2KuxV2KuxV2KvLvz7/ADIl8peXY7LT246xq3JLd96R
xr/eSdKGlQAK9TuCKjMnTYuI+TVlnQeH/lv+U2uee7W91K2v4I3gm43BujIXd5BzL8lV6171zZT1
EcVAhx44zNllj/zj55wfVriyaW3itbbgDqDF/TkLIGpEvHk3HlQnYV75Z/KWMRB3vuY/lpEteavy
L8z6JpsmoRSQ6lbQKXuBByWRFG5bgw+JQOtDX2yzD2jjyHhOxYz08oi0R+SX5g3Wja1F5cvpS2k6
g/G1Lkn0Zz0Vd9lkO1Kfa+ZOUdo6UEcY5s9Pl3ovo7NG5zsVdirsVdirsVdirD5/76T/AFj+vNgO
TQVmFDsVT7y9/vNJ/r/wGYufm2w5MO178x9W0/zF5isYWshJodm9xp3l+RHOpauy2JuvUs29aOka
Sfu2CwSH4G6GmUM3n/mD86fN955Av3e503SHurLVzba7FJGyyva2kLRWtr9Sv7sW9873LlOU7ECL
lwqxVFUlv/M3nma91i2tNfuYJ5Lj6rcAz3Usscc2u2VpD61us0P1A+jcMLd4GVriLk5KvRgq9W8g
ah5wP5mebdM1y3u4rCGy019Jjlnimt44EmvLdJVpPNLzuxD6jFxzqpVzshZV4B+fmpXd5+ampxXD
8/qIjtoTSlI+PqqtB4erTNtpQBEOJlO73z/nHbSbWz/LW0vYlHr6nNPNO/c+nK0CivgBF+OYmtkT
krubcA9LEfzU/NPzVov5jGy065MNhpXoc7QAcJzJGsz+ptU1WTj7UqN8ztJpITxWRuWjNmkJ7dHu
Gpafa6rpdzYXK87a8iaKRSP2XWlaHuM1MJmMgRzDmEWKfFjXs1hdw3kLcbi0lSaJga0eNgykEe4z
qswBjTqobF9r2DyPY27yNzkaJC7kAFmKipoKDf2zkzzdqFfAl2KuxV2KuxV2KvkH/nInWF1D8y54
0DJHZQpb8TQVdGYO+xPXYV8AM2uljUXEymy9R/5xZ/5R3Wf+YqP/AJN5X2hzHuZ6fkU5/OT80tc8
pahp+n6RFD6k8ZuZ5p1LgrzKKigFafZPI/KmOi0kcgJkjPmMTQZ75S15PMPlnT9Y9MR/XYQ8kXUK
4qrqK9QGBpmHmx8EzHub4S4hb5T/ADAtk0LzrqkNgfSFletJa8duFG9RAP8AV2zo8cuPECeoddIV
M0+vLB+djbvUnlEjVapbdQd6985g83ZBXwJdirsVdirsVdirD5/76T/WP682A5NBWYUOxVPvL3+8
0n+v/AZi5+bbDkmuUM3Yq7FXYq+T/wDnJnyydM88RavClLbVIQ0jcuR9dCQ1evEMKcfkadM2eknc
a7nGyjdn3/ONP5gabPoP+ErydYdQtJHk09HNPWhlJdlSvV0csSPA+xyrWYjfEGWGW1Mx83fk1onm
XzXBr9xcyQ09MX1oqKyz+lsvxE/DVQFOx2HbBh10scOEBZ4BKVpr+ZPnrTvKPly4uZZlGpTRsmnW
1RzeUigbj14ITVj9HUjKtNgOSVdOrPJPhD5S8q6VN5h81abpMUfrCedTMlVFYlPKQVYhalRQVO5o
M3mpy1ElwccLL7VtoFt7eKBSzLEiorMasQopUnxznCbdkqYFdirsVdirsVdir5Z/5yj8vz2nnCz1
tUAtb+3ERK1P72Ekkt2BYNsPYnNlpJemnGzDdmn/ADinJz8ua37Xcf8AybyGuNkMsA2LN/zJ/Kiy
87XFldNfNYXNopiZxGJQ8RPLjQslCDWhr36ZDS6w4gRV2nLh42SWkGjeU/LEULzC20vSbcK08p6K
g3Zj3Zj4dSdsx5GWSd9S2ACI9z5I1C4ufPHn91t0fnrN8xVEBZ0hZiSaLyJ9OIVNB2zfSkMeOu4O
ABxSfZVrE0NtDCzBmjRUZgKAlRSoG9M54uxVMCuxV2KuxV2KuxV8e63/AM5B+fLXWb+2jjsfTguZ
Y0rC5PFHKiv7z2zcRxCg4plugv8AoYz8wP8Afdh/yJf/AKqYfCCOIu/6GM/MD/fdh/yJf/qpj4QX
iL3v/nHrzzrXnDyzqV9qywrNb3voRiBCi8fSRtwWberZgauNSDdiNh6pmK2uxV2KuxVjnn7yPpnn
Py7No1/VAx9S3mABaOVQQrivhXt8ulRlmPIYGwxlGw+PPN3kDzd5Kv6ahbSpArVt9QjDek1GIU8x
9lqqdvpFRvm1x5RLk4koEIi0/Nz8w7e2FtH5hvhEBQBpmZgB2DNVh9+S8PH/ADQvFLvQFmvmvzbq
3pWqXWsanMQHdmaV9zxBkkc/CKnqxplhyxgO4MREkvp78l/ykTydZHU9RYS69eJSUgUWKM7+mtQG
/wBb9W22q1OoMzXRysePhen5itrsVdirsVdirsVdirHPP3kjTfOfl2bRr4lAx9SCYAFo5VB4uKjt
Xt8ulRlmPIYG2Mo2GF/kF5I13yfbeYNM1aLiTdo1tOv2JYwhXmtd+o7/AKqE26nIJUQwxxpjP/OQ
H5gea/KfnPTf0HqMlmJtPDSxgK8bETSCpjkDoT70y/SQjKJ4he7DLIg7PIdX8+fmB53uI7G7vLnV
JCax2cKBUqP2vShVE2H7RG2ZkRDHuBTSTKXN73+Sn5Nz+WOWteYI431mZAIodnFupo1FIPHlX7Rp
1Hw7Cra/U6nj2HJyMeOub2DMNudirsVdirsVdirsVfnj5l/5SPVf+Yy4/wCTrZvIcg4Z5pbkkOxV
9V/84jf8oVrP/bSP/JiPNbrfqHucjDyeo6j5wk0/zrYeX7mzWOwvtPvL9dXedVVDYtCJUaIrsoW4
VuZcfLMNtYy35u6jN5d13zDY6AraZoF1JHcC7uzbTzWi2lveQzwRCCWstwl2PShcr25MrHiFV11+
cHop5quFtdONt5ZLRPC+plL0yiSONWubb6swtoGZ2/emRvs/ZPZVUufzetLe90HSpG0Y6trUX1su
usINPW2af0Ymgu5IEkuZJt/TjSDchgSAAxVeiYqpz21vcJ6c8Sypv8LqGG4Knr7EjEFWNH8q/wAt
yat5a09m7s1ujEnxJIqT88s8afex4B3J1pOgaLo9utvpdlDZwrXikSBQOVKgeA26ZGUieaQAEfkU
uxV2KuxV2KuxV2KuxV2KrXiRxRhvQjkCQwB60YUI+jFWMeaPy08oeaNQtL7WbT6zPZjgnI1DJy5c
H5VPGtelOpy2GWURQYygCmeieUfLGhBho+mW9gH48vQjCVKggHbvv16nISmTzKREBNsil2KuxV2K
uxV2KuxV2Kvzx8y/8pHqv/MZcf8AJ1s3kOQcM80tySHYq+q/+cRv+UK1n/tpH/kxHmt1v1D3ORh5
PXdW8p6Rq2s2eqX6GdrO0vbAWjhHt5YNR9H11mjZW57WygCtKE1B7YbaxW4/JDyolxJLotxceXY5
b+PU5LXSodOjt2nggjggDQzWk6MkJiaWNSKCV3f7XHiqm8vkBpdWn1h/MGpnVTDJa2F5Sw5WUE80
c8scC/VODBzAi/v1kIXpSpxVKJvyS8sSWjWqX1/DFdW8lprPBreuoQzXUt5IlxygbhynuZWrb+kR
yoKACir0LFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq+Rta/wCc
afzQu9Yv7qGC0MNxcSyxk3Kg8XcsKingc2cdVABxzjKC/wChX/zV/wCWez/6SV/ph/NwR4Rd/wBC
v/mr/wAs9n/0kr/TH83BfCL3b8gPy+8x+SPLeo6frqRJcXN568QhkEg4ekibke6nMPU5BMghtxxI
D1DMdsdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV
dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd
irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir
sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs
VdirsVdirsVdiqGOpWIJBmUEbEYOINnhS7nfpOw/3+uPEF8KXc79J2H+/wBceIL4Uu5VhuIZlLRO
HANCR44gsZRI5qmFi7FXYq7FVO4uIbaB553EcMYLO56ADElXj/mv/nIzSrK+ks/L1oNV9MsjXRYp
ATQbo1KtRq9BQihDZh5NWI8t2mWYBiUH5+/mCzDnHZtEOoERDkf63Lj/AMLmKdfJq/MFnvlP8+NJ
1K5W01u2/Rc0jBYpg3OCpIFGc0K9SakUpmTi1sZGjs2Qzg83qasrKGU1U7gjM1vbxV2KuxV2KuxV
2KuxV2KuxVDahqmnadbtcX9zHbQIpZpJGCgKCATv4VGAkDmgljx/NP8ALsS+l+n7QtUCoeq7/wCU
Bx/HK/Hh3sfEj3p7pet6RqsIm028hu4jUB4XDg8aA0p4VGTjIHkyBBRuSS7FXYq7FXYq7FXYqxCb
++k/1j+vKC7SPJZil2Kp95f/AN5pP9f+AyyDh6nmE0ybjOxV2KuxV86/85E/mHcz6n/g/T5THbwg
NqbKWBdmoViIIX/WPWopQ9a4Opy9A0ZZdGDeQvIet+aLs22mQgrHQ3FzIeMUQPTk1D1psAK5gxxS
yGg44iZHZ6/af848KsI+s63SUjdY7eqg/NpKn7hmQOze+X2Nv5bzec+cfLMWga9c6N9ZF21sE5TB
PTqZEDgceT9mHfNfnx+HPhu3GyR4TT0T8j/PF08x8rahNzSJC+nO53CggGLkSNl/ZFD9AGbLQ5yf
SXKwZL2L2bNk5LsVdirsVdirsVdirsVYf+Z35hWHkvQHu3ZZNQmPp2VoGHN3YH4qUaiim7Hb5mim
rLk4QwnKg+ZpdQ82/mB5iiW7mN3fXktLa1DCOFCRQBFYhVoq0qdzTcnNXOcpyrq4spGRZtqH5Iax
onlu71nU7q3Q2qK4tYuUjHkyrRmIRR9rtXHJpJxiZErLEQLLEtMutR0m6S90u5e1uUIYPGdjxPIB
lPwsKitCMw4ZpRNhpjMh9Dflh+Y0Xmqye3vSkOs21BNCDT1AannGD1XbxqO/Ynd6bUDIPNzsWTiD
Osym12KuxV2KuxV2KsQm/vpP9Y/rygu0jyWYpdiqfeX/APeaT/X/AIDLIOHqeYea+bfJvnPWPzE1
680wB4v0dplnbtfP9UhFpPJdHUIrK9jtLqaKZhFGrcD9mSrbiLjNxkt8k6j+Zun+VLfT57W/sdW0
vy7bJ5a0OOzaSwu5ItKBBv7uS05QXC3ClTA00VGAX468iqivJHmL8z7rVrOHzRc6jb6axVtPmtNM
mZrmcyASW2pyTaVbm3jQUpKkEKlW/vGKk4qyD8n9Y/MjUk1N/OimKVRAUtZIJoWguCZPXjjdrKyh
khFE4enJPTesrchRV8yecLmafzzrkkztI4vrhObks3GOQotSdzRVGajLzLhzfVP5LaRa6f8Al5pj
wqPVvVa6uJAN2d2IFf8AVQBcz9LECA83IxCosA/Mv81fNlp5qu9L0m5+oWlgwi+BEZ5GoCzMzq3c
7AZg6nVTEyAaAaMuU3Qeb3+sX+q6jPqF/L615cENNLQLyIAHRQANh2Ga/JIyNnm40jZsorynqs2m
+cdJvYKGWKbZT0IZSpB+g5dpTUgWeI0X1rnQOxdirsVdirsVdirsVdir5L/P3zBc6p+ZFzYu1bbS
VW3hRWZl5Mod2ofssahWp/Lmt1Mrk42U7su/5x20Xy/d319e6giNqFi9s2mM0jIwZxLz4oGUP9le
oOR0cYmRJ5jkjCATu941uw0rUNLuLPVlVtPmAFwruY1oGBFXUqRuB3zY5IiQqXJyZAEbvnL8yNN0
LSfNclloiomniGJlVJGmXkwPL42Zz+OaLV44xnUeTr80QDslvkvWp9F85aXewtxDzpbzAsUVo5mC
HkR+yCQ30Y6SZjMLhlUn1bnQOxdirsVdirsVdirEJv76T/WP68oLtI8lmKXYqn3l/wD3mk/1/wCA
yyDh6nmE0ybjOxV2KuxV8afnB5cm8vfmDqMbBjBdyG7gkYglhL8TluOwPOpp4U2GazNCpFxZii9x
/wCcfvPmnan5Yh8uzzKmq6byWKJjRpYCxdWSvXhXiQOgAzI0uQVw9Q24pbUyPzd+UflnzLqR1KZ5
7S9kAE727Lxk4igLK6t8VABUYc2kjM3yKzwiRt4N+YWiWnljzXe6Ras7W1uIjC8pBcrJEr1YgKOr
Htmpz4eCZAcTJCpUi/yZ0WfXfP1rMIxJZ6WDc3RYEpuCqKSAdyTUV60zJ0eK5X3NmGO76lzbuY7F
XYq7FXYq7FXYq7FXxt+c1tJafmlrnOvGaZZo2IIqrop2r4NUfRmszj1Fxcg3TX8oJlbzxoi13+sr
/wAROY2EfvQ1wHqD6I/NdWb8vdZCgk+khoPASoTm01f92XKy/SXy8hCmpzQF16vo4a88yaVax15S
3cC1ALUHqAs1B/KN8vwR9QZ4xu+xs6B2LsVdirsVdirsVfB3mHz152j1/U44/MOppGl3OqIt5cAA
CRgAAH6DMUl6GEBQ2S//AB956/6mPVP+k24/5rwWy4B3O/x956/6mPVP+k24/wCa8bXgHc+mf+cW
tZ1jVfKGrTapfXF/MmoFEkuZXmZV9CM8QXLECpy/FydVrwBIe57RljguxV2KuxVhP5qflpY+eNFE
LMYdStAz2FwADRj1U1ps1PH9QpVlxcQYTjb5S1/yt5q8o6i0OpW0ls8LgR3SV9NmoGUpIO/EhqGj
DuBmunjIO7jmNI+D81fPsUaxr5gv+KigBuJDt8ya4OOfeUcR71fQfL/nrz7qfK1S4vXkYLcandM7
RoNh8czciaV6Cp9sY4pTKiBL6k/L38v9K8maKlja/vrt/ivL1gA8khpX/VXbZf1nfNnixCApyoxo
Mpyxk7FXYq7FXYq7FXYq7FXiv/ORH5bXOtWcXmXS0aXULJBFcW6hmaSGpPw7kVQ9FoK1PViBmLqM
d7hqyR6vAPKvmObQ9csNUjXm1jPHP6Z2DCNgxUn/ACgKZgDYg9zRyNvrvSvzT/LnWdNWca3ZQxzL
SW1vZY4JFqN0eOUrWnQ0qPfNoM0CObkiYL55/N3W9Dm87Xj6JLBLp4jhWJ7Xj6NViUMF4fDsfDNX
qIgzNcnFyAGWzNP+cf8AyDdXF+PN2pI0UUIppkTBlL81IM1QV2psOtQTUUKk5Wkw16i24odX0Bme
5DsVdirsVdirsVfnl5l/5SPVf+Yy4/5OtmIXo4fSEtxZOxV9V/8AOI//AChWs/8AbSP/ACYjy7Fy
dT2h9Q9zJvOHnTW/K/mu/vtUk1BdBis5pNEs7ZdPeyvLi00+a8nhnbhJqEcnGIslCqfD13obXASN
PPXnMeVZJ7jUryz8zWV/oU+qWlza6d6Bs9YvI7YRWht2uaQODJQySNMOO/GoxVO187+ZdT/Nafy1
EbzSNLk07UoLEzaZP8V5Zy2gF+LiWIQvFSeRECuU2UtvJGuKsek/NfzdH5M8gXZF2bjU10e81/WI
tNnuYZorq9gtpbWM28EkMc0qyO1Nm2CoC7rRV7hiqjdWNndoUuoEmQqUIdQ3wtTkN/GmAi1pjw/L
H8vg3IeX7ISf79EQElfHmPir71yHhR7mPAGSQ28EC8IY1iTb4UUKNhQbD2GWUyX4q7FXYq7FXYq7
FXYq7FXYq06JIjI6h0cFWVhUEHYgg4q8x8+fkF5U8zXM2o2rNpmpzVZ5IQPSdzTd0pT+Ykjck9co
yacS3a5YwWAn/nFXWhLRPMNuYf5zA4an+ryI/wCGyn8oe9h4TL/J3/OOPlnSLiO81m4bWLmJuSxu
oW3qCCpMZrXoQQxI3yyGmA5so4gHrkUUUSBIkCIKkKooKk1PTxJzJbV2KuxV2KuxV2KuxV+eXmX/
AJSPVf8AmMuP+TrZiF6OH0hLcWTsVfVf/OI//KFaz/20j/yYjy7FydT2h9Q9z2MeWvLg1eXWhpVm
NYuE9KfUhbxfWZI+IXg83H1GXioFCemWuApWPlDynYWUljY6JYWljLMlzLawWsMcTTxOskcrIqhS
6OisrUqCAe2Kpi1patdR3jQxtdwxvDFcFQZEjlKNIivTkFdokLAdeI8BiqjHo+kR6fBp0djbpp9q
Yja2axIIYjbuskBjjA4r6TorJQfCQCOmKovFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq+edT/5xI+u6ld3v+K/T+tTSTen+j+XH1GLUr9ZFaV8Mq8J2Me0KFcP2/sQ
3/Qnn/f3f9y7/s6weF5p/lH+j9v7Hf8AQnn/AH93/cu/7OsfC81/lH+j9v7Hqv5R/lh/yrzRbzTP
0n+lPrdz9Z9b0Pq/H92qcePqTV+xWtcsjGnE1GfxDdUzrJNDsVdirsVdirsVdirsVdirsVdirsVd
irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVeE+eYtP1
78wPNVj5l1N/q2iWtnJ5d0WS7SxgmaWAPNKrOOLOjsd+prStBthZRxEg9OQaJiyWafkX5g1zXfIi
XWrtJM8VzLBaXc3IyTwIFIdnYn1CHZ05D+Wh3By3TSkYbs8RJG70LMhsdirsVdirsVdirsVdirsV
dirGPO3nyw8rCwt2tZ9R1fV5Gg0nTrYDlLKoH2nYhUQM6hm3IrWhocryZOH3ljKVLPJn5gWXmSe7
06a1k0rXtONL7SrgqzqK05xuu0kdduQA7dipMceYS25EIjO/eyrLmbsVdirsVdirsVdirsVdirsV
dirsVdirsVdirsVdirsVS3VfLHlrV5Ul1bSbLUZY14RyXdvFOyrWtFMisQK5EwB5hBAR1vb29tbx
W1tEkNvCixwwxqEREQUVVUUAAAoAMkAlUxV2KuxV2KuxV2KuxV2KuxV2KsB/NHyPruvXnl3XNBli
GqeW7prqO0uHaNJ0Yo7R+ooajMYFXfajGpGU5YE0R0YTiTuFD8vPIGq6f5p1jzlrf+i6jq6mOHSU
nN0tvFIUkkEk5Veb84wFC/Cq92r8McWKpGR5lEIUbei5kNjsVdirsVdirsVdirsVdirsVdirsVdi
rsVdirsVf//Z</xapGImg:image> </rdf:li> </rdf:Alt> </xap:Thumbnails> @@ -34,7 +34,7 @@ xmlns:xapMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"> <xapMM:DocumentID>uuid:89B13A64E5D9DE11BB37992E5642CB24</xapMM:DocumentID> - <xapMM:InstanceID>uuid:7a20788e-1606-7140-8335-11445081584b</xapMM:InstanceID> + <xapMM:InstanceID>uuid:bce40ba9-528e-1a48-b1a0-2636e427f460</xapMM:InstanceID> <xapMM:DerivedFrom rdf:parseType="Resource"> <stRef:instanceID>uuid:1052650b-0efc-4cb2-a32e-387095575b05</stRef:instanceID> <stRef:documentID>uuid:6120892493BFDB11914A8590D31508C8</stRef:documentID> @@ -54,7 +54,7 @@ <xapTPg:HasVisibleTransparency>False</xapTPg:HasVisibleTransparency> <xapTPg:HasVisibleOverprint>False</xapTPg:HasVisibleOverprint> <xapTPg:MaxPageSize rdf:parseType="Resource"> - <stDim:w>841.889832</stDim:w> + <stDim:w>841.889771</stDim:w> <stDim:h>595.275574</stDim:h> <stDim:unit>Pixels</stDim:unit> </xapTPg:MaxPageSize> @@ -65,7 +65,7 @@ <stFnt:fontFamily>Myriad Pro</stFnt:fontFamily> <stFnt:fontFace>Regular</stFnt:fontFace> <stFnt:fontType>Open Type</stFnt:fontType> - <stFnt:versionString>Version 2.037;PS 2.000;hotconv 1.0.51;makeotf.lib2.0.18671</stFnt:versionString> + <stFnt:versionString>Version 2.007;PS 002.000;Core 1.0.38;makeotf.lib1.7.9032</stFnt:versionString> <stFnt:composite>False</stFnt:composite> <stFnt:fontFileName>MyriadPro-Regular.otf</stFnt:fontFileName> </rdf:li> @@ -581,7 +581,7 @@ -<?xpacket end="w"?>
endstream
endobj
2 0 obj
<</Count 1/Type/Pages/Kids[5 0 R]>>
endobj
15 0 obj
<</Intent 16 0 R/Usage 17 0 R/Name(Class)/Type/OCG>>
endobj
27 0 obj
<</Intent 28 0 R/Usage 29 0 R/Name(Package)/Type/OCG>>
endobj
37 0 obj
<</Intent 38 0 R/Usage 39 0 R/Name(Object)/Type/OCG>>
endobj
65 0 obj
<</Intent 66 0 R/Usage 67 0 R/Name(Class)/Type/OCG>>
endobj
78 0 obj
<</Intent 79 0 R/Usage 80 0 R/Name(Package)/Type/OCG>>
endobj
90 0 obj
<</Intent 91 0 R/Usage 92 0 R/Name(Object)/Type/OCG>>
endobj
116 0 obj
<</Intent 117 0 R/Usage 118 0 R/Name(Class)/Type/OCG>>
endobj
129 0 obj
<</Intent 130 0 R/Usage 131 0 R/Name(Package)/Type/OCG>>
endobj
141 0 obj
<</Intent 142 0 R/Usage 143 0 R/Name(Object)/Type/OCG>>
endobj
167 0 obj
<</Intent 168 0 R/Usage 169 0 R/Name(Class)/Type/OCG>>
endobj
180 0 obj
<</Intent 181 0 R/Usage 182 0 R/Name(Package)/Type/OCG>>
endobj
192 0 obj
<</Intent 193 0 R/Usage 194 0 R/Name(Object)/Type/OCG>>
endobj
218 0 obj
<</Intent 219 0 R/Usage 220 0 R/Name(Class)/Type/OCG>>
endobj
237 0 obj
<</Intent 238 0 R/Usage 239 0 R/Name(Package)/Type/OCG>>
endobj
255 0 obj
<</Intent 256 0 R/Usage 257 0 R/Name(Object)/Type/OCG>>
endobj
287 0 obj
<</Intent 288 0 R/Usage 289 0 R/Name(Class)/Type/OCG>>
endobj
306 0 obj
<</Intent 307 0 R/Usage 308 0 R/Name(Package)/Type/OCG>>
endobj
324 0 obj
<</Intent 325 0 R/Usage 326 0 R/Name(Object)/Type/OCG>>
endobj
356 0 obj
<</Intent 357 0 R/Usage 358 0 R/Name(Class)/Type/OCG>>
endobj
375 0 obj
<</Intent 376 0 R/Usage 377 0 R/Name(Package)/Type/OCG>>
endobj
393 0 obj
<</Intent 394 0 R/Usage 395 0 R/Name(Object)/Type/OCG>>
endobj
425 0 obj
<</Intent 426 0 R/Usage 427 0 R/Name(Class)/Type/OCG>>
endobj
444 0 obj
<</Intent 445 0 R/Usage 446 0 R/Name(Trait)/Type/OCG>>
endobj
462 0 obj
<</Intent 463 0 R/Usage 464 0 R/Name(Package)/Type/OCG>>
endobj
480 0 obj
<</Intent 481 0 R/Usage 482 0 R/Name(Object)/Type/OCG>>
endobj
515 0 obj
<</Intent 516 0 R/Usage 517 0 R/Name(Class)/Type/OCG>>
endobj
534 0 obj
<</Intent 535 0 R/Usage 536 0 R/Name(Trait)/Type/OCG>>
endobj
552 0 obj
<</Intent 553 0 R/Usage 554 0 R/Name(Package)/Type/OCG>>
endobj
570 0 obj
<</Intent 571 0 R/Usage 572 0 R/Name(Object)/Type/OCG>>
endobj
605 0 obj
<</Intent 606 0 R/Usage 607 0 R/Name(Class)/Type/OCG>>
endobj
624 0 obj
<</Intent 625 0 R/Usage 626 0 R/Name(Trait)/Type/OCG>>
endobj
642 0 obj
<</Intent 643 0 R/Usage 644 0 R/Name(Package)/Type/OCG>>
endobj
660 0 obj
<</Intent 661 0 R/Usage 662 0 R/Name(Object)/Type/OCG>>
endobj
695 0 obj
<</Intent 696 0 R/Usage 697 0 R/Name(Base)/Type/OCG>>
endobj
699 0 obj
<</Intent 700 0 R/Usage 701 0 R/Name(Class)/Type/OCG>>
endobj
718 0 obj
<</Intent 719 0 R/Usage 720 0 R/Name(Trait)/Type/OCG>>
endobj
735 0 obj
<</Intent 736 0 R/Usage 737 0 R/Name(Package)/Type/OCG>>
endobj
753 0 obj
<</Intent 754 0 R/Usage 755 0 R/Name(Object)/Type/OCG>>
endobj
785 0 obj
<</Intent 786 0 R/Usage 787 0 R/Name(Base)/Type/OCG>>
endobj
789 0 obj
<</Intent 790 0 R/Usage 791 0 R/Name(Class)/Type/OCG>>
endobj
808 0 obj
<</Intent 809 0 R/Usage 810 0 R/Name(Trait)/Type/OCG>>
endobj
825 0 obj
<</Intent 826 0 R/Usage 827 0 R/Name(Package)/Type/OCG>>
endobj
843 0 obj
<</Intent 844 0 R/Usage 845 0 R/Name(Object)/Type/OCG>>
endobj
878 0 obj
<</Intent 879 0 R/Usage 880 0 R/Name(Base)/Type/OCG>>
endobj
882 0 obj
<</Intent 883 0 R/Usage 884 0 R/Name(Class)/Type/OCG>>
endobj
901 0 obj
<</Intent 902 0 R/Usage 903 0 R/Name(Trait)/Type/OCG>>
endobj
918 0 obj
<</Intent 919 0 R/Usage 920 0 R/Name(Package)/Type/OCG>>
endobj
936 0 obj
<</Intent 937 0 R/Usage 938 0 R/Name(Object)/Type/OCG>>
endobj
937 0 obj
[/View/Design]
endobj
938 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
919 0 obj
[/View/Design]
endobj
920 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
902 0 obj
[/View/Design]
endobj
903 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
883 0 obj
[/View/Design]
endobj
884 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
879 0 obj
[/View/Design]
endobj
880 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
844 0 obj
[/View/Design]
endobj
845 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
826 0 obj
[/View/Design]
endobj
827 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
809 0 obj
[/View/Design]
endobj
810 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
790 0 obj
[/View/Design]
endobj
791 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
786 0 obj
[/View/Design]
endobj
787 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
754 0 obj
[/View/Design]
endobj
755 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
736 0 obj
[/View/Design]
endobj
737 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
719 0 obj
[/View/Design]
endobj
720 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
700 0 obj
[/View/Design]
endobj
701 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
696 0 obj
[/View/Design]
endobj
697 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
661 0 obj
[/View/Design]
endobj
662 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
643 0 obj
[/View/Design]
endobj
644 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
625 0 obj
[/View/Design]
endobj
626 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
606 0 obj
[/View/Design]
endobj
607 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
571 0 obj
[/View/Design]
endobj
572 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
553 0 obj
[/View/Design]
endobj
554 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
535 0 obj
[/View/Design]
endobj
536 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
516 0 obj
[/View/Design]
endobj
517 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
481 0 obj
[/View/Design]
endobj
482 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
463 0 obj
[/View/Design]
endobj
464 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
445 0 obj
[/View/Design]
endobj
446 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
426 0 obj
[/View/Design]
endobj
427 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
394 0 obj
[/View/Design]
endobj
395 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
376 0 obj
[/View/Design]
endobj
377 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
357 0 obj
[/View/Design]
endobj
358 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
325 0 obj
[/View/Design]
endobj
326 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
307 0 obj
[/View/Design]
endobj
308 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
288 0 obj
[/View/Design]
endobj
289 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
256 0 obj
[/View/Design]
endobj
257 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
238 0 obj
[/View/Design]
endobj
239 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
219 0 obj
[/View/Design]
endobj
220 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
193 0 obj
[/View/Design]
endobj
194 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
181 0 obj
[/View/Design]
endobj
182 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
168 0 obj
[/View/Design]
endobj
169 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
142 0 obj
[/View/Design]
endobj
143 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
130 0 obj
[/View/Design]
endobj
131 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
117 0 obj
[/View/Design]
endobj
118 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
91 0 obj
[/View/Design]
endobj
92 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
79 0 obj
[/View/Design]
endobj
80 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
66 0 obj
[/View/Design]
endobj
67 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
38 0 obj
[/View/Design]
endobj
39 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
28 0 obj
[/View/Design]
endobj
29 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
16 0 obj
[/View/Design]
endobj
17 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
877 0 obj
[936 0 R 918 0 R 901 0 R 882 0 R 878 0 R]
endobj
5 0 obj
<</CropBox[321.5 204.775 334.5 217.775]/Parent 2 0 R/Contents 955 0 R/BleedBox[0.0 0.0 841.89 595.276]/PieceInfo<</Illustrator 869 0 R>>/ArtBox[321.5 204.775 334.5 217.775]/MediaBox[0.0 0.0 841.89 595.276]/Thumb 960 0 R/TrimBox[0.0 0.0 841.89 595.276]/Resources<</XObject<</Fm0 893 0 R/Fm1 900 0 R/Fm2 910 0 R/Fm3 917 0 R/Fm4 927 0 R/Fm5 935 0 R/Fm6 945 0 R/Fm7 952 0 R>>/ColorSpace<</CS0 889 0 R>>/Font<</T1_0 953 0 R>>/ProcSet[/PDF/Text]/Properties<</MC0 878 0 R/MC1 882 0 R/MC2 901 0 R/MC3 918 0 R/MC4 936 0 R>>/ExtGState<</GS0 885 0 R>>>>/Type/Page/LastModified(D:20091124113554+01'00')>>
endobj
955 0 obj
<</Length 1948/Filter/FlateDecode>>stream
+<?xpacket end="w"?>
endstream
endobj
2 0 obj
<</Count 1/Type/Pages/Kids[5 0 R]>>
endobj
15 0 obj
<</Intent 16 0 R/Usage 17 0 R/Name(Class)/Type/OCG>>
endobj
27 0 obj
<</Intent 28 0 R/Usage 29 0 R/Name(Package)/Type/OCG>>
endobj
37 0 obj
<</Intent 38 0 R/Usage 39 0 R/Name(Object)/Type/OCG>>
endobj
65 0 obj
<</Intent 66 0 R/Usage 67 0 R/Name(Class)/Type/OCG>>
endobj
78 0 obj
<</Intent 79 0 R/Usage 80 0 R/Name(Package)/Type/OCG>>
endobj
90 0 obj
<</Intent 91 0 R/Usage 92 0 R/Name(Object)/Type/OCG>>
endobj
116 0 obj
<</Intent 117 0 R/Usage 118 0 R/Name(Class)/Type/OCG>>
endobj
129 0 obj
<</Intent 130 0 R/Usage 131 0 R/Name(Package)/Type/OCG>>
endobj
141 0 obj
<</Intent 142 0 R/Usage 143 0 R/Name(Object)/Type/OCG>>
endobj
167 0 obj
<</Intent 168 0 R/Usage 169 0 R/Name(Class)/Type/OCG>>
endobj
180 0 obj
<</Intent 181 0 R/Usage 182 0 R/Name(Package)/Type/OCG>>
endobj
192 0 obj
<</Intent 193 0 R/Usage 194 0 R/Name(Object)/Type/OCG>>
endobj
218 0 obj
<</Intent 219 0 R/Usage 220 0 R/Name(Class)/Type/OCG>>
endobj
237 0 obj
<</Intent 238 0 R/Usage 239 0 R/Name(Package)/Type/OCG>>
endobj
255 0 obj
<</Intent 256 0 R/Usage 257 0 R/Name(Object)/Type/OCG>>
endobj
287 0 obj
<</Intent 288 0 R/Usage 289 0 R/Name(Class)/Type/OCG>>
endobj
306 0 obj
<</Intent 307 0 R/Usage 308 0 R/Name(Package)/Type/OCG>>
endobj
324 0 obj
<</Intent 325 0 R/Usage 326 0 R/Name(Object)/Type/OCG>>
endobj
356 0 obj
<</Intent 357 0 R/Usage 358 0 R/Name(Class)/Type/OCG>>
endobj
375 0 obj
<</Intent 376 0 R/Usage 377 0 R/Name(Package)/Type/OCG>>
endobj
393 0 obj
<</Intent 394 0 R/Usage 395 0 R/Name(Object)/Type/OCG>>
endobj
425 0 obj
<</Intent 426 0 R/Usage 427 0 R/Name(Class)/Type/OCG>>
endobj
444 0 obj
<</Intent 445 0 R/Usage 446 0 R/Name(Trait)/Type/OCG>>
endobj
462 0 obj
<</Intent 463 0 R/Usage 464 0 R/Name(Package)/Type/OCG>>
endobj
480 0 obj
<</Intent 481 0 R/Usage 482 0 R/Name(Object)/Type/OCG>>
endobj
515 0 obj
<</Intent 516 0 R/Usage 517 0 R/Name(Class)/Type/OCG>>
endobj
534 0 obj
<</Intent 535 0 R/Usage 536 0 R/Name(Trait)/Type/OCG>>
endobj
552 0 obj
<</Intent 553 0 R/Usage 554 0 R/Name(Package)/Type/OCG>>
endobj
570 0 obj
<</Intent 571 0 R/Usage 572 0 R/Name(Object)/Type/OCG>>
endobj
605 0 obj
<</Intent 606 0 R/Usage 607 0 R/Name(Class)/Type/OCG>>
endobj
624 0 obj
<</Intent 625 0 R/Usage 626 0 R/Name(Trait)/Type/OCG>>
endobj
642 0 obj
<</Intent 643 0 R/Usage 644 0 R/Name(Package)/Type/OCG>>
endobj
660 0 obj
<</Intent 661 0 R/Usage 662 0 R/Name(Object)/Type/OCG>>
endobj
695 0 obj
<</Intent 696 0 R/Usage 697 0 R/Name(Base)/Type/OCG>>
endobj
699 0 obj
<</Intent 700 0 R/Usage 701 0 R/Name(Class)/Type/OCG>>
endobj
718 0 obj
<</Intent 719 0 R/Usage 720 0 R/Name(Trait)/Type/OCG>>
endobj
735 0 obj
<</Intent 736 0 R/Usage 737 0 R/Name(Package)/Type/OCG>>
endobj
753 0 obj
<</Intent 754 0 R/Usage 755 0 R/Name(Object)/Type/OCG>>
endobj
785 0 obj
<</Intent 786 0 R/Usage 787 0 R/Name(Base)/Type/OCG>>
endobj
789 0 obj
<</Intent 790 0 R/Usage 791 0 R/Name(Class)/Type/OCG>>
endobj
808 0 obj
<</Intent 809 0 R/Usage 810 0 R/Name(Trait)/Type/OCG>>
endobj
825 0 obj
<</Intent 826 0 R/Usage 827 0 R/Name(Package)/Type/OCG>>
endobj
843 0 obj
<</Intent 844 0 R/Usage 845 0 R/Name(Object)/Type/OCG>>
endobj
878 0 obj
<</Intent 879 0 R/Usage 880 0 R/Name(Base)/Type/OCG>>
endobj
882 0 obj
<</Intent 883 0 R/Usage 884 0 R/Name(Class)/Type/OCG>>
endobj
901 0 obj
<</Intent 902 0 R/Usage 903 0 R/Name(Trait)/Type/OCG>>
endobj
918 0 obj
<</Intent 919 0 R/Usage 920 0 R/Name(Package)/Type/OCG>>
endobj
936 0 obj
<</Intent 937 0 R/Usage 938 0 R/Name(Object)/Type/OCG>>
endobj
971 0 obj
<</Intent 972 0 R/Usage 973 0 R/Name(Base)/Type/OCG>>
endobj
975 0 obj
<</Intent 976 0 R/Usage 977 0 R/Name(Class)/Type/OCG>>
endobj
994 0 obj
<</Intent 995 0 R/Usage 996 0 R/Name(Trait)/Type/OCG>>
endobj
1011 0 obj
<</Intent 1012 0 R/Usage 1013 0 R/Name(Package)/Type/OCG>>
endobj
1029 0 obj
<</Intent 1030 0 R/Usage 1031 0 R/Name(Object)/Type/OCG>>
endobj
1030 0 obj
[/View/Design]
endobj
1031 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
1012 0 obj
[/View/Design]
endobj
1013 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
995 0 obj
[/View/Design]
endobj
996 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
976 0 obj
[/View/Design]
endobj
977 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
972 0 obj
[/View/Design]
endobj
973 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
937 0 obj
[/View/Design]
endobj
938 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
919 0 obj
[/View/Design]
endobj
920 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
902 0 obj
[/View/Design]
endobj
903 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
883 0 obj
[/View/Design]
endobj
884 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
879 0 obj
[/View/Design]
endobj
880 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
844 0 obj
[/View/Design]
endobj
845 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
826 0 obj
[/View/Design]
endobj
827 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
809 0 obj
[/View/Design]
endobj
810 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
790 0 obj
[/View/Design]
endobj
791 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
786 0 obj
[/View/Design]
endobj
787 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
754 0 obj
[/View/Design]
endobj
755 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
736 0 obj
[/View/Design]
endobj
737 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
719 0 obj
[/View/Design]
endobj
720 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
700 0 obj
[/View/Design]
endobj
701 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
696 0 obj
[/View/Design]
endobj
697 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
661 0 obj
[/View/Design]
endobj
662 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
643 0 obj
[/View/Design]
endobj
644 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
625 0 obj
[/View/Design]
endobj
626 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
606 0 obj
[/View/Design]
endobj
607 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
571 0 obj
[/View/Design]
endobj
572 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
553 0 obj
[/View/Design]
endobj
554 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
535 0 obj
[/View/Design]
endobj
536 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
516 0 obj
[/View/Design]
endobj
517 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
481 0 obj
[/View/Design]
endobj
482 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
463 0 obj
[/View/Design]
endobj
464 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
445 0 obj
[/View/Design]
endobj
446 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
426 0 obj
[/View/Design]
endobj
427 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
394 0 obj
[/View/Design]
endobj
395 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
376 0 obj
[/View/Design]
endobj
377 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
357 0 obj
[/View/Design]
endobj
358 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
325 0 obj
[/View/Design]
endobj
326 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
307 0 obj
[/View/Design]
endobj
308 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
288 0 obj
[/View/Design]
endobj
289 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
256 0 obj
[/View/Design]
endobj
257 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
238 0 obj
[/View/Design]
endobj
239 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
219 0 obj
[/View/Design]
endobj
220 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
193 0 obj
[/View/Design]
endobj
194 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
181 0 obj
[/View/Design]
endobj
182 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
168 0 obj
[/View/Design]
endobj
169 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
142 0 obj
[/View/Design]
endobj
143 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
130 0 obj
[/View/Design]
endobj
131 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
117 0 obj
[/View/Design]
endobj
118 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
91 0 obj
[/View/Design]
endobj
92 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
79 0 obj
[/View/Design]
endobj
80 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
66 0 obj
[/View/Design]
endobj
67 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
38 0 obj
[/View/Design]
endobj
39 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
28 0 obj
[/View/Design]
endobj
29 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
16 0 obj
[/View/Design]
endobj
17 0 obj
<</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>>
endobj
970 0 obj
[1029 0 R 1011 0 R 994 0 R 975 0 R 971 0 R]
endobj
5 0 obj
<</CropBox[321.5 204.775 334.5 217.775]/Parent 2 0 R/Contents 1048 0 R/BleedBox[0.0 0.0 841.89 595.276]/PieceInfo<</Illustrator 962 0 R>>/ArtBox[321.5 204.775 334.5 217.775]/MediaBox[0.0 0.0 841.89 595.276]/Thumb 1053 0 R/TrimBox[0.0 0.0 841.89 595.276]/Resources<</XObject<</Fm0 986 0 R/Fm1 993 0 R/Fm2 1003 0 R/Fm3 1010 0 R/Fm4 1020 0 R/Fm5 1028 0 R/Fm6 1038 0 R/Fm7 1045 0 R>>/ColorSpace<</CS0 982 0 R>>/Font<</T1_0 1046 0 R>>/ProcSet[/PDF/Text]/Properties<</MC0 971 0 R/MC1 975 0 R/MC2 994 0 R/MC3 1011 0 R/MC4 1029 0 R>>/ExtGState<</GS0 978 0 R>>>>/Type/Page/LastModified(D:20100413200510+02'00')>>
endobj
1048 0 obj
<</Length 1948/Filter/FlateDecode>>stream
H‰ÌWËŽ5Ý÷Wx™,®Çå··L ZÖíÿu¹ÄÐgIIy_±ã<¾+i,¼}pë:§Œ¿.ï öP—ÎØ5•æmØW±!¥´«{[°£ ûYì$ÖC«je¹g±-´uÊG+ÒL„S×±[SãÒAðÞ¡°j}l6 @@ -594,12 +594,14 @@ H¶CŸá’:P«Ûz쎾þ˜²må9cÄfwó§s@Èð~¾0‡æð_f²p.….7–ªdCõ¨¯¥^"'€ýù@Ó eÀ!L<8“ØUoÎλvkºŠ]GîLxg‘‚bgv&›R;à2$ìx¶xÆ…˜N”Tg l3ûÝ#|XʪÕD^kE½ï‡V%ÅIe@ÛT7|]Δ›ÚKšŸx OòºKËGìò0ðD¸M\[±)‡ðz®Ðy¶Û¿ãër¦ô“´™ïÍ•¨î?;äŸj"Ëi.ªÞGMr¿qÑ)ióµþÓö_'X(ü¶L|¯øJ_¦LãGA,)}Á^ç¾+¾´ïʽ²|ºBz${E» ×íóO‚ø¢ ÿ« ù¬oH*UzE';«‹øhÐñ3žgÑn/µëRôÝ×ÜÀå pÄMùe#fP'Q¬ -8Éͯvù:¢—ÚÐÒó¹Ë&?`óø&Cw`„×}ëa¾Ù´i7¼6|F£†9¾5i#…
g¦ºx;.¾s7íÀM;ª(Ϥc*
Žr~g ê^±(
›xw‡‹ÃSß/ýi‚^Êo€æÉiškMŸ| uàtŽ´•DÓÌu»¤UŽÊ@Ž‹˜ÝÚ‘ï?P\æË¡#¾Wðj‚CÕ”s\Ñoè3«¡3¼¾ðW7¡Z³†¢ýEæðé|ý¸Êäm¶¢®Hg™UœRøÛå/ -8;Xnf&7>J<fDsP~>
endstream
endobj
885 0 obj
<</OPM 1/BM/Normal/CA 1.0/OP false/SMask/None/ca 1.0/AIS false/op false/Type/ExtGState/SA true>>
endobj
953 0 obj
<</Subtype/Type1/FontDescriptor 954 0 R/LastChar 102/Widths[513 513 0 513 513 513 0 513 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 448 564 501 292]/BaseFont/WLSGHE+MyriadPro-Regular/FirstChar 49/Encoding/WinAnsiEncoding/Type/Font>>
endobj
954 0 obj
<</StemV 88/FontName/WLSGHE+MyriadPro-Regular/FontStretch/Normal/FontFile3 957 0 R/FontWeight 400/Flags 32/Descent -250/FontBBox[-157 -250 1126 952]/Ascent 952/FontFamily(Myriad Pro)/CapHeight 674/XHeight 484/Type/FontDescriptor/ItalicAngle 0>>
endobj
957 0 obj
<</Subtype/Type1C/Length 1273/Filter/FlateDecode>>stream
-H‰|S]PWÞ%ìF -M[â2šÐÝÕZ„#b(?Šâ mÆfü IÔ$˜(EKÚ™¶&„PèP±øƒƒ¢uÈTmg -Æüì/<0ÙX,”ïÞcaWÆÇGGúP9‡±‘ltTTÔ*Ùõzc¾U—›-†}f6½Hg4MZ‹A¯`ײsfÖd0L¥¾¤0ŽÅ t6¿œÕ(ÔBF8]$œÙ ŒQFÆÄE+Øg93kà,{&V+ìæ„&¡ÎbÒê
û´¦ÖèSþCwýÏ8,WÄ -^¬¦ˆó1µEHšYm‘~…àbœë¢3–YLœÁ¬X‘ªÎ./6°q¬Þ°Œc”¶Ã6ˆ°@߆²°bì"Æã›ñ~*¿Z.Òˆê_VuñÓ]¸€KºDUþü¡•÷ NÔC¡µðOIÄ¢«øˆ·Nì%·ÏÅ° œä¿£|ò1ÉñR¾o´ª,¬cÒv°†ŒÍÐI¤t-^×”Ä-¢š”Tyøü„ˆßâAßT‹¯tð&,Ÿ† ÙSÕ¯ˆ]ŸQ´kÝšE´œí<{C>ÝönzĺX”€¢™Ô4B#Ú@ê +8Éͯvù:¢—ÚÐÒó¹Ë&?`óø&Cw`„×}ëa¾Ù´i7¼6|F£†9¾5i#…
g¦ºx;.¾s7íÀM;ª(Ϥc*
Žr~g ê^±(
›xw‡‹ÃSß/ýi‚^Êo€æÉiškMŸ| uàtŽ´•DÓÌu»¤UŽÊ@Ž‹˜ÝÚ‘ï?P\æË¡#¾Wðj‚CÕ”s\Ñoè3«¡3¼¾ðW7¡Z³†¢ýEæðé|ý¸Êäm¶¢®Hg™UœRøÛå/ +8;Xnf&7>J<fDsP~>
endstream
endobj
978 0 obj
<</OPM 1/BM/Normal/CA 1.0/OP false/SMask/None/ca 1.0/AIS false/op false/Type/ExtGState/SA true>>
endobj
1046 0 obj
<</Subtype/Type1/FontDescriptor 1047 0 R/LastChar 102/Widths[513 513 0 513 513 513 0 513 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 448 564 501 292]/BaseFont/XAMDXC+MyriadPro-Regular/FirstChar 49/Encoding/WinAnsiEncoding/Type/Font>>
endobj
1047 0 obj
<</StemV 88/FontName/XAMDXC+MyriadPro-Regular/FontStretch/Normal/FontFile3 1050 0 R/FontWeight 400/Flags 32/Descent -250/FontBBox[-157 -250 1126 952]/Ascent 952/FontFamily(Myriad Pro)/CapHeight 674/XHeight 484/Type/FontDescriptor/ItalicAngle 0>>
endobj
1050 0 obj
<</Subtype/Type1C/Length 1212/Filter/FlateDecode>>stream
+H‰|SmPg¾#\N„¦-ñMìÝY-àH‘BR? +((ØH%t´sÚ LÔŠšv¦-„X~P¨"ZGT§„ŠZÔ"ÅX$ÊHüK;ô{ñÍŒ½Øÿý³»Ïûì³ûî;ïâXh†ãø¬‚ô¼Ì‚Œy;M^e2¾ŸÏm)+Ñ™‚$ÃËq~f(?;‚B ÇË—/s ¨}¾}yvè¹H,ÇžÎ0– +Ú-Ÿ[ØÄ„„„¸ U°¯2]o,âXõN³…Ûffs¶o2šJ&…Ódzé%%l~Pffó93g*jâÕñ¬JHØna3JEœ2%1þ¿«±3«cM܃PÍÄéY‹I§ç¶éL[Yãfö:-\®þdg)Ǧ°zn3†áX$ŽQ!Ø,ËaáÂ#`yX)Ö…ùñ|¼/duˆ3ä•H-Ú7UÓÃOöà‚×#ª å«üª@•¨BË`ÏĈE½A žˆ7¼Ža°˜¿D#D’#åü€·¦"¬ãÒ3`÷Óibé0z÷£ÃÙ@Ü jÅ’ßàÁŸñ£<èb-y©›€w`æ£Iˆ=Sý‰Ø´UFn}<h;á>qM>yruc›Ÿ–ŒRQâòì™RèYÃp{?èÃ?/ +²ž'ð±q$ºH"ÖÀ”E"بZ’`GÓ‰CÇ›;g9ÄÕ›Á CÛH‰u:‡ ù~ŸˆÏòÓº)Ö¡ÂÑÚî<#‡¨«'ÛE¦&Eµ¶ùP)]–MTt\¯‘Ãœ©ç õê®´3›´.ܼ»ºº’iƒÅØÅëô
BÂ]ü§GÐ"”Vøc©]e¶ïv0‹¾Ê(Ö¬¶jÕúh4C†–>A0 ƒiêDfhE%t•øàÏÐ-mÎ{“mŠ§Ž¾¨f9ëöÓ?·ºOõÊÇzÕññ¹iŒÄz“ïê<óxå0?\é“z žRRßbCášE²8o*̆·&ï1ªý5õ$í ¥÷îw»vE6–;Š"‘X‘5–zÔêÛú)ê”)Ú¾AóÛùž»Gé Ón‰LêÉ)Ð.¡í¼@ßíЬSmܤþ‚Ik.<= WÏu{h‰Û:Âc¿ãÂØ1)«©xV¾ cB§®{AÔ}ʺ÷Ó<D4˜×7®“£Ä÷†æ£Øç1=ðËá†F‹¬#úr~Ù0lˆìôAû„ÔÍÇø)ÔUMž-ÓžN—£é1±HigPÌãX½vþò1ºV,t&£âªS6÷ï%“Nj·moÕ^ZêÎ٥ѫäqŸŽýõâòý'ƒÝëÕŒÃj¯´Ê$ÿX‡aI?ÌíÇ;‚k\ÄA9eÿ¾ö@“̧%¢9JD¢hí‹…ù÷zè +û‰ÝÅœ5Wžô‘«{?u£þ¬×'ÿ»U¡¶1VXå-HÁ½D°4ŠWBØ-ö#yç‡Á?Úš¾ý¦‘n"ê¿,/‘}¶gk1S¤¯Ì[!³¬È +(…ŸéòØ€6¸`¡Ëí +XêÅüÊ:”[0º.ֵבô‘Y_xvkúDø„3â
~ÿ~.õ¯ H‰œ–yTSwÇoÉž•°Ãc
[€°5la‘QIBHØADED„ª•2ÖmtFOE.®cÖ}êÒõ0êè8´×Ž8GNg¦Óïï÷9÷wïïÝß½÷ó V³)gB£0ñiœWו8#©8wÕ©•õ8_Å٥ʨQãüÜ«QÊj@é&»A)/ÇÙgº>'K‚ó @@ -608,8 +610,8 @@ H‰œ–yTSwÇoÉž•°Ãc
[€°5la‘QIBHØADED„ª•2ÖmtFOE.®cÖ}êÒõ0êè8´×Ž8 N'çÎ)Î].ÂuæJ¸rî î÷wšGä xR^¯‡÷[ÞoÆœchžgÞ`>bþ‰ù$á»ñ¥ü*~ÿ ÿ:ÿ¥…EŒ…ÒbÅ~‹ËÏ,m,£-•–Ý–,¯Y¾´Â¬â*6X[ݱF=3ë·YŸ±~dó ·‘ÛtÛ´¹iÛzÚfÙ6Û~`{ÁvÖÎÞ.ÑNg·Åî”Ý#{¾}´}…ý€ý§ö¸‘j‡‡ÏþŠ™c1X6„Æfm“Ž;'_9 œr:œ8Ýq¦:‹ËœœO:ϸ8¸¤¹´¸ìu¹éJq»–»nv=ëúÌMà–ï¶ÊmÜí¾ÀR 4 ö n»3Ü£ÜkÜGݯz=Ä•[=¾ô„=ƒ<Ë=G</zÁ^Á^j¯^—¼ Þ¡ÞZïQïBº0FX'Ü+œòáû¤útøŒû<öuñ-ôÝà{Ö÷µ__•ß˜ß-G”,ê}çïé/÷ñ¿ÀHh8ðm W 2p[àŸƒ¸AiA«‚Ný#8$X¼?øAˆKHIÈ{!7Ä<q†¸Wüy(!46´-ôãÐaÁa†°ƒa†W†ï ¿¿@°@¹`lÁݧYÄŽˆÉH,²$òýÈÉ(Ç(YÔhÔ7ÑÎÑŠèÑ÷b<b*böÅ<Žõ‹ÕÇ~ûL&Y&9‡Ä%ÆuÇMÄsâsã‡ã¿NpJP%ìM˜IJlN<žDHJIÚtCj'•KwKg’C’—%ŸN¡§d§§|“ꙪO=–§%§mL»½Ðu¡váx:H—¦oL¿“!ȨÉøC&13#s$ó/Y¢¬–¬³ÙÜìâì=ÙOsbsúrnåºçsOæ1óŠòvç=ËËïÏŸ\ä»hÙ¢óÖê‚#…¤Â¼Â…³‹ãoZ<]TÔUt}‰`IÃ’sK—V-ý¤˜Y,+>TB(É/ÙSòƒ,]6*›-•–¾W:#—È7Ë*¢ŠÊe¿ò^YDYÙ}U„j£êAyTù`ù#µD=¬þ¶"©b{ųÊôÊ+¬Ê¯: !kJ4Gµm¥ötµ}uCõ%—®K7YV³©fFŸ¢ßYÕ.©=bàá?SŒîÆ•Æ©ºÈº‘ºçõyõ‡Ø
Ú†žkï5%4ý¦m–7Ÿlqlio™Z³lG+ÔZÚz²Í¹³mzyâò]íÔöÊö?uøuôw|¿"űN»ÎåwW&®ÜÛe֥ﺱ*|ÕöÕèjõê‰5k¶¬yÝèþ¢Ç¯g°ç‡^yïkEk‡Öþ¸®lÝD_p߶õÄõÚõ×7DmØÕÏîoê¿»1mãál {àûMÅ›Î
nßLÝlÜ<9”úO -¾„¾ÿ¿z¿õÀpÀìÁgÁãÂ_ÂÛÃXÃÔÄQÄÎÅKÅÈÆFÆÃÇAÇ¿È=ȼÉ:ɹÊ8Ê·Ë6˶Ì5̵Í5͵Î6ζÏ7ϸÐ9кÑ<ѾÒ?ÒÁÓDÓÆÔIÔËÕNÕÑÖUÖØ×\×àØdØèÙlÙñÚvÚûÛ€ÜÜŠÝÝ–ÞÞ¢ß)߯à6à½áDáÌâSâÛãcãëäsäüå„æ
æ–çç©è2è¼éFéÐê[êåëpëûì†ííœî(î´ï@ïÌðXðåñrñÿòŒóó§ô4ôÂõPõÞömöû÷Šøø¨ù8ùÇúWúçûwüü˜ý)ýºþKþÜÿmÿÿ -/CS0 cs 0.616 0.196 0.196 scn +¾„¾ÿ¿z¿õÀpÀìÁgÁãÂ_ÂÛÃXÃÔÄQÄÎÅKÅÈÆFÆÃÇAÇ¿È=ȼÉ:ɹÊ8Ê·Ë6˶Ì5̵Í5͵Î6ζÏ7ϸÐ9кÑ<ѾÒ?ÒÁÓDÓÆÔIÔËÕNÕÑÖUÖØ×\×àØdØèÙlÙñÚvÚûÛ€ÜÜŠÝÝ–ÞÞ¢ß)߯à6à½áDáÌâSâÛãcãëäsäüå„æ
æ–çç©è2è¼éFéÐê[êåëpëûì†ííœî(î´ï@ïÌðXðåñrñÿòŒóó§ô4ôÂõPõÞömöû÷Šøø¨ù8ùÇúWúçûwüü˜ý)ýºþKþÜÿmÿÿ +/CS0 cs 0.29 0.486 0.133 scn 1 i /GS0 gs q 1 0 0 1 183 308.2725 cm @@ -623,8 +625,8 @@ Q q /Fm0 Do Q -
endstream
endobj
900 0 obj
<</Subtype/Form/Length 245/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 895 0 R/Resources<</XObject<</Fm0 899 0 R>>/ColorSpace<</CS0 889 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[180.624 223.274 192.621 211.277]>>stream
-/CS0 cs 0.616 0.196 0.196 scn +
endstream
endobj
993 0 obj
<</Subtype/Form/Length 244/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 988 0 R/Resources<</XObject<</Fm0 992 0 R>>/ColorSpace<</CS0 982 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[180.624 223.274 192.621 211.277]>>stream
+/CS0 cs 0.29 0.486 0.133 scn 1 i /GS0 gs q 1 0 0 1 186.627 218.2744 cm @@ -638,8 +640,8 @@ Q q /Fm0 Do Q -
endstream
endobj
910 0 obj
<</Subtype/Form/Length 259/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 905 0 R/Resources<</XObject<</Fm0 909 0 R>>/ColorSpace<</CS0 889 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[306.003 319.277 362.001 263.279]>>stream
-/CS0 cs 0.616 0.196 0.196 scn +
endstream
endobj
1003 0 obj
<</Subtype/Form/Length 258/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 998 0 R/Resources<</XObject<</Fm0 1002 0 R>>/ColorSpace<</CS0 982 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[306.003 319.277 362.001 263.279]>>stream
+/CS0 cs 0.29 0.486 0.133 scn 1 i /GS0 gs q 1 0 0 1 334.002 303.2773 cm @@ -653,8 +655,8 @@ Q q /Fm0 Do Q -
endstream
endobj
917 0 obj
<</Subtype/Form/Length 248/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 912 0 R/Resources<</XObject<</Fm0 916 0 R>>/ColorSpace<</CS0 889 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[321.996 217.271 334.002 205.274]>>stream
-/CS0 cs 0.616 0.196 0.196 scn +
endstream
endobj
1010 0 obj
<</Subtype/Form/Length 247/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 1005 0 R/Resources<</XObject<</Fm0 1009 0 R>>/ColorSpace<</CS0 982 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[321.996 217.271 334.002 205.274]>>stream
+/CS0 cs 0.29 0.486 0.133 scn 1 i /GS0 gs q 1 0 0 1 327.999 212.2715 cm @@ -668,7 +670,7 @@ Q q /Fm0 Do Q -
endstream
endobj
927 0 obj
<</Subtype/Form/Length 262/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 922 0 R/Resources<</XObject<</Fm0 926 0 R>>/ColorSpace<</CS0 889 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[295.671 461.774 351.669 405.776]>>stream
+
endstream
endobj
1020 0 obj
<</Subtype/Form/Length 262/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 1015 0 R/Resources<</XObject<</Fm0 1019 0 R>>/ColorSpace<</CS0 982 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[295.671 461.774 351.669 405.776]>>stream
/CS0 cs 0.196 0.322 0.616 scn 1 i /GS0 gs @@ -683,7 +685,7 @@ Q q /Fm0 Do Q -
endstream
endobj
935 0 obj
<</Subtype/Form/Length 241/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 930 0 R/Resources<</XObject<</Fm0 934 0 R>>/ColorSpace<</CS0 889 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[309.171 492.275 321.168 480.278]>>stream
+
endstream
endobj
1028 0 obj
<</Subtype/Form/Length 241/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 1023 0 R/Resources<</XObject<</Fm0 1027 0 R>>/ColorSpace<</CS0 982 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[309.171 492.275 321.168 480.278]>>stream
/CS0 cs 0.196 0.322 0.616 scn 1 i /GS0 gs @@ -698,7 +700,7 @@ Q q /Fm0 Do Q -
endstream
endobj
945 0 obj
<</Subtype/Form/Length 262/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 940 0 R/Resources<</XObject<</Fm0 944 0 R>>/ColorSpace<</CS0 889 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[156.837 462.278 212.835 406.271]>>stream
+
endstream
endobj
1038 0 obj
<</Subtype/Form/Length 262/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 1033 0 R/Resources<</XObject<</Fm0 1037 0 R>>/ColorSpace<</CS0 982 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[156.837 462.278 212.835 406.271]>>stream
/CS0 cs 0.196 0.322 0.616 scn 1 i /GS0 gs @@ -713,7 +715,7 @@ Q q /Fm0 Do Q -
endstream
endobj
952 0 obj
<</Subtype/Form/Length 240/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 947 0 R/Resources<</XObject<</Fm0 951 0 R>>/ColorSpace<</CS0 889 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[183.873 501.023 195.879 489.026]>>stream
+
endstream
endobj
1045 0 obj
<</Subtype/Form/Length 240/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 1040 0 R/Resources<</XObject<</Fm0 1044 0 R>>/ColorSpace<</CS0 982 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[183.873 501.023 195.879 489.026]>>stream
/CS0 cs 0.196 0.322 0.616 scn 1 i /GS0 gs @@ -728,7 +730,7 @@ Q q /Fm0 Do Q -
endstream
endobj
947 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
951 0 obj
<</Subtype/Form/Length 482/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 948 0 R/Resources<</XObject<</Fm0 950 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[183.873 501.023 195.879 489.026]>>stream
+
endstream
endobj
1040 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
1044 0 obj
<</Subtype/Form/Length 482/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 1041 0 R/Resources<</XObject<</Fm0 1043 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[183.873 501.023 195.879 489.026]>>stream
q 189.876 496.023 m 189.876 501.023 l @@ -747,7 +749,7 @@ q /Fm0 Do Q Q -
endstream
endobj
948 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
950 0 obj
<</Subtype/Form/Length 11006/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 949 0 R/Resources<</ColorSpace<</CS0 889 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[183.873 501.023 195.879 489.026]>>stream
+
endstream
endobj
1041 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
1043 0 obj
<</Subtype/Form/Length 11006/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 1042 0 R/Resources<</ColorSpace<</CS0 982 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[183.873 501.023 195.879 489.026]>>stream
/CS0 cs 0.2 0.325 0.624 scn 1 i /GS0 gs @@ -850,7 +852,7 @@ q 1 0 0 1 189.876 497.5073 cm -1.093 -1.708 l -1.262 -2.107 -1.291 -2.435 -1.188 -2.804 c -1.126 -3.032 -0.727 -4.136 0.984 -3.565 c -4.73 -2.315 2.784 0.034 2.453 0.246 c +4.73 -2.315 2.784 0.034 2.453 0.247 c 1.442 0.896 0.101 0.218 0 0 c 0 3.516 l 3.312 3.516 6.003 0.834 6.003 -2.478 c @@ -1129,7 +1131,7 @@ Q q 1 0 0 1 191.5 495.7261 cm 0 0 m -0.004 0.004 -0.533 0.573 -0.71 0.862 c --0.568 0.875 -0.483 0.883 -0.265 0.809 c +-0.568 0.875 -0.482 0.883 -0.264 0.809 c -0.18 0.781 -0.083 0.699 -0.025 0.631 c 0.033 0.563 0.091 0.45 0.104 0.362 c 0.135 0.141 0.099 0.019 0.074 -0.062 c @@ -1153,7 +1155,7 @@ q 1 0 0 1 189.876 501.0112 cm 0.15 0.006 0.046 -0.044 0 0 c f Q -
endstream
endobj
949 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
940 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
944 0 obj
<</Subtype/Form/Length 482/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 941 0 R/Resources<</XObject<</Fm0 943 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[156.837 462.278 212.835 406.271]>>stream
+
endstream
endobj
1042 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
1033 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
1037 0 obj
<</Subtype/Form/Length 482/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 1034 0 R/Resources<</XObject<</Fm0 1036 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[156.837 462.278 212.835 406.271]>>stream
q 184.836 446.278 m 184.836 462.278 l @@ -1172,7 +1174,7 @@ q /Fm0 Do Q Q -
endstream
endobj
941 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
943 0 obj
<</Subtype/Form/Length 13525/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 942 0 R/Resources<</ColorSpace<</CS0 889 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[156.837 462.278 212.835 406.271]>>stream
+
endstream
endobj
1034 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
1036 0 obj
<</Subtype/Form/Length 13533/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 1035 0 R/Resources<</ColorSpace<</CS0 982 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[156.837 462.278 212.835 406.271]>>stream
/CS0 cs 0.208 0.337 0.655 scn 1 i /GS0 gs @@ -1199,7 +1201,7 @@ q 1 0 0 1 184.8359 451.4419 cm 6.606 -29.181 12.008 -23.781 11.999 -17.163 c 12.01 -10.555 6.607 -5.153 0 -5.164 c 0 -0.468 l -0.316 -0.694 0.738 -0.996 1.055 -1.223 c +0.316 -0.694 0.738 -0.997 1.055 -1.223 c 3.817 -3.661 7.459 -4.869 10 -7.617 c 12.018 -9.8 13.458 -12.461 14.279 -15.528 c 15.076 -18.507 16.901 -19.346 16.917 -19.348 c @@ -1226,8 +1228,8 @@ q 1 0 0 1 184.8359 453.2891 cm 12.01 -12.402 6.607 -7 0 -7.011 c 0 -5.167 l 0.338 -5.201 0.788 -5.245 1.126 -5.278 c -2.249 -5.476 12.143 -7.557 13.761 -19.538 c -13.896 -20.531 13.436 -21.605 14.171 -22.516 c +2.249 -5.476 12.144 -7.557 13.761 -19.538 c +13.765 -19.565 14.171 -22.516 14.171 -22.516 c 14.636 -23.09 15.724 -23.507 16.459 -23.43 c 20.584 -22.993 26.416 -9.568 15.896 -1.312 c 7.943 4.929 0.035 0.084 0 0 c @@ -1255,7 +1257,7 @@ q 1 0 0 1 184.8359 454.4082 cm 5.587 -8.118 13.156 -12.018 12.674 -22.551 c 12.559 -25.065 12.662 -26.483 12.98 -26.764 c 14.309 -27.938 23.357 -23.699 22.629 -14.042 c -21.27 4.006 1.142 2.02 0 0 c +21.269 4.004 1.142 2.019 0 0 c 0 7.87 l 15.462 7.87 27.999 -4.667 27.999 -20.129 c 27.999 -35.6 15.462 -48.137 0 -48.137 c @@ -1274,7 +1276,7 @@ q 1 0 0 1 184.8359 455.3335 cm -11.368 -29.209 -4.441 -35.048 3.701 -32.84 c 16.505 -28.457 l 19.639 -26.39 21.523 -23.894 22.614 -20.364 c -24.61 -13.908 21.812 -4.74 13.674 -0.575 c +24.61 -13.907 21.812 -4.74 13.674 -0.575 c 6.26 3.219 0.029 0.049 0 0 c 0 6.945 l 15.462 6.945 27.999 -5.592 27.999 -21.054 c @@ -1325,7 +1327,7 @@ q 1 0 0 1 184.8359 457.5 cm -3.111 -1.225 -7.25 -3.37 -10.633 -9.471 c -11.685 -11.368 -15.021 -18.085 -13.796 -24.879 c -12.453 -32.328 -5.461 -39.37 6.714 -37.227 c -28.95 -33.313 28.976 -11.259 15.609 -2.301 c +28.951 -33.313 28.976 -11.259 15.609 -2.301 c 7.856 2.895 0.038 0.056 0 0 c 0 4.778 l 15.462 4.778 27.999 -7.759 27.999 -23.221 c @@ -1341,7 +1343,7 @@ q 1 0 0 1 184.8359 458.1108 cm -0.285 -0.403 -1.085 -0.384 -1.55 -0.549 c -2.14 -0.758 -7.426 -2.783 -11.14 -9.4 c -12.536 -11.888 -15.643 -18.441 -14.343 -25.555 c --13.274 -31.4 -7.567 -40.72 7.05 -38.576 c +-13.275 -31.4 -7.567 -40.72 7.05 -38.576 c 28.069 -35.492 30.907 -13.131 16.17 -2.838 c 7.979 2.883 0.04 0.057 0 0 c 0 4.167 l @@ -1375,8 +1377,8 @@ q 1 0 0 1 184.8359 459.2207 cm -0.327 -0.44 -1.224 -0.37 -1.749 -0.528 c -5.52 -1.667 -9.766 -5.26 -12.073 -9.267 c -15.394 -15.036 -16.522 -20.933 -15.426 -26.792 c --13.856 -35.181 -5.227 -43.018 7.675 -41.021 c -29.388 -37.66 31.678 -13.959 16.092 -3.122 c +-13.856 -35.181 -5.227 -43.019 7.675 -41.021 c +29.387 -37.659 31.678 -13.959 16.092 -3.122 c 8.188 2.374 0.041 0.052 0 0 c 0 3.058 l 15.462 3.058 27.999 -9.479 27.999 -24.941 c @@ -1423,11 +1425,11 @@ Q 0.153 0.251 0.482 scn q 1 0 0 1 184.8359 460.6479 cm 0 0 m --0.165 -0.201 -0.596 -0.119 -0.851 -0.169 c +-0.165 -0.201 -0.596 -0.119 -0.852 -0.169 c -6.63 -1.321 -11.086 -5.48 -13.33 -8.99 c -17.823 -16.018 -17.959 -22.68 -17.283 -27.032 c -15.528 -38.313 -5.353 -45.642 6.913 -44.456 c -29.058 -42.316 33.218 -18.568 18.588 -5.674 c +29.058 -42.316 33.217 -18.568 18.588 -5.674 c 9.722 2.142 0.051 0.062 0 0 c 0 1.63 l 15.462 1.63 27.999 -10.907 27.999 -26.369 c @@ -1444,7 +1446,7 @@ q 1 0 0 1 184.8359 461.0591 cm -5.333 -1.052 -10.598 -4.013 -13.752 -8.857 c -18.474 -16.108 -18.606 -22.979 -17.885 -27.466 c -16.272 -37.507 -7.1 -46.929 7.31 -45.507 c -29.579 -43.31 33.524 -19.12 18.666 -5.999 c +29.58 -43.31 33.524 -19.12 18.666 -5.999 c 9.679 1.938 0.05 0.061 0 0 c 0 1.219 l 15.462 1.219 27.999 -11.318 27.999 -26.78 c @@ -1478,7 +1480,7 @@ q 1 0 0 1 184.8359 461.7397 cm -5.616 -0.798 -11.203 -3.577 -14.553 -8.414 c -20.526 -17.037 -19.484 -25.015 -19.142 -27.636 c -17.325 -41.551 -4.721 -48.305 6.215 -47.597 c -22.827 -46.52 31.84 -32.415 25.896 -16.796 c +22.827 -46.52 31.839 -32.415 25.896 -16.796 c 27.251 -20.083 27.999 -23.685 27.999 -27.46 c 27.999 -42.931 15.462 -55.468 0 -55.468 c -15.462 -55.468 -27.999 -42.931 -27.999 -27.46 c @@ -1557,7 +1559,7 @@ Q q 1 0 0 1 200.7622 436.103 cm 0 0 m -1.706 2.422 -2.871 5.192 -4.806 7.466 c --5.581 8.376 -6.334 9.141 -7.046 9.74 c +-5.581 8.375 -6.334 9.141 -7.046 9.74 c -7.103 9.788 -12.699 14.577 -12.706 14.929 c -12.708 15.035 -10.925 16.753 -10.74 16.825 c -10.058 17.086 -7.544 17.231 -6.875 17.166 c @@ -1575,25 +1577,25 @@ q 1 0 0 1 200.8965 438.5967 cm -5.844 7.601 -6.16 7.969 -6.419 8.224 c -6.913 8.711 -7.551 9.382 -8.074 9.839 c -9.724 11.281 -9.908 11.547 -9.911 11.595 c --9.914 11.657 -8.495 13.252 -8.295 13.411 c --8.132 13.541 -7.808 13.456 -7.601 13.433 c --5.32 13.184 -2.962 12.927 -0.476 10.566 c -2.531 7.709 2.783 5.143 2.904 3.91 c +-9.914 11.655 -8.389 13.369 -8.295 13.411 c +-7.711 13.674 -6.801 13.346 -6.164 13.276 c +-2.962 12.927 -1.156 11.212 -0.476 10.566 c +2.531 7.709 2.783 5.143 2.904 3.909 c 2.938 3.565 2.929 0.875 2.709 0.41 c 2.675 0.337 0.707 -0.875 0.645 -0.861 c 0.33 -0.793 0.182 -0.267 0 0 c f Q 0.224 0.361 0.694 scn -q 1 0 0 1 199.981 442.126 cm +q 1 0 0 1 199.9814 442.126 cm 0 0 m --0.736 0.236 -1.075 1.45 -1.575 2.04 c --3.148 3.894 -3.148 3.894 -3.896 4.678 c --4.212 5.008 -4.839 5.354 -4.922 5.803 c +-0.737 0.235 -1.076 1.45 -1.576 2.04 c +-3.148 3.895 -3.148 3.895 -3.897 4.678 c +-4.212 5.008 -4.84 5.354 -4.922 5.803 c -4.014 7.981 l --3.952 8.007 -1.426 7.15 0.33 5.083 c -1.632 3.552 2.398 0.755 2.281 0.574 c -1.906 -0.01 0.7 -0.197 0.037 0.011 c +-3.953 8.007 -1.427 7.15 0.33 5.083 c +1.631 3.552 2.397 0.755 2.281 0.574 c +1.906 -0.01 0.699 -0.197 0.037 0.011 c 0.026 0.014 0.011 -0.003 0 0 c f Q @@ -1632,7 +1634,7 @@ q 1 0 0 1 184.8359 462.2749 cm 0.701 -0.01 0.211 -0.214 0 0 c f Q -
endstream
endobj
942 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
930 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
934 0 obj
<</Subtype/Form/Length 477/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 931 0 R/Resources<</XObject<</Fm0 933 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[309.171 492.275 321.168 480.278]>>stream
+
endstream
endobj
1035 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
1023 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
1027 0 obj
<</Subtype/Form/Length 477/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 1024 0 R/Resources<</XObject<</Fm0 1026 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[309.171 492.275 321.168 480.278]>>stream
q 315.165 487.275 m 315.165 492.275 l @@ -1651,7 +1653,7 @@ q /Fm0 Do Q Q -
endstream
endobj
931 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
933 0 obj
<</Subtype/Form/Length 11078/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 932 0 R/Resources<</ColorSpace<</CS0 889 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[309.171 492.275 321.168 480.278]>>stream
+
endstream
endobj
1024 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
1026 0 obj
<</Subtype/Form/Length 11079/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 1025 0 R/Resources<</ColorSpace<</CS0 982 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[309.171 492.275 321.168 480.278]>>stream
/CS0 cs 0.2 0.325 0.624 scn 1 i /GS0 gs @@ -1789,7 +1791,7 @@ q 1 0 0 1 315.165 489.1035 cm -0.734 -0.546 -0.993 -1.253 -1.244 -1.936 c -1.353 -2.232 -1.496 -2.812 -1.238 -3.374 c -0.612 -4.739 1.248 -4.146 1.803 -3.932 c -4.138 -3.031 4.266 -0.308 2.51 0.419 c +4.138 -3.031 4.265 -0.308 2.51 0.419 c 1.108 1 0.006 0.012 0 0 c 0 3.172 l 3.312 3.172 6.003 0.49 6.003 -2.831 c @@ -1840,7 +1842,7 @@ q 1 0 0 1 315.165 489.7065 cm -0.751 -0.537 -1.207 -1.436 -1.319 -1.735 c -1.402 -1.96 -1.802 -3.124 -1.467 -3.945 c -0.712 -5.795 1.956 -4.866 1.982 -4.855 c -5.3 -3.58 5.175 -0.371 3.116 0.573 c +5.299 -3.58 5.174 -0.371 3.116 0.573 c 1.411 1.355 0.007 0.017 0 0 c 0 2.569 l 3.312 2.569 6.003 -0.113 6.003 -3.434 c @@ -1910,7 +1912,7 @@ q 1 0 0 1 315.165 491.083 cm -1.149 -1.351 -1.614 -2.354 -1.616 -2.362 c -2.165 -3.906 -2.034 -4.643 -1.834 -5.161 c -0.959 -7.42 1.653 -7.023 2.585 -6.679 c -3.892 -6.198 6.612 -5.195 5.552 -2.522 c +3.892 -6.198 6.61 -5.196 5.552 -2.522 c 5.843 -3.227 6.003 -4 6.003 -4.811 c 6.003 -8.123 3.312 -10.805 0 -10.805 c -3.312 -10.805 -5.994 -8.123 -5.994 -4.811 c @@ -1995,7 +1997,7 @@ q 1 0 0 1 316.7451 486.4531 cm -0.662 0.769 -0.836 0.916 -0.974 1.096 c -1.233 1.432 -1.232 1.599 -1.232 1.6 c -1.226 1.62 -0.028 2.446 0.591 1.368 c -1.026 0.612 0.245 -0.132 0.233 -0.134 c +1.026 0.611 0.245 -0.132 0.233 -0.134 c 0.153 -0.145 0.065 -0.047 0 0 c f Q @@ -2058,7 +2060,7 @@ q 1 0 0 1 315.165 492.2632 cm 0.15 0.006 0.046 -0.044 0 0 c f Q -
endstream
endobj
932 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
922 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
926 0 obj
<</Subtype/Form/Length 473/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 923 0 R/Resources<</XObject<</Fm0 925 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[295.671 461.774 351.669 405.776]>>stream
+
endstream
endobj
1025 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
1015 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
1019 0 obj
<</Subtype/Form/Length 473/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 1016 0 R/Resources<</XObject<</Fm0 1018 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[295.671 461.774 351.669 405.776]>>stream
q 323.67 445.774 m 323.67 461.774 l @@ -2077,7 +2079,7 @@ q /Fm0 Do Q Q -
endstream
endobj
923 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
925 0 obj
<</Subtype/Form/Length 13513/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 924 0 R/Resources<</ColorSpace<</CS0 889 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[295.671 461.774 351.669 405.776]>>stream
+
endstream
endobj
1016 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
1018 0 obj
<</Subtype/Form/Length 13391/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 1017 0 R/Resources<</ColorSpace<</CS0 982 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[295.671 461.774 351.669 405.776]>>stream
/CS0 cs 0.208 0.337 0.655 scn 1 i /GS0 gs @@ -2122,7 +2124,7 @@ Q q 1 0 0 1 323.6699 452.7832 cm 0 0 m -0.297 -0.712 -1.488 -1.167 -1.738 -1.898 c --1.989 -2.637 -2.004 -3.871 -1.531 -4.492 c +-1.989 -2.637 -2.005 -3.871 -1.531 -4.492 c -1.227 -4.891 -0.45 -4.943 0 -5.165 c 0 -7.009 l -6.615 -7 -12.009 -12.397 -11.999 -19.008 c @@ -2157,10 +2159,10 @@ q 1 0 0 1 323.6699 453.9038 cm 12.01 -13.521 6.607 -8.119 0 -8.129 c 0 -7.407 l 0.312 -7.427 0.727 -7.454 1.039 -7.474 c -5.586 -8.118 13.155 -12.017 12.674 -22.547 c +5.586 -8.118 13.154 -12.018 12.674 -22.547 c 12.56 -25.06 12.663 -26.477 12.982 -26.758 c -14.31 -27.928 23.355 -23.682 22.629 -14.041 c -21.271 4 1.142 2.018 0 0 c +14.311 -27.928 23.356 -23.682 22.629 -14.041 c +21.27 3.998 1.142 2.018 0 0 c 0 7.871 l 15.462 7.871 27.999 -4.667 27.999 -20.128 c 27.999 -35.59 15.462 -48.127 0 -48.127 c @@ -2174,8 +2176,8 @@ q 1 0 0 1 323.6699 454.8291 cm 0 0 m -0.223 -0.378 -0.896 -0.494 -1.28 -0.706 c -3.988 -2.198 -4.356 -2.882 -7.222 -8.202 c --10.978 -15.406 l --12.035 -17.648 -12.409 -19.973 -12.123 -22.51 c +-10.979 -15.406 l +-12.035 -17.648 -12.409 -19.972 -12.123 -22.51 c -11.368 -29.204 -4.441 -35.039 3.701 -32.831 c 16.504 -28.45 l 19.64 -26.383 21.524 -23.889 22.614 -20.364 c @@ -2192,12 +2194,9 @@ Q 0.192 0.31 0.596 scn q 1 0 0 1 323.6699 455.6289 cm 0 0 m --0.174 -0.267 -0.682 -0.299 -0.974 -0.428 c --3.272 -1.437 -6.368 -4.312 -7.598 -6.58 c --13.391 -17.255 -13 -20.65 -12.686 -23.378 c --12.045 -28.943 -6.307 -36.331 3.975 -34.516 c -34.372 -29.149 23.201 -7.032 15.417 -1.844 c -7.622 3.352 0.039 0.059 0 0 c +-11.795 -5.181 -18.994 -27.783 -4.636 -33.729 c +5.806 -38.053 30.469 -28.935 22.345 -10.09 c +19.107 -2.58 10.176 3.509 0 0 c 0 6.146 l 15.462 6.146 27.999 -6.392 27.999 -21.854 c 27.999 -37.315 15.462 -49.853 0 -49.853 c @@ -2263,8 +2262,8 @@ q 1 0 0 1 323.6699 458.1792 cm -0.295 -0.407 -1.114 -0.365 -1.591 -0.521 c -3.039 -0.995 -8.059 -3.066 -11.891 -9.807 c -12.952 -11.675 -16.307 -18.377 -14.887 -26.189 c --13.692 -32.762 -6.813 -41.824 7.243 -39.848 c -28.686 -36.834 31.47 -13.846 16.374 -3.144 c +-13.692 -32.762 -6.813 -41.823 7.243 -39.848 c +28.687 -36.834 31.471 -13.847 16.374 -3.144 c 8.08 2.737 0.041 0.056 0 0 c 0 3.595 l 15.462 3.595 27.999 -8.942 27.999 -24.404 c @@ -2281,7 +2280,7 @@ q 1 0 0 1 323.6699 458.7163 cm -5.521 -1.665 -9.768 -5.259 -12.076 -9.267 c -15.396 -15.033 -16.523 -20.929 -15.426 -26.791 c -13.856 -35.175 -5.227 -43.009 7.675 -41.011 c -29.381 -37.65 31.673 -13.956 16.092 -3.122 c +29.382 -37.65 31.673 -13.956 16.092 -3.122 c 8.188 2.374 0.041 0.052 0 0 c 0 3.058 l 15.462 3.058 27.999 -9.479 27.999 -24.941 c @@ -2295,7 +2294,7 @@ Q q 1 0 0 1 323.6699 459.2314 cm 0 0 m -0.315 -0.414 -1.17 -0.321 -1.672 -0.458 c --5.63 -1.542 -10.188 -5.222 -12.512 -9.206 c +-5.63 -1.542 -10.189 -5.222 -12.512 -9.206 c -13.797 -11.409 -17.707 -18.115 -15.958 -27.369 c -14.312 -36.085 -5.369 -44.227 7.962 -42.147 c 29.823 -38.738 32.256 -15.066 16.713 -3.752 c @@ -2382,7 +2381,7 @@ q 1 0 0 1 323.6699 461.2358 cm -0.366 -0.422 -1.291 -0.183 -1.844 -0.262 c -5.618 -0.797 -11.206 -3.577 -14.557 -8.414 c -20.527 -17.033 -19.484 -25.013 -19.142 -27.635 c --17.325 -41.544 -4.721 -48.296 6.215 -47.587 c +-17.325 -41.544 -4.721 -48.297 6.215 -47.587 c 22.825 -46.511 31.838 -32.41 25.896 -16.796 c 27.251 -20.083 27.999 -23.685 27.999 -27.46 c 27.999 -42.922 15.462 -55.459 0 -55.459 c @@ -2438,8 +2437,8 @@ Q 0.122 0.2 0.384 scn q 1 0 0 1 319.437 461.4541 cm 0 0 m --22.53 -4.549 -23.53 -35.024 -6.331 -46.258 c -6.847 -54.865 25.642 -52.171 31.071 -35.682 c +-22.531 -4.549 -23.531 -35.025 -6.331 -46.258 c +6.847 -54.864 25.642 -52.17 31.071 -35.682 c 27.627 -47.245 16.914 -55.678 4.233 -55.678 c -11.238 -55.678 -23.766 -43.141 -23.766 -27.679 c -23.766 -13.386 -13.062 -1.593 0.777 0.109 c @@ -2462,20 +2461,20 @@ Q q 1 0 0 1 339.5962 435.5991 cm 0 0 m -1.706 2.422 -2.871 5.192 -4.806 7.466 c --5.581 8.376 -6.334 9.141 -7.046 9.74 c --7.103 9.788 -12.699 14.576 -12.705 14.929 c +-5.581 8.375 -6.334 9.141 -7.046 9.74 c +-7.103 9.788 -12.699 14.577 -12.705 14.929 c -12.707 15.035 -10.925 16.753 -10.74 16.825 c -10.058 17.086 -7.544 17.231 -6.875 17.166 c -5.111 16.992 -2.438 16.241 0.275 13.649 c 3.79 10.293 4.269 6.382 4.332 5.263 c -4.608 0.362 1.816 -1.552 1.125 -1.426 c +4.608 0.362 1.816 -1.553 1.125 -1.426 c 0.589 -1.328 0.314 -0.445 0 0 c f Q 0.22 0.353 0.682 scn q 1 0 0 1 339.7305 438.0928 cm 0 0 m --1.971 2.884 -3.056 4.472 -4.87 6.595 c +-1.97 2.883 -3.055 4.471 -4.87 6.595 c -5.072 6.832 -5.375 7.116 -5.591 7.34 c -5.844 7.601 -6.16 7.969 -6.419 8.224 c -6.913 8.711 -7.551 9.382 -8.074 9.839 c @@ -2483,29 +2482,29 @@ q 1 0 0 1 339.7305 438.0928 cm -9.914 11.657 -8.495 13.252 -8.295 13.411 c -8.132 13.541 -7.808 13.456 -7.601 13.433 c -5.32 13.184 -2.962 12.927 -0.476 10.566 c -2.531 7.709 2.783 5.143 2.904 3.91 c +2.531 7.709 2.783 5.143 2.904 3.909 c 2.938 3.565 2.929 0.875 2.709 0.41 c 2.675 0.337 0.707 -0.875 0.645 -0.861 c 0.33 -0.793 0.182 -0.267 0 0 c f Q 0.224 0.361 0.694 scn -q 1 0 0 1 338.8149 441.6221 cm +q 1 0 0 1 338.8154 441.6221 cm 0 0 m --0.736 0.235 -1.075 1.45 -1.575 2.04 c --3.148 3.894 -3.148 3.894 -3.896 4.678 c --4.212 5.008 -4.839 5.354 -4.922 5.803 c +-0.737 0.235 -1.076 1.45 -1.576 2.04 c +-3.148 3.894 -3.148 3.894 -3.897 4.678 c +-4.212 5.008 -4.84 5.354 -4.922 5.803 c -4.014 7.981 l --3.952 8.007 -1.426 7.15 0.33 5.083 c -1.632 3.552 2.398 0.755 2.281 0.574 c -1.906 -0.01 0.7 -0.197 0.037 0.011 c +-3.953 8.007 -1.427 7.15 0.33 5.083 c +1.631 3.552 2.397 0.755 2.281 0.574 c +1.906 -0.01 0.699 -0.197 0.037 0.011 c 0.026 0.014 0.011 -0.003 0 0 c f Q 0.141 0.227 0.439 scn q 1 0 0 1 335.7192 459.0469 cm 0 0 m --5.215 2.39 -9.179 2.425 -12.049 2.189 c +-5.275 2.417 -9.403 2.407 -12.049 2.189 c -12.049 2.728 l -6.604 2.728 -1.522 1.173 2.777 -1.517 c 2.232 -1.205 1.506 -0.789 0.961 -0.477 c @@ -2524,7 +2523,7 @@ Q 0.133 0.216 0.412 scn q 1 0 0 1 327.9009 461.4541 cm 0 0 m --2.557 0.263 -2.657 0.273 -4.231 0.228 c +-1.314 0.178 -2.48 0.278 -4.231 0.228 c -4.231 0.32 l -2.431 0.32 -0.671 0.15 1.035 -0.174 c 0.724 -0.122 0.312 -0.042 0 0 c @@ -2537,7 +2536,7 @@ q 1 0 0 1 323.6699 461.771 cm 0.701 -0.01 0.211 -0.214 0 0 c f Q -
endstream
endobj
924 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
912 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
916 0 obj
<</Subtype/Form/Length 478/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 913 0 R/Resources<</XObject<</Fm0 915 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[321.996 217.271 334.002 205.274]>>stream
+
endstream
endobj
1017 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
1005 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
1009 0 obj
<</Subtype/Form/Length 478/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 1006 0 R/Resources<</XObject<</Fm0 1008 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[321.996 217.271 334.002 205.274]>>stream
q 327.999 212.271 m 327.999 217.271 l @@ -2556,8 +2555,8 @@ q /Fm0 Do Q Q -
endstream
endobj
913 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
915 0 obj
<</Subtype/Form/Length 11074/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 914 0 R/Resources<</ColorSpace<</CS0 889 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[321.996 217.271 334.002 205.274]>>stream
-/CS0 cs 0.624 0.2 0.2 scn +
endstream
endobj
1006 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
1008 0 obj
<</Subtype/Form/Length 11068/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 1007 0 R/Resources<</ColorSpace<</CS0 982 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[321.996 217.271 334.002 205.274]>>stream
+/CS0 cs 0.294 0.494 0.133 scn 1 i /GS0 gs q 1 0 0 1 327.999 212.2715 cm @@ -2588,7 +2587,7 @@ q 1 0 0 1 327.999 213.1963 cm 0.142 -0.55 0.184 -0.536 0.21 -0.549 c 1.046 -1.473 l 1.441 -2.153 1.79 -2.106 1.805 -2.104 c -2.058 -2.064 3.185 -0.619 1.901 0.191 c +2.057 -2.064 3.185 -0.619 1.901 0.191 c 1.598 0.383 1.275 0.409 1.132 0.396 c 0 0 l 0 4.075 l @@ -2599,7 +2598,7 @@ q 1 0 0 1 327.999 213.1963 cm 0 0 l f Q -0.612 0.196 0.196 scn +0.286 0.482 0.133 scn q 1 0 0 1 327.999 213.3379 cm 0 0 m -0.03 -0.092 -0.164 -0.17 -0.185 -0.265 c @@ -2620,7 +2619,7 @@ q 1 0 0 1 327.999 213.3379 cm 0 0 l f Q -0.596 0.192 0.192 scn +0.278 0.471 0.129 scn q 1 0 0 1 327.999 213.4785 cm 0 0 m -0.294 -0.83 -1.296 -1.345 -1.079 -2.404 c @@ -2637,7 +2636,7 @@ q 1 0 0 1 327.999 213.4785 cm 0 0 l f Q -0.58 0.188 0.188 scn +0.275 0.459 0.125 scn q 1 0 0 1 327.999 213.6182 cm 0 0 m -0.352 -0.866 -1.383 -1.428 -1.146 -2.558 c @@ -2653,7 +2652,7 @@ q 1 0 0 1 327.999 213.6182 cm 0 0 l f Q -0.569 0.18 0.18 scn +0.267 0.447 0.122 scn q 1 0 0 1 327.999 213.7549 cm 0 0 m -0.193 -0.417 -0.585 -0.691 -0.795 -1.098 c @@ -2670,7 +2669,7 @@ q 1 0 0 1 327.999 213.7549 cm 0 0 l f Q -0.553 0.176 0.176 scn +0.259 0.439 0.118 scn q 1 0 0 1 327.999 213.9082 cm 0 0 m -0.013 -0.025 -0.053 -0.04 -0.076 -0.058 c @@ -2687,7 +2686,7 @@ q 1 0 0 1 327.999 213.9082 cm 0 0 l f Q -0.541 0.173 0.173 scn +0.255 0.427 0.118 scn q 1 0 0 1 327.999 214.0996 cm 0 0 m -0.034 -0.067 -0.142 -0.105 -0.203 -0.15 c @@ -2704,7 +2703,7 @@ q 1 0 0 1 327.999 214.0996 cm 0 0 l f Q -0.525 0.169 0.169 scn +0.247 0.416 0.114 scn q 1 0 0 1 327.999 214.2871 cm 0 0 m -0.037 -0.069 -0.152 -0.104 -0.217 -0.147 c @@ -2721,7 +2720,7 @@ q 1 0 0 1 327.999 214.2871 cm 0 0 l f Q -0.51 0.165 0.165 scn +0.239 0.404 0.11 scn q 1 0 0 1 327.999 214.4717 cm 0 0 m -0.176 -0.317 -0.542 -0.437 -0.748 -0.722 c @@ -2738,7 +2737,7 @@ q 1 0 0 1 327.999 214.4717 cm 0 0 l f Q -0.498 0.161 0.161 scn +0.235 0.392 0.106 scn q 1 0 0 1 327.999 214.7031 cm 0 0 m -0.06 -0.133 -0.265 -0.211 -0.386 -0.291 c @@ -2755,15 +2754,15 @@ q 1 0 0 1 327.999 214.7031 cm 0 0 l f Q -0.482 0.153 0.153 scn +0.227 0.38 0.106 scn q 1 0 0 1 327.999 214.9854 cm 0 0 m -0.04 -0.083 -0.167 -0.135 -0.239 -0.193 c -0.736 -0.594 -1.131 -1.171 -1.412 -1.908 c -1.719 -2.715 -1.736 -3.694 -1.577 -4.139 c -0.858 -6.132 1.881 -5.304 1.908 -5.295 c -5.597 -4.044 5.759 -0.555 3.075 0.691 c -1.838 1.267 0.163 0.34 0 0 c +5.598 -4.044 5.76 -0.555 3.075 0.691 c +1.838 1.266 0.163 0.34 0 0 c 0 2.286 l 3.312 2.286 6.003 -0.396 6.003 -3.708 c 6.003 -7.02 3.312 -9.711 0 -9.711 c @@ -2772,7 +2771,7 @@ q 1 0 0 1 327.999 214.9854 cm 0 0 l f Q -0.467 0.149 0.149 scn +0.22 0.369 0.102 scn q 1 0 0 1 327.999 215.2715 cm 0 0 m -0.045 -0.106 -0.21 -0.167 -0.302 -0.236 c @@ -2789,7 +2788,7 @@ q 1 0 0 1 327.999 215.2715 cm 0 0 l f Q -0.455 0.145 0.145 scn +0.212 0.361 0.098 scn q 1 0 0 1 327.999 215.6543 cm 0 0 m -0.163 -0.361 -0.542 -0.515 -0.779 -0.805 c @@ -2807,7 +2806,7 @@ q 1 0 0 1 327.999 215.6543 cm 0 0 l f Q -0.439 0.141 0.141 scn +0.208 0.349 0.094 scn q 1 0 0 1 327.999 216.0791 cm 0 0 m -0.128 -0.296 -0.442 -0.404 -0.638 -0.631 c @@ -2823,7 +2822,7 @@ q 1 0 0 1 327.999 216.0791 cm 0 0 l f Q -0.427 0.137 0.137 scn +0.2 0.337 0.09 scn q 1 0 0 1 327.999 216.5439 cm 0 0 m -0.037 -0.078 -0.154 -0.129 -0.22 -0.185 c @@ -2838,7 +2837,7 @@ q 1 0 0 1 327.999 216.5439 cm 0 0 l f Q -0.412 0.133 0.133 scn +0.192 0.325 0.09 scn q 1 0 0 1 327.999 216.9863 cm 0 0 m -0.038 -0.066 -0.155 -0.09 -0.221 -0.129 c @@ -2853,7 +2852,7 @@ q 1 0 0 1 327.999 216.9863 cm 0 0 l f Q -0.396 0.125 0.125 scn +0.188 0.314 0.086 scn q 1 0 0 1 327.999 217.2598 cm 0 0 m -0.043 -0.053 -0.154 -0.029 -0.221 -0.042 c @@ -2867,7 +2866,7 @@ q 1 0 0 1 327.999 217.2598 cm 0 0 l f Q -0.384 0.122 0.122 scn +0.18 0.302 0.082 scn q 1 0 0 1 327.0938 217.1953 cm 0 0 m -1.738 -0.59 -1.75 -4.505 -1.75 -4.545 c @@ -2879,7 +2878,7 @@ q 1 0 0 1 327.0938 217.1953 cm 0.115 0.021 0.049 0.013 0 0 c f Q -0.369 0.118 0.118 scn +0.173 0.29 0.078 scn q 1 0 0 1 325.7642 216.7715 cm 0 0 m -1.064 -0.938 -0.813 -4.867 -0.541 -5.6 c @@ -2893,10 +2892,10 @@ q 1 0 0 1 325.7642 216.7715 cm 0.161 0.102 0.061 0.054 0 0 c f Q -0.639 0.204 0.204 scn +0.302 0.506 0.137 scn q 1 0 0 1 329.5791 211.4561 cm 0 0 m --0.096 0.068 -0.096 0.068 -0.519 0.587 c +-0.095 0.068 -0.095 0.068 -0.519 0.587 c -0.661 0.762 -0.834 0.909 -0.973 1.089 c -1.125 1.286 -1.231 1.594 y -1.226 1.612 -0.029 2.438 0.592 1.362 c @@ -2904,7 +2903,7 @@ q 1 0 0 1 329.5791 211.4561 cm 0.153 -0.144 0.065 -0.047 0 0 c f Q -0.439 0.141 0.141 scn +0.208 0.349 0.094 scn q 1 0 0 1 330.5688 216.6631 cm 0 0 m -1.295 0.462 -2.254 -0.325 -2.57 -0.584 c @@ -2914,7 +2913,7 @@ q 1 0 0 1 330.5688 216.6631 cm 0.219 -0.095 0.096 -0.034 0 0 c f Q -0.655 0.208 0.208 scn +0.306 0.518 0.141 scn q 1 0 0 1 329.6191 211.708 cm 0 0 m -0.335 0.354 l @@ -2925,7 +2924,7 @@ q 1 0 0 1 329.6191 211.708 cm 0.106 -0.131 0.048 -0.039 0 0 c f Q -0.427 0.137 0.137 scn +0.2 0.337 0.09 scn q 1 0 0 1 329.7661 216.9941 cm 0 0 m -0.649 0.12 -1.161 -0.01 -1.767 -0.45 c @@ -2935,7 +2934,7 @@ q 1 0 0 1 329.7661 216.9941 cm 0.02 -0.005 0.009 -0.002 0 0 c f Q -0.667 0.216 0.216 scn +0.314 0.525 0.145 scn q 1 0 0 1 329.623 211.9746 cm 0 0 m -0.004 0.004 -0.533 0.572 -0.71 0.861 c @@ -2946,7 +2945,7 @@ q 1 0 0 1 329.623 211.9746 cm 0.052 -0.044 0.021 -0.021 0 0 c f Q -0.412 0.133 0.133 scn +0.192 0.325 0.09 scn q 1 0 0 1 328.9043 217.1943 cm 0 0 m -0.314 -0.006 -0.487 -0.009 -0.905 -0.208 c @@ -2955,7 +2954,7 @@ q 1 0 0 1 328.9043 217.1943 cm 0.157 -0.021 0.068 -0.004 0 0 c f Q -0.396 0.125 0.125 scn +0.188 0.314 0.086 scn q 1 0 0 1 327.999 217.2598 cm 0 0 m 0 0.012 l @@ -2963,7 +2962,7 @@ q 1 0 0 1 327.999 217.2598 cm 0.15 0.006 0.046 -0.045 0 0 c f Q -
endstream
endobj
914 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
905 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
909 0 obj
<</Subtype/Form/Length 475/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 906 0 R/Resources<</XObject<</Fm0 908 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[306.003 319.277 362.001 263.279]>>stream
+
endstream
endobj
1007 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
998 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
1002 0 obj
<</Subtype/Form/Length 475/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 999 0 R/Resources<</XObject<</Fm0 1001 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[306.003 319.277 362.001 263.279]>>stream
q 334.002 303.277 m 334.002 319.277 l @@ -2982,8 +2981,8 @@ q /Fm0 Do Q Q -
endstream
endobj
906 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
908 0 obj
<</Subtype/Form/Length 13488/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 907 0 R/Resources<</ColorSpace<</CS0 889 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[306.003 319.277 362.001 263.279]>>stream
-/CS0 cs 0.655 0.208 0.208 scn +
endstream
endobj
999 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
1001 0 obj
<</Subtype/Form/Length 13469/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 1000 0 R/Resources<</ColorSpace<</CS0 982 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[306.003 319.277 362.001 263.279]>>stream
+/CS0 cs 0.306 0.518 0.141 scn 1 i /GS0 gs q 1 0 0 1 334.002 303.2773 cm @@ -3023,7 +3022,7 @@ q 1 0 0 1 334.002 308.4409 cm 0 0 l f Q -0.639 0.204 0.204 scn +0.302 0.506 0.137 scn q 1 0 0 1 334.002 310.2881 cm 0 0 m -0.296 -0.712 -1.487 -1.168 -1.735 -1.898 c @@ -3049,7 +3048,7 @@ q 1 0 0 1 334.002 310.2881 cm 0 0 l f Q -0.624 0.2 0.2 scn +0.294 0.494 0.133 scn q 1 0 0 1 334.002 311.4072 cm 0 0 m -0.627 -1.109 -1.866 -1.525 -2.708 -2.391 c @@ -3064,7 +3063,7 @@ q 1 0 0 1 334.002 311.4072 cm 0.312 -7.428 0.727 -7.455 1.039 -7.475 c 5.587 -8.118 13.155 -12.018 12.674 -22.55 c 12.559 -25.063 12.663 -26.479 12.981 -26.762 c -14.31 -27.933 23.356 -23.689 22.629 -14.042 c +14.31 -27.933 23.356 -23.69 22.629 -14.042 c 21.27 4.006 1.142 2.02 0 0 c 0 7.87 l 15.462 7.87 27.999 -4.667 27.999 -20.129 c @@ -3074,12 +3073,12 @@ q 1 0 0 1 334.002 311.4072 cm 0 0 l f Q -0.612 0.196 0.196 scn +0.286 0.482 0.133 scn q 1 0 0 1 334.002 312.3325 cm 0 0 m -0.223 -0.377 -0.896 -0.494 -1.279 -0.706 c -3.984 -2.198 -4.352 -2.882 -7.218 -8.204 c --10.977 -15.407 l +-10.978 -15.407 l -12.034 -17.649 -12.409 -19.973 -12.123 -22.511 c -11.368 -29.203 -4.44 -35.038 3.702 -32.832 c 16.504 -28.455 l @@ -3094,7 +3093,7 @@ q 1 0 0 1 334.002 312.3325 cm 0 0 l f Q -0.596 0.192 0.192 scn +0.278 0.471 0.129 scn q 1 0 0 1 334.002 313.1323 cm 0 0 m -0.174 -0.267 -0.682 -0.3 -0.974 -0.428 c @@ -3111,14 +3110,14 @@ q 1 0 0 1 334.002 313.1323 cm 0 0 l f Q -0.58 0.188 0.188 scn +0.275 0.459 0.125 scn q 1 0 0 1 334.002 313.833 cm 0 0 m -0.26 -0.393 -1.01 -0.429 -1.443 -0.612 c -4.281 -1.817 -7.531 -4.969 -9.346 -8.278 c -13.499 -15.849 -13.757 -21.087 -13.243 -24.146 c -12.334 -29.559 -7.254 -38.113 6.021 -35.853 c -29.653 -31.827 27.567 -10.229 15.691 -2.188 c +29.652 -31.827 27.567 -10.229 15.691 -2.188 c 7.725 3.206 0.039 0.058 0 0 c 0 5.444 l 15.462 5.444 27.999 -7.093 27.999 -22.555 c @@ -3128,7 +3127,7 @@ q 1 0 0 1 334.002 313.833 cm 0 0 l f Q -0.569 0.18 0.18 scn +0.267 0.447 0.122 scn q 1 0 0 1 334.002 314.499 cm 0 0 m -0.27 -0.397 -1.042 -0.411 -1.488 -0.586 c @@ -3145,7 +3144,7 @@ q 1 0 0 1 334.002 314.499 cm 0 0 l f Q -0.553 0.176 0.176 scn +0.259 0.439 0.118 scn q 1 0 0 1 334.002 315.1099 cm 0 0 m -0.285 -0.403 -1.085 -0.384 -1.55 -0.549 c @@ -3162,14 +3161,14 @@ q 1 0 0 1 334.002 315.1099 cm 0 0 l f Q -0.541 0.173 0.173 scn +0.255 0.427 0.118 scn q 1 0 0 1 334.002 315.6826 cm 0 0 m -0.294 -0.407 -1.113 -0.365 -1.59 -0.521 c -3.037 -0.996 -8.057 -3.068 -11.887 -9.807 c -12.95 -11.677 -16.306 -18.383 -14.886 -26.191 c -13.691 -32.763 -6.811 -41.823 7.247 -39.848 c -28.689 -36.835 31.471 -13.847 16.374 -3.144 c +28.69 -36.835 31.472 -13.848 16.374 -3.144 c 8.08 2.736 0.041 0.056 0 0 c 0 3.595 l 15.462 3.595 27.999 -8.942 27.999 -24.404 c @@ -3179,7 +3178,7 @@ q 1 0 0 1 334.002 315.6826 cm 0 0 l f Q -0.525 0.169 0.169 scn +0.247 0.416 0.114 scn q 1 0 0 1 334.002 316.2197 cm 0 0 m -0.327 -0.44 -1.224 -0.37 -1.749 -0.528 c @@ -3196,7 +3195,7 @@ q 1 0 0 1 334.002 316.2197 cm 0 0 l f Q -0.51 0.165 0.165 scn +0.239 0.404 0.11 scn q 1 0 0 1 334.002 316.7344 cm 0 0 m -0.315 -0.413 -1.169 -0.321 -1.671 -0.458 c @@ -3213,7 +3212,7 @@ q 1 0 0 1 334.002 316.7344 cm 0 0 l f Q -0.498 0.161 0.161 scn +0.235 0.392 0.106 scn q 1 0 0 1 334.002 317.207 cm 0 0 m -0.326 -0.417 -1.197 -0.297 -1.71 -0.424 c @@ -3230,14 +3229,14 @@ q 1 0 0 1 334.002 317.207 cm 0 0 l f Q -0.482 0.153 0.153 scn +0.227 0.38 0.106 scn q 1 0 0 1 334.002 317.647 cm 0 0 m --0.165 -0.201 -0.596 -0.119 -0.851 -0.169 c +-0.165 -0.201 -0.596 -0.119 -0.852 -0.169 c -6.63 -1.321 -11.086 -5.48 -13.33 -8.99 c -17.824 -16.019 -17.96 -22.681 -17.283 -27.032 c --15.527 -38.307 -5.35 -45.631 6.918 -44.447 c -29.057 -42.308 33.215 -18.565 18.588 -5.674 c +-15.528 -38.307 -5.35 -45.631 6.918 -44.447 c +29.057 -42.308 33.214 -18.565 18.588 -5.674 c 9.722 2.142 0.051 0.062 0 0 c 0 1.63 l 15.462 1.63 27.999 -10.907 27.999 -26.369 c @@ -3247,7 +3246,7 @@ q 1 0 0 1 334.002 317.647 cm 0 0 l f Q -0.467 0.149 0.149 scn +0.22 0.369 0.102 scn q 1 0 0 1 334.002 318.0581 cm 0 0 m -0.345 -0.419 -1.243 -0.245 -1.775 -0.35 c @@ -3264,7 +3263,7 @@ q 1 0 0 1 334.002 318.0581 cm 0 0 l f Q -0.455 0.145 0.145 scn +0.212 0.361 0.098 scn q 1 0 0 1 334.002 318.4131 cm 0 0 m -0.359 -0.424 -1.279 -0.213 -1.827 -0.305 c @@ -3281,7 +3280,7 @@ q 1 0 0 1 334.002 318.4131 cm 0 0 l f Q -0.439 0.141 0.141 scn +0.208 0.349 0.094 scn q 1 0 0 1 334.002 318.7388 cm 0 0 m -0.366 -0.422 -1.29 -0.183 -1.842 -0.262 c @@ -3296,7 +3295,7 @@ q 1 0 0 1 334.002 318.7388 cm 0 0 l f Q -0.427 0.137 0.137 scn +0.2 0.337 0.09 scn q 1 0 0 1 334.002 318.9941 cm 0 0 m -0.38 -0.425 -1.322 -0.147 -1.889 -0.211 c @@ -3311,7 +3310,7 @@ q 1 0 0 1 334.002 318.9941 cm 0 0 l f Q -0.412 0.133 0.133 scn +0.192 0.325 0.09 scn q 1 0 0 1 334.002 319.1851 cm 0 0 m -0.389 -0.421 -1.333 -0.109 -1.905 -0.156 c @@ -3326,7 +3325,7 @@ q 1 0 0 1 334.002 319.1851 cm 0 0 l f Q -0.396 0.125 0.125 scn +0.188 0.314 0.086 scn q 1 0 0 1 334.002 319.2739 cm 0 0 m -0.403 -0.423 -1.362 -0.067 -1.945 -0.096 c @@ -3340,19 +3339,18 @@ q 1 0 0 1 334.002 319.2739 cm 0 0 l f Q -0.384 0.122 0.122 scn +0.18 0.302 0.082 scn q 1 0 0 1 329.771 318.957 cm 0 0 m --22.131 -3.785 -23.922 -33.441 -7.507 -45.461 c -5.397 -54.909 25.482 -52.656 31.069 -35.688 c +-22.534 -4.552 -23.533 -35.028 -6.33 -46.26 c +6.848 -54.863 25.642 -52.17 31.069 -35.688 c 27.625 -47.252 16.911 -55.678 4.231 -55.678 c -11.231 -55.678 -23.768 -43.149 -23.768 -27.679 c -23.768 -13.386 -13.055 -1.592 0.778 0.109 c -0.778 0.109 l -0.545 0.077 0.232 0.04 0 0 c +0.544 0.077 0.232 0.04 0 0 c f Q -0.369 0.118 0.118 scn +0.173 0.29 0.078 scn q 1 0 0 1 321.978 316.4971 cm 0 0 m -16.565 -9.063 -17.347 -40.195 9.314 -48.713 c @@ -3364,21 +3362,21 @@ q 1 0 0 1 321.978 316.4971 cm 1.31 0.61 0.543 0.297 0 0 c f Q -0.667 0.216 0.216 scn -q 1 0 0 1 349.9287 293.1025 cm +0.314 0.525 0.145 scn +q 1 0 0 1 349.9282 293.1025 cm 0 0 m --1.706 2.422 -2.872 5.191 -4.807 7.466 c --5.581 8.375 -6.334 9.14 -7.046 9.739 c --7.103 9.787 -12.7 14.576 -12.706 14.928 c --12.708 15.034 -10.926 16.753 -10.74 16.824 c --10.059 17.085 -7.544 17.231 -6.876 17.165 c --5.112 16.991 -2.439 16.24 0.274 13.649 c +-1.706 2.422 -2.871 5.191 -4.806 7.466 c +-5.58 8.375 -6.333 9.14 -7.046 9.739 c +-7.103 9.787 -12.7 14.578 -12.706 14.928 c +-12.708 15.034 -10.925 16.753 -10.74 16.824 c +-10.058 17.085 -7.544 17.231 -6.875 17.165 c +-5.111 16.991 -2.438 16.24 0.275 13.649 c 3.79 10.292 4.269 6.381 4.332 5.263 c -4.607 0.361 1.816 -1.553 1.124 -1.426 c -0.588 -1.328 0.313 -0.446 0 0 c +4.608 0.361 1.816 -1.553 1.125 -1.426 c +0.589 -1.328 0.314 -0.446 0 0 c f Q -0.682 0.22 0.22 scn +0.322 0.537 0.145 scn q 1 0 0 1 350.0625 295.5957 cm 0 0 m -1.97 2.883 -3.056 4.472 -4.87 6.595 c @@ -3386,29 +3384,29 @@ q 1 0 0 1 350.0625 295.5957 cm -5.844 7.601 -6.16 7.969 -6.419 8.224 c -6.913 8.711 -7.551 9.382 -8.074 9.839 c -9.724 11.281 -9.908 11.547 -9.911 11.595 c --9.914 11.657 -8.495 13.252 -8.295 13.411 c --8.132 13.541 -7.808 13.456 -7.601 13.433 c --5.32 13.184 -2.962 12.927 -0.476 10.566 c -2.531 7.709 2.783 5.143 2.904 3.91 c +-9.914 11.655 -8.389 13.369 -8.295 13.411 c +-7.711 13.674 -6.801 13.346 -6.164 13.276 c +-2.962 12.927 -1.156 11.212 -0.476 10.566 c +2.531 7.709 2.783 5.143 2.904 3.909 c 2.938 3.565 2.929 0.875 2.709 0.41 c 2.675 0.337 0.707 -0.874 0.645 -0.861 c 0.33 -0.793 0.182 -0.267 0 0 c f Q -0.694 0.224 0.224 scn -q 1 0 0 1 349.147 299.125 cm +0.325 0.549 0.149 scn +q 1 0 0 1 349.1475 299.125 cm 0 0 m --0.736 0.236 -1.075 1.45 -1.575 2.04 c --3.148 3.894 -3.148 3.894 -3.896 4.678 c --4.212 5.008 -4.839 5.354 -4.922 5.803 c +-0.737 0.235 -1.076 1.45 -1.576 2.04 c +-3.148 3.894 -3.148 3.894 -3.897 4.678 c +-4.212 5.008 -4.84 5.354 -4.922 5.803 c -4.014 7.981 l --3.952 8.007 -1.426 7.15 0.33 5.083 c -1.632 3.552 2.398 0.755 2.281 0.574 c -1.906 -0.01 0.7 -0.197 0.037 0.011 c +-3.953 8.007 -1.427 7.15 0.33 5.083 c +1.631 3.552 2.397 0.755 2.281 0.574 c +1.906 -0.01 0.699 -0.197 0.037 0.011 c 0.026 0.014 0.011 -0.003 0 0 c f Q -0.439 0.141 0.141 scn +0.208 0.349 0.094 scn q 1 0 0 1 346.0513 316.5498 cm 0 0 m -5.275 2.417 -9.403 2.407 -12.049 2.189 c @@ -3418,7 +3416,7 @@ q 1 0 0 1 346.0513 316.5498 cm 0.673 -0.334 0.292 -0.134 0 0 c f Q -0.427 0.137 0.137 scn +0.2 0.337 0.09 scn q 1 0 0 1 342.2651 318.0342 cm 0 0 m -3.078 0.794 -4.478 1.111 -8.263 0.96 c @@ -3427,7 +3425,7 @@ q 1 0 0 1 342.2651 318.0342 cm 0.981 -0.329 0.425 -0.126 0 0 c f Q -0.412 0.133 0.133 scn +0.192 0.325 0.09 scn q 1 0 0 1 338.2329 318.957 cm 0 0 m -2.557 0.263 -2.657 0.273 -4.231 0.228 c @@ -3436,14 +3434,14 @@ q 1 0 0 1 338.2329 318.957 cm 0.724 -0.122 0.312 -0.042 0 0 c f Q -0.396 0.125 0.125 scn +0.188 0.314 0.086 scn q 1 0 0 1 334.002 319.2739 cm 0 0 m 0.335 0.003 0.669 -0.002 1.001 -0.014 c 0.701 -0.01 0.211 -0.214 0 0 c f Q -
endstream
endobj
907 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
895 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
899 0 obj
<</Subtype/Form/Length 481/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 896 0 R/Resources<</XObject<</Fm0 898 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[180.624 223.274 192.621 211.277]>>stream
+
endstream
endobj
1000 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
988 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
992 0 obj
<</Subtype/Form/Length 481/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 989 0 R/Resources<</XObject<</Fm0 991 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[180.624 223.274 192.621 211.277]>>stream
q 186.627 218.274 m 186.627 223.274 l @@ -3462,8 +3460,8 @@ q /Fm0 Do Q Q -
endstream
endobj
896 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
898 0 obj
<</Subtype/Form/Length 11026/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 897 0 R/Resources<</ColorSpace<</CS0 889 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[180.624 223.274 192.621 211.277]>>stream
-/CS0 cs 0.624 0.2 0.2 scn +
endstream
endobj
989 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
991 0 obj
<</Subtype/Form/Length 11020/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 990 0 R/Resources<</ColorSpace<</CS0 982 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[180.624 223.274 192.621 211.277]>>stream
+/CS0 cs 0.294 0.494 0.133 scn 1 i /GS0 gs q 1 0 0 1 186.627 218.2744 cm @@ -3505,14 +3503,14 @@ q 1 0 0 1 186.627 219.1992 cm 0 0 l f Q -0.612 0.196 0.196 scn +0.286 0.482 0.133 scn q 1 0 0 1 186.627 219.3418 cm 0 0 m -0.03 -0.093 -0.164 -0.171 -0.185 -0.266 c -0.222 -0.434 -0.125 -0.678 -0.187 -0.838 c -0.188 -0.839 -0.237 -0.941 -0.403 -1.05 c -1.157 -1.54 -1.045 -2.159 -0.993 -2.338 c --0.813 -2.951 -0.139 -3.261 0.448 -2.999 c +-0.812 -2.951 -0.139 -3.261 0.448 -2.999 c 0.646 -2.911 0.784 -2.775 0.866 -2.694 c 1.137 -2.427 1.542 -2.629 1.829 -2.42 c 2.42 -1.988 2.555 -1.604 2.619 -1.418 c @@ -3526,7 +3524,7 @@ q 1 0 0 1 186.627 219.3418 cm 0 0 l f Q -0.596 0.192 0.192 scn +0.278 0.471 0.129 scn q 1 0 0 1 186.627 219.4824 cm 0 0 m -0.295 -0.834 -1.295 -1.352 -1.079 -2.413 c @@ -3542,7 +3540,7 @@ q 1 0 0 1 186.627 219.4824 cm 0 0 l f Q -0.58 0.188 0.188 scn +0.275 0.459 0.125 scn q 1 0 0 1 186.627 219.6211 cm 0 0 m -0.353 -0.868 -1.382 -1.434 -1.146 -2.564 c @@ -3558,7 +3556,7 @@ q 1 0 0 1 186.627 219.6211 cm 0 0 l f Q -0.569 0.18 0.18 scn +0.267 0.447 0.122 scn q 1 0 0 1 186.627 219.7588 cm 0 0 m -0.193 -0.418 -0.584 -0.692 -0.794 -1.099 c @@ -3575,7 +3573,7 @@ q 1 0 0 1 186.627 219.7588 cm 0 0 l f Q -0.553 0.176 0.176 scn +0.259 0.439 0.118 scn q 1 0 0 1 186.627 219.9111 cm 0 0 m -0.013 -0.025 -0.053 -0.04 -0.076 -0.058 c @@ -3592,7 +3590,7 @@ q 1 0 0 1 186.627 219.9111 cm 0 0 l f Q -0.541 0.173 0.173 scn +0.255 0.427 0.118 scn q 1 0 0 1 186.627 220.1025 cm 0 0 m -0.034 -0.067 -0.142 -0.105 -0.203 -0.15 c @@ -3609,7 +3607,7 @@ q 1 0 0 1 186.627 220.1025 cm 0 0 l f Q -0.525 0.169 0.169 scn +0.247 0.416 0.114 scn q 1 0 0 1 186.627 220.291 cm 0 0 m -0.037 -0.07 -0.152 -0.104 -0.217 -0.148 c @@ -3626,7 +3624,7 @@ q 1 0 0 1 186.627 220.291 cm 0 0 l f Q -0.51 0.165 0.165 scn +0.239 0.404 0.11 scn q 1 0 0 1 186.627 220.4746 cm 0 0 m -0.175 -0.316 -0.542 -0.436 -0.748 -0.721 c @@ -3643,7 +3641,7 @@ q 1 0 0 1 186.627 220.4746 cm 0 0 l f Q -0.498 0.161 0.161 scn +0.235 0.392 0.106 scn q 1 0 0 1 186.627 220.7061 cm 0 0 m -0.06 -0.132 -0.265 -0.211 -0.386 -0.291 c @@ -3660,11 +3658,11 @@ q 1 0 0 1 186.627 220.7061 cm 0 0 l f Q -0.482 0.153 0.153 scn +0.227 0.38 0.106 scn q 1 0 0 1 186.627 220.9883 cm 0 0 m -0.04 -0.083 -0.167 -0.135 -0.239 -0.193 c --0.735 -0.594 -1.129 -1.171 -1.41 -1.909 c +-0.735 -0.593 -1.129 -1.17 -1.41 -1.909 c -1.685 -2.632 -1.76 -3.635 -1.577 -4.146 c -0.866 -6.126 1.876 -5.311 1.903 -5.301 c 5.874 -3.976 5.345 -0.496 3.416 0.521 c @@ -3677,7 +3675,7 @@ q 1 0 0 1 186.627 220.9883 cm 0 0 l f Q -0.467 0.149 0.149 scn +0.22 0.369 0.102 scn q 1 0 0 1 186.627 221.2744 cm 0 0 m -0.045 -0.106 -0.21 -0.167 -0.303 -0.236 c @@ -3694,7 +3692,7 @@ q 1 0 0 1 186.627 221.2744 cm 0 0 l f Q -0.455 0.145 0.145 scn +0.212 0.361 0.098 scn q 1 0 0 1 186.627 221.6582 cm 0 0 m -0.163 -0.362 -0.542 -0.515 -0.779 -0.805 c @@ -3712,7 +3710,7 @@ q 1 0 0 1 186.627 221.6582 cm 0 0 l f Q -0.439 0.141 0.141 scn +0.208 0.349 0.094 scn q 1 0 0 1 186.627 222.082 cm 0 0 m -0.128 -0.296 -0.442 -0.404 -0.638 -0.631 c @@ -3720,7 +3718,7 @@ q 1 0 0 1 186.627 222.082 cm -1.147 -1.346 -1.619 -2.354 -1.622 -2.361 c -2.173 -3.904 -2.042 -4.642 -1.843 -5.159 c -0.967 -7.426 1.647 -7.027 2.581 -6.683 c -3.886 -6.201 6.602 -5.199 5.542 -2.518 c +3.886 -6.201 6.602 -5.198 5.542 -2.518 c 5.833 -3.224 5.994 -3.998 5.994 -4.811 c 5.994 -8.123 3.312 -10.805 0 -10.805 c -3.312 -10.805 -6.003 -8.123 -6.003 -4.811 c @@ -3728,7 +3726,7 @@ q 1 0 0 1 186.627 222.082 cm 0 0 l f Q -0.427 0.137 0.137 scn +0.2 0.337 0.09 scn q 1 0 0 1 186.627 222.5469 cm 0 0 m -0.037 -0.078 -0.154 -0.129 -0.22 -0.185 c @@ -3743,7 +3741,7 @@ q 1 0 0 1 186.627 222.5469 cm 0 0 l f Q -0.412 0.133 0.133 scn +0.192 0.325 0.09 scn q 1 0 0 1 186.627 222.9893 cm 0 0 m -0.038 -0.066 -0.155 -0.09 -0.221 -0.129 c @@ -3758,21 +3756,21 @@ q 1 0 0 1 186.627 222.9893 cm 0 0 l f Q -0.396 0.125 0.125 scn +0.188 0.314 0.086 scn q 1 0 0 1 186.627 223.2627 cm 0 0 m -0.043 -0.052 -0.154 -0.029 -0.221 -0.042 c -0.696 -0.133 -1.347 -0.689 -1.732 -1.731 c -2.576 -4.018 -2.459 -5.555 -2.314 -6.268 c -1.868 -8.458 0.839 -8.7 1.752 -8.612 c -4.208 -8.376 5.691 -8.233 5.942 -6.786 c +4.209 -8.376 5.692 -8.233 5.942 -6.786 c 5.553 -9.723 3.042 -11.985 0 -11.985 c -3.312 -11.985 -6.003 -9.304 -6.003 -5.991 c -6.003 -2.67 -3.312 0.012 0 0.012 c 0 0 l f Q -0.384 0.122 0.122 scn +0.18 0.302 0.082 scn q 1 0 0 1 185.7217 223.1973 cm 0 0 m -1.735 -0.588 -1.748 -4.507 -1.748 -4.547 c @@ -3784,7 +3782,7 @@ q 1 0 0 1 185.7217 223.1973 cm 0.115 0.022 0.049 0.014 0 0 c f Q -0.369 0.118 0.118 scn +0.173 0.29 0.078 scn q 1 0 0 1 184.3926 222.7744 cm 0 0 m -1.065 -0.939 -0.813 -4.875 -0.541 -5.608 c @@ -3798,10 +3796,10 @@ q 1 0 0 1 184.3926 222.7744 cm 0.161 0.103 0.062 0.054 0 0 c f Q -0.639 0.204 0.204 scn +0.302 0.506 0.137 scn q 1 0 0 1 188.1982 217.4531 cm 0 0 m --0.089 0.065 -0.089 0.065 -0.518 0.595 c +-0.089 0.064 -0.089 0.064 -0.518 0.595 c -0.66 0.77 -0.832 0.916 -0.969 1.096 c -1.153 1.336 -1.228 1.588 -1.225 1.6 c -1.219 1.619 -0.023 2.449 0.592 1.369 c @@ -3809,7 +3807,7 @@ q 1 0 0 1 188.1982 217.4531 cm 0.153 -0.145 0.065 -0.047 0 0 c f Q -0.439 0.141 0.141 scn +0.208 0.349 0.094 scn q 1 0 0 1 189.1953 222.666 cm 0 0 m -1.292 0.462 -2.253 -0.325 -2.568 -0.584 c @@ -3819,7 +3817,7 @@ q 1 0 0 1 189.1953 222.666 cm 0.215 -0.093 0.095 -0.034 0 0 c f Q -0.655 0.208 0.208 scn +0.306 0.518 0.141 scn q 1 0 0 1 188.2393 217.709 cm 0 0 m -0.336 0.357 l @@ -3830,7 +3828,7 @@ q 1 0 0 1 188.2393 217.709 cm 0.105 -0.132 0.047 -0.039 0 0 c f Q -0.427 0.137 0.137 scn +0.2 0.337 0.09 scn q 1 0 0 1 188.3931 222.9971 cm 0 0 m -0.649 0.121 -1.161 -0.01 -1.766 -0.45 c @@ -3840,7 +3838,7 @@ q 1 0 0 1 188.3931 222.9971 cm 0.019 -0.004 0.008 -0.001 0 0 c f Q -0.667 0.216 0.216 scn +0.314 0.525 0.145 scn q 1 0 0 1 188.2437 217.9775 cm 0 0 m -0.004 0.005 -0.532 0.572 -0.709 0.863 c @@ -3851,7 +3849,7 @@ q 1 0 0 1 188.2437 217.9775 cm 0.049 -0.041 0.02 -0.02 0 0 c f Q -0.412 0.133 0.133 scn +0.192 0.325 0.09 scn q 1 0 0 1 187.5317 223.1973 cm 0 0 m -0.313 -0.006 -0.486 -0.009 -0.905 -0.208 c @@ -3860,7 +3858,7 @@ q 1 0 0 1 187.5317 223.1973 cm 0.157 -0.021 0.068 -0.004 0 0 c f Q -0.396 0.125 0.125 scn +0.188 0.314 0.086 scn q 1 0 0 1 186.627 223.2627 cm 0 0 m 0 0.012 l @@ -3868,7 +3866,7 @@ q 1 0 0 1 186.627 223.2627 cm 0.15 0.006 0.046 -0.045 0 0 c f Q -
endstream
endobj
897 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
886 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
892 0 obj
<</Subtype/Form/Length 450/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 887 0 R/Resources<</XObject<</Fm0 891 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[155.001 324.272 210.999 268.274]>>stream
+
endstream
endobj
990 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
979 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
985 0 obj
<</Subtype/Form/Length 450/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 980 0 R/Resources<</XObject<</Fm0 984 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[155.001 324.272 210.999 268.274]>>stream
q 183 308.272 m 183 324.272 l @@ -3887,8 +3885,8 @@ q /Fm0 Do Q Q -
endstream
endobj
887 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
891 0 obj
<</Subtype/Form/Length 13396/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 888 0 R/Resources<</ColorSpace<</CS0 889 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[155.001 324.272 210.999 268.274]>>stream
-/CS0 cs 0.655 0.208 0.208 scn +
endstream
endobj
980 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
984 0 obj
<</Subtype/Form/Length 13394/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 981 0 R/Resources<</ColorSpace<</CS0 982 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[155.001 324.272 210.999 268.274]>>stream
+/CS0 cs 0.306 0.518 0.141 scn 1 i /GS0 gs q 1 0 0 1 183 308.2725 cm @@ -3914,7 +3912,7 @@ q 1 0 0 1 183 313.436 cm 6.607 -29.172 12.01 -23.77 11.999 -17.163 c 12.01 -10.555 6.607 -5.153 0 -5.164 c 0 -0.468 l -0.316 -0.694 0.738 -0.996 1.055 -1.223 c +0.316 -0.694 0.738 -0.997 1.055 -1.223 c 3.817 -3.661 7.459 -4.869 10 -7.617 c 12.018 -9.8 13.458 -12.461 14.279 -15.528 c 15.091 -18.562 16.901 -19.343 16.918 -19.345 c @@ -3928,7 +3926,7 @@ q 1 0 0 1 183 313.436 cm 0 0 l f Q -0.639 0.204 0.204 scn +0.302 0.506 0.137 scn q 1 0 0 1 183 315.2832 cm 0 0 m -0.296 -0.712 -1.487 -1.168 -1.735 -1.898 c @@ -3941,7 +3939,7 @@ q 1 0 0 1 183 315.2832 cm 12.01 -12.402 6.607 -7 0 -7.011 c 0 -5.167 l 0.338 -5.201 0.788 -5.245 1.126 -5.278 c -2.249 -5.476 12.141 -7.556 13.761 -19.537 c +2.249 -5.476 12.142 -7.556 13.761 -19.537 c 14.172 -22.51 l 14.637 -23.085 15.725 -23.501 16.46 -23.424 c 20.584 -22.987 26.414 -9.567 15.896 -1.312 c @@ -3954,7 +3952,7 @@ q 1 0 0 1 183 315.2832 cm 0 0 l f Q -0.624 0.2 0.2 scn +0.294 0.494 0.133 scn q 1 0 0 1 183 316.4023 cm 0 0 m -0.627 -1.109 -1.866 -1.525 -2.708 -2.391 c @@ -3969,8 +3967,8 @@ q 1 0 0 1 183 316.4023 cm 0.312 -7.428 0.727 -7.455 1.039 -7.475 c 5.586 -8.118 13.155 -12.017 12.674 -22.548 c 12.56 -25.061 12.663 -26.477 12.982 -26.758 c -14.31 -27.928 23.355 -23.683 22.629 -14.042 c -21.27 4.006 1.142 2.02 0 0 c +14.311 -27.929 23.356 -23.684 22.629 -14.042 c +21.269 4.004 1.142 2.019 0 0 c 0 7.87 l 15.462 7.87 27.999 -4.667 27.999 -20.129 c 27.999 -35.591 15.462 -48.128 0 -48.128 c @@ -3979,7 +3977,7 @@ q 1 0 0 1 183 316.4023 cm 0 0 l f Q -0.612 0.196 0.196 scn +0.286 0.482 0.133 scn q 1 0 0 1 183 317.3276 cm 0 0 m -0.223 -0.377 -0.896 -0.494 -1.279 -0.706 c @@ -3989,7 +3987,7 @@ q 1 0 0 1 183 317.3276 cm -11.368 -29.204 -4.441 -35.04 3.701 -32.832 c 16.504 -28.451 l 19.64 -26.383 21.524 -23.889 22.614 -20.364 c -24.61 -13.908 21.812 -4.741 13.674 -0.575 c +24.61 -13.908 21.812 -4.74 13.674 -0.575 c 6.26 3.219 0.029 0.049 0 0 c 0 6.945 l 15.462 6.945 27.999 -5.592 27.999 -21.054 c @@ -3999,14 +3997,14 @@ q 1 0 0 1 183 317.3276 cm 0 0 l f Q -0.596 0.192 0.192 scn +0.278 0.471 0.129 scn q 1 0 0 1 183 318.1274 cm 0 0 m -0.174 -0.267 -0.682 -0.3 -0.974 -0.428 c -3.27 -1.438 -6.363 -4.313 -7.593 -6.58 c -13.39 -17.262 -13 -20.653 -12.686 -23.377 c -12.045 -28.943 -6.307 -36.332 3.975 -34.516 c -34.373 -29.149 23.201 -7.033 15.417 -1.844 c +34.372 -29.149 23.201 -7.033 15.417 -1.844 c 7.621 3.352 0.038 0.059 0 0 c 0 6.145 l 15.462 6.145 27.999 -6.392 27.999 -21.854 c @@ -4016,7 +4014,7 @@ q 1 0 0 1 183 318.1274 cm 0 0 l f Q -0.58 0.188 0.188 scn +0.275 0.459 0.125 scn q 1 0 0 1 183 318.8281 cm 0 0 m -0.26 -0.393 -1.01 -0.429 -1.443 -0.612 c @@ -4033,7 +4031,7 @@ q 1 0 0 1 183 318.8281 cm 0 0 l f Q -0.569 0.18 0.18 scn +0.267 0.447 0.122 scn q 1 0 0 1 183 319.4941 cm 0 0 m -0.27 -0.397 -1.042 -0.411 -1.488 -0.586 c @@ -4050,14 +4048,14 @@ q 1 0 0 1 183 319.4941 cm 0 0 l f Q -0.553 0.176 0.176 scn +0.259 0.439 0.118 scn q 1 0 0 1 183 320.105 cm 0 0 m -0.285 -0.403 -1.085 -0.384 -1.55 -0.549 c -2.14 -0.758 -7.426 -2.783 -11.14 -9.4 c -12.536 -11.888 -15.643 -18.441 -14.343 -25.552 c -13.349 -30.994 -7.597 -40.716 7.05 -38.567 c -28.063 -35.482 30.901 -13.127 16.17 -2.838 c +28.064 -35.482 30.902 -13.127 16.17 -2.838 c 7.979 2.883 0.04 0.057 0 0 c 0 4.167 l 15.462 4.167 27.999 -8.37 27.999 -23.832 c @@ -4067,7 +4065,7 @@ q 1 0 0 1 183 320.105 cm 0 0 l f Q -0.541 0.173 0.173 scn +0.255 0.427 0.118 scn q 1 0 0 1 183 320.6777 cm 0 0 m -0.294 -0.407 -1.113 -0.365 -1.59 -0.521 c @@ -4084,7 +4082,7 @@ q 1 0 0 1 183 320.6777 cm 0 0 l f Q -0.525 0.169 0.169 scn +0.247 0.416 0.114 scn q 1 0 0 1 183 321.2148 cm 0 0 m -0.327 -0.44 -1.224 -0.37 -1.749 -0.528 c @@ -4101,7 +4099,7 @@ q 1 0 0 1 183 321.2148 cm 0 0 l f Q -0.51 0.165 0.165 scn +0.239 0.404 0.11 scn q 1 0 0 1 183 321.7295 cm 0 0 m -0.315 -0.413 -1.169 -0.321 -1.671 -0.458 c @@ -4118,7 +4116,7 @@ q 1 0 0 1 183 321.7295 cm 0 0 l f Q -0.498 0.161 0.161 scn +0.235 0.392 0.106 scn q 1 0 0 1 183 322.2021 cm 0 0 m -0.326 -0.417 -1.197 -0.297 -1.71 -0.424 c @@ -4135,7 +4133,7 @@ q 1 0 0 1 183 322.2021 cm 0 0 l f Q -0.482 0.153 0.153 scn +0.227 0.38 0.106 scn q 1 0 0 1 183 322.6421 cm 0 0 m -0.165 -0.201 -0.596 -0.119 -0.851 -0.169 c @@ -4152,7 +4150,7 @@ q 1 0 0 1 183 322.6421 cm 0 0 l f Q -0.467 0.149 0.149 scn +0.22 0.369 0.102 scn q 1 0 0 1 183 323.0532 cm 0 0 m -0.345 -0.419 -1.243 -0.245 -1.775 -0.35 c @@ -4169,7 +4167,7 @@ q 1 0 0 1 183 323.0532 cm 0 0 l f Q -0.455 0.145 0.145 scn +0.212 0.361 0.098 scn q 1 0 0 1 183 323.4082 cm 0 0 m -0.359 -0.424 -1.279 -0.213 -1.827 -0.305 c @@ -4186,7 +4184,7 @@ q 1 0 0 1 183 323.4082 cm 0 0 l f Q -0.439 0.141 0.141 scn +0.208 0.349 0.094 scn q 1 0 0 1 183 323.7339 cm 0 0 m -0.366 -0.422 -1.29 -0.183 -1.842 -0.262 c @@ -4201,7 +4199,7 @@ q 1 0 0 1 183 323.7339 cm 0 0 l f Q -0.427 0.137 0.137 scn +0.2 0.337 0.09 scn q 1 0 0 1 183 323.9893 cm 0 0 m -0.38 -0.425 -1.322 -0.147 -1.889 -0.211 c @@ -4216,7 +4214,7 @@ q 1 0 0 1 183 323.9893 cm 0 0 l f Q -0.412 0.133 0.133 scn +0.192 0.325 0.09 scn q 1 0 0 1 183 324.1802 cm 0 0 m -0.389 -0.421 -1.333 -0.109 -1.905 -0.156 c @@ -4231,7 +4229,7 @@ q 1 0 0 1 183 324.1802 cm 0 0 l f Q -0.396 0.125 0.125 scn +0.188 0.314 0.086 scn q 1 0 0 1 183 324.269 cm 0 0 m -0.403 -0.423 -1.362 -0.067 -1.945 -0.096 c @@ -4245,18 +4243,18 @@ q 1 0 0 1 183 324.269 cm 0 0 l f Q -0.384 0.122 0.122 scn +0.18 0.302 0.082 scn q 1 0 0 1 178.769 323.9521 cm 0 0 m --22.528 -4.551 -23.527 -35.025 -6.329 -46.258 c -6.847 -54.863 25.641 -52.169 31.069 -35.683 c +-22.529 -4.551 -23.528 -35.026 -6.329 -46.258 c +6.848 -54.862 25.641 -52.169 31.069 -35.683 c 27.625 -47.245 16.912 -55.678 4.231 -55.678 c -11.231 -55.678 -23.768 -43.141 -23.768 -27.679 c -23.768 -13.386 -13.055 -1.592 0.778 0.109 c 0.544 0.077 0.232 0.04 0 0 c f Q -0.369 0.118 0.118 scn +0.173 0.29 0.078 scn q 1 0 0 1 170.9761 321.4922 cm 0 0 m -16.563 -9.063 -17.344 -40.194 9.316 -48.713 c @@ -4268,51 +4266,51 @@ q 1 0 0 1 170.9761 321.4922 cm 1.31 0.61 0.543 0.297 0 0 c f Q -0.667 0.216 0.216 scn +0.314 0.525 0.145 scn q 1 0 0 1 198.9263 298.0972 cm 0 0 m -1.706 2.422 -2.871 5.192 -4.806 7.466 c --5.581 8.375 -6.334 9.141 -7.046 9.74 c --7.103 9.788 -12.699 14.577 -12.706 14.929 c +-5.58 8.375 -6.333 9.14 -7.046 9.74 c +-7.103 9.788 -12.7 14.579 -12.706 14.929 c -12.708 15.035 -10.925 16.753 -10.74 16.825 c -10.058 17.086 -7.544 17.231 -6.875 17.166 c -5.111 16.992 -2.438 16.241 0.275 13.649 c 3.79 10.293 4.269 6.382 4.332 5.263 c -4.608 0.362 1.816 -1.552 1.125 -1.426 c +4.608 0.362 1.816 -1.553 1.125 -1.426 c 0.589 -1.328 0.314 -0.445 0 0 c f Q -0.682 0.22 0.22 scn +0.322 0.537 0.145 scn q 1 0 0 1 199.0605 300.5908 cm 0 0 m --1.971 2.884 -3.056 4.472 -4.87 6.595 c +-1.97 2.883 -3.055 4.471 -4.87 6.595 c -5.072 6.832 -5.375 7.116 -5.591 7.34 c -5.844 7.601 -6.16 7.969 -6.419 8.224 c -6.913 8.711 -7.551 9.382 -8.074 9.839 c -9.724 11.281 -9.908 11.547 -9.911 11.595 c --9.914 11.657 -8.495 13.252 -8.295 13.411 c --8.132 13.541 -7.808 13.456 -7.601 13.433 c --5.32 13.184 -2.962 12.927 -0.476 10.566 c -2.531 7.709 2.783 5.143 2.904 3.91 c +-9.914 11.655 -8.389 13.369 -8.295 13.411 c +-7.711 13.674 -6.801 13.346 -6.164 13.276 c +-2.962 12.927 -1.156 11.212 -0.476 10.566 c +2.531 7.709 2.783 5.143 2.904 3.909 c 2.938 3.565 2.929 0.875 2.709 0.41 c 2.675 0.337 0.707 -0.875 0.645 -0.861 c 0.33 -0.793 0.182 -0.267 0 0 c f Q -0.694 0.224 0.224 scn -q 1 0 0 1 198.145 304.1201 cm +0.325 0.549 0.149 scn +q 1 0 0 1 198.1455 304.1201 cm 0 0 m --0.736 0.235 -1.075 1.45 -1.575 2.04 c --3.148 3.894 -3.148 3.894 -3.896 4.678 c --4.212 5.008 -4.839 5.354 -4.922 5.803 c +-0.737 0.235 -1.076 1.45 -1.576 2.04 c +-3.148 3.894 -3.148 3.894 -3.897 4.678 c +-4.212 5.008 -4.84 5.354 -4.922 5.803 c -4.014 7.981 l --3.952 8.007 -1.426 7.15 0.33 5.083 c -1.632 3.552 2.398 0.755 2.281 0.574 c -1.906 -0.01 0.7 -0.197 0.037 0.011 c +-3.953 8.007 -1.427 7.15 0.33 5.083 c +1.631 3.552 2.397 0.755 2.281 0.574 c +1.906 -0.01 0.699 -0.197 0.037 0.011 c 0.026 0.014 0.011 -0.003 0 0 c f Q -0.439 0.141 0.141 scn +0.208 0.349 0.094 scn q 1 0 0 1 195.0493 321.5449 cm 0 0 m -5.275 2.417 -9.403 2.407 -12.049 2.189 c @@ -4322,7 +4320,7 @@ q 1 0 0 1 195.0493 321.5449 cm 0.673 -0.334 0.292 -0.134 0 0 c f Q -0.427 0.137 0.137 scn +0.2 0.337 0.09 scn q 1 0 0 1 191.2632 323.0293 cm 0 0 m -3.078 0.794 -4.478 1.111 -8.263 0.96 c @@ -4331,7 +4329,7 @@ q 1 0 0 1 191.2632 323.0293 cm 0.981 -0.329 0.425 -0.126 0 0 c f Q -0.412 0.133 0.133 scn +0.192 0.325 0.09 scn q 1 0 0 1 187.231 323.9521 cm 0 0 m -2.557 0.263 -2.657 0.273 -4.231 0.228 c @@ -4340,105 +4338,90 @@ q 1 0 0 1 187.231 323.9521 cm 0.724 -0.122 0.312 -0.042 0 0 c f Q -0.396 0.125 0.125 scn +0.188 0.314 0.086 scn q 1 0 0 1 183 324.269 cm 0 0 m 0.335 0.003 0.669 -0.002 1.001 -0.014 c 0.701 -0.01 0.211 -0.214 0 0 c f Q -
endstream
endobj
888 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
958 0 obj
[/Indexed/DeviceRGB 255 959 0 R]
endobj
959 0 obj
<</Length 428/Filter[/ASCII85Decode/FlateDecode]>>stream
+
endstream
endobj
981 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
1051 0 obj
[/Indexed/DeviceRGB 255 1052 0 R]
endobj
1052 0 obj
<</Length 428/Filter[/ASCII85Decode/FlateDecode]>>stream
8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` E1r!/,*0[*9.aFIR2&b-C#s<Xl5FH@[<=!#6V)uDBXnIr.F>oRZ7Dl%MLY\.?d>Mn 6%Q2oYfNRF$$+ON<+]RUJmC0I<jlL.oXisZ;SYU[/7#<&37rclQKqeJe#,UF7Rgb1 VNWFKf>nDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j<etJICj7e7nPMb=O6S7UOH< PO7r\I.Hu&e0d&E<.')fERr/l+*W,)q^D*ai5<uuLX.7g/>$XKrcYp0n+Xl_nU*O( -l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>
endstream
endobj
869 0 obj
<</Private 870 0 R/LastModified(D:20091124113554+01'00')>>
endobj
870 0 obj
<</CreatorVersion 13/RoundtripVersion 13/ContainerVersion 11/AIMetaData 871 0 R/AIPrivateData1 872 0 R/AIPrivateData2 873 0 R/AIPrivateData3 874 0 R/AIPrivateData4 875 0 R/NumBlock 4/RoundtripStreamType 1>>
endobj
871 0 obj
<</Length 964>>stream
-%!PS-Adobe-3.0
%%Creator: Adobe Illustrator(R) 13.0
%%AI8_CreatorVersion: 13.0.2
%%For: (Gilles Dubochet) ()
%%Title: (type_tags.ai)
%%CreationDate: 11/24/09 11:35 AM
%%BoundingBox: -227 -99 143 234
%%HiResBoundingBox: -226.5 -98.5 142.5908 233.748
%%DocumentProcessColors: Cyan Magenta Yellow Black
%AI5_FileFormat 9.0
%AI12_BuildNumber: 434
%AI3_ColorUsage: Color
%AI7_ImageSettings: 0
%%RGBProcessColor: 0 0 0 ([Registration])
%AI3_Cropmarks: -59.5 -62.5 -46.5 -49.5
%AI3_TemplateBox: 40.5 29.5 40.5 29.5
%AI3_TileBox: -239.5552 -349.6377 319.4453 433.3623
%AI3_DocumentPreview: None
%AI5_ArtSize: 841.8898 595.2756
%AI5_RulerUnits: 6
%AI9_ColorModel: 1
%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
%AI5_TargetResolution: 800
%AI5_NumLayers: 5
%AI9_OpenToView: -472.5 308.5 2 1589 965 18 0 0 50 75 0 0 1 1 1 0 1
%AI5_OpenViewLayers: 77777
%%PageOrigin:-399 227
%AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9
%AI9_Flatten: 1
%AI12_CMSettings: 00.MS
%%EndComments
endstream
endobj
872 0 obj
<</Length 7432>>stream
-%%BoundingBox: -227 -63 143 234
%%HiResBoundingBox: -226.5 -62.001 142.5908 233.748
%AI7_Thumbnail: 128 104 8
%%BeginData: 7284 Hex Bytes
%0000330000660000990000CC0033000033330033660033990033CC0033FF
%0066000066330066660066990066CC0066FF009900009933009966009999
%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66
%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333
%3333663333993333CC3333FF3366003366333366663366993366CC3366FF
%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99
%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033
%6600666600996600CC6600FF6633006633336633666633996633CC6633FF
%6666006666336666666666996666CC6666FF669900669933669966669999
%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33
%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF
%9933009933339933669933999933CC9933FF996600996633996666996699
%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33
%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF
%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399
%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933
%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF
%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC
%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699
%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33
%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100
%000011111111220000002200000022222222440000004400000044444444
%550000005500000055555555770000007700000077777777880000008800
%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB
%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF
%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF
%524C45FD0AFFA8285353FD7CFF28A8FF5353FD7AFFA92EA8FF537EFD7BFF
%53282828A8FD27FF2E2828A8FD51FF847EA9FD27FF5953AFA928FD7BFF53
%52FFA82FA8FD7AFF847E7E2E7DFD7CFFA87E7DFDFCFFFDFCFFFD31FFA9FF
%FFFFA9FFFFFFA9FD76FFA9FFA9AFA9FFA9AFA9FFA9AFA9FD1AFFA87E537E
%A8FD2BFFA8A9A8AFA8FD23FFA9A9A8A9A9A9A8A9A9A9A8A9A8AFFD17FFA9
%7E28292829282F2F7EA8FD26FFA8532F2829282F53A8FD22FFA9A9A9AFA9
%A9A9AFA9A9A9AFA9FD16FF7E2E012806FD0529062F7EFD23FFA859062806
%FD0529065384FD1FFFA8A9A8A9A8A9A8A9A8A9A8A9A8FD16FF7E28282F29
%53292F29542F54292FA8FD21FFA85306292853295329542F54295384FD1F
%FFA9AFA9FFA9AFA9FFA9AFA9AFA9FD09FFA8A87DFF7DFFA8FD04FFA82801
%292829295453542930292F292FA8FD1FFFA95300290629292F2929293029
%2F292FA8FD1DFFA8A9A9A9A8A9A9A9A8A9A9A9A8FD04FFA87DFF7DFFA852
%275227277D27A8FFFFFF530629282F5AA9FD04FF7E5429542953FD1FFF7E
%01282FA984A82F7EA8A9A87E29542953FD1EFFA9AFA9A9A9AFA9A9A9AFA9
%A9A9FFFFFF52FF5227527D7D52527D527DF8A8FFFFA8002828297EFD07FF
%7E30292F06A8FD1DFFA905280153FFFFFFA9FD05FF7E292F0684FD1CFFA8
%A9A8A9A8A9A8A9A8A9A8A9A8AFFFFFA8527D7D27A8FD05527DFF7DA8FFFF
%5328282953FD04FFA9FD04FF7E30292F53FD1DFF7D28282953FD0AFF5A29
%2F53FD1DFFA9FFA9AFA9FFA9AFA9FFA9AFA9FD09FFA8FFA8FD06FFA82E00
%2828A9FFFFFF7E067EFD04FF292F2953A8FD1CFF5300280653FD04FF7E7E
%A9FFFFFF7E29292FA8FD1BFFA9A9A8A9A9A9A8A9A9A9A8A9A8FD14FF2828
%0653FD04FF2F2F29FD04FF54292F28FD1DFF2828282953FFFFFFA829077E
%FFFFFFA9292F28FD1DFFA9A9A9AFA9A9A9AFA9A9A9AFA9FD12FFA8280028
%28FFFFFFA82F292FA8FFFFFF292F2929A8FD1BFF842800280153FFFFFFA8
%29292FFFFFFFA82F2929A8FD1BFFA8A9A8A9A8A9A8A9A8A9A8A9A8FD14FF
%28282853FD04FF53292FFD04FF54292F28FD1DFF5328282953FFFFFFA82F
%297EFFFFFFA9292F28FD1DFFA9FFA9FFA9FFA9FFA9FFA9FD15FF53002801
%A8FFFFFFA92984FFFFFFA8292F0653A8FD1CFF7D00280159FD04FF532FA8
%FFFFFF7E292829A8FD1BFFFD04532E5353532E535353287EFD13FF7D2828
%282FFD09FF532928297DFD1DFF7E28282853FD0AFF54282953FD1CFF5300
%280028002800280028000053FD13FFA92828062853FD07FF5329282828FD
%1FFF28280053FD09FF7E062906A8FD1CFF28000028002800280028002800
%53FD14FFA806282828297EA8AFA87E2929282906A8FD1FFFA8062853FFFF
%FFA8A9FFFFA87E2829067DFD1DFF5300280628012806280128062853FD15
%FF7D0028052801280629062828280159FD21FF7D0053FFFFFF7E012F2828
%0129012FA8FD1DFF2E01002800280028002800280053FD04FFA8FFFFFFA8
%FFFFA8A8FFA8FD07FF7E062806FD0728067EFD23FF7D53FFFFFF7E280628
%28280053A8FD1EFF5300280028062800280628002853FFFFFF7D52FF7D52
%A852A852A8527DFF7D7DFD04FFA9A8282800060006002828A8FD24FFA8A8
%A9FFFF7E00280028287DA8FD1FFF2806002800280028002800280053FFFF
%FFA852A8277DFF7D527DA8527D7D27A8FD07FFA87E537D537EA8FD2BFFA8
%28287D7DFD22FF5300280128062801280628012853FFFFFFA87DA852527D
%52FF527DA852527D27FD3AFFA8FD25FF2806002800280028002800280059
%FD04FF7DFFFFA8527D7D7DA87D7DFF7DA8FD60FF53002806280028062800
%28060653FD72FF2800002800280028002800280053FD72FF530028062801
%2806280128062853FD72FF2800000600010006000100060053FD72FF7E2E
%53525353535253535352537DFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFF
%FDFCFFFDFCFFFDFCFFFDFCFFFD9AFFCACAA8CAA8CAA8CAA8CAA8CAA8FD74
%FFFD0DCAFD18FFA8A8767676A1A8FD53FFCACAA8CAA8CAA8CAA8CAA8CAA8
%CAFD17FF7D6F446F446F456F70A8FD52FFFD0DCAFD15FFA84B45446F446F
%6F6F696F4476A8FD29FFA8A176766F7676A8FD1EFFA8CAA8CAA8CAA8CAA8
%CAA8CAA1FD05FFA8FFA8FD0DFFCA4B4B4BFD066F936F6F689AFD28FF766F
%446F456F446F6F76A8FD1DFFCACACAFFCACACAFFFD05CAFFFFFFFD047DFD
%0DFF4B44446F4B6F6F9A6F9A6F936F6F449AFD25FFA84B4B446F44FD056F
%686F7DFD1BFFA8CAA8CAA8CAA8CAA8CAA8CAA8FD04FFFD04527D7D7D2752
%52A85252A8FFFF764B4B6F456FA1CAFD04FF6F936F6F45A8FD24FF4B4B45
%6F6FA1A1FF766F6F946F6FA1FD1BFFA8FD0CCAFFFFFF52A8522752FF5252
%27A8A82752FFFFA84B204B446FA1FD06FF6F6F936F6F6FFD23FF4C44444B
%44CAFFFFFF9A68FD056FA1FD19FFA8CAA8CAA8CAA8CAA8CAA8CAA8CAFFFF
%FFA8A8FFA8A87DFF7DA852A87D7DFFFFA1444B4B6FA1FD05FFCACA6F946F
%936F6FCAFD21FFA14B4B6F4B70A8FFFFFF76936F9A6F936F9AFD1AFFCAFF
%CACACAFFCACACAFFCACACAFD12FF7644444B4BFD04FFA1FD056F936F6F44
%A8FD21FF76204B446FA8FD06FF9A68936F6F44A8FD18FFCACAA8CAA8CAA8
%CAA8CAA8CAA8CAFD12FF7D204B449AFD04FFFD076F936F6F76FD21FF4B4B
%446F6FFD07FF9A6F6F946F6F76FD19FFFD0DCAFD12FF7644444576FFFFFF
%A16F6F6F69FD056F4476FD20FFA84B204B446FA1FD04FFCAA19A696F6F6F
%4476FD18FFCAFFCACACAFFCACACAFFCACACAFD13FF7D204B4476FD04FF6F
%6F68FD046F946F6FA1FD20FFCA444B4B6F6F6FA8FFFFFFFD056F946F6F76
%FD18FFA176A176A176A176A176A17676A1FD12FF7D4B444B44FD05FF9AA1
%766F6F6F4B6F4BCAFD20FFA14B444B446F6FCAFFFFFF7644FD056F4476FD
%18FF4BFD0420442020204420202076FD13FFFD044B76FD07FFFD046F4476
%FD22FF444B4B6F4B6FA8FFFFFFFD086F76FD18FF76204B444B204B444B20
%4B444476FD13FF7D204B444B76FD06FF76446F444B7DFD21FFA84B204B44
%4B44CAFFFFFF9A44FD056F44A1FD18FF4B20204B2044204B2044204B2076
%FD13FFCA76204B444B6FA1A1CAA1A16F6F4B4B76FD23FF76FD044B6FA8FF
%FFFFCACAFD046F456FCAFD18FF76204B444B204B444B204B444476FD07FF
%A8FD0CFFA14B204B204B444B444B444B44444BFD24FFCA4B4B444B44A1FD
%05FF76446F454476FD19FF4B20204B2044204B2044204B2076FFFFFF7D7D
%FF52A87D52FF7D52A852FF527DFFFFFFA876204B444B4B4B444B444B76FD
%26FFA8204B4B4B45CAFD04FF6F6F4B4B76FD1AFF76204B204B444B204B44
%4B204476FFFFFF52A87D52A8FF52A8277DA87DA85252FD04FFA87D4B4B20
%44204420767DFD28FF7D2045204B44767DA1764B44444BCAFD1AFF4B4420
%44204B2044204B20442076FFFFFFA8275252527D52A85227FF52A85227FD
%07FFA1A1767D76FD2CFFA84B4B204B4444204B444B76FD1CFF76204B204B
%444B204B444B204476FFFFFF7DA8FF7DA8FF7DFFFFA8FFA8FFFFA8FD3AFF
%764B204B204B4476A1FD1DFF4B442044204B2044204B20442076FD4DFFCA
%FFA8A8A8FD20FF76204B444B204B444B204B444476FD72FF4B20204B2044
%204B2044204B2076FD72FF76204B444B204B444B204B444476FD72FF5244
%204B444B204B444B204B2076FDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFD2FFF
%A86F4BA8FD7BFFA84B76A144A8FD2EFFCAFD4CFF4BFFA14476FD2CFFCA6F
%6FA1FD4BFF4B4C7720A8FD2CFF207DA144A1FD4AFFA8A176CAFD2DFF4BA8
%CA44A1FD7BFF4476A144A1FD7BFFCA4B76A8FD7EFFCAFD42FFFF
%%EndData
endstream
endobj
873 0 obj
<</Length 65536>>stream
-%AI12_CompressedDataxœì½ëŽ$Éu ùñ¹?À²ÒÍïÎ],WmÏŠj‚MÎhV4’UÙÍUU¶ê"‰óôkçò;YÝjŠäJXÁf•Y„{D¸™vŽ¹}áõ¿ýò«Ÿ]½zúíãϦÃÅé¯þêæýãÃǧ÷?¿ÐÚ‹/Þ¼ùôáã{©úɯ~zQê«ê‹®¾Ø¿öþ×Ç÷^?½û¹>õb¬OÞËÖ?ùë×oÞ<~¸¸ýôÛ§—¿{üøÓ‹Ÿü´>÷ë×ß<Ög?þþ»Ç¯?>|ûáÅÃëŸò®u7·ëÓ¥\ŽóåpÔü|Z.®~Q_qýôéÝ«×ï¾½~ú—Ÿ_ül·‹Ÿõót1Ns}þÿ~ý«Çç/Z_,õe{ýÿ2/–cØ뫧ۼ×-nŸ^~zûøîã/ß?½|üðáæéÍÓû?¿¸ùýû‹_<|[Ÿy¸øïoÞ<ýóÅõ›‡—ÿ6¹z÷±¾ô¿ÿúáUÝþg¿züöÓ›‡÷é%ûøøêñÕ÷¿ðê‹åëû×oëÑzûðñâãzõE¿¾þôúÍ«¿ýôö·õ0ÎòÝ®¾˜¾ÖO÷›õcÕO(ÿ–êíë/ÞÖš¯?~¬_º¾´Í¯þú:£Z©Ÿü}}ë×Ú”õ8ÿŸúnß?}÷öáý?Ôm¶r´ÖQþÖ#7×{ݯß~÷¦¶Øy¨OŽòêø—¿ª~?ôS\–ñâgSÝÉ:mÛÅTŽó¼Lõ;M/¦uœl›Ö -ÿôúñŸ~ñ·Oïíð\½ÿøÕëÿU¿ð>—û~ì˱¼·eµçõéÍãûß¼{-GX«;L¿xzõø¦ö¢ØËý›=:ú(íÿí¿~xÿíãÇÚ{žÞ|ú¨]yü©ÚóðûG鋽Á—ß=¾ûõÓÕOú³y“ƒ5
ÒÁÆ‹²ìÇű־¶ë[,ÃŶø›}CÿD²Ù»ÞäOm¹_Ö¶üòýëo_¿ûùϦڹk'·Vþë÷¯_µFÞÆ‹ÝþO¿Ä‹=ýwðŸ}ÚúÅ?~||çÇ¢v®›_¤Î2¼øÅWõmïÞ½ºyz+mðAγÚKÞÕôæé[{.þÏÔÍ?}wúûÓt\þ㧧ê¾Þ<Ö¯}ùíû‡z¼(ã~yõêõãûú̇˫÷õéË›—¯*
.ï^~úøxù·k¼ü’—.[<ØKto—/_¿¯Ýã›7ÿrùÐ^cÛ?èÎ_²óGÝòtùh›>¦McÓ׶û×öš×é5¯ã5ït÷§Ë'{퓽ö)½ö)^ûd哽ô“½ôS{ééòS¼öÕ÷ß>¾¿|U?àããåËz¼/?|||ÿF¾Å‡Ç—Òõ.û©Róãåwïå|÷»ËºÅÛ‡w¯~û¦¥÷z×½½º|ùô]EÊ·¿ûxYOèWr -_Úgˆ·{ñîéã«Ço.¯î.¿üðæáÃïNQõ]eúÛ×ï>µñ÷ïß]¾ýt^}zö:þ~zÿê›Çº«×ïåßo>¼üôF -¼à¡Öû»ÿã§Çò%_=ýó»ËÇyùæáþ³ö®×/ÞÔ
b«oêYüúÝóñí'UÞ>ÕAä›dG¢¢úõwòÍ?|÷ðòñòÊãÊ;›ÿuwù$}äÝ«ú‘.ßê_Ú‘ë!ÖR°}j©Õ[å«×ÿôZ:H´8æÿ=þõÍûkÑ»OïŸô“ꙟ[Kº»Óå7¯ëöîQßùò»ú>O¯¤ƒh[·óì·ãj¡¾ôãïž>}¨]äty•ºè]ú÷•õŒ»øpwvh¾°ú/rwý"^ô…½èK{Ñ—i|ï/í¿±Wü&ïæ7öÔ+i©^_¦!Þ>¼|/ý½R__öðRO;¥íŒ>]þîÓ»oÞzûæáÓÇzÖá._>ÔíN¿¾S”.ÿåë_¨ÃG5¦¯Swï^>I ð󋯟½ŸÿþòùË.Ÿoh,ÿõÿkoTÙÈÛX°ôëÔœþ¾¬ÅÏñ‹²M—õX=þ㧇7µ°^¾~÷M=W>þ>r|ô 5ª_ -§²9+>¾~xóêõ7ß\Ö/úVïËïÞ?½úô²bâuÝãG^Ýý~\~ùöñÛ‡‹S9–ËJ9©.ʱ]>|W7øÿÇ~yûø¦†6c™½'×3ð=¾ûöñbœyñ›Ú·¿þê÷oûôæëKûÛÇNûê‹ã¯ë1ÿem0NNûÝI£Â_¾ùTŸúë÷OŸ¾ûâÝ7O§ŸXùˇ¿«QT=ï>ÔHÐê¬xa[ÔÚ¿yýOVWƒÂï~úƒûûu=½ä¸ùÛÿYÉY7öŠö¯¯>½þøø¯ïè«—2B¾¿¸~ÿéÃï.~ýôô&>_ÿT|L¯ÖZyýŒ÷ø¥nðîËwv¤Ÿ¿“¿àüjtôî]ê«¿ÿê“ÿ‘÷~óPG!º_¿üÜ|æùx'{îx³Þ½lÛk‘¿D·Ô3ûõ‡·7¦š_ -y^¾yüê÷5äxû¯ïíöñ›šÉ¤Ã¦µwïþéñÍÓwéCFM².þÛÃûï~h×ÒL•˜¯ê¢çs;ŒOo¿“\ïâ«ß=|÷¨÷ãïîõ•_ýˆnüæá]ŹÖÇ.?µÿVžõH²ºØé"ÜÏèûÙÏ~€‰ËÅõ»ôô_–ë8÷sÙõ»GýVsQ~zúL]eîxqýªÜÿçi?e˜†yX†u؆c¸®‡›án¸/¥Tž—¥luà8ÊU¹.7å¶ÜÃXÆqœÆy\ÆuÜÇc¼¯Ç›ñv¼=wãý4L5#žæ©æhÓ>]M×ÓÍt;ÝM÷sM™kúYS¶y·ù˜¯æëùf¾ïæûeXÊ2.Ó2/ë²-{ÍË®–›Ór»ÜÃZÖqÖe]×mÝ×c½Z¯×›õv½[ï·a+Û¸ÍÛ²5éÙ·£>®¶ëíf»Ýî¶û}Ø‹>Æ}ÚçÓ>ï˾îõu»äWûu}Üì·ûÝ~Ô~£c:êÇ;–£¾WÝß~ÈŸ«ãº>nŽÛú¸«û«z´NWõÐ\ÕCp5]ÕïsU?õÕzU?ÀUÝ÷UÝæJþ\×ÇM}Ü^ÝÕÇýÕýõ zP¯ëÁ‹¿ë±:]׃r½\¯×õ;ȇ»Ö·½Ö}\ËŸ›ú¸»ëûëû›ÚZ7µenÆ›z˜ofyœþ¯Ö¶£·®µï-|«m<h+Oõ!-½F[ÓÚwÚÞÒâÓ)š|ëÝZ¼x›/Þêût¤–—¶RÛk럾§ù—Ô®—éË}íô‚ÙûÁyO¸;ygî0Õ‘»ÄUt íÑ-´SxŸXµOX¯~qsªÝB;Æg»Æ¢]Ã:Ç•vŽíwsxߘ´oÔ~qÒ®±k§°.q«]Â:] ·þ¡m~ÓZû_kÛ¾ui_i]kßµ;Ÿ½OÞÈãgÚ˜V¦¨¥o½¥Ë©6vkê]ÿ;?ÝûomN«k»kË×v?yÓ[ãŸ7¿£@Ûßp =@þkýÀzx¸:iw C'èÒ)&ít:]CaЈÞqªÝC:ˆuºJë,°D:Ì÷ð¤µíŸðÏ¿ÓK<´oÕž*}uŽþj=VúìqòN{¥ù¬³ÞÅà3k/•>j’¾)ýRzå6§Ú!¥;Ê€#ÈYkw[û]©=n©}í¨½ì¶ö®¢ãʦ]IºÑ}í>Sí0{í$7Û]ýˆÓ¾œj8´ÁïkËNµ÷Úr·õ$뉽Öóùú궞Ác=s·Ú¨7×wõëL7Kí%W777w7Ö¶÷÷÷w÷·÷7õL¾º?jÇÙjŸ]îçûé~¼/÷ÃÝýÝÝÝíÝÍÝu&ŽÚ¹¶Šµån®ïÊÝp{{w{{{Sé%½æTù´Ý®õ\™ëÉ7Þ–Ûáæ¾¾Ûm}ÏëúÎG}ÿžK¦:B”›¡Rä®Òä¦Råª~Ò½~Þµ~ê¹r§C§ë¡Âè®Bé¦~¥«úÅöz®¬õ¤œ+ÃÆJ³á¸¯]õ¶vÛëÚz ¶z8–ÚɧÚáË1ÔóáN¹ySÏ’«S=n{=zk=•æz(Çz‚
•¿wõ´»©§àU=!özf®õÏzΖm¨gò]mŠ›zn_Õ†Ùk󬵑æÚTe*îjëÝÔ6¼ª-¹×ö\k«ÎµmÇÚÂÃ|_s[Ys]ÛýPþ¬•Fsí
cíµN÷U·µ—\Kg9êù¾Už-µMµ•iïk¯º}ëºö±£ö´Rq©ýnªý¯ŒC¹¯ýñ¶öÊërõçhÛýô§mÙë©üiZVÛUšõô§lWiÖÓÛ®UQOL«VîìeûcÛö³ûg?oÿèöý·œ·?ØÂ'kâ?]sÞþgnmÛù⯾¾~_“!¿¼R†Aj¾:ýÕשæúéX)žr}îú6Ò8—¡ŸÉÐFÉÐæÈЉhd”ÔØÎÉÛá^ó3&Gí6*wݯ뼕/êš:lžê‘‘SÆÎ]Ex7áiŒgQÞ¤QžŒ¨9Ò;4ÚKñÞIB>
úäa Þ¤íµh¸Dh1 ŒÄ2_Ï–«Üj<({‹ -OJh8jxÈÃöµx°(áâ¦!ã®a£ýÿᤑ×HÖ2þYr:k7»×7•·¿öÇM»Ýªo9G÷ó¨ð^¿½<®¥+^ëèճ?¬kÊE²?nõÀËãÊ»6Ìvª-Úg—è¹ögàQû°=n5Œ¿Qf]—#[<Ö2Ÿj/‘‡~€¤ÅCú•õ/ùÿ«î±y´f×ÿ?iç=¨NF—ÌŸLŸk§Ï¦áðòYþ<]2}VåÐG¾$ä1ö@ž‰±e¹?iN!ýà*¸#ä‘c\¢CÜhW¸ÒN`]@°hÓ+Îut‘“à°ÑEØcŠœ;zÝ(}§Ï¦m8kv¥-XOÌ{o7ÚLNÝõT¿‡åiõíêAdè‘F†l&í7²ù ƒŽ;6ðÈÐ#ƒÏ•fŸ»A2É0´èùeCÑxÒ^3èˆ$c’ŒJ2.ÉÈ$c“Æ•¾IbT‡(¤d˜šµ·ú¸:dÕAë¤ã–Œ\7:zÉø%#˜Œa2Šm:’zöÙ9?é˜6z·tl»×ñMF¸Û“s7×öçJ‡»C‡¼]‡=øVü -·ókÖ)IÉf®tZ’K^³NMJ´qôN§'me½>É<åÙàÉÈ©£f3/c´ô«rv.>Rú8)#%£d#m„ôѱ»ötNÎÄΓÃsòàCêìÍ<ñ,®á¤¿ ÇÄ"®´AkÔ£tò€ãs,ô°àƒ‹ Ÿ»4Ô]1<¿:d!I»<Tü Oqqh¹þîòЩ;îíº!‘Ê×ÓC¿ZHÀbÍa
²Ÿüê W5€µ8÷ˆÇÕÙ£ÿssö¸íŸrpü,DÎaòy°ÜÂå©]§ü\àÜBçó -ñ=³Öq•÷ì -ïvuœ|ÂôV¿d-³ÐÜ"å%2PË4¾/•¤Ã÷~˜ ûˆÄ³âË&ÏEìÑòÑ=òÑš™œ>›ŒŸ(eFtõYϸàì—$mó>®ý·Ó‰ëú,ñk^÷[÷XÏK÷˜»Ç”§ûñìQºG·’HW¦´GÿçÖ'þq×ÍÃÞ]w«îqœ=öü8銗úÐð㢅?œœ~\´àÃÉN?&VøC†’#‰~¿Fy㯽Ҏk“¶ÍÙÅɸ4yë—&¯|0’áh;éˆÔ_™´I¯MÆ¥I lˆÚ4A]tÝÞäCU‘<F†«“/¾c½•[»/½³…wmÙ]ñEww>ŽÝè‚Ÿ«XoW³“ŽguDë燊¸Y¦V¦/u"ØçX™B<ŠÌÖÔOQÊns›iBòÚ‹Í:KY7ôiç»Orêló²ï2Ǫ³œ2·YS¿c”9Öyo¾ÍýdöŸbgÈü›wïÞ>¾ºø–áv_ëü¹Únž”QkM#ÕîYìù˜–Ç»4P¦ÒÕɇÊüˆ'Ÿ¸6._Ÿ|ó¬t{ŠÑþ6"‚üï;-ßt¯º~¶EzýɃŒ»v=¾•$»·“-«8Åóˆ³1¢‚õ -Fˆr -@È)/';Q¦Ü7aJ|éùƒ‡–,*sÖÂÊz–žt=ä.Ý#¢d-䟂 $G
"ïuù£„›†³-9Ò -Êó°aìã -]Õ?–g±œâŸÛ³Çž¶$ñû—~Ï¢Ãt㦻¸¯‘èɧ¯Ï–¦ptŽeé÷¬6ÔYêSºhŸ¡ýÀbŠn)Z[ŒfëoNiqa‰Ui¶.mõŽ¢BO,ïÏü¯tl½iSÓ¾º?/;_Õï‹ÇN>Uý£V}ïjvᢜ4Ôø¾¾ä#&³õzFšÐÎë>|åÇÉt³Úz»MlëÔöYñG¸Â±›xâß‘ô¡Ä·ŸŠ"þ_5h¿³ã¿÷Q£Ž_>½ù‡‡‹Û§üH9ž×]Œ/ʸ\”ûQT¹(.ÅM®K¯KýŠŸtZâê;(þ«3÷{-þ—úÏÿY+ÿùb¾øÅÅßÿáâ•Öÿݯê_¾'vü¶Võoõ7Qãï¦5ýÈUy»wú>_þË --OáåeÝ
hµ÷Ê6÷õ¿e®'ÀÒƒNêÆ)H'Å26ÒÕòP·ŽtR7Ú'Ö½Ô“aÝé¤\æ5“®VíëÜH'å²4ÒIyZzÒ-rZ®A:yɸ4ÒiyèH§{ÝéjÙ°í¤ÓòÒ“NêôØ9é¤|Œt²ÏyêI'_péô •FºZ|AºZW¡ÛHWËë<5Ò-rR®é–¥e†t‹üÂëÐHWËóxô¤«uëp4ÒÕò>ntK¾†Ò‘®Vò£Á®–kû7ÒÉóûÑ“®ÖMJx']-/ÛÚHWËë±ô¤«uû±é–íÅP7¤“âVzÒIݾ6Òi¹vQPWËE¾lFÔ ®@]-ËuŸ@”‡¡Gls
ui‚:)NK:©+SC¾fk¨ÓòÚ£N릆:)/cC|½z -v¨“¹í
uÚž¥¡NzÈ>õ¨«éÐu•†ºZ”‰—@ö»Ò£NúæVêj¹Æ
uµ¬ÛfÔI—íA²ek¨ÓòÞ£N뎆:=o¦†:eÑСNXs
uZÞꤼÏQWóŒy::ÒIÕ².:)×Q P'å2•uµnZ‡9P'åaØuµ<Z¸éjM9¶=H'åÚ¾A:)¯ûÑ‘n^œ<»c@NËÖÑ€œV•9 'åb€RÈIy°7ÈIÖu% '¯±èN'ÅÍ"Â`œ|³m:‚qz´æ=WË«äP™qµn¬NWËG¨‚q³œµk'ÆÕªéøÍ W‹«UW‹Ûj!T0®Ö5{ÆÍûÑ‹‚qµ<MóÒA®Ö-g)äjY
«åu×rµnsv*äj¹Ží[@n–ϸïäjÝ8îrµ\7Ý \-Öacï('u£ÑG)'åbB)'eùº™rRWä œüùb‘–RNÊÓ´u”“ºÑâF¥\Ú‡PNŠ«w<(§om¹„RNÊ›ÁT)gÛlå´ÎB¥œ¾dJ99"GY;ÊÉ‘,µ?@9iQ9P®¶ølOä¤'ÉÌ‚Cn¶ÊAtÈiÇ“°1AN;ç¼ä¤<s@N:ô²nää×Þ·eÈéI09-—£ƒœÖMs@Î0³äCÓš!§°2ò(ä´<–€œ”Gãd¹iž¸J]K\õ)q•òyâZëºÄUÊ9qåóÄUªrâZË]â*ÏŸ'®ÓÞ%®²IN\u}âªU)q•rN\µ|–¸J]N\¥œWùd牫|᜸êAK‰k-?K\§£O\k¹K\õgþûĵV¥Äµ–ºÄuž'®µ®K\ç¡O\kù<q‡>qå.qåg‰ë\úĵ–»Äu.Ï×Z—×Z̉«ÏW©Ë‰«”Sâ:—牫ÜÝ '®z·ƒ”¸Jù<q•ºœ¸¦}(çÊóÄu.}⪯I‰«–ÏWK‰«¾MJ\eŸç‰«Çœ¸JsæÄU:Èyâ*ý(%®ÓÑ'®ÒíÎWíš)q•rN\¥;Ÿ'®ÓÞ'®z -¤ÄUËg‰«Ö¥ÄUÊ9qÕrŸ¸JUN\µœW).qÊóÄUêRâ*Åœ¸Öò³ÄUêrâ:
}â*å³ÄUÌ œ¸J9'®Óð<q†.q•—äÄUË}âª{M‰ë4ô‰«–ÏW©Ë‰«”sâ*û<O\åæÄUZJ\§ò<qJŸ¸Ör—¸NåYâ:9q¥.qåg‰kë×Zî×iz–¸Öª.qå.q•çÏW¹ÁJN\k¹K\kùYâZërâ:Í]â*ÅóÄUêrâªå”¸NóóÄUêrâZË]â*åóÄU¶É‰kÚ‡ NŠç‰ë4÷‰«¾&%®Z>K\µ.%®RΉ«|½óÄUdN\µ=Sâ*=ä<qJ—¸N¥O\µß%®Ò7sâ:•>qåg‰«ôñœ¸*[Râªå³ÄUëRâªçMJ\•E}â*¬É‰«–Sâ*åÏ%®ãô,q•ªœ¸J9'®R>O\Ç©O\¥œ×Z>K\kM—¸J9'®R>O\Ç Èɳ9qÕrŸ¸jUJ\¥œW)Ÿ'®ãÔ'®òš”¸Jñ<q•o–W=Z)qåg‰kë×Zî×q~–¸Öªœ¸ÖbN\kñYâZëºÄu\úĵ–Ÿ%®µ®K\k¹K\kùYâZëºÄµ–»Äu\Ÿ'®ãÚ'®ãÚ%®µø,q•ºœ¸J9'®ãú<q•ºœ¸Ê}Èrâ*åóÄUêrâšö!”“âyâªoW)çÄÕ¶éWK‰«¾MJ\刜'®r$sâ*-š×Úâ牫ô¤”¸ŽsŸ¸jÇ;K\µs¦ÄUÊ9q•}ž¸ŽSŸ¸êIW-Ÿ%®Z—WÃLK\C}⪰J‰«–Sâ*åÏ%®eyž¸J]K\õ)q•òyâZëºÄUÊ9qåóÄUªrâZË]â*ÏŸ'®eéWÙ$'®º‹>qÕª”¸J9'®Z>K\¥.'®RΉ«|²óÄU¾pN\õ ¥Äµ–Ÿ%®eí×Zîײ>K\kUJ\k©K\Ëö<qu]âZË]âZËç‰kê×Zî×Z~–¸–½O\k¹K\kùYâZërâZ‹9q•âyâ*u9q•rJ\Ëþ<qu]â*圸Jù<q•ºœ¸¦}ç¤xž¸–½O\õ5)qÕòYâªu)qÕ·I‰«ìó<q•ã˜WiÎœ¸J9O\¥¥Äµ¬}â*Ýî<qÕ®™W)çÄUºóyâZ–>qÕS %®Z>K\µ.%®RΉ«–ûÄUªrâªå”¸Jùs‰ë.yë¼u Û%oZ8·ËIàèÔí’¸.G‡º]W‹µGo’¸ŽG n“ÄuéP·Iâ:®ºM»Ó¨Û4q]:Ôm]âºIÞjØRÒmš·–L:Ù©ÒmBmOd…tRös'H·é¡›‚tr¢vB)é6É[„AºMóÖ)H·kÞÚH·kÞ:v¤“9þÝb#%Ý.yë°évÍ[» ®â©vÒÔš¸–@LÕ†µ@Ý!‰ë¾êM\—†ºáYæZ«ºÌµ–»ÌUž?Ï\ËÐg®eè3×Z~–¹–¡Ë\Ké2W)žg®R—3W-§Ìµ”癫Ôå̵–»ÌUÊ癫l“3×´e]yž¹–Òg®úš”¹jù,sÕº”¹J9g®¥<Ï\ËÐg®ÒžòÕaÝñ<qÝ5o- N&àW££¢nž·î–#H§ÓåǤÛu˹#Œm£…lJº]ÓÖ1H·?O[¥ŠœS@'gÍ4¶ˆn׬uÌ Û5kmÝ®Yë Û5kŸNÖzê*¼LºAóÖ¹MÒ
mÛ¬$sö>®ÓŸ9Ú[î:HꪇÇi7Hî:VÁÀc×Æ»AÓW oÐüõŒx°“_»g Ú
šÀGÆÔ9ýàÝ`G´ði…݈Äì 6äÉ ¿Ö{•yƒä±ÛÒg²ƒ&²F0¥Þ ™ì8öMeËÚqo\Vöøäë*q#ÆÓl¶t1žd³s¯tÙ¬,/š,=n!ž$³SãÞ¨ÉìܲYIfçÏf%™56Z6«‡¨´lV’Ùå,›•d6Åx£Œ÷kËf'MfK?e§É¬y2ÍYû‘%³“dÖ©6g§Élisv’Ì.K›³“ÜhZû9;ID?Ùœ$³FO›³“dÖÊmÎN“Ù©ÍÙiþ1Æœ&³s?g'É춴9;àÁœ&³S?g×'³“æ²-™žç²“¦²{B¦eÜZŒWˆc-ÆërYí0mÁ=évËpìù¤sÎNGEß Éì¸ûÍfm0à'§[
Eæ Ÿœ -eÖÀŸVÈp—(•¢D3€ƒæ´–ÂÀA“Z‹Ð‚ƒfµn)Mk_:/¯Þ¼}÷·}xÿû‹Ÿ×ªŸ\ýôâò«rÿÖ‹ŸèMùôVžr[¾/nzñ¿ËKþŸï}‰Ü9Õ_¤`¨}1½öúúêåËOoõôQoj/ü?êõ¿9±R¼´•âõ²4|½øÉO/þî¿Xýåé³ë¢ÏšËYz63)UyfROä5“>žÏL -•Ö!“–KXCZ'}œÏL*.¶´Lúèg&¥|>3i§Ýá°Yö´Búx63©UifR™•f&•qg3“Â9[Y!}t3“R<Ÿ™”o–g&õh¥™IEØṲ̀¼6ÏLÖ¿»™IáÑṲ̀â¨ÍLÊ÷L,—Ãp>3)G*ÏL -Iò̤¶ÅṲ̀4qž™Ô&N3“z>ÍLÊI—g&·ÒÏLÊ>3)ðˆ™ÉI1QaQ¬°ç|fRêò̤ò)ÍL*ÂÎf&¥n/-Šìå™I)ŸÏLJ]ž™Ô}ŒÅJñ|fRßzkQ¬”ó̤mÓÏLj]‚¹¾Mš™”#rNsegš™”ýå™IùZg3“r4Íåàå™Iíxg3“Ú9Ó̤”ó̤´Ùṳ̀¶uš™ÔþRÒéãṳ̀ÖMâ 3¶Dúx63©°J3“ZN3“RÎ3“?DðëÿÈÿ±ô–¥#‹v‰.@_*´ŽðD¤ÅçµÛ¡Oñ¹†cЗuž— ×®Sì‚YÐÇešK»À$VØ2Ø'Ðkô7Øeï ×ç´#N%UœSœ>zÊ’ãôqØlÂôõðSž0}]†³‰ ÁE=9—¦ï6îG˜^OËR”>ÕñkÛS”¾ÃaOˆÒ×Íç
r”¾lûÚ<lMΕ-F¯œîça-VI1ú:XTëQú^£xŽÒÃf0<J‹M¼¤ƒV-H_‹
Ë£/ò“
9F×ɱ³Ý'_Ñ×eOWÕkÎ8ÛÔnÑ÷ÙÂxÑg¦n=D_‡c>ÑYð@ˆ®˜mº~Õ>B_¦mMúj9rÐ-™íô}°9UÐk°às ‹zœèÒ•J -ÐkàlÍôºÍ¾ŸèË8Ú‰çú2{Øãºý}ˆ®ý©…èc)ó”Côm*óyˆ^ûÄšbô}õ™\†½Nº>D·ô»EèǸظéz²d‚ªÐ%E4¡×Ž¼´kNRAÖž"ô%çÍ+
¶µãº,™ªŸfϱù¾{#{½ÿ‘ÑþÉÿóẔ¡tµfãÎP7IyßZ@-Eé6- 6Gx8RÛf±¥t+QÜd°…ÓV7úÔ¤„ÓâQƒÕÊ“¬SòpZ,ºÕg-Sà¹úF<-&žœ!9 –ºÑF[›®_h÷# –òpÄÇÒKýµn=,`•€ZÌÙ‚f
¨EÝšŽøæPKï-c¨%Ž´ôÃjéËÒb«Ûf;^P³T„€ºž9ëñ±EÔÅ&n ©eøó£ÕÅÊa‹hÊBjö0¶ºØ®"¤–qµ¨E -=J¨YC@]ϯB˜G@]ëv»êaµ¼Æ¯œh@]Ë•§}@]Ÿ›õR¿ÔO-¢^5ŠnѱDÔÒ¾¾F#j)¯Ëµ´Ìu¶ˆÚt¼Ù#h‰¨µÍ})DÔjpαFÔR§C:û¨}m™[H½Ê2®´ZÏqòÏ"!µtß9¶1MpÙ»ˆZ΀Åæz5¢^õÊúµž—[l£uÓ‰v"êZ®ƒþBD½ºn“#j©[ÛhH-»Øì¬ÐZ$PY -”CêUœˆ¨kqídÓˆZ]Ò5¢p¨¥n:v;†ÃüÓˆ°µ\æÆ -Jõì9‚¤zÂícGR•··#Hªöv©šÙsé@ªöö±H±¹©:ÔvP¤âDe -JÙTyÈjq›:ŒªÐmM©=8FÕºÞ×£úÎëU{X£ºK0ªUëÕ·Y¶À¨ê륣¨Æ¥” ¨©økPTÝíuê0ªî¶1O1ºt0*n^zŒJÇœƒ¢µ¤D h‰ãÒ(Zl¶ˆº…•r™zˆo, *eÛATºÛÔ3Ôj"*eûÙchñïØ3TEI;ÂnñÕ½NÝÉepêIŽSG8©Ó«ÛJ8‘˜#L”¸ßÄ|6½^ñ¦¾õ^o*F[9ð&Êöfã³âMµî½ñMËS‡7ÖÀþ5x“²^ßIxS{Ÿo²aoR¶ºÉ\¦tÓÃ5ÜÄf=JÇ6‘b÷†6ñf—e´‰¯² m¢ãjOu´‰²½[`¨h[|ÝWFÛ²DX§hÅ×; ÒM”m¹gH£›Ùz†:ÝÄØÂrΈínÐmYcLRº‰±¿•àx«eY¬“éV«ê°³ÝÄO–«[àMuì¹£›TÉšgè¦eK
”n¢<6tݤn-%è&†ö47)ËLæ›ZÜÖ˜zÇ>œoÜ™oúÞ–XéÑSýÚ²&å›msd¾iÕxÓwñ3Lð¦Îú°w|SóÝb/囶¦±Iù&=äXÇŽo"lûY=÷—Ùz:|Óž7Oß´sZ樦þU–5 -xÛË”8'Òö6oÁ9‘¶÷a Îͺ°¦tœi{^ÖàœHÛ£‡mÂ9QgK -æ&uF·ÀÜäm’97é…á=8'bñàœp®–uÕoæÜ$Ýk‚s"(ëäšsn"Iœ›˜aqÎM¤1Î9u«ƒsR§ËQœsâh/c›™“òäWÁàœyÝ[p.öᜓ²uÏÀœ¾uK\õ~ynŽ-–L9J™«”÷¹åTH?æŽsr ‹’”sÚœíòF-–2÷×7¤#MÆ$üsÒñl’³aÎÒÌIW°XÍ0W;ÏbùrÃœ,…°k†9˾5ÌIÙò冹âÍæŠçN`®øÊÌ9]Àz4ΉÔm“óƹâ rϹQ×%¬™s#?0꜓²fë:)-PЉŸ-âŒNJ“^:QšýêE€ndžÖA'*ô¾¶ÌUžÖ>s›zÚZæjÊ÷ Óré3WÝoK\Uâ¶IWZâ6q “:%¿ƒNÍñ©]Ê•V,¼ÐÉ7.¥%®£-ŒÐ‰ä:}âª"ì1èÆÚetâÚʺ…L:Qr'Kn•t£ÿ¤õI÷Žt"nï
tbù{K\ÅÛÞÆ’@'Ö¶_ÎQЉµ
‘åäkÛãÐ -ЉkÌõ @7êŒFË\UÓ¶zÐc?G'uK‹ç´8¶ÌÕìês"`—£%®R>Æ)0'åôW ¤n--q}8æ¤<¬}âªomYöl}¥8 -:-o]âªUsK\qÅ:êGŸ¸Êœ–¸js¥”tÒC»$¤“ž´Í-q•Á:íxcŸ·JçœíWµÓø…GçœtçcîóVýa‚i -Î)Xö–·jÙœÓÓ¤aN‹vÝC1§ :çF_7æÆ)®+æÆÉÇúse°[«"UÆ:椬©º}Wº3ä¤f²ÜT³Ô¥ø9)Ú¼`0Nœçmn— ¤<.m¥Š”ç¥_©"¶¶íT§Â·Mú)â´<ô«Ut·v9A§†·]6RÆ©ÎmçL0N궵V1qüÆIy±à.'ßÐÙ©Œ+þkž0N\Ö}ï—«\Ü‚qâÍ.)gÍöØúå*¢ãŠãÄØ6~)âŠÌºøõjWë½”qµ¬+ç`œØإ̉qâcë”—3NüíioËUäyg^0®ˆÖrVѵwÝqµ\ñÕ_…(2•±´Õ**_ÛÊE\!ùHˆ+Ì°8ã - Œ3N”çÑòÓ€œÚ×{[R$·*k@NÊÅ/S9©†¶Z%öá“ò¼ö«Uô½ç1 §¯ñ«hslÓVѪ©VQy|j«Uä뉜!'Æö¾·Õ*Úžã“.rØõƒ€\‘_ôœÛr•orÚõÆ~¹ŠtÏÝVÊh·‘éô©a®–‡iê—«H/_ì"‚bNÁ²µå*Z¶d90§gŠe²Ê9#ÍœS
ýrÝÏЖ«HÙ/`+ç´<<[®¢¿=¹uáœÎlNspN~pÔEáœX”ÇÞçâpû”Ý&ž¥yF:™÷ËS:nP'ööbduòëž“êäœ\[ÚºÉÊÙ¹¡Nʃ!*P'»ÝK»Ú*'í0´ë(ßu*Žc Nüìqkyë&Ëž—>o•“_Øê䕵ÍΉຯýW\\ZÞª?K9µ•yrFnÆ@¬+œÇv!â£ÓòVùÁÒã裹ƒeÓŽ:Ypì´4ÔÉŠó’/Dˆ½-o_&+ê_Ô“QgêYc,N_—ƺ¡]¨Ö
þs°NæølBÀXW|®1³N5è–·j¹´¼µŸò̬ûzoy«Ú[Yëjy–žuò«YCË[c°NW÷¨“·¶,ÈP'/iáœmÑåZ5µ¼UÕñ©åÅš«#]=ãÞòViÎqhósòcˆÓÖ“®ö$¿ï‚Nøº•¶ D:^Ùû¼UfÇ‹ÍÇI§‘Étç©‚®öçÍWÍèv¹g›(è„,ÛÖ.¸îfw Óß2.í‚«¢fi
žYºZçkÈ”s»^Si\wíçsÎ…’@:¤ÓÙ³ÏlIɬSd‰È*ƒS$¯á‚dÜ©r±•w!ƒ -É+†Ã -9ÃàŸÑØþs‹Ø²ÎK4 ¬ÈÚ°_ÍZõNãèö–\‚“µbËëÆÕ‘f˺†9"åÃ~¹A: ¥|UG–Ãó^³Ý‡b[lI¸ÎMË¢¶5Dl»+Éæˆ.ƒsÃCÌ‘ZžÊ6Ç;ÈĬ,[]½–I)—r„9²ÈOíñ©Ô‘ÅU“)²JIWè™Å¬æÈ2ÛòLßDÍY8µoG˜#²pj›Bá&¾‰-H›Ã{Ñ~¨·©ñßÄqdÑß—tyÙÅ‘Z'c"∬_,öczÁUÊËÒ€MºÒ´G¤¬…‹#ºæqíÕ©ÛÍÕÕ²ÖjÆ‹µ#¢Ñ½o£êˆ.+%ÔyþÒ•«#òü°…ž¡êˆ¥-Ì9ˆ›™$jŽÈ^Û&jŽHcô1GtÑÛX‘²¬Ja±>t±œý„˜š#ÒæîY«9¢Ë+Kl£3Ò—ôG¥Ú>4úÁ‘òÚ”5GùÀ1Äé®Glb7]L±‰t|½‘Î|„9"çvº˜#rnÊußFÍ]@9†8"‹wŽæâë§ðT±;ÜÌ!ŽÈü÷T‘%šÂùèž³Þ‹gŸíGÔ‘•ü~Êb÷êÙJû)5GdÕ¢†ânŽÄêP7GdõèÞ`
&KíæGä%“K "ŽÈÓM³ÕQº0Õ<PGô5îfË+Ú²ý;˜#J] ”º:(uw¤C©»#R·G¥®t,u}$XêúH°Ôõ‘ÌR·G¨fOÝéxêöHðÔí‘à©Û#OÝ žº=@u{¤ªÛ#T·G - ˆC!q($ q$ ƒÆ¹A’‡Aâ0H@IF ˆÃ qndÂa@87Hp.d¾¹@ÞHÀIÆ xC o$o$à
Â!d¡@8‡B’ ‡BáèÛ Î’L8' ˆsƒ$ƒÂa@8’L8ì‡Aâ0H2ã0H`\Ú‡2ƒ$3ƒÄ‡@ãH2ãÜ q$ ƒ$3ƒÄ‡@ãH2ãH` ŒC ÉŒC r$@ƒ$CƒÊa¤ž 3 ™r$N9H€I¦ ”C r$ç”à ɔC!r($P‡$S‡Êa‘À94’Ì94@‡FèÐHè°H -;,’;,‡ °C"É°Ã"vX$Ћ$Ó‹Äi‡DíH2íH ´C"É´C"vn‘ -"—@ÁK2C.„!—@ÂKÎQøŸØ.‘e².$Û%R7N!—ÈÊŠuo7%‘òÐnÙ¥r‰¬¶ð7k8(åyŒ»üÉzÝ3D®›HU™Û]þdMÀ0´»üÍóÎÜ’@.ÿëO¹[¢‹Föv—?YTÒVÈë4Tù-ÁT-©eû‘zWK¤<Lñ5T-©uzIWKl5K»ËŸ¬A˜¦þ.²AµhWKjysGÝY`ÐÝõÁfRn††[¢‹„¶v—¿Y²œðDì×½?”›%²Á:µ»üÉêžr¸Y - ÌÙæ(í.ò¼\ZÓmÜ,‘A~ÃK]á ô(í.²‚bÀwp³DWUìí.³§‚˜%RB·q³DÒ¼†Z"Ñî¢f‰gi:ßDÍ©;¶v—?]r´»üIÓM4·Bt]ÉÞîò'e¿ßˆš%ºiïïò'uÇ0_¤}ln€¬Öñäþêñ62Ñ*}s<Ú]þ¤ëNG»ËŸtíeŒ# f‰®`Û]þ䤒°³D–&ɽ{}5Ktѱ†Z2v+$WKdá4–wUK¤ni·$‘=øyÔ,‘ÅL²|?:§ýp,·¶T³DÊeowù“µ<k»'‘š%º¾gÃ,‘…T¦IѲھ5Xý†úi®–Hy_Û]þ„BµúVyì×Ü,‘ò6¶»ü)̦ùßÁ,é0êf u±$0êbI‡QK£.–F],Éu¯$8ê^IpÔ½’Ž£.– - C!É C!t($€…$ƒ…С -GÓFŠÿÂ?Úˆå¾i#õb£©6Rl!`h#%{c¾6ªÖémßðFä5ÇÒ¼9jÿÖHÂ(ÒÅqŒ"dŒ"8FqFÀ(ÎHæ(ÒE£H#™£H#ÀÔXŠ5’YêÚH°Ôµ‘`©k#K] –º6LÝé`êÖHÀÔ‘€©[#LÝ ˜º5L±F2LÑF€)Þ4ÅÉ4Ŧê€R¼‘„R´PŠ6JÑF2JÑF@©k#m$‘k’º5HÑF2HÑF -×¥èæ-b.–2¨7èfóFçf×FàÜìÚœ›]Éœ›]s³k#pm$kÐa -¹ðFœrá$Ê…7b”mÄ1ÚHÂ\h#Ž¹ÐFs¡$Ì…6âœmÄ9ÚHâ\x#ιðFœsátœk¤q.¤ç\X#ƹFéB1Ò…3â¤g$¡.¤G]H#ŽºFêFua8êÂI¨Cuh# m$£mÔ¡8ê°F2ê°F@Ö¨ÃɨÃuX# k$£mÔ¹7êðF2êðF@ÞH ν‘Œ:×FuC@ÙPçÚH‡:×F‚u®ë†v¡bˆMÔ Ö¹5¬sm¤ck#Á:×F‚u®t¬så#XçÚH°Îµ‘Žuh#°mÖ¹7’Q‡7êÜt¥å+Gû2ûÔòÖÐF ÚH&Úˆ“.´']h#‰th#ºðFtá$Ð…7b mÄAÚH]h#ºÐFt¡$Ð…6â mÄAÚHÞˆs.¼ç\x#çš5Ò@פ']³FuMI¬kÒˆÁ®9#N»æŒ$Ü5iÄyפ^“Fñš4âÌkÖˆC¯Y#‰zh#P/´°ÚHæ^h#€/´'ÖH&_X# /¬ØÖH†ÖHÄynDœçÖHç¹6q^"›zîtž{#‘Ìš7¹¬{#9—5m$RY×F"•um¤KeM‰LÖµ‘˜²sm$OÙ¹5SvnÄ”k#Ý”k#1egyMÌع6ÒÍعò3v®ÄŒk#ÝŒÚ3vh#ÌØáä);¼æìðF˜³ÃIsvh#ÌÙ¡0g‡6’çìÐFHeÑFˆòÐFr”‡6B”‡7B”‡7’àÞˆÁ¯i#N¿¦$ü5mÄùÚˆó¯i# €Mq†6âlÚHB`óF‚Íq -6oä_]üŸÄ‘Érq…²6"ue›C‘ wYNˆ7"îÒ¹^žš7"óôǾ†82ùä‹#òôæ÷ÝA‘:™™A™ê ÌGˆ#R®
~£›Hi]ÜçÐ0r´©=¼¹Ø°s¼ƒz#£]×od´+áŒ6çÛ˜72ÖOjÆ‹z#2;=®MñÙißÄÄQ*Ž£‰#µÿšfcÞH9»¡ƒÕéÂËðF;o©ý¾Hãv‹(¼(ëaod°Õ꾉
LƒeÓᶶ4¼‘Ánü£Û Ž²†sk∜WËÒÄ9÷ÑGŠÞ+¼¹ž´¯Í©eAµn‚8"i?š8Rl„q¤Øú5ßÆĹä[Ö&ŽÁBm5 Û¨82Ú∴¹ÝKÄÄ‘úþ2ßäÛèÄŸÔ©ÙÞö¡ûG©e)x`ýslÞˆtÞ)6Ñ·Ñ¡‰MD‘@ÖB"ŽÈyVÓ¦Gä<<õ]Ñ‹.sx#µ¨·AroD/Ñ,}@½©““oDöà÷ÜQoD®sÉatÏYUM8"eÁ9âˆ\æYÚí†TÑKhûâˆ\b›IŠ–Õ\ôm¬Á&] - ”Ã!É”Ã!rH$p‰$s‰Ð!‘ -9»¡Î]’uî’ê\& Ô¹LÒ¡Îe’@Ë$:—I2êÜ% Ô¹K¨óKçêpI@»$—$“—Òá’@:d’L:dH‡Lâ¤Ã%ɤÃ%t¸$C,ñ?JÖ…KéÆ ˜’.\’DºpI†H÷Í%bVÄ\’„ºiŠ££¨›Iu2IbÝ„Lb¬›pIœu.IbÝ„L⬙ÄY2Ib]È$κIœu!“$Ö…L⬙ÄY2Ib2 ¬Kû°Iz“I2ê\&qÒá’@:\’L:dH‡LéI2ë&—Iœuî’êÜ%éPç.I æ‚:wI:Ô¹K¨s™$Pç2I‡:—Iu.“ê\&éPç2 ¨s—$Pç.IÇ:wI‚uî’ëJäÊë°I2ëÐI`: °Ã'É°Ã'v%À¡$áØ!” -ã ‹%A;K:Ú¹Xâ´Ã+vx%™v{Kï½íy%À¯$ïØ!– -·$Oá!—0…‡\ÂrIžÂC.a -Ï“fðKòr 3xÈ%Ìà!—ä<—Kb¯íÃfð\.é¦ð\.aÏÝ’˜Ãs·¤›Ãs¹$æð\.‰9<—Kº9<—KHkÝ-‰hÏÝ’.Ús·$¢=wK"Ús·$· -â–@ÁpK2Ã-„á–@ÂpKÎQøŸØ.‘É#QŠ²]¢“Ls »DÊrÞ`—Œž8¿<5»D&ª$ôÀ.‘ò>ÍØ%R,;[¨\"Ó_˲„\"ó)¾Ô\çªk¹ænv‰L¦{È%2ß6º"rÉ(Ëj×°>˜mY¿ ‰ÌHy°5ó*—Ôò2·5ò*—È,Žt—Ktç˜B.‘ œmŽ/¢rÉ8™!‚\RË5¹ßÂ.§³Û>XnŒn+¬‹øn—Œ½X2Vü-;^‰L‹Ê›ðJt*•»q¸W¢³¯æ„¨W¢S«"Y¸W¢3¶~+'¼™^•H¯dœ,ñÃ+ѹTÜ÷JäËÖæ±D^#Úb‰ÎW!|Œ>?¥ÌE,‘¸á•È1^Ú&ê•H;èÝ+©eífx%RÞš»±Û,®Îz¡•Hkû½FT+‘Þ°¶…èôß8»ùÞöa· Q©DúܲÎñ.úëKóåV‰ôZ½©‹/@ÖY©m#V‰ôücZÃ*‘ói3±F9'ç&¼¨U"’Ó°…V2ÊZÓ‘f{Z›Ê»€j%²É±‡U2úÂN¬’ZVÀG·œu7º)VɸÚÙ†U2¦;“a•È´¨ÄEX%2ÿ¬?ñïVI-«ØèÛXs-¶„D^#½ Dž±ÌVK „$¨Â*‘—¿;‰,¸RÍÿ÷#éêVI Ô’@¨[%BÝ* „ºUu«$3Ô¥’`¨K%ÁP—J:†ºUHM* ŽºTÒqÔ¥’à¨K%ÁQ—J:ŽºTu©$@êRIR—J¤.•HÝ*é@êVI€Ô@ŠU2öB‰ƒŸ’â“d’â“@RõIÀ(>IÆ(> Å'£ø$£ø$`Ô…(ŠP’)ŠPE](qˆâ“dˆâ“ -ã°F`ÖŒÃù†q²F^Œ“5’Œk$'kä…8Y#‰8Y#‰8Y#q’Fq’Fq’F^ˆ“5â$$â$¼'i$ÒHNÒÈ‹p’F’p’F’p’F^„“4’„“4’„k™Ç]yðìä’síÖH".¬'aÂõE¯-TÏ„Ãpø" _¤"_Äá‹€8|‘Ê8|‡0ãF*ãF`ˆ‡/R‡/ãðE`¾HaªŒCqè"•qè"0®ìC‰,×ýBœd‡-á°E*á°E ¶„éŒÃqÒEqÒE^ˆ“.â`í*Rá¶Èq²Eq²Eq²E^ˆ“-’ˆ“-’ˆ“-òBœl‘Dœt‘Dœt‘Ê8Ù"É8Ù"ɸ–}âãºl‘ʸ.[ÆuÙ"@®ïÙFLÈuÙ"@®Ër]¶H\—,äºd ×%‹TÈuÙ"‚\—,äºd‘ -¹²Œë’E€\—,R!×Q\¹.YÈuÉ"r]²\@®Ë©ë²Er[Ù"@®ËéoQD”ëòD \—'R)×]8ž>äº<‘ -¹.OÈõ3IìïN—'R!×å‰ -âP<@šˆC©ˆCqe±ˆK"•qH"@KÈa‰TÈa‰ -ã°C`vŒÃùdvHevŒÃqØ!•rØ!P;Êa‡Ì!‡€9ä0‡R1';D˜CsÈ!sÈ!`9Ì!‡TÌ!‡€9ä0‡R1‡æCÀvHÅv˜ÃsØ!ý-†sòBÀ^HÅ^˜ÃIÌÉyaN^HbnKæä…¼0'/$9'1$9·å¤ÄâœÄäœÄ8'/äÅ9y!É9y!É9y!•sR:’sÒB’sÒB^œ“’œ[ûÐB Y#H!‰¹°B’rmõO’r²B’r²B’r²B^”“åÐB ZH¥ÜX&ôi… -9¬ ‡ä°B*ä°B€Và -©Ã -rh!@-¤@NVŒÃ -qX!ŸŒK+¤B.(—V˜K+¤r.@—V¤K+¤ .¥X—R°K)¤Ò.ñ.¥€—RH%RÄK)ä¥R™—RÐK)ê!…Tê¥öR -{i…Tða…dûNVH¶ïd…о“Bû®PÍxòA^
<ù Ù
$û¯òA^ýWÕ û*$»¯òA^Ý×ðA²÷*!$‡è$„¼†è$„䄆è䃼†èäƒäº3ŒÐÉ©#tR9r„N:HŽÐIyÐIɺµ_$d×d£“
’ct²A^ct²ArŒN6HŽÑÉyÑÉÉî«tlÝIyµî¤ƒÐº“
’;Ù |Ø €/mÈ—6HE_Ú °ö¥
Rá—6ôC~©ƒü¥
-â}·ÖPAì¿^gþÂ]‹Ùäù·mpAìßOkÄz”GDôî°3AžoÖ5æO¸£tÇŠ1È Öq="ŸÜeçßÏ
ÏÃrÄûº!±X’õb"iÝÿšõbž ¿pÄz2Ö Ã±^ŒÔwA¬‡òZÊ¡±¨aKÄ:þ¾DŸ\n8$„XÌ&%e„ØO¬…Âø‚~â_$—Ø{!>æ°i„øHÇ[ñá’ÞR±#}Ú½)„ØÙLD !Ö/³Õ¯Bìß6lbÿ¶GÍ#!Ä®’Ý„»Š6§…âýÅõ7B,6dØŒ¶Ýëô`„ؽëÇZdD×Ô_x”û·Vq%Äž‘çÖò볘Këìã¶vñRH³ÜÀ£åßñåjŸç³µÔˆ=¾=]æòsBì
8žMqBì5³†
Nˆ½†sËMü•´Þ¹%¤â„´k É ±Îüà"'Ä;üñܸb»Ðz;.…Ø€ˆuHòù<|?g¬âNˆýs‹—ÍW9ÖZCî„Xìùô¤bcG¤ù¿ÝGÔo(xÑlü'ÄþmMœ»çu½¤‹Yk)Äþ}ÅÂ>žEå<ëÿœ -R)! R)!€TFȤ2B -8Ä -ÏË©œÃsø"€_¤€]С‹ -èÐF -9´(ÇëåÐF*åÐF Úˆ(‡5R)‡5å°F ÖH¥\“5嚬(×dTÊ5©#P®],Þu¹#ríÎÖ—S®ÉrMîH¡\“:åšÔ(פŽTʵPG€\“:äšÔ‘ -¹&uÈ5©#@®Ñ)kŒ´ˆrnŒ(×äŽTÌ5‰`®IsMòHÅ\“<ærÂ\“>R1פ€¹6Ö|ZÏß¼rWšì0×FÎô:æšì‘Š¹&{Ì5Ù#`®É©˜k²GÀ\ƒ¸#ç«]©œkÒGĹ&{Ð5Ù#tMö k²G -;ä`‡<ìG*ìG€òˆ`‡;Ra‡;ìpG€îH…î°Ãv¸#v$ÀN °Ã ©°Ã v$ ;$vHvÛ²ÃNÉvH’vH’vÛš²HÚI IÚI IÚÉ yÑNIÒNIÒNÉ‹vÒ?’vRH’vRH^´“B’´cÐ.$’ì$‘$ìB"Iֵ촜å–yœ¬k9笓CòbX‡CëpH*ëÆZeêðW8$P‡DRQ‡D"Ôá€:’Š:P‡CêpH*êpH@ ¨Ã!©¨“DéH ÉéÒ!)¨K…Ö¥B"Ø¥ARi—‰p— ¼K¤/
ˆ— ÈKƒ¤2/
¨— - ØK…¤r…î¥BøR!©äK…ô¥B"öaTö¥AüÒ ~iTüad[OI¶õd¼ÚzÒH²·Ø=y$¯Æž<’ìÒ†G’=Zy$µG«uèÐJ#É4’W‡64’ìÏJ#É¡;i$¯¡;i$9t'$‡î䑼†îä‘äÐz7ŒÜÉ#yÜIÉ‘;‰$9r'‘ä5r'‘$GîØ#wRI^CwRIrìN*IŽÝI%©cw2IrìN&IŽÝÉ$yÝÉ$ÉL’léÉ$yµôd’dKO*I¶ô¤’Tü¡’i’À¿4I* -SL`*“–b’T–b’ÀR™$ “¤¢“”b’€RL’ŠR<P*“’Ê$© Å$¤kRL’ -RL@ŠIH1I -HÓ$HÓ$H1I -GÓ$ Ž¦H"Ž¦HR@š"‰@š" E$© •HG1Ià(&Iå¨L0ŠIF1I*F1I„QD0*‘d{‰d!’@QD(ŠHòAÑ4I -ãR%ãR%ãÒ%)ŒK—DŒ“L"Â¥LR‡L"À!“ -á0I¸4I¸4I -áÒ$ Â¥H"Â¥HR—"‰—"‰—"I!\Š$B\š$B\š$qi’ˆqi’ˆqi’Æ¥IŒC$âR$)ŒK‘DŒK‘DŒK‘äƒqi’Æ¥J"Æ¥J"Æ¥KR—.‰—2‰(—2I¡\Ê$Â2 ˜C&IÌa’€9L0‡IR9‡Iç0Ià&Iå& œÃ$s¨$t¨$& ¤Ã$)¨C$uˆ$°‘¤²N" ¨C$uˆ$uˆ$ ‘ÔI$©¤Ã$t˜$“¤’“Òa’@:L’Š:LP‡Iê0I*ëd’€:LP‡IRQ‡ê0I@&IE& ¨[ûÔa’TÔa’€:LP‡IRP—&‰X—&‰X—&Ia]š$ÁºIĺI -ëR$ëR$ëR$)¬K‘D¬Ã$êÒ$)¨K“D¨K“D¨K“¤ .M’@]Š$b]Š$ÛK(‘D¬K‘D¬K‘äƒui’Ö¥J"Ö¥J"Ö¥KRX—.‰X—2‰X—2Ia]Ê$b2 ¬C&IÖa’À:LX‡IRY‡Ië0I`&Ie& ¬Ã$u¨$•u¨$b& ¬Ã$)¬C$uI@"IE" ¬C$IÖI$y±N"I².D’DD’ëd’$ë6¨,Ö…IòBL’DL’DL’êd’$êd’$êd’¼P'“$Y'“$Y'“äÅ:Y É:™$É:™$/ÖÉ$IÖå>Ä:™$/ÖÉ$IÖÉ$IÖµì²$ë0I`& ¬“¤’“D¤C$éR$)¤K‘D¤K‘D¤K‘¤.E‘.M¡.M’‚º4I„º4I„º4I -êÒ$ Ô¥H"Ô!’l/ìVÿØ_ØIDºI>I‡IRI‡Jé½õ -êÒ%êR&êR&)¨K™D¨C&uÈ$‰:LP‡Iê0I*êd’@:LP‡IRQ‡Iê0I@*IE*‰P·ÊPê0I -êI@" ¨C$©¬C$uˆ$°‘¤²N" ¨C$uˆ$u˜$ “Ôa’TÔa’€:LP‡IRQ‡Iê0I@&IELH‡Iéd’TÐa -é0It)’t)’l/›,RºIºI>@—&I]ª$]ª$\’‚¹tI„¹”I„9d’B¹”ID9d(‡L’”“Iä0I€&I…& ”#íÊa’TÊa’@9L(‡JR)‡J"Êa’@9L’B9D(‡HåI*åI œD ‡HR!‡HåI "I¥& ”Ã$r˜$•r2I€& Ã$©Ã$r˜$@“¤B“Êa’@9L’Š9,0‡Iæ0I*æ0IÀÜÚG`“¤b“Ìa’€9L’‚¹4I„¹4I„¹4I -æÒ$ Ì¥H"Ì¥HR0—"‰0—"‰8—"Iá\Š$[z7a’ti’Ð¥I"Ð¥I"Ð¥IR@—&I.E‘.E’BºIDºIDºI>H—&I!]ª$"]ª$"]º$…ué’ˆu)“ˆu)“Ø¥L"Ø!“ -êÒ$ Ô¥H"Ô¥HRP‡H"Ò¥H"Ò¥HòAºe’Ô-•D¬[*‰`·\’B»å’wK&ï–LR€·d/e—2I2/M¨—& ØK“¤r“î¥IøÒ$©äK“ô¥IûPI*ûR%üÒ$~i’ü!’d[O"I¶õ$’¼ÚzI²—lScO"É«±'‘$»´!’dV8zõhÃ$ÉL’ìÐÊ$yuhÃ$Éþ¬L’º“Iòº“I’Cw2IrèN&ÉkèN&IÝE÷&Gîd’¼FîdäÈL’¹“Iò¹“I’#w¹ÜÉ$y
ÝÉ$ɱ;™$9v'“¤ŽÝa’0v‡IÂØ&I»Ã$Q‡‘„–"Imé!’ÐÒC$¡¥‡HRð—"‰ð·Lño™$€Ë$Ó$—IR¸L’``Š$bàI -—H".‘D\"É?"_ù¿†Ib[Í?Ä+éž ×_^I·õ˜¶3¾Ÿ—Õ§±ðJºe8Ì+ß/[yDzX£Ää¤xº¥•t½ŸúE,_lã—Ç•ZI·Ï¸4_-ûç¸c_ü7öχÌ2Iìá}XÔÂçˆ5Jž¦‘¥|ð'|¼Ö—š9Ö%?_¾<T®QâSœß<ß{’KBŒ§0=´m±òB”•ôé±F‰åøœgš%6—³ß±@‹«%öà>·\bæóNi—lö&ÙRè%ö}{¾~¹êˆû%fÉfè¾@‡ÔûÌØ£¯ø¶'OÆ-ÙÜ«*«”„~°½í’ço=°PE<×ÁÞ´£·µRÉsãÎݱê™Û¸_âÓd=L Lž-v½üg2Lìj
ï©táÿyÛìë‹•øðéÁb±’‡û[¿×b%Ï7‚AÜX°ÕËf:OoÙbÑËÅJ~>µI¬Ubã3-F]
[$–ú1èÁZ%?öס6pC{&ÝòⶵTI·ø}Ùåï׋HÊ0±o§÷Pd˜Ø‡ñl)¿D]=Ë2¹®TLl/›åb²û
ËG'n>
ö¡˜ì.©˜ì¦ø´÷Z%{,Ÿ†abóZ¼È
ËßÏ|éÜ0Ù--ûÍæ¹g&ÝÇ|bíEûk×,ĉ–Š‰å{Û3ñp9…î§)¹§bbÛØëƒbbd»äÿ+&ô¼ªóéeÝeÛ?ù“?þå—¿ýõÏþÓßüGû“ßuQ^ð•‹’ð•‹’ð•‹ò‚¯\à+%á+åE_©(I_©(I_©(/úÊFIÛœ±õž@0›T³° faÌÂ&Á,l‚Yس²Ia0›À`é(‹ÁòQÞ–‘²,%%Œ“òb0RÊ–:JB¥B%!ìBJ#åE`””$0NJ)¥'% ,)%Œ•ò0ZŠ]*_íNÄß\á¤ð7W8s…ñ7W8)üÍõIÄ_V8 ü²ÀI¡o.p"ú®}s“B_´Ñ+úb¥Tú¢¥@_´è+-¥Â-ø⥠+l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>
endstream
endobj
962 0 obj
<</Private 963 0 R/LastModified(D:20100413200510+02'00')>>
endobj
963 0 obj
<</RoundtripVersion 13/CreatorVersion 13/ContainerVersion 11/AIMetaData 964 0 R/AIPrivateData1 965 0 R/AIPrivateData2 966 0 R/AIPrivateData3 967 0 R/AIPrivateData4 968 0 R/NumBlock 4/RoundtripStreamType 1>>
endobj
964 0 obj
<</Length 974>>stream
+%!PS-Adobe-3.0
%%Creator: Adobe Illustrator(R) 13.0
%%AI8_CreatorVersion: 13.0.2
%%For: (Gilles Dubochet) ()
%%Title: (type_tags.ai)
%%CreationDate: 4/13/10 8:05 PM
%%BoundingBox: -227 -99 143 234
%%HiResBoundingBox: -226.5 -98.5 142.5908 233.748
%%DocumentProcessColors: Cyan Magenta Yellow Black
%AI5_FileFormat 9.0
%AI12_BuildNumber: 434
%AI3_ColorUsage: Color
%AI7_ImageSettings: 0
%%RGBProcessColor: 0 0 0 ([Registration])
%AI3_Cropmarks: -59.5 -62.5 -46.5 -49.5
%AI3_TemplateBox: 40.5 29.5 40.5 29.5
%AI3_TileBox: -239.5552 -349.6377 319.4453 433.3623
%AI3_DocumentPreview: None
%AI5_ArtSize: 841.8898 595.2756
%AI5_RulerUnits: 6
%AI9_ColorModel: 1
%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
%AI5_TargetResolution: 800
%AI5_NumLayers: 5
%AI9_OpenToView: -285.3354 49.2085 4.4426 1589 965 18 0 0 470 360 0 0 1 1 1 0 1
%AI5_OpenViewLayers: 77777
%%PageOrigin:-399 227
%AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9
%AI9_Flatten: 1
%AI12_CMSettings: 00.MS
%%EndComments
endstream
endobj
965 0 obj
<</Length 7512>>stream
+%%BoundingBox: -227 -63 143 234
%%HiResBoundingBox: -226.5 -62.001 142.5908 233.748
%AI7_Thumbnail: 128 104 8
%%BeginData: 7364 Hex Bytes
%0000330000660000990000CC0033000033330033660033990033CC0033FF
%0066000066330066660066990066CC0066FF009900009933009966009999
%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66
%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333
%3333663333993333CC3333FF3366003366333366663366993366CC3366FF
%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99
%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033
%6600666600996600CC6600FF6633006633336633666633996633CC6633FF
%6666006666336666666666996666CC6666FF669900669933669966669999
%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33
%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF
%9933009933339933669933999933CC9933FF996600996633996666996699
%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33
%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF
%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399
%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933
%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF
%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC
%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699
%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33
%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100
%000011111111220000002200000022222222440000004400000044444444
%550000005500000055555555770000007700000077777777880000008800
%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB
%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF
%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF
%524C45FD0AFFA8282F53FD7CFF06A8FF5359FD7AFFA92EA8FF537EFD7BFF
%53282E28A8FD27FF2E2828A8FD51FF847EAFFD27FF5953AFA928FD7BFF59
%2EFFA82FA8FD7AFF847E7E2E59FD7CFFA87D7DFDFCFFFDFCFFFD31FFA9FF
%FFFFA9FFFFFFA9FD76FFA9FFA9AFA9FFA9AFA9FFA9AFA9FD1AFFA87E537E
%A8FD2BFFA8A9A8AFA8FD23FFA9A9A8A9A8A9A8A9A8A9A8A9A8AFFD17FFA9
%7E282F282F282F2F7EA8FD26FFA8532F282F282F53A8FD22FFA9AFA9AFA9
%AFA9AFA9AFA9AFA9FD16FF7E2E0128062F292F292F062F7EFD23FFA85906
%28062F282F2829065384FD1FFFA8A9A8A9A8A9A8A9A8A9A8A984FD16FF84
%28062F292F292F29542F30292FA8FD21FFA853062928FD042F542F30292F
%84FD1FFFA9AFA9FFA9AFA9FFA9AFA9AFA9FD09FFA8A87DFF7DFFA8FD04FF
%A8280529282929535353292F292F292FA8FD1FFFA92F00280629062F292F
%292F292F292FA8FD1DFFA8A9A8A9A8A9A8A9A8A9A8A9A8FD04FFA87DFF7D
%FFA852275227277D27A8FFFFFF530628282F5AA9FD04FF7E302F302953FD
%1FFF7E06282FA984A82F7EA8A9847E2F302953FD1EFFA9AFA9AFA9AFA9AF
%A9AFA9A9A9FFFFFF52FF5227527D7D52527D527DF8A8FFFFA8002806297E
%FD07FF7E30292F06A8FD1DFFA905280653FFFFFFA9FD05FF7E292F0684FD
%1CFFA8A9A8A9A8A9A8A9A8A9A8A9A8AFFFFFA8527D7D27A8FD05527DFF7D
%A8FFFF5328282959FD04FFA9FD04FF7E302F2F59FD1DFF7D28282953FD0A
%FF5A292F53FD1DFFA9FFA9AFA9FFA9AFA9FFA9AFA9FD09FFA8FFA8FD06FF
%A82E002806A9FFFFFF7E067EFD04FF292F292FA8FD1CFF5300280653FD04
%FF5A5AA9FFFFFF7E2F292FA8FD1BFFA9A9A8A9A8A9A8A9A8A9A8A9A8FD14
%FF2828062FFD04FF2F2F29FD04FF542F2F28FD1DFF2E28062953FFFFFFA8
%2F067EFFFFFFA92F2F28FD1DFFA9AFA9AFA9AFA9AFA9AFA9AFA9FD12FFA8
%28052828FFFFFFA82F292FA8FFFFFF2F2F2929A8FD1BFF842805280659FF
%FFFF8407292FFFFFFF842F2929A8FD1BFFA8A9A8A9A8A9A8A9A8A9A8A9A8
%FD14FF2828062FFD04FF2F292FFD04FF54292F28FD1DFF5328282953FFFF
%FFA82F077EFFFFFFAF292F28FD1DFFA9FFA9FFA9FFA9FFA9FFA9FD15FF53
%002806A8FFFFFFA92984FFFFFFA8072F0653A8FD1CFF7D00280659FD04FF
%532FA8FFFFFF7E29282FA8FD1BFFFD04532E5353532E535353287EFD13FF
%7D2828282FFD09FF532F28297DFD1DFF7E28282853FD0AFF53282953FD1C
%FF5300280006002800060028000053FD13FFA92828060653FD07FF532928
%2828FD1FFF28280053FD09FF7E062806A8FD1CFF2E050028000600280006
%00280053FD14FFA8062828282E7E84AFA87E292F282F06A8FD1FFFA80628
%53FFFFFFA8A9FFFFA87E282F067DFD1DFF53002806280528062805280606
%53FD15FF7D0028052806280628062806280059FD21FF7D0053FFFFFF7E06
%2F28280628012EA8FD1DFF2E06002800280028002800280053FD04FFA8FF
%FFFFA8FFFFA8A8FFA8FD07FF7E06280628282806282828067EFD23FF5952
%FFFFFF7E28062828280053A8FD1EFF5300280528062805280628050653FF
%FFFF7D52FF7D52A852A852A8527DFF7D7DFD04FFA9A82828000600060028
%28A8FD24FFA8A8A9FFFF8400060028287DA8FD1FFF280600060028000600
%2800060059FFFFFFA852A8277DFF7D527DA8527D7D27A8FD07FFA87E597D
%537EA8FD2BFFA8282E7D7DFD22FF5300280528062805280628052853FFFF
%FFA87DA852527D52FF527DA852527D27FD3AFFA8FD25FF2E060028002800
%28002800280059FD04FF7DFFFFA8527D7D7DA87D7DFF7DA8FD60FF530028
%0628052806280528060653FD72FF2E05002800060028000600280053FD72
%FF5300280628052806280528060653FD72FF280000060006000600060006
%0053FD72FF7E2E532E5353532E5353532E537DFDFCFFFDFCFFFDFCFFFDFC
%FFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFD9AFFCACAA8CAA8CAA8CA
%A8CAA8CAA8FD74FFFD0DCAFD18FFA8A8587C5883A8FD53FFCACAA8CAA8CA
%A8CAA8CAA8CAA8CAFD17FF7C51262D2C2D2C5151A8FD52FFFD0DCAFD15FF
%A82D2C262D2C512C2D2C2D2C7CA8FD29FFA87D5258515858A8FD1EFFA8CA
%A8CAA8CAA8CAA8CAA8CAA1FD05FFA8FFA8FD0DFFAE2D2D2D512D572D572D
%5757572C7CFD28FF7C51262D2C2D2C2D2D58A8FD1DFFCACACAFFCACACAFF
%FD05CAFFFFFFFD047DFD0DFF2D26262D2C2D2C5757582D572D572C7CFD25
%FFA82D2C262D2C2D2D572C572C2D7DFD1BFFA8CAA8CAA8CAA8CAA8CAA8CA
%A8FD04FFFD04527D7D7D275252A85252A8FFFF582C2C2D2C577CCFFD04FF
%FD04572CA8FD24FF2D2C2C51517C83FF57572D572D2D7DFD1BFFFD0DCAFF
%FFFF52A8522752FF525227A8A82752FFFFA82D042D2C2D83FD06FF572C57
%2D2D51FD23FF5126262D2CA8FFFFFF582C572C572C2D83FD19FFA8CAA8CA
%A8CAA8CAA8CAA8CAA8CAFFFFFFA8A8FFA8A87DFF7DA852A87D7DFFFFA726
%2D2D2D83FD05FFCFAE2D5757572D57A8FD21FF832D2C2D2C57A8FFFFFF58
%57335757572C7CFD1AFFCAFFCACACAFFCACACAFFCACACAFD12FF5226262D
%2DFD04FF832C572D572C572D572CA7FD21FF58042D2C51A8FD06FF7C2C57
%2D572CA8FD18FFCACAA8CAA8CAA8CAA8CAA8CAA8CAFD12FF7D042D267CFF
%FFFFCF2C572C572D572D572D2D58FD21FF272D262D2DFD07FF58572D5733
%2D7CFD19FFFD0DCAFD12FF5226262C51FFFFFF832D2C2D2C572C572C572C
%7CFD20FFA82D262D2657A7FD04FFA8A7582C572C572C58FD18FFCAFFCACA
%CAFFCACACAFFCACACAFD13FF7D262D267CFD04FF572D2C572D572D572D2D
%83FD20FFA8262D2C512D57A8FFFFFF57572D572D572D2D58FD18FFA176A1
%76A176A176A176A1769AA1FD12FF7D2D262D2CFD05FF7C7D7C572C572C2D
%2CAEFD20FF832D262D2C512CA8FFFFFF572C572D572C572C58FD18FF4BFD
%0420442020204420202076FD13FF272D262C7CFD07FF2D572D512658FD22
%FF262D2C2D2C57A8FFFFFF57572D572D572D2D7CFD18FF76204B444B204B
%444B204B444476FD13FF7C042D262C7CFD06FF572C2D2C2C7DFD21FFA851
%042D262D2CA8FFFFFF582C512C572C2D0483FD18FF4B20204B2044204B20
%44204B2076FD13FFAE52262D262D518383A8A7832D512D2C58FD23FF7C2D
%262D2C2DA7FFFFFFAEA857572D572C51AEFD18FF76204B444B204B444B20
%4B444476FD07FFA8FD0CFFA72D042D262D042C262D042D262651FD24FFAE
%2626262D047DFD05FF582C2D2C2C58FD19FF4B44204B2045204B2045204B
%2076FFFFFF7D7DFF52A87D52FF7D52A852FF527DFFFFFFA852042C262D26
%2D262D262C52FD26FFA8042D262D2CAEFD04FF512D2C2D51FD1AFF76204B
%204B444B204B444B204476FFFFFF52A87D52A8FF52A8277DA87DA85252FD
%04FFA87D27260426042604517DFD28FF7D04262626047C7D7D582D26262D
%A8FD1AFF4B442044204B2044204B20442076FFFFFFA8275252527D52A852
%27FF52A85227FD07FFA77D587D58CFFD2BFFA82D26262D262C042C262D58
%FD1CFF76204B204B444B204B444B204576FFFFFF7DA8FF7DA8FF7DFFFFA8
%FFA8FFFFA8FD3AFF7C51042D042626587DFD1DFF4B442045204B2045204B
%20452076FD4DFFCFFFA8A8A8FD20FF76204B444B204B444B204B444476FD
%72FF4B20204B2044204B2044204B2076FD72FF76204B444B204B444B204B
%444476FD72FF5244204B444B204B444B204B2076FDFCFFFDFCFFFDFCFFFD
%FCFFFDFCFFFD2FFFA8512CA8FD7BFFA82D588304A8FD2EFFAEFD4CFF27FF
%832C58FD2CFFAE5151A7FD4BFF2D517C04A8FD2CFF047D7D2C83FD4AFFA8
%7D58A8FD2DFF2DA8CF047DFD7BFF26587D26A7FD7BFFAE5158A8FD7EFFAE
%FD42FFFF
%%EndData
endstream
endobj
966 0 obj
<</Length 65536>>stream
+%AI12_CompressedDataxœì½ë’$Çu ùùµ?dFš-ºÂãܵ5««³CF3š•ÁŠÝ°G}ú"‰óôëçò?žÕ€@Jfè$Øíž‘™áŸŸãá_Æ_ý¿ùò³«oÿðøÙôl¸8ýÕ_ݼ{|øðöݯ.´öâóW¯>¾ÿðNª~ñÛ_^”úªú¢«Ï÷¯ü…ÿõñÝû—oßüJŸz6Ö'ïeë_üõËW¯ß_Ü~üÃÛç|üðË‹_ü²>÷»—^=Ög?üéÛǯ><|óþÙÃË_ò®u7·êÓóe™.Ëp±ÿjX.~óëúüõÛo^¼|óÍõÛþÕÅgã¸]|vež.Æi®Ïÿ§—¿}|þ¢õÙR_¶×ÿ/óøl9†½¾zz¶Í{Ýâöíó¯ß|øÍ»·Ïß¿¿yûêí»÷¿º¸ùÓÛ‹_?|SŸy¸øï¯^½ý§‹ëWÏÿ>mrÿö͇úÒ_ÿéݡuûÏ~ûøÍÇWïÒKþæññÅã‹ï~áÕçËW÷/_=ÖcõúáÃÅ!Gõêó2~uýñå«óñõëAœå»]}>}¥Ÿî÷ïëǪŸPþ-ÕÛWŸ¿®5_>~øP¿t}i™ßþõuþFµR¿ø»úÖ/µ!ëQþ¿ôݾ{ûíë‡w_·ýl9äh£üÿ¬Gn®5öºß=¾þöUm=°óPŸåÕñ/Uý>~è§Z¹,ãÅgSÝÉ:mÛÅTŽgó¼Lõ;MϦuœl›Ö +ÿøòñŸ~uñ7oß<Úá¹z÷áË—ÿ«~á}.ÏöýØ/–cy6nËjÏÿöã«Çw¿óRŽ°Vv˜~ýöÅã«Úc/÷¯ôè裴ÿ·üîáÝ7jïyûêãíÈûàOÕfø/z”n±Ø|ñíã›ß½ý¯úI?÷åÙ4-óEýŽã°×ãQ¿á¸^”e?.Žµöº]ßlÞ†‹iå틾¹:ÙŸì·ÙäOmÅßÔvýâÝËo^¾ùÕgSíèµÃ[‹ÿõ»—/ZƒoãÅnÿ§_èÙžþ;øÏ>y=><¾ñãR;ÚͯSÇžýúËú¶wo^ܼ}-íñ^ιÚcÞÔÎôêí7ö\ü[Ÿ©›üöôw§é¸ü‡o?<¾¯ûzõX¿øå7ïþññ¢ŒûåÕ‹—ïê3ï/¯ÞÕ§/ož?¾¨\x¸¼{xþñÃãåß|¨½ýñò^vºü}lñ`/yн]><ù®v•¯_=þóåC{mÿ ;ÎÎuËÓå£mú˜6}ŒM_Úî_Úk^¦×¼Œ×¼ÑÝŸ.ßÚkßÚkߦ׾׾µòÑ^úÑ^ú±½ôtù1^ûâá›oß]¾¨ðññòy=Þ—ï?<¾{%ßâýãs醗øXùùáòÛ‡wr¾ýãeÝâõÛxUÒ;=™ëÞ^\>ûmÅË7üpYOîr:_Úgˆ·{öæí‡__^Ý]~ñþÕÃû?ž¢êÛJ÷×/ß|l/âï?=¾¹|ýñ¼úôäuüýöÝ‹¯ë®^¾y”¿~xÿüã+)ð‚‡ZïïþßË—|ñöŸÞ\>þóóW¯õŸµw½|þðªn[}]Ïè—ož~Œo>ÊøòúmN¾þÐJv$*¶_~+ßüý·Ï/¯¬1®¼³ù_w—o¥¼yQ?ÒåãkýK;r=ĺS +¶O-µz«|ñò_J‰ƒÇü¿Ç¿¾~÷`-z÷ñÝ[ý¤z¦ÄçÖ’îîtùõËú…½{Ôw¾ü¶¾ÏÛÒA´Ûyö‡‡÷ñµP_úáo?¾¯]äty•ºè]ú÷•õŒ»øpwvh>·úÏswý<^ô¹½è{Ñi|ï/ì¿·Wü>ïæ÷öÔi©÷ï_^¦!^?<'ý½Ž +éÐýòù§ÞàÏÇ;ÙsÆ›ÕðîÝcÛ^‹üýº¥žÙ/ß¿n½1ÕüFÈóüÕã—ª!Çëyo·_׬&6½{ó¯Þ~›>dÔÔ!ëâ¿=¼ûöûv-ÍT‰ù¢ž!z>·Ãøöõ·’÷]|ùLJoõã~øã½¾òËÐ_=¼©8×úØ¥à§ößʳIV;]„û}Ÿ}ö=L\.®ß¤§ÿZ°\ǹ_É®ß<êg°š‹òËÓ'ê*sÇ‹ë5àþ¿Oƒü)Ã4ÌÃ2¬Ã6ÃÕp=ÜwÃ})¥ò¼,e«ÇQ®Êu¹)·å~Æ2Žã4Îã2®ã>ãÕx=ÞŒ·ãíi¼ï§aªÙñ4O5_›öéjºžn¦ÛénºŸkú\SÑš¾Íë¼ÍÇ|5_Ï7óí|7ß/ÃR–q©iв.Û²×íj¹9-·ËÝ:¬e×i]ÖuÝÖ}=Ö«õz½Yo×»õ~¶²Û¼-ÛZ“ž};êãj»Þn¶Ûín»ß‡½ècܧ}>íó¾ìë^_·K.xµ_×ÇÍ~»ßí÷GýþG9ê7:¦£~¼c9ê{Õýí‡ü¹:®ëã渻ú¸¿ªGëtUÍU=WÓUý>WõS_Wõ\Õ}_Õm®äÏu}ÜÔÇíÕ]}Ü_Ý_ú¨õº¼ø»«Óu=(×Ëõz]¿ƒ|¸k}ÛkÝǵü¹©Ûú¸»¾¿¾¿©uS[æf¼©‡ùf–Çéÿim;zëZûîÑ·Úƃ¶òTÒÒk´5}§í-->¢É·®ÑÅ‹·ùâ¾OGjyiû!µ½¶þé;šIàz¹‘°Ü×>@/˜½œ÷„»“wéSí¹K\E—ÐNÝB;…÷‰Uû„õ +é7§Ú-´c|²k,Ú5¬s\iç¸ÑÎq×:‡÷IûFí'í»v +ë·Ú%¬CÐrëÚæ7µÿ¥¶í[—ö•Öµö]»óÙÛøä<~¢ieÚùûZúÖ[ºœjc·¦Þõ¿óÓ½oñÖæ´º¶»¶|m÷“7½5þyó; +´ý
Òä¿Ö¬'€‡«“v:„q‚.!bÒNA· cÐ5è§Ú=¤ƒXG¡«´ÎK¤Ã|OZÛþ„þB;,ñоU{ªôÕ9ú«õXé³ÇÉ;í9”æ³ÎzƒÏ¬½Tú¨QHú¦ôKé•Ûtœj‡”î(Ž g½OúÞmíw¥ö¸¥öµ£ö²ÛÚ»ŠŽ+›v%éF÷µûLµÃ쵓Ülwõ#Nûrªàп¯-;ÕvÜkËÝÖ“|¬'öZÏçë«ÛzõÌÝj£Þ\ßÕ¯3Ý,µ—\ÝÜÜÜÝXÛÞßßßÝßÞßÔ3ùêþ¨g«}v¹Ÿï§ûñ¾Üw÷www·w7w×u˜8jçÚ*Ö–»¹t¼+wÃíýíÝíííM¥ÿ•ôšSåÓv»Öse®'ßx[n‡›ûún·õ=¯ë;õý·zz,uT˜êQn†J‘»J“›J•«úI÷úy×ú©çÊ:®‡ +£» +¥›ú•®êÛë¹²Ö“r®+͆ã¾vÕÛÚm¯k>êØêáXj'Ÿj‡/ÇPχ;åæM=K®Nõ¸íõèõTšë¡ë 6TþÞÕÓ‚Wõ„Ø뙹ÖC>ë9[¶¡žÉwµ)nê¹}Uf¯Í³ÖFškSU”u¨\¸«wSÛðª¶ä^Ûs:׶kó}eÌmeÍum÷Cù³V͵7ŒµOÔN8ÝWTÝÖ^r-å¨çûVy¶Ô4Õ~T¦a¼¯½ê¶öëÚÇŽÚÓ¶JÅ¥ö»©ö¿2å¾öÇÛÚ+¯ËÕ¿EÛ¶e¯k¤òÓ´¬¶«4ëé§lWiÖÓm×ÖªÖ¨§Óª•;{Ù~lÛ~²uÿÍÏÛݾÿšóö{[ødMüÓµ0çí8skÛÎõÕõ»šÉ\Ô2\”aš/OõUª¹~*VŠg£\Ÿ»¾4ŽDë‡ehã'2´Q2´92´E"%5¶³Aòv¸×üL†ÉÑc»M‡ÊÝc÷ëúoå‹z`'ƒ¦›§z$dä”±s×ãcÞExãY”7i”'#jŽôöR¼w’Oƒ>yX‚7i{-.Z(#±ŒÅ׳å*·Êãޢ“†Žò°}-,J¸¸iȸkØhÿx +îyä—è7Ú®´X,ÚôŠs]ä$8ltöØŸ"玞G7JŸÃé³iΚ]iÖóÞÛ6“Sw=ÕïayZ}»zPzd ‘¡F›Iûl>è #ÃŽ
<2ôÈàs¥Ùç®CB2-z~ÙP4ž´×:"ɘ$£’ŒK22Éؤq¥„o’Õ!J)¦fíí£>.ƒYuÐ:é¸%#׎^2~É&c˜Œb›Žd«ž}vÎO:¦ÞmÛîu|“îö¤ÃÜ͵ý¹ÒáîÐ!o×aO¾U¿EÀYÁIBæRä¡3,’ZKàs¯Ãc}h_õ}ßøãÖwñ°d“+CL±Ø4É2áâßl‰Çê-{<Žx\ŃÏâNõ¿Ûô¸‹Ç=Û!%=ÆxLé1Ÿ´ í±¤Çš[÷Ø»Çqþ8i_ñ‡Ô'4Ÿž¨›¾c^†©ºÑSïõôStÅç`òäÜ•'Ò5‰Ö™—âóq2S.§<ãò½ó-ÝŒKš[[¼M
¯NÞ`·Ö.Þräí0ÛAµÃ'ï+ìFÏ79ïîå,Ô³Q˜!§ç|ªçé¢zÀZtRG¬I"5HÉøTÇ&
,ôµ˜hÖÁFb¡kZ–J €NŠŸ+&†úaê™XãŒÍ‰¼¤ì6¹Tóó˜^5/¿©ß×BŒ–‘Ë|‘ÄA0|{’pAcËÉ7n5/·‰-ÅNFOO8)N¾rÆ´Hy¢8KA¤Òì/;cS+[[_iójãjÓZÃ.Þ¨‡7¦5dÑ&œµå¶SÅïQYs]?ëmô½„k[Iˆs¿Ú7=)ßìS$ý,=u0½¦TßSÃ3´¹Ìlz®f·)$#›|²ŽéºíäAá³v>o—;°ž„9¤ZÈë;îœ07š©\ë¹}¥çø¡Y‹>Nž¾XA 1k01i@¡!…=dŠNƒ‹;Ÿš¸UÛˆrE¸±k³錟³¢hÒA»† !ˆ%A·ŠH0r³dפHÓ¢“gF‘ÉC£”§\{žd™’Å,–/YN¬‘‹'Mw'Í›,sºò×ÒÓ§so2ÎëCGüáúì±ûãÐÿ·i¹ú8é_s÷`Ïfòòü^ù©¦ÿŒ?ÿ{vh¼¶Œ«]‰ž%Ó:4À¸ÑéÈQÃ:AŸ¤RrVßi5iÒdés‘:'~ªç\û²©p;¿f’”læJ§%¹ä5ëÔ¤ôGGïtzÒÆPFÐë“ÌSž
žŒœ:j¦1“ñ2FK¿J!gçâ#¥“2R2J¶1ÒFH»kOçäLì<9<'> ÎÞÌÏâNúË +_V8¦E…ƒõ¾’°Žÿ'
n<,¸ö¶dõë¡1„]£[5²˜µ…íaë`ƈD$*©Éæ`Øb9Ì/‡¹ópÆÅø(ÏׄOÆÉ~½>{¤Ñ÷¤–úÇùŸ~l¿ïGþ³¨ <
Æ>®Ð5QýcyòHË)þ¹=yìùaK¿{Ùáw,:L8nº‹û‰ž|úúlÉa +GçXFq‘~ÇjC¥>¥‹öyÚ÷,¦è–¢µÅh¶¾ðæ”–X•fëÒVï(Ú!ôøÄòþ¼ÀÿJÇÖ›65í«ûóâ±óUý¾xìäSÕ?hõØw®öh.ÊICïZðáK>b2[¯g¤ í¼îÃW~œ|ñG7«×ºÛĶNmŸE?rÀý Çnâ‰}DÒ‡?n?ßEü9¿jÐ~gÇï£F¿yûêï.nß~à7@jÌñ´îb|VÆå¢<Ûš ÊEq)nr]z]êWü¨ÓWßêüCñ_ùÛ?iñ?×þÏZùOóů/þî/´þo[ÿò=±ã×µª«ÿ5þnZÓ€\•·{£ïóÅXð·ÿÖŸñk?zG/ÿôœ¾ýZžmò‰ëÆëR?Ük¯;¤fÙK¹ÐWÚ,˸ÎZž×UÊóZ»ÛsÛb=|=Ã:NòY¼¬¯Ý¦îKßeš6YêÑ’*YÖ,/™÷q–r=ƒVÝd²öáíâƶ™d{©+¶I
R¤X?Q±]ÔS®–åCø»Ý¤jÙ¦Q_2¯»–e¡„–í]êâËÔPh•ºš¼ìúšJ9)×fÖ/·”Aߦ+{€¡žÚëQþ´ÚAÛ')WHlR>ä'ky™7ŸÚª“ÕMG¥G-O5–ºX÷ú—UÊË2mZ.›l“¾bßyAÝÙÁ0Êñ˜êZ7-×Qζ˜êá]©+è¯ +Ô0K¿â!ãž³žÐ{íûV^´¼Õpƒm¬ÅêW¬¹¾f·CR75ö웂ÚEœ’ûhU
Kô%5¨Ðò4Z^ÖÝ€V{¯ls_ÿ[æz,=è¤nœ‚tR,c#]-5qëH'u£}bíÐK=Ö‘NÊe^3éjÕ¾ÎtR.K#”§¥'Ý"§å¤“—ŒK#–‡Žtº×‘®–
ÛN:-/=é¤N“NÊÇØH'ûœ§žtòç¡‘NZi¤«åÑɤ«uºtµ¼ÎS#Ý"'åÚ‘nY*PfH·È¯½tµ<GOºZ·G#]-ïãÖH·Ôèk(éjÕ(? éj¹¶#<¿=éjݤ„wÒÕò²tµ¼KOºZ·KnÙž
õxC:)n¥'Ôík#–kuµ\äËfÔIà +ÔÕ²\÷ ÔIyzÔÉ6ÇÐP—ö!¨“â´ô¨“º25Ôék¶†:-¯=ê´nj¨“ò26ÔÉ׫§`‡:9ÛÞP§íY꤇ìSºÚ‘]Wi¨«E™x Ôi¿+=ê¤on¥¡®–kÜÑPW˺mFôqÙÔ)[¶†:-ï=ê´îh¨Óófj¨S
ê„5ÇÑP§å½¡NÊûñu5Ϙ§£#T-먓ruR.SéPWë¦u˜uR†=PWË£…ë®Ö”cÛƒtR®í¤“òºéæÈɳË1ä´l
ÈiU™rR.(…œ”{ƒ€œd]ÇQrò‹î”qRÜ,"ÆÉ7Û¦#§GkÞƒqµ¼J•WëöÁê”qµ|Ô*7ËÙX»vb\š‰ßrµ¸X•qµ¸BãjÝQ³÷`ܼ?½(WËÓ4/äjÝâq–B®–õØ +é¤ìçNnÓC7éäDí„RÒm’· ƒt›æSn×¼µ‘n×¼uìH'sü»ÅFJº]òÖaÒíš·vA]ÅSí¤+¨;4q-:™ª?kºC×}
Ôš¸.
uÓ̵Vu™k-w™«<ž¹–¡Ï\ËÐg®µü$s-C—¹–Òe®R<Ï\¥.g®ZN™k)O3W©Ë™k-w™«”Ï3WÙ&g®iʺò4s-¥Ï\õ5)sÕòYæªu)s•rÎ\Kyš¹–¡Ï\¥=å«ÃºãiâºkÞZ@LÀ¯FGEÝþ4oÝ%-GN§Ë)H·ë–sG:ÛFÙ”t»¦cnš¶J9§€NΚilÝ®Yë˜A·kÖÚ"º]³Ö)@·kÖ:?¬õÔUx™tƒæs›¤$Ú¶-X7Hæ:ì}\§?s´·ÜuÔUÓnÜu0¬‚;Ç6®wƒ¦¯@Þ ùëñ`'=¾vÏ´4ŽŒ;©+rúÁ»ÁŽh à
Ò +»1ˆ7ØAlÈ“~9¬÷*óÉc·¥ÏdMd`J½A3Ùqì
šÊ–µãÞ ¹¬ìðÉ×UâFŒ§Ùléb<Éfç _é²YY^4YzÜB<If§Æ½Q“Ù¹e³’ÌÎ[ŸÍJ2kl´lVQiÙ¬$³ËY6+ÉlŠñFï×–ÍNšÌ–~ÊN“Yòdš³ö#?J:g'ɬ
RmÎN“ÙÒæì$™]–6g'¹Ñ´ösv’ˆZ²9;Ifž6g'ɬ•Ûœ&³S›³ÓücŒ9;Mfç~ÎN’ÙmisvÀƒ9;Mf§~ήOf'Íe[2;=Íe'Me÷„L˸µ¯ÆZŒ×å²ÛaÚ‚{Òí–áØ;òI眎Š¾A“Ùq
ö
šÍÚ<`ÀON·ŠÌA?9Ê<¬?á.P*E‰f +šÖ6 +>w +^^½ûpûRïoûðîO¿ªU¿Ðºö¡_^\~ùAnãzñ‹ëë«çÏ?¾þíÛzÛÒ_^üŸòÂÿ7½BïÞ§÷ü”û÷ÉýSýEWßù¢Ïoí%ÿWý¯þï÷'VŠ—¶R¼þC–†¯¿øåÅßþ·£¿8}r]ôÙBs9KÏf&¥*ÏLꉼ¦uÒÇÓ™I¡Ò:¤uÒr kHë¤ó™IÅÅ––Iý̤”Ïg&í´;6ËžVHOf&µ*ÍL*³Ò̤2îlfR8§c++¤nfRŠç3“òÍò̤43©;›™”×æ™Éúw73)<:›™Tµ™Iùž‰årÎg&åHå™I!Iž™Ô¶8›™”&Î3“ÚÄifRϧ³™I9éòÌäVú™I9ãÏg&139)&*Ì#ŠöœÏLJ]ž™T>¥™IEØṲ̀Ôí¥E±‚½<3)åó™I©Ë3“º1¢X)žÏLê[o-Š•rž™´mú™IK0×·I3“rDÎi®ìL3“²¿<3)_ëlfRŽF¢¹¼<3©ïlfR;gš™”rž™”6;Ÿ™Ô¶N3“Ú_JZ"}<™Ôº©Q<aÆ–HOf&VifRËifRÊyfòÁ¯Z‚ÿPzËÒ‘E»D /ZGø@"ÒâóÚ…íЧø\C1èË:ÏK +Ðk×)vÁ¬èã2Í¥]`+l슓è5úì²wÐësÚ‚§’*Î)N=eÉqú8l¶
aúzø)O˜¾.ÃÙĄ࢞œKÓw÷#L¯§‚å)JŸêøµí)J_†á°‹'Déëæó9J_6‹}m¶&çÊÆ£WN÷󰫤},ªõ(}/‡Q<GéÇa3¥Å&^ ÒÁG«¤¯Å†eÑùɆ£ëäØYŒî“/„è벧«ê5gœmj7‡èûla¼‡è3S·¢¯Ã1Ÿ‡è,x DW̶]¿j¡/Ó¶¦ +NDÔµ8v²iD.éQ¸FÔR7»ÃaþiDØZ.sc€5˜¨|Ûµ”K75¢mSRK„‚„ÔúËÐ4¤–rí{Ì +»?-MC4N•“f9Fe‰ï²Fe-ò8÷Ûú‰Që<”À¨ÄÇÛÜsTNÔ4ŽÊнO£²ÍÊ£rÚsƒ©èÛGc©ÍGm,•ºak,¢¥¢oïcÏRÑ·í7– +K–©ÁTôíµô0-LåÍcƒieÈbõ
¦5D˜ÝW˜Š¾½SÕ·µƒ©úÛë0•ïå¤TšÊ¹=¸Måpí~¸ô´¨áR TŽÿæ/„oýˆ tÕå]S T{°¡5Pªö¶MA©ž=GTO¸}ìHªòövIÕÞn U3{.HÕÞ>ö +:-{šâ ÓªeÒéÛÌGNôaìH'GÒƒ^%6ç´é¤‡LËÒ‘NzÒbXRÒÍ0×I§=oÚ:ÒiïœFH'EÛ«‚Núó¶LèDÚ>æ1@§h9– +d¤“×X~c¤+-ctRµ´”Ußfn)«Jê=çê܆–±jc£”sÒA6ÏÜáœt¤ciëtØzy8§ýnê3Ví›–-KŸ‘â1·”u’ßÈXú”Uºød +:%ËÑrÖÉ—úgÐiÍ(è´¼Œ:EQÏ9Ými9«–‡–³ªç]žä¬“.ÈÝ:Î_' +éÇÜqNä`Q’rN›³]Þ¨ÅRæþú†t¤É˜d˜ƒ·`N:žMr6ÌùOš‚9é +«æjçY,_n˜“¥vÂ0'`Ù·†9)[¾Ü0W¼¹À\ñÜ Ì¿@™9§XÆ9‘ºmrÞ8W<Aî97꺄5snäFsRÖlÝ@§"¥Š:ñ³Eœ1ÐIi²ÀK@'J³_½ÐÌÓ:èD…Þ×–¹ÊóÃÚg®bSO[Ë\MùžtZ.}æªûm‰«JÜ6éª SKÜ&ntR§äwЩ9>µK¹òÑŠ…w:ùÆ¥´Äu´…Ñ:‘\ç£O\U„=æ +:±¶!²œ<bm{ k{[æ*Öö¼M:q¹>èFÑh™«jÚ6# Szìçè¤niñœÇ–¹š]ÝaNìr´ÄUÊÇ8椼•þ +„Ô¥%®±Çœ”‡µO\õ-Òž¯±GA§åK\µjn‰+®8 SGýèW9óÑWmN£”’NzÈb—$‚tÒ“¶¹%®£28@§oìóV霳ýê¯v¿ð蜓î|Ì}Þª?L0MÁ9ËÞòV-¡ƒszš4ÌiÑ®{(æDgáÜèë¦ÀÜ8ÅõqÅÜ8ùXßc®,âvkU¤JÃXÇœ”5U·ïjBw†œÔLÖ‚›j–ºß!'E›Æ‰ó¼Í턔ǥT‘ò¼ô+UÄÖ¶*âTø¶I?Eœ–‡~µŠîÖ.'(ãÔð¶ËFÊ8Õ¹íœ ÆIݶ¶Õ*&ŽÁ8)/Üãä:;•qÅÍƉ˺ïýr•¢“‹[0N¼Ù%嬢Ù[¿\Et\q`aœÛÆ/E\‘Y¿^
âj¡—2®–u医”91N|lòrƉ¿=ím¹Š<ïÌÆÒZÎ*ºöî±› ®–+¾ú«E¦2–¶ZEåk[y¢ˆ+$ q…g\!qƉò<Z~Sûzo«UŠäVe
ÈI¹øe* 'uÃÐV«Ä>rRž×~µŠ¾÷<äô5~mŽmºÕ*Z5µÕ**OmµŠ|=qƒ3äÄØÞ÷¶ZEÛsrÒE»~+ò‹žs[®RàSN»ÞØ/W‘î¹ÛJí62>5ÌÕò0Mýréå‹]DPÌ)X¶¶\EË–,æôL±LV9g¤Ù‚sJ¢¡_®¢ûÚr)ûl圖‡'ËUô·'·.œÓ™ÍiÎÉŽz (œ‹òØû¼UnŸ²Ûijt!ÏH'á~y*P‡À
êÄÞ^사¢N~ÁsÒ@œ“kK[7Y9;7ÔIy0Dêd·{iW[夆vå;£NÅñcÔ‰Ÿ=n-oÝdÙóÒçrò[@²²¶Ù9\÷µ¿àª“‹KË[õg)§¶2OÎÈ͸¨“u…óØ.DrtZÞ*?Xz}4w°lÚQ'Ž–†:Yq^ò…ñ±·±åâkÃdEÝà‹z2êL=k¬“ÅéëÒX7´ÁºÁ®ÖÉŸMëŠÏ5fÖ©ÝòV-—–·–âSž™ub_ï-oC{+Kc]-/ÃÒ³N~5khykìÖéÊâuòÖ–êä%-œ³-º¼U«¦–·ª:>µ¼µøOsu¤«rÜ[Þ*Í9m~N~qÚzÒÕžä÷=PÐ _·Ò”HÇ+{Ÿ·Êìx±ù8é42™î<UÐÕþ¼ùª™ + „C!É„C!pômç +I& +‰ƒÄ¹A’ ‡Aá0H I&ö„à q$™q$0.íC‡A’‡AâŒC q$™qn€8‡A’‡AâŒC q$™q$0Æ!dÆ! +Q³DŽ³4o¢f‰Ô[»ËŸ®9Ú]þ¤é&š[!º®dowù“²ßoDÍ]Š´÷wù“ºc˜/Ò>67@Vëxrõx™h•¾9í.Òu§£ÝåOºö2ÆP³DW0í.rRIØY"K“äÞ½¾š%ºÖèXC-™»’«%²ðFË;ª%R·´[’ÈüÆ<j–Èb&Y¾Ó~8–[[ªY"å²·»üÉZžµÝ“HÍ]ß3a–ÈBª Ó¤hYíFßƬ~Cý‰4WK¤¼¯í.B¡Z}«Œ<ök n–HyÛ]þfÓü0K:ŒºYF], ŒºXÒaÔÅ’À¨‹%QK2GÝ+ ŽºWu¯¤ã¨‹%ÀÔ¼’`©{%™¥®•K]+ –ºVÒ±Ôµ’`©k%S×J:˜ºV0u$`ê^IS÷J¦î• +®sÂa”dÂa”8áJ BI&B „C(q%‰qø$@ŸÈá“dÈ!”8äðI€>I¢: ”C'rè$™rè$PF@9t’Œ9t0‡NçðI2èðI > ¤Ã'I¤sÄA‡Mè°I2è°IâK¸MèÜ&ÉœÃ&sØ$p›$s›Îa“À9l’:l@‡Nâ Ã&ɤs›Ða“ + C!É C!t($€‡$ƒ‡Ðá +üF*×2…4"ðŸ’5"Ëà]ïPkd°…õ¼Åb×eu±Úˆ”[¯ÚH-ïËKµ¹7™Ï!k”äœÝ#A½×Ì«52IÇ°FäÛj÷YPkdÚÏnù`u8/Úåúø:OaHY.JjìÚHÝîÈÅmYM7"eY¿í›è¸$uî|¨7"e•(ÜÑ‹ì.&¸6"UûPB‘+yø È·Y0\‘o<.sh#ò™üA‘ç‡P@Ô‘ªÍ ±Fä ®f‘¨62ùÒßFµi½{¡k#µ¬kÐF¤7gtåCšs_ÆÐF¤Éýf#ªLjOÄ66í7¸ÛŽ62Èey#2Ì7ŸÃ¼‰íý³lv©}ÚcýQG ¯ØDµ¹XxŒM‘ëvÛÑ´91÷¸ï‰i#EV½OM©G\pŽ6R¬±¼˜6"×·§ä™„9š7RŒòÑ=gÝÏ2'm¤Ø’¹ÐFÒÝÉB‘…ÃÑ´‘â¿ð6âA¹ocÚHý†Øhª[ÚHÉÞ˜¯ªuzÛ7¼yͱ4oDŽÚ_ÂIE£X#ŽQ¤‘ŒQ¤Ç(ÎÅÉE£H#pi$si˜º5K±F2K] –º6,um¤c©k#ÁR×F€©[#LÝ ˜º50uk¤ƒ©[#S·F€)ÖH†)Ú0Ŧx#™¦x#ÐT½PŠ7’PŠ6JÑF@)ÚHF)Ú(um’¢$’b@R·F +=£ÜìÖHÆÜìÖ˜›Ýs³[#t³[#nvkÒÍndÒͦ +ÏåæðÜ-‰9<wKº9<—KbÏå’˜Ãs¹¤›Ãs¹„´ÖÝ’ˆöÜ-é¢=wK"Ús·$¢=wK2 +9ì ‡>åÐG +å°G ö”Ãù¤öH¥ö”ÃrØ#•rØ#P{ÊaÊ!@9ä(‡<R)‡="Ê!@9ä‘J9ä(‡<åG*åG ò”C©”CrÈ#P{¤R{¤”¸¶œ' ‡=ÂrâGD9¼‘¤œ¼‘å¶lv!}œ‚žCNÞÈ‹ròF’r[’8(ÞÈròFrGrG^“8’“8ää¼ 'o$)'o$)'o¤RNÊGRNÚHRNÚÈ‹rÒF’rk*hÒÈ‹r’F’r²F’rmuP’r²F’r²F’rn¼'k$'mÆ¡TÆ¡ˆqX#0k¤2kÆa +9¬ ‡5ä°F*ä°F€Ú“6R‡5ã°F`ÖÈ7Œ“5òbœ¬‘d\X#‰8Y#/ÄÉIÄÉIÄÉ©ˆ“4’ˆ“4’ˆ“4òBœ¬'i$'iä…8I#‰¸F’p’F^„“4’„“4’„“4ò"œ¤‘$œ¤‘$\Ë<îºÈƒg'—œk·Fqa@8 #®/zm¡*xþh%¾„Ãqø"qø" _Äá‹TÆá‹À8„‡0R‡0ãFÄ8|‘Ê8|‡/ãðE +ãP=`ºŒC©ŒCqeJd¹îâ$‹@8l‡-R ‡-á°E ¶He¶Œ“.’ˆ“.òBœtkW‘ +·E^ˆ“-’ˆ“-’ˆ“-òBœl‘Dœl‘Dœl‘âd‹$⤋$⤋TÆÉIÆÉIƵì¿×e‹TÆuÙ"0®Ër}Ï6bB®Ër]¶ë²E +äºd ×%‹ +¹Žâ"ÈuÉ"@®K©ë’E€àr]¶H…\—-’ÛÊr]¶H‹"¢\—'åº<‘J¹~ÐèÂñðô! ×å‰TÈuy"@®ŸIbwº<‘ +¹.OÈu‰"@Q¤BQÈ!Šrx"ròD`žŒ“'R‡ââÐD@šHEšˆ+ûˆå@\©ŒCrX"@K¤BKÈa‰ +9, ×¥‰@¹.M¤R®KåzX"@®Ë©ë²D€\KÆuY"•q]–Œë²D`\—%R×Ãq]šˆë{®”SL1O q}ÏypG\—%ò‰8,‘Š8,‡%â©€ÃpX" +8ì +IÌ…’”k«’”“’”“’”“ò¢œ¬(‡åÐB*åÆ2¡çH+Èa…TÈa… +ùd\Z!ri…@¹´BÀ\Z!•si… +¿´A :ôK¤à/m +bÿõ:óî‚X̾ȸ Ï¿ýkƒbÿ~Zû¸ Ö£<â ¢/p‡òü{³®1Â¥;VŒA±Žëùä.ƒ<ÿ~nx–Ë Þ×
‰Åò¬Iëþ׬ó|Hø…» Ö“±N.ˆõb¤Î¸b=”×RE
[º Öñ÷%úä‚ØpÃÜ !Äb6))#Ä~b(ŒÆôÿ"ù¸ÄÞÓñ1‡íL#ÄG:ÞBˆ—ô–BˆéÓîM!ÄÎf"*H±~™~…bÿ¶a„û·=jþ !v•ìž „ØU´9-Œï/®ß¸b±!kÄf´íæX§#Äî]?Öê$#º¦þ£„Ø¿µŠˆ+!öŒ<·–ßøXŸÅ\Zg·µ‹ï”Bšå-ÿŽ/Wû<Ÿm¬¥Fìñíù›è2—Ÿ˜boÀñlŠb¯™5lpBì5œ[.h⯤õÎ-!'¤ÍXINˆuæo9!ÞáçÆ¥Û…ÖÛq)ÄD¬C’Ïçáû9cÕwBìŸ[¼lî„ظʱÖr'Äbϧ'3è8"Íÿí>¢~CÁ‹fã78!öokúà„Ø8¯ë%…XÌZ‹H!öï+öñ,*çYÿÿÁ © •’ •He„¼@*#JIJy‘TFH’TFH’TFÈ‹¤2B§¡„$M¥„¼h*%$i*%$i*%äES)!IS)!àTFȧ2B§2B§2B^8•’8•N1B*NÑBÀ)^<Å©<Å§î… +RÔ@ŠHQC +H1C +èÐE +ç0FàƜé¤Ãt2Ft2F^ “1’ ƒ¸€NÊÈtRF +;`‡A’°“ARa'$a·-,;ì$¼`'$i'$i·)‹¤’¤’¤’íd$íd$íd¼h'ý#i'…$i'…äE;)$I;öíB"yÁNIÂ.$’d]ËNËY~a™Çɺ–s¾Á:9$/ÖÉ!u8$°‡¤²n¬U¦…C"uH$uH$B ¨Ã!©¨Ã!u8$ ‡¤¢‡Ôá€:’Š:I$‰Ò!‘|.’‚ºTH`]*$‚]$•viw)À»H*ðÒ xi€¼4H*óÒ z©€½TH*÷PHà^*$€/’J¾TH@_*$bIe_$À/
è—IÅI¶õdd[OÉ«'$Ûz‹mÑØ“GòjìÉ#É.mx$Ù£•GR{´Z׈4’ìÐJ#yuhC#Éþ¬4’º“Fòº“F’CwÒHrèNÉkèNIÝ©wÃÈ<’×È$¹“H’#wI^#wIräŽ}0r'•ä5t'•$ÇäØT’:v'“$Çîd’äØL’×ØL’ìÐÊ$É–žL’WKO&I¶ô¤’dKO*IÅ*‰ð—& üK“¤0MˆIÓ$©L“b’ÀÀ4I*S%ƒ©’ÀÁTI>@øß²I²…?ôRI¶˜»M•Äè»—d³yf’‡K²Å8jÊ$ÖÀ¹ï”I¶×OB&Ùl$e¤Lbyëg8>Fmó§˜$óçøh`’L¨9Ž4Iž#Û2]V&És$Od™$Ï‘øÍÃ$yþ½š$Ó“›:&‰Íï×ZVÄ:N6©Ÿ¸Jbø6Ó$±ùèk;Ó$«7´ø_÷•"Ém™ås‰$÷Ïñañf°D’'fgŒHbŸIËÅ@$±ÏäsdüÄnwëV ’ÜŽ«%’X€Å…0I¬_aiK˜$öRù 2I†5SÇÁoîR§yp¥I2|¥§–&ÉÐ÷À#“Ä®’¥üa’_骧Ibáí|›$Ã×áêi’ŒŸã%Ç$™¶àX_¿¡ÿÞZÄM’é“*gš$öôæ’,2I,kÇÀ´öqx÷“ÄÒmìãÌß±aVëXû“dúÊZ^ä¹ó£¬{â&ÉóøZ2â-ó,³4IìͼO~CdÖ|?—HòÜÉË®ˆD’fw+×— ‘ÄÙýX"‰µ·k‰$-(ŸÏçᦺ]¤Ib
‹ý\&IYc,M{ç¹L’MUû1I¶põ›0I¶Ÿe‡…H²Yù\"ÉVe2åIÙëЯ%’Ø6ZmÄSž÷ñGXñéŸo’T¢’ +RL@ºö Å$© Å$¤˜$€“¤€4M4M“¤p4M’àhŠ$âhŠ$¤)’¤)’ +R‰$p“Žb’TŽÊ$£˜$`“¤b“DE$£I¶—H" E$¢ˆ$M“¤0.U1.U1.]’¸tIÄ8É$"\Ê$…pÈ$2 €C&IÀa’ +8L +êÒ$ Ô¥H"Ö¥H²½„²IĺIĺI>X—&Ia]ª$b]ª$b]º$…ué’ˆu)“ˆu)“Ö¥L"Ö!“À:d’d& ¬Ã$u˜$•u˜$°“Öa’TÖa’À:LX‡JRY‡J"Öa’À:L’Â:DX'‘Ô!’TÔ!’À:D’dD’ë$’$ëB$IÔI$y±N&I²nƒÊb]˜$/ÔÉ$IÔÉ$IÔÉ$y¡N&I¢N&I¢N&Éu2I’u2I’u2I^¬“’¬“I’¬“IòbL’d]îC¬“IòbL’dL’d]Ë.K²“Öa’Àº0I*é0ID:D‘.E’BºIDºIDºI +éR$éÒ$êÒ$)¨K“D¨K“D¨K“¤ .M’@]Š$B"ÉöÒÉnõý…M‘D¤K‘ä“t˜$•t¨$®Ñ[Ðá’TÐá’ +9L ‡Iä0I*ä0I & ”Ã$©˜Ãs˜$`“¤b“Ì}æ0I*æ0IÀ& ˜Ã$)˜K“D˜K“D˜K“¤`.M’À\Š$Â\Š$s)’s)’ˆs)’Î¥H²¥w&‰@—&I]š$]š$]š$ti’éR$éR$)¤K‘D¤K‘D¤K‘äƒti’Ò¥J"Ò¥J"Ò¥KRX—.‰X—2‰X—2I]Ê$‚2 °C&IØÉ$v˜$À“¤Â“Øa’ +;L`‡IìPI*ìPI;L`‡IR`‡HìI€"I…" °“HìI*ìI€"IÂN"Év2Iv\ìd’¼`'“$i'“$i·1eQh'“$i'“$i'“äE;™$I;™$I;™$/ÚÉIÚÉ$IÚÉ$yÑN&IÒ.÷!Ú…Iò‚L’„]˜$ɺ–=–d& ¬Ã$u˜$•u˜$ÁºIĺI +ëI„ºI„ºI +êR$êÒ$êÒ$)¨K“D¨K“D¨K“¤ .M’@]Š$B]Š$uˆ$"]Š$"]Š$¤[&IAÝRIĺ¥’vË%)´[.‰p·dñnÉ$xK&ñR&y)“$óÒ$zi’€½4I*÷0Ià^š$€/M’J¾4I@_š$°•¤²/UÁ/Mè—&IÁ"I¶õ$’d[O"É«'‘$ÛzÉ65ö$’¼{I²K"Iöh…£W6L’ìÐÊ$ÉL’W‡6L’ìÏÊ$É¡;™$¯¡;™$9t'“$‡îd’¼†îd’äÐ]toräN&ÉkäNHŽÜÉ$É‘;™$¯‘;™$9r—ûÐÈL’×ÐL’»“I’cw2IêØ& cw˜$ŒÝa’Ô±;LuhIhé!’Ô–" -=DZzˆ$)’Ë$ÿ–IR ër±.×8ër“º\ãD¬Ë5NÄ:9Y¨Ë5N„:™)I:©)/ÐINIÎa§$çÐS^œÃOÙÒLIΡ¦TΡ¦$çpSuÈ)/Ôa§$êÐSuø)uè)‰:ü”d•ê0Tu¹Ø‰XÇb'u¹Ø‰P—‹u¹ØIA].T"Ôåb'Áº\ë¤À.×:ìÖ.v¹ÖI†Š`‡ ìT*ìd¨À:X‡¡Ra‡¡ìPT€ŠJ…Š °CQv(*v(*¢† ´ÃP©´ÃPw*àC¥âCÜIQv(*w(*àEÜ¡¨|âE¥âEÜ¡¨€;•Š;áCàa¨Tàa¨@<ˆ‡¡R‰‡¤ñ\J¹W;—;)ÈËåN„¼\îDÈËåN @@ -4459,502 +4442,532 @@ K2O ïri/—Fðri”¼\EÀË¥Q¼\e/—FðZx-/àá´$ðZxX-/ࡵl-É;Œ–Ê;Œ–JK§å<¤–VK¥ ñ[z.«¤Ù¸ ^K%bÄClxˆ-•xˆ-³âa¶Tâa¶@<̇ÙR‘‡Ù"ä!¶À<Ä–Ê<ʇØó[*ó[€fÐÃl©ÐÃlz˜-@³åz˜-z˜-@³èa¶Tìa¶{ˆ-`±¥r±î!¶À=Ä–Ê=¹-pÏÒ•#[!¸—«¤îå*)â^®’"îå*)…{¹JŠ¸—«¤ˆ{¹LÊâ^®’"îá¶$÷[^ÜCoIîá·$÷\^ÜÃpÙp[’{È-•{È-É=ì–Å=é-oîÉoYÜÛÒâž—Ê= .|2\ø¶œë(à“ã²ÀÇr)€åR*øX.ð±\ àc¹” ->–:|,—"ð±ZJ«¥ --˃³ôö1<_Ó²X~À¶yI5ÛÿãóþßOðï<~üŸ~üßþ÷íÇ¿ôø¿ÿ³è!¼öùk‰i¿?~ý!RéËßzÅøí×ïìÏb¿ÿ! ‡öÿŒ‰Og%²üž‡É>;ö?ÆûX kìÓZO® ýÿqŒíÇøg?|ã)ýq¼|ço{³5´îH›¶´ï_#vÝQ}\–ú´/bá‚Ýry?ÊžýË„Âî)Ý6†uYGõò”àòÓuS<¯úTk}÷obüåÓ‘iÓú×ÎæÉV×Ø;°Êö¶éOOG¼,g×–éjž2æ˹G®Æe3{|¯ÿÝ1‰zß×ëmÚý¸gžãÑ¢WÏIN{"ËI2³¬“<ž/ÕEÿý$#2ëIzŠÉµçIzÚ•çxœ,±œã³ÛicøœedoäIö+Ò’8É_t’m·ušŽ×I6ûª\wžäÓígTÃ÷“ôÇƲ’ËIÚ°Ö¹5NÒ:ǾçIZ¿Þ¦õêIöͧ^9Ç6Ÿ›o+è$m˜ÅÊ‚—s|þðó%<ó[ö='iÖeþÚçYÛçée>-=ÅNò¶^å~ßÑý¾í'Ï?ϧeuzæ·ÍJ?Wz»R-µs÷L¥ËæÎÓýÏ¿§e;[ìÑòȦûmÌêxÞ1ªxoû²ýÞÇ)fݲ,YÿÌâÇž‘tÈ[8öô¦Ÿ;|Ú:ÍáêÃþûn½l?¶-D¯c!º³…§öü¿Ï±NSžž?ÍÕ,[o¹_þ§Uºß<WÂÿœg9Ÿ\2ÿk0‡_2¡°“²çD×ìù_·9w\3ÿÂoÖ"9òšÙ´€xqͺ¥cïçëšukVXN‰®Y·7ú9®Y·–ÊsÇê5ë67l×Q×̆½-–kfó!—Ý«rÍl¤ÜF×¹f6óbe^uÉl€~ŸóuÉúˆM¹fÝùƙ׬Û8eõ¢=¹[JÏYW÷XÍò -vKêõà©;²Ñ/ússä¥zÚ‰qæžç1û8FmP+vaçñÝ£ú%÷ò6¢ÿsN8Üø{ØJDpšPǶ?/”m°qמ»
Ä}Ñ|”3v`â†þ˜7¡ýÈläê»Gð%mØëÛzùs¿Þ:WÈêÅDÐW~Qði×)¨{dÁM×ÒÂsÓ¡ùb¹Ú«®¤¶ýîèÐf·LíÂÆéâОð8¸ÊÃZ‘~—fóé©_qŸ§áëÞÙôòë3·¨kï{?§h^ ÛF¿|¯ÃæÁŽ3ÿX\‡Ó¬SÁeéRÜ#×ц‡®ÃîÐQØZ² -ÚJÀœk¨µWýE;8÷Ø“t"¸?-8q("v üùÎEñgS±;÷h)>Úc^/I¿ïnŠÆU±Ö–Ų_eɳ¯-M·×ÍaYG[ÁçèéŸó<=ã)ñ6'OóŒWäŸ<b¦‹XÐ’.f¾û—.€…‰a š#8‰Móhb§62¿·æ7k³ydšDÏY5€ˆwÔêqñÄ—vÐÂŽmoÁX"‚íÊŒ›?5×ă+܆8€mrÿ=y5‚žª"œL®`/°óÒL_öÕîc¿Cçðìââ.ú9Dðùîk6Ì»µÏ=ܦÛvzs{cŸóhº±Ï#räï]ãÕÙ^ñ§l€" <;·©¼‰UaæÎz¶ØÍÈèÎ\˜¦Z;ŽlùjÜ—»Æ½ãÕ¸¯H -}ßíËúÕsí“s³&Glú<ß¼‰MË4Ëkzê÷ÃzÚ|òNóÕ,hi3ñ±ë¢úL.€í{°ÏG™m÷üÖã·øáõExú -‰æF(³•¸/{×äO™LÁ§ã§kíO·‚ÇEОÂØ4]Öx¬¬®ßJŽkWpS÷¿Ï±ç¯}rNˆ/¢Nì:þçùpO¼
‡m÷úØ.mzsF¢ˆo×µ÷Zãçžáxžñç
.C;Ø»¾Ö~lÇdÓc}6טÏZ¼WÏÇäi -é’<ºšÙ¶qXûЋuíQm/Ž`‹¯œ
çÆè7Á7NâX”§Ï¿`þPG¡3öï§y˜=.»þ‰|¾f“Ã÷½ÇçtÆŒjüý-®À9£1?W;å´"ëíÙuYΑƒ ù§‚ô¹ós]Z¬2ÝøñåEoµ¥½›å×ôŽ×Ì‚ÛÎ!]|Ÿ¬ÀP¶Éx{OKâ¶GpxqÜÁ‰ÒJ:¬¬&§êßݯj¥x˜õDе5Sâà Îâòiá…ã{îAšzVwXÁì²{,~oµ+ò#æu`õ)xe?xD·(~oÍOÌmןúnPO]îmÏÄ»~²#¾æVÛä<'[àÆægÒÎÒòbg4ºtË/5Ž3›°ÏÖÙþ9äjÄÖ¦x*8ïäŽá,ÏŒçÃÅŸë•:1tÑnAvegt¬l¥¦¹ôžð|¡¶÷ËÕO/|¹çh)ødíß±‚_Ùi •ñ×öl1¯ï†™¼9P¢¦¥¹—9¦5'ñ°ÞÆÕd¶&¾âûIïàÌw!ï®Ï`Í|o¢½¿FIÛ×T°1:é âüœ¯ùµ -lw/PÁv7ë8Dïf„¼¿ÎÊ‚.,ðÇŽh=ùìóÆ…ÊçÛåÆÕ‰ïVo«×æùd?yŸ+‡(n†‰<ê‰Ñ êºÙx0¯6™ù?\‚{ª'·—1¯qI_òb8ÁK¥EÌëTEp‹kåÉÑôƯ™‡ÕJ_Ðwà‡µÍ(»¨Æªs÷m„À)Îv»JÑ;æ¾ßÍ*Žå¨æ¥³}¢{Ž¬^V‘Õ‚>ÿ^[…t,®Ëììö´¦3]´Á\Ãf£:=â¯ífWŒViŒá=
¨ö¿gËÂ;4ï2Ä^[L3G8 ¾©pF×h×Ïm -}…›
ºÜ·#*~ÿm¤ütM6nOŸékhn!M6>ÿçÜÎEì÷¶»}ð\.k³Ø4ãhVrã²ý>_:„ùÕ‚6#nƒÃˆf°·˜}ù§ÅÚcç›Ú(ôèöOÔ³ÏÆ© -ÞÑVà -ó̬pSúÐ,°Ï×ÅD‡÷æ×É*iÇ7Й<s¯
Hl-:˯°/9ÁqÜwó"zú!Ak óvMÓP=ⱟ‚§îxP£i5¨i#Nw…i•xQ"‡d‹‚‚¼Ÿ¶öZLdÚœ}žîáÉm¤˜÷CÜ% -úýú^‘î‡c3]lO‚ ø -ÕmO3Å -/AÏ ]A>ú>˜õÞ¶w2¯2ØæϪÏùöé|ϸKc1°·v—#8¹£·4GPß!%eEÌëÕfŒŸŸ{$FÕ-H½±]‚ +Í6ô˜xFø/Êóäd?*¿YÉ3ýø|èOÞtÝf°VO„w|ïQžëŸœ—î‡'dþ(Ç¡Käèý)’]öCà}Ü™ä«Qƶ÷¤3?ŸV¾nRð©k/c¿h8rú°rÝÒgøtxúu¤Wmù0B3Ì¢¬«6“ü6öÒ6]¢®c*A%QÒ—$|fZK·né¦$·Ó²Nâ°ÜfR¢Çʇs[ÅùzE{ÃÖq±òwARÝ5ÚÕ,Y¸YSm³!o†‰FÜ–íù5€Fh\ݸ¬=^û•†U—Åäa«M¬mcì×gç>¾
6Þ³W¸uÆ©¼¨m¤Yšnª·VëCÕÛêi³»
í~¯ì ½ÂtÒm¯»?XÖe8¶÷(³iÜUÛßÃ4
0—NkS6ÁGБÀ"\GÌ1e¸fgìâcÑ&wÚÿF2fWí¹³ûþ+Ñ]±K¨‘ç xNnïór·äµñ¬ü÷¶w,8ß•3‡ ŽHëf+ì•qƳleïÜ«½˜Á›~ðàšDÀ“§§Î3^<߶ý#k¬'t…cNЃ¶ˆc€PY¬ß\Á/1l÷§
ñµK[ÃÌÿYÚêH–ù–[!Ë8ÚÙ®|£½ZdÇjêƲ橇×BÖùlzst¬Rʶ3´Èhå$¬à(ŒO0˜wpä /åÁ#ÓK'ß^»·ÆÒfˆÀqi5#ö -ú -ä¼Ã¾fÁÓëÕÐA¿ãca=*½¡ -rº¾àø{Û=j.EÐkD¶H¬ÚBUûNïqÏ¡*+‰ÒÕÓs#/º Öà~œ«û¸Âþ½ˆàv3,çëhÆ_š>¡’AàÞîóc[“éþ˜W}ñ #? -æ
Ûûç¶#ì6$Å ÷ -Zÿ´¯›@Øðz“á嵂´j:ÚíºãXdô_ÛN]o_²…)¦Á'?OáµíÞ6m{çtÄŠù<¿/a®a‹Â÷NDoÇ s³Â6`¬A5_ðC±Äíf=ÌÌÇÐgÐ>¶=&¼Ðo{m¼ºÑF}…ÉC(OÁÞ’‚×ä´ö]
¤òp4RYËÑÖ뺂½L¬huÞÃX!cì—‚–¡T‚¼Ïç¶}l{FYÍ8 -:#C+ƒ†;k#èì‡ck;Bmâ=Ñf²–£q[´ì|®ëj³epÜr2Cõ®<ÜzG(t‚‰iÁqH*ºxˆ¬ª3e]¥î¢‹¯¹y›ð}ù -û2v?Õ¾¹õéΛþêã¥s¸pëãc[ïÙx0¶~ô*ÕÝ´ŽFÑ”-¸~U¸«=ÝBðŒg62û¦(ƒÈ²`åÿÊá
½$;[Ù«q³íµ³-9còqyÁ¼¾ø{ÛKùªÝËïŠy}ƒ‘Sm_ô{ñÈ>T#Ó$Z´»ËžµÑûÕK0ó$ŸÊ²W'÷ V¿ƒýg-²öGÍDqújúR&濹jÛU´Õ{†>†÷«Þ¯´ŸPcfÊ›ÏOóæ× ¿L¼x -·-'c,¨–‰‹QúCc×vÞ?£vkD|FMПå¹ÒRÜÁR/Öõ6ÏDó:²xų\
Mïí^¼x– _ ãØæǶæá¦JMŸÁó¸×'l…™ú±½Î®–ûî=àæXKƒ‹ãsu¿>‡ZsöX°GŸ÷ìÙî»V}Í4•mÃý×49/ãã,É
ÛAot›5j¬
u -öKXýæìÜþõŸÿá©ÊÇGªò¿ù'¥+[›Ý?Î6;es®È*Á»Â_ßá¦tŽ¯ïüFxíä÷ÿLeð5C¾«ò…{
þLd-MäŸHÝ1ëZ9`þÌLöØɼð4²úÛƒ^ˆê»<žTKýo×}-J¿žW‹ân>ÞУ[¿Q.¶VÅví‘ÏäAÏ–ýâ;8"-®¼Ä¶;c#Ñ(Ø.œ%/Ù¢ -Ô>Ë€‡&·ëŽö÷ˆ‰Ö†Ét¶yrmŽ¡eéû_—4« -¸EVH^Íl©>tyÝ’‰à®NΈ²©±ß9Yº¡:<AMùùJç;è‘Ö4]’;8ï¼Ág׶^?J;¶úâÚ¬X¢²JãC\Á&ð /Ì°µž;à›&~U˜ÑÖ5Ã-Ø2¯eDµª=äA/û}ÂÛ¥ó¡áØÁŒªõàäÀÖ‰õXs!¯‘ö™ð%Ùc§g,퇺Eùß4uƒ†¿wJŸÿ}œ]×Èß{±w=²ß_3~?U0Ѓ^,/‚6î;¸äìøßòRªô²¾í.9Ç*×1¾5ã3ÊFË[Ц(f%‚îiž®]Ü2âluµï5?ÆGÙÂ^4)Ž×~دú•Mõ"õ#üóB¹OpDV”NøâIª“JK¯´šV<,àãö´ÕFµ¯ŸæÁkßyËûž»½Þ-v;£äçºhÜÎlÕhšK!³ðó1Ðánm\:„¹qƒÛ©§fFµÝÉSçkRÞˆÖâÕ¶>ñ99±-ì+-Õ fá,ì#;q´‘ÑoÁûܸâÑöà¸yǘ³° -=ض{€Y›C›*Oß‚Ç ;æD+ÅÖe‹§f˜‰ÙöovÀÔ‡f“Ùb¼:1Ÿ`ÁÙöÆs°–3¶õrµc^(—¦ˆ^ÝMgm©#ð qv@&ˆÊ-HZ<ï››AWkãòœÑÚ}aÂ/ðÑœƒòuxŠÆzì5Ò(,¸8«cxPC<~ªÇ•;8çq³m<ÜVÈàȯMøB¶¥OVÇuAMÛ²µžÙR;—ÅRt8©ø\Zèì<,wÆ»ç½~½O’v4¹jÁ¹Þ±oÈïXÇ;±r€^ðè-Øy_Ü/ø¶½ÉL*ìdcëG>°C1ÒÙ†ÇÁ38c¶\»ÍßkÐ¥|}Fý‚zÊ-;˜ÛÎ;o“?¹ô¯’þD“ÇJIÜä8íše²è½s -ÞÜòÝvL·`o‡ß”‰éOÁ}äž;ªK@3פ§æÜÍ)˜˜ÀõZ\(ÂgS*ÎÖõÞܤ‹Úa턼ó§ö|on™a~`*«a~S~+hRO
vŒWÞ¦…›Æ´|[uãf¶-ØxF£ý>}á^…ït7tÎØ«Ê£˜¤Öø†xf ;`XnµGMáí}™šzñX]Y'žëÇ‹7T(Ç‚;oˆr||¯“7ä:42ia_Z6ö«t;“ÖصÛVš<ždë=r«q1©7i31‘“ÖU9‚ûMF€VRŠh~0ÝMÿª°¯e ÃjìÁË$ÅaÅàÁæCÑŠyOì¶Óeì›þÞ¹|ªoÓ<)”覹daù–v•âɪSG+>E°óßpÓ)›ßc
ÓØA4Å-èµËâìU‡ÝÃX“^¿ïàäìU%vM#_›¢gЂJ¢Yxð-ó›ä[v0:@öõ[¿Þ§2¥*µé¡ã®W!‚[¼1¾%—vTŽõEÐ×´#úTÕKÛ©
ö±ƒ#¸£^Í'\ÊõÛö¸©ïÛ°JSa>ÂG¾G—®Ík²¯»£à}äÙÞcí`Nå°w‰×Û‘ù#"¨7Ž')vpdŸhF
ÌŸ¼Úˆœ.Û6zZ<ò»3Èç<xÁñ*Lt»ÇÁÓ¿ÈÍ‘±«9 -w¼ÏÁ-›s¼s–%Γ¨"—úýä“r)_ò ö|ñ¢Ì„}ÔV7a›¹ƒýbc(¡Ì”Âs¯ìŽ °éC•/Þ)£3¯¶;íåŽ)¸³¥W¬`G´÷fצr´;{qZae}%â÷*5¯³ÕsxG*Ÿp¬ërÇ÷úK-¯)ÓÕO° ÕhçoéýHçÒwzì¹/ ¾(óUa/õ¢Uœ—52vžX
úoö•`lÀ»‘ ‚ÎYÚ6Þà];€¹ëõ°i”q\¯ðŸäâvÍ‘x*"/m~(=<ótçÍîlÃãtÉÎÆgÊ|‡ô9Ü£Ñ^/hÂÌ;ÉÚ†gãZ>ô*SÚrvbÒ ÷`ãX½ä;¸7žYæ -7V×;c=3ý¬)¨£µüÄ©X̃ɰ“µ9Yvpm{¾v';Pò¿ñ~ÙÌݤÁ4Rº·iÆ©¯j°â«ÂÇŽfå£ìƒ!±[#õÌæôªDa;ÈŽÆ©«©,“›s*¯ÂDбí噋ØØ{¶§;ÓmçsUÞ<Ë8KN’˜nsC;Í ‹>þw¶ýJ8ŸfæÖÜŸå¶à¹1«àû]-O>vŠ[Å£íO倣’Ù²œÕ1fGß+²0üò…<Öï]%-WŽv¶š¾\CJƒˆWkj(Ürž,¸ùiÓ=·Üñ†ÏÉ×ÆÃ|T£Í‚ÊX÷7¦‚Úš.|=Œ–|1ê{ª½N†ƒIú·`¶ ¹ƒHΨO¨í`ä`æau`ãrͳ{Óæ~4È]ˆ¬ -oƒv°_´
èdTÓ"«}E‘Ô°È3PkUpì@ÍT¿Ž¢füAšˆ‡Þªxè3[8ZÚå*Zi¸ìÂô”É× œc9`½e%r¬t—_'àËQ-¡e·fßʛ묯 -3=Y^ÒÓlê¬4ö»5†þsäÞÿÜd2Ö1Øï~åôܪšÇ¬«f“[¬sÆää¹-ñÛŸÛ±î4ÃŽ†·:ò>üÄï©O03pSñè…ŽT÷'må#Z!´N_‡|Ç-rx_›œË¶eê¶ÛT,¹dÊÆ){{#SïõQô¸³s›%óömçí"5³Ù„Ù•=*RçxÛµŒ½Öx5w¾¿õs¥¡ö-kæY†ÜƖ嘞¤itÛª3qûª§±÷É<xkáPe -Ò³ÔÄ…ïu$H4€g;(—°øúÀºß“¬ÂëÎZ";¿+@;Fþ^ nw>D+®·©¶G"ùz·ØÁÃMãI^ -‘vÉMÑ<ÏYfüÜ;!¥@-1“Ø(ÄØ'zÍy¡‹2H8s—ʱðèÁQJƒÚ: -Ûmv -;Á~fU[W_*/KI¦Ä‡>®25qwÞ‚¶~}ä»l|JVfª8Øï/^CúàÇ*µ4C‡a«é€Š/Ì]ÚT±Â›U«ïøªß9ÍÈ]¬3Mš6Ú†oœ™@Û`¯+u™ j^œ—3°Û•8EI+u›0'å~ï(c„*=[#÷0k²Z!éŽ{“Õ:GN9+}<v0ÒuÒÑ~Uxeží«ÆöÖy¿5yvØC–MèEÃi3äü5Oúªðz}à$Ù’,È‚ãÈú++zÏŸnùÐÞ¹d{&ÕYß3‰J?VË8M0Õ±:|$/ýÆ^l·™;¥t\¯.œƒjJ±õBá76‰g/³‘ÚS»ïýã2¦‹á‡ª¬Ù*ì€ü1¦#ЬÐÈu(ìN$»µrô±.C5Ç*5bpYÁ«å†s®ß§Mâ“z:Nª¡Rß×JoXküȪDßd·SØÏ×ç&…ÜG?xBñÏÕ:²š˜„Ë[ÎXc)+iÈí.G`Œ¼ŠãN¿l¤úoLÑ-h}ýšòscÕ±òŒ<oYîÃ&Pq12cÕ·MG%R,xñÞRÍ ójMr2Q%·Æú[ß75€còÄì9bæü=z¹µÔ%Ö*m,&Ö`>ÝgŒFpµ™N>ÂvÁ Ý‘¹ù¯ ®ó§oU¿y½«ý•o ôÇ;»ŸþaÅÝ`õ0pøÔ
™rŽžM×hþ76‚çäÚz#Ás¢K‘àc½–;˜«¯}gY露žæ ÿ|ɉ¯ÙUåmÌýêi‰Û³—¾.BÆži›{}ó˜[³u/óêê+d#ú -ßaÂ0`¦1rΆA”VvÇbo?¨«÷ñŽv[ñdAL_§š¡—“=¬$úºOU~diøS+´å5dDçËU\,‹=ͧg~ŠAÅN¦¶C£;ûUžm^ÖsDV±
ض‹óÊÄ'òըϽ†®öôÐì£~3^¬bÚ¾×s•d¦áqG?Ó‚¶ ÞIÙé{æ„ßMÅXOlÍÉÁAI6o©Ç¤åÈŒ“;ëâØ© -]Þ«¦ði3™:…̳¬wwÝ™q³’ºÑõ¤«(ð îÅ$ÕÕiì6ÇÎlNùä:Z}¡å¡¡¥góÔ¯ˆ‹ïL_“¹´Ö,± T€;«1îZÑ9ÊÇuO"è -ïZ´ÄÒ
°¯$ˆgC«ç ¯€WsǼåW…)yG 8‚Cû¥_Ð{Ì°G0çœ,gBº;ZA?yÒÆzo²ŠiKIí^O´gUó¬Ä½1Œk•l5oÝ I°wä«’ÊâofìV3 -Þ-æ -2¯¯L -Ÿ
N^ä@[»úÒ²YmiÉ;”¢@î¶JÜÞ“Š˜ß‘5Žã÷#?Îkõ!Ëá¾yŠ|ã'O×>=Ÿ!8káÉËA[[äEi}2ּ6확‡®51òìvFp׳iI÷’UîèˆÆl%UÞJ¡XÒýÉ%`JØ‚yÏL³ýžì—Å{¶3¦;ò<#xí|ð3‹]ÂØÊÏ?©*ç±àÌüµ»,O²)œÞËU±‚F¼H$ؘW³Ž*¿UÛV^û#µ DäÛŠ0ÇlÌÀy•OriÝ`"|éú%?îlçê.ƒV2>FWýĤ
l©>ÑVîAºî[)eó^vÒ–™¿÷Òu, -s[˜Ó졧êÐ_Dá,[²§tÎ:•’Ûo¹(Û<0Ð?Úr§ÄJ”ñõÝü++%õÑ)T/åÛ#PM/«-zef´AôWÂg#ÊP÷ñßLNÖ¡Yð$1fËIVÛÁJÄÞ³þð¶ftï\]}»H&Ü2EãH_ݧN/F çdLR«¸|{œZ§áGö<p¿¾™ŽÉƒè%?"öêŒBø€ùµ*Ò~ì÷«þàV.…Lþªð鼫îô}’:äSg”9õ`®¾Ñ®ë[:X>§ÃôynßÀ—<2uÊÈKáÈÔŠékaDKÖ#G—… ¬>r&ë-/&¦˜fØ×:烔¡3§À>þ>%åì[HB¯ß_ 7ì΂¯ý`Ɣɽý&‹1fLéñ¯™ÌìØÞ¡z(·gúþó«ÔÝJW9³ÎÝì7“À[öøç–ÁU -ƒöô8½Aæ Q2ábزÖw{1±¬ÕÚ|§×ÒçŽñãw@EÞÆ,^7Ì%<³v„¹ -_ Fî|Äçë÷wòÕ3ÿ«žÿ\—“Z¿2Õ#bÒz›þµpù;R.o^ðY¼üyýU÷ÝæõríòÆšódèd»›¸\ºü8»–*ðÙÀ_ô{V·8ÓEóUBøŒÃ}º—µñ*þìàºØ6—’>3/úŠb³:¬k¯c Œè0°†Ê¶ógM½}ÆÖÊM>„ðB‚UÎô’Måk -iZª{fk윺—lH7a'¥ZUíúöê(k[ÕJðo£F57ò‚úk™‡@úZKçùÕp÷'±Äø¹Æ½Ê–Ö,¦—rm^Á=×ZaˆÈVF·CeyäÕïñ ;@÷{mK‘µjž
~îŒ -ÖÀ^á<‚;§ìï\BûÜ×Ú¨+|¥žïÌyéû_¥öºMgyl{ÅÂcÑ›ŒºŠïàZ'«„H:—uxbÚ,°³‚¶u*™lËœ²«ùïºfaDŽ5ƒhy‹ñ)>²½˜+V+–×\ÙÖ–Wdf¾wi刦‚K¤_Ëw¶3:`?iN.תb–%È*pjíùmO
†Êû–•/j˜%†Öú™VÝÙR-¢qÛöQƒ¿0ÖX:ƒm÷‹d4«?|¶ØkÝ¢.ë
Jà×µˆfæ¿Ôu‹<IˆÙÖR®´XËZ·¨ëºE%¼×d´½7•UÎ’Ñ^z®ãŒO,ß[¶Ý4ŽÕ³Î„¥ŽjØîUÒ|¤¼GîÞOš<ì*Sž«†š÷¹ G -ÕuŒJUŒB†R•‰LZR‡¦®bdŠÒ¶ïÛZá¾xªÖÊD»•-¢¼V1²o¿ZeÛ3’¦ã°®eXÃ{/PT¸¯Çº¤àM‹l¦J=ò%ãÛ¹v°³»LŽ'[)=^^Éâù©µY;,úÓ¬?£º±ÌìëŠÖ+Ú—¤¤ßQ'Ä&Sö¶Pµ¸¨Ï±œ¬åô´V²šÄ+ø¼ü‹p„GÍo`1‹U²Æ–!þÎüEƒL*ôT·=UÕuiÈÔYÁëçµHÖŠ1y¯ìã¹VÉJëyø:H—ÿm«…
áEÎnrU£a˼r -¯õ¼ÌÑk,NÁ]¶Ñ ¥²Z5¾¾Å7ÛvJ>”õ¼Vðµž×+œ®Qg—¶•0:ëp7k’uÒr¡Ê«å²:Ú²žW –õ¼Jtçe *ç¡`æõ\PXÁ/ô1s!íÉjŒÙEõŽ¡ÇeËÅ™ÕÒʦWZsu}’ûX«gªëíÙåËÓjV¥|myÛ6¿ùxwŸæù,mpq™ÙØŒ¿_Q -ºØ²ç“‰Ä®,Óžo¡M¿ä‚E¶«†¯µR³å]jCÞ¬dˆ·:•>•;9u|æ̯ Pê\Ë7Ïr±·Æǧ¯<WDÒØ>àtÞúÌBûGÌî1¤pq öH‰`SY³Ýßq»ö©MñOL¡#ôlE— 7/¸Û+Èl°¯Ñ¼ëÕ`îÞW(fÅrŽ“õãʶÏT[íô×ø;Ð0]KËøôJ÷Ͷ»Úæ]E¦£ÜWPÝßþ3Ù*kÙv#¡zV°B£d¡ÿ~#ï[³Ì^ëW¶k[ -{¾ž}.B»·ö¼Ë’l%|dÖf¬žÝâÃGæ¿ðG/A@²Ç»U·5Ñ6èÚ#‡õ<c1xÚµ+Lor?™/´W.TÄ_Š$UdÙ²G‰‰ÕPúzÊa¶L3¼±ZS§ -ÞǪEÇU‚9XyÅ•*Ûn?³Pá>s¹eB®Qpùæªá’›SQгբ}x®*çfSðÎ%‰›J7²BÞA{L[ûŠú$À{§šŠë½DRù°„9þÚöR¡`R>±•&”Ÿ6…3Ë¿{Vd‹³ò¥.â -€LKäæп€ÖªHƒ6"¶ Èóó¶ÄlÙ3A½6uψš)dÖ~%OÏÝ(5S°_mRZƒ”µƒ$ -Âõ¨jrñ†/ÖR³šùsÄ‹æ±Í|?6ß`VJëÞ€¦Gà5\bæÒiªL¨ÇnÆË)ââXŠ*œ@B^óª@!!‡²©&ć[Að ›ðIúf.àùÉR«ÿ@„ÂÛ¯ú¶Ö6¹¬ÄŠÜbî,N9Í¥€Â -»VI¢ÖÑ£PE©/¹™â©DXĴâ¤N3ÑP‚ÕPÈ.ÙT$%vÜlêù"\IoÁ0ÃENoùc2(*Ù9c]“å¬ HïEÔK‘Œ×käLëÕX:çç0·5Å9WÝf³¶l
+%˜ù&éï2qšF^wçØý*>X £…YR¦¹þR_Ž’GV½zºØtaöÎ*°sÔ×5"ǯÂâ²Â917Õ‚M¢¦ÅÓ´¬¨;‚½¶µª(ó…5øŵpn1%šºCf‚šíã¨Ã’‹h'³[W ð¢2YWìQ‰ø8UL«mµ†:aMgn¨´‘îµôûš?Åu¼ÆåÞ7þQXw
J yBà!™`¹¾kYÆ!Ì)æÎ\éG#öˆJ 7Uì -3â¹N3•{ÚÀYÜKb1¿Û -9©¿Ð9ó=9Aé"ÀžµŠ:hz¸œ9¯(²9¢˜²WˆœX„L×0`m%œ4T6¬z†©°2ïZB®q5ÙÓÏV´Uád¶‘4âÅbi1 l Ék¤Më“ã:h*³ 1Òó܈ø´r«´…˜ˆ@e¦+ƒBXºñ¨HLÊ -Ù‰™¬Á¯Þ>¡(MGÍyF<ת«ëműºèUÊ6ð"Pz"lˆŒ\ÂðN%gûà0¥Q:(dzŒ‹¶”¸ÎòÌo 4¶ºÈ›Fª¹ C*n°ÀŒÒÿšï=ˆòvSf»Ò¶I,ŸôªB C67‹ÖVBœêé³]D~à4@•ˆi¡“N•ˆ‰K.Ë¢”óŸwJQ
µ
k<ZBD .-#ié%ÑXÊØ{K¬ -;]ÔTûM6º~ø ~WÐäu¯P`ó–8þ,mkµßQ#ýq¤AnRU:—Ñüœc‹³j¶ožÅN>gJ‰ûÎÍSS4-±ü©BßµÛ´$ë§j^sM98
Äy¶Ù,0‹’†j,+4*ãϦHÐøm*ÙO×Ò¢eQuí~Ú -ÐÁì>×LöÙiÐÊU/ˆ/8LAœü$1̉f -Nñ¾¶÷§{‡µB~ UšæåaÌ”$ÙY
De±`U”ÃÙº’ÿʘ£…(’¢Êòk±²úE[Š+œ”qùõUâ -jüœÌ»XˆÙ‹`2.
ŠtáªKFD -‘¨ÃJ:ÈpõPC;²I³ŸªlÚ€w8Ú‰Åò';…–ú>ˆmæÁZ!#Ÿ&V5:©"@Aø¡ùÞÖ’á\·¶ -Âöa!h&Žžå÷G¤Òh›ÖëœkîYW™üÀDu™²VÆÉN€î˜Œxì춚¤î·Åx¹jŠ˜_ÅÔáP±\¢ºBœÈÆŒó/df
I–S4—žk´aÌ™‘Õÿ®}¶V‰k¯&B%b=5WcÞ¶©-…ˆAµñÔR -€<YMŽ¤‰’9£5Ù“Æ»"–³E¤¶ZÛfùÏ£zïŒØúÕ–ÓÈpÿ&N„@Õ›d¥ý¦‚zÕœ§‰“ÚZÛ”¬ |Cš1ˆà1(Ð5k;'Z)Ê9qNΩ^3<íV”dmg;J‡ªD,A)Vm9¹•“vFÔˆ|œ*%ϪV‚¡qÖ„AyKTš‡—’ 2¯´L³ -i
Ù°s"Gúâ}gKez*.Ä©:Ý®œÇ„›yé”*QßéOyxÁæÄ–ÂlÕãéVŸ$/'êÉÐÊ”¸zÕÏÛÆÉ0x“A\%ºYƒLC8¶8-B£bøPiOˆ«WíJ[Íuà¸Fd[%j‰eìB%ûCñ
±ˆŠ;dHoÎ&XpeÑ6€R¯y -kD΀°1ÈP1©¨¬”7pãÆ2ÁˆˆÉM£ -'ˆ¥fñéi,låv2këÀý8]s«ÃïA.Ãñ[>ÉS‰+#ßtö)£YjuŒ¶ÙY¡ªð\ô¦ArZRÎÄû ÑQVjuàYm5“’®×2µÑnG–WÚVÄJCk™¹,:dN×ëÕ‰Ø@Ù³ý|þÏgK2‚?ir–Ù·iõ“0ñc!?h“ÉåP6zÓL)ž‘ Ôĸ|ú Ê×’ë×…™.Qá¡ .^S~’ÌF\¼P1¢Ô{t#È’§OiÑN4\°PÄ¢{eN¶Ø|2âOê°5µiNœ©ƒœ`0§#¤' ›™&AYDœëfm½˜F„¨‰Ð+D.φeÞ5hšiðì¹à´
@ÉcõLN¸^fD¼¯8<ó¶‘,~eubQD°}Mðžµ5ƒ -£&09(¶ÄAôúÊA'cC¹·!³S¢KA};k1g3LeIÌR¿wÕšÌqÿÞ[)W ²"1°…5׆ÇûƒŒš@”*Ž -rÎ` `u4âª)pÞ62‘ÙBQWˆŒë‹hX³^³¹‹ÔrZŽ ŒÒþn¶°¦%&SQlè=Þ$Ι†ºY-Àb¿.1€0FÔ1pP(ÙI,DÍË3Т˜³¶3 ½
„¾IkFûõr/ÌÛR6AÒ:<3ÖfàïLÄQ`™ÖVË-¬ÍX!ò†AÅ» ˆŒ¡ÍʯgS˜“|L£-(rhè5ãØ+#Uï¬- F¨I€¢–ƒ{b¬p
©Ã(hÉ
" 8+•Ñ¢~æê'…Äf -|õ|
»PL'Iªñâ:;UwYVÍ+¢œË ׂcc…@3ÊÞH™ŠùÀaÊqNDZRcÞ–†…T‘¼ôù qZúüŒ<œ‘1ÏÈ?IsâpFúûÚÞK¼wXkƒJ(3ŸWBéôù -DTžZ](zä²Z;æß`Nœ}¯Až}Û4Kx²]0ì+;fèn³Ý•6ìÊ>q±gAÛÛ¤ Ù1p3¸W;0Œ0 -q…k®Áa©Ú‚ÝàÅ4Ö{øöˆ=˜·õêÊe¡B3Æ,Vƈҷ2“+mQT1N¹hð€äš€ÒCéúÏä€WGUÕü@y¬ 8ÕLœó - -¢ÀÃŽemNÈi
Ñc -ÞF04`¯EA…¬¦ï°»œVU¾U -&Z>‹8µ$nfVbžµMb“kRW~dŠ—|Ä.dp¢ÖB¢_’<I¥á÷K‚ =Zb¨ZÇRˆ -´‹Ü iVëuND‰Éà*¢ÜaÍØdvžjüÉŒ6ÒŒ<†Ov).V$ ÊpeE‚¥ç–ò5_ä()Ë2f¢ü ÛÌê–¬ìT…¡ éL£õÀ½^ÇáôäW1—w.s> -èæ˵â—ÛÃLö…Na„`šI’2³mîΞ5Ük -[Š
‡.ç=Q)èè$94f°ñÅðϘfŸ‚š~ú؃'ò!u>È2ô?ãæ‰=‘Í/—>Š»åÐ/Ë'逿º¼ûËÙå‡TÉÇwgžÝ^Þ}ÿúânó/õ‹½;®¼½™xëã÷@ò·ß]ÐJ>"!h[Öñ¿ÅÏ7€cÈЮÔSòO0dèÅÍÍÕ—·ÿµ±/æpã…òÆŸçÀÍž[žcžÈãÏñÏ7Ξ={uùnó%AóRÓžT°×Æy4ÚÙVÃ/óŒÿÕåÕÙæ±QÅüãÍí›ïo®n¾ûñ©&O=föäò÷6Ï1:2³#3ÛE&2!«O†‡mì¥y4Ll»¤m¸ØõGqûTsö·ØZ‡~ì7—*˱ßxF‡.¼¸ÍEþÇYEaã -Ê?wY¾{Åðìꇳ7žO¿ŒîÎn·º¼¤ý§OÏÚ˜•ÙÙÏÿ‰g°áo=@ŠÓõÅÙÆ#çgWç¼yµùôÆ`9¿Þøv:;?÷ú݇<ænöÊ'ŸÛí›(6žÞ«W—w—ÿÚbrö©$g×—¯Ï¬4ìcCwÚŽÁ0¦Ù?¹`˜ÍgôX¬Ç`˜1÷n±µýØ?¹`˜Ígtè§!¹yeÀc8Ì}&¹c8ÌŽŸgcùóq„ÃlÁó>æ ÝO.fóúÝz‡9†ÃÊeô‡ñ¿”p˜-8ä¡ß^O.fó=ƒÐã‡Ùâ;úyrá0›ÏèÐ%¼C‡9hÿÏã‰æÙbƒnË<è>ƪ[DÍ¿ÂÏö~¾j"à#ü|x üE¿øϯËÕG¾ÞÎNô‘DìCY†ÍÍ~¤jÑ“¬™}¬“säh[p´òKæhOþÈÑŽíÈÑœ£ý"Ú‘¡:C» zägG~¶ ?; -hG~vägG~öøùÙÜ©óõv>ë'ÆÖ6žü/ȇw<6››úK>6OþxlŽÇæ/—ÿ¾¸úËÕÙ_o—/wˆ1 ô©«3¸“¼qô¤õ¯[PÎÞxLœïöâõ͇Òǵ^h Vëeó ËŠ<TYâ?îÄçþ¿î¤ÿóyÿ»ÿÿçýÁÉSÙ¾¼~uñíåõå殓ۋ7gw¿Ýb{ÎÞøäóÛù?ö1oßP‰˜Mçx,s,s`bE†z‚Ћßl6þX"õ·™Ó¡Çê
‡Î¶öÄzšùVÇçÀÙÛùÍë77o» -¼ƒ9êha;ÖÐøYxñ†ÆÉÃÕÐؼbÃ×ÐØü‹x
Í'rà54¶
I=øKóIbš\]ÞýåìòC&üÇwgkgï΃™ÈßÇúS‡vwúý¹íUóX®ÎcÝ©_îÝùxÜû[ïÖcÍ©mð@?þ$jN}õýÙ«›ŽøEߧàÔãáDÇêB -ظþÛ1#ÿ“¡5_}€ÍÃÀþý -O°ØÑæ'õÛÛ›×›O‡?Àt6F¹»Ùü®¾y€©«6mqa?\Õ¦']»h‹ËùXºè'§w,]ô3]ÈÇÒE?£Ýæâoïn¿ywÕOÿã³#>±Ú+[(‡®¸ë’üœGöñ›Z½{‚ñc[ÌéÑÄËáëdx?³øæßç°#È6ŸÇ1~ìñ»)îæòÙ“qRЬžšqß=wOÜ&¾qüÒÑ$¾>ÁMâGuïI«{Û°À£ÂwTøŽ -ßQáû” -ßƲÌQá;˜y¾Ç¯ð=Õ¸´§©òm\§âqj|Oï¨ñ5¾£ÆwÔøÖgrÔø¶ÀÐøòÔø¶˜Ó£ÑøþÇÍÍ«ïnÏ6?Ï«îú§¢ðm3“£Ê÷øU¾' ñ«Dl•÷~à<«vÇŠŸœ!ËxþÔDŽ/ö¼”?}Å‹™áÏÆ©ˆ™í_¿ãS›²¯ºr!¨ØÿñÍÕÙù???ÒÍ›³óË»ÿcûéÛ»¯6·qkëOý
øc9M[M걦ßÓF|DgiŸ‚6‡nÝnƒo×æo¹ªè‹Ÿ•+ÍÙdÎ>~÷”î-OØÈõÀyÀÆustÞ/n®ßÞ}¶n®¸.ß;Ü)Êžúêül™{åO>µ¾ß"GÿŠ<Hýùé’Çl†Ë×>ù$7ŽÉ{ûîöÛ³ó‹í>àêKÉ€îãÆ+sö_—¯ßmáš³öŸücón{2£ÊÆõ”.®ú¿lelž½ñ`2Öo/™©¿TWöCD
ô1ðóRÙÔQÚ{ioŒÞÇ"ñý".ÙÍ+¿áKÿîßon®/¶×_<\QcÝZÜ]ñ(/»}ºòÒQ\:ŠK›Žá+ePP^z’ñÑ;NGYðÁdÁ£ÉüИÂÆWÆ??àuŸ} -jz¸²é??Ðr>ÿ +>–:|,—"ð±ZJ«¥ +^šO·IËJŸÞ9ø±ÏhÀþìÓèœvœc4Gàì±JýQsßgilNgžY—ß“êŸËás*
méé²Q€Ëç±Î©·ÿÙæy!½žšÊå§ïï
&I»b-øãÌÅJöË:‰ö§W:Z·ÞWÔˆç
Ê sH‹Ø´žÏŒy’Ó3èX5p·ÛrµqsѾÄ}b‹ö\ö‡‹æùvWÊE³|{G¹h»È-/šePìÇ|]´]hä¢í&!Åô¥_4›h÷ÜßrÑ,3ሹ:?”=dG.Únïãq¿.š=D–çÍEÛïH;ä¢í—žrÑ<½ÀÒuÑžS=Öö‹æëðÝÍ9ûýÖf^4Ûž1çì·×¿ýï‹æÏìŒbãv–¯í˜•ÝÓz|åî-*O7iš—7^Q†¨³ÀÍû©<¢Mq_6¥¨n“³,WÙkš>??¹,§àyw}ÙNo{ØrÏ^§b›¤¥“ûð>G2¬¢¡sô©Ößõ_ãÜ®Õú˜§ÿm›H¸áª.‰·>| +üÁñ–ê®|uK +jÑ +ê£Hg^6o!ùÒßë²YÉZå\6o!Ù§Y—í³a-¤#\7o"y±·¸nÞDšíuݺš›\7o#YΣ®›µ‘ÆëªýÛßîeöïÿðoþãïÿ—§?÷wO—"ì¯ú~ø7ÿ·ý—ÿåOÿÓßÿçÿƒýü‹¿øýïÿê׿ùëû¿üaûñOžÿÿïÿñ‡¿þçÕÛú~_Ë{Z?ýizy&Ò±[¾9ÿú„›‹ËölgøëGØîøó²}ýØÉo„s'¿÷ÃûŸ°6Ò<\8½³åÃßô¾îk»#ol¿»=OÃéøæBËÓûæh¬½À±‡ñ:GÑóýiÌXGï{§d;ùúÃßÚ0:Z’oïC +¿6ñ×Ãݤì–ÔëÁS!w#d#¢_ôçæÈKõ´ã(Ì=ÏcöqŒÚ VìÂÎã»GõKîåmDÿæœp¸ñ9ö°• ‰à4¡>Žm^(Ú`ã®=wˆû¢ø(gìÀÄ
ý1oBû‘ÙÈÕwàKÚ°×·õòç~%¼u®Õ‹‰ ¯ü¢àÓ®SP÷È‚›®¥…ç¦CóÅrµW]ImûÝ#СÍn˜Ú…ÓÅ¡=áqp•‡µ"ý.ÍæÓS¾â>OÃ×½³éå×gnQ×Þ÷NѼ@·~ù^‡Íƒgþ±¸§Y§:‚ËÒ¥,¸G®‹]‡Ý¡£°µd´•€#8×Pk¯6ú‹vpî±'éDpZp +*â6PDì@øó‹âϦbwîÑR|´Ç¼,^’&~ßÝ«b-‹e¿Ê<’g +^[þ>šn>®›Ã²Ž¶‚ÏÑÓ> æyzÆS<â0lN$žæ¯È>yÄL± %]Ì|÷/] +j~]NËFãí^OÐf³Ñvó"u/5BëÊg°-(wþ°²},fù<ÅטÁ¡nà<F3ž·‡y®¿ÅߚȴÑ6>Ç-x˜Oœ—uúªèiúÃz¸,hƒlºOÛq(æ3ÄË}Fͨ›øUáûäZáBßÅå"yœ€•¯‰˜UˆÔÅ‚Zö_éÆ>/ÒW…¯›÷c¬Ýî÷ÌÜq(xíù¸Y£•ýÆ2ymÿ‰½Žµ×1[î Ö'ô‹k…î,øl‘íØ!îÜ:ŸØòRSÃÂ'™#>´ÖMòªz¶OvzmÁóíÎ߃¨l{?+ŸCï¼;_Ï^o^„{È£a¿µçžë
oO7¡
lSËì`¼àž(óU6“g¾µ¶åQö©}mxò·žÒ:1·HãñØŽ]ÛzÒy¼Öà‹ +ôôZsì íG†u¼o¯¹‚ñ†ŒÐìòÞ¶ƒ?¶íùp´íø8‚+jDÆ’1ö$^·úÌ>)ÍSÛݯŒ^p¼ùÖ‚8¹ŠÃ¾œjEyjÏzɶqr}ç-?vbgÜñ§±Ô¯£l?ï¥8g°ÏªÊÅ{g¶A^/ÅFCÞ³ð~Ñï}¸Tg;âºØWQ!ÑÜe¾÷e/àšü)ÓI"øtýtýéVð¸ÚS;°‚¦Ë•UöÛ@Éqí +ncêþ÷9öüµOÏ ±ñEôÒ‰]Ç¿ßw€{xê}l8Ô€ôhÛ¸×ÇviÓ›3E|»®í¼ß?÷Ç‹ðŒ?opÚÁÞõ-°öck<&›ëë´ÙÆ|Öâ½z>&OSH—äiÔEÐܶÃÚ‡^¬kz{q[|ål@4.@¿ n½q +Ç¢<}þó‡:J±×èz?ÍÃìsÙ
ôOäó5›¾ï=>§3æTãïoqÎÁø¹Ú)§•XoÏ®ËrŽÉ?õ¤ÏŸ{èÒr•ùèÆ//{«-íÝŒ`H¿~¤w¼fÜvéâûd%†²MÆÛ{Zª‡´õ8‚ÃËãN”VÒa…59Uÿî~U+ÅËÀ¬7 ‚.^¨™NpGOϨ(ßsÒÔ³Êà +f§Ýcñ{«n\‘1¯«7HÁ+{Â#ºEñ{k~ò`n»þÔwƒê~êro{î VÙõ“ñ5·ê&ç9yØ769“v–˜;8£Ñ¥[~©épœÙ„}¶ÎöÏ![#¶6ÉSÁy'‡tgyf<#.þ\¯Ô‰Á‹n•²3;£ƒd-`+6Ím¤ð„½F±.ï—ËŸ_ø.2<rÏÑRðé,Ú/¾c¾²ÓR*ã¯íÙb^ß
sys¨DMK³/sTk2Râa½«ÉlMþ|Å÷“ÞÁ™ïBÞ]ŸÃšùÞD{“·¯©`c|ÒSÄù9_ó;ª*Øî^. ‚ìnÖqˆÞÍ}•]YàÑzòùç•Ï·ë«ßÞV¯Í3Ê~ò>×£¸)ò°ç>D‹¨ën£Â¼e¦ +¢¾Ÿº~‚¶³ëaóó.6û·eX-œaßUþ·ð³#_9ÃþNŒ_?A{³/ª=ñKdï€ —J«Eê¬U/:vO¿~¾Ng;^º,oËg{ýgºö]e\ý¬|ʯ¾eŒYÇÕlè’ª¯X4•Ÿà®µZº¯„bÚ'Ø£ï÷γÔl—3~Ã>%çõ@÷w?ÄéÆâöáz¿0—µz"è“~L·=ˆt'$.âÃ._IëÅ
øö´þÒ¯Øò˜vsÔìü
ï>“è—ÊÊSØ@§Önݱú\ÔðOoƒú¼V_ôóÃRüçw'Ò«~QîógÍ„ÝÏ‹Î6}:4Q6Â7õU&lC›î·Å«ìP½fÒýÞWÄöÝòtqý6¼õ ‡úí¹þÑž8«cjSLc›ËèM®Ñ†K +Çlk¢¢MÀøeŠ÷s‹BÂþ©>ƒo¼(ð45\<‰'чP‡5 +öÙ¸PÖf·ûç“Áû¼õlzÿÕùà%2¿=Õ?ÚÃæ鶆_»Uè‘«èƒØöfÛZƦ¾}d0^ü3ÆÓr>xgÁY\ÎHËÃsðO¾¡ìµ8_Ï]òóõò›vÁ4%åA»³àŒîÂð i»Ë~}Æyø¶6†bCqÅÍ=õ3°|{‹õ&–{àE¨¿ˆ}¶š…w×"üî…1ÈþýøÄÚõu%›¿M·¿ÜÏ3Ó"‰Ù¿i»-]òõ8}ÓԸܞï»}Vg!ûNm6XfÃño n×iúþÔúâaOð>£³ã7ÆÔØÁØbf5¾ã>=òmØ”wɳö¬a+š¼ñM;h팂øþ€ºvm¶ãô#°·¹Œhžñ2uœâS÷´L$3;z|«ïXcÆ÷êÅoÿò‡ë½™¦&Ç7x7.NñÉÇg~§v·—íðËhj¨Ÿ„ãòïºÿ…¸4Ý°æA¿\ÛyEëőÛÍQŸnX¿s¶øÚ
ð8õ šX.òn1Ðáï§zA¼îÄðÔµç";xmþ¢_º½qÁL/þù8¶#ÎÀdzþR_;·Vý¼Ä\<¶£ù‹;´ÃïDJÝÉR²®ëº{<Œ>7ùÝ'Ô3½MèÓÐÏî[¨C޳ϟM´?a3‡{´5{TE‚öŸ§?yëÙ
¶e·¬Ä‰_^ËK¾¯BvàE™Â·'û³¿‡ƒkAù.öàl&#ñ¦¶(Yh=Ðíy ·Ë‘{Ù·üšú]Ñ̺¶CÕ—`ó¯Íþœù%h‘2ça/1÷›Œ¾W¯ ÷—ºož çÛú"’ÑøÑõ½,âr†ùTÔÆ¥9}1ÁøâÆrÍÖ,°¼v=dÞ½´mýÀìt(±ï—ÑgÈü2žV¤Ò>gžƒeIïqmÖZ +¿û¼~ïÙŽGþ›7Áùï¾5ß}¿~ã]üÞ{ûÝ7ü»Wö·îÂwï×çý'žož—¿Ô¶^5×u‹‹h};}.¯—ÍßWñ¾£ÌÓ/zŒtÁ•û®m=™Ù[dúf~ç+ôO|±¾ùº1zñí—ð{ßÌßø¾~ÿ[üݯöo|á¿Ûøn»á7Úßm|§åòýoÈo}o¾ûeúö+öå7¿x¿õuÜb…ßï°²ôœ'A|U&u¢º?ôÖÇ>Ý+‹°Oø+âÉ‹±OCòçë¹<ç÷¿ _þï~(&ÿÜÞÎ ÝJzäë+bO—×ZãºßDâW¿ÿá_1¦{©ûn +´“oƒ¬WSƱFÉl€ÓûòØZ³›O?F7u,¼ê£#À‚ÖqóŒzB_>Nå +´q†÷æ·~ž11Ç^thd¼ªçíý‚14b +&Çèάó
¾Q·väÄÃ6c\"bsœïØYÏ‹_ÛLzÿfKwb3vÚmâç%¼Æ,¸ïb›e0èïœ'l<!Èžƒ">µOm[¾#nj ÞÑZà +ò~Úl1™ióöyº‡&·=cÞq—ðtöóïå
g§]"bÜñÓž +&⶘d]Ûž[°92V>C¦ñç_áKO§ËZ‘îqÅØ_cM+"òó™6íz\ü)o +xp¿ïob^Œ5Ÿa>úÜ©?Yúó“ÇÍ¿h>fži ¬ÝÑAzGLVçé+<£%AŸó—ˆ¯¼!Ì[úÖ/þ\½ö¯½‚§ÄtëYEÉ8µo +Ò™9è’ZðÞ²áu…]ý~}¯Hy‹Ã±Ù®¶À'ÁH|…궧i‚b…׌ g‘® }Îzo[ƒ;ÙWlóg•éüû”¾‚gÜ¥±Xƒ[»ËœÜÑÛÆš#¨ï³"æek3ÆÏÏ=’£ê–G¤ßØ.Á„UhzL<-üey†²•FଅäY„~úÙÛÜf°VO„w|ïQžëŸœ—î‡'eþY(Ç¡Käèý)^öCà}Ü™ä‹Rƶ÷¤3?ŸV¾nRð©k/c¿h@rúÈrÝÒçøt1ük)V[~#ºf]¼+¨Wq&ùmì¥mºD]ÇT‚J¤¤/IX–ñÇöx%šå~]ôe]iR²ÇʉseÅùzE{Ös±*xARÝ5ÚÕ,a¸YSm³Ao†‰FÜ–í6€Fh|ݸ¬=^û•†U—Êäa+Q¬mcôקç>¾
6Þ³W¸uÆ©¼¶m¤ÍÁÉzû`¹®1Xý±ž6k±ÛàîgðÊÒ+L'Ýöºûƒe]†c{x0›Æ]%þ=LÓÐêsé´6e| ì ÂuDÁD“¡Q†kvÆ.>Æm~§ýø¯u!c†Õž;»ï¿Ý»ô€y‚çäö>/w+A^ÏÌo{Ǻãñ]9s‘àˆÔnv°Â^ ‡`<ËVñνڋ¼é®™$<Iqzê<ëÅsnûÑ?‚±dÁzBW8&=hk9•ÉúÍüSÁvÚ_Ûº´5Ì ¥®Ždù‘o¹Õ³Œ£íÊ7Ú¡E†ì9s kžjqxId˜Ï¨g0GÇz ¥l;ÃŒæÁPb +Þ1…ÂøÔ +Ó‰yGÚù|žL1|{í +ÜK›aÇ¥ÕœØ+è¸y +ŠðÓòIGmæ~]|#°|q ‡Rl,ŒcÔÊ°î9 ú*œ[/Á ô7ªnk_•>u +²ú‚¯m§®·¯Ü”NÓà“‚Ÿ§ðÚvo›¶½s:bÅ|žˆß—0×°Eý{'¢·?ƒcйYa0Ö š¯û¡Xâv3f æcè3hÛŽ“ ^ï·½ƒ6^Ýh£¾Âä!”§`wIÁkrZû®Ry8¬öSÛßG[¯ë +ö2q°¢eÔyke„±_ +ZŽR ò"<ŸÛö±íÕ5ã +2Þ4V¶½4íG0âÙ~Ë)ÔðT·lwËN–^Nñ[9óq–`6û~~lk
%ŸÏðGk'æ°åV0ÛQ9¸²-WöÈÂ+è5c?ï‚
£vòyî±ëíb¤æìëA¬a
|x%ŒMoÓd–¸“oâšR³†œîMÙÖ*nO½]P”àSü4äV8*#zpêö¨1ùôÒ!ì`…7nB‹zA1—}fóRv@Äø¹¬¦µ¥uLcdÒ†•ãP‚GTO¡?±Â¾šÝOµon}ºó¦¿zÅx)Á.ÜúøØÖÆ{6Œ-ƒ½Ju7£Ñc4e‹®_îjO·<ã™
‹Ì¾)Ê ²<X9ÀlxC/ ÏVûjÜl{íldΘ|\A^0/3þÞöRÆj÷*ä»b^ã`äTÛý^<²ÕÈ4‰íî2…gmô~õÌ<‰Á§²lëEÊ=èƒÕï`ÿYk½ÃQ8Qœ¾š¾”‰ùon†ÚvÕnõž¡áýª÷ÆËÄ'T㘙òæóÓ¼ù5è//žÂmËɪeâv”þÐص÷Ïè€ÝŸQØtÅgy®´÷°Ô‹µÕ¼òáðêpq^Gv¯øc–«¡é½ÝkÏätÛüضÓ<ÜT®é3x÷ú„0S?¶×Ù5pâÃrß½Ükipq|®îWÂçPkŽÁöèó¾‚=Û}×ꡯ™¦²mc¸¿õš&çÕücœ¥1¹a;èn³Bíµ¡NÁ~ «ßœ‚Û¿ú‹?<UùøHUþ×ÿ¬tek³ûÇÙf§l.À=¹SuxWøë;Ü”Îñõ½“߯üþT
_3仪_t{ ü™ÈzšÈ?»cÖ9´rÀZš™ì±“yáidô¶½Õwÿx<©–üïùòþ|IJ¿ž—<NoèÑߨJÛF«b»öÈgò gË~ñ‘Àá³7¶Ý‰FÁva-ùxÉ¥ žðY<4 ¸]w´¿GL´ú3ålóäÚC;ÊÒ÷3¾¢N‰‡Ÿ£½_Wg3_ª]^e"¸«“3¢vjìwFN–.BÈOPS~¾àùÅz$‚5M—äÎ;oðÙµ×ÒA†m >†¸6«˜¨¬’Áø×Eðõ <èëóÆlQª×Ã|Óį +3Ú:£t¸[浌¨˜aAµ‡<èác¿Ox»t`>4;˜Ñ@µàáâœØ:±K/Ä#ã…Òžà‘#¾2{ìôŒõ ýP·¨–¦N`Ðð÷àÎAéÓã¿Ï³ëù{¯ù®G¶ñûkÆ離zÐ+æEÐƽc—¬ÿ[^OÕƒ^»Õ·Ý¥çXùÚ#Æ·f|FÙÁhyÚŬLн3ÍÓµ‹[æCœ®ö£¦ñÇø([Ø'ÅñŽmíWýʦŒþŽyµÜ'8"+J'|ñ$ÕI¥TA,ìÄ1noA[tT»ðj¼ö·¼ï¹Ûëý×b·²×E‹àžtf+¨FÓ„v~>:Ü-LFûcsã·SOÍŒŠ?º“§Î×D¤¼Å«;l™âsrb¡³bƒ‚š…³°ìÄÑFF¿ïsãŠGs؃ãæcÌÂ*ö`Ûîq +$Ú{³kS
9Ú½Î8-³²¾ñ{Õ›×Ùê9¼#•O8Öu¹c©{ý¥–¿×”éê'XÐê´ó·ô~¤sé;=öÜQ_”ùªð8'_˜"Ù¬‘±óÄjг¯cþ“ØíŒÜ +ÛAv4N}\Me™ÜœSy&‚Žm/Ï\ìÀÆÞ³=Ý™Þh;Ÿ«òæYÆYr’Ät›Úi]ôñ¿³íWÂù43·æn$øÔ(·ÏY—xØïjyòa°c¸èTÜ* m*ý“̔଎0;‚ü^‘…áG/ä±~ï*im¹Zpl´³ÕôµàRt@¼^Sc@á–ódÁýÈO›î¹åŽï4|N¾6æ0£ßmAe¬ûƒSAmM¾FK¾õ=Õ^'ÃÁ$ý[0[ÐÜA$gÔ'Ôv0ò0ó°:°Îq¹æÙ½Œis¿Nä.
DV€eYnÙöÛgËß_ù¡XGSêúú6ê/í4ȳéÝÖp]x_‰f3odѯonìÈv~¹„kØÀCþØL2zŪåº5‘ØrdÐÛsy¶×óXržMNÉÁ€)¹Ù„V¯7mR_ëñžS'¶ÆË“x‡s§^É©Øѧڙ,Ȫ0ŸWdØ-“l“lw-³¦~‘I+1HÑcåØ눥?õó[[ΓC +c^_¼go#›ƒ±v»¸óÓ6–Õ_ͶªBã™ŸÏ Èë:¢7CÕXÁ¹ñ¬–ÿìäUæf¬ü£SUÍ›6½GL[Tl[
6„>·*%:6fÁ¼«@‹º[,7[É@M•tãVKÝk™s«Þnü¼Gڜͨ‘kŒÒnŒ /öÆHF¾\ͼ¬0•›úIɲ¾fö_n£OøèCϻذàNsú\ÝåÕf²¥}öôÐoöX7v÷õ‰Iè51Å6Ío%‰)O0êç»Á{æPL"ºïѺϿõUÑòdØ×>–նÚ2Ö,H¯YË2ô#ò’Ôžæíîªýg7"iªDT~eØ„WÛ¯¾©OP()jù®ya}b8vpÆ +rù¥Ä‚U¾ayÌê¼ó^’J[ƘÅçnÕö¶s8SûÓÓÙ7Æã]m½r”iP9ß,ªIóŠŽ¿º:ø¬“àä%Øòl¯Áƒ4TÄ0¬k]««5¹½mœxŽ3á‚SléËuÇ~ï4즪F†G‘ñ'M…·A;Ø/ZˆŒt
2ªi‘Õ¾¢LjXä™F¨õ*8v fª_„GQ3þ MÄCoÕ <ô™--ír4\vazÊäëα°Þ²9VºË¯ð5Á¨–в[³oåÍõÖW…™ž,/éŒi6uVûÝCÿ9rïn2ë‰ìw¿rznUÍcÖU³É-;crÒÖúò›?·cÝi†
nuä}ø‰ßSŸ`f +ংãÑ©îOÚËG´Bh¾ùŽ[äð¾7/8—mËÔl·9¨XrÉ”SööF¦Þë£èpgç6KæíÛÎÛEjf+,8² ³+{T¤Îð¶k{ñjî|~ëçJCí[Ö̳¹-Ë0=HÓ趕gâöUOcï!“yðÖê¡Ê¤g©‰ßëHh +'qf×Ê?¦hÏýª^m}ðNÅ4>`¿ÏÙ +Ûmv +¯`:y +z.n¨jÁ³k.ÏvÛøÐú üW…ÏRûr¨„•ëD9òÈb¹ã>jn+ÑÞÿÒ±‘–ëŸ%íÑ4äHêÿ3þfm¢L¬X»Pƒª8‡/”÷ú‚ÛŸï³´Zô·Ÿ?³ÌCê´IÑ÷´[~¤¶<§™1×9õL +Ì3PW0'Ö„ˆ]™sË †qæåbþGÍìC`{lQÈŽkdxäùQ
Æ4骘ݾsg{N0X8g-S¿|+…AÃGË•BG£ÊV+%R[É#[Å,îlAyRBìÀ +öæìý8¨Q×=kºVï÷Ì~!)R¶-å.f–]4·:góAÞµ^Œ¢øš™HžŸé©Ú &’¯1ûûD9__5jÕZΆ̛Š +½å'N%˜ì +¯çÐN2œ)É2€,8ŽÌ¡¿²¢÷¼ñéæ‘áK¶gRÕñ=1“¨ôcµŒÓS«ÃGòÒÏ`ìÅv›¹SJÇõêÂ9¨¦[/~c“xö2;©=µûÞ?.cº~¨ÊJÂÈÑ*c:Í +\‡ÂŽàD²[«G+ár0Ts¬"P#—¼Zn8çú}Ú$>y¡§ã¤*õ}Ôù†õ±Æ¬JôMv;…ý|nRÈ}ôƒ'Oñ\#«‰I¸ü±åŒ5–°’†Üîræ@ñÇÈ«8îôËFªÿÆÝ‚Öׯ)?7Vm+ÏÈó–å>l#3V}ÛtY"Å‚ï-ÕØR1¯Ö$ 'Urk¬/°õ}S8(O¼Áž#fÎߣ—[K]bÔÚÆbb
æÓ}ÆØiW›éä#lÒ™›ÿ +â:pÚøVõ›WÑ»Ú_ùJ¼³ûéVÜ
ÆQSá‡OÍÑ)×áèÙtæ`#xN®g1Ò<'º >Öûh¹ƒ¹úÚw–•Î(ëižðÏ—œøš]UÞÆܯž–¸={éë"d왶¹×7¹5[ü2¯®¾B6² ¯ð&h#§álDiew,÷öÓˆº +qïh·åOÄôµªŠq9ÙÃJ"±¡¯ûTåG–‡?µF[^CFÔzþ±\ÅŲXÐÓ|zæ§T<ádj14º³_åÙFáe=GdÛ€m»8¯L|²!_úÜkèjOÍ>ê7ãÅ*¦í{=WIfwô3-hK┾gNøÝTŒõÄÖœ”dó–zLZŽÌ8¹³.ŽÍªÐå½j +Ÿ6“©SÈ8«Ázgq×7+©]Q¯AºŠŠá^LÒZ]ÆnsìÌæ”O®ã¡ÕúQZz6O½ñŠ¸øÎô5™KkÍJ¸³ã®U£|X÷$‚®ð®EK,Ý q +x5wÌ[~U˜â‘w”€#8´_ú½Ç{sÎÉr&Ô¨»£ô“'m¬÷&«˜¶”Ôî5ÁñD{V5ÏJÜøVÉV£ñÖ{G¾*©,þfÆn5£àÝb€Õ{<Šè^‹P5ûÎ)BšPz¼NÙ¤cpGDì`dßäŽ +N?½Þ;ØŽ|ºàœÃ…§Þçss¯Æî¢g½Å®”Ò¯¤½U…ÍOG[¥1îUJÖò.ó&Ð>h=kšÝtî¼ÂïA¶Ú’DîÈÍøªð!óúÊ +än«´Áí=©ˆùÝYã8~?òã¼V²î›§Èg0~òtíóØ󂳞¼¸µE^”Ö'c]Áû¾ykÓžYyèZó'Ïngw=›–t/Y厎hìÀSå¡Š%ÝŸ\¦„-˜·ðÌô7ÛïÉ~Y¼g;Óaº#Ï3‚×Î?s ¼ØÕ*Œüü“ªrþë +ȽwÖì o‰8è˜é\Ý) ÞZŒ3vJËÙwƒÆv\wÔÒ9¤rÓ%ð ÔÞk‰^Çâ¾TêUs³V4CÙ!íÊڶ̱zK×J·0-ÜÁÀƒƒå?ÔˆòŒ„é–G`e%O¾´6ñ•ðA}yŸÿ ÌB;תÑq>ˆáxµN],Í›‹ÚÐ ¶’(žâæa5c¬,L¬[ï7G'¬4Ž,‰kiÛu1+ÖÔUýÉkë00u1kux´˜½_[}T¬æCwZÏ—Õ'R*ú[k-Ý«0·…™1Íúwªýeβ%{ÊàAWá¬S)y±ý–‹²ÍÝù£-w +A¬D_¨ÑÍ¿²RRBõrP¾=Õô²Ú¢WfFD%|¦1¢uÿÍädšOc¶œdµ¬Dì=ëokF÷ÎõÕ·‹dÂ-S4ŽôÕ}êôbzNÆ$µŠË·gÀ©uº~dÏ÷+á›é˜<ˆ^ò#ra¯Î(„˜_«"íÇ~¿ênåRøÈä¯ +ߙλêNß'©Cn0EpF™Sòå°pf§â`ùœÓWä¹}{ +eñ2sfÚV¾¤ß—ï•;wavÆýªð9S¥°šà*à#_¿¿“Ø»éþöÒ¢í¿*ÚÓãô:™ƒFÉ„‹aË^TXßíÅIJVkó^KŸ;Æß= +6ÕÃ\ÖX‹0ÜY lkµÿ˜ºËd¥¬€½ÂywNÙß¹„ö+¸¯µQWøZK=ß™ò +Ò÷¿Jíu›ÎóþØöŠ…Ç¢7ußÁµNV tÜY/ëðĵY`gmëT2/Ø–9eW;òßu͈kÑòãS|d{1W¬V,¯¹ +²-¯ÈÌ|ïÒÊM—H¿–ïlgtÀ~Òœ\®UÅ,KU0àÔÚóÛž•3ö,+_Ô0Kõ3º³¥ZDã¶í£a>¬±tÛîÉhVøl±×ºE+\Ö-”À¯kÍÌ©ëy’³¥\i±–µnQ Öu‹Jx¯Éh{o*«œ%£½ô\
Æ)ŸX¾·l»i«g KÕ°Ý«¤ùHxܽŸ4yØU¦<W
4ï rŽ +m–à/ÙWJ”mm±SW‡¿ÏºŽõ +lOYîáIRe.¼4J—²|‘OÖϪÛZE|¼ÉðôæEì †s®ósÝ¤Ï w{ò2L®§Oj2ÈlÇ®êÝ+˜ßT½eÛ¦Äk‚ýªë• «…¥ +™´¤M]ÅÈ¥mß?¶µÂ}ñT•‰v+[Dybdß~µ(ʶg$MÇa];Ë°†÷^> &¨p_u5"HÁ›ÙL”zäKÆ·sí`g1v/˜O¶Rz¼ ½’ÅóSk³&vXô§YFuc™Ù×#¬W>´/I?H-¾£NˆM¦ìm% jqQŸc9YËéid5‰WðyùášßÀb«d-C4ü%ø‹™Tè©n{Z«ªëÒ©³‚×Ïk‘¬=bò*^Ù-Æs’•Öóðu.ÿÛV7 +‹œÝäªF–yå +ƒ#Êà/ù|g[¥¹lkåDO†ÒZ1«œ‘ëøx‘לº˜ÑÜßð|<Wп™Ÿ3ºÛȬÿÍeSýÇŠ¨çºåjg–²nYÕË=¬]Áµž—QK•W÷\lØ +Ž{®•Œ^ëy™£×Xœ‚5ºl¢AKeµj|}‹o¶í”|(ëyàk=¯W8]£Î.m[+atÖán×$ë¤åB•WËe7t´e=¯,ëy•èZÏËTÎCÁÌ'ê¹ °‚_ècæBÚ“Õ³‹êCË–Š3«¥•M¯´æ6êú$÷±VÏT×۳˖§Õ¬Jù Ûò¶m~óñî>ÍóYÚà*â2³±%=~¿¢t±eÏ'‰]Y¦=ßB›~É‹l
V
^k¥f˻Ԇ¼YÈou*}*3v0rêøÌ™_+@ Ô¹–ožåboO_y®&ˆ2¤±|Àé¼õ™…ö˜ÝcHá<âì‘Á¦²f»?Z¿ãvíS›âŸ˜:?BGèÙŠ.Ao^p·WÙ`_£y׫Áܽ¯PÌŠ)äZ'ëÇ•mŸ;¨ ¶Ú+è¯ñv aº––ñ+è•þá›mwµÍ»ŠLG+¸¯ º¿ýg²UÖ²íFBõ `…FÉ:CÿýFÞ·2f™½Ö¯l׶ö|=û\„voí#x—%ÙJøȬÍX=»Å‡Ì[á^‚€dw«nk¢m,еGë;xÆbð´kW˜Þä~2_h®\¨ˆ¿1HªÈ²e«¡ôô”Ãl™fxcµ¦N¦íŠÏ†þRÌZÖÉJ ÜãsMš–Ðe¡¢s}jÐ=ü˜d8—èÉJ×V“¡2µ`#Ä{©êd¹g ÆÇÍ&¤·ö¼ÊÝ+á;³õwÉ.Ñr£kÙñ·æÝÓJdeÛ‹2dvùd‚” éι¸ó +·,ãÕ¼«²m¼U‹Ž«s°òŠ+U¶Ý~f¡Â}ærË„\£àòÌUÃ%;7-¦¢ g«Eûð\U&Îͦà-œK7•:nd…¼ƒö˜¶<öõI€÷N5!Ö{‰¤òa süµí¥BÁ¤|b *M(?m +g–÷¬ÈgåK]ÄDµ·ÛûþØ{×åºnkMô ôü㪤ª©àÌí_¶r9û”r9qÒ®®.MQ6;馨8ÞO0.ßÀ\sQÖºÈâ"½vÊÞô˜˜X +‘¿: +x5Œ%ʼoü¢°î”@ò„ÀC 2Á(r}ײŒC˜S̹ÒF&ì•@;oªØä|£dµ¹s„ðdµæcPÍÀʆ¯I=>¶$K@(´‚óæOrÙfÄsf*÷´€³:¹—Äb~·rR¡sæ{r‚Ò-D€=k5tÐôp9s^QdsD0e¯9±™®a >ÀÚJ48
h¨lXõSaeÞµ,„\ãj²§Ÿh«ÂÉl#i<Ä‹ÅþÒb@Ø@’×H›Ö'ÇuÐTfAb¤æ¹ñiåV[i+0ÊLW'„°tãQ‘˜”²3Yƒ_9¼}BPšŽš3òŒx®TW×ÛŠcuÑ«”màD ô:Dع2„àJÎöÁ `J3¢tPÈôm)qå3˜ß@ilu‘7TsA"†TÜ`¥ÿ5ß{åí¦Ìv¥m“X>éU…@‡ln„8ÕÓg7ºˆüÀ)h:€*Ó:C'*—\–E[)ç?j4,<Öx´„ˆ@]ZFÒÒK¢±”±÷—X#2vº¨©ö›ltýðAý® Éë^¡Àæ-qüYÚÖj¿3¢FúãHƒÜ¤ªt*.£ù9Çg%Ôlß$<‹|Δ2÷›§¦h"&ZbùS…¾k·iIÖOÕ¼æšrp&ˆól³Y`%
ÕXVhTÆŸM‘ ñÛT²Ÿ®¥EË¢êÚý´Ž½JVƒ–/o@ÄKfˆÙªÁ{Í¥Õ·bÍ^aëxG鱟ç +5”L§’_VˆÒAóÉjÛ$&µÕ5˜½œfä*©§BŒÕÁ@áue5ÂDÆjÞ\ +ûðQ9 +‘sÑÁ ;-&;û±b%È]¬[C‰ÒÕqaÑ–.«ª+«@]s"‰®ú:ˆ|ß+ƆÕÿ k_ƒÞ$Ž'Έò~EÝÕ¶š·FD¨ÆQmE+ +œ&«ÒHN ƒÙ}4®™ì³ Ò •«^_q˜‚Z9ùIb˜Íœâ}mï'N÷k…ü6ª45ÌËØ)I²³ ‰ÊbÁ>ª(‡³u%ÿ•1GQ$E!”å×beõ‹¶W8)ãòë«ÄÔø9™w±³Ád\éÂU—Œˆ +f?UÙ´ïp´;‹åOv +-õ}Û̃µBF>M¬jtRE€‚ðCó3"¼%ùnmxÈ÷èäË‚XWý½ Ûm•ù0 8‚F„:]ô2m)ë¢T0`¢ +"ˆ +Š©Ã¡b¹D5.t…8‘ç_ÈÌ*’,§h.=ÖhØ3#«ÿ]ûl-¬)Ö^M„JÄzj®Æ¼mS[ +ƒjã©!¥ +‚²6ˆ8-0ÖÍÚz1Q¡Wˆ\ž
2ʼkÐ4ÓàÙ[!rÁi€’džk;™4œ8p½Ìˆx_qxæm"Y(üËêÄ¢<ˆ`ûšà=kkŽ¬m蜛32e,44)–7'¤¨P¢qÁC_m[+l8ÛÁQ¢¶Í—/©ÛØË…åÑÊ.€½u>…™ùbÖ6BZeõXÄ0K‰š‘ý(ðíõ@æBõðR€€ÚƒË Of†Ô¶”]P~,IJê +±oÝQ‹B«oq%²ŠjMâ’É/Ga4H»Ðê[ÔmP7š“êªaùQ6ŠDFƒ+¢â,ÎÛÖÙ ƒ¢JöB‰áV@ÆY¶å°-¥É¢â— %“'€‰ +Ä!K°’¨ÅÂEY`Cy:-Kù$*FM`Z!rPl‰ƒèõ•ƒNƆroCf§D—‚úvÖbÎf˜Ê’˜¥~ïª5™ãþ½·R®dEb`k4®
÷5(TäœÁÀêhÄUSà¼me"³…¢®×2аf½f+r;#©å´A¥ýÝlaLKL¦¢ØÐ{¼Iœ3
%(t³Z€+Ä~]b +‰Í +€f”½‘<2=óÔ㜈´¤Æ¼-
©"yéóâ´ôùy8#cž‘’æÄáŒô÷µ½—xï°Ö•Pþf>¯„Òéóˆ¨<µºZQôÈe[µvÌ¿Áœ8û^ƒ<û¶i–ðd»`Ø+VvÌÐÝf»+[mØ•}âbÏ‚<¶·IA³càfp¯v`a +×\!ƒÃRµ»
À‹i¬÷ðí{0oëÕ•ËB…fŒY¬Œ¥oe&WÚ¢Z©b4œrÑà!È5¥‡ÒõžÉ3 +IKoúÁŠÊ‰´¡,ÚšÔ?mWˆC^!Çy•ë¢½B¸^ù©!ˆ{ƒðž í³S;ÄûA\Qfä¡6P\*»CÁ ŒÓdÆSF(?U çm“ºú¥î˜äIN¸7˜ˆ)hYñyÛ¡:%¥¢9lj®“-"2Ò"jæÎXŸ‹(É7'ªö‡šâ`Q3’sÚã4#ÚI’í9këL¬™iµ3â\ž‘‡¶L¢RWª>à,D‡ËÚ"œÓ¢Ç¼`hÀ^‹‚ +YM1Þaw9ª|« ‚‰8ÌÌÛVÛÚavš«¿$Ž)¬'…›,Âi± +¢ÅDDw1ø4#Ú" +ï[m‹•M‚³$²0²ü +Ià„X2cfÏZ!2`:dýd +ouqÀœ)š+‡‘PõÛÌÚK6ª1 +²t0'#=Æ)ª²bg\!›ä +öK²Ÿ”6ŒŸúCrùÌì¡ä*u–#íH,Ë0»*w˜µÈŽ¼>'#©…6SXšˆÉÖ¦›unN&»X…½ÅÚF@ŃŒØåÂ2#J`¿ó¶#AúV‰sûý Ó•§Åõ¨W«TŸ€›«=ÃàšñþÑÖr¦ãšÄ¹gÝ$èÊ4¤pžSÌù)hÍl$}×¼%C(¡ŽŽ:¹WˆlùDƒÌÕq´WœÑ¢–„cèÎÀ„ê8No4Â'bV—ø +‘§Š%üšû¸2c½h½aZh¾¥ƒL%ÁÛ¢m‚¸æHì :ÁÃFy„>YÄ>'¾«sŒÖ@¿–í#J‰Y[’XÔž¦Å7ÑÏeÃ9"©¥'̤#~Å¡Jaó’b4o›Q‰gæ¦]!—î +î_Ëo˜;ŠÝPëçNeÎôt¨×®hb;Ê'ÂU=#Î}+d¸ÀG¯C÷âÌ8Tª6-Í’væ-yYQt\=Ê3¢*Còþ ‹Íít–LÁL´|qjIÜ̬ZÅ<k›Ä&פ®üÈ2.ùˆ]8Èà+D…D¿$y’JÃï—Az´ÄPµŽ¥VgµœˆÅf YÛ@øS-uFl’
‰@žÆ¶ÌÂUƱÚâòpØÚfQ5˜™çÁ53òÄ¡›Y!XFÈ]niJv€JZ³0 ÇBÅAðRËEÔØ¢ÏV¨ˆABÞ™{…*±äëAMë9‰”•ê%©›ŠžDÔ½a»ø›y Òq-€ª‹V:n¤ÉfLUg°+BÔQû²Y…±È)C䜌rËi-s›¾§¥‚šV +Ù.s¦×‰ZÜ+´ë)2e”QÖJ^7iÙGƒô£*ÆA4¼`6òQoyÌ~|C0÷ñ˜ÓÊÍEE¢¤æò¼Åèè…-ÊG‚!ä<ØìŠ+«¸4b®fHꄨR+åщ’È=·±Ï‰³¬Q3dÞ+ÌmÑ8 b +j»Ÿ·¥DÌËÔƒ¤î¾y¦T€,:²`ï¯J–TŒQÕ«4K¦m õqgmg§‚jÕ´ šgéõŠÝT8ÞÜG\M71òOÃœ8,¼ñ¾¶÷§qiz^X±Â#Ý„JšD¨'À(¢ja|JìÒ4‘@Á~QK6à0pù€zÕ(”£+M^o¸}FK*Ñ‘ +´‹Ü iVëuND‰Éà*¢ÜaÍØdvžjüÉŒ6ÒŒ<†Ov).V$ ÊpeE‚¥ç–ò5_ä()Ë2f¢ü ÛÌê–¬ìT…¡ éL£õÀ½YÇáôäW1—w.s> +èæ˵â—ÛÃLö…Na„`šI’2³mîΞ5Ük +8ô+óêòî/g—Ò¶ßyv{y÷Ý›‹»Í·Þ/öî|<ºòöfâùÉ}È?^Ü~{A+ùˆ„ mYÇSü?ß +ÍæÂíÍ!³•×·7o6?9ÜøÓËéï°o4msÛ¤´þäó¹½`pÓI½zuywù¯ÍÕ©ñ¸®7Ÿ×ùù»7ï>÷0ŸÙì•È׺¾8Û8ýåüìêü7¯6ŸÛxáÓ§Öm,[̾~þO<…M?àê[¤’œ]_¾9{°Ò°µÝi;Øfwþd‚a6ŸÉc³~ƒaÄÜ»Åa9ôcÿd‚a6ŸÉc1è<ý`˜ÍëÊ=¾h˜#†ä_LËŸ#æy|8Ìù“ ‡Ù|&ån=†ÃÃaå2ú„Ãø_J8Ì<ÿÐoâ'³ùL›Aèq†Ãl±³ýŒ<™p˜ÍgòX$¼C‡9hÿÏã‰æÙâÈmË<è>ƪ[Ä¿ÂÏö~¾j"à#ü|x üE¿øϯËÕG¾ÞÎòµ‘@ôx®¨Íe¤jÑ“,~¬“säh[p´òKæhOþÈÑŽíÈÑœ£ý"Ú‘¡:C» zägG~¶ ?; +hG~vägG~öøùÙÜ©óõv^ø'ÆÖ6žü/ȇw<6››úK>6OþxlŽÇæ/—ÿ¾¸úËÕÙ_o—xˆQ, ô©ëK¸“¼qô¤õ¯[PÎÞxLœïöâÍ͇Êk½B¿y)ŽÃ/öòÔÊŠøÿyp'>÷»“þÏçýïþÿ?ïNžZÈö±†ŠÌë‘ÕPyû=UQÙtv©†Ê†·õG/ ò‰§yyýêâõåõåæ.Ë~R/Îî~»Åu0{ãàÄŠõ¡¿ÙlüÀ#õ·™Ëc‰Õ?,—luvœìèU:øDó›7ßß¼íéŸß}à°?>Öð¡-õ¸f/ðåCØØLøÏÍÏÍ?âØl>‘„Í'Âü°ñD>0åùDüAOäžÁùDÒ#áÈãòÜR/xLWçÏ_7ðSÛŽo/ï¾{sq·¹¬ó‹½C‹c§{L +ظþÛ1#ÿ“¡5_ý¸yø×°É6ŸÈxé|"ÿ>ppèÜìæõë·wt$n/^mŧwæmtüÿÌ3ýe( +šÕÑ$þØLâÇ/=>‹¸;<“øQÝÛ…[¾£Â÷‘ÏÌQá;*|G…ï¨ð=¬Â·±€rTøµÂ÷TãÒŽ*ßcTù6®ÃñøT¾§vÔøŽßQã;j|Go›Â +OEçÛf&®õå'§õm1£G¤õý››WßÞžmÎc*ߣVùž$"ÆV9âž¿ó+^l¬þ+^|r†p,ãùS9V¼ØóRFˆ'Á›õ;–½¾ê‚¬€,ÿÇ7WgçÿüüDH7ߟ_Þýø[áÞÞýxµ¹[[úDßm +1ae‡²®ÿv{výöõ(‡³ßwj]PÛ1ßä1XCdjŸD=ÚC~áöŽœûâêê¨ëìy±šÛà~|+ø§Ï¾øOï¾þÝõ+ƒ"R&Ê׺¹þKï‚Ë”œ +ùË‹o/¯çžýé{íƒ}õã›on®Øvqòååí«_?s'_ôþñów³ÿ¹“ßöþüÌ=¯‘þïÄ=w1‡)ÑSsq’h›çEÿãy‹SðåägÏFPÎ?~ìÿñÿö?þO'ýp’Nþxò¿þ·;yE¿÷×g§Íçéy(S>i!¸ç©ôŽÞ¹Ð´Fäö<6ßN¨m~bNóóäƒ'bjÏkp•ˆ½+úëœ:HéyÌ™úMþy!SÛþšŸR$byžRLtÏs©Ôk Ï‹÷Q:ˆþ9¿ÝŸ¶:qÃø¼¤ªDo=¶”õ×'?Múrz>Ejš\Ð÷£µõ¹bà9Õç)¸Y¥Òücykå¦ý¯©éô³öÙú: ÅM¡éËíyk -Ù»þMˆØ»Ï>1ѧjJô¾‚æ^žWÏ«ßÉaòúë-5þø¼¶”&!E7}»>o5Ò:õ5ìëÈ¿Ô—,õÿ%"m™˜˜û:„(ÄÚª·ñ×Pè§B_¨š›¶mµðFéß®þv©ïƒ’y›ä¾ÎíäÅý{êå³oûFŽÅÕÆû×OÅ5ú£ÿ{ô²iµh—·œèƒ¹ç5ó´ŸiC†¾ýûJô>iù2öi~^2ï¨> -EUßÃmbžˆ=üâÙï;«ÿìkúÇü•þ·¯x¡ÓE,nêL–þèGºïle÷©ºLì¾/V?>'ÿø¢¿%—i -z‰9¿Ö}|^ÎmÙ$e¬Z?—.V=$çgå±Ð -sµ³™"ß®Ÿ£šxKÕÖy[R†0…©ê9—è› 0;•.bÿè¼Ì}'µR¹‹Ò/‰‰» íë„SÑÕÓ’žŸÜ—]ä¾Y]àÖ½‰OrýôÙ•äa«0ÓAºˆ®YOæ(úÎòYûÌÙ˧ª±EÝlÍ9Ý -Kí²Díí½‹¯ú?ïÿL'¿úõÉ?þ‰Qoæ²ÔRÐ}‡g÷ÁÙûØì}hö=2{˜½ËÞ‡e÷AÙû˜üÉÔ V%¶¼[Dô¢MVm -ÒE¥ QîÞèÐú¦(*¡õSÕu&Z'w((Ùc™×[ë:wÆû¦»›¼9ÈXºüJ2ûKÓ~X)êä~¦ttÏvV&†ê…é -[ZejÙy¿]Žªm9Ñš™œCâ
Ù×¢nÝàŠW¡4Uì•…J$«í KôhÛ{ÕÛ¯· Rm´ƒ¾õusímE7‹Ï'áð¤ðx§úZèÿ«Ç¤9(qS,ºtzôcõË¢ÉÓ‰%@X&>¢ï§ª
+i1x?øªH×aqX¬¬÷V'º´Ï8ÝX…Ø`Ò÷YÍz©jl©øµà¥ßÌö%v®ƒÉæT:(“éÁQïôÞ5íª/´…ìñzH Eem}µ‹þ”wrùõµÎrùõµÆZõÛ £²•Iuaáƒ>‹^ýô]+v–Kß5ö£®Ò-‰át -¢Á–±·làíz*^³"KÞ…E>b}›Ñ†ÖOé¤ÒiÕÀâÕ¤äD‹ 맡¯˜œ–RdN©Da±¨Y•4„Ä\‚¬=IgF&ÜÈÁ÷®¢œ}²«¦IXµÉÁë¢sBÖFBÖýMÔ”‹Pc£Uè[8ó<m‘WúÅœŸÑN§L]nòY[¶hœ.ÒÅ@óõd(”=J\•ìíLôIÙòFaò,dè’ôÖ“jiù5!êXú©ËÌ’½šáäí©ów1ãÕ~VEÞ¨ý -©°XÕð>.†B¬ª©,ZH©Ð¶C_»¨Ä®Aë -b—ôfIdèF)ˆ,DGL®LÒ{¤×Ë]JÕ–|i˜Y?b¡M¸2›6u}‹ -BÌÓb)özJI%׬¬ƒ§Œ7A‹©–¾2 ñ³3³œ Ę¡ñL9€X+æïçôËNÐÑ.Žç\DëI—°«¾5ë7ðÞÌïÎG]@¾1¯~/@aR.EÄV&|DÝ$ÖD]l¶ß£5)¹s=Û1ÁC¥)ê+¡î‹vÁ^)Ý1“Wý‰G|ð£’éJG·µ&¥šø̺LÕÎöwW¡ ‘.†sÃ+&wýªéÙõª«wE£%«†-Wgû G¿xµ_“$RÔ`¡ÙIê¬Ñ´*n‹;LeßÎdô,“¾ŠxAœÇOv¯¹b)ú”qÝâÇQ3OT ©OcaBˆS†„Ñ„®Kç.O°È)’ûŒERº·Ä‚ÐiÅîP¾à^¨A®JÜͪmq‚4uˆ5¨à -8DçàÊüøÊ—ÃP‡¡óú¦v¾w|°lk‘ªx„¥êuY‰»z=QØ!5tÐ7skó÷e’)<®ÿV«l~#
ÀgÃÔ&éjTSYÀNBî"ˆªK}b}“\M|7‘~~H[ˆ]+˜„Øw„vK:DÜ -}Û”¨}™ä•ÆÖ |'Ö/OŠ›ÃuçDöôMø¼l
?‰dÐ7…KäÄœ³“û]æ±=Eä¡«9bËæÂÖ»NcgÆMlUõE6¤ÏèD4èß™ ¨:ž»§Áûº «²E&µ¾œ…w¢ƒ{wÁOJ¬N”»B»×k¿ãrïdí„œD‚'âÄ»ƒˆýGÐpTni3S™€Ép‡ub–ÓìY^…‚í„Ö_«ÑÞï¼z?'SÐï£yQŽ™¼éÑyb馓™E±ë[Jì:¢hçL0p³6M¸s³‰ï"““ÿ¥’ÕッŒ,®N"«íˆ¥)1DÙÅ8L-iËCšT3‡WËÂ)«½Mîp7‰©ú”ÕÞ¾UF%ÕH¤\¶¨Í¾Lجg%OSõFþYÎ…Jvöhpc¹+ºæ¬†Ž>ÞRÔ@ßÌÙ7Ÿbw@òøÖ¶?Ðõµ †Þ²zI¿D],R >ªé½+ÙÅ‹Ãœœ"žtbœpØÆ.4QS”,B9iéM>eß÷ÅCuï-±m)ÂZ:ËØ"WmÛ,¹˜<1,‘¥Xÿkª—â.ï÷}˜ÓvŽÒ¥ÑVú¶ŸDðdcS(KŸ!Ìî0"G±Ü“3êþbuºå}¼½Æq…°9Âv`"±]‡Û¡ÿDg^ª -º©BufýS.›¾Ú¹U.bò4ˆ>Ü—1xøP&^Io¼º`8ÖBFP¢S•¼˜¹¥“û¾-B®¤†¼TrmMµçÞ|ü5ODsüçP ÿ0F6:õâ°àñR$hÈ4ø£jÛÌ›‰<Wè7‹¥‰M ,CÍeÓ “i‹¿Tª^ddpi¼[°Âdqž ±‹nˆê8¬0ST+LΪiÙïÚVuòÞRB=ˆí½ßåNV±ON¯ b^TÍC7XCCgd?vOU]¾^*¹Ö¨‹ËÆÙά‡‹É©™Ï‰j@²“ÝÐdµr5ÍDª—JŽ¹"4›I, -ʶؽõqc[îÒ{ôžá,bv9×½[ŸÀ…9xïõ:9Á¥KäZ`\"—ÃËû;Qï6
º&µOñŽÞCŒ’‰X7-tSf½·h¦+Ù¡«=ñÞ¬ÿÜ‹1ŽV´‹âÍ@ä©é8Šˆku8ÎUtPb„í.[‘}žfÝ*ÑÁEݯ5Ùê -Ã1ù¬`r.×2#cÑûÕ<ÈÐZ«q-’ü2zæ«[ÅÜ\Яó6ç -X¯jˆ%1KL3ɹÁâ¶&9×D”<jIá›&Ûö£(4ˆÄ†F
ÉÉSƒ8):P£´H¹ÍbaIzYEצ޻û8„ «É”:h¦Ì‡U$[Èæ5&I;9HÚøjÁŒEî$LÁᕱŠ5ymLCåq„†}Ê„4á5drÓ¹H(IWÆ›KŽÈe„l"žŠÈ2Ó¯<|ÜlšŒ«và'ðR"˜YrÂ9™2æÆÞj%F º¤€cYm`³}N‰è^Ý‘ƒ~;¿¹¨¥AEóÎ~ÖŽ"'Âô†ôu¦Á´ú÷†R®ñ)¤žDSI'10oñ‹Øòà"ÕtrèÄÄœ -î¦0Ü~c¢m¬·Ù -SBšVÓÐúZF®Y"Þ¥d?e؈‘.—ýÌ'U[Ãঠ-5³ë}Hø›¢©ŽmÒÅfA&í`˜IûŒØˆ "“TCàÌ%bÆGÊ3+OP×Jš»EªÜò5J†¯gû -4ÚPí|¿ô~E&žØn*Nd4û“GvÙÞ"G‰
±Í"ýØþäàëÛl§¹8£©§ @ë¶MÝN3K„¥¶bþ:¯’ý–ù|ñø±ièûÞÛøêZ?ev:ÉzŠ}ÞÆ–Öq[p³c´†Á¦±m¦„ï -6CÐlpÖ]Ñ3'§¨®RÊ®
SLìòMšÖHZEÂ!AÈ'©ÎXP‹C‡dšÄæ"T
’Ô¥ñvûýŽŒv¢JÄŠ9s:óO/_ônØWõ)5
„ÖO>¤hl[ª¢…dôlÙ±DŽHÚ2_8² 4õ+Pìz_ÖC§©RŒ‚ƽZ#ܬÈh[/;€ ñ;d(ÃÑ8#·Ñm±èD[RÓw-Ü;ìIÇ|«¥‰s·Å†0óºW¸U½õªášÜ3ïLAÑÌçÝÉnE”Ûzo¯ªÖ`¶m‘G‰$Ÿg+ßľ|¨Yœðn˜Û©2Ä’ -c@¯l¿’,ÓXn-ÂÁˆf)d“ƒkÍÖ+|Ðye -
nÿ6aPO„\é\CbTðësk †'œüa+ê¦xB”JÓSÎz"¢28p\‰ ¹X.†a‡f,áL(Û·šØÒ»Îú-É,
\<‰ -uˆr8&Ô¯ÆkJs¶q«iØ!`ºpµ¥/<f„ OÙdÕ²É5å€à<ÀË4ͪIÔ0w§k‰ê6
^CÒJF¯~²ØƒæþxÄÍXà-ùÙ=ìHü»Ú´YÌ‹æ0RK‡Ê2ÍÊ!¬8ôk4Æ'ì1¤ý1áì¬îÄÉ |ëU6³ Avë,³¯ºP{Û®'0L7‹ºNv -V0†äŒbzFJ‘M^c‡‘'Hfˆ•øy %N8yÎ.>’`nÞ«·¦Q¿ÊƒH¤°Ï åY˜6jøÌlìÞäS6uêÅ3( W{7@Ns’¥ -†û¹ªÚ³ÅÜ´§0f5¨Éä•6ëz2q±9?ÈÙ¤Xü™)=ɱQ+YSö̆(P¨A-ªÉøã«×¶£à“¡@133²‰¸ýÈcÑû‰F9’â –ÝÍýø¹.¢ô‰OCå -;Ú:#EC¶™˜,DE>Þæ¶m¬“&6NîD›f6d -_ÆÊÔd›Fö3WÉÐv`‚ “¦vÐ$üøt!å³Qap -èî+‡ÝÏìqp%Ó9³&¹³„j¥b48šø¢6¥Ymñ -”üTÂðbj<ëeŒ7l¨ ³ÐÎ4c…ìŸòml¦=ø0‚@5ç„• -ë5†lŠMÅhY•D ¶~=64GX0ÛlçÜ;>à ¤PpÁt‰¦ÎÖËd…„~WŒTCwNÑÄ9.Ë£ÛÁ"úày[˜©X¼Ö-™f²Ù8÷ÓÈfá#`H~+vµ?½°>½6²7rû [•ù²ÅÒåh~…U)ðåýy.},Ýtx3¼ûTaåµ’3jkœÈ¿3n–×™À¿¸YT“JlóíB(’s/ÄæQÑ¢’áé\;`©ªI(¥rªº§¯StÌÏ„È×y“ -}³ÄÕyDPÂW¢ª… ÑZûë¿öbC
;U*@Ú0šY¾üzk̆JÄ ,QB'£nLe©äå}MG1"ì&çiô#JŒgSˆlacˆ‹r13hH£²%´ÕQª§Š!ÝÎ"¼ƒMT†Y6NF®aÖZ5íňG¸+L®t ,\–» -™-.X PÍJR¢C ¢A>„ïeÞŠJÄ öíƒE -@åjÚC¨ÝæŠÀý0’s5´Í¶ -A’D”\QÙ
1ºêéS¢±%g…Êh‚·;Ìl»DΪ5…Ù†‚£0ƒƒfr™bq‘¡S¤ -Ñ`)ÐCÌ}uKBpB”"ÛB³B
D.¸q[6öÕÏJd5ë´IQNCIƒ§¡æÅ‚ï;«Ò…4®dé&¤ÿãh‡ŒnÓ”q·¦`uá:Ì7gÄûà¨ÉgT¿¬lVÂ(jD•¯Ç€ÍGD -» ÂÑœ,ܼjQ5î՘ب9Ed»!BUy &ãƒ-[¯ÓüØij§Õ -ŽÖoã’¬ßÙuµB.ò°Ú“û+Áqè©)¹¨ÿ…Zâè3«²OæìZŸ_Óˆg¬³jÏ< -°Šáë¥uGÔnI'læÁLê4úHÕ[³ÅDÖdQ#ÔÉ4#[Õ5˜|‰˜•dÓKÙ®Ò˜Æ"£èòbØ'³>£Z§‰k›°˜*V‡•í±O!bûdž¤™hš,ý JeFŒ“‰è!\UªÂÚ`qT¦i\u(48JÔŒ z‚"]ŒeZÉHž>ªRÛ‚ËÅ=,‚Å-W³µ$‘ -„\Âìój)"Þ!#;„NÞ!kx“ù`Ê:
<±ãâ>ͳMæ-¡®´q凑gKR²P -³ÓÙe¢2ëÀÎ…Gô°±Íd)˜E’^MÐENá|yœ.»ÆÚ™,¢úµŽØβ(ëеàì ôÁQgk¤)ân’YäËHg#ULj‹`!¬Uõ1ÍÖf'Ìb$³,c©œÓŒ\l),æ‚ÈÙ Ú)KÕGE%!q1rd”I>8˨yGðøÈÅ¢ò¹µCÑuÅ‚9:ÑÛ¹ ÃÒ¼mQêY6Sg1ŠNFۜƹÉÈSœQ¸=Û®Tûg‚ˆŒùYÛWq -µuig…0µ¤+#* 4+‹KdÃQeVIÖ™}ε\'åuÎë„K[ÆÄD°$.veBXÆ]äÚè6{’¯_ „Á2PÇ$8f°Ï!Ú!ëg˜çy 8CÌ&arœÒ̆” IöO~oÕîˆ\áÃ9½è·6»gaA&Á×ô)äÁ©3.-CߢyKaɳoÜ쪎ˆàVvqe¼SŽ&è› ‚P ã5¯ûØg+:‘mÒS˜É³CÕCíEª: ÉR£öïëì\˜ñ$Õq.‚3Û¨Îîó<c?!ÜsOG«š½"+¬iúðМ_¹µù½z6L³kŸ¶Lï“\V[ÿÒLé;ÞÛ›˜‘çÿ n“ò™B—݃²)àl{ál -ŒÖ^H›æµ3Ö¦¼¾Ú¦u±Þ¦¼¾â¦t±;榼¿ê&f±;îæ{öÙËþà[Þº;£o^p
SìÀ)>ˆ}08áóØ…SÖmNùvû qYp,Néb/4NŒb<N îŽÈ‰ÅÜ“S¸â^¨œŸ}ýûæDæ<9="s‘9wDæ¤#ôÅù?þßü`Gkæ ¦½ÏEÌoüõx˜Ž‡é—x˜þô>Udk,O9'ëhž ¯áyâÁ¢çý=AÖ<½×Ó,‘=ÑÛÛôÝÑ=çãYCøă=0>M4ÞåÓ†xÒ'¬a}¾çÙ¸ñÓ,1?‡¶3ê'” 5ÜO9»#Êû÷`âÁîèŸwÆÿD»#€J{a€Ê± -¨t±¨t±¨¦}°@ÑÃîh 0ʬáB½Þ]ìŒ *ìƒ -*=ì…Š²2¨t±6¨›}ÐA‚ƒžî‹ -ƒÒF(øìî(¡"Øì…*]ì… - mg¬Pt°;Z¨ô°^(l&kˆ¡x°Äeú~¨¡èz
7róîÈ¡ÒÃ^Ø¡XÔ=ÐCñe×ðCåÁ^¢ÉwÇ…0²†" -†²Ž(,‰{ ‰âÛKTÞßMÅ…öÀ•.öB•‰Üƒ)Š{ ŠÂ\°†+ -{öîÈ¢ÒÃ=Ø¢x°ºèèbg|Qt±Â(t²1FÑÁÎ(£CÜg]¬!bp{`šÎ¼;Ú(ºXÃÅ÷Ûq],1G¾;ê(ÎÕθ£ÒÁ^È£`€»c‚y¡Êƒ½ðGáÚFÆ=0HátÛ…TºØ‡tô°3)L¶kX¤˜àîh¤ÒÃ>x¤øN{ ’b¿íŽIŠó´*)8å.)ìL -aglR¨ë»£“¢‡ñI¡ÕïP -½~
£ÖPJíÁî8¥VwG*‘ù¬Ò¡œ/ÐJñ`‰W*ô½K¡µïYŠ.ö@-•.öÂ-…í`wäRéaìRÖÐKáVÙ¿ÔTÌÝL‡‹ia*úù^(¦ÞŽ)ìd*]܃e -‹Ìh¦P»—x¦ ïhjö¢]1M¡ùïjj;r‰kŠ{ ›Êy¹Û–è¦ ¯á›âäípjþ›ûPNíÁçÔìŽt:\e÷ dwúž7à‡Z
Øüß6
IýzÏ Ô¯?NXêr"NúÙ×# ôôºp]ø%†.ø~v®o®Oºvb±@ûÅR¯Cƒ¾;H0ì»Ãã’Û(Ø.¢Ý¡‚ÑÅî`ÁÒÃ>pÁØ}{ -¡ŒÖ@”íÁî0Êèb
HÙTÁÝ¡”í4-Á”íÁîpʦ-•íÁÎʃó,@•©í«ŒÖ€•gLzŽu5{°W~1rn©¼bÙ¬‚,ÿ„]ݵ<dËØò{Þ8zäïñÈLÆðs–E
©G|þ˜þ¡3Âíºz<XE…6úú==žÒ5tèñ`m–ÑCÞ#z> 5œè¡c´l=ç’kxÑãÁ1ú=o¬2Ý5Üèñ`mV¿óÖØÑè`
=Úº;~´)—Ki{°Ä¶KdSuwÇ‘6M|‰$mæÀݱ¤«.Ѥ͸3ž´mÔ%¢ôÌ`Ⱥm1¥í–]¢JÛƒq¥Gdi3ùìŒ-mkº3º´}®¶Š/möžÝ¦ÑÅÓ?Á"ôÁî8ÓfzY M»É®XÓ&÷@›6Ùv‰7mbóΈÓ&‘/1§ñ`ÔiSÛ–¸Ó÷<˜eIï‡=mŠÛîèÓ¦CíŽ?m_lgjÛ6;cP›Qmwj3ù-q¨M«Ù‰zèK«XÔvâvG£]¯àQ[Ï»#R[;cR›`²;*õmvÆ¥–æ‘©mKlj{°D§ÂÚÎøÔcsìŒPm›c‰Q=vÍÎ(Õv^–8Õö`w¤jç5¬j{vE«6N±;^µu±@¬}Ìjt±jµb‰[kÈÕãÁÎØÕfFÚ½]¬áWÛƒ]¬‡¹l'k<–(Ö&OìŒcö@²6ëËÖЬíÁÏÚìŽh
‰d
ÓÚìŒjm&æ%®õ°=dk£-±ñ`gtk3-ð¾D¸¶KŒk€k(×xcœk“:—H×ãÁëÚìŽv.Öð®ñ`gÄkÛ=;c^ÛÞ^¢^ãÁ¸×ƒ¿,¯ÇƒUìkãh»£_Ã]â_ۃݰí>Xb`›œ¾+ -¶ÝMKl{°;ö¸}XØv§îŽ†mbDzΈØC\Z`bÛƒ%*öÐTVq±ßc9œ›ïAÇøØ?a‡›¹†–(ÙCä\àd¿ç£7ç>oÎÇó>ÜïÌÙ×qÄ’þ),é#z÷§^ñ%z÷ÇôWþ§VþúÙÇõpÞƒòm–8ßö`‰ôýž®æW×=xßö`‰ø}ß -Kl¥V¶'D* -LiÕ²&dá˜ôÀÁ¨Þ2¬Ô‰´-‰2AÀK{¦L‹²cx\YyŠ0¢©²®U¨:²D´· _•-cƒƒïjü"ç¨ PDÍFLRVü”¥´²¡S‰oL¿ß‡üôÄê‹~j5•Ÿ*æ.ëWt&(?WB”f¥Ñ ê8³_¡8ÂO¹fqžØ0Ô»â’<‚” 3– ÑðrQ*^dUþ$W*æ5=¯¸ûèšnlì¢ -!À€pϳìT€RQdE›à½z‡ÈšW³B·Ï‚§Ò»LV¤§_øzµ(‘vÂñÈtÅ¡Ù-6ƒ! -ã˜&)ÉÆ"Ÿ7;§H0|'óQg…†~’í]$ç+‚ê,²¨“²[tv›œ2J9ÿÀÇתá³Aqþ wV(È"£¤)¾‰}¯nØl ¼U²Ó¦*a켩YØ:=ÕÁ°šq±&q»¢T©0×ÔÕ|þÑfGÜÖñ…Jx $õÊ‘É Oå Ó'v@qš…f¦4©«&7ÕZ;WZÓ5É–©¸‚SXÞj\^W¢H)™ÊfĹ•l8öN®™[}Ž4DH -%´fÇÉù&å@0/’æ&Ú…»>\¶Dd ¾g-+šôͳÈ*ê#íBå·bI¹¤nªâKÊTKI€¦øª,VÑ#;ɘ-«ü@ Tõ~V+hƒÒB‡¥5 -B´.0Áš"&²ì-WTèŸä~‘Œª”Êd>Ì[~–»…‚ùóg1¯uƒŸ”-Çà€›²$…°U…!“äpq³]¥LÂãr4cMrxTÎI†_tùr”¶Š -×gÿÁd|•(µiÔÍR‰ìï>ëE
)]™:##¸Ñð¸o…`Éä©K%µšãiUùj¢éâSí={ -ñ•%oFÑÖš†ŠK¥¢º.AëEq‚Sº(‚x2c™où£»T4‰ãs\¤DæG±ÿ/5 «•59ƒù -ÅS¶-/øE¼V$èÝ/´ÑåîKz>C%Ù/z3s¡ÁSTìsÁ$â(‰ÝS´©†1€UóÌ8‰R°2))9£_ÑàV€?ƒ\’@âô|Ñî“ †X¤PˆÈŠ„GH¡IétÝLq̀ʹ7hv:‰²IVC%:©À -h/T%T# -(ÉcšóÅPÝ®êL† Ö’ulpüdµ¤Ì+öТDDÈB¡¥VÙnB‰0Z¢Ø“7èrä -UU»‘TV&„8‚®ÊwHj§ -PNŒ^ -,J#ðwJ¼BŒ„+’à¾ë|CK‘’Ø9Üç]WNÌVo‘Pýä4Þ0Xd3MA2™‰c𒢦¶½„
…‰o™|¬lš R±lJ÷ŠLz¿ø–Yâq‰²EšF-•\Qù´‹ÄúV+ˆ!y1¸Ð -À‚²”Õä`æVå -mæYÂYä" ‚Õ¯2Y`&1ËVô£•s'2Ï·*½F»H)dŒ.rîO“£d‡xØjõšÃ†¤Œ °©zÊb gÙö”V'¢’ÍÒК -BQØb,Þ¾.Y»àóÃÉÿòs¯ÿÇJÏ)G¼pL°Ø’èî…g"ØÙéDãtXÉ@aá\²5Š¾SAàtëbüM1œI2£»…ùôi9ÔZD]òÈÖ&zéÔ'¢‚Hƒ© QSÉÁH×¢,$-ÃѦ4DQ’ÈCn‰L$p½Gi›±wt«{4œ’$ð¤]¾|ä÷‘’Ñ„Ëáu’,B4/Õ‰ÉváDÙ!@4òÈZ %:«ÜBl,LUÀI’=» -,iÌA ä©í$‚>qt‰† Y² >‹ÌYªªhv#B( @R–J˜4BžÝX2MÀækWÒ¨h°|S«<ÌSǹËU£ñ\Däf>Í•Žè`x1‹ª«¬¾ˆ›ŽDˆg.³Ë×{F~ªã‰IƒÎÔàJg0þ(-Û èÇ•tD‘/L@e¥FÊßR[ñt¸1Ì-†Dç]Óœ§ÉzGr]Õ<0幎ùʤ@Î Á3w+ÁÍ$
³B/Œ,æ¦!~‹,*Ÿq‘¢é M9O,xmÛÙk“ii~ŠæÕp’6IIQt*K5*Ù¤Uu6¤r—Ä2P§Ihœ†è -ýK^•EÍöŒ{št -Má]H -dEKeF¢it¤´ˆèM7mPNØ…a†ìb‰žþSÉ…©’ -õÁ’åTß®p§Qš~*Î.åJ–e¹œhþI*ÌÄ"†#Ù -Ï4Àè²ê³º9ÕõÁ1¨‚aD<.6¨yèq”ÐÂ3%[‡‘Y≉pÀ"—FcÑìŽaÚDæbáT#‘XÚ`(ÏÄ --ºˆ7-—¸"ixj²})§ˆêÑP4‘"æä3‘Ï"¼¨9UÃMXr†¡§jÜ,ß…F\vF‚æx(RHžghäSž¡dò’䯽r± -’XzÁ‹éÜf6ê{N‹ø)Eÿ¡dïh‰/tCððä,v†#B-)#«Ô4ùŠ#Ò`´ y§±u¡3f†¿‘œæØrí
êa ˯Ä9ŠTÀ¥ -ž¹é³ã%qCŒÜ™t$–óX¸“ˆ6Ò˜+&ˆ8ÂÔä`‘qªW©1^+ -žrL£+ˆNa q*ˆjÏ:´æ1r,°8ƒHqç¼¸Ì Ð#ê -/(¥,Z“¼®ˆ³w: ,: -MD:2l -fªC$ëâȯ+ Š¿É¨Ì@W†Hj3,;\·E"—x€êÕÉR~™7¹7/i´R´¦z.8ÎG0ŽÂXºœ iQ®A„r™2*>€?а -<â“–ãblÐcÅK?%²õž–¶ -F‘ã8@뽇ˆ\ç“$ÂbÚ5¯# -‰šˆZÓeÁ9 - –.ø Š‰cè)—)G_…µ5y“X4n”I]ßfŸð\‘ç*Û°ÿŒ§¯·"9s'ÝŒúâ~ýòÙ·ëÛó‚?«xÛ‰~ö5H8 -Nˆc-¹ HG‘:\$?‹Á³v ÝHIoŸDL”rW´Ù,J‘`õr¦þe«0Ì–(1å:¯ˆÌnzQ³åQKH™ä˜L"ÂIKÑ)|b IFá¥èƒ„ç‹Ù–ZA±³œÀ -â34Àî«Å4½Àž
d_TFdÖ÷CZK7úªa<ÒïÇuUq#K@+‰‹Eh‰/8£‰Ù9t±ç)êSä:‰Yˆd!%"½ò^ÐÃ, -òè2¡æàŽ‚?B¸æJqM±_ìÎÅÀ$°åJw³‡6ö|&Š^2¬õ&Qšæ˜¢×]L}øY×}ŸFŠ"äÔ45Çil@^8ü”d¾ÌjyÓ /Û¿·¾mgâWTR Á#N ¥ÕX®3H&Gy<<$fdr+ ei(Ú÷ÍRýH”‘u–îïu‚¨•ÎÕ®xÝ…ÉãòOYŠQ Žyàðpð ú†m—Dþ †Ä%ù|®ÉÕ«óз.Fßr°,í×›V@RŸVð$Õðë=j ”È-W#ø0ªà<c3 ´„zÁЛFäÓQpÔÓUmÚX™B÷%¹ÜaëÂøBhN£Ž%\o©Èú˜Ñ(€ÀLí -O¥í:è¦ÎOg’å¹+ÂpõºNöƒ_&»eOeñ¨ˆè+›Ï·iF¯¡½±VôÆ:ÑkDoª½±6ô¦ºÐ›jBo¬½ŽôÊ:Ðk@o¬ÿ¼±öóƺÏëh>¯£÷¼†Öó¦:Ïk<¯£ï¼†¶ó¦ºÎ›j:oªç¼±–ó::Îëh8o¬ß¼©vóƺÍk6oª×¼ŽVóÆ:Ík4o¬Ïüd'VðºÎžbF×ûÀoQòœºYaº5Ez¯Aä™7*Î…Æ^p:4f‘Aƒ~‘Õœyƒáà<tËÅT,SUB)5A+—ÞÍq.““UëG¼ƒmZX6ÏMR¢q ýE~%7²l9žäVxèt˜n(SI.I
À À÷T»v}¯<4M¥ÖéEíÒ?–uÊùí
Ö7S®)u8à×W“s3Ç]ŽÔ‰eóÑÝÔŽD—l§Š&ê`9mv¼³Èƒ; È(φÑÝ:
©ý$Ó¤›©o¢ÜC^ÝÃütNÅͽB÷‰p®Þ<‚šoí7~ûotì™»ýÔÍÒ¹Éö3°lš#ïÈShìD7-V!7ñƒ£8Áà³íF©¡x‘Ñwj^Ÿ-Ìm¨q¹âB€„Ž\þÑšâÙ8ÜzrTœ=9äó0æl½ ŒnÄTº”qgyW1wbŒDE¡Ð¨´ -¿‚+¢±(ÊôŠUç´DÅPå!"Ĺ/6iL¹“H›0X眧1L’ˆ¥¹å h"û!ôqo‘¬Š<RDrŽµ(¬uGjc{°±d7ÚíÂuÈÒ÷\t"F è1¯ Ǭ‡pÔ¼‹U¯'<žm†Áͳ*'d„ö²ÒÑ8Yi¡ü³¥B]B“š¬qâ p(}n†%9dþØÑ÷СðÙWc |a‚÷O>= -±¢ÔÏÄ’QÊ£*¯àþÉ};pÆÍM!´ß ×JÄ°ä£AÃÔM9,ÓZÚ2ŽµØæuÝ,¹ÓÛÁÄ8˜ô$@•÷ýŽ£R‚7åGNGÒFƒŒÏŽtsͳ!4xÐðId5g¡n™2§y–’Z ó/êÔ‰{xRÕlÙÌÝ8*,Çó!À#¨Ñ)ã}jÐTl'´’.ÝJbWNvmy‚·Tx›&¿0•³éRšð+½ÏRVOŠ9•¼ïòÜÍÒƒ‹,¨U0‚Ù¿k ט˜1¶¬)IØhd=•cp}/Z²[Bð¡QÌÉ4ìmëhRàIp5ö–èII|©R¬$Óƒy´à!ÁÒ¿ÌÕw
ñÒÑÌò<l&ˆ¦5×dÜWV‘ÝhîÜIŒÅ¯Ò‹›eM_¢û&ß#ê:ŠeW©IR>B®»N'š'V5´dïØ-šÛ¯Áó›’¯^(KG‚¤Pªê~„XÂà&Y¡ô"pêô6Žl!—G/ŒÒ¤BÜûTc“º¸{(VËmÝG¤„!°¬±ï¬dA?oðë
8&³ÕÀæLÁ¿7·TÒ´N6ÀI×°*§CØWÎÌâ.G£q‰xr9Ñi»E@UajÄÒN a\1Þ¤Sºå¢¼Z$Ô1¾ßÈÚ‘ƒ®trL’¤^‡ËÄiŠ…{rºj9†1ÐOá0¤ÞGz^Þ¡ßÚüà“Ð×a4H½ó£|‹}`'â%üÖ=<)"f›U}âQ4ózG3ÓÌ[³k°ÓSlľeÚ“~r -Ã:8-&Ïêèz“¢YljîGëi°Ó¤¾Q‘«1ˆ.êjRiÕ‰¿©Ø‚Q}äªCñ{÷
œÇlTÌ—Ö´ -¤X‰ÛûpìÌ}j´û¢¦"¯…Ù%át–¦lŽR®©ƒ®…0¸;ùèy pg‹à9gy -FúÜä=ÈN×ÀQœUl=‘w¡³FçD(º¢¦8GeõáT) -óÞ…ÛÇ!TºéºÞúÇ -FÍ#—²ÑºÅ/ÒÃjxÙf[–H%SJøö‡0á¦d'¼Ì$®Y÷Ž&èI¬´#éH¡+8éSˆk¤zŒ³•£Is&P̦P~m2³Ùush5L^’»0€îÅyYBÞÃÍ*o0°óÁ’ŒR9WŸÓù!ζNë/vÒ°ä[óS“*ˆñGLR
ƒ*âÒ]ò1©eTíÆYéX\Å1n -GíGx>œÖåyV<Ën «Í ‘ʪô³$ ý„PúnŠDw'¡µÓ¸^¼—¤"ÈŠ0Yš×ö£KÉ¥ØɺÓGâ´ïñÉ™J?¸šOl'îß+
† ¦J
#Ï“,'$\U†¼¡*ÀÙÁÎEg& £FÁ_7‹„á馽 y.ŽZqHØJõÈÃW3Ù®œ¹ÎP·%ˆAó`à7ÌÆ‘ -$ÿ”#ÛˆòÑœû¬P…Î;Ù€î ,O€º{öà2ŽÞA^b›µu1ºôàÆ#{Èû4îÆØ%Š<3}m…ë‹{ÓTãæ,¼ýí>®C¨ -æ|Ìt¸÷:Ó6Õ2íB9¹Ye÷5E$)d¼î'ÉÍ° lY YkÍ°³Dz073ù–íôËArBœÁTÜê -6MpL/¢J¹n×êÅ&Ã^ -áµÍ?%;.$º{;±xÚõìb憪4©&FœšÑ@ú}“d*8û1¨¬¹^ÓÐÀ0Fª UQF@Aóæz"8³¾GG¢q²„\ߨªY¿°7sŒAªX…Eùˆ˜f‰•IâÏîòfŽL§µ¹FãY^sʦ”ÈšÒ -º°>ö˜ƒË¢3m×>³¼¬±ƒ~V
L(v1‚Ú"̦Y¥: -ë!Œõð`U(I‘úEÔƒ!ZuÑ–%.(TáæöÞ$Ÿ¸j¡â^’˜¤`¸Èå¾*¹â
„ðÁ¨èƒGL"²îK É£û
×ÓXb^fäÈTdØ=Ã’†£õbWŸ;5¥Âm0û¾7$whuÌ¡<½Û‡‡“§:Ó‡—Ö0ê½üKW/ÐE=¸ÖBãZ¶V»á
]ë}‘a®ïÏQ÷â^¥'˜Y)¢H`“bVUõ
øk{r°Xò—V8‚ÔÞr$cÖeñ0ÆÏ°>¯É|ú¸.êPªuáSæG§Éz˜Ã¯$˜êJIÏ¿Údª ‚K2kü(À ×m²¸¸,k8ùû½€šêt´.:„ÝÌ_b=+nöq^á߬P®’ƒ -2b–I®CÊÓà˜òPc·â#òõ~NÂép£bžœ)ß»tIM`7«½;dàX3guZZ…cÜ•Ù9–}ï’Šå·#u°BBýz0¡‰uö#ÀùYpêX™–v0øòæÎßûpU¥ïaÅŧȵfu/×`Þ²«6_zæäʂä<+w
ÍÖ1¦ u%±Oá½`q©©3I£ Ït$ä¸CØ`f#‹þ†¬=V-›¡©ðGG?^RÕ‹‰F󦢷"Höj–KKB”žýAÚ‹B^€§”OÊ¢f=èbÕ”dÏêvp9#º¼Á¡¢ngBã‚u<;
³½"v!Ù±3Äh ŸÝ‚΂Ìcü¾’ÆÙi¥sUcÖ- àko<;ZUÏ,^Tdž°ˆâ¾©¡‰?<l -50ͳŒð¨LF_U]ûâr>üº”
òçÙýää:qì ¸eøyïÆUGÈj5kbŠ¸U÷U½™á&¢èò#
/
qPO„ºE"¸9hõ[ÔRLnÅÍ¥´7MŸÄ„„Þä¦,RÜbfœ§SUpßTE&@ï“èr‘àÀrÛyÚ¸N@edH2šE…6ÜØæíÆ«d¡ }?{AUD;hr‚u9‹Á,VrUàš'#èúëât®åÂXŽRöË=ÉiÑJg± ª(¡‚vñR}/ZCݽ04IJ„‹,)ĶŠ;l0‚ÍQ˜$ˆŸ¥ïžUWÆq€^¹&Î] ql{
‚È®Æ÷)uÊÜãHò”¢Q’¿N²Í´°c ™øq«WØ'ã× ¶Fq¢%Aª„ŠÚ=Ôd(ÕÕÜyë³PÜ%”³âø2Ù/ÈP†báj(D¶+§Á(ªcÜ%sYƒ×k„c¦(ìû -éŒÂ©1 7µÉ -ñÕ& -–NѶ}w„8mŠkàyúa²õÚ°Y?÷²[f!ënˆÄ’‡±Aª©+Pî†l"T~Bàd÷¡}¹0u݆îR« ©±l%Jb]nj¶9¥'ÅÞLUq®ëÊ®)ý“Ñí飣2᱈J“ §ÅÅY*2â tU@ì")‹ee_„¾SrP1o€ó-vOÑ=ÔŠÚ¬1;¹‘Ñ·}VF2l$Ù&™¡ÖÚrxC†fs"›V|_Œ¼wÇñ? k½“šwÏv©³£®†¬†Í<Bª_iÖ™E;2p?I«D]r7Á ·nèËÊ9gÖ«©×«xífß>a–Ë2UÉÓÒ†®j€Å8ixÆhtj$”¾nR®‘ΛG7»pAš[iPà‰œ84»Ä¦~)Àuhv®-òf8`Kk˳€’±*BAŸÆµ×VbUð¼B^GÅ5áÉ,уáðï(4Ì[%9—=R]ÐèTþFöÌè¢B*º±üU1xµÛrËò[z]XÎŒ•ãK-=™_MïHø‰Ái}LUÑ~a9ÝHy6î„|J‘E4*Û0G̽†gÍÁ,]¤g©qν
<9KùKJÁ™&¹Í4®íöÑYNÆËPt -cgæ·¥qŠ#¿›»ØàÒlíp~ªLZxfüÈò\8ŠamçHŽâ†Ò.èÄs,»j‰jT¹ŸÑMÂ3‰Ü$J8æ)[…¢@½HôU:‹J×nI n¡_ÀÏ!¬§£¨ -ã¹¥ÌÂ
>ì;âê½;âê;âê;âê;âê;âê;âê;âê¿ -Ý”#a}›€ßî$D±“GîZå8!\-Z1–WÚP`㢋 ê‡ò¢ÍоYm`›ãD¤È} 1*\ -nɺpÄ+²X¡ð缈!C¦ŠÐy‰Ì+È€éÙÜ…c}(‘E‹Äè@¿+kžã·"rÔ³$ê qñ€Ú+rBÂàfùRaÊç«M -“3Ê—:˜¢n=‚û³œ=}Ôfà§*%3[‰Îœsè -BÓ á°¿þQ¾dîÑ%¯ÐIë¢Ú’]˜ÍŒ{ß4NØEƒâ÷ÙnµÝDµÙª¼+Æ)ÔQeówÈ5Ö@[[î\œ
–v~xïÃåXî+€Åà"^“…€ylpKrÙñš½J43ª¥èy¿¦¢¢ðZ}–WüÐÞö‘¬b9Xá¬4f•;¬*jf=m&£sŠ"BÛY3•òØ2õ´W+ô¢Ž¸²@]@«ª"¿›k_ó%ÄÉœ@GeVI..ù'’¹J:¦½~êáí3öhÇNáè®Ce—?uX¯Ÿ¨!"¨Bu˪<.!YÃÃyÌjo„7ý—Ü”ûÊì#U‹4ö -LBبt:îÚæªÁŠ‰QÐE=9.ú¹&K ƒ#D -C˜p€fÒÑ(*D½b#÷NE´C¾¹á(ÖQûÐኪ„‡Ñ‰<§ÅÐ9Ç62ð™9¿"ióéúØYu%yé)Ž9ˆ¥8;ÁuqÕ¶(qÿºØdn -ö Û›•\»PÆ;¥#Svñ-ˆÓšBeg«œúNTˆ—jh5$i"è -€¥Ðèm–éJ‡†1%-B§¢ù¤f§€O^åã8´Mt3ÆŽVš1,#WÆ°vÜNµ-zÔüq¤f‰1à'ßÿÙõ€©)øû(éN1†ËI!±‹Pϼ6©pžz—zv11*0JÁ®Ý„@’óºq꤅’D4Ž’‰• -õú@PŠ îõo¼Ó$uý¸:!ƒJäe$#ìOm-ÎiK-äÁ;×GövlhßýàñÒôê[ü*Ë -Þ§ å|f4Z›¢c6ŽÚm%E0”O5Yð$ü–W¢IÜ^$éíÛ¢+ž]H†*‚ãST0'¯Bãƒý²®¹
'e!“{M¯^
p)&eA›µx]kG -Pø}rYˆ$ºaXM0#H@¶žÑT•É²úÁ| ½’=9V¢ÙýfU| @¥fŠºJ¦É£@·ûÂÈ·¾)bV…ë¢\7pÄ»ä4Lþß|}öµÔƒªrä©)ì³a¤TËOYëw¸0÷¡× b«GÑ´¬xãJéâXî²aÐ꾈õåFÊ®/²‡ëäØDçjèØdJÛÇU3wqû-»º¾Æà}¥g:‚a5 -i§ÆÓAZ”>röV$妈êºzÒØÕZt’4®RC€ß²òÖN"ÍQÓD8B¤¼×m¾õ£pÔHئ&Íb*@3§ç‘hAÔ˜dèïoÍ{„|l.*¤S¾€ñoôk -„c7éÙa h(ßÚæ²Ð0T1š°D
7Z[ÈbÍ©]sàâS‚>=£ -fÂ]GºvÞïeEž[2øô<r³½|ÈìÊN1¦¿L®!évŒfhišC«(ÙCÞÛ(ˆ†ËÚ5à7c#¾»ÚàÎfË›Ã` -¹nÔO0ÇÛÆïš„/²<)ìI™j8 -Œs»¿Ðœ4@óFœ‰R°²‘£BÈá¬Å/ûÐ#S(ûõhQig=Û ú³!À5;d£W@Š)ôè -‡“|ºˆcVÐ|u²Ï1Ÿ¬.TÃ8‡€%J”ß• QTf¡6ËKëÇdÄ96 -îT+ŒDd~ô§tŽj¦h¶p¢RÛÛh>Úºd/ÀàŠMh$ü%R¬T`‚ÕÁ‘¨ÜnÔ¬L¢ÍkÀzQ)wì]GïÕl«&rƒgn_þR;Ô4¯åTé’(ó´PL$•Â9ô¯ìÒ,•ùûM…ƒ
8Qf{´Äá£Ñúm±¥Ž{€²ÊwÚûôž*Uà6AåÐ`Açϸx¿,ÆùrÙAí‘”û?Ï›ÈÒ
§†9Ý3f?é`™ûŽ‰Åf÷ÑfÍ©}»¬¹·jÒq
ñê×iÝÕ€w6 -+Èõf¶;@d4\©3QÍíÞÑc¡[¦í
5tºÅ9áûªd…Ä$¶#FŠÓÚæèìt@“b7Þ³äDÄžš[½;Ð>DÖ`rô -I‘By\¸
ìºf0 {½}ë ô,Ô`94lîü^í†ÁvëeÕA]VÿC£íî'÷² -´òÇï/D{wžš?zmÚõ= ߉4Y£ð°÷ý¶1îo%=î<).Ù¿éumÔ -Ø›Ç[ºlÉ+„‘¡óoMC¿6˜š[±voï¡5.‚ö5«áÁƒ÷_œ~z~EÀÝ#÷æW! E“Ä°‰4NÃP ‰MÃ~ß®aNi‰¨ˆŽÒF
|i÷HÜÜÔ¬.”züX›¸Ð!Ÿ†õûºaᣴ¢ßêµ—û¦¸¶\ÜÆ236ºøn@¼:&vòW|±Þ|÷Ã{—ßк¼é„|¥©YìÉŽ8r²Ñ@rÀâ& ûu®HòÓu!ÐÒªþ²ø :0â5†ÁóÚ¶2ðFêÕI·ka”06j¥ÚüpßqÚ~nšÀ ÎÇÀ¿Å&Z£Å?e)d½Ìå[§à›:6îÜj]‘Íó»êH[`îÀèCM:’˜ô9×°ìÜ„Õ¦]¦88¹-\þ»‡Ðf+dº~L—V Î
+¹Ñb%^Aêâ¦(¡5ŸÝ9øÉ¥¤Dk*½}»M“ £ÕÅèpœu¶G•ëÑÙ¦GVv‹Xeó“ït›²4¹(…CíW"¡dëÀæ1¥Sd–"<Ôu{*òÀ{¶ñ9¾oý+…™æKèú«SRIê¹ÊE@*Ûy.ü©³`Ž{¸nØÚ¼]°ªY±Í³Fʇ1¾.€±I•nå- -¾§7š7'*šÚ‡ -nš)œmvƵÜÏv Œ@º|ÊÔÜ<žC¸#öñI¾±¨°¾ÁO—)’š]Jso³¬Œcp{ÅÍ=²ÚMà–{–Òã=x¨.ü°e -JsÂu»É·ÓƤe¼ Æ1‰ …CªÃHÝ`ŽÛqìÚêœìë -h+#Ú -{Ôà‚%ÑñNðΘ(ñák¢‘q꡺ä‘ÑÈ:."YcËSuè§7{åXÂ]:(BÁáÊn× Bí²r'‚ëx·EßäYsÅIõÊ)a¯¡B‘K.ÚQ§2œ…åôcµ½‚„`v6„×|¢ÄRy¥ysT.øüxá{7aÌ@lmÙ+BU6ÛsA±é9y…’nœb<·HÑ“ÐU:ÚÒ@Šu.G´Gö@~‹aýµ²zð£vÞ¡DÝM4—YÓPì–e„¨+äܶ#\½œägŽ ’ðqsQZªˆê8¾_"¤‘u•ZÝdü«ˆp -¸Ëë‘ÛÕ6×ÎѡμÆÕk1„¨Tô}¹ŸÅAöA×ÀÔ¡YWKˆå¡_Ju Ò•a$üÔvõ÷ártý&"6‹GÀj;ûô°¬jš„²r (nW5v¤ «u
—²ÍÍ<Úq–°ÿÙ½¼hdþékgƒž_]]ÝH¥Išg¬<†À7äúÔÄ“zÞ ‰ cÅ?xj]éÕ3Bû‰¾Å(SkŠ,µ¦ZSƒ—Ífãt ß ¸39>›]E}€lä>¬\‚:Ê,fWý¥Úo¢½óõÉòÉôrK™N´ ]H®®¥ªÏʉЌ -/xHúÁ§è¾-™uL“ -D¶v¨àíêMä*LèÔPc &éòŽêš.¿˜M.àÍ)0ŠH•È‘D2IGŠžäâSZn“ d#ì=½Ø)kbe‹Ð"šèšbeBƱå«-‚wHÉV˜}:£¨\rnÙu}$ó±Ò›suYÓ·x -*”¡ãîiÀŽÈ-Ë=‰(HÒÓ\òä¶àš×¹Uvì©éõÆ‚KæÐ*î-]*Üà§S”•U¸O¬Ÿ‰Épt~_vÅ0ë„T)8@;â+ƒ%8Ì‘îÉà»j«¨§^¡YÕW<°âŒfíRD{”7Û«\¦ÐÍÒÑrÒj‰ß7€ŒÕy¸˜öÑÈ™RÍ9¶±>˜Ý¬Ž5{81a‘NK¼Ž6ŸšœËprœª ¬(“ -xOI…€Ä®Ì¥œ@r4õ‘€ïœ¿iç²U“žœÙý†ï@éQÈ„Í‘œ#‰u®-)fpé=³j³(ö“ˆ¬¸^¯Z±IÇ´&=Ôpã’ÐPìScSÖYDƒo[æðFÓšIÍQ™’YÅ?QQñ›ã^ø~Ý -c%s¸R¾D’Gv µ}%S«u§&
KJ))÷E>'—Š -ô*°°$f‚JÅmîfº
IÞç¾Øɺ¼ÂÝ9piŒ¢€AÁ4¥ [4À°’ú¸ÎÀ–#ˆTv˜MÌE]p›G»4Rf.ºt²kÞ˜´F‚U¿¨ÛÀÔ“ÒÍE—úLfW$ê"å.UÒ -¿.uÖ`–ˆ–*ê<\¥št&ÎhS¦kxënŠ·M#9 JK -âì$:†º´R¶³ðÆ$wc-a©‚Eô=Cפ -U·È ³£;ÎÃó"¦¾Î.M]-Æ4«.¹yÁê§hôº™Ã3›1+ô?ðJt£+:y2¿YÍL¯£Ju²Aß<äñæ{7ÅV €Bôînð}¦Áúx“hŠrô*åzý΃{TÞª“õ8›xiµ’CûJKè¢(‰±=Pý¦´ªó°è"^Ò,w)ó*;µ’EN}DÈ+Ç0oui’<:”n®¦ ÌAYÛ{rdâÈA—‹«l°ÏáÄÔ‹Y‡W¤·#p±dÅf®ã¼îqx“Ãœ¥$žx1]£">à‹¡bÚ4¸ÙH@/æOð‹4×(ÉQñ¯bdàÁ©./8ˆ€Vo‘Ušèt¡Ç×%»¶KH§”¤Ia³So^çúauCPò -O“}6\›y’ºqz@Ô¤uNãbý³?Àñ:&ç?…“(ט¨”ãTÛññ -¤q5ý”s$‰€¹NŠBd"7rff àý©[¯ãÉœníÒÒÐLgCÉUÐçÈV'ç¬gnÆ,¼þ›çȬE•–>ŠW]Œ!j¼ Ï¥ònÆê6—f3-€F_aP[ØÃä9‹R2¬ÞifuŽ‚c·É”€_’!0÷–0Õy¯ºBLü[þ$³O³)™v×-ÒȨCk؆©nò:½Fi|gVö‡)O¬lÌóÜo”`i”ÕE³§ö´pcRz"wp˜9âÇÁ -&ÃÎÂTì©#µÍõfлávÜ -x}f9h•swõðmºz¦ƒÂRÂÉ»qs\@׎ýõ;ŽS¹Ð *ÌvRÑ…´cŸÀSç -““xCÍ+®_*Ù¯¥VqzËøvž_„TQi–ËÌô¬
Ȳ´pÖDϨUÉKµ÷Á?õÎ."2Ê+½O2çÊ÷s˜¨â-ÜÏ`(œ“ãSc”XÇK™g›$$Ä^Uh#Ü©Þð9¸a¨#Eb}›âeVբ·yoÇ@vCŸe‹ŽÁ÷šÎr¯Ð˜j¦ È„£õNJ-€,/RœD¨Ãæ„ž†ì™Âl½›£60ú§•‡BGüÚöi÷daêVçût ¨E‚<BòrNYœTo>(`Ј¯T™ƒ˜jH:ÂÈJTÆ^:jt5ÐÁ•û®«X;ª‹ûî†7RV>˜þ\… A`9ºB%]µ
qý•qP`0Ü(©PTNk8Æ)J¦¡ÁOkc¼ -Œ+•p3‰¸éÓª…? -/DwÔp_Cðg銹]Št´Ù$qý&ç>¿ÆíЯ æËX&'IPá¡…~ÃÆ .Ø\Tȧ¶Â,¥¾v&ÑÂùXºÕoYT€§«‚Ä´Ååg2$Ž+ñÑßÕ‹´¶d ˜~î·‘`ŒF®Å(¯Öë>á,M®ÖQ[2;DU–'öP{G¯ Ï„=‰™Þ¦ BpaÂæúÛ7Éèh:‹ûÔú°rìžDíž±³‰Å̲]SR
J×~â!˜ËmÊòŸé²ˆÛ”lkvEÂUÆ0‰‡º(#óœo©ÍÚlöXÝoEõÑd«Ž=øÌÅq3€—¿Œ%Ž‹]? üÉ¥:6jÆ¿„eaNÖa’¬OQk„º¢X>ñ»é5¨xGê»ù"âÅòõX©dtå-eou½‹ÈyJqQP†¸_EÏÉл=e ;ÃMèÚJdnfň¹S¿s5O -0hB°BžwBvKŽ=M—Îq -É`ÒF;°XeB—üÔïNÙ®ã~óA˜
–¨£k‚¥'\XžûÞ^Ö<ôÖ(¦$g|j¹Ú~Y2€ZÚ~c8óHj)c
>êÎloLg—عÆ-sYJÂuêrS|‡EÀ´¸ÎB€¡Õ]ßÜÜ«ƒn‘ +sŠÈÍÉ~Œæ¼vXeÖ'LûªL!ÕŠY‹q•ÍÑŽÚœô 4*9´DG;‚ë€#cãµðä2Ê¡RŸ -”±í_ǘP2#Þx -|®ôRWY0DÈdJªO))•¢ çä:&zcùpuv.¼»º.ÇŽåÐoÄí§ªõH·v
eXê„Öɶè¢mE -oÿ•ØõÙ¤ª ¼L%†¶:ü‡E€‚õú)[CªFOŒ.ÒÔ’z;=?©<«{&Û:ô•¹¶¨ö÷B™çU¡Ì€ÆÛò…ÃÀGiŽÙŽå€äÍuJ#Ô‰Ü:6®1„ðhšBÕaã*V7çòñШ7's)±[îÉ}ÝUdþÁïG :†!y®ÈÖö\Ÿ³w/µjÙ½ö€”LùÕ毪rN¤q›ía¸Ä~rt[¦p -J€‚ÉÊ}š—_(L}ìÿÉK¶cYŠÒC2¨ RïZŒ,´5ûŸÇˆù³Â‹Žz-ó‡B°e´9Àq
º<¨§yŒ -•ôR…—_Ïì:ö,ª ÀŒ -ªú*+\É1Ü©Ró¾Šwªnß´&ñQi
©e™<Ý*–Æ«zv‰¿!Š·$¡_CŒfÄõAîSÝ.œI1—1 -ÔjDZ»¢rjÓ“´ã¸G6p=T_0¢¦[_µ×[`×bàOÈ]èkººmu8w¬Ùê+ªJ†ÒÎÙ2ÄØä{€3ª{ -¡tQ— hX% zŸÐ¹¬H:oI¾P4&X+D"è禔+\=€VÇUϸº3ýVÒ¨)½Q!¥EÉ6¡TW•áÉ÷ƒ¤8Š‘é>¤95^?©ÏH]JqgXɵÐY#Þv5ïhåS1¯C™K#ñe,m}3V˜('À -n<Íhü©ï•_ [#Þ$ô¼nAg
ªŸÍTF‡åaX!tÎÔÄÚ!v>L3OÕŒ´u©³8?‰¶€$*JÀP9ŽhMáùÒL®ÛyZÝö½6hœLv¼:ç¤tõ(hu‰ðåëÀ@ ·ÛŒM˜Æ°YpµôŠ‰À3°AW‡&uZ&}Ic5mƒÀQìp55Y,+î¦)˜ažh`ƒ|:r*˱‡ŸS$¨Û¸
ŒjvÇÝTÌîµãÈOCÃÏ -¥å)¢Ð}#âÍšJøS"5 -‰dtÀr†”E,¸ðlE¡âý-žúú;7ÈZdšÅ;+Ó?“ä×àt“㪳±²k…Eð][å†ÔgöØÊÕôº_
ž`DÏzÕG,Íwˆ•xÍü‡ñÕIBã³r¨ód:›†wkªNG‚SÊ!X¨á³œÀ†»`zוÍÛ¨{dO¸(Ó (Ã>áiºŸXÀÉ „ +eò«¤ö1.NÔy68/]^ÿ -C4±,?7ÚY.˶u-ç/±j,ãÅ“*Z‡ -Ãx“—Ç9uc«;]jD]gy ÒèXæwF¨Sgsô‚å°ÒHëÍŒ¥C@¯Y2‰&eTŒF|]㚣PnÙêGšsh\g»F)½ð'5ÕJ×XÊAª• !8ê -¸¨(‰¹³™ÕçH+2ÔzŠ¹ëÊ$Â…žKhþÕ‰¥°Õý¡òà„YØ*VFçùj£'% -¡ƒ¦(#ÊCïu ©/p“M=Cçï Bt%dÞ¡m2ä°™A`55M¼·–x5{ºF&ïæíØ¡'Ïc‹OÕÕŽÌ.ëYXfW%Ìa† - -–¨Ñ“X¬)q?@˜Âch?]_#g!ËᮩU!3’jœ3DÆÌc-ç ¢êE,6Ø(YŽ=И("·1oXgvÝÁÍõŠši¬Í„täfhµþøkb -œ²$±ö9•Ï{©sµ™æ»»˜öj…m¼…X70¢\Aa¬h‚mnì›7“=w‡>³’ëTQWt˜FGcíÑÇpUríšA_ϨÐí&ŠmiƒCJt§ùEtÞì?9‹’QaM5¬wBU;ÇVu5(/fã–‹q -ÇƧ¶ÆáçIa:]¤C•ÊGŒ¡¼ürÄTEä÷4å²°ð 3ÞÇ=J;ÌÎ!BÛ(p ½÷S±Ã¦ -S1‘s1ŠÕѤuJu¢îꢖTdÑwaÚôz°ô\òŠoQe¼!N£SÀ‹ÌŸŽæ×(ˆ
N¯ÑµSI‚ÛÓX#/U”Ôj°+:+ŽÖ¾š *à°-’_“#G¡°ª²~ÙÕÂ?¢Á¬A€|@:$™¦ž" añæ9¼{%,”ot¶f±§GžÀÉôâº1²†‡{V«ÖE7hD&û
áfSךÔDš\0¶0B4~IÆd…§Eñ[VHp¸GH³Kú”s "ììJÅR0mô,›’Pë.‰ÆmLá”^³³ ^Áí¨ ÿ†MÌô\Vf1 -ˆ5—H,O‡küº<Âwírp¡fýžvkbq= è4N)™4h×Õy¤¸!,§µ#wFoƒ93xu~Aò
ãxSÓ… º(+–”3IöÛq@ÍùXS+ú² Ÿ…»7®‡Ñ¥kwüéh6*‹¡¾pñØÓ0—ˆ;A®Í:—@!ÎrD·äG†’%•´PÄk§E–²¬ö 9M€qëŽ[lDZ^¤M™u‹N.Å®†i-]“h+Ô!žCe·ã¾å{®zü5 -·=ý„Åk j1V¾e¨¢quC%™5Ñéb@D¯”Ë™î0ÞË3æ,þйbÖç `ìß …¥&6Ó‚:Lí4Bà4|Y)QÿšÚSèÜBö¨ì‡K×lÀ(ÙëmÖE9uúchÉD!;ªMf[œéf
P€3ÈpÜó`ÆÍÚà•¬R,g(&ÈeqÉÐh›³ó±PùzÝ”ö†›¥}Pì™Ó!FëçB9âùI<+p¹áÕÜ-¬F5JÁ¤Ðƒaª"¬[/ŸÄ°ã—[uqrÚ`.ŽÝÓÃ#øiâˆá™òñDYÎ:ÐAm7ŒYõ‰A*kËz¸Jàbö|?µÈ=AÚí5‹/´R¡Ü”Õ.’gSšŽÉçÊš0¥#ýa ¿Î§êú–÷ÒØå±¾“õIdIðJQ
ð¦Ž1;8wJXv™7.W˜´/òcÂ8¸©Q?ѹ¾ -ÌHY1¨…ägs¨ƒŸ%2YÓØ““M@Ê°Z§VèLkÖT;A¿Ó„¯ôDu+¨ruåì¼²qä¢/ß÷Ø东ò.S¨vùDa?
QÓ¹ -RChÎcÇÛ°!8ÏÄC”XX†Î³Ý@6^pVÙïÎéá<éÉ™ÂÔa‘žâ†>’)åð¾P]gLF¶[Ž.å),2È8bµ!¢©Nuo{E‹Ìrõ®é¬ - 3þ¦„tJ%Ï¢bñØ!ζˆ`@©*g¾¶==*ôÔKžÐ÷)¸“ÅÖšGýX¥ŠjbÊŒ‚}Èvp@99”äÞ<ß`Ä
ÆŸÁ^8¬
s¸®óY`ö–½ÒÍ’Ìtc+KÜKOÊ=T£,Q4Ö–ÞÇöÎò:Òàlˆ¹åå<FYo%„AÛ!^Ä;Öv ÓÀÈšÂõÃÙ,ï56f-ÏõŒð&ƒö\R9Ê¿ÃWME‰?7Qƒ´¸)eõÐÇÐF'=óJAH’qal^ŸûŽnŽ>í¬¹`àá³n$…ÙX¸ŽO‘?kÆ1#Ó‡xvJ"¦nî®íõL¾Œ™«p…k¼bhUßìy+Q^¹ŒÞAc]Ug‚¡yܲLDâ)8sà!ÒîS<Êàv’ÆbYuq2§r'Uqg=|w2Qà»2GiLÄ:fÑNt͇En†"z–%´b¾—qöºi|î -ÙJ`
YãGˆ2ów -¯Z¼¬Q °Å“~ê·ƒÇQļ¸4jS²i•ì0/a”²)kÑdëБ1è*EMF‹vÁ“*²
–9®õ:TžÐõVå‡9Ø1mÁWOŸeõlWa™Ú6¥ÈidæPóÐrëdTc•KÐȆ*˽·In4ž,3'6Œâœ]+ƒûNàSùˆ¹±ŽÀwLžVªHvkÓ‹A´+6Ù†Á¥¢r*ݽÁý÷rU‹]KC# U&éïêÚÊ_1ÙK“\¨Y´ŒW†WÀ´5†yïì‹@{Šy‹.û¢ -Džœ¸¡š°ç©å¸d><ô)n£.’³á0—‡Šùõü¹ùו¢‹ èH‰C/]Ã*n^^án3´1¨…#rêkÙ[ºÁ•¾ÓÕûŽ@·r¶¥®ñêAQåC¿q/¦ª“Ç ¢8€
$/@3ç E)+EXé¤Sªä©/e¢Œ8OfÃ-,%an-³ Íi -&³ø#‹ ‘øÿ?~)_2ÒC/ë^·ŽCxw»èLªíHÒkÃ*·æÕ†òM®ûˤð2Þbø¥S;ÞÖØßlä6¸Š—Ǟ颌¶vŠ«ú
šWÞ-¯=!³>YîÉÕïOŽ.ï½û¯gç¿=ã_Åæí÷Îà¹x÷'Ëè÷þþÞ»OŽOŸŸÅ§,îó©UûùÁ+WÄs‹^õîãƒe@{?¼·÷îûGŸ/ÿ{Ë -$÷oû»ãËÏŸ]ûÂùoÿùøéÓ£³'z‹o.C].öè/_㟜_^î¼±Êo\cê8*ÿt{–ï°lÈež?:Ûþê·u›èŸÿè–âÅ{?^:ú—e+üúžbSUÑ‹*@Çéns1&Fè’<0žÇú -†€*^ùþÑ9Û‘éæ‚¡P¼»Öüó®ã³þØÚ;|i!÷4ÎÃ+E€~Ö|EëŸ~þÿÜó¬.½o7×…¿ÿøâèòèê_~¿³ž£õbQ‡žŸ_Åêk™Qsqðx٘Ϩ1í|êµþäóÏ—N½²úäôàêW9ßhJiçû|ªÞl*7šj¾Ùtó©r³¯tËS»}-Só‹›ßh¹Ù”ê7,7/Ý{NׇðŸ×~þÎ×Ió}`â'ï_üçΈغl€£³Ëã+ùý:_ÿÎÏw~›Ï/9)ûùzóº—z½—_ÜÚËÏu9êïéÆtÕúsÙß{÷ƒß¾À¾ÞéïL‘;Säι3EîL‘?¿)’îL‘oÂÉÃ-rg‹ÜÙ"w¶È-ò»í_Ëîl‘;[äι³Eîl‘»°È÷Ô¹‹Ü™"w¦È)rgŠ|×.û×2EÆ;Säι3E¾Æ™Âz¦žq>W›£¸š9rg|Üw;ããÎø¸3>îŒ;ããÎø¸Ýø˜îŒ;ããÎø¸3>îŒ;ãã{c|Ü¡°î¬;ëãÎú¸³>¾s·ýkYóõqg}ÜYwÖÇõq‡»úÞXw¡;ããÎø¸3>îŒïÚeÿ:ÆG—îŒ;ããÎø¸3>ÐÇ÷Æø¸}ÜYwÖÇõqg}|çnûײ>òõqg}ÜYw èw¶È-rg‹ÜÙ"w¶È-rg‹ÜÙ"n[¤¾%BnÕDn‹s])Yâ§øð¥êÉòúب'¯i–´ÝôäùÁ᪕¸ípQAÔöî?ùìן.óý{×*øì}åk½»-J³,ôÛïz=\fuyéÓóÃßüöø’«ÃXZ.£ûŠàTzê'”ÇéøÇ.ôãQ%r–s#úçïÝ®î êkžnîÄü5–VŒ÷gÏ/gÙr[…ƒºÑñÚ
Òÿã‹óççœÿ|p}öÞýÙÙñárk•ŽÈ_xïé¯_\^Zcz…óüêÆÓ·`ý‘Öï×Y05âí;A;~'Þ¾Añ6öÃ4Tø -}†^*)v¾þj’¢k0¥“ãSBéZËùç—;àº_Ÿ]=ÅôçZâ×ZÑŸµMñàÙòVoÿììl™¸§{_\< -voÞÙìšÔŽîƒ/–o>xðª–÷ÃøÃï÷>>¸üÍÕåGÂ9¿ty?<ZsùŠKÛ.O—÷{qùú××_¥Bó—/<9¼8þ쳓ï¢5ûW¹ã¾7þ/¨o5’õï#VR„#ÝÁ632e ÔýY3e$ccscnÏâÓ—ÊØÍÙx½ûs%kr·å]´–ž~qôÉ¢`Ÿ<ÿ÷ƒ‹ã5&t?ÍklMCØ}àÚï¼äC}õøìè2².üwï?UŠHºßß2¢×¿ þ\›.`§ÍSs?uhâæóŽ\Á§Ó°ü3Þ…Þì’xv|qþù‹ÃgÇw×Ä7{M|Ÿ¤ýw({»¸ÿ3¹÷ðüâìèâò†¸ç§/•õ×¾ûj¿A .^U©þ>›‡ù†yx?çaºn"¦ï¬‰¸ÜJëÅ&5|— -‹îŒIjÊŸÝOøµ'ºU›ølˆÉ*Ã8-JÄn&˹ß]s /®üi7Æw×k\îOÓ×:ŽËºüá:N7\ǵ¿î;Þ|-¼Çé{é=¾s:¼Š>ù_KëÁ‹“«_nÔÉ'ǧÏOš:ù¯í§oºê¯“¤¡U¼ˆâ«Í«üà½æ_}pöô½%k_¢¥G˯~‚dãåéÅ$ÛßWóƒ£å(>>89ºº:â=þìÞj-/©<âï}ÙÛÿõéò½Ë«Zu¿|‡“ðó?Ü»Þ~ïñáÍYzû?ž_é³7="ËŠ/êxüÎÊd0Í)ϺHg>¦ÿ@Ö%‹o?üøÿº÷éÑS&ÉS¼Nò¯Üº]¿ó‹£Ä+üJ°I;Òy›S—ßëÆõÛ?¾8::‹/‡ÏøfLðFàÏÒjÛ—þþ ¾;Ç|Ì~7~3CÍeø¬„½è [N^Äü'Ýmš<eê_Õ«·¯~|ðÅÑÙÕ¿ƒ÷p>’ÉüˆË\âêÚYF¿à}Ά¶ÂÃ-ŠøÇ?Z~á?ZÆü¯?×µŒUÒ“íZÆÿªKõ”ÐÑŒŽÆ¥£Ô:ãw·ÅxëµÑ]ìjØéª×B®W/þˆeFWýØFÇ=½vÕ't5ítU5 +µ$ºŠ•ã´ökhxíj9„¿øÑ´yÁû '³^wrÍÑ}›2M§zê—ž8¦ºé¨¬šEÛý«Ú"Ø;•çèióv÷{êÕ½±ÙJË‚ÄD•uoaŽÜÓ¼éiŒ]¹}·~»vvŠŽ»z»ÛzŠ“¹fË…ŒXÎ -]µ¸GŒ
»¿¶=ÆÞÏÔk:Äq÷ÖqOXÔŒ-›¶KawØý¾¢ÀèZâb“ò±å—sT®õ4ǘ&˜Ð3ÈS®®fìÙeá—÷Ûv¥lJ.^ÌÊ*I-ÔÚJT}âCøš ‹P0e¥¿~»Å@½#,s³nUŒ2d³)óΙÒznåô*qBŠõÛÃÙÍ!·UßV‹à²ð®N½ŸâÎbârLpÝÊìÚµ÷E9Ç}=Í‘›ÚÅVkÍ&M»ëvu–銾;œß¼^í÷*l¥[ìÃn»ýR,tÙnšb‘´H
;„bA(›,7›·¨wú,{\$ÐrlGnÛe;º
£É–ø±>¦½K»Ó†÷Za¬‹˜ø6y»›$Ýü!Øx¾ºØ®mekw]°öèyÀ6(Õ]ctC,J[ðÆŽPc«ß/¯zÅy°JNQWÚäÆ)Ž®ûÐBšÔi²iˆ–n{ÍqŽ+öÿP×
°e±¥beú•i\]\ U³í}‹½Õá@ŒtnË×Æç³Xš˜ŠUq^×€z… -ï¶lŽ'GW?áK|ýûmŸþ†–ÿ
g"åL¼Òû,²÷U6þ×®ê÷é ÿׯ|Ôñè·¼£ñz‡/.¯ÎO¿]Iö§Û‡ÿpy€(î¼åˆ½êvü“Ÿ‹' ²ýÎå/á”^~þÛïðmü-ƒË“ãÃï»,.sË3P/{Õgf+ÿú~ÖxÍ¿ÍתÃûpúº÷úÐÃ_ÿZ¿
˜ñ·ùVû¥+Â䥇ñ•â·þ.C¹¿«_÷2¿•—ùý·ý2
?ô²×øìüjQ}~õÉÅñ$BúÚ·ºùïÀÕO™÷äüÅÅáÑ€ý¾õ»¹¡¾í!œ]<]T¡7Çü†ãø_Oí{x•Ýµy-
køÞG9ïÅg{Ç—ç'WG{,âTeÂÖšï}4ï}|tùlïӃ˫£ Ûûôhù⋵ìÁKºÿÍÙbƒž¿¸ÚûBî`Šî´Óù'/®ž/|u÷Cߌ'â°åKWŸ\<Ý;¤³9/ãY*›Ç®.Î.Ÿ,pøûeÇO÷.ÿpôŠ]~AtŸíKW¦—?[6?ÿµ¾N·a¾í`Û“yg!»zÄÞO~wµ÷ÁÓ㫃ώO\o`y¸k}.7ÏÖ¢Û¾x¾÷èàì‹_í=>kw]èÖ–]ÿüàéÓk[á”9£;ƒº|~~}?œ_n6‡óôùñ}µÅ -ØÊ—ryõñ²CÁã(qxŸBóÔ¡Ù3¹|V²?{•¹L¥±Ïý®¶aæe>–æÖç~ÿo¾¼côÓmþèÔçÔùWŸË¶Ê}·NG[^|méðÖÕ^ÎÛËóçï]lNá´¤ñQ+x„o¼»Ž_“בå;‚fÞ;;_åáÞñÍùåñ•»~÷ÁqtóÞ“‡}4õïáôâ÷Þzëƒóãyð«·~ñÿXß÷“žøáÁ.~ôàÉçÿ¯Gõ‡?yë‹ÿHoým÷ÏŸþÓ?|òOWóñ‡ÿ˜>ùÅ‹gþí=ÿÃþðÖ[ïü÷ûo½õ¿ÿîoÞzëíù›{?˜úG|ò‡õŸåWÞ*ÿtñoååÿ÷þúÓ÷Æ_~q²üáÿ¶üço¦?ø§£s<ûŸ÷ÿôï¿üŸw–?üÝßñ¯ü÷áGÿ‚¿þ}P§þüõ=üÓÿ<üüõ}oú·ú|ùÃÛƒ¾ÿß÷¦Ç¿þ|ùÓ;?Â_zï?þ»ûïýýòçÿ‡þæÓÿà7?©ËŸþþ'øö/ú.þÊöïßÿtÿrùÃ~æ§><ºøüõgøëþÿýÿó6þp°ügî”gŸ]ð¯ÿ?wﵦ:,€>ï°˜LÎ9眚šœö>³/γI6NØÆ4=7gþoõ€-ª¤’TIU*4è™ÛµgÞ§«aèÿÜ_îÓ:5kÊt0yYňÁ·š«±æùŠ§SqƒÐZ7LÍÔþ~r¥ÍâÉÂÝ1B$CÄt(pD|cL…íÉœ£dOªû~bÒ¶Õÿïÿ4'õ%êvç7ß÷eOaæ¸u½ó¡Àá_4ÅpòZ+jòÛ/ò!ëúH£RB:Çè!ø5xœÃÔFàñvóh«ôÃÙ©ŒÁ›\é–xñ:e‹-ï}ÕcõEDOYUNØåû<2&ÃÛPJsì2ñ{ßú¦è¹·‰³–µÖ„ËþB³=ÇöÇï{:˜ÎUÜî¼؄²~cªT´EÏ‘¹Ç˜*¦Ën‡ú>ÿ¿ÿ³nó̾]<…y¬aŠ›ïÅM{öƒ°%¹¼F<©¯U:õ—¶ÖÂÊèôìû¶¯7¥@f„é+ôT+0“?ƸÙWë's‹œVÇwÑ#¾sá3Çz]9b—yÎfÜú†p{(ky€¹xŒ5îØÚOÙW™˜íb6FÚYÌk¶(“+óÀ‘Œ—Jaþ”’sùh
ÿ¦ÒÛ̘Ê:ßcÊEöÃ’'X³—†Eò7ØO%5WzÃP‰éËÝ3fðûh£y-¨«Âoª´îè%þÏÝ1ïŒÑ«þÛ_™áÚÆ4˜R3ôc*S²Œ©íƆ{ÀÖÕ„*.°öµ~"ƒé"»>¦O5Ž˜¡°`Æš2Ž™Ú£6f¤~0Ë̬ǬߛFì«5Ìvõ,1‡ê¦Æ÷–si‚yÌmR0m|Á¼Ñ’ó¥YÌßÂFX`>3„…4ç+X¤úÆ¢›‹û
I,ÑW±”æ¢ÆÒÕsË⧖«œTXÁ|aÅ)>ÆÊ£«jÜ9¬6‹m°F®äÄZD·…µï?J¬{4¥°¯qh
°º-6ªíؤé2a³v½-º'5¶Z„‹Øú8½a[
‘ÅöþÞ;V,ì<›ÉžUb¹é]©:ÅKJM\¥QêÖÝ–Ò˜ˆJóŸ(‰Ò4 tØJ{®týøóJoY«Sü‡2¬•ÑKï¬L¬ë
ezTp*sÃÜNYd+ÊÊ¢äTÖwµƒ²uk7•=ÀÄvJ帕³=À¼ -äìÊM -\“q·šRw{Ð45¦æ«–™i¦ÄÆ©ù^ºúšC²cÑÜÍúŽVs혵極«u¶‡m hã…£S›«4Úê Ñv6º“vt_—´+wϨÝscím -¢Ëz®Žf„NŽ–jKD\Ó4‘¿UUDû;Ù!f5‡‹8 -Üi½%ŒÎPУqæ{F¥³kPߜ˞úê¼:ÔW—qk¸¹|Ò•I$pWËZÑ»ææoÂu6<nƒ!q{m“¬;·6ÜÍzcìžít;÷Ù×Óx§ÛãÓ/Ò@žeF…®§¶o=‹ËÑà¹. l)U:Þ`6{òq§÷+({7…èOU‰Ú}öe¡ê‹kÚ'_-µú&K5ØïÞ ÉoØôj~Z‰žÉø{ËõÉ¿i†’ -< .ìŽg"“$“Úk ™‹N^¸M‰NЩ\Áhâg¬®ç¹àÔ;ÐÏ«¯IÈé%BaÃB*O×óи.„Ny—#lÊ.áPr6—†\xüU³>mNšˆÙœØFÂåË0R9«‘iÚ”Œ\NS_ÔZÉX£1Cmèp,ºØoO1l4ÜÆÓþ&–Zô¾cïÎ*ö£®ãÚàö'î«Ý÷ñ‰¸ÄGñŒ*~ºÌ -<a)‰˜½N4n·|b5Ë´“êî}‘ôTÊ×d¾b±$‡u,yš”)«&¼IŽ}ª5Àb©aßKk;?×tÀºö¥ËËm+=«Ü®Ì¯e\fï(“Ó—–ÌŸ—2g£þ’%|…D6Y½l³Ýu*œÝvß9S³ÎÅôúŸ\«?Oä~|™K^·—óá¥Ê˜o4×Ãüº½t•þµúµÀž÷~¹¹uÞK¯Ûã -¼ØÐÆÅu»ÿSÒÛ°v)¼‰'JÍÖÆ^ú‰°²Ñó½.ÇÜ©~¹ãR•Ëûà Y±”ÒJrDØ+}åÝT9§¶Úª}=UUs‘Á½:¾n5l¸º×¼é£²Vñép^[ÝúºÎZ%êǧÞöZ#õ}¹•oX—šV#cÏ£ŠþÔÄ”cÓÛŒ›U¿®Òü¾f-üjÅû뫵.ÍÀ¶í…líÒ:\j¯4©ŸŽ>Þp*ðNì{Õê|yqeç² -§ºîìð§[1êÝïmiÞ3NÔž^rØšõ†}»÷›nV_þu1òÕ4ù_û”¾Ø·®†~Áñ=ê/F³ð@šcƒ¾ùf§ðZ4 -|(ûgÃVQ›;ÏÈ9u«Fìk5Úx±¥ÕJs:›g<﮽3wŸ$¶ídԿͧêÜl0DÛéW´Ú˜ÞsÕÚ,P¯VgíE»:»fõ¹·|k+ðyãjëÏ…Ütá6}ÿ,jsâ²Ø·ûú¥3O¸–ÕÐW|¹Kê+Gö<_U:Ýûj»Š:¾vGî»ÒÐŒ¿·×#¶vÔuÕºo¯wÛËeãè›ZËßßÊE }þ¸«óÜOc`Üÿœ¾s¡O³[lÛɘg{ý9MwÁTÍ»ëÝm˽²»ï£ÁÆ~?²§óΧ=¤´¶Áan%BG“Çr;泎Îq=Ov¢¢:UãÉéhÄò -üì„]çNnª¼`ËòµÛ—±Á“¹êñ•ïÿ
?Ÿ6;ã-¢\ÿ’èhBÂçÄr6ÙÿÅr/L´µM@ÿ[‚ò¿ÕÙþ7¶“5%ݱÖ6éÝ‹s¼{ì²5Ð>=,¨žÓÿõhlÿRÕ†Ôp8g
$^¦«» ¼È-ÎÇËu¡CâDxn[¡¼¡
¶¯—M+²™lb‘Í_S‹;TòW¯ÇúÂYƒÔPÌq¤õô½ßZË)ëä\÷ìà|ú8®üßüg7xíä|îÑü²°É+Á,k™íþ‡n‡ææ íò -ÚÜ6;:žB”Ó_wÔH´AÜõ•Ä¸<¸£P—IÆ™Á6×ûì1*‡0ãÚqNƒ…ZÌЉ‰d“Ãò{Ê߈²ÒÃ
%DH´ÙÙæè¨üIâ³Ûõt±¼°ÎÝ[q92±ñØ"ÿÐZuî6'ñŽƒÇÓ\B]@
®CG
÷wΙy?—ÞÀ$³¾æ²j==‘Œ†þÔê<Y¥º–¥aù×Y΀æ=½æ9Ð5:•ê@ÿïìÒ=B¢áȨ˜vaT›Ã
(n;ëI -öq·["•ùùTžÝîzÛ= -:]|¨Ä„?£Ú3s$ç7§¤Üî »S§…làä´Ñ¿°yÅdÞfta–Z÷ª%Ó¹<é–,ÎKï`º-OŸ“Gt‹àKéÉköDS(ËëæûðBµ‡
ÑÔΨ¸Ê—
YKX²Ýô:ÛÜöS ž›’mäh‰P€?Ô¿ÓQJç…-éôºƒKR(/Ј}A(ØX–§Ç
{(ÒF°:«§aè 7xš{4ýÇDì¼ïöä´î ±VÍ'%›nÁ‹Â"Dý‚0¨&< ¯Œy*nÛÝõfûþ`„*æÛ0E–E¾ðuýÜnwG6îñòïv*hâÀNU“é1º^ -3LHg…RÁuêã‡äU§iÐçØåö¿ÇË6Îbn"åD -ýÎRNÅÜa¦tµzÜmæ¿êióÁܲ¦„EfN^§G§ÉùÑ{‡5 -
GªK`y±Vï«ÝüŽöÅÚªÀ¸¤mJð”Ôx´Å'˨ö&"× *`bß«6»n7§"ž Ø첄ÊÕ"–8J‚-¡É:}dp}ùãÎ3ËdvØœ,Ÿƒ@ðFã)}
ªn<×Äizx¸Ý¥Rœ‘Š¦ovBÚÀ´kÊ;4s<zÉì×þï–Oc&6±™Z®jw+›r«üÑV&\rFüŶ½ÜçžtÊ^òâ Ë*‚¸&’ß&B
Œ,†hÐtºF¯»UGEìòh”¿Å¿³µb4è\6›Pxž´X´ßO¨Š‹ÀçI¦q¿ç+sKþãÎ/³)¶?¯±\ã¶6†Ýª{:éTwâ?;mG'WD~&Líñ<íZk&,mq¤ìvþa4¸M£þ«eoLšð{Z—Y¬8"Vz¶tr5ìx`¤y׿Š¯o‰µçËÆ!ÇD“œÛŠçh0¢íp@—¯‰Ñ÷è>iÎ0X‹›½?êXì:}èNwîûÑ穹«¦K¬ã@0†;4ÆxÙ4Qêtby7„ÛyÕ:0ŸO·ðÓƘZ×$faz.õÄ¿åñÑš/ÆÁ=Vlhΰÿúh ¿v(pw =ŒÆsíÞ*¬žý ´áÌûm4Äy2m²y´KOÇA,ü›„u -æ×V -é̦e|ç©îÉôŠx4‘ª:)“Ïuó’ë»UaOâ82Û‹¾ß>S
Øð -»
*8%}wÇ];@:…ã[½ÛL-Íö¢H؆ªRÒ:
jÒ˜ñ뱸ዂ‚š(pb¦Ì9Ñgc8¤>;©Ù<aJMH`öž=–n—0†Ã)“=ùQp:¡``ñS¡™¤;àUâ. -hÏÓ2°éBuØhéDÏ\X<9F¤†9
N÷—ûgk&ŒÉ•µpNM§ZuÜ=kÕ‚Ùä8k®ç·XU=/Åšv˜ý˜gØSß,¾RÝIäN“ˆ\µœe:Ú2À¼;Ë%û˜°Þ1¹j¤ˆž -…C#-ìn¬’NþtƉÍÛXíño ßl€&á‰ÇS_açÌŒ~D©±ÝV2ìÿO–…Û@ûÂÉo³>B"¨9 ¨U´‰µ±—°nÂ!?5W\:ql‘-Xö–4c>Æžƒj‘ u¨ ó H®yjq²:"fThÂä:g6@5»–£ÿsµVG}Ûe!´0¦'ã°/™éyVÀOÙ {ÆYâƒaúÏH!×XêvRK®ZÆàÓé¤]¿H‘;YªPøHÆ5 -j¶bûÊ“
ªtêpŸØqßÞKÍ~Ф¶ö½žy1¯U£`,½}™2ðï=<V+7Úé¤~ñxÁ,ö£†ðlï³*Q,ÌNŒÌ÷9Ø¿¶`^ëæ7†3ãñce
-`-…ø¶dª}uÅìY?ô´Œâ[{c^ÐŽ -=%0×v%ÖÈ,~À¼„.öhó¡9@3ÒÝíK¸äVèàc‘õõŽ&ÙWL`Mˆæ55>ÙfÑ@Kka9Éì®2°ºWbÍÖ´øwDzu€ÞdÍ4wæ;0¸o—>®ÄVŒnÙ|ì^60™»×Áö(Jï_ÂîŽi’3ç²ñr÷²:wï7XÉi}uH']_vc¸74<C”aå³ÀY»7^¯=Á¼„Ýù{ÒR_˜ÑÝ´ˆjº•éC‚r
‚Åg>›¤µˆ>è©]Z×ËÑÒóJu.“Q´rA1oï+a Å8ŠGÙ¯Ü_€ÔõkÊhp¯X‹Ywp)¹Õª³7êïœ7UvöõwÓlP$Ç&mwßL#‰4õÜY›%»©–„Øé·9˜¿¯@ryª‘:áV*øÌž,4KJ½§½+6 ‹¨Scâ0L®šÉ•O™Ž¥{ÌõSóêNÏS—(Ïä7¾Õ§ô\åv¬YŒÂmè3?w>¨‹^̾{¬Z·ý›‘wf¼c -»\6Çw{bÖËöËöWzÑÀÉg{ÕÎhéñÖŽÑF¨‰±˜Ÿ›|™“„ïK›N,ÝÛX39µÅw^•—°›Î›¨¿RÛ¡ cq˜§U„Î'Bónlšd)VoFÏÏkCuMlB¥kԟƧ›I”íº)ùâ næýdn^¯ÆûíiâG*¢–Öå#E_v¾QJ05‰°Ð -î@A[%¿UC§Ç²$€:´10 Ö–G¸èúA½ÃÕLͬ_'®æMöÌÛÔ¨é±JÓ -M%½ù`jÒê°ÂšíÈ6Ÿ:ðjŸ¡ - -Êj&1k8•;W~HdÄ>.ÚnZs?-ãÎ{X:ÀÒfÙä¨É^çÔ’ÚÅ~ªÑdnQ»%ó:]ƒæÈs£ØnºGªQê¦ÉaÌù;ÐÆŸ•×¢K©±Õ®;S¬f 9ßÛØì8¿¹~&ÈÛÔX€‚2oúË£Ù==Ù÷p9èÃô/öR --ã,ö÷9IœØöpèê’+ÍIå¾n¡ôxg±r°lF¦o0WƒÇ?26ày‘?/ýÁç4æÔj>[§`y3× -]nÚ^õ]e²ž“ËàHÉLÒù'N ¢W'À>V·VÑÈý5üWÙlz|šÓQí²«ïŽgö2V5å{œåW¿<Íñý -öxÈU²u·¿Ûš±,ÓÈ£8œdàR£”²<ñ
•=@00³Fêö«†²Â\¾±1U2úÀ®3šãÊýp -Kе.¹õ!a0 Y7æí=Þ)P`$û‰`üž1ìšx€<³VcÉ -Ù$ìˆ{^°¼÷_(¦Cæ-‘/q¹„C³˜éTÎG¾kØ›
v,éã—³º¾ˆäWº×L‡b¡¹Íó(,u͘0ê -ö2$®A -œA{ÕšJf¤®µnªí¥„‘:õcÐþ-<Rez$¯ªuÚ…ÆJ¤ã…¨R·J}¸èC"H{#"½*7¤(Þ•F›Á‚[~ÜDšÉÚ›¢äµ…›„¬ÅYŠ;§°’÷p¢Õ?Ϫ®çèïlz€Ôy|ZJE"N!jµ<¤.×~|b2+™D;¾×‡¦ÒèÔíI«m‚HG‘I])‰j‡.0k^Uëe]i-¡ŸÕû¢Rc`ç3HÁ¼p—’!ò#uözDÚG”‘*Óßu}o¯!UàDz8L‹ŒÕ·‡RBé”Ș&ma¤"¦]ê<=„Tó |S™"ÒžYÇ#p¤ìQäM
¶iÒ¯ Qô˜m©‡T_•ÙåÑ]Ÿší -ß´p¾‹Ò®
UÍ?vG«ZðÃüí
hé°v„µä=hÛ½ÖªÔ -„ȧ±ÇŠ,Q¤PäÍÅ.ØH
`#³ÐzËñéB£Q1H‘öO#uðȵz¤™©¾‡¬W6ZCvQ¤HûA -ìA ý¤`,œ±E‘_âH¡ö/ŠTCý-<Ö f‘BZÔŠ"E:ƒî}Z¨S49³ºô=УOÔDè_‹½œv£ûþÀÞû"-ݪó(Õ¼lçZSëŽâq0æAŒâ–O[w¢ÛCêÔYšpú~¡˜‹¦åíxëFå71Â'Ý¢Ië'‘ö~ø¤žhˆ:"ì˪P/¾L? ×41;ÖD¡§pê©t¤ ø€Ö-AÀàB'²ÏûØ^ܺ^&qúO1S>³ -Ý8 ±dØÃä#”O t¹U4P¡½Ô!õvŠ³FPÕp H{Ü@‡‰¼ÇѸ ;\+I¨S[_Ž×)v—Æw-Xº%“]!X~4ž;‘pËá=^xEtø‡ê<iÌŒO‹‰ŽO3#DDgð1
åëùSÑã3PkLh„PymIKþüÑú$-™Ä’ -ÑuÊcxÞwÓ´Ü}'½ë€¬œ*»wɹTÙL-› þéY‡OËpF]ª 4€bì …À„2ŽèçµÆGsÁçµQ©Ñ]bõå–ìY83»Š
2J,o-ë“ö<%ŒÅW2>OÉ"óJ“Ëz¶Þ«L2tF¦1Ðfú7Q±¤ÀߙߤIö}íIhï/2\>-@¬Ò‘¼]ºEò¢²²R§ú#G¥]WèS§ÀåÍ °ò%‹W:?g¸¤bñÆüeª{¹’? -3Ç#˜7—Ê #onù<‡Ž-Åž3èxC¿Î¡“Î C<ùrèD‘¢:ÑlÁ7sè¤3èØÙ‚ŸäÐIgÐq´¾rè¤3è8Ù‚äÐIgÐId¾•C'A‡²ÿ ‡Nº•[ýqÝÓÆådÐіŇ9tÒtH{CÇ H–È0«jÓBÚ¶x¼x&/ØEF—=½É×ÛyùRižüë`Ø$_ûpÈõôö“\iÿÞÔ±Îø’ü€_Ó)`à,Wn®(-ãur’Á–?Ëö+' -÷ŒO -˜t–¼ñ!_ß«Ì9Ùããy®ž÷‹|¢[ßï’HæãÏ•T—„RæàXÞJš“ÅkR¼P&¶ç½ªÛ[¡ dü˜`0Èûnc1§1ºìcUϬ’šBf²7ò]Ç ZÉ`Î?õ“ÉnbÇ6\+éU²›¸}*}àÀâ–)É`ŽiúÊIñ²8™Âò€qC°lÏ'63ûùUæ£<ž5M¿eô¢])föÎâ!”o¥˜¢Ü·’̬Ã׶= –ÐY6=»Î^9·ÞÏM~ÛšýʼnUFTíÍciJü<°—j—ì<¾û«ø7òøf¯ò_T§•xjšxŒ´*ý¯
UbŠ -¥hŠÏßËxÙQ‹×ƒ)8róø¼—W91R‹ýY†è…9ùËLyØë/Ÿb\ë‡{™&*GûŸŽ_{¼Û3s²¼ÀzL.yºì“Ï÷ÙÌ¢·z]Øo)/Ç!`«äJdûÈÿL$wwV†±G[|/Œ½ï¬lcO -‰ëÀL¶Ï3ë¡€û³˜H -áüEF*Ìû<#Bù‹ŒTGÞ5Ð<“X(®mñKSß2Ò›©ÙçnÃîÇÛ— -'ÌÇþ:ÅóKFôüE*œà¼üy*Üïý–\ŠIÛîoØ•¤Â±ï BÉpÿ•T8¯Â!NØ?&Ó>ëI)†lVÀ¾?Y*ñi-«*çFx®>–°¼0‹äzAP.YEdLüf»7u˜§K†ß=\`e£÷dáHÝÎX¹Èc°¼NnæçÕ
D¯ÃᇇwT@<0ûV3 á£æ -˜R'•ìf³ðrëñöbvn•êì¾Ä’ÝúRYg{é»c³)ŠTS\®bH—Òõøj]q¤©r?#J^õÁ‹!q3ìЬ‚
K}¢Ö¹_f»€P;Ò«ÀiéeAtê«d;JtÝŠhùa%…Ó÷_ JùŽe„Ür5Xã猨ª9þMjÏëU¾×D¼ŽÕYF—Xçbzœú*΃´^ÿ²’œPÙ;Udx—¤*ɽå…ë'e‡H¾È†DwB¾×÷ªˆœd\Ÿüõô¢ˆœèø„ê¾½*6"w|¯k
È&ú«:#¼»Ô>¨'¿d–â…ˆDÃ]å “öôþ&›îw~˜w³é„ì€G-ο˦“y?̇ÙtB>Aþ~ù<›N(—î·™âÙtB¾xáHûO²é8d¡ö¬àýceÓ zqCÈ/²é~)‘ß̦:§¡eåŸeÓ åÒ±íý¿É¦Ê¥“ÛóF6¯ýQýï²é„fyzÿ4›NH¹aÇŽþM6P.ÈmódÓ=wi×”~›M'¤œ*ð¿Î¦š?h¨³éø ^ÖþU6˜nù·Ùtò)öI6ÿLü²é~E±·³é$s¬þ,›N8·ú¯³é„ -pÏ•#Ò²IO¢ü<‹ÂŸ…( -ŒÊýë\0´^îú=åê^ƾZŸ0Ï’xY‰tr"š¯3Ń8dç,a‡o‘Aꈺþ¸+Y^…-€Y¥åçÁKSEÇ,t7”ØyO¦ºÿeb' -,ªñಣ¡ -wR)ïe>‘¼JyŸæÑ•ò>߆î¸yIròC~SáNªÞ+¬q÷~…;¹·šÃì§ÏkgFͳ^e'Ö`¯Õ…E‡¬M÷»ÄZ~æ£ëSÿÌ/, ¦C¿wÏ‚ó¾ùtG„ó'ùœ%Bž-öŽx.,/‰Iñêš T.ïüv¡$&ö©(d¦§mè×½˜~GÝ7™iLr’˜´¡ßeI19iLÜA¾ð2 èyMcòëde¨Kšíô®ôëäìJ9ILÚЯ|ÿ֮쾕Ä$Ak'JHÚ÷Ã.•ÃûÁü<ÅPà²Än¬ñ9® ‹øbÐ~y·"Ý[å)Åõ±Þß]MÕC§o”ãÚ½šê}fv}«Üã‹JyÖ_渲ö'†!#ëùuŽ+è’ì¬g©WÊ'¢èÆ÷Pý`Æ[6ÔLnm‰¸5ßIª–ù†OFŒfè81ºÁ§Le÷¥»ƒô®
+“¤àA®]–ï˜úÄIÂ+Gêl¤œ|8~Uµ{U¶«Š[‡ÍŸè÷DòáôâIx—ûÄoãòd^aËýs«Ôžº~(–„7E -Æ¢LŸ¢c%2ª¯–(Rmnfù«Ã¦gÒ™\«.;)75íªõh˜:‚^–£^éï„*pH`~Í9NÞ”ŸûÇ&o!XAêVáÎrrÂø`ùqc ¤µ[i¦¦úBŠê¾y³œÔJ>ÒºTÁB[i*ÕJs"» -¸UËHådßs%‘ -øª¤ñ‹ùcNޙ׉:²¯®±`•™7€½ª¢£åg×J -ôóÿE]?é…l8Ÿ$¾ó3R[×O@ÕdUõcWg >¨ëÇÛ†·ªçή·ÓSº®ß˼×?©ë']Õ^ÉÖõ“¸fe¤~T×ÉßZ‹¼{®~]×Oš€Hƒýƒº~{íºuüQ=>ƒ4Ùõø^”““]~4Áíón6ÇS]?‰¼‡—ѶËwëúIkòðƃ¿¨ë'&ÃÛÏ'‰¿Ëß’¡Î?N_mÃWuý¤Ï›¹Q¿¯ëÇ¥6ßZüm=¾÷‚4ÄëñýÁö¡«ú}^ONÓ«Ûžc5Þ+ÅÇÏHý¬®Ç±ýTÕÌú¼®*%UWôãº~ÒjŽÈ{»®ŸtU¿om¢êú}èë“Y×OFÞëÔõ“®ê÷v=¾_eáò¸ås]¿ß'óªú±°|T×ïÙ•Ì®ê'vËÙ»uý¤Ã»xRì×uý¤x>¥_×õ˜VU?é{áä×õû½ß’K±÷sžDìÊêú1ŒK¨ªß¯£yuý$W«Èguý¤CÒzý¼®ŸtB,%‘?®ëÇ$¿ªß“>&û&+n]?q%ˆÔa^Üd%³®Ÿ,æãº~ì™|>À‘ȮٟÂuý¤…ƒdçŸ%Ä’rß* ¾¤t´JK8⃯Ԛ¼Q‘'+ÁSq×®tà=/m‘³škŒ9½ ‡Nì<xÒ7E¡Òq$¤åȆ°V–nšžeŽ%Z¼ÂÜ7ûu±’ÇŒý²š°v·²Ì§ÂÔ¥pÎBè˜uÞ?9—u>Þ
}µ–AgÞëµñsœÈ~—cªó=îÆÓ…|šDq—7Õ”*çºë¼íõ¸Çeqν¥t×R°\0W1ãœÄëÛVdÑ(¹;ëæ²ì:·uË•ºÓ;“?Êf½°õï‚Ýã2¢;œÇž3~‰Üe¬SŽhÕ]Ưú¹œþ¾VõÇÁÒOí}”Ûn5mÌbE1û÷¹m:´Q"/ĉôjž'2nMýr™øt—«·“»ªFîÙÕ5ëWéL˦1d5w,Ž¢OùH{û±^®ƒ#,6çS‘¹ÕÏ<„“_ø*Ž}±yí
jº$¬'yŸØpC,ZÌ÷¦óâPc¢cEº©vYUµ¿šaõábMkìÎï»j·À0“4ÿHÅ³ãÕJ”“ˆÅÒÍ&N¨—dïW\•ýÄÛ>`hÕ+iŽñ·²†ØšÂn<qWàɯô²‹ -h&†™z×]N,”Që-˜Z¯‹@Ú§ÚVS¨cÈvgvíî –uc3 -i¯b¡°8â^‡7°éW‰µ;]‰ï¼*/ËÚ 6’ÀøgÂL]Ø^Ý*Oÿb‹` º[!"ÖÒ&‰µ§pŠ5c‡”>{¼o)ðôXß/Øõóîæ1M³°v|ŠSCŸMhõÃS°t-{ð¬N.{èüГŸ¦Ê¶}$o 5
#‡ã_Ž,2=ûðÌñCú„¸ -þôŽr—k£ØÍTèLd>² ˺éÞ,¤³bc,Šj‡:Ê€ +ÈBÿ/Z -6¤÷Nnlë˜fu=S&bJð³ú
6nsoo @èÙ L›„1¡Ž¤h½&k×ùzFÓEÏ”Êp$C,ðCòr
\(VWe:3 ˆ¥Òeåèv«1ÄFÇQd -èØG˜0;4¾
캤ɖQ{¿dEOðo[ÐS ±ÆP$®æ2¾qX¦JKU‡¶×hsÈè–¨.7ÔЕðE_YËèz†þÅ1{¨tQÇC›#¯µ€ìÁ™áר†õƒ©yqö¾ RŒº‡„{g…&YaÈ‚ÞÌå õ½}ÄÊž*3Fj@Ékƒïš#Kçö›}O ÅûÈîéGL÷±ØÛB—¼³† -YXœ£=±-c»êXö“®Ú†þ(pxSP¹mŠ#¿>³MoJ)‹#›”v'¹ wßD»˜ÀÛž1EGݼ„MÚÍ<|e+úÑ[ûx…9=6>2®uQwï„gö#0Øú_P™þbôgçÁCÁ$õ6²› XÝÕ«_LdW -ýeÒ ÏîÖ¯ùÞrOÏ&Î"Nܘ.)Ç+6ÜWHü±¬²pfˆÜ`@Ðk,ÌŽfð‘RìáêpY´«‡z»Ô|{ö±Åß“CLK+-®¤©¸kKuõ‹ò±V^y Q–ø³«CÀÑüq>¡í÷U™/+kbâ¯@9¿ z›-(ÝH:9Ñ¡%[ä ?ÊÊœ#ó6ûæž… |KjÐ{ÈÁœ¦\düÂ…µRmYó)eŸ`¾2#5‡1dìãyÚ&*æ`oW{Êþ$…–ú|Šéæ4‘ŸU¢È‡ãˆÔi[ÖC¸àF‚b« -$ôs«Êîü~Cžì<¹ky_…U á~a«9t¿Æ/UHQås2ñÐw<»2#’Q Q”‹X›q[Lƒ
r‚)Ì0*$QHÒ\’vª‘ - v¼¾ë·eZ×ÄCÔxø|o¦ÎÄÿF…|R Á't_(_3’®rÖSzLêUV„éû;LªˆäaÕVI`Úíop¸H3QÃ…£<ð(_ƒâë}õëàÚÉš©¯E'bÕòßk(G0ìø°G¯ÀYg¬ðÔ‰ÐãEÂ̼à30/ -¯ÍeûçµÛmÿ¬õûny©\6ß›Ã?“" °Ær6[ë°8¦/ËesùÿÜ’Çù}¿<ÜþùÿYcD.çu%—óãbù…Ǻ&–uJvƒÒibÈäM®|™mVUM“+¢æzG6’ëÐàoƒ¾´àys~M“g d¸”`”‚Ury‰ßSÆR±ÃÛ_H½ríf©sò+íÊö–uùáñë~|R¶7<…hľÎÍHËàš“AÜüAgb7
¦–pmØë$‹:éµb&}4J’×”ex"^†/"˜9æX`¦R7‹ÎªËzGPQGåo‰ª÷LWzWT½/¨ØÂM®¨z_P‘EòEüꈴ0ðµe`Q~x–F›Ú`K
–q´ÚQ€½‹^ÛTYS[XÉ™x÷¬_[62$MŽµÚw -S€Å»±ŠZ^½©“
ÃZ^³ -þB…VÌZVjÙϺrµ€O}%[f#{(ã`®fS† ?ËŠ÷Lo{¸·ƒ$ËÃ?rï›Î§Šð¶§ùŠ€”‘pïÿ…”‘ -üo„¤´ˆTà#$¥E$·(Ðãxç)&—Çëâ;¢ø;ìa:#!c5R˜xGF%Ì5la…\ØÁBÇÈDF$š3'/¬AuvßK -Ðe[ŽBALmnÎ -]|z]êÿ -|l]nÉÍü¶9¦—ÿüóÃGÝR±•Kþóÿ£þé@?ˆ1h -žë¡çiú6Vÿbà_÷ÚØ |ª(aw¸ì -A2ÚúÛš¢±þ0ŸŽkÖÉsíÎã>±;ò#¿¿Ì‰O¤PÖÝz9þžâÚÀصû)L^~|Ͼf?˾Ïñ¼§z³öêß_Cáÿ}æ¥×¯s ¥õùÚô·_ãÕÒëšGÜc¯b|ýR^—vüjOùæaļ>Ùð ¿¾rM“ÍÆþí
Þ,¯»Åyº$¥Ê×ß·ñã›|ÄeßäxÖÓ˼yæE}þáá™™|n¶çõ<³j×+{Zù7Ï!ã=—{óð -o‘z±òÿýá¿<|ÉMÅýdÂð#¢û}_5×.’Ÿwik?"æ æïìuÛÂĺ§/óúø\òöýZ,ü£KÌa^Þçé£&æé[OÌÓGMÌÓ·Ÿ˜§‡g^ö<6A¼®¿n#7Œ•ÖøÀýuj±c$6¢®‡-ëH[÷˜¹W}®¼^oø’2'i©^%T<Rš ï±&o¬±<÷KŒÜÜ^çÆGeý5ÕÇœ×óè#ùuOq½(´ëd/Ÿ–ʽþšúë:'h½4~Jíõˆk²52’jáÇú|—”XC
Qö5×{µÆIìß½ï_ÏõBú¶¾>¶¶NM¯Ó(Éæc 2^Ç5툳™^—–Êå^üã·,O!Xž>J°<}KÁòÜ‹ú$üËÚ‡×Kñ)Ïì™b¥À^˜´–ÒñÃØCpÖN^8jkK®ùŸ•ß9_—ÑøÅ#Ï¡‘ž×ßð(ÁVpÍÑ3ð›{À«Li.xÓÕŒ×Ô2V¾.øçÒÆb¬\ùñº”Ù1Zª[„Œòi“¥\}Fâ›”© ^.^öbÎS´äK[ûcA¨Zë¹vFúÚä’/“³ìCõu¯üLÍ)é-FPjì’)/ ³^cY—]ï‘_´vÊvYñNC¹-»xYÖgSÛ)õ21RCëÉñû0ÑÑ_—Óu›¦£¯+Ʋ£3 -àµY5K -Þ²ó衪±ÐfBÃ&ˆPl$ô pàÆ*Í¡ùØ1ôDÃñ¢6&ú’÷ïqªØŸšKˆgœ*º;äò:F\©HsaÊ`øzLìÛ¥Ô%6R_h]#¹´®]×.ÉTFÖ‚Vßîë”X#kr)7ê’V¨KOÑçÖ¼ôõ¢©8’¸UóÒ9ònH¶ÁKZoè³i$®ù†Ê+í[>7¨¸A771µ£&œ‰K'Ok/?Ƶq’Ÿ‰k·Á]½àÚÂz\Š}@_Ð_P^X~$8K¯Ô¨cËÑ <°e&¶¥ ´øX·ø¼ócÐò¡i-•I[/'HÜ¥©u_ßµÉ׋b‘S~,âÌ^ñL«äXïRZ|Ø¿xQ›¿ƒþô»c¿ 7%Û~8¡Ôä>…Õ%¡ÖØÒgþ6Ö -` &Óyç:1R–‚åàOKËáªÆu¸ä–¨‰×LÄ.ð×™i#.¡]5‡8ÖÄ/ûn)o†ô k1žiª¥sõÒöaV -E,-?}ß’Òq)iRÉÖCZ׬ã+çª#e* -ü²<³üÈ|•C C”gX‰P¢ëmX·õ¸1kÉ<ÖÎ4^@O/j“` -羄y¥-GõßðY¤W‡Å|^×)½à¹ÿÐH*K9<COOÀÎÉAð×õµ˜Í<M)š°†#n$ÔÚ’ºK?Æõër¡d©N9å®uÏËRàѳ4‡gê•ðì• -ŽàIÕ¡Ewêø4«6°÷^<O/j“p
O7vÇ`rÀV—¨ñÀ)Øð\ØÂ!çðìø’‘¢¹Â:Ÿ1\u(P¦±2ÙfbIψU`'V™xY\†Ê(“ -]"æ’
¯s ¿pÇm ,å—0£^³î„Y„¢°LðJMwÁ3©:Íd›2^ãZÒH¦Ê·l6/í‚η茧E]ï˜óYtÒÌv—˜Í¡/<‹/AržßÓ¦À‘i‘ð2-Z¾öÿD&²÷ûá„̃ڑ9J§ƒ.5Çæ:ã1P¶Ï«Ø“,¸ -dX¿@ogèÑgIUšHiEÆ&¯Y’³¤¹E ' -à(k8
¦ûg(_p[(¥›zÏ[#€öºdçÀ©mzìëjGî9;ÎúÔL -0Ò¥ôIÙº|ÀyISÚöÐtG”sÆ-;¹eÖJt;>€ONÝÚ÷óx¬ÚÚKõEÀóô¢6 Âgö—á@Ý’3Û_ì.¢ÒFì‡
Ïû&¾Ü%
à›Õ|31&^r7ÙI-‘k¦ËNþ(:Ø›9Ùp<Þ]¹³nxBð/$NX„¹ŽXä -3m05ˆˆš7wc&fÅ,ûÂp†O¡ÜlMR²½Fö΂gŸ3žc¬½xFwá›;?sçÀ`a}§K¶EDqÎ#nfø\lÆI¿ìõ*|®·ÐÙ$l:¼©‹tÿÔÀI‰Î¥¸;©¢säQ/æñX´úRõÓ‹Ú$8:eW§¢ÓCEeãx±…ý°ñÙœv|V¨˜UÂgübfËqdÀÀâ ïÆ<Jž$~N±¢®Lh!üÎâu,væeÄh“Ø|/k†´Î%àY3=SÀë’oHb#:ûÄ¡¾¬úÙ»‚¢u}ÿ#¢™Å6tůM´Îk·¡Ì#Äž‚Ìõ,:B›üÔB'“Î ñS:Ð u¡s”žÎè\›ñ°É£ç.êWJß—€Î‹å$:p'tºìô8QñÜÀ¸Kúá„ÎÊщ̨¹ëC'‚ÓÐ.ºgŽ²Þ—‹ÓÆ6‰b£8iÍ+‚…ô: g€ÐBòˆŠGŠ–ŒMËø^Òs)ŸEè\–ù‰G
Dh¦k2©2È—šs@™á -Í$)´áüí¨=JZ#ú‘ž°,ô…´.£Z*ÒU -îÎ4 t³‰>褀¡F¡k€Œïôáÿ05Â)9Ž -¾@èÍ>ü$K$Ó¡ƒgç‘Œlÿ¥Òuå.‹d̨DƒŠ²«(Ô¸p¼æ¦ÊÎäëõh½Ò&A8鵹њNÇ¥pêù„(L·´Ìï¢æ<¤—ßå¶îÉocA™í®Ùvˆ×[ú'D͵A7¢-EŽ6 -±c|ñÎiæõ)Û2- -ï´R ¤:RòáÝÁÊ -PP5‘,…ô}ÎáNµ2œ‡&d*™=#o±ÄÚ\¦t‚=>6 –áÊLÁ˜»(a\(¯–J¹ì¾¾yI=Ó(éІ)ƒºEÃA(‘IBaáøŃlx¬ÙHžM²!QÜâ÷S³ÕS@ê˜2÷ÞÄ1åk×æVGPÞ)<î³¾Œ£àËò6h™3ùÓƒù¥³eîÀ«5ˆô¾!Õj2ÀWƒTì±ÈðU¼®(Å©1v^F®7=0JmL ñ‹ÎÊŽ0úÈà4ÁAØc÷19g8d¥x/L#ضŒJ´0°Ž8S° 5Œ
‚Mgž;fišB*…9ÞfÒ®kh9#D3˜€*’Yæ¿lÌ‹<¶¼-JMÌÎpé²c¿Ù%Pt¯ý -"ogh„áùëi|ÒêìÂÿÛëÚ+Ýåo?pu"‰èGJÑ—ùH0sÖ¶«ÚPËði.Æ --jV¥Ÿ|ˆ¸f¸0ïˆ5EfL+~ˆr¿˜x••Shù™g‡R6:¦(3vp â%;òù×AÖ4ÒË:k0Á£:ÒÎà¥ñ4IÔChTyGÐc&ìZ]‹)p$ºì-ØD…8SÔÇÛU7,9ýÇ
–ÜØhî«Þ,öƒ°4\¸atÏ°4#Ê+š -X®±žÌåXr¡û½¶>5’r¡Ï³'“~x†U/Xý9™`‡«º…|T´Úd9Û¬0 uY: -‘£Ç6R|Fð}GL…AáøbÒ-çCä*um@dÏ°¼¸?Þ¾õÓ<VƒùíòýWw[aÁÕÙZ”ö -(íüøˆ¶D‹=D«Áv«hvÏçêª'ÃØ ûxBa˜²°ú<ÏT–ÌøûçY–ÒãO~þåH¬?ùò¿ûäÝï>ûúw_þÓ/>ÿÃÿýo.H–"¹œŒé‚èÿ¼ÏÍó7ÿNŸüïÞ)~›¯Þw
ïyä¿ø”œ{ñ)Ü"Kƒ]‹m?_ùÉžŒk`]##o-)¹v¶ìa³‹PšRtÝñ‰ê¥ëªý
U¿ã#öP¸ê}ä[Ÿ|õÕgúqMðã'ÿü‡ß?þò³¯ÿðùW¿ûÿ>ÿ+‡}µfZS¼–à7¿ÿÇÏ?ýäçóÓÿô_þÕ¿|þ›OÿÏÿø©.úZ+ñ“ëo¸ú=>þ䧿ÿý»Ç¿üŸŸ}õÙ_ýù—¿ûÃï>{·¾×Öïø“_~þÙºö7¿ûâ?ýö·_þ‡_éO¯Ìî½þó¯õçàßñÕçOŸ¹^æ¯ü
æó©7{Ì?{üÛßþöó§?oîŸØoÿó/¿þÃg_>}þéÏ>ûÃgŸþügŸþâ³ÿùW·ô·ÿëó§ÆW\~à„Ö¸.ÿò÷_>¦œ+Áùj¢UûÕ'°¾V¨þHý)€úúæ¯Ï¬l—ï󙪊˜Ü-P7¿À´ƒ>˜»2+™IJiƒ²ú1ç«÷UÌ2ÃAx!•Ù=’úΓÝcÙ"¼u&±“ã*Q“"É;NRý|ŒÌ˜ä“ænïîŒ>;c(B®Ëª|+%,ŒUÔÛ!××æ|…à -x‹TI5=…ßÆâ³á~ ™o¬ñµl
`
Þ)ÝE=†ÚÕ—ašJæï…DâãÉ/_ïý|~ÏLƒµ½
}¤ð¢_·ŒÙ´QΨXu=
ùÓ4l6—Áñ^Èh¹xxxcºÜXû"¸g55~Ÿcäøº=v<Õ¾Ó~ô«×{óá9ÐDýÃó³þÌÒÔ›‡zv¡oÑp ™77˜zt·3þ<ˆ¯‘~—+Àe†ù^?Âë9xýÝyÆ:ûZÚè`j/yÞºMî[0¿:CìB¨Û*S0˜SñY)†êå<£Ô×3k±^Û¸¼jìCøüO»>O¹>Oµ>O¹>W³r=ÏÍÓÅl¢°JƒÙ.“CÉï•ZL6Ôü“*‡±1Ž,ÉFb2¯ŠèyQݯÈ2VÇÀsúNZˤ÷¥~òCBµ"ÿW%=‡Å^*]ÐsÇZ˜.ÆA«}Í<êøÚÙìn$Wy…ÐÊÈÃ?ʈ›å"æ×,Ç( -J,È–ÃHŸ7 äfxw«7.YòÇ•O'*Ÿ>RT>}œ¨|úðØLÝ‹¡Èo!7—FÈœÐw)IJ†*S™CVŒ¥ÖîÒÈy´Šê`)ÚdðíÍÑÐÌ -Pm/b¦²¾\CÝñºxG
P#˜ ÍÝ\e
QLL8Û'¥! ->\‰î~.Ìe–A˜Çvè$ÉLLcñÒ~§ž¢2 ûþÊ$k2YiÅ*«B ’ì´ö
þ9™õè¥#Óµgæ.¢¶bFg¬ÔRÀú±5îu%:³ÛîyH”g¹˜Ù«ueO¡Žíë9°™ºÕq_j¦.¸sÒS÷
ÛÍ—®`j‰X”ñHíP.b0p‡ÃþëÍîixoÌ‡à–¬™ÌBh:P¦In• Pr;ÄÚO•;ïÊ3¾ð-_™à—Š ói²[N Çð¬Šj6ÙM"Ê‘æ·-‹Hܦl&¾I|išIÕF }òí_-¯Sv¾dˆ_ÏÍÔ½˜¬N‘úÑã¡šØ;`ŠêW(Ã,Q\7Ù½áÃNèáþ&*S“¦=÷aŠ8›:W‡Ä·ŠÏ p619Å@ªW1Çehª˜_ -ÐffA -aÖ"Ÿíè2˜\™=s8 ÈÄ:˜±)C¦{I"¢äT -¨îý¢ïZ]TÙ©BÛ(B>S·O^ -˽ƒ(ƒô¸£Jv”„æx»7 -×ñŒ˜Íg>D{Ô²?º–£Ø`ò"I_ݳG/gã>¤œX½j2,¡ˆê‹«<>³¦¶™WRji$ÁœË–êYå\ÃR^´]º§µ$Û.ÁJF)úÝ DTé*+³óàˆwîŒÖŽ˜e²Ov;62®¬ò®»Y«V<ó áæ©ÕëC ¾¹-…ÔaZè~Š[*/ÆòðÊ3?<^p=µwäì*íÆÈ`(5ií*Ý:ÐÌÆ×µi´?Á ->í’“ž6FöâƲ£ùNâÊ[õr "Ú–2âô£Å,=>óFw¢òzÞðþ€Á6‘[Vâ÷Éô;Ô?0-™Õîd“i¡GîÊÂd‡´Žæ›çú‘üëߎü‹®*ÂÆ -g%6ÚA@Éè?S -–®?öIOJ€:F(ÌN¿›×ú刎뾞ӔÑň¡`äO·JßY'/`>•Z³¸å¬º‰œtXàÑIõš"÷¶^¦H0r¥à -¤WÄnEι(ÃÒ•z•v9z»¯„ØZ,ªuMb|ŽH˜F;T9îukõ~n($©ñ¤q /¶Ïð« *.ÞÕgã>¤~ÓŠpHt…™ˆè÷i„`‚Bú‹Å였ÆL•ÆƒµoD¶™R_&1û‘¼_ù:ì^XÕ§É(kW7ZêÚ)…ýºæ= -ƒQÈp©e"~gEJJÓÁm¬ƒz¬:M<Utµ"³¬p~L¢Î^ƒšäEäö,ɸ¾í+ñìh,ÌpåúβÄvF$õ Œ|‚õßf¹)I&à$$Ímhc»ºidí/$wŒè†m½vþ -dHË o„ºMRMöyÍ9[{¼ž¸‹åÚDª/ -¹«£¼\^½«Mƈ›’×Þef¶E°È8¯Q‹lÉy”y ‡žL d§-”s¡I
OQT7v…Zë-P+ÕQâ²²I©¢r-ËÓ\&ó8EöæŽèâ•bŠ>-`É¡B <åÇF¾•â°D¦ -9-sΨÿî¹"`˜±)°cÌ‚ìàò}ÄÒˆçT8[õ;Q -ÍÉ”ÊõŽ¥z¨/-Tš‹Íƒ²B£× .SÌüꨮ<dÝ?=È3¾¤fž¨……ª421Àn@ª -5è bZ ÿˆðÒîݢǴn¨aÍjÒ„!œë¿"”EC^?ó£rPî¡„Š:v1/ÆШÑf†©ÊWˆ3ï -w£ôíÚs}¢yFÙæ«°Lì1_JÙl†ãŠ37#°mÀN*|SÕmZ®ùj‡ßÂrP,²°~ý{/*Ω•Ã -4”ö5#؇섹‚HóÀt+þk–û€= -îzª(\9ãxCðcŠ½
'*$#?!‹^±Zî›W¾ùc*F…NSÍ_„éH4éùò¬±A•8{-Ìvãmø€?â˜É,!»-Ž q6éêð&‘]ݾ™ œ‹r÷xͽc5‹ýæáïÄûWÀÊØãÙ0A -*}ð‚ijN$ëk7fóëcNÀ;t•ÌÚKL3§'ˆ¦}™Ù´è ¯°¸ÄKҾƓf¸xô»Ðû=c½C+Oö#©¦yIS³'ÞX·w‡¬·%ýn€Ñ(ýÆÊü‘¬ïߎ¬§ÑôÉg%½Å}VL3ÀH›Gk‹ŽeìÇå8Ïí’^åzÈóq_N\„žtÉ5‚«ä¸\Ïò=¥Û3H¿‡lï•›Ÿ?¶½ÿ¶=ô5èˆÕ’Üa2¿å¡Ä”©g†`içîíþÜír•çåˆóc“C5°þÃEãü‰qHÇ'ñ¾ÙÐñb`è®Y¬-O>»¯Þ>(±a¨brY
Ý¡˜ËMay.D&Ü"õÁ/Aøù9ÕÓeâc•UxŠ>ƒ>_Óú¾dH{Ô¸³‰ß`߉jnæŽå¹Kó~fè´þÁg† -Ë<ÆiÖ}¿‘T/ -.¿¼†Ë'[¹bw½çäÐsRˆ»úFôèë?“ðL¾çûãÏfàcg‰`ÕPw¾xP%ýãÕþ¶Éïª:céŒ=·và{À¬ŽVNE²Ó®ðÇñM}çÞf¯„Ý×@¢qºMÑc¿ -C}œž&[¾ã~Þ«wz¿ÞsïîCèzÃ÷ñkGñëq¯Ïch»ëæ nóóæá™Æ1î7iéò™í÷õ”`Æ|ºbúTø=Ž‘ý=Ç?‹ßf?íõ½ùÐ[Û̈3íj–oÖ¡Ü>ÎÍzÞ.ù%,Þ<<tÅë ¾Åè
ŠoPqE¹÷qÔ*?‚èeƒèïNo^Ô±Þ ÀLRôPJþÉ^T5¨völê“UݧªDÀ$ËÆæˆ=§nŸ#Åj -©ÞøÛ·W=]P×ì&úp¾•KÔº#l°|µ©´•ßÏt0CÕ¿.ißàši-M÷]£6Èq‘ņêi™ŒƒaÖbû`ma]”kõî¯I7ªì)W£˜5ȉѼØV£˜’ƒ^Wù‰žOljq
’vÖ¼˜U´I_—KŸAñàÅ:¼ñ( Ä°¦PYQWH¹Ä¨u>xa;óêmfîÄtº-#¼ÚšiÖâÒ^Ûé!µŠ‚›€!h@>D'°³FñÍ8÷¹Å¦0oôtÀ·pª¨O‘,œvöÂaV,c -:Ý–%ýB! -¦ùÇašlŠqÚ^pÝ6Š“’uWYsÌN(ï8–$«‡QGy3g5%Èz»#ø·ÊÂOÁ&q1Å.j`jÖ49ÄnˆŠªõ5çvò[^i°Öh<¬KKe©8FzvÕ£Ö¡Rð–TÝ8¦‰KËš¿š¦ËR#ú—†Ë«·¶™¹QÐ鶬ο°ä³·cGBX‘”!Õ†l{“(Å -QyÓ©UHSË`<Ô%¾(¹êASü€„WföšFZÜz®‡UJ*I"5V×›ÕX®vkÛ<¥ âUjTvæ6Ó<YNÒtõº9
>2íäQÖ,(F¦IÎVÝ:o:5’»%’þdV\Øç6›WÉtùßË·¶™¹‘Ð鮬êscÑP¸½rÑáh•«Ù’òð4FŠ‚µßd¶NËdÝ©Ö&Yè58² -ÉÓ*ªyæKÃîÕ[ÛÌÜ…hhß4‰.Û¡ë6B5S#Ödçâ´Òw™…¡.uŸ¾mË[-ê Lêî¼V‡®™8ÃÔà&iiÓ4ä¥Ã›ŸÇsVSzIg}˜æÝšr³r)+Û3ÓÙÞÔüÖCv¬›[78vZÖ*‹ÛöèÎC%Âs‘,¨käëÞ‡õz2/WQ¼/
»Wom3s'&¢ÓmI`êloÃNÃèŽr·ÅDL7>i.L™uÍs -MÛô™oN¾T¢Dk‰n‹™zËæyr/™nîpRýæm¦íj+]e1æRŒ v«üÖØöIð¶¬r'Ÿ#tÉæ朳|n¨áÐfJªqtͪ‹¨u’Æk®‹d é×3y¹ˆ±ÔÝ«·¶™¹[Ñé¶\K¼ÌóÅòmæA%™ -U…±OÎì2f»ÂE!P½¯\¿¦<¤.»($4M¼¶dâYÄ0©‚üʬž äÂôãx)µ“è¥Vtÿ2H=Í—«bêÒË‘kƒN¹±ds´èÍda¼]£x¢ƒƒ·¢9â2c˜œÏšs_Íåå2†¨1\¼³ÍÊ}¨ŒNwM;èn‰'î>_ú…P̵? Þ$+Ò@”-¦0FÔb6ÝB唳æE`Æ0»dEèNUI«Æ½ëˆß¬ðÙC†Ã5ÝèÖRwÎ÷h•¥Q93ë]‹\»9‹¦É佞¦øl„Ôá>â(ÿGQ±t„¡ð¢©Îy^¾pÐÉ¿ ÐÞ¼5çå.G§[žSE$ÑuŶ‹Å}“{ÚáÊÂ-lJî0ÕPÖ{QÚ!Å’k-
?úwP®{¤Ðâ^;P^Í/uˆ¦PCëùpöZA¢ -Ýð,¡KH4KË©#óß“ØÛo!̪Ž!ôÉ5L*Û©*) -ÖŸ¾•¡ÒVÖˆRÖzšÀ°í}1——KØŸYä:l/ÞÙfåNôG'‰ÎÚôÛ–›Hp¥ß&öÀ#LLÛ†f -ßRb¶8‰\r$"fm™Á„Ï1kÕàR%HÞ¸©XÌ:YÒ`®ÅSUwÔ »ÿÁh˜t¹9w¡Ï—ïIPn¦åTÑÏwùW»ŠÑžX‘aàD8»Jµ0¥=™7Šq4Õ"³<Qý7¿8ÅÉ,¨Æ.47Kp¹ö-ÕøË—¶y¹§ÒYýFzŒ!~w=›Éü¿%M[¥`.Þ<µnÎvÄm@¤˜bºølæ‰ Lµ~A‡(v•›sí°!å¦ù¦«"€ÇúÀ¼Ò+ªÕGÂùŠN Qv2—¡»JBRöQ°Ì#þM¢}* QÐè»g<üÆÁüqyX‡
µZ‡sD: -ÛDJSï®}«êŸJÕœ -cìÖs´°€žèq´êŨV 3Ú¹½…äÐéòQ”ßcˆ‰!åw¡r:1—n™!6¶³¥8À,].Ô(Øfc1[&Ó£ÌqUÔ -xê悲üÉúÚÓq›á‹ÜÚÔãzq|Vt(Z:ùQ6TÈL¦0]`P9¾ºäÓðb -Ä.Àøï
*{ÿ^¬ê½ž²:/ð¾Hšû‚«×ŠÄŠe)W•ºÓnµ-¹W¡%'óc‡É3¶ý -7±v‰lêQìƒyåÅƼ içe°)òÍ,݉ކyžEß´fÝÄÔNÏ eÙ>¯ºJXw¯pÒ ]ÿΆ_0k$æ¬ïœ©¹éµ7}ˆÁ$µŠCR²|hK¨ÆDWWæÇq¿œñ¤´¯òœþ‹ ¸ S¹´ìT…¿0œ[-¢%íŽÜºÈÃÁš§ƒczìØ|ÑÈ,=BÁ‹*ãícîm“8¯ª®Œ¯-.ÒB´bŠ`¢¼µÎÅÓ+T!}êŠ(ä„VËšÇCZ°®ŠHTWY‰…åË´ÒR–³Ô£zq¬XæD®VR”<£ó<•wâ0ÂT3^CÝÏ<þI}S4Ö$+Ö6¶|ýqUúG›ñìÊò[45b«³IÑÔ rôÌ 8™}¶‚•¨Ec_£ad¹x»0½Çˆ}¯It¼åL3]¾å¡t{mít# [ÃVpGò -Òà©Wô#ûÑ¿ûqÜDTÌ2 *NwtªaTíÉ]$Ußÿ0OQ}]åfº×"êŠ {ÿòªý%øƒ•AjÀžë{J…d -íÏ>7–Ôhãí3(øF¶¤?…jèíOþâ“Ÿ×OÿöËß¼ýìŸõê•~ÿéçÿô»/9ò
ŠJ¨ÌkŽÖÿÃcÅàÛ|øËÿüÙÓÿóÙ?-Ññö}çW¿xû÷?ÿÙãx<®ý -øðéºzýéB¨²þùÕ¿^0!¹åàw5wþw”ÓïɶUÐ+Iþ×ÿc
ýëcyüÅãýoáñ7ø¦_>0¸‰Š™Ø)”¿“–¦†!Zw¢wyÏVÏžËàøjíuµÔ -òXWŠï£] _*ìo<“zW–ý”M)¬öv1ñå–;ÈI<úšˆØ£ÈW즰ô£ˆŽLÙRòaìOŒÕ5)üº ŒéˆVqôáb´‘hú«.Š‰}o(;ºfW}¦²1M%E§f)LSm6•G€fž£:ûÂ5N/a"|Tn·÷?Bd=}”Èzú‘õôQ"ëÃ/îÓ£ˆïpWv7‡«¼ÙéÓ×¹8Ö£Q©•@h\3(¼–uɬcŒ×.¶}Ã{Ì)¬ -å¶Æ‘ œç!ªv<À°LýfFÊê ÄhGd@w@r#´ÙúÎ7t>‘!à;mm<llȈ¨’=ó°ìjh‰æ_àø%{cUáÉÌU¡h⤃õˆl¨‘‘[;u‘âÒÁÍäwìÐB×&ö„*ÝÔ®µ² -ݱê™H×ôdr¦”|a9S\G)~ÌÉËJÄäÍMºÐ{{”iZbcÍy§îQÀvF†Òš^ÞŽ¸|oŸßž×â^Ÿàá‚«ý;ëà`:œîûewÛþ<,‡t- )›#*‰JTÃóL+.Cvœ÷\vRv¶¬ÎëØꄾövÑn6&®DÜ+5‹£{ª†pY#¬B¨Ï.Ê%ì!¨ÈD~̌Ȁ„ÕS ¨2"Ò%Sb*/>µ”ÚFGôÛÃ#)ª~…è͆ñrwuŬZ‘`¤d:ŸÆðåëɼXI¨)%½@ß¼¸OaxS)šõºdœ&go>Ï$ª'2»“yLp„‘Á·E ô\¨"9¼ªrÖtÂ\âé:ášÂZ5:ÍR3 a¦]4ÔåNÙGl})3…B1EÈ@`Q+@xvhjºYþ&Á ´„09q~`ËE¤1ÁY °s §%25“.Ò= ¡7œiK1‰å`Qµp<ÁŒþ‹e>0Èך$ºâéÌç×Óyµ–Ù™¢^ˆ¯^ܧÇ@¼ï<÷'x‚mpÏüfbL~q=10îËþ´æˆA]#ÆrÊ&v{Ö@Ñ\3:Ò«¥$· $n›]eˆ*®2h–!ÊÖ²;ÓÍ
’+C$»íIWC0·‚¯ëQ&0¼^*ÛÇú ¹ÑÕ
®‘s½Ã¹Zý+{¹RI±Ž½h9(¬Ñ⻫¥0zˆÓº i±NáØ»¿{çNZêìÈ͉S‚úõT^-¤.¼<_½¸O|$i:çRp°sռ€4£§J’Ï )1#ù”®ËdÕ:HÅç -ôQ -ÒQiõ`ÜDŒñee*¹?·[8@[0!<¨úö£ô™'~;)f M*KÀ…¶4fJÜnT8,óPå>Esó—6pÄY½î¯«Ž›æIýñv&¯–q^z‹_~¯_ܦÇð»¹t·¶ë‘½àîW*’e£{¼ÄoÖ‚˜îE—vJ(@¬cB1PÞ&õò’î#ËˤÊM8Ìb‘×$±€^¨²µÉ¬Zï -Kc„Ì -©¾žçÁ‘Òá4kèA%‡X/îgH¯åGK–0]êÑ %"ð@ɬð_¶ÞÀ‘œ‹ˆ¤ªbw&‘]*31êh°*yí¨>ÌÌÄCnÁ
HÏË÷gë9ëã-g›ÍùZ"^sA€½À²Œ/âfEõŠ‚YgÚ@5ƒôÓ†¦%’ÝF&ÅêKŽ¸ÍwXÊö9j¬ÝRð'»ÝÞMV–ºøå»Q#2G-S¯í–i›‹4¥@a ´œÒ/–-crsVÅ™éKÎB7RI$¦a »`]ÍÔì‚‚[ˆ¸Ô,ßÜ3QZúødăÑ3aÞJpj¨FŒõ½Æ™Q¦\â}8Û\Ë»—ˆ_²é2Ê3)dü¢Ö7ΆD•¨Æª+ZøòÙ
g™"oT¯'ŒÓ$œˆDsÕX䂇”.-¤¾«³:@K ÈlcÛ<¸¼`´k$$øò[WTAgù7ò*ŵ˜2QÀ{;«or`š«y’ÕlªËàWŠ.¨,½Áö‡råº2T~†ÛH|¿1Öúµ² -Í¡¤5FÒ20'ÈŒŒóPä«ÓOPÈç$wTâEø·¸šä»rSG4l,ññ£àŽ[í»Z%(ÔåžßiybalBlšõ*Gõú|ªSÊVHÐüqb´`Šdc«™¶3?6DIÉ\¬4d -ÅÊÁÞ•¼œ~-ë¶dš¥´¨4ÅwÚ&ßk‡7 ¥CÍBÔå¤Äqˆ˜¨8tYyà'4ƒ/· 'E¦Ÿ±GÐŽ†HƒöÇHŒIBy$™*Ü’e*m%´ìÌÈôŸ‹Ñ[+¯sB¸†ŠðRMΓ#³ª‘ùjBlÕ“8.Lobî}zÿVT”ô‰bfªÊÞ ÆÌÊk†S›È@˜OÒ^Ôœ*ºV¬x)0LH‡(µ20$Ÿ3Ñ
‹þrWA*|WJ°]#ŒQsr‡ì:Ô|MƇ1æ©xµŒ{£±&F˜Å#fÐõи=ŸŠ¤YÐ`Fýx»äsæ4™º†3H6É];<éˆ:ƒe8Q¬Åºáe:^pð%¸p*æ·Ô5(eDFT“8™%ʳ¶ÔäU5Vg'ñ‹Ï Ét¶ol‚‹£2p]™¤E{SÙÙ‚]¤ï‡?[Î0`CD™/i"÷›Õ8#ƒ:f -1b‘^¨îyN³ôJ1˜w¨§ø
:
æîÉi,ÎÝõ³9íŒu‚8‡^Wån&õá›ðIbŒ$“ -»ª5ª§æÉÖ¸–õh’vjv;ÐPÍehMÅKÉ3!= %—7 ”¼ªà -šªú¢5DÀ>c”ÐD;¼wÃ6ç˜É1Ö“±t}6IHÜ»d¥•bUXJ³†YŒ]'€Z#ä©$ÌÓ×ô¹¥ðiŒÁ^ -ÆJ»w)V-Äkª‚]…¤ç£j\ÍdN3®-nVåé>n½1ä>¦ µZªQÍY+ÝÕE„²·îŸopm/,©>k>nöŸ`ì&Y<»$qÃHóJN’€fïÌÏk8žÒÈqb³¤b¼x—5/š[pOšîPÈ›x]ÕÈóx3OwqeAváI©%!À/2±H1?‹óÓ£ûL1c¯µþŒÇãý">µPáó1ÄíÞåg¥×¿t÷g V½inÕ#ep_8³6ݳ4<n^å}3ô-0èE5ã…ÕãLó| ÕJTË.ÃHM×EÚ¡õ›ºµêm†àû'ðÁS'§aËì:蚯O(ÎdÍŠ$.™5V•4Àc‹áúEž¾;TsIéš:mi [7Ú4ì’a\¹Íê9V5=dd–‰û3fí„—ÿf„—g¿[ïå¢ñÖܯ՚…_6“ð‘Ì•ð;ÂoiWŒz}‹=bößúÌ¢“$›÷’wAzÏé{ø«2ýItÅ~Ô}‹Ë÷ù¾òeÚyaæ+½Ü„/s]ÝóL™×ø¼Bgÿft~›ýl~{d~{\þö;÷¯ÅŽ¸6(¢“d¤f9¾8AŠa²á -9'Â4–Tùn(f²æ}Z‘VAë¸HÌï.“¹ë4‚¸³}lMeæ©S6nŽP¦ú$V/²‘'ò1‘íþtÕT«mÆ4ÍçÊ€®Ê¦:ædXo–c¤ïOí¾È›g¦×'ÿ†
󃬪ïÑ.XU£È|¶þù嵘úä‡+¦¾þ3ÉhÏl¯Î†ü”¯¯˜²YS -ÜB0¤–†¼~µH6JîÒz±eyÒ(»"®±à'w -/êc\AºQåUû;Ö_ƒ•™"·å…CF -#·*7ûo{^ý+ŠÖoC…õ#D^Dþî¼Ô¯g*Ù×üBLgY^ð6žÀH´ õ -C(pÆ@x#ø@1BàümÙgž†R)íâ²?œžøé#áéãáé[/ÂÓ·^„˸záÛ9ÏZˆÙÆàÔnæhâHg=d[Z²‘jcª
érº82¬(˜©º¦U{©>ì¥È”úŽclr„—_'nâl°9'F˜ô͸¬4¢Ö‹Í’+9Fª#ôã7²eÊ5™˜2•ÙYg9ÆH^E‰¦‹ØzO þ$Õ_ãûÝiñ¯/¤À¿<{ú(yöôqòìé[ȳ§½¨MÆÇR˜íû€B«À&ïÝ
µèF1›´ìIhD¼‡Úô±–‹Ð?á i·¬kRÔ~ØÔ12tEÙ¶PÕw%TVrÏÅá"€YHÜ™äg‘$'˜-1B5‚Ú"_`×AcÑ…:O¤Ø‹:é³. ÖÔň[òcÕ¶h€·#ä÷$÷bÜ9íµ6M.µ’U8/‡sOd0•Ú%›Î‘¡b¼]Y[¦ÇV›–½ÿóî5b„Lͪš(²Ià¢Ü‹V—¬ÑüþÐ5R\’Å-0ÖüíØ1œ¨`3æk˜\BR±ù°÷®^Ô&ãNli§Û"Ãò•¹
.ö_1ÛeºZb'„2„ò™åÌ!„kì: ÌÕÄ’®vB:ý_Q²A
ÔŒdqD”kd¦Äï,¹ZëŒöLnVKBü2)d„ÎŵÀ¿àÚÀH’£îÎüj‚³GCì+†& j9ÁØ2V]&M\¬ùñz&¯Öp\\òëxf.îÊvºi^òȱ:¤F–.R‡¦”Q”€¯1ueØ™ÞDA€‘0÷鳪ÕDb€©£Â\öñM$uï6²d¸žS-í‰c&X+J#^5+r•v$3IDiز+‚dYÃDÏ<#]1g ¶Ç›¹\Š¥L·¹«µÉ¸‹Ùé¶ìÒþ…©Ð@)‹ ~5)ì€3?™F:le0Ô]®}Š¤’@Fa؈ â<|à)A¶ÆL/ï°”tk“$qسc|‚iUg¾)+Lz¤U^ÖØb2 -äq;=©hãæ<ý û2¤w+)8
ªÌ\·NI’úPŠ7óx¹„j™ù°zõ¢6wâ+;ݶe“ÛG -I ®'órÕní -‚eâW½Ëi1eCku›OX yZ“µáÓMf¹M¶:ŒýL²uèªe^ªÓ’Ok˜by`½zQ›Œÿ¿½oۑ亮ü‚ú‡z!ày(úÜ/3OR[d´`Ccò‚@7{8’y1H a0ÿ>±ÖÚûDDVV“,%G"»°vgFFœ³ÎŽ}]û6Œa§dBÖ톥XBŠÕlWóˆU¾ÐÄ`cÚÖM†üùp -‚‹6š"뮫€[®[9QŠ&D4H3N-…hæ¬éd6±ê{ƒQ†™œþJ)âŠ.úgåp«ëd:ñ4z›Í`ôŒV…`º\3"rIÎ^W…ćÊ*SnÝ(#’4e’*¦~U*îrˆÍ:ÎóÇÍ;ýû¾ý¹÷÷æçç´¥¸¥ØÑ´†ui0ç;»-ˆE2ù'YF0¾è[÷æJ²%SfV Ô1Òóö9¬0¡eÓÛ±yÐŒü4ŽªR,1eIcƒ¢¤˜É+„OvâóØA˳ïâ¸Sqÿu5à¬iðᨡÆG±üm1?/Úø@DwK²˜Z˜RJ–Öhªv -_fä¯ú°
UÉ#
í -òXÃU€]ž¥·È~NåL³§ï(Ž5Ê¥!¶µ[Ë<¡Ké¯(ºŒLþ·á;þê%]z-j•9¦ D"€C}WÙcKP[öF3 •jÙÇšbM®Ø3kïæÜà -V¬Ä#‚
Ntg¬M@™³ÅûG[z’1Ë0å2S–Â\¶¦·ÙvõÂa䛦C6J¦ÒeègK6ux©¶Â‚Û3'öí [F'¥nZb¯èÑK¨ª°A¿ÊMªâB‘§j5i4o´¢Ò"N,z¯ÏÛÆJC\¨ÊÛÚ”ðVKÒk²ÃTWè>•êÇIŸÚLÃr8ƒ—[p+Š2X U‡-ŸéáU—ž5bì¾™½lu°œÁ˜ÑßÍYE‘hI–ÅŒ^33mûÊ"Á‰²8 ëmh¥K¶ÌYS¢,y .j2eF^q¦7a"¦Éʵ\ˆ -Ãìöˆß34Gž3k›é>óT»ê®©ÑSõ`O›.#1Œ6¦zðbç•ø>®öî/^;¢+dDÙð¢Ëâ‘Ћ6žkt+ Qo’ç"²›%íà}‘«ðÕ‹¸äg”e½ '¢hJŠ>–èAX¡V)sÔ‡V8Ì •¼€BÎqPc®4^¦WäÛH¢C¤’´a’>Ö÷\cW¥ª»ÍÚ±ŒU¯3uX©^Þ-ƒ`ªƒï•²ÙÕÞ4)šé±yªžÊ
QFRÈÉ=·éFKÐ+ë¼–7bçÁ-·"µ“§¦/rùhö~¶ðqµ i«çè”bE4Èɪk7eGF„ -yQÖ'2ñ~åÙ„ŽÑÌbŠœvbµÛßÆ°]Ŭ’¤ú€Oa<W“œÛ@îšÐتän
¹ Õ‘4ê¤ó -^O¾€aì@P'Nó"ñ~qjæöTŸDw„ðjØŠ3®¼¯Pž›8XÃkº%YñÒ”¬AÃ,ê¢ÓÅzX¶ß3/Ûä2` µkIÇlk§"ÇÝ®h£¸µ¼”¬ÓIJAbSß‹Í—e‹ê6H¸f»Mc@ëߣY\bÇp›8]qÀÞé¤ ÁU?„à¢Quü‰T Ï"ybÚ‹I@jh¯ðV»}Öf:yZ2»±æ•žd¢’l(êlöV?~ìg3Vr_‚i ”Õl²¢Ýã!i×®ž®o9$KwnÁà -òYð"Ã^¸ÏÚ„7òÂkõãµRÀÇO¤Vëol£
e7Ÿ›(™ÿO’©Ý„—~üÞú{ê³þ7ïrÅïÎæwãºö›+osøÞá~ ¤U|ÚMƒ=EZE»³ oU'oÕ ß}ß{ßyßwß’”ª‘Ô׊c“%Ô\FJ*—RAXd&ã{Ãzx‘ -bpª²*#( “‡Þk¨s‰^EYL¯{qMfûsæ¤ZWªòüì,K#+Jê~µDWÕ°’ïR¥^ ÂÀ/r†ÉÚ¬BšÃBjÖ£q‰L…aõÏö¡bÖÊ÷{> -ÐJXW͈dÓÈ»›ÅèhzçnµúC -t“ÙXjJðÒ«µ—jNë?m–ÓAÀœÂQÀVÈWW÷ûc¤ú6ôK¯z÷ÁO~Q÷³Ï?~ýÑŸÞ~ùð ¿úö“ßNÉ]4¥%õ•î±ŸÛâv°T_ÿÛÝßüÿý -öõSï¥_ÿòõ?ÿâïîÿëýú装~·}xû—“Uð“í¿_}â†ú»gSC]˜¿ýÏ6Ñ×÷åþ—÷¿ùm¸ÿ¿ö«»‡í"jj"4Bsð1k€…S¢šëäÞ6HÔHœ%Â$[ƒÂ5úô‚ÏlT~sªô -ÓDÙªøѺ›’)$E´öÏ¥0ÐÀSW£ˆCN¿ªÏåq¸9]͹õõ)†©ë‹²„¡CDJv&—âsÿŠ%ªjY¸q¥ÀÈÞ 6–ÄŸb;%KV>0œ.•‡YìûOºhûfŠˆ¼µÃÇâ2‹í¢ÃoîÂukëbûí?zÌWß°¾lÿrwm#®n×嶾º»¾ý@òL¯î®‚î4Ëã]¸ôÇÇá -–.øª¾{¸ìv/°ûî°ûùiQpåV/€c³?= ÷ô( -šÿyågÞ<Eß<Eß<{Eß<Eßܽ{I®-Ü>\Xe¿3„,”£h³z4@&öP$ÒØNSB†Cx -‡n¢—J:cÄÝ)ùñbvÃèüP:€ÏÊ9=.ÜCÓŒÎqËà³ù?2VƒDZ³€ANâUþâ@‘T`H„Q„'EQÅq‘S±…Í«eðc%Mdi#òjãÃ7„tšIq6Œ¶a‡L-NùtðÈCú´/ååˆþ>Vz®.|ól]øæÙºðͳuá7-‡/Û>7Cy¸TÓa1¥Âv:' -<Tì:AscèÛRÄø)ï"ÊS‰s(êÌ9J¨ý Dã?3qv1ÄÄÿ^ß ˜¢í€È˜^N =Ùa\$'a*„ãñ¼ok\ŸP略»²$Wî´ÀÕF³B(4Tn.ÏM³“MÒJ²ªœ4¸¾JӱȅÃ8åk¨˜§ÍC‘Ǿ>›ò…‹CRæÁ“E‡ôUô´uÚœ˜éJæ…ázŽL féǃ¿§ø¤9ìA3nª‘N»š«jJÅÕÙ3@ÿÜÇ<5µ|ðbº³QTʵ2NNI)É·]“»ÐMØϯ;hç³MrÀrM¼—ªîñrø²™ªû.D±'s2fu{@ا]8å"MEH*fDŒ
/ÊÕ¥4›s 9¼¢mØ—€Gu(Ãú&Gc@°rEr:¨Ýæßž„š-r¥R/¿ú¾ë¸+Kreáö®b[ÊA]Ö¬Ö‡Ùx$n¤¨ÓŽÈôv»Øgx÷…04ºK…
4ñrŽMã½ø¤Y,4¤º'ÃD5ØŠ“3‘¢mM¢–íG9¦”Cé#'Qvi0Làü¿Ìihž£(;¬GÎ3^Á#ˆ9Ö9’Bïñ‰¹<žª*xÑVO,‡/Ûs¹KWB·‚hk äÜ7\^¹vØM,Œ€õ”8äª4ÔŒf¢
àÜUVó§Yv>x`v`Ê,åW»Ì6Ž5€ ø©i†9Öí$
R{ÒH´ARBFÐÈØt~¹šm0î(3º¦¬šAÒ -+Š))¢CQæ®°"ŽåOiY#êD%1ör‚kQl;Øk×ðÙÔÅšÂtäòðL_WÔÑ£p§g;fëðDáláШà’I"bHI”Ç•T<‰woÎÒ -ÓÃu§ -YÝ©OY³ÎÙeN\wºáÓ†Ò3‡öâÖ––ýåAÿ è%váºÍ¢q°"xØ|&rÑ]÷t'pÝæv#À¥H³ÒÙàºDä„ ÔcŒŽu@„ú”¼6üf%Ãó=m¯íµ¦W)Ï$"1`¶vÔ -v¡‡»x -WV~aÏ:¿¹ÇèH/œŠ™4K× ^eiÞòãÕ½Ü]V>¿`ýújø¢Ýˆ8õÛîxÇz¶_—B3Q,ÒJ‚ËnÍOLŽÀi„]ä¨åf
5Û…D¬ÇM¨Šì² 0EtcÐÃrE¾MšP-øK©{_)Nh°"¡Oë\9Í‹ù~Üc©°CjKAÑm¬&VFÍØH¦qËShBô¥3™ñ3†Ø†8Ü»RÇ:ŽpŽºÚÒž·6ˉ|Aú“ËaËv#ÞÕÓ…Â#uÔ†0<ŒªrAݦöjˆ$=ú¸ßÑš‡j3z=!—9 nS¾a}%ÚÝ>…qι.ÝÌÊ^ÂŒ¼¿X/"êlxÞDÁq«§7'ðA¯³›QF7),o}Øx3Õ´&ÜѯàlåƅkÓwõ@ÃÏiv™wÑ(ç9œÙ -Ê÷¢µœ)Þ_YÞËý%'ÖÜŸ\[¶ñ¶žükÆ|îhPsè ÷Þ4:KVôjp6(šmb<1îe; AfY1 -¨ÚeŒµpãªøã5í/všñ¤y`nîµvƒ{×Û*wÏî°Ëœ„m`ÏZµÒÎyM_ÝËíe;ÒÚŸ\[¶[°¾ž®Ê®V‡úd^!z¦Y²ÑMÔ=7õÞ;e·˜
<;õaæ9`Ũ“Þd†öD»Xº½ˆ¬LEvbb.üERjëC|O %¨*<uÏÌ ¬Yϸ¶µÄ2Dö&òÐöïc&{
ž04Pg¼XŸÃ-r{Ó]JÙÐÞUvÊã$ˆ;¡¶Ò•¾Ü^ñ;½ ý©å°eû³9cO®ÁÁZÇXSˆBiæ‡ÚøNÎfÓO§DÎA`âMniû0£c¨à.×hÎAL3cM+Ïj™å2i¾dŠ` C°)ÉV÷–L€|s8Ažñ˜¼‹Š¦U€<%a N“dÒä`HEÍp–¯ª<Äd&³Ÿ½Û)¦)jP¬©‡± ηÃ,dÉu„+”€ÁÖõ¼Ÿh•›/ÊüËÁE»Íìé²Ó:b r°ÎhÏšÅ3b˜mïw¯©à[$«Çp”Gt³ã¶IëcÃy -Àõ*õ>Õït‘ˆ”b™´hÎçÑ|2$Î[±â úÂùÌE8æ¹F‹ –®ÂŒ2²f⟠ÎÑóIW•AtàœHÁ} "Kœsüu¹q¿1Q¾<:÷6ùKàÑâ^îmª¡¾@ýéå°e»
Eíé¥A¢#«£}[Nq´ìpä ¢Vê*V}*x˜_ž‚#¥==Pædº9jÄ:Çj²xì‰ -êRº•±˜ÐQŸ›ŠÐ_JS¹ µ¼ïþ~e¨ÊHW FEétMé‘BµÓ1²ZÆZ–(þ¨Ö lÊ,kP”Ýø˜‰n/ ðÚé~¢1fE1œ„®U.g«Å÷rsÉ›û‚õ'—Öí6ü¶§ëö±×ÊQSóÇš»Ÿ% ž7‘’ª±·¹¹^/³I¹™WŒW pc™…Lm‡›A¶(b p5ån#š‰uáÚ6Äz¥ÝÖÜd£“ó‘ѺŽ -=Ö8ç¤AÓ51Šñœ
‰aˆõV -f\-ÑÚñ"Ôaõæ%b Ø6õîëEX倱ŽÜÜúb¼s9lÙnC{ú)–‰8ÖQ*¥0ZYÕIÈfᯰ>hÙ6׫žÊý›rGUøӋ߃ɡY~…Ñc\æJ -ƒòL`,ßAY!/ƪ´ÌÎT -L“¹ÜQöèã -GXœ]Šq„¥™«À-Õ²j‘Cª‚qÉ¡K1NöM!ĘŠÃ¦y‡ª(‡˜Øh§j€I8ô &úªýžÊèDØ°Ô•¨ý(ÍmÕ^²yšØlTz1NIA Ê*8ì˜ †…§¬tŽ#!xzüÙX±Õ³‚ k'à%N‡ø±A±ÇË—4!sòÝóum¼¡ØÚ4Ø,‚VbÓòáÃúðx`òŠªh_U•ßÑn¤jb3ŒÈÚc¶z¸Ô—M:jcMƃ(€ÞŒ‹àdA?ßÚÝò2£É»ø²d4F@ÙµxC"EÓ±8èÞ•¢q6€|Ž{©Z‘SÁl „Û’Œ`¾²,åYâY€òW& -/ÁtþñgôÂ&b"ìÊ¡€g‹H A#2êîÑÄ”«r$»nO,¢‰s1£®ˆ±¶n/–䉻ƺ³Î40)´¸9Þ™QlÀ¢Ú0,áÿÇöD#‡¤áÈÚ"˜S¥?S.OÇ\¥QÛ{¤™FŸÖãµ³FÂ÷xyoD¾ËŠó!1Ë!IݘçGлR³'ß2?“lˆ‹zxPƒX²Ñ¹òŒqrÉæ ˜ß,NÇJú‚o2BÙ£§q`:ù®`(ÊŒamº]±Xßÿ¦õIžaSá -”°(%»$DãµPÑH–…/BICMïæ4§E>˜f²tþ0Q[^E§Æ -jV¶S@ó1j4ÍìÚ)ððU³ìœŽÇ»²ç¥FÇ -‹Yâ(r·«ukj?íÕHÎEÑPT}@ýl`y±ªq3ÁFtóí\kq®oŒ‡‚Õ1ΙŽ¦?dî²6KñVþœ»¬Ö3¼DQKÇÀ@èŽÇ¬‚±/ÓÝYŸâ2~WŽúgaP4’•ÌDÖa>^“ÛðqSßÁ¹£!†œ÷gwöÞ²‹k-fWdœV•õ„v±ÖŒã|c¼ç¸ÖhZé§Ä -¸àÙØ›éb‚4ÿ]æ黈ôøÊ’0´“-o «Ìzü•i¼Ïû]ðß×m®œžåJÿ¼ÇSüÏL(ãÐü8øŸK Ãý¯.ÙŸrw ÎïÍïÌïËïʯÞÍ
MfèëTØ´+sc›¦ß.Dme›æ^2*¡”lL{Çg¨]dñËÞ?‡GU|EjnΣlËÍ(.„‰;¦E‚ÔňԋSXNÚD«¦1‹õ¹õ~±ÇO -Nm².3Í'agî¤~¦UŽ;9û1RgÂÙ¼Ð苶²Umÿ' Fò?ô6ëIÔö’Ž%„×ÅiÝŠk!r‹Ôu˜§_t‘Å=]ŸÛoþ@qùxþw2ã¢àg+ -…è îÙ²Fk'[4 -ˆ-0ñ¤ÉÃ*yÙ -…Y-2°9–´b -,pL©‰<àð“—·
hÝeeñ$&Ù¯EZò‹ŸLu¼5\,ãýŸòiÒß+‹a¢•4?H2?ô¯2êÁtè"Eƒ¸:9jZØAäwÿêî(,6¤m]+ÅË›—à•™¿¹?ÓmeÖe–äðk.ÛoÊ/´nüâá^½sl™þåîêš_Ù˜tåž®ló0œ!óêî:°®Âïñª_‡ó%æ/1sAîûÝ8Æ^€õ¬§€õó#@¦’!™È¦FfI49åi.š¨aoÕ¾ôiÊU×+im€öôgýt'¸zsF*ç—Ÿ$ˆ8?Á›çnÓ›çnÓ›çoÓ›gnÓÅÚ<^‰ËÕ:¯)3§ª•½eœJÑ´k±ì”¢”V¬}¿^²˜Ã,Á$¹Y™êŒ%ú‡êŠÒkˆàPdûSõ¸ÃrÔHü Ηµþµ)®nÝ7õÅj4AÄH`ñ)QϪ·æ3×ÑhN'0/&Ãå iÇJ>€¾ˆ¢‘ŒÃ‚KH‘ÿêå±øô¬6.ÖÜtËŸž«8ß<Oq¾yžâ|ó,Åùæ+àëô|f¹ýBI_×Cœœ¦åñ©_F—2iÖE7ûwH´H©!,M˜&yœ¾Zf5üv»{Oä1êN@qV;!¹q>
ÛzdÕâ1m¾I$%<ßÊ7BÍpäawŠkHbÕ~”ÞfR*š½-7Øi[É£µ)»¬OEk -‰‡ND©ÖBÊÃÑY£”xuö°Éörà粺zigG¿ZkVzéHÀž9Zˆ$gnq]…´Cc‰ll…λ`;ÆfK¢CaH.tñfŽN¨Ù -•;_^üQ3C•¡H¦çX,¯tfÁ›ÏÒ¥6dt]f×…\–g@<yß±ž` ->…ѹb<†ØØÞöâð„e«31Kr¼3yZqÅK2sª -‚‡5 -RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æ䨢pt/*®INGP”JÒÕ6Ãc}5ç:Í@)f¿–ªc$NÑG‹aÈwÍi„_Ž|·³Ü8k‡"6L!hX5e!ßR„C3K¬—Œ}9LÌkˆ9¤[6¨¦fMmÛeW´Uög§Ñ©ÉšáXÔg¢\LÔ×Q`Ó…¢îÁífo8Ž^ÆWƒ‘"¹ù«§&g?»ÍLθhy×y5¯ÚÃfžd1=p^µ[±EÝÕ#âðÖŸ‚Y»uƵ‚f|¯ÈüÑüF§Ñ1>ÅÐz€øÄðt{aG¯NÅÌè<öH([xùP]”¢ãX²/°Û‹.L«nÙš}3—õ9Mp^Š?ƒOtÛ-nÓèŸ9ê‹…ëªðÈÙ+ÆW€9Zëev+úÞï9ywãi:Â
ö~žûÌb,º¦Bmº‘‘I§xÊÄt#c‘7–fu[´5Í©˜ê`Á}ôÏyýfV3=üªÙDûj³N’fÒ+T¤ßi€úç¬8²d/Ì=,îHÀ¬ãGVc(‹§BJ‘ -Äø… +Ù»þMˆØ»Ï>1ѧjJô¾‚æ^žWÏ«ßÉaòúë-5þø¼¶”&!E7}»>o5Ò:õ5ìëÈ¿Ô—,õ‘¶LLLŒ}BbmÕÛøk(ôS¡/TÍMÛ¶Zx£ôo× +»Ô÷AɼMr_çvòâþ=õòÙ뾑cqµñþõSqþèÿ½lcZ-Úå-'ú`îùDÍ<ígÚ¡oÿ¾½OZ¾Œ}šŸ—Ì;ªÀÙ¥>ç]hC6&UÿÜ……˜sÑ¥ªýuÇK&?Ñú‡J1I—-;þz½aè[ˆ¡Ÿ‡¬»¼†>J^@ß×L>T‰tbé}deIhÑ?O±ïb~?Çþ[üUÜô<Ò¬dQ«‹4Uמ— ‡„{/ï÷¯¥ïÇÐ?Šc2}žªç©Ny’Õ/Eöiÿf½"“ +µ/¿ß×Ò§Àäú<dùýàe…xQª}ß ašd«ðúKý?Šì Ðû•ú¬ôôõ³ïôÚ7ÈY¡_Æ°Õ{Û©HÛÔÙ‹üX’µ)¤’ôPTc4?çôÕ¨#hÔŒ^åý>™I~©¯¯Í–[ /Á”„Õôãäs÷_¡êYï[R7F™¼Î [èÃ4a•¹3"ú¾B‘GÕ÷p›˜'b¿xöûÎê?ûšþq'¥÷/tºˆÅMÉÒýH÷ì>U—‰Ý÷ÅêÇçä_ô·¤ó2MA"1ç7ú ÏËy M ›¤ŒUëçÒŪ‡¤óü¬<"Zaî¢v6SäÛõsTo©Ú:oKʦ0U='à}f§ÒEì—¹ï¤V*wQú%1q´}p*ºzZÒó“ûò¢‹Ü7«Üº7ñI®Ÿ>»R‚œ lfú1HÑ5ë¢óÉåAÿÂY>k?9{ùT5¶¨›9§ ó¥ŒèËÑrÉŨ'¶ó„~ó6Ž¤¦N²b“·ÐÙ +̈eçšt»»É79D̆弴–ô`”>Bë"÷Iþ†Óå¯M¿r*Îa¥kÄ©ÚÇèCoÅGy@GÏG®Ìa¹_ï•™¤<ÙAJÓl%C±u@ë¾ë›°bÁzÇõ~‹×}RKµµHõ¹Ë
<I~î[-7e´ñFa©]–¨³½ý¢wñUÿçïýŸéäW¿>ùÇÿ 1êû¹,µ…tßáÙûèì}pö>6{š}Ì^fïã²÷aÙû¨ì}Pö>&2u‚U‰-ï½h“U@Ô³ÑÅœ>r¥Ò½ûRÉ9åAcäÕ>H"ÔƒçäJÌ"“¿9F•+»¸¬—89í¥ŸN£úìôž|Ö«¶æI;ˆAÞú½°Q¤~ÀTŠìÂFáåP•TMA;qAöné{¶Lºò.{„©m“Qôªˆ‚ôcÑc)H”»w:´¾)ŠJhýTuI†ÖÉ] +JöXæõÖºÎ] ñ¾é.ä&o@2–.¿’ÌþÒ´VŠ:¹Ÿé]#ݳUA«‰¡z!F:€/T ÅW!³4Íý’ޖݤ;\^×úZb’˜l€^Qä‹ÜYwÚ‰%:]£»jðRÉ}4^ÛÖX´ƒÉ5ý ʸ;×s¥éÖŒ¹ÿõBå·~ÚZSazÔ§jP½Ë†
Ï"<^/1¨Ò<y¿Òô´O×U<Õ”û'ÀÎix¿s…\ðå£èu˜BÀ–VE™ZvÞ¯D—£j[N´f&çxCvŵ¨[7¸âU(MU{e¡ÒɪA;è=Úö^uëöëm‚T['í o}]Á\{[ÑÍâóI8<)<Þ©¾ú¿õ˜4%nŠE—€N~¬~Y4¹c:±ËÄGôýTµa%-ï_u)ã:,‹•õÞêD‚ö§ «Lú>«Y/U-¿¼ô›Ùž ÄÎu0ÙœjBe2=8êÞ;°¦]õ…¶=^ ´è±¬¯vÑŸòN.¿¾ÖY.¿¾ÖX«~cT¶³2©.,|ÐgÑ«Ÿ¾kÅÎr©â»Æ~ÔµSº%±1œ w@;^Š>¶2©^MwKHtas—BÖ…ímïsbé +ÉüQ*#HtëƒáO^tÙä¡4ÑE(Èj +b°yñ>~(d¶09çõNå:bN)XmDª"YÍÎ\$ÁMV±‹
“KÆ7«>ú‘P1Ø·it$² +P¾TSWF¥Û.Wta*ŠÑ¢*Ã}°7[µBQi%zˆ0‘äBé ˆÅƒÉʼní‚D#µ‘QnJJœ¦¢æ¤0e]pÒloÙ>îœô§ú¦*~i}vÁLŵPc²×¯*ïò‰¼Ö…Á(B†‹^MS‹ï[Ê9±01&Š¨zw'B‚ +®_Qòbµ™1’ŠtÅ¿T²«A‡`Ô.qö¯¨ö3çD +ëMû¶Ó)ô“@,^>?Ùt]ß=³°k®ØuACÌ‚B,Aºð¦6tá
ãêr0®¢¶¬¶:lðNìŸB‰mRA4Ø2ö–
œ#°]OÅk–@dÉ»°ÈG¬o3ÚòÁú)T:m¸X¼š”œhdbý4ô“ÓÀRŠìÏ)•(!5«’†˜Kµ'éÌÈ„™!øÞU”³OvÕ4©«69x]T`NÈÚHȺ¿‰šrjìb´Š +D®pÐ^*Ù{Q +«Yç +)Ó"±Tž–¦ÊÞêïñ…ªà.ye©}õ¡ dú^v"kBì"‹vá¢N¢³¤¡Ua#«ÞÇÅPˆU5•E)Ú6ãbèk•Ø5h +;¤†úfnmþ¾ìCR#…Çõßj•Ío¤øb˜‚Ú$]Êa*ØIÈ]Qu©O¬a’«‰ïf"ÒOÀ‰c±k“ûŽÐnIG‚È€[¡/b›‚U¡/“¼ÒØ:/ãÄúåIqs¸îœÈž¾ Ÿ—á'‘úæ¯Pc‰œ˜svr¿Ë<¶§ˆ<t5GlÙ\Øz×i¬uà̸‰ª¾È†”ãˆá;3Udzbá4x_dU¶¨Ã¤Ö—³ðNôapï® øI‰Õ‰rWh÷zíw\îÌ¢“HðDœxw±ÿ:ŽÊ-mf*0î°NÌrš=Ë«P°Ðúñk5Úû]€Wïçd +ú}4/Ê1Ó‚7=:O,Ýt2³!v}K‰]Gí¼‘ nÖæ wn6ñ@drò¿T²â½ã•‘ÅÕIdµ±4%†(¡£‡©%myH“jæðjY8eµ·Éî&1UŸ²ÚÛ÷¯Ê¨¤‰”Ë–µÙ— û€•á¬äiªÞÈ]óÐ_#˹PÉÂÎ
n,wEלÕÐÑÇ[Š:è›9ûfàSìHßÂÚöº¾ÄÐ[V"é—è ‹E*ÁG5½w%»xq˜““AÄ“NŒŽÛØ¥ƒ&jŠ’E('-½É§ìû¾x¨î½%¶-E˜@Kg[$ðªm»€%“'†%²ëMõRÜåý¾¯sÚÎQºT#ÚJßö“žllªeé3„ÙFä(–{²qFÝ_ì±.0C·œ¡×¢×8®6§UØLÄ#¶ëp[€!ôŸèÌKUA7U¨Î¬ÊeÓ—A; ·JÀELžÑ‡û2Ê$Â+é“WÇZÈJtª’3·trß·EÈ•Ô—J®©öÜ{€¿æ)‚hŽÿ +ôÿÆÈfA§^<^ªµƒ
™Tm›y3‘ç +ýf±4± „Åc¨¹ld2mñ—JÕ‹Œ.m‚wV˜,Î3!vÑ
A}‡fŠj…ÉY5í"û]ÛªNÞ[J¨¡½÷»ÜÉ*ö Âé5AÌ‹ªyèKbhèL`‚ìÇKÀwÃK%×uqÙX Û™õp195óï9Q
Hv²š¬V®¦™HõRÉ1W„†`3‰@ã=Xz©gªsA•Ÿ\kˆìrÍk‡˜Þç²P—Ⱥ!þ
Ȇ˜œŠ¹Øt)dU>’éáD„}ýÿkÆ•°²8ó€-…—÷·&ÌߟÁMýÓýê‹W7ß\œ|q{÷çë¿œÝ}wòåí»·ßüíææê×ìÏîðyö™K.ºà|gÝ®¹ø{·ú^žt¾Þ9Mù]gSy\ømp9=û¬t1¾üιgŸ}ý›þS+Ñ´Ÿ}=#y0_ó.^}Mã¡ÐÈϾþ¼ÿ3<ûØ_=+æˆß-lQ/ðØÔBBÅ¥ªµ³ßÌ2ù‰YrÑŒ\lGæ÷ nãCW;|»ÄdM¤—p4£Ÿ²ÉѬ2cs"ožë‰ì—%ßÝ}û:ôðuy0+QíšÑÂÔ:‘],fdA™É¾‰Ö@çQäó>€LbçîÄ,6ItÀÁQLžÝZ±°Ú⊹֣…ä91„ËûæwÅ" +¸µ+F@§®ñåDDºµáÅîŒÛVñ*h[‰-èÄ)Y@eI²,$ŒÅ1 +i€ÖØ6‹*G¦ÒwÐ@öé½öú4áãÍ+ˆ‰G
Í<ù: +¬8™ÕlìþÆç +#GŒøv;±†¤L]6Ò‡tF÷#…4¼Tr‹p'Á©Ö‰SˆèW>Z˜9žÌ.NTµ PSØûYCàžHÏ×ÌLHšDÓù±cê +ÄÄOZÒt +æ'Æ’*‚ä¦ Ü¬¶J6‚Š SÕŒoÃû¤hÅRy:úk¸oÈÃ#<¢Á:U)€Ãi¯ÃŠÄä™^ª¸È¶Eé5ƒ%:oê<(iJ7,+§qY8—Õ?ìʼÛÑZý’ìá(
]¨3¦sÔi±ù^‡)¥¸ºˆïëTyr›û]hWf¬8e'–¢6†®£T-¹XƒÈXƒšðÃ6.%6óy„¦Ùb"ùU¢KXm$+aÏ:Ô<€Çʲs+ÛTìóÍaFŽû}ŒX›¦^MÖ”˜àô9ï‹ïgd]Ü + + ´nÛÑí4³DX:`+æ¯ó*iÐo™ÿÀ›†¾ï-ñ°¯®õSf§“¬§Øçmli
·7;FklÛfJøð ÂjÄä†Á°ŸuýµE“#]?Øj‚ò"v(×xñ¾¯d‰K¢½¤©¦t,v>ç(±‚1pK³x§mÉÄ<ÔzlQJ|‡^ì·¤\;qª‹%w‘99—Dþ
}»2œ v*"'1ÿ›í<%Df’lè'ð‹ÉÄÀ.¹ ‹jýöû„Ñmlø:¼2è¥4W©›Ç¾-j]i£ŽÖ‘|È +ûZž…i£†ÏÌÆî}±!@>eS§^<ƒ’p±wä¤1'Yª`±_«ª=[ÌM{ +cVS€šL^i³®'›óƒœMúñˆÅŸ™Ò“«µ’5eÈl˜…ºÔ²¡šŒÏ1á°zm; +^0 +33#›ˆÛ<½Ÿh”#)Âa)Ð
ÙÜŸëÒ*JŸø4dQ®°£3¢Q4d›‰ÉBTTàãmnÛÆÊ1i2aãäNÔ¹ifC¦ðe¬LM¶ùgd?óp•m&:ijMÂOR>§€î¾rØýÌÞW23k’;K¨V*Fƒ£‰/j`SšÕv ŠÕ¸i\Õ£MÂíK1œQgªéK¥@ÉO%/¦É³þPÆxsÁ +2íL3Ñ9VÈþ)ÑÆfÚƒ#TsNX©°^cȦØTŒ‘UIjë×cCs´€³ÍvnÁ½ãJ +L—hêl½LVHèwÅH5tçMœã²<º,¢ž·…™ŠÅkÝ’i&݈ۘs?l>†ä·bWñÓëÓ#{#·Ÿ°U™_![,!]ŽæWX•_Þßú—çØÇÒM‡7ûOVÞ(9£¶Æ‰ü73à&ay ü‹›E±A5©Ä¦1Ñ.„"9÷Bl-*žÎµ–ªš„R*Ç¡ª{ú:EÇüøLˆ|7 +rÈÓ?ï»çc¸Xº|Þw%¼,÷¬2|pQøv•F›¬µ´ÝtµçÝ×û³¯ß~DïÑq?/×÷ú#øÃHþAuŽ©Áªjáw&[•úÃÈ’ål®w†Ÿf¡µlÚ°ÞU]¥Ð7KÜXýÑšÙJ%|%ªZˆµ¿þk/Æ0Ô°S¥¤
£Yàå˯·Æl¨DÊ%t2êÆT–J^Þ×tô#ÂnržF1¢Äx6uÈ6†¨±(3ÓŠ†41!0*[B[¥zª’Ñí,Â9ØDÕh˜eãdäfUÓ^Œx„»ÂäJÊÂe¹]Å…1dÊvÄ.c PfâEd‹â’ÆFÖKÕ,ÇDÔ˜Îj%*øS#`05³ì'E‡ÕúUÛM•øt#[Þ•m«¥V6F’ mgCÍöËl±V,d‹0Z%—4kíh¦áH¶i¬h(`|5XùÕ6«]ƒŒ¬*˜Jôˆ«N8j%ûöâþm¯ÛТÛ4Äȧ+†Ù¦8Oqš0ŽAìHˆ}[¡°‘Ùâ‚• +V®¡ÓÁ|qF¼Ž|FõkÁÊf%Œ¢†@TQÙñzØqD”Ш°"ÍÉÂÍ«Uã^‰šSD¶2!T•—`2>زõ:Ív vZàhýÖ8.ÙÉú]W+äá «=¹ÿ°ç€ž‘š’‹ú_¨%Ž>³*ûdήõù5xÆ:«öÌ£ +£Ì(Ôë=AÑÅΘ ÒÁ>¨ ÒÃ^¸ Ø*{ ƒJ{aƒÊ±Ùô'8è龡0(a„‚ÏîŽ*‚Í^8¡ÒÅ^H¡ÐvÆ +E»£…J{á…Âf²†ŠKÌP¦ï‡Š®×pC!7ïŽ*=ì…ŠEÝ=_v
?Tì… +‘|wQ#k(¢`({àˆÂ’¸’(.°]±Dåý½ÐDQ\h<Qéb/DQ™È=˜¢x°ª(Ìk¸¢°gïŽ,*=܃-Š{ ‹Ž.vÆE{ ŒB'ÛcìŒ2:ÔÈqFÑÅÒ(·Ö¨éÌ»£¢‹5¼Q|¿=GÑÅsÔ軣Žâ\íŒ;*ì…< +¸;ö(˜×ú¨<ØÞªÝHad܃N·=PH¥‹}pHG;#‘Âd»†EŠ îŽF*=ìƒGŠï´")öÛ8O{ ’‚S®á’âÁȤvöÀ&…º¾;:)zØŸZý¥Ðë×0Jñ`
¥ÔìŽS +iuw¤R™ïÁ*Êù–x¥Bß±Zû˜¥èbÔRéb/ÜRØvG.•öÁ.…‘a
½n•=ðKMÅÜÁt¸˜¦¢Ÿï…bŠáá˜âÁH¦ÒÅ=X¦°Èìf +µ{‰g +úˆ¦f/ÚÓšÿ¨¦¶#—¸¦x°²©œ—{°Mñ`‰n +ú¾)Nާ濹åÔ,qNíÁîH§ÃUvÚéÐHx§ïy~¨Õ €ÍÿkÓÔ¯÷Jýúã„¥.'¢á¤Ÿ}=JO¡ÇÐ…_bè‚ïgçúæú¤k'´_,õ:D0軃Ã.¼;L0.¹=€‚í"Ú*]ì,=ìŒÝ·`0±d0äè=@ƒïßn¸ÛtðG¾ûXC|oHÓná>pá{¤5rÀð{ºš…ÔÜ3l–@ÃÖÝjx<ØlxeDKÀa{°3ä0zØtxŒpxØèKèáû_x¹ÒÙ +µõ¼;"µu±3&µ &»£RÙfg\êaiÞ™ÚF±Ä¦¶Ktê!¬íŒO=6ÇÎÕ¶9–Õc×ìŒRmçe‰SmvGªÆq^ê¶aW´jã»ãU[ÄjÐ÷À¬F{ VÛ(–¸Õx°†\=ìŒ]mf¤ÝÑ«ÑÅ~µ=ØÁz˜Ëv°6Ác‰bmòÄÎ8Öèa$k3°.±¬ñ`
ÍÚ,ñ¬íÁîˆÖHÖ0íÁΨÖfb^âZÛó@¶6ÚÛvF·6#ÐßÚèK„k{°Ä¸† +>zZà•7vFGkØàødkèàö`‰nvG·}²Ä·¾—(áö`‰>¬"…}‰n–háÆ—xá÷<(iåÝ1Ã×íŽþÞƒ¢v‰n–ØávHvFŸß?],ľ;†8ºXC·»ãˆcíÖÄǃ–8ìŽ&>XÒ®xâ¶ûvG‡cWLqÈÝQÅÑÃθâ&P-‘ÅÇØvÄ¢Ú]ÜzÞ_Üú^"ŒÛƒ%Ƹ=X¢ŒÛhvÇ·.–Hãö`‰5>F³Š6>¾Æo|Lx8n`‰Üi–¨ãö`WÜqë`‰<n2ø®Øãc7¯¢¹ìŒ?>ôƒ¹=ÀÁš¦ù%º +ù˜ÍÎ8ä6¸%ùì¬b‘ÛƒÝÑÈm¯-ñÈǃ"¹íóÝ1É‹ÝQÉM¼Yâ’»"“›¹;6ùCèä&â.ñÉǃBùLr²¼íiåÁ¥ÜìŽSn²Ö©Ü,±ÊÇ´r»½wÇ+"ı܄Žfù /PË!á–Ú~F°v¹u±D/7Io‰_nvG07IoanôQ̇p¹À1·K$s›ÎîXæèb
ÍÜìŽgn²üÑÜìŽinß~‰j¾Ü‡môdsÛÒ;b›3´@7ǃ%¾¹Ñ—çö`‰q>,PÎßcÇX5r¬a´óŸ°cÎæù‡e§%îùÑ1²î9c?dŒŸúÓ˹-ytÜkþÞbnÿÙÿéÝ׿»~õÕo¾¹¹ÒÿþòâÛËk¥üêË«w'¿¿ºùáâö×ÏÈ\ÏÆúwýdJ¦ü9O±%d4n +IPŠíMU%Ù‘ƒ }ÿãìy]¶~~væ€[€Ó÷V\ì8¨DF-¢|R6´¼!rljSã@/n¨Ò&alé[ýVøïÔ6kê€þ€Î±è÷>ûæþ•þÕ)á?Lý\þz²/¿üâüüÝ›¿ÞÜQÛÙ û»}•¾´<¤fùR(‚…R¾#¥!Ó2Eï++ä+Äêþä‡>t7E„jU*(Òì]kšÖ:?,Œ›(¬‡v{ôšÐ{JùöZß¹kHlÈ}A+BU%F»ë÷Y@DňXÕîDÏ©ÒM'æ¾âA&m%25zÍ%bA¯TV¢0}…‘i¤3œÓë~Ràr¢:•O ÉÉ“Ñ3úü<ZµS±ŽÐÏsYçS©tJaü6€2cÐÚÍ‘D^„—¼²–4{†>MZ‚2Rò,HÙINjï5Y5¡4I„bÿý&@šè@êsF7À}Ò¤>*!¤¦)äÑùçbpÊQñ©¼E„à¨G¯ET‰ÿ8Š–¢P\$€"lV0p•F¤ú%ý +n"PLX™äð w¨OB¼Qê‡ÝÃI^<{}?¿s'¿ùÏë»~õ;ääüæÍ÷7ï®_¼ýîìû‹“77¯.f¼îݳ_ýåæêŸg'¿½¹;é’ÆÝÅmg…Äܽ±yúßÿò &1“®Éþ÷É÷Ïô>žØa@à`Œ0¬"fd*gŽ‹A%ÛšOÄ?å”’i…µæ)Ì>}±OYêóHò*’5‚E…R +
ý$¼HÎW:ÕYdQ'u·èì69e”s ‚52.VÃgƒýî¬PFF;I#R|_Ü0Úz«¤§MUâØyS92+°yzªƒa5ãbMwE©Ra®©¯ùü£ÍŽ¸ã• +Zh®Ã<<†d;{©¶_È\ À<¡ó)㪰<Èm‹Ö}$€4e#•˜£ˆÅ4(RäªwP][Ðl R¤ØŒÇÐä²rÐlY.ä”
]MáMZ"Nnz«€·¾ÏŸ½ýHÛ;&HGt5$µX¡ÙeÔAIi\à€Ì +UɃ‚mi]`‚!8
®DLdÙ[®¨ Ð7>Éý"U©•É|˜·üþ,wó'æÏb_ë†;?)[ŽÁ46eÉ +a« +c&Éáâf»J™„ÇåhÆš:ä𨜓¾èòå(1lD`6ÍlqªÞý²Â8¬‘;šyU¢$NžØ—í«$¯½Á½¢zNⱄIU9AÍâ¢ä0Ì.Ð&„É$®ø*ajÓ(*š¥:Ùá)|Ö‹$Rº2u†Ft£âqß +Á²=È/Re–Jn5ÔªòÕDÓ'ȧ$Ú{ö@ðÅQe+h¾a«ªY!g+笾J6£BF'8ÑWtBß¡iùQê!XÁç°‘+ø`µ¤+‚Ÿ–^‰yi1BZe»aHZ7öHU’³[ŽHL ++Ž˜6‚“Ò麙 âš!=Z™soÐìue“¬†JtR‚îäAW‘¯t°‰¬])Ú<ú~èn´\EœÄŽ$þ•ÑÄߌȬ˜€û@C¡'û(£n‰ÏfÍ$ó¨Aû‘ú¹x +÷š¤˜¿$É™°®”ÉQ€ ˆ¨&¿+Â{):-x”2q¤8é©‘ÍáIcRÃ}¾„ÉqÀÙ˜G7±½õGcÒànÃ98U4Mb%6ìõ#ÐþclÂÕnE +4ó~ÚP‘éògÎIßÈOÇ]S†J‚©ª|Nu:üújÖçÒšÿ$(/ÂpMœÙS'>‹ÄØ7!ò¾¢žÑñ AŽý48÷N +®èE⬬¢!²§UŒRÒrR»ª‚Yw–/n/ÒÚ¸>;˜¤ÞÎYÝÔPç’4võw~©¨õÞ‰Næ>¹Ó‹‚Ú +!W5»‰¥¦ãWkþ8åhQŒM*7I…2OXE¯ªÆv¢ç6½ê„Í÷]SùºÀò¯÷9<¶ÉÕ@G +›àØø-¶ñþg?èbµ«žãŒ)=·&®ïçY„)Ò¬Dçôõ%åfBÉ hVؤ‰Ê|b“WêNÆÞÇ5Ð6‘ˆ4¯qãœøl‰±^¨ƒ€‡æúrAq†»L#àÒH¤pÊï-Dƒ6ª„e’'X9ÍÎgE«wpZÓ*Å"ýdê`œ,(0\±2x7“bÄJXˆšE¢Ú¸_ KD‚O‡¾Ê6ØùƒzBw´ÆZj[™©‰êª KÉ¡Þλ=ªð ¨vd‘ÔVKW¿È.£›AÇq~~˜´¼À_'&máL¨ÂéMm‰fo$ l1¿¬– +ñù,—ÜC“Dx{-R)g[£ªIÚQÑ´TËöñˆ„x‹>u†k“Df¢`d]ÂK´ªª€-Ó³”ØäZDôH¼¯ —±V/‹¶™úoMrüd0®‰ªR(eAy6•wÅêÔ'Ô†O=i–Æ!¿¯*CTú…:Ä\Y$劕!ÍõÜ5¤pøó¼ +̲?úXaàJ”¡#BIxÞ´|"d@eqMé ACAYéU]⾘’˜l×v"‡Ÿ~Dæ18¯PÂoà”$2Mûb´n‰Xu&ÅkI‡:6¸~²ÚRæE{hQ"‚d¡ÐR«t7¡J˜ŠìÉz9Ò +I‚$J:ÈÀ.&펾RÁ”`ìL^B)‰H‘},5Ä(¦žÂDþV1óe‰Þ—5P§~}Àú1—,Ù&PŠ”1>ˆèážgkþ} +ב¢B1#£‹Y*7±qÇ1|ÿ©Š¼¸¢½ò èðŸ°Óí² +"BH^,.4 +±S¶
7QnļÉ1ëR€†ä½”ßobmå³ÈWÔ©úw%ûËÁ[¾ +·'ûé’ìkŽîm£F,ÒvÇ +YrÌr^¤´&Ç3³r}Êá«ü¥ØŸU)"ÏÕÄ žÿÒ@” ë婵Ì'Y"”²IXˆV¤•˜d1 ý¨°á›Ì-ìÖ”¨%_ŽHê;]¼,«Ã® +-çY‚Zä&")‚5°BÜIlÁÄ0[ÑÃ`-réu½¼J¯Ñ.S +㺋œÔäÇ(¥„E"·.",Gè°5)c +l¯ž²˜és¯ÙŽ8!•?‰ÖÕŠÆ“ñöêÈŽÜÅŸNþ—¼{ý¬ùœräÇ‹E‰n0Qz&ŸN4^‡=+]žQ<N +éÒŒj=UÄžD¿ˆI8Å~æ$v†®¶éÓçå˜k‘xÉ5[›(S¤ZŸˆ&"Ù<\Tìv¤‰ÆO%·„O*³OIëÃpÔi^Õƒ$R‘›D.9\oSÚ(Ecí]Èê&@©$9<©Y—¯ ùy¤f4áux]¥$E=ÆK™b²`8QyE=²ÙÈŠÎJ¸3SÕù;ɶgW - w'†¦Z]b7!?;¡ºzS +u"aµ°S…|¥¦s5ó¨Ó!ÃQŽ—X€Ë$肪 +:D?Y¬éBˆâsÏE¹¡ä +¯Ñ×:Ä„|ʦq}¢.P%/‰¬ðÅ’ÚSžÚN"î_—¨’(â´È¨¥ +‹fY1"0„’DÌ •©„I#åÙ™%#ÐLl¾|%ŠË÷µJÅl7uœÄ\5*ŸaËe +Ê
Qõ§œ/¼¶í¶É´´?EõjXI›¤¶ˆ¨;î%ŠìlÒ:RéKb¨Ó$4ÎC… +c)ñÉkh¥ + +d^RC6WsŸªj@êÇb±W/R¢4•Ž·Ô'³oFh(óLMóÓµ2Ô~ +
PS<íbÕ¶"}äZ»—ò1¬ÖÞ…„ô}‘Y¥˜NHhTv 4.¥©©ì”C³Dà +-Z…ö›®@VØTf$šNGª‹àtÓ†QO°»X®g±ÿTrbª$Åç“j;MºD!ë¶HºÚ&©®Dmm¥!à–þT_*'rêÏSÙIl0ŸSOšX‹øO¥acïdÕð:y½ÀTOê8„ò€{ˆâ.TW%&!ʵÌEEÕ© Ð!ƒ%©¨_®DAyµÕ€šøi˜FÆÙÈRT¢T¤R>oÖBò³0gÒ€²†¼Q"EÙ™p‘[GðÄ"©Vu ”¬ +ÀHEc«®ÀIÑÞaŠÊEŒúh/Êg!µB=±d?Õ·+œj”‰¦ŸŠ³Ly«’yY.'š’R3±ˆùH6@µ +4
xº¬€Å¬ÎN«âXT3"”½ +ÈÔ¬HñÄŽD8`‘+Ä1}A…cÀ6º˜G8UKúFκ+ÄHÌÐâŒxÛrµ+ˆ§&˜²ÛŠè
õ)vN> ú,Æ‹²S5ì„…g|ªFÐQ¡^ØqÄh$|>‹4…dz®#tÊs”œ^’þµW®À5’$VÁ˜&QvGkÜ +©p|?ót5H‡¤e®HÙÎ%ÚRäº}äßd»SŽêjIÔ¢*·Ô)‡Çé4¬É5Ä8¼õdTw9•Ìú*n©j(G¶Ÿ¬¿ßdÕÖ(÷Û· Ëé*lºPmX9´ªQ¾kšEæÑåBÖ#ÎÁt¢’Ë)ôªÔm¼Wõ Ø£uVýáöìíÛEeŒwûÕÇØÔuElXlá4ç«ðQ#EÑ‹+‹ˆ-iñ’bOnµû&&9¹Õ[ÃA-B¶¦Ë×5;8Š€«nR$^C”<GWLÌÐ(PnŠbþ$6Æœ/9¹Dz)Hg¿o&ÊìOlU…}4b(Õle*8‘¹L
…u$1ù‚ÓÁÍlÝ÷œ-ñSŠDyßÑr`Û>è’àáÉaìGäZÒG4h©i‡¦VDžÆ&†Î› +G:pšnËe4º‡%,Âë(R
—bu+Ñ)‚xæ¯ÏZ˜—$±vgR“XÔcùN̤0CV|ñˆ;)ÏÁRãT-ÄRƒ?¼V<åðFW¦Â ãˆXåžÕhMiä°`ñ(ä$à'xñ¸‡^ `‡¼.M#}½hôò~“bÚy’ã$. ?ÉFnˆ®÷!Sbš‰šê#%¨ùÍ‘KT#]¼ýïbËŠXÍ‘EDò©DÁÖ8…”*¸ÉfO^W„Ü» -ÖCµ!÷‹HudáüT7éUÌG'ɺ8rðŠg‚q2Š4Ð!Â…K—p‘& ºw²”bæMîÍFJ°©Ž“Æ•£–.'[”v¡_¦Œâà4¬ÇxßÚ>‹Ù‚ë°Yu/¨ø”Êv|ZÛ*€EŽ#Y´÷® ò¡O’<ˆiؼ4/TÙ +KD-Žé2Âá„‹KW|PåÄ1‹Ì”¯/æB‡B›<…I,Aʤ~òªÙ(<—IäÉF>rýg´Ú8my½É;é. °T-Ùr‹~ùìõzöö¼øÏ*8Åöᢟ}MGÒ›‚“ãÅfKÎ(*,E¹H†‚g
'@ÑúÞ>‰¨(µ¯h²OX#îå¬ ÌVn˜Qb,Êÿ?{oº$Çqf‰Þà;¤Ùµ#mº@÷ðX¦M?HPìÑ4(âÒ´4mc²B¡HV«XUZžþÆY>Ȫ T¢Rœ…ôÊôôððå[Îwθ¥GfÂ^Žbm5Õ—©Þd–§OÚL.|¦§¡Qt"€T_@µ²…´’4ŽT¢0*о"»è[Ñ?“wºH2fCˆ¦Yu1~2Î0‡Ÿ8Ó‰fó“²61bxâ××^š‰1!r&åêÎ $c„]*7æ*b`¦êCt^ù$QJ7÷$áÅøC«S¤ÕÖ2ÑL“†äqêö_èr–™ˆ²+AµAÌt¡¶üÙ&/#`Ó{%î8îù©®5 +Š3ʬÌ÷‘PX¢ ì]"T†ø‹Ç®Ùƨ
„>GA³h΢oƒG®7–˜Ð•ªà¬q3µ×Ì£A¦3PóÝZ=Gñ…ÉàM—×AtS4ªÆŒé½Œª¨®Ÿ£¶bÖZ3ê +ø®®"4kÅG1éJg!:öŽ|Ë^ó4®¹ÒþO¢®ªhè÷‘P$[“âdeˆx*9¬¡3Áê§ãž‚0b×)ï§ihÌ!%Ô߀Ië2 +mvq™£„bY|E7³#1"[báIÜDLipÜzî€0£n6ŽîÁxh¨ñ'&£ôËõ`Bð¨Aäå=tY«d"ØÍUÉûD@W5àæûÄú}Î0€.Ü,“›¼?CŠ[ý‘ɦÐØ‹xZü6"×ÄŽbCĶe…âAFߪÝúÙXÀΰ
5.wC\ +hTy +yì´ÝP³}‰Ønøl +35ÂÔØϱ[™Œ:ÝzØñ£ÇjšiÖ¹êD)dýP[0•ŸCuTŠÂUÂuLÛ«òJø7‚
ô„Ën’²&›
‰D£e3Qï¡ 3
æ8óÔ QaÚÒ¯’µ×ƒGWdÍ0Õì¸TbO=9&aì“ôMaiù0îAÕ3i@ÚÈǶ!#Ó<GP²AÑH2Ù…¦KflS9VÃä{ŠVääOÓNf"¤Ô£(š—#8š'J¹Ye’hË|<#ãH2§Npz` 4ºI‹\6«¹O‡,³MÙP?qs×ËÊ–†¬ÛÄ…Â_áјU[z»ªwu¢¨Šã\³=3ï$²'69ç)®˜î,±Y)oNd¯ѵyd‡åï"SõŽÇâ÷`cîÜè¨ßC'sÏê1ayYhçÌKÐÉ¡QÊÍØç$ôls0nž¥mœ7Z妣q²ÍÂÓcì|&”Ñbš4d
—€ésó+É$ ïÇa¾Ç΃Ͼs +à”[EIi.0~vdœkž
ÁžDa@ê–•ã±›gÙ¨…8ÿ¬N]¿‡OJ×–ÀÛý!‰9îÁ°©t FWŽãì#JƒžbÛ¡e–À’6n\9Uæ Ý’7=~A*g³¦´Ã/Wï¥N‚ž<æ$~ æ¹5š¬Y0¬`³ü¾Õ]cbÆX²f&a£q=´$Ì +äú.Z:·ÄÁ‡F0$ó±·,£Ù'AÀÕX}¢'Uð¡r¶‰Ì +ûòX¶\M’ñçº;Ñ<Mu½c{v‹æöký¦ä«—LÊ2@Æ‘)ÈTÝ0søÛd-”]jjßØ©zT”&IrÑ8ŽEj™÷0¬–ÛºF$‡°¼cßYÉ‚:oÐë;°Mf‹ïF yøæ$í5Ön²NÁèÕ6½¦ø¬.s4º¢Ÿ\6dôÚ®PV˜$1·mD_¯Ò©†qIÛU›oŒï7ÚvÔ¢«¬óÂ’$Y×rüh’GzbžœûÎœaýƶèS”AÑð#Moï0ï~ðJèëðd݃R±ÅÚ®ëŠHŠÚféP<‰fÞïhf¹ykVi
–zŠ•X[Å=‰(§p1l”ÛbòÌ@¢0xA׫ÍÚO?ÚPƒ›&û–\‰Aô!±I«-lKÔÿ¦lnBõ‰_P²Ÿ»ÚUê"äDÞàܨVâzÅB{³ í¾Ø©¨l¡?6‡8ÊÎÒÔ™k…Ôkê oI®N~tˆÊ„³Eô‡ª³n +fÆÜ<è\°½8Kw=‘¡·IçR(†¢¦ØH¹¶àE‘ æ<D¸¦ÅÆ›z(huĈùwV¹-ˆŽL‹Lqf‘MFú€-T3÷Ž|ç¾´@
Œ¾¨Ž¤™!ÈÉtÿ#|Ó1´‰_ce``L=::Víª3(£|OŠŠ?~rª-6U}2ªƒà÷7¯£`Œ%~nålº–£Y¯x:V-·Á©Laí¶¥0í}}œAe”®¯¶?% Ñ(n’VÀ1j¹Ô«›mñ¢>¬Dm¶g‰Z2Õä€xnê‚ó„—™Žk +àÑ%K‰vT)u…}Šã•ãìXåhîœ ³™ƒ¦Gk̤výV
«ƒë.Ü`„«¨/sÔ&"ʪ`0óA—Í®+Þ<fõCžmÙ›¶_¢¡ö[S“1ˆ HLR ‡*8¤ûä]Rò(ÇYõX|‹c\8HŽZˆ{X. +>—Epa²4ùc@É¢ì$ß©Q9m>~r¦ÑB„ÛKû×Z¢—’îIž*® +SÞ0ìˆdçb3ÎQBú×Íâ¢C~ºY/hž³ÓÖcl¶Ò¼C+ +ñÕ<‹@Å‚.v†¹sd†}Ãmi°áàŸºHÄ6Æ|4w5Æ/T¹ó^>à“•OÝ4DÏ\G¯£:ÉK`³–Î b— +ŠðadiÆÕ«D©gÖ¯`}ÑdošJ\œ™7 ¿]ã6„¥`êÇŽñöª=mW£_¨@À 0‹Òìþš,®R_×ÉYrs,¨VA^B§wÍ°²Äz0·3y—òë‚ë„@ƒ)»,ÔF£; Ú¦{1BÌÄÄÕ¸¸/NCöm›ÐÆ™üY¼ÿ˜iŠx•F|w-oÍ$¹h¦9›ÁËñ$šÅ¶1ƒ·umÌ ìIW³‚4ZÁ-ÍRÄãD¢ï‰ç¬6—¯ïœÈéaS»åwÐlõ9˜ä¦ší„¹RZLrÐ6EÚTsLÈ Ô±Òhƒj‰(ŠP27Š> ³a®x ›.˜ïjº¤¸}SŽMƽ8¢Æû#ÂcÝWóÈÒ"%/h;ÇúXåHSˆV,iæG’¢Ô¨òÉ&Eêo04¡]&hr1”‚¥öñzâØ4ËM4÷òF—f–\ªyVDÕXÊÞ¢âÐÖ#íÿ:)Óã%mO…€2˱<>"ãI.9Ðu +éÒ¬‚ÈÉ2v0{ÎÁí`r‹5ä†áÈdï©¿bs§}9´ÍZYâì`‡åê2|ÉÚú~‘`•ýg“õ¢0]¨‹>Ög?‰Ü…×?Õ~ùýÞlŒ|‘e0¿x‰EÂBCc`°zÝ®ê øËÇ9>ká\2!CÜGµ3²JaØUëxI–!¶`tuCá;„¡^É.èïÎ>6("×èØ{f®ªEáØŒ©a Š÷\/м»IÚU+ÅÜfÕ;×ÔÞ••@—-Æ3ಖSÄX§&ý^Î¥a ´Ö‚±t”#;© +.¸>'¯&þ2ÇÊ‚!:¸foPrS îðˆ0šç +ú~ŒªÓÒìÚ)5
ƒÄŽ£ýÄŠ 6š/=°0Á©õU:Ó阫´šZ†Õì1F©â5,öG$5s¼š$&í¾Û¬Â‘åT£V·-i|–7Ê)åR_ZyjeÇ;@®XVwo¯#VyÙhEü,=LP)ö1‚Òv"\§Y²@±Y.¬³ß¨Ð›ÍÆ)èjˆYㅈϢ³°Ï߇™’SãÍçêk•Íò`„½&CZ«Âûˆ,FÂQC@)X…rõß´!DVœB´w‰+Šâ*\Ý|ã"ï°.*nÆ)iàJ +–‹.?’ª+ž@ŒŠñ1±xÄ( ÿ>GBÉ<FàpA9æeVNŽlE^08¬ã™´*žõ¹—À)mnÃ9ÐXk5(whšæ0Œßää¶îBÈKï0´ßÿ¥Ñ«èCÙÑ5%‡Ð¸JØj2ዽf9çúþH8ï%BÁÒJ‘Õà6ý fU +p +MM½éMz¦-¡Ð²Àö*XŽ, +2÷ظl¾¦2 =ãØxH)æE7„·’HldJ§¥HX!QÏ~AZ‹‚^€'çÈ/Éi¨wd߸ +u;XÚˆAïÉ©vRÃ[Ÿ†ÙæôIa¸ˆÒ@1>û£éÇØÊÆÙka€E$c§k@ØWgÀµ£÷ %QSñÌ¢HEí ÌM"bSœQc ÃѬ4˜T&€#ñ¹ ‘ÝÞ¿&ánv·A9Y3ŽÐšRE „ßý2[Íš—,–Õ#)93ã$J]~$ä¥/·H7Á>¹ùfÈæ–ÝœEÍLyp±Iâß&Ï 7E*³,·˜êÀ9šD² +4š©Ð—»YmÙÒÛAvÆJƒÎÈ d4ªA#“nlôzã'‹?ɤž:è„¿ -¢4¹F„Æœ/ôÁTVŠVä®'£þë}l,ë]².Lç¨h?SúI‹¦£EuUñPÂí¢jû”9öåWC<@¹ˆÇ’'ˆWq‰
Æð¡94Jº +k
Œ8¯Áû+q†¡Y¥ Îë]"64Òj懛K4ÁAb2 •.д@#ºÎ7ÐràI5nž$8ûmƒ(âHT#|ÜhUÊÍÝ´¶Š¾÷BêO<=£Ð;w‚Í’ÏÐåÚšÍ
´kW»U‹‘™¡Å~1íñ6éØ»®Ál—›‚Õd7оƻì7I+V¶æò¤ÄE=4‰Q^šF`åC—Ëž>¡Šˆ¦ê,ÅVJc +ÎÔZ1Âß¹,º¢4—X¬4Ë\LMš.òrŽ0›!ŠÚ¹ñ\ÎáhZŽh›>ömgRÍóèêÉ$q +:Šb?‚©Û›"®Ä9×;ªïg)]èPUí"ã4IyQ`"5&ÇÀ¤6eWÈàÆ™ÐÅŸ:N+K&ÅšÃýŸVž2Q‚jÍZ¶Kj0µøH\¾I<QñýΤ IûõI4ëðBóàÎfÖ0±y4x•á*2K‰ÊÒ\Y±ÖN;[£8½Y•8ÑÌ—ƒVœîOÜ:úûLQE£ý-àaà›kƒÕ3yEÊt†]ä ÕÜ4ç‘4“Ëm9ÄB:&yœPékDbSŸœ’…CDpEôuÔ,àr«Œu”£&FÁÌdWYW]~YBÇÔrëðÐÇágÍV5M_¹·´x"’39‼xÞÆ!\=‡Ð&$a÷k²šƒ‘‹½Ù6¸KüX<6k9uxRq¯µºµHO·5CäüÓ°öa÷ŘRâB£ààÎYaƒò•>g»¡nNž1*÷`{G¯qet‚ķ桹‹s¿¶&÷Ì÷Ц‡ë6î"a)Äf<±5À{pjruÔ'Q̹”àÎíÊìO’u±½á¹w(šæ¶Í²9‹7K½RÝÁY»pã:AQ ëÒÙóÉŸŠËçS +ÙŽÐ!¨Ú S3¸”'cPµA„º÷Áè4ãÜ*ŸX¨šG,H„à$¶Ac#{E[“fÐcŒRÜ‘šFö‘+«^vMî¥.Äuz¸º¹g|¢q`„YZ:ý6Ü}⎂e Rd4¥ÝU×ó«¨99ý2ÞG•³eA›T>”‰ +J#¶ä\-eBÂɪRFAð>ËW¥Q®Ü€Ð¼±0u +"ÆóûH2¥hx$ÇqêP‹Ëéã'qÝ+#Q»Þâвà°MÄ‘Žlh~×Ê觰”¥..¶ìäæ`#K‘˜àûê©Mù/û+n¸p‰ê2³)¾_ã*©Dy“mCº|jœÛŽf1t#yØ÷ÞL¬ák&%6„_²Ø à¡“ëC,¹ašÝÆ$¯f¶ÔˆÍÙTˆCL“«3a+-C,„Ó»"¡àLNRjpˆ¨/%UªÙê²@á‘kéçÍNu](Ïð¦ÑÁšTgN[YW&§@¾+‡;•u¡âQ——ê”ÈŒ¡ÔF•‚smëìó’: +áàJ,Ä,?±s®x®‘m+@f±#½ +çdš]ázýC>/4e—KÙt!¤DHK–G…š)¤ehH(£èkr–ln‹£XÅÏ*ËWÚ˜g:á?“@ãƒ*I…É™ÌÙM% € +Ræ0÷J¸½#Üi³\ÔS‡ÉîkCh!]f·!MUë~ˆò’›À±A¦©å¨|CJÚ>aMp²k_V©.Ûì]jrÊ’Ñ–CÇ/ÑÚS³ý)}RÎ4ç°&muý“1žíE¤£ÊáñU,A<N¬,u##ÒËXÐ.j’:Q‰ÔwJÎ+Fè
¾Åñɺ‡zÃQ@5v.qdîˆ +I†Î€†¤sl¾c¶µ´:Þ +øÃ’G¯¤ÆgûÔ;TW⬆ÍjBZ_iî™Å82z?ɨ„< œ†[ÌeÕ³öµ÷Òçlø,dU"§)N#xº’ +„š]q‹êa(|icy\RPVåRxЧqíÀK”ïVàë¨Ô&b™9z0Fe‡©´•“ëÙ£d.ço„Ï€.*”£ëmkTÙˆà=ìn˜¹ô{¡°eä
‚KDõ_ÍîHø‰ÁÅ}¬WÑz¡¶n>zBV¥¨%UÜÇeØEÚ½DlÍÁ.eg©‘ÙA¥ç)àÚ.Ä×—wàFMíúÑfNÆÌð4è'S(‡£ä·%K~7÷¨*Ô“åæmG +k+¹‹").)ƒ^l׺Â:ë¢æ¥êrÐÝç
1¡È}º„‹hž:‘£ËÛh‰„¡ÈªQc–’í–šàüR{J30•Z̬YZç<«ÒÒj”V&“á¯K96™84×RýYép±Wahîà1y£’ù¾ÿo~òâêùéî“ëÛ//Ÿß~»ûôúÕÍ·»_]]D~ÄåUüæéÿ”úei,§XZþ7¥òyÚÿ_§¿¤Å:Y6ñχå`/Kþ³e7ôüÓ +8E9èûÀ¡t)}dªÃ²HÑBaÐyã™ +’ç9ʯp¢ +kƒžÃÑú¯’ùª%âýN=‘¹.§Pð¢fÜý%É ‰Ž2ø…n;/8n`q6Åw÷Ñ9…EªÂaþ®¹á°ku+ ‹íÁÜØã>_væ‘RXÌ.â9©Ìƒ‹’ïÏYg§°Ì{ÅX6Ù(e’ŽÂlÕNqñÇÛG²‹uÁg˱“êa‘´™µ™Ì^,,ŠmoóTd+tÞOð.Ü–ê…ž¸J@SúÞ+’’BäÍ"Ø|±C²2PRå’³•cO²`Iµê§?<cOö<õWNïZ +¡flÜ'öXhÆÚhós Y·¼¶ÑgO7VÂŽÁ0GÞ–qÞarY©À”!t€×žCC÷m• ÇD¬VRÞòžC]2mk @F +š€BÖb&F>7Fƹðüƒ]÷)Í€¤Ãòμ»y¯vz4Vn° =Àš84ÄC˜øUÅ·.Yðß—‡V™ÁC]|¶úÅšÞ¸m‡jĬ¼°l#Õ+à TéE3h¢<
Þ–ˆ{pIàøhxW©u": ® +"`ÄgD«²D¼ih„™¬0²]à”tíà ïUŒBÎ$F”{ˆÍšâê\³rá;QiB\ªa×®‰¸+˜ +ä'…(Óh†çO‚Œ +2㔎±«B‹õ!ÝÍLq/] Nxò +Å‚Xřݦõô>—Ɔw¡=à‚)„+×ÜNfÒóÇxöë@:¿ F݇Ç"þß‚Êðß +ñŽE±k„¢3‰¸ñTM]NTUH^`¤'ö H8±üþ¬Ë@âp- ÀiV ø|€É9_lÀqt3S:ÑŸ°C£©«Ž¥`¹ca d ÒA'×ú)ÃæxÛøY“pF>Pò0kR¦!@Øâäìż˜I\„y8½ +-x½W|ªWçÁu¤!ÆÔgÍ@LŸ¥'Â×âŠx;ã è
œØIPyÖ@‰Òä»^ë…'žŽ¨žìõXçv¡±)6ÓžõGzÁBU"'‡˜Ã
X²ö±G ÞPöëÑB#ig}¶AõgCKç̵¦°£à.öé#¡YÀøÕË×Â|Ri¨„ƒŽ–`Q~WP‘’¢°µy^z¬Jœcô""Yš§6ýHvèá¡)h—•·CéÝi—çÖAÑ +&¬[ç(è¾Hƒ\Pfnš5IZaT)‹é3òxÊ”ÁšÛ[@ïÞgu½F +TGZsm•¤íÇ«·¤uißÙ(Ð ß7«–ØÁy¡ÑénîÝ:>t󴽡†ž‡nví_„¿ + "1‰íǬ¼¸4¦¶8{mФì×,é±æ‚ó–¹ïÞ´Æ‘5˜æ½â$ˆt¡".\^3Ðù}ûÖA‰Z +XÂpDG5ƒx®vÃE
õ¾l›#µK%@4Úï~öA'±ö/ÿòrìÁ„;O-"½¶íúF¥ÉØÎ(bìµnãþVñãÞgqŠëìßôº6j +ÇñÖD¸¸×œj‰˜dž°{Ib¡Æ:éDpc$s%´÷ÙѼ{½n9‚x²µÙ´ ›Nû†‡Ü Pýþ`÷>»>ÖÚ鈩)–ªã”MµE£uPG›Œ²žl´VC¨ôÁZc\7©“}»ùìâr³Žc¯×µQˆï¯q[¬}6íï«üðv¬›ÏnŸ5:½ûü1/}\£ÙB11öA‘šÝŽ«‘ÚdhòA(4q
dlßb^DǓΧhÐ2ÍhlæEY<¨\†Ÿje\Òƒª4ºáƒaÌ-ä-[6w+šY‘¡÷oÍB¿3˜šAw©5.íGkuçŸ~rròêâ««["ï6`¹w¿ +0št›Qã":ù8±éÙ94¬·“[A*2„£¬QÃ_Ú=’773«£?Ö&GrÚäUB™Íaèã·ªÖrm†k«É-»eåFßm¹xòW|±Þö“n~¤÷ò®²ð…®fv$;5ªÍFs`ÊŽ›tدsE¶Ÿ¾-æ/¥ÕqGxÏk[Ê@©Wß®„SÂô¨j_ðÃ#gjëÜ,A”E4„¤ óO²*wùÁ)ø±¶;·Y—å3Æü®›Úì©ôeËèMMV’˜ô9×ÌìÜ«MHºL±qºö‚òßß8ì€>[núéú1]Z9ȃ4¬äF+ñ27Àp¬íîÍÁ{t.%\Óèí6MF«ÕÅqœµ·G‰÷hoÖ#/»e¬:S•ïuÐ5ci +žQet\‰Ô’7Z6–A‘Y†ðˆ×!8íiÈöyÒÆ?vñ}Û_)Ü4_BwýÇ:•džK;§!žÂŸzÌqïÑ×
[Z´^5å»ÑØ"k¤~ãûÛ©Ò¯ü`1“Õ®rÝø¾8x*8¨h”ma+“«ø `’½}þT1r©1SÞ?Õɧ¾?ïÏ™?LVÚà š—‹{Í,ÛRcí»{·5Žsí7ƒIý\î|Ì_ñÙÖ붑#ˆÖæ)lµµ×ÒÜÒ͚Ǿ?ڽϮÏÕz½7aF¦øÁ
T§v"¬Í›MíŠC‚Z1&7Æv¶k¼ýl6¹ø^ŸÛFþ~¤ÐÝœÓöDXn$T÷Gq$p¬ÛO¶gÚöyïù11IîîW°ÊA‹ AÔHÛfÈh"ÀÎP;#íÈã˜MêîvºUÜp9“‹‘½Ñ®~ÊKpŸy2è\]_{”'~ì~Ç”õ‰ ŽàRš±AA¢E8ˆ‘§©D¬T¢‰ŒÖÎCd¥rÎbÁV)úâ³LO«×*˦¬AüÔLË +aš)‚mÈv<ŒK~Ô9$0uj)•©…y<‡G1ß“|cÑ`|ƒ?§ •Dr)ÍÕnYÇ øŠ›{¤”c`—+…õxùÕ0¡W¿2»9»ýäÛi‚î2^PcƉ ƒC¦ÃHÛ`ŽÛ1R{c´—óÅôÚ‘3ÚJ{”`…%Ñù^ +ߨë"Έy„·Æhƒ5)á®Õ÷kí,tìÆS‚hè$Î)?ºv©É÷íbÇ[`…ùÎÛT‹T'ɼ¶í`.‡Ylû¶KÈtÊm +Žsâ´•)‡1*F$ŠAÂÂAÑ£Õ
+‹^qà„wh¨šÏU˜Ð©¡"Æ@M2ä/K1vfðâ +zR9 +î-]*\à>¦)?ª°ðˆX?Ó“aëý¾¬ŠaÖ)2p80€vÄZOp˜C¹–Éw©¬H•‹ÈS¿¡Y:,Xv]³V)²=ª’κY6Z—ô¶Äó0Æâ:\LLûhdU©tMˈXÌŽî@꤄z§ &,*j‰÷ï"…ÍOM®eH8¹N%í/ÊÅñ Þ©®˜ØÀ•YÔ |G¦>·ªþ&Lv/*%QOîì>ò"£áà +¶%Õ䵃G¢Ÿ“U£‚¡PXr4Á¦ +¥[À»YoC²÷¹¶ýGY2W¸¼¢.!tLS +Z±õ„VÇ>î³1 +3A–žs0Ê–>j0M¨-¯cÛ´ÈÙúƒ÷&-N£@ÁÎ’2ê7@õ¤’sñÄÅ>“â•ÚD}Ôü Æ#Q@ùëV÷éB9¦!œ‰Ð³ì%®óxusTkÒ›@£M™îE +Iô9JÖIÇ9ëÆ™›;‹8D$ +ÔÛ[Z–[†iž˜ggIÿéŸöq +‘ +FÑPãdNȪç¢À™œ8“÷")¯ +øq"È-27FVÿŽ©‰ų́·GâD¬À£C:êÌl1Z‹áˆ°^æ5H2R ì;jCKÜÝB&àÞ´’¦óÂ2ÃI½q\½Hôî\rTOå‹caç8£H{ +‚uV›œD‚v^¶,,©ä– ZDð-÷Û¥~‘M¸Ò¬¨#Hê©HZ„k¢gèVòVÞøþÁÙz"£ÓGäcq½|ÃÑ€ˆ— ?ƒ“àsNNQ!· +ž—<ÏvJ"OˆµªìFDT½à»à‡¡‘µYoŠ£YF½7ó(êŽ4‡ÞË>:ßkÚËUÙ1 ¨H5ÂÑG/+„®‰v@§8RìDØÃf‡^ÄÙ3…ã:87‡P0ú§•ŠB[üÎòi÷dfõVï{!æt`©EbB +tNgœ„o<| eÐد$QAL%N:"HM”Ç*5Zt°†ß]koÃÁ”¡‚°ïnÄ#åçƒîÏ‚LÈ+Ô6éjmˆð/ƒrƒHI™Gå´jÅ1MÈ£dµ4ÒP–a Ì&]tÐM˜¬‹U‡äfu®V„2Ö埲 nmâÁdP<ûl‰ãþQ4¼±½«ïDLí›E'ðžAˆ+ƒç«îUÅ›… «Yf̺ð’À±SrÜôaÞ°ãÜ+á)®KF$¨’T`\i…›OÄEŸVó("Rø0¢²AvÇT
—Å0˜Ç¯ó)†»µk³™âê¦ìQ¿Fï°øó6k&ð2Ý&ðC²„j±r¢ÃË 6Ø„T¨§¹ÂJ¥Ú’;“h@ÌýºÌ’ àö*`3m¹ù™L‰#ÉgzÍIUl‹¾1J™ƒ¸HJ0ÍG¯×b(UÝ'œ¥ÉBa=%ÓC©¶<sŒ2<ªèLûÁaO6AV¸évC~™Bÿ²úå03¡CÚrê[L~Ž#”ñ{û!lÖYõšGÕ ’ígƒ9ݦN!4Ýq’tÍÑHD˘Ê!ùPßTºnîÍÛ<ê®Ó
—%–&GX²öÔò™³s!¦ +ò7¬x:™w°Œgâ¹ k[#c\‰,ÎTÀAwág.fíOMHX(úNÜ1a çc¥óÒ; I뛪&mt‹ªºæ§º?eûÁûÍÂqàÀðŠzF'(Ea•1Dï«#ÝPmSLIùʹZÚmDehýÏ#·¥Ü5¼ðQ·f{bÆ»DÑ5néËR¸S×›r<TÓËÀ…îb°M…}sw¯1ºåYéË (7'‡2Zü +15z§‰†ðšfj€7¸I¥±)σ,ß¡eEH±'†+›¼ÀÓ[áàë…C_ÏNjÖy.Së/;|®Cðµ§ÕåÁpÍZ¿‡R8¤cZȘ̩¢ DE¿†EÒdŽaê‡UmZ/4›š±E§Pž#îz8LÁÎëÉ»jñžSä“&« ð›ÁòÚ¢ïˆâöÑ9ý*´ý¬yc¿°!¿l6>JDîd¯e<l>5ígJ*ŸÖÐHßIsN(Ô9‡üJ‘X-`g.9ÌA„Nx¯×£ê`r›Šfu‘[±w*š‘\èJj+Ç“ÆÁ:¾„¬ô¯ê +Ðrô\šæS'!YGÙØK¬œ<²@ &“õ`‰ç}³K*P-.‘°‚R-û–jÂ!>§>Z¹™Ò˜"<CªR ›’lMZÙÅÒd´—û8ða:v-/e¢%Xžs¸àq½Þð!€¶Aý¤q4‡¥óTl +-)gj
HãhQivÄ×L‹<×Þ##5×t +Ñ9.¤]š)#â +vÍÔ]cŒ…³[{¶7Æ0[2ioñlÿ䣧ùµÊüMc¤m#@2íµ?œ‰Ì¥ÑS +W‚tÀzvr%§±l/ú»èû’‰SŠ1Ç}¿!gC¦‡*Шöwd·ÁÃð}¾ª»‰žúÁk&å‚©ßÜQŒ"ê…ˆÚy;M%b*Q#…Š2a9ÃFÌ"#œ¹·B»øh‹«¾ûÌ
¹%gñÌ*ùïÈökºYr%î<+_°*.‚w(-RÙû,ÆÆ‹½p3ïGfYƒ0)´*¹ÄÜ¢ƒXé€× +ÅeMQì!T>¥DÍØÛ‘0Ì{X;X8C .pdm5| +уAÁèýx6SmCäcPFa…&ˆrÝû‚¯óbφL´Êب›Zc`ðh2mJp^º¼ÿø¬5}´±HŠ’t‰u2´ôsDj˜ÜÐg‰¨ïåËâÊ‹]³¬–WÚ3…µÙEI“ÂÇ5ì7b©%ê¡*L§×4Þ‹‚0uŒ°Àä³–€¯§ªêæe‚…¾ôHœz.9ÐËC ¹fÊ +_‰›P¹.BdÅþ†8%ïx|ˆ¥H¶µÅ^dÄ@cHBd(ºb¶5Q£‰o?'Û(|\J¸õ-蜨"ˤñDëÚl&ôy…S?6)ê,l#¤ž€À™¶8ÿ¶`z#Õi³9…A…lå5Òzõ£´Du8×r™D§2D¤‘f׸æÐcØͯ•: Cã`éíºzRj¶•î±Ô½VB¥†PYP²ÅAÚirÖ2,;ÂÑì'Èn+w/‰›Ùm®ñ¶¾ZVêP£¤E–ÕYõʼ[•ÂQYaQhéÑz™º +z±á³Q3Û‡þIªá ·âŘòf†QÏ!,x’Âdèý¬ÚEe +a +ц’#Á¥@2Œ,™¤™G¼VZ”+ËmºÓ4·î¸±¥GdåEù”ù·åRúj˜V›Dg¡ñÙ1,vGNœ«ûjÆßÁñ®vx`?"©Ð=*váy
Ç@cq°·xßo$&0‹]ä¤húðS-&²ù¾ÓÇä‘Á€*ÅEän={hÕ,ó² %¿š©b§-Gz«”&ÚÜõ¯Q€´ÅùV©ŠÆqÔ
•äÕD&Ž%½*?0,—¼Ã{Ïc̘ËùÃæŠYŸƒ‹a áÄЖ’ØL"&˜6”¼o•ãËI -lOarÝ#ý핾¹€¡ßëUÖ‡´:ój1²dÆ=¦&ÞFÝê#‡Yà:2l +ƒAÔ\6˜³s÷Œï +¨Ò‘Ñ0°`w‘¥êk«}i$óx½“ITJðJœ0ð"c‡ÈN.ÄãuË7LöE1á™\ÒÐQìÉÔ‘¤0ˆ±‘¸3ÊVj!ÚÜ ªÃàÏ’²^ÓXIÍ&(e¸¬SS|ᚦÓÔÀ(ØunâWÆ¡úW¹Fröž
%9 +1”ï[lrZNÅ—Âf¬Ÿè ¼§!ÄAgUm}¦1â°›Ç*ƒ{¡¤Z„D‰ +3Œíg²ñ„³4ÀQ»;6äI%s +ë‡Å}ŠëQ´ø(¨TÀËBòΘ‹.Ö/âªUXN …ßàHˆÚ†€¦2•Ýöz¥å+\+Z™#ªÜèi@dí15räÖa°Ž¬†ÄtÄ'æ<nI) +B΂ԮýoP`
dŠ³„îŽFF +û^/48ìÀ!UzjZ22X•Š×zèf.«d ªmÞ™¤>Äù‰>5!ñj:é\¹¨ÀŽQƒà‰ŠL,PüÖzÐ]¥ÄNÊŠo)`"®º5ŸÞ3s«˜\©…Õ=EXÚ@nPµZÚ/nZã<+²@µê¡ØM
ìì™3’‡$æ¢ȱâaŒ(8•é7UàFÄ¡´f¬Áéo6'˜µÖÊ÷ËáÑX›}m—/&ÓK-›ø„×I±üŒ‰^ë¤V´^±}á'è»àÍN³ I)ã)²¶26pÉ<bÛ¯t¢OƒïÖÈpztVJïKèY@‚§S GÈ Ëx5ÜéÒRHï+Þ›jœ¡X×½j†ðYËhZ_JŸ}_VŵjB47 [Td2·¤ó +ÍYFY¡š•¥ÆÉ(—‡’á›Û´¸Áú38 +È%äù pªAaÉô3IŸ»¯~‰..t +ž)ÂÒqEy8›Ö*tjTMºZÕ8ûµÂÅ:X+*ëHo¸ž¡Ðì ¬:X¥ã¬¤dx +ç5©\ï‹5gyÔ,& ’˱X™Ycdûy¾€qh¸ÙäL6š§6ºI^îG„SÙù•Z›KלÆ2P*¡Sq´^X0oPEan#«\"[´‘@"ŸqÊ0)oè®Îy8E¥ï½ùœ×Dd|Zaº›!÷R7Ô¤!,3ëAìô &öÒ’õêÙg¥&auÄôžS\0Ï%ÒŒ*šaRcY!Bsð&ìó¥|چ׌”ý¨wS@qà3åÇíéd [Ý <ñ¼öƒ +û;`\àP•9f¬âheÛ%Þˆžf¬ˆ$`DrdðÀŠxº²î—#Ñ™p"‰õVÊ Êd¶½Y#5²9ý ¬ƒFÖ©ÈïÅH{HÄ”UÓ{ÓœØ+>5¶ +ž¾<rº Ûæ²æ«e•OüÄU„#48&Aò8€
$^ÀfÎÁ’W¦°Ü7 ïÛhÀÜÌ@6-n¦¨„)¶L}€6×°¦Ý¬b +Æ)gJpñŒ&Ja*³°Ò“jOî@B×
g:¤Û £8$Úð}ѳêᘜV£oÄëûiµÐˆH2£¬zÐuõÂÅñöÞØ>›!Có‹¸u6… +/ã½w¿vjLJëýF.ƒÛxx¬™>ô´µR,ï7hBÞxµ¼õ„ÌúËòâžÝþéüôæƒÿíòê—üÅ°ùð“K.>þå2úÝ?ðñ'‹ÑóÝiüõãÇW/±o??;_æŸ_ßÙåNPëGõÇþÈ??ô¥g·Ç'¿Û/½Á/}z|sv²ý™ë«ßŸ~ïW2ÿýüËkvédkè-quûÕé ÁüQó|ìÞTaÑ&åÇŸ~½û—Ý»7Ý Jô/;þêî_>Ø}üôøúögùôüôòÅ÷?ý÷œßÛq¯^¿þšñ~ÏÐ_]¾xuvûšao¿øc¼t¼Îw˜'|}¦/? +ü×Z^Çïüäpû|8ÿ!ÇŽêÀ¡ûž,™œê +I™æÔͺ_g~vùNü@§»ß~üÅoÿm÷Õé&ÉESOÇ0«Ñíúßžž#_ágqÚ;´·¼ÇE Øöí½>=½Œ/ÇÙnèkŠ/Ç=0ËØm_~ü§ãøîó1ûÙøÍÖ/{ÄßGÂk)ÚÔºøôüUÌÒEÒ¦ÉS¦~ñU=zûêÇßœ^ÞûÛ]¨AͶg–c&
¸Ñö^£ðgCKáñÏûü‹Ÿ-¿ðÛŸ-cþ·Ÿë»Œ·>qŠößeüÿ
.¼ô”ÐÑŒŽÆ¥£Ô:ãw·ÅxË}ä±»ÙÕ°×U
4sÜÈøW¼ftUÇ6:®éµ«šÐÕ´×UÑ$¬‚[è*Þ§µ®ãµ«eþögÓæ%ìÌr7ö5G÷mÊ4ê©.=qLeÓQ^
Ž¶úWó´%¶÷&ª›£§ÍÓ=ªÞÔkÔc³”–•×µ…9rOó¦§1VåöÙr„óÚÞÉÚîêiìê)væÊQgIJMOÛw˜µVÔã„5º|ç·?ëRZúœ£ÏE‹¥Ê»M¦6›{„M5Å —¾¿øY沯K%Ç·@æ Îùêìî¶çÝlÊŸƒw¬Û‰‹i`û~}½ ‹ãÐ]µ¸GŒ
«¿¶=ÆÚï6ºp]¼Ó!¶»—Ž{ÂKí°dÓöU8Jö¨¶]´=0úFßNùÇXòË>ÊwzšcL6̽Ð3ÞêÔÕŒ5»¼øåù¶]‰Ãž//fe=I}¨µ7Qôo‚ÄÇLx S–ëÝÛ-êá3·ÓŠññÙ¬_žˆÝÞžÒûÜžÓ뉧XÝnÎ~ŽqÛQñmµ\>¼‹Éú¥¸s†˜¸.&¸lÏìÒ·ç-8Šº.îƒèiE€>–Z»h¦ðtÚ…\¶og™®è»ÇþíÖ¡]à~ÛÓ-Öa¿]~)^tÞ.šì#i95'ŠÂ³Éçf"U‹°ÇåZ¶íˆÁm»ìcE·a´³%~¬Æ´×¸´{-x¿+Œu9&~‹EÞ®Áv’nþ%Ø$ûX®íÍ–þîÁZÑó€e‹»Æè†x)í…7MšV›“}¿l‚èûqÀ[°‹úÜ&7vqt]à +i§N;›†hé·×ç¸`ýe] +šŸß£v.þ›es{QLü÷o¾xòË«§þñ_vþñâürùóÑrn.³üêVÕg¬È[–ìI?Bÿ›O-¯ýüÅõ©‹˜Åÿsû§—§úë‡ÿíòæwß_ßü˦JkûÑïŽÒgÑ~óšÏéjÄ]|ðŸÿîgçòêòô
&¨„ýᙉOþóßö¹žŸ]¾XÚ½Á³-‹ãÙéí/ù?ü|ÛOÿH¯ÿg¢ûÞ™x£ç?;^ÎÞ7Yø?øVÿž6úÿøî·:>ú7^Ñx¼“W7·Wۓ쯷ÿÇÍ1²\¸ó–-ö¦Ëñ¯¾/ž¡Ðÿ½ÊOa—Þ|ý‡÷ø6þoƒ›ó³“¿÷³ø(ça¼öý¾Ñ»ý[¼GC~´ø??ô0z“‡ùÓßúaÊ0ÃÃ~èiþ tõ?цý·|ª<W:~衾5_Æ?Õ·YãoùX
xóºz~u»˜ON¿¾ýòúìjñýà£ÝÿÎ{põóÌ{võêúäôS€ýþæwÿrCý‡pqz{üb1…Þuó;Žãÿ}áØÛ¬®Í‡9}¨,þ¢ëv-ˆ±˜1¯^îž_~óêø›ÓÝÓ«—¯^êCÀ¨ù;óîøúöùÕñõ‹Ý ã»Ýî:|˶9ØõSÓ+í~uúÇÛÝÏ_œÝ??;7·ÖòÿñÅ鋳W»¯No®Î_7tW¸ò¡A~~Žhóåéµ~âv·z~wÏ‚Òª²_¿ð(´ñ‚¥Œ{¿yyu{çSÇçgÞu%2ïÅ˳Gj‹É\æâºÍø'¿Ø}òêöj÷ÕñÍíéõÙŸOït‰Y|yüry€›³‹WçR¥îµó|¯‹e^âÅîΖ<¾=Ý‘Çu<Kg+úûâôæÛ6$þæfê¿·ûß_^üþêÕíîÅòÛd¬ùêöåòïï>ožîöúøòæåñ²%Nþ´ô{öb™‹˜¨\qß/ÅÏÖÜçéõŸÍëêüÁO>oì°~ô{ÝŒu»?Òî붌OÎÏ^.Ÿ‡£õÇe¼ß,æ%7®£ØûÆ5çùè»Ó“ÛåGžŸ_žÜ_e{_YÞê°v·ËnÜ_»¶÷öÜÿ÷ê»t÷D4Jß7ð`PÛ]}wzýAÓ›ý7ýûO~ñ,n§ËhoþýÛ³“oŸ^_}}v~jRµM×{}úÙç +Ÿy¡»Ô¹©w?· âL}~ݧþîÞsMyW +R~n +ØbŸÑí™9’ó›ÃRn³“Ý©ÃL6pjÚî¿°ûÄö¼Õ¨¯@H,.òZ^nRËíõJ·<1{˜Ï&ÌÁ÷¶”ÏþéÞ¹¿_J/¹{òš êÙ³ùyõ³s¼u‚
ÑÔNhŸýÓ†¬%,Ùn|ž¬.Û±„ÌM©6§G¿¢àä/Ìh>ß.àoy×ï'(¿SrSÜŸ Nø„P°áˆÐ["6²n[!S‚
KD‹ î#z®mÐí$4´ÛÎwк•Ç?ÔöŒˆ™M9¿SvÉõt_,a}6,
5x®6(Üuh_®€É÷¤Ù‰•üLõ€ÎÔÉøt– .£Ç +¿¢Žº KÍ|Ìvô–LÎOGøµ ¿šS£ÈQ?ŒÁ¿;áXNNè+‹ôÌãÞ2ïÉä¢þ¯çËsX¦&
›’׸ÅYˆœ «¹oÏ8™J€Öº~j¢|m'òWç +ZЫëÃo*R·÷Ùþëi›7ÆØYÿワÌpmcL©é0•‰(aj‡q‚á^ÀºšpÙ
Ö¾6`KcºèæÓ§ê{ÌZ0cU™ÀLA3÷R¿˜ebÖcÖŸU³m+UÌ~öÎ1§ê¢Æœ×¦skB9ÌcR
0¯}xÂ|±¢ó“®hb,8‚š¶‹Dre,Ú +ÿ`±Ýˆ%K~«†XJsRcdåÃ2ø¡‡eË–7_ãXaŒ±RÔ¨Ç*O«Nâ+¬ž-º°¦ÓÄZ×_%ÖÙ›RØ×0¼Xz¦T7=lÔp›°I«VÇfƒ[Ì"l Kl±e°m {ÄöeK;NÛGìbrd”Xv|Uª‰¢R“Pi”ºe§©4&£6¥ùŒ”¶â8¨tÚ‹[®tÿrJ_I«S»ž2¢‡”±S÷¨L.ku%9È»”Ù~v£,ô2eeyVt)k›êNÙ¼´Ê®
ÀéÅ7Jå°Ž
•“-À¼fÊU +¸ñªíáöÒx‡{.q#*i"x¶¨ãéeu‰óa=^÷ZbxWyéàƒÍúˆÏ~Wüw8ªà‡Åt«Áfc—F»žU5Íö qy•AM bÿÖÄVqפ=¼¦ØYï4
)¬ùª¦'š±måÒüÌÝߚѶh®f}[«9·ÍZóÜÚѺZ}‹6X
ö´‰üޥ͖ë3m¥‰jÛ+ÝA;¸.‹Ú…§kÔnÙ¡ö²ŽEüÓF˜βðwt¿' ÿú.ºìèŠ@*껺F×맺YîPÐm6î’È+õÚÄ|ª·&½·Pˆè£ƒ³EŸ>g}Ųžé;¹d[?Úcyý*Ò +™÷ߦԙ\™ÊÓ³ÊÔíWœ¦éÈ™2m'ë¶Y¹k¬Íf<b4{æ¸9^:¶ÍùÍbon¹{Nó¨×.š×–ÚÒ|ýù²YŒ‰ï¢Å£™l,±å`±ä[º¶¥U©-ã|3cÙäv«2çY͵ÚÄꛩÜÖä53°–§õ«™XÁBt[•ÁĦÓÅC6gSµ¶EÝcÒ–»TT¶ÖѶMªN·mðÚñ¬® Àíö’Þj×õK{vl+Ú›{¯Ã>±'÷ö]¦ÒràÇUÜákŽÈ>µq䓃®£c°¤À&ó:Ž•Ö©'ê;§Ç¥9“îQÓYñ&rξ_sþ~|.e»lSà.ë%it…C^+×5*]ƒúâšwÕg×Ù©>»kÃÅío{•ît2‰»›Ö²Þ=5ÿØÜG“Áë1QÏ>ÊxÈ„µîiÔêCÏd£ÛxŽþ®Ækè¹<^¿~F‚ý,=Èw¼ˆcíöïy÷–b¹íe2_>™pù¾"Á’o•ýúUå˜Ãï˜ç+þ„¦uðWSË4W~÷…Lê[
H%dV4èΗ‡Àª&xPß샮dš„ölýBpÖÎiƒ—±²éTîP,ù» +U–ÓlhìëéCÇÅ×(lŽv“áˆa¦—ÆËixØRçÇœÛ1¥ó§H˜˜ô#¥¼!~ÁìG«ƒ&j6'×ÑHéÔ–…JtLšˆèé0öǬå´5÷:µ±ºÇb³íúÇýuÜ9þ^ÅS³îO¼ýÓ^ĵãeBZÿ&üÕë6‘?ØN‰A"JNS£OZJg2î(D’õË%—\LÒ-BݹÎo¹t&re‹…è·—qâ0*ÖSVMd•JøúT³‡ÅS+öKjÛ¿g2h]úÉÒ|Ý$'åË9ôá´Û줳úÀ’îãÓbúhÔŸ26>™!*§u¦³LE2[Ãæ'kjä#Ù¸^ÿ›m~O“Ù_ú”Ó_¥\d®2æêe?·lÍ#y]ùûœ
Zy`Œø¼\] +:ß©[ ^¨kã†Â²õý[ÔÛ±V1²J$‹æÊQüM±’Ñû³,Å=©ïRÛ*•¶¡Q¶É`™ØåoåÕT>¦ÖÚŠc9VU²ÑÞµ2¼.U¬¿¸V}ä^Y-ûu¸¯.Œ}MgØjQ篷ÖòY£µm©™«[çšf=mMꃲþÐÀ”=cÃ׈†•€®Üø¹,&Mô¥j&¾óæW=VmžÁuË=Û[Åe¤ØZhR¿m}¢îRàíøÏ¢ÙþòáÊöiIu<™þo§lÔ;?ëâ´k©½]¢ßœtûßß6^-¾ËBô«a +쿶)}áÛ¾8¾óΟÁ÷l0‰ôôá)ÖK⫯^orˆô±¾E£ÀûÁR`ÒoVë…þ¾±ñ\cjPƾƒ•×ÐZšÍÔ0«³{‡ÓÎÒ8Ò»²×Qrg_ß—éXôÆÑX«=þŠUêãk¶Rk•Ê¤5kU&'ä6õ•.->ŸíßÓ}>;žyL?¿³êÔvšm[ßú¹+gsÏ+á¯Ä|“ÖÎÌqº(·;×Åzsþ8ÎìO¹®þ +üèEÜÇvv¬<aNËü³ô[§¡Á›>ëñ…ÿÿÜÍUAGUý#PÜ-76ÀÏÛ8Œw·£#§ÝÅ +ð +,ËðŠcìwˆS"wn²yµsoÛi›VIë̯½Ö™MóÄÆ[ÙR#èðX2RµS&¿˜oDöÛ£Šx“û1Ôš}Uìp0 ˆÇ ‚Sòíi{ª;H§Hb÷˜é¥Ùšlö¾ªHXÇ!
‰¿N‹¾ (¨‰·M”YúlŒ!úS¨ÊSÍ“¦Ôˆæè:²`évlÆH$erÑŸ0
§g¿¥šÉ{‡¼rÂMc¹{úLìºp
6š»Ð37– †ˆÔÐRwy¾<¿Óxƒø5kþ˜µê„gÒ¬†2Ä0o,§—xE=-Æ'˜}`¿wUà7³¯Tg½ÞIDZÎ2¬`¾å”¹MXwO,ê©¢' +>™.éƒrâ÷ƒ®"Áìy¿H®Î+”–æïŠC¯Êf˜QçÍprM—WÑÎ}ånHz@Ž9Á[¼`H_†³m¼>ÊÖUXGR +1#Âo†WSNŽ
;gË0hˆE\;àì5’ê±%¹»9`)÷„÷–ž}ø~ÍÙiX¿6€M4½O™Ó0 bµ
»£6FÂ'zK{ñVÕ›4ˆ|>c&C)·½…cù1ì¨æbOlr6œ«o†?½¾èÊàŠµ&Vo%S¬Ù'ƒfÜ©ÁÔ)‡^=HÚÓÉB~Š€%nÛæ“@ÔnÒ%£÷g@ááþ†j‰žÁ¯ (“è‡è«§^pTáÛ0úõA>KP â!3éu›‰šcøuHÁ&! “asø€¸£JÀF%…âよÝ;¹ÿ"ˆšÀÞTP—PÀX +ôdºgM|>—ç'Zõ+x`ÛîYEÚv¶ vq³ 0¯·ÙŸç‰Eõ\·®*ß@mN“”¾ít(¿¥!QSH³!f…¡Qv'^&‰ßö0¹úõXƒ‹-þô[ƒÐ$2òzk³=윙Ñh5¶¾é3 ÀJ¦ýÿɲðîþ€ñcÖG)Ugdµ²6¹4v“ÖU$ çŠK'Ž-²ËÞB2†0cì9¨dùR§ +: +Ôš§'«#bF…&Bs†*™
°,ýŸ«ý³:ê_ÏóI0 ™‘
#~"Ýõ.€9žrØiW‘¶Šé{<#…Zc©ÚQ•X4i §I¡Ÿ¥(D–*Üü”à„4k1¾ò’ƒ¾AE¦vב÷o}ôì‡Ljë·Ï;-äÕJŒ¥»-Ñþµ‹Ç«¥z‹$ô³Ûf±ï56ïú:©Ø +ùɱ‘ù>Ç×ÌKrÙÃÆHz8¼¬¾Ì %ŸX@µ¯,ž
@OË ±v„1æÅÝ`̶ÜDJÚ_Œ·X|¸?™Ò”JlÖ=XªÆhk|¼!hxcÁ|W ÌÇ%Æ…]Ž×Ó³_0/á“#ÖÄühЄuWÇ.¹zäXty¾¢IöWPXc +Ü¿!÷±c¿·lܸ—
L&÷:ÙEiþµ9<q
1qÍëO¹—ÕȽ?`%“úÊ&Hî/‡1Òí!Ê°òY`,îM†KDO0/OîJXj33Š¹oQ
’Ü%i× X|æÃq¿"¬`ìFOíܺœFžgºsi"LKÐvØ
·yGb[Ž€]Œ£x”\‰òÕùH];§ŒÏ‚µc1ë.%ZuôÅíã*¸ÈL~bÉEIlÊv÷O8Ú±C¦®'ƒ`³önº¥MìôËÌßW˜Ê¤NxT— +>sùFQÉ ÷¶6…Øè¢êÔж닱Pà)Ó¾x»cñïÔ´²ÑóÔ%Ú3ùƒ¯@õ+½gk©ob
ýæÇ·t±“ÙWjÖ~`5ð-ÀŒ·
`^Xê
µ…`Å@Aé5Éapiå#uDŽ[0É?Œš3/à\]ã¾ÉáÇbÏ´Lô30Å@k¨fR·÷ëy¯ì“BÖÁ€¸ï¯°Ë%sb³µ-ÀzYy"r7<øíC£ÛÁy-½¾êÞ Ú5 Ìf“ãc“/3aóiÉäܳŽ7ˆ±=±ñ©|6‡é¸ŠÊÕ
š0–„yXEè|"<í|¦!ŠñZ#v|\ªsr.žc{¢žN:YJ¶¢wíÐCï/ÞÐjúMd§µJÂÕv\&~ ÂÀæa«’º\´àÏôÈÓ“h-ï æÕññ£ê»¼ƒ% Ô¡•…´>l1ßÃE÷Ò«ñ!\Ý¡ÔÄúuàjÞTÏ|
ºNUš:Ÿ±—ü^¦ÈùHÏô%5It +<P4:¿ã†ã,–hö¶@{©èeQ „ðíkOddTd2Þ*b,ÛrŒ05ÜwŸ!Õ[ÿ:žjĽþÚß5JlÁ 6Ñ&p#CSIoÞ™wõXaVtEm°¶³i@Ìkí%—pu•ÍL¸çÒÊ)æq è,=ˆe-ó#µgó'¶‡»aÅ>þuª€‰ðåg@ì>¬D껕K<ßµÏXHÃùÒŒ˜mý&ö™è™Hùòú‡‘¿”Þ–n§ÞO/(k,퉅?·!&†î/ŒN!2¾Ù)‘;”·^Àìã¼@)iíù|ÈJ©jŽjÝL¦ìˆ×”· më€äoX=a2Ixðƒ›ÈŽ7øƒüÙTô€6ý”¥"ŸU&´ä2PÈttɘí2s¾›˜Ád&lþÆï + +ÒÛ±ñéi?_ +ãÿÌOòîzÂô²”%U—ÈkÔº+çÖUº{ÙÝtså3¥&¼÷òµn&X™ÞRÓ'Tl)ˆÜ‰#ûZX)¼B’ž™i~ã-ýÇ;Ѳ@vxþŸ½˜åÖ…¼ °º]¡'%›xf)5ÄÚü§“öe2³
Å.}¸ý°qZm!Žö“¾îx={¿üáorUÞz\’$ ¨–þKjÔeE]¼R’¼Òˆ‘aènHµs!¾ûéÎÔ +Û¬š+èÝ~Á _ÿ]wëBÙ‚dzZdJ8ȳã˼±¼n'»ñj#u÷
g
ËR=XBuH®8°‹·ç“Öjþ¿r»ÂRSå(}¬yLQ“¨ª«›~ÌJðÊÜHÞ·cYF¥ÐàÀÞ¼9_,Óýuw¿F˜º0%»[ÿƒ¥!ÿqnæÃÞk]rëCBTÝHxÃèí
™ýD0Ìq¼ÆhkbµYEƒ1º¼8á'‡+T
8ï/ª÷OèEÐm\ÄŸ^gTµð˜Xغ‘û[‡1\ó,1½3ÆÌVmMcÆÈ:„éK_~Ì´\W£…3^uÌTì˜ÙVtجᮡwcI}Õuvœ‹ sÄÚ-"΄Ïéó|y¶_(A95˜·¶ÌpžTà§S$<‰›¥\,ï?G|™PÛBî¿\Ô©÷e#¾ÈnƒÇÃS»!îÝÑXœêª1i6Ô +ø +çÓ)xn +#M{î@v`D:P— + +œ‡–AêYåÓ¸0Ò¦;íøIiÅÞs)ƒT3hÏZSÑ,‚ԽԵݔ0R—¾g9~„Gª$.®j6¡±ÚÈD>&‚Ô£RïNú°ÒîÀF.Ju)Jž¼£Mc!=7l"Mg
Qò:¾"B +Öâ$ÅÓ6Xɽk¤ +œOà‹Ê¥‘vÍ:£%W˜&oª·&9H¿B¶‚×l‡H
<¤ +ü¬ÌÌ÷žÚØì +%¿ëÛl«õJ¡±ž•ù̼ôý¥× "miw?¢HëËêh‚*ðDZ~§mü!$Œ´àÄ›d,FzÈ)…™Ñ¶†iåE„Àße[;š'„‘#©á Úï"í—×Y„î/cýíºg¤ÒžÏÖ?oÌÂHK¿‡mÙïsò,í0kÞ‰ø„טÒnÓ–Zms‚H}%³‹õÍ@Ž´#Ÿi®CïF:qêyL£ÿ*Œ
©CÑe¸#-ØF†@"51Hˆ€ý=Þ„~øÄGzÞkÂ4ÒKÔÈ)Öë)¤‰®=Ë„¦Ó¹Á +œA‹,¤´s¾…‘ºº_¢HÁ&òkçécì±"KG)Üò¦bHgl¤®:°‘Yh}¥D…t¦Ñ¨¤Hû¿#uòȵÿûHÓR}Y¯l´‡¢H‘ö/‚؃@û0HÁX8cí‹">»Ä‘Bí_©‡úÿRx¬!Ì"…´ EŠt +)ä}Z¨S48³:÷ßУOôDè“_³œvƒëvÇæ}‘–Õqꔟ¶s/éuGK‹s/NKËÖé¶:5–ƒ&B^O´pÑÔc<Ž·®Tó'rÐÍ´±eeïGúÐáQ‡@Düõ/êEÄŸþ&€à§ f'#šhô‘Nÿ1÷4¤ßÜuKÐ0¸ðjÄó>±—°.ç~ÿSck̴Ϭ|oL@,iöpG¹(íS]nVÀ
Th¯†u(½Ç¬T4\Þ=n öœÇѸ Û\+I¨Sk–×)v—†W-XºE“Cµ±üh<w "9–ýk"ÿŒèðÝyʘŸŸgFˆþˆÎàmþêÊçó§ºÏ@¯1¡Båµ)A,ùó·G듲,dK˜Ýø%EA)ä,÷±‚æ—V³®8;2µ²Ò½ã딤;Pn¾è•ü6å‰/Nšî +qbqEþQôR\Ñã=ŠgK7Õ˞ؼw™C@
%z„i7€—ŒÜ,ÒSÊDý¡igß Ó®kÆDŶW"œàкÊׇÆÞÅÐàœÑV£øŒÔ鼆>Mìa䊽‹±F5¯X4ôì?ˆÑÀÒÚ¿4 ! Ö0ç:,ÚÞÙ½ÎGz
è\‡™&ÓÁ>Vk3¨”Ÿÿ„±‰ïÒ˽1|[9¬•Œœ:ÂÀìr BtgòùnLÊå;i®{åXÙ¹JÎ¥ÊnjÚMðÏ·‘uHñ°,€dÔ¥òBÓ (ÆžPøL(ãˆ~\`|w)ø¸6ÊÕ{—XýBc¹¤{IOÎbƒŒÙæ—¦õA{œÆâ+§d–~¦…É=kßY‹nL2tF¦1Ðf¾/¢Û’e~Ó&™×µ'!ÞŸ¥¹rZ€XÅ=³ñJté͉î•åÝ9*è’¸Bw›:.o•/©X<Óù93¸Ã%‹æ/]Ù2 ¨•ü°úNF¿ +ü•N©þ( +\b¥ƒµÃÝôþ" +ÊÝšd Üdò+p^ß÷îö¾ +\HàlB½”Í>:ÖQ\¦7ÞØ<¾qøìÝØÛþ²ÐÅÅLÍ, ø¼|bfÊÿš˜ÀZØKBV‹ŠÙ?F?p™¹…liŽ%þÌ/¨ILÂ<‡#Oµ…‚ü0 +ÂÄö¼–@uy)„ŠyÝm,æ4F7ƒ½í¯êšUÒCSÈLvãFB¾êD+Ìù»c*ÙMì؆k%=Kv·O¥XÒ2%Â1MŸ™!)^6'SX0n–ýñÄfâ8>Ë|”'³ÆäKF/âJ1³wâ¡|)Åå¾ef>·í±„βïúØ£ëì™ãpí;ðÜ$à·MÁ Ù?œX¥EÕ.Ñ,0–¦ÄÏ{ªvÉÎã»>‹!oò,ÿEÅqZ‰§¦‰'ÁH«Ò1ðÚðR%Ö©˜PŠ¦øü=—E0Ks=˜‚ó'7Ïwz–#µ¸ÑéØÇ2DOÌɇXfÊ+Àž¯xùã:XߤØÓ4Qùƒd$ÚŸ(Æuü:®™è”áÖdrÉÓe|¾fÖÕkÂ~Ké|9 +v¬3ÙÞϬ‡ÜÇb"(nL¤˜n)'&²µ—ùŒ÷Ïkç»j@H¼ŸŽà˜žÍ¾L8ròHD¡Pú‚óL®‡H‰øç
&׉;ÄãYµlD"žµGÃCijöød"xL(êíé´ÞaC&ùˆåUx—
0Éke„ä˜(vrÙPB‡ô~Í^\hŸ¹
Áy}Dò‘œ$BVy»ØS8âW‹Ü¦%fýx%ðÓÛи^iÞmzÓ£&ŸI_ìôÔ ¾g¤Ú•
aYìbá?e¤Ž•CI¤23RÇʉ—Á“T¿d¤öŽŸÉH…p>‘‘ +óÅÞÏH…P>‘‘ +áÈ»šgÅõ!¿4õå #½™ž}.vÞfC^*œ°ût*Šç—ŒèùD*œà¼|<îï~K.Ťm÷ìÊ7RáØw¡d¸ÿ“T8¯ÂÿA*œ°L¦}Ö•RÙ¢€}²TâÓR4VUÎð\},iybÉ
ô‚ ܲ<Š2ȘøÍv/ê0—¿z¸ÀÊFïÊ<‘ºˆr¡-Áò<¹™ŸW×½‡¿9ܼ£Ûÿ°jœI=¨Äe¤¼LoZã!¡š]S¤_H%³^´@ò“¨·‹Ê†_©S,žñ4rÉ„ešL&¬yX„ ~¸mGø†ÛeÚãÄÍÅÊ:ƒV£ô-žwæ«*ìåÅMvNËE¶ó™…Ô½4à!l/–açêv¤’ÝfVQ¤6²‘Ê°ÃË«âXéHiÚìg!åçbŒg–ŽŸìæê,÷Ê„¼0¥N*ÙÍná!åÖãnÅ2ì<*ÕÑsí‰%»}Kem¥3ìö†(RMa¾œ‰!K×ã«vÄ‘¦JßiQòªwÎàPi•›a‡f0,=jô‰^ç™í‚Bí(¯§¥«WÑ¥¯Píè³àPDK7+)B^7ü
UÊw,#ä–«ÁwÔX8gDÍþ3©=Ï#Tù^ñ:VG]b‹ItêYpê³8Êzýd%9¡²#wªÈð.IU’{É÷MÈ‘|’
‰î„|!®ïY9ɸ>ùëéI9Ññ Õ}{VlDîøž×MôguFxw©½Q?N>¿¤çâ…ˆDÃ]å “öôþ%›îo~˜W³é„ì€[-ÎÏeÓɼæÍl:!Ÿ Ÿ_ÞϦʥûkæ£x6/^8Òþl:Yhž¼ìl:!POnùC6Ýwä³é„Îiî{åDzé„réØöþg²é„rédÆö¼M'äk¿U`ÿ\6Ðì"OïG³é„”vìèg²é„réDn›#›î±KK•¸¦ô×l:!åT:›Nhþ¢¡Þ̦ãƒzZSøOÙtbºåg³éäSìl:(þ™ø‡²éþD±—³é$s¬>–M'œ[ýél:! +"YÏbâuI®(Q]Ž{0õ§.AŠN½TvYªK¢F‚Ne—ED&ÜŸQÔž;ó,"§ÚxRØ\Ú3w¯–%Uèîí2w¬{®dªä)s'Z]./+WIf™;±L.y‰t²$¤ã“™BwïÍUº{SeFÒK%«ÌÝS"$ÌÛeîhFºÐÝÛeî¨Ü·'…îäò¸çÊmÚ¥'Q~žEþc!J‡<£rÿ9—-¬—»>EOy`º§±‡ÏÖ'L£ƒÆ³¤^V"œˆfÅóCñ Ùù… +£5z+G˜±÷.QR6„Hù´Þ«TµáñHfâ=FPKZâb1Ôóóú#™)÷›_×$A®Ÿª`^TĈeó~ó¥BÕb§o°ðÚÛêE*ªó8¸%€‚ónµj +Ê …n8|-Vµ)#‘á¥^½Q€
[2dyàß®pw˯«q÷6®økÝê×*ÜIe>¾Á†·…FW¸ûH¥¼§ùDò*å½›Ot¯”÷>JT¸ãæ%ÉÉùK…;©z¯°ÆÝëîäÞj³ŸÞO¬í5GÌz•X€=Wsrª6Ýßkù™îwýG0¿°(˜ýÚ=WÎäæÃÎGò9‹6y¶ØS8â¹°¼$&ųk&P¹¼WòÛ…’˜Ø§¢P@˜Ø0 {22üZ·ºo2Ó˜ä$1iþ%ÊÚÅä¤1qùÄwÊ€ºÏ‹hS@'+C]Òl¿se@'‡+å$1iÃ;¾òýW»²óR“X¬(±Ó¾¦vèÞ7nåç)†—%vºT
ˆOä¸&-â·ŠAûåÕŠt/•{D¤×ǺŸ»šª‹Nß>”ãÚ½šêufr~©Üã“JyÖ?渲øó†!#ëùyŽ+è’ì¬g©WÚ'¢àÆwSý`Æ[&Ü Öödškªy®®À‰¨±ÞïGFø”® ì>²Ó#gmDIPrí²|Çô'N^)Zc#åäÃ)ð³ªÕ°]UÜ:läwW$N/ž„wºŽv®Læ¥áÙb¹•Ú[Ó÷Å’ðz¢HÁX”äÁ):V[ZõÕEªÍN,?buØôÒ{&CàŠÛÁBÊMM;k½¦Ž “—å¨×E¿7BH8$0¿æ'
oÌÏýc“7ªˆ õ¨pW‰1>X~FÜPiZíGš®ª¾„¢ºo¾'µ’´&UG0ßGšJ5INd@«†ïM÷OtæÕ¶rg_¤3imÇί´¸ˆÆÀþ’b¶I0残¯tÞkhowóLJø‰ïÌ°I@T·qª˜=œ”±7Øa~bÓS‰xJÒch•h—àJïTRNjÓóĦó§*³ ‡î“Ê,r=I„th•èÔ=Tfꯄ IeÝñnž|#+íI„&E%…¼õÄ;ôzu|w¯5Ì»{¹Ê¢H—¢´øü"›è/Ei)p©N‰û‰_ë–âqZtbcyâ*Õ‹¸‡×©Çš)3% +ü%‡®h]?é¡ñ|®ëÇéÈCU¿?T +Þý‡º~Ò7ÝÏÄ߬ë'¹Ñ%Ñ.öº~Òná—n ’¨ë'mê +FAÿ¡®ŸPš$ÃzïÕãû@ÎûKuý¤¡@?ÿ'êúI¨(dÃy'ñŸ‘ú׺~ª&«ª»:ƒíº~<6´q«úqîìz9=Åv¯ë÷4ïõ#uý¤«úÝWò›uý¤®Y©oÕõcò·„Ö"ïž«?×õ“& Ò`?P×O‚×Îkç‡êñ¤¡È®Ç÷¤œœìz|oÕõ»CdŸW³9êúIä=<¶¿Z×OZ“‡7|¢®ŸØÞz<Iü[þ–uþv’øŒ
ŸÕõ“>oæFü½®—Ú|kñ¯õø^Ò¯Ç÷ö¹Wõ{¿Ÿœ$¦g·7<Æj¼VŠŸ‘ú^]?Žcû¡ª•1ô~]¿{ª”T]Ñ·ëúI«9"kìåº~ÒUýÞ¾µ‰®ë÷¦¯Of]?y¯¨ë']Õïåz|ÊÂåIËǺ~O†gUõcay«®ß£+™]ÕOì–³WëúI‡wñv±?×õ“tâù”þ\×O`^XUý¤ï…“_×ïï~K.Å^Ïy±+ߨëÇ.¡ª~ŽäÕõ“\¬ + ïÕõ“V)ëõýº~Ò ±ôŽüv]?î ùUýô1Ù7Yqëú‰+A”óä&+™uýdé0o×õcÏäãŽDv +×õ“Þ$³8?–KíûVíáKJG+7…#>ø÷J-©y{%x*îÚ•¼ç¥-rVÓm1§7‘ðOù¦hT:ÎiÙ3„±YËsÏž%Ž%Z8ÃÜ7Çy‰m%‡¿Kj›µ³öR`>¦.F²›n‡Y§ß—ó´Ì‘‘Mß_mtæ^›8&l™ŸR\u¼&<Xo<s‚O£îö3šbùXs×Ýoîu[\S_‘ìXò–æ.¤]£DmÝŒÎêEO{Ù˜—ÜÇ–n¾P·ãzñ«lÔòëÀ&ÔÙÏ£ºÝqè=â§ØÎSÂÚ¥¨VíÔ¥=øâ;›Õ_—ªo×¾7мr;#ÍF½…YŒƒæø9¶Œ!§6f#ù„\Ls¶´GS;F~ÝéìkgϪgrvO¾+÷Lˆ1l5·-΂_yK{ûµžÎ½=,6çWQ¹Õ2„“_ü*ýñiõ +ÿL˜©ÛY…à)ð¿ClÚˆžf8Œ75ÁQréÍâø®
÷ +%H x~gP¿{q„êU¶1‹ÜÃålJ2êÐGÏ6AííCòƒŽºN
-ÈÐBçFøÀ3otsEu¿ÓÞauÚ}*›|Ú•LÙ0,žeå;‰Ÿ¶`Œâí«ŽºP8Cí0Òw¥[ãÞ“¬.£gÊd\ ~V»ÀÆ-îí
4=„i•â0&ÕÑÔ]¯É8tþ®“ÑtÑ3¥2MÛføŽ8Â{WçŠÕYI’8Â6Wº<N%~±Òq a _{Ó`ƒf§&øm\G˜ìéÍûE+z +6ÿ–=;Ön‰½óM¸/‘©ÒÒÕ¡?Õ»‚ÙgtKT—jèJø¢Ë¯¬et=Ã÷É9¹©t1çM›£®µ€âÁ•æר†õƒéyqu¿ RŒ¾‡„{g…&Yîa¨‚ÞÌå µcÀÊ+ÓFz@Ĺ~ïš#Kçö›}O -û¨îéL÷±Øl¡#NÔ¬! +ü͉ ¯Ñ½W[Ý +¤RHÙò»Óž¶Çⶼ}ëŸÊf¸;èž0܈y®–W»É¶3‚Þ^7ŸhïÌ%–݉ÏÌ»)б85!OÞºŠ4óN
1‚gßaê@Ŧ³|!%ÿ¦âÛ€QT·ØMIt 0ŽØMºr‘ß>)dõ4oèj]ʨšŸ×Z6uÜEF3ãøIÌ‹{”Ë…Jïö,gÛ)Z¶Æ3OÌqÝ–íýÚÅ#í´b~{ÆúZj}¬ë߀gƒvˆ!ÈU·pôÈ»¿ê)l°JjGh¬úî‘ÃpýÎ43åôІ—nøÉɸñe˜éˆi(EôÆš î9òí©ðbÊJ¦ã˜Ì¾¢Ý{ÏÚl›^í³Ù³Ú äh#{,0[òga7ͶÜ:ë§ãù)‘C¹w¸p£}šYøÔ²OÔZEd„ó^ø3Ý+ˆCçO2ÖXÂK{áÐúã+ìîf4ñاëG n“8Ó⑃Ùû«ÍDX·p˜øKew賡`ª¸>âè¬[ÆÈÕ;†_1—3ÚÔyQ½ò‚x
9ØÄê6£ŽQ©TBšÒÄãÐ×0Â>Í&Ê€_4¿ô(;7]˜EAo#V»é°%C4mD Œ=:—5AC1}ÃÈèîî¢è¦U‹¢n ±ù5yL%Êmì(oqã\`ƪ2ªÀÑÿh‹ð~ðè`ýšïí¡Öùøhâ,âä…é’ùx|²aC¾BÛË*‹¤ûÈ
4 +A“»Ó”=Õ¹:‚úE{áX+¯4Ž†iKüÑÕ!àè@þ8¿û@¾*ñ÷ʪØö—§_7F‚Þf +†@÷RNNthÉÞòvÐeeΑy̾ºf ÿÍ’ƒôr0“´«‘Š_8±Vª=c>¤#Ì_bvM$aiÇpJÚÁDÅ= +؇q¯^³ÎX#à.¨“áÛ‹¤™yÁ;f`^ +!îf{ÈÛ!JŽåàŸ(Åû¦ã¡,Ìöw¹"¹I +m‘÷?»I +m‘ +üÓ›¤ÐÉlœŸÚ$…¶Hn) Û¡ÎC$.;z×Íw?ñ9ìf0£MÆ®§f0ÝŽŠE˜jØ›r\‡òm#‘lL\¼`ÕÑs-Þ +Ðe[öB¡LàÅÝÈœ +ÐV"3z™ð”ïEj¾yí¸TåRÇ,9[†¨Oî¨v¼µ¢ž‰Ü²‘Ä}Jºý»€KBÅØJï ÷32Ur ÃüÍgô’J~“–ÿ·*9¤ØŸ|F/©älÓÿJN]Bêû?VÉἈ¨ÐTÉÙæÿN%XX>±ÿ+•®1 ”ßUò3eôi¥›œú!Ðk)+szê˜nجè¸Îëã¾µ"eƒ²øzt\¢ÛN ;Tf‰“ RwÑÜÐoÜ3S‡d€×¾€bÜ:ݽ½´´ +Š$ÌN5~Údv~Æäø<e„£,V‰•$è†RŒÍêìòžé¡GK…¢lº ´Ðê~:f¤£Æ?QP)k·S»Û¤Àqð¤>¿\°{˜˜ÿ¬v…ñæ'…ýõ¯
ükÿçúçp»Ñ^?xà†O….1>Ïõÿ +;>´ÆOb5½¬ö»ñé?ÿðQ§Xhf‰tÃà?è‡mš‚çzèy‚¾
¶qð_çÚø|*+l›Ãév +È/<†ûŸÀ +ŸèÿöÉgŸþìóß|ú¿×ßãýOþ¯?þþò¿ÿÍÝô›»vÿ—uÿ«ÿñ
ž•¿Åg¥oñYákŸõîo%–X xóækC‚@x*Þ¾ÿä‹/þ,Á`W~½dø·ý?áÝñc#¦ /8„Ý·þPFK½[∈7é÷eay®ýþòLí¾Ä‡°P¼6Þ¨ë_—xÊõ¡…Š8Úú·55cýø¼;®YÈÌsí‰ã9±
3ò=™w¤PÖÓz9þ=ŵmðû)L^~üξf¿Ë~Îñ¾§z»vÈ/¯øŸùèõ×¹6|Œº¿6ýÛ¯ñié¡æ÷Ø›Ø?¿”‡ÒŽ¿Ú[¾½Û#1¯;îðgà'×4Ùl쿽ŗåõ´8O—¤Tùùû1>pü’Ø«ì‡ïzú˜·Ï|¨OÂ?Ü=3“ÏÍö¼¾Á3«v]ÙÓÊ¿½{OÑs‹°·wÏ¡ð)RoVþÞý»Ï¹™¸üXJk«”Ê}|ÛäPÇÀù[#N8Ší¸þˆô#V^VþÞ>·su=Ó—yÝ>—‚öÞþZRð[—–”ü}ÎãMÌã7ž˜Çš˜Ço>1wÏ|ìyl‚x]h#7Œ•ÖøÂ}m¶Ø1[!ˆÖË–šñŒ™×Îã}åaA¾áGÊœ|¥µK¨x¥4¾cMÞXcy=äÆWeýkª÷9¯÷Ñ-ù¡§¸>šéÚ Úœ3Œ¥fö‡:'h}4þ”ÚÈk²5²$jám}®·c¨!½òú®Ö8‰½ó× 0ð
ùa®Ò¯õuÛÚ:5=¤Q’ÍÇÒ ËxˆkÚïog3½..-•Û½ø§o.X?@°<~`yü†‚å¹õIø÷µÏ’zÉé(…ÇŒì¨.±ãV«õ¨!k/ü´µ×¼ÏÊßšP•øƒ#Ï¡‘ž×¿á‚Ü›£gà6÷€O˜Ê\ð…1׬ûj+^×Òû}ic1V®øx(evŒ„–꣄|Ú\)WŸ‰¸@&õ鈕›½™†ó-¹ÒÖ¾ÃXšÖz®„‘¾6·äÊÀ䬻©>ôÊ{jNI_1ê²X×+,PuÉŒ”—dYŸ±¬¸®ïÈ#² +¹¼ŽW*$Ä\`*êÃZÇŠ‘ZG”ÌH}uäÒº6d\$SYKY}¯¯Sb¬i¥Ð¨ë`ë„óXzŠî[3Ò×'f€£âHâ.ÍKçȱ!ÙÞ.Ðl3³i$®™†ª+í»=7¨¶A7µ0΄3qéâimãû¸vLò3qm4LÙÂiëuq(öÍ{Auaxøž°,½R“Ž-GïÀ^™ØÏàc½ÞRÜc)U·A»‡¦Eq·¶\N¶KQë¾°ks¯ïÄê¦ýTÄ‘]©úÉg‹äXXŸRZ| ¿ùP›G½¢ +KPŒµZrGk(¹ÞòÁ3Çd:c~Ôä…Ðud±¥Åòm¬‰Ç@M¦éÎub¤,µÊ!Ÿ–nÃÅŒ%ê4É-Qÿ®™8]¯3Ó"\2ºjêp¬ù^Ö\Óð=a.|GÊtŒ´€ÍÒ´ziûô*PÌÖV¼ +¿·„ò}\ª™±…ðÖ5ë¼Ê¹êkg>ïëAØ-}Nj÷ËÐ̶â#ó[Ý‘e3`B‰®®a½ÖûÆx¬ gòX¯:ÓxÀ<}¨M‚±"Ús)ÖfNí1¼Í>èéËÂ+Ûݽ¹¥ª±e@&‰Þ—們ä&NS, ŽiS»––OùL
N0ÌAÀÅ}‰îJËʾá²HZ{Ó´z]Ç‚åóC#©dºJèÉa‰@P9yÄ|]?‹IÌÓ´Ÿ‰oxtkKÆV,îzÉu¹Ö¿d8ÖþH¹k¹×ÞŽ<h–"ã¨ä¯éï•zŒPI
¡EwÝø4‹5°ç^*Oj“਴ˆkÖñOTz¬Ÿx/Fawãr +g™ã²ãé#Eó2„uc ¸†P .cIÌ=q±<@êÄò(k%—12Ê$r.²zós½õù;,Ø4,K¥Beˆ¹dê\/€ê¸uý¥Ü6à‹êËz¦úÀ²´+5Ù…Ë´þH
!h +Û”×*ð0Æ@2e½e3m©ù/TθEe,8êúƜϢ’Ö´{¼l}à8|
’òü6I³[ô˜dðY& —I±&ï ’³Cr¬ƒã-5å:Í1P¶O«Ø+,œ +]X¸@/fèÑDeY¿LU£´";’×,YYÒÜB3T”õùœˆ•c¡2x/œ-xRIM½ç}öC;]Òrà|6
a‰ÒuµCÏœ§:‚9˹ððÑØ:\»ëç–ø¤ÝEvä@a9gÜÂ’[e@·ó¸äÌãèþfÕZ{¨¾ +Xž>Ô&áŠKê“xß–±“YŠŸäWXfØ-ùðÑ®í—׬æp‰1ñª» Kê\”0]Xò_Þ #¼™ó›Å`¹p–è¢uÃ’Ðà q¦"TÄuÐÃÆK®=`Ó>ú—Ý>a<5S\×9²“ûõ/µK¦iX…š7,sÌHßx¨†¶þ”–J™a-ÒI<àå{¯me‘ŠÑõX˜G7X®¯àÜU6Çrµ2_CìàæCm®¸ÔL—ŽÉOîqÒ˜«g`N(dÌe‰v>ßÂRpïã[_Óvð -JŒv¯M:ÕÒ”"Ù[eÔ§u7]–jÈ@ÝQ6wy}Q^óò,—aň–ûï²äî‚e,£8,yR¯Ã˜îGþ|ZVò=€žf,sª”Ÿs‰Y×-ÛZRÀ2
†¢,3îËSn +Âr"ͱ1Ã%A¿„°¾ÁåªýþfõZû)¿ +`ž>Ô&Ái©bYfN<Ÿß¡%¬?1ª%‹}s½D-ÛÏM®13:—Àl2Cá·ÒHëKPrQZt\ÒÈ… ¥i +e2ùRÖ¸šÜ1©GX_ŸÁVÉ4èÄÉØ`j&ü™aT˜‰8äðäï¯Oï +¤úð,¡š–=½ÄåÒ.‹P¹Œí5F‰P=×ì9T Cec/=&æ(`2ÿ +HR$p‰g8`×m=J<#F‘D°Œî…°.;œj(²I +£7‰b’àfíô ¿L0JY +„z§þû‡¥N)lÀUÄ©XîFõKgy”úuÂÑLsã¨O¾ƒù;jrjª²v€#ø¥1²O=hÈ$n4'2Â
×
O´«}ã(¦ÀH…G˜EódèÜ튗@ÀÍ>ü¸KüÒ/ƒw繋üû¥ue”.3cÌ¢D+‰rjMtN8šëš€*ß7ӡ׫õJC£%¾ærX:c®”¸©çŠÖ¤)ß?ÍyH$.¿¡ÈSdÒêÌ4AݺÍ&¶ž"i®Í¸‘d()ò“Iˆïâw–1¯ÇHÙfîhQئáÔ‘
VT@‚º‰Ä%$Òsî– ª•Iiqh"¦ÒÊ3Ò›A«Íõ! ÆõØ@ZV(ÓöbîKd0p¡»Zfã2aúúå%áL]¤+P°Ž[4Lð¨ƒFéO$^[¼È†Åšä™:»-~/±4[=ű W,•¥©È•Ç?K2Yü£KS¿ßEFg0!ºk`bDNæQΆ“¹£t,™ ¸ûFS«É0^
M±Ç"3VÁµ¢&¬Ø±¹Ôô¤”ÂÀp‚²³¼"Œ>…/8?pÞõØý6æÌ4¨™Ê·^pFä®m±”h``d¦?AÝjÄ™Ž2¼wÌR$‰T +®Í@]×ÐF\e0NRŽYæXÌ›¬²ÜŸÀ‚©†qÿ °Ú^Œ LC€‚Ù(™zaëò¥¥T$¸—¶SÓËÓ¿‰$¼ª\Á%î[ £¿@~ð‘r‡Ä…‡qä×Õ‰2…u6(JÕ£)˜+ó…"ñi¸8Þ)¬H|úÎæ<¯õŽîiQç©Ò"òªæ£w^G¹P0VÜC6ÍÐcç×i|¼. +}í·oýZG{Tª+L“2½@)úº =VËÚfUhÙ1Ó5àFôôðûeίŸ6à ïq)¹‘LÚ…<¡4¬»ºr}³T\$¦¹7¼£ô¡Þ#Sù¨)–úΖem:z*±çéà‹ò×׋Í!V:×b*ÓF¬©Z¸….ð¯õl85L[`Ý5t4#!6Š¯2äŽÅcdçÉ·ÕÜ»u‡w¡ý¸ÕVÕ*ï)xÒ2d™’é¹ÄRÉ(ƒ¨IÍ"wEˆJ°Â9:Y·‘Æ°XÃúÄšÁ¥ÁAK‘²Á³F»p ˆ=™”S›ëiÑëÄ.‹2¨ôuÉãöÈdéQ¯aÈuf«Õ–“´Zý,~ƒ…]šÝ¶V.¯O]c3(pwWqCÍ*¬“ï×Ûa¡ÈDeÅøP]¯²*¦¨Ð`sJ¥è˜¢ÌкU?-øŽ°,žÜ=?rô²NLð¨Žñ‚ƒ6Gi=<7âèИÌ=‚Þ2aÓÔêšJ™Ÿèc·°ef&ME½ºè"å¹î¨AäÉ]Û«Wݪ¸AQTHo!†!8C“MáJàÉKÍu¢¬Ï¦CV(‚y|D+ö[Ó"Š#ñ]{;GˆjM#JJ\€©u¯Nç,ÃÜ´„Ëê †Èüù-Xê•dk¾ŒŸrYS’š!tí¡ÎÚΩ‚‹ +µ
}íxŽˆT¡vvÃÇ3ÒmF°“‰b¢ÂDpà@õè–!¶’ºv2YX½ÛïŸ~õã\MƒIäòÌW÷7auµÓZeƒ"SŠJßÓDEèKüÇB?ÏgÃY’sŠCÌ„>°V«Naú½Ö¢@£éhJwd2ÈÓ·¿ªÍßØ]²V¢Í³1ƒ5Öôàõ-ݽY +i“?ýÆÈþ2|OÆñ!œñ4‹Bþ˜?™•…ÀšíõüâJ8ý¼«ZÌÍŒwÍ +ß¾üu.^lîC/íü戂D‹ D«dv»fvO¡êªÊÂØ {wB˜²‘ú<OR–Høåó¬Déþ'?ûü$"Š÷}þÇß}ôþwŸ|ñ»ÏÿåçŸþñþþ77¤D‘ÜGFtßó~;Ï>ü;}ó_-RüÊ}þÅþâc2·ýÅÇðZ,½s-©ýùâÁby!W‡÷ºF6¹›`Bž
1Ä·ì"¿]wÜQ]Rt]µ¡ÊwÜb/…«¾Œ’ê£?üáýqMãýGÿöÇßßÿâ“/þøé~÷ÿ}úW ÎúÚOMäšèßüþŸ?ýø£ŸÍÿÛ?ñéþýÓß|ü|ú§uÑšïŸ\áò÷xÿ“¿ýýïßßÿåÿúäŸ|öÅñ¯?ûüwüÝ'ï×ïÚÊ¿òŸ>~úùz%
¿1õ'¿øô“õ¿ùÝgÿí·¿ýâÓ?þZÿŸù§_ý•Á|þ%õe÷ù§÷÷Ûß~úøÇãËýŽýõ?ûü‹?~òùã§ÿô“?~òñÏ~úñÏ?ù_õt‚þîúøoø‰ÛN˜ŒëòÏÿù}/…X +÷¿¸†4qýꣻW_ª?S¢þ<}q÷×gB²Û·þDÇLE(.h†uA!ýÛ:˜Ë0+.IJƒzú1‡õöUÌØ‚¸GhŽzçI}g™î±lN +>‰ª9³¿Iö%™>b‡Bj¡Ÿ¯BZCLòP
³îù} “è~_PøU¹uï¤6Å€±Š"\;† Áçú`P˜òø9ÑY‡#fWÑÛe9-*yúÿI¥wŸÇòƒe6åè!4G=ŽE”óøˆ9Þñt•½u‚ÛÍ5D.—ñö™Õ}÷Û»¿þå’•Óä≵îƒÉêø²8QßÐ]mÊR‡ß a:-®*EŠh¶Y«AÌío£ U´ØÃpæVÓøk,µîe™ ¡º¤Ú/ðýè):w1Ô.?†1èRx)Y|2j7¿ý¼/§¥{f|¨íä#…ýZØc˜Å†¤r^ho§vò··åµAØ^ôÅg!ñãæåmà©2pí‹àöÔÔøsŽ‘ãçöØñVûIûÕ/Ÿ÷ö«ç@õwÏÎú3KSŸ¼Ô³ý
·y{÷SÏ‚îéŒ?â+Ò¯x¹Ù½€îäG„ýˆ°çö÷çYëki£ƒ9¯ä-ë65zn¡sß×Tsc“©LžÁ`NÅg</ª·óŒÚVO9=ÆP”{{ÕØgéù?t}?p}?h}?p}.³rƒçæéf6Q]¤Ál—Ég‡¡äÏJ-&j~§JClŒ#Kù±‘˜Ìµ™Ê‹êþD–o‚Ê÷R>&}œ(u“çy*ý +ܨs +ózî`¬8hµ_àÍã?;›=¬!o»yø©`°YÖ^~`…BQ|Mj`«#}>!7ÃûóX}2á’%úPQùøa¢òñEå㇉Êǯž›©—sîø¡âçæréúÅ0ÖPeZ s¯Šñ{ÔÚ]9%TQ(åPÛ"~á8ŽQçnêqßÖ`µÁd?Ag¼ö¡ô^Mî +ÈdJE]<wyÏf{0fØ$°½°%öoVEà0H?º^!8H£'81;‘kMy”Ó¶gKáŽ\u`Ç°^jÚ‰ëÖÝ€n ‘£qûpçŒMž}!,š¢‡ex,Ø3±Ç—Jþ2þMÄÕì>Kz1DÞ#»µ2¥Ó»…“”o¼¿O:)±…<‡ˆxz8ufÅBŠqj‚v±gÏ\€tÁ/)d^ù¾ÎÍÔK„ŽÇAøÚnÍäµ +ª
L§ƒÂá)íZ܇s,×ÝP€ŒµrU¹€?„ÕY77£œ0+ÀzvHºÜ§±ûŒüPŒ(¯<=$Á·£`ÇŽ{ÙQÉ:I°zA[1QÌŨéþÉì\W$Ög”ðW†ÊøÜD½”=èxZC„ÛP©Š(¤) +7¡î5ºþ•¹µ +†N +)bÂi ª9rQÞüƒ÷ld¤’#»5h'8¼«‰eöÕ˜\›‘"P£).¤Ä¬žH•,DúØ|h#1Ž-POü Bsxy£ð4·CáŸÌ‚Á2[v1þ¿ÒÝ5{±ËBY”øUƒõ:6S/§:˜Û!KIùÈÁ1
¬%µl‡dÉî=˜ÒÜ +ÔE{ã†Y`S¸`•—®›ª& +‹‰Äضn?šÄEX׳¢P>‡,ÃucR,€ÛÖ³+R¶ FÌQܼҳ׾´Seà„5Ìsÿ“â…ÇAÉ–ßÄjMUâk›‰iô\=r]yšô²H_2T›ºÛåÈãÄ^×3´üê1}™›©SÏ‹ÝqÓÒè)t¶c°FÓûXK¡îÀG
¸Ã‹–%L´2M +–¨æ»½‘‹¥è¢è²éx\F`:y#†ˆÄîÔ¶
;ZÐÈÚ«[ç]Cc±o·Ù´93ãev/kʤµWŽëëØL½œÚèpnOøcØÈÖįˇ)®pö÷ÕÈœI;TÖç°Û¸ûÀ§µFj&…KKrŠxØ…5·é;É&U’Ù³ëßæŸ8¤¾u Y9~1ç.jàÍ;1BÏ–yN×UÐh‘'Ð o“6fõ|*š–Ì2Ý~C±…#ï:º¿‰©™Ô s½Qmj/+êT7¯Õ×9°™z9/ÒñÀÈ·«ËÅ y+¦kÙ•˜ÌOTÓát+qNS´‡kÑ}‰Ã¸¬.ðØ$™iìòA:î4´S|#B_ß?™d,&+¡(eÝôD@>{ß Ž.7R2{&_î2j+fSÆJ•¬[¯^O’3»mû˜‡Äwö‘›™½,([ݼrP_çÀfêå¤JÇ©º¨ÎI¯ÛC4P7_3$(šë¡šb9Ú¡IÄ`¨‡y×›«ÕÓ€Þ˜Q
Q,3R˜eÀtŒL“ÕªÑ ¬&øÅ&OÅ:ï[åß^À–ëK¸KÅÄ÷4i-ç†À<cÀVò=5›´fé>%G‰ÎKÛ‚V‚¤Ên26Ø$n45¤jè÷é_ÖÕ)'_3¶¯s`3õrr¦SŒ}ôx¨!¶¸•¢ö_[N(.v›Úía§qŸî¦3¦8Øû°øBœÍ–L¡C[µ×D6Ô›s£Š*“[v|¥ŠÜÈÖ{ÙS1à-QÑÜjJ¿¦t6ˆH²ª¡èJæ.v3Òœ;¼‘m‡0‹aœšËX¾Ø.¢ˆ³{³¨eóÑ¿^`?›©ñ;Ï:¥Ó0Å–bÝ㔶ÌÑÃRW]“rßRhÔ9m+‡³í„C'™·d
·šQŒ¢5±p6±2ÑõfÉÕÐE¸Þ“BÆQp“«Õ†•O±x…W«æ©GIY@oJê š2䘸åÌJR£] +…r÷/Íbª@qVß^Ö¤—P=|2µ—µìãµê§s ‰z95Ô9ÓwPÍÌï©[kpź©ÐT¹ÆyHn7ܘʋïLŽD)”Ü;ÀÒ{3E%mp’~…n•Ø·¾‘d»1ýÕÔíbÚKõ”æ:’k/Œ×Ñi'»¼BæÇ#‹³»ºK-¶%†ù¶{eØ;aÍ2k“ØgN/äôãÕHÑ”?[f¶]íL@yœµûW“J’Þ°ÇàáD©®«Ï!oKs„uT|Í{â26O/æ¥:iþðNû–`X·¥%¸åøBo¥¨5©žAÖ²R}í–•–ZÕ—KÛ=D3ãå”Ì*±#¡æýH°LMU+kÄÐŽ:¢Ír²‚½]SI,O‰l¥Y‰”"LðH[ÓÊ…~•´ƒ1ɼÜ8%̹Éغ¶MßiòetsÈÌbUœL®‘%ì%Ì#›=¾©±°oÈ´NK»ß@v:ýÚ²å’i{ÿÕéHN¦Wö”„ÁuFG³2vë*3»¾”·HeµÒì +†¬2°ú¹+ñHŒdoüѬR¿6¬ÄM7MU +F+4“š·:4éÃôëùÑÜ$@؈`ä•px8G²{Lª•p¨*‘úÞM.+þÈ,®yèèQÛÁ)!N 3èÿ0@ÇÆOòbº¬Ó/€½e+ÄQ¯–«çÐ-à
u‡¢Nñr8«ª¥x•K¯ +8Ÿ6êuE^Jç%E„ñ©í^ï!>öðåP‘3ý`ßkŸæçðñM4 Ü›Ák +S(š¹àVcž&œw;^7 1f{ +ææõÏ^HóÌbÙêuà¨^(Ätõ9kJj•’]†çÆUi(6dÂ*mhkQÏdBwh<ª©KPìÍéXÝ&Xâ‡:>";ž¬øJK±‡IãPÛ¾ŽV|°5›%µât½è™ ~)×
ܘ¡È +Õw½`RsÚun'-Ã÷6!*)›Ö‚EÔ +ðŸAC/s÷ o'T©}Ie¿‰|<¤Å¸O?Äkú8Þ…O©õxÛÛïù2º¬§_ØÌbÑß‘_½.øõúÄhtwÉÔ”ÁI@¿§&†Ô›I5‚h43ïü oØ[7?²ÖM-±úw_Ò‹æ`?ÅN?äCû]ôÓÛOyû¥ßj“ñwO'õé´'oñtù®|ÁÀÛ»§0y¤ÖÞÞ=…ãÀ^!paÀú`WÅ yE ùûã“£zÀž<ˆùþý‰i‰ãþ÷~ä3žûø!ÓôøÓôøÓôøͧéñîK?ø2!>eº£ÈlÁÄ¥ªkØŽœÉM%³sÝ,"aFk(%Ýg¡Ç£r幬eûá,Ú(ÿðèGËåç¿4¬å$ÚÞEô‡@u»Ô••Æ’ø9ßä bâXô™–ä‡Ðº¶-Y‚&;P×Í©©„T©4E¾×Ú&åÞ¢íܹ¨.bg9LCbƒ›hŽgôSÍ’J¯‡:ö蟾±¸yüqóøâæñŠ›/ÿVŸYÆŸ–·û‚Ì +š¤‡Nn!~ÚRÆ÷ÿ*ÄÇå[}6œ¢êC¹Peˆùë’HãÀ$3“Yu_v(a®ÅkZÄ¢ÆGÌÿFO£iéíHöb)°í’7ýÝÂ{äb/Õõ\ÿ~l•ž”YtŒ£æþ»¹“_ô¸~ðuBNSF× †‚Ýf% n%°³N^ÀLÜ•¼²;€å¬zƒœt^àÕIeš"··>¦H62†à +ä1ÄnÕ¿¹(kÒ•Ó”¨ý9É7’FS[¾BQ*£ò¦±£#ÛA==½! +0j<)è›4¼&éH‹›oõÙx))¥?®"L]Û@pAô>ü +;²Ë+%†-ïªzþÃbE¥nU/t;¢°S×Ì¿0>TÑÉ +§˜úìáï,rOI™0xŒuÓŽU‡¢ ¦Š’V•GIœQ@jPƒ5´cÇñµ~=ñîh<ËÈáúͲö„R^ò×›¥K¤$i€c® ,—´r¤æŸµ±N1¢‹vˆÚq{žƒ‹ ’³Ë¢œP°,—_ào?ÕçâeŽÇÃÊ …öˆd9Ô¶(¿Ä¸r1Puw‚@ÙtVÏÍZס÷Ñ3ÕÐY¾D$Z¬¯Ø܉MÅÅ0ð”›[Yg<ºÄ2G©"Ï"Ü¥ËA
Áž×ÍR¨ñKÈñhéQî§zDó$s°#¦½¤nl–Å—²˜üÐÁ,QþCÌG6²s
,OÅ[,©E ÄGOã+;OÜÍ2)0ÿ: yó>/ãoô‡5e™™FJN@‹ˆ„ +w¥ô,T7ˆ_¢‹ÂÊv²=‹¸MyÛhlB‚p¸A¬—ÝV&°u`5L+ÎÁDA±O›…ó•X·ŸêsñRÖÆÃűÞwƒ’2¯Y{[ ’ZÚˆî’hÄèZ¬dR2†Á¶Â*îRÊz9´ªd%*ürvíÚ<ÅsæÐ窂˜âpRå!D.œÓFL ‘kw%À‹í2Ym +ô+0€PÝH&E#YrTÎÙÚýuânVjS„¾TÞ|«ÏÆKÉ
¾%2)œ*Öj$¶Îcï3oÌÑ0¨*cf9Îü¥DF ‰Í¹É¬fè|Öu™:ãÚ™:Îï"ç)t< +½ž’…ù…È0Ì8FÖOÆlÕ`Iä¯àÊ"ëw¶êiÎIF‰aûˆ Oçñ½¤¸"¶lhòZ—X—#LlHÒØT¡æͤ ™££¼@^¾Õ&㥼„ÇÓÈÊîR2Ûì[êaœ…ר2KwäÊÐÛÎ{&.²je¹Â,Œƒã'*»"%
~ñu€Fde+LÅÕZ–¿€Læ@ŠìãÑñ9+µ]E@ÃÓ_@Ê÷t#Åñˆ?Š,ÅT_djᇡ*$$„ò®CñEÛf|W¶à?7‰Ç˼¿ÎÛÍ:¥òJ,ïë·úl¼”PðÁ¹oP²¸˜–U02T¸«‰8ºèa.°ÁŒtãB/Ö]¢ì´ºÐ‘$E£ ±%Gƒƒ(ÛÊ7ñE¡b´h…†DêFŒÙP=g¦ÜÔŒ¯Ké\W•3ä$Ø¢èˆ"»!*‘&òd|?FZz”£„%Ó>¬2ì°º a©9ˆ¨Ã]NÄýA(‚%“a>ÎnŸ¹›¥2B WËÛoµÙxàñ¤>vF +‹ÛØU˺—%¸Á\¸Ãú=ÑL’el j8ôèîŠ×b—f:½aèuZ]pD.5‰InÝÀÙS€Èµu:9@Š’¬z[Â5¡0]šé›ªV”Ýeçá0ºcÈÃ6/£eRä¨fzèQ¯'ùéT°—qðÏ|Ïšt_’²v1»”j›¸›Eª¯èì¾ýV›—úgÜØP‰ú<úAŒ)áÈDx2ÁtÀY!T'…9þ«QWBÃà-ëÔ
N¦¤¬~L^C(œ±Y¯Ùšj~S·™H1D ÐR÷$Ü W\¤–$„OßÄ$™Ð‡Á½ApŒâåXºÃ;Q#Úȃ ¡8•ìØi¨DtE(6Å*£¸b¯w³Rmö×Oò6/¤Ô; á&B=oãV,\Lúðl¾:uj##]!*[#™4xb’Ëd‹Òþ+v³–‡ºšÓ4d‘,D!‰‹Ôk€¹)o¸´¢ö“DRÕùW–Ä…!6U.Á‚ÛŒ¶ú¥5ý +š.4&V
UõÈNò˜¦Nò^1#ïL.ÑfÀœÇv#ßGxÎV³UÅÝñ¤Ž~l†P3ËD&ó(¹ô-ô2@4€7I,Å +‹QQ
Í›Ó$µ0PÀ·elfᇒq0è€'tÂD2´ Šv3ŠÙE$D¯NʹƑ=˜àb§¥^èåfò3ˆ~K³ +©$¦P'ùmRT5c3ïª"
(`ÿiðÄKz»~/c’ÃÑ“¸ˆ¬Y`èpÓgª#1M}Ó…‘OÇþ0îê€Ñ_¼³(r;ÈoŠr1m!é +YrÈMdTùåÒ$Èõ«uB¶î:f¡Ö¨š]úü'݉wšÑ³ðØ´ž¨L5 +<éd.Âe,cjE5üÌ‘ž2k>HlHð¼¿NøùvÖ Ö)½…:øgL›&ᬹ¢œÑ¹ U9DfGUÊ£ÌczVCrt.²`öQŽ"úE + +TsžCIHÁFÍìbPmZ™½’î@aˆê!¶œÃCª pÑ‚¯9…ñÂtÐÜÅ®ŽJö@…Ÿiú¸¹ˆ+MèÀŒkÉýˆH¬Yö‚oä«ŽT_‚5>9r% +QYË?ib€
€Ñ¤ÖÀ‰^fxðŸœAÎbOtó€¾µ¡9Øõj·³þ+>TñoHgŽRJCÁ€‡Ð™C§É-¾`B*2šž0/ø9‡°F‡!¼ÞÀþÉ3d”…mrn †€ÿ"4!ô2Ç“8Š´§™TM¦&Û0\ó>Ô‘^6DÊ@Gœ…ðëß{Q¹Kµ@&¾¡^®ý;¤%Œ„˜i
x[E]³ìlJÀ^ê÷ +5q¨Z2?ý2‚*s +×Á1{Yrt[ +XËJ§ å6?¤éVËhæßæ¢9^3DTXÍÈ~òò/ä±+`ìñlQ Ï
u2ø0ÀYn‘õ¥µÆ'îWØÀÇ\€×tH*™%‹˜^N7Mw
P5ä¬Ub[IÚ¼xÓl7¯þRººgm(ØéÆÔ#2/i*vÛ³#àuK¤WÈ¥?1$Ÿû®Éç (íœüGTž·ÿˆQ|ü‡4p´èÜ]¦P=.ÇQl—ô*_@ž÷ûr’³"Ô£KŽ(
|Çåz—}Ü·¿„?Îðþ=cË{b}ßpÜw‹{j)â°qßI×E*Ò3C°ÀÛönß÷t ¿óvÄùšÉùX6a…q®Ä¸¤ž“"w_ƒ”âx30ôÔ,“Ç;I‚ŽJïî”6‚L+Tý¸,†PÌ…Çæ{9î¿?Þ‰Å)~ ¢nÈ~©žŒÂÈýÔ8aþ݃öQÓZŒd$”¡ô›=áö +Šî¶¸qaÖlÏ ›çD
/vQóµ‚ækÅÌ'6»3eœ#úƒyã؃ Xr<nüìN¥>ô,Wû·MÙVÕ&IGÞ¹ +Fü÷.PŠ×6Ùð§vß\Ú=~ˆ´{ü i÷øU_m3óR"™ý¼,² •ì ¸ì"q¡fÅÖ'@
£ª‡©ë)e½Ù +ÝJ¿•NåwZ†ZÃ+Ô^._m3óR¾›ÓóXª.øÑÊÙÒ˜ÿ8LUM1Nþ+¯Qĉ¬6Êš\öÙxϱ$y[ÕnŠr7Ê·8«é:ÖÌñž¸5Þ£ÃÅ’úÓweM°ø4vƒòP«‹©Ï¶¬Ë`
µ(ÿHe%4Fzv
ƒ){Þ†—Èœ&-ü2M·K£Îã¯
—¯¶™y)ÛÍéy¬:¿±Ñ³7àF6U‘\!m„¬v“!Ū-ùÓ™UÿF#Êð;Ô¼(5Œz@“ŸtMfКÆYÜ.®‡½‡©œ5V׋լvëö ¥ 2Õ,T6d6£;YVÏtõ¹9?;2ïìˆ!cé2¦ÉÊVÝîn:'’;’Òåd6ÜXÞ6›—dù«ÃííWÛ̼
çô8±¹hðÛŽ¶è8´ +Ílùlx
£÷À¢‹1[C bRÇTk“+ØYc°eƒ@BÙ˜ðÆ#™GK¬öP;Ëvd
ç“(‚¶ç.RÖšÏG¥K°ïZñˆÓ$×fŸ”ãD}%K)Þ(×ÝNú1¶?#Z§å˜ÍNç÷²4^xZ>ñ—¼6Ð^¾Úfæ¥l9ûyIÎŽZ7 +FÛ²Âo»T¢Äi‰nj™Ël÷ò™èmî=R
&l¦í7+”tÃýƒ$–m•û[= ×–í¬iÄ,iÈœ•ŸB»uÚEI%^¬mõ>ÒkÍ!‘,uû:“·«K}…˜½|µÍÌK)wNÏã"š¨ef,Ö…|ÅÀj3?h¦2¨™6ÉìRe»²U_½_«¸¦)¤.øºð#&M ¶dYl°˜‚¼Ã,0 ÖÂô³w©®“°!Tt/1ø'Í#«‚
*Ò¾‘¤»G<TJâA‹¾L&àÃy5Šç*8j+òWÃ${Ö˜»÷2—·ë^¡zpóÍ6+/åã9=/íp¹e¸û;¶!ürÕO²6É<4ød‹ ¨|5 +ê,‹¢h5÷ +xYæ™å£ÍY\CI„ÒÉ›
Mѳ£Ã½æÍŠF=I}`(0hòÍDž.ä毮O¾šóòžžÓƒÎ©„èôaÛÃâ´Éåðîd¡•°55v˜ò'›ÜÛÞC¹ŠÐÒð3~‡ÒºÇ÷,ZµÛÕzÂRYhŠ´ž§•ç©öïº1_D3£ì•PZš=¼
y¬êUÁðœ\¼$[ª¢ ÑÉÒY +D7Ø0›kzXئ¾™ËÛ…ëÏ,í¬7ßl³òRŸ“èæIllËÍ–" ±Ò`“i2îMàn˘•ü<IÕâÄgÉ!ˆ³¥ã¶=‡˜UŠÊ³?y— b!æd ~¹O +£úƒº‡ Õ%’†‡•à½7_9¹ +«5[à{ZLºSšdkâ<apmáÁHƒY¯ßáºÉõX½GœT2ýT/¾g¬[9ÆLŒ¥ˆd£Vàæ³DÞÛÙ1Ϫû줨îÎhÖ*s±”Ù ¶ÚF·›T«¶•·8Œæ5‰å3¢¨ˆÖ›-^ÖÂðø±9U–2I¾9oóľHr,q³"}ôʺÊì:9•luØdz»b ú}I˜hÒ¢søá «àhí¢‹Õí‹:óôV/¢z}Œäê³í¹lZ˜]SüƒÌQ9 Áš5=Yo'ZúÀ>êŒ{š¦0ÀÓü™âh5ž$Žyn`f;°YØ }f¤ÕCÁItAüúhŽ^KR-›¢…ÆV3÷l6›è<¨XïO¼Ê4x'ºAÛò¤ÅÐ5<YQFÙÙŠ;)6™iЛù„5kdx®NMî0ïXu½*º^FúÝw;m/d
aº¹™-&_«ÝØYæû G²ÝÑó•†Ñᘠ·ÃÍ9ŽxöRè§UœL]C¬ŒO©b4yÏvÊÃõÕõ¤M +öâ<«–¹ØÎÃv>V«zýü+ªp-N/¯ÈŽæê}Qå~ëìUföÛ|Æj)‡ÈœR…É_ä©’³,«ž²&+Œ1$¯Êg»·iBÖÜgîãÉ»õã,û>‹¼‰Õ˜;ÓNJ%¶Dï°fEšÀ®o1(Ú&¨pì*¤–ÈåÍÅ(˜È]lÌK†v®;è>™¥0·0~ï‰<ð kÆAX(Px"&+×yÕ%+Ü)¨¾ÊÛ +Óc¹æVˆÆT`y +rö[”·ÕS]›ÄuUµb|°¸EÑj‚‰êÖvL6ÏsPBôI+¢>6-g/i©F“«¬‚Á’ÕÀ°hÂÙÜQ-»8V,…!W+ÔIžGyžÊó`ŠG¡gù¤Vk’k³Z>ü¸”ÐÑÜû“ð„õM-ØziRl3(˜=g*(~ekž$j±Ø$gØTn¾ã¥4=_b~©5s|àL3Ý~à¡8{¶jíô ISƒSpÏDò"ÌàÙ—Wú‘Òç;¦ô!P›8}Š©òÔéŠÁaOý‰ºø= y¤›û?ÌÓ-*P±«ÜŽöÒ=]ô¬õ_^µÿ`Uƒ°÷úañûÀ®K³úzÿ÷‰ÞçÏ ö`k-âB3ñkcYM˜ÞÙ¡m&ÂÓ±ª¸Ï»ó½ÏqF—±ipÌä„w£Y²“iÁã(€ûa¿\U®·¥RåÇò¤Çè;{µ·W¿µ¼ü0™þ
§HµÄh|D§L9ïé*¨›Ô §¼Ze±löá鶖LŽM;¯ÙWoZ½3°tö_ñ‡i¶ôžÑªÇ>?vZ¡}ïscIÍÞ=ƒ£ÿ9XuÞýíÝ_|ô³úñß}þ›wŸüéÓ?¼y£¿ÿí§ÿò»Ï9r
V0hµë{×ÿ†ûŠÁwÿ|÷—ÿý“Çÿç“YàÝ— Ž_ýüÝ/öÓûÿr\û7”Æáãuõú§ üÑú¿_ýÇ
éÈJ†û{ºÙ3øŸ£f'·4™–k'\ò]ø×5ô÷åþç÷ÿøOáþ7ø¥_Ü1Vˆ:’ØYy?“I‘GÛ‡r÷Ä-¦÷žêœ]uA@ÕÚCµ».©è§žÌÌÇPmÊEÕo<r¾´,õS±µéT¿^>ˆ5†A°k_‚×aNÎ~_Ùr\n¾ëKYžù~ÝŒ"˜b.þµ˜'±I|¤š-x»GøÚoLßOɃrü’
¬»:òFÉf׌jÓ±³Gü—öÀ~™ýßë7½ýªï¶¹ù‡»g&ú™Å˜—×yfIŸ,ûoïžÐSÝâðíÝ3P} +ç§Ø¸å^êÐŒþ‡ÛíðѸ‰Ûê&ëýF?ÂHÔ@ûëÁªbÈiliÞ¥==+z0×虉{ü‰{ü°‰{ü‰{ü°‰{¼ûªf‚luÖq,ó®g/ÈI™#mw¤C<#§j5V[â÷h§ ;句e¿eS +¨}]Lü¸eqâغ±G)ƒoHпtˆÎ=ÙRØa”OŒÕ5)ü¹ <ãˆöaô¥b¬ +qèß«.Š‰MR’˜Õ9»â«ŸJ¶Ã4•Ì–5#qLõZT¨Guò+Noa"lSžnï?}€Èzü ‘õø"ëñƒDÖW¸O"«ÃK7»Nìd°Ò¢ì½¦ª£›“a½T *
(¯–¼È¬]Œß€&¶Ã{Í)¬ +±2»ØóÁxŠ@@DCv$μ§øi0Ñ0¦ú +tl€8`Ì“t×42¢F†u;iJ݈ìP¬ È]‹½ª½ +CÀ6Z—á%HYd'\ƒZ6Æ8¸fºíõh¸·w%:‹ÆøúdÏÓ÷é1Ùãô]u·&{N~覘ÌÔi*2Ô™ àsUe5µlѾ„Ó˜çDCÐ#ùnÙ¸RGbè£>¢Ä‡B\A@‰#h„óÈnëȯ"¦é¼2pÞ?ÌŽ|¼U¤çˆóv+öÓ+:Ï}üu‚n¦‘…tQ* +ìx°˜l4ì˜Ûý1”?ý±If4²ˆ ß JŸ .+züu³5DžU‰hAî‚e²‚)ŸÚ>Òäx£ßÊ¡ ÀÙ¹PVdâA3Ø—eÚRâãëGK7Ÿ?Ë=GÐ + ƒ9àh)/ù +Ñ=(SŽÌP–[š¶{jš³›œ=ªÂúF’Å%m„;ð}@pžÅÛŸëcµŠhÜŠ@0MtCgæ*àñ†YFÞm¼wo!‚9'°®‚NErsâÚýÓ‰¼YÆì…•¯
¿O?ܦÇñk¶Ow…×Ry%Ÿa±®yõÉ+%xü|¹cÁô’”q G’ ¬ŠïÕ°¢%µ6Ö™Êôè¼<äëX&t”á`vÃ¥Ù¥y¬Ù 30Â}…Õ*òÑ¥ˆ:ø¿q % +ÂͨRb,±!J©Â5ÕLJ†•Dp<ˆ§ +¯8ióJ(M£Ï¸™½XœÀ¥&!à†§Ù,^fØ•êN+;†ËÊp/ëW[yÊïÓ·é¹wû¶çîˆ=rPfŸ8„N: +“\øBBrq’”_æªbÄX×&iÜxIPÓÂPÎpÌhÝe‚ÉøC,@xRa¡X‚F#î{Vö†Nn¸¶ˆbí¬>²›Ä#Š“ò1àð¥•Iš‚{ œîðpNÞpWˆáTþGséÖ
Ãtyà÷Y‹€t:Ò |»ˆ0Q© +S«¤¾Ä0v¦nÜé`’;-e÷Úå׆áë‡Ûô8†-²0¶¹æ‡ ú>„‘¬1F²Zörª\?=–V” \@í+ëÑš‘ÍÇÁ¤ð¤ãˆZ½e^&$âû$·éFò2Ÿ\ï@p£ù–Õ “ZÍ¥ +)HD¥YÔƒ‘è0~–•4² aë'Æàb&„Áˆ +pÈe–E$ˆwF±‹¸áÙp¹
x†Ó”F`{²5Ì‘ºûÓâ†V_£÷ôÃmzÂ2׫÷ÎùÎÛwÛaW‹Ë3Ð0¬‘÷h‡œEA‰nÌfÃÅ™¨>†@Íȇ6Á¡ÊûHʆI€ÉG݇téÂRN‘»åÎ]²·5eHU’º!®Æ´¦îITÀ4ûò!âš•©Òe']¼lœØPc¬XW…2ÅD†"…–¯¹dsø½”=§^ä,fÃÓ#é>€˜n‘Y7çâ6óe•š¥‘ž×’2ý5‚øúá6=b6oŠ½mÁÈ*€iqy&[܆âÙ´85§2'(ãhDq§c-ËŠ2c®²ÅíÛ†ôF9ÛPç×.# Ãx¶0¯]„(P%f‚K:…TßÏóàHépš5DŽåëÅÝéA~´d©È¥BaŠ#”ÌŠÿeë2IˆHª*óf2ù‘2óü¢ŽëÛ‘Y«nf&^rƒn@:^¾×8[ïYïŸâÁp找ã*£ç ă¿Õ¬ÝË-ÌŠªú³ÎŒ€jé§
3$»‰5Šq›Þ°”í>j¬Ý’Û'R¦7ÞMVþ·˜Î»ñù1ÿ+S¯í–Ä›‹|š@a ´œÒ/–-c’HVšéJÎB7&Dú- +èà‹'¦*Ê[P˜ +‡ìæΓU% +BKŸŒx0z&ÌÀ9B ÎrÆUÃ8ž¾×83j+ ¾gž€¾RGsY”g²³øCoœ
‰*±fUW´ðã³Î2EÞ©^©§I8‘g æ:«ù¯Èx)=ZÈ*
fu :_‘ÙÆþlp xÁˆÖ9ϳdë¾$Ü70Súh1e¢€ u:ÛÜäÀ4%ÿV%ò$«Ø¤•Á¯]PY~ƒí!‘~+CågH±¡Á÷c_•€Á1f‚j7¤M/¶ûOxài×À=“áÄß®^ñDú?Ê©n¬m&Ðð'ÆX–akMpd’Ú]Öwmv¦ˆvëe]áŠ_g¨ÖŽÜ7K¦U9t<éé²0áx†vÅ +:;/°dË"¬À˜ÚÀ%±@qdªAV63Œe¶ìÁ9`î“qd*©…ŒÕ‘Tûr”ÿ@a-¸„‘¬Ëé?`æår³NןvBúѸdG*7Ý>°¢ˆ&°Âô`‰•µºGú=Â8m8Cñú¡iu A‡ŠÂ`å£ê¾™9™‘NR”%©Hfñ¢†L‘©L&á’#ÁXkŽ†ÒìŸ^D‘ûÝ(š°ÜÑÕÎe†¦‚¨Kˆw#Âym#
i±”4Ü<à/Óøhc‡ÄÎâÝÉ:»yסï¤Å#9³µË÷Å#â3~e+½µª7b!ëØ®‰ 9AŽ`¤s‡êlVŽÄàøƒ?*ñ"ÜÅ=Š„&ïÑ…ÜÔŽ;KŒñ¨eã^û®VgI +u׃ëwZↈ[…›f¾ÊS½îOuJÛ + ª?ŽŒLB‘U«uµi¶uæmC,‹LÆJC¶À +G,¨JÃÛ´Rég±'a… + _USÕz¡ÓŒ
Šódk˜Êb/I;uz:ÐP*epMÅ«´31=!%5 ”“ª–¼úM%sÑhü±Ñ¦6Ñ™í½Æ°Ï9frŒ„;¬ +g挓ª(Yy¥X–éÀîŸÀaFc× b¸<•äƒ)aþšî[ŸÆí¥ôQÕ÷É(V‰Ãkª¢]…¼Ý¤j\Îd^3.¸"ž,Ëã·ã×+SAþã%h«ñÜÔÚä)U°µ£DW¬Ò3þŸ¯ñm7,ù-k>4nvM`ð&Y@»$ÑôÂHûJ^’€¶âLÐk8žÒÈqb;Ÿb”ø–5/šÛâ¡=¸êºd{d*ݺ'sðøø² ¼ð¦Ô’áçV¤œŸÅ)ÖÑ'¥˜µ×ZÆåñµŽŸZ¨ðùbŠvïr´Òí_º;4«Þ±5Œê¡2ø/œ,šþÙÄ5º~Ê—ÍÐ7ô [ÒÜ°’¦(ŇóQÁÂÒþ4RjÆ^ÿz«Þ&¾pÂ<urÊ85Xóå es4ߌ½¿Sï2_Eë÷)/áÀõÛ¿;§ÔsS鳚ÚCi [“Ô4ì’aœ±ÍÊõ8V5eä!–Õ¯S=ä‚üî¹ Ï·*JÈ=D«¹G
[:…R6[𞤎ð8ÂciWŒz}Ä1Ãoݳ‡èÉæ·äSØsúþUä‘þ&ºb¿ê~Äí÷ü°¨$ß裾ŒIÒöÎ÷‰Jò>å<Œîy&É+>/èì_ίÆf›ß™ß—¿ƒ¦qh"úH®e&x Qã³óÔŒ¡%©òiÆuŠ@6™UGX²y8’êAöØ;º²ä@ÿ +lcLk¬ïg'%ùo5ÆSÒ&j»‘Q•¼%2Ø>`‰ü’û"¸°³Ü¾•¤›(€’cQ=<XÒÆ2{wËS„ïNÿܘ/Ð{£ª‹÷?==¥åÝ á<ë±'û’Æ…µ÷-xT/‰A)rD ßà +ôSå·¡XɺÈiQ|DZ•ªã"¸‹˜ è48 ®l·í±iŽ%ödÆêTþêåO6òH*#2¸Ÿ®šjê̘¥¹T¹ð¯U™LÇœë&rŒô}×à‡¼}fz}òÑ¿þå:Èý/Q¼´?]ÿ÷‹«Dùè‡+Q¾8ÍÇ™¸ÔIz?€½ô
s$ë}J˜†á²ÔÏõW£Æ-—\öˆgi²wÞjóÈ‹zãXñTyÕýþõ¯Áê:‘Lz>!7\ŽÕžŒ@‰¾ù¥vz”¨ðIÈÕ+Ãåqú¤/ã"}òÕú[baîé Ô‘"ešü+w/¾~]Kî¸=à/ùöîBˆª\S=!æË;úÀ[q¬:®AÆŠ¾ßŸsŒ?¶ÇöùƒR½ù’·_õ¡\‘O§ò¹é~ò +Ï.Ýuy/x{wÁÈS•'ûŸö¼ú¶ÑoÂëô#D^Dþþ¼Ô3•ìë
®Œ
æù-ø`$Ú@¾ƒ!TcŒ||Žá™|þµlmOC©”vs
éNoüø‹ðøa‹ðøáñ/Âí\>ø錜g-Älcð!"ŒgG:ë+¨¿’T»‰Ÿ6¤onH¢âÈ°*\æ’êšVí£ú°"éç{Ž±“>~¸‰³Á~Ža–5Gà#Òˆfše3r¬&+G@¿È®k¨@*`JH%TâaCbåËaiCÓEìæ„·¥i ©÷Šï÷§¡Œù7RàOßTž=~<{ü0yöø
äÙãW}¨MƇÒqí瀪À&ŸÝ
µhCE1›´²ÅIhDtxÇ)4ÀÎÁÛê4ø‰.o]“¢öÃÖ Ž‘¡+Àg¤-Tõ[ ¥ŒÜsq¸`Úw¦ÕY•È fWDŒ€Œ ¶Pøl¸ÄXtᇆ)vë¯ÍÊõ¬K‚u/…¼Ú
ðNc„d•@,Sg0rÚkmš\bé9‘O‡“=dÐnÚ%››±Y| ó0w¨6-ÛÈ5&ºkĘU5Q¤oÀE¹. ùû¡k¤¸$)Š`¬ù×±¯4QÁÖ½W˜ÜBR±ðW°÷.j“ñ-1‹”ÆÏWæ¸ØÃDl—µêê5‡ÊÊgv”wPu®±ë€d +k$t.®EÚ×®?Êõt&4œ=êb++Œ0+OËÁpÆ–áé²0iâbÍ÷×™¼¬á¸¹äÖñÌ\|;<d§‡æ%«Cjdé"QHaJ@'¸SP†éMäX(:""è¾ +0ª¿·aI£+·–ç2ʺ×nñL3"¥~Fðæ ¢r€f;‹VŠy¶BliSxÒ-=^pÝ.‹›©¼¬â¼¹æ×ùÜd|Kd`§Çd»8;f°ÉXj&~@Kñ›
š)sS“®:“%èÄ2ò*Ê.ˆ;œ¿„ëTv$» l›¡+xUÆsw=n›âÛƒRXÌæ¯è‚ÅßçE”R¥@pmÓ|ÊÔc’üÔ‹ó%3ªBN*jÀ×,ÛcCiÙÕW}°çíñ’Ûe4|ýðñzùP›ŒoƒüëäÜõÖ°¤D‚¦hàV¤¬rD$ŠpPÄa†ÃpM€UÚ°øgX4M£(Ó4Y̱‘\`×\841/•dª€xèÞµp5ÍH'é´ÀOŠ®16=© éâZ{5CžÔo£9 +³ïù¯Ð[áy§ì` U®û +Y®“y»Žêö + +Æ>ˆ!Í ¦Ê–„W¦é›€UtÀêtè^&OKèBð”VÑåÖЊϖ2èŠ*bF†Ît+øL*ªbÀÈ„É÷¿†ŠŠ•¨ +tl(³ùʹ<¯bqåú‡×'j“ñíwžÊnk×iË0³¡“Ñ%.Œ¹ù™>¯„†²uײæûšµ›Ü*RAÙ°†ú@U•ÀY»bwÖ÷5šIp "Äk·€WNépÕš0¥¡¦ X&~ÕR›S6´q%±Ûƒ’§u>Ñ”Á`VÛdë ÀèÆ$[‡®Z¶àÚ:-Kð´†éÿoïÛv$¹®+¿ þ¡^xŠ>÷ËÌ“Ô– +„"FzÞ>‡&´lz;6š±qžÆQ•¡QŠ%¦,©bôK”3y…ðÉÎ7`ž;¨qyö]¤r*.𢮜5~>õ/Ôø(–¿-æçE…‡ènÉÅ\½) %PýðâìÙG™øJÄŽêÓ-È%4´ + ¡bZŠuDSÖߨ|¡ 5ÈOhÐåYz‹tãTÎô0«‘èðŽâX³SbP»µÌº”þú¢ËØÛ/pp’¯ãÏ ^ÂÑ¥÷Т2™c +Jì¼?Ôw•=¶µeo4R©–}l¡)Öä*¡ÔèçHŃŠÆÛ˜¹i».3½ýz³pªq½ âIÅ/May:ê¬,„¤OLÕØåU…iDäx%Ür̆{ÇóÉ4í +ŠŽ™„„â«QÈgÝ55zªìiÓeë
£©¼Øy%¾«½û‹×ŽèÅ +Q6¼è²x$ôb£XÇßÝ +hԛ么ìfI;x_Ed&|õ".ùeY/è‰(š’¢%zVh…UÊõ¡•3He/ sÔ)+W†éù6’(Á©$m˜¤õ=×Ø!©ên³v,cZïb¸R½¼[BÓªbÈfWT{Ó¤h¦Çæ©z*7DI!'÷ܦ-A¯¬óZÞˆ
·ÜŠÔNžwÈÁÚ£ÙûÙÂÇÕ‚v¦.œ£w:PŠ]ñ'«6®Ý”`*däEAZŸ€Äû•dÉšÑÌbŠœvbµÛßÆ°]Ŭ’¤ú°nOa\+Û@îšÐè¡än
¹ Õ‘4ê¤ó +^O¾€a8HÌDÎZ+‚ч¦anOðI,G¯†8ãÊû +å¹€ƒ5Œ°¦[’/MÉ4Ì¢.:]¬‡e?<ó²MŽ Z»–tÌF±v*’ªÑí"Ã%^+×é$…Ÿ±©ïÅf˲ÅÇuÎ!ÜN³Ý¦1 õïÑ,.±Öc¸Mœ®8`ït҄ઠBpÑh8þDª„g‘<1íÅ$ ´Wx«]‹>k3<-ŠÝXóJO2?I6”u6{H«Ÿ??ö³"¹/Á´VÐÈ^Êj6YÑîql´k×O×·œJ¥;·`pP€X2%;~¥ÉJo¦8ãÊ +ð21<²é»i-/V4Pöä1»Î
w¬dÀ]5»OõQàPUûÙ.ù¢°ùé´÷{;ãœgO˜ªÀÆ"N: +¾Ó]t”[xÒò@=š?׬Ý~S‘ön˜ž}d…
?’ນö5£t÷·á†zÂ'½îäøãõF5hå¯Ëvž¦]åôù×µ`mØ»‚¼È°$c§nä…4ê{&RX‡LŒQëol–ÞdÏž"™ÿO§ÝP—E~üÞú{ê³þ7ÝërÅ»Îæ]ãºö›+;søÞá~dŒP´Z‘{‚Š«´é·)T')Ô >úþ|ìýùÈûóqwb|jdĵB×dÉ1—‘ Ê=T@„ÉXÝ°~\$sÇJŽ‘|xÉ^+¤PènÖ˜É@a{!K½Z×_°üEÇÈ°³–x“ȶÊ{šÙÒ°AU +}3åp5Š8Ìóð«ú\‡›ÓÕœÂYðèQŸ"vº¾(K8±C€baB'>÷¯X‚ b’%| +Ìã
'|Iü)6@/ØéÀä}¸Tf(ï?é¢í›)"àÕc8†Ë´.¶‹¿¹×‹í·ÿè1_½g9|ÙþåîÚF\Ý®Ëm}uw}ûä1˜^Ý]Ý5h–Ç»p
èÃ,]ÐD}÷(Õì^`÷Ýa÷óÓ¢àÊ^ +ör\J.(јËĘ]¡h Å¿×7h(¦h; Rb —“6OGvÈI˜ +áx<ïÛ×'TÀ©í®,É•…;-pµ¤ +
•›ËsÓìd“k€’¬â"
h¯Òt¬-áœÄÑ4C%¸<hÚ‰¬ôõJ¨ËÖp¥ÂÑÔ+œDzƒáÌ.5‰é9RD™b¾žâUæü«r©F¾ìj®ªWã->€™£Þ1Ö—\'ø^xVeò7x’³@Jò]×|*ôðõó›ÅÎÙùh“’¯\S¤¦{¼¾l¦é¾=ëÉšŒY=öiN¹HQ‘}‘óxY‘¦ábË2d)M€æô=Ž(¨E›i%ÜQDŠö»°¾É ¼ØК\‘œÎi·1¯'a¹Ð,|k×˯~è*îÊ’\Y¸}«¸Þ–nA—5 +ªqìí¹dóšHâÇo"¿ÚíN`ž=àÕÂЀ*•ÐNÄ»9²Eß„A î2¾“W ¢lÅÉTHQäø£Æ°eϱ\“Ó8Y¨9o‘Æ[F
îSî2‡~aŒ¢Þ09°wFÃ#ˆˆ5Ö™EdWNÌåñT.ÿE[=±¾lÏe=\ ="‹0k.}·7Ì&–#@„*]J +|
HrUZjF“¿pî*«‚ï…3;<0Ž?elò«]VÙýa~nšaŽ5-:IƒÔž4ì͇”‡32Š\§_®fÿ:ÊŒ®)«F1¾Ú'ö‚ƒª&¸S®0ÏJFxºpÇ0‚Ißí>÷Üù“tŠMfä°^íÆYƒÏ"žëAcÑx²Uð<·£k˜°)·‰R|Îúo™ö‹³&HOûùÕe[xM£ÈËzj5|ÑnÄûyº0¹ü@åQ(¬(a¤ˆî
Eu˜·Âòˆ8ñ’·ŽÒ);ê¢àÀ»‘<¹œSZÚÎ÷Ú5b5uqr¦0y`$«<<Ó×ÕëPÞ8=ÛùÐé):<Q8[84*ø£äoˆ˜Õåp%•,âÝ›³4 +›åª¯jz&FB‹ÐD!„™!R'ËJÅJ _ˆ»äø¡Q4Tëòxq/7Wd^°þÄrø²Ý†8ôpÝ©òQ÷é“ôfo7qÝé…OµGÇÚ‹[[Zö—ý€¢—Ø…ëÍ×ÔSÑ*l.yè{b¸n
ÓüºÑÎR¤‰àl+H]"21ê1FÇ: B}ÊVÞ~³’Wùž¶×öZÓ«£MÕœrJÀUÌ»OÄ'æÕƒÙ–c=áÉÊ-ìYç7÷éEÃ…,bÖ«Œ#~¼¼—ÛKî°__
_´ñ•žÂcÛï`ÏökÌØÚ)4Åâ!$ü·ìæü´ùÛ8Â@Üq*ähÖDz]H|vÜ„ªÈ.L›æP71,WԄפIÌ¿´º·sê„+î÷°Î•S˜šÇ=– +C¤&‘QjØI OcÐŒý[+<…&D_j‘Õ8“Y?cˆä‡c6Ѳ¿ku¬ã稫-íyk³¼È¤?¹¶l7¢;=]x >âPGÃÃ(æÔm8fw@Ò£Oµy¨6£ÅBQˆê6ÍæW¢ÑíS˜ZœëRÎ,¨%ÌH·‹õÚŒ ù ì3ÞDÁ4q«§WBÉÒëì!”‘Ä= +Ë[F÷3ÞL5Aoô+8ºâèp¥qÝÚ4Ë\øÐðsš]æ}=4Êyg¶2n¡½h)gŠ÷WV÷r{ÉDõ‚ö'—ÖíFl©'ÿšþŽv4_@¨qëD{oš²Šå*z5´NÅŽæ,ž +‹ß€‡ñïAfY1À½Í覓išŽ8TØú1‰P—¡ŽoÇrª2QÛ²õ-Pcsi±OŒ0†¾Ë*àçÆU±¶kè]ì4ãI®þÀÜÜkí÷®—U2Æ"Ýa3ƒ9ïÙÀžµj¥Óš¾º—ÛË& ´?¹¶l·àZ=]•½¤õɼBôD1’d£›¨{nêµ
NÈn1›è#Óm*<Ís–ýÈQ$½Éí‰8v°4t{Y™ŠìÄÄ¢Xø‹$²Ö‡øš@#NUxÚ^¹ÚŒ_÷Áf’X†÷¦‰¾th{Õ1“ª€:»€ õ‚òU`}7dȨMw)eC{W¨æ¾Ï|všJWør{Ūô‚ö§–Öí/fj=yc½›×J3?Ô`Òn6f˜$x:%rú +‰!=ŒeµÓˆÞtzÏÆZ+âsÇ(hB¨J½ÁòÁ‚íUOCø¨¡§=7 ŽÓœìÍÀXÈCß3«y~\XDšåþ +fnCb{þ)ÌLt,:ʨp„ÅÙ¥GXŠ‘É +ÜR-«9¤*—ºãdßbŒ©Ø:lšw¨Œr¨éŸ=ñqª˜<?êw¯Úï©”N„K]‰âÒ܆ ÁPíµ!£±‰Í†Ai ã”Ô ¬ŠÃŽQ< +¢“Ao1£®ˆÁ¶n/–䙻ƳÎ<0™«¸9ÞšQl®¡ú0£àÿÇöDãd¤áÈÚ"˜S¥?S.OÇ\¥QÛ{¤™FŸÖäµ³Æ}÷xyoÄyË’ó!1¹ ¹Ô˜èGÔ»R³§ªIcPК¢&!–l,ª<c²ùˆæ7Ô±”¾à›Qöèy˜N¾k`ü‰2cXœ®FW,Ö÷¿i}’Þ—ü¼T8 +w†=d
K¹öŠÕîxETkvÚÌäÄ5ËËH_œ-„ÛÛ +Ì]m–W%3Z¯$ÒŽA²·½4ijÙÒAQ];+AµÕæõMòq·˜»üùÒ(äj^+õ›”0ìê¨udöKŒ’pÛìðØ’'•§Uñݪ®L™ÜTD½ªØѾc²_ ¦°”ËF¤zÓùQ/ªÑ¬óBž +‹Ùâ(s·«ukt?oÖèÅÅÒPT@m`y²ªyÓ¸Ftî\k¡®÷†Äñê‰0çLGë:2wœ{Î]
kÞ£¨§cl tdV
Áð—©ï¬Oqú—)“R¢>Ç)de3‘µ˜×ä6LØ,Œ€G[ì‹;{õ™Æµ3-2ΫJ{B»Xk†rÞò9®5úVú)7€¸FŒ²äó"—Q¬ êŽ,qÁ ìÊQª¬[±ÂØyU|œì6”ÊÜ%Ž8zeD›/§ØàÒ±ò¢Ú.ÁÉ€Ã{Ç+ÊÚ]Ó¤Æ}l 3KÄm“j0|¡õ3Xà¡©Ä"š™Özå©nõüD,„S
Ï^vUŒVŸëÖÕ¾<¶9¼Ê}ûÍC +§5…Ïj·¾ö™6
ô…Zù{¥VV4P!B‘+ïzŒ-® +A¬ÏGð‹=~RpV“ï˜Ie> ;m'Ýêƒ0òÚÉ by:³ÍæTFXð”gûg8G0’Ï¡·YO¢¶Wh,!|(μV˜ +Xd¢Ã<ý¢‹,Œ©ÐæúÜ~ó:‹Ë‡$g÷?†/8|ŸÁß« +ÔpurÔü¬ƒÈïþÕÝQXllÙºVŠ—7/Á+3Ks;~¦ÛʬË,Éá×\¶ß”_hÝøÅýzç +Ø2ýËÝÕ5¿²1éÊ=]Ùæ+`8CæÕÝu`]…ßãU¿çKÌ_bæ‚w÷»ñ½ +ÒKôÕ@×X½¡ óç +¶1 †å¨‘øAü-kýkMžuÆHÔãTÐ#hQ$¦D=C¨Þ6Ï4D£9Ó⯘•–ƒæÿ*/ +Ø:ÝŒÕm¿nÊqYBld4}mÛÔƒ^¤5»Ï9§2pÌ&q¥!¹¦RdÉ&ÑPÓDOÕ5r‘úe$UÂ? +V¨B¶Rós‚)d¦ênŽ´“—“§Þ'[è묘KûBsòA[µRž†¦i¢ùâ7î:àüd,ŒøeQ&Œa¯ø\
éþñª]îYíGíÅ +Ø:ÝŒ m¿n‡HãJÉA„b-ŠJq“X¢(íq„2Æ0½4ìÅI›W.^´bÄ4»Tá"%Oè639]uóMN{5
0 +ðt°½@fÆäÆ9q“<ËÀH=Zó|C·/Í‹Yå”UÚ»v?ðÛ[ÏnŒrÿx}/vבóáâûrlnCÁ¶_”äeîMiÊãU/ÝÖ< +™K\ÏÚ7vXJ˜ìÙÆ°¨[J)¹9må”â².šúAÂ(I4Ö½« W¦ŠLl±§Ý.iCHfÉ´Ù¬â
ªÁŒdã'ÞQhiª›=ÎŒz¯˜gñtw² +Ufï¥P˜‹°ŸK_•¤ ª»Ðfå ‡ŠVÆÞÕ ½Ë^o<ÍéÌæÞ>¨qJ‰“1üñÒ^li|Ø ¾\[§›1í¡øˆ.5WÚ#k›BqOiCªÞµlo¡HDÆ®î[7FöSÑͬàHFßCsÕ[ƒ°]JYAºÚ†gŠ¦öÜ^íË´¡ìí½’…çèf-°À×Ì÷HœÁBIÚ;ø2PN(1“Fy&¡—6Ín,F¯Þ¡1‘67£à ‘¦¶ž‡Ëµ½ØÙí +kæ(†ìlYÆÛœz»ÏDs7ùp†w$Ëô¦Þ-‹9[·Rtý&쎕ë,“vv2.š"Ê:©#ß?^Ù‹me
Ù
ìË°uº‹Ú~Ùc1ª!Ûl[æŹknf—ÔëÓRH´8t"J]°RFŽÎ¥Äs¨;°‡…H¶—?—ÕqK;;úÕZ³‰ÐK?Ø@öÌÑB$9s‹ëª}š HdûÔ)LO
¶cl„$:‡äBï²è„šM÷qµÍÔHÝdS%ÖÒÆ•œW÷bggK8¶/W@Ët+δcþÆÚM¡ Gk¶G'C;dä6%¾Bx¡´™îºÙ'Ã,Ð$ªMš,‡Nä2L³ÓÓnJÞE›—ÔqÆC1û"3Xiž6™1¥[=Êèv±>Š%Òûn±ÿZ‡bUŸ‰ÍA¶3A.~hÚ!ÆPØ™eóÕàÀ˜&VD¬Rœ@ÌJØò~&ˆÀnÓ÷vS&™å>O»mûrÂDöàÿ‡z(-€ÒÍÈÕ>.êüTTí|eë=m&EdÃä>í·MªY´Ñt4;¤ùf(͉°/ˆŸv@(Fvxz):<{‘s/ÍÝCÿMð©TŠíû½+iñÖ4h—¦ƒ²úÝqo Øà£m)Tî|UxõGÍAV†"=˜žc±8¼ò™o>Ë—Z#5¨´Ì®¹,Ï€ìtò¾c=Á\¢.rÄx±[1±í?ÄÉËV fb–ä6xgòî⊠–dæT[^¬Ùpʼ>áfå„€‘¥ÿ¶c՜€·™±Y' ÓÅW=yæ\I¤ž|+ÄD˹hpK¶É=ñ«Uf‘‡O†%yx +Ûl¨%ÉV9L
Ø–$<)ì®Ùž¤£ëÄi–G»ÌobTüƒ(òäöU§Fœ"™«Èæsƒéë‰É1ÀŽ*KT÷¼XÍÔö#™°¤q ¶9~,øk¥_X/ÊH׿ëÁ[3“k”xR€A2¯GEf›ŸrçA¦Õ žÚà#œõîæô<ê/_Ì``lܪ[F‹Îõƒiø#åöÁjJñf¼7J”ðk3šhÏ÷¡Œá£k¨š¡I˜†éòjÔYûbŠ©´Ê Ž + +‰¸#Š +â¬*,âk}¥Ñ”{Àû ïéá9\¨sD¼ÀŸIQ´Ï›¬‹´Útõf‡°3ÌCÏ`¶S|‚€ù«§[y•Zõ<å“ÝþiGªš©‰Óô®|‚JàJi£ÿ®ˆ&ìj\¨ÞŽÓÌFõD~P¶…fkñÞö³,ÙXûjkVOhl`¨a
+ìZ£Pœ:¸ÝìgÃÑ˘àê0²U$¯!Ÿ`5Õäìg·ù‘ɹí ï:Ï¡æU{ØÌ“,¦Î«v+'Г»zDÞôC0k·Î¸VÐŒï™?ºƒïuãS쩈OL6·vôê´PÌŒÎc„²g€—ÕõH):Ž%û»-±x¼´êöÙ7sYŸó±ç¥ø¸>·ÝâV1þ…£¾Xع® +œ
¹bc˜£õ^f·Ò©ï-ñž“·7®®Í¼¬¦¡æ{¶ÐÚ¦Bmº‘‘K§xÊÄt#c+–fu[´5Í©˜jaÁ}ôÏy
gV3=üªÙDûj³N’fÒ+T¤ßi€úç¬8²d/Ì=,îع¬åGVc(‹¨BJ‘ 0000000016 00000 n
-0000045654 00000 n
+0000045544 00000 n
0000000004 00000 f
0000000006 00000 f
-0000054890 00000 n
+0000055744 00000 n
0000000007 00000 f
0000000008 00000 f
0000000009 00000 f
@@ -4964,9 +4977,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000013 00000 f
0000000014 00000 f
0000000018 00000 f
-0000045705 00000 n
-0000054715 00000 n
-0000054746 00000 n
+0000045595 00000 n
+0000055567 00000 n
+0000055598 00000 n
0000000019 00000 f
0000000020 00000 f
0000000021 00000 f
@@ -4976,9 +4989,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000025 00000 f
0000000026 00000 f
0000000030 00000 f
-0000045774 00000 n
-0000054599 00000 n
-0000054630 00000 n
+0000045664 00000 n
+0000055451 00000 n
+0000055482 00000 n
0000000031 00000 f
0000000032 00000 f
0000000033 00000 f
@@ -4986,9 +4999,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000035 00000 f
0000000036 00000 f
0000000040 00000 f
-0000045845 00000 n
-0000054483 00000 n
-0000054514 00000 n
+0000045735 00000 n
+0000055335 00000 n
+0000055366 00000 n
0000000041 00000 f
0000000042 00000 f
0000000043 00000 f
@@ -5014,9 +5027,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000063 00000 f
0000000064 00000 f
0000000068 00000 f
-0000045915 00000 n
-0000054367 00000 n
-0000054398 00000 n
+0000045805 00000 n
+0000055219 00000 n
+0000055250 00000 n
0000000069 00000 f
0000000070 00000 f
0000000071 00000 f
@@ -5027,9 +5040,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000076 00000 f
0000000077 00000 f
0000000081 00000 f
-0000045984 00000 n
-0000054251 00000 n
-0000054282 00000 n
+0000045874 00000 n
+0000055103 00000 n
+0000055134 00000 n
0000000082 00000 f
0000000083 00000 f
0000000084 00000 f
@@ -5039,9 +5052,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000088 00000 f
0000000089 00000 f
0000000093 00000 f
-0000046055 00000 n
-0000054135 00000 n
-0000054166 00000 n
+0000045945 00000 n
+0000054987 00000 n
+0000055018 00000 n
0000000094 00000 f
0000000095 00000 f
0000000096 00000 f
@@ -5065,9 +5078,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000114 00000 f
0000000115 00000 f
0000000119 00000 f
-0000046125 00000 n
-0000054017 00000 n
-0000054049 00000 n
+0000046015 00000 n
+0000054869 00000 n
+0000054901 00000 n
0000000120 00000 f
0000000121 00000 f
0000000122 00000 f
@@ -5078,9 +5091,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000127 00000 f
0000000128 00000 f
0000000132 00000 f
-0000046197 00000 n
-0000053899 00000 n
-0000053931 00000 n
+0000046087 00000 n
+0000054751 00000 n
+0000054783 00000 n
0000000133 00000 f
0000000134 00000 f
0000000135 00000 f
@@ -5090,9 +5103,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000139 00000 f
0000000140 00000 f
0000000144 00000 f
-0000046271 00000 n
-0000053781 00000 n
-0000053813 00000 n
+0000046161 00000 n
+0000054633 00000 n
+0000054665 00000 n
0000000145 00000 f
0000000146 00000 f
0000000147 00000 f
@@ -5116,9 +5129,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000165 00000 f
0000000166 00000 f
0000000170 00000 f
-0000046344 00000 n
-0000053663 00000 n
-0000053695 00000 n
+0000046234 00000 n
+0000054515 00000 n
+0000054547 00000 n
0000000171 00000 f
0000000172 00000 f
0000000173 00000 f
@@ -5129,9 +5142,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000178 00000 f
0000000179 00000 f
0000000183 00000 f
-0000046416 00000 n
-0000053545 00000 n
-0000053577 00000 n
+0000046306 00000 n
+0000054397 00000 n
+0000054429 00000 n
0000000184 00000 f
0000000185 00000 f
0000000186 00000 f
@@ -5141,9 +5154,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000190 00000 f
0000000191 00000 f
0000000195 00000 f
-0000046490 00000 n
-0000053427 00000 n
-0000053459 00000 n
+0000046380 00000 n
+0000054279 00000 n
+0000054311 00000 n
0000000196 00000 f
0000000197 00000 f
0000000198 00000 f
@@ -5167,9 +5180,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000216 00000 f
0000000217 00000 f
0000000221 00000 f
-0000046563 00000 n
-0000053309 00000 n
-0000053341 00000 n
+0000046453 00000 n
+0000054161 00000 n
+0000054193 00000 n
0000000222 00000 f
0000000223 00000 f
0000000224 00000 f
@@ -5186,9 +5199,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000235 00000 f
0000000236 00000 f
0000000240 00000 f
-0000046635 00000 n
-0000053191 00000 n
-0000053223 00000 n
+0000046525 00000 n
+0000054043 00000 n
+0000054075 00000 n
0000000241 00000 f
0000000242 00000 f
0000000243 00000 f
@@ -5204,9 +5217,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000253 00000 f
0000000254 00000 f
0000000258 00000 f
-0000046709 00000 n
-0000053073 00000 n
-0000053105 00000 n
+0000046599 00000 n
+0000053925 00000 n
+0000053957 00000 n
0000000259 00000 f
0000000260 00000 f
0000000261 00000 f
@@ -5236,9 +5249,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000285 00000 f
0000000286 00000 f
0000000290 00000 f
-0000046782 00000 n
-0000052955 00000 n
-0000052987 00000 n
+0000046672 00000 n
+0000053807 00000 n
+0000053839 00000 n
0000000291 00000 f
0000000292 00000 f
0000000293 00000 f
@@ -5255,9 +5268,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000304 00000 f
0000000305 00000 f
0000000309 00000 f
-0000046854 00000 n
-0000052837 00000 n
-0000052869 00000 n
+0000046744 00000 n
+0000053689 00000 n
+0000053721 00000 n
0000000310 00000 f
0000000311 00000 f
0000000312 00000 f
@@ -5273,9 +5286,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000322 00000 f
0000000323 00000 f
0000000327 00000 f
-0000046928 00000 n
-0000052719 00000 n
-0000052751 00000 n
+0000046818 00000 n
+0000053571 00000 n
+0000053603 00000 n
0000000328 00000 f
0000000329 00000 f
0000000330 00000 f
@@ -5305,9 +5318,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000354 00000 f
0000000355 00000 f
0000000359 00000 f
-0000047001 00000 n
-0000052601 00000 n
-0000052633 00000 n
+0000046891 00000 n
+0000053453 00000 n
+0000053485 00000 n
0000000360 00000 f
0000000361 00000 f
0000000362 00000 f
@@ -5324,9 +5337,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000373 00000 f
0000000374 00000 f
0000000378 00000 f
-0000047073 00000 n
-0000052483 00000 n
-0000052515 00000 n
+0000046963 00000 n
+0000053335 00000 n
+0000053367 00000 n
0000000379 00000 f
0000000380 00000 f
0000000381 00000 f
@@ -5342,9 +5355,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000391 00000 f
0000000392 00000 f
0000000396 00000 f
-0000047147 00000 n
-0000052365 00000 n
-0000052397 00000 n
+0000047037 00000 n
+0000053217 00000 n
+0000053249 00000 n
0000000397 00000 f
0000000398 00000 f
0000000399 00000 f
@@ -5374,9 +5387,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000423 00000 f
0000000424 00000 f
0000000428 00000 f
-0000047220 00000 n
-0000052247 00000 n
-0000052279 00000 n
+0000047110 00000 n
+0000053099 00000 n
+0000053131 00000 n
0000000429 00000 f
0000000430 00000 f
0000000431 00000 f
@@ -5393,9 +5406,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000442 00000 f
0000000443 00000 f
0000000447 00000 f
-0000047292 00000 n
-0000052129 00000 n
-0000052161 00000 n
+0000047182 00000 n
+0000052981 00000 n
+0000053013 00000 n
0000000448 00000 f
0000000449 00000 f
0000000450 00000 f
@@ -5411,9 +5424,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000460 00000 f
0000000461 00000 f
0000000465 00000 f
-0000047364 00000 n
-0000052011 00000 n
-0000052043 00000 n
+0000047254 00000 n
+0000052863 00000 n
+0000052895 00000 n
0000000466 00000 f
0000000467 00000 f
0000000468 00000 f
@@ -5429,9 +5442,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000478 00000 f
0000000479 00000 f
0000000483 00000 f
-0000047438 00000 n
-0000051893 00000 n
-0000051925 00000 n
+0000047328 00000 n
+0000052745 00000 n
+0000052777 00000 n
0000000484 00000 f
0000000485 00000 f
0000000486 00000 f
@@ -5464,9 +5477,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000513 00000 f
0000000514 00000 f
0000000518 00000 f
-0000047511 00000 n
-0000051775 00000 n
-0000051807 00000 n
+0000047401 00000 n
+0000052627 00000 n
+0000052659 00000 n
0000000519 00000 f
0000000520 00000 f
0000000521 00000 f
@@ -5483,9 +5496,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000532 00000 f
0000000533 00000 f
0000000537 00000 f
-0000047583 00000 n
-0000051657 00000 n
-0000051689 00000 n
+0000047473 00000 n
+0000052509 00000 n
+0000052541 00000 n
0000000538 00000 f
0000000539 00000 f
0000000540 00000 f
@@ -5501,9 +5514,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000550 00000 f
0000000551 00000 f
0000000555 00000 f
-0000047655 00000 n
-0000051539 00000 n
-0000051571 00000 n
+0000047545 00000 n
+0000052391 00000 n
+0000052423 00000 n
0000000556 00000 f
0000000557 00000 f
0000000558 00000 f
@@ -5519,9 +5532,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000568 00000 f
0000000569 00000 f
0000000573 00000 f
-0000047729 00000 n
-0000051421 00000 n
-0000051453 00000 n
+0000047619 00000 n
+0000052273 00000 n
+0000052305 00000 n
0000000574 00000 f
0000000575 00000 f
0000000576 00000 f
@@ -5554,9 +5567,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000603 00000 f
0000000604 00000 f
0000000608 00000 f
-0000047802 00000 n
-0000051303 00000 n
-0000051335 00000 n
+0000047692 00000 n
+0000052155 00000 n
+0000052187 00000 n
0000000609 00000 f
0000000610 00000 f
0000000611 00000 f
@@ -5573,9 +5586,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000622 00000 f
0000000623 00000 f
0000000627 00000 f
-0000047874 00000 n
-0000051185 00000 n
-0000051217 00000 n
+0000047764 00000 n
+0000052037 00000 n
+0000052069 00000 n
0000000628 00000 f
0000000629 00000 f
0000000630 00000 f
@@ -5591,9 +5604,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000640 00000 f
0000000641 00000 f
0000000645 00000 f
-0000047946 00000 n
-0000051067 00000 n
-0000051099 00000 n
+0000047836 00000 n
+0000051919 00000 n
+0000051951 00000 n
0000000646 00000 f
0000000647 00000 f
0000000648 00000 f
@@ -5609,9 +5622,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000658 00000 f
0000000659 00000 f
0000000663 00000 f
-0000048020 00000 n
-0000050949 00000 n
-0000050981 00000 n
+0000047910 00000 n
+0000051801 00000 n
+0000051833 00000 n
0000000664 00000 f
0000000665 00000 f
0000000666 00000 f
@@ -5644,13 +5657,13 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000693 00000 f
0000000694 00000 f
0000000698 00000 f
-0000048093 00000 n
-0000050831 00000 n
-0000050863 00000 n
+0000047983 00000 n
+0000051683 00000 n
+0000051715 00000 n
0000000702 00000 f
-0000048164 00000 n
-0000050713 00000 n
-0000050745 00000 n
+0000048054 00000 n
+0000051565 00000 n
+0000051597 00000 n
0000000703 00000 f
0000000704 00000 f
0000000705 00000 f
@@ -5667,9 +5680,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000716 00000 f
0000000717 00000 f
0000000721 00000 f
-0000048236 00000 n
-0000050595 00000 n
-0000050627 00000 n
+0000048126 00000 n
+0000051447 00000 n
+0000051479 00000 n
0000000722 00000 f
0000000723 00000 f
0000000724 00000 f
@@ -5684,9 +5697,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000733 00000 f
0000000734 00000 f
0000000738 00000 f
-0000048308 00000 n
-0000050477 00000 n
-0000050509 00000 n
+0000048198 00000 n
+0000051329 00000 n
+0000051361 00000 n
0000000739 00000 f
0000000740 00000 f
0000000741 00000 f
@@ -5702,9 +5715,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000751 00000 f
0000000752 00000 f
0000000756 00000 f
-0000048382 00000 n
-0000050359 00000 n
-0000050391 00000 n
+0000048272 00000 n
+0000051211 00000 n
+0000051243 00000 n
0000000757 00000 f
0000000758 00000 f
0000000759 00000 f
@@ -5733,14 +5746,14 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000782 00000 f
0000000783 00000 f
0000000784 00000 f
-0000000788 00001 f
-0000048455 00000 n
-0000050241 00000 n
-0000050273 00000 n
+0000000788 00000 f
+0000048345 00000 n
+0000051093 00000 n
+0000051125 00000 n
0000000792 00000 f
-0000048526 00000 n
-0000050123 00000 n
-0000050155 00000 n
+0000048416 00000 n
+0000050975 00000 n
+0000051007 00000 n
0000000793 00000 f
0000000794 00000 f
0000000795 00000 f
@@ -5757,9 +5770,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000806 00000 f
0000000807 00000 f
0000000811 00000 f
-0000048598 00000 n
-0000050005 00000 n
-0000050037 00000 n
+0000048488 00000 n
+0000050857 00000 n
+0000050889 00000 n
0000000812 00000 f
0000000813 00000 f
0000000814 00000 f
@@ -5774,9 +5787,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000823 00000 f
0000000824 00000 f
0000000828 00000 f
-0000048670 00000 n
-0000049887 00000 n
-0000049919 00000 n
+0000048560 00000 n
+0000050739 00000 n
+0000050771 00000 n
0000000829 00000 f
0000000830 00000 f
0000000831 00000 f
@@ -5792,9 +5805,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000841 00000 f
0000000842 00000 f
0000000846 00000 f
-0000048744 00000 n
-0000049769 00000 n
-0000049801 00000 n
+0000048634 00000 n
+0000050621 00000 n
+0000050653 00000 n
0000000847 00000 f
0000000848 00000 f
0000000849 00000 f
@@ -5812,103 +5825,196 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä 0000000861 00000 f
0000000862 00000 f
0000000863 00000 f
-0000000864 00001 f
+0000000864 00000 f
0000000865 00000 f
0000000866 00000 f
0000000867 00000 f
0000000868 00000 f
+0000000869 00000 f
+0000000870 00000 f
+0000000871 00000 f
+0000000872 00000 f
+0000000873 00000 f
+0000000874 00000 f
+0000000875 00000 f
0000000876 00000 f
-0000173720 00000 n
-0000173796 00000 n
-0000174020 00000 n
-0000175035 00000 n
-0000182519 00000 n
-0000248108 00000 n
-0000313697 00000 n
+0000000877 00000 f
0000000881 00001 f
-0000054831 00000 n
-0000048817 00000 n
-0000049651 00000 n
-0000049683 00000 n
-0000000894 00001 f
-0000048888 00000 n
-0000049533 00000 n
-0000049565 00000 n
-0000057673 00000 n
-0000158692 00000 n
-0000159417 00000 n
-0000173093 00000 n
-0000059698 00000 n
-0000059735 00000 n
-0000159480 00000 n
-0000158755 00000 n
-0000062384 00000 n
-0000000904 00001 f
-0000146567 00000 n
-0000147323 00000 n
-0000158629 00000 n
-0000147386 00000 n
-0000146630 00000 n
-0000062878 00000 n
-0000048960 00000 n
-0000049415 00000 n
-0000049447 00000 n
-0000000911 00001 f
-0000131986 00000 n
-0000132736 00000 n
-0000146504 00000 n
-0000132799 00000 n
-0000132049 00000 n
-0000063362 00000 n
-0000000921 00001 f
-0000119816 00000 n
-0000120569 00000 n
-0000131923 00000 n
-0000120632 00000 n
-0000119879 00000 n
-0000063860 00000 n
-0000049032 00000 n
-0000049297 00000 n
-0000049329 00000 n
-0000000928 00001 f
-0000105212 00000 n
-0000105960 00000 n
-0000119753 00000 n
-0000106023 00000 n
-0000105275 00000 n
-0000064347 00000 n
-0000000929 00001 f
-0000000939 00001 f
-0000093039 00000 n
-0000093791 00000 n
-0000105149 00000 n
-0000093854 00000 n
-0000093102 00000 n
-0000064848 00000 n
-0000049106 00000 n
-0000049179 00000 n
-0000049211 00000 n
-0000000946 00001 f
-0000078414 00000 n
-0000079171 00000 n
-0000092976 00000 n
-0000079234 00000 n
-0000078477 00000 n
-0000065328 00000 n
+0000048707 00000 n
+0000050503 00000 n
+0000050535 00000 n
+0000000885 00000 f
+0000048778 00000 n
+0000050385 00000 n
+0000050417 00000 n
+0000000886 00000 f
+0000000887 00000 f
+0000000888 00000 f
+0000000889 00000 f
+0000000890 00000 f
+0000000891 00000 f
+0000000892 00000 f
+0000000893 00000 f
+0000000894 00000 f
+0000000895 00000 f
+0000000896 00000 f
+0000000897 00000 f
+0000000898 00000 f
+0000000899 00000 f
+0000000900 00000 f
+0000000904 00000 f
+0000048850 00000 n
+0000050267 00000 n
+0000050299 00000 n
+0000000905 00000 f
+0000000906 00000 f
+0000000907 00000 f
+0000000908 00000 f
+0000000909 00000 f
+0000000910 00000 f
+0000000911 00000 f
+0000000912 00000 f
+0000000913 00000 f
+0000000914 00000 f
+0000000915 00000 f
+0000000916 00000 f
+0000000917 00000 f
+0000000921 00000 f
+0000048922 00000 n
+0000050149 00000 n
+0000050181 00000 n
+0000000922 00000 f
+0000000923 00000 f
+0000000924 00000 f
+0000000925 00000 f
+0000000926 00000 f
+0000000927 00000 f
+0000000928 00000 f
+0000000929 00000 f
+0000000930 00000 f
+0000000931 00000 f
+0000000932 00000 f
+0000000933 00000 f
+0000000934 00000 f
+0000000935 00000 f
+0000000939 00000 f
+0000048996 00000 n
+0000050031 00000 n
+0000050063 00000 n
+0000000940 00000 f
+0000000941 00000 f
+0000000942 00000 f
+0000000943 00000 f
+0000000944 00000 f
+0000000945 00000 f
+0000000946 00000 f
+0000000947 00000 f
+0000000948 00000 f
+0000000949 00000 f
+0000000950 00000 f
+0000000951 00000 f
+0000000952 00000 f
+0000000953 00000 f
+0000000954 00000 f
+0000000955 00000 f
+0000000956 00000 f
+0000000957 00001 f
+0000000958 00000 f
+0000000959 00000 f
+0000000960 00000 f
+0000000961 00000 f
+0000000969 00000 f
+0000174447 00000 n
+0000174523 00000 n
+0000174747 00000 n
+0000175772 00000 n
+0000183336 00000 n
+0000248925 00000 n
+0000314514 00000 n
+0000000974 00001 f
+0000055683 00000 n
+0000049069 00000 n
+0000049913 00000 n
+0000049945 00000 n
+0000000987 00001 f
+0000049140 00000 n
+0000049795 00000 n
+0000049827 00000 n
+0000058541 00000 n
+0000159418 00000 n
+0000160143 00000 n
+0000173817 00000 n
+0000060510 00000 n
+0000060547 00000 n
+0000160206 00000 n
+0000159481 00000 n
+0000063196 00000 n
+0000000997 00001 f
+0000147299 00000 n
+0000148055 00000 n
+0000159355 00000 n
+0000148118 00000 n
+0000147362 00000 n
+0000063689 00000 n
+0000049212 00000 n
+0000049677 00000 n
+0000049709 00000 n
+0000001004 00001 f
+0000132732 00000 n
+0000133484 00000 n
+0000147235 00000 n
+0000133547 00000 n
+0000132795 00000 n
+0000064172 00000 n
+0000001014 00001 f
+0000120560 00000 n
+0000121317 00000 n
+0000132668 00000 n
+0000121381 00000 n
+0000120624 00000 n
+0000064671 00000 n
+0000049284 00000 n
+0000049557 00000 n
+0000049590 00000 n
+0000001021 00001 f
+0000106070 00000 n
+0000106822 00000 n
+0000120496 00000 n
+0000106886 00000 n
+0000106134 00000 n
+0000065160 00000 n
+0000001022 00001 f
+0000001032 00001 f
+0000093888 00000 n
+0000094644 00000 n
+0000106006 00000 n
+0000094708 00000 n
+0000093952 00000 n
+0000065664 00000 n
+0000049361 00000 n
+0000049437 00000 n
+0000049470 00000 n
+0000001039 00001 f
+0000079247 00000 n
+0000080008 00000 n
+0000093824 00000 n
+0000080072 00000 n
+0000079311 00000 n
+0000066147 00000 n
0000000000 00001 f
-0000066308 00000 n
-0000067065 00000 n
-0000078351 00000 n
-0000067128 00000 n
-0000066371 00000 n
-0000065829 00000 n
-0000057787 00000 n
-0000058077 00000 n
-0000055498 00000 n
-0000361937 00000 n
-0000058339 00000 n
-0000173156 00000 n
-0000173206 00000 n
-0000057517 00000 n
-0000000897 00000 n
-trailer
<</Size 962/Root 1 0 R/Info 956 0 R/ID[<DFAD564605F549E3ABF1FC747EBA5A34><A151DA051B174F59A99D14D40A0E4378>]>>
startxref
362074
%%EOF
\ No newline at end of file +0000067133 00000 n
+0000067894 00000 n
+0000079183 00000 n
+0000067958 00000 n
+0000067197 00000 n
+0000066651 00000 n
+0000058655 00000 n
+0000058947 00000 n
+0000056363 00000 n
+0000362622 00000 n
+0000059211 00000 n
+0000173880 00000 n
+0000173932 00000 n
+0000058383 00000 n
+0000000982 00000 n
+trailer
<</Size 1055/Root 1 0 R/Info 1049 0 R/ID[<DFAD564605F549E3ABF1FC747EBA5A34><45AB28F93CAE4209BAB0B0278EBC9323>]>>
startxref
362760
%%EOF
\ No newline at end of file diff --git a/src/compiler/scala/tools/nsc/doc/model/Entity.scala b/src/compiler/scala/tools/nsc/doc/model/Entity.scala index 678702c7f1..b5f12d312d 100644 --- a/src/compiler/scala/tools/nsc/doc/model/Entity.scala +++ b/src/compiler/scala/tools/nsc/doc/model/Entity.scala @@ -48,6 +48,7 @@ trait MemberEntity extends Entity { def resultType: TypeEntity def isDef: Boolean def isVal: Boolean + def isLazyVal: Boolean def isVar: Boolean def isImplicit: Boolean def isConstructor: Boolean @@ -131,7 +132,7 @@ trait Constructor extends NonTemplateMemberEntity { def valueParams : List[List[ValueParam]] } -/** A value (`val`) or variable (`var`) of a ''documentable'' class, trait or object. */ +/** A value (`val`), lazy val (`lazy val`) or variable (`var`) of a ''documentable'' class, trait or object. */ trait Val extends NonTemplateMemberEntity /** An abstract type of a ''documentable'' class, trait or object. */ diff --git a/src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala b/src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala index 9641bc9045..d7e1e2fe1a 100644 --- a/src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala +++ b/src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala @@ -52,10 +52,6 @@ class ModelFactory(val global: Global, val settings: doc.Settings) extends Comme def inTemplate = inTpl def toRoot: List[EntityImpl] = this :: inTpl.toRoot def qualifiedName = name - override def equals(that: Any) = that match { - case that: EntityImpl => this.sym == that.sym - case _ => false - } } /** Provides a default implementation for instances of the `WeakTemplateEntity` type. It must be instantiated as a @@ -124,6 +120,7 @@ class ModelFactory(val global: Global, val settings: doc.Settings) extends Comme def resultType = makeType(sym.tpe.finalResultType, inTemplate, sym) def isDef = false def isVal = false + def isLazyVal = false def isVar = false def isImplicit = sym.isImplicit def isConstructor = false @@ -336,11 +333,15 @@ class ModelFactory(val global: Global, val settings: doc.Settings) extends Comme def makeMember(aSym: Symbol, inTpl: => DocTemplateImpl): List[MemberImpl] = { def makeMember0(bSym: Symbol): Option[MemberImpl] = { - if (bSym.isGetter && bSym.accessed.isMutable) + if (bSym.isGetter && bSym.isLazy) + Some(new NonTemplateMemberImpl(bSym, inTpl) with Val { + override def isLazyVal = true + }) + else if (bSym.isGetter && bSym.accessed.isMutable) Some(new NonTemplateMemberImpl(bSym, inTpl) with Val { override def isVar = true }) - else if (bSym.isMethod && !bSym.isGetterOrSetter && !bSym.isConstructor) + else if (bSym.isMethod && !bSym.isGetterOrSetter && !bSym.isConstructor && !bSym.isModule) Some(new NonTemplateParamMemberImpl(bSym, inTpl) with Def { override def isDef = true def typeParams = @@ -372,7 +373,7 @@ class ModelFactory(val global: Global, val settings: doc.Settings) extends Comme None } - if ((!aSym.isPackage && aSym.sourceFile == null) || !localShouldDocument(aSym) || aSym.isModuleClass || aSym.isPackageObject || aSym.isMixinConstructor) + if (!localShouldDocument(aSym) || aSym.isModuleClass || aSym.isPackageObject || aSym.isMixinConstructor) Nil else { val allSyms = useCases(aSym, inTpl.sym) map { case (bSym, bComment, bPos) => diff --git a/src/compiler/scala/tools/nsc/doc/model/comment/Body.scala b/src/compiler/scala/tools/nsc/doc/model/comment/Body.scala index 7d2aee2d98..29e47fa578 100644 --- a/src/compiler/scala/tools/nsc/doc/model/comment/Body.scala +++ b/src/compiler/scala/tools/nsc/doc/model/comment/Body.scala @@ -9,10 +9,41 @@ import scala.collection._ import java.net.URL -/** */ -final case class Body(blocks: Seq[Block]) +/** A body of text. A comment has a single body, which is composed of at least one block. Inside every body is exactly + * one summary (see [[scala.tools.nsc.doc.model.comment.Summary]]). */ +final case class Body(blocks: Seq[Block]) { -/** */ + /** The summary text of the comment body. */ + lazy val summary: Option[Inline] = { + def summaryInBlock(block: Block): Seq[Inline] = block match { + case Title(text, _) => summaryInInline(text) + case Paragraph(text) => summaryInInline(text) + case UnorderedList(items) => items flatMap { summaryInBlock(_) } + case OrderedList(items, _) => items flatMap { summaryInBlock(_) } + case DefinitionList(items) => items.values.toSeq flatMap { summaryInBlock(_) } + case _ => Nil + } + def summaryInInline(text: Inline): Seq[Inline] = text match { + case Summary(text) => List(text) + case Chain(items) => items flatMap { summaryInInline(_) } + case Italic(text) => summaryInInline(text) + case Bold(text) => summaryInInline(text) + case Underline(text) => summaryInInline(text) + case Superscript(text) => summaryInInline(text) + case Subscript(text) => summaryInInline(text) + case Link(_, title) => summaryInInline(title) + case _ => Nil + } + (blocks flatMap { summaryInBlock(_) }).toList match { + case Nil => None + case inline :: Nil => Some(inline) + case inlines => Some(Chain(inlines)) + } + } + +} + +/** A block-level element of text, such as a paragraph or code block. */ sealed abstract class Block final case class Title(text: Inline, level: Int) extends Block @@ -23,7 +54,7 @@ final case class OrderedList(items: Seq[Block], style: String) extends Block final case class DefinitionList(items: SortedMap[Inline, Block]) extends Block final case class HorizontalRule() extends Block -/** */ +/** An section of text inside a block, possibly with formatting. */ sealed abstract class Inline final case class Chain(items: Seq[Inline]) extends Inline @@ -36,3 +67,6 @@ final case class Link(target: String, title: Inline) extends Inline final case class EntityLink(target: TemplateEntity) extends Inline final case class Monospace(text: String) extends Inline final case class Text(text: String) extends Inline + +/** The summary of a comment, usually its first sentence. There must be exactly one summary per body. */ +final case class Summary(text: Inline) extends Inline diff --git a/src/compiler/scala/tools/nsc/doc/model/comment/CommentFactory.scala b/src/compiler/scala/tools/nsc/doc/model/comment/CommentFactory.scala index dba538046a..f067555cc3 100644 --- a/src/compiler/scala/tools/nsc/doc/model/comment/CommentFactory.scala +++ b/src/compiler/scala/tools/nsc/doc/model/comment/CommentFactory.scala @@ -102,17 +102,15 @@ trait CommentFactory { thisFactory: ModelFactory with CommentFactory => * @param comment The raw comment string (including start and end markers) to be parsed. * @param pos The position of the comment in source. */ protected def parse(comment: String, pos: Position): Comment = { + /** The cleaned raw comment as a list of lines. Cleaning removes comment start and end markers, line start markers * and unnecessary whitespace. */ val cleaned: List[String] = { def cleanLine(line: String): String = { //replaceAll removes trailing whitespaces line.replaceAll("""\s+$""", "") match { - case "" => "" // Empty lines are require to keep paragraphs case CleanCommentLine(ctl) => ctl - case tl => - reporter.warning(pos, "Please re-check this line of the comment") - tl + case tl => tl } } val strippedComment = comment.trim.stripPrefix("/*").stripSuffix("*/") @@ -221,20 +219,7 @@ trait CommentFactory { thisFactory: ModelFactory with CommentFactory => val deprecated = oneTag(SimpleTagKey("deprecated")) val note = allTags(SimpleTagKey("note")) val example = allTags(SimpleTagKey("example")) - val short = { - def findShort(blocks: Iterable[Block]): Inline = - if (blocks.isEmpty) Text("") - else blocks.head match { - case Title(text, _) => text - case Paragraph(text) => text - case Code(data) => Monospace(data.lines.next) - case UnorderedList(items) => findShort(items) - case OrderedList(items, _) => findShort(items) - case DefinitionList(items) => findShort(items.values) - case HorizontalRule() => findShort(blocks.tail) - } - findShort(body.blocks) - } + val short = body.summary getOrElse Text("no summary matey") } for ((key, _) <- bodyTags) @@ -264,6 +249,8 @@ trait CommentFactory { thisFactory: ModelFactory with CommentFactory => * @author Gilles Dubochet */ protected final class WikiParser(val buffer: Array[Char], pos: Position) extends CharReader(buffer) { wiki => + var summaryParsed = false + /** listStyle ::= '-' spc | '1.' spc | 'I.' spc | 'i.' spc | 'A.' spc | 'a.' spc * Characters used to build lists and their constructors */ protected val listStyles = Map[String, (Seq[Block] => Block)]( // TODO Should this be defined at some list companion? @@ -380,7 +367,16 @@ trait CommentFactory { thisFactory: ModelFactory with CommentFactory => /** {{{ para ::= inline '\n' }}} */ def para(): Block = { - val p = Paragraph(inline(checkParaEnded())) + val p = + if (summaryParsed) + Paragraph(inline(false)) + else { + val s = summary() + val r = + if (checkParaEnded) List(s) else List(s, inline(false)) + summaryParsed = true + Paragraph(Chain(r)) + } while (char == endOfLine && char != endOfText) nextChar() p @@ -388,34 +384,26 @@ trait CommentFactory { thisFactory: ModelFactory with CommentFactory => /* INLINES */ - def inline(isBlockEnd: => Boolean): Inline = - inline(isBlockEnd, isBlockEnd) + def inline(isInlineEnd: => Boolean): Inline = { - def inline(isInlineEnd: => Boolean, isBlockEnd: => Boolean): Inline = { def inline0(): Inline = { - if (check("'''")) - bold(isInlineEnd, isBlockEnd) - else if (check("''")) - italic(isInlineEnd, isBlockEnd) - else if (check("`")) - monospace(isInlineEnd, isBlockEnd) - else if (check("__")) - underline(isInlineEnd, isBlockEnd) - else if (check("^")) - superscript(isInlineEnd, isBlockEnd) - else if (check(",,")) - subscript(isInlineEnd, isBlockEnd) - else if (check("[[")) - link(isInlineEnd, isBlockEnd) + if (check("'''")) bold() + else if (check("''")) italic() + else if (check("`")) monospace() + else if (check("__")) underline() + else if (check("^")) superscript() + else if (check(",,")) subscript() + else if (check("[[")) link() else { - readUntil { check("''") || char == '`' || check("__") || char == '^' || check(",,") || check("[[") || isInlineEnd || isBlockEnd || char == endOfLine } + readUntil { check("''") || char == '`' || check("__") || char == '^' || check(",,") || check("[[") || isInlineEnd || checkParaEnded || char == endOfLine } Text(getRead()) } } + val inlines: List[Inline] = { val iss = mutable.ListBuffer.empty[Inline] iss += inline0() - while(!isInlineEnd && !isBlockEnd && !checkParaEnded) { + while(!isInlineEnd && !checkParaEnded) { if (char == endOfLine) nextChar() val current = inline0() (iss.last, current) match { @@ -426,57 +414,66 @@ trait CommentFactory { thisFactory: ModelFactory with CommentFactory => } iss.toList } + inlines match { case Nil => Text("") case i :: Nil => i - case i :: is => Chain(i :: is) + case is => Chain(is) } + } - def bold(isInlineEnd: => Boolean, isBlockEnd: => Boolean): Inline = { + def bold(): Inline = { jump("'''") - val i = inline(check("'''"), isBlockEnd) + val i = inline(check("'''")) jump("'''") Bold(i) } - def italic(isInlineEnd: => Boolean, isBlockEnd: => Boolean): Inline = { + def italic(): Inline = { jump("''") - val i = inline(check("''"), isBlockEnd) + val i = inline(check("''")) jump("''") Italic(i) } - def monospace(isInlineEnd: => Boolean, isBlockEnd: => Boolean): Inline = { + def monospace(): Inline = { jump("`") readUntil { char == '`' } jump("`") Monospace(getRead()) } - def underline(isInlineEnd: => Boolean, isBlockEnd: => Boolean): Inline = { + def underline(): Inline = { jump("__") - val i = inline(check("__"), isBlockEnd) + val i = inline(check("__")) jump("__") Underline(i) } - def superscript(isInlineEnd: => Boolean, isBlockEnd: => Boolean): Inline = { + def superscript(): Inline = { jump("^") - val i = inline(check("^"), isBlockEnd) + val i = inline(check("^")) jump("^") Superscript(i) } - def subscript(isInlineEnd: => Boolean, isBlockEnd: => Boolean): Inline = { + def subscript(): Inline = { jump(",,") - val i = inline(check(",,"), isBlockEnd) + val i = inline(check(",,")) jump(",,") Subscript(i) } - protected val SchemeUri = - new Regex("""([^:]+:.*)""") + def summary(): Inline = { + val i = inline(check(".")) + Summary( + if (jump(".")) + Chain(List(i, Text("."))) + else + i + ) + } def entityLink(query: String): Inline = findTemplate(query) match { case Some(tpl) => @@ -485,14 +482,15 @@ trait CommentFactory { thisFactory: ModelFactory with CommentFactory => Text(query) } - def link(isInlineEnd: => Boolean, isBlockEnd: => Boolean): Inline = { + def link(): Inline = { + val SchemeUri = new Regex("""([^:]+:.*)""") jump("[[") readUntil { check("]]") || check(" ") } val target = getRead() val title = if (!check("]]")) Some({ jump(" ") - inline(check("]]"), isBlockEnd) + inline(check("]]")) }) else None jump("]]") diff --git a/src/compiler/scala/tools/nsc/io/Path.scala b/src/compiler/scala/tools/nsc/io/Path.scala index 6b88f3cfca..afef38be3c 100644 --- a/src/compiler/scala/tools/nsc/io/Path.scala +++ b/src/compiler/scala/tools/nsc/io/Path.scala @@ -9,9 +9,7 @@ import java.io.{ FileInputStream, FileOutputStream, BufferedReader, BufferedWriter, InputStreamReader, OutputStreamWriter, BufferedInputStream, BufferedOutputStream, RandomAccessFile, File => JFile } import java.net.{ URI, URL } -import collection.{ Seq, Traversable } -import PartialFunction._ -import scala.util.Random.nextASCIIString +import scala.util.Random.alphanumeric /** An abstraction for filesystem paths. The differences between * Path, File, and Directory are primarily to communicate intent. @@ -71,7 +69,8 @@ object Path else if (jfile.isDirectory) new Directory(jfile) else new Path(jfile) - private[io] def randomPrefix = nextASCIIString(6) + /** Avoiding any shell/path issues by only using alphanumerics. */ + private[io] def randomPrefix = alphanumeric take 6 mkString private[io] def fail(msg: String) = throw FileOperationException(msg) } import Path._ diff --git a/src/compiler/scala/tools/nsc/settings/MutableSettings.scala b/src/compiler/scala/tools/nsc/settings/MutableSettings.scala index 8012b9389b..b32796e829 100644 --- a/src/compiler/scala/tools/nsc/settings/MutableSettings.scala +++ b/src/compiler/scala/tools/nsc/settings/MutableSettings.scala @@ -95,10 +95,7 @@ class MutableSettings(val errorFn: String => Unit) extends AbsSettings with Scal ): Option[List[String]] = lookupSetting(cmd) match { case None => errorFn("Parameter '" + cmd + "' is not recognised by Scalac.") ; None - case Some(cmd) => - val res = setter(cmd)(args) - cmd.postSetHook() - res + case Some(cmd) => setter(cmd)(args) } // if arg is of form -Xfoo:bar,baz,quux @@ -191,10 +188,15 @@ class MutableSettings(val errorFn: String => Unit) extends AbsSettings with Scal trait SettingValue extends AbsSettingValue { protected var v: T protected var setByUser: Boolean = false + def postSetHook(): Unit def isDefault: Boolean = !setByUser def value: T = v - def value_=(arg: T) = { setByUser = true ; v = arg } + def value_=(arg: T) = { + setByUser = true + v = arg + postSetHook() + } } /** A class for holding mappings from source directories to @@ -305,7 +307,7 @@ class MutableSettings(val errorFn: String => Unit) extends AbsSettings with Scal abstract class Setting(val name: String, val helpDescription: String) extends AbsSetting with SettingValue with Mutable { /** Will be called after this Setting is set for any extra work. */ private var _postSetHook: this.type => Unit = (x: this.type) => () - def postSetHook() = { _postSetHook(this) ; this } + def postSetHook(): Unit = _postSetHook(this) def withPostSetHook(f: this.type => Unit): this.type = { _postSetHook = f ; this } /** The syntax defining this setting in a help string */ diff --git a/src/compiler/scala/tools/nsc/symtab/Symbols.scala b/src/compiler/scala/tools/nsc/symtab/Symbols.scala index 4c0c1ec739..9c6d6662e3 100644 --- a/src/compiler/scala/tools/nsc/symtab/Symbols.scala +++ b/src/compiler/scala/tools/nsc/symtab/Symbols.scala @@ -1538,7 +1538,7 @@ trait Symbols extends reflect.generic.Symbols { self: SymbolTable => "package object "+owner.nameString else compose(List(kindString, - if (isClassConstructor) owner.simpleName.decode+idString else nameString)) + if (isClassConstructor) owner.simpleName+idString else nameString)) /** If owner is a package object, its owner, else the normal owner. */ diff --git a/src/compiler/scala/tools/nsc/symtab/Types.scala b/src/compiler/scala/tools/nsc/symtab/Types.scala index 2cd690fbbf..863ad7bec4 100644 --- a/src/compiler/scala/tools/nsc/symtab/Types.scala +++ b/src/compiler/scala/tools/nsc/symtab/Types.scala @@ -3801,6 +3801,18 @@ A type's typeSymbol should never be inspected directly. private def isUnifiable(pre1: Type, pre2: Type) = (beginsWithTypeVarOrIsRefined(pre1) || beginsWithTypeVarOrIsRefined(pre2)) && (pre1 =:= pre2) + /** Returns true iff we are past phase specialize, + * sym1 and sym2 are two existential skolems with equal names and bounds, + * and pre1 and pre2 are equal prefixes + */ + private def isSameSpecializedSkolem(sym1: Symbol, sym2: Symbol, pre1: Type, pre2: Type) = { + sym1.isExistentialSkolem && sym2.isExistentialSkolem && + sym1.name == sym2.name && + phase.specialized && + sym1.info =:= sym2.info && + pre1 =:= pre2 + } + private def equalSymsAndPrefixes(sym1: Symbol, pre1: Type, sym2: Symbol, pre2: Type): Boolean = if (sym1 == sym2) sym1.hasFlag(PACKAGE) || phase.erasedTypes || pre1 =:= pre2 else (sym1.name == sym2.name) && isUnifiable(pre1, pre2) @@ -4264,8 +4276,9 @@ A type's typeSymbol should never be inspected directly. val pre1 = tr1.pre val pre2 = tr2.pre (((if (sym1 == sym2) phase.erasedTypes || pre1 <:< pre2 - else (sym1.name == sym2.name && isUnifiable(pre1, pre2))) && - isSubArgs(tr1.args, tr2.args, sym1.typeParams)) + else (sym1.name == sym2.name && + (isUnifiable(pre1, pre2) || isSameSpecializedSkolem(sym1, sym2, pre1, pre2)))) && + isSubArgs(tr1.args, tr2.args, sym1.typeParams)) || sym2.isClass && { val base = tr1 baseType sym2 diff --git a/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala b/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala index 3a8d93a7a7..c78664bc19 100644 --- a/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala +++ b/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala @@ -221,9 +221,14 @@ abstract class ClassfileParser { val ownerTpe = getClassOrArrayType(in.getChar(start + 1)) if (settings.debug.value) log("getMemberSymbol(static: " + static + "): owner type: " + ownerTpe + " " + ownerTpe.typeSymbol.originalName) - val (name, tpe) = getNameAndType(in.getChar(start + 3), ownerTpe) + val (name0, tpe0) = getNameAndType(in.getChar(start + 3), ownerTpe) if (settings.debug.value) - log("getMemberSymbol: name and tpe: " + name + ": " + tpe) + log("getMemberSymbol: name and tpe: " + name0 + ": " + tpe0) + + forceMangledName(tpe0.typeSymbol.name, false) + val (name, tpe) = getNameAndType(in.getChar(start + 3), ownerTpe) +// println("new tpe: " + tpe + " at phase: " + phase) + if (name == nme.MODULE_INSTANCE_FIELD) { val index = in.getChar(start + 1) val name = getExternalName(in.getChar(starts(index) + 1)) @@ -240,9 +245,10 @@ abstract class ClassfileParser { f = owner.info.member(newTermName(origName.toString + nme.LOCAL_SUFFIX)).suchThat(_.tpe =:= tpe) if (f == NoSymbol) { // if it's an impl class, try to find it's static member inside the class - if (ownerTpe.typeSymbol.isImplClass) + if (ownerTpe.typeSymbol.isImplClass) { +// println("impl class, member: " + owner.tpe.member(origName) + ": " + owner.tpe.member(origName).tpe) f = ownerTpe.member(origName).suchThat(_.tpe =:= tpe) - else { + } else { log("Couldn't find " + name + ": " + tpe + " inside: \n" + ownerTpe) f = if (tpe.isInstanceOf[MethodType]) owner.newMethod(owner.pos, name).setInfo(tpe) else owner.newValue(owner.pos, name).setInfo(tpe).setFlag(MUTABLE) @@ -384,11 +390,14 @@ abstract class ClassfileParser { * flatten would not lift classes that were not referenced in the source code. */ def forceMangledName(name: Name, module: Boolean): Symbol = { - val parts = name.toString.split(Array('.', '$')) + val parts = name.decode.toString.split(Array('.', '$')) var sym: Symbol = definitions.RootClass atPhase(currentRun.flattenPhase.prev) { - for (part0 <- parts; val part = newTermName(part0)) { - val sym1 = sym.info.decl(part.encode)//.suchThat(module == _.isModule) + for (part0 <- parts; if !(part0 == ""); val part = newTermName(part0)) { + val sym1 = atPhase(currentRun.icodePhase) { + sym.linkedClassOfClass.info + sym.info.decl(part.encode) + }//.suchThat(module == _.isModule) if (sym1 == NoSymbol) sym = sym.info.decl(part.encode.toTypeName) else diff --git a/src/compiler/scala/tools/nsc/symtab/classfile/ICodeReader.scala b/src/compiler/scala/tools/nsc/symtab/classfile/ICodeReader.scala index 92dfb3749a..e129737ebd 100644 --- a/src/compiler/scala/tools/nsc/symtab/classfile/ICodeReader.scala +++ b/src/compiler/scala/tools/nsc/symtab/classfile/ICodeReader.scala @@ -99,26 +99,34 @@ abstract class ICodeReader extends ClassfileParser { val owner = getOwner(jflags) val dummySym = owner.newMethod(owner.pos, name).setFlag(javaToScalaFlags(jflags)) - var tpe = pool.getType(dummySym, in.nextChar) - - if ("<clinit>" == name.toString) - (jflags, NoSymbol) - else { - val owner = getOwner(jflags) - var sym = owner.info.member(name).suchThat(old => sameType(old.tpe, tpe)); - if (sym == NoSymbol) - sym = owner.info.member(newTermName(name.toString + nme.LOCAL_SUFFIX)).suchThat(old => old.tpe =:= tpe); - if (sym == NoSymbol) { - log("Could not find symbol for " + name + ": " + tpe + " in " + owner.info.decls) - log(owner.info.member(name).tpe + " : " + tpe) - if (field) - sym = owner.newValue(owner.pos, name).setInfo(tpe).setFlag(MUTABLE | javaToScalaFlags(jflags)) - else - sym = dummySym.setInfo(tpe) - owner.info.decls.enter(sym) - log("added " + sym + ": " + sym.tpe) + try { + val ch = in.nextChar + var tpe = pool.getType(dummySym, ch) + + if ("<clinit>" == name.toString) + (jflags, NoSymbol) + else { + val owner = getOwner(jflags) + var sym = owner.info.member(name).suchThat(old => sameType(old.tpe, tpe)); + if (sym == NoSymbol) + sym = owner.info.member(newTermName(name.toString + nme.LOCAL_SUFFIX)).suchThat(old => old.tpe =:= tpe); + if (sym == NoSymbol) { + log("Could not find symbol for " + name + ": " + tpe + " in " + owner.info.decls) + log(owner.info.member(name).tpe + " : " + tpe) + if (name.toString() == "toMap") + tpe = pool.getType(dummySym, ch) + if (field) + sym = owner.newValue(owner.pos, name).setInfo(tpe).setFlag(MUTABLE | javaToScalaFlags(jflags)) + else + sym = dummySym.setInfo(tpe) + owner.info.decls.enter(sym) + log("added " + sym + ": " + sym.tpe) + } + (jflags, sym) } - (jflags, sym) + } catch { + case e: MissingRequirementError => + (jflags, NoSymbol) } } @@ -149,18 +157,25 @@ abstract class ICodeReader extends ClassfileParser { override def parseMethod() { val (jflags, sym) = parseMember(false) - if (sym != NoSymbol) { - log("Parsing method " + sym.fullName + ": " + sym.tpe); - this.method = new IMethod(sym); - this.method.returnType = toTypeKind(sym.tpe.resultType) - getCode(jflags).addMethod(this.method) - if ((jflags & JAVA_ACC_NATIVE) != 0) - this.method.native = true - val attributeCount = in.nextChar - for (i <- 0 until attributeCount) parseAttribute() - } else { - if (settings.debug.value) log("Skipping non-existent method."); - skipAttributes(); + var beginning = in.bp + try { + if (sym != NoSymbol) { + log("Parsing method " + sym.fullName + ": " + sym.tpe); + this.method = new IMethod(sym); + this.method.returnType = toTypeKind(sym.tpe.resultType) + getCode(jflags).addMethod(this.method) + if ((jflags & JAVA_ACC_NATIVE) != 0) + this.method.native = true + val attributeCount = in.nextChar + for (i <- 0 until attributeCount) parseAttribute() + } else { + if (settings.debug.value) log("Skipping non-existent method."); + skipAttributes(); + } + } catch { + case e: MissingRequirementError => + in.bp = beginning; skipAttributes + if (settings.debug.value) log("Skipping non-existent method. " + e.msg); } } @@ -187,12 +202,15 @@ abstract class ICodeReader extends ClassfileParser { definitions.getClass(name) } else if (name.endsWith("$")) { val sym = forceMangledName(name.subName(0, name.length -1).decode, true) +// println("classNameToSymbol: " + name + " sym: " + sym) + if (name.toString == "scala.collection.immutable.Stream$$hash$colon$colon$") + print("") if (sym == NoSymbol) definitions.getModule(name.subName(0, name.length - 1)) else sym } else { forceMangledName(name, false) - definitions.getClass(name) + atPhase(currentRun.flattenPhase.next)(definitions.getClass(name)) } if (sym.isModule) sym.moduleClass diff --git a/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala b/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala index 5ced187128..d5d7ca254e 100644 --- a/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala +++ b/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala @@ -82,7 +82,7 @@ abstract class SpecializeTypes extends InfoTransform with TypingTransformers { } /** For a given class and concrete type arguments, give its specialized class */ - val specializedClass: mutable.Map[(Symbol, TypeEnv), Symbol] = new mutable.HashMap + val specializedClass: mutable.Map[(Symbol, TypeEnv), Symbol] = new mutable.LinkedHashMap /** Returns the generic class that was specialized to 'cls', or * 'cls' itself if cls is not a specialized subclass. @@ -712,6 +712,7 @@ abstract class SpecializeTypes extends InfoTransform with TypingTransformers { } info(opc.overriding) = Forward(om) log("typeEnv(om) = " + typeEnv(om)) + om setPos opc.overriding.pos // set the position of the concrete, overriding member } overloads(opc.overriding) = Overload(om, env) :: overloads(opc.overriding) oms += om @@ -825,12 +826,13 @@ abstract class SpecializeTypes extends InfoTransform with TypingTransformers { val res = tpe match { case PolyType(targs, ClassInfoType(base, decls, clazz)) => val parents = base map specializedType + log("transformInfo (poly) " + clazz + " with parents1: " + parents + " ph: " + phase) PolyType(targs, ClassInfoType(parents, new Scope(specializeClass(clazz, typeEnv(clazz))), clazz)) case ClassInfoType(base, decls, clazz) if !clazz.isPackageClass => -// base.map(_.typeSymbol.info) + atPhase(phase.next)(base.map(_.typeSymbol.info)) val parents = base map specializedType - log("transformInfo " + clazz + " with parents1: " + parents) + log("transformInfo " + clazz + " with parents1: " + parents + " ph: " + phase) val res = ClassInfoType(base map specializedType, new Scope(specializeClass(clazz, typeEnv(clazz))), clazz) res @@ -993,7 +995,7 @@ abstract class SpecializeTypes extends InfoTransform with TypingTransformers { if (!env.isEmpty) { val specMember = overload(symbol, env) if (specMember.isDefined) { - if (settings.debug.value) log("** routing " + tree + " to " + specMember.get.sym.fullName + " tree: " + Select(transform(qual), specMember.get.sym.name)) + if (settings.debug.value) log("** routing " + tree + " to " + specMember.get.sym.fullName) localTyper.typedOperator(atPos(tree.pos)(Select(transform(qual), specMember.get.sym.name))) } else { val qual1 = transform(qual) @@ -1006,7 +1008,7 @@ abstract class SpecializeTypes extends InfoTransform with TypingTransformers { else localTyper.typed(tree1) } else - super.transform(tree) + treeCopy.Select(tree, qual1, name) } } else super.transform(tree) @@ -1129,7 +1131,7 @@ abstract class SpecializeTypes extends InfoTransform with TypingTransformers { case Apply(sel @ Select(sup @ Super(qual, name), name1), args) => val res = localTyper.typed( - Apply(Select(Super(qual, name) setPos sup.pos, name1) setPos sel.pos, args) setPos tree.pos) + Apply(Select(Super(qual, name) setPos sup.pos, name1) setPos sel.pos, transformTrees(args)) setPos tree.pos) log("retyping call to super, from: " + symbol + " to " + res.symbol) res @@ -1200,9 +1202,11 @@ abstract class SpecializeTypes extends InfoTransform with TypingTransformers { override def transform(tree: Tree): Tree = tree match { case Select(qual, name) => if (tree.symbol.hasFlag(PRIVATE | PROTECTED)) { - log("changing private flag of " + tree.symbol) + log("changing private flag of " + tree.symbol + " privateWithin: " + tree.symbol.privateWithin) // tree.symbol.resetFlag(PRIVATE).setFlag(PROTECTED) - tree.symbol.resetFlag(PRIVATE | PROTECTED) + tree.symbol.makeNotPrivate(tree.symbol.owner) +// tree.symbol.resetFlag(PRIVATE | PROTECTED) +// tree.symbol.privateWithin = NoSymbol } super.transform(tree) @@ -1277,9 +1281,10 @@ abstract class SpecializeTypes extends InfoTransform with TypingTransformers { mbrs += ValDef(acc, EmptyTree).setType(NoType).setPos(m.pos) } // ctor - mbrs += DefDef(m, Modifiers(m.flags), List(vparams) map (_ map ValDef), EmptyTree) - } else - mbrs += DefDef(m, { paramss => EmptyTree }) + mbrs += atPos(m.pos)(DefDef(m, Modifiers(m.flags), List(vparams) map (_ map ValDef), EmptyTree)) + } else { + mbrs += atPos(m.pos)(DefDef(m, { paramss => EmptyTree })) + } } else if (m.isValue) { mbrs += ValDef(m, EmptyTree).setType(NoType).setPos(m.pos) } else if (m.isClass) { @@ -1293,7 +1298,7 @@ abstract class SpecializeTypes extends InfoTransform with TypingTransformers { } /** Create specialized class definitions */ - def implSpecClasses(trees: List[Tree]): List[Tree] = { + def implSpecClasses(trees: List[Tree]): List[Tree] = { val buf = new mutable.ListBuffer[Tree] for (tree <- trees) tree match { diff --git a/src/compiler/scala/tools/nsc/typechecker/Unapplies.scala b/src/compiler/scala/tools/nsc/typechecker/Unapplies.scala index 5ba52f5f06..6f432cc3c4 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Unapplies.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Unapplies.scala @@ -135,7 +135,7 @@ trait Unapplies extends ast.TreeDSL */ def caseModuleDef(cdef: ClassDef): ModuleDef = { def inheritFromFun = !(cdef.mods hasFlag ABSTRACT) && cdef.tparams.isEmpty && constrParamss(cdef).length == 1 - def createFun = gen.scalaFunctionConstr(constrParamss(cdef).head map (_.tpt), toIdent(cdef)) + def createFun = gen.scalaFunctionConstr(constrParamss(cdef).head map (_.tpt), toIdent(cdef), abstractFun = true) def parents = if (inheritFromFun) List(createFun) else Nil companionModuleDef(cdef, parents ::: List(gen.scalaScalaObjectConstr)) diff --git a/src/library/scala/Function0.scala b/src/library/scala/Function0.scala index 74905d8af7..867c7bc536 100644 --- a/src/library/scala/Function0.scala +++ b/src/library/scala/Function0.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with fancy comment) +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with fancy comment) package scala + /** <p> * Function with 0 parameters. * </p> @@ -35,7 +36,7 @@ package scala * println(anonfun0()) * }</pre> */ -trait Function0[+R] extends AnyRef { self => +trait Function0[@specialized +R] extends AnyRef { self => def apply(): R override def toString() = "<function0>" diff --git a/src/library/scala/Function1.scala b/src/library/scala/Function1.scala index afc19417a2..a5780f561a 100644 --- a/src/library/scala/Function1.scala +++ b/src/library/scala/Function1.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with fancy comment) (with extra methods) +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with fancy comment) (with extra methods) package scala + /** <p> * Function with 1 parameter. * </p> @@ -35,7 +36,7 @@ package scala * println(anonfun1(0)) * }</pre> */ -trait Function1[@specialized(Int, Long, Double) -T1, @specialized(Unit, Int, Long, Double) +R] extends AnyRef { self => +trait Function1[@specialized(Int, Long, Double) -T1, @specialized(Unit, Boolean, Int, Long, Double) +R] extends AnyRef { self => def apply(v1:T1): R override def toString() = "<function1>" diff --git a/src/library/scala/Function10.scala b/src/library/scala/Function10.scala index 8eb6fad84e..967d58fa35 100644 --- a/src/library/scala/Function10.scala +++ b/src/library/scala/Function10.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods) +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods) package scala + /** <p> * Function with 10 parameters. * </p> diff --git a/src/library/scala/Function11.scala b/src/library/scala/Function11.scala index 7e94c6d2ca..5d6065ea1c 100644 --- a/src/library/scala/Function11.scala +++ b/src/library/scala/Function11.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods) +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods) package scala + /** <p> * Function with 11 parameters. * </p> diff --git a/src/library/scala/Function12.scala b/src/library/scala/Function12.scala index e14b95fc81..a262e2d8f7 100644 --- a/src/library/scala/Function12.scala +++ b/src/library/scala/Function12.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods) +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods) package scala + /** <p> * Function with 12 parameters. * </p> diff --git a/src/library/scala/Function13.scala b/src/library/scala/Function13.scala index 2deeed8aa7..6b1d0788fb 100644 --- a/src/library/scala/Function13.scala +++ b/src/library/scala/Function13.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods) +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods) package scala + /** <p> * Function with 13 parameters. * </p> diff --git a/src/library/scala/Function14.scala b/src/library/scala/Function14.scala index 596bbb25b8..75b0d25f5e 100644 --- a/src/library/scala/Function14.scala +++ b/src/library/scala/Function14.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods) +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods) package scala + /** <p> * Function with 14 parameters. * </p> diff --git a/src/library/scala/Function15.scala b/src/library/scala/Function15.scala index 9942ab2015..c66015d2aa 100644 --- a/src/library/scala/Function15.scala +++ b/src/library/scala/Function15.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods) +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods) package scala + /** <p> * Function with 15 parameters. * </p> diff --git a/src/library/scala/Function16.scala b/src/library/scala/Function16.scala index 5419b40f8d..5b6968c106 100644 --- a/src/library/scala/Function16.scala +++ b/src/library/scala/Function16.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods) +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods) package scala + /** <p> * Function with 16 parameters. * </p> diff --git a/src/library/scala/Function17.scala b/src/library/scala/Function17.scala index 17caf47a02..74321b950b 100644 --- a/src/library/scala/Function17.scala +++ b/src/library/scala/Function17.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods) +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods) package scala + /** <p> * Function with 17 parameters. * </p> diff --git a/src/library/scala/Function18.scala b/src/library/scala/Function18.scala index 338083ef17..4cb1540161 100644 --- a/src/library/scala/Function18.scala +++ b/src/library/scala/Function18.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods) +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods) package scala + /** <p> * Function with 18 parameters. * </p> diff --git a/src/library/scala/Function19.scala b/src/library/scala/Function19.scala index 92eb2afa29..337b9c4837 100644 --- a/src/library/scala/Function19.scala +++ b/src/library/scala/Function19.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods) +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods) package scala + /** <p> * Function with 19 parameters. * </p> diff --git a/src/library/scala/Function2.scala b/src/library/scala/Function2.scala index 46023a9b3b..44c4e358b8 100644 --- a/src/library/scala/Function2.scala +++ b/src/library/scala/Function2.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with fancy comment) (with extra methods) +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with fancy comment) (with extra methods) package scala + /** <p> * Function with 2 parameters. * </p> @@ -35,9 +36,7 @@ package scala * println(anonfun2(0, 1)) * }</pre> */ -trait Function2[@specialized(Int, Long, Double) -T1, - @specialized(Int, Long, Double) -T2, - @specialized(Unit, Int, Long, Double) +R] extends AnyRef { self => +trait Function2[@specialized(Int, Long, Double) -T1, @specialized(Int, Long, Double) -T2, @specialized(Unit, Boolean, Int, Long, Double) +R] extends AnyRef { self => def apply(v1:T1,v2:T2): R override def toString() = "<function2>" diff --git a/src/library/scala/Function20.scala b/src/library/scala/Function20.scala index 45636a1b7d..d381d2d82e 100644 --- a/src/library/scala/Function20.scala +++ b/src/library/scala/Function20.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods) +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods) package scala + /** <p> * Function with 20 parameters. * </p> diff --git a/src/library/scala/Function21.scala b/src/library/scala/Function21.scala index 4463866a55..b78fd96dd3 100644 --- a/src/library/scala/Function21.scala +++ b/src/library/scala/Function21.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods) +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods) package scala + /** <p> * Function with 21 parameters. * </p> diff --git a/src/library/scala/Function22.scala b/src/library/scala/Function22.scala index c148144ef4..2322a24e9d 100644 --- a/src/library/scala/Function22.scala +++ b/src/library/scala/Function22.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods) +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods) package scala + /** <p> * Function with 22 parameters. * </p> diff --git a/src/library/scala/Function3.scala b/src/library/scala/Function3.scala index 52c777fdc9..82858c356f 100644 --- a/src/library/scala/Function3.scala +++ b/src/library/scala/Function3.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods) +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods) package scala + /** <p> * Function with 3 parameters. * </p> diff --git a/src/library/scala/Function4.scala b/src/library/scala/Function4.scala index 79e92dc4e3..c97c00eb0c 100644 --- a/src/library/scala/Function4.scala +++ b/src/library/scala/Function4.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods) +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods) package scala + /** <p> * Function with 4 parameters. * </p> diff --git a/src/library/scala/Function5.scala b/src/library/scala/Function5.scala index af849300f4..fb798741ea 100644 --- a/src/library/scala/Function5.scala +++ b/src/library/scala/Function5.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods) +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods) package scala + /** <p> * Function with 5 parameters. * </p> diff --git a/src/library/scala/Function6.scala b/src/library/scala/Function6.scala index 487c650fc9..02a2bd4fb7 100644 --- a/src/library/scala/Function6.scala +++ b/src/library/scala/Function6.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods) +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods) package scala + /** <p> * Function with 6 parameters. * </p> diff --git a/src/library/scala/Function7.scala b/src/library/scala/Function7.scala index 76de5c185c..7973bcb87c 100644 --- a/src/library/scala/Function7.scala +++ b/src/library/scala/Function7.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods) +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods) package scala + /** <p> * Function with 7 parameters. * </p> diff --git a/src/library/scala/Function8.scala b/src/library/scala/Function8.scala index c8ca675365..32929db9d6 100644 --- a/src/library/scala/Function8.scala +++ b/src/library/scala/Function8.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods) +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods) package scala + /** <p> * Function with 8 parameters. * </p> diff --git a/src/library/scala/Function9.scala b/src/library/scala/Function9.scala index 338acbcae2..490e44c39b 100644 --- a/src/library/scala/Function9.scala +++ b/src/library/scala/Function9.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods) +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods) package scala + /** <p> * Function with 9 parameters. * </p> diff --git a/src/library/scala/Product1.scala b/src/library/scala/Product1.scala index 0e93065e5a..af9a7eca20 100644 --- a/src/library/scala/Product1.scala +++ b/src/library/scala/Product1.scala @@ -8,11 +8,12 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:17 CEST 2010 package scala + object Product1 { def unapply[T1](x: Product1[T1]): Option[Product1[T1]] = Some(x) diff --git a/src/library/scala/Product10.scala b/src/library/scala/Product10.scala index a63a1007fb..d6745d62ad 100644 --- a/src/library/scala/Product10.scala +++ b/src/library/scala/Product10.scala @@ -8,11 +8,12 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:17 CEST 2010 package scala + object Product10 { def unapply[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10](x: Product10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]): Option[Product10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]] = Some(x) diff --git a/src/library/scala/Product11.scala b/src/library/scala/Product11.scala index a33df77b64..83cf5f0e55 100644 --- a/src/library/scala/Product11.scala +++ b/src/library/scala/Product11.scala @@ -8,11 +8,12 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:17 CEST 2010 package scala + object Product11 { def unapply[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11](x: Product11[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11]): Option[Product11[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11]] = Some(x) diff --git a/src/library/scala/Product12.scala b/src/library/scala/Product12.scala index 24b16876a3..845bba720d 100644 --- a/src/library/scala/Product12.scala +++ b/src/library/scala/Product12.scala @@ -8,11 +8,12 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:17 CEST 2010 package scala + object Product12 { def unapply[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12](x: Product12[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12]): Option[Product12[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12]] = Some(x) diff --git a/src/library/scala/Product13.scala b/src/library/scala/Product13.scala index 1013561af6..374b457789 100644 --- a/src/library/scala/Product13.scala +++ b/src/library/scala/Product13.scala @@ -8,11 +8,12 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:17 CEST 2010 package scala + object Product13 { def unapply[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13](x: Product13[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13]): Option[Product13[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13]] = Some(x) diff --git a/src/library/scala/Product14.scala b/src/library/scala/Product14.scala index ddeccf7c98..93bb53339d 100644 --- a/src/library/scala/Product14.scala +++ b/src/library/scala/Product14.scala @@ -8,11 +8,12 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:17 CEST 2010 package scala + object Product14 { def unapply[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14](x: Product14[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14]): Option[Product14[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14]] = Some(x) diff --git a/src/library/scala/Product15.scala b/src/library/scala/Product15.scala index 0f25bda254..71cefbafc5 100644 --- a/src/library/scala/Product15.scala +++ b/src/library/scala/Product15.scala @@ -8,11 +8,12 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 package scala + object Product15 { def unapply[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15](x: Product15[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15]): Option[Product15[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15]] = Some(x) diff --git a/src/library/scala/Product16.scala b/src/library/scala/Product16.scala index 1fcf2d192b..aa87c9f40b 100644 --- a/src/library/scala/Product16.scala +++ b/src/library/scala/Product16.scala @@ -8,11 +8,12 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 package scala + object Product16 { def unapply[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16](x: Product16[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16]): Option[Product16[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16]] = Some(x) diff --git a/src/library/scala/Product17.scala b/src/library/scala/Product17.scala index 8c5efa9cc5..7caa99a578 100644 --- a/src/library/scala/Product17.scala +++ b/src/library/scala/Product17.scala @@ -8,11 +8,12 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 package scala + object Product17 { def unapply[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17](x: Product17[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17]): Option[Product17[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17]] = Some(x) diff --git a/src/library/scala/Product18.scala b/src/library/scala/Product18.scala index 6ab150b1d1..ca0b168c83 100644 --- a/src/library/scala/Product18.scala +++ b/src/library/scala/Product18.scala @@ -8,11 +8,12 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 package scala + object Product18 { def unapply[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18](x: Product18[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18]): Option[Product18[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18]] = Some(x) diff --git a/src/library/scala/Product19.scala b/src/library/scala/Product19.scala index 86fc2e43fb..88256c44fd 100644 --- a/src/library/scala/Product19.scala +++ b/src/library/scala/Product19.scala @@ -8,11 +8,12 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 package scala + object Product19 { def unapply[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19](x: Product19[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19]): Option[Product19[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19]] = Some(x) diff --git a/src/library/scala/Product2.scala b/src/library/scala/Product2.scala index 436de41a01..6ce804fc89 100644 --- a/src/library/scala/Product2.scala +++ b/src/library/scala/Product2.scala @@ -8,11 +8,12 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:17 CEST 2010 package scala + object Product2 { def unapply[T1, T2](x: Product2[T1, T2]): Option[Product2[T1, T2]] = Some(x) @@ -22,8 +23,7 @@ object Product2 { * * @since 2.3 */ -trait Product2[@specialized(Int, Long, Double) +T1, - @specialized(Int, Long, Double) +T2] extends Product { +trait Product2[@specialized(Int, Long, Double) +T1, @specialized(Int, Long, Double) +T2] extends Product { /** * The arity of this product. * @return 2 diff --git a/src/library/scala/Product20.scala b/src/library/scala/Product20.scala index cc398f7bb4..b9aab6988d 100644 --- a/src/library/scala/Product20.scala +++ b/src/library/scala/Product20.scala @@ -8,11 +8,12 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 package scala + object Product20 { def unapply[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20](x: Product20[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20]): Option[Product20[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20]] = Some(x) diff --git a/src/library/scala/Product21.scala b/src/library/scala/Product21.scala index b215c466ae..9ab61d35ca 100644 --- a/src/library/scala/Product21.scala +++ b/src/library/scala/Product21.scala @@ -8,11 +8,12 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 package scala + object Product21 { def unapply[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21](x: Product21[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21]): Option[Product21[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21]] = Some(x) diff --git a/src/library/scala/Product22.scala b/src/library/scala/Product22.scala index f7e10a2652..86fbaeca7f 100644 --- a/src/library/scala/Product22.scala +++ b/src/library/scala/Product22.scala @@ -8,11 +8,12 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 package scala + object Product22 { def unapply[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22](x: Product22[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22]): Option[Product22[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22]] = Some(x) diff --git a/src/library/scala/Product3.scala b/src/library/scala/Product3.scala index 0fbd855b86..09044716a4 100644 --- a/src/library/scala/Product3.scala +++ b/src/library/scala/Product3.scala @@ -8,11 +8,12 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:17 CEST 2010 package scala + object Product3 { def unapply[T1, T2, T3](x: Product3[T1, T2, T3]): Option[Product3[T1, T2, T3]] = Some(x) diff --git a/src/library/scala/Product4.scala b/src/library/scala/Product4.scala index efeec3c601..c6a5c74bb5 100644 --- a/src/library/scala/Product4.scala +++ b/src/library/scala/Product4.scala @@ -8,11 +8,12 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:17 CEST 2010 package scala + object Product4 { def unapply[T1, T2, T3, T4](x: Product4[T1, T2, T3, T4]): Option[Product4[T1, T2, T3, T4]] = Some(x) diff --git a/src/library/scala/Product5.scala b/src/library/scala/Product5.scala index 64e59b6b1d..147fb2d305 100644 --- a/src/library/scala/Product5.scala +++ b/src/library/scala/Product5.scala @@ -8,11 +8,12 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:17 CEST 2010 package scala + object Product5 { def unapply[T1, T2, T3, T4, T5](x: Product5[T1, T2, T3, T4, T5]): Option[Product5[T1, T2, T3, T4, T5]] = Some(x) diff --git a/src/library/scala/Product6.scala b/src/library/scala/Product6.scala index a2a819ef51..f967992e5e 100644 --- a/src/library/scala/Product6.scala +++ b/src/library/scala/Product6.scala @@ -8,11 +8,12 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:17 CEST 2010 package scala + object Product6 { def unapply[T1, T2, T3, T4, T5, T6](x: Product6[T1, T2, T3, T4, T5, T6]): Option[Product6[T1, T2, T3, T4, T5, T6]] = Some(x) diff --git a/src/library/scala/Product7.scala b/src/library/scala/Product7.scala index b9fa32bf00..c7a9baef98 100644 --- a/src/library/scala/Product7.scala +++ b/src/library/scala/Product7.scala @@ -8,11 +8,12 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:17 CEST 2010 package scala + object Product7 { def unapply[T1, T2, T3, T4, T5, T6, T7](x: Product7[T1, T2, T3, T4, T5, T6, T7]): Option[Product7[T1, T2, T3, T4, T5, T6, T7]] = Some(x) diff --git a/src/library/scala/Product8.scala b/src/library/scala/Product8.scala index 0f5aa6100a..8663b0868b 100644 --- a/src/library/scala/Product8.scala +++ b/src/library/scala/Product8.scala @@ -8,11 +8,12 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:17 CEST 2010 package scala + object Product8 { def unapply[T1, T2, T3, T4, T5, T6, T7, T8](x: Product8[T1, T2, T3, T4, T5, T6, T7, T8]): Option[Product8[T1, T2, T3, T4, T5, T6, T7, T8]] = Some(x) diff --git a/src/library/scala/Product9.scala b/src/library/scala/Product9.scala index 6adce6023f..8d2de090ab 100644 --- a/src/library/scala/Product9.scala +++ b/src/library/scala/Product9.scala @@ -8,11 +8,12 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:17 CEST 2010 package scala + object Product9 { def unapply[T1, T2, T3, T4, T5, T6, T7, T8, T9](x: Product9[T1, T2, T3, T4, T5, T6, T7, T8, T9]): Option[Product9[T1, T2, T3, T4, T5, T6, T7, T8, T9]] = Some(x) diff --git a/src/library/scala/Tuple1.scala b/src/library/scala/Tuple1.scala index 5d25cc5abb..d8f8126f42 100644 --- a/src/library/scala/Tuple1.scala +++ b/src/library/scala/Tuple1.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 package scala + /** Tuple1 is the canonical representation of a @see Product1 * */ diff --git a/src/library/scala/Tuple10.scala b/src/library/scala/Tuple10.scala index c9e38eec29..11889b3485 100644 --- a/src/library/scala/Tuple10.scala +++ b/src/library/scala/Tuple10.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 package scala + /** Tuple10 is the canonical representation of a @see Product10 * */ diff --git a/src/library/scala/Tuple11.scala b/src/library/scala/Tuple11.scala index 546800f3af..b44141c1ee 100644 --- a/src/library/scala/Tuple11.scala +++ b/src/library/scala/Tuple11.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 package scala + /** Tuple11 is the canonical representation of a @see Product11 * */ diff --git a/src/library/scala/Tuple12.scala b/src/library/scala/Tuple12.scala index 0f2d4e9af0..37a172e74f 100644 --- a/src/library/scala/Tuple12.scala +++ b/src/library/scala/Tuple12.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 package scala + /** Tuple12 is the canonical representation of a @see Product12 * */ diff --git a/src/library/scala/Tuple13.scala b/src/library/scala/Tuple13.scala index d9d540d334..68d4a5aa8f 100644 --- a/src/library/scala/Tuple13.scala +++ b/src/library/scala/Tuple13.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 package scala + /** Tuple13 is the canonical representation of a @see Product13 * */ diff --git a/src/library/scala/Tuple14.scala b/src/library/scala/Tuple14.scala index 18ea35a9f4..424beb040e 100644 --- a/src/library/scala/Tuple14.scala +++ b/src/library/scala/Tuple14.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 package scala + /** Tuple14 is the canonical representation of a @see Product14 * */ diff --git a/src/library/scala/Tuple15.scala b/src/library/scala/Tuple15.scala index cb1742786c..944ff9d1b5 100644 --- a/src/library/scala/Tuple15.scala +++ b/src/library/scala/Tuple15.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 package scala + /** Tuple15 is the canonical representation of a @see Product15 * */ diff --git a/src/library/scala/Tuple16.scala b/src/library/scala/Tuple16.scala index 0af7feeb45..276220fbf5 100644 --- a/src/library/scala/Tuple16.scala +++ b/src/library/scala/Tuple16.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 package scala + /** Tuple16 is the canonical representation of a @see Product16 * */ diff --git a/src/library/scala/Tuple17.scala b/src/library/scala/Tuple17.scala index ef02d51fc6..d965ca8504 100644 --- a/src/library/scala/Tuple17.scala +++ b/src/library/scala/Tuple17.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 package scala + /** Tuple17 is the canonical representation of a @see Product17 * */ diff --git a/src/library/scala/Tuple18.scala b/src/library/scala/Tuple18.scala index 6f2489e41d..77cc635034 100644 --- a/src/library/scala/Tuple18.scala +++ b/src/library/scala/Tuple18.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 package scala + /** Tuple18 is the canonical representation of a @see Product18 * */ diff --git a/src/library/scala/Tuple19.scala b/src/library/scala/Tuple19.scala index ad69657e2c..540aaa3893 100644 --- a/src/library/scala/Tuple19.scala +++ b/src/library/scala/Tuple19.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 package scala + /** Tuple19 is the canonical representation of a @see Product19 * */ diff --git a/src/library/scala/Tuple2.scala b/src/library/scala/Tuple2.scala index 7fea22410d..ee2fe84482 100644 --- a/src/library/scala/Tuple2.scala +++ b/src/library/scala/Tuple2.scala @@ -8,7 +8,7 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods) +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods) package scala @@ -16,11 +16,12 @@ import scala.collection.{TraversableLike, IterableLike} import scala.collection.generic.CanBuildFrom + + /** Tuple2 is the canonical representation of a @see Product2 * */ -case class Tuple2[@specialized(Int, Long, Double) +T1, - @specialized(Int, Long, Double) +T2](_1:T1,_2:T2) +case class Tuple2[@specialized(Int, Long, Double) +T1, @specialized(Int, Long, Double) +T2](_1:T1,_2:T2) extends Product2[T1, T2] { override def toString() = "(" + _1 + "," + _2 + ")" @@ -122,4 +123,5 @@ case class Tuple2[@specialized(Int, Long, Double) +T1, f(el1, elems2.next) } } + } diff --git a/src/library/scala/Tuple20.scala b/src/library/scala/Tuple20.scala index 5f4d4b26e8..58e7018518 100644 --- a/src/library/scala/Tuple20.scala +++ b/src/library/scala/Tuple20.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 package scala + /** Tuple20 is the canonical representation of a @see Product20 * */ diff --git a/src/library/scala/Tuple21.scala b/src/library/scala/Tuple21.scala index 780cbd15ad..e302bfbd80 100644 --- a/src/library/scala/Tuple21.scala +++ b/src/library/scala/Tuple21.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 package scala + /** Tuple21 is the canonical representation of a @see Product21 * */ diff --git a/src/library/scala/Tuple22.scala b/src/library/scala/Tuple22.scala index f45cab85fa..2fd4fc7166 100644 --- a/src/library/scala/Tuple22.scala +++ b/src/library/scala/Tuple22.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 package scala + /** Tuple22 is the canonical representation of a @see Product22 * */ diff --git a/src/library/scala/Tuple3.scala b/src/library/scala/Tuple3.scala index a1fca95e4d..e6464cf52c 100644 --- a/src/library/scala/Tuple3.scala +++ b/src/library/scala/Tuple3.scala @@ -8,13 +8,16 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods) package scala import scala.collection.{TraversableLike, IterableLike} import scala.collection.generic.CanBuildFrom + + + /** Tuple3 is the canonical representation of a @see Product3 * */ @@ -136,4 +139,5 @@ case class Tuple3[+T1, +T2, +T3](_1:T1,_2:T2,_3:T3) f(el1, elems2.next, elems3.next) } } + } diff --git a/src/library/scala/Tuple4.scala b/src/library/scala/Tuple4.scala index fbf5d341a4..55cfae2c03 100644 --- a/src/library/scala/Tuple4.scala +++ b/src/library/scala/Tuple4.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 package scala + /** Tuple4 is the canonical representation of a @see Product4 * */ diff --git a/src/library/scala/Tuple5.scala b/src/library/scala/Tuple5.scala index 033f26263d..ec52ee039e 100644 --- a/src/library/scala/Tuple5.scala +++ b/src/library/scala/Tuple5.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 package scala + /** Tuple5 is the canonical representation of a @see Product5 * */ diff --git a/src/library/scala/Tuple6.scala b/src/library/scala/Tuple6.scala index d360adad2a..5f41c1de2a 100644 --- a/src/library/scala/Tuple6.scala +++ b/src/library/scala/Tuple6.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 package scala + /** Tuple6 is the canonical representation of a @see Product6 * */ diff --git a/src/library/scala/Tuple7.scala b/src/library/scala/Tuple7.scala index 5a080c2e0e..0e2315c573 100644 --- a/src/library/scala/Tuple7.scala +++ b/src/library/scala/Tuple7.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 package scala + /** Tuple7 is the canonical representation of a @see Product7 * */ diff --git a/src/library/scala/Tuple8.scala b/src/library/scala/Tuple8.scala index 551c5e5d34..58b2e13af8 100644 --- a/src/library/scala/Tuple8.scala +++ b/src/library/scala/Tuple8.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 package scala + /** Tuple8 is the canonical representation of a @see Product8 * */ diff --git a/src/library/scala/Tuple9.scala b/src/library/scala/Tuple9.scala index 8098daaf40..360228cb68 100644 --- a/src/library/scala/Tuple9.scala +++ b/src/library/scala/Tuple9.scala @@ -8,12 +8,13 @@ // $Id$ -// generated by genprod on Sun Jan 17 19:38:09 PST 2010 +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 package scala + /** Tuple9 is the canonical representation of a @see Product9 * */ diff --git a/src/library/scala/collection/BitSetLike.scala b/src/library/scala/collection/BitSetLike.scala index 7c5e2fb269..3028cca6eb 100644 --- a/src/library/scala/collection/BitSetLike.scala +++ b/src/library/scala/collection/BitSetLike.scala @@ -41,7 +41,7 @@ trait BitSetLike[+This <: BitSetLike[This] with Set[Int]] extends SetLike[Int, T protected def nwords: Int /** The words at index `idx', or 0L if outside the range of the set - * @note Requires `idx >= 0` + * '''Note:''' requires `idx >= 0` */ protected def word(idx: Int): Long diff --git a/src/library/scala/collection/IndexedSeq.scala b/src/library/scala/collection/IndexedSeq.scala index 72878a8ad6..78165cb242 100644 --- a/src/library/scala/collection/IndexedSeq.scala +++ b/src/library/scala/collection/IndexedSeq.scala @@ -24,6 +24,7 @@ trait IndexedSeq[+A] extends Seq[A] } /** $factoryInfo + * The current default implementation of a $Coll is a `Vector`. * @define coll indexed sequence * @define Coll IndexedSeq */ diff --git a/src/library/scala/collection/IndexedSeqLike.scala b/src/library/scala/collection/IndexedSeqLike.scala index 453b4384f7..7bfad167c6 100644 --- a/src/library/scala/collection/IndexedSeqLike.scala +++ b/src/library/scala/collection/IndexedSeqLike.scala @@ -66,13 +66,13 @@ trait IndexedSeqLike[+A, +Repr] extends SeqLike[A, Repr] { self => if (i < end) self(i) else Iterator.empty.next /** $super - * @note `drop` is overridden to enable fast searching in the middle of indexed sequences. + * '''Note:''' `drop` is overridden to enable fast searching in the middle of indexed sequences. */ override def drop(n: Int): Iterator[A] = if (n > 0) new Elements(start + n, end) else this /** $super - * @note `take` is overridden to be symmetric to `drop`. + * '''Note:''' `take` is overridden to be symmetric to `drop`. */ override def take(n: Int): Iterator[A] = if (n <= 0) Iterator.empty.buffered diff --git a/src/library/scala/collection/Iterable.scala b/src/library/scala/collection/Iterable.scala index 65d4dfcbe2..2baacec9f9 100644 --- a/src/library/scala/collection/Iterable.scala +++ b/src/library/scala/collection/Iterable.scala @@ -36,6 +36,7 @@ trait Iterable[+A] extends Traversable[A] } /** $factoryInfo + * The current default implementation of a $Coll is a `Vector`. * @define coll iterable collection * @define Coll Iterable */ diff --git a/src/library/scala/collection/IterableView.scala b/src/library/scala/collection/IterableView.scala index 436c000909..a6078bcdc8 100644 --- a/src/library/scala/collection/IterableView.scala +++ b/src/library/scala/collection/IterableView.scala @@ -14,14 +14,14 @@ package scala.collection import generic._ import TraversableView.NoBuilder -/** A base class for views of Iterables. - * - * @author Martin Odersky - * @version 2.8 - * @since 2.8 +/** A base trait for non-strict views of `Iterable`s. + * $iterableViewInfo */ trait IterableView[+A, +Coll] extends IterableViewLike[A, Coll, IterableView[A, Coll]] +/** An object containing the necessary implicit definitions to make + * `IterableView`s work. Its definitions are generally not accessed directly by clients. + */ object IterableView { type Coll = TraversableView[_, C] forSome {type C <: Traversable[_]} implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, IterableView[A, Iterable[_]]] = diff --git a/src/library/scala/collection/IterableViewLike.scala b/src/library/scala/collection/IterableViewLike.scala index b8f0b65faf..49fcee842c 100644 --- a/src/library/scala/collection/IterableViewLike.scala +++ b/src/library/scala/collection/IterableViewLike.scala @@ -16,11 +16,11 @@ import collection.immutable.Stream import TraversableView.NoBuilder /** A template trait for non-strict views of iterable collections. - * $iterableviewInfo + * $iterableViewInfo * - * @define iterableviewInfo - * $viewinfo - * All views for iterable collections are defined by creating a new `iterator` method. + * @define iterableViewInfo + * $viewInfo + * All views for iterable collections are defined by re-interpreting the `iterator` method. * * @author Martin Odersky * @version 2.8 diff --git a/src/library/scala/collection/Iterator.scala b/src/library/scala/collection/Iterator.scala index 2ee4e8056e..24c447b24b 100644 --- a/src/library/scala/collection/Iterator.scala +++ b/src/library/scala/collection/Iterator.scala @@ -32,10 +32,10 @@ object Iterator { } /** Creates an iterator which produces a single element. + * '''Note:''' Equivalent, but more efficient than Iterator(elem) * @param elem the element * @return An iterator which produces `elem` on the first call to `next`, * and which has no further elements. - * @note Equivalent, but more efficient than Iterator(elem) */ def single[A](elem: A) = new Iterator[A] { private var hasnext = true @@ -429,7 +429,7 @@ trait Iterator[+A] extends TraversableOnce[A] { * satisfy the predicate `p`. The order of the elements * is preserved. * - * @note `withFilter` is the same as `filter` on iterators. It exists so that + * '''Note:''' `withFilter` is the same as `filter` on iterators. It exists so that * for-expressions with filters work over iterators. * * @param p the predicate used to test values. @@ -1033,10 +1033,10 @@ trait Iterator[+A] extends TraversableOnce[A] { * this sequence starting at position `start`. Like `copyToArray`, * but designed to accomodate IO stream operations. * + * '''Note:''' the array must be large enough to hold `sz` elements. * @param xs the array to fill. * @param start the starting index. * @param sz the maximum number of elements to be read. - * @note the array must be large enough to hold `sz` elements. */ @deprecated("use copyToArray instead") def readInto[B >: A](xs: Array[B], start: Int, sz: Int) { diff --git a/src/library/scala/collection/LinearSeq.scala b/src/library/scala/collection/LinearSeq.scala index ef7d4c9390..ba0eb6a22d 100644 --- a/src/library/scala/collection/LinearSeq.scala +++ b/src/library/scala/collection/LinearSeq.scala @@ -24,6 +24,7 @@ trait LinearSeq[+A] extends Seq[A] } /** $factoryInfo + * The current default implementation of a $Coll is a `Vector`. * @define coll linear sequence * @define Coll LinearSeq */ diff --git a/src/library/scala/collection/Map.scala b/src/library/scala/collection/Map.scala index 9d44a950de..0722d55f03 100644 --- a/src/library/scala/collection/Map.scala +++ b/src/library/scala/collection/Map.scala @@ -13,43 +13,33 @@ package scala.collection import generic._ -/** <p> - * A map from keys of type <code>A</code> to values of type <code>B</code>. - * To implement a concrete map, you need to provide implementations of the - * following methods (where <code>This</code> is the type of the map in question): - * </p><pre> - * <b>def</b> get(key: A): Option[B] - * <b>def</b> iterator: Iterator[(A, B)] - * <b>def</b> + [B1 >: B](kv: (A, B1)): This - * <b>def</b> -(key: A): This</pre> - * <p> - * If you wish that methods like `take`, `drop`, `filter` return the same kind - * of map, you should also override: - * </p><pre> - * <b>def</b> empty: This</pre> - * <p> - * It might also be a good idea to override methods <code>foreach</code> - * and <code>size</code> for efficiency. - * </p> +/** + * A map from keys of type `A` to values of type `B`. * - * @note If you do not have specific implementations for `add` and `-` in mind, - * you might consider inheriting from <code>DefaultMap</code> instead. + * $mapnote * - * @note If your additions and mutations return the same kind of map as the map - * you are defining, you should inherit from <code>MapLike</code> as well. + * '''Note:''' If you do not have specific implementations for `add` and `-` in mind, + * you might consider inheriting from `DefaultMap` instead. * - * @since 1 + * '''Note:''' If your additions and mutations return the same kind of map as the map + * you are defining, you should inherit from `MapLike` as well. + * + * @tparam A the type of the keys in this map. + * @tparam B the type of the values associated with keys. + * + * @since 1 */ trait Map[A, +B] extends Iterable[(A, B)] with MapLike[A, B, Map[A, B]] { def empty: Map[A, B] = Map.empty } -/* Factory object for `Map` class - * - * @since 2.5 +/** $factoryInfo + * @define Coll Map + * @define coll map */ object Map extends MapFactory[Map] { def empty[A, B]: immutable.Map[A, B] = immutable.Map.empty + /** $mapCanBuildFromInfo */ implicit def canBuildFrom[A, B]: CanBuildFrom[Coll, (A, B), Map[A, B]] = new MapCanBuildFrom[A, B] } diff --git a/src/library/scala/collection/MapLike.scala b/src/library/scala/collection/MapLike.scala index 057224a705..9bca2f09a0 100644 --- a/src/library/scala/collection/MapLike.scala +++ b/src/library/scala/collection/MapLike.scala @@ -15,20 +15,14 @@ import mutable.{Builder, StringBuilder, MapBuilder} import annotation.migration import PartialFunction._ -/** A template trait for maps of type `Map[A, B]` which associate keys of type `A` - * with values of type `B`. +/** A template trait for maps, which associate keys with values. * - * @tparam A the type of the keys. - * @tparam B the type of associated values. - * @tparam This the type of the map itself. - * - * $mapnote + * $mapNote + * $mapTags + * @since 2.8 * - * @author Martin Odersky - * @version 2.8 - * @since 2.8 - * $mapnote - * @define $mapnote @note + * @define mapNote + * '''Implementation note:''' * This trait provides most of the operations of a `Map` independently of its representation. * It is typically inherited by concrete implementations of maps. * @@ -47,6 +41,15 @@ import PartialFunction._ * }}} * It is also good idea to override methods `foreach` and * `size` for efficiency. + * + * @define mapTags + * @tparam A the type of the keys. + * @tparam B the type of associated values. + * @tparam This the type of the map itself. + * + * @author Martin Odersky + * @version 2.8 + * * @define coll map * @define Coll Map * @define willNotTerminateInf @@ -287,14 +290,15 @@ self => ((repr: Map[A, B1]) /: xs) (_ + _) /** Returns a new map with all key/value pairs for which the predicate - * <code>p</code> returns <code>true</code>. + * `p` returns `true`. * - * @param p A predicate over key-value pairs - * @note This method works by successively removing elements fro which the + * '''Note:''' This method works by successively removing elements fro which the * predicate is false from this set. * If removal is slow, or you expect that most elements of the set - * will be removed, you might consider using <code>filter</code> + * will be removed, you might consider using `filter` * with a negated predicate instead. + * @param p A predicate over key-value pairs + * @return A new map containing elements not satisfying the predicate. */ override def filterNot(p: ((A, B)) => Boolean): This = { var res: This = repr diff --git a/src/library/scala/collection/Seq.scala b/src/library/scala/collection/Seq.scala index baf2c0031e..f6b89b67b8 100644 --- a/src/library/scala/collection/Seq.scala +++ b/src/library/scala/collection/Seq.scala @@ -25,6 +25,7 @@ trait Seq[+A] extends PartialFunction[Int, A] } /** $factoryInfo + * The current default implementation of a $Coll is a `Vector`. * @define coll sequence * @define Coll Seq */ diff --git a/src/library/scala/collection/SeqView.scala b/src/library/scala/collection/SeqView.scala index 9a0025bd81..68819e899d 100644 --- a/src/library/scala/collection/SeqView.scala +++ b/src/library/scala/collection/SeqView.scala @@ -14,16 +14,13 @@ package scala.collection import generic._ import TraversableView.NoBuilder -/** A non-strict projection of an iterable. - * @author Sean McDirmid - * @author Martin Odersky - * @version 2.8 +/** A base trait for non-strict views of sequences. + * $seqViewInfo */ trait SeqView[+A, +Coll] extends SeqViewLike[A, Coll, SeqView[A, Coll]] -/** $factoryInfo - * @define coll sequence view - * @define Coll SeqView +/** An object containing the necessary implicit definitions to make + * `SeqView`s work. Its definitions are generally not accessed directly by clients. */ object SeqView { type Coll = TraversableView[_, C] forSome {type C <: Traversable[_]} diff --git a/src/library/scala/collection/SeqViewLike.scala b/src/library/scala/collection/SeqViewLike.scala index 7014833a46..6f1f29f536 100644 --- a/src/library/scala/collection/SeqViewLike.scala +++ b/src/library/scala/collection/SeqViewLike.scala @@ -15,10 +15,19 @@ import generic._ import Seq.fill import TraversableView.NoBuilder -/** A template trait for a non-strict view of a sequence. - * @author Sean McDirmid - * @author Martin Odersky - * @version 2.8 +/** A template trait for non-strict views of sequences. + * $seqViewInfo + * + * @define seqViewInfo + * $viewInfo + * All views for sequences are defined by re-interpreting the `length` and `apply` methods. + * + * @author Martin Odersky + * @version 2.8 + * @since 2.8 + * @tparam A the element type of the view + * @tparam Coll the type of the underlying collection containing the elements. + * @tparam This the type of the view itself */ trait SeqViewLike[+A, +Coll, diff --git a/src/library/scala/collection/Set.scala b/src/library/scala/collection/Set.scala index 3a6313a187..034d9f1705 100644 --- a/src/library/scala/collection/Set.scala +++ b/src/library/scala/collection/Set.scala @@ -12,14 +12,16 @@ package scala.collection import generic._ -/** <p> - * A set is a collection that includes at most one of any object. - * </p> +/** A base trait for all sets, mutable as well as immutable. * - * @author Matthias Zenger - * @author Martin Odersky - * @version 2.8 - * @since 1 + * $setNote + * $setNote2 + * $setTags + * @since 1.0 + * @author Matthias Zenger + * @define setNote2 + * '''Implementation note:''' If your additions and mutations return the same kind of set as the set + * you are defining, you should inherit from `SetLike` as well. */ trait Set[A] extends (A => Boolean) with Iterable[A] @@ -28,11 +30,11 @@ trait Set[A] extends (A => Boolean) override def companion: GenericCompanion[Set] = Set } -/** Factory object for <code>Set</code> class. - * - * @author Martin Odersky - * @version 2.8 - * @since 2.8 +/** $factoryInfo + * The current default implementation of a $Coll is one of `EmptySet`, `Set1`, `Set2`, `Set3`, `Set4` in + * class `immutable.Set` for sets of sizes up to 4, and a `immutable.HashSet` for sets of larger sizes. + * @define coll set + * @define Coll Set */ object Set extends SetFactory[Set] { override def empty[A]: Set[A] = immutable.Set.empty[A] diff --git a/src/library/scala/collection/SetLike.scala b/src/library/scala/collection/SetLike.scala index 44dac8e8fe..5a16b975df 100644 --- a/src/library/scala/collection/SetLike.scala +++ b/src/library/scala/collection/SetLike.scala @@ -14,20 +14,21 @@ import generic._ import mutable.{Builder, AddingBuilder} import PartialFunction._ -/** A template trait for sets of type `Set[A]`. +/** A template trait for sets. * - * This trait provides most of the operations of a `Set` independently of its representation. - * It is typically inherited by concrete implementations of sets. + * $setNote + * $setTags + * @since 2.8 * - * $setnote + * @define setNote * - * @tparam A the type of the elements of the set - * @tparam This the type of the set itself. + * A set is a collection that contains no duplicate elements. * - * @author Martin Odersky - * @version 2.8 - * @define setnote - * To implement a concrete set, you need to provide implementations of the + * '''Implementation note:''' + * This trait provides most of the operations of a `Set` independently of its representation. + * It is typically inherited by concrete implementations of sets. + * + * To implement a concrete set, you need to provide implementations of the * following methods: * {{{ * def contains(key: A): Boolean @@ -42,10 +43,18 @@ import PartialFunction._ * }}} * It is also good idea to override methods `foreach` and * `size` for efficiency. - * @define coll set - * @define Coll Set - * @define willNotTerminateInf - * @define mayNotTerminateInf + * + * @define setTags + * @tparam A the type of the elements of the set + * @tparam This the type of the set itself. + * + * @author Martin Odersky + * @version 2.8 + * + * @define coll set + * @define Coll Set + * @define willNotTerminateInf + * @define mayNotTerminateInf */ trait SetLike[A, +This <: SetLike[A, This] with Set[A]] extends IterableLike[A, This] @@ -113,10 +122,10 @@ self => /** Computes the intersection between this set and another set. * + * '''Note:''' Same as `intersect`. * @param that the set to intersect with. * @return a new set consisting of all elements that are both in this * set and in the given set `that`. - * @note Same as `intersect`. */ def &(that: Set[A]): This = intersect(that) @@ -138,10 +147,10 @@ self => /** Computes the union between this set and another set. * + * '''Note:''' Same as `union`. * @param that the set to form the union with. * @return a new set consisting of all elements that are in this * set or in the given set `that`. - * @note Same as `union`. */ def | (that: Set[A]): This = union(that) @@ -155,10 +164,10 @@ self => /** The difference of this set and another set. * + * '''Note:''' Same as `diff`. * @param that the set of elements to exclude. * @return a set containing those elements of this * set that are not also contained in the given set `that`. - * @note Same as `diff`. */ def &~(that: Set[A]): This = diff(that) @@ -181,13 +190,13 @@ self => /** Compares this set with another object for equality. * - * @param that the other object - * @return `true` if `that` is a set which contains the same elements - * as this set. - * @note This operation contains an unchecked cast: if `that` + * '''Note:''' This operation contains an unchecked cast: if `that` * is a set, it will assume with an unchecked cast * that it has the same element type as this set. * Any subsequent ClassCastException is treated as a `false` result. + * @param that the other object + * @return `true` if `that` is a set which contains the same elements + * as this set. */ override def equals(that: Any): Boolean = that match { case that: Set[_] => diff --git a/src/library/scala/collection/Traversable.scala b/src/library/scala/collection/Traversable.scala index 4a1cd01af1..b3383ba802 100644 --- a/src/library/scala/collection/Traversable.scala +++ b/src/library/scala/collection/Traversable.scala @@ -83,6 +83,7 @@ trait Traversable[+A] extends TraversableLike[A, Traversable[A]] } /** $factoryInfo + * The current default implementation of a $Coll is a `Vector`. */ object Traversable extends TraversableFactory[Traversable] { self => diff --git a/src/library/scala/collection/TraversableView.scala b/src/library/scala/collection/TraversableView.scala index ccc33a495d..6d7fa70968 100644 --- a/src/library/scala/collection/TraversableView.scala +++ b/src/library/scala/collection/TraversableView.scala @@ -15,10 +15,14 @@ import generic._ import mutable.Builder import TraversableView.NoBuilder -/** $traversableviewinfo +/** A base trait for non-strict views of traversable collections. + * $traversableViewInfo */ trait TraversableView[+A, +Coll] extends TraversableViewLike[A, Coll, TraversableView[A, Coll]] +/** An object containing the necessary implicit definitions to make + * `TraversableView`s work. Its definitions are generally not accessed directly by clients. + */ object TraversableView { class NoBuilder[A] extends Builder[A, Nothing] { def +=(elem: A): this.type = this diff --git a/src/library/scala/collection/generic/GenericCompanion.scala b/src/library/scala/collection/generic/GenericCompanion.scala index 4332a1c936..2a87f8d913 100644 --- a/src/library/scala/collection/generic/GenericCompanion.scala +++ b/src/library/scala/collection/generic/GenericCompanion.scala @@ -28,13 +28,18 @@ abstract class GenericCompanion[+CC[X] <: Traversable[X]] { /** The underlying collection type with unknown element type */ type Coll = CC[_] - /** The default builder for $Coll objects. */ + /** The default builder for `$Coll` objects. + * @tparam A the type of the ${coll}'s elements + */ def newBuilder[A]: Builder[A, CC[A]] - /** The empty collection of type $Coll[A] */ + /** An empty collection of type `$Coll[A]` + * @tparam A the type of the ${coll}'s elements + */ def empty[A]: CC[A] = newBuilder[A].result /** Creates a $coll with the specified elements. + * @tparam A the type of the ${coll}'s elements * @param elems the elements of the created $coll * @return a new $coll with elements `elems` */ diff --git a/src/library/scala/collection/generic/ImmutableMapFactory.scala b/src/library/scala/collection/generic/ImmutableMapFactory.scala index 2fd22e7f02..512014ba09 100644 --- a/src/library/scala/collection/generic/ImmutableMapFactory.scala +++ b/src/library/scala/collection/generic/ImmutableMapFactory.scala @@ -11,9 +11,9 @@ package scala.collection package generic -/** A template for companion objects of <code>immutable.Map</code> and - * subclasses thereof. - * - * @since 2.8 +/** A template for companion objects of `immutable.Map` and subclasses thereof. + * @author Martin Odersky + * @version 2.8 + * @since 2.8 */ abstract class ImmutableMapFactory[CC[A, +B] <: immutable.Map[A, B] with immutable.MapLike[A, B, CC[A, B]]] extends MapFactory[CC] diff --git a/src/library/scala/collection/generic/ImmutableSortedMapFactory.scala b/src/library/scala/collection/generic/ImmutableSortedMapFactory.scala index d5c372ba74..d30f57f0ce 100644 --- a/src/library/scala/collection/generic/ImmutableSortedMapFactory.scala +++ b/src/library/scala/collection/generic/ImmutableSortedMapFactory.scala @@ -12,8 +12,16 @@ package scala.collection package generic -/** A template for companion objects of immutable.Map and subclasses thereof. +/** A template for companion objects of `SortedMap` and subclasses thereof. * * @since 2.8 + * @define Coll SortedMap + * @define coll sorted map + * @define factoryInfo + * This object provides a set of operations needed to create sorted maps of type `$Coll`. + * @author Martin Odersky + * @version 2.8 + * @define sortedMapCanBuildFromInfo + * The standard `CanBuildFrom` instance for sorted maps */ abstract class ImmutableSortedMapFactory[CC[A, B] <: immutable.SortedMap[A, B] with SortedMapLike[A, B, CC[A, B]]] extends SortedMapFactory[CC] diff --git a/src/library/scala/collection/generic/ImmutableSortedSetFactory.scala b/src/library/scala/collection/generic/ImmutableSortedSetFactory.scala index df5c2c7959..684e7c41f1 100644 --- a/src/library/scala/collection/generic/ImmutableSortedSetFactory.scala +++ b/src/library/scala/collection/generic/ImmutableSortedSetFactory.scala @@ -12,8 +12,16 @@ package scala.collection package generic -/** A template for companion objects of mutable.Map and subclasses thereof. +/** A template for companion objects of `SortedSet` and subclasses thereof. * * @since 2.8 + * @define Coll immutable.SortedSet + * @define coll immutable sorted + * @define factoryInfo + * This object provides a set of operations needed to create sorted sets of type `$Coll`. + * @author Martin Odersky + * @version 2.8 + * @define sortedSetCanBuildFromInfo + * The standard `CanBuildFrom` instance for sorted sets */ abstract class ImmutableSortedSetFactory[CC[A] <: immutable.SortedSet[A] with SortedSetLike[A, CC[A]]] extends SortedSetFactory[CC]
\ No newline at end of file diff --git a/src/library/scala/collection/generic/MapFactory.scala b/src/library/scala/collection/generic/MapFactory.scala index fc04f28f26..163c289e23 100644 --- a/src/library/scala/collection/generic/MapFactory.scala +++ b/src/library/scala/collection/generic/MapFactory.scala @@ -22,6 +22,7 @@ import mutable.{Builder, MapBuilder} * This object provides a set of operations needed to create `$Coll` values. * @author Martin Odersky * @version 2.8 + * @since 2.8 * @define canBuildFromInfo * The standard `CanBuildFrom` instance for `$Coll` objects. * @see CanBuildFrom @@ -33,14 +34,28 @@ import mutable.{Builder, MapBuilder} */ abstract class MapFactory[CC[A, B] <: Map[A, B] with MapLike[A, B, CC[A, B]]] { + /** The type constructor of the collection that can be built by this factory */ type Coll = CC[_, _] + /** An empty $Coll */ def empty[A, B]: CC[A, B] + /** A collection of type $Coll that contains given key/value bindings. + * @param elems the key/value pairs that make up the $coll + * @tparam A the type of the keys + * @tparam B the type of the associated values + * @return a new $coll consisting key/value pairs given by `elems`. + */ def apply[A, B](elems: (A, B)*): CC[A, B] = (newBuilder[A, B] ++= elems).result + /** The default builder for $Coll objects. + * @tparam A the type of the keys + * @tparam B the type of the associated values + */ def newBuilder[A, B]: Builder[(A, B), CC[A, B]] = new MapBuilder[A, B, CC[A, B]](empty[A, B]) + /** The standard `CanBuildFrom` class for maps. + */ class MapCanBuildFrom[A, B] extends CanBuildFrom[Coll, (A, B), CC[A, B]] { def apply(from: Coll) = newBuilder[A, B] def apply() = newBuilder diff --git a/src/library/scala/collection/generic/MutableMapFactory.scala b/src/library/scala/collection/generic/MutableMapFactory.scala index 0f1608ee71..2fdb827d05 100644 --- a/src/library/scala/collection/generic/MutableMapFactory.scala +++ b/src/library/scala/collection/generic/MutableMapFactory.scala @@ -14,9 +14,10 @@ package generic import mutable.MapBuilder -/** A template for companion objects of `mutable.Map` and subclasses thereof. - * - * @since 2.8 +/** A template for companion objects of `immutable.Map` and subclasses thereof. + * @author Martin Odersky + * @version 2.8 + * @since 2.8 */ abstract class MutableMapFactory[CC[A, B] <: mutable.Map[A, B] with mutable.MapLike[A, B, CC[A, B]]] extends MapFactory[CC] diff --git a/src/library/scala/collection/generic/SetFactory.scala b/src/library/scala/collection/generic/SetFactory.scala index 6a237d453c..1c4ec3e7e3 100644 --- a/src/library/scala/collection/generic/SetFactory.scala +++ b/src/library/scala/collection/generic/SetFactory.scala @@ -14,8 +14,7 @@ package generic import mutable.{Builder, AddingBuilder} -/** A template for companion objects of <code>Set</code> and subclasses - * thereof. +/** A template for companion objects of `Set` and subclasses thereof. * * @define coll set * @define Coll Set @@ -23,6 +22,7 @@ import mutable.{Builder, AddingBuilder} * This object provides a set of operations needed to create `$Coll` values. * @author Martin Odersky * @version 2.8 + * @since 2.8 * @define canBuildFromInfo * The standard `CanBuildFrom` instance for `$Coll` objects. * @see CanBuildFrom @@ -36,6 +36,8 @@ abstract class SetFactory[CC[X] <: Set[X] with SetLike[X, CC[X]]] def newBuilder[A]: Builder[A, CC[A]] = new AddingBuilder[A, CC[A]](empty[A]) + /** $setCanBuildFromInfo + */ def setCanBuildFrom[A] = new CanBuildFrom[CC[_], A, CC[A]] { def apply(from: CC[_]) = newBuilder[A] def apply() = newBuilder[A] diff --git a/src/library/scala/collection/immutable/BitSet.scala b/src/library/scala/collection/immutable/BitSet.scala index 857b537904..9b801f26cb 100644 --- a/src/library/scala/collection/immutable/BitSet.scala +++ b/src/library/scala/collection/immutable/BitSet.scala @@ -17,6 +17,8 @@ import BitSetLike.{LogWL, updateArray} /** A class for immutable bitsets. * $bitsetinfo + * @define Coll immutable.BitSet + * @define coll immutable bitset */ @serializable @SerialVersionUID(1611436763290191562L) abstract class BitSet extends Set[Int] @@ -53,12 +55,16 @@ abstract class BitSet extends Set[Int] } } -/** A factory object for bitsets */ +/** $factoryInfo + * @define Coll immutable.BitSet + * @define coll immutable bitset + */ object BitSet extends BitSetFactory[BitSet] { /** The empty bitset */ val empty: BitSet = new BitSet1(0L) + /** $bitsetCanBuildFrom */ implicit def canBuildFrom: CanBuildFrom[BitSet, Int, BitSet] = bitsetCanBuildFrom /** A bitset containing all the bits in an array */ diff --git a/src/library/scala/collection/immutable/DefaultMap.scala b/src/library/scala/collection/immutable/DefaultMap.scala index a19b35aff0..667d86d352 100755 --- a/src/library/scala/collection/immutable/DefaultMap.scala +++ b/src/library/scala/collection/immutable/DefaultMap.scala @@ -14,22 +14,24 @@ package immutable import generic._ -/** <p> - * A default map which implements the <code>updated</code> and <code>-</code> - * methods of maps.<br/> - * Instances that inherit from <code>DefaultMap[A, B]</code> still have to - * define: - * </p> - * <pre> - * <b>def</b> get(key: A): Option[B] - * <b>def</b> iterator: Iterator[(A, B)]</pre> - * <p> - * It refers back to the original map. - * </p> - * <p> - * It might also be advisable to override <code>foreach</code> or - * <code>size</code> if efficient implementations can be found. - * </p> +/** A default map which implements the `+` and `-` + * methods of maps. It does so using the default builder for + * maps defined in the `Map` object. + * Instances that inherit from `DefaultMap[A, B]` still have to + * define: + * + * {{{ + * def get(key: A): Option[B] + * def iterator: Iterator[(A, B)] + * }}} + * + * It refers back to the original map. + * + * It might also be advisable to override `foreach` or + * `size` if efficient implementations can be found. + * + * @tparam A the type of the keys contained in this map. + * @tparam B the type of the values associated with the keys. * * @since 2.8 */ @@ -52,3 +54,13 @@ trait DefaultMap[A, +B] extends Map[A, B] { self => b.result } } + + + + + + + + + + diff --git a/src/library/scala/collection/immutable/HashMap.scala b/src/library/scala/collection/immutable/HashMap.scala index e0f801546c..b82e50ec06 100644 --- a/src/library/scala/collection/immutable/HashMap.scala +++ b/src/library/scala/collection/immutable/HashMap.scala @@ -15,17 +15,22 @@ package immutable import generic._ import annotation.unchecked.uncheckedVariance -/** <p> - * This class implements immutable maps using a hash trie. - * </p> +/** This class implements immutable maps using a hash trie. * - * @note the builder of a hash map returns specialized representations EmptyMap,Map1,..., Map4 - * for maps of size <= 4. + * '''Note:''' the builder of a hash map returns specialized representations EmptyMap,Map1,..., Map4 + * for maps of size <= 4. + * + * @tparam A the type of the keys contained in this hash map. + * @tparam B the type of the values associated with the keys. * * @author Martin Odersky * @author Tiark Rompf * @version 2.8 * @since 2.3 + * @define Coll immutable.HashMap + * @define coll immutable hash map + * @define mayNotTerminateInf + * @define willNotTerminateInf */ @serializable @SerialVersionUID(2L) class HashMap[A, +B] extends Map[A,B] with MapLike[A, B, HashMap[A, B]] { @@ -70,20 +75,22 @@ class HashMap[A, +B] extends Map[A,B] with MapLike[A, B, HashMap[A, B]] { protected def updated0[B1 >: B](key: A, hash: Int, level: Int, value: B1, kv: (A, B1)): HashMap[A, B1] = new HashMap.HashMap1(key, hash, value, kv) + protected def removed0(key: A, hash: Int, level: Int): HashMap[A, B] = this - protected def removed0(key: A, hash: Int, level: Int): HashMap[A, B] = this + protected def writeReplace(): AnyRef = new HashMap.SerializationProxy(this) } -/** A factory object for immutable HashMaps. +/** $factoryInfo + * @define Coll immutable.HashMap + * @define coll immutable hash map * - * @author Martin Odersky * @author Tiark Rompf - * @version 2.8 * @since 2.3 */ object HashMap extends ImmutableMapFactory[HashMap] { + /** $mapCanBuildFromInfo */ implicit def canBuildFrom[A, B]: CanBuildFrom[Coll, (A, B), HashMap[A, B]] = new MapCanBuildFrom[A, B] def empty[A, B]: HashMap[A, B] = EmptyHashMap.asInstanceOf[HashMap[A, B]] @@ -108,14 +115,7 @@ object HashMap extends ImmutableMapFactory[HashMap] { m.updated0(this.key, this.hash, level, this.value, this.kv).updated0(key, hash, level, value, kv) } else { // 32-bit hash collision (rare, but not impossible) - // wrap this in a HashTrieMap if called with level == 0 (otherwise serialization won't work) - if (level == 0) { - val elems = new Array[HashMap[A,B1]](1) - elems(0) = new HashMapCollision1(hash, ListMap.empty.updated(this.key,this.value).updated(key,value)) - new HashTrieMap[A,B1](1 << ((hash >>> level) & 0x1f), elems, 2) - } else { - new HashMapCollision1(hash, ListMap.empty.updated(this.key,this.value).updated(key,value)) - } + new HashMapCollision1(hash, ListMap.empty.updated(this.key,this.value).updated(key,value)) } } @@ -125,18 +125,6 @@ object HashMap extends ImmutableMapFactory[HashMap] { override def iterator: Iterator[(A,B)] = Iterator(ensurePair) override def foreach[U](f: ((A, B)) => U): Unit = f(ensurePair) private[HashMap] def ensurePair: (A,B) = if (kv ne null) kv else { kv = (key, value); kv } - - private def writeObject(out: java.io.ObjectOutputStream) { - out.writeObject(key) - out.writeObject(value) - } - - private def readObject(in: java.io.ObjectInputStream) { - key = in.readObject().asInstanceOf[A] - value = in.readObject().asInstanceOf[B] - hash = computeHash(key) - } - } private class HashMapCollision1[A,+B](private[HashMap] var hash: Int, var kvs: ListMap[A,B @uncheckedVariance]) extends HashMap[A,B] { @@ -166,22 +154,6 @@ object HashMap extends ImmutableMapFactory[HashMap] { override def iterator: Iterator[(A,B)] = kvs.iterator override def foreach[U](f: ((A, B)) => U): Unit = kvs.foreach(f) - - private def writeObject(out: java.io.ObjectOutputStream) { - // this cannot work - reading things in might produce different - // hash codes and remove the collision. however this is never called - // because no references to this class are ever handed out to client code - // and HashTrieMap serialization takes care of the situation - error("cannot serialize an immutable.HashMap where all items have the same 32-bit hash code") - //out.writeObject(kvs) - } - - private def readObject(in: java.io.ObjectInputStream) { - error("cannot deserialize an immutable.HashMap where all items have the same 32-bit hash code") - //kvs = in.readObject().asInstanceOf[ListMap[A,B]] - //hash = computeHash(kvs.) - } - } @@ -246,19 +218,27 @@ object HashMap extends ImmutableMapFactory[HashMap] { val index = (hash >>> level) & 0x1f val mask = (1 << index) val offset = Integer.bitCount(bitmap & (mask-1)) - if (((bitmap >>> index) & 1) == 1) { - val elemsNew = new Array[HashMap[A,B]](elems.length) - Array.copy(elems, 0, elemsNew, 0, elems.length) + if ((bitmap & mask) != 0) { val sub = elems(offset) // TODO: might be worth checking if sub is HashTrieMap (-> monomorphic call site) val subNew = sub.removed0(key, hash, level + 5) - elemsNew(offset) = subNew - // TODO: handle shrinking - val sizeNew = size + (subNew.size - sub.size) - if (sizeNew > 0) - new HashTrieMap(bitmap, elemsNew, size + (subNew.size - sub.size)) - else - HashMap.empty[A,B] + if (subNew.isEmpty) { + val bitmapNew = bitmap ^ mask + if (bitmapNew != 0) { + val elemsNew = new Array[HashMap[A,B]](elems.length - 1) + Array.copy(elems, 0, elemsNew, 0, offset) + Array.copy(elems, offset + 1, elemsNew, offset, elems.length - offset - 1) + val sizeNew = size - sub.size + new HashTrieMap(bitmapNew, elemsNew, sizeNew) + } else + HashMap.empty[A,B] + } else { + val elemsNew = new Array[HashMap[A,B]](elems.length) + Array.copy(elems, 0, elemsNew, 0, elems.length) + elemsNew(offset) = subNew + val sizeNew = size + (subNew.size - sub.size) + new HashTrieMap(bitmap, elemsNew, sizeNew) + } } else { this } @@ -367,31 +347,29 @@ time { mNew.iterator.foreach( p => ()) } } } + } + @serializable @SerialVersionUID(2L) private class SerializationProxy[A,B](@transient private var orig: HashMap[A, B]) { private def writeObject(out: java.io.ObjectOutputStream) { - // no out.defaultWriteObject() - out.writeInt(size) - foreach { p => - out.writeObject(p._1) - out.writeObject(p._2) + val s = orig.size + out.writeInt(s) + for ((k,v) <- orig) { + out.writeObject(k) + out.writeObject(v) } } private def readObject(in: java.io.ObjectInputStream) { - val size = in.readInt - var index = 0 - var m = HashMap.empty[A,B] - while (index < size) { - // TODO: optimize (use unsafe mutable update) - m = m + ((in.readObject.asInstanceOf[A], in.readObject.asInstanceOf[B])) - index += 1 + orig = empty + val s = in.readInt() + for (i <- 0 until s) { + val key = in.readObject().asInstanceOf[A] + val value = in.readObject().asInstanceOf[B] + orig = orig.updated(key, value) } - var tm = m.asInstanceOf[HashTrieMap[A,B]] - bitmap = tm.bitmap - elems = tm.elems - size0 = tm.size0 } + private def readResolve(): AnyRef = orig } } diff --git a/src/library/scala/collection/immutable/HashSet.scala b/src/library/scala/collection/immutable/HashSet.scala index e79b456a2f..68da0cef50 100644 --- a/src/library/scala/collection/immutable/HashSet.scala +++ b/src/library/scala/collection/immutable/HashSet.scala @@ -15,16 +15,19 @@ package immutable import generic._ import annotation.unchecked.uncheckedVariance -/** - * This class implements immutable sets using a hash trie. +/** This class implements immutable sets using a hash trie. * - * @note the builder of a hash set returns specialized representations `EmptySet`,`Set1`,..., `Set4` - * for sets of `size <= 4`. + * '''Note:''' the builder of a hash set returns specialized representations `EmptySet`,`Set1`,..., `Set4` + * for sets of `size <= 4`. + * + * @tparam A the type of the elements contained in this hash set. * * @author Martin Odersky * @author Tiark Rompf * @version 2.8 * @since 2.3 + * @define Coll immutable.HashSet + * @define coll immutable hash set */ @serializable @SerialVersionUID(2L) class HashSet[A] extends Set[A] @@ -69,28 +72,24 @@ class HashSet[A] extends Set[A] protected def updated0(key: A, hash: Int, level: Int): HashSet[A] = new HashSet.HashSet1(key, hash) - - protected def removed0(key: A, hash: Int, level: Int): HashSet[A] = this + protected def writeReplace(): AnyRef = new HashSet.SerializationProxy(this) } -/* -object HashSet extends SetFactory[HashSet] { - implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, HashSet[A]] = setCanBuildFrom[A] - override def empty[A]: HashSet[A] = new HashSet -} -*/ - - -/** A factory object for immutable HashSets. +/** $factoryInfo + * @define Coll immutable.HashSet + * @define coll immutable hash set * - * @author Martin Odersky * @author Tiark Rompf - * @version 2.8 * @since 2.3 + * @define Coll immutable.HashSet + * @define coll immutable hash set + * @define mayNotTerminateInf + * @define willNotTerminateInf */ object HashSet extends SetFactory[HashSet] { + /** $setCanBuildFromInfo */ implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, HashSet[A]] = setCanBuildFrom[A] override def empty[A]: HashSet[A] = EmptyHashSet.asInstanceOf[HashSet[A]] @@ -114,14 +113,7 @@ object HashSet extends SetFactory[HashSet] { m.updated0(this.key, this.hash, level).updated0(key, hash, level) } else { // 32-bit hash collision (rare, but not impossible) - // wrap this in a HashTrieSet if called with level == 0 (otherwise serialization won't work) - if (level == 0) { - val elems = new Array[HashSet[A]](1) - elems(0) = new HashSetCollision1(hash, ListSet.empty + this.key + key) - new HashTrieSet[A](1 << ((hash >>> level) & 0x1f), elems, 2) - } else { - new HashSetCollision1(hash, ListSet.empty + this.key + key) - } + new HashSetCollision1(hash, ListSet.empty + this.key + key) } } @@ -130,16 +122,6 @@ object HashSet extends SetFactory[HashSet] { override def iterator: Iterator[A] = Iterator(key) override def foreach[U](f: A => U): Unit = f(key) - - private def writeObject(out: java.io.ObjectOutputStream) { - out.writeObject(key) - } - - private def readObject(in: java.io.ObjectInputStream) { - key = in.readObject().asInstanceOf[A] - hash = computeHash(key) - } - } private class HashSetCollision1[A](private[HashSet] var hash: Int, var ks: ListSet[A]) extends HashSet[A] { @@ -232,24 +214,33 @@ object HashSet extends SetFactory[HashSet] { val index = (hash >>> level) & 0x1f val mask = (1 << index) val offset = Integer.bitCount(bitmap & (mask-1)) - if (((bitmap >>> index) & 1) == 1) { - val elemsNew = new Array[HashSet[A]](elems.length) - Array.copy(elems, 0, elemsNew, 0, elems.length) + if ((bitmap & mask) != 0) { val sub = elems(offset) - // TODO: might be worth checking if sub is HashTrieSet (-> monomorphic call site) + // TODO: might be worth checking if sub is HashTrieMap (-> monomorphic call site) val subNew = sub.removed0(key, hash, level + 5) - elemsNew(offset) = subNew - // TODO: handle shrinking - val sizeNew = size + (subNew.size - sub.size) - if (sizeNew > 0) - new HashTrieSet(bitmap, elemsNew, size + (subNew.size - sub.size)) - else - HashSet.empty[A] + if (subNew.isEmpty) { + val bitmapNew = bitmap ^ mask + if (bitmapNew != 0) { + val elemsNew = new Array[HashSet[A]](elems.length - 1) + Array.copy(elems, 0, elemsNew, 0, offset) + Array.copy(elems, offset + 1, elemsNew, offset, elems.length - offset - 1) + val sizeNew = size - sub.size + new HashTrieSet(bitmapNew, elemsNew, sizeNew) + } else + HashSet.empty[A] + } else { + val elemsNew = new Array[HashSet[A]](elems.length) + Array.copy(elems, 0, elemsNew, 0, elems.length) + elemsNew(offset) = subNew + val sizeNew = size + (subNew.size - sub.size) + new HashTrieSet(bitmap, elemsNew, sizeNew) + } } else { this } } + override def iterator = new Iterator[A] { private[this] var depth = 0 private[this] var arrayStack = new Array[Array[HashSet[A]]](6) @@ -333,31 +324,27 @@ time { mNew.iterator.foreach( p => ()) } i += 1 } } + } - + @serializable @SerialVersionUID(2L) private class SerializationProxy[A,B](@transient private var orig: HashSet[A]) { private def writeObject(out: java.io.ObjectOutputStream) { - // no out.defaultWriteObject() - out.writeInt(size) - foreach { e => + val s = orig.size + out.writeInt(s) + for (e <- orig) { out.writeObject(e) } } private def readObject(in: java.io.ObjectInputStream) { - val size = in.readInt - var index = 0 - var m = HashSet.empty[A] - while (index < size) { - // TODO: optimize (use unsafe mutable update) - m = m + in.readObject.asInstanceOf[A] - index += 1 + orig = empty + val s = in.readInt() + for (i <- 0 until s) { + val e = in.readObject().asInstanceOf[A] + orig = orig + e } - var tm = m.asInstanceOf[HashTrieSet[A]] - bitmap = tm.bitmap - elems = tm.elems - size0 = tm.size0 } + private def readResolve(): AnyRef = orig } } diff --git a/src/library/scala/collection/immutable/IndexedSeq.scala b/src/library/scala/collection/immutable/IndexedSeq.scala index 268bd56a85..d3223fd106 100644 --- a/src/library/scala/collection/immutable/IndexedSeq.scala +++ b/src/library/scala/collection/immutable/IndexedSeq.scala @@ -14,7 +14,7 @@ package immutable import generic._ import mutable.{ArrayBuffer, Builder} -/** A subtrait of <code>collection.IndexedSeq</code> which represents indexed sequences +/** A subtrait of `collection.IndexedSeq` which represents indexed sequences * that are guaranteed immutable. * $indexedSeqInfo */ @@ -26,6 +26,7 @@ trait IndexedSeq[+A] extends Seq[A] } /** $factoryInfo + * The current default implementation of a $Coll is a `Vector`. * @define coll indexed sequence * @define Coll IndexedSeq */ diff --git a/src/library/scala/collection/immutable/IntMap.scala b/src/library/scala/collection/immutable/IntMap.scala index 75a25e0223..90dfa541e3 100644 --- a/src/library/scala/collection/immutable/IntMap.scala +++ b/src/library/scala/collection/immutable/IntMap.scala @@ -12,8 +12,8 @@ package scala.collection package immutable; -/** - * @author David MacIver +/** Utility class for integer maps. + * @author David MacIver */ private[immutable] object IntMapUtils { def zero(i : Int, mask : Int) = (i & mask) == 0; @@ -50,8 +50,8 @@ private[immutable] object IntMapUtils { import IntMapUtils._ -/** - * @since 2.7 +/** A companion object for integer maps. + * @since 2.7 */ object IntMap { def empty[T] : IntMap[T] = IntMap.Nil; @@ -146,15 +146,19 @@ private[immutable] class IntMapKeyIterator[V](it : IntMap[V]) extends IntMapIter import IntMap._ -/** - * Specialised immutable map structure for integer keys, based on - * <a href="http://citeseer.ist.psu.edu/okasaki98fast.html">Fast Mergeable Integer Maps</a> - * by Okasaki and Gill. Essentially a trie based on binary digits of the the integers. +/** Specialised immutable map structure for integer keys, based on + * <a href="http://citeseer.ist.psu.edu/okasaki98fast.html">Fast Mergeable Integer Maps</a> + * by Okasaki and Gill. Essentially a trie based on binary digits of the the integers. * - * Note: This class is as of 2.8 largely superseded by HashMap. + * Note: This class is as of 2.8 largely superseded by HashMap. * - * @since 2.7 + * @tparam T type of the values associated with integer keys. * + * @since 2.7 + * @define Coll immutable.IntMap + * @define coll immutable integer map + * @define mayNotTerminateInf + * @define willNotTerminateInf */ sealed abstract class IntMap[+T] extends Map[Int, T] with MapLike[Int, T, IntMap[T]] { override def empty: IntMap[T] = IntMap.Nil; diff --git a/src/library/scala/collection/immutable/Iterable.scala b/src/library/scala/collection/immutable/Iterable.scala index 795fc2fa92..e0ef5ffcc1 100644 --- a/src/library/scala/collection/immutable/Iterable.scala +++ b/src/library/scala/collection/immutable/Iterable.scala @@ -17,6 +17,9 @@ import mutable.Builder /** A base trait for iterable collections that are guaranteed immutable. * $iterableInfo + * + * @define Coll immutable.Iterable + * @define coll immutable iterable collection */ trait Iterable[+A] extends Traversable[A] with scala.collection.Iterable[A] @@ -25,14 +28,11 @@ trait Iterable[+A] extends Traversable[A] override def companion: GenericCompanion[Iterable] = Iterable } -/** A factory object for the trait <code>Iterable</code>. - * - * @author Martin Odersky - * @version 2.8 - * @since 2.8 +/** $factoryInfo + * @define Coll immutable.Iterable + * @define coll immutable iterable collection */ object Iterable extends TraversableFactory[Iterable] { implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, Iterable[A]] = new GenericCanBuildFrom[A] def newBuilder[A]: Builder[A, Iterable[A]] = new mutable.ListBuffer } - diff --git a/src/library/scala/collection/immutable/LinearSeq.scala b/src/library/scala/collection/immutable/LinearSeq.scala index 9cb35dced5..180844ce79 100644 --- a/src/library/scala/collection/immutable/LinearSeq.scala +++ b/src/library/scala/collection/immutable/LinearSeq.scala @@ -15,7 +15,7 @@ package immutable import generic._ import mutable.Builder -/** A subtrait of <code>collection.LinearSeq</code> which represents sequences that +/** A subtrait of `collection.LinearSeq` which represents sequences that * are guaranteed immutable. * $linearSeqInfo */ @@ -27,8 +27,9 @@ trait LinearSeq[+A] extends Seq[A] } /** $factoryInfo - * @define coll linear sequence - * @define Coll LinearSeq + * The current default implementation of a $Coll is a `List`. + * @define coll immutable linear sequence + * @define Coll immutable.LinearSeq */ object LinearSeq extends SeqFactory[LinearSeq] { implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, LinearSeq[A]] = new GenericCanBuildFrom[A] diff --git a/src/library/scala/collection/immutable/ListMap.scala b/src/library/scala/collection/immutable/ListMap.scala index 4342e54a9d..a88c3a52d5 100644 --- a/src/library/scala/collection/immutable/ListMap.scala +++ b/src/library/scala/collection/immutable/ListMap.scala @@ -14,25 +14,34 @@ package immutable import generic._ -/** The canonical factory of <a href="ListMap.html">ListMap</a>'s. - * +/** $factoryInfo * @since 1 + * @define Coll immutable.ListMap + * @define coll immutable list map */ object ListMap extends ImmutableMapFactory[ListMap] { + /** $mapCanBuildFromInfo */ implicit def canBuildFrom[A, B]: CanBuildFrom[Coll, (A, B), ListMap[A, B]] = new MapCanBuildFrom[A, B] def empty[A, B]: ListMap[A, B] = new ListMap } /** This class implements immutable maps using a list-based data - * structure. Instances of <code>ListMap</code> represent + * structure. Instances of `ListMap` represent * empty maps; they can be either created by calling the constructor - * directly, or by applying the function <code>ListMap.empty</code>. + * directly, or by applying the function `ListMap.empty`. + * + * @tparam A the type of the keys in this list map. + * @tparam B the type of the values associated with the keys. * * @author Matthias Zenger * @author Martin Odersky * @version 2.0, 01/01/2007 * @since 1 + * @define Coll immutable.ListMap + * @define coll immutable list map + * @define mayNotTerminateInf + * @define willNotTerminateInf */ @serializable @SerialVersionUID(301002838095710379L) class ListMap[A, +B] extends Map[A, B] with MapLike[A, B, ListMap[A, B]] { @@ -45,7 +54,7 @@ class ListMap[A, +B] extends Map[A, B] with MapLike[A, B, ListMap[A, B]] { */ override def size: Int = 0 - /** Checks if this map maps <code>key</code> to a value and return the + /** Checks if this map maps `key` to a value and return the * value if it exists. * * @param key the key of the mapping of interest diff --git a/src/library/scala/collection/immutable/ListSet.scala b/src/library/scala/collection/immutable/ListSet.scala index f7b76d2317..2a202df9ef 100644 --- a/src/library/scala/collection/immutable/ListSet.scala +++ b/src/library/scala/collection/immutable/ListSet.scala @@ -14,24 +14,32 @@ package immutable import generic._ -/** The canonical factory of <a href="ListSet.html">ListSet</a>'s - * +/** $factoryInfo + * @define Coll immutable.ListSet + * @define coll immutable list set * @since 1 */ object ListSet extends SetFactory[ListSet] { + /** setCanBuildFromInfo */ implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, ListSet[A]] = setCanBuildFrom[A] override def empty[A] = new ListSet[A] } /** This class implements immutable sets using a list-based data - * structure. Instances of <code>ListSet</code> represent + * structure. Instances of `ListSet` represent * empty sets; they can be either created by calling the constructor - * directly, or by applying the function <code>ListSet.empty</code>. + * directly, or by applying the function `ListSet.empty`. + * + * @tparam A the type of the elements contained in this list set. * * @author Matthias Zenger * @version 1.0, 09/07/2003 * @since 1 + * @define Coll immutable.ListSet + * @define coll immutable list set + * @define mayNotTerminateInf + * @define willNotTerminateInf */ @serializable class ListSet[A] extends Set[A] diff --git a/src/library/scala/collection/immutable/LongMap.scala b/src/library/scala/collection/immutable/LongMap.scala index 24afb65b99..691a81d9f0 100644 --- a/src/library/scala/collection/immutable/LongMap.scala +++ b/src/library/scala/collection/immutable/LongMap.scala @@ -1,8 +1,8 @@ package scala.collection package immutable -/** - * @author David MacIver +/** Utility class for long maps. + * @author David MacIver */ private[immutable] object LongMapUtils{ def zero(i : Long, mask : Long) = (i & mask) == 0L; @@ -40,8 +40,8 @@ private[immutable] object LongMapUtils{ import LongMapUtils._ -/** - * @since 2.7 +/** A companion object for long maps. + * @since 2.7 */ object LongMap{ def empty[T] : LongMap[T] = LongMap.Nil; @@ -134,13 +134,19 @@ private[immutable] class LongMapKeyIterator[V](it : LongMap[V]) extends LongMapI import LongMap._; /** - * Specialised immutable map structure for long keys, based on - * <a href="http://citeseer.ist.psu.edu/okasaki98fast.html">Fast Mergeable Long Maps</a> - * by Okasaki and Gill. Essentially a trie based on binary digits of the the integers. + * Specialised immutable map structure for long keys, based on + * <a href="http://citeseer.ist.psu.edu/okasaki98fast.html">Fast Mergeable Long Maps</a> + * by Okasaki and Gill. Essentially a trie based on binary digits of the the integers. + * + * Note: This class is as of 2.8 largely superseded by HashMap. * - * Note: This class is as of 2.8 largely superseded by HashMap. + * @tparam T type of the values associated with the long keys. * - * @since 2.7 + * @since 2.7 + * @define Coll immutable.LongMap + * @define coll immutable long integer map + * @define mayNotTerminateInf + * @define willNotTerminateInf */ sealed abstract class LongMap[+T] extends Map[Long, T] with MapLike[Long, T, LongMap[T]] { override def empty: LongMap[T] = LongMap.Nil; diff --git a/src/library/scala/collection/immutable/Map.scala b/src/library/scala/collection/immutable/Map.scala index e3469099b8..74cf4a1715 100644 --- a/src/library/scala/collection/immutable/Map.scala +++ b/src/library/scala/collection/immutable/Map.scala @@ -48,12 +48,13 @@ trait Map[A, +B] extends Iterable[(A, B)] def withDefaultValue[B1 >: B](d: B1): Map[A, B1] = new Map.WithDefault[A, B1](this, x => d) } -/** - * A companion object for immutable maps. - * - * @since 1 +/** $factoryInfo + * @define Coll immutable.Map + * @define coll immutable map */ object Map extends ImmutableMapFactory[Map] { + + /** $mapCanBuildFromInfo */ implicit def canBuildFrom[A, B]: CanBuildFrom[Coll, (A, B), Map[A, B]] = new MapCanBuildFrom[A, B] def empty[A, B]: Map[A, B] = EmptyMap.asInstanceOf[Map[A, B]] diff --git a/src/library/scala/collection/immutable/MapLike.scala b/src/library/scala/collection/immutable/MapLike.scala index 6f816ffa52..367ffadd43 100644 --- a/src/library/scala/collection/immutable/MapLike.scala +++ b/src/library/scala/collection/immutable/MapLike.scala @@ -14,32 +14,38 @@ package immutable import generic._ -/** <p> - * A generic template for immutable maps from keys of type <code>A</code> - * to values of type <code>B</code>.<br/> - * To implement a concrete map, you need to provide implementations of the - * following methods (where <code>This</code> is the type of the map in - * question): - * </p> - * <pre> - * <b>def</b> get(key: A): Option[B] - * <b>def</b> iterator: Iterator[(A, B)] - * <b>def</b> + [B1 >: B](kv: (A, B)): Map[A, B1] - * <b>def</b> - (key: A): This</pre> - * <p> - * If you wish that methods <code>like</code>, <code>take</code>, <code>drop</code>, - * <code>filter</code> return the same kind of map, you should also override: - * </p> - * <pre> - * <b>def</b> empty: This</pre> - * <p> - * It is also good idea to override methods <code>foreach</code> and - * <code>size</code> for efficiency. - * </p> +/** + * A generic template for immutable maps from keys of type `A` + * to values of type `B`. + * To implement a concrete map, you need to provide implementations of the + * following methods (where `This` is the type of the actual map implementation): + * + * {{{ + * def get(key: A): Option[B] + * def iterator: Iterator[(A, B)] + * def + [B1 >: B](kv: (A, B)): Map[A, B1] + * def - (key: A): This + * }}} + * + * If you wish that transformer methods like `take`, `drop`, `filter` return the + * same kind of map, you should also override: + * + * {{{ + * def empty: This + * }}} + * + * It is also good idea to override methods `foreach` and + * `size` for efficiency. + * + * @param A the type of the keys contained in this collection. + * @param B the type of the values associated with the keys. + * @param This The type of the actual map implementation. * * @author Martin Odersky * @version 2.8 * @since 2.8 + * @define Coll immutable.Map + * @define coll immutable map */ trait MapLike[A, +B, +This <: MapLike[A, B, This] with Map[A, B]] extends scala.collection.MapLike[A, B, This] @@ -55,8 +61,8 @@ trait MapLike[A, +B, +This <: MapLike[A, B, This] with Map[A, B]] override def updated [B1 >: B](key: A, value: B1): immutable.Map[A, B1] = this + ((key, value)) /** Add a key/value pair to this map, returning a new map. - * @param kv the key/value pair - * @return A new map with the new binding added to this map + * @param kv the key/value pair. + * @return A new map with the new binding added to this map. */ def + [B1 >: B] (kv: (A, B1)): immutable.Map[A, B1] @@ -66,6 +72,7 @@ trait MapLike[A, +B, +This <: MapLike[A, B, This] with Map[A, B]] * @param elem1 the first element to add. * @param elem2 the second element to add. * @param elems the remaining elements to add. + * @return A new map with the new bindings added to this map. */ override def + [B1 >: B] (elem1: (A, B1), elem2: (A, B1), elems: (A, B1) *): immutable.Map[A, B1] = this + elem1 + elem2 ++ elems @@ -73,7 +80,8 @@ trait MapLike[A, +B, +This <: MapLike[A, B, This] with Map[A, B]] /** Adds a number of elements provided by a traversable object * and returns a new collection with the added elements. * - * @param elems the traversable object. + * @param xs the traversable object consisting of key-value pairs. + * @return a new immutable map with the bindings of this map and those from `xs`. */ override def ++[B1 >: B](xs: TraversableOnce[(A, B1)]): immutable.Map[A, B1] = ((repr: immutable.Map[A, B1]) /: xs) (_ + _) @@ -104,7 +112,7 @@ trait MapLike[A, +B, +This <: MapLike[A, B, This] with Map[A, B]] } /** This function transforms all the values of mappings contained - * in this map with function <code>f</code>. + * in this map with function `f`. * * @param f A function over keys and values * @return the updated map diff --git a/src/library/scala/collection/immutable/MapProxy.scala b/src/library/scala/collection/immutable/MapProxy.scala index 371af042e7..a511c6d145 100644 --- a/src/library/scala/collection/immutable/MapProxy.scala +++ b/src/library/scala/collection/immutable/MapProxy.scala @@ -12,14 +12,12 @@ package scala.collection package immutable -/** <p> - * This is a simple wrapper class for <a href="Map.html" - * target="contentFrame"><code>scala.collection.mutable.Map</code></a>. - * </p> - * <p> - * It is most useful for assembling customized map abstractions - * dynamically using object composition and forwarding. - * </p> +/** + * This is a simple wrapper class for <a href="Map.html" + * target="contentFrame">`scala.collection.immutable.Map`</a>. + * + * It is most useful for assembling customized map abstractions + * dynamically using object composition and forwarding. * * @author Matthias Zenger, Martin Odersky * @version 2.0, 31/12/2006 diff --git a/src/library/scala/collection/immutable/NumericRange.scala b/src/library/scala/collection/immutable/NumericRange.scala index 645c5fed24..67115f7184 100644 --- a/src/library/scala/collection/immutable/NumericRange.scala +++ b/src/library/scala/collection/immutable/NumericRange.scala @@ -14,24 +14,28 @@ package immutable import mutable.{ Builder, ListBuffer } import generic._ -/** <p> - * <code>NumericRange</code> is a more generic version of the - * <code>Range</code> class which works with arbitrary types. - * It must be supplied with an `Integral` implementation of the - * range type. +/** `NumericRange` is a more generic version of the + * `Range` class which works with arbitrary types. + * It must be supplied with an `Integral` implementation of the + * range type. * - * Factories for likely types include `Range.BigInt`, `Range.Long`, - * and `Range.BigDecimal`. `Range.Int` exists for completeness, but - * the `Int`-based `scala.Range` should be more performant. - * </p><pre> - * <b>val</b> r1 = new Range(0, 100, 1) - * <b>val</b> veryBig = Int.MaxValue.toLong + 1 - * <b>val</b> r2 = Range.Long(veryBig, veryBig + 100, 1) + * Factories for likely types include `Range.BigInt`, `Range.Long`, + * and `Range.BigDecimal`. `Range.Int` exists for completeness, but + * the `Int`-based `scala.Range` should be more performant. + * + * {{{ + * val r1 = new Range(0, 100, 1) + * val veryBig = Int.MaxValue.toLong + 1 + * val r2 = Range.Long(veryBig, veryBig + 100, 1) * assert(r1 sameElements r2.map(_ - veryBig)) - * </pre> + * }}} * * @author Paul Phillips * @version 2.8 + * @define Coll NumericRange + * @define coll numeric range + * @define mayNotTerminateInf + * @define willNotTerminateInf */ @serializable abstract class NumericRange[T] @@ -68,7 +72,7 @@ extends IndexedSeq[T] protected def underlying = collection.immutable.IndexedSeq.empty[T] /** Create a new range with the start and end values of this range and - * a new <code>step</code>. + * a new `step`. */ def by(newStep: T): NumericRange[T] = copy(start, end, newStep) @@ -200,6 +204,8 @@ extends IndexedSeq[T] } } +/** A companion object for numeric ranges. + */ object NumericRange { class Inclusive[T](start: T, end: T, step: T)(implicit num: Integral[T]) extends NumericRange(start, end, step, true) { diff --git a/src/library/scala/collection/immutable/PagedSeq.scala b/src/library/scala/collection/immutable/PagedSeq.scala index bd12502520..2a1b3c110c 100644 --- a/src/library/scala/collection/immutable/PagedSeq.scala +++ b/src/library/scala/collection/immutable/PagedSeq.scala @@ -15,7 +15,7 @@ package immutable import java.io._ import scala.util.matching.Regex -/** The PagedSeq object defines a lazy implementations of +/** The `PagedSeq` object defines a lazy implementations of * a random access sequence. * * @since 2.7 @@ -108,8 +108,14 @@ import PagedSeq._ /** An implementation of lazily computed sequences, where elements are stored * in ``pages'', i.e. arrays of fixed size. * - * @author Martin Odersky - * @since 2.7 + * @tparam T the type of the elements contained in this paged sequence, with a `ClassManifest` context bound. + * + * @author Martin Odersky + * @since 2.7 + * @define Coll PagedSeq + * @define coll paged sequence + * @define mayNotTerminateInf + * @define willNotTerminateInf */ class PagedSeq[T: ClassManifest] protected( more: (Array[T], Int, Int) => Int, diff --git a/src/library/scala/collection/immutable/Queue.scala b/src/library/scala/collection/immutable/Queue.scala index 02d344ceea..7a903cb201 100644 --- a/src/library/scala/collection/immutable/Queue.scala +++ b/src/library/scala/collection/immutable/Queue.scala @@ -15,12 +15,16 @@ package immutable import generic._ import mutable.{ Builder, ListBuffer } -/** <code>Queue</code> objects implement data structures that allow to +/** `Queue` objects implement data structures that allow to * insert and retrieve elements in a first-in-first-out (FIFO) manner. * * @author Erik Stenman * @version 1.0, 08/07/2003 * @since 1 + * @define Coll immutable.Queue + * @define coll immutable queue + * @define mayNotTerminateInf + * @define willNotTerminateInf */ @serializable @SerialVersionUID(-7622936493364270175L) @@ -31,11 +35,11 @@ class Queue[+A] protected(protected val in: List[A], protected val out: List[A]) override def companion: GenericCompanion[Queue] = Queue - /** Returns the <code>n</code>-th element of this queue. + /** Returns the `n`-th element of this queue. * The first element is at position 0. * * @param n index of the element to return - * @return the element at position <code>n</code> in this queue. + * @return the element at position `n` in this queue. * @throws Predef.NoSuchElementException if the queue is too short. */ def apply(n: Int): A = { @@ -127,7 +131,12 @@ class Queue[+A] protected(protected val in: List[A], protected val out: List[A]) override def toString() = mkString("Queue(", ", ", ")") } +/** $factoryInfo + * @define Coll immutable.Queue + * @define coll immutable queue + */ object Queue extends SeqFactory[Queue] { + /** $genericCanBuildFromInfo */ implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, Queue[A]] = new GenericCanBuildFrom[A] def newBuilder[A]: Builder[A, Queue[A]] = new ListBuffer[A] mapResult (x => new Queue[A](Nil, x.toList)) override def empty[A]: Queue[A] = new Queue[A](Nil, Nil) diff --git a/src/library/scala/collection/immutable/Range.scala b/src/library/scala/collection/immutable/Range.scala index 5424a7afcb..8f1f7d58a6 100644 --- a/src/library/scala/collection/immutable/Range.scala +++ b/src/library/scala/collection/immutable/Range.scala @@ -10,20 +10,31 @@ package scala.collection.immutable -/** <p> - * The <code>Range</code> class represents integer values in range - * <code>[start;end)</code> with non-zero step value <code>step</code>. - * It's a special case of an indexed sequence. - * For example: - * </p><pre> - * <b>val</b> r1 = 0 until 10 - * <b>val</b> r2 = r1.start until r1.end by r1.step + 1 +/** The `Range` class represents integer values in range + * ''[start;end)'' with non-zero step value `step`. + * It's a special case of an indexed sequence. + * For example: + * + * {{{ + * val r1 = 0 until 10 + * val r2 = r1.start until r1.end by r1.step + 1 * println(r2.length) // = 5 - * </pre> + * }}} + * + * @param start the start of this range. + * @param end the exclusive end of the range. + * @param step the step for the range. * * @author Martin Odersky * @version 2.8 * @since 2.5 + * @define Coll Range + * @define coll range + * @define mayNotTerminateInf + * @define willNotTerminateInf + * @define doesNotUseBuilders + * '''Note:''' this method does not use builders to construct a new range, + * and its complexity is O(1). */ @serializable @SerialVersionUID(7618862778670199309L) class Range(val start: Int, val end: Int, val step: Int) extends IndexedSeq[Int] { @@ -33,7 +44,9 @@ class Range(val start: Int, val end: Int, val step: Int) extends IndexedSeq[Int] protected def copy(start: Int, end: Int, step: Int): Range = new Range(start, end, step) /** Create a new range with the `start` and `end` values of this range and - * a new <code>step</code>. + * a new `step`. + * + * @return a new range with a different step */ def by(step: Int): Range = copy(start, end, step) @@ -84,18 +97,46 @@ class Range(val start: Int, val end: Int, val step: Int) extends IndexedSeq[Int] start } + /** Creates a new range containing the first `n` elements of this range. + * + * $doesNotUseBuilders + * + * @param n the number of elements to take. + * @return a new range consisting of `n` first elements. + */ final override def take(n: Int): Range = if (n > 0 && length > 0) { Range(start, locationAfterN(n - 1), step).inclusive } else { Range(start, start, step) } + /** Creates a new range containing all the elements of this range except the first `n` elements. + * + * $doesNotUseBuilders + * + * @param n the number of elements to drop. + * @return a new range consisting of all the elements of this range except `n` first elements. + */ final override def drop(n: Int): Range = copy(locationAfterN(n), end, step) + /** Creates a new range containing all the elements of this range except the last one. + * + * $doesNotUseBuilders + * + * @return a new range consisting of all the elements of this range except the last one. + */ final override def init: Range = take(length - 1) + /** Creates a new range contained in the specified slice of this range. + * + * $doesNotUseBuilders + * + * @param from the start of the slice. + * @param until the end of the slice. + * @return a new range consisting of all the elements of this range contained in the specified slice. + */ final override def slice(from: Int, until: Int): Range = drop(from).take(until - from) @@ -117,12 +158,29 @@ class Range(val start: Int, val end: Int, val step: Int) extends IndexedSeq[Int] (Range(start, split, step), copy(split, end, step)) } + /** Creates a pair of new ranges, first consisting of elements before `n`, and the second + * of elements after `n`. + * + * $doesNotUseBuilders + */ final override def splitAt(n: Int) = (take(n), drop(n)) + /** Creates a new range consisting of the `length - n` last elements of the range. + * + * $doesNotUseBuilders + */ final override def takeRight(n: Int): Range = drop(length - n) + /** Creates a new range consisting of the initial `length - n` elements of the range. + * + * $doesNotUseBuilders + */ final override def dropRight(n: Int): Range = take(length - n) + /** Returns the reverse of this range. + * + * $doesNotUseBuilders + */ final override def reverse: Range = if (length > 0) new Range.Inclusive(last, start, -step) else this /** Make range inclusive. @@ -156,6 +214,8 @@ class Range(val start: Int, val end: Int, val step: Int) extends IndexedSeq[Int] } } +/** A companion object for the `Range` class. + */ object Range { private[immutable] val MAX_PRINT = 512 // some arbitrary value diff --git a/src/library/scala/collection/immutable/RedBlack.scala b/src/library/scala/collection/immutable/RedBlack.scala index ffa6194838..98a7d67d48 100644 --- a/src/library/scala/collection/immutable/RedBlack.scala +++ b/src/library/scala/collection/immutable/RedBlack.scala @@ -12,9 +12,9 @@ package scala.collection package immutable -/** A base class containing the implementations for TreeMaps and TreeSets +/** A base class containing the implementations for `TreeMaps` and `TreeSets`. * - * @since 2.3 + * @since 2.3 */ @serializable @SerialVersionUID(8691885935445612921L) abstract class RedBlack[A] { diff --git a/src/library/scala/collection/immutable/Seq.scala b/src/library/scala/collection/immutable/Seq.scala index de7804a95c..7e41ff7b94 100644 --- a/src/library/scala/collection/immutable/Seq.scala +++ b/src/library/scala/collection/immutable/Seq.scala @@ -19,6 +19,8 @@ import mutable.Builder * that are guaranteed immutable. * * $seqInfo + * @define Coll immutable.Seq + * @define coll immutable sequence */ trait Seq[+A] extends Iterable[A] with scala.collection.Seq[A] @@ -27,10 +29,12 @@ trait Seq[+A] extends Iterable[A] override def companion: GenericCompanion[Seq] = Seq } -/** - * @since 2.8 +/** $factoryInfo + * @define Coll immutable.Seq + * @define coll immutable sequence */ object Seq extends SeqFactory[Seq] { + /** genericCanBuildFromInfo */ implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, Seq[A]] = new GenericCanBuildFrom[A] def newBuilder[A]: Builder[A, Seq[A]] = new mutable.ListBuffer } diff --git a/src/library/scala/collection/immutable/Set.scala b/src/library/scala/collection/immutable/Set.scala index 77f16c0d14..769ee37f6b 100644 --- a/src/library/scala/collection/immutable/Set.scala +++ b/src/library/scala/collection/immutable/Set.scala @@ -14,23 +14,16 @@ package immutable import generic._ -/** <p> - * A generic trait for immutable sets. Concrete set implementations have - * to provide functionality for the abstract methods in <code>Set</code>: - * </p> - * <pre> - * <b>def</b> contains(elem: A): Boolean - * <b>def</b> iterator: Iterator[A] - * <b>def</b> + (elem: A): Self - * <b>def</b> - (elem: A): Self</pre> - * <p> - * where <code>Self</code> is the type of the set. - * </p> +/** A generic trait for immutable sets. + * + * $setnote * * @author Matthias Zenger * @author Martin Odersky * @version 2.8 * @since 1 + * @define Coll immutable.Set + * @define coll immutable set */ trait Set[A] extends Iterable[A] with scala.collection.Set[A] @@ -39,10 +32,12 @@ trait Set[A] extends Iterable[A] override def companion: GenericCompanion[Set] = Set } -/** - * A companion object for immutable sets. +/** $factoryInfo + * @define Coll immutable.Set + * @define coll immutable set */ object Set extends SetFactory[Set] { + /** $setCanBuildFromInfo */ implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, Set[A]] = setCanBuildFrom[A] override def empty[A]: Set[A] = EmptySet.asInstanceOf[Set[A]] diff --git a/src/library/scala/collection/immutable/SetProxy.scala b/src/library/scala/collection/immutable/SetProxy.scala index 73c95652b3..d45b2059ff 100644 --- a/src/library/scala/collection/immutable/SetProxy.scala +++ b/src/library/scala/collection/immutable/SetProxy.scala @@ -12,14 +12,13 @@ package scala.collection package immutable -/** <p> - * This is a simple wrapper class for <a href="Set.html" - * target="contentFrame"><code>scala.collection.immutable.Set</code></a>. - * </p> - * <p> - * It is most useful for assembling customized set abstractions - * dynamically using object composition and forwarding. - * </p> +/** This is a simple wrapper class for <a href="Set.html" + * target="contentFrame">`scala.collection.immutable.Set`</a>. + * + * It is most useful for assembling customized set abstractions + * dynamically using object composition and forwarding. + * + * @tparam A type of the elements contained in this set proxy. * * @since 2.8 */ diff --git a/src/library/scala/collection/immutable/SortedMap.scala b/src/library/scala/collection/immutable/SortedMap.scala index 919b529a49..243636e107 100644 --- a/src/library/scala/collection/immutable/SortedMap.scala +++ b/src/library/scala/collection/immutable/SortedMap.scala @@ -18,10 +18,15 @@ import annotation.unchecked.uncheckedVariance /** A map whose keys are sorted. * + * @tparam A the type of the keys contained in this sorted map. + * @tparam B the type of the values associated with the keys. + * * @author Sean McDirmid * @author Martin Odersky * @version 2.8 * @since 2.4 + * @define Coll immutable.SortedMap + * @define coll immutable sorted map */ trait SortedMap[A, +B] extends Map[A, B] with scala.collection.SortedMap[A, B] @@ -62,10 +67,12 @@ trait SortedMap[A, +B] extends Map[A, B] ((repr: SortedMap[A, B1]) /: xs) (_ + _) } -/** - * @since 2.4 +/** $factoryInfo + * @define Coll immutable.SortedMap + * @define coll immutable sorted map */ object SortedMap extends ImmutableSortedMapFactory[SortedMap] { + /** $sortedMapCanBuildFromInfo */ implicit def canBuildFrom[A, B](implicit ord: Ordering[A]): CanBuildFrom[Coll, (A, B), SortedMap[A, B]] = new SortedMapCanBuildFrom[A, B] def empty[A, B](implicit ord: Ordering[A]): SortedMap[A, B] = TreeMap.empty[A, B] } diff --git a/src/library/scala/collection/immutable/SortedSet.scala b/src/library/scala/collection/immutable/SortedSet.scala index 10ff466ff8..6c9433c30c 100644 --- a/src/library/scala/collection/immutable/SortedSet.scala +++ b/src/library/scala/collection/immutable/SortedSet.scala @@ -22,18 +22,20 @@ import mutable.Builder * @author Martin Odersky * @version 2.8 * @since 2.4 + * @define Coll immutable.SortedSet + * @define coll immutable sorted set */ trait SortedSet[A] extends Set[A] with scala.collection.SortedSet[A] with SortedSetLike[A, SortedSet[A]] { /** Needs to be overridden in subclasses. */ override def empty: SortedSet[A] = SortedSet.empty[A] } -/** - * A companion object for immutable sorted sets. - * - * @since 2.4 +/** $factoryInfo + * @define Coll immutable.SortedSet + * @define coll immutable sorted set */ object SortedSet extends ImmutableSortedSetFactory[SortedSet] { + /** $sortedSetCanBuildFromInfo */ implicit def canBuildFrom[A](implicit ord: Ordering[A]): CanBuildFrom[Coll, A, SortedSet[A]] = new SortedSetCanBuildFrom[A] def empty[A](implicit ord: Ordering[A]): SortedSet[A] = TreeSet.empty[A] } diff --git a/src/library/scala/collection/immutable/Stack.scala b/src/library/scala/collection/immutable/Stack.scala index 7d3c8c040b..0323db7211 100644 --- a/src/library/scala/collection/immutable/Stack.scala +++ b/src/library/scala/collection/immutable/Stack.scala @@ -15,7 +15,12 @@ package immutable import generic._ import mutable.{ ArrayBuffer, Builder } +/** $factoryInfo + * @define Coll immutable.Stack + * @define coll immutable stack + */ object Stack extends SeqFactory[Stack] { + /** $genericCanBuildFromInfo */ implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, Stack[A]] = new GenericCanBuildFrom[A] def newBuilder[A]: Builder[A, Stack[A]] = new ArrayBuffer[A] mapResult (buf => new Stack(buf.toList)) @@ -26,13 +31,21 @@ object Stack extends SeqFactory[Stack] { /** This class implements immutable stacks using a list-based data * structure. * - * @note This class exists only for historical reason and as an - * analogue of mutable stacks + * '''Note:''' This class exists only for historical reason and as an + * analogue of mutable stacks. * Instead of an immutable stack you can just use a list. * + * @tparam A the type of the elements contained in this stack. + * * @author Matthias Zenger * @version 1.0, 10/07/2003 * @since 1 + * @define Coll immutable.Stack + * @define coll immutable stack + * @define orderDependent + * @define orderDependentFold + * @define mayNotTerminateInf + * @define willNotTerminateInf */ @serializable @SerialVersionUID(1976480595012942526L) class Stack[+A] protected (protected val elems: List[A]) extends LinearSeq[A] diff --git a/src/library/scala/collection/immutable/Stream.scala b/src/library/scala/collection/immutable/Stream.scala index 7f0b21050a..50fa07c2cf 100644 --- a/src/library/scala/collection/immutable/Stream.scala +++ b/src/library/scala/collection/immutable/Stream.scala @@ -16,27 +16,33 @@ import generic._ import mutable.{Builder, StringBuilder, LazyBuilder, ListBuffer} import scala.annotation.tailrec -/** - * <p>The class <code>Stream</code> implements lazy lists where elements - * are only evaluated when they are needed. Here is an example:</p> - * <pre> - * <b>object</b> Main <b>extends</b> Application { +/** The class `Stream` implements lazy lists where elements + * are only evaluated when they are needed. Here is an example: * - * <b>def</b> from(n: Int): Stream[Int] = - * Stream.cons(n, from(n + 1)) + * {{{ + * object Main extends Application { * - * <b>def</b> sieve(s: Stream[Int]): Stream[Int] = - * Stream.cons(s.head, sieve(s.tail filter { _ % s.head != 0 })) + * def from(n: Int): Stream[Int] = + * Stream.cons(n, from(n + 1)) * - * <b>def</b> primes = sieve(from(2)) + * def sieve(s: Stream[Int]): Stream[Int] = + * Stream.cons(s.head, sieve(s.tail filter { _ % s.head != 0 })) * - * primes take 10 print - * } - * </pre> + * def primes = sieve(from(2)) * - * @author Martin Odersky, Matthias Zenger - * @version 1.1 08/08/03 - * @since 2.8 + * primes take 10 print + * } + * }}} + * + * @tparam A the type of the elements contained in this stream. + * + * @author Martin Odersky, Matthias Zenger + * @version 1.1 08/08/03 + * @since 2.8 + * @define Coll Stream + * @define coll stream + * @define orderDependent + * @define orderDependentFold */ abstract class Stream[+A] extends LinearSeq[A] with GenericTraversableTemplate[A, Stream] @@ -68,6 +74,7 @@ self => /** The stream resulting from the concatenation of this stream with the argument stream. * @param rest The stream that gets appended to this stream + * @return The stream containing elements of this stream and the traversable object. */ def append[B >: A](rest: => Traversable[B]): Stream[B] = if (isEmpty) rest.toStream else new Stream.Cons(head, tail append rest) @@ -82,7 +89,7 @@ self => /** Prints elements of this stream one by one, separated by commas. */ def print() { print(", ") } - /** Prints elements of this stream one by one, separated by <code>sep</code>. + /** Prints elements of this stream one by one, separated by `sep`. * @param sep The separator string printed between consecutive elements. */ def print(sep: String) { @@ -138,7 +145,7 @@ self => ) /** Returns the stream resulting from applying the given function - * <code>f</code> to each element of this stream. + * `f` to each element of this stream. * * @param f function to apply to each element. * @return <code>f(a<sub>0</sub>), ..., f(a<sub>n</sub>)</code> if this @@ -150,10 +157,11 @@ self => else new Stream.Cons(f(head), asStream[B](tail map f)) ) - /** Applies the given function <code>f</code> to each element of + /** Applies the given function `f` to each element of * this stream, then concatenates the results. * - * @param f the function to apply on each element. + * @param f the function to apply on each element. + * @param bf $bfinfo * @return <code>f(a<sub>0</sub>) ::: ... ::: f(a<sub>n</sub>)</code> if * this stream is <code>[a<sub>0</sub>, ..., a<sub>n</sub>]</code>. */ diff --git a/src/library/scala/collection/immutable/StringLike.scala b/src/library/scala/collection/immutable/StringLike.scala index 8068267dd2..f12ddebd08 100644 --- a/src/library/scala/collection/immutable/StringLike.scala +++ b/src/library/scala/collection/immutable/StringLike.scala @@ -17,8 +17,8 @@ import mutable.Builder import scala.util.matching.Regex import scala.math.ScalaNumber -/** - * @since 2.8 +/** A companion object for the `StringLike` containing some constants. + * @since 2.8 */ object StringLike { @@ -31,8 +31,17 @@ object StringLike { import StringLike._ -/** - * @since 2.8 +/** A trait describing stringlike collections. + * + * @tparam Repr The type of the actual collection inheriting `StringLike`. + * + * @since 2.8 + * @define Coll String + * @define coll string + * @define orderDependent + * @define orderDependentFold + * @define mayNotTerminateInf + * @define willNotTerminateInf */ trait StringLike[+Repr] extends IndexedSeqOptimized[Char, Repr] with Ordered[String] { self => @@ -62,15 +71,15 @@ self => private def isLineBreak(c: Char) = c == LF || c == FF /** - * Strip trailing line end character from this string if it has one. + * Strip trailing line end character from this string if it has one. * - * A line end character is one of - * <ul style="list-style-type: none;"> - * <li>LF - line feed (0x0A hex)</li> - * <li>FF - form feed (0x0C hex)</li> - * </ul> - * If a line feed character LF is preceded by a carriage return CR - * (0x0D hex), the CR character is also stripped (Windows convention). + * A line end character is one of + * <ul style="list-style-type: none;"> + * <li>LF - line feed (0x0A hex)</li> + * <li>FF - form feed (0x0C hex)</li> + * </ul> + * If a line feed character LF is preceded by a carriage return CR + * (0x0D hex), the CR character is also stripped (Windows convention). */ def stripLineEnd: String = { val len = toString.length @@ -112,15 +121,15 @@ self => } /** Return all lines in this string in an iterator, excluding trailing line - * end characters, i.e. apply <code>.stripLineEnd</code> to all lines - * returned by <code>linesWithSeparators</code>. + * end characters, i.e. apply `.stripLineEnd` to all lines + * returned by `linesWithSeparators`. */ def lines: Iterator[String] = linesWithSeparators map (line => new WrappedString(line).stripLineEnd) /** Return all lines in this string in an iterator, excluding trailing line - * end characters, i.e. apply <code>.stripLineEnd</code> to all lines - * returned by <code>linesWithSeparators</code>. + * end characters, i.e. apply `.stripLineEnd` to all lines + * returned by `linesWithSeparators`. */ def linesIterator: Iterator[String] = linesWithSeparators map (line => new WrappedString(line).stripLineEnd) @@ -135,12 +144,12 @@ self => new String(chars) } - /** Returns this string with the given <code>prefix</code> stripped. */ + /** Returns this string with the given `prefix` stripped. */ def stripPrefix(prefix: String) = if (toString.startsWith(prefix)) toString.substring(prefix.length) else toString - /** Returns this string with the given <code>suffix</code> stripped. */ + /** Returns this string with the given `suffix` stripped. */ def stripSuffix(suffix: String) = if (toString.endsWith(suffix)) toString.substring(0, toString.length() - suffix.length) else toString @@ -150,7 +159,7 @@ self => * * <blockquote> * Strip a leading prefix consisting of blanks or control characters - * followed by <code>marginChar</code> from the line. + * followed by `marginChar` from the line. * </blockquote> */ def stripMargin(marginChar: Char): String = { @@ -170,7 +179,7 @@ self => * * <blockquote> * Strip a leading prefix consisting of blanks or control characters - * followed by <code>|</code> from the line. + * followed by `|` from the line. * </blockquote> */ def stripMargin: String = stripMargin('|') @@ -230,7 +239,7 @@ self => * * The interpretation of the formatting patterns is described in * <a href="" target="contentFrame" class="java/util/Formatter"> - * <code>java.util.Formatter</code></a>, with the addition that + * `java.util.Formatter`</a>, with the addition that * classes deriving from `ScalaNumber` (such as `scala.BigInt` and * `scala.BigDecimal`) are unwrapped to pass a type which `Formatter` * understands. @@ -249,7 +258,7 @@ self => * * The interpretation of the formatting patterns is described in * <a href="" target="contentFrame" class="java/util/Formatter"> - * <code>java.util.Formatter</code></a>, with the addition that + * `java.util.Formatter`</a>, with the addition that * classes deriving from `ScalaNumber` (such as `scala.BigInt` and * `scala.BigDecimal`) are unwrapped to pass a type which `Formatter` * understands. diff --git a/src/library/scala/collection/immutable/StringOps.scala b/src/library/scala/collection/immutable/StringOps.scala index 4949eb7056..2bdbf672cd 100644 --- a/src/library/scala/collection/immutable/StringOps.scala +++ b/src/library/scala/collection/immutable/StringOps.scala @@ -15,15 +15,19 @@ package immutable import mutable.StringBuilder /** - * This class serves as a wrapper providing `String`s with all the operations - * found in indexed sequences. Where needed, instances of `String` object - * are implicitly converted into this class. + * This class serves as a wrapper providing `String`s with all the operations + * found in indexed sequences. Where needed, instances of `String` object + * are implicitly converted into this class. * - * The difference between this class and `WrappedString` is that calling transformer - * methods such as `filter` and `map` will yield a `String` object, whereas a - * `WrappedString` will remain a `WrappedString`. + * The difference between this class and `WrappedString` is that calling transformer + * methods such as `filter` and `map` will yield a `String` object, whereas a + * `WrappedString` will remain a `WrappedString`. * - * @since 2.8 + * @param repr the actual representation of this string operations object. + * + * @since 2.8 + * @define Coll StringOps + * @define coll string */ final class StringOps(override val repr: String) extends StringLike[String] { diff --git a/src/library/scala/collection/immutable/Traversable.scala b/src/library/scala/collection/immutable/Traversable.scala index af7f6979c9..8fdb5c7568 100644 --- a/src/library/scala/collection/immutable/Traversable.scala +++ b/src/library/scala/collection/immutable/Traversable.scala @@ -26,11 +26,10 @@ trait Traversable[+A] extends scala.collection.Traversable[A] override def companion: GenericCompanion[Traversable] = Traversable } -/** A factory object for the trait <code>Traversable</code>. - * - * @author Martin Odersky - * @version 2.8 - * @since 2.8 +/** $factoryInfo + * The current default implementation of a $Coll is a `Vector`. + * @define coll immutable traversable collection + * @define Coll immutable.Traversable */ object Traversable extends TraversableFactory[Traversable] { implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, Traversable[A]] = new GenericCanBuildFrom[A] diff --git a/src/library/scala/collection/immutable/TreeMap.scala b/src/library/scala/collection/immutable/TreeMap.scala index bd04b8d2e2..61cfe2e13b 100644 --- a/src/library/scala/collection/immutable/TreeMap.scala +++ b/src/library/scala/collection/immutable/TreeMap.scala @@ -15,22 +15,33 @@ package immutable import generic._ import mutable.Builder -/** The canonical factory of <a href="TreeMap.html">TreeMap</a>'s. - * - * @since 1 +/** $factoryInfo + * @define Coll immutable.TreeMap + * @define coll immutable tree map */ object TreeMap extends ImmutableSortedMapFactory[TreeMap] { def empty[A, B](implicit ord: Ordering[A]) = new TreeMap[A, B]()(ord) + /** $sortedMapCanBuildFromInfo */ implicit def canBuildFrom[A, B](implicit ord: Ordering[A]): CanBuildFrom[Coll, (A, B), TreeMap[A, B]] = new SortedMapCanBuildFrom[A, B] private def make[A, B](s: Int, t: RedBlack[A]#Tree[B])(implicit ord: Ordering[A]) = new TreeMap[A, B](s, t)(ord) } /** This class implements immutable maps using a tree. * + * @tparam A the type of the keys contained in this tree map. + * @tparam B the type of the values associated with the keys. + * @param ordering the implicit ordering used to compare objects of type `A`. + * * @author Erik Stenman * @author Matthias Zenger * @version 1.1, 03/05/2004 * @since 1 + * @define Coll immutable.TreeMap + * @define coll immutable tree map + * @define orderDependent + * @define orderDependentFold + * @define mayNotTerminateInf + * @define willNotTerminateInf */ @serializable class TreeMap[A, +B](override val size: Int, t: RedBlack[A]#Tree[B])(implicit val ordering: Ordering[A]) @@ -65,18 +76,20 @@ class TreeMap[A, +B](override val size: Int, t: RedBlack[A]#Tree[B])(implicit va * if key is <em>not</em> in the TreeMap, otherwise * the key is updated with the new entry. * - * @param key ... - * @param value ... - * @return ... + * @tparam B1 type of the value of the new binding which is a supertype of `B` + * @param key the key that should be updated + * @param value the value to be associated with `key` + * @return a new $coll with the updated binding */ override def updated [B1 >: B](key: A, value: B1): TreeMap[A, B1] = { val newsize = if (tree.lookup(key).isEmpty) size + 1 else size TreeMap.make(newsize, tree.update(key, value)) } - /** Add a key/value pair to this map. - * @param kv the key/value pair - * @return A new map with the new binding added to this map + /** Add a key/value pair to this map. + * @tparam B1 type of the value of the new binding, a supertype of `B` + * @param kv the key/value pair + * @return A new $coll with the new binding added to this map */ override def + [B1 >: B] (kv: (A, B1)): TreeMap[A, B1] = updated(kv._1, kv._2) @@ -84,15 +97,22 @@ class TreeMap[A, +B](override val size: Int, t: RedBlack[A]#Tree[B])(implicit va * either the collection itself (if it is mutable), or a new collection * with the added elements. * + * @tparam B1 type of the values of the new bindings, a supertype of `B` * @param elem1 the first element to add. * @param elem2 the second element to add. * @param elems the remaining elements to add. + * @return a new $coll with the updated bindings */ override def + [B1 >: B] (elem1: (A, B1), elem2: (A, B1), elems: (A, B1) *): TreeMap[A, B1] = this + elem1 + elem2 ++ elems /** A new TreeMap with the entry added is returned, * assuming that key is <em>not</em> in the TreeMap. + * + * @tparam B1 type of the values of the new bindings, a supertype of `B` + * @param key the key to be inserted + * @param value the value to be associated with `key` + * @return a new $coll with the inserted binding, if it wasn't present in the map */ def insert [B1 >: B](key: A, value: B1): TreeMap[A, B1] = { assert(tree.lookup(key).isEmpty) @@ -103,11 +123,11 @@ class TreeMap[A, +B](override val size: Int, t: RedBlack[A]#Tree[B])(implicit va if (tree.lookup(key).isEmpty) this else TreeMap.make(size - 1, tree.delete(key)) - /** Check if this map maps <code>key</code> to a value and return the + /** Check if this map maps `key` to a value and return the * value if it exists. * * @param key the key of the mapping of interest - * @return the value of the mapping, if it exists + * @return the value of the mapping, if it exists */ override def get(key: A): Option[B] = tree.lookup(key) match { case n: NonEmpty[b] => Some(n.value) diff --git a/src/library/scala/collection/immutable/TreeSet.scala b/src/library/scala/collection/immutable/TreeSet.scala index 79e1a6b00b..7b1f71df5b 100644 --- a/src/library/scala/collection/immutable/TreeSet.scala +++ b/src/library/scala/collection/immutable/TreeSet.scala @@ -15,11 +15,11 @@ package immutable import generic._ import mutable.{Builder, AddingBuilder} -/** The canonical factory of <a href="TreeSet.html">TreeSet</a>'s. - * - * @since 1 +/** $factoryInfo + * @define Coll immutable.TreeSet + * @define coll immutable tree set */ -object TreeSet extends SortedSetFactory[TreeSet] { +object TreeSet extends ImmutableSortedSetFactory[TreeSet] { implicit def implicitBuilder[A](implicit ordering: Ordering[A]): Builder[A, TreeSet[A]] = newBuilder[A](ordering) override def newBuilder[A](implicit ordering: Ordering[A]): Builder[A, TreeSet[A]] = new AddingBuilder(empty[A](ordering)) @@ -31,9 +31,18 @@ object TreeSet extends SortedSetFactory[TreeSet] { /** This class implements immutable sets using a tree. * + * @tparam A the type of the elements contained in this tree set + * @param ordering the implicit ordering used to compare objects of type `A` + * * @author Martin Odersky * @version 2.0, 02/01/2007 * @since 1 + * @define Coll immutable.TreeSet + * @define coll immutable tree set + * @define orderDependent + * @define orderDependentFold + * @define mayNotTerminateInf + * @define willNotTerminateInf */ @serializable @SerialVersionUID(-234066569443569402L) class TreeSet[A](override val size: Int, t: RedBlack[A]#Tree[Unit]) @@ -54,29 +63,40 @@ class TreeSet[A](override val size: Int, t: RedBlack[A]#Tree[Unit]) */ override def empty = TreeSet.empty - /** A new TreeSet with the entry added is returned, + /** Creates a new `TreeSet` with the entry added. + * + * @param elem a new element to add. + * @return a new $coll containing `elem` and all the elements of this $coll. */ def + (elem: A): TreeSet[A] = { val newsize = if (tree.lookup(elem).isEmpty) size + 1 else size newSet(newsize, tree.update(elem, ())) } - /** A new TreeSet with the entry added is returned, + /** A new `TreeSet` with the entry added is returned, * assuming that elem is <em>not</em> in the TreeSet. + * + * @param elem a new element to add. + * @return a new $coll containing `elem` and all the elements of this $coll. */ def insert(elem: A): TreeSet[A] = { assert(tree.lookup(elem).isEmpty) newSet(size + 1, tree.update(elem, ())) } + /** Creates a new `TreeSet` with the entry removed. + * + * @param elem a new element to add. + * @return a new $coll containing all the elements of this $coll except `elem`. + */ def - (elem:A): TreeSet[A] = if (tree.lookup(elem).isEmpty) this else newSet(size - 1, tree delete elem) - /** Checks if this set contains element <code>elem</code>. + /** Checks if this set contains element `elem`. * * @param elem the element to check for membership. - * @return true, iff <code>elem</code> is contained in this set. + * @return true, iff `elem` is contained in this set. */ def contains(elem: A): Boolean = !tree.lookup(elem).isEmpty diff --git a/src/library/scala/collection/immutable/WrappedString.scala b/src/library/scala/collection/immutable/WrappedString.scala index cefbd96b5c..011774e10d 100644 --- a/src/library/scala/collection/immutable/WrappedString.scala +++ b/src/library/scala/collection/immutable/WrappedString.scala @@ -17,14 +17,18 @@ import mutable.{Builder, StringBuilder} import scala.util.matching.Regex /** - * This class serves as a wrapper augmenting `String`s with all the operations - * found in indexed sequences. + * This class serves as a wrapper augmenting `String`s with all the operations + * found in indexed sequences. * - * The difference between this class and `StringOps` is that calling transformer - * methods such as `filter` and `map` will yield an object of type `WrappedString` - * rather than a `String`. + * The difference between this class and `StringOps` is that calling transformer + * methods such as `filter` and `map` will yield an object of type `WrappedString` + * rather than a `String`. * - * @since 2.8 + * @param self a string contained within this wrapped string + * + * @since 2.8 + * @define Coll WrappedString + * @define coll wrapped string */ class WrappedString(override val self: String) extends IndexedSeq[Char] with StringLike[WrappedString] with Proxy { @@ -38,8 +42,9 @@ class WrappedString(override val self: String) extends IndexedSeq[Char] with Str new WrappedString(self.substring(from max 0, until min self.length)) } -/** - * @since 2.8 +/** A companion object for wrapped strings. + * + * @since 2.8 */ object WrappedString { def newBuilder: Builder[Char, WrappedString] = new StringBuilder() mapResult (new WrappedString(_)) diff --git a/src/library/scala/collection/mutable/ArrayBuffer.scala b/src/library/scala/collection/mutable/ArrayBuffer.scala index bee531221f..ae656d4e09 100644 --- a/src/library/scala/collection/mutable/ArrayBuffer.scala +++ b/src/library/scala/collection/mutable/ArrayBuffer.scala @@ -177,8 +177,8 @@ class ArrayBuffer[A](override protected val initialSize: Int) /** Factory object for the `ArrayBuffer` class. * * $factoryInfo - * @define coll list - * @define Coll List + * @define coll array buffer + * @define Coll ArrayBuffer */ object ArrayBuffer extends SeqFactory[ArrayBuffer] { /** $genericCanBuildFromInfo */ diff --git a/src/library/scala/collection/mutable/ArrayLike.scala b/src/library/scala/collection/mutable/ArrayLike.scala index b3bd0fbe25..15cafa6ee7 100644 --- a/src/library/scala/collection/mutable/ArrayLike.scala +++ b/src/library/scala/collection/mutable/ArrayLike.scala @@ -13,15 +13,15 @@ package scala.collection package mutable import generic._ -/** A subtrait of `collection.IndexedSeq` which represents sequences - * that can be mutated. - * - * @since 2.8 +/** A common supertrait of `ArrayOps` and `WrappedArray` that factors out most + * operations on arrays and wrapped arrays. * * @tparam A type of the elements contained in the array like object. * @tparam Repr the type of the actual collection containing the elements. * * @define Coll ArrayLike + * @version 2.8 + * @since 2.8 */ trait ArrayLike[A, +Repr] extends IndexedSeqOptimized[A, Repr] { self => diff --git a/src/library/scala/collection/mutable/IndexedSeq.scala b/src/library/scala/collection/mutable/IndexedSeq.scala index 14ee5afc9b..06a6230c6b 100644 --- a/src/library/scala/collection/mutable/IndexedSeq.scala +++ b/src/library/scala/collection/mutable/IndexedSeq.scala @@ -27,8 +27,9 @@ trait IndexedSeq[A] extends Seq[A] } /** $factoryInfo - * @define coll indexed sequence - * @define Coll IndexedSeq + * The current default implementation of a $Coll is an `ArrayBuffer`. + * @define coll mutable indexed sequence + * @define Coll mutable.IndexedSeq */ object IndexedSeq extends SeqFactory[IndexedSeq] { implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, IndexedSeq[A]] = new GenericCanBuildFrom[A] diff --git a/src/library/scala/collection/mutable/IndexedSeqView.scala b/src/library/scala/collection/mutable/IndexedSeqView.scala index 9a0e7a4010..8d72ac2c49 100644 --- a/src/library/scala/collection/mutable/IndexedSeqView.scala +++ b/src/library/scala/collection/mutable/IndexedSeqView.scala @@ -16,14 +16,16 @@ import generic._ import TraversableView.NoBuilder -/** A non-strict view of a mutable IndexedSeq. - * This is a leaf class which mixes methods returning a plain IndexedSeq view - * and methods returning a mutable IndexedSeq view. - * There is no associated `Like' class. - * @author Sean McDirmid - * @author Martin Odersky - * @version 2.8 - * @since 2.8 +/** A non-strict view of a mutable `IndexedSeq`. + * $viewinfo + * Some of the operations of this class will yield again a mutable indexed sequence, + * others will just yield a plain indexed sequence of type `collection.IndexedSeq`. + * Because this is a leaf class there is no associated `Like' class. + * @author Martin Odersky + * @version 2.8 + * @since 2.8 + * @tparam A the element type of the view + * @tparam Coll the type of the underlying collection containing the elements. */ trait IndexedSeqView[A, +Coll] extends IndexedSeq[A] with IndexedSeqOptimized[A, IndexedSeqView[A, Coll]] @@ -91,13 +93,13 @@ self => override def reverse: IndexedSeqView[A, Coll] = newReversed.asInstanceOf[IndexedSeqView[A, Coll]] } -/** $factoryInfo - * @define coll indexed sequence view - * @define Coll IndexedSeqView - * Note that the canBuildFrom factories yield SeqViews, not IndexedSewqViews. - * This is intentional, because not all operations yield again a mutable.IndexedSeqView. - * For instance, map just gives a SeqView, which reflects the fact that - * map cannot do its work and maintain a pointer into the original indexed sequence. +/** An object containing the necessary implicit definitions to make + * `SeqView`s work. Its definitions are generally not accessed directly by clients. + * + * Note that the `canBuildFrom` factories yield `SeqView`s, not `IndexedSewqView`s. + * This is intentional, because not all operations yield again a `mutable.IndexedSeqView`. + * For instance, `map` just gives a `SeqView`, which reflects the fact that + * `map` cannot do its work and maintain a pointer into the original indexed sequence. */ object IndexedSeqView { type Coll = TraversableView[_, C] forSome {type C <: Traversable[_]} diff --git a/src/library/scala/collection/mutable/Iterable.scala b/src/library/scala/collection/mutable/Iterable.scala index 85c6df6fb0..71143f74e3 100644 --- a/src/library/scala/collection/mutable/Iterable.scala +++ b/src/library/scala/collection/mutable/Iterable.scala @@ -21,8 +21,9 @@ trait Iterable[A] extends Traversable[A] } /** $factoryInfo - * @define coll indexed sequence - * @define Coll IndexedSeq + * The current default implementation of a $Coll is an `ArrayBuffer`. + * @define coll mutable iterable collection + * @define Coll mutable.Iterable */ object Iterable extends TraversableFactory[Iterable] { implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, Iterable[A]] = new GenericCanBuildFrom[A] diff --git a/src/library/scala/collection/mutable/LinearSeq.scala b/src/library/scala/collection/mutable/LinearSeq.scala index 185b8c97a3..7567504890 100644 --- a/src/library/scala/collection/mutable/LinearSeq.scala +++ b/src/library/scala/collection/mutable/LinearSeq.scala @@ -29,8 +29,9 @@ trait LinearSeq[A] extends Seq[A] } /** $factoryInfo - * @define coll linear sequence - * @define Coll LinearSeq + * The current default implementation of a $Coll is a `MutableList`. + * @define coll mutable linear sequence + * @define Coll mutable.LinearSeq */ object LinearSeq extends SeqFactory[LinearSeq] { implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, LinearSeq[A]] = new GenericCanBuildFrom[A] diff --git a/src/library/scala/collection/mutable/ListBuffer.scala b/src/library/scala/collection/mutable/ListBuffer.scala index a2611a8c0f..7ebbf7b4da 100644 --- a/src/library/scala/collection/mutable/ListBuffer.scala +++ b/src/library/scala/collection/mutable/ListBuffer.scala @@ -246,7 +246,7 @@ final class ListBuffer[A] // Overrides of methods in Buffer /** Removes the element on a given index position. May take time linear in - * the buffer size + * the buffer size. * * @param n the index which refers to the element to delete. * @return n the element that was formerly at position `n`. diff --git a/src/library/scala/collection/mutable/ListMap.scala b/src/library/scala/collection/mutable/ListMap.scala index a4321d3818..09b0c6459b 100644 --- a/src/library/scala/collection/mutable/ListMap.scala +++ b/src/library/scala/collection/mutable/ListMap.scala @@ -59,8 +59,8 @@ class ListMap[A, B] extends Map[A, B] with MapLike[A, B, ListMap[A, B]] { } /** $factoryInfo - * @define Coll ListMap - * @define coll list map + * @define Coll mutable.ListMap + * @define coll mutable list map */ object ListMap extends MutableMapFactory[ListMap] { implicit def canBuildFrom[A, B]: CanBuildFrom[Coll, (A, B), ListMap[A, B]] = new MapCanBuildFrom[A, B] diff --git a/src/library/scala/collection/mutable/Map.scala b/src/library/scala/collection/mutable/Map.scala index 73688e3bee..6c42bad0e9 100644 --- a/src/library/scala/collection/mutable/Map.scala +++ b/src/library/scala/collection/mutable/Map.scala @@ -14,11 +14,11 @@ package mutable import generic._ -/** This trait represents mutable maps. - * All implementations od mutable maps inherit from it. - * - * @tparam A the type of the keys of the map. - * @tparam B the type of associated values. +/** A base trait for maps that can be mutated. + * $mapNote + * $mapTags + * @since 1.0 + * @author Matthias Zenger */ trait Map[A, B] extends Iterable[(A, B)] @@ -40,11 +40,15 @@ trait Map[A, B] */ } -/* The standard factory for mutable maps. - * Currently this uses `HashMap` as the implementation class. +/** $factoryInfo + * The current default implementation of a $Coll is a `HashMap`. + * @define coll mutable map + * @define Coll mutable.Map */ object Map extends MutableMapFactory[Map] { + /** $canBuildFromInfo */ implicit def canBuildFrom[A, B]: CanBuildFrom[Coll, (A, B), Map[A, B]] = new MapCanBuildFrom[A, B] + def empty[A, B]: Map[A, B] = new HashMap[A, B] } diff --git a/src/library/scala/collection/mutable/MapBuilder.scala b/src/library/scala/collection/mutable/MapBuilder.scala index 9ce3524d9e..75fb48abd6 100644 --- a/src/library/scala/collection/mutable/MapBuilder.scala +++ b/src/library/scala/collection/mutable/MapBuilder.scala @@ -14,6 +14,10 @@ package mutable /** The canonical builder for immutable maps, working with the map's `+` method * to add new elements. * Collections are built from their `empty` element using this + method. + * + * @tparam A Type of the keys for the map this builder creates. + * @tparam B Type of the values for the map this builder creates. + * @tparam Coll The type of the actual collection this builder builds. * @param empty The empty element of the collection. * * @since 2.8 diff --git a/src/library/scala/collection/mutable/MapLike.scala b/src/library/scala/collection/mutable/MapLike.scala index 19e67a6731..676a325c9b 100644 --- a/src/library/scala/collection/mutable/MapLike.scala +++ b/src/library/scala/collection/mutable/MapLike.scala @@ -15,41 +15,10 @@ package mutable import generic._ import annotation.migration -/** A template trait for mutable maps of type `mutable.Map[A, B]` which - * associate keys of type `A` with values of type `B`. - * - * @tparam A the type of the keys. - * @tparam B the type of associated values. - * @tparam This the type of the `Map` itself. - * - * $mapnote - * - * @author Martin Odersky - * @version 2.8 - * @since 2.8 - * @define mapnote - * To implement a concrete mutable map, you need to provide implementations - * of the following methods: - * {{{ - * def get(key: A): Option[B] - * def iterator: Iterator[(A, B)] - * def += (kv: (A, B)): this.type - * def -= (key: A): this.type - * }}} - * If you wish that methods like `take`, - * `drop`, `filter` return the same kind of map, you - * should also override: - * {{{ - * def empty: This - * }}} - * If you wish to avoid the unnecessary construction of an `Option` - * object, you could also override `apply`, `update`, - * and `delete`. - - * It is also good idea to override methods `foreach` and - * `size` for efficiency. - * @define coll mutable map - * @define Coll mutable.Map +/** A template trait for mutable maps. + * $mapNote + * $mapTags + * @since 2.8 */ trait MapLike[A, B, +This <: MapLike[A, B, This] with Map[A, B]] extends scala.collection.MapLike[A, B, This] diff --git a/src/library/scala/collection/mutable/MapProxy.scala b/src/library/scala/collection/mutable/MapProxy.scala index cb768f6778..7fbb016a57 100644 --- a/src/library/scala/collection/mutable/MapProxy.scala +++ b/src/library/scala/collection/mutable/MapProxy.scala @@ -12,20 +12,17 @@ package scala.collection package mutable -/** <p> - * This is a simple wrapper class for <a href="Map.html" - * target="contentFrame"><code>scala.collection.mutable.Map</code></a>. - * </p> - * <p> - * It is most useful for assembling customized map abstractions - * dynamically using object composition and forwarding. - * </p> +/** + * This trait implements a proxy for <a href="Map.html" + * target="contentFrame"><code>scala.collection.mutable.Map</code></a>. + * + * It is most useful for assembling customized map abstractions + * dynamically using object composition and forwarding. * * @author Matthias Zenger, Martin Odersky * @version 2.0, 31/12/2006 * @since 1 */ - trait MapProxy[A, B] extends Map[A, B] with MapProxyLike[A, B, Map[A, B]] { private def newProxy[B1 >: B](newSelf: Map[A, B1]): MapProxy[A, B1] = diff --git a/src/library/scala/collection/mutable/MutableList.scala b/src/library/scala/collection/mutable/MutableList.scala index 4324fa7ef9..4b6d727c34 100644 --- a/src/library/scala/collection/mutable/MutableList.scala +++ b/src/library/scala/collection/mutable/MutableList.scala @@ -16,11 +16,10 @@ import generic._ import immutable.{List, Nil} // !!! todo: convert to LinkedListBuffer? -/** <p> - * This class is used internally to represent mutable lists. It is the - * basis for the implementation of the classes - * <code>Stack</code>, and <code>Queue</code>. - * </p> +/** + * This class is used internally to represent mutable lists. It is the + * basis for the implementation of the classes + * `Stack`, and `Queue`. * * @author Matthias Zenger * @author Martin Odersky diff --git a/src/library/scala/collection/mutable/ObservableBuffer.scala b/src/library/scala/collection/mutable/ObservableBuffer.scala index d3bf49a5b4..8881e78ebc 100644 --- a/src/library/scala/collection/mutable/ObservableBuffer.scala +++ b/src/library/scala/collection/mutable/ObservableBuffer.scala @@ -15,9 +15,9 @@ package mutable import script._ /** This class is typically used as a mixin. It adds a subscription - * mechanism to the <code>Buffer</code> class into which this abstract - * class is mixed in. Class <code>ObservableBuffer</code> publishes - * events of the type <code>Message</code>. + * mechanism to the `Buffer` class into which this abstract + * class is mixed in. Class `ObservableBuffer` publishes + * events of the type `Message`. * * @author Matthias Zenger * @version 1.0, 08/07/2003 diff --git a/src/library/scala/collection/mutable/ObservableMap.scala b/src/library/scala/collection/mutable/ObservableMap.scala index b15b2e54e9..0cde1b2288 100644 --- a/src/library/scala/collection/mutable/ObservableMap.scala +++ b/src/library/scala/collection/mutable/ObservableMap.scala @@ -16,9 +16,9 @@ import script._ /** This class is typically used as a mixin. It adds a subscription - * mechanism to the <code>Map</code> class into which this abstract - * class is mixed in. Class <code>ObservableMap</code> publishes - * events of the type <code>Message</code>. + * mechanism to the `Map` class into which this abstract + * class is mixed in. Class `ObservableMap` publishes + * events of the type `Message`. * * @author Matthias Zenger * @author Martin Odersky diff --git a/src/library/scala/collection/mutable/ObservableSet.scala b/src/library/scala/collection/mutable/ObservableSet.scala index 024c2415ce..1f2f1789f9 100644 --- a/src/library/scala/collection/mutable/ObservableSet.scala +++ b/src/library/scala/collection/mutable/ObservableSet.scala @@ -15,9 +15,9 @@ package mutable import script._ /** This class is typically used as a mixin. It adds a subscription - * mechanism to the <code>Set</code> class into which this abstract - * class is mixed in. Class <code>ObservableSet</code> publishes - * events of the type <code>Message</code>. + * mechanism to the `Set` class into which this abstract + * class is mixed in. Class `ObservableSet` publishes + * events of the type `Message`. * * @author Matthias Zenger * @version 1.0, 08/07/2003 diff --git a/src/library/scala/collection/mutable/OpenHashMap.scala b/src/library/scala/collection/mutable/OpenHashMap.scala index cbcc19c3e8..4ecfe0e762 100644 --- a/src/library/scala/collection/mutable/OpenHashMap.scala +++ b/src/library/scala/collection/mutable/OpenHashMap.scala @@ -12,8 +12,12 @@ package scala.collection package mutable + /** - * @since 2.7 + * @define Coll OpenHashMap + * @define coll open hash map + * + * @since 2.7 */ object OpenHashMap { def apply[K, V](elems : (K, V)*) = { @@ -42,17 +46,26 @@ object OpenHashMap { private[mutable] def nextPowerOfTwo(i : Int) = highestOneBit(i) << 1; } -/** - * A mutable hash map based on an open hashing scheme. The precise scheme is undefined, - * but it should make a reasonable effort to ensure that an insert with consecutive hash - * codes is not unneccessarily penalised. In particular, mappings of consecutive integer - * keys should work without significant performance loss. +/** A mutable hash map based on an open hashing scheme. The precise scheme is undefined, + * but it should make a reasonable effort to ensure that an insert with consecutive hash + * codes is not unneccessarily penalised. In particular, mappings of consecutive integer + * keys should work without significant performance loss. + * + * @tparam Key type of the keys in this map. + * @tparam Value type of the values in this map. + * @param initialSize the initial size of the internal hash table. * - * @author David MacIver - * @since 2.7 + * @author David MacIver + * @since 2.7 + * + * @define Coll OpenHashMap + * @define coll open hash map + * @define mayNotTerminateInf + * @define willNotTerminateInf */ -class OpenHashMap[Key, Value](initialSize : Int) extends Map[Key, Value] - with MapLike[Key, Value, OpenHashMap[Key, Value]] { +class OpenHashMap[Key, Value](initialSize : Int) +extends Map[Key, Value] + with MapLike[Key, Value, OpenHashMap[Key, Value]] { import OpenHashMap.OpenEntry type Entry = OpenEntry[Key, Value] @@ -77,6 +90,7 @@ class OpenHashMap[Key, Value](initialSize : Int) extends Map[Key, Value] override def size = _size; private[this] def size_=(s : Int) = _size = s; + /** Returns a mangled hash code of the provided key. */ protected def hashOf(key : Key) = { var h = key.hashCode; h ^= ((h >>> 20) ^ (h >>> 12)); @@ -173,9 +187,10 @@ class OpenHashMap[Key, Value](initialSize : Int) extends Map[Key, Value] None; } - /** - * An iterator over the elements of this map. Use of this iterator follows the same - * contract for concurrent modification as the foreach method. + /** An iterator over the elements of this map. Use of this iterator follows the same + * contract for concurrent modification as the foreach method. + * + * @return the iterator */ def iterator = new Iterator[(Key, Value)]{ var index = 0; @@ -203,19 +218,20 @@ class OpenHashMap[Key, Value](initialSize : Int) extends Map[Key, Value] } /** - * Loop over the key, value mappings of this map. + * Loop over the key, value mappings of this map. * - * The behaviour of modifying the map during an iteration is as follows: + * The behaviour of modifying the map during an iteration is as follows: * - * <ul> - * <li>Deleting a mapping is always permitted.</li> - * <li>Changing the value of mapping which is already present is permitted.</li> - * <li>Anything else is not permitted. It will usually, but not always, throw an exception.</li> - * </ul> + * <ul> + * <li>Deleting a mapping is always permitted.</li> + * <li>Changing the value of mapping which is already present is permitted.</li> + * <li>Anything else is not permitted. It will usually, but not always, throw an exception.</li> + * </ul> * - * @param f The function to apply to each key, value mapping. + * @tparam U The return type of the specified function `f`, return result of which is ignored. + * @param f The function to apply to each key, value mapping. */ - override def foreach[U](f : ((Key, Value)) => U) { + override def foreach[U](f : ((Key, Value)) => U) { val startModCount = modCount; foreachUndeletedEntry(entry => { if (modCount != startModCount) error("Concurrent Modification") @@ -226,6 +242,7 @@ class OpenHashMap[Key, Value](initialSize : Int) extends Map[Key, Value] private[this] def foreachUndeletedEntry(f : Entry => Unit){ table.foreach(entry => if (entry != null && entry.value != None) f(entry)); } + override def transform(f : (Key, Value) => Value) = { foreachUndeletedEntry(entry => entry.value = Some(f(entry.key, entry.value.get))); this diff --git a/src/library/scala/collection/mutable/PriorityQueue.scala b/src/library/scala/collection/mutable/PriorityQueue.scala index eade376abe..37e1b0ccae 100644 --- a/src/library/scala/collection/mutable/PriorityQueue.scala +++ b/src/library/scala/collection/mutable/PriorityQueue.scala @@ -19,11 +19,20 @@ import annotation.migration * To prioritize elements of type T there must be an implicit * Ordering[T] available at creation. * + * @tparam A type of the elements in this priority queue. + * @param ord implicit ordering used to compare the elements of type `A`. + * * @author Matthias Zenger * @version 1.0, 03/05/2004 * @since 1 + * + * @define Coll PriorityQueue + * @define coll priority queue + * @define orderDependent + * @define orderDependentFold + * @define mayNotTerminateInf + * @define willNotTerminateInf */ - @serializable @cloneable class PriorityQueue[A](implicit ord: Ordering[A]) extends Seq[A] @@ -98,6 +107,7 @@ class PriorityQueue[A](implicit ord: Ordering[A]) k = k / 2 } } + protected def fixDown(as: Array[AnyRef], m: Int, n: Int): Unit = { var k: Int = m while (n >= 2 * k) { @@ -134,7 +144,8 @@ class PriorityQueue[A](implicit ord: Ordering[A]) /** Inserts a single element into the priority queue. * - * @param elem the element to insert + * @param elem the element to insert. + * @return this $coll. */ def +=(elem: A): this.type = { resarr.p_ensureSize(resarr.p_size0 + 1) @@ -147,7 +158,8 @@ class PriorityQueue[A](implicit ord: Ordering[A]) /** Adds all elements provided by a `TraversableOnce` object * into the priority queue. * - * @param xs an iterable object + * @param xs a traversable object. + * @return a new priority queue containing elements of both `xs` and `this`. */ def ++(xs: TraversableOnce[A]) = { this.clone() ++= xs } @@ -203,19 +215,19 @@ class PriorityQueue[A](implicit ord: Ordering[A]) } } - /** - * Returns the reverse of this queue. The priority queue that gets - * returned will have an inversed ordering - if for some elements - * `x` and `y` the original queue's ordering - * had `compare` returning an integer ''w'', the new one will return ''-w'', - * assuming the original ordering abides its contract. + + /** Returns the reverse of this queue. The priority queue that gets + * returned will have an inversed ordering - if for some elements + * `x` and `y` the original queue's ordering + * had `compare` returning an integer ''w'', the new one will return ''-w'', + * assuming the original ordering abides its contract. * - * Note that the order of the elements will be reversed unless the - * `compare` method returns 0. In this case, such elements - * will be subsequent, but their corresponding subinterval may be inappropriately - * reversed. However, due to the compare-equals contract, they will also be equal. + * Note that the order of the elements will be reversed unless the + * `compare` method returns 0. In this case, such elements + * will be subsequent, but their corresponding subinterval may be inappropriately + * reversed. However, due to the compare-equals contract, they will also be equal. * - * @return A reversed priority queue. + * @return A reversed priority queue. */ override def reverse = { val revq = new PriorityQueue[A]()(new math.Ordering[A] { diff --git a/src/library/scala/collection/mutable/PriorityQueueProxy.scala b/src/library/scala/collection/mutable/PriorityQueueProxy.scala index 3f1ee5d217..f99755128f 100644 --- a/src/library/scala/collection/mutable/PriorityQueueProxy.scala +++ b/src/library/scala/collection/mutable/PriorityQueueProxy.scala @@ -13,7 +13,7 @@ package mutable /** This class servers as a proxy for priority queues. The * elements of the queue have to be ordered in terms of the - * <code>Ordered[T]</code> class. + * `Ordered[T]` class. * * @author Matthias Zenger * @version 1.0, 03/05/2004 @@ -22,7 +22,6 @@ package mutable abstract class PriorityQueueProxy[A](implicit ord: Ordering[A]) extends PriorityQueue[A] with Proxy { - def self: PriorityQueue[A] /** Creates a new iterator over all elements contained in this diff --git a/src/library/scala/collection/mutable/Publisher.scala b/src/library/scala/collection/mutable/Publisher.scala index 58e4394ef7..f91864f974 100644 --- a/src/library/scala/collection/mutable/Publisher.scala +++ b/src/library/scala/collection/mutable/Publisher.scala @@ -13,12 +13,14 @@ package scala.collection package mutable -/** <code>Publisher[A,This]</code> objects publish events of type <code>A</code> +/** `Publisher[A,This]` objects publish events of type `A` * to all registered subscribers. When subscribing, a subscriber may specify * a filter which can be used to constrain the number of events sent to the * subscriber. Subscribers may suspend their subscription, or reactivate a - * suspended subscription. Class <code>Publisher</code> is typically used - * as a mixin. The abstract type <code>Pub</code> models the type of the publisher itself. + * suspended subscription. Class `Publisher` is typically used + * as a mixin. The abstract type `Pub` models the type of the publisher itself. + * + * @tparam Evt type of the published event. * * @author Matthias Zenger * @author Martin Odersky diff --git a/src/library/scala/collection/mutable/Queue.scala b/src/library/scala/collection/mutable/Queue.scala index 3754dbc3f2..3132e2f422 100644 --- a/src/library/scala/collection/mutable/Queue.scala +++ b/src/library/scala/collection/mutable/Queue.scala @@ -14,13 +14,20 @@ package mutable import generic._ -/** <code>Queue</code> objects implement data structures that allow to +/** `Queue` objects implement data structures that allow to * insert and retrieve elements in a first-in-first-out (FIFO) manner. * * @author Matthias Zenger * @author Martin Odersky * @version 2.8 * @since 1 + * + * @define Coll mutable.Queue + * @define coll mutable queue + * @define orderDependent + * @define orderDependentFold + * @define mayNotTerminateInf + * @define willNotTerminateInf */ @serializable @cloneable class Queue[A] extends MutableList[A] with Cloneable[Queue[A]] { diff --git a/src/library/scala/collection/mutable/QueueProxy.scala b/src/library/scala/collection/mutable/QueueProxy.scala index b2548b26cc..6adb3d490b 100644 --- a/src/library/scala/collection/mutable/QueueProxy.scala +++ b/src/library/scala/collection/mutable/QueueProxy.scala @@ -12,9 +12,11 @@ package scala.collection package mutable -/** <code>Queue</code> objects implement data structures that allow to +/** `Queue` objects implement data structures that allow to * insert and retrieve elements in a first-in-first-out (FIFO) manner. * + * @tparam A type of the elements in this queue proxy. + * * @author Matthias Zenger * @version 1.1, 03/05/2004 * @since 1 diff --git a/src/library/scala/collection/mutable/ResizableArray.scala b/src/library/scala/collection/mutable/ResizableArray.scala index 80ab1cd559..96d24136cf 100644 --- a/src/library/scala/collection/mutable/ResizableArray.scala +++ b/src/library/scala/collection/mutable/ResizableArray.scala @@ -17,6 +17,8 @@ import generic._ /** This class is used internally to implement data structures that * are based on resizable arrays. * + * @tparam A type of the elements contained in this resizeable array. + * * @author Matthias Zenger, Burak Emir * @author Martin Odersky * @version 2.8 diff --git a/src/library/scala/collection/mutable/RevertibleHistory.scala b/src/library/scala/collection/mutable/RevertibleHistory.scala index 62e1efba2f..b16577486a 100644 --- a/src/library/scala/collection/mutable/RevertibleHistory.scala +++ b/src/library/scala/collection/mutable/RevertibleHistory.scala @@ -13,10 +13,13 @@ package scala.collection package mutable -/** A revertible history is a <code>History</code> object which supports - * an undo operation. Type variable <code>A</code> refers to the type - * of the published events, <code>B</code> denotes the publisher type. - * Type <code>B</code> is typically a subtype of <code>Publisher</code>. +/** A revertible history is a `History` object which supports + * an undo operation. Type variable `Evt` refers to the type + * of the published events, `Pub` denotes the publisher type. + * Type `Pub` is typically a subtype of `Publisher`. + * + * @tparam Evt type of the events + * @tparam Pub type of the publisher * * @author Matthias Zenger * @version 1.0, 08/07/2003 diff --git a/src/library/scala/collection/mutable/Seq.scala b/src/library/scala/collection/mutable/Seq.scala index 8d11e14063..679cc24389 100644 --- a/src/library/scala/collection/mutable/Seq.scala +++ b/src/library/scala/collection/mutable/Seq.scala @@ -14,12 +14,16 @@ package mutable import generic._ -/** A subtrait of <code>collection.Seq</code> which represents sequences + +/** A subtrait of `collection.Seq` which represents sequences * that can be mutated. * * $seqInfo * - * The class adds an <code>update</code> method to <code>collection.Seq</code>. + * The class adds an `update` method to `collection.Seq`. + * + * @define Coll mutable.Seq + * @define coll mutable sequence */ trait Seq[A] extends Iterable[A] with scala.collection.Seq[A] @@ -36,11 +40,10 @@ trait Seq[A] extends Iterable[A] def update(idx: Int, elem: A) } -/** A factory object for the trait <code>Seq</code>. - * - * @author Martin Odersky - * @version 2.8 - * @since 2.8 +/** $factoryInfo + * The current default implementation of a $Coll is an `ArrayBuffer`. + * @define coll mutable sequence + * @define Coll mutable.Seq */ object Seq extends SeqFactory[Seq] { implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, Seq[A]] = new GenericCanBuildFrom[A] diff --git a/src/library/scala/collection/mutable/Set.scala b/src/library/scala/collection/mutable/Set.scala index cca592b5a0..2e7f1cbc6b 100644 --- a/src/library/scala/collection/mutable/Set.scala +++ b/src/library/scala/collection/mutable/Set.scala @@ -14,18 +14,11 @@ package mutable import generic._ -/** A generic trait for mutable sets. Concrete set implementations - * have to provide functionality for the abstract methods in Set: - * - * def contains(elem: A): Boolean - * def iterator: Iterator[A] - * def += (elem: A): this.type - * def -= (elem: A): this.type - * +/** A base trait for sets that can be mutated. + * $setNote + * $setTags + * @since 1.0 * @author Matthias Zenger - * @author Martin Odersky - * @version 2.8 - * @since 1 */ trait Set[A] extends Iterable[A] with scala.collection.Set[A] @@ -34,8 +27,10 @@ trait Set[A] extends Iterable[A] override def companion: GenericCompanion[Set] = Set } -/** The canonical factory methods for <a href="Set.html">mutable sets</a>. - * Currently this returns a HashSet. +/** $factoryInfo + * The current default implementation of a $Coll is a `HashSet`. + * @define coll mutable set + * @define Coll mutable.Set */ object Set extends SetFactory[Set] { implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, Set[A]] = setCanBuildFrom[A] diff --git a/src/library/scala/collection/mutable/SetBuilder.scala b/src/library/scala/collection/mutable/SetBuilder.scala index 450d76463c..b8903372bd 100644 --- a/src/library/scala/collection/mutable/SetBuilder.scala +++ b/src/library/scala/collection/mutable/SetBuilder.scala @@ -15,6 +15,8 @@ import generic._ /** The canonical builder for mutable Sets. * + * @tparam A The type of the elements that will be contained in this set. + * @tparam Coll The type of the actual collection this set builds. * @param empty The empty element of the collection. * @since 2.8 */ diff --git a/src/library/scala/collection/mutable/Stack.scala b/src/library/scala/collection/mutable/Stack.scala index c224c030a4..72e2f928c8 100644 --- a/src/library/scala/collection/mutable/Stack.scala +++ b/src/library/scala/collection/mutable/Stack.scala @@ -20,10 +20,18 @@ import annotation.migration /** A stack implements a data structure which allows to store and retrieve * objects in a last-in-first-out (LIFO) fashion. * + * @tparam A type of the elements contained in this stack. + * * @author Matthias Zenger * @author Martin Odersky * @version 2.8 * @since 1 + * @define Coll Stack + * @define coll stack + * @define orderDependent + * @define orderDependentFold + * @define mayNotTerminateInf + * @define willNotTerminateInf */ @serializable @cloneable class Stack[A] private (var elems: List[A]) extends scala.collection.Seq[A] with Cloneable[Stack[A]] { diff --git a/src/library/scala/collection/mutable/StackProxy.scala b/src/library/scala/collection/mutable/StackProxy.scala index d3810dd158..740afdfd7d 100644 --- a/src/library/scala/collection/mutable/StackProxy.scala +++ b/src/library/scala/collection/mutable/StackProxy.scala @@ -12,9 +12,12 @@ package scala.collection package mutable + /** A stack implements a data structure which allows to store and retrieve * objects in a last-in-first-out (LIFO) fashion. * + * @tparam A type of the elements in this stack proxy. + * * @author Matthias Zenger * @version 1.0, 10/05/2004 * @since 1 diff --git a/src/library/scala/collection/mutable/StringBuilder.scala b/src/library/scala/collection/mutable/StringBuilder.scala index d622d15056..40e7e991ee 100644 --- a/src/library/scala/collection/mutable/StringBuilder.scala +++ b/src/library/scala/collection/mutable/StringBuilder.scala @@ -16,11 +16,8 @@ import generic._ import compat.Platform.arraycopy import scala.reflect.Manifest -/** <p> - * A mutable sequence of characters. This class provides an API compatible - * with <a class="java/lang/StringBuilder" href="" target="_top"> - * <code>java.lang.StringBuilder</code></a>. - * </p>generic/ +/** A builder for mutable sequence of characters. This class provides an API compatible + * with <a class="java/lang/StringBuilder" href="" target="_top">`java.lang.StringBuilder`</a>. * * @author Stephane Micheloud * @author Martin Odersky diff --git a/src/library/scala/collection/mutable/SynchronizedBuffer.scala b/src/library/scala/collection/mutable/SynchronizedBuffer.scala index 0fef1a6635..7bdbd5e520 100644 --- a/src/library/scala/collection/mutable/SynchronizedBuffer.scala +++ b/src/library/scala/collection/mutable/SynchronizedBuffer.scala @@ -14,12 +14,16 @@ package mutable import script._ -/** This class should be used as a mixin. It synchronizes the <code>Buffer</code> +/** This class should be used as a mixin. It synchronizes the `Buffer` * methods of the class into which it is mixed in. * + * @tparam A type of the elements contained in this buffer. + * * @author Matthias Zenger * @version 1.0, 08/07/2003 * @since 1 + * @define Coll SynchronizedBuffer + * @define coll synchronized buffer */ trait SynchronizedBuffer[A] extends Buffer[A] { diff --git a/src/library/scala/collection/mutable/SynchronizedMap.scala b/src/library/scala/collection/mutable/SynchronizedMap.scala index dabcaa7e1c..08c370ce90 100644 --- a/src/library/scala/collection/mutable/SynchronizedMap.scala +++ b/src/library/scala/collection/mutable/SynchronizedMap.scala @@ -14,12 +14,17 @@ package mutable import annotation.migration -/** This class should be used as a mixin. It synchronizes the <code>Map</code> +/** This class should be used as a mixin. It synchronizes the `Map` * functions of the class into which it is mixed in. * + * @tparam A type of the keys contained in this map. + * @tparam B type of the values associated with keys. + * * @author Matthias Zenger, Martin Odersky * @version 2.0, 31/12/2006 * @since 1 + * @define Coll SynchronizedMap + * @define coll synchronized map */ trait SynchronizedMap[A, B] extends Map[A, B] { diff --git a/src/library/scala/collection/mutable/SynchronizedPriorityQueue.scala b/src/library/scala/collection/mutable/SynchronizedPriorityQueue.scala index 933b3b41a4..bc70e35993 100644 --- a/src/library/scala/collection/mutable/SynchronizedPriorityQueue.scala +++ b/src/library/scala/collection/mutable/SynchronizedPriorityQueue.scala @@ -13,12 +13,16 @@ package scala.collection package mutable /** This class implements synchronized priority queues using a binary heap. - * The elements of the queue have to be ordered in terms of the - * <code>Ordered[T]</code> class. + * The elements of the queue have to be ordered in terms of the `Ordered[T]` class. + * + * @tparam A type of the elements contained in this synchronized priority queue + * @param ord implicit ordering used to compared elements of type `A` * * @author Matthias Zenger * @version 1.0, 03/05/2004 * @since 1 + * @define Coll SynchronizedPriorityQueue + * @define coll synchronized priority queue */ class SynchronizedPriorityQueue[A](implicit ord: Ordering[A]) extends PriorityQueue[A] { diff --git a/src/library/scala/collection/mutable/SynchronizedQueue.scala b/src/library/scala/collection/mutable/SynchronizedQueue.scala index b09687a78e..7a0f9f5f6f 100644 --- a/src/library/scala/collection/mutable/SynchronizedQueue.scala +++ b/src/library/scala/collection/mutable/SynchronizedQueue.scala @@ -13,13 +13,17 @@ package scala.collection package mutable -/** This is a synchronized version of the <code>Queue[T]</code> class. It +/** This is a synchronized version of the `Queue[T]` class. It * implements a data structure that allows one to insert and retrieve * elements in a first-in-first-out (FIFO) manner. * + * @tparam A type of elements contained in this synchronized queue. + * * @author Matthias Zenger * @version 1.0, 03/05/2004 * @since 1 + * @define Coll SynchronizedQueue + * @define coll synchronized queue */ class SynchronizedQueue[A] extends Queue[A] { import scala.collection.Traversable diff --git a/src/library/scala/collection/mutable/SynchronizedSet.scala b/src/library/scala/collection/mutable/SynchronizedSet.scala index d3023b9136..904da541c2 100644 --- a/src/library/scala/collection/mutable/SynchronizedSet.scala +++ b/src/library/scala/collection/mutable/SynchronizedSet.scala @@ -13,12 +13,16 @@ package mutable import script._ -/** This class should be used as a mixin. It synchronizes the <code>Set</code> +/** This class should be used as a mixin. It synchronizes the `Set` * functions of the class into which it is mixed in. * + * @tparam A type of the elements contained in this synchronized set. + * * @author Matthias Zenger * @version 1.0, 08/07/2003 * @since 1 + * @define Coll SynchronizedSet + * @define coll synchronized set */ trait SynchronizedSet[A] extends Set[A] { import scala.collection.Traversable diff --git a/src/library/scala/collection/mutable/SynchronizedStack.scala b/src/library/scala/collection/mutable/SynchronizedStack.scala index 4940884302..9109d2ef5d 100644 --- a/src/library/scala/collection/mutable/SynchronizedStack.scala +++ b/src/library/scala/collection/mutable/SynchronizedStack.scala @@ -13,13 +13,17 @@ package scala.collection package mutable -/** This is a synchronized version of the <code>Stack[T]</code> class. It +/** This is a synchronized version of the `Stack[T]` class. It * implements a data structure which allows to store and retrieve * objects in a last-in-first-out (LIFO) fashion. * + * @tparam A type of the elements contained in this stack. + * * @author Matthias Zenger * @version 1.0, 03/05/2004 * @since 1 + * @define Coll SynchronizedStack + * @define coll synchronized stack */ class SynchronizedStack[A] extends Stack[A] { import scala.collection.Traversable diff --git a/src/library/scala/collection/mutable/Traversable.scala b/src/library/scala/collection/mutable/Traversable.scala index 89c8868314..871e3a825d 100644 --- a/src/library/scala/collection/mutable/Traversable.scala +++ b/src/library/scala/collection/mutable/Traversable.scala @@ -25,10 +25,10 @@ trait Traversable[A] extends scala.collection.Traversable[A] override def companion: GenericCompanion[Traversable] = Traversable } -/** A factory object for the trait <code>Traversable</code>. - * - * @author Martin Odersky - * @version 2.8 +/** $factoryInfo + * The current default implementation of a $Coll is an `ArrayBuffer`. + * @define coll mutable traversable collection + * @define Coll mutable.Traversable */ object Traversable extends TraversableFactory[Traversable] { implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, Traversable[A]] = new GenericCanBuildFrom[A] diff --git a/src/library/scala/collection/mutable/Undoable.scala b/src/library/scala/collection/mutable/Undoable.scala index 782e407843..45d3121bd3 100644 --- a/src/library/scala/collection/mutable/Undoable.scala +++ b/src/library/scala/collection/mutable/Undoable.scala @@ -13,8 +13,8 @@ package scala.collection package mutable -/** Classes that mix in the <code>Undoable</code> class provide an operation - * <code>undo</code> which can be used to undo the last operation. +/** Classes that mix in the `Undoable` class provide an operation + * `undo` which can be used to undo the last operation. * * @author Matthias Zenger * @version 1.0, 08/07/2003 diff --git a/src/library/scala/collection/mutable/WeakHashMap.scala b/src/library/scala/collection/mutable/WeakHashMap.scala index 8f496add1e..929c3f8fed 100644 --- a/src/library/scala/collection/mutable/WeakHashMap.scala +++ b/src/library/scala/collection/mutable/WeakHashMap.scala @@ -16,15 +16,35 @@ import JavaConversions._ import generic._ -/** A hash map with weak references to entries which are weakly reachable. +/** A hash map with references to entries which are weakly reachable. + * + * @tparam A type of keys contained in this map + * @tparam B type of values associated with the keys * * @since 2.8 + * @define Coll WeakHashMap + * @define coll weak hash map + * @define thatinfo the class of the returned collection. In the standard library configuration, + * `That` is always `WeakHashMap[A, B]` if the elements contained in the resulting collection are + * pairs of type `(A, B)`. This is because an implicit of type `CanBuildFrom[WeakHashMap, (A, B), WeakHashMap[A, B]]` + * is defined in object `WeakHashMap`. Otherwise, `That` resolves to the most specific type that doesn't have + * to contain pairs of type `(A, B)`, which is `Iterable`. + * @define $bfinfo an implicit value of class `CanBuildFrom` which determines the + * result class `That` from the current representation type `Repr` + * and the new element type `B`. This is usually the `canBuildFrom` value + * defined in object `WeakHashMap`. + * @define mayNotTerminateInf + * @define willNotTerminateInf */ class WeakHashMap[A, B] extends JMapWrapper[A, B](new java.util.WeakHashMap) with JMapWrapperLike[A, B, WeakHashMap[A, B]] { override def empty = new WeakHashMap[A, B] } +/** $factoryInfo + * @define Coll WeakHashMap + * @define coll weak hash map + */ object WeakHashMap extends MutableMapFactory[WeakHashMap] { implicit def canBuildFrom[A, B]: CanBuildFrom[Coll, (A, B), WeakHashMap[A, B]] = new MapCanBuildFrom[A, B] def empty[A, B]: WeakHashMap[A, B] = new WeakHashMap[A, B] diff --git a/src/library/scala/collection/mutable/WrappedArray.scala b/src/library/scala/collection/mutable/WrappedArray.scala index 10117a1086..b9e803d8dc 100644 --- a/src/library/scala/collection/mutable/WrappedArray.scala +++ b/src/library/scala/collection/mutable/WrappedArray.scala @@ -16,11 +16,19 @@ import scala.reflect.ClassManifest import scala.collection.generic._ /** - * <p>A class representing <code>Array[T]</code></p> + * A class representing `Array[T]`. + * + * @tparam T type of the elements in this wrapped array. * * @author Martin Odersky, Stephane Micheloud * @version 1.0 * @since 2.8 + * @define Coll WrappedArray + * @define coll wrapped array + * @define orderDependent + * @define orderDependentFold + * @define mayNotTerminateInf + * @define willNotTerminateInf */ abstract class WrappedArray[T] extends IndexedSeq[T] with ArrayLike[T, WrappedArray[T]] { @@ -59,6 +67,8 @@ abstract class WrappedArray[T] extends IndexedSeq[T] with ArrayLike[T, WrappedAr new WrappedArrayBuilder[T](elemManifest) } +/** A companion object used to create instances of `WrappedArray`. + */ object WrappedArray { def make[T](x: AnyRef): WrappedArray[T] = x match { case x: Array[AnyRef] => wrapRefArray[AnyRef](x).asInstanceOf[WrappedArray[T]] diff --git a/src/library/scala/collection/mutable/WrappedArrayBuilder.scala b/src/library/scala/collection/mutable/WrappedArrayBuilder.scala index 7f1e4b3254..012a0be862 100644 --- a/src/library/scala/collection/mutable/WrappedArrayBuilder.scala +++ b/src/library/scala/collection/mutable/WrappedArrayBuilder.scala @@ -15,7 +15,10 @@ package mutable import generic._ import scala.reflect.ClassManifest -/** A builder class for arrays +/** A builder class for arrays. + * + * @tparam A type of elements that can be added to this builder. + * @param manifest class manifest for objects of type `A`. * * @since 2.8 */ diff --git a/src/library/scala/math/BigDecimal.scala b/src/library/scala/math/BigDecimal.scala index bb6965fcdc..c4cccd1f52 100644 --- a/src/library/scala/math/BigDecimal.scala +++ b/src/library/scala/math/BigDecimal.scala @@ -30,6 +30,9 @@ object BigDecimal private val minCached = -512 private val maxCached = 512 + val MinLong = BigDecimal(Long.MinValue) + val MaxLong = BigDecimal(Long.MaxValue) + /** Cache ony for defaultMathContext using BigDecimals in a small range. */ private lazy val cache = new Array[BigDecimal](maxCached - minCached + 1) @@ -173,12 +176,11 @@ extends ScalaNumber with ScalaNumericConversions else doubleValue.hashCode() /** Compares this BigDecimal with the specified value for equality. - * Will only claim equality with scala.BigDecimal and java.math.BigDecimal. */ override def equals (that: Any): Boolean = that match { case that: BigDecimal => this equals that case that: BigInt => this.toBigIntExact exists (that equals _) - case x => unifiedPrimitiveEquals(x) + case x => (this <= BigDecimal.MaxLong && this >= BigDecimal.MinLong) && unifiedPrimitiveEquals(x) } protected[math] def isWhole = (this remainder 1) == BigDecimal(0) diff --git a/src/library/scala/math/BigInt.scala b/src/library/scala/math/BigInt.scala index 5267ad8b95..f0988f2934 100644 --- a/src/library/scala/math/BigInt.scala +++ b/src/library/scala/math/BigInt.scala @@ -124,7 +124,7 @@ class BigInt(val bigInteger: BigInteger) extends ScalaNumber with ScalaNumericCo override def equals(that: Any): Boolean = that match { case that: BigInt => this equals that case that: BigDecimal => that.toBigIntExact exists (this equals _) - case x => unifiedPrimitiveEquals(x) + case x => (this <= BigInt.MaxLong && this >= BigInt.MinLong) && unifiedPrimitiveEquals(x) } protected[math] def isWhole = true diff --git a/src/library/scala/math/ScalaNumericConversions.scala b/src/library/scala/math/ScalaNumericConversions.scala index d983595c17..2e754c2584 100644 --- a/src/library/scala/math/ScalaNumericConversions.scala +++ b/src/library/scala/math/ScalaNumericConversions.scala @@ -33,15 +33,28 @@ trait ScalaNumericConversions extends ScalaNumber { else lv.hashCode } + /** Should only be called after all known non-primitive + * types have been excluded. This method won't dispatch + * anywhere else after checking against the primitives + * to avoid infinite recursion between equals and this on + * unknown "Number" variants. + * + * Additionally, this should only be called if the numeric + * type is happy to be converted to Long, Float, and Double. + * If for instance a BigInt much larger than the Long range is + * sent here, it will claim equality with whatever Long is left + * in its lower 64 bits. Or a BigDecimal with more precision + * than Double can hold: same thing. There's no way given the + * interface available here to prevent this error. + */ protected def unifiedPrimitiveEquals(x: Any) = x match { case x: Char => isValidChar && (toInt == x.toInt) case x: Byte => isValidByte && (toByte == x) case x: Short => isValidShort && (toShort == x) case x: Int => isValidInt && (toInt == x) - case x: Long => toLong == x // XXX - case x: Float => toFloat == x // XXX - case x: Double => toDouble == x // XXX - case x: Number => this equals x + case x: Long => toLong == x + case x: Float => toFloat == x + case x: Double => toDouble == x case _ => false } } diff --git a/src/library/scala/runtime/AbstractFunction0.scala b/src/library/scala/runtime/AbstractFunction0.scala index 2d7d613132..a9e564f6f8 100644 --- a/src/library/scala/runtime/AbstractFunction0.scala +++ b/src/library/scala/runtime/AbstractFunction0.scala @@ -6,31 +6,14 @@ ** |/ ** \* */ +// $Id$ + +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 + package scala.runtime -abstract class AbstractFunction0[@specialized(Unit, Int, Long, Double) +R] extends Function0[R] { } -abstract class AbstractFunction1[@specialized(Int, Long, Double) -T1, - @specialized(Unit, Int, Long, Double) +R] extends Function1[T1, R] { } -abstract class AbstractFunction2[@specialized(Int, Long, Double) -T1, - @specialized(Int, Long, Double) -T2, - @specialized(Unit, Int, Long, Double) +R] extends Function2[T1, T2, R] { } -abstract class AbstractFunction3[-T1, -T2, -T3, +R] extends Function3[T1, T2, T3, R] { } -abstract class AbstractFunction4[-T1, -T2, -T3, -T4, +R] extends Function4[T1, T2, T3, T4, R] { } -abstract class AbstractFunction5[-T1, -T2, -T3, -T4, -T5, +R] extends Function5[T1, T2, T3, T4, T5, R] { } -abstract class AbstractFunction6[-T1, -T2, -T3, -T4, -T5, -T6, +R] extends Function6[T1, T2, T3, T4, T5, T6, R] { } -abstract class AbstractFunction7[-T1, -T2, -T3, -T4, -T5, -T6, -T7, +R] extends Function7[T1, T2, T3, T4, T5, T6, T7, R] { } -abstract class AbstractFunction8[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, +R] extends Function8[T1, T2, T3, T4, T5, T6, T7, T8, R] { } -abstract class AbstractFunction9[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, +R] extends Function9[T1, T2, T3, T4, T5, T6, T7, T8, T9, R] { } -abstract class AbstractFunction10[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, +R] extends Function10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, R] { } -abstract class AbstractFunction11[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, +R] extends Function11[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, R] { } -abstract class AbstractFunction12[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, +R] extends Function12[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, R] { } -abstract class AbstractFunction13[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, +R] extends Function13[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, R] { } -abstract class AbstractFunction14[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, +R] extends Function14[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, R] { } -abstract class AbstractFunction15[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, -T15, +R] extends Function15[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, R] { } -abstract class AbstractFunction16[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, -T15, -T16, +R] extends Function16[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, R] { } -abstract class AbstractFunction17[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, -T15, -T16, -T17, +R] extends Function17[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, R] { } -abstract class AbstractFunction18[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, -T15, -T16, -T17, -T18, +R] extends Function18[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, R] { } -abstract class AbstractFunction19[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, -T15, -T16, -T17, -T18, -T19, +R] extends Function19[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, R] { } -abstract class AbstractFunction20[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, -T15, -T16, -T17, -T18, -T19, -T20, +R] extends Function20[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, R] { } -abstract class AbstractFunction21[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, -T15, -T16, -T17, -T18, -T19, -T20, -T21, +R] extends Function21[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, R] { } -abstract class AbstractFunction22[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, -T15, -T16, -T17, -T18, -T19, -T20, -T21, -T22, +R] extends Function22[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, R] { } + + +abstract class AbstractFunction0[@specialized +R] extends Function0[R] { + +} diff --git a/src/actors/scala/actors/AbstractReactor.scala b/src/library/scala/runtime/AbstractFunction1.scala index d9dbd39c2b..0a8a754236 100644 --- a/src/actors/scala/actors/AbstractReactor.scala +++ b/src/library/scala/runtime/AbstractFunction1.scala @@ -1,6 +1,6 @@ /* __ *\ ** ________ ___ / / ___ Scala API ** -** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL ** +** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL ** ** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** ** /____/\___/_/ |_/____/_/ | | ** ** |/ ** @@ -8,19 +8,12 @@ // $Id$ -/** - * The <code>AbstractReactor</code> trait. - * - * @author Philipp Haller - */ -package scala.actors +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 -trait AbstractReactor[-T] { +package scala.runtime - /** - * Sends <code>msg</code> to this - * <code>AbstractReactor</code> (asynchronous). - */ - def !(msg: T): Unit + + +abstract class AbstractFunction1[@specialized(Int, Long, Double) -T1, @specialized(Unit, Boolean, Int, Long, Double) +R] extends Function1[T1, R] { } diff --git a/src/library/scala/runtime/AbstractFunction10.scala b/src/library/scala/runtime/AbstractFunction10.scala new file mode 100644 index 0000000000..0830054e1a --- /dev/null +++ b/src/library/scala/runtime/AbstractFunction10.scala @@ -0,0 +1,19 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +\* */ + +// $Id$ + +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 + +package scala.runtime + + + +abstract class AbstractFunction10[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, +R] extends Function10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, R] { + +} diff --git a/src/library/scala/runtime/AbstractFunction11.scala b/src/library/scala/runtime/AbstractFunction11.scala new file mode 100644 index 0000000000..6ee68126d5 --- /dev/null +++ b/src/library/scala/runtime/AbstractFunction11.scala @@ -0,0 +1,19 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +\* */ + +// $Id$ + +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 + +package scala.runtime + + + +abstract class AbstractFunction11[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, +R] extends Function11[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, R] { + +} diff --git a/src/library/scala/runtime/AbstractFunction12.scala b/src/library/scala/runtime/AbstractFunction12.scala new file mode 100644 index 0000000000..cda522dd37 --- /dev/null +++ b/src/library/scala/runtime/AbstractFunction12.scala @@ -0,0 +1,19 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +\* */ + +// $Id$ + +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 + +package scala.runtime + + + +abstract class AbstractFunction12[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, +R] extends Function12[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, R] { + +} diff --git a/src/library/scala/runtime/AbstractFunction13.scala b/src/library/scala/runtime/AbstractFunction13.scala new file mode 100644 index 0000000000..016bcd4a31 --- /dev/null +++ b/src/library/scala/runtime/AbstractFunction13.scala @@ -0,0 +1,19 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +\* */ + +// $Id$ + +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 + +package scala.runtime + + + +abstract class AbstractFunction13[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, +R] extends Function13[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, R] { + +} diff --git a/src/library/scala/runtime/AbstractFunction14.scala b/src/library/scala/runtime/AbstractFunction14.scala new file mode 100644 index 0000000000..fc97bc8936 --- /dev/null +++ b/src/library/scala/runtime/AbstractFunction14.scala @@ -0,0 +1,19 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +\* */ + +// $Id$ + +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 + +package scala.runtime + + + +abstract class AbstractFunction14[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, +R] extends Function14[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, R] { + +} diff --git a/src/library/scala/runtime/AbstractFunction15.scala b/src/library/scala/runtime/AbstractFunction15.scala new file mode 100644 index 0000000000..9dc7a75b36 --- /dev/null +++ b/src/library/scala/runtime/AbstractFunction15.scala @@ -0,0 +1,19 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +\* */ + +// $Id$ + +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 + +package scala.runtime + + + +abstract class AbstractFunction15[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, -T15, +R] extends Function15[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, R] { + +} diff --git a/src/library/scala/runtime/AbstractFunction16.scala b/src/library/scala/runtime/AbstractFunction16.scala new file mode 100644 index 0000000000..3f8f19621a --- /dev/null +++ b/src/library/scala/runtime/AbstractFunction16.scala @@ -0,0 +1,19 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +\* */ + +// $Id$ + +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 + +package scala.runtime + + + +abstract class AbstractFunction16[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, -T15, -T16, +R] extends Function16[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, R] { + +} diff --git a/src/library/scala/runtime/AbstractFunction17.scala b/src/library/scala/runtime/AbstractFunction17.scala new file mode 100644 index 0000000000..1b8ea58c56 --- /dev/null +++ b/src/library/scala/runtime/AbstractFunction17.scala @@ -0,0 +1,19 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +\* */ + +// $Id$ + +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 + +package scala.runtime + + + +abstract class AbstractFunction17[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, -T15, -T16, -T17, +R] extends Function17[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, R] { + +} diff --git a/src/library/scala/runtime/AbstractFunction18.scala b/src/library/scala/runtime/AbstractFunction18.scala new file mode 100644 index 0000000000..63aa6cf8d1 --- /dev/null +++ b/src/library/scala/runtime/AbstractFunction18.scala @@ -0,0 +1,19 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +\* */ + +// $Id$ + +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 + +package scala.runtime + + + +abstract class AbstractFunction18[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, -T15, -T16, -T17, -T18, +R] extends Function18[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, R] { + +} diff --git a/src/library/scala/runtime/AbstractFunction19.scala b/src/library/scala/runtime/AbstractFunction19.scala new file mode 100644 index 0000000000..7a511ddd6e --- /dev/null +++ b/src/library/scala/runtime/AbstractFunction19.scala @@ -0,0 +1,19 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +\* */ + +// $Id$ + +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 + +package scala.runtime + + + +abstract class AbstractFunction19[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, -T15, -T16, -T17, -T18, -T19, +R] extends Function19[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, R] { + +} diff --git a/src/library/scala/runtime/AbstractFunction2.scala b/src/library/scala/runtime/AbstractFunction2.scala new file mode 100644 index 0000000000..0f75b2af87 --- /dev/null +++ b/src/library/scala/runtime/AbstractFunction2.scala @@ -0,0 +1,19 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +\* */ + +// $Id$ + +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 + +package scala.runtime + + + +abstract class AbstractFunction2[@specialized(Int, Long, Double) -T1, @specialized(Int, Long, Double) -T2, @specialized(Unit, Boolean, Int, Long, Double) +R] extends Function2[T1, T2, R] { + +} diff --git a/src/library/scala/runtime/AbstractFunction20.scala b/src/library/scala/runtime/AbstractFunction20.scala new file mode 100644 index 0000000000..6afb329503 --- /dev/null +++ b/src/library/scala/runtime/AbstractFunction20.scala @@ -0,0 +1,19 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +\* */ + +// $Id$ + +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 + +package scala.runtime + + + +abstract class AbstractFunction20[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, -T15, -T16, -T17, -T18, -T19, -T20, +R] extends Function20[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, R] { + +} diff --git a/src/library/scala/runtime/AbstractFunction21.scala b/src/library/scala/runtime/AbstractFunction21.scala new file mode 100644 index 0000000000..8996f2f397 --- /dev/null +++ b/src/library/scala/runtime/AbstractFunction21.scala @@ -0,0 +1,19 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +\* */ + +// $Id$ + +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 + +package scala.runtime + + + +abstract class AbstractFunction21[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, -T15, -T16, -T17, -T18, -T19, -T20, -T21, +R] extends Function21[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, R] { + +} diff --git a/src/library/scala/runtime/AbstractFunction22.scala b/src/library/scala/runtime/AbstractFunction22.scala new file mode 100644 index 0000000000..8b33534291 --- /dev/null +++ b/src/library/scala/runtime/AbstractFunction22.scala @@ -0,0 +1,19 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +\* */ + +// $Id$ + +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 + +package scala.runtime + + + +abstract class AbstractFunction22[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, -T15, -T16, -T17, -T18, -T19, -T20, -T21, -T22, +R] extends Function22[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, R] { + +} diff --git a/src/library/scala/runtime/AbstractFunction3.scala b/src/library/scala/runtime/AbstractFunction3.scala new file mode 100644 index 0000000000..463d3d8a1d --- /dev/null +++ b/src/library/scala/runtime/AbstractFunction3.scala @@ -0,0 +1,19 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +\* */ + +// $Id$ + +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 + +package scala.runtime + + + +abstract class AbstractFunction3[-T1, -T2, -T3, +R] extends Function3[T1, T2, T3, R] { + +} diff --git a/src/library/scala/runtime/AbstractFunction4.scala b/src/library/scala/runtime/AbstractFunction4.scala new file mode 100644 index 0000000000..f7bc7d12a9 --- /dev/null +++ b/src/library/scala/runtime/AbstractFunction4.scala @@ -0,0 +1,19 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +\* */ + +// $Id$ + +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 + +package scala.runtime + + + +abstract class AbstractFunction4[-T1, -T2, -T3, -T4, +R] extends Function4[T1, T2, T3, T4, R] { + +} diff --git a/src/library/scala/runtime/AbstractFunction5.scala b/src/library/scala/runtime/AbstractFunction5.scala new file mode 100644 index 0000000000..6642bb75bb --- /dev/null +++ b/src/library/scala/runtime/AbstractFunction5.scala @@ -0,0 +1,19 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +\* */ + +// $Id$ + +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 + +package scala.runtime + + + +abstract class AbstractFunction5[-T1, -T2, -T3, -T4, -T5, +R] extends Function5[T1, T2, T3, T4, T5, R] { + +} diff --git a/src/library/scala/runtime/AbstractFunction6.scala b/src/library/scala/runtime/AbstractFunction6.scala new file mode 100644 index 0000000000..70944947e7 --- /dev/null +++ b/src/library/scala/runtime/AbstractFunction6.scala @@ -0,0 +1,19 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +\* */ + +// $Id$ + +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 + +package scala.runtime + + + +abstract class AbstractFunction6[-T1, -T2, -T3, -T4, -T5, -T6, +R] extends Function6[T1, T2, T3, T4, T5, T6, R] { + +} diff --git a/src/library/scala/runtime/AbstractFunction7.scala b/src/library/scala/runtime/AbstractFunction7.scala new file mode 100644 index 0000000000..ba4a35f743 --- /dev/null +++ b/src/library/scala/runtime/AbstractFunction7.scala @@ -0,0 +1,19 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +\* */ + +// $Id$ + +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 + +package scala.runtime + + + +abstract class AbstractFunction7[-T1, -T2, -T3, -T4, -T5, -T6, -T7, +R] extends Function7[T1, T2, T3, T4, T5, T6, T7, R] { + +} diff --git a/src/library/scala/runtime/AbstractFunction8.scala b/src/library/scala/runtime/AbstractFunction8.scala new file mode 100644 index 0000000000..c3a0f0f9e3 --- /dev/null +++ b/src/library/scala/runtime/AbstractFunction8.scala @@ -0,0 +1,19 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +\* */ + +// $Id$ + +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 + +package scala.runtime + + + +abstract class AbstractFunction8[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, +R] extends Function8[T1, T2, T3, T4, T5, T6, T7, T8, R] { + +} diff --git a/src/library/scala/runtime/AbstractFunction9.scala b/src/library/scala/runtime/AbstractFunction9.scala new file mode 100644 index 0000000000..7e0541e246 --- /dev/null +++ b/src/library/scala/runtime/AbstractFunction9.scala @@ -0,0 +1,19 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +\* */ + +// $Id$ + +// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 + +package scala.runtime + + + +abstract class AbstractFunction9[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, +R] extends Function9[T1, T2, T3, T4, T5, T6, T7, T8, T9, R] { + +} diff --git a/src/library/scala/util/Random.scala b/src/library/scala/util/Random.scala index ffa248d638..cd9d5eed0e 100644 --- a/src/library/scala/util/Random.scala +++ b/src/library/scala/util/Random.scala @@ -89,14 +89,12 @@ class Random(val self: java.util.Random) { List.fill(length)(safeChar()).mkString } - /** Returns a pseudorandomly generated String drawing upon - * only ASCII characters between 33 and 126. + /** Returns the next pseudorandom, uniformly distributed value + * from the ASCII range 33-126. */ - def nextASCIIString(length: Int) = { - val (min, max) = (33, 126) - def nextDigit = nextInt(max - min) + min - - new String(Array.fill(length)(nextDigit.toByte), "ASCII") + def nextPrintableChar(): Char = { + val (low, high) = (33, 126) + (self.nextInt(high - low) + low).toChar } def setSeed(seed: Long) { self.setSeed(seed) } @@ -111,6 +109,17 @@ object Random extends Random { import collection.mutable.ArrayBuffer import collection.generic.CanBuildFrom + /** Returns a Stream of pseudorandomly chosen alphanumeric characters, + * equally chosen from A-Z, a-z, and 0-9. + * + * @since 2.8 + */ + def alphanumeric: Stream[Char] = { + def isAlphaNum(c: Char) = (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || (c >= '0' && c <= '9') + + Stream continually nextPrintableChar filter isAlphaNum + } + /** Returns a new collection of the same type in a randomly chosen order. * * @param coll the TraversableOnce to shuffle diff --git a/src/partest/scala/tools/partest/Actions.scala b/src/partest/scala/tools/partest/Actions.scala index 15351db2a7..ce554959eb 100644 --- a/src/partest/scala/tools/partest/Actions.scala +++ b/src/partest/scala/tools/partest/Actions.scala @@ -49,7 +49,7 @@ trait Actions { protected def execAndLog(cmd: String): Boolean = { var proc: Process = null - val result = interruptMeIn(testTimeout) { + val result = interruptMeIn(cmd, testTimeout) { loggingResult { proc = Process.exec(toArgs(cmd), execEnv, execCwd.orNull, true) proc.slurp() @@ -123,6 +123,10 @@ trait Actions { self: TestEntity => def checkFile: File = withExtension("check").toFile + def isCheckPresent = checkFile.isFile || { + warnAndLog("A checkFile at '%s' is mandatory.\n" format checkFile.path) + false + } def normalizePaths(s: String) = { /** This accomodates slash/backslash issues by noticing when a given diff --git a/src/partest/scala/tools/partest/Alarms.scala b/src/partest/scala/tools/partest/Alarms.scala index 72afc232e5..f38d8d6268 100644 --- a/src/partest/scala/tools/partest/Alarms.scala +++ b/src/partest/scala/tools/partest/Alarms.scala @@ -11,13 +11,14 @@ import java.util.{ Timer, TimerTask } trait Alarms { self: Universe => - def interruptMeIn[T](seconds: Int)(body: => T): Option[T] = { + def interruptMeIn[T](debugMsg: String, seconds: Int)(body: => T): Option[T] = { val thisThread = currentThread val alarm = new SimpleAlarm(seconds * 1000) set thisThread.interrupt() + debug("interruptMeIn(%d) '%s'".format(seconds, debugMsg)) try { Some(body) } - catch { case _: InterruptedException => None } - finally { alarm.cancel() ; Thread.interrupted() } + catch { case _: InterruptedException => debug("Received interrupted exception.") ; None } + finally { debug("Cancelling interruptMeIn '%s'" format debugMsg) ; alarm.cancel() ; Thread.interrupted() } } case class AlarmerAction(secs: Int, action: () => Unit) extends Runnable { diff --git a/src/partest/scala/tools/partest/Categories.scala b/src/partest/scala/tools/partest/Categories.scala index 1d5a21153f..c7a080dafe 100644 --- a/src/partest/scala/tools/partest/Categories.scala +++ b/src/partest/scala/tools/partest/Categories.scala @@ -55,10 +55,11 @@ trait Categories { /** Standard actions. These can be overridden either on the * Category level or by individual tests. */ - def compile: TestStep = (_: TestEntity).compile() - def diff: TestStep = (_: TestEntity).diff() - def run: TestStep = (_: TestEntity).run() - def exec: TestStep = (_: TestEntity).exec() + def compile: TestStep = (_: TestEntity).compile() + def isCheckPresent: TestStep = (_: TestEntity).isCheckPresent + def diff: TestStep = (_: TestEntity).diff() + def run: TestStep = (_: TestEntity).run() + def exec: TestStep = (_: TestEntity).exec() /** Combinators. */ diff --git a/src/partest/scala/tools/partest/Compilable.scala b/src/partest/scala/tools/partest/Compilable.scala index d7365c1620..73dcdfce73 100644 --- a/src/partest/scala/tools/partest/Compilable.scala +++ b/src/partest/scala/tools/partest/Compilable.scala @@ -82,8 +82,12 @@ trait PartestCompilation { def partestCompile(files: List[String], printSummary: Boolean): Boolean = { try { new Run compile files } catch { - case FatalError(msg) => creporter.error(null, "fatal error: " + msg) + case FatalError(msg) => creporter.error(null, "fatal error: " + msg) case ae: AssertionError => creporter.error(null, ""+ae) + case te: TypeError => creporter.error(null, ""+te) + case ex => + creporter.error(null, ""+ex) + throw ex } if (printSummary) diff --git a/src/partest/scala/tools/partest/Entities.scala b/src/partest/scala/tools/partest/Entities.scala index 658cfdee12..2339250699 100644 --- a/src/partest/scala/tools/partest/Entities.scala +++ b/src/partest/scala/tools/partest/Entities.scala @@ -63,9 +63,7 @@ trait Entities { /** The memoized result of the test run. */ private lazy val process = { - def preCheck = precondition || returning(false)(_ => trace("precondition failed")) - def allSteps = testSequence.actions forall (f => f(this)) - val outcome = runWrappers(preCheck && allSteps) + val outcome = runWrappers(testSequence.actions forall (f => f(this))) // an empty outcome means we've been interrupted and are shutting down. outcome getOrElse false diff --git a/src/partest/scala/tools/partest/Partest.scala b/src/partest/scala/tools/partest/Partest.scala index d6adcc6053..7efac63354 100644 --- a/src/partest/scala/tools/partest/Partest.scala +++ b/src/partest/scala/tools/partest/Partest.scala @@ -58,7 +58,16 @@ class Partest(args: List[String]) extends { combinedFilter _ } - def launchTestSuite() = runSelection(selectedCategories, filter) + def launchTestSuite() = { + def onTimeout() = { + warning("Partest test run timed out after " + timeout + " seconds.\n") + System.exit(-1) + } + val alarm = new Alarmer(AlarmerAction(timeout, () => onTimeout())) + + try runSelection(selectedCategories, filter) + finally alarm.cancelAll() + } } object Partest { diff --git a/src/partest/scala/tools/partest/PartestSpec.scala b/src/partest/scala/tools/partest/PartestSpec.scala index 50c82fb783..a89c30a14d 100644 --- a/src/partest/scala/tools/partest/PartestSpec.scala +++ b/src/partest/scala/tools/partest/PartestSpec.scala @@ -70,7 +70,7 @@ trait PartestSpec extends Spec with Meta.StdOpts with Interpolation { val isAnsi = "ansi" / "print output in color" --? heading ("Other options:") - val timeout = "timeout" / "Overall timeout in seconds" defaultTo 14400 + val timeout = "timeout" / "Overall timeout in seconds" defaultTo 7200 val testWarning = "test-warning" / "Test warning in seconds" defaultTo 90 val testTimeout = "test-timeout" / "Test timeout in seconds" defaultTo 900 val isCleanup = "cleanup" / "delete all stale files and dirs before run" --? diff --git a/src/partest/scala/tools/partest/Universe.scala b/src/partest/scala/tools/partest/Universe.scala index 557d48fe54..942fc1a8be 100644 --- a/src/partest/scala/tools/partest/Universe.scala +++ b/src/partest/scala/tools/partest/Universe.scala @@ -75,11 +75,6 @@ abstract class Universe def onException(x: Throwable): Unit def testClasspath: String - /** Any preconditions before running the test. Test fails - * immediately if this returns false. - */ - def precondition: Boolean = true - /** Most tests will use the sequence defined by the category, * but the test can override and define a custom sequence. */ diff --git a/src/partest/scala/tools/partest/category/AllCategories.scala b/src/partest/scala/tools/partest/category/AllCategories.scala index ce6573123a..ecf0737cbe 100644 --- a/src/partest/scala/tools/partest/category/AllCategories.scala +++ b/src/partest/scala/tools/partest/category/AllCategories.scala @@ -14,7 +14,7 @@ trait AllCategories extends Compiler with Analysis with Runner { self: Universe => object Pos extends DirBasedCategory("pos") { lazy val testSequence: TestSequence = List(compile) } - object Neg extends DirBasedCategory("neg") { lazy val testSequence: TestSequence = List(not(compile), diff) } + object Neg extends DirBasedCategory("neg") { lazy val testSequence: TestSequence = List(isCheckPresent, not(compile), diff) } object Run extends DirBasedCategory("run") { lazy val testSequence: TestSequence = List(compile, run, diff) } object Jvm extends DirBasedCategory("jvm") { lazy val testSequence: TestSequence = List(compile, run, diff) } } diff --git a/src/partest/scala/tools/partest/category/Analysis.scala b/src/partest/scala/tools/partest/category/Analysis.scala index f2b43ebf6d..d05ee6bb21 100644 --- a/src/partest/scala/tools/partest/category/Analysis.scala +++ b/src/partest/scala/tools/partest/category/Analysis.scala @@ -32,7 +32,7 @@ trait Analysis { self: Universe => object Scalap extends DirBasedCategory("scalap") { - val testSequence: TestSequence = List(compile, run, diff) + val testSequence: TestSequence = List(isCheckPresent, compile, run, diff) override def denotesTest(p: Path) = p.isDirectory && (p.toDirectory.files exists (_.name == "result.test")) override def createTest(location: Path) = new ScalapTest(location) @@ -43,7 +43,6 @@ trait Analysis { override def classpathPaths = super.classpathPaths :+ build.scalap override def checkFile = File(location / "result.test") - override def precondition = checkFile.isFile && super.precondition private def runnerURLs = build.classpathPaths ::: classpathPaths map (_.toURL) private def createClassLoader = new PartestClassLoader(runnerURLs.toArray, this.getClass.getClassLoader) diff --git a/src/partest/scala/tools/partest/category/Compiler.scala b/src/partest/scala/tools/partest/category/Compiler.scala index 58fd8230e2..11112509cc 100644 --- a/src/partest/scala/tools/partest/category/Compiler.scala +++ b/src/partest/scala/tools/partest/category/Compiler.scala @@ -19,7 +19,7 @@ trait Compiler { * $SCALAC -d dir.obj -Xresident -sourcepath . "$@" */ object Res extends DirBasedCategory("res") { - lazy val testSequence: TestSequence = List(compile, diff) + lazy val testSequence: TestSequence = List(isCheckPresent, compile, diff) override def denotesTest(p: Path) = p.isDirectory && resFile(p).isFile override def createTest(location: Path) = new ResidentTest(location.toDirectory) @@ -32,7 +32,6 @@ trait Compiler { class ResidentTest(val location: Directory) extends TestEntity { val category = Res - override def precondition = checkFile.isFile && super.precondition override def sourcesDir = categoryDir override def acknowledges(p: Path) = @@ -62,7 +61,7 @@ trait Compiler { } object BuildManager extends DirBasedCategory("buildmanager") { - lazy val testSequence: TestSequence = List(compile, diff) + lazy val testSequence: TestSequence = List(isCheckPresent, compile, diff) override def denotesTest(p: Path) = p.isDirectory && testFile(p).isFile override def createTest(location: Path) = new BuildManagerTest(location.toDirectory) @@ -100,7 +99,6 @@ trait Compiler { override def sourcesDir = outDir override def sourceFiles = Path onlyFiles (location walkFilter (_ != changesDir) filter isJavaOrScala toList) override def checkFile = File(location / location.name addExtension "check") - override def precondition = checkFile.isFile && super.precondition override def acknowledges(p: Path) = super.acknowledges(p) || (p isSame testFile(location)) diff --git a/src/partest/scala/tools/partest/category/Runner.scala b/src/partest/scala/tools/partest/category/Runner.scala index a7713d7dbe..10bf5794a9 100644 --- a/src/partest/scala/tools/partest/category/Runner.scala +++ b/src/partest/scala/tools/partest/category/Runner.scala @@ -75,7 +75,7 @@ trait Runner { def allResults() = for ((prop, res) <- result) yield { - ScalacheckTest.this.trace("scalacheck result for %s: %s".format(prop, res)) + ScalacheckTest.this.trace("%s: %s".format(prop, res)) res.asInstanceOf[ScalacheckResult].passed } diff --git a/src/partest/scala/tools/partest/io/Logging.scala b/src/partest/scala/tools/partest/io/Logging.scala index 3667faaf3d..d244d58757 100644 --- a/src/partest/scala/tools/partest/io/Logging.scala +++ b/src/partest/scala/tools/partest/io/Logging.scala @@ -76,7 +76,7 @@ trait Logging { try returning(true)(_ => logFile writeAll body) catch { case x: ControlThrowable => throw x - case x: InterruptedException => normal(this + " received interrupt, failing.\n") ; false + case x: InterruptedException => debug(this + " received interrupt, failing.\n") ; false case x: Throwable => logException(x) } @@ -86,12 +86,14 @@ trait Logging { w.toString } - def warnAndLogException(msg: String, ex: Throwable) = { - val str = msg + throwableToString(ex) + def warnAndLog(str: String) = { warning(toStringTrunc(str, 800)) logWriter append str } + def warnAndLogException(msg: String, ex: Throwable) = + warnAndLog(msg + throwableToString(ex)) + def deleteLog(force: Boolean = false) = if (universe.isNoCleanup && !force) debug("Not cleaning up " + logFile) else logFile.deleteIfExists() diff --git a/src/swing/scala/swing/Table.scala b/src/swing/scala/swing/Table.scala index 8030c5043a..9370ea7eb1 100644 --- a/src/swing/scala/swing/Table.scala +++ b/src/swing/scala/swing/Table.scala @@ -124,7 +124,7 @@ class Table extends Component with Scrollable.Wrapper { // TODO: use IndexedSeq[_ <: IndexedSeq[Any]], see ticket #2005 def this(rowData: Array[Array[Any]], columnNames: Seq[_]) = { this() - peer.setModel(new AbstractTableModel { + model = new AbstractTableModel { override def getColumnName(column: Int) = columnNames(column).toString def getRowCount() = rowData.length def getColumnCount() = columnNames.length @@ -134,7 +134,7 @@ class Table extends Component with Scrollable.Wrapper { rowData(row)(col) = value fireTableCellUpdated(row, col) } - }) + } } def this(rows: Int, columns: Int) = { this() @@ -155,6 +155,7 @@ class Table extends Component with Scrollable.Wrapper { def model = peer.getModel() def model_=(x: TableModel) = { peer.setModel(x) + model.removeTableModelListener(modelListener) model.addTableModelListener(modelListener) } @@ -312,5 +313,4 @@ class Table extends Component with Scrollable.Wrapper { } ) } - model.addTableModelListener(modelListener) } diff --git a/src/swing/scala/swing/test/UIDemo.scala b/src/swing/scala/swing/test/UIDemo.scala index ce40fe2056..9207c82948 100644 --- a/src/swing/scala/swing/test/UIDemo.scala +++ b/src/swing/scala/swing/test/UIDemo.scala @@ -73,11 +73,7 @@ object UIDemo extends SimpleSwingApplication { reactLive = live.selected } } - contents += new Button("Center Frame") { - reactions += { - case ButtonClicked(_) => centerOnScreen() - } - } + contents += new Button(Action("Center Frame") { centerOnScreen() }) } pages += new Page("Buttons", buttons) pages += new Page("GridBag", GridBagDemo.ui) diff --git a/test/files/run/spec-matrix.check b/test/disabled/run/spec-matrix.check index 72e8ffc0db..72e8ffc0db 100644 --- a/test/files/run/spec-matrix.check +++ b/test/disabled/run/spec-matrix.check diff --git a/test/files/run/spec-matrix.scala b/test/disabled/run/spec-matrix.scala index 81e3eaf212..81e3eaf212 100644 --- a/test/files/run/spec-matrix.scala +++ b/test/disabled/run/spec-matrix.scala diff --git a/test/files/jvm/actor-exceptions.scala b/test/files/jvm/actor-exceptions.scala index 77bf05c048..384226d777 100644 --- a/test/files/jvm/actor-exceptions.scala +++ b/test/files/jvm/actor-exceptions.scala @@ -13,12 +13,17 @@ case class MyOtherException(text: String) extends Exception { object Master extends Actor { trapExit = true def act() { + try { link(Slave) Slave.start() for (i <- 0 until 10) Slave ! A react { case Exit(from, reason) => } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } @@ -28,6 +33,7 @@ object Slave extends Actor { case MyException(text) => } def act() { + try { var cnt = 0 loop { react { @@ -39,6 +45,10 @@ object Slave extends Actor { } } } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } diff --git a/test/files/jvm/actor-executor.scala b/test/files/jvm/actor-executor.scala index 435c666fff..b1f9caebdd 100644 --- a/test/files/jvm/actor-executor.scala +++ b/test/files/jvm/actor-executor.scala @@ -9,6 +9,7 @@ trait AdaptedActor extends Actor { object One extends AdaptedActor { def act() { + try { Two.start() var i = 0 loopWhile (i < 10000) { @@ -22,11 +23,16 @@ object One extends AdaptedActor { Test.executor.shutdown() } } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } object Two extends AdaptedActor { def act() { + try { var i = 0 loopWhile (i < 10000) { i += 1 @@ -37,6 +43,10 @@ object Two extends AdaptedActor { One ! 'MsgForOne } } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } diff --git a/test/files/jvm/actor-executor2.scala b/test/files/jvm/actor-executor2.scala index 9e99e167aa..da64a7fc43 100644 --- a/test/files/jvm/actor-executor2.scala +++ b/test/files/jvm/actor-executor2.scala @@ -4,6 +4,7 @@ import java.util.concurrent.Executors object One extends AdaptedActor { def act() { + try { Two.start() var i = 0 loopWhile (i < Test.NUM_MSG) { @@ -15,11 +16,16 @@ object One extends AdaptedActor { println("One: OK") } } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } object Two extends AdaptedActor { def act() { + try { var i = 0 loopWhile (i < Test.NUM_MSG) { i += 1 @@ -30,6 +36,10 @@ object Two extends AdaptedActor { One ! 'MsgForOne } } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } @@ -54,6 +64,7 @@ object Test { } def main(args: Array[String]) { + try { self.trapExit = true link(One) One.start() @@ -63,5 +74,9 @@ object Test { println("One exited") Test.executor.shutdown() } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } diff --git a/test/files/jvm/actor-executor3.scala b/test/files/jvm/actor-executor3.scala index bf060b8ac5..4fde2c6c5f 100644 --- a/test/files/jvm/actor-executor3.scala +++ b/test/files/jvm/actor-executor3.scala @@ -4,6 +4,7 @@ import java.util.concurrent.Executors object One extends AdaptedActor { def act() { + try { Two.start() var i = 0 loopWhile (i < Test.NUM_MSG) { @@ -15,11 +16,16 @@ object One extends AdaptedActor { println("One: OK") } } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } object Two extends AdaptedActor { def act() { + try { var i = 0 loopWhile (i < Test.NUM_MSG) { i += 1 @@ -30,6 +36,10 @@ object Two extends AdaptedActor { One ! 'MsgForOne } } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } diff --git a/test/files/jvm/actor-link-getstate.scala b/test/files/jvm/actor-link-getstate.scala index ec01757883..c4c33ef752 100644 --- a/test/files/jvm/actor-link-getstate.scala +++ b/test/files/jvm/actor-link-getstate.scala @@ -7,6 +7,7 @@ case class MyException(text: String) extends Exception(text) { object Slave extends Actor { def act() { + try { loop { react { case 'doWork => @@ -14,18 +15,27 @@ object Slave extends Actor { reply('done) } } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } object Master extends Actor { override def toString = "Master" def act() { + try { link(Slave) Slave ! 'doWork react { case 'done => throw new MyException("Master crashed") } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } @@ -33,6 +43,7 @@ object Test { def main(args: Array[String]) { actor { + try { self.trapExit = true link(Slave) Slave.start() @@ -41,6 +52,10 @@ object Test { case Exit(from, reason) if (from == Slave) => Console.err.println(Slave.getState) } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } diff --git a/test/files/jvm/actor-looping.scala b/test/files/jvm/actor-looping.scala index 9599adbb2c..475d4754ce 100644 --- a/test/files/jvm/actor-looping.scala +++ b/test/files/jvm/actor-looping.scala @@ -6,6 +6,7 @@ object Test { def main(args: Array[String]) { val a = actor { + try { var cnt = 0 loop { react { @@ -20,6 +21,10 @@ object Test { } } } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } for (i <- 0 until 10) a ! A diff --git a/test/files/jvm/actor-normal-exit.scala b/test/files/jvm/actor-normal-exit.scala index 40dc7b7da4..20863d5bb0 100644 --- a/test/files/jvm/actor-normal-exit.scala +++ b/test/files/jvm/actor-normal-exit.scala @@ -5,18 +5,28 @@ object Test { object Master extends Actor { trapExit = true def act() { + try { Slave.start() react { case Exit(from, reason) => println("slave exited for reason " + reason) } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } object Slave extends Actor { def act() { + try { link(Master) println("Done") + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } diff --git a/test/files/jvm/actor-termination.scala b/test/files/jvm/actor-termination.scala index 19dfaf8e17..d8e44a2797 100644 --- a/test/files/jvm/actor-termination.scala +++ b/test/files/jvm/actor-termination.scala @@ -5,9 +5,14 @@ import scala.actors.Actor object Test { def main(args: Array[String]) { Actor.actor { + try { println("I'm going to make you wait.") Thread.sleep(5000) println("Ok, I'm done.") + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } } diff --git a/test/files/jvm/actor-uncaught-exception.scala b/test/files/jvm/actor-uncaught-exception.scala index 9f64be26e1..9dbd36dd82 100644 --- a/test/files/jvm/actor-uncaught-exception.scala +++ b/test/files/jvm/actor-uncaught-exception.scala @@ -8,20 +8,32 @@ object Test { case object StartError extends Actor { def act() { + try { throw new MyException("I don't want to run!") + } catch { + case e: Throwable if (!e.isInstanceOf[scala.util.control.ControlThrowable] && + !e.isInstanceOf[MyException]) => + e.printStackTrace() + } } } case object MessageError extends Actor { def act() { + try { react { case _ => throw new MyException("No message for me!") } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } case object Supervisor extends Actor { def act() { + try { trapExit = true link(StartError) link(MessageError) @@ -37,6 +49,10 @@ object Test { exit() } } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } diff --git a/test/files/jvm/actor-uncaught-exception2.scala b/test/files/jvm/actor-uncaught-exception2.scala index 973cfb370a..626ce5da92 100644 --- a/test/files/jvm/actor-uncaught-exception2.scala +++ b/test/files/jvm/actor-uncaught-exception2.scala @@ -8,20 +8,32 @@ object Test { case object StartError extends Actor { def act() { + try { throw new MyException("I don't want to run!") + } catch { + case e: Throwable if (!e.isInstanceOf[scala.util.control.ControlThrowable] && + !e.isInstanceOf[MyException]) => + e.printStackTrace() + } } } case object MessageError extends Actor { def act() { + try { react { case _ => throw new MyException("No message for me!") } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } case object Supervisor extends Actor { def act() { + try { trapExit = true link(StartError) link(MessageError) @@ -38,6 +50,10 @@ object Test { exit() } } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } diff --git a/test/files/jvm/daemon-actor-termination.scala b/test/files/jvm/daemon-actor-termination.scala index 8e64749b1c..6ddfc3139d 100644 --- a/test/files/jvm/daemon-actor-termination.scala +++ b/test/files/jvm/daemon-actor-termination.scala @@ -5,6 +5,7 @@ object Test { class MyDaemon extends DaemonActor { def act() { + try { react { case 'hello => println("MSG1") @@ -14,6 +15,10 @@ object Test { println("done") } } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } @@ -21,8 +26,13 @@ object Test { val daemon = new MyDaemon daemon.start() Actor.actor { + try { daemon !? 'hello println("MSG2") + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } } diff --git a/test/files/jvm/future-alarm.scala b/test/files/jvm/future-alarm.scala index 0dda492741..8ee902b5ea 100644 --- a/test/files/jvm/future-alarm.scala +++ b/test/files/jvm/future-alarm.scala @@ -2,6 +2,7 @@ import scala.actors.Futures object Test { def main(args: Array[String]) { + try { for (i <- 1 to 100000) { Futures.alarm(0) if (i % 10000 == 0) @@ -12,5 +13,9 @@ object Test { ft() println("OK") } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } diff --git a/test/files/jvm/future-awaitall-zero.scala b/test/files/jvm/future-awaitall-zero.scala index 125670d049..cd6ba172cc 100644 --- a/test/files/jvm/future-awaitall-zero.scala +++ b/test/files/jvm/future-awaitall-zero.scala @@ -3,6 +3,7 @@ import scala.actors.Actor._ object Test { def main(args: Array[String]) { + try { val ft1 = future { reactWithin(10000) { case _ => println("FAIL") } } @@ -13,5 +14,9 @@ object Test { val res = awaitAll(0, ft1, ft2) println("OK") + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } diff --git a/test/files/jvm/future-termination.scala b/test/files/jvm/future-termination.scala index c448a88aa7..688de60c3b 100644 --- a/test/files/jvm/future-termination.scala +++ b/test/files/jvm/future-termination.scala @@ -4,11 +4,16 @@ import scala.actors.Futures object Test { def main(args: Array[String]) { + try { val meaningOfLife = Futures.future { Thread.sleep(5000) // pretend this is a harder problem than it is println("I have the answer!") 42 } println("I can't wait that long, bye.") + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } diff --git a/test/files/jvm/reactor-exceptionOnSend.scala b/test/files/jvm/reactor-exceptionOnSend.scala index c89aab334b..3d9a042131 100644 --- a/test/files/jvm/reactor-exceptionOnSend.scala +++ b/test/files/jvm/reactor-exceptionOnSend.scala @@ -19,6 +19,7 @@ object A extends Reactor[Any] { var state = 0 def act() { + try { loop { react { case 'hello if guard() => @@ -26,14 +27,24 @@ object A extends Reactor[Any] { exit() } } + } catch { + case e: Throwable if (!e.isInstanceOf[scala.util.control.ControlThrowable] && + !e.isInstanceOf[MyException]) => + e.printStackTrace() + } } } object B extends Reactor[Any] { def act() { + try { A.start() A ! 'hello A ! 'hello + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } diff --git a/test/files/jvm/reactor-producer-consumer.scala b/test/files/jvm/reactor-producer-consumer.scala index 0d33043fc6..8a6b17c3ad 100644 --- a/test/files/jvm/reactor-producer-consumer.scala +++ b/test/files/jvm/reactor-producer-consumer.scala @@ -7,6 +7,7 @@ object Test { class UnboundedBuffer extends Reactor[Any] { def act() { + try { react { case Stop() => case Get(from) => @@ -17,11 +18,16 @@ object Test { act() } } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } class Producer(buf: UnboundedBuffer, n: Int, delay: Long, parent: Reactor[Any]) extends Reactor[Any] { def act() { + try { var i = 0 while (i < n) { i += 1 @@ -29,6 +35,10 @@ object Test { buf ! Put(42) } parent ! Stop() + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } @@ -36,6 +46,7 @@ object Test { val step = n / 10 var i = 0 def act() { + try { if (i < n) { i += 1 if (delay > 0) Thread.sleep(delay) @@ -49,12 +60,17 @@ object Test { } else { parent ! Stop() } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } def main(args: Array[String]) { val parent = new Reactor[Any] { def act() { + try { val buffer = new UnboundedBuffer buffer.start() val producer = new Producer(buffer, 10000, 0, this) @@ -68,6 +84,10 @@ object Test { buffer ! Stop() } } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } parent.start() diff --git a/test/files/jvm/reactor.scala b/test/files/jvm/reactor.scala index 12d5c7c221..dbc9a6bdda 100644 --- a/test/files/jvm/reactor.scala +++ b/test/files/jvm/reactor.scala @@ -21,6 +21,7 @@ object Test { class PingActor(count: Int, pong: Reactor[Any]) extends Reactor[Any] { def act() { + try { var pingsLeft = count - 1 pong ! Ping(this) loop { @@ -38,11 +39,16 @@ class PingActor(count: Int, pong: Reactor[Any]) extends Reactor[Any] { } } } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } class PongActor extends Reactor[Any] { def act() { + try { var pongCount = 0 loop { react { @@ -56,5 +62,9 @@ class PongActor extends Reactor[Any] { exit() } } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } diff --git a/test/files/jvm/replyablereactor.scala b/test/files/jvm/replyablereactor.scala index 896a0bf440..e1fabc98da 100644 --- a/test/files/jvm/replyablereactor.scala +++ b/test/files/jvm/replyablereactor.scala @@ -2,6 +2,7 @@ import scala.actors.ReplyReactor class MyActor extends ReplyReactor { def act() { + try { loop { react { case 'hello => @@ -10,6 +11,10 @@ class MyActor extends ReplyReactor { exit() } } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } @@ -20,6 +25,7 @@ object Test { val b = new ReplyReactor { def act() { + try { react { case r: MyActor => var i = 0 @@ -37,6 +43,10 @@ object Test { } } } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } b.start() diff --git a/test/files/jvm/replyablereactor2.scala b/test/files/jvm/replyablereactor2.scala index 57b7cfe201..da9e0e269e 100644 --- a/test/files/jvm/replyablereactor2.scala +++ b/test/files/jvm/replyablereactor2.scala @@ -3,6 +3,7 @@ import scala.actors.Actor._ class MyActor extends ReplyReactor { def act() { + try { loop { react { case 'hello => @@ -11,6 +12,10 @@ class MyActor extends ReplyReactor { exit() } } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } @@ -21,6 +26,7 @@ object Test { val b = new Reactor[Any] { def act() { + try { react { case r: MyActor => var i = 0 @@ -36,6 +42,10 @@ object Test { } } } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } b.start() diff --git a/test/files/jvm/replyablereactor3.scala b/test/files/jvm/replyablereactor3.scala index b33db811e2..2c26b8a176 100644 --- a/test/files/jvm/replyablereactor3.scala +++ b/test/files/jvm/replyablereactor3.scala @@ -3,6 +3,7 @@ import scala.actors.Actor._ class MyActor extends ReplyReactor { def act() { + try { loop { react { case 'hello => @@ -11,6 +12,10 @@ class MyActor extends ReplyReactor { exit() } } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } @@ -21,6 +26,7 @@ object Test { val b = new Reactor[Any] { def act() { + try { react { case r: MyActor => var i = 0 @@ -35,6 +41,10 @@ object Test { } } } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } b.start() diff --git a/test/files/jvm/replyablereactor4.scala b/test/files/jvm/replyablereactor4.scala index dc24f5e88d..7679a5adf8 100644 --- a/test/files/jvm/replyablereactor4.scala +++ b/test/files/jvm/replyablereactor4.scala @@ -3,6 +3,7 @@ import scala.actors.Actor._ class MyActor extends ReplyReactor { def act() { + try { loop { react { case 'hello => @@ -11,6 +12,10 @@ class MyActor extends ReplyReactor { exit() } } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } @@ -21,6 +26,7 @@ object Test { val b = new Reactor[Any] { def act() { + try { react { case r: MyActor => var i = 0 @@ -35,6 +41,10 @@ object Test { } } } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } b.start() diff --git a/test/files/jvm/replyreactor-react-sender.scala b/test/files/jvm/replyreactor-react-sender.scala index 1127dfd0a5..c9884295f6 100644 --- a/test/files/jvm/replyreactor-react-sender.scala +++ b/test/files/jvm/replyreactor-react-sender.scala @@ -10,6 +10,7 @@ object Test { val a = new ReplyReactor { def act() { + try { var i = 0 loopWhile (i < NUM) { i += 1 @@ -20,12 +21,17 @@ object Test { } andThen { b ! 'ok } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } a.start() b = new ReplyReactor { def act() { + try { for (_ <- 0 until NUM) a ! 'hello react { @@ -33,6 +39,10 @@ object Test { case 'ok => println("OK") case other => println(other) } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } b.start() diff --git a/test/files/jvm/replyreactor.scala b/test/files/jvm/replyreactor.scala index fb915cf3f9..0cecf29ec7 100644 --- a/test/files/jvm/replyreactor.scala +++ b/test/files/jvm/replyreactor.scala @@ -4,16 +4,22 @@ object Test { def main(args: Array[String]) { val a = new ReplyReactor { def act() { + try { react { case 'hello => sender ! 'hello } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } a.start() val b = new ReplyReactor { def act() { + try { react { case r: ReplyReactor => r ! 'hello @@ -22,6 +28,10 @@ object Test { println(any) } } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } b.start() diff --git a/test/files/jvm/scheduler-adapter.scala b/test/files/jvm/scheduler-adapter.scala index 79c901f91e..d6a8a446a0 100644 --- a/test/files/jvm/scheduler-adapter.scala +++ b/test/files/jvm/scheduler-adapter.scala @@ -7,22 +7,32 @@ trait AdaptedActor extends Actor { object One extends AdaptedActor { def act() { + try { Two.start() Two ! 'MsgForTwo react { case 'MsgForOne => println("One: received msg") } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } object Two extends AdaptedActor { def act() { + try { react { case 'MsgForTwo => println("Two: received msg") One ! 'MsgForOne } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } diff --git a/test/files/jvm/t1449.scala b/test/files/jvm/t1449.scala index 08c153afc0..3822cf7dd5 100644 --- a/test/files/jvm/t1449.scala +++ b/test/files/jvm/t1449.scala @@ -4,12 +4,22 @@ import scala.actors.Futures._ object Test { def main(args: Array[String]) { val a = actor { + try { react { case ft: Future[a] => println(ft()) } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } + try { val ft = future { 42 } a ! ft + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } diff --git a/test/files/jvm/t1600.scala b/test/files/jvm/t1600.scala index 1cdcee8547..79391b7e76 100644 --- a/test/files/jvm/t1600.scala +++ b/test/files/jvm/t1600.scala @@ -12,11 +12,11 @@ object Test { def elements = entries.map(_._1) val maps = Seq[Map[Foo, Int]](new mutable.HashMap, new mutable.LinkedHashMap, - new immutable.HashMap).map(_ ++ entries) + immutable.HashMap.empty).map(_ ++ entries) test[Map[Foo, Int]](maps, entries.size, assertMap _) val sets = Seq[Set[Foo]](new mutable.HashSet, new mutable.LinkedHashSet, - new immutable.HashSet).map(_ ++ elements) + immutable.HashSet.empty).map(_ ++ elements) test[Set[Foo]](sets, entries.size, assertSet _) } } @@ -31,7 +31,7 @@ object Test { assertFunction(deserializedCollection, expectedSize) assert(deserializedCollection.getClass == collection.getClass, - "collection class should remain the same after deserialization") + "collection class should remain the same after deserialization ("+deserializedCollection.getClass+" != "+collection.getClass+")") Foo.hashCodeModifier = 0 } } diff --git a/test/files/jvm/t1948.scala b/test/files/jvm/t1948.scala index fc1fedac1f..084c956398 100644 --- a/test/files/jvm/t1948.scala +++ b/test/files/jvm/t1948.scala @@ -4,9 +4,21 @@ import scala.actors.Actor._ object Test { def main (args: Array[String]) { - val actors = (1 to 1000).toList map { x => actor { loop { react { - case x: Array[Int] => reply ("OK"); exit }}}} + val actors = (1 to 1000).toList map { x => actor { + try { + loop { react { + case x: Array[Int] => reply ("OK"); exit }} + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } + } } + try { actors foreach { x => x !? new Array[Int] (1000000) } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } diff --git a/test/files/jvm/t2359.scala b/test/files/jvm/t2359.scala index 1b4d5e0a27..69c69d7b3b 100644 --- a/test/files/jvm/t2359.scala +++ b/test/files/jvm/t2359.scala @@ -3,19 +3,44 @@ import scala.actors.Futures._ object Test { def main(args: Array[String]) { val x = future { + try { System.out.println(1) future { + try { System.out.println(2) future { + try { System.out.println(3) future { + try { System.out.println(4) future { + try { System.out.println(5) + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } }() + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } }() + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } }() + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } }() + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } }() } } diff --git a/test/files/jvm/t2530.scala b/test/files/jvm/t2530.scala index 642fb05a5d..c2925a92d1 100644 --- a/test/files/jvm/t2530.scala +++ b/test/files/jvm/t2530.scala @@ -50,6 +50,7 @@ case class Matrix(numRows: Int, numCols: Int, values: Array[Double]) { val rows = for (j <- 0 until m) yield { Futures.future { + try { val b_j = new Array[Double](n) var k = 0 while (k < n) { // sadly, while loops are still faster than for loops @@ -69,13 +70,22 @@ case class Matrix(numRows: Int, numCols: Int, values: Array[Double]) { } //printf("future %d of %d completed.%n", j, m) j + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } // rows.foreach { x=> x() } // This appears to force sequential execution, so use: // timeout is 10 years; see http://lampsvn.epfl.ch/trac/scala/ticket/2515 - - val done = Futures.awaitAll(10*365*24*60*60*1000, rows.toArray : _*) // list to array, as varargs. + val done: List[Option[Any]] = try { + Futures.awaitAll(10*365*24*60*60*1000, rows.toArray : _*) // list to array, as varargs. + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + List() + } if (done.contains(None)) None diff --git a/test/files/jvm/t3102.scala b/test/files/jvm/t3102.scala index ea3e720eca..fbcf2e60e6 100644 --- a/test/files/jvm/t3102.scala +++ b/test/files/jvm/t3102.scala @@ -4,13 +4,19 @@ import Actor._ object Test { def main(args: Array[String]) { val a = actor { + try { react { case 'hello => reply(42) } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } val b = actor { + try { self.trapExit = true val ft = a !! 'hello println(ft()) @@ -21,6 +27,10 @@ object Test { case any => println(any) } + } catch { + case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] => + e.printStackTrace() + } } } } diff --git a/test/disabled/run/Course-2002-10-msil.check b/test/files/run/Course-2002-10-msil.check index bbd9414370..bbd9414370 100644 --- a/test/disabled/run/Course-2002-10-msil.check +++ b/test/files/run/Course-2002-10-msil.check diff --git a/test/disabled/run/Course-2002-10.check b/test/files/run/Course-2002-10.check index 207b671f05..207b671f05 100644 --- a/test/disabled/run/Course-2002-10.check +++ b/test/files/run/Course-2002-10.check diff --git a/test/disabled/run/Course-2002-10.scala b/test/files/run/Course-2002-10.scala index e978bc8258..e978bc8258 100644 --- a/test/disabled/run/Course-2002-10.scala +++ b/test/files/run/Course-2002-10.scala diff --git a/test/disabled/run/Course-2002-13.check b/test/files/run/Course-2002-13.check index 7664f70576..7664f70576 100644 --- a/test/disabled/run/Course-2002-13.check +++ b/test/files/run/Course-2002-13.check diff --git a/test/disabled/run/Course-2002-13.scala b/test/files/run/Course-2002-13.scala index c016d41a90..c016d41a90 100644 --- a/test/disabled/run/Course-2002-13.scala +++ b/test/files/run/Course-2002-13.scala diff --git a/test/files/run/json.scala b/test/files/run/json.scala.disabled index ec0bad7ebe..2e7ee4aa4d 100644 --- a/test/files/run/json.scala +++ b/test/files/run/json.scala.disabled @@ -8,7 +8,7 @@ object Test extends Application { printJSON("{\"name\": \"va1ue\"}") // ticket #136 printJSON("{\"name\": { \"name1\": \"va1ue1\", \"name2\": \"va1ue2\" } }") printJSON("{\"name\": \"\\u0022\"}") - printJSON("{\"age\": 0}") + printJSON("{\"age\": 0}") println // from http://en.wikipedia.org/wiki/JSON @@ -63,7 +63,7 @@ object Test extends Application { // from http://json.org/example.html val sample3 = """ {"web-app": { - "servlet": [ + "servlet": [ { "servlet-name": "cofaxCDS", "servlet-class": "org.cofax.cds.CDSServlet", @@ -119,7 +119,7 @@ object Test extends Application { { "servlet-name": "cofaxAdmin", "servlet-class": "org.cofax.cds.AdminServlet"}, - + { "servlet-name": "fileServlet", "servlet-class": "org.cofax.cds.FileServlet"}, @@ -146,7 +146,7 @@ object Test extends Application { "cofaxAdmin": "/admin/*", "fileServlet": "/static/*", "cofaxTools": "/tools/*"}, - + "taglib": { "taglib-uri": "cofax.tld", "taglib-location": "/WEB-INF/tlds/cofax.tld"} diff --git a/test/files/run/numbereq.scala b/test/files/run/numbereq.scala new file mode 100644 index 0000000000..52f32cc52a --- /dev/null +++ b/test/files/run/numbereq.scala @@ -0,0 +1,41 @@ +object Test { + def mkNumbers(x: Int): List[AnyRef] = { + val base = List( + BigDecimal(x), + BigInt(x), + new java.lang.Double(x.toDouble), + new java.lang.Float(x.toFloat), + new java.lang.Long(x.toLong), + new java.lang.Integer(x) + ) + val extras = List( + if (x >= Short.MinValue && x <= Short.MaxValue) List(new java.lang.Short(x.toShort)) else Nil, + if (x >= Byte.MinValue && x <= Byte.MaxValue) List(new java.lang.Byte(x.toByte)) else Nil, + if (x >= Char.MinValue && x <= Char.MaxValue) List(new java.lang.Character(x.toChar)) else Nil + ).flatten + + base ::: extras + } + + + def main(args: Array[String]): Unit = { + val ints = (0 to 15).toList map (Short.MinValue >> _) + val ints2 = ints map (x => -x) + val ints3 = ints map (_ + 1) + val ints4 = ints2 map (_ - 1) + + val setneg1 = ints map mkNumbers + val setneg2 = ints3 map mkNumbers + val setpos1 = ints2 map mkNumbers + val setpos2 = ints4 map mkNumbers + val zero = mkNumbers(0) + + val sets = setneg1 ++ setneg2 ++ List(zero) ++ setpos1 ++ setpos2 + + for (set <- sets ; x <- set ; y <- set) { + println("'%s' == '%s' (%s == %s) (%s == %s)".format(x, y, x.hashCode, y.hashCode, x.##, y.##)) + assert(x == y, "%s/%s != %s/%s".format(x, x.getClass, y, y.getClass)) + assert(x.## == y.##, "%s != %s".format(x.getClass, y.getClass)) + } + } +}
\ No newline at end of file diff --git a/test/disabled/run/streamWithFilter.check b/test/files/run/streamWithFilter.check index 6b0e91a147..6b0e91a147 100644 --- a/test/disabled/run/streamWithFilter.check +++ b/test/files/run/streamWithFilter.check diff --git a/test/disabled/run/streamWithFilter.scala b/test/files/run/streamWithFilter.scala index cb919d4f55..cb919d4f55 100644 --- a/test/disabled/run/streamWithFilter.scala +++ b/test/files/run/streamWithFilter.scala diff --git a/test/files/run/t3241.check b/test/files/run/t3241.check new file mode 100644 index 0000000000..348ebd9491 --- /dev/null +++ b/test/files/run/t3241.check @@ -0,0 +1 @@ +done
\ No newline at end of file diff --git a/test/files/run/t3241.scala b/test/files/run/t3241.scala new file mode 100644 index 0000000000..40097a046f --- /dev/null +++ b/test/files/run/t3241.scala @@ -0,0 +1,23 @@ +object Test { + + def main(args : Array[String]) : Unit = { + recurse(Map(1->1, 2->2, 3->3, 4->4, 5->5, 6->6, 7->7)) + recurse(Set(1,2,3,4,5,6,7)) + println("done") + } + + def recurse(map: collection.immutable.Map[Int, Int]): Unit = { + if (!map.isEmpty) { + val x = map.keys.head + recurse(map - x) + } + } + + def recurse(set: collection.immutable.Set[Int]): Unit = { + if (!set.isEmpty) { + val x = set.toStream.head + recurse(set - x) + } + } + +} diff --git a/test/files/scalacheck/redblack.scala b/test/files/scalacheck/redblack.scala new file mode 100644 index 0000000000..0334c1218d --- /dev/null +++ b/test/files/scalacheck/redblack.scala @@ -0,0 +1,157 @@ +import org.scalacheck._ +import Prop._ +import Gen._ + +/* +Properties of a Red & Black Tree: + +A node is either red or black. +The root is black. (This rule is used in some definitions and not others. Since the +root can always be changed from red to black but not necessarily vice-versa this +rule has little effect on analysis.) +All leaves are black. +Both children of every red node are black. +Every simple path from a given node to any of its descendant leaves contains the same number of black nodes. +*/ + +abstract class RedBlackTest extends Properties("RedBlack") { + object RedBlackTest extends scala.collection.immutable.RedBlack[Int] { + def isSmaller(x: Int, y: Int) = x < y + } + + import RedBlackTest._ + + def rootIsBlack[A](t: Tree[A]) = t.isBlack + + def areAllLeavesBlack[A](t: Tree[A]): Boolean = t match { + case Empty => t.isBlack + case ne: NonEmpty[_] => List(ne.left, ne.right) forall areAllLeavesBlack + } + + def areRedNodeChildrenBlack[A](t: Tree[A]): Boolean = t match { + case RedTree(_, _, left, right) => List(left, right) forall (t => t.isBlack && areRedNodeChildrenBlack(t)) + case BlackTree(_, _, left, right) => List(left, right) forall areRedNodeChildrenBlack + case Empty => true + } + + def blackNodesToLeaves[A](t: Tree[A]): List[Int] = t match { + case Empty => List(1) + case BlackTree(_, _, left, right) => List(left, right) flatMap blackNodesToLeaves map (_ + 1) + case RedTree(_, _, left, right) => List(left, right) flatMap blackNodesToLeaves + } + + def areBlackNodesToLeavesEqual[A](t: Tree[A]): Boolean = t match { + case Empty => true + case ne: NonEmpty[_] => + ( + blackNodesToLeaves(ne).removeDuplicates.size == 1 + && areBlackNodesToLeavesEqual(ne.left) + && areBlackNodesToLeavesEqual(ne.right) + ) + } + + def orderIsPreserved[A](t: Tree[A]): Boolean = t match { + case Empty => true + case ne: NonEmpty[_] => + ( + (ne.left.iterator map (_._1) forall (isSmaller(_, ne.key))) + && (ne.right.iterator map (_._1) forall (isSmaller(ne.key, _))) + && (List(ne.left, ne.right) forall orderIsPreserved) + ) + } + + def setup(l: List[Int], invariant: Tree[Unit] => Boolean): (Boolean, Tree[Unit]) + + def listNoRepetitions(size: Int) = for { + s <- Gen.choose(1, size) + l <- Gen.listOfN(size, Gen.choose(0, Int.MaxValue)) suchThat (l => l.size == l.removeDuplicates.size) + } yield l + def listFewRepetitions(size: Int) = for { + s <- Gen.choose(1, size) + l <- Gen.listOfN(s, Gen.choose(0, size * 4)) suchThat (l => l.size != l.removeDuplicates.size) + } yield l + def listManyRepetitions(size: Int) = for { + s <- Gen.choose(1, size) + l <- Gen.listOfN(s, Gen.choose(0, size)) suchThat (l => l.size != l.removeDuplicates.size) + } yield l + def listEvenRepetitions(size: Int) = listFewRepetitions(size) map (x => + scala.util.Random.shuffle(x zip x flatMap { case (a, b) => List(a, b) }) + ) + + // Arbitrarily weighted list distribution types + val seqType: Gen[Int => Gen[List[Int]]] + + def myGen(sized: Int) = for { + size <- Gen.choose(0, sized) + seq <- seqType + list <- seq(size) + } yield list + + property("root is black") = forAll(myGen(10)) { l => + setup(l, rootIsBlack)._1 :| setup(l, rootIsBlack)._2.toString + } + property("all leaves are black") = forAll(myGen(50)) { l => + setup(l, areAllLeavesBlack)._1 :| setup(l, areAllLeavesBlack)._2.toString + } + property("children of red nodes are black") = forAll(myGen(50)) { l => + setup(l, areRedNodeChildrenBlack)._1 :| setup(l, areRedNodeChildrenBlack)._2.toString + } + property("Every path from a node to its descendant leaves contains the same number of black nodes") = forAll(myGen(50)) { l => + setup(l, areBlackNodesToLeavesEqual)._1 :| setup(l, areBlackNodesToLeavesEqual)._2.toString + } + property("Ordering of keys is preserved") = forAll(myGen(50)) { l => + setup(l, orderIsPreserved)._1 :| setup(l, orderIsPreserved)._2.toString + } +} + +object TestInsertion extends RedBlackTest { + import RedBlackTest._ + override val seqType = Gen.frequency( + (1, listNoRepetitions _), + (1, listManyRepetitions _) + ) + + property("update adds elements") = forAll(myGen(50)) { l => + val tree = l.foldLeft(Empty: Tree[Unit])((acc, n) => acc update (n, ())) + forAll(Gen.pick(1, l)) ( n => !(tree lookup n.head isEmpty) :| "Tree: "+tree+" N: "+n.head ) + } + + override def setup(l: List[Int], invariant: Tree[Unit] => Boolean) = l.foldLeft((true, Empty: Tree[Unit])) { + case ((true, acc), n) => + val newRoot = acc update (n, ()) + (invariant(newRoot), newRoot) + case (failed, _) => failed + } +} + +object TestDeletion extends RedBlackTest { + import RedBlackTest._ + override val seqType = Gen.frequency( + (2, listFewRepetitions _), + (3, listManyRepetitions _), + (1, listEvenRepetitions _) + ) + + property("delete removes elements") = forAll(myGen(50)) { l => + val tree = l.foldLeft(Empty: Tree[Unit])((acc, n) => acc update (n, ())) + forAll(Gen.choose(1, l.size)) { numberOfElementsToRemove => + forAll(Gen.pick(numberOfElementsToRemove, l)) { elementsToRemove => + val newTree = elementsToRemove.foldLeft(tree)((acc, n) => acc delete n) + (elementsToRemove forall (n => newTree lookup n isEmpty)) :| "Tree: "+tree+"New Tree: "+newTree+" Elements to Remove: "+elementsToRemove + } + } + } + + override def setup(l: List[Int], invariant: Tree[Unit] => Boolean) = l.foldLeft((true, Empty: Tree[Unit])) { + case ((true, acc), n) => + val newRoot = if (acc lookup n isEmpty) acc update (n, ()) else acc delete n + (invariant(newRoot), newRoot) + case (failed, _) => failed + } +} + +object Test extends Properties("RedBlack") { + include(TestInsertion) + include(TestDeletion) +} + diff --git a/test/partest-tests/jvm/actor-receivewithin.check b/test/partest-tests/jvm/actor-receivewithin.check new file mode 100644 index 0000000000..a6a3e88c61 --- /dev/null +++ b/test/partest-tests/jvm/actor-receivewithin.check @@ -0,0 +1,16 @@ +'msg +'msg +'msg +'msg +'msg +TIMEOUT +TIMEOUT +TIMEOUT +TIMEOUT +TIMEOUT +'msg2 +'msg2 +'msg2 +'msg2 +'msg2 +TIMEOUT diff --git a/test/partest-tests/jvm/actor-receivewithin.scala b/test/partest-tests/jvm/actor-receivewithin.scala new file mode 100644 index 0000000000..a5c87c2722 --- /dev/null +++ b/test/partest-tests/jvm/actor-receivewithin.scala @@ -0,0 +1,69 @@ +import scala.actors.{Actor, TIMEOUT} + +object A extends Actor { + def act() { + receive { + case 'done => + var cnt = 0 + while (cnt < 500) { + cnt += 1 + receiveWithin (0) { + case 'msg => + if (cnt % 100 == 0) + println("'msg") + case TIMEOUT => + // should not happen + println("FAIL1") + } + } + cnt = 0 + while (cnt < 500) { + cnt += 1 + receiveWithin (0) { + case 'msg => + // should not happen + println("FAIL2") + case TIMEOUT => + if (cnt % 100 == 0) + println("TIMEOUT") + } + } + B ! 'next + receive { case 'done => } + cnt = 0 + while (cnt < 501) { + cnt += 1 + receiveWithin (500) { + case 'msg2 => + if (cnt % 100 == 0) + println("'msg2") + case TIMEOUT => + println("TIMEOUT") + } + } + } + } +} + +object B extends Actor { + def act() { + A.start() + for (_ <- 1 to 500) { + A ! 'msg + } + A ! 'done + receive { + case 'next => + for (_ <- 1 to 500) { + A ! 'msg2 + } + A ! 'done + } + } +} + +object Test { + def main(args:Array[String]) { + B.start() + } +} diff --git a/test/partest-tests/run/crash.scala b/test/partest-tests/run/crash.scala new file mode 100644 index 0000000000..1735cc444e --- /dev/null +++ b/test/partest-tests/run/crash.scala @@ -0,0 +1,6 @@ +object Test { + def main(args: Array[String]): Unit = { + val t = new Throwable("DOOM") + throw t + } +} diff --git a/test/partest-tests/run/streamWithFilter.check b/test/partest-tests/run/streamWithFilter.check new file mode 100644 index 0000000000..6b0e91a147 --- /dev/null +++ b/test/partest-tests/run/streamWithFilter.check @@ -0,0 +1,5 @@ +15 +30 +45 +60 +75 diff --git a/test/partest-tests/run/streamWithFilter.scala b/test/partest-tests/run/streamWithFilter.scala new file mode 100644 index 0000000000..cb919d4f55 --- /dev/null +++ b/test/partest-tests/run/streamWithFilter.scala @@ -0,0 +1,11 @@ +object Test { + val nums = Stream.from(1) + def isFizz(x: Int) = x % 3 == 0 + def isBuzz(x: Int) = x % 5 == 0 + // next line will run forever if withFilter isn't doing its thing. + val fizzbuzzes = for (n <- nums ; if isFizz(n) ; if isBuzz(n)) yield n + + def main(args: Array[String]): Unit = { + fizzbuzzes take 5 foreach println + } +} diff --git a/test/partest-tests/run/timeout.scala b/test/partest-tests/run/timeout.scala new file mode 100644 index 0000000000..91417b39ab --- /dev/null +++ b/test/partest-tests/run/timeout.scala @@ -0,0 +1,5 @@ +object Test { + def main(args: Array[String]): Unit = { + Thread.sleep(10000000) + } +} |