From 8316c902780a106c8eb558f0ba07d658e4dce7cc Mon Sep 17 00:00:00 2001 From: Jonas Boner Date: Tue, 4 Aug 2009 18:52:19 +0200 Subject: [PATCH 01/12] added scala-stats jar --- .../twitter/scala-json/1.0/scala-json-1.0.pom | 2 +- .../twitter/scala-stats/1.0/scala-stats-1.0.jar | Bin 0 -> 48694 bytes .../twitter/scala-stats/1.0/scala-stats-1.0.pom | 8 ++++++++ kernel/pom.xml | 5 +++++ 4 files changed, 14 insertions(+), 1 deletion(-) create mode 100755 embedded-repo/com/twitter/scala-stats/1.0/scala-stats-1.0.jar create mode 100755 embedded-repo/com/twitter/scala-stats/1.0/scala-stats-1.0.pom diff --git a/embedded-repo/com/twitter/scala-json/1.0/scala-json-1.0.pom b/embedded-repo/com/twitter/scala-json/1.0/scala-json-1.0.pom index dd4add411e..ce3784907e 100644 --- a/embedded-repo/com/twitter/scala-json/1.0/scala-json-1.0.pom +++ b/embedded-repo/com/twitter/scala-json/1.0/scala-json-1.0.pom @@ -3,6 +3,6 @@ 4.0.0 com.twitter scala-json - 0.1 + 1.0 jar \ No newline at end of file diff --git a/embedded-repo/com/twitter/scala-stats/1.0/scala-stats-1.0.jar b/embedded-repo/com/twitter/scala-stats/1.0/scala-stats-1.0.jar new file mode 100755 index 0000000000000000000000000000000000000000..6b1b43bf7b9db2c3329cfbd34737395efc3a3a4b GIT binary patch literal 48694 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 literal 0 HcmV?d00001 diff --git a/embedded-repo/com/twitter/scala-stats/1.0/scala-stats-1.0.pom b/embedded-repo/com/twitter/scala-stats/1.0/scala-stats-1.0.pom new file mode 100755 index 0000000000..d35560379a --- /dev/null +++ b/embedded-repo/com/twitter/scala-stats/1.0/scala-stats-1.0.pom @@ -0,0 +1,8 @@ + + + 4.0.0 + com.twitter + scala-stats + 1.0 + jar + \ No newline at end of file diff --git a/kernel/pom.xml b/kernel/pom.xml index 7f0970db32..dcc5bc9b67 100644 --- a/kernel/pom.xml +++ b/kernel/pom.xml @@ -31,6 +31,11 @@ aspectwerkz-nodeps-jdk5 2.1 + + com.twitter + scala-stats + 1.0 + net.lag configgy From 9d2aaebe0b1d6270e26585ff5e542f7c26196494 Mon Sep 17 00:00:00 2001 From: Jonas Boner Date: Tue, 11 Aug 2009 12:16:50 +0200 Subject: [PATCH 02/12] implemented statistics recording with JMX and REST APIs (based on scala-stats) --- bin/start-akka-server.sh | 6 +- config/akka-reference.conf | 13 +- .../ActiveObjectGuiceConfiguratorTest.java | 2 +- kernel/pom.xml | 5 - kernel/src/main/scala/Kernel.scala | 26 +++- kernel/src/main/scala/actor/Actor.scala | 30 ++-- .../ActorComponentProviderFactory.scala | 5 +- kernel/src/main/scala/management/JMX.scala | 143 ++++++++++++++++++ .../main/scala/management/RestfulJMX.scala | 71 +++++++++ kernel/src/main/scala/nio/RemoteClient.scala | 32 +++- kernel/src/main/scala/nio/RemoteServer.scala | 90 ++++++++--- .../src/main/scala/reactor/Dispatchers.scala | 8 +- .../EventBasedSingleThreadDispatcher.scala | 17 ++- .../EventBasedThreadPoolDispatcher.scala | 36 +++-- .../scala/reactor/MessageDispatcherBase.scala | 29 +++- .../scala/reactor/ThreadBasedDispatcher.scala | 23 ++- ...EventBasedSingleThreadDispatcherTest.scala | 6 +- .../EventBasedThreadPoolDispatcherTest.scala | 6 +- kernel/src/test/scala/RemoteActorSpec.scala | 1 - .../scala/ThreadBasedDispatcherTest.scala | 4 +- lib/atmosphere-core-0.3.jar~HEAD | Bin 25729 -> 0 bytes lib/atmosphere-portable-runtime-0.3.jar~HEAD | Bin 87708 -> 0 bytes lib/cassidy-0.1.jar | Bin lib/jersey-client-1.1.1-ea.jar | Bin lib/jersey-core-1.1.1-ea.jar | Bin lib/jersey-server-1.1.1-ea.jar | Bin lib/scala-stats-1.0.jar | Bin 0 -> 48694 bytes .../src/main/scala/SimpleService.scala | 2 +- 28 files changed, 446 insertions(+), 109 deletions(-) create mode 100755 kernel/src/main/scala/management/JMX.scala create mode 100755 kernel/src/main/scala/management/RestfulJMX.scala delete mode 100644 lib/atmosphere-core-0.3.jar~HEAD delete mode 100644 lib/atmosphere-portable-runtime-0.3.jar~HEAD mode change 100755 => 100644 lib/cassidy-0.1.jar mode change 100755 => 100644 lib/jersey-client-1.1.1-ea.jar mode change 100755 => 100644 lib/jersey-core-1.1.1-ea.jar mode change 100755 => 100644 lib/jersey-server-1.1.1-ea.jar create mode 100644 lib/scala-stats-1.0.jar diff --git a/bin/start-akka-server.sh b/bin/start-akka-server.sh index 04814b7b11..6127220fe8 100755 --- a/bin/start-akka-server.sh +++ b/bin/start-akka-server.sh @@ -3,7 +3,6 @@ VERSION=0.5 BASE_DIR=$(dirname $0)/.. - echo 'Starting Akka Kernel from directory' $BASE_DIR echo 'Resetting persistent storage in' $BASE_DIR/storage @@ -20,7 +19,6 @@ LIB_DIR=$BASE_DIR/lib CLASSPATH=$BASE_DIR/config CLASSPATH=$CLASSPATH:$LIB_DIR/akka-kernel-0.5.jar CLASSPATH=$CLASSPATH:$LIB_DIR/akka-util-java-0.5.jar - CLASSPATH=$CLASSPATH:$LIB_DIR/antlr-3.1.3.jar CLASSPATH=$CLASSPATH:$LIB_DIR/aopalliance-1.0.jar CLASSPATH=$CLASSPATH:$LIB_DIR/asm-3.1.jar @@ -63,6 +61,7 @@ CLASSPATH=$CLASSPATH:$LIB_DIR/netty-3.1.0.CR1.jar CLASSPATH=$CLASSPATH:$LIB_DIR/providerutil.jar CLASSPATH=$CLASSPATH:$LIB_DIR/protobuf-java-2.1.0.jar CLASSPATH=$CLASSPATH:$LIB_DIR/scala-library-2.7.5.jar +CLASSPATH=$CLASSPATH:$LIB_DIR/scala-stats-1.0.jar CLASSPATH=$CLASSPATH:$LIB_DIR/servlet-api-2.5.jar CLASSPATH=$CLASSPATH:$LIB_DIR/slf4j-api-1.4.3.jar CLASSPATH=$CLASSPATH:$LIB_DIR/slf4j-log4j12-1.4.3.jar @@ -74,7 +73,7 @@ CLASSPATH=$CLASSPATH:$LIB_DIR/zookeeper-3.1.0.jar JVM_OPTS=" \ -server \ -Xms128M \ - -Xmx2G \ + -Xmx1G \ -XX:SurvivorRatio=8 \ -XX:TargetSurvivorRatio=90 \ -XX:+AggressiveOpts \ @@ -91,4 +90,5 @@ JVM_OPTS=" \ #$JAVA_HOME/bin/java $JVM_OPTS -cp $CLASSPATH se.scalablesolutions.akka.Boot se.scalablesolutions.akka.kernel.Kernel ${1} +echo $JAVA_HOME/bin/java $JVM_OPTS -cp $CLASSPATH se.scalablesolutions.akka.kernel.Kernel ${1} $JAVA_HOME/bin/java $JVM_OPTS -cp $CLASSPATH se.scalablesolutions.akka.kernel.Kernel ${1} diff --git a/config/akka-reference.conf b/config/akka-reference.conf index 3f672d1803..1cbd12cee6 100644 --- a/config/akka-reference.conf +++ b/config/akka-reference.conf @@ -1,6 +1,6 @@ -################################# -# Akka Actor Kernel Config File # -################################# +##################### +# Akka Config File # +################### # This file has all the default settings, so all these could be remove with no visible effect. # Modify as needed. @@ -19,11 +19,16 @@ boot = ["sample.java.Boot", "sample.scala.Boot"] # FQN to the class doing initial active object/actor # supervisor bootstrap, should be defined in default constructor + + service = on + record-stats = on + + timeout = 5000 # default timeout for future based invocations concurrent-mode = off # if turned on, then the same actor instance is allowed to execute concurrently - # e.g. departing from the actor model for better performance - serialize-messages = on # does a deep clone of (non-primitive) messages to ensure immutability + serialize-messages = on # does a deep clone of (non-primitive) messages to ensure immutability diff --git a/fun-test-java/src/test/java/se/scalablesolutions/akka/api/ActiveObjectGuiceConfiguratorTest.java b/fun-test-java/src/test/java/se/scalablesolutions/akka/api/ActiveObjectGuiceConfiguratorTest.java index d2cc9b7d0a..fdc2a48c98 100644 --- a/fun-test-java/src/test/java/se/scalablesolutions/akka/api/ActiveObjectGuiceConfiguratorTest.java +++ b/fun-test-java/src/test/java/se/scalablesolutions/akka/api/ActiveObjectGuiceConfiguratorTest.java @@ -21,7 +21,7 @@ public class ActiveObjectGuiceConfiguratorTest extends TestCase { protected void setUp() { se.scalablesolutions.akka.kernel.Kernel$.MODULE$.config(); - EventBasedThreadPoolDispatcher dispatcher = new EventBasedThreadPoolDispatcher(); + EventBasedThreadPoolDispatcher dispatcher = new EventBasedThreadPoolDispatcher("name"); dispatcher .withNewThreadPoolWithBoundedBlockingQueue(100) .setCorePoolSize(16) diff --git a/kernel/pom.xml b/kernel/pom.xml index dcc5bc9b67..5faf1864e4 100644 --- a/kernel/pom.xml +++ b/kernel/pom.xml @@ -125,11 +125,6 @@ commons-lang 2.4 - - se.foldleft - cassidy - 0.1 - diff --git a/kernel/src/main/scala/Kernel.scala b/kernel/src/main/scala/Kernel.scala index 6e3641208e..57bb697079 100644 --- a/kernel/src/main/scala/Kernel.scala +++ b/kernel/src/main/scala/Kernel.scala @@ -12,12 +12,13 @@ import javax.ws.rs.core.UriBuilder import java.io.File import java.net.URLClassLoader -import net.lag.configgy.{Config, Configgy, RuntimeEnvironment} +import net.lag.configgy.{Config, Configgy, RuntimeEnvironment, ParseException} import kernel.jersey.AkkaCometServlet import kernel.nio.RemoteServer import kernel.state.CassandraStorage import kernel.util.Logging +import kernel.management.Management /** * @author Jonas Bonér @@ -32,6 +33,7 @@ object Kernel extends Logging { val BOOT_CLASSES = config.getList("akka.boot") val RUN_REMOTE_SERVICE = config.getBool("akka.remote.service", true) + val RUN_MANAGEMENT_SERVICE = config.getBool("akka.management.service", true) val STORAGE_SYSTEM = config.getString("akka.storage.system", "cassandra") val RUN_REST_SERVICE = config.getBool("akka.rest.service", true) @@ -43,6 +45,7 @@ object Kernel extends Logging { private var remoteServer: RemoteServer = _ private var jerseySelectorThread: SelectorThread = _ private val startTime = System.currentTimeMillis + private var applicationLoader: Option[ClassLoader] = None def main(args: Array[String]) = boot @@ -51,11 +54,15 @@ object Kernel extends Logging { printBanner log.info("Starting Akka kernel...") + runApplicationBootClasses + if (RUN_REMOTE_SERVICE) startRemoteService + if (RUN_MANAGEMENT_SERVICE) startManagementService STORAGE_SYSTEM match { case "cassandra" => startCassandra case "terracotta" => throw new UnsupportedOperationException("terracotta storage backend is not yet supported") + case "mongodb" => throw new UnsupportedOperationException("mongodb storage backend is not yet supported") case "redis" => throw new UnsupportedOperationException("redis storage backend is not yet supported") case "voldemort" => throw new UnsupportedOperationException("voldemort storage backend is not yet supported") case "tokyo-cabinet" => throw new UnsupportedOperationException("tokyo-cabinet storage backend is not yet supported") @@ -64,8 +71,6 @@ object Kernel extends Logging { if (RUN_REST_SERVICE) startJersey - runApplicationBootClasses - log.info("Akka kernel started successfully") hasBooted = true } @@ -79,17 +84,18 @@ object Kernel extends Logging { val runtime = new RuntimeEnvironment(getClass) //runtime.load(args) val config = Configgy.config - config.registerWithJmx("com.scalablesolutions.akka.config") + config.registerWithJmx("se.scalablesolutions.akka") // FIXME fix Configgy JMX subscription to allow management // config.subscribe { c => configure(c.getOrElse(new Config)) } config } catch { - case e: net.lag.configgy.ParseException => throw new Error("Could not retreive the akka.conf config file. Make sure you have set the AKKA_HOME environment variable to the root of the distribution.") + case e: ParseException => throw new Error("Could not retreive the akka.conf config file. Make sure you have set the AKKA_HOME environment variable to the root of the distribution.") } } private[akka] def runApplicationBootClasses = { + new management.RestfulJMXBoot // add the REST/JMX service val HOME = try { System.getenv("AKKA_HOME") } catch { case e: NullPointerException => throw new IllegalStateException("AKKA_HOME system variable needs to be set. Should point to the root of the Akka distribution.") } //val CLASSES = HOME + "/kernel/target/classes" // FIXME remove for dist //val LIB = HOME + "/lib" @@ -105,16 +111,22 @@ object Kernel extends Logging { log.info("Booting with boot class [%s]", clazz) loader.loadClass(clazz).newInstance } + applicationLoader = Some(loader) } private[akka] def startRemoteService = { // FIXME manage remote serve thread for graceful shutdown val remoteServerThread = new Thread(new Runnable() { - def run = RemoteServer.start - }, "akka remote service") + def run = RemoteServer.start(applicationLoader) + }, "Akka Remote Service") remoteServerThread.start } + private[akka] def startManagementService = { + Management.startJMX("se.scalablesolutions.akka") + log.info("Management service started successfully.") + } + private[akka] def startCassandra = if (config.getBool("akka.storage.cassandra.service", true)) { System.setProperty("cassandra", "") System.setProperty("storage-config", akka.Boot.CONFIG + "/") diff --git a/kernel/src/main/scala/actor/Actor.scala b/kernel/src/main/scala/actor/Actor.scala index ea4145a4f3..fab6adf40d 100644 --- a/kernel/src/main/scala/actor/Actor.scala +++ b/kernel/src/main/scala/actor/Actor.scala @@ -8,14 +8,17 @@ import com.google.protobuf.ByteString import java.net.InetSocketAddress import java.util.concurrent.CopyOnWriteArraySet -import kernel.reactor._ -import kernel.config.ScalaConfig._ -import kernel.stm.TransactionManagement -import kernel.util.Helpers.ReadWriteLock -import kernel.nio.protobuf.RemoteProtocol.RemoteRequest -import kernel.util.Logging +import reactor._ +import config.ScalaConfig._ +import stm.TransactionManagement +import util.Helpers.ReadWriteLock +import nio.protobuf.RemoteProtocol.RemoteRequest +import util.Logging import serialization.{Serializer, Serializable, SerializationProtocol} import nio.{RemoteProtocolBuilder, RemoteClient, RemoteServer, RemoteRequestIdFactory} +import management.Management + +import com.twitter.service.Stats sealed abstract class LifecycleMessage case class Init(config: AnyRef) extends LifecycleMessage @@ -42,14 +45,16 @@ class ActorMessageInvoker(val actor: Actor) extends MessageInvoker { * @author Jonas Bonér */ object Actor { - val TIMEOUT = kernel.Kernel.config.getInt("akka.actor.timeout", 5000) - val SERIALIZE_MESSAGES = kernel.Kernel.config.getBool("akka.actor.serialize-messages", false) + val TIMEOUT = Kernel.config.getInt("akka.actor.timeout", 5000) + val SERIALIZE_MESSAGES = Kernel.config.getBool("akka.actor.serialize-messages", false) } /** * @author Jonas Bonér */ -@serializable trait Actor extends Logging with TransactionManagement { +trait Actor extends Logging with TransactionManagement { + Stats.getCounter("NrOfActors").incr + @volatile private[this] var isRunning: Boolean = false private[this] val remoteFlagLock = new ReadWriteLock private[this] val transactionalFlagLock = new ReadWriteLock @@ -64,6 +69,8 @@ object Actor { protected[this] val linkedActors = new CopyOnWriteArraySet[Actor] protected[actor] var lifeCycleConfig: Option[LifeCycle] = None + val name = this.getClass.getName + // ==================================== // ==== USER CALLBACKS TO OVERRIDE ==== // ==================================== @@ -96,7 +103,7 @@ object Actor { * */ protected[kernel] var dispatcher: MessageDispatcher = { - val dispatcher = Dispatchers.newEventBasedThreadPoolDispatcher + val dispatcher = Dispatchers.newEventBasedThreadPoolDispatcher(getClass.getName) mailbox = dispatcher.messageQueue dispatcher.registerHandler(this, new ActorMessageInvoker(this)) dispatcher @@ -529,6 +536,8 @@ object Actor { } private[this] def handleTrapExit(dead: Actor, reason: Throwable): Unit = { + if (Management.RECORD_STATS) Stats.getCounter("NrOfFailures_" + dead.name).incr + if (trapExit) { if (faultHandler.isDefined) { faultHandler.get match { @@ -546,6 +555,7 @@ object Actor { linkedActors.toArray.toList.asInstanceOf[List[Actor]].foreach(_.restart(reason)) private[Actor] def restart(reason: AnyRef) = synchronized { + if (Management.RECORD_STATS) Stats.getCounter("NrOfRestarts_" + name).incr lifeCycleConfig match { case None => throw new IllegalStateException("Server [" + id + "] does not have a life-cycle defined.") diff --git a/kernel/src/main/scala/jersey/ActorComponentProviderFactory.scala b/kernel/src/main/scala/jersey/ActorComponentProviderFactory.scala index 82d0f1e76b..8f9ca19bd2 100644 --- a/kernel/src/main/scala/jersey/ActorComponentProviderFactory.scala +++ b/kernel/src/main/scala/jersey/ActorComponentProviderFactory.scala @@ -19,7 +19,6 @@ extends IoCComponentProviderFactory with Logging { override def getComponentProvider(clazz: Class[_]): IoCComponentProvider = getComponentProvider(null, clazz) override def getComponentProvider(context: ComponentContext, clazz: Class[_]): IoCComponentProvider = { - //log.info("ProviderFactory: resolve => " + clazz.getName) - configurators.find(_.isDefined(clazz)).map(_ => new ActorComponentProvider(clazz, configurators)).getOrElse(null) + configurators.find(_.isDefined(clazz)).map(_ => new ActorComponentProvider(clazz, configurators)).getOrElse(null) } -} \ No newline at end of file +} diff --git a/kernel/src/main/scala/management/JMX.scala b/kernel/src/main/scala/management/JMX.scala new file mode 100755 index 0000000000..988a123668 --- /dev/null +++ b/kernel/src/main/scala/management/JMX.scala @@ -0,0 +1,143 @@ +/** + * Copyright (C) 2009 Scalable Solutions. + */ + +package se.scalablesolutions.akka.kernel.management + +import com.twitter.service.Stats + +import scala.collection.jcl + +import java.lang.management.ManagementFactory +import javax.{management => jmx} +import javax.management.remote.{JMXConnectorServerFactory, JMXServiceURL} + +import kernel.Kernel.config +import kernel.util.Logging + +/** + * @author Jonas Bonér + */ +object Management { + val RECORD_STATS = config.getBool("akka.management.record-stats", true) + + def startJMX(packageName: String): Unit = + startJMX(packageName, ManagementFactory.getPlatformMBeanServer) + + def startJMX(packageName: String, mbeanServer: jmx.MBeanServer): Unit = { + mbeanServer.registerMBean(new StatisticsMBean, new jmx.ObjectName(packageName + ":type=Stats")) + mbeanServer.registerMBean(new ManagementMBean, new jmx.ObjectName(packageName + ":type=Management")) + java.rmi.registry.LocateRegistry.createRegistry(1099) + JMXConnectorServerFactory.newJMXConnectorServer( + new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi"), + null, + mbeanServer).start + } +} + +/** + * @author Jonas Bonér + */ +class StatisticsMBean extends jmx.DynamicMBean with Logging { + def getMBeanInfo = new jmx.MBeanInfo( + "se.scalablesolutions.akka.management.Stats", + "runtime statistics", + getAttributeInfo, + null, null, null, + new jmx.ImmutableDescriptor("immutableInfo=false")) + + def getAttribute(name: String): AnyRef = { + val segments = name.split("_", 2) + segments(0) match { + case "counter" => + Stats.getCounterStats()(segments(1)).asInstanceOf[java.lang.Long] + case "timing" => + val prefix = segments(1).split("_", 2) + val timing = Stats.getTimingStats(false)(prefix(1)) + val x = prefix(0) match { + case "min" => timing.minimum + case "max" => timing.maximum + case "count" => timing.count + case "average" => timing.average + } + x.asInstanceOf[java.lang.Integer] + case "gauge" => + Stats.getGaugeStats(false)(segments(1)).asInstanceOf[java.lang.Double] + } + } + + def getAttributes(names: Array[String]): jmx.AttributeList = { + val rv = new jmx.AttributeList + for (name <- names) rv.add(new jmx.Attribute(name, getAttribute(name))) + rv + } + + def invoke(actionName: String, params: Array[Object], signature: Array[String]): AnyRef = throw new UnsupportedOperationException + def setAttribute(attr: jmx.Attribute): Unit = throw new UnsupportedOperationException + def setAttributes(attrs: jmx.AttributeList): jmx.AttributeList = throw new UnsupportedOperationException + + private def getAttributeInfo: Array[jmx.MBeanAttributeInfo] = { + (Stats.getCounterStats.keys.map { name => + List(new jmx.MBeanAttributeInfo("counter_" + name, "java.lang.Long", "counter", true, false, false)) + } ++ Stats.getTimingStats(false).keys.map { name => + List("min", "max", "average", "count") map { prefix => + new jmx.MBeanAttributeInfo("timing_" + prefix + "_" + name, "java.lang.Integer", "timing", true, false, false) + } + } ++ Stats.getGaugeStats(false).keys.map { name => + List(new jmx.MBeanAttributeInfo("gauge_" + name, "java.lang.Long", "gauge", true, false, false)) + }).toList.flatten[jmx.MBeanAttributeInfo].toArray + } +} + +/** + * @author Jonas Bonér + */ +class ManagementMBean extends jmx.DynamicMBean with Logging { + val operations: Array[jmx.MBeanOperationInfo] = Array( + new jmx.MBeanOperationInfo("dosomething", "TODO", + Array( + new jmx.MBeanParameterInfo("key", "java.lang.String", "TODO"), + new jmx.MBeanParameterInfo("value", "java.lang.String", "TODO") + ), "void", jmx.MBeanOperationInfo.ACTION) + ) + + def getMBeanInfo = new jmx.MBeanInfo( + "se.scalablesolutions.akka.management.Management", + "runtime management", + Array[jmx.MBeanAttributeInfo](), + null, operations, null, + new jmx.ImmutableDescriptor("immutableInfo=false")) + + def getAttribute(name: String): AnyRef = throw new UnsupportedOperationException + + def getAttributes(names: Array[String]): jmx.AttributeList = throw new UnsupportedOperationException + + def invoke(actionName: String, params: Array[Object], signature: Array[String]): AnyRef = { + actionName match { + case "dosomething" => + params match { + case Array(name: String, value: String) => + try { + {} + } catch { + case e: Exception => + log.warning("Exception: %s", e.getMessage) + throw e + } + case _ => throw new jmx.MBeanException(new Exception("Bad signature " + params.toList.toString)) + } + case _ => throw new jmx.MBeanException(new Exception("No such method")) + } + null + } + + def setAttribute(attr: jmx.Attribute): Unit = attr.getValue match { + case s: String => println("Setting: " + s) + case _ => throw new jmx.InvalidAttributeValueException() + } + + def setAttributes(attrs: jmx.AttributeList): jmx.AttributeList = { + for (attr <- jcl.Buffer(attrs.asList)) setAttribute(attr) + attrs + } +} diff --git a/kernel/src/main/scala/management/RestfulJMX.scala b/kernel/src/main/scala/management/RestfulJMX.scala new file mode 100755 index 0000000000..5726e57764 --- /dev/null +++ b/kernel/src/main/scala/management/RestfulJMX.scala @@ -0,0 +1,71 @@ +/** + * Copyright (C) 2009 Scalable Solutions. + */ + +package se.scalablesolutions.akka.kernel.management + +import se.scalablesolutions.akka.kernel.actor.{SupervisorFactory, Actor} +import se.scalablesolutions.akka.kernel.config.ScalaConfig._ +import se.scalablesolutions.akka.kernel.util.Logging + +import javax.ws.rs.core.MultivaluedMap +import javax.ws.rs.{GET, POST, Path, QueryParam, Produces, WebApplicationException, Consumes} +import javax.management._ +import javax.management.remote.{JMXConnector, JMXConnectorFactory, JMXServiceURL} +import javax.servlet.http.{HttpServletRequest, HttpServletResponse} +import java.util.concurrent.ConcurrentHashMap + +/** + * REST interface to Akka's JMX service. + *

+ * Here is an example that retreives the current number of Actors. + *

+ * http://localhost:9998/management
+ *   ?service=service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi
+ *   &component=se.scalablesolutions.akka:type=Stats
+ *   &attribute=counter_NrOfActors
+ * 
+ */ +@Path("/management") +class RestfulJMX extends Actor with Logging { + private case class Request(service: String, component: String, attribute: String) + private val connectors = new ConcurrentHashMap[String, JMXConnector] + + @GET + @Produces(Array("text/html")) + def queryJMX( + @QueryParam("service") service: String, + @QueryParam("component") component: String, + @QueryParam("attribute") attribute: String) = + (this !! Request(service, component, attribute)).getOrElse(Error in REST JMX management service) + + override def receive: PartialFunction[Any, Unit] = { + case Request(service, component, attribute) => reply(retrieveAttribute(service, component, attribute)) + } + + private def retrieveAttribute(service: String, component: String, attribute: String): scala.xml.Elem = { + try { + var connector = connectors.putIfAbsent(service, JMXConnectorFactory.connect(new JMXServiceURL(service))) +
{connector.getMBeanServerConnection.getAttribute(new ObjectName(component), attribute).toString}
+ } catch { + case e: Exception => + if (connectors.contains(service)) connectors.remove(service) + throw e + } + } +} + +class RestfulJMXBoot extends Logging { + log.info("Booting Restful JMX servivce") + object factory extends SupervisorFactory { + override def getSupervisorConfig: SupervisorConfig = { + SupervisorConfig( + RestartStrategy(OneForOne, 3, 100), + Supervise( + new RestfulJMX, + LifeCycle(Permanent, 100)) + :: Nil) + } + } + factory.newSupervisor.startSupervisor +} diff --git a/kernel/src/main/scala/nio/RemoteClient.scala b/kernel/src/main/scala/nio/RemoteClient.scala index 2e62d4dbcf..e91173c4f7 100644 --- a/kernel/src/main/scala/nio/RemoteClient.scala +++ b/kernel/src/main/scala/nio/RemoteClient.scala @@ -12,6 +12,7 @@ import kernel.actor.{Exit, Actor} import kernel.reactor.{DefaultCompletableFutureResult, CompletableFutureResult} import serialization.{Serializer, Serializable, SerializationProtocol} import kernel.util.Logging +import kernel.management.Management import org.jboss.netty.bootstrap.ClientBootstrap import org.jboss.netty.channel._ @@ -21,6 +22,8 @@ import org.jboss.netty.handler.codec.protobuf.{ProtobufDecoder, ProtobufEncoder} import scala.collection.mutable.HashMap +import com.twitter.service.Stats + /** * @author Jonas Bonér */ @@ -44,6 +47,10 @@ object RemoteClient extends Logging { * @author Jonas Bonér */ class RemoteClient(hostname: String, port: Int) extends Logging { + val name = "RemoteClient@" + hostname + val NR_OF_BYTES_SENT = Stats.getCounter("NrOfBytesSent_" + name) + val NR_OF_MESSAGES_SENT = Stats.getCounter("NrOfMessagesSent_" + name) + @volatile private var isRunning = false private val futures = new ConcurrentHashMap[Long, CompletableFutureResult] private val supervisors = new ConcurrentHashMap[String, Actor] @@ -55,7 +62,7 @@ class RemoteClient(hostname: String, port: Int) extends Logging { private val bootstrap = new ClientBootstrap(channelFactory) - bootstrap.setPipelineFactory(new RemoteClientPipelineFactory(futures, supervisors)) + bootstrap.setPipelineFactory(new RemoteClientPipelineFactory(name, futures, supervisors)) bootstrap.setOption("tcpNoDelay", true) bootstrap.setOption("keepAlive", true) @@ -84,6 +91,10 @@ class RemoteClient(hostname: String, port: Int) extends Logging { } def send(request: RemoteRequest): Option[CompletableFutureResult] = if (isRunning) { + if (Management.RECORD_STATS) { + NR_OF_BYTES_SENT.incr(request.getSerializedSize) + NR_OF_MESSAGES_SENT.incr + } if (request.getIsOneWay) { connection.getChannel.write(request) None @@ -111,15 +122,16 @@ class RemoteClient(hostname: String, port: Int) extends Logging { /** * @author Jonas Bonér */ -class RemoteClientPipelineFactory(futures: ConcurrentMap[Long, CompletableFutureResult], - supervisors: ConcurrentMap[String, Actor]) extends ChannelPipelineFactory { +class RemoteClientPipelineFactory(name: String, + futures: ConcurrentMap[Long, CompletableFutureResult], + supervisors: ConcurrentMap[String, Actor]) extends ChannelPipelineFactory { def getPipeline: ChannelPipeline = { val p = Channels.pipeline() p.addLast("frameDecoder", new LengthFieldBasedFrameDecoder(1048576, 0, 4, 0, 4)); p.addLast("protobufDecoder", new ProtobufDecoder(RemoteReply.getDefaultInstance)); p.addLast("frameEncoder", new LengthFieldPrepender(4)); p.addLast("protobufEncoder", new ProtobufEncoder()); - p.addLast("handler", new RemoteClientHandler(futures, supervisors)) + p.addLast("handler", new RemoteClientHandler(name, futures, supervisors)) p } } @@ -128,10 +140,14 @@ class RemoteClientPipelineFactory(futures: ConcurrentMap[Long, CompletableFuture * @author Jonas Bonér */ @ChannelPipelineCoverage { val value = "all" } -class RemoteClientHandler(val futures: ConcurrentMap[Long, CompletableFutureResult], +class RemoteClientHandler(val name: String, + val futures: ConcurrentMap[Long, CompletableFutureResult], val supervisors: ConcurrentMap[String, Actor]) extends SimpleChannelUpstreamHandler with Logging { + val NR_OF_BYTES_RECEIVED = Stats.getCounter("NrOfBytesReceived_" + name) + val NR_OF_MESSAGES_RECEIVED = Stats.getCounter("NrOfMessagesReceived_" + name) + override def handleUpstream(ctx: ChannelHandlerContext, event: ChannelEvent) = { if (event.isInstanceOf[ChannelStateEvent] && event.asInstanceOf[ChannelStateEvent].getState != ChannelState.INTEREST_OPS) { log.debug(event.toString) @@ -144,6 +160,10 @@ class RemoteClientHandler(val futures: ConcurrentMap[Long, CompletableFutureResu val result = event.getMessage if (result.isInstanceOf[RemoteReply]) { val reply = result.asInstanceOf[RemoteReply] + if (Management.RECORD_STATS) { + NR_OF_MESSAGES_RECEIVED.incr + NR_OF_BYTES_RECEIVED.incr(reply.getSerializedSize) + } log.debug("Received RemoteReply[\n%s]", reply.toString) val future = futures.get(reply.getId) if (reply.getIsSuccessful) { @@ -159,7 +179,7 @@ class RemoteClientHandler(val futures: ConcurrentMap[Long, CompletableFutureResu } future.completeWithException(null, parseException(reply)) } - futures.remove(reply.getId) + futures.remove(reply.getId) } else throw new IllegalArgumentException("Unknown message received in remote client handler: " + result) } catch { case e: Exception => diff --git a/kernel/src/main/scala/nio/RemoteServer.scala b/kernel/src/main/scala/nio/RemoteServer.scala index b2f1931879..bbc223247e 100644 --- a/kernel/src/main/scala/nio/RemoteServer.scala +++ b/kernel/src/main/scala/nio/RemoteServer.scala @@ -13,6 +13,7 @@ import kernel.util._ import protobuf.RemoteProtocol import protobuf.RemoteProtocol.{RemoteReply, RemoteRequest} import serialization.{Serializer, Serializable, SerializationProtocol} +import kernel.management.Management import org.jboss.netty.bootstrap.ServerBootstrap import org.jboss.netty.channel._ @@ -20,22 +21,28 @@ import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory import org.jboss.netty.handler.codec.frame.{LengthFieldBasedFrameDecoder, LengthFieldPrepender} import org.jboss.netty.handler.codec.protobuf.{ProtobufDecoder, ProtobufEncoder} +import com.twitter.service.Stats + /** * @author Jonas Bonér */ class RemoteServer extends Logging { - def start = RemoteServer.start + def start = RemoteServer.start(None) } /** * @author Jonas Bonér */ object RemoteServer extends Logging { - val HOSTNAME = kernel.Kernel.config.getString("akka.remote.hostname", "localhost") - val PORT = kernel.Kernel.config.getInt("akka.remote.port", 9999) - val CONNECTION_TIMEOUT_MILLIS = kernel.Kernel.config.getInt("akka.remote.connection-timeout", 1000) + import kernel.Kernel.config + val HOSTNAME = config.getString("akka.remote.hostname", "localhost") + val PORT = config.getInt("akka.remote.port", 9999) + val CONNECTION_TIMEOUT_MILLIS = config.getInt("akka.remote.connection-timeout", 1000) + + val name = "RemoteServer@" + HOSTNAME @volatile private var isRunning = false + @volatile private var isConfigured = false private val factory = new NioServerSocketChannelFactory( Executors.newCachedThreadPool, @@ -44,18 +51,15 @@ object RemoteServer extends Logging { private val activeObjectFactory = new ActiveObjectFactory private val bootstrap = new ServerBootstrap(factory) - // FIXME provide different codecs (Thrift, Avro, Protobuf, JSON) - private val handler = new RemoteServerHandler - bootstrap.setPipelineFactory(new RemoteServerPipelineFactory) - bootstrap.setOption("child.tcpNoDelay", true) - bootstrap.setOption("child.keepAlive", true) - bootstrap.setOption("child.reuseAddress", true) - bootstrap.setOption("child.connectTimeoutMillis", CONNECTION_TIMEOUT_MILLIS) - - def start = synchronized { + def start(loader: Option[ClassLoader]) = synchronized { if (!isRunning) { log.info("Starting remote server at [%s:%s]", HOSTNAME, PORT) + bootstrap.setPipelineFactory(new RemoteServerPipelineFactory(name, loader)) + bootstrap.setOption("child.tcpNoDelay", true) + bootstrap.setOption("child.keepAlive", true) + bootstrap.setOption("child.reuseAddress", true) + bootstrap.setOption("child.connectTimeoutMillis", CONNECTION_TIMEOUT_MILLIS) bootstrap.bind(new InetSocketAddress(HOSTNAME, PORT)) isRunning = true } @@ -65,14 +69,14 @@ object RemoteServer extends Logging { /** * @author Jonas Bonér */ -class RemoteServerPipelineFactory extends ChannelPipelineFactory { +class RemoteServerPipelineFactory(name: String, loader: Option[ClassLoader]) extends ChannelPipelineFactory { def getPipeline: ChannelPipeline = { val p = Channels.pipeline() p.addLast("frameDecoder", new LengthFieldBasedFrameDecoder(1048576, 0, 4, 0, 4)) p.addLast("protobufDecoder", new ProtobufDecoder(RemoteProtocol.RemoteRequest.getDefaultInstance)) p.addLast("frameEncoder", new LengthFieldPrepender(4)) p.addLast("protobufEncoder", new ProtobufEncoder) - p.addLast("handler", new RemoteServerHandler) + p.addLast("handler", new RemoteServerHandler(name, loader)) p } } @@ -81,7 +85,12 @@ class RemoteServerPipelineFactory extends ChannelPipelineFactory { * @author Jonas Bonér */ @ChannelPipelineCoverage { val value = "all" } -class RemoteServerHandler extends SimpleChannelUpstreamHandler with Logging { +class RemoteServerHandler(val name: String, val applicationLoader: Option[ClassLoader]) extends SimpleChannelUpstreamHandler with Logging { + val NR_OF_BYTES_SENT = Stats.getCounter("NrOfBytesSent_" + name) + val NR_OF_BYTES_RECEIVED = Stats.getCounter("NrOfBytesReceived_" + name) + val NR_OF_MESSAGES_SENT = Stats.getCounter("NrOfMessagesSent_" + name) + val NR_OF_MESSAGES_RECEIVED = Stats.getCounter("NrOfMessagesReceived_" + name) + private val activeObjectFactory = new ActiveObjectFactory private val activeObjects = new ConcurrentHashMap[String, AnyRef] private val actors = new ConcurrentHashMap[String, Actor] @@ -106,6 +115,10 @@ class RemoteServerHandler extends SimpleChannelUpstreamHandler with Logging { } private def handleRemoteRequest(request: RemoteRequest, channel: Channel) = { + if (Management.RECORD_STATS) { + NR_OF_MESSAGES_RECEIVED.incr + NR_OF_BYTES_RECEIVED.incr(request.getSerializedSize) + } log.debug("Received RemoteRequest[\n%s]", request.toString) if (request.getIsActor) dispatchToActor(request, channel) else dispatchToActiveObject(request, channel) @@ -128,7 +141,12 @@ class RemoteServerHandler extends SimpleChannelUpstreamHandler with Logging { .setIsActor(true) RemoteProtocolBuilder.setMessage(result, replyBuilder) if (request.hasSupervisorUuid) replyBuilder.setSupervisorUuid(request.getSupervisorUuid) - channel.write(replyBuilder.build) + val replyMessage = replyBuilder.build + channel.write(replyMessage) + if (Management.RECORD_STATS) { + NR_OF_MESSAGES_SENT.incr + NR_OF_BYTES_SENT.incr(replyMessage.getSerializedSize) + } } catch { case e: Throwable => log.error("Could not invoke remote actor [%s] due to: %s", request.getTarget, e) @@ -139,7 +157,12 @@ class RemoteServerHandler extends SimpleChannelUpstreamHandler with Logging { .setIsSuccessful(false) .setIsActor(true) if (request.hasSupervisorUuid) replyBuilder.setSupervisorUuid(request.getSupervisorUuid) - channel.write(replyBuilder.build) + val replyMessage = replyBuilder.build + channel.write(replyMessage) + if (Management.RECORD_STATS) { + NR_OF_MESSAGES_SENT.incr + NR_OF_BYTES_SENT.incr(replyMessage.getSerializedSize) + } } } } @@ -165,7 +188,12 @@ class RemoteServerHandler extends SimpleChannelUpstreamHandler with Logging { .setIsActor(false) RemoteProtocolBuilder.setMessage(result, replyBuilder) if (request.hasSupervisorUuid) replyBuilder.setSupervisorUuid(request.getSupervisorUuid) - channel.write(replyBuilder.build) + val replyMessage = replyBuilder.build + channel.write(replyMessage) + if (Management.RECORD_STATS) { + NR_OF_MESSAGES_SENT.incr + NR_OF_BYTES_SENT.incr(replyMessage.getSerializedSize) + } } } catch { case e: InvocationTargetException => @@ -176,8 +204,13 @@ class RemoteServerHandler extends SimpleChannelUpstreamHandler with Logging { .setException(e.getCause.getClass.getName + "$" + e.getCause.getMessage) .setIsSuccessful(false) .setIsActor(false) - if (request.hasSupervisorUuid) replyBuilder.setSupervisorUuid(request.getSupervisorUuid) - channel.write(replyBuilder.build) + if (request.hasSupervisorUuid) replyBuilder.setSupervisorUuid(request.getSupervisorUuid) + val replyMessage = replyBuilder.build + channel.write(replyMessage) + if (Management.RECORD_STATS) { + NR_OF_MESSAGES_SENT.incr + NR_OF_BYTES_SENT.incr(replyMessage.getSerializedSize) + } case e: Throwable => log.error("Could not invoke remote active object [%s :: %s] due to: %s", request.getMethod, request.getTarget, e) e.printStackTrace @@ -186,8 +219,13 @@ class RemoteServerHandler extends SimpleChannelUpstreamHandler with Logging { .setException(e.getClass.getName + "$" + e.getMessage) .setIsSuccessful(false) .setIsActor(false) - if (request.hasSupervisorUuid) replyBuilder.setSupervisorUuid(request.getSupervisorUuid) - channel.write(replyBuilder.build) + if (request.hasSupervisorUuid) replyBuilder.setSupervisorUuid(request.getSupervisorUuid) + val replyMessage = replyBuilder.build + channel.write(replyMessage) + if (Management.RECORD_STATS) { + NR_OF_MESSAGES_SENT.incr + NR_OF_BYTES_SENT.incr(replyMessage.getSerializedSize) + } } } @@ -223,8 +261,9 @@ class RemoteServerHandler extends SimpleChannelUpstreamHandler with Logging { private def createActiveObject(name: String, timeout: Long): AnyRef = { val activeObjectOrNull = activeObjects.get(name) if (activeObjectOrNull == null) { - val clazz = Class.forName(name) try { + val clazz = if (applicationLoader.isDefined) applicationLoader.get.loadClass(name) + else Class.forName(name) val newInstance = activeObjectFactory.newInstance(clazz, timeout).asInstanceOf[AnyRef] activeObjects.put(name, newInstance) newInstance @@ -240,8 +279,9 @@ class RemoteServerHandler extends SimpleChannelUpstreamHandler with Logging { private def createActor(name: String, timeout: Long): Actor = { val actorOrNull = actors.get(name) if (actorOrNull == null) { - val clazz = Class.forName(name) try { + val clazz = if (applicationLoader.isDefined) applicationLoader.get.loadClass(name) + else Class.forName(name) val newInstance = clazz.newInstance.asInstanceOf[Actor] newInstance.timeout = timeout actors.put(name, newInstance) diff --git a/kernel/src/main/scala/reactor/Dispatchers.scala b/kernel/src/main/scala/reactor/Dispatchers.scala index d7697e965c..5c4935bbd5 100644 --- a/kernel/src/main/scala/reactor/Dispatchers.scala +++ b/kernel/src/main/scala/reactor/Dispatchers.scala @@ -49,17 +49,17 @@ class DispatcherFactory { * Creates an event based dispatcher serving multiple (millions) of actors through a thread pool. * Has a fluent builder interface for configuring its semantics. */ - def newEventBasedThreadPoolDispatcher = new EventBasedThreadPoolDispatcher - def newConcurrentEventBasedThreadPoolDispatcher = new EventBasedThreadPoolDispatcher(true) + def newEventBasedThreadPoolDispatcher(name: String) = new EventBasedThreadPoolDispatcher(name) + def newConcurrentEventBasedThreadPoolDispatcher(name: String) = new EventBasedThreadPoolDispatcher(name, true) /** * Creates an event based dispatcher serving multiple (millions) of actors through a single thread. */ - def newEventBasedSingleThreadDispatcher = new EventBasedSingleThreadDispatcher + def newEventBasedSingleThreadDispatcher(name: String) = new EventBasedSingleThreadDispatcher(name) /** * Creates an thread based dispatcher serving a single actor through the same single thread. * E.g. each actor consumes its own thread. */ def newThreadBasedDispatcher(actor: Actor) = new ThreadBasedDispatcher(actor) -} \ No newline at end of file +} diff --git a/kernel/src/main/scala/reactor/EventBasedSingleThreadDispatcher.scala b/kernel/src/main/scala/reactor/EventBasedSingleThreadDispatcher.scala index c3d52e777e..a4c7a0fc80 100644 --- a/kernel/src/main/scala/reactor/EventBasedSingleThreadDispatcher.scala +++ b/kernel/src/main/scala/reactor/EventBasedSingleThreadDispatcher.scala @@ -10,9 +10,14 @@ */ package se.scalablesolutions.akka.kernel.reactor +import kernel.management.Management + import java.util.{LinkedList, Queue, List} -class EventBasedSingleThreadDispatcher extends MessageDispatcherBase { +import com.twitter.service.Stats + +class EventBasedSingleThreadDispatcher(name: String) extends MessageDispatcherBase(name) { + val NR_OF_PROCESSED_MESSAGES = Stats.getCounter("NrOfProcessedMessage_" + name) def start = if (!active) { active = true val messageDemultiplexer = new EventBasedSingleThreadDemultiplexer(queue) @@ -22,12 +27,14 @@ class EventBasedSingleThreadDispatcher extends MessageDispatcherBase { try { messageDemultiplexer.select } catch { case e: InterruptedException => active = false } - val selectedInvocations = messageDemultiplexer.acquireSelectedInvocations.iterator - while (selectedInvocations.hasNext) { - val invocation = selectedInvocations.next + val selectedInvocations = messageDemultiplexer.acquireSelectedInvocations + if (Management.RECORD_STATS) NR_OF_PROCESSED_MESSAGES.incr(selectedInvocations.size) + val iter = selectedInvocations.iterator + while (iter.hasNext) { + val invocation = iter.next val invoker = messageHandlers.get(invocation.sender) if (invoker != null) invoker.invoke(invocation) - selectedInvocations.remove + iter.remove } } } diff --git a/kernel/src/main/scala/reactor/EventBasedThreadPoolDispatcher.scala b/kernel/src/main/scala/reactor/EventBasedThreadPoolDispatcher.scala index a3b9b4dbe4..939fe8ccbe 100644 --- a/kernel/src/main/scala/reactor/EventBasedThreadPoolDispatcher.scala +++ b/kernel/src/main/scala/reactor/EventBasedThreadPoolDispatcher.scala @@ -4,12 +4,16 @@ package se.scalablesolutions.akka.kernel.reactor +import kernel.management.Management + import java.util.concurrent._ import locks.ReentrantLock import atomic.{AtomicLong, AtomicInteger} import ThreadPoolExecutor.CallerRunsPolicy import java.util.{Collection, HashSet, HashMap, LinkedList, List} +import com.twitter.service.Stats + /** * Implements the Reactor pattern as defined in: [http://www.cs.wustl.edu/~schmidt/PDF/reactor-siemens.pdf].
* See also this article: [http://today.java.net/cs/user/print/a/350]. @@ -56,16 +60,17 @@ import java.util.{Collection, HashSet, HashMap, LinkedList, List} * * @author Jonas Bonér */ -class EventBasedThreadPoolDispatcher(private val concurrentMode: Boolean) extends MessageDispatcherBase { - def this() = this(false) +class EventBasedThreadPoolDispatcher(name: String, private val concurrentMode: Boolean) extends MessageDispatcherBase(name) { + def this(name: String) = this(name, false) + val NR_OF_PROCESSED_MESSAGES = Stats.getCounter("NrOfProcessedMessages_" + name) private val NR_START_THREADS = 16 private val NR_MAX_THREADS = 128 private val KEEP_ALIVE_TIME = 60000L // default is one minute private var inProcessOfBuilding = false private var executor: ExecutorService = _ private var threadPoolBuilder: ThreadPoolExecutor = _ - private val threadFactory = new MonitorableThreadFactory("akka") + private val threadFactory = new MonitorableThreadFactory("akka:" + name) private var boundedExecutorBound = -1 private val busyInvokers = new HashSet[AnyRef] @@ -89,6 +94,7 @@ class EventBasedThreadPoolDispatcher(private val concurrentMode: Boolean) extend } catch { case e: InterruptedException => active = false } val selectedInvocations = messageDemultiplexer.acquireSelectedInvocations val reservedInvocations = reserve(selectedInvocations) + if (Management.RECORD_STATS) NR_OF_PROCESSED_MESSAGES.incr(reservedInvocations.size) val it = reservedInvocations.entrySet.iterator while (it.hasNext) { val entry = it.next @@ -157,6 +163,7 @@ class EventBasedThreadPoolDispatcher(private val concurrentMode: Boolean) extend ensureNotActive verifyNotInConstructionPhase inProcessOfBuilding = false + blockingQueue = queue threadPoolBuilder = new ThreadPoolExecutor(NR_START_THREADS, NR_MAX_THREADS, KEEP_ALIVE_TIME, MILLISECONDS, queue) this } @@ -169,7 +176,8 @@ class EventBasedThreadPoolDispatcher(private val concurrentMode: Boolean) extend def withNewThreadPoolWithBoundedBlockingQueue(bound: Int): EventBasedThreadPoolDispatcher = synchronized { ensureNotActive verifyNotInConstructionPhase - threadPoolBuilder = new ThreadPoolExecutor(NR_START_THREADS, NR_MAX_THREADS, KEEP_ALIVE_TIME, MILLISECONDS, new LinkedBlockingQueue[Runnable], threadFactory) + blockingQueue = new LinkedBlockingQueue[Runnable] + threadPoolBuilder = new ThreadPoolExecutor(NR_START_THREADS, NR_MAX_THREADS, KEEP_ALIVE_TIME, MILLISECONDS, blockingQueue, threadFactory) boundedExecutorBound = bound this } @@ -177,28 +185,32 @@ class EventBasedThreadPoolDispatcher(private val concurrentMode: Boolean) extend def withNewThreadPoolWithLinkedBlockingQueueWithCapacity(capacity: Int): EventBasedThreadPoolDispatcher = synchronized { ensureNotActive verifyNotInConstructionPhase - threadPoolBuilder = new ThreadPoolExecutor(NR_START_THREADS, NR_MAX_THREADS, KEEP_ALIVE_TIME, MILLISECONDS, new LinkedBlockingQueue[Runnable](capacity), threadFactory, new CallerRunsPolicy) + blockingQueue = new LinkedBlockingQueue[Runnable](capacity) + threadPoolBuilder = new ThreadPoolExecutor(NR_START_THREADS, NR_MAX_THREADS, KEEP_ALIVE_TIME, MILLISECONDS, blockingQueue, threadFactory, new CallerRunsPolicy) this } def withNewThreadPoolWithLinkedBlockingQueueWithUnboundedCapacity: EventBasedThreadPoolDispatcher = synchronized { ensureNotActive verifyNotInConstructionPhase - threadPoolBuilder = new ThreadPoolExecutor(NR_START_THREADS, NR_MAX_THREADS, KEEP_ALIVE_TIME, MILLISECONDS, new LinkedBlockingQueue[Runnable], threadFactory, new CallerRunsPolicy) + blockingQueue = new LinkedBlockingQueue[Runnable] + threadPoolBuilder = new ThreadPoolExecutor(NR_START_THREADS, NR_MAX_THREADS, KEEP_ALIVE_TIME, MILLISECONDS, blockingQueue, threadFactory, new CallerRunsPolicy) this } def withNewThreadPoolWithSynchronousQueueWithFairness(fair: Boolean): EventBasedThreadPoolDispatcher = synchronized { ensureNotActive verifyNotInConstructionPhase - threadPoolBuilder = new ThreadPoolExecutor(NR_START_THREADS, NR_MAX_THREADS, KEEP_ALIVE_TIME, MILLISECONDS, new SynchronousQueue[Runnable](fair), threadFactory, new CallerRunsPolicy) + blockingQueue = new SynchronousQueue[Runnable](fair) + threadPoolBuilder = new ThreadPoolExecutor(NR_START_THREADS, NR_MAX_THREADS, KEEP_ALIVE_TIME, MILLISECONDS, blockingQueue, threadFactory, new CallerRunsPolicy) this } def withNewThreadPoolWithArrayBlockingQueueWithCapacityAndFairness(capacity: Int, fair: Boolean): EventBasedThreadPoolDispatcher = synchronized { ensureNotActive verifyNotInConstructionPhase - threadPoolBuilder = new ThreadPoolExecutor(NR_START_THREADS, NR_MAX_THREADS, KEEP_ALIVE_TIME, MILLISECONDS, new ArrayBlockingQueue[Runnable](capacity, fair), threadFactory, new CallerRunsPolicy) + blockingQueue = new ArrayBlockingQueue[Runnable](capacity, fair) + threadPoolBuilder = new ThreadPoolExecutor(NR_START_THREADS, NR_MAX_THREADS, KEEP_ALIVE_TIME, MILLISECONDS, blockingQueue, threadFactory, new CallerRunsPolicy) this } @@ -311,13 +323,7 @@ class BoundedExecutorDecorator(val executor: ExecutorService, bound: Int) extend def invokeAll[T](callables: Collection[_ <: Callable[T]]) = executor.invokeAll(callables) def invokeAll[T](callables: Collection[_ <: Callable[T]], l: Long, timeUnit: TimeUnit) = executor.invokeAll(callables, l, timeUnit) def invokeAny[T](callables: Collection[_ <: Callable[T]]) = executor.invokeAny(callables) - def invokeAny[T](callables: Collection[_ <: Callable[T]], l: Long, timeUnit: TimeUnit) = executor.invokeAny(callables, l, timeUnit) -/* - def invokeAll[T](callables: Collection[Callable[T]]) = executor.invokeAll(callables) - def invokeAll[T](callables: Collection[Callable[T]], l: Long, timeUnit: TimeUnit) = executor.invokeAll(callables, l, timeUnit) - def invokeAny[T](callables: Collection[Callable[T]]) = executor.invokeAny(callables) - def invokeAny[T](callables: Collection[Callable[T]], l: Long, timeUnit: TimeUnit) = executor.invokeAny(callables, l, timeUnit) - */ + def invokeAny[T](callables: Collection[_ <: Callable[T]], l: Long, timeUnit: TimeUnit) = executor.invokeAny(callables, l, timeUnit) } /** diff --git a/kernel/src/main/scala/reactor/MessageDispatcherBase.scala b/kernel/src/main/scala/reactor/MessageDispatcherBase.scala index 9dd21f2f42..d47db197a5 100644 --- a/kernel/src/main/scala/reactor/MessageDispatcherBase.scala +++ b/kernel/src/main/scala/reactor/MessageDispatcherBase.scala @@ -4,20 +4,31 @@ package se.scalablesolutions.akka.kernel.reactor +import kernel.management.Management + import java.util.{LinkedList, Queue, List} -import java.util.concurrent.TimeUnit +import java.util.concurrent.{TimeUnit, BlockingQueue} import java.util.HashMap -trait MessageDispatcherBase extends MessageDispatcher { +import com.twitter.service.Stats + +abstract class MessageDispatcherBase(val name: String) extends MessageDispatcher { + //val CONCURRENT_MODE = kernel.Kernel.config.getBool("akka.actor.concurrent-mode", false) val MILLISECONDS = TimeUnit.MILLISECONDS - val queue = new ReactiveMessageQueue - + val queue = new ReactiveMessageQueue(name) + var blockingQueue: BlockingQueue[Runnable] = _ @volatile protected var active: Boolean = false protected val messageHandlers = new HashMap[AnyRef, MessageInvoker] protected var selectorThread: Thread = _ protected val guard = new Object + if (Management.RECORD_STATS) { + Stats.makeGauge("SizeOfBlockingQueue_" + name) { + guard.synchronized { blockingQueue.size.toDouble } + } + } + def messageQueue = queue def registerHandler(key: AnyRef, handler: MessageInvoker) = guard.synchronized { @@ -40,10 +51,16 @@ trait MessageDispatcherBase extends MessageDispatcher { protected def doShutdown = {} } -class ReactiveMessageQueue extends MessageQueue { +class ReactiveMessageQueue(name: String) extends MessageQueue { private[kernel] val queue: Queue[MessageInvocation] = new LinkedList[MessageInvocation] @volatile private var interrupted = false + if (Management.RECORD_STATS) { + Stats.makeGauge("SizeOfReactiveQueue_" + name) { + queue.synchronized { queue.size.toDouble } + } + } + def append(handle: MessageInvocation) = queue.synchronized { queue.offer(handle) queue.notifyAll @@ -64,4 +81,4 @@ class ReactiveMessageQueue extends MessageQueue { interrupted = true queue.notifyAll } -} \ No newline at end of file +} diff --git a/kernel/src/main/scala/reactor/ThreadBasedDispatcher.scala b/kernel/src/main/scala/reactor/ThreadBasedDispatcher.scala index b01f373dc9..fbae2d8c99 100644 --- a/kernel/src/main/scala/reactor/ThreadBasedDispatcher.scala +++ b/kernel/src/main/scala/reactor/ThreadBasedDispatcher.scala @@ -4,18 +4,24 @@ package se.scalablesolutions.akka.kernel.reactor +import com.twitter.service.Stats + import java.util.concurrent.LinkedBlockingQueue import java.util.Queue + import kernel.actor.{Actor, ActorMessageInvoker} +import kernel.management.Management /** * Dedicates a unique thread for each actor passed in as reference. Served through its messageQueue. * @author Jonas Bonér */ -class ThreadBasedDispatcher private[kernel] (val messageHandler: MessageInvoker) extends MessageDispatcher { - def this(actor: Actor) = this(new ActorMessageInvoker(actor)) +class ThreadBasedDispatcher private[kernel] (val name: String, val messageHandler: MessageInvoker) extends MessageDispatcher { + def this(actor: Actor) = this(actor.getClass.getName, new ActorMessageInvoker(actor)) - private val queue = new BlockingMessageQueue + val NR_OF_PROCESSED_MESSAGES = Stats.getCounter("NrOfProcessedMessages_" + name) + + private val queue = new BlockingMessageQueue(name) private var selectorThread: Thread = _ @volatile private var active: Boolean = false @@ -27,6 +33,7 @@ class ThreadBasedDispatcher private[kernel] (val messageHandler: MessageInvoker) override def run = { while (active) { try { + if (Management.RECORD_STATS) NR_OF_PROCESSED_MESSAGES.incr messageHandler.invoke(queue.take) } catch { case e: InterruptedException => active = false } } @@ -44,7 +51,13 @@ class ThreadBasedDispatcher private[kernel] (val messageHandler: MessageInvoker) def unregisterHandler(key: AnyRef) = throw new UnsupportedOperationException } -class BlockingMessageQueue extends MessageQueue { +class BlockingMessageQueue(name: String) extends MessageQueue { + if (Management.RECORD_STATS) { + Stats.makeGauge("SizeOfBlockingQueue_" + name) { + queue.size.toDouble + } + } + // FIXME: configure the LBQ private val queue = new LinkedBlockingQueue[MessageInvocation] def append(handle: MessageInvocation) = queue.put(handle) @@ -52,4 +65,4 @@ class BlockingMessageQueue extends MessageQueue { def take: MessageInvocation = queue.take def read(destination: Queue[MessageInvocation]) = throw new UnsupportedOperationException def interrupt = throw new UnsupportedOperationException -} \ No newline at end of file +} diff --git a/kernel/src/test/scala/EventBasedSingleThreadDispatcherTest.scala b/kernel/src/test/scala/EventBasedSingleThreadDispatcherTest.scala index dc272893f5..3ac4eee51a 100644 --- a/kernel/src/test/scala/EventBasedSingleThreadDispatcherTest.scala +++ b/kernel/src/test/scala/EventBasedSingleThreadDispatcherTest.scala @@ -55,7 +55,7 @@ class EventBasedSingleThreadDispatcherTest extends TestCase { val guardLock = new ReentrantLock val handleLatch = new CountDownLatch(100) val key = "key" - val dispatcher = new EventBasedSingleThreadDispatcher + val dispatcher = new EventBasedSingleThreadDispatcher("name") dispatcher.registerHandler(key, new TestMessageHandle(handleLatch)) dispatcher.start for (i <- 0 until 100) { @@ -69,7 +69,7 @@ class EventBasedSingleThreadDispatcherTest extends TestCase { val handleLatch = new CountDownLatch(2) val key1 = "key1" val key2 = "key2" - val dispatcher = new EventBasedSingleThreadDispatcher + val dispatcher = new EventBasedSingleThreadDispatcher("name") dispatcher.registerHandler(key1, new TestMessageHandle(handleLatch)) dispatcher.registerHandler(key2, new TestMessageHandle(handleLatch)) dispatcher.start @@ -83,7 +83,7 @@ class EventBasedSingleThreadDispatcherTest extends TestCase { val handleLatch = new CountDownLatch(200) val key1 = "key1" val key2 = "key2" - val dispatcher = new EventBasedSingleThreadDispatcher + val dispatcher = new EventBasedSingleThreadDispatcher("name") dispatcher.registerHandler(key1, new MessageInvoker { var currentValue = -1; def invoke(message: MessageInvocation) { diff --git a/kernel/src/test/scala/EventBasedThreadPoolDispatcherTest.scala b/kernel/src/test/scala/EventBasedThreadPoolDispatcherTest.scala index 89b908015e..c0b205d6f6 100644 --- a/kernel/src/test/scala/EventBasedThreadPoolDispatcherTest.scala +++ b/kernel/src/test/scala/EventBasedThreadPoolDispatcherTest.scala @@ -37,7 +37,7 @@ class EventBasedThreadPoolDispatcherTest extends TestCase { val guardLock = new ReentrantLock val handleLatch = new CountDownLatch(10) val key = "key" - val dispatcher = Dispatchers.newEventBasedThreadPoolDispatcher + val dispatcher = Dispatchers.newEventBasedThreadPoolDispatcher("name") dispatcher.withNewThreadPoolWithBoundedBlockingQueue(100) .setCorePoolSize(2) .setMaxPoolSize(4) @@ -76,7 +76,7 @@ class EventBasedThreadPoolDispatcherTest extends TestCase { val handlersBarrier = new CyclicBarrier(3) val key1 = "key1" val key2 = "key2" - val dispatcher = Dispatchers.newEventBasedThreadPoolDispatcher + val dispatcher = Dispatchers.newEventBasedThreadPoolDispatcher("name") dispatcher.withNewThreadPoolWithBoundedBlockingQueue(100) .setCorePoolSize(2) .setMaxPoolSize(4) @@ -121,7 +121,7 @@ class EventBasedThreadPoolDispatcherTest extends TestCase { val handleLatch = new CountDownLatch(200) val key1 = "key1" val key2 = "key2" - val dispatcher = Dispatchers.newEventBasedThreadPoolDispatcher + val dispatcher = Dispatchers.newEventBasedThreadPoolDispatcher("name") dispatcher.withNewThreadPoolWithBoundedBlockingQueue(100) .setCorePoolSize(2) .setMaxPoolSize(4) diff --git a/kernel/src/test/scala/RemoteActorSpec.scala b/kernel/src/test/scala/RemoteActorSpec.scala index 61397e6018..3387aa8eb0 100644 --- a/kernel/src/test/scala/RemoteActorSpec.scala +++ b/kernel/src/test/scala/RemoteActorSpec.scala @@ -26,7 +26,6 @@ class RemoteActorSpecActorBidirectional extends Actor { } class RemoteActorSpec extends TestCase { - kernel.Kernel.config new Thread(new Runnable() { def run = { diff --git a/kernel/src/test/scala/ThreadBasedDispatcherTest.scala b/kernel/src/test/scala/ThreadBasedDispatcherTest.scala index 621e3dccfd..1ad5c0b733 100644 --- a/kernel/src/test/scala/ThreadBasedDispatcherTest.scala +++ b/kernel/src/test/scala/ThreadBasedDispatcherTest.scala @@ -49,7 +49,7 @@ class ThreadBasedDispatcherTest extends TestCase { private def internalTestMessagesDispatchedToTheSameHandlerAreExecutedSequentially: Unit = { val guardLock = new ReentrantLock val handleLatch = new CountDownLatch(100) - val dispatcher = new ThreadBasedDispatcher(new TestMessageHandle(handleLatch)) + val dispatcher = new ThreadBasedDispatcher("name", new TestMessageHandle(handleLatch)) dispatcher.start for (i <- 0 until 100) { dispatcher.messageQueue.append(new MessageInvocation("id", new Object, None, None)) @@ -60,7 +60,7 @@ class ThreadBasedDispatcherTest extends TestCase { private def internalTestMessagesDispatchedToHandlersAreExecutedInFIFOOrder: Unit = { val handleLatch = new CountDownLatch(100) - val dispatcher = new ThreadBasedDispatcher(new MessageInvoker { + val dispatcher = new ThreadBasedDispatcher("name", new MessageInvoker { var currentValue = -1; def invoke(message: MessageInvocation) { if (threadingIssueDetected.get) return diff --git a/lib/atmosphere-core-0.3.jar~HEAD b/lib/atmosphere-core-0.3.jar~HEAD deleted file mode 100644 index aef71c00bac3321cc8d75a5013cd65a506133e30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25729 zcmWIWW@Zs#;9%fj;GFcsiUA3TFt9NAx`sIFdiuHP`#So0y1532==r++JH@~-H~3)D zYy*M4#)s`QETkoG&$LpU>@55JLf^@hS!&n&n6j1KJ$h6&{QVv)DK71^d~Te@o8y*b_M_J^5E<#U(~1FM{8>Q2!tzTgntDzCP5)0w2p z84UZ@^ZbxA{OCMkRnsi5OS*jx%&Dr&TTeOkR2`UjRiW!^kmrPNE-_Cj|^8DvL{-rKHVn*D`QWsyo zx%U0k!`(aTmK)S0u{NbEloZvx4`kjvLH4J;vOAwjqN&HFEfdoNb9a2%>-E?{{rZu| zACFFxymIBOi|Pa4JG{wFrUI)O#};2A+!V@jZ8~ge#+p<0OClOF7q`;H2(oUnVP3*|bpRpYH5h ziAsY9^(XE+yr?<^ry))T21FWSW&mjfr7$KC!GKRA zKeEQ$#In>peNwc`VQSAWO4my)$;~e=$Ve?pCCM~Bf~Fx1)=kbQ(R3S$!D$Uwm1VXdFxg{_J!m9}1(YyaXF_mYz)vL2HSd|mSM3m<>0{V+?~ zEhYHE!5@uB;%4Q%=_xwokZ*bI1=F(tTi1&*Gam#pZ(+X>yS{(#y9Y&ePOGnY?wJto zRTxmDZ?k;X`@A22PffaJqrBK4Cc|i3&ZqU(v(0`nfud76kmFJn0|P?`N_6I~|Bh0Y zn3Cnkirk#7VJGu$8wl+Et(s?)O7N5ALGFaF-WyTXlY zZJg!i;so!_Q8{aL^9;|uoaXJqeacKmbMB+%=lg%K>CP2Bzvr%W;KuUZvbSQZ?_Cv& zeK^0LKi<)B`NRpwf=*gwNET+>{8%8d_1?aE!+g6E%oP-MLt zbF1Kk!>Z88JL-lSidn^}UA))lJW!4^Ub!vFcP8rwHMjOJ0(S(iTeW{V=3V0Z;bTCz z>3M}qy7i07gq2$!Mz4@@Wa7*_+4OnGOWTv7hc?Tz&$g3h*}mcC7Y6pG;!fXp~>xAvOb>TD8<+xI%!p?Xi& z)#QvDrst3BTmDpQt{ZFHF}_mqR_|Zc>x1mXZmaGp)GfNyDmwAK?sUJjq}ARU2iXcv zrFpG$jmolL<@a>n<5j-X&wQJ`BIA4I!Y#e?YJ@-jXnMeBwB}c$eeVmqx10?zvln(J zUasiMZ91N;^22AI!s|Ixl_ghkDrX7=_^XLtER^e<=d|L)(Kac$_K8o^rrYyf4wev9 zULRh#DsjfPv{Rho{Sqan<`TKiH{P1nWSIZ3eckkIhpkkxU|Q0_RHol?TdH<8?G8@- zH0#To#!$|yF7XR;OEuS?s5bLXeGvc6onzhk&z~O}+}O5k$_r7RPun>kvLvPKV3Sv4 zEx7Q5|J?4o+uhGiJ)?VI^FH|*g1Sdk&iDTjyuP*%$lpmT3#McF^ zd>9{M^P3x#jTZA?-2H@!fngdKzEV*LIU5zH7L{ctrxxQa%0kdGq83&YvQmqRQ!8~r zCZ-nYCg^!Qv(sf>CCA-^ac zuTRkRfNBVk9z@Ygl6DcOl}OqNmfY-UEhJ+cW;nvD8P~GZyb{m6tkmR^{2~=Yz2uz4 z;^L_x(f-1YBLBAO>gaZd9I)<6YTU-b+_hcAbJjApNkyEwzgFCwwlQ|on`tvOr`tcw z4{VmIHL&}=xF>y^=*EnU-7jO#&3S*u{Q0-X&#&h*h<&u_V!YF>*mY7vt-!vEWf_}c zucYuviMdOCmiV5TRgthD{;KTE2m^!g53ap8v(8WNwGy8bS}V0_`R_lB->=NtetPvO zaY-gU>v@aAcyv^%otB+qQ?jgYmzL18kh`DpE_8>+P0{Hp%B=gdcBe*LRNWVIGjU}$ zNLX7bCvJIt+N8-XUyBNpCVKE+*`akiZ}J*H_2B0ZcrSLU`D}S{#U|R6wUKW(ldgE# zTjt*#o_c&S>mp)TvPCalcta@X^Ix^;TEz=z<@}iUWTt46p__Sj>9bpLy}4mu7JK}8 zwP!=X*Y7iOs&b}tpX{HRV{wLa&Vi_X7vf^yJ$w7>Uc|-xF0J~PFFbnwAK(6Y7RyoN z_o1=zR&lv=SMS=NoOJGx&5TyZ2(h*e34v91CLd265|W!;k@Qe=p5%-@GkRKA?{JH} z6?}yEi1poMg^RuQJZHWYOm0;4TC@4Z_LJufSSo78Pin4dN!xjU^_=&bbtSU|+9z?| zWcpKjsjB@!evI$7k~&nz42}d4V{a<0)_R_w^TSa!+RUxM@j2pkaahG^`o@4LwSdK!e-=6Fd zM^mNNCdeMnG3Fc(R{8v>Rb^F12*zC|x zzcow@42o>XWfOX4FeEKAK(fNz&}eX0SQZ13JY#;NLC zb7$H{oy_vnZ?+tof1&=N@vjA)YHjKDQ$D^a(Oh!l#itF$uYc;LpF8vA`uq3xjAtHK z@)-JjPhyJ{-mF%^!zSiqW3o}gSzm5uMb4wn&gDFTntT$=ihhS3wt6yeLT^_ zU0^R;f1_`0+=L{p*aU-XcVZ7-n7>)}*fiIBABrds2~V=C>)Wr>5VLGSpdiY3HQqr*U^5{&uQ* zw1V?nmKpCV)9Z>FH+kKpTzP7bTu{l8`ZL|5MYwckxz-pP2fAwa!s2sdBrXchcQ& z{?{VflWkrLZ@I6V^lbT~(}g?_R&}Nq>NG~E-+J%iyDeUDm#3oMC6%|P5|3v0DL;ui z`pM?u&so|fMOIJG8hrVF8S;>Dm=EiRSt2c#=D!xmI>3yy^ zv(#yC_)Df^FH8F_#>Fq>?^xXbi=}th%J<9fEtuEkn>#6OPL=&S?a#b#jCqwLc$ykh zV=jwWF*^9{;>CKf3ooP zjJbxY8f+2moxGdoT<@8wrj_u;-P~|l=%gL4oNixUn7vc5+Tc}H&b*iDVNHsXv2AhF zyEmL?*1yOs-&^9ReDRXUg=J=@LNgB7uAO*5<=tx;xr{!|B_;Foa?9NQPjnJLe8J`i zGpIV>|LooAD@+Uw@$8gk8Mn-wlGGv<$K;aC{5(jOnHrLte_2`hF#;5%{C@T2WzF*U2yyslZ_;yo1)#kesPjUCeNpsZC z+vcCQyz}k(`t|kH zTQ9{0rbpCSXKYSBoL4+m`{kJhJ1;H!eJ({pJF+h_&z#>U|GLG7mo8$i+V3T|l)OA) zVYX@8Lz7Lr-beZ=PnX=_yXDC>-rZRhV(af^D_Xi;ezMQ|Y38y$Pb2e6=$eg)UN>wW&D zweF*|#p*|_*HUu~boef~9<|}pdiN;q{1Jn-No}(&%sKNW%}A5jYr*ZjA#XR|$yq+> zzn-m;k(pUKf64NH?yQHS{x=W~g_njKhIka5WO(Sq|Jc^&i^0i4 zo0H#NB!v#`=#x&Ep2YZLOh&i^-FP_N1G`bXHZKRaO$R&2NY--IC z&mWh6u&orE%A6kHCn%<(#A&3{AtjRHGU4I`h2*B5(@j1a_d8jwN~UKAu^+C|y>YN3 zj=R)g+4U!UYF~mkO!m&^{E~9__@o1=J|A5tg&$(}5qq>BJOZ%i!RE|XCI$vQR(xsP zh+wq#ZJuq&=TGhf$yb7I9Jp&T zX~*)lza=F!BrOa+TyU5vP~H@LDERhA^)QRiYbNqI{XELGeBIL@^Mux^Gq2vc;ohl& zSJew^u9>W-_+CI%%XPd`)lG9gO8uywfyBedu|!s zX)n9QugbqP@?A2~Ffr-+5w#$-t{a8{sxs>?J2=&?tJK-kc=cuPlEobUdd1=#x4YkM zwel`)xuo@U!MXKnocqK(7B2Y8@N-YtiSyd$4j&O)9Jwv-GvC{jq1n$DyedDks{MJ# z{EgaeGUp?Cg%w>5Q#AW*ewRr+7Kk|*nvnNW#BiC;IYZw&ZcX-np?}+c+*>T~q4J^h zME)S1e(j-I={(UE#L82WpGA-|*Y;+^paFMz7J8iWjjZWsPRW%T50`3cjuH zlKA%Q_xFuw|C{_a`_QmE(VSMS9Z&ng$^hBnfVfdGY&*q&Jx)uh~gwnYRk_q+J=N^ai0XQh72^IqL4dAF+ifAJ-g+{>3f+1Sm3mCif82tB>m z@6FNLojc_DpFB*j2srHA^)6ApuFu`XX4SlY%fOD~qF=bT+AMtN>H76_j7{tExfN{t zPdPKz&F$v>(HrzQQoXMGerAPVuKoIlti1YK&-9-@_+D8dx&Fz6(628|RbQ5-9+Kwz z)!cM14zMD)7GZtk|Qr7s=?kwAQ&gDwR`u?`sw{`J4c`mG>zO!qhYu>ro2$TpPo!{Zs z8*u0D1g69c-3SzbDWX@%#( zlhgh>#;>@X`|9}l?zWu1oSjS8W!CoD&*+F;!+qH%TD_ z30vOFDO$6wCfVp|%FlM%nmi@KI!tusoU=EkY3+BoarefXo6pRZPR1G8uH7c>ym5!V z2>%R02{BCx6RX;TR{QUF9KAGAWlhj-`HeesCqE1q&CCAG?e*=t&dG+HF6dSI9Wm zFJ@+5+SHj@yJ_O@eHAxKqHIK?FTY-G?shmj)H~2~-olx;YcFc-yxHv5!T&KmYbNv6 zJOkd)MOJN{=L34xd2%S}Bm zXLu@ea%35$gu7kmO*_TrgqJ4$0ZSC{0tI2>2I$hz*Le}h%jhN$Vy1)KW9w$5n^ zF5S`?YN~iRWbt8#_CEcC%THRw9`oL(#{N1;LD*#G3h#wJNvrSfKVLetXR_(cMcxxd zif_r@-Ff?6_l%DhCr!``ekzdq$t0F<>fsX2z+?U=3cOwv?eMvt(x$i6D0p(@t|^{7 z^+X?CS}J50yJ|_)H(r^0XrGe9*7BxNi;B#`qqR>YrnTKv(krclm7_{az*GH`tk&~zHnv>C1@PzN^ zJ)=|qmYmkgy!bKq)TFB|DZM&r3NF`E*KYYBA>+KZm_f!SdcwgD-&uQiuK(l9_L)Cr zm-O0cr6;T7UK@y7-pM&ValxHEdKI(x)@aK1Zuqy%(%tmzvp~NW*LH3?D{H(cy2Ik8-io`tHfAbOqCU&uGb?TBCG%%gU{5G9zDp+@zG=uY1SF zUGvgmKauq4XP=j*>Fy5|5)(>lm4E+m zjBeU9VdGURv%hUt4D6Z@RE~?a9eQ*1@@aRCYT@N(H$S!?PcS{k7Lpvcf**<>C1z(AWP6*Y<*wG3G7{u6ez{1GEBBh|n)U8tX_p!+ircT} zemJv1XJK9W(l0BOYtjT}aK5_kvYPj3o1kxfTD!H?8OPH$wro9Tmz;X!+UkDtMPK@q z1(Mo{hdU!!d;QP-5?I5?vHq#O-ygLz3-8wytuvoL=YMd;Ta5tc`d536?c-xjIpkTa z%^sH2aejJRlk$;2;=!snZD+T#N3PquVg45On|BL#lsUh4>(gE>y;JXH+vNM7e)zsW z=D1F)?q=$zduK|miguJKO^@l+Bxc zOp`rL^B-56%`atNw`}!^d%cB!Pwjf}L`u@_rtylLDW{HYU?~hvoc?n8t|^B~HCta# z;?nkb+CJCo_(YFYaYvVHtSn0R+IINP&9qNf*RJ>6*Q9&HYQ`ng8K2JdOu4<`?xHP~ zFLipOKgX0GF5^G;-mOlbZ`(shk&2yDH%kkbJzBU*&S%ZW@VBlHJ-PbVPyUur#J^1B z=J$sJ`@~8YZcw}Z$gtF$Z{ngiaz3ly9bL#&Tz@A|W}EQWtldl4+wD7En%=zXdUNlL zL}&3B)4q}@_Ds>kinBdcs|~w*clEqEz1bjP{i0KMRzFL7SGl(!b>dH}(|xDro+u9e zzF-yi={0j-&DHP@5})!lGB!Ef%(ClET)61Q^zy{6*0=XM3$IN(x%8Fav5jKK7s(x6 z^J4vjYz@=-)-%MzSk4`P7_+~X^9SFuhfZe>xUO0Ae&Q>kOR-+3-Y08*41e5yru(#K zt?K3%TAy~zyR+_C4KUHMm=a0To){cCO=RTh?^X%)nQ=^5R?biA% zJ9X~^fgMeCHY?bR_x4EZzY1T_azM~&`T1}^^-B}YLPT#?Z&3%6obo2Eyiv9LT<64QYV=jMR7{~E135EQ9 zp&O$wRIPK~Ww*axJT&I~u{({fAwjIG+myO)r-BX>i zK_u?d&(7;7_RHpQ-pn{;6g20Q!-d3^*ESyJVewBc+B@aoroj2ZADGpA#DtG&<#fLn zeYUVf_44twZ7iiBE2ljUsJ*aq*38u9m+#ch5}NOs{kLz5i~FYoyKJtSUGb}abz;}7 z*QP!m+DCqFaV)*06wCWvi(7t2S{#m`Pzx?HR(yiThbh=(=+-4KrbuZ_|#3}ts zKLjtw`FKoi@4e(_-t8`WfVY;_;a?a}*UEj(a#?$X*mwVknO9@KaO?jGng*$Rc)$LC z`LlxEwL)Ll?x^O?qbGYBez9t6K9{kZ`ec*W<)wQwlD3AbuFgpc-E@kpYNOMIuRnMH zJ(<8+JHPK2L+g(Tp1%WcO^lu<6qPpXVzQtTVoX-;1~56@lo zBy)xN*#K=u`?T~QDrX(iy{1imS*vKQ&2Ij9n#%rJ|5ENTzkHrLx9~N)%BQs}UH+|{ zdBUuZh3kLWqm`W}`bu>^PM+p-knP*{%hN;(*WEttaO*|mUY$2h|G^_+Dh+Bgop~7; z4k_XrB>+uJp-tw1XJZgEDJWgDi0o+THqqmKsoq}mm#UqY)%;}4{i;guu=w2BRrhP7{Ack`(!VzP zo?oMPLLqDA`N{klY3Jtr-c$Tc=l`Gc$G0=e9F(;`G(*sSGh>M(e*)ig)g{ay9Hvj; zJm3)Kbgnthf1FKFNFi2vq*|h}H4mMuq<_hy0H|N>BQ& z%Bk=DV`ode#}CzJ5zm#DvuE=ZT`|~UIVDWDJDTU-<*HdPgz8*Bcci_JY*u^u=1fn* zJ-OMz&qG!7UuU{rC`oqfw5(?4S?k>Sqe4YWUUIgSv}d2%qmzP4Vk(!k3e|Eavvh3E z)X0w5mUUxtmeu*%iq;=#xz^L4Jgb>?JNeH{o9#Jm&3zx5l0;v0JqVPGKJFpaoLqVM znsH6g_Af6@`X$`1g|&VTJNc6JY17gf(-x)ruA5LhTc5-6J?GsEZynp(0xBjQw4LHx z*!FBj-iHc1)DrHZ8^)Qp4gH)dsW)}hu?C{Oa<0?RQi-R zeLd5?Wum`-sLFLq$6GlUmd#JI*m7>^98aCfZW+tew5wB=MU~yuciWk_{(`ApcA9>N zz|ncfHtg(@-JUgTuE~;}j?CRgJ4y@{AKRKfUA#HxUUKG5ndu+2d?!111~#32xJv8F zr;S=C_e_24w(9ajby+>r!vgCpS05^jb;x-g`_lB>=Mck_(eLd(9F2K-f&IGLV;9+- zaw=z)Lw)B(yx#4)FS{jp>Vgcd(s}D=HA~a)|Cv|S9cB!@yd$;r z+qZ8i3=lM@I zW~yP+{Zkd<*H;AGb>7Dj#rghZh5Y`-+@Z#sQvb-+Px$Em$Me|y!nq6AdRb2V(AXpW zgZuEg6^^bx{%_Z<^F7pVWOwM&-dMeBjDk-$^{C{XiqKSfn=HBA<)_#co%Gn$KCE@h1nP1tvM;Q2T~kn@+v*@@CC!Ifz0NBieY+Z1=$-$gs`k+RXQnP~Zq4x> zR%_=UlXbtw?xnwZVcNB~)2fgAif!+9Rety3?$otPvp2{ss1cJ~S+uS{{jqzL$Ng~D zsWtPKznpWKNepp32R=Lpk%&1wroVyH9bVT(RcFd9xah0AmG_Ia z$7;t%i6*CFPiMT?#rfSmLEhq0|AqHzmw0<7osp3Gm_J8k4r`rDL6=(-M_cFYlAUoa zEesRg@(vc~N!~MVzonpiu$=S#{igph*Lhi{U6gqLF0#od+V|YGZ-;U&%bKiRFf*p~ zJIh`3i%w6@@;NUvP;NV`ogvEOSiWEV#m?F@w+no-rr+8dF2GxLYw5na_zT-xwprh} z^q&8h_R(9Cd$&i&zTo^dz2Ls-mao5e+p+9!On6=9xa+@VXYB8sP8Tbg*~htzh2BLR zg}Ws#u9J2AZd9h9$iMMTY0G!fv?F`US$})%IC6VuvgB{>IqWj$u3b9k zc#2zfX*K6UbH&p5=Gn2!ujoB8T6bZgnMHfzgF3HwW%A4-g?80RO*UlcO=Ewc8Cm~YUXvl*I~ zI6Pb@bl!}t=`?zj%s+XaI%k2uV5N31>+g8A->rMs3%p&;*RVXQ=7-c3r3<1`tOd3u zAJ)B2ZK;-hl)<{mc7~W+w2Q+^twU?r5^p^}_x`el&*QkRU9;C^^Sf&PlU;nlPrujQ zFYmC$(~?IiANGT0s}v>(-S%N;VAv{%uZ~v7F_Q08l%JTAoLF3vn3R(W89O~1ayv-a zQNVUG%e59!12?^&CBgUZrZn5g-1vLhl1HEJn`` zx9pNVD0@eAgT{k-4ZnE~@omrDdPH*3&fL=QsoJXoC&i0y-}!8b#G%T)DJ%N21r>Iz zoX{>Rd8~L@=%mo}<6Bmz<`qV+j{4Ma3rk*bkf9%Wvlet3h%+-a9POBWpwh%(*oksa@6{=>U` z`H8i@TO&T6PR`0&x*%%T_B;z`zsT*9%lzi%Ov;pdo7j2#z(?VGq5Xant=gAM|GMXG z@>724*DPT@In~4t&(5;HLJv&W+x~mEM*7H!qSbu&gR-R7TkXmeSSR?#s;c#h)U52t zI|V6AkC|R?-jcL?Nz47ppr}ZzxyG0K+*I;+O*^)ESAFquEz9QzU5|WlIHKy}8soCQ zp<58;Bg>X(0_wcLgD>jOTm zQ>v@uHqhDf^1pG{ywbhjeM6-!(`O4!w^%A~J@JP7^D{x6(d#q4`W1b4>}pO7$vPXU zxZbbi)$S<;8_vqze=1saymIM+oB-SQ+efP-2wjNUXbH;V_Tige~)pcOA3$IXQ(1 zb1WS`81HP7P?2`+cq4RE>49dp?7W; z^71aXeHO>0me>VuW9a>Svi8yD{s)Rqj53S56ZOB#9ukj9Fpd}e=V704deYmUfq_=r zZ_BF-X0GUPR#<((Z`u+2#XjdV%Xxz%j?2WEh#pTX-p0#msi` zKCb@1A;HH>?|e8uyB@q+LOQar^9K_H!za9}CG-hprqm)&v}HrR(6tiNZeQAz;mXQ- zG71E2m27^$%Xe&^^(&#~(h>Poo6WJDOj)-} z%AUQkeE$1fs$cz|KYv&cm^@S3P+-~>*W)JOzKA{9qfGf~bD__S89fb&Ufk+c2}xF7 zx32rdm=_*C;>#RccQx>%CUbJ7f7pz->#J9VJ)N|9lKW}pmp7kIT3e$hend+D=RBXu z7kiXt>aQKBSd_YYsdT$?yQnZ8YG-=inhso#Hc$XvkQ%XD-3nM~av zdsn;bZ+vI(+_qxF($HR?M;-@Pa@=0;-Beo`p&0+^+RRnl+m0=Lblc~u%rllXk(2lM z9X#{@#5tjWEf21ycAmGiN=@(cIJAUq`I6@@C%;Zn*7DyG|MiqwUgVBmYq37%w1+J3 zqIR@z>6GOD?zq)<*{fB@TxU*i4)C?v@IgTG)T95OlO9cM)sc%nk$B>eLfeXiQF^l) zZyan1w2V4Aqw%6xAkUYe_&3{YW?Mu|IS}@E!k%ZGUEQhm?>Ei+@Ka1Q$oOv3deOoeR zb5ry7Oq?dNGGF5lQ~0TmE}xVBT-Cdvc>eJJYYVcy^o;lE&%L_KpL6f58`GPZI$c$3 zpTy3z3fR0#_mtlBoSiex{M+u#_ge1~v8!U^nNyRO9=iPVPSLy6bu*%4E*d`(kTNw4 zycJ#>v*hD-Z{epBJrO?Tc4se?{hI3_@9BT(9owxJ+%A(>@*7N=f8kr7U#^8~w)jg1 zZVTVlqHh+zI3D>z($!Y3szSKRL%lrl&7!@Hd`Z`DI)qE_J9K9GzQy)6U*+!dx;T9_ zcM0Zo;e8`vT|J?hg-a)q;WSIY0hM_VrRF`>i(@hQH9J7Dm+=?7Mf+!wm^PhuXQ!Td zvvSfuDOZ*K6ZB1gv5Z-qX>Ioo5gYx-UJAX*Ea^=vR^H&SgRD`y$*`+Tl9_>_18=U= zB|g_dDzdquvHrr2BDT)c*IijE=Ex%QXWF#&jB5fJ104b+M@b4Z{|#; zKMe6-XVx#Y%UINTFuZ=s$8%+@K`Ps9&fK|qZtwFsGppZ!x&A)ip26oqA`@SQ^fAN4 z3I)v9a*_F&$^0F5b3-cXsW5nOCU#B+WBp-?GwH z`(>K(zaQ?rv4U&qa>=Us;k9q4x*iO^SLAu-XWfF>x2*e;UUUcC)6x^wXAAn!dfL8P3%-h~Pfhm0&UTbIr#kQE_6QTD>cHmKQr-)D?|+IrIGscklI;E)!0& z7ERr~OJ>EXSqeWUB*(G6^ST%sbwag1R-{y+^Zk)k7k(xMEPRn;HCdZ2b=@kvc=4dl zw^0jLRcz4+XNvzZYl+)xgD!zvoD10^gg@HdV;N^akV}+Nl+*Gt`+qP%>tKGY_H1Gb};Oty9?_|Q|Xu+ao zKhK<>)Z${d;?$yuFFq%~{#m^3xKBatW$LU2pr+8vtIAKw0{LiaYt{pD# zcRSzASk9lzEN|vaM=2(7#3l~u{uedwtXt=TxC3CjwhU$=prR) zwaoP%Te5`mLfN~gk4xN)HWAv=*KY9xJkaA){N%nmGXujJyi1-y8v(El^uQaDsYO2d z`Prof=(XS6keflEoG8nbd`Ll1<2$QilF$*ha@Oe*ix)9!I(^LIb)L<`cX{J-_OI%H z#J0qE$?MFo`LI|gU;Xj49W0Z*{Li1=`+Uwm@A`kA{xLUX-tkiG&5`W>8ynpBK1Ff32nQ)GxylDaEVE(JJlrEwBr=S7WIZMoHjRf zzK*l#ORIlfi)}v3Nl$iDW0rWcQ$b+W6YE5c6GnS&U%fHmydNlBb@Ze1p|j6Fy=9pA z?T;S=*K5()N*8!;@||jXboBlD)W@#xlv(z^%dxss-Xyhue-_IG%h0b`jf<6C-}o(e zJ~~y}riW>tUWmrLj~gBquGgHm{anH)!`n-rtv)h+-6@ZqkEW$xs`%00X_-1D!17e% z>(dvwvpzdre>$tx*zDY+IlYW;witGNHq(2ssMXs{FZtM^HNDyktG42$k8mVu|*l3n@y$G4uAv$L9!zlWS$X2OLuQwIzgx_r6Y<#EZ_p&*keq2~B zSt`5Cdv5aIZ0BQLo8B(Gaxt~7_`j&Pvi~nDsjgp}r7e06#oU`Bv%%+Bk96#7+b_~C zZEJRCl#6lxVtRS#NcM(9(JFBlqM4kxe4EH$Abohtt+TaK$~TycQ!gz!%8}Pou;v5T z8_}vbrJsCzIcr?vQy&Slsogu6RM9LOo%7oIi@>BU=LEmRGVN(!JR|?on>@#(CWlpu z?fEABP!g2u;k2~vopJAw^pb7=7Hu1&c*w(Qnab5zf+RV!q^ zesCXn_sv@mUL7H31_oxlnGV-Fb)1<_54=u&Zs=V<&^q;Hx;j^aHfS(ubv12iH46C1 zKY_&~0K7PN4`^}jHtW=~t`9=L#Nrl<&&o*J@oiyG`gU){wY_@c*2QJj`{o;`r~P{U z{rh}|XCH04G?rBxHup3}GTU@is)D*-p^xW_Tk8Z;I<7y>^#9cYd>GGdDIus zF1qmNylbZaCbiW(KD^Ch1-HAtVNcHW+}u#tgGFnST-V&%c4gVNC2tLSe(AiIT_+Pa z$?HRDW_IBdrrpzZZ(q`0GQ&qyLg{r;xWSj_I?;Ppg?Br>opI#&gcBzxMQYACRdoMv zzu?~Vi45mGL!T{M=e2yBddI!X5y6-4=+5jD(^7xByDIncJ#kfC(Usq(w4R%u(rY0$ zX=RLO*v{bXKlcUnS>zpR=&)Nxm_bt_)nr&X!^i=ZU^SToWC$s_!ryCwU;8Vq6cjqMQ;p3;T-+o{`JGy25 z`)S>r>$~$z8M*9c6}MNmeXKvVqcgHRcS7xuiROk1? zfz`@ic*~Q7j@(<@0$z(=E^K+srGJ_2Rfyf;3-@35C$cQ&nd!hM!4~!Vh=K5uK%Qbp zea5WI(*pj9o|v%rjP4{~wmrLoSbHvq$}au7&xv2aS^jKc*RITW%PpOZOXnVA*;_d4 z?w)mD%r~4DX)$=A&g{M8Szra{jy}a5y?YuH+poP@`Y96bDzRfjAjWBSR?O!leo+~<@^gb^TN}?o)64KB|a@OyyIAr zF!js3UsbG!cAluHs(L1JcV@6e{KdC)`rvq$}^|F8NmOYmdG2X@fFhtb~Vf_qF13^{nS53W|D7kJkUQYM0J@K_r5vslDc zv=b>U66X}AOC)Sgyjjr6=Ax=6bc4miNx(*Z^Vv5lyNzGVC{_r)-?U+m{+27B z#JzrUax4F6j)-av{TKM^`esHarv%OIS-XGl{rBtZ>-T%>Z0rAjex1)?_HZuSmW17X zsTB^#&1`OT_`SKXA()f@<&D;M>5m+8xeh|Rr>^rpo_xYIiC-@KY#i@ht7nPxncjpi z-sALDV`KPnMwu%G9`5qLqzxJlTd@_o92S=9%d$`lkQbY~V5@UN?Y+-$*GNv=yC7)F zzB5sBvuiK$KRJ1KU%Hr%F~`#V&E92J>xAD4c`VP0xooB};l(GepoF@6g{k==a+Cfw zScWWGX8ArcE%U+`Syg{6;ZwSd91?feY5!d}Ns?vKtZlcp<=k~~fBs|QX|tu<#P>P4 z-}`jxrb5x?!-jU!Au{XAohRG73!8y*SN`Yi`iC*~iXa z2)4O$(y;OB)t!@G-nyALeR5q0XR4xk+DWe$73+!?%iLf(IY;`JI;)YXoI+di)_d<= z_o;rj=$dxaxIp^qw!_=IM-K9@~eVLt<*)|(~}tWquAF+`Jers=JjZzmG-CFmu)xis-Blh zT*2>Z6y&+<**A^S#b*S|xPx6?l+cHKGfVoKLFn_%q) zqGuO`_q7(PKJA`ZkgWLfw8N(Br)-vI7PqsVS|jdvLTkH*>15H+w)LMjxqd8K6BhSw zOWtwT|2q!sy8Yz&)(Q92>{naJ?R~KGO_;Cq@s_8yx2OF}pdvlZ7`Hcp$pHe5n4-fDJcTQ^tZx+`l|FK=04|7GR;RgxON z?sdMZl{k`Bw@Bx4at*&r@Z_qXA5Vjh|Myz6sLa$oT2s4sUfzF6rN7*-&K;joee;?y z^PXfDQh*3EC2wy$Mpsl}x_ zM&A0w`q1_M3pS=7R+V6iPqJn&Um5zj%GljnxIRVAz}~syGRwQL4`*CWwyXTJ={|N& z<@dBFPdERM%iQ1e_K41m1BW)B_!4vE(fkcAIWrCfom;cRZ1aN6^ETOOZod+5cYg8L z1q`$EZr5^RhRYDpYQ-dHYzL~jiKMK<8PkIDd@@@RGSx~-U^3Lz)?pi*dS6y8H@7F)( z1KwA{C%Ug?5cl`pl6uBCdEV|Dg&R*l=xYtyqc3r4t>XMo2}d5+6OjT4kO)Qu{Xh3|3iyyRpSJlD(d#vVDBRreAsq8wCG z?s2a?@`iswSUcdG=MT40omFBQH*``TEx#?=D*T{gCgZQvoK*&asgd-w$nh zn#jvIV2ptIW06LC#57MH)V>&l)GEzgeIA2WnSLUdtBo`TYxt^ zM_R)dzom=}3|h?i(ttLxX#f)YM$!U|rx-Lb{ zZW9T*yrkr}g6QhWXH#~+O;evc*EcwRMMQ|m{S4Oo5nAW%RA#p^gt2NJRp)2C&tZ3g zYu~~8E5&JP>E^pP-}ThA|98W>{N0?-bKlRYez)`cyOaO#)yg-7{W;$L^oI|t>Gk5z zk$HB{54+ybfAraIO0s?b9fe13@>&%ixa~q7b=&+{%C+Y3^qt>D1>?Uy%-+!%zfbQ` z1Hb8w^JmZU6ix`;cX0jojvZIqqwd6YS{E$m*R@c2w1MBfU<=dzBe8LJo*mW*QaTp# zQDU-m`qAC4K0gBbt6lEAZkGQZ`Y75Wt~39!wbH)mPPIGlk1|iK5Kwoi=`WRk^vr^J z&XZ?}dHeJqu`AVSJaT6`W%X#+w(y24lKt9I)jobIQ(78cZIHVDRD(A+M94YojzrF@ zTblf*4=$1GWqny~u`<&uhJV}byX!J)reCVB4D!^{W(jFoG;zlobyL>^-!xaOd&9N5 z`JjuD+?|yfoT>Q+h9bPTY9i8&HjA!45wX+AN5kdQGR?@KtsVi_*smVBz~>s=^iWav zM%w-|gC}0h`6@F4wmh7%h`s#9uYeCmSx(OmxTTf{dA`u@>bjXSGtVH)<*tt> zemT+_)A6+3Z)w_G!^FrluX?^1RdjI1UMpD|@37c--}7;yb#Ts_*-IE?T+eQkGKJyvfNe zCa3RD5S{85w5VXiqtZV4xV>k-s)^VhF;-e|@O_?~#h!Z|YoDq2$DEt*acozw=A4)3 z=Q|%0RnF{`eCgmj@0pSE+Z9q@mwsf``Ru>-$cB|dsVx;V%ob&B*t|ShWev~Ez^R){ z9H+fK7va-+V&eq8*IwIt7I0?FT$LL2_urq^Se>Tq$uZ@gH;rd>_{1@YF zPUPh9gZCDG@zMyJ?bE`vb>;7#SZ#(KcNs4n4JwpBZ85-41n$QvER5oQa)rT@c&ft1mp&JImCCv@>fQVEjUpS)ZCtc-)|@{( z{r72^Mjg;J_nT9DIB(G>uN~IG!E9F(RrB@I18zN=J256F>e|X~?SDNT$}S&y&)Dr; zTeew5*5COXmyTrS!)2ido*C<@E#H3ORYa@*`p1(GCt8JH+qy+y_t&3>rFQJ14rgr} zmK}_i+;iM^$7xT`!}_T|&gxIDUU=L8)(IoCO=s6mG`5@`^IlJT)0sJMQ(wd+)+(B= zY@NC_&`#~lsn1(yPE~2SsGrCh=9O_+igWq`XD5C$4vroC+gr>NRo8mE^9JVybp?tR z)G{ZU*-tFc)SLW)W0y+FBJTr9?F{jYcut&*C_5yrA{yx=>y7a@Rj$hm0%2 zj=Wd-BUdj_P&aY$nil&G6bx*@{mp`G0 z?tduf+PC`6)DQfBCTpe7SoSbp=wGimtBHSZrDsK_EN}7*>E79M`HJ7aXl!`7bG6ff zJ(t;6WvIMf!(FhlUV8nXQ`>l@cUj%OZC3g%pei)=jpYBw95aqhU-#lcfREvNk9#Xh zYnQwhxbO7%ucF;8!&_!nf)@jhcL@1SVrVy#+NPJ?m#ykP>00%HQdQMgrFjl#A3smH zvS(B3o!c{dj{p1?STbGf_Tq`Br(Co=!qci}DipZo>=oY`9}U=9&dhyM+~c;gAmR~= z)$NDUce#>EB=6qZwsH67-$9I9{TOsyeid^iUe4`hW7+bXJL~!Vg3WGbZ!cW2O^eYu z^z_+IjpwiC+`E^#?=<@&L*XXpcdw`gk8k4pP0yyC)zhh)u|On% zo$bcS)}#DhTT)%$e46;Xy-Aj38t27xeytM%bR~~xrJR^>Y|mwHjtM>cTQcl^Pnxs# ztKa`pi@=W;WZAek$cQ^0c&)f-R(a5?{eljhVTo+{J>Pz3{ko`@y?^^;o44D){f??y zUVHAvWxaHp%*TtK=S*7YJM-4*m$~*{E7?ofj|GU$aHxDQaU^g`%C5LqVFB08yMkVY zeXBaA(3=$XK;xXGYv=;D%fS}qB3Hj`YphV2t?RfPoXp0{R=qo|=xe}t}@ z+u8{CxP3F-cE8N#cY1L5TtbuY4IlqTbN}wAMOB~7^B?F{1kIRv@cTt!75zyiY=^Ux zbB>Ct9F*|hY_Lc3j8#tZ6zRv|Rxf66e6w_8ZbkReRMFlIXFoY8@0@>HrN`)tw8v&2 zP43QW8~!s7z4lx^#1%E?R7Y^A-om+&EvItYw>{4Fb6Hi~`9@84ErXyRi`k#D6MP_n z9t(k)=iJ%6EmNLeU<#TSHtWzEX@lc)R#*zJc)RqBRldx6&4br?ju$^z`0enDBU@+m zGe@$CMX;^Xlmv!-01w}YuK!Jw=*hbl{#-5vX?L5D^KF&lU~E5@>DgCi_N2&FD*zv zNx}TKVD2$KmtKxb3lDj1m*$*lsn5M6;P^!azwX^q{tJ98Y#M*vJ7yTOVcs!s^#|{H zO}KoMGbG#_7F{{=@w=|txTI5v@sds#E zPWh!GSa+jug>d3K)dj+HO-lXcO8Z@HGXvzet&q2>z9O%9|HTAW)<&Ki<+^;8@AM?(deO*8X`Lt0%s?vJqY+ZF6n9OLG2 zhI5HqDL-pJn(p@!comY6xO}w=5R(i{+?*0dh^B%ofQzL8lY(dN;zn_nPxa|9# zEYLUS+TYr3zpqQU+U&Km@AQ{E?=LL%;?ASS`R5e#7xbRA*tuq%>)M6wkd>iM1!}Ax zI2jl!6_6W}=*N7>GeC|8K|iM>F)uH_BoVYNS|8uRQ0Q9$K}R`Zn}0wu4nCj*X_~f9 zIO}!TLE!lR;M~Qb*|uFBj}}%KReW0_5x5~N>C2-`>GoZzo1@KUJH?-E=6~SaDa^mN zy@A8x`f$fgKT8gsc^jJRC%C7V>=Q8XnlHa;ccPO;Y21x~9Yx>H&3k;O^VjF{o#qSo zXW2>lTTZ_c_;}A%LpByC?|V{NnTdbHw_g;jR)|yC+8ZvAEF7D2RWMoF+8)%*pZ(iy z;b#U0hDnUbv4b9*CWK=L9-PQ4czc6x`yFx+ui0DF=t-sYiG-e%e414R=z%^u!7^sdRza@m9kGmUxv1=6Vtdh)!tyK+{%PMZgw-j z-7wFuQT@G*=gZv3S)XRkdTGJz|LQ{eSFfI5Pk+{ztc%dR9k?)GIDL_uxWH47u!Q}x zRktKBZWgw%ot~D<&ct54^y&M?OwW3USzrAhozK?mJ#qP3i4Tugl>XXT4!Z(3zndM} zxVR!{wn_1gWUrU}9^O0qY*QCptgG50C#6#_?tpiZ22)2_}#&yIz$-V6;(Uc2RF#^rQS4>k?tjy z&-c8a{KO>xz5aTJz71&!HxG0*hPL%Q*_W{5-COf{KPSwVo8EWxYNPht-WQvG!u0jE(ACE_%*=Vk;VTz4 zG4(sYXLRK{Tcw2;ckbP|Zg$IkuWeVR$R14>@_|f}g22+l&3Hu*;bBbBz~PU6U8G3inJ}vuUEIODp0u?yyQwfOM)h?}9kYoy7=Jzgg`+PAYl&YJ2I`!#zvgHy`dt^Cov&ZB(%)OQO~9gV#f%Fc)_hO<1(q4fPu?$- zac+s`%|C1Ab@QaA)LP9KI=t3#%Dtntjgzaa6we!kpZWIBao(JZS?3Za?6Fz)z1icz zmVaLNS8n>n(mP{cfn~Q{@zF1Hi@2sf{&M>N`5qQ4?dug5ibvPxy>(uF@GA?8luY)D zFy`0ycXo=skA26sCU=jcfZ4@kVWmnr$?Urih=T&VeBNtLPDTcXQ+NX#*HIEkDLlBe zxF9tzMJ3qTKfo0d&{Kn&2O}v}Trr->Gz~dB!i^zkY9bWvy)6jL_`d>ykZf0^8z?eXC8L<9T2*?M(H?k-db(h@n&cP;DQyt4*ZOIr4tzIlJ^AK(4bmu}&a(eowD zxX&`z9r2ysJuj1WpK{gHM>|T5eAl18YxZ4srrnx_ocFdbed|^CD(kMG--d$*pQnH7 zO`5%^xwd_mUzDH!hlCfw%Q76LgkHy*^Q?>MSlgXgUu$zu+C?R`(s_UO{z8>x|!*v@nKN$RUD^|9B5U6jH#;xblm ztxhOsR@(KW{;1?NJ-?8(g+KG_e-!;JTI%ATH0j>tu#?`a7*6JB6bJd8Kh@~LuTsct zesF^NTRYFnAmt7E9di_a%`|C?JhWp|?xg=R&z%38x?IV%;?8}kos@nd#o`NHGOPd7KP$O+9eei@+tDP+I%>y$4q zG=j_b zV|!2Rlk-`17qq=>KOBB&%o8oU!e_)V9#)+fV#mZ^ZQS z<;Amk^JR1kOoDTxm>NGE;L4Rp96To*$vvbNmBveZ0% ze40Ur-y$^c!PK0OdK4}`vq1eNgjrn7NbZL?1kEf&H%%A3fe+nmqn9Po3MKSE4PGtR{ zgE^58#{}(wMCiYYReu(E!2#wmoyg{*y9;!*Cc@lo4oGhrpAOWtHy^445wUpFo(RG& z1_p+En3^$C1*l7Db_j98AZW1?!Vo1+h=Y-=2b+M{7>f0XO=SOpEI>Yw4KzK8ut1-O zBnu$rG`jJ~M`58FpTtkdcu2Px<%likn8 zM4Aur1@_QUK-yk}n#^;Qh%+9$xyU;$)DdCAz`!7&h230u8$2;72igxp4-4dlX7^jQs9o*d!d6)p-^tmI!P&F<5v7`P|_Fhy~nP}$iH1~>GbR**-qtB+>6DH@| z%155xy7frYO^$+;r!i$)mr3v9ZeFo#ua=K+$ElTvXPUeeJt?%@c=_)pv4tI*m+k&P;YY~& zdF#J@whG-I^z4hMZq?VR*O!O=-JJIJWsS@M#TE6SQ zgA==IAH3e{@=gpB2R0@yPzzOFW0lHq2)V3CkgmC(;gkNwZ{ zntfNgx#a$Tg+MOpM=J$c^>~)}ZB)G1cwwe`xcyVnkX61yw)<_|jL-FKtA6cpYf`q< zf3N#{jvr6?@V)BG!c_~oislEsPP2N-&8I2Glm9L+&;9Z3kJDe@-j!7rAy@i!1D~%Y zbLvBnRLvDzx%0w#)&A2U zy||a-DNEG-S8p8ZPCe_&w)nGYFaOJXMrR!^tI5t@`B_{1T6X34&7q~|syi;<>Xi-K zy(ORT{mY2v<-3)+^~BYAObiT_Yzz#z(<~_n$S*2MOv*{sEh^0`$;>6qCJ%z{#%EJOey(0YQGP*cQAuWMvFjOMu0sX_4i9Vn z3@?;A|7y-yxO>%$TiiagGNn8w8~D29uisJl+pgm3R3^hTqXqW`ZhHAxtXC2L^iH*u z^H}hwqq`JVaa->Y=g;LoTbS`{q4j~vDu>lqJZ(D5#SgDYQP(*>DKG8M-%n!Sw+Kyk zIG1)4Ha;d0Eo6?Dw?m?-$wqEByNN zT8>YL`_4-(?FnU?Rf}|fM7Fp@FE87-CieJ-26M|D@9&jg^l_cL;HsIuy{ga-Jvki# z?}z0)B|)G@!# za@z9;??XH1sBE~)d|Kng%oN9YzNwdX-f32vvA}Sqz>$M2mg=Hk9NlJ0zvO6BN&e*| zAa-L>(wXCWJC=9_C{0#ep&E8@bwT1>ugNKj@=U7E!7)=FU+Sv#-5F)taa~u>@cG+) zY)kiFt9ZKZ?H3(&^G`XOuWG%knz89j$iY?lth)}b_L?geYsuo4F8yoOoyQ@`7x%jI zRvq;=GmqF=8CYRkGGV*lQa){$8JQ1$&f?l~#)s4DfR(jKjmKl3Ta{b($hM+1A$VaiaG#FF#9>$ER!}A3xG%`&_j; z^tH~qGO2mnXZ^e%#d`ITOJUlgneCb%PRP92a_PA09xK5+eZ7)_SsqtcEQ`Gxb~gPp zkLCnnHq+$`?rwTKWRZ}rRI_*Ny;pOcfElsjr-Y^-;gugp-(wd>j9 zamL(@xw6ew;^~scP0qzx-}~mTJXw?=wrNeC$kcAr)~7$r&$qb;?W)bO)3$Nt%DPi1 zcI9-6j-hgvgWLs)Ep-_|6IjE|7Ixin9XD?cn@@`7fySNqgUxb`)z5BQ!_;iKB6sKSb zlaqnxwqBWA^s6#`VfW|ob3PhEON{#F%~1@l^jy4ob^E==_a5%I*t#v&Cp^?rTu)g? z)pv^N&U3k94;8+7AFi1qV*Y5sS9Vb5_uCn#+Q-bmkR*Uy)CZ$werW~<2BcE0JT*zL zA~#2`BsI4nC$S`TZ-{UHVgrG_pSAbg$ql|VHB7KDR5SMLg*db5%>0SmlaGnsn3n5Q z^jiPk{S9UUTrZDjMQ2(nd`Y`Ed**Y)n@9I)UF7Q#_0oG}Jn0BW$~rDZd9jao&%gf> zU2|~J8}4H-&OHugy|l2`D1$XEyvf;kl1n7>_Ziu}duD9uu6R9XUhuCI<#TRC37ubT z=dv`{u))IV`0}M^@(Bb1&B4o*lZcwJTY1?PDYP%k2}> z6Q4|6BU*fWQ(nlq*x8@rqW8Ub`0dU0mN)ABHO`y2mC^){y_sL*ZU5v}_L}q6(Sg^iIUHEl&>2Iud{B)1>Ire#@39S?SqtCfhw|s@5>aKPJH^F0u2R`doCHDDihJOD2^5u;i2?hG! zehRPl?KCat>$%_eR46|F?~YS1BAy&bx+)UZog#m3t5nL{L*^Iq%Pi5 z!M$%PawA0kG6s0FbA02iwt30Oz;KrpUy2b&Niis?C3nKcyu$`OF5hd8ng(01_}OUU z(7-qMGkZ_%TGkVjv@T`-`aU)Jy2FD4CC)p$mA@y|Ub?gKLaEU01B=>uv)<01b2!k{ zG_FU$L{n=0GcT{U^wga!vtFyF%kPg%;1nv1DUcU_D{6kL^FH&{1wCz!tC_BK-gU08 z;jj=^p8VG1%d!dodEU;lJ2-c?^7{Ur#uc~oF1DO14y?MCIZ5~WzR#E4or2G^hwWT) zCTZR-iF;E%{}VSB5$8O7-KA>|KfAcC?jJuW9BOX!>K$faV3@#&FC4fT7#NcC z^GZ@HN?F&)0!DrMZhY%BHE<}PbmnOOgq3FP({C6gJN85kIr zqg46my%`n;28R5ibduU(phh7`52CanNxLM}N+j)|&`ZqBOD)1{&;_)fm?=JkoO1G$ zvorJ3J^h{Yb5l!#OAA0PLcQdi#Ny($5x>i&-9`T$o3?k-rlonamXu!FRcXp;CohfM%R&omoHX;3G}f!I%rrUhl3%7y zWBGrf4`;JfwfkgF+uk_7d9(5Ndq3Zmzn?qvYy1Do|MCockKP9!`B)+{cShd=adqV% zO!GQFe7(uBujBcmA3`Rq#(^ypd6UEJN^j1YxhWV z=}gkj(R|qQ@RYd!Ih_+*&zb!-|IwKs`25Ke?oE|}2d6JR7QU$Cq3X>&YaXmltnpn} z7I#p)=+kR1J&hl2P2sGwe)C)|_$|6e?Sj#RbJ2c@e%rq~p0-JS!g6Iw=BsZBam6xs z1z+?o)wP~}L93`U=b+!36{#iFitBg3UCpa%-N)U+wl*^M!M!bsuafWm>B;lYGOp~) z@r#bst&iEv`%{jm?T%%$w%nd%$I~UIQ5%HaKZSj(JbY&9G4{2Uch6R|Hl^@i#w;he6{VZXiV+4raAwPTz9nEb3kF~Gw#a!udZn| zUkx*x8u77Jb#CdblqIhw>RN88a9FTcF0;|&*om35Uf*2fxqew!@wqeSZcfXrJlB$& zT6%orn-txXuZ-TVzP`S0<}u0Bn>YXJP&99o-THc;`=*tPq}fCFblQpLKb+K*zxoHC z-pU_(_rgBdirzoYFY+hgXzCx22aQu1QetL{^;fvng>7FtwfxDdr6NySy5t|n-u&Zo z)c>QgsQq#MkR=5nNA(Lm70%Rre5SeLLAX|3uQpTem-XpK_s=`E@9N|08=6!__aDq> z{dOhrl-9k&)>?J#c8%9WBdoUu`y843^r-5)`>TI2|6B3Mf5)l^v$|gY*xV)kqdVtC z@a?;kBU}T6%zIKr>yP?2{?2}~f+1v2e>BtYSKSLuEVL%vc;I*L$$ImAeX1)(<;zt-6NIVbu=(!$c#Q0K!7H?sp} zD-X}I+z=@HZs*LEXO4WhAyEEo&(zZ|my}jtbyPksvBc%peD7(mpMSHgbv!Tp!y~JQ zEjl~Xn^Vhv$FxMTc@IzIy_EY9kmIW?t6ury$dk5fYec=;UCVX$?pjfKVqM_#lcAp; z8!!L5raJuRhU}?rEZdH}6ItT&LL_+B?rL2Hp_dyUp1Gp2^JesQOIM?!Gl^bPN|iZsh7@W z1r_?gd11B5Xzn4QGi&(jPMXnWu8)~v5*J1cb!c9bo(Y^cu-WQq{aaRBo@Zw{m%zXmjk|wn-v# z$Coqg|IT9PE6wD;sK0oNYDtR)U(FTC_gae**ZgLaTCZHf+FyFl;c}^o_`;ZDhd(_P zJ9PPUM^2yE#?DPyg5O0xcAk4zaoy-$?4hHRvQCT6i4Xp|?{>&z^Nlm-i+#U;WExvd z!`i(IuLTI+u2JFtVz$+6>PDG0W;fz;KOBsT*tI@P!?H|l4Z^- z^m_UvbMehP#yaQ7>xwq>iRmBp_Ve67T>L|Q|M7plk@HX0O)6njwm1^k5#;~K*urO# zXH4t8eglWyhu-rV@$klcjpsR3+lcN1EIAOr7%Lcst`?F)aq7O#gijKhbFC^>m5)%+iLf&?i;m_q{8#RHt*K{ zP%p2Pqr2>w2qP{l|ynnCy(Qh>A_OuITQL^u*JxKj*ckbQ( zXNzx~?tiwov3>W?g?w|4+g7y3#XtBVJ*QSw_J`WV{ccmlYu{USCW-&&`}y>8{WMA5k8BJKyHR=p=yj?)zB<)C zC$YHLEwebI%m}$sRSC<_OaTjcB<7{$q!vMH*`=Ye`O>Z;wvTt*yb+t>ad%5=P*6eC zanIeEUO&AwB_{JXzYg)8vM=;jj@!48*K^;#xxwrBsPli&gU&@N3M~~6dYS4u3)6FE zYGq38-umR{j^gKYtiPX`Tl?w#`u)s1x^7F#9G|KaQ;}wpJ!^I3nTNBQ%YEx@o4t`EvO2-uHPnh`4^~luiBELL0X-smfUZ*oV zX8pED5n9gXHO?+h_fvjsGx+h%j{oZW$Ys|gFQx80Dd`u|x#L<^UcuI9`7J4ut4|%^ zzh0|)W>2=y?9IkK>%2E+Do1}?e0G91+jgPAC#k|aPNr8rIQ;Z`@~o7fQNJCVABMQg z>wj6iYx}0c`Rupc&M)EoazLnAd2y>*zscdVPNoxl^)p@N&hG4*>apYdg!~y3ls-*6 zwOV`QUfDWVu|?l=1j@EQ^0o8C2SDNhYq7_IOpAV>H|q2$`a zt0EKETW{`q7_fH6A^(rMZJo7UWvy=(N_B-E`O7r3;$BpS`&LctdODf~usaQ>!kotKN4w z|H${|2K6r*XD@9IscvjfT@~!CtLvmcT(-YuWtmF}?RpG4$r$OLL=^ZaY%& zEt26_=ePNmJhP`LFx!f?I+xpr-d-Iw@o(noDCd*y&k`3|m2Nm>VC!&8;?v)XD`?S8gSF2Kx^5NDy6eo9`KtKn%h(N%&U=Waml=la+0*?c zdDHTOS+@*df98;^abIy?_#D55^EA%WlMhGE+3aI^dgdnO!&WXj`HyO*zut9}`NsbP zY7!6Jxy|lHzG*bv^zt{bAiH z6MurcGZtz2W_`>I49uL!-5K;Ez>JI{0FvXkMpVX#d>8%Cr*r0=kz2F+vE~4i(|Q(N zv$iY;nvTt88%Z#dC z_PzH0_mAPXzo)g|J-g`ulji*M=l-nwe((F<``^Dm`&;qJzCV^_1Kz z!&hGUv8rx=qxjvo>U;CQDE3s>>=6H6SvY6wo%4tDA5Ao`{wVft&s6#R&yN@d)&HzG z*sSxp>{`txruPS&>-Gr0|D@bf9{#|#Lf`(L`lG)#MP1>xXO!h1TvM(ydDQ&p$Ak|4 z&A0kHeyr%|@3hcOh+DtVHM-aFYF_x4j2Kf^57}MoX00tex+%oFVSnoRb$1`W`?hVK z8ROKs>{At8`?RZk_--#-c6=7=nM~7?(_tmM!#mYOUul0^kf_QQ5}doWopnn7rINGv zlpgWi%szQevTDDW@CA_F7t1)xV?UgUH z!izTen|{}*Eu1=0N>KIQ>KRhs?>hF|E|}=u`+*V+ke!TToOy|*xu*}2y*;H1rQM~Bh_osTx;ES-L8okw4^YM9G`PoC2`S9BO0GP89%!J6}G z$+{fX(#Wg1SAAy8T6)TSb?uuu>)dhpaBgd_A&zWo%ikVq-^fk;w4{9qyJr zp4tmv1u}{=ZN9ZIbLX#|e4)Zoi3pRbeo~0*e z%1+k#aX}<=eQw8>G9I-@eRsP|gy%S_1x;LZz8j^j)`AO+Lfg4d+Sz;qr;56Tw%*lyMS;#DTHG{{E7B$YdF9bGN z{EyzLyYlGbRVTC0cS=nCAaSmHhr+|jJ2V~!?{N7&r`i9|^1{F)=_)m1{oX%h^tylS zY0-bcDd_L@LusDSM^(=FW1@_qYnQFMk+sEY`o^n&+ah%zYX4Z(vi{+wmi5W&Tk;=d z3f`aeA=leXsIIu3n&^)a;b( zlhU54ewnB{nf~Ct(7(odu83F}-iVetQP#1`UsQ;BM>1+Jf3T*b zp7Vyq;wI+5=xEB`dTq z?&*GYZRXX3$*K{uwTr?9 z<@FoZHs>9YQLT4eVbW-I9!~XbY39F z*7aJk>Pc?h;)~~HTIT4!oDrFI^4ig2-_i>bLB$I~mv#PplV|7Zz~}S(oW$veE_YK* zPVD}FRVC2l=d&{Ks7j75f>0O`_ z5&28QM!sBS+r`gXQ!agWo04dqnc=SeRcz_?%O27Xwv=7qvPz2Cd`Tv|w&{t@m$1m} z$PYHBzV|!u^d8bq5V33IimOj$wGEnZ;(_Ivo1yYH-2PnQrKUOu?ue{gwyuC}s^%H{ z#;kWcytKq8L{#Z|FW+Fmy}fM?a}`IP#OjOP3f~fK<2>@-t9P&q9PO4BZ^|r?6c2fG zg!@FJ0_$qw-5$5AOcrtPKG~Z$>-&W}zF%G+ytk#La8rBXm8o%cT-RDIY0uM?&5}6i zb-b!HI5PC+jIUpXPsK;ysG9n`L~Y7#gZ_Dfx4vpT3vLKoAg_2tBSEV5kpk-{(JNh# z`6PC5bIKf7oYT_jo^UZ$xpTR}o0cl>)|VEoTc>YZ)WbZD^OxwY8Gl7W@?;Nm%k09S_Y$o&E&(?iQU^$d5=;$e(KCk1~n4di3y!1<9>FmjTZCRJLu-ILfn}68Q#8g6I7RTqP z6Q3Nfe@Zid`lD%~cZN@5?KOv;%r)75^FF4A{Ol+!40?K0p(K3jn?K$bAu=MxA;mSn;*=70w1Y#bp>5`cj(=j+m-qE4(!`wXUlAHsI6CWiq4vd2-PR& zLKZw~Yc*O}A;(`L@@?tFb$ofD{S)@{FlENXyG-oiSbkeKx2o^Qn&LedEaJCpGf|E| zHg&$!*SUO(uU|=fYHSHnSl`yX&gA-{*Tz9vnf^ay6GJA|H{9H@en;}xaA(;gO`<); z6L(~-T4BFxXO+U^Zw5SDJ73#O`JVVc#cMaq?zQd5Ci_mUxH;#-s|S8PE^?7)1o{5I zp1i?+X3~|4H}~uHw{P&Xn3pBv^iiz}neMTF8 zZVBGf6?tXDfxw@8xhi#*X<6zlJRl`05`4~R%@o%&5s$;Gz^fzP7D>n3FfuSqVZs+b z&UhQVMVVDqIhDw9gQveM>@H&a*y84m9B(Nfj-{;=ZXGFfGHY43l$GmX%aMbg0-cAX zFQpl85?@*sfNroVeL z`~SZ`(g#FsJRY#9P1^AA#lr@O|SBvet^0$O3{^9Gm81F~YHQ5h$wMvWS8I^eM zJ82M9^C)lUZNDQ=!wyUh4qNr=Oz`F)bDJl#P32a;K4zbEV%wMgRZ2Y;xi11!?Y;bs zd_-DxEZ42-SP}JXlJz`}sju5(tcow)zsXs5qMIvRduvvxhws(m!~C^hWe=afd2ZXb z${A(n4R#$9IN!~Cu3(eL67Q|2tfsGiSLHD6-=Yt963$NDH_yDMur{r2pXtN=87H3I zEl_?i>7ZVVNU2@HVvpw^!`#`u-ygs1Sv0k1uhHR`yVU$1w5g_7{^k5WrE?Ca?2|@S zHt&|r(KaDGGjlEqi>j|`^;>z)t5Bdjc}LIW#;(eeZ4a;Q<2iXVw?BNU|If`1T(^{T zCQREW{lmJY(5Yp0OxT|bpOG@nA^6n_LhlC=Ax`F(ZI=a`=7sV;g_4V zmXkMevHbF!B?YIC9k<9_%s)S3M{Y7(x#T(d^GV5K-*wL1oZ;TcC?=M3$9>|%XY424 z%#-)aO}UDHa{Q*S=E21n$%d793=`l_c~NZ5J(C+!;ND^prkcexqI$-Z8GZRy>_ zuQEFxg}yvvvYhvO$=vwYud3wwUmTsW#5{T7;ZyQ!WWsdZN>wNt}~oTQE1{|AW9AOBf_2KHXF<-yhzf?KSCd?dhz@uJ>P0JBFqu z&P-g>JjHOy?T^Odb#!)0}bkOM+h4}l=3l<4AB$J| zdFaBIi5j-Nj~GjWf6vPKKk2Ky&|}_-dvm>(9X*+Nre#WI+Z0QIAfCt145k;Ji)oUG zU9VZ=^;cF$ssG4-(BRg~ydskdW(I~i9QZQ25s4Wc-m9$myxRa%m zRKn)j8x$R)g%|KDPD$XH*sAb#PLA5_gJ;he8A~&3Ep5MbZCh7(_u8*3f?juem@f%& zS(}k9dcNxZ_geY-mG95`m2ID$y4g{6{@=6jD~^Ac-EW>>@hZN5F7pPl|6dYqb?nU! zd{a8v9T>MK=FklJsTLuvhbvq~<2u7Xe(Df6|M+=@y!m4>xxBSMw*NlgfBQq0d|dPO zUxn81K0NZP+t=6m?$hKuyK6fh$jQg`n^zR}EZsA4`~4%<`QIMt?y1n`|6Wx%zvXe= zmB+bfitWAY7I5VsZ?4Vn-#sey-_J={)n56$)~5PMf7qV+?ff1; z6uSRTXyNz%(a|!QsrWZZuWVYafm1VrP3-(sqnXLHRrw^t7G(EZs?)){7c5J zTeD>(1J2r>a)?P?;ug~RU3=NF?DEUW{Mjj&W@&Qq-VO6;lH7Oj3ZHzRe36Zirec0`3XDkgz$5% z(YwgfKF=tlYI1CJhvKU{j7I}C9tM^rU-DY4cgAwgtUTnyG;dbejF>hPq4A#rW;V+K`*>0P;wp+r}cvarz9WmEM z3=(;z6_i^GC1)4xWk|_!ncegDg;>Ot|5djpU3t{J>g1Mm6`vCoJn5=7dXFDls6Q6A z@c(%BpxWcf7U~a!jqG~WQ)<}6RcgYHJ^!$zWqC@CoWJ*vrXKxAiyU&7uhiOR6)}DG zgi`0WNcG3wKQ{HOf6&ykK52c=`iGL7_a}VxwK=S|Y`s0G>pJP9(4LTE+kc+fJzKxC zSm@}2p7#m*nx~AeXgY7py5<|ine%J?I@R4zcN^_%e}DQ1W1YrBccZ$V`5r%3_RN3y z+^DWG-s{KIp7_V+Ms?lyIb$Y%EijLiNmksSe#!npztO)VW&b7XCw^4=6MF3ahw{eI zrLFTLPb^qAQ^Mu?#w#YG5q7@wyneJFXggiCpIb-!$F6gG>{mWJv!H|fO!1yIk`Ld- zS{i9RJ{Kw)5%WfBI{S_#F_BB^7ib(i@#aj}F3lC(CUKiy7DzX#9zDmJcHF4j?x>vD zjQ3qqy8QZkU1mm=&D6tt46Z?h81T=$XcR1$#i~@TTpPPL`g2hB^#hEiS>nEHPu-23xYs(;WtYFAaNoHP zPk+^C>{W@D4(wI=8TLk@U%R>Te%9)4vk8-B{gwAhhEHSZ6FRbzXWCPdIlnYj72D4* zR6Kw7?04hXMTtkH{OV^0nkv1$q){*RPD&_3;>9`M=HGmo^Mf2ei(V|(jGfLm`;gg$ zEuqK1Xl6z#JbB_``Az3o=w%Vv>66!7Fq*$*X3Y7IHRTthCcHI!KI2t~;i_i}EBuz< zNNt_;F4e-|vHp?>zZU6kR@3*{%NL5+Ml^oC!O*xmur;$d>2-A)m@o;@s4-( zmGu{IIIe!XCEm^7QbNi-a>K4affaVI3UU?}nw`qL)5W!Dt&_M_=2in=|J|_-#<$y~ zJ!U;P)_*SI)#M}37cM^)q}`MrxU*g+D1#}kk@E*jY45*RT2et1JReG)xph;-hS#5K zbM@@!$$nhn7lP(Em2!RVTihqUZo;ddN2V=HeJ3K8^6=W^!UK9ux7$NI6gq4p+V`fE z**o58cYIUs!?EmOs!za1=JTq|O;6Uyy-~@0eW5FEQi$Iqhbv6y7vImD^i)D4Y02VA zetJS*OlGw1Js1$o)qTrm>%7Y=EL(30@36Ywv2>@Kj@lQO+SFT33B_yGubA|y@;~l4 zz4r^t8t)?gYP0ecl`^Mg-w4^@de_9aTjx!d49`0lBPH7Pi{V)y_nw|P z;!5tNif-#9j&U!%c%Si3m*5>n+2aWh7*#%S@C6;udzjf{weFrzo|RkPTlMeZ8x9-! z?eBOVY|&!8TTs8C=nLnh(|+^YkFVss>)x0CJ^a$mZqIDV@6Yq@*}Y&}@Kxv4_sy)2 zcdS~gbfrX!cZ$uzTU{by@3Q9|(AxDRbWc<*TO+5*H09ZP+_En22HfU}jD1O*dB>ve zOgiX$$v7igHs#Pv!%ar%$Hb;s8*e+{JSl9_c{Yzc$$GOL5&7l$&fdW%SWOxeB+n^N zVQO8t(|q^dWjtraA7p3wDelpie>r!>!Pq4a^GqJewVYgkGbQh&Lhi{QTaO-$af>k( z*{SHHxMOR1;L*&pH(qnPo=!QZd+OQea|*I+mhOp|cQo+ri(S*-?CDRDTV7SXzj-8osE!hXNi@19Al~1)#7tAoc z?yb3e_o7374;imYc)g#@dh|plQ&O7Y(<#e+rY^8~y1X-6c8c7uwZ~1jY@TWK#OhJ! zg<}36`$!+bG(%_U=e%_T3V{Nm#9)FkAN5v08|H{xft z$Wz(>drqru-Yv<()U~jKo6W;ar8~l9QbEfGhY2!j(n{CF)OY8bHBX+I%EuAP7Z`OV zYi}3p#ip&Et^pkqELu@H+1YPh-|zmm$-n-U{DtLjzt6qN%k4RK#!z+zHi!RU4fTr62uX>pG#JUch>zw#)q8%^An%Daaj& z`}iwCfIl&wWB%dis&Ducx#lp)iTzeistnPI7dYR~x#u|dzu7<4JL(D#y6O8t2ENYI&zUTA_RZ%{hH_qos)Qp?@VOGmzAwR>GYeygJ&Q6w2_AP9C z#2Y;&*DECWOURb9W}&vBhYdE~yPz9=@ojI{vx2sjed|iHZ1UDTGxNXk)s26X4!Dy4x3jEqu%tx_`R* z`+^;ZISp?tTUK(k%qQu-5#NYXjuCDpFqv~8RE?wOkUq}Z%3$Gi)rdDpVLQVY8m?mDw{70*Fe;Y{Ny$+c&b zL#j*{&id5L^RG(T)5}Lmv2ya|%O}t7Fj!`=cVfVn-maCqj(yepTejUxX7OPOsa|-pOFNuWhS!UzUC_Gc*)5o~BPjeEouj~5f&dc#D4i+rf>1clNNwnm% z=bGEN{ng~7&-VP`VU1xCIy`4%b1%=z6rM;+zrD`RR)IIGninSZXp~5reOY2^{$|}* zo@G)O+n&Wd7O8x6#D@2i+DU`8YigE6J=|<1>D9J(O;L#MNnfTJ^ZEJ1Q{vw{wOy)N zAj!0q^Q>=TQT$AYGPfg}%U*QmUB1A3Jj<|`WxLMdHIkf0=CiXtn|7^GS!j0HP`IX7 zYt#0WB~R7}ZJW4}Pg+9hXSh*g;)#e}iO|Cf8zvcOJm$HV!qG2UZ4|aJ?pWlU=^uC{ z^B*?#Y`>`ZST<(Lhjl&q4;S_1KeiUSH~C|1jsKzFM*I5tC6@I+^5dFscHFDj*0VfO z(*6Md(ND^f_HNsI=0BL!GyhS#QC(mBgy)}qA|>}9aShrO`h~0i!}^w2`^AL*yXou~ zJ^lVe^`?To%O>SLY)Ol-kyKNDb%!^@=@+w=$AKzW{{r97Fa8LMztCE@D~0#?veovS z!greaQ~!WkK;e$1uQ+xdVvwvqd|&d~t~lOu%_omjZkQeN+|JwPx{~j5z3Q7?)@znr zo;9nWl)L;>%cF=Gj*QQ7yH{;@=bo&>a(8i*m}l_O2^>f7?2`)1ElP`c%T@f{S~6_X zk>#`7ck}ofZ{xlhYqezi;>ps7tTmn;lHC|OmDe|W(N3Knz4y7hliGHB#5@w>x_Yfz zV2ZYJlgOPeg^5oVCEu>ODRaBz#~ck?G1lzG(;c5boz8M-+Le3xGRa~B2XE*){Sp#A zRQT0QE9hsMS*M{}miLd2#E-|bCWJH`58N-A7JJjr=)C1aQ}gxzTn>A5-7Ym-nz%eU zxOZl_*&d$fVb7kO(-oPsXs&Qvjr**Crghu*6o*FsoDsXagk#&h60Jwr!!O zPxa$Rf?M{iQet!6|2F8;ar3PKPoqudEsNAD=(uy}#4eEPara9K{MZsC`MhLwYY!sH3!W0XkS{_Ei`pm_e6^z@o70*+k@w(CcO5P>{c?U zeyE=ZMgfh{hhFY84RcS^@7TJ{YmM*{43U2eOr^IXmE zYR>KtyR%PRs!2JX^XqS(q{OsjCa(=l+Am|=_rLoU&>*?!@8z8lJpv{BkL```cCxyx z>-*}o>J-THURaf;lbM}d{+_BJig?y9`{ug=Bo=nVTsQ&w;8 zIsL2P_KF=(5ASr1Nf+o9`tMovaQQ}d{zq*+zxfmN*1k32x$F7veoN*K>B}D_@3fp< zvEW&~wg^{`-yttYSM#cktsgGCI3BjU^*vd8UR$T~h5|mmdq>M^8e~l_-)-+Nu>aRO z_lJ3zA?NO!CT|i$Z=9a?NO2q6?;Ex^&WG5Xk+C`S?NMNvME}O=A1tif)bAL?_%Uwl z|7PvEj!7`!1qdqKo-9`0uyROA7TRw;c&hz-TYLWc; zb)N;6e2v^?+cDF^C9JORUjK#Pi7p>)QonI$9Ozy*PjFJYn%d4!zh9KHWuCb!5@SE5 z>GefdxdldQYHNGstU23q8dN2p-I_N)Uk zEE%;kuO+J-)1LDGxTb^O0+IETF04-!^xM^R>WH2L(<%{`88Pl^d(D+k87)#_;d9fv zcW{#9owA(=M0Od4Jr|kwU_zK<*CM&;EBKV1v*x{)?wAm_>!okVe8;n|IXJ3x+V62S zeaecPr4;Z+Ew4QEI2jmB zMesGZ4DmL%QcFrI&9OAL!e18)hl>2atM*ncQ7|fMVL)7zVy?z%XBX)eQzm(N{hBbv z$#FtS@$5X$vgvnyGhG=2KkC|j2>kQv!4F?awT^QZbp>+*(|=69Qfz)Z;MW4qw`cBF zpSL}K-}d>P+57+heQM5N{V|urUs2A9zfZ@RX|H0ATl@sGU(FH+PCG`)@hWv56zEIz zIP_7#$wKhJh9C1p4r?0jQQGFuz0>&W|H^u&`>U^}uuk85HFBY`=z)%i6-gf4)iy1? z5~9v-hh{9u5IUwhXYz#96*rf^oOM~zF+Jku%O^ayWgd&YH~JE&dsyLk>D=hpn^SU& zXD_s!W3Z-YlGaDfRhgRnM<(5wb)sl_<+?=~rv;k#pY|wj6Xo=MUi zRC!FN%6di4il}zkZ@g^c(QTD%ymvh(vU$IJ*k`NCxK4;L*G>3>zZ@4KOG z>V%wImqYXpD%8$hwOEqn+|q(18`FuiLf$M|V)V>nSi(Bg3YsBo&Z`kUiA5(WIKXbipxx@@BX7ljPvoecQV-(&ft$X=%$_M9{v$hHp zEVrq6HvjVC#hgdgLi4&>bq`K)Sm-*vJp4o!NDB%bJXvs$B-BMO0Z%KP>eP z@qL$&q1QfJamE#+s#7PUr|kO4>iR}AR(3Pb-4nN&r!6eHZMNox)11x5Rq;CuOF4Wd zyWI<_+^+U2{p+7kH}rxW-HZ6uib<9lA_O!iHa?Jd``OEgaI$t|+=m7bllr~CVn5Bqxf zKP>F&|FE&gzaaM5@*h6Op6^h5%pJ3&X|c+g=N6uK1h(k6+Q)O&-}<<Ve?gjtITbr@*)ELa z*{!wWy^xc((Vdxl4_>g|zWz+6y{_oDi5{$PLULxwE|2#1zR3EFd;1)fu2>(Nd1B_r zr)cU;IQXzpf;Gl7IZMpw$+k?LW&h?Q#hNg^X#V$Wmy(JPC(&^Bv^T z{_i`|r<%(?Q4*D(d-%S+(Yes)6aO$C*O(;n>hNdD&cpUzp{Fivn4tV*<&zA{yeFE< zk^HV%#pwlY5BR_DkcpEE2yst7nY_0p*}-&$aY6g;O5xcirrs%@4llfRZ}Qr4X}84` z&81e(-QwPs(~F8N%U*PDn|ZI7$N%!{bN=zKZkTMlu!=eK3;&fZZtt4@x@^|ka!I0S zOro9xT( z&Cxz^|6Tr<`;K38uiQBl@LJYmyP$@GMeo<7kJ?U$%Qvp^(@U@{v=2Pc#T3TXd8_Km z-5GAVvv==kuae)_ekZJ-t=umx%y^N^_buypwjNn@OIrSt-=gf+jNprxXGgeBE=n3q(%kjV}aR?)IHgU7)zSgzEPRYZae$;-Zz}v-0F@WV=}Wf2zbnP$xgenNj225^FA?W>HDZf_RTWe1djXtde`(rc9ZaW*^EEnHMLw>CHz&a3=AB+_zHFd zf(1Laa{XnvaJa~STMkJfcgGN|cic%F4^~{gCbWeqiS?%Pf@@*z4+YsK&otm}&Dy%V zY-@Mymfg8ugU@HK?G5d>{d>oL)!W+10)h`!CKgwGes=fi-QT-!Kbc?u{vT@sdmhV1 zR$HN}W(}u!hO005mAaI>4H_Ib^02;qlfh73pwsZUB5uPRjt8uJB#wB_nY4gyBTMa4 z2{C_P9p$8lO*UFjl2rev{%hH{G3dpkb%h^`qBQ#1H*#_=ydz*895A`bO7Wl&&o&nK zChf#Yj+=J8Rr|r=T>E^7)k>{(i;s(*H8HuqX~#p2wKsE@=goPhT&q`J*`g?LHM#B8 z4zctX`VL!GUfz=Ab!f|+#8NBWMSZJ-n{Hm@4KFRZ-0@~H_aEO~3$1^v_!v$xx8}U; z*H_pre1C;p@`T&G&CzQMuWs9U_JYKxFRLQ$T)m@CF>ln^uJ-uO%6Y3bf~-$G$ToF9 z(Q9NhxqNqLVxDYZ`{R4_rt7e#mWVf*t}mp=rg{XrM5%3 zbh2kr=#IsyJoUc}d6!1qbh&J*mpJQ-X*QEqTd^YlU(KU_-df3hlSB9}P71twUOgty zdg7d%vP&j8ax2eXc6eWBwED&)VV>yETMj)||4|e@*RZ`YljrKsCA}TsN3E+Kr*fuCyee7}a$6;}tXfI(dr?No)?k$BWPR9GDe{A0IU#f1($H@!+^=#%b{h6p?BBPS= zDPMO=_D{E2iM4$J-aF21_`UI$@KtX{(c>G=aJS}Zy|ul0DLLYMLGTHVvq>6!on9-> z-sRc!Vam}R#;S=Y=ZxBnU+o_@#b-P|wBiYI(4 zvr=Te`rJqT=mX25HQRd=(-qgQjXE*G^)~m^g@wYh9pAQ<$}d zn$}!7U8CR_{>wj9`X@hRzrEWt@oLSbrskG#y(KfEy7IbntA4EG)Lr4C@FILNlgX?9 z3(xJ`>US`D!5`(~ADa)x&Dej%@UlD4Y3F_;q4xYKT+LbhN4ZUC)}lE}rUoqheCz&wG1(W3Dp-qvtg1KKi?$@G?+snn`az|P@m`+!Jf*2$F1ETYnwV8K zW1W`bt-n^^)V+2^E?)nT?+;J7;PPG-v#1^G>{>6m#ZP@N#$+zIr_cLgbVP}85m)#6 zgtZkr+f`G7BV8-GygPR*wWez7hzn^?Tm0#hXoyLLe))z?63*rqt_sY!xlL!qnpcXc zE+0*oYg1NICSonI*=?(8_NOIgC_ZoG`%x&tcqrGjYJ=q78*O$j7yRS@G6xuT zsPsMJ@q3{3_tK8G;2*7i_3X!Ednzxy^=h8f`p(YNT(BT%`*a1pMbdeXBj2dsVBX=H zysEV!M|Icy4E76ddrWp2eJpFM6l(Elg=}i+>mGLYpXBal{t5aQO0Y_jmVYLtMv6lf6iO~oB06OVTr|!`nu>NrA;w8mzI9|5vPPx)*F)!~yEu%5%=(IA=b%~jqq|41aY8&@I@UfnI zQF8g)EyjOymh;XnTlV<*zwUn%{m$RyDN1J@}zyH&s_Uv-hp|E+WL2=Jlru!gnLD@+S|jHcMDZwr9-IcwkN-74~|yQB_#JU-zSB^GnoNS3vn z^_EWYu@l~_J(?JIDqRRxj{UY#XNR2NVT{u8+=LgS?V(NX?p3J!r_JTk*wWXJUWISXLiYa((;MW;+hfuv0>}H znx8YpW4AB3yJ+c~4^wIaru3~o#CG+<%J9ayOsXNP3O)urc=1g#WaFVYn@3NJYZME9 z){CuhSn|tcGPk#puj`fA=PRtynDD+_9aVdaoWzE)+hYd zKOpdKPL@W+-36kt%FCaw$(gok{nCu@yEbn=C;K&_PwnuF8%H`0JgmCZqwvtVS7h?; zw!`lACuBNJLxkq9ZY!JT%>Amh$;9}Iaq2=}*WH4ru36nHSa$D-0`pBT!%GDnM_>21 z8!1I5-_q~O^=*$iozD5DKbKW#(O0{tZBaYpd^TSd-*G^HgCmc@M(gNY-p1tK+V6_< zj7_+WO?X6WT+drh`S!YaYuP8W7uTL>C#HIT)K!hxuyr9(;^xOIIy=R* zI2#`xbKUgyqFG^@Sng}Z>ymqyG+nityQ4Rr>Ehf4nTN_QKWF}1@93grQ}XilB2mV9 z2ankLU111hymfeQ?S91zyZfd+cVR7Px~7oWaJ=Kvs;cJ(eoAcrxVsil4_KqvFXr!D z|9(BkpT2AH8&Jb(6=cYwzt%VI#+wLelS(~!Nyth zTGHl)wyyM(VEJn(TdLdmV={KB#EH)jg%nm0L^vnPpX?$Zl>m$yrNXmP6cGC%*~o%^o8 ze2;&~75`vd{o^F}_VzpS%X3sT0{Cjy3jK)6eIV$@Kjm|I^97lT4cqf&7uCJ1s&R2m z77$-4)Kb2y<#Zft%tw{=k4)aiw!B}~e<=8frN6b3qR2=BWgova*uFSPiLz2!OU5D zNdm9CVk`N(iY;>=FUefDt#H;7-}N$Ov#tA>74zad3<`W549L#AP zkuv-Tgc!EnuwXhR%3#d+XNA~i3&8__w^lIlYgMce`Yl*-%fn1Vo5c?z9UqBv)vbIG&NVN%U=}0Ks|kq( z*$Rtqnr)Z7#yjKk9m#9C?UxOm&-&fHFt?>C-uTK_>&wgL&V3{%Z_w*$d-j5~q}ke% z810xN!I9egIHo_j=F?{VFzC#_Z^}IX7>k>XW31Om*BqHE_xze-u8p($*TZREr)4hc z#J<_cnx~`5!Q%-)^GR@O!)?w~Nlbtq(y2#FX*k)`p_pHaJt(IS(F5D2^y5h+s zuY}@B=gW*+v>VmbGggXhe_P;h{_xJeIY&>;eEGEh^^2Jm$9$G+HaXik%-ZEi+icHp{QsiA^~_Nkz*$Kq+42EMD;%Pi4ppLfMtduzFq z#zd1??W5mcE-Jelk=3BLa9`K`2ivuFZR}mRaLc?mg5fT|FEj*ddMEVXU1CR9-ZgS>?J}_d*MD!wU-oKQwlI{xRX< zv#HrVU6u)hsLU9p8Gt<(2J9!ip58FAn^m)?pW+W(e4Sk$%u zacWz1n5T#6{0H(}|5iSV|FONx|KrRq#hP`GxNA;ch?@DE_0(LRx1y*0XU1gqOyXM2 zqB(WSDc2$%~Eqn8hweyL*IlCbO#d zN{h;_X575Pd_gkupPhdFroAG{UmB91^{ptYSkEzEK=*j(nin>Fy}f)!IkBe~3yE2{ z?5tjE@ug3dU)`PE{oAwdLqWYidCpJp_}%8lv1Q{NUlx|axc!rMu3&nxE#ld)RlO5M zJGaQ|8a{3Om~8Vj=Gv5ho?ND@DxTUX#FP{mR94t`?pwOZeR|5$Z`z(4^_vqnU$2;Y zbh1J1X{S{pO;SoqH{Vb2dA!bf(YAF$I`b}xsA^8WG@D!Is8FfbkrTGrmEW}3dB1xU zU(FO2-Xx$?_T=o+x0fbWcV3N(T<&zxZ`zL2mt-BcE8f2n)YUgha8LKXMQ3!a(pJnn zv*Vk{*7q)t8(ycxw&xt*npyPLNWZeD`(Q`j=~WI->TX}uabM*zFV=0xlFHDxs`GNS zAKx^(=p)wce(hFh_YNJF%->HRZCdi2H~bL0?w5^XOV4kXsLfhs5NNwnd?1Jli&M@cke&9|4i46JtC#5S4*${eCdnGWFGO!dv?w-ncJOqquEM|-^o$v z`a=P;hX#@l^{nxx^ai3&nu6wZFTjGda<}2?Va}#QheB~}W7#H%;`jV<$&Ga3=T%J!WX3!Jj zbyU4r$S8emQI4Fn_=P9V&zZ~&U+vDb?9Q(GyCqw2_gPu)A8fUUe_Pw!=Im}=z2foW zHOH!Q95yfip2m_fXW`{YtNMmKzXhD%7mM;Q;^q(Jn4|OJYKsD2!jvyUzxSANYFbX# zUO3%JNsp*2y*#5gM7WKHOgp?vg z?{{xkRI)QLJQBuNtK;pph2-ZZCzd#4oIx`;qPj-ps_4Hw52M|)ABqa_xJDQ_$f-Sk}?3TCn z>&8=OKC8VEy?Xq+xIcK_(Riq4crTWL)4X~kdv&eJo}=AscU;Yl=#9E<#i@4fk6V7&D5u%!FFf8HxAFaE zxtfE`&uxAzVn1K~L6v`>&O_G5B9}vf7r*@!IAX|oTy@Tb3+Dp_vQ}`rZ*Sk;@_I2( z>sIS2v0e_rU$!|MF$>+Rd&0ml<;AqMFTRPndKa~2dd6m6thf?!K38tDvm5(%$!Do6 zu4PE&2XE}0dYR}ygsw-gpCE}9F&OCM}=DSg$`x}q1 z_xz-y?waqC3t9tv>D$-G0c%&8p4rwgDIn>sjX-dYYjCORg9w>>u8R&{WtkVh^wp}p zQHQ#Df>*ueJM6Wkc(QQ9>RZPYuD`G{cb=6Lc_%3%@=+4s3DzV|V}li951;Av-ah)A znbmu{!IQQgi=75DeV%+h*(a9g=BnZPpm)Zi+(4hJoNKLTW^Z4;CHd$EUf#Q590z$^ zdig$``lvq1M}_CI*uNt|)7Jl(Fzu3KthXnE4;(KuPPKQI6E{iv(C=!(wRjTO;}4(rY`DIUv0sOCx#X$i2@5tS`no$6 zYm`rv*1O7a#U!O|*#T4aH@D`SsvQ0@>C(haE`3)I1(@Wd#s*z|bVsGp_2!$0Gv-|0 z+Op6>I+M*m)TelzzHD4)fM4H=^wQTG%PwE&U9$D2Nz$E7JjNE2Ql7=GI%TGz)cr%r z?NZN2-c>tx8n?%v@e-7joE>mJU|KDku#|Ob&VkS^M-}F)%$fL6v}S7JxzSdYWd37Wt8Y5_t9#}@mP!5P_R(d>f&BvW z{s%?;(f;FhC_nWN-+uK;ttL}#J|8zZ{HW00HQ+hlbkC=;4{yo0ggAzjCiE=v{ai2d z`90?f`_A+8KZ<|+qFL3GJ!^L)_dl)2`4#cU?jL=$MKF(-Ipq(tyg^RM`Rn&rT_`;M zciY2$>->fBDLM9k!~dKU{4v$VDLA=r`9Cqa;7MZQY`6EEUiaqJg+Dy2J$5;7)j1wE znPEr#l37c=UxzlY$dWd6RyH{99;Kdncf;R1l}(SQ@)XA3c=~W6i+^)gf_c(M3 z%k$}hrhmlxsvS`J=Fi5`pprt(Vj7oBc>V!Q33-^B8@CEhCyBs1Ns4yZ=IeK2LKel6TBHWM}Dn&12Ki)JZla5+^2Y(riumwJS~ioPlXbwDbPO z+t#n|Y>|5P`tZUR4qK;x?YlSQw-%?I_r+Pe3Y>#OTKba&%9|#L=jG&NEGas^bk<4h zp4jK@#jNd0UAUPXw}@rmFUk*1w(ZpJaHCQ3{edo^ZpOiJXQ zmD#(X_+N9(EuJ^cpAPK_K5_nFq{mm$=L%mBem07p8C}Q~*Jk&l>O)QB&qsA4YtHDN zvgO;!FI;^gq)cY=FN2-(!F-Q}3@w^hrbH(`+*0SG{<8a*;bM8?)?-I62bR1r;L@IR zurc_D2VYfSK%m9#w??(8ar(i*4~nY_ZmxJx+}<#`Gi245O{YrI9dEs;v_0`Y)i}c< zo=5+!V?oH7M~XB0R&&dIXH~i9ldQ8x;Mk&v5~|G-?3dG~esl2iFI%pDy6S>s#7@z_ z8ucuvk7uUqpK`kzVdJ!=tEgXq*RF5xjdt%Kkt)8_FS(11K1D4GFkbf9>dcX^J49{= z_W3_3(r{TPb}6g5tE?oE{iQmG-mPFa59+KI{?~gq zN9fxI$s4DiJrWD+i@qs(a z`6QR$7M;&7-x4aAv{XpH^tRvSSv!1YpZXm*QSGsmR0v<(M61FOkt+wT9bMTxCwO`# zLvT>@p`|KY-e@TLFOdkl6qmO~{E+wk;~C!y&n)ZEJurF8J!c_*#fIg9t?3%vHm`p~ zx_vuyEamt=nW(w0a@#G#t1ln8de7zg!b^H~fz8YQ-0(FLVP4}Q`0&-HL#I2qqEB<# zzcM?0_gT^Q$cJX(7QBT|PdMbwvEZ# z(FZmqmSrKq9@at2)+nhYZrHx&kIuR`$4?zRGWGopi8CG%_ZZjjxsYhFfb-Eb?yVOr zr8%nDXUDr-^;~1c)_)*bvLf5#)Y+wK8w0nPr3MO~wu$MTyh3&5+ADF~ACG%;>aW*T zlFL78zOr`4vHfw;U%<`2+Sz|j&fsKVm?es@*@t&|ba-l#Pkwr4GM0v4IAmsbuZoeU zg!Ut@P?v6rCW~o{!WL;Hg?KrrbX?tb&GQq-;zYG`J_0$b@0!2eckAt(xfVFMoe#|Np;V`5T^pj21ZC!Mc&PnXx2EqhYcH--T}> z49XqshFzD1jx~LF+#|2w{d0}Pxz2~8g@0EiRG#hs>~!LFT?|K(afqQx)k2yIz|2Ej8ryBQfW4jkFn= zuDX{rPp(;cX5-PFmQx>=opy4ZxXq9)e*Q$I-qlI7&b1d!=FIC`)yX5?Cgo{rylmF2 z8@t=>s-2X3y=FQ&Zx5Z6pp{;sl(uAR%6!9oBGVQS>w5D+xu#-Xi1gscUx4Z zPf)Jh>ltla(w42LzTk3K=z|co9P8C{7912cJ*5A9N2>cYmCc)`u*hYuzU1I;KU4I| z&n>puzQ>Jb?p51=X2W7HahWQv|CjW3?+cg{a(z=miPg!?Nx7agk}~3%OfG7!yZv|a z&7NkV^_g)=9LLvvaB)j1-p%m^xd<$&Fg%|^p2%HZ!;zrvc?)MD-1m(4O+k>ng4KB%WI>1$E=0! zP5mf$Fa5@b4L4*?X3i8bZ=J&5a&FGlr&V2gDK#DaM?edAKCJAK-l6%}I41Q&a8mJP zzO&C?C_R3*W7gHe*|X0Uvk2BGKK8CreV8qI|3UOB<)<$ue3;ww{v&hhz9zZwjU?EVlf*#`S~1q;mb~?OD}-N@^^uN~Um$9aKE4 z+0fg1Y2xOsJxb>|;;xh(iA@o^{`vh6k@FKC9{<(uk>ISF=jeDwT3pzN-)ZxaO&8vn zwTg*eD(lNi@|ZGH%2eCQJ%Vd$`L}JGl)wLV6}vFsC+3Og@6IoEw>4x8*YHji7HZ9( zv%uSQ`y|CfmnLTX`Lcjxo94XL9@~VX%C>up-xhS9o$YQqH@iBtg_X6i%9+n#yRB!V zv#@6KcPFl2F-jBnnz1TP+^lK0)?4M&S=Oz)PaR!po_JI3tN!zcyPpM@lpelzEM0=H zb=CVxq5=xDbPbKa==SX^`t9xKwo)uskfAJPYslodoTdI((+p<4e3~FVZ}HAnyG6DU z{PJs8KD{8ZY_goy=L<2ydG#D+=ND!!H+(VYTLLRzqWaov;wvsR#x`sY+AurC;FrPs zMb?v!Mm?wjc;}d;x>oFy^}ctiH%x!zHBbC;vH0%~O0Mo} zzAc{p#pB1^ly^%dWD6cWcU0yRVl~w>7ys_jHvL&fwOn@E;|spCxAt%7lY0Nl{l#-u4rSWnPLuQ=0@k-_2hRHYFzC7xf{4e9;UX5QJ^R9lK^fU1KpJu%&Ob@>uzcI)C zvdpZkIUaBH9fKBVXgL(x`+bk=+P&cYaqn|B4FYF-OYU)TTX!s){7hWo-$N_I;vEmc zwZPNMrVdM485kr{rfks<&=tlqq+d`((mA$z*o|;3uFOl$D9X>vFD(uz%1=%$F3vB4 zP6|YF)`(n{{J%eC^36AX3Obe?(;uE=)fQdS=Iz1k;%w2hFkmU)?!##b<>@!)@?Hqb z(OnyseKjn1;dj=xdl?c112=>&TsnR4>)gGsF5bHJd&}SbH&5nmx+!zv-?!=J`S*U` z`@Zk-e_7`A`#Zj?G~8Tts#*2M+k;yx$~pCpRzE42%l@`vy?FHpJNF1j)q`Z!87+I|LXzgs zslC(f|6sCe&EF|8zqd%w|M+P0k2!n3e~znRj1MU|(5qkhA@$DFW8rsxtZG`n^J6Lh zvd7Y@ORO|J`6~+~%6AvK$k}P#T&l7=IcRD19Sc3yUEy)1PFbb%MPAf-76kDv-&4VG zKjee%%Dc^ZHYzLSr?o5>o%1n4uuS{Mwx;(Q7TN}fjFhS__(XX#O-poR?W$JG$~IYb zeD>ierG@G&Y1?LgoDjcRDNX6x(&MG|3S!^&Pwpvu@$ub;JYV1W^Yjgj7PvB3S*&3< zo^v=&W65#WW7~4C?lP^vWOS%*XPS%iKeOuo=Uq`&(YLO1{vqtom{iU zoZj70bE7O)PEI}0lV|9}wNE=>n&`5daiTNKeP$N(eOmO0)$Pg#F;0`K^VIuy`7wrX zmRvGL`F78Wd-Hm7u04LeA6S-IZq+%!yJ7%~lbcW|XGm^V7 zUDBxR_%q%MkwHwN*&DnMeh>Y_U>~xPX{}aR($+5b56Z0eVIPJ6gd98{@<(R2$RDSp z`X5&`9S^bTQ)gLKRJ+L}v!z)`Z|hdSD_5^dT+Az;Etm7@$`|*F;NC9vk5gpksqL1T zWU@l_tnrN{kHRa$j*7*sePAhi{xPel{;5>qBgelyyy3Tm?vm*AW{0Dc@`a|X@pO30*(sTW|jrJ{{@HF2k<>l*O>67;@4GTWXn4j2oV1=EI>Yvn` zax<1MQMmlE`R!)Kq8+b3UV9<7Sv~ekXqT(v8NbBH>}qbqdH%Vc2X`OiNfA`DR#sg8 z(k->-ZG+D%vr~^GCTDi)Cg1Baa&VeG-}(KLHwRzboi;OWQCakjB^)77c26u#ytQE# zt!Z*gpFZ;o>pS?h_(ewN%EJqj{~9dTed+dm)58)g=TgH=C988DB`Lon%tWMr zU+szcznM>^B)ijfNv>ZM%Yz;phBM4rQm5`t4Qubr44I#@C8+zP{#-k5k#>W{s_h*D z>6sedR`cFY-d?SA()X|MYu?T$doFGXG|Rc8v)p0tfoo~AZcm!BdEK`8TXR)^O$<7b zd01)5yC?&V!-X1qyl-9!kgxZVS7J@&d1fq>eR*n4Xo+le@NQ$#lo!0I&JFVEe~rF1 zJUrxbg5h$?)0HQln|%r^%lNn=_p6Zcu1OOvIqgaQlu-U8ebn;5V*0A_b6Xvl!U}O z&mAJ(3L8XRCA6&-8qPocwmGKkd`;i+)E#q7a_5LAFx6~Y`0UQ%t)>yDH#X;I?+8Ee ze8sQiH~-%`9t;$@W-inEdO~fEth;=SOn5;Imwx2*i62E{R{F@hs9$6L<`d`O@L=tY z1GXpY)}3V)h%7s*!r-}C$EB_HfZLwl$5ZF*{xRp={?!{!PAqLaJBR72e4}>jqQ@Fy z7JO#2*o$|R-?($tWb5JB2XA-W5_~Ns@`?S7^72E63zi3L62JWPG-rjGO!M{S%K~mq zIK*+^!%xc6bD@r_wrRn;({bj9(l$#j<#^y!_WskYSthT0f<7;p=yYQIm73Czw4{GxOrOJ; zKAOF%v0huwzV7hcy?gemC$F}>k=K4#Bgk{N$QQ=qKQan8D)a>I_;bi9u)Me8=iutP zrF`wRP2`#MB?~v$v$zIdJac)4%7(t=WxN(j8%~spY+lvv_gIM2#=doTfqYh#w$bkG zfAXywHt}TXYaRG?c*f+{jlxH+*ScK$yW)^%&tc6gpEgBS2#7ya)H!xoT6+T zfl&{7Hcjl=G?6FjD^HZUz;~gwp-cQ1Z(XlB$#$6l*GiT2X0aLCpCXgI)~N>Vh>%L0 zcjfKbD{K1~u^Vi(efvi3_RZ9D-TD8{h=|D?JJh`G!fDB<=@!p+%!p%^OSZ7QO5B*lkofQkjGDb1hm%(XC8G=?ps`;nr7V-0{tC-|&XaIiO@!_3`eE$uo6rQkLH-Eju_drCag8`GN_N zZohubJ!A5zlJ|3;PHgL!M|FExKgEClZp_c=^Qc(c>mN60KI+&5-P|vn3=FF!@C{68 z;Al^lz;4}gElbTSfwUy&2KnY+b`Y7Po9Q!WnY`zMfCW?3*q=9Db>??yby@7fBpRBv zNUkdSP5bLpk?pb8_UqdJHT+xA^?dEZ(2fO%reB;rcjk8MPhZbI6>YFBk=;|aK{?=R z$|p`vn@?5Cna|0qaNU7lHrg9LMQUF9>muds_CWT%U+I(6_nqu# zWc@#9u4L=2@%o(l$6KLs)hmJ}*)F9lVJ#DHzk69k&-nSPivLD`v)*V+Dl6ChIC${E z-}zH{#S7%cO<(t2ieWeD5k8l7e{YU~^3=V$Jb$L`-&ik4j&3y;{)r)FfsO?y< zrLdvpQFh1=cNf-#7`Lm7f*(B=%2wUA^qlM6M_f{KHlNb;j(A-8_uig^#lrq;^Mudq z*d3pCRD2C{{@&1iN3^?dR~&j#-$iNWBj4!Trh>B~^+=3iP ze6J0QE*B0J`M1p1IM-@Q^g*!+ZPlI&AI2>RSg_PXkZTgtHU$e`zD$LgoW_%x?tM7s z`hn>ei{Aa1Ukcfr9toV;52Jpm`0xAmtoa{r>HEoS6H^V<#hkB7Wa40#wKdr0D$;yLFg_JfBDv0xFO`owk0+kI?# zW_&&INMwDa>Hi(|Icc9CY>4bT>vr@1mM-J17Sc|}_f{O8{pO3fq+S#}Z+m zGqXx*-R-^&A}xRS>^`o0!tpG}?Q4^r4w}p?Gg&Kr^2NP}!b;~vSsyPew3!<6abJ_> z;&yExoA!=XOybeeDXv}ZqEUuYUW zTohc^pLfL7N>^ygr)5(n7VQ$T$*Vp0=G4ZphjlATq^GPcc?k=#sbLyc}UUiUL zkRGq+v}8+b?H-oRYi_k#9?iOYRBl!9n@4(|{KYB*Hf$-)JSw!xzt4EFLQrFRpbzhp zTd}+TKA&73$!KyzZawS1HB+q$cbXoVzTnok>EXXOzhygV7rH6kXL_$5yIgA98=={f zYlVF!GOQSVL*BC0$7x;4-I8>Fqq65>7w;#M8M2Sgyh>WRWTCZX_on?8hCjK?-Yxq- z^M{_AY1*?jJ8n!&5;Xm(v2^Z1lQqY~MCCOys@b$mbR1m{7j4PzNSfMqHDYlhqgYl% z%TcLY8+;B&t+{-mIZsqRYez%3l-|QdUHv98$3#WtjZdgc**(?2eetxyU8%AMs=V_b zcD3=X3A|wBmo7hX-j&OS?&U7;XYM#5mN!#x`kW1#FZra?EOMnh6IKQSHi{?l^ez!AmU7_sm51ZQNz6jp1W7FfVbxQBs6gN))9=hS% z&TV^}TBrWdjQGfNJMrOx2m9hCIX@Jp_nh@stUCC6#W`hxz)ve4DoQL2H{E2@f6Jp-p?}wj zO*T#w&Hi1Ane6^IxAU%Nvh}M>nI#>w4QKW>xCNCO|1uDFp7J|U=cwSO%HB^_ULX4t zg(J&F7fp5-S4f|;S1COveCnLSr&o)PZDoJbvwD@{Y26#It}U8uTCLZ4r@2h_vvRrM zj%LqFlM6Z`KLsbRF6dbH)nsl^>&GMMLIMg49$73?>a>(tXrP|b6vcSSH{hUI$?k_{ zyB{tqp0hh+LBM?n-kNTQuVEIv5OeDYLz;rk@~e%cznto2tSzpi>~9{*gm z;_7kB2fcrGuP<)Tf1;NE#J=XI^peF_PTzlHGi%SEzn*sWwvG1t*rsUS_D~X*uH-M? z8@guR3=YfpUrO^<9+-a`xw>}2bFWX9p4!j1oBanj zPu@Q@NQ-1+V8|B4S7m7vsWMNE!wMGe!Fe{(#|6f*y|hYPgzv26}i27n`ip>w0V`!ZqB?r zfB(M!3;{=0YaE*ptS0X)(rOX5aoL$&Mr}sYf+ETlLI;D}Qo5sO8eg7t=x*s74%8hiAdY|taZ`^Zg*UMBhiD_Pa(Z)M+Ebh6+?l`m}ZpX3Pv(J~!^15M` z8~n~-&uPA?AJ>1{Dcts9U9pygkm_Zz_OouTJC5&3ny4OHwCax4!*wh7S)bc5=`;gd z?fq??CmzjHKe5@UXNJ#2K7&BvO?SeIPe>oJoO<@B5^wiy)5SWmm&4}HeDla-oyhb_ zi3^$E&U>EEvQ$+wcfM80k=Uf=i+E1otowIhQsQm#DO_E?-#=-6Ecx(7{;O|h)UkPY zb2z4ZU*4#x9%YtoHr;o+$91-c+kUTp8<4l=jmh0rSu(2r-^+?(pI*4~?aivE6;p~8 zQtn#zCIlZhwz+QD$0=L*!b+$@@SwMBw8!fi2iNpj+FaP!;9l~wO-jmitM*6dr!gU! zBAc6^J-GktsA9*;`>(W&&!qn^_jHa-O=nvyaV*m=w_l1!Hoxbd_Ey0tqm@#O7rbH@ zrrSFGXPG22cgbBbla?v!@jIAKua9#)UGMyYd#A~g6MaGg76)WE?b`33!1aAW+`-x< z)+V#JtcuY2FM7-L5YPN-iM~9;BY6@TN(XtA|MDDfGaBbaYx{cL& z%@)B647#_j=_PW$*4cggZtvpwUpwoU*e~d7&7Ax4$4dEMi>+$k<*^x>3LHE0WZ&HB z&n>^tDgHjc{{J8D10p>pZXYLhWoN2Jog|L*N; zzW+Dowxu>UN>58}ozMM6^jJ9Sl&;;0Tr#U8`*vQq6=(i8HTmu{&t=cdc&e{{(A}9Y zuk~=6>jrN2=DVBTT=>$t)I+1Oxb>Fu;t{)&vyJ^<5n~O=rv5T6Ly$zDwdB z;qy&=^tZ&Q2Nb$1?0k4kiizK9;jPB|#`Re<9V6bU@!D7!TOZB6qkFhWY1S(F-GUa? z20WHObLaE?7YJzl*VZCnQOmHe!5~D(pm8&=q?LZ|y+Vzxy$S|1r<|Opr63pAnzJD~uVV}6j%H2yIviN1~=&oKf_%Zv^nMGB}bKi*W zc6iAlDJId|pc_6v{?2n}%{$YV+9d2gyNpG)JIgP>b=um~#>-sRyBbZqvodefitXmH z*Szi&6xMvbu-xm4R&ndRdmV@6+G3{H-CJ(7$nDsU52s!`Fc6=TM7FwINLv8#G<+P$b%!^8P*lgcTEcYcPt>R zvTtF!#W!s>b#LMNgdP0rFBpGezrm9 zxYk=Up-Ir3N%^Ud_f7B{DmwaT_ zlXpfzS32rL=h@6S`44bh|6ilxj944XLcRbE;Q4B-0`kuNVSDAIQ48p6_pbAY8G~oGm|BvSOp(@stPOm^R8~x%+y};+=oC+qQvUby=v| ziwSH_pK705|CIgo@8dSMg4TTp79J3El(3E2Sl06K=aCyeTHljaeVVCzddrqiY09%B zN-nCoyx@%w){D(6Q7!P{NUvNrH9AVoW((ud&nmO}7db{JWPGs=pL)thp>Oi*lTK@= z=uA2H_pCZz#AF zv2$Yi<+J*woGpB>u5xl%bL_eGRqI2Y_@ZwcpKCw-)^$IAyWF?gpC1SZc(Zfd=zdc8 zj)8&UHOh^d=p`t&D`rqa5xT!m#WA@gGe1uyBr?DiQk>2W$@RY+AX2CI`dZ$U?TyWh zN{_DaPWh;`FZa+iL!n7K1+6{A?59S#dtRTk?s54^k0Ti-HQ(%ig!ep;lVWa^h@3rV z`T4!ipIUBT{`cqa*Zd5pHCz-E4cm04rTCnT=u4E)zOzP4qVwW2<98dECCqtT%qlDs zui;Ttqxo30dCl7_>!+`l^~g9c$@nqtwZV$peaTg-(fQlYnl*>yznLN#rnT<+nOAkE zbLC}c%$sT2w^VQyTBIfsr4O7?2ygFWW z?b_V5u+O%qGoKmlz0wsP!4l8#PCEzE`Qs7y?d*mJ9|hqtXYIwXlhdfV#&@#L3h zmTq48R(@97{KuP1GDFYQzgxz+L#z2w(0}Dc8+_*9HK^VF&}q_kc7Z;23&Dg*k3Xo` z`+k}taMa{oQ)1f<8O8lcu^Z06uy%hTY}i(vqMYcbr1Hp*=@XK&z1R)`_S_V z6%O~OHdtx8+2`)3N=ZLryIP}_Fmr2U~(n`gHsirGnO%uughcx0L1 zkI?^YD+Q-Jrw8~6imIq_UefQ75=(KIaIizc`BQn)LcQK9=U0p3vs-pcT#%Zm*R~~i z!{qFA0WK4r2b~9&ODOkT4whMO$o21c_hUcBpWtF5lI8!FS|$btAG}QjY)iuNByecj zo}8b3IY8vt{MlPiM?L*~biL=&#|NQ+-bH`FES0J1c*Gej;+f`Oev7F7r+MFKM&O zniubAVV$b`YQ?J^ss=ls9m#vZEx~(#`omr6?h|`T?ueauv*%8g;)3IO@oa}9987NZ z#PcpWkfqJ>UB~(z`^AL#wo6593%8bqm8Dd?IJv{D>AJ`Z&aLxy?US|_o)NKYyZ4o< z3(Bi56xH68`?lNY&c@wx)=$G8+_<++cGoJu*)uEd_p-d}SN1vU?)}(0^qJiM<1xX! z&#Vs`lssu$?K4}PO-|-U`?f}*Q*3(4w;Xs~nOQ|j?+8Z7IR`IT5iu?OclEWj?+#Xf zT(lq0dUkA^`R$mj|3;l!=g*1sPiI^B##s22&2`SS8tr3}VZBS((q0`G_!^nve&Wh~ zh3b}**H8Y?NtTp6_PytQg`WL}e;wLyBo+tGnBmRhwPRM&_Rgz2rkzWk{-5dZ6es)3 zx2LmY^|1x7I5j1I;)CbGHT@N)x$};P>t)S2VN~a9x^Lp=xl;B*bGam6b=q5{ty*lf zHCgI?Hs?#LPo43-)lrUouby8?w3+{(7gQwrm^(OJW@KPEjCUZi}e?F6tNBFT3XuJ)bN8-!zp?StEl78fE5ceTqj9&^j|ibc68HipY6xw zpEP&!XB~3C(84ZX`GsBb{hPdoyzrI3iqfB*vrKQjoe!bhtPtYnnMdH(9?QMZqo-aLm{qvq2?wK3cm`@ctIQtFnVjF|1 zSB#O0_r+S*N?dNsys??*q)Y9TCtA)Hxof%Gw)G@-Jv|lXcVfCtxQf5~u~VNPX-#j7 zsy?@Yt4pzN&D3pYuDdllMjQDmUUrSs<9717B6_ePzJ1@K%EMd-A{QqV?N)MS>6fg^GTN(Fxl%>t@UHo`Z}qzG=)8!GmP$)}mA`n6U2@hmrYwDq z+sv2DZ#$FLL-udv<g4attvXz$Kd8f!TxAQ=OHD}~xr#6;_ zulHDaEqvCu!ft)wkGG{=scXB=bh|olEiCu#bq~2CWp#1sLTP`Ab=OtbEM!hsj=1ze zzP+%z@l~yyYm_t>Eu)c9Mss zd+>U;cA>A@Z`s?Na^=qS|NP0`SR=bwuKv*D?K?DWH}m%%)c^Fi#pCqE6Eli;2wk+D z=q8l;aWcRE1nK@0+Y8kj?z~X{&!Nz6@b1R$9X`qIXQN)GKNLz_cd3H+Vmv658vR`$ zV#Cb9P=>el=S+Ggg|-L7ixLY8U?&qSopjpku!Bh3|I1<7*;}Hv-rL&b5q9z7L}5joh(|G>F3{Zi7w?1N`#T2B67^Z9>b-2Hj+3_6PQ z-PqlNJQ6~tZ&Xp6G(+V}_lG^9Gr z>-Lu#Pbw|p|HGYnI@dk@RPDyi6>55|jV8-@N|Z7eaIaKZ#<}`Gm-CCu3719VuHM;x zZi%eWBi7ukZL$VwKXOYyG#W|jy4WqHuamO1@BhE^J> z_Rq(ccAh#KzWb-tzn0ndC$I1NVP(!{zWYaTUev+)WH3{N*46y8sz3bTE?fQOv-cn6pMIQYKJ{aH%%9kqd)zsG&0BE$@uR&=sq=g8 zWPhkL*L}cz>7}R-`{$K&-%oj`7+GsE|NUd-pEdUO3jOT7bsF=ct4=J->KxqlqjtBd^h&&A5V^z->2&p-WW)u}mpbpMp^>v{fd z?XG|PDE#w}?SE!D{GHqV|M-LZ+_CirKl<~yKF*K%v#a~Q!H@HL|GH-@{aMz1Uufa} z+z-}yw{*Dgnf_RxcT4N+e#t-O=DE|K+4Iz$_YL>@JfH3VY2R?~&$Z3}-!Aj_`fSfu z|6rNF=jR;@PxxM6yz)lCDPMDs%MXM6I3k`t@CjKr`_$A#jp?(?KFqFIVRIsO=fP#C zrnkQgI{d^oMo!sbkre0Jz{N4Am=#wt-3-#`zo=*GcCDxN$Q295AeH{fELSU>eG4w% zeU&nO){CI!Cw7S6TB5e|%99#XSKq0}SL&JS#`}gJ{kh7;%`0Wem9=Rrj3o8SS9aBe zuIx%pNt3f(oAz|&&8)sH&z{L_|8KGGfOFWKXF;DoU9H)AAYl3Kmn&8ktn5hAr#trO&+ET-DRk@WYgbK| zzn^#bNmTUa6?sQ5-8!1_>hBBYG=n=A6>H|E2#WNxHcd5R>(YAtMTTScCD}eVW?jen zwwOiTANjWYOj0N>;p%9e*s*@OoD<(`$CdB}qMx6MAD93SN% zhAY2!ZCs;TtHQluSHY6SoA@JAv&)xk>YwaZpAvjQezw(xnb}cit`$tTzb5hi9iMxW z&*V*wF>^MtL>EQp=Fa+`_%S+*LtvdliKl|ZVb5MXEzo!dNVHbd9Z z*)z}m(?2ig)7>z0k63xM*5Yf^ysB5%h8=2Bmg6+y-9CdO@#L$}QYMDO2D=t*DXeWN zwFvBWc8#9tXQ#;Yqkop}+JAW;RV_AmI)$>yYb!qtt2dE4migpLOVY%7C5u~1eXbr> zl99i_w(OBfu-Fx+oi!UbOfXT4O|04_>~(o2?}PvS7bSE5W#|a8iMKj-tjd48^Wlx- zyA)nWZac+#XzJF5?<#m!{N1oq_?pqG6wQo@PF;U`suu1Hy>;5KQLp~ z4Ye=1elDyMuZni4+c)&S$zNf?y}wj!XP|HVr+{A*d3P;f+bP)FzVeN8fGYd6hq_0d z8Fnk)VE$LPZ*yRD$=3jWCat1|MQp6CV%Iwp3ia3@Bg$&<5Kp*_@CPyOcSbve@#eZOIo(7F*fAPepR!M$RmO) zqJJ};J|cX$X*kzJa-Pe5xuGSMVYQp+a(%%)mIrp0 zu0Eo4!zyl{2a8|kkzZe?&fxgvJmW!BPUiLlPq(#Bcl}&cSW3kukV%pk$ziRzo zTG+5&t|W4c^u4P}X9PdSpE9ZKnDDjgf{BHy8JEXy-91VV&-HFA2tIP1Yv=A;1&1O! z()^+;Qf-#q_x@{m_Wh|19GMl-7P0C2|Lw&O2<$Ciz4q+nppboL5?{)HH1(dS{<~6Y z{^R>B{wi!~jPJi~Eo0iC|BRc>$?o)ltdvf%{ku(Xx_^+(VZXdm>S@n`N_Jr%RW7_%CNok*dhBDTeYiG-SeN-tGomFp8R?^@)T}FFV$)N!`_%oW9NeVzxK= z68D!yp86NN3%*5WiA|1MeE;CmufDpUU9AQ8`TS!3dvS?*>f@D>ezudDov+Tw;*8I_ z6#d1h%Rgt;i`yX+bu4(dUI{rJvUcIL*{^Iu+ZX8;XD<5HvU-h4=-xF_x8pUsA2llc z*|$>a3Rm#jlpi~d|F6#B6$*YXoi%l(ROsY|VY9P(qq0}^uS|1ZYkak;v~i_gi1)%43UhL5i_!k(Ij%wG9t z)!me%e9omaRt2*bBu&+*Ih`#%Eo56%JcAbR)`KC^p$3X8&v119(l0$05W9?P<%X5J zLN|ZlW9(bKW_@PViigW&PE1?3V5O2)R*_=AS*VZVscYBR1AN-8_AuwH_^^(br8(}2 z!=bq?f6Qb*?UlS_epQX_g_hXk6H@CY{|jGnC#R@YmZ6|-eF}NyrHF?F_WxITG zjjxmi$F5svaCK@?0BdBBQE+WcY|5(DFD!EEG=5Feare;^I8wiC|BP2zrM(O75?A@J z%6|B;ZQdg;_UkiW1;4s{V&m^@lgnr7CRphT9%SFjuDGW_rCIH(WU1|^BMU_)PjF9; z*|zm~^Fg__h5yXf-#DLM_$f})|Kjn?n|_=3+!lX*EvHcEAy63=Pm7CS+*kDw{*5m*{Z11cbDvHzGfg77CR{|W%rRs{*o#u zSLInFIlwUGJZ#vJ|kUcv5gp0{PewG&^v$i+KxT{&-Jykw?9 zfQW$n%flTRho;Ze`kn9hpif$Aa$+zgl{{~OLI70dmtB`YqzIZYr>^!_SL)-UYX_b zDD>>n?fhDidrfp(WVlYxx0Wc?KR=v{CX}z>p5etdrMb7_+?jpv!%nQyTJ$l%)m>#n zY4(QYPU(@NVQQkU4y^O>e$~7^gd6K=L) z!`inm53CkCaB!FXC0S0FzoIAh2C00GmwWT3q(-&#h~CMDXK9`>`<|(N+EvA}LRgOJ zNxZtlCYdJrnUUr*ZYXFeDSQE>{aVKl}&@SLxbN zw}v0Q`Y!nT>^o<)ed3P4_AS+4-|j8Hgv0o19iz#apy>SF{49%W=B50s{8(_)Hof(L z`?3lLqxByp`EI@TS1<@!zmjj2^D?V7@0>T?4PPkvs$=E5aDItbjw1Y?pG~hgFRO|$ zvstvSKS+6VlEIb5%c^|trms4FHPG2MbCvvx#mlUg%`>{nf3;uWi_zpCDMzPy-MqZ4 zs_mX*#VN7kBWsl|^Rzy`IECe5WL*A==RRNeR3&b3Iq1fF_H-PVZcgX1fCtA-mOXiN zl6l%z&3Ea)5?r%{V%mD=EI8q_q~a5Ak*n8-nKOJ!Ue_M{R+@4~R_Jf*H(PSPMsM>f2)Tbl>4{R^{5!8o ze@}R!vO6-{amtf-8E3>hU9T%GocK$oGkS&Z^bO7ja<2Op847c&3!R^|MqX-jd=ZcL z=~aQx%Dw;YSzxjG(7B)~>Dq_gzsYajxBccKeUH_Pzbbs=@z?RVV&*#Y^dxiP#hd*O zw5V>~d~uFd#|NQ~&(8nOZvEA?*>v#<|Dq}LKmD}%`7r%J(?+Yn%}eh`|1$Sm;xQ}#Jz`8Z{$ThuHmuiYaeRHO>@}%=mj`J=f4?+uc5@B3nl$6G$^Z2p`^KnpQiVh+>Et%&i_zS%w6)hi`_-yitMtKDa zIX=r@RL5HEF}$a%bn=JO>Wis5YtQ}Rm|DAVU&Sk~{7>I&7s%dt)$*_K=KFgtOBQk6 z)YG{1H2dzo=So4pn=aPzSwH-I?Q8Mb$eP6Z>vOoDJU{6=$5@sP*bIrI23FK;@zO^mCRaev?D)rL&(J}q9^`0k5v^&iIfyItgd?%TG_ z&V%*kuf*ynhw8RReJj`|qE@>3ZBJYKqgd@*!A27}k8V|;^dmvg;3G3rVDGAhYtQ~M zZ270wTXV!uH79*>a8dS&qOyGtyym-ElTzI_~>Zl z*Gm>Gs}&Z?J(luRf(LfnWzU?_ zb%_(WHEU0h_Q@SuldXN9%zl_)^K5$xgZ%ZhU+kDk~%vBp2GAyLnx4zgp&+ z$l%SZ)IQEFJMdfV^bzCt({+xUT#?>v_%~4{Pv5JZL8Y>{?A3$|iuOHS!G|2T9(h`n zTeU5Ib;@4Ok9^bW7cY}|^|xL1y^3$1?6<{%bFKXC1g}^5K1;v%PkWN#{b@^#uU*z% zzwFsmi>o)~pNVCydb9G}r>hAYY%i=kcC}YKTk4#v_Ou-;kDgAd{+)a>T3LM#*Ana8 z40hgQx0*j@JYQ5%z5Cz6R))OG4ZrG7T(P_1^)To8Z1$NdMY}jN4OiUPzndW>yLh?B zMgEuWAr0TTzbFab(|=hm_;*H}+OqjCHd_3$_k9`P{_lLyukeNcKTrAB`{KXS(*3-D z!-Ia!cm6+J^RNGc|Es6e@&DTI_p+Yt@BJlT);s(U{k1l4zuW%9KmNb?_Wq=1c+kmz z^DorTz2|USGycif8?(*k=QGM(WLZ-?``*FNv0uJTWY%58?Zq!N-HLyLR;i4F`%A$h zGx;TRn5T3vYh3o4;pxdKySFrasy=DsaMci4sBTjtpv;7FXlOwjoM zf#?_Y=a~~Vx)b?KX8hxvBc-Ms zdLVw$>hub(s+9%ey|zw^6`Kq%$yzi2ugZ+ME2x#FXYHYGI_2H+J(8XG5~bcR*!pzo zUXz8>{f=GP5I5_F_i`Jbd(0-8=4V$Gy<4pLJ0pwf$x4QFUEvk3=i+9C)wO&wG?$hB z*0kjE%bKi3C(VMFD$J~4k&yCKFJ|<8>|{0f_=TS~jk79b);?6ab>{I)ExSl#8}T)3 z78-GUzAs=s!)sHW>0fv48C&cYJZ`Y>)k{f~*HXNmB_UY&Byiom%E*^J%^^0A4W=q^ z>e>1ji(HjoxGC*9bI83n8re23qI*LsC#0E8xz(K}yXkobTbJv7tfmjENe?7;h)rWp%`OIIqLgbTO@R145uU{NmBC)Dq*OBExeB!~3 z(-|)Cta?@ybxL$gQ~D*VdE9AfmtAezt$vu?I`LWa9CwEH{COhYjA7k*8ZYkYoJ(cy ziD%g>64*H{W}3*=)Hh8MGw$A67jT8Syw1s?ME>3)eQzDT^GQ}d>Bgp0$$^QB5t|b%<3GqMi66>{C(|KH=w^@Wu($^n&vz7LNs zcpnpWz%=CW=}BMw7Y4szmSgKm3smI4?rzca>?6mDHs{-JP5)HQ{w~gm-c(kVAXzK3 zG3N2ju&-PSCnx6nJYTWz%(INr$R_1Pqm%xzUg?(-J*ID{kJP`qtnd4!Pg{*m?my%C zP&?yX@`k@>?Y5~;V%+vR)5ttPbv?tesavLXhA^{;<*d(E z7j+eFVOUkvU8F1cVgHiU`Ktm`Zt$$rSTMDqZ*R#zy;%X*%s}_>ua0+W!<*!QH=B^aBQ2H-yvTKWvRA=Wm=8(BcSNSHU&bzjY^HF+1K-#B&rEE^ZuR6M&YuTkil{-OGh-ItS>uKO=`tx??aN@<6(Jn!?c8OhRn zHp^>UXNs~vs51-d+5Lj=-Ll<3gQ_Mdf8lU{>Hq0;M&IUU^Uo6ZPNjcN-P5K2Tx?&H z^$)LmO8@ye>hqsx|K!`(_x;n?nhyKZ$A7q8DA3-2-u!d@4>8lJ`N5Yfmv8Hh`xKyV zDInZ8nVZv*v)|RnK=7GZ=Is;DH)k#}T_(F+jyd#ejZjU!+>2TLKRzn$+}T>Duxd|_ z?Ei%?Z|Od3?6x&~V*G=@#^}xY1({u@Q(`tQZn+$I)Mldp#2-!5#LtCZEGQN7PnsCL zQ0s}NNA#SMO{bo(yfv|VZk1vB!MSWZszm+$*J&Nox}Dfq^eo7t_H^Rh)a8sjml`i% zsMTzUcKexqqdeT}$9Z3?V=;4eJTGWFf7p-^`l_Ts!@cRkJe3tOl23LAf0`&G-4k3_ znV4G^(zK&y&27Ee{hy*z{12u*QHy2IkZhB&&a`QBI{Qe1Kj_A#Fn{we1^R7Q{G@dM zdT-t9KFjuEvq<#`VSAU^ESJ)%Z;R#J_I-c7vg%Fe+HXfvs~%mgI&W5;wA;3D=e!?| z&Cj{2A9+wf(GF{p@np zvZbd!)Et|)^WMClYvx6UJ^fU3Zr;v=^M3A`w{pd)&v#}_Z91e?zU+w5w5rKdZA0ak z=^LoVK8=%cWNb>(cAZcZx9EPZ$Hwgs_s-2*6#e0zWBFy$vrHL=_^q>w7F7K|M-rjJm-}egztN^y?6h0(OdnaW5gxJmdqtKHTFiE z*dIvBJLOcf%)I&irO-d^t)CWOIo7Y-X6tDCM=$sB;w^LgFJAp4a`(vl3%Y-tZ`?Ni z;#wzm?T6Xj!{;x`)iqZAbgi0mf06o6RjXtAmpA_r{w2EKbNwg(m!|(LYfk9DnEyxo zm-&9CRrRe?o?Tz?_xuO-{fuAtw~Fp#le_m|<{#^VkJWJuzoSmAU!3+^`TEEC6}JE9 zZvR*vwQ+ai>r#^@?Sq@8Uj}oYchcsse46xTF6Zk144GGDw(xjl8J~C67T>gcqQA2? z`=vdzpD%pcQX}6kKa;cip5K0!b2BHzNdIm2clYMWtiDvSYR9c}CimH{*zDo9S;}iX z!T8P^kE9QQS`*|x`EnlFTjD+SGsoKuy&}0K(Q7B(F1wWPwREHKsR`PFT9PYXo=jN~ zr`TBagjHF)I&->7H;+qS_s93&yt{bLi&ww&-uvb0#Hq^KUu+hYdtH&U2-;ne@zX2l zr;5e$Yuqon*J$La|6qT~r(N}aS#VGw$Fq&|tc4Z!@A~~ChSU1&iU;?6(+=~a&m;Ja$VyYS=}x}h%bS8e=a zZrbO*Lh0KI&d$fnCoi~?z9GcHT=D6qn7{W8wBFrkm8$yb)56j$cG;M7dHQJ@&(^3fn0MJwKfUB!#`Ex%yJ||#4y*1@&BC&80gvbU_NA z)32bj-z&5pr!KG+f2$h9z5Ic~&;84uA1s)&!s}dH$g2|D3ln&Zd1pnhOw1BYo8HX! zjBUxbu)hJ^9Fx{dFEu_@^>X&#MblR;iV0oI`7!GBqy*l$&OI|qvqjCFdN>QGy=d8& zxk6(a)6q@+ElFPk0!l z$@_IqxTJ57&HcAa56v|Z|LpNmb^XLZk$;mO-cgokxO8~evai*ix|!+rQS357Z^Ncf z&GuZ<5i|Yc3Td9L{E{E`nuNV=-)%Wz3D<{7TYR2&{}j5Aw4h30)db_q624QFo3-M_ zR#oY);>%ja$Ln`hdBLmS3tj~Ve3e*HRl~3I zm+&gTdVTP`D&?c!g7&#aZ79|5NDBOVSm;rKP`C5tP>oGBGy2qy-1PQOyYb6@g~Q(I zL4QQlK8mJ2Y~3mSG&4=nWKF!{lD>4!mKn+`GB<~$9R4Nv)Ij6-L#YKy)!y|}OA2*< zT6%>~eDsa)BLBOknoK>vJr-&^R>uf@P^+5uM7vnews*-F$s<1$?wwBz6})$T@%|3` z^J#fvjftG7M>|)eH_+Sfuz|qb zOlRNI>kAkX4ldF;kR;pEBCw*{OF?O)`O68rxXL!nT_w|~z3~Bq43{Bi=tLzJ9UK4i zpR0{O|NHohjX`~bazgNdX$^KxOM3Y@em7qXIeR6hs%Z0^CZByD4$Wepd$hfrWAEuo zFV_p#Dj08bB>C7`{O-9R7xFJ}k?~@ummCk5u2U;cHL9$&Uutqh`L)r?LyNy2ZIL;- zrQlPIXZxw1;-cleqLT%#0cRO`sy~3^16RYp*if=SO zx9rK@(&M4NEsNtz%_a-{I_oLO_s>}C(7S%=_`IFX4Hq6=f3|q5lAY)pgVzS#60HB% zIBoyrxPDvqhPcPa)Iou*?HcxihmnEdCEnGXIQE-573C+UBqtV^K=yM$X2h+(=3lpC zV`Fn>lPhD>D`U%ZW81dn%$!MAl-$@%dFQV=vdQJ|oFjWmYX2`;bLELpwy%$(8{4@D zXTIz?GU?Ky5H~iyUV-pzUxl=k3mXcz9tz28Kg+W2!JkWuo`h^aBeOtI$Ad zqpEoc(_b{27#L|h6<_*VecF>};^HYw#FoBN7Z-WCcx6h8fP?v*-ieJ98#@_UBqAjw zXGlgg)PyPYcQ*2NDC(54@fn=uWB>)i`x<|d^$ZLQe0T%F5POP43k09cwAAFv9GUXu$RnZc;DDYj5T0$F?ZyTTwgn0om?BMF?Pg}K zJUR8G<;p4rZ3)ROoU^&FA3CAX@J`Q-P4y7l216qQBLhZ5V}p(v5eGp`sPqoc={>{1z~GBFsBo;IfCp7-kxH<$KWxQsZ*Z=^l%qhM7+>G? zV9kK&E4R#7Em%8c+m>w-%0jay1T3`mcKVfRyT0Pt4&&nw->;f+Wtp$E{dafMxv@VR zE=qixH1o{4Gsfr7oc;Ir`)B?JrF(7*732?dg@vA3RUvlRHIM<3>C)`Sj!4QR`*5^`2Wk?5$-kl8GKqPfk~jb)I1&U2ZP> zSMZ;r{2#`D8pmhr_HI3S;mnPh-_Gr{eE#O--MjyO{e7&?@W$zKlepNMhy>w?g75wQ zRxDwBi#tyLouGMCv~g*%X2ktuFX0E<;?a;nhG0|zwf%vEu*p}@ax8erOJx6r@lC>_|fF;w>RR_b;&n87gN(_ zea~$AZzi?;j<(m&@aLayHrmZ}_@6Py=;y7cLhClx)q8n8m>ZkNr0T)qcY229-sZ6N z$xhRa)_U6sIM4Hr3y#?@Ip5u8iPA5bA1t$4C5w)Pedf{qnKg@ms=F9p>o z2W$*JURpB8tLuB(;dyr!IGZFyc}%I-uL(%IEW7x(m+17v6SAuomipX()Nh?N=aW9C zTlU!{Da?b{iPGUQI4Pe$}YM z?RWCeWVc+K6`ov;!p|Rs{<~GmRdu&1&icO6hBsXvcY@+NrCH6Y&C`u*4nLU6v;0qVf%W0l9q)Y}nnti6h-%)o zQo7*!mFf*MKfY70W8nAwFPJm)m&CjoyLkO42JcL=Yi?V4K9Mnd)|#gKKlh#mU;Eno z&gG6669a=k8@_Z#xHLpw=Q}ktw^%q-q%LpPbhB8EDM6fCNt%lJssWBuj-ARjoiWWx zn?q^G-JD6fC-ZLRc&)Arkg@;8{DZMC{s)6r>#Lq-<8u~|>p!etasF=3cKuF)<(I3^ z+kSsnJg@j&ao)c_zn{l5${ZCBeB)}@#2v^o;k_e|{E3AEM^%SK^| z{)=QLTVuDIA#>Y&pRE4>_;Sp_O{XKTu8jQJ+LiY@GWX!Qc^h@Nu2@-`ekgVF?70%s z&*wYL-?t>2_xPstlIn{WB((3@UHf_V`Hzo+I_nJ;jS+qIogwF5NxeP*`Da)_E3G6=l>?wzgS4ly8^2ygB63sm2MKey8 ztl{?BD$I2D@FdqIE3V7lj#8UH$>D&6n8b|<<@4G@)w~mqUdz6=Xy3Gq9Zw_+*Ix>~ zs*|pN?(FMX#?x|21@|1|NIV_u#k$q<((4}U6$U6=t(4cU5dAH(rzc!VLsMh% zq6eisnidM|%%7+H=+C@P-LExY)tJy0q z855SaxSq8ST38~cOt9P|d@z>PJ0k3Zq}_5I>rDGb*=TO94exjA9zMSC{+0KB65dsX z+mc>q72evkYE$HAS@US~a@nf}om+R${j}ocf-8*oo z0)F+A3dbehD><&e@~}8!As7 zo-*x>M~(yk?-w~T{C`c-cZyH?Bme6`;&sc-jX5h?b568dcLlOdFZgb=sqhf%W$hO` z`va~wf64E-*FLGP?S)p=&ngr1sqA%o>ZWn-Xw2Qw$$00{(=)jqTJO|Fk4sxTQ{B36 z`p55mzr%m2trh;qT6cV>_p;eh2e*ahsJDxLG3A{Ud9cr^O4OS5U9x>|U1RzU)0vr{ z&h6O4&a&_S^YveUy-%IkAT%{d?JrmU8HKHtbDYjD-8cWa+Xm+Ri_#BXTHIU4)e`-A z?NXb!(~HjNKb2iSWuxy^=?|;7SMRO5efN&o!Rg(M)6GNlo`vgO3)(p&erJUD(;qxl zCUwtsT5V>{`=VuPx+!es#I0U)d5$&B4CP@nnE8`g@#BQ4r`D`qd6O$%=%u#VUE5## zmND!vtdx6v&(7?G#aac|yE>E4q+fY%cWRrZYZzl)>8!8=XO)hAKC9oq`<3L^&l8`Y z|MC2ML0($fw0*_7OYiRu{dK=gGQz0 zyzYNIsFF`8+#93H%E0iRo3g^!t+b@H2-;ll4UH|n9426UecIZH6B05UB2qFOikp~s z$ZuKdnZ?n`%*nRQdBJ6$%77=)?mfyoH-)_L`F(Bvh2{U+?6w%Qq@D7qcc>3pzB|0@ zQNs3<&E?n2%g@i-{k-q*cl-K(tPh-Ri~^3FW%8*xmp1QgQ=codWzE5ODVe)T#k0=} z&9=6hR=Vaz2G^5aWiN8L&up1@`~K~(8YR0+kAI(|!LdaA+VsCCxWoU5$910;W9i%Z zH}!UL%69GBOi95C@4toD_;aO{|B`Ji;<>VQuixK`*NR`ZTnVjsQ)Xk`!=!gRGq3%3EP4dSTjMv(V{L>(u4ltfP%?Y}meQ68n$7yR}*DdiDN%TMKT#<&Mex z>9{YPk7K zcB_a|Qf^qLW>U9aR^gJZkDo@wOnZAG;K7to*{v#ze_oon_rlk``}#s<%ROaRui936 zI7)u)`L^B4^DiigyD4!gsa#_mB3WN|!hTgBGSAJj6d`|Qt$oxKkiU(8s^cP!bS zOJ?V*Pw&**zSYd#?K|h_n$F1@vnA4txt6mo>;Dk9v-qqFr@GIY$NM_Pm~A`GIyatn zzZmu4$nNbz7XR(93+>o&f5S7u0D-SgH~pT9&XB!%uSRoj2REBm`oCaadoK1@CfU96 zHzaHgwlaTx4!^hL(1G^qO`6e$~KjEkD($Hl^3A}$gjup;d_amXDCr1>-pwuJlJ75ogtiW&XI!0ns=-wKA3ax$mW)rcaNKh9L!(w{wBjZ z!?HG#W`rLXlR~1TQApV&yJ`=3l6TF zxbWD)w>IZDFWK^>%JkuS%OA{t0*_38`|M3=9m9@b=qPvG<5Dk2s$i=<6-xC{Vlf zbE>R)q0x9i>Sb z^1D{W@2v`r{rdd<<9vquA5@PV7m#jQI;GZnbDZ?)ckSuSzg~voZYRiLMj+lik)zJ1s7rU+~U1ty^F|N1~@GXZsBmmgSz3 zif86VYu%yMImaUm| zXXWLS#Xk3?w+gr3m~`*Uj_rS+?VoJzylvmFY+JLHSL+_66gYm~72J5S@cD}ux?Jk# z*=m1&o+hl{oOk5r0o6Zuzql0docs0W@n)OzbL@3)w#*HmGXHYQYW-Bs`1rfGQi2t? zak9UkA(6OME6J#|&T^vSo4u~e3IfXl=0)`y^v<$qkz{FVSJf&Dn_%_qxQD`@R<7tH zlM+rh`6jv+x!=>ernS4zawBh|$p=aKfO;lS-uSTe(Vc2W28J(8`0|D>_SkeuO-n4z zDS_t=#6c`e!(W5C9{=x}yxexX_1d&>9gd`lCb=A}S^;ui&J(;YIZ1c9ifo^qyDN87 z^!LE7_urW-e@Mu#?(274+h^2tjmb(`-#uMs-%s}+o&9y8=kG4*zcB6CM&rB1?|1Gm zeph+7IKS@y@8k0sO&)}3uG;8(Bq&FGBkT8R5AEIvTsWgHC}=IHdsy#IJePb~aa?x? z`-bH_hDUxb4|SN`u(zgien-)kVxRT~7s*u{+BbjiesP46k-zK3p@Ts-EzU}E$CR1) zxGO>$&IIIq&k8#m)pphJuup5Mb#esr-c>8xrZO7u34S|q?v}ebQbj=%b)!wUPdE|g zd;QH@o`VjJMqB6d-0PSaB6%u#*1Bz0GxM(coVc6$DC8KAt6%x4WyhXdE}K64C+d-wtrvQyeiN5${CgY$w^XAHH5xqnDTHZ)qYwa zQ#ien{8qk~iG@ zpIfPFZp5s4U8~F1PZYVJ>*yG8NH#(*kyT!GA=itE6P)y&@790tZfdh*{3~?n1jhwc z35f|GBz!o$xg?4;k*!d$6NL*us;2?E$8=6*KNETD#jn z^u*Lto?*KezrML;y_Sda)!C`1)iecDT?2KkzGlC?bDZ1mNN|_8VaZWLU#^%Pmbn^# zLxg_ITn$_~E$m$HqvO%<)Hf*vNbkORTzB#}(}Lf(xVGoB-4Ss(a-n*Q$jbGaEba^a zR+g1`gvwZbm0e}ILNldM!N6N0&*@Vx*TF#ZjdR}hxJ5?Fcli3h%L%;y^hV#w@`;Ah@;9r<=KaA#7kN~p*3AtvKHdFdidnSf+|vqQ zPKB+uO4*(JS3z{rJHHm5pX$r6{9!1$p*B^9zhUXEkA+7L9rz;gQ98-S>viRnDDK`M zMcrxH>9$wepRKsix#V2n!blm*`6eYwr}Le5D|Sn+oRal!xngX{(vVY;Y=xnXC^zhq{B3R3mgOxXKt^#UG~b;EB(Rvtd)L5LA_uSt0HEGT$TR z=Oc+zkG_g48uBDd^FAwF`E%{Ub!zXgUJ#wapIrCC=#=M*B%bYs3oo#S{MvinE#TS{ z?AGs9m?^qm z>e#_G6{69NHbcXp|*zkmDclijbr?>cq*@4cG0b^7KPpU=_|_{yE~$iH-d zl5(S1U*bg$r;pqbpJe~6spHvx`P8P)sjHR=&FbE{bN`b|mR%JxwI>437#qa?QakrR z=i+9G(wDqu{h|Ke_u$Lq-3(Pl>yx-d}!|KjWLC-(%&P-u^_v5@jhI)m^X2aYJ9WC;;*H9rbQ}+FO|F2_jO74 z!+9~R=^v#zLtA|F=H|Nz2kQS-xY2dhWR*&s>85(SM|loU_k*g0t)G-H?qFqLXy?IK zCE%FDz)~f+=9LsxLgp~026_A6b`bbyR#-4usvuawx8jRv)GGm>^J}X#bcKRgJQUtZ zZ}yb2G`kh6{Poal`L6<@j}GuZa9?a(#p!7&CYi#{$Ehd{=oLy=@|!$ zSoOkswq_lfC3rq|PszuwgR-1UE8-18texx59d23v_k+i2i?{U&ACBzw*lKl-uh{g5 z@v{ZiA`_QMTuZLFd@{xUN!65qJ9E_v^t z_T%msA8jt~SDiJbzfkJ6KTlQisW~V8)GGbmf86D4-aL8krJ85fg<9V}2Zo2 zgJ~~MAC`G$`=jFRL%~yWS`}{&9$wR}=KR`T%jicvf7iktiOV+FiSlgA+!=Grwq38V z(bDC3RuapPeTm-sZr6_sUkcr%!lf}Wk7cc4#0TcqgyNp03v!1!U!9X!`uD4 zRB2&YsOUIt@xre&a@0;Adgpg%ZtudaTc>UNw#htq=~~-0N9Dp6s0juMzF3&Fb-Vl4 z?e4Z!x3kX2-=95m?i<6?d>!_a;`jZ0Hv9X(_y704uYF$~@AvQhi9iPK5AmGBA0`%M z*_}Fje8ISJnPpFLx7u5&+B{?WE>@AT03 zkDt}$`E^w|9Qn>VW!urONAehps%_S(MJ@I+TB*i5WhHY~%yPfr<9?|QoJ+oVm+{2`%AyYO$!Rn+T8FdK}9C~ONf(b!RgEudhag?J#1KXd`rrIKGTJ4 zPJcTcy8qrfmNQMdqPcO&EQyX)RSE6uzO!Eo6gFWuTN%Fm%949AAv!nLADx`_nd_Hm zz$Ia!fcGhNp-#b7&R#+4`!hc7^O&(@`c5H}nQV)^Y-BiIb$Zz3%=mQlN=gvt=K9xj zYBy`GYAu^saci!lcv9cG=(XQ8SFV_MaLu`hjOO+kSEjbC`^J?~axA<=SB!Jw|DPMZ zE-zXoq`vo3ipT44R~wJJ3E9_=ZF|(W+W3jbb?NXV5#i9E^A;vV%XPYc5oNOBE#5XM zWA!!fMZy|3SI&j3arey$t6J2yNi1kl^i-FY`)eK7?^AZ-+k0WIc*VE9A}XA{Np(RH zSBsN+CS*xHOQ~2ocghLbH5H2=w-<}=+_z*Ed!;MOnaqOid~f37Z-iwpklYz#Ke4A& z%G+Y6Vm+^9IL~s`RhRot#XSpBexu?3Wy#0Pn=+lxcbsp~4`e^NtyB6U)7#kGX2q@X z{TVVdHygd#>b^KDqLZ!EHQYGWt9Qz==<}_vw_f^P)_JtnRP$WTk~f{IhnZUTJ(4~W zw(=z3ySsm1GU!h$@@ZkxT>iNyJ&@r87rR5a_ls-%o#9s<8Y8z_OUmAU?fBJ1Enu3@ z*9&P6S*G4BeNt-^@Ms* z=?%d}KNe<%Pu4d6UK)Ph&veQ2<+ASiw{9*=DX1$8O+ENwIxEvQi^zhliT=4|jm&w5 zvYwo+D;U>GmMMX8nW@dfy-Dg=_KdpYU+|9;bJ$-~4W!P%^vp z@><7jrmXe5Jx(;(-L^jeGh$*>l$K!7b(bACW=^s{Sh+^^u~&@h<0PHQg`8n0B09w+ z*Sohf?5~!;{H#R8%ypAfS5V{Y)q=v69&XxUr++YBJDG9Vicx$=l%1gcl#j|WdW&UW zue2x??l&@9=zOeyW8^Xa55bc5hYyE%?cU866vQB0=W=ARk=)_)t~Pp)IsXJ5S)clc zZNKP8Ye|14*YC>hNzq4wjpiLQR;tr~9BHHes8Uk@0Y6ikh~~jm9wpVsT+9Bs|LN?T zeWyUfs@8a_!EgJ^cfXpf+q>qIxM2O%kLG(c9>2fyhgrX~BJ!C1M}5iv&n9XwEEImc zOuu{n&Uh9dd(-`kgjZ}{clKV}+dZnGV*h8-nn zJ!iY3)0QmwXotq<12?909sgMr{N==qSexxn;~rl=UXc3l!qIc;pJyzXy5Ut(=xoG``UTbt&dJ*OA< zibLb-uU{3D`tE4*{_qG5SNfO|*LrJV=I)@sF;AYk&Pz1*-(vY+q*!c8>5|h68$NeW zJ0-@5rBaQD0g(HTsu3+1jYkjpll-l3!V zc=d@I@gD|eKFP{@isY5Q~b`FeGm!z<(tPkX^RNks6>fe$w&9COq-k44OA z3^eLF$)3|=l)UG*b^LnjA7a{ioODYm8d>LXobKHRhOlOZZlwxs~9|8Qv;>R#A*fdp_m-@ZE8z@x+lBB~5mvsWJN^ zPC064q)puPM%L}D-IZC~rl}%Z?}~T@^FQ7rlq3DvLQXF0elORZhM5xQ3=B>i1spA1 zm->Lu=)fm$Y5vEiOr8FV&t-EK*uOHr(<<3+usJL2vO(H=ci(Hf_ZLc(rffTsV8eO2 z_xaB+*_T$hTW)pFcwuUN=&Fc8e-+@;i%AGlG*tJ)f&DMV63bjdGRUW(hIJ7t< zPk85E*K^emIXpGQJhHId_^8_C_($@`Sl@^}3aRH2FEhE<9rW;khSV-;cY}21+E0Cl z?!V0!ndRmnoU@42>|;~~&$`Q;>^u4+?)caE3r%Ow$do_AW7E>T;#OLpv9Gt;d{q&b zJy(nkSgi#V-K=%pXDjc{IMVZR#X-xo!hO9tmEFbfWFFr!x&F+?eER3ZEnhhb>!w)P zyUmeTf9)^uJpM*q>7z5Y-_knI-kW^9%={Kg`e-~~(_0RKARo4xB-#7CWzn!1- z^?AqN&#pJWKYnHN?OEEBe9qsuZ`e#)vhs4B@${fXW$L*+uo!vTRCZtiRuZy z%u_6t+`X~g+pV7Z`up7zS(WKFnfrUs3d4#)Qs7c`e$!ko#g9s=xas$$Jj%1eTK|m=e7oj&*fZ|wQ%2Qr@cptqINb~ z^>oj1^qoKT_JXHs8B6<%{_^tKeYQHhq_%ADLu2`S&aIw>?cxD-^7q~^m?Le+I>o+0 zTK8#ca-uQQ!v~tn;?uIE_u9IZEdTzU{iEXJpNV_;V#F&o>wOjkFYeM>q#CiiNXvEq z&tmI3*Pnquz?0*9@^*IXa4|4URz&WRpx>?~jyXt`0Xbk%pP2#FmStdIU|<3f49Lcy zpEqca+Ze~B;*z4o%c{jSLoc6!_Q1A~wl&%4KHP3CfJAt`iRz zaBvi{G_fr7nm5fr#anlGVfmqt!hblY**ApOcDC|QJO5AP^gLeg9V5DJPnB{F_RB153&_GU~I#mAfc}!$(bOMJgG-R zBK$*;W6Q#{LmPMuk3QgT-7fK`_?ujMMu(JG{ArnYMd`u!O+7D3Y!%+MbE$RPo#(A} z6OCfpJg$^Ynx)5=Yd-f8-}RtfThoi&XWuMsU95hD?Y?=X(~WaJjGJdP2e6cG+j=TC z+<(&Hrx!xQJ56?K<~;A;p{n%I%Ymmyrp%51i*l@SsrE|UnQH#8(qdjTou98#5hbzB zbw`#Suf#6x;^_Px?_&;o9cw-O)!FKqt#fu}so!OB(NiH0iVt;vbSd6hoKm!KX^Tg8 zx632TgKYmNJY3f?rFCcK?V`$*t|lH4p%PJ_fQgUYE?sgxws3}Bc+iu2`Hjpm+Dt0-8pB$xi8^F*te}xr}*a zQ;&rn)p-`O=h&96N*#@g#YuwRT+>3=D6C2fowrxb+_3HA{(aMV%-3&g)bmiSP00A9 z!y6slCHg4sh1UJrwuDcclz7fA{O~n#L8RJ+ZOI&!VYgXZ`l8EuwAU+yFfUA!oOrII zyZhGU<8fxn_nVVuys?TDi(3+vIJs%v@2dqxmpnWd>P^`CB=K8FL6!91g&)r8>~&7% zUsnDi;+UV!7Gv%Ek6zUpKVH`LDsqZ~v-gWCgNM5H>UkF~`v+dkU({uBR_UVJt;{2m zA7A~;Pl&fIHNGh2Z_y>TD2uNlY>Qy}j$Z38?uyCJl()=JS-$UNV{wS#pO*JBb!~5r zudMm0e%n5AhezOH2kTbF?pr#qHgQbR+RQO8al@71iH%XKPA;l@z}*_`debDh!cPB# zBTJ{=q>`CWR;xrWR9Pfa#q)hbpW&XRu`<7J95LLshvm0sr`V<)-W>CN)aS2?+4^{2 z`7uMe1fwqKrx?S1jN;srk_H|p)ylTc)4U|5KER>lH% zZiMH;;MAhBoYWHd`dk%5NH=q8uP+~?qd;r?PwBQJa~yQmn66V$5p%L|luoU?v}=}G6b_=+6aDKcOtNJuGafZQ-k0%SFEN^bU!xJ7| zs9F6!CFa#^wJ+jkrsu@XqKl{QPHxdle5Mk-%gVa`WMstCTXMYJzc{6RITgNyUE6e~ z_uD*M#h-fu+;02i@}+VJsr{ccIq|`@4{NIgnz9#2mNBn2uwMAMz*&C!miwSUIq_=e zuJsHI3<8Y!il_i`0tGU0<(!e2nFkFplyk<`hWmy~hf37tHA#A~d1PiTm2WVcGT{Q7 z##ON_`voBvI5<4kE-LlVJGo`@OatSEA%6p_{CM5`cfUARY?F6q$Hi9e*cWc%>umRx z7x{B|dT<|iefRvg-S}q&tA^p_OVjHwqkp4+foI;B+CxbJ>o~S-gR_;ciz#> zf8@hLi_hD#lfDLW$UmMJQLFUinn;FY3D;M-HQk}BL^BOP3z$t1bPn@)&6F5>u$Gly zf+;VoTuGTH+4J-{6%+Gx%bz;iE0tEy%xu2hsk$%m!<6isr|;Y|+Oaz$TJxR7G+WPG z;ibXl>kVVNuD&Df&XyEFLdU$f-`x-_7&acS{S)%F;Kh z&d!t;JG?O?S=zOVqf^?ScQQZ)=vYvv{y+JQS4*&6hp0T0$UWQH#nU(OE}hHNHvgTYoX=i1%&*NB%#Y zXZ=?vIEhMV*>M)f3UMCo;yB_RQ1fF^+eu^oM-`DiP932RN) z#Me^(+3SKbNal?dJ)q%wo8{XZev=R(TUl4*U9e^6Q>( zzrFPHw)t8vT2alqXYQi%)6DtDdGaQINj-nu?$e{$C3d$}qHlRs?6iyi zxAOcngB7ZKbPMw)Zh0WkakTu^-&Wo`J&dg1G$w#uiaDs65Y zNfVCt%xcPUW+_qJ7~7?&Hse&&Es0l4bY)K`SFX^}Tr4}U6sKVSF!ZuR}E-Ty0}Su(u-@Lp=m zLowF37AlWxxmFc;1msOEoXsSkCqCOc<<80lZ0%Wv;`iPkXU{4$e>br(;@DoUcZdHz z`q#12JHvfq8qmLVU+*53{9tU%U zJ(y8ZbF2S+$M@u>zaOJwde5KwG3UZ37u~Rjo*S+7l4EKry^e7{eBmi6Y_y5%T2he3 z$1OdnYOx$8?JUl z-|5eATjX#4{dj41|H`F7yF9OLao#Xf)uiQn=I^ZmG2TadBHH1D0oIu^)E3r4;QuU(h=v?AR4mlj)CN&RAEY{PYR4W%{9qOC-57uVom`mAdF_ zYqChS?a?mDS6AB~S6%U%weGj|*_06f<&)Ebk6u_&k@tMvJlR_7?WJGK-oCwcSM=u5 zA6y={t(32~?XFV2!so9!@j}$A7GamV_=JgOHL`ApHkf&>;4*tZ?ZMqiGD$zaCMqv< zH(K1hYp1t#&ugX|DIwkOulYE?iCuJE%8=v5FK@otZPJfCb2IwwZp`#L+Pfl6((~6o zr3_~qu_AxdCtP`+YHhs{yFXl5+&^*s0~Mv26*cLXJPcN>+qhz$(5xdXcW9~T=&YY? zGw^+lCzs0e_N7S ze6uImm&UAF9ts&QI~fnoi$@GV7CIed@476`l8+|hE(=x+Q` zv6$1ZDqlwJG5FTh^?F0E__;NQrxZFK?f%i#V!6;ZcJ}oW_ib&DjwN^;3lFW~jZZ(k z`hr}Auvp#1kG!Jyk8BUAk-jguuO|Gc1mCJ3a{Kfjvuo9L$bWor`kML0IXjtGzc`X6 zX%D{9_2~Hz#gh92K6?N0I=a5~-p-{jkEG~a_q%DHc6om5|G!#w&G$E%Z(s34HZSO7 z^&iKh@~vB^Zr1V@y?bNLBmWNI2!-aTzu`R*q}p? zG%c!(IZsPm-ZY^~Tf};Nq*sI1Aeq6WkQG9}PMD@y(IuB=Y zDa~!pF^al!s@pH}&a(|35yp#?FXyh^|0F7Uy0_27$F@;57MXpooPEAAtqAu?yfN1! zTI%AqQ^P5QB@8(r_Q8xS-p{0?|J>xvVVWyKDeLKzr&umXwPXa?;m2%Edl!no-ZkeQVG04LjD} zdYEO|=^DvW6u)C?6!SeDvEtCVM<ZG*UqSOm3XWKvE54bDJSbzBR<_w`UrhhtNa=+gne$2CGYWpTZ?n2{t zhwj!`Gq_$j@tomRf$gjhYDI5V?+aMoZ}Mf?CvT<6w)CFYP7&3|7CkI-2YV}+)YK*% zlZ>dCxBWZ!o;|D^G_M4e*_9>pKg?f#&-_Bu^rBv~v;HSrx0Ex7n;Q$>JF$5B%Dv6s z?)!8K-nw^szQ2s)zY0Bv#r85+3#9_9UM#%l{_?KDDuK7CrY^N4NJoM6R&d{0(ynVg@vIxgj2 zrN*PFM^`WJ+Ia5US4XANme-3}T_fJlnsDUFyH(sfU#)WeDRW-?LC-L=9ICQqA^g5?*VdAzNSl`q`RY5v{yEf2RpFU>70?QB@Z`LfM+=`TNl zwUb$YP1$3|`d;AIvo4qV^qB{iTsp8$o9j*NHYxjibJ;CZ>KUb^3roeW&vDownEP!} z>YZZ=r&h~VZEart{f64T?(4VyUOjvzhxx_C{`bBg{(yV&hkr{pa&a;+><~rnu%Zvm ziC}hEOG`3yNE(;3#9;91Xc_I1&)w8n8h$MFg}P|%g;ti>FU-FJFV0-r&%OIZ-nl)` z&zz~AXME=N@6*~1zB+1x$3wW(mIZqb4z z;rA0eN_X5|cDABGGum64r*+c$SA6_Zb*n2irxe_3ESdZF{hk-q;+yKUe(Ve=vEQd{ zEBVH7%JknmZ**UZj$A2FbwSC)iamHqcFrE;^402`B}1IOA&DJKk=*bD-+S^^e%IyB`(y*_;=*~p?Y|JO5K z7OkyOTXwHlyDdw6D|hVL2v3g8rP{e~_if)+cK`eSDnI}88~?tmo_zCo+qKD)t-t?! z_rC7?_L}eI@2h|9-0aU7(YgQUM!w^JDopdfChEp5eqd%VRp`T)H~nmOYH^HN`Hw>N zIQ7}re}81#bJ73iY>_=T+qXZ^vrl`}B47Skj`jO5!6VV4d(QUnv{?AS&i>g$7l!YT z-^T4xZeahAz`*}-?xxCchWE#+Q$BBKa{m+2l*}df_0e9&J^b&df8wtwywtz+$AUS3 zCWy=PJy8C!LR^0GZ~JFQkMFIB>GIR8IMgrESNW0i=kFyse%`^yo_yKSWXz=|GDq~o zyA5Z0@@~4bT!}k;VePvu)6Tw%Y<#w5rq8Qs2b%UZ-%`|_wmJCaj44ZdQr4WG8SSrY zJ>Ap$Yq!^yUt4*W*EFwOvhb#*xA+U4`F9`iU6xwNmfPL&dbO%_=f;4|?q_n+BDR0Y zoi)+pb=bXoQ|?@zqqb`ChLfANDA%rBvv=Y7Et57X71ZrAcxTqjyz+@(toMs+s=*Hz znqHDCJz=!fCFb<4U9QY&$IlAhl{=Gav@F$nqA*8T^g)AM4@u4H#SYmw=K9Ut7^ggW z^U8(U%CB#ibDNaS=8R=CN`1k+bE4wiTT6MDmUd?8FVM3dgY%Yce__Qr!&H)^&Kg**uUtbK%jp%!ySKrOa{-AMX^ryTSZsuc(9&x@>iF+F*BPyoRd%O0 zukP?XY;t?rnh)t-7FO%Cs!uvfUNNcXKB&2T#T{!`eWA+vT8Uiyj5?~K%0r`0g;d2D znl^eR;volUgcaGSz#sWkY*%c&KoViwLIgSLAF;+Tl})l ze`=+>xuTY--H8kBz7}?BS#0C8g6U^NU&eK{t` zmOMIbvFbslX#BzO%5&X%Z_Y@TWx43DnZQ=p+qo`Kk2NeNVq?gMQqlVd%uoBpmfU!{ ztSNux53_xXAMDoJ*ZzL>55~F`58Sop9qbSN!*bp)GH_l{Yv-u{Eyc6iYsrq>3#}xmC||KI7v&x;PB30 ziz26MYt`v*d=@UG8o%e{SC;#nD|e*5&aHf5#(8&|(UTn#C%5T|)*p}${ln?LbZULr zNAW*XRd)!@oPO*}bI`WB-xnNh&n+-(Nv(|x;yzk?FXp%&e?$NCMf(56qC&#lSH(F$ zd>NPAvuvUKJJU_u(vDO%Sbf@Yc@I-_OpKvs!OIeZ9ThL@Lxno7RW7@-yY<<1j;=Zn z|If>0-`u>rd2{>q(zORXWg~qg9@W{-zB;MLHG40EajFPMN&9Oj+x*b`ra3d)pXxr3 z(OLU&S8#E5<;fM7Ppu3*e`T$;{hhey_vQvWzX`kfM`8ER6MDKYi6)ohH4ydswAc zBsDeQwbb1x{z%E8}`ZyzVJ`i7itm?sZF_nsLoY@~(#n|C7)57G3RkvS$aEZd!UR z=%vKsaKSgf+CHu>*0t|%RI7L*d+wf2WvcUorEjVWM32w*IyT$#o!;#BJ(q84P02la z`bHkJi@g0tY0bUXMtp*n%;z&rT+}Y^$d~b5elg~a*3ot5N`8mS+5Y|WI4;3-`uKvr z}k-f;Z;*Ja1FOLK3uIxc#1sJG@| zPlEZxZx0N}w0vsZGDn!b4a&)jNn-8Vk#y^P-^G;`FA=G@zQU>C8km#H2om|4i%_=9_y;!$bIO2(8 zc<_o$CUNc()6?gY%BFbgBp$iFYY%UBjqbh)kJdTHdt`px+5Jax|85Ndt~u@|Pv#!E zR68+1;m0D*JvW*;V-B5?=ZK4v=}o>Vp?ACZj=JB!-x~uySKc`Ia;CSu zH-r~j1S#nSOC2uavXVJixkl^D+>?6oC(7l-g>OYSJ}h3S+52qzHWw~t_traB_cZ+M zzQ55tw&UQ*uL6(tqge|-Sv4NLAb5=NnPsOQkMU=7W8utai3l7(v(quDQ;`sc=eb;t>gDKx1aNT*`vfwPM z{)9b~AHI2bZBzQD=ZW^s;h(~#gdcmHGd<}mr{7?1eTZGw;cDm!=3Q4$EYdlBXNO#F znIE4)@TFF{(yAXfH!c%;E6AQZZ*`lgj{Q&(-V=62E< zlU@7YzyGwiZr}97XZP>h!0_dhQ-3fDCZc*!X@jg7d%h!zdwOV zbx}fWxzWUJi#W3_q|U#{vkG3~Fx%kKw7g}aIr1-kXH9;%!gR9F@?|B#{OLN%a`*J_ zYg#4xxTOVs^kaP&GU<<3)1}P2b9!G-Yg%u{%%AE-+`kmCbrfJuqoXD>! z-^wI858rZ@?)5#)b>-cY9qSTm*H66g+sHV1m!*ho_vdA6%q6>zwJ%<#c<$TMEMLhI zoe+b*+H*JiGPJT(G6F@}B+s@q9eJ-Pcv&=puh0^+jzZ-Lz1)mI}d$aTAE$3b5i-*NgBJ| z!dDhA+*=W}J#0^x$=a=RM4I({p6v*@dt*zM_0)9+dXGc*OYOcKcFW@QA)j-X&m|Zo zA9KkxdN-@dccb$Qt_N{B!5d0-6cQdVU_hsNsy4kdw*`h&`x07MkM4kt7IaenL zwNGZ;ve;M0B{R9vE4lRk&T}umzY5*9=JPkH0i zT<}8M8#69HYo3;=@@C!1{2I&4En>>c?z6poP;={2y36d@X(e{ke9k`4Jezb+QnNrb zQ|g)fwn_IR4)N))`nkUC_t`)9b_Sf5?+$$zxqgz_jVYnpn%PsY_)BhMxc=6r_d}fG zTJE?;AsyXcQtMoIG{19Qk@S&es%wS5*GIQ?rY1Z`79=seE)Yrm;}M=X<=OFzN2WW3 zNj7mz)XM43og&h9PxD1WIhU@L&DvVU{Cf4((-&48s(xz6HJxv*QC}9=XJI%a(d4qp^h3@TnsYN2FD%M&;4Zrm$REogELq3b zaiDfe*+F-ovLf|=VHw-!=05dT4d<-?9_)VYE#oJSbq->a0zRky2)EIkm@j#2hU&WF zOI6O(?qAa?CLeF#bWQMPm|V7-gawxuIBx~{*IhR!_|K(&pmE%(5~ot{`i%K zY{uJQt1DuUR1COH*{2Hx6f*M4&dWOg_0Cf*ufD0dE55}z-u&9lbX;0PQ02;=mfpOs zoLAX9^ZuXzw9O-|Da3zA)XO;wcE4D(AT~n(rQMWA0>>77j=i9{kK5{OxubB+d8f$} zT7TLkRyJP!sI)XbX;Iv=zU?di@-)}A-a2peCw%2!(>DiSU-`$j>!aGQk7ir}tfAMrh3mZYD%ddtH}oAROxJtNKE?pU&B_Ow4iVN1#ndcJR(e6O|X zWo?Vu=Cx&QVXZmSJ=UIhy|ws;(zm6qi*t52KRR{yjhK1-0-GB;zb>5H=bm<7Sn5oE z(|O7Bs$~ySld4W!uuaji$ACC`tHaP zAwF4$BVqSXZZ2>Yo{*FG_e|j1sY>=R9Xxi4)y{FnFjOtv;LNj zRdW>h7p-q7DBSnqJZtN3*`D*agbgZwv)p;&b3nq~7q0nxXySM6 z;;Qb1zi!?8pZD0vzqYXc^lI+J@Yg+iq|%?T%D(6Gi%e`$$-T5xiHL8@y-a%utS(pN}rH8%)yui@oud68ikKRp%S zA#y>NLt5UqmtVlw$LvFZ^P>FAcNg;HrJHTud~E+yZWmwB`8tp1Iwd)GN_~G=_x4Wl zd0S)qy1Ku74f6=Nf!gD|U>5zW; z>2%WJc_$_%{@bvr{rKMy@kdvehlqq_9TnIU=r!Z-oasv!IPYEkSX=w^$)BCq7CUn^EibQ#H3wn z7U}bB=sYerkEP>6Y6NHSx+&WpI<$mpZn`_+N82w89ofeW(J!o~SeS4Z!x`Q;QandZOLwxNQZA~sqX{bdu!5POW)XCeC5_xW0P(BAFwgAzEzuPT=6`k zc3H6L9i`X()+&kflKK`c`#RgJ9mW2AF02Ewx=`tcS{sT9F{%vhY2)`dn82U z5^uuU+KAE8(&7+O=rW|`(djF7kMt;@8GTq2mQMv1@F1Ei|yyfn56*sQ1OH;R=D}Ofo{hPh# zzZ?I2yk2}i!;FJ&LWgH~D)sUQdpz{AU-w9v`TC@ehmY%a*?T4lTo3*svN=mr;)f6G zIn|Gr&#vy4&Wbb$2q`;uz?Zq3>F`v86*-}~>ovvYZ*7van5Uhfw{zW>Zr;^bC+Rju zXn&~DoS=PoyIjOig953_+r@7$d|xX4r2B5}$-?rKT-7NH=ZL;oZ&iAo%c*qBANxKr zuX*w3qYtjTo|Wev|LpCu`SBlYSEogaCm$ll3aMU5(gW<8E6%=VHR`hkNy8RW5z{W;oR*Up+@_TiZR(n6umTFKxI} zwNL6tU-bOB7GCmL(AmIb1!myc6GCYd_V0HFd-Ltq$`i3rgIa{zP?`?zCQY z<*>DC2J>vYl9QUnzdl{}y&*`Lb@#=S1)E;A?$gb;)GA%ve#v;Phwq$2nZl8C%nP~W zr6PoVl%^oFrP#yJqGOw(mY` zR;O}(XHlzu@7&03+bJ$l6MOB{v)WAdGxFL?-XH$BQcQchW%kWCfpaHaoTwAIY`O*G z<8zNr-97qh)q$gN6RR_r`+^U>+``Z8cQrp}^_N6_(cI{@n`$Ip?7S1uyI$TcuJO%j zK}8<5m21==-)FpgQ^Mv&a{HtIot3I*4&&T{zsjBmGiSFiTyd@7I<9p-I+3hb4fjA9Uq=cE@UVZc*t*I zUink<*RqOzPDf2vk`6oIQyC+=myRcly`0iDUyB955PTO3+ z7M#%2^yrYjXNZ)YB zzV?Ol6KyWO{V4TD%K6i*2h1|pGhZezx-8N7Yq#&i?w^zYgO}u0YTGq)fIlFNH1-}S#7AaQK|=H9ENt_g>pIE#oDNPD?{6mAlC5t_v6 zWAI|Cr(}EJrL9Zea#XCmXubFHerMs%gWURiKlB^zd;TWEExaSL$gldF&HjDwe{b3U z|IZK31h&ssC3ns!wnrz;Ja_m=ZlS62x_2E<^W-+~SpINd8@rU8(UK;q!x^Q=Z*Bf| zw&8a*AOG2{*Y>^G8C_P}r?@-STJgJNm*K-nHtMbSg4RUvo(q_ub$R2RT|32oZPS+g zye+$(nbeq~Imh(JLe0Mh7^l7EBFxRH1i@GG( zte*t>%{rgWZfdx-#M8%0T;_J$qk|gLFO;&YOUrpkNxb}Gy8h*L3(r;!yFZx^4Fe9e zG=6?zn6M!Furjl=gxQ5|JLc(yM-ND>%c{sp;1lL~{9jmmX;sYmSI79)U%b&a`BrA7 zgxk3aPR$D{+P(Rc*%!W-y>NWm;{0C4ev_@vxfj@H2-%*TYqikU{l9oY>l?fH$Ar}o_7MCu!;tSvD|mN^zKrU&^a$$`RbjtCi#!y2Oi7tX5&_)gzLs!IqCt z%?tUU`N!GZ!$w7{hC#k{N3v2JZ;<%6JC@()8K*zHmw$hM4eN%+6@22?YeEX|9_PLD zWy70?)7nLy-nuM#8?w)^<>$MJ7J`LZUli_{?!46Od+1E^(y5hB5ijQWu9p|Mvv!R> z=h}6bJ{_&NGWqAc7fUalO6~OEcUkwQj%iog3N9v&gMHVG?t8fgdblmho5r7%=oVRM zGi7Jbakr%(`^+qvjSRIe|Lzfa%bV?`(rJ@+dbMz{R`>jsA$fiqD?Aq1E&N%oXnis1 zNZX&gIdjx6HMK0={QT~AlYRHL`CVF*aP;{lp3VE(uQKG`;d`)9Y(bwXe>qdh2EP|` zzN@u-*nWTdUS&TavHxE(Z9iqD_(fRH*I8&d;n<|^<@wulci`v7H+Lwx9-EOUE;M2wN6iESG~)8`enM$LuqS78m#W?dD=~(*TU8=y*)bxY#wcxqQ#o=Y)2je$? zVE&^~=r8Cf9jub5W<2xu-y&867iAY!m)-#H8@j!A8w%5%wwvESIay?8NN0rQse0L*i{B1x^xhh^+hlWdjPN2qiOk6yFTc&ZzbUcs%a$LaCHEBL zjb#^WX1z)~C-Jut;zi=m?ehs3}A@upAU{ zQ1Xm8q{MVeMe@Xf6ty!x0x_@LUWaYbTM@9A|IdD>_}$L*%JZMsJ-0o~EnoB4LeMuf{D;PY>nD@9 zPq%-$`1p_DxPA9doBud*`1;J6#Z$~rK2EEwx#gaB@9|Rg+8XZrub!U&vaqgZ_VoPk zpJdhc#x#5^7yA&m@AUEV&$epsCl~Gav^V>?S?&I7<>vRFKRx%^cmFhh#ZO0h(a+9m z`qNwO_51Z_{Mj%iehMq!iO1e{QU~JAehNzdQJpMr`g6f_`Ogml|LN0X zyIJR|ee7~R3CI1L)t`3q_VwC32i^D7TzR6NdMkfM&6y?UsrT~57Mu>g^nSM%JKbs{>+>5;OG9MC9lk;vi}Z>tDLb+Yl54+i{n>Dfm8bHYxlN9@`h^Y{$<$z zN`F1GkEp>_hn0Lrp%eSvRvnBpJ>t&)QEq0!ij_^vq|#PBTqgB!an^>A-Y+XRU(sm% zVYOZ>?N#_xKlR1EZ(p96JNDz_&4 z3aa_*Y)tL`A{(~bbdR#lQd`+x--+8YYEDmy`nz`0%KSxz*-JEI#XYyH%nJ5#wVXS> zC0O@mL9$L$9V_oe-H!#kY&&O)KYwj}J*%hHaQCw8ypwxQeYNa8dE%Kw*sLVoP)q*F zzm(SIzKjh$nNlHs`M{lXr%gg%B$=4!B|ef0h??86{L;gUDqo9ha)t|TwfLUvJ+}B| zc<;coQz&>;CF?w6yZcP$%i&1!fmT`qpx)FaDHgzUz{1U`}OFuF}p_ zFN?dgJhpCinIxEVs#y?K)(-tKd?o~@M2Bpmi>xl*Qk)XZmJxR$-EWwGdce4o!}=hDklHdnXT z*ll4?SawxA+w|?$&JEX={G9wI_o(tq%^wjrODBgN_Y;1$t@+^FlM$u4Y;Qvqc1`s( zJvyW9i-ntOnNjb{Upwt4#?8s-H@9vGv*KE5{dC*z4O$=GU2m=G?(wiWdxd??35nMJ zgPlAR#1ox4*NF3PXR7_qchPQ5)5*(C@$(Cci_4}S%BXQqidMP3;Y+gKZDz&5Wfv{y z>&V8>@z~aOdFKO(iE{%w11&Ec*?v@b`myOML34kJM(8xZXjbjajbP~BA+T6C6>smP>u1`p)KGIVYzsVT|4t z#8Y@9sk>RycW!<-d&zCdTazYki`b#5tZN^hIPJ>6%g2yDBxhr4NBH{`iRGf6zT z`{B;L6|E5uYWKQqm@fQp{-Zb9T-#kQKaBWdL6qh!bHDkf*lP25SCSNt!V=!ypvTd(ivZJRL z99eieBP;r`#p^p?Rf0OzWL3}nG}-<+>(KhhyPWT?Y5!;Y^!445hA|co!)VQIeo7r*d3S-UwM?W z$kcsG2p2d1dB=mZYD8r zE5~+`=MHuoLxSJCeP5@!e)k2&!(nGt46YuyWyX4AgZMUXrGqcV??yzWh|@scn=Oj{}J7AJ{lN{TZi>qIlE-&l+_)q-#0po8kUsg=Bja^=RojmgTkU0B(z{p5!vEBxGnbxCn5N1ibL&g}wutb=;%lGHR3BLjtWIt2 zH*UPeJSS`&$J7*+t8&gu7l{{t^$;>oSDvx%Qu4XnuA4Ju=ZnVbUCXQX_^wg1$>+iH z$6vO@_l7=Bu-z^2;JJ5&@Z}9TpS@bDE?(;p{*`b~?or8+z^|Q2*1W+oz2d*GR+u`< z3IENSWF`IjQ)pc1qwu9#M?&tMKCsicc)x3U_UGB?IC+~eoXl{{3SCE{L%d|;w?jw^$Lc94-SpHAj*Ym3*g;8S8-1TOP+&hwXX`JcXa;sQu+h2t% zs|g4b!C=a-`AT3I{sBnnMYpjU=cX_(#4QXEy-Hx zsP2nEoy4Nn`Syx;-e&Xbid8dBo4@?n&rs35FT%M+`uvi2Eoa&F%-~Pf!ls|aS3`80 zVho-|EDupZ3Y)Mr8&2qLlij_V04g{kl3T zRNX54efa4sML#z<*{%8V+4JgybaVcL7Ye5*znEIL)obmyRi<@Y!(ut!hP?jsN~u)w z8@u(yFU6An-#(Yjdl>%uDx1acJI+FPmZe2_FEV`;Dt+*>=45sMPFLyWOH}!;39sm8 zy>{r_TA#(@ZkKK(F4<`@)i3Gv#H93PNplUEw>Uc=y;xGXO7)^#wqBmMLrUxBXw}8< z&hws`d1AfZ#ci$!^X8U5OP(Fy+PcVd?-m;aiQZM7%ksXh?y!=c;d`)7<<0z_!#pxV zhg_E>^s6gK?z*{t+ls9HS%S8`t9I6H4VBp9d(=owTm75J{p7pBKPoNyKYW&{^m*c0 zXV<@a&67(;+O;-U&u3PhJ^#8=SFPyQYNL(64%j^0IzLlPrR)sS5wsd)?+254= zczO00Yx~;Xeea%MO)6+R_+W+E*1PK`X*~_k44hi_QNl7TZRXoYF>5&{{K;zHC9-W3 z*A?~4qDQx_5Rc9*%{b+^aq3PrwTl<-T}fgUjO4o*SS7?*Qfgsm7_0Lzd!uN#qgu=~ z({Ezo*TYOrIwnNy&B>3I*|v2n(|oql^mNya;cq{!J}r_`@AO`!A@kYsQ}0qPw6D9O zb2>1_xcHN6yXW0WPlQZcZr@T8a-9BE>*r+O2~(eTcAdL&-$&iZF6qLOJ&{Wn+PXem zaLFs?`T5DuJNJBYGZ8*7!}s(~F3(A?O~tC>Hw7F2?GU?uMZd_X{cg3z?GwfG+Y>Zr zO}_kk+FVUaydtJBg&AnR z{4(X4#*jJ85EA?dGZB3D-*a7L+f&G%-wY)7*<8QF^CT z*z#ONS_N)+UHYn*ee>{3vsqCRzFGg(X7{+N=Fc#UD6>#ZlsZ+Sa?{x>HRt(1TOHLp z0Y62-{znbBEFb>8Sn@5GbNMTwlO1LE7g>Kiac)c9L>mXCd2Q1t_hfseU*lF1I~4jd zuV{kp4y7Od%Yw5PJ9)%8wtf4uJ!E&9w@mhJo+D;+rW`rpneO*VBKPgf{yi^kCku2r z7F|-@RxR{3KcjtzY2Vd{b;JmCi8szVf6RJE#>*X za(@(Wg?`fcdfWZ4*Sv*wOBbrI-0#?5y!XxWLrB3UT`?%ievNliyBvqC-A&v@nq+%-Lr;eGV3+TrM$0W7Pg(caAt8`g`2~l zv=8;%yi3+Lq)GEGm*`y z2`sTvYc@Gt5S+G2&Oz#$sEVD4R^d$z#)Zy&4yqGk7p>m-!Ia@;)Q4|YQZBnQRceJ& z>bg$7sA?!;)?GTgC?#Vq^D!%F9@d?wPh9YFZ_C%fP_ zCX4)zEZuizg01Nk#|SsG7N+#6jI51MRd)UixFEXe$O4w61?E3_dPO*`Lyotw+KnST)6X#RYAavM6tg-77`Nnv+CC69;n,ZP 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 DrW0?p diff --git a/lib/cassidy-0.1.jar b/lib/cassidy-0.1.jar old mode 100755 new mode 100644 diff --git a/lib/jersey-client-1.1.1-ea.jar b/lib/jersey-client-1.1.1-ea.jar old mode 100755 new mode 100644 diff --git a/lib/jersey-core-1.1.1-ea.jar b/lib/jersey-core-1.1.1-ea.jar old mode 100755 new mode 100644 diff --git a/lib/jersey-server-1.1.1-ea.jar b/lib/jersey-server-1.1.1-ea.jar old mode 100755 new mode 100644 diff --git a/lib/scala-stats-1.0.jar b/lib/scala-stats-1.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..6b1b43bf7b9db2c3329cfbd34737395efc3a3a4b GIT binary patch literal 48694 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 literal 0 HcmV?d00001 diff --git a/samples-scala/src/main/scala/SimpleService.scala b/samples-scala/src/main/scala/SimpleService.scala index 79eaaad468..59d28e52e6 100644 --- a/samples-scala/src/main/scala/SimpleService.scala +++ b/samples-scala/src/main/scala/SimpleService.scala @@ -114,4 +114,4 @@ class JsonpFilter extends BroadcastFilter[String] with Logging { message + "\" }); \n\n") } -} \ No newline at end of file +} From 43e43a2dc636592f272f7bd07121c3342c0cc138 Mon Sep 17 00:00:00 2001 From: Jonas Boner Date: Tue, 11 Aug 2009 12:17:23 +0200 Subject: [PATCH 03/12] added windows bat startup script --- bin/start-akka-server.bat | 91 ++++++++++++++++++++++++++++++++++++++ lib/cassidy-0.1.jar | Bin 39948 -> 0 bytes 2 files changed, 91 insertions(+) create mode 100755 bin/start-akka-server.bat delete mode 100644 lib/cassidy-0.1.jar diff --git a/bin/start-akka-server.bat b/bin/start-akka-server.bat new file mode 100755 index 0000000000..8b75de5848 --- /dev/null +++ b/bin/start-akka-server.bat @@ -0,0 +1,91 @@ +@ECHO OFF + +@REM IF "%1"=="" goto error +IF "%AKKA_HOME%"=="" goto error_no_akka_home +IF "%JAVA_COMMAND%"=="" set JAVA_COMMAND=%JAVA_HOME%\bin\java +IF "%JAVA_HOME%"=="" goto error_no_java_home + +set VERSION=0.5 +set LIB_DIR=%AKKA_HOME%\lib + +set CLASSPATH=%AKKA_HOME%\config +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\akka-kernel-0.5.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\akka-util-java-0.5.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\antlr-3.1.3.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\aopalliance-1.0.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\asm-3.1.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\aspectwerkz-nodeps-jdk5-2.1.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\atmosphere-core-0.3.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\atmosphere-portable-runtime-0.3.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\camel-core-2.0-SNAPSHOT.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\atmosphere-compat-0.3.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\cassandra-0.4.0-dev.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\cglib-2.2.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\commons-cli-1.1.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\commons-collections-3.2.1.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\commons-io-1.3.2.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\commons-javaflow-1.0-SNAPSHOT.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\commons-lang-2.4.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\commons-logging-1.0.4.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\commons-math-1.1.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\configgy-1.3.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\fscontext.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\google-collect-snapshot-20090211.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\grizzly-comet-webserver-1.8.6.3.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\guice-core-2.0-SNAPSHOT.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\guice-jsr250-2.0-SNAPSHOT.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\high-scale-lib.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\jackson-core-asl-1.1.0.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\jackson-mapper-asl-1.1.0.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\jersey-client-1.1.1-ea.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\jersey-core-1.1.1-ea.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\jersey-json-1.1.1-ea.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\jersey-server-1.1.1-ea.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\jersey-scala-1.1.2-ea-SNAPSHOT.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\JSAP-2.1.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\jsr250-api-1.0.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\jsr311-api-1.0.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\libfb303.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\libthrift.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\log4j-1.2.15.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\lucene-core-2.2.0.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\netty-3.1.0.CR1.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\providerutil.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\protobuf-java-2.1.0.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\scala-library-2.7.5.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\scala-stats-1.0.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\servlet-api-2.5.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\slf4j-api-1.4.3.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\slf4j-log4j12-1.4.3.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\stringtemplate-3.0.jar +set CLASSPATH=%CLASSPATH%;%LIB_DIR%\zookeeper-3.1.0.jar + +@REM Add for debugging; -Xdebug -Xrunjdwp;transport=dt_socket,server=y,suspend=y,address=5005 \ +@REM To have Akka dump the generated classes, add the '-Daspectwerkz.transform.dump=*' option and it will dump classes to $BASE_DIR/_dump + +set JVM_OPTS=-server -Xms128M -Xmx1G -XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=90 -XX:+AggressiveOpts -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=1 -XX:+CMSParallelRemarkEnabled -XX:+HeapDumpOnOutOfMemoryError -Dcom.sun.management.jmxremote.port=8080 -Dcom.sun.management.jmxremote.ssl=false -Djava.naming.factory.initial=com.sun.jndi.fscontext.RefFSContextFactory -Dcom.sun.grizzly.cometSupport=true -Dcom.sun.management.jmxremote.authenticate=false + +@ECHO ON + +%JAVA_HOME%\bin\java %JVM_OPTS% -cp %CLASSPATH% se.scalablesolutions.akka.kernel.Kernel %1 %2 %3 + +@exit /B %ERRORLEVEL% + +;error + IF EXIST "%AKKA_HOME%\bin\usage.txt" ( + type %AKKA_HOME%\bin\usage.txt" + ) ELSE ( + echo AKKA_HOME does not point to the Akka directory + ) +@goto error_exit + +;error_no_java_home +@echo Please specify the JAVA_HOME environment variable. +@goto error_exit + +;error_no_akka_home +@echo Please specify the AKKA_HOME environment variable. +@goto error_exit + +;error_exit +@exit /B -1 \ No newline at end of file diff --git a/lib/cassidy-0.1.jar b/lib/cassidy-0.1.jar deleted file mode 100644 index ec7e313eac29ba35d8eea20f4ef10b6b8f6c55e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39948 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 Date: Wed, 12 Aug 2009 11:39:13 +0200 Subject: [PATCH 04/12] added MBean for thread pool management + added a REST statistics service --- kernel/src/main/scala/Kernel.scala | 12 +- kernel/src/main/scala/management/JMX.scala | 140 ++++++++++++------ .../main/scala/management/RestfulJMX.scala | 43 ++++-- .../EventBasedThreadPoolDispatcher.scala | 3 +- 4 files changed, 132 insertions(+), 66 deletions(-) diff --git a/kernel/src/main/scala/Kernel.scala b/kernel/src/main/scala/Kernel.scala index 57bb697079..b9771b77ba 100644 --- a/kernel/src/main/scala/Kernel.scala +++ b/kernel/src/main/scala/Kernel.scala @@ -24,29 +24,26 @@ import kernel.management.Management * @author Jonas Bonér */ object Kernel extends Logging { - @volatile private var hasBooted = false - Boot.HOME - + val version = "0.6" val config = setupConfig val BOOT_CLASSES = config.getList("akka.boot") - val RUN_REMOTE_SERVICE = config.getBool("akka.remote.service", true) val RUN_MANAGEMENT_SERVICE = config.getBool("akka.management.service", true) val STORAGE_SYSTEM = config.getString("akka.storage.system", "cassandra") - val RUN_REST_SERVICE = config.getBool("akka.rest.service", true) val REST_HOSTNAME = kernel.Kernel.config.getString("akka.rest.hostname", "localhost") val REST_URL = "http://" + REST_HOSTNAME val REST_PORT = kernel.Kernel.config.getInt("akka.rest.port", 9998) // FIXME add API to shut server down gracefully + @volatile private var hasBooted = false private var remoteServer: RemoteServer = _ private var jerseySelectorThread: SelectorThread = _ private val startTime = System.currentTimeMillis private var applicationLoader: Option[ClassLoader] = None - + def main(args: Array[String]) = boot def boot = synchronized { @@ -81,7 +78,6 @@ object Kernel extends Logging { def setupConfig: Config = { try { Configgy.configure(akka.Boot.CONFIG + "/akka.conf") - val runtime = new RuntimeEnvironment(getClass) //runtime.load(args) val config = Configgy.config config.registerWithJmx("se.scalablesolutions.akka") @@ -123,7 +119,7 @@ object Kernel extends Logging { } private[akka] def startManagementService = { - Management.startJMX("se.scalablesolutions.akka") + Management("se.scalablesolutions.akka.management") log.info("Management service started successfully.") } diff --git a/kernel/src/main/scala/management/JMX.scala b/kernel/src/main/scala/management/JMX.scala index 988a123668..e7dce53573 100755 --- a/kernel/src/main/scala/management/JMX.scala +++ b/kernel/src/main/scala/management/JMX.scala @@ -7,7 +7,9 @@ package se.scalablesolutions.akka.kernel.management import com.twitter.service.Stats import scala.collection.jcl +import scala.collection.mutable.ArrayBuffer +import java.util.concurrent.ThreadPoolExecutor import java.lang.management.ManagementFactory import javax.{management => jmx} import javax.management.remote.{JMXConnectorServerFactory, JMXServiceURL} @@ -18,29 +20,51 @@ import kernel.util.Logging /** * @author Jonas Bonér */ -object Management { +object Management extends Logging { val RECORD_STATS = config.getBool("akka.management.record-stats", true) + private var name = "se.scalablesolutions.akka" + private val mbeanServer = ManagementFactory.getPlatformMBeanServer - def startJMX(packageName: String): Unit = - startJMX(packageName, ManagementFactory.getPlatformMBeanServer) + def apply() = {} + def apply(packageName: String) = name = packageName - def startJMX(packageName: String, mbeanServer: jmx.MBeanServer): Unit = { - mbeanServer.registerMBean(new StatisticsMBean, new jmx.ObjectName(packageName + ":type=Stats")) - mbeanServer.registerMBean(new ManagementMBean, new jmx.ObjectName(packageName + ":type=Management")) - java.rmi.registry.LocateRegistry.createRegistry(1099) - JMXConnectorServerFactory.newJMXConnectorServer( - new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi"), - null, - mbeanServer).start + java.rmi.registry.LocateRegistry.createRegistry(1099) + JMXConnectorServerFactory.newJMXConnectorServer( + new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi"), + null, + mbeanServer).start + + registerMBean(new StatisticsMBean, "Stats") + + def registerMBean(mbean: jmx.DynamicMBean, mbeanType: String) = { + val objectName = new jmx.ObjectName(name + ":type=" + mbeanType) + try { mbeanServer.getMBeanInfo(objectName) } catch { + case e: jmx.InstanceNotFoundException => + mbeanServer.registerMBean(mbean, objectName) + } + } + + def getStats(reset: Boolean) = { + var statistics = new ArrayBuffer[Tuple2[String, String]] + statistics += (("current time", (System.currentTimeMillis / 1000).toString)) + statistics += (("akka version", Kernel.version)) + statistics += (("uptime", Kernel.uptime.toString)) + for ((key, value) <- Stats.getJvmStats) statistics += (key, value.toString) + for ((key, value) <- Stats.getCounterStats) statistics += (key, value.toString) + for ((key, value) <- Stats.getTimingStats(reset)) statistics += (key, value.toString) + for ((key, value) <- Stats.getGaugeStats(reset)) statistics += (key, value.toString) + val report = {for ((key, value) <- statistics) yield "STAT %s %s".format(key, value)}.mkString("", "\r\n", "\r\n") + log.info("=========================================\n\t--- Statistics Report ---\n%s=========================================", report) + report } } /** * @author Jonas Bonér */ -class StatisticsMBean extends jmx.DynamicMBean with Logging { +class StatisticsMBean extends jmx.DynamicMBean { def getMBeanInfo = new jmx.MBeanInfo( - "se.scalablesolutions.akka.management.Stats", + "se.scalablesolutions.akka.kernel.management.StatisticsMBean", "runtime statistics", getAttributeInfo, null, null, null, @@ -92,52 +116,72 @@ class StatisticsMBean extends jmx.DynamicMBean with Logging { /** * @author Jonas Bonér */ -class ManagementMBean extends jmx.DynamicMBean with Logging { +class ThreadPoolMBean(threadPool: ThreadPoolExecutor) extends jmx.DynamicMBean { val operations: Array[jmx.MBeanOperationInfo] = Array( - new jmx.MBeanOperationInfo("dosomething", "TODO", - Array( - new jmx.MBeanParameterInfo("key", "java.lang.String", "TODO"), - new jmx.MBeanParameterInfo("value", "java.lang.String", "TODO") - ), "void", jmx.MBeanOperationInfo.ACTION) + new jmx.MBeanOperationInfo("purge", "", + Array(), "void", jmx.MBeanOperationInfo.ACTION), + new jmx.MBeanOperationInfo("shutdown", "", + Array(), "void", jmx.MBeanOperationInfo.ACTION), + new jmx.MBeanOperationInfo("setCorePoolSize", "", + Array(new jmx.MBeanParameterInfo("corePoolSize", "java.lang.Integer", "")), "void", jmx.MBeanOperationInfo.ACTION), + new jmx.MBeanOperationInfo("setMaximumPoolSize", "", + Array(new jmx.MBeanParameterInfo("maximumPoolSize", "java.lang.Integer", "")), "void", jmx.MBeanOperationInfo.ACTION), ) def getMBeanInfo = new jmx.MBeanInfo( - "se.scalablesolutions.akka.management.Management", + "se.scalablesolutions.akka.kernel.management.ThreadPoolMBean", "runtime management", - Array[jmx.MBeanAttributeInfo](), + getAttributeInfo, null, operations, null, new jmx.ImmutableDescriptor("immutableInfo=false")) - def getAttribute(name: String): AnyRef = throw new UnsupportedOperationException + def getAttribute(name: String): AnyRef = name match { + case "getActiveCount" => threadPool.getActiveCount.asInstanceOf[AnyRef] + case "getCompletedTaskCount" => threadPool.getCompletedTaskCount.asInstanceOf[AnyRef] + case "getCorePoolSize" => threadPool.getCorePoolSize.asInstanceOf[AnyRef] + case "getLargestPoolSize" => threadPool.getLargestPoolSize.asInstanceOf[AnyRef] + case "getMaximumPoolSize" => threadPool.getMaximumPoolSize.asInstanceOf[AnyRef] + case "getPoolSize" => threadPool.getPoolSize.asInstanceOf[AnyRef] + case "getTaskCount" => threadPool.getTaskCount.asInstanceOf[AnyRef] + } - def getAttributes(names: Array[String]): jmx.AttributeList = throw new UnsupportedOperationException + private def getAttributeInfo: Array[jmx.MBeanAttributeInfo] = { + Array( + new jmx.MBeanAttributeInfo("getCorePoolSize", "java.lang.Int", "", true, false, false), + new jmx.MBeanAttributeInfo("getMaximumPoolSize", "java.lang.Int", "", true, false, false), + new jmx.MBeanAttributeInfo("getActiveCount", "java.lang.Int", "", true, false, false), + new jmx.MBeanAttributeInfo("getCompletedTaskCount", "java.lang.Long", "", true, false, false), + new jmx.MBeanAttributeInfo("getLargestPoolSize", "java.lang.Int", "", true, false, false), + new jmx.MBeanAttributeInfo("getPoolSize", "java.lang.Int", "", true, false, false), + new jmx.MBeanAttributeInfo("getTaskCount", "java.lang.Long", "", true, false, false)) + } + + def getAttributes(names: Array[String]): jmx.AttributeList = { + val rv = new jmx.AttributeList + for (name <- names) rv.add(new jmx.Attribute(name, getAttribute(name))) + rv + } def invoke(actionName: String, params: Array[Object], signature: Array[String]): AnyRef = { - actionName match { - case "dosomething" => - params match { - case Array(name: String, value: String) => - try { - {} - } catch { - case e: Exception => - log.warning("Exception: %s", e.getMessage) - throw e - } - case _ => throw new jmx.MBeanException(new Exception("Bad signature " + params.toList.toString)) - } - case _ => throw new jmx.MBeanException(new Exception("No such method")) - } - null + try { + actionName match { + case "purge" => threadPool.purge + case "shutdown" => threadPool.shutdown + case "setCorePoolSize" => + params match { + case Array(corePoolSize: java.lang.Integer) => threadPool.setCorePoolSize(corePoolSize.intValue) + case _ => throw new Exception("Bad signature " + params.toList.toString) + } + case "setMaximumPoolSize" => + params match { + case Array(maximumPoolSize: java.lang.Integer) => threadPool.setMaximumPoolSize(maximumPoolSize.intValue) + case _ => throw new Exception("Bad signature " + params.toList.toString) + } + } + } catch { case e: Exception => throw new jmx.MBeanException(e) } + "Success" } - def setAttribute(attr: jmx.Attribute): Unit = attr.getValue match { - case s: String => println("Setting: " + s) - case _ => throw new jmx.InvalidAttributeValueException() - } - - def setAttributes(attrs: jmx.AttributeList): jmx.AttributeList = { - for (attr <- jcl.Buffer(attrs.asList)) setAttribute(attr) - attrs - } + def setAttribute(attr: jmx.Attribute): Unit = throw new UnsupportedOperationException + def setAttributes(attrs: jmx.AttributeList): jmx.AttributeList = throw new UnsupportedOperationException } diff --git a/kernel/src/main/scala/management/RestfulJMX.scala b/kernel/src/main/scala/management/RestfulJMX.scala index 5726e57764..05a5aac2a5 100755 --- a/kernel/src/main/scala/management/RestfulJMX.scala +++ b/kernel/src/main/scala/management/RestfulJMX.scala @@ -20,33 +20,34 @@ import java.util.concurrent.ConcurrentHashMap *

* Here is an example that retreives the current number of Actors. *

- * http://localhost:9998/management
+ * http://localhost:9998/jmx
  *   ?service=service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi
  *   &component=se.scalablesolutions.akka:type=Stats
  *   &attribute=counter_NrOfActors
  * 
*/ -@Path("/management") +@Path("/jmx") class RestfulJMX extends Actor with Logging { private case class Request(service: String, component: String, attribute: String) + private val connectors = new ConcurrentHashMap[String, JMXConnector] @GET - @Produces(Array("text/html")) + @Produces(Array("text/plain")) def queryJMX( @QueryParam("service") service: String, @QueryParam("component") component: String, - @QueryParam("attribute") attribute: String) = - (this !! Request(service, component, attribute)).getOrElse(Error in REST JMX management service) + @QueryParam("attribute") attribute: String): String= + (this !! Request(service, component, attribute)).getOrElse("Error in REST JMX management service") override def receive: PartialFunction[Any, Unit] = { case Request(service, component, attribute) => reply(retrieveAttribute(service, component, attribute)) } - private def retrieveAttribute(service: String, component: String, attribute: String): scala.xml.Elem = { + private def retrieveAttribute(service: String, component: String, attribute: String): String = { try { var connector = connectors.putIfAbsent(service, JMXConnectorFactory.connect(new JMXServiceURL(service))) -
{connector.getMBeanServerConnection.getAttribute(new ObjectName(component), attribute).toString}
+ connector.getMBeanServerConnection.getAttribute(new ObjectName(component), attribute).toString } catch { case e: Exception => if (connectors.contains(service)) connectors.remove(service) @@ -55,6 +56,27 @@ class RestfulJMX extends Actor with Logging { } } +/** + * REST interface to Akka's statistics recorder. + *

+ * Here is an example that retreives a statistics report. + *

+ * http://localhost:9998/stats?reset=true
+ * 
+ */ +@Path("/stats") +class StatisticsReporter extends Actor with Logging { + private case class Stats(reset: Boolean) + @GET + @Produces(Array("text/html")) + def stats(@QueryParam("reset") reset: String): scala.xml.Elem = + (this !! Stats(java.lang.Boolean.valueOf(reset).booleanValue)).getOrElse(

Error in REST JMX management service

) + + override def receive: PartialFunction[Any, Unit] = { + case Stats(reset) => reply(
{Management.getStats(reset)}
) + } +} + class RestfulJMXBoot extends Logging { log.info("Booting Restful JMX servivce") object factory extends SupervisorFactory { @@ -63,8 +85,11 @@ class RestfulJMXBoot extends Logging { RestartStrategy(OneForOne, 3, 100), Supervise( new RestfulJMX, - LifeCycle(Permanent, 100)) - :: Nil) + LifeCycle(Permanent, 100)) :: + Supervise( + new StatisticsReporter, + LifeCycle(Permanent, 100)) :: + Nil) } } factory.newSupervisor.startSupervisor diff --git a/kernel/src/main/scala/reactor/EventBasedThreadPoolDispatcher.scala b/kernel/src/main/scala/reactor/EventBasedThreadPoolDispatcher.scala index 939fe8ccbe..1f96769374 100644 --- a/kernel/src/main/scala/reactor/EventBasedThreadPoolDispatcher.scala +++ b/kernel/src/main/scala/reactor/EventBasedThreadPoolDispatcher.scala @@ -4,7 +4,7 @@ package se.scalablesolutions.akka.kernel.reactor -import kernel.management.Management +import kernel.management.{Management, ThreadPoolMBean} import java.util.concurrent._ import locks.ReentrantLock @@ -79,6 +79,7 @@ class EventBasedThreadPoolDispatcher(name: String, private val concurrentMode: B def start = if (!active) { active = true + Management.registerMBean(new ThreadPoolMBean(threadPoolBuilder), "ThreadPool_" + name) /** * This dispatcher code is based on code from the actorom actor framework by Sergio Bossa [http://code.google.com/p/actorom/]. From 265df3d47c8989072111d4b81e0de52bed936060 Mon Sep 17 00:00:00 2001 From: Jonas Boner Date: Wed, 12 Aug 2009 21:13:59 +0200 Subject: [PATCH 05/12] restructured maven modules, removed unused jars --- .../0.4.0-dev/cassandra-0.4.0-dev.jar | Bin .../0.4.0-dev/cassandra-0.4.0-dev.pom | 14 +- .../0.4.0-trunk/cassandra-0.4.0-trunk.jar | Bin 0 -> 1027735 bytes .../0.4.0-trunk/cassandra-0.4.0-trunk.pom | 8 + .../zookeeper/3.1.0/zookeeper-3.1.0.pom | 0 fun-test-java/pom.xml | 3 +- kernel/pom.xml | 104 +------ kernel/src/main/scala/Kernel.scala | 36 +-- kernel/src/test/scala/JerseySpec.scala | 91 ------- lib/guice-jsr250-2.0-SNAPSHOT.jar | Bin 10521 -> 0 bytes lib/high-scale-lib.jar | Bin 255915 -> 0 bytes lib/jersey-client-1.1.1-ea.jar | Bin 81558 -> 0 bytes lib/jsr250-api-1.0.jar | Bin 5848 -> 0 bytes lib/junit-4.5.jar | Bin 198945 -> 0 bytes lib/junit4runner-1.0.jar | Bin 8634 -> 0 bytes lib/scalatest-0.9.5.jar | Bin 932454 -> 0 bytes pom.xml | 257 +++++++++++++++++- samples-java/pom.xml | 1 + samples-lift/pom.xml | 161 +---------- samples-scala/pom.xml | 63 +---- scripts/remove_trailing_whitespace.sh | 3 +- util-java/pom.xml | 7 +- .../config/ActiveObjectGuiceModule.java | 4 +- 23 files changed, 308 insertions(+), 444 deletions(-) mode change 100644 => 100755 embedded-repo/org/apache/cassandra/cassandra/0.4.0-dev/cassandra-0.4.0-dev.jar create mode 100755 embedded-repo/org/apache/cassandra/cassandra/0.4.0-trunk/cassandra-0.4.0-trunk.jar create mode 100755 embedded-repo/org/apache/cassandra/cassandra/0.4.0-trunk/cassandra-0.4.0-trunk.pom mode change 100644 => 100755 embedded-repo/org/apache/zookeeper/3.1.0/zookeeper-3.1.0.pom delete mode 100644 kernel/src/test/scala/JerseySpec.scala delete mode 100644 lib/guice-jsr250-2.0-SNAPSHOT.jar delete mode 100644 lib/high-scale-lib.jar delete mode 100644 lib/jersey-client-1.1.1-ea.jar delete mode 100644 lib/jsr250-api-1.0.jar delete mode 100644 lib/junit-4.5.jar delete mode 100644 lib/junit4runner-1.0.jar delete mode 100644 lib/scalatest-0.9.5.jar diff --git a/embedded-repo/org/apache/cassandra/cassandra/0.4.0-dev/cassandra-0.4.0-dev.jar b/embedded-repo/org/apache/cassandra/cassandra/0.4.0-dev/cassandra-0.4.0-dev.jar old mode 100644 new mode 100755 diff --git a/embedded-repo/org/apache/cassandra/cassandra/0.4.0-dev/cassandra-0.4.0-dev.pom b/embedded-repo/org/apache/cassandra/cassandra/0.4.0-dev/cassandra-0.4.0-dev.pom index 8b158c6808..bb23e206eb 100644 --- a/embedded-repo/org/apache/cassandra/cassandra/0.4.0-dev/cassandra-0.4.0-dev.pom +++ b/embedded-repo/org/apache/cassandra/cassandra/0.4.0-dev/cassandra-0.4.0-dev.pom @@ -1,8 +1,8 @@ - - - 4.0.0 - org.apache.cassandra - cassandra - 0.4.0-dev - jar + + + 4.0.0 + org.apache.cassandra + cassandra + 0.4.0-dev + jar \ No newline at end of file diff --git a/embedded-repo/org/apache/cassandra/cassandra/0.4.0-trunk/cassandra-0.4.0-trunk.jar b/embedded-repo/org/apache/cassandra/cassandra/0.4.0-trunk/cassandra-0.4.0-trunk.jar new file mode 100755 index 0000000000000000000000000000000000000000..44796086bebbbbf20a90807ec81cab2aa0e196ef GIT binary patch literal 1027735 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�dM=HNE>OV`w>y_Q1$P1+0D|LikYG85!_ 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