BoolNet/0000755000176000001440000000000012473324601011646 5ustar ripleyusersBoolNet/inst/0000755000176000001440000000000012473311652012625 5ustar ripleyusersBoolNet/inst/CITATION0000644000176000001440000000141612466166264013775 0ustar ripleyuserscitHeader("To cite package 'BoolNet' in publications use:") citEntry(entry = "article", title = "BoolNet -- an R package for generation, reconstruction and analysis of Boolean networks", author = personList(as.person("Christoph M\\\"ussel"), as.person("Martin Hopfensitz"), as.person("Hans A. Kestler")), journal = "Bioinformatics", volume = 26, number = 10, pages = "1378--1380", year = 2010, textVersion = paste("Christoph Müssel, Martin Hopfensitz, Hans A. Kestler (2010). ", "BoolNet -- an R package for generation, reconstruction and analysis of Boolean networks. ", "Bioinformatics 26(10):1378-1380.", sep="")) BoolNet/inst/NEWS.Rd0000644000176000001440000001460612473107364013702 0ustar ripleyusers\name{NEWS} \title{NEWS file for the \pkg{BoolNet} package} \section{Changes in version 2.1.1}{ \itemize{ \item{Fixed compilation errors on Windows.} } } \section{Changes in version 2.1.0}{ \subsection{Modified functions}{ \itemize{ \item{\code{getAttractors()} and \code{simulateSymbolicModel()} now support the identification of attractors in large networks based on a formulation as a satisfiability (SAT) problem. } \item{\code{plotAttractors()} and \code{plotSequence()} now plot the genes in the order of the network instead of the reverse order by default. This behaviour can be controlled using a new parameter \code{reverse} which is also available in \code{attractorsToLaTeX()} and \code{sequenceToLaTeX()}.} \item{Bugfix regarding negated temporal predicates in \code{simulateSymbolicModel()}.} } } } \section{Changes in version 2.0.2}{ \subsection{Modified functions}{ \itemize{ \item{Fixed undefined behaviour in \code{markovSimulation()}.} } } } \section{Changes in version 2.0.1}{ \subsection{Modified functions}{ \itemize{ \item{Fixed memory misalignment in \code{simulateSymbolicModel()}.} \item{\code{loadSBML()} now accepts nodes that are constant, but have no initial value.} } } } \section{Changes in version 2.0}{ \subsection{New functions}{ \itemize{ \item{Support of temporal networks, and inclusion of a new simulator \code{simulateSymbolicModel()} to simulate these networks. Related functions include \code{truthTableToSymbolic()} and \code{symbolicToTruthTable()} to convert networks between the symbolic representation used by the new simulator and the truth table representation employed by the standard simulator.} \item{New function \code{perturbTrajectories()} to assess the robustness of networks to noise in the states}.} } \subsection{Modified functions}{ \itemize{ \item{\code{loadNetwork()} can now load networks in a symbolic representation and with temporal extensions. \code{loadSBML()} and \code{loadBioTapestry()} can load symbolic networks without temporal extensions. } \item{Most functions of the package have been adapted to work either with the symbolic representation or with the truth table representation of networks.} \item{\code{plotSequence()} and \code{sequenceToLaTeX()} now visualize the attractor.} \item{\code{reconstructNetwork()} now supports the specification of prior knowledge in form of required or excluded dependencies. Furthermore, it can now reconstruct networks from perturbation time series. By default, the function now returns incomplete functions with "don't care" values" instead of enumerating all possible functions. } \item{\code{generateTimeSeries()} can now generate artificial perturbation data with simulated knock-out or overexpression of genes.} \item{\code{generateRandomNKNetwork()} can now be supplied with a user-defined generation function for the transition functions. Generation functions \code{generateCanalyzing()} and \code{generateNestedCanalyzing()} for canalyzing functions and nested canalyzing functions are included in the package.} \item{\code{testNetworkProperties()} supports several new tests that perturb the network states instead of the networks themselves. These are available in the test functions \code{testAttractorRobustness()} and \code{testTransitionRobustness()}. } } } } \section{Changes in version 1.63}{ \subsection{Modified functions}{ \itemize{ \item{Fixed issues preventing the use of \pkg{BoolNet} on Big Endian systems.} \item{Eliminated some bad style code.} \item{Fixed some valgrind notes.} } } } \section{Changes in version 1.62}{ \subsection{Modified functions}{ \itemize{ \item{Minor bugfixes in \code{loadNetwork()}.} \item{Fixed undefined behaviour warnings for GCC 4.9.} } } } \section{Changes in version 1.61}{ \subsection{Modified functions}{ \itemize{ \item{Bugfixes in \code{plotAttractors()} and \code{plotSequence()}.} \item{Fixed compatibility issues with R 3.0 alpha.} } } } \section{Changes in version 1.60}{ \subsection{New functions}{ \itemize{ \item{Support for SBML: \code{loadSBML()} and \code{toSBML()} import from and export to SBML documents with the \code{sbml-qual} extension package.} \item{\code{saveNetwork()} stores networks in the \pkg{BoolNet} file format.} } } \subsection{Modified functions}{ \itemize{ \item{The DNF generator employed by \code{generateRandomNKNetwork()} and \code{simplifyNetwork()} (as well as by the new functions \code{saveNetwork()} and \code{toSBML()}) now supports minimizing the canonical DNFs.} } } } \section{Changes in version 1.51}{ \subsection{Modified functions}{ \itemize{ \item{\pkg{BoolNet} now supports the modified interface of \pkg{igraph} 0.6 in all plotting functions, but is still compatible with older versions of \pkg{igraph}.} \item{\code{loadNetwork()} supports comment lines in the network files.} } } } \section{Changes in version 1.50}{ \subsection{New functions}{ \itemize{ \item{\code{generateTimeSeries()} generates random state sequences from an existing network.} \item{\code{plotSequence()} and \code{sequenceToLaTeX()} plot and export sequences of states similar to \code{plotAttractors()} and \code{attractorsToLaTeX()}.} \item{\code{getAttractorSequence()} extracts the states of a single synchronous attractor from an attractor information structure as a data frame.} \item{\code{generateState()} provides a simple way to specify network states using partial assignments.} } } \subsection{Modified functions}{ \itemize{ \item{\code{getPathToAttractor()} has an additional parameter \code{includeAttractorStates} specifying which attractor states should be included in the path. The default behaviour has been changed to include all attractor states.} \item{\code{generateRandomNKNetwork()} now supports the generation of networks using specific classes of functions. For this purpose, it has two new parameters \code{validationFunction} and \code{failureIterations}.} \item{By default, \code{loadNetwork()} no longer changes gene names to lower case. If this behaviour is desired, it can be reactivated using the new \code{lowercaseGenes} parameter.} \item{\code{stateTransition()} now names the state vector using the gene names.} \item{\code{plotAttractors()} has a new parameter \code{drawLegend} to disable the legend.} \item{The \code{randomChainLength} parameter of \code{getAttractors()} now defaults to 10000.} \item{\code{getAttractors()}, \code{reconstructNetwork()} and \code{markovSimulation()} can now be interrupted by the user.} } } } BoolNet/inst/doc/0000755000176000001440000000000012473311652013372 5ustar ripleyusersBoolNet/inst/doc/BoolNet_package_vignette.R0000644000176000001440000010671312473311652020447 0ustar ripleyusers### R code from vignette source 'BoolNet_package_vignette.Snw' ################################################### ### code chunk number 1: BoolNet_package_vignette.Snw:81-82 (eval = FALSE) ################################################### ## install.packages("BoolNet") ################################################### ### code chunk number 2: BoolNet_package_vignette.Snw:86-87 ################################################### library(BoolNet) ################################################### ### code chunk number 3: BoolNet_package_vignette.Snw:166-167 (eval = FALSE) ################################################### ## cellcycle <- loadNetwork("cellcycle.txt") ################################################### ### code chunk number 4: BoolNet_package_vignette.Snw:172-173 ################################################### data(cellcycle) ################################################### ### code chunk number 5: BoolNet_package_vignette.Snw:222-223 ################################################### data(yeastTimeSeries) ################################################### ### code chunk number 6: BoolNet_package_vignette.Snw:230-231 ################################################### binSeries <- binarizeTimeSeries(yeastTimeSeries) ################################################### ### code chunk number 7: BoolNet_package_vignette.Snw:236-239 ################################################### net <- reconstructNetwork(binSeries$binarizedMeasurements, method="bestfit", maxK=4) ################################################### ### code chunk number 8: BoolNet_package_vignette.Snw:245-246 ################################################### net ################################################### ### code chunk number 9: BoolNet_package_vignette.Snw:253-258 ################################################### pdf("wiring1.pdf") par(mar = c(1, 1, 1, 1)) set.seed(333) plotNetworkWiring(net) dev.off() ################################################### ### code chunk number 10: BoolNet_package_vignette.Snw:260-261 (eval = FALSE) ################################################### ## plotNetworkWiring(net) ################################################### ### code chunk number 11: BoolNet_package_vignette.Snw:275-279 ################################################### net <- reconstructNetwork(binSeries$binarizedMeasurements, method="bestfit", maxK=4, excludedDependencies = list("Sic1" = c("Sic1", "Fkh2"))) ################################################### ### code chunk number 12: BoolNet_package_vignette.Snw:281-286 ################################################### pdf("wiring2.pdf") par(mar = c(1, 1, 1, 1)) set.seed(442) plotNetworkWiring(net) dev.off() ################################################### ### code chunk number 13: BoolNet_package_vignette.Snw:294-297 ################################################### net <- reconstructNetwork(binSeries$binarizedMeasurements, method="bestfit", maxK=4) singleNet <- chooseNetwork(net, c(1,2,3,2)) ################################################### ### code chunk number 14: BoolNet_package_vignette.Snw:300-301 ################################################### singleNet ################################################### ### code chunk number 15: BoolNet_package_vignette.Snw:307-308 ################################################### set.seed(3176) ################################################### ### code chunk number 16: BoolNet_package_vignette.Snw:310-314 ################################################### series <- generateTimeSeries(cellcycle, numSeries=100, numMeasurements=10, noiseLevel=0.1) ################################################### ### code chunk number 17: BoolNet_package_vignette.Snw:319-322 ################################################### binSeries <- binarizeTimeSeries(series, method="kmeans") net <- reconstructNetwork(binSeries$binarizedMeasurements, method="bestfit") net ################################################### ### code chunk number 18: BoolNet_package_vignette.Snw:328-329 ################################################### set.seed(4463) ################################################### ### code chunk number 19: BoolNet_package_vignette.Snw:331-336 ################################################### series <- generateTimeSeries(cellcycle, numSeries=10, numMeasurements=10, perturbations=1, noiseLevel=0.1) ################################################### ### code chunk number 20: < ################################################### series$perturbations ################################################### ### code chunk number 21: BoolNet_package_vignette.Snw:347-351 ################################################### perturbations <- series$perturbations series$perturbations <- NULL binSeries <- binarizeTimeSeries(series, method="kmeans") ################################################### ### code chunk number 22: BoolNet_package_vignette.Snw:354-358 ################################################### net <- reconstructNetwork(binSeries$binarizedMeasurements, method="bestfit", perturbations=perturbations) net ################################################### ### code chunk number 23: BoolNet_package_vignette.Snw:367-368 ################################################### net <- generateRandomNKNetwork(n=10, k=3) ################################################### ### code chunk number 24: BoolNet_package_vignette.Snw:371-372 ################################################### net <- generateRandomNKNetwork(n=10, k=c(1,2,3,1,3,2,3,2,1,1)) ################################################### ### code chunk number 25: BoolNet_package_vignette.Snw:377-378 ################################################### net <- generateRandomNKNetwork(n=20, k=20, topology="scale_free") ################################################### ### code chunk number 26: BoolNet_package_vignette.Snw:382-383 ################################################### net <- generateRandomNKNetwork(n=10, k=3, linkage="lattice") ################################################### ### code chunk number 27: BoolNet_package_vignette.Snw:388-392 ################################################### net <- generateRandomNKNetwork(n=10, k=3, functionGeneration="biased", zeroBias=0.75) ################################################### ### code chunk number 28: BoolNet_package_vignette.Snw:399-407 ################################################### net1 <- generateRandomNKNetwork(n=10, k=3, functionGeneration=generateCanalyzing, zeroBias=0.75) net2 <- generateRandomNKNetwork(n=10, k=3, functionGeneration=generateNestedCanalyzing, zeroBias=0.75) ################################################### ### code chunk number 29: BoolNet_package_vignette.Snw:415-428 ################################################### isMonotone <- function(input, func) { for (i in seq_len(ncol(input))) # check each input gene { groupResults <- split(func, input[,i]) if (any(groupResults[[1]] < groupResults[[2]]) && any(groupResults[[1]] > groupResults[[2]])) # the function is not monotone return(FALSE) } return(TRUE) } ################################################### ### code chunk number 30: BoolNet_package_vignette.Snw:437-441 ################################################### net <- generateRandomNKNetwork(n=10, k=3, validationFunction="isMonotone", failureIterations=1000) ################################################### ### code chunk number 31: BoolNet_package_vignette.Snw:452-454 ################################################### data(cellcycle) knockedOut <- fixGenes(cellcycle, "CycD", 0) ################################################### ### code chunk number 32: BoolNet_package_vignette.Snw:457-458 ################################################### knockedOut <- fixGenes(cellcycle, 1, 0) ################################################### ### code chunk number 33: BoolNet_package_vignette.Snw:461-462 ################################################### overExpressed <- fixGenes(cellcycle, "CycD", 1) ################################################### ### code chunk number 34: BoolNet_package_vignette.Snw:465-466 ################################################### originalNet <- fixGenes(knockedOut, "CycD", -1) ################################################### ### code chunk number 35: BoolNet_package_vignette.Snw:471-472 ################################################### newNet <- fixGenes(cellcycle, c("CycD","CycE"), c(0,1)) ################################################### ### code chunk number 36: BoolNet_package_vignette.Snw:483-485 ################################################### data(cellcycle) stateTransition(cellcycle, rep(1,10)) ################################################### ### code chunk number 37: BoolNet_package_vignette.Snw:489-491 ################################################### path <- getPathToAttractor(cellcycle, rep(0,10)) path ################################################### ### code chunk number 38: BoolNet_package_vignette.Snw:496-500 ################################################### pdf("sequence.pdf") par(mar = c(1, 4, 2, 1)) plotSequence(sequence=path) dev.off() ################################################### ### code chunk number 39: BoolNet_package_vignette.Snw:502-503 (eval = FALSE) ################################################### ## plotSequence(sequence=path) ################################################### ### code chunk number 40: BoolNet_package_vignette.Snw:516-517 (eval = FALSE) ################################################### ## sequenceToLaTeX(sequence=path, file="sequence.tex") ################################################### ### code chunk number 41: BoolNet_package_vignette.Snw:522-524 ################################################### startState <- generateState(cellcycle, specs=c("CycD"=1,"CycA"=1)) stateTransition(cellcycle,startState) ################################################### ### code chunk number 42: BoolNet_package_vignette.Snw:531-532 ################################################### data(igf) ################################################### ### code chunk number 43: BoolNet_package_vignette.Snw:537-539 ################################################### startState <- generateState(igf, specs=c("IGF"=1)) stateTransition(igf, startState) ################################################### ### code chunk number 44: BoolNet_package_vignette.Snw:542-543 ################################################### getPathToAttractor(network=igf,state=startState) ################################################### ### code chunk number 45: BoolNet_package_vignette.Snw:548-551 ################################################### startState <- generateState(igf, specs=list("IGF"=c(0,0,1))) startState ################################################### ### code chunk number 46: BoolNet_package_vignette.Snw:561-565 ################################################### pdf("sequence_igf.pdf") par(mar = c(1, 9, 2, 1)) plotSequence(network=igf, startState=startState) dev.off() ################################################### ### code chunk number 47: BoolNet_package_vignette.Snw:567-568 (eval = FALSE) ################################################### ## plotSequence(network=igf, startState=startState) ################################################### ### code chunk number 48: BoolNet_package_vignette.Snw:574-575 ################################################### set.seed(54321) ################################################### ### code chunk number 49: BoolNet_package_vignette.Snw:577-578 ################################################### stateTransition(cellcycle, rep(1,10), type="asynchronous") ################################################### ### code chunk number 50: BoolNet_package_vignette.Snw:584-585 ################################################### set.seed(4321) ################################################### ### code chunk number 51: BoolNet_package_vignette.Snw:587-589 ################################################### stateTransition(cellcycle, rep(1,10), type="asynchronous", geneProbabilities=c(0.05,0.05,0.2,0.3,0.05,0.05,0.05,0.05,0.1,0.1)) ################################################### ### code chunk number 52: BoolNet_package_vignette.Snw:596-598 ################################################### stateTransition(cellcycle, rep(1,10), type="asynchronous", chosenGene="CycE") ################################################### ### code chunk number 53: BoolNet_package_vignette.Snw:602-603 ################################################### set.seed(432) ################################################### ### code chunk number 54: BoolNet_package_vignette.Snw:605-607 ################################################### data(examplePBN) stateTransition(examplePBN, c(0,1,1), type="probabilistic") ################################################### ### code chunk number 55: BoolNet_package_vignette.Snw:610-612 ################################################### stateTransition(examplePBN, c(0,1,1), type="probabilistic", chosenFunctions=c(2,1,2)) ################################################### ### code chunk number 56: BoolNet_package_vignette.Snw:630-633 (eval = FALSE) ################################################### ## data(cellcycle) ## attr <- getAttractors(cellcycle) ## attr ################################################### ### code chunk number 57: BoolNet_package_vignette.Snw:636-638 ################################################### attr <- getAttractors(cellcycle) attr ################################################### ### code chunk number 58: BoolNet_package_vignette.Snw:644-645 (eval = FALSE) ################################################### ## print(attr, activeOnly=TRUE) ################################################### ### code chunk number 59: BoolNet_package_vignette.Snw:648-649 ################################################### print(attr, activeOnly=TRUE) ################################################### ### code chunk number 60: BoolNet_package_vignette.Snw:658-659 ################################################### getAttractorSequence(attr, 2) ################################################### ### code chunk number 61: BoolNet_package_vignette.Snw:671-672 (eval = FALSE) ################################################### ## plotAttractors(attr, subset=2) ################################################### ### code chunk number 62: BoolNet_package_vignette.Snw:674-678 ################################################### pdf("attractor1.pdf") par(mar=c(1,5,1,1)) plotAttractors(attr, subset=2) dev.off() ################################################### ### code chunk number 63: BoolNet_package_vignette.Snw:681-682 (eval = FALSE) ################################################### ## attractorsToLaTeX(attr, subset=2, file="attractors.tex") ################################################### ### code chunk number 64: BoolNet_package_vignette.Snw:689-691 (eval = FALSE) ################################################### ## tt <- getTransitionTable(attr) ## tt ################################################### ### code chunk number 65: BoolNet_package_vignette.Snw:705-706 (eval = FALSE) ################################################### ## getBasinOfAttraction(attr, 1) ################################################### ### code chunk number 66: BoolNet_package_vignette.Snw:711-712 (eval = FALSE) ################################################### ## getStateSummary(attr, c(1,1,1,1,1,1,1,1,1,1)) ################################################### ### code chunk number 67: BoolNet_package_vignette.Snw:724-729 ################################################### pdf("stategraph1.pdf") set.seed(43210) par(mar=c(1,1,1,1)) plotStateGraph(attr) dev.off() ################################################### ### code chunk number 68: BoolNet_package_vignette.Snw:731-732 (eval = FALSE) ################################################### ## plotStateGraph(attr) ################################################### ### code chunk number 69: BoolNet_package_vignette.Snw:738-743 ################################################### pdf("piecewisestategraph.pdf") set.seed(43210) par(mar=c(1,1,1,1)) plotStateGraph(attr, piecewise=TRUE) dev.off() ################################################### ### code chunk number 70: BoolNet_package_vignette.Snw:745-746 (eval = FALSE) ################################################### ## plotStateGraph(attr, piecewise=TRUE) ################################################### ### code chunk number 71: BoolNet_package_vignette.Snw:770-771 ################################################### attr <- getAttractors(cellcycle, method="random", startStates=100) ################################################### ### code chunk number 72: BoolNet_package_vignette.Snw:775-778 ################################################### attr <- getAttractors(cellcycle, method="chosen", startStates=list(rep(0,10),rep(1,10))) ################################################### ### code chunk number 73: BoolNet_package_vignette.Snw:787-789 ################################################### attr <- getAttractors(cellcycle, method="sat.exhaustive") ################################################### ### code chunk number 74: BoolNet_package_vignette.Snw:794-797 ################################################### attr <- getAttractors(cellcycle, method="sat.restricted", maxAttractorLength=1) ################################################### ### code chunk number 75: BoolNet_package_vignette.Snw:800-801 (eval = FALSE) ################################################### ## attr ################################################### ### code chunk number 76: BoolNet_package_vignette.Snw:804-805 ################################################### attr ################################################### ### code chunk number 77: BoolNet_package_vignette.Snw:813-817 ################################################### attr <- getAttractors(cellcycle, type="asynchronous", method="random", startStates=500) ################################################### ### code chunk number 78: BoolNet_package_vignette.Snw:823-824 (eval = FALSE) ################################################### ## attr ################################################### ### code chunk number 79: BoolNet_package_vignette.Snw:850-855 (eval = FALSE) ################################################### ## attr <- getAttractors(cellcycle, ## type="asynchronous", ## method="random", ## startStates=500, ## avoidSelfLoops=FALSE) ################################################### ### code chunk number 80: BoolNet_package_vignette.Snw:870-874 ################################################### pdf("attractor2.pdf") par(mar=c(1,1,1,1)) plotAttractors(attr, subset=2, mode="graph", drawLabels=FALSE) dev.off() ################################################### ### code chunk number 81: BoolNet_package_vignette.Snw:876-877 (eval = FALSE) ################################################### ## plotAttractors(attr, subset=2, mode="graph", drawLabels=FALSE) ################################################### ### code chunk number 82: BoolNet_package_vignette.Snw:885-887 (eval = FALSE) ################################################### ## sim <- simulateSymbolicModel(igf) ## sim ################################################### ### code chunk number 83: BoolNet_package_vignette.Snw:890-892 ################################################### sim <- simulateSymbolicModel(igf) sim ################################################### ### code chunk number 84: BoolNet_package_vignette.Snw:906-914 ################################################### pdf("attractor3.pdf") par(mar=c(1,5,1,1)) plotAttractors(sim, subset=2) dev.off() pdf("stategraph2.pdf") par(mar=c(1,1,1,1)) plotStateGraph(sim) dev.off() ################################################### ### code chunk number 85: BoolNet_package_vignette.Snw:916-917 (eval = FALSE) ################################################### ## plotAttractors(sim, subset=2) ################################################### ### code chunk number 86: BoolNet_package_vignette.Snw:920-921 (eval = FALSE) ################################################### ## plotStateGraph(sim) ################################################### ### code chunk number 87: BoolNet_package_vignette.Snw:937-938 ################################################### set.seed(43851) ################################################### ### code chunk number 88: BoolNet_package_vignette.Snw:940-941 ################################################### sim <- simulateSymbolicModel(igf, method="random", startStates=2) ################################################### ### code chunk number 89: BoolNet_package_vignette.Snw:944-945 ################################################### sim$sequences ################################################### ### code chunk number 90: BoolNet_package_vignette.Snw:950-951 ################################################### sim <- simulateSymbolicModel(igf, method="sat.exhaustive") ################################################### ### code chunk number 91: BoolNet_package_vignette.Snw:954-955 ################################################### sim <- simulateSymbolicModel(igf, method="sat.restricted", maxAttractorLength=1) ################################################### ### code chunk number 92: BoolNet_package_vignette.Snw:971-974 ################################################### data(examplePBN) sim <- markovSimulation(examplePBN) sim ################################################### ### code chunk number 93: BoolNet_package_vignette.Snw:980-981 (eval = FALSE) ################################################### ## plotPBNTransitions(sim) ################################################### ### code chunk number 94: BoolNet_package_vignette.Snw:983-988 ################################################### pdf("pbntransitions.pdf") set.seed(4961) par(mar=c(1,1,1,1)) plotPBNTransitions(sim) dev.off() ################################################### ### code chunk number 95: BoolNet_package_vignette.Snw:1001-1006 ################################################### data(cellcycle) sim <- markovSimulation(cellcycle, numIterations=1024, returnTable=FALSE) sim ################################################### ### code chunk number 96: BoolNet_package_vignette.Snw:1015-1020 ################################################### sim <- markovSimulation(cellcycle, numIterations=1024, returnTable=FALSE, startStates=list(rep(1,10))) sim ################################################### ### code chunk number 97: BoolNet_package_vignette.Snw:1032-1033 ################################################### set.seed(3361) ################################################### ### code chunk number 98: BoolNet_package_vignette.Snw:1035-1040 ################################################### data(cellcycle) r <- perturbTrajectories(cellcycle, measure="hamming", numSamples=100, flipBits=1) ################################################### ### code chunk number 99: BoolNet_package_vignette.Snw:1044-1045 ################################################### r$value ################################################### ### code chunk number 100: BoolNet_package_vignette.Snw:1049-1054 ################################################### r <- perturbTrajectories(cellcycle, measure="sensitivity", numSamples=100, flipBits=1, gene="CycE") ################################################### ### code chunk number 101: BoolNet_package_vignette.Snw:1056-1057 ################################################### r$value ################################################### ### code chunk number 102: BoolNet_package_vignette.Snw:1062-1067 ################################################### r <- perturbTrajectories(cellcycle, measure="attractor", numSamples=100, flipBits=1) r$value ################################################### ### code chunk number 103: BoolNet_package_vignette.Snw:1074-1077 ################################################### perturbedNet <- perturbNetwork(cellcycle, perturb="functions", method="bitflip") ################################################### ### code chunk number 104: BoolNet_package_vignette.Snw:1082-1085 ################################################### perturbedNet <- perturbNetwork(cellcycle, perturb="functions", method="shuffle") ################################################### ### code chunk number 105: BoolNet_package_vignette.Snw:1091-1095 ################################################### perturbedNet <- perturbNetwork(cellcycle, perturb="transitions", method="bitflip", numStates=10) ################################################### ### code chunk number 106: BoolNet_package_vignette.Snw:1103-1159 (eval = FALSE) ################################################### ## # Perform a robustness test on a network ## # by counting the numbers of perturbed networks ## # containing the attractors of the original net ## ## library(BoolNet) ## ## # load mammalian cell cycle network ## data(cellcycle) ## ## # get attractors in original network ## attrs <- getAttractors(cellcycle, canonical=TRUE) ## ## # create 1000 perturbed copies of the network and search for attractors ## perturbationResults <- sapply(1:1000, function(i) ## { ## # perturb network and identify attractors ## perturbedNet <- perturbNetwork(cellcycle, perturb="functions", method="bitflip") ## perturbedAttrs <- getAttractors(perturbedNet, canonical=TRUE) ## ## # check whether the attractors in the original network exist in the perturbed network ## attractorIndices <- sapply(attrs$attractors,function(attractor1) ## { ## index <- which(sapply(perturbedAttrs$attractors, function(attractor2) ## { ## identical(attractor1, attractor2) ## })) ## if (length(index) == 0) ## NA ## else ## index ## }) ## return(attractorIndices) ## }) ## ## # perturbationResults now contains a matrix ## # with the first 2 columns specifying the indices or the ## # original attractors in the perturbed network ## # (or NA if the attractor was not found) and the next 2 ## # columns counting the numbers of states ## # in the basin of attraction (or NA if the attractor was not found) ## ## # measure the total numbers of occurrences of the original attractors in the perturbed copies ## numOccurrences <- apply(perturbationResults[seq_along(attrs$attractors),,drop=FALSE], 1, ## function(row)sum(!is.na(row))) ## ## # print original attractors ## cat("Attractors in original network:\n") ## print(attrs) ## ## # print information ## cat("Number of occurrences of the original attractors", ## "in 1000 perturbed copies of the network:\n") ## for (i in 1:length(attrs$attractors)) ## { ## cat("Attractor ",i,": ",numOccurrences[i],"\n",sep="") ## } ################################################### ### code chunk number 107: BoolNet_package_vignette.Snw:1193-1198 (eval = FALSE) ################################################### ## data(cellcycle) ## res <- testNetworkProperties(cellcycle, ## numRandomNets=100, ## testFunction="testAttractorRobustness", ## testFunctionParams = list(copies=100, perturb="functions")) ################################################### ### code chunk number 108: BoolNet_package_vignette.Snw:1204-1213 ################################################### pdf("attractor_robustness.pdf") par(mar=c(4,4,2,1)) data(cellcycle) set.seed(3241) res <- testNetworkProperties(cellcycle, numRandomNets=100, testFunction="testAttractorRobustness", testFunctionParams = list(copies=100, perturb="functions")) dev.off() ################################################### ### code chunk number 109: BoolNet_package_vignette.Snw:1234-1239 (eval = FALSE) ################################################### ## testNetworkProperties(cellcycle, ## numRandomNets=100, ## testFunction="testTransitionRobustness", ## testFunctionParams=list(numSamples=100), ## alternative="less") ################################################### ### code chunk number 110: BoolNet_package_vignette.Snw:1242-1252 ################################################### pdf("transition_robustness.pdf") par(mar=c(4,4,2,1)) data(cellcycle) set.seed(22652) testNetworkProperties(cellcycle, numRandomNets=100, testFunction="testTransitionRobustness", testFunctionParams=list(numSamples=100), alternative="less") dev.off() ################################################### ### code chunk number 111: BoolNet_package_vignette.Snw:1257-1260 (eval = FALSE) ################################################### ## testNetworkProperties(cellcycle, ## numRandomNets=100, ## testFunction="testIndegree") ################################################### ### code chunk number 112: BoolNet_package_vignette.Snw:1262-1269 ################################################### pdf("indegree.pdf") par(mar=c(4,4,2,1)) set.seed(6314) testNetworkProperties(cellcycle, numRandomNets=100, testFunction="testIndegree") dev.off() ################################################### ### code chunk number 113: BoolNet_package_vignette.Snw:1286-1290 (eval = FALSE) ################################################### ## testNetworkProperties(cellcycle, ## numRandomNets=100, ## testFunction="testIndegree", ## accumulation="kullback_leibler") ################################################### ### code chunk number 114: BoolNet_package_vignette.Snw:1292-1300 ################################################### pdf("indegree_kl.pdf") par(mar=c(4,4,2,1)) set.seed(234256) testNetworkProperties(cellcycle, numRandomNets=100, testFunction="testIndegree", accumulation="kullback_leibler") dev.off() ################################################### ### code chunk number 115: BoolNet_package_vignette.Snw:1316-1328 ################################################### testBasinSizes <- function(network, accumulate=TRUE, params) { attr <- getAttractors(network) basinSizes <- sapply(attr$attractors, function(a) { a$basinSize }) if (accumulate) return(mean(basinSizes)) else return(basinSizes) } ################################################### ### code chunk number 116: BoolNet_package_vignette.Snw:1334-1338 (eval = FALSE) ################################################### ## testNetworkProperties(cellcycle, ## numRandomNets=100, ## testFunction="testBasinSizes", ## xlab="Average size of basins of attraction") ################################################### ### code chunk number 117: BoolNet_package_vignette.Snw:1340-1348 ################################################### pdf("basinsize.pdf") par(mar=c(4,4,2,1)) set.seed(6724) testNetworkProperties(cellcycle, numRandomNets=100, testFunction="testBasinSizes", xlab="Average size of basins of attraction") dev.off() ################################################### ### code chunk number 118: BoolNet_package_vignette.Snw:1371-1372 (eval = FALSE) ################################################### ## saveNetwork(cellcycle, file="cellcycle.txt") ################################################### ### code chunk number 119: BoolNet_package_vignette.Snw:1377-1379 ################################################### net <- generateRandomNKNetwork(n=10, k=3, readableFunctions=FALSE) saveNetwork(net, file="randomnet.txt", generateDNF=TRUE) ################################################### ### code chunk number 120: BoolNet_package_vignette.Snw:1394-1397 ################################################### toSBML(cellcycle, file="cellcycle.sbml") sbml_cellcycle <- loadSBML("cellcycle.sbml") sbml_cellcycle ################################################### ### code chunk number 121: BoolNet_package_vignette.Snw:1416-1417 (eval = FALSE) ################################################### ## system.file("doc/example.btp", package="BoolNet") ################################################### ### code chunk number 122: BoolNet_package_vignette.Snw:1449-1450 ################################################### net <- loadBioTapestry(system.file("doc/example.btp", package="BoolNet")) ################################################### ### code chunk number 123: BoolNet_package_vignette.Snw:1452-1453 (eval = FALSE) ################################################### ## net <- loadBioTapestry("example.btp") ################################################### ### code chunk number 124: BoolNet_package_vignette.Snw:1458-1459 (eval = FALSE) ################################################### ## net ################################################### ### code chunk number 125: BoolNet_package_vignette.Snw:1482-1483 (eval = FALSE) ################################################### ## plotNetworkWiring(net) ################################################### ### code chunk number 126: BoolNet_package_vignette.Snw:1485-1490 ################################################### pdf("wiring_biotap.pdf") par(mar=c(1,1,1,1)) set.seed(559652) plotNetworkWiring(net) dev.off() ################################################### ### code chunk number 127: BoolNet_package_vignette.Snw:1511-1514 (eval = FALSE) ################################################### ## data(cellcycle) ## attr <- getAttractors(cellcycle) ## toPajek(attr, file="cellcycle.net") ################################################### ### code chunk number 128: BoolNet_package_vignette.Snw:1518-1519 (eval = FALSE) ################################################### ## toPajek(attr, file="cellcycle.net", includeLabels=TRUE) BoolNet/inst/doc/BoolNet_package_vignette.Snw0000644000176000001440000027427712473311652021030 0ustar ripleyusers\documentclass[a4paper]{article} \SweaveOpts{keep.source=TRUE} %\VignetteIndexEntry{Detailed introduction to all major features of BoolNet} \usepackage{a4wide} \usepackage{graphicx} \usepackage{amsmath} \usepackage{hyperref} \usepackage{listings} \lstset{breaklines=true, breakautoindent=false, breakindent=0pt, columns=fullflexible,keepspaces=true, basicstyle=\small\ttfamily} \setlength{\parindent}{0em} \setlength{\parskip}{0.2em} \title{BoolNet package vignette} \author{Christoph M\"ussel, Martin Hopfensitz, Hans A. Kestler} \widowpenalty=10000 \clubpenalty=10000 \hyphenation{me-thods pro-per-ties re-pre-sen-ta-tion} \begin{document} \SweaveOpts{concordance=TRUE} \maketitle \tableofcontents \clearpage \section{Introduction} \texttt{BoolNet} is an R package that provides tools for assembling, analyzing and visualizing synchronous and asynchronous Boolean networks as well as probabilistic Boolean networks. This document gives an introduction to the usage of the software and includes examples for use cases. \texttt{BoolNet} supports four types of networks: \begin{description} \item[Synchronous Boolean networks]{ consist of a set of Boolean variables \[ X = \left\{X_1, \ldots, X_n \right\} \] and a set of transition functions \[ F=\left\{ f_{1},\ldots,f_{n}\right\}, \] one for each variable. These transition functions map an input of the Boolean variables in $X$ to a Boolean value ($0$ or $1$). We call a Boolean vector $\mathbf{x}(t) = \left(x_1(t), \ldots, x_n(t) \right)$ the {\em state} of the network at time $t$. Then, the next state of the network $\mathbf{x}(t)$ is calculated by applying {\em all} transition functions $f_i(\mathbf{x}(t-1))$. In a biological context, genes can be modeled as Boolean variables ({\em active/expressed} or {\em inactive/not expressed}), and the transition functions model the dependencies among these genes. In the synchronous model, the assumption is that all genes are updated at the same time. This simplification facilitates the analysis of the networks.} \item[Asynchronous Boolean networks]{ have the same structure as synchronous Boolean networks. Yet, at each point of time $t$, only {\em one} of the transition functions $f_i \in F$ is chosen at random, and the corresponding Boolean variable is updated. This corresponds to the assumption that in a genetic network, gene expression levels are likely to change at different points of time. In the most common model, the gene to be updated is chosen uniformly among all genes. Moreover, \texttt{BoolNet} supports specifying non-uniform update probabilities for the genes.} \item[Probabilistic Boolean networks (PBN)]{ allow for specifying more than one transition function per variable/gene. Each of these functions has a probability to be chosen, where the probabilities of all functions for one variable sum up to 1. Formally \[ F=\left\{\left\{\left(f_{11}, p_{11}\right), \ldots, \left(f_{1k_1}, p_{1k_1}\right)\right\}, \ldots, \left\{\left(f_{n1}, p_{n1}\right), \ldots, \left(f_{nk_n}, p_{nk_n}\right)\right\}\right\} \] where $k_i$ is the number of alternative transition functions for variable $i$, and $p_{ij}$ is the probability that function $j$ is chosen for variable $i$. A state transition is performed by selecting one function for each gene based on the probabilities and applying the chosen functions synchronously.} \item[Temporal Boolean networks]{ are Boolean networks that incorporate temporal predicates and discrete time delays. Here, the next state $x(t)$ may not only depend on $x(t-1)$, but can depend on any predecessor state $x(t - \Delta), \Delta \in \{1, 2, \ldots\}$. Furthermore, $x(t)$ may also directly depend on the time step $t$ itself. } \end{description} In \texttt{BoolNet}, there are different structure classes representing these network types: \begin{description} \item[\emph{BooleanNetwork} objects]{ contain synchronous and asynchronous Boolean networks. Here, the transition functions are internally represented as truth tables.} \item[\emph{ProbabilisticBooleanNetwork} objects]{ encode Probabilistic Boolean networks. They use a truth table representation as well.} \item[\emph{SymbolicBooleanNetwork} objects]{ represent synchronous and temporal Boolean networks. They encode Boolean functions in a symbolic form, i.e. as expression trees.} \end{description} As we have seen, the networks are represented in two different forms: The truth table representation, which basically maps inputs to the corresponding output values, is usually the most efficient representation for synchronous, asynchronous and probabilistic networks and uses a very fast simulator. However, this representation grows exponentially with the number of inputs and is therefore inappropriate for networks with a high number of inputs. This is particularly the case for temporal networks, where each unique time delay for a gene encodes an input. Hence, temporal networks are represented by directly encoding the corresponding Boolean expressions and use a different simulator. As synchronous Boolean networks are a special case of temporal networks (with all time delays being 1), these networks can also be represented as \emph{SymbolicBooleanNetwork} objects. The package provides several methods of constructing networks: Networks can be loaded from files in which human experts describe the dependencies between the genes. Furthermore, they can be reconstructed from time series of gene expression measurements. It is also possible to generate random networks. This can be helpful for the identification of distinct properties of biological networks by comparison to random structures. The different methods of assembling networks are described in Section~\ref{sec:assemblingnetworks}. In Section~\ref{sec:networkanalysis}, tools for the analysis and visualization of network properties are introduced. For synchronous, asynchronous and temporal Boolean networks, the most important tool is the identification of attractors. Attractors are cycles of states and are assumed to be associated with the stable states of cell function. Another possibility of identifying relevant states is the included Markov chain simulation. This method is particularly suited for probabilistic networks and calculates the probability that a state is reached after a certain number of iterations. To test the robustness of structural properties of the networks to noise and mismeasurements, the software also includes extensive support for perturbing networks. In this way, it is possible to test these properties in noisy copies of a biological network. In Section~\ref{sec:importexport}, the interaction of \texttt{BoolNet} with related software is described. In particular, the import from and export to SBML is discussed. Also, the necessary steps to import networks import networks from BioTapestry and to export networks to Pajek are outlined. For the examples in the following sections, we assume that the \texttt{BoolNet} package has been properly installed into the R environment. This can be done by typing <>= install.packages("BoolNet") @ into the R console or by the corresponding menu entries in an R GUI. For some of the plots, the \texttt{igraph} package is required and must be installed in your R environment as well. This is analogous to installing \texttt{BoolNet}. For the BioTapestry and SBML import, the \texttt{XML} package must be installed. After installation, the \texttt{BoolNet} package can be loaded via <<>>= library(BoolNet) @ \section{Assembling networks}\label{sec:assemblingnetworks} \subsection{Assembling a network from expert knowledge} A major advantage of Boolean networks is the fact that natural-language statements can easily be transferred into this representation. This allows researchers for building Boolean networks entirely from expert knowledge, for example by collecting statements on gene dependencies from literature and expressing them as Boolean rules. \texttt{BoolNet} is able to read in networks consisting of such rule sets in a standardized text file format. In such a file, each line consists of a target gene and an update rule, usually separated by a comma. Optionally, it is also possible to add a probability for the rule if the file describes a probabilistic network. The first line of such a file is a header \begin{samepage} \begin{verbatim} targets, factors \end{verbatim} or \begin{verbatim} targets, factors, probabilities \end{verbatim} \end{samepage} To illustrate the process of transforming natural-language statements into Boolean rules, we take a look at the mammalian cell cycle network introduced by Faur\'e et al. \cite{faure06}. In Table 1 of this paper, the authors list natural-language statements of gene dependencies and the corresponding Boolean expressions. The following rules are taken from this table. For gene CycD, Faur\'e et al. state: \begin{quote} \textit{CycD is an input, considered as constant.} \end{quote} Transforming this into a Boolean rule is rather simple: CycD does not change its value, which means that its value after a transition only depends on its previous value. Thus, the transition rule is \begin{verbatim} CycD, CycD \end{verbatim} Gene Rb has a more complex description: \begin{quote} \textit{Rb is expressed in the absence of the cyclins, which inhibit it by phosphorylation [...]; it can be expressed in the presence of CycE or CycA if their inhibitory activity is blocked by p27.} \end{quote} As a general rule, inhibition can be represented by a Boolean negation. In the \texttt{BoolNet} file format, a negation is expressed by the \texttt{!} character. The referenced cyclins comprise the genes CycA, CycB, CycD, and CycE. If {\em all} these genes are absent, Rb is expressed -- i.e. if CycA is not expressed {\em and} CycB is not expressed {\em and} CycD is not expressed {\em and} CycE is not expressed. A logical AND is embodied by the \texttt{\&} character. Consequently, the first part of the rule is \begin{verbatim} ! CycA & ! CycB & ! CycD & ! CycE \end{verbatim} In combination with the above statement, the fact that Rb can be expressed in the presence of CycE and CycA if p27 is active means that CycB and CycD must not be active. Thus, the second part of the rule is \begin{verbatim} p27 & ! CycB & ! CycD \end{verbatim} This statement is an exception (or alternative) to the first statement; this can be expressed as a logical OR, for which the \texttt{|} character is used. The complete rule for gene Rb is thus \begin{verbatim} Rb, (! CycA & ! CycB & ! CycD & ! CycE) | (p27 & ! CycB & ! CycD) \end{verbatim} After processing all genes in the table in this way, we get the following network description: \begin{samepage} \begin{footnotesize} \begin{verbatim} targets, factors CycD, CycD Rb, (! CycA & ! CycB & ! CycD & ! CycE) | (p27 & ! CycB & ! CycD) E2F, (! Rb & ! CycA & ! CycB) | (p27 & ! Rb & ! CycB) CycE, (E2F & ! Rb) CycA, (E2F & ! Rb & ! Cdc20 & ! (Cdh1 & UbcH10)) | (CycA & ! Rb & ! Cdc20 & ! (Cdh1 & UbcH10)) p27, (! CycD & ! CycE & ! CycA & ! CycB) | (p27 & ! (CycE & CycA) & ! CycB &! CycD) Cdc20, CycB Cdh1,(! CycA & ! CycB) | (Cdc20) | (p27 & ! CycB) UbcH10, ! Cdh1 | (Cdh1 & UbcH10 & (Cdc20 | CycA | CycB)) CycB, ! Cdc20 & ! Cdh1 \end{verbatim} \end{footnotesize} \end{samepage} Now save this description to a file ``cellcycle.txt'' in your R working directory. The network can be loaded via <>= cellcycle <- loadNetwork("cellcycle.txt") @ The result is an object of class \emph{BooleanNetwork} containing a truth table representation of the network. The same network is also included in \texttt{BoolNet} as an example and can be accessed via <<>>= data(cellcycle) @ \texttt{BoolNet} also provides several convenience operators that can be used to express complex Boolean functions in a compact way, e.g. \begin{itemize} \item \texttt{maj(a, b, ...)} is 1 if the majority of its operands are 1. Similarly, \texttt{sumgt(a, b, ..., N)} is 1 if more than $N$ operands are 1, \texttt{sumlt(a, b, ..., N)} is 1 if less than $N$ operands are~1, and \texttt{sumis(a, b, ..., N)} is 1 if exactly $N$ operands are 1. \item \texttt{all(a, b, ...)} is 1 if all its operands are 1 (i.e. a logical AND), and \texttt{any(a, b, ...)} is~1 if at least one of its operands is 1 (i.e. a logical OR). \end{itemize} The cell cycle network is a classical Boolean network, where each transition function only depends on the previous state of the network. E.g., \verb+CycB, ! Cdc20 & ! Cdh1+ can be written formally as $CycB(t) = \neg Cdc20(t-1) \wedge \neg Cdh1(t-1)$. As already discussed before, \texttt{BoolNet} also incorporates several temporal extensions. For example, a transition function can also depend on the states of genes at earlier time points: \begin{verbatim} a, b[-3] & b[-2] & b \end{verbatim} is 1 if b has been active in the previous three time steps. The operators described above can also incorporate time ranges. The previous statement can be written in a more compact way using the \texttt{all} operator: \begin{verbatim} a, all[d=-3..-1](b[d]) \end{verbatim} This defines a time delay variable \texttt{d} that can be used for time specifications inside the operator. It can also be used in arithmetic operations. E.g., \begin{verbatim} a, all[d=-3..-1](b[d] & c[d-1]) \end{verbatim} specifies that a is active if b has been active in the previous three time steps and c has been active at time $t-4$, $t-3$ and $t-2$. Apart from relative time specifications, the \texttt{BoolNet} network language also incorporates predicates that depend on the absolute time, i.e. the number of time steps that have elapsed since the initial state. \begin{samepage} For example, \begin{verbatim} a, timeis(3) \end{verbatim} specifies that \texttt{a} is active at time step 3 and inactive at all other time steps. Similarly, the predicates \texttt{timelt} and \texttt{timegt} evaluate to 1 before and after the specified time point respectively. \end{samepage} As the above examples do not cover all possibilities of the network description language, a full language specification is provided in Section~\ref{sec:appendix}. For temporal networks, \texttt{BoolNet} uses a special symbolic simulator that represents the functions as expression trees, whereas the standard simulator is based on a truth table representation. These simulators are discussed in Section~\ref{sec:networkanalysis}. As synchronous Boolean networks are a special case of temporal networks, they can also be simulated with the symbolic simulator. When a network is loaded from a file using \texttt{loadNetwork()}, the user can specify the parameter \texttt{symbolic=TRUE} to load it in form of a \emph{SymbolicBooleanNetwork} object instead of a \emph{BooleanNetwork} object. The same parameter is also available for the import functions discussed in Section~\ref{sec:importexport}. Temporal networks can only be loaded with \texttt{symbolic=TRUE}, as \texttt{BoolNet} cannot represent them as truth tables. \begin{sloppypar} As many network generation and modification routines (such as random network generation and network reconstruction that are discussed in the following sections) internally use the truth table representation, there are conversion routines \texttt{truthTableToSymbolic()} and \texttt{symbolicToTruthTable()} that convert synchronous Boolean networks of class \emph{BooleanNetwork} in a truth table representation to networks of class \emph{SymbolicBooleanNetwork} in a symbolic representation and vice versa. For more details, please refer to the manual. \end{sloppypar} \subsection{Reconstructing a network from time series} An entirely different approach of assembling a network is to infer rules from series of expression measurements of the involved genes over time. For example, microarray experiments can be conducted at different points of time to cover the expression levels of different cell states. To reconstruct networks from such data, \texttt{BoolNet} includes two reconstruction algorithms for synchronous Boolean networks, Best-Fit Extension~\cite{laehdesmaeki03} and REVEAL \cite{liang98}. REVEAL requires the inferred functions to match the input time series perfectly, hence it is not always able to reconstruct networks in the presence of noisy and inconsistent measurements. Best-Fit Extension retrieves a set of functions with minimum error on the input and is thus suited for noisy data. In the following, we introduce a tool chain for the reconstruction of a Probabilistic Boolean Network from time series using Best-Fit extension. Microarray measurements are usually represented as matrices of real-valued numbers which, for example, quantify the expression levels of genes. \texttt{BoolNet} includes a real-valued time series of gene measurements from a project to analyze the yeast cell cycle \cite{spellman98} which can be loaded using <<>>= data(yeastTimeSeries) @ This data contains four preselected genes and a series of 14 measurements for each of these genes. \begin{sloppypar} In a first step, the real-valued dataset has to be converted to binary data as required by the reconstruction algorithm. \texttt{BoolNet} offers several binarization algorithms in the function \texttt{binarizeTimeSeries()}. We here employ the default method which is based on $k$-means clustering (with $k=2$ for active and inactive): \end{sloppypar} <<>>= binSeries <- binarizeTimeSeries(yeastTimeSeries) @ The returned structure in \texttt{binSeries} has an element \texttt{\$binarizedMeasurements} containing the binary time series, and, depending on the chosen binarization method, some other elements describing parameters of the binarization. To reconstruct the network from this data, we call the Best-Fit Extension algorithm: <<>>= net <- reconstructNetwork(binSeries$binarizedMeasurements, method="bestfit", maxK=4) @ Here, \texttt{maxK} is the maximum number of input genes for a gene examined by the algorithm. The higher this number, the higher is the runtime and memory consumption of the reconstruction. \begin{samepage} We can now take a look at the network using <<>>= net @ \end{samepage} \begin{sloppypar} The dependencies among the genes in the network can be visualized using the \texttt{plotNetworkWiring()} function. In this graph, each gene corresponds to a vertex, and the inputs of transition functions correspond to edges. \end{sloppypar} <>= pdf("wiring1.pdf") par(mar = c(1, 1, 1, 1)) set.seed(333) plotNetworkWiring(net) dev.off() @ <>= plotNetworkWiring(net) @ plots a graph similar to that at the top of Figure~\ref{fig:wiring}. To use this function, you must install the \texttt{igraph} package. \begin{figure}[p] \centering \includegraphics[width=0.5\linewidth]{wiring1} \includegraphics[width=0.5\linewidth]{wiring2} \caption{The wiring graph of the reconstructed network without prior knowledge (top) and with the inclusion of prior knowledge (bottom). Each node of the graph represents one gene, and each arrow represents a gene dependency.} \label{fig:wiring} \end{figure} A network that involved the same genes was examined by Kim et al. \cite{kim07}. When comparing the wiring graph of our reconstructed network with the reference network presented in Figure~2 of this paper, one observes a very high similarity between the two networks. However, the reconstructed network comprises too many links for the gene Sic1: The reference network does not contain a self-regulation of Sic1 or regulation of Sic1 by Fkh2. If it is known in advance that these regulations are not plausible, such prior knowledge can be supplied to the reconstruction algorithm: <<>>= net <- reconstructNetwork(binSeries$binarizedMeasurements, method="bestfit", maxK=4, excludedDependencies = list("Sic1" = c("Sic1", "Fkh2"))) @ <>= pdf("wiring2.pdf") par(mar = c(1, 1, 1, 1)) set.seed(442) plotNetworkWiring(net) dev.off() @ The wiring of the reconstruction with prior knowledge is shown at the bottom of Figure~\ref{fig:wiring}. We can see that the two false links are now eliminated. Similar to \texttt{excludedDependencies}, there is also a parameter \texttt{requiredDependencies} that specifies dependencies that must be included in the network. When \texttt{reconstructNetwork()} discovers multiple functions for a gene with the minimum error on the input data, it includes all of these functions as alternative functions with equal probability. Consequently, the function returns a \texttt{ProbabilisticBooleanNetwork} structure. If you would like to obtain a \texttt{BooleanNetwork} object with only one function per gene from a probabilistic network, you can extract such a network by telling the software which of the functions you would like to use. This can be done by specifying the indices of the functions to extract: <<>>= net <- reconstructNetwork(binSeries$binarizedMeasurements, method="bestfit", maxK=4) singleNet <- chooseNetwork(net, c(1,2,3,2)) @ The result is a Boolean network that is created by extracting the first function of gene Fkh2, the second function of genes Swi5 and Clb1, and the third function of gene Sic1 from the above probabilistic network: <<>>= singleNet @ \begin{sloppypar} \texttt{BoolNet} also supports the generation of artificial time series from existing networks: The \texttt{generateTimeSeries()} function generates a set of time series from a network using random start states and optionally adds Gaussian noise. \end{sloppypar} <>= set.seed(3176) @ <<>>= series <- generateTimeSeries(cellcycle, numSeries=100, numMeasurements=10, noiseLevel=0.1) @ generates a list of 100 time series by calculating 10 consecutive transitions from 100 randomly chosen network states in the mammalian cell cycle network. The series are subject to Gaussian noise with a standard deviation of 0.1, such that the result is a list of real-valued matrices. We can now binarize these simulated measurements and try to reconstruct the original network: <<>>= binSeries <- binarizeTimeSeries(series, method="kmeans") net <- reconstructNetwork(binSeries$binarizedMeasurements, method="bestfit") net @ Obviously, the number of generated time series is still to small to reconstruct the network unambiguously. However, the result comes close to the original network. We see that the functions of the network are not fully specified: At some positions, there are asterisks (\texttt{*}) denoting a \emph{don't care} value. This means that functions with a 0 and a 1 at this position match the time series equally well. That is, a partially defined function with $m$ asterisks corresponds to $2^m$ fully defined Boolean functions. It is also possible to generate these fully defined functions instead of the partially defined function by setting the parameter \texttt{returnPBN} to true (which was the behaviour prior to \texttt{BoolNet} version 2.0). For many \emph{don't care} values, this may consume a high amount of memory and computation time. \texttt{generateTimeSeries()} can also generate time series with artificial knock-outs and overexpressions: <>= set.seed(4463) @ <<>>= series <- generateTimeSeries(cellcycle, numSeries=10, numMeasurements=10, perturbations=1, noiseLevel=0.1) @ specifies that each generated time series is generated from a network where one randomly selected gene is artificially knocked down (constantly 0) or overexpressed (constantly 1). These perturbations are returned in an additional element \texttt{perturbations}. \begin{samepage} <<<>>= series$perturbations @ \end{samepage} Here, each column corresponds to the perturbations applied in one series. A value of 1 denotes an overexpression, a value of 0 denotes a knock-out, and an N/A value means that no perturbation was applied to this gene. The \texttt{reconstructNetwork()} function also supports the reconstruction from such perturbation experiments if it is known which genes were perturbed. First, we store the series and the perturbation matrix in separate variables and binarize the data as before: <<>>= perturbations <- series$perturbations series$perturbations <- NULL binSeries <- binarizeTimeSeries(series, method="kmeans") @ Now, we can reconstruct the network by specifying the \texttt{perturbations} parameter: <<>>= net <- reconstructNetwork(binSeries$binarizedMeasurements, method="bestfit", perturbations=perturbations) net @ As we generated only 10 series in this case, the reconstructed network is much more incomplete than in the previous reconstruction. In biological settings, perturbation experiments are probably one of the most frequent ways of exploring the behaviour of a regulatory network, as it is much easier to obtain various different responses by applying perturbations than by just measuring the wild type behaviour. \subsection{Creating random networks} To study structural properties of Boolean networks and to determine the specific properties of biological networks in comparison to arbitrary networks, it is often desirable to generate artificial networks. \texttt{BoolNet} comprises a facility for the generation of random $N$-$K$ networks \cite{kauffman69, kauffman93}. In the standard $N$-$K$ networks, $N$ is the total number of genes, and $K$ is the number of input genes for each gene transition function. Such a network can be generated using <<>>= net <- generateRandomNKNetwork(n=10, k=3) @ This creates a network with 10 genes, each of which has a transition function that depends on 3 genes and whose output is generated uniformly at random. Similarly, one can also specify different numbers of input genes for each gene: <<>>= net <- generateRandomNKNetwork(n=10, k=c(1,2,3,1,3,2,3,2,1,1)) @ \texttt{BoolNet} does not only support this standard case, but allows for different methods of choosing the numbers of input genes (parameter \texttt{topology}), the input genes themselves (parameter \texttt{linkage}), and the transition functions (parameter \texttt{functionGeneration}). In the following, some examples are presented. The command <<>>= net <- generateRandomNKNetwork(n=20, k=20, topology="scale_free") @ determines the numbers of input genes by drawing values from the scale-free Zeta distribution \cite{aldana03}. According to this distribution, most transition functions will have a small number of input genes, but a few transition functions may depend on a high number of genes. The shape of the Zeta distribution can be customized using an additional parameter \texttt{gamma}, which potentially increases the number of input genes when chosen small and vice versa. <<>>= net <- generateRandomNKNetwork(n=10, k=3, linkage="lattice") @ creates a network in which the transition functions of the genes depend on a choice of genes with adjacent indices \cite{aldana03_2}. This leads to networks with highly interdependent genes. It is also possible to influence the truth tables of the functions in several ways. The parameter \texttt{zeroBias} changes the ratio of 1 and 0 returned by the functions: <<>>= net <- generateRandomNKNetwork(n=10, k=3, functionGeneration="biased", zeroBias=0.75) @ generates a network in which the outcome of a transition function is 0 for around 75\% of the inputs. A more intricate way of influencing the function generation is the specification of generation functions. Generation functions explicitly generate functions according to a specific function class. \emph{Canalyzing functions} are assumed to occur frequently in biological systems~\cite{kauffman04}. A canalyzing function has the property that one input can determine the output value on its own, i.e. if this input is either active or inactive, the output of the function is always the same. \emph{Nested canalyzing functions} are a recursive definition of canalyzing functions, where the part of the function that does not depend on the canalyzing input is a canalyzing function for another input. Such functions can be generated using the built-in generation functions \texttt{generateCanalyzing()} and \texttt{generateNestedCanalyzing()}: <<>>= net1 <- generateRandomNKNetwork(n=10, k=3, functionGeneration=generateCanalyzing, zeroBias=0.75) net2 <- generateRandomNKNetwork(n=10, k=3, functionGeneration=generateNestedCanalyzing, zeroBias=0.75) @ It is also possible to define own generation functions: A generation function receives a vector \texttt{input} of input gene indices as a parameter and returns a truth table result column with \verb+2^length(input)+ values representing the function. If no explicit generation scheme is known for the function class of interest, validation functions can be used instead of generation functions. Validation functions verify whether randomly generated functions belong to a specific function class and reject invalid functions. Naturally, this is much less efficient than generating appropriate functions directly. An example is the generation of monotone functions, which are also thought to be biologically plausible. These function account for the assumption that a transcription factor usually either activates or inhibits a specific target gene, but does not change the type of regulation depending on other factors~\cite{maucher11}. We can specify a simple validation function that checks whether a Boolean function is monotone: \begin{samepage} <<>>= isMonotone <- function(input, func) { for (i in seq_len(ncol(input))) # check each input gene { groupResults <- split(func, input[,i]) if (any(groupResults[[1]] < groupResults[[2]]) && any(groupResults[[1]] > groupResults[[2]])) # the function is not monotone return(FALSE) } return(TRUE) } @ \end{samepage} \begin{sloppypar} Here, \texttt{input} is a matrix containing the input part of the transition table, and \texttt{func} is the output of the Boolean function. In a monotone function, the values of the target may only change in one direction when switching one input. Hence, a function for which switching the value of an input gene sometimes switches the target from active to inactive, but also sometimes switches it from inactive to active is not monotone. This is validated by comparing the two groups of transition table entries for which the current input is active and inactive respectively. If a validation function is supplied to \texttt{generateRandomNKNetwork()}, the generator generates Boolean functions until either the validation function returns \texttt{TRUE} or the maximum number of iterations (specified by the parameter \texttt{failureIterations}) is reached, in which case it fails. \end{sloppypar} <<>>= net <- generateRandomNKNetwork(n=10, k=3, validationFunction="isMonotone", failureIterations=1000) @ creates a network with 10 genes in which all functions have 3 inputs, of which at least one is canalyzing. By default, \texttt{generateRandomNKNetwork()} creates functions that cannot be simplified, i.e. that do not contain any genes that are irrelevant for the outcome of the function. If desired, this behaviour can be changed by setting \texttt{noIrrelevantGenes} to \texttt{FALSE}. The presented parameters can be combined, and there are further options and parameters, so that a broad variety of networks with different structural properties can be generated. For a full reference of the possible parameters, please refer to the manual. \subsection{Knock-out and overexpression of genes} \texttt{BoolNet} allows for temporarily knocking out and overexpressing genes in a network without touching the transition functions. This means that genes can be set to a fixed value, and in any calculation on the network, this fixed value is taken instead of the value of the corresponding transition function. Knocked-out and overexpressed genes speed up the analysis of the network, as they can be ignored in many calculations. For example, to knock out CycD in the mammalian cell cycle network, we call <<>>= data(cellcycle) knockedOut <- fixGenes(cellcycle, "CycD", 0) @ or alternatively use the gene index <<>>= knockedOut <- fixGenes(cellcycle, 1, 0) @ This sets the gene constantly to 0. To over-express the gene (i.e. to fix it to 1), the corresponding call is <<>>= overExpressed <- fixGenes(cellcycle, "CycD", 1) @ The command <<>>= originalNet <- fixGenes(knockedOut, "CycD", -1) @ reactivates the gene (for both knock and overexpression) and resets the network to its original state. The function also accepts multiple genes in a single call, such as <<>>= newNet <- fixGenes(cellcycle, c("CycD","CycE"), c(0,1)) @ which knocks out CycD and overexpresses CycE. \section{Network analysis}\label{sec:networkanalysis} \subsection{Simulation of state transitions} To simulate a state transition and identify successor states of a given state, \texttt{BoolNet} includes the function \texttt{stateTransition()}. The function supports transitions for all four types of networks. The following code performs a synchronous state transition for the state in which all genes are set to 1 on the mammalian cell cycle network: <<>>= data(cellcycle) stateTransition(cellcycle, rep(1,10)) @ To calculate all state transitions in a synchronous network until an attractor is reached, you can call <<>>= path <- getPathToAttractor(cellcycle, rep(0,10)) path @ The returned matrix consists of the subsequent states until an attractor is reached. Depending on the optional parameter \texttt{includeAttractorStates}, the sequence comprises all attractor states, only the first attractor state or none of the attractor states. A sequence can be visualized by plotting a table of state changes: <>= pdf("sequence.pdf") par(mar = c(1, 4, 2, 1)) plotSequence(sequence=path) dev.off() @ <>= plotSequence(sequence=path) @ \begin{figure}[t] \centering \includegraphics[width=0.6\linewidth]{sequence} \caption{Visualization of a sequence of states in the mammalian cell cycle network. The columns of the table represent consecutive states of the time series. The last state is the steady-state attractor of the network.} \label{fig:sequence} \end{figure} The result is depicted in Figure~\ref{fig:sequence}. \texttt{plotSequence()} also includes a shortcut that calculates the sequence directly if a network and a start state are supplied. It also provides an alternative way of visualizing the sequence as a state transition by setting \texttt{mode="graph"}. The function <>= sequenceToLaTeX(sequence=path, file="sequence.tex") @ creates a \LaTeX\ table similar to \texttt{plotSequence()} function document. In many cases, start states are defined by a set of active genes. Instead of supplying a full state vector, one can also supply only these active genes using the \texttt{generateState()} function. <<>>= startState <- generateState(cellcycle, specs=c("CycD"=1,"CycA"=1)) stateTransition(cellcycle,startState) @ \begin{sloppypar} calculates a state transition starting from a state where only the genes \emph{CycD} and \emph{CycA} are active, while all other genes are inactive (which is controlled by the \texttt{default} parameter of \texttt{generateState()}). \end{sloppypar} For temporal Boolean networks (objects of class \emph{SymbolicBooleanNetworks}), the above functions can be utilized mostly in the same way. We demonstrate this using a small temporal network example of the IGF (Insulin-like growth receptor) pathway that is included in the package and can be loaded via <<>>= data(igf) @ The model illustrates the activation and feedback inhibition of the PI3K-Akt-mTOR signalling cascade through IGF and IRS. A state transition from the initial state in which the trigger of the pathway -- IGF -- is active, can be performed using <<>>= startState <- generateState(igf, specs=c("IGF"=1)) stateTransition(igf, startState) @ The IGF network incorporates time delays of up to 3. Therefore, the last three states have to be known to calculate a successor state. If only a single state is supplied -- as above -- the function assumes that the state was the same before. This can be seen when calculating the sequence to the attractor using <<>>= getPathToAttractor(network=igf,state=startState) @ Here, the states at $t=-2, \ldots 0$ are the same as the generated start state. If it is required to specify multiple predecessor states here, a matrix of states can be supplied instead of a vector. E.g., <<>>= startState <- generateState(igf, specs=list("IGF"=c(0,0,1))) startState @ specifies that the first two states ($t=-2, t=-1$) should have all genes inactive, while IGF is activated only at $t=0$. This time, we plot the sequence instead of printing it: \begin{figure}[bt] \centering \includegraphics[width=0.6\linewidth]{sequence_igf} \caption{Visualization of a sequence of states in the IGF network. The columns of the table represent consecutive states of the time series. After activation of IGF, the attractor consisting of 14 states is entered immediately. This attractor represents the activation and inactivation of the PI3K-Akt-mTOR signalling cascade through IGF and IRS.} \label{fig:sequence_igf} \end{figure} <>= pdf("sequence_igf.pdf") par(mar = c(1, 9, 2, 1)) plotSequence(network=igf, startState=startState) dev.off() @ <>= plotSequence(network=igf, startState=startState) @ The result is depicted in Figure~\ref{fig:sequence_igf}. \texttt{stateTransition()} can also perform asynchronous updates. A random asynchronous transition is performed using <>= set.seed(54321) @ <<>>= stateTransition(cellcycle, rep(1,10), type="asynchronous") @ In this case, the fifth gene, CycA, was chosen at uniformly at random and updated. \begin{samepage} We can also specify non-uniform probabilities for the genes, for example <>= set.seed(4321) @ <<>>= stateTransition(cellcycle, rep(1,10), type="asynchronous", geneProbabilities=c(0.05,0.05,0.2,0.3,0.05,0.05,0.05,0.05,0.1,0.1)) @ This obviously increases probabilities for the genes 3 and 4 (E2F and CycE) to be chosen. In this case, CycE was chosen for the update. \end{samepage} \enlargethispage{0.5cm} Sometimes you do not want a random update at all, but would like to specify which gene should be chosen for the update. This is possible via <<>>= stateTransition(cellcycle, rep(1,10), type="asynchronous", chosenGene="CycE") @ In probabilistic Boolean networks, a state transition is performed by choosing one of the alternative functions for each gene and applying this set of functions to the current state. The following performs a state transition with a randomly chosen set of functions on the artificial probabilistic Boolean network taken from \cite{shmulevich02} with 3 genes, starting from state (0,1,1): <>= set.seed(432) @ <<>>= data(examplePBN) stateTransition(examplePBN, c(0,1,1), type="probabilistic") @ You may get a different result, as the functions are chosen randomly according to the probabilities stored in the network. If you would like to execute a specific set of transition functions, you can supply this in an additional parameter: <<>>= stateTransition(examplePBN, c(0,1,1), type="probabilistic", chosenFunctions=c(2,1,2)) @ This call uses the second function for gene x1 and x3 and the first function for gene x2. \subsection{Identification of attractors} Attractors are stable cycles of states in a Boolean network. As they comprise the states in which the network resides most of the time, attractors in models of gene-regulatory networks are expected to be linked to phenotypes \cite{kauffman93,li04}. Transitions from all states in a Boolean network eventually lead to an attractor, as the number of states in a network is finite. All states that lead to a certain attractor form its {\em basin of attraction}. \texttt{BoolNet} is able to identify attractors in synchronous and asynchronous Boolean networks. There are three types of attractors in these networks: \begin{description} \item[Simple attractors]{occur in synchronous and temporal Boolean networks and consist of a set of states whose synchronous transitions form a cycle.} \item[Complex or loose attractors]{are the counterpart of simple attractors in asynchronous networks. As there is usually more than one possible transition for each state in an asynchronous network, a complex attractor is formed by two or more overlapping loops. Precisely, a complex attractor is a set of states in which all asynchronous state transitions lead to another state in the set, and a state in the set can be reached from all other states in the set.} \item[Steady-state attractors]{are attractors that consist of only one state. All transitions from this state result in the state itself. These attractors are the same both for synchronous and asynchronous update of a network. Steady states are a special case of both simple attractors and complex attractors.} \end{description} The \texttt{getAttractors()} function incorporates several methods for the identification of attractors in synchronous and asynchronous networks. We present these methods using the included mammalian cell cycle network as an example. This network has one steady-state attractor, one simple synchronous attractor consisting of 7 states, and one complex asynchronous attractor with 112 states (see \cite{faure06}). We first demonstrate the use of exhaustive synchronous state space search. This means that the software starts from all possible states of the network and performs synchronous state transitions until a simple or steady-state attractor is reached. \pagebreak[4] <>= data(cellcycle) attr <- getAttractors(cellcycle) attr @ \begin{lstlisting}[linewidth=.9\linewidth] <>= attr <- getAttractors(cellcycle) attr @ \end{lstlisting} Typing \texttt{attr} calls a special print method that presents the attractor in a human-readable way. Here, a state in an attractor is represented by a binary vector, where each entry of the vector codes for one gene. An alternative is to print only the names of the active genes (i.e., the genes that are set to 1) instead of the full vector by calling the \texttt{print()} method explicitly with a changed parameter: <>= print(attr, activeOnly=TRUE) @ \begin{lstlisting}[linewidth=.9\linewidth] <>= print(attr, activeOnly=TRUE) @ \end{lstlisting} We can see that the search identified both synchronous attractors. \begin{sloppypar} The \texttt{AttractorInfo} structure stores the attractors in an encoded form. The function \texttt{getAttractorSequence()} can be used to obtain the sequence of states that constitute a specific synchronous attractor as a table: \end{sloppypar} <<>>= getAttractorSequence(attr, 2) @ retrieves the states that make up the second (i.e., the 7-state attractor) as a data frame with the genes in the columns and the successive states in the rows. \begin{figure}[t] \centering \includegraphics[width=0.65\linewidth]{attractor1} \caption{Visualization of the state changes in an attractor. The columns of the table represent consecutive states of the attractor. On top, the percentage of states leading to the attractor is supplied.} \label{fig:attractor1} \end{figure} Synchronous attractors can also be visualized by plotting a table of changes of gene values in the states of the attractor: <>= plotAttractors(attr, subset=2) @ <>= pdf("attractor1.pdf") par(mar=c(1,5,1,1)) plotAttractors(attr, subset=2) dev.off() @ plots the state changes of the simple attractor with 7 states, as depicted in Figure~\ref{fig:attractor1}. Similarly, <>= attractorsToLaTeX(attr, subset=2, file="attractors.tex") @ exports the same state table to a \LaTeX\ document. The advantage of the exhaustive search method is that apart from the attractors themselves, the complete transition table is calculated and stored in the return value. This table comprises information that is used by a number of analysis methods described below. You can extract the transition table in a data frame and print it out using <>= tt <- getTransitionTable(attr) tt @ \begin{verbatim} State Next state Attr. basin # trans. to attr. 0000000000 => 0110010111 1 4 [...] 1111111111 => 1000001110 2 1 Genes are encoded in the following order: CycD Rb E2F CycE CycA p27 Cdc20 Cdh1 UbcH10 CycB \end{verbatim} In the printed table, the first column denotes the initial state, the second column contains the state after the transition, the first column contains the number of the attractor that is finally reached from this state, and the fourth column lists the number of state transitions required to attain this attractor. A table of the same structure is returned by <>= getBasinOfAttraction(attr, 1) @ which extracts all states from the transition table that belong to the basin of attraction of attractor one (i.e., whose attractor number in column 3 is 1). If you are interested in information on a single state (here: the state with all genes set to 1), you can type <>= getStateSummary(attr, c(1,1,1,1,1,1,1,1,1,1)) @ \begin{verbatim} State Next state Attr. basin # trans. to attr. 1111111111 => 1000001110 2 1 Genes are encoded in the following order: CycD Rb E2F CycE CycA p27 Cdc20 Cdh1 UbcH10 CycB \end{verbatim} The visualization function \texttt{getStateGraph()} makes use of the transition table as well: It plots a transition graph in which the basins of attraction are drawn in different colors, and the attractors are highlighted. The result of <>= pdf("stategraph1.pdf") set.seed(43210) par(mar=c(1,1,1,1)) plotStateGraph(attr) dev.off() @ <>= plotStateGraph(attr) @ is depicted at the top of Figure~\ref{fig:stategraph}. The blue basin belongs to attractor 1, and the green basin belongs to attractor 2. The above call does not ensure that the basins of attraction are clearly separated in the plot. If this is desired, one can choose to use a piecewise layout, which means that the layouting function is applied separately to each basin of attraction, and the basins are drawn side by side. The result of <>= pdf("piecewisestategraph.pdf") set.seed(43210) par(mar=c(1,1,1,1)) plotStateGraph(attr, piecewise=TRUE) dev.off() @ <>= plotStateGraph(attr, piecewise=TRUE) @ is depicted at the bottom of Figure~\ref{fig:stategraph}. \begin{figure}[p] \centering \includegraphics[width=0.7\linewidth]{stategraph1} \includegraphics[width=0.7\linewidth]{piecewisestategraph} \caption{The state graph of the mammalian cell cycle network using the regular layout (top) and using a piecewise layout (bottom). Each node represents a state of the network, and each arrow is a state transition. The colors mark different basins of attraction. Attractors are highlighted using bold lines.} \label{fig:stategraph} \end{figure} Exhaustive search consumes a high amount of time and memory with increasing size of the network, which makes it intractable for large networks (\texttt{BoolNet} currently supports networks with up to 29 genes for exhaustive state space search). Therefore, \texttt{BoolNet} also allows for other search techniques that can handle larger networks. Depending on the requirements, the following options are available: \begin{description} \item[Heuristic state space search] basically uses the same technique as exhaustive attractor search, but only uses a subset of states as initial states instead of the full state space. It then identifies the attractors to which state transitions from these states lead. The start states can either be supplied, or they can be calculated randomly. \item[Exhaustive SAT-based search] exhaustively identifies all possible attractors of a network based on a formulation of attractor search as a satisfiability (SAT) problem and then applies the PicoSAT solver \cite{biere08} to the problem. The algorithm is an adaption of that of Dubrova and Teslenko \cite{dubrova11}. Unlike exhaustive state space search, this method only returns the attractors, but not the state transition table/graph. Depending on the network structure, it can be applied to networks comprising several hundreds of genes. \item[Restricted SAT-based search] uses another formulation as a satisfiability problem and only identifies attractors of a predefined maximum cycle length. It is exhaustive with regard to attractors of at most this size, but will never return any attractors that comprise more than the predefined number of states. Like the exhaustive SAT-based search, this method does not return a transition table. \end{description} The following shows the application of the above methods exemplarily. A heuristic state space search from randomly chosen start states in the mammalian cell cycle network can be started via <<>>= attr <- getAttractors(cellcycle, method="random", startStates=100) @ This chooses 100 random start states for the heuristic search and usually identifies both attractors. <<>>= attr <- getAttractors(cellcycle, method="chosen", startStates=list(rep(0,10),rep(1,10))) @ starts from the states \texttt{(0,0,0,0,0,0,0,0,0,0)} and \texttt{(1,1,1,1,1,1,1,1,1,1)} and again identifies both synchronous attractors. \begin{sloppypar} For the above calls, only the subset of the transition table traversed by the heuristic search is returned. This means that there is no guarantee that, e.g. \texttt{getBasinOfAttraction()} returns the complete basin of attraction of an attractor in heuristic mode. \end{sloppypar} An exhaustive SAT-based search can be started using <<>>= attr <- getAttractors(cellcycle, method="sat.exhaustive") @ This will again return all attractors, but no transition table. If you are only interested in a subset of attractors that have a predefined length, the restricted SAT-based search can be applied. For example, <<>>= attr <- getAttractors(cellcycle, method="sat.restricted", maxAttractorLength=1) @ restricts the attractor search to steady states. Correspondingly, only the first attractor of the network is returned: <>= attr @ \begin{lstlisting}[linewidth=.9\linewidth] <>= attr @ \end{lstlisting} \texttt{BoolNet} can also identify attractors in asynchronous Boolean network. For this purpose, another special heuristic algorithm is included. This algorithm starts from a small subset of states and makes a number of random transitions to reach an attractor with a high probability. After that, a validation step is performed to analyze whether a complex attractor has been identified. The command <>= attr <- getAttractors(cellcycle, type="asynchronous", method="random", startStates=500) @ conducts an asynchronous search with 500 random start states on the mammalian cell cycle network. In this case, the algorithm has identified both the steady-state attractor and the complex attractor: \enlargethispage{0.5cm} <>= attr @ \begin{verbatim} Attractor 1 is a simple attractor consisting of 1 state(s): |--<---------| V | 0100010100 | V | |-->---------| Genes are encoded in the following order: CycD Rb E2F CycE CycA p27 Cdc20 Cdh1 UbcH10 CycB Attractor 2 is a complex/loose attractor consisting of 112 state(s) and 338 transition(s): 1011101111 => 1011101110 [...] 1000000000 => 1010000000 Genes are encoded in the following order: CycD Rb E2F CycE CycA p27 Cdc20 Cdh1 UbcH10 CycB \end{verbatim} For the complex attractor, the involved transitions are printed out. By default, the algorithm tries to avoid self-loops, i.e. transitions that lead to the same state again. This means that self-loop transitions are only allowed if there is no other transition that leads to a different state. If you would like to allow the algorithm to enter self-loops even if transitions to different states are possible, you can call <>= attr <- getAttractors(cellcycle, type="asynchronous", method="random", startStates=500, avoidSelfLoops=FALSE) @ In the resulting complex attractor with 112 states, there are 450 transitions instead of 338 transitions, which is due to the additional self-loops. The asynchronous heuristic search does not return a transition table, such that the above analysis methods cannot be applied here. \begin{figure}[tb] \centering \includegraphics[width=0.55\linewidth]{attractor2} \caption{Graph representation of the complex attractor in the mammalian cell cycle network. Each node represents a state of the complex attractor, and each arrow represents a state transition.} \label{fig:attractor2} \end{figure} As there are multiple possible transitions for each state, complex attractors cannot be visualized as in Figure~\ref{fig:attractor1}. For this reason, \texttt{plotAttractors()} supports a graph mode that visualizes the transitions among the states in the attractor: <>= pdf("attractor2.pdf") par(mar=c(1,1,1,1)) plotAttractors(attr, subset=2, mode="graph", drawLabels=FALSE) dev.off() @ <>= plotAttractors(attr, subset=2, mode="graph", drawLabels=FALSE) @ plots the 112-state attractor as depicted in Figure~\ref{fig:attractor2}. We omit the state labels (i.e. the gene values) due to the high number of states. This plot again requires the \texttt{igraph} package. \begin{sloppypar} Although \texttt{getAttractors()} can also be applied to temporal networks and other networks that are in a symbolic representation (i.e. \emph{SymbolicBooleanNetwork} objects), this function is only a shortcut to the simulation function \texttt{simulateSymbolicModel()} in this case. It is advised to use \texttt{simulateSymbolicModel()} directly , as it provides more options. For the temporal model of the IGF pathway included in \texttt{BoolNet}, an exhaustive simulation can be performed as follows: \end{sloppypar} <>= sim <- simulateSymbolicModel(igf) sim @ \begin{lstlisting}[linewidth=.9\linewidth] <>= sim <- simulateSymbolicModel(igf) sim @ \end{lstlisting} By default, the result object of class \emph{SymbolicSimulation} comprises several components: \begin{itemize} \item A list of sequences \texttt{sequences} from each start state to the corresponding attractor. If this component is not desired, the parameter \texttt{returnSequences} can be set to false. \item A graph structure \texttt{graph} that comprises all traversed state transitions. If this component is not desired, the parameter \texttt{returnGraph} can be set to false. \item The identified attractors \texttt{attractors}. If this component is not desired, the parameter \texttt{returnAttractors} can be set to false. \end{itemize} In this case, the network has two attractors: A steady state describes the inactive state of the pathway. The circular attractor describes the activation and inactivation of the PI3K-Akt-mTOR signalling cascade initiated by IGF. All visualization and analysis function described above can also be applied to the simulation results obtained by \texttt{simulateSymbolicModel}. For example, the cascade attractor can be visualized via <>= pdf("attractor3.pdf") par(mar=c(1,5,1,1)) plotAttractors(sim, subset=2) dev.off() pdf("stategraph2.pdf") par(mar=c(1,1,1,1)) plotStateGraph(sim) dev.off() @ <>= plotAttractors(sim, subset=2) @ Similarly, <>= plotStateGraph(sim) @ plots the state transition graph of the network. Unlike in classical synchronous networks, a state can have multiple successor states (outgoing edges) in temporal networks, as a state transition may also depend on the history of states before the current state. The two plots are shown in Figure~\ref{fig:temporal_plots}. \begin{figure}[p] \centering \includegraphics[width=0.6\linewidth]{attractor3} \includegraphics[width=0.6\linewidth]{stategraph2} \caption{Top: Visualization of an attractor that describes the activation and inactivation of the PI3K-Akt-mTOR signalling cascade through IGF and IRS. The columns of the table represent consecutive states of the attractor. On top, the percentage of states leading to the attractor is supplied.\newline Bottom: The state transition graph of the IGF pathway network. Each node represents a state of the network, and each arrow is a state transition. The colors mark different basins of attraction. } \label{fig:temporal_plots} \end{figure} For temporal networks, it is often infeasible to perform an exhaustive state-space simulation, as the search space is not only exponential in the number of genes, but also in the time delays. There are two options to deal with this: First, the search can be restricted to randomly generated or prespecified start states similarly to \texttt{getAttractors()}. If time delays of more than 1 are included in the network, not only single start states are generated, but the required history of states is generated as well. For example, <>= set.seed(43851) @ <<>>= sim <- simulateSymbolicModel(igf, method="random", startStates=2) @ generates two start state matrices, each comprising 3 states (the maximum delay of the IGF network), and uses them as the basis for a simulation. This can be seen when examining the sequences to the attractors: <<>>= sim$sequences @ Both sequences comprise start states $t=-2$, $t=-1$ and $t=0$. The second option is to use a SAT-based attractor search similar to that in \texttt{getAttractors()}. Here, only the attractors are identified, but no state sequences and no state transition graph are returned. <<>>= sim <- simulateSymbolicModel(igf, method="sat.exhaustive") @ identifies all attractors in the network in an exhaustive manner. Alternatively, one can only search for attractors of a specific maximum length: <<>>= sim <- simulateSymbolicModel(igf, method="sat.restricted", maxAttractorLength=1) @ will only return the steady-state attractor representing pathway inactivity, but not the 14-state attractor. Please note that this length-restricted search cannot be applied to temporal networks comprising the time-dependent predicates \texttt{timeis},\texttt{timelt} or \texttt{timegt}. \begin{sloppypar} Classical synchronous Boolean networks can also be simulated using the symbolic simulator \texttt{simulateSymbolicModel()} if they are in a symbolic form. However, in most cases, \texttt{getAttractors()} will be faster and will consume less memory for synchronous networks without temporal elements. Only if the number of inputs to genes is very high and exhaustive simulation is not required, it may be advisable to use the symbolic simulator. \end{sloppypar} \subsection{Markov chain simulations} Another way of identifying relevant states in Boolean networks are Markov chain simulations. Instead of identifying cycles explicitly, these simulations calculate the probability that a certain state is reached after a predefined number of iterations. Of course, states in an attractor have a high probability of being reached if the number of iterations is chosen large enough. Markov chain simulations for probabilistic Boolean networks were introduced by Shmulevich et al. \cite{shmulevich02}. As a special case of probabilistic Boolean networks, these simulations are also suited for synchronous Boolean networks. The following performs a Markov experiment with the predefined number of 1000 iterations on the example PBN described in \cite{shmulevich02}: \enlargethispage{-0.5cm} <<>>= data(examplePBN) sim <- markovSimulation(examplePBN) sim @ Only states with a non-zero probability are listed in the two tables. The first table shows the states that are reached after 1000 iterations. The second table is a transition table annotated with transition probabilities. This table can be suppressed by the parameter \texttt{returnTable=FALSE}. The results correspond exactly to those in \cite{shmulevich02}. If the transition table is included in the simulation results, we can plot a graph of the network: <>= plotPBNTransitions(sim) @ <>= pdf("pbntransitions.pdf") set.seed(4961) par(mar=c(1,1,1,1)) plotPBNTransitions(sim) dev.off() @ This graph is displayed in Figure~\ref{fig:pbntransitions}. The vertices are the states of the graph. The edges represent transitions and are annotated with the corresponding transition probabilities. For this plot, the \texttt{igraph} package must be installed. \begin{figure}[h] \centering \includegraphics[width=0.65\linewidth]{pbntransitions} \caption{State transition graph of the example probabilistic Boolean network included in \texttt{BoolNet}. Each node represents a state of the network, and each arrow is a possible state transition, annotated by the transition probability.} \label{fig:pbntransitions} \end{figure} We can also use Markov chain simulations to identify the attractor states in the mammalian cell cycle network: \begin{samepage} <<>>= data(cellcycle) sim <- markovSimulation(cellcycle, numIterations=1024, returnTable=FALSE) sim @ \end{samepage} We set the maximum number of iterations to 1024, which is the number of states in the network. In a deterministic network, this guarantees that all states are found. The fourth state in the returned table is the steady-state attractor identified previously. It has a probability of 0.5, as the basin of attraction is exactly half of the states. The other 7 states belong to the simple synchronous attractor. It is also possible to restrict the simulation to a certain set of input states instead of using all possible input states. In the following example, we only consider the state with all genes set to 1, and identify the state belonging to the steady-state attractor again: \begin{samepage} <<>>= sim <- markovSimulation(cellcycle, numIterations=1024, returnTable=FALSE, startStates=list(rep(1,10))) sim @ \end{samepage} \subsection{Robustness assessment} A biological network is assumed to be robust to small amounts of noise. The plausibility of network models is therefore often assessed by testing its robustness to noise and mismeasurements. Typically, artificial noise is applied, and its influence on the behaviour of a network is measured. There are two major ways of applying random noise: Either the current state of a network in a simulation can be perturbed, or the network structure itself can be perturbed. \texttt{BoolNet} includes functions for both types of robustness assessment. The function \texttt{perturbTrajectories} measures the influence of noise that is applied to the current network state. It generates a set of initial states and creates perturbed copies of these states by randomly flipping bits. It then measures the influence of the flips on the further dynamic behaviour of the network. For example <>= set.seed(3361) @ <<>>= data(cellcycle) r <- perturbTrajectories(cellcycle, measure="hamming", numSamples=100, flipBits=1) @ randomly generates 100 states and 100 copies with one bitflip and performs a single state transition for each state. It then measures the normalized Hamming distance (the fraction of different bits) between each state and the corresponding perturbed copy. A robust network is assumed to yield a low Hamming distance. The average distance can be viewed by typing <<>>= r$value @ A related measure is the average sensitivity. This measure assesses only a single transition function and counts the number of successor states that differ between the original states and the perturbed copies for the corresponding gene. E.g., <<>>= r <- perturbTrajectories(cellcycle, measure="sensitivity", numSamples=100, flipBits=1, gene="CycE") @ <<>>= r$value @ measures the average sensitivity of the transition function for gene CycE. The long-term behaviour can be evaluated by comparing the attractors that are reached from the initial states and their perturbed copies. <<>>= r <- perturbTrajectories(cellcycle, measure="attractor", numSamples=100, flipBits=1) r$value @ measures the fraction of pairs of states and perturbed copies that yield the same attractors. It can be assumed that small changes in the state should not influence the long-term behaviour of the network, and hence the attractors should mostly be the same. The second class of perturbations adds random noise to the network itself. This is implemented in the \texttt{perturbNetwork()} function. Unlike \texttt{perturbTrajectories()}, this function does not perform any simulations, but returns a perturbed copy of the network that can be analyzed further. \texttt{BoolNet} includes a set of different perturbation options that can be combined. For example, <<>>= perturbedNet <- perturbNetwork(cellcycle, perturb="functions", method="bitflip") @ chooses a function of the network at random and flips a single bit in this function. By setting the parameter \texttt{maxNumBits}, you can also flip more than one bit at a time. Instead of flipping bits, <<>>= perturbedNet <- perturbNetwork(cellcycle, perturb="functions", method="shuffle") @ randomly permutes the output values of the chosen transition functions. This preserves the numbers of 0s and 1s, but may change the Boolean function completely. These kinds of perturbations are supported for synchronous and asynchronous networks as well as for probabilistic networks. For synchronous networks, a further perturbation mode is available: <<>>= perturbedNet <- perturbNetwork(cellcycle, perturb="transitions", method="bitflip", numStates=10) @ Here, \texttt{BoolNet} calculates the complete transition table of the network and then flips a single bit in 10 states of the transition table. From this modified table, a network is reconstructed. Changes of this type only affect a few states (which might not be the case when perturbing the functions directly as above), but possibly several of the transition functions. As in the previous examples, it is also possible to modify the number of bits to be flipped or to choose \texttt{method="shuffle"}. \begin{samepage} A detailed listing of a perturbation experiment is shown below. In this experiment, 1000 perturbed copies of the cell cycle network are created, and the occurrences of the original synchronous attractors are counted in the perturbed copies. This is similar to the simulation in \texttt{perturbTrajectories()} with \texttt{measure="attractor"}. However, instead of comparing the outcomes of different initial states in the same network, it compares all attractors of different perturbed networks to all attractors of the original network by exhaustive search. \begin{footnotesize}\label{alg:perturbation} <>= # Perform a robustness test on a network # by counting the numbers of perturbed networks # containing the attractors of the original net library(BoolNet) # load mammalian cell cycle network data(cellcycle) # get attractors in original network attrs <- getAttractors(cellcycle, canonical=TRUE) # create 1000 perturbed copies of the network and search for attractors perturbationResults <- sapply(1:1000, function(i) { # perturb network and identify attractors perturbedNet <- perturbNetwork(cellcycle, perturb="functions", method="bitflip") perturbedAttrs <- getAttractors(perturbedNet, canonical=TRUE) # check whether the attractors in the original network exist in the perturbed network attractorIndices <- sapply(attrs$attractors,function(attractor1) { index <- which(sapply(perturbedAttrs$attractors, function(attractor2) { identical(attractor1, attractor2) })) if (length(index) == 0) NA else index }) return(attractorIndices) }) # perturbationResults now contains a matrix # with the first 2 columns specifying the indices or the # original attractors in the perturbed network # (or NA if the attractor was not found) and the next 2 # columns counting the numbers of states # in the basin of attraction (or NA if the attractor was not found) # measure the total numbers of occurrences of the original attractors in the perturbed copies numOccurrences <- apply(perturbationResults[seq_along(attrs$attractors),,drop=FALSE], 1, function(row)sum(!is.na(row))) # print original attractors cat("Attractors in original network:\n") print(attrs) # print information cat("Number of occurrences of the original attractors", "in 1000 perturbed copies of the network:\n") for (i in 1:length(attrs$attractors)) { cat("Attractor ",i,": ",numOccurrences[i],"\n",sep="") } @ \end{footnotesize} \end{samepage} \pagebreak[4] \begin{samepage} The results of such an experiment could look like this: \begin{verbatim} Attractors in original network: Attractor 1 is a simple attractor consisting of 1 state(s) and has a basin of 512 state(s): [...] Attractor 2 is a simple attractor consisting of 7 state(s) and has a basin of 512 state(s): [...] Number of occurrences of the original attractors in 1000 perturbed copies of the network: Attractor 1: 622 Attractor 2: 589 \end{verbatim} \end{samepage} We see that the steady-state attractor is slightly more robust to perturbations than the simple attractor with 7 states, as it can be identified in a higher number of perturbed copies. \subsection{Identifying specific properties of biological networks} The described robustness measures could also be used to identify specific properties of real-world networks in comparison to arbitrary (random) networks. For example, one could assume that attractors in biological networks are more robust to perturbations than attractors in random networks with a similar structure, as they should be capable of compensating for small dysfunctions of their components. Similarly to the above code, one could execute a number of random perturbations on the biological network and measure the percentage of original attractors found in the perturbed copies. Afterwards, one could repeat this process on a number of randomly generated networks -- i.e., generate perturbed copies from each of the random networks, and measure the percentage of attractors in the copies. If the percentage of the biological network is higher than most of the percentages of the random network, this suggests that the biological network exhibits a higher robustness. This is a kind of computer-intensive test. \texttt{BoolNet} comprises a generic facility for such computer-intensive tests. This facility already includes several tests (mainly for synchronous Boolean networks) and can be extended by custom test functions. The outlined example of attractor robustness is one of the integrated functions: <>= data(cellcycle) res <- testNetworkProperties(cellcycle, numRandomNets=100, testFunction="testAttractorRobustness", testFunctionParams = list(copies=100, perturb="functions")) @ creates a set of 100 random networks (each with the same number of input genes for the functions as the cell cycle network) and creates 100 perturbed copies for each of these networks and for the cell cycle network by applying \texttt{perturbNetwork()} with \texttt{perturb="functions"}. For each network, it then calculates the percentage of attractors that can still be found in the perturbed copies. The function plots a histogram of this robustness measures of the random networks (see Figure~\ref{fig:robustness}, top panel). The corresponding value of the original cell cycle network is plotted as a red line, and the 95\% quantile is plotted as a blue line. <>= pdf("attractor_robustness.pdf") par(mar=c(4,4,2,1)) data(cellcycle) set.seed(3241) res <- testNetworkProperties(cellcycle, numRandomNets=100, testFunction="testAttractorRobustness", testFunctionParams = list(copies=100, perturb="functions")) dev.off() @ \begin{figure}[p] \centering \includegraphics[width=0.6\linewidth]{attractor_robustness} \includegraphics[width=0.6\linewidth]{transition_robustness} \caption{Top: Attractor robustness of randomly generated networks (histogram) in comparison to the mammalian cell cycle network (red line).\newline Bottom: Normalized Hamming distance of randomly generated networks (histogram) in comparison to the mammalian cell cycle network (red line). } \label{fig:robustness} \end{figure} We can see that the average percentage of found attractors is significantly higher in the biological network with a $p$-value of 0.01. \begin{sloppypar} It is also possible to perturb the states instead of the networks themselves by setting \texttt{perturb} to \texttt{"trajectories"}. In this case, the function applies \texttt{perturbTrajectories()} with \texttt{measure="attractor"} to the biological network and the randomly generated networks. It then tests whether the fraction of state pairs that yield the same attractor is higher in the biological network than in the randomly generated networks. The second built-in test function also tests the robustness of the network behaviour by perturbing the network states: \texttt{testTransitionRobustness()} applies \texttt{perturbTrajectories()} with \texttt{measure="hamming"} to each network. It then checks whether random bit flips yield a higher Hamming distance of the successor states in randomly generated networks than in the biological model, i.e. whether noise in the states influences the randomly generated networks stronger than the biological model. In contrast to the previous measures for which a greater value was assumed in the biological model, the Hamming distance is assumed to be smaller. Hence, we must specify the test alternative as \texttt{alternative="less"}. \end{sloppypar} <>= testNetworkProperties(cellcycle, numRandomNets=100, testFunction="testTransitionRobustness", testFunctionParams=list(numSamples=100), alternative="less") @ <>= pdf("transition_robustness.pdf") par(mar=c(4,4,2,1)) data(cellcycle) set.seed(22652) testNetworkProperties(cellcycle, numRandomNets=100, testFunction="testTransitionRobustness", testFunctionParams=list(numSamples=100), alternative="less") dev.off() @ The results are shown in the bottom panel of Figure~\ref{fig:robustness}. Again, the result is highly significant (indeed, the Hamming distances are \emph{always} lower in the biological network), which means that the biological network is considerably more robust to noise in the states than the randomly generated models. Another network property can also be tested using a built-in function: When looking at the state graph of a biological network (which can be generated using \texttt{plotStateGraph()}), it can often be observed that many state transitions lead to the same successor states, which means that the dynamics of the network quickly concentrate on a few states after a number of state transitions. We call the number of states whose synchronous state transitions lead to a state $s$ the {\em in-degree} of state $s$. We expect the biological network to have a few states with a high in-degree and many states with a low in-degree. A characteristic to summarize the in-degrees is the Gini index, which is a measure of inhomogeneity. If all states have an in-degree of 1, the Gini index is 0; if all state transitions lead to only one state, the Gini index is 1. <>= testNetworkProperties(cellcycle, numRandomNets=100, testFunction="testIndegree") @ <>= pdf("indegree.pdf") par(mar=c(4,4,2,1)) set.seed(6314) testNetworkProperties(cellcycle, numRandomNets=100, testFunction="testIndegree") dev.off() @ plots an histogram of Gini indices in 100 random networks and draws the Gini index of the cell cycle network as a red line, as depicted in the top panel of Figure~\ref{fig:indegree}. \begin{figure}[p] \centering \includegraphics[width=0.6\linewidth]{indegree} \includegraphics[width=0.6\linewidth]{indegree_kl} \caption{Top: Gini indices of state in-degrees of randomly generated networks (histogram) in comparison to the mammalian cell cycle network (red line)\newline Bottom: Kullback-Leibler distances of in-degrees of the mammalian cell cycle network and 100 random networks.} \label{fig:indegree} \end{figure} The histogram shows that the Gini index of the in-degrees is always higher in the biological network. This is probably due to the special structure of functions in biological networks. Instead of accumulating the in-degrees using the Gini index, it is also possible to compare the distributions of the in-degrees across the networks. For this purpose, the Kullback-Leibler distances of the in-degrees of the supplied network and each of the random networks are calculated and plotted in a histogram. The Kullback-Leibler distance (also called relative entropy) is an asymetric measure of similarity of two distributions \cite{cover91}. If the distributions are equal, the Kullback-Leibler distance is 0, otherwise it is greater than 0. <>= testNetworkProperties(cellcycle, numRandomNets=100, testFunction="testIndegree", accumulation="kullback_leibler") @ <>= pdf("indegree_kl.pdf") par(mar=c(4,4,2,1)) set.seed(234256) testNetworkProperties(cellcycle, numRandomNets=100, testFunction="testIndegree", accumulation="kullback_leibler") dev.off() @ results in the plot displayed in the bottom panel of Figure~\ref{fig:indegree}. It is possible to switch between the histogram of an accumulated characteristic (e.g. the Gini index) and the histogram of the Kullback-Leibler distances for all tests. \begin{sloppypar} You can also easily implement your own tests. To do this, the only thing you have to do is implement a custom testing function that replaces \texttt{testIndegree()} or \texttt{testAttractorRobustness()}. Testing functions have the following signature: \end{sloppypar} \begin{verbatim} function(network, accumulate=TRUE, params) \end{verbatim} The first parameter is the network that should be tested. The parameter \texttt{accumulate} specifies whether a single characteristic value (e.g., the Gini index of the in-degrees) should be calculated, or whether a distribution of values (e.g., a vector of all in-degrees) should be returned. The third parameter is a list of further arguments needed by your function. If, for example, we would like to compare the sizes of the basins of attractions of synchronous attractors in biological and random networks, we would write a function like this: \begin{samepage} <<>>= testBasinSizes <- function(network, accumulate=TRUE, params) { attr <- getAttractors(network) basinSizes <- sapply(attr$attractors, function(a) { a$basinSize }) if (accumulate) return(mean(basinSizes)) else return(basinSizes) } @ \end{samepage} This function calculates the mean basin size as a characteristic value if accumulation is required, or returns the sizes of all basins of attraction in a vector otherwise. It does not need any further parameters in \texttt{params}. Now, we can start a test using <>= testNetworkProperties(cellcycle, numRandomNets=100, testFunction="testBasinSizes", xlab="Average size of basins of attraction") @ <>= pdf("basinsize.pdf") par(mar=c(4,4,2,1)) set.seed(6724) testNetworkProperties(cellcycle, numRandomNets=100, testFunction="testBasinSizes", xlab="Average size of basins of attraction") dev.off() @ to produce the plot shown in Figure~\ref{fig:basinsize}. Apparently, the average basin sizes do not differ as much as the built-in test characteristics between the random networks and the cell cycle network. \begin{figure}[h] \centering \includegraphics[width=0.6\linewidth]{basinsize} \caption{A custom test statistic measuring the basin sizes on randomly generated networks (histogram) and the mammalian cell cycle network (red line).} \label{fig:basinsize} \end{figure} \begin{sloppypar} By writing custom test functions, you can extend the test facility to perform a wide variety computer-intensive test. Of course, it is also possible to plot the Kullback-Leibler distances with such new methods by using \verb+accumulation="kullback_leibler"+. \texttt{testNetworkProperties()} accepts most of the parameters of \texttt{generateRandomNKNetwork()}. If necessary, you can generate more specialized kinds of random networks which resemble the original network in certain aspects, for example by specifying a generation function or by setting a proportion of 0 and 1 in the function outputs similar to the original network using \verb+functionGeneration="biased"+. \end{sloppypar} \clearpage \section{Import and export}\label{sec:importexport} \subsection{Saving networks in the \texttt{BoolNet} file format} Corresponding to the \texttt{loadNetwork()} command, a network can be saved using \texttt{saveNetwork()}. This stores the network in the network file format described in Section~\ref{sec:appendix} and can be applied to all types of networks supported by \texttt{BoolNet}. For example, the cell cycle network can be saved using <>= saveNetwork(cellcycle, file="cellcycle.txt") @ \begin{sloppypar} The function stores the expressions that describe the transition functions. In some cases, there may not always be a valid symbolic description of the networks (e.g. for networks returned by \texttt{generateRandomNKNetwork()} when the \texttt{readableFunctions} parameter was not set). In this case, \texttt{saveNetwork()} can generate symbolic representations of the transition functions in Disjunctive Normal Form (DNF): \end{sloppypar} <<>>= net <- generateRandomNKNetwork(n=10, k=3, readableFunctions=FALSE) saveNetwork(net, file="randomnet.txt", generateDNF=TRUE) @ The \texttt{generateDNF} parameter can also be used to detail which type of DNF formulae should be exported: \texttt{generateDNF="canonical"} exports canonical DNF formulae. \texttt{generateDNF="short"} minimizes the canonical functions by joining terms. By simply setting \texttt{generateDNF=TRUE}, formulae with up to 12 inputs are minimized, and formulae with more than 12 inputs are exported in a canonical form, as a minization is very time-consuming in this case. \subsection{Import from and export to SBML} \begin{sloppypar} \texttt{BoolNet} provides an interface to the widely used Systems Biology Markup Language (SBML) via the import function \texttt{loadSBML()} and the export function \texttt{saveSBML()}. As the core SBML does not fully support Boolean models, import and export of SBML models is based on the \texttt{sbml-qual} package which extends SBML by several qualitative modeling approaches, such as general logical models and Petri nets. For a full description of \texttt{sbml-qual}, refer to \href{http://sbml.org/Documents/Specifications/SBML_Level_3/Packages/Qualitative_Models_(qual)}{http://sbml.org/Documents/Specifications/SBML\_Level\_3/Packages/Qualitative\_Models\_(qual)}. \end{sloppypar} \texttt{BoolNet} only supports a subset of \texttt{sbml-qual}. It can read and write logical models with two possible values for each state, which are equivalent to Boolean networks. Logical models with more than two values for a gene or Petri nets cannot currently be handled by \texttt{BoolNet}. An export to SBML is usually not associated with any loss of information. For example, we can write the cell cycle network to a file and re-import it into \texttt{BoolNet}: \begin{footnotesize} <<>>= toSBML(cellcycle, file="cellcycle.sbml") sbml_cellcycle <- loadSBML("cellcycle.sbml") sbml_cellcycle @ \end{footnotesize} Apart from some additional brackets, the re-imported network coincides with the original network. Similar to the \texttt{saveNetwork()} function, \texttt{toSBML()} exports a symbolic representation of the network transition functionss, which may not always be available. As for \texttt{saveNetwork()}, there is a parameter \texttt{generateDNF} that can be set to generate a symbolic representation in Disjunctive Normal Form from the truth tables. \subsection{Importing networks from BioTapestry} BioTapestry is a widely-used application for visual modeling of gene-regulatory networks \cite{longabaugh05}. It can be freely accessed at \url{http://www.biotapestry.org}. Although its primary purpose is visualization, the software supports specifying logical functions for the genes. \texttt{BoolNet} can read in the top-level (``Full genome'') plot of a BioTapestry file (*.btp) and convert it into a Boolean network. As an example, we assume the following BioTapestry model with 5 genes (2~inputs and 3~dependent genes): \begin{center} \includegraphics[width=0.8\linewidth]{biotap_model} \end{center} The corresponding BioTapestry file is included in \texttt{BoolNet}. You can determine its path using <>= system.file("doc/example.btp", package="BoolNet") @ \label{cmd:example.btp} to access it in BioTapestry or \texttt{BoolNet}. For the import, \texttt{BoolNet} needs to know the type of influence a gene has on another gene. Therefore, imported networks should only use links that are either enhancers or repressors. Neutral links are ignored in the import. We now set further simulation parameters for the model. These parameters are imported by \texttt{BoolNet} to construct the functions of the Boolean network. First, we want to change the function of Gene~2 to \texttt{OR}. Right-click on Gene~2 and choose \texttt{Simulation Properties...}. \begin{center} \includegraphics[width=0.8\linewidth]{biotap_sim_properties} \end{center} In the properties dialog, choose the \texttt{Logic} tab, and select \texttt{OR} for the logical function. \begin{center} \includegraphics[width=0.8\linewidth]{biotap_logic} \end{center} Now set the function of Gene~1 to \texttt{XOR} (exclusive or) in the same way. \begin{samepage} You can also specify initial values for constant genes, i.e., genes with no input links. Choose the simulation properties of Input~1, and change to the \texttt{Parameters} tab. Choose \texttt{initVal} and set it to 1. \begin{center} \includegraphics[width=0.8\linewidth]{biotap_initval} \end{center} \end{samepage} Press Return to store the result, and exit the dialog with \texttt{OK}. This will create a fixed gene with value 1 (i.e., an over-expressed gene) in the \texttt{BoolNet} import. Note that values other than 0 and 1 are ignored by the import, as well as initialization values for non-constant genes. We assume that you save the network to a file ``example.btp'' in your working directory. In \texttt{R}, type <>= net <- loadBioTapestry(system.file("doc/example.btp", package="BoolNet")) @ <>= net <- loadBioTapestry("example.btp") @ to import the network. Alternatively, replace the file name by the command on page~\pageref{cmd:example.btp} to use the file in the package if you do not want to create the file yourself. The imported network looks like this: <>= net @ \begin{verbatim} Boolean network with 5 genes Involved genes: Input 1 Input 2 Gene 1 Gene 2 Gene 3 \end{verbatim} \pagebreak[4] \begin{verbatim} Transition functions: Input 1 = 1 Input 2 = Input 2 Gene 1 = (!Gene 1 & !Input 1 & Input 2) | (!Gene 1 & Input 1 & !Input 2) | (Gene 1 & !Input 1 & !Input 2) | (Gene 1 & Input 1 & Input 2) Gene 2 = Gene 1 & Gene 3 & !Input 2 Gene 3 = Gene 1 | Gene 2 Knocked-out and over-expressed genes: Input 1 = 1 \end{verbatim} We can see that Input~1 is specified as an over-expressed constant gene. Input~2 is modeled as depending only on itself, i.e. it keeps its initial value. Gene~1 is a representation of the XOR function in Disjunctive Normal Form (DNF), using only logical ANDs, logical ORs, and negations. Gene~2 and Gene~3 consist of conjunctions and disjunctions of their inputs respectively. In addition to this textual description, we can visually verify the network by plotting its wiring: <>= plotNetworkWiring(net) @ <>= pdf("wiring_biotap.pdf") par(mar=c(1,1,1,1)) set.seed(559652) plotNetworkWiring(net) dev.off() @ The resulting plot is shown in Figure~\ref{fig:wiring_biotap}. \begin{figure}[h] \centering \includegraphics[width=0.6\linewidth]{wiring_biotap} \caption{The wiring graph of the imported network specified in BioTapestry.} \label{fig:wiring_biotap} \end{figure} You can now use the imported network just like any other network in \texttt{BoolNet}. \clearpage \subsection{Exporting network simulations to Pajek} For further analysis, network simulations can be exported to Pajek, a Windows application that provides visualization and analysis methods for graph structures \cite{batagelij98}. For more information on Pajek, please refer to \url{http://pajek.imfm.si/doku.php}. The export function writes the state transition graph to a Pajek file (*.net). This requires a synchronous exhaustive attractor search in \texttt{BoolNet} to build the full transition table. To export the mammalian cell cycle network to Pajek, call <>= data(cellcycle) attr <- getAttractors(cellcycle) toPajek(attr, file="cellcycle.net") @ This will export the graph of the state transitions, which is usually sufficient for plotting. If you want to include the state information (i.e., the gene assignment vectors), call <>= toPajek(attr, file="cellcycle.net", includeLabels=TRUE) @ Now, start Pajek, load the network with \texttt{File | Network | Read}, and check out the tools provided by this application. For example, visualizations can be accessed using the menu item \texttt{Draw | Draw}. Figure~\ref{fig:pajek} shows a plot of the cell cycle network with the Kamada-Kawai layout (Menu entry \texttt{Layout | Energy | Kamada-Kawai | Separate Components}). \begin{figure}[h] \centering \includegraphics[width=0.75\linewidth]{pajek} \caption{A visualization of the mammalian cell cycle network in Pajek.} \label{fig:pajek} \end{figure} \clearpage \bibliographystyle{plain} \bibliography{BoolNet_package_vignette} \section{Appendix}\label{sec:appendix} \subsection{Network file format} This section provides a full language description for the network file format of \texttt{BoolNet}. The language is described in Extended Backus-Naur Form (EBNF). For synchronous, asynchronous and probabilistic Boolean networks, the supported format is as follows: \begin{verbatim} Network = Header Newline {Rule Newline | Comment Newline}; Header = "targets" Separator "factors"; Rule = GeneName Separator BooleanExpression [Separator Probability]; Comment = "#" String; BooleanExpression = GeneName | "!" BooleanExpression | "(" BooleanExpression ")" | BooleanExpression " & " BooleanExpression | BooleanExpression " | " BooleanExpression; | "all(" BooleanExpression {"," BooleanExpression} ")" | "any(" BooleanExpression {"," BooleanExpression} ")" | "maj(" BooleanExpression {"," BooleanExpression} ")" | "sumgt(" BooleanExpression {"," BooleanExpression} "," Integer ")" | "sumlt(" BooleanExpression {"," BooleanExpression} "," Integer ")"; GeneName = ? A gene name from the list of involved genes ?; Separator = ","; Integer = ? An integer value?; Probability = ? A floating-point number ?; String = ? Any sequence of characters (except a line break) ?; Newline = ? A line break character ?; \end{verbatim} \pagebreak[4] The extended format for temporal networks includes additional time specifications and temporal predicates is defined as follows: \begin{verbatim} Network = Header Newline {Function Newline | Comment Newline}; Header = "targets" Separator "factors"; Function = GeneName Separator BooleanExpression; Comment = "#" String; BooleanExpression = GeneName | GeneName TemporalSpecification | BooleanOperator | TemporalOperator BooleanOperator = BooleanExpression | "!" BooleanExpression | "(" BooleanExpression ")" | BooleanExpression " & " BooleanExpression | BooleanExpression " | " BooleanExpression; TemporalOperator = "all" [TemporalIteratorDef] "(" BooleanExpression {"," BooleanExpression} ")" | "any" [TemporalIteratorDef] "(" BooleanExpression {"," BooleanExpression} ")" | "maj" [TemporalIteratorDef] "(" BooleanExpression {"," BooleanExpression} ")" | "sumgt" [TemporalIteratorDef] "(" BooleanExpression {"," BooleanExpression} "," Integer ")" | "sumlt" [TemporalIteratorDef] "(" BooleanExpression {"," BooleanExpression} "," Integer ")" | "timeis" "(" Integer ")" | "timegt" "(" Integer ")" | "timelt" "(" Integer ")"; TemporalIteratorDef = "[" TemporalIterator "=" Integer ".." Integer "]"; TemporalSpecification = "[" TemporalOperand {"+" TemporalOperand | "-" TemporalOperand} "]"; TemporalOperand = TemporalIterator | Integer TemporalIterator = ? An alphanumeric string ?; GeneName = ? A gene name from the list of involved genes ?; Separator = ","; Integer = ? An integer value?; String = ? Any sequence of characters (except a line break) ?; Newline = ? A line break character ?; \end{verbatim} \end{document} BoolNet/inst/doc/example.btp0000644000176000001440000002616412466166264015556 0ustar ripleyusers BoolNet/inst/doc/cellcycle.txt0000644000176000001440000000075012466166264016105 0ustar ripleyuserstargets, factors CycD, CycD Rb, (! CycA & ! CycB & ! CycD & ! CycE) | (p27 & ! CycB & ! CycD) E2F, (! Rb & ! CycA & ! CycB) | (p27 & ! Rb & ! CycB) CycE, (E2F & ! Rb) CycA, (E2F & ! Rb & ! Cdc20 & ! (Cdh1 & UbcH10)) | (CycA & ! Rb & ! Cdc20 & ! (Cdh1 & UbcH10)) p27, (! CycD & ! CycE & ! CycA & ! CycB) | (p27 & ! (CycE & CycA) & ! CycB &! CycD) Cdc20, CycB Cdh1,(! CycA & ! CycB) | (Cdc20) | (p27 & ! CycB) UbcH10, ! Cdh1 | (Cdh1 & UbcH10 & (Cdc20 | CycA | CycB)) CycB, ! Cdc20 & ! Cdh1 BoolNet/inst/doc/BoolNet_package_vignette.pdf0000644000176000001440000410205612473311652021017 0ustar ripleyusers%PDF-1.4 %ÐÔÅØ 1 0 obj << /S /GoTo /D (section.1) >> endobj 4 0 obj (Introduction) endobj 5 0 obj << /S /GoTo /D (section.2) >> endobj 8 0 obj (Assembling networks) endobj 9 0 obj << /S /GoTo /D (subsection.2.1) >> endobj 12 0 obj (Assembling a network from expert knowledge) endobj 13 0 obj << /S /GoTo /D (subsection.2.2) >> endobj 16 0 obj (Reconstructing a network from time series) endobj 17 0 obj << /S /GoTo /D (subsection.2.3) >> endobj 20 0 obj (Creating random networks) endobj 21 0 obj << /S /GoTo /D (subsection.2.4) >> endobj 24 0 obj (Knock-out and overexpression of genes) endobj 25 0 obj << /S /GoTo /D (section.3) >> endobj 28 0 obj (Network analysis) endobj 29 0 obj << /S /GoTo /D (subsection.3.1) >> endobj 32 0 obj (Simulation of state transitions) endobj 33 0 obj << /S /GoTo /D (subsection.3.2) >> endobj 36 0 obj (Identification of attractors) endobj 37 0 obj << /S /GoTo /D (subsection.3.3) >> endobj 40 0 obj (Markov chain simulations) endobj 41 0 obj << /S /GoTo /D (subsection.3.4) >> endobj 44 0 obj (Robustness assessment) endobj 45 0 obj << /S /GoTo /D (subsection.3.5) >> endobj 48 0 obj (Identifying specific properties of biological networks) endobj 49 0 obj << /S /GoTo /D (section.4) >> endobj 52 0 obj (Import and export) endobj 53 0 obj << /S /GoTo /D (subsection.4.1) >> endobj 56 0 obj (Saving networks in the BoolNet file format) endobj 57 0 obj << /S /GoTo /D (subsection.4.2) >> endobj 60 0 obj (Import from and export to SBML) endobj 61 0 obj << /S /GoTo /D (subsection.4.3) >> endobj 64 0 obj (Importing networks from BioTapestry) endobj 65 0 obj << /S /GoTo /D (subsection.4.4) >> endobj 68 0 obj (Exporting network simulations to Pajek) endobj 69 0 obj << /S /GoTo /D (section.5) >> endobj 72 0 obj (Appendix) endobj 73 0 obj << /S /GoTo /D (subsection.5.1) >> endobj 76 0 obj (Network file format) endobj 77 0 obj << /S /GoTo /D [78 0 R /Fit] >> endobj 79 0 obj << /Length 1953 >> stream concordance:BoolNet_package_vignette.tex:BoolNet_package_vignette.Snw:1 25 1 1 0 54 1 1 2 4 0 1 2 1 1 1 2 4 0 1 2 76 1 1 2 4 0 1 2 2 1 1 2 4 0 1 2 46 1 1 2 4 0 1 2 4 1 1 2 4 0 1 2 2 1 1 4 6 0 1 2 3 1 1 2 29 0 1 2 4 1 1 9 4 0 1 2 11 1 1 5 7 0 1 9 5 1 1 3 2 0 1 1 3 0 2 2 16 0 1 2 3 1 1 8 7 0 1 2 2 1 1 2 1 0 2 1 42 0 1 2 3 1 1 9 8 0 1 2 1 1 1 2 17 0 1 2 3 1 1 2 1 0 1 1 1 2 3 0 1 2 1 4 3 0 1 1 47 0 1 2 6 1 1 2 4 0 2 2 4 0 1 2 2 1 1 2 4 0 1 2 1 1 1 2 4 0 1 2 2 1 1 5 7 0 1 2 4 1 1 5 4 0 1 4 6 0 1 2 5 1 1 14 16 0 1 2 6 1 1 5 7 0 1 2 8 1 1 2 1 0 1 1 3 0 2 2 4 0 2 2 4 0 2 2 4 0 1 2 2 1 1 2 4 0 1 2 8 1 1 2 1 0 1 1 7 0 1 2 1 1 1 2 1 0 1 1 11 0 1 2 2 1 1 8 4 0 1 2 10 1 1 2 4 0 1 2 2 1 1 2 1 0 1 1 7 0 1 2 4 1 1 2 4 0 1 2 2 1 1 2 1 0 1 1 7 0 2 2 24 0 1 2 2 1 1 2 1 0 1 2 9 0 1 2 7 1 1 8 4 0 1 2 3 1 1 5 8 0 1 2 3 1 1 6 9 0 1 2 4 1 1 3 9 0 1 2 1 1 1 5 1 0 1 1 7 0 1 2 1 3 9 0 1 2 15 1 1 2 1 0 2 1 3 0 1 2 1 3 25 0 1 2 3 1 1 2 4 0 2 2 11 0 1 2 6 1 1 2 14 0 1 2 9 1 1 2 4 0 1 8 1 2 4 0 1 2 4 1 1 2 1 0 1 1 3 0 1 2 11 1 1 2 4 0 1 2 2 1 1 2 4 0 1 2 9 1 1 9 4 0 1 2 3 1 1 9 4 0 1 2 21 1 1 2 4 0 1 2 1 1 1 4 6 0 1 2 6 1 1 3 5 0 1 2 2 1 1 4 6 0 2 2 4 0 2 2 8 0 1 2 5 1 1 5 7 0 1 2 3 1 1 2 4 0 1 2 23 1 1 6 8 0 1 2 12 1 1 8 4 0 1 2 5 1 1 2 1 0 1 1 3 0 1 2 1 3 38 0 1 2 11 1 1 12 4 0 2 2 4 0 1 2 13 1 1 5 4 0 2 2 29 0 1 2 2 1 1 2 4 0 2 2 4 0 1 2 13 1 1 2 1 0 2 1 25 0 1 2 3 1 1 2 4 0 1 9 10 1 1 2 1 0 1 3 2 0 1 1 15 0 1 2 6 1 1 5 4 0 1 1 8 0 1 2 9 1 1 5 1 0 1 4 6 0 1 2 1 1 1 2 7 0 1 2 1 1 1 6 8 0 1 3 7 0 1 2 2 1 1 5 4 0 1 1 6 0 1 2 4 1 1 4 6 0 1 2 2 1 1 4 6 0 1 2 3 1 1 5 7 0 1 2 5 1 1 6 5 0 1 3 1 0 1 3 1 0 1 22 20 0 1 11 9 0 1 3 1 0 1 1 1 4 2 0 1 4 6 0 1 2 31 1 1 2 1 0 1 4 6 0 1 2 3 1 1 12 18 1 1 6 8 0 1 2 1 13 2 1 1 4 6 0 1 11 14 1 1 5 7 0 1 12 13 1 1 13 15 0 1 2 3 1 1 5 7 0 1 12 20 1 1 2 4 0 1 2 2 1 1 2 1 0 1 1 3 0 1 2 12 1 1 2 1 0 2 1 21 0 1 2 16 1 1 2 4 0 1 2 29 1 1 5 4 0 1 2 2 1 1 2 4 0 1 2 20 1 1 2 4 0 1 9 18 1 1 2 1 0 2 1 3 0 1 2 1 1 1 2 4 0 1 2 90 1 endstream endobj 100 0 obj << /Length 1241 /Filter /FlateDecode >> stream xÚÝXKsÛF ¾ûWðHÍ„ ÷IògâIšÚÓItk{ -ZQ-™‘Nâ^ú׃×RkY²ÝN:‰}Dí ØÀ€‡Óƒ—G¦JT™kål2=O´2¹+lâ+•k­“é,ù==ì&™vi7Qéò¤…ïa’™B¥WðØœMt™^LœI›9üoyê3<.ðÿ%Ž Íü9ýå呪¥òÚ9ò2§@^•À¦¼ª,Ë{ý –¯ñøô¸E£´Op:hrŒG%ÞåÞ•IV䶬xç?4#tƯñ U_Â煜Ҭé.,ç’ßQç-ªÞ/dÉß²ém#—êñ¿O_å<þ¾ º¢„vMŠè*WV'^n|ɪM*¶§rCT O\ßð1žÝ‹Íså9ëesc=#§àþ¶4If-@§:ërbXé–ŸzÞÎk¯=n/@+“ײMM²$¾ƒõ:Ö„8˜$‰Šgâ£{ã­,ú ,x¯fÌÃ(«Âûª'À@¡*„—_.Ç9DØOpö ~u‚Ï#­ë²®RÃ÷¨¢k µµµ‚°Î´I¦ m@´È/=ëh”kÀiùGÄë ÄÃÊŽeÔNÏ Ž¯C+%É`þ[¼ìBîÓáþ/äˆÞÂ[›‚›¸¢À[×{±äñ+ï[¢ªÂ1žè „^¡§½í9T/Q°fgC†ÍÁÈì°1`(æ 0†V-ÿï9fx°ƒ[W}÷;ý^ø/Õ6Ö×áhƒðͽ 9æë~à-ÿÿÔ•¾dÇV€|èuugˆÒE†ît-ÁÇX2¶€Ÿq …ç±kv-áôî’wvç¼kŽëÈè}eùs£¶å‹„¡ÝÁòYàǘ” “òI̸:b\àcÈ6Hc72ôF¥W…Iêq\lb.þH!–¹ÆƒÇ¨`[±…æ4Ú RM]Œ!3¦ä…PhåŸYŒ°EÝ.z11?¿›q–H„ãÜz Ú›ÓÄ'19å:tzož ©Üƒi½Ó@ÙLj Ð/`*TBR‹…iªEÉ[‹ €–Õ“Âç¿9©)vQ·‰©ûC‡…×5Õ—# ‹?Ò3¬6¾ŒlŸg»J½×7Ýžx?~^D¥Xµ©O©r œpÆ>L9°“ù±ùi7æ |JNŒ.ÝÍD(K)SvÖÉ´¿æ¤ùC¨Ò¸“£i¥ÑY]Q’Þ%½7$­”ùaõ¼ÆùÔRF»?û‰íì­ì×0›Ü©÷–~€÷Bø{ æwl¢¡í$C{é Ó•~ìPúåNºÊó$áŽÎ¦Î+öIîX¶R²“mW@i€˜ÿ™+«¸¥†ØT;L0¦Ëû~lèo·&q)Iµãö6FÇ+>"ÚÇ¿FµzºDøÅä6N·ñ{È‘ú=ôaH’Ó ÆÜ¦•îCarɳöO®`³; ÜÆ¹ðMxyðo@Œj . Kz)³Œ«¼‘Â#çü ÏÎܹô¯–* ÷„ðôdu'¯™®FÊn9Šž¯òÚJåΛ@wÈuÕ]JÌLís¯êÛ6t1‘ŸìyQ„º MË-5Î>ëòåaŠ&¤UÛ¼ðlW¸¼TUxùso¦ßUÄh endstream endobj 78 0 obj << /Type /Page /Contents 100 0 R /Resources 99 0 R /MediaBox [0 0 595.276 841.89] /Parent 110 0 R /Annots [ 80 0 R 81 0 R 82 0 R 83 0 R 84 0 R 85 0 R 86 0 R 87 0 R 88 0 R 89 0 R 90 0 R 91 0 R 92 0 R 93 0 R 94 0 R 95 0 R 96 0 R 97 0 R 98 0 R ] >> endobj 80 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [89.004 555.183 169.033 564.05] /A << /S /GoTo /D (section.1) >> >> endobj 81 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [89.004 529.34 211.403 540.14] /A << /S /GoTo /D (section.2) >> >> endobj 82 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [103.948 515.393 327.029 526.232] /A << /S /GoTo /D (subsection.2.1) >> >> endobj 83 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [103.948 501.445 313.4 512.284] /A << /S /GoTo /D (subsection.2.2) >> >> endobj 84 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [103.948 487.497 244.858 498.337] /A << /S /GoTo /D (subsection.2.3) >> >> endobj 85 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [103.948 473.55 297.739 484.389] /A << /S /GoTo /D (subsection.2.4) >> >> endobj 86 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [89.004 449.639 191.449 460.439] /A << /S /GoTo /D (section.3) >> >> endobj 87 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [103.948 437.624 260.628 446.531] /A << /S /GoTo /D (subsection.3.1) >> >> endobj 88 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [103.948 423.677 243.692 432.583] /A << /S /GoTo /D (subsection.3.2) >> >> endobj 89 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [103.948 409.729 240.435 418.636] /A << /S /GoTo /D (subsection.3.3) >> >> endobj 90 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [103.948 395.781 228.091 404.688] /A << /S /GoTo /D (subsection.3.4) >> >> endobj 91 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [103.948 379.901 354.674 390.74] /A << /S /GoTo /D (subsection.3.5) >> >> endobj 92 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [89.004 355.991 200.126 366.79] /A << /S /GoTo /D (section.4) >> >> endobj 93 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [103.948 342.043 316.469 352.882] /A << /S /GoTo /D (subsection.4.1) >> >> endobj 94 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [103.948 328.095 277.126 338.935] /A << /S /GoTo /D (subsection.4.2) >> >> endobj 95 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [103.948 314.148 294.551 324.987] /A << /S /GoTo /D (subsection.4.3) >> >> endobj 96 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [103.948 300.2 303.198 311.039] /A << /S /GoTo /D (subsection.4.4) >> >> endobj 97 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [89.004 276.29 154.796 287.089] /A << /S /GoTo /D (section.5) >> >> endobj 98 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [103.948 264.275 213.805 273.181] /A << /S /GoTo /D (subsection.5.1) >> >> endobj 101 0 obj << /D [78 0 R /XYZ 89 770.89 null] >> endobj 102 0 obj << /D [78 0 R /XYZ 90 733.028 null] >> endobj 105 0 obj << /D [78 0 R /XYZ 90 598.023 null] >> endobj 99 0 obj << /Font << /F38 103 0 R /F19 104 0 R /F45 106 0 R /F50 107 0 R /F8 108 0 R /F57 109 0 R >> /ProcSet [ /PDF /Text ] >> endobj 113 0 obj << /Length 3833 /Filter /FlateDecode >> stream xÚÍÛŽã¶õ=_1`Í•HQ"ô! $h 4ÚÚ¢éƒÆ£™uvl,{7ӯ﹑"mÊ3»Ù¤}˜±ÄË!yîêÍÛ¯^ר«ºQ¦iõÕÛ»+_]uÚ¨ªµWoo¯þµ¨¯—u­›Å÷×õb{mêÅaO»ë%<ÞWxYï¨ïßoÿüú;Û]yå[Ý"¬êj  zCÓøïþ~€¿þ<Ñ%óŒWºm`:M\àñz©;³è·ø«å×Ç~u­ÝâýµmýýÀ¸£wý> ïWw‹é—§¡;|\ì¦Eî°uÏóûqÄñœ~#_oáßý+àØQmOð÷Ÿ5¡úÂfoÈœ„pŽ4v];>Éû Wz‡»ÞáëîHû ]-+@å­P§ßÒ‘–Mí`¯¸‘‚Ø ô&9/b1Ší8m8 6?âäÎ|?Mëå÷#ŽÐÐÅBôQÔ߬¢pþAV²~‚ò­¯®—­w‹·ï@Ë@VˆUøÛ [œK¼„lG8jG÷8ím&ÃldŒ^0Ì!² E9®ˆ5‘¹e°0 Î'¸ùˆX'æÃžÝÝ48Œww+œ­ßîÃNˆ~øXb…¸;>EÃ/¸ÆæQðšïKiˆˆûîÇQWÉÚ(ßtŸ#”® 29â’ô· ä:0up$BÇ}Àœü)ަa[Û!Cñú9A•ìcÉYj q-ºåo"‚Ìü ™X‚¤e'L‚«:M"`*>ò@¬Â°™8' ñ>ˆ_Ž‹º­”«mÀÆŠdudöēЩøt@cþy…¬ëM®€†À˜®­e>Y“DÑV§­Ôu²­U§]޶\+W™°ã?  &Q)[G ß–j”wu ktW­òqØï”¶¨ Tã›`=JPšÖ_%ƒ¾Óv@løiù§ ?_s£,VWÉj¦RÆ›l¹máXV5Ú¤ËÝŸ#Ì쪳9Sáœ%¢fƒØG õËrß–4Šô”I‰lÕè:Wñßh ”²î ÒòrûMhyW ¥îTUwŸMËlO­j›x²¯gˆí+dÔNycx uhk£`Úd’|Œwü6'˜`¥¬A+5U ƒÉªÌ0tcÆšzFîÚôüÐËØ`¢_ øO–y7m¾daeëà%íO ƒßðXå|XÒ)ZYuJ0¶&iŸ7gºÍV‚‘ŠGþTÙ Þ*~#ÜÃo Í5c·ñÝâï×Îð„j±êÅ Á—ËˉÍ!,äs‹¢É³ Çøåüœ­ªÀ`J?mõ[àçvÍ„Šsó©¬w Œᥟ  ZÓì,•R«Z_Ô¸î’~±#<ãÊà—²2p¦¨ØÝ%]páTö™S¥Ä­…8¶^Mè(¡‹Sv PÈæ÷‡¡ jL×)4+© ‘Üêzòu=ãþR†2aøš\Ý’å¨*Õ¶õK‰e¼¨«í+\ÀdzD‹Gô‹¨]‡S†õ'œã\äêÉçþ2§u#p¿¬FVGqùx·Üwƒ'x"<Š¿ûð$dààíœ5 *4JW'4‡e– Œ :¼ñ‰0!é·ˆîuîK€Ç Nnj2Îãœ2Uwjþ«‹æ}]Ÿ£\±Œš¾ -Ol¿«õ¤ªÎס§0¤²¬8|®›JU-žÙªpžï1út Hã+Šð ©È »û5ÅR<}|Š0£TÔ  m÷ÃV¢2¢Zx¾‘ˆ‡^6StI4ò-.‹¡9´Ï´é Ÿšº£5B½Ïþ5þÓ<–°Œÿl¸=Ço×G È`Ksö7Œ)¸žû“À¶°Ý0œçÕ?m/¾UNçÂMiªŽ3/ÆëL¥ys*]Y„£K™¨ ˜œ“¯žº0ÈmÃ6¤šÞ:Dí0©ßì$ñ¶œFbS9WžÁ Æ®õĸÆtIžÁ¶ž8Ð@‡uö¿;Ž<`3e8Qx¨úÁL`0£CÁ=erýã¢æ4.žÌ¼G @LA÷²Á£äÚÅ­Ø ¯œ@鲌=›ºSGt2„ˆŒÆd¹¡¤Ñ€Ç…ú©ª¤C_ ÎúUš°:D30&Éž“ŒMÌùëólFšû™Íl¨RfCc\‚Q´i9í7ãïžÛèÀé ‚E$¦ä)ûÑd@'‹¯™JüÄ+æÎŽ!ÓÞE?ʨ˙N[Ò„Ø~!I(*s!&g—RÔ êÚT ñšöô² j`ÞÜ%YAjFºâïe ì¸5/õ¿d'tpð( f§´‹æp·-ø–µSZû8$Ù$’&<Ï8Ø=«îJ§³ \Ùç àmæPdF<8V2HVóª©âÁÊéÎv§åï¬øv#ë]:d 6ã5ònóJòé•Wu3“P×Tœˆ=>¯ˆÙˆŸGá™æñ­?Aq®DÞÑ€?L`×#ÿczô6qCYÝ×à¨#UÃA/ìFºC]ÃúT{á+ÕNôûn;Í^È¢óA!,rn£ÛƒMC³ÂÖî\ã½ÉkM° <¼(*ù£% „¡±Ö0ʺûivP×ïã 'ž³nÒ0ýö^¦‘±Œe1 fØ3¿wG½’ÔEàbf’ÇeHàDU²QdŸ]—'xS”BQ_T#ßjÏ}h’1OÜ?„œÛ~<ÖéfÔsÆ™Âîù)õîö¼RÙY*T7;¯¬÷S _Hš4F'I Þ«Dèpø#ØÇ"Î!ÜËqþsñ¦Œëœ@è´jýI¥gÞS¢[P”ÑOs§ø^Äk) ÓªÊG^ý¹äbØÆŸ$F¸&!‘ðŽn†Ia æÜ‹ FUÆÎ=C0“T=xšß0WŒYrU1u»“$ù†qÅ…JEk¯:ks÷u ùî!bX⼦s”^ƒ‡N<ÕÕéN`Hˆ]ð9Ëâ´˜ÖÀÞ¾wË]a~Åãk¼–zÓ‡šÓé;Ó©Aщ 7PȲÿ32¢ñ ES¼‡š\!åõÁ±~qöúí5D Ãæ1Æ{)©½8ÕØ3C™kH¿Õ8IÔçÙU#…â¥oV°5û5BøÌ •p,A.N¾3`bˆ“’XQµ~ ý1ø ¥o®Uu‰Ë™z°Ó‹Ÿ)~(ø6M¥À¹M¿1RTjqZ.}\øæÇÄ{ì:|$tzK$]¼?¬/¡Ó4uð7^ñè<›¼¬«ZuºuÿäËnÂyCá ž)¶}àº: 9ᣉ5‡ävÿ8±øþµ^l“šmZ’if]ß6Vd¬Ç¤=2É މ›¿úüT7`´)2Ô¡ì,ç Å7“’KMKU‹gâ×1\ÞZñ¸â‡\Ð~‰Mœ³|YgÀ@¸óñÃ%œØ §´F™Óë“Q}”é’( ¾C–:f;gõ¢bÒ¯Ù^BY›m´¹‰¤ûÕÔ4•çãóÕÃÄåC°ñ‹\Þ½¤&´ÖÓÕ¼Ó;ðºZ°Ç€[K4×Zç4wRó'½Pµ‘àb»¬²T»L¨[àÄKG•¢t‘ßu pÍ&)±‰TivîÁÁ|%<$U¤>ý¯tW!è œ6©ˆ–UWü «|×&ÝWß¾ýê¿r¥÷ endstream endobj 112 0 obj << /Type /Page /Contents 113 0 R /Resources 111 0 R /MediaBox [0 0 595.276 841.89] /Parent 110 0 R >> endobj 114 0 obj << /D [112 0 R /XYZ 89 770.89 null] >> endobj 2 0 obj << /D [112 0 R /XYZ 90 733.028 null] >> endobj 111 0 obj << /Font << /F45 106 0 R /F57 109 0 R /F8 108 0 R /F50 107 0 R /F11 115 0 R /F14 116 0 R /F7 117 0 R /F10 118 0 R /F62 119 0 R /F6 120 0 R /F9 121 0 R /F54 122 0 R >> /ProcSet [ /PDF /Text ] >> endobj 129 0 obj << /Length 3725 /Filter /FlateDecode >> stream xÚÙŽãÆñÝ_1ÈìÈ$›gìq²möç’(¼¢8!©Ý}êìC"åãaFÍîêî꺫ºŸž¿úú›ê¡^×EZ<<ïêø¡LÍ:.ò‡çÝâ÷ãê1Ë‹èó*­¢–Û/«$jVi}ÂÔ™Gc ½íþ½ƒŽªˆ&h¾È ìÆñ 'ÐRýð¾eñf qZg@¸WêyE€ÆµÚ¡}æyŽ}Æ5{îØÁŽÿ'¦¼é4sýÐá¾^=U=¿È®¸Áp! k××lNŠZÑ‚¯‰ÇÕŸÿñ?<&ɺ΅\D…3bD³'Á§Wº ä‹tn ÷JòhƒÐ#õ6¸#þ½ñâÛ¼ŽüA‡GWéÄ]zi¾ºÐÞöƒâŠ”|]="¡“Ó0‰YD½žü•4ýÓ 9ƒˆ\ðP#¡ÏŒ< Güw²e=¢ß´æ ±Z`SG>úœ2ðRz™¨¼‡sRc$ t‹K½ CgCä¢ßääB|Ø(Ò_F úp›¤°ß4ÙOx…TÌA€«Yº=YÄi"ݼ¤¬G˜´ÚËs?±^os$Ú“\UÒÚD$nqlˆý°FÖÄÑß{Q¯’Vü¤…ÏÄ©ˆw¢\LëÌ£5±y™Ö| ’Ð62á¿ l,[Na¾X þŸNÁpª"ÓòçYOFGÜÐ’ Ä4µß3Œ î«J¬`¡lS˜qŽ˜v?:2[Ü»ÈíºÍ«J]OÜ?*®Âsî°‡ƒÓÂwÃ+õÔwçÈOGöPsGFv§1¯£ÛÍk¾’9µ2J²B]ÊŠ"HŸÛf”–Ч^á¨×vÎ ¬øÏ1oÜYìJÃ6¯+o`„oÔâ —³àû¿‹ƒÒ3tòæ½=©÷y㙬þÐhèО½}H×{ÂxÇ–aÏ<ÚSøÚæ¨OlÝ&qa]xü1»gêÔ:;S'¾³#Ý œl°ãÛäÜv;9†âàõAé`S§€mß)xZë{Dò‰WêÉû±jÞ÷KàGëÜôpj>ü2ºm›9Bžèª­pXomRŸÐà‰µc.•YÂÁ ‚ÞZuÏö3Ì͉2“X¹ X%lP‚mÙ‡)ÖnÕ2œ¸KVZ`Qoñ7 óÀЋ›Îè§8aз$&ÎÕÝR;PøÞµêHEFîËâ39.¢ÖOD“X½6ùšµD£#ŸŸ‘#\T¶â‘ûòSéÜ_S¤^ j’|mª ¨ATøñ¤•!òžØó&Ñmš'ÂSlÎß·B«Ï¢w´¼á>êò©û *~ô³Õ-°²Ê³®³ŠÁž5¾JÁÎZö‘B¥õg6p|ÌÌ!¦Œ<‹”‚½¾ZPœÔÞ/LGÑa™A [V´IÄû¢˜ªª#Ì¢!Æ€z¿_0L¸²Û–‹¸è©ov€Ã瞢¦n^`“ å¯UÏ\j¸žÖùrpƃ/+ ‹ºF`Ú/âa ¦ÏäVbû½•ã-Š8„*«°ER y'€{mˆÒ¡·­â{³è†ZõÀ É߬*ð\ƒÕN1cQ¶¥Ë8µzã]·pÔÒ9½I Ûç-Ù07ËïVLl’F{µŽ'¦GýŽÂBaÂA= }Ñ5$ËKÑ5Œud/)Ì'¬º @Ùg¦Œ>`ìžP„LÉJ=o+6pT£®iJú‚`â»uÍPŠFÏ;99YÔ%‹~R.)a”¼eã[öÓÇ‹†¯{Ñ-±Öñ!Ík mõÚÒBÏŒ’8?pFpö ‰õÍ£ÕÜ­¤\Ä–ãJúUbýU4#éOýAÍáU0Rüz0º¼Ñ@*5`_:2i÷Žœ`e–AÐU'’:èqöh+_lx€’núYȆàË:¢ÐµªHbM’ZoFj‰–%#Sæ™?{Zï¨âÏâ[Â*n\ì—1&úQµ2È@a }EÉË~@ÖƒB„Ózé5ïœLy¡ÉÈ£ÔbóAøÙœ›“d¹ãÑkØ…íOš¥^¡~ Å€H’%Í¡!—Y39XyÔ­½0)yVu_FÒÑîX(вfÛ9ŸiÜçЬš # Ã €45™ä/ŒiòOZ kL¶¬:ïÜ‚YÃg×cžŽâpô£¾‰W7YÈp /OÞ‚Gßq=.%´ju¶6]'gó~©W9ÒlmMֱޣ÷ʱ‰°Å2_9œÕdhÞ¶¢yíèoTGêªØtël¬~„Ë`†J'® »¦žUf8K­­ËÅeŠßËö™š#—óu¿srdl€-ÛVãlø ¯pöC.ŠÆÈ•Ñ{ª!YO?ðÉm¢´±E$µRo È;GyÁϽh»µrF*6'Ž#1ðtÒeü"]ò«ÎK%ŽÏé¢[îæhøùƒJr@ûhªÔi\£Ö±2œ¯uÐÂÒæÔµq^—¸±ô¼ˆ…0‘õEG‰¬ëU2tÛ‹ mX]¶®3ôåþñtí· wÏS°5%ÐÞjÍsV+·AuŽô@Ã@Ñø”Ú"a5'þ”fâï†|¡¥u±Ž ‡Øª\8s¯B·sBgth4Ç3.U¥pŒt]öœ‚XíhÃU´ðK=¯€T=odUlâeD¢»~sQm© 5«J]ͤA¡’M‡á»Îkd]Ê*´ïÖnj Õ\ôíš-×Zæ…Fw”À¸kÉIq<ÔµQª¦'Y°÷Øïƒèe&`éBëªb˰= 4ÕÄ ë'õ d‚¤Ü Ãl®/¯6ÝBWý¥Ôªê: £slüÚÀ,&œ(|83ÜUá÷§ RÉIAŠÄª|2»˜?ÈÒ=ƒM*-“·«”4fdMÃB¼MÁß™™Ù£X¬øô¯~bem8i~n8<ǽֱKÍIØr™ÅBAôfH²"ÈS1Ü–( NßNߟ ØRa$/½ÊH’ek“¥ZwḈÿð ßÛK¼›šJ¯kc 6~½ 7ÚÀ î¸wAÜíFc¦àœ¯Á9áôJ#öΨûþÂ'KÂcRåë´,BźŠÜèÖo¯¦“ͼt±v^ºŠ¨« Oz5Éwr„Ì{BOú-ëárW©ÉgtëѪ$Þ³žÓ…jÈf˜{Ö´¢¥yÍðÆ;kFw:²‡MpD‡ïo/J^ÓèžP.x²• ø~"Q$ÿЈöÙ2‡(˜‹ÜUphú·M‚=í¿T©4©?ûŸ$gäÑψñGÙK+ò¨Æz`SKaÈŒvj ¼¯‚bQ)¶·¡„ZCeìÖjØí„}¯·e|½æÕjÓ’uÆžèCÒJëV¼ ̗έKÛ`‘–¾\©~ZÆk8Öï×|S¯MRèĹ’("AQŒÀUÝZ¡Äœ³æ4ÕÄõº¬f4ÕÖÆ¸ Þ:‰q&Ð1ßÅ¿iôƒHÁ|Ò{¢jçœ4÷~ÜŠ†¿—`óüØõg'BöΆ„Û¯ÎirµÛ'=U KD¨þâ™{ëg(¬8^œ7bç>Jû`ó˜D¯þdëäsÜäqº¸a¬¢UyôÖD)šµ üü¤LÝŸÜ™w›u;™ŠÃìc?ûÉ,ƒ.üÕ^—¬û¶žšÄ6ð‚äßþõaÍV‰±›²ÍN±ÞÏbª*ÝOzÁ™ùÑý­nÍØÏƒ:fáäËŒbekàË}ÅÊìµoiØËÒíéQkµ;¡Èö*^”Æu-{Ã`ïîuk¹2à Fz\¦ŽDÔéhK1¾:1&#Oà×DNžé^áÙ˜àŸMê8 GSøTƒíSèæ’º÷/®ã«aÀ¥<[—&ÿ#°Xç™Ñ‰þ͹†Ú½„ÂöUhžq¸qæÎf3rGàž3Ñ8å»oùãxu=éÓŽû"˜ÔõºH­}ÿ7®HÉÍi’j]üŠ=4BAª½[?EÒ³Í'½³X;{ž§I¨ïý UBïkÞyiæ;çÛ—Î\—ë:Mþ˜K«îR€ŠC¶Pèi~Úû2D’¢™±üL”àÙ’ÐÒŠPaÝx¦bb÷{†Ýõ,‡Àâú"czc7KWÀн÷£ø ÈS¤WGÊñJ¬ªO+8ÇgÁ½$dz«uõ4_—µÑÕA¹“` .ßßlÑ,îDýîž >ôŠÐØÚtçäÏ=Mg»uhç½Z¼†UDêP`c~bÇa!é,d’ÄA[^“×P$þ!ðw®rŒýKá(Ž©U“lõE–ÜKšFݤUZL%_ IôxZIÍÿp±H‘ÂÙZ¦ÆÈn[Å®µo õAtª /RùÎ ·ØSx6Üxl¡Á¦£ùÎé·=2#O`näÃKsâo˜6Jq FJb>(¾¹µ.ðÄûd´®{Ñò&ÅàµõF!¶6§®­Pé4¬~_KLÅþªÒ½¨ÂNÊÇâç««u7Ûê,~¸ò¦_2¼,^ÉùéŸä|ÞSÖÑV Œç÷:Éæ$éœã(öZhí+™€Í{óñû\G™Ù:ˆ¦ ©÷Ž?ì}ª©Ùñ‡†«irÿÚÖÆØZhœü‡=i*×¥1?ε¯ìRW0=µÐNnQoû†ÆIíÌŽTLË¿kKùòRªŒ4A߸³î õ®™lý(D øE|`œò£>|5é/üN2lÿ !‚ž” ú¨Ñ¤í£ÝÑZiŸÔ„Ú‰ìë‚¢ðY âô‹Õ€]ð<4÷éKqâyqw±öfÆ&_jÚªö[õUôðwG$dò¥=ÅqýðX€S—œÑàÈW}þêÿ§Š1 endstream endobj 128 0 obj << /Type /Page /Contents 129 0 R /Resources 127 0 R /MediaBox [0 0 595.276 841.89] /Parent 110 0 R /Annots [ 123 0 R 124 0 R 125 0 R ] >> endobj 123 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [179.463 540.749 186.437 549.656] /A << /S /GoTo /D (section.2) >> >> endobj 124 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [137.841 524.869 144.814 535.708] /A << /S /GoTo /D (section.3) >> >> endobj 125 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [138.423 415.28 145.397 426.119] /A << /S /GoTo /D (section.4) >> >> endobj 130 0 obj << /D [128 0 R /XYZ 89 770.89 null] >> endobj 6 0 obj << /D [128 0 R /XYZ 90 249.571 null] >> endobj 10 0 obj << /D [128 0 R /XYZ 90 219.222 null] >> endobj 127 0 obj << /Font << /F8 108 0 R /F62 119 0 R /F57 109 0 R /F67 131 0 R /F45 106 0 R >> /ProcSet [ /PDF /Text ] >> endobj 134 0 obj << /Length 2284 /Filter /FlateDecode >> stream xÚÅËnÛFðž¯p/…X,¹Ëg{²§h-`ø–ö@I”%DU’v"4ßyî’"m§E€,îcvvfvÞ¾¾{óÃûü¢ŠÔ¤w›‹"¼ÈŒ Â4¹¸[_|˜ý>fÇ~vðWà§ÜÃÏþ4ÏãÙå|aÓ„¶:& [–û H8;Î&Õ-.í–ˆþ*ìº÷±ú\Û9UÆ©(‰®åMÒW@~_©{‚Eò+žÊÚÁ3yãbBâ÷³+"½!ÛpØj†wfЗPÊh­¨ z<>:”­ m­º`;»Sÿ»©ÕžkÒ#V1<;kõ [^(5tã @xg€ªÜÏ{¯ì- eà¸WgÌé!…:¾'YŠoKêÿŽýîŠÊ‚¾}ŽJâ‰*+2Ý{ÞÙ奦çóLaŽdåLÍ[>¡É¼Ã°˜ú蟲¸“ŒíHzxÉ;«ybDܸ)±'AF`c-ÇÛpWº`ì‹S„‘½ä6ãЧ»ç¹úÐéšJ†ù?Üë§z¸exçñI‹Þo)8îY‹¤ˆÝ£ÈÚ¹¢J(BbëŽÇÝ‘¥ûÞ¿÷ižˆûAÂ*wŒ:»A ‚ gòÀö"ϽXÐãœn‘½Þ¯”!¥øa/nµý˜ZŠ ñœx>å)ZÊtt~ìŸé£ß Ù‚i„ÖŒú()@ZŸ#æÅ9¡½TwBRôê{oã»öÕ¤‰lD"Ó;Ÿ… —ŸÍ0ÉÏê8ÅØo—|ÿ¶¦suãVägޤ?3¤äµð‰ÛËí_4|ÏÓíÜ$˜Û0%ë±!?ÛgDØ ÉV’sµóž];£aG/(¶â¦+>N8)¨ÀW@9Era^Í™²£¼øÒi°¿o»Ó¯c4ú]ŠÂð¸­)¼p¤Ä¢÷¼éÅä±ð&¤/ûù>>6Y•40TöQJ«ˆ*çzÚAþ\qƒ`K\;ñy!ìÚ¹öz¯É‚­÷¥¿c±áD÷}.4v3 Aœ¥ HÎw¤¤©Ei$J[&Íô –¾Â¤ÔÒ˜qwä®ð±0› ²ØŽrx“Ä\Ïö™ÀeWlâ°u—œ¯Ua%=abtϱ™"H¬üݘ£"°¹nû@IJ°’àÄy¸ ­¯ñv"i£œšöˆã’ÂÝÂ÷«ÔhW/oÅ©$gr†ýÕ¥ÌÔ¯E¼‘Íѹ¤;LèÀE•‡5xç†YBßô òØuçyäî¡Ñ’”c$>È0³DÁ$82cˆÝ[UË .ËÅñ²õµ€Ð 1÷–[&ÖgF8d=pÔJ±…[{à@bwlç¢`kà½TÏ¡o>},ÆAž'–ÃzÂÛÄa˜¨˜z’k,L|3ÍXò4÷¼»”,í$QQ¿HEjF â’E Ž¥;_m¾ZxufÍ¿¾ú浫Ï,Þ0Icz/€¥`p¿[‰gÆ¥«ßÜ)˜˜óøà¡àýbgì«õê5Îhõœ+ÉÒ 4Nêß“ùJ_5Ó[ÊšˆÛ¿vÀ¹­ôHíÀ;hcN[SR‹éŽnØØëzÍ@_mö»yc¸ÃØ +¢ïÆiç/}ÏŸ €ë×Þ½p3aYI`€6kƒ<³LF;¬ر¢È—šÛ ¢ Â|Òp½õu†Ê¦¥êüèÁlsŸäU+¸•²Pz¢NÿWˆQýÄ/о¥µÊ-£7a„!$ŠE¤FÚ´1½¹¹{ó’ç‰ endstream endobj 133 0 obj << /Type /Page /Contents 134 0 R /Resources 132 0 R /MediaBox [0 0 595.276 841.89] /Parent 110 0 R /Annots [ 126 0 R ] >> endobj 126 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[0 1 0] /Rect [415.733 602.518 422.707 610.926] /A << /S /GoTo /D (cite.faure06) >> >> endobj 135 0 obj << /D [133 0 R /XYZ 89 770.89 null] >> endobj 132 0 obj << /Font << /F8 108 0 R /F57 109 0 R /F62 119 0 R >> /ProcSet [ /PDF /Text ] >> endobj 139 0 obj << /Length 2976 /Filter /FlateDecode >> stream xÚµÉnÛHöÞ_áäЛ]U܃él'AÏ<@Æ9%€¦h[Ý’hˆróñó¶ZH•”¸;s°ÈÚ^½}£/®úåmuR'uaŠ“ëÛ“Z”&MT‘Ÿ\/N>ÌÎoçz¶ƒ¿n;?KS3{ØÂ ŸŸ™rÖvð: ð³ÜÀÏnHgÍ ÞW¼ù®Ã…nà•%¼ox!Þwþ½¹ÁS2± 7á¡Ç_æpiƒ?Oó*›2T˜­ød ÷í‚£b:C"zÆ ‘_A™Ü!º¢Gÿ`@ ¢±…Ÿ-žxn,{<ójþéúŸ¿¼-‹“2©K¥‘êą̈¤Ôóo×àÑ;„²ãÁRûZ¶^>áÕ¯Ã}"˜w7°@»ôì£ÊÕ‹ðÀ9ÏÿÌü¸„…§ö‚÷Å–^^z3§[4Ïý×_‹ 1epr‰‹ÃK¯ à>ÞX}6wÈÑ1 Üù$,êêûPçkŽÁÚ—¯¾¹!|¦#&‰w°ps€z!æûáì/€,P ŒŠ‘ Q¨‹{=bæû<ó›V"ꉸ—#¬> ›`L¦k"ÛËZªÑñ)kÓðP™}¦? kʨªˆŽE¹C6òæðÒù᥋¨ g`U:DcäJ¶¬s¯›ÇÌub¨bõ±üvÎÁÚaDeqï½>äO[©Tk¬ÀžÁ"KèAšÞ£«e8èùýLö”Ûƒ a‚úmÐè‚û|ÁÅé˜y%ì1–%Áá$ ÇMÒÄ(áÄÇ.M £¢æhø0Ò)5Ž™0–ø…â×N^úßß3¼†•Î$ë2Ÿ}ÔiÖv6v¶Dn"Ñð+þ¼Äý… òû #jÿ¸åÑ;FØ q€•… ¶EÐ!Qó*…›Î2ˆÆ×6¦+}0hÃUm#ÜPžÒYiÔyÁ¬¤L !ö,8 ø,÷7,†¢œÈA'ižòῃØLJŒè„3+aŒccŠÛþ¯güÊùÞÁô^ ¤ö‹¬YÞˆÕ¼€Ç/ „!Ï—~î+U@Œej–æÌûáQÀîxRÔ _‘±øìÑÙg³ßET0—Íú[^kñh3 ÂFܬ³4©³0 ›/ˆâ\r³nž¸àÊñCDº‡™':5H ª J@Y$)k ©U–¨Öˆ®oô½ŸknX›™|á%%¹Xçï¬Ýn™hIdQÁ€©u¢*-z&¾ ®¦(.«”È’j, TG2ïu÷Í Õ%È’z}˜mkê:/góPÏu‘%åX<ü·)ëžHÒ:© m6I仯D 2vå l6# /Öbiд¾ÄèdççC& iw–ä€DÌRbs;yŠm}]yÊx„çñ*7μÌÀ_=ˆù÷ìÖÁ-¤~2u=àg*wpœ¤i1^@ž.qߦµ®RÍúØYÈ)çX‡ bðƒCQàË â]¨@ƒ(.º¸¡XºÖqƒÅÊËû+O]¸Ê±§ðÑlØn„!#÷ŒÛãÆ±<§è®’L)j¥ìŠû5bÅÕÁrtýä]"•[>rN`ˆùX¬ äÃû§7+ÁµèÔï^¯I¿@ónük"^:9è™KàDå[¿« fÇøX¢×QÚ•Ï8·ä9ÝÞÛ0Ožâ‰×ÉS)#óâH'6 ¿Ðl%àµw ðÊÿ¸ë¥¨7mZ _÷ùcRàe•YBñ@kòÊŒÆwsêT”D£ucçzu“èUó)'Óœ8 Ò¥™[žYç:8kï¨u(žµ°@¯"·š¤PîÖ(‹ñËbDDÇøWª¤¨ªûVÏgMᔤëú»Xµ²aq¸eU¯ú/±ŠÅžCLMÇRwìK‰}*8˜ì³2+á|c%Sú£Y™«|ÊJDÓû­Û0&’w[QÔ‰ðP‡Zça¦ªãê†.2äWÌóA‘&yÆU'Eö ß×Áó¯ú¾Ün1á©Jä>„wøj[Œ¦*B·†KQ&ÐaBQ^ Zà7^¥TýÛFî:¿r•7†sxIÄš*©ò,dÓFr‹Á¦2Ê&6˜ D ‰ÑÈbœÞ¥æQÿlzÓ 2Ño$ëêEC—;ßz%¶–t`+¦6 Æc516s¡zÂXÿ/¼¾&’LCQ¥Dãlœ›ZsóÙêA¤n+¿ç@Ölj5[ülä´­YëÖåVz”² 0Î&¡ÈÝþ!iÎΔÑ]Óâõ÷<Ú9VwmaoÅCQþf[Ít°ß°£ å…¢ë$aTäŠÜ©ÊÏÆíp„M3;[òöol޼ó»I2˜wÌ‘ªæ,+Íì$Y:šè Ò_À]I÷…7…ü¸e£†¦´h`úçè&n$îûI]%ÆG#.62d¸0øâ“'ùâ!»èãÁ–²¼•HÙÑ — q™”õ$`]ÎÏ€)x.—NÜ?“'`=²ž}ÐiR•ΡÄÊ ðàU\YÍ~PYÈ2ѹÛû*z Bôm„±àŒÞFÀr±*-'¨‚‚¾Òw¥ö¯ªá&w•ö¾qL˜J²Ô¥2ÿ™Ÿé¼ŽÒÉdUTï#VIé9¥ˆ¾¾øáôQÏ+Òž[Y«m¢…AÓlhG•rÐüŸBöÙEm1SI®³?WòçY)c!ò_ý–]Tï*ÏÎæuYTõ¤W)p!%`c\‡d¡ûêMUÜ)W‰À: jöë“~ln¨D\17ÎÒÂPPÂ;8aˆye\¾»d·R’_jd—g,ìyhÞc!º/ ð>.WrëÝnÄ£‡_T æ×c¶ö—OµÔ°ZûÜO8¸t-­áÕ‘ÆFæS— Où@½L=KáïÓȇ«&²ú­6¤K#4§Æg-ô• T™ ¾S¬íl+ÀfÓK§C<»”ÕÑ'aÛâýýíçhµó'‰•2¬¤ y%¯Ø£liÔoIõô‹²±x(ýK„ñZ–j§eí z2g66Ûxnê’ÉYû1'#w%®¸¾—µx¦€+>Sè˜5(ƒÐa¹°]¤ÒÇXøkY(»–þ•2²ÊWå87éîàaw‡öHúòk`\¶ 8£”ÍÉ•7Á‘OÏêò[+rVCüÖãü L6ü9Ž¢`W¶²Ÿ›0ò¨gžsUµ þ#a ’®&^ì# ÑÓ”a7Qá\ ^|®îF.xÀù™`š*Œgô¥b)4·VvK×U,ø;Çf‹ÎC´¦ øiKÍ¢ ¦f¬XÿØMZÜ£.½' a“uò3Ív9÷>lÝYBÛH}6:ž’O”åÿ¡§a4hƒ•ÉÁ#š,F4ˆ¶B& Tâ&:îI‘—ÈÙ™®L†×ý a7Üòë Ÿ¼o?öq†A (b 6 ÖÁ¨ßh£³*Œcëh»‡€ˆÍ‚±lylã¢Å—5¡Û¦$G"Güã”Ü)A kö_.â‰n¥¿™èÖ…Kt³ÓXr®å“îCטo_㶤£/Nû7š\Tù# 3Ö%î­Ï|¥üSE²-êh^‘ÿÚöklm[ƒ­Ø),…^Ù@]³ƒ©cÖD™ƒº*’ÚwµŸWhãJ‡CÍÀ|ź·æN°w^î[e> endobj 140 0 obj << /D [138 0 R /XYZ 89 770.89 null] >> endobj 137 0 obj << /Font << /F8 108 0 R /F76 141 0 R /F67 131 0 R /F62 119 0 R /F57 109 0 R /F75 142 0 R /F11 115 0 R /F14 116 0 R >> /ProcSet [ /PDF /Text ] >> endobj 151 0 obj << /Length 3880 /Filter /FlateDecode >> stream xÚµZKã6¾Ï¯èÃÜ@¬H$õZlÈ3À.6AéÝ’9¨mu·wl©#Ù™q~ýÖ“¤lÙ=˜dݦ$²X,Öã«"_ß½úúmuS'uaŠ›»‡›:½)MÒ"¿¹[ßü¼x{[¹E?Ü.­5‹öÓm¶hvÏðÛ¿¯nßßýóë·yHo–&Kê¬äñ u[æÆ.öÐÜÀßþZið÷Kš§ðc¹™1Íj†dÅ$ÇçÛ¥)íJhü’f®%ZK“ó4OÍ~†µ¼J\9áìl¢2)Óï›@²Y)ï¿Ýš ˜ç·{ü5‹}X½±sûÌ-þ¸EÓÁ»5Çîøx*ünQÊL¤§5ᇰFšU§„¶Ì L'·K—•‹wÚiC”`ÂÿqG¿BV ¡K4ž‰<ÐXã8nC$ÇI.‹"1¶¾Yf°/¹¨Êéþn‰©3![—^È"—ó²:±ð"'ýø¤Ûßnó‚Åxð‹A=fñõÜÌøçdPé‡~ÐŽØ[Kãa/SÄS ˆðìi¬T-YœD–° #X‰ûM‡{¿ç>4³ª7Ò‰¤ô2… ´‹W³¬ª¤°%ìƒMj'öñ-h­KÃæb»¹çéŽj›Kk¢)F½•ŽüeÍ2Â&î¨ ZÑk¦Rª@hÑWlËÚÆy¿—5l7¢¤Ö*êÙ?D¼²ptÆv|~Äýð»­y(HfBÏJ±ï¸ ):Ž<4줖Xm˜òª³ŠL§*̃I__ÜÚUOŽ}Ågà^>ARÜiݲÐŽw|7Ùi¥”'ž¿hk½76ð»Ç;‘õÐlùíDtå‚´ù²5笳Ô&Îj2¯‰eþCQ|/*1gj`Ÿ•Ñ(°÷9hð'?sÓÌ`Nò<’-{¢–¤+>nôãAýÖÞ/YÔ„œ$<ÈÝó ZÑŠ1±ã†¹"µÂGÚüîDܾs3²MeÎ$•©¦šA¡Ï»ÈqŒ·+gë¦/-‹^°êµñ_3†®ê9àQ]7ºtÑ¢#òe* Ò7 Æyæu š÷ͨž&<5üH¬d–'y×Ü‹l…‹AvzN–ÍÞK "Kž¦‹»'ßkΊt+¶4åš]K.‹DKÏS²è Y4é®?‰`C)ÒÞ›:¼µÀNYçìðàyDµêV8ñÓ ,÷ùúº'#îÕÏ5B¥c ŸŒŒ‰9m˜ùw€š=(fŽÒ<ÛŒh(Šì< š ‡Û¢¾f¹K[F>òÈýW²l7ÛQbZ™ŠQµüeΜÔÁç›H3àYƒ =ê>Þщ¥^"M\£š¢øIõ_™döæ×I=X§c¹Á1÷zP—ÚÅíðŽȹ;õË[ $vq #¢p0ëþj@º•z±­¸¾†f‰Ý_F¶Ü‹‘ u°eRÞ«RJ£plÅ_Rä4F:~{ê1Žü~9V6;e èÌ,­Èk= N—²zxÞÍlñ üÝÁßð÷oø{3޳¤ªò‘õì/]æ’,·ç‘6 ij Ç.¼Qc“‘ÖŽ» À—‚Ê Í\ÝÒcÁwa·º^èÿxÿÑvß“>ªúp¾¬ ¸6!’õ ê€×ÿ+A9ðì!6/*}‰cc²iXå 5ëg¥Mlí.0FFæ²Z|1 q½ m±´°tÓmy¦ÓìØIw@§ &.-Ƚ<0€A M.ŽøýA¶'jZrèRt²çi.`q) ÿžƒ%è@E‘ƒ2žs¯8ô‚ŸŸqÒd͈¹í‘‚Wx¦êð}äHç ìEögZ㙋¡,e.W˪ĦٗA¼Êϰ"L­™%+óxÁ';äùw,.Â>’5 ’íŸB_V«–“WÒ^cmR¹ì<³)Àv Mvä§ ñ¤€ôØv¬ä‚B6¨1ø;lì¬/ÂzœBÍAáG'ù ~‘0€80ðà÷ÍF2²ÃPEÜΩ!й]^BÊW^”¾ª€í RÈ‹‚wjÅ–æw`¥Ù+|Ý„ø å f‰Ý6ñØ–ÛýVt‹²²‹î‘IÑØÛ§ÊÔH¸†= áæŽí—»pà¼$ñ>yŸ¡^}§š/®¤^Y(},Š4ÂÍ tP¶02J‰3G$[èÉ ¤ëî.•ULU$Y•Å1Ö[‹Ì'ø$øa~‡öüî·r³d&Mʲ~±0ƒ¾Nÿ 3+‡wŸ¹¢ëœf€Úܤ6¤9¡3Y´ïÖžñוìÀ(z`”볓]åü™ê8é–3<¯'pÀXx ÿƒx5›˜ÒLEï+ ákrуÂz›MU_ Z-$ÛØôNÊY¨—™kò ˆùÀ#V.Êø°Ë@t×䄈®‘ë\@Wó{š /NÙ"qi>MK®Ê-*þ¦%UA9 ²!”snZkß…:¤åºM¡µÜQBþ³Z %ž>.?øR%èC?[²Ü±–KöF^6aaºü†5Ìhõ‘€á%ìgnA Æ-~lÁÚöìèìmé8ÝÀ·¿µ˜@¡zh®ï}‡{­fãIuØD^òô4 M Ÿ`4ÔÂFÎ{£ZA?­ÃAõåÙ5êЩ!t±ž!ÑŸ¡™÷ü ¹ ¶|íÿ¼ùö_Q?÷žM¿¬Î¾“ûe¶ñwþ—\ü§ó¡UÔzªu—+Öà@sGš$rîO}_'^ö°?ód4|TV6^AŠØ#=ø (>‹µ®æu‡:×>ø[!äóoxMºC»'Ð÷jîµ²?]Ú©ZjŠ´Š¢ŒY»Á{%€Ö–˜Ì °¨'¨ÒÞZÐ!hyÃñÈO‚’ÂvJªª÷ö±GÅ;>N9è<»(r¡C7õºÕ.ßÞú$N‚ªöIýW79ǯƒ¢K†ñÑ«¬¸á¥Œ,«9ñ"Íâá «7Ƶ"©ìtÙ“jºNZr½œ;+´ôJ m"ðìÓ*®¸tzØh0yct‚1œn6Ql#Ö£ IåÂv™ÈÛÎQþƒŽ„9ºZíù’ÞAp․ã$H>%[Ä, äÙmïÜèƒ÷ÍFxÐuh ™ðxÅ‚F “¦ÒiPÆî›ÉÁö¨Õ¡›8ÞFh}Ž/¸ª‚Ý̵Që ›6lâAÍE0)¾»dÖ£…S'>»ßij$ k‚¸ªŠodÌIdœ;UI°+qyˆ+:øùZ"Júˆ$F™¬Q½àdJ^“ÅU•ÏÛší’ 7ÏÃõ&U-ˆµÃôøY1úþñ‰©#ºÀX˜ú@<³Sr*F©<ù¯zåÄ/d#žSLÂÎ?…î!¦Â·í©Újñ¡âC¡uÃ1dpÓªÞçªê/@.MÊ:»€†Hþ$ñet÷FÏìdÝ,ñùL™eU\.lRœÂËJC{EõÐyØh-;îpÍ©Ç3ÊpΣ¶ÖGî³ÙbPý}zo(Ê ©›QMË€¨LG©clÅOî©Þó`º°‰¡†5áäaî°!º>rŸlåå+sçxk)µíåWÊlGµõcR•‹o\½óןÚ„Ë{/ߨ£3*…1x·ˆã?H½n/ŽÛw"³; ün^h>Â×T&ÐÅ[=ùø—Ö:Ѥ¬@oÈq¤€QøÍÒ ° :K•/a«õå‚@.ÊΨ$C¬ùŒxêdË3ó’nl䥥sˆÁz\ðÃ’tp$ß0¹`zH Dí± dŸä^ ’À2¾óª‡/Ï*ÛŠœ„¬˜ “ºeæG¦åN<™eñªŸÜ z¤P¢æÓÉÎ ~S{oý`ÃV2,-:ï.8ÊÌe øï/q”YR¥¾"ÝûB®–3†\O$sª>ÆÃÖï“"ö‰3DÏ¿•Êf>E7øÈØóÎÌÔò³Ê&&/¦9ã}Tàj"“ÿ=:nøL×p¥ˆŸºÄ¥þê&‚`ˆ?a>ÔrI]oNу\uƒè|L®T.På³9ø»§ôÁß“x0Éc?ªóåjŸñ ›áBùEvYGU¼Mn›ÎÔ¡óÄWü—;~:0 Û)Z_.ªÄž÷÷q6Ù ²¹~ Eƒsîò<±©¹Â\•˜Â+ì7(˜ja˜~@ÿfzG¹<»ËÚç8ÞSжg‹¿Î'ð^I^ÔxÈ 1b¡bÝ›×+êö7’ÛÙˆ?A[ÿ?±0¬óÎã¾,$›„_ºHãNkdÜPcàåÎø¯¬JŠpQæeYž«l–d•×iΦtÏY)³$ —þ]¾´Oh¿ßßâHøÈl¼t0èý÷Xàȸjo⋘l€9Pʲ_ØéÅLÉyâ ÿ¶š 9™Ák]|ì/ÞµÁn==D°uÊ™}5qåHÜgµý¨WéàíK¡ƒ²¥VI‰ã^è¦àNÈ÷ÑÁ6j5ãØMÏ*®·ó5Ý•îèý‰³zVÙ5ÌŽ†ÅpXx«_X›ÄîS Ew½_-tYs:ᥠ‰§„Û„Ì;.= ¬çËõØ^5Q6p2çëVAË4=7QÕ¨üyâ\¹˜<ìÁ«Œi甉ËÅÙøéÕ›»WÿßLpU endstream endobj 150 0 obj << /Type /Page /Contents 151 0 R /Resources 149 0 R /MediaBox [0 0 595.276 841.89] /Parent 110 0 R /Annots [ 143 0 R 144 0 R 145 0 R 146 0 R 147 0 R 148 0 R ] >> endobj 143 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [284.587 638.443 291.561 649.282] /A << /S /GoTo /D (section.5) >> >> endobj 144 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [249.166 600.585 256.14 611.424] /A << /S /GoTo /D (section.3) >> >> endobj 145 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [413.538 552.764 420.512 563.603] /A << /S /GoTo /D (section.4) >> >> endobj 146 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[0 1 0] /Rect [264.889 370.961 276.844 379.37] /A << /S /GoTo /D (cite.laehdesmaeki03) >> >> endobj 147 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[0 1 0] /Rect [351.836 370.961 363.792 379.37] /A << /S /GoTo /D (cite.liang98) >> >> endobj 148 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[0 1 0] /Rect [377.598 271.335 389.553 279.743] /A << /S /GoTo /D (cite.spellman98) >> >> endobj 152 0 obj << /D [150 0 R /XYZ 89 770.89 null] >> endobj 14 0 obj << /D [150 0 R /XYZ 90 454.159 null] >> endobj 149 0 obj << /Font << /F8 108 0 R /F57 109 0 R /F62 119 0 R /F45 106 0 R /F67 131 0 R /F11 115 0 R >> /ProcSet [ /PDF /Text ] >> endobj 163 0 obj << /Length 1857 /Filter /FlateDecode >> stream xÚíÙnÛFð=_!} P‹á)’FS ik$ Zˆ€<¤y $ê€,R()úï“»”¨Ø œú@q¹;3;÷îŒ^Œž<½&½Ì͆Á°7šõ2¯—¡ë ãÞhÚ{çüÜÄAè”}ß)à©ùó'x¸•• <<¹#HŸÖö²†ß6T|çFàfÏß^ìÁk ÏRȼð­ÌBú‡¸Ü‚ù pSxþq.x{ùµ¼Ka×ÏûïG¿÷¼ÞÀ÷Ý,üØø‘% B/„yÜåv0Â!TSiÈ{p'bW´éj“¦º ˆ¾äÎzYµg8êßì¹¶¥ Õ$õ(Ô¯™¿7œ—b =ªXwGú#wØôŸ6M(­ú1¨l^p'bÀP­vÄsà(NØÂvãÚ:Œ‡m À7K×ÉÅ2Û´ _ðç._ËÈjXÁí“ËÅg¾Ö´§¤ÆH÷ŽÇ¯›Þ1,mU\!Í‚Yc?rÞáã¿—¯·ÊJÉ“ ·Øä›Ï-–‹®Ãø¦€Û´¼'Ðã‚4@O ãÇ”«ûCz{@è„ÚqéÆêgà–Zò³B“b9Ñ¥°M4å# Q6M®ákI4w¥)cÊ)‡À—"ó|¿5›mqk(ªÛ°’šv&ööPFíKb¶säÁj“¯w¼”3´Iãèpj;€4ß®µ¹”o—zß1ˆ4y6aäÖ‰€–x¢Û6”áñ—Ò­ù˜SmbŠn•xÓî?í<則ž¬æ¤›FÎצ;ˆ¿ š¼”/.ëu£\±¦qŽ:ÇŠ‹ ã¸9|‘Fs™÷/8íée I´·gõ–%DŽîFÊ?ßȘO弄ã‚Eã³S4˜«OÂJθ»âJ.­”öÉ#ÌYe|4Àû ‹#“xêÄޢ݆åç¥(Ây“¤¼öíý$‹œW‚·¬å-NÕiú–fQö˧äU˜à4ºqº•ŽC¬&'LP>˜ïe8ŒR¹Øç[ÓÒ&n¤™¼!ü¦]<¾jþ*!Ð]ó_ØEó$)€Vrþ±„WìçÀ[G÷[ÃÔG÷Þ¨¿SÓ⮬ֿt»Ћ—:ìø[ãâ¡—ªÿÿÑûFÿè}KÿàšHðîµè“÷¯2ÞXÒN­ñ¤¥Y»¼=üËBÌsÖÑã8k!Nî¦XBÈ³Ž²ùÌ”ÎöëøG/s=/ëAZvÓ(bµ$÷ä·Ñ“ÿ+å` endstream endobj 162 0 obj << /Type /Page /Contents 163 0 R /Resources 161 0 R /MediaBox [0 0 595.276 841.89] /Parent 165 0 R /Annots [ 156 0 R 159 0 R ] >> endobj 156 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [313.102 243.922 320.076 254.762] /A << /S /GoTo /D (figure.1) >> >> endobj 159 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[0 1 0] /Rect [399.375 219.952 411.33 228.361] /A << /S /GoTo /D (cite.kim07) >> >> endobj 164 0 obj << /D [162 0 R /XYZ 89 770.89 null] >> endobj 161 0 obj << /Font << /F67 131 0 R /F8 108 0 R /F57 109 0 R >> /ProcSet [ /PDF /Text ] >> endobj 170 0 obj << /Length 438 /Filter /FlateDecode >> stream xÚRËnÛ0¼ë+x¤€Šá’z1Ç" ÐÞ èÖö XЏ–[†Ñ¿ï—nìA¤¸Üyp(R–R*ÓTªô•©É«Õ.{ËLI¡®bÃÕgÜ¢K…»o;RsöƒŸ÷­Â‘3eh?Áæ>²É`áœ7Dú¾vÙÝS«‚ µ«U÷¢‚UÎ’!–ìõS?å¤_ù]Ÿ<Žyá)hºÏ‹Ò7ºÛ¤š³úŒÆCꞀúµ~¿äü"óÂÅMb‹Ä+æéÈã‚õ‰ßÕÙIÂÒqÉ]ËZ®Ñ3ú¶Bq†häÍiAµÕû‹nm[PÌŸÿ€l€Íäâ—­,Hæ=¼ )÷S2p«ò»ûŽÛ!2¡ª%©‹|Ì£•p*(p°×yÂV#!ð|ë [`®üA:úãJò÷œ`X’“y­’6|#%éÇ~…€6âAŽ Àðnì¢þÿ øûê’x/1àà8N Dû11L6FŽqñEvúi2€°Ò|Ȫ’¬zHä¤ ðN¤b #²ºÕô^÷2­Ñ6‚"&ž/–òŸó7oKŽÊÎcm€~cïÅ@‹½ì±Ëþ–iÞ3 endstream endobj 169 0 obj << /Type /Page /Contents 170 0 R /Resources 168 0 R /MediaBox [0 0 595.276 841.89] /Parent 165 0 R >> endobj 157 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./wiring1.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 172 0 R /BBox [0 0 504 504] /Resources << /ProcSet [ /PDF /Text ] /Font << /F7 173 0 R>> /ExtGState << >>/ColorSpace << /sRGB 174 0 R >>>> /Length 4526 /Filter /FlateDecode >> stream xœí[Ë®%ÇqÜ߯襽iÕû±%!`ò%à…áÍŒmH´®› ý¾ã‘uι$ahmÌ‚3“§»ë™UÌ×ï¯|ýxý÷Ûüß•ÛÝRüÙf¿Ëã¯ÿùë_®¿¼ýæ§þ‡ï®ïßßÒ=F½^ÿ|ÿþŸðëì×_ßþõß®týû[¾~ÿ~|ËéNéúÇ·±îZÑú¸û¾>Þf½ó„¹î¯?¿Íy¯|åžîÝ`®r—³Ü3ÑwÛ0Û7Ìî^`ö»ší®&^bS{Þ›/Ï;/˜9e¾F{VÙíl{ÝÉÏç=¦ì¢çpO¶³lŒ´ø}ÛýîMíá3Úhx¼ô—÷=—†Óí’9cŽv©ýRÙ0'³·lŒ§ÈN~_/æ^ïÔd{±¿|o?Ÿ:í-­UÛüÙ6Ÿce[ {a|mÆ|ŽÝï=_ßo÷l¯íÕ»×—þZ¹kOËw)/ãméÎõe>usÙžó­Ë›wÖ£Îh/Ö«Ž{ä—õ„ÒËzWüõº°óxÙ¯Úb>±Ÿ´ûË~óýô‚Ø­?árº 0Áœã µ:m1í]ÀSoë b¬”t ÞîÂ}r€_˜ïo³¨+ìÛH×ÇõùùõÞ÷õ§_ñ¾Ÿ¾þ…½q[“™í_¥%ò¯¢I$ÍÌwÍêKþž’ú„hw]ü²6|z¤hYMMº;L,ï²ÉaÌ-sðå/ot |×€gtýñ–G!0üÃû7&±õƒt‡n}› 2[ìWØ6áknöÐÐŒýoUâ­ ü¥öÖ䦴Ñâ}l!H{Ë?w%å´Ñï*|îqï*»ùùæLds~%øKv²Û½’Û˲1þò쯤MÇåx´òø\Cvš²1ÿ©ñ %x^Kó«Iv¿ç—î²e—ëQrØ?ùÈíM¯Ür‡½1ðÍX²ý¥_<ŸcWûïãýlL?ÚKtËgä—ô2òËx/v¼®—ù=õu¾àñÑY¸…Û‹õjÂïs=a—ö²Þðª9^ö¶èþì½îu?aO±ßþ <ÀB^NOŸù>ð†ñ›˜Ÿß¼¶_ÏX/ãéà=}ò‡_Úïø"«GFŒ&øÙߨÞÃŘ>er A ƒ_̈qSŸjÑ>ŇZÜ)ìaLÌß sžï9pÍúYôr•­9Á9R×ûjÿ›×óúo^ÿÍë¿yý7¯ÿæõÿß½¾–Bwˆî|À¨»7®y­Øœ~áu%™U_¬¤¨"wZåê‘=Tìü«ïÊdhÓ\+Ú„c‚~¹kw†rš‹^ÏåàÞWÌÀ”kVø,V”˽dNºÈÈÎiê@b4ijŸ+Ò%àüÑrœœif?íDFÕ4H¤}HPÑ{÷Ë‹ëÅUæוÈ}˜ïÐôWæ*uå´61æÞ¢)$”\œpWš˜8f­•¯@+`~œ5L`¯÷çËX±ZžM©9?;jùcÌù÷sp‹™ŸShQ}‰ "á`búØ87åÅaú¿ŸK‡ì¿ÏçÂÂLû¹ìÈŸUkˆMÙ_¶Œfyn(L‘[l7›*O0<:2T0ŒÚž@˜k} 3òËa‹’K@‹c¨ÀX:9Ä'xÿÂ|ÇC˜-¬ÿ|\ŸŸ_|®h‡Ñ—}ÜCþPµ"E•lysß òÆÆÊ£³ÊÆ?d *eð[‚)Ÿ‘)%ïgÎE+ESÓ¨‰<S-y+K…œ®ÑÈœªC Ì"ÇL6÷‘¨V`Z":b^q €ÁÒÑOEóS|J_ÓÓ±ˆ.òˆHžNÇ 0¹pêmü”¦ÌÀ|Áþâ54¸À°SðÐ9ík¥(°½'üÏ«X0á+Ä@IƒÁ! ;¶dÂlE¨e(ALßÙ>žñt±K ®U¿v Î\>1Íc<€è^'JL.L•'ó”zÉ)d$PEsÖ¡´Ò$X¹œjˆ®jƒÝ¹L´+£/ëZ9@:¶?#–*(«2·¯œ³)†µ+Vs›· r›A5#–‹d2@„ ɺۣ  P±.7]0[T?¬ã¹€‰ó{ KˆEŒí¬§6,ßsö‚õŸ‹>åSÒâܼ­¬Ÿ‰²±é-«T(ùrØ6¥`–éÂb²™]lÓ2þÌ„ŸaÂeWK~ÀTÙ”&¦Cþ{äFÌ`+„çŠ5ÀËó~–.!Œýò¦Käíx!0³" ÒeÁ*5…Ûa6;V«Vi V!·ãßTé-H+) ³,)BXÚ…«½Ík[UÄ’”´wŠŒzŸ‘t¸”ççÛåëÏäTÌ;?b™µnƺBÕ¹¥lLç’lyŽ J–ûê•0Ú8ìï׈ñLÕ™é/^+H(á9ý#o)/ÚÏ©ìü>ñ3/:çrTÛ\¸4 1 !¼P©&}¿U×-¥˜>*ë·öòz4¸QjT]+À‰ðÙ€n¶×¦#pËrC²Èªe•³Ë(v憽ÇÀ  ªrr+UýÍ€…ç«{¿[•à(;R–V…¬å*IÚˆ}Dx·8«12!^›·íBª#\%c¨M1ŸJ%¾ÂÆÆ¡’´ÔªÀ]õÕuì-»÷_±ßåVKéä}˜µÙ œ]¦DÐAßgð’ÿb‹Î6Ä¡ÀÆðQ‹Ú>‡8Û[C}tï3ÍÈÌ¥¸p”îÄaŒ›t‡ $YÆ1L£ž%«=ªüüb)Â!N±î8‡WÈ!ÂaïÂpö·'yHê+Ã0‡‹õˆÃ2‚ñ±.Ì`’S Œ¸à¾äØÐb¦ -áUàÇN³ÎwЇÍP•éà¥Ä| UhoûEO ð3ÀI“ âØ‘9ú¯±Ö…¼ ×î¯ÛOZŠà‡MÙÄýéHï3¼ŠM hĬÞXj©ÆÓC>—%¤_8Ä/ ±YE¥‚õ_¤PÐɸg*,¿fªÇç3x †–Å7Q*¨=òd¦_EÔ$/ÒÏV9b0«=Óy+eålò´cÙÊÎ<„×”Ï,Ž·‚„7òðSSÈöƧŸ¯4¦¶M~§T¤‘ ù|;Íj`}Œ¯–X¯VÅÿµÔã÷•iƒCîÁöð1Y«šmûqU´£­8A»†=Å~ÇèmèxîÃf¡)ž£‰Ž)½´}[Ë?NaË„àÒ·èÚ:#Ã^8 §ì)ŠwNm€ã] $ ˆãÇv”!¢ö>%  ª›“(áÇ9ÔL™rHª ·æ}£`Ð>&ú=iÏvñqiõ¾¨#ůb <~ÄT”oÀ<¼Z¡ðD{Y$—¦Žóîû&z*P_¹‡ß¥-¿Ï ªm°â öuvùµ—|ñÑ¿ˆ&ý´GÉ9Àn$ðù!ý¦Móyã ÷%ol.„Üךvr"ò«¼§ûzüYyG™‘Ù±ÄH¿ÉÕK¿Y±>I›LÔvxŒñ¨˜'H@Ý×ÇÁ[Šñ¦¹Ä’Ùqä)äI¿Ïx+^– Þñq06ðP¶æ’ß$ÖqÔ/ðÀ|qfï?y< Õvwš—Bk3¿Çó}Ô/Ïé‘ÉB[š3T!ÓË=JDè<ÛJàƒ'¢¹mä9NÈkŠãâ&^¦ûºÒ¤üé¾Vç°Såógí«Èv¦Ð¤¾é®âwy:Wйè‡íd{3`Çh[‘T¥†µE Ô˜ÙË d‰9è!z®”iw#¤eQhmQ ¢ÂáŠaâʨˆ°´µW{h5@ZQHFMBÒ‚B2ª›‚BÒz[…U:êQ˜ˆtÌôÓÉÓ1Q¾¦‰°Nट70ÿ9ObÚ(*ØÍ²€^ ),`”Ûœ/€å¼6+¤P8ªÈX³" ÞóIºyAÄX!á¬H”(ÚnkSHÓ[fHà2¸HKi‹öv© ŒO'ËœÒû-ERÒp]\V{ÔÐÆ0 D¤^d8 O{pWþËm©=‰ˆËÕ™Jq†ÐÈ8¨eÐÞFƒý—(jR’ÐxãQDEÿeÇ’­L›0r¦KÝBt™á¡|¿F¨ÈL{X=JkÈÃ%L]0¬.¶¸°H\]4µGõåÚRŒŸj‘ëÇRÔ›Ì6ƒq|q‡¶ôý­KêP)2‡LáƒÅnŒÑM ¬s.å3*1³Ð6$+%:»°LU)l°°ˆàÄ]¦3[D6q×ôfÑX áB'3)§Ž%uÃÚL:–S·n¥%šô4K××›$vK]®·ê¹J‹ Ka¸À!ÕÔRÁ—Ê*±©å„g ö€Nê¶¢¥k"Œ²Gd£Ã‚&œ«g’ÈŸ1®Ã„&ÖNn05Ñlã€óÄ›"yjq>üyY¾'†1Ê¡b»ýõA³ ; QÙ§> éÔ·š’Ò8’˜o%Õ|6âÖO¡S‘”¶m•LYOœ¾%d95Ï-«¬zIãqëÞC0hAš<‰`m÷ gM'}Ü‚j#N°“¥Éé檊[ÌþäôJGèdÙr>Wåo #®ÂWWI©KØtò¤#ÛaÅaòg¶Ò¶åkU*oü¼Vâ,¦Ôÿpɇw°z€³ªìâ‹IÒ>*ÊðéRÊÀ ƒñ¦ª–&$TH—kþ;6:êýlÜœÒs®eçq”5®>‰vc?\b¾™£¾Ànõas¡1;챚åxî{FÄC7{TÝFž·\_éQýÎ:ÓãxÃIiŠ#¯7¡R:Å:ný£”‡…ÜË>ÀB¸{Ÿ»iK·±v Ðl¡}×ú–¶ß*+¬ÄÚnª8,ñʬ-fúê“A•V‰l¯¨ 쌓E¢m°ì)p’GÌ8‘!Àf‚‘G€ @Àß)©S`B†õ™&§}5>¬n§ÒÁ¾OصìljmÑц¥-s±þR1VÉ«“@ú(xùgæ»r±Ë÷Õú’é;g*îÓT6Ȭ±Ú<µ¿¥Ú_ fξ(2•‰©ÈÈ®föýÀ% )ªH%Œ´Ÿ· ¿¨À’HtJ,!× dÉD¹x[õ¼«@£/h#˜ Ó)À´á‚K ›r(/˜íIP÷SààYìþ>ë$G"Í8Œ˜¥êfŒ°j·Èµdˆp1ê$Èæ’#SÑéÔQ\ÂŒ{T“ÜÉT2…]ùþ4Hûš»úÖâÔ´›kØ?GH[íÕýiKBQñ…¢Ê>$ºÁ<ªÙÉ·Er ¶mËÏ#ÅÌ>P–ˆîa“})²wB¶HøôùU ÏSøm³Á@c—³O#(Rö¹©°l?NE»O¶-û‡ÒTÙÓ,ZFØ5NÆ-z¶N]Ïz|?§DÓ3ñIøp9ª‘¥øøE€2±È#?dóìš‹}"Ïa1gß;v¨i[uI¡Õ8›×÷[¶ÏÒ«d5×0Ÿˆ¶bJØÉkèÏeëý/ ÅhM ©B3dt!ªz,% MOÚ»”OžœCì ³¨á"‚ûäÅ Ö+±ÐsöÛŸg·_xŸ½þÉû±Ü¿t½þÉ;ë×UÅð{éºuŒ')ÚãL/Œ¯xuèØ4~ˆ »þîÓí]½êªø/¾³ÆˆVmðÕöúCŒÆß}ë×·ïø²S&Q£iüçêóê»MBŠ7+|¯ ,u6^iÓ'°ñmXn[oÇ/Eõ¢ómv‚Ñ_-½Ý54% W|ûiÜž ECÏëCÏ_ܵnÆšlÜû#­P´Åó¸Jß~ºX¡·ãò|ëa¶méíè;žÇ¸âÛOãö\k}\Šxüà­gÁ <`P°&ÉQ싱H§>OöwŸ—õª0dâ;£$Z­Õ‰>ýCŒÆß}+‡Ïÿ#ä»^oœ¿úNúÍï°×ÿy)¿M?œîª¬–}Óç‡ëï~÷_,ýðãÛoPÛÿçÇ Mw­j„_¿ÿõOýoýšÌV}Ë)»ï÷?}Íëת”D\J~üýŸ¿<>þÃÛÿºuò” endstream endobj 172 0 obj << /CreationDate (D:20150225101832) /ModDate (D:20150225101832) /Title (R Graphics Output) /Producer (R 3.1.2) /Creator (R) >> endobj 173 0 obj << /Type /Font /Subtype /Type1 /Name /F7 /BaseFont /Times-Roman /Encoding 175 0 R >> endobj 174 0 obj [/ICCBased 176 0 R] endobj 175 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus 96/quoteleft 144/dotlessi/grave/acute/circumflex/tilde/macron/breve/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron/space] >> endobj 176 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óû endstream endobj 158 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./wiring2.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 177 0 R /BBox [0 0 504 504] /Resources << /ProcSet [ /PDF /Text ] /Font << /F7 178 0 R>> /ExtGState << >>/ColorSpace << /sRGB 179 0 R >>>> /Length 3640 /Filter /FlateDecode >> stream xœZË®%GÜŸ¯è%lÚUYï­-Œd $sGbØÌÂÆ×xáß'Õçö[ˆ…g&OW×#+"32ÛùøæÈÇ÷Ç¿ßú¿#׳¦ýgíŒç_ÿùûñçãÇÇ?ýé÷__½<ÒÙ{9î¾|õGü:Úñóã/=Òñ·G>¾Áß?r:S:þðèó,娭œ³¯QÎ<`ö3÷ã‡ÇçÌ0ç™Ìg4˜ë\•f?ë:jÏg-0W:[ÀŒ³šõ,fÁNhŽsqpõàœðVÈ^Sv=;æîí,!{pÚUϱá–l7ÙØiÈŽ.»­z¾,{œ£ßÖËëSÛ™zùlKv²ËY»ì't¸’d7z¨ötÆ’ÝÏYå‹ð|Cû‡«ö|Ӿ°µm=ogŸÛžØ_«û<—mÄ}|¦Ûnó%ãm½ºÎžnû©ó¬ý¶ß:Î2oç©ý,÷óVø³ÞüQëžoû«nëÍŸ°£Þü]ƒ?¿Ýìšo÷;î÷ [Pºîvi7<Àîë .×rLØ]ÊoPÃæSz"ΦÁ¦8ú(o †§„¤ â8/§zG€_˜/Z ÷6Ûñz¼~¼lö}úéWØ÷Ó§¹š®už«›_F‰ø:tgÒÖ¶¬µÄ/®•´ÖJÛ4BÆð`°ò/«zŸrɨęLžc, ÖÌ¥d^|éƒz…Ý ìÒ¯õ‡G©é\å(X¥MÙÀ)X¦Ù^Á:“÷[°­ŽùF?S“=ÎÊñcÛ RN²Å¿b6ίCѾh=‰;¦-üqážmkX(ü~×üþ‡æãùËLç·õйd‡ŸW.ÄiÄ— !ð8ªëq¼hNÞáPL3§J5&䣢˜IW#Eɉ3šSœ1{ÆuÙSv¾Æ/ÞùtŽâüôƒ|V/ÛïONvˆõ±šw„ÈtO;ºmÞr ÎŽxcy¬Â£ÐVÖ  n™õB}UQÅša;%†w¤Y´åG…(sG•Àu…Ÿ¢V4£àl²«"#Á­0E×K2Ô!;„ lS(d=¾¿vЬ…ËšFi Kac5%‚ v’Ç*’âb¤`V¨i³<# áj’Ûh‡²hêŸq~À©¦éýæ Gb<Õ•² ÐnʺðPXsxý<”kÞ")ãª+Ç·eá@§f$wí§Éß5Oû?#‹1+G²¿3P¿0_ løkà|Qes)L<b¡µ­öóÊòVžUNÎgÂzxM¬Îp î·–nD>ØWÎtýsZƒdŸ`DO”‡¹wäð;g'm=MR¶uøäÀlu×ÅÂ/½HݤeSba¶Ÿ™`".t0³Á«lE«ðì´ £MÞÑ/I­ª+á`-²`Fe È‹Ú|äq\/Ü p ˜lKV‘ÀÅv¢Ã àéçÃÑ)ïì8=î¥ÀÝM8FXbô‡HæÅ"Ž86®Á¬àpUÑŸËš—Ø(Îcù^Å…x»y#YH:š§EÑ”Ë6?Oä—U6à„ë1zë9Ô#çƒÿ¶/ºšw€ ¨9¯»7Ùª ÈCà<œªõA4à<ÇG,«ßHâ-éÝÌËE¤D«âFÆýL\Æê<…È ø3K}™àñ¨›§ çÁµ'=·ÌȸÖ%œ(#Ho¯8"mf\£°›Q6žþ4Y!ÅAúºzÐíäûÌUr6ãÚ²â88“©ÖÓæ)üß«Æ3²ã}ülõÇ€CüÙêqxàÏVÏÒ(émµMàƒÃÆõ¼dÙ}üŠýòÀÎà‰Š ¥ÔE³ÊÔ}pß4«Å‹–¬¨ ¨G º4Äs¦|Æ”aeæ Î$( ‚1d zº$jÓr‚AºNYñXƒþð3ûhÒUÃ0[H£B+1=åeëã,¥™I©e * +7‚ኖ˅僋¤zÂy…_¦- Žiø k–HRÞËdmv>@ SpÝ%sÍÒÅÔ]NÕŸ| X³š·ƒùf#~IcÁ­ ÜÆ”bìÐ&i8–‡‚@I S±¡Œ¤žã®° §b¾P=U(k&T=#ŽçMG•Wº²à…r¡%½AΫ€÷€íàñ]¹gÍÅœ˜wŽ ¶×ŽÆ9)ÖeìÏ9-‰$ä’sèå±·ÆÊq;Åך³‚vn;ç°Òw3n2¹Ò¬Üm®[ɱ2­´óÎÁ°¹0¯N€”¹´;Ò(´£]v—mnf¿<8hÃ…ÃWÙŒ´c³9l›ÍОÐi´¥ã²Ã"b•Á¢;ÂA}VÓÁ仞YÉi³<âè¸òTð8KlE?¸vÐní¥A6ñ, Ä ±ãì„AU¯]óU…ð_[…†UéÚ¡˜ AP€pLWæÞ×.ã£)»x¡9É™•öà®xOÙ`5¨tÃJ%v’„©õt*60³j*ýxº•(4E0<-Vÿ¢_:æn¦œ|švm™$éÇr²%±ñÖØšŽ´IÆ&%THæL@MŽ 0öÕSÀiˆ.ÉU´È9²™ÃêgÁ1§kžÎaˆ[Ù%Re´ÃÅk!ʘ’]ªÑ·c"ñŒ(®Ý(=fAζ‹__è‚¶UŸBs>˜Ì¹gnøÒ»Ë,Ô´0u^¥ .ÆM¼mÁM%ˆ#´­?3!ÄÂeõ û²»lµÅè\àC~Šm ¯ííp«WYʸŒÛ.ëCX韼ŽÂÄç’+ó8Ìej‘)¼\v'|•ÉUœ+ FuYÙÜïûBá+Fh—íNô1Æ.{›J>é9߸ÊRÖ9Þ»£ñ,“»hDýæóº¿õÐÐS¯å« Rš›Ëpµù¨Ï\æµ>p³÷7UkŠÑnh#Ô[­] Cäg㲿ñò©·ªÇ+Š+bh=P(”¼P‰…(”ÜV`‰Ð4wÛ¯ j0Ô¹$Nµp;ø³ÒbwÁ~ã¸31âå ×ÝïµáçÉê÷³4@.»ÍËJˆB þ#_:v/åB¿U…N1²:Ç1‡£½rk'ïZ$bj¨+9ÜŸª'ÁfeS(oYÙ lShˆƒì@t’=ü´S5°í‘¶‰ÜÕ1° ¿Âó½iyæÁrh±nïjÈËÜÁá^¯§•J)UV» ë¾R6j’z§JýŒªCEšåÊ Ô†[R MïÒO*tKrîž„Óöšs¥êÃ0|³Ý_¡ã]¯¢®Àyy ÖɘˆïÇnS2‰së`½ssS]Á[u&£¶„²^ð£ÀV==¶.îÊõ¬Ÿµ}âŒë3óÚVCy¿¸Jx¡æ¼×Ÿnª‚Õ™´»0÷úHdØxM» źƒ:™Ö©2mýZ-…)Šèì»îÊÒJdë6l¼…ú®;™j›úNŸðW¡®nV3P¶®ÝEø‹]5$x…é–•mÍÿàvÕÜÓü€_cÿ%v5ª»¸›^”škwiçN²á.iv?(¹´ ÖÁá~’Ï¿Ô~¦uÛ3«#¶<¾SëÉN—]Þì ñîB?Ü/g¥îD6Ü~)÷jɸïjå5K˜;vÏ€ŸÌ®ž  Ý\ðî2 ÌŠðG‚ýùcHc’âãGuNxØP i>1CRÐH.®Ø.d°ÓBUÙö÷¶Tš+²¼íÒ]Y3ªÆñ |ü<Í¿¬‹è«Â°oæTW„’4¥“gVhv^­“­ƒwo§J÷"†ÍK碵Kçëâ4·Ý¬‹ó¥“‹Ç‹ë ån-Øf*¨·€mÖ¬Œ,I;d›©I$Ö˜;*´â¬ëSʧ¨4£îx =UÞ–Ù$4ÆŒk@tÈ—¢AèkíÒ,‰pGjÎ ‹É‚äâ}U} âÇí«ŠD¬GÇU}ŽdqNˆ`5\¾"uV¤®ÛÄ{ßz¨*Þ0Ûåm"ß3Õaqn§ OâîG°Oí²)©[K?îìRt“&0›ôñMv»Ø•Ä®Y.»ÝÙª‰¬’³ºTãê"-%ºç7u¹¦¿¡ íí²vÜÿä7/~ZNÇýO~‡>f…ôö­ùùCw’Hú.7ô[»Ÿ0 NÚ?ìp~ïÝ9 õürY¯÷ŠrôžÕ‡Öû{7~ïÝ^?=¾Ä`ÖKîì‘–Ðþ¯_B"’õÙnÒ™¡¹·ÅŘür>·d½ÞÝ–çöhÿ’ôËõnRûâšÛ–Fïµ÷ó½¯ýî»}û,ïòúöÃv×öÝݳ6ä´w~ß7r¿Ϫ¡þa»Ùï½óly^ð{¿{7ï®çš•Û7,ž_/ß~!6³º/üº5‹R c^Ö'¯Â×óý%g¿ûFï_šTËõnÝ] ÏmK£÷ÚþåÚ—ß}¿ož…ÿ—Ç—î_‘ïÜi›Q_|Û>>üãP›žÈtš´!?¼¿ùú_ÿŒß¾üîƒæþ_/«ÉÀ^…¾{òí—Ÿ¿kÿïÛ wH‡HÀˆSzù»Oùÿ}¹$5©õå¯éí¯~øø|ûÛÇ-CÎ endstream endobj 177 0 obj << /CreationDate (D:20150225101832) /ModDate (D:20150225101832) /Title (R Graphics Output) /Producer (R 3.1.2) /Creator (R) >> endobj 178 0 obj << /Type /Font /Subtype /Type1 /Name /F7 /BaseFont /Times-Roman /Encoding 180 0 R >> endobj 179 0 obj [/ICCBased 181 0 R] endobj 180 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus 96/quoteleft 144/dotlessi/grave/acute/circumflex/tilde/macron/breve/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron/space] >> endobj 181 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óû endstream endobj 171 0 obj << /D [169 0 R /XYZ 89 770.89 null] >> endobj 166 0 obj << /D [169 0 R /XYZ 133.368 213.153 null] >> endobj 168 0 obj << /Font << /F8 108 0 R >> /XObject << /Im1 157 0 R /Im2 158 0 R >> /ProcSet [ /PDF /Text ] >> endobj 184 0 obj << /Length 2407 /Filter /FlateDecode >> stream xÚåYKsãÆ¾ï¯`¹|+$Œ÷ÕuUv½ÊÓ.——)â ”‘„ Z+©ü÷L¿f ¸’RÊ) ÀLOwOO÷×=Íw«7_]³Ò/³(›­¶³2˜åQìY:[mfóV·óЫç˸ȽOyïàßÁüÝÀ`áµ[š<š!EÛÁëºÂ¦àûdþÖð,Ì”cJ‹ñû¾‚ŽîX^; õøn@|Mò´'ʸ3¯Žð̈?kv=_F™×Yl»§aÙÇ0¼9±Ê,$ôçË,ȼŸæEbÆþ¾úÓ,˜-ÃÐ/S¶Óº‘yàõ5/Ëy[¨ƒ™Ð¹¨ð>²- l+Ø[_õNÌ|Çû3Uç–hŸô"qÁl«ª£ØÉhž¦…÷fölÚ]Õ9ZØÎWWi®¼ ÊK? K³IÜðÿÖòAnæ$žßòû=?jþÀëþîIœö¹0Hü$(DÚl®ì¥v݃™!‰ý2ʇ§@&4ŠÔ«èqf«ö5¸áw¾áÜhX :ÖõÞkc½á•ö›ûQ*ÂdŸà' oŒ—ætaùøü„ ñB un\£h”‹BÕ˜ïæDñh„šfaç»!ïq3´‚Ãí¡Ÿ•ÅÐþ M­<»cömȘC3vF⟈pŸðÀÂÏ‹x| kôW2rÏçi‘…¿¿gZxÿÄô¢ÇÏAÐ#œ>–$·N6h@ÈCív…¾Ñ`ÏÂ;íXXé~Çžjf·¬ÕAÔj Ý,â›y¯èqƒ–àÕ w# ä¿Ìû„¢OtO«€C×)ÖíÏ*Îü(‹†g¥ñ¨Ì<Á›û*lÆÈÑI*“IH»ä9¡_[@`ßf‡;"D`-?Ö½M½í™©Jž»#hg dÓy¸ÏÛpdó]cXW¨^Bù¦½Ö× û?-0Æ}¼÷§ðþ=I@”Ñ&>Gf€ëÇâx`gó‰º Hm&Œ#rr >uÖÅqI5aùIdëvrpvÜ ?õŽzåª üÓ·LSóºÃgƒèµÚúÖf*š_86ìæå‰*zÆÒÙü½ÚíÂÁï/ËZéÙ²^õóŽà HŽφ8z?cõ»¸TÁKî®IСô’JŽãÊ;œ¬èAib­ÝÕŒe0>8¥‹lËÑ<×(Ona8$Xïgèè"UseÝ¡üïìÁãÐ$>á D/ˆp™Á ^±ùo£IÔÈ•„HtwßÐÈ´¸8ãëVÚò•PÄ @daºKé»:lhÅ{8€ëª£<[)#5ä³é„¤¸š)ܾE‰f.Eûô8!®âÆ€+ö§Lõœ¼ P8‘Ñ^†OGãyMœLE†O5#¸G)NRàrKC =n¬Õ:'¢p®æxþAɰ°y Ûglq뻈¸ö#ëÌî%CR؆4ôž_ãй’+‰?•RíYÎXö‚¡2M3ÊFC峋ʿu@ºu˜7TÖâ̟ܿ@â¿Íß7Sš0Ç´¡6/22ðó„,8ͺÅg‚ƒç(0´Ð+îR¹Ä8fFá¦sMbî_±½AØÆSZšç‰{CÔÆÁ|ANK]•– Ugo¶g0pÄU§Ü ¶yàò T2±¯Y²0k袃x-Ѓiå 0 òL^*öû¯çË2 0b¨ÿ3‚ž%[càûã—X“B~%Êó÷¥Z쉦MéÇa$çp!/–‘JPdlNU0UÑ£ç2Þ1‹–áÀÀH360 Zà d6‰ÿ8¿Íõ%Ýú+¬Ã êÖð–ÞgÅÎ@åþѶyU§@²)”ñ÷ƒ,É-™P® ÕfãÖýxzÑM.‡Vúµ!u¹ØQ™ëüǵã+ûÆZß ùûQ5¬ëÏ”Þaš‡%*rb—„½eô¸z>Ç—^´¤ÅT^HiUƒ8ý…ŸÊ*o™›¯x²€v':'ôwS"UôP¥ù¦{4Œ‡A@/Gw‚øÝ#ÇŒÈýÞ±{€‡‡Uºmôñ5?1€2ãµk¾­OÊËætOFáâUñêÁÍHýdÏüuLRÈLýâC-CÓÓñ-ã""„9Òo3÷0.—6 ˇyÊýîSíÀw_€Pwå ø‹".Z[èÕ/žÒé‘_öl¢µu”¥{úµO~ °÷PЫzÛ•Ý»ÖõY!»ugžÏü¼;enôÄæÆvSvœ_Æþú²KÒÓœqÚyª¥ó´Ó_˜^<¯¡s§$éKÈOwkþOše¯Ò{¶)/_©ÿÛYPÀ«_Ä©2xÆeüp¯*«oiíh|ýÀW®+wâçC¿£¡{^”;Š SDn§2|ë®eûålÅt&æÝy™;ÊÙ2ý¢`3•@÷æÃêÍ‹h'K endstream endobj 183 0 obj << /Type /Page /Contents 184 0 R /Resources 182 0 R /MediaBox [0 0 595.276 841.89] /Parent 165 0 R /Annots [ 160 0 R ] >> endobj 160 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [484.382 720.136 491.356 730.976] /A << /S /GoTo /D (figure.1) >> >> endobj 185 0 obj << /D [183 0 R /XYZ 89 770.89 null] >> endobj 182 0 obj << /Font << /F8 108 0 R /F57 109 0 R /F67 131 0 R >> /ProcSet [ /PDF /Text ] >> endobj 188 0 obj << /Length 1767 /Filter /FlateDecode >> stream xÚåZKsãD¾ï¯ð ;¬µšÑ{‹Pµ†¤  LqŠ­Ä®ÄVä„-ŠÿN¿FÉRâppíA‘4ÓÓÓóu÷×-WfóWo΃h”8I¨ÃÑür”¸£H)G©Ñ|9úm<Ÿ¨qW ×®®5\•ÜsŸÚ_ÂãNÄ{"¼ôíäù·#w4Õž“Èï`üFä3Ùn+[w4GÛT/iQ-–“Vz½;¶Íž_ÁãGQòµ} @* >G[ˆÖòí ÁM~wn]m0¬àö7\8ÏÿÀõ%/–E™¢6Í ×è°±=p‚Ç‹!Pyò `¾îŒÉØ-\®¨GfÖv‚²áZW÷}èz¾óŽÆwg‚êùÿ|h" ë—wÇè»ãdµ³CXíìP'ÚaÑÃnŸ`¢tÃúQ¬ßý¬Mr,E‰ íñ•8Ç~=(ûÞrN'¡Ju€Ìs®'ÅHЉ7|ap»ì4øàé>Àb‡}rÀø³À=®´kHoò5/Ðm¼p;yfU;ù?“îø‰¹›½o‡ø£-x`œÌþ¯ÿè06¥g°ø5BbûPn ÁrNõ¼»ÌBþªl½yÓ/üDÿ¾DSs€ÿ‡šõÀ¼zâüÉÀü'Ú Ïi†gÅË!±Ñ“ëÏ®woÎcë·³¶#~ 8Ô¡M8!xå +öÁÆ©ç„â*Ãg0q”ÚàÃÅdªÃqVð\~ÉòW&Ù—/U¸Ñ&ãwôeVÈ`Vòàš=…*K³à†®ZG.Ë7ýs¨5CÄó-îR‹ŠUW¼XBöVïñd9Š_󔉨t3í£ÌäõÕn>g2Üpü>G…÷¨:»£¿ùêû°£˜àk—-F[wœS_%ãE¾ÉYàL^Ê9­yDá’¼@Ä®ðÏÀ¡1Ší½ã)cã¯h¯h%ŸX; …iÕ~—éË:ÙêL°{R…BÃOZ ûCVÁTyBŒª‡µÍmˆ§ˆ«¶­ TDZæ}Ÿ·W©kö§Ð³„­ïº홉eÄÏGüÈt˜^Kú*¦Ãû°}L cwj¥x“ŠH&ῺÅUu=¬‹!VÜVìl¥loû‘“ÄunöãAi'òë8N˺”¯¥@_—¼pQ3›8a+…¯d3 ¹XÙw:IäÅ´™òj–ç„*6I9AAmIu£†Šy|êÅ¡ãâ–Ç:0zPOg9›}#Mƒ½ØÂ‘$vwü ²ŽÖu1ƒéM)åIû5™næâF¸E:³j)gŽYõ«lÛ c}±QËîq7MŽa·¦²€8\kSj~ èR/Hú ñ^ ™ LHZ ìUU [% ×° é†+ eé>k:¾Lü½•¸Ô4¤?J÷÷¡‡§]ˆ¶:CŒÃ®pÅ®±Gºµ{ÃF LýÏQO–ÍÂUfNUȲݟB5¤Gµ‘[“€96d±/fõ”¡È š*4“2w}¨ÑØ;µï:^7eÀ43eí5ØU;سbñ‚T’d|ŽÍ…±iùC^ݯ[Ê œ0ôú+$oðH‘ÖR(R%Öõ$b˜MR’=ðG~Yp ïL‡È¿x3î»ZÉð†ÜAg©x1äûÆs¡ÈëvjP·¡÷òàÛ%?@‡w+WQŽ×`zÚj˜GbþA;ïǼIûC¦ùj2ì<7ÊäýgKn-ÏeóÙÒÿ ¡ÜØñ#ƒò"¥‚1Ò¥!òˆkkj¤a-kR7Þÿ@¡VéGÝ5§},„_höšz#bhªà×SrMeêKÔ4 ðœs>aýœ㟿°0Õ%Jjƒ³åIJéQÞJüv¼¡AZE,-Ÿke/Èõgâ´ïôÙ®[È¡à…õ©z#s¯û>f>ŸLUÉÃN6Úì´õÛEOAèÕö½hHE‹aÜÌ:ÞVŽþ´]n-;m.¿èü¸`ÿ¿Çiý»Ìcöçu?É»|'÷; ëS±Ó±¿è÷»i7t½J8Qàó^Š>^Í_ý ‚Á$ endstream endobj 187 0 obj << /Type /Page /Contents 188 0 R /Resources 186 0 R /MediaBox [0 0 595.276 841.89] /Parent 165 0 R >> endobj 189 0 obj << /D [187 0 R /XYZ 89 770.89 null] >> endobj 186 0 obj << /Font << /F57 109 0 R /F8 108 0 R /F62 119 0 R /F11 115 0 R /F10 118 0 R /F67 131 0 R >> /ProcSet [ /PDF /Text ] >> endobj 192 0 obj << /Length 1766 /Filter /FlateDecode >> stream xÚÕYKoÛF¾çWA”k1\¾e4ìÄAZ´F‘¨§$Z[°E "m')úß;¯å®Hʶ¹€´†ÃÙÙÙofvgÖ'£¯Þ¥½¡;Œý¸7šõ†^/ñ׋£ÞhÒûä”ËþÀ鸯œ9<Ÿ=Ná·ìÂ(u* /³ _ùÙ¸ï'Î%3.¦9°¦+ä£ätÂ|¤ç d°–G®æÄ¨UÏ y위X<þ4Cf±`½óH²B;îú~ê«+þ|w©­‘y‹ÜÐd$¾OŠÅ5ü|ã1dÚ ÿeô{Ïë ”r‡‘ ƒB‹YY¨WŒ/‘YAèd«Ê~ÆHg¨ãú‹\áá)ðÄ!¯Ð|­zBßpQ93>{‘‡šheÅöûŒn½‚Ðñ@N1Y¬äÅnI9¡ñþ,H‚¿´ÖÓ=û]®hå¸ýAê †)švÁ&ñ´àn8§ADxžþ ÀŒ¡Dz%^¯nÐL þ8'ä€ôÑ:;¡Ï¹Æ4à$6%ç-(¬2°ôÕ»(±2Á÷S7òÁ|1› ¨íšLM#^,Y£Zqâ¦V¢ÐeØžràc7H# ”«Â„%í"?pJË“*ÊùIœ·ƒukë b7 ˜Úw‡aÌSÙCxн_Ø ÍòÛ¬ Í Û¬¨ÍŠÛ¬¤ÍJÛ¬a›…¦zÄÆàèUÙ!ø†’¢ž·Žjèœ}ܨ(QOIûÞ0º#7>ËÀæ8ÙÛdÞ®ÆœŠ“ßA* «toŒí²ÓÿÙe8—Z3*nuü4F*j¤–â¶dÝmÛL°ß ~#;ñX óÖìŒÂþ »¤]ãÉcJ/â~£þ–]Ñz_ogOä»eâ‰Ä˜Ú=í·7hýPõäÀ’³òýTW ‡`›¤)¤çCs-§ã"žŠ+TÒAŠÕI‘O¤ ‰Šk²À ¸Ú•¢¾t–2ÙZÁ!:²åRв¹WÈÕu ºEº¬Oy:⡬ ¡¢9æ·ý(†2æÆˆ3þUüƒ–SZT¼(6 ïòåÃuàœ C,ãËë ¢ —®Ú `’ðëñÏ„J«¢2%=rEÁU«Ì…»¸õd9¢…9•t0êìÕq=¿ p¨Ër™E{ Û|—Ù\Ò¤„ïZ™d;­§;´2+¥Ä4¾´jP%‰’¹)e¥-pkå„lÊÊGQí‚L9Tº^Ôq=^+㲕¬Ew#gºZ†çNäQæŠúªè©foe“ò×B='6W78ÑØÂgà§âþ²à—ç^JêP6”üÁÊ|¥°²Z 2[Û<תgò›:?i‘7:‰QÀr¢Ý¬9‘)ž¹w(VF{·˜Ö½ . ‰;3d…d ‹\Ó´Ic†L„ürNþà^I”üF¥[QÓÜKpQçÌ›poªj1¶t¥!<¤sKÔ±&ÅjÊsUÜ]Ö‹Õ–Pž5ÅvÌ“EVY ÊWΗ¹´f´­-3sÀ©ÁÙ¬Çdç×Ö–\nrì\„òZüût=åäu¢çÈDI© 3BÅ:š0¯³ûھâa¿P>MÿÖDÿIúÄæ*pkÁåz6[Qû ž55Û#2Kú»Œé,•÷Ö)Ü&y¶…µE^ÊŠ1l^ÃóR¶J-“YÛíË{§ŽiÎxK8äà× Šô8“Œ¸g?¤ï:#‘ÖwZ)«¢;-äŸ#ë›d˜¾«ãm‹ë4‚ô¢™&סïBß¹ÇûŽÐH[a¶ÊÓJßÃuå””»á$¯½ÖŒž=‡/'ÔCA‹!õ§F¥åÔ ±\ÌáíH«Ÿ¡$† y0pÏ- +‰ƒ¹Ð/Ô¾½Ûyæ]Æé4Ú°ƒ_·ƒµQõÿ¥KkFí™ëº3VŒy†Rˆ˜Éõ†Í0¡Ïw°—Ì’f É Ë±S{Çö¡ôSlöoòýÖ²áÖ\ow«‘¤¹¯-{Ëcå6 Ië._·)MÖ±9òä&AK4úx›-]4²6ô°ÍiNÖ LF²½çÎ[Dºfg¹•ÚÍ;ê€ýX ®¬˜ÍqÊn iª}ZT‹q0uø¸ÓÛ-\þÚì‹3³™5µÉ}ý?rSŠô¿ðHÞÉ ÌÊŠü#–ðÉû¼°ý ÑyÔu¥gåÌã°> endobj 193 0 obj << /D [191 0 R /XYZ 89 770.89 null] >> endobj 190 0 obj << /Font << /F8 108 0 R /F57 109 0 R /F67 131 0 R >> /ProcSet [ /PDF /Text ] >> endobj 199 0 obj << /Length 2220 /Filter /FlateDecode >> stream xÚåYKoÛF¾çW=I‚ÍðMªh ØiÒ¦rHÜS´H[ª%Ñ)»FÑÿÞy’Kj%[‰[$È"¹;Üç73«Ó³'O_FÉ`âLb?œ] &î ñÇ£ÁY>x?|>ò†wpMáz1:Žü`øŒo?ÀÈ\ÜÈ…Û[¸Îá:"BoèÃõ’§=¸ý ’yrÇë¸~äÅd‘®µ\¥Ü¿g W×úxöëÀ{ž3‰eÒ$üé~f]ƒéÏb4:ñ˜×˜ZÀU+¬àÊdl× ÍÑJµdBV ‰’–4N¤(çFȦ[$øiCÆìÒë¥ð±j÷4µtBBÝ£ó“OqŒ£ž=NŒ±\Æ|1Žÿ&ëàø/†'í°™ÚÍë½ã},WÿÝ5ÞÍñqoÌÝ1ÿù>òõ8ɵ˜'Ùå -ÁÙæ®SÌÄj8„gq„‡^†Pÿ‰2>!BLEìSÈxÇû—«ŒèØé¶l¡î>P!ßR˜Û|mg>è>а§öýÆò­ n{õËDÔ­ƒ ÖûäAcÂéxGŽíÏ»Øû_ašÄâ c‹v)Â{,E|eè±+#Y=ÜN| jÐòåxGEéíyÛ]ÃéCº†Óûl{``zU¼=}™q?ê@!A oG~Š¢ãóeAz “…r÷‡%/îøÅs™¸RRÔr!«ÍÙ H‡ Ìæ¬yœB dUAò)wÆzÇùµ6¥Ý*5ý†ŒYºˆŽX¬‘kb½\_ñ~ÆVKœ€áw&#åZwJò‘r‰8º]a‹™•Å e ZñOY¸‡ õoÔé6SÑh_"ܽqÏ•Ól Ö SÞøìú1…5‘!Ÿå%>N³ÎEê¨ ?Ç-.+PmN€¡cø˜¬ƒó›µ DÖnËëQ2i¨qn ^š«YŸH•‰òð™d-i±óE1S® y¸`:úøº,A~"ÀàX£ÊÿDÎ8øüd(³·øœáÏ]»?¬i1Žð΀R®% wM:Þ•¦ =ÉHÆÄÕoØLŒH€|ã=ãI|¹‘Õ³šü# M†+rñÀ„<œ:tÑÃù{F©æQF—HOöLJ/WdkEËKMqÍlãK¦Ž#7£H,Òz ç2ðÁõ2¥ZÑ¢¹5G,[>áð¦È¬ØŸÏñË;~ήUËw¦§©ãã÷Äy-žM®fø™™#“Ø1×ÿC¾C÷À¹eA8AKõv£5 &»‹ir£%½†%ÙHù›±Õ­áòƒd X9¾ÂäÄIã€U…˜í#PŸŸ“â(WkÈWµ*L‘<¤!“£@úŠ”kÅd×€âÍÎF‹%û|¥ Í%¶ñƒÂZÑàš’A/ðçE'ˆè~Z²Ñù2‚®¢WÃû•«œ7ª…Áœé% ,çmmÂ_ ¡®¦âŸ!£‰•kI(»CŸ`±‰XÈ’Ø«an¾â;&”r‰.‘‡U¥LhØË™"æ¼)Ap—> ª*ÉlÀ´?nªû2Já#ûå†sÚà\<º`rƒ›KBI 3ÎËü=±T›J³C˜‹Yc;­+AÐ9<#'J'°}z*UF)ü½Ñ”¹íÏÁĉÜ@?”«P¥ãOáév‘Mer1W•ÞáT<¼éÁrü¤_£h6Ã9tqüd! F#q%OË¢ïùNÒ°øf[†‰ãBµ*óÇ–'ð%x½½là¡ì +dù=ÜJ)ˆp ZoA5VuPþ¾}· ú¶U²”DÛ‡¢V]ØÓ"íz#ŠcèÁ'ròՇ鴥ÔS4_îܽ޻¿ãÝ3îrŠÓ@”ìF€Ãê*¿I¿¬òòm¨GËšø F}7RuÍåuÉå5›g3D×ÖäÅ9O©3-È›£áù¦]€œ˜êo%Z†[{*Û.nçè» ûÚÒìRÍ7cIrå…‰6'÷“f…²„´‚HÔ…\‘~zïÎxˆ%bK<ÄfiÀâ'פ™¬á¼X[LìE±U›šªó^f.I 4Ñ–™¡LKâ¦6g¢ú$éœg(çm©uÂØ(š—dÁ«âA_O&‚­li´r™R`«-™Æ1À•꥚¢ç¶±…ÛòÉB/†Æ7ꂘaMÂQ5ÿ—v5kPþYuOÖÚÜr¸IõfS ßw®üó,ké¶ îÓžj ­DžO¥“9 ‘¯ìF—L”Ü]È&K!£3±l©§bE%câ9Ašô”½î`Ú¤I–arëå™qüÉ õÒ¬ ã=¸÷%¥ßžzÃûØ?ùNþž˜ sz¼ò»ü ¼Z{‘è»2à|ÇЂ‡®@™ç#á“gOþ6ÌH endstream endobj 198 0 obj << /Type /Page /Contents 199 0 R /Resources 197 0 R /MediaBox [0 0 595.276 841.89] /Parent 165 0 R /Annots [ 194 0 R 195 0 R ] >> endobj 194 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[0 1 0] /Rect [455.613 311.185 462.587 319.594] /A << /S /GoTo /D (cite.kauffman69) >> >> endobj 195 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[0 1 0] /Rect [466.314 311.185 478.269 319.594] /A << /S /GoTo /D (cite.kauffman93) >> >> endobj 200 0 obj << /D [198 0 R /XYZ 89 770.89 null] >> endobj 18 0 obj << /D [198 0 R /XYZ 90 370.473 null] >> endobj 197 0 obj << /Font << /F57 109 0 R /F8 108 0 R /F45 106 0 R /F11 115 0 R /F67 131 0 R >> /ProcSet [ /PDF /Text ] >> endobj 208 0 obj << /Length 2765 /Filter /FlateDecode >> stream xÚÕÙ®ã¶õ}¾â"@­íƒ¶À$h‚´À<´}è$xmyÉØ–+És{çë{V’²eÏ™¢éƒm.‡äÙx6úëÇW_~[?˜…)Óòáqý`â‡*ÍqY<<®ÞF«Y5~uðuØÁ×{ýlžÅI„3Û†ÛÇYZEg„ÂÆÓlž–¼Š`Ó¨]3íq‚/„xlÓø]SX›ÖÑ Ï¬p‹;>ëá†z?+ÊÈîÏ:khwíá·~i÷Ÿ95Ô£}þÑÌØr…çô8€Gcçé,Øi öÚÉðµ˜ýøøç‡øaž$ Sß^/—‹;¬B¼Ó˜6j}s‹û"þ‰!nOR>ÉÑIô;\š“¡ß¼NÁ-ô;Å–P…éµlr\3,˜%¾î÷Ø©£-±ú=  ái˨öx 1qÏã7ÄMs$jøUÊO*js¢FR&8Glžäx6þ¬QBÏØ.Rq‡](ÅÕxÀÒÏôØÒÑ$#ÅÒîQ]_˜ºê?]}Û“Œˆ¿óÔ˜E‘§c62É²Ì ¤ê™X5øõVmà@x B¾9ò¬€w˜à%pp— ÀìqÅ÷J¸à#7ÈÁ5vÁ ,C–ƒÞ€%7IÂýq6/ÒŒ­7ßFìþ-"772£iþ_¥Ï×m ï |þ"¿ª¹Ï2{¼ƒÏqËÒ? Ý„O̶ O~'ÙÚ«.Ê–ì'€ _<‚ƒS †ù‚M®KÙÂ\Yv²À*ªTlžaé ÈégWÛ½ÃñZ#kLÍHwRsÏdáô뜊)½Þ3p˜€Ð =9£DJƒk<äd1¢¾õl0ÞñY¯ûvÊ‘EøÉ.ƒ+Ç—@uc·Ô½`ômÊnržçØCõq¬Èä–i?P÷˜‰®†üeÐ åq¤sÔZ³f¼0ËJ¬…#×̺ "ðPÞ·ƒÊä5Sÿ=™”½¶ÉØ+ö‚¶ÉÕ õ½:ð½pÛxêLÕû‡8)ÎŒƒÜoÛŽ—ujæ·~̺í’æõúõY»EœRe6l~¶,x~ž‘¡ódžÌË´ˆ5¼vøuhg>®½À…}, Z‹¯Õp«mßܼXÄu¢.ÁYP z6M >Ý&¤Í<Æ&;+D?Vü?Š>–UjÇÎDx’Û.À„ötÜ‘D_Mæ¹2OIýk6Ïwÿ·³yRVeuaµïA: '–Ç˃Ǿ»CZ§†ÿi¤'¼f%s÷1¹¯q|BL:žD|Š»n$ŸØ §n¨ŽyF¦7ÏÌ KFrÿ°ù¼ORãÇuadÝV‘%…o:ºuánÂd¡¦4ÕcÒó1ÿ¬9‡á݉gg –a¤*~3F@.Ä„.r> ',ëkØÇ€Ú¶PgÒ±ïÔy1“"°O¼žð1@ y•ƒÙÂjˆ‹z…±}ƒ1& B¹Î^Î)Ó.6ë%Ð_ 8`‘;¼wºX a&9‰$g9åï”ÊfløŽèîꛫy¶ù÷Œ£ù½r™bq¦iU]kù§lk%^鎋+$þ™fš?â2H"œ–öÎ[ƒ±M/\N aßÐÅ ýò!@(¯ã€ ŸpO¸!S-rS«²ªª`] Jˆ¹#0$DæeÍ´ÒÞ”…u àªÿ:á:‚¨…(+¶|-εúè¼,£þE˸סgp¬QÔ|ÕyE÷ †—–ó7\CLàê%CBÝÇ•X ²í¹átÚ'²'_¤žãíÀö(̫˫ZÎS‹[e(^ZIè:+©éî Õ"iÜáôKJ.d´Th:jÂA:ƒ8hb¶Fë©‹–rPÚŽÅA)Ó‹]µŠPâMQåÖ éM¨Ác§#&à*Çå'®½VnEi×××êWâù-1²nÆïS“û´¤úS×^ЫJoÍ›FëͬHA¼¤{ 4bìôÊ:…Ý Ñæ“¯,\ÅÕ5”èqiȳIÀpY®Ac$2WŒ8@SߺX3‚³øò|Ö€€CaB—ãëáÃB¾¸Dã'ÜÛ, na†µ°Ö%CT, Ív`ЉJvj¸­ä«¤\1 æváeÀS¹æYPr G.ÃìÖJѦo“¢1 íulWdè¬\–kKæÔßp{ ¼²ª¼¼.a‚)®¬AÃWÖ såW<~ÖŠ¬SU£¥b£Ž`»½7לŒöŽ=É[~÷:óÊ’zQ˜4,ÀÝK&¾ ’ 뼑(µ#Æ%Ó!ò\×X‰®QLÌ"+ªOÅPÓ™>[}.Ì“¬XT™K5'“¸¤À,®þH‡ÉÔ¯9“«R“|Z&GŸ3“û\:xã_’ñ]n:!ÝôÿYºåÿPº¿ôþþ÷¤~7ÏÇÚ_Z¤a“ËèC‹ìf퇖©‰áÄÑÏiàIK_¹N‘^dAÞàAœaxÿó—Ó @T³ÅQŽ}”<&ŒÇha;UÚËL¹¨}Z4 IÄîA–ŒDˆÑMŠuÛ0^À¡ ;¾vºrÅìž'lÏЖ»'­Jr¨I‘6Mc‰<¬ôéFüCE‡³¯3ãšÁ†‚ NËÅgö൤4òÁ#Œkê—üËóEiÜ Y `ÿt§xµ×ÐA,Á5›o;c9`ÄíQVä ë‡|’˜ÊUZ¹{®¡Œ–[µ:ñŠ1]@GW9‡™Üœ¬=ÀLv3ÂU½xŒZ‘àà¿ã#ônÁÈcEl(æ~«ºùêõZA|r¤qŒ8œO}º¹«v…ù½’IN!æäÓ¸{Ê9°”Jƒ{à ‹V&¨Ü›Û‘dnn–¯±¬dòèï³Zž9†s¬ ¤ú %&¥!«Œs–»®¥(R1‚¸‘ƒÀ"¯%Øs •d–?©uÀ©¿~;¿äN‰¯(òè QO‰ª¼#‹êœÞÈ+Ÿî<ÙÚ„£é[3 þíÕ”QA$£´·Ôzœ{%Ã=‡K4Ùµ×q•µ ÿöhYHõÀUpaþÖ¿6jù7»§!¤+Z ™¯åt²öpò†Gwž_ ºmRp®¬îZI‰/`™ß|·%9$ò2ìrJX …jïõÁ°,+©f³Ù²aÿ\@þòÃò'By\ôÏžeΦԺäÓ9,T¢¬¢¥ùð”L(vΩe{öön"~txüé*à g<þ’”ÅѰe Žõïiþáb©Šr!•±±„ªžzÖƒFlÈ’ Ì¦%Ä+¨¡áý\(Êÿèè+R`½IOºQ/{0l?zJ¾´ÂÛm Ò¸\‰ÆÉ¢„±0ÉpòÕŸ_ýÍÚk° endstream endobj 207 0 obj << /Type /Page /Contents 208 0 R /Resources 206 0 R /MediaBox [0 0 595.276 841.89] /Parent 210 0 R /Annots [ 196 0 R 203 0 R 204 0 R ] >> endobj 196 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[0 1 0] /Rect [501.503 722.069 508.477 730.478] /A << /S /GoTo /D (cite.aldana03) >> >> endobj 203 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[0 1 0] /Rect [164.25 614.473 171.224 622.881] /A << /S /GoTo /D (cite.aldana03_2) >> >> endobj 204 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[0 1 0] /Rect [435.314 457.063 442.288 465.471] /A << /S /GoTo /D (cite.kauffman04) >> >> endobj 209 0 obj << /D [207 0 R /XYZ 89 770.89 null] >> endobj 206 0 obj << /Font << /F8 108 0 R /F57 109 0 R /F67 131 0 R /F62 119 0 R >> /ProcSet [ /PDF /Text ] >> endobj 216 0 obj << /Length 2853 /Filter /FlateDecode >> stream xÚÍZYã¸~Ÿ_a$ÀB´µE]A²@fw';™@ÒA6ƒ@m«ÝFÛRG²»§w±ÿ=uñE»³¹Û"Y$‹Å:¾*ùíÍ›ÏßU‹:® U,nîu²(U'E¾¸Y/¾6mw•FíõÕ2ËŠèž|ΣuµTeÔB×È£]/C«+¸‡¦Û´ÜÍFºî}¾ý-©{ãñÜ^ÚðœÄT‘Ö´Ê Ç<Ê&”•GéÛÉ9ÇÙí2ÃØÊÁ êôZ¯Ï&%Ó¾–>^ÖâyKËû7ÜȪ/nÿw0f‚|Œ0ñÑÖ û_YMÙÕäX´ÚgÐúìÌ­è2Íÿ‹çùâ?|ž‹úžEiôÝ‹+¯û Ï!Ñ£óEÔÜ_tQx1ñê »S›Ÿ_Áç·ðù|¾þ'Ìù‡Kƒ¯ìw#Rÿ󹽦®ïöåÕyWþMkv¼fÚÜ÷ûªˆ³º€9D;·ÄÙꪎó$ó'`˜Ñ)Å)­è(:8ö ;“h0á1Ðï†'JÀ£gË€85ìCfšÁµ h˜y¡¥9PÌGåÜN¢ 7·Æ¯#$Òâæ!±TE¬R{Ì©fÎe¢cU…dâ­7®íÑJvòϧšBLK7žçá:‰-âÉ;-ƒ¡¬ŠÞUEÄ{ë½mZ €P4*™Hqøçh@#ôN8uÄsc›ö ›“C†¼p»ïväʨ±Bݸ§»ØÈ —™tfÁ¢ÙkäÙ(÷jráy=%mÔŠg,Ûè V2¹0à$jŒ}C uE Td$[ ^Œ€„ûžïeD¶¦ÎÑgdàcá¼r ¤p¹\€ã’äƒì¶µÆ{¹ É€¶¬£±ß·ÞÅïÛQúŸù0O溫©N%_ó¦Ó„”ÃÐï¹ÑXa<áBfRÏ¿tÔÆªž&ÈêÔ%+¸ÐN"NÏlçÈ„ãÜq¾ds´­Ç)Eº}HJ'œ1ÿ¥há#p@è5æ´œS•Úž‡¿Q•ª,º!ðX“3„R–ü ßröE³V$‰G²5ëR‘ÉÉ-)4t¼À†Ž~|t;’ÉÙ<j$\ÄäjËÉHË>Þ¸þÖe Á~žÛLµŠŽù‘ Н*#ÉœfÁAúd—ÀudÖÅÛ¤›aÊ5Å¥µž93û,H1c+,®uÅyOøü3F$ û ± §`ÜõhõÖiÒ)Í#WZV±ªKŒ¦\¯\l+Pà ˵@&Ô©ßÃçƒü7ñl3©”ÒVA,¡Lcbš%qž6é—™½gäžüFG<‘lú!ÜÏzÄÑ2©â*)§z8‰Œ’óëDŸ Ž#r4G}Ý&€NN´¶~Ý;=§‡/]+’ßYœ0ÑøYÔ7†G™Çʬ) !:ц¸÷Ynùyß|2~MéHÄÿ¸Çï[«ñG‰'qz*qãXz2ªÅ‰mIMR“ÖLukЀ1WkaÀ×X'ûôSU*¡5ÂÉÎCÖ¸ý{Oß}ý÷kã\¶U—Úgj'.‡vh\œ\_ûžJŠ:[Jy¦ÆÖ¹$qet„­‰uq H³TyC¶+¿œÔj:k©§ùÿÀàÔ_Jf™˜T#”eÁ5/¤Î^¥|Ö¬½¹¾w¯”œp·ŸHßë-¦½ÌÙ¿¯pS‰™OØ›&Ó+_™šƒ„Y YVÃ?ß•úÃæµÃE÷L—&ü+¨PÕ¥ Õ¥vâ,áù‚…Ñ{Bû&¼bOæ­ïëlF\?F‚@ Ì§?#«9Ìn–C—¶"Ðì¤zòC¥` .IÕ—©ï¿æJŸó4VJÿÛ,Öµåc®ª®ƒ‘I†ü5¶¹vÎù"÷Ür\!·E>çÙ¾' aâÖä¢âáyõ _>PpI+—i5½+»)¨„)c츯éÿbé.¶Ü&HÇ2€ç’¸Œ}’ q—Õ‰ž5»Š›kÓöæKDšj)¥/$\<»J "ÉšX5¼i)ÁÝ÷VpO#ìÔš‘,yΩ·ÄT¹$3ö=%Ö¸;e;¸L8iSˆ´¶Dd<æ{_¦^¹üÉÓq\ö×'6´µ¢WV‰Ë+‚ÀVÅiaU|^–›c£ ‹líK¥Ë8­Ó©Ñß|§5Ê‘Þñ\ ]ʈ›$ÎÊL"´8 óÎÍ™Èjð6•ð‚3A žÑ׿¥­M¨œz»—[!ÙÞ½0¸ã„“pуW±ÃÕ$Z-‰z…œ8¬›O–ðbÌ8† ÿ„­‹ˆ=ËÂ`qp§"¾lDXJrÇ♿èU¼žj«¾X`ϲ`-y K©v™ÔIsÕ®éÆéVü’<ó„€£îU¾öcœæw¶§â=ÿU áQÁ%ŸlÖ™VQ¯MȈ:[4·fvßá÷q²ûÙßT­å×>Ï€9Þ&wkÔ3öq…YéìØ­y0uÔÎ Rx ÝndB0'ÜמºîUoC¿ËôûÓ¿s %) !q;ý›B  ù}ƇSÛ»’òÂziÔ=K WðK_µ¼ÖQz —ºÿ‹X‚RÞˆÒ¨{/#»5»ãÚd~12% ^¿8t)Î8™"oG Š^­svP1ÀÝtý`4½²ŽG÷N«RÔ…LѬ™¢u‘^„¥HlÅûh5:I\%¼œ»Eî6ÞŸ¿ÄáÞ_ ÿZ Uò–h¿·Õµ¦s,·’z✊{µ;÷f÷þköj¾«Æ†óÀbÒ8K¦E¿þи¬låà´_ä×ãs/e寱†[Éÿ0ý—ÇÉ_m¶â$æHûGñ'ÆÀÊÇ—ÞðW¶B×KžÀzó÷%JŸM6Ü5¡Š:=(s‚“Ü{+¯ˆOú'’¨JŠ8§²XW•€zpž0öæë›7ÿLÁ9& endstream endobj 215 0 obj << /Type /Page /Contents 216 0 R /Resources 214 0 R /MediaBox [0 0 595.276 841.89] /Parent 210 0 R /Annots [ 205 0 R ] >> endobj 205 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[0 1 0] /Rect [426.914 722.069 438.869 730.478] /A << /S /GoTo /D (cite.maucher11) >> >> endobj 217 0 obj << /D [215 0 R /XYZ 89 770.89 null] >> endobj 22 0 obj << /D [215 0 R /XYZ 90 238.167 null] >> endobj 214 0 obj << /Font << /F8 108 0 R /F67 131 0 R /F57 109 0 R /F45 106 0 R >> /ProcSet [ /PDF /Text ] >> endobj 223 0 obj << /Length 1838 /Filter /FlateDecode >> stream xÚµXKsÛ6¾çWhr¢f"IQÌ´‰§ÒN£žÚhI–5–I…¤â¸¿¾û>äÈ÷@ öù-¸X¾xýažN²0››ùdy=ÉÔ$5Q¨æÉd¹žüü4%& n§:(à+á[Á‡ý |kø~ƒï_ä?@sÆÍkhîàû ßϲ¢ÿ¾¿U¢dCÚˇýùßËÜ+ÞQ·MÅèé?Ë__Xx:¨ÉÌè0Ó)«°¼1êé,R‹ Þ4m›7ăºÛMÑvV%vj$É‹©aâ= çÖ–ÜTátGI°œ.";VNM|ÁT šáÆh‰öÈgÈ &BñC\#|ë (tL6&ú;"R©O£ÉPdºHfh•DªªBŽ5 73ó ,Ö´آ}ѤLšÌÙ¤«œ}5‹"#¦%/tB©ç‰$Œ /âTäz)ñq¾ÚEØÿU/¡ùΛ~ßËnÐ=i /ÒЮQÄv½»Ë Òá´uëT¢ßÖºãO„þ(‚7ÖÎò¹–Á˜>Û:äÝwivÉ<ȼYl”ƒØ€þ¤Â†çDükŠVº‚PMƒ’WÑH«άz·<#n v—–.új°Oz 6`ðÚ,2"9Ù½ÁŒq?euÛ’•ÜÜy«Kçñùzßœ$bNCÈ:’(Ìâ‘ðCCq·U#›ƒBW‚n]2Y¾"˜Äë5Þ¡qŽrvýaßîn]ãVpœòþ>€Óý4â\„‰Ò˜]AÙîA|ä/¸3AÂîl’0Í"»3ÀBËöŸvw¸ýqŸÛtCá Êkþg<á솚J ]YT{@…Q*|Ý‘o2'/hß"f„ $jzãØ¬ÈþÌÙ,.+ÖÜØIžÞp1²“|øÀ³5–á\×’&i¼eWó™ •gËÙ6Å`É+Ö?ñE:4*C.ä8)gÔÀtQ.´[HÂbì¸ö$”søF‡Ê,ºÈhz‘tfà'áW‹qsùG!—à¹dëA·­Œ LÇ1¹X„iœZ6X¢Åљ٘¼vª«jZ ž ‡<{|½‚ŒÆ•Ýìù •]xÀ¥0Š‚“î´b;ð!3Ó& S#GMÚ;jˆQÚ¼IyãÞÖ,[œŽ¹"ÞkYÀÚRj15ÏåüW?plàÙPYµË£9G6­Hy¶ROþº¿•=Ì 9L¯Ê³µ2¶X·ÒWÞ¶ý£Üæ––ì ‰†Æ‹™;” ȽH Íjã¹z厩M×™Tz¤lÛÛ7gןkùÓH ¾¶²ó3€ï Ç´=©íjí°jì”íd­Â8Ö`#z­Y“îa1¬³àhc!ª²„yß8„’´_ ÇÞʺƒ¬KFÅ)Ѭ…Æ´íڵĮf=ÿ$öLú‹SnÈê‚<£“p>×]÷`ê¯Óçýëÿj˜ÁB¡VFŒØ;--áÊš‚‰i!–è!ÚaŒë´× :Õãè<‘Tº ~Šq16= c·áþÐÛV °¥èá×þ6|ûl.ä mzð¥¢$wXð«vÜÍÛqÌ[Þ¸…·ôG¬mzL´l¦O0Ñ=&^®þ“è;5Ñ=MôcšÄϬÉ(“äõD&Ÿ ï ^L»r ¨+Îcœµ*{O_óä]Þx/Løf˜Åösg;k¦ú0K:åt©b½¢øù|l/$¼¬w߀‘£{<µ¹)wÂv§r'ìdýXâ„"{w—÷üzAõ$]`ÛâsÄ1\ v5‚nyèT×ùž‡)¹pÒ›i*Ç6{¸É5N»4í\n¼ôw´—·3³ê§‘ziä2ªáª½ˆÝ•Šx•÷À›ðCêg‘€Œ´’~¢<Øhp—z˜jKÜÓ’½=w¿âÚtcï°öÙ×–éWrÉ¡Ñ/ÖÄGŽ/èýË‘,´Úbšƒ½K5÷þ»•[ÿ‘”WÞÓk**´v1M^Л]ýæIÅÃ^²‘€tj{oi«¶þWÞ»ý)²åÜ÷«ñ[µQó0ÑÙdÏÃ8’‹§NðÅåòÅ;ñp endstream endobj 222 0 obj << /Type /Page /Contents 223 0 R /Resources 221 0 R /MediaBox [0 0 595.276 841.89] /Parent 210 0 R >> endobj 224 0 obj << /D [222 0 R /XYZ 89 770.89 null] >> endobj 26 0 obj << /D [222 0 R /XYZ 90 514.857 null] >> endobj 30 0 obj << /D [222 0 R /XYZ 90 484.228 null] >> endobj 221 0 obj << /Font << /F67 131 0 R /F8 108 0 R /F45 106 0 R /F57 109 0 R >> /ProcSet [ /PDF /Text ] >> endobj 227 0 obj << /Length 2094 /Filter /FlateDecode >> stream xÚµkã¶ñûþ £ŸdàÌz½wÍm»iÐ&9· ÐöW¶wÝõcϲo³ùõEÊÖm.h CEÎ ‡óêI?=Ñ•SEÓL\Õ(cô¤Ý^}¼REn‹† ’!-iÁ“‰×7[;ùjõüÂÒ,М%Dßͯ^_דF5¥)'óÕ¤É'®¨”ÍÝd¾˜ü#»žêl ÏÝéÿËéÌæ63¿Îœi²¿ãJw‚?¿¸ŸýQFûïWüöørY‡d>Âßi »6R €R 2ËŽgœPÃéû€ã²-‚n·ýö^ÀZ$¾Ùà‡ÉÚgøh7q§SSgOSSe{<Ú< Že]6¿ íñðˆ[Äê¦ÿš âœi­š¢d!ã®(™·eû[dB&H|ðGƒŽ›q¹€}ˆüåq "ü„, þP*8ó¹ms°pŸÃš±è€µ.²y‚ÇóÝQÀá#îƒs‘ë.wê`(ÞÙj*¦‚ÅD+G‘€oq’ŸYkXõv¨]û’ž„¼©TcÄR{­U"läè´¡=a²ÈÖ¿Èõ# …}į£;ƒa´{dxɘ†6~}]T‰Çhp—ÜTÀ±*ÆM÷rØ"¦bF¬xÞÇÿÌ‹œ_š‰§ÞX•ª¶6&+ïö ¯­lvZoÏ/<þ=‰ ÙhOQ$e/-Q¥åÍÀïª2QÊ{f¬Uu9TjןmàÎ`ÑÈÒú §$m#ýg^DîQç…#vaf·$ÏtMK~'*ŠÐì 9Ìw©ÙÒ!ŽÉP1¤œµð´o(ò&»Q¼€BžºGN>‰%ô"fŽ" mzµúcê¸û„c”žÇ¼‚MßdŸØÏ€ÑK×Bô.ñŽ%ƒwËÞ ÈšdÚw êù5” ¬“û‘<»µ°ÞÇj€¿E^ŸÃpŒl\Z¿) UFëߊå/DÆoàù ¡ŠÛ‹îiþÂÞK£JWbìæ3«ke*b³ªqõ™·×+”Ä.X™œ‡h—)«(xø*,Sø=hßXÎG/øç\Nôp?—ù£ïþ‰7rh/EÖ_ñî+axs&¯_"©‚ÝÁó“àŒ‡pj‰’mðHOoh.ß0z5)USÙÑSºqÃØo/é;ek±AÔB*+TaA_Fi'óïûùI2ûc´ë>W’éQ rñ‡h»û¬sUÀèÿTBBzÔΈµD ppJÞÛ$µ‡T53ºTÀ4›pÅän¹4ÙüQÜ®´DÓïu¯0 ç1)ŽŒ0Lµãõñ|0í(.xò–C=ãtœ_iŠâ.µçÕBÞQ” 5DJ»Ù6–~‘’°I¸åˆ¯³4•6l¿ Igñ>SBH¥Å,µ·?¼’òaƒAëE'1œÛK–"ZÿT]$7"‹âÀ%t õ2\ÄÌÒzÞ[ì]b•Ë$NÿþĒ̽hµµ†l_²Z5gÖÕ ªúÏFÉÀÃ!ñ¬!_ú;¬yø_œ,¸çFžV,©M‚å«ÈÛc¨3$v¾‘±PÃðø‡„ÂW2‡`š(]¼=ƒ!YG‘ŸçñA“޾ÙWæÕÑõê$5’aÝš+ç4†&åÂ!†2š™R7Ù÷0¾…qÞÆuf๞ΠìÊëýÈÜ[Á{¼ `rWÌB`p>Opâ…šú7ÚžAÿ$ªÈG¶zGJÑP”z4€ÕÎ"ÖèûK×G< $¤tn†B”Š:t±gkrŒ|®1—}V£_*Íp9̓€ŠôVbû-¿°ÍÓ}(We‚£à3ó×wx0îc>Ç “œÛÚ\åUÁHl3"2 ô ußÂp)IÑ䪱î‚àHÁajUÓ<ÄþÄåªÎzγð !£Ìs¨Éᘱîš`“^2Ž÷}*8àDeÁ ‡ˆFšðm¢±O˜h—Œ‡.ÝoÖâÂ=/HW°õÞHÿûàô˜µ.dm6¡Xc•é…jï•Äe#ňª)ÒÒÉü–«‚xxÈë—{BÆ.”±ÅPÞÿó\VÕÊÆT)1XŠ*Yô×ÓÚñµBÑðÛG dÜPú /¼ãz¤½äf®Þ6Ô€ð ùÖ„Ç=BhéþAåTå\üdˆÒ¾s£ªÊ¾]ú€ÑkK®€zd³îƒf…B ‡¸èw ÙSÒ] Lk£\SI ¥²ܯ¯þ–ÅÀmnhY.ÌÎJ†Nš1S)Sº¡Ö©ærÆeLã‡)²SâÔÒþ,v‹Ô(vÉ­NÊý R: ›8ÝÑ%Ÿ|Ð퀴Ӡj¨F+“g?àX ¨úÝò}ZÝtŒäŽÁ»ÈgZ»9Cw(´3Ý/â="ñDæDÕÆ,\Qø CŽÏH‘°ü‰ŽêPd(/ø"//Ríàçͯqà‚ñqÅ}Ú$á>$æ ÞeœxbŠ4{6K—\>“qОAÃõ‹˜ÖHx]„x‰†äm¸]È=Z\ŒgÆ(¾P|˜ ã;™Iá\^}1K>,Õ7µw>lˆ3áŽÆ¿Ðö»A¶H‚Ah-w«/í§Ã=„ÓÐÈqT¡ø‹f¡ÅöƒˆÎ¬±c¬Tëzء苊×Û ¬–ìK9P¢5^•!vP Ù7–MëA˜dla[Ùó[´.ûg4¨·"”Zéü¯ð÷=Ù¾j½Ûù¤h·»qÅ!x뱓 ç<ìQw÷¬X2rj×vQ7¸ëŽò&‡ÎYCW‚…D-Q^—¸võ~~õ`]âW endstream endobj 226 0 obj << /Type /Page /Contents 227 0 R /Resources 225 0 R /MediaBox [0 0 595.276 841.89] /Parent 210 0 R /Annots [ 220 0 R ] >> endobj 219 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./sequence.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 230 0 R /BBox [0 0 504 504] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 231 0 R>> /ExtGState << >>/ColorSpace << /sRGB 232 0 R >>>> /Length 856 /Filter /FlateDecode >> stream xœWMOÛ@½ûWì190ìì—w= ­Z ’ªÄ¡ „¶µê¿ïz?²ÆxLœ‘ÆÏofº pÃßÜh$Ø›DöRŒˆ.$ ehk@ø¿D=.wé‚€séŽFÓµQgúɈÜÐùc,ÁÊ@?§c†Xäp c'_\ÈÜǬ}¶ÏÌÇL÷£9u°ÿÀæ,Ê8; oNìó-ûΞÊàÆþÁ§I†­Ô»N“Z†q`CÚðð@jЦ >˰íIº“‚… ÍIÂ*t' óОŒu˜\$,Ãà"aæ¢*¨‡«‹2‹*fÆ©jö«ŸXd‘3NUy0W²øƒ¹š Æ"¥Ê8¥UÂI±zSrXÂŒSbeœ+á¤,§dÉ8%@)‹`°¤Ã±HY†bQbIܧ³2‹+ãã:+±H 3>®³2k\g%ÖÈÎÊ,JØŒ“0±H Ý^ºw†c*nX؄Ӻ½$t{Ièö’н3cQÂ&œ’°ÿZ’HŠÇݺ¤®Õ¼ûSuÛnl޵R7W£u‡±*¸©‚OeL³²¥'ëªã³àÁcÃðÙÛüw¸à6±½K….m¨—“£Íæyê«È&?–›ŸÏÓ+¶8k¶6ÅjŤj*fÃrxào Ê7'”lRTè7`ЮùŒ+i0W[Ó4߿ھœÌ{vG(­üíEéâÕÿ/²xMföš^ny}¿Zöu±‚©üĴߪM*•/Ðß©_ÐÙäv[§örÜëÆ¯óŽ·Ý<<õ::¯þÕ^— endstream endobj 230 0 obj << /CreationDate (D:20150225101833) /ModDate (D:20150225101833) /Title (R Graphics Output) /Producer (R 3.1.2) /Creator (R) >> endobj 231 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica /Encoding 233 0 R >> endobj 232 0 obj [/ICCBased 234 0 R] endobj 233 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus 96/quoteleft 144/dotlessi/grave/acute/circumflex/tilde/macron/breve/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron/space] >> endobj 234 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óû endstream endobj 220 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [232.575 402.262 239.549 413.38] /A << /S /GoTo /D (figure.2) >> >> endobj 228 0 obj << /D [226 0 R /XYZ 89 770.89 null] >> endobj 229 0 obj << /D [226 0 R /XYZ 133.127 469.259 null] >> endobj 225 0 obj << /Font << /F8 108 0 R /F57 109 0 R /F67 131 0 R /F7 117 0 R /F62 119 0 R >> /XObject << /Im3 219 0 R >> /ProcSet [ /PDF /Text ] >> endobj 239 0 obj << /Length 1697 /Filter /FlateDecode >> stream xÚÝY_“Ú6ϧ`ú3±#Y¶l§½Î¤\{íC3-oI\0pÀC¯™|ùjÿH–±9ŽLgú€-¯V?í®V«ÕòÃøÅ«Ûl‡¹Žô`<äbF*:Œ§ƒ÷Ã7£@ÉdXïFrXÀ£$4·ÅÚ<ë{ó€OxWkêžmácÕð.x0­™K舻3'6ð1EÙpÑ…DQr>/·D­fgƒº)ˆ` FQ:,àñ™ú¾Ðëî'Ãqë‘4B×D)&V׿¤| äÌg¤_>ŽˆA e˜'lÁ?GA¤qz¥†úqgp`Ó¹jš“ä™@ @Áv€®3ã‚JzévÓ¤„f]m©ÛШŸ$ÑðnF=Õp>wPî1º,YG3s;ò‚vÐÓÂÆÞ,y÷”SBüBˆ3檖q ýK£è‚I°( æÔÙñ©Ñc±¢ÆÙWÖø)íÅE±ó>Xê4jöñ®¡Qˆ÷—Ô®‹UÃÅšœÅZR ruk ÃÇ1ìJz ÷<,¼Îª2âzN=:”±}JÜ3<Å®ê3‘?Ü O'ó„[è'—Ÿ-ö”¨w^@\p ‚ðú†i;/»é™ÆáwíÁ=xÝŸø,h‡gÙñoèÄl¥Ã$VGc6(î…lø<ˆØ@ºFÀ¬$íEÅQ7ô ™Î ÉoÁg†h¾»±¼ë+‡°òY°ºÖB\QRy)Ÿ”—Cª‡Ç¯< _29ò +®Ÿ)ŸnËôúÙ¿|d~ÂÕ/€„XŽ›¥›çöÝßÿ›<×Jâ+÷žM&ùØDàËSÑ÷8ß5= ÕàõÎŽÃxòAÈØ…ØÅD¸îÆB5AÔ´uë|‘»±´`öfEãëƒp È»1_&Q˜§úÑ£'‰ÓGÏi¯ô gOtpöô ”Æ'¥ÉNKãX$î?´Q &¯ð¾>% ®_Öãâµ~I s¼¨[#c u×ï{-1suàÞÊÕÐplÍ»EêÐ\úÊ!^á9Ѽ²X9޼Z:’^¤:ÌùÈ›uÒX5ˆÒl( ¢f|¹UQÊs+WYSäz®ÊmŒSíHœƒESâ(m ˆ{º§ª6£÷Æ–ø×°®Ž‚ñ›†íuÏQd*4mo>ެì•U]‚à+“ö±q^ã¬2óeåGÂÌØ3þ–UÚt-ë-ìú7¬ÀÄ÷0ûoŒaºµ î©XŠý*ì9 œª07Þóë÷ýçQ(3[0ëQ1lҚ뫱nýó‚y ü9ev¬¦56޵`yª5š˜ö\·NÑBTasdÿ!3ø[*š<¯:ùøÿh X³V ðÖ«G©fÉöMµÁ"¡ÃD°(³Œ×D¦Ð÷âíøÅ¿4]<¹ endstream endobj 238 0 obj << /Type /Page /Contents 239 0 R /Resources 237 0 R /MediaBox [0 0 595.276 841.89] /Parent 210 0 R /Annots [ 236 0 R ] >> endobj 236 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [229.993 112.415 236.967 123.255] /A << /S /GoTo /D (figure.3) >> >> endobj 240 0 obj << /D [238 0 R /XYZ 89 770.89 null] >> endobj 237 0 obj << /Font << /F8 108 0 R /F67 131 0 R /F57 109 0 R /F11 115 0 R /F14 116 0 R >> /ProcSet [ /PDF /Text ] >> endobj 245 0 obj << /Length 1613 /Filter /FlateDecode >> stream xÚíËrÛ6ðî¯ÐôDM-†ARÌL:ã$vêöÐ4QÛC’EÑ’Æ©ˆRR÷ë»/ L×íäÐC2}/»Ô(‚Ÿ©Ì„IžL–‡Z«Q¹=ûx&Qœä„áu ¤„N&ž\oÍèesö+ü,hbyN<¦ÏggO®¦£<ÌSŽf7£<™$ ãÈŒf‹Ñ»àj¬‚5ü—Ç=|«ñÄè,ˆŸŽ'i¬ƒßÒáSlï/ì„¢©¹¹á¶à¦­>iª>eåc¥A{°<ª–!ÈKXáôÊ©qý úWÜG^Õa¬§Áç1²CmoáŽ'ŒgH)d%*·A ¶HÕöÕ<‘AêÌ74ñaöxr¢T˜')»‡œ²ƒÏ¾BVéJd“8Q I¨PäÑ:æjY!ÂôÄ\œA=°=ˆÆ¶”[K…rPôš¤‚&N‚‹«=£(öÀ"“´¿2¾¨ëW¸Êçž\¶Ÿx„éž¹!¹°ã(,kœY"8Gî¾Ãv˜2MÐëÌÌÙžDÄAºzj­ÏÂal·<™þ›»ñÔàb›<åÅöx=d€^¿Žº[ädé×E8ÚoUÅ~QºU" %pBö ×ñÏð\ÜŠôÉvö 4o€6ŽÉ•ëemw!íD»F•‹¶,²¨0e×­oŽËÎên;!Fgοy¢fO®ÒÌË §ÎÃi6e=O»uµ±ÿ™ˆ*$@ZqBç ™%¦»¦òÇñ´³´½ wŽZ”Ûˆ§•#8¯>ƒÿw¢Z+°Zdu’¹FòV+4Ä™ü’ø~QQh ¤[­B3Õ윞 /ǪVOsèGy\B_³÷U’©þåÀÜ…Ðí„.œÈd„³Mp´ 1I±'~#ñŒúcç¯û¢žSPª$LSÕÏ}À(V&~°»–œèW!ðP¨"ÝwâuÍñxð·wà~xK´¿ é¨ÀfÇÏ.i¯{Td49÷œåP!):!ŽVMËu‹àÅÛc-q|CUg»!ïõPö²Ÿ ˆ¶§,¦ ÚÁŠf„Á9mAµËæƒ8Ìì³?0ÑUžåµ0D±mãRsD˵˜ÇКä”\[h³ß²¶;Šú9U¾µÍ(¶”TÎñ76‘Þ÷¹ón+Þô‘qþOd¿Ýu•õ~vQ0Ê’¯5»œƒïYÎRø×Ò¾öxÍEÞ\Ìßœ¸£ÏD1,¢xã6#ÿiNŸŒãAó%sj`,Îÿ–‡¿4ÿþ·<<[I(aP f H4Ÿìv;¶uw ¦caiXœ¨…RMÑ‹Õ~ ^êrÐø‰†KºETÂ0榨Ü1ÜHŒ_ê+2ÕÁ_t‹KAD@:²\ ‹ÔJ*ÑJ”Ü´$“NÝW%«{e`ã–UÉ…,öò^™Ñ'Bî%Γ,k G,¸j VŒ·Tv*ïÁŽ5¸DPÕš# ·”Ügåä,N37”q뮢ÁÌQ4¡V 2Eî`Š€P›)#ŒïkÇÔCãRÖ­½(Õ­ŠÑƒÅíNxÙÐ?©­E4@âUsuCkåVë~· |íW>íîxèû€ƒì¹óŠÖÒ² t¤ KÔ¼«@$Ãn¨â[u|¬:¦½êhéÁ·•òÕIÕ´òûIþ+?Û'ÿOMÁ,ªa{Vÿ¡D<> endobj 235 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./sequence_igf.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 247 0 R /BBox [0 0 504 504] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 248 0 R>> /ExtGState << >>/ColorSpace << /sRGB 249 0 R >>>> /Length 1060 /Filter /FlateDecode >> stream xœ˜Mo7†ïû+x”f8ü\zˆ&°‹~ÄÐCCà&hÜØEm¡ýû%9Ci¥ì¬59ØýðåûrV»"¨ê^ý3¼£ŸËíðêùöí¥º{Œ6ƨéïç»ÇáÕ[4ÛÏ ¬&€¿p .é•ÏVûQmÔj÷ÃZm­ø êt€©úÎW[3jk§j‰Ø&=º©Ø Ä>iï§b'ǤM˜Š½@r~ùÄÙå#ç–»' £ÕLͶ©x«ÄY«Èy«ÄY«ÈeV­ú¶"´J*ÖjçœUâ¬ÕÎ9«Ä…V-h·`•8¿óQŠµŠœ·JœµŠ\hÕ·Gâl_ gX\«4TÉbñЕ„±Š¥s.âÂXºJ ©„±¸v\&U|,ÄÙX³±tÎ@\h5´Ã=©UTñV‰³V‘óV‰³V‘/[==ëßÄžõ1; ›S®|ŠÚ¦>®ÇJõô7”gNyµŠæP¡ÏØótL­¦YÓÿó0œÔÜs¬X—Ûï;¯×ÎÅMYR¦#­×»ÝÓZQ«w»¿Ÿö‡QuN*w½×¡dØÎ.¬©G?%½ ×(¦ÜHåÕ |ÛÏÕ@{ÕmïûaÔ®ï“iø§úÌ5’/o9áPµlb}Îôª4ìUiò¤êËiÇaµ¡‡XM—/~¥qZT% /ÿ®• jõiöÐn¶Ly@g3-óåq¶Ð»áVœÿ endstream endobj 247 0 obj << /CreationDate (D:20150225101833) /ModDate (D:20150225101833) /Title (R Graphics Output) /Producer (R 3.1.2) /Creator (R) >> endobj 248 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica /Encoding 250 0 R >> endobj 249 0 obj [/ICCBased 251 0 R] endobj 250 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus 96/quoteleft 144/dotlessi/grave/acute/circumflex/tilde/macron/breve/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron/space] >> endobj 251 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óû endstream endobj 242 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[0 1 0] /Rect [218.606 74.272 230.561 82.68] /A << /S /GoTo /D (cite.shmulevich02) >> >> endobj 246 0 obj << /D [244 0 R /XYZ 89 770.89 null] >> endobj 241 0 obj << /D [244 0 R /XYZ 136.387 469.259 null] >> endobj 243 0 obj << /Font << /F8 108 0 R /F67 131 0 R /F57 109 0 R >> /XObject << /Im4 235 0 R >> /ProcSet [ /PDF /Text ] >> endobj 258 0 obj << /Length 2627 /Filter /FlateDecode >> stream xÚåYIãÆ¾Ï¯hä$!-šU$E2@ôÀ9Ü€8s`ST«1Ù ¥ñèßç­UEŠì¶ ø”ƒÄb-¯ªÞò½…?|÷i›ß•Q¹µÛ»Çý]ßå6‰âmv÷¸»ûeõõ&³Éj·6« ~gyþ7Îbx4ðû&]'ø½Âï(ý?Âï#ü~àéfýùñßwñÝÆ˜¨ÌÆÔ‡€òY–?¯—¾~8çEÆñÙIÿï<É=ïXû•1õš• žt^7·¼ M¤÷wøýEÞ{9Ê“ìý$Ç;ÊsŽ\Ë:åÆwŸ²õÀà|i˜5ßè(´?6­o&ÄÉ,²vÌL˜mâ4‡ é“ö(‚-6¼Š¶‘}þ³.’UwYol±]ªµÍá®ôòÜœ¹Qá#'x¡ã›¤é…-.yÔ‡¾åÖÀ@[f«j` Øu …ôºÇ©(ÃÚ •%M£UïgÖk[¬ÒnZ٬¹x¦ît$ñYëºëe)¶Ï~ënöNŠO•^¨hp£Íˆ q·Þ$Y²ziùIäl§¤ ÀE8ü¯È'šÿ~H3ÎWßïyÚg  ð…g^D‡vÜIêô§ e¹6›o"‹eBÅôt$i†È/­ý(JÏÝí=e2¼–L. “бµòˆ…vÃex°2Ñï.b<¯"¸$±Ì6¶z'v³Òçn"mZyì•t¥:5Šøú7VÿíÔÄà ¦ø†Ÿû9™üÕì 4gâfõI¥.t¦lä\ÁÅìäbÖ_ìOÀøàãÁñ ” •öH $ÍÂ;ͨhÃíÌ©kÅDaÝ,šÑÜ=Ø=5ž›–q_¾^W9ЗÜöº&!Ó©g!þ»¶^FÌ™4»cþYe[Ë|I§€ëÆØtõ=žÈ$ z‡!d/nÇ<#m@É~ð4gµ úŒCýp+Ü4Ž`oúÀîÄxªÐ’2ç°MêM°}ôµØK}dô†Î”ÑMW ݳÌØQð¼Š{>v„™‘¨dì 4OÓrõ Ôœ¹ò²º#DèUÍîör=U*áà v=ÌYoèÒÒlá 0”zý²“­°÷Ôñ èY…OUwmãN ºô­œ”„T)t½Pv2aâ#íußÔ-ž _ðoC{&·W9‘_yÚã…š‹Rq†è𶫦V0ß-ñ¬ce}I/ -m"ŽsÇcÁš×ƒÂcG'»ŽíÀ“~A ‹ïùÅ$ŸÅõosð/v±›Åé#×ÒÊê½üIlJ)O ¶S=ÎYáq«Çy ¿Uœ#_õÒ­ã…}-[ÙuŽ™LÇ1˜‹µ òÞ–y8 u¡=ç¢Ã†çÓÖr¦ÐxbyöjTÝÃ’7·ýÂd^ü"ÕV¥Ð EÂa8NFö©×aÈÃ-ó°šÅ½MR‚rä½Ð)J¬=–qTÚȹ§uf‘·ªÍ›4¶Ä»4Æ‹€0p¼0üœ XIF3.»ˆ¶I©>J@Љ¦ü ¢9ßRNóÓ­.Tï[ÀB0/PSü¥w#¥Äž=BlãuæýEánÄñ -ç½fÝEæV-CD‰q'c¯†«‹€ˆÅ:[ Ö%z›7õ/B9„£¦÷~Ú»9 è];8MsH' ;¹dA“Ü»s!z¥É9 ²”X:‹—céŸP$.ô%é%¬ft„NÖ[](Jœª.0ÿjÔË j¿õ°ÍwE`3‘Yýf ÿ‰J…ÕN¹áLúì šÂu‰ÕRwÄ» Uþ2â=ç„`Ç€ƒŸù–ŸÂáÞOUmÀ X ¥'¶¬WÜCðN“Š`ƒv6s~7¶E¶º¸ètç|F!Å®ø1nRö•‹ŠâÍwW^|cØYõBZHšý‹\«#×Õ0:C:ámàC=rö†æ’¸ "8ã³lŸåRáAm×[+×yP£lfò/˜gΟ]ÂeVò<…lg‹.þrÕZ_’%€ŒÁåw ¥ÆÒ²öÓuû0Öv°U D¹ÒBOqx‰^ùìJÎT)’é{õje€t²Óm( |]MFHRÚ¥‘ã¶8‰l>‰Ûúå#Éõ­œ¿¶´þ[MõžiÑ—¡¹Ìà? ýŒõ¡†?£¼º¢]ïÿP"öݰÓïx‚Obn½¬Ó@†2‹òX.tªc“S¥å2r‚¦$kÔ©™"L0¸Což{“§~,!&Tp%¯òÆHñT!åúaL+¬í`?ÎQzc{Ð !¯4TÌ2èÞs`ÈnÈ”7™Å\`òN¦&]ŠæR“Œœã9¨J>óJJqà™ócŽ÷È.ÿ%'°-Øttß®ø0oVHðL3…<êÿU½Úß±ï…j./"„è §ùgÿÅ(rÄ’¨L¥äð3†Ñ¢Àˆî³Ø éï‰踫RβQh¨Æ!mýJ x¨.!û¿Ÿ`ß7óìÆÿkß+qO 5äÉ™ådÿÅø«vÕú7CùÎsÜîö#ûp!š Ô…ª’'#>8²Ah m®lß&”8v+SW IF|^¬°ðvAuåU ¾Æ-å·s; ãñ Ëuö¦]¦Îå8N¦!vê—¶)¾„Uzqþ3±O6$Äïoµo£ <ò¦,#ËG3SâØ‡=~ø´íœQ endstream endobj 257 0 obj << /Type /Page /Contents 258 0 R /Resources 256 0 R /MediaBox [0 0 595.276 841.89] /Parent 260 0 R /Annots [ 253 0 R 254 0 R 255 0 R ] >> endobj 253 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[0 1 0] /Rect [213.288 458.633 225.243 467.041] /A << /S /GoTo /D (cite.kauffman93) >> >> endobj 254 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[0 1 0] /Rect [229.739 458.633 241.694 467.041] /A << /S /GoTo /D (cite.li04) >> >> endobj 255 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[0 1 0] /Rect [140.021 195.619 146.995 204.027] /A << /S /GoTo /D (cite.faure06) >> >> endobj 259 0 obj << /D [257 0 R /XYZ 89 770.89 null] >> endobj 34 0 obj << /D [257 0 R /XYZ 90 517.92 null] >> endobj 256 0 obj << /Font << /F67 131 0 R /F57 109 0 R /F8 108 0 R /F45 106 0 R /F62 119 0 R /F50 107 0 R >> /ProcSet [ /PDF /Text ] >> endobj 264 0 obj << /Length 1198 /Filter /FlateDecode >> stream xÚíXKoã6¾çWè(1—¤^T±]Ài“.z)°õöÒö ÈrlÀq Û›týñËyP¢dÙ±MQ£™á7‡º_¼»I³ yªÓ`< rd:2M‚ñ$ø3ü0&: 'vlùù—L¤}”vTv,xÀûW~.ø›eUƒ¿Ç¿2*%ò¤­Ùi…±&Ò{;ÒôŽ•À×Q‹“p”üþÀ´Í b³|ïnLë¬4gY)­D–*’z jUô˜#\^¨÷v¬j”=Höª.ùuÉ®˜ósËs ß+°M[€6^|·ƒdãVdÔÈš&$7c™¶1·5Õ-Ý]6±Se‡ÆÄ"Í‚´Q0äÏc©ð@Š\±è7L!ï½ù¡ñ­ÎÀ“¢?ÃT›¬ÿ£d ¤7Tç)C•dçh÷møp’ Cvf¤…É2Òö ;pÉÏM“Xë&χK¤ sOšœå@B@fà”ÜnƒùSÖ­=½k ~úÉÛŸ?é“ÞÒôE…7»Ì×”•>iD\+Ê¡ sh OžaÔü@p2}F$÷±íŽ«¾D<²&è×V²×VòÿIMPZЭÏÖ„}¥­ô ê\]sÔ^L[: ä(¨ö$êTo•ùUWæüôÊl{7¯ÏEFÄ Ç`<в°9¹e¿9Ž¡ìL’L_wè1ëXä2vÌeáüoÃK,‰±ŒÃÍj0ÔiX̹åÁo+ö?…È"ÛÊ…÷Á f~PãˆÅÖÓ€ÉTY¿óÂÈZ1ˆQŸkÒÈ åA¢/pË¡Ó_LŠÛæX¶'`+ÈŸ& å}*…ŒÚMöÇj͹viM1ÖÑin¶djCiÏtpǽ¡)êwά6UãÎzïÛ- þÊ 8§A±Æ¤–.Ú`GßeÊÌQn·2UœßUø" œÅáhITLÆ­ÛæËÂõl!òÌ7ô¤v§èJNJÈ©fµåøg €eqÏE ™§½LEÙ‡€±³(ŸòÀ$@£ ÷ÇÒÔþ#!WJ=ü3kaÓ ŽXdìF¤k&ÎÉvª¨Å©+˜—>Å„> Q&ne_§_ꪋï;éƒT—|0‡T¦:áçÈ$žæÝ¢¤¡*å M»vÐÖ`×¹Ûn»NÅRD™vâ÷î¶=«ëKdwqõÔÆë-çÌäÂnb:R'J„œ¶A¶Tª:KD’tªÁ 7[Q—¸jíú¸Î ªÜ¹Ñ­«ú³»}òes¾–^üÈQý5,øùÑŽ±pä}ÆC­åÉîÿ)©ßþüw½¿h5Z¾ü¨7â­ÿLlWudN¼®øhßåàÔ}Ù'î~.»=UMêm ðN”½]OßRôåS´}uhåesIè%NXPŸ´à¨!÷ßz¥®NÀ‹g÷ôÒP㣠îÁÔ./Ï@=Sò,¦æÎùÒXÒs±ìIïƒ×Ù=²ÃÄ«¡uî²2‰ÊíÙ‘ cø/F?^\/¾ŸzÂJ endstream endobj 263 0 obj << /Type /Page /Contents 264 0 R /Resources 262 0 R /MediaBox [0 0 595.276 841.89] /Parent 260 0 R >> endobj 265 0 obj << /D [263 0 R /XYZ 89 770.89 null] >> endobj 266 0 obj << /D [263 0 R /XYZ 90 688.353 null] >> endobj 267 0 obj << /D [263 0 R /XYZ 90 688.353 null] >> endobj 269 0 obj << /D [263 0 R /XYZ 90 666.436 null] >> endobj 270 0 obj << /D [263 0 R /XYZ 90 655.477 null] >> endobj 271 0 obj << /D [263 0 R /XYZ 90 644.518 null] >> endobj 272 0 obj << /D [263 0 R /XYZ 90 633.559 null] >> endobj 273 0 obj << /D [263 0 R /XYZ 90 622.6 null] >> endobj 274 0 obj << /D [263 0 R /XYZ 90 611.641 null] >> endobj 275 0 obj << /D [263 0 R /XYZ 90 600.682 null] >> endobj 276 0 obj << /D [263 0 R /XYZ 90 589.723 null] >> endobj 277 0 obj << /D [263 0 R /XYZ 90 578.764 null] >> endobj 278 0 obj << /D [263 0 R /XYZ 90 556.847 null] >> endobj 279 0 obj << /D [263 0 R /XYZ 90 545.888 null] >> endobj 280 0 obj << /D [263 0 R /XYZ 90 523.97 null] >> endobj 281 0 obj << /D [263 0 R /XYZ 90 513.011 null] >> endobj 282 0 obj << /D [263 0 R /XYZ 90 502.052 null] >> endobj 283 0 obj << /D [263 0 R /XYZ 90 491.093 null] >> endobj 284 0 obj << /D [263 0 R /XYZ 90 480.134 null] >> endobj 285 0 obj << /D [263 0 R /XYZ 90 469.175 null] >> endobj 286 0 obj << /D [263 0 R /XYZ 90 458.216 null] >> endobj 287 0 obj << /D [263 0 R /XYZ 90 447.258 null] >> endobj 288 0 obj << /D [263 0 R /XYZ 90 436.299 null] >> endobj 289 0 obj << /D [263 0 R /XYZ 90 425.34 null] >> endobj 290 0 obj << /D [263 0 R /XYZ 90 414.381 null] >> endobj 291 0 obj << /D [263 0 R /XYZ 90 403.422 null] >> endobj 292 0 obj << /D [263 0 R /XYZ 90 392.463 null] >> endobj 293 0 obj << /D [263 0 R /XYZ 90 381.504 null] >> endobj 294 0 obj << /D [263 0 R /XYZ 90 370.545 null] >> endobj 295 0 obj << /D [263 0 R /XYZ 90 251.613 null] >> endobj 296 0 obj << /D [263 0 R /XYZ 90 253.825 null] >> endobj 297 0 obj << /D [263 0 R /XYZ 90 231.907 null] >> endobj 298 0 obj << /D [263 0 R /XYZ 90 220.948 null] >> endobj 299 0 obj << /D [263 0 R /XYZ 90 209.989 null] >> endobj 300 0 obj << /D [263 0 R /XYZ 90 199.03 null] >> endobj 301 0 obj << /D [263 0 R /XYZ 90 177.113 null] >> endobj 302 0 obj << /D [263 0 R /XYZ 90 166.154 null] >> endobj 303 0 obj << /D [263 0 R /XYZ 90 155.195 null] >> endobj 304 0 obj << /D [263 0 R /XYZ 90 144.236 null] >> endobj 305 0 obj << /D [263 0 R /XYZ 90 133.277 null] >> endobj 306 0 obj << /D [263 0 R /XYZ 90 122.318 null] >> endobj 307 0 obj << /D [263 0 R /XYZ 90 111.359 null] >> endobj 308 0 obj << /D [263 0 R /XYZ 90 100.4 null] >> endobj 262 0 obj << /Font << /F67 131 0 R /F83 268 0 R /F8 108 0 R /F57 109 0 R >> /ProcSet [ /PDF /Text ] >> endobj 313 0 obj << /Length 1332 /Filter /FlateDecode >> stream xÚµÛnÛ6ôÝ_aìI"E”H] l@»&X‡Ãï¬{PdÙ1fKnd§k¿~çF‰²åÅY1ŽÈÃÃs¿QMCøSS•è Œ’©6YfÓr;ù0 Œ6&&gIGJ® àúÝÖLß6“ŸàÏù–¤ßÓ|3Ÿ\ßfÓ<È8˜/§y8Õq¨$žÎÓ?¼Û™òÖð[á5óã$õô«™o”ò~Å“öÿŠ â}ÆÕ^n45#7Kü&Þþ¡'ÐÂro‘V΢ÔCœ¢F~UË`$U3…B(Ò-ü¡HE‰«—H¥oË‡Š¯” vØ"‘–A,OJ‘Hœ{ø·‘«lv¬5hYÕ³(¬?ç߃5}¥‚Ü$l£²© þ• Å~B€šÕ‘Æ-Qü:¢à–õcåpe•KtæýÈæ°·šÝlTÚYv3?J¼ o•áG¢ßª2î¥"ˆ«Š…(Q¯n¸ŒÆÅEw°¸ì:¢ø˜Ì°É(hvøÛŸjAJ n¬‚P¬ûÛ,Óä¤8öJZ£ì•À­D ìEŠ×ä—â±D÷=0:òCvÖ§ ÁûPi–‚.Ý“ ¦Û±û„~îâô‘‚¼9°åç\`¶^*r²bs¶!œ\ßšÔÉÁHQž:¡½š]’Á:„aïÈËÊ[Œ(ºIš TÁÖRBÉIH\@¸û)RÛIQŠkL\úZð$S ¾eN]rä€ÕžŽ––Í"[™<ëò ,ö¦SNN-åçy+=Œ­•¤,Þ¼Äxw‚ÿA,Q‰1KY¿MÈujZ¥@YÛ–¨¹6J¨âÍ¡•ÐÂM$yͽÍ?±=‹m'WgÉJ®.㤮X˜ Ú„¶:Y;’¿÷–Z„èµ3®)©ìS¼úV¹aµ[“1(]Ê/Í J¶Â¢ôÉÌ•¥|Å6O\·C"EH”³Dß@ÝâÿËïÅ©+æ Bb•* ´VC¿E ñ·Láç… .o`‰oyë"ßœ‚^3h'—Òc!‡`ôŠbÐ/Ę1¿#ðÛ²y#A Ú¸)„¢07øU¡Nñ¶2)Q±ðîÜ•wçð…´ýHˆža^Ȥf¤wÇÿ‘‰ºˆ‰h¢/dža¢Ž˜ŒšËœa¢ža¾„Iò u!“u|z!õ&ò-D‚€ºÍoFžp0 46ƒI¶í Þº<~o[üE÷yÇ£NhÉ êõ‚!RpÖ4ÁaÀÕæøbêÛzÞÏíÌT àXK5\cªtCöK['·Bî£íÇ6qتª;kDÝÄîÌeÎøÖlÐÛÚé 5O4¸9Øh Ci‡Ø¶•‘:sÏ\ÌëÓ šv¦ãƒØÝ³í+<;øàY?•†üjÞÜKC¥Í“¸Öy/Áï3MœQ¸€ú‰QwÒüš½3á N𣎺$ÑÓ†êžR«ª×Á‹»¬X^Vä”Jð:†gÜž8ƒ¤Ä`çMf2t@±ï÷ 9רUI=hì9^ÐÜÛgx+mÿ^°íèðµôÏñyïHBÜÔŽ¼<†9Šñoç}Gb¯“TA‰Ö[û@:oG‚“5ÂJ4ÜìRÒO[ôBù×Övöñcsèôí×4ŒëŠën×ââqCü֮.vmq¡+ç²ÿApæâ°ß¿ØÍ‚¶u6‚‚Ç_P='``m¿¿åîxEa•ƒ9ò Ë2™uqr3Ÿü*”Ë endstream endobj 312 0 obj << /Type /Page /Contents 313 0 R /Resources 311 0 R /MediaBox [0 0 595.276 841.89] /Parent 260 0 R /Annots [ 310 0 R ] >> endobj 309 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./attractor1.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 316 0 R /BBox [0 0 504 504] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 317 0 R/F3 318 0 R/F4 319 0 R>> /ExtGState << >>/ColorSpace << /sRGB 320 0 R >>>> /Length 943 /Filter /FlateDecode >> stream xœí˜Mo7†ïû+æR@:„áð{±ã´0ЉUôäà(l#vZKhÐß!9Ô®ÏB<ôÖƒ%ŒÞ}ÉY>CzgÎáþÞÒßÉfx¹{÷ó lwƒVZk˜î¶÷ÃË7–®ß|tŠ…úQc“J܈*FØÜÁûÕ«ýþár»ÿö°ô°ÚÁ÷›ý5DØí/÷WV»ëõGØœg›’Bÿôâ™ù/N£_£‡ïÃû áó€pN·–~¢Éß6EeÜA “ɹ|…‹§rp*™î­ònÒk8ÓqTaœôNºI^%Ð9œé¾|ôÎtL gþN:&§,tgº×Ê…I¯áLÇ ‚™ôNz]¯&O«wLq.ó¤8xaÔh!¦œ•ÆêôŸíÉ6·}|ÙMfekòÝfû¿ >~€<=]àB^Î2ÿçkì°›bOå§jßšŽémT>M›«!ûÿ4±/y ÆÅ\k¼x¯ºí s)³ý¬#w¯üH•îóNÉö3óæx·3™œu£2¶¸ß}êÊÜDÚ¤VéÔ2Ýìt`ð&§êp4ÒúÐWôÊhx¸‚?àþiÑâÓ¢mN’³G8tv¸N—-èiV/l!L“Ÿ 󹦫ÉƲ/4±l˶üQ~þ.ؤËn•Æ4¡l¾< Á§¥ÇÔ˜±J2†rºŠ²-‡«$åh=v -ê^ìq4]âÑtiésí$Ò\’¦KLX¡,æ*²b]‚…cT£ëÆR]2ÖE,¬wb©®^,ì’°,Ï%ÂZš«!»D„U—zÂÔ‹]"¦K›.!d]„Õô>,Í%aa]Ðtq©—ÖªïÀ³šž¥L/v‰Xç’÷Ûâ\BÖE„M—6]‚µx/"¦÷!dW'Â`UÝ««!»$„M—`-æ"#d]DÈz'Âê.æ*‚e½¡£mì~ì`W'Âæ’6]BÈzçÿ·æ’6½!»:6—„uñad– ò©A™=ä»èZn)î€C—ÆÜ[p',5À®ö2ããV¦„&bn¨§6ÈëŸõAÿ{ÿsï1/••q¤'G§|êCR€F+ ¹‚.¤bÖÔ°`~I@òU!*9üzƒ²1‡|1‡×ðE*vº ç§Qé!îé0*‡mT¾x6êB¡rÓ/` †|ÓUÀúïr»¿ù{ ´IVW‡·uóÞýÙa|=¦anîŸèíð/Ùð"ü endstream endobj 316 0 obj << /CreationDate (D:20150225101833) /ModDate (D:20150225101833) /Title (R Graphics Output) /Producer (R 3.1.2) /Creator (R) >> endobj 317 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica /Encoding 321 0 R >> endobj 318 0 obj << /Type /Font /Subtype /Type1 /Name /F3 /BaseFont /Helvetica-Bold /Encoding 321 0 R >> endobj 319 0 obj << /Type /Font /Subtype /Type1 /Name /F4 /BaseFont /Helvetica-Oblique /Encoding 321 0 R >> endobj 320 0 obj [/ICCBased 322 0 R] endobj 321 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus 96/quoteleft 144/dotlessi/grave/acute/circumflex/tilde/macron/breve/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron/space] >> endobj 322 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óû endstream endobj 310 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [450.353 107.669 457.327 118.509] /A << /S /GoTo /D (figure.4) >> >> endobj 314 0 obj << /D [312 0 R /XYZ 89 770.89 null] >> endobj 315 0 obj << /D [312 0 R /XYZ 134.584 448.118 null] >> endobj 311 0 obj << /Font << /F8 108 0 R /F57 109 0 R /F67 131 0 R >> /XObject << /Im5 309 0 R >> /ProcSet [ /PDF /Text ] >> endobj 329 0 obj << /Length 2241 /Filter /FlateDecode >> stream xÚíY[¯ã¶~ß_a /2°G©‹¥ )mwÓ-Šh E’Y¾ ¶åZrœÓ__Î[>› ´}°ÅËp8g¾!ß-ß|ö¡ž5iSéj¶\Ïšl¶ÐyšUål¹š}—t?ÍUrš?é*é϶8ó§<×ÉhËێʃ9H š üqÃhžme/ 9Žë©hèóÇùË?|öa1«Òf‘× „*š´nª™&¾$ŠPÌ"ÍëböÄK ˜•i™kÛ–ª‚Ûß»öYÐúšwE’èEÒ^lñÐçºFùRö¤ª2Íí '•§M±à©¶´–¢ª,~œ—ebÜX³áÎ~ ß…S´u¶ úܘ•µCºžИs M[j:ÀŒÈÆI¼¢+3nE±Ô¬¦ 2’ WP†+ÐUª2ð²v•¢!f¶&8ުȓ¯Y‚Ÿüú†{R• ëâcéR"fRYï‘Éå…¼UKê»z*š;ÞèÞe%áâAQŸþ!×/lÑêJ• jVü25Û•uÚzûmŠ\%Å”ò¿Cñüï‡)"q}ô»R=XŠ„'!5 é,·›¦ÿŠwõÈßÁkùL; U¡hÙ:WL½¢nÞLÙ©­¸æ{þAùê¶Ž’õ<ð…òçÔõ[ðf<õï¨éO䣠øÞµý}¸'~?ÍB‚/ỉY,<‹Sho Ò¼õÛñ-M ü½Wù­ïîñN¼­êté±….kï¤POš:!:!yÄ£¶õÖ‘âÁ÷™*˜‡E&8¬í%êxÆîk?R¸#kì˜lhAæîÜãH@G#‡-å¸z4sÛ“÷5;wØ‘óÍ*B:qvÌZ²ña…Ë  ê,¯ª2T٭΀ .c/’cKïÑ! ?S{^®ðïÃ)K‰áÚÒ„Cl3®sŒp[ÄÙ°LÖm$v1ÿBxn aN:¤ªÃ è1ÏXÂÖÖ‡hss¥|Íb e«xÄdQrˆwZ ¾Ã&9=Ô™Ž:Ë7¦çÙ<Úiž uòw :‚äñ=MCØÙ¾ˆu3ea(2í(Ð/Hµd>7€¦‹á[¨Žœ¢+çb>ÔžamˆkHĈîúFX¡åÏE3!nyw¿Uòý­Ñ™ÆaÙ°÷»Å4ðË[šMPæÞeÒ]·Ì·ç¸o‘PÓmº9D…šdóqa>õÈ©W, YF ƒ4lÍH•=sÌž}0}6<‚N°è˜05/ëdÖ"'L·?zãá]Ù1PéRö‘Ö8¯Û~€ô$w$Ä0õ Aqx=g Æyðù +4ƒé#˜°eÊ8¬hç(9˜)g}pe˜?äŸHÙ —†ªºÍÙéÈÍEI!úÜRh²ÌE¤=wƒòä*¡vKLÄh¡oÓÉ1¼Ýxs S8µ½4±ý.AÉ!нЂí/v ÷Iµ‘=ÐO0åË'Ý@ë)h1ÿž/ëÆ;˜Ç¹Ð[*ôÿ,ã=˫μ(“årè‚ØŠÿgDvÖW­/²K¼?6J-ÒJçv6œæSNá«À²O¼R>êÓ¿V風„ýÁü®WÉÚµ\¿.Rö)®>ˆÞ9;eÝgé ³¾âTbTŸÓ êÇ‘Fáh?zA ß37MšWM|ü^“ «“ÍÙœ;×t¡i¿w]Ér"]e1ÒåäÂúHmÚÛ[5Kf:Úò ©ðbOpoãB¤eµÚáî¨ÜS¯Øëz8ò¨œïl#'e‚AS¸:@¶¢†ÍvïJax_¥\soáAœË>¸Ù[ÿìØv <É¿`Ê®ç^Å´rÿ¯ JÌO;ÁÐì¡_Tš¸Tû•ñ­Â~?ˆ¶.gOXÂ…w]û—ÛöìnùBPlpÙØÍÌ*rÝ£ÂÂÚ²öP˜9®&ß =un"°hšyÂ*"$½ Þ®ú[tØuéI éL¦Ò’Ộ–¼áä•â—‰=UV½SÅ@ÃŽä°·£û«L1ßJù\ÀUüœáz™£âëýà2wD,i+7ÄØˆ¡†Î½ù'•Êm.ŒDR_CÀÑØžØ µ¡µ‡î:xPðy68]ø”0âO{pQAzu©†:P¼͆>x8ð–©»î!1¾Á.¾À^MŒì˜t‰.nyU­“CgŽ~Ñ…KŒ6nù×ø\! X(’‹@™ÑÇΩ÷"È@›’žøNâá𪯱0ÿvÿðq‡FHi‹]q*lBÃBF˜Â4Œ Ô“iwÑ#Hóˆ)¦\PXE'WžéVÜýLÚ :øé ðâR’_;…wÛ`ÆãdÚúsâo=×nù{u¯mTÿ‚_oC~‹(ñ—Å÷.'“µ>{Õîõ0|D#Ý‹¼x³\-ÝÅh,É'ê¬JKeK^¦uÅVkè{ó~ù柳]~Ò endstream endobj 328 0 obj << /Type /Page /Contents 329 0 R /Resources 327 0 R /MediaBox [0 0 595.276 841.89] /Parent 260 0 R /Annots [ 323 0 R 324 0 R ] >> endobj 323 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [234.221 198.094 241.195 208.934] /A << /S /GoTo /D (figure.5) >> >> endobj 324 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [245.953 92.491 252.927 103.33] /A << /S /GoTo /D (figure.5) >> >> endobj 330 0 obj << /D [328 0 R /XYZ 89 770.89 null] >> endobj 327 0 obj << /Font << /F8 108 0 R /F7 117 0 R /F67 131 0 R /F57 109 0 R >> /ProcSet [ /PDF /Text ] >> endobj 334 0 obj << /Length 526 /Filter /FlateDecode >> stream xÚTM›0½ó+8©x± ÷Öª»R{«Ä­Ûƒ—°IU>R ŠößwžÇˆd•Ó …ŒgÞÌ<¿™DÅ=*VE.w…Šwy)­ÞÅMý‹dQòqeú yÁñð½/ãocô“ž-”jk¤ú@-ó¾VºòKUneÅ¿ÖÑÃS[iK]Æõkl ªŒ´öñ/ñ”(ñ‡>‡óDï6Ió,Åç$ÝéRÔGrhkżPÐ-â´;ÑëÈŽñ•‘À¬Y½ë{À:4p;›–]d¿áÕm¥˜K¢+qI´#:ýeøy[Œ½î6µþ¨ä&vyEÞPnCg¥,”¥?-w•á<#=ÖÑÂoý endstream endobj 333 0 obj << /Type /Page /Contents 334 0 R /Resources 332 0 R /MediaBox [0 0 595.276 841.89] /Parent 260 0 R >> endobj 325 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./stategraph1.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 336 0 R /BBox [0 0 504 504] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 337 0 R/F2 338 0 R>> /ExtGState << >>/ColorSpace << /sRGB 339 0 R >>>> /Length 137949 /Filter /FlateDecode >> stream xœ”½¹Ž%˲¨Ÿ¯È/(ú`>©¤@€è~B •fS!* Oàï3Ö`±3«jGu ÷œ»NìÜC„»Û´lYýøõã¿}üþOýï£Æ(þg¬ñ£ÝÿúŸÿõãÿþøïÿü›ý¿þý¿ýøwÿòOùQJùÐ?+ÿù/ÿîÿ¸þëÜÿëŸÿôÑ~”þÑôýŸ?ÊÇÿûOýø×ÿþÛ?ðñÿémþˆóQÇþ1ÇÇç?½×«}ÔYÔññóÂóÇê¾Þ"€£þ¸~}áù£\?çM<ʈ ïuDZ/|~4¾ßõAãú¢ëú|^Ÿ ? x.âñc^ï·®ŸÂ÷»Þè âVWÃÖû¯ø±;ÿþ/~>Þ¯|±×çíëï¿Oðývÿq¿ïlÄC¿ýXº¾ðCñûßo_ßð÷O]??&®>ö§ü•÷«ñýÎõE'ïçÆ×«³àÏ„÷õúq~ôú/ÿ¿~L<Ÿ×ûñ£/ŸwÝæ²¾|ŸÑ~ìñåûŽŠñú=×cçËïƒÇôº±ý<|¿býØûËý¼°~Ÿï÷µ æùò<.ÜÛ—çuáZ¿àº¡… d6à…Û".üAíºú-x|Àäh^˜?pû^¯?“ ªñv®|.°n|„^ÿÿ¼=*úuÞ\Ï G`«| WâÊw¾ðõÍz\K-ñuZõ¸–Ö4¾žiïï+\¯÷ëãÇnÆ×Oìýz¹tpûÑgâB\î­|=ÚÄמÄÖÖ¼ðX|cÇõy-°‚…®_+"Œ¯[ÚëùqòúuæÇúΣ¶~yŽ8j۵宀•|mÁOâëÑã{´k ^gg¿Žˆ³ˆ¹Ö·®Ç^ˆW'nX À<"Ú¾–Ø!æ}m»`íó>´µ±"€»0— 0W@»~‡?ŸK¼-ž Àú~ú|>§_ñ;ƒ­ÔÎG;\yŸÄ×ý'æýì 7¸ñyöƒ=×Îu”LoÍëyŸt½ß ØÃíLÝ·×Q5‰ßgÂ!á죡b‰·s-[®¿ë ¸þp_Æû·‡çÛ/[y=qçÛËÁ#æû–},“X&L\G´Ž˜Âu<ù»Ëõ|±ÿžG°ÿ¾bÁWÜ—v¾7p)ÄÜPq„‹Ï?XxèzÇ}n GbàÈãú9ÜÀ{'î/üîyÇe¯7h“'É'ñur´4¥q-øk¯EÜñ»Ûez{!æQ ¼&qÁƒh0å¸qIC˜¦-®#íú `šÜàëü9À÷ ˜¦? ^ëiu3À<ЀC¸â‰»ðæþÀ¾ö×õXÆ1Æó+·QÏ㺑q=ÆvŒ¯|òúõãZC÷`£G騿ÂxžZ6ÀÁçU†L$0ÖÓ…ér¼ÝŸ¸Ÿ×>¾^×¹?°Îï ãü½>§}1µýú:¯/|Ýh,W¹—Or­[,Ï–çýõ»ƒëzp£b¹Êܘ¸}U×ÎIܮڷöï)çkàFcyìÍó5°î€—ÎC´‘˜ëyçù9`W€uþmnÔvñ€¯uÜò|>‡û™çL»\¦¡ý_ªññþÍó½;G~{×ù¶°.èJ~ ±Ï¯~?çbÜ ×…\±àúƺѹqÞ\Wre/|m<¬CÚàË``–İ38o‡1žïI×'è#õkùíxzio:>þ“øúáÆ° _ø ž²7Ýëÿ°»/Ìú.~}KûÕ¿âÎu \m¯òóÓ~¿=ϰþ.{WÏøº_À\8@;®/yJ8O® Ú.׳ê|*ØÀÀèµÞ¯Ñu ¡k×ËxŽâ¦ë“Ÿwažãqٷˇm×1ÅçzþíúXîû¸ì%¾Ž9bØÓB¼Žñµ~Zº¶¿â÷û«sý_!ý<àëÀ®Ýþ ìßu¼ßþ öÓLûrí/Ø»ÙòúàºÄqãC†ìkËü_ýfož#ðy|Þ‹aýtà-Ìu‡ç}m,†|^›q.Ó®º87à†Ð_©›Ž+Üÿ=oÒdôqž^nNÕù½3/X&í÷Ó6\oׯ­¼¥ì_ç÷EœÍõuý!ìNñº¯g*ÏRóúL{_žâ8t°w—8qþF¬øôr™ow>#>'†ÖüÕËrE¸qÿ£“¸â&\ÿ+Ÿwù«ˆëcÚîxÉž.<â§ü)ì îÂŽÍçÙdÿ†ìpâ]û}L{ÕdY®AìýHG†nŽ0í ö/ÆKû½ cäk>àJ\ãGÄÁ•ûo0~¼ðõ€•¾ì#JKufé¬Ëþe¾{3@ÆþÜ=í¥ì›KMû£8¶éïp¦}ÄûÝûs{v­{à¥ýZžík¿¨\ey½îsö ù˜ sýþa=÷ÌoV­_øÍé¯VØÃãx¿ò>+ŸY€±0%{HǤ§ŸƒuÖ–ó;¨Mâý”O }äyvÙÅÙd7áÏ!ï õKGiÏþ$íßN{×XB3ýKÔQ×_Æ[ö±È¤{hûÇÏ4AbÔÏFq¼xá´w%±ìay<g—}£wír*1×0η’ö %ÕETçÓœŒS‹ëKÕyü2ô¼Pë.Ú»#_fb:žØ_Ì£v^eoåÏΓöÒû‰6°ýÑïøíþBj²^wàWM¼“ Pu]ùëÉx¯Ãÿã~B!×›K·ú^À®2 eýOõªuæü0γk;h¿. àš¥lÔ?ëþK>m1 „ŸÅø€¸8]þSXqüAàÉu7^Äò—Ö5*¸Ó¸bÅ‹ŽMG9%kÝ»žWTo¬®WOâõ´¿P_‹I»¹é¯\çöi·!zhGUnp`Õo²³Ê(Àc#zá•ùµ¦×ïÌ¿•#»\×"V¼|O'îýéyœ­|$Ó*ªç 5‡ë—!¿ä3§0{”¯\?cBùË“ù,ä·fÍü—ó¡Eç0¿°êŠEÖ#t½1‡õAÿÿÐd:Zù3å ³ž@\„óÙSù1¸ÃÇõ9Üo˜ žW“C`®$lñ¼Ö±}¿~òakçëi'œÞW}®/Ÿ¯¨UâÈúìèr^ù9øikf¾¼ëý\e=×C~70òñ(ó?Åß]OT×ç€Q«Ûûòu¿kRx óìQ§óBpD†òÀÊgvæÏ@¶¦]FØO;À¼pæC;òȹ Àª¡~8˜'ÞYŸ‹yâyç?+óÄ^/Cyâí|8pyá÷û“ üÞ`þ þ›üà‘õœÓ×òQ=/w+¿Cõñ¤V ÚÀ:?ƒœ#ॿ_ª¿7Sø18½Ÿá§Ÿn*Ó`€ÌõÀýºµŸ3ß~¼¿Ÿö/ëíÁ|d~Þ¬ÿ¹®‚çݯÌçÝ*±ü¢âýX}Žàù±òŒ…h`ùa×óÜÊwú<`•Ë3ë½GùΚÏëtâ8ÞïKùÑ=½ß‹êíʯªú…)b¿â·ÏûŠ3‘/뙞&ôü$_¥y“ï²O.æù*oŒ:ìãð¾@\+¾ŒâÇŸöµ$†ŸØWoñcvM¼¾òg¾ã÷ö’þì]e~tÍÛ/Ëza;ÄKö“…ÚÃÄÌ#ÞöP< Y|~/æ‘ç]?<´7f5âõCÄ9³)N~ÚlßÇïû‘å­ÂsI–ËÍÚ?à# üœ¶—°o{+>KûyáÓ½¿fp?‹j8¸cÿöÛ^÷gM{>Åiiùü±]ïWýât¿ïíe‘ý£ßú)Å›íc$V½o=ÛCƤO1~žŒ€[Ú3Ôk·ã|Äýëè|$ßäÐþÄe+>aöOñ„7Àòïqì—»mßíŸò݃pû›½Ãýª¤õ|ò¼;ë«=Z</,žùE{d~Qds¥½ÃyT“ÇûÖˆU-ôÃ`¿Æðù‡û_Nú?[ö*ùgŠÿâøû‹}«iß|½>òU.û5åÏ‘WL2œ_¡ kÀöñÅÂ|>ö¿à…Àù f¾Ëî›ö—ýÉsÛ/¿>í×ïñ“ÿYµ^«üOȤ/-Ûî‡Èý¥ûùâw øÉÀ¶G¡¿|>‘¯°ýÂ=ù_´/¶³4èE|°›ÿ%ûsžâ3ä‡Wâ\nÌGÕ?·óGý¨Þºu^!?„ýš‘â_àÚH¾Øÿ²¾z2Ÿ¤ç™ç8ãíëópeüŽç1mçQOÂz™EçB4Úå6«ù®‹Xü/à~Œë¾ý°,öILÞL(Ï {{ZVOû¢ëâ뙟r¾ðQP÷:æñûºêKu-œÓ¯ÁçyL ޼;Ì“}¿ŸÄ×-CÏ‹‰BaÙs]p<( ~JgOñðeÀCÍ:#ö ìfq½ûqf)æªxð¼â5Ú£eÿ`°‡€áÕ0âsÊoÿ¿ç«TÅOäe|Š[?Nü$¦ýhɯ#y4à·ÀŸG|–2‰Uݬ²~-þ t¡ðSü•®÷;7eÊ¿K~XŸ²>î§){¾èŸÛ>õ§lŸ6qlÛ'øË«d¼´Ä4ÏTñ%Gò#Q\õ¿´Z¾ž_˜îOò›hßì/Ð^q›Ïö©+¾©aÿ¼×/ö©ìäÃ2aÍø'lŸZ¼â,@œoe§?ßÈO‚›Ÿü†>‰o~ÃQ¼$ÿáˆw}¬ãéIÞ¾ÆÈóT¼œ‘ö)tý9Þr| ºý;àM¬xIéMÉ/Fh'¿ HþžZ#DL;Sr4Ås+¯Çkyý|ÇT˜cü•ñ?ò5çÛ&¡‚ü.æ§6{HïM>ÕßkVcìŸiž>±ø^3±ù^Þ/[|¯¢¸‚?pÑ_¬éß9ÿaþäÑ~™¶‡›½Bôïžžø7°ß»hݱ~ÂÅöù«u¼þ»ì?ü»¬Wrÿä ùo'íÙ¯˜ç°øÊâÐ?.é/ÊD|˜. ̺1qù~â[‚ǹ™N3ßrËÞ,Ú«|ØÅõ¬ói±`Øåf;>ÚÄî c i¯`'NÉ÷¯â‘ç³Ct"•Ìg‚Ÿyܲõþy1/Ò‚ëù“ö9œÇF= û)jò³íu˜‡züH¾—þ°ù—ç§h²âg!?%Z­Öâ)¸Ûëu¢ ¯»~÷éŸ î?ÕߌCø‰Çøsuù{7Ÿ²$?ÿÚ·1ý>ذàÏMóÊ€a_®ýµ2?ˆ|Õ½¿ÔÆý•þ\õþÒûõ ¬ÌGí7óǘŠW?¯ø‰Oÿl‘VóÉûÁ|]ڋΗöKO{ãûß”_lÉ'¨Ì­¦üöžç²¿Áý²g%ý»¢~ùsSûÙë2TßfÁ3¿ÿ0>*[¼_à%l¾"7<íϱ=YåeØÐ¢ø¦éõ,€ã.{'à0ŸAû”¸†ìSÚŸ!û³2Ÿ²_ëy?)ßÚ»ùT*Ü«þ„…|­o•éµë3ùÄý}™¯$è¶¾#þºžw?ÉW.´WQòüÛÚ?U¿û‰û£ÉŽr½lî¿“ûçi¸ž #â™?dž…MJ-ªà«ÝXñlgÿÌ”ÿe~¤ò³‰›9ˆ›1ù‹7^òïnÌÄ<±žý}⌯šü¿qó!×/x¼ð»çÉuyÝŸÉÏÕºD<:I7Ñï<ëäé¾ mŸ~ìϰ}ê"·1íWUÖÈ_¥¿];ü¨–|ðSpýn­ä€ÿ.½ŠÇv·n6Rx~æ[vÖo¢9¾nƒö92_Øèc=™ŸB†õד_‚ó·G¶fj½ôf¿¯3Žn¨3+>aªšý ˆ7Zö®­%_&Èÿnñü¶þz †è-ŸÄ×AIs‘|Hð­»ûjê¡£ër±0üÏvtž×CGÇ•ø‡Ä°@žµ7à"©š?}=ŽyŒÍcW}U 惺1ëÕü–ÓåO'_ðtñÃg~Ÿ&Ü}Àä—ä·¨ÿð˜>ÌêŒWÅ¿’#ÁNåäËù 3_ÆÒS¾óžó¯;ûž¶Û1@/º~6 Ø¶¤WîùêÛ½œNq„~ŠÛ»ET|/3-)…H´î\ˆ Ðf|l»ó]Çâd‚áSfNÛŠ3G¡: !-×$œ'OßéÛªj×w~I±À`îñJ s²ÒÉ vcà{zÛh-WKñHÐ=³V>|ÚØVãÆòeÇc·QÆ^<6?‰›ŽY¹=mf—ÎÊÓÕ•*_³É÷¬+cÁ­®W/:Å6›áÃcÜìf“ÛM“¹³–ºò1¸?]J®¶bU¢f×ÅÊû‡ìh9¯ï.*ù«JË£+D]6Á ]#3ÿÇõ9éÆp!Y©ª¯ïÿ™f­Û.h–·1„O² Cæa[wŽe˜Ééõ£Ä̪º‚,˜Õ•»Çìn¹>¾ã§Îõ9;ÔÌË|¡œÚA§h›JˆlÎõm·ã%&sÆÇqa­Š€)ú¾R7׎K¿…×JÇýÑ‹©–wL†Eˆk^ª’žÀIJµ÷«ƒ úÈ ˽ 7•ŠÌ}¤7 +Wœ 7Lah÷!ë=ÜäØC)…L#ÿW¿XóÎl1—iù~â6…¨Ü–ŸÄ!ë§bäWº²ÙaÌ,24HC86N.yëYTƲ@Ñ}ÚºóðKï-ØuéQ[ïN,oQ¢:ì} qÕNªä?å â¸S8“ù[Ýu[³¹5 °Cä–ÞrS3¬šøqLåoÓÀÂ;{…¼nN§8:Ùétâ«qS»Ÿu5u²¤ð©àf*¡ÐÙ›Ö­À‡P£&´²Ò‚ˆÏF±ó ‘= ‚ã°}@xYÓPµ!RS¢Ó«Äs Aéø%Ùü'ƒº?¬o ƒÚ•Í82¨ðó–éb›–”° âØ]n¶ÜržCÐ;mP‹>ˆ¿t×üÜ‘æÖ–h~±¾ó¹]­‰ÏBµú2ƒ™m«9(Ná§XÉqÉRòE²pƒ}LÜ9¼ÁƒŽ “5™,B\º²MD}…LÞäÎâÎ;y sËÛÏ=îžöÎÐÎ-ñühPåzÖ•uÇmPƒ™x»ªLU#<™i@ÓÆC'™Žä¶ur•tmI'ÃÉæ¸ôÈ ÷—ýK\,™Æ=éšNÅ9ëÿkJ=…õnWÊxƒNUiGVmÌueAŠõ,t˪¨‹žŒÏQ…ŠònÀªIuµC5W„ºËã­˜.æòyKv?*gZör™ C´ö’oÃ÷É uX[ëße;£?®s ó—<éD\§x‹Xô‡"¹ÐmÙx Uô"—O^¯YmÆJ¾îÌÝåMW@d‰•Uh)ÙKYƒ¾÷+Y»õú‘åÈ¥ ÌxlÇ(üœeÕ@ÀëϤªâøµêvö~r‰·[w{%µl7+ÕVRm· ø(œWúÊrWz.ÛtmÔN®õ¹ë¤ªÃdSµªË ¼£wæ.ØŽYa)òQ¡’©(Y9‰[ª—ÜbºS*´ZP:ŠLý0f‡Í×뻋—5V1«mNíHYiæë·”šT„œ4vê¸wtجH ' õ×õ#e–úX¤šl¡CÑo‘q9)ÅÄ" Š†J9•Ûž¬<«3b°z‰£I•ªÁJ=°˜¥CŠ%’‘¬Ô‚'ÂtÒF2.É0ÇÑVSsë¨{ìàÀƒ{w-ÄX[¤óè¦`À0^º®#V)Çž xëúÊë[×w^g1Ò™`õ¸ctÎo+ÏWáÇ-UU¡gÄóIxmyA-ü)¨Âó(û˜½Qé.ï$Tv¿î”aשªVFí’Æ’—wòD¦ü ‘{hî¾ß4² e:¿ÚPÑN)EÒ2…b;¦Šy9_24A;¥Ê/Jñ–kÉüWWQQ¥Iþ¤Z>ŽvPv«dy½+üEùÙÌÇvêƒÀnÕ´cU¸?Ú±¾dWÂmÛÒéÄ)ÃB;nÔâž)Ó O ý:ý0bµ ¨­ªEÊŠfÙ܆MYg}~KYRÐ|Z¶}Ï÷Öâ»üÉŸŠ‚Eõº¶° GmqÛ‰xµM‡ê3i,Mm üdÓNK·]T’‡Ž» ‘&ØÙ¤Éxõ«F2œö➎.ÍKZ¸|3Xö©‘ §2¬1ó‘Ð\Ù¬}}£wgwÓF†i#™ÿâtÝ%n‹" ÒþÙ‘é)§Í‡ ²!àŒåÊ­ân+(ˆ¦Ï7çcZ0÷JþŠŸ»k“漢.‰³í • ŽA¯N'+}j’Ã~Ù“ÝóÜãÆß.»’QVèÕÝb’{MWåúì› Éž¥×^£"ËÎÆk‘²vê4öQïý—z`÷dšõ]ÒŠY[Ïz,œ¸ëqª¿ô”EêìCfb(3D”«ŒÜºlËĹeØJÝuU¼‰å^ÓÉSF«YNŒ ³ÅŒÇL†ÙC-³¨ßmO]wM§”Nà£Ó!ç’‰Ïé 5 ‰×nggaªCµø)#ZGRÙÞÕ"ÑýtŸ¨jôE¦ŒqÝM3­ŒëguÒÁÇõ¤‚VÛrÌEðˆaœ–4Óª¸LqaFpÇmïí3Ð]ÝhŸÄE[Êq•d·ípÕ\àsÓ@µåTÿ tjË%í²¢i.Hª©Üb–õ¤¾'ðθkŠYÖRö r8{}ç%üGo8{©;2O4C'IÀ×ÛïìJVöN7½5¬PǤýv `ËG~]ÄÞ}B Ø ‰·ýLõØüÂÖíB–GO=´(‹yqÀ°Geæ9ÖDS\ú†LÓn:‰%=é-'ñf¶Ù»•ž~(m;’éB{˜Ì³Njì‚ižuf$ MX“>Ø{2ÉL#µÙù‘üÉÞ]÷lù„äf*ÀÌ:ŸôÕ¡)#eákR j©/neUnÛÂ×ô@aÄf¹£°l¤‘Û2jnœS‚Ó‰§Â°õxB6–íºú5>éÁ#Œ9™‰h€}ÕX%wÜ ÏÌÕ’à}f¢ÚWÆKcÒøöØ·yW2ìQžtF8("id;ÆÃÜÊœD2lB\ÑÈÅp”Ù(7>ÂáѶ*{€“+_.e!íy瀩Â|ß+Jcwô¶V2Šá–Q ©Ètr¡å¼Tò ·u Èß²¢(-‰ŸŠð´yÕLðý~TÐÔ—RÄô;däT'‡fw0Ó1“>‹²kw3üDì½{ YxRºÅAí?&4Ò諸qËÉzÜL $m›™ŒF—nÓüݘ×#yˆÖÝ“t%²hعÒüs<=âög˜YHÜ„ÃF IѰæ/0’ÓQ½…;5€¥ ÒEª‰Ôé\ÀÊiu麵®Yô®²}·‘¬jÁ昰ò—xBœR…|ž/¬ó.qµ‘8“Á/¬2[⼿/¬-¬¬&f|ÅYfKlÌ/ø‘Ä„=Ò¯|GqR7é¨K£¤Þ³ª6{ižGO i–Vi2þ¼µ•»I+ÔFÖº•“³E¦éÍum}¾™}ÙùË̘4lé£Uc:{¶;¿â§LÖQY“½XÌ< ý5í[SFî¶o¢å·Ü/X7—ý4SÓñÎÎý 2UýâÔVÇÛûkJ3×Éþ! Ýìé¡â@¼Êœ»¿4ry¨Z¯¸¥«ª]w’ _ø©W‹=@‹cõZqOLØp,“âcèz&É1u-|t6õ9°; ƒ¥n†s.ÿ6 Ù©9›„šìÆëïÑþnÅFM+â/qa°-ëš+À,N;‰Á†¸û¼mÆÕçíPœæ8qäë}žÚ Éf4@<|oãô¯ª¾ÏÎóåÍ=µ®Ÿ´Ê§Ê»§V¹g„÷S×9.K&Íh&¾µ?Tdº™íkkÿkÁ¬­Y5ÇÚÏYxUûqy?uí×{¶íJÿ‹ÖuÝbþõß$¼ìÅR‹ó'J2r#П”ËÃ"‹eÅ.5×ãÕ©0–öG&1I Y)˜I:TÐÐØ»ö"6­ë,¦‘Ý"Rà]p±í™Ô×ÄélX©Wlž=è¢H|;®ÿF±†û¼lÚ‘´ã"銾çªÕ]çŸÙIÔwÌ*6g;Ä‹¤Ë÷Ë™}Á(‹ë$ òó³‡:¶‚c—ušæk2FV;VÏ`W ºóP­áïu†›¤×M¬âïT‰ºÿž_ðÛŠºr½²ÆŸ€(avïT)‡á’>A:‹·ê‹ÿoöÛM­;ó–"õ›¾“Â|±Z3Æ•âCd|îáÍADMçAÝ„|1;¿ŸóV÷"E…ñK!–Ý>¬!|AÞGHÓÏ8ܶ‚ÖqSØ·F©iGE’ ¥9&.ôX[ŽÈb\×?j¦ã€±lNº{¿à÷K쎰„Fª‚-ã0;m¤$–¸ me5Ò³”n, ãºGr z(w3RRf© ]×ОÒ"EtÎ~RJ^ ‘‰òúÍÊÏǶ”’®ÌGÓ¼¨#w"™  |O‘EÝòpªªÜÍhxM©m¤)aʪ‡”2—_Sj™x ?Õ®'ILäátœŒrE}j~Vê+Oæä@ƒà>5U#ü‘SC8bÊàNÎÄ•Ë{µB»¸Š®†¼ÂÕÔÈîòéÒN ‡¿‹:)-]q©C5Í¡}âû1Š.u^Û`:´lÒþ›Î¥uuýÆéÛÛ4ez°ñ€GûgÏuW“z ÞÊë-OõÃItý÷•¼Y”XÇÇJÞìõ®»Â\êI3»†Y?“ÊXËm²ƒd%Q`ò'욲ĔiÚÝ*=‹ý7ýOâÊ;Iþßá{=;›ª€>…÷·ÜÇÂδ&EO˜O^h™^§µô¼®k„$ØâÈÓŸj’ÞûIŽüR®PîIej¡µtG«F´Èš_U úÊš`Ó›‰RTnI‘yÆç«Iæ™-ó3ɧœÕn­Ê+J¾¶Èó­I‚MÊ2Ç”0±4#Ë%ç5"«:W:föühôÅ,™C^XÄmF¦«è§· gVbÓfÆçM$ÖˆÐú· ÌáX–6ÕLDàžçj­c¥$ï3ðH¾Æ^)mÎÑÈÑ•›°¦ä62à^ÌЫ£C”ÝÒJÛTS‚”µ´EÜSúàËÝkMßoüá ·OÙÞ `×,,±XÙmê¸ C«–cc–Ôsš+këC #½øKè5AH5t·,6¢b™1Š^¤šÎÎÒœÎî“qI¶´›ð¼Hvh}=GD ·]ï2ªEo« 9{©i8íðÈÏX=I£ çoÃÁA#»9´#5E¦é ô‚;ù£L\ /86‹LÀÇ¿UÚe 'f¥]Vï0¤0>ä¤c¼EnVÚ·Pó‰JùzØkdþº1·c²50üc²s•6&RöîýáÝFŠ_iÝÂÌ ð£ä‹ò38*€x¿X§ÀG×=:̬UeÑc‹m[¹ßÅæ­âêµ¼ù•äCªLc«¨±¢õ¥ôk=9­>¹±›á•Að3v‘°ÍrcçÖ½ùc @ž¹ë䋯V‰ÚÔöÚTÝÚ=këƒ,õ³¤hÞM\L’·äË. ´~žçbSp÷ÀVsÜ ÛH/Ó9=*Ës¤ø´™„ÝCÊÔLþaùq9‹GåùÓ½S˜æòºVéPwÚê[†õzvk¦ê'û"–ï Yœg¾¬ºƒ¿›¡êzm.>µ+Øár]#µëPû‚gÖ“ ØeˆäPQã–¯!+V†D¤1yÔµÍtàdðš{Þ’™;»Œ/3ï×”ðaü¬¼Ha(=ª©9°;"Šfqe¡†—AZKÍ¡NÊ«Â+¯«y¸QËôž‘NÏß³8›qXC÷ñy,R=9‹¯YÛ?4‹H÷‰?sÔ‹³J)ù)š1c­Cæ góíÌG†fõÕÌ÷sÖ_µƒ½4‹hdýbñArV_æ7›g=Ïj`W<Ô{†fsH1d&uªH»xæý=,ZBýÇfI"Óõke[›M×WjéMÏúNmWÎÏ£ê„f;€æ¬ðøy¼©®ïÙ‰X ®[Œ{¦DYT jÓOVSzÎLBƒý”]‵x†l›,vR\‹š$vîõô;—ñÖë›7š&$¥ªþ³&1Õ ¨QÛ< ê°U&Hô!{¨ÝõµÃuÇ‘áIÂl2Y+I“ü<Ï~¯*ÿ¶míñªV»–,+Îæ[Ä 7‡yzÄøOÎz„IÝ>Wªºl[ò°Ø÷% Þg-ì=µ–»ÄÜ"ïçÑšÙ”jc[³+†gÕ°àÚoÕë#¸ÿ¤.A‰ënÌ÷·V)ê Äî·F=ak6˜4ûÕEÄÛß7’‘±$Îû¹>çÄc—¦¦‘àý-×ç€ñ;WMíŸU^³°ïWÉÙÎr¡æyi!â|Ù®wȇ.˜÷'³·[éí‚Â0—ëZ‡„B(…gy*µw‰u÷©ýàúMü¾Þï!yµ´WU %[&ß´[ºªn敽 ]×9UU—lûÅOª/µ´_Ëø)°df§QÝýyM. IsM$sÛöˆ³$­ Ü$dG Ò°=âëOÚ+rC€»ê&œùÚŽ³ö°O¨ç•ÔþIª«¹§1Ó<ŸÇÚš­<ÍbÖ cÓUµž¡À4W&ú)N\î¸jp½Û^±i¸§=Â9£Ùd¶Oøûñ=þ{ŒÉ4Çžâ+s=Íí]Æôÿ¾ I-'¥õ4ßê´¼J:*RÍ–mQND’BÆîqŠÚí$7‹¾Wè¯L‹æßN|-R)IRñ¦.=« 5y_®:°SFÔY¸&žØÊ®ïø‘ÄgaaÆ¡ÁUƹ>*2{PKËÞk%ÀVO=öî·”á"9zrP‹ÚoFH˜xæu X\)÷6¶Þ?IBCƒ²–;«ÚšוŒ{—°ãbÇ©”âŒ;I„dز=  $”¤—%!ØmgR&CFÕ¯ç!~Ö‚\r*™Õ@F,þá®Zî’ÆM¯v+I°ô‘Äøy4ØÉñ<­LÈ)•“ÊCœsþ´©éR5N‡‚XÅ=QZˆ9 N®ð7òÔïFQïUƒý®Ä'^hÕÈ6È;Œ”.8:D_†œÐââ­&ŸLâÐɼˆqb%âÇa8{ v³_Nï³rKDäÖs0Ó”ÓÃ-¦²Öaþ"0¯» ¯É*×dI",¤Üd•ë­¡2Õ\"PîÙ'« Mõ'sõ…›HhQ>bÓ=Í“¤“¢ìcç UÜ&¬¼QQõðÌ̾ªSú$‰¤0XV•£ˆ{\«Fä¶³2[+fûYÎãHtx½ÞZ[“:zѤÙÍ·îç¿ÈùmÝ…®EáÈSG•x¸˜$”Ð’ˆ°¤ß½5×R.Ó'âb™·uëê-ž¶­¯;QOýä¿ÌUâ|€†*ô“C¨eMF«ºeV +—þRcƒ+¬-°=9°°¿ÂƒÔhýw.e*vR2$¨´¡ª-ê¹û\Œ†ir+0Š­Ó=¸A·ª”^¿²‹Î(W¸Ô5½J¶©ä¬ª€Á¡Z’I†Ç"·ê]•Èü­ã+üHPÂ^*' –ŸÄM{GŽÙ\"€¥êÜ<êöÈ!6K•pº ·¾‹à%FÑÐY ¡Úá ¦’ÀŽå4ôfe”ý,œ" y蔈©‘]àò€GÞ] €–Ž+t%‡¼¨lT;Ø…Ó5‘Bc^¶áàâõ«ïÒVE ×:2åêðVpÿ*xò-#žšg:0΢:÷+~·Þ†óvûüGb2-i­ƒ7ŽÀ`Þ±…õb4Kqò#Ä7œ]¥ZS0&#dBsºþ–qìœù¹Ýì„£¢—¹j¾3ƒÍ—¢.?¯òÉ·ðŠ^šú—ði.1J)| lÆ©dñ¦2Ýêî\Ðê!_·q¨¤¨Db2N“Q5J“À™˜?éÌÐç¯d„˜ÜɈœÐé–Ïx`P ‡w¿Û|u˜÷”Q þÊhT1ÃNvtTFÚÄ¢ÌûýnJ€®‹´_»J}+µ†%€s–‹ •XÆ…Þñ[ü”±…ñÔTUÆÖ”™–Ù¢ë‘XnЙ.‹ Ü@ºNo¦fÉ»¹äžý®úLiæ¥ §Œo«ÚÀ¶>,ïû¾–<)–‚ó|J´bØ…›¤ñ±B#1=ÑÀ,×Ir0Rî¬3LÏ—kro&sm-ǼJ¦ Õb¶ÉH yeÑeÂÃêMË£ ¦ûÒ¤éð¤éEÙÞV|\ô§š¨©„¡1çÑ,R%•Ü×TðëyæðG°c®ÿ¾Ì; éHx-ª•5Ù¬“RÙâ, ˆÖŠš–ƒ¹Õí»Ä(g|ì{økð»ïüÿ“Ø,CœaÅí>4[i¼ú—H¥b*ö†P+Ågifï>^Íœ_‘Í…b*jd¬0f kT«Íl!.7%ÂÍ[!^³fžš ÙXËÍ„ž9¤¸èH㩊päØ:wë¾³c® úw¥EÚjÌf|18˜à@¤ºˆgÜÔœ]ÒX\¿Ñ‚èúe9,QV5ãC (¤u{¶×‘(°óý—N7— éê¶œÁ!‘ ³Ù¬Ž·-~ɼ x­õÚ‡ÔgýÝŠU_=yÈkOŸ®]05g‡uåŸPÙU®‰¯?s¦`c¢žrû~[ªã!‹Í^a¼–&S†'–.Ò¿‹Í'-bºÑäòXÖ•{Ÿû: L sýºfF…míш›–EÀªê›OœfÑþF`ÉŠS÷€z`1çÆ¶Ë7}Uذմ´"}+K+ºY›Õª.…S%€TÌÈÁ~œ)鯑x +yZxfQžòé »äk±AâsíVj®3óf£„–§ÄŸXëÄz}SÞ¢%E¿;‹oµhàža6UOˆÕ¡ði·¬SO ˆ3~R‚Âó˜Ó‡ÚÒ"MY}Ñ]êÌY¢Ã—ìbŸ€¯6V¸ÓV€)Å™Í9("âó²X º6ɽ©š7AÏMÄßvýfjÉ»ðYô ˆ#ºM9¯Þ#Í”¸ÅÀùfþÆUE +J%¬&Mš¼&Š˜«žKƒðºy«‹„åévQ4}®eŸ+ãݵø/°><"šë³2ÃGØû[ˆ1J²/²8_¦–y¯•˜‹ ÏåJPSetí¦ÇÊÔþ2;ï:;R'ªÉHÝž&NÀîéìod‹5E’o"ë2Y¦0ó+ë’±<æH'öÉœ¯¦_²43_Òù%ÛL—׃wgÊCuí‹y+Ão±8Ý|@9¢N|úðû¢©šç—A ˆ¹fµªÎ­™yéÊÇc!Å4»Òs&Ë\M3å˜$0DZ‘\X…,Ó3oHÐ>:)¦‚"ÎËØœˆ}ãŽqÆIãÄÄ8ð7±ßbD¶ÓïľC¼—Ög.´d>åFvlì!G>k•ý°:È$s¦ˆ>ø $tG>"*óBxUãäcÈOV-’ÌímŸõ8F\šÅÅ#dy”¢µn’„O»Ž³‚Õ‰ÍDZ¨='£{kºÍ¡K³ý®¾SËGÕ|= ÓÅHÖ‚f p®“ÙÅÄ)Ê£y$³šÖ+¾%°Ò}T­¬ÏÒB$)¿™Œ©öNÝÓÔØ |*O~¯i˜ŽüŠe+‡ð0¡¿l˜Ž'‹JBOÅmZ: UU‚_ÝMEßg{ò%06쮡{J/‹D-V{5"øžY­&Ø#œä©”º¯3“¼[?«6M m+¦‚-Þùú.Üóõ®²­l½çxQ'dïyÿÊfÔ‰¦ñ£Ï®Áµ $¾#×@² j†Y©Jg¸pWNÍÑíï<Ýì¤Í4à™n"ÜtäÏΫü&Å0VÓTiž © Ššýt¶z™Ë°[²-›‘A¾t 8Ç»i«g¿æ\s °`7ÏäV”x üh@K8›<\5bËøËî|ÈÐLq¢OW†æˆ1­Î¨PÁ£˜tôsF¨{®;;?—v£Ï‡¹Õ¤pÌstÅÜ’¥õÖ=Æxuù˜6ÆË2¿¨Õþöô%ñ²Ô<5nzEä º“£ª¦,¨K3¬¦9q€{ŸÝê’ÔµÖ{žãJ.UÅ)?Õ© ¢ìݦ"Æ«-¥fáq¸;÷ø|!z}>ñ1¥‘Üñ±$ =³+L¹ËfÇŒ]¥KºžÊÁjÅôa6â”ZúÞÀp¨”\1VŽõñ¼Î‰+Kàêê3¼<ÎYA‘mήé. §†¹¬{Iôò²"JèÙ©WAä½áÖд/p—/P›å†<…^UžšÚ÷‚ÌZ½ c•Vñ¿¿`º7_°Ê¢_ñ÷×ÇOa)8‰ƒÕM…¥[%”“a)ÂÖÙ´¤LöHC¤nS ä+¬œÒ(pù˜ak%_Ô—X‚ɰÓM›‘¹Ÿ© ôšjòLñÞŠ9#ŸÿîO›D|¶&ù£OB¥,i(ÖTÒ–yx”ŠøÂéÂEyËÊðb!º¥2ÈR}xøüRhd*g(sš\Ò÷ÿÚ]@Môý¡ƒè“p²½¯eSدS°› vÃýþdгÛO„¹F’FV¹Ÿºߘ9»zDc½F½]‡Èpò¹Iìex“öíÕ)ØÙl:v21ɾYSÑO'‡BqrB>5:PŽ¡8Ó¥¦wÏôÐlc¥“C©yÊØôwU@ä¼##Ã)S>¼ŽírzœN¦l—g“éA­¶W4Qh».AЦ§È¹.M×S'Ä”šäQÓ†6y5 ‹O?ÒÀŒ¶ý]'è·}T%øÁÌö'CAÞ]åË8ð1à = ¹ø¨#oÚ9DgÜ0¥f­vË.~ÎLZÞ‘Xˆ·Æ¬BuÃü–‘ìîñ²Š‹þ1çq=>¢Ú$Ý´U³öÜW»º¤Ì¬õвåÎ’T-[R©ªªÔZ>¢©[Þ²«Ró"[Ï.MIÒµ‘IÏ­£qfצ4dÚr’Ó/Íj”¿â·é&IÙžMÂGÜI¶y2çÆów)m%¢3Vßú*¿8ìÖæ‹I#f¢Âå®~^4(5own‡Ò ñ¬S¥Ø¬ %CˆÕר›Ú4U¯åT4©ìS2ñШ•ý]ûædÿEu½ì k@f9 ‡'-/ã²_“7ˆëk ÕÛ‡@ÚvÊäC ç³å9<ÙœA§iP+.ËNÎ¤ä ¯þ‘!:eüL°%c›¢ª$_x¢šTf¨žÕt×‘Ž Ï_ÕóêTîP¹\­úÊ ‡¥:Ÿæ0i02‹M£FµbV‰xœĬu«îÿ<ÒQ!<ÌͼLLŒ”´ ’Fl+7s­·0QðzⱞûƒØCŰ« †ÌÉÚ54Ôi'-4É*‡é¨d^5:K¸ «…¬±C?Ðlµ{ñÑû‰ö¹sòKÕÐ‰í³ŒS™–¦î=’›ü=D‰þ$^ÖsKûÑ¥·çÒ½~gOýJ­ßÚK IhÈTêi[OSZîÇRû®¯.½¾’-àÅ™±‘ög¼2ea¢sI$1ì¢EqW‘fUòÑ:°BP6†iaSÚ:ÝîÔ̲`KU9y¢¤Lå5<2£0ëÏ,7·8•ˆtã\§X ʆ_¼æ·ð¯ðÉüPoHò„¿ßd *”ZOpIA¯ß52)†ZJdfî±çÜõ _´.)íæN¬[Š}Ù$Q5›§×W“þÔ?Oe‹#X åóMe¤x”>êUæ-…Þô<·õ=l=ÀnÚ"ßÇ­‡‡lR÷DƒÍÔ)JIÅÙÆÓ¿Ië•ý…Õ Õ:‘ÔäNÈ4•ò;|’e¨9¸-˲z"EZ¬-«sµH›Ø)W)éså._z"ñ„[yõLRv¡¼z*ñéCžÜ³ÌÜN®˜{úü6›Lòœ«Aʵýáu8"ùWô¦Äÿfº ¿iHÝ%¬ý?Uw t˜Î4ÚOSêù67ÓTokaMs»=F~ªnæ,&—[XwSl|Ž~7ãÅ”ëi»6âÅO¹æ/6Q|VAn¨ÉA67Ò,F NN*ðÆL=I¦ß4òïgª¸… €¶IÎ÷`whr_›nb윗ÎÞRÀç&‘3vó<ëB£N¬Œj+»¥”¢ÆÍ'y‹„A|gÁ,Ï=Þ¼éúJŒÕ¸[6ý,YïÙÔC‚6°Š…•=âGݪ*é'8•ôªÆ2uE÷܇Wͤcó%.ÂsÎcR\¤WïÙ‘Ë£©æ)ìsq§›½ÍÃo‰×K úí9è%ØäHHƒ¨e©z4Eçà–§ÅªÝs: ·Øp¡ºÎA“C˜*Úæ8VùŽš(ÓRH|‹FR–:s'¬•} á°j»CâqŸ é¿tvH[lé+˜SbÜ#Ëhäþ×,óSñ+™7”Tê+Æ”DJA)`ät{ªVÍ’â­.›U©qžW™b²çû°š?µ&°ÊTíìµ*õšCÙÙ*ÂAr¾Hþå ,9sKå°ný£:Õ'çñvpYKR5x›xÞ­ !U1µ:TõÉå4äªÙ¼ÇƒPQ‰FîÉ1‚’E¼ñû¼¶ê*ò¢ÈÓšJmªXj©ÓMì]!/sâ}©7iÎ9ÉsaŠÉtäøõúVõz']RoÖW/ÐÉxeÍ®N2"~Å4Š;ò`#M…sÔD­î¼Ù#ðèš’yâßRʯ»š±†ŠêžŠeÅŸTâM^J—'´†ÎLâYŒGZwšLŒ|Ôýwøþ‘i¸ißbMt͉¦O’e’&<’J·Õ¯džz—!.¯a,MM5yÜÎ5Ö¬%6‹¤ê‘MÙפ•“Ö‹,s-Õ[òì]ôðÕïø}™‹£Ý’üI\Ô¢,«¤çÔ³§„œé¦–dµRÓ[@K²òðÖöuf¨Ø¢¬ë¬õp~kž8õÕ¥œÙc¤ä{5{¶ìVî¯ü£À÷“UKÁÝUÌÔkêZ9´e)\vT^aÞírâ¶Ì™Ót¨Ë‚-è>v•±S=¯Ã[O +G^u–ÍZ^?*“•äýmÉýäêv‘×ÐEa> ÏÄY¦[Ãã<)MÙAn9±Å‡»ø—šøÇ‹ Îëð|ö%i5ÉW*y$)áãä»…¬""=ëmÖúrÉ·›àlæåʃÀÙÁ_às¿hÕô¯!%ï¤rD†cSƒõ²lN4ÕëÝ·z¿U(™¬ü t'Õx¤çlR|ΞôÙ²÷Û‚ä,ˆÖ,¦Û;­~õ”à aJ¨n89_Úë•2m“ƒ’ッ\F)gjT%ÄŽàHhm’'¬)q¬+\-s†Í•“6ð¤Mëê%/Ên¢¸TWf»ÜÈy¦T¾­ÃÚ„¬3ëºÉšîy zÁí;Ä=ëÈÅ Ùaìv½}·Û©ïn·ëû‹"nÓóëYv, 1_ÇÒ±ïm=ÔgÚ]m%¡ÚïZ¦n«›óšL‹Ò„C±õº{õÆN%z5ç‰×/ôQ0½ÍÔ ³K™“³ÝÆÆ»Ïññc8Å3NÌë5|æqÇ×)çYŽÌ=! u”<óœWIM™6‰nË•4×ËîŽÇ-›·²´¯ìBØ}‚Mj"h¯ì ºT ‰+AFC×'I‰]j•²°1#å?&m%µr’*q¤•£öÉ >l”äM¦4ÔÂZcäßÚ(É—L®AØ$Ù°ÉÌl’äÔÊÞUîX5_m4Õ6¥å(Ýh#RCôÿì•«êìŽÔ•Ô Q5Ä2 [7¼CÔ‹žn"ùR)b÷{¤†Tch ÜŸÜ>EÚdH í"¯òNÆ!†W‰u:©p”rЙJ‡û++E´ºseÌ&¸%Öíü÷<¢b8 [5£²æƒ®íÌúPdµÊïð}d¥N/…kЬŠÇ>)2R¤•yŽæÉl9ª©8Kœ‘UÑX¨•9rŽ©Iy±!Âz”Œ¤Jâ‘Y¦×‹>=§ <ŸjÊl‹lJ£kFcÉ2®äôZIeYD:Aø“‘Σâ'ÁÈg³­Òs$¤k^¬éܤ3o:†:xŠÓÕÔƒÖ܈yëCÍ™x´2½¦[Äq‰¡TÚéø‹I!ò”_[oÎéßÉl8º.Q¬EŸƒéJâú7)Ve—IV~p²Î ,eɹńÈäÈdöØL‰ïø½Òä¥àïú$î29÷(€Má+ßN •Ô—R-…LìÎS'A,ÜÈdE˶¦ãWåø•›0Xäø¥IhÔÁ-LBá“¿T 'ušæo³Œ^”@àʪºMé<ª¹»Át±ïŽšC'MÂ4,CÓ"#œHíƒf)vf4r¥[ÑšÈÝZŸ$ÑÏ-Nñ©V©¹Ü²¬¾>RQËTã™2z[ÞñL™½¡›*à±x…Å.Ð1]õzµ‘ž÷ÄwÇ´Ä1´éJM±Œót®qÞÇ¢©Ãã¹`…KÊ¥Vq¨ŠÖ˜‘ë´;3rÆÚD•ý´#™¡kšW¢ ¡•ÕCÎ7I»udG4޶hÜìÙ©œ¥ŽÇ³e§Þ7ŽiâjÝ«Ù4¯­ª¢ó“­)ë¥6™-{VݹÑ4´֓dJr·’²‡Ê˜¶,窑Ø kMÜ“’²½äv‘Æ7·p*×z UTijì¥ls•uÛSÔlÈ1é¿ÄNKÂÛÆxcøäµ¿pH‡—E |a­¶‡‡Ö›ˆ±rCkåû3ÐRט:Â&…ªÙzzž 1£1f¨ç³‰­ÿÃÅÅ >O¼ÞZ’Â¥¥(53`Q\\£Ñ&^ém_J”ÛÐñGIA•3ßC@U)ó/Sß$ÜKéH 5§è åx> D\n‰¹?̪b†sqýû¼-)®.íê!~øq›0²:Çí³VçoÙßÝÕžK ün\õúòp_ëSd> ½¸6 ðº÷ÖoIY²u=©‰Ä®™u;$?b9´Ü?]øÙÇó·¨Ó~ÊÚÌ¡C¼‡®?:@Ä^'LØvJa)jêl OÂ×BźÓýí Jû1•Cã¯óîlÅèlÞ¾‡ÐCÿù>ß:s ýd*CÒ™TI {zþ’@olKûDÒ¶„òzŠ®@Ò½…Z>?%p¤C8çÇ©ZØù~žkèõn–¢ t²#e€˜°Ï!««È|òóøA†Hu¿Q_öŠâ’ò¨†0Å8 ¤6x~ó~rÁub¦Ã"ÈijÙœA½gú‚ºÎŒ?\EÞ‡ˆV£%e"$~6Ü{pȦ&"ñü ú7Àô?B¹¥– È¿â·Ïo³E·$kB5~`2›Ù‡ûMN¸Î§,X_7 îaé›Q¤gJ|­ëHý…aspl“nŸÎ·M¢Ïk?n¾ø‘·ÔÕMux(y°`R—±ÿ æzŠù©"5‹æAÿ1jòV4 $Êyý=Ïe7ýcZç‰øð–?¨óçøý~»ñœ¿_¿ƒû¿Ÿ_ðßü œ_­xx‘àuNl£zp§#áw­ô?(-5›<» qŸlx à>Ù±"õn2[úûöb‚ó¶~=?'ïÓJ¡Œ%ìiwÌ à¾=ޏÄñØ.¦~ÉótzÞ-ü¾Ü_bÐo SFtåýÂïqs¹෠–z?õŠûÿ¡Ü)U$îý%=TÚ}àPl§Ïû¿×Ççô$|ÜQvŽÙ|–w×9·ÖôaŠ?§'ƺ™CeÈÅ~«©-½ñYÆð"‰Æ‡Õì·žtÕq©aZŸöï1þŠMÃâžý¼¦n#Ð+º¾2UžO™ºžn){¦f‹¶´Ï§šÚl%±ÛRl³Ï$<›¤45gîØ¿Wå¼f<ù~hË+œÄnÞƒ¬VÉă6¸%µR.ŠCÐ"å£FÆ%JhÃÓíWâˆÔ~`eS s_ŒS2±„^|¹•Jô¼€QÊBë†ZM¨†í¬lv%ÛΕ½Ÿ9’•7½ž#°ò6Õ{ÍÆ’ÈPœwãE0o¤xYòoÌ¥¯ïïqÞïû‡3#÷`‡(0öáXé¯i¸áp@hä|O—PíÍi áj¿öx )›ÇûƒsQªª0ØÞ¯òÿº†2…›ÏBcÉéV<îŸi‰uÒ|?E`QÕBûA‘çU5™'÷SÏ&é¥j¿Z& ;ðÌ×#®/#çÝ¥ÚŠgY¹TµYb T·o˜´‰Çê¡s7~äìu±›¸Þ™gé(µËñP•¼ÓH<µÞ3>åµ¾‰µÞw¾~¨cw&žš93þB•¦­£Þ9¤ìäõ¥¡i`l$Òбýáç´¬*ql!>)_Ø5”Ì:¼:ߎçö² !dò· ‹ù”1ž¶?CCÉVÚ ‰,fGca ~*ÕçÆ[Qæø)¿Éé*ÍWͺý-ä ‡YÜO…ëßöˆ­ãL#ïæ%ÍvîJ¶s?‰ |ï§=:¹¦æõÄ¡ÂÈs“(ƒ×3Y:UÓ1qÛe&õÒ èÆ\ÿîgkäéâ&aDº°ÄÙ­ÚVüü(:P¸J–âQýªöSY YÜ+÷ò8µþ%¿pèÀ±ç”þÙQi<ÿržìx·Ÿ9Ï&95Å;”Ì¢ª®³ÚjJéOu²_ÊçoŠÓ±ª©ë/A<á®æn—0Ô±ªà"¶Ì¶ÿ˜Êb›?V%ÝIO©§™ú7ƒØöA„¼ÖSÔDu‰»TGb5‰kXaÏÏesm'ö”uQ+ÚHûļ"õ¸Rޤ÷6ózQ]a~_w¿íŸÎò;Êl8$ÖpWíŸÎD -1¾÷pk80ç{y¾5p³½ÊëMC7½8ße–nlrþÔu>xîÏc¼Elô÷Ñp½°&ÈWüô¼àOq€ÿTM!àü§l Çx§¿E­ÎN cúgÙú&­,úaL6ZϦιÃ~®ÙTÐåïÍÔÚB²ìôy á±õ¤Îà<®ž»D\^öê½ÇýÒÕ ú)\>z±„?‡s5ÅrÈbsk0üë,ˆvµ)“Ë?¹sÿ,æ-Y¿ÒëÙ-ÀI"aŒ×W7Aw ¿²žõhŸfh~Z¨à ¼çKq•sȪpÖ›¬È:²¾„ùn3ã'±4‰óúÔû¹~%¿gzh-pVýJT©™…ß¹5ï-þò<:…°8XõJÛ¹å¼Ix¾¼GtÑH×éþKôqÏ»²³núëjPè%©L¡a°%ý9n´ËªwÑ1½¢úRÍú’ëYZç_óåØgšªö ~ŸŸ¥2 Ê3l¤jê«ÑÍ•½~Ë5Ê—åË3ºi'â–îÚ$—ÄKõ& ¯2¾–tÐV~ê®?í¡ü¼ã1ŒxÝb[`ÄêQ:O%çDüÄzÂ@ýh ‰Y…û‰U_:‰•ô™^V½‰ìÚ–Âõ!z”ÅîUZRÐ=ª7iÞÄr,¤„c {হ”¡80ü|—›Þç‡(6 Îv=´+äï\oà¹Ï<§êŒë‘¿»ë¨ÖìE9CyÒTª9äÎ!çzR(ÿ—ñÕ Õ¯ÌRål2åóž‡@kö‘uu?…±üåÁ‚L7…1òë§8¾Åý_Äò?ÏG–+ó:Îñã: 0îwö®t ]YU[|äN³’ó`ÀÂrÎãþÙL…˜| oæ³%~±‡òç;……ù €åOlèHÏ8μ•Ó›ÂCõ(å6ïð÷õ_sÖb‘vøèúc~ˆS¢+ãf yv¿gSáTý¨åpšI>1쓨¯Sq@›9/”‰Ø+ÕÏÕF\ŒQ§id_‚ïßrHqߣ:þZM| Sî²ólý™ÀïÏ;¶†vMqûT½h{Pb¨þsÏ`ä<à’õ#òî=‡l÷¼^…õüݤ8ï Ts!$ëKTwÙÓ¥€Ÿh58äÊ•JçÆz^Ì/Ð~h=Ÿ¬ïöÄMíUo[ûmåë5Üè,×{Õ·Íã¦wÙÅ»J|ÐÞc°`Ïü>Æà÷zÅÐúežñ“˜üƒ#‰ÒC{ây9T–®âGÙƒÔS8G_Vý<…pùƒÊ‡é>íÍIaîV‰{ÅȯHÿþ°“¸g>|ŠøNÌûÝþˆá.|ØŸ)Eõ´“…T/O`Žgàòd~g²NC…va¶a´e¶=nØÒßËÿ÷ó˹ÉáóuEÚ3΢½IûزßûTôþ5ùþûú”_b"`Ò¾È*UPYW+¤|ÂÞxþ.ûûaoVÖ—p^^Xõ¿ã:\M¶êÒßg½öPz"jÖÏuÖ废/ùnN{†xûñ<My.qBbùwʇÒŒ±5Œl°-•?7ý±?·;ÏÒ’ÏF~Åñy7¤4y×ç‡ØÜ'gh5¶æ\\'ùóŸßP_ßðçR¯As1€EL•¨bÌÈz+ häă&Í,?±Á·ê‡Óv¸bùç;T½ÙÉCõZ×åš„}°?¥”'UÓ¸ùf°WÚqÛ4¬ÄùÙ.‚±´W>o6aÅŸäwų›ÕõÂÞn¬×sS^Bõ 54ç¨ht\ØúK±‘ÈÖ_¾¾q’@K0ü—òþy±ž€ô‰$ÔÔ[F|Òž\öc¯´CVü´8 ØS‘"]£z¡µ¡÷Î×s?ïÄÈÓí#2ù;ûvݬ)¿ÛS|ö}½~ Æ É>ù)àó¬ãw³å™È>Œ¯´þƒHó x‡ÖÕ’o´´?¯ý®Ò’ŸÇ› ©!õœW¼D{¹2¾ÍõÌ×þ+²_ûé¼c}ü°>»åóþDÄ‹_´‚õÙ’õqØ«˜öçÎT=÷¶WÔ‹T—f=|Ð_œÉÆ_âGÌ´O]õZóÿjò•¤¯rŠü¿–š°ßñ{{ÕÉžæïƒ5íÏá€@«Ôt^ŸÀàÜ+Õ?‘6íO0 ìœse>ó¯¤NÛ§©YÑáHÑCbíUúæËÖäË‚—‡|Å?õ ÜŸí¼YHë xd½÷›7€zù²=í™þ»é{3ß«yUù\ų»f½q*ÇX-Û¿®1XÎÿŠ?¶‹ëûMüše1ìó'®_kBÑ£ˆ#íÍ!ÏÐöŒ]Å=‡¢bƒ#yRœx‘H¬üÝ2ï0…¨ù'ÀTØšxîQÖôƒ­Åf—œµ0øš~& þÆéÏû‹çÉÒäÄä÷…Zózòûš4]ÏâÆ æBò,rk¾ÅÐG›‰ð\c·p†tóØ•ü ÏÄ0¿©~“2Áúèå)^ݳ*j®‡ýÒî µRÚ/¯S)y|ç%ü‰ŸæÓó“/JÞ0òQ£È/uB…|¢<q¾Ž/ÝgMökåùÇýS³Ñ¦j¿ÖŒÇª„_k6þ0Êpå¶oñáðåÉ_\²o¤í}WÙ#ÅS¾6wÖ74hZýOÚ?|ýÉúˆšhæI¾ ‰é\~Ûûi ÜOþ{Õ/5†s‹ñ0~ägž£àj¾Ã ÷ä‹ñÇI<‰O66ñË[6>Á~•ä_øy–»QŠ-Ó‘~±xŒ3ßñVŽš—øp}®·œVUŠÏÃõE2:4*¦)M¯zïÚ/‘«Ð0*îäãUW=j§ÜÃÈósô—%ëc3Þr?HHèdýªYvüù¼ã#ç¯#û23>*в1pK,räX¨ýê¿È|9ýµá|Ãf#ÀËÞìŽäÛ²O‰íú¼•ö莧ÜÏQó³*,°¼ByäI¬þš#မ]»ê*n™·B=þÛìö/¶4<§Ï³®¼¨E*\ï É`+¿GG° óÞÈgS|wŒ»ßªI¦w%ÿ©ª¥tšÿ>ÕzžMØU7ºÇ!áæÉñÊ7£°ªóYñþ,:¯§ûrïk»û×F—ÄùݯF™hÎíäóKÒ-ûOUv®It­å¨P~»çü<ø¾9>SC“"ûÞ<=XûµKV»…ÅJU×Ö3á ¾°üÙÆÄ~Ô#a”®Éïn |X?àzn¤Aÿ7‡ °þP’ŸÅB.ù½©Œ{PvŠQ‡úf*ã+¾)#ëí%ϧ™üþ½ãnŠúnþ¤ü é0:~ý$ÿÏcROv‰)Aàý¨êß`¼{ŒQÏß'ÿž âÇx¸2nSöXú;›S‘%ÙV™ÍY&YCáúÒ˹.]®µS«‡¦b%“µ2³ˆ:Ü6¼·íûÁÃ1ÈJ£WÖí¶ç¯®Òùö0WÈñ¢´¾WŽÌæúaJ‹ÏKáúÎ-Ü«·?à'Ù¸ë×’áŒ\ì×Û¯ýÒŒ»Î]^£È®{›CI›¨â(½6Jw®©Ñ7ßùîNæ†NȽòo™pØë/ae8(–ÔýPŽâ~(ÚÆ[|¬”lÖœsˆZhæ[“*Gu¼Iepm’¸7EÑ8â{Sñ¹Š*ø•Ղ國¾¥RñœŸJŠ2ê ÕÓT߉!^Ó|ñ(Žø!ZäÁ†Íט頡#¯©¤]U?XMLn˾›¥þ0a€]®â±ßyŒj„ì˱Bɾð‡SÔj£H¯¨ô[HÿÌë¨[öñò `/zö‘Å»-Å\‡DJs¨HרŠCõ?à÷~ÁÈMÃQ/¯J¬1i¬ÓËO¨™W–*>,1í¨òÜ´ò#Ø—L,»ÏÆì¾sº«ˆ²}g¼5}Ÿýv”—öÐ#ÊÄ9!‡vuç#ÖïCÄ«W^»è9îTN·°÷‹·º}]v|)¯ž‡ò@ú~ºPÝ8íþÖûYDz‰ß YtiAîP0µ´:±ø½Kª=µA»†l±b‚AÃá”ïèÖðl¯çÔ$õ®|¾¦èpvï‹ää0TDñ\4IÁ[Ó“û›¸<ò^GŸšýrŸÄìÇñPªâ‘KxJU<ƒu7ò7y^ –·ÄK!0ØÌ‡ç„êñà€ 7¸Ï‡þÑ„%©ÄuõG´ìûè’Äož8EÍ÷BüØ·Äü_<ÝO…cY£î¶MÓ=ÉM$ÿ†c@ô.fji3æR#™ :=ü’Ä´ÑúÜC}^Ó7gxe´Ò4¥.â{Ñå·‡ÔYµCìEyD Ù‡°nÕàÜJ¢È–$›–7­ªØ3}S«œß‘ØÎp“å©t›<‡R…¥˜¬AS÷¡À‡¦CèQ1™Cá‹„d9]£ÓA­'ÕW¼ N9¼ N6­õ£yn* \)6QŽËB³ÞâDEO”,šW0ä²91Q¤Œ`V•›t{’ŽÁ/zÏ[ >/üþy‘å@Ò5=-E›0Ú~^ åw²¼jµâ4ïwÍ¸æ „*#žø3v-‰uì¸nÞ«È$ê¿§xÿÓg⣲“ëÊ›5û$Žï©’H‚ Pèy]ýü²BM’¶+¯Yl{Æ÷C•n9Š“z{½ähp1R€Bà¶ûûJ2ù”x48¥xÝõ}å\buTRôö÷™bûäø0Îb%É Žá¸9åÍM¥e895Åyé-'?âŸO_t•‡äââ"Wø­KíЃœ—P§ž]8™—ÚfÆóÔ+Iðº*Cóù©È¢„$eðôüž_øùËež—.A[yðy6>¯qÏ7]èߥG;†qâ^ ÎËy}ñ^Ç÷oP©ó÷Xö‰e–1o/‚Ýt÷çÙÙ,ÛÙu¨Qd,+xú¬%‘†3ù|Z±h„óÖëyâö|Ö²äqªÜ ¶ÅûLi%¸ê0æ¹)èeK³ /™V‚0Õ¢Aù¼á'ð®Ò :“ÞMb‡K®|~4´FôóLrÛ÷ac¬ó.G»ðóîL’Ün §eü®žÅe£6•Ä–»š!­–©ã€Ï@^Úˆ€À6ïÇÑu€Ó'†YåÃF6°š8úå°ôùÃáñ§¹´¾!Z›n¶«Q\‘Ž'Z³¤JCˆqÀ†\K†]Ÿæý·$¤¾i‹µäѱé¸ÚõRÉ$³‹©Ð;¯°2ô¿›íÔêÿp[î™â°½¾˜™gßÌо͛m#…o¾ÎLÄrNeÒ¢'v€‡oÎÍÌÔýóëØÍ7+צw.£;Êʼn+:ŽÉ oÓÎíb=ô”Óš ÔœrØ“GÐIGr ùŠkÝPtzs ù[©ýÀ‘k_N^à Ë?ÖŒ9Ìù¥|l…']…š1›/ÛŸñÏ'‡{k«mj•ÖÏÛ/<3Ù2|É *[ed ÞφW;= ÿÓ×.ߣYÇ7_±‡ ?Xߺ\—gà« N¶ã‰-µÊ1¬Ü1uÆÅ›×f׿BbÂã¦r»Ó*õ÷–<ª[e¹/˜–H\‡\¬1ƃßV\åy;Ã߬½Óº`–ÂÌp¶®²ÂçQüý%6HXÝO|>Ý·Y¶ÆNóû-üœp1¯®ºLÿ¥¬C]¶ê´0XöYëszžŸÚ§¥ŒûÖ>U:M¾éà¹g̵¾¾íÐר>ÑQ«U޵tȸ}Úô‹;®4&cZ+tðbpžº2¾ÑÆÐNñ|±]k„‹B㮬ƒíÏkë4 §sÀïÆP;ÿ¼äR~~ž¤c.m 5Œ;ºý¼.ì¾4 h(¯º}ŒÛ$5ÑiŒ I&Æ54œö –Æ]ë:8w9Fóß]T•éƒSú>Þâb†˜A*ÃB•!Ž*i°ÿ %_ÜèÕ¼îµéé¢qïè*K´êüò9[ áÔ©ŠM+ª%jÀ¦üRs±ƒ7Žˆp½ÕVÈJ¹½ž³^X¡Õ[e µ‚ªs‚¬’¹êÀßK·â¬”žŠœ÷køá·Íx:Æ=z+Bu~ôÊ‹ËðNo®Û{ÅN‘6Ø9Vš®e\|R\·Ù¿ócœ»Ð¹˜ô:=>òUÔ=·}Oª£’Œ‚òyeÍtÖXöTÞò¹‘¬ÂrÇY…ðŸo„Mþ ­ý£æ9}£ÌYà¾Püâò9ÎŒæõt´(áóœøc(¦\ >ȘëjòyÑì—“Ñ,ײüó)ÇØ8Ï1ÇØ¿ ÿw7÷ÿ¼þÎu Ú¦} NXòø=£`/¦Ïbn™qX·‡èÿqÜGyêÕµ#úüÔ*“áñ Ƈ68ø‚ÄäPÆskÜX©3Û¶:æÊ5k &¯ë‡3(.w}0ÜÞéÃçc:ÓiÀ2ϰñ^Ö3lç…vº¨ŽøÝF|~zíÙ0Îtƒmi—|=ÅÀ`y7”¬ÐÆÊ#0eQ[ëCˆ6yº˜#Ö—ºöåÖõÀ “mow²*„-‡LZ(ǰÚ*qÛþŒÞ±Aÿ ÷JîDwÉxpÇ“>ÄäPD¸˜#1éTì¥'©²tH'±Ù¢¶7ãàŸç!¤Õbïè,þ>¦í¢ˆô§¼ÒÕ‡ÅEî!ªÔbÌCÃâmP›äØÞ³s‡þ„‹ k 0§vЩ.^hZsÄÍQñ‚º‹ÌŽ`¨伫ˆL2;âñÌ"Þ.ÅÏKè`Üüðó}8ž$l¦ÎôA@ú>º˜±˜6˱h×ÉtøùÆßntL;¶™ˆü¹Å9•:rhQœ¼õ-}ŽJ`"s¨~>ö_0ïnŠ;çÕïüŒ„awÒ ±¿Õp4ÈSƒ Ô–(B£áã¶;ç{úSÔƒ¾B’Ôöù_¸½À˜ÕÉe8ÎØþ–,,.û|–†{¿/‡àK *q†º¿r¾tWdwf¬/©Ð%"Œ‚ü¶qv˜Õh¡/±-¡5›œ7Ô§Û[›üœ>ì!QÌÛâÝ{/Kÿ«ºˆ7 GÕ’yƇŸog­$ã^³ZÃ>}*†h”Å]:Ü1‚öHŒ‘meÖ‘Íÿw²]ò÷‰°8.ĺ‚÷æËóà–æÉtUQVò|ù°pܾt²V#ÓLY‹bÏÛL¼ÃC³R‘<<¦K‡˜kÌb‹‡‚LÁ£åH¡¹•Ë84ïU D½W¸(Á¶$I˜5JòÊšÒ™Rk8¹?—SXŽk;‹ZV½´§Y0‹¬½«1ßa[R€á»;ŠÞSLOfÏ}=I±¯lºÏáëL,Žm*àfÌ‹°ŸT 7V²<š²ŠlT䪮eï¿Ødq4Á#q8 k.;Á¿«Vë^=x@CñäçñÚÐ!î .Kç kÓƒL|l 2`Vs¶7MužóG Aº:*åRý9†¢™À$ŒÀÄN;DÆpþ1Q~ˆ-;þÑÄ5 jä>5¹0Óžw º¯ŒÃ»þ¼6…)öðD„q[ï)F;Œ9ál¹ùr¯ÛÓ\ºcïé&],Ìù¯ŠéÜSû`Ö2 ¿Óáv£µ@¬œ~Å?/‚ÝÍÂÄ«¿»Ïf_{<6ןO5ÿéó€ªn»^Ü`a—€d>Ï7 ¡£Š¢ƒ²ÆuûK—*Þö˜cQEOã ðâc¸pŠ5Y=°» H(ó¡ƒSïoâⶬSŲ¼oÛàB'¬Iõ¿ŽÚº†íYiƒ ÒgU‚È*©‰˜ÒhJŠ®Ò ¦q¨+ñÜqáRœÕenÃ8ÎkÓjš¸¦_—bŒ§ö?ª.ªâ¥DÂß À/)O ^ÊPŒ*hò±g ‚Ò”Ú(mÊ2æXr‹à$õŒ'Û "!{ñPYn/‘Š3ž$<}kÿz{ðÞ+¤ÐëgÌïsk¼âmÞßæÌ¾pðÞå¶ ßsªúÛ4€©­®½¤>ê‚b-&zo™4Zö"¢×ªÕ„I¸i†<¤Ê×þ9V>¼ü°ó8 ¨„5xÿÚ É;L‡ŽË“pm4Ú¬Éò¬DäXpE'ìad)tùÚ³/¦ WZ-X$ÈÄ“²€¬Rás„Hew¾‘WŸs?ç·Ò¶í¼5+‘¤Þ°Åœqž'»Žda3h„Y Cweò÷&Š•ÀœØ¨áI n¹°Êq¼Ggç÷Ò§Ù¯DT»T˜&t¨ççÁ:gÆñ:n‘ª÷iêzHñh×¾A¤0A Y;Vgl‡."ÕcÆc$1.aæpÇ’À¨ûñ¸`œþ÷æú‚,:ÞÿP« õ9 nÒ¦kSY q×yÌóÖT÷äyÌ÷8ãªóˆ1Rº¸qpϪØççGlP¨?ÄÚ~#ÂÞú£ÞØøï³ë]Ç:þ ¦‡eYZíàÚ,Vqð}“]ž° Qªräùa’ï‹(„ÔÇò’Šìvך÷Võóf£`GóXZ„Eœ::Žjw‰*âf.ZÀTòïü§üxóoËH¿Îã~»oƒ£^Ð ºØñ“4ªv0¼r<¹L€«oŠàFbæÒdŽÁ\Η ¤SÛáAµ? ‡ù9iAÓ„Ñ,9+½¢Ã1½¢ÃŸ'z3¬"7 ›VÐ(o•Æ·$À0ìóçáÜU«õM¬JPEk²æÃU.ëNiç÷Ó½UüGüFC™¬ïG e2oMo€@ןÕ!Ø8NÓŠDó9¦ QÅ»iìˆ9ëFÀñ]pÜš¯ÙV>H‚_ sãí¦)Á@Xìy˜œ.ó~‰Bo[¹e Ðšç6.ú|®ö&¯›ÄW©ta„µ@|% ¾RµÉÃ=_ü*"+Wã¸âµ¤Î“)빚ÌÔJ:×|¼Ðsœ}Q£ò^¦Âøî;™NXo ,J'Š;ã×zq’˜Ú†v§&í8›ˆŽ¹Î39v—{"Qº¬ïˆº‘ˆÙ4¾ÏIWæå¦­ÊܦMT®×ǽoñý»ê!ùénÅä}×ï¶,óvŸú}¸Å“1ïßt^_ÚòËù“Ÿ“ÎÔÕÛÁÿA~&à•Ú|O؈4¨äyÓÈç04wäo«Ÿi`Ó ;É0úõGüÓyHKyûN›vå"C Ø”‡-4&Až.Ç¡ P,o:\¹Pµ¸ÏžßèÄEžô@¼¨sÒrWdȉþ$ p[е'ð‡¥€ºŠÓEp¨Ky‘Y`¯ñ?Ÿ;vŒô§$Ø/€ùïÕù¢gÜQâµ(öO"Qµºßë˜L5ïÃaO¬Cêî[×úø²À¿”úlò¿ÃÕúøÑuZÏŸx:¦íãýn\AX¿7!"õ<¶ý:&yW¯Ô€ÞJø „ž‘fä3ðXñtHg?úðƒ«Ðk¢?jCß›½¬è©ï3¤SŸ„C³Yþ~­ÙOö˜ ²é [ýÆç`-OÔvÌýúxE¸P…Ž °+àäBZóð¥Ò •;6 ºŠ*.F¡@ ¸Ñ’fBˆoCw(Ç tõ¦Ž@^X¬fOÐçäçÔ)£-êoøÅd‡8H­Á?ïÙö".ÿyÖ®¿ |=<] Âj—÷7ý2èÇÊŽ†fñ0\ÆßŸXò†=.?'ÌÒ»pý9éKÐÿpi•ƒˆ÷â® Ýô|³ÒêÒ]Ôóà ÊçyAíóA1óÆïÛþIA2o¼ÎŽEœr†ç8Aäc4ΕžqÑfjë*5-m[þÏøG¶ø¢,ˆdÊ6Ý0šÞ¦/¤\„aƒäˆt8ëAgERåR¡G[÷ ~4íl¤XEÑK¯y²ûá¤XÉëCƒÿ98‹³‹twÀh¤³a7µ•²3U±ƒ44GÃݼlí™ì&£…—ÑžåÏÏ[p:ԺŸ’@O†6!3ÌO-X¬P¾3/,~ð¨‘ÿ­zZÛŸ.`Qã«Æ&y]¼+‡«Æ[ îdKݺ™KcÞ Ÿ!@ðºå[ph›´%³Á-ϼdðË–C[¦`‰CÔþµ|"1éÆÀT±£|ÒŸÇ‹T ‡ YA¹ñ`üú܃mSëÜS nUj<ôq0¦—iÙ†âÁ˜{¡ö¯qÞ´9©ã÷ÿDó<Óg¹ÑlZÊ­ÊËÏx‹-þvø&I„-ˆbLZ¸6MË&þÑ qb&°ì»VYp4éêNÊ6]ö!8¸“õÇÑÁ]¬?*.rûª” Ró¶ŠE“"ý« Dû­ð0|%*oÔ´¤ÿ|îrn'nDöcÌ£³ÈÇÁ¡íˆÇ›þó?u4+ÜâÐk &íКôDz0tg© Žó]løï9(p¥Lª ®‰ýqó0l’&˜«çlUI¯S{YÑ¡C2"Q¦T;Ç,ŸŸÓä{Éœ*³ÌJÜ6ÑÅ¢×H¢,˜:ðsš¨L³4G§(vqL³‹±õû ܯ0)çç4éÞ³›Øv€™“(ª¾Ö%:›¦=I`³˜SökY”X,-㦤û #Ðücå"vj¨]p&\æ²Íp[_¸gQ«\ZG;+¸%]6ap-½WÂ>Óâ7lO›ŠÐÇÁ–ŽÍ+÷7›Í4*“lS;˜ãA˜–)¥'ŠÙçUkö3b±¡_“0kåèÔ¼ÚÐÞËïÿfåƒÔ¯»'[h¥vÀ¥¯dþ-šä„7Uîü nšLçhKIwˆHÎ\òÀ¢œ<˜À‘sÊ›„×ô=¯oCa žØV]•¯V[ž\ òÈø!JóóáÎ1û–¶ìk d¶5M D@ƒ%ërêK¸ i\Uníö13OŠ|o¼›Óyô/„ñ`)©ï]<¡¸ó½jŽá[iÎWNÓÚÅ!éÝöC@_¼‡^[5ø¦Å/Ùž~ÀWíð=¸>l½~9µ5Þ;Ç(‘í³Aax¼]qgþ`©:•‡«ÏFÂøuÃùlâ{FMûïoùeP²Rª ýAøýh…Ôþ{ˆ õ'»âN=uù€ƒ¿*× ]þ þûÈgÛ8+ªË^ný†¶¶HM­e~Ÿ¨ü_\á€.Ô^|?«¥…(¥Óµˆœ@?÷ϬK¼ØOÆH{¤‰:χ!‚ÝélK–áù^NëÌÖ_7¿uÖkßü5ÿ~¬_{£*piÆËõlç^ÄÅÄ{³¹¾Õ=«EEêw³¬â}}¶òä¡ûðÖ_‹÷ãɺ'Ì\ZãÉÓ?ßW÷}åfòè¬gï£_¼Ï¼_€Tà¿ãNdŸÿüä—˜l¨‡ù½(ÿ)”ÏÇ÷Ÿî‚p®‡íË2ŽëØú*@1¡‹¬ýúÄ9)n¡ºaV2TÿÂeZòçƒL‚áºO“?Ý ø°×ºunƒ-j÷¹FKºüï J²~ì .àîP‡“i^1Éd Aø7c TldfLfHÅ2nŽÿ>ÆÑS8q"&S¤r’{ºþ~á„Ó[”Ðü™„úªâJèôÈ¡CíѼå{\€GòÜ~Ó4íøÍðü:V ¬_³ä=Úñ«ÜéwéŠ-®ÿÿíIÝÔûùâZ¦þ1íxi>¨•¬x\ŠpvÓr7¼æ¶üôŽ\£ïy(Æ@'â!`v¾*ziÇÊ—¸#êM…ZQé—*š4Á#}ÍêjéjÐ?ƒCדÑÛñÛ«¶Á‰‰Q¸©³1AÉ*1胒à±<¨“á;̱Ôáȸ?‰®dÀõ#¨áSZJvíŽ%>qòEC°ü¯]“úæõýVˆÈ뉾4Ïxš`ž>ËÞòmaÙS0’°Ò=ÉN]tû 6ùu1Na¸ñl÷sùóúzúµà\P {`>a¦ð>'$}™ÿÎâB?a2{–ê5é‹b”@ÝNùOæ+MØ¡MµYïqÎLìâò †®'ç|ø¢›ýàSÏþjzn‡~Xy-çv¨ÓšçvìOzûÇœŽ¾ç¹ZѨJŸ¡°®9åsCõ!˜¹aýíF)º”É~êñ¿árWAè7^Í´~Çã.î/ø%kÎ,i=3#–Žài4v#‘VJïÕÛ–猅ó˜ÛWêWvÏ“q¹‹ñ°ÂQ}—¢Wê-ßç„0ïœ; ð‘ºwn˜—Ê /6 2¯Œ'ÓdRÝÕÝLY‡þ§÷ñ ì •lØ@ ·º|©·ÆŒÐ¢Ëh#g„É•»ÛY• o3ÄÔÔ±k,²«/|}\ W EƒB8'‰ž:âïÖ÷–*•)cGZ~!fJ'™Ådp HƦ$éÜ$÷XC‡ËÚÒÿVcñžW‰Á!œï}´1¡ÇɈfK«9H&:ÿ ãWxëb©kí¥–Œ~#FÉ`u·Ú8½³Úa…eâPœùôxe²²Ô9&—UHɃK{KŽ‚˜d®‚ýöj ÍÊ£ž? ¿ÿ*šÈ½K5B#IL ¤ØòÒ‡£ö¸ë« ä¤rë‚x¹nÈïs\Íî†K*Ø»™G»ózñaò·t+w_Ž ®Må>2”!ÞŠü+<ÚàJXX„Žk‰"«l¨p„AÕX}ãÂ?$ù‡M'©&D*Û†Y*sIŠŽƒzNæ‘×âO ô¶Æœî§}È­8Pf"v©‘?§¢§º•@3 ÝZÁ¿Ï[6&³ªÙ±è6bÔ€êÝÑí–KÅB¸W8Þí)%p‹ÆoSù¼f*b ù±º êÖ ªew„¥)€yá+ó-Kèþ.ûe|É’ ´—fÖI¥ÍnëRJϬ™¨]·ªïÄ€Jdª7vÕ„«Ð¥&~l-v?ïä×Ç­ª¶AR/×L*ËŠöEøTôÐC™•÷+ÆÃþ:ÜŸ¸(Ì(<—à Øû¯‹ªe—¥N Þ†c]™Ë(®Ðõ”IìžfvVþùnõІr-Ù:Òq!ŸÜ.ÐM<ÙÑ]\}ã‹F’â5¬¾ÿ;™bv6›4;Ù€CË©¦1=¸´aD{U¾²Mó8úiuéZ/Úýtí:® ;‹x½‹fµ½ª°nð7–ÎåHT½ou.Rz*!1Íô$ù'èbc9®6ÄÆ¨rªHJ]H+®QKÚE/A¡6Åñ–mþštýýh"]Òª&£ƒyØ-a^-ásé)KçÓµ¸;Už›)uÈ“°<#Eo].a/I%”tDö®äê=K{rÉ£>KQ ‰Y«zéé/Q:^^Ù¨]3.ou  ð‘j» ÿL;É5uãòY­êV+U«Ùc„Õ5œ2q~–͉ dí‡{–+¹Û6'€Î–Ïn€µ½ÏÉ.t«ÎW²¼ð\%·k†K·c|ß ™Êí»ÆsÕ˜ÿnÍVžö+ÆW;·p›± x;W d…>¹öN±@®b‹ö(£¶DÔ«¥Ní‡ö}í=(«rÅ–¯Öܽµ;_mˆÆ?Of+#¬ßÅÛþf™ƒnÅÝ&É-­ ùL'îð³Ô¨’|t´q]‡ƒÍ²B-¦B›">ëDjÈM3ù»ÜèE×th®"n•a­%2º‹ýíÿˆß$¤±QX,I0é{P­¥4ɇ•¿reÉÐv<º›B/Ó1ø´W8Rk¼M8Uo$ë¼ ®wKc †Kqî-Š7m¥ÏŒ²Çӄʸ2ÖÕ+äó,¹Cp·pà|íúh+¥ˆÄ=Ø ½í0oÙc7ZÐÜÃ+ð8{=2/c|?~ãÿqüÚ]2áñã2ÞÕª­l)C%äÓ7U£‹Žp4Ë•…–/½TW+µ8>\Î<>nÁâ¢y©qÊ:Ç—-ïÕº¥Õ4Ž÷ÑñnW£©Öò,VþÇèžì$jÀ~0ވDž l A= Jc§ÇŸw.OS--7е´V‹ êŸ—øb›Â'3VQ´Äë­(‰2hMÒY¬¨®ÖX[›Gým©T¡…”Bi³ÕÎæû²<)m¤æeË&‹n/k- óónë²íl-"ªÆU¡XÖb;o}·Výëym.›R´ÿ±4f™õÈ–zbŠ#æ’¡úøsI4ã©8ö×xr)\Å~c¶­MuF#Äö-Ž/ñÏK‰¬· 1ÔÄÒ #[o€~«¥{²“ÝZ½$EïQ,Ù3^öïÒ8¹Ô{¼tº–ì§®Ì<ïW5Ÿ,– ­Ò_)…T¼Ô¿)}$MOBfQ«‘ÕŸåmÐz¿¿JkÕÊF–KÁC¸JÕ{”÷„©GùžÆW«2ï1[d& 9›.•h[NÄZÆÁ¦5Äò¼vNs 8ï¹^­1†/Pä}éK½ËJ•®$ó‹\Eï¶v4=¯ÖpÐ’÷QÑ‘áÖ÷Ÿµé8=Uï ¹vE_ÛÔ6ÛþyÛÖ>ýªåª –ËljO_ Tª\ñ“&ø^¦KEè^ÈÔ`æý¶¥F$ü KÁ1¡öµùž kñ|Ê\|›ÜWSpÿò¼Ò ¡©¥ú3þùùIëyR-åZéLç—nM[¾g £ÿWiDbãYÒ­\ò\þû¥~!Å»üŽ%£¥Pž‹hök.Ëk9y †˜P8´Ã3NÚxÑB¾p Q„òJ°ÕâJhÝ%%•Eà<ÕôüòÏ×ð’6ê€$áòy.ÐvAÊíz>…Ð=G+Ùã¦j“›xZegLÐhbÖ‘NXì'Ô22f ;á6’¤ÞuåE¥Å— Zµ¥û¦¯E%*°=ܹE•§k•–ªS” ú¹C `‚*Ä?‹ñ>hMltö íñºÝÚ åÖ£˜˜¦ÞD"øÕºý![ó(¦ú~RUùó:ÀP‰šîû쇇T¸ Ý6°²µÌfOªŠ—9EIÊܰ¸ÂÀœ2;.õ npˆ¥œ*Gýɸäßǽ™ý ÿý)6¼Wà&GSsKSz‚;œlúéQØöMõáB‚׋£,Xë6kÔçè Vg·ïtmòyÛüïÝÑØ‹-–ua‹$‘¾Ïÿ,‡ûjᘠLEKÇ ¾K«2P’ƒ|#ßµŠNÙ²û©$7¡ƒÅåÌŠ}„mÍÀ?C(m+êÇÝÔ'V<¶mÓÌŠ)Ä6]'ðÐl=™aþ(«‹~n ¨"BU¬ĪX×ðtÓ A~ñ¼TI¨Šp/¼ ÝQ4 .¨ê Ð*'»|‘µ ¬kÈÛºRE¬Z®M}ÈíÏeéÜ ´õÄoZŽŸÿΑØN†‚ºœ .0I¹qÅÛ+ÿ°}' RÛòæ]ÖØž³—˜ƒRÊU0Ëd­S¼Þ;¥g+a°&ÚJ±ÔàBú£ªµéÅ:ÅM B™_îÆ/ñ›`M¥]0ü\` Û½quÄÖºï²EÈå^Îúâ]ª/ÒÉßC_ü Kc®¤O®à Ú–se¥¢ž ñ=~ñ^üp½UI»Ü˾˽ƻ"aAQJ“Äæ@6©‘¸û±Ø|…jÏ•‡9È…`äéý|-ï@¹¢ý;FÊ+$-Žé—âÑJžÞ$7™¯‚pÊ?L* Œ ȇƒB©h±p¶öª%DUùçÉõ©Ç*#WbSe«X5â°êM~¢Ø°XTyð¼âˆBïÒU½c¬‚YxZù‡x2]LÚ–÷¼ H4ªUJ§d¹ÃÚ}ÞZÊŒR¸k­‚ã‚ü¿U€rji7; –v§4H属g[Z­Úµ–l@ÞH„~šª €ÞB—@ ÃÜ%F{Ûc)ûü’ϲ ÀBÎ^!§ÒªbããÑ|)pmìr¦ ­9'åÔ¨ÿþ7§FÞ¬,¨B$º)N~H} q0~UÁbCÛ9”ù@Ü=ܹ>¼,c¢¤ôl×ú&íýz]Ný6¸S¯Sùg‚l߯ªÕÄîU¯ásºxå<»ªàXòhç`eÆúbr\ ’ÏK)=Ú™Ÿ¼8Ó£ªx\ûÍ *&Ú±~ÿÆÞ^Öç0 ›:PEŠH çKArŠU×èýzŠ5¾Ç¯æBÍ˹ÐÖ +¤\&¾æB°u×j®å^`IS¾-j‡MS¶-?¹T”qûjвUp¹ÜY¿éÏs-w×÷ÝÉ®ß0dûÙ©º4,Ǝ؆èO|ê×XÇ§ÅæIŒ¨Ó2¹Š—U¾ïG,¾ï¯ª‡7~½¿’ãŒdÊá4BxÍÑ´qƒmÓŽhÄÿ§®p·ƒä†ChÆ”A½d^BÂ])Ük8³ÿä\!jÏ?tÚµqý¹Ë¡^æé\ìÀЄ¨Æu4ƒ‰ÂiTH¡5' l A@z)ÓÃx¯úK¬œ²¹kiq¥Ñ¦*MéjýÎAD]ûâånÂ\ƒ›Æ5U¨íVýûõФA5 Œé9è “h+e@'­î6’98h€L6 ³óO&aVn´Òeœ(Æ6A¹Sšð9$“þa/ÐI€jg!¢^»¾³U*è9Û:†Ÿá1&X(L(§GrJ{zJø)øÊkäþ”ëûs(´¶í§†ÞBjUq!a3î•A%žñ$æÙìÏ0lÇ^±©bLdÓäÛÀ¸@ùúþ4á=‚§å5\Qâ%m½òéhm“Ê[>nÉ+ =-Æä"m¯ Ò¶wØ×‰œ¨çŠ£ïØöê|Ÿ¤z "©´tÁ×u=8wÞqÞbÔ÷ÍNœP¸C¿À˜¶’eøy÷oÖ+RžË{úù“pÒ<6ÃóºïG!f]5ž×ŰHð¨ãz­º»5Kòü÷ù²DUOÂIÕÚ×ÏÊhvždƒJ;0ª†Ä¦yذE'eü×5F ß]{rùtñï·N?Ã%_®†ýÝŒƒßu¾úóQøumŸ^Ú¬c¿Kú®ca=Ú,)•¿•P›ßÿj*¡,DHÌ¥Ñþ@ÄI垇äø[€n»ò…þ³ê{ª”ÉBJ´°!œ‡}øù_-$Û+|—}Á€vdÌ÷K>aÕ~}\ËÃŒÁÏ{ª…ðÌ ³ˆ×çMÆ»¼„™$ütÈÄiWÕ°èa9$Þ·ó8Á£ª “Ô›^l™ Þq/ZãPÀ£€àºÎ•¤ºWÿ‡쯣êò´êj¯*èP_C:²åQ‰ŠÇ'[XTÌkó­ÕòÓ:ö="íÃ-ZâÄ›N¶ªcbü­x$i‚ îÇÿ${ùÑÉiü…¹0ß:ñ¼à#oîÕí}Hiè5쪓$t8‹QHÎçd5žÔíâsÓóZN³AÛí‡OÁ§ÇÙò{üs]Ãi[9‰Šm6wŠFt¿Ø8¤»Yåô,†›ám°J?oÙõK³k yKá’^…Ød’ÂfúN·õï×ç5À¯DVX·`¨hA~¤²o*‘ØË>gïÁ…­ŽÅ¶j$1¸y*2c8ývKˆŠBædLÏën耻ã_h:h¼•¯ÃÇÿ4žÊ Fß—¦„Ód7›±ß;káû'U‘®1µ”8¿€‰G.,ߩՕèœj&-É/$K"‡›ÁVé€höÙñÏ™ ›!ù|¸®÷`kûÈN½{«lÁ:qÙã“^ÝÔ—cæÊ ‰BU:|~|žTäPËó×Y÷J4«pÑA¢àæ êRŸ·ÁJF·-êõ[é¼Mÿ¯š†‡È^E™í ¾Ú:§d.fÕÏ×ã„/ºeº 3ò5š‘e½’½›KQ¥SèiÂ÷%3Ûþ &3³EuÓ9¯î;º?wÒÎòdáqm˜¦˜rÞíû†z´‹•Ïúó¡ôfKs$W¯ê؃֢8 $à.v¤}d­„Û°ØÔŽ æñ ßâ¢Lë[jaÙ^°"³6zÁ¢Ý¦y‚2@ÿHÁSZkaY Mµ½‹ÂªÉЬÌ{°]UZ^ì2–”87‰ KßÒ¦ÄßRJ唊â¡Ãùz׬£ùAÁLéä¬ ’+8î CÓâr•÷îýçì<Ÿ.QÊ8¹è”lkÖªÛÔ{;–²S¿I¡V@Àü÷qÎÂýç÷øç{욀|0„'ˆ _¤…ãæ9ŽÙ…Õ¼d‹Ô9+íV³ÝØNZ“ã†îKrI·Þ/ÚÇc„†üñZüóèù[}È[¥Ãæxì÷ W;‡ãJ •—Áveÿc[µ’ RI‰Î‘y59 t§HÑ5*GÚ媖Ž´½½Û€Õt/q{,Ó‹Œ¤®ƒ.#l«+¤Ê¨ý,UaLT÷ŠÂôGü³1LcÙø8)Xk=”­¤ ,# m€¡1ƒe©-8 1æërÐÆÀ¦Ôj–¦¨9•ª¦RßÍÓ1éKAÆíÏMÛóc™ !ñÛ O>ÏÒ<úv*yË&šRËJ8 ÖÕE %z·¬ÇYÑ(æR&ßÓj¹[üëxz‹³³½ÃX¢83ÂÌöüÚw×—ã¶Cc€³—7enøÊ1•ý1úØ(ÎæÑq|3^îÿ;ý*É}ê¤4WŸïÞ¹ ¢E^ôÿìçø)+ðpÐ:ýÜë6gi³¿¼´ÂoŽ9NÝ#£æ~0–ßæ÷øgŠ4ômà6„E¤I›ñR5ÏžÀª¯FŽP€Séâ§šsTÙãq-àI›ÂKƒž•¸–óÇYñupÎÊáÞà÷Pæ?8FQèܵùß¡Ùbv×ÎŽUIt±Øg›#op$Ý5,¡™¬J7FÏܳf-¾ÊÝþŨ¥5ŽÊläÒ #Úöò\u‘Fí÷…z9m{½øø•c‹=©c¼\ÃbLØÌXÓ»·Ík –ºjhËeÎÞ¹4´¼©À·ËñÆRÑ?2äá¸aë‚=Ô;[$=’E“ä)2ê¢_¥ÕÃJŽêo:Ø4Œ?dP‹šĉ›a9þèΨ9k=U€Ý©œZGû€…?ÌùñÏÐþç ;& ÷ÛiÊu~v Åð„^¸¿©¥03¬w5}¹PuˆÂ镈^CXÌâ³²:å16+‡·Š6Âþ~ˆ`'Aú†àãcÌ©r½Èä”ZLõ sqMÒ@”KËda_®÷ Š“ëNîøÔ¨,‰;€«"ìmFx¯Ž®„D¯õßkT9Ô¾{õLzn=Á‰Rj{™‹€}¼ªÓq}8 ž}´lƒõz+\|Ðü=– @F•ϨXyìPJcØë@}ËLÄ2\ôn·ŸÀXN¤² œôµþǾÇoûD˜•û\v´ß8—nï3q'& næ9¼ûE•cIy·1>MO¥7{½OÃ…äênr|!!©¸0¹z{¿¨0ÖÏûÿ\É‚š6ž*wr¶¦»Éú¬ vµw,^Õ¯Œ¿ÀŽPu¸Q~R6‡NÊ$Aþ¾F³C¤ì òÊc ÀÝ«ÿ_`ãƒâgÀW2çï@<¤p°7`vÃŒø ŽïŸgsêMÉpŒïq÷€› _þ½ÆdØýórZë‰Á¨¾É/Èàö‚¡ÑlËô=~gMU|îRœµwļ™#®ø'6«"l+×°ë—1U¤ÀP¶˜‰|g«×¨ÑZ̆/#äËãæ'±W^Ç+·Ñµs¨Ú$1cX¸¶~ÝÆ¸ & „6†âlÏxþü W@— qÝãbcS$íT]­ˆvóÔ-Vbù‡ø'í•î¡¢Öê=T ôÚÇ]öÈzSªØšØÍ:*`n•g™ÝÖWëM ÞûzÞb´b×ÄF»W*Þ1l¸±ß½ÊB@ãÑ¡"®Z)ë¦LËY  ‡ ­Ö/kï®Ý øÞ’%q ìE…GwK²¹î! ´\»{¼«œÆüøç|†5…ᄜF‰¯ÒoBöoõ ³Ì„Ä×M`¤œó߸p¶9³x}Žf&Y†¥Ø¨ö¸uìní‚­ 5 Æ¢ñíp«ÇAA±û÷ñ›8=(±‡k÷U }ç, ¢™xWèK¼=h$x_¶`)ž~èüqzqÏŸ¦ÃqáôâŒÿˆzÞ= u'ìq¾w±YBgœ ¡1¦6 ÿQgdîB':´ý”q~^eϹéèß«“D¢žqžƒ*¶b'öÜ(Ø‘1Ö®rÿhÅ)gV´u–ùû•ý%įbÝ•®‹i¾È-0.„í+«¾RäBϰ;¦Äë1®ÿìs§ïÓ‰‹=…ÉÜžCùuâ@¤¦úðÂFŽ=§KÚ9×gÁ£Óì‘Ï‚Ù/ÍhÆ *ó¾ÁÙ)ùØÊ¢¢D§j6b|¿tÉÿݽܔ1¿oŠfŒÿÎNT;cÔ7þSÍç¤SJ+ãÊ÷ ØeÆ¥èýÉ{±¨.ètÊx?~>¦âTö(“Ï÷Çç9±1ʆý,ØŒõ|P˜‚"¶ç¦ó¶ uÑ ]¶ ëjëù„Ë3Ÿ^œŒ—ãJ]-Í15Ä©03ñgüjNÔÅù›“``ÆÉšRËöĪW;íÖ3®UqáŸGýÒ铯권+‰+zþ8ˆïª÷añÏ/¿ÙL™ÔtnVA¬õM$i OAj6ËðQi¢õÙ†ÖÅó‡ŒFx§ŽN_Í…(7wek`þ ü]¼(ðàÀÆFy^_øº²ÄÂðéáe'ùì pðªp |õ+‘Z¸²2;K±ŒËÔW”zPUÊ|½!Ç·ª…ÒÃ)‹1×Ë(ˆ ;‡ê”5ø|ü}&”>}'ÅIfqJÃÜ6G7…±¤` ;ƒçíÒžX÷F òz>´67: €g ã 1Þ×5Äø¾:JÄŒyŸ±WCŒï_‹x„oÕ™Ó®YlI {ž#›G~ìèNú”EÛ”}µ–.+vÔæ ¹›’2¹©2Ê#«ïʪ^ºF8ñÄôÊ©£DýÂtàaW_ùç‡Q7îrñ ™DÞNñÖ·3n.1rý¿ZwjAP.cvÙ 5Q¾WÒáÊӬDŽ¥7ÆÛqžÄ*ùI”,ï1I¿‹©årIíyò õÌ÷%Ý&ºÔùâ|l½Ïxߥϓ1º`¸{Ýüwä Û 4ï&vîeC‚çè}O+¢* ÌN#J¦ÈÂ.QÜÇN½ËŒÛ[•Ÿ]rNƒ‡Ñ>Òâ3¾%Yê#‰{f— +“á÷ýÀH6u™Ü5/vMJY›%ät×…‘1Qî9ùóMžƒ]Ýôù,Y…Výœ²6õó%Tœ1ôõѺLY‰JOq9»6{fuJC­€ãº¢Ú/5‰ŒÑ…Å“²:?çóÊ ŒüùÚ¹íÔ)‹t陲´ëš-Åa<Üb$Ê6…šþØ•)eJ®#D&¡Nm”ÛY!¡þŽ€2fbø»4⤠ŽÓ£ð  êó…$qy?iêŤ´‰U†øÉõ]¼/ë($¾i芢_1žºkö/80©»©uÿseq;²Š¨IÐÔü#6•#þ: mû0-fœ#—Û×§ ö©ëM+ÛÐ(ï¨ëçeåømQVî#„*þƒá<À$„Ó‡-ú¢$5h|B-šä1ü~9Èú¼²Ï>ŽÐõ8ì£ê#~–FãKZ ýˆú¯/Ј õÔ•°9ÅÏ£!Ìa±Ní >3Öªø¥4R ¾×hª1ç¨mQÃEz‡Ö·$vU‡©' õ0Ú"ÇHzWL•"¢¶yGÜ¿ó.“ÀÈ÷¨Ò tߌãRKâim”AÈ”‹Ìª‹íB¿„Ô3•Þcþyúþ]íÒA2æóY¼ò’ ãé¤<ør|À¢ýßÎg;ˆÏg^Ög¹ÏîGPÎc‰¶ú<–â¾+EJC©“–ÑŠ“ÍÓš}‚qþØç±( nh˜ó¸¿~æ"´;hÞ’I}×0‹äEGw&Šº®¸°O#®1ÁÊX}°´ f ãÆøzÙ·ñùOàa°¯]Š‘Ï»•}— Âô;Î8¡Âá>¨s!Ýɵӷ!¯ö¹ôI­c;æF)•ŒóüQ’‰Ðc‘ÓÏ3ï:•:©_ªa¿ôYüït•«S#OÄÁø­oæ–oÖFÐ6`ªOˆÄDeÊ*¥îAl¤ ~Ôq®ÒJƒŸn–µ“²‚ÃX<‡úÞ©qÕ¬!<ÀÄ)Ôxx¨^r:×Yç]ˆó06]¾ò -¤„ ¨†$¨Ên±“teP×møng¤ÃË΋™¹ž§RLð°j^Þ©|ž_Э;“råW(„J±±’,Š'“˜ðüBpf³—}«ìÁ%€•T€®äì»àÅà/-Ì×àéÌʾ1é]š+Ïî"&ßÇrÔiPÏïÛüMŽ\o¤æA{#î´wÚ2õnþö]’VA”€8 ‹Œ°[祃KÝIot5ÇEM§aÌ?f䃔ÑRÑ“–RCÛ3èÌ7Š–âùLM¢ž•—®ÕB\ÔØ,tÞø¾õ÷ù®LJ…K2g2-J¦RÙÔt~ibX$—HHšfñaó~ÀÏ“S€ï‹Ò|>'“^óça°²ò}+Ë*—@ŠæÎ¯ç3Ïßy:o Çf‹›à£¸ôy>¼eîümóƘÞÞ[ðÂsºé|."%¥8nHª¤˜iµ¦U˜toºùû]°SÏÛülƒû²ó|uìü’òþ÷Ni‘¢&¤#9c|”DsEcúüHýfJ“£“P^§Öa3‰ÂüpŒ¤êé\N‚41™â u*!£YJ¢˜çͧ3Ì­Ä9¿ƒæ—Š„Ùúæ”U¸R§ƒs•=Ý a|­žD ÑfôhlƒôÆ9¥ÊÇlåÍûh­Ll¼J@}èv[¼åÇáßÕ%“¢¸3&ý;£|O%?"jâÜ‘w×YT¹|$isCñÈæ­˜üŠ'ç)ìËÚðçÍ™ìžó¼É7ëN®`Θ›¿‰¡V]ñèû$ÀԹȕñò¼Wît_IJD™îŸ‘økŸ¸NŽJ®x]JaU}Çâ_ÁïñÏW,¨Y"Bè+7DNÏØÄÔ|¬²?ŠÎÿ޼rAqÎ×*Ͷâ^јá£îó•;Þ+WïôÙŠçÁìû¹qüœc Å#ŠQœßöPÉ_(,ˆ÷ÿ#ån,uæw>[ØÇPS38/²†õ.,¡T_{>;›¯tÎgg¸dÂÎM¾ì®¿W3xM6ÿ öQÅà)XÙ1T*b>Û ^»Äj¼‚ ¦ÎAÊÄv_Sįà šådß^PN(cÍÿÐÿfKç1©#Ç} wj2E‡)+(aË3Ìy}©.qÁeÌ”|q§¤Ö–æó@¿Šß·àð£ôïÔØ¿qüB°æ|öØ1ß'kÝë3‹†Ž“ÓóÂLÁ}ù<â"ÈêÎW+}Ÿ‡)0*©¦??¼Š)-]ózã<‡8å+'ûù¡9Þ—øóB'Ö`i‘}ê¡€ÝW%îU—Rl“ŸpÑ}^)ËÅ’XB~K~Áè['EÉÜÇ&…eßßÜ™Æ!D¥Ûš¥çííS)öÂû„;^ˆßp…)Z0ÞÿQ2¹Y¾ŽÃ]ðÞò‡²iÆà¢0¬ÂÿCd`ËfåD ‚³2{ ï£Z³—1j4ÁPýÅ~ŸR(š}Äâì+«4¡zÁâS³3FN+I/xyzÑ„N<êœvòú–’Ý’1z-œÌ¨žËK;‡èUä\Ú$Q¬­K¼²­¾´.õµÜŒK—¼6^²õð’]zIþˆ‡°—‡Ž2#ä€ìk.x3h «CÖi6? ujnÛ¥‚螇.Ìë“u}3øSy5”§mí°sÄlco’mìKÇ?œµ°h¾þ¸hâGpsÒ~ôü$lïOý"˜Jµÿ­\9™w/0•ò‹uòÁ!œS‹ æ6~.‡ðð¿ƒu›d™*{ˆ³ñàpEysùµv“’Âý1û¸M¾hõiëà-ïõV·g—&iV±X"g‚ˆ‰¡Átº %z-b¢r"Ž6÷ãHí´sÍ'ÏÏ2ϸ–8sKB¨Ñ v’Èîçy^jq_ÏáC-&a’‡Àÿ^ŽãŸ×X„¼«¸ÐâÊ“ìÑßäyQ‘ÇáA·qÆD? £õ¦¢}þåÕÒÁµï‡7»˜Ä®½0’Øqß7Y´š'?‡dÒ:>o‡5Ñ#?4‚Û`D€‰ìe…IÌ2³SÛ-$c~Ÿ”ý}J¦²P!¿ËsŠiZÊAÒ Øé*m†©2ÐX¼|€¿fºovFap÷ ’ ïÓ餳.meƒ¶RÝIáÏ÷w¦lna†˜—›¤+ô±}™“ÅJé0u¨ÐœG…š?^iSÁƒiÎKcR’2ï«æä±øwÕg 1¹1Õ’”HLÝͼ¬ß›Ä¿ë ’É£y¹‹­Í{—¼«èüW¥3„:£=Ý– 4á¼)©~aZ¶BðjÌ€ú:§¨ó…a×é ?¨KV/T|÷w¶œæIK¿¿‡úë»$Ðßu$ x0+!гpÕg<{ÛQd4”q‚rÅûí‡ú,Ÿ1MÜÿ»ŠænpìiŒ_Éêb0¶%°±ÒÙ…ç¿i`ßaÄ$Ã-Љ5;,«?o’–€†"§?Ï÷¤ Í +÷[W]!¡—1û<Š[B_ÏŸg-Úþðxùëyl4†éŠTŒýÕ‰Xû¬¸“3¦dÆÆ¨â‹£èAÿQ¶ ¨ÎSÆÔÇ¡ÚYÌÅóåŸ×óÐóÒ>N7bJxhs ~KQgÒתñ¸®œDcáx8f!û3äŽ^xQ¦T—|VBBé'_Î…ò„å—õP®ðÏoúÖ"(˜å·ÐÌ–4Ýb¹W¹óz#£.9ÓïB–ÉÍÀc% ëàŸÏÖâŽôö.3g¡W-…ïzþ1b§Q¶d:&ÆtµWsÅév&™þtï.Óuø4»ÿ¢l†S ?§sßѧQ(^?–»ÏÒ’-õüg´+ý=~Óªj4Ã&‚ìÚ»]Še÷ ›»Å“fdËîÊ d¬]gäª~µ(z%*ãÊÏ%(F_‰°û9Ù°Ýma6Ű’»YMq÷Î^‚L{!æÏ¨ÏÿˆßhyVk%ç ãÄÒjõbíZžò1{ýª¶NF^ÆÕƒÜ•úþsL!ÆrŒYb÷wÿ> Eœ’tW‹w1O¨0†’˜i)ˆYþ`:yÖÉ¥)…w‘züF+#Äí?âßBß(]?/b¾ä¾štEÑà§PKÀ„ÜZTÊX¾¢Âe3u¾u½p0á›}•ÅÐÀ–9“º®ó¯û!¾Ýýʤ›ÖäÔó3¦ úsRõ89ÕZ/4ÚÈ8¬-)ìîó‹õ‘twþêî–?„ÖsG܆ÎwáûÅö.a–=ÜÅÞ'nEÔ pŸvno|¿¸Uq Kõ%W`ÉîÖáÜÌç}Þs3ÞÃôB¨j¡Éâpîå<Ø·¬b‚×n{OçÞ4a$W¢Â¸ ].N)#M‰™U`Ü)µCå]—/FƉUvû T,^ÓFÔrƒåîlÓÚý}‘L[ó`™ú’ßrý×øçF/•8Œ }ÆxÞ€ Cwþ(†–ÍJ¥ùŸ1·BÇÚ-މÜSú†µv.%PXûʇ;‡Eº©Œñ÷§Þ¯ÃEº³]+-º¿2±%‘4᪥÷OW~¡°eÖ†eýGüc-AY*|üª]­i\z (#Ùx(äœ< ¦ÎÍJ•k^ºl =þyt&°º|6ãâ˦³Ð»—K›0¸J¢IÆÍ/¬Éïe¥BÓXFÕ¿ÿÐa?܆ °­æ%OÝ—Šè¿Ûîú€Myj]æ{GŃZŠ‹ÈYo'ÿ…FÉrذxm4÷c!Jጽ¥å¶A˜‚ çv1ÑÄTéü‡í`àvM™ƒÅÃ66ñùv?Å óg,­  Ðdzˆ¢‹æÍÚnU!Ø=–m½†‹ò…È×íÈZiO‡øýpã5Íø·VsjlóÄN:Nµ€Ng‡Ù~ÎÕ‘¿C'M\¢Ç¿qY$ë² ù#Ì./ ü{˜5z*ît9D‘‘’wÁáN敇÷ø°6Šýÿ,\„IF 7Î1ØøyJ –„J¢Ûá–É\ÛÌaëz®¶0QN,ýØ6âyŒcgd²ìãøs›W£ºØï¯¬€‚¤[>Ó7‚X|ã.’¿èË1 ~Õ¾ïVÐQoqO ìàû$ ‰R«…„Îf1¡&¤‘.‚âïÆõKcøGüóó™¸Z÷ó!Á;ckXBýÂXmà…ȘÄJ ¦4™oB9®Ì¸ï? ·‰}Ò$[ñÊŽXöå•÷§…Š¢²qÖJêÛŠp²y(ð÷ÁóT“¨Z¨æP5PÆy:x>ÜÉuüÅçãó’Ž}F:‡4“5Wp¿fqvœlQ¬¿7˵JtžoÏËû=_,ÞËk1ÕˆõªbŠÐ´afË~}]‘·ÔÚ~„ñýû|µÂâvÙ\ ëbȧ<Ÿü÷››9ZS8±ê&RŠžÿþšƒy¡™Å§-³ºÿ!ÍZ?çÃfµ÷BàŠª§¸ ýÂÑ6d݃Íðv¾cÌYÍæÖÑ•AÝ`´B•ÚÅu¾ç6Êâ{Q —ŠtYË´Ê|KÿÑf¢?ãŸgcPÆéÔkû зs6±èy›mel3¼‰AºHžÄê{CÜÌÒjqõl ´CYX)gÌæz`W9ãvóaEü:kÊ0á0~`û .¡ú$Õ=ì–e¹Œ»‹I‹qï?TÓ)ÔLË—£ó+×*ÉùäŒÑÙ9ý ûU[›Í·í(þV½xSØMÅùûÙ¥6Òù¿ª©žŸ¾Y@ ·!&A¦À2 Í Á¯†f)·%]¯æyéصÑÌðQB'”Í2.¼nT¾÷ÝÏ»Òä9Ï?ëOn¡65°ìf³Cð¬Nžoo—ÕE µé¾©tJêÝïñðœ+ù`çÍøË)Üw¶lgh¡©—ÈYéSº¤~þIÄ(ÕÍÇ O³ ðÃÛ”g•ªJÆ“À¶ž7Và£üK€ fã”çƒæˆçw\¯ä€£ß—”–èÍæ”Htoã©~éþTëÒ$h”÷ù¸ÕûËýMÅZÛGq§òÕt\™ÿ|%P}^…Q76B‚"ˆó¼…X¸ÿ6…Ï«îÇCáu>¿=X¿ƒ“>_b{È>_|º6¤²ò¼Jˆ™‡Á‹¬W«ÞËF?¬ð€CØ>(êÖù|Œ+ªºüZ¯Íèà~Ó!/êÀl³> ÙRY‘ 1Ä–ÙK’ryKX:…CƒÂe(§º¦JË10ʧÎþ$°E •l)0\ªÎºæøÃg½³–æ’‘¨¶Òò^³ˆ2ÍÞ |6s9ðu® ^æÞ yÍšò4çÞag–æ8{Õãg·AÌÀl½&!Bgu7çGÌŸ[äÓíÝØ²B pO~^_—Œ:zŒ§Dª?s¸}g¯Ú¼ÙÜ1hÈ)¿Ï\YO+G‹“mÕéüÄ8si3pæ~‹ì&á%s¹ïÈ}æþð盹ýU·A—–^OÜœë u6h%¾o.¦÷± Ë(õ~>ÐËêîUl“„'¾¹u±·í÷ϯ_ÒÒýo‰*`y×??ïhŠqWw :ßýßã·!b]&rˆT6cmEo7 —ë¯(®ñ ¡¸Ð}ÞhéUç“+Az4¶P—·±£e= :ÄG‰x€Æþõ~¨›ƒ³)Æ|=äáxpQiâÇ¿Ïa/~þ!? c|ß\Øq¾ÎՒ̵Ý$-u¥ík§-ÄošZ ¤nŽ(f‘1gXwhÒ¿égÑÇ(< ¡¼Ó4’¥Ä$ @ 땳{æXÉË8^a’ñHÉ󩶺˜³¿â6³õð,6c”Ù˰0Þ;Øëš?rcÞ6e¾9 nÓ%v‰6¼ñ¼»ìN¾Ê3ƒ$µ·)ÁòžÊyç…gÛ•ïU=œµf¼úC³C[Æ2S' ƒ°dy›°â¶l’¢ª¶)(:ã1QÂÊÔ½¸°raiÝ|Þ9%ÃçQ°ô;%²Rô²Lн`Ïè _ªSå1S)`¬Œ»Ç C©.”:ùUÓc†_cp½ƒ¨aÐÅoÖ<üœ©¿¦â Û–Ëœ–ïñϰ¼`Gš ÂŽjE a„e>9Av¬P³ÁýÇ™,[‚6[±/„ý—g¾í+Œ]çåcyÆ/¾V½¥Ù&,ý¯½¥Á±@÷ÞÒ&ìLXqñùXß$gú€•÷Óª$Læý´>´·æØesÆ^½‡´'í«¥ë¶¹‘#à|Û86ÐÌ8BxW0)9%a>žagÃ&ÊŸÝñ!?ì]y*c.öˆaR†yd¾#Ǧr©¼K±±²„lÍcn+¦r©]Ss4&߇õ­UµµV¥ˆÕKPÚÏûÝÿ…ïÁéä¦àùÄäÓ-–ìÇ”ü¢ZÝ¡çüeØym·Â ŽIoœâ¿g›#¡1ìÑŠ U™³Õ©%¿xYŸ=`EýR×§|ó¡Õ®O¿Ç?Ÿ/¾7u²ÎFLEN>+nn·z›cS× us ZÍqÙWµ7¾ÇÕ­ç‘^0>aå¦1¨µ\OëÙĩީ’Ï•›/ñûØ|ÐOQÜÁNbr„8(*<Ó\X­!÷Qã¶–þÕÏó¸ðzq§:î_õ0vUKÎ[A}³Žµ'¬±^{ƸcYA)x‘ò>½œ—É8þ+þ9?’‹IÍĦ‰°_Ô/Toév¹+¼·8Ýc¿¸Ùßñ})äŽÒNSù–ýau~mŒ‹ÇÁ¿_œ?Jhc¯‹cÄê±ÁŠã·ó„ñŸçyF>ºÊÉTl-Þ».Ç´q™K˜ö ~t3ÍËò×{žâeΧu±‹ê-ëŠÂù$µ#èbz¢Q™ÿSWý’uAU~¬DйbS×'_.îU³Ê„ÁîËic|ÜßËY‚ý# ô<Ÿõöó¢Mø>çÑzUªzÐy{ï'*¡Ú#OÂM€sÜâ>¢gdŒ1ªýÐvaþ”(ü•Äqöçò-®—ÄiÖ•«–'ž¿Sp-½ fþ,¯ýõ•:ë{ŽY«òǨ_ô°XÉ`|ç1k%‡Yb$2¾ÊÚåãì1kŽicy zà(ÚŸœä®xô‡vô:–9¸ŸXîjΩ¾ï ¥‹v°;ï·fè|š¶ þ|ñï‡ÇÚÛ÷Ûv}9YO>~\‡œeã7ê×tÿQ ¶l÷‡ƒc6ÓÈðpŽÿ1vœrh§#æ|W—x¸ÐET¥éYb3“PËá³ä!ÿ¿G¨ÝŸwòI5~À]ÚÉå݉ÑpÆwäšØJ/ÑÞuÖL¨´mËg‘˜E›R¡æÃÂîÈ…E‘q-»Ø›ÔË?æçõý]@ïW鑸x2fíJ.ô[»ž%ø§Ë#2pÃÖo~¶iÇ~nnÃZ`}?ëôf;Ýï¨Y{-ðs}ïØ›òtÖnÇw'w”>ïrñÇ')MÍ,뀂f¬à/õ?âŸs)=¢ºkáLÏÛ¹#sçºBYê.ªFîýKoBô&KÏ?1§¶UûÒ ¬µ ósoøû+ß÷®[»E¾Ë)Xá»»þ1bŸìUË×ÿÜÛ`›µpgo38†ÑøfžÏK½ÈÉ+OSX*Ÿß®õ‚Rº[:s÷2–‡³ï»bëyUSh6a|ï§òÝ‹ïúƒùA>ÿiJÇ Ì?ïþÌ6VòûR:œ›ß¼õ¶ÎWÈ[À¾5!Ú0E©˜2UY[ÉûòR”X ·B ExÄŒ-ca?TùoªQ*aP«™ò¸Ë:ˆÕ†(ÊQ]Û]¬wž'~Û?ˆôˆÜôE¼wkž$ÆX캰 nH(ï¶[­¹‚¿/Mi²t Seœ÷¦{%y¡>خָíAÙ¤Ur$7ñúÖ+S›ôH—^¬ÜOb-ö%~ë5`ð])zÞÑËF‹E°#e 9¶eoÓÑl÷‹-‘kì—½osÞ7ÂXØ”Ç>ˆåšâFõ~`½üûHcX…%åŠ|U½ó&Eë}l¢ænj"‘û±4‘)OÕµôö>R³FÒ!åI½ð VåZ¼PôS$E¹9ÖX¢Æm9¦$cÏ.Êv/¥ý¡ml Ø'©ÿ¿í—i'™XS Ž5å_ šgm,ÊÌ¡‡¤lÅkÈ À÷o,Ó$tÞ8› ïŽÆt¼MqÝñ¥–ŽFrkû÷äZ1G³ÍþŒzžAÊ~lIeœ÷ß–wÛó¾HÆÙ/wã`ÆödŽÃý³¥½§Œ³·Zò܃„K”¸ŒË\ºŸã`Æ‘”›?_Bã2,Ȫš¤Â]öjsñ}ù3þéùfqš”þÞ(otçÉß?ÀÌï-†Ÿµwb¹(6 b䣳öîÚ¸=I] c†ÝXd& =Ióà߇’Ô–âXˆ_èóA%¶¾&©œ'¶»„åçƒÍ1ûÒ 8öàóéœéÄKu_l€åù<ßb#?§Gèà÷K úÒ=’ïC£Fî)zà$ŠSˆ27—ÿ>–¸±ã>õ< Ý„æ[/•ßo~½â˜qö6]%† u¡–û½¨ñý—¯ß7Œö`-9wþü_žOÓLÍ}áóz>ù<=;Í”×óݳó¯çÕ*gÓƒ‹FAð1~n»³.œë §9,¬,èós¬ì€²†ß»Ñ­ÉڳѠy†}@<º¬Däa°*îüûë5ß ìx¯ÊÿŒ ?û”¥ €L‘V˜ß ÞÞ²h㱺Z—ŠÍ2Ál`̰ÄɃ#ßgèU‚uÜ‚:¿‹ÉJèzvy4ŽÍÄ®ìôòP$€³¸fœ‰­Á^l,ëÅÚzy6-®–8WyHRP`I›—hÅ!뎧ÝѡɢtI<Íà!;K—fd–¬wòÐT MO_Š–^þ\Fºðüÿø)R#ý‹ÿ‰øúð°¸fœ'0nØTœ€B3Áà` EHWœ¼îæ «¶,bt)â îދˇLBÿˆ+¹mïIŒ{ ¬™ÄH2‹ÍLp»0–Šø …2Ÿó™4BV1•q^R+ø"é,%W%™,zVq’ að¢x0 ­í˜jãý’ºÂ¢ñDü|™4â¼´è Î$£Á(âLJóËç«™ VÕ)6zÿ|ó=ž/‹Ô.M¬/q}½ä68‰A³™ÄFÓL|ôŒùs¤T¬EbÝóÇç3ÅÌó¡ 쑤:ÏG×yËó•nNJV¹ç…„9ý|ÉÛ¶Á0’TE\_‹D&;Hþðü(Iè¹cb4ÈÕäû8c‘ƒøS3Ü»0Ï:Í&‚çUœ²ãGÓ±6ÐüàŒ_`AL qR?(cd DXIØ` bI4ø~÷EB–ºp4˜ˆùžõɇÄR){iSHeD$ÃPí0¹wºîÖù]ØäoÀá)3žJWѹ¬½ŒT;ÑT¨Ò/5"ˆ*™²ÂXëç»°¼@OòÕ¼ Ý¥u9µØk]Ó&±¨ý—ìE´-ºŽQXtÛüËÿèýwéåáǪK÷•G[º½¸¨™Ãô=bq%ñs®šM­¬6ͨ¦1têÁË€1带VœCŒ©’P_5ÿ…‹œÎW8ˆaœ%®q¥& ¬& K®¼ê¡G>Œuä&äð‘Á0zö]G¢Ž'Å`wuÿ’ÅãÍ#üm¥ñ¯#3EGÝœ)ÁÔAº¨«(ËÖÖÍxG⑘ÝFÀg PN:ê¼1éªÇ?oÎzþ ®É¾Hš»E\.Ä“ôÚ·+,Yïý—Ô >2L§†*™ú ñeo˜ba,—ÿ&×°Ahίz£˜‰"¿ÙC§¤*]ÀƒYcÂŽèãIÛ¯Uå þdÙVó>Fø*~STgÕþ›i«’ÐÚ,í-6Š  yi~i™gZUŒCá&ì°žÇyãP=~ûïoºVÝ<³o³SOæýö6xæì N1›&‚J&^Z¾LdÎ|©“¸Þ¦›GäË|‰ù{,Nv‚à3L7þ{ÛÍ©šQ °ÑÜ´_2Ï#Ø¿CsÂ<’D²Ð H ¶a/úÌØßi¬'!Û¾@d3Dgœ´³yéƒûy~~}¸+KO(Rw乕7"žýèŒs0[Eù¹¹A¾š‹ÿÒ¶¼y„’‡SÖåòË]E$jZ‹­ðõŽÚkÙ/â†ËŸÿÁË»7Èš^ƒÄó^®F4¥Q¸mï˜.•¯›èFªâsKUz>©4Z4ÄÞ¼ŸS#.Œ·Øƒê~NôîÏq$dÀ\ëH ºpé¼èisŽãEÏ›×#“¼~á¡À=(MЭ–1J£þ¼â…GŒ÷c ÞóCøN ®É •$$ä£XyƒÿÝ¥òÈNâó0±´c Y*óÎú¾þó×óX4@/›ºŽOåü»‹WVÑÊ̈”G˜'¸ÂVŒPÁyGFÚÑEó9ô„ó^sr­AZë̼Á#4É•)å»qå_yªH‰lz·ÖJa㥨UÆ â$w:3rP†wÀnªvë:`adˆÞú„?Å‘9€Ák•š)G¸rA„„¯áši~ Î~aé׿ fu‡/ôSq‚0·_Ñ^ð<MÁô@¿Ò‚šÃýea¿¾oÿN î0H6×7P‹ªŸ÷4åH>žXu3âÏ—~\ʧú™G,PÜ#î£>ýßgYýgŽ úÏp¿ØØožC…>…{P¿BæöêúËÛÿÔÓÐûKüÞ_vå¸OþÁ¸ V?7÷ÀyH:Pú$x ç‰Æ^bœälú-ßXœÆE6'9‰D/Qƒû»@¾‡ãÆøŽÇYirÌx°Ë§*Ÿ—phÒãIDp’ÐÄT–ññÛ¸—àáê)¸˜<áqwÒOº|¯Å¿ÈCÁ±p!Õ´O·7 §a’àñ·.EU‚ÊθnZÓ︵l¢âñé世WÂ0®]ŽãwD¨âRÜÁ·qÃdÔS®÷#©Å9)[B '0y‰#>›ô…iDïËx>œ-|þ͈Ðf§Ða2wÛéÍIÄr'@ŵ¹þa}ÀÏÀ%š<Vîš AGå>”¤0¿I}o>_ÒE¤xpéݸ#&õŸÉ>Ÿws¬ìë…UÛ39ªGªV‘ ŸEÊüøçó‰À,Ò³îEÛEÝÞ.êúÖymôsTçV8™k.+“Ô=¿T,œÝðWÁçܪ:ËóÙù÷·ãÅ¿ÿêF—E$Û|®øàûÜJB“ßçvŒN¨û¼‹­Ž‚ÏØHO1B§¢‘W;@O9:?KE¤Ï“èÇŸ·ø<îz›¢/t*’ÎÑåeÌŽ®ÑêÍÆIW¨\•áïM\>ªé=íNŽété±U{p´ܤü ºÂà* ‘Òäg0ÞopŒ?ÓC¥Å“l9÷5œ›™v}|“?¿µmª6¡õ]튎mä-ÌC§òk‡=¶Á—ÛžðI¶Y˜´^ßÖê¡óŽ$­}Æ´ Vò”MmuB& ÖC‡Mp…ÌÞ’¯ Ê^Á„ôvVô¯~ÉáQœ„}%êÃɲOµ;+ùPôwúnÑNxõq%<±\I®èÚw8øè#Ü QfuÎK)1¾Ï¤vÇ¡1yé9žºô†.©ÂJ¯xöƒ$Ô=~=¼äâ¡; Vz¬^Îa¥^¿Ë)þñ5îká’ú@<¹/ÄÿØÂ¸Sû%ò70ÀÍÙ1ÚU¸O]5‹›Ü+ºlƒNàH3Ä-æÐ&æ×78Öì”'ÀÄzäßý#ÆGiæ"ÕÜ3]½¥}€-ao8¼õ°Œ®aPU S8¶j»á@3*áBdÕÓ9 ªrr€<ðAü]€e"´#ÄîïKEàðp¶S«2ÉgÃÄ7qxÓïCxÂÒ)˜ê¥'v®çNXbUéy€ ŒÒaxbÐ,¾^bÍ^Ê[æ:;ç¡€gÆ}"æÌ‰Ëû_0½cLÜŠ*ƒ®Ê ™`?ÄÅ©vh¨rK£‚nÂ7%2s Ãk$>Jí3O5P¾ÊWâ#´VÑþöÿˆÎù±¼æ©…¹š“ (æÇ‘ÐÙT² ¨Ðr6i"Ó\â=9;š¦áq5¥SQ)·Š#å#Ûùý<⇺sèÿ—Åã‡T_®*fYãWN矸©´¹8â¦6É™~)ËAãHUÐèº Ì–Üé@4—f‰4ºmÄ¢qÖµ=ËêÿÏ¢&gOÏ‘kä8¼^‘ E*(My*G/ÇÅÖÝ çTž:”Ó䕹P—•Ó˜§cµ“ ³T¬ÍÍÝ ­&pbQ?c"ÄM$$Úºóå:_Çé¨΢ò§ªÄk7þú «gQ9^Òù­%h²‡¤¶3”’»}ì±*‹ÌbK™ì.lR)må¦\L&ˆƒÅh‚¼ç)Âx.Š@ئOï©-Jw¨'8‹·0UŽóÅP ã˜pÍC1dr\¹ùþ"‚ÝPÈ4l¡È{r6ç=¸ûƒHvLïÓê•ZçÆ;b~EGÉbHÊE ²Ãí„Á/ B¸Œ(Ì­ëanê ¡<ƒbQpð…ïm :‡/ó÷y $ÒÌ+$¦7¼‚vCžQDq‹bdœ†6U¦Ñèxól0K€&ñVœ§å?+EZ3‰+WHè^OÜÎ#®ô}Â{ÃôÀ<”Ó$; Là;kÙAb›Ë~l‡—NIp¤²l=±Ó¶Ž]〷ïbD/â.–«B±%M×Èúƒ|Ñ„oüStå2EªL\Õ 560Da(c¼ªÄs÷ËÿŽ–– æµFý6uö§y,çñÍ;꟨–gW—+CºÙ½TACº)A˜ïGQ#ÈêvØu%ñ…§—P¢êD“<¡¾ŒÂuŽ’æ³†i¸V$ßµ7£t•£¨êD„Öã©ýêùÿ0šê@¯¢È£S<(ò=@\‹„Vàø ëàœ;ýÅBï…øærÃòã«Ë;[ÿâŽ=¤s CPè:¿ ÈüþdMJ뛯 +WTñ¿‘©Õ&Æa3Wx_ŽCË ]3cS±ú§˜Å!ŸLÒ q·ÔAÖ¬:C´c0{ï¿09@×4‡HÇž"ç4Ì!òሌ—qŠhuå'#£4»ÝF©&W>LCO›ÉÐ,÷ÓûyO÷aܨ:žÆt ©ç/·W'£dnsu(M¥ö,ÍÚË]YT§bnò,?'@Àé?Ì‚"èÐâ3GKµÜœ)âæpàÌÜ„a\á ð^D±¾á¬«ëx16~3|óAMþç!ÃÊÁ×GÈ^ŸZóÝ/lÐæNÆ1G†ÌýAO¾4·®w z`çÇð,™!_27Gx@¡a&sj”b(tÞÙ6| +³ìó‡TÌ7Ø9È9ªÌj~ó&°¶ô!]ˆ4”èÃãæàïé¥Fº™ˆªTU7-zYÕa²—I Ÿ¡ò _÷ØÎA!ŠK¢9Û‰¾#æçIjXHÆxñ\4'ú¼ ŠDØ‘èâb¨ógesôæ!ϯ&«=íyNš‡wW¼=žñê|×%°ÅÍ:|<¨{ËmÙLfCi”ŒÂù(×ôÁ^@©¹ƒGUL'sø¨ˆ¤ˆF–ýðg;¿šï²Ö@Vñ{)¤ÀÀ;±n@]”{ß_ C<œÌw¤4÷‰WÜ@Qy$Ëx†ü¨9·'©5ð«4¦Mâ˜×Ý18V÷®_õj¾=0Ëë |´Ñ}!IÎ+INôä%\g× ¢ÚþÑh%þàK!¶P¬’Š( ué‚6‡ïMØ Äé÷WÁLAŸÒ¶×þ¦¡»\ØLùB˜ËfJ5t3ë¬j°Ëz¯)ÌZ±yWiqwþ=\XjŸæ #ÿnSš9i<åvÿÌVÇãHÚöæý@ÿ§½ï÷ætÜicÍk˨3³«yíÃ_¥æ 8n÷åN7t^*3§0µÕ¶˜äæ>RõÔN~u½§¨€ ùe"ܲ‹p͆°=5U ð†Bi0– °{î2Œo䘪½ Î!aˆ•ÃLàã=ÍÜ™™W ¶qpn2ìJy­VÖ'C›*4'1ÁüRæ¼E6È+^[èÈ+„¢Al²†oÆN`8Agw‚Ü¿†ß|ªGbŸ•ËaG+­8‘áö<ìgbS‚|çV 'Tïgʨ?Ž4<0‹çJJ^+Çí €â%¯7¡Ô —«¼Ÿ¿ä´_“þq8¢›èW¾Õ0mzçi†uRÏ= ÷J!DÚ4¬é‡_6Ø¥®®µçQ¨Óyœy€‹U¦ŒÊ’{*\w å—Í’»¿ç{tÄ»‰–Ô°óµ½Gߠϳ28‡Ü^ÐÈúgW»,9·–=äìÐÞØGÝ&õ¹ÉʼnW^x.áç›êë…F~•&äh¿µc&ŽtÉv#Sr: À¤ÌÃNÌ;¸ÆqdÅÕ·s72û(7Y=š}:Ñ/Ú ¢Àø-|+¼²eèʺëçY8Ë ò ,X ð Ú ¡%¸XÏTçH©ó#Ãv,ÇÏ”‡Vºi?Îôj= «Ê¡ÃWõ Š~öu|Ã'Òù :þøŽ› Âh‡ÏeQ‡žX§l 0ú!8'=‰*+¬ãC£r àÎu>&݉H¼Ÿ£PT8ƒ œûk.ó‹vÊ-ê/ ÿxj  EÄÈSÈ ÷B‡Mà ºõn~<…œŸ¾…´uJ²ß1ÕÒ3}ËrªBߢ„‚ɨ*›èæ¨10,PòË»;h°Å‘¤i#h†'⫝̸™î¼N (|ÀNΔ1*È©þÚJÆš¿Ìf(X†[a(|½À:˜~Qä˜qÖ+wU¤ÕÊ¿}y+0KgUÊõæßº½•»ń펱Fpi€1ûa’}ö/ÖP ÒÊ-tˆëžõ.qÙ7Õ¿´®˜/È|ĸú¡î¦ª…NU†"뼋Σü6¸#^Ô‹zF½ Î q;ùB §ëD ‚6x©F¥ÇñùËzÜÀÎíÖÙϰ#d¿8€¸oÑʳéH¨ÓûµT%Üâ…a#»féîA~þÙ[ËÀùäb½Ÿ<–vOñWÇ/UAEç˜IÔñ÷œfô=Ài¿’ý. $ žRŒ>W"(4®A–°žš2¼œ—Éܽt^;¸¥R¨­Hm-ôµa©´~U®›>Ló=WMzñ7·ð4[bŽ€¸DõÕͯ¾W\ò#«_ÎCŠy—o‡ÂŸŸÏ¾’ÂAè¤0øÕãÑ@Åî¦ãWÕÛÝà››Û™Ÿ§ÉÝr÷Bø.Iáʹ5PIÑ_Æe_f¾IÆ)>·=Á S†䨽Þ5> &ç\†ûÔ ÔeˆrL¦ ñËœ!ÿ½ueƒåþÒµ­ Ïgm¿ŸèŽ·IE8×®>€ð·å´8泫<–á2œ FžW¢ß’4&o妎\z¼öCþÓªßð­ ££'¾2\ó1¤hË~ò'!}K’…\ÄA¯¡"m3ti´¥Úº¯ G'ЯOÎBwݦ˜ ðQÌÃêjä/¨õyjÔ5ü¾fýš¹àt'}|˜ÜTìî.»²ÉÞ{Ã|é( bͦ¶­±écsÛJnëñŒ¬£Ì°GAå=nç\lÜý¼6#mýáúðµ%ÔÎiÈÖÆBÇÑCœn³Ô.82ë쇋Ñ£,ýA-¨º¾°„4–Aø Y‰Æ N4‹¹ßïÞ¦{[âJþ¼¶™¯C´m:Ñ7åx Ï‘žÍî²(x.úlQèÏ%³Ls³ÉÑ]H F=^Éü5üöA@0'U~áðC½–ØÚÉí0ÄHr*)g]¸Õ(u,ˆd†‡q+e'ib«vê” >Z~ꇔ ;N»ÓðUă²q·Í0ò÷ÀWÐ5ÉÀWp¦©¶Î:€¢,q…™¸䯤aL_ÊÑ `ߪ‡XJ×,ÀWÉ>…EZÀcHª"Ãp¾Ýc˜R=/2îdeH«P0:¸Š³Æú*– Wñ8M‰/üÙ’ÔaÎØÀ¶ŽH¥ã a%¶…*}‹Ãóíïï&lçÓ®ë áÏ̓8¼šÀP®¸Ãσ´ï-P¶íÑÛ‰}>Ú‰ñƒÜ†?_ؼ×þ¼HN}rÆÙ ’Ói¿²°ÿ1ô…F\p*ð•áüÿäÙYz~óÎúæaà2šAüEÕÒT¥%ˆ±ùÒO„ÑÞÉVyLcÁ S²âí¥µ§5_P%Ì4pqC7—˜ZÓÍ.ÉÁžëH©8ñ—ÎOïâ/¼÷°ŒvqC¡f§?ÊÏÏütµÈñ§¿ÛãŽMD»±.›ŠÓ"ÔÅGd9jâ_ôj,Nž´¬;P£ nü07C`m*ž©çë —æëƒÊÖH¥Ù!Œ½ @B :á•ætà'¿0ðž‹Ìnp»0ÇáO~cà±)ŒÌšÞNµ‡Ú’C(ê1\H(œà( ¿hà‘|Ωñš²IaŸ‹”!§Lí³ÿ7$Jµmž|tœ—[¿’.ÖU 5œÍÈA ÝÝ9wåÖ¶iåÞÇ6¼KwÅmá›Dûž¡$–½íMMˆ|¬k…¯\s<ÚýöCÊÊJ¨fiþ„l’ŠE7ÄÅÕEñ„g}„Á‡è°^¦É¾ÿùÍÚ-ÍŽ Q ÿ2¦ÂÓD|°6ðÙ]\¼‹8|mP3ÛÖ—J•ÀUÇ)ƒ…²æ¸8ªŸ¯$¹0"ßÑ…{^\WÓrB!\uÆ?ÃoDÐ&¾ƒ?Âö¯Ä‰0¹&î£ÒÜPL‹!o.áAƒL¿2n(ÓèP#q2n=¦J ·ª—žhm£1¡æþöAÔ!*C°¢¨8^P­XïÈHŒÈE«ÿ  øùþ·å ë‚—$A3‚K’hÀÊÜïÀYI¢kðkƒÙ|ý A€îy,<#òŠXß–XÀX‚gð+Ã÷jbk.À-¢Ø*à›ê¥åá4€…†ÝÞ‡˜çR½‹4.Ý«¼)1ÓªÌì“Èj Ç™Ùú*(òºÌB-}ÿ»J¢øÜ†P¹10\¯HˆÔ±Çí „a¤AžPàõ¾š¬…QuÖ»#jöKøFãêä^UѸB¼´÷&õX¬¯WûÉ…ô{Œš°}"í§ §ÜÇiI˜áñšsžéélvä‰À ,çå5wW¨›²úB˜Èñ†)`ècÕ‘†ˆøﱟÏþH€÷¦‰ìAÀYJ¦ñ”uIW p ž& äW-ÉÕöó‰YñA7èJ_.}·ÚÑi¸ì´™#°EŽN»2,ì´yŸp›bKÑ|LÖºƒG@˜Â Yáh81ÐÚ_h˜ÕÊD¾ÿä±ìFI^M‹#ó¢«)Q?MŽñ\V¦ ÔAÞÞëÑEÿyl¡¡È/ÙÙù…t¢ í76ŒŠ/nÕŽªÙðséD¦nBAûŸá >"³y :¥ˆ®A=-ŠxT}2”r§ÎM }Q`øºŽC†0úEª±a¬­É“ªY±ˆ–`÷ÃðÉ8¾@›¾ öðÙäv ÒĪ ª@qoS8_ê°u¶ûtL_Ì‚Âä“Þ‹æ,÷阞O. WúÛíÄf…4íŒ9|’A§ösÑh¹7ë°Ñ=2,|4˜ó ëÓP/gQ‹ÓG)ÓyúX>t-#<Ÿ CÔmUAôö¼'”Ô¼K©…“ÆyL~~Œã(´xôu].ØËÞ(³ksµ Ûå{¡£n42ìN"¸ˆG rMW=XYØ ú$VVfä)Ó7ò[€>I.6aÁ©2L´ÁðÀÛÄÊÊ:aJUó4×LsË/Ã¥åbêßåË*Ì÷aqža–¬:hYt„l½+ÞçcJ;H/ÜÔ)S¨¡p£+<> àƒýϲ6ÞÀO†ñ“ Àä&‘<‰ý£‹Ô»^Ë]ª“,õ…ïüÅ1¸¬a ^Gª2/™U ‰VEÌÔ,¤‹tñ†4Žã~UkéM¼Ub/Üž;çW#ߟ ¶ Œõ Î å熿  ¦Ð¤+5`ú0ZÃuÐ*MK¥(-ÌAo~?M՛ЮÜâLc¿¦–7ãBcžÊë…&¹UT/¸-ŽÇ¨ÛèG²tp/n4åÄTQ@§É®®+<Û´N÷ä4› ±.Òmùç‹ÒЉÿühZÙüÌ{Å¥Ÿñû|rÉ$|pe"ãEu|Cs]‹5)‹6Ñ—`om*šæRæŒÊä¹­µ/ “iäFY*4]¦AµÝLÝO¼ST}Rù¥‰Utű+Nå—®ûDtd”­8û6﵇¹‡eô&Þ?ˆhlÅùÿ6§ž¢ê¤~¿}_iޜπ̂c¼o:Ë,(0žžoÂÑlh•[ù~í•ü¶!ÞœNêù ÏéPÆ#zà|gLóÙXüº´£{`¾›1‡9î«•ùkúÏýA-íÜéÚ‡v…×þ&õ$HÉ.{ÞçQéq2™ :–¯¹‚>©¬å[ƒ îèÑTf¢‡ÑÎãÜ¿¢’K<3ãÖÿß `Ñæácv;|>ÝF÷³«ý™SqnBXö[Ú\M™ü~ÈÛÁëu)ΟŸ¡óߨlM äãþc*Ô÷wî³ñþûöÒ¯|-`Ù °©ð©OÁIx)U– f¸cž8¯ pç¡XŠål L6òþªš^àúR%1h-œX6JGq\Γƽ¡e‚ø˜Wey›àá#üù(Yj}ñ#Ü?¤î®”¯´=æ¸Íõm¦€Xˆ·S@ɯ‹ –W~Z¿{ÜUz¿U#yŧכ=%óJÇí¦qÅo—@P‘›Ú%cVŒ£I†oJ{Ô/ÅR{SŒ² `¦Ô¡ñ}nR¥¸Õ»Vp5{¨ Ròë°éÀãÏXbåHuy6kÈfý;†{A¨Êø8ÞÔEFàÇ}=é;^¥³“WVz]Vý;zàªÍ×¢nÅgâ%"}9_›©Ï›ŽxçBqz[F׌90“Ê7¶T]yéõšºä•×ùú³_«˜¾ãJvœ¿ßþÂoWb0¥a¾Ü?Î’.,Ñ›ô¶œrxE6éðHã»éÊËç×›S>°LqÛWd®)wÍ«à'ýó}èÓ‚ ÈÕÕ"€YôþøJ„T€m»&½=Œ€ Ÿ¹#“ñƒ;ù|~ð¨ƒ*9Y{”fÉ[€Ï‹¦™¸$Ž®ÌŸÿ |¾¥ë<çyŒî+W}ÆQt¾³D Íõwã‹ÎóÆó^.ÙN¾Åtxˆ¾çó§% Ñ‘‚}žñü—(ðãŒÇëŠ}Ç¿ Ò P¦U9d•¹=1¤™5êrͪó²ÓN=ðï¦ôC=Šõý’Äþ}[|žêó|'ór,¿_äÀzç»#îws<ñ·Ï»Â…“léNÃ÷Œùy¶ÂÍÎå}ì˜f ŹÀó è¸×g¹3cªïs5šúyÒsí1Ð驇 ÁïKaÊ|%‰ («6:qb,îõUÓ¤¡KLºK]\³œÐè¶%…:™™›¼àšØÅ()2D‰Àç›×áÖÂxžžªS9ØÔúέÈK1ëÈ7J§[{ÆxÙ2^<¼äx{æ!8CñfÜ·.M¢1ðÖ Fpݘ‡ºו(x x©Žø¬[Ï­[_/Ñ¿{4ã HS·*ûýðVå¥Wœäð¶ƒx5ö6.M9¢"ÁôÏzY7öñ’;ƻ¤Ú€Vwt(²nÅ}HIy‰ªâ¥;ºë^ˆ€ æº7ëà1Þç " éC‹>"â“C’ï2ÆëZ»o"ngüóƒMŸi\²­C%)ì “Fö¹mÓT·6.}¤1”µ%Õ5Vhlœô!F’lƒ£à.OÃ6P¥qçïúTX7¬MŒNqâç'5ºŒ}U–òÎÛüþÅ5=™6_¡¦Áÿ/ûSn‹Ó~áÄï TpHÅ™<Q™¢X£üvgìçsh”]æ#¾™ øþíÃâÍò&61ÍÇ Îõï]1êc±®bßsÊUM£öè*hðz‹™\ Nü Doˆ]&Oö9k1™Únl(„šzý!þ¾o,’±àö…ø(Æy/¼è;ƾ4/1ú5«/ˆÙçF0©ßÕE¯Xµ¸ÆxмüÊðýjHÆÄQh®ñ™ºOÐ'«øüè[ßuˆ(dJ%“2f:@±ñ<;XÉóóìEž–ƒ:qΑÝÊ¥)&íÔ VÆ%ÀPGµ¤ ½)†ú9Ye¼´‹°[”'Ì<ÆÓG7éCYp¿oºü5þ>i£Šzy|!Î5¯.ŸŒq~%žIIY Hú<¯Ä)·’GwßJÆípÓÓHzÓ}0ÙÎc»( ÿ\'ùÅ$Ï©IC¦¶_E`aRíƒ1ØÊã¶ ÁÏVŸÓ7€†5kKŽÉÆ¢_.YfñÌœJÛÈ j;Æf‚ÔKÚ^†üÍPËÌcxZªhmfGY˯ü?;]Kà*Ž9Sg1c ꤓœZYw„J £Tì 7ƒzxè —I5x¹Y‰óWüãòŸÌ‡,03äñ•3.+ #¡óí,*XyW^žG•Z‚™¼LI®Ö´²UªûÇ¡ÝÜ÷¥¼ñâ<Ý:‰‹2Ð]Jy)¦,pﺔiRB/EºTw Gb5þ~k.ÊBw µ‚N½•[ÈGé6›`íTïÌì<Ô,h0<†íX+s¹.#îŒß*í¶Ð§Ù<öz7ÄZd@ ,À7ø¼m•£©ƒl4+¶{«h*ê2n,Úeœ•zï¨-\žA:ã2Ó§-ãÎKÄ år^*¸ÔÛj¼4Ê8§fC{–mš›1åÜ+û¡ò›§JjQà2®í99ó#cŽ¿ çyŽäé9]ÆRž¬öõïŸT½AQÑ09`çÌaWÆDN6ŒòÐ ‡ç”à:9芊‚`@eä]Ø^Ø­TE@ ¿Ÿájèûxqˆ_›†‹=ì¼™ô‘õ2&ÒxÏщO'ñ ²(‰çý^îû@àrÇsøO&ýÁû&üó7¼Åš !1ã3©K€MÅaáx²ÉxN JŽÂë„ÎJòª©>Ó†^ÛÆ dñùÜýñ:B8 …YDÎa%S hh<%ïÎ E¥ëÚ©dzÈ»Áës‡¿€×Oüмp«×’úàRÙ2ÒÁeÆŒ9Üê‰Ál‡ÈŒž‡EwJc7.©Üî¶Dp;‡íSg̦e.MÛ×;¦&¦3nÓÑÉ‹¢ LîA¿øPü´&#ú&¶¦¬EgÖæ¨3çØ)püayÁ,þó¤µÐ&VÐ3䨧V5€<.U;{´ºÂ-#¾¼UîŽãà QO ¾>ÂüƒüŸ˜`YEý—Rxþ×X"œê˜WÓXŽ…ÇÒƒ¤˘cp,ˆÜy'KŠ˜ÚºªA°®3u"ĺcâûÆGxž_ãwðl‘J9‹ç••š‰ž/­à‘tßÏÁìǪâB°MnÐÔ“wµY'ËÛóÉðLà6EíÇö‘ì´\©ÖÄùþŠ—Ÿ/†¥óó’ºB/ªHM_)œ‡çwÔGižÓ敌Š@Øì³*kÖð_n„?ÿ¤a÷ñ<œ¿“@ÆÏÏoWc_Ý÷£•ŽçQ\bØÈçyü¼ ŸçðüX}¶p¿vT΋ƒNK,fŸ<™bñžg‰Ëû–FYÒ²n‡ûzOs²)WuO‚ç¿7E·†W _ÀƆçÑ<«ð<¹S³Š|ƒ†RD³žÿ`¸"nÕ»DÝ6,¶ELÍF±hïl Rÿ¤<EäÒcèy)mõà5O> K̦¯õàš«ËÆ[3ŸÉ’Rng.C9ø¾ü¡ïM9ÚŒ1/Ú®bxdC¦Mè²×GW¬ùqtwÁ‡q”A‚Œ»çǃ€Žôä×/´‚6#?¾;?ž¢Œ˜´9Òÿ¯òH¯¿8[îI˜£”º)×5ÜÕn]qêΠ8HépvÉtWCÊ䕽=bÕºèø8 •/:nŽmh²;¥*eƒB1ç“ RêvŠž˜?í_Ròz®ŒC_››¢‘Âÿ6¯*¬ù"h-‘ñ$dË®§`ù(?–<Á÷¨ˆáž)u²Ä¦ÜàùÜQ”çð¼¶R¬F#¼âù"Ý” ãêyt|®ï¡L`|y…Á‡ cÌç» êÎQÈP©ì=AooQá ÓÊQ…üÈ?owÁä>¥àèeòý$ Ž ¥ìEÙ)†*§¡Ë./òË'Xö&maQ¦Ï)Сøé:‹$BÁ ÷…óÀþþêÑ—È0µ+žüý슂ݳ=·óùè÷ ªÖóòÂûE·÷£‰ö}ñ|ÒFÓµ…ºR$Œç%SÖõ#¢´|^0êòóYA¾ÀôhšX%çÍ}»«<†º5ʧ¬^S9ú/Àwª;eóýÑ(¬Õj7&?àUá¸sv—¯ç$Å ïMØ‘)n%âój´p7¥-BÉ.iÅ4‡:”¬oyêðÉÈÎ K¤<6Id[­Jˆg•­¥%(ò ¨2Ã% ÃÐðyô|Ä©;)¨B…i%ðJ(öTC¨yrÕ,z2L¼jž~e_§ÉÅ ü?*þmäæ ÷=:BúµóNoHM_yb~-SrÎø¢ãpJ¶LÙ9L‘ãé:–¦fìBÁË”Ê#] )(2CÍx+¹–3Û¬ß_ãï0–Á0-Æ•»À°\tdã³ËX›°¼tDSÓÜBjê“<ãÎxùˆ²V‡SbúO>”u§G®’÷úìJÈfõó“BxcÚ e 2"é<Ê…ëmËá°K„*Mç„&,`†”t>SJÌ{2¿tçG-â@׸Í*n¤Tÿ|pÚ:â ×sn ,œ¾¾¯/²j•Ì¿ 7Â|š‡¡É–…"Ë™‹ºÄSlÊFœ))…ÏÂàÆ0Íè%ÌtÔÔV’³šV…ë|Ø·>ð°XÛ}àA,jw5oôNWq¨ŠyÂÇ©Û÷e’ºÓŒÊ‚ h&Œ¾‡hxIÈ|±Œ›¡™ÊiÇëÈ:òš..MKÅÛU_¦iå}ÉyŠR9ÊC1W÷mø~iSâð±ª-«T‡rµdHöxŒݨOÔËŠCþ­xš²÷›¤&uŒÇâT¸iC|ˆGÚ´@>Dåj³z‘4H#䄘”¤IèF²yS"Ä Í庑Ó̉> 4N_˧âÚžø{Š’’L%äöù¬­)Á䥇ä™1‹îgL¨twž†êibçØ¢Šr²UMŠê•—èfR.ÏÃŽ"–4-†GÓÐ6¡éôØâ´q' N Ud…Kµ8Êþ…Ç{Ïc%tmÅþŠñýßÙƒöRíP  yܼô¹‡[m /û8& 6äлr_ÝU“2âlµM83lRi’Ü·)F›E©tAœå€p’¾LøxåLšÛ«5½>}b&Íþ }òºÅZŸ§Š6A¬z~1tï šÎîeŸy†Ý>o7>Œ/®†>ðò„%&`œ¬qwÊ>¼ðúÙ·U‹˜u¯N&µWóõN8'ý;OWt¡EÄ×ÃúèÛï0il+-!è€2xã%YäöY¦1<ÚºÇÏn‰¼ }m!4nl3Ššú¸É5CîmbbyW*¾G¯[þÙ‚&¿71¦ê4«åGÊ«!¼ºÑëÆ04:œBŸVY)’¨Îõš¬/L =í<¢í®Þp;nzšÑÊ'ô©UŸÙ¥¯ÚTnÕ÷”I­uºt°O@ßfhkk•ÂP–çú2Ô‚)]Éí”ZÈ2äN“Ö:ŠëNA%ÅŽ»Ê£>¢šP$‚]ýÆ%löuÝÐ öR‚t8ëÐâ¾pªŽ}?Ò…„ŠF˜?c|þÍÓÛÂéÐ%xN‹§‹èÛëñvkPxþˆè’¸@Nõ¶§ÁT¿› !tW\Z‘H¨/§F«Š­üz1‹,SXÊÅA¢… ÙBËW­Lu®ÑV{•ˆƒÒ„Ð/þ0¬DMÅ…D/þÿ(cv8cBz”ü¦¹ á5m!vÒeïVk/´boš2v ÅÂ=’ÿ¦öy)E <&·t›ã cûì¼&ÐUqB®E©ˆ1ÎÇgüšâfåôóxèU£qœRÂÓöæU’E×Ð0k5H€9Na°ßfµ¢_Iß÷AQðåó5PJÕíßÏk5ßöݲ;°ø]PY2ißgU»hˆ±§û¥+ƒ]¸JÇ”µZV1iò¹jw´´•¸+‚ Ùs*Ë¿¯5²l=ß‚S|mù'CoŠ;Šÿ·Ç}Q»Ù!d/¨©ž¦Š5Qµ8 wÛJbJUŒëÿ<_ÿŒ_YßÏ8]¬ï,->·•ó9_ܬHîx+ÛQ¹ÞªpÛ¡l¿ï\atIÕ DØ¡\±ô¾C0ké>)…¢ýëãý§šÇ_tQs5jx}ÙÀáæ™ 3&VþCU3óÙ£¦LÛ|¾…°hpMçzŒ„´uŸ^õK¬úøc €®‘ “1GUÞ i_¿Hd ¨‘DþýXÝj$zf¬\®¾°$nìëâ7iV+[­âƒøâvI¥Ú—ЉDœ1·LfmK8_ þþüÜwg ŸqâF[,pÄùÿQ.ãÄ™¶Ü¡/į:÷ÉhM+ÃV©P•ñÏ<Ÿ Ï{ðŒÍ±­óºÆ‰?dŒÕ›·Çé6޾è>ØŒ§ïXrË)-h Ò{×}s6b¶\,@’/º¿‚–á|ž'õ¨e˜ dÌ÷å·øUm`S#íHm`ćF6ó TŸŠÏ€öT,ATª”bMO>K¡éë¾ëذ{¿_JL×mcæ›5ŽF•áÁßsóÕøuÞðçØ&‹ì‹1[7ÖO!Všðþ<…DTŽ"÷RVéÄ]éX…ûxëïÆç©z©¨ð@ ¿Ÿ†ùüq·#Å%© fŒ|¤‘â·RCZ¶ùèh­a À(…š*Fƒ9w̦½ž&žF˦ìP¸p S65\$9¢M{4ˆ0$üH”ß·¿ôkƒÍ!4dü¶t=}¿-ƒ£A½-¤A·âÛÿ×øû·ƒ©‚½í/ħOƒ×lµei>}xH ]ϧ_i«¦ÓZsgðO·v¶õP3žCO;«ÓÇHÄ·ŠâE†ñ:e+•k+•ŠÏƒã*Ïô´,ܶm~~›»\Œ.‹³Uk˔ͩ‹»¹B ¶NMiBð±wL£rZ©q>¿|ê½mØåVí2æó©äèòï lŠg¼ëâoŸ«ùü˜±ÜèåÜì§#׎€¶F'<–¦Ó—Uä‘‘W£ÞwÆË§9å£n¼i—ñh$ÝhX—1×768®ùm˜†e€l­*»ÑW¯M(NxÃö¢ßh wr5¿ÄÅ;q'à;¾îÎï€Ï¸„- °T:íC˜°·íÞÁj`;»²éÍÕÜ š`Åäïƒ`,x`&¾ Ì•Œ&³Z(þþÂì^§v\â ÚÇs'»Ñ\ºš(£j¢Úc÷îPVª˜.w«‹Ó$¢PJ+­ìNýö–»U8üXV»LÞæ&Z”A sÉK³Úàrõ^¨_Ëî½úÆõ'ûÝÖËÙŸ.³ü!þ>»#ý·´VFüó=³uÆy_ö£êÞÔ­/ß—HãíîtǤF˜xyþ”ëÖ® Ö´ßÓùL¦†¹â²s.ð} žËfî©Ø Í;Ä"5éÉþ_7ŠoÝ×D„ßj]jÐÞÕ±,E«¿ŽÍƒà*µÖ½¸ž±]m§‚ýÒ{œSûœÊ/ ªæyMt-ßÿŠu|?`'7çÃÕE:ìªûfc,šà™$ßiû¼Uõd~éë1pAuAåùCv惼¿`Œ CjTô#ËàPà¢Hè£Qk5ßÇíûq«š¿Å¯˜u»5²–Ö*¥ ®:(åc Œüt§¼Z»4€ŽjO¨V"Öîö,Ôüåu2Z’¢~ðŽqc7X.úÁi§Ð L´¿ˆv Ö3B=³;™Dˆ6v2no>£}[£®‘º%^ñõJT¯šZá¿×š«ßŠ÷[2øû+qìš²×ð×Ù‰Màø-ÿåû·' ÆnxŸø<å$í3Ä’¸]ŠqßiEÝFØÔù”ŽqÑ1*=wÇ•ÝÏE×TÝvw/A£Ìîº]üÿ-¢Ý¿o±Ú•°ôgüÊŠ(èŠ4øúºõK¨kÊúÝŽ×Í¢ÍæivCøþóÔ£];?¼¯îz!Ña 6×;do5×?›õ.ëã\_œdŸäýÜ‹ªF'ŠêÛöãÿZñEûÆû‘»Egx]ƒ¬¼&¦×IkÍ2ã͸ù>Eý£¡îÓvîú)‡š}Q’¥”ìwÏÖKì¦Övýô‹ÈŸ†3ëiXBC ÷Ýóür¯ÃÞ@µ±ý}WÖ'Û_oDC¤˜õ‹¿_hÈýºÐ ÃhÇy%HT çiV,9d¼ÍÂëÔ˜ìfõ%1 Œ.ð½IuY­{â=ƒÿž‰Õ9å ¯qŒT¯† ש]Û]鸞Á¹ÿX³"c4 ÆõN“¨¹\¯FM!êK3ZÖ+¹&Z„üÛ¢­JIÒ‘Çõ€ ÅÒü«xè¡Ï[ "‹½~ô¦µk—¡u—Oö69ökî ¨E©gʳ^0=oÍ“§¢³%×˼+27µ¥wGHe›FJ÷!»{™éÚe]$²"fí+æg«º‹~‹ßöž k¸Äm•Œ¢¥É “‡dC9ìMožyLÀ¨ ©™1‡Ïk˜¡u·¬e¶'Uð+®µÝªEß–¥ÕÉ ®¶ÛÑzIçÃÕŒ¾õ¨åCïêbí~u8ášlÒp‘³™t]²öÞªÅùn^9\’Jen‘Sq¾›íò9ßž>{ïC3 ×~¿Åßz,tŽ+Eš'ÕoL%™ƒ…€öµ)Ö™yÿæE]µªkiuV-ú f’ÏúÏÿì`Í3ˆ°mŽ qT÷b‡¯Ows©°j w$©1ùil¿U¦2]ƒÅb½J­ 2ædR“²Y0#Íd$°€B2OóNAÝlaS}‹›À…âÆ@,¶~c;o—' v&ØJWsd íâV±\mCÉËhCõà ‹k.ày«Å7Áó›àÌ$‹]ý!øÂâ„,2]uúžh” ð&pùƒ7ð²\ïއµt‡&Û,!J"Z:@¼ :ß¿íÁz0l½<¶Øù†µã) ešëVíÒ6õ Añ¡Œ§§>_/Æñ²¯l¦ :id_'T—{S?’uN¾x­§C?Ѩ/'”w"¾}eâ‚­¾[¸ä£ÊÃÀ'ô…Sý»òÑnÅË:³¯Þ°ÞlönôT@ÜõªäqÚZÛo¯#ö«•9cKƒ8ãÊ¿‡uìÆ]„øu´aL)!ì€6 ³/A¡,©!ö%…1RG‰ý8ö-(œóûñ`úíS:r_Æê{З÷{Ô;˜—Ýr(YGUþþõŠÓ”Æ:w#§(‡qõ%ïÞK<£{åPqgÝÒç]~e. XãWã(¨‹îÔþp*zŒ¢£Ë8üõÇñàåyh7ßÚÓˆ¹˜Æ©T âä·ƒHz Ó´¶©¯…,pyf<ÈHjþº„>ÃSg‹êþZØK~&´¥Q…þÇ¥÷ÚÏxgem`Ø¡ð×ÓŸ_§ÁœjSÄ~Oµ‰cÝ)ö&ŽÎÅ…ø$ŽjES¼ò™‹É2¢pr¿ÂÁîT{ü†ƒm^ÝåNÍʃ“‹Qøvȶ÷QA¬ûø]Jó)5Q¸y4O¡8UÅ}ïûóªTM¼¥îK»;×TdÍJ¶ø~ÓÝÞŒsgصç›}]næ¾/µçžûU|p/(q”ÖŒ³ÿ`û#µé±H—q²Sb;u¡áH-{¦RÚaU+w5úReŸRýõÉ>ES)î®{a7q¤Æ>D8;·hAξ©ó²nÀp͸¾Ï9Hyç6§šÀ)ÅÖ Š2äó O9ó<ôé>›8O¿s(üÁÙj„YÙ‡wãX‰ÈøÎ¥’½×Ë“ïómøýèìºqR|ý⬛skÆæ÷·‡¥ð¿Í­ŸT34ºÌž\Êo9ÏÛÒšC)Äx7ÅÈW~~ÚòÙZTlô1Ưq~Ë÷~M­µõck@l7eþµvf⦠qíoÏ“6xÅMÄ`仾<2!Õ}û•¾…þðT< âîx2ÞþþĪúm­_Aòá‘7bÖCƒ¬‰*ßóïŸ2OP`…½ÖŽçF0äÔ{†]V·çNUÞŸž²„óB‡ ,ž?jûc\­ç•û¢æ\p!¹ç“s¾ÏÔX½pqÌ%^ŸWáûÝ»X”Ç—×È0GL³ onnäýžf3Õ‹ï;¾'MSü<Ÿù^rá—ç³°~e}Ý:Fá¹¼H¼¨œ÷µîzuñ>mf,öþÒrxk=6?_Îw±9ÑñûþéKŸç,ÁðylD¬ÇAÑT߬‚I;,â([&Vͽiáïïüw‚5P>Y ÷¥µ]Ïàï×=‡¹1[—¶þŸ?)šHh÷|ÅáŽQw>„è#ûœÖéû÷XFn:ŸU6¦Õõ X}îGâÅgA„8ÄõïÏùÂyw–Ïç•ÿaã¼èùq®¢Ï°~|Ÿå\çÄs_6²>ÎërŽÈ9Ìž4V÷vå†Yv‹Î{b#gk{Óçý˜•dñY&ð4¿ÓÏ/h9Ô|^Õ wŸ×¦Ö¸þ!þ¾Þe~!mßJ?‰Q<· {¹û󮨮mw‘¢Î­­ZAÄÜÐ?ŸPB7Dõká¶µ:8ÆÝ/Ö¶=\ôZ~_¦Îó­o9G,ŠßX@i4_7Ë-öºëü<¿9ï¶ÖvÆ?_è,ƒï¿äÏ·§ÿËyê~õkÈ@%…Ô ¸ýç>ˆ‹ûÏÕÀÐï[dZ¡cî«=“ÿ\_ ñ~hòýBM\$êÖv{ÛÆÎE—ƒzGÛØ ç·„žçä•sÓ=Ⱥ–ç{Ñ[xÁ¢—½ú€<ß…ç™så Xu…Î{åùž>ïùaJ:Ä.5‡ëìºëça(«{Nóêú-~ë‡$¬³È$kšôæÓÄEb˜Õ7øõå9¿ŒmŽëU±n/ôG9Ê»ÍÓ‹vëF?k™ÏX\œ›ÏÜ«×Ož½•ªŒEï‡Åû=o„Æ!ã±å‰˜šM¾ºÖf¼‹Rµ†y‹^^´ «ÆöÜ„ò•×pƒô»ìôýÝýѺ[ ‡øˆy! =†·ƒ åp½õ^ñ‹á~7Ä*7Vd¿™Ô1g$«{Yþ˜Ï«l/sŽU$³jÞ_…_÷Ã닼ŸhžSÞ~©õOV&y&­ø¾¦ñO+¾ßg3Ṟ©ƒkш¹õQÜ&/®6ó´Xß&Ñù1Ï_×Kà»àyNÅùûc™W1ÙÏj·q 9ëkö«4}dœ,ýÏ~vpKdx® ¿6Hù¤v`Ô‡®°x Ü’TcPžHÞÁÏŽ_¯†òÉ롆xã^àÀKT¼UÑ í³ÿÉÿ±x ÄŸ„ßÚð¦BÖÏ?ÄsµÜpm-~5 ù~ ÞaŸ×äpnþ]œ[oÇôÿ8ÓPþ ¯oÈ v¿(“B1òk7k·×{ògeæqÒÓð÷³ÄÏo|Ñnùpî›à|‘aQΉ»YÍ)¶Ù‘O‰ \\¹Hk2ŸÊpfsN½lHµøuãUt€ïŽ1æàæñUæO-Ò²®¡$â(HÕ/—µö1G/¿jOþó>Å{™ï·cñ^Ö+Sô Õ; FÛ^x¼eVȃ=Þâ¢G€·¬2Þw¼evÏ“XõàV.|àÛ[jqçÎÆ‹G/ÓøpâSe9ÿ_/_¹föC2" ËTW±ä‡îW-H‡ä|Íó o-Ôà}ëçQƒ[GVG±V­”þ2.vãω/[†Ûõwµ@•êëzy,ǼÛõ*V·¦46 úè8Âw2Î~é,oIt'ï»åÄzè®äEnãÁàQ‡d•¹Uqy@àIÊqõÎn‰Wó þ›Ù-ð6ⱨCªJÝ–Â_{3~H5ãÆ#6ñÃâ-#4¦Ù¿Ü-#ô/è ^ï ÓµáyØ1þwyù÷ü­ÁÖnÅç·©qLoÍë]5ú¬zÓžo^IÖC¥YóCû‹7@Žx>ÕP¢òüu ¾Q°¢ˆ/Þ¹]<¿ø<ÿç–q™<ÿª+Q±^ÕûÂ…ã8¯ ñ¯çu:ßÿzßr"×#¶ú›6)HâçÃ!£5æÓÍ­Bn™5ªUó˜i¼õð9XRƒæùLݬ—ä)”ùÕBc]ù5>y†,H[µ†²î‡V”4ŸjÞ‚Ö|ê¯ýÏÁÚð_òÁ^L%¼Qx0ó+ë„ÝÝ_’š°mKàyë0^B~ã>’8Оޛ §°ñ_ä_Æ7߯Êï¿ÆoõRòÊ«T2n‡¹eŠó |˜ý'îXs^*|W” l½àÁœ·uSæ¼€xÆœ_wô]½Š_ ÁÈćí5Ôç«KøÕÞ ÝóÖ²ŸÎø½ÅœI¼sÖKù gKÝËxÓf |™÷m¸ÿÄVªê|Þȇáz•ÛÃ¥>øqã}Ð/Nî± ãÇâÏs‚ç{—?ÄßRÂã”õ¤ *¤i9ÅhZÎ ÕVyçœEWõ‚jÁQmÖl-¬Y³¥4®UAɦ>xášúΈùó Ke¬•'jš6ÛɃó.Lræ‹Ø­ñ"e÷¶¾¥ñvëÛú¿yµµ†(gO¡«Œ%,.`Öâl\ÌZÄ–†R½^•¥Ú87c£ |Xx,Gç³øêçBâÕIȼ?‹ê }UÚ ›’˜‚z³=‡6ĺÚõûîB?m¨çtkLm¤)HÉÔ€©´CÉxÜQ1ã׉ºÑãöÃ…¯ÿÉÍ÷„ø†놆RÁÒ¨ ´œy%D܉PýŒî&@àû8Ê2€ÈŽïÝvo©¸WKo|.•rëÙÐÕ~:é]ÒüÀ°’£C~À‚Þp¤ðÀ½¡ô€¨ï@«€”^‡ 9-H§2Fgk€’â7ZàÅß×'¾°5LåŽY¹p»w.ྠí5Ø'¤Àá6)°ÄÚ}CŽ}S6~éý }HshPS7l×N'¡a¨†‹«¡*-YuX{6¨y,-á«q|ì¨ÒhcP¼24d{°TÊÀ‰$üþñï›ö¾-Ôöšýv’6§KŸõ¬ü4¾¿aŠªø­t‘ˆmï‚ û^O>` XÃóîà"C¦(ÆŠ˜4±+ð>Å»rå‹?_ ½ â”U Û£x’rKñ!Eÿ®TðÀû¨½Œ+)ÑãÚ‘@Α–4fƒ\¹ã Nç*áöh³£†Í ÈQVg˵¥¹ŒÙýø¡ 6c,ÜÛÁ‰”) ðK1ê½â×i'¸¤1—½Aþ=d²3Î{*–¸Ñj‚:µd—l~¿}Þ5iJªa#7ãuQÚ-Ï;¡2 µäšùÏ÷^¾ Õ-Ùìå}‘ÿî¥dZ©aF?î›Aa¥5˜q &b@s80…ÿn<_ŠP'c¿óë\9Û¾/F£Ðˆ‰¸o(„À¿š±UJå%`úýáhoÏ_µÞþíæùžÈg_8¯[çi*¿,æÙ.bõ8cjÇ—Åój¡Í‚•…+¬’ç[±VÁãÎx›fœPâ´ÀNÁ®hÆl¥ ü@¿>ïl·#L­'b”h•6™pÏd¼˜x>/èGuÅ{*ŠOF1¸O* £~ï çP hJXÃ*:Žçz>ãW…à}?‰Ñ! ŸW} ÷¬_¦ ;…Eò¾Õç=íEA"îJæëXÉé)R@ “õ„©„x~W°ˆÔ²¹A†l¥ç_4ëÒ§£S÷TÆÊŸ¸GªZ‘V82ÌxZãùl›ÏKBJoæÛ~žm±¾hÇÌ÷|ïý¾)páû}0_¿:"¢ÕûùïßÁ{£¨X¥< ;j!µsy%ò@É*ËRe‰±BxÈ+Õ)üµÆ3ºÎ|ºQfkÏkUCñ¤z­0ÕžÛ+¼‚økü}¾Ä¬\†ˆ_÷ý$•ˆïkBŸU6"oR‡šóYž¯"¿5´†O¾;ˆÇP~Ui°Õ¬Ì;(_–ó_û!÷Åq}͇äfcÔ¡Fá£eàFÊÄ¤Øøž`“•ù‘ÓÜÄb>Ã9‡tSœ#¾ÕŸüš#¡Õï*ï}SÅÈÝi«úç¹Â¾êûJ(LH!ƒ3ˆ cç‹Í˜Ÿ'ý\±1ËüQ¹*¯UÃ:HØ"óË"% ÷vÆ•ùåtå›Ì—´ì`~¤0ùÞV È ³þÛè8¡«ÕLý¡0Öj¦zƒ[–q#ôÌ4ßo ‚Ð`UµÒk-C- u®°äóGê&›ê…ïWžçoSÀmzô•ýÛ ¶˜ŽGŸ/Ï;@ Ï™_&ÎÏ5h4Eé†z±ûy _,?Rëš„oàï½8êߊGý{;ÿ¯ge ï\Ñãý×1Ïf©wÔŸ±Žû“àýxÞVd‘Ïõ~g>ÂênÆ—ºªÿ/T½˜¯®àò£ü> À`EŽýîp¾Éç?% Ý‰S ?ñyjËüT uâÿ·Þ55kâùï v¥Bî9Õfœýk•äCm¢þWõ§ Š`r«R~j?d@ËüSH•Ä¿õEÃýV›òÑ&52šë‡Šx; û ‡6a éOÔÕŠ8|žr4¾¶%6dþÑ×Á Èü–\Éþl S•AÉ8¼2ŸxĺTep0óüjLêÅòJëa}¸âCPñ ’ÊìóøýùÂ, £9Ô?cœ/Qª BJdó<œþHhÀtäà<Ì©ó¯ke\V¼¨Gx^&ëAIªd¬ú$|ž²X?vÔU¿¯Þ4ŠªÒø qJ9, iæl#G «+sw(ó ©Ä”÷ejxÛìL…m‡ù¯êûÏtþ0‹Éü$ܬ1g¬þ°ñÿ'ŠÙ÷ý¡R¤¾çVš¥C*íËp³â–Û)ê¯'W3¶ûiŽr!õÂ|Ä÷6~2&!x9’æýZ³~tÿ´ýó´¡ÜZõÁû£ðýZøõ¿’’ÚO‰ŠgT´–d+ 6Ö|Vqþ®Ц°¤mÈcò¼ôGp4G9Ë«>4 G~ÜŠ!TÙl<ãýzÏgá¨a¿ RrÔ:'Ï'âÊØÔ£ÃX‚v” šËýTe¿|©MQû¼vš4`™Ë£{ÚPN8ïú¯ýUg¿^ÿûéö6j¯ÔäF>â}¹ù<º>?š`Ú_tž ?oÕÀuº×g¡\óó•õƒló¼ÕëÓ÷ñ@Lü—æJíT=¿º /ì?–û‡ÁŸ_¤;“õB5ñ—7“©I³‰ z&ëîU(¼¨7˜°‚áØ¦N̪?ÐO±_¾ý×`¿|û¯\µ›Î¯gQ˜v½¯âd=Rõþ.Ô#ý©„wk»ï3ñˆ69j“Ô’|L»W–o}"jšûgKŒUöA `}Y%(õú­ÅgÆ]ñk~ëÌ>‹Î爩¹Ä ‰Ë)êYßÄ/ßHiÕãÎ>Æð|DÔ uñnPÏ ó+óÃÅ7µúƳµ*ÒˆWoKBAøø¶ó ðÔ»J-<ö¼¯ÞVzË÷ðýÐ …‘ñ0žý~ˆ’W lwSËa’÷yÑü”ãrKg<6ê³j<TŒæ|ìw»ñÊUú[_UÎ7ç_T'è ~àq 'cJZñ^¨G’mRÂçH :)„^DÕ˜¤"oy¶æ'ë-ÄŽÆ%ñWK°-_çuIê†<.·¤‹èKü|W½¡NŸšx“ð¤cjšÛ¢>߸Šë;ÌGîY8Ÿ$~Ô¹¹,ùÖiðqñÞ‰çv×#ø²æ/˜Wï]o«Ÿp`ì?¤7Î~)ñV×!wžWžy(fáçÁUv×1À;8§î·6ç¸ÅxÈúRÇóÕŠr(nóJGÜžºêûÕNæñè¤6#&¥wû¼ÁsÉÔ¸*£<ÎxÞ’×CÆò,Ù®¤/+i|@ ¯á> SÅ€óæ}°=¿ÉûäJ^žÉþ¾zþÃÕ‡uçG¤Šg¿^þÿ>á$œ°™ß{>Ý))Óù ˜¬÷ëù£Ý˜ù£›Ð‰—ó:WË·ç3ÀÃn¿ŽsªßøŒåiü*(O|£XPx…(‰î¯—ùR8iÆÃ1îëêù5VÚ‡\ÁyÎ ¶ùP›ñp­y•Á âÇxHá}½_ë­ÂYü¡/Ä•óâÆû}ê%Ö»’ÁÆGF¥d°Ïó×SÅý6ê7ŸÿÁ|n(ܬ§tßp~éz Ò¢¶Ï\!âùÄoóÐ&o0¯fß_Íù§Ì«¿¿Ï$µ²Øw!ßæ³ñÖéü‘«pÕ|¨ÄoßzT¿o»èŒõüûÍýÔÿ“RháûJÒiŸŸä7ÞÐ?û}®²Ícé‰C~Ù‘”þøJóüò”Ï8Œ§4[Fôök^},íÑïï·ÔG¬ÏÀå/q=OüýùÀJlòÙŸõÉUÇåþ „+ðŸ—óó¢Áo°_ÛŸóÇ^\¯ â/ÇõÞð*äv¿µÇ'žÓÙß¹éøL5 2°½•§¾;ñðQßð`H%•<¸³¯á}¾Lìß Ýžd(ìφãÊþŒ«L5_•l;ÊÅwƒ¼MæÞãËý‡”KÆó¯í(Ñ‘Oæ× ã!!ÚxÉ$¿æ~~Ac©[oOÅý<ÉßÔ󤔀W€4ÏÂ8ßù)ûÌ-ïZ9Gb³åå*ZJøã~«\E›2!‚ü ÖË!~aß<4OÑÊ]6à÷=œ4ã¡“û Óüpð?…ÿã>툇÷F|ÎÓhé2mèèyÚ6_åß´ÿ±ßWÛ€w°?â|¬cÀ€ñ¬ï·<±ÌoCC‡Ã|iç~Ŷ´ƒæÕWª¡ÿ.ÎgÂÃß닎< ¾5óY'ß:Œ'Ñ®à‡xâÝoØûOl^ÕïÆ 6ëÉæûó‹þÔ{‹õß­÷&ùÀÇõÞ$ž8_ë áf «·ÌO‡üNòC3‘Ÿ#|–HK¼ü&kŒu÷% ½~ÎV<ùýw^©ù ú!ʧ/”õÉÿŸ¥;3~çÃJkäë/Ïç›s8oc¿3‚ó¼âù? g)í0.²bòùÙÜ#Ù®s5kn…þ•sÚf|YÖMÅø¥¬›ÞW³;Ìíë’ÄNç|1îÎg3æüŒÒ—†‚ˆ|ÖÛÒ#™ïqŸ5žUµªÝ ïKÝ_(Xç^T±×ˆz|¿à[åK}½“ïCé™e©ÝÐßÞ¯ÒÏó{ ïÇòX oºg~̹sŠyáíXŸÞ}>íO¼Jo$Ÿ@ó=à6ã|MÏ“&¥¨ÆÃ'hìßXoPsûæã/âYÃûûMûΟ„_ñ¾”¥D¸ J]™Ïßñ.ŸÿûýìáaU–ÒÛÒm’Ê ño’²æK«˜Ûйxÿ3Â*埿¤‘ï~å¡ä´áì¶Šùð¾…,禥}õýšWJ+‹§áý˲,mBâéx?ñ÷Òh@òz‘¥ûÔ>mÝ´°–Z¦Áë•Ö¥—ŠdÓ¹Z?ë‡EU%>B:á`Üi !) «7ñëRªcÐæAßÏ}¦Ö-C)€Ö> „¿K+4ªa±CK3œ7JZšdîÇ>I“]˳4¬<Þw‘Âñó°€òó>ƒÒ~6-y< PÚ²ëü–þHvú%äj¸øxœg–¦ûBûŽ…Ô¡”‹¥òα´èYˆ¿—¦Ã~K~þ軂÷x”jΑ1¥“©Yú)¥dûña0½( H)•†¾!cJm·°t ¥ùM©AàÏÛRŠ%eHé«+½CGˆŒ¯Tƒ—Û¯T¿ÿŸ¦S;ÊbôŸ‹¼ú"IÓœ眤(_`Q#y5!~ù‚7ÊZ~½SJÉóÿE)àc©ç¼çòdИNZ!¿/I3©ŸÂ ²ühWÚvmJÏÃ6-„~“ú§ô/ö;:i_Ÿ±,~ÐØ÷Þ-¥ÄýÔ~-zðA¢^kŽñÿ|ãþô¸_¨ßêýyî+lÿ~í#PêAüÁV-ͤ}ìžÀ¿×Ï/(¤ßBRf›Røä  Há[š,( ·½ß©¹xê_HË…ž¿¥ÌŠù’2+tè¦T¾¾®ó~~`á×_÷­ò|tz/J«@Ò)cIJšµø~Þ”: ßÏ‹RFÕÒø“R+ÍÒbœ»VK÷ÖNˬáó#‹-[ºUðŽ!…æó5((yî¿¶bƒøB«‹Âóý}Z(¸ÈGܯ+MŸRsÓ| ðVjý´Éﯞ·âƒ­õZ ‘¯ÇRv(8klBS+–ùŸ›Òéã±pËý‡hOœ÷uÜý¡miõkí罋_ïcj—¦4þ¡Ô3­PG³mmªSS#ûˆ–ä=ÓŃ„¡<ó=¥ ¥ïn~/Äݺ¥® ¥í»-F‡¡ ”¤×)ÝÃÒëüÿ·+I£ž¶d à1AŠÝÒЃRL²tÛ”ºkôda~Õ?@[`±×Фv 5¼טA Óý߯c9‹¾ùÿJ;Oä½/7ÿo÷Ç“–¥×â1ÿ ³>­l6ëIL÷"ð~¼¾KÒGCÒ= }þÝSD>nÏÞ;kˆ‹*Kºßûµ‹uíås,_7u =Ï×?×m©»µŒ³*?kOE÷æ÷ùyro?N©ÁC‹`Ö_ƒü÷ku0PG€_ÅüÚ©a‹ïÑmé·wõcUq!Ÿ ZºpÊ’o)–40¥÷m[ùÛþ_¡”/?yŸOZW÷Ÿ6cýò%$½d)VÔï[RW*¤î,%˜ø×s¾8ïqýŒÂ‹ã÷~–´û½ïëçò†_¢Æ´Ëü‹÷¹XZxEï.óoc,k™E9%õñèŸ(%¦ú#\¼œoqÂV5’âÿ°,=ÔC·¾¥«×/’|ÿì‡ôåç¨ç0i7ÍgFcÛ7ö¿ÍVÅ3ûé³`¥ù³¿ôU±>À¦TžõŠê¡0A~e©Þßl쯛ñ‰°•ÍòûRû§ôþáóOÿ«þ»üMªý«tž2®åÃJ†ƒiÐóÜÏ@н©¿mAŸ0Y  >´V®Ç(µÎû¶nÖ?’à .ªhÝœïൂÞÞçm>R°ÐÛRßä©£ÿ½Òt¼/ë•®+Œÿ¦qXÿ`o¼‡¬Ÿ¬TøùÆbÝ >:-5eÉ=i±éý´‚¹R¥K#ãÆzéÎëíuçÙ´žZž,ÖÏwŸ·•ÇšçŸRÌÓýn§ÕÔ»ew£ÅJÒUÐß¶F‹àåç]m¡Íz‰ŸÿÒóL¼òZ]p±åéwë²t¾>ÿÉû [ ˜ûŽ­ûëý¨¥òêÕO;–*ìW¯4)¬lê;Þ¡zFÒø_Ä÷ËÑTîyXš.ëz~ŒœOJ‡ùy/ëñìEéßO©vYÞòç!‡#~‚P\7z±íWŠŸ8óceÃ=Ñw+”{|ö¯Ûü7Öƒ|ƒ&ëñ”ò•ÞJu\Ù?Êš†ûm-üýÜlâ‰e~]Ü?8SqùØG>å"ã0¿!ùÑÌEß «(ÞŸÔ·‹òÔ¯•ýéøÅ cÛúmÒZl¿óåò<¤ÎÓhäeÑ`ýå~4ïK:)Ô«´°§‡Æ#Ž!-;ŒWbpMl/ò¾V¾m´Â¨Æ*¿^Œ'Ƶ©õy â‘ÓR¿ƒR±ú{ æ'MsļÏßæéëZ•pž>:cÏ`}²žù@¥ôdó<}³þ!ÿ'¨ÿRÔWg¾ŽþÔC˜§SzR¿üÖr¥÷­ŠÂù÷m}¤ø›¬æ¬÷sÔ¯x¾0?¬ãŸ‰_Wçç]?­p~¿¿¯ЀÎz«¢_ ÷‹-È—Þîë ë¿ãüÄG–ó/¤ø‹ñfJãW»¤RH¡Y¿!ãRh%{¥Ù+ñ¿_²R >Fá›ÄCöÍÇ”~¿Ö-––ŽY–÷~f²ÿD=û…x1®·¿¨ì_‰'b~§[¿!Øßë§4ZeÝû£ó}Z–2´¶Ú¶æ˜”¦Þ¶^BŸçØÊ V:Üg/Þ9•R¦ÍÒüxt7Ÿp\Yão…ÒÒw¿å3þ¾ÿm´‰^ê— ñª¶T/åßiKúåó-=Sî;´¡~“çùœý*ñ·6l+Méðij‰ÐʽuÛTw>_[qÅd}ÿaÍÑ)¯:o̯¿óq÷p)ÅNWÞÄi‹,HáÒ°Òá~Á¢nYÞg¦_ë«>ðëáx¢>`ÿô7¿_³ýõÉú øý[´¼'~±878ÊˈiÐü÷&ntâùû>ãïçÃz]À}Bü·zlÝ:¹? ½®” êoT[á éyŇ1ïéãTéÊ…ôAªöð 5,¾6ë‡b}J!ÛÊUñ>ÝiU·ª­6xžË= V:×zªð<×»/Èó¼®ÞWåyöyê”*®þú¤TüÝoO~oñüà€`éróÕ/7ÇÖg¥ý¿KÁ3×Éý¥Œ§´}^$ÍÍ~7ÐxeÂ(£쬦ŪÁÚ ´}ºy¯q%Õ6Ku·„ô㪩윷ýÇxmæÓ%L#o/Ë8xßmeȉìf’Ô…nÓèPo7`°êâï»tc¹ÕWÉ>X4nÖ”-ã4nxŒžÑeõ§î›Æ¯1uÚ+`‘fè  O³¡¦WœŽÑ˜EÝA•ÚYÐñ#«½ºc:6Œ¾…›šÙ“ï«QóÕ㿬¼kìóíû2Aˆ§Í¥tà °š8O› §»¼=Òêe]5Òœ ’Tô¾u©$ñçùÞ›…C©ýòûeô®,‰ê’ß_ßÑ•Åí T;4ØÜæåt˜4stëÌž€=¡¾Ål«i°z£:¶P J°ÄÖÿc€Ãm6·O«ym‘ZP+ªîú±š'Ÿ÷(ÞÞ7>Oüv¾e,Åíµ‡nÄž.‰qZ™k64ÖéžÎ/M{Ãç›Ýóñ¶*~¿§‘[Æ²ÛÆ†Ãh×ðy®2â©>Ïü}W}m‘ ´]}ÆóN« â»-7iÜÓÛâï«o L‡9}Ú4þfö%Ë©a7ŒÑý{ú”ÛÇC*Ô¨¾9’Q%§ÇýVTé®Öƒja}<Æiùÿïž–F£‘L}Œl»ÿæû¿e5—Õ«}ýÿ7§URÓ„q Ñ»Ç8z0~GßñÂÆÖÖ-Ô•Yˆ=ò#Ìò‡zgµ@vТ1Pñôè+ªE~ÿà×›»ñáiæ1»ÝT€Æ}hFß{¦/`wËhÑìîBc‹õÉÞ.6¶>‡ï¿KŽŒu¯ºÁ¯ñ÷Õ}µñPÌ Õòa,26Ap¬ˆjŽèí´‘šŒg:Ñ©]`÷-öRe·hô¾N¯==5zª>…4©e~œÆtç“ÁiÌ4š»è>1O&Ý+ÞÑÜ=͆ šË#ÙR—à4¥Uë›ÛyµÙíKóÝmô¬ê­6Y_“ƒp–‹@~µg=sšÃÑIŒ.öìŒóýù-þ¾±Ü,íƒDUÄ”†‰CC¶&å"M© ¢0N©ö Ú,í본+¡æŸÇ Õ­Á!‘ücÆ…ƒW} rǯ€Æ‰jƒÑ5LT#1XÄ^z”÷â«qÑÃí×ۃôÁÖìÿ4bx¥øƒÈÛ¬Áhˆ­&šÞAiq¸)ù×#ð3þžØ€Í“LåZü¢qõ`û0µ›ŠÄ$ £–/H@™M@…‘ô4/òVº‰ä•ÀÀÄÝåÿ_!|ìa|è Z=é¶S5<»…†.Qþu+ÈMbáPß‹=Ü–Só¡§=Ïk“çi×ýØt¿Šà”ƒÙ\×áTLáñKãï[ýÃzÓêÝÇjÕIT) )æØÉ¿&¯W!\D—¾šÿèsHr” C¾K•_&I§¬mKÒ ëóz’f/>eJê%†B SÖå\Ò©weën:¾k~¹»&ý¡%c¡sÇ@ý‰¿‡õ7aúC’OÆ•Ka„…çáÒ×ik’î–jõñ6ì ó/.…ö]"ØÃ$Ši×àYóØ€~Á§z(ÏÇpŠ–"$ªhÒbö毢ñÙ+/Š,pIeH´ÿ’Ä·EdE:_¹ l;¦E.ºãN‘åf™ª¸–ƒ¢ &]ÊtÓ"IJ?UhŠa¢²~_ü©vÏ»˜¨k÷Ƙ"#Cš°Ùrížg+ŽjóÀœ¢†—@,@ô¬µ7I²Ã¢ý›KfƒWç%Ÿµ5Œ›c»h®ÍIº åPô~›$Ù{׳–¨&ÍOÖòÓKQªÆkï^iŠÑ‹–H*ØÃ_’“HÌÍñ lÎ1ÆfM5)Hu$á„{í©%_½²W_—Å^ýŽÑrÉÄ"AuÉ»úÝó…ùÿùŸÿíÿQ~üŸ<-«nS73:ÖæÊÖXÕ» C’ÌPÝ+œ•®åÝ+#þþ»2ÂŽ÷Æ)!_µºò¿þðiÿßÿÇÿõÝ¢ý"1râÞÿ¢ûDL¡—Õk1J‡1Î6” R@Oø–Œr›yò÷'‘yZhwÁá²MáDÿëŸéó×þã¦ë’cîZ¯ì\·KÖåšI?=ꦰ¯F¹Uf½A@ùX.wÐöLËgðM¾(dçzžé‘ÿò³=4Ù¥™sŠè{Ș¢1‡¢#£KäåÐä/¯•á¸#¦hù!9, s(Ò3,JÇ富ãß¶}Ⱥ¯Izi Z«XJg°\Z§—ò‘Ô\UœŸõ ¿?(]A©¥1®4EU¼(%}þ›Ï£bè¯Â€îà†^ÞÓ#<Ú‚ܰÓþãä)Z@Æ+2¢šzQæ6Ç1îúùÞŽIaØŽ}!N:^±Œ63QÊ뽤ûñ d•¬ÇÕÒ ÍÇ‘Mi£}JƤýÈ®¨(ÃþËÏvCu­§ÇÍ´iÆ6lF½QteŒÿ{š?½×8ó›yxXŒ#ßä÷SŒeSlnˆÄ]©"Ö‡–Uþí ùBkÈŒ'­$xŸv´v¬k²@‰lJ£a êﯟ’ÝÇ’Ë÷õ9ìøþý} AÒA"!îÇŠû”Â]‹Fó³Kùã~Ý¿ÆÛÆ…1…Œ¬Í†«øÿ1Ƴû—we”RÝ §,a•`ÌJ¤£”­Ãg¾±êB«¾Î®³ý€›ÆÔÏçzÁu½”ÑLµžÓþ‹÷$þ|hš·QWå{Æ3ÿó=MšÆ°‰Ìæìe ¿×›??$²µiÒ;¶Ly7Ô#ó÷Ë…"3³0þÛ÷Ð fêU¹,‘¡KEî²Xé–ª•Ö¶ŽãÅé¥\†UKC x¤á†«Ê}¸!µºöoï[ ò—ŬrôÞ‹µêAߊÒ2|_®‚wþkyŸêþ¶€ÏÙ6”aÀÅúü׬ÿ"—uæð|oó¾¢%×yÐfÞïi¢3Cr!ˆiCO›xÚ–WgÞü}Y&¢™p5­ÿÅg ÞGUæÃ.WS¬ïŽ4ÔGf]7ÞÐì1¿Îû•ìÍ>„ÅW.™wGŒóM!”ù¯ßÛëÝ|lX:6´}9!©« —ƒ8RФVÈ'âù#,­Ô¸Œï5=B3fÍÖ¸bß$Aÿ/?ÛÒ™yAýùÙÌAZÑ"¸Žþì ‰øEFÙ!j©O¾¿ “ÓH¨4fr ýÎ{Ѝÿò½mà©ë¨þ|otÕò(³3$£ Ä%¾§hU/q)ãD,ºÖ):÷ƒòç›c¥4]¾±¦eÿî³5C<#ãœá†gÑ‹fëQÄ}X¢s[¥J>ÄOП­núÚ·0ç¢ßŒR&_ÿò½Ý€ð0° YóãéÕÀ¤®ùƒlÆí!ǶŠx{‚‘Tú¶Æê(HCq®–‡¤8þå{¸ÆsŽˆy8/ÝŒçŸïY\Ž kÿÐtIÐα ×¢šÏºBµ*á±üÿõýà˜ÿö½¥üÖl$Æ#” át¹a:ØnžoÐCË|Iˆë’§ÏXßÏic[\דüƒtƒóÿWÿ}}kqé·RÌ3ß[à%ž!,b›OLÓŸwÐÝ2c⋦õ9›á׉Í{ö™ñâl忨Á=•ƒ«__°` Ƭ_&` 6 hdÏûX_GŠ[)C#ëàþ–D>ºÐ¨’ÊÀý;—ñï?[Í΢Q`ÈPèXøã@8¸ 7 Àu_4ä͘ÔMb[à*¹‡I1=2†Àæ‚:§ÿ¦¾­”%Yêy{Mb{LÊ5JSïÝ@¼ï{Ø~H“ß_)cÇïï`ÚÕ¯*>\Åýüoß[ˆdhÆò…88sÙ¾_ÇÿËÛ›%9’åÀ–ÿµŠ\‡=eìÿ·zF÷|ÒÒá&Oú« I#ƒn„ábP¨Öœ·nÈ«Å+*.š)ž´Ý·›¶Ÿïx-P‚fNõ÷~{ÔHPS­;ÞÊÏ jTü²OÆÛXmiË£.µâoÆçXMM‰—Ç.9±ÜZï«^MÄCp«9Þ ÷È×– =5ãkù¶€)ûÌø,È¿«H}>8@)+'w;?³ñ¿·øíÔ¶#yÂ%Þ–¤@Ú¿¼x1 yÁuü§lx]ÌpµoyyÄl¯Yx˜^3ú¥ß®Ë¬gÁ*ê:ÇÁÔ]°d#©¨k„Ÿ²>:¢l0vƦ%ùÓÚ`‰¾½ U-çMLèpskUW^ë™z’V°Ÿ¥ ~ézròÆI[³7…_¼ßKÏi9‰£ àù-Ì®j)OØzª!Dÿ☧fÝ¬Š¬ê"J åG]?l‡ßO !ˆ¹|ýc¼75oE>IÕåsMljmD¸ÛM¯6}/£Üžþ­e;‹*pèÍ\ä³FÊ­újãßÆ×Šå×yY— [}-cEâÏP]fR{±ú^Óö¦¿€hÁE”pzÆÙPÕû©‰!Išûggé/cÿŒ¤½„0€‚)lrªi颕ýX–5¶%•Õ¿…Jéª9NšÙÏHU=6ÒÆÛÝìýÛýOÀda)}RjZî«£»Zü,¯ï½ï\MÑû£¿‚ìWÃ'ë¥|ë'‡õ¢W3þq¡ýG~}¯ë Ñ›$a„G^I ûÇo7~šs‡ÌÛÎÞNT>·§L¯6ËTø¿¨XÚÕÜ¿}æ3ûq/§1§š3tÙ-û ÝÎÆUq€;èWÔÏ"0YÓKŸ¿¼·Ám õÁ:^rZžo_¡"jõcGÍú™iiéçüì?óµ¹¾Ï߈ÐNFùûþmt‹Wáä•ûÙOÿ6ð‚«f¼EPj9ÂI¬ÉF¸‹ñ‰tE§ß×O9HÙ )þ®~;¡ç?¢ü#[ó­\È aøÈ NõºãgÁ‹Æ¯JØz<¿Ó#FÜjùÐæõbëoû·eG?Uë¬akNpsŽ " â/"±çf|E„†=DÙÅñ7æý3E/¢fÓän=¦øüõû³Lñ©U¨½'ËsÛ¯AüÍù˜¤&{!e5ôìÌÓ<‹4+æž3ã÷zqo¯€{âg©›¨øšýXu—SpïNˆRéNæebPüîÄãêx{‰Ç+ãíùŸ?çµZF•EÛµÀ,ÄËaô"¼¤ Lý§}÷÷ëgÊö@ã÷Ðl"û£9ð›x;™Ó.ö…ü5t`æ9¯øi2µÇ=%ùOÎ&Ÿm?ñqñO|ï/ü–-×P@ßÔÉpSûÅVê†ò‡åh½^Òî¼¾|½$¥½ 7ØŠ …B‹].ö)É߯[a_ û£xªé\ÎÌ7<)­¤.ž©'¿=»__¿L¶…M2ñNÄÛÅ^Ñ=/üV¡DÃŒíXüD‘냯&Þ† LñÞ_ÄÏ8«J Üç¼lç3>Á+yb— Û×?ó7ü–9EÌ×Ö‹:[c’-W]=«d†ñ»§%B/lÕU–¹Õû©ãNú±òŠ$ž˜ÒÁÑ^ÒoÇçóë·ˆù­øOò[¡4—Åou(§fE-YyAæ \ÎμBuYЉßB|½y6²®¿L¶÷Ûx+HI;…l  Éöîø(¿Î͘¦“T’š;m$³z^?‘Ôbó §ÆÂ$½ŸÑ?’Z¿·,hul+&ôÌèÊt"LºŽ¯Q½˜– Á¢ã+Ùü-‰ÓÃ/ ˆ›ùmPFœŸÿ¿¼·üºwcBó'=€-›­£®&¶ìœ;L^G¾²kÜ!õ¬œ3DÇt¤|\Wà¶:4saý{Ž1¿ ú¶ò#‰ˆ‘†ËÏ2_íø!"aG-{áÒ/+ù­c„T|Ô/8™Ïâ÷äáéó?/Ó9¾K’-Êá–RPÒþµT5~ªCLÒÆÍ¶üÔóµ^¯_ç ’"/9#ªŠ1Û˜¨ßÇÛ¬ï3Þnì'¿=ÄÛýà†âçùWðSóàvÖ¸O¼™ßÑ^ømgÛb¨Æý#?‹s~<²PmŒnÚÄÎäsÌÄÕèÿ„ŸÞœŸÅ½Ž¿aG-2jƶõ†ŸÊø„¥|õ÷„CY+ ¶6½K¨|ÖùêúiÏöýúî˜|Sø…ÄŠ¨Îk?§{y–uI 4&¡þg8±H øm¥d'Ó¼6³‡¨„!ì–x±ØllÛ523ÖNÚâ$oIÕöËÞøЧÓÞú#ûßB1Aæeç‹g‘ÄÙ9+ä¯ì']£á’šäjy¡3†ûõ½mâý‹ï¬4¡i{ë˜ô.†ËS&+!àê“ÌGæÒ«yñ×ý=¦@逿O2Á°¦}Œúå=Eõ!&¤wh'\™œ&¨Ðuèf[s„àMúì«×*w’sŸñ5€þÕNñéÿ˜ê_ĉc|ýoç Š×’xñ%ªN-£P3Ü´]hÜË(Æ8käT T¨ŠÅHÙmŽ"žØ¶ãîKýòÞŽ‰¬…0+Â’âmf?*¬“û³a¿³“Ø"ù‚ëÇúÅz¿S<Ïìk²Ñs,4ðË{[¥ã È™_ÿÊõ>HŒl¾¢èõºÈZ÷?5dÓ,÷V/@VÕ`ù†ùõcß‘¦Òù$¾ùå=E[‚º§,“ký'wÌ¿-iR$Yx*V#PM#dKóõIhM²ð¯+Þ“ü½Ú~£7¥°Ôíû°¥Ô¾aðµÁ–=ÂËdôdÍZÛÉâ¥Èt¶íÍFæxz”û³uõ[<‚r÷ž‚•@)Ý•æø©~€…ÜÅuÄnÒL»oᇠÕ)žÙãxª|7‰WièóŸX¶¢êìo`v¢|Ø€E'ë€.wû—•,÷‘mYgbÃNfl;Çû§ÑÁC «^øm×~•ØñŠE BŒ®="Z”bЏ©±\ÄÕ‡‹!È([îÇu©@hí'ãê¹z¿¹þ¦k Q†þñ?2£hlÙ£Ó²Úh _-èÇzútã3 ¦ÿÍ¿ÞûÀ-õdŒB|þí=]é_s›Ú.æ¯IÐö¥>kDE"^äj;¦'ù'ºªßV^A.³ôqõíofå ⽺Õú#™Í8Ëú¦[Ñ…a®§¤L®â°©þÀß„ìkh©³Ý4¾}Ølat1“ý鋞Œ‚ó×*¡ ²ëêù€DT°áVêúš•sÁöq’´‘AVï‡6òÌLñðorÉ(Nÿ¾—¨gõ@劸¶,LæÆ³=»¨_ATs2ǽ²„1±àÔ„t«ºžÊ}\~‹NŸ!bOàqNÿÙAúû{ß¶ ü51ÌÇßÞR.ïEÞÛν\IÖAc>‚›{ÿ2îòAU[D¯óûœKré'‡»COYÍYŒäÑ—â¦åÒõBÍž‹ ±‹Ýlíîžy¯‘åB¶ÙïëûO$Õ߯5cb}ºÃ. Œ¨½x¦”‰üÁϴʾÏyß!e¯¹ƒŽØHýЙ^ò‹™ùd?‘«{o‘–ï$ßÍ„9<$9Š ž¬Á¦áp0”§œîz`£‡æ~)ö»{z„: ä‘hD޾FÔ!Ê›|`kOL$ge9QA±¶Ôf?j!Ë<6¯L•T[£‚ømn·šÂÔce´"Þï÷¾ù©*˜ôÓSò\WSO~¹Ó//öM{É>YŸÝñ½»é·úËâó'Ëù¿”ìßåŽ ÿ?ä¦mh-Éé¡@k-¥À¾+ö¿[2‚ÆëI6Ï%Èei± pÍ;vñybÉhf”饶ìâý¶O0Ù ôøìU9Þf}=™Ï^NJë±Ý+yý‘íë's®ì¹R {þ>D»éë¦7äÃü —g}Xõ” ižÑi'_åÌç¸ýLI#¯lVÁŽ‘àUZ2_äX©<Šs囈´ŽíŒ“—8;Rdé²aå3ªÑ§õľBÂ%íèæ×ãiÏ}tt¥_ô OGén.a:£ ËɼiƒÙdì¦>lÚ_·¿> HS,ÃêÃ.ÛÁ˜ Ñ&v<Í¥ÑÝøm,PdŠ%‰J[ͼX‚Cß¡8gÉâSçŸêaÙä)¥×"Z¿a[þ™$åǶê8ת‰ÉÊ›9»HÙÑn©Tžä!TCk厀üÓ<31„–¯+.D¾ËQÕuº„]2¾^>ï¼Ù»…§ü,PfR@ÿ67­`û1š¼²ã!ÚÆb{ŸÂC q¯–ãiLáN ’²Rvy‰#Ðßkâê?ÇòFäPBÂ: 'Eš:‹'×ëšž¸œ7KÑMélKXÁWyxÖ,\…ô_sÙêžËôù_í_“žËL.q÷³zÚ‹žKKYõTVÎróˆ”}éÂÁD|½/p/Sì5ïÄä¦xK|…¥q ºd-4âçv|Íxѽ¤´ï\y½ó_‰k(¾Ç×ãøúîì äò¹Ž¯-óäR"¤Π9½ø'<½ÎËsÓ¡´»Ÿû¹—‹üag¬S|³GS… ×Êù+%ÔÊ”T@—ò3%oúä¯#/Þ‘¡–'ía:žár·¼ÁÆßx©‡¬…À‰ØfâT˜B´ñ‰·×¸—’ñÔ¸—â{ZÀ¹Ô¬ ó]¿¾yÿx³¯(ž®¯mX¢Yñ5ìfÆèÈ_¿Þ0ÌŽ*µ¤°Ýê`;Þ™ïFÏpd<ÂÆKûk:ß\ÿ¦÷r þWAìU&!?->¿už[Ø<òa{ÖŸ¶âés½šÜŸÏ;‡9n}ƒ‹•ð××ßÚ‡Õ=6“ôÞSME¬Äj ³“,ü¶ÊÜ‘‹9Bï>»6±!åc%Üg˜"aµ×Ÿ(¿÷ÛCÝÕ›ý¶Ò׺‰ÄÍŸÕÀ¿”Œ³Úü÷^WØƒÞøxìÂçÏïï·¶Åïî­´.¿¼~X7‚"ω®Æ½V€ý÷¡¾Q!íÓƒ½ÒÞºpA>&>ž!¤A<ÿ†ëd8.óq -Ò¨Õ2…¾ŒÙòNÎlxü„Çêyý̼˜¼5øèÎ4‡ñ@XýÌŸ×ï·ö³™~»m?ªB;ð*~Zs÷32ÂþÈ ¯äŽ"×Ý:z£9©24à¦*/ç]ÔG÷™Ìo3•Æ”Êoê§@KÔ›sü~à ü6eJÛÆoOâ 3›óf϶M­–´½n°@ÝÊ%ZÐÂf{’…¯ „;ºÅÝL,ñþèuwOïâóã)îV˜iS`»ˆ·åEýUú*«þHÂu ,k,=¼ñðàwÀ!õ0VÛ&~$]'R¨Õ8E„g$<¯ÿ¾VXâ×Ò¬8²M~ƒë-(¹¦-2Ú+Vn!‡~·(4*m¼÷KO3ØÇ|…-Úê÷3Nÿ‘ÅWžo ­i}U­Íë©[S€ì£489Ž×8´Ã5â⛜_¡õXºªA'rÚ®TõQ¿n×RNô'ñUm¹k&;¶%­ó Ç%¶%SÈ;&îMv;m0d¬äï:âý-óÜØ`YóUŸÊpùjZŠÛ Jo9ˆøtÄ ¿ ¼U0hÖ´‡lg¾ô°§ç²ñyò{˘ǿù¼?YÅþr†ÍKdÝ[Û0·Qnw/Çì…éÍÊ­ÉfàÓô@mݾ¸X=å­ÖQ|”~ò-,QëFBý6®ê°š‹5ð)~÷Óð1ñûzŽæþ€°¾ž½g£}(—˜V qá××ÉáÆvý\$´r½:_í&‘7%‹¾BÍMþÐ2ˆŒð¶Œ§'õ¾È äͪ0w½9/*‚ÕÆMÉÕ`)»åMm EÈ÷ìw‡ ûðœ0¶ÅÙ¾ìˆýÃYMuŽ`¿o˰#JpmÛ…JéÅìð …Òc®£™²LÅS-lhßqÛØÖëîuì;uµªO÷ø-¦;á˜NdÑH /Þ¿¯acêëŸÚÂè@¸òu„<“jø³Oñ ¹Ê^ÏÃ(ªƒéø°l´’pX­ÕïtjÖß·Yr~›¯ K¡íEôÝ*[¾Ë9ÔxXVæ§Õ[ji7¶~‰§C|õb]_ºKGbˆmV…ýâÙ¯ žZg°%?møéüóÓöÿá§øåL¿Ôë˘ͺ²ãùŸeú¸¡öþŸ8Ê+»‘ª§7tAcà\æ4fþ2ÃOÁëÊôÅÇѶ°žv‹õÞw¼qU™XÜSæÕ]Üá9AuW"Ç/(æ¨ë‘ÓDßÓ#ì9’?ñ_}þàýä^UÉËÓ%ùån\C—´ s?49nðËÂç‚p`ðÇ‚\jÔ[Å%²|²Å×C`IoS {¥}¹¾ÿÞ_ƒ[ç ~wS5(Ø’ÙGõo™oÍÌDô†ã_&ùYuЍxºSFGjØ-õhÚA÷‰¿GöI¿šgâÏç/×ðmæµ^iªTÑÔOuå·ÌÅÓZÁk¥6PmÄ×88á_Ÿ·¯/à ÜPãª> zEUšöpßp¥k‹±ê^áµjPâ€ÙJžøÈÙÈõŸyëÖNsØ79©ÅÐb&ÌX0¸¼Ž®õ¦ 9ã]UmV7ÿÀaZdûœgëq£y<ô+Õ#¾÷¥‰µà­Ÿ~ìxΚj祥Ìö&¯Uí_ƒWC{‡aÓa¿°Æ¹n¤Î¹oÕ’°åÇ©Qu…÷ßïyÄ4/}úùÄŒPAã£õM÷1ö²¦ñë¢Tžê^2ñeѸ¦~O\ïn'ÕIt+lÈÙÌó†aAéÒéÿWKíÂ-敆Όºêâòú1é4¾ëK]Áè¹ëØ\úéÃ|‘íE´ˆhå¢MÜãnVJ7–£Í ‡BTv옳t³Ÿ„;ÛÝ3ÙCŸ÷ËÒq)hÌ‹nPeçêª9ùGj»›®ä×5ÒÝÙµ±{“ÁþcÃ$×wE+«=wº ËÝúªžˆD^T€±ˆ6䯆9Ÿœê<ÝòƒÖì®7üÍ@R”nf2ËT%ô5ù ä¯Ø=ýuqý‹êzCY<¶]i ÷{„ÃÁ¡e–á…Èxõ°h6z¯M9¨]j+Akc½ÚÒ£C±/0w±ùUCØU»‹Eˆ\¬(¦‘Ó Í1ú:h'Y 5„S\üÓâ“ß ™Ô5™Ù1‚a­ÒBh¡häZbšÇöÁž‰ÆÝ™=ÌòÓ5RŽØ?óó&]ËñfZ)¬t]“]!ê¾.XɦÚôCÖÕ“üÅ2³WØ4[9Eo3¯§C×t*ÄçÁp`nØ/”·0%áM"MÛš@}Ú”âí?½nbNüô~ïi6 ›Ä0îc ®§åƒüÃÛS¿íþ˜6:û™jØ ÙTÉEè{I ѽƒ—VŒ«mmê¦Êkélê&Cxw¦6Ê·ísÇøýY% ®jCH±P¯ˆÝ©“po÷˜çβòa³)ø±ÉQèUEu´ía[m¨Òªô`ë¯ê"Vá?@”+þuìoqÆ,ã‚ÃŽÊm%R¬i—Kv·?Nce—²)÷{Z/Bˆøüúû‰0„†J# ]vM݃܃œÓƒÔAwƱ…R¾êÈ©rçæ½Ö-f»u³ã“׋-}Zö,bBc>5Ñ©™sÆ€ç!uTpri«ázº—Ê·˜¦Nuý±uf<«¾ˆ'íû³ò÷ȰÀ&¬E¨´dj:ʾ/¸‹O2t¨ùëI;ޱuscG­Mß›óW}Þù0ÔDW4D.^Äöîꪄ*I€Øª\xÝÙsœ÷÷ɺ2lOÏoRELYž èýC~k()ûJ«¿aCYHŒÆ!°µh#³à\±ü3,(K²RP›B˜òi«†3›¡Ì¾DÖV.PÈ ”(DÎÒGôöêIUÏ6\Úa3Ý9êSG­O÷ñ6]œ‹Úë×=´vyg†³À¹£OýfbQÅ\¯B-YLvÆÉð·cV“]¯âdK»Ë6P8ÎöìÅÐ"ûæ<°¨ ”ûÅ¿‹$0ðj$W„úp “ד¼Žœû­|t ¤€W¬ep…„Ì÷ÏXKR¥mþ‡ßǸXZ÷Xpk H9Ùdpn‚÷-YçÖßH£t/ l-LµnÝ×­ÕÒò-êö7¬=jB1Sº°ùUá‚Wn-/ØÌ–9¯äÈôª˜¸-Ô…Wn•¬FÏÕ¸`9ê@ÿ·ØÖÌê?§ÀßNÛõÓE·bwMÛEÖ*Ñ`¦ãílÛ;O£N}¡¨Óðs J§ ×·ÌS©¯™Iá*„¾8*Žýu›#ûxòH¼¥€þ¦G÷Ž¡–þ]Ì'’þ[ÙçXé¿Â_n²øßÇW¢ÏýŠ‚…“^uñ®x³E¥7èÆîí÷ºÏPÚ+ÑÐ][—pkªeNâòŠej±cÝ»áKKÂ*h¨ïýú4où"í'û Ä®kÒ@‰FÝWö  Ãéöˆ†ÈwE€ìM72~¡»¬€WÔõVý®ºˆåê¨÷A†­–×kþ¼o6uV^œäç«¿æ¿w^Å‚2|ެ³¤7-hsÞ½Ñ9³0©çWžÿ¾ª¿•{|BçÜ4a(ÓâÏ‹ý¹Ôþ%Š Ñ5¤ ÿüzr‘Þ((j‡I|Br_5T„ -6ï·|€Yñhø§¡ùvDïáW_ôYu hU(hµ§¶kWÛÛÈM‡ð£¯áÚ8V2|ëz¿O.8Å?µÅùÇ\S¿Ÿúh@­ÕjuÏi2ÈF¹N7a3õY½IëõÊ.²Ù€d䫃øûÒ_׳Ÿè’<÷~›¿Â÷±š•˜  »' Y¶»@‘¯ú-û­Áñ¶Jö `¶Mí£Îê£ê¬c;ú¹ë?{]gÚJZÏÜm£xö¤å¡ÊÖ‘ñ¾ÍÙÜ´òâí1A@p‡av[$Çê ¼cðúªŒiáýéÔWn5Oò ’üˆ=Á[¿¼ &³‡9“<ñëûe¦ p “þÝâõn{´ˆKKNÄUø—®QJ² èÐe[Sœ™qRý€°g¢í£’I)‘f€.õëÂô }ú‚)ÐñÞk+³Fá²BÁ“߯F~mž1µf¥Ñ<çë%/HÝ>?Í~(¾aåçßÇÕ}f§VË> ‘*w 0‰cº^%Úx`5* $"„qU%[ç88ôtFƒThðßÌiY3äŸæJ„Šh¦‡z˜Ÿ7ñ,ZÙÿÈeHÄf®œ–j¥bÎ$ÞWQ1o_ÄÓ)ý\ú¬»¢ÝS·h+t¤ß-Zbõo=v•Mßu«¢»çÔ¼ñz!žRm²Jø{tèbßRÔdoxÀÀí°8~(D·VËAƒ2;©¢@ýóõõòKg+-ðë›v±ý¢oEé9L‡€XÎÁmHgˆç u¶Æ½¢t„Wý![¸ºçŒM7`s_´^m0ij8A†»syà^ù,k>üp4÷LšK¿ÿ)®ü\œÃ÷¸Þ¶Až!Žßûë¼7x<û…ž§Qî±ôó4UB›¯[­c«ÛæðZŽê#19øeÞO Ð_)}æÉÕ ÇÈI ,ßm8ØÙö,0øê­º®§ç´DßQqŸöswåïs©AoOõ~ó¼ªÏÌ/åpñ¬ÖÌ¥bç¯?»)… ðêm§Vè ã*Ý/èæwŒº-ª¾¾~îÿõ³‘T<›"eóÀ*©ôàVXù©Køc÷Z]Çm› §÷F'JôÞæë›-;Va5¸>øãYî™KMz*==V?eõ(ÙUv¾>òÏž¹Öd $!qüªŸŸ_Ÿ×VߟZô`<ŒÁSQÉ\eð0/·uºóÔì§„íùë|¶™·®?IäOïJÆÄf’øñF…*¡¨ÂÚ¨ž2ØÜêd™ù3¯RîoÔkN³ö“Åj@5AªoÄ7ûÆ"¤aÅÊçý‡xR–©¸*ûþîémú§æYìVíË ;ìBbäõó~¢|‡£]vö¸'ŠŠoXO,§c»Oµ´?6Ûôë°ŸfŽÊºØøÊr êÿ‚M_k)ï#·C™Ò„Ͷé\Ÿ÷†ERÔ®Â=As¦Á½p%IÄ×ðg”»Xw>VóýÎjäõ.+NėØI¸®ßc-./²PûÄwö7蔳Ys-î™r†-Q-Æhu_¼¤¾ÕÛ¡o’ÀDŽiÖ~d§k6à ÉåüjÁ*E'kiõ&lrƒ‡ð®÷=﩯Ŕ±^±FU˜ˆî ¹R<,²a<öËÙgUKÍó-ì†?W¸ƒî°¿×Êõýc/ú¬/°–¢*Ýš/•âø³À9’ B5[y«4áYvˆÈ^frI7%Õ?ð¯»?<Õ¶o#|xõVº#¨{+é+<%$ªÈ[žh;¢ˆ Ö”X ŽóÏè’û‚. H’¬Q±/¢®ßÚVâú¹a…òöBƒ(%âqý}Ž¥øXÅÚ¤=5Ù°8•ÌOõz͹úk>š°5÷ºŸ~Vd¥š%µj ,Ql/U‰„ýBE¹R“ÿ œØ$þCgS´úSÜ>üó™MÙ-¯¿Ø+cE±ÿWÛÑ›÷ >ð@¤ÑÌC\êæáØ~»{”{s±•z¶8Ú}å¾znÔ\1< Üod<þ¨wøÀ]Õ,f4ê’n“¬‘ZïxfÝñu‘×ôî´ÇgPï ¿†u¢ÃÖ¨8cJgõ!¨y^à­¶¾¨(‹çW¡6™‰“æQ]ó¦›ñ3ÔŸy»ƒ=÷0rþ?Šñ­ˆk _À|K?+‡¿gá‰|ršë2l=ÃÙ~º~¦SÝ¢S\ÑêwÜSc4]Û»«Zn ÛZÚLêçyÕϪ‚ÈG<„Q–þ~Ø%çÑ'-> "ÞNðSÆW)Iž*÷µ ñ×ý…ξÕÍùÄ2d¿¨ ®€}Ò ÓÙ®ø—¹•Yaùà[ƒyóË[α՗5ªI2Ÿ]×›# u €èì:¶Ÿúx'~#Ù>•a~%¯ËÙ¾ìÿ4°öf>P(ÝÏÊ 4±²[ËÕ‰íþ¬ ÿòž!¾¢q©½õ°jÓà NÙ¾GîxÖâz«°?X‹É¡JCí:é ý®’…3«ìŸ{뛿^òÑMÅ­þÀ¦?0œo[ÏXOõˆ«?ø€‚Íž4}}$ËÉÖ‚DO4Xe­3ìûbžunâJfµ¿vÛé¯ÒíÜ‹‡û£3fžxÝþ\aNîŠßÊ\w¦+)Ò«üõ>™®·} æÖ¿»³×k.àÊt ’°’4zNÞ´ÞWÇ=À¯æ‹š`IY¥,*>0ÃÔkf—¥A¬R{˜ ”xÆÑÓ“Ù öjÖS[g JÙ|ð4A‹Vß0v7×?QA v³L'»ô·"ƒ£{¡©•Šªm1j8_ˆÅ˜Ãõ0,Eÿ> d×ç¯ßÇ‚ 1 Í‹RÝŠŸâRAáˆÕ§{]ÿÈg‹;¥À0¯ÁÂ;âÖõœ+ìàµ)™ÿN-&ôbކ߲B¨é7‚»²-þåŒcûhïö Jïc™¶AÉÓ|³qR?,EïIømÌõFzLa¨ldÑê>ükê#!õ·ì õ*êm{§!Þà’íÎhüÑ4Þ›'r@-ÛÞ)ÑÅOöu ¢†#Ì\ûf¢×ÍU÷¦†²àâ) ; Å}-e)UïoÉìõõðÔ*P–’ÚíçÔø/ýv°m{żbý²­ŸâA_¿ÀN¸c;z8wåõpÞdIlMÜd;™@©¯¡;¿gúJUãßÛP¼P½K™¢~ØóÙRÀ¾]eŸ¼~…_×ô{õpÇ´ÆÀóùågó·õ—°Cý³õYGìºcÐä¯'ëÎP?«'RT*+›V¥¸þ¦ÊߨdAë:3þ¿ï4ö-;óá?¬.Ù0ÄÑõŽí›úìˆ×¼´ƒÝÙ+É3܉·Þ8°PRÝv¨A½ýë˜0`hœ6ôÁÐ%luwÇßE›~êTÝ-Y¢eWÙÊ'âz}^÷õIÃîÛvÌ™^²G!É6Æ2gëRdŒíÊæèÈûa×-¿d{ìè'–­{w×›å¿uûFö"ÃŽø<öÏîñ߯¡f"ÁÌ5T7EÄ¢O0$ܨ7m€«4ç ã±[']l¯©ÏsL)h«.šÊ¿ ZôµF΀vÔ–UŸ £ÖÜlR.5’;P›OñíOÆ¡æÇWV>“îõ+"ÆûkV¡qVÖú†_`N·d™ »ØÆÏ”¾„ßq6u=~aŸ´~)|L\XÙÈbª×Á´¬wØ1 ˜Êÿ>OyQ+ò‚Ÿ‚ ½êù…‚b@k0ütåV£ý˜Ž'[Ž#9ÛdoùéÍ,|ñ\”9LÂVŠg Oð¬Ö$ [9¾ë1Åç#ìL[!Z…ô³¤s,H×…D—AöÇ®±K/öa‹~R‘lWÁW’‘ñ· ;`ßð^Øûì)aß {j÷õ¡RUšcHAõ¯XVÕf‘Ý_…Ÿiq9yÃ.f;Åo]ý¹M4ºbF„U*a¦Ñê¾ÅõbÌœk ±5Ìî~Û¹þÍ,|«@jЂF/QϸW†aˆ ˆA¹É(§‘g¬(?vd5Õš-ÕT#ÒV/|û·ÙÙ·b‚ß2ÊÔl™šƒméÛhw˜:K¤7ÑK¡w½õ5¢–-ÉlèÚ¶¦MôÅšÔ;T_ñþžÌµ›]åó‚e²ºoÚÌÑ7éë—ëÕS . £‹‚CûEfGä_½?꺞§ª+ ÷@Uâǽ¼™‰ŽVÐ4âÔŸxéœl:º®m§ÅØ—©Ÿó…¾8²ð[çdÓ3œÁºZψ÷ûŽˆöeŽôÎEøÙÌŽhÕ–TV¶]ÝeS»ÊFéÃôXå|z6AlP,=ŸÈîËæ)þm¼½ÄÇäପm~T¨+†žÀ£ß¼Ø+ÕT0Ê5U«|½ç½¨²4/›)^³Ïð&¿ýŠviŽÔs]?ƒ_´˜?TñÖlÔÕvD´b>g Îl«ù~UJ×5séÉ–ú"&(žÂâ{†ü–ÞLˆ²§ßUXx'ˆ›U©ÙcÃ2©l=ß?Ì‹Ÿ`OÅñwc¿aL^*a®°òK9S+~ŠÂÏ"».žµh·³ÈO¿\ØO¯1QÕ“ÒèEFÛ¶s™,í!Äç½a£>­6ßÛjlh»á—§³ã‘jk§&s=ù,ôƒÚÑàúÆ.R3›êQyZõÊÓ`]/oβ@0Gük’Lj‡ {g¼Œ:êcíeµÜO »È6¾2D¢Šíˆ×Íj•Š·q}ÿÉAü·ñÖüŸÜÁè6jëè…=`Q×SöîVß°YÕ›ã¯ØV]¡+}ÞÌø=`Q›­¦ý/Û;ó[k“Š™(ûífÆ]+S½ OÚ·ø«šø[|TðgüžßŸ'ˆ›CP8a: ¼²`Ò¿²£ŸÐ’'kk‘@ýÝj;~›z³Ÿ wvóŸ•ÃnÉNÿhèïû·]<¶«[Skdç /øz†Å,ë,FDEK¶Ñ¾‡~ÃðFàÒNG0(ûzþÚeôOØbY?Ñ[ó¢~ÁL®>ýتÁüÝî•O=*6[ÚW6³ó©5Õˆþð¼M¥÷¦"3ñ·”7Øä # ?Óá?²¯mú S5ì ôÆP¿Ö¯k»RýÛîëçRäßQ©ý`jæ3è›bÄoû·‰‘O1õéèÇúµ]ó D¹8­íYìƒ`õõÒ-yýÃ(Xè«#Ðöô¢ÿ¶æôºyŠ®øšÃ.É€÷I÷¯ú ={ˆ_ž$;{ˆþ}¯«&¸úËöi²_ì~x\¡q+~«RÚ §eËï’ýЬÄôFž+,ìTÞ÷õLRv×çµ|=*ŸsÞ(‚…¤B£¾1AØÑoǽ–#Mô¨ÎaИŽðÛKŒ‰(ãc&ÃýÑ%ÞO-r'VâçÃÒÐØÔc4ïŠÜ¿µŒ·Jò#~z^¦^NOMãÁáyZÔÍì²Ë?¦Š°=o÷‹~;™ìçŸd!›TpvR3úµRJ˜IU§t(ls€vìT^Ø#îG’-Çüm퟼äë·—ìøZd‚$½Ö~ ¿˜ÿ=9WXÄSï‡wˆ[¢õ~æi`•òPw»w¾LP<ð+ÔLj £/¯c@ôsçü°#Å3?5–šñ×lÿž¿ ÿwÏu–I‰‡xo¯Îu$®vñÂÉ›R=§M4šâ³97"}Qž`rcÍ-Ž®ìˆ!ãæŒ]¤}šs¼èÏI~êÎRØ{O{¾®s~Pü†ÃœÄ+Rp[ù&®Áýƒˆ¿Ñ}Ž¬Ì—å·÷Í.“R»­|¶m#«"­Ï ]žñ×3•îO&ËC|µbˆÐq½g8êƒ)_Nä`ü6µ¿òÛ!ô„†|Íø„a?,Š×lßjôvávÖiªÛfæ»5ë:öÄ&`Âk–\ 8¨Ûî‹ÞøíàQù)ñ÷¹7‹¼áAM^ò†’yC`?æHu•N|]¦»¸B…=³¶h|Þ ¾˜ÑA¬žŠâEÄØ‰Ÿoñ2f•ÇÈÊÑÌÌî)HØÇ8œåx*fvcòãóU‡=v§Î{µîxƒ›ñv1G¸‰ö]‚JZÂø/m¶‰­÷àÕî7µ_¶ …®Èø§»Œ³Ù¡ö»~²†ýí½½¹ç§¥ü·‚ìgî‡ 1Äÿ³Ûv‡ƒ{»\` 7¿ÍIˆ¬ïýaª½QkW¼%¾>ùmÔ¨³$ûgÏx¼ëw¿mIz%l½âmÆŒNwOvˆ¯7ñb_¿…âí›#;i»xÙÉõQ²æÜ/(¯àÇm¡‹Z@K È{&ìðã óuÍ÷_”`æÉ¼&ì8ñƂ〟˜x„Rɪý»@K¬<Û„–˜Þ ºš5Êž¾—¼—™]•‘Žg.q+x³ò†?Nø‚oPÖð«Ä£îž¹‚H„ÒO ¬ž§MvöfÎ%–XÜGÿÌÛÄIi͉٩î/Î2ÈtÀ^÷Á8EâåQƒkÌ‘}-Ñé@½iS§µìƒpŒøýàSfú¨¦.òMQ£ ÖŒ°’$Ø×ßÞL¾¡aÍ—Ÿ¶6~ÚRé>V«ìúàn¾~‹¶¼£7Dæ#YÕ<ƒºýg*ý—½qúZ/»ôenÖÌ_|Õv’qÔ©®Ú "?¶#<îåèýq½s¶ ãp¼Ÿ}´«ffØ/r0ïÓžNÂèuÅã^²^ÝÿƒÃ:¤‡_?>5œ‡g{ÜÃNıö¯àÎ5>Ê‹9Ú9¯x9*¬JuRU"U°4ƒ3hLP¿þ vF»Ö+`-vœkrœ65êñŽIÛÉ"®| ¢ø¨Ï{_œ0R”—¤sz«d ;¦¡ïK­ Þ¦<=ñ!¾’ûc€œDxYœ‹Å¾cÉ©ÉÎTù»ø_ÞÛ®\+ê¥!íøïIuì®õû¾Ã6õ\ÍësÌ $ê–"›}Ý®žOø÷+Âä4—f65Ü÷<ì°C>—ä°SÊì¡ Õzü£zõü¤–cS‘ó¸>ĉÇYÏoï©üX=ZhLŸ%ÿ]öÇdGSBÑðÏrmÇGµ&²èÆðGû«@xñ~ü½i|]!o|_(7k…˜ŒöšþUÔíåÛ &ú­;k\\²sfãë{΀‚¸WóyL1 æWŸˆ ñRXˆaúq·8âc£Ÿ`üú“ûb¾dæê,ÇÓ†¿so¯z3ñ<¼ØÕmV±+Upⱸak‚˼ëì‘ì½±Ÿ{Š;õC½n±=éä"%;^÷û³tŒ{Ôç/Ù/záAù3`Á½øíybÌ|P ¹’ £]®µy*-‰6¶×TÄûÅ”i¶;Q `Š¢ ‰óïwÈøªAíGÔýê’)­Áiسéâȉˆ áaù(5üb ’ý:!ÇðŠËÑäb¸ÏûûøOÓ9ViíêËŽ—~þ£.ÑÓÏ ûâŸ7ƒè¤F~z31 ¹%ï©ú¼‘ôßÇùcøß42t!í :gTØÇõ0Pz>ÍÜQ£ã¿Æ‰=þ;<Å¢‰Ï§ë ÝK=ëÕn”WŠ£Ê º´¥6R}oçº5Ð@¢VÏE!Hœm©5}]©íƒ‚Væªì“mÐùFsJÌŒUú[ðÌ ¸vö°Ç¥Ó’é-¶+Ì–T‹C]iÙ3ï=×ïŒ Ëù„îm•ýB{R±€ÍWyBÜkmažNÒ@Éeæ³o4æÎ{Y9Ó`,¬;__ÊŠª³né. îõNtxöã·z|,y÷Bá»îåíŸ!⫚*7nÈÎ냷c§FÅК‘îíI»ë·ârOMÕ  ê~aqvõøÛ{«P߬5h'8@ïöKýá²Æ›a>q ×’ÅYlý–H0ËìÀ]ðŠäÞüåî³ n!‡âá:ì¬oÏ4΂$Ö î£þ_üš:wˆva6_\Ð̓PœÃu›Vå,”ßî+NtnŒâ:~fOîêû™>foÊgþ´¤ó'&œæi³cÆÉƒÌ1å,çŽ9g½Á~fÔ†ã«ë¤6²î¢ŽJ–ü¬³ •uXkÎýÛ…ÜóÛ¬ã’Y;ë¼¶ÞðvXãNLÀÕ¹ÖáßO®5ÅÜRü ²æGVnHÌSÌÅy}ÔiìÍÛyyÔEW¬\íM^P`rßæõ즀•g•RÂô·Õ1¡Úº=u’‚…„ëÁê÷3ÁÊ<]šP(x“Ç*=‰øÉvfG|'ªÁyéöé`N͸·#Ï¢kóʼõ`Óqr^¼Íâyó¾?§ÍŸÖ¥@¤x [xɳGHV{yvµäœFLñ²g^ÜËáJê Ä×íœhÙã)ÛÓ(´¡ nû™¿ü˜mùá?ÌøÄ° yÆL¿·fjy“ " ¿Åj5óQü5ŸáÍ9O­š›U-k³—Œ¿ ¿œdçÊ3P%yéPÛ5ßÞ[¼LóVpìÝÆŽrKÍÞ!]¯°i~lï?ª¡TþôiQ{åžCô¼óÛÿ¶O0èÃ*Èÿ‘=è»Î§¯ºT7//¨´ss¡Òç2*M‰Ü¶Z÷²yÿR×ãÜŸªäyoßiÊ©*´ã|zS_ÙÕµx¬Y_W¾¹Ú\Kæùf>jTZ¸“`Ñăý>oú¿ §òçÉcë;¦­ ¸¦žøjK¾… ·4g™¤Q{ËFsz0mÖÛ1e[K }~ÑÜì¿^­¡kn°Ý‡-¶ãk §Î¢›¡øÚè«vÛƒ¾¼Þ0èÂiQ \%g=+¡°åïÿéfü­¿JÜô¼ã-cä»XæŽF‰wû17ø*ÎNJO5¿¾þûy|]P”Óùäß×[‹‰|‘4ÔoyæÛÉžŠ{0…ó¼¤?j³‘Çûñ—|¢I5H×óy¶²òމý¬²PzU<Ćkg™wky¯1àŽƒø™ñ¶ÃóUòúÈÅJNOS2Àˆ’¨|æ^¿¯¨âÞÊ~BØž›R #ñ–¹ê¨Ù§­iOp‰Ïõ1‡}æ讨/[o—óû Uÿ3-ù[U ó i˜Ê` Yå Çm™%L [UæI6ª*PÔ±¸j¯šÙŸó3#üû| ëžî>ÖÅ~ê,×ÿ#ÏÿÛÝ|ìñaÇ«¹©êI‘æ 6½ìcUüýå€ß¨z»½CŒ’•ø©öZ{x¹m-u½»KÙUÓç5]o~ÑÝ´få͈¯×Û›ü•-³kÄ´â+ù*=Á+½Cù[âvûœç•ôPs…Ä h®uòzƒš‹åœ«Ùß_`48TÎàáêttŽ™Þ½4‰7;ûžäPþz2ÏÎtVˆÇ3? ô_1ï<é¬ ­§¿Ê# ÿ³P -»:¾úuö;ÓÖr¶mÈf-Õö0”ŒÏ>.ý°¶égÍW5Á¤ñX*Là‚7£´ÜÝX3æþÞíðëyÞCöƒEŽÚ¸¤¶ïàšyÀ§ÀK,~Ñ+$·ÒRðöœ«c»ÿ4™ËÎŒê'G~ÐóÙ×ûW¾nܪßp ëÉÝÈ7ÞpG4ÊÏp)‹î‹“}g&i²«ã e CfJ€ ]lÆZÝÞLSôê }± ªzk[YYoqþ»^Z¨“ßÏ fÀPÑžú‹ jδ®¶³ØLs¶ØP'?ÙÎf¿Ê±Ø¯@0ÿÈŽoÛíýªïËG«'x ¤fNòʤîLäà í ý€‰ÐJÞƒx:{ÿ¹Iõ—÷ö8êý‘­=ïpTv;µ7 gÿØ_S÷ûhE*lp]GÀCù£î=É¥öø¼N>û®– Å`tæTyÇÎñ†sÇÜ&Ä‚ÐLc'N[ÄQ°PsíŽÆZs` :­Ïë¶cÖž»‰>ØyÛ¨j.?õº©“vâ³øÇí} ï’u•ü2ó܆ŠDÝÎs!E©uåÜ@%{Øí÷~'a¼{,8Ñ$EÔdû¤E uKÅhQ¤ïÁ©pUW©`çuaŠãýxÊe.‘ú (vç]oû$[¼]a ¿Ý|†õKž<] ©ð™CÅþâ9ž%ÆSÊõî3Õe×ÝÙ°cŸñ¾â5ŽI P~¼y¦krìXŒžßh¦¶úǦ4‹DÑ3OÏe3'ø²ÙÛxFoï°pº—qfòÙåú+û©“~Àιlh[Õ›ýX1ªe>4g ž>ØÐj©’ òܶÈo_`áB·&î-:èÖD¼îEk«¡[Ò_ä•1öFÇæy=ê·‘½òUÑYÈ^ùL=üz¿¸·•Y ð«?²cÆr›{1ðE€~k~TzàÛv³>ø£³ÐÑO;õÅ‹ínýñwº âWC]…c›ViuØîx)ôÔ™`X4Z¤[“º Ò ±ê“tÖwžû ýx£«°.òGòždšG9ÚêÃï-<±hÀ­²áQ.fJ^àÌÑUx(™õðï‚2ÌxƒéÞ›™%yÊ—j.ìØ£ 6ÇGGa}×Qh|UÇåÞ-®{œ¿ö.Ãõ™*þ½7ý­µS§œá’E0«™‹Gm Ëáê¹?§ÀR®%›ëÁ: £|¥;†ŽÍMݰ¯ø›ûvÐåèì$IȺ ©áÓÐ]â^7A©åÏÝöÀŸw¶]¥2R‡ .´Ù³ ÓaYg{ƒ=-µÎ7žúî9=ó@™rPÅ` œ«ÍŽJµ…?6¢!Ç÷'X`“’hx_‡ê©9ª¡4aZ^O¯–¤7°M6dA1¿.›¹(9$n6ý[ ű¬9„üúÍç”aÿÒO¿Ê¹˜Ìßf½åBÏûZ/õB¯ŸY' ú_ÅvAŸ‘!ĉZ3@/Œ©ÆMý%ÊCµ^pÿ7¾MŸpö5È¡jO%jÈùt¾ë¶¶–y-mJ1%ŒÓ×KoÙm4»0wG•Aéoïíf‘ºû€Ýôº»ÿ»¢·h)+÷ó‰«(ÒËoËZgÄBL©¹.²íûM_+6™¾Ü›ê²Ñ¯êmÎÏ^Óך>´ãÕp½›,¯:óçCº"b¼¹s¯Rͦ™ÛGX¾9N7þ6žÆQ|ƒ[rU˜ÕrÏ`Á0Ò—BWO}sI:ž/á7d¹{ðùè(,QkYè…îGÕÁ~U„#¨<5=Yš+ñ´›åNÖÔS'õ–úÉlîUu·4`J[ºµý£Ç¼x^ìsY©–ËŸÿ±8*ð‡ÄeÄ-úq[¤¾ûy„À7nÛ2¼N½÷¤* 8Û"LÒóâŒê:ÈãtOÍK¨ÿœ¼ÞqÂöåœih¿¨#…}šì§þJ¥»ï†¦Xw\x°ßðÂLÍ®C‡Cý ÈÄ1„ž æÕi˜ÆËDï΋¿OsDL}ížÙs£;§ó~Ù®ÖÅ{Ç™[c¬Ïþá^Ùðtk¨Co[´÷ÌW‡(\{wv#ŽJ«<åì0º!£$çï…g¶¾©¤¼½õË\8ΔÄ÷”— [÷ºe³˜½Œ–šl”¤"¬ì¡ëáù^BéèK™¦•×ÞÏOöü_ÔðÅ7͹º½Gr‰Âµh“Ô|ò¢n‹MSº‰ìo‡ò@)¾>¶‚ƒ!“ë‹¶ˆ‹¹O£¨Ø/zÜÚŠ8Ü;8Óz¶õ³ÛPÐÿò®'üÃSã°¥×8¼+Dñ*½0ö* LƒF=†=Ñ{£gÛUÏÇ-b†ØÕ$‰Ô½=ÏøøÇ”Òßb@ö3FÌôKÇä-øÄ÷Ÿô¢¯Ïtxc/”¸ƒ«¯»â]u/ìÇ(½0ZÄVÍÐàÿŠb{¶çHÉß$2g=EE_ÄÛ©¿õNß[ńԨ¼1 =÷–øËÊ‘zòÐ.ž¢šý[ýçs¯›ïÆ›x+†4/Ÿý‘¼-ã~Sy„©?E‚3â)¼/SCPÕS÷7¦íÆôYÄËvðÖÆòä~ w£gØ=õƒÍ(D0ßËÆÎ[Ž]‡èÇ qc¶Xˆ`pPx`b$ymG×ÈÇïã­Ü=>M|Á iÍ?Ξà˜\ükóŸ§SÔGb»uÊ¿ŠßÇ1åøý•˜?ÒlüÝŸlwë·ªŽ‚iÊg™BQØßùå¥<€jx:4úLóÍOtÌM¢‡¿Š‰å±ƒ…¡r³ßsó÷È­žßfêÇj™à‡Ÿù€î£ïÅæÉiüÒ©¨u}+hh }ÇžÜ|—ßònMׄÒ6#ûéÈs>²˜~£YÓoKæ ΩJj¯(‹1›³B_ùÇöDòÍY6EÞÛݤì_ÄŸMV~½Ä×ám´yyÝ5ƒr0~+ÉNjˆn”úáñû_Ö þâ®GõÏ£ÞÇ'«q/|çSZk=1ó lr?®ÍVef“»«ÐëžþkVa^6^õ ª JÑoeêQÕ” ¬[ó.ê~tn/¯O÷« »wŸU%×+Xíµí¾³Æ*];÷ßÌkƒ+zæN}ƒ‹z6Ÿûm #þÀéÌÏE÷X(‚ýÝîÏõ×v¥ŸÅŽ~ꎶ7X#†j\J÷~§úœþí½iÀúƺËüj/p<„wñ–Ñd &ì-Zeôcßp ¶g‰õÁ”w¢ómö‡‹N­wâ´N?Î'¦v-;š‘ÇŠ³äd}Vð»YSÀ?“l8¿ôW³ˆŽc«t/õVr£«žÍ,*¢a\©¸Ñy¶™Ú!É®8ýpLßoº´wôú| A¸Þf Æ?u%zÓCM °ò Í”eõù÷Àf> ÔV%d`Gnu"aôw£»ÆOu¿îHÞ{ ÂwhN ÷&ö¥ ßÜNØb±æîonÌ&)Ir3ÔÉå- -‚Þ{?K ""õd®—jÐÚ%Ó¯sR.!ðj·V»ìù¢ÿ¢lxoG2gš·'Ó+ªÒ½‹¯p°Ç•;›•m³›û³E‹1f&^TÊ×»3ž6æYV1ϼμ¬jð}Üó†WCÛï¬#®#Qñ°9>JWÙH'‘í2?˜ ÚŠ³jz{-âgLø“AH Yæh³´šñû….ØiŒ¡Šw=ÕnݬYGèVmïe «bÚ_7ã𧤬8Ë*vÕ¦õ¦Ò¡Å;ß`Ž'œOúJMÀq™U?³Û@"ý-+ok¯ëõãëƒ{2#^|ÞFg¼eL(;/zÝ^¸RZ_?8Ì}®xI^ n`mr'ŸÀŽxî"Å’>Ã}8ýÉÕ@Q|Ó-wvò }/Ï»˜Ÿz‹`3oMú¡¦LO󮌯ƒy.}„¶Ò¿½”°„8™ÏVÙ³½é,“ƒ5$Y­ö=<;Û5_¥Û ÆÆ¼²É&¢¯Áűg¬°>´bæÁ<[ð59JÀo/a3B_=îý×´âÖˆ‘KÏšu`?ûÁçÙ±TKlñv¹¿ËsÛî+N¨£ÇJû]Ê@ïŽå‚·Zªl®Õ¯ë9É›6óÞ_Œ; ¼­ÕLÂîð _ÏâúñF£]ç½ÖD¨tUäX3£éu–“Õ3gbi ó66=qgf$n÷ Ô’ŸWœÒÚ`_`j¿«-ö pÖþ÷EüÙ7hµsÃÉj«‰§•ä¦ð³à¶êÒÍ3£$Zÿ¹ö—÷”.¯ð¯ª Œ)=µ~µ¦¦}ö¹”xkÚmOx¶ÌÃuÀ¿öäü?舷ÏþÂû‚ ]ð±Àauèjê0Þ0ã©;<Ç$ux_f baOLu\_yÿ³}ˆdÐþWü{õç^ÓÉén°SþšÙÀ×_e¥¿j_ffí4´/3¿£g­?"³üð×5^ûëJÞ‹Ç_/öJ|v¿ýðn%Fµ=Ùû~ðÛæ?¿øŠíÊ^yyqO» £?0ö§ëåsúPû[}¯¦õù§>3š¾˜ïÔõšy½ç]3géøw×lü{ýE½õÙè%y¶ÌëÆ~Áy³žýƒ’û^ÞGôë<ì±íý±–û´ üí Ü_{ÜŒ3<ô^èñ%^v¸þÿ†+ü3ìî'ìN±{—ƒ,R$ h t$|í §ÞD9úçÇžKbã+{\÷áÕboëüØ›)É«µ~so¦€Côž£F Úcü}ϰ"Z]»õ˜Ã3&uH&JISa3z£&ã¥ö½ ú/øÚ£ëïÃ`¹°†KÛoöt¯â\¿Ç;õR{.‰yo‘Îýë{ÓÍWmöbžäÆçíÜq6¿ÖI þfÏü¯F‡x pÚ  ?Ø;ýÖ¯ŸÔJÑoa|kG‘3lp[hS žøÚèÊusš?Û…ó~Á// œ%ÄÛ®v›Öñ»ŽbÛL¼¬BOm=÷¨Y[Ïýoø¶ÚLŽ gÉÌ}[8¢Úz£,ñ³&¾©ðJS½k‹£&AŠ°Å¢Ô’a¥#;vÉëµïUS#HöÓøÄV^iXéuÆ·ä³1ß:Î7+𮢵páÝ,iö|=:a'ïå¹Ïà} ,”_¼Àu$úšxóÌ ‚Μª:‰'7š4IÏNì¡D’’ 4ÞÛµÛÈô¦ªo—r ±®8•j¼éq·‰Uºp–ÈT~šçûÁ^™tóæþW7¿aæâ•ii;è™,öoú[¾‚Áþ«|‘ßz–ý®UØŸõÓù¨xf½%»ÈžËùotJþ*KCå·ùyžÚûâÞöÿÅFKMG)û0IÔûßy ŒÜ5Úøë|x;ûŠÉ-¹Ù§}x +<‡í¿ê&ÞB^UeÒI©š³‡yì¾[&uCöûjcù¶}UFUݘ0öüäþ†ó\Üæ}]öWói_½çÒÊê¯ä†î…x›yÃëµÿÃ[Ô&|žõç¶Ä߯W{½¹¿5UÖiL@=Õ@G”¬·ÔèÉ@e1aÙ©}ÙÍìp½¥Þs6‰¼Žà3/ê/4Í:`I÷ †lÇOx5or“²è­~Á±]ÙÇ-ÙˆÉçuÛ&ìèŸ]ײŠ×…~Á L' ŠÒZWûÒ¼®ðÄñìÿkâ5‚göá~¼Ø—ë5Õç%¯QpŸ$åA¨Pó´x‘˜÷"ó‚È:êL>-¬ëÊ|”Ièžò݆áús=‘ðóy|û:ÞôC/üî‚–L±&{©´œê?éx£žŽ™rfxìÃÿ¢[ž=ülí0^¾o÷i‡÷·“7Öõ×_ÇúΫýœÿìµ.Rr™^üy&7j#/öžýˆ[A÷üž3"Éq÷¸!hÔcƒNPv+’O3»jbËl.T¿?ÕX›]¤Yà94îû·÷ö;×(5Â…‹t$Wi…G¶&ÏÖÜ—?yl½ÎÅ:,Œ5wAú€fšoÞ|ru€ÉþížWã±[{h€¥{q}¯Ä)*Nƒ,äÔ|¶ÙÝ8%9Ï´•¯ƒœ% 8;ƒ¿{¼ç5ü¾C ÷Þ…Ó©?~8Ù9Î=îäêÏáp¯{úy…û¼e0áè­ù[©¶?Uþ>ÎF%½7s¯ˆ³Q»îœNÁÇŒNðÎäÿÛÃhÊžØÎd§‡¸sFiÎÈ}ß`´Ûé}Ãê¾AÅþÔ¦÷»­†öÁÓ‡ó‡ûˆ©7Þ7{¸;ùwþV¯ögDC?ìŸÿYƒ'ºÉüzW]ym´Ÿd0p·\¶Ñ0Š=Öè~9ºMÜÙÿ£Šó—Xa þˆ,…™ûD‘ð³3§ùµ•]¯2γ™¹pÁz¨ŒvŸ¤wÓÎcñSzÝ væöœ=Ÿ¼µ~·ÝÅÐõåOLòe¦Á|ÑÚ›Ú â£r«eäiØœew´Ï²™›_óG¼¥u’óøë¬ëë{®Á&é §Î|W#°IÚVÖ"–O¬Î¦ËmÙ ¬pîµ=û÷Œ 'µÍvÊâó]—z¯ö½W¢s¼;¾VlÔŒÖÓ>ú“¼uä£-þyW,Ê{¹·-ý8âóq–­¹>÷úUÎuèt”†ÔGÝ9_pŸõ2/ÈþÕÂûÓ—u÷á3¢P²·ØèãšÃäòyåg7îoï­&>£o$ˆq %Ùkh4y<ÏRâJ}ûÊè^Hìê*îjuûñÜTáÕÇx3ûÞH—ìbÞXr™í½‘S g5hàPl3|ñì„™Á¸ÂŸ?n#Èl»´øa¾ØCHØÈç·+峞 6¤!~òlãÇ(¸Ž‘1À¼ÜJGj²Ä…½yæoÆ”FÌYïê­B½54ûf3Z9ÐzÊL+•Íëÿ“Çð¤®AÍë?zIäÇó{<®ãç¶Ï_ö x†cå =ð¡Vyðp1[AŒO+tìt°I™S:A«/vbçÕ§u6ЩeãýãáI¬²Ë›¹zàÇSe-Òæ¶L;ú3ÞÔ¯4‘bŽevµ+>…A”Yâ 'bI8»Ìá9°©/r,ÇÓ¶AF«ÕáÒo¾ò×IÕ÷¼Þ?÷¨ÀÍÿøs›ä=Uþúô·„¤ˆ¯ü>Çêäö ¸àÅËМn7q["àÜXLή֌äïœ]²—m_Vò‚ø<ã¶”Y´^Þ`Mð}Ò»3¾nøŒªãë×UR¯«Ð§zâgE‘Z†«øŽgÐàQÞÉsþÌ¢ûb26o¬<à¶Dº’£à³y¹S,È–îüÚ·$ƒŒž„› bM›`1e~“·"`RGö³¨û«§fê±p¾3ûëžKr@õÆyÿäð÷xŽ[ê×}ò úYãÅœk^pZ•”0âeÔªB-}ã)¤«ñá1\ÄÏI.8.ñÎ><ˆ"éùÆ“v³ÔŸì`‹Ûb?ë6˜U*ª!œáhÌü» ¶@_v&olwÓ|ZÊv4ÇÂf—î&Æicñ€¿Èµ>sÙþs.›uþߛˎ·sYF8ÂTpW+µK*8®‡/ÎÚ&‰Å„9è‡}Ñ5Øî€x½³§¸©aç\,Ô­Ph·*¹7á…­O> Ž f¾ˆÞÖ'«´G¯ƒóÒ¯ÒrЬ½-{¾ˆg3ÇæŒd@ñÕ<„l>¼YGë>Ò›¶þIï„O|>üŒY˜ÃŽ9î¯ö¿›ÆÁ,_ë–pMÈI‚}3mš¡VùÀøøëIf¥ñô¡éÖÙ{ÆÛ¹lÇßÔ}o,6ܤí$Î¥==”þéG¥è£ÇÕP&jFŸ©§ãž ºH;u?ö‹kt êb´ïñî±ÒSvk·" l壙LPÅj7ÂL}>{ ®©R_ñÂtö¶n‡54ù ojH’¸î‡Ÿ°˜¿°Ú®ÄWꩈ·å?+4hƉ+ŸÿBg.™â{®É¨Ð>=Ïtß©á÷OâøHv·ËÔVóâGãC@ØÇ,‚u·7ùÀMÜkÍ>Vcz žíž¼…î[=š½ øÉúªº_›øBóПÄ^p oòkC¡ûÆ.ý`/¬åPÙgQ»…›l»›ÑR<[öN®ÙÛQdH=¥&Ž×‰6{1ߊ@‡.{]wP/¬ç;<°9«¾5y_OòtëüT‘>oÙ>àÄWæ·º¾±ø{ÞXU*7ù7á)lÞ• ¼ ð…Ř¡-p²Üb»Ã§ &n£/×®£,‚ˆhØ—Êé¾ékY‡kÓ‘M^0MI×Q™×÷k³.›ì›Qû*®fe|âNìæ_øB1~ùعD„td1ÚÑÂÉò:]4VÿÜOYñŸ­Õ½#þM+/ø6gòÌ !(>Î79ú·°‚"üÀøvΣţ:kù™îÄÙž8YãÜ“–pµ×ï¿ÄÝ\ӛömÝks¡Åõ×gÖó[ðùk~·ûލˆ{‘g®šw@"vÍ8;‰“ OÃjº+ïíÇ&ŽZ·c™ãwÀ%)‚×å8[Šý:Î"õuÇÑj;²ëâ§mTÉ8}bIÛ}Äš~m7rº7=ïxÈÉ©¶fàS'£žÕêsÝ9ÔÎ< ;VtÛñlr.qKèý+‚|Y޽²ÉþúgØ7øÕ™ýÙ]à:OAÔÍÏ|væÐ•›ÓóW˜)†Û|Ýä:§¿µ¨EfîØ-ºs³½Ú«EßX2lª¨tú£e²¥±ívΨ­Y Ä.Û?x4V·¦ñ~jÜÍ~bžïn1õúŠ#j Å~¥é²ülàgÛ~©oS2nòW«Í ¤¿Õ jk©¶¨i_jnÛ~û{lf BÎŽÎ{sLëk‰®f~@>°WÚä+9úƒ¾hz'9>/V’U$ìàîšÿamþû8}®¥òÈq»e~:àŒr希#œŠó)ãlôVÿ¼?ºr˘$}~Øõ^Òœ¸Ù';– s9t( „æælÕšÔ\;šp²6Ÿühbô§|ú~“($ÉŽkÛB­ëüSÏ~øo™¶ã‹GNÕl‹Mñöï e/m¶#NWïãF1ð×õ†Æ´Y5ZfHs%®zê(ÿ¬™CËL¬&<É-ÙãýƒëwÖ[ŠÃ9'›:5ÚY—þ6Îv8u S»¾áâŸî"‡=¿qä„ú^æÄnÉÑãÞ¡ü!®·FUÕÜw&wäVì¨T§¿ŸƒÉÍ;=옃)ä„M¿j«ÄQÛ}9îÆ\·ç·¶ÜgÇ~ßôø‰5[͹étMÎ.“È?#î•B—#ü*x4ƒS:{2êT"z0ƒ|7íM¾ÛÒϵVªs´ÆÝ(…~™üüËî}Åe²PVYjôГ‰¾Á2;­ì™ù=ùej©¯AÀ"êéœïù…·ñy5{4ñþÕ~nMüå½5&x5XDº#a“²‰ª¤;ãªúÞâ {ì×^\½Å(x¦mqï•m.¿òûZaÒF­0úÜäu‡ÌhBb”À·©åDùl³‰‹ë›0tÅ»ˆ³ƒDBÖœéÏoú6åª îò€B\Ý™¯:?u¡PO==Dxc‹QzüµdžpÖϸ]×ßô¹´žùjÎ ÔçºÙð9Ÿ»Ç™ä.]æ ;óçVyò o²~ËCú›žLÓ³Zò8:s¸·7ϤͽÝÙ7(ι¦íFÎÕòŒÊZ׿ü[´¿ö›yØ„E!™Ã>ôü˜w-íM«‡’=Å`›ÙGeLT¿yf©o0\ËÎCÑuW妇ýB&ê®öÄQê°ØJ/ž® P.Ñ [Ea}‚–v£ÿʽD˜9â.ùB¶&lçÇClùÅd¯¿õ[etŠƒ:Ö¦ Š“ËqQ}¯¦«•Iff>;éÉ<ý.õ¿ò [ÔyóºVXÊÛÚ#×ßÇYqš^” #Ίrå3ï¹íÚü²Ê_»ú œY™Ï.׸L ttç¯1eYF ©o€ýCŸ‘té oWØÕïæ¦j5=û*tŒx\â PêД/AÙ='úÚ¨ø ˜õrž@€{Ú´p¬a>»¶k>ëž'Ìg¾àyÂðõê#XzJó„%>ÄÝÿÎ7:tæäÕ³ÝgöÊÙJåYß鯛þ-³rZõêç¶ïþ:2.ŸÌg™ïf=Öéçü¾¶Ÿ1âžú\u3«ô¦ãŒÛôÆ{žY?ãj!6dÜ­(¸ÕB}5ÐRÜ®ß_ooú\º—<›ä³Ñ•àÙo™#ú­#kÛͳ_òLS\Ý©7§F­bC>û:³Nö@©Íó3rý­ßzîÕ`»“ßuÅÕòô¾é·Ú/s±Á) 3ÛgœÄVõyùþ¸·¥æs 7F~ûBA%sÑ >®¥‰fÔe#û±‡ºÉs„ž~ì{«ù¬$|ZžiÌÍNöcŸwóLœ[ö }„aèµqÌü4¦Ç´­œÏ2Û™ÏÆž*ƒP®|Ø2SË0÷Ä2 î€:WIÏïýv‰¼2ÚQâB_‚$õjÄŪ¤6‡®ÊâéÓªOŠê±˜/îç”ë"F[›¥ÎW5BINÄÑM,˜øWÞ“ š¡8ãdàŠ»'óf5½:¨ÌñW¨,¢¿;‡óý-Þ€ùýL|Î’¦ê-ú3µÒæú鯗>VIm4åPÓ¸º¾ØÖóðÌÔ=÷-?»Û7PI#.ýn R¥O°ƒÔ¬-™$iKÎÔôíh£Î©ÃUÍ>+Õê÷Ž´'ýà7øÙJò°±ª:›Y;٥· ’$’šýÚCMƽÝbP—}}¾Ñi¢(¸ñ»~W°‚Ô–^ý/úQ5ûYeÿìwuΰ™uÕ˜ßû_ëKöP‚©Oß¡3Çh¯öÖæ ªÆ 1º>€ó|‘?ô<Óù°äׯdþЈËOÿ¶¿ùD'®¿ÀÎ.ØX Z° [~™Ïp×™¤`®3¨«ÄÑáPl+.9=ŒêYf"èÝ(`†//újWMÈ›§hàzr3Ù•Ê@uèd´¥û¾JNºT6Äo°Œ7ˆ¾A3xiƒÔöáU&ùhÎm5w]™¿Nò£¸•¿.½^o_µxº1€òEžpsN¬wed­»¹¾¿Ò¬Î¾À3·ÝÔý-ç^+û­žc r°é=Å%ÝÄoø˜É\7w?]ÊI•ìM\±û]28û¥DöEãüñB1;+iõW‰«îÇÞ¿¬í³¬!œÕkÓŸ5Ò¿/IuÖ9_q÷-Ÿt@ #ClV³UÅ‘S¢·¼íÑ͵ïö¡¹V€}£·¼·§0ƒ0»©†ž×›ˆÊ"ú¥ÄY–•ofî?xj÷ŽmåÞÖüv(Ÿ9ÿUÝåŽiØ…þííjÐFQ7±³45 ÖÜ@qsÞÌ_VòÑgNVÉ–ç¹1È¥Nãú©J^òtÓv¡ÿõoИÿž¸.´QFαZ'óé€'è™ßnðľ±ÍÒ¨9ÚúÇ‚³ž‹a¿à‘3  Z„$AÖŸÏAÿT *ÕxÂ<ÚJp‚¿WBLFs°F$ûýçØ£çÜߨ޳CZåf-<™?ÜÄ5‚óŠÏ{g‘YÍ;KK(šdœ¡|ú:÷O¾.1µ°×ƒéd¾çÉÒOrŒä»(¬òFçË”­t/-!qÕJêx\‰œ´ìÆjTt1Êò¾Ø¥2/ës}d=%uîpÖõš£Á  ë_`êLÅK}ÛTÁdpÀŠšŠ«ÕªºÝùn•\CØÄáºQ€KÞ¤hGÚC qí÷~«¿õë—úò;4‚YÛ ›Ýå+WØpE\iúÈiÙ༯Àõ­¸#Ÿ'xñä)þ½…ýB#84xâ©hÇØä:H•®wå`íÍjzqoöÙ«q]a›1“ëáDïÉçéÏï¹Z¯×W»Ì¬uTþÈlÆ5 'VNÌÈüõHÄI›Ö#í+=¯ãMk糦S6×£µzÿ“}ÿå½Efl@õGv¨8’Ð}Ý‹!ÀëhŽPQîõxý¸·= ü7nÃÆõ{Ëæú¡ÎÿhÉ!1pûM^[Änߨï¿âmÑ2gØEçyQ?Stšä§ßÓ+/*ÅeëŒ+ÒW ›žLõKÄ„7» 4I"¥·ßN ÅFñVŠÑÞÜñ!Ü’?«nº˜Y›ý<žùf±{^½‰Šg!8÷&&´¡{W·cBðë$Šr•{û‰·C÷ê<ñöêuöÉ®fëñÛ 1|ÙϳkÚ®ØojÜJÓ…&Þ*~Z•IDˆÄ_ú‘ .âkÆ[+"³ŸPõgJÌ÷¦Ýÿ±Ø¹ãõø(ÉþÖo ~¤¼àü0*˜’”ˆ^·ì»ö{ˆ§î|†­x=óÞ~«æ]Ñ{x.ÜIê—@)?™[ÿöÞ6‰=u¿’³·‚Âïtï›ó„ª¡w+-Éž\?ì·•³ùDœ•žÞÅçGþÖçO&¡¿·ZfŽx)hjÄÇÈ‘X°&~.6ªØcüˆûzdWš\9ÿ­â˜’¥úÿq!­`Ö C1×Ñþ ufMò> çt"dÍT‡o±$™«hRвš*µA* øû»”Y¤‹´ˆbmñ{𤬿à~ßÇM‹ñQþŠ€ÖùÎñOå•Òi Ó\U„ëʵî2ˆÏºëºÈŠkRõ¥øÜx^×ÃŒ|25gš§'SÅGB•ÈÑìÜ-ÅW·¬Ù$Écm1`+f¸ßݦlŸƒ;>gžÛýÏšó@ü3Ÿª*a­œK“ìÌ4.ͨš¬ÿPäÁ^}þÖ²õb,Ë,‹ƒª­›â{?8·[>sÙÅý7[F%»o‚=óÎãº1žÞ{‹ì<™Çö{Ù=-öV¼õú,‰-‘ëg7ä·{Ûîü5ÛÞÒ{úž¥çÍY5:ª½lŠªuQœ5®M?QúIÕu¼eNÁµþž»ú¤áóx›´·}¬3÷B"\›šýØ+a6{éšk$^ÇûÓ¶>Z"­Ü|Z4Äÿ¾{fv.GZh¨"+÷VÚR`©e®…¹H ‰ñòÞ[íåòuW¼V-Qªò×j=G¹œb­x\”‡Ôztn—M¨öü¸mS´Ò¨î £|vËNµÂâ&Q!»Ùû›ò[9­­î´ÌéLòùðÇþºZÍ–'t†õV QBü„,yMÖ'è4bD~jñ“P¬õ[t¦†\7¯Z§óQ~|o!÷$>W©:W¹Aá\Ù9•÷¤Ÿ;Ä 0SÒ¶ΞwL(¶F^³ÉÙû³ûÛ^k‹ '=œL™º*)3Õe@Ûªk¢f¡Æô-ŸÕ9,^Ãn­o%„Dƒ-Ï–rºêŸÇoySl ÉánYÙövëk(Ú ¬™£¹OØfo’w[¶|—xëÉl¾Ìɶå¿]Ÿw‚Õ¨ÑUªýẪþW¯±°(¨²YÒHòÙn뢠¹²Â‘š »ÛõÔiùqað¨uÍ‘ï"-H›zgñ;¹ÃöNŸÃÁ^Z­qï½ÕmÒž’kYq>8evtŽ÷ýyºÛŽÎ­4þË‚Ï|v¨nò: wYÙÖOÈš¦¬Æ8ÁºË1cûû³ðñÇ3E(i,»,¿ÍZŸxZ.)_ló¨ ~ ¥!étÈʈå”ãÃ\º¯_ï÷ïüRr»ñ ›F¦•Ñ”óÖÇ£1íFÓNܤ¶o›qíÑÜF<¾¹ò4ªGüÕ¬G'ýñZ}ßNPï——JgzƒÏþ÷À'j?Á˜3uÆN`!˜VGyÎfU2•ÄËeu˜ÇW‹ É_ÿ|ÿPþkNGX7å·'Þì2ž3É¥?\µ çÚ~®UKä­|ØnÞ,¿(:¿Ü5ï¡îH†ýäéÍÎ>±“âxª°šÞ^xkSSæ µÜÿÆk·öÚð\¼?×Þ‹5ã·„&2©áÅ'5ïf¨^N–Oh-Ž16Ý]å…ÍT¹òÜøl³šyZLHʱªÿ}¶xüæ+λñ×äifZkظîýåxìÞj¸×>`ÈÖÙðÚéw—°Ã͈$!ÞVÿ¼¦ÚäD[¢°ã^EØÿ£»GØŠr&LYèÞ·»JžØÞÖz »é~w^P=?fÞÑ ËAÝ'ìçDÛoq,ˆ×;÷vÉOi7ãÅÈì‡ñ7Ù:}à±Ù•Þ,žw<îŽÿ)qÏ—–ìzÄK²'€¿Bž¼fëÑ4Ò °Ö^uV2ÍX8öcù¯ðZröA’PÜ(¡€ø«øÝ()Ðê™÷Úæ°'ÎQV~Û„Þ5«V>Ÿ€sj}õÂ7ùŽì+T{ÿVg8˜& rñ"L2Ÿiü•*ü`x¦sW\Ã×έȼ–“YbÛºªO!LR†aÄ<‡#§Éœå¹–zÅI/Mpá¯<·Œ·ÂºÅë~aÝöLoÅÏizÉ›S.ˆ·Ò£IôÉc|ž_›â¯z•©)ÿíŸÓ¿¯jr¼@9X±µçTÕðY¯CñWœdï‡UϱÔ)­ÎaÎòÅ«ÎÎ4kg¾|0û¼³î×÷Ú^‹ó ‰uk]½?¶ +÷<Àã¯ç¯–g¯]ç8{üÍ–ïžõ"“ê&yZe©TתÎCw›ëÖfy³ÖúÊ šj‰y翪5òÝ_›ªÃü· Þ»N<­¨U~¬|oq+¿5¯Uòn©$¨õV<62ÖYù­iL-9ÓÎŵâ·y ‹o¾ûѬH#Ò‚”|o$x|ÜKxk÷øÚ‰ÏvµÎ)Þ_7ñZÝmˆßIø­t™1Rã€O“ªú°Ut5ÆáµK˜`&ß&™Fb¦ˆR÷ºl«¿f p0öLñ¢%ë™Ûl)?O}Ž#ѤxÛ%Eîd~»-ó3¿µ>ððü÷3ßÕ/_¦çhKøí[O}ˆÕôj·ôjs5ýÏ­i·ì|Ù½ý.›ŽwÃj¼‡c9[I¶·I˜¢¸)9~›‡ï­Ö'}^ÁʨAÇGOÇÜȘߪçݽ‡¬¼æWOÝÖÂ{­f®ÎeŒ]%±¦5®µžx ãn)ÝÏõyµîÓ»èU+ˆëQýÜNÕâ*©ÑVÜ£•ÏAÓs°ìnKzNNtìÁB·:Iµƒ&^Ê0­_« Ša+Y’Ï8§ÛÏiQŸWš€™Áx„ø·YÃw ±Z¤LeAOãí–¢`¬Êd ñÑ4þ¶ç·ªa—¥•­WyËßݶ¶÷«´²M5ùrU>}o%ÎÓ´¦—¤þYò9E¾îó6Ý;öË’¯‹úkÊw)BAB¬sì†âmñ9ÈR¿Ç ÆÈ‚‰8–÷ЋÖÛïuÆ×å#9vÅuº¸VW<¯XŠó—“M݉uŸÅŒ¬FíÖ ŽßV­›ã¯V£fÇoq»Ú#ñ\åhÙù I}Œäç–Ÿß=gëΉš'ñ–iøV3´×VéðõôÞCgy‰a9Öpì¦xކxšªç¿MµFq~CUw¤ã½-ËóYímÖ:9>PŒïåØ žñêÏPšÖ6ùBcqõ"“÷Ë€ˆÖl{íý¶ìïïŠÇÙp°2¼/| íƒ|v)òÛ"ŸmŠ·ârLs<6½ZÆg9 oÇÍe›ç»RònãýýͰœiÊñg³¥I¾á±Â’á³ÍòÕ,¼@ܹNICô¿ŒÃlø®ße䤿аø¼½‰/˜o9¤ÀNfôÿ ññ÷:òS¯«šˆâˆŸÍ{âK¸—ôj‡c·û¸íU§5™q­×›÷)ê ž@ò'îý¾­Ï»´6Ÿ{¦’Ä œŸÐ¬ï0l]Õg¸ß_ÄÛÎGXâ+˜Ÿ#©ÛÌŸŸÛ²é_f’ÉÖKkyaovIÊ0GÙ²‡ÔJŒ9X¶ØêÃx3x½W¾_Þ—¶žÖ'Æ5ô̪ãží-a xéím‘”@kîÌh¢‚µœ9‡MZ5lÆ(.1Ùöþ+?¦ªÖŒ9\óÛ'ñnÜgõéÞf©éNóß$i”á¾ (~+×òÆ4ü`˜[d1üvذ~ô߆Sþ}á^ÛÞW2½g:Áoæ;÷6%ÛÛž¸—D†ÁgîŸq^¡E{™}=¸–;¯Æ9ðš}oµ÷Ý÷vM®f¢éȈœ¨é.ܤ쾠•©_A2"F±ÔsWv^䔀µy8õ"M/Ÿ‡»Ï]ü°f7NÎ-òÓë'ŸC[ËeúÑ(§²×ëxN£TbN]Éx@á2z=&vÁ›•½uB¶n±L½‰e~Ž-â|‚K?Œw[T`-okëÏŽåçqH‰Ð~>ë:ßÚó­‰ÁaÞYø{`‘t™¶F^<ógäúíyål)îr>Øòo¯ž#Öm²‡X–­QSÈîNkbàøø{ coÆKË­UsšÁº½ÝiO÷VÓj3«OÆg»)îz\¥ªŽ !®6ÅUy8o›ê0¦*Öxÿ´È„5÷Ö#ŸqK§Íš><¯›-úÖºaâ[ýÞfžëX£?ÛÌÊ™{Ûw»­gß×3ëýZókòó¶­Qϵ®§íyœEýuÅÉÚ,Îf­íΪR!¾wÔ•ÁÚöNõÙ0¼èŽcn…ÏãëK¼†"û¬Op[¥„8wâ/‚ „s7ݳä;"й£¬)c ni5Ï@¼¿÷ˆù'?çØó1´)(sÚPÜRÊÀš\¢m¿lcrÿQóÎÖô{6.=Ö8·Ùôð÷ä6M7#ŸÂȧ{¿2iãúD{‚çpN³–&Õ´¹²Äg«ƒE5Ûò*â–ÓD;÷º{{g'bºÑ£Ô«fÿ|º~Y+$) ™W­ŠÎ›s“É 8SçS¸×prËgý¼âï«òaåÖÃÜt’8KcÕ¸{èÞ®¦›´§â¨×¸›<p3²ÇÉ¥ó,¾Áæ°?ÖÚöM³úùeoÒýÄ jÎ9}x^Ç!I¢¬žæÉ”# å»É¢:Öì§%ÝXãÎKVù”ÑÕC¯êœ›:v­@ÕÀé9^+ûE2ê|o®Pð]6eµÙ#ÃÆm)é!ƒ™¶\?†ðÍÙ\ñïÜÅ—,í7ÅQl\ây|e(aÎΰ‰Öam÷þ–²–ñðþnwW²5ï¶i˜ n^åšÒæ Òëüw«IžŸW敊mY»/Ë—êuËñ‹zéžUëi¢`–×ä&ÍWÀøj=FæÍ‰çwÄW¶”à7ä•M€þxìpšW6â-1x¸3¯J_é×l ÇˆÇØÛl½tÆÛúòƒf<ŸÏf¡Ã^7ší•ÄLWüíäNNò“$?|YòÛ²û›=齨éCÓ#²sœÌŠð¼šú¾r-Çî•Ê–ÿHžÇNMÄš2,s«ô¹f>aj§ž«uë@amêNù¡KqÝÈb/’ÝÇz)W"úAáLϺâii¶&÷cz®Å6ÿ~Úšù…õyI}Ìc×A;†¸sÍð§Âwµxˆ:ËùµE† œQòxJ¾‚M»1(ÏÕÓ©$‹³#ŠÇÆÑ?šgØ$õ +Æa·ÍI’ÀšB&,IreGyÛ.EK¾ÙvÅuÅ’µ9>¹+rgÅWzµÏÉ×ß×]¨]…™¨îb~j*娓¦òÏ»Vè ҩ(_Í7f3ô÷ÝÖUñµ{¾[T´ç{êuQ#< Ú½íÖ<ÿÜÂhlŒµ@ú¬pžß׬5îZ"#ܵF‘ì.kƒ“ø*×RìéjÔQ.%{<ÿE¤­9_cX¡¿?OC˜dH†÷gÏYŸ—º­ù”üéèýÛü•§écc2GŸ>ùÙ [M+dzU×=ãÀI£•œ’ÀnÔôªArÁs¾Ìƒ®ü{Ž“þW‘Ý4†a†¸£†çP~^³ÅÄG9hÜ묵b†*"*x½–’+uªÞÊR08ñÁS· ç)é¼Nk/'9^¥À½tmŽçÒ¾nNX‹¾I o/§9ÍÞ5ë„Þë~âÅÂÚT¹»ÌÜ»%ü4ÛÞ-åNÛñW‹Н›”“2LQˆw›ðWO›/›Yý0¬3Ì¿\¤~_˶ƽ»]û€ C,–ë×ÅgÝpG3)Ñz4®5ß°Y¹5=”ú{¾¿¾ÖÀs[;â|&n÷–ü.ãbLãi›sí?æÊ[K÷¾/ÿ Ð×ö+éEëIobÂ|àyE<Öê¤åx¬îõâq³ ‡ºóÒfyÇŠnyAò<@ŸW‹­“bƒõ˜2}gK²X`½p¬1ãü:oU_ñº*ë|›Þ2Ö[½˜â½™, ±{ÿ€yß*ièüç#œ`óòdÜÛV#¤¿â"î´™ìéÙK˜ÍgyG³ÆP ï4Ù\ô®Í{ÚIœíêC‘­;¬ëÙW`ªÄÞªÛš?oéu§õµ–c2ÕbÇe`:ÍgO÷žÛOâ,û^R šËðXö l}*9ìiçï÷Š©7òƒîç˜Ùx}ËèpÔ=?"ìø‹á÷Ûs[ü¾.ê)Ï?õTh"åígaáÉ{ŽYùoòsÉì…¿Å´õÒogõ[óüc?çu±ï%ü”<ƒ"ºn‘äút”…ÂO»÷½ÀwÉÃû\âÌI¨HïçzyŸkŠß¸í·ªê锤ò4Ÿ¥ÆÄª&1!‹Ìåà [>,Þ©ê½\_¢³ß²ŠËU’V¿òË•MËì¢Â“àÂ^-ñå³Ixz}¿r®$‡¸ä}Ú¥óÛüõ©ó­=Ü„Bé(çùp‘BÖ*vž›ð‡“ýMÏ&àHxìÐy÷m‹kܪã©[ùm6­‰½õþl<™ÍŸšyÄþyõÁðùÞcŽö—+êoñ‚-ý®¢y\6Ml^–ÏòPœM¦Úüº÷Û;ôƒw4ÿþ~â†ZÀ%žÀó?“8¡éÓEê—x©9m<þC÷kvß Ó9YvŽ|À(¶ oq*tèÍÐ3Í6#èðAQr¶Ù;ÇGÍ“»‹2·ª{¿Ký€›`ý°æõþÔû“÷¿–xÙã±õ«×[t<\þzQ½¶NfE åTžzZð(ׯš<:)ë.s4e½ž<ï­ª)ŠÝ¼© O¨VáO믻ñi|%ϪsàÀz)ïTÎÔ8<‡x¨vc𸀝«áÛÖ†XÞ*´’ ‹lÌzˆOœxZ0 Î-|ˤѧy z7ÌÊÔëï–?÷ƺGrÉÛ˜Ëû],îç|‰¬.¸È<¯÷w÷|€œ!ó²âýÞyŸC÷ûO-?Ùþþ¢Ï÷ÎþVÿ`Ì“ÚÀZGÍù²E²£ìGÝuRyÍ"ó|nᱎW‘w`jæ8ßCx¬nÜTÄ‹©Ÿù‚sBîíäµHЂùÀäø¹5á ?­\[ü¤ÎAŒfëk“ ´P|…¾øžþ~æ±y;ÇcR  èA®¥À…6…/vQPœª@Õ¦ç’á–Êc”OëZÂh*›‡)Aªç¼©uA½/ƒg^ÝŸÊX¿Ç·š9[q¿ë®:ßñ©¡û¾½ê.âÍk ÍéŽj{hs¼£x÷å8{À7ÜU\Œ$&TÅŸu”î{ñ š)du?È˺ñ*ãÈ)ªÛL-o\…©— þŽƒþ¤ÛJñ½­l¤c­½“xqGNÇî|V>EC=Êgñ[åmñ·nᎂTõ&˾5ØÆP–©øº¹4'až¯€ÊAûåØÎâÊÀ^Ë'r·wn7k!UPòö'ñ•|ÞˆŠ¯Ä«÷Œ`*¤Å4T‡!=E'„ñ8y<ÞzÝù.¯=¾Z½•ŸŸWÖSËñÑ?¯µá§–Þø*SÃúÂ_Yoõ>Ëü¢½ð[Ö[ªm->«+ü÷9®EѲ¬/¥þÁuròX 4$‹uãTÛÌÍŠ*ò=ý¶¯þn1C>M•E#ûë—Æ."eÑJÌë+%¡êºîÉÜâ’9!ï3°ƒmɶ&¹ôäx‹˜·s³KÿÈÁäÛˆ'HáuÈño\B ¹p–gHU{´l ¯­ÞN’md8¾o°½ûÞp(îz¢q6’¿ßó³Ú«Š$÷N1€¼í×élÛåmÔÎQBà[K^Ä]Ðu'­6o›=ëYŸlmÏNÇ>|òÉóŸIlÓ(/™j?Í3ÒÌ ¾Yb‡åuäºáP À^±ÃÍy°´77["—6ñÏ¢þf›'ZGvC3ÚÑŒâ^µú¨É6²Y©…ýpwÞÝÜäœ%À&_ŠFA¼ì³Þlã©;IѼœxÚá>º¾Ðfkÿ¯£+^oSßãíÒ~pð=¹O<šÙsy¼jÂUxóæG)®UJWæ»^·b¹Œ?ÛÍfOd‘ãZ“«Ð6VS— ünftI­‹,Êéë(Ú0\£\3ªœ6ÈîÍâæ^Ë©8a[ÿôYg¯x«4V‚ÿ°j%–»[ªÚHƒÚžõ7j²m“ ã›óÏnþæÅ¿mž&P÷s›.ÖçœÀ2>]‹z‚%»™ò£æSÞôX3ŒZw¯Wß<_ÂMgÛ]Ôuæ·YRtyúºfÞó›èJaÖ2âEcZήWÔÜB6šfùt<ß<4¯¥$êzbvv®;k½ìJ«<íkâ=¿<—dI‘ãGK¦çÙŸ¶uXÛ³j‰©¨×ø· m4fr¼¡ºÎeQá"á ~Áªƒ½ÌìF)aûó¦8Ö§eR êF`äLAúéÈ‹fðz·Ç8“`ØÍÛÊDHú@yá÷}¢,­³NÐ$4j*€N ‘³Ê8×è*ÅüÏ­xbx5ëU0Ù+–MK6_# r|ò9brýNk­}¸S÷9‹+±ÝopÇ•Gmç"5V¯»ð_ùãú¥ˆXŒevèZá"þ⿎—³¸¤íHc)‘Ñ Ïp‰6{Nóö}u[æÔ,š¢„v•=㬲˨«o™êQ5¯æÖZ¯ÔèºèÖ–¶{¦Ï¸?ÔKu÷g¼ré…Rçæ©»«òn'ßZ*]âG{/ÛÒƒYż–vCH¡‹qƒyOÒÖòÕ¡z­³5„å²€7’=§$;d¬>ãEo>P0-r6ÑL•%W¤Ü敇äWoXïúÛR,–J*+Í{¶„JBÀ^*(ðɸ¨Ö‰FS¹›Œ’ kÝRxÞãMb–žpVaãÙÎ¥…@?ÄY“ÒÊ蓆ʋ餹çzÄ–„®RÅK”X>é%ãêž R’Z÷§8“ÝÓÍ¡óîÙ8™á¬›Ì@‘JOºåVëIµ€yØIÑe‚c3)ßÙžï©ÍíÞ¾:l©Š\Y:oYãª1p6-å–;µÓéÄÆ¹ôõ(ISÒž)·çá×ã,‰K;§ùGXí{ÒnÇ–ÿâÝýÍ$÷îî•=-.”ÈNž­ª¢·m]V4vðî"¦3Î{ÜwÒjºWŠÞŒ](÷²V.åèÊI¤{ùp/Pº?å™m”nr“ˆ……¡Qªº'홂ݻʙWy÷:¨BòUUù‰RÕ½I„¨eAÇiò¡¹ tvJ q/³„Ò‰Í΋Û:ÇÃ$æ¬Â¥Õ´À9ÊûºÈBw É8¯mX[ÅãÄry`ÌÌ>—³Ès¢âPÒµ—ÛgyÄ1ÛÉ|ʽWTlHý^DùþÜGÊ¡8óLñãh ?¬ËÔ¸ˆ"ØôªgL$ZU4%ŵR¤Fµwÿði½n8·0B½¾ß6½yn<+në€.ÛÏ6÷pÆEFÍí‹jݧþíF2[ׇåyÖ^fñs:U{ó¶RÆã¢±ä×ȧÕn Þ_vOÚiF³(aŠ"€Ë‰p örm»T´—[K{T®¾|ó®àbE¼«Ý|†‡<>—³Iõhy¥û6êYÈmK³³9ýbôzÜP§\AÞ62ßõØî®p-IQF\Û<ÛÚbÇ45!'é&et^€&ù¶êÿd—ä=Þ‹Tœ«®Ä.ñÅT”p÷ª”É€NIgãÔriofFÙ«Ä-)êÒAOíˆEW»e”;;ž9±=uØ~\¿×¶áU†Ïùã?ñk)ʤL%{bwOùÑl•îžM¤ôö‹»Éä]„ì™­T3ØLÜvÙX4µ«ˆ˜†°ðlR#2ÙßÂx­‹jטÚrù ˆLôØè¤F(^¢Ã“­q›y º_'2@êæØÆ¥bmñx™~zñhšå»S½eX{=QäÚV7gu©ä”|÷µwQOÜ b¶ypt–…ÀL0SdVnj] Ý…Xò*Z[õ|=q©`ªBè<ß8;á¢+׫wW¢=2¤’£GÛ…w*Ç{úì÷½œÊÅÂþËsë—çÒîñ,ë¢>ÍYÓÊj±yᣆOSŠÔí3uÌ^ž]¯nEbõ‡9¶Ïï7¦NëÄŠzZ)Ù¾]­²lÙåõPOH« i¬'ïŸ÷ßVïÿPAÞãeeM9ziSEµÝãMŽðÛhÆœKö­Ç»Õ¶½m5u§áÇY Žƒ©0ÇÙÿr⨄:ùúOnó–'nÉÃd·‹6`½ˆX:—ÝQÍVÞN-I‹Ûxª¬íyLFZÔžê,=†1“äØñCa*°Ç{i–01ÆÎ μ-cèE˜ç¶x™„§ç{™mÐÂör™ïÙ¸!K=&Š—Ëåùå`G|zGÝtƒuÙÿ!2i’à ÝT³iê‘Ñ>×ÍO6æádGÎ,ÐØÅC òaìb(6Œ¢juë¡¦Ø " ›=]Á¶aÍT¥{œfš ŸFVš'uÏÀRVCòÁœÎµ Òs¢FÖËpâ†Õw“Ëæš‡S%¥KêÕVqo²Ìbpa~Yå >O“Á€AãØL‚,|6Ëî·¼ú’êó ™[Ñ,g[#Õ?ÝË¡ôSeåþ‡kxYå¢Çkø‹¸Ã\3/—´ÔÙÇëðpK& Ãxá|³bþ¥ÙzªXCc8ÛCõ”M̉ÕrÅ@¶¤³iIuóàmµ1«Yí@W¦›Ê®æ\×÷µ«ó&*ø<~[¬¡kÛÓI‡²eBU5u©>µÌB¨&ë ·Ì`‰5ÿë-òãzùzp-gšÌ„²¦éïïÜKWémRZÁz<Ï•8ú"M ö)É‹iâÔk/i® ¿XïC3RÝZ•Ü«¢u÷µÞ/÷ÕQ5ƒR| †d·¦Åý•IBUb÷ªâŚĥªb—ÐT‰ù05[OÅ'{]°Í0j×K¥võõõyýh‚K{͆tÖ¯5w@­:!_œø >¿Q…i¦”,ŧrXÍËÐ&2Ij6‘K%i5Ïϧ뷱€Ø!Äîè?±ÿ©µö¤pªˆëéÏzáùVÐ|ŸÝéïG,HÖáÀç1VXÂÝdü‘‡v¦@ÀÓ"é·¬ƒXºÅA‚а²†Ï3ÖC……ñ¾°Îþ~>릃Ïé­oM¤VÊVŸÇ¶/ªœâ ¤cŸmº]?(bA6åáf>¥i)Eš{mšjˆ ðÆÈ¦¨…uÑç¯ô¾.Ÿ¬Ó߯é$÷¤y³^±á¡BÑXìôbÎàƒ1Ör–‘D¿åØiwÜëF¿ÁÈE7-JþýõèV?TÄbͺ¦öå±.ÏÏkÆä[åmÎ9ô¼äfÝayR…k©’L²²ª ¿´fba: y2-Çý¯k.EÆaü½)ç¯{àZ{½ªÖªm™üWwšc¾º”C)O n s®aëªL{\ˆÃàýb–¦§+©§™aáç—“Ú–d`œW)‰+†ó)Uó1•4s5“ÃyÓ=?äà jå¥Ï³zm*Ÿ5œÄØdˆ³“:;6 ¶âŒu2Ðvœqq²ºCÜ•cíÔT¡gˆXåí¦Q÷ó¼wëa3 ŸW}Æ9(Ò †‹tÜæ«Xœ¥S\5iœ©µø6I®ÅHa\W®U Ï-G_/s¬õüx1 Çú OÅü ó>WÎ%Ij¬å&)©b¬åx¨!}äÓqƒ¡õÚžåÉþ¯ß˜ŽytçüIÛúí¹­šÅ¯«b­ -Ê}c0C8€¯“áÍÖÅòÓlç˜Z¾·Ã¼¬o‰ssì•ûÓ8K4WW>«|`Øä’‰Z“Š©¸)jÌË%… øeïG><†Ç] o ›¤8›Þà"Ñ—ŽÝTSe@_åj«Ù"3Îf¹€Z»wàÁ¥Áð¤+æŒ3’þÖ¨ƒâ˜pDê'y‘qÄYªï¢V­YŸâ"…XŸ)îê«ÁUÝ×e®ýý—³a†ÝÖðÙuâçq¶H›b³ëâq¸W·Ù%ž¿ÄzJîªC³ÿ}ª?…¿/ª¿ C$VºÝhà3o8⥠=ëeY,ÈöìW{v F“Ù³?|Ý«bƒÇŽ¥¿÷ߎà˜$\(sþô#ýíÞNa‚Ùœ»ÆÐf=f>6–û'{ö{Ã\x®ŸuŒÇcÓ°ÌX`mrg‹|Ó4'p˜]Ná­Ýîó­ü´9¾U×[¾Z8ur¼ È]êþþ¡Ïo‡ËÞÕŽœÀG׿= ã}_Þ1:w¿a,ÌVÞ0ÒB>0{ÿá´ñ‰ñäâÐó8ˆ€ÕõÂg‡ðÚ¥|–úžV *®&M¤ s©’ Õ\ÕÕ#'¡3Ûßã?ØýN«TéÏR {Ì$4ˆ|–¤Þ‘…ͽ+li³ RýQs±*Ñü=—I[yd ù&!!OÙÜOzˆÌ7ÕK‘‹_iúž¾'EÞðÉür'óÓ{ ë¥õr\lëý–ï GKŽí”¡÷oÝÏ+„?“÷þ(î.•=nî7Üj˜† ù2Øû†{-ņ“.^‡§tn„«Ô¶£qoøm™ƒ)nÊáð­÷âLÖû“ÇY@Oɵˆ«)½aˆ™ šö«Öíû•“=Ç­˜ÍjÛ¢8jÖü6E0•a.‹{3oLQµîr­²$,|;fˆ.zwñ.Â>Oá°·¸ÏÕG°½Uß lÛ›.Ü`ú^&ë“Õϵú yèï=Nç.¼lz>Üë'ù¬JÕCüÃ;=Awó|*°6¼«kïL]Ÿ"ÝaÕóWö!LKÈREÄÙ}ç³Z§Ü€6QYÙô®Kñ¾˜â&èuÃtki’±…øº*îf»]}4å•72q‚bkðìû:â¶uGQ©Õ)LÆ¥A®´ó¶ ´Î°ƒe2½¹Ì†+ÖÈÈ]‹1b¾1Û=è'dþã_6å\|hYy}µT÷¯îùmÕ³¾lm=rÅŠBº&ãt³ü¸X.ÞSušË§óïóYæ›îò;Ö#TËg›bEõ¸Zßq¬Ñײ<‚<ú""¦þž±ÄhÇô<ျ_ÔGÂSåò;´–Êóþú–K/m¢€ìeë,aùûyï‡ kâÆÄç§%\á Î.ÆMžÁm¸{³Eˆqõ”¯'h¬ûû#.ýý Ôs\IgÜ-'¡)¬fÌYwÙ9jV‡MÕaÒñs—½Ž")ç£îjV—yÝÅ^³÷ÐHYüûíýßd=ƃZÁïkNSüyÝçÿù¾¿ë®¥;lßµÄÐÖ<ŸÐëöþíw¢åÛûé &T¢ô!ö])µùÖ» ô÷:k¶]ãŵ:CTØa­þþîøm+ïqVd«¾N\P”c¡ºg© ?ú[í8¨ 2µâŒW>[š¾è Ä ÞÌ>…>jZò˾Žr®¢œ*' ] œ¨yýU?ú®Âk“M‡ ,;?aªž›wýU´Öù¸ìµñÁy5 øyU¾jyÀ}^okíÿ÷ùõójùª½«žsõäÏ“ëòã¬)¾¢Å¾×p|–ÚEÙ¿íÛš9ßß¹ÖûåbÅ&ˆúd"÷3îÑbAOò[éá÷rÂC¬{Ê5½ª¶­Ðÿ„›¯u?ªÆK¶îG•V0èàì~ðõ¥5ù P~™|¿ê/súÌÆai"¶ã¿wÀ•ÏÆÆ-Ãì' ÛŸ΅ù¡ãYyŸ«V-¤—Ur²­Y¢Ó$Š`âïU( ãóåFU8‹ˆ²ì$Φ*¦m2Y©Šøl~÷-9 {·1wfX7×kÅa)9•;HÄZùojž˜'î=TÝV J’'×[5(÷"Óàn¹@i›kCë°Æ#½ÖëlÕà·à/MÛÚ¢½Öû›È‘S}]l¤V˜ƒÐÉkQþµ.ó¨vƒ®»®=jÙ .Ö×ãõê²åï/ÃÖ¨-VUö‚: 7ú*Ÿ'á—{Ûˆþ¶ÂJåÚÛÆlkåþÒØD0W¯¼3Wãzøºp-|¬±Ý‡ËAïoCNõƦÄŽu5+">=·´»¸e„[J®+ÆŠç²kÆQnÓ’’§í‚¯éèi*?XwIïÉݯKò¬u[£Ãê:ÅOÏ-ñœ[ñdòÒ]c#e\ëœiﲦ”„5XÁÅyÎ×û9â sÌ]¹ØøœPùm¼ír§ÎR¯©R~Û[œ=Õzh¦§›sò–O2-ÊŠI¹Y³»\· œÞñ›5.÷þ€ß•»PªaœŽÜ=^Š“‘9ÆÇúiÙÞO¨6+ÉW¡Â¿ïÜk{½é·2?3X©4­ós¾LÕŒ#mÇ:÷¶¸S÷ð½AÅ“L˜°J³ 6b½ø:q­±«Î½šÕ\§’ù>ã¿d)Y yº·Tg°»ç×[w—p®Ì“À½ñ½D·¤šXÖ¸Ëj²ù(5k­zMSWoñ™ƒ€÷úi¼%å®JøñV\·TÛ"pâ)Üý(Q ¯­„õª°fYŽ÷ã_·¶²|#×ÁXÍZŸèoû 4˜2‡Ž?\9p#ìœóH!lÅߟ[G”ñÔ¬QÌ‘¹·N A’dk8$i(ã$O(Õ•ÿðž¯n ÝÁ’šÇW&_8ÇÃóþ½e)̱䘬§¤ J ~ZÉðpçðÌã—ÂäÙ´<¡j}ŸÓë€Õj󿈯À²«Áâ°ä"S«õüucMòõÎϳ˜¡Ij|„§1˜ 47cÂpùB‹ ä#˜;•Ö@=’eëU:ÆÅ{=U*»œƒ«Ü­z³˜1$ºy 6ŸËÐ3lž„¹°!†µjUëVÇ DàÂZ|‚Âf:ÖêÝ’EÔ#/bÀ–m\¦Ò•ßZ^ñto… ¥$žÖIyC÷{ýóÞŸfí~·‰©’œS·çýþl묻Qœº=ÜÙë wÃ|¶*¿íå·ý¯ü¶ÿ6¿vhçþ•ßNÏoßóó˜@þab¼å퀾ñÛs¦I4ŽW篌Ï'Y=XË©vÅgJèïùù6ÃŽ5jh×e~šßn9ÊXW$K ëäù+¼juãj2¤_‡­×Tüõ×áXWÝ¡Yº:üüâïOŠï¸mªrIBîo—ÖÂhôðR¹aZ|¥Ãœ9Ór­ºK:×vs7ùèb-œW„¬ÄïxoOÆKŠ€ó^¿×vïo®Å7Ì,°j-¯|Ïxu>cÖ\m~î›âµe”4¸OŠß}†Ä6qQ©«½-Êgx÷h-Þì6uY×Ä:+GÓŒhJŠ1Õ÷6IØ´øÞf)ä#NR£ºPæÒöVñPç2óžg>{×ÀKñ7ûZñúÞK<óÕûg’†ÇZœéÊã·È'ñ6«¾ï2-ÆÃ[Tg­äùªòQÃb¬–0†I•&"Îmò|Hjšš¬bph†å·ÌÖÑ]&‰çŽ1!³2Á9½óÓ­s›}/›Þ/ž¬HóXO¯¸×¦Ãsªµærõs|ÀµG¾Ù”¯«A> Æ2Îò[¾š=¿Í–¯_®Çô÷'®Õ_Àç!ÿ†7,q¢×<âÚ_õ=\Ò‹é#b 9îbŸ|à:‡À^øAâÚf=h±Lüaü|âŒÝ¬5#ÕÈ$lŽ›=Ç€dŽ|O ¦x磉÷|Ξc‰Í“ö+Þ2G[ÆKd«›p¸b˜Ùg¥S‘“x>ÁÄ‘C].]^ZÀ —j`Õ¨2~d7²Z~:3¬Þ ¶ÇãíïÏžÿ&aŒéÆšð‹Œ‘EY^ c,¶ž¶|Æû Ÿ…£x2tkâ ÃzêÒ¡§•·ß…EñÜðÛ¢|¸å y*¥p¾r°>U;ø^dÕõÞ+«|o™ÿGœµ‚Þßý·¦š7›t^;4ǪS3¬†ÎÊå… ŸÍÆ­29y˦j…:·Ùq3j+–l¾þþ\OfôÁͬoX 㯱‘¯‚õSM —¸YæÞJ{Üí=¯˜º»¼/‘Yaok~_¯O$ÿ·ñ–CöøŸ$<¡1Ú/¯³Ve²ºaá+ ï5lëªuÞÑÅçMû{âÁÍj‹%îóªG9˜4ðØ%6Þ)Áņ~µ|ø+Ê3­9¾IÏoáPW̃;Ëíï—{{'óŸ§s,G&^j‡ÍJuÒvŒÑtV³sk9”;««Œ}IÌQ1¤*F4ájÕë°¦º¼òw8©ËHô²üS91DŸ·Í]9USÄ!¾ s[ýÜ"žÖêù«úÕ´»°Îz.ºçKøB=ÀÁ¤½Å½˜–ƒ/0•JÖÿRøS]å{ý–“MÃ/0¬|mËÁ²òá<™p°B™&Þ-Ëî2£ÎdŸ¼»Þî&Ã__wWy¿Û–†Ì§÷tH àÝè1a ‹?èóK‘”yW¼m²F)Š`ÿùj’ µÂ´uÑZ9ØnÂÅ̯ƒçT¸˜8 »W«GâÏ/—d•‰c ¾·˜L©6±”m w×}7­‹çª»š÷.Qñ×éØMþ°>'µ‹'P µnËjÐ/ÃMêšÀì§©þö²Øqª®ßÎׇÖ‘¿ºê:ñÞÊÏ+ž# ÚíDÛù(@k‘‰û]ùÇĹ×X+@<žÐ<Þ&­U‡Iýï·üx;ž+i# M|áà.3wà”uóâ%Ž5=^;ýÜåd³ØÚr´Uíœná½–Wá Ís6þ³YCŸÔ¼:§¥›GN^Š®#ãùèß.Ç µWÿ©6Õ?ó¹‡|s—ïþYUÿ죊ü}í€)öÌVŒj°!®œIÜ{)ã1÷÷ü6 kَݰF^ŽÕdÞ]·¾—a=9Äô¼bžà9ÚT¼M¾FåTúI]FüVxkö^¤õ&ÛÝ;¬¯»ç¿Õݨ™=ïMâ·Ós°ìܤܾù]Õ­öüŒëê*y ÏõÌs´»'´Ukx/²$ÏÁÚÁœù?kعíÂk÷~?‡C•Î}N‡×mvއã^E¦•Ƹ~Ç~†­·°œ~rn»„N–sí„hŠpªøÙu—UïE‚%\Ó‹K—_KW¤9µ ß-U\c·1+O8°#~Ûˆ4Ço»Öªa%Iùz²øŠ§hyOg1yÃëËß›wY6Ž5²ñÕ _œBbØ=¨yÛžÚ…ˆ"¿…7X‡å·Äk‡ÇWn"ðÚÔ}…ï:Þ‹|ø…ÿrÆâ‡~;î²]ešEfýßß{æDâñŒß=ôlçÒñ…l5n÷üöí\V9+c-®Èç€k§14rŽ’õXGeÆ›p°ìx¸÷5{á^[¨ /(SªðÒ΂‰Gœ`ã¼yËX¦«˜x¯c-®}"3…ëlñ³ëuÍé$¶ö±îŽ×BgL¯êE×hMR/ý$ƒÐõHªË(›/G&ÖaRÍ&}\S$'Ð<ßź«ÐÜÉj'æ ò•Þ7ÖÒ;—?×½~o{ $Š·À®Ç|õy‡ÖÅï&L´ŒõZf;åXú0Qpbá{Ù|¯©Ó#žî-=ZXƒÞöÞ‰9’<©³šæ}\:ÔÂÒºXæÖ#–ce÷¼ìŸ_Ü‹dYÎwohÊo›8öÓ%¬‘µLSÑ«pMÁûmªk°§×È­ùû…ÿ6±Ù¦©—aÊhõËŠ‘Dó.£hÄÛ—{ÑÅ_ÆĹCî¿Ü+¸Q€$8®;…÷yI$û{vÿŠn¬17¹LAæ &\ϰ›16Æ2\_ßxäÃÍS’ŒÏæÇ~l›°œN^tî­&‡tÌϧì—{[·jFÿ?R(7®‡›*’RÜ?§(†$·ÈáøåÝГÑι[Ž6“ª¿®çäÀÛÿVÜe²ªTLX¶ö~ÙÌÚ ŸW ZÓòÞb’ÊôòKxížë.†I2'ÛŒ ªz¿Ý[Ž 4Õ¤’Š_[ñT~Š—e¿ÌÕ»ñÆÝ Ï|Ù/Óï:^¸´æ»xâ2”ûÄÏŸã·¸Ëfs~‡ÛˬŽk‰_;«ã±$”yc7šôžÖÇ%×yòýÃq3p¥góü˜´eö“>/}ïSeiªÑ›I=—áNNu±'3Ý$>‚e¸•hUh¸Tñ÷›¿„8J¥¸m.‡ùØC:ÈÁªfö'½äo%«½V|pš¥q•]4â«ðØÆkõ!­Ãñ÷=Ùl:–ÞØ±"mìy~‹a¥¢n§7»ÖŠRé_Ýï2ýë–U>XsÚˆ8¬oݽeoñZñ¹“Ɔø~P—ÕmJñÛî²Íˆ„ø›Åë3ù¹e{šïw)ø ¯÷ ÿ–±ï s½Ï/}:òôÜ241/P¼5¬Ü&_`U2,'+–s%ÅŒívÖYkÁ´©¼ÂØÈéªbÂ}åtûù¹mj2"þµnxï.3$ž0/ûÁ»k:'ŸŸXk¦ZŽÖxòx mrCGìMé¾ÎŠ!ÃÏ1Å(Qg%·CuÝt{£Q¹Vþ ®¦:ð¤_&åâé3P›r¬“÷¿€7L×´Üœ:Â9ÞwÀ¤ëL^§Ñfo¿ƒâo÷>FVü=0ž¥Õ°0ÄÛkx*/¨~³8 Ík…ZyN͹«æÝnË>=o°»o‘óTÝ[®m}Üe•Üå:ÍÚñý±ûn4jàÚãmÒëµúzp­^e“Bá´‰p¬Ñ•ÆÞò·ÒÉ3¹“x‹t'é0ßù®³J>äž¶@þšÄV“ßÖ]hȰ÷Ûô…Å[’K‰Žð.ëlMa}4I·ž³e9ØÐ9Ý7Çh+ð|¶[<¾Ÿqå¿Ûù¶Iç¸8^‹žÏLÞÓéªy÷‰†%kÒúcÆ/Vó.®_æÌŠ ÍÏi.Š wüUÞ`Æ|$äàïí\wÏø»ŒçÆý8áß6Ïg›ç·û^[~ª\ÿžÇE5–éÔ%2QÞðñ†uóšLo̱[<>©Ë’örºg¶ú²eú^,]ùjcªÇ÷/_‹÷8Ý—k‰wc5ðÆ}ªÚVŽvoqʰ®4ç&ï›Ã™ÂZîü”æLÄÞûcc¾ø`8×ãž“ä¦âï‹çËÄ‚ÌóöyíÐu·Èþ ÄK³‡£DÏå¶»«÷½Í:§fOKï¹ôöºü&ùºj x¬OfI®úxíœv—5y^¼×ÿÄÞð2ßñy^¼ð…áïWÎ&F+ñ ÅgdÄ/r0ÍÝÓ‹;Bg2¹»§1˜ßŽ;Øp-N·5‹·UlcáfÝØo^ÇõvÇï³x‹0“é*Æ8“׬RÊœÉôj_xÂÝÃÊwëÎeü\·cùœzWŒX'3þ¼÷5ëa1¡ßù®çœm.~ÏSŽø;÷ à =Îz½ã«õ2ïðÛú~›þÂoÓ9~«l{eÍî1~ _­Íïõ"µÏšØÃ濸óâ¹V%2Ï(?Ö´<¢s}4§C uRwþ­ábÉçÌ·ê*;·r8šù•'táÕgP—Þÿâåd~Þr }ˆÙO8ù8wÔ¦0c\s>¥ø®ÇWÆc¯'So²øº©¶½/â6W«y=fÇÑ„ïë¯=Ǫör:?{[ÍK(ea†Ñ\f¦×Úîºéx-z<ˆ ÞoC|žæ ÜDº+ó/5¨ß×¼ˆ·µèv๬¬q»Ÿ3çÑxŒèªy«ç·]Xr6™Å6תÀ¹ÏšÛ1\%kæç}â ú·–êx‚ö29`xÂòø:Ug{Vúolo³zìíà.»²gä³c‰ÇÈzqmùª"ÜØŽÐ/2vâ•7±'früVSH¡~öÅ´n Ñ’±^Ϲ¼{&ã_ULjÿ*¾7TéåP…çXdStÇo5k²Ü_^9Þ¿nw婸ëX:ÕʧÌoÏ­‰g—>ÏáT|ôøZ-F¸> ø3ûœ¹Ô§ç=dz<Æ$׫Á<ÄÝËܤÄ`}À¿½ûaÍï²ìùçöþV·yß}†þWŸw¿ã^UïïóîÏ>ïN§}^â]=›dx±n›b]{9¼ÙÆ;“ôÌ›ý'ñ`ňá½Çl1dzí õŸQ›c¬ªžù騶=ãÍã­Å€âØøT ›»ÇÕÄÍë¸ÜÞ±íxC;é—1Ý@m ¨­Ùº±^³!KuÕ}ϳ—¸_ù®­?߿ô‹žößóøü¼_†½Ó9R¿¬¿øåó®öÉGØûý7½ÿæ3ß}ñºâ{;Ëoå0§|ÔÿP2š®jí…tï ÏW—ò]aå2>»?àëÎk†ßr<ó¥¹úØ®—±Ë|o‡å¯~N‰' ï-’Î<697¤Š½6šÅ”bjgŽõ€­±Æ‘wqbns)Ïí$¤aÓÅÄôz÷œ««g¾sìâÕÜ<Æ¥žÏð¿ŸâÙlÏÁªx<å¤ïÀ¹r{Ö]6U£Žûœ ßµ:«©f5•'¬ëÖÚï2â¹õun“ÕÐÝÞÏYÀüÉ üíÞr2°HŽCó[µÄ_1_6}NÇúeÓ´U9ß«»,{­+Ÿ½±õÖ_=&CwÞgظñ[³ü–µÁ]gMíew.G÷œ*û¹-Âo“cãKŸ—ÖôÛdÇw§~Ëz8§“…ÏVŸÓéê=ú|ÙW®ÝÚkŠÏÙ×vŽoíòæÇãªÏ›ÆYŸ|³“x[Ä¥kŽÕõ·l ˆñØâ­Çˆnü¯â9U~_3PóýÉÖÓ4¬î¾…âí:˜•nK|ƒ!E¬™Ÿvñ™%ìom‹¿ìw;·X ÖÆ“¯ât]»Æ6 þ^=v)ÊTqMžç …Z»X¦ù]#¿åt[zõ †ÔË’¯§Ôößx¯úkR–ßÉx5½j:#}ºRý6&¨§3´o&?Ý·þ—Ç[ãݬ†ç6ïÙ¬xVÔóÙw¿l¼â÷Ó¾ÃrþõoÙ7âxß5qöøZœÃ´/ÈÂom¯ÉµÃçe_›v›å‰¤k±=ß[׿qý„®Ùé|0j]Nexäàk6$ßœüõ‡_š+–WׯÜοµÙ¿“™S•–ôºÍ’,Íäç{Æ©p~!ùl 5ÝC³h Vôo‹4WlZüª™Uy—vë+Îéˆ×=|o“ÖÆcÌþú=«gz5éÖÕ<ïíPgÉnþ½´)Šç¦ÅvÀOÀ¼C7]¤iók¿iOèÂ͹lÕòš@ŽV‹i–¦ù‡âóg]óÀÅ«[ëí$ÞN^¹v¥ý¡¾*òm¾åL| #\w}°©ˆ4\l)™o´Tû¶ÝX/›çͶ¦þX×mñt¾,«çÒÅrǺ‰‹<\ïk +×ìH/âfÓqûXoÕ ÒîVßú`U5õ_OÙoóZÍ÷ƒ$Ž%Mìâ3ýS3¢Íu?’é~Ü: šG»yŒÈ;ÜŸÔñ‰\^ü1ÌCäú9ùòÛsÛ|&_^Z" ruþü¿æn’αûE6-ßæ ¥ló;Fh¾lùç™^Í>8·›¡Š3 Ùzèm¿ÏˆRtþm†Túäi»År•êØŒ½:¬j>øž¡ZÒ7ïñ63gB|4­Ë.íµîóaª*eþgZši¾ÎZ›Àß,RªÃµ-†4æçÁï÷çV8íí§~"ÙÄÔW¼õiLq¿ŸÛþÊw“icº~˜é3l×™6»w¢&Å~io«öfµ÷½èzЏ—ý}/ÕÓñþõ³þ~ù^K¿fûÞNíí‘_tSØtôWG‰zŠª¨¥U1)qDÆ”Çã­y4óÒtÝ2ž¹y¹ÖçU!¤óÓIé·ñ–Íø7MÿÖ0Á;^Õ6Ÿû·ÞmUïÒýF:ÿð®0ß[û «Á|oRü=ÒcL®OS’Õ¼IÙËŸa»×ç=G®ù²ìsæEºxÉ= šfL»ãµÅž_ó98Ó/BŽ*‰Qo­®EQšt˜nÍÖÌJ¦º×‹ç ·†kS Iþþ®’<ëò’ÙGEV+¤&>çn¸+ûg¦o{ãÒÀΞƒ Íœ¦»¿&M•êxgýêK/l(fœh´á\uš~BŽåZ”Y¤8Æß[‹ åÖHQ¼Íž³5Íû6Ÿñ‡´„îé‰q›³îíâ\;¹TælžX˜mž/­ êåJGÔ¸[z·æZ÷OÝm˱rôÓrzõ&‡>¯žÔ¦eÙÍÛ¸HÜë}î½öJÏxÉÒ-¾WYz‹îÏ[XŠs¯]KØ~ i–áwág ­¡!ý>e¤öKŸ¦¹þâV¯lÉÕv›á Ö]ë[O 'kÛSÉyÞÌ¿ÏZÓuÅ$žÇÛ)l¼ µC<\âàOY5°t@;°ôoðøZÕãQ ‘­ã¯û—®ôš«¤G‘­y5•çh4çÕ$®o¥ô¦‡Ëù]éÛç0­­ÏË ”zŒ7.¶ÞuCš>¿ù–™{]±nŠÝk\j Æ“ŸÃíkÎ¥W?çÙs.Ó )Êñ܇×òåzÌm6mv¢voõÿºµ)Ê»Þ×–GÌ­¶¥%dzaMÆŒßÎÇå,v{Íø—ýÒÄz^;´éþ9Š·C3ùË÷fHàÖ¦ðZ¡ÙÚA59Þ |¢LÓ*Ež¦X% ‡Úá€ÛL>‚îuÅ„]uWU¿«šö¢9ŸvèîëÞ““­k©9œš×Eºwíŵ³½>òÎ äÎøÙ\ÿÖæÆÝÿf›.³ë47½¿ßz¸Â †k}œãL6F½= rÕœzÿ¼~›ßrꇗò5•ÊÓöù°)~Á6jΡ;Û^NJÃríúaEú`¦_“<žw×»IÂfN©g .òv?ëÛJ›ÒûîKòÒ»Ýz¸î·ãz¹ûåŸc³$Ùõ’ò㣺l)GJ¦å¾§ô¼²Ç[ÓQzÓ½ï–Ϻ.hf˜|þÌÞÏE&å·ÓuI›þ{Gú`R‚—.¾ê2óijÒŸÒ\¾¦QuÞ"=`ê»F[¤õö2ʦ#â>ê™O!=dN°š)¿N´jo‡jÒ›©Ò¦ì¾×¦¡œ³_mo=fx­q{ÂÈ«hºÿC–Ö[~Þw ¿4S¬æeó…~ ®ån¹ÿK›b¿iXeŽhWÇÎßµ,\{jm1ÁôÆó§Kûo÷6ËŒx«ø ]ºÓµ.ínk7.¦Z¡ßzãæs÷ÇLûÒç “ôm Èî·s¢-l®•ex]V¤ƒäžð…ÑœwS²»Ëü–çe¼ý%IÌÔѹžÒºôׇ^ä”^ÂZ†ÕÌ&Æ•s=fcÕœõ â³êH¿ùñ(Ÿ·òÝY…ÿæ“ù²,6gï²ÇÛö/§¿¾\sæ˜[÷øk³{ªÛrNÓtýqrš¼&n7bÏçÄÓ0KóoÈýçÖµŽ'ܺ÷ÙŸiÓů~އtšú­o›Õ#rÖ¢:N\èo÷çTÑïãmVþºšÅÛ-½Úêú‰Ô¯é/ Öª¾Ä­ãÜMÇÙ=¸†4¯òíјÏ׺Nj‡;% ×j^iÍ»÷Ø~Þ4Z—r®îKñúÖ¦3î›ñVOèž•¶þZúT{x€ÕX ›\3Pþ ÕñÃjöÝÃQ¼½k^ÇnÛɺÛìýÝצqÕ]«m?ï—1¿•^bvý„,]ûáuöÒýÌ™¨Ïngé3f×6-ËvÏ— ¯è÷¹_Ò<è—åêÞmuØ]–Ì[Óu–Í{¨ßw™ö²ºn¨{g¸ïˆ{gÜw™Öæwv{g¤ý[z±TU¿LÙõn/¿œ¬|Uϸç»Éjƒ)eùìœN¦3/ûëSøo¶¾o_òÛÉgú·ïϨ| šðÛq÷h”S ç׿l©öî ežZÞêû3§+Ãû'y‚y¯y³0ÆúÞߪîÏ[²ðÙúZg­åÍíe{ábU}ä;FÕeG~:Y×Y¨ó¿Ryù7li 'LJõp¶­»´×^ÜåùÂg¹6/8ÿm–°ñ#¬fÜzµî_–m}c†é-¿-YwS6O WŸÙ§Æ âißÛ²<‡#pË^åó^¤Ï2gc¹»þâK8{<76#¼¶|`5oú`–',×iªÊn£å œ|ú5tá`É´.—îuóËÙŽc½ôÆMëÒuDy·½éÛû›÷…§´.{z?çëÓMø—1a%éÝšª?Ö¨"w³žÌ’®Žß’Êøzão ,à˜ŸØ6ýF=Ý$=]÷{(Šïœ%䣿/¦Ú¡mŸ9U_¶'iNó,t²d=ñž¥/î:Î=K³ªÚ]‡uõDzÌìÙŸ;㳎bÃÓò[Ë_—ç·¦wëxÀ0½Û».“Ù]—UëCx~[-ŸuÞøÐú@Ãêÿ§ã×ΞÙVöæýö¦|ëݬ|ä«î=Ÿ¤Ñ’L‘àö†ÎajÂÒÙý¼vØò04Å2ÈHŒÚÓAXÞôÝÚÓQH²NŽÚÓ!ÇöÎ>MX†Bä¾9î×ßLÐÚ ŽsX~:$¿Ad;ì6¥Å{–ó¹("ýæüYqeÄeÒÓH“¤±„å§rZy5.JI¥¬¯ ÚãütQçnЈ<ìœ&ŽÝ.òDÏ)˜Ä¹|+yÎ)€³ÍAžÀgs¸åØmÊ6AéÉ;§Ý±«Oe¢&fà…™~´BÏi“$e ¬Nˆi¡à­a¹ETôDí¸;J¦-¬Mãö´‘‘‡ =.òãÓ¦fľ$h¿é"):{سϩìi\”jrš7¹ú°sš¨Î’8¢¶§Ì!KÙßJóƒzJÏß~¨‡ß´lß.aß4o±ýÀXû×ßÁuýú«½¹’™+I‘a)?aŽ5¿¥¼O¿hïªÐH÷ «¡9'¦¦YÔMl눃zª˜ÙAˆ+÷¶l¢ä7õ8u*åÁ¹ƒ¨oÚhU™5pöà³¹&MàãD^ÇÃг‚öÔøÉëëïôô›fê? …×(ƒr%¾ÀG¿é&Ë,Kž ê‹Ê!(ïo=ÝRÙ¹J";ì‹JÞ6&¦A΃óqQß³Ò‘ —ë›~ ÎhÃN ®ˆSÜÙ°Û‰:>+^Næ˜HvÅÅ|,çï(ÇãµÄ› Ä"'y`øÇ§°ªtrÖ²ˆa;ZpÓmŠ»E]÷… IE|ñ¨Š$ w( ÄM4|;Ç·ƒÿxG©É‘ëú†=ÎIÉhØë[‰ûø¶—ÂÔdý˜“^ÿ³æ·„üñeÏô1§™“Vq~Jl@í¢¡×¯±äñ–’˜3¿BF)©K9Ñî>¬Ÿßpä!®À«‰Â¸éÛ‡>þíI™a |š®OË­| z#)­Ã(†ZÝ'mé—þãoº7®þ-+{\7ñiÊ)G$:u@äx Ð$Ü+ønª‹‘4î‹Ê¾=×yÝ7Š˜äÆT逺޴«‰‹ù›„#âqÄ8læõãï˜ê¡]~œN ûñ—0¨ö­íútKÍbôŒ8´,S·9‹Ê•>ç­›oÂe“~DPÀŸì xÈ;€ì´ -ìq¢úúé+°™“S‰£ë»„Rœ§Þ¿“§?=U1Jþš’ŸÀé§Ío‰îã¥Z9˜qq=å6ëñ/¬ ‡ßtq4¡ÈO-ìab†ÛiF4"L„{/.'-š%Ì9+ãô%ší_p÷Ç=‚9UWÝWÎÔT"™&ò ¬š= ëâQ¦öýíÂ{|J'ÎË5Hg!u; K °vãj§"_1x|¡­>>§BÞ ÕŠÏ)ûE&Г½kìi\دð¨ò&ì6_ÿüU"“½ºÜ¼;0Órk¿ý¸ÿzŒ8K{7¬é´0ü‘e*Õt¢NÞ” «ð‰•Ri",FÍ-žEìáªfœõÛ?þ&§ƒÆø6òø§çø*€¸¶8ŒL+’—–jU±nìåP‰™~à!MTÑ¢vØs8Pðìësåñ–Òqn¦oØûãHšuþCÓ½Bq š¸„íèà$ ÌüŽ›BØl8†=÷(ï@YƒxE\9ZȃË#r’TÞiE~1a‘”¢]×Q DŸ¡ƒáTŠø†=ö”JÍc²Š; Xáüôå¾{Œ@Ò´Žþ·òøÒ%öÑq…ó"[1cf=3Ñ\|Yìgäx4Öm¡XiÒ‰èÓW¹€G4èl‡—:"¯{üãZ$q~'PDX/g@hùÄÍeÊÐf`xÊTT QzÜm?«¬ÀZd 7Óø× î9¹s£] yEüž#©zjeŒöJýø{’dAŸ¡°€¿¤ïÐK q]¸õÒÕ1¬‰'T¯…~ÑD7yàq@é¢>Ré3°yOy˜üc’JQiµµJmß½ž~ÑB!Odqèã Á çÀ/йvxŒFN·gZÊ!š~!üô#“eó&<£‹,À/ ÙÁ%! –"¦.WFd¯Q6Dè3Ç4º à®Æ$åù¹›à °,.:e*'|ú2”ppƒŽ˜§¸›^Ö’Y÷àRǵ»8LóµZØÃÿäM†ÀÄ9Û-Ò#§\&EœˆŽÇw™j‹ÎÈa?þŠöH*!Höà¨O K3s/«ÛRºÝ€[7+ŽT4³;VO)kðü—¸ªiLŠé÷8”QU2òÈ’[=ÔŒüð¶‚~Ü–&S?lÚ ²È×Ë}*Ã-*"ù4~QÈ®ô¯àÛãXJÁ-Ú~ÇQt%sMk¥8ØY7Iù*ãôzdNBûÀ<É;¬DöÃ(”¾éâ ?½âúbÞ®wnª‡Rj\CÓ!Nk­,:wÒã:îvb‹‘亸۩%¹e¶Ài¬"ÛGhÅ%ÐY„^,ü@1ú{·QŶ d‚N+=B¿)<¾vÛÿúrДÑEØ7¥÷Ä'"¥htF≠¶(Ä¥w!®íaŒ˜ïE C‘HÜꎤ–5Ndµ<¾iãœÓ‹-J·Gíé•ðMAqÏ>Äah6¾">ÀEŒâÇØJ4`f”°’,%«gje9=† Ð|ŠÄÝQ¹Ë~¬GŠÁ6. ”±´ÇÊ;²/N™ôÁÒΤ©°‡-®]†_vŠÇÍgA ¯tFÀwïOgîŽD&*ÁÃüµeô8Jm¢Oå5rh”¢^“{Sä5X¡Ê€oú0*‰ÖG&,4ðãîýAÓ^zIÆýúbÖ–Z"%«7S“Öz ù UJucú#~SÙ0íH‹Ã¯^Lí‘Uô¤Œe"sþ¡±¯¯óiO¿i£q"ì¾0ÖŸ~Sèµ—Ÿëˆ£lgY‹Aç †ð8ð3…Üû€ô˜(A'lÈnÅU¦0©¹~¦ëò‹ƒ%Ð1€p@ê`.ë_‘®Ç‡´ãÓ0Iö‹d-À¸ äô¤)ÿ¯BnO¿)Œ¹a¸¥ ÚåÛÜ0ê‹VÚY>ŠË£ÐzoeaÇ´h3Á?¨#ƒ\ïÞlO¿i£“F;rî­Ó#˜šfB›t`¯‘coÖÛ+PVÃ×½”Wèó”éøZè&ÛãE/Û¬¶¸8å_#µÁcùdFêÅ`Lˆ*O>Ík[¤Ü⤉/€Þ8< JKì«/ÿøÇ;ZÀ¬‡ò^ Ÿ§ÈžJ³aßâ.€9BÅ•‘EÍ NG ƒ$˜žÆ%ЃDJ;Å5w:ŸQz¾ªvtt÷äDÜàzî¡xH-°Kl–6ÔÌÜû2;ð8]Yîˆ4#….¸¶¹|“F|úE']ì÷úÆg9H¡j¦ì`à…HÐøó,ý:Ø|¬›%ä…I½¸Cš÷’ ôŠdWþ@#R‡ƒŠ!ªI;ÝÜ÷WÔàñ¥N0è8 ~‰W¬VØ]œÔÊ=‚F…_5W &v°¥_X7O¿é¢·+ˆq3eø´+…Ú_5}~Q”"£<ˆ¼E·t‡vŸ9ÁLÉã¶TtËœ¨âVåi^i®HeÈJ«P0£ãáž4‹ÆµÂö´ón†íÉÎÍZº©"¥‚([¼¯ƒ5"›ù×E ±ö:}(m·a|§­ :8œERM—|¢Ñ‚ˆ0€›ï$¼ñ…¾úôŒN|ÍD'!à'.ŸúI ÓuÄÁÏHË®¯Ù”/Aï9\–e@¨_Y8úTÑÍ£ð4 2T¸ o± $nƒao¢^5^§ëü¢!F6}=ÒGZZ;óý/ÕÃcR\Õ‘ú ?þ¦¼–jœÃ7mª" çë+¢È½®ÓÀ' áš® üõ¯{ôŠ|°^ŽËõ Ƶ’¼ ãr“J-;2yâ~ý¶QŠÖ:¯Õ§{ƉZA»×Óx —n`ë+ÝâyruÀž#óÒ+FÁÏ·å×?ÎK9VÁœ7n칑Y¨<Εj'Ü¡èÆ]Peª]ChàEn‘qéIæ@`ø8¥0¨rH3(PnƒE|@Ï ÎïW,MÿŽòð›¢ù¥Eºz²Ì+ò¢ŒC#u6‰›¶&˜µàׯužÒ@šØ40ÛÇxêüÙ9ÒzVã™m›ÓC }]!Wœúò+=ÞQ³ CH‚¯Ì kÇ‘àËõlæE¼4ÇeЋôRQqÏ=ÔÏ!F™Ä°¼*DS×Sœnź+é¥)0bí½@\¿"áÉ%„®2âÉ DË'ÊŽ4¤K¼K®G?ÐÐ÷*q(Ø^¿ÕdO¿è¤†c‰F –å€?ÞQ^vûk÷å ˜bD1‡–y“R@‹#Íœ1CÌSÇõ®gt^/_ß4°óXF°µôb¶[[ 1âé;‘~P¿Çý´Z¤ºz#»l÷oÂ%>×W ¥m"Ø;ðvB!J‚adë *DKÏS…X U’(Ûó/äñŽrŒÕ8l1…sþ*Öð4Á+v§Èßþ*r—ˆ´òB{$}qƒÙ°6„¶üøâÈÚ…<¸ï6wOO) ™ÀTTµ«ø†°; ”`+,ó`èÚȽJ{XÙöóïä+—ø:ùñÞ)8ù€9âPÝ.I?Àïq  ÌI i{¡ÈvtEš* ãxE½ënš¤JBƒØyºž÷QZfnµ]÷ }œ2"鎤°×cÈÚã´Ëª¡DmãC…ªFÀg~ýÀ?-iª“_ùª'dÿ)9ÒÛ™ø[wÞMе¸Ê°kKãCŸšæ¾8Þ<¤ Ñyõ@Â\%³w$øœIцyV Q{‰Q©ÂAu¼-2ÿLG°Õ{ÙÑq<./iqn)Pwü:~èW:ØãE5§“8´l3Í1¡ùÀ >gðvÓ ¸2]ô†¯@džC)ÏëœÆ Sq°S)*–NÌÆ1•7•Ùd/¡8ØÂ‹GÆ–^eDá‡4®TgÒââº$íºóA 5HGàG"qÕ£q訾)™óÅRæñ1•éÓ(‘¿>ôà•ÀÀ_9çZ¯À¨sEG+GÜ ºµ?8¦@ û´¬À8öàmǬ2 jùªà|ÐÐîÜ•Hrva·ŽcZ#éflÆe™ž0¦°S²;:U²Æ×–ûãcÊI:à\q€i“«NþêÖòøÉW4­_OÔã'S¶ïàKŸ*_Ù/}ZÃãŠ"[¢¬EÙ3ò›NŠ×–±! èCiûŠq˜Dc˳Éé>>ÔÒý¸~ h¨·Ï@S¥ëb.…ã__.“ƒhJ7µ¤:ÇÆ‘GEVú“âˆ9tðJ#{¦²S Ôƒ—ç_‹ÜRÀ¦¼¡"íÔZ¦§ö4òÒßøÙ JÞ¸K <·ãŒ);õÐNâÌU®ëŸíÔÈÓxòe‚úé1½RˆšX›ÇÑ#²da™šÇÅ}Ù:CÂ;²,M`nÚ°Vد_¸§}~Ëyž^ú‰}Rð9âªÒJÙ9Ây¨1UÖâšP‹lPX!|Ix÷v$kT#ËÒº‡j®k/…Á<;ãÌ×’ ŽNÞ¨qÆ:`BWë´@ɘvU$£Ó`æ‹PÖÓoš8OV1Y׆ìg–9RD ¦I›/²³è ” znº­ÔýÚ.||Lɶ‚‚ë—9ÚÇaÓ©ª|ù<¨J!â¹z ³ †?æüw!úñž.@1àp ñ µÕÈ»úºy¼§,r¡K¨À»Ç,òMàžVIŒ—oúc)ßõÏG!ù…´þø†ZÄãJ¤1íu™d ¦é­Í1µkgýRdûøuˆúq±7)°²8ƒ÷<ªæñ þxKé¦Wcu– =‘1ªSw~•—?Èø`}–j(ÂKš¼¿¶¶~ÓŬŒDÆPU3XÕ\›PyG‚ÎÅ—uðä_nÔÀ)=„ýëCkTÀmuÐòM³ÿ€$ƒyÂüÕàþñ1-ÀÌ Hš†q¹)NÒ ÔK Út“èH5KNºs( ð”RÚ§¥È^)Á¤Ð. |ò)Û_ð?é Qc€|pKL¶U¡3$˜zn_G*Ÿ~ÓÉ!Õ2{`#¢$‰dÖH_ZÜLW UrôŒîäÈ^ ]ÉJ¤†B*w4ñ€ðÆ™T¡E‰ëž $p_ßÖ”=Rhç](DÕ¸KÿÊÊRfe§ º"kæÀ–É 1)¤~'¡:d“@ ¥ÇQw}«uŸné Ó½¸á×+ƒ€ÚtµÿÙ[æÉ¡ê‹™yT«5p’B‰Ô4*ê5‘B'è;§I²m\‡~æu Àkˆ{ž` :Oi\ÊžÒŠ4(ÊÓi8¿Y@5hežÒFD¢¦H_ÊÁüéúµâ¦ËïaÀ¦PŠ›$±¸lW>úäëë„Í?ª#3]‘š‰¶"LPÃ*(ÕÌcǃ­¢[öÕáq0eßy|ŽÓ†&a í>0­3ü/^7éU••ï®áéVŒÊ‘«‹^P}ǵý¸V)”n`F e»@8jáÐ_ÙT`¾·Èà*PòƒwåPÕ®( =Ùu'?*΢-Ål ÊÑõ 5YQÇ©o"3E²·Pƒ šÿàÎäò ²¡G$ã –áÀ#FÄÍ ›3@½újËyðM3„£z b¾(ÃDù¨ÀÌÔh¡%²*YÌCÕ9p<ñãÃ"9Á¸ÊüAL ÔçˆAéë-ôñ)e iœ+)f•v#A0΢ndÆÒ+›ˆƒ¡9°°éoG8Óh>iq_4Wy†}ÏE0¼õÀê©f\Ÿ9µÀĤ²CeÇ3E}w…’]ã(’QlÅù•Pت Äuó*Ùk°ÔˆL´;ì_€ SüüHbÑÆމì8Ûi¸Ï^§}EêZ *"fÿ €wD‘õU-ái º¤Ö¼#y%…ã³â·•”7´E¾è7>üž`+\ÕQ¯±óX»Ë$9ô†¿®·k?ãhùsHÐ`ˆs÷âï>ð}é?K$m t{€ßAæè\ØPxÁ_19.!ïçÚ‚9äЦƒê¤ä;Ý(¾kõ>=ŸS%| ´LÂÄÀu»a "ïMh¬¥¯¬Ç÷{¥Šü•ÕÆ \5’1"køŒ[îªáã:ß‹"hä» ·‘YÃÇ]œœgB×£χ6–‘¥ú®ÊùÛÀÄÃoŠö^~jš9SîÔ?9%P­²’Ö~Rã?eSò dýxOù”Â7(Î}Œ¢ª…‰cœ´âõ«—Du¹/˜àÓ/ Jb’b_ á…}ŠRK`ÔÇ$'%ªw¤'fdçõè§Hí¢D‘¥š¾’SÓD /VøYFžx¾YÏk‘2©ZÛ7ÌÈJª4pønÑY [\·IfPã¶Ð¥Ž›oæcšGä8ë ݼé8 YëTåGS=nDøŠQWù÷äÃg:kª+Pª”x¤Jã@\¸\ŒDcìÀozý@»2îjUèEò3ØLÆ7ëÕ"=ÉJÒâüfÁÕ¿>PV³R¿yÔ—ûùq4bü¬HQÕTå¡°Áq¨‚ä‹ä,NÃâºïš¨Î‘ò¯]&ë-RØÁ䥟";b¼…ÌNÜÍä8Ãm<Ðpvr/Ñ$ˆÔ°(8û°¹ŠÔ€äýîsó8ãK2…ŽìŽÀçÇT`]dŵIdˆ¦0%)¼ä  ‚x]¥Sט»-l¶ÇÅ}”P„á#ujA›í‰C½qM\È‚\Ç:&_0ΧߴL0AÚ÷¡¾ô(uÇÝ¥‰SbD T0I@#òuùÇänz¦AJ<ö‹æE^Õˆkó̳€ŒË£öÂVÖ9;t›îRè+¡®ÜæßIÉO¿)b3®éHB!äkhGÔ± Ä$æÒ¯£Ô+AêIÒl »â.Cxë ÈR½Ö@kìFä°Á1/4=Hþ:ØõôѧÇ„à¨Ê_=Š|Tº¿it‚ɦ@ûÑFÔ8Õ@~ÄU@áq‚ iħIvƒêVâÚMܵ°+ŸqšeqiT&·Yd ÊÓš³fš#Ã~buG'®[$¸qµ^”*m‘üB “o¦¦_øþƒé¢ÈRž‘6t2ÜøD%ŠÕ%Ç9ª³Cö3>ÐYfS›—~\”º¾éUì‘R7(šeŸ Hä«›êzq½ c6ĥѓjX48 üõY—ŠÿrA?N£ÉÞå0Pb DžA¢D ¤îf•Òv ’DÑ×cÉÐée°Ã¨P>’d,Ê7ÄÇ¿þt[’@#ºB5œÓ/ÍÇ÷>u´1¨š;þùFœ¤~E†)¨LÞ¬Rã|rñDÁŠMv?aß” -TÌ€‘^{Ú•Ë–¹Xì¬RÁª qÕ^Yd¬C"àËàÏA¹—% 7àJKG =3Ò8 ’P™ùt x\¼#äoÂãpšqLÿok×Ò’7E÷߯ÈRÅye&³¬B B Vwâ¢hK)–Rú÷;çÜD(­#ÎÂO":Ä<îÜÇy@ÆD‡;az) ü:î(¶ý– + ƒGkÚ6Sz†JmÓànÒP²3etâö§kòF~ä~:DO˜)?€­ì PFmMÉL”=„Š…›)Ô%Å"tBÅ Ìã9õJÀq\•ŠË"TÕ ³³ùNPži –:('c^5×m*婱çt‘?m§®Ç˜xK9 ˆÎ³u…:•šßX[7Û † ‡޽ñlIéæåÁœ’S ²Ç¿Ðw]¥0€°n×ÖvGäoõ“Xh-Ò*ÙOGuôLg‹üU9ÛE<…¤vKz…ÎiÉ"Ùj]³w?/ÖF¶úF|–ôI[mu¯np†îAñ¬÷…ÍžDÃ&Ô»Ÿq¦ÒÂJx–H ÑÝ}ÓŸ¢Að95Gó¢´}Ø*>xüI]©À°ÍNˆ“ƒbR[”=®§ès#ò ë}ö9Àú&¢çIב8ÐíIžd]UY©ÄvtDF‡ ²>ÄV nØI,Ý2rxhîˆQëèž‘BÔPèE™¸ñ%P¢uoT%‹ƒ¶TBŒ,½D8:f(…¨®Ðe®Ž¢º2UúÊ Ãát1ÓL©¶€ódY¶Xå…éB–öLÛµÑ:½#t$jæt_øáòçÁ0.Â":ùLyåÚeì˜E¶š”SS] ÅÊ|Q:[¥WL¸@'YÍP(RqÙìMÑèNM ¹­óš‡ÓÙ̲¥ØÓ@43äè„"д4‚0ðvy°íëÞ(€î+S¡¢P!2õQû¾Ó} aÆ_ñêë´¹‡·¨jZ-Aº™²Ðó¥ûïÞ|–ÐàØêŒ#ôf‹ 2êr!£+]·4|¦‰*ËÒ#XïÀ äul¦k d³üqRƒOG ½8g%Þ“mu•Yw÷aé\˜Ÿ(-¨ƒ¹}•^1Šë)FZïúoïûhr»®kè0¤/!â¡‚®Âùž _µo:\‡»£3z„pfš(*S”zÆØ¡ ÑGÝïH£!Nèg¥c®§¯+_}]rºPH —¶Ov¼ú€ò§Y8ááå=öOðHC8è:=}J”¦Öúz$–[¸—.„ôÁiA¶CU3JR8ßÉV—Õªô%k%Ôö® û‘µS]vÀp"åÑ“‰¦ÿï¢Ó¯ÃÉã§÷§ÓÙå_§mŸ—gÛOË<ý>\ß´?º;øé¼}}?xFéOL'Êtqñî¾ O>|™.×¥o_¸"ÆÜh;rûüqhç·£ûõ(rÒ{¿þævômúúÂåXWt¨nžWäѶbà¸aÅÓ«ÿ\,zò.Øæéž?xh“³°%U×GoŸžŽ[x˜Ž>ß>ý|˜üñÍtuŽ‹Í{õêRm;I/,ž—º8ü[]»¾ endstream endobj 336 0 obj << /CreationDate (D:20150225101834) /ModDate (D:20150225101834) /Title (R Graphics Output) /Producer (R 3.1.2) /Creator (R) >> endobj 337 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /ZapfDingbats >> endobj 338 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica /Encoding 340 0 R >> endobj 339 0 obj [/ICCBased 341 0 R] endobj 340 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus 96/quoteleft 144/dotlessi/grave/acute/circumflex/tilde/macron/breve/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron/space] >> endobj 341 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óû endstream endobj 326 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./piecewisestategraph.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 342 0 R /BBox [0 0 504 504] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 343 0 R/F2 344 0 R>> /ExtGState << >>/ColorSpace << /sRGB 345 0 R >>>> /Length 137288 /Filter /FlateDecode >> stream xœ¬½ÉŽlÛ²%Ô¿__°™…ͪK6R ^ƒ¢CB'u"¥ä5ø}Ö(l¹ïÂ×V ïÞ;ž{Äöð5mZ5lXýú_õë?ý×ýÏú¿¯?¢ø?cíþ¯ÿûÿúú_¿þË¿þ»ÿ_þ‡ÿþë?üÛ¿ÊRÊ—þ³ò?ÿí?üO×ÿwî¯ÿç_ÿÛWûQúWÿÑ÷ÿþU¾þÏÕ¯ÿxýßþWÅ|ýÿjgÿèñÕ÷ù1Ë×÷¿zé?Æüê§ý¨åëŸ ïc]8~tâzý.¼>ÔC¼~œë8ëÇæë­ýhçÂçGíÄóG´¯(Ÿý½àß‹Rñ¹€ãGžxýý ŸïÂQ~¬C\'qÿ±C8ˆç¹øó‡¿/þ}àÁ÷Šoâõïëç'?O×ëãÇnü¼×Ÿ ¼ô÷ïS¯Ÿeóïž×þýúý³þ¼>ð¤€Û>ø}Uþ¾Ùñ‡àû<Å8®ïû\ŸïOü{×÷3ßðÞþ{üþ}ýûõí÷íéçáoÿ}þ<»ûyøóîöcö·¿g_ÿ~¼ý½»àk}ëäûù}õµìþú>õ÷éûîëú|oϸ­×ó.óõ<‰ûëyóýåu€õï×÷[ðû~¶‡ßñ¿Ý–%{ÂÏ×ÅçyÚ×÷×/ïÿú7êú÷?ê¿ÿ§ÿrý‚ŠodÉëZõ ù…á¤ê Añ¨úfâE¬z½(~Á…ŸŒx7ø ãýÿÇÇ«b]ß4,eþh×_8`x¿îÀ » =§ëy]çfÉc·h.°º‚'htunÙÄÑ¿`Û4¹µg£ÅuÂëÀÀ°ÿ8KpÂþ œ~Z¯¯»Ü·cÛõŸàõå⟨—\‡ë² ± +€»Lá‚üFÅSÛļÉê AÔëÃo~Ç×ÍY…‡~¾çëzƒ.©^=G½nÎŽÏÛõ%Ô¸>H'ÖÆM:ˆùõWáxxˆÝP…|Î*Èûîà˜ðúÇcŠŠ£ȿ麬O•3ÀW¾þú¸Y.ÛÓp âóÄÆ»ñõ×­NÈ ·!7B7q}7kéVÇ›¯¯7ÀuM¬ä›íS× ~:í: ¼tྠyèñ·ëí,ô´Úu^¯ïçúû_Åy½ÂG çuF5¼ÎLðæø2¯/‹—[Û<¨ù³ÌG3, p>=µÕñOõ>ñ}ŽðºÖ‚NŸç +^0 B<µÎóΛùú— ›îÞ„ü×ü#àÔe{ôfþiKOí‚Ëw¯óZO¦w}«Gõà+ø&ŽFS“iÀéËôø}Öëk¯ƒ¦·Žq,â–x š¯šŠçbS cDÇ·éáÉ â*Üá³`j b€{•镇‡¿¾¶C\ˆÏô…C¾÷GúVú5àQ‰é~€8¸ŠÖáC€W1f°Xäã f–|}kÆ ¦«®à*Lûø<`À—3àyý&¼<* ¿Í ^å2Á²Ò‘,ÀÞ ¯?V——üÊõ[a¯Í°óU~€pœ¡¿ŸwS´‹ê¸{.¸ªá\OaþX—ñë§®g@ÓëùSÁ#„(•~ÐØãè–9zuû–i€vоtà2ñi¯_ ¿2¦ ޵êg”À‘ãÍ—s¸bÀiˆ{1Þ|ÝüKFõÙNÁN.·ÿM¼7qK0e7+ŒÛ&V`‚/£ÒNƲKX›XñÄ…‡ìfæëM¸ÐÅ]ú^´“>ŒÇ¢]¬ÙM{zD]×’@ÚÉ…”M¹¦èÌv˜$5ã&¼éWºcÞ¥ ¸NbÞÑ“ÞIpÑë ú!ÉbÄÈ1ÚÖïÛiWñÓ½'púëZ½nÈoB|Œ)K€O@ê´pˆäyl%^ _2þM\Å‚ŒiepLs¤ãæéô6Û>á:¯×­Å¯½m9®ËZŽá‘„mìóe…‡Ž3Wh'v8¯º~zéDÒÁ=Ö}šCáØpˆ¼ï ]Vä³ÎSvÁÐ?ÄŒU· -aËŠŸ^c0Zd¸¡Àº_ÿUBfCÛº/`6z•×6`}ÁV¤ÓUq‹òz»N¼É)¾²®H±MZ?R½Ü×T ¨¾ó†a ¨÷/|ñ ie}Ë ù6àƒc«q VÓ»œ‘ÞHØVØpu1°ûþ¸£!ÆÛ‘›n‡;þFj=„Uº¸b XÁ…‡^¯tÞíèÔ÷ÎP X™d§9!bç™`8шõûñ=)¢W¦ˆT\8ô~æAÀ*}tº=üqo¬Qëß»¼%N(Œ[©{‡—f€Ôý(Gèãø£ÕVæEÈ–6}à!Ì»¹ÕÅh⊡Œ7Þˆd‹çªµ‚Ï…\L¡`«ÄÓ,ð–ó”¶ësá|\™.‚FÛBâÇ[¹5FøÈ7–ðä-zåÌÀÛõ½ :š]0>ß…ùú§óO\“¾ÿoâë€[:î[¤+´¤3¾"Ívûy&} "Âø Š­é¢ó Ãçï/Š.`×½Õ•†c×5u}Gïç]¼ÛÃóÂí~ÛÉôõ[—ûº¾ÝR}÷_f9xÊU\Vy=›™žäúL«ú¢ê¼åVU xýëÁÎt3—Å"”dä}‹^f»†¾uÂFY.“Ž3,Ï,DÀÌ {¡‹>*¿ ÆuÙHJà£÷ê¬õ¢)z½Á§ó0Ãè®/]FW _¿JÙÆp…f=°fcÀ«?<ÜŽ¡‘äòÒ<¬«ë0]1åjĺQ ¸~Í8ENÀªBWøþAÜ_¿ؿΤªÜ¼yim#»þÕ…‡pÓÏoý<0B£áºñyáÏF³äZõ7ñõ‰›íX<ô{O…þ.ä$2ŠV/….ÿÍxãÓˆRÁ«4Í)Æ×-ìxš5'àxºä"IlÚò7á•ÊÀÂiÁ" ‚qZÉå®eWÛÐå®ï ×£!ík—üÙ³EŠ@ ~wŽtÑÈe4Œ¬2‹ÎèøJ•Ï(åDý.áõÌ–ïÉ&¥d‚å<"àáòJî&×»" ”˜^g4 ¿XôzoöƒÌ{¶Ø+`u‰&,…où-E‡¸-Â~Ÿ§e "TÊjJ*ð?†^ïjiœ¬^Uù­‰³¿u„Ïú®}Áï5ãl‘ØÏéïûô{ƒÏÑu¨o⾉™-¶ë{+¼ZZСÓ´°IneÙ åa©(ÕËp£_…IÓ¯Ã5ààïë*` ÇY­óƒà a«¦]ßã.Ä*¥ã{„ß«.”tVd€å'»ýpU6ôÑÄÏHn,ô¡÷"VöXÛ‡IîmÜ„ãøj›2Ẍëz3YÔ‘¶ü^7.z½m_•h1U_e¸J§ü¢?(ñSÁ2«ã‹™í7áå"ÕÐò`ñþIñ|ð^Z#-žµŸ Ò Àâ¯ïø‚»Û᣷°äeÓSÏ_»œèÝ\p òx¡?Slñ—?Zw¦6àŽŸ ɽòf‚W›¨Åa™xU‚WOzEž9z=5-Ô•ªö>ð²ÈAê±I_¸Û+–ôºAÜÒË^—ðH/‹”·x6IÐÂJ¯ŠPµ9Î ®/üÙ«CÑ+ôSBhúÀ4IÕ`(¨êL™D×U/ “›-m‘½ÿ°F=²ÁkŽC“âUÓÔö¤×¦I¶¹h²aÜä¥Ë“×l%6|ÿßÄèª¶æµ°Ö c¡ ÿ.RÔæPŸsËKÊ«^ÇØ2¹ðßy=ßÈçƒïaMš”Mt°8›ÏŸÑG“‰ÝÑI!v´Qè•UÕÄx})4ýŠü‚Åbô7áõüWUˆ£ï{ðò3ˆ.ù]ÑeI¸lÃë-û0ÀIc¶gdåq…í³3(„1ׄ㯡¨ÂwöÅ`SèðªFÂ#ŒZ›K,M>/+2ꡉƷ™ÑvC¤åÇ í–±Î[ßÓõ-íªše——ßU¥˜þské÷’äÄÌý¾a¦×…‚&AI_ªæVÔ/u_£Ô²ûIÈb§nk¤éðDÂÎêæ0¼B£áЂp³ºùäq&e—?û\†ø~&ïFBV1Ô`Çia½½(¸Šƒ—š¬8iCp A¾Úõ›‡žr•IØ®äó¹¨8\ºßz3¯¼Wé~<–îåmù5ñÁLæübÔå:ê: …‹ˆ&–JïºáÆTiÞýôŠB­KïÃɱ `ÀŒÂ€[vź^—%_no¨ ¦ŸGIt©ë¥ÒþÔïï*b°+Ä­M8HÔòhÿˆ§éonwÊÖ! zWìC*f È< ËTk*SìòâX òdv…U<ã£d‰-ÁýTχ{DÏÿàs|" )¦Pþ¸ú^Ê8É qUFLšp_ùâBp£?­¶ƒÂlŸvXZ‰¦k¸á®˜ZY‡ Í:—Ãÿ?z-úYöO‘l¨zºXåM=ÞÈ z¯žÙõí]°ÞpÝðã…HëT™oBõ§yAoDVǦ ê”(nUÁ¦ZS&¿·RîÖ®ˆ¼ u¯õ³]fÙ|]Š‘ƒôÄ·'®éÌ^>÷ªÚ¿CÄ+b·U»¯'å/<…Ý®wÏ«ÒÉž{lö9À]†7³‡6;qÿ©‡ÙCS•u»·ó±qIžJW`ó Ôq4¹L6™úæ;@ärÒÃ27G¬Ûèw–»œ³¿˜gŠW醶.CòкvónÄ‘<‚°3´€o¿ÅÈ ^~ø¸ìP1ÊAEñ²°ÁÈ«UmþHϸþäázR] å†}:ÙƒPNеÒìS±É¶¿dþªÌ]·×Ùd[c(øýxü™_¢Ê:ÜP$ŠÊo¾¹´«⥋pÓt˜ú‰[a0³EêNävÕ‰®ºr·8½É+¡A¨ì[qH“%õŸ[­¿íÕþžÂ*²«…‹ÊCK|ˆ{bUAÊ–oTbï®"ðqÑ?ºZcYß òì€{¶ˆÙ¢.i~]M‚¢+àc¦£ÖIþ¸¢‡ØrL¦˜á:*L.¯$ÜozUÅMR û]Maáªë`Ó ‘7çˆ÷rBðËÇÁ2))K^EɵtüqìÄ©c4h~„O%C\Ùni©;F³H¯Ót‘„#|@°\&k"í„ó'^÷ì­nëåu6+7ÑôÕ£ÿu]Ñ]ùC•kѯd³¬ÑÍ<‡l¬Á³‚?épY¹aã‰ÔÜB†l[ þi«ŠŽT}Kñ¢Äy/ŽÑ…59Ô¤f´×¥µe &¾Ñ븗‡Ó¬P‘é.òއ"ÇÇîþ ½¦2‚ì5Öpg†PH*u&…›LAWSl½žõ ôÔC¦rŒ‹LEñ6N¢°B¸ë žJ¬>ªð&û±ë¼‰óð³Ð9d ÂGÔ3ªègVÿÉ« Ô+ªf£¿*ʷב²'Ùì9HC¦Ë G†DFü¬3|«‚ Ÿ‹_}¼`Ó«?µò~oQUú•†ÂÔ· ªu_ðúÿãtC0øu’b±^¶<Ì'D¦äpš°ÑcÃB'4‹IdwvrŸŠËåÔjN¾áúzqÜL[¬±Dzôe²Øüu-u»Óæ€aî9þY€|&Cd]cOL<Ö(‚©ß7aQ* 4‚ÒרŸ¿ŠøÊ*_e4¬âðU³éoÂ!"äºE&ÞÉœc+«¨vQ…Y…2!+c$‹yLŒŸ›Ïwq ¥‹çWÑ •ƒ7&ÛÖM«jöE®b«N··F¶ãéÉį†1Þ‡+ïonæd’ÑÓ*­¡Ú‘ F鑤^b˜ãm»9åž]¾Á…Ô֘·d”Z»%c|É$acL¥èÍUtxê&Lß1Bæj2æùºjo5ñ’ïÙ¢¶7:¡>ïJºàÔç[w-m¿ðÇ1¦‰&³ß€qé1ŽñvP{tn“VÍwŽãÐ"Ž®ÄíyË34 +ñ›·+½Ç®ÊÍ8y=f©g‰¬î þs-n1x‹_Ñå_žŽ‚ç›À|x.’ ©Ás‰Æ·ì¹ó–’°+©éÈHò†Ò˜°ç’_Sët³ò‘µ4&?ºÖ^å±rÃyæ×ò³%7TÄš]ñÔ`aŽ0^1ÃôÙ`-pÈ0a§³;¢PŒœpj`é‚|ˆ“q$á–a"BœaFà†<ÌdÍ_Ú/ð³_YY‘©uû|4z@`%-%fü*á{ž7±ÞܳvŒ¯Ž?n|§¨¤\ösýÙLbЯnøùê8lª"PÍ@Õöt}²‡Åû¾–lÿ.6¼€eb.ëûB¯¥÷§+Žþ·ÉÒü0†O/¼rxuý aŽôi>rŸ3qO {™ÛÌ£©ÆÐܪnãl½®áª¥$u:?ê‹,2`Ñ /àx:o1YÄÅcao£c¨Šv€Ç¦Á,†9Ädi RW‰Ù«Fη„YZì?‹.¦OlE¢¤¢qˆ2¦¸˜¿?Vþ¼æRTÉt!I„“Ðç5õ’¥&àž“n,Z'›gÄ˸ÔþLÎäô#¯jŒ±´Á1>¯Âü¸Ü41…J¶ÊLæëIÖ"ë­Ä×÷¬aöÒoBÒLÈ]ùóì«G/ÚÉ~¤‘´Éa´Q\il厜øŒƒG!×i[¯ñÀF(FÈuD7;s^ÙN®''0ÆtÎ;Õ…wÒ&‹—ÃO±éÔ%=ìó¼áÖ´^³Ñal˜F¶9Þ ¬/i‹!»š.Æ‚¨N›…pok"]5Úšê´-Ÿ°&¼×RVô°Û‰»°‚Š•÷oø™‘ɺ,ª­±ÙB1XKúžX3Á*dU»X´+Œ „;`ZŽMl~ )ÐÀ2º..P˜vF£)Ä¥ÙHœ‡ÇLÍ~¬ŒcÔ`ÞMßÄÃxøyMaMÐozK` º ÿ7KD`Ñ+ÕšWk7IÒ%·*:5ÏÃâ8°.ÙuddMFô9ãíUËôÈä¬ 1Ì$åX¥%îTYé”è­ídø9UÌXb*¥Âia äÂÊî‡ÿê•ø¶l‚nya‹Ã›ÄON Y¸Uø¯æ¡°ë²n霪gùw øës6â€Eó×è‚Ëxa+êgÏÌ2CïWù~ðBáq×ëlœ“žXÜ®I®>ñ£Së,{T¾…ë— ¤:ß“‰È &~/À1Œ‹ð:>ÿêã€ÀtbãåDÄÈæÛ«ž‰F-‰0Ü|®Ìb÷Yp¸ÍC¢•Xα1ïê‚h”AìôßÕØ)í‘dͦþR ÝW$ÙMb9ã&Aˆ Êá­`‡ÛÒôN‡A2s5Îg¯Ç1UNfW¬i†qºtx]Ó¥ Àëòšv¬€—-e9ð²‘iÂ4àáÏvý,K3ˆ›¡~U©†×9œæã^ÇaÖŸ1¿jD0’=Ø#̓8%–ŒJ‡v°›@£:>´UXð$F´ƒD“‡‘D˜ÖCó".ÅÉ>[M¼ddO%%PÿpéàãE0’'''™úP¯âȆ/±\ +EÉJDf9ò°tÖÀ›¦Ø5ÆÑU’&Æ¿çÚ'q¡ÓÒ°@ï»pïïé»" šf³p’54T«K NeŒÌ0Ø¿F jÛ0DïK ÷£æ¥ÇÓ“8„—/µËb˜ÞÃK ÏÃÜu|aGçAmÐÚtiŽ|ÞФ¹MÍ^Åx{Þoøs ’Úä9ù&mæó‰¡Ù1W`ykzl:ˆ@æ8=Ž‚ ‘ñ,ù~ž3ŽÑtG~MœGÑy2A;4ŸŠ¯gøØ#òu‰Ld«— *£¼.M”Gyqb«ÎG}êíÒË˶sžÆÊ™AÒÞd/'ðÄ0°_·½jö,RÐdò¶H€IoG{ëÆ Ç0ax²,úÇ õ Ì–z úTô©¿ƒ^PXÔÝ 5 ‹žAƘº'ñ¼@ÀuOÏtÇ0—¨i¯êÕ‡©fx^tJ=©ÂìÀÕl€qäfÐi•äç3H¼Ùüd8›5ùœ9“`šèNY©™³Âѳ"€Â:x/µË?#诮²,ˆ% u`8Éš3<“Q3Õ™$»u4çN1{úù’²Uè³TWv>Vw;3@ð×îSà+*VÆ×iä³'¾\¦Ë†f\9í ~»ä³:«ÊÀ-_¿¾HN¯éuq%ŽgG‘ùבɟíñ½ÎȇôoËöp¤ÌŽêÎàsê>rÆŽ`´+hT§à5Âõv§ý]âî R¸¨à|ÛŸôPb¦XKv!EÙ ã‘´_Ø—‚F«%’Düh_C-”AwùÍÊhXÃ\’|P5i ¸ð›î'‰ÎK-ôOš­…{Ñý©Ê’°ãûw:) ß¿¨ïOU*mÉù!—‹“Fb£†>_ó˜dP.+"]†º!á\•f°h’¥cNñŸi9ŒÏ ±ýGÑß×ÿ2‹¬áhò>韛è+')¯àœ³äõ¥è{ž&SFþ]ñQci‡Ç]ÁúÒ ›ÉkÀHRr€Iât2m¥ †£J8üϱX76úëp²G¥ŒAÿÝr ºÊûþç„(¾Þ™¯ÿ¿àÇxî²3úoþžobÆÏî‚ã$®ö§#ä¯kVˆYÑä™sL@ï?Ùêdòc˜SßIg!n÷¸\(žJûÇù5ã«P<^2© 9—ç™Gø_Ìä”ýòÏ ±“EáoÁv/öôÇÂûöÇøywÀàÑ)©%a\NÊL&­Å}ð¿h WŸ#`޹g‘m°D ü˜tb6·MúãÃö«`UlÕj…–†„çÚ„‡üµþn]pðÏ’Ó :Ц®®f¯¸ä,0îëË_—0Æ}~¬9B\察FªüH(.û&>ÆÍ÷]×yuG†q°ÅäŠâÕîÁÀ,âôWQ'_Ï|§é÷)W<²x‚=—ígèýû¾/«pqò¾|ЧB´,ÚCqüK{™ÏðàÓ>äoià°‡™ãäÆ%ã]ßWz?ÊgÌÓ`¼»ˆ•!>“¿ÌOÆÉ¢‘´]Â(Ÿ;¥7“dù8fa6šÃ®¼ŠÔÂΡ;©]¤QÁ8 ]‰:›';‰¢i*ÏêÉÿGgÔì46 Ÿœ·a¸ˆ×$ʬ÷7ÿ¾™ÍÉ¢uÖ¨9"UžöØÉœ¤o#œ äõÔ9t^DÆÒ«S8å«å·˜W »n2™ÏÖîÎøduXÃÉ{¢fq·ª*ÏN¡ŠªMÊšEÔ ­%‹¨.ªælöš*Ò¦¶Ï/øóý9ÄÓª*O5ÜÉ£ž.›º/éÇÝ \¢ß»£É¡~^²³S:z«¤lïÑï/ÖâYEäþb­žUõΠšý¹^¤©¡¨b:±ë7ìšÔhÙi«,ZGÏx•NC”Œñ¹•ºóKû/=Ÿ0'=ã‹)¹¢Ît̬'tå§S÷àG{<'e9( CÄÒÀ:”Ü»;wÀh4ç”Ay0n’ÕØoª¹œÙOÌ&FúÇRÔY~’YA§niœö ü(:Ú[i“"¨ß„—›žV¯i šWB±‰T?d°“|¶¶È.xAŽÞâ “ÎiÕtýôé:š-^Ô?ôÓìçï ±¯T¨ý&Æ!-;oæH^\_…tuîT™žá C|Ø–¦ø—åÕ\ùîRéüãa3éÐdšÕû3ÇGÇgÍÎ$õ¬¯Îd¡½;“Îü±3I‘û ÑQJ…*÷E˜_êÙ¢¢O«Miä¾OËŽc¢y‹Ã&§{¤œ==b£Ç„Î\I—aÆD#ƨ¼OK¡€Î1äD})°/L#®6zræ’Ó¶%…“ú|œ)=â°u=/™“t ö׉wâñŸ9n$m²]O§- ›š8!éÐz·ÁÕÑ{µó5ƒW³BÊðR;_”x¥Œ~Ëh§+c±e”Ù)1ù=R£6"RN4ïC,'-½uVжŒ~gg­‹ŽS2“ue¸–?àN½‹5»"þäÈÎn†WW'fzN™ålfqu–º_N¾Q»ÍU…æyËÉݶõ~Ó¥è”öLŽmÛ¯™ à*×ÇJ2I\Ê¥‹«LyÌA\³£@ºNV4æ’“Œ”ï§ÝŸtâ K•áŠÊ¤76‡”ô`/WÐlP™®0.uÎËÊ `$=è•iоsûƒN’ø³Ón²‡mu;Gˆ**{®²GuˆöÑ÷ Möº9¤I¿š²Çšô«¨oNcC[ö™AùÐûeßë(¨¿íuQ¡wzP¾‹¦|á9ÒÿRR”¾Æ”åY5^:r0S_îA³ÅÏ’sÉMBXc¾’hÌ»ùžF}¸`E9†F.¥J¤¬yÂÚ“‹õ+Ç38Són¹:g²·F– Ôa±J³5ùw%Þ©A“pÔ,ýÈ F}‘¸³U{“ºÕê8w+4Þ[SC­˜’Y/=?[³7•zÏcCr”+cC RÄjÝì–Á”4š7(7¤`¦ /˜[V[ü¼ã©uN§hÇô–ý7) e‹Ÿ ‹<¥gJ¥i$?:ôï; §ø—6®ÅcV+^6ÚÌ¥Eâ¿9H¶l€ERÀL‡'JŒ¨deZHic• ±n¶Ýx o;àäËÊ¡*`+ÎZª”€à Kªç «+¦&Uéù«¥±¦´«;¿â'mI8°Å¯MÚ’”3yÏz„õýÖÐbSó€Ä¾Tª­RZÓU­ª€f™âìkIÂKÚ•Kͼœ„"—ãu–¥¡”ÌüÜŠ¦¦%fÉD}h²§Y…Òðu·’ZÅ:´jŒªC÷ÐPH½§vkd†tá‘E794µ’¥I# -ʸճë«Ã5 ¸ñVY Æ¿ógÞïoÏ« Qû<2OÁ¢–."W@­þá@¼Kd2ÒPäó«JY÷=dá笀I½Ä'Ï´#ǰ½WQÆÐï’ÃQfÙäðxþR¬¶iáÞ¬¹,¢šÕ*õ³uœwjfc1ȼÍźÖ/^œwÕm‘ð<‹;E‹îæÎJÇ_§ùšM}ˆéJcS}×£'w‰Ýè»Lü¸íƒj:ЃmS¯KDÛ7V–#;âc\d ê-ç ¿å2·ì¬\±ØÆýþíR$n¤µõ;òÞ{pþÙáI}Ôõ­2ï·/˼!.Ÿz%æ†ôœJj!n_rƒÚH.Ÿ¦²ÚÔTMâ7e/jxu% –orÚIƒ©„oÂúÉÞL1wïM ÿÎP?F˜š77ò[ëEÌ•¼Ï¦¸Ê ’#iV¹òü õ²u´µŒ*´„I1{Ýæ0âÌá÷çÅÃcµ‰ÏMÊs0 >Æàfw;VÀ5ë+{Eëµ,’Ø´ˆ­_FÀƒŠ«Â,ÿEJŽ5‘½"¥3ÐÛEÜÍ…jÁ¦ï¿Ä}¯?áϽFâà"húvñS“wû{¼¾‡››€¨—¸¤x‰ÊüÇ ^0›Ü@}Œˆƒ›0³¦ÞÚ‰·ÈQÚæh]eí“«T‹ò)¹j ´§ä˜sY¦Îy@…d‘®=(ºÅ5ÞÞ‡Còg‘âàðEku:o动n»­’T³3¥.¾“cTS‡¬ë:Pà„Œy«¸—ø{Wèê#7ÓøQo¾vµ-†ÔªV’Ns¢I2ݬÀÙ¡»¢bNÊ¢E½YM;üÔ“/$Yvµ®õ½v‰‹žœ:Ü (À—¸¥Ü²,:µ9Ï?o}…úê]¾‹$à9ƒË‹©áy¾\8¦b‰g!Z*#,ý½ϳöËP»Yí#’³­åü9 ÏÎR+›×8¿š.ׂ1`u0%3,{€G<ÿÊLµ„³•ìZ* %·¶úh‡XÓäâ ·’Óê3ÄõM±†I­CÚŸî¦}Ü,±}oÍC[3h¯?°M7Ö>,º¬Å2}ç~ì¦Ú‰5…‰§ðS79,Ä ¯>­X*Îõð¬*¾é{Þª%ä¼20d¥Ñ%ÔÝ¢E2ã^Å-±„ì 7Í ûïP-"E8€9çvR;MŠ1ánìçâ¹}ÌM$†]åÛKîlµ¯¾×‹s ‡¹Êð÷ª È–% ÉÜ¥Wå6zÞ’·g.£çí»%‡èçt¥”µXÌáã£í+GbIŽ¢éEJžË—“;¼ôÖ‰À‘s$Œ Ök®³KÕ±ÖŽ4çš]1Ro™ë­Sl;ç®DŸ£:WE†ðqØ\ŠÕcM€Ãý Ò) ~7cäÄ 7"ùrÞ[]ü6ÜÕ&ÜUi#™º˜¬ˆ «Ö‘×ËqÜz(¢G<ŽU´ä¸oâ<µ¢1¤ôúÎ .õvT‹Šö$ÃÍÈß§¶"ð~Çd3‹×D$ý»µt9¡¥ß§ìSª½{ÁJ—Dqýþ5I†ezRŸUžýå{EEGŠòZL‰n¢šèC‹<§Éµð«ÜêçêXÓ³Võx¨toÔã¨#5‡ÉÚ¹•p„¶ɣëS½ÇhNg³ÅÔø'’ú¯›ÓÌÕ‘2%LÃæZÕ›¾Y! æv€Y߬LÅötü«'¬¶A®,*i~îíRµTC÷š¶»¿½v$EÜŠ)ÔÊ`çIŠäƒ‚ÙIÚöhÕ¬9X˯{–”˜íî-yÌ’¥ÇYÌqÒ²&0 Š!XçoÚ3e®Ï°O ã´„ò¶|ó÷nù”©M=Šÿ¦Ô¬%öøÏ­ pï¹VA‡ÛJ¶}J×ïÃë.šiÇ]`ûé.·¬; êñÞø³¨?©Ÿ\]%U~©uÛ¨ůUUŠ™j•ê§åw›²¨ú™>ùåöÖ3`ª~f—°zoxqߤÒSµ4Œc¾TNÁ [ûçFæ¯Ïk«ÝRÍÜÙÜB8¬QÍe˜`Þô8üZ#SäqšRí)>,m¼] g™C+ ¨«ÞêŒË2dÞF®n -å‰\µCd,mð«jJå2úªo¤d—4qDz_*]•{.ذ·’?¿·á„À’ÃÛF7’ 88è9vÊÍt+çyšù'ø™IÄa8äõÜ´Ì >r>Æ.f¸p³˜„p§›¨}¡E¶#©¹^TëmrpY[ëäÊ´ËZ-]Ú?ZkR‘W#ÃKS^.Lû™r]IŸÞüihG‚öfyqC.JÜ7ôØHÛrâó+¸®âó[¸¿¨pÚL.Sç„CkÉ[¢+q_šÇ fš™)±f-ãH½E)é91ßjìž×8ÕuЉyH$©f£¢ih<qS‘á …eêÆÑÉ5CÊhÃk±>ƒCnŠåÿoB¬…7ÏЧ ]Þ¢ÃÜ\‘èàñ¯rßf¿º®+•§5n£wl8âÍãt€%¡ ÷q%JÕð‘TÆ´ïéúJ›¥1m¸d#Ns39IA¢BME–D¥ä ÓDåX)T­1Ö¶SèºgI²œ×–-´lÚN¡m•(›\åqXº«7µ£krfYf¦›4»²ÅÒW–@ÛÝ S ´ü ÿ h¢Kˆè[øJŒ«g{€!ðS³@°?;† P-/Ì"a.±ÖÎ7æ{á»d6vÒOÝDoäæ›IÏab>ž¥»»&õ»î°ob$Öѳ(.V[ žt)kømÿ° zdÓq ·[hh×l–Cú8r)z׺‘ðFy:•Bì%è¼0€Ç8P ¾[íM/ƶU“̱—Þ?³³$UœÍìl‚e³éÂ!Á«‘¼ûoÒ„H5jBkÿa}- 5åÚsÓ¤‰ÖFŽÎvó Y¨húƒÀéÙLɤMà‹‡-÷] "µ\´i“z|cLï0Ù¨iО³W"Á Ѷ³¸;×[ôYJ4ô=- ê•L£Ù/!ÁÛÁõï•™Í%z‘(‘<2å@¥e‹1¦™4f¢îkÃáçÚÞ6 ³‰¸^¬Ù¦ÅŒ¨ýê9 6qGû8OÞ`oø©¦À%÷…¤˜Êó6$=~fúVV géq£“Lš÷×ïÑC!Mè³Ó×3½B(|)¬¿[õ$9$™)DZÐ9˜.Ôù&&Ý…¾,Ú‡H æ¯W5!››R ~ o— ×W³£‹$¥S4yÜü"3=X1 ²§nt˜„ÕÓ#q°Ÿ,ŒQ¨í-=NIêž%ÖÆîž²žº¨èÁžÂ‚®¡i/û&žZ•àde®^PóÂu帙ºëL‚t/N‘ж›`1óuc²ãëM.Ô¢)z(ý<•+jn÷¥šv-ÙßlŽ×ëïøsž÷z)úF“äÌ$4ÙÇ=†¡±¼ãY_6Ù–£6ÛWn‰á/ŽI(lº { Y†èÍÜMø#ûôXÈÐû]ü|߇šXK|€WÈ?fónª)¯H‚My“«pÏæbS“ݤ9FB¬×êÛz¿wÄrV¤½5ñ²î±"N‹X@è±h¡p£Ã9ÙšU•Ò]¿×(çï¨'”S¸¯ÂÉm÷ªÏHí iÏ ˜ôÇx¤?¦*pu3¹kÛmTM$ÜØS0ëWü™”¨FM,k,ÎOqL1ãûks•ËÄÛðÍë;ÒOІs¥íÉQž#ç™Íá®Üme3˜,òl<íªÙëús¤ú'’ü[i"£u)ßGN] )^¡Ò¥ÀÙPñAú/amæÂ½­f=+ï=Él`káû=ž^ ¤®“ÒþM¹ôÉæ¥VüU% t†IU;ãO’UMäTа´2ŽÇ8A6*ÚX¬¢Xñªäš‚$,¶Ó?Ê~5%tJî"bø%æKù¹üÛy9E•J9hH «' µŽ7Rß^òOÅ÷”4€õ9°dÏ$×îû€Mn“=WÈÖl”Å‘¬>OSœ'íÝ$Ûž®"ñã¿|ÜÓ ?ÍõÑÇcw“ ^`Å+shõÉxKZ7Ùq.m”öÊ ’w„kï!Èt2O˜GçÁm†ævÂñ81üüÒý¯û|±‰CðÿXv±’ýMÌŒ+É"RGIã¿GEC ƒ5‘[j€L‘öV [Ä»Z’¥© Œáž•~Ÿ«•ª*ÚÔ_–ÐÂýq¬ùp «ÿª‘$¥e<­/Ž\€$¹ÂžöLÒÙJ’ÙÌ×Q4ÞIî:* ïéçqHVɬ$®"õ$Í‚d¹×kóWÑëã‘t"²k»ú;˜xßqqïÄ-Þ×÷…ü³g;:óO5r±³r2ÿÔß±•ϯ¨&é5y Z׊…^›Ö’ävOž(=ÙX äÚß²obÁÜrÚ’þó$ž/üñ¾îKí¨ã)¼Î0¹°)œ;„gÞ×\…la/’™Æ—¹µÎOåoE¦êè ÁuMZÏO8DZݙϢvÕä­®ø&êÏëì÷Ÿ;Ç„‹¶^=ì<‰Z<ÝxJ&àä}V$P3¾ bEbä1^þ‘þ2’ìÄŽ?·"T?ß?ÝIÄ@‘?I¢íkñ¤ÿéV¦â}“yõ¢£3—çþÜÀ5ÿÝ¢©Ç‘óMSS5ïù3^þŠãPò_&Døßo¯sÎø5e¶ˆ§& •…|ø«•ù#ãÙ’ñ/çÈ:ÀŸŸ§Hĺ×]/*Â9]5”ÏEÖ‹Â$öH¬÷¿êI&µã&wçÙö‘ñU‰}åϽ~²Vmø˜?h¢™ånï£Ï]]P9“L8$CÕÄæâªw!€ÿÉ^hIé4Ö&¥ü ¨Ö(,\„ó©ô÷ÖQ›ª T‹=H…4ªäç3;UúgÚSöÑrÃAëJ¦›v‘ë°J‘ºKù~v¾Z2û(úp«øÃhW³‘†V,3ê·œZÏß·õúsæö bòÓ%{H,ƨ7§6ƒ¨,f.ŒNãðÞ3OÔÜN9ªZ¥½‘¯7 p­|=´óÔ8¡eŠÞЫ·8Ö¿í4‹Î$íxáÔP§"É."å ëý3ÃczÅ‚5)¡Ðœ™%M¶K0g&6úK•Šž¡É“äÏOaerêCs¿Nz’íÕÇ7¼»lê9lK9¶çñŽqL侤-s?2¯Ð>§´#Oœ³FêXâêR6ò¥Qø¹ÇCáY†©pœÞZò˜4ì.©VEk’zIËfE¯ßóÅõèý¦Fr^xÈÈr¾»Èˆ<Le¦[@çi>ôÜäj£’{±É)Rte›ßwËŽ73ãÃH°¦fñÎÌŠ²{À-+%³iÜ!Ç CF¹rŒó(ò[™) E~++'¦7›’84^ÏЛV΄˜{ßÄh<gºÀÈÌïÔ”LE8Ýû¦Ü c£ÕÓêKÒâÕȾ“NlÓ† 2ÊhHo¹Ô”\O+÷ ƒCדŠU•ÏéîlfáM8Êp²—ª‰èt³ìÞñ“Ó뒛ѩ6wx–°ºçÁ ^Í%JnÅÔ[]ÓK`§iòÀ¥çjUœ¹Mo,=a|ÊÄ)–® 31u„¢¨×fv组¢¾þfßj! rZ²¸¹¥=Êyös«ÄqÌ…‘dŽM5U"©j¸3’T¥£©rá^(4«RYrÜ‘‘gÍH[#)&®ŠÇseŒ°žaúŽØ“À=#¹¥ÎÁ]¿]ù:z¥Çã±Ms\å1›Ç%ïÈoeäùÏ«“Xœ®®ÊiÉÎeÏñÇó(?xðÙÙáóÏ.¹bd¨Ò_’¢;Dá)+_gÅ uú‚•,`W.µú£Œ×¸:Oeä¹efÅ{ظ¨l÷ç=–øKå©S«w[Ü’f;¾¶å¼šÄ ÷̈}¤›*ƒíÝW£LrŸìÕÑ!ÃÈhòò Ç…¦Ål§¹\•tç5Á˜èôŸu˜/_ˆjsXvÚo—,×/¥?Þ+îò}Ër<û•lUã¾^徦¼‹åùn¼e‘í2·×îtÈF¡´â—öÚçvÚQ{ªkƒjShJ¬2—ËõyÙΦ÷þjqÆöžaJ2m”®6gÖôþ{¦EONªIœq‘S*Š<=cù>Óò¬QAUÜE%‰ (Ïë©“Ø€×½T‘ÄïGPyÁû‹œnvõµ0"ªÈºw½žÒÈ]3Ž5/oKßÖþjŸC$¨FîâVAލf;AJÍMÄ)b—?$bT“Óø þèt&éÆÐhÚ!Fžvp/y‰årÏ)½ðS¬ö8Žxï;)^"hìœÕRéÛ^‰¨ å1ím£&@ÎNq wõåSÕî[Å—M7Çqûr‡rYU|ˆ®¼m'XUþ”³Ñþ¶çn'hü¨  ^×ö­üøvJÀ+õ½Ie›C5Ɉ»ÜÈ 1"ƒ¯3¤Á‘´‡¹OpÝ3³çµÿŒíóVYhççS{~/íOKVö^ ¢æ_æVFQØ„PKU3î ¦¤iMœjªËs&9³ïŸ¿S—çNræµéý#©o¼?Z–Õ™´°<¯²ºËY&š{àÌ}–Ñ»~ÿNª^Óç;Ù.gj=û·û¡<•›é½D…ÔòÑ2ÄÖw ÜÞ¨—À(/©Ê¬vi7m…¼ ͰIË¥„¨œÞ¬ ì™5i»eòÝç¸èý÷ï/ši;™ûbkOWÿÛ,wÑ|’§µS*OËŸ÷ÊgÃÒîöÒm<Š+.ßÖ™l"wî›×@>îQY·=å5ú|ýÔq³³Iºïx£sÓÀ°ÆÂÿÑÀ‚K]É”¹îšn„ :úãèþs=sÉ`ŽW°/¬5ûÄS ÑNÖe½0ÍUGµsŒuÙÈä€n÷«~ŸJH»é÷-ÔÝe°^0 ì…¢ã1ë—l£B$‡Vˆ“ Z],6¨²ÞúmJK_ý¶ÙeÙo›]Cð·hFhp­æ â”íÉeÝZWó{+2¨–YaÕ¿ß^Céu¼úoŸ$6,¸Àf¸¿³µ°ÉÍÔ…–ÞÃé`dy=žS߆ŒOÓqdÀä…gæ:³oéž5/P½~rppjakKZ~\¸ÑTÁ÷Í¢ìS qŸÊ§¢úÔTšËÁ¾“ÆÐßú›Ãõà,UŽ¡è¾ -šr_Ð[¥¶Ìvµ‹Ï+´©÷ëóÌ‘¨¾Ç¹óßÛåçç}²YÄO:YªË×weá£X¦ø°AB¬çÅ€,rY“ªQÜ}•£­âq²¿'>QdLTs‹•:ôHܼùg•ØÕ®£ªÂÎꊴË#«%›ýBï ü..eu^”I…µ"Q¦á;—¢NYÚœRm<ÓéÆdÙ ø$÷<´rf@ŒþÚùz>îOÜ|1‹âÜòÖùSßF5oš>@‹Ÿƒây¬Ú-Êmkv€âÀ–&AXÞ -õ€²Õ€¸­–¿O 6뫊·8÷âܽ@§K”B{ªºKÁ¥‰ˆøþÜŸd(w‰Ÿplj±î#~ØÝf+`¿Ä–ºÏ=yÓïW Ès÷†›Ðí[%±D¹FéHd«,õ×s§‚ä3‰gâñŸíoèü[¤²ÁM8L/ÀŽ;!ÕÂОiq®Ûžx?®”ö–÷•üÏ£*œsò€õó5y"\ؘ-„ X×_ªâ“Dbð»{ÚûéÉ«ôûà{«Š2IEg¿=EŸºøÝ÷༫ª;ý[›ïüî¢VCò×VÍV†û‘ðBmój)òò¯HvŸ*ôäÕ¼á›×¼tÿÍÄx%îºïæñ̓îõ­ŠºY¾î9è^õûë‹â£0öÙŸÑþ)à¬ú>9K|ˆw&ì!>CÍ€}-~ßý±áæ¹´!>C¾â/Ü[˜`Ìl5îª\ßçžõiúùñ¼š|É­ã'e·%°ÓŸ„°ïõPµÿù©ŠÞüeŠIƸ´ t”Œ·â•“")^@¾_ñˆ…ôïí%¸N\·bª4ݾÅSÄæ/KÅ÷쌩–<ïÙ&û“jl>óȯŸ´Ÿ£þv¤ýX¸àæ1…üÍýüÌw~•Š4ugß Àžu³@͵*ȤL:¦qÏk"õ"í.»'®ö/KïWh®%RëVeõ—HÑË¿<Šæu­û¨¢m|kñ˜°~OaOX~Sõ‹ß,5@ü~¶P4±ƒŸ‡ɰÿXâC«`S¦؞ܱ¢|ë^|¦|b9Žz ÅD‘v^©Éóßò¾Ò˜èȸr‹ž]9òü$¼ÙMìêúÔì&¢û²U±GÞ⠆Ļ…»â?Ço!´ÿ"KŸ"=nÑsrK÷ )#t?yÇãkßÿ)B>WYoñµîùé.UoQÂä3O‹ ,&5ï­G¡ük›•ñ_Ÿ¹§}Mñ­^ú¾*˜®»à±_øiØè©ÅÒ^8käAÍîd¨k×S#È›yãó‡æZR2>ãù߈×ÿÏø¿õßÿÿíïûÿŠãø³Èb¤pÈ–Øä¿zn+T Íu>]¢Äk½DÃ<ï0’WWôº áE³8yv[óÚNЗâß‘scŽGªÙ³‚ üŸn¢ÉÏœž@~ÏœÐÖ‚½ÞæÂÄ¿| IÔÔóH,üPD0ãSô÷¶_;´›ž…lÎSTb¯½ r·¯Ü"…!ü<ï6SLm«=T_¹7]„ºx7®gCä%†&{Ö}³o¯•]ýÓß,k+ŸïIY·(`Î;,aÅ}kˆÐÞ¹öG~}a×oóë!-“st˜êæœ êm{Ð]ÃnŒû9Å9¯xÔEÌB=ê=%P—QbwÑ4–bŸ^(_Ƴ}à¾E'p8¬›üžöm³J°³j>é}ö}׳5»“j;˜z패‡ª§ç¥:}9$ðíU¶dðª€òÚ?-§Ðþœ$Y~¹'—£ ’Ï/»êïQTQÈ[ö(ªU¸”ÓÅ¡-’°4pMÝà.Š¥KlÒ©=5{G‹-jŽììIöÜä»§¸µ¨¢¼z ¦`ÎgÝN6Mšv…k´òŒ·Ü iû»,I‰¶Ž°Kp;ëÉ&®ä†›1E™ÎҬȑd³e±:]ú=ž¿D”Ù>$,q¹7Çž¦ØjwbŠv’ÚŸÄ™,ÑL÷Loáõn·Ë~ÔåhÒIàH]1±¦ +´èìQxeï?$ÒtØ)Tè²å½¾5dž›¾ú–{ÍÓdùqû¨žƒJh=—hf'ºõáçÑMÁþ처ZÖíÅ2\€Ä·®wôùsotkÄ/©áE#~ëí) aÓ •Df‘ïù¦ãٷؤ¦þƒÈq/øè£K{Aª¤]ºÇþ­õˆ²'ÍÊш¿¿®M)°]¡bPÐ>R}iDG=äÂÑõ7ÜÅ)HŠ{iIl1£ ”ÔáÝéÂvÚ'FÐîëPœðÆŸ¯ÐšD4®ß¥¹–—N%KØ©ã=»\ÔIí¡=íqN±EÓUÏ)ûZ¹vi©¥°2EÝ*©ÜögöéHN€[‘#öN9S|á ?g¤+„±¦à¬=§®‰05µè«„®aõ¾‘¢”šÚv$ð`­¤vF‹µ»oÀVì*QkéB%ò¥ù.ýõÈÞ'ˆ4ѳ·Ù5#OüX"nìžšllD«»)(A±u>çöx,îÕ_MÁ¾Ýô_&Õ'¹îÁaí“yÁ¦ñ©öAàÉαoOÆ)ê|ŸLsäÎ_¦6›Úf˜’Ò”¾ÊâÀªŽŸ­©¾‘]#­&9#£¼­ÝMy”Ž¢ÊÉ5󔂹j\ž¦)/_[úù–.’Zåt©ùþ"Ï_TºV=LWk·ªgftÛ²ÊÓRŽ“Sxw7²¨ë°sJezVurºc Ëä´{¥•œ¦XSmöšSµCmú¬¢j¼ìîR}ÖE™r!¬ª›É)ðä´q¯Ò¨“Ž^¿];ª =7HªUÅ,°Qä²re®¬«"Xæâj£™§J.«Ü:)ú÷Êc'hʯ,+¤ tgY^xWí£iŠÎS?”ÍXoº'AØkµE4MáåæåÐFï5“û©) e¹Ã®ÕÇ/iè(’z?Ÿ«ß³¬*û(æìª]hÉ9Ü’>;ÙMÞrI;¯öMC"Î*eWV´³kó+DÜ–vkòMIJ–€ï¬Ë??³ËwäÂæú~R@U²’Ó¯*¤ÛkÒLµªÍÅVˆšÂ+wˆXUµ– *ªâœÜHÀªu*<¹¸È.{÷Ú«Ùm¡Ô|ª@L»´¬ºÚ¥µ¬šMÝõ ›BÊ’UŸn©éÇ”!õAmvù÷S\L…£æëÚµ5TÅ.¡¼K×l”È%w³ç¹Þâ’Þª4K.Ïj;pY~Ýœc޵{wÞí²žY’Ü=‡sIOÛ=¿]:n) èá]ŸfÏ|¶ì4ÝÛO´7rgý[Ô”c»RÝ7Û‚!÷Éëd°iyr¡È¨fŠÞûN rüƒ“ÒÇÌÆÏYÜÌB]C1Ä*²@S¨ÈÁÂF3.*d(Ê(MQ^îs.R×Þ¹ÝCÅ}çÖ–sdrY=[ÛaNº<Î?ë„Αĺ·¿Ne]©x<=(žŠÇsåv¤q7"4è=“ùµEœØ9ƒ4LŒH“éün71E̱¸ ¥fž=F7;žÞ6ö­+ÍÛÇÞ¯¸Ì&(XÔµ­'‡¶÷Ô,TqûÙ~ :âJ]7iiOUF„O LÙMJ. Î|N©0¬-4cHí?ÕCÛOÖNf'ÓFn786ýa—6}6Êg £H´nåš=u–_Û Â…Ä‘4ð4ØÍÄ´âq¤ ­Ú®ùûª ™òøÌìQ@DÔob0å†F(݈wb¸@iþ£uŒã}Ügsyxà:»ÃXŽuŽÝÂ]ã?÷zHîsÏFUe Ëñ çFê” ™ÚwÞTQ}e=Ëö4MüYCD®ñ9ôv‘•ƒÙa¡”|½kIäëÙ¸Na³£×Ë­¯¬éNc#~Þ¢÷'æ;B¾ÙU•jÚwM¬Yã3…ƒÏAÌ–U$–3€gbl{˜-…,xNk6bQˆœI :ß™õET@ãâÞžxX%‹YþÞ(ºîY-ÁQqÙ;ºTr øv8.ü£÷L‚#ãÿ\‡Aÿ¾%¥ÈÛÙé¬ 2J¾ãõ›OÍ%$@ü6‚[{OûKi¢ii÷Øî:jÇæ½”3r[KÚÅ*id¡PIW3q œ^‡¼UÍ¸å œf_‡¾­HË.f%ë¢çC‚‘péyËA×¥%äíç.ÕïaK‹®ý[®}ïì¾UÍèÈ™M­p:3W~q–¨¦JK“b)ó¤f|„{²á F}rÁdÉæ•'i}&eýߨWo2ý5ó¤“Ýï.§óSJþëóœ/få€ÓÛyŠäâjëªCàËõôvqÇwVUiìiz.Þîeɼ¬[çš%+ŸÌ)Áسäëç–f”{—óä [õãd-Øæ }M駘/! ~¼cÞPã0)õû?«ô7¥‡æÂ§è®r½ÃsDUß@¤^ü¡‚Wðq$ðêR[¥»f=à@}á©‚ªÒ{8ËÀtC½%µJƒn¸Ìƒ}‰•‹Î%õ»IðÖ˼ŽÖ/5Þ¬UŽxfÇJ}Œ[pì—¬§9›\[;œÜ/Î?Rîz "^èE~b‘°È D<êtZ ¹Ë7cJ¦»Â¤¥˜eaÁx3¢\O7gí]»L ^ªçJŸ\šs¤8Pµ³Îz/¿²>½‰â`Ê,–ŠLý>=Ë~´»ÁehGâ²}ùX'¸nÏnwÍœ<Îp©‡5g¹Ô}ù¯ŽªLØ™‘TìûönÁažlŽ.qOs ÷½ptH¦y{@q  GßúÑ$ìã;\üÌ;¡ŸŽ©å6]ÅѸW×I­Ï¢jÈ PvI.´È@¹O T\ˆÓŽLXû YµãñÞÌè›v%-êÐ(WªBnþ»/ÁÔ®á&g_®›ItŒƒž ’燦Þq„—ÕËòD7)V[ýu³ ó:ï7¤wÝl´à¼óKßÐoæÄˆŸøæUå90Á d´õ‚ãé«¢#ãþáÊXÊÆh\K[/b©nçÙb 7ŽgݺÈè¶g}…âA¬ëÁÕIßj‰±Rq¯Ü¹!5ÌíƒaÉ캭N\ˆ×“é@ujiÇñÆcÈéMȤN©5±î™Ô%5'­6nCuž¥:W)%¹z¿WîÜ…Þ•4{½ „ ¤‘êfjP«Å¿¿êõ*Ç÷ñy,Í~m'ĉµ_¸9­Á/èª_Ô:V¾r1oä­%A©M²;2<ÔLþV¥‘›àM¡u €‚Ö!'8ùª„é†×ŽþhÊ“D´òn>Ý_U¢ K7ØsÃ-É¡é¥áÍgZ…Þóó I K%¬Ã÷Å #Í–Þ¤ÓÓ0ziÊÞ$6ó3üìbB¬Š‚}OaÆ“p)fQÛÅÌdYËNúRr|;h÷é­ —‚–ä:iK´Ê(\L— ©PH{c[}—òKó5ÆøÑN¤B…XŽ*†!¶1ϱ¶¹Ó·‡®Æ~3ëì E±Z˜éD¡iD­ ý<ƒÖq•Ýx¶ÛõoØ)’×\ÉÚ«Düd'LVáïp|%&Å2orP¬•—’X¤²ö[Q›ó‘[,–¶q§ adZ “"×y-24¢½†º¸Y<£ó£nŽéç‡ÀÑêY¤yÚ³3óê.ØtÇÀ² Ãc)%éêe ©çÓÉý„ƒ‚¢Ê‚L®Ó½ 31ךk°ÒRB´"V9L“ž¯dÈ0«þ!¯ý?Z‘ÔlØxÇ- ŒFx6â±=ŽÚ»æÀa{\m¯%µñyóÔ÷’}y“ÎÒ#±^oZ€’XçÅEë¼Oì\P-Y<¢o‹¨®¾BËPYÚÜLà+Šš º]:DÄzäï+Ùç@¼Ýjæ,UIqÊ>ÉGWãjüTbâ¤dv8º\î#«øÊz.{ê“Xÿð”`«¸Êð•Ú2.Ö\‘`îÌÁÑI°ÏLF¡ÉM`odö}fòi…çøQ¹Jæ‘1[ÔÔ^YAQ©…³ðÃÂ1"geÉGÛcZÓ%ʼnÅN£bÞ‰œdHã¬eQ¡Gs¨RÅë€ÑLý{E[avþ2Ê“žÊFúuí·fDáSäÍM¾8cºÉU·— <°ähT¸–LO)ù~zÉnÔÌ+=qM#Ó¿wÁïOóTf•úö?Í /B‹º¿ ¯fgÌ:`-Kér-Yû mKZÈ • –ç¨CÒ›k«ôÈyúö•ÍÉÐú™e}Oø¨ë§’x ë¼®¶…ý]ßJ®8…ÁÁ)y£qhõÏò¢XÂuÃÏÝsΡÉ6r¼ªŽ/¯j—@(\gvèãÙ´;Æ(DÔõâÕ|ÖC„Ä9²? 4±:0à;ùÑ=Ö‚"Aò| kwlU ìó«¤vê¶Â8·ôÖ’·²uM"KU¸x}jÖª™í÷·m…ø‘ é.6?‰Y„Yž¿ìôôØœÉÚ”Ö½* dØäîxÞ—{pÔs¨èµ¦ku*T¸©JÑòþ†AÎ: ý„Ö…öe¹®!ÎW.Ò"HÂ#ˆâzÂÏ- ­ Y9ÄD£¯×œŠÜ×uDƒÉqZí1ANnÓL)®OñÕè’ÒAMðÔ$w!êkò1SKª²¦N’îãS¿n±ÖÝ%³”ª+]ª?¹®køYqXšä–èûþ—‘yáñw02Ϲ›<,¬-mÕ6;enmHuEiˆZ@<‚’µ&ôey´‘;E¡‡¶£òrZC½Õp×VÌñî¡¡uÔkò©4YO¿ý?šìlZÎR•~“þ« 'UäªÄä`Â^ÞRr‹ú҆ᓛÑi45Ù‘ØX :Æ^¹„=TÀ³#äÖÛMÌ®JÙ«n/7àÒöó~El ¿‡Âo˜4rímN·"°Á1ÿ€Úç$.ÐDz}~¼je벬õÅX[NÌ­k«VíLODy tAš…åù5\’à‹Áèñ,ç:Òìô(¦8ø€ý± ¡QÝéÅS€C«Nù•.² f>±EZÚ8¯JWª½'ѲáÁ8ø´àŽâ¡2ûâÛC6'7»¸ÁuÇ-àânäúo~Jtƒ5µj:~ßÚIÔÜûÙT¤eY•peU”…mjá–ð)XC™5þ–m½>ÏÞ츹üUªá'Sa‹UÞûó…‰ãNÅÞ®®%0J/wŠ;M•ŒÖuå©ò0½–h(Z˜ÞïKéËÌ:í»'¯›ãÅÇlß›Bq¾Î¾‰âS{â{rúlÉL Åͺ¹áïtÝñO¥û›†rüƒ—CVÿ,jEÛu&Íó] ;áz ²áçäàÿa@ßgCg0rÒé"¡g3Ë‚@î ¢¹yRkþrñ ¸³alÓüiät%¾ômr«$‡#nrG¼vx¹°§fìà"-’Û,ù$è,ªÆ©lgºó¡•x€ünQ Ù´$Þ»Ú‘8l È…¦§©§šÞÓToòC_ÚÔ"í뿘•L‰°ÌxÖ9%?£Š1ÊägéúÅ USÆÔYÔá ¸Üƒeè=õÅÆÓ$j33 ¬šXÕÆsfQØxÄ(µ'Ù9±’ ^ÏWO“×/nÞ/øc¯0Â÷QY~*GÛÏܪÕWœõ˪6ž+É«¢ñ̬Òc2¬Ëã¶¡«ÊKxdXkvöáQy³ÝªÁ39‚AW \²¦Ò=^™%IÞÈ5gÑŽr«VÕä>'ׄ#Ç3õù'];øž"WOõRfÉ&’ZIïA© wõ|Q—lP*«É•ŽU‹;ÈU”A#I¡I' á»ñzÄôT5½£î—ÜZ9iÉZ-Ôš`k¤¢ËŸŠÕ©+0VrÆŸ‹¤TíGøf¤Ãí„[l`$ëáåxŽÜskn!Ønnwm ï/¯ntN»Eƒ`àö¡À¤j5Õ6!·¬ÕI§°ûº«úƒªÔ¬)ºÚœîVí³ Å•çt²ÑX›)8`œäÆÇª‹ªÖ“HðjuÊ]¤×ÏWo½"§ñú<µ™6¦9éZÓ¾–ßç öZËóø3¨Û(xÍ£ É(¶'8øž `ŽÎs÷"¨éN'öÚ;.º—SlKÞßò¹ÂñžùyÄxR»˜Œ¤Ý4:ð›Ú ÄÒ_ºMcï-Þ1÷Äë…?7ô»ÎCSÈÌE‡ç§&½­Žnî*ih>oêñk/s_IÇ$eç󦞡õÒO¶êɉ©Q²ÏO?30M“:ÉU'ë²Ð>z5F&ÙkìCÛ7ç_Æá+Ó^Èe®Úkpëò×™4=q«t^ëÎ×[2œ¤ÓX¥ËXMP ís‹Ë\xP€Kê “5SŸX ;uªbfZgÔaf©Þ[”°ëóŒŸ÷½ü>q@¤15™CðýŠí™áã §W륡[Øù·þØqìÜ3¾µ¬– »$3'‚1¨sR^žÿâHMÈÉ®ý82âÏâÖâÎjà·ðÖ²²h q-#\Uíáþ&n½‰[3žzN¬k_.w,äûùïµüy·‚}™ápä°æûÝ9®ÏN€¼·Nn*W}†hRÀ?©L%p÷Êhš¹¯Þ Ì1-p[‡2UÒ€ðº3Ò„‚Øã)S¯gÁ©±e„Äch¬‹ÙYÕFC»`ò4—ŠP ±q9»ÆÆ: kŠJ?m‡j’ÅáÒHetø{ŠW.šQí!±R-·÷²“âÊ>.ah$osÂ% Â{YÍ=Œ`¹²1/e¯p”vÆáæn`=/³šŠYh]b7À&9„Œ8÷Dï&{n¯Ã%ŒàßÁcW ÜnÂÉKåY]±# xQjãN€þµ<Ô1¥+’Y98Z–Ù*šÞK;×½KÕ&S­&õí¥ UJ¤)ñCæ€ÀÂNæÚ·*".ÉЭä1/Éôˆ¾ÍÀïŒ çØ;=ÉÇÜ,!çxTUbXsùÇö€Ãë¦Ri-®ˆP²ò:¯)Îla÷Ç µðΕµl«VHúWðÂ,Xô$•€ù¼9Á¡÷+xšCË#r{jÀ"L®’Eˆ¸y š¡å9È3CeIkù}¼/:¿Ü^K¼´²ºÚ>DZq€R¤—1:N9Æ¢Ssvþ<‚¦ðVGÚ»^7!\+rÃìPà&§jÒ)<ñãxkUg?<8åI‘žß0x"áû•¸×¼Ñ Ëý•mÙ䡼¨\ì2¤8Œ§ )':µp‘­Ö*‘Wâ¬Ìn-X” …´%âž|í“zï½kë´©*t}ÀnNý{Év“¤3ùÒYÚ_v²€9ùșޱ$faù£ª±ÀˆÌ´Ç+nµ‹©¦ˆŸ÷6üfrSâj |£n#{6CyXNfO–¢i’n`àùzÝN<õ|5©?ØPåy¨Æ[[Í]Çà° GÆfžŸ‘ç¡ ?›‡Æó –ˆ-°¸Ìƒ1 kÁÝÏE×4ìî™`ÝÏyï¸çÒXX@ˆ&df ìוGçž.l ÙŽÎÕÆkN²áJV»áìÚRȶóùqÍ?¹ööÿrv-YrìºqîUh ÿÜ“zÿS7âì¾R•|<ñypµZº•I"|—ãàyf ^…~Z·çñóce1—]ì›Sòb\báÏe޾!7~û¼+j|اªN}Jâ ²˜y,±Iáëò÷É<ûä.71ûñý»$ߌ•(®m_¾Ü0NtœÒôïûIñ:¯?=ÿdñâ< Ý›•6ö˜$[DQŸI$6W Ïa3¾’€e¶<±@ˆ¹>8)þó&@˜1û^nB =^ŠsÌÁß÷^I­¥Ðú‰´rŽÝÖY’$ heØ"?&Ëäm)T-Åù<8šŒý®rl§2p³Oƒ\è¯Òl¡’0ñ¡ŽVTêIŸJRù£jk±JÒ¥ûïsyî«Å–“OîKö‹÷QŸ k­|¿ƒçSbôØ·lˆû Ž ˜ÆøJ\ãßT ÅòÅçEÞ‡Ì7_ˆsBÜ—”F:€ äßWÉéëRëRöí’MDÍÜ™ŸŒ þþyﳘ­b[Ì—KŠ /ùÊ ÎO×?¹ ¯Åß/ÄÐ>oWM0N¼èð¼HYn1æÅ_ûËóz¾áy…}z˜Ú …›ŒïpŸWS‹[ ÝûA[ÀnGùíÐïµùýIn^o¾E±ø‡‚NÖ/‡ù£ã¾›ù(”(V8¹©¾ ~Îç=¸#?$ÒßIl£8ÿaÙå¹?Gø~åý)ó¡{†£ ÷![åÃ.Å]øk‘›÷±}Ló!¿mÕGÇ"‡SïïÏ'–'~Ÿÿ¸®;pÜ¿gKG`æ«ÄíFqþ9¬_E*ú¥Á?y+.ôSfþ¤·4ÊþyîÄÛß-i þ·œ¨‡< žùñ”÷¬_‘Ÿ‚*]ósÄø>¸R]¸{êB¢•Áx‡õDÓð€ä6ÆKÏõp·|Ï¢kBŒ/p!ære®#:/ ÔÓÍõëaîfò@ %-zÞ9§èËÏŸþJ}²šü÷®g1ù0þ¨Ä9Øï|X6WDwÆ€x™Å2Á”ïɘyipÓ¸láôÔ(”Çã„,‹¨çWægBLÄüž|=&ý^ųDÌüüc>ùgþ\TÞnÜJjl `ðN…i 4õ1Q,±ü3†?’7®I¼‚!?o¨ç yoŽG9ÿægñe_©0Iè®C™;Îú¹aýç}ÿþÞ”w‚~*oÙ_æyjšÓ© ƒ’Ã%ò>¡lôóCþÈEçm ŽC:båãqx=‡…~­MólJöÞþ‘_0µÛ_¸/1÷éºk«¬§Ž{ãB÷ɉ¿Ðˆó±H¾*1GœŠãu®Ò9‡sŸÜ©$”ñöÜfªß½ýc{=œÓõeE% ‘ïû_â÷N•Š«KÊû_lóBEªÀ6Îmú¯’1¾Î]2ÇöÛ+ÒÑ{·£ß@L¡Øâ90“ ³^w¬\,DŒ?ßH·µlrÚ€TΉI!´†O½ÿ¾a-ý<•P+ÏóXÏžwÇï·_P@m1¿Bõü~Aú !WÎa0·(æ,¬ „ç³OË9/ýØg}Pºóî(ÒF‘¥ [n‰‚ÚEß«ç´EßÃû~… |ʆ|Ñ/”<„íþ2Ò‚ŽÑ¿lò$p_Nña$O‘ñ!ƒ2ÔÌÇm*_6~o—z–³›|s=1xûù$•o8ž_HúJÓçWswÖ#,„ ééz'ÏS“ãJ'°ƒ¹é­§'ç¦Ëç—÷ƒþ<Õ»Ì:ØÄáåB4¼$ÛqXoûü·Åó(BWž_AºíêzoR?:œ(œýq~%c¡QÖÊö;=#–ú0µG(Ñ”?i–Õ§üJˆþŸD¯ì_¢™Lü!äŒ gšŒ×"Äç äçâá¼_ŸA½Âµ®/„ûÍŠy-¥Ù.—„³š;]ÜØ"n®¦¹)¹˜ ÒCÛÍr°*kakÿ JåâMø·í1ÈyTˆ¸ΚrAA £ïMjÃiGãÒö¥ê` ÖxD95‹Ô£œŠ%éøIzêfÌÏIG¿4Ë&Uc38±Í8’ËT…É#Iˆa þ~í¿!žŒ?–¼½;¥B@KÚ™b‡Ž ZQËÐR0¥^´Õ"ƒ‡%q³Hàq =–ÑA‹Ñ ±NCÆÛ2øýúïÄ‘âÔå|º"‘ò®¨ø…Ð7㮸H½âPŸ=6žŸSà¡pŸ,h+©NºJ*Ç]PãëJMïÃPœÜJS¯ÒÛª3æRK#•Í|i”•üÝ!Ù·L‰ù¾ kƒTô\s­rg¨T¯’Ë¢7?ã÷)5VÄæ¦Bp쟱¤DiFV2Ȧ*’R!¼RvZ`Ñ'5i]hs .VQÈ’+¬ Åö¤.IVa!寕[£O”ŸJ[œOª°‹ú÷…8H äyü¾AÒ>Xã• ¤Žq8%ÒŠvRL%Ù‹TÅ¡óµq‹ %ò¼sÕ{Ú²t7¦P•`yþ!J/º{¾%ßøßLìó+ªRõù¤V}œ’gÊ\dM’Mhå5ÁóKª©oáÎYX[)4©Hc8îüóÝKž¡T l“5á‘I² .k¢²8­uúD 2~.kb°E=%ý¿wVAÆp*¡{’U`ßN:hx)ÂòµHÎAíg§–JÆ#žêŸç1÷° ¨GÒö‘øÓ´3–F“j´­Ý“F kù GŠtãÆøcŠe+7iôym办hþiIÖñ)YÙü·1=7åN¶­௱l)ñXvK 5y'ëac™A…aIéâ8ÄË1j.ðIJF¸ã|¾²“¡tŽe+¾såƒ(ÁBy ýŒPœ¨Âò]‚r7Ïÿ‘Gpi ’ÿ£3.þ¼‘Å5,ê½4ÖŒ ‰MDî0»Eæ*õ^/N5xĨ¬S¹i=ôjt)gwuóHIý=ã­©õ§QF àaH·8åbŠ[ â¿ÿGž­@ âÆ#õñJEŠa‰ñÂŒ7©ïÇ:j“W"K¶:}…6®‡E[U×b?ÊŠÃP<Ä®öç•)› §•Â%Wܰò}ç§`Ãß4Ù³¥h—%LX[fA—8c¢Ï 0RXQ¼È¶ žÏ3šÐÇEÑÆ¬¶-ƨ|ÝX0½Ê”¶­(š]g„S(4‘ò>êÿÉOa5ù.Ê)-É›`ož±JDü»AÜ;г‹[’«—ËTÆÃ)fT¶ ]`9çûN+ÛÅ.s •󇕬ðï&ö}´,UPRV”˜mºÄìžš µ!ªÚp§‚¬oÔ$‰z]çPš¢a4IêŠYb6way¼2 l¢2"òt¢4“WoÆ@aç?\̃۔U–É/ʇ1eGPÄ2t?XÜWÔK¡dË’hWð|Àß±¨©RÚ0ÛµRïo1¦ CLÇÑ —(´eÏxÕ¿ÄïÍÖ:䨪d oÈS7ñ5zŸa…çHõ§ÄRsˆ0Ü:Š÷»J‘é5¤Z„* ÌÐB~«þ ?n˜B.…ŠLØa]I‚ìÈFÇ Þ¡ÒL¬ó¨ºrÙ²¹p6pˆ8Úåvf[".Á…€I„æGÔÊCÄ:oƒfÕ–_ îè\ö«¬Ü@Ê-:d8Ä2)½"î®áðVþ¡1G¡ „Rêø»bŽšÙ°­;it®DLSÎ;évßÝÒÿÄ‚FšûBýùfhU‡õRôæCK(¼³åÚOêÏâ·Ï›#fˆæ @ö˜ù6Zðpä SR4êsà5Á÷K׌ѷe S_ ƒ5bKÝáÏ3 %5É^€T»Wšô’}Û˜´NýÇ Ø"eŸ,Ø/ËË!vŸ„¤eß@ orŸ„¾ë&4s„–ñ@*Ù¢#qÓÍÑð4®2XÄUKpC™¹÷¸T¥¸ÃAªÌ%”‡š„ÑãÏ&®ŒÎ ù×ß_pýÒEVÆ©±9´šˆ¸!fQ }¿HŠ ±VÃäóÉ©†<¢Ì“ÊßÉÇóAn,òm¨]9Õ|<—0}QŽ^šçr¡ü¤fä½ [¡Ð¦VϤ:‰”°-‘Š#.ÌïtÉ-›óÝfEí_:c‚#•󉿢°Ò3Á2ˆµÑ·«I>?çŠéHÝ8nâoUhñzœE ®F—q¥Óúçù¥Êu ~!ò‹ß/ñcªù…+<äOÕáK—`wÕ¥,^X–Þ©°14·ÆÎ “ùÊÜÁ KHôRù~Nu`\ãÇxœ«<œ_íýIJ,ZO«8 ÃdÄ\'éh*Fa¦—±Vs ?éø…žB²ÈšâgU™_ãô¹ŸD.æÔ¿o¢ˆ;çoMúêûFóѫʑ%Žù…{îõá#æüsiÎ~áB,çzÎWû,… [Ýj’/ÄÐ9Þ3¤±ŽUÉ[potëQ’Ë¢„ÿ®@K µüw•C›k 1²SËûxK|&;5ØdÛù¼Ày<{urNõwO‘BwÛóùâtl;ôÊ|l´iʸ÷g¤Öå›NðA©NŠ8œŽl~—;® 0'eƒÎïÞ¬˜x¾º÷$Ͷ¾üó²Ñ¶G {¡çíÕÈ3ÀŸaÞ]Áß×~Úÿ‰¢hÆJX Ü\!#Of5‚»²=Æ ãDL{IÁBÓ S‘~BBPX‰óû1ålµ þb t^VäqX¡;zïa©ê½Tí[I‘¦ öNg«{–v$mÓU®t»Vr,r†¦ô18Ãù‰¿jüãšjìýOH-º†˜½ÝU­bž½ÑäÏÓí»ql4Cù cäÜä:’íÈkoòsö®Ü“ÄÁk®Ó7×!dñ­Í bÒÖÉ_Ϙ¯=ߣvœ~ø~Ñ×Zõï×5~gf­íkl1ÍM@Ûž©þ'þ¤Ò™×ZHFÚšß×L4•7\ìÌ*f›xðýxð¶‘[@£åVÆ5¯©ck7òmå(daŸ(¯Qê¦e]L·tBStF‚»ùV<Ë˵øŸø~Ïy­¤ÊO{¢cb>¶ZžkÙŒ×åSbèýéð+ÀV¾ãäC€[ëð¬ÉìÈßÇÙR³¡H^;øyo“÷ÓûPúNù8^ üBœŸ™Ð,å©{ån^bÒ=I>€²´1› kj¶j[/ŸSXZƒnÄßý9¬â̵ h……Úû¹ —ã€áãýó9]Úô|‰ãoñû¥hÍT’Û«&¥õ˜ièäãÏ_¾ÂµœBá$hZ²qkí«9î\“. d…¿é5B¶ )¦Å5¥k^I':ï,éHÍÁ˜³Sü‚<”÷¤ÆqÆÓÚQ›eEó×áçäFÐÇê4Uÿ.•ÒqÇAÒ÷o ¹£ìàï×#c–=ô3–B)Ïó؈e¬Žú6'GqoŒ?ÑÜ“•e`oÒ:æÁ«—›¸TƒïUëM‹üeS¼ÿæ¶õIELúÑ&®ÛáB,­a>EB¼öÞá„×±)† âùÇóœÁ•,÷ ¿¿îÙ ‡@GÀ>ñï—†ªDG¾ÿÍóxLŒ–u©N %CK{ÕYvhX…^¶ËxÖò£i¦ÝÃï¢ÂU9­þ~¸Ö2ÌÑvz <`%mëjðb´2}åZè‘”h%Õ6UPÀ¢í&†‡°LK,N…¶„6ÖºŸç2õ\ªÕ´’VüzÛjÕ˧Š"nƒçAøOaýÇ7ßE–³~!^TY.&o?¯&oy¸ãÉ»þü%kvƒÄDÁÙ7Ö“öÞìêI=Á-Dâ"³çN~þqx}ƒïweå³®2…q…o›kíÜ4ÉŶSŤ½¿'R¾°hVy_ @Ù÷ßk‹(ÊOzÛ2a³D-÷Oñ©?'Ø ’ žÚá=Ô5÷)~Ii)„//)§Rð–-2Øâ:X÷ºBŸþ1›Õ¢›s.ßeˆg; Ï™j™$¡†ô«> i¥Τ7t-†`ÍgHR”ªmV×’¶žàDŒýà~êE+J粑$ùÁÓ‹õ~xxCšÙ¥Ò9QtøRÉÕã4äíi¸Ë#¨Æ›˜yb]Qµ¨X]æÐ[]ŠH~7P6ʽÅ7C=SÚo¢QÚæa°¨ë› ñ¯å,ïç#iF\<ó0næ7“íãàTMô{°“E Ý⬠‚<¹£ežß¨Y2%°dâ«%›l¼s¾ðô6‹ÓQÀ²¾ÞNÔ¾.âS¥”QÏjÜúM-ÂÃ!ïx=ë.{“…:¿®•g‹<µ'W|_-©êöÍD¤-c-ɹ&¡¼!~j›ág«N‰Îü†¿¦‡ˆ­L£Q€Ð¢V•¢Îê×(yÕ¤—%ng§ 0í½Ã‡‚Šqë›ç3Ý7Õà¼t‡øŠkÿ™‘Gûì4¶—ÙLÃ$_,ë54jT/Ù_dœŒÌ-R}ÆÃ}íÛ°šØz]0¿;$\É%‘,Ù4׃Û#¦,òG༉ó5 ƺqùå­„ó ßg¸û/ï gxðÃÝ?| ’O¥ÎÉÍv=O¼B%ÿxÏ9oQ›ÜM ѽ=„pÿêóórg?¼ãm¸úáiÐ|¾¦Çw •Íç< oqÙ¢rïm¥.­„Š„ }åOî4Añ„ן$EÒÆ£ZÄî³(T4Ùàp@:­šuNŠo𠬮7:¨ê` ºh²|ýù›·MC~ñeI:|ñ¤FžÞ#œä‡ö雯C„>ð¹S?Ðåæ—²Õk’Cþ¢6PéÀ­2f–ê`úeLºvçØ¢ÊÃ(ÉÝ n­EvÑ3f-N½Î^Åñȸ-Æל+èy UÐ (oKŠqçôÚ!ÿ“¸tŽ!—Ç•x=Þá8òÔã1žN®Ò’Fv£nnÆÄ‘³Ì;ˆ«9R9vÈ)càR³•¦™vÆÂß~ÆïÇHÁZ¼PÇJ˜äÒqÌ“ãΆxq „z ÛøwÎNîd>ÀD¦2&¿'êVÁ1××ðøù”>Ž: ¹o {VŸoôó]’¯kŒ¼øßM9ée¹ÝƳmn`¥rÜ6þ_¹Ö»Mà­ä>nÜã°Üö8˜ èc’›H²WÛ"ª'„±8Æ$7¨ti[× ðþɱ¥ñüÅøxÍcÍcÿc™¸œÏÆ eô$€JLÊô8â„>00d@ÉxÜyæ…›.âóK× Mp ÷섦ÿ¥f¾Ï¨ ºÞê–`L¹ô~«G<t¿zi–ºcÍîyÂ`?Ò?+âùÐúë á÷1²c¥QÝ–ü)foßá4u÷–¢p†ßÏ|¿Ü ßGeµÔÎ9Åkí;ÿì1âÖ¡ˆjÇá ¿o´#ý4ÄÉ­‡Ô°¶©0¶&âå]öÅ-f¼L›·crJ ìðn=wÛgó""=ó¦‡K[.Ót5ö—9—þ!Ðä\ãð*)r¼÷a)çË™í¸[l–f1ÁùÞ6/=qMû´MQ§ÍÖànn^jÝxœÌ˜˜´ä\F3½ßð{@ §.‹\—‹štC œÃÚqm+,¶'{{‘«ÓÆÂüC·Çï ……Úƒ\¶Œ‡|³8tÕ`R庸Sßk㣘sëeˆ1‡ŠÝßkñ¥A|gb#—©„-ÿ!µØøiJ{¤™LM\"B–LóÕ_èWäåÎXŸ·O]pr­òPW#ZàêrѱAÆä²thÛ#æ±Á‹‹¢h9f¥¹;†CX‚º1ÿ¼s)W\e€^¹€ˆ¢)óóó —nÒÜÒ#ÍX¦hJƆáËªÒ ÆÃoêÑÊ•qr—îLq²hÙJv¸ÆcˆÈÏÉŰ scY›q¹qüUðÓ‘§s»,ãFº†|ÜÂ:~Ox&A}xØ6é#Ë絡OT3ÞO§ _•üÈ6€—úÑyË­¡£.‹$Ì{ÞIŸ‡ˆ¸Ïsˆó%Ä^¸< ±Îm!·H2´øïP|ôß}øûx/2A Šc0žJêI (ÖP a-0j“0´”öG¥w(´€vòô®Í†I­ÉøCP)P´èˆ¦¢¬ÑÈEWÃÖ»x„¿¡Ö[bSaÆÁ˜EU+ü¼ªˆ©Çê $ÆU>ßé!)W„³(¬Vw(T‡8ã/ñû­"¼'Á¢å‹qgì­" ÔÆ– ~Ç[E8Ò{í­ ¢Î?¸2&"&a°ûóLºe>[Gƒ~{Ë(™9eþã|.na£UËe¨ktÔ¨q“°3N$2Ù;õ©ä’q¡Q”VÇÉd›&d®Á¢Y  Ù^O¬iBè¢IÆûSÒ»rl}!nÜ"¢çi†Uo®†Sp,I÷ ª/x«Žæçð'aχãÚSÀh „ èòïkt‚í:Xƒ:ƒÆŸŠ’z $õ…A@í…icmáU-8D73ôˆ›Š¬¶ö§è~¾Ì(jüýËEGB—ÑÕ0œy€QL7¡š÷søÞ8‡Æ2ý§·ÊŸI£|f ¯«K_ÜÐÕ8ÌX›v¸°b0ÜôSùeHœ Û‰ÕX²H«ÓÅ?È!Ã]- ý·¥œ¨Iîåð3|?gÜWî ¤˜’l¾å3räå)%¬H²Q¬ö )å‘CíS›­\>Øð-XáÍÚE4KdÞÆwh7k‡…EGÈMX‘¼i»¼>­3¿´’gö0Ž»)ËŸO^жNnº6Ìù&E”m|˜¢ž•ŸK´•æd׌i°ÏÍW*¦äᦇäƒèç ,ô»&E‡/ØGq“pQ4T¢¿RHéšwmÒZ.¢‡Eõ©ÀÄ-¡"ƒ›¢ÁínRÔó1‡’ˆðǹtïÜ„-ù¤:Ärs›ÊƒéƒˆZ¹A…Æ©[YW®ãÅ¡5•{ÝpWè@@{:îOüH€hM&±ÀdҼϊÜÐäÔç<ÊÜ|«ÊIeçtܰüئ£©ÐtÀ—AÎËoÎj&“¤Qã¼d‹ù.´*ˆâÕ£F矢sœ =]&+´y[N1øû ¸ÔÎFÖŠg5ØÈZ’¢=a…ò|ú÷uÓ¤°¹¦Ñ.f•üû›7¶É6h4ž1å9Šº7Vš£È Ú™19-”¡AÌM¿ÂMä ñš¿‡F*é fܘÆÕÏöÖäù2¯L:ˆcǺ}_E9–…(Ó6ër*Q!æ“ëŒ#¬­ÜŃÓr÷üû¸BÝ‚¸Æþ)·ùÇód9")[9¸N:095l:2q,% ¨àÕù9– åŽÀøPŒûMë˜2¤ý•¶Fn*·ÌbCæ±YèèYíøt ­?ÿ¼B ³ûv­¨?WZh èáDPF´7??”Ñe[‘G½ªñóÜÒÞõóÜ4éfSÙ‡÷«MÒ+ ZåÈj“íJêÁyt…¯Çô{ÈÑì*ÄñóçÌ¡ó¸?Ä]EÅä÷KøŽ÷ p( ºLÌêi Ý»mhɈóØThTþ:2ÎB)ˆÆïá:hþCQ(_Ð|þmH³I›±´šÁ]nÈï9dcËY&öj;3ÅÞáT%Ⱦ¶ Þî›Û s7˜Þéè:œ"»wZùKüi5 ‡Yå/:mÄFÌCi±É`e4/㛞Ôù Eã qH±T+J¡thtøùM*7žmRv}•1¥]@cʘ„ÿÄï¥U:YhÁíûF-k¬xîdÉݡ۰C‰Mž#<¦!çf,|›†×1–s ,Š“ppŒði—“q¥#lÿxþhñƒoß§‡%§Þoî¯eA~|öGý÷ç¤úAèþ„‚£é\лºzL‡è Ù}BŠeòùáþ¤4ŠƒŽ¦ƒÏû½N£#6pBÚé,Æ,!;艰ëp[9©(™ØÂøâ܇?ß-£ ð ,¸6t¼Øs´Å¿_â°×!A„ŽYÂÉ]ºgloŸ¿zÂÈû,l ¾^ãê­j9~rÈ9«?Ïù¼ÔBT:în×3rÀÖP>8¬Ü‚‚LŸî{à%þìhM¹8tÀ’¡¾Õþv{3 áz"ŽtÖÔ(ñ-¬|Çï·âzÖsË0ni,Yàîác„ÂùªÞ‡Æ|xŸwÈ1xéùÊQønàÎ=öüKüÞA’ë¬t’ýºÀÝ­o¯nñØ÷Îó¦{Ç‹-óÝf ç>[›ˆ&%À·!æÏÊzfŠ˜6ð½ô»+9Æm «Î7¤‘Æsžå ¾ÜzËÁ~ÜXéŸpDl nä·‰¹XÃ|$ˆîüöÆj´íó† >ó]óçp+–M¯lÃùª6ªÌ:ì°šm›½ ¤`Ûø|‡ÿþf‡¹ÏÃäÎa}‰g90 :Šæ!C 1•=ÑŠf¬üƒm„Œ™¯F¥£¹½ Œ¹²7PˆÀq÷Ï´Ô™¥îH|Bü©iRt=x¾w9”ßUCÆôLhç"êfœõÅ1{ºu:¤/ÿy¼ÇÈW]ù0aÃc|º¡nO©I‡‘Lp¦”%ûr§>¯ÍázQ~Sý7Šû: §’ñÖy€t×E¢°½CDþóÿ8¯©Ö6iç¶»ÕÛä­ƒ{œVä˜SrŽÉ~=¼"_–íÞ¸¥SD8¶´¦ÔÞÂsl Ãd,u·î±Ÿo´+ìá¶âñb÷ž\ülTŠAhéhH».Çßý¥/ú£[Æðö/ å×°»×ãghö\«Â‘é ¹jì6°XA¤óÕóóÿç¬r“¼$ó¼·€ü’ö"™ij_Y«nkX]Œá®C¶%7¢½ë¶e‹àÙu¬`“ÀÙÔ!CXÛA`IÑv¡x‹@^=#½wöeއ¡ü TÛ4lkKä±úY$H61,‹EÚ:Xýwn1sÖÛ6 š#{*.“ à¹X|¨ªmøç+\2`“Д4+eñ%s¿™¤mÉËeo’$Hº¼% ÷ÇvÑŸITB‡ ŸAqÄ^åL=€ûÎQ¨+eÒ9‰d'{ªê’ÅVÏD¬¤HM7Ó¹ÕÓiC^¼j½‡“¤bŽú+õ7‡WU¹óÚ®cb…±"âé¸?ñ{ùgIfÂûà{!ã·y¾/žb°þ!?ñóùãynù~/97l$ qþ¶ÐƒŒÄ-œn²›mzJ=䢇Qü¹©àî*¶hšfÓÚª>/›¶â¥øüˆ äXd b®@]¯¶ãƒ6â64#9“ª èøþL5ØÊi¯I³ÓðŸ[9Ô;i˜å“1œ £¥ö°UCOänòMˆé¡ô€Aãx™6%Ùæ¤%äþÌýp¾¤ùƒF&ÙËn|\ NÓ«Š$%qTï=TTd¼˜ä®-¸’W^ØŸ—lƒ-C~>¼u8™äÈ›á–"’šõ<ö| æàiJnÏÇÁ ¨1ígƒÔ­Ð²–_ê¯n* ¾W÷”ôßakCCËR+VPž¨3G÷Ÿmù_2üï¥Så°Å+·û†…&¦ïC“¡÷I ÿ<ùº}ýÔW[BIk0Ëk/…k,Ó«fÇIN•%EÓ¯8Nþ¢AÑ,* éT9N¯õ4¢Ö_Öp×$Vü\ø ¥8¸-’HØâÚ‹*˜N„hê|;;ΰ˜e"e‡h_¤ŒÃömñ&c˜?ßi0FëÆ`ÔYª­‹Ñë¤Ù»‘’0’?Õᡞ¯Ë˜»“‡“£áʳÝIÄzâOúÁÕÄ…C׃Iά®^hÄm¦hÛL×|ÚXœÜ41ʇÀ­“±»ÝÉÁô ú"ü}ì<®3oEh6|ΤµùóÅ«¥Jjû&-…êäA#µ!ò³¾¬0Ë"&Bq´dJOVîER±Iê¨LJ\ekŒØéÁ¤v“ ’Ò•e›ü÷Ȩ¼\F,WU›±dÀ®qã®øð÷kµbÚ7þÔV®êŠv©UR¢^ ¯’òÂê¯;ÃÃNŸž=T—Êx;®D ¸†³*‘€aW×J‚ÞuEn^eVÒmLÊ‹ïß'df“aõ?‘:ÀHõd½s’[Mv ­±èDó2É…›ÚcèX'çCÞ_ÔÅ n³iÏN³{íf³,NŠçs¸è24çâd$ ±êôRçúNÞ ‘8J-2CÕ¹B}¯‡5 )$‘È)üS„‚0ó}(¢–Í V’™BºÂMÞ\Ñ>#iÉÏlrå Y O8i1ˆ<Ü–„«aÉì cí[ÆN€xCû€±k*O¬ÖŽm !¬À?ŸÃš…¹+<4›»¦ÎmJê!„¯øÓ)ÖÐìÜdE­qxv‚•¤:ÅÎ}{+—ÑØæÂm’<Ã!*J•ûþb9Z1¯ÀZdåxY–€k¶Y•”W6­Üà?iæf”á®"3Kk2¨®¤ý?Œ³Î¤T]‰Â+ÍûÝÓã©mød‹~±uÈŽ’ +Ѿ_àž†åÉÆY%ÝbÙ…õgüÞ¹*.r¢ùB,§³ƒ.­¡çGøN6ÜT÷óï|¾',¾ƒN8üy>Ï£¹Q3±ä‚.¾ÝçÔEÕöXC´iöX';Áî]NT8üùn—Ö»ë ÷€áêJ—Ã¥•—òúlð·7¬‡‡E«^xîžQOºZnÛ"&á¤qè‚9­}¸žaç%ÄÁ8;ƒ!˜5ãF8³úóNøR®±¸íÂ2ï9CAÁöFy̰rº*k¨¨P´¾Þé‚(a/ÚѤ(èÇæŸ/^ü'GëHøË8Ì1É™ÍW´õ(Xæ¼ &Éiaœ®4ý”ÕZƫ䆎¦PÉm*Þ´*ÿ¸pÅÑÄ–F®~ÿ}G›ºPs¥ ^QeõýcÇs ¢å‘á_†ßgì(]eø}öŽñº Öñ%¾‘üŽF˜¨Ùj.i¨d*{êçJ"hAš~ăŠíΘÐY/ö™ „çØz·ðKw[¹¨a{DZPf\Œ•æ!=ÂÄäUš)ŒÂ¿}+¥µòù‡èOª”"aâß‹õÌÔ¾½”ÅͶºý´ölJ×Á- &±!eZàg³—ˆ‰zsÛûûî[È<¬ø ´FÓ}$‡ÚÆŸáûsNj õ*„áKyá¢~…Ï9Q_«}Dü©¼:6½U(~¶¤ÕHaÊx\å‚Ëoé!ãç½Lv(n~4ˇ ÿ3'66@3¦¬äœÎ#i³¶cj>d\IJLÅCf\ü+³ÝðÐi3.~ÈȦÍRu˜ò^ÓÿÆï³!ʪ”~)Hg£/+xÇ èsª‹-…!w7* #ŽfÒï¯Êo¦Óš¤XûFZ?"ì íb¡q9üþšììúž&F9Šƒ}Ç/ÄÐ}4èÊÆ%i™‹.P[ô™#ºi•+^úè,I$Þ‹«]%ŠiÔÁlȇ46ê4K9“3¼fz#²e¨äÉ›†bµ,yŽJ˜­’]ôZds=TgsœôÏŠùçjªwŸð#•:›ÚÁòÕU.e¹­ÉÕ¯$»4S—+ÊŸ­afg^„³ÚEÑÄ Å›·k³<ó[=2º2ësjio)ÏÃ;$ŒA©¢Öª‰+ÿ( ÿ¼h1 Üîùú ²‡ÍêßGÆÎoÉoÛñ— »Y:¬ÁÝÝ…` ¿ÇóÃYaoâ¶YɆäèÖXa ×~äon Y|U¸V æ°" 0¶+L…ŠôbR«ø¥¶fU{„·f¡Ü…ž 1u"° ךÐÆ ˆHhjÔ´oVÕ¦´úߘà À\éÕ|§0©÷cª§AËBœµÀRVÎ8ù—]'õYq&¥¦~.¾f¥÷MØ7)4;ä—uKdAò¾ Ü,9±þ…8ÿû÷ÔtpáeÃ!ºÂ´‡hxõ}Sõ?w¢¡¸´—C´]”#P]°¤UÛØés>Ý€sÿ3Á üþýeLŽÿ2üþù%¬6ˆ_iz&.ài&æ‘'‘š`ð•Ø15Mº$ÅC—> õ@ÓT«@¼»~Nˆg†Ëk+ W¬‰xžœóý¦ÀFOÃ̧¤šcã›Ø^SÛáfÚ´ªï¿Ñ¶=0ŠœÙØáÝGãéÅ"‡ïoÍEoì¾E]zļ·§²RF úÉêx!RZîŽ ‰–»éJÜ»û\Ľ§O¬G¥"Õ2F½”i´ÓkÚ-xúkµ9Õ•É"(><•çÇT·¹sý¿?¥ÈI)67ñnÖæ•SßîôÇ1ou‹÷}I9`âØžgÌ{€´³iòØÎó’±ÊîéN»,\Å»n´i:nE6¾w+õ©90Ïë=FÆáEA—ýŘýk“/ú=Ç?¿L6ÎÚ³tQ7û¹7?d¤Îa¹«ÂTìáÅĆFˆ–ÏÙìëÇsZÁ*ƒÂkjÉÓG¯Í™z“`ÇÏаb…xn›¹b&1U dx8õàå.az † ´‡¡0˜)ÇuÆüä“Û½%ܹ´»¥Iƒîé±½-ÉSï$ ¶ëä3”Zï$iÔe;ES(eiü¶ý áGL•´6àK=°W¯æ'Éþ7l^OS¥Ëëെ¶Ë‚ó¼Lœ©épÑ çh/ÃÅÄÅxÜAÃáý°Mv Ýñ—øýà4$Ž_ ñ@µo5ÕRª*r¸¥§ƒ©Lyõ{ ']&8ÑÄð8Üxúìtˆ—rÁ Ýéö§/ÃG;O¸»Ô_¹:JÆiƒyÜÄ%ã7??vTãŽêóP¸îSÂÂUÛ_R›ºþR_P‚dµø!’mŽ/õA2M12 äôj±v’s¦‘ÚŸñ{áØÛp/ôßl0ÊõâäE0å (ÒËÔ:ªŒf¦ ¾ pTîÛTÜNKî:ÂÈ+ôT*V"®§7zWýl¼Hi§ñuCg¿1<“0tQ¦úPˆˆ‹1X³Z}ÿð$±FÜÁÎí¨&RzTI)%·£º3Üå¥&ÕÎß™^Ø¥•Ö1Ü͆™×ç`gÙ>"¥ãúƒ&ç arò68óýÓB©éqºo; »žìƒwê„C 4Çû…”s2Z^$áþ¼9¡‰Þ)âJT££¯ Î)ýTܤ|%ÚH´s‡BL•w/|MÛ>cÙÇb‡:a::nn4Á¹) Ÿ`JÚ[n·°± é2M @Wb iÜB0Sèh nw8DC«Ü¼D…Èøh·ß;ëM‚«z9Üåçß[×䨊µ6y<Ð+ñ¬QVÂÁÑ%¯ë‡¥>‚Uw%<øWo[|廪©:µúáєԘÆïö¾?;Ã=Lß7w´˜,ªc+œçtï“!(L 0ÑCžì“ºì­Ž=;¡äOr«RÝ®´#ÃLQrËÊ¿ áÀdLa……ý'Tyüó£½"¡—F nÆ«)ÆŸÆïÙ0…ë‹,’Åꗴ馜.Ô­ð{£s”'µéÓjÔÜµç¬øj T®¡Aü²*L~’·ºµT&ážÅσɸS}\„míâƒ=J®AƒuÙ3•ë û/ñ§&#…AJ§%"bÚ“O«ÍÖ³ââ6׳ZŠ@·€Íþ<­Kq}Z½ £µÂzaò©x¿ÒJWec?<Ù¨î ?«ÓûsMŠ’‚}s°¿ÿ•Ë#‚<8õ&Ãïï ˶ªs”}¾Ê-T‘ó×6µO”lïà3Ñí©kuþß2Lmìð·¥Ù~†ŸÐ6@–¸oˆ¶‚¼´<%Lû#î\ªm!G’ñ¾ÛFlä„C·K¡ñÏã÷wõ$³‘÷9<¦n@¹=Ëø‰*üMqúû!ÒFæëæ'Kx5€wËL£‚¬7Ò2,x€ä6lå-“è&×Ôe`xj[ÍÒò”£bл¤èd6>ËÀåd~Édº|!Œ/ؼD ‚* àjÞìCšY¹"û—„Íyr“âŠV¬ñ:Ã'.}îßFå–.óØåzþ-~»MóyèÖ#GSæ'cÞtëi„œ6åygL<ÞdÐÑÈbÊ8g¿`cÚFî%Ôœ,·“¥L{‘ËI¡Ïf–Á ºÙֈß×û!­Þ´a÷Vù!!ž ±náóÎ9S !ñº€¼¬à6ý A¬”w<¶2 Wâ‘$H>ñï7“«$ßa…\ØåLV¼&—Û_ñï9¢˜~ÚÕ¯sw Ëò·þÇ.YC½Ïq(3 À²¥¸œ§>O¹kSrÉå†h³ÊfË+îË”ž±€XI\û7W Î4Ó,ëÅæ´úÄwN’r¸iõÙ™J¥O<³îS"ÚCQ\Œ»cXµ7S)ÄgíP'­ã›â6ëøŒ“úõù}ÁCþû!ÏQÉúÄ4J¶{;tåI<ÒìõC—1›n®4‚?e<úðóq™½˜MñžÌ°æPlÐbZ“ Bp7±QÝB¹"gè,›ìNôžª9(w¢É\Æ)$žàÍàÒ"•AƼ4;¤òãó£­.5|ÿk k)¥'XçóbRÁK±I•{`;Ï—‚Üv +ÌoëQ\y•J-ÀŒåÉ ºn^ŠëE10cj»Q¤+åU”¤±œñô%|(:œ„Ïzâ·ý»äXz%è’1’^U²áp©vŸ›`uJÕá{)XsÈ$Æï©`‚‹$ˆg™L’’Û©ì2f2*°åΘ_T¯-èß¼_øóspÑìž÷þ=â¾—>3&.w]°Ë?\^³¸ üÁîEaÚâBƃr<íIˆ\©òW°raï›’s{%ºq ‹u~ ¡Õhh_õ¾x‹§ò>ølò™mD Iþ"YqÄMIIP»±Ð¡*HRËI0Ý9Ú^-ü}r‘h”vîíEs.5Κî-ðÉÆ/™U0 " {—5çGüùöé|gµùýýPvô áDgA¾i&wtx³Ô< q†Èp&+êŒæ c™ø@™{4·Ë«3èÙ—¦‘)³€ƒT2¸ôT©`Gx7ýý‘£L_~EH%A³æ«> ¯Ô&«p©Yà¿@Ü!ÛcBl˜šží#Å&‡:¦…ìùfÖ9ùpò_ʘdݶ48PÃG–)X)t9Åv¦554 hGu9 Åœ/ñçÎ&¹&ÜëÙàøàÆ9vQ?Ê¢ÉÁÇ›n5%Œ3RxÚ „JB!šnÝ5j@Šáš8eâaEC—ÜÊK¥š¢b[y…MŽqÇÔ-w¥¡ã|›!¸cÝOSSÍÈ«±ƒM S©ñi– €m{Ü4: 1=טt[èãtnlr†™‰§ö+†ó™MÌö6 :Û#ë•«ÝØÏÚlŠª†Y»°‰Ñ½„¦¨".w~Íû^Ÿƒ¤’±¨tÔ•Çïyÿتü›oþ¿é>F%ßÊçÏáâäêF©V•ot¡o.N UëŽÈ¦&ø>\™ÃÄcËK“7ˆ©çKR:š\79u¼<ÿÉádÙ?Ò;üpË(r"eÁÖìÎ\9Ÿ×Ñ{VHÂè"÷äáß2T åS|ÿSbU…ØÝÅ ëß>4|.ÁÏåÆR‹Þ?Ó!ϦA«‡‹gòóªúîPCÖù݇½ÇsL>ï$ެ·ò¼Ñ,šîY?SÅð· [óJ%^Ý¡¥™0ó+%œ"Žë1ü ?,A‘Î|½-†úLhbƹšRVŠÜFˆ‹ P¤"«ÉåªOh‘M2ë}à¹ÆõXg“«÷ï°^+B£ˆŸ+0äóòm6½¨Ï^biMkƹ?ÁÊã=2Xo“JËãÊ{ BS¶(ãæ•ìÅ&”ØÆZü¾L?\ÐÒDÓêu5µËìÓÃÏ·›äÁßwŒ6Jr‹HãeÆîÖÊ$ËqýKüþùQsµîõeœ–pu8éQh¹v7•Õ—ì°H=~>˜¬óyçï‹ã¦sð’ÒšXÆx¾²¼òÇKS¿oQ#´["Kph‚«â¥ç;ü|7ŸïG!tvíREdSšgÕ)®Ô„ á÷SQ ÷BSJI„â¦ôÔÉ„2yžìfÃi&ܦâ\âŠICb‘MPA3ÖX€ÌÉtÂÉ󪊙–tÍWÖá¾k³öy騢$êøí¬¦Àå$¸Ûþ…¸°è%ó¦ÀE/þ;‡ÊE&\Xôð{Dû¥’ÎCD¸Qþa쬊᪹é÷8–C×KóÙ(."8Æ z|$Låó„ÿ¦†¸AA“4á¸ìâó×fgÜ$·¡»Š"ì….<Ï«ÿ;ù¼Ž‹°CNuÑU 7î[t->¯ôÜÃΠÊ5$ã쌪LÈ+¥f²Ž·“éäÄ,%ÍÃÎWIq¹X/;<û—ø¿1NèDBª“fáx™¿Ó¢,º¬oÖæ8±™v<í¶ÁKt‘¾{Ç¿T†Ì¸z¼Pøy|¤‚fÑD:h AƒÑÖ®jD宑¥Åµ‰6Íi' ±-Këî[¤MQƒHÔòîa‘¶­¿ÜXdÅ]W‹™Ê"kŸ×"l‘°wÄvÙÛô‚}‹,!-w\0ŸøïCS‘E7ôŒùÇ'ê¬;gˆ&Ö®ÆÎì Õ>7Gp0)ìã’tÕØo¹Ñøƒ §c1I›³'WŒ¦±›xáðÍI$Ŧђ¼ãU8#.„ܰS•_&Ý…z±zgw§Oanå<œÀuÈ)°´Ö&üÞ•T€Ü´×ñÊ"g­ø¾ºÈM¿H ?ï÷þ‰'~?³Fò…3kåÍI!‰.Šö-s¦½ÈYÇp‘/·’ÊÍê„ëÙ9®.J ‰øœqwÂåJl9Ãòc¸>‰à MD˜S¸ÿ:;b!ò…¨?èsjyˉ*îAš($ÉEHérô~f|Ò©ª÷Řð9‰× -mÂåì´× ‘{HýfÑ÷² û£ÙêÊ» ðúQ¬™ôt âµR|ƇñirÚ>Š¿j¡lŠÙ‘ˆhÕGßÚLË«©Ök~}ÌOëPú¼ÂŸ{¸´1xYrYœŽy_þ¨†·øã™œžn÷|“×½jeP¸ùùt¬?Ïëäá—Õ tñú¦tO^OkÆÊ2ël.dåéøþÎöV :ßãQÒ,‘×ÎP/­ e·Ør¡-¨“‚©†kÇÅøø®.륣t%¦Gµ¾|óç%kØ®¬¡F­[¹BélEüÃ9o-Xõ¾é÷?w{y©U'œnüÑ+(=ǃ–pØïØ„¶ùcè ð¼xà¯m_€Ð ¾;*ïä7ÞË` Ú£wjϨ<´„ÅßG]ˆ.´ù}퇚–ÃQj¸¤l¡¬Û²ro ¦Þ9vŽ?u%gŸuþÃE ¾ rä—t2Ï;Ƴucå˜ÞcoÜ-æ¢. «”ñŒÁá¾,£±¿Áî¹» Úï¬è½v7ÁYa{ƒ°¢ãÝv‡«TeÓÀ!¸’¿-iWiа?öS qEu’º¼ÂÊñ7\ÐQ( á›zCêAò€©\³Ì ÈaYNà ÊÞúyq£nÜÉU“Úu-Õ+­|Ù Ýöb¦æAcñÁ1±›‰Ó=+ÎÞ»½ÿÿ‰?esËSܧ±I°–"`æóFn‰¸M…¹¹'4fÍ˜ÅøWd;¡‹ ,ÒáEôE¤¬Ü&Dqì¾4V5שðBÿ8ƪT)I[[.šL0˜ý»sL’jFQ?kÑ£Œ‰üŽ ï¢’DkCþÈÚΘ¿`.—±~?d¨Ú]dê˜gÌÉEs—¿ÄŠçÅÞ6&«çÓ:mÞ‹$ΨM:.®ýÂV*,SV™iKi 4m ÁeeZpŽÉãÎX¿Ÿôýªu)¼6œ¬Oék[ydLnö ÍowS#OištèÒŒ SŽ¢tÓ’éùii¬QM–eè ©¤ŽMÙ µWØÃڎ륅 Ф bΙ^âOCÇCã‚Úì©Ú4­:µ†¤ Ú9°N¢p $½áàÉT…‡ËÆœ_–B`ÛN%ˆa˜úV°Ÿ F†2øàîƒÌÜYm5P¨«RãN£å˜çÜ0V-h™2æ •…YÆÓ;D1H«Š)b¼ì¦_Jn`ðJÙR¼´|ÌÏÑX$/[MVú»•4éAüQW¯‚ ½Ô/Ĺ\­}g‡ZÆY›ìJ–@ÆÙWìàAÈ8ëÄ­:ãÄfœ6HKš +‡àß‘qÒÌ—H§9Å9*ûé¥\q¾,kþÿ8==É%Ø„ü芣‘+—¨p2òË9…D øO%ÏDõ£ÿ®¾Î È€@±Ãá"ú`ŒYùJ¹®ß+s1ÙùJLH:²ƒÓ3 RÑ «ùmnOü¶’#¡£ÕðJ^ß0œÎ-Œã…"—17T¤ŒûØ:e(ÇpCÛ0>éô‘È tÆ\'o@3&âÙ±–±¼™(?ìұDZŒ–±sã·§nètvP}€ËßœŠAÊÓ’"EàC‡ Ý3Nr éȸ02Ü–¦S'Ej©þè£ðÏkjß©˜*5ZÆÙ‚­ò³ü³álq:§Í˜:Ñc¹ñl‰˜²&ôêa˜áF~Ê•ØòU….ÚzÁ”^T¦êtzQU7Ìò¢":go+QÖТ1……[®ÅSª†€QÆÜ &W•©[¬œ^ÆöþÒbe£r  ›çr³þZqxCVÑ¢(5U¯ØY,&¤H°­‹µÉ9,I%D¯•é¨ÖÊ/¤’UiZ<˜—sÙ\x¢rË8Æ_â÷¶e:.¿øç bN& úÆÞíùA[茕ݘͺ¦tHÉñtJÏM×.ÓäàíÝK—„Ê3Ö\ Ü¿ÞÊôŒ@œC•&¿çTuK™%]éòëߪù;9Y`ÆáÜ•€–&’A°ì:Šqn7ï½ç\.h=8YXšÚvÒ bɯ6M(óÅZšúfŒl=ˆÒ"nOü¾´Ä(+KËŠsÊpØ0;‘/_ÂÓn).ki Â~Œvа¨.ô åÿ«¹ƒ7 yîìY—…}aaß#(Ùœqõ{ˆ¼fƒ"ù5{­(ú£´Ń1ïÿ²¸„)‹-߃û'ÖVßûl6û†øaŸÞÌ'p—1'a„ŠúÔÔ!®¿/ÌŒY vLû”ãhÆÉwŸ¦’Óå²OÓÃ;jñ>µ?‘qÊ ûw|¯ÏyŒ žŒ¾wÄøþ3^Œ•W°m7 T“÷ÑU3ãb—äR2ÎVk‰ —qNê–„ÞE=Ag+°f Ä¢ü”iþã|ÔküÄóÑ®ñ)Ü\<ƒñÎC£\`±Â@ëld¥ðÕeeµÉF¸-{0²:l~‹ê–¬.= vúŒ‡X+y>óP½ç±Qqì<õyšÂûªŠ÷ñdò!ð@%Ó [+&¾ ]7ã¼ëT«Kd+ãæ.ä¨5.¾—ÏŸ?W~µâ¸u.¾ç‡¨½ëÄ‚¥øÎý˜/·ìýîÏpk¶ß}"/1Šá~÷shØóã½ú§3ǃ`Ð/ËÈùè%®/ñ{ "ÊsÒú0»/\ncwEDõAô8mÜRýË8÷ÿv1‚‡ 4ó‘º-h’>ùIJÓO÷Fài zïÔ IT1?/Ÿ»¯Åü”÷Õ„½Ñmœï{.}³íšŒ×š”K:•gJ× ¬‡ýÏí¶æËùëÕùFžÊÒeùÏw~nJ7%tZض£si;¼TþŸøÝYU“I „îÎJ·ÂܳXKPv Gý;€:™9/Î*Ã[Z¶ ¡‚„|g†!ø0«†ÚÝ]é*ë@‡§hgïÔ_9¨ëKw¶â‚³F{½Bâ}³žÄJ¹µY†nµˆðV®¬Þu{@ —O­[÷%RÊq¿WÿÇM'\=eòBü DÆSݨÖsÞT;÷I䤃+‡xN‹W‹wl¢‰ŽÓ©Ï:Õ6/~Ó¬åY>Vù×VÕYÜ]´M•JãR V/ÕÀ#·;k5,,X÷œôÌUáj¯2Û°«úŽ;a×åêoò´ètqû0¬Ãß»OOõéÊííÐm›qŽ‘£ˆßÔ)±Å¿Ž³!0ÜÕbØ|{Ú8šªCXHcß$SÔ­ÖF[íW2K~7û¸0ÃW—æ{ÏàX‹äj·E§›ŒnùÜ& —.‡àx¨ì™xG×f½:Ž3«$r‘kxºTƒ²æ©RÉ{}Š×·J5ó±å¸ÃxAÄ”Ë.)”ŠƒpA×ß u ùôz0ÃÂþ.IÕ®›Sªež#ÖÃ0µrÏ…Hc/QÈÜ<ŸÍ.;©æ™Ó°#Ÿqö49µb£d°Ý€;;á—©0€Œ•“¸^·4ŒOÊJg&”YôXF$;Höt<»QÄÔŒñÇçáþ`+îOއ §O€e­H‹kD„ã%ŽìbÃqLú~Oÿ‡kJbƒ;ÂeYU´²Æ¼kIáqñ°Šéd5=åšœ²5ß–yûFü\óüãÔ)1K«ÝyT‚gÒíÆ©ËþÖƒªS˜¶´î{ªç¹¨6(×y§XÜùEØyê3àöKˆ#JÄÆ×Åsß~žªâŠ®ðT–;"+Oüþ)ç$zžÌCDÉC’I-Œß\î*/8ólüóÛÜÏJDˈÔ$þÊœ rË1Æ¥¼òE¾%9î„‚åY¨îÖû·W6Tâ-y"‡‡þÈ¡ &í­ÊÂSˆZ=#ÆŠ¸º¦ÈJ´Z¡dXàXþy ÁÖóóGå;w•Åý uÞï+ÓÊÊw_ˆAú¨Æù±Öе¹¡ “¸ÿ¤†nÕ¬dUyÇ@R¦ž7•2ñþðʈѽ:÷Þ\Y8GXF^4oW»˜s„þ‰ÏŽmÃé%Æ/ʬ1fÇÃì³0†Ç=Ʀ¢£Ö(â±»STοa1ÕÇÃqw†…ÃòcŽ„ŽóC„çȺ~:‡>P½“Ø} Ó¯‚a)ÄEÊŠêôWÜìIà†žª¥˜O¯Åà ý¥ÂÊy·ë (‰çÀ̹=fHëˆKÿKü¾Ï£®™òše¸˜ƒTéä”mðso–ô :õýAÈŠcöu'ä¼P<…+2çá1ÇšÎÁ…??ö«V–ÊiK§©oöyw„¬>OF'•¸S»"Pvj3^ß·+Õr)N›·¥G··#‰z2¸ïÈZ9ïÆõª{ô¼I¤Š¯¼úš›Ð6ÉÙ’ Y…œ«Qåø`€NzS7e£Uˆ´¦oI­; Rìzö¿ ó}š‚ËMU1åÓ°û_'a}ÐÞØ_-±ÅŒOËè‘N’)»Pé(çS—0'×wÛ|¨ý Êæi`•|¨G´!ÉÑfI³'áÈy½•TDcäƒqwTÚEF<ýR2zÇMˆbˆÔx’Ò5Ñüú2ßHÀcö{Y%ö”y Í"q&ƒhŠ¡6tcD\Ø?ñó¯ýôSœsƒ"ÞG<ÙOQ5„à}ÄÜô­ê·\ßÓº™‰1x‡—ñQ=gãòAg 4J¹kBX7’»•þûvLGø¢NʧÖNô´Ëi¢vbµ##Æz+ÄFøudÐIü:pšˆ©òÐØtÍ™c%8Þ¾¤æ#^G—þëgžÆòç›Àò-ć†ÑÐâ(Úɦ¸óóeÑETäià…‹˜èhå}4tjWÅç?ýý›•x¼/ûöû" *‡'Œ]êå!ÆB燊ª2»o¹¨ †¥µ*}Ù¿4ÞÞç¡oæBx7bdzlx2¦3q¥:R×½9'þyªv4=?_­\#~ÊLð9⊜³#<&uûúâßy܃!à¬9?ÿÔeæñf tT«0óå×qÞ Ï™ %Î š¤ˆ¹u\8¶<ü} ã§üÒf'ì%ýÑ ûôˆå¼AõŸ­ÅY9kdîHŤ NÜ®æÌ‰^|o‘qt!±O»¨ZB½$(Jޝ[õdßÛrþù®ä@:hC6«¨ÌkÌÍ´ag³ÆÍ¸Ñ´xKå¸ÿ¸ÝîJÛ¼À šjܺ¿†Ïg÷ý9Y™7ßw‹çC_¨q¿÷áù4¨Ê„¯2kgļˆ[yHuªr1 fÙCqðh†š^Ä qkŠã¾£Hļï†*³Jëöoãy¢dAœÇóý‹çùq+¿ÐÍ¡u«Rv>a(ˆ|Rp®®’ó; ƒˆ9=(Vh]çÎïÁ7ïÂC vd"n¾ï*cm=€pg”qŸ-Ä|þõBÄÉ7tÄÅ"ûTMšéF¾‰zhhêù&–円{U ß#;ŸÐ|ddIv@/ø<»òÍbÌÏ¿ÓævXŸW|ös¶uî;¾üø®:éä©ö|~^mºÙJ(þ j|þv"*1ºÅ( gÅq^®XÏóÄ4'¸b߈‹ž×_ãµ®øãó*TChèßÏ«T¿ÿ´³-Àu³qãæïëöþ.Ä»®‘Åkö9{ùIû È1Ïc­Î_‹ù ]<Ϭü¥8'å«8O]Ó*hø2Ÿ1Ò—ù+Î_‰õY2A.JÄÝõÜä}šÎý—yßš÷’¦½»¾ÇÊr£rã˜?öþÕôæÇóêT—•Îp°ˆ›>ñþ‚é†ó7Þ§µé>›Ì£0}ó½\8ׯŸw¦#i—qáø¸uûP àì•Rxz 4¾K?¿ Çüù+÷ØÇzÞØ/[šøþ4ã°b@tâÏõŒ Ý£ßjDöHÁá}…ú;¹¾À´þ^Ñ.£þžˆ)­÷[Äb%@>–ý¥y l½ë¼I±ªk;âø}º¶(??ÏÅþ¨Óe&bôG^ð.êl"TðÂE}ÈçKE¨9¯-ïƒW#ö0(^:~v€óD?¯É~­8¿Uö[ÕýÎçr‰Ô®¯û/?Ï},z•Trï|>Uõyoì§|?ißîôÏŠqÝõy'…´w×#<ß]LWœßÂç1uñóæuÞð<¥Ôñà×磪SäÍŠ½Ð#à {$LØ'‚a›ô{ÔÊ~Kê¾ÊË5evþ¢R¥`LÒü/ò|&[†ŽÁì·k*Î_‹‚•s¼Jº8p÷!•í"?m×±ºº¥Èqg~òñä×™‡÷%·$öëàóÛCþƒ¬µ=xODŒŸ§{»R9ïÊ +ò_SœùõòˆGTPÏ/)Ï æÕgø{oùEû©í‹‚ŸÒͬH˜W{¯û¤RHƒ²]F¾áy¡ò]3Žƒ­gæ§é=•À{{ÿj[üì÷_ @•g×gñù «vÖÅ~I} £ ò™ðˆÍúÐïå^³ïଷïËÍ~ ùþÃÏS^¼v¾òÕÓóÎê˜tÜÅç»§óyNô¿å|žì‹ûQä·æ~¶rϪzÏ£¯æº¹ÐåëìaZkZŠñ¦óõÊüö¸gç*ð˜>î…¸±¿¥Z[Q½àú«fÖë͸ ‡rã^è¬'ô|úéßX“½·®çþV\Q'Åç?]#?m÷¿§þæ=ѸWdœìs}G3´1åü[:÷Ö¦ø܇ÀóêÊï“ùŠxw¡ÙÛhþú"~¡Í‡ˆ'‰ó^/Žl<#¹^Þ›y>Íά™çûÛ¿ãOù¥°_iYù%ÕÞÀF\«ó‹ú™îü2nx\Ϭ¬ž×“ûYö ó‡ ¯£0€ó`åþ^öž;òMfüt~¤DÉü;È˨I4•W?Dô7üú$[RJ=5/³-ÙGR‘ù„ïq2§šïe¡²OªÂ HºXýÍ?S}–‡­´Æ€~UŠ9yÛ²²ˆ8ÎÃvþ¬Ç·”Ž¢_A2”GefJOEÆù¥þfÿ’.û›Á|B³ÆARD ï«â²®~ë©ÿ?«gA?Ôn÷SÖŒk¡ÿ©œWt½ßø~ÛÏÓ›ó ׿“ø¹ðmÖWC¾Fè4ŸŠ'åËçEõú£Š£,¬£Æž(ð—˜ýh£dNÏ®_9¿éú=á ”ïõ1™¶²¤(ëµdüxX¼7ÖgÃ1ê5«_¶ÎŸ?þ2'o²‘ÔýB\ÅŸãý‚E=àŸŒ”"°? ûMùõmA_vòCáîðR÷·Àóö5ŸÒ«HŠ7ãþˆßUÎçzæ2êB|bÓ£nd?Âþ£jþSõþV=f¼†{Õ]>Ї®¬—=ÀÏó|Ijë]ìoØ]Œû¼«h¨óâÏóUîÈô%?Fˆ9_Íîÿø|¨ÿ=ÎG¡¬‰Ø{‚¸ÿ%ô‰Í'þ¼röäë=.î'‹÷x ŸG6ž^ó½ßœÄ[¥xù þ§=cª«w©}?ç#Ê!M•v6’2aþ üÓy5òÍ`½¡B/ÀÏgÖwÓýMœÏQÝÏ<Îy%ÿoˆì¼õó_#pˆçø„×½ó l·ðº÷ƒ ›ÅtpÊ‚øàuï_8Ì@xÜ#|ïý #f^,ƒ;9â .ì§üó3ó_5~—¸çzþ<æMùYm¾’r½Uç£÷yˆ˜Ÿ×ÄÜ%lY? Ôw¡ÇÊ÷_`[VUóÛõÃXÄÿ–¿9¿-ljù‹ó&šâFþaý0&ç]ý¹>åê½P[t]ž‡=o÷Yc½;’Þoîí"_ø|hÞMþA…ðï ¿ÙÞ«_÷ó,æX·°kíÖã)Ïõ›‘*ñ€Eü$éóïXäû°0îÌ_Åõ}X{õ¼»rÞ-Þ@œ¯Åü´“Îòç”õG÷yãfk¦œÎðçÇÎû±ûütއϪX½š¯€:JŠÄc–•ÊÕ¿ŸÐTó÷ñ^ Ÿ1ñ^ãç=8?ç¶LƒË6Þ‡¥ço¼°éy«¾>Û2L<ÕGi{Gù­û~̼_µWNŠ®ãÏxCC½E§âø6ë:/Q³^#3Ëy"ÞÎù¸ðêtχÅ7¿b ;/û¾í>Ÿ=ñ}°Uwõ²ßëxþ¹ßãS¿ö‡øI€ºày¥&ð ìÞ—ˆ/4÷k¥Üð‡2øýãÂ÷ãS¯àùþ<ñüÏ«>Ýœw=újÆójÄ' kQ ¢Îz~ûÞ/÷I¼£ižA † çù¯8óÇÁüÖÍwéüºþ~ÔœæG£z»³,V°(ä§•+Nå[¾\"Þæ­ÐaŸÍ:Bbº'×;êÇ‹ûƒÄ|¸NÌ~c>⛲þ¯®Òn õHÕó茉ãÔqøì÷X?vYùÂRfòyΜw¨ÞIœŸLÏ#ÅOt½JûÃ/ÏõŽ,qŸæ“‘_†ñøL a7ŽÜX¿Tû„ó7eȰˆ·¼ ÷÷ù¶y1žG6Yˆ¿$áÅŸ«æ¥êï9ïT~\æ?eã3µßæ—æ.ó§4]9¯ AÀ;à¦èzÂ.\ÒÍê’›Á|˜|Ð}ê‹Ä÷a9_1.žWù}p}ÒØÏw׫Eý½ó[âù??_ýÿ~äkäE>³40"®ä2Og)Âh+¼r½qS>,гâ)Åç¿B¾ Íä{ZŠõ,ÙøçY§;¶¯¼Õ?å»ÈïÛóÇI]¹-WÅÈwñùíj<uâª|Wôõ®|×ôõ©|ÏcW»¤qÞ¼õÞG©Ÿwð˸w½ðÉ]®øó|µø}/ĉçAºgËøºø´ð‹Çýåú^û¢ýè¢ÝûÅ:ÌÔüd0_má÷µ“/e5…Ú­SwøÔ›óÿg>í\2ûÎâÀkûvÝÓ~o^Oa|øPó¾75‘?»¯2Ï‹ÜöÌï=x~ѸðüÚ‰wnç?òq¬c ÇöËó—Áü6=i¼§ç/m\ñçü–]_Löó™õÀðæN"?c˜?¸Y¿ á¿ð­~_¼ßæÊzCïÃ4Žš'up~«G*¿ÞO}Â~à .û³Ÿg>š ê“àÄÛóûN¾Æ2_üøÌ>7êuð¡ÏÄ{sgbQõâÈæ[o3²ñdê´óú-h|/Åùÿ~þ ñÈf>ü&?»þÀ|:=÷ØÞdÿ•8?Ãω˜÷7Æ"æ{’Ñ(Ÿä|lrs.ñ>«´€„N«çiiÞãM…5¿Ç%q^&ž¸×5Šªû7ðAŒ[Qò :¯Ëñ¾â'b0Ж ª Åí%œ«nðŽ—Í(7è1Ëèü´ly¸PÌ­¿ìÄÙn̵šö<]•’S<ÛÂJùg÷lpúìvéòû µ]ªÏihû8< ö–Èqá´¾µÛ†¯I.L×Ý1:¿! }g«À#®Ü%~ô*¨”«%Ã’Ô²÷­A‚åo3:G»€½÷ÿaºeøþSc^áûò*ˆðýÊùôT./ aÚu˜¢Æi4; o%„5Â/‹z?RGá ûàÅSÆSÊ ½ƒ¨ˆ×bשP߉ÌT/"à”UžÚ¢xÛ©ØPÀ)ízãË)x¨[„¤8…¾ù6ž: ­_§°>/¼ƒ@·2­  ¸e¹#ê,¯¢‡´A3[â$á`±–Ú£XÒ‹0N¡™œj ¼n–û–†h™&µ±»u"?4“_û™HžiÔ÷7œÌÌ"æ¹”\±´s|ÈÑØ§r}ÈAÜ÷¢Tı˜–’c}èûŠƒ(xê¤˶'èÄŠ‘F 3ó\kaý{üù¡àóßðÉy!|¿4»8© ÝÚÞ¿ýýÛl7GܾßOð}f·,Ep¤²³Ú¸Ý·ŒB⡼_ƒ-Åãx ïÏu‹Vªd“júy¹áŸî1s,^ö² ~ê™æ¡eF¢~ aæjŸ{¬ûf¨âËOŠ>›½Ï}dºvXï‡[œG±íõÍþïó4mÚ@mðârúø54óŠÙÁ»Bã¢&¿ßÜáI@EË2d „ó9D¸Ô<‡Öëf‹?+ ËJ4‚¯Öo ¡Þß6¥‹]ð†-K9µö-üüˆ`Z{óáVB|òM¼÷Œh¼"¦ '?•zÔ#q¨ e¬ïgÃ10ÀÁu.cA~k±6Î] »¸H |í.>WÊ7’;…3Þó‚ïÄ4œÓÁ»šàÇ, c=þ}œòk¹¦_~f'qÞ"œÈ¼ÍRü2ób¡]PÅbcdY3Vöwç&\¼c÷s‘(I¨JÖL;i &Åño²–+bV“ÕbN€ŠÄÅ›0FÖ²LÄ÷!ÆMA¸¥rðݵS1ºøÍ-QŠ!DŒ"1P5>ˆÉzß,ª\ ÂÀ~óÏ“UHésÄøù p<@f “ÆÀÕ[W³ùçsJ9 mÆ‹PŒ™ùï»!bØ‚—gi9°‘ÉbH7vòA¥ÁVåÔ¶=ìõBÀÆ'kê|ÿ"ËWÛ€›,*)ƒƒÝA¦ùJÅ#§Í…˜_\âpÝA_‰ge²ÍK/PïuÅsDŠ=aÀ[öý1ØR0 é†¯ò“§“Íô""±3»U9ÏZ<*–©û®R mž¥ϳš³ešºUкÍúUåþç™^<ÓbÀCú…‰™ ¼/bžñήAÊ©9^G&^*GoÖZ»IÔÕÄȦurœî17;·µâå$w1R™yƵÙȤ~%vÁAbšààŸ§"×uæYH|‹?Ô°ÐËÄn^ˆßÿîCDÞ`BìÓæ öÚÓ53 ƒí©ÿF½º‡† lR¶9zÑþì_[Öj• áªßwì–l}„᣾k¡­ŽÆø/Ä¡?]Äë+¼²kQ;^6€äZ¤KPØMÕâýç…ÁYÄÜ[܇*Có²…¹1èPÌÌôÝ+žÇ-ê!Ùݱ,‚tEsÈܱU¬'5;3Ò]Œˆ›öcð9Ÿ$æŒâÇz)Ó¡WÏ%ùŽv¿ÍšŸÛ&“Ñ=çÏÐ/ÍM•<昅™¼´Wqæ£ðþg4ñG°G8‘é‡÷ÊCï¥5ïÕ,VJ8Ø œ¿dߪx]ñg˜jü;“Çað·ü¹rSy®J2Ký”÷=»ü'ÞϽ Ü*‰;á"U~Yz[{ZWóÉ«»ð H­Žîj „[„ýY÷­¯ü:­±gòŸßŽ;+‘äöAðUzÖÓ¹ØYãø‰ó²}ÛOHo/;ЩegÁ´žŽŠ·0§wH&Øk'#î×mž(oÍ-yìÊB™·Úä÷/bS?±œÞ Õ¢}ÈTÉ–=Èøgˆ±H¶Ë@í p¬ï'À•´òº†²r ³|•K“Í­²-ïW\?÷p äv8`ÓxFßÅ× Ùh±RÖzïwC7oëX»­>·˜Ù¤ã™Õ\T»ó¬"¥köެɧ“šÍ]9wSU$ÂrÂϧ´°ÞÜÆo­¶ýP€1TA†ŒT½ ÚÁ¦yNíDL/Nÿ¬ÝÕ„wÕÛÒñ͔׊úŸµC§J¶‹hfW‹AŸ´-Z¼“õû&.3 *S=}û»Õÿô”ÙR]ý%âGÖ ízøk½¦‡“÷ûÃÌÖ»EßÉ¥ó@É>ÎÈ¥ýò0ªÊÜ’‰‹ðý·Õ¥ØÖqiU…'œoáå­æúó¸D]ƒs hý'ÄŸLZ.­’g5µËUîÄŽBÂã`<üõ B,ƒm“ÔÀ%iÕïÆ¶…ê,D<“¯Rh»ÄUÿ—«]áîT,³}ýÚ² á%´QD*&®&7–qs²ok[–q9ûæì웆nδ3ûªìè›ÈØ\`œFiuÝ«D<xGû/òv™ëCñnLgÈ·BÜtðÌ´æ©2V§ÂéÊÒlZüàº-Ü-{ð-šI¦‚7ªN˜J¿÷s?ºG ™_?Ó§ÛîƒÅ"ššþóõMåJŸgÚ©pîø¢Ë'Ð~Êz³oZö–È U¯Í2#v¢ýœ¸ã}Z`–ð1ûVöÑï+Êïd£Îæ’ ƱõŒ¢.˜‹ÕÚ€*#<W|³fêUSs kñ‘.ï¯,2×¾&?v¯Ÿáç·KxZÖäÛR2âcz\'bMÐϲÊöÛS¸|I¬´K¼ÀO¯7‹©q@Ëêؤkz‰Ü›tM7šŽ_Ó‹m|[©Vë§Óúi<ÃáH¹ô"y‘:~M—;÷ÔÌÞŒ@5-¨PaøjŸè¡î;ãª0!äREÁó”—;šŽ<ìaíûÁOÝŸ9`¶BCZÄB…1§o“ŠlI—¦èýW»¦âÜ`·B$¹;CÓŒà뚪/Nû8 œ,–¶ˆ!`Ð0×\¹1fÁ *8p8ù¢ÀC¿(|K4ü¸“9qcï9»ù% Áæ1 w2ÇžZ=B6óK˜–c£(qY§wUýìaà°Å{¸»Ç}pzò[†ù-Ò2å#6kSy0íaõs¦æ˜:㉷¹Êét?ŸÏ¡jÂ-¼Šãýˆy®V%­7:ð"tªK˜ïÒÀUn’²ˆÆg2tnkf¥¾I|K^qNs¿Õ¸~í:—CÄŠ¿ÙÑ4¹ Âü)K÷ ºý#BfÊÄVP*ã‘íâiI%î ÷{·»<ÎèV²Eall·v“ëgÂlÓxt¥‚øø˜ˆG累ʉUî¶HŸÕön8OïöÔQ•prÕuÂGâcC³áOæÂLa"ûCµ4ôšýM#.‘‹hÔ5¸ˆ¢…’È­•‹*4ªkû˜‘VçÖ}ë1¹ ~ ¸]™%ý‘;mÀÍÊkÒ²csÞ4?æÑ$ )LU׃wRš_ùæJ,t"ZêŽ Oè+Ö>‡.†˜¿?¤!²$æeí©À¿­5>¦W0°ê3¦6ƒ8ûË‹@8G×8u#§Q†‚µ»Y¼%ºýé† –Xfùºc÷³a©$øMjz!ÎŒ»2™x-‡ZÙ¥²ü™à]<—YyúÌJy/SØÏ0…¢š{:ÌWË¢\8FCÓÿ²k½°ƒ3§¨Æ 5ûœF`:Ê »zê•tQ.<œ•+,ü®ËõËÂå»ê+ÆZð ÷õaˆ.På×4 mKOŸa°ùj•÷wa“‹˜-x,xÑ®j{à£Zà¬Z•»b ÀUç0âÄ?¯Q+”O¡¯C@\ˆ¹3G·*Ú ½âÕ&Ð9qAÔ*³iŒj'ãäx\ñGÀ7//ÄÔaáO°å&ü׈A(øF=°ð6 6B #æb+Û¥0DÁk‘Û¥ÀEk—0@'@Ëö  ˆ?§I ÖÈÀà5­AèE‹ H£wþŪ,'=öYÙü ö+0å˜gÒ@oK¸5ÒfeGHîtÇ—Q¬-ƒ&èψŸ ™È‹lsVšœ`uá·ï}^žJ“™ô±®4IFXušìûê/SQCÙÌÑ­øjwS¸ÚE.£ÐÎÚšémìwŸê•ÀÃÚWÙ“ïÕ+0õ/J”šÂþ3|BŠ°Ò­±K`@ bWì…yK\HìíZØÌ4‚<ÚØ‚AEW^K况vÞi˜Œ˜¸P3ô¾ p’/éoñgl™‰_ƒû«($ÜÚøU«o~ÕËðü³bsçñÎûWqóÌf#t’³]ÝfìXÆ“ëÈSü¯ }íÆfßÅ„Ã'¶f ˜q‘-#8Å¿$¼çÉè :K÷¶ÕÙNHË8Žle˜\éšÏ¹td7;B}¿ˆôÒnȤ2¡}qÇÙØ¾¨ò(TçOôAÕ»¶Ÿ)ºÀ^ö¦äH£öÞ3>°U .ŠÙg0ªSç2N]Å`´ëÔuôý§ aˆjØâXƒ°íÛõ"šöua€²l딬­ÉK1PCXï`ºÁxL_ÅIäP:ÄCó "kUWÓn-®« •Â%¼¶[90jÁj‘˜IÓßÚµ”8ÙOÖ®¡ì$¸j (†¢rZtar »ê#ˆz•àq A—åx2~*tbÈY˜s(Nª¡gs®¦õdÄ_È\ngJ¥¦a†ž±ÄÐ)ÙTGFŒ¿¯˜…¦!âa1žÂ¸{èt«V<Ô¤ˆk:9S?¿s ~Ë¢ßâÏœGŠø¤$Âv‡iBÄ,D;EW µ‹ƒh“9ªYT‹´cÏBxyžÕy!t/6Ì{á;9øCHûÞÐ/Îã þ0JK©F”¶Ynô™Nv‰›`ÑE<Í‚+Œz|?ƒ‹à `½ãvAÖ…$xûUïk!Ož9kmòì½²ËÙé)Dãý˜ãín½ßu\Ñ¡ÂÙï?þ>mJ S*ˆë#ï~Ó=)¹¶Ä–ÓdŒÏsƒp1UìÙ EܼoÐùç‹÷ ‚—­úÉ] Ù‹Â5[kQÝÉ.±Ñ„úW–úa4‹1 ø…wÄ,Œ'Ý)³]:'Õ³Ud'-ê³]Q'&=s`RmÕñÇ=M7 ZÄ€¢Ü_«Å€6á#ž&‹ÇÒ[-Î>xO›÷$*Wˆ#æfå艘iÉ%âjúY¸½U«ü®B÷åâͪT»Mº—zo.]‹ñüCüéýˆƒKjL9a® 2ûa–p|×"ÄøÒ„º8D :¦^nà•ÁUJ>D1û ë}ë-ì³ÙN²ïΨgN2ÌðTØÚ$«Þ„ÅqñÆC®ù~†@Ñ“Ûß qÅm8¡¸‡º<~CúÉŽ‹ÄÊåù¤ï(©šdÍ3— "fLL!ŠP–Hö+PÃHŠ‘àŠE_BMã Z($ÐÄ:qÀyqe¯z 9èºÉ²KqÁnÄD• ¡çcÀ¾PgË`*]‹f¼yßhÈ1;QéqA]Ðq`“e›%G–,ë<)÷ñc‰;¸ùP‹JÜ1ˆ,ÍX‘:NÆ@øpÏV(.Ðæ‘ˆ‰~-Â,^ÈËd„hzê‘L.B 7I”Ó©^©_‰‹_Sß¿ ïñ6i¿Ÿd~e²°µmÎ_¨w9¡tÆ*Ð6¯|íG¾ïý>p+0[æ$âKb F¼ù|ð{–&$â¢8䇓°Ù2(˜Ä´‰x(Æ…=í¾“lŒ”7wÅñþ8þü¼áã µc®~srß–™­Á-šÏk r³SSÊó{šØÄ8t=áüv­ƒ±ÓHy¥&ûT@ƒ<ß§€4¿UC‘¸Ù¡^Ã>L(@«ž7¾?ŠÄôê:ãö¼›ŸŸ·ã§ó•)ßq,ÒY†¾p÷=b%xüƒr² /·Jä²ÎŸYЉZ }G§)Õàó–ÜOÄ1ýI–y^÷ÁY{ ý>©™B‚/¼–<ï'Ê–N\°qŸpJ6içš¶¹ÊûHQÄy_÷ËÇ¿(H•±pÈEÓÅOPJclàE T률#vk€Ÿ—¯„]kæ$1b-ŒÁ!b¼?Zµè•°Çò©±âRqßwÉ4;˜º˜}œqÛ,IíF}ÿîk# úÑPÂ.I` Ž˜ÖÒ/Ò*5 ŠÃ¨i:éWi}õ–ýy¨Ùå•¥íÈR*dF,L#›"->m¹ã²ÍàÒvmö¥=™ò¹´Ë­ ŸÜÔªÕ¤ÌE¸¸z¾@ª%mÙãçww±•p²“ÀêL"Ó#ÂÅí]©ÉÄ¡ úRݾ6G¾Û—Æ?&uš4ãỞ¦mxö8¤xyÎzt¥Sƒ:w_ÒÔÌÍ]póȬÒÅ×.ƒ]Ù;/4¢ŒEÛúˆ9RƒUuQU=Ãç,¼§PP(b&}yNäü¬£?wp{yaÄ>XdÕâdÔ¹-]œ\@çÀ¦g¿ÌûðÉ©kÛºÙ£er[»©›h•#ðn–Ä‘z·æ(=)ü›žo•]¿žÝµ5o 7¾/Ý»Eg,kàGÒ©Óú™?_ ¤<6#–æ~Õ¦.}®™¤â*¹®’ ²1?Ÿ¤Ÿ'T˜Ð«ˆøR¤&ͳȻ«Mž&(Jãú‡øãûZ Gö‰ë¿‡æeKJ mEl»rçŠÞ5¹.{Ý¡­Íçs Ï¿÷Ÿ¯"¯ÇsŠ"µjé3´ÑCã/v݆žküýÅÞFý梵ÚÒ©)^¬×™”ж,J˜D,Z`¼Gñ÷yæ𯯅É÷fdž71YŠ<$c͹ë¼ÄvzÖvœ— ,dyeÆùÀ÷k¬È#,g¢ŸQCp.dð:¨^›¾¿8Îh§(-l"ú¥yT­›éÅ2áK*Rb!¤Š5-Ì¥«ª–ÉXCQãûm±h銟î»Ð,ÚŽ8vþŠÖ« EfãóçýE¦HoD…(rŽûrû¾K¸‰BŒBÔÂZùòÍ.Z†P {kÒì(ž_åσ©ž_óý–ø¼ÎódüÅ[äGB3§M½dBS×MBÀ¥!S§µ-±¬Ù|„—ih„ÓRë·µ4[µôÙ¶9|ž‡UÛEðžKˆÅG¦æjµWÓÄJpÄ"77£"Ò’n_QŽoñg”ÿ@bÄ2à¸/-r¡–G„*>ÅÐõ躓Hû\ª'ã¥~¨]Hi`z±ŠÏ˜ô/iàÆ ‘¡6ž!C#y-#Iä—ä’¦sõb*õ¯"%iMXrøÇ)C¶DÔûÆZ/c HX^ó•}Kµq¨í÷ÐA­di ‡ØLa^ãÜÜD¨Õ_Ÿd•5Qòp"…ñ ØdƒÖi ’ j§/Ý•)c™áý5~,Yú°æ#Ž+2I¨Gx#fÒÕ·x2ÏT}Ã)YЗˆºQèŸ}û†¡>Àö0Ól)J–J#ë Ž#’…ùV²$¯O«dIûë¤ÿO})Ч³/ÅÆæÖR‚Tx²†¿Ø}~¹ÜÔ¯ÞÏ#7±‚&ì}BÍ—ƒ ‚D(ü`ÍÛÀóì|ÊÅ€amѤ?Å8Õ_ïŸeM£ä)ÞU[• õ5 Ž¢ÁÎdÉa6ï#C% €ìÅ÷Ç@u”U‚›ßãÏRƒ aÍ.—çÍAÎ!9–x¿6sØ‹†([@P´gšz–18“ÀŒNl©&¬ <^÷D˜J£Í!'5ùzö7`wï Gs½°œÈÞwCÂ|e‰ ¬ÐÂù…š/Ûþ³ä Raï7ä2ÔšqóÌ9ŒÚdÜzgΰ`¹T̆6[®ˆ³U¾ÞùÌ9òíuç¼9âC½ÇŸ_w’y=½¸`ÜK1®¯Õ1HBÍ&hlÂ^Å“fjS˜P“9¯9;H$ÕJ¿f¸CÛžsŠðÓ½2Ãeï2¸â6 “yÝM/œL]wž;¢ÃÛ®pØÖ}-´Äœ¶þŵ´lΕò YÄ‹d§î¢CËzüq]eeê€icî–]‘.P¯#f§³;*wh¬äPaš<¼Õ±ñõ¢ p.qªr®#bÖPÁt½?™sœd¢”æ&ì0»d„Ï]gؽ/Â&¬Hú™[pUx`ÐØj¶Z7¶eOU8˜{x÷tÀ½õ‚Qh[ÙŽ^×@^ŒRUá`î’ívFUÄÓLá×§‡¸?ï‘M²ÞF2{ýgsgÙDÒ„Ïþì$‘Ô°ÕKcŠ…⺠8ãVÜ @D2Ò-µ/<.¬“ð0d€vÖJÈTüßY¯rt'ó¨!dÒ´·*ñœô÷L±©LódjË©Em6µ­‡φV|¾fn7P/4Ülp©‰*^»LþVõ88^'ü9 ˆàé„×z ï5Ê$ó€É뚨vkl`«ÍÛ†¯k¢â "bV»=@°9÷›q½³Únœ²Xf°Cgcz†“ßš°å|5ÐÛ7Ì‹Sí¹1žú ýÉSN}š«ïx¿~(øKzê‹åc)- ªÇ’•§r›€ò6ÍI´âŒ I9½€ÖDÀQû§ ÄB+ÔÕp'`Ü]>Lîñï§©ªáöë‚úöý2LKJ¼O’«áÄrã/S]Tõ@ÙqÏÆBSCÌó¶ÐÄÎ÷c5°ØxÑð6ï Pf9«Æ›rÿ»\Øû(Oðq"NÞ=Šr5WÓ2ši$Ýç?Ï dâEÆû5þžÚ Ûm<„i±ôûÁŒX«"ƒß?®³˜º³ì#ðû¥7°üõî$ž;iëùwO1&ÿî-±Êß§ùýHŠ=•ÕïÛN—¯øó}Ñ9%*JÊ4xˆ˜Ï_ÎR%{J:x~Õf²¨[žÂNU[-èÆÔâ uÆÍ%‡@óùÏ,›ïmòÉø˜T ¥Âë§BàÕPÄË=xôÜEÓ¹JÊPĤ#á$ÉűͲˆÕÃC„¾ÙèÄÔ¡òëš2ÀêºÑЛ=y#5C•t ¯š&Wn3‚já¯|Å“l޳%§cÚHο¤w§VÆÙ•³R{¡~UΖ/_“G¤\}p¿÷Aœ9E<]'wÒ»éȭ܈ ì'1Øó>bcÝ*m’nû†ê‹ÌVš„Í[©¾ÜÚâÏÏG°Ïpõ¤EÜAæ¶…>RüÒóï,¹H»NÕ)ÌTø|l6(ëÞlnœðb …å_f³‰í:XRX¼tc- ÒÏwóJßž"é}{4+«4‰B „ö§iˆQ§JöÚ”Äg¢ymòtm/²ÇdŠu~?að­õ€%mn,ÝjßIÜC0<î0ÄEï× l>܇Ý=-³gQ›GÊM‡íFv$5#¨}¶šéìbSN¿/ƒl·}رûƶü^_( îTÞ€¹]B|Öw §”b§6Üå™:mL1ñÉ _’©¯F"öãÀÆ=:OÄ‹avÁöÛë"Âðïãˆ-î›ûm*ù™xBâDª"T•pU)´¡1CɆ÷£U² ¥TD¼k œ¥‘ÝÈ>µ³$O†í;Íè“a³Äýœ²;µ+’ņûôûÈ}åŽ1!ÞGN¹^‘–K±³×]›ˆ»¹Dwœe_lêÏ}ta_ÜȦ­\犘¢F &ŽÑG7Çà ä,=è«­Y6J†b9É ”)¢ÂÜ,)dn}ñdI ]´e6f²:%R¾LT?§tÜÇäN¿i7ÌEøVÓ=ÖaÙ7c6ds‘§ÿSi¹—c.a‚×íʸ壤M•·ª,½.Ÿ@äpÈWôç•.'—NA$ÍŠX‡€¢ƒÅê»óûE…ÍÜã‡Â÷R,ïê¸ð¯È „àç†%1%ãB0]†^™»>XŠ+Ùeµ}‹ÂW&ÛF/›„mÐ×N]Š™±ú›ÚrÅ’ÿ 8ÚuiŠ}¸ >}uþN²Jk–ü¢Ó0Ïw4¹´¨"ý7݉KqøÔ2ÙËÚm‹a‡Ÿ7cL±0œø2ìô.Ø›éÆ–ìxâù{ø¡"ŸÃ†ÞÉ^VIxó¼sH9èèž“q¾Êßf þþÉì¾³ÒRÍæÜ,ê«ût­´Ô§¦-úÞè£[&W©˜ßšÞËXÆGç–$:ÀåìV5„CŸœSû… z3½R§!ØÓ1Vì¼<±ûì?}Åv°ýôuT‹?¯ Tà«r–a›cgŽþ—÷®j’•/±_ÊО…²äìKöGÁXsY¢L÷ÕSI¸béªÀe9;úË®¯ÈûÏÊ8™ס;ÍÉHÄãN™­Ã6дA¯Ã*`|½i…RUÊg%:÷M—¶VªQéö¥Ý8nÞûšœ=Sf¹o‚EkîývJÍ/¸÷7ÂÐ6yöö´—“ 6.vZŸÑr‰žÀKsq¢ÌÎ{6îñ­¯—d2ž;'Ÿ*ÓAe‰léaÌëºæó±l–i¦æbpHðoœ M€4ß<©Ï54‹Ÿ¸ëЭ¾€×!PXbna‚ÿüÅmÍ!ÆE)¶¡ežE9¡ ˆri—ߨECI¿ÙñA…–Uü½NÒd”ÉK:¥‡Á÷Ľ·aAÊlF;¸_ã‡4Ðý÷ç¿ ´ó¢‘Áû}˜[Åeƒ‘XÔ4,ö¢Šx¿Oóp‚8-uÕÐêA:+ŽáÅØ6F@5%™ôßV)YCuïËhþy¸å ðÃkÕ3|'ñûUNû2¨†¡ÜÕ™ÉIK⣂ó áºcÄÕ§NyÂSBê ¯ƒ2¤7)#~BãC*à¬Kf¾aE!Þ¡Â×QÒÆÚ<áàk¡Zœå+ä¥0?ÜMÇÓ!¹: ×!ˆMÁ¡^{ƒCŽ,-<#&c/á _â]¾ÅýŠŸZ±È­Iê©fî€4ÝåË!ãX™´Òº ‡Êq3“»rÇ£PµR2KPO ²•Ž}Dù+´3àóøSvÒ£w.ñÀVç©+ ‰}™³*ð/ÈÓÎv’ÈfÜñä¬þÜr³Z25s¥ÆÜb•cyóëôuÚ‹ Õþ@ÃS²…D†Bì],„ìtsÿCüñùPj»OY”³ˆîóÚL{ÿ÷îídŽh»©ðô¨&y²1&ÉP3bx¼G‰‰aÇÀ fã0“²„wY[' i‡iœ¡Ê*¡õVM؉KÛ`óÎ!ôÂúoJÓ!4™žÅ¯ŪCˆÕ‹ãiɪw;à%P&°©qâ‚x[!Ý~šÎQûÄ y§ûÏ+yœŸ‡KDBÒXˆô‘Ÿò?¤ÚîGHev}WßÏQäv7ó Ӕ݈ܽLv×9 ³niĺyÿ6ñ¸+‘ÐÞ|¹Õ«>·J‚i—ðqÄ…ñ—ýåŸÏ#±©EDµj·¤c¢y7eZÝØ¤ºÞ K„i¶eÜà]*Q™jе{…”‹Í•æî¼îS=B·…„ÞñàóOB+è^lÊh$”•#æ Ì$¦ý››*ü:ϼø|’H…äî LAw„ïM!îŒFCT5!@¬cVËDÆ»&D¹fÿ}z^ÔeˆxèzŠ}ýF“ãøãó$JPifü"GU1ÿÝ4°v=Î|~q¹ðs qôA]=cí0“<0ìjÌ®¬ïW’1A˜¸CXoeǺúõßñ3½‘€ÝeWOĬÛ*Ò@œ¯éù!>IóeZWGL°(šä›-^Ä1ùyÇÉq ÙÝi»B¢ õÿ<ž‡‰Â'‰Ø>¤·„¡2„~!|‹©6º€'­¬6 }H¢TqAL+ׄÝífÒÜZ7âROÄÙ??7¸ÅïóõB7ùå˜nòÏdŒæxLêó‚ycZ¢áeÎ놄‘ íÇ,“±<¼<˜a=7Tr$¯¤”b¨åˆðýq ºB&ð‘Æ¶ÉRƒSÌ É„ñWìÅ"Skù›(ÞÂ+.Àx¡Eqƒ²Ã@|.¼¨'†ì'"á‹a9þDדauÆ„Í#¬&]p‰åã3e­sTÙ+Ÿ@¼yûæÈ¶ƒ¾Ž,Ð $¼à ìøcìש´ƒ‚=+n*Øñ{µNÇè"4¬¥ëY BËLPÙßÄ‘{r}ÉÌž<ؾ0ëAZ“D>Á=¾±á!ŽÚÐâY‘µÊ]L3îºêJœ érë<7™™%®¶¤'¥Ô£ÒC©IW47Ô:¦?ğɆ™Ÿì–/OÁV) !™J [)ý#•t^m”.)x¡ízf#Wï²XŠP‡Žœ½ùjä-J¶v…_÷›Q¯ÊbȨ3uš´[© ×ÿæ{’8?Ú"FL`8• ˜V·Z,Íö‰'SSS¼…ðó¦àþÈnݱCX`+._J¹ÁÒÎ>¿¼3?IºhP‚Ô€çÅ]AÄ\û ù¶Ë?;J‡ªÔ±T:ÄP±›oYàž‡“i©ZgâÈ¥¹u&4P°c‰“šõ¼•zøˆëÅóà #EÉð|Ü™¥/'±ñ¤žÖ\ÕˆÇSingï÷ 2„¼ÑÀFn–¢j”·h¦6ÊYD¬N GKš§A(Ÿ©ŠŽhH uñû1P¸RSƋӼ’×Êð³šÖÒô·ÏâÐÌUGcêz¿&#ÛÏ–Þ#~d° ‡g+ÊFÍ:ÑEݔҳQ¡ŒL0¦™ßvÚÓF¹ð ¸X—ã/øÜBŸÊUüò‹ªhV×z„-99ÈÁyüLn1Õ©NVœ©¸¦Ó—%n„¨ë÷´)² TƒYFJaÂÞRl ƒƒ9t8ÉJ;ÌwHÂ÷ºª©O°ê>ôs—5üjÃdFèb'©Ì«II (Â1/Îõ“"å»ý^[q•Ïî£!¹çn*% [wwe1šè¦.^I®=Vå ¼¥JãÊ×D(ˆXkgÜêöËK@".^KC*Ú¢èrM-b-µaqÏÇ_¯Œ…Z}À¶ž»âÅçuºâÉ ©þíjŒÏ§ÉQ3æBPˆÝðcxL]™1ŸGI‘TÆÕXè]¢ÔÅ"£-§:p±ˆCNbÌulÛW))ãm»j/Ôyßúy”£“Ù¥®Æ„xŸx2~ÜB§iD¥EÑëKìTƒ.W¼¨{œ¾Æù|ÿB¬®Z±%¸Óp{m-&ž·á˜Ek/_ãöø< )ÒTU|áy@_Ý€vàºÛõùGy@ÂB¹ÑæG™ Ûá^Ê‹Æã§èÂÏûPI±o¢4Äó‚7Í2*͵êæõàÚýüÆIeíŠ?¦²%›ù€r´‚‘cKêæ[‡Ö‡H5<@@d…F^xA0Õ8ã²­81žI©Qß¿ R¶а„ŒÑce¿qÏ7â½”Ú6­ópꛌSÝúÚ†t«äð8.ñÞŽpÞÆûC0ýy2/kì€&a¼-éWÏV¨BQm*FŒxßQ÷æD‡]—B Œß¯S÷ê}§OeÍ• nŠ_ÃĬo3Ä4Œ£dd~H#FßLÞ¨”¡{Ô"ys+³@ã퀚yd…ÿ†øS¥­s9®Ì!æo8B¼²%æK¦u–y£(Õ£ý \«T?àZ€“SC½è@‚!2O/ÉŽdÚŽ1Aå Ýꬌ^3,÷š‘¦Jc_x W¯´€tŠk¤ëšÉ¼6Ø™|‹?_#Ô[êÃûTPu8»cÙ¬¨»©`™Ér‡’YAW­·*h^ h:Æl]ªˆ—gè…Åhð5Ñm%õ_v0#(0_ÿÑÞÂP½¹‘»ê‚éFã!®BIy m*nSëe'Ž\» ùóìí!˜0´ìñ“0ØÊìnO‚0":+íýŠ??¦âÆc$­½eÆÝ¦—âF¤Ü?æB6dׂNÜî“K1Æ9ùŠoû ~t¿®•bäT…ãcKldŠ•®j­ù1æ[uö-þøI¶®¸`^ÿ!猌 ›(Pš®Áå¶Ä †‹Ý b>sñ¾—EUúÛ•‹12­Ø”ŠiRÉ¢;{ÐÑ€Øov·=ó ‘¾q— ÉF…S»\“¸lÃ0yñ˜#yL;{žŸCÿs\½í6Ž7ãçW`X`,TË&Lm„BnX_~„LàÝ`Í|EÜT*õî„ÎÅÓÞ=V®ƒh† Ø;ݱ ÊyŒØ—¯Ô£å|$ìÝÜ;rª8ÙKf'ì Ä&Á¿Ñë6ö’¸q"‡>xjv;ūټk†Þ–^Ë„i¹ïe~?¸á½œ•àÃÖkÊcÉ×~|4êÒØûX°#CÒ”·-f}°&ù9akÞvÞ—ê´m_B·N¡€ßÞX˜ÞµcA;ì§Þ.Ù+ÍìVÖ¾ØÓƒÁ ×ì/’-?N)]l¸yóŠq}¤;ã-¤¼°£ÇO_ˆX/ö¡3¼$ö÷öû¤-w›&ËKü²Måé)šcÁ€VW sêV§“JÈûÞÛ : ` ¬wЉ¹1ÔŠôÛœ®#=Ss‡‡³Žy†à±H>³®‰.xùvBÇÏPp¦I@ÇàËêí¹›ó”5»ðß›ÁÑ¡´Òìâ¡Q›Uw×Vwä€Kã¥`™Ö‚-|ŠÎ [W»_rÇŠCŸ o/wà2°GëØÜÝýVýûÒ³ãà^ôDÁ‹X¿Þã³âÖëp2¢åFÄg°¹øõa\¿kpUü0;âmˆ-›“cj¬ŽÌÌA‹çÁõI,z¬öc D·è€ýãÃ씂hZIP/ÿÖ«á©Ã}—öÂø¶¥8p÷¶óøîŒ$Étò -ò! Õ«%äAHD7ô@·Ö7晀› q}±6Õćúô= 'IVb ý‡ÆÚuÈ¡O’±Ê¡B°ÃÂÊÜF‰øäNMh.ŸÇ°<ò.ù‘ű¢zrÛ¬*Ý´¿‘FŽÕ–Î\G§‘÷|ªÞ†zU¯',U.o.l#ÊÀ½Üª›`•DC2U.nÇêküyD‰€f¶bD)VKx.4·Y1p]u‘Ä1©+žm*ö÷eø<#w€ݨȅØ3Á ´(mdcÒƒ0ÐG.òÌp0W1W®„\D – Ë©xÆHA¡+÷@R)ÍñäŸÿ1üìË@'£Ì áûÖšž¸nŒŽ§UË6îö™ôN±2Ù­°ß™eØÂºsj9.Â÷ t…0`õ jÇ+BnÖ$°ô¦èÁ߬øQâÎà×›ùbå01•ò3|ÀV@ì4£_,‚ÍZ\6¯n,=|ºÜ…e©Ò%-Vu—ù„À;7ð7/Iùn¡'1é’$ÙT9½3;F¾×þÕ·à©·jw7^‰·h|êºä ²/Ž'É¡& 383ð6nÍñ!ý7r¨‹Iþ›6 dÓãsl ÇaL–-qü²<ùßÇ™µü³ùVîÌ1›s)Wâ–›*&LJGè(ïîæâñÏ\˜•lþC}Œ·ºŠ‹ÍŠ\ ÊÃã.nÚ ãÃÔ=<ÅÎçbcŸñQZµõy¹ÐøP·7cÏ8±f~þ¾Í+ŽÜ–Ñ@³mmtФyz­Úøó¶uIoi÷R·qÕÓ‚ ÔññæÎ!?J?i {ÝE4‹Ih–å®,DDÓßtD’ÛƒìÎÁRõ{ˆçu’ÑÞ<æ¥Lø¢{¨Xý”²aèAØzÍ…}äßãÏêôêc쇜¨ÍÛÍhçŽÚÁ¥mfm°\ ƒ™¦}äL9jÔ|{·™nšFPt¢[¤²O X —Ê>+_CçÆ>ª›Ó cŸ’3óû ‡ÔâxzèÜXÒª6:%fó[´çîÓ°Ž› àWÝâÁ¾jÒx›Ú9Ù‡% 1vä`þ½OA‡ã…XTTº$é|!fîÍþûЧiï·‘ªvòQT&¡}¿±“kºÀé† ðÀ¢aË•„‡1Žã Ú!5üBÊØØbë$p‡Õ(ïPRÿø?TiRŸ†°{¡®c"ýq_N= dBs°÷(S"DæRYÆáòàlNj¼L ¹&‡<ÜÛ{‡´„žjš¹. ðPº«MI4…¼H¹ªXš|\AV${lžµyÙ¯Ã*¼Û³x@mšÙ@è…ăæ~c‹íjú¾îˆÃnÝùÖV®þ9³Š½Ú´ÚtF› Õ–‰µ4Í Zòúƒ°’Dº½×úZâúC½°M·‰<øûŠ·•èËÛ…Y ¾&Ñh¹ÖÜáqôT¸´\ËáI' ¨Ê"+5“ö|½iQ¶Œb?tÓ`éõßôµ¥s A’J=,ÚO4 Gm:.ך°aì¶µd;Y½õ¥©TõºÍ¦B]Þi— ëÖçh ‹ý<ÆPŸZŒd"4rV³PÉB†´¹Sž¨!°XIÅNy`Wù8qÛŒcšßt¢@*……ú´`*Çzý¹I»od ìÊ9vÎ%øK!™ÀQä»Ëxz§]ŽBÒ‚ËúÜǦ`k²PÌ×øóû±)Ä“¥Í‘7õøÏìDv"¶8ȃšÅÞÕúýãŒ^h7R½²Õ(øÍÝú4éx&n0nH  •U |ósNÕ6›ðζ+!¦¹%~|‡íK$4E§ùºo6«ô¶&Êäºõ£¾{¼ÒÞ£6hÛt<³›÷z@Íe,!±f¡ŸF½ ÉQ*ë~û“D-? 6/ B?ÏDÁ^k*Œl-Ðâ÷gQÓ„Z”cØq­Z³ QXŒLÑKyœ÷…ã fª$ „ðü£Áˆ7o‘œ[‘O<€ŽN! ÇÁ¹%KÒÌŠ7xå[Œó}i NÜà]Šm[S,AÞÇuyÜÏ×󸔂ˆn¬å2/éQ ª]~‡5À¯NKVè-—쉦B¼ç!r¹,ÁÁ{wyöQÀZÛs®Ž_Ã+Úüô%'ÖϲB…ò«r|EÜIà(t*Ö}ìzBC}ÞâŽ8Y^7H@Í›à[26ÝCßL-¸¦ÔDc“¡™Ž'åxåÃýøVuvB"–â•n²,½Ó¤Ð)\m½d9ú¢Ì‡5 G:2.ÕW0éX”½ÌÙ‰ƒN£Ùr¾Ü°Al¹ÎI™òEž3ÙÔÔÇŸ(Hšâ‚þ‹<Ôæ[Ö¤Oü<%$çÛ*0aq­¡k·INÕƒÄEY˜¦T’×´F~²ÛX7í>i–7M`y2©å÷ÈõkšòI–'$©(þ Y—ÜoŸlÇM6…ãÕëóïÕVïå¤\þ|jä÷á÷£øJúü‡žÉ·çÕ7S¶ëíAp#';>qí!'›INÊ Ýžgçû÷×ç›×âÏÏ›L±TÙ”í:ÎÁ‹)VÎÏ "ǤëG6(â8_¼•ø¼;c¦ÀР‚‰H–©âÈ¢‰$Aœø÷ígE‰BáÞª,'+¬”, 2(U—,Ò©fl•'Ic¦z©tIšoÕ®~,¡ªSê¶”à¾Yšþû$€âŠ*Õ`ž?¿JÕ¤È(|¯Q+êbcÑ¿PÝ–*9¨Ã%UjçŒ %â¡hƒŒ„?¿–¿Þ§âDIøNé¼A?„…D}bÃ5IzªÝf~5s,µWóçORƒ£¢+ˆ?£ø Ý× á„þm7¥/A§g™ÿ!#¯)H«Ë6“„Ó–-̸ѲìÑil 6MkÖîð,±`£À^ȦÃdØ”­mB˜yË‚jîÚêJ–HߣEQ”¨cØ"êE”š%'5 Ó¢GÃtËCmÛª@@òœÙFÈ=fŠKÖEG4IP[÷XNmj¹ZÖ)Z¢Â–Fr÷Ý1Gh›wõûí9C-˼©q‘<==g&KP;mo®™……4×wÐáß÷="8g^‹2GÎ+ÆW ´$#×5:XÍ%s·öܶ'E§ œ¾—eÅšéâƒ%îð!Ù0]Ç¢j9tÖ ÏŠPÔÐ b$×íÐìzØ@“¦¾ÝZÆ”«ŽúŠ„=k–-Îóé´…ß§&¯˜¸2>²G÷(mÛ)mÖ$ùþ¬û¾J»×2€²? üÇêž6Îï“ñ—MñŸ2o—Ém––*ZV½‡¡¥ Ï)]ZÛÇûC(¡uzÀx߬MÖSSHZ0tÔB›•¯÷ƒßßòc°/¾Oò¸éüû¤HÎF\¬­Šz¤J¡j¾’‹ šM\“[ìJ ´âü>™Ï)C7H_É‚¿ÇŸ=²µ°Ál¤G–êcÞ…¤úæÖ¯Ð!±ik.<²¤ÍÌs™µ›‹>·\hÊëVºuG›9î³ÄzN²ƒTi‚’ñð}`k)XÝHöȺ´œ§åù·µžaÏaÝ,Ï?NËMmðñ,;Y¡`$ü¢¬$-ô¨›2ëG) ”}Zr{¸%/GÛY²£¼Ï2=išï£#ŸÏ÷m™QÉH’U˜ýœhH‹÷gè¾’Ç’d"·ï#Ùs žŸlûRròº @rò¾ zAq†-'‰9”ˆ•]%€~²ÊE'z¶e ˜ŒŠå½” ZÁjªh¹+³º¦yc_Z$qÓ!*ؽ-u~ õÖÜÓqéÒýÅ\­¿ j1¡¡ ØÞØô¡H ŽŽì*keØ)%bÙie[Éów+ŸÊÖªÑ~àØZÑa%›Ã0«•jŸ[ÂMeß.ÿÈlY oèo¨ÜÅrFv ¸¹ÊÑÊÙP‚H «Ñqi‰DæÏÛ9Ù"Pæ× !æ¯Óí‚l8OoÚkû~~Ž9›Ðl)wìÆ]Î~‘œ—TÚB.Ÿ-¼D'¥,¬R.¦LÑ,)%R±KÄÌ+õ¸à^ÁÙrú‚„þnÔ‚'Nˆ %"nfÅ ÊáË~£ð¼8e§Ä–ÛÓ¡­ó©ÒöD͇%Õl“9”‚¥\œ‚ñ÷M¿/r¹µ˜ù±çÛ-C£Òo~†à&•o+·o"žûVRuMª!²Äó£I8Lº‰Rw+ëÊ¡æ@.@µåüTÈ.½”}¹¯ŒócÔZJ½ÚúÜ<R’øîù3}êÁVz!®Š™"7QdAšÑ³+e6öäƒ.²²9­l“‘2«b¥LºÈ2QµZ’Aê¸ðçamªÕbå_LM"n§§ç×ks\¯øsO¿CÚü^ÿ‘랦ðâúÝêsõ¶ Õ%P¶Um£ŒJ¿v³ PŠÝ¼gyÍ6«3CoWu4ýúö¦CAG¶³wêÑÀm——ô4Üù5*9P´6Ø¥•"Ó)‰eÇ «P,ÕzOWÊ”©U»Ô7Qlí.m¢â"¦ TÕ¢ô"7´*QèDáÚVoƒÒÛ)t²*וi™Q¿=踒/ÇœA•#Á¸èس|…Ëm=o`s‚€Í‹&at¤8)JÆáÇɵðëJ‰L©v\AJ£î¯®ÌBXoÚ„® E^ºÀXŒx–«4"/†ñ a»G±l Úꪡ @gLj«QotUÓºÌ$£´a¸ÉÏϯµè€Ôm&ÜËk³„iv’Ýü¼«×ɦƒr0J¸b[yÖ‘‹.¸Ñ‘d{=¤ÛlT|öÔ#óóovn%åë8÷ãC´c—Óéª9øK"ÖÆ•Ýi"—=H,|^¿§nçåÌÜ$EWò¤Žs1ê½ä`sºäLG’ç)~n%c%OgÊ;D€"§h§49ÆœóÑ/›ašWÇ(iµ¡q{•àN‰…%øvI³YR7—@KŽ3KuÑáeÒ¡(IbÌç™üy²ä¤ eNv ný«nv[ÔÉ–h $úó<½ð}X4ÓQê8ÄôNÇ—ò\ºÃórÊ,É$^O1¨¤Ò>žwž7çfšA椩ã IgÊÅ©MzzÞAº­…]*Ç$L´ªÒ;X¸± [%ÙÙn¦X¦H™ÔUlJW5e )Öq8ÒT­ÃIš))yPçÐÄ ²™Rçׯ÷Üø÷K1’GqžˆŸš'Ìàñºdšèm)DD–íÕ€6.­­ò D?8Ç'óþ˜V§· ׺œã陼Hô”¶xéËÏ¿v¶-,Ö­æûã¡í‹Pv;(s”Yí$šÙ; dBóåYŸ%,zZu2Ѧz´¡Q6Ÿÿ¦ÙAóNë>£èî¾&1–Íà ó«íÜw§ÞA6U·GÄÝ—ü&”yp†I¨ó/25¤LøºbmùßbÍ"×ëóŠ>(Z¼b²q+y.H (k÷xºo¥ªXåk¼Ÿ fؼÑþ¼UÛ¼ÑÆ£¦Å¾ßΛ°»ç(úP Àž²ñôÛË[S "µWߺ¦GчZ°8zî>/‰f‚Šã徕E”q)ăñ3®,ro»¡W †ió)fë[qͺ™ƒ-ªG—n)£ V  \90ÐÄãcΛƒ9¹_£ê•î5quN/®yã3ºÆ÷K£úÑ¥-r&Ú'¹´1fÎZ€ýZÕ¤ Hp‡ SŒm"NÂt#»±[»ÉT4f­vS§Ú^·™9“nêS£ìúìʇýýò‹" ¯{ÈT„.z K¨áN_ÓfçMoÙZ¤ Ãcñ§ › HY­eA¬K§!íÌOˆIszÄrǯi–Xƃv³’žnÏn 9ôiájYm[M¤g-[gn6Ójú‹n寧÷¤º ~`ƒI1Cö‹û¶±=m"F\åúõHçhŸQrLICÌ“|1,x²LÄêìÚDí-ɰÍtËžnL¦¬9Þã8÷X-öMëÍnwõL+ÌÁ»»pÅTÊv,Tçd¸tGý¾¶Ú›w¬Æêßã§ç7h°_|øüˆ)§Æçé‚_þm˜@M­6t9Hà¾õ û|¾ÅØú 0!4—Öè×¢Hz×vcT˜ã “ÎÕOL ¡?Ž{[&CyÊ@ˆöëˆ=ÞUMqÆ»™±ê>d1FJ×xX Þ…N׸Ÿ«¼ÀÚÝȦuÇõÁFÃK_®YxŽF"£¶\k–¸ô~lߦއ$:À¡oÝ­yo ØgÆ4 !|)N—#³ÎJ4Ž­d<›iNJ.f)žÍ`6$¾Q‘aDÝ#zѵmN½o•?ÇØ©œšÓïWk$ÞYïjv@Q—æôÀŠeí\}™ÍÔþ‡øs#L1¬¤àˆ šwHО8Ùo6Ît»gÍÓ2Yí*}ÀÃИº¡8B’åû·y?Lß'ªÉ¦zfÒŸv# Í«Qž¼/„õ«ñÎ~¿L‰1]ÙèoÓi¨Àå0¾O•ñr£¼Ù8_ï›f!ã]öDàƒ!é îWmoUÒ #¦µ*ýOÀ3;¶žª”¸°“3îîé"›k¾Ê^|2ÕñaTWƽÿº5º¹O€0NÀëxl¶%z¸X±ÍΊÝÕ`3[äßõä¶ì[ÆøhË“cOmÑ7f;»+†ÀƶWM`äÎÏ. #‰Nq6²š^ÿàZ88<\{ù—<‹šµîC>ȹi×Z8=ôOºÄ%;©i%-üýվ͟å öáø¦ƒ–Í;š,ô8Û ”kM{ÛOE žbÄ›I7éLÊb´Rho÷Ṳ́ßñrQ0èŸ-Ð<$M¯=d¢Íœ]}?“-mrp(]ÝšÙyheÀPh4Ë"¢Š—“‚å£|›lÏ´öò"13 O.š{í)O è<Лôt¨–l_t)‰µ6JÙÝlÎÖT¼ ¼ÇP1Üšµ® ÍNZ{1ç«2iÎ×`<ÒâÏŸ¾[¦B…zÚ{™…ZaŸsr´/B<2B1Áž–@©š`½%{Ú>t£wC˲(tÅ13Š+>j7å´¾Z#ý슛+xª.Y:¸b"ã¶QnAèú°RhD]nỎ59=÷–ýB;yUtk›àÅ®{sѲy?xS[±Y+ñ[üµ /iiB_&„žÐO™­[1ámâÒɶ” }³Ñ×Tb×…»6·C°ä\u Bèp[\8]—SP)ìj²—ò-~œÖ®Å6¯Ó 1|OõT>ˆ«§±`<3®åsÚù¼ƒQ ¨ËÓX~>«d4£•ž‰Í¨&PœÞ¦Ó&kzû¸SZÀ¼]Jìðï.KS¿SÆÊ&/ç=À°ÁcuXgÐ ¥Lk3EA±·/îeÎs– Š+~ÞR™XnߓҀnV„ípôpÁÃï!°TÌA:Ì׉¨ÜihK±qAã¸øþƒÒéú ç&·ø’wÍ©†aÑS:ÂnêÿþÏÿóÿþJ¿þWØNFnœ ®‰”k ÀT'´&êÖ‚ôäþ­+­ÉÝž-Àv¢)‰oFñW%ÂC¯ÐºuîþÇ>âÿÿþŸÞþ‰•¾cb2±qÙ»ïL\¾]ÓúL÷à>œ.‘滪+xöB¿›ß<±¬ü.%4D@mÔ'K³ÿñ‡Ïðú-¿²qµh€Ñ¨|ÑÆ_¼½~e¤²ÀþK_­ÇÎ" ¸}Q"H"´³b Á,]$«–ªþñ³ìä±­Nx+-Ä2ﱉî®Á¸ªu[¸*µ$ßA‘þKóïÿH,âbÍÇÌïGOùoŸ)'Ø¡h ‰ÚúDˆ¾©KB|í êá«SáâW3¿9ʦ©mðN¨mj9”Ëñq]ã­ù·Ï´,pVZ»¨†!Çê É¢5 ­I3opÑI¦ ŠXïiË0`V‘u ߢ&úË¿}–³°ol²ç /¬1³MzKÖ~Nóæ4m¦/!fsë×Z'f±ƒ{‚Ï¡ŠYùï'׫óÒ#ǶmĦq`“©uý:D­f¯0Šò-¥Ð! €Ë6ïë´)v±Ù6þù3åå@àvâ¢C+`”GLÝú!áëÐü¢IHÆúRʬî1ãû£Þ\ÒPˆ8ظKSÅøùð,™Lüãg»pû÷,‰¡…ÎðhÉ,,WuÔ8±ï“ÒõžFø¾0އ'¹×]ˆ[&1¼Ûᙋe½²ùÇ3QHoá=íÐ:™?°Â¾(ž%çj!T’ 6„xY:­dºäÒ¹å¿O„@a",ÿŸ¥ô³ÖVRj TÆ{”­U›ù=-Ü»ÍÚ´ä+.|ÈÕ-¼§ämÒWç ê^üy¨Èÿñ=­T¹Ú‹ˆ>[ˆñ^UªZ§aÖf—ÓpwªnQI°¢¸‘Ï©¿SíGå@S‘Ê’ŽL¿OÁÝn™â@…‹…M:éÁÜÆ^¿ÀÙ&q0Bð½iS“™IüYXDjobaåßSØß‚ŒÒùžÂA~òøÐL·Úø.^L¾z8kúJçÕ Ã}9v””K|Oa#,ÚÔ¿Þ§`E~/]¯ø1³ j´1ZM¼„FŧU¯ûr2¿o+÷Œ³l«Cp7ÞÛiõ½·ýßk¨—i,õ+¨>E Éê·+¹'ÐÂX YYìÚRÈÒžU¥ÞU°«õýJUIˆf¡uAÙ_3êùž–Š.šêË/¬kÅga¡ØÝˆÏÖ¾¥ÀgÙˆ;c¢¸™.üóÑ )¸c7äýl† œûl ô· 7Q, ˜Äņ`܈ˆ8»&s^¶.eËS,j+E.Ò¨J6Ãü»Hqóßß[°±ÊQ¥ÄÊé—WA-ræÅWß¡8`j%„¼Œ ¤$Õ.žÞ¿¦ˆä@Ã)ˆü﹪& t5o €UiÖf†±ˆ¿l$¯Å,t®ÀG̱{Û&¾·Hüùx_³:î*GVã(ÿxìE•nhå½Sõ{yþSiTœ¼{°hTœ­Øõ¹³ž §‘ r%sv tµ½žL‚çÐ~û¿¾¯ïOå]ïcãû$F Rk¼oÓË«QXç}aia'œɯ—³Üº¨c-¾*W+Zfû×÷äØ%gÆ@œÞ%ÈÒ¨÷;'qÅÀ‹Þ·ë\<÷€—R„×@ÊÈ¿¦”ñ“K„øgµ–ôÕ/Ùà¿¿_ ¡”€¸;Áéáû²ùþýrŸÎó¾¥ÂÁuëûÕª&ßדm¯|Sÿñ~­æ‘)GS*Ì‚"&á”ÍuÄD‰+{Í!Å]Ä1G/dtæË«Ñ¨|«‹%ŽŠ8÷_I½ÄûX$¤›y¿n‹ç4Þ¿ÉØmã}Ú–Ûs’µ±Åïo>´d¾ßš¶b"„¸ýûûÚ°p4§ßWÀùSûñ ¾Ÿë,*šÏu¦Ñ |jœÚ(¸<‡¿Åÿ”_füE!G߉üûýxxÉdÐÄýýU‘8y܇ƒqe ¼5bôSˆ¿ž}Ÿ6Ü·|_è_º¿ãï‹"K%õßïר}Æè¼_£–± Vãd…²¢û3+†’ø6ß2ñýÛò›ï³$#yÿ݈ÿú¾6Þ§‰ê%ì-¼O­ïŸ61Awˆ÷S°,ÆÊa?´= t^7vQCœÍ>Â×ÿs_ŽæÊÎcé×*î8{z¹·…30¤ì2Rl§ú ŸBq_† œA'ïoó+0Sg‚_ÏèÙÄq.žÕ+/öS@»ø)Z¼xÓž d7?¥E“–æú¾ÆZJŠc»jí@R­Ùk¡ýÙ“‘˜Ð¸î2}ÀH mí²Xw‹ò“ÝÍÀZ`›ödæ ¼±Ú¾Ù«&:”µŠí2¥Î'@áÔE°§A…¡ø]Œ]H K·¾ÔBš¢èó}?5ö¨s¾jx}pÎçy‰Ø Õì¬òôOOÌ~)ûÕm³oPµKÐ SÝÓOmˆ/êÕŽ¼ å»É~jT§~1:8…n7P+`Ù1í8††4š¯‰r±¼˜¾Þ":à¤èÅ~_ûG?52MgbŠv@‚]»ö“º¾pšj]gª¬_8U]½y—Å­b³#þ¡ÏIþìËw½s%þðKR;éXóUJ|_+ûý­X§«²´*¹ªSV¥P¥ ¶ÖkÙŸ;èßÏÿ“}¥äó?Ö[×zjiêÅåy±Ÿš¬ãŽó|Ó°A< pî¤ïï‚ó~±ÇÖ·´´¾|ç‰ ÄäõÎв5ºä¬[R÷,ë-r¢'a—èpt÷Èíâw™?±aÐ/ö6N¼£½é‘jˆäŽóœª{ ¢T7ó²04š#†WCk´%]$ ¾Ö?vš¾^ŸÐÁ²iÜ‹‚guÞEš~Í< -ÌÛcA¢k³¨ãhFÔÊ̽™Ok% Ë–EÌAÙŸ§¼¿öQI*gø¡¯@CL„EãœtZP³I°’û¤œ«®cs^øýåõ W j†ç,™óv%ì¤yS"6C§DQiâ'O‰º˜ó$ÛLï>^Œá6ðšG5ýå›yRSÃÏÅþi4fÔ#C3%² Îz­Zz«Ì&àÌP£ ÑöDè¬{EÇAÉW}ù®Ó¨båaöœ8óÄZŸ¢OU6§V"h©1kqNW©6‹»jƒýï™G‰ø ¾ÆEϤCS'ÖWjž—2Ξ—!$PYvJ dËÊâ…Ѷó’¡ë+:¥`.ø3¾DôRÖs‰Ëf“4ò^Ÿ0!ܺ8~Ú.]‚IÇ.å° Å Ë÷Ï´Ðs£çÊ uc(DÜ«Ù÷HQžÿ”ì„Éi†bQ·1h†¬I¾³Pà³Kiþëõ¹ÙÚ€¦ÔœV³ÆÔÍ`P dæúÊ™ã} &¹jµñ•›j’ˆúQè~Ÿ?’r[—Úüä~<=ÿŒžñzómÁ~ï¹^£úóÒ*ò¯öóî˜óQá*ëÝý95ûcþä¼e¶ ©„^—t={§ªšI}пTÍ>9íW;„ì\-†òM]𙂂"1Wõg sùZ]¦()ÉNYðïiÂ_F,(G›fÁÅÅóüx5_<ªvÅÁ¤‰õåú”z"Þ„‡˜„h}*Á6%ÌFˆz4KdÙvJ§ÄXt>Ú‚Ÿ †ÊÌëû½(j—É?£ÛÖ§!ØyY/ˆX +²cìv°9ZÖÛÞœ_ÉOÒ”KÃ/Ÿéò’ÃËD’ÛÙ…&uÚn»úÈSf†X 9øXõ."YVâ¶À²KýûÞ]@ÂŽät«4S¯o"})ÊQáÅ—Oœž’”ЇµIpüìÝê^è/t“MÒ|ï¬í¿{–£ÐR㤟0ãŽú*£Ò\Cæg£Ó%I“±×­qB§1m’ýå¸ ââŒÙ´?ý~×úA™ŒóvÂúâ<³ÑMcUçC¦ç¥:å-&çJÜ’UŒ"òxI]Ö:ª¾çwuþ„„¾´Ò–äº7z ~Æ­7g©K⣛€´Ð ’ YüK"›ôz·)v§…µ¼®ÏïùãüN1ís~ãöœßOÈó{þ÷žÊŸœî+ÙNŽ™;¾\Ÿ™î0 cþÄ¢‚³žÇ ÆÇstz%Jjep§=•Έ’M¤Zh„[³Ù—^á¡8³‹úsèüÈ蕼ޒ×Sñù½rý ‡R8Ÿ·ƒTÅÄ1/‹;0±œH{ˆõý=ΤÌÐ*½.0áŽÕ5¨ ÷f‘9ÎD›¦{DÍ¿ üÃŒY¡ áÉq?.žBõA¶›¾?Çg ”,ÙÌBL®ò}P5$ˆB>Û0²)úL”‘®ë¥1Æ Î,<áhÊ$kzñå,d@Q-þ\ÙÁLÍl®L§»vü3æã÷‰XÞIÀž“ÅXm1¥Á¸×ËãiìÏôïó¥J¿¸éS§¿œB+þ37ý ýDÿ:Ž9Ÿ¸ìg"‹pÎL)ÁÚ&ÏùgRÀ¨.žm‚¼ZÌBVÑœ #ùgTz§û€g—:ÊBfh±æJsÀ,׳nŽˆw~fÓ_æ×‡ÖÝ¥ÁXöóš»Ûöf ïÐ-Í=Ð"ï&j @­úx˜‰ w­tÿÞnæ÷ƒ­´ýÂìnÔËp™ u¥M<+'†°U¯Ž;­¿–®~ß”iª4®oJ,Š}ÓÇoª+;Ú™\¯QGvM 1äÔzöÄIþŒëÄô³g½Ò¯q6­×ÁõŒ–毓ëûâÙ®FlCµ¼Cå¬MìÊôÞìùƒß¢0¶J`xÍæÂŽI\lÑ+áÚ'Ç!AK°ïól1ÿBrƒ»`‡YÉ]8Z;ô"MËmÐqøµÎ³BXÍZ? ò-ñÖßòúî¤c´Ø(’þƒmò‰˜;æH„{·GÉhtÄ”#îiÍv燾6„;éÐË‹øâ¬ë*æEML®Fa߈µN …kÖ:­rK6ö¤ÐM™®ÁÃÊø~wŽ÷Â#“¸_h3´rsf ðÍ¢bªmàŸ)­G¬K¡¸Õe‘0%­‡Ïó¦J¦k@|ŽámÁ‚¯Fט§“<Û.æPzC/Y!3*DfR 'ÇÑ„Ç0²5$°÷ŸQý@ 0„ˆÆwç¿Ñ”…;t´‡æÕß®Wt?[Ã!þ‡ëíõ.7w€úvLÅkÂeZSqÔÔM>j±~£o"ÞÆ÷'Ø–$²ûfc¾]]¯…ޤ–Òú†;»¡|nët½®8èÇQ¨¸÷À\ŸÇ<ª7Ÿnx½ÝôS3Íñ,Øýí0 wu9„ºjÊL Ç³$Ùzdæ’®LÖ‹ûÃÓ)ˆ~ø¡Ü—ãÙæ;ŒDàQûÉ hÀÉÞï2Ü]¥¦ ÚbÃ³ÌÆõd>Ûä\°é.»†Þ}9Õ7î´˜ô€±†{N[TÒ¸%<Êb¤$<[æÙ.gëâ&ÒŒ7ò,;E´hnÇ\l 1w™‡Šøû³òì@^¬Ûy¶0Ï&çÙŒ<+D|gÞ†•PÓ¢‰–<Û™g‹Ÿufžõ³†vùœ ÿõ¬@œ^î|Ë"ŽTSòè»Ä0*«kàò8+dKvrý²hPLø¼ñl@êUicƸT3Ê¿€;õ]‘(vë…c²låhj6!¸ë 1u,*FÁ3IŽ;îOHª^•$û…o×í:ïðк]Ì ì AbñÔ7ˆƒnG¹r¤¯ÛÊu›’Ömx7µ2pøþ.5útd®kkDZÇE]Û]¨ŽUý€êÖS×Ö·:ö©k‰Äj³=¾ïßç[ìU…ÛÈ·qn²á ÈËù µVBL8Ò[,bò’:6Åxv¼¾ƒúV›¥Ó,Ýûå³-rã–ö~@ÉáÄ[O3÷²bà™ðÔÉHIt}^éþ½²cÞoÈüv»­kÏ×’„(:ˆ’ͳÝxV­ùÙóYN>[Ҩ䚛oø-:‹ìg[y}õ³íÏõßæ[9¡7?[ÅšS7b»àz¼µï«N(Ž7÷¶âüÚ¹WçkôB5¨Îtn‡>çM/™s¬¥9CeÞ-ó}m«rÎðÌÅ(B¯N®ÓÍuœ-Uüùà¨tÖõï s¬ê¹ØD<ùç§ç<ƹ֩{‘G§û {š;PPxnèC¬3wXìÿ^ð±ÓtÞäœ!Á(½eáE¢žJî²6H•s…f>+­² Ã;&#æHõ¿˜c,æYÖfî3|Û¯ÅìšÍÔ´o_ÿø8¦àPºéñô|½’#yL†ù°cgÇÑnd»UA·k•9|/G¹ÁÊDs®³^'âäõg‰a×èIM‘!y,ÏÅÎw."k–¯} åAR¬õ;îúñ®¶Å‡úvÞgŽË~@õ9+±_Ý÷ «TÂ^µ¾ Öo5»ý÷ɸC’׸Á„4˜AǹkˆÜ<Â" ÉõkbžÝÆdj‚°©_¨¨ûmRÞmü>á}•bŒ#Ýœq³5¾:÷0ÔŸ‹'ƒ~6zÞ·ú•—äMLª C{ê_Jfãz{qÀƒfØE=»Ð&Žu é|¬ÛÆút¾­Û™læIµé±uÆ}bâ æò¼6m­SäéÅÉĘˆgÈ7sPî·žçêå¼YxÎzæ·óÜÃÉ^ïóÛ¯à<ë÷àв9Ï­õ5Ö‚Éu»Á^iYÑ0Øq²Ž@@R³h$Òˆ˜¶4èŽë9~Ú“ó[+õîŬžȳ£»žEØ“^Bw;SßÖZì¿ïGjýµ¶û’Øí@ß9¦,Ýåm‹ð‚KT Ñõ¿œ·õÚó¯õZ­×òk½üÁGA›¸¡ ñ0¬×ý(‘`nµ5»ÙìGinK6ûxbžÀþV:s]Ö·›yuRË!{n»Ø÷ÕÙö¼å&ÏB¢¼ƒ]œ—ìcë¶‹a‘ÛIhª¤ âYÅl†Ò`|6-b…#žˆÙ7 ÅAÄT8Ϭ_{×:Îèñ4ƒ±/ú¬:›ólGMjãWâ6Õ8}*]¾Aï¾!/žÔks»$zAʾÔl*€Åc„ˆÂ²¡ƒFÈ@L»³‚Ö¨ÚŠÉÖlIY=EhŠt¬ßq4E â ¾!f6ëzô¡ûZVB <ìAœá‡ëõÄ™ñ¶|PÔh”sãúÄû I+úœ¨ü±.hÛn¯È\M§U÷ùÆYa-Òe&gÄv¼Så‹äÚþÃýö|‹{¢þñUŸ«Re.Í+N‹ÝP̬±IÄÎúàjj2Š]#!^S»¸ŸÃ»B#WNUU“\¹›³­(Ýg[ VaÈ»TSEa !Ó7Ôº*%»UC%ÆY5WçýøÊ…ú1ôTì¥:H%…ò{Ì'Ò{ÌXXté™Ê£ˆÎ÷y¥3gÜÃzÁ9#–ÿ167¹5úÚšC‚D(Rl–$¹©¨‹Y‘ ~8á§{÷°Ú©C¤S¡¸p4Å01HÊTÃï3GÐÛ1îÏCÑ>\ô –z.]F·kñ–Š7hZ 9‚Uêœ'ö¼eFCàn¢w^uýRïœ1­šìˉ<·_Œª¿ž ¹C•¤²™OÍè+rqZvKÙ öÅ:¥ŠÌ†èpµ™UÜ/ú_Ëî)–ôñ}ò‰6ÇW¿™+œuTèàõ¾Îúû:Õç¬SÍ WÄÝëvFÜì €=¬µ’âØ©C¹nI2¥Pª¼ÔúAìOµn½!bæ)Ô1{7Ž¥‰‡ë;b`š*á?¡/¤É)šŠ÷ï{‰•¦ß™¾ÌÌ·àºWãbAûÕù¶2¿fãjÃ4›¼Á…›Ý×Wçóé·4zîsÜè¹iá·"Gø´D£d¼™8ÍeeÍsØu¨è‰¸¾u ’µ£ü17±yÝ΋‹¸œ«ùB¬ÛY°n“×m¯Ä Õÿ-Ò§1Ö©Œü2óõñ·_Ä4U{üÀmëØõÚêˆ/æ¸!Üiâ!<8÷žÇÎoÒ’xÚ¥¾[²™;±Ý‡òób¼ŽÇÕ>É2ÙñÚÞηùM×\5ÈñK¾ÖmU +!°u¨j!y)Û¢ùŸ¨Ÿ\ q¶­Óšì)VUŒ…¥hÄõ"ß.â³) N:[¬³.ÆT¡9aë¢-Gœ‰kÔ- ÕˆÙS\8|´žäº%ÝÁ~4j7Äb~{f@'û> ˜•$"p¡°B9Î*5° Óq[çÎ6¯ùYÂùäÄ@ò`ó¾\·„vH·µs̹Šg1;mXE‡Øá$1×aÇ1.¥S×GO§L_?(‚2UËGŠ‹ÙMpgãÉûü× ãd1|î.yº v&¬_I¾¥–A|Ÿ;7 ™‰ñ?Ü?f”+ßàÂ'zཀË\É©|2TÚi|N0~‚ß±$‰…ö¡lmf£œöäÙI¨ž‰è=Ö;?²•ÇývA‡.²”n8î Ôª}äév Kvj’Oó*’̨EÖ¨I>?ߪ?®Ó@óKuÁ@N·%8õ³cÃ%¾‹ŠÎUÑÊ'ÊTãÁ `"_àkåŽk¼­äOÒEÍÕ±er~Ǿ~F_½A‡ÖZ QÝFò½YçµÙŠkð~̧š•Æã[,øÉ¿\§‘Ÿ™o‰Iêô³*ëÊ7#ÚùÛ,m;{ädö—}d3ù¸Ó;ñS2ßòÜ•é3ÊòA±¸Îο‹ZùBO+Ñ{£rD3±bqM)âÓÌ…%X˜€™\¶²ÎÙ\ãIR‰!S<½7¾;6‹>Øàü;ÚOÆÄ¡¯'½2¬^‰¯óp_¾¢6]äS r.æ]•«]õ¤ò)Mîjq>¥¢“öù'Ÿ:¿:ŸöÏ|Êëßòiÿ•O/x`£˜WƒnFX vÅƬòñ'ŽÙŠ4ßìê.±è^Àu}Xfi@¿øz6C«µØŽaL1¥Âª3{kÍDI ÷,…ÙÙ ×P› 4³<&P Ì1¿Ûo×i-¹:Ÿ&,½q–ÂåuÊ)áPoËûþ+G ¹ÁØE¶Mµô¡Y„4b8¬ ã^{PßýÖÀ³Ô$\×[?véúIGU P6ŒECjô_§âïϬP£¢–^âT¤:ÉhêÆþ«úð¬ˆóÿvs°)iMÙÿdëÛUñÅ"›1nÔî[F?Àµ,NÒ׫Y9¦›³i.¿–B…c3Æ©ØZ!të«Ú®¸+ä ÙÊb'î律U~ÙYSÌPì³ÚžG‡ûbs?þÝŧ›cÑD¹Ò«¦_¿l­ª®'¦ÞðÛ¾QU‡QVt-dœ-ë¢n1mnÊJíœSñì ÂþÊàäÍž NYø>ï'dV÷]J S!lj•°32ò.êëm‰!Õ ›‚©Û¬ÓEÄ<+m…ë.F0@§gw-¡ÚnPNèî¼*…½)LI…F™»={“ÑÀu Ácœ¢»âÌnP³có Ã"»ÛÓâgXÇÏ/Ø&¥Qy›¢×ô[‡«¥æ&á·¬¦jÕœŸ@^·â`™Öì)R¥KeÚ¤Qƒ'ú1þ¼Ð³]t)]Q"KmrÖ“Ed‡Ÿ,Ó2»”êÛ!žoYª}J‹ÒÿpÿÕß² žˆoå´ÓÝMž.\°±ÎØuÜÚ²S.Tᇃ»ï 5;k%lQ2¢ðFG×1}o:ûI¨xÑ!a˜qv÷¦%äSuoÁ¢ É·*º=ì¶ó­š§›Î¿f.v‹< ¡>í龟oC„sæ[¸ßÊù“îµ<5óx kê“oi=ÍîºP#-ûz¼uµ©cM‘nPN xbR¼õl‹âªg¡Ï VZhàa ´/"#üìÄ€ŽËxÀèWäÛz3ͤ7â.ÜÀX`¾Ld<$*˾±ŠüʳÑ^\×FC‘|1Oz)sŠ_ÿÞd~¾`I ´c tº”ì:ª.î]I¯ÓÆé%{¤ "|~Ö-»”z¶‹S')/á·"ƒ¸~ß]ì½i¨Ÿ2ˆÛÂ¥¸¢ÑÝT“$Zèþ{·Øô˜F¹áÙy7¨r±—g±´ÝûFm%vTYÜ:µ#ÎÞÓK™ 0Ï$îAƒCdÄÜ©›º–Þ©=³(‡4¢Jg½cò@w§R”XLžö>Í+µ®î|Ї JgÄÒw#;§•dB8–Y¡_/n.N‚^W“Ú0…F‘o‹×-Ö™,o9­ä´s"£!ÿ¯Û†ÏYÿ³uŒøÌ´ßåÛø[9EPz-=ó¿˜YÎYõ}äSÕ«næY9¤JWîæ8?Ð8¹»ÞItý…Çø{N(d*pRLÉåüèÒýÄÊ4pú[THŠë]®Œ%†O·Ðu&³r¸ÞUVÛ5ÎeRhÐõ ¹-ø½wߟqt0ö¸Y·ôë¹. qDˆš£sÌ›E.ù¸ÔÅsÈRè<’=nЩ& Mƒa ¬K¹r©l ŠGšX…“M:›{˜iH¬*bÕ¥{ÕYg­ob G§?çýx"jD¥Î~ãVÈE1{ÑŠXΩ¬ª34‰AL7*tR UÈF¤¤jFLH}#Ý¨ï ©dRËE)±Ã`ûþ<¶;ó¬wÜÉ<; gD:Ü7È®[‰œ`šnždg¬Ú mѸ¿êàø·Ÿ>Å—70y«´d"¯Bz Uh웋 ˆ‰ñC,Á”NšØas%.¾ËŽ[á§M†ì(5a|ƒrÂd 4̯Ùùv»^ÝD2ʨZŒÞ¢õ¸ªiŽSÀV½j!ìÄüz¼*oÎ g\ÓàÔ˜ñêV¾ýB=“™Ãz4²ö²Qу¬'#w2z²µ›E•YWta¼#d²ß(†ûÜ4Mñœª›?‡×oq¾MùýœÕYG´·:‚}1V룸ˆÇ9{0žßO† ýoÑ?Hª£G\¥+‚ ‘ýšèP”ýƒ¥8FËÑ?ðçèŠú¯i(®Ð?ðç!ñ[Ç K ÇŘ..²¤t<Œ˜øa ˜„L1Sô™ÝH¬W5š‰.€òÍ«4TÄý«¿ßá²Z/&p)»_ s¬¿cßÞ>‡Å:ÜE'ô½\ Ç™uB7sLŠlÆ$àߨø9¢ðùM]ªYìÛªg©¸§‘3ØbŸgMÅ"窥Øç¬îÏY4_j[l¿ˆ¡$2nCjÃ௑4úƒ8Æ¿IÜ×@ÓÕ³u1Òy”ncU<óŒKRmÄd¨5ÀLó~D_ûóoë´çÖ¦?T¡.Ù©ÿ˜‡Û Å?³- “_¿Ã®.%c·tØ¢²xýø[Bx=;nõ}žE]Iæ l.ЧeßVuk1S'¾lúÕ§%S'%]?ùýåïÇyn‹á‹:w±O{3‰ }ÕdT^ù컕çºÀ¨¼Ó§*ïôiÛ[ÿkí$-O òxþºP\òü £éöÃþV =u\¯ÂÍ—LÝŠiSµ£'ZD‹6ããÝ…ç4>O©¸Ñ/µš%ømž…$¿ÐKìÓv:ÓÛJ'°ƒ¾gÛ-êQ¢óRЃm€0<è}š`DL.xë¼ÿøÄcüuÝ¢âƒzàÖùkKõ’§A*€´i«¢Iu«¡¾ëL6Ô±ä`û }ºµngT\¿_·«áüÔŒ&ñvÇg]Z÷û:=½Æ³ŽÓ|_çNF§ªsЫíéÐÒ"Ú³É|;Ñ%½ê—„›‰~¹?d"ºŸïT‰ö7G&É…½IG2Áþ¸Vaaq¿üŽ|‹v–uW ×x©#û\ƒš[Oö½–;ñê{ÑËi>Ëüô6•ëê! oÌ…ù׌Í>—´Ñ©§2Þ ZoB`l öTÚ6ÉXf°žÐ3‹¸Ÿ8ÓÍzêú`J7ëAV@ÞVÐÇaGÝ ÕÀTÙ¿šìw…ÇAg=Ðìi(ûÝð¤‚]$ꇺ>ciÁt¢Oô,q¿44uy¸€Ž¾›ã*+“m²“Õ†‹×¡ÖÙ4Ç«UÄÇšËõ©'Æ£Òþžcª×m{Ø)ßæ„{ôŸ ëœ<Šõ±®—ç\·%ãüϪ›ÈWÄ^Ç×7÷ÃÀºZž§e¢øM˜þølå¢Û+!»G~ìÎî ´¼`4(¿>«eƃ”A¥µg½q}2#¢±ŒD‰Ú®—O¬áߟíHÆ 1'>‹ä½+c$ÌQñÌ\Ó¼ÂÚªkn0 {7ž@±Á÷›þØ‘}£ˆ|šñ·oš'aÖéæ³€·’Ï‘k¸ÐÞ5©@¾ì§´ã¯}ò5³ŽØ™*ÙûSæ‹u»¬¼Ìuûz‹"NsÔƒù¸¥eT¨àˆ9­óqçÞw®¯¬3º÷6Õ!Åuƒ”oAf"Z¹p%8?¡tœ?‹L›ßò«T°Oþjÿäg]¯ümÔ™œ/ð^ÐÒjÈe;ßÒ9”§ÁÔ9wÝRµNT¨³[âÍïw]§3ëõpAÃ9ª8ÿV:•ݰûÐ÷jÔ9ýAw8‰ÕÄ€ò¬'®ËF‚emc¾•bc¡Á_³ }Äs“ueŸï5Èʺë#ŒŽ‰ãÛùéW_`V*q3Ã5Yaaº¾Ý<®çäëÏ_iºžÍ8ϧ^x¦Oí­¿×*l) —˜ˆg_—“ÙGŸà¨©¨¾µÚŠëßb ß*CªŸyÛÿ5Ð}{63¹§Í®=*@ó JŠÓ}W(3:ËS2 ±•nÂ]Ó€`.*‹êslޏÿ þ€ ¶Ô%ýaLèè´X©v%¿8 vªvãÀFUW#¾ŸÕ]õâiÙGˆ®Ç&^÷¢—XÐm#>1žÍƒ‡]tHBKdXF¾áUܳñŒQáûVqú¡[i!S}¸Ïfpìçp¼CžøoðÀÖÃKØÌ“ªšq0ËxnñØÍ›ƒóO?(Þ ZU} z6VÌPœ“F§×"0H¯<;š9 8X·QQÂ;Þ†Y×Ìy/ïq1>¼“Œßçì|c’÷¿™9vHÛ‘ðÃ\‰äH¼vr‹ÁÎi#4ˆKï¢ÿpº—=‰÷%Ët|úʳW5W4¹Ã}{¡(K¦K€pˆ±ž•óyËà†C¨a8NTÖÇõé>Öoñ÷ëz”ðÑ4¯ÄëÞô ¨´´=½#þ;êÏfü·êÙ“góîöLG*V/£¹n±j fðú|ož?õvþölIZ5#Qq¡á9$éj‰ãÈõ|«7;—…±±‘ħ„ni%’Q1øb*ÃäÂ…›ÌÖ^y É#Å®N`^ð¿é’YÌìöÆÿè_ù¢‹z“ÙÝ´÷¾Ûÿõ,yì ò.¬È×*+‰40{[<Uù0-4 kÕP „S¨ò1õé~ƒq/=é(|«Äa椢SºÙ«²ÜÖßëaV-ò*2â˜{-;Þ4:;Z‰qCL/Å %fĸ^κKH¤¶ %ÝuåÓѽ­üûùŸèdN„¨×zcA”øâw¨ÕÕ)U{šïEˆã@o¬Î”Y;úÎu jÝ_3ù §RT#¯¬.«eÈDÒÖÄzQšä·pæoÝ Ù˜[Lo]ë¸UÌ8-l€Ãlk7<Û…ÖglM Š9Õ'Ó…^ÖXÜzÑòµ qòã¯03ÄÅÂR/L»ãÎØ V¶^úþY‚4³¾M¤tÄSYÂbda/×ôzÄ£ÊKê“øþdŒõÙ€4ÍKèÉ uD-µtæ…=ÑÂý/Ä›\X–&ApÉ<ƒÒ» €MÑI»ÄƒO{¼¹€½¨„Ñõ=œÉ–T¬"ÞR¼º_Ì—Ôˆ¿|¶ ÄØ.£<¼óóŸ±ñÊ¿Šë®Ò$ÞØ<ºvÈÛ¥¤‹3Ò*VÉxìj"b’ËðâŸ4blðu !ç…ü!ûÑÞÅ’CãbŒ…!>Ül; †!ýEú Ä¬Ï§ßæÑMÚÅâ y=m­K°òJñUùÄœYÏ¡ë£æ_B’@"”yšŽŽl ĸØÊvÊÖM§²œš*úRÓ›¾ÂR4öëäuZ=«¨`jT°]ª q}á~Þ¼ßs§³fàK¬‰ok}ˆ\ÆÞU;•Ê*ÕÑ ¼èÓqœšÔ±,(;"&²¯PA¼Ho7¾ß¨Âª³ðPY½X§…¼XúëýÐëðuÙðY²@Ó0ͩ“+ö¦áµZ¯÷Œ°ðîJâ`èkÉ8ôdÆúdLýíÙâ'¦“zCÕ;ësºeMÑbËì¼^)PpÉ‘|5 JG/Ó ËúGň/úU¯;Oû4Áj³=°^/ÃöXmsØñ 89lLŒfДÓ_ãôp6þ™°šÿh ù}-›0¡#^Z?–¡¤ÐÑXÈ¥dÕõ}âI•ös=ãv¤ù WK¤iQÇ÷³JÙiS½à`ÅX_ «ˆÙãã˜-ÔT‰q#)bâ¹9ÑuUvW"‡zˆ™ y”=£LÁ¬ S¸”‚\Q2QÕqSm²¨ƒÇÂ">}S\I¨×ç…ëw“M™É¬ÀzÅ»‰=*鳺þãz­hŸQ=€æÙ¯uªŸKð•á§ŠRà•–¯1_uÙì6±ËNé~Àëõ©¾~ûYn0ñJtÁWaϺ@è%âìüZÎþG‡›„˜ë·@:ÇØê|Ú©ÚÚ”O³^¦óõN :;&ŽgÁ/ùRž‡t 8ݰ‚áH¬·ã™¾mF£@¤3îljQ•/ò3uŒ µ Æ•Úz¬ŸÍõU Ö+Ê_¬Ç¢õ¦˜ž‡›Š‰yÊ«kñç<¯ÏPh4Ç.îWéüL¯ÚÝ)j9n”ì¹ÅSr‡0³ìæã¹öZ¯¢FÀRð•#§±€Çœ‚xË8~N_Œ~Ì´MfKÊÜû{\ ° ¼ÃjìEôóp~e[%O7¹õy[k'€¬R ³ëLÞá™e'ܯØ0Ü]rÿ\\¯‰zB£Š‘JðY¬?6II|Éý=Ò{#ß²ÛK±²LWƉßo'Þ¼ö÷ÖóÅÙ5؇#fG=€%1=::•8²Å™ò%ªð,'­ßF§qjGo©I¸’ï±Ô+·¶†ì>7áƒXdéß”B#^oª¬“u«uúž°'¯×a>뵡xÈZ¯áE…¢ •“j*ØRadJ~Vê=¢·y1ÎPSp7•´=ÀF‘ÊT51íÇâJ‰³üF¢šÐ™íƒï~¦;IOY÷:huéD!ì67 2Tš«¿Kõ[´3€ðÚG÷ËgÙ)Ñ$Ù—I…ðé|xƒ6!l_%hÂÔÁŸxÑT¼ ™ðÑÖÅ3Ë_~è§öS÷»T«7úIÐ{M{A¿‰Ï«-ž§„Τöá|äý­ªóU£–Þ.êíìo±ŸÝ‰ÑX¿Xè<³f6k<ÕÙÇ›j¦D{µa(ŠC|ïtÃDÝE˜8BÕÅÑîžB´vi¼'pv缋<ºèÛq—‰1ß ã±¸ª4-QÆ_ȱOÇ´Øh.*†›ÅøÄÆ[¹QX¦qôDkáúÄr­çåî$"Sg[%'·‰9Lh2/®ò¤‘Zu¥Äø”´5jªq£Të'0@kÐs+âÌ~hòúŒš}ét”I-õÈþ}Ä‹ë3éúЂ\Rå†ü5×+甿~¦hÍA®Î“H³!p–_u^r¹âFYµ"÷ ’27ÕIºÒéfCjûxÄ{~ª#ü5BÆjó죄Å)‘Ÿ²¡²`$ߥՆpBÖ~èâ 1qN_‚Òò&¾0|é&.e¹LêÅôMÒLi‰Ø.ß…}å¸|D’gû…v$Þ Uþ¢¸^MÜè:ð¨ñ¿ÇQÁnýw:‰·Éõ£ -b¬¿ÁîW&ã#Öý+˜NyÉ),SV!3I0™fhKêê³Jëëü™™ô°>;µú9EJŒ ‹íB;wð)]‡Þ i‘ c¯ô ç‰I9Þ3r´Õ/pª‹¾z:ˆ)rÑ6é®%ËId ½«Ç´2˜M@Gã’ÀÀÿÈõ°…µP+Õuƒ÷[”±ª2_îÁ†Žœöuu°À[‹YÎÁüõÅÇáÅTyàÅ01D²ÅðŠxkLÛ?Õ|H胷ù&÷çgþ¹8o:óÑÓ¹#u]¿¹ßózZ|‰ùlG¼/ö$ʪ4 °'É4ÏW_Y‰‰ŽE¥ógEX5e†Ê^ÑžOÅ‹ÆûIá_%Î-5$€ž ³Ýú& ÿ”g8ôipP *%¡gɶèâ…‚S((ÇÛ}AjÑ}ßh‰ÌΩ»D'Œ]߷쩽hóÓåí¾rËNzð\̼x0ÙŠ¶•>5HnæP=sÿ•ÏlS÷®ü—¹gïçc½Í矘]×b–ʆs«åýs¬ 7*:Ía&¿˜? Cü\=>{°ãê”Ö0G~uŠÜ+½ÃÅUV9ºÔøï€)ÆxÿÂiYhÃ6$2µøâxƒ½ÒºåO<À?ÚðÀ,’Þ£ÍêŽk(̦Ð[u4>€Ñ‰)¢uÀ­.B,¹ÅP‡Î( oNéèÆXÿw×ö‹ó{C½ 4l&ƒõ¦ëÉÂz²¹Þ ¬ï’+ÎG\ß\q~çùèäÓÍú”ù¶'®ÿÆžõwÏt³¦_ÊM”ôêÜ ÷²¹CðÌ„Óݰ¿ªK‚{óVÂm‚"—,‘ÄÅ\㊱¦JÊ#²ÑÊ¿VŸó;œ‡,U(a‡êBï[ןè{5ëZñ5oÙå(êA’koÖ'UÚ\Ÿ*l¦..ÈÅõ‰ý}tJ¸ÊØc@²+V ¿KkÏ¡–÷ xj̇oøI±žìÇûs-¿ö볟óús>ùm?õ-<@Ó÷—¸‘[ëSZ È’¡KY‰ˆÔ„ ÌKéc‡Ñ#ð:ø 9 ] ¢ˆãÕU Åõ“Xrªq˜1@ž,K÷6bBp=güO4BéÒ—åôÀ}|.e^ÆçbÉfbÉ#æ»NÍ|ܯëûñ®g)ºá~¯g¥Æõå,dáäZIÌøùŸªÆ”Bxì-±Î¦5ñ§’èkö‰ŸëbÎòt¿±¤>+@ëX7šÍ Á3¤¡aMhà'Î _˜I•`>fÍm³›šÏDÒÕNgó%ñ÷OŽ 5žóųMÓ³6°k‚XRÄò é´¦ÂSð«s—þ%iß°®ã\Е¶›#9éak×Õ´üùMt&z¨8¬ûz˜æ¯7Ús†ýsf€PÖ÷#;ÚÐbo` a#ZÑû¯ÏTÞ $dH#l"¦‡•¡ês«NnëÓ\ÝP/âzçlyfÖ[M¿ÉÔa¢[#ŒÇ7¢­ æÏ]äÞ@¼uÆ8_34@»Žõ)G I”DÜ9IJIß¼Gž¢8úP½^¹O¯ÆYŒáš^‰}0'bN>Þ¤.`.Î ›ëµhý®LsEãLx< ;E^/Gû´¯0ç‹n§Á9ŸBn*©ß dE¼=6 íæäIøÜü¾{‚‹gÐÔÍ€b¶f¨¬9Õ›àU1PHôu‘œ6æØø×YhFŒ2é‰ù1¾/ À ®çÜŸp°;²?ùýr/:ýÝèÚ‰–ÊdzÚFŸg9úç³~€iü-ª÷2ýVÉÐ4íu7uÂ@&ôRÉ¡r9ôW—êÐD]a"— ÈÇŽ¡ŸÝŸë'u„õ[Г¤IŸ"òï Vùþ¾öÂßÊüÙ P|VÙ(þN¦}ê‚Åx;îˆW÷^Æ:wûÙv² WÐ4‡hW¾DÑà „YÂ8ð•Á:þu´˜OñËG€«S"'æ4Ì2b*šv”Ûh £QÒm œu… {î÷ù¶RÃ^:îò1.ÉêÜ4ÎBþ´>…=ò†âʸÚ/#ꎽìƒÜè³í§3¨¼÷gt&¹¯Ù 2³âŽøä„Àñ7O(qÔî 9ÓÊI5ØD!¢©Oj:Ÿõ>â»uÐmø<¶Y#i†¤cbcSßéî>Øä:®Ì!ÔjÛùzл,{ÝfzñÞøqW`=ÑOÕŽ§IðÔˆˆ‡xMĉˆyèe£_›SÛƒº¥cíj}ã~d`R§HñÀ„ŒFœë€@JǹŸ½ðh±/ÀÙͼ}„¤¸3fÆš˜vå4TANØrêîßbŠœ“`z_æ„InÏhò0ÔS]z?øÿ:Ô¯Š~WÔdC;oĉ1ý²&ϺÚ£HÓ3÷Š 3Ç颾­›ýÙNÞuOÐsm”;\‡Óg…x–Az?”îûÛ¤«Ì~¯ò1Š3ô“bäëz§³_ô«&½ÎÇé‡Ù;7±&ïsT)ÓÎÿ¬aײÎñýà=ŸcŸÏÓÅë/ÎeÐN*‚ñIƽGx3@~Ù Ú×¶<ät‹0E˜lÛà˜-}€±Õ æð,d».¼ÀI·â̘=î9¨³2¤âMûŒÔŠïÇðåYç©N\Ök¢§£×Û|Ûϱ^Y$çÙÀ½>}¯ÉùC{£Y%¬ÏÃ3²~vìÿžgǰ¦Ìòä¦Gd6³s3ÏjFˆ¹ðyVLÑmTªÍV.¾Pš¡ö«Ú+ò``Þr#ô)òd¼»¹r%Hà:æ\<™+s02“&ÏÊ9©ƒ4ɋ͂æÂXkãþ­¿Çýjΰ×í&O° <¬Ã6éUéÒëþ°û™“ ÎÅØ Ÿœ)a×Oj˜ß6Ïɧ½ÞzMøÁ^ÈpnÒ¦íÅç+€ô0öužEAZù¨8gh>3dö 8g ê3wq2Q6)¾ÐN[â\‹{µnÍæáÏ«ójšr·÷3Ú¡˜sMåeî‡óôðÜMšä@UEüá¬ö×~-š-ÝtìŽЗñ$85cƒ6&_ûißVdaZnw°D»Ý:ŽË]ò¥ãTa…´oól}à ý ^™Ús\_T 1@âóXS q.FNûÄSÍ5Åî'/éâ\ù»D_*ÞÍ^ÈÁDŸ‹=EÍè3s.®Oônp>óÆÛצ÷±01›Šã\Öµ¹^K®j4yëNE{ª²^¥~ÀÐÜ ×3ŸW„kª0òn¦wôv½ àG#º@õ0îßnð ‰DÞÑ%y‘X¸¹˜GÍ âŽxbÝC'c3öœL×+OoÔÇùˆ_;’u‚ÿvÝ¢?ë ¯W¥]R,Oº×N4bRwmbø]iR£xŸ°]Á©g[¶+ÎÓPT©4¥ù>ÏB (æbƒõìð~^Þ$²§ 7ìciól`g5àøýéõqq/‡\â–¯<Î{/y“R‡j-‡ª$®0uðgD^åY€6 ³_Ë#LäYöh?1Ÿ}šü|~ªÆý1ÏÔþ¥üBjt=`]n…ž°¬?Žii_–µ%¦Û~½)Ï4r{»©¹ªðíS“ÑJ{ЈO=º‰7è^¯ƒë³:¡OÓ]G4ÄÝëøMS\‡Ìtƒ9†@ÆúÑì¦ñÜ/ñ=YTOÃz@JÐ_¦â•>c_?•‡7çÄ£*޳mËwþ°ÒïöÇ—Õø—8ýQþ¯Øß5å7/éÊ<»‹œ­+L÷@Þ¢F¡•øÿè/;¯ˆïûñ·ûCœVGžÜÆq¥Š8»~ €,ÍqÅ äÙdX`D³È¸~û¦8j®Èëš"…ÄÂU¸‡AcÀMÖŸ…ZŠKNSмi€ã¤ñ"÷rY£´$»Œ2¦HfÖh˜Òعн ÎelÕ³›õÁ™!ª>-îË.νŽöÎUË笧gny–Îzoíû<ã¢öʉ=U¤. ÈÚ´bÄ1CŒÊn* œ.OȈáa6å\•é/ß·ôr£þk†.cåÅýÇ…>+'K½sˆáOFN °öi3M0Žúv£« o©õú”á`]ÒÒ.oçÇS¬Ç˜5ÒLîš!Aœ™Ê\XŸ8/j4ѧeª“$±ÄUqh:Mé{FŒ¼,Å|?y¡+TxŽzuiŽø˜n%4JKek€×ÅøÉ£™ëw.Õ«÷ÆËlÖ˼¾ ”Ì–'ý¶o@_ÞD¾.ƒþX•ºî5©Ð Ù{oñ‡Ï Uê ÷†Ï ŒŸãè£Uáľ+H—Ü£êVÄÜ1W˜éÓ¥î¯5W¿}-ÊvBk„zë›56z}N-‘L-Æ?¢µ?"|nw„„ÿ¬ÀÐWû¼4¢õ/tФWî¶ß@_ïþ˜¶Á+×:™^»óøȯÈ~…‰~\Ù>Þ¸¾6ªû¾µ_>Û¶íU¹ðÂ@ûI}Áî‰<Ṵ́ßö/Ûè #g `×͉†˜¸þø l^§màÄìFûø0cyešm Ö<ßVs*,<^¿ÿ’a°ùâ0rc½p2¶ ç`mÏ«º ‰Æ›åá˜'·=Srܬ…#ß¡uâF¿ k-jR§–îǯ>D•ëû;7}´7é…êV…ÖŽÿ!žùñ³öNvù7ú4e¦9èû:Üêžô™öŘ¾±7ë2ðæz¥ŽUÖö‰LC?âbç”Ðsø¡ã |dcí)GÒ÷ò{ÃKºCš¨bä)ý‹<Ë, Î2WÅÛ˜lWµœÊ»Ï 1sHå‹Õô·t®OŠc–C°ð6Ôˆ¾˜ƒ…ïÊî 0JûW­Ó…sp[öjXÂ8žŒåÕ°ˆ«&Q.úÑûÊ‚]ÚZ¾â&ÓÝ>ò`Ù•Ï‹|`Aè{óËêÔo7»ivú{üæS¨ë7ý5':ž|5.t]T&`äƒj&5ýàgÓ0Þ–âF©QEGšNذ7Du&•rÄi æçœïÖ}£?»¸D‘ƒ-…\ø Lø 0±¢ëc„t}!o±ãT¾íWGÎ’ü,ÂòNBß¯× ™Ž‘Š|ˆ*p3¤L¬MŒ¦±¼Kø„ùx“D/¦y&¾6mSý‘ˆA²7õ à#ÁU¦¨TäY’A½͈çY·Øy²°Müæ¿Ýø}é oÓOcÙ?+ÑÏûäÝ•ïïŸmo´ÚÜÂ:„Db‘aO‰v˜dZ“}bÏßRlo,¨ŸÜD,pl­¨‘a'ô‡p¸s¹¨µ¤2×Uj%ŠL ו·8o+]Ñ4R(5Ú ÿD•e çˆºÄÆß›g{‰ïlŽðçç$éï>G/Ið‚FôUjêWBâë„=óyˆ¥Ú³Ë-üÈ mǨƈ^4’z!¯ð:½ðÃHšž± ß–8ªJM“‚*â*Óu¸nhH©[r¹I e÷hK÷E­ûíÆ¦~‰)ìö`†Q¨í‹Ñ½8ÜF¼ÍþÁYB* êGϦ»ë륣‚û3¾ÀtB3º |å3®D‘_úؽOÒ¤ ovË’¨äÀxÑèOIc¤ eÍׯz- ŠSa†4JÐb„]klòS<ŽW þaC¡luñÊv‰Ä‚\\Û„HaúÜÒ¾ËFÝXU¦âD( ÃM_4L$èØ4›°@>œÒD{³É.xªí¶,_’Í4ª$ýñYr‹¡YìÏÿ 7·¡×7óõ-|xC‰ARl1JH¢$4V_iðTëW_€-ª{E½˜m—h.ýÅAþã©eùï%´üZ¶øå …òy};©Ü–y‰ÆÄI£h·TâÎñ®¯+©˜)Q·aÚßìŸófÚµ÷³jY¢4ª:s··'¬iÙ(5Å¡û>Ï¢?Ôè/yv3oî“7™W©aÏÍém+vß(³â ¼殨óì¤ü‡3'”еhžXV”HÓy4³‚:ç¡lå£V¥(uÄb: 6ƒæã3½Rp£¸½èMwHJ¬MOœh˜$ÇåèFž=¥É˜AkƒþÈù‘™ðwRWu‹­«ÑlíHè7ýSl±!µ\š¸è⸟¿Ù“Þªj"Ö\K¾íÃëmÒzãúdO‡èÍl‰oéœí~£¯_lö;ù_;4Gúט"Å“ËB¸¬÷Á nÆGn‘oØ”^\5|S·¨­ñ/ðpFMDüJ]ÄVî kN4káDóÙ´@L_×á“zg ¦Ïié¼Í÷¦¸°‘Då$o¦W·~¤k˜ö˾@Ò»ŸéݱøXôÙ²úWÜ/òl¶)¡~‡½Á•IüÞ¤êbàQ…ñÉ#,ü˜iülušû^ uå¦=ƺuߊ=È€wÎ*âEݹ‡Bÿz£P_+‘¿¥u ’ø,îPJG.»ƒ9©¹SÜÄvçaè¼\w¦'_û¬¾ÿøl3Ç~ÄÓÿ ŽŽ|÷³ÈÔ†êb€>5Ú‰]ü¬JJ^³pT"ÏÚç7¾yº g÷Yx¯Ÿ'›¿žðF¥š-J¥!9ŒL¹QdF8"èUሰX©ðõü#5Ua¯?hde9ÞÛ‘o4 b½fö¤™g zÀuZ]¦ÐÖi.{’Vò·–0ÅBGÇë›ëW׳žò‹Ï=î Þ‹°<­K§¨nò°‡yÚ‹ŸGO뵑wæélž6xÝoðÜ yµ9o#×M’B@L€ Ê›ŽÍM”…ƒž®w·ÐHzÉ1õfÉ›ÍÀÂÚz±‹vÑìâeòz¿ÒÚ§ ô_‘gÓ#o’'°ÐÅŠøð­‚¯•¶”Ë/×3îö† þWóT&O¡W0/Öí@û¢rüƒxQo€*÷ŒzUü–L¬y™©ó ­·Çn,ë°žóèÜèkѦ „‰–ýâ~îztP¿¥8O.ÖGok²>88lð¿ôáþý­¾ÖÃxtã¾í}c”ò…Ù½ïÀai8E ½i6!&ÿŠ UÑ+'–=6bƒïµÍçjäƒ Û‰Ã/¼NoôbÑIyvâ¿rȾ'Ò 9‚#8ÐþÙm!´ ²/N ÂVŸf7 Þ–ÓîÅöŠ_¸É»ž)aˆxâÿþG®;Xv®_;ãå¸q}Në4ênë¼uô1ªy݃ïÇ[6²×úù੸>íÔ+:ˆi=µü—£{È<¼¬OÔßu¶ mÐ׸àÎNž6ŽU<ÛÊ—uÁÔùk¾i=ç-.&Nîñ"ˆQrãàµ;ül+½!/òì¤çCÂ/C]îDz”M4ÑXª_3ëßâ>Ab­¾>xiZÇ[÷?6…pÄAÞ½ÑÕí+ð‚x¶Ž­’Ý,êlI¶R¨[³ÿªnr@rñ„Ò=ä4¿C6&îöÍÙ|êÃJÇâd¹kâS?Ý­<ê>Âæ:­î3t®Ëf}ØÆ<Ís«}ÄßçYè·uTߤ7Ð ˜ÅrÄÉú™çªÖ…wå¯ç¯)HPÑ–¥jXÁœ!¾_ø_OÿmšŽÝèdxAB:­–bÎÕ‚÷t£à•aGrµ‹Ñý±ÒîhÇ ávAÐ*QÀ²)I]¡“þ÷º›1ãnžºÐÉìÔÑôú’Žæ\ÿÞt7Uó#ÎÔØ[º^úǺþèkЀwÍ7šا·×ë‚Ìõ7Ü·’îfòúÔå¬Öé ¨£±W¶ù[¼¾,êgm¯_3¡Wpñlã'ŸÔ‚„5`§ÇnõÉšÂh†ð]ÏÖŠ>q–¾áÑ‚IJS ròÙ G˜iëñ¸Ó4U5ül5÷‹ŸU]ïZe™Qóé)þ6Ôv6ÄÙÃÊ¢v´¬ãßËÔ?¼¨2eè±®¬ ³™V8q‡N&×i±g—ÖãþŒ¥küh÷žgY³»:pÔ;LßÏáڞɷÞÖhÔøàÁ6»£ü¡?€zà]€ç,ñ¿ÿƇ.Lþ<Ùüõ¬PSÎU\ù‘\Ð[±¿b=YÖ£T“j§ Ä1ñúóЛeŒ%b2÷Œ&«•+¾ÅÉЧ}oB¤Ðm£Þ ;H•õÀÖ9Ë|™mŸŠ 1ÿk*¸Ÿc`âå›q©˜1^`9b]¬MÂÉ¡?Hü?õb;!˜M(-䄉uפ‹<¬gˆýZ3zSgsYD…Öö§ÃÐß×mäÇÞ¬K®{¯Þÿ©£Ñ‹yz-Éù·½®cÎ)zf%NòÃ¥ÇõüÛIð¯{ˆÛQ{5jšfê¿ 0«u>¾Ó£PŸ{HAe@¬ä-®çú¡ØÏ2»VÛø÷.p2oš¦åCûüh–>g€Ãgíµ~,µ"§¯/ÔÜê|[ë\½ÇmíÈþ}N€6.õµ1³É¾¸;fåKën^¯½,Q÷¸YWóè{ËÉzòÙ; ó òû„ó×uÛèÿ‚-ê‡úÌ¿ÝzC}ª®¸ëYYO£QOCë¼8_¯Ã§ÇÙ ;ïŸ/úÄ»‡^6Ô>"-’,îfknæËdýØÊ|ÉÙbÍùµêú˜OdkDu#"S/–˜Ž\n0pŒ|:äŽSPŒxg5ضºŒ´9ØW¼_ߘ9™ÒÞ·—ù‹ºÿ®|'f³ub: ±¯øhHó¼Åu9ù‚MÌÏ û¾×íbÎèŽùZœ¦ôÉúyÝúδãO 9î»A¡ž[¯õMW>ùk¬ÇWæÝ?á©ÁæP Vا¸Ñ1,„¡Lß™ˆ ñÒƒE‹r€ ¡‚š z²SqK÷eÿ/õgGˆÓ§ð Kñf|ã-͉hà¸;LÀ€ß𠽞€Š×“Z%IÊ~™ÜMÄùßÿ†WÀŸëŸPnò-·xÐ#/Ðìo„~m·þP¡öØ´žVá÷UmC_–úÙýÞEýM¢5$‡Zÿ?\·¼žLÔÿ§uzW±weí¼¡‡ÕÔïbõÑË¢vàiÐ5t?¶S_‹½ï–ˆ—ý½2ñÓþ^Iñös&é[?Ð2èRà/¤-P Ÿ Ú ¡—ê1YAƒ¶t]œ ìÒÎw?è–Mí ¾×ƒ[ÔÛÍz±™º-Ä»Lô^¦ÏåJó2ÅÄ'Lëk%êºPe|nrI|f?:Æín½Â¿c±cÿæßÑ~õtžzü;ÎÙ—ß_çlL<Í0>¦NÎygãu§»é{Hú]™"¦î&]™Bïu½Xêr÷KvûúŒ9¯¯Éq5Îkr.vዟˆýÔ²…?@^]Öêî·Ò5g‚Yš“˜ˆ3b: D¿vr®ÆëQ¶Àg‘yÓèqÝèrOâXûUvÜCüAàbh ÊjåÃyeÆÖã ÏËœ×ü…óê×8¯šéÇUøl#.¬c³ç`~\ì`’‰ Å7Æl@­·‰u­¿¸/âd4[Ö9¼ñÿÜÝyooá¼¢et¹…Ë"N ÝcäYëÅÊW±Y/¶'ê÷59w8XѼ~1g(„úuœ~F6´âûò½[‹¤Û¾Œ§ÇI°¯Çîk&]nHu™ÉêõÆýÅzÀ³Ô-ÝMäɦ½kæÙúèJ¶Y¶0–>,í½gy|@ã,qT™S¯VeúþŒ+_QtÆ­Š­W¬:aØ×SsÜæ3îä·0‰?˜Çï‹ëýøx$ân°õþ1Ð宪g7ñ²Ò‡E y¸;¯J—û—ÿÁ<þÌ˼þM—ÛyøƒyÓSÌÄçdç¡È³Ädã¶ç^G§{3nK±øÜȳ̻}*Ï6úÙ¦¢<{žýn¿]·•øAè¸Qçàíñ;Ø´ñ–î¶>·GJLý„§ª7ñ´Í~ ÒïÇOõóņz€zòɽðI<áÑqëÝõîƒãjó™“iÝülÑ:Ê«Yõ°çb¥>sŒoëYL-€—E¿6MúVsçä‡P]ŸVÖ·MZ Žœ-ëYEý»éº¬gÞ,íݸ£?èFÉ@g§7H š½a"¹Û*6'Ö£&KùXgá×Ïrð={soÆâ‚¢ÕëæSõåXâÜ©þ<øÕ§cYW›õëÁǨ¾šø»þ}ð5ÂÚ£úyô›³-êUé».Íq;ý5šu 3g;íô¯¸ó™ãrVS¾†y¹¸žíŒ“×ë ŸÂ÷îS¿UxÚNÎñ³ÂÓwè;9$Ö|¬ ¥žöé0I ÍxÚA<­:þ¾ƒuÓ7Àô"êËe_ðDýWépc™E||e*ëÓrúÌ£êЧÆÓ‘L dèÍÚw&°ùYÞ(ßb>…,Â"e0û^©AJÂií¼¼‰WÂgékÒßG,Ny`@+õè¹î³t¼¥ž{›aO;7Ó?Ï*ŸŽ£Ó½Þól'azž U^ðW^Ñó…Jïéóߟm0èûfWxØÀzøÏì‘wc’˜[û'âè=öÁÓy\¸˜>µç±möíˆß*ò´ãïñy%õŽƒ¥.üü@TÇÿ üëâ‹0#<ÌbXÇt¼¯ÂÔ§3òÀ·¦dâi3cæÉB­h¦×ÿ¨›±>‡õŽƒ73ÕÄýÙÆõÉ:¡À|B¶ Âç2¾šãfΫ`iÆóôc«gàžÞô?¬3󞜇+?—·b~ÿ(dÄzíÍë¯iÄûûzÞÔäÖ-b‘ ”Qw3¶]Šˆ‰Õ˜ÒŒlV¶÷³)3 ûêîžñ}ܾn pQççDÿs…Õâîãª01Ç gKÕ&ˆÙ¯lÛcÁzakî4í>#“ØÂ¢Úâ‹Ä½e«áëéïqç›H¿—õž¸Bîá™M<ƒVþvD<³ìªZèÝÙ’ëÕî¥CïBuC¦ÐqÝûFË4¶Ø R(á7|5–øvÖ§¤±,àRÖÖ.J)Ð¥6 Ø+`ÛsÞè$,ÓÅ_•Dˆ3ÞÌhðßXìN&ö”d Q‹¸Zñ)æºñN›•3šMÿÃl\Mä ÊjFSñýíYcÔVoø^—㕦,kE‡rVkÝø7«å©ëŸRZCX"T2lzÙV°ugV‹´b,8ÓÍ^úzbU4íèä0m³+c­;z¥lõ"^¬¹†Ù™E¼\OKòá¡3ŽÙMðÊ/0v\6Á‰™«©iéŲ$!3V"Ñ© P‡%‰Ãø/½ é8€dõº•ŒÀp«×?Ô>O.}¦˜ýÕmê ŒÞe?Sp뛼zgc.¨v„k¸ôž Å^µ«Ÿñ²ïe…žßðB.äç^ê–mÔé^éUìØºªBÒ¤ «xÇ«Â׆³³ßA=Øq1¹€ g·-F„¢Çú[G*üãÐ{žÁ`½ú<#€Þßž!{6ç)¸ù7“zò?‚Oíù oòéëÝù#ŸZ¤„ÀvdH#v„é„àë4dÛ¡š|y$ßc\ë«5UêdOÀGy ?Vç¿I?Ú3㎞`šÞÇqZ„-ÌÔõçJ“'|é7üh99%&â+<` ±6åÓ×Cœ>ÛXEMÁG+)SN`îõ)hÎ3›;ˆ’t&#¡{?ögÖÿë:%Ÿemj›Aò‹ºÅë4Î÷[¬yë.žb¤s¦-º¾P§ƒ(ôÀq3Ÿn‹†^Ÿ/4MX¯wœB eþjÂï-°kVw®Ù²*ÅÂΰ<àXS×Sx•¸‡ £ÓU¯´uå½W›ð‘C_¸Zmà̈¥VK ¨jÕ› Y­B=âú…¸Z}úÄYgž‰qÿ¾> w°L§‰ÆU¡žV+O÷7s“Ü-f¨¸[¼è U¤gZ1FÕl6Œòq6åçx¯+Ä,ßBª#ýØ…Fú\‡%=ø¦½Ië±¹«¡õH¿oȰ°‡¶Ä2;mvêÇ_ñQ§B±*ŒH† ¡W_ KH¡0E{ÒlC"­.b­Û7w<½$XŒz(Eu°.òê jj– 6v\Þ[Âí8êÚ5J­Ì»Ò ìÌËÍ\À}/pí“Tn°›q’~ý¿c²¨Žƒï«rv妸Ò1h¨¨DŪF½ÄÉ-Õ¯ÇG1“ÿÀa]ø®j\ptǺáÓÂ¥Ž½<žQå+·å(ˆšŠ\z¹àq¾º‹ÝCµ/ËÃöYìý-×­ƒy:¹Æ*ùy¾_§a÷E¨ÞZluþ´NO9°0ÎÜÉ©’š;IF¢»hÃWíÉ£%²(^ˆöoíÏÊïïy5ðÕýæÕÀ ©DžŒgZm2¿ð‡AYܢȄà:öpœÿ‰UÜ 4­á… ôªõÈ$ɸ֓fãä$_´JC‰¥?³Rxré÷øö™v>³Í–zV}¹—Ïëh´F/O{Så3lv¬<ÛJ…5#r’&àÕÌôâ‹vÈ(/ôT(`µXök_8ù/AÐmeg°8,Ò–ûß]P€›<0  ô„I™aÞõ¨3×Ù.ª©àÙ¤’0¨[´›Q à`#v<ÙàÙts¼;³{ÜoÌç¼î?nö*¤é ÷§¢uúÊXÛ ¼šµ»º0ÒbgMxi¥ô^,”-ëé:õµ0·$ï‘©q« ù¡Q7sŒ[‘Ô”D5¡îÌΧ±NÓ0G3~1î¨C›ž!-è¯VçW~~¡m.Ë1 ‹p¤¨&YHßDééñÍk…šÂO_éhʈ!*ÑŽéÑzeá’Ù CÚ`ßàßúTõ¬SõòÜwÊŒçéS1Ÿ }“ìa:̓­Ô1œîS¡+]Dô©¸n÷M>E»ŒE±êÔ„îž[ùUlv£¿C*²~Ö©¥ºHoe«KˆåðÜnö(ÔþCµÔÔÜøL9Ø“îoµ¾rCr¾Í|÷½§I ²Áü)ÝYìQŒoæSüS "P-…îu}žrþÔRH DÜ<¥Õ¼äȘ¼x£XKM­øñÒIÍß×§‰{ Õ(˜:ÀBö‰ÏTû~f»yQŠþ©•îÑ/•*]¦àæUÙõîÄx¡›^úT3. f–Ì)*7«%8(¦z)·ž¦¤ -¼)«{@Ø£i´D7‹õ\ñ]àX]ã'“øLqN—°>zuçþìsb>m6NÙŒUãƒlß¯Ç #?sÝjJ¥r5K©I'{ ýðfR?¤`›æd—iÂA_n«xâ³x¸>Õ@­þîëÅû¹Õ+ßuÅËš:çLêh‰=q6*¼2”Lç»Û<¯ê¬¥ŽjÝ¢çtu½º™?¥ºX‹õÛ9j˜@J˜ åêÂÞí­üUršªƒ]óô§`N6ÜŸbUÜâaŸ|Šl;ïú©ñ k%¯ýOõK©JÏú³Jmî­ŸzÔkcªÅnu¬_Ý/>Âb_€ZѼÕtuîw¿tP§°Ð6œw«×.b̈ˆ²}‘—®ü§¿:$-_¶:nýZo`°_º«u]žýßç~ïÿ>÷{ÿ7.Àû¿ó¦°ÒјGÙ9`roLßó¢ºT£PJ„ë½áÝê%÷ÌþP¿7XÝwâð¥÷¦W£Ùî£@Áàöb¦Ò•÷³ÌùÅ\ßçxÌý‡ùÛÔMÓýÓÄ9þ´>Æé Ÿû»úÔp f¯-O¾?÷7ŒžØû«Y£§é£¯*’01™Ñ PžŒ«òhe¼=·Š™tÍFc¿4ò¦ój䂲ÅÇšèVTûÎ\Ì©æLbåjŽT6XÒêÌ©Ä7k÷sn5¨ ¥ÎNÌ©5¢8e+Ëv£E–ÙÞŠžÊèb1 ¯.59ƒ¨{š…[xè:›ÎÂõØÍÚ…ÅêÓƒ¦e}ª r_ü{7õ*mV‰aaÀ¼šG¥`¹®nØÙlE´+—m!¸p#'ûâ×½šF^ @ÖUoe…9¹ >«éî)øU޳t¸í±þ]iY[¯ø[dÂ1ñE`a™W,þ Žgkìxúœ˜ ….™ÌnGýjwËL¤g˜Ù?À’/Ìlˆ^`FÖvÕÿ¿=´ÆrÕÄr€Šq³?Qà¨_1׈ÂÃqg<­xýôo3È©5¬†z-ÔcˆÌTk30¦¾ë,ü¼Z«s‡osˆC·­$:‘?!âUôýÐ|¬ÊÇອ!¶tÁ·ÊyzÊpmFÿdm½c™Mj“U 5[ò¯aÊÍ,*¼½†¨'¾%Cw®ðè¾élÌ)âÝd°;½ÉåN—£ ]ˆÙ÷gKTŸ¦X¹g±®¬×wáUw医ÝÌU‹5ðµò é³±ž¦'æÁÌÍ"Æ¿Áùá»? 9Cb4žâzº‡Ñ‡;bÜ;9BïÃ÷¹ jø*½‹xwËV¥ïv¦Ï{õ»8Tû­f63#&Öm£Ù’¯‡;Cµã(rÏD¼¿ß»Àâcž”áFg.ÐNXØÕÞgÁ]Ëv©€¹`ÝD` ˆÝ1Ú\·Bä!se+¡Vçñï]ià$èÔš æ%Ì£-Oàm!jP•W;¯/Gk!½^ ¥WUUWžÓ@²!g3Ñóµ]ùnd(FîDª;ò,R'r:R'š‚Ø"±ÄiQÏÃNdd 64ƒïz ø¤‰]Îå³Y7•z°^§º¡ƒ¸;òóéõ3ŠÕý‡<½˜we{ *?,N¼~‘×Ç Þ:üÞº4ñ™g9ïKN@³ÛëDÖ•žOÛ¾‡Õ^&Ì,þ£FFˆ®òh<Åý#טYrQsñݦòÉ“»k¨8‡…^kr^­ÌË1sûU„Þ"—$åÝÂ\ÃÞË¢æy+73¨PÏJc¿p‰ú6«F ÑdÜÕØ~Öì°31ñ¬¿4ê_çÝÐrLÓ“ãA§ûbÛ÷®ÔüAy±yÞºÁdzp^UýÚ¼ŽëÛ³N3?W^~¶¬g7ÎãøüæÙBõõiÕÖY}qˆí+ümkØH…?[5ž-êÙ7û“в"k!mõÃvDÀ@¶¥¦H§nñ´¶Zê¨?»âðï¬æO`›뚦®W#^k=zò8âàßû¾>È”¥_ø¿?HŽØ”ì5ƒ ÄWªd‘.Øu/YsØåv£fô”ÆK!Sv¹© ºëMâ6†ƒ•„eÖ³…õm?õ+k²îúv°f#‡mã§ÆYx:æÙy»Þþ²é‹³mg½:uþŠža6ÆR¹ ×ç¼5¹~— k,v<ZµñýâóXc}\í?‹šn|ºáþ=Ï¢ZlE^LÜ£òržeLþÊ[ýÚ3/ó”óÔ³ºʪ2†eõqË78xWÏžMy6³ÆªUÏ"8¾ÇýnlòÿÿOuoÓ3[“‡íß_q—äÂ`},EÁ2 ÀdÎNÐÂ-Â\¦øïûDDæéî;œæ=Å4 /8œš§Ÿ¾ýT×ÉÊŒŒŒÈ–“ ‚ŒÙÕ<‹'þ¾¯‡r¸;†gTŸ S¿ŸXm ¾ìÿº.«C‹«ÈX\}劻u;FÓU‡™!ãöd~`u™ô‹ê8ÒØŸSç0yÇÓ4·#ï]‹e/d>KKìÅ„V~0|Bd“1Ÿïáwž”œ4á‡;íÄÇ{Rè8A1ÜÀóOÇ šòÓåù+ãjqMG–ƒø¹½žž]óšèµ»ïyêˆÃíyîŬ“S~ Í„¯¶1(rI¶T*RXÙÞèf)žÀf{ñ&ON±«ôÜf׈%úåÖ¹yz^³òÏj"µ("«óÇ‹àðµå«ÉÖEqV¸ÖNʇ½_¶xt°[”|Î,h9šÖÇ!»ˆ6Œg7{¾:+ò]OIÛnûº[ÜÕùmÒ©f1¥¥›«û%ß±§žá¨Eë2¾ëRÎT—•)‹‘ŒÏºïå³ùÆ,îÎÏ8{篖O_7ÈG>S‹™è”bÁRlXw®Ÿ_úUØkîã “büÔ»Jöú©XÑ<LùÂÜ^Ô¯Úä(Î*%šÌ:?½á±›Ãš¬ªÅÕ%L¥çϵø‚öúj㥬ë—›ãY¸Á‘j¿ñØ[´Iùgñü´(?]wm |·{~Ûë{¾K6:ó ÿ}ûîu¶;íÀ÷|²úƒbˆåE}¦X¢ZoŒ X›wÔRœ5Œkh@W³Äë‰Cؼ ÖÀ!ÊöÞùÛŸékÂu[»Ëëf¼AU)éÞká…v²…éä6(,k"g{žS|2NGHÓkÍ,á±P<÷XPµ¾1Dûy÷œk)gº×[ç{zo½æÈ"¡€–êÍc…¼zòIÎE†j[*õÿOòZžs ֢à #ÍóixÖ´¶œŒÝÜû·ßd5Ï)õº´÷Ɖv.ï”L"q6Ñ{YüÛ—÷¹ˆ!6Ã6&÷z½ÝqèØßwÚ~íïDù_£÷Øæ‰F9Ü~ËŒqµ:Ó½VŽm'Å‚âk`49›‚±a89¿0˜Ñßj ‹³9é ¬®|tê$ðÜ–7¼JÚ0–ïÚ¥8¹ï;M˜NºûfÂÊ·×v‡e_Töv4aÙEƒÛ8WKëî=Cû¹ðØ!_Ãì“{CúV9;NIkj‹9î°Ó ' –®ZâH#]&™ËŸê:k-¼E#ã¤k‹Âã¡ZŸ€ëÌu÷Aèg÷[L hLtÇaÄÙq¤K\86~“Í ‡_eg_[×g!칋ÖjrCÖköâåQºݨš¥Ýã4ÎZNÕï¾m}?o¯ÞË!Æè=p˹ÄÝXÓsªê¢­—ç\àv´r–ÏZ_5‹ÁÇœKÏr¾s(åTã—œ«´ÏõÇëÓö‰~½_Ú&kÿ^2Ýí§{;“‘~Ëšª œ_¸¦øVÝe±ù‰…ûÞ.aßõ¾óT7ßÛ*>Bñ>XÓú@¿Å¦vÙ›YV+XNt÷ —žecãï‰/ï1ÅYõ¼gSíPM~v_[œåXúù`2ÅqÃdl¯îs¨s¼~Å`êçºÝŽÖVk¼ø ŽÑd­ù†ó“̉õž¯ºžÜ ³âùl²ZÀ¹æ™þê1šfyó|@¸ƒa<íÖÖ=Ñ(çÐñSi”“ÇmfL‡«©Òß³ý0Óá³I¸‚áÔn¸qjœ½¿kž“Ÿ`’JÏñÙÂñL5˜2-¦—Ís±&µ†›`À¡š”|IúAöÆ—È z¾î–š(™¡mçÏÏzÈp.aŠÛû`YõTr\k*.¯Ç†0Æî}°©g=ùïã<×içukîÐ1ôƒ^òÙ5½Wc\$çÇü«{5â.™by¿óÛƒ½}à Úÿ˸ÁÍ70®Ó ö­^¦Å šžíì{ÓäÛ=ËÞâ#¤õ¹.wN¥õð½lÖÛq•â¡õŽ6ûó­V8c½ýŒ$ZÁjƒ"œÀuˆvÑ^º^Æ–?Aó™º-MžÛ§kÏëÈ÷÷u’FyÞ–Àò®£4QýÖå§åý>mm˜‹á±âŤáw™­x–÷ƒé©Þ?QŽß³¼ZéÎë¢l}+ÎGŸÔw¡qå½ÞÌo§ÇÙ¢|wz¶×›ç ‡Ðð~Ò¦“æþ½ù|o3°Ì¯€KR“Õ_*šÑîVûA,G=‹Ô—G2ÖõÄhÍÝÍ›@’~9È 6ÁCæ£Ùq®ùÎoâ&ãIøŒ± øÚê­;. ×2^ØôØÒ¼»Tïí~Œäçy^‡×_¦±ïõÓT¬hÞ÷2~A¿ó‚ôÖO°ú*m7†è ƒyç:=Ï ŠûÂ5yî` \àZKé¾rM>žütMãÙú\ËNTÞ’XëõF´ô‰“î/³uúÈð5ì›FFX³6uçJÉ(áÎò•h¿„³)Ä(q„gU¯oâYFã­Îµ”þR¦¸Ot^Šyæ¥%_äÒ¥ãr#BMÞië©À^â~¿;ø2ø„‡ŸºxMÏ}#7f@œ]Ú¶îÒŠ:ðˆÊ’JÅÞqà‹{1µÕö {_<Ï’ ‚„n…DÛ(¦_Åöri¯Uu&ñK²§0±|ÄëO4td)ÑĽü©õfßJÜÌœœ? aÎZ/ãe’’髬“°…ï X€äË+6‹ òi@Îo;™ÿ¯u“¦”{LYc¾Îe'©¹ÞS]s½É¼×‹,âfB˜'$ÞEV;h® ¸]¢•Û4žÏ¢6¸Öé^o®Ë];`Ýü.«~WÞybFŸ]¼ß· ÒUµCÖ%†µýëT¢h®lí‘v÷Æ,ÚÝ£Á¡ÞÏnb&Â/¯u £ú@‡Ã쳌/¯s›õÌO›Ù€½"j…;žf†ù<ÉÊõàZç6Oýܽ~³0 iƒúxÔ}sxšàÞnõ—Ìîõf÷zªï÷>#ó‚é?_ïyƒ4RäVªxlu™THOFMæü¼æÅ3ZÜ£åHÙs.à°eXÄRçÒ~>•ÏZO†yAæëÇ{žP¦ÇkÍI–õ™1þæ¹m i£µºÑ° Ó¨ƒt x.#ûš¸,ý˜ˆP€µúiC$ˆ§Êr:…„ðû¦+GJÖ'¾¢ŠpÀŸñVß$Öě贋å9VƘEÂÔšu™{ñ4&²YF„¶Æï›C!ÖÀ‚æ‘ò‚"Í|¶Ÿ±¦ÖÉ6U†F€®*õÒ9´x;=Oðxëy‚Å"{^ T“FjΟ7ïïöpˆv|4­Bg]fÙxÖã„s(„^†Åg­Ykx<Ît3ÏŽtáuî3ÝTXKp<̯°•LæZ½ÄD­þvs:Ô~¦ùXóuçúãõ÷ŽÚ*íææ%¢ª­åOÅËß·òÔ]IŠ—ˆŸ]õ¾yíÉ«on÷ŠäSò†dû_ÈÊ_ÍŸ×w|‚©áÏÏm•fÎ4+kÒõÒØÁ¹Ì†‹‹§ˆŸ9y<îÂ#²×ÄUñuû9—OýÝ™jâïâŠ<Éø¸ ßÔ°s* ‹ÇÇêùèýÍ2~–W%SÓûëÅÏ-®.šìœÚ\/ó]ÕÄåÀ×»Ëûéžnëø™bD·œ* c¬ŽÕd=óê$5ñ°×Š„û¸—ÝÖ˜ãu¬§îʃs˽fØ=†½Üµ€°—âøAÑ^Ö{¯‹°Ϲ–r8{}æX='c¢Œ½>è;à\-áb©µêX‹&¬[Õ93…ub1Š·÷:©N+oÁICþ2~«NKû(Þ¾ímûÜÛõ+®µ~ÙÛüËÞöϽÍ^—-ãéxnRþ[ž×¼ÌJ¤O *•„·9ïu£ÆW¸ó[Åce1¸=*×Õóá,|×â+§Ý°¾ÿZ›;à‚6VŒ¯“xBw¼VùiŽ5Íc–øÁb¾Ûn¼vr]åªùñ9UO†/èýH£`¾{tns’RQU‰µp¯žÔÃIÊ™ºÎm÷ºŒxoöPn挪nZ¿¯ ßMGý2œ[Ô¼%½bÂÔ¹MÞG˜Â Ú~?·>uù:ÇÙë®±ßñÚ¢<§:Ÿ:œã<ý«B¬e ÇÆ…}kr ظÖbª6ùf{ÊX «Éw¬½–OB/êy­ÑiØqÀ OÒ|d¼jÆÇùz惕#üËZÏ|óÇ;Dz§ï·ü÷ÙÓY'9â£iñ-á·Åïq±&š<#Ü]yô7^øÇyn·ÅÛ®:­z^Ðt×eÏo‡ð†tP—IXƒ½D 7´!îU-?uÌ3Ħ¾ƒºÖ2óÍÅ8Íx}S¿my>[Ô‹ÔÔP®Âo×ÑL^b e>º-¿…NÁ­Í£oërã·E¯÷l½ OÈŽ\ÿøCñožùp1t"” ¼aœà CuØÒ@Ö[x­ê¨L -Š=gÏw«âë°uÑZuZ¦-㳯™[v|a+®'8Xž05æÆIëéñ}\ähËr.;—Óû¼Mx¯âk“/x2Ÿp®å­–¼oÁ¾ñ8á„Þy‚yP½ÇÇ;Þá^wÎ¥~×ÝC¯åÕÿb~«×oÏo‹r.Õi©¨Î;ó jÔÄnƒÜ¢Ÿ\£.Õ4zlj€/mdb/P„kâË wÎnMø„¹ëš½y^uúï·O$ÿwñ[=£ùÉ5r*·ãþŠþ×´î]ë$|¯e~Ëõä:;^‹ïbX—„ﯟ«O!Ÿú<öçäë㻬ÿr—ջϫ>nö¼Àî²rã¹ëíç]ºŸ9[~Ü á¿òŒ^T;Xèi¼µ<ÀP;ÖûÂ[­—nŒxõ±T $Ï«òE(QT^½ÊLj+׊Ï<$õŸôËxÓ"?µîÕˆÜÝ:Å×âŸÎðƒ;ß-ƒëñv³6A@ÖÍ+ïø.·¥µrR; ¾6Å[r™‰×ZËã-¸ÓüŽ_·ã½Z7õˆã¹IñvNûý©xËž;Ö]øÅ×oÑSENRõs›ÅW¸Ï­ø é>·â §ÎWèþúªþY±sZ•WÜœ%«ëf˜ßªŽ{-¯« ­ÊMñUñÖp0iUwÞHMyC³ˆ Nõà«×ÄI8Xz^ó²_Öˆ¿Šw+Ѭ•!ŠLߺãbP)ýëïµð[qï&Å x­²žÊ#õAL@¿‹}’wrÍ{Ý\D¸ž+œKß<㯯·á·wüU?lV[oý¾^ß³ê¶vä©Öªç·¼°¶¼a{~kXŽa1ò`»§Ü4Œ÷†/0´½ê²Vä`âúÄ‹•Gì³üv¨¾Ïo=>v‹Ÿ[ÜŽ›qÕ…“5¿]y…e”üX§e‹¯Yù¯Iÿч…uÞ ~kó l‹ý¼ãã=“gñóÆs_ñ5{6nñ·ÜømyÇs¿›kqY|oGzµè—eëTËoÑ{”DŸòѬuó~øå³[ž·òÙîù¬fU§õÏ ïU¼%hN¼á,Þ¦ìùªâ­qîú?©ŽæØ–úùo»jÜîøC7ì½Oœ¶"ÖCøÂ¿"ãŸê¤âœ¥.N¨å·MºG®Fæ}Þ7~˜ó=ŸÝâ-Ç?ùeÙëÀyÀµ«œêA¾)¥í*ý¹QÝiaùªz‹•∯â×Jø–ý3Ö•G‚ñTké. Óm.•‚DxÿåÎÑ)š9QM¯«¦íî£ÖÇaµ–ÞA7ew®»~žíõÀ»;­¦è~±5bPï'3$p@*+ªŸ\7cH¥œY kw…¬éuwq­»L“ƒp‹Pï2ûïg}7:·òEÁzø‚Õ¥¿}‰ÑÊQí•°4¾‰µ šð‚î@M³{`¦ðõbù`m†ü³`x`ÊÖ”êÂúdnW‚Šô£á<™4éNýƒš¤÷íÂÙÅjÖæ®[Sœ'S0¢ì¶|lMh;«ï`ì Šl®Çóš—ª6×3½§ØPµAÝ´­^åVJÁ-îÕà°[d¸2¸é•Ú.OJ¾íëM³ÒG«ÌÅ9sÐw¨Cç¨J3kpïF±‰ x±çí1à*2š,Ù´Z[Ì`šÏA¶€»qd?çËÏu}^óB~ù-ÆhlÓh½x)[hŒˆðÍÖ¬Yí&¥$AÖZ¯ïþú;fà.†Ab Ìq´ODô÷cÂué –JYá iÅ€ÂfNëýå ˵!ž\'®5]T–øc6ßSä&ß×ÝV†¾‹3¶Î¯,lfP%ÍõªÅOô·†Í>ßñÕôÁïø»ÍÑÂãó¶øûŠß2Àz‹ïøm!Ý{!… -}ìã©¡Ïtí]\«×øZïôþúåß uF±žî*ÑU‹yð6àßzÇÛñOUªsï¶ÇWÛK¿Ýö²[¼Å\ÚHn$Àk#ûSgóø.z‘0ò¸žŠ²—ú0κ6µìí.K¹?~‘ëÛ÷[ž{…C£ô[ðx|Ý]ø}™›‰ÁŠ÷¿ãóõ²ç‰Ï=â!rùM2ûO©æÆ×îªb?—Ç×͵T0©øiê uÙc©Ž^~dwBd¼\pípî˜S±Þÿ©5jZë„Þϼù0Ý}ͳüœçÖ|–ðû¥2¦XLà7~_øD¡@#ɘ'ñ–ŒVÄGª>as9ìÝ É‚s{3Mvk€çÒר«¾ýõKñ6ÛÞ7–“Xë®ëªãF>áµ–È¿­Šžñ~Ç„Áµå«t>'×cÄ?Wªç…mó§”ñV9[sgÜuÝp¶çwjƒNiõŸ\ƒÇØ«çTêÉôæÏ<Çâ¯J¤q›ëi1äõz©ž6ªèàýäëÖä[.@ëdo…+÷×Þ[ßw“jƒqŸcq™oWô¬½\²QȺ»¡uå Í]}PkŒrÒwÀÝâ¹¾×YëäµðýÜîùÊõ\¶îú¹¯š<†úxÛªZA“²2fØû†Jyòªf†ò[`㩾 ·TߣPç·¨¶;µ *dw £ªob|V^0)mñ\ù.óåù©Âû»çÖÎi‘/óQáTõÎWu®‡ç[y„æÌk¹1Æ;Êü\'õäůI8[;òkâ uã'Pb°3Gª~Nåô¦.4ðä·}Xm.‰òáfbãõÉñæpÆ£,Iãú@;˜ùí`Õïš×jTÏ™ìçË÷šøÃrìF{×R–ç¯ØbÿÌm«æ|M{!b`„ƒ9“᱄J³£”æì|¦-¾}7ÓóÛä{¯˜Qå9ÐmŠž2foë§wÙ¾s{Ýeâ„öíwÕTþ»<žvÕ]6“ʵfý,¯'¿O=¥x?ÜeÝ‹êVþ|4§SÅšä½íuïšê¸%q÷Èúº‘¾c´V§Í7ü >k?ˆ¿MøÁr¬XŽ£ÏOñnR‘ÔÉO®›ê=EHÜĺ»zgå«[ñ”G¤&S˜ÇÚ^¯§´Pïg¾ß|JËžŸŠE¿›ß2O()©KµòÏ;žb/·M`ÕAg‡ìrŠXå·Š¯C}‡mU'Ö[ñ[µÅdÎüö$³¾@2N¾š’Ì©ŠÃ^ßñÙNn²wQxnu®‹ãµS=v‹×Ö£76þ½©s|r—õ¤¾Â0e¸ž½Vhlóv<{Û§×¼Ò§éÓóˆÅ»«wÏ#äKÒëiÒÉí¿¸¦ýþÞ²M6K"Â7ÖÙû[mz̰½íïñ¶{Í[‰!НU:Î7æè{»>UJ~?ã]´¥¿Èg¶½ç«/<Ö±mϹòçº{M[Ó{Î%ŽSŸº©ùï®|Ø/nµü.›Â²›c/Cøn¾ïù)lç¾Ûo5—ƒ»¯(¾ÞømÖëoŠ×¾ <§]¹¼â­üGvl…·kÏg1ÑMë‡kËý»°þ˜h:'¼¸¾·÷wù<Þ’˜E|•H~!a‘ø­â¥t˜’͓ՆÄ[¾ÛÜ/W'§W:2U²¸ÑæX‡|—ý·t¢ÉŠü9Ò^fþ:Éúa¼ô~Yž è?„AºC5ÿmŠoüýîx°ò[Ĝ햼S\¼=ŽòÛ×3š<Þ.Cé,½îývç:—r«ö˜à:!±Ä9ïo»ðÞåñ–ñ¹Ÿð(3&ŒP=*Ýnzt&cÆxÚ,çjû½‡~÷}uÓ¾úÂzý«o|÷Rzõ€žî-¯Tä›[½È©^böþØôxlwÃ<ó]¿Éòaÿ.<>7ß[«‰³ímÓú$O¨ây÷.¥n³£ä^7ÏW/_=í]ò½î_ïî6ÕÌ•Åñ‹ßà{k"xµCó»ÆjÝ=·‹:ããrî»ÔÍÿ5¯³Þ_ox°ñˆIÞ\hbïé5Ký4¿ÝúÛÍ߉x­°íå÷~ҽ߿µsœ¼Ûª”AÚ,uwç™&}ýnî¿Ì—Uè4£¾'÷­ØÍ‹ú¿°Þû¡dõ˪¡ËÅfùšUB¥J{¢ÙSçxBó×'÷;_!oÅëþ©Þÿ»ñVžB»‹h.>ä”ox€ya±?¦þ×jŸë±ýõ‰kÕ³è÷‹»üðXÌ’àÞâÐýà3Ý…(^ÁôÉ W†cÍ»Îøýªskø®ò†&ɽm~3ðjt©/n6T|¦áÕTÇ›â§ä›4½‚¿cÂvæ àˆa&[gñjæ"YƒÞµÀÛ]æz`uJoæ¾Ûîš×°«\•÷z=ð`¯iÉõ_AÒj½É~„16’èð S¨™µBþ|¦·bBñ×j «º×C¦r¬æø‚ü${5Á6…ÿ–#®]‘«:FŠ·M{1îÞb~Ǭé³Ï/~Âòx[…å(~‹ßÞ‹ìª-ø·U•Hv´™Xv~õa‰ÕLç†èœnËW½i\Õ ²ž#^àØúVÙø ¤Åa}Àµ#^Û˜oÊ—L2X/Ÿœ‰òO_¤Éšê+Þ»0†H¼Wñ[ß¼¼Â^ùoÞš9-'óeègánÙ[UdMñÒt>ÙS¿Køë úa†ŒZŸAwÙ { ^¯lÝ|K·M*VùM¿8à6ómzF§ã ZÏ;~ê¶œ«©.34™ñwëœw‹ÏKùkòß7Töõ_á$¿…œ~Ö3ÊxÛ²îñêxæÆ{³»Ê{îÃz6’8bÞìܲæío[ÒëÛ+7á µ)××9Ý,¬j}ÝëÛý@ÑÆzšÞŒ¤bª3W²Ü׸ÖÏ;çu·{ÌË甿¯×K»xÏϬæ7÷vsÈnm#m>=Ë+ØM^ÊÚÖTXܘåÞbÊíªùuSVmù­¯ÐGT‘9¬2ªy¼§R‚çÇáD÷ßÍvÕ†!®Òö ÂÉ¢•M÷õæZ{>wTÙžÿ™ï‡\lwÿzõðR9ˆ›3{k‰´†Ou}“˾ÿ*Ÿ£µl‹W—s¾£ÐrzÝf“j9Z¾yÒ×°B̶¸Ÿà؃%mËÒlO·ÖšÔìÞÙϱnôrs§d®ßt;¸g“ùªí¡´/“1\±â;̃:¬T'T@dµ«ÞÎJ”Dë”JsXaÚÜ–WlÅd2ŒÇ¶ê¸ð&æNºýószè÷ÏiÖ9”mÚ·6¾§éçtðÜiûu.5 ?5?¾Í …ç´ójrvÖŽu÷s ÇÝOæÍñÏèÅCOϲažSZd(ÑZL™×6Î×Úfp,óYÁ­ù:ãÐj7a>§’n?9§Cñ¯›¤ü`þ‰µÔ‡4·éÌa¡y²›M¯]•KÒžiîF£±ˆ§R€$VYmh -â}†ÏŠPsîñ”ÞwB±6É:îô\e)±lÒ‚KF[‹˜lš.Ã=ª<–™¿à¡¬?´©óRþT€“³7ö`x¼„_Ø6ëtíáP<ÔD¶ØîÒì®|VwœÆ.jr?½®ï,i®‚výëÓª ]gmš†¸eWጡóláõ ¾ÓûŽ…íÎYÌžÖÌþSVpÓ„ÃñÎו5ö ?Ï>öàúF–ßQЮަ>Šs Lf›nmV— ßòô<`(þ.½å zý`ÙøŠ¿C>Ò»žøáÀ ó°òjQï{M÷‘«f9$EÎËkþEÁrSºÅ¿`™Þy0P”ÛÂŽ?=™Ñ—3"½‰åHÛåum¼8xmy›ƒW–7vq7”,±báä'Çwˆ̦ß÷Ù¼iD6òlOm "ÄÈ(ÅÚ½YŠôi›WÜ•Fº](ÎöEíÐÜó],ÉÜÆóï§ ¼ŠOÛŽæ0Žžu÷ÈËm.ÝÏÍîó)?Ýí „×d€Ë¾ÖùË÷ëÇÛùf±VN5y|°>Ø[ó„@Ú=O…¡³¼7a‚m#< ¤ŒÍÓÎÈYý†O¼çªÒkÏ‹Œ¯ÌÞ¥q64 Ä6²iŸrÏú”„Müž0-À_ÖR‡Vk“Z(Üã>Äó2¾L)”3ÎÏçÇ*,F?#Q`&ç8ð!¹ž *IádÚd&—Œ«Ý‹Î ¬‹­pà}š½*àŠþZ>?§U5¦&±ý\YnÎs×u.÷ç¹L綘r¼Ÿëâ5©å®Â7·jâ,ÞâӸʉ¨= n] Ù¦ŠÌå€í¥nøE’ÌvV´ò×mÒ^8¶cãň6ç†w3ÒÆ&᜺ƒÙÐIWÄ9ª˜3®Õ#œòí[q´êõâph‚ëé¯oð~KgUo›2Ƹ|NŸÇUy´·&óRè ŵ#趦wGF?µ¹cGQ ÙLJpC›Í+â÷Á©kΰ.Lß§Ïò€j÷þ¶<€õ»¹ñÞõ|ñœßê*W záé®Ã¦Î·b„|·+:ÞÐŽâêâ0ÝÚ6Ò,Óe¸Ú¯À´¤µØ*Þ†í3`\½M¼“íÅTšÛN_¼SÏz.ÜÓ*>€òÕÎûäµéhÒ˜våK[Þ󸤡i×ê0y¿'›Ê$ì«|U¾£Ã|CòY›³r.ËÁ§ì ³Þ¨4ؘØU•LŸX0}¬3Åã¥ßå0Ê,Ö0¨dÑÏò9¹ú þïÂ¥xW ynë8¾Õÿ¹¼ŸÓjµç«þo^›Z>‘ïú_X¡ÝmCqºÍ+Êt}…€*SéÝ­®Z4ØNŠœµ·XÚm³¿F …!¼=?x0qÿ·78@ÎÄ'x*Õ¾ê‚~°Æ9\Óô·&Ól~¾a몚ÁðÔâwa.$„ãõò"–T ÞÏp,yh­yúìÛëÏþä²Üsá²ÙÃ^UÞK–®ºGd¶Íœàwñ}øPÞâ=±ë‰¯ Î žõ¢²œéùµy|„>çv™„¹”>0ò/çZu•ò‡W]e±d8ÞzÂRº,ˆI˜JbI¿>SÏæ tç2ÝK}ß]ÌèµyýŸymO[K´~€Q«©ÇøÉ;JdJÎ(¯N• Sf}?™ÇJui˜†‰U2¤„OÕžwyf§n‹®Ä[Ofh—79Û£xZ‹-" c¢fau4«3Å:Í{0#1ÓYÄ•ßÄL.³@5ˆ™>Ýù~÷ÙïŠw[zÉ\—_z)YØžåªÞJ3¥«®—"\ËðÕ{¾ÕgZhQãÙßÝS{ö‰ßÍ»¤W ï}VMäõV’à/V’PüaÌ ,å¥ð="ÚÁ9šS“N¹Õ#•»9…º÷ê[ê{jµ@ñ×7ô“åþ½¼ÇŠ­Ü­|N©ÿî³Ï¦’Xf€¼” £V´u`j1Þ>7·ÈšÞfÎÍêƒånóþ Z“pãßÇh»Nö”ŠªéœŸ\C»d›ó1eí6÷ÜúSò[Âåêëù–oRfÉz‚Ãö´οlO³­OöTK5Y˜Íø.‚Ò¼|ûã¬Xy#¦‹î6¹IÞìŠÅ¾‰I^ØŽQïy¿øi<5O•¦©tÆ¿­øçuÿVü”ŠÝ ÒåP¤3_½î‡‡°kž²îÏ®±ªºß4VOjÔJZÂäH¦ðÔÄ Ø=D^ÿ(:Û¨‚ïr<5¿G[^¾Ó‘–ÂA aR,U”é±N<Û™©7=»åRÐtØËã#³ ö’³ÅSÖEÝóÓªþ“qÔoõzÝY“ÚRx?)*_g/ü€ ´Ù\i¨@‹O×jžèU/Fñe K.7.oa@Lyµ§‚Dɵ¼sÊ™å£.‹¬`Iºøùå/»¬Xuqy„ý-å£SJ?Üóa¾1‹£ÊOo_eéKÞŽqÕ±=ãlçOuÍdïeÓ»Ò¸@qu°‡?]ŒFK«µ½uøÉ†š­¸¬„n!"¦7¼:I%0QÈlÙì‰GðätLÝ6÷Џ¸µ–ÇúUWÁ÷k'˜ùçVß©úZ÷ûò×£‡²“²¬ñ̯íu‹6îª]¬§=;q™6‘Ö´][,×ÓÎÖ6$J´e ˸uü]ý–GÝÁ'àÀó/‹ïU›)©a=lv§fô-®gûöñibuXvà`SµŸwý¾ò|9Mïßl>B›'µ¢ÊÚ¬Np ðÃZ}(±`ígÙ4¡ôÏuçzz”‡Qrµ¯É!å|;xOBIk>¨¯°7éÅ­àÞUÞQÓ÷ \¶jÁНÇåSJ<9Ðçßö®«i×V-Ð/ Ri­ö]=ß[Ô¹¨hÅ^` ggzŠ„u.o{›“w0åi}Læ«oß SFîý¶½Åû¥}’·‡ÿA5ÊÒbÃZ¤ÏÅ~j«Æª“_1֚ě̞[µž4^YšýdÓëâw4Ÿjú¼aooašžï‰`—9àäÌiJG“í£2¥0KØF™z-Õ|ÏT§ØÉbÞŠ ™ŽHæÕíЧç•2ö¬â¼*•=âŸÿ0yÚê왬Æž}a.IÀךú Ü[l ó–‚®üS¶ú¶ê:ÿ+bÜó^± Ýç/é¼-?¯S± ~Æ‚á•5¸A·Ë㤢evfcAc,5ÁRÝ£Q ÄÙ!Õ4Lo©Õ€©ÅÝkoª}z¬WoÐÅÄk©„¯®Xaº.X£?Pt Ë Ih*£ B%Ù•þË&C²ÎI<ÁÙ]ĸnzöï×WÅ ­;5"s2Õšëߣ†ºu¶Ÿï-þVdÛÚÛNJÖ¶Wú¹¸è¶—Ísßëfš7ü.ϱúkèÜ{ÿj si¿tÛœ[‹{ÃÎ-¸ÉÕ:,ΦýªTŠî4©ƒ*K»ãf‘ˆ?ï¬fç³CɧϕeÏ4ŸÇYèÕ" ã¢âhq."fÚªåXwœÍ¦ê¥œí-®rî qT¯_EïŸ Ð\tie+.?³Ü$¥B?¹¼Ø2ÖI–‹Ìf±P(;å9 ÿ¸‰$õ 1z0_Ô)ñ5uÛ<=¯T8Á=®Y –‡ÅÅ5uÏ»ëÝ’vY5U®ºÇÔoÕ\ñ²àMÆ’nçµ(¯µì H9ó€j± k­é0U&ü9ÏçK¶{›œÏ6Ïçà¦!Ï#tÈï+WS¤Ð¾ã –•DŸerÙ¶0Áfêß”„Ø\[þZ‰½4Ó±È2±e»³´÷özŠ‹p(W9›jÛz䌿•{S¾`/’r0©{Í«f›Á^Víeó½nÚ{©{ ª'p/‡­á7sí¥Ø¼ƒh_Îý³¢ùý8 ìOÂԺÊÕ~n¹·Å¸‹—CýÜ‚óÖlޝg~Q_q¸C3>Þùq3BÞós‹;)éoc¯—ÖÝ÷Â~^«íeÑ^V?·UçÜî,¢ü®üÜ.;§þð»hŸ‘ë7ã,zEÙóU)¢@{¡šV#&ìíç6k¶ju×C¿ÿ6‘|x¹" ´"«¹:ñýýqósÌÑð:—kØAȆÐ×§ÐÙ H+ ,¬ –u}¸L7·=g¯|·ç‰€¨¤2ªQ¡ó<Psqu°ëÏòðgW¾ßuZqs8˜ÏößÖ6(mùoãï‹k¼Õ_¨Ýr6äÏêýð÷ïi[ŠP¹ìˆãæT-º=®å wœUžPý|å¯R ´¸–©.Z\OG^ª¨5«ý­Ž€¿R»aÖú¹÷^÷Û4GïªZå5hV«;Ç7Q­«»{‰ŸXÇ ¾…œ‹{9M¡råLÓðÔÙõsÓi)è|ªV}­õóíS S9–åhÒ€”•å«öEwú,?Hú[©ŒõPí0›õúƒ9ì-ýªõ§ôß³UÞÌO7ãèöhQ¶nAµ‚Îåì^×mÏg×{­0©¶Dû¯]Â)®êJ“EÖwœMV÷‹«ô¿óÙ{mJU¤5¨,®*?¾†¿G­'Ú"Ä 48 7X¤[$ÏIw¿Ç,ø°¡–=Ýt âì¾èÅ™é_qÖØ0çu«?Ð’(ùY"ŒCòªj­>«de˜cÝ9—Îßö×gÕ®š'Ü”l¯’mÑz*V¬ƒœë 7X¿à~^7¸1ÿ‚øyý Ü@qUŽ/Üà„÷²ØÍäÞ%¯mó)г¼•Ïè 4{š²Ë̫ǂúžƒi¯›iîãýÑÿ• îIÎÕ­V-–sUí•”#†¼Ðäÿ rò;‹vzÄ –½ž9ûë;1™œ1š<«‹jß§{;Õ3ìòUÆz+îªç"’3ΙÃ$Ley¶ÅÍ0U¼^çÒï,ÖiÓóã®™y⡊sÆ¿½[­0­vh¦4©nâpõ;kiï¤F;Iƒ`>ëç:BÙ•Ú§|ëqö9Î…gÓr{aØ«ÑúÎgámòZW¯šcŠYwܯÚµ3„¶SšÆG˜Ò6Mãhn[læ*ÙbÛ[Ýï}Ú^¥ì{o{©½¿ó[[‹ƒ$Ùâ·Éör óiÍÖìiæ3Ü@÷uîæZ>äw”»ãYKKs¼5yœÌ~nÙ³8Î=´¡awÛ}- f:¦³»ïüUëþ˺Þù¯z3özqê«{^ïuç»'y?ãd±X0„λŸ¸. Šê©{b=îlŸö­o{÷¶b…ÅYÎ{0ÿ=èƒmñ®e|¥½MŠƒ† ›Ö#äUi&6¶·ª5ÓÛÞ¾~þÂ{‹í­×&üXëÕdÜ~Þ=으óÚ+¯ ¬žî½6þÁ¯½Ϲ¦Õ^ÛCLë¬Ƈ˜LÉ–'èÆË’– û77CuU÷ü¡)¿Õw±–òY×[S\ãáø¬8øµŸõä‹¡>•j…©;KªóoøU±8™t­Ï ]Ì´½‡Hµ[ÖmŽwU­·× M|…ƒ½µ»&ûÍŸšî\KòhòòBîÎ7ÈêsYœ•7ð+oæÃÅ)éSºÄe8^Ë歹~âõ›å¸¶¸òˆ†•¡³t‹•úiöÀªå~ÇÙu‹¾!ÎJ¯¬xœ…ØÈô ,½²qÄ;¿ ˆ¯’ŒoužŠãm½·MR.ù1ËÖEø¬åÍÆù4ž¿’óÙ¯-ê‹yò°®Ï¼ÇÓ°ú‹ùé]oýZOUõ¹Þø2Y8×¾ùŠË†“ ç׌j±`hÝø‡†ñ5Ê C$oË<ϼÖmÕ¹‰\¢–×½ixðŠÃk©GÞ¼Nxƒµ†ã ¼óú§RÚ¿ž{ä{ëÜ£ûÎú+Ü£Ã1œáîïw.È«ÖcLËû©ºÃ Ëþº‡ãÓÏñèoýZ‰u½ú¹»+{¿Wbd¯~ðzNÆ'Êñ“1~s9ªjá}ÃdRò¸ªs*-‡7ŒÆãr×¹MÞ¯µuw.ÇîpÀG¤r?âæ;ùèÔ:¹²ôèì[Ièr!¾jJÖìr`==¿%_a¸S€¼ûª»@Bù®5«žâ„Ì×”àoÖ4Ö=‹®Ëb™¼o–¨ÆZÆà)Ý’_ šª«-Ÿ«(–Ó}E²Ñå$Tñ 4¸Äs­Þ¯[SýÏ¥×/Ñ[t‹P'û ŽsyŸÌû Y=ðíý„b볜«ÝÌŸÿ 'óæ"Uçu%åÙ•R,OHz½¸÷i¾&¨†ø0Ãy‰äÓô~LNLD«T¯½MÒyև;öV—XóÓ`­½KÒ…‘«“^9Gx›éõÒ…6¶‚\¤qÔcÌUµ­†~~rݤ™¯¨^ÍÍ'¤áT!ï2u êí¦W!Z»ü´Õüfœù/ºÞÿ„o¤30вoì›kõY:¡s•y̾ ú«6b¾G¹ £i~kTâ‹X‹T)I-2!P•¦’ø}ûnh É÷{^ã¶Lµ¯æŽW-ÄšwTSÚÑ’ÕY-±¶hÉÜŰ®Z3޶,-ódx.~ßfK³¿ßŽæÉ.l1Ї(Ó­ë N$A“—,™ãñÓ›2÷i& ‰ÚºÃÒ[¼Õô† ï•DØN¢ ÏÏ+‘‹*åÿŸ\#í®-’4¯Ð÷k¸ìN­l'g­u‡Þo{,ÑŒr_B5²Äx«kõ?=¯LÝ9XÍË«n×Á¾ŸÝ,ÿ u/*QzWW[ÓûÄ-ßA‡[ðàÆV›-+vœÝa2Ò´¿ý'ŸmôÈÝûk`4Ãy]IóÛÃqg®Å½O4=­îsˆØÀµM¦dƒb]ObüÝdWð“Ï*r¬æ˜*χælÝ*®R·¾ØÛZˆ“½¾'›\­ÒÚï†Êñßk\Ÿè¿€.¦;ŒžFͳõõîY3ÊÃg>‘}ÆaK6Äxǩ՜t§yQÔ@ì¥æ3|=óPÇÞ [©É‘çJOUUîïYôŸ·;lèç&«y ™Vî8zVc×)Oµq©o‚7šÐ´Ÿ\GH–û7QNðÿÈþ½×]'kx÷%ëš4QRø?['H¦ûÆ(q}2.ÒÅðc&9bØN`yïávk™ºÖÃ9à¼Ç¶2@\ï÷}ža­¤"Ò8¼qOC;w4a1Ì‘¦îuϹšÖÛcA²œé^+ÇÒ7ž8l{ßr2õÁÆ0n½D|ë˜'õ‡åuþè”ÝÊÏ_Ëò+ÌV-Âý«éY÷œŠ§É"YËòQ6Æ Þok­<£Q¶1÷ôÙeþݽ•ñ`Gþ'÷¦*NJ'#±s„µê 2T_+Gkž£ ÅûnÔs>ƒŸ(ÍÌŸŸÜaì~p/‹ÅÙ©µ˜ûU¾o½X”÷Xa"0\kï-T݉՟ý"¿¯j•M-º™°úݽ&Ó…Æ’c+?¶wKùSq•‡Mó¾W¾`qWüCw~ÇýÚî-‰Eãýçó>ö–¾pI¸ö¶êê¿ÞIÅï,½^÷}åàëœú^šª4¿+ù$ëÓV1>'ϹÈ_áÝ›¦ú·M”æz.w>kNmMí‹–lëÉõP¾*X2oJäËð¤N–µLCz¬ÇAÿ6sT4Ít¦ÆD$ÝÌvùOᧉ²27h˜E‚ò•TŽaŠÅ™MªáV‚™ßΰ)ùçq–qqñdmkk¯U k{ö‡ê)ϹŠâjõØüu8Æ‘˜P ®N»È‡aèÏã,Ïc±ÎRã‰ày«7§åLÉãê~?ÏV»&«[Vl±~ÇÙf³¤Œ³•ëí ³½ªÚVµÚ«Õrª¤½°;júw!Îf"k«…·î´åµÇWê0}B¥ú÷4¢góYM WÝYÍ•}*E£°b‘UÓ;ðާÙ²¬-vØÞz>[•ï*ìüR°^'{ˉ(ü­³zœ]Ü‹íq´ÚÞzµuŽ-¿e–Âõ]§é÷íœóÀr/‡}WÈggúÌwo³k˜ËÍF£TXO¿spß7g?V2UxîÚ[œmÛ1vAXk,¯tnÕ–„0_ÿŸEÜ«ÈGY>ý޹V>›‹p‚*ž âêÒë‹ÇÝÕõód¯/†#L³ˆÛY5.Öà7¤tâkP jÅYÍi¼Ó’—ÉrIÔ8“`7“þe,¯¯šönÉ„qÇöä—µýpKíL´qÌmÄA䃵ìÏWmê3IºÃ̘Gôf¦uÖyUV“ºjacúc ƒ±÷"ÛÏÇAœýÿYÎ¥÷ b•aˆZwÏýÁÃÕãì CüS·è­¶ðÚ€µq·¿ÿžîÀnò[Îeµís©©æÍëÓlo9×ðX ¸ªoº’^†½^ŽNù6Ϲèç]æk$fJL¦8&£üU¼-`2ÊO›ç·S¹¾nÔuÎMëŒç~ “©^;7¸ë0ôÁF:ÑŒÆßºäý(ç€Jµ;ž³jçÐÖÍã*q†lÝ䪹„îj"µÉÇÓæ¿ˆï ?ËŽßöNòYŠ%6•гEùhí7·òWÇg-Îîmkx¨&spe\®\O³½pÝ<Ÿ…~Bª'ÚÑ%q†yfÉEzÓ:×(ö—ìdŸ­|ñð¶R q:Päsàøl¦Ø¬šÒc”(ÞImË^ÌÏáÿÓã¤ê¥aîö8Ÿ½êYö¸9´Þ~¾ ØžßZÎeyBN±Ïò^D8oê,Uñ]»9ëxÎÕ³M®Ê ›Ïþ²uÖ³ÇÕ¥g_]-z½+µÊŠ€>Š'˜ G÷ñìJßÏjçz;¾:õ¬Ç ’âîøÀhLÁê® ªaˆŽñ¸þ¼c@õ¤Çè¹{ϦzûÂPÔ‹yåþõ—Ú@L«š ô²¶hʹ²Õ Óz9Ûj…¦|¹<Ϲx§,;¿Ãº­c^¬}¬ÃtN‹ŸÛ¢ŸWǾ³ò];×Ewât¬<«§¹N´¤)b&üuho³°iwWlâuw›qΧà9ž¶·Iq¶8ÞÕ„$¯ÃºÕyÅ÷V¸Á¦4Ϥ>o¬­¶ÕçbL@>Ê“Á‚3_]÷ºq½—½>k-!Qd€kÅåì?_ϱoÄÙ]o?ÆY¦·š¤×Ò´T¹h’N\ëc)¸VÜðiþ>x+y|iP[Û{ÝÏpεç¯ð¡O6ÆuR«y¯dU%~¿‹ðÂk›´­8si𡬯ÅÖ F°ÐYnÃW`½ùv·¿˜~ˆÃãì¤û¬HÎjñÏr†!Z/%½Î+ï}KEçÕg;ÿ¢7#ݤWŽõŠÞ«1~ñäQ1Ž4Qyp„c •Óè1DÇ[ SœžsåöŽcQ–ëâ9Zî/¯>¬ÍSJ]¿VÄŸzýÓ;,kï–ñg³ü:Çò;‡ˆh•0@¾¾;®@Ïæ.-v«dÆßqUãødûþ~m‹c›šiöZ·MÇ_ï|´;“´·¯^Mz¿ãŠòUS 1õsçt½~hN¿ú·Åkã¸õ;Õ4ï;k¾çw?÷î÷íýôs‹“1±å5L&±hryšÚ«ãf—Ä8+ô6yœej,’³ÔÏf:òœ|×áÏçôz,µw̰ˆ›äs»)+–“µ´úbº³¬¯Ä‡±)¿íþi[¡:†hÎûü-ǹ,.³­AœÀãôfØ<ÎNáfG©Ò‹Wr"Óב™Ò‘1}ƒ%=ƒþšã\â=Ï•\Ïh»ÎwRN®‡`:1ÓçkL´ºŽŒÏïœhG MPXºÉ4â´æœæg¨å; (œLD9oãº2Yó7ÅõhGÝ™Àõ¼R{9S?©~>e¿g¡?k:‡ûSVqñ¥?»n]oéÈÈ két}Ñ®^¿(dË9]éÓRäqöKÌÓT4h•ê±µì{ÍQZ^àÊÑ{9oCz]k[$szjÙ §ô—Û—‰â^ùLßàwõºªÅÉÿ/õºLÿ­º£ zÜÛ·Ö‰éܳ¡yúÌþŸoýäœ|öó5Kªó>\')¹^—ÏüŸé|i“ÜÚ}¦‘žnS›«uݘ!-êzÇÙþ®e"Ñf†ÄœÝ+Œ³Óõ¿ªâl;Óùæì&s&˹¤o°=çòYÏ{ÿ#ÇâWÎüÖãìܯÙO¼5§Ê+î–7ªƒ¹[iEÔeçÖ´~—ç£Õî¨áçTZ¾óÖŽ/-ˆ7-àêç¶éõ¦%ÁÇ÷ÖU|>ÇXô·/?·Ô2+îXtÏ÷;Nšâ»î\N>O.]ºœ^óâ¦[Wï™æñºŸëpŽ–âu¦o°9gk¾:Iþ ÍLG&Iš˜³Í®×Õ—÷¶×sŽ×:õˆ³ˆ«µ¹OÑÏÛ§^D.¹ýIç»SŽVŒ£ÂkÙˆ/5·$)ëËŰ›n±ZŽðn»²iÑÐg;—'3øoZÔÛã¬i“´Ïó×9Ÿµ|žßìçÕ´¨»ëÈÍ+–ì%ÝÐ¥ìyœe\mâ¹ãâY½gð“Îïí§Ê§®LÚï3ú÷\øí­24Ó¿ý¼výþ>Ù[yW¶iÜdÙ–2·Ÿ–ë3í~'}ÅM¿V ch¯‡¼-lf¿éŽì®Ö¼)Ï1Dj9ÜZÒ/Íÿ[#ý/ží[Ï äÏurÝ™)]™îš“æ{“]£Çj“Ž'ÎÕP¾©ùš=üþžŽ©LéÍßš<ŽÁ¸fOoù¬Œi_óæ»Ka¸ÎdžzÿTcx€èÎj7n 88\¯ ™~ì­g ×›þÁÖ¹öü`Ü:Ò§]ùAq}ƒwÍöçq–Ä&Ä=²#'×·.b–Mž¿ZþëqvõOÿ…ª¸[oßË=Ÿ­Ò³Ý'q–wØÎF<ùU4–“Jî Laoú-‹½WXZîìŽ äoÓ3gz;hXŸ=ìv˜Ö“|–- úsx>K›b}®mµ¨3ù,m¦0ü–ߊóÊ×h=~Ñ”:ð±½5 º²˜"$ˆÍc×–F\uMÖ_ÒE2}®"?e¼×ö»u«tÚK¯–¸D=êÕ˜VDëg—éw5ךæøzu‡XjH “±g=I'ñöRá ßµýŠtd¦¯‰CŒ£¹šÁi4Óå6ÍiL-ÇdLcÊže=ûÉú\ïSï±#™Æ»vŠ0Åž´?Ù<¿{n í&; ÃÄü®wÔ¤ 3ì™ÙÌ™^ú\»¸õ»Äƒyé{‘ôñÒÿÚæ%ÜŽî0ÓuIKSÂÄPö›Æ¤è>oúó/O ;î*¿½õ½LwFúWÜ6|·¹ÏÈÇÊ»N!}kfÞjøuå§n隸yë"ÊO¡øës—Ž·^Ÿ¥g붇“Äæ·sŒ…,×Ýͬ°E4P@í²…óTÛ ,:½`,¼¥·ç9…÷Ç.Ú ­cö¯K>Ù–¨¶5ß™z×¶õ¥ûBÝNó rý9ÓHM®A•¤K¿Ý§Æ4W³¯“òß­IèpvÓƒU>«¾X¶)_èÅ–ü©'[˧Þl›®«øŠ»¹¹~m‘¨uïm|:ÁüþVÍ-yÎ¥u¹ûXõÇ›ï"â³wïFømvŸ›"ïó^Ó SË~'²¡vkZ>Ý[q+R•ÖŒ£Í|gÔ½à ʶµÅåíkÓþ³5UêI¸N¶·#5»[wf=šqæ ñö¦ð¹Äµun‡ëq&õÉœ™²“âô²™eYm×:_ç¸I_©»VðÐûå3Ü€wÐï›úDòª(žû»nâ²s¸>´‹k›ÇeÓý?Ü?cïÌ7¼ö _X;éÙ@§°Oêi-éumùΘk u¥×e:‡l Q¯ËñÚ´ÝÇÑtõzËo ã5×ô£cãûŸøÖ~ŒU œ+”ˆ\Í”# –Éÿ`)+U1…ª®/ïj/ߧ뿜ØXB®z¦‘Ê®/µôšå|V›÷(`ÄXá± tÇ­þƸ¼þjë=–‰¢à­™ªüùÀÛ÷¶kC«þþ¬ß>I[¾5ûö«o~wc»~W»û¶ª]—cˆ¦¶ï¼@µo:¸ÃöÐÔLas˜™”É÷J{só ºâìð8Û…éè{ßò]lFœ¦žíx×\Ÿò",ŸlßÇ=ñê©ÞïžCYÎt÷­'~ïm~ÿ¹´P^þ ]w˜i£0–~Ô¿]Žm÷äxWý¼“x%Çnävã]¿ÊÏVñ¼PÅý°;oÉ·fiŒæq3y­`:sÝÏaWþšn¯ Ó›ýÕóòîIšŽ¢{UÔö†Ï¾aíøì¤Ô%úRC|Þ¨Ô“]žŸ6ù%´÷ü5»­å·6Çpç¿w>lùqQwçÏ创œQvyùƒU.u¿fÑ  P@Ü z[lµW>›y!ÈŠKËëÁ¼" HÍ™í½Ý>ÕC~?çêꥨ'¾‡üèŠÇÕáÞÖ7÷Èz3æ—P‡³ã`ʇï^Îqü×pƒüÒ­?8¯Ãã¨WÕ_íÖåTmš~ÕGοœ×þËyí¿œ×þy^OæÁ–´É*9m¦?«žuõœ©Ëìö²žæAå”îiå¯Ï¾“÷ÁÌßV<”Õ½yÂ7ÀiF"Aޱ¥Û<e«ÊO«öÞ´}“<Ü+X£ÛÔö½Ïê±›W›é|·3.ÇT]Ô…r8_ µW~ÊÚÁjQæ³ægëùm—oãí‡; Óñ|˜ç¶ûûmÕ&¿¨5ý~­€û>U¬£ë¦;_eÝdl_ÔKu˜i¤g÷É·sSŸbX>›T×ÙÏ›üúç­ð›qveñHùùò7uúÐTÖù­[þ:„#Üþ·CqS:Þð¹yÏo—ôîüwUé„›~ísÜ Q%¶là ®º¬gIÙë{\襙c‚Ù…ñë^ËBõƒÕ£jæ ͽr»äœà»êY­Š\Þ›©®ÐæºÜݽ3kÙçS3NïëÏ×'½þîÝ$å õÈû Á“Ϧù)Ty©4Ë_g¹ñZ?ŸKx¬T%4êÁ¼b¼ßÔ-g›âæk8Þ^¯Zú·½*^ŸöïÿôÇßý»ë_ÿñ§ÿò£üøÓ?þ qËõ ý—iÓ‹´èýÓÏóç¿ýñ§ÿvýôOÿøÇÿø§¿²/ÿÂ{’ù;tø¿öž¿~úá=7‡î«NYÔçÔ¬£eØ…(ëu[¶A´àyÀ.“ Ï9ȽÁ#q=yQ*óÍ,û–  ‡\^‹ÂFQŸt2Œ5Þ[QTC¨’;úœÇvG}ÐJIžºIŠ:£‹Ò敃˜QÏ’,²$Ôµ£2„#Å2lGkSï{µ£"¬åÉNZÐ'ÍsȦ„sµAŸ”¦& ju%,>UY‹Õ\·” Œ¶¬o×ÝÓ-]Co…¬ò¨-í,8aò¨-•’M­Ì`£Ni¯RåìSÔ–nŽÍ´BL#lKÙê˜,Ö£¶T¤šÇ·âñ)Ý$IJ†>è“–Ä^Y+ù[ñtKq“Pð7.ZšIÞ30Â#Šáññí }š@iæ¯R ;,#•ÄõqkÜå$àd’ôAk"…`Mس´XFÕÂI`F .×êýP7D¤ö°ožF½æy“ƒFµ¤À4/köIIËó¨Ü‡Îß—²áq>JÁ’úµ`|úÅg¥¸#²•d6t‡ÅÐAÀYi »>1l†Á¦õ953VØQ ;¡’-Ùœ— ú ]ø¢×TXUOn#–µ¡ÄPk©‘pNf!/Š9FÅ&)C®ø(yÑtRCâ¾x(ýöøÅg#Ɖ¹u{j¤põÀô®šî}s¢À‡)¹Ô™ÞÒàQÛæ°Z^«(÷QŸ4qä8…e¢ð 0ù´8ä©A´Jj9=î“&·+>Å}RôήǾQY!êƒ.’¥ÐD»A[ã˜DvâiÕ(}Ó$GX„ª¢:´ÀcJ½¥Ä]ø’A<®@I!ɲ ƒœÍc:ò*£’ƒcEQ[ÚIím“}a[ªþêH5Ľ@'é‘EŽ:k *„}ùyðIj•û¤ä£PR7®Õ4dW˜#£)ë,•Ô/ý¬ÑSœÓ/ˆÖc<ôj”Åáã9é`×;ê“f žgqÞ(޽7•;á”^S30JÑçíʤRûÖm{zN9*EVa{J}ç&Bbà³ïþaÏ~AëÖPù[¿í1Ñ5‘ޫþ}úŽU‰c†uœ¤UZÉyÚÓÍÙi ÛSNõ_Eéú?ÎùÈp†¯Bà£/ÿd“Î ,¢0&ÅÑÀì´I˜k¢äIÒœ »¢88ż/,‹§Ÿ4sðƒ¹qèÞ•JíŦF\’KE§¸»±±˜Øa¥I©äR¸60š’jºw ° ÎÆ6ذ&IÙ Pãž'ðA ·\HÅ õÙlîTé ¦U¢ÅDã°·ç웂]“psØž’¬XÒWÚÚAÊ—MM9ìŠ*Âû+å =ld'2,îË1KZêaÇ”8x1_ú­Rþ•¿¨‡ŸTs f$•ž4êÅu/Fíèä%‚ñ@x¿±Ê'ÅqÌ8òˆ[ºî(Yp#6Ÿéœ°Häørç=>£”·'½6ìÊ_Œv¨cÇfû¡^LXUÂ|§Ê#2,>qÐ4KŸ=ê©WW/ÏÀN)­„ è¸oDå&ž¸9’ZäÕ±R`õTLª° 4O~Éí×êé)mÕÅ ¾À°O©ôuÛü†Ä="9dÜ8ð¾oœÈ2y0,Š (ýr¤žžÓN–ÎiÜ“/ ßþf‚X;_wýXâx'×e=qf´‡ü¥säø“ö:q}òŸ„Î’4Ž$Q:ýŽ`üÓ =y#B’(Ø’X¤ï†í)¸‹TCÃÊ|BÿZç>ŽüMþ<)2JMYËIQ0ì“Ê)`GN¼uy‡ŽÃÍJ»Gó§A=(wŒ€0ÑDæÒa[*ÿKôI#ó“-ǹ¯CŸ'* Q00nKE>è6xëSE8tÜóļLn§=.FÉp½îÈ1w­ðý•lûô“væÑMb¯a7ÁMÖÁ(°Ì7½ÐÃø† 1ó¸F)& €îÊ;ꘪ:SÕ#®4Iú«í+í¤KŽáñ›5 1W9Ò„=Pĸ`V‡™BH:‰Å×+ëRÝ_;Ú3>+0ÿÒÑ~üäOêÃî¯ÇŸtsÒ¹í@‚L!ïæqà£]Ð%sÔ9Pã@êÞh—”À|Ÿ×MÖ {ºñ“À ã:™Ãþ%îÑt£ýiÜ'ÝT|l½D¶JB'â'_ Ï©D¡óŽT9À‘ZÄOâ˜'Ly¯Ò¤×ÐÒ„ÌeçÆe§­¸øy·ää8¢…î)$W‹}•öZ¥C쥮 ôO|¢*5ÛJ yS€PÄÝ9òƒÊk£Hä7êË/[šû_+SÙЯØŒ¨2Ÿ«NŒz:»îE¦@a­½$¿ð™JÁ΀2ÛˆÔfz4:0á_d„R 0®Ü륀jRà1mìf#š~GS:…`2P™¡ÑÄùIÜ'E­»4•oCùÉuLçþÖ3zMå»°Bá“ë!¥æÁÂÜbXrJtFÕ_Þôq#JæFs†"§òÒ« ;ÈhDE–&øi¡”øÒ©%?×·6Üc g0‹î=²_Ú›øQùÛäÂÃOŠ ¨FâÙ—>Ìcê ‰\uæÐR!€×ÖÍÞCÐÿR•=Å£dÖ»Z 4Ð86µ©ÛKÓ%eENÀ5ù†ï8ÿˆ‹Òä+TóbLîh¤Ènë²Þ‘bv…òcŒŠ£™Bm;1)“ztZ„"n\í´hhÑ×·ÂñéŽæ‰‘×|¥%,Ó2eB Ì›¶YÐ'ÍâWC7Ršƒ>}#ׯ™è¯}Ñ#zúåo‰á8øJÿõAQØ/£Ÿ·”÷1"Ea+  ‹£—Ã`PEâ‹NÞÓDOîY-À²¹]ùꑘ>¡UÊI.ß*Üǧ”.P0Ýa˜‰9ƒRœ%N?æ*Fsû1¿¦¹?èøå>¢=’qE»ªÑ¢/ÎÓÏÙW$†Ñf!ú|œ‘J¹·ús*˜ÔûÒv{üÅËIq§ÀênÒÙéS T=$ý*8ÛqâVðú-$YƦ+ˆbŒt '¤|äÑЉë"Áƒ:fà Õ{¹>Äuñè>Û Ç±ö@1ëtŠ£îЊ/aN#.u‚ô^4a“'´k¨ P9àz%‡ÝãÐ6טO |’̲6v0‰{`U–Þ£þ¾6Ý˸G©h£¾A\hî4¾^tOè`ëV>bQßü‚éø¦‡û¸o/0«š}ô"U“¯ 7”òàÁ|9MOæD¿+HÚÄ)/e™heåÍa¸LSTLTÄ 5ê# ä”fv.[þZƒ O¥ƒ©Ù·¥½.l=«¥L2ÈÃÅvZ¢g-Î@ eÀ—„çËu÷ôyì]5ÙvGmi¡ibnù”ùtKó’ÓËŠahlYŽÓ„½"sü÷Ý·!MXŽG}Rˆïà“Ö@zA뜚…î^œV=€á²øIÑ<¹g"ìÇÓ:hEK«§@aH:‚ú"ÙþøÛ…­=²"5L¿vÚ?Qƒº[5x¼²G”xmGúfÁ¡ZNWq`n»b4Lël7UÉOT¸ÿ†~Ô¶[­æ¸¢×ÈÔûѹÇQŠ>eÂ)ŒãC)¦Ó55 ,c ±g¤}’Á¹ÙÛRÊâQË,tûú¤-íHá-hF\%)‡‰Âº¢Ï˜À§½ò¢Û8ðŒ+là~ùžŸÒ-ãô¯ÂSñIðY¶daÇ4¹tœFNF^òŒ¤ê5*õ¯ÒˆO·Ì·B_ª8’ƒÈY3™a1ªbš”Ã$&¢ðe$>Ô.ÚÚ¸GZKÐD`û¾ð*-9’©Õë¯ëâž|64Xén)Ù¹F0‹ú¤@Š'?pœ¼:úN}S :Î:tDSÌûV{YèÉWßåÇÇ4ÑÉzDZ¥29ëÀ¡ãT8Àƒ¡tñ ts†98è0=rÎ'u‘À7ð‚ŠºÕ#°ûTe͆‘·@ŽN80X¾dæã~Ùr œ†‹û„MQ$sci£P>°—»ø”bz4P+¨ÓOŠº!aç4µ²=+ž¯”¯~özÜÛ™¨ áT¥Z&Êq>ze|QW(˜ÈUÄðh¬YÅèœ ‹s«€¡D¢ G ‘;¤¬úzBð´uåÝRÈ"Uª¿ÇuËuèáú‘¿ú™?>¦ïF°4Žb8YÙe™…êåC >h •økðý‰›sÃÁ­\û$8¦2vDL¶&òf¤DH»ê;hÕþÍàòñ“ßnð¸)t 1BøÕï1b¢qøÈöIˆ’‚éöÔ¨cÔ#í¡¯{b#’þ¦t¶ž¾üõøsä\;CÂFÒÚqæ®°tÇ1M_g»Ãe¤£Cwé.`ëiÎaW'NÚÚi¬mhL`›ý1Œ¿$g)™Õ@Ê#kçF+L£Îp wEª®€ÂreÏMnaw>¿'4HãZ¹ìŒ^_~ €—þ}‘ƒ£“¨Ðç¸Ùv¨¶ö,õÿ°ÅéÉEúVŽ»IÁ¯žô¶Ž É©€Âjœ8MÐak$Èci û¤qÊÚÐ.œWŽÎcr–yMÇê<4`÷Ñ!M‰Ÿ4Îù£ ‚…1®,iWi[Ê•¸EÐu®¡î®Æ'WÿrA?=§ehzøkñtOahŸ©YçM…Æ[Õ{’L¯ÃßL`8¸K¡XÜS$Â{=ùóĹ%#àÏÁ*À…–ŽÑaC+}(À_Éé—–ûc82áÚÃ1 DÍ;§ÒÌ„S©ëÎÈöxëôÏÃ7WèºùåÇÅ(AsPÀëx—G‰^ iå@]@\ÌÍ¥×ÂØ{ÔÀÆi‹Qp= zò•úô“–ân û„÷ ©¸èFdmiœ®6A#Í~ |“èáýç8 žº X{;Ò7•ºh…4ž¸Yb {×EúÀ Ý‚‡’qÉ>Э«Ä•tÔÝ”ßÒEœ†@•Dùú*6øøƒÊòótqgtòÊÛ5Ðßãž$–|$nV~¬9óŠèÜ(‡hîz%f-ƒ^'Æ,*I/èK¡ó8F`tÄuu â–óÑ#é’ÆÉŠ4IG×íú³áDè£Ð)6X" a‰Ò©}{üÝg\ɸ›Gs;/HNâ8Hxކ™}²ëÆ 3¬"‡ÞÓ’MÓéY¾¥¹ãÓ]fl>±§]fdê\0” Éÿ/ÐÖãeåS¤yXõðÈF??î-`Dš(-¤©kœwÌœžÜ¡=²-;g|÷qpÙUÖ7Ú}¡.>ÞQBp(›âÜt2ŸC!²ü]À^ýbvñø¶ç%:J¤²Í¢LvtÆÁ%‰BÅ03Ž»í×b× Îag´(Êß›n#餼Å‘Â6“[:CËÍSP´9P)*á3p& ãS Lò90¿ R×q„³Y-2|ˆk$ 䶯ÀûãE_£±„ERýÌHŒ ñn âð\’kùÝ zw´kWä€;ûR¡½ô…ü8äwšÖ¨¨^ÂÝ#k{ tr8¾¼éc€œS._G”~R´ïšˆ[_2ò§í¹Í®¯¢Í3½Újæ8SØ¢_7]Îí›^÷°“EÀc«ûë(á“Æº%:Qµ¯óÝÛX>ä¬âü¦1ž ˜¯Æq"®ª¡Í±Ò¹Èågke<ÝÒMß+DűL 2Z;ÇJâP=j…tý/ÕØÁŽB`»íÈyìJÝ)0¶k\«y&nâ,ÆÒ4~¬P ô:I#‘ ‡êÁtIúW6$˜À±§ôúqé#:Ðê·=»Ÿ 1Ú4F'XV!œÆk¨býõ”^É#œÃ+üÁ6^I¼2©ØŽcHí‚É¡³wL÷jÚ?@SO¼ò© –¯G P ì R)€ÊA\fZ;ˆ+3 ,Ÿ&ÕÆÐ,ˆóÉ„2 Øï Γ7˜¥ÇT1êzJèÑ%èéOb-$.J¼ôWB… ³Ä@=#ˆ<Ð%Ž´( [ÚBû9‰Å3'3ÎtX½JËbbŽ/?ÎþqÔ:ÁòR9é¸#M5êä$îü¸i´Êï­áƒ*¤âÚ"•á: ÇÚÏAùÙ¸U¨+”?Ðÿa/©kç@,´ÅKCéÈìä`Ž4П(s8iŽo£ÓS}órŠE÷ðÝ×oŠ˜O?éàHZÍ‘¬Ò+/«¦÷A¡])®¸ùQø»I 8Î;câG@TœÚF^DZ`3¯ô)—Š89¾zNÄöâú£ð:Jä—}í}~7áiB§ ®vj4Åa‰>| ðˆ†å%›æÆãh¥ÐVF;¡¸¶#ÜØæuH;€¨CJ“T£lò"õÊ롊KL êpXåÆÍe ËÌs`o|×Åã÷Ü£¶]f_qŠúrÝ2K uKøžÊî¸é1FrU9q¢6T>¿®§Q)úpN¼ÒÓÍ¢²|·Åÿ¯¤dÊ㱇íéžòúŠ´xÄ ê–IòºêÓ-­4£Ãý§º†`ºxJãÌóëîÂ?Nƒã Q˜q-%²÷TÅŒH_;?è\àC… CöPãÁç+’w»"ÎèIñÇ·SF¿Øö—¤üéŽrÜ~œY™lgá«ÿ’—=Žù¬Ep~Iwr¨«ÁÓ×#CÝÌ´4Rmtb9QÆ `âå Ïy®ÈËéÊô[bû-®ÂßÒ] EŸ1× Ö뾫`C)èPAXtÇ f¡…žM‰­†PHa?î»ÇÈ 2}Œ&ÅÒ±80~½wÑh'e¥32+­Ò1_«ñÇY醰2ÙV¡bÀ#ÊÚp¸˜ ±[ràt`ý8¿O nA#'ìq•n*CÔ)@`QâÇI¯”Ú¨:4Zà=ZµûÐ|‹›Ê+…óÂxžâHfð8K“8 G­ZÕøòÉÚW¾4³8¸V¹ˆQ_{®O?) 6éÀ_P£Çß¾î|رÅ5rF¡äXç]×sÂ'ýêgþô“æIÍ­‘¿õ\ŸžÓ+ƒèê?ÄÙÃ×qGjì}R˜…ÇU€\É= …#?Tb¾<¦O?)Ä&GñãtÀa(@eùù»y¦HøÚÕ+ùêÀûø“r‚”&Zqù~eèC–Ç1…¬ÃÊd6Ê®;ê ¤m|%\<¾M+Qž+™ˆSÖG䟃Ÿ4®CN'™NSç¸Û5IÝ„ygŸ&]%pïš)é ëû’ö<ާöm@À8,Ju|í-T°Y¢TûúE=NùIÛk=tŽ´8A.õ…h÷øÞ§DùNdyœKqT¡¤ÈqgŒ©Q zöK0ý…1ˆ‹îW0CÚÈ‘Ïþ V=D×â(‘-鉙tņè@ޝšNOÏiæm u¨‚È(Úš¡ãÒùÔ×ââia­“¢8_çÒˆ›·P5h~M~Ò@†L"á ¾B_øõ祥{hueÒK¡ŸJYP-ÄÏ0–t›Æ9P£6Å”fh.dâú† ‡¨#sÔQqò±úÅO¸§•¡µi\w:Q«Så$ð“^7ÞÚŒ§_fkû…Z«W°Š5Ãlr«T‰«M9]‚†\ÿæ}ô¸ Mšé •àj¤[BÃ8.Hµ´LÌ0Žw„¦f3T*P‹‡zßµ{Ÿ~ÐÎétìh\ M­¤ºD àæîG–í_\,/,ƒ€¨u…;úE:P=×=‡G"#/CS`1ŸM=qEÂ>hA°ƒD\ªÎŠËi}ËzœC™^ÔŽ4ö¾žú.ÿÄÀ±×ëy‡½ó.‘ž™fîPeˆ‹O•ž5V† ª!zQ ›ž'#ú’–=~ìU=%ºGå%¦!÷·éä§§4qFÚcä•iØÓ@}íÉ‹dãâb~Ç™G(líLJïí@òkU¦ýçEÔ yà$)‡ý©± ï]ùn‘ZaaéÒ€K „š¬PKÂëƒ^_=žþȦ^Fî 鸯~rœ¨ÅJ«†dtHÚÉ–g¢Öjœ„)$'i2‘rr{ºrçHÁò æ2&Ýã¾z¸Dˆã™bÒ·¶=öŒf•M3°OÓ)øü öY,W§4겿¾ú=Ùz ,G®g¦+Ò+™‡tqž4„ ëé™´Ç—=U ¯ï>®!ìÚQ¾dk{ …­oÂsO韀=_O ÏU€“oòÕ"þq)J åø—¹¿Ç)+<ÈnJÛ *q¤ô Ú8 Å]5ó¨‘ã™`7åOîŽ|ƒiA õÚzÒë¡ ¤-²¡®D/0>­."rØÑŽq9°lª"c\iʼnpàºE¾hå<¤Sj›#pô©È×._iÇe@ ³Wˆ–¾—)nˆ>nÂPäÆÕM`-Anó+Füô.–Ì­¬@¥ H[ìÍ8Aà<8@ bL\É o?h„Á~5püep8ó:¥=î»/ó%f—BM²ŒøäÇaeðKÔpI  ‹Â±’/ÑOi¢éJ%‘¯©@U£NêÒ²@€»™#ijTö¸òüÀª¹/•) »Eƒ•YnØ!¥íC“¹gÔ…OÂ+- ¤•_1I)ZØ;:p9a’8²-JÒµuìH/£PT`¢/´ &ájfƒ>%ÒH‡xö œY\º•Íë“ÎèâžÍŸtÜ=*›XNæÆ!#S º•HuÀ%ÒHñ}Øc×(C17óˆ(éôL –/­l儺¼qš(I¸8Npq“£œsÂüOØ'åÈ Ni kçÊL¯´'1¿~tå+aíqØo³K‘ÒkèàõÉŽV\Û)_sn oÚ*lþõÔ, Q”Ä„F\ fVbú˜Õˆëä%’ pçÇe'Èõ«lâ:d.îY~\•ß(œäÀªÇÞT;SÌÿ†N÷ËÀÊÑÐ û¤˜vº2Ó>N@ yU¤qäçÁ¹\˜+~õW1Ö¤òW>`µ:YAq >”M®;¤Gª×BóªrQîÅU¤èädÉÄi,ïŽü!øƒ^¡t ¶Gã`H\!WQ‚¬/ŽvÝJ2 Ë÷Ð!¬0LB»H"¯?­§8éµ 6P…“yÜÓÔå©ÊjØŽÂŽ-qÜ7R^{ÔãÓ×(Qß 1ÿËôìãÇisŒ’«aföæ!KK1Es¥ï7ÞÓï¾`&lå@û´6Ôß‘g æ,ùzhÉ’®õH30ËpáÏ@PÏÓšLPâîQ÷ F`n>®ÌÃ\$'çq79–WäÁ(yR×zº’4¾Ë¥<þê'û£½Þ¢“Òpp*ˆ#êB 㘡£-̇Yœæ®3zE½8†þ¤JÀÝ8¤E(ê{è%Ä夜@†¶Ë-·ƒ¼Ät-âÔ"®­Ü‹¬ê8‰0\JœÉªÈ6ÎD‡j&üü@{ô+” 3¾VcWÓ]óËxçó@ ÉÖ„ÚäDòIÐE7_WÓWÓ“ÇTÓâ@‹ÂîPpUñÝãV÷lèDÁÞΚ9Ž¹Ã”TøN ÕS¦áMÅ_ØÈcÃ)i\á´èŽL20w&øJ§³¸ÛþzÓ•8@ç8WÛë _;Y?(4Ü6½ì¥µùZˆO*«H!i[q3Ѐ€!ì~¶´dªwÖ²¾yp>þ¤t e‡$ å¤iœ!°Ü딂]”ÂÏtÒ4nÂò8WkÇ8ŸtK¿×·;ŽD¶ðI[øS3ŽeFò Ñvi€‹ã1¸é¡Pf i]Þ'_ §Ï}ÚT+‡µcÜs¯ $¼qJîZv=NqN©ÐÃÄ´†û­š¨9r>ºu#š³·¢~»¾ý8'¬)¢9ûЃ„BHLM@0ƒreþ*Üùô˜nµÅ¿×9?i§ß`Ø@îN[¯Jƒ"ê“‚ºÈ«G1—7çëaS®D ٕЩáBͪ)°ë©è"Ít(ø‘[º"ÙWÁä$‡Šo4Ñ¡¾2êâþU‹¢—ý… øô˜vÎyâ˜Ö%WFö{¤r!ÃÝHÝùÂz|Lɲg:Ž1|\ú­â¥phÁ$Ñ låeù‡Wz‹sWˆŠë=Tùp¶+;,Ÿ4ð±J¤éK"PTœ )"ÔK÷WgøÇ´Sª­À$ vóxšrü¤HÈ uã” é4N§¯*°Wð‹ô¥*¸÷WÎÇ[jCd¡ãíÕÈPF\bzE½-³@ìà·ÕÀçHbÐq¸Éì T-0݃jÝ@^:#ÝRe8Ç·¿þŠBÛ±|¥X=ÞRʳï¿"kñ~ü_üÝÿ_ÿ§¿ÿñoÿáãSë?ÿáßþ/×ÿ:ûÿûÿøŸ®_úßÿÈ?þýõÿíŒüøŸÿÈ4i¸bÕµ8[~ü…žäÿøüø{ëÿüßÿʆȂDÍþãç…TZýÙV£ÆJ¯ôÕýñ_þÊnØ;&”ö÷;råïX8Zàïè+¼ãßÿéŸÙ¼éßý»¢ýå_™îÿàòªy¯¤§¸\ÿü›óOÿô{……ó¿ýçú?ÿñGþÛÿôãOÿ›Í¯ê_|«ì¦óùVå~«ÿðÇÿ¶,HX endstream endobj 342 0 obj << /CreationDate (D:20150225101841) /ModDate (D:20150225101841) /Title (R Graphics Output) /Producer (R 3.1.2) /Creator (R) >> endobj 343 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /ZapfDingbats >> endobj 344 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica /Encoding 346 0 R >> endobj 345 0 obj [/ICCBased 347 0 R] endobj 346 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus 96/quoteleft 144/dotlessi/grave/acute/circumflex/tilde/macron/breve/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron/space] >> endobj 347 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óû endstream endobj 335 0 obj << /D [333 0 R /XYZ 89 770.89 null] >> endobj 331 0 obj << /D [333 0 R /XYZ 133.073 129.861 null] >> endobj 332 0 obj << /Font << /F8 108 0 R >> /XObject << /Im6 325 0 R /Im7 326 0 R >> /ProcSet [ /PDF /Text ] >> endobj 352 0 obj << /Length 2961 /Filter /FlateDecode >> stream xÚÕË’ÛÆñ®¯ØÒ ¬h!<¯Tœ*+±*v¹—Åœ°$–d‰‚”´ùúôsf‚KËÊÁ9œGOOOO¿‡o–/^¿-練ʓünùxWEwE’†QžÝ-×w¿ß-âàó¾ê3| 'øÚÁçã")ƒfqŸ¤0Øàô¾V‹¤¶8«¾Ã¸ªm«yÁVl¶Ü¯[èôçqž²äßÂá´ìU#Ò5·i¸íqã'†þ„ÐH¢Ð€Ýn_G"q þ†ç¨óŸÆßN×ÊnQÐ5„õ ië ÿjñ~ùÃ]twÇa• ›>é™”iUõâÔÀ#L4s¦ qO1e˜ÃAFT‹{S™`Ó „ ¿M•2÷°Ñ5®g…VôŠÉð^ˆTlL˜Âu‹L=X;¹²õÄÜ9¢XI5æ2ê|ݺΜ°œÝt=0¾æ3â¸âVî$ÆÀGe\:L‘M20¿ M<¾<ФÒd_•œûöDØßdòˆ­.ZU’o !‡M„®x’­9BOÜ#¹ ‘ß ô ãõš'h/X屇QÏ|©o­„¼Cή¥)|/ ͳ8#¢HÈz¤;²k±‘3¦elÕÛ|)|#Ø"Mõàzl&àÅ–dÊaÄ‘Ü8hÂÓ >ßDh ûØ·#*(Ü at8BúT¯Ù$gU,=Êü(xºÞçM.žmXš&Aã¼Àyðü›h7»<üìåÍšÍ ‚’(‹â‰Çí#\¬w+½q&pÍ€GkMû–å¸4pÖK>2¬"4âU˜¥Ê9#3B:—²™Ž¿ûvš‡l»gK ›ã Þ0$Yæ&WCÂÚMW¯^œí·–´¸-„$ÖˆÚ[ d§¼x‰àN&ƒ]Ìq”WpZÌEw0žzl6*Ii5– t6i#¦4OÔÍbHšpÔ²¯=&PÜœ–Ì›5œºpȼ`í5¨P òA¸T?¨WÙé™PÈÀ,P0ãÅ‚;XRÄBãܦ'æ5D8ïÑ­¹aeU:–îa5g[~B`”ã^6—ð¼*z móžÛjD*‰($Þ’ ž§b.)“„lè¬Â¶.Ö–“t½ jQ}Ý Ó-©«)TÏd° (DÝñwÝbÆÔd†K<>™®=³ƒ”8Xhb:~þ#<þÙ)“?ˆ/Df¬ºSw‰ SŸ câÜÀ…ï„™„¬|2Q@AÝ@O1ך‡ûN#}è9jc¦`§“ÅÖc@ÛÉ;{ ’÷áZeÝ5ø/äS/mňíq ždSW¢æïT×J°Ÿ×›# ó–ÝD‘D·¢KÜÂÇ¥tÌ'3®—qDά|5Àocl&ˆxÈ`ãAöŸ‹%§Þ…ü* ¸Ybq4=FgÕ ›“ëBtª¶à’-ŽœI¢Âµ`#m€•¿Ó¶ÃmTñ1~&pŠÈ4œÔ¹¼ƒøžìšïa¹½Ä‰ bIG(B3 ]ïûnbsÝÒ÷¾9¥[†Ë©u-w‡Ûö¶¤˜ÒXC¥ÒÖ B)[`Û‹BÅÁ˜0O¾4.˳kšEsìm2v9Å&” RÄÓ)w¨­?ËÖµ¼nEd‚kE"Ï=Z·995ÊÀ„`¼‰èÔŠäÙE02Z0?Jø7ÉÚ† ”Ðæòþ©FÌúQÞ9ª˜QIiAÛÒY:€ÐB›Â8µ6‰Àýž;$ì6‚9òò±ìd×NDBHxŽRå"SZÏûÖikÃÃ\è’»§n.lõRÌ E£7zÕ¹û††Ä¡Gž#bé™[ÎȳÊ?Ž\T™N÷‹ÿ>zà¬ðÜ£Gõ´=½æ¥4Cß¹ ¡mt[ç¥ÁÚ4³™¹zŠ©!ïLLÓu±³cQ³9Š•ìB-P±å£ÞH °uÅW[àÂâÄÔ$oý2ŽÚyò§Ð®5=«©íÂÕlž'kسHÈ"—°­Ê®ÇAÙ’î¯iÕëÔ*Ž{—sWÓ°2’_|‹éfÂB0®V0±0Oœ7¸*[fkÉš9"¾GA…‰ ö/“ ZiE¥ØpzÛIÖ7Ùà‘B'£´ºT¿mÛZí|-HWÍÅ9S{ZÙ$䊴]·.SÀ"ëò‰vÎþ#‘ÀÎ//®W‹þ š ór–aúúVnnl‘ÕЇŒi¥u(26p¹3’)Íà4U}’_õ ¯x—ÖÛe+Øðâ¾ÏKo·NÆ{)ö¿t(lX+àØ~ç¹Ê £Å‚l$Êv.‚… »–Z¹Ç$‘\žÊëÌи¹8ЏáË pG-Ç51› ¥õXlû%´<÷Ôfçgç+Á6Î qÈ>…Àâ³>µpšüÄ·kÓ ¯&WÌ:«X+ —†‘1¿'á›QÂ?, Ðy¸)“+o|ÐPÇÊäs˜¿TT÷VðxNŽx´ÙˆŠho'Üòððj:ž‡öf•»Ʊ’‚­-ÇÙZ¹u/¥ýòÕ£ÊÂÄØ·‹ÉÁþ¿ó‹ãÒØ¾™Ø$}B^\†U™LÈó9ùµ¿_B±´ÞÔâš°wK—)ðHÓ*LóršRSµL£lÉùž:?¼"ÿÚõg‰¬0º´Îºþ·ÐC“Ç9r1yà¸{]0!μʂE¡ ~IŸ¹(¯i3Wó¦Ûq64­é´VÑ4ø8îN2Œl!< g3ó°t©·oÚ߈ÝÓ¢ Òüø<Þ0û;±¾3i×”§ #§<—Lœp¨-)LXV-‘‰ú“„bœ˜ì\f áõLò=…×ÝsêD ò+¡3‹ìšæØdcƒw^ø~­Z˜ŽÒ/.¶4’r§é\úêkÅ|¨zöªLÿ'ñêׄ ƒçàÃ…W­•ñ³çäù"æåo‰Q‘ëŸvö<,eà*:÷D4.Gà¼;ÿ‚'¯URýW2ïúi*lk¬NÞ“Iu,šâûGÎ៨ô}ÆŽÑi¤ÆÞùÿ"Éôï1bšŽìäH/YN-5kþ?Þ"þ^6}®ãE3Zñç›ó³eÝDji¶¨"¸óè²E~.¡‹£Q}€øDJÑNËÄÍÅ‚”u¾Ramné•F^Æ8níGÝ*lóê=þ݆þùWêñÑ ØG7åóë_•´‚ùó¯<ö^â±ñ(þæÙ`rr!NiF"†e´ra´g+É<åO.ÈÈëNÏMå ¿º?É¿ÄÂ,¹ þBúÆ4É.»l¸²„Ú‚õk NH};>O=ň&ºòP™ß¬Ï솩U= ¹¤9ôß»$ÊÃ,®ð¯SaYŠ#N νønùâ¿y&Ö7 endstream endobj 351 0 obj << /Type /Page /Contents 352 0 R /Resources 350 0 R /MediaBox [0 0 595.276 841.89] /Parent 260 0 R /Annots [ 348 0 R 349 0 R ] >> endobj 348 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[0 1 0] /Rect [187.846 573.669 194.82 582.077] /A << /S /GoTo /D (cite.biere08) >> >> endobj 349 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[0 1 0] /Rect [157.455 561.714 164.428 570.122] /A << /S /GoTo /D (cite.dubrova11) >> >> endobj 353 0 obj << /D [351 0 R /XYZ 89 770.89 null] >> endobj 350 0 obj << /Font << /F8 108 0 R /F57 109 0 R /F50 107 0 R /F67 131 0 R >> /ProcSet [ /PDF /Text ] >> endobj 358 0 obj << /Length 1694 /Filter /FlateDecode >> stream xÚåËrÛ6ðî¯Ðø$M-š;MfìÖnÒC­ÚK’MQ'"é-Ûêäã»/€ ÉNšigšDh±»Ø7¸œœ_'“Aê¥I˜ f‹Aê&aäùI<˜ÍGã8Œ†Ù(ÞËX>Ì~9¿žFƒ)% ÉüÁ¨¦¹è!DœËÿ†`Ä3àO VïBŸ ­`ÜÁXÁ(\rdËßšx²£•¿eTD[ôÒˆz¯Æ{?ö…Lø|V(/I§ {à¥Á”µÿ‹c?Xócã1#¾—Æ)3ús4NÂéĽˆÒ ¾5‚¯?ñäK¸Û:¼þ,Æb‘(ô¦‰‡ŸÅˆµ|ÛΗëεCûn.Øó.Ljž¢S–áBV2pþèvôÚâ»&'ÒÒ0ÝÊÖ?1è7˜Þðô ¦!Œë}ä+…=ÐcÝ Ñ¤#š FÈ®±ÁKòšÃL÷ƸvOŽKNÉØÎdä”zJ]Ša´¡~+ÜK2[„Qêç|¦Ë30z:fHÕ6ø‡Av¬GᔳjAâ0ªÉÐÌäæºå5q#2ÉZѠΑËÒÔ͆#‘/a»p2l¨hAj(G¸ˆd½ÑX)\4U!D&¥p»Ûˆ×ï˜+n_œášf( QºÄA“%Ædw,õ°EâdXä``–±ò#ŽGÚ Wkr^%ãÝ’¨¥,-+^’ò§§”ˆ½!ûâè–Äj8Óº(½áæfj×ú¾ã»½AÊð£·Ê8k ñ£­e°YðŽ-±¥z(lÉfsµ–‘ªì#úGr=Š}Ü2ŠQ;o¨´ƒnÈlo½"•BÜk”Á¦ØS9/­:ÞÔm‡Òð”J °^2;Š¢wrä—¼ôh iÉësø ëŒY½nÐDÙM)™TêpÜbða ¦Éðb¡5Ë@¼I€³žÅ¤Dâ~Q4|Å K9׿f=y]»·¸Ãÿ!‡6|%(Q¯ÅE%•‰´m"qñßþÅ¡¼¦ª®™§ˆ”7t ¯¤^< £¦:䑵ŒvÃrµˆ‹BqïhåÞûêb]'òR5aãÌ–¬t:TU{;ý‹O‡±¯Ií øh¦é­©…Á zÓø²TXgOnem²3WŠ|gs1ÞJ£ƒØ¯`œÊƦ@ Ç¥Ndáw#x§‡BËìTYj.­CVï¨Õ­ÞH vú¬vÇ´–ùïŽ.ª•Ýb«i¡vjï ÚqcÞh¡6Úa*æÜÆ/ÙŠ E™/–êÎ@¢ŠŸ­;$€ª~îVìû<áš3—ÊI ¸¶ruDÚ~UDH#YM þ­²ª¢Ü+¹nN¡³’?&n ÔÚYc—ñ­Ãψ8ЇoåtM¤I’Ãÿç”–tÞMüžtIw>•VxT¼´Ì„ãÌï20B©ç6eínÓê@Èæ¨ìØÄͽ%Š«y¥ZŠšæ\tª5•¹)<¹Ìå.XÒÆ;j´¯aøÜ(>Bõ ]‚b”Æû_|+U»ö/)–K¿ì d18Êý\öìñ¾9¼ö•®Cúœ ¼Bh«¿0ÃC˜[gàuž?Á8·LÝHNü;ÙÉ&_ž¥®bhNyâÁÇ´‹.»h­{FiI}¨ô½`gd°“¡Ý _Qª=Ÿ£ò]±÷ŽÃn|pé¿[5Üã˜L‡©ö-ð­düßfÿ~iÆæa@…©épž÷j uR1˜_l¨%õBøC#¹ÐÎe§#×VÚJ@Er·d§IUjaï¡Å›ÀèrË@ò#ú>Û¬„µÐRoï€ê™ÃkZß²èZF}qÄÖ c=Kéöè‘`…Œ9ì¨ùC-Zi2KÉÁ‚ºÓè¨5ìn1»çøÙg¾'ÌnW™U;-f¯Ÿ¼Ít&ÖC îQ,K®¯ÅŠÊïn.õ¦§ºi­Š6z@ÑnÇ9ÁWòx†k]ÓG+ ´I;-¼Å¬ìö¨Å^¸…õ®uLDýÐ`1'CÀÿ•iÜÉRÙÂ;ãϼ»ËG,D1![NAÄjøvá Â-ØF®eüg%ÊD¿¶ÈãÁtXÀt×rfî *r>š!Üâ!bk[)µ¶»[¦.(-è‰CEÆA²5[¹w‚š@èKÄ‚*Ú»gF:†VäÇ ¦%ÇÞèâvÆO0‰å1%«­9ÜE‘aè'^¤À6ö&° c\;¹šü 5ÌùS endstream endobj 357 0 obj << /Type /Page /Contents 358 0 R /Resources 356 0 R /MediaBox [0 0 595.276 841.89] /Parent 371 0 R >> endobj 359 0 obj << /D [357 0 R /XYZ 89 770.89 null] >> endobj 360 0 obj << /D [357 0 R /XYZ 90 710.424 null] >> endobj 361 0 obj << /D [357 0 R /XYZ 90 710.424 null] >> endobj 362 0 obj << /D [357 0 R /XYZ 90 699.465 null] >> endobj 363 0 obj << /D [357 0 R /XYZ 90 688.506 null] >> endobj 364 0 obj << /D [357 0 R /XYZ 90 677.547 null] >> endobj 365 0 obj << /D [357 0 R /XYZ 90 666.588 null] >> endobj 366 0 obj << /D [357 0 R /XYZ 90 655.629 null] >> endobj 367 0 obj << /D [357 0 R /XYZ 90 644.67 null] >> endobj 368 0 obj << /D [357 0 R /XYZ 90 633.711 null] >> endobj 369 0 obj << /D [357 0 R /XYZ 90 622.753 null] >> endobj 370 0 obj << /D [357 0 R /XYZ 90 611.794 null] >> endobj 356 0 obj << /Font << /F67 131 0 R /F83 268 0 R /F57 109 0 R /F8 108 0 R >> /ProcSet [ /PDF /Text ] >> endobj 377 0 obj << /Length 2031 /Filter /FlateDecode >> stream xÚÅXYoÛF~÷¯ò$¡ÃåÍ - q" ÐÚEÚ>Ðe±æ¡ˆ’÷×w®=HÑnÑ (ŠËÝÙÙ¹ö›ÙU3~j¦²ØSi4‹}ß Ól¶j.>]xQ¢EN“†”Ì“Ž—ï›lö]wñ#üôÐRó\:LßÜ\¼¼Êf¹—'A2»ÙÌr¥°ŸÝ¬g¿Î¯j^ÁswÜùXF*œ'¯ËÄçï°¯ØÁß–ˆ¿©Ñ—ðß.‚t~@ºƒ°êZ&î6øhp[r{Õ58½ÆéŸ¹‹æá³/VÒêöÌ¡"þÌdkÅkpµ¦)jY°qzY{^ìÚ«ÚNl±yXÙü„Rw¨Å=<Þâ÷›ïÁ†K¥¼<ŽÙ2o‘ó é@ù æmït¾f~سGìØø×"kT Çñp^0YoÌSr?ZÈ2¶åû ãÏL4iŸKK2Ô\@DW¢° KïÅKjpâÎçÜ×ËjL99p¹¾)Ä×b¾—WIê„3T^”²-¿],ãíÁ3‰w} Í%7ïh5}= T4Óh/}hòßüØ—¡R⪖ïGy×2v9p²„ÿW‹¥ ü˜ãŒPÏ Y¸—±V8ni¹ßG¡{q¶RŒÑ9pshê{ÊÚúúQŽZ· 8ñvu%î{Cv„cPÇÅ “ÛÚé'¹F8s$à•—ææÞ:P¢üQjêÉÿ°Q(Q'; Øu…4x¿Õi ¹­ŽŒaa’ˆ¦F ø¤lÚ4Ôã ßµã22Q©ÄPFØ*B˜42¹N¯¥n$·tNÙŠëü0J_õßí'„^ MCÚ¡º¾ kUô‚ÆqÏß“‰— X›‚…ëÀ±  È¥MÈOnOs"䶤tí<ÉïJŽX£¤v6Ô|°')¦*Ü¥ŠrÏWXš{Q ê\Ü㻾ÿ0ìu‘°y¦D:“Î2Ð j©L/È$z®Ÿ¸2wĵ£ÅåÂÓ¬ó´6D2Ž›ÒÜÒpëT'§š¸7Úù ]neEâOæŠÇÞ]Ê yn ú ä&0‚'³r/ϺCžâ¡õåœL<9wI[ËëyYùHqÏOðüLÇ š Å‚®æ¢ïROzTC Û} OÑ+#ßËôEU áÅÛ›‹¿×a endstream endobj 376 0 obj << /Type /Page /Contents 377 0 R /Resources 375 0 R /MediaBox [0 0 595.276 841.89] /Parent 371 0 R /Annots [ 373 0 R 374 0 R ] >> endobj 372 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./attractor2.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 384 0 R /BBox [0 0 504 504] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 385 0 R>> /ExtGState << >>/ColorSpace << /sRGB 386 0 R >>>> /Length 62129 /Filter /FlateDecode >> stream xœ|½¹ŽmK°æß¯è/hVUÖèŠ" µ!C'9Äi" þ¾*cXkŸ7ÐxCÝÝgï5TåY¿þóWýú¯_ÿß?ÿÿç«öï^ô¿ûßíù?ÿíÿùú?¾þßþÃÿßÿÓÿòõþ)ßsÆ×çÿþùÿåþ×5¾þÇ?ÿçÿõU¾þïê×¾ÿó_ÿ©å»”¯ÿõŸ>×wÄW‹óÝÛ×/Ömq]¿þÜõüÞü<:Öã{U¬ëÀ:¾g¿ëý½Öå»sÝðùßçÜõúëÂïŸß£åºÇwä÷ }ÿýZþûø>+×mæµhùµw]ï?ÌÏ‹~¯Ìü‡­ï2ï:ÎøÞ÷ûÛ½ë}¿øþû6¾{þ}¬þ}Ú]Ç÷ÊßÙ¿×½¿Vó2ïzôï½ïºäeÝuù ZÝyÛw}/<î÷×õ]óúâþÐ}¾­}^Ï÷Èu׿¯ß_Û÷Áõ”þÝæ]Wþ};ë»Üß»ïϧò]ïçå>ï¼¾¶ã»ß_öwÍßÖ}÷ûËâý¶u/4ÿþ>f¬ïû8ù÷÷6¸¾ß×°nø½qo¼Üuä¾ë¾ð¼Kû.uÉÓJÉÇt×Ñ¿ËùªçðyãÁæzçkÏ5Þg½·÷£­gê÷î…E~~{®ñ‡w;Ÿøy}uŸüázÚwíX—¼žz¾¿®ŠÏóÏòþë¬ø÷[¿W‡Ö÷ùcÝëwÍuð}Ö»Qf½ëÆë©÷zó~îÏô¼¿zô}uÝûÉë¹÷9ïåß§ŒÇy/£Ý__ØDþÙõ{ܼ"÷ÈŸîÿ½UWû¹¼G§ç§•[m¶Ü‚õ¾ ™ovìüŽ:O¾Ÿ»ß÷€æ²ç>Øï¹¬‡Ë» rYòwGË·eÕ²¾ËŸ{êî¿«8e÷©ýb»ê®;Oéþ>§.¦Ö#×÷åòT¯¼“Ѧ'ÚôDùp«ùDûѺʎ ­Kà ÓnåX°k«|¾‘Æ–kØÙæ'¶a7î9þû9`çÎñšvom]ñÌ“™ïì¸_®×Ó–›ïTï°ó-K>³‘–ón}ZîCË:sÏç&%×8‰½Ÿ*ÏL¡ñÂa¬ùïïýÞç3DË}`e®¥çõÞ/¾7’|Âr¸”kÀø¤'€'¬wãíOPó~ê}ñi_ïc†A­÷Áíû}{Ò&x伪™—wÿsÍÝ3|¸¦{å]¥›€š8Fé%&LwÀ©]sÃyMwiXâÉÞƒp­rº§ë¢b‰ºÇâîÿÇÁtœë\Fp96—EËõ.h‰—ãÆc¹kîZ§v¥åʗךÖu0~ Y挿2^±ež<eMKwýcò”ß—ÍSxo}ìÚ\G¼åcÂj ì²eË›çî¢1eYóA3Ìa|˜Ïã<×O|ß2â#XÀ[Å®í÷Ù§e¾ïžc °Ì7E»˜ïæÐ¿ûï ßdµ]Üšx¢¾ç®›ŸèfD¸—ÖOt­ }Û°ï[Œi×&BÙ´CíyO\¾f"¢»v¨Ú÷íƒ7Àø®1ÿ`¸3âBÄ7íy±Eœëé;†›Ë+î¡oÏ5ÿE™\û¥%ËuyßQ®éîIôÞ…Ï<ðDïÑûvÄ„¹æëˆár K؃ž!-/cúÆ=Œnúý*cdæ×ÒlZb°¸&¢q3†u<±…õ*Œ> ŸpÌ‚h¢hƵ”yfîºÐ FÌ'Œè&®eLOq÷üÁ¿¿[¡ñ zŠ{#é«ï`ŽÀÿ'×°%í yÊ5cê fÇû†ÚµA驊Îp»Áf0FÇ™m7bÄõv^o›ôŒw`° X œ9|ÿ5@ˆÑƒ§]+‚ë î˜Ö+ï·qGgPR¸fŽÑ6s†FKš[½/žaÆðŸWæd¸ñÍœ–öÞ/Æ[¸¾Û»||äëÁ=ó¬¯mÿ¼ÿˆý×ïGc–ö®7¼ëÚžSõu*ññ{í0šyÖ÷zGù\7ú¯×@ö¬•×¾kØÞw}ŸÿžŸëÆáuG û®ƒ{þ]7úJ¯•¥=ë tÿZ’x×t¢ÏÀÇõÖ½t<ëû~Nù\3¶xÖ´’ïúFÿŸ÷—øÓúx_5”ÅyÝl½ë4×ÿ>C‰¯¿o£}|ºÎ_›7¯íc/LœêgyíéüøtÔ¿äõUŸûæƒÏÇÖÛ_O¡7Ϧç)þX~ÜòÏ Ä¿X¦¢á$ËcVZÞuŇܠ¡“†F×ICy]M:éûî‚gR0‘úÕ"×’©ãVÀ”®%Œ7Ò°¦«aÊ6ìjî¦JP u§+™Løàj\ϱk‘ë!ÜuŸmzú´ÿKF&SÑ´vôí®(s#¯3užE®üòt¥÷¶hÈ;Ö‚£Æy‚w].~‡¡ˆïιÙ97ŒG°h†ðs` 8²w|Q®iØàL:„¤ Ëg–{B®íúÐÁ«Â9_0“Ààg1xt­±avr½ ËãÕátl¡£yÒÆƒ;`¦MX`Äf×GΉ5‚—HÔª|)R%˜pâèórh “¶sàØ Q;Ác_¹£Z^oÚ!ô:w*Óж’ºÒXvhsÒ*nlGò †ð¯î)YëÇfZ!}CpWTIŸ`®+$o‡'LÏ7QµÃ4¡Ef£…ŽïSHêãxq# CxKpÔ¹ÌYpäêbŠWÊäV‚]r«&­x~µ>½¹1„?´M*#Ô›‚,&½XÿšñJ° ÷[3÷Zãr}J"ÖÍ×w߯fØ{ŒŒó'«\â]ÏŸR6uÏ2’I%[yÔKF© áPPÛà=êÐA¥óÏD»æ ^Ëåæ²÷7Íšr/`Æò]£.L¹ :ŽÀ ÍÒæ±G„=Yë˜Z'j½Dˆd¾«í<I¦›KF!ÍÒî2»i$Xá¡Ï’DC6"ŠÈ« ù@°.|ê—1¹ð*ÇäGŸOÆÄÙ·2Ã4Œ‹†–†ú>í4K× Cî TÖUÒÌlÞAÓóNïÙpÅ4[-ˆö„0êJÃ|ïÕ‚œ'Ÿ qœðä1ÏjŸ02ËX×{xìCnD£6‚‹ 3 $€ŽÙ!¾ÿF'£ÓìáótdBN9@f;õyAô³†cš)ðaæK³Só¥Û®þ)sfµÍÕ?‹Yý+Ì܉\ÇÚéx‰,\G?ÞdÖ®cêŒ :ÌVŸ²àê#Œ¶„ e*SˆtWÿBfƒf'pôîéå¿'h•fûC@šjäu¡ÂL=_l"µx­ªÖV¹±š90ÑK®‡°8í‡Ä ‘/~_(ã›|‰!«.…ü=1äB´”HD<³‡9ã!XÚ„ônU@qŒ3é ŽË½¶Ù€Ì"_4,M1ÌÝIù$šQ»ï^fÀ(5a×÷5dbØTäeq¥Wì"AÄ‹¾à.QÁ^ V‚e/ýLD7÷¡üb¾òZÍíÄ»D;Ã%ûÈh¨¿ÑPš™{VºùR¢}´Îh,+f\«Z¹•ô T$ÿW¢œ©fÍF„@Ã4\x×yȦc—ô% Ñc»ÎX!££Ð:ÿ~^ï~!Í ¤¿\³ØÊøëþÂÐçþÆÎêk£Yb‘zêØ¥™jwL@ôšö5°&è¸ôŒyÅ Û0ãE~Å…äåÌý^QV&PP ŸøâïÅÁ1Ì\D¯T5¥åÁb#@pü}öMœ¤²iYJ‹Í¿ PfÒXÌKewƒ+º´’¤…Qýáó’ÌÎÁèRÐPÛ,EYêÚŒÞpK=G¥¦$™”7þO’Âd4ÅÒÕÝq•Ñ£—¾XZ€Üz°´eRKE/ÀzÝF©0K4s­3É\Œ÷óüÃŒšÄpï·Œ7:É/.ŠFh¦?&att­¨”ˆCˆ3Z€íè*·6Í£ŸAØãn š¡NÈ¿ù÷Bk•£j“áQ1¹&@»a.x=%Xžß$$–Iœ pÓ)DåÓ\AFNÐOdîÆé(k$æ„DâžœFÈIìe‚$Ê QôVÞ°Háçk˜âЙçwˆIĹ,‰G\®wù³rdf{ï+®OE^Oå‡)Â=dÑ´>LâºÍÜ ž뚇lt­cEO¨ÇV-1zªŽ¦2I»Ñ–ŒÊê}cj&TðÐéÑ=ÑÞtåk°ž9…OŽFŠÈÌ0ñë¼¢9•”%Öp`8U]"wYÛ¸&YbÈÌ-®Ÿ´´3 •¡Fô†–†¿£˜†vØðæͰsÙðv¬»*Mw?¤áÈR.ðÅÿŒ5 +Y.,ÒÑÞ“kbÈweuð®‰QŠÏ¯iN¦KyѸLû¦ÓÞ&×¢x¦‹,—0$žñµi§=çµX‡††1Cç ýèJQ$Ì=„wœih¡kdZªJÅÚüýÈJ Å•èâ…1ääžÛfŸUĹG°§"ó'ÆŸ¬±_ yX¢sª¹‡ÓP™V“C°˜FÛЭBC»ÌëdgùûÀ}Trhh+ÑÀÆ $9B»6ÓÒJ F•¾´@»&´8Š÷˜æ¶Æ´óÈQÔÁ4®pÏ(þÈãÒâgµ¹†Ø[§“ƒ¡Œ*j¯‹÷Ÿ‡ùØfÚ]y¿i8iX'Œ8&0Ä#ˆÀwZ³zÇ`$UˆÎ‘ ׄø£²Ta*‘ÔÊÙˆ¸ž$uò¨TYÊÛ‹M;}ýñ}ÛDãé/¢\]QÀÄ^IÀ±ó} ìöÉ,uw×htTÐÆ†±Lò$á˜ð!rP\É—I°†.—,o²0*Ou äÄR†¶£BRéd±Îh¢»ÀÝôåh‡‡´‹’yâ~¼îø÷i˜ÄÄ‹#„–52vg9™”É:ž{m<Ä!*UÑ¡^|©yˆq›Ê»›‡*£'>Å$°ñÿaeÂh)XlŒ–±°ÍX<²|M<“~+ùʨ!É«,WbÇ!‰He›ØÄr3O2ê,¤m‰’( mS’µy(cøú`QnÛÄnMˆˆ”ËIŠh y^o2OX>&äÎÿä/ï•&}YæÊÊIÑ!ÏûI¤»ë硜¾þ†:r"ÿŒ¶*¬AV±=Á_äeóû²}¿oz0„îõÙ‘æ‹ÉûÛKåÜDîý‘ óEg4t¦ˆ?åß0‘)£©ûþƒüFS÷‡£%‰–¶·’:óÅE«NA¡ þç<ä(ãåk'ö„¨Ä_ä„5ß~n˜Ä AÞ|F÷Úúfpµ&a‹fto1>Î+IÇ~x(ô" 2¡N8‡ÑïïñíHÄÉeÓ²M,CÐÌ!ŽåB嬣ޛk![ˆVó˜Î{á1%o‰¶±)ÿž•ð![›IQB¼ÄòRW¤yÁèC\Ù&,f 0›ÇR,b%»¼ z~ß6kd º…odt2˜t”·>\æ{ls}È?#ä<ˆW¿§ÊP3ˆ¯Jœ"[°\*|•x>ÍœÔó0Ÿ±§V9îó~UoÛœÔe¦:£­IH3Æ[íý³z â ªµfxn2L§ðÂkõ“^Ðát±NoÞ•æÁPß'ØC‰|~nÂA0 1(“[ŸèW(-L†fF'a.W°ŒáŸ†;?oBÇ:ÝdmKe{ëùÔ"1‡û{×¾—*CŸeæjscôתgô–e’*C˜µÕŒÎªÓâÊV]t¨Hkò~ð}•Eƒr”T:ƒÐ¹NGT6ãe>Ñ܃{œO4ñºîš®;Ÿ(¡N‚GoïÎøª»‡ß§Ä5×éJº+úŒ ò 0$ÕR¾¡D„ó?/­óûB®æÎ4³„@ròË5ÿ‚lÀ™ÔPD™ï´ñªÔoœ„å;Ë,¥;‹j¼óŽ‘7@qµ›mVÉÿ¿‡›Œ€²hºS>„Òé¼ñ Áœ_ÊtB(ƒÌö5ÌÚ}àÉú7¸Vinõa– ¡ŽtgÍþ‹ƒS[‚V#­:J•[ëD$ÉšáõeèJö 7ç0•VÙXñ0‡y#ôOŽ#r9§P¡+Y¼ý-,¬ˆ·ÝÅI眈e" ï€sûßqÎ\¤¨rÎ %Œ#Ä5Èò™bÍdèš±ßæ)¡·êLg¬bˆ¡Žµ¸C3´Ï¿¿ÏŸÐÅt›·Í~ Òo³-…,Þ L( ÕÇq”Ò«>ã’Θ?€y$¢„àîhÁãD导‡9šØê׈¶˦±éŒUK®×ýý±1k#+ýïR¡èÙ é°ý6€ºt¸Øí,ÇXt õ‘¤ ²Œ„€(¦â’bx¢‚b{ÞèT±å>àü*çæ™QN,aÊ&HLXÊò‚ ô_¬Ó–eÁãØVoœSÚÆ@e--Kyl;-?ï¬%õ-ïwMRÖnî>Zööi;ÇrA—Ý47­É×E4¤ƒnš™ñ6ÐYòne\Óì/ZÒe®ÔhôÞÕl¯` ÞфКí¤"7¸*-SÞ|±`Üì½+Ùçŵ0T*\š„Ü^fQc&ùpµ:ƒôI̦‚L±˜¥»ÙÀç; !6_o& …Ü.³‚yØH:~àM3~ ü-súŽèâ§sïP‰7Y°Yk £-laKïªÚAÚæ'Ü¥÷$_°[hUÞ­X«@Ëô¦i¹«I÷sÇ<=8õØ»2~©¬ÅU•œÓ›ÂÛÊwÖ@Ó»òz*¢ÖZ¦˜Ø× 'c±t½¡t½“4 ùüÉ£ uæsÎ彎sÖr z2”¸ù|Ödžk{ö½Ï»* öô4óƒÑQsÚÚÚçc=ZgØT›{¢×ï?L¾a²ýšÞGFSMMݤ§cCßGzª'^l”óùžÑTU­ï¿O0ë:ØA ¬ªë<íW¹f!¦pœµsžyµ¹ë‰N¬²hÊ7<¸‰®U2$iŠò BM#´ ˆA%o•8ùÆW0Z–±Â˜ÆwáËtab<ÈÕ©.°¸g6)®Õr]óUÂ×Ãw÷Æ @ŒStädÂÏKt¤‡½IZE†S㕉w§oW¯aöVNVóˆ>e}ã°BÇ2Zb±ºz˜x7Æé4“´‘д¹n‰&% €¾ì4ÞtùöFßÞþ=ß>™x³º+t-ñÕ!ßžÆ|¸o‰õ” Ï OtjU—1˜Q,±'H $Ú‡‰8œx‚†âiúöcߎm®^'L™ÏïèÄ Q ?ï|±ã ±îîÅÌ´NZ¸t>“¾œŸ§*ð勾%h(™ˆG:ë*`€e™èÊÓô\‹‰F.üûLå2çU/ìA§ú¾òçŠjés)fãïýôºm˜ãä~ÝïÊÊ Xßð³Ù ÌH½Uá¨t¡¥#IIxÐ ™p.‘ç,X:HÇ©¡s/4%†½ÙW™k%f¤Z‡¨Ép •Î,ƒüÀAÕç4=½9‘ÛDà¦S{Öï ‚½•w¨ÒTV,þ ÕÏ´d6×;Y*™âµdª_Égk¦m¨þ¹\q Ö7‡  f*úgi%LëQ^D–-ç¯V¯iâJÐ_]*ilïTûh# »Ý4H öóž$õVOs°¥™hÍ&ñn©A)õÎX¢?„É TB3E$ÈNl®š;ž‰|^q¯1muz›bqޱsô‚ ŽîÙ”‰_ÖƒIÃ~ÿûÑAÈHâ„#G˜±#‰óTvãË ™dïÞ­kBM°Í4ÙÍ0ñ÷ÏîƒÞ6syòË¥È5¦=nÀ'W”ò±æShðæ„u6þàSrô å jSQäs‡jò‡í‘õ8J"uÄ®ôh“Éû¦Pcæz$ " a¸Ez<–ñYÞJC‡äMÎ,ÏmvH4VÅ«ªÞѹÏÕc“¦± #•E»èÈ‚fãØfS.ù2ÙÔì*áO*3tÐÎäz‘º{´o$o­Y˜èºŠBê“ßE*Hˆ¬Þˆ&·bÓ㣓ŽŸöô¥ˆåáH¦Æt( µ©s—ˆ=ÖCɺšÔeGÅdÕZœMhÝ$×@:ÀL®Y8¨ÈÁÒ±Óc6Ùß×Φå³èÁЍÆd¿|¬â‚cUH†&éêaN²jG•šBI €nãLžªlY—WÁ3ÃeÕ–r×Õ§Gc‡FÉiª °Ã!5›\nCÜo%§TT|^˜Üï.* Š„ˆÓäïkÊ#‹«= €æÆé<` å‘ÀÞ:°uyú±õ8‡¹ÄÎ`&¥Âk²Š ¡ŠWQ1¯`ðŽ.]BeP«2z(‘|Ñ呉Wd3Í@8NÞ ”äpÊ%"X-Ff =ÚLhÖ_580kwzž8H|$æu¦ó¬´¢ìÚMG¼ªt‘Çé~º˜ñÔACJ)qdÍ©Š9©&Õu?éõtÕQ¦ãƘñW{›ëºêÄ~+÷ˆÒÒt<éúaå¾› ¹ÙçRÜIÞLK±¢°Ïä< ­hº V9kcºj 2(NùòUN¸(½a …¬ó ”f—E•¯¢*°ê5±ã‚2L¦ÃJx‘ _pAêh=ƒR’ày Œú£yR@_>Ç?ƈŽeéóõIž¥§ÈíW:#œ8ÌþòGÙVÔˆ Tõ¾m”ô,!¤JÖšþý¢Ð@Û.±æ§äÊx¢›ß$þ>›Yr$mv6¹ ˆVïs£N4z¢F¢‰›|€r;L÷Ú©’x%H:,²üÙȦæ2iØäÁ\‡Ý<ÍÙ*Øå¥’% ›Ji IÚcItJoY˜i©@‹Ý”'IØ´Kîãßò$Ùç1¦rŸNØwŠ?”ž$Ñ#òAþ i&s%v^#^ßœ  æt¯ÏúA`£–\™;–ü0êŒ 7b.…矑%Pâ·ù˜IrÜHÂò5 ò«Ëƒ¶†Ï™DQø¼+Kš™W 3mRš†…š`r›0·ê0¹Øt°Ìa>zû˜üˆT‰Ü<·)Iž¼°ØÊscçõ%™ßWÀ'Ìcð–x¯ç;‡û)Î}Ј,ù9€3IøÝã…Cع\v/Û—0Ï2àæsÔYKå£cÆFY´ÅÀŤ…-͠墭¯¨CÖbý¥JÎ;–:åËÀ93ßb²ªDà.}«PÛ¾§,k® ‚cJçF—­ ªt„T¹Òåõ„[_^_D 0«n¾H¾i [†®7¡dó?:Á»$o, Xαì[@¯ªÓŒ˜N_;‡Y\OkÎtóP¨Îl_“|lyXü,²ñ¨„²øCëNF¶áFÒEÏ”€Aâ3M&™è5aì ' '»s¹ B ËFÐÄœÌ"iу°bë`޳muÕýVÁÞSÝ ³wwðdÁ9f.ïQßâMDwðüü£XˆÑï?Š”žîƒpÅôI]Èiþe`ñïƒ/sDwAüVÇ—Ñ]£ß-t-8L`\±ˆRjÊC®&#›&Ø'£Ë|;M…€ À쥌N3²éã¥ÞVî®påa+{FNL1¾2:®,<ðÜc6É)¬fûÛäµ.TZ¯fߪD›mØU¯8£ûÊFžB*.:   ÆŠ!Õ4Ú²f9†ÑÜÉF²·þ Ñ)?'Yƒ®TÞ%Óÿo¸ž¤ÞŽ)WÑ©{9«Bv·ÁõhMØm¹ÿ“>s­J׃$4s1Át`ß ‹I e N¸Müz+kˆÆÑ‰¤…IÆk%ªa:ÅêDÓõtVÝo¹Ù¾À…:sURw'¤uÀ—¥º*Ja*ÚʰۦR‰ÕÕ–èçHd×Ó‘6õ—T ˜æ‘ ŒX‘}• +Bi6m+šµÑ—,U0g p…òî/ Û†g~®~ ¡ g‡×õ«;Éû‰I›‚xö—K" ½UÙyv¥ª€ãq Í ËÖLÈ«;ÕTȳe ÄÄÌ’ÊÃç(+ù™EÕ!K[Ñäv¦KV‡žŠ’ž¥uóUŒK¦‘ž«’ßR?‹ñ”ȶ³&5UfMþ÷æËȾÂS5„­ÕYÚæÛ¦€,è)ãÅîÏ™ )ýÂ3±ZÜ •žzºD1*{‡\RÕŒ©åÞvØ&Ñþù.i–kÓ»¼Ÿœ*[—¾%ò]6gé¦Ì½eêr,ÑÇFö£¸³³ñ,·£5Àâ_ÇϲX ,BL 1H~œ<â{Ü7•mg.ównz$cϚɘ¨æéaî?e®OÿsÍÁÖÆ‚Ãiéù¨žwÐŽ¶§•@=niå!êÛ ê©îƒ nWaO¶d{³/6à Ymh3ホ Xu™DÅ ‘ÿþ#Ì|+ ¢Þñe„QZÙ"ïy™tLÉšíHúÁ,ˆ6šÁ uÞ¯k);•®Bš«Ìw˶æ8Ëåuªlpia¥ZSó¤°øE‚Ne•ŸP âBƒ|‘—Ãu¥¼Œ.S… c²%5ŠUTmPà „чaÞL£’k3oæP %{Rìd[ÙVÌù.ŽìµòP‡.æÈ"øEï;‹U¨fM‰ÐÙDËf 5 C³¼ƒCˆ’dþW´J©kí_{ɼž±ô{=È£iKI²è†œÛ`ãþ¯"Ë÷ó%•‚Fñ˜¶Õõ•î>‹eÛÐ`¥ªÀÔ+y‚|Œôòµ|ÌHÐnwP¬"‡•¼†LÈÂíÄYÌ Ñ ‰HÈŽ¡À2å±Ýwò`†”sYû•š 1#-U¸aYéÕIQ³§Wäï³!gm9’´E8Cfävä{iGU ®„PaE.…š0lF÷§Ý™<Ô”›Ö׫æ¬5?ŸE'qÞ{’ÑѰ @l¨÷î®pùÀ¾íaàéöÞ6ÃP¶9UçüàH5hvŠ:Ÿóšá층Z¾Aÿb©„JõÚb¡€Š#_ë3­ÚyÒ‹‘È '“D™Êx¹Z}·R#ª9ƒ•>׸W£L|Æ›C>5‰5."˜ÝŠÇÀþ?ìø0±¨³8×\ŒËì³[›¶£Q­~&eÌ0Œ“u žÈø\ÁŒ¯ÇP6ÖI+V¹èÔlã‰wTÖ`Ã0–çk)¾Î-zwÚ²¯ØpÁË"OÑá.ÆÁð¶bUÔƒP-Rî†òÕ‘Éd-=¨gÓgdv±!9†Šòßg'½†Þš\ѲýÙë]­{S©@Z›QÀ ÀÔ½éÏ{Ï,¼Yºáh¥G ßúh±“Ôšt5âÜØÉ#ùɳØÉœÚðP\Ø„ŸáóqŸË$"¦¼T®‰‚ôÊ¢îðÄd¿ÝA ö_,¯‰ZÒéI‡xod‰ÔL“–ú’²$_º+Mì[ŬR„#KÆ iþ±´e“Ïw¯tªW4•0îÛŸju æ_s[?ÿCÇŸWdÊèÏCP]ð¨ó(X¢–·ÌÂÎZá ?zé5¶¯k£ez‹—àÖ}![\D.3‘EH(Úœö"˜D8è¿Öâ(çÈ ¿\>ú+·ª*ªè²RôNÛ”[µy«6E±>_Iò­Õ€•ê–Oš@pß-×i…AJ.&!S·ytDcÛÝ3*"(:–•U RBë,ðU·TCY. oÝÍ´@õïàp‰ 8ðËûS¤Ó Øõù+Ù ¹?ÄC ú|Mw l„d±†ŠkwOD.リÆÙéF§÷%±‹© &Y©÷K†Hk(¿ž¯ááµG$É+¹!K–ÍËö5Ôóƒbî=ˆìaøÅe,yÔ7pœ¡¤pbƒÎ®X”äÇiqê oŠ‘[üîø¥ 弞›˜Ehj-Ü7š·vZ³±§,'†>ë ë‚{†ÄVÔ;U™ëö¿¯ë„žå8C³Jcgyˆ‡´”â=L½™·|ƒ0ü/†Â,§²`SŠ‚ø´2xÜG#H[­xÔ‚ü;·–6tWë­€xÏ€üx£ èa¤."ò §z6„r™fG{>(ý1ÃÊ'@ºgweáﻃ‘¸“(»×vkxô/·Ü£êpÌ·0hì¸BSzôòïm²ÐN#}¯j5[?$º+$]¶PŽpÎðC ޑЮô)z5NGäqØ®)uœ&Híj†q²à>Ø!»\Þ|c(ýÈ£ÔqvHÅcô:¡åÙ¹÷:Œø='k ¥úX²øAî0‡¤PË3BÐá:¶ â¼iÊÄÀp—”S©z‹wNýT¾¶´>hÔOó#\6ÇøzÈ E†]tO ÐÀv:¹ÁËÞÝT¤‡ÛÄŠîõBÇéi‘Œu?ƒCIΣÃäÌ·ÙPú ©.¬5X ¤3Éc7Ý.F="}’jU]»¨›QNص0šõ,¬çš8kÒ©((?(5^‡LÕ½_,ïN­Rl"‡x¹Á´n˜DPuˆ5€ò^-‹¬HàkÌ¡MÍû#À«¥œx.Óäω¾ eÁŸòç„­5^IÁûp—ÜÙz€¤ÆÛ3eÈt[¼ß|ñ×.íî}€Ù%OÍ`ƒß°…Ç9ÚD„âÝ8Ê;‹„g¾ÂˆØàC^R šq}…·®Ål?ªZUo~Ì¿wBöª•ÁWÁ7—O¿Êƒ*†äQ3•½w8”õ톔‚JcøUÁÚéÖç ñ´‚Â%Cõ£|‘ViÛg_›2=9bÀŠNs¨8Hቨ> ùL„-Kì†à|-,‰ ËI]ý¬Àº½Å}hÆ‹a‰¥ ½Æ0'Œf1^ÉÕšzlT¤ ÏSë!U„Dw€bD ùŒÀøy:ô=s H÷±/ö(ê‡(Zbm€•|¾¢¿Û1WĨÜg~¹ýQ/ð<ÆÇÃ3Ïl£ô–õß@Œ Œ0#`Dž ƒ”¦Õ,Ñ…“Î7|Š*ÜÈã&ͤ]l«Ãܘ*SÓþ÷s¹ýÚ²-ÞÂÂ;ˆc:HÖÒ\¨¯ônqhtëj-äãÖ…'U¯•¬yôR—ë’ä#,ø´„&6Ô%×I°¸˜=0'ySåö˜à÷'¢S•eZA [i玪TrâLÖê–æ¤1En9 K¢\§¦|<šÁƒlâƒGlŒ^ âŹ˒ížP;ŸMKC-ñv*™qœʶÄû¯ 5j—0ÔS»> ñý`¨ùx;Äô±U– yªÀl¢Î©}Ùˆl¼¢%è(N§¡Ö÷uÎêÛÑŠ­{4¢¨:ÄØ!1¨-ËÒ´ücvлĹx–ÄßÞ%ʬïRÏ^KŽ”~—H"ߥT½Ä|–•äw¹ÐÏö,)]ó,›Œ<—±©+ç% šw‰Æœw‰ýý,ûÏåzïèóáux¹…¬.”½åÛ¸ ™"À ÷gNpVÃqV¶Ê(qþXt«~²"Lœüº§³stv*þÌ_.púÿXÚ¡&ûÉi F†¸KØHÈÂÆr¢ªZöñ`’¹ÌòB8DeòRÞ;&ê_ÐÞ XÛfœTÄíOÁ”Iºnh)#_mt%ΦAÏc-çÜ% •àÐ\íŒä;žG·FÍbÎäaœ7£Úð÷a—=)¿fÂØ»?úôþˆ×cÌ"Ñm>åOì›I&ñuž#€…ãQ#ðzPÑBÅô4||ÒÍžªr©¼HQÁ$Ëá]vDz\îÌ!þÙé4µŒ¿Ôûr×)–ãﹸÓI–ªõj¹œKs¹ÿþª£Ö{-³L>n(Q||ZßIèÛéó£)©šáõRÁ³>~=\ïõ÷ïï²wðþø¾ôEÉ&Öý×õÁõuH öY?H×}üõ,?|‘ÖÛ ×ÓHÖKEägý÷ËÈýÿ—òÄ1\»"‘ºõ¹v$¡uu†¬u“R„×ñ÷óA•üsÍ.ýMn*Ó®Tgƒ×ÛHŠÖlüض4´&`ó®Ûüûï㉠¸î!˨5Û†?Öó¯ç¡œö¹î½èëϵéýïú3Öès=àçíÄ«~±œ°ÝÈqå€l£{b(-¨†ícyú„I](mµÀüÛ˜VÍ¢r…$=0è}½,Û4bêX40U,ÆÚ¤8µ<² QH©º±†ï*GE¨˜„£“¢PB+ ¡EIIc Ðn†Í*!Š;f¯aáxxtíO4þ.ç<Ñ8ã†'g ô‰Æ99æ‰Æ;8½O4N‹'§<Æsöwœö'ï@+Ÿh¼ƒZ÷DãäÒ7'TöFã­iO4ÞA€½Ñ8gœ¼ÑøÉúÆÉæ{£ñ–7àæ¼Ñø€ðᓎùFã“€îO)ŒWk(£ï'Ÿ ã¿Ñ8ÇľÑ8k!o4>Á€{£ñ HìÆI)|£q¢o4NSøFãLßhœò¿kGãêJtb¦7¿¦=ºD ¼ÝA2 etžFJýç”Ý©pA6 Á9ON€àƦª¶!z À Ó ŽŠ°¢Þ}—[3MáÝæºœ [’x`¬xáÝvġҠZüò憎¼à.?ðn´¿àÝ€ýzà]B"¼öæÕ•:ðn ÕyáÝ€ý ïv¶½>ð®´{x·³9ïw;•-x·ƒ3ò»}xäð3âwÖx·/N©6¼Û9}éw;ôè_x·Sçë…waô>à]„mÿx—¶å…w9"øw´^xwžzáÝÁIä¼;&[ÔŸÉê€{_xwl"†wš=^x—ä™Þ¥Qá]*i¾ð.):/¼;;'=´ø¾À»,ð»=F/¼;Ñ»ö» ¼/¼»@EyáÝ6þ ï.Ú’Þ%£ÿ…wzÛ_xwŒ|á]öª¾ð.ëÈ/¼ËšÊ ï.Õél ?Ö‚w”*¼É_, XÒ5ì×P5¤Î[i«(r?u§ bv,kªáGc¹¤6uH“£Eh´+j4!²Aj8 >ÖBa59¦~FªÖŽ8©ö©å‹a€›é! T×Ô ¥¼þQèü$ pÃCàL؇0P¡iö±<„²ïCh ›?„N¹}m²ßß„¶-`øhCìþA /a 8+ý! ¨ÿþ! 0$| ÂçKX¨—0@Èê% tju<„ Úâƒ0@"ÌKèÀH^Â@G—èKèˆN^Â@?|œùïq>„ŠàK(˾„ÁÉ@a€îK hñ&g«?„ÉAra`Bâ÷% °¿à% Lðî^ÂÀ\”i2a€Ôä—0° ËÔv4«1Á0a`ñûÂÀ*ö„Z_ÂÀ˜Ɨ0°ˆ¿„ Hø% P;å% pºÀK ö% l´¯¿„æÅ—0°UW²¡%Mç% ÅóHòù$ TJ0.NGN<‹]Þ•²šøó¬uª-3`Ìö7rئâœãLo~ l vë“gðAx“×M%ð0&É€ª˜²?R¿è\ž0OUE"Ä´ñKÀÒŠû*˜ä±Þ¾õŠ´QŒ‹¢,’ç¹ÙÓÇ€.ÔÚi| zîß”“ £³T 5â¨Ãžb)¦ÆnÅ^…w²ï ;¢~ž§ä2@g /weÙßͤ’§–íC“‡Ð«.‘LÂlË%–BV{Aγý û´§Ifw *ºÞ8@.N{*lMviOȪ0<IJ?ïƒííåYtÊâi>0õL2͈™›ÚD–,_P¥L>ð²J€âB]~ßë6í#J>†M=BD½@ËdîÓm ¤'È»{nÒ>%¶JI.G¬%mÙ½ÿȦӞJH;µª2I ûσì#¶-£˜¼NlÏ5ðS Úâ¿$Å:éÔS:Kè\ƒ`åçqC¤h’žužâÔ¼N¦ ì/—û««õ6ÇøöãqÈežÓé%ºûòØ9XÒ! IŒ÷‡®Ž2ûCRÊ:uš,Ó@w ÁJímÍJÑßêÊS:ñ«Ú²\_±1>ÚÄh:@Ñ…ô«ƒ”ÂYÊ–ˆüô§pA#0$Φ¾5æJ–¥ Ò„fÆ!š;„à>tÔýÏCvÒ’fÑçˆ&Zñ¡Ø¼Õ*>*lÓIÃæ¡§Q9ÍA-õfš±âð¦ÊCî¡f™f-f"Oƒó®šœ˜×Ó¥Ù2P1 § 5³ÛÌ3©b¥>‘QN£µÜ8M©Ged~~?sóÜ›¤ESs7<ÊbóEš’”qƒÃ¬|2ýÂÝ!c‘''£S|Û«¥Ú8s¨¸'9ˆj'ÙO‘‡k!P"kк¤à9™Édm÷ôj[ާ‹úP¼’APƒ‡îˆÅü’ÌSä'„5(@6Üg,ÊÚ^²±îÌì.×U‡˜X”ú0°'sN'Ò¥iŽ5•.Ž6tôÐJ@‡Y˜të¤f–.³Tº£8ÜÂÏ¡ÉïCÁÇt`ƒûšì%_6ÃÕq´sM&©ÎéTŒ¦­gŠxßkè„.L[[N7ÊsÛê)ų5Ç!¾¶o"×{‰fΡ9Û{¯5d² … .'¼ÄÄ“ca‚²ÿ±z{£„×ö¶®ì´-fì£ãç¶uáx5-6лIš¾’ÿV˜Ô#á¶ o|ti‚!Ð3&HO‹ß¿ b5ë*æ–ÍC ˆí Þ©UŒÉsha«›¢žÈóWÓ낺Œ]Û¸³8#¡"ê—@!Û#‚’fÝe9põtè™ðsþ¾õM†*%;Ìõ/öyA·Ú³ísc7+ìNý±šCŸŠ º£Ž®nìr¨ñ'‹K}î(§B¢×ªÚG޹t6“8Þhˆë†‰YµîÅ¢ÿXEØ„xŽ äBã˜åÈòüQM®S®ý¸¤ŠÚ¢‡›–|”yq|l²8âuëªØý’p!v¼’ôßn„—Ç ¬uJî!ápx+À?áŒï`³M¥lÕxäž±DúyzÆ*ÿµ{ÆR_?âéKX¢¾=c)LÙÞž±œj;ãéC ^Ÿž±Äbï¹g,å¸îÉvÏXø*G©ÂÆÎ~3³üG…¶tÏ$ÜÎÓ3V٥ĈïwÏÄ0ÛÓ3V‰¸g ËÏž±Ê±L£øð:º$Ÿ;ÍœT÷ß‹(£¢µ‚Lï,#_së+B<+E?ƒßЃOœ@ô mý—|–)¬‡åRPÉø™¨ô/—l`濦Üï¿Nw&ù-ýÔ¨¾'d£û•cÆZzxüÛS¤ÑAiÑ&Èô€¡ƒNÅ'.+˜âºÍÖ(y¦Þ$¬‰òµßBHSM½AnK˜9Q†óí9å™ÓØJ˜QåSßK.&Ψò©gδaT7YïÜ®ç‘¡Žš¡FµF½‚4+Hêgn]Ÿ~Ûe”K¨&Cmþ=g[d¬M#p‘äçhh¡Q±J-™\I›«ôÁ¨2SÏ®š@F•™ú +æWìļm6ŒSˆ¢=* ]{ÍÃŒƒ¥y[Å-õÓ©åg·µuHz¢s$7y¾`bn ×c™!ÜHöCv‹%4Ë Ö·K¹5ÌñÕ ò@Ð l°¸[åö¡ì­e•OPQÝÓÏá¨#©VH(ªK¾ ˜!¢Nv˜ƒ{Ð?5¥{…4 …Y@^[b}ý‹µ-5:¥û¢*–PРQ4¾uI+ä93jÛp'nLC•ÆæxŽ L3ÅYé‹Ì+Açeéa~F…î©=1ù›ÕP¢œÙMÿƒU™ægpûô¦-^ÎÞÉ^Yýc³yÑ • ]ÅKÚàÕ­¯¹akÒÖ|¥<-9æH±\ÊJv¨~(£Bj´•0f iNf”€_Pƒó‘þ®pú§I*¦"{=ÝÇeý3ÝBŠã4LÕöZ,pÐ8}ÇTôa¡1þô¨ü{ÝØÔÈ>‘úSSWÜyž „ƒØTÅ‹åM--D¦^gYKœƒ¹Ø§[Û°èS£Ó’È“ÔgÚy‡bì£çQ7ŽÅòXˆÎŠ,æu3Æäˆ?Ó,1vr!Õ×ç> Kôµ½æ¦oM!7} 5´>Î ÕÅN“nqÛÿvveãÓ#FCÁuzP†¢š Uº—’4Á˜׺!V͞൫Ìp85¤W³Zª¦â5¤»½¸^¥ËÀ?ÔP»ÅÒI~ŸŸªˆó)ç4"Än·˜ 4 3H0ÖÎEå#úlw @ûèN›P“‰ùQ1kµÚ™±b»Ï ¼9û¼â¤Ä$Ú"Ä ) >”^½¿ÙEe̸0k"ÉZ×AÓºF4"w%¿ ¡iËì64Q± šò—óì²^cýR¥úº&+úb®%$±x÷4$îÀ@²Œe?’±£+ùm³)í(sM ÉúìÀÒHŽSÔÄÊÚ@Ò‘½,ë‘IâÃ+ˆ¢[×ÃÛ|–]oàSÎ%Y¨ì½16€í~D®¢B(£Ù ç™4x´+-n'<éЮ­ÔìRÕO ï‚6¯bX#”L 1höT>ø†D‡²†\ÈA8?p‹ó|jPåU3Ø?¾‰ a#M©Dš>†ÿ½;C£<ðxæ£U”ŒŽÃg=^§¸4Ô§rfä’Ž òÕ–N‚©Àìt{A€)‡tdRº*h’mOidRç÷˜S9º?-jL§‡ãÓÎÒE¸["Mó4TÍ#/­êÏî–õÚ‰‚nmÑ&W±—§›²t|¨' tÌPä!Æ–ÊÄ›HÓFü…lU6[«ùrûpð{‘8°™|“QÀÏŠ KG¥Žny X“ìHA‰,-w+UN$ÊùöŽG³Ôì± Á1ÐY± "õ†w{brßÃHNÎnÖ,Ÿ0*'tÀ‡˜oO”ó Y$-½Œ$‹ ’T<¢&à”ðtÙtÍ_†rA®ajX^°iR-üé–× –ª%ß«°Žá¡<ÐW}ÊýкÀ`€Ös Õ&Ö ÄK‹iä±ÐÖÐÁD&K Ã?°ys<"@éÖ;D€ cY c0…~ÅØoå‚,î» ½°‡¸ÝP‘šÃY#Š S1“Äd,îŠAÝp5Á˳ž<*Y¹ƒ]èvFEÑàüè>×]]8Ç1Þ&Sn@ÈÛÄ:ÎRÙ¦24v[uYÕ¸-NDp“½Aµe½“ æ¹aÁO÷¡@ w AM¦|‹ü(¹Çƒ`:LEªâ21WTÊŒLvW™ƒä˜åŒ+80΀é®înÆíá%Rª¤’û()´aXÆÑÎëiBò HJ…QŽôk8AY, NÑÌ…Q®YçiJ R€ëðÈBhä:¬PŠ)¾bZþ|øÓ»?¸ãÐwÎðZ¨ò ¥é™¤zP,R1ŽüøÉLkT#fu°›-Î_©eÖÕïŸ6¬G®!äh9ríÀèˆSTàÇCÕ ˜T5¯ª#ræFeog3ƒÊ;f35ØÒ^_þ'CÕnÞ>Fн4 Ò¿®9ƒÑfÆ$9a2umDüÄ)͆m‡øp §{ȳ¨ÿÛrÛÔE»ŒÎ)3Å\Žõ¨(jˆ–U3 ¼{À*Š@ƒÚ£¢XYr³ŠbeK®UJêûQQ¬Ü®R&vØ_Å”ƒWE±òeZE3Ù磢ˆ)—ýQQÌ1Õ‰êê_VQ¬ä¾XEz毊bÆ#*Š™éWE±’,üª(bÇ[BJ;{Z¡YÝHãs3 ìib– tÙ®2pey¨+©ZºÔ¼¯G«Òpv5¤C¨TØ#|1¨ƒbÿ€©Ç­UÖÿºÖ^ŒVæaÉŸn›û#}Oå$è\vìå0xB¼¬2á@×ÃhÞ8MO¨JÕ¸¡¹k ñGýNŽï‰¨òõË yÄæÃ?†ˆ?È^2!å—K ÚÃÿ:ñr§øÎØšȹ¶S“8ó2™½(x‡äìœ>x@®¾æK-P·æÙFx9êØAìÖ‚5—´èEþ®šâµ;jÑ‚wó {HTÀ Ž^0=£¡“Ù—’e¥ݲúJE¬ ®»ž²DçÑV¨ÉLmq?z2ötƒ>r„áÆÌK˜ñžß¬)™(S<áÊLVþ«¶b‚¡Ù^]õÙȃZÓÐÄts(LÓø£¤›$Æ¢¯uê¥vÁ˜âžCG[ßLLÞcÒ{†E²+;¼‡D[·,ˆ´ç-ˆ.ý‡Ê}¤U«1vvŒ3í(Y&á˜ì@¼q–LÖ¡Gß?Ù“\åÈ‚õ¼ a¶°‘IÇÔ0"œó„Š‹+ùèJU-#†t9Cª9ÉÚìÚcÌÊÑ"X@ÉÝJÌ·[rWzF[Gå”Ï]qÓÏ›1wƒ¸t^Ö3ä8™ [Ckr°1c¬;×265šæ/—Ë!“РaÏ€bb†³3„<¶,d1¾`ož¥1ÓÄ àpNE¢Å¼œ¼#Fífx]Í8ŸÂ X¾s©bZ± ç‘snU–{D 6+|Qv}²Òšäš¯jÅ,È‚%à{¯Çr¯¹7çž"hNƒ¨¦å€/´]ÿàKÚSgf{ò8O–õ½³êp «Iu>nЭᶙãQî[¬ºyÜ­§ bm€H\d¦™9 SLM„?*Êäνþá¬Wv¹b2‰#cR \sGóx”ñNÆ1ƒ  —,*%ú§•E z5J:˜˜Â”Þ©Vϸæd½D‹%éÚ$fvc{{¦w÷ÄgÊÙÕáãƒÆÿ\ÏÐö®\/o÷Ê¿_ow<_n÷t—Ã; ÃEÍ ¦›»ÄÄS€x:Æ88ãá;SµïU5C¬ªºü`ÔUD“½'¹ì¬Ÿ;èˆCø–ÍŽ¤²'Ýí5;Ð%cœNYé®ÉÚ™S ë—çn&RvOÇ|†Ð '›‘á¿'d"…£å(*§=@_‹a©J’] V«>žáÇ‚º<¯¹!Í]¢À¢À ¡ËgY (I¨ßVÓêÂ|I²x.+âzÆG}+Ì©§•q™&¥fÆ#-†C@Ô+2xa>Í0·‚àhA"Ÿé%^lm¦<- Ë‚ú[œ®".«æÎÑXI ,dlg˜ƒ#³„}¢é83í¸ òjÅÄ~¼a< ³ó;GV‰fþ9Œ‰4ºÛ|„¢Pkï‚xF8N›«ÈëÝó£7tb$­hÊ`¨çmð´PÎGÙŒOÔâÅ lLÆ1sŽkœöLŽ÷ÓAZ7ùG°˜·Iì–ý6ž²]€D4‹kÛÛûÃÓÃä°¼Þ¥4[u7=p¢Ò¾-!Þ€‚­M/CèÔZÔÖjñœfÃ>A'þ}v”á'±É¾ôм¾ Ð?ŠÚ^²–ÝÍ#i±× ÝàÌåeÍ*G´©®ÐMel£Ñ(°Æ][9‡`äHÙÑ='³Lm˸nº,Ø0€#ã¸0²3X»×ŒI9¸®¸¯-R „úi¶ Ưe{èÝïáÉÒèÚSà?÷’¨r¼×ÞVÒž½EÎC¹ÓÂ8â‚sN5Š z¬³O•ücÙäŽ.¼£°éFdPÇ?fóÅñ`…[u<Âfkn©ñÙ——e$Uäí}LÅ«d¨”†þyŽi ÃÁ±š0\8UDáJ§ ƒÀý¦õñz½kmu(¶­ñ±ÕÝ5ÐDÔ»ér3ˆ¸¨ÓC _å0¢±ÞÉÓW„‰Ò‡›h+GÔ%‰ù fb b|h|CtP+¿jsºå1µ`WWFf7 HØA¡·ËøUõlXy¶  ÛÓÒÑe…øîiØ";’Ž«"ì ¨!&ñQ»ol;j±ÕQí>š•KÜã^>0Nõ¤¹‹JãC-SKŠSÕö©Ëä@ù©RŒc6‡] œOk;Òâ)8—‰÷x²i¬>»›«ãßR›dª“®Rc:ê̶˜S(U›Ì!ÿáÔñŒ ¬d3xP¥ôÊ×[0ÏÒ§JNîªxJ-èå†ò"k™¨ ˜}WC±hØÞJ;+…ר^•êˆù„k¿ƒxÀ‡,¨Slg¨3¨²[Iö©Í/¶GºÉ”#ÓjooþœÑŠ™¯h )-<¬pƒ¡Ùnr 6Å‘PøU)Tz-Ñ£¡å¦ZTz§¢ê!knü0=›‚Ùt4‘+5æ}c¡©ÌÁ$9ƒp>¦†§a.ÊJy(*)Ìû|DØ* üã(·I¾Œþö£;2únVÈF¼ºÝ¤›v K`¨•< d‡¿kqP ØÃUb0-·y…duì%¶züFÁ€Öó E ÆYϬ, ©§8×@üu”Jfpt¿ù4e.ìвÆÔqgXÊ,´ ¬4©˜vYáfá P+IˆØ{–Ç #ç>ËPoÓ’{¼„–ËdÜÝŸº–óYþ|ø±=´Áü÷U¿¦‰A†sCHv§ 7f`Æ[\™Ã@ø;ÕjVYpp+uVbê;Þ¦’R0†;&B£q—T¥¨,°{ÍÃóÉ7ÒŒa´`wÕ¦åâË>…»C¥Ó-¸äÎêK°':w“ÿJ£8Š«Ï Õ¾› LË­³î6²†BQ˜3ÑBZÕ”)tkG76²XÒ¯)Ó"•ZȺT¿X&¯N|+Ìë†Ö^À.Õ®“ÑÚÁ ‚<Én Ž¥ßá¤âÖÌÁLÊw°AX ée¶RL£4\é–[Ÿ °¶e\«Ë€*N »€âË€YÖkEÇât¶v<ðÒæt‰g¡A8©táYn £¯늀Az~Ì}S {B+ûBÓSíÎH¨<áßäÐPÌ ƒNÈRÏÖO˜H ’Z7Ü ™ðÔ×%È Èô^`#'"ªcrÔ²U£7Ôâ÷ÑÇL–:å š’2ÌLM)»‡„¦­DÁDüÔU¯=LÅ´> Ð$+=ËtžþØ £gõ’𓜄§`‡³ÓQ­$Õ‘¦€Ü)K„AMÅk~~Ti€ꜿX¶ª%î‚}¡5&St‰†)߬¨…nàiP˜½-é:×nƒÁ“Iq¶¥º@®i×sUZÃ5ͬkÉ£Bk†l?Y4Ä"Yê.€ìýÖ n—As¤<ÀÐÇ#ÛÖ eÂÀ1·Æg"@«÷ˆ³ÑDKfôy<2Š©'Rß H5B“`>e„ÔŸ-3Ôg^阂m°•扺ÃR<üf+霩íó‚Êïö à‚Âñ–J‰înj*<æÖ°ÉÜ·÷e퇄EÊ= 6!ÀyZUHfßÊs1˜KÖ&)[µ=uŒ…ú-‰Ë ZÆ–>WBO÷½ïã6wX­-~nCz3D}º–DµîåiË>p^ÒQTÙEÚP1 Ï´Ÿ±øKêwé©3ž®ÊΩÁ2=ŒÅ´?í€(ç0ÉŠ§.tòÌæ’ ,æt)‡ ‰³T£æ'Q†`L3ëƒ<]¤Ì+†û"K(ÜÒ€>š»"!•3Š›7‡w1“Va$,c±38;DܦƒÙ’Dpþ ÞØ0”O•zŽ·+o[J¡*mÈQ.„W¤˜WœÂŒUm|ÿ|iÛãÈõÒ ÜC»R´šYf4’kM«t€Ý(Ú®ÿ˜ƒþ¦°.á>SŠXˆ¶|± LÖãlbwðf{tjk ë/–ºx¸ºE}Ø à!A¼8’ãÔiÆÛ É™Çg`w-Ã’ 6”ÀÙK€O+¢ÒuT®hˆñlrix´ÞþÃF+lÁeV”>·KFw;:­0wWÑà¶Ð'Ü,m<Û2ÝÛ–o1gVkFw¾˜»¯Ž↟Ÿä¥Xò@qàv¿ò@¡/ŠÇ Ü›ëŒXE×Û:à¡A’À{=ÿ½‘Zäù\®Ÿö@(Aœ“G[5Ô©@57, ËbÑl— ÷Ôʼn”1;!› ¤z~Ñ…iY gNõ'&?£Ê|m+לü¯FÕu)Ã4Öøf.ùaœÌœ=åššU¹å¡ÚtÝš”Uÿ°3q¢®ÈÞÊžËPg —ÿ¾‡ùAÍâL>5cîAå1 žYg3J†êy@J2Ìæ©™¼”¡e0Íí@rQu÷8°gãxêá|‡"¹½DÆÒ"1Γ ’Âu¸ý™ÔõD‚|1q2°Ûì¹ØF®®9ÂhNrž±`{bG„]ƒ{ï™!3Þi„3Þ피€eÈõ9ZCå\|`¬×BʨÀÂqm¿Xö¡%ò9ﲕ÷i~öÇ7âJ^Ù»„1}–ÚvÏr´¿~h¢¨ô.Ï_?ĘîYî©Î…åþx7Qã5>– ˜>Ë:ÄBà²UÍïÖtïg]dã<ûgIÙ„w ñYjZó\š±¼Ìï×<1ÔáY.‡ZâP?KFmÏòÔχFæûÍ>û~LLž%éï‘׳ 8–gÉìäYr˜Ð³œõóª‚]‘Ïru…½ZB#ÿYîöy Pì®Ëñ/—ó_,ßû寞ûÊ Þ¬kƒÃSX=µr¾î:jÀ¥ìæëA—²‘'¢HÐÕê7¬ú¢Ê›rÒöû׿N7orÑS6§^çÔdFP–BˆfÃÉßõƒ+=ŸÙ¼È‘ ’–é㸘8Ðcº« –dˆ –C°;ÕQa@:C:hoê2F•¤’.J’Ò²“S9C¦[ì?®!OY›Äÿ C:¢â«è#=uÈRU–R(K®ÿþ#ž£wHj0¶gèRõÇŒ*t#¶t&34iøãb›ÕÀ¤dµ˜D«½ÙƒhµE#¨T•Ùf3 µ–ñªTšØÓ êЦÒfy¸ ‡R‡X7ݳèá5„DË%Þ†üëÇ’DlÐ!©€g Ä^/ÊÎiõÛŠ¨L]v³ $º:·ÏbK»™üÚdîÞ„qœnrÙ8–êyٲϵÉùÊ.ÒÅ|à:(N“…FB¾s¹×foMnæýRQlm³ÆC™;åÌ*-‹ueÌ* ¦ö¨!Ä•ʧ¬)ÚGp™GĤ=‚.Y‘btÝMŒØˆ½Ù>6Ò,–ƒÜ{ [Π×Ð’Ø?!ÏõðÄQ5÷278õ¬àýb™/mlpdÉÜhÔåíô£B‡o«ïŒ¾†¼¿zƒó- žx´Ó™ì‚¢©‹cÓ\,¯ÈsYÜbs·ü0“¨gª¤”FÑpáŒjö°!ÈõíTÙ°uàÜçé^ËÉ6µ#í Ë03}ç›äÆ ' ü„!Ë"Œ´o–2óØMté0%b–Ñ¥«›¸nÀ‘IŽTðx(Ù±ØãQ%*à§€_,³úcP¸t+ÅâË Pö£F5´aϯ#ï\v²yÇ"Bæï€|SsIÒJAaÛå݃«<Ê)x滳j³Tô‹eΡ’ 19’ØjTÀ»;K@[t û½§ÇÝc5´d®DÕvcÌØh¸ÖÂu45“±4æºSÔÕUpê+žÅ’;ÉŠÛŠ¹+uùhAø–2ÐPq哨ÓÒ¿@â·™Ùo²% 0·ÞîÄ£eÙz NVƒ BÅuG0oé3˜0[7½£€¸ÝˆH›më˜Áé4ø@I´áÐuwù \Ûmð[I¾´  ,?bã§àuNe{K92adaV K\¡Dêè´#rGù=ë̃¢yÒPë([Mõ†Î·„=‚óævÚ^óÜî»…dÓ”—Í:g9~h¹ªj÷Z¶gù“~sS&pwÀö9â(A| §Açâ+ÇXsAd1FØà»Ž1˜$c¥mqC…ÿ&lÝ€ìЮk]ôb¼ƒ‰ÎS»Ã;¹“[Öpa ô‹åÞqvœ.C€„µO£›x¡U>H ›šožxG!]a$ŠÈÓ€Ø^<Ýc0¼mÆ5IíFø*ßvä¯ÚdLº£¨µ¤âAôl±ë>ƒk‹Î6¶ò%‚êGš„gP0¨ðý ô0ùoc¦]‚)`n“Bt&©xe›³ ŠüdÂÈ Í&×·”»sìÉÞm‰.îÎΑƈ”‘ozZÜà–j‘¨ ›åºªáa?y]PêD"ú›Kè Ë(“[Küò êr(8¨kÖ¢ÚÌ•©ž ’·Žïr¯hE‡Vz—fÜ-8l¨Ñá í½Êù#;œò¤V\xìG":êÑ4½¡Rãå<„G9ްJ4!BþŽa7¡¢Säâ‘' ?0{K»•Zb{ÉÒÖ"ž¬&™¡)êöÒŠÌòCZLnn£i Ï$Of[O›ò•/žVæ.žþ\ÿ¹Ø? ›»¬nÏ!0Ë2•-#Ë#uŠeK}£eX²…ïW~ö 8°dj0—àó2›…ÖRäy” §zé­§€Ø„tM+ex§xÒ,_K8›J5ùiÅ×é6Ô»™jæÌÊ %ƒˆ½ ˜M2ʵɃê C›Pëàv8(% õ«q“cÛÊÿÓ+g\I©¿ãŠ Ks–Á•÷±ÜpÅ=‘ÿËå •+ Âm¥VÅÇ®6Óѯ,ly»­¸!­\[ñMÐòM€ºk¼% RÀØ,ǬÔ'x„#;ô̦Ú=*'»Lé< FÏÑ4H=çG¸‹þ­¡¶ †'Ô„è–æ4ë¸h¹`µEÀAS¡UHñÎ*û™£ò¡mF#ÏŽ¨Õ* æ; ˜’)Ëœr¼E ”ƒ®Î#zJ”RÅ0i¨Di%ÔÎÒC§€äW¡.¨ê¼Ÿo|$jY)¡aÍBDÜX2©à}œjVñ&¼_6«x’K8­½èZî’õX«,Tn9,-¾:‰÷ð\Ô,6¥ˆ« ›OªŠOã“þ ´¬•îl-aÕføû«œèJÔwg/‘1ä Ve.QÞ å—-y@ˆ8©~x8~§6Ç?¿T•yYš j˜ÐWðEŽÚ1ÁÜD¢.2¾+ŸTæÊWÊ €Cy4­²v¬ð¸xrÇ«™“|8)-B!ož—~@N9ÕÚwxÇ “‚Žw£8Éáâì[F½)Ùžâ;²|ñôÒVÔ·t<3¬oˆäØRß(Ëø ØÀ$µ­î ¯n!€@‚³éH:,Æ3ìç°MƒîÄÊ’$k-‘^¹;l¹Cl‘PÇ£Ø:5W9aÛ~çÂÀÊø ôò²i¶¬‡ÕùƒM ûEqÙ”-€„S¦5ÄÁ6\˜Þ¥ ¡;Ì« ,›}Oõ†kŸwîUÜ6€8lÝÁ}® ªé„¡×W'Ÿ£ëp÷ùäFÅwD©µ(Ð=‡¦©)Paòq7 Ç¿œù‚ Âȶ⠜*ø”òç[ÜäÔ O$¦,-ìã•>ÏÓ¯A©øSÞÉ%{?±0f½òX6z?ÓïØ "²fcgåµ2p"à¶þH ¬±‹gVBWbOHh hºû¦ Ì“f41`Vs¾ÜòDH çý㋹Þ1\M€¼Á!­)r*ð[4hÉZ&7LÖ®Kª–”±k¸È!vn° #ǰ™z”ÒèB$ƒÂ"ÖºA”pXí¥bÞóÃr~y~ïÝéÒÙ @‰^¸D µ4M"^fMÚéÙõÖ oqsþføIå3˜¶BãÕ8dNššµe=Á26ó¯ÙÖòH쪳î»ôiˆÎÁñ}õÇ\ÞŠFåcé Úi0¯ðÇ•—ËrF<Õ\pÀ¶yd—5ó0²}éØ\QùB-;ḭ"¡}@_ëÅxw xèM-£jç‚Û˜p;˜S­Ù( CëGxÁzDòéTJå09‡omrÞ^òÚTHÓ ÂV©¼x—hÇ€^[Ð\íúªI0|ÈGXdp즢ƒemòÙÀ—ï/ñ4Ú"጑~õCP¬ÃÁ#.n3;nþ+0—GÜ;ìàÆÕññæ¼Ç«¥`1”F¬‘À–~ #Ö8žÔ7lqdò sæU²r™^ Ñ¢x]Hþ}±m3*íRC½õ…³žQüñD»qn¼b¢W5 Màn`óFKymõ£ýæ2’p#GtUÏY^(Ñ翆 X`a?Vú+ ÚÕßååR0ÞÚ¤ÍA¥õ7—02b ÎAÑ7ñ‰ç~—@nÀT„iDÓ'è ùÖ$àææîÉ‘I]Qç¤Ñí’Ì"­°º ŠzHò«š ÇŒOѤT½å &ýcÛÎ’ò\ÀŸèŽ5é7—™¸Ås¢üÑ~žthë7áýóž°xxö»$Îâ–_Ù¬_nªP‡ä±ÒÿŸ®7IŒkG–mû…†€º‡¦q8ÿî—Û2G„òÝßʃ$E÷^Xokæ5–Í€Æl§?¥ÛB¢%JeäMòg¦¦L#‚p5E‘ή5‡¸³Ñ^O}rzsêÝS$˜z\ôui¡¹¥Z¡&GŸ–¹ø7[{‡FgÒ¡ŽT]Ò ,Šˆ¥ÍÁ¹*o6 €“1#ÏÊIf5·’ \·ËÂl#®¦ïSTf§˜ *L{¤¡"ê6?²Yô¤ š²×eÑeõ8Ô3†(±…?ç#ÉÝ¥F:S•fÔ'› …-1NÏ*‹eämy1ì£@QDî.ÙÕ$³iw¸ØÇÆI½ïíecÙóáMÞ¾<¼e/=Ç÷ÐÏJÍÙ,~Æü¹à–Ÿ¥òóCÁº(~»¥x M˜A¡'½ˆï\a—ovç|—$V^×qÖº%öw£ô;|ªÝIÇóÁwÚK;íü–ô.*Q?±l,õb&ÓáaUȩΆÌ|yÆÓœŽzSÂ^q(€BÜ5ºqµŠÎÙÉZ0zh3¯Ö¡«U÷ÿÔÆxïýëšj?ï‡YtRvN³†§îz)ÜéÑÃ'HÉÁ¥NŸ.-?܈³0¥ Õh7m¶ˆ ©h‘áǸ¦-¸†Bd¦†QV^z²ëMOÜûj!k™' 0žBK­ñ.^…3.ba°¤¥NK³äüðÕ¤Î/÷£4z™õŸäBiÎ*0[æê¢pób‘tÎ ôàSPA캯]±.»itw›ÇLO©U«$’|ÖÇwYO¤ >õSÙÃ鯂äH‘Îôríj?ÐtCR10Иs?^Q{óXœK†¹ ÚÚíÓm‘r¦ã°}·û„îFê¿\ÝÈI*³Hõ‘å¶•eMn/n@ÖRÁo1¹´O?H^úÌn:k³×ûÙÎS°´X*+g~çJQy)YFᣔ9¬¶8WÃ𬼈 +Ù*w# )ìÀ/Uàæž!¶æôBøQS-&…ÒÁW=gàÁ€ÂðAy;(S ƒ»JŒÔSÒ’H1ýåÒ¼z]#òwmy-÷سî«MpS|´{kâBÀ'%ì»v£—ÜùBŸs‹ªÞ㻤Ø$¶éïK£m†yÀÏ/2@›ü÷ ¿€š²mÙ<@Ë`dm”ð ¨é‡Ž„é#®ã`ó-ãñ 0öw)‰y›y%>´Í´ Qœ’î³jÅÛ<@Ë :ÕüTzñ6Ð2øçÕ8ül ¥Øì6bÁ/ÀæÁ ÒÇÀ<@ËÒ~·ô6Å/À¸êþJÇqØ6¿›ÄBl¥™LZùØ<@ËÒÛ< ¦m’Þ^)ë«Òæ~iQïáq¢—ñ;_Ú ³°-Ì=ˆÆ)Ñf4”âú¯'Ÿ¥T£xAŒD’wÒ²„c„ùIŠ’6K¦‡CÍ€ˆ¨æº2ÍœCø¯É³ Ê“*‹²/I¦Òõn=[=øt¹Í9äîXKJ K ¦­ˆO±xÊQD7¥"ÚcºDÚ;hqì´¢Q׎ï~xqRI¸ 8ËÏRßìRl0×Ü>¶CÓWÁé K}³±>cç{`çIaNþZþ˜ÂŒÙbîç®r5ÁN¸ÊÙbNï)*þc ®r53¸ÊÙbNKµ”£QÊsZväGqÁÓÝn‹9-êàÄt²Å‡ Ê 5™õRÛL©„TŠh^Æ7wG5\ål1§WL=ÉäÊ%Í™ä$Îß¶˜cC¬ß¶˜cC´ß¶˜Ó3S,æt0ƒ÷·RçG3Q[ÌiÁ$gc¸ÊÙbŽe|Õ{W9[Ìé¥1·<š+ü赜¯—FwäxÊ9Z;O©A‘øþIyÄQMlÐt¿ÚP¯³Mº,JMÍä#ìEþó ûq{‘ë7Gp]÷sÖ<`æ•·ßö"×çºç·½ÈÙñn «º¤×¥þr{‘óGÔßö"ç$†[šo.ìÇíEN,.¿íE®¥ô\òšSKÇ^äZH¾Õ;ÎøXïØJûÅÕ5öãö"çP‡ÄN.íé•Ê|J>[:`?n/rmÄíË\Ë…I†öãö"' ´ß-çû²Ÿe¯ùÒ:ætàLŽ®ûQCî+¢e;Fæš=ðxð[/må“.ziÅ˸¹Jš`H2]˜Š¸×xxbíÇ+Í“tæêèAƒZ|±ù¹[š]èã(ëñI ªx3¶±ÃÌ;S•HsÚ rq!ô™x½¥ôætnÒ·ßryÇw uîb=sSþO½æsìû&Ù÷OÊ83ᬉ©­Ñ eœ–c>ÜylÕÃõZtŸ_¾›Û6“ ÈM¶‘/Hǵ^×:¢A 57XŽß6òþˆr¬öG-_‡ZC¢X’X®i½¯FT»ËA¿’?Ÿ<¥*× Ù!ˆðÕ¾@A¿gì!ØäW+•óž~‚22ñ³<ÎmµÌÀîeÊT²¬éõr3Ån_ËV?ÛóoKNjÙ‹//-ښ˧ô‚(@K™=–ëNˆí|–ÓÖ¶¹LŒ—nŒz™<´\Î~rª¿z¹jíåy¹I,Oÿwiüš—·¥: ËùÏÊøK‹Î}-o¾´Á]½./­£†züÃtݤبH•º@#øVëtá%¤¼â|R·®D¼Ã㬹su7/ Þ?0tìw±¯­ªé¸òßñcqa˜èªçLU…_ܨFL»ü½BO·7qd7¥ãù·é6(Àÿªÿ“‘¼n?<á"ç•踋څº‰ˆ¹üo;†úÉÜu~žeO3õXÄ saiás³ï¼ Çž.ôg(Ææ+XÛïܵS»67qÄâ•lnÛ?¢µ¤ !–¢=TýU b|nù¸á*[†„f‹ï­ÇWÂÎ*Ôs›—ñ4Üâd4”}Jq¥'™¦8^†—s±ÊËP7Z:N¯&µy}έe¥y휺‰ ú£íRµäNT1%,ÜúÚ[í-•¹¬T?WŠ4ŠÃ”¸Ý-2úA¹×By]Ý‹x+nTù–bw$©µ#Z·ì~ä¿î˘ât<¢´¬h,U"ÂþQò·K©ë⎷”)C§Ò³ «R·˜ ø•Ê{7%Çú†´ºBK™übiiÓ"U'à ¶c8x4¤ÐÁäúGùO0é\&ÅÑ£[NùwùöåqÎ4½/©mùͺÏöåVôàîYDÓfAç[Ö?ÉÙš­¯û"l[ƾ‹õ![6ר^ë~±ö’ö-ZCNÀ†àø?¿P7Š'R¾Ãk{§)öOºmœ¸CIršÐ…¯i .îjvDSª–ÏyIYZ(3-uÓ2¹ù;¤±G ›pñ‹Nu®ÖE#%¥¹^mCi‘if™ü÷›¯aEc`ú–{^§¹O2†Ä¿#P oã¿Ñ-„‹Žû5RvôXch<ˆ ºJ…z3)h¨%ø{Ê/qS{ŽL¦êÀÀ¬ªHšBHõ¼.è¹ ³Zó¥m¬óVã¥mަº’Ýh=…ŠŽ‹ãs¼ØðY‰äë&+ŒðixÛ-ÔEŠk=·i³´§¯õ¸™²UÚÅsjÍWB_±[Ï­ .,Ýõ—ë䟸¸æªÿÄ8©s¼ƒ§i¦Ø2cµÐ’Ÿfót™[D'+ÁèØ¬û®H†ã•ºÑ¡ØÙ²¬i´}³ÖïªõŽ»[ñ7Ý̨qí¾ÝÛT÷Ø[Ëá5ôª®§V´J{1¥zˆùÚ‹Ó\¸¼±Õ¦·Z¨˜×l•êp+6Óß\ 7c § Z= ŽfEwÊ&S@O3¸µ yÐn^ÔÔc—¨”ö¥°Dç7ˆ„¨"ñLõðKk„Èã—o˜?Ñ‘æÉ6qÄ4z¹l„–ËwõH[ 5ã>ÔRœª p ´/#uW!Có jU·Ãc_¦Ñ…Bsä®kyoIC ¥f‚[’Ûô¾FÉJA|šÇ»¼Š+®ß=^/(4È’68„\j ‡¢ÆvÑ7ƒ\oÉE™ÊÙcCä°7l„Š­X0ä 1Nmñ¥3.#Í¿vŠÊVc¸Yä}ËáIˆxÍ¿ÌÏŠ| ”61Ǩ„øÉc<˜´^¹ÙFSÌô¦;VóOò³$ÓBBwh -~wཆ î5;~oz€]þm M ×¥c'M¾ìŸÐÁ8 ·'E ß~Ó¡ í(+Å©õýãÍ«H eKÀ‚ZM¡9h9€“ ±cÎÄ:ô@ÚN¼¯nŸX[‰ŽRMìz;ë›­VX°šKñNišµhŒ·’Ž7Bd“×ËðÁ*éô LZÜËýƈ`e¿A@C,/‡n!z\³a—Õ’RtqÃÞñ…燗M$Þt’§'}|i j û Èh#oK?øÔRïZIWÃßÜÈÌí¯ ´Ç»Y#ÀÚù¨7Äñ—#jWQÀ¤~ÕIA]Ó§|êºñÑFê!ÞSÉL#‹ñõàZMJ/½R\‰TP¿rºò”Œ$£+th§¯™·Åò¬<äžÛuèÀ¼ÛŒlëÁÇm±Íë!1h½|TJzú^u:#VŒä²6ÅŠj.k|ªiÛ2dC”Q‰çU¯*‚“Cry÷\MC:4:×ìϱ¨Å× ]Eã_7zd ‰€£áOt=°ˆR:®ä‘‡CwÙ‰&ÖíFo6YÔ=ÊÝ1šÎØÈh\錄@Œ9¿G¯ÉGnô‡G¨æ¥$GYÏ„ ‡qS7OúOŽF¶ÚwekI@X÷U‡”&[½1 ;óuÑã>çùˆ<·~Ú|K^{´cu“µ”X…ÜÚLwêX9æx02¾Ò’7pÕïKi'Ó>ÏoÕ.Ù÷Åz¹»RíìèæÒtS|V‚â߯Kó7ߦåñ¡Õ×õðÙÀåÐn?<åÕ8“‡×_‚ëÈñéavÁ¢:ÙöÚdÇt6!ƒÜks5Õ8·ZìÐP±#F—îõ;ðýRÔd]ÝÐ×ü,»ÿDúMtg~´ÜDy'ÄQÆ]‚º>P»ÖòÀÐ+÷,ìð›™…é2ïÅ\øYÐ@5Ëæ^¤­Ëhâ-¤µêzbi–\Ù#ò@9R\ìÝBW[¹u ¹”z6"Ox*ÓAŽpÒ¡è6 –ì„í<Б}úÁ_Á¾#Ô ôb_.còø»CïM .œ¡÷¦»å 1IKOXÎß7‘ç‰DããXØœå/Ÿ‰œ›]YL}„ãÈj¬†T1-– YˆZ„!-[SX+"KMMbÈLá] ® ½Y‹¥¬‚Âd æ*p™(ÁéWÅ9ºéˆü†Gº;ÙÅ"<@ú Ý€ò˜¹>¬Ý^Mq5VK5ÎÚÍvˆ˜[Ó"=pÀ¨ÆÑd"~ Šb_6ÇbÄå¢Ì?Yõw•ù;«~Ê|Р¤éÝóLP:¦¦úár€Þë—AcqRó½“nÝbÂ(ÈÒPÜêî Uß.óäöKd„Z°I‚ç‘×d×g’}6÷„:“Ô–ó= Ê®›Ö~-÷M©5r¹2óŸ¸(‰èd8¯)Þ›öerz5ök7‡=‚5GˆÜó+bŽ@#Ú^C\"eÙºªµ †ì„vÁv"bf»6z÷üÿù…KRAú£åâ*sª;X& làr³ÅT´3«#fÜN©5Åt° ¥'Dvƒ‹UÈYÞSñ‘úQK·OOóë­¡}„Håã[}ë§÷¼Ó‰]ræIõõô8Úì=Ma¯¦æckÄÄø‹Rxìr¤4$@Úç_+ÁÂð³Ý™é¹ô“âûá¹t#WJ2DyzüðUÉEvÖm¼ÈÞ²«Bñ„…Ù[ÓÈX>+¬±×¬åcž•Z}º&ˆÓ¶}ˆ,fªrC‹laÑ=¦æˆ˜™ÖD¸¾‘ ‰©’t0¹­¬˜™®“Xß…Ü6ÙàTBòÛ=×ý·å¸µùT©1UÅ(ŒKZÚÉ?¦$šQÄ„^¬J1fÈ65ʧ{µÎÁɵ£©Eâ4dUs=!×n+\FCN„=õÝ.žÍ ÊJv†…H§ë®<:1öéî—‰à§â)Cð}\Ý’ª´¤®—™sJÁ ¤r^½ì,ýðT9Æùªzxƒ`Ît†zëåÅ%I¨tÿMW==é)”oÜ Å¬¹8nÕzi¸¢éi™Û çÑÌ^P«< ŠqÕƒ<\Þl"Ižw̼º‡ëb /µhz »]žÁMqI»§ÛMŸÙ¥ñ–VŸ2$¾Î“lJˆ¬ ¢.È3a¬äBѸaËc²) \Ä{&I‘1á?g™€ŒuTŸÝÍÇïÛ#ŽU©÷´ HB¼5ì”áGJ¶Ó¢¼êl÷œy ÚÇ…wLFâï;ÏlM׈쉟ðÛßÏ{ þiàhzZÈGÓ16Iª™ÊS ©™„))äë°å³ž±~°šK(`l¾~íU‚`TX;á™…7y„š=Eø²HÓ¸›1“#@Òˆ;!Ȧ¡JdzNè"0DÁè†GÍDch¢>Þ|y*—IÒ‘BSÈ" ›ªçÂê‰[zêêˆ5Y¼Ûc}êÿ±þ£“B$k’!íb-b»6o,K{³ŠÕä&j~˜Sq;"GM^ëT+s›n·Ú&êlF¢ß=f=B£Çã9æ=Åkïçé’Éàà‘‘mxvåubˆà$@²ëR’i•í³ÿJžå¸º|1È>µ&SÏeö{œª8k¤”±¤]ãÙCZYzþ¡§q*jªÙª`ì9ŸQL)Q8ŸðdNÏ+Y¸"»\IµTʼnÖUEL§MóŸ|®*1§¢Iì8NÂ.MZ!qªØõL’¢R ¨ÈúW5§LÉDœ2Û[©é‰O>–-rë¢ôžä’­÷5ʰîÕQ¡mh-W-j]ì×§jvµe,&£AÔ¨v TʾuêütõšâÔÑ€#½¹à #NmK­qìÂG&ó>ã¢ïé~¾t#ʼn \wÓJ3-Α²ã)˜¶,é|`##j~J­n®îÔãï#;’挫JYIÝÏÛ˦å46nfuàUd ž¹Ù˜\ª~ãCÓéèûlØt·Ÿñ¿¸~°‚j1''dw¯‡bl¦Î×åˆ+U\‡òƒXºl™ ¯•Q?±T"îyÜìÌk—Ç·”—Ý`¨¹0üó±w€c®7•$¾›/gxXLm])±)‰§:&E0áHvj–Ò€þÔ2¯ÒSl¹¶gfÊÝiÁÉ€'0dìkfƒ¾éêÖRsîµÒ­iII]ÚéaYCµâPÜ+/¦]Q@ƒxhTon©žJ°cÒ?Òˆã€9ªgo®1܉4Qu­E€{b±pÎ0kG¡ž€ú˜‰wfLÖ'Ùüü›Š$:-ðPJß"àY5kýð–’¿ž¦¿âáMuwfñ¢›úƪìéöÔ pQ¹kÈD€‹k¾X¥¹ƒÔÉúU‹³*2ùé:'‘vÀ„”4j´¡’,âÍk^°':'Ž–MX…Žçè´Õ74qÁ-xõ¹é†Žì{“fР5‚‚[,Œø}ÿ³þ“Åq—`úÏkŸtóeÄ•áçvÀÛL.<#/®@±ódß’©Ç0=&¼æZ&þÒ±ä}dC™°sÝP0ê<îY£}’l†í“ý93’ô$9U–ñ«3+H¦H—L¾xÿ:5b¦àž±TF°jžwÄ TÆEþ²,£A®Å¶H±q‰U (™qyÁ L;ŒÝð2œõ¯q@D&=(PÚÎTÇr¹ eVê‡ ^4ú¥à uIIËP7ÒÉ.. Ö¥`h)gäÈ1Ò„W ŸŒ5éhìOUý2Ô C;dh"½5õ H…t²>‘”kxNrÒA®Eä@ø=E­;%ëI ¼Îð>{FLE$±{Š­Ó/e*g‹Hb=ii­~ ”-ÔeL¨&݇ÔËÇš8,¥RD6BÐ(F¶kJ¤V« ²‘ŠÌ9úPjEÿ«ÓI†ug&Ós#Œ”YÇ™#ÙHSúdºN$ЉÈc~Åʉ†)G‘1"Îñô½fóN-®X3ïvk÷‘g~Të ÒôòÌÁ€`  zVãƒÎ =¸V‡3Yꚨ›•Är‹®— [AM†Ýä±É ´Û¡uÂÞ­>%‘ËN·B§Íy´ìZ’*h»ªZ[^âô{\)Å™å Eu1œ“,ºFÃÀ æ¬Be`¹ –P®æº­¼¹Í¥‡Fè¼QcTœ}.gñ¶£-}m~3Ñ›iNOÈìÙ8}èü*X›=üðLµ³êÉ@Gþ·6vÖŸ°P¦‡žŒÏô€/Õ‡õž4­‡¥j¦a¡®Ç§ZÈ-i@EùÓüþ㥒éÓ-ZÓÍ+QtÜ ™*PŬKÈYÌγ/ì–âe°½Ža¡Ô4='r×í~ÿDIi·G:¹pP^BiõŒ—ß272»¾OæFžGÚh’¹éx¤ÌMg7¦ÌÜ{­,GkÙV™›åÓ袈TÛ¨ýõùÈÜDÎ|6:'­4šîǨidn"ˆVóç#¦çÀ™›¥©'‚ÌMDL• Ì+5XKˆ@˜b—en"õ¢I‹ÌMtxú—ÎMÄõ%t3RÅJ7 x5/H:<ì›S¥ãDìFµæ—ÚM¤RÏCd°¾_z7£=º/‚7ñŠêx‚7òVñ ìÜÏí#x׳®oúòÔÁ¥íÂxÞ˜ÇöÞÄU<¬©è÷I}–l[¦Á›ž´)ozšw!xÓ;õÞÄ¥{?‚7²ðûÞôc‘ãɨseoäÁÙ¿‘nr0¼‰—ßSÿ¦±ÜùðâúžâêáM¶; 7´ËÑ`‰ªÝïgµñr;z €*6Yˆ—geKMÿxÒÅÚh‘¤V÷ó¹Ü®Z‹å~ËŸ@õÅçÆåæGKÊ-~Ý€åöÕ¼ìõ…†24¿òFB—"mñb¦ |â•õç4L_Bï-òìî!TôÜR}¯žˆrßQµZÒŽ’­¤àÍe ç< ¡‰}Yã#Âð¹lˆ‰Aìñ[œ‚QÄDóz) îr(e8º=Ã+t\YÀíWþ(Ạ|² qÐZp½hÒ§§¢  ¿–©#/ñ÷ADÕÇk•ćl†5“ç ª¿ ÃqƒUß~L‡EDzX@`œ?!’œgI”隯X >VÏjDèï–±®¨zûc!Ë£›Ïò[y2 õÑŸò¤êöö;•'tlIJ¶¥PžŒÚ]Jaò" \ÃG =G%Ž(O*¯¾¿Sy2Òæf$F¡¡¨o6è+õm9¾Ê3¢EôâŠåÐ[ŽPïÇUÀO<'Ò“£¬vrHu–ã ñÉÈxí%¢5’ mùÉh.Ž ð“€ÿFË)(ƒð ªX Ùȶe4íA.Ê‘B¸V¡:þKÊÑ]aý‰(=(š-z‡…‘ŒzK¢‡=aËx“(¨û6Ê«kEœÎÄ à¦-bãjÌÇú±—ú¡Cu,ÅŒ&¢xâ…#ÑN¸)æ+Ô—õr& |—½_HQj †ÌUÍÃf¡¼–Œ¿:Ã#ܯzï#§¢wÑI1ãì @;Rþ]/:OˆdýèY-+éHz‰˜ÆLo®šÀž¹W:7Ä£¥¹ï”``Z–E´§îjá YP]<ZfÚžcª^²d8kßÐD“æ%M·$6Áb”Y>Iöìn9 ¡$¢%šL„€Î$~HóIÜow¿-B°Ì‘ ‘«;é¾"Ìó U+5)þYRÃ"Ê{úKJ¿§‘RúŸ`¢^s_Rú=íl‘Ò×\wþN)ý(Ž‘zÍà¹þ;¥ô{ ·!¥ñÁ†•´ â^àBèÀFÒÎ-ý¸žqL‹Êq³ýÌh¶"W‰œ~Ìx{Nejœ¢uêGEðñG/€„U!@ ɉ´¦~\û5ã7@Ï ¡fƯz\¶´@zºçL©Ö˜ù"Kg¤¯²¥õ/ÿ¥¶¾Ö7ߣ®}%)®¯ZýâúñS5­Ñ@#’ÃXKÒâúj¬ýçø¸3‰¸~rº:×ï韸~O*ñ5VÛÆ2ˆëÇ¥p<™\ _âúyÜךҚjÝ‘*-RPÈëT¾¶¾~¼qï惵¥ØµÎËH#¨?V¡T³Ë!·c¹F˜{oßè[x¨¸UtS.3q×8Šz6<]²Ep[ÇeƦwÖ¹6%Š=!6©ê0à_chÛ",í+õú+Qô2Ä>& LוÝKªÎt›—Meöö¥¼BÔ&¹Üg·Ê&sp"ðžÊA/©â4ÂW_5&~$æû •>eåkû­@CcÎmÁŸ_ô}c‰9¤ ‘ãg_ÿ°È,Ç(‡VÙñE²/ïi½¿I×jfð˜–aPøEG›åøZÕÓ´,,“WváŸe×tÊ&¢žA8‹|·-&§KÿWcV–½}]TpÕní¸AEÇîøâlð¾‡ÛŠâñ¤d9lô;)4¦ž´péF$nصpØ6ĶžŠ0Ów!jX#ûjUPQ]$S}®¶,jíÒiºÛSË*º}óm§]Â}7œð$Ô«'Ø’ã8„·–^‘¤ðfré¨0¤Ûcß[c˜ÄÍ¿òAÇ/*ÉÃAͨÌGä×µê–dÚ\©GµŸÍU,±ô·ÌjÀæJSƒ.£¾ÿÃtN±¹RËœ—A 3T¯š>Ð ·KN\(lÄYáú»@’Jj1+‡ÓõÕ}}®¯ž×× ¡å¯_®³“VÚÃq™?'Ä]\g’ŠÝ­§;–réhxµ¼ÎÔá?yÝi?Çõö®3AžÞõ&Äœé€od¤ë H[E¼'ª’ë}ØƒÓÆWª´[P±¦žB…Të›oR7ÚÅûêÖŸKL=€o!5ŸãM^7œ*í(4¶—ïiby h=æA ­)°+— †KÊÜ#Ϭïadü”>¥'¦2–;Hݺ‘ƶ¦>Eßòæå;ÌŽ‹ºA¾^»bßÈa¦Á·ñÚ]›™ev•qO¬wR§ƒœÍ|óPJ!M*FÄ?BÃÊÙÆüûâzŒèþï-üíÇÕ‘Ô„kÍðôUÆ2Û-}¬â†\¾>-l*˜MƒÛV[qJô—p -O¡¾sÐ06·u³¤YòÒWq3d} •ݱîú¦#,ÞÀ~”óTlƒ•î˶ô­ÖwŽVÒ-§É˜î(ùÞ ¸†ÇmZ -¡`xŒG\Nüm³=J˜ˆ‹®lK!tr-‚°`qW£Ûƒ+0ì¢kÁ‘n‹b ¶ë¹ßµº%" âQó“4žÿKaèµ=C|A<ÙS‹%™´qªF}´ZžßiA«3çaÁ¡[Ä(A™’gãwZÐÆ™#õǃ6biÏÒ K}€oÖþ í¨é݃EôŠNÆÎ8$õf¬ÔöÓK[ÑjXÐ;ƒØÒÊ3Úˆ¥7ù€õK¯ciüûžæÞˆkŒ„[Û6€eXÒáH;ºïGëmGlÅH OÚˆ­ô²0¾Â]v¥y|lK;fI›ZMFV¹6¦3¹Ý8Ój ¼ŠÏà¹ÿü‚¥1RÝ÷nZyýµz7aÞ“ókN Vùàž¢¶…©Ÿ×M;ÌEÜÞšWäÌá@3Õ{'ÕØ¤aÔR?‚Váœ5÷nÔç°œ[jÃXÎd³-'·ûŸÔ=÷EóÞ^à:3›1׿Zµ ÁOÜÊïPîèûuh×Ç?JJ«Aºìž$)®Ûñ VqsÛcì¦~0Ÿ¦ˆú¾Ý:{‹nÄnæ~>y—î ÙÛ¼OŒ3~ò4­z虵a—ZëRz2w†R½m¶{üÞnȾånºÙ$–ÊéQÇŸdÂæ’ºàJ©B¸‡ §Ý ®{g…§v„§9% º[9 °']sÊÇâv}·g4¥kú5×Í÷Ÿô­Üò1¹ÐÁw Ta ÇÁ‡Ð-R¢]s¥‘.mþy|óDûˆ¤ŠÏ3Œ`5¼]­+ª##?‚ºÒÓWƒ1¬ò¿ÑÃi|½t鎑&6KÈ5ÞCt#žAÈÎnúä&;™Ó¸c¬AhoA³Ç\ Rkë¥^²Ô¢«÷yX®|Ÿ û'›þšŽÔ“±AUÓŸ@E/Q=ïŸMí©Â®B;²'g[J»â}×Lº;¼–=$í+)ÇþXž~^Iß4`Sº*dv5A0»×–—¦Å?±ŒÇCŠKŽ[|\úÅý‰«ïÒ„¤s%ÆÞ-Õy§¢ëxßUŠ ³»694×ô /åu¿5õÔêþƒZiçˆNˆýÂT}ä¸}3mñƒ%[O?nMo8ˆ+Ó\Å|ßJƒ·>Oqï¯z:||%ÐYå÷Ë¿OqjP,ô·¨|D Œ\ó:êúõ”e?ÂI Tçnf”lÃûs/òH·¯÷$ÊçX…Š¢»¢Ýõáµ}‘SS–€bu‡Gy¤ƒïÈZÍ•^(«TK^-3ís€)¡°‹¨îf[ªïx4Ú­QcüJd]g<~wül?œNn:Ýã¾àµmJ¿T™ÎÓ²•~^Âí­†oG «Œù4ß4Ì…í l‡§yÞõ‰VI+¨¦Û‹x·ö<ê—‘ÁPFj[ʃzó ŸöxÚTaÍO4àÍ:yØBÆÎ ¼êFóve†Õh»™¡ªÙš.¨öïÀ\¡ ˜Æ¢ù›ÓJMI0Õï…§M†:Q§Ivêø{‡½Ã1EÕ® T‘±µûÑ)ŠÀÍôqK˜,2:º [è‚Ü”¡G£±ÔfÈœcætôè?Æ4!«©ó¦Û™ƒ‘ ­/ëå7:qQ~ñó‰-}©ÔZ5YÂPµ(‚À¬'L„î¥è¶ƒÖÕè=ÊhšÌö1±# ô«ÛJE…tt:ŽNÇQW÷—r$-¿ëŽér-/vU¼ökÐÚÕFBöˆèZ›*6½3/W†MÈ@¤ÔA"#vöN…6þ-ø/}¡–:J©uB$í4¡f6À¬ëZ^ÒÚã4︽˹·º7F{¢ÿÜeeý~€¤(”ŽÄ:^’EF0Ä Açï7'–•ß*‘hwv-ƨe'6CéwEz/æ Wm¾ÞytZuIˆºÚWriÔ4]œp¹—Á16.õ=îåaA]GGñ{ì33P&ÝëiÇ¥,‘‹Ñ…Ìž}”ÆG€•,™"3òµœÏt êè„>v”ˆ»×ZyѲœ=ÕÐ"¸UZumjËÑj݇¿^  ÆûÅ$+ÀÀÍOÙbSžºÕ·Á¶¥³a—j]?‚%JQŽºü,ÈáXCM&n6#kätúÎ,´Â›JßÇÉ%í¡Dñò"ô10ª \U0LoÅ%ÒO?ü?×aí§+oøy¦%Ø>*‚!<¿- ý‘PúáD®4“çwösù↓ö:x^è‰Fª”®c%ÎYër°•D÷Ѻo¯#+\ϱDy"]ºsõFáŸfWNÞ®fÂDD«qÅZbiÇo° ž?R•@y,̺“]ÃÆš: hèøø®²šãú½™'O‚”ᨱgrjâ}i Öp*P4TF* :& #)¦ª”š.è×nŽg˜"•P™<èàûËùLC&þ3f§H{¸¬ÓðžÒ(­lB••Ùž‰8䉊B#G\QÅbœ¾Àgs!^Ýìë'§›‹( {D컈S *Ô@—çY)á‰æ¡m>RƸ…àç°Œ0 ¦±™Ef·»“„¢ÆApžåÀ¨–©³¼´v,Léõf´öX\ ÑX¤püþ¥IYô¡r-zÝ€Ö†Ó·¤Gõý[Ó*‰sëylµðZµ©šbŒÃÏ?ºã±êš ¢4ùŸÿ(VU' cxÞu{ü¹u ñ’Ú&)ª¿__žÎ‹:t侇X8%zMƾ/ ëCe,ÔdQ ƒ{ŸgÏ0[::¢â7ÅÕuC".ÉÞ™÷ƒ:·XÞ¸3S‡NÀºS­Ã¹E®ˆþKQ¬÷N•*© owª:™_â}µ¼Zöw#±ê#NÊÇÚ—Ã4[Óô&§|¬ÍIóeïÿ¹D=0O!:kRÁ¶‹›­¯"€ò÷¬A¤J‡Ù…K–ë6&“Ê=1qo¡u òÚsŠ•SÑtä=zQñšøû.^E/r_¥ñÚéÚXh«›^p!œÃúà´Çëë¢ô%£V­ )©Ô„ÿÐT–*ü¹b³ŽÞMÏLìnŠÜ ©Óœç#{2ߨãîô«¬k¿Í©Úw+=Œ¿±s¹ ŒîpxõÚb@Íb-]Ž  ºžÊŸ}·¥¾£ÖÆÛcxÙyûuÁz{ôLõù¶LPvRº#ËS žõ'€¦÷Ó%±÷è#¿¿"7ëcc î‘8d{p ™šÐ阔Oív#V ² ÷@•ñç—}¸c½_èÜ •¤08qñSE¯Èð {qaõ›qÇÚÏ­œýÛŽ{¤P±ý¸j׿¡·1g‰‘÷ðOÐå2¢o9Ù™›Öäk84JAi$Á]ɸ,è,›F&˜¬þz3Gø¶´Fqª%ºI÷¨¸I›÷t²¾Ô vÒHõßò!Ì_`Ø4¼ÑÒ‰Î]ÍDcìa© $”ãA+t–ƒô¿q ­í·s B벜¾¿¤Ô\U¨þ¼èû~+v;jž[ÔJóz¤,ñʤp ÃK=V¡mÓN†ÕmÝ”êP›­¥ž´,Áè ñõÿ'Ô2ÊÀ6‚þ&I$é]%C-__›`K1Èé§ ÚB(_ÊÂL iÝÚ¾^mÀõ1‚TýjS¸íл*ƺۡw æ*qè]Fg7䌞¡·yØ“¦5J$îú–¤¯§Ò{•È•ôfI21²­Ýu_S™%x¡Y#Ö4­ë TNšÃuÍɳ™ ¡¥±Õjeœ.ëèÅžúû(—;3¹»¿W1 h~0Ÿ½F?3Q†ñLÁå¡s<=¾ÿ£¶Ì‰"vÕïEk¶ýBKrfƳeö­?æ’»f+r7P…™Ómàv£dÛGûgôœ í“ (´ú¨ ùÃü §[[~]„hLÙª´¡¨f/Ð3²-$ŽæÚ“ÞUí×ÐÁ@Âkf†€TŒÈdH(ÞtCâãØFF–NŸòw«hÇ? ·8¦ Ô!7ácª«>€­ÞŽ…›uWYo ZÐs6ȶÒ.™Ai„+yŒ<Æ!M;M“þ¿Žq´‘†qá Šøµù¡x¨©Ï 2ZΦdL¸I5KcËŸab“Ê1ŧ¨Þ'¤3ΚÇzaqM¶/¿V””%`•dz…E›TâL-¨£¡ÛEÏãJÒMã?ýû«q–JKüáŸy½ßK†ô¬+n´©N ‰ñßc] €è Õn±ðoñd}Ö„-ÚÆnF!9ÑñW»†w«§ºš¦ÞÓþ`–è›+FDb›¦u¼µž±+©ÇlVF¥b6Nõ‰TƒµîÌh‘ Ì6­šU™Ç1æväˆc¼·R¸­wâZ&…Óý Ư”bÔÖ‘ñÔ,+ã_wŸ%Ÿ#\O6DÍ¡Z7Ê6' ^?e>RÃ꘡¤¯gHàvP´FÝ èг›+½Ð.À-ÂŒë¤Ìw™wüD+q´4¼t r¸‚‰™"(ˆú" ›#Öú|dž [^ÚA bZðdã.1SUha¥ÞV($7¡lóƒ—@l(øÃò«Ð4=l‹.T³e–õgëµ_¢ÝÕhoPáQøUã,ÊÔ¬Wiháe‡VkÊ þa{ |¤ÒëHW§­Íö4íl£‚g€‡ÌdPééÉéýF1Ø”uè ¬LgãÖ‚´G:ÜIŸkv4°²;TÔýÝrž©Ò>úwg£§ª{Ï‚BL×½Q@¨X‰^˜ôtÓ?£KèZAñvL¬~z¼“/ÉmÛ RG®m ’爫tü€<lÒë‘él¤¿iÕ÷¦Fp9Ž9 ø!áÿ4‚SApóë©ÆÉ‘.Ç@Oê¤Æ3h‚k©HcžEÂÂ=~wÂÂ,ð©¯{5Ï@lç-P;°ZúOJuÖLA`¶"ä7—壘yÜpe+[ŽÂáFù°Ý”æDY£™ ÷ð:Þ=Ü4:yŒ Ýs".®›'+_‹žãélH/ž{W/¦¥^W£×¥õ®Až+éÿu/Ag˜Û¤Ÿè w+Ä?Œn7VHJ ]Æs|?¾š-¥©cN>V ó°ÀŽ ÚëžÆ ™ß¿Õ)Š×ì{[ O=f4â”z®úùGy^lòˆ£‚1bä1(Í ¦£ï¿Ê#bt@Ïüª3$»îm¥ÂÇWÞÛóJá ·ïí¿ò&äµhÌtŒ¦‘ŸFù† ’﾿·‰œâé²²“B`QÂL¢®fV6ÿã†ÿû‡Îj—µ¦öHÛ©Æ1:™Ð4(JËö{XÓë²Ûë"Ìô£uœ²oøf)yÊÉŽ…û¶’H<îÈ®§y1xþ¸y­L3‹bÁÿưeuÝÅq+Ëü‚ÏŽ'7^ü# :åÚ>h:ôlŒHÔ'õ.={*7žÀLwŽ‘¶¦øV°4ö‹¬ØÍ)]åþé׈]ã]E:×rõdçÁáužñ!¨ªˆÏÉS!ûÞ9ºÈ) 9 {»›Ä/Ê’º"ñ 爡ÜJ˱ïâÞ~:”ÿPWÅ:’ðàå¢NUÒÁE}Ú—æÙúg”=iÒöÂÑš-Ói\|d×ãžì§Ùö&~áú™G,±ù–ø£{ n¢y`ÜÆ:·™­±#¢û˜'…Ê‘ØvŠÙØ5.-ë¯8˨œñóWú§Üš85ßÊ~Ǫùýx$í( ÁYÙ!¿´uVÏÙZáëvt? Öû­ùþý9s…3'ËÅè© Ò¤z[$A¤ĺpF«×…3ÊÍ·%z­›—ï×0¦Qñêf~¯w:ïBæLâ­a„ÖΞ®ºæ²Áë¦uMxLü3ç§—lc&ˆ›}¬O¼üŒ# M›ªH¶`)»jyW+H7—Àè£èîFæ¹¾VS æqE]æ8õ´ºŠd¢úÍÖ ³vä¤ÏÔŒ  Çwy´Ö¦}Ä£¦.Ϩ1›À]½ßl•A]‹Á¸~þb˜q·ƒÁKÚ†=°Æ„Ûwû‚ÞKM; €_ß1•؈]0UJÊ¥¾Í× ß’5º±h†‰¡‹ðwñÿs×[?Éï«ñââ®§ue…ÀžS¦JÓJ«jÝ‚%¡!!U ·jÈG«ƒÜai^G‹3E0æ«ü}Ðùœ2ÆZoltzˆ—Ř½?(ÉÖ”Âwc¾jèFäQsw—ÅîQÆeàš]ÞijRÃÇï+./dâ5~_/Õ©Û1–`´@i¶}<;ÄÏeܯ4ïïUÝ CÄhoiÃß„9 ÅŒ UX•áÇËèy§?uE !ÝÍk¥DIïxœq·‚­ûaÍ©¦¤ã@d}ÚÎSM sÔO±•z!Š9¥[!yL~".-ð ,?RKz PÏë\àîôð 6ZjO{S=,J˜šq±3í­‰²@ñu¤±J´\6Ä܇WCÞÆÁko1‹sÝõÏå† þ棢}}[rkË ©ÛÜý¶Ðˆñ|tæŽëßÄín;wÝ™ê?Û A»••œ‡n §Žo«ò”áÎ4+n´"MÀZ‚}FøÒ¾*‚åF®ÏÍWŸJUÛœ LX#Ò]eLÝ’ÑŒD[ aнÞé@'ZѳÃÄ}•4LPk*öàͪO@M÷¤bÏé&I ê¡ŽÆ:U8|Bµ¿=È]g¤ Ø£}©€’o®Z—º›×mªænsOƒn4s>¿m©¬JWáæ:Éa_äÃöâ­ˆ ©OøÂØŒß?t…´Ê©Ì”¹Õš±ÛËŸP XÅX¨Ã„ÙsMPÖ¦µël ð3; Ë™LУ:(ž0§ ëúDDnf¢Ñ÷áëiLC,Ž5è÷=óîgŒµ;o,ÇlxeŒgѱɧfªloðs³.`ÛÖdhÌø ø±•šòELùx+ׇ¿˜AO‘‘ÖHõ«f†zF«X‚÷užpÏoˆÚmÝ%m›¥ã†CÁ¨ÆËÉ@žÖÍŽ}ELǃ7´-Oɯ뚊*€ÊŸV·Ä.õóކÓ‘mläŸÒu ÓG"0²mÙYØtÚFvðH=!<ñeP8æ“#FöýcëMலnß¡êV”#Ð^’¬mË­ÐÈF&‡öw$mÙÈäëBÝhÁ×P[–ԀZ1Y®óWh/>ïR ŠƒEv‰’ 4t*b½ü½•-G©K'œ:Ò|¿è¿ÑÒ#[#í¬É}0J|Kë¢#j » 5yƒC6y¹5“Ø“cß«–üî™ñ¿ß¶¦3¿+ I\ñÀAÔ]š-íZÔʉç½Âås3ÐYŸ¥äB2gº4Ђ› _³ ’¾;uS):ÅÚµqŠyk˜RÕ.üï²jO¼žÃÍàºk™„/Gv£›$Q¦6xš©¦‚Í¢:Ë7ÅALkd¶ÒÁ¦qó ï.F~R¬†r’ÒÐ!þGŸdWº‰ïçIÌiƒýd-ÀèàNø•8pÓ$|¸BÖ¾ºFb8¢´_&ôÖ;r“èKº°j²‡¥ž?q1G‹u w–h‚Óo­ –b>qOm¸ÔÈå²è¤lâç¹}Ó0$‹5Á a¦XÅÁu¿²”šÚ?# ¥mºbh¶û˱&â >k·…Õ ‹uI(ï…)s²-\i¯`Ë€µ–˜4 †[ý[½¡ë`Zf®´V¢`JP˜!äÍ ;FYP4­–¶ šË+¹ œƒ&¹ÌÁŽ®ÑNb¼ Q}¬šÐß’ÉÉèÿûFÅ£iPtFг7œDz‚€´Wâ'dc¿ŒZÉÛh´lW‚©;Škçß;À²¶Ñ|è¬oóôge1n#‰o„ï²àg\ÿQ–-3±¦¹2L=ÙLè<Y]ßñ󬎦w¬Ûk&T­{B&õû“ç²oü¦?KCØZOh~?Ñðw4Ööo¨¢WǺç™9¬ÙS­æÐh‡!ïÆ™ŠBqY,¦Yf9…–Þ'Oô™ ¯}ªÛÍgÖB 'Ö—gVp¿ýHékG²-Ö3±UÚ…9ì¨^¤¼`¤\’YÓï|’¯é†Ê¼yŠÏõ©Ô®u‹CX©Ã)e}ÙS_§²pj.QÄê²><áæïG‚8Ö|ÿñ«ŸÍ™ŸË_I §Žça¹™ä©ÊÜœ"¨äpF-UÏ–Õ9›õuhn*‚€±^Z% Rjfnw|­–ìµ÷æŸç²Ôo”S2f¾Ñ“kNe¹ßkŒ¢>ëÅÎõpÜ{k èŸ5FTŸ5…ô[OßçŠÅ×ÚEÓ[‹õµ>œ‘\¯šQÁëI”ykIP}Ö[$á¯u‡ùÖà1¾×íëïûç‰NÅÉ®Šv¬´æê’+›´½sŸlºâÕ·<‹²'ÒוÙþseYÑ/wo– à éͦkãî64?âàåç‘-ïÉ›eÔåßäã1ºZé˜ëþYÿ!ÒòÿTE…@ l>ñÍOÀ_”Êô‡eÂ|ÃS‘|ùwâ"mÒ‰¸êZÙ†m(ä ´v%70Æ7Nuißw¯oŽæï?•ßÒòÈŸ/k‚@D2jéI«™fÕrÊ{6‹L³y§x'BR ›`õT0áM…¨1mcí~û˜¾IEÅdãA+ú¾t¼@HXÁ3áR“5nîÝ éfîÜiZ¼ÅVZ×Ï]yWñFëüºËÏÐ;ŽÛË{0OõáÞ,•QÂà8g7I˜¸Ð®cرN6ê[ž î™…dã»ëI?7Ù≽{gWÎ`‚ß6øéKÙ˜oJc`=,KÐÅñN®afÙŠ@¥îÎ܈µ¢Þz|G&cÙ$Ö}}eÝ·™Ûͬâu²ùQ3N™Pró‰°'ÛÉ8Ë5ûyBmåÝÏô@ymçÏ GS&äÍÙZæ"ƒO6W7Ù’m¸¬€úÖÿì!oš ÉOœég¨ÆÈ8Äž@»Vë$ãÇ¥¼Iq8:ðtýÄ)è Ø·üvƹãµó±9ˆŒX;’² çäîJ+´¹3²ó \õåÛW ²0ëRC$Ôc#=U¸´=’%î ³½²ÍqÙA‡:9:ïävž€uÄ#-'+[jy¦)bQddW¥[%Ç¡1+Å!²Ôæ²÷s)ͶÒ:äÓ†%áãrim÷ÐÐ}Pªn£‰iTŒõR0FoË÷\MkÖÁ̱©ä°´Lš@¦ù!Žúz¿ÑÎ90tNÏ@¦ã »NöàìƒS¸9všHµ?7ׯ]{¥ðfÀ¼ µ}÷îlÁa’>ͱ:U.7ËÁÛi³ÐŽ«Þ囯MòeL Ÿ;ù15”ÜËn» 몱ràx7q,[¢÷pêmÖ«É.Uîò]¿VƉå4¸¢Z?×&†yÏŸ´lYsÔ|ʯ<ÜŠ»¸®Ïo”33;qÁ[>1·ËÄÄøÄ˜ÅLøS)Ÿ±Aìq BŽhzôÓÎhÄ]¼ ØOÝòD#'Ÿ’‰=€ªQçÏ–k(à3{exéöžœ|'{šïá›(¦]Ò¹K£ÕA;m¤q*2±¦îŸÒ?|ƒéÐtô¶×¯›dÃÇ*ÙÙ7{bßÌÆ $¯tŒ “,–•5РsƒµS÷šv{n¥n¾!G%¨y…Œ>÷êDýXÞS¹…šŠãʴΰPi›Ñ5PC#ÅàÞÀôݨ¸1M-Œ7T‰:dWÃÉášVà#äž7ì¾×íf¬šq¿¯2z3„V$=Cfµ^DÍîlÙ_‚ÌêïÅÒKTÚîõf]µ¹³þ¼ÑÉ™,×oÔ ‹ãÞÎÎü¶q¦³ƒ¢Å§qÖ{ãÉÚßùx¾ñG5p'Æ’_íÖ<ã>³Ÿ??½,á™ß¿É¯sÐq]‚Ä\颾õª0â²XºYÝËÉ*®§ù Û¹‰ý¼¾;ÊWKÆñò•¿raŒu³ÛÇxsÝÌ?qÌXIžX¨9¾ü±ReŽ£S§%ãùèô3Ï{fô3¾X4q™ªw»>¡= Í«&|cPéÛà²[/rïÂÚsŠªr ª!`aiÊ'¶í»\cŒTö0ÐzïJܦÆHkçóæ€Yq :¶°¨Ô°NOwÍ8 ý‰¸70×”ˆ(0Ìz Œ@ä³Ý"ñ¤%N §”ÆèãUtë»Ç²«bL‚þ è´‰XbI¦t‰˜ªå#VR0Ùò€[9Ë ø‡»™ šÞÖA8om燸± ½mô,sÚþßfçž.ysöï ¬²é˜ïž5—Å$ê»™³Fò¸ys×ïŽã¬=œnïáFv%J¥{ÚÑãµòO‹9W«Ó=»ïîå& „ ?Òê9º]ª›ú˜Žï4”½[lºG‘¼’OrXÌz¦Õo÷Ýènp/{°g$?ýr×V@ Vþé6Hu¯n©Ä‘=ö¡ÒbŒ’zrÊŒ=Id<º;Ú19ZÀOFúˆÉlí´¶¥©‹ΡÍÒÆRÄ9´>ÍVs‘;bòê÷al)uµêuÄÙæ™C¬ÏSg#*q·Q‘ühí~êÉ»»‘o2ò¾+§./¿lžÂ­Œü3;%ÎG©Ñn£_:=C¸@>×Ê~i¡°G3J®tW3wæÅð Z`ÀbQ³¬õ‹EÜÛ_`1í±/°XĽ=>`±n5°‹Ev ŒÁb×Öý€Åº»m ‹=sÏ,ùšß Ÿÿ›ë)|‘(=},ÖñÝ}`±Ž)Ü‹…âÅü‹Åž‰\ Áb&j=°˜dÇî,f‘ëð X,œ'Êý€Å»ãÙ‹Ù&ïÅ‚F`´D‹iŽ|?p1¹ž^,dÖd‘ê8-Ù¶ûAŒÅá©_1¥Mýƒ“.iû€ÆœH?Ô˜ïúéBÜØÀÇôÇD üBŽ™(øëõÆÃŽT>]’ÿì©Jɸ²;xó&¨P*À¨iRœøÒ–CÊH>S§¹‚qÖ™ì“ïpÆ<©a”û#WÿE®èX ?r…”ƒ Ì®ßq·e.Ððûº)û3‰“&Wt¬m¹âφuFÚ‡\gÄ/Á¸Ï’¸98îzô¹"âhÿ"Wèî®rElÎøþ$WÄ™X÷C®èiÁ’hÓò$W˜UñÈ!}ú‡\gä¶¹BX‡û!WÄdÒäŠýùcW™3 I¯=¯Ø³É¯ˆ`Q¾ ø÷ðìG`!“bgf~q,âÌ|“,”tËBfÿÐ,Ìa< •ZßD €O¦ÅœP½“j1åxôáZ°ñ¾ÈñŸ—¨¼Ù‘ xc¡ÿ¬œ{ݬ {Џ>²ãí÷Ψ½X“ö ˜ÐôP¹'YôìLXÁ;…¬®;Wd§¨ZÎ’š{†Oæ­3\•'Uj Ä6 ýóËäñ޵¦oà3D‡:yÇz9ëÃ;î65JÞ±˜®ëÃ;ŽÜEŸÀ¼ã¦¬/Þq·‰QòŽíÒöxÇqÆfýðŽ;¥ÐãGþÜ¿xÇRZ:Þq·ŒsòŽå‹Ñ>¼ã8,ë‹w¬ÃÔ>¼ãnÕÊäÇ™šûÃ;ööxÇZ”ï¬ï©Øò¥×>Ìc;®<êq0ÊHîq{sれêc›ÏùèÇ‘´õ/þ±’¼ñ! •ùÅ@ÃÂÂîR ·Yc|‘Qù°ç†ªñhÈ‚»~xÈS<¿™÷ûa"“@}Q‘ãÌôhýѺP!º{K_cޤð•çÌî/½ÑaŽ3}謱cšTëÆ4‘5þ´Ó?€]é\òõýfÛÜsœñzè>¿ÙøJ ;¨Nꯒºw/?’Î×çõ_¼!(5|¹b=‰ í9Î$ù{2ß=Fÿšœ¬^½>÷öðȘ¦ÂÊj5¶£Æ€”¸2J¨S”7ýñr Ozÿü2D,’š©Oœ²lvò‹í×¹yyF ÛŸÞT¡7E”a$ø„ë:­IZrê!S§ ˆzSè3»W¥4J²mÝQAԇᎾ)eÅúúó‰¨BA[ˆ=6xO÷¸r5ÜíUšŠ1o„~udŸÚ#ò˜À™SQ:2pÎVJŒ›VEzŸ³ :q¿Ôž¨§6ñ$-oµð®obiïZ”D*þD~>¢ÂzMú|]tûÎ(,ÖŸÆÍûŠ(¡›Öa·C:xD‰‰‹±öpF‰jJž.ÄŠÆxsTˆ(Ylµ§Í¿Eè"*¤Ñ±õ¸cúÇë¨2Š«5sθGúþÿ|÷Ÿ©æ ß5/ †O?{¸/”3&’F)fwŸ™qaåë–Ñ©ySs3Ó'êÈäL›ˆu\Îq¢Ã “ÂvÎÎ7³ò•J$ž­óóš’@¥4ÓQj1»/ɉölßQÇ‚7»ÕÌÄVÖ“Ÿ(„öd…l´^_ÉÎá’™ <‰­Ã%™@ÅWÒÎÝ!ŠÛÝ”vW6ºº¢/åÂ?|´”ÙÄ@\˜>1ö¨J"ó&ïT°tYð­MÿqÅ„å3ÙuëY’}7[åÚG\k×#‹ï@÷ç»Ã½þ鈻ó¥ã¸ :üÓAO¼£‡‘’þq‰_Ä*ÉöXÐa*nÇ+B^DYo ×+Ý놿ñtÞ ]ÒÌ0û<£¾sŽ¥°»u?¿ì8ëw7V„CZfÐ ]z")rqî|Neõõ¼l†¬sJ«NƳú³•²:SËçÞbÓ¼sŒ˜cݽë/»ºð«Ý.Pﶿ઩ ‘Uy\‘³¨Ùû:LQª %J毌WnF.)íç¹\ vKâ¬B¤5›U€;+–ƈkvã½ÒŸ4T#û ¯LnÚ­D}‹’#&ÇÊNÀ[h.T…•íŠM<“Ï#5T=:ö3]å÷MÅ“”ϪôœO64jâ1õD¬ ,™þŽùT¢¤ºF¶òB!-\^l,þ}£—wr×l!<Œbª+€#Ù¦‹6ÔµicãXÙñâfýÜ%wµQ’¢¸û¤µdE{ê¿W›Tïg ¤Ô÷Hm,ݵ‘DBºD%ŽöE49ð]L´m‡l,Í*+~Ú+Å 5JY•Ý »"+ïI‚8ê:õDýmsí­‡Ä`ã´j-¸q#(µRNX¿Å”ˆÊÚˆKGº§– 3¼>í|µx«¹ô9£\Zž3,¨Èºñ¸uË,ùà ÈIÆå6’U¢?6·òŠÛŽúº§›6º•§Çt¬\8^1 9!—–œsT" ‘·Îˆ–ÃeNÔKv[=òwHŽvôŒÞF¬>ÙÁÜý+6×·¡Ek¨L“èhÓÛ¸ é]”7q˜Š¸ hD|o¥ šóéEïÄD¶Ëí–³ØcœQJîà}+K«œ¼rR0-ëÝ~+1É‹Êz<¢ -®R¡‚€°äQ͆‰“P®ª\%ë‰ë?æ¦Ààù.gd¶ÁýLaðÁýpkªÇë#ݸÀúe݉®,²”¡á…;ª#™Íp#r:š%Ý,í|NÎX6ÓTûáŽbÑ-ûáŽÌîÌu/Á~¸±ÑéÊ㾑Ž"~¸==6쇫+îŒ<÷"RÑ}Á7"ÞÂøáömD±/I5’Y+Äô·n_ùïñÃí‰@¶n×}‚ÅoÔu˜ NONí‡ÛÇͯ+DJ’”îF iÿg?Üžu»ýp5ÅÈ)EÜ}gWWª\­ú{£‹¹’&²ÃV‘œû²Ç^%Yà+U÷.â•hAö³ 3…2]ÙºAÅR)qiÞ0–UUž¯ç>¬ú{óW]º[Ùƒ»xä¿×H°ß–;Ä¢5w.6ÇùZ³¸«« M·î>v," ýoiÑFÕ˜J— ÝuÕëèTìçÿjÊøCnó=ç+»ÁáRtëé3Ò93îEÔ´‚ÆûL…æ3Tñ%[*î)Û›3²!w ¶~ï×\ [¿+;ÉYTe‚Šëweo‚M62ò ìxÍø7È,>‘úJUw®½GèwÝü‹cšö>q-YùVf ‹¿ˆù&J,JÉÁÍÜù™,ÖïÞäkÈÑ®‹]]Îf€T= ƒ8ž’ É®6~[ý¦;D§ÿt[ªÎbWw-IãYŒö4¢w`ÝÒÏ8ô~˧ÿB§·¤¤÷pÊ;n5æô„¹7øþ“<Ù5p?©IAÔ9'í䈊ÇQ!o•|p'¯¶Óÿ#î÷Fbg߀wžBƒa=f8‚`.NjnT¦‘'Ù÷QÔ“hN̉ݘ&?¼ä“ˆ‚ÅŽ3W¦ÂnR¥|mÙ)&Ý ²©ß˜¢cî?ºÿ×К¢º"ð*ÿDZ¦óySBµ~_IïX¥¶ßÇõ'–ÝÂu“¥Þþ2¦oÛiŸ†âí!'BCP‹²G ˆc©êå$ºˈûðœök‹zhj[³NŠƒfußwÐ6×k[>heÚëÃ5 !®g'”õ“0zÌ>ó 5 5ãGÞŠ`¬ íkì(Š^,mß°¤ÓPÌá‡-pIØ&6P­º!‰,@® miðµ,écDLwƒpãyïË' ¹ù=²læ4CAšÇe–xJŸMCC>êÍ ÀðdBYÒæ¹fð`óLƒµ%’ "É‘å–$q­„ú.F ߯?8 À5rH\óà/ˆKí–· εÕâ7I¿Зë?ôì¤ x<—~ µ+Óe¼.ºÌ¶M§Å ¶; ?ª“PgÒUl…KûÅ— ϱ S\.*g^ÿÐW³}"wÍ¢óz__N£Q…ˆø¶4¯4ÜL—ùJèö»¾ûoOáHè"}˜Ûp(ð½B_ÓÀ®5[B 5ÓèIÓ¤t+Áãï#MãiO¹A׳3ðì3áXÚº=!­âÕL9Z&|Jè,Ð$Ã&xWO8×ïxÁµ¦à\œxFÖ‚wÝ\/Öõ½ÑÅåÙ·ßè¾ß)úâòΔ´n¾Þ¾ -¤NÁÕÍÖeBæaÔÈ7HJ}L{ä®ZœÒkú¡š)¼¢âþ$tŠ¡.þeùÀŽ(ÞAµzÇx¼¦ø 2w’‘åáÛ@.H³ÿlÁ^l´Ù±C}¸XדëÃz¼¨}°NY×Q;aÙBGá|„æºRìL£L-Ù²,›q¤QÿÊÏ¡/çÿ!’S„¡ç7Ýø1€‡˜cªÓÊ× Öè5dz¦¸)®†%k(düaþ3s=Ž÷ÐÅu³çšDv9®íÿ Ç)êt”è$`À‹p…‹² ×x@«£H¥¡æ=CædÒnPæ1Øæÿ¢¡Cu[#{ÍoPÙñÖ½µ‹¾Öø|¾uÙéÆá5)q®5ß_k„!>ëmûœ\Ãæú¬q«ø¬-bÿÖœ¯uù÷÷‡ Ã÷ϯ”2×åß¿O®Oã{íSžë#üÄg½µ‡¿Ö4ÊÞz­ÿY—žw#­-Ì\G\ÝßëòÏó“yß÷×#ùϺýû÷Õ™-TÖå$¬Øká1ÞZÂv_?Oªþ_Ÿ?TdÇ×ç ‰ùõ÷ÊaûëyVðÚ_ëg§Äº—¿Ž8ëg-Û\—ùÏó¤\ÿ,û?Ÿ†Âã³qú³dãŸå÷N<ÿ>ˆÓÿùœœ´ÎnOŸ´F3¢¡‘çæ@æð—ä}÷QÕÙ¾I Š{›¿^TÅxþ9i7Es.Æš%É„@GÍ?Lâ&« ‹¦ªã½C ÀÈ™ÑPPÕÐ׈ÖÕã’>­“™à“‰pTKо̵vôî ÑœèóVà6ç‰ò@@] ¯îVº·ù¼åSêKCðôy!U‚”!99^’²˜µB39?ÅÜàÀ}¨|ésCðôAJ­úõå›$:jð±> 5pkS¨-žÒSÄ©d»RLeДDÀ†Œè#h3ë¬ã¡õì)Tv2GNJ·o+xf9þh­qÊ̦¡)#[PƒÓâ¶°‘SÊXh˜lÊÇ•Ô4µ‘G!Ci y KˆWã •}œ‘”AîÝ4gf0—Œ£eŽIûbäýSä €}ᥚ¥JNÚ¨ùï‰íè$þ'°pÜE}æšÝßMÎ8¡1µã k2Nk‰~¶h<KfŠb`ªãŸjcWéc¸Ø4( aË) 019ðk˜-á?Ä"n^·ö÷F³!±ýFÝ4äömƒÚȶòDÙÞ,˜7Ê>¼A7æuØ Í÷F;ò°¼1µ u€#`“‡¼è¦¢(Ô·9ÞxÜ–«›äу#ЄPi‚ |ãq›M»T˵¸© M‹oLiMx–&Eü˜Ä­‚€>9üØéÒ]çÙe“^ÄëòéM¨Ñ5&g¦Hëí3Ôé’ŒŒòç~F|Ÿ±æò—}³iŠ[Ù¶‡REÆìP"Π)Y’fd GÂ*—ó—GÄnà<º­Â‰}D]z>ç™Í^~^wÆ.5~­¯|ƒŽ{VÅ'Én\Ž ®ƒÐ<‰9O²É0¢â)äcë#X 0ì$åWîó§ùíü`¤è¨ó­•QðxDœb~—[øùÂZˆhŽ÷™_¿oDÆ ÁºY=9%£ÒÒ@œÐ”wŽ`R¡Í~-…ùÒÄ.’‘ð™ŒÈ µ Ï p§¡V½Ó§ÊvÚîd¥ïÁ84±}‹V0ÞªRõýÍö•4Š|©%à’”°‘ôõâú–3v›¸ ÅZÈ¥C{=ÇÁ›/–Š|Jõ·ãÃ\@4×¢p×èMwÇ/™[.9k{¤{gmABKlÔŒ^†W¶¼¯šG 9bY‘dU¨ÈkBlíæGÅÖHÇíTMèqÜÊ»v-à>V¡¼6B“‘r²VôÓš.à2dÇã{¢å&•bîk¨Ž¾¡Á”ôˆ ¦%  WÖ¤Ž9…Ñ™QÕùEQÄt2£åÄÈ º£}4_ÄÓ–cèñ©•$Ä“ÒKÕ^—ùï+2—#iÅå°8AH°oñ,Æü3Åd%VžL’'3¿/¤K[ v´¯=)¥5åÍì˜åK0dAñ|‚ÇàõÔõËZ¬Z¼Ì÷)ê%Ö2ùÑZ=˜™cO²;»~]h¨èÁЇît@vîÐ._åöî¿i2Éù¶~«Ùe‹ûuf×n0¦™ Æ¢òþ@E݃òV}ÏÁÿÀÔR|sþ= ¬nñ+óqåw•]¹hù·$qΊãÄð œvZý.ãL×Ìð„ŽKâué"º•™¹+W†ŸÇ`ª¥¿—&ü[Vô<ï% AK€‘t3®,øükòuS­d-!ÞèHÜJåj:©5÷ëÊûJ_õÇ÷÷Ï>F}¾Îgl{qè¯<ØÙÓÚ@´ù Š©ëΑ#ÆÄ}¾âuÄl{cZ5|‘‡0mÂÝ^I£ Þß. i_Bbñ=JfÉøÊ“÷8Zßì‡x¬ É¢¬"P¥`1èÅåóœîûÿlúAÃúÃéÌtøš9r+y†í­´Ü<’ã ×ì'æ¤o~>ž$ë~Ýßß'c˜huÈ r¹™8C¾5û!;´üû¢Ë'î[bP©Ü#Ýi;#Й^[{è•0©wú Mz Î@Ãg¨AðĽbHéЭI ý‚¦Ý¶«Þ¼ƒª­‹'IµÚ}"=‹½²ì‚.;jz¦P JKˆ£:„qÿ«'›Žÿã2ÓΚÉNö\«Ì¹æÄM&"Áh]µö¤!ðº™ó·š´y;CÊÆ‰ +héïë>ɦX Í©•ª6ûâe¾Œ1Y:YMqŠ$Ú“aãƒy=«Tj „ÙØ–~”€$Õ·~¡Ë\’„s®$NºÆÎÐ|¬)ÅE"²÷M™ª®8:¦.‹rŒüü}Rd¶½µ%E T¡“dÖäÖŠéÓux·ÄÎH0ú›Œ”œŒ4fg7«ÒØ13'Q•FŸ¢zN1ðŠM¸œ ¨¤‰Á-½|ðeÐùëÃyïÀõ²[>E·rÕ­¼R‚gr+óùQr´®#·ô@ áÉÄï¯Îˆch;Î6[®³ˆIÏ=%“„Ë‹>„­3ijX¿­}Å-~âÖmi/œ¸ <‹›±Uþˆµd{åðÁ­¾ãóŠ52¼Þá;e‚­qyÖåÌ7ÑšÆda~ò*Ýú®RÍßïëÁÏ_¥ÐÚ0f&¼ŽW%ÊÑñZžáÛ·ú0ÙirëÄ:ò¤”~{Ûy\Âß óïÓððÂyÚQž÷Ä.}‹áZ©ë8tÄœ@oÙ=Wð-¨_†kíÞI„ï8X>:Aä;£0™¬¿ŸÞÝùý̶eÄ;Ýä!ë÷Wf¼R O½›GÛúá™û™¿“Ë3=)²m}˜ÃøÄód÷°«rŸöÁ€ù#¹£ï‘ÉÄ"“XÍ?¯læŸG›²{Âê¹<á$…Šé‰[ÿâ4(mzÂ-Á÷@ÁCd¾GRz™7ï'%™Uq83Û `>‚”ãèëî÷“û¢ººé<\+L¡vZ`"ÖÎÏÈjÊ“¶éNÊÆó‘!Íà;)á¾dAÞÏNû—ͤ)…Ž'ó`´NÁ`Hª¢$XÿÐÈ~y÷<££ÙT™àüMæ5Óíw»kzn³ Í=éÿÜÃ=?iÄÿhhàÕeqTråâ7ø^)ê(Ù ÈIf·VäJ‹f)“릧[B5aaÈ<\FcžQÓa½"qTÓ5Ô6¯é%ä!RM®ˆÌ-î±j X¬R·Ô†Öå³þó0ó ™”ýòùªÇ‚²%õÕmeí s˜ØØ/f(j&d´ÑOOAR©vÆEÒ‘N„q‰,(û¬ý—™ÒŠPÄúIÙ¹úh™Dˆ%‘ßa)>¡¶ÌªL´&Byãcw,÷ïó‘ÃïHäÖ£´ã¹Å+¡'å-úl>ì[ÜL«X®ž%ד-³ª¶5¶X­kfJêïã%”)”æ=;,Et5ŒÃñ–ZbPmŸA)áWõ;Œ*R#&]%û!6ÓÁÌ|PFJDŠLI”0ÉÇiY>¦'l¡¶ù²3@/¶$šðdfÌ’$º©ë\ª¢:‘«I%或ËD¨{J—tþ–*>";x&ª ñy©;óýjƒ´´Ò1à­=š&Þ^jœ•\Ÿßָ璠Öð hj=2³Z;y‚ý&müOfÆïöD}¸5PQ)‡oŽós ŒÃÑéÏÜ×a3å=óM¤ZƸ–ÄUçòZâÌϧtA”û·¦ºlî ±~u˜…jBéTªæ™ÛɅيس¯ó 3³±?Ô‰è ½ž^‡ä?,U""åP5Á§ÙÖ§=Øu€ÔûP…«fbt¥ï$Ï:Ifçó?Qa޾Z"lè§YPüÃKÏ,ì$[ç#m2õé0! T`E-?q°©ÜJùÄ-;+êåbâhvÍKK"©ÅΪž{_#fšmê # DsøÆÄj0wl|’Ü@¬ ¾tAFãîE€:Hª'§©Õ5AæÍ~D*úeê‘–j])µòò)7Í›êNI/»#Õ˜$ΆƒPp€È‘¶)î†Ï³òwü—ÙbžX[Ú (i³‘×D}\»ó¤á)ÃôĉB_€Uå!½“WX&»2¥1Ü‘<Çýˆ‰È„o=cÒªÉi)Á•yPº*ÇÚ_7‚Kf"5'n>»ONœÝ@oÖÓ¶AïÙÌyܼEˆê) ™Õ_Ú;Y½í‹ÌTRÉÂ'S_¦O8êmÖrûï—õ\¬åöß/«·YËí¿_Voëéäkõ6k¹ý÷Ëêmäü÷ËêmÖrsžcÉaä)ÀiÜ”hF½ÍZnœèaÚpæ=}}fS«œ¤‰lòœb$2#Örc.s¢ÄÖZ½Íã5W:뷵ܘ)_Ë] ㇑QÏJõ6k¹¹e$NŠ—Ú Â¶8 ‡F"‹Po³–¨ƒäÏõ6k¹‘÷4œÓ=£î··Dú4D¸[Ú‘5,Yž,»™\)üùeûéü°ÞZƒÍE]Y&v ¼;zzG1¸'_áCw³ˆ2äû–;xBŸkîlz¤lLž¸&x꺊ã]ì’¨ŠðÈCÈä§F^‘‡X.á’g$ylª$“i:6J°ä¹@^@è˜hn¿Ç–¢×êE^Ò²ƒ£ZV­¹ìÅœf'™ ÔBK¼ý` .OY:BzÚOæ1ÑšIF£¿Í‡þÖƒ”_UËõøm?+Þ¨2#w\~èÀ`@ìÑʘ22óTÌxGÐâó¡¥'Ý Sx)ªÜh©"‹#oñ‘¤MGÉ;ªë–™óÍ&gE qxZ>™Œô¤¤¢²³=ú!¤oöyÅÖ­Ê…_µhqIaðȽÛξ¼$Gb‚W7°•쿈3{°e>ò‚r{2?|w©öJU® Gåª]C&UGq;)ÏÅÈ«eб‘– QH¯®aêBžò·Œ €ˆEwTh·$KøwzúêM)lDz þ}ÙIªþ%£maµÖ`Ë¿/jÇ@ÉÒü¢&‡ìUS£xnmh,û ùÆ1)ÓajÕ]\!a¦Üí©¦¶nµäý)ávO?e)¥6d¹)†I8Y(2XÍ3èßYÏÍä1-ÖÅyÊTQWÛÈþŒ )JÔ¿éRþ­ÕæpA†û{KÉ]ßß$|vèø¤7i^»,…vÂߨ~WÎÑdœ{­ÜÍ™¿Iصqô^þþ®[sh¦Ø-Î Šªª*Š)±ï${*/!aÜÃúøäF7»¯¬(¸MúÊØÃŒ´ïD½©ó$¥Oj(dÍúM27¸Á‘ù™'£çÄ쀓|¬…’ËΓ§œð˜Ú§ïGÁ ¸Mò °Ðóøä{é\É'Žq tJÕà*¾IÍpf…1ê‡zü*Œ”shLüvÿXZT*&\¤ÆŸNkéT0itJ?F1FHjTƬÝ7ÏŠ£Àì!ƒ·Zæw©+G¾j!“wÜíÒ×10k DÞÌylX$#¸‰ì×^ÈlØŽœÿFõÎEÈ©#7¨t]Mø‚¬¸—Ð Új3Vrw^ú{ÙöîùÖ¹Tñ€·ö–ªø›mÄosÖ´¶;5sƒ*3ªÁçÚ®äX+²ªŽñwç½8åž¼2_MÄ%VêŠç!–Ö|ÝS†l1ÄHZ>ÿçè,À&²hC\}þε|þ'§êóçù/ž1× ÓɺŸÇ:¿Þz šg¼xþ“7ÜÄ!ŒÎHئN.5ë ï8×:ÌÇët0ÿîº^k2ËÈÚ&¾ŸÀ7ò´ª!¥ÓàÔ¡†x6RÍ9t¯ˆ‹—àØÊ©XMž˜uÈsš<-«V,³[óZøgᡊ¬Ó ¶•ófÌdE_–ñ²1Š I! £èþ<«RÍsmŽ!E¼ÒbªüÄÄ<#oBeM˜s3XcF1ÂÄ)A1Þ18©+ [Tæt#}øEå;ÿ´…j#ø!õÀ0;ã40weƃ—2"?ÁÒËIÕ[%bMÈA˜è¬˜dÉä‹·Îáz¨r–Ö¼&g)ëb¤tܨ7ä–^gµ»~hàh½»Ö; -XMX'êNE¢ qõ jÒ¬–1ÆDªæ\|ý{UïQåÙýË>,¸4€çíb½aÖð% ØS@¦™M7Ùn-æå°àr©³ç`0e½puÄY³C:Fqu- ž‡qu9ÍSn ´d lÞé`£žƒ‰gš…Ë ZÀóüМ/’Fòúû3xJæz=h%XÀ:3oØí3ÿ!ëÖø´‰n«m:¦„™îA¶P4aÜY¼¾¯*Ù˜ÍG••z ±&Ô®zàµ"´"¤a1ì™Ä4å< ü±0AöýønØùy‰·~‚•†J„b\Æ]Ê¥8)ëtÊoaëAJy8áoÀn|!6ÁÐWÑéNøÞÌú¢UÆ]Ú¤/z»Ç>ËVãx ‰4²ùvŽÍ㱞·3è‹NK+¤#ÒÔú“ÛŽ!ýMTÌr'Y’OL•¡C ú(7Èi4 G³°$#É[§wÞ´NëôªTy•K;7WDóƒnRø§ ¯Ä®KxÅ€ÓåLAM3sÝ+á\ÀÖ€^Äë8ÓS²p¢;½ŽÝ Iö’;[‰ž&(í¼–¹‘²*„Š¿Žƒ#ô»´G!]µjîi{½i1)y+´ÉàVT™¬f[ŒJ øôšx5in$—+&‚V¹zM§!ìæ€s$ÒØÌâðÀp’ܔԜ=DÂí.íåñPÐ2€îáMYí `7‘2ÏÙn¢WßÌî(Fˆ£´4ÿûúçE^)zæ7¯ ®§û"a¯Íf0~±±ÈØ÷øî„a/éª. 饀/µÿ…¿á‚Jxà6ûhæ-ëôznÅ E-ÍÆÁ'òÊ|(W€?1e'ôÿÍN!xÏ£º €1™3UÖûçY@•K©hYU¯‚¦²\pAƒrA%= œŽgÞ‡Íýù¦ÔyaɔƄC=®=’:¼¾%Úá¸aßWiùøçˆÉ Z¢Út“¶ñT{ß¾šã C< Aà âx²YÀ°€ `9ÙçË_»œ4llª’ª3M÷ÜØ>ª¥Ð¹œi9sSTê}Xàd2t`ƒ|öú÷ÞÙÍà¡ÂÉêhÌ\Ûï&*ï_ë¢]Ô‚Çf8 !AA3µëðè¦ýã@΂FIÆð9ÊÍcxÜ‘™szs—K€'”GZFQÓd&ǤaP3žlŠ& °R5Žàô7Ž‚JŽX¼›&ü½¸^Õ S͇¿O³‚¬C†…¾ `l™ UÚoä8„2…‚ÄŸHŠwÁüû«yÜߥ¬[Â4¬L/Î_œë#œc…ñÆüÈ©ž§œ“L< uìÒAû'¼Ÿ TÑ>*8iб }TÖ=l ŒU¢ÊŽ#DœJEÊ$sàëË^´¡Bù¸ñ°…cë6fZµà²ó§RtìF¨EFUÞä%*» ùǽüùn~°_k%sÍVdâ‘Inj%ko¨nÞ@¢³M j¹rÖ#Å.›i«å˜HŽ>?›µax$ဤ´VB¥Ç+Y$A 6ióP·h–‡pL‚ÇdÒ£I{Æ@ý#x„`ôM|›x2³ŒQæ “)oV#4›‡×p—–ui¥”£ÌâJô( xá÷•¼9‡s)¡¤jwp´8º„®…-¢.éN±‘݃¥PrxLD§7±é/‰+™”„¨Ý˜þ»œ‚Â.¡l}øýÕ»uKÒ)ð!³ q¼·5ΪN5šjUÚ IõGå„ûÒzsËBJ“N×Ü’äî}-¶r¡Xï(¥Þ­ÇÌ„M­ Sî)ÁçΆzÅõO–Mcœ¢Ä?º€B Þ!V¶è8]ÞÐi¡4™5Æúk0‰‚(‹®¯]ßp”ÌHÙ߸N™í^";p/Êë~Ok x8N€½Ù¬_0×v°FÂDÛt˜%ÏRPòêµ¶kg¡ëŠ®/¿x®àX¤©Z@T̃Â×gçZ ƒp…lÜê<äßNšë„êÝa΢´‡-¦8æYv;nÕ™æY8%xÑÔ,#}™Ãꔵ†Í !ŒçYI@³ðÄYé!‡ ±£ÀÚ&lŸ¹y?¢½©Io±ýhŒ .\j@Zø ØQL1ÙƒóìàäÙ)¿uäÙɳ™f pŰù>ª òƒ× <åä.ö–É•faêF¾Ñ|ýÖp Q‰lî—¤3q0lIï >Á† òl[+hb@àGH!`Ë ŸÃ‰!ëÅ ñAŒêæŸÃ‘¾ùýkŒW8œîcI ¡üǃ ÅGåYùÚ)£‰=EŒ$ù8¯6fƒa ýÆ05gxï ÷(ªá„­òßäbQRµ•.òórùr½/¹¡œ; ‚ÄÂæ”læ‰'S·ðBà÷»P¸q•~‡¼.OóÁ?ÃE0ÜEòyóExc<:ZùæÂ-g»­ TоBAÕÿoB q–žËUÈ zbƽʣŒLfÔn¡ŠÒNf¨C¾É‰iÝœ#"Ó N+4ò(âÔà1†è¢‚Ð2ûï3±!™ ,²(2uÔ ¤¶yJSÁL˨6agP¨qZÓ†Ú„b–˜Ù¥ÍŠ ù=qrA[FjÑ'´² Ì“Áv³A8M椡¸ü@¨£ã¦4]•LbÓA QAL5û-꫸¼E¨c€ˆ^hk#@„¢§L¶òOõ<=›îwŽ+ƒEYôn0i!áQJ TWðGB ÐTÃ/*h†Q¿ÅɆ¿o‘—Ðëm]+Ö>îõø»)1‹¤-¿yÝpݬm…ƒ…þÅNöµÆÁlŒÝ“‚ÜÊÏ2““TEêp(P8¸Zà|BÚ)i‰“EÆŸ™ýí¡–¯¯Ž 5¡½ò nW5¹Èõ±£âý#±ŽŽ`œù ¨JjC:ÏD…Às<ºh\1VÈPL%iÕ'Xƒ±7«P5I&Eé  ¾s°ÿ¹<‡Ž¨[,0eak]IVóŸøªæ§&ê:ïphYˆÙß±8TäR%»] Ø,ξ8w‹Åà—YgV8Ë\ê͘Tî8ƒ.‡í˜[½L;¼c!hVÐŽÄ|Ý8÷ÏJƒ Ìi~N±:íNnâÊ23äb¯ã ¼.s˜ô)jÏÌ™ô¸)þÆéZÔŠ]ô&ÙóI´ë]îÑa@O¦Ú,[„£¥>’Oô0XVÉd¹«Æéù¸Üçƒé÷¶ ß ‡Í²Ú*Ù>TCM…Ÿ?ĽÎS/?_HuVioœ³16xÒ"¤±Zɼ+fcTì,xôf9¬Y>kQTKÞÈü¾Jswð~—ð©‡!( %zÆAÏåñ¸§`–ÇÖAVl~‰ƒ3þ²¢îM¨‰Jë@7¶¬`öšå2gMGP”Ù¥'8;ó©¶åe¹ÜÝPæÈèBO´ÁOè‰åíÀŠ9­øàÓåpÀ!+^ÎÆÀÝñl. ÊòyØ3&‹Ö®ß?$w å7']@Û†á]}§ñ!è;ùì3¥®uyëa§&O€…ðüdJ,¦ðáÈi*ïó¥4ÃNpÙî:Nøo”ë8Û¢¼æN‡w]ËS{Xµ‚ƒæj9wÖåÐ#R™ë¶z #ÏÇO;¿Ù&+¤<Ü©ŠÎâ\‡GЏ‹Mì´äõ$yo}H®ò‰™8Æf%p¸›cñné_ݦòdªã_6YUïe%U&rìåÎlJ« «úCø¸ZŽóÖ@ ͉ê\ò‚:½Æ4玃±q‘(#³£>Æ}õº‡‘\PÍkíÌF¯æ©tJãa;Ë''ðWiVP›é‰W-¯UMÃE&)~ÝN@ÕÑÔyµÐ°ë;¡‚¿Q²%4jD¢Óð§šKùåÚYI4~œbCŸ8¶.kéò”ºÑλ|®Av r[Ú깕’X]ÀéÜ { 4‚¿åz ¡ÒÚ¡<€Ñï½dzùœ^XåieÚ5ÀÝjïsúPýׯË#¯Ã.ùÍêL¤ˆoíY/Î/®–K£TîhEòž_Ï„¯‡wFÇ ÓFJG–…$Ü0ö+QÓ~áèn9ëÛ½ 'ËH|m˾¯†ÔçN—â|2.þõ~ë±~–\¯jýJ\™ð2ù¬µñÚÜ÷` Q%*屿œ´eYªXßN8Z¨LŽnó™ŽJD3Èœ‹Hï2¨DÛF•¹éæºOmstKnù8å6;Ûƒ‚¹Š¹hƒ£\zHvÐ)  !JÁÅy#ái¢R&RÖßäë\Eãžó zŽw†êÀ¬¿»¹h9ZÝvZäèW1l„—×*ÅK8 =hHŸàS± \yi-€7Ô㌠ŽÍѰ˜pòé ·7›l³1&WÌ6[´{ÒÞ'býÅUm° lo™=2TÍ‹ëd ¢P¹^À$£‹Ô¢¿Ñ7Ìœ2ÎH„ÐÜ¥¸2ý]Ñ'3deKÚ<%ÏKqLâƒ÷FðšÖ,°Ê¾´ø›NYÁÖÔ-§í|1“!Ùg¨2ª:á¦meÑÆ€S&*{×D°zÐ0KmnåƒÛIúækÐþZ´y†ò5ƒÝ•)ÈÍÛ aŠnYdµÑ¥di¹ŸåûñR«t…vŒ2:ðý¥åÒ”+`KÀmæ0°cÿ¾Œ1iø¶²æýz=îQŸà3}«yÔ7ÚóTÛ÷dC;m:1®ÎáÕQìL7¼‡À•Šl5u]ÎÔ¦‘£¸/¬(6ÄgáÐB&)í¬‹Eiô©ne¿Ëo0+ºÍy!­›ËEÍ À{ãA:>Y<¨Éä0@0{`¤ø 6t݉°tJ—o:Ës1M×5úµN×Ñh &¦+Eq·ðˆJ3h‰À}”ã»ùú5}M™á¶¿„WW<;OžyÇùš ÏZŽg>QB®Iò¨ëaåâò<Ç'5 ~˪¥ @XØj!ÄœºFLå’—®Ñý’ÚéÔ/ß~>‘ø ”Ç@]^ç48¼YÊ©a@9^}ú Åh“•FK\XX…¯. Ñ V4ɲ³ˆé9”?ñø}oÌaC­æqMž)§¾¨•2Æbâ"X~|€’é0¡ÙM$BŸ¯Ò:u½ÁóM^¥Œ1Òýc¢e mòŽâÔÄ®Æ;Zy‡§­-²œž—‰‰Åšk:|=È3dèÍ›kÜ×A‹°éßÏopIøŽo„ Ù»= 9k·ë ·£û÷óTÝM-ç\æE¾‹y¶ôõï®[ý›:b„™‹ÌÆ›ƒa9¤®#rà1Âí¶“dB²üçÈ%Ëu™LJ;¶¯qNåq!éks9_ÌÏö wGºðõê‘™šÝÆEå¼äV`v&|n9»¤+MÒOå%%{DíÙ$Õá«z¿Õçr'¦š­Ò¶Ù$<—™^ŸaÅüû¤d&œ.ø\Ú:gaÅ·ñÄ¡9J(Dl”ƒòŸp÷Fð…©I£‹r‡Î¨cª °µøë•›O¤„€Âs›ÿ¾“ÖAal,]Í5\TçÍòØ1’•NÖq µ¹ƒã–ÆPU‡S¯i7Ð4ËßÛTñó&›å7¥/dV.23·ÖxÒP’-³Kt7Œm>|žzlÈül°{‚?¯>…÷¼ TΞ·¥¨Aö îÿg:ìÉ·ñ´HƒO|ýÛ_ªÿ³Õ™b²ÐF/; |µ³‘s*ã)$ÅewH‚#Û†UØw`Þ–] vÂAý¬/^Üa4äu¿¸ÂƵү¦‘Œî¹d"/ãf?vÍ®]“q?òaCxðW$¦oOÕš'ãùï­n?Bòé=^ÖÙÆ6‰Þ» së'E 5 «xoÇ4Pº™†üNp7ÄʱÉ*•gã÷Ÿ«—ŠöɄߦ¤Àæ .tGäÖtM#š°Ïn—¯¾È}QšZöIK½h}Cð vªjéö:<wZ[8ýe{&½1\|úï} ßí“—Ø0Ÿb{ ÷ÑÊd&‘þ0€Þ_|öi»§­'—父+— øõ²]ÀýFô·ýpà—+B5àþ¥`Ö Bëìªq(CYö¿Ùô½g»P7Ól¬h«•²Må@×§p›è¸ü‰A:„ÍvaÙm•Ó7¶Í2ìR¶}]ûÛ… ×ío\ÉäÎIuW\"{ÃåµJÑMóÄš­ÃžÝ WõúwÚÊ´ Ƙ¥F¹smz4L£ñ‡hÿ²f4ß϶;ë€å HKlÐ9‡öè|ÅŠRÚÂùà\¿â °¥J[TåÞlr?ª]Ö[cß Ð(r¹2™z(‹éNlޔјkSɶêšK£} ë›²^¸.ýè~¨a¦½’Ú Üd>é@ÎB&:8—æöA6—ç¸@ó©C C°½ H@Gn4þЗð8ßéL:C~aÓ¡]8"žSË´ž¸e±óãEû;ó§”Eƒ!»"ù-MBUõµò©ÞíÀâ.^}ÙšÑtø¶ùÍž.&YÊ OT©É«c»\–èe2‚ô«ÚIhúz«€®ÏË…¡«Ç¬v†ùÓÿñ¯þøË?’=2>¾þïùïy$”¯ÿûóŸþíÇŸýøÓ¿¼Nð_ÿùQ?~ýõÆ8¯ßà1o,@_¿óûã>ÿñã×½~üë¯?þù×ÿçå…ðöëéðr,oL@Γ—‹BŠjñÁËWš}ÿåcÓT›úƒ—ÓÙ“{þƒ—n(“¾ÿòÎ,äŽ.ÿÁË˳ìï¿\>ÂõÌ÷_^I»Z8>¿ÿòPŽF^®06ßy£I'ÏüÛ/²‹à÷oÞ¹€õÙCÛè°û«ŸtŠ‚¯ÿµ ÿåd€€øä_gk§‚àû/§Y²ñ¾ÿr¶º Ø•//‡‡óè‹ËM®ÐGöÉ‚­Ì@õà³WZšwBoßù¤‰.g±ß9CÍóý—7¸£?þ׫~~vfp<¾ó%˜#ùì{O’{{þÔ%®0×ãg>q„:¯¸;ò¡}¸Þƒ¶1Ow›d.¦´ïá^ŒÇ~ºÓ¦'èÛøàû/Oô=>eÕ§GÜfìóÃóuQÆóðp_ŒÈ|XYLIlž•5C7Ïj*bY :邟V“4…{XÊzÈ<-I({VÄ7Â;ˆÙïÓö…õO{'2ÚŸ6nú·)õxú¹+ØOï9-[Ÿ~ßÞŸµ`äêÃçmÎT®O;çÿ6ÛÒ§Ÿ{KNúìž³!ø} xö¬Šxöœy¶ÆÂ<\ßB€î-‚Ÿîk¾î©ÞîçBýž%‚žcÂ;Ÿž¡B[ŸàÂzŸVBšŸ–.¹ŸÖMBÙŸmÂøŸVŒš0<.W9ßx\+kºò´P×lça—àÉÒÃÅs­ÿ«?ú÷ÿÊ2š6 endstream endobj 384 0 obj << /CreationDate (D:20150225101847) /ModDate (D:20150225101847) /Title (R Graphics Output) /Producer (R 3.1.2) /Creator (R) >> endobj 385 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /ZapfDingbats >> endobj 386 0 obj [/ICCBased 387 0 R] endobj 387 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óû endstream endobj 373 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [146.846 298.678 153.82 309.796] /A << /S /GoTo /D (figure.4) >> >> endobj 374 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [304.514 243.309 311.487 255.17] /A << /S /GoTo /D (figure.6) >> >> endobj 378 0 obj << /D [376 0 R /XYZ 89 770.89 null] >> endobj 379 0 obj << /D [376 0 R /XYZ 135.962 490.415 null] >> endobj 380 0 obj << /D [376 0 R /XYZ 90 122.318 null] >> endobj 381 0 obj << /D [376 0 R /XYZ 90 122.318 null] >> endobj 382 0 obj << /D [376 0 R /XYZ 90 111.359 null] >> endobj 383 0 obj << /D [376 0 R /XYZ 90 100.4 null] >> endobj 375 0 obj << /Font << /F8 108 0 R /F67 131 0 R /F57 109 0 R /F62 119 0 R /F83 268 0 R >> /XObject << /Im8 372 0 R >> /ProcSet [ /PDF /Text ] >> endobj 390 0 obj << /Length 1674 /Filter /FlateDecode >> stream xÚíYKoÛF¾çWè(³»|M§H7(ZÄj/M´¶YREª®ƒüøÎ“\Št-«MÚCkíkvgg¾yÑ/'Ož½ÎÂAäI &‹An© “ăÉlðóðÍÈwÐ h[h×£qìÂáºhkh•,/e¬¿W¼5„®ƒfxXzø;çéÊ»‰K9¨’ßM=OÛß›ØG;ïÊŠWo=baøªó;|míÝÈ „ßW +›†Ùk¹ý¶Y½&¾íðpbG¿L¾˜ÁØÙ ·) Îñö3aÃßTÆ™Ã[¾Ò3¬ ò8ç3&¦;,ÿ,ñ ûKá½jä]wô´%z+w4jñôŒÛ-†ºª¶ª¸R%]­ôÓ] Mû1—õ¬^ݽÖBÊ2 ’¨Wpdhîß á7Щ}K®GZ¤ûïY¤F_Ü*{0ÚØèÑ̨E f?¿UÚÇZ¥%$@`$ȺJd½ádóûYÌ)æóEŽÒô¿ÒÿC½!æAù²K0_FyÃÈIºüòn4CǼâûŠýJ\ÛS^!̹¿#¡îåùOn.xø+ž0õ¦øËþU”¤ â&q;6±A”:`‹Ø¹¸“Xs9ŠáˆÕRÔt¡1ˆ¸+*ʰ×Ý×eY&‰ž6ÝPØÒ„»H WÔÿ}ä²áœb׊™Šíhì8œQâR@ñ>{ÆÞ}cÆËö—ï¬éòF=eí îKXŒÄ -1,4ø-ç¿ácQ¤„Ôy#¾8õß&Ò3KÁ[MêáÜ;Àç)6رУúw 2â`^Lññ×Âżh·žz'ª ¿È3’ívÊ w¦VsÅÛŠV"1¥»b;ž/Ú‡/õ5fPˆulAþqÜÒ;Ü•"JHˆ iæ²A®mdzF .ÕUÌÔZ^‡[Eq3¯jïêÆ¦yA­*ÒUT¢hçâñZË,<¹>xZ¬ù—$ܹðª1á O/Š•ZBЋçì1ÉÚNâH<ƒº"¹l5Î2Hpf¯yឥÐd„IÄnñÛ¹ÝåAh­ŠŠŠ¯%ÌÝP©Ý2{LÙuÓ6b®@7~ dÕÓÞ:ÕS”;'4u*[û4`"C|Ñl'¼–ÂYã^Z¨t®iˆIš ¦¥Ú¹ª·|O}NAÕÆ¸‡púæa$&H#÷wp‰w÷âÒfyšäѸœhø6Ép9ó„Ί{ol¤¡vU*{e†Ž7×[Š£>št½¯ \ã¾>y‘¯C^ªÆÑѸ?4ÁRLðÂ-Šì÷»³86­¤6n#ZÑôadl“4pqØö³÷Aåì4qdIEÑ?äÓilÛùŽŒLÞ’md 1W”sP$àÀŒw®ù>˜½EovxžŠK¡ö–yâ¾hVb˜§è,#ÛTÁóµsÇ·+F -§úáP¤QÊC”UبY(_¸¬ó^¥ËêsS æ^á é¸§á­2sÏ£7’Ǽe65L(;4 EEÛ”2DÀM÷Kƒ–¤SMÐ.)b«»6íd´_'|°¸_^—êû}Ò¨i˜@Ò­î=”‡‡o±Ü8û Ìo(¹~×'%2³«5ç‘ðr¯  ˜²ßi1k|3íð?³ffŠxÐÛï<çrAÂ5Ýy¤Ÿw$ž¹(ƒ÷ ¦÷Äv?êÉôbܤ"ªûÅêN£YÉÓ˜î)ñå‹+ E\éjLÏä™MVyž¬™6¡nx ä¼²ÕoL˦ Ã…Jv+رO ßàR°J®É«T4¸hns©A~¹î* ëãŠÍÐO¸ëÂD®ò? ]YkAÓÔŽZÕ|wP€®º>Ñšr½Ü‹QÀüȈB.gÿ ¾]ÉAý‰+{9ú;“‚Žm“ {|¦ã­k&kùßáè£'8Z.¤Î; QC–øc~Í ®\·^9]>ZßÝT O›¯t{zé©çò¯ýÈAJi’ ¶w…!i™ÿ-’âÆ'¯&Oþš2 > endstream endobj 389 0 obj << /Type /Page /Contents 390 0 R /Resources 388 0 R /MediaBox [0 0 595.276 841.89] /Parent 371 0 R >> endobj 391 0 obj << /D [389 0 R /XYZ 89 770.89 null] >> endobj 392 0 obj << /D [389 0 R /XYZ 90 734.024 null] >> endobj 393 0 obj << /D [389 0 R /XYZ 90 723.065 null] >> endobj 394 0 obj << /D [389 0 R /XYZ 90 712.106 null] >> endobj 395 0 obj << /D [389 0 R /XYZ 90 701.148 null] >> endobj 396 0 obj << /D [389 0 R /XYZ 90 679.23 null] >> endobj 397 0 obj << /D [389 0 R /XYZ 90 668.271 null] >> endobj 398 0 obj << /D [389 0 R /XYZ 90 657.312 null] >> endobj 399 0 obj << /D [389 0 R /XYZ 90 646.353 null] >> endobj 400 0 obj << /D [389 0 R /XYZ 90 635.394 null] >> endobj 401 0 obj << /D [389 0 R /XYZ 90 624.435 null] >> endobj 402 0 obj << /D [389 0 R /XYZ 90 613.476 null] >> endobj 403 0 obj << /D [389 0 R /XYZ 90 602.517 null] >> endobj 404 0 obj << /D [389 0 R /XYZ 90 591.559 null] >> endobj 405 0 obj << /D [389 0 R /XYZ 90 580.6 null] >> endobj 406 0 obj << /D [389 0 R /XYZ 90 569.641 null] >> endobj 407 0 obj << /D [389 0 R /XYZ 90 547.723 null] >> endobj 408 0 obj << /D [389 0 R /XYZ 90 536.764 null] >> endobj 409 0 obj << /D [389 0 R /XYZ 90 525.805 null] >> endobj 410 0 obj << /D [389 0 R /XYZ 90 514.846 null] >> endobj 411 0 obj << /D [389 0 R /XYZ 90 503.887 null] >> endobj 412 0 obj << /D [389 0 R /XYZ 90 492.928 null] >> endobj 413 0 obj << /D [389 0 R /XYZ 90 481.969 null] >> endobj 414 0 obj << /D [389 0 R /XYZ 90 471.011 null] >> endobj 415 0 obj << /D [389 0 R /XYZ 90 460.052 null] >> endobj 416 0 obj << /D [389 0 R /XYZ 90 449.093 null] >> endobj 417 0 obj << /D [389 0 R /XYZ 90 438.134 null] >> endobj 418 0 obj << /D [389 0 R /XYZ 90 427.175 null] >> endobj 419 0 obj << /D [389 0 R /XYZ 90 416.216 null] >> endobj 420 0 obj << /D [389 0 R /XYZ 90 405.257 null] >> endobj 421 0 obj << /D [389 0 R /XYZ 90 394.298 null] >> endobj 422 0 obj << /D [389 0 R /XYZ 90 383.339 null] >> endobj 423 0 obj << /D [389 0 R /XYZ 90 372.38 null] >> endobj 424 0 obj << /D [389 0 R /XYZ 90 361.422 null] >> endobj 425 0 obj << /D [389 0 R /XYZ 90 350.463 null] >> endobj 426 0 obj << /D [389 0 R /XYZ 90 339.504 null] >> endobj 427 0 obj << /D [389 0 R /XYZ 90 328.545 null] >> endobj 428 0 obj << /D [389 0 R /XYZ 90 317.586 null] >> endobj 388 0 obj << /Font << /F83 268 0 R /F8 108 0 R /F62 119 0 R /F75 142 0 R /F57 109 0 R /F67 131 0 R >> /ProcSet [ /PDF /Text ] >> endobj 434 0 obj << /Length 2023 /Filter /FlateDecode >> stream xÚÝ]›Fð=¿ÂŠú€¥ƒËò5•’ª×¦UÕªç>%yàlζbà vîîßw¾Ì}$q+µvwvfv¾wüfñìÅy:˼,ãÙâj–ù³$TžëÙb5{ç\Ìg[â<»¼Á_xîæiäœÍ?,~~q'Ö~憾F¼û»¹«Cå\Ë®ž=<òÎå]Àó#<Ì!üž÷¾öáÕ ù’§&›SU“%zõž¶º* ‰È¦àï–(3Ùn±É+„Þ Cø®+^^79óC£ú ߊ1ÊÁÝÅ~¦Î þÔÍG˜ðæn”(çÏJŽX?ÎÃÄÆqÅû—’·Äóð{‡`KD»i˜/ø9ÈÉ„ L4à(g¸®AœG‡é¡À‚ÀËtÌ[ÂñÝ(Ðt¤}>q²ÄïrhdcJ±Óââ™.PW-pA-ª-ψFëN®k–|ájBv°ÂaÑ’ži‹H ?÷P^ÏÝ0æ“¢Œ‡¤©ÄÊrá×6œØãZˆÚ–¸DIºƒ~‚°Ö8N‰ý‚9,*:M£1!¸e68Ü )â†Xœhcø¶Ù$SFL—ŒûÊì)xz„x‰iÙZ!Ã{Aj|ð‚‰Æqâ,66¦NŒ¼ãš\woX€37B¥ÝÐÁôFÎÇÊšÚ¹XÎú L+¥œÄë@•—E©…Ø‚&¤’¤ ¤õ¤×ºJ@ë¥×úGÑÚ~š:¬GB³•Xt%êTŒf‹zÂÉ"'Õ_öÆm8¨ñ3uD¯À×MÉ ¹`*nQ ùÁ(±}BþɾS¨Û¢åË‚7·⌫åVêNvÐj]É@îGi ýÁv¥ÞÉ›luÆ®AܤßFþ’óoc„¸Ù2'ùèL²´í?'9ÆÅ±I†¤Ð”rP¦õ©II|ÌQ­×;Áñ䊸/iiø-¦ƒñ |7ª“/è´¼~)ÖlŠK´ð_en%ð»ÞÊ)ÿJî:cj¥å3kç+xž[¾ÓÅ¡ü¼GÑZÅ|ó@ß Úð±*^$u°úHô¨>IL5Ǥ bXÞÁD™"a!5‚0f›xЍ–)¶mM%hêSXV6A».ƒI‘±qH&{Û)SÒzÉÀã`AàTö%ñ ”ƒá[¼O¥«ûž¤K'ŒâB Ö  è·FŠÊªKçãy^ÒD<'¤îä=ü.F6[ 2à8‰Î8ñZhøÂ¡Ò>k&$\TÌîÍFj4\1µHN¢²õ¢2‹é )QÚ¤0RðEJÒŽR]Tj{òAòXvq¦}ùù8߈ùwœtu9û,›Ñd‚ / c~`ø r?ЃÇU±§#5<ó[¹PŸ3/8üƒÜ’†¿Ã'N)x~á©×b:û>,,àùM6~OTï] 99Lq"_ñË%`7Ð á3ïÐÏt7öAÄÚþ=qa=F<‚6tÁ$ÚIn}Aá?‚Ò:Ê`„Òÿz”á=(ý/?¸z¥ÿù(£¯B9©uýD”Ÿ!Ëøô(“/EÂõ :~ø_püø©Ž«šrüØ¿z— NoYáé]JžËèô(¿ÈñKM+³¾©­Û: ®> A[Wˆq}Ø ƒ"tt‘ÔA¬¼JßðˆÅØS±6ë¯Ed£ð=t×Ó÷¾?qÎÄK¢Ì€„gSŒž¯Ó•@j,¾T³&^¬ã§³ä†IêøÜKtCœ¶Wúþ¦f¥‘"©0ö£qg‡ÁL± ë{ÓÞÕT¹µOçîÒ™Yþ»eÇö4f kìy©k¸ŽJGû¨Î¾þñÞÉ>â2xàº?Mw9v•޽ìýØ•·—Ù³¼ S´‰º¦‚f]­¬æ6Ï`÷‰=«¡ˆû*Óú G­(éDu‡¡ó#õJz`•´ÎÚñæþoÒãàŸ$X^Óšù3©?ÏDÀkøjÇœ4•9’÷ë/´uO`o‰ ‡­åŸæù›[ vè’Œ{Ì;ù¾ï⇭å¾õ–dƒn7 'þŒ ¸díÈåýÐ߸^RdäöuµózgT„ÌTùp›õ,p™Á ¦¥!9høÁXzÉ}ô™°AsÕð><ì»å’ ¥'¼´ä½d鉔òßÍíHAk#Pn‡>•AÚ̼4•8¦¸öì‡Å³¿ß@Ú endstream endobj 433 0 obj << /Type /Page /Contents 434 0 R /Resources 432 0 R /MediaBox [0 0 595.276 841.89] /Parent 371 0 R /Annots [ 429 0 R ] >> endobj 429 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [120.405 643.791 127.379 654.441] /A << /S /GoTo /D (figure.7) >> >> endobj 435 0 obj << /D [433 0 R /XYZ 89 770.89 null] >> endobj 432 0 obj << /Font << /F8 108 0 R /F67 131 0 R /F57 109 0 R /F11 115 0 R /F14 116 0 R >> /ProcSet [ /PDF /Text ] >> endobj 439 0 obj << /Length 708 /Filter /FlateDecode >> stream xÚUKs›0¾ûWp3 ij·fštÒÒ&L/mÛQˆ›i}÷!öøÔñ VûÒ·ß®°ô"øIOæI˜–¥—¤*L“Ìk«_«0TZ’ÇB$“´qVq}(½fõ~³)ˆÓ$,"õÙdtž.pYažPÖ›ju}WxeXfqæUÏ^ ®yqêU­÷]ÜùRìàÙXµ¨$ù;?H²\T~‘ÓÓ.ßÐo<ÂRï1ê/J¯(™ŽãÌ3¿kÚ+°¢× Jf`;Ê[ަ}‹G°4ƒ…³öƒ88p  ÙÎð8ºýöÓÌbÀô;¾e•Ýtú"`éí@;PÚÿY}ÂæH–©¥é îÕgXƒ÷/°¢sp¨àõìH%FGdGììí¶Û°¹A#­­FUÌ%aÁæ¸Ù²êþ#lïX¦*HùøÚ7•år<rè˜)Ôb=”ëѳ\¯÷.4RÛsË!Rw~\€×…ÊC¹Ñ­9ÚÊ™IjPD’juÓ GVŽH.x¥-ù¼òL d..K ñ@ýš¢L…hó©ùhèa22¡1ªÑä8èð>=xFeç•ÄAÝ.»ãNC1¾ Åpí£‰®Ã%ÊèŽôø¸)Ð-yÁ÷ƸÌ Å8çQ.Æ™STbºMMÛÉ܃ÿf¨{BOÎ4×Q>ÍêÜ|¡¾¯¹ThürXãò‡m&PÎd†;*·Ü:Po­³¡ËÚÎ8i®z V'm9¨ÆWy69ð%Qµè‹RŠ®µ^"„=‚¼bsvü ¨Ú=¡…]žƒAÍkv£µpè)ë ˜YGø»Å0rºj ÇÄì M|¨™Ýèýˆ¤ÒîZvÈ{M_ ÷é9Šš‰Ͼ¨¶ýn¸â( S i&¥e..Ѷº­Vÿ›5›Ñ endstream endobj 438 0 obj << /Type /Page /Contents 439 0 R /Resources 437 0 R /MediaBox [0 0 595.276 841.89] /Parent 371 0 R >> endobj 430 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./attractor3.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 441 0 R /BBox [0 0 504 504] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 442 0 R/F3 443 0 R/F4 444 0 R>> /ExtGState << >>/ColorSpace << /sRGB 445 0 R >>>> /Length 921 /Filter /FlateDecode >> stream xœí˜OOã0ÅïùsY©=0xl'vŽ€«ý­´à€X°”ÕÒjùúkÇã¦@&ªïZ4üòl¿gljKpð·: Ÿýyµ»<;Ú‡ëe¥P)›ßËë§j÷Єëç·@¤¯TSk±µ`[Bç`¾€óÉÞjõ|u½úó<ªa²„—ûÕ]¸–««ÕÍÅdy1^Âü¤ú<ïÆp0Àìà[ø¯«á¥:¿¿*‚“ðy¨¨Ã×Êéø×؇¤’TÆÀ#ÌÞòÆ¢_—\)ômÏSÙs]w2çrƒ+ƒD=OeÏ©¶¨õšs¹ÁÓ€×¼ÿ6¤y‚ô› êj‡6pE¨LšžÅ| VÁäûÙ^ÏCìf›vBp-½k‡ Ú± u–FCC“½ß«)̶SÂÚƒ¶›¶Sÿ86_ äA¦§mb+Q~|6+U[£uI}t˜Õa!çÅg1Äb©»Øºµ‚çø Oog’ÞÎd¾2ðÖl}#xGe\·²tè\ÃŽõq‡Î÷«Í¾úY¤»åö^”°v Z+ãêFÄä<6Nƺ»ßãለjTíˆMæ’£áX%Í\rÊ\´šy¡W«Ñ©¯ÌE¯‰Ë®†³`•è5qÙ+óB¯N¡Ñ#^™‹^—½2] g‘T¢×Q/bÔºøÈ”½2½&.{e^è5©J½²Jòªƒ‰0Ñkæ’Wæ¢×Ì˼²JôšyÙÖuxêû¯ÌE¯‰Ë^™K^™Ëwæp¬*ôêU÷¢$ze.zM\öÊ\ôšx©WV•y5ÊÇwŸÂGkVI Œö%æ’¹” óÂ\²ª0Ó Ûdžûb•” s1ѱȹ$^š « si 6#{žÐ«Ä\—Ws)ѱ–æÂªÂ\ÂQìB_¬sI\Î…ya.IUš «Êr±ä±{Ïì+«¤\˜‹¹d.åÂ\L óB¯6½¨Ø+«D¯‰Ë^™‹^—½2ßè6¼Òú¼¦Qoœ×l°L†O‡ àÒú6ù¤/ðm:•¶¯¥]©ÅGZíã©:žIkõéÕ‰öCû¡ýÐnõÛ¢U„.¼šØ¸Kx‡¾­šx—ϤM9´qoÁº…EØ ©åòq]6h\,ùb.ïàVÜñZ´ußjxIצo•ËÜ*_¼ÑêÈfÂ?qù×v¥¥&šÖ„ ÿÈwu½ºÿ7…°‘Mnäl¦N–¾™û§Á†N«ÿŸ°‹ˆ endstream endobj 441 0 obj << /CreationDate (D:20150225101848) /ModDate (D:20150225101848) /Title (R Graphics Output) /Producer (R 3.1.2) /Creator (R) >> endobj 442 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica /Encoding 446 0 R >> endobj 443 0 obj << /Type /Font /Subtype /Type1 /Name /F3 /BaseFont /Helvetica-Bold /Encoding 446 0 R >> endobj 444 0 obj << /Type /Font /Subtype /Type1 /Name /F4 /BaseFont /Helvetica-Oblique /Encoding 446 0 R >> endobj 445 0 obj [/ICCBased 447 0 R] endobj 446 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus 96/quoteleft 144/dotlessi/grave/acute/circumflex/tilde/macron/breve/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron/space] >> endobj 447 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óû endstream endobj 431 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./stategraph2.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 448 0 R /BBox [0 0 504 504] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 449 0 R/F2 450 0 R>> /ExtGState << >>/ColorSpace << /sRGB 451 0 R >>>> /Length 65849 /Filter /FlateDecode >> stream xœ”}ÉŽdÛ’Õ<¿"¾ Ù}3¥H%1`€˜P0)e”T¼¿Ï¶Õìs"óÖC ޽Ϯ{¸ߵ˖åüÈÿüñ¯?þ3ÿ÷‘ÛÏ–ôÏ6ûÏrÿõ¿ÿ×Çýø—ÿîoÿå?üûøü‘~¦”>øÏŒ~þÃ:ÿu¬ÿóã¿}”Ÿ©~ÔŸuý÷ôñ?ä<ÿûç9þàã?þèõç:½~æýñõ£ïxw?¼?~ý Rù¹ ­Ÿ«|ôös®#ÍOÖÇϯÍùsö~þYŽ´rüE_?g¼¶úÏ•?Î'¼¶öü1ÒÏ’´ËϽCêñÎ=~–Òù¬#íŸïœõH9•Ÿ¹á­b‹w1wˆ3þ¿$§ó·%ž`ãÕœ–bëÏTâi _m?{Ÿ"ñ<ï»>9Ÿ»}œeÚâį)?'?jýló£çŸmKÜ)Ö//ˆûg.±¸«¿Ä©ŸÀ7·›z?ª5®¶¾¨Uý">F+\o=d;¿«%ß÷7ð4œgIÏI9Ï™ó=Eç7´ç„Å}Nßè\cžÌ¡“ÿ>µ¿K¿_Ôó—çRž'Üã\Ôoï=õ(‰sÏNñÒùü#¥øÅGTü%N`üe¿ÄÙ©0ZGÂzWÜÁ³ã%v-OÃþǽ< uA*óïÞÄóŽväÐVë<Ê9zçÁj|Êæ^@¬ÜîuæÑwgÚâÇgÛtÎBÖ³cÐÎqŠBWo˜Tc½ëJÜf(oÊò1ëG×OKª6®ÔËšA.2IGGáýøûRðõ+ñØæÒøº¿¯ŒØõxX€\V|q<.M\MñBüZÞZÂÖ9tÝj_?^ïo± u6â|ÌGü¾°°Fa@Ž9˜EõÈ=V+ÅJS†µÚTÀW¶­ÓûÏ¥¤UÕçνð÷ƒËß§ç95í×óžC¿Ëë÷œ«åéß´¼Ö£/í‡Ö+.by­çQøÜ­÷1»¾ö#ÌÊ{¿ÂÏê¯ý ¹¼öûÈ:<G^ãu^ü}:Nq÷_‡í<=>]GqÈýÓA=W¼¼ŽñY*l…ùYÙ ñ}þ¿Øæ/nȱ_ßß}®ö9³áõ Õâxâí]>ÂÀ!hYß•ð×8sJºÙÖÐô‰'$Sù¥LQºðl,Äòw¯ø¦Kµ õ¾BŸ—pZ–öñ¬sÈ;é^¤š°Ÿ¨ãÜç‚}Úæûz`K ä­Z·÷½t|ýž\Ý8W“2-Ñ9‡±"ç1h{*>(äÎs¼pîÃìàï&=º3dê…ãDáûg,Nȃ¯ûûŽ÷ÑžgâóÂÃIx^Þƒã—9ñuø:ñû ~ó±iâ÷ót8‚õœ°‰ç=¿Ïîü‘Gè©-'œ¦G½ÑñCë9’#¿å®ßã÷Wé^Ñ~èûήóõ<Ëñƒž÷è±½^¿çè1ê ýÞsn©w´q|æk½ŽL=¥õ<—¿Oë=Fh?¦Ý{íWœìüÚÏYµÚï°!Ö»“ïç~è¼ÜïÓy²èóNQ~GúÞÏyÒ>ÏK7ÎǽÒÚ» ˆ¿_ös¨ÖÀ]9wþëãû»Ïe߰α÷)Ùs¦Ž?o¯òûRÇI ¹d”q^|XLJ-)´ÆWéKðqjB»ž‰˜d *ÿû²çÔqœ&"¥/¨ÙÊå š?áä?%–;Ñ w«ý!@<´¶cãx­k&+¶óüd™•ÎK\nGƒ}‰ëÂík°O¸>R {`?#6ýøíýç·Âi' á†%X"üŲ#Óéˆv}cÚü„å' #ÊK\Á81Vh3áïiÎÅN<ïþ×§ÿgÚ¬õÎÏ ¶;¢»ãMâiÛ9/!ÊÛi÷ælÚ -Ôα;§«>z›pNEÀ^µ³ç4åÕïP¤5ø*®€“Dmã 5i°ö¹†«ÚŽ{7ñfæR‰‰7#`K0Îa™2öLÿḠ)\½ýX¬¸>¬d†fúªóó GÔSã1ÏGÁœêGqöç'–J­¬8g—YËs,Ø~-^™Lhiφú÷Âg†Çß¶åñpòüqFª‡×ùýÝŸq$"áÓŽï€%~ÒÄ„<»®xBÚ+û Z|fiãÕÆ{o³Ýx­â£ÎZ‡8 ./Fæß6OíD©áñ­rŒày¤sxB'ê­µ õùX?Tø×}3Aë¢D}í„;•ž>ÓÑ+aF‡¼“.u†ëó‰h¬cW¸6´oȇvèFYíØÉÍ÷wž‡ ÷~È;i›êæ|>¼©¶ £8ßq+á¥W¶ 7,ž—Gæ¸'P§…æ«§Ä”ff£3o¿/]ŒÎ¨lñfT(£®Œ¤.¢ªþ¾*õ,l_¸+ü‹ãö1ý¡OÏwu×÷é!K(vö÷ èÉe¤>›ÌË`F5RUMê¨3¶¬v&W{’·P_Lá'ûû‹é[Æ31í<­ ë:›“©­aWÊrµ9Ñû•¶¾Ÿ—žøbQÎüzž®T©Ÿ7j²åõ{¢b[^¿÷8’¹½Yýr½ºr ^Ï€Qô×z¹¾÷ãlö«+UêýìÊýx¿»r?>‘¡¯ór¿Oç©Ûé¼uåF|#eñ>¯Ì >ç¹oí‡Ï{Vtûí>ü)ÿYÓcÉb 7w®ü÷÷Ç?±: ꤮j'–ï4¸4È'Ö_…7&>• ž¸#ãõ¦J\Áј‹ÏW/d¬Øy¢"Ù×ÿ¤¦"ŽxÊ/Š9D“ÈÍœÇtý!2¹G¸6˜+þϹLÊóãmÇc`ZúDÁ %wýÈòFu^*?3 >¡ì|ä|ÏÁß‚GDŽç|æFŒ•¥ó;ÀA´ÉŒÇ‹¶ ‡#v%ÐÌFFhY©Ó@˜ki¡dˆ%ClÎ)?cã¼ñ¢µt¦Î‹zWsé(ã¨ññP©žö µõ~>¿za°-‘øÂRl/à‹HžD§3Äó!Ëu˸ÆGœ*kõpf''m’ 3¶Ä³|o©ºògO£$¹%B£d¿ ÷ ø3—®ã'—,âãøm™|jÜ-!ᔇÐOÆxœÕ©`6Åø´ÚT¦'Ô «L€Á@½LŠ…"‘n8>è\Û?ŽDjƒJèÉÉ+àk²¼‹sN }T!¯'ÑðwÃ~_¸)}ɪày¶Ò9ˆÀ†Ã•›ïäWE);ReÀ³L,;óüåå¡Ôj÷6ÐL’:¬ŽÐwé“Fm|·qéþ-l\ GÈUD€¸™*+Ÿ¡°q5ÐZ¬…8Z«ØâX,6 ÌåÖ… Åzvñ©bDåQ€{ùdÃcfñB9«SFìh#;/N2ŒVR™#C„,°gŽõÂÝóÍ9¶2ër½O!Øéµg~)â^ôNæl6j{ââû7–fIðʳlQ:FÖó¨÷óWQ*š†[žÏ:ÇŒ&/Ç3g+ˆ 4YÔàulTCô«oñ3¬XXÿÄÞÀ› "ŒûB|Ÿ ßaª©8MÞÄsQ„m‰§F˜u4G´­ø¨{ç¥Ã>âG5» E¦¶h½Ïi\Þ&èF¬nîÑKžÛ€Æ •=—þ>bÁ³‹QÙ¿þÈùûðq«Ô1÷ Ÿ¨ó«­"âÌ­>T½·â׎[¼UôëÀjœ›Ï26ÎP« Ü*ŒHi»Qi!a­ØÊ©¼ñ¹KÔCãG&1Kª!•!Ý¿ÐZ}QÎÔ…vs‡.”û‡M+9¹ãfÆ”¤ÂZ,î¹g%©¤ÝvÞÏTù «2‘²|¡«[”6tYèl;è¾õÄCᱬáuÕꯈ(tg5¦F:¸Û½8±­ O¶h¡+UVßX×Ë¥ƒ-¼™ùah\ °±BŠ/Cá ¨Å*+4C+Z=Àâg!(ŠL¯èœÓJ}…ƒ(+…[‹]XÏYH±‡ûˆÏ>¿>.k[ʉàLJJeW¼¢À?Á_œÌZUå¾gcjF!áäúå& ¢q¿°|õ0dÉpìQú@\@öÛeeÁ‡Ò[J*(Ä ¸A‰wSš5p × §¶ÃC ïeëÒDn*)_ÛI¥{Á Á U;•KhHè1ó 7N î{j ÏjEžb.Z½Š­ž:Ga÷”ÛT ™êÚ©HöN™’ï T‚ï™ %¨„êIÒyI(\%«½ª8Éa |XØCá@äüÒi@&4ÈÊ÷Î`–ç~wb¤¼?o•7ðâ[ÇÎŒúÜ7ˆªÔ›_ÍØ khÄó¾9܇¬|]x_6©ZäIºa å„OfôVÆÚ‰9ÈÌ}#¨D¦f¦ Nµ=©ä š£s¬SDôæ¶(´—!:ÓE¢ãå¾ÅϸÌm@‚¿~P™†È^ ^|‡7щ±¡ÓØÈ‰bHÞ“ÇeÑ;Úʃ,´ú…BdlÐsIB™nº¢GKMµoè+ AýSÎ>tyС‹#Û£®s®KêNJ!{niw²çìf¨êa@"Tõ€2¡á¢Ø†ª® no·j? ·˜néŠÀ£äúô]Ê,7¹Å÷Çø ùÎÐ.; "ÜQõ™Žh“1(Ê\œ»*dWC>‘æ} ñhÚ¦©æ2öå›°caí§!Ã3añ·;[Îi,ñý‚¼W,ÿrçM ô’\)M8þüü{+Ê(@ÅŠJîq&c -ÆT©U#¸BŒå  êYb“G,úµ¨Bd(\„¼Óm S»ÔjG`jXÊ)ß(üL ™)/ˆ!’©H£ÌAKðŒˆ‘xhгÎ.G®J+).Ý ~­Îh¢sÓêÙé䅆ð¡ìzD1X`ßéÈ‚º¤ÀqìÚ¯âT˜½)”;¬ Rê˜M„ŒòWe&È"‹Yïa,ŒºP&Ça\WÒa çúÈÜ|&‘°žE‡±Ðóàf7¤ŽÃóXn'ٌʅUDÉù¶®‡Ú¼,âôßÀÝòPõ"tæÈXæÛŸ?|ý Úøb¡·=9¼~3ÚHÑ [ž+8ý•Ø‹õënóʉ>‡£bº|X&æ ÁᎺÑs2ÎSRó¦„Gãc,»aWgq($ÌÆºMäÈL娆m-(´™þ‘÷™ÐvÃa}èëòؤ2´Ó-W¶„´…í© s~Ò%AÝ­³Öѹ9Q¹'qU#š ””¯P¼˜TwüDºöô3ÌšIG¬ñH>@¨Ðåé\ñ¹rIJmY¿3qÂ+úWV‘Ý;ÄÒL¥&[÷Êz)ØðSÂÇØ2ÏÐÿ´?ÉW¶UÚ›¦+;i°i_J§w§å¹²k`G{@äN‹;o"Ÿ—é¹R/¿©¬ÉȺ©ç†ø“Ù¦Œ bì³½´®M·E¯Î÷wájÅ‘o Ñ»ÃÃB®'6 þù¢»ÞÔŠNMêÝò®â4¡v¡b¸cDêrÉÇÁ3ù8(„ضÝ‚“ÀÚßôð¢bÄO¤ÿHt($§6ÿ†¼K¥M*ýº Ù˜erˆqëømY>iËÊhsºž—a©M³—‘+/ÕaBÁá+Õ¶`‡†ÆÊâz$(ÐØ!˜H[ÆDÿi4¯úõõj¢WvÁf´1U6 œÃ¦~›v1H@ —'úƒõ·¤õ+ îo"*3/¤7 왫طâÎ/SHA„‚Ørsã3†‚ ¾À„®nÊ5Lªfçä#ü* D:·›¿ÇõNÔÓ¨œÒ½¾ Û]ê~Ì\ÃÉ0îéıq0ª¸'" -ªÛlÔœâXTå ‘M ƒÝ’±Û YsÚÍÐX» @?¦*ƒ‡-HjãØ€þ o®Ê7¢ç¬§b!|‰Dq¡;ôö`FRlY“ —$†+sVžyÃIÏÎ) “«zu0þÂ-Tm;‚W½:míßDfhÅ”E¹ ÑÊàÈ6¶ÞÔÜ­ÓC¬ùÆf¨!††Ú÷Fç"nœ‘¡¶)^êe;’pXâpÛ„H`_Šv”•_=4Þ¼xP$ʬÎ"6,3éÓˉûF°‡ [ÿ…ÆÉF­}†• Á Ù ‘ 9u·A—ûx(Jب, `Å8Èãñ4CCÕìçÙ¨®S=Äq´›mÒÞ°I×9¨t²åVgr¥lL'!eQ9€tf~(Yû rœµ²rbÉ¢º¨dY™ðÅÛé P~–œ™5NAUæpDr“™!·/^™©¿äUµ‡ˆm››# ¶UͯËzÑ‘ËgÊ­°+`ÚÊ3¥…”›‘§ÈjGŽàTã%È» ¢Wžðꄈ~‹£ÑHÚ;›€,6uO\´¥$#%^JêO ,TYr6§ Q)4Ú°¼P¤Ðö•+ômöKf°A… \IR%1Ét—XV’l³ï)@òð6¯ïRA.º¨Ò’RZèOUµ kÅÝ­2Y¡Ïwºö-lÁr¹0eºt ÐTÜÃî¨àÚy —|]ÞÄк]uø,Kø~ª¨Úµ&ÊK×ÃèTáÏ÷¢Ï§¦ÍG4v ·k2]º‘‰Ë憒J¯Î\¦q»Áv‘D@F²$ÀHôEQ;ØJUnæ‘ÃæÙ±nLÛ꓇[÷“a)ò%ÆŒoÅÖ®ÂO"‚+/üžÌkÚŒ¢6”ͲA“ݰÿˆ9½ÄzÑoñ“¼xûC7䋉œ|ÖÍ6GvºLóø11W–"§BØ^ÙÏÕQûòõ™Èhó…±þ+eË•¨æÇÊL,U åNÔÖ…V‚ºº#̈́ũæÕKØ`dÜ«ª Z¦b Ù4r‰T3oæE…ÔÙ|Ú¦‹ÿ c´ß‘yâî¿ë!0žÝ‰O²áþÛݵl|B"·¦W¢*Œqr»HBp¸ÿóB(V#m#[E<† þ Œ§]U—4ËX[*c $Lé& ÷:! KæQ=?ý1† ~t±S+èRlÅëÙÂ+ƒ1FO\ÐR¥éöæe=uU„ÙY—&þ¶¨R¾ÑN_Ò=@åHð£ w!trWv±.eÒY$ˆý½hô‹tç† 5²D 陯r›Ås‹Š¾ÃSÚÑÐy[ÁCâvv¬›yÅ®ºÞæiëSŠíy×v mzù±^•[ߘ`Æ…®ðò—Åõ(ë0¼ü¦¿ Ú; 2HÀXìðòÛCæ^þ '‚x—ÇÃH4—åqâKSFa!ï^üêÆ†û{#þ/[9p°<ņO}Q¦R/õt8FEÀðM¿/ GµCórs$­JÍnRF¦;>&Ù§MìÃÛ®(Ê= ¼ÒÛº¹»÷®¹/²Òsû‡^m·¥K•áâ¼l*ŽÎ{%:>Óy§ÎŠgsWaÄ(Ñ­!ïm°`krÊÉêBÖ–z`NdtBŠÒ÷•Å‘Vÿ?·‰âÔúWˆCØŽøf²¬Àœ@dµ+Y-3Ôº(êÆÄ<‰ó€e²n¶6dÌžÈF®l2õø1luâÆ›)µ³Úí=„¡ó¦àâƒÝ伇—“MÖ9xæ×’g!ª¯I õ؉/yxˆ[4ck]4šâŠS•xŒVPëÿra)d1àÂÐùŒðvмAå"¼è{Z6ssCM±åæR' AY„_Àk1_©º ‚‚s›â™^0ä²´ISƒ{Q¸ Ì¼Áq$tW~¢"¥¦m—FÁèêZJÙ—vƒK´Õ¥RÒXŒý0QOÒ.Ì‹çë ÍP0ÙÌ2$y˜ ¹˜.ýƒEÈÄ õBبpÃî8_Mß¡hkÍ*íK]‹)2Ù¡TKSB;“õ¨×v ÏjÑÁƒß —úòçF+À ЦÉ:«ÎتX+:{uºH<&ß,ËÞ–‹”¼!²ÎÚÚ,4(ˆ+oHcÖ‚³>nác*ðÕû×yÉÙJ?‰‹S–¾/z”b-&]Üj|ò îyMÇ(|U*£â§ï‚w PǼvg,º½"8ûƨ™""X5O~â0aö2ˆ_”3dáHРßúx艃§òU)øù­Ê@6КùL r¯Á±6œ99ÜLÉ€ÃÙœpQáe_>¬GMÏSq8™ârwRà2ÈÔ²7.ó4Ü7”E2E&Ÿê¾]rhg­[ÓBŽðl§“Iì¸ú35Fl§*œŠŽy™Æ}Ó§ùyð‡àoµÕMýr#38j¶q(ÇË­wÓq{„ ØÌœÑ!—óæ>Ãë«ÉŸOJ³be‘­¯åÕï/Å…^¬g-ù ¯ƒ¾ºdg¦¸sè>‰òW"Dü=±ð`ÈëŠ< ïàBÍAÜVrÂHÁ× ³‰ÐË}Y%1¹¼¹ì¨¹WµÓ@O]F6yöq;¡&A¤ÐÀƒ(èÏÝ´^EÀ€Å ¥þkö'·VÏê‘Q3]Pĺ֫oZ¯-ëÕänëu¾-¬7¨Áâ1mè¼²éYR‡-’ó&δ^²&¸i`ÎqjwðÀSÛWrÐíaëü¨m}À¯>€o"!¶Ð€°¶ ïݺð‰|ê´¾…Öo6Ï‘¨$©2Z½hD(tqaI ¥ ÉÔæh®Ä£,‚¹ C&è€Ý®‚p')Rò'å-¯Æ÷·êò Yµ:ٟ㮵º< $q-.%lt-ÃùV+6 çJQ)mó¯‹2ßÅÏ8â…Ní, œ%1‰RmôgöÖÅ<Ÿš û…ÌÑü0ÜÔ’ID4*Bnï#Ø‘KÓ𾤦uE‘é:?m„ð¼ULõy›è+-hïLf3û>Pl¾•¢€huðÖå gF`00fB:çfØ ˜b˜ Ž‘&H”àÒJ×€$˜eäEÌj"¯6Ï[àEØbp-¸²Š‹5AÚœ·$Î_ËÍý&¨é…™VèG-Å}k.…7™.0­Á›sKSœ×Ùµ/2¥à=.€«ðo˜œŠ«¾2½ÇâÖÄAR·|ó‡¡1‰Rk›Ø¤lî6¡¢oPøïÆû³]ìÃaÀýq[uð³VçS¦\žYIñ|e)s€fÛZ„³ÛÀfÇíÊþ5º‚[èûÊËä¾êITgâøžÕ;ØŒ+Ü=(V¥åºUm]¼L&Ö_‚­ËÎ-˜aôô¨u11’]D|VÆ5eó6¡âV'#Ú”àš88!v±W¬ñt–NÎÜ;4’Yd'läÖF#cšñ)øۂbKÝøÖò‡qœŒº#“.þe!í'{¿˜6ÿžÌ!æ×tºŒTÏf!!9¼ j·[Á‹Ne'£è°ñQû•ún–u;ÿLËìëÏTÖ–“Y N¨©98—i«ìëæ&›w"#éõa‹H§çá¿çXŸìrF&ßÈ‚Ú%Â2!ùë—ÐÁÁ4Þ½¼ÍHØíyg¤¼L@ÀÀ˜Ï™]ãÎÛ˜lßIJM6_ ¥t*AºYô,YÉ!¼0ydr q«9ª1Ÿ‚‘¶ü܆É1‘ª$ã¹c'!«[Ð,npkª/'¸;A¨XÈñO/|L+· XlF äà$mnDÜ„ŠeQÀžÄ"¢# ÎB_í]8 ¸¡·9F*Ú‹M¸°­Ø‰I•)„bŒÖ*Ø`…!Bþ­eaŒp!”ü2&°×–\„JCzöƒp'æÂ%CðÝž¢Sdfw2¦jph½pbI«'ð…,"èæ×SËJ=·gŠB !ÿ%¦Ka°P©ŒŸ!zÿk¥7B9¢’;W2¡[¼Öú±â–O¡HW«gG‰z|™û)ïoNŒ:²S¬þdòm¬Å¡"ØXâÈ íÀjUFYðýªÌnø'«<ôIì~ZºRáŸÌ)ÍŽ¬KžB{-:3S൅uE›•š°:Sq½×Ù$(Ž ÕXÈ`´;E,¶1VÍM4ò¾cU {Žhˆ7èMcÌ,t±öÏÆž6¥93 âC—P;AšCF¢°¦'Ÿ:!ŒDu @Œ›Gȳ5ÁᦻÄÌöÐ'Öù—3<\Y>6ƒPÔ¬„OVʉïßîáeif¿ wØî˜J ý-ÛAvBŽºìõ\ŸBHd7ä0‚îÔ|бŠÚ†A«DçòÈÅqÏÝÍ)ëF »&™PV±&)‹öó7ñÓø$4Œ4hC6ú¹z˜ÙÛ'’ËKSô\úq+Ϥ~.bµ8”FYı‹zJæéÏÞé¿ Ë˜é•³Qp(·œ È3!û’ŽOŸ~6=õK5áÓÏwaÜ”×3R“ÑK=±]m1ƒ¼ª§’Åòö¹‡»Á yˆÝÙt©£OBÌdPг÷ÈÙí@¡À‡Í8Û3`P â ¯{ä—Ì´Õm/‚)VpðO ä[¥Þ4(þû&ƒr«Ö•Å'æü¾0(·êsœó|ªÜ™åRT…AL7êÄäÍHKe£ ‚ts FÆw‹9„íîKÍ‘OU»4‘J¯b®£LÁFªá‚ÂÕ¡q@zµ+¥/ê¤×­&Îâ0.sÊ}*ÖZBVRcÎDr[iX-ÛhvŒ¨ÚÓ†#]ÆåbŠ©(ǰ9r¢˜Æ©>øɯّK ÄCÒ¤ëPv˼n˜Œbwl;PÇÝr_Åó4ˆZ&j%ö6§ã#C­ñÈ#\lÄI£]–P”&;Ä¥Nö¨d/±_-ö¬}¹ôâ!·4ÆÔ‡J*-¸YP—“"´¡¦.|¢C-RJBwNاI [ߊj¨«V0L¬ud6ÊmF»m<¸kœ:棘odh:9þ"Ô-j>ʬ‹T9 ƒ“ÐXÊ/'Ç|±(25'mq ÊTBb±„0¥àcС ÄBWKx;ì& ¶Ó† Ø<ŒÈ‘kœîÁ>&$Db<‰ã¾LGh‹#ÞÜ2WcKS= Š zQèÀÂ/Žü)‚Ù-àìkpfMÂú¥A–`<šÔK‚ @fE¤xe’‘o`¡û¦ 2Í%[9ð…ÆÙ²U~D±rwÜÓ8ñȰp®RY ªÎX\€&ú_t´[[X<âÎõ$‚ÌIU…Õ "fbà)¹·Ø”±ÄqÅž]\yÙ9ëw6ð&¦L]¡‚š‡"8ûá Šî©Ü¨H&ípd8M ð„¡l:sï[%Û“#5Jþ¬ÅÊDãjѬ߲ú@°Q—p”0¦(C°feˆÑÛ LÌôŠS'ªIFŒ~†xG'3RƒkXÍÀ=Y@ë2¾ýo(/¨Ï<²ÍÛgœ֮‚4',¡BÇsˆë&·*¶¾ÉA­EõÉ»PúÝÒÈV"©rh-ÓÏÇ`óßÉŒ%ͬe_`Mª[/Â&‘fgoÙª[GOa9i &mOÞŠ8ñE¡ã扯:ñ"3ÜjóL\žÊoº”(’ý11Nü¾ÎF“§_<cn+?z[aiµKÒÚN*wÇOÅ—BBFávkøŠ iÔvê^ªlqñ’ôY8É Cº¹©{˜žtÛ9$;Áf»HO^RL\ʯšPÎ|µâŸÝך€ »òçF8¬-_yá:v$NBL‚„~ÜRÆ#1+ÕyÕGå¨ÚÂÓª;´dØç/­á¤³7U§ž•C8»4'ýNÍ„˜“5‡}=ÍHµ•‹”îPrËCºìUÖoÿ´Cíër&àv Í1¶íæüéD-c Š× l銜Ã$6"¥×§o‘\oø¨¤kk˜ó+Ã$ÆáZ/ ‰|Õa¶ 3QØ,.<%ø !ß9¦o~\f³§x¢"b–MU¼;2;ü:ïà ¼q©óŒ4ˆ/û»´U3™¯ª8¨©[#m'¢Ÿpܦö2ÐB)i/a—ÂSK "ñ˜Ì‰‹ì½ö2~ÓÎj-.Kã@eúPgab {q‡5ÞËäEpR$ö2/Å—À…/îv hË}iœóÁ@v!bZ  S`FŠz`•®ÃŒø¹d»l>µêÍL¥SÓ”éE1^tÜ‹µ6sî2¡>ZQˆé}êZ$6= `“aŽ”ïÊ×0gŽÖQ…ïÙd0ËEY/†ýÙ¤„Ú ‹'gÐÃ4ˆ §ÌÞvh¤.tKU—i î@µ¡;0fµ ý³H…?¶µ-a¦ŠkD”®Î‹ÅÚ`½]Lñ¥8¿ŒSYT„8û2Mª‘ly<+Ee°­ŠZâe&ºÛ£GÂY¢†æ¦NÙ¥¥ˆi¼ð—ªœ«ÄÀ~›W‘Á¹IèÂ.m‘L,U»Ì±AæÄ­^Ì$ÄMÛ ;?ªÂ¾øÅéaÊ u“æe}EØ"OkÓÎ^¼qé"Ô)Ñ“aä¿<Æ=Ë·dOîR³‰ê sl°1‘ûJšâ×цX™•‚W~«·t$•§¬yu7­Ü¶¥4ß 6_jÎè^ƸHl |ŸêÁ5ñ] 3½,Ï ìÉ»ùÂ-,ÄÃyñfºŸl‰ëªy¯Ä9_êà'© Æ~)TÅF»ÀÝi°-ç*~‘»áÙtFe9»˜“«y¾šTÈ@&!,Êè>ö°¸Ì~ÈŠ¹EŒ÷ÁýÁ›÷A$3l4 {] $$:„Ö˜öª¾yÓÕ¯r.çšk¦¸åÙ˜ý4)ÄÒ&w4ЛvSFhâîÔ^"UÍÿì³Àâ)=}«³ŽÑºér§ÆQªnÆC¦±ÖþˆºeÙÇc±»s¤Å£œ‰p9wÔS‚1#±“ŵ0 íÎú(ÏU[ÍͽšnÌ«­–œ­AÐK†÷IÝHTê†IýðŒjÜ´±‰…Ò€:Bm0\Yb<¦³÷3sÒ¼`̳0vVQÅ„ÚÕó<7¬¦›ÝCŠ˘ Z¦T¡Å³±*S»&Ä 5Uí㣭šÞa‘£Li<–ãK¿Ö2‚¢2’‚yqÿ•ö˪2.i«yèr&áLÐÇd´QE{‘c¯›~‹´ïVÊbëV=Úé7Õ»^"S:œ¹‚œ:î’2›õ2/Ý%U`:‡ö·’5Þ%w¥p€)[˜˜¬ûvÒÀQ–«±á6Üé×-ÝÍP¿‰Û‘¦¿šZ3ÊÙËC|q†ÉH6öK!—%m.JWƶù!ú€1—fG‹Ê,ÛÆAHvpÑÙ$ÿ7øNýØv×%BÉ, ¿;%_Ù•äÛdÆÌÇ©á]$·Æ¤A³{‹"ešëLf‚ÌÛÁÄv5«(gÙ ïd7 WÅ›Uéòø,%ÄÎRƒó²ooᇎ51]ÛüϨÛ\•m«Î[Å_HJÍÐpÓ ‹N7ŒdÔzß*i%Rq¹Šº¹¾Û €A(oº±fCŠaý•ü‰Ò9Pt²Ð‰ªA5N]ƒ»0`ÔÔ,Hã×öщM{h—ô/31ã‚R÷ã& Çaºc<ÞÜÖCÑ‘ÉÏrb2Ǩ»tà@‹6ZsO“”ÕéO^ÊZ.¿~Ì.[ ÕܤâÞ0Î+/6¬•x¢}•ÁfÔâý.ãå¥o!²Ó¬NŒ¥®é|A£Ô ¹=p;ã.Ë)S2þ?‰›,„¨#И6.}ÚpÔˆ›dF~_ЬF%$éI) ,Âàëº@qDfKœå`†.(Öܵ¢¾ïÊQžÅ$ÄA^b©Œ S5=r³ÌË5cPº¹¤"²ÕËð•PkŒ›—{¬ôÌÛB?Î@7ä(´UÍ"ÜTf§˜Á‹c+dtw%[1é!àÿ{ɳKŒtçzlB²R@§\ÙÊü±ìWÈýËt<ŽÎé]ŸAÜ=»™3Ô6FdcBæaa*+o¦“å𥸤Åj>½†¦gòºÇFe¿¾9…÷i¨g{QºX§Á©³œ&N©½X¦Ê ܾX§$MvŠ ¾ˆ°‰CÕ[3X„¾{Ëq˜ßºX‹žt18žµv¼: ¼JSæÄ˜g²Ÿ¸›{fÑbnÑ/•üK™P‰{±‰„zZù!«RÃlø¢C>]&ÉOxï˜2Ÿô70 œ«|1¡¨Ñ(;„—…«w9ÔÂhuõ»‚’sËå¿©ØÑâž–®tËRRàB¢¯ÞöÕOŒŠÌÇS™iÓóëê «X¬¸zÍè²ÉÌÙ²<úƒ.3ÆÓŽü¹LnöViA\¦,o¢¥G„Wq>§ç…Î6O #ëg{ôýø~ч&4ìÊν¬› ¡Þ^^4ˆÛêªJi5êÃ*ˆËl]¤—¼Úo£²6û‘„6sv±p]—T×d?_»Íݰ~&Y`‚¯xJÔb?P»mãƒ>]‘‰Âf¤?Expž=˜¤™ùIO:¨CLuœ£ŽñßRÃK\¼ êÊ qTõ¤ ^@.3ŒÞVœ‘©cˆÜã¦5q‚,tBWÏþ A§¬,¥\¶%ï/~B{ö¢™«bà¸ÅzçU¡ˆ„—X?Ãc/ûæ0Qn4Oìà1nwÊOŸ¯„°¬ðÍãR vuî%VÄ&J÷tÎ&§Å_Ü sÖí¬ubJ‹µš^m¥©0oZô”›‡ Šú~^×´ñb§»>_ìY²šÛ‘œ7„jrS† ,º? Ðq—Úý~XáÒµé,/ãžØ–…0BÛšª¶ ½ýŠ™ eèÍ™Kí‹ùãúRù7_JÀ ¾ªCø692±«^lb(| M@¶M…×—bnW |FÜÓuí<Ý!Ü­pã0L=ÈŒÔÆxê9=¹Ip±¦R/û«šÝ‘[©‰ö%TK¸\ÙpàÊAöÅ‘^¡+žl²oPu]~0Ì©v)â*× —æQ­¦þ%98êô>*m>pãMûVaÙÛZfâÆ{#¦>fGæá R ǤÖ3•y­j$úÔ=_1Ô¯5tßõ%4TÒ<'›jwj>Õʳ!çí*fÞl n|Tƽ¹ ®­;#ØÈµ•ìj•#/…½k¸´ˆÀÕG-'Id©‡Ù+ãUÏo!/Kœ!¨UNÎÎÆ84¶ñ·rÊv´¨s¤›hª€ÄœÈ­ Éés9åë`Ãf¾ãªY±ágV‚©»ÜLÒD\‹ÌsÙº¿’4°Ê£qù9Äø¬ç»rˆ1 ‹n-Ã=µ˜3íTÔ=§ýKÎô›f]1§ÌpJ4ã¯gû3q<ÛÍa¿qß{Œ<æ"=€Yµ[*™µÁìÙ˜\¹5—‹ƒÍnoZ4s—Û¼3=v0»yrLZs§þ$EÇåΊϫÆ=g|P~;bc>C4CL¾›Õ-oWx’Öïâ¶K€xÛ•Ó3LúžDò^Ím…`9€ÐÙ¨è;Y¯A¯qWwFƒCR—{é”^ë!mçDþ]þŒƒsVjVŽó¾‡Rѱ¤Á«É¡ØSîC…úZêh­Mƒƒ‡>¥pPz’„‘p0yœ´]ý«äœJÊUDt/ü%ûC{!VM±›/Q;]Q`Å%Öýˆ)Æ5ÕÆ;­D‚FIÔ×›û‡(#)’†eûÕÉ>R¿ÊöNãl=3ÔFÎxaü857Žƒ— b½«!q×—Ø\þ…Ïl•Õĉ ‡wþàÊh‘è:º1F½9„A¥¹O7aââì¦zØß1Ü­‚D¨éÅ)™{îuÉp±—[—2ÜŽ}±ý@œìî´°7øT“±‚ÓŽQÅÛÁëæ´ÏËî]¼ÙtÕ¡Ò‡ݨP¢îŸÄáÙ¹Ì'¸NU§*ÚÎÀŽçXÈvw³â‘n|)zZ@ԟƪÄ-U¦˜áv¹ùmqþŸNà&ë¡sÒCQŸnê¾:]“//S›fð톫#N­hÄeuøŽ0îŽÕêЛ…ÝQ îB™pºzWI££fãE¼È|4‹S=§ Ä)¶Á†b§õBjÚ¤hXÒtk—<ÿ†ƒ¹Ë• Œ]xm[ü ô~È6éŸÙImíÎ]â:»ä^„ºÎ ×È’U¨mÔFE½ Iˆlæ½ÆQ%´djÐ^;¤Šü©w‚Y¹û›8ó5Ï ö»q„(‚(—qùp Û¦0Ø ÓiÓÍŠE›žõ]ậúXvm7‡# »›'Ùibø!¨*;.g3‘Nå ùK¤—ë6qp©î$Q´ž¯Í  \8Ù8ÙÜ'Ž/N¡††//.ùpêe‘%7`}*ÃÖò¨,Fº\øœŽ×n/+¹mºS–ñHtì”kî;|¬;³Û¦ÃŽBs¬¶³Ì\·g¹j‚·©²úšœ§Iœ-—Ò_È0¿ç/g%ꆽ!/óËm®²çl8v¥¯8upy—3*ªK¡ÇÐl «Ø`7$T¸U[H•Jú²¤A\dÔ¼$†“œü§t¼’ªÈ,p¥TŠ3dùÉP˜Hƒ› 8zòÅÅkG"Rýñ.¶L¢e±œ7ŽÄµã¥äˆ‘:åÉ£ü‚k7?®Û_§É&Ð\ “ÉLðåÝázy˜f"0jÁùݬù¾öÈf-Àêã4¶YäÇf ^æz(ZÏo\í1Æá0íç& €>„w4Û ×ÕöÃ`¥ù´Ž_–;ƒқʅͦCÉl¸Ïûù<ÜI5ïgŽ”§Ö’œ-ßÍ/ÎEN2x$Ë÷x‹d2J½øwÀ53L+¶Ð» tq‡‹¬ä’Ÿ¥UoàŸÇY”s9wÊñ³—\Œ¹ÐËùö–YÚݬ"¨éíN*rG Âýó°vv‚7•˜'Ûµ~ñ|£.Ýã483©ñ(W›Z&‡'w1KOrªv59ŽÍq9&…c_®É¢Ìw…ƒƒÁqW˜ÈQÓ1 )ð»²ÑâIéz*¶˜£/wЄ7 ÝJ´‘A#4ʽ¬ñ†¼¯ºì²"\«¨Sæ¡6½:8&PÐàªæJÁ¬Ùµ›5'¯ªk7‰ôÛ]º…sönÖ3Ò33'ˆUÓz]๯—ª¿æÂfN‰IÕÌ"dêMÅYô¢7ݘv?¥‡9'¢WÒzÿrá'HÑÇ-$…Üž šxþöÅFkn®ñ]œÔW ¦L.Ð/àÔ™0ÈjÆž|µ Âj^+d^…Ùÿ“Ï^3‘Ûrfi&:Ì‚ÓÜ7ïøcx§OW¥8…` aщVª‘7 þñâaÃ2Ÿ^Ø~«øš¥ëì®ýÆ!ñCY¶–=io®-2»Wð\U£Æ8[‹ó1ÿûøœÒùß…ó¿U~7À´Z¾Ï9±ŸCTHƒY¦²Wãæ".–W˜ïD0½Ìj ݼ=¡ÑAIe€w×i[„YÐé*zLKEb¨Î¼/Ø4ÖÞLfl¦ËîÖÛ`XÈæÞäѬõæÞåÁ6‰`mÊ]Ü5[Ñ™ùñôãkÊKW›¸ÕØd“â_{N~©k6Z¿³Ú :;ɵÓŸéq@í7.lgλTÄÌx+7e8óFM‡Þ3:5òYS ˆ ˆÙ 'G-¥)7ÀÙì_¦²C~Ó£6:ŠVW™ùÍ&uW}<ÙØPù6ÐÎ:;vO™9ÍéªYžÏëÈ}e÷ZqJsîmù!©!‰½Ý¡Y[çCê3¥ \éõ¡½P…Ã4Û¢pÖý)åîF}ðr“Äw²CÕxzWÍ"»?‡CD:æåÐ…¤óÓ“²F¦šäè7½wÅ C<$¨Å„ÈšLÍmÍü"/oe³ÓT5–— 3 ÓÝäίjÖŽþ¹ì¤œwäùPkÝQ\F‹P©{XBô8Ïyá,¥bÔ6LxqG.Š{¬6[Èk1¾½S1÷%{‡ƒ'¡Þ~àΩŽAš‡ ^.ID‰åræÊá„w < ̺ØRÚ*9€‰ùe};ËÌYýî!zCÙÓcz¦Ï\xwÁJÚ9ž¡žH%ç”QÛÜÃ&ŸœóŸ³»¸1–7cÛxfœûðñyš9¿Û€(YÞ”J±=ó¹q0FM1Æ_\D|—éf–Òœ_C5óXV£§¨˜á‰ dŒÓcbÚƒ¸±ÙZ‡ÿžs-›ˆO0Ø©qî '' ´;‹¼s4WñxÆÊèÏ`¥øû¾žÁK…;ô@©*dæã_²º÷) öq½lhøÀrcÛSI-œª©À"ÞH¤ëßêàͤâºWRMM¹T«–º°ã¶®|áëaNÖ9}"?›¦¹?˜ _çh¼¼çÿKð a]áJÈ4‡vœeЯBóS¤Ñq|ÊÙ_yóïp˜ |ÈûáMÃݯ.? Žë=ŒÅÃ$´â ”8fuÙU8 ´8ÃØ¹ýÓ@° Çö'ûI]Ûï ‰iΞDÒ-óÂZ®û5ܦ[Ù7ý4ÎÉFÎT%B\ÈýšܶÇú’ùŒ<™â·ta«&7ቾ†±rÊØ—<©¾îœkUöIÚ¢ \°ÂÌZ{^Va*ÐoQ5`®Ñ€§§ 8ñþ­‰1˜Ó=áIêBÂRu¡¡`†«áÀ°”¤Á³™uQx¶C<8 ²gÙ1sYŠóaAA(ä Xײ<Í]¡ tA5;ÏI†2<òã–ÔÃn5Ãv ¦hÍÀ<‘n¨Mæ|Úa¨Í¢ ïÆR.*€;žê-‚°3™°óë™â *‹UÉ”ØÕ98HöéÖ˜LZERrd&L„\8`5IFis‘a̻ܦƒEŠqa}‚ÎqK!D@¶ó3¯$‘ UXÁ)žTÙÈ"o(bÖe+äÒ¬±-Î ^‰Nbɱt%àü;íßg'9¡Û)ÏK¤R™ôyYç*{¾”ÎGQ)=Ä•™-\yÙª|’·!اȀL¯€TÚy»¥dò³&§ŒÞ¹8¶É*[n ™ruM7’û¬À9o/Lb‡MOY¼¾xÁeؘ¦Iæ™6¦St/Vã¥çðHÓ7%¶DÁoÚ¼sŒ’ºO5Š–€$?Qïâ>ŠIlckƃ¡é¾Ffߦ(8O˜ljP:}YG!I•!‡Ö«ªŸ"Bïe²34…1ójä<bÙœwÏ-ˆ›¯šW.Q/llÔÐÉlZ²ÌJ+æ¾OGÅš,·ÊLáx4jD-Ýž:™äõ8 ¢=. “ë3o®1"Oç<èIJ&W1„%=¡¢qQIÇa‚'¶ŒY¶ivÌn¤Ã`†ºÂ †&› PÌåNåz¬K•לEZÆynRoVרirPýº%ýu §¿ËБ+¢Òù qSaâzÉ¡ÚBONNÚÜBד—îj*b®qU”ˆ¼€«æ‹³üdd¥ŠïŠ;ާ290/ÙC¬ê·?cP¼ÄCÌo4¯AXñe–åÄ=[vcÓ$Pé™hõW±_¤3­ª”(•`V¢’«•( ZÓÉ:ìZk“Rœ m*’Õ!kâ*ü¸ûûPbç%ã)©¬£-£y+ƒí¥" *å“;Þ˜ˆzçz4*uÍj†]eH*8Ò¬~?±•±šíF…h¢¬C˜˜Q)V‰ªT¯sDÙ,VÅÉFj:\(,–jx óÖ<’Ñ#z§w»8ì„ÌtüTÍ.'ŽÊF×Úåñ+ ¦ÖÉËÄOàôˆ\Ÿoäv2È>“?* _#ÄàOq>H%IŒF¹“1BÓP/‰ö/â‘à ú‰áÄ/æø%wåaÚH°UdËáN¯îÖ!ÎмŠ-sàJ'ÃÙºs<WpÔLO[È›£µ==£9Ãÿª®¢¯n]Š¥©3›M!+÷ÉÙ×d®ùRCEˆ.]Ex¿ö­%Ùš·Æé£õŠtR>œ°,iêŸ.d§ÚÖ |TÎm¤Î׊ÿCÆ}ÛmDÛ`Q¾¥|P¸SísÈ3IFµ·[^œäÇZzòH¾ó”«‹Á<0nÔæ$×êÑCßåOãæó¢¡ÞûΔ66¯’é0[?EßCîJ?Pþ9»aƒ“^’G¥N¾’f#‰4rMî2ðäÚåF:®ÏîÆn²KV@ÂT*.2D(¸úeð·—Ã2\—U åh|~îF¤-§'døØŸ¬õ»6“ÛÆÈ±7ÌFX@¶,ÚÉEƱòŠKàµÄz¯þò§gñ`,{ÖXöÐï±ì]#‡d!u³õkâXör³m±æ`|s$Œtäâì±sˆ%¦dÔ£³²‘˜»|{r+§M³*WŽG3*Ú³Ÿ—#Ÿ"'Ç“ù méZ«¾ˆjrÝb¤eÆÙó¾92Õ¥lªû%uœ$GâöU€±@¶sË^ìöd¦‘=\ÌEsÇ`0mxHΜ+žÝ·ƒ)äžÁF¶ÒÆ“mD6Ò´úœmé¨j9n`¿ÃÏ2gž¿†—u¦Ÿ†{ª1kys½io¢”„ì´7‰ö§96ñŸáMiß¾cs,tÒMË`N/>¹‚;Zì¸Æ E“ùå§+P°Ëܑ҉ÌÏíŒ<)Œn3Eb¶qì§# îØèÖ! ˆŠ9ÃÅ:6v°_¦w@X‘‘·#:´7/ùßü4/f¥MûD€¼!}d·Í‘±W¬(èû˜Îºp/NƒŠ|÷¸ •ˆäj¾¿73z§‹“}:9}¨éâ{=MoQÛÜ—1`AŽ¡\ö=Af’èyý%c`ô E„ŠÑàæ×ÀèIrOONÒ â¨$ºªê4Ÿ´‡&œŠ¥œÏ˜kYúddØ€2Ìf kL³ÉO.¼MX‘1ŸºË†œ^u¨)¾~÷N^­¶Ø¸³-ß>Ø º«âã$š-†þÞòRl·(L6zØ‹!6x+B,åÅ—Êû’¯tn­;]±“?ÇÆ×H£»-\ý½oË`'4Êý…H¶['ŒÄ®ÊÈo'þfÿSü4áùkè³Ä$ŒýbŒ•z@]DëYõѰ'ÏÆS‡·¹Ü9A8‘Ý$)Úq=u¡«x£™BÊY}Q%{­[(Ãï»õe*óa®™ôLò]-¨=ƒ`êk$4Òqvº>ª³”ô½¸ð.>B•Fýhè‹-N÷©fFõ©èoCùŸ·–nÅqw%ã—'z ÝŸ5¨‘; ÓãBÉÆ=¿÷YýÔº“ÒòîcH´|wž€NÝù’ŸÏÛï{Ž· ß¡$aê1¾ÙiœŠÃl_ Ñ—xæþøô~ ¶(B:ÙÎI€Œ»äXy‹zÅ6øóæ–mov¼~K/“ï ML“¸ƒ)'#øåRÐ .Ü–»S$W¦6»{b ayË¥!8!·ž†LAÚ¬Úò céõHèYÊ«xÂCáè%áÃBsOB`nûraá¥_ÍδÙ}ý-Óv—öÝvKn†âB¶î·\ݵKr´œ­¢*¶»Û?Ž&æð¯ïûéOß …}i%òe~¿M•ñM¹r)âꕾ<%MMPñÆ'„¯0ÒKÞ¸·wŽoè€^žïC±-yŽ0êáMm_ØÖ;i.'êòíxåÎò@¯Á¢[}¿¶z{}€<ð\æL<Û牉+|'ëÁvß”OðžÏïG]µ<ëÙ•©ö÷w&Vïúu&ŸÑª”ïﱜm»·6¬ÑvoRo›+/\­%ׂÅß²$'[jln7'Ù„í6 QTµ¦1—Õ¶;ËàBÔÁ&£o!…§/N m¤>±‹fajØDO;[,×ÕöèýæÆôPcõÞd5Ÿ]ë&EYli·|qjbu¯¸ ¡ÐQî4àD~Í|)ÌÐL]î°ÆDä GÁÓ}…û´úåBC})ÈK9éR”)‹ì#“”%õ–F®~5‡ø,Ϭf ³½9i«†<Ë– ÊátÅVS£ d&1êîE€8èà²gÙD*O/],+ü\ÌÆxúÊà5íöý m¶ éšáÅŽ|ÅØæÃYÃèÁ.S¦²7PŸþòÅ#ÿâIÀ_}Sow0‹ý—Í¿©ô{c…ÊÃtc‰ }p‰„ /Ü8–@ ö|Ü^Ê `ÒÅsMœ_-ÄÎÜ$þ$^~^â N,Žñ\CÕ]냔^…vŠ´a}$ÐäÅE9xµ‡¦Ærº6~ÑÆWÛø9žf¡¬NÞr‹ûàiçë…6¿=½ìŽ¬Ë¥©Åa­ÙÍí“àI÷ºà¡"MÌh³°»í‡3,qÊSqåµägŒÐ7õiùÐh7«0£ù‡‹·šKhøã¤¿Í>0•(QCsä¡{¶‘JœõæìëfƒZ6lµ3C~›uó½™®ve•c,ûC ÁïL—(\'/_žZ½ 5ûº¨į•Uv7*Öí³B4²ÜCµN4¡Ä”h™Î¥ˆac«¤bkC’½X-4©@ÍwfSAÉûö@ ˜ÌÚhèSq2£‡º…SÛ˜ ®é‚X:a±Á•ªd=Gü–;¬˜Îƒ¹Ö;JÁq×›!ä*°5—¨µ¡sÔ "sEµwÇüd¬sDœ¤Gdõ.qâDñ²wô"?Qþ?Qòˆñ½¥Óæbü6²¨šŒæÌŸg u«V êlôULÕB|Í3®»„Ú²«­NY»ýi…„ýÙ%™‚ȵ™»C%ŽòrçÛǬ§4]pþ¨%'„2‚·,¶ôŽÏKõ™Ÿ:8³iX©m²7_ ‰91—…§b<ðEŽ3!ÜeæŠÎÒÁic$ÂY³‹ç+dQK4%ì-©kºÿ§Uvˆ¡eï â‚ØÕUŒ¶­’lDY‚F*‰&(r‰*_BXG¢µO]Ì3L·€e¦¦–kD ªá4ö‚,NQ3c!•š¶ï¬fqPMä-xC‹sÞûrÈ„Gž„ÆlÌÕ$ñÌwõ™W›îr–y`‹{aÏ/‰k6.2TYÏÞ©¥‡s÷âæò£0­¢˜â¡cZjR6)¡ªW•wö§ŽÂ®:dä*/cWB×-ÜÎ!F“N¼ßTˆÑ‡ ê±>8frÝ^©ÄËkôÝ ‡mŠ!~{‹W/WÈËwerjlº`ЊQáÙw'fctwM° #F…W£GL•mOÁ%†¶Ë;kЪ˓sKZ½Ð6íÞòÒ¶7³`ÝÔv00˜Í¼{‰£ÅK²ÍCr†˜%pG{kþS±÷Ì©¹nÜÈý¶Ôî<‹%šv¥Â69«ºèä0¬ÍTüdõÕÕ‚ö‹Ã-“pq цÒÎË…ÔÁ‡Û ª$ Wåƒ#¡WñºFc˜}¹q ‚6|ç¿?¯Á+$!o•ù9e#F¡Ü&sIä&ÞáÖøª­c7¤ªù xÄy Þ ˆÐäfyè„’¯/Oñtr<Ì}»D˜PQwõÖÄòÂ{3™Å¤=`wµ³äj£0GpM‹7´v7+{"[’Ô¡FÈèPáG!gUÌßYYÎ2-ÌX!‹‹Ãòg@’9±@¼ÈIp~(Þ@rçŒ ¶iDêà¸û.|Ä`ɾkb ¬d&eéÎ…uõ ËÐ"µ¼GaȱÔOcèú~i­ãª²ŽqÀo³JÁç¶>Ì2 TL»¥3<·žÍnRh çS̨Ñ57:ÅÑtÉT¤\ac4Éï¥ÒuGqáäÕuéîI½ŠsG•CnúƒÃŽÖÓÊJMæ|ò/ ¦Dú@mê…/UŸ&;6™íc÷ò6À}¹v §’ÁH<à2¨y7Ó–m!Éã|gu¯²Xã1*×x­ì+'Ñrpw-ôP¦Àû±×\.¦rä¢÷¸9œ2ÕiÚ4”pÂ.•&¬Ö„¦(t§I[/²Ó—Ŧ®Tù˜Dfñ=‚òTë)ñzlcêÖ±$>)²^þ’àb$ o¼ˆêFˆ~ó[$‡Ãèv‡Ùø+ŒN»ø'Ö»‹ñN‰x(%Ùá6ÓÓÐR˜s+æ|HÌÉ•Wc/f7¾8\Êee'{JÔ¦/EPý¦d|Wâ@®þL^Ç 3&hêšÝŽ’&G¡LÏœòrYÙï÷Ê&0wÖ[çLˆ;±„¸‡eÔõô|‚Åývü¡F¤°ž 9€ää0_Ç—0$Õ½6»“Àv‰]Iæ M½Sc9\ÈpaŒ'V·9[a™–0>—N6'Ö­z§ú¼ÅOzþÌ7r°o÷CßeÞÌ_U¤ƒ†¡žý/ëB«öQu®[;œ<°—·8G°DbÎÛp BÌ€U“¬†˜ÅûPnœ×a1›yFa!›Ý^˜:Œò°›Š!U‡‘Q5‹¢ÝExWŽ…¿Ýe‘Z)—ʼn4ê¥}#Í{ÆSd`.ƒ;¹$©©Kt«Ó&{ÿv‰tq<Æeà$»8Ž×èí5žƒC¥dšhÁÇMZÁ•©&¬A•/q€Õu{9yùV ƒ;Üúõ޹UÈGž×X6IÛ–±èk*7bÊnÚ?;o Ìá|õ÷%qvss[MörsO"yÊ3¤`2’´jÜ´–IÅð(bfÏ ªæHM‘%Å-+­lì]øÒ·bO@BOЦª×®ér%G¡±·êp5JÕ$L¥˜&g‰È@‡`ªk^8XŽ(æOáê›&bV\gÞ}ê¡<Ì_i¢ ŒÂ½¿3¢.æ#ÀˆÃf@Éé¡; `1…Ãù}Í8AÈ“ðÂj&L <¦‘.ío‚'F0ùõ¨¯´WSMäxë ¦õ“ê¨3sQj¿¤"œÛn·Ó\¶°ûùŽl%Û†qkx›?#êÌÝ [a} £Ôõj:hÉüârˆ÷z:ì£H²ëCr2ioÓÂäXô;r+¨ýWõuCgFøµëÊ›Qjú Ã>1Þ´²ïŠ4VÅi¬>9v[«¸PÜu¦´ËN7ÔJý%ÞYî°U€#Ť)"µM4_…9E³Á¦¸‰•b6DãÏÕˆ4¸EL.dµ¡R‡DÌïòÒÊ‘%ò‡†ÑhìòÀ½ÃP»Aqs"? ”ê‚ù@J£25 qr& ‡Ðsq[Éà„ήLÙ@¿:ËÆ(³åánJá8g˜ï:ÄõÕ‚‰ÏÆÆoÚ¢*ÌOlÅ©C“¤„dœa·W ¡¦Nh]ò@m‘_,ÖKœBåÒOLƒZŠØ†&¾ˆãeЩ›íV‚êPáÐø˜¬S‰v¡˜³ËwQËÃ>¨UÉÛq‡õªüZa†"äM Àü?QÒKÞä`o«+x A0)×Ȫ$±H2Ä!núqijBÖÁi”Y Éé¿EÙÚ š‘PùS>NádqNÿFá4tümIcZ¯Šƒåï伺*(ÿÔ Éz‰²â8x¶Ùä0ànþ…sÑ;]QÍ™êê6YÈu„k½íEn͹?Â"ªÛ N¡Koé’ßÁaÏÈ2´"¥Vxà.„.ÿTîö!¬±Ã>èGTλOêžNöa*ç (_6¾9áð4ýÄ®ð_1j™0É!낹ÀÙâßf5µ˜ñOj°\Ì3$‘-d•oþ>NXAýnÉ{ƒ°ev#÷äjoV·ï@çŒLB’_£=DC¨×ºÔ…YµÂ#†¡e™ *Â-ì€e‹ó,ŸÙ;ïz |ý·€aa”¼’^àoÙ‡Ù8ásÞ ¶“ÍUdSC­¹ls2 •g2¹YÖ1N¡´¦TÛž%69:«ˆDl‡^d˜ô;n1C[åÀs°Q5×?G·cfpãþwá4 æF¥»ÃRùUPá¡T‰ÔvÖ}(œ -½àEF˜é©»¸K‚1Ç€ÚŒ6\éۦƦFyîo¢F-––A½ØuòTL‚ªª¼0iLJtšç6N%Ó[Âxù-[„Yœÿ¢c†Æ^˜šÅýEd]n$zS\-xaª9iVã™V€HÐ8º-•"BròôV;õk1B/ûP 5…ËӒͪ¬PØ ÀçÑÆHÆ´ã«Fa{º1îdœø¡òiäô’å¤yóPá?8ïÆ„N¼=ÓŸ´Zð[ŠˆÛ&G+2Ÿ ªÎä…ÊaœxdVWfHP6‰M'géL˜ žËΩvE(‚6îúˆæzºuL¡–ÇÜiõH¬“æbŠk³p>_V›ò0å™™ñéwžFƕ̭œO`šèA(—=7ÂE|Á„ —ɰŽhELm Á&;=AC)g¬ÆR­ÈL8©=l/6NnÀ˜lè"âÏ¢µX›¸ å17˜›'¹ä$¼Q9á1˜OÆ"8n®víJH‡û ÑK·™jŽ„Þ&“^t¿ö…âÇß®;ø=À˜ùîÆOè›ÆbmÆÑÏò&ÈeÙŠŽ`fâi8»˜={&V%Ê-fZ²"š]ÁYyó%7‡QoÙl«W¤0'»dU'ýù”/SJœ’¤"øâS»_bé.˜µHhÕ¬â%íud2‹rÙˆÜe¯c=‹Ø¤Í‹"E"¸ªAQ‹W»šèšúºjDÝæüWWŽY@¿×éŠcž°qnV+²)L/η!%q˜q½œ >Øíâ‚|Q;HîÇ-º¹ÄÂÐ29Ýîàœ&Gú.*|€-IR–“¶¤P;Â!(idZå¶!@[ôTLØø|š¥ºÕš<áy…µ¨ò"ÖØ"™P©O8X³n ?aöç¢ÿ– ò‡É’ŸŽé|€N;s–¥òë»q–q½Ìéš ¾µüÈN%gãö ù–qkÌký› i¤»mÖâ— “±€]Á\ßÎ×ÝrFiø:«•á2Pïð«<‹N>Ñtv‚ß;3»ÄðP¶‹=~9ѺcŠg2ã?Eˆ+£?E/7OXò‰qÏZ”)ÕðǦR”Y5<¨*{s?³Awã—ÉÃØ¬.Ì.¯yû¹³µâbMµv-–ÈyJËÆ»Ðµ^‡·?1Ï/ “-ÕS›&G`ϤÉZfË*Z‹2r&|5@ô7ñ“}%©"$™ ð—!k³CÛ¬¶¤ý¬·«žÍÑq7ò…%܆ۉW_Þ˜ž,33¡À?ÝÅŸ™TÕ@ìM«îÆžÄ>ÜK!y*Åá†u" ºªñ›©«*s×xA’ÝÙÕÆQî[|’‰&?éŽw/°p3ó°ÂÔoœÙ"b>lÐ_ˆ šm>Q5Õ4¦^ËUŸ%¬î’bþ_¶Þ\K®]‰óùü̃Ý~;4µäP2/ÛiC¿¯Š=²ØtÞz¸UÌÊÌbØRU*Ñ1ùÝH ŒŠ´a­<]™¦ðÒ‹{ËÅà°+h´!©“ÝúLL2ã«í® ‰Àd E<%;5£‰xe?(^|Ý’ÏÂpỪðZÑ69jìË­ù<‹m¶¦‡Žû#Þ Gè“Û~à Îuƒ&/ư±ÜºîB‡ŸÅÇöÜZ²$ý~øŠm—jêu´®/½Êq ­ô!wŸ¾²éŽJÃDÜÊãrS¸çðøYçšV%ûµÝbáõ›"[Äuóy)(ßÍLK´dSJ”xRV0ŽÞ1nʼníJ>—¿À@ÑSŽÙ"uëû £k<¸Dc íöz½‹?•zëeÁuž÷f%Õ=|›V`ÕgÊ©m!‚¾¼1SÑÅ·|À!éŒÎ¼c]¡ãÐÃi½Œ®ƒ§q«ØÇ™ÑI?È%ûnyf™%éuûÝÒÀ9`Œô-Ám3Är©ÍìŸ=dqt›ˆí38ê]æmÝiPcWsª¥X¶ò+Y\יּϱoGQPÊ1¢ÈŸüî âk%Ù·I³ƒõþZÿúÁºü¬ø_þÿ_ÿãþ€P\ pBúƒe\Ôé É ¢5cGD—ë ”ùhþ)+7áÐbùÝfãÞYS®81¤ýú¾ÒÍhâÖ\3˜¼á Ç_FeÛºnsŠûÞ¥1®pY–9 (üW× †Å+Ü3±ƒm̯ºW±¤s'¥‘6fEÇ:P¸E„õ±¨QXýN–œuÕÐ ‰-öVÕþ}ùçðô“s“ï@3tMu•¾¡£±´†³ŽšÀcQ8slcñÑ‹€ªíöš:ûï5 ËAà8ƒ#Æa]¨¼áwp)€«oIs5˜.Ö~šùí¼íú„,X=œ ’¼uÓâk¤Ð“”¿õŒïOÀÇ*Ð"‹¶ç«PðfËjta|ÜŠš$ƒ¶ô­Øuxx£wÖ¦Y}³&= Ü ƒµª™5ñô«àû£•J@õïé1Ð$i‡¢õŪ›M§}O|”¡VU€ …¨5c*Ö7‚z›Ò|Œ5àVÒÓ~0ÅUo Óvìm^WÐø÷>Ö¼K)ô™:ØÃÜPò@wAÿfÖÁ͘*Ù!ÁÄsi %CïÉàU´üøÄvtùŽÄnQm­¡$´ÄÕí«35:Af%ÓÏ>ºZ#æª{MÍæ5tÔƒ£RèP¾ ƒ¾;1â$mŒüêÄ :ïô& S¬ñs¥¿ƒŸ@-ã÷;§ó]6³±Ž‹i(aáj™OˆÁ·“°;tWsôëÁ¾ø™ÿX÷S¡>…ʈuôwgפÒ_ŸÒ £¡³XÈ›Ck3ÖŒ:m²Õè(Hx ©QÄ´`é„+ÆžS—s´öâ‰L?Ê|w^}‚ sôò'>ц!ňÎW}©‹v_¼ß%Cªè÷EJ»ºi€“¯'y“¿×¿ø/FÂŒ‚eñÇ ¦¼Ñùá7R.òA•÷¾$~5èmk>³ M’¾¤å7Øwt9£Hei²44×MÜœÝâ_ï¸NþEiÄwéC^ þ…½Ô‚Åøpè£å¿¼‹+wýÌwˆÂ{ÄŸ0ªî)FÞ µ['¾¡HІã:õ3zÞ\ô¬>ã’žAßâ:+éÓÏíÂÞØ?½áTqÏQd»7ÍåÑ«h 6®QD {3•†SÝ)¡°QÅWQÙ#/Œ¿_ŽMzõP¡‹5æKVö—󦲜pvÊÅuŠúýù\ëÑ…Fó´i7ÑU#^±Pw­M~U2tIéœÍ› *”Ö£µcå+LýË¥)|À½ 2kèIʃ¬S,¿ã¿w‰±—†V—²Zß¡¸DwÝÌT%k-É·èñ<=±XÏý¨C±,mX0ž h²fÜRV²õqc=Iéc”*˜t¦mBäóò¦£" –ºÖòC$Ù¾P!ÀÓÕAv ·‡Ö‡Þ‹Œ’…™ÊÌß§†ÚÖWc…Èͺ£Pä‚]‡CaVŒuXô¦(Yh´á®¶¦A]=÷¯uQÔB .£ö4¸|WgÔgÓQ©Ãb| ùÐünB¯EŒˆo4¸xMq:°³U ’ˆë]ÎÕøº!hxñ@³ _Þ´Ã)Ruý 8YÌ×1µÃêíÊC{PóÄ^WƒnŠç:é@t¶ï\$'½êÑ"€‚9ÀUµÙ.fXú[¾æ‘~} K“œÈ?¿¾œ5]=¿dÙí׿‹œ“¿ úà”æzäÆášÉø‰Ø3o±_ø_ÁjâvþÃTzÅ’o!ôL1XQ:ŒŸ™.t¯Æub>CRt‰Žœ ,ígÇt Ež!¨¾uTf™ˆÐCýçÈw£Ó­,ÒÛ¨âe1>uo9™ÅNëªø±ì¹ü ™ cù‰ð—ç§pc¹`;[)‰ƒ@9·ÝÙ1²\"RþõœÔ›Ñ$sIíP§þÓ>Iýù-¥oÔÔ_{KWa§ôË­“WqúÆWÄW¨•´ð£¼&0¹[.㇫~$ìq@Нú5…Ðh>±¤,‡\2¹ŠÑ1Œœ?åÍÌ2ŒÖ‡‰·hrXøÚÖÊL~Ó™´8äÊåç©Kÿ²ü¼NSàUêTŸ<…iÛ‰<䯓Šïë_Hí¢œØ¡XÃíÕäq‰4Qµ%Öþ„ ÿº-ø‹m™©Îb£Sûh4©l“°ËTP¬ÄK"Ù4¿NÖaF+QêHî]ȇ‹‹àÚåâdÑá|;ÒÐ6aHø2Ê7¸q ;†r÷òY“Cê¢ýpZ³D® $ „.E8Aƒ@†¥ÇëùÖ¿Ä!ã…Q-Ãø. I¬ãìGߘ¤2»ÒŽA7‚ØZ##ŒkGÉû¥ì¸0ñq)ÄïWM}£h¼4xíòöQ{KO0ö¼/©Fm«¢—Fœ/ÙàÅþzûw¸ØÁÀðJþcP“ü—RÀÀ™›á¢/Ä댹¥q¾±5¾Îæ>*S;î÷.ã¾ùJdí³ƒ"o‡ÿ)³Ù¬Âò{¦`iQÑ~mš)° è`1è‘ `0†„ü£À‡&’®Y8:Ô»šHsPîδ-ácB¬%—|TÔ°ân JT ãÇÛdB_!ð3…zDhèñyITð¹–³ûŠ_˯§âùìÌ+ÀjߪÄòë lß°dÛ»eiz¦Bs”sßK}=Ò+?©ÙØ-hÕ—ƒ ó âC,9Í+š]¤/ËÑ,ºx¯á¾ßCºÔ\¶Ò¤ ëˆ=½j§×N~!Wb“鲸vŸÌž?_Xë¼µÊÔI=­E¾h,£ÆZ¢â°C— nꃵt/<ü–}°Š[þ*%ˆüa¼®Z t¶Žt"~*ì ²‹ì‚ÿ¥äÐì{Pgf¸˜_> Ç)Ò×Ö˜òBºòʰ%æ_Kv+¿^feþçc©÷…ŠdÉjÍËæÞ*bì’`c,¿ÞþöU¸¿v¾\qû:B=oñU,çÏ£Áê )àúD/¤Ùv¦ÃÜL(iË^šÄUþ†üB>ÖrÞź é.þù¢ñq¶|}ìõ$),ÙDö IÑFëùSî ZSæ1ÿþâ¿ü÷qCõ5oÄ9>×26þXçWçµÚQ‹eÂÀúƒu¥ÑÄtRBã¸IN¡Æ±}G‚Å…;;‡9ÀÕ7Êp;ˆ§&šè’-Ä„f˜E9~¿û†¤vù««!ZÙ§cxG¡æ¤wt~c§Ž¢R[ÍAÎÐ…}ˆ{âÙšÚÇ5rs]Óô¸ã6 =Ýj´²nÞA­¡AWøL!òŽ;•¯È,¢ _MSŠ;8òÈ.jŒT| Œ”®WwþfÖ¥(¼)íé)QtÉs–"?®éZ®áC~ã…|ê)çAcˆº²ôŸ”ëú† ]ø–x(Å/¬FŽKýE3ÂîÖCä}ìdÕ=^s?—yM§È sùûl%œÉ=ßOšX²UCü8†¬ &VÔ¢ÆLx`(q]QÄÐäZÓìt*ü+¯þ{ý ÿ¥R£¡ÅXÐAþF™þ‘Õ1MA[]Mï¨Éâ“ï›3>Á¨ZÃçosš‰ ù¤‡ÝÒö`²ŸÜ}Ðpë­VÒ!±ÞúFY©úAªòˆÊ'ž°Q÷«ÙR´Ž¨´4FÂØUvèûë_|fzæl·!áLCÊh¯É?­f{maOð»€/Õ-½‰NyÿøÃí¤JW¾ãv$Þ…“@-EAïæ=-?u–ïƒDM7µ %¨”]`ØJ¶ˆ7ÛcÙô¢¡>9d~U=xk"sBôFÞ u­éÌ6´—‚?ÌÁu^{®‘^Ö³ÁRÙÎ[úýNæQôy:šôa¬Á¢K²õz°D³ð9œ"óóæ`L ÿþ¢Nks gQS®;ªR£kI{”ƒ)Y*m¦•^ó/U˯”¬„öû‹Í¬=þ½Å_#©ÑÚiNã©ýq<üî¸)›È× çÌ :>A4x—ëM¹Õž8œ1x*.ObB_åÕË"ù_¢lLTqI¢ b†íµ,ï‘vøs±) ÈQ@\â(²t-öæ­õE5ÆÄ-09x:Úyž©3Œ *Æ6T¦©H·eXìèJ¸¬j†ÅæȨ4;F:Rà‘nä/¼B¼£uØR‡¸åÁš©UEYð††zÖ€ž Ç8¼9±JKà:µû’ ¾! E|fbpf…•øÆ y…¼ÇHk‰ÁVwƒs}Æ:äMºíwcGhЦnÅä näï¨{0¼C†Û§YÁÌM:¨”ñLø;†P%ƒ¦\Á™Ñ+\Wî`’c˜¬Æ!!€7ªua©]ÍÇX§ËtkPÃÍ­uáX¦{>¯¹©¤šZY-eŒi¼'ú‡ Å TBõ4–"¥ºþ¯¶V¡•”IÄ™â$,‰à±Žalñ™øX»‰NQªÒyÓ~¬«WX75‰å*Š¿RáÇš¬EÝ” 9ÇMyjL· xØ¡H½ýz·×ñ½ìˆ“Õ¯`ÿé:¦Ð‡h¨JŒ5°Àš¡ù~HïýÂèâúÞ[6Â(~½ˆóM$ÅA|^ÜCËï'¢lu³=x€Šæ× •‹˜¦äÏinÓý÷áé+de¬Õ«š¿ÿÈŽ%E °Vc.¬¶5” šÏu ç–‹Ѩ1ˆ<ÈUŸgdFc¼×/ìaöüyAnL8BäKäÎÍcôHË.GîÝ<©xëó¯õ/ŽR7úpÝŠuäR-ß1~bßSg">=v˜I þ\gŠÙ®ûqFñúÎÖ9/Š5wP+Öº· MR_‡îSÅšÙ·ŒYÛr6ÀÐû?¾'ÖÌtFa1ë#šñEð$ëížWaÅÊ3ÏCÍ2Y/¶iˆ¾?W¸„ø`=þ±þʼnGù)Ç‚?X~£Ë !X#OŒÐ¥À3vk%žP[%*Nì‘ePALCFo¨8ë'þ{ˆ<À1—™ í†ê…è*£>*þÆXe3Ží騯ø ŒI_÷éwÍa>NÒ)žÌÛÝãí— -Ãú¶ë8á l™p/¾Çâï9wŽ{.^oûçŒku¥™ÛÄ¿¸èLv€¾a¶ËW¨4<èÊÅ:}È·Æóè 3»gTkT¸´Äî1VŒÕ¹M _—Oi#0ogÓì ÌÌmÀ1À7fË&Ì­Â2ù_gçr”VvPTô,2·)ìQhΘ=z]÷Üâ\C£Öá.‹º$]ÃÁÿs6†je:uÄ:›>S-õÑCZ„ÙØŠÙ à1,•ós >³±– Ö©\¿ÕC€yD³VKÜ2Gû’õ§UÕÀòi?oñ b³ gÉøu£Ýù&g_;äúßÞÆÑ˜à¶QÞų?,Ð1;.÷0ú„°²Gc±aêrXGk8ÚbÝÓÿÅY¸®y¶@š€ò˜æk¶îélé6_âpv$¶å¡¦‹ •h¬¯Û¡ÑÚ²½«AŒ/ÖÊÑT^ù)lné(ÉûxÓõÂÁ /ê^ùsÙäa¼ÎAOŽÂ"¬wÍD㵟=âÀè¬8l7·ÍŠÛ^Ž Å£¯Á¦FÁhÜÇW;zr”'öPUŒÞ¶‡åPă͸±±ñDF)€ª‹ Xµž}Uÿ<¾ï)¥Æ_Æ!С‹¢ºd×3Nñ_.´V¬WAˆrâæ=nȇzu5­25)n„ë R¥IA[ºfî\Ú*BÒ׎½åãV^1»Ri‚Ïr$Çwô×[?UÏþxëКg» êà î4·ÀØ{‡ÝQd•ܑϮ©@×ÁØÿÿ`GŒ}¦±—h'5ýý9œˆhÐ%q7À.`±ÆK¯§‹Õ.äg»ˆ:‹ñWÖŽlp²fï›l…`eyhµV1Ùr¿1|L$©Ï5Ûúó³êr+Àgf08l_Å­EÀw–s‹V×’åW,`êÇ€›t-ÇÔ…Û£½‚ˆî0„û§EbQ™pîu´W@ìÇÄ"4¿Iìä›Á Oà-H5:hL;…ŽXV<ò%h #§¼1ˆª’O4: A–ˆý•$‘B·L‰APB‚6ÿ±f;3NÝ»ÙÎŒëîžÜ#Dq«=9ÙþTÊ'NN4ÛÛ•À®Õ#cXÈPåÿž]¹j½üNK\x9-Ýð~ò-wQ†F:¢f!véGyS·^ X4 «Ò‘¦Û&Ú§–Ø‚CÎa»ê¶‰fâòܺ ]§gf… åôô¹€?L3{÷›Š¦`—ùY†®K„Hà†T)ýêh±GÑ®œ]0*ô×7Âè­&&˜]›: í¡X}$PŠæpTª+ÇR¨÷÷_Ìœ@Ùæx¡ó[·S^#ލ¨D¢Æ,J&a ·xlÎÏŠçQ$ áí¢gBÜ&Ú¯Õ ¯IÖâI:Єó¥äÑŽ,G ä¸4Ð1md ŸK0ÍÆ@†B)¡ õÞ)…n,Qæ?oºm£lïNÑ;"zK LßôBt»·óïcT9ýêfqk ÕW¬ó:Í g±ŠÏ <¬p‡ZKZ/—q°j”Ö›Þ=¾7 ÕêæX§=ò2.Ÿe xs…jì^PœÏßküE é²’þÊçBfK–¾èPšïC¬v=£%H¢Óxðcm|j¢×;¸£¾}­£Îæ_5°/ª™¯÷ /¶ª²(ŠfcÆÝ/Ê‚|¼àü‡¿/bÈ»³‹NªbžÙ¾ÙÚÛn¸“7²Ùê>Zóûúô¬ÙÚº÷³µµ)Ð9/Ü ‘â;'0ÚÅíÎ[4¸óN‚¿»#EjÇc9êŸöšq2[;Žjð€ÍÖ MàÖÇ;h®‡W-÷y<®¦3á«zÒÜ;yáÙÓ—ÆÈçâÌ1*Óp3F ˘8z ­,¢µŒšTݨ×ù& Íž»€È0FLCfËÕ¡²úpÔn¼åº1÷ûy0] <ÆKr„·ÖônG.Ã+‹èåF+K‚¨Äp½ÞBÓ51q«ç·{õÏ3úf€KÄà1ü÷ßÚp?6ÇÍ„û…Žö(jp\ÞA`55Ø›=&›l´xèÖh'Ó—G*ô`ìÓg¦óçà ’­‹gD€GEÙËI:Hàú°+ ÿ»œ'°x³”).ªBt&ŽZ4’¥'›“McZ°Ë[cf›]fJÇLÆÂ*óh¢{²á:üƒµš…ÂÓ~ŽªÓäG º©’øF»ùjðhˆot%¼—€Ë÷,«²î*.ZaÓ¼Ž)ü­£¡˜0¹G×uH°Æînî彯¡k®SV;2«“ÞC‡NÛÆÚ ÈkE{¸š}Uãý#Æ¿ë=±J“Þcl^§×ºØaƒ¾ÍiýG}öÚ ø„D]«ŽTo…ýÏÒ=·Pîù¢½¾ þ>a7ë¡câ ß"ðœ7g¯¯[sšAJ@+îõò5Ù^¢Ä4ÈÓíZ<Š6³] Ó­¸ç›«ÇˆºËH±vé f\:Á$ànÑCV :}1fåmrDæã5®»j„T9†uÝß(|}²µJNJ„¡Õv V X­¼…ø~*!at Û›ÔhÌŽ^ˆ÷ø2¶Ã5 ÍŠGT…Ò»o€”5ÖWg”F‘”€$…š¨Lf#•]jÒÇ2«btAF7=¥C>g@øB]Ý ÿzk¤ r¹?@˜Ž\Ù&Çy]÷ QYn£á™¶?S YÈDb_Ó¯Aé<ÍgQüLSlÁû;î+¡ó–#`Tr¥8Þ¿»f·ÞÂ,Hê 8±éÛ¨U{‡’90×OZ{?Çð¡™1ýÖ;#ìăbi¾Â6€ûåõõVau„¥Š+"ìÑ'œL:tˆÀôZË; †ã<‰"ìö÷·Õ¬735ù*¼ƒ¬e"}G-Û̳xÌeÂE|WN¶øÆ˜ô‰¾îZÍAçúùÖ‚]3˜ð·+­Aÿ¨å!Îc-ºScÃ_dMB8?ÛxÌyC°¥yH>x m?|cLÚ¾W­áôí,hP 9ZïßÑTì¸6“¿|hAáî s÷jª;Ú4mõ×çÔÚ½¨AÎ÷Ú‚Û ªï¯m†0æ-a ´—m”{æ•Ì®îÄâNsÏ•Ox¹îÇ@å¼m·‚g„ŽÐ‘7G¬F¦ŸuÖ± *-ÁèØqä†;"²»)¡+].އQË^{úÕÍkR±þQ«‡öQÉ”¢;¬’]¬æPGèÝÜQªá”áÞ<ÀfÝn}¬d+™Þ5¤oÚçö<±ÇAŸÎx3»÷‚ê°ß‚VV³À¸߀úz•wŒYò…N$[ŸúΕwûGj‹'œ\L°ê%ä/ÍNÔÎî?Eu?å*!£HÜÙ|=`Yc7þ=ž¹)±(³±:†ÇÅßÊk;ÝošoÀñ*UØ_£çS·ê¡*g˩Ϧ«¡:€™^ú î7¨‚PMŠÂaWój•Z¨VXY—|Z©][Ú+ø¬4ç½ø„ ¤!šëòŒÄ:2ómâåtd7>±Î"+F5Ù¬ ð¾k6iÀ÷ŽáftŠ xßÎÄÚ캧*oæY]~š;tòî¸Á!vzˆhä™Åg&ìj2˜EÕæÚ“WÕCðÊ(V³0H[6‘*«êŒ¢sèîF#»¸[׃Ҝ )æÙDm?>Àh;,Áj‘'§’H—Ñs1øM;6»;ƒÝ% ~º„þSUÿ©ªÿÔõ/.mÝGÂå”—š.{2{¨½Ûoúù|ú%·óÄpòÊã¨y© ?µŽjýºšo<×ùÞFmO® £ïQA©ÊöȘžÉµ8JcÀÐ¥c…^Ê{± úäîÛí¡:Û<²†,ùòœ‚ð½JOÚžQ èè7C³BúoxHÏ6äd= Ûé~]¥Ý*âŒËÓ3Ãõ¾®Ë[_|_Ç·Ä[«]Ѿîä½þáº|ª$L‹8_ó“¡k5ÞZEU{¶v ¨'ø á&4 ²?ßèp-X)}4œ¹È]i$lþ‡£²K#¿îÌ­RD¸»g\ ÁsÓà5JJuß2ZAx+†Ä7Ú<e+²ÛM@  ƒ¯5ú˜lǤ-å÷ã;šËºñDËùÐÉ F~éÿX“‰y­9'g@¡Ê€¡ PE¶yb0ج±„|iI¦0ø._Ïÿû5¢ ¸†{·é.²(RFÄ.¤’ó<õ¦% T_§jM$P}ÝŸª:û45è+Ô¬öĨH~Å\­¯w½“G„Ž’¥à“ã½ÍbBóüø¤Ò§ø‰ÌX!K˜9(Oíå+2óî)#|Œ)è‰dËÒ,·ù^Áè&fU5.ÿC-¸4W{Úz=Ñ  í[-gM|ÚÚœ—"Û|,ç˜LwCæk%]o˜†Û83جvH³­ÎÔKy´[¬ 642@/L¡bè Ð…9ppƒ¿?Mž‚Cu‡²Ó¤Ú4$ª¯¸5mš²ÕÁè mÌŒþ»ÈC¢ö¹‰~`þfµ8ïl^þ9¬e„ÌàÉúóÕVK>¯VHú°ËJBØIu6W›œj ×F´·ˆ¹’j-jøjˆyã”fM1˜utS­¨KÓ«ó¸LbmȵÆ.ÿXó@†LÉ!0 ËÐÒ䕆G¿æÂa'Œú–ò(Ó’lç]õÝð™‡a‹_—ø<>½8¨¾AñE—¸Aë×¶‹KZôS¶º"Òƒ²æ%äŸ>Ï'Úav`å$:’آ駨Ùͳ}~Þ„Áál_O|hVï@Ÿf /·uPË×ÚžŽÒ!Òr»×¥Ô¼,ÄÚ´î)1Ô@ZPTžÕi>ÖO&ØÎA¤¥J d…Ã^©ª™Ý¥QY5ƒëÅ %zh}øxÞv! ]yvÀg;‘– ØtPÀTòh 8·¦†– ûN­£Ç<ÔïƒxõÁùX]ëC¸6»-{RCsYžfî-ŠD¬)¹$™ }ö3ONL`(°µ¹SkP%álR&Ø Ù—à*ý› 6O`møz%t`mDO­ÄÚŒ‡ ÆÏu^¡‘_MVÕšž©üþ?Ö~¢(¢+Îðâ¨î_ÑO iØÖ7޼ªÛCÃØZ•1B÷—ÈÍêw4‰`+™¦mÓ_ã ¦û_ƒIÕ,:ä ¤[q’Åoøf\Ûq¿Oèáëþ›ª{:KŒHYt¢;;,÷‡õæø&X‰Õòüc½˜ÛðLp« ( Ù‘0ê, œàlL¹,ÖêGqX,Èø†¹i‚]o=Ö†õHGµ“)ßèqÔƒ­¹:‚Pù^ø™%lÔ´ ½û **W@#¤j3«Îˆ_¹L=߉ã(R¿1ä5¾Õ&ÊúX3¯šDˆoué£U…oT¼®bΙü"“\Òœ”A]Óqì (þ5}ÂÁ¸Ëä›ÍãÈ‹”§Á?0â´hý¸êâ¶&¤’eR}gÞÔ×Å™Ã(Sý{MÍq˜Õ ‘”!×™°Ä®>¨pñy†L]ÐO"µ­:3F^æž7ÝÃã»Æ»/Šq] K,ÏFa@# ñ÷4Ê 4£#5svÚ N޵ »Å_v¹/¾M‚wq˜=E›Š{Ô\ÌbR’=m?DVçß_d/­È®ó¯õxë_?¤’µö©›)"wÕì˹AÜT¾û'çÓ:%Dש=¸9'0]ÿ7WNJâ™×ã»íì¸ÉºãPäõŠžsô‰Š‘ËÂUëœ6’›'I" —ÛéT„sq“í¼§ ÉJ;wÀ2=µ³ü_oú¨]ÃÔ.’ÃøL;4šâ”ß4·=!†èùšuLâ¦úš.÷©“¹Ü-k¬¦¦ •ºÕÝU+…`“§JØhºf<ˆÐžçW c>¯ÉËÿ1-‚G‘¾ÑýsÊ· ‹@ÖÊöÊQ¬ãi'Zõ‰Ÿ4ò‚n¢2™KLwm å`fË›åPCåÌ$/%ÑëjmM&âf‰ox«a|õÐ ]’hŠ›%2ø%‚nbº˜oJã}yÚ·‰¹˜î`lŠ•Lçƒ$˜Uë6É6®NÅÄQÆ5ÞÅð@0}ºâè%™®9ŽVæ×ÍqOh¼–I<á‘q²›ù$¥Z Y*¡RŒ£ë³aD-¦Úë«h\XÙµå—\±Î'T”]U@1Á/VcXwc’}¾»E÷ @€åÉD§tÅô¤¤o£È Ò²À,$ƒÃ³2kÅb—55ÒÇõ|ló6Ü$¤ƒ[Ì‹…¬ÅWbÛùjÌÚúqy‰q­o4¾½»(ž‘¥ ÝôûtY¼¨\\DÇ<¾çë4{¯ÓóbJ{Øø>vÐú&8†ÛÍÁtU¨¤`¾l˜ž–æ\¤Ó Ù ÍJ•z Sê ¦”]úçÀmg®;'K1dµC¹ðG|b"SXí‰çt§gQóÎêL¡“!c!ˆJ ¦¤\×ÎÜg›ëü}¯Õõ»4œe;„úÞ ƒAo®RݰÖ÷fƒϓՅk×QõB.0æÑËÙ`Ì›O}g( {y]‰³L}qž©µ-hTììÀ®K§¶’Ž‹ ¦M7˜èiÕf·¤JŸˆ)Ómëð}ל,Ù4žÁ˜à3 ñ ^jêŸù’AiÕºÒ+DlŠŸ\Mü!·!é4²:Œ«î£6Zn‹7HÃú-¬¦2‰¸š[©½^‰" 0.‰:Jfø^ÆÊÎ8Ïü°h©:ï k=n›ò{ö$‹] wÎ'ÑêÕ}¦¸%ªå» Sœ©Ô ˜•·BÆ#°YaÂ=§š%OaÁ»ÃO®'뇫@'L1j* öñJx Áá(Þ$á}}k¡S<¢(\7ËäMJ™L÷ÙÔyLH—](&3Ì®ì+ŽÌ›Ø3±/04“ë‡ ¼¿«¬73³DÊ5ffÎÔ€ŽM'fV$´*sbf6Ž2-¯YÑ„mž©Ê)¥}²¢É6ŠQH é=†ÞtsïW\ÛÈuð’EfØ!º{>¯_ëëÊî¬ì÷óBÆÊô™(¼·u]«ëNn-<“ãyÏÄÀÿ–w_vr¡Àë©|ˆƒ[`…¤z½»7 ÖÙtL8ó®gc;›Ëúv¤7Î"þÝ8»ÂžRŠç‰“fm\ª³d£KÄÞ1©²ZKA'¯}O ´Bîg˜õ îq Æk×7‚3,€ÀÐîd™q"¸(0ÛÅÖî$4‚e¶toJ¹C}F cMyP<Ç4@÷îåoz}&ŵ·7OÙ”oM±ÏÊod8“’‹\1ºwq>\~#×häÅù©Î8wD³$Di˜=o€iŠ•DHžÂºücMAÚÉgqNHLÝ÷Ž€>¥®ëÔòHvtSÔ³†rÓ7˜ØKz+­ÂþcŸ‘™ÕµÇå„­»xÉ©FB$Ì÷®¤¶WÎü+÷|÷Ò$km¤ì{õ×{r©ã‰ž-Š…ö¼g;Î`b €0/±°kwSò«RD-½‚0Vˆj, ëÞç^õp® ˆÎ­×~úBÔ͵A£+]w®1§Oçò‹b ²)À-RÛW¯£^·Â†ìf›å4-‰õ"‚¿ëÕˆ øƒudãú V#²uEö?Q}””ØÝȤ²š´î¼F°33YÃÕ ¹ÈKèWÌw&Xh݇¨NžVKG ¸›°Ñ—çüØ¿Ý=& úƒQ 'ÒÉ­.î˜`ö†š~‰º: ’X9>“¨!êyÕ¤èÍLv j8@È6ÕËòóíí8Ó=vìà‹îý¼Ì´IìÓSÿ¨^Ç} ðp/S‡žn‰GÛP öùª¯OX×õðZ™­[±œ~He×›ç]_ÿ-ý¦õ×£ÄõÃj ÝáETG_÷j¼qö°½îvµÊèœòw²j ) ˜03*Oz”kÖ¡){üÚõT}Ñ»¹‹YçC++3ƒØ¨ëËÀƒ¯ò8®wË;ŽkÉÁ íóì†Ñ¡;9 èÌn!öØÁ;Öí£ÐñćQ=ñ~{7EzšøJ$;v”î}¤t½¦cãªeÍ Ñ×µšÍ?ÉÚù¨-.¥8«ïyÔfû Q~®åÂ7¨ç²ßÒ/p®ù’¾ÿ½¤'ÐÅq&µçÕÌD-…÷½ióMýÑòÖÏt5]ÄS<õ_dýœÀNGG¦y^Ááeô;>ÑCnñ®~}v·!ÖÎZ¯K ž™Ÿ(gÔè)ºãïgá˜ØC§¹Ä7Y;"ˆÒdÎí­aÏÖÀ> "ô±pb÷L)K¬›;÷a21ÄæVO&nÓ{>Îp÷dáÙ# êNÿ o”îØÜp êúÄÁ–µzT1@='d2°šsT9ÚëŸßJSèúdÆ£§w>qÅO¹:ϸ4Ût¯FQ–¸Ø±»yÑzwÆ:9Ǽ0¸.Š äÜÄ™O—ÂØÑ3{~—®Šæj—B/Ðô¨C°ƒÆHægzùÌ⌧@Fë×õ™çÄ"ãCí5ûË·ÔñÏÃ[”ö—ÊÝ%·k€9Á¼t•þ“fÓüüEäÍô™^ƒÓºaC¢Í¦%œéõ3õavleG@º>D—­j󚬬dÛ2w^ãƒmZÖ1ؤ•X*F±2 š„K£WŸû-sïåÙÐà´Ñöépwå´3Uj léj±#*Æz›Á°(”Û?Öœ¯ªgBîcod¶Y°—Âí‘‹V3¹&Ñ]šÉŒ\m[?¨Ë ´)sgÒÑ³Ùæ m2݆sé.þ¯séà*–ö:ý‘ ëàTÀ¯!lo(+YE¥@¦¼U+1ö‰k²?Ù®©¥¹™Èe›ÁÆ‹ŽË¬¦ÅÛü€9_¨¼lß{Q÷ìñUr—c FÍöHÖcÂ!&1—euwBÆz»o ŸÌ‘}ãC¶éŽ”¹îeç¼å+t亲XdÆ5Ïü!çq=£ÜfÇ¢xæ_ÉXÞŽjðx^¶‘cgÛuD1vHVÞKTh¸yo5Þ[ždÄ=´3*$÷Þ2Þ÷¤õE ük§?œ øÆ>Ã$ãÞMôùÄ™;·Ð®yŽR¥|°y©S´’íK†•ê¥Dõçš¹æ×_@n¹•kˆ·úf_PƒF«„wtže ù»x÷ ±K Iƨ\£Å¿>výçoÕg3 š‚ÂÜÓ¨MîÞ^Î-0ïi—±1=‹–õÙÆŠ?Ë=H,V¼Mu ˜Ó§°U±†t¿ÐtÀjŸjfþ‡ŽdçÝÙ§HWTÍüÜcÓ³;R.G÷ø…›oMD;Ý{ՅĬ(˜nÝ÷tÜ{MÕÎd¯Û™\7¢RuÓéÎ{Ýw‡3…zo²b€r·8:¬—wÜâV‡¡Ñ ˆ֋7õárµÒiå0ó NúÞû‰3^—1ÏÃg¶¹:Â<ü¾[º:ÛÕÏ$[5Ùd—•<f"7«çMÜc”ˆ"›(×k‹H±i•ÎÈŒV±N)M‡ž5æ0„èií'ê·Â*Àzr0÷¼Æ ü7Ò‡jdc{2Ѩ†6æA˜‚$–u΋kfZ$š]#×ƤŒDOfÏÓÜ› `ˆë¶j›<ób†NYöךT¼ÍÎð1OšÕÂæ-s«¤:@!ø®ú‡m’jWü 8 ›æ˜‹:W¾aë´gð ÕOÄ*™Ai×Z9ùzÕº¨3Õ²WMÆ45¤oÎ:'îS;`©¶´C §×ƒ)«æ.Ûà>UÈwàð/œô¼—g%åkjÉ\š%ž6HFÈ´ƒÎh pˆ8¯z%Õ¶¤=Ó¨z`3ˆQØçLÕN°ç€2±~\æÝÅéèKƽ&ý20 ²Éjƒ™A1›§Ý<µVM(49:VEXŒ 'Ñœ]¤c2gd2Õʶ Ê&¡²yÌ3ˆ ÜȱØQ‘‰´ý e"éV+«(ÜzŸÈ»(—& UÇxÚ4†:Š äØÏþ&àè{&b˜QkWäƒAõa£¢NãuÉ–Ô•¨eZ5 Ú1Ò²¹?çg=quÙ.°`pˆWèŸ`U«HB¾¿Ù=0):ú†sÁêú.jøäˆ7pQb]¬ß=éo¸!iŶrzÓxÞJWoÓk{§e‘­:;ÛaÈ8ùzÝ:ß×ü†–ض¾¡Õ¾[òDgµ4OcàDÒKNW¨u×+Ê8·›a:iì•ÉAÓFja=Ô¦D=Tž5\T°l8s³€ää˜@Gý&>,Ú9Ðð3æ:¦7c¹‹Ce’´\‡©zí¸À¢bîÔnZ·mßsQ¿5g* °~33OÍóA¡Zêr”Û´–3L}Ïb>ØÅnÖ…Å,‚X¿ã›>¢ö9×x©­S#2ÎçŠ 3ž:÷a…Õ »nu]¿>Õ—ùp¬gcÝ^çÌ´2Ø9nD@go:PöÛê64q‚zPrŠi€2¬ÜQÙ%JÊf—©P©ß X1ß›hMxØd©b×i†t]Ĭ×Ç{4ãð »ÚŽÛ«" ­’×’¹!Œ<ßO÷ô¦Ñ½¢/Ï[i›žº§ºç{µ=Êá»Øª€v-ç­ß×ôZøúj n¸¥-¬u7н}e㳺FçzÜ71 Åþ±’¨E總ß쟂­ZGö_}æ‘}#ñëÅ4¨Þm“¯ê¢vw*Ñ78!?*úö¡™_0-:‰º[n[üª5ëšNƒÎüøùBE¿ÖçºÔ²q$æy=câ¢:P}(‹ˆÒi¢T¨^]?lÅ f4ŸmØåô';ŘöÜ÷z‡â´ùÒºüõóbˆCÓÙBǨؑC9œ½Â¸Ø¶¹4ë{ʶ¬…¾ì¾Auã~}¨É?Rk¨>=¤Ãl}[m™Š÷©ÄZÇõ­Y 7Þìl§Z‘x(×1£‘ÖËëVl)Ä÷³pˆ}Ku º8l+c¤hÓ’C*“¦åêæ2&f®û¹þõþºùŒš•qº}2³÷yõÑ ²ä¶êaœßÖ/ |ê1Þíõ)±ŠA˜zÕ‹*q©3HM²2>«Pÿ³¾'÷Ôqµ}PBÙõ¤ÕË3Ô0O qšDAÿÛʘzæÍ™W(0õÍŠaÐX³ŽvZ—‚ŒÐ„δÚô"‹"Ý7­ø¦sñBÌCq®˜þéùäD`ûTè_ÅêEØñÑ÷•ߊ O»= S`™:þ±–ÙaÿËìëtòˆ>`±œ Í ¡£èS»9a^/¢"›½õcÙ™ÿöp1™UšVZ´žÄŸt©¦'¾‡¦±Û™Û¦B|÷]œx6Ïœ'»N#×Oà8Œ.Þð½WØù¯ÕPßF3"¶§D;bûç1qmiÞ8¨ºWŸQuì˜çBw«y‹ÏØÊ|gtòDO¸cuÇ«6š|Oüóˆ‘'o fVÇ,i­lË!”Qi|µ\8æ?Ö¿ø‰êUŒÀoœ7­‰ƾ/7Å{ÂU#€!?¶/äUÛ3 6bȹØ6Ù:ƒ(èwÅM„ò5£4vŒ;ÅB‚µšºŒxt­÷Ò uSµ¯ò÷3“ÂÖŽi“\¸í0­I•?è,º§¹~÷|³]î ”GÂÐ$vàNÕÂxÆ”MEî>ìóQ­»¸YKë.îùtá„9§ÇÌÈ)ÿ…F$ÕµÆ:»æÌ6º&˜'2Xj·%­Sݳm¹ƒÐ„ÒjºBG‡¢=óx1«T‘ot†-<”ø^k¾1wŽuZãN›¶{BƒªÇØ<¨ÙN£ÁrhϨ{Qÿ»8s£ŽäíÑŒ˜¶^5žN*²[’]Ⱦ¯§Qâtk—þ½küÊÍY¬k[‹ ²ôÊÁ;8X/÷-ã^6ÙeTƒµ¹« è˳¿êt+Ê3…‰qúLâ­T#¨QøâF1ÓÚŸŒYfªFõEŒ “KöÏá˜aíyðNÌVì”ÛÚëäŸî•ð^ùŽ‘„S­¢2.•ÔîÔºz³¬¾#zÀ0¿ã¿°}ê'ýŸŽ>a`¤wf&‡j²ëõT¤¸4̾CEëAíT*XæP÷p§©j¶sAv4Þ7¤¨¹Óý‹;ÄkΔãf—ªþ˜f0—‰Ýa\É™%{kyæ|¨¶z=ÍFê”–fÎ…öëSëË™ò´>Æ$žrx‚Wȇ¼É&ë<å9á«´5¶¢Jävû˜ƒ+5V¿ß ™˜!—Ôç¨Tù·¦ú˜×ÓƒÎ>¥9ÅÑS ;ÐÍ !™?× U¨µf|Ên½^¬™ùسŒ !p<}8õsB8©b]ý™»XM§üà%g6¦ô·~¨h}¶*õiÕ¥ÙüFçë=£3lœÂ“£½Þ3ŸÐ¼OJO¼KtXµv'ˆc[N:êÆ7ªË4Œ¾—ŽTîˆ3ÜÍÀ,…7”õÂ*ÌžýûñÄ_Å^Ù¥Êé yuùõ•ígïžüGÏçÐukЙî·’Ü'²ÒÏq=Ô‰Tc£«™›œéÉjǨ÷ÃLGïG]ªÌ•¾¯™]CcgJ-ƒÖßX{QµN¦£Nùd/¥’´¶NYÎw¶’© ]·¥ë¥þ‰ÝqV¶ŸP’Èq—õ¢¤ÅÿK—ÉÕ>¢l§QFáŅSÿ}ýË]‘h0v5Ð%òÝüõU K”]Á.‘;»K]¢¬ºDÛÙç×ÃŽBk|äó;rþ3ç6]€ë#‡ìÌw?ºDHôa¯˜Ò…]¢á=1à&~¹H·ÊæG ]¢Üãs8óa—&»D‰ºŽÞyª,±3 Á/ó £>ÛÍõ@átÁØ­R¨¹Ü ‡²zý‰Ä!Š;} ¡Ê8ÝÆÔâôžQ”¨ò^Œ£ 'YK1<$M½s aóÓêŸG­Çñ7uí'ëOsvs—ñ‘o­¾ã ÀZªG+¶eŸ¼!•ð9SÍ×äuùûRÞ—œéó$ã´"*R¹ÆQ9`[M²WëÈe—ŒÏ]ÍDKd¿R#YžÏU×ñ÷öxõF'£ôf&Òxo~¨r·Ì$ª<Õ¤ä@ÍæJfCµö„” ®9u*ˆ7žNÉ—?O´zãœVr;VbP‘{g™«¢ú ½®¼¼'/uÛ·§àçwû9f)_Ng¦•·óÞJf•ö§÷ì9®øïÆ*ía—¦+ªnîŠüBRósMÔ3z»•Š6@¢T¬‘*§¸˜Yp²eøJ8‚‹§ØÈ’ØõkëTr5Vû@v4LàŠ¹(™Öÿã7N7Ù> §øIh°aæéÎÝŠ48Õbä|èà”'~o—kA…§¾9jU\ܵ¿ è-GÝ@ISòQ8}›£dÓÍ Þ‹pçÐü ˆQÎëŽ[ÅÅIV￉µ%•¶µç"Ü÷éÈwb«t†`…Õò¦ÿk­pþÚÄëc“À)kÙåNå/Œ¶@·ªSÌl·ý?ȯêž7•Ë8žšÀ±#¦Y½Û“è±À…Oé ŠI^‘PÀ¡²ý56'ÞϘή‚+2œ»ÆŒ¸_Çyîоüz›ø¾ô;A.ÙͱÔÄ2¦yÅçké©Îlìêx¿þúvqÖâéÁ¤seVÀ8J˜¸^jäŽ\u6;Î\£–»[]÷Y.;‡Õ2ÔáZ4õ îzL«05¨5gCntXåT\¬b®Ù™\Žºž8˽äÖÉõØšoµFW¡ìºWdÍ~xÏ8³ 9”šÖˆâÓØ¡M.ÊdÔûå›í’¥yÊXwÏü¹é:Ô%e·yénÞ  Ñý,äB’Ýæ”þVgŸ+'dMßÐd®³¬(®TŒoƒ|)Ÿò†$¢[…*¾Aà …¶vOm…ÀDœ‰ê.Åb®3¼¤Jb‰ 3 '„Ò0øR9mTA·ïQ²¿'Öi¬òŸg´±ç…eºôûXŽZäŸÕìd‚ÈQ0³ù¨o®mê¦VE{O¼P›b{zTµ+3S­u ¶ÒµVR¤(|csoX¸óSæÑÜ1á¹^Û›T2ô¦wÄn?‡Y¨ÀŸÝŸ‚gp4î˜î>Q##¯û§ú6OÑp4ÕO4„vñ†Sà#o%’們'ÿ(5CÖÄ}«BFw`=DÎtOõ7ïa;úVúaÌíL ÿrk©<ШLM¨Â(»­™÷Ú°R]Eþ Ù‡#Â2Qðû8F  G¨èm4[|Þš3éC¬T·¾#~;jy&=Î'[gq™œMˆM!Šª>ÈÇ#Jï7ÒÓù:›¾ŒZ¬‡Î³€è³B†›yЄg ÑX!æ–óeÏÈníðBîÑD‹¡ ”=än#µ޵Ü[eé#{Þô†î5o:›?1 ßÜݯ™‡Ù;r¾ž.°mw}ë$ |îûÁúEE]¤æ^±LÅ= •º{Dß×DIoeS(éÍ\35q¢‚:åe"`¤Ç2›zOg8 »ZU)nÚµŒÓfßk5㸩¨3û~‹L‚aÆpÁPÛ^Gîh÷= ýy&Jæ¶›n•`Õg¢gB(Q‘n­•›ÖÄ õ癃\¹Ó…)š“<ìD-¥¬Ü™1ë³"móá5 ïÕé{6pìµ?‡6?îYco)ó‰ìí§šEº7¢æ²ÖÁRÏÁ½ìBót/{’è{ƒ8òã{šãðØ!Åü­è ìî(I\öNýJfïk=%µ^‰W4ª¹Óª™ï%:3¥Zí#5­ßX2þ *Ü>îÓ Šjg,ó†‰4Í3ÊIDç~úòèQ˜á'fz3Vª Qt¤j.«“ñ¡éÔkw_V.I÷õe—xÉîat"\³Çêe¹û}ý QÜø*Ïfv™b=SýˆÍå©.|ªÎcV’>Õ+Êd5Pß”NñžNpëÄ™Êú*^¯ï‡mºÒHÖ{ÅŠ.Á®I—j‚x‚ ~üÄÐÊC¤êŒÍúñ„«O+š%Ýúü ø7b…¬€³ÚÃþÈ+Z Wë}^ï^>ä-Ië°?åô:f©hSÉÈ;™9q¢xòžŸöÓl¹V&4ÿ±¦&‘§CšD“3ÍìÔöñ©9Øå©Æ©³qFùøD+{2‰ mþ†¢+4óŒâ3;Ïzõž/Eªß‡‹ê¦ÏuÖçK@œ‡%Š÷ÿ<À¬Ãuúœv>+P™j4lã Nf­þ÷DÊ”ó½×o5 ‘jžšú½F”¦aE¡Ëwö/9¬ÍÓ`¡îcÞ±l·¢z0#vuT§šä6—‡­…ºîcoNX›¢z'£nå„RöT ¦XPD±‘<Þ…žLºnÞ{båvV#ÅÎd(ËpÏ93Š¨Û«QÑÄ¥·ýzñ¸÷ÆSÐ Ü{VØ=ç(üžg ªÎjb«¨­P³ú< ¢à4Ρ“3Í=[§ ÷AÇ«8£š¨¢ìi×:Òrñ¦5 sïé|MœV‡gΕSþcÄìfµ2AËN)ŸkaÓu#S¢Cןr@Ôõž=ÂÉ»·]»y|ï DÕ9ž–^g¦“Xš©'œ}ÑÁ'ìõeήWTý8['*ñ‰ô|è©#V&«ƒö~?ªî{™(vð±|fÁ¡ž},fBåcV¨œÈœØqöØ4lîÕŒ•·ûÀ›Üÿò v>£bp9ÈÿóÖþZgö-ÛõÏOñ=©u%óÀqõ–±7Ia<Èö=«_ÿ|jÜPI.¾á÷óûqƨá Í¿~dm>e9¬»Ÿœ^´ò±î¼÷òßœ±Ä*]ª)ì|½ÍL"ÿþ§k±4‡¯{DÒ(¾vÚ®ô™>ç±§ 9¥YñvšÏLá=¶Æ÷uòÏ´.Ê\Æeu—?XÇ7xÁH=Šc˜q³OJÄ"s¹mÈAÏÐ=”KRè:_J›²ždn;¯ëÍBͳuhÒQ¸¹Þ<Ê=ÍA”möœôHu§·‹ dUcºÚ¢ºØZ£bOgn4ËPm¸k؉’ÖZhä1‹;séézŒIV…nìSè)¢ìõ¼fw)[g®YŒká üZKŸeM;<Ô¿óáT 5¡í*PêUÓ“5º”ûšÇ@ôÜ>ž}_sGD}F¡îˆè¡Øi*žxtÝŽX¼±.TQbWoðï«=IÁ)Ô§KO<êÉmD&%Þ3ü„7{6©Ÿ±©šÔÍ6ºd'ñ tÎfhBÏ'öS±ò%s=1Âø‘K»«O|tóѦ£zÍ{‘Q½¹G…YŠc Õ3bé Ó[ì9^ß²g…yeà컫§ˆU,c)¤¢^õ¬ä ?R}‘=žæÏí¯zÁº‘)ÿîɦ{òꞌLcUW }×¼¨)3®oØ|/bpOzÆÝuOzz„zÎÊÚ4eÇ7šì&vɆõ<âöe–/˜ÄDáV Îl²™âk‰ BO©“ªªz¯P×ÊÓ¯ØA­<Ö0fË^ìäy×T×XÔý¾žµðž-ÛJŒúe©â·ð„t¾F±êžìd:Ïìš!Ö»w¿^d&q9ùœÝØáÙý è_h?ÎD8ï¦(¤hvÖY(ñO{²‹_»íl3V@w»ÕÍT¼ÈMì;J‰›%'ˆÈp¿N8š¬=MD@`1l¹þþý "Oì˜ XuM K¡à´À Ü{[¾iâ× {¸›NÍ–º‹4Ö„ŸQN!¢¯›í•iÅmÈ7œ's 16s.­HW7¹[ì-EY0¹Æ“ú\3L|½U*o1L|máùa,úuÂæzªN_ÿ}j|qa LHOwÀ2 {c˜™¨sû•7S"Ѝ5z–v>'oªEá1Üù„Fƒü[ʃ#%§tÿœvHe[„ ÈšâWT燅™×“v«‚’/z¢§±Åš[}ÒC‹q"F6ãÄò¹.ŒÇÒH{íÛ"Œ‚àÍÍ8Òœ¢ t˜‚â6Wì‚åË#À÷Ë‚¥’>±=âÍåwaH–2/ý·]Ž­htJ¾¯GÚþIÖãHÌÉ d®ˆkG*Òºa’a‚8â 7S¯‚,vNcÑà|¢ºè~­ý‚Î׿z„OŒÚö}¬¯·q´…½{Îã[}‰÷C¤=®šäšÒÉ£ÔǦäo~›|$e¿Ÿ««–ÇŽƒœ,+*:„Ë]K&é„KÝH<ýVSÁ­P<ó‡½?=Õ¸EsÒ^&Ï›°\*ûL÷³ƒ‘²ÊC¨ie!®Jö'úÇÛ<¾BLÍõâ–Yß×KùÆa]v80xËaÌbL<¢ˆjrT»[AƒrXèéÈs¾©Nß‚”@骉¶?Æ«ëçSƒé^ˆE{ç1AŽ vx?»g^ŒOnw’ Á²»=ÙF´‹ ”îCÁñ)õékGǽ̇iD²òá£;ª¦’*@5Õ©³ÙìI|©ãÙ¦ÙTlïå%•ŽºÓëÎd$Õ¯wLýL&f7R™>ˆó¼‰´¨êSÂÇz÷ßït1k%ík2zâ/Ð݆ŒžzžK24Öé§*}h T+i'Ú%|3n®\åìô}èN‡"ÌŸT ¡fÄ9O­¸ÓÍ'3“Þ-Ó—u¤§û²Å£ƒÎ¨g:³Xvp¨²¿.7¡í j¬ýP!íPèKž™DÀ¥½ú㯛‰ß&†:êÈÏ8÷si‡Áµ@$¼`ŒnÞ®ž£°€Ûâäd )ÇYßà79A¨”ï4aꦎçÏ®X!î.:­OÃäÛ—)Øa:ÖœNÅÅÅÑ ×[óÑjôö|6ðõéƒPŸÏÅ`QG²'ÈÍM=3¥‹³¿ÎPDřʬt]ÃSG2p–UR¨£óx‰t3Š‹ø1p £ªQ£[ŠÄ+¡€¾t‚Ÿr‚/ô _ÎÈ ÝW‡+·8Õ~N+ÝSù䈑ºL—vp²0Žvßß÷ ­³âJÝNè“™¿°E¾Þî©'æ5td¬]»5ÒAk©™OßRd|ÏÉ9J®C~w·h£"CÉ‚²Òu›õ&ïí[ü~¥ƒ³;_ÿ¤ëõÔ:úÅ¥?§øP&*žÎE¾KëÀµâ3[É[V‘Ĥ¿='r‡{ºã_6Š5©è>Ì­=˜¢6+èaQ°N½q­§vÌî7¢Ð¨òJ-ä³Ëµ[]™;fÒ×ûX‹hRù ÿ\|vëjNÜ·Á_OåXDmqºX%×kò,¢~Ë3¿¨&\¦žèZTÐä :rqG.ò2S}‘ÕvˆW;jÊöXÛÄ9W§ueðÙÓÓmP+jyû¢]ïCudß‹[ÚSÛ™ y›£|p#6 ÕOøR-YM‡Nuåñž¸×Wgœ~¼ÔƒæGÔê¯Ë¨'-$|â‰3.Gf°%jˆL§¿nž!jðµýÎL§Wú9›n±fÂR+7b@ºõl¶9ĤE8ýpØbù1ë¯LCZPØ£n¶ü{‡*,ã>xšYÅòPg®§ŠLå¾L©Õ—r·M†u7é@F{ø—¸0%ÛZ<ÄyĶ6šýgÌòÁK4~“縌uÏq¸->wây0üyq½2“ØÍ¨M*÷ìæ)½:·`•¹Þ®Ï×|ÑǰïÔ©æ5ÍÇ7žSFR÷+ @xâžJg fVkF%cõ]ò(Úrñ^#”ÄŸ0îÍIÆ»Ðøi$<±%*í™ ¬Aþw÷½ÅúiKã÷¿!î‘]É·ï! ôj:Kl½!Æ:©õP(ÚÃ(‹JÔ_¹‡é·´RKµt¬›³ùÊoädöNEƒ™(ÍÍõÊSq˜¶¯·OùÒ'D“Á©Ò¸+NuÞ¬ð`.¾ÙX±5·¦ä»Þ<Øô¡ë©ÎËfh®±*•L×»Y"ªôë*‹{hÔ§ò§nô÷„–ÑXö¨>lZXú\:Pe‰ ZY®]ËŸæúF…z’£Åz"9Y‹¹Tuv .n}Ê¥š×SºÃÜi»3x¤þtrO±›÷ðõZ{˜ì`Ö ÞÃvÑ^•§nJ~QsÎìf4ÑyF®o¢*Uˆ¡¸¼©qÀ i/jÕÌç¯SÊÓH€¿Ï”x~ïß~ºgš]þµ…Oß(Õyw"‹'ÏÀ|õL׿÷\rò÷·›¥ÒlÈõÖÏývv)àË\ãеL¹QhÏ/vØ/¶:×ô(fƒ|ª=êìnnw5x í!…3¨ØoÖ Ìn³Kß BS/›\ÜãÛå °ˆÈ}ÒA ÎSïoAR¥WdëØ9B>xt}»VHX—®g®ù·ü_Ï‹bÈ}|SîFçÃéÜï·yÖìx ×É8Ðj·•M÷Ö–M—žØ‘P{ê™=R“½[åŸixpgnrËÈ‘ ÀfÏhym"Û<ÿXSCbÞïó›Ê<±ÍÅã¡;­¶û\À¨Mó¢UæÓ¹¡SÍ÷©ZÈ™Áÿ¾’mœÌÐȶÖ}JœR›VÑ”Þ<îÚ`d Oh—·ûSõýúÕzvaÌ u#¿~|žž*øtDêÓÅ4½7{{õrÔÍO„åt{|óAE¶â\gÐ'~>œg¥—fõû+úZò5©êb>n;<’b}vޱ¨7ÂñX³:!îý4ÒçG”ETß¼ws͸×÷u¯ß׿L: A¯JxIº+4—•>ù)Û1Egÿ*‡×gžÙ'³×Å(;–ë*d£w´ ýYí#ìÉ{¬éL6j¤3sÙÌݦ›6§‡r„‚EöÚ\ÆëOïˆƒŽ ~ýÊãZNƒr®n¯‘¡žcäUn7}˜ýÛC(Åae¡û'žª}»?Ô^Ó?‡ÞU²¸Pl6™äLgæzÝ©êw¬ê±åºåue” –€Äè¬$‚j¿‰¦g‡ÞŸ¶PTl½ K¤môÎ? P1ô !8K-5ú.+D£Eˆ(‚p² Ó®±äQÁ•t¤~WOðÔWáÚ¯õfï¥m=÷­£š8óip,*Æe¯¾¸Ž£7/ºìÕKweüc­3$å¢3•zçf‹á UÝ«‡gˆ}±U˜ËÙ eQ)f¤Ïúr_,sWùº+ûfïyº÷½‰FŸv¶§óŠ‚ÊUs®¸~ˆµœÿØ…š®ON£o}è^êÄÎMá“Ð?ü‚Æç™éÎÎ×gŸq§ôe¦f&-%Ž>”E3µauåÆún<}ìÏõ/úé r ðDV%7¹º¦Ç¿€lV×7þu`ÞÅoHÛa4:2˜¸©3¨¾Œ†¥ö‡šogÒˆëò(Sü‰Ç_pܽôëquÐ6t\4U©ÄW-„ÎÉÙÏ4TÞÓ °’¹šíèÀ…žâA:Z¬xyoMàdÓÇþyÜ©fï¾ì¿P? ¹Â…üz½öÀÔ­Ä#|_Sáàë£ÉÎŒ ýÒ%» ëâΜÿª5, 2`“‡ÆÁ î]{ú ¥pËô´úºÑ*àëñ ¶âúê’žJ0ÈÕ U—àþsKÝ™ îøç9ë§@ôºY Ytíã¾×¯¡€~?2§øÆoÿŽ :©¶%7—ùÔ²0Ыְ £ÓÎ(Z‰sM}éæ'˜JA›ˆ°žCi>Áiµ)q—»ûbÕ<»t†nÅš{d·ëƒg ÃW Z˜­‹~¦%î)ÙvòÌ` ÒüóE«ì”2ij‡Ä;¼î4”%H}“w*hgT éuæ (û’ë‰öOùx½“ÆE,útîŠÉ9¯æs€÷Xç©“-ž(Dœ¹iÆ ns†[éiµ­õT‘r *º÷¡Ø]V÷:ÎP³JH¸ˆ}v§«Ü1ÏÌÀêæÞ†«X?îŽoºeºÓIÁH yäêXm=—¬83-U<@à&÷4¢®+ð‹.Ðød>†zV-Ï3Oü¼ùÐ¥ëÙõžŽ3^œ)ðÙs‡`^sÈï7ƒ¥óL%/QÐ …ÈÝ3KÅçCYf^ ¢dò7¹Íé<8ù»×g~hª“ìkõíðþR­¯Ò#KÃ…Ùð;†'Õ}8…øÆFê:B %žhâ&£brf‚ÛÛóõ!Û$Z¿¡ˆbÍeò ÿ{È' ¶/ÜÃÁLŽÐ Ý6‡Hg^*÷“g|=÷è™õ‡›(ô¸J½âÀjßd‚ÒÝä¶—kMžÑì´v¢ÿOæfågO&%4â^˨v虼}fÁÙÊq§×Iâ@x/óù?ÖVêQʼnù§èRJ¾û¡×bñ=Õ¨‚x¥¢"žÃ÷ئ÷}XŒAÝìtb_‰6'ïmÛ—üBDõÃWœº4oŠ>Í]­¾g*ÝØf¬­NuÑuëÔá™,ôoî j>$VZºúÛSy`©›³jI±èÑþ™ÛüD&‘»Ï…ÈÞä""³:°bœ«‰IövOPå¤VUj^Ÿ1|Æ¡m•¬N$t3}ÐÙp>θÔÛü !©“Y‹$W­¨ÿsÍ0îwMÂ8³3ß1:¯ˆ^Æ€ž|õ‰P¬Êš/ ³1 ¹ÞŠ¿×ÛSÉ¿ô©KötœÑ–Ê>¨à!?cMŠ@6Tó/j%XhúçÈ%Qf^­sçëoX÷~± ¼,»£jó=/IbÇoÖŸÜ·=G¥¸O2Zèptº9GôûÙת&ä9îùXpÒHµ®É{÷ú‰MFñtD×)ïY€n4:ä‡ó^³%¹»¡²¸ufq³_k> eÀ½âú§ñ^¹©šÈl¼eîÆw¸Õ6Õ¼Z*LDµb¨04ÇâK{{ÔJ÷Îý¾ñøí)¨<Þ§ät©÷©Y¥$®f‹öósd"Ë®™ÐéèTÎ?Ö¿Ès“¶îÑv饘J?àèˆÂõª¯žÃD‘ÙzºŠÅ½Vª1•n,ç)bJå#SD« ìÆ½¤×k¬×<±ìÌ®]½:¬ 0ªõzÝ{«ê¹-½¦d€s\­/³yîˆüXù~ém¿ì ÒÉúšç¹®Ÿ"*|³ÉoýP| 'ûkž‰FžØÎ¨HïO Ex&ô =5®âzFŸÑjèÎ5ë—“ ]fËÏÏ´ó&Ï)òÅ:5 ñ v«6NºY6÷È6Þ‰=:V2= âe=TsÚBš’Pv}Ããë_x&¡[9‘ôþášúÇÓÜÏðª˜Â¢èDß®z@ÛÈNr$˜…ã^‡mHhñÔ“ë GVîùM1çbmQ«(ñì­ßò¸žÁµ¼C7oCš7¿8=üŠÑXœ¢bŽR½Ô²£N½æÌ$«+8=µ>g„ˆZ5〠‚b€ãî"—µ›å5ÈòêŽR±ãºé¨ûÞçsÒëT<ÙWüäæ”<ÁE•Ëùú‚•™@æ’ЃKÕôþq¦œ›J¹¨Þ¬éf¹úO5`åf¹¬Ôó_ê•=¼Å¨döqÃŽ‘É ŸÐ¸9›5:oÎ|qJï~~ž‹ñ2«J7é0{²îæÙUv–sè¡m+é0n«zTj=;F&À 83Ë ¸:SA¢û^¢zï¶ŽJQsÔ-äù­¬˜ý§¦áǺgTÒÍ<¦¢Òá:½Ô¥Mt]ñ6®Ûrù ®¡˜“õDªºÇžÝ‰ ¤;ãöôâžTˆóLwr==Ó …µm^]i䫯‡ënôäm®ç6£\ËÂà=àÜë2W©ÖÚ Þ›Ö‘Í²7æ?ÖRÒžœßÕ£Ä߬ÙMøiTÐ.ÖJmÈTH2hì{ä+/ô½®£Î¢_zÊâ&¾¹©’x?røF®Éd¤£a†zÑÍ[¥:]¥ûÁ®Ñ1¹‚%ÅZåp³Æo‰ b褅º:š^+¿T<ÃŽªháÉ@á?r?+÷$¹›‚«{\ÏÆ=Åg60|íéÕ0ÈÞM7 BÙЫ=Zãæ4—sл|ÙCwtƱcׯ8g5§Á^óvy*\Û½ƒ†Íðrg.Â(“þœ^ës*ªtÈsÄZŠÖß׿Øùb63È‹ëß{•Ò-\É®þÉQg¾¶uùÓM±Ðt}°EÔ­žîŠãúu«'»©.Ä aÍôP‡ ÌÈhÿPw‚ýwéNl>ã)þÉ Û»QœPPþè;¹Ô±ãz²7x?òÅŠ=±œÆ©ÙÖETƽSù’î{>­ÓȰÿ©ãZÖuXÜÅêE¾¾UêðÚVÔÚ¬(ÒçZ7ö;)‹Å|}£Í*:ý0#WðDˆõ&¥-Žz¡‹+#e—+l*9²&š©ý_°GfêªdÜÙ¼[ê‹[ƒªÌÿ«Ä•>Á(O£æI-Ð8•Þˆ3¼{²FZÌ'»³ìA³¡êöoëí¡HEŸ¤Áss¼ ‡}ÛöÆ"±>ÚC¸»¬ìÞ/#›0y0%àÌGNM3ï2³ü£[ºí&ÞÑ–ÅÀÜZ#Ȱ­öÒǶ³ f3€|}ƒ…qª¤BSÿˆSõº;š{ q-]€êŒõ〳ß=YsDy[~ò+þ÷ÿ?ÿëÿõ×ÿøŸ?@ûÿ~ü_ÿ÷ÏòóÿýQ™­ƒš±lX×î©l@ÆŸýÒþ´K’ïÜ/ßéž)ùƒrKêÒ§¿¸¢«  ÿ˜ˆ·S’6'yʲpBûbjÐ;1¬±ÕÖD¹?EØœ@hNµÑh?Åà¥,÷3ê÷úôeƒ ŸÓ‚(ˆ\S_ê$UP¶ªÒÀÃÔØÓé-‚ïtê‰vßþÆ`¼ŽríÏÎFâ;ÁrIs蛇‡¬ø>q–ï1¤déËoå=¾â¥°­¨_ûôŸ&e-Ý"â®eô±fí#è,+m¢iáúÂ=k¹Âý4¶3‚é‚å÷ȧ'LÝq]]D x¼ãí£+›N|¸ÊYyç;ºIaágÅ\4~Uë%`nª9{Á›®vø 2ãkckbà6å73‘‘L9òR«~ò‰™’U‹&¢þÔÔf€?¥ ‘šnW¹V¡ÈâõÚþ\O*dŠ…ñõ¨–ÞØ#ýz$;73^«ªhòm~R¬ÞuçYtü~åë¡Z–Ÿ0סAZ%çX‚S¹hOu‘Èàc§MÛ!#%¥;Ya//O4šör0Ǩãó ^ú¨G×½ŽÇ¦Óp¬'Ãþˆæô7Ç·EÛ¢økØ8´bŒe½úíàƒ˜å寻.”_­è»¯ìÕ•Ë~u¬YU}ëéâ»U]4è™êÖˆu ƒ«¸¶•|÷Ë»§óß_íìâß|ºt3«|úDâÆ°¯Ðp€Ò6¨ñ‡Xçéut ­Þ»¡ó/âZÆzâÞ¢5¼”…ÀÙk²¿ÞŒ3Uò±B?=Ú ’nÁ»¡Mþíâ/ã®Öçb€Tms,æõP¯:žþàÓ÷£@€½uôü_;—òwÕÎ •Ns±ÖýѸ¼óKçá×L7þð{šüþqH‹\~9è¡ 0Æïàê2l¢Ö§[7ŸCîA¥•ù@„áºhyÌõ­ÓB›¶"~ˆs0•Qи–àJ?âDNa’Ø'Œ%†ùwY+]µ‹ïK'ò|,¿>3ZeÔí‘9úôÎÎèqÒœ.ŸÃ?5>ÁŒªn´>Ó{07Š%öÊéþ)¾‘ßqåVÂa7Þ íF|‹~ήϫz®‡NsõS‰»ø=wÜgxîCññ›*Qƒ‰\5Ž5nk%7±s%^…]ÂÎZ\;Þë÷yãè/†{¾ã TöYþö£Ð!ß~ðφ¢ØÝ ±’¯úûëÞÜ3ïÛúöµ ޶nc\â2¾ãÅ "O®¹§‰Ë5aeÕr'÷}͛˽áÅ%èí=í;ÑÝ…§žCƒJ¶ÓŸÈ ìåÁ~IÏ]2C£ôCÄIÌ@TÍ­«¬ú—›¯²Æè®‹.òŠ¥)5þrd¬«ñR§.Ët‘\½˜þÔŠÛïk}[^*Ô0åÁ»ÇK)5>ý±"ð—/šzø—¯!†ÍBÒ„€ƒñ§æ·?…므½˜åš²²LÐVW ¼4¡Á>ÛÅjL¸ÑŽ–‡—^Û5'ưyŽÉ#"ƒ_²^§|§/aìSV'tè­v6ÿýc)X©ôñç ëSea¦Òx’æ¢éµé÷KÜw þaÁTCT$º^}æEÆÁç%â §ô7ûƒu£â%ãK•+‰®ÓB T–½ ðï釆ú°Rv=~ýéXGÿ¹ ÿ>Õâýú¿ñþC†`³‹%æÝ‘Ú‚šA|ü°dÈ_e§D׫iÍñE}o‘êÔ}sŠQ¸qº©¿ÚþÁúΧöY©~•n•®¶ñY»>é‹ÅÈV«û»WœîøJ·òÔXþýƒè¿Ø¸ÑÖæžºGߌ—TùÊ]³)34+[l7U÷^8éLbÆÚäYH8mµpËi››kÍijo9ñ^«Z‘‡Ö#[}øjHn/"[§{êv\Œ©E¦<֗ʵª[e·Æâ¶£¢nT=õ- £O>äOO&tŽôQ—Þ })]‹\·ßºbû;ì'V:„Lu`;Ãð’ûè[àjRo2~Y[¬±Ù%–ZeŠÛ–·Ü&û}¾??èšK|é›<ã+YÊÍËÅ c¯Ö«Êm›Bó—©#æ <ýÞS2é76ß¡uea"Á&̓]qªFú±¹7ÍeJnöÍuÓZ¶ * s©¢TÖƒÏT©²ÆÐÃãgXâJÙÃ?mþì K¼úÆŒ¿<ùËŒj,s6š\ˆyŸ½0 éP'Ãv<Øì²…Qž0hq]ÁúvÐaü±öïoEôë@ í¿õÜ)D8S˜ÉKÔ8¬{RKçm¬TjI` qEÖzÖ7{™9lkCA¯÷›%å 8f¨Aq“e»§TkÀ'îAê–.€Òlíð%Õ内ž²—¸ ÷Š~ÇûAãv²×ºáÄõºÅ7/T.õA*sWÎc‰ìŒ®øZp+nQÆXˆá’$Wy³1 G€›ì´Ó!VÓ¸œr6¡7î¥èoc:t‘ýà—•&B–[ÅBeå_âŸ&V$Ü X”㹆´=þù!sùJ¹þÐXΘB¢íŠ?&7ˆ¨H¬RÚv ¢Ñ®. ßñ¯'‘VèÑ.lð0T=ÛÕ<ýÐùª‘wë°<\ê—úއÇyØ¢]œSåIÃlüóØg´r¢cíXoŠ‘3žpaèõ ‘êÝú}üûåÖMGªè½•B†½ŠVí6á Ç~M£ñŒn< Õ­ök˜Wfµˆ ý#*ø÷%t‡ßgT9¼T;¥ìÉü‰å ­%J©³èà§Éö<¦]‘z¶s,ð 2LË;Óþ@Ôƒ]FË¿Ì};ÿr÷60=èðģĆ=8Ûñ ¹‰á¹ë}¨¿rϬÅç>>~Yáß:Dæ;ÏY¬c|ÍÝ’à<Ý‘L¼H¤­›¤rú° V}Ïà½Ó€0)¯>ÚQœÓÁ//º¼é\稃¹˜’›Ü@pD¡:‹­ÛŒËÕ‰ìjãÊKÿ'W-LÅÉ:8œ-7fÇá\b}ñ¯çø@“{(ÙÕTWG³Œž(œšH‹Eæâµ,ŸÝÅ—(&oévI"æsv€9§ÐßÒÑLµ1ƒ\Sˆz*ÎÔiÒµÎfY÷K÷ÁwîD>(Ô‹Î Nƒ–ßPøÍ‚ [ŸÌÙH$µSЬ©[“î\ÝÛmâB¢‘í²4\]~žkËÇ‹Ç0•2Õ#¨ÑÆÑÌ ¾8/˜cfðÍÕzƒvèC\Óy°Å4Zº˹>IJÇa•ùiV¢wgÐŒçTI¢â¢yV²öðs$ n‹4oÕ¤í{¡ã]²É„x+Õ?‡Ÿ¿ï-¿ƒcb%Qh‘ux7ÀuˆŽÅ¹CùTÇðp½ú½Ítš„GK  [_‹Š*'C)´‰–n©"’àéŠ ?±Ü²cϽîòT`édxgXÊí´ýá&¹e\IZ¹NÛQNÁ%Aß9HMß-JõðòsfùòcÈÖ&®>˜0\rž‡õù~†hVXª¤•”½’*(¯µ»t ¢ —“Ìöú~PØ—R­Ž÷n´Ié×etRàé z!„h·Ñ ûô'lpXpî/ÿJjØiÞQñšâ¾^_@UÙßl†E¡Í3A¤%T±5H]Epxº3$`/PíZöd…Uoƒr5Ÿ°çë´]rçè|=ÝÑ$©N’›9ôÛÑ1 +9=—Ô¾™&,T¾Qß®!nªÏzÞ’ ëÚ.SééJSÙ4ÎÝ^@Ñ»z%ýqW·l/¦Ž>îžRK÷(ß z=u:Ùž#|•­†n©)*Cô"¤{g›Qô]¤HR÷èà—V^gO&ÄÇ×yŽ¢+JüÕ%¡Ê¦ìzÐ#Wy=eÝ~ÿ­qÏÓUÇ.yg·ßoRsåùòB÷ççÓ7qI˜bt¨'C¦AEœ § Ø- ë¬Î› cQp@-è.~Ð"„þqËt¾´˜H/‰Âo%§üÒ­¦jívÙù[×Q~^ù~^?WŽ|ÿI£¼neˆÔèk!t!+1ct êVªQ)@(²ëóðîí«Ю{<±‰õȽLnáã(Õâ¸fÉÉ^ÐsÛ6ã›Jâ¿-yß<_ÐÖ~±¸ˆÌ„O!»(¬’ÂkÚã”E¯»m3ÚÅL/§½\uYEé~'êð=àù”cHñô‡ô YÇûã‹:£]ÞñÛñ0îz±Ç!ÁæÚþ;ó’µ\aèþ…Å»0ê(m.CØ ï‘ö…Fg“cúM"‡[bÊKƒ}¶ÁWé3ç4Й·¹ cÍeJésãè}Ñ{ÊÍá÷`¡ëâ‘€ê:¾±Ù^´ï…Vó@!ຼ¢n0÷à/6¤©bì6ÿ¥Wí…Y§œÓ{âi߃Îß¼/lĺûg"faÉ •j´yT96Àw ’X\¹yÐîÉwYPÆq (’¶!m:ž»3uâ›e$ä>Ð$Ĩ\e}u†„óg¤(_ü3ŒàføA,°BÔñnÔô¯GŒø7\Ÿ¿O/My£ÕŒ¤Éþp õh×"ð¢Z)ýH éåbtô½X æSsÁ¾².”‘8^|Þo{1c*ÒüÛ2tûòuó«=t¯ xFHÜ{Ñøm/ˆ:nQ7¹™¨-ÈäǼϘ§ nEUveú?ýwí\ÍŸ/<5Æ›OçËEÔOÓB¨On(NMˆ=ˆ'gêVw¾’ÅèÅVb<@=¯×ÐþôçŠUZeÓ\Z„@ ÞEÌqCÛÆ…L%MÍÉoãfÒ ½hÔ·Ú. t&ÇW¼ø‹×ºW0™Žt#Ÿ ˜µ|ןÊE}·«ð=éûë=Yº ïéqéUÚ2nÚY£ò gÎy´‰›dpß¾«tþu¿žñ†äê7ë)îÆ-¦0)˜ K:'Y2§'siKAõ‰…ChªËWš)î³$»17 i ôðšéø© 5w‚K7ah–9xÜ•ÆÖüidð â|i4|÷g÷~ÆSHæ:\ú¥ùüæCÒtÀy]\¢b~ó¤ ˜Ã'ÀÀ¿¹ÐÔÁpÊCÔÓƒ“oA7üè`"øÿ>5²X¡QñWAÉŠI òQçbó7sf–ë[¥ö7âH ñXò:a+Ñtl ó\Äf¢4½ñÜÜ͇Möð¦Øx' ¤§2KÒ çÁ]Ð2ìþB¯y‰3?oˆ;·1ííJíG°}9¨ÏÖ¹9Bà+i n6ÉGÖ„¸/‹¬(ž«’6µç¶¿%>23¬ÙXm™lIN ð=‰hFfã%¬ŽƒESÙ‰ ó·cýMÅ)l›|9¾¹²Í½‡B-3^á´™ÏT¢þVO ‘"Lòy®¦á ¼7áÑL»’½yé ‘ìMN,…jX¶De7@A—/7¼Aš‰ºªKþuð­X*ù¯Ý ˃lQ,`Š7{á[ÅŠ KøçÎYû토h'=Ô»pp;/•äTl~QTÿfýH`§'ÊþX£›¿ùð7ãõ` Ào^ºüÍ8ÙÉ]~öȬ\ߨ „ ͬÎß„ z+4*Å:½M?\ßîz‚+GrÛD3ÁTT߯¯®"q§y?_Áø2H÷L€4ñ›We<,”âbQcªýºXÓ˜¢AZÈ4ðŽ7™ §*úë¢#ñD ©*ÁàR•V‚'œ&bŠÜN\›°Ö“È62ÄT¯“þ¼V—ªb´\·¬°XAa6€ßŽ2•P¾ .¹„~l†ÁS%Æ…-¼™‰’SypºÎL=rÿµy^\‘]®·µ +Üöu¼Öà{}< —œYÛs„X2zº7ä¶)¶9+J¹—{¸ ™Œ! ´¢&ÊŽá &;Ô§ÍBε%|ñ&ÅÆ²oãÁ!7Ú °ÌEÆ»æ"6w…p=s3œOaÒ;É)†¼ê ß aÚ¤ÒXšYÅÃë-QÓ [AÑ+H%ò[è£ä¥`ˆ{ò‚…|2Û§S@.’Ü„ (ù˜›L4>˜”!SÊs‘£¤9i›ƒ$wôWlàM÷-âB(ÚTóYäú9XHóènýf=‹2ú½‰ÑÚËe ÏRåä¾8tD³v =yl>Þ”èÔ­á}"a. 3‘xØ^’s˜¤Ï ?ýÔè Áû¨ŠY„ÅO y‡”q[v9|ÚÖeòTnàÌw÷”ƒ¤/†7]º2…·Æ¦s®4Ïý(Øyêà.üÞáo6T(Ä*#€‚ˆAÎVÒ„GÚ“›•¦ÕˆNLžcŒNVGBÍð¤Y׆P°“A°‹3¥š¥|y” 3år¼“qy{Æ -œrŸ^xXÑ=j 2+½g,q¦ééB¢„v'‘ËçMw¼B¸ÊÑÕá!ܼ“;õ½=†{õx!îÕsbb''#9¾ ¨çq$•š´—ié/O5—ëòU33½6ÎÓ®ÆK¬¶ß!GqËUˆ»L¡ÙÍŽ ‡¬›Íy¸9êO¬Æ®—禑Çv Y·HÖ—7²ÁîÀ±]j0ËYh=ƒ‹Îó þ¤§©u»‚tž )åÞ:˜$U^¢42¿ˆçÈüΗÌ37hË€Õ{ð«@w«×…¦ØÅ&Þ$bÂv¿Ð1ÄÁ›ß¬¿.µEþºì@ëÓKôx¾âȤî¨ÖæÝž!ê ¦û:ØÔ/h‚³}K\¾°û‡db¿‹\ ôj52Ç ¬ë¯Ë!"'rX3ýr‰Lñ¦©êÖ%7à6wûB“öôDÀ¦G:Æuëí ãûϧ¾Ï+uWù­×ë¿&­W'‹aR9PL‹ëdhéÏãÑafN´-rFDt“E»njìyGIª6™&ëžSõÀ·_úZ"ëÚ•Ô‡ýÍ£>{Wú®x%iÝ:ë¤è$íìKÿ¸q<%:áËfƒH8t€7×o zË-¥O¢’·ÎɤŽùXHè7XÐè«xï#Mî"­‚åzÓ®ä×âz÷Þè{;ÉLùj‹äDÇoï¥Í߆¿;OçÝ(û”¡ðUÞt=)zM¯`¢Hse ’½ZÛÄŒ´cja&¥­¿ðÜŽqÀR¼«$üú¤Ìmb> 渭Lð>OHþJ‚§Ç´DÚäç%vOIâcQ²Í÷Íb’ß ‚üncXž6d¤Û#š¸—U-'Ò‹3^®S“eh¶P:]’µ-·f¬&‰¨(ÈÕ‡–¹??iF ¸k’>S“s ’e•0üwuDãtHSx€ñõ…Û“EF£SŒ“IêV$M] ª.5,)ºH†{I¸Aûœ-Çoá2+# jÃ~¿ÄôtL:ž5³â7¥$(i  5©z³‚tÁz3I~; u !KFI²Ç´Ø|lÒ ‡ßÔB ï}›M°ƒÉ( µZ&”ó‹ìSÓÎ8», H@Ï5mÅDæ~?,»á¤"ÉÅJ–‚Zl4ßÕÜñÊ0výJ%eû7yc¿/_÷ûÜi^í~^‡èÎgÚlp¼v7®°Ïæ:»vœßió=öl’Ä!7ËŠ<6#ORvU rkν²M]Áí˜ uzô¹Zô0“¶ž;Y‰–éäc¸Á¬X—g µíÔÒd࣪ÉÍW{ñ䂎É)ï;ÖÃE¹¡ªBÈ‘òJrIÝDTËk%(Â>½–@N:-‹!®$ø$R¯UÒÛuÎ\W“C!NLûBÝ;¯qêï¹g¶aÉ.4_Qïfmay!2ô´æI'Ô Ä UÉ Aƒ¨I&…. Xî’ƒä™ÕIîÒÃÂsÀÑ‘ê â ?$ä;Ï|ÈÂj;l\g€’㉖òè”&Ùº!ƒ9‹.0È!{2"ASoÐPÙWЮ8õåºï>s!„‚½~·D`³GvÎT4ûÊþoØ~:Å·+y‡W°Ù­§•÷¢U“´À-òjbÖb‰íîÀðaÁ+ô6/—&"ÔE¶\‹J¬ý’Ckê£[*´V¯µqWa"îúb.”vº ùƒ„]9l®Ê (Þö*Mé›'# £1U¦ø».¬Y';lóšàdLOÂ6^Aúë¾Ä¢8¢XTYÈçÚ}W³÷9,æøê´«‚ã¯wÎ>q_–LBs/¿¯ûr-—BRáNUŠiO#;D±¨j¡ß(áÕ‰ kØ®D$³J©®T°zU,B»c~‹>I•Vov†9–l*ï­ôÎÅQ?p$XïKvf_ž›NþB"©ù”r¥Z$h íÏ#}!RKćSé™g\‘:§#»í¯©ª •+P>¾ÈžDü+X2ð}ŽP©Ë–w¹9GÎ|±´'¶üûq½(Woé–ÎeÁ´x¾¯>•f„¦B>Iþ‘â‹ÈÌ0øÖŠø£P¾LÞiy2dY­‘‹¿ÿø¥9/@^›y¢[Qä‚rià|ÞÈéÒ^ö‰ˆ(™.•+¼»” ì™ùnç>9‘nzô´“ácX°"жÍã•!âÅÚàçñžåùïSP®s6¼“]2£tE"ËÏÕ‘G£¨ÇpÔ](ŽÚµãøaaG8dSö ]¼7’ø‚ÓŸWð©Z`·`f;ªDÙ°wVJŠuÙ饋%ÉøQË#ì2sw¯îŒ©k»êbVéN4fu>¬ÐS°UÄp–Â|Ø…× R~üÇ,^—¨ÇOq#ñßi:"™œ%}Æ'ª(Y}3ñj'JC@mú…>^â„Y¹ï_¿P}üã7 ýÊ”»xÕûôÞsÂ?«NŒBAÚÊqÖH›YW@«/ýûö5éï%:Ó¹?XF'Xgjk¥½µÿø D]8'ìfSžØ9qw%?‚µ1½‘äæíŵ³ÁŠFqmm²ÖæÒREÙ¦2è§=X½®‰¬SLþe5­º—ÑÔSÿ òÌ6V8^„o4L|E¼Å?”É¢ˆ–ß·5êÑ ˆ®YC‘4€¬¡hÇAù%³2Þõ¢œê8vUÝ_ô’õ5fi¢]ïšìi…m[Ôχ]ù‰¡èF Ìº¯ ë‡mXÄŒÑ}ó~QXjÍb@ŒlZõžˆ.%gek‘7ÚªÊ~<Ûšv J3è]¡iSZ^jwOoNn~Üêãù]/.$  fæ`´Äüë†[)yúï|$v0’Ä*{×ìèy²ùF{Ü\™¶fJ +Ÿ•$ôQ×°Ñ/ ñT=B3Bç'`Ÿ";£üã~ÀžœOVŒ °1Aü£Éž¼GÊ•³éWYÛj-BŽ4HHšnõ,ï‰héÕs¥¬9Í}Ý%Tï®`: >Ï=tMŽê=;’r£ä ?¿öw×P.é?j¤¿Â_“ÄëÇq2˲²æ‚î㊡ §³uæ>¬H*2ðó®_úÈêH¤Ò'®øj«’Uì3o½X ù ´9QÁð›ÈwµçJ2›Îõo~“´·j"Ç«‹^vÝÕF/+áÒzk$¼‡pÍb´]Å-¬ D(>,RØ. 1p£Gâ7’ʹ9â¤H}ÚÝ÷5y‹  "¹þ IáhOÎÌaIy'»!êÆüFò„`* žZÈÚ o¾âêŠV_{þžþ$ÚSG&=vYÜ`/Äo" "(ã=y˜`|§‘m¯Î™¶àÅÁ±ÆF³ï®S·2odR›i¬¹/ˆW"s%w*TÎûùšæ›÷äÝÕÅØÝu¨áè,«>Ω¿Á‹&$še=zåÄS¿ÆÈY.·yªVÄ##í_ÄÈ®µëøð=;¼§më Þóâ}]q |ÂÆ”Äð÷x枤¨g…ì`5µ´ë÷51ÆóáM¾kÜjeµþ©ÞÕ[ÉêZ¿ò ªlc2wÝ}嘿ËâõnŸYYû}J|êB?À'N÷µÛCVÞÙ=¹û‹A±‰»3éXÍÑN×ë“Ñ.ú̸«¹Ã¾^™Õ¶èªÞÖ ž¾/Ik_ûÂ¥ÿ®o¼_ûÊÜÉž¾3Y„#{1B/bú(ô‰–Êw¥ðŒKû@Áì *ö¹—¶¥JEá]nW8V>qûïRƒuùDH6Ï]§ºZ¯„à´aÏ­õ›sÝDdªi]pb¯ÿÞéãN_Ãvðüþ{ödz1h¿áP4}(ND‡b;ê"ô:³nï Adµ|ðŰíCu<»}Yµ”7®²+Ï_˽‚R]“W°ˆ8PäIäO9Oœ˜ˆ´¢ºÎd8ŠÆÉ7Ý¿ìÉlÍø„ÁlM2 ’çm#ûä]˸Ù+z–9±¼2sæ~ýžÊ~yjõ¥!;³þ¡üSÚ<¿;Û”@WǵôÃkGßC¿ÉÕ]Ô—¶ëI.Ωˆ¡@†ëj/ˆ{_3àà YïA ¨]—³ö [â…Ae³ÀÞ·&FŽI‰ªƒ1^Ð><¾íƒókœ h!vPÚK¤ºðîÙ²¡™ö8ºkX áZû‡ýFó(0¤½§÷¾ýúùÉjpõZ&×Â|<èøŽ©oˆ*ÅÆpU.|—s6¥ÄKg+h;~X¬.¯¥|ªÅõg*j£~¤é4rxâ ÒÆ'԰ܼå/R:WoÑ0(äçí­¿O®j[kKòõÄ`º{ȼÁzrT&ßUÊ¿mÄ@ù.ǵYÚMvg½ˆ{ãä2©êC‹»v4W°€L[PgüF^ãi¸âòÀ]ºâQn'›” ®…8?‹ð™iëxîæšƒ´ŽCG­·ÇÚ:;š•Ôÿi+£q”ÎRuÚ\mÜ žÈ´mïTô™?‚`ˆGº›×&Ñ#ÎÅÉ|¬¡{°É 'ÞÜÁÈ ï$ÜM/­ÚédZŒÚð^4rRù76²²=(1êh´%{KwÃ}f$té§OU M¶ݨ.ôâ‹ê€ÌÎ_°tB·/(°¬ê»{“©wlïµÞ]fxLi]>‡ˆ².„+ É6þ]ûyz „³Z㲓› Ÿ_:>×ÒmWÚYõËáTV:+{õóî _0Ÿx3ÁUäj-ç³KËèûàñ$Æ¢ùïÅrn}º_~jè7cóد\áñÉš#G¾ÐÈE®h·é „™lª1QÈVBÓÈìr{í ’Òp…MlŸ8F-BÍÝ’>Ô¾#yñ‡Ì ®;‘í<þ±×=ÞµÖÍÚìÍ¥Ó'>»3þ¥¡÷MaóB\Ùºˆ èá)Ü7©ã.ÊfçrÝl<ï~ÁW¼ÖÞ¹Ñz‡‡ÈNÞB¾9&„T™dò(îû.2}„¥Î'‡ÙöA^ï#½éBÑÁ’†©§š—ý¢™#V§>Q¿ŠWgÀŸ÷ ì¯¶w5¯æ®î.Æw:ÉIEåÓOØu!:{¯ê áÐ^{­OŸ«3ØKës®Æì;ôí¾…Ÿœ1{Ÿì±¡»ƒhš»'ÅsÅ¢êîLúLìÆÎ5ð^’ ‘þ]áòíh#mÑå»~Ð9»z­m“ÕFìÄ)UÎuÑ?$¹Üc°É;Èœ©QRj9kkT$6?¿/Hƒ 6óÎPL†¬'Nžñý3ù‰á¸°òŠÎøjo÷µuW¶™‰½Åê¦fÀnJª¡tcÛÙÆ ’ßu ãò®3›?ôÒE|ÌéAU”Á‡ò)(b Ä ¤'÷Z¨|7US%Òmßõ¬µQÜ Fª¯YÜùºªÖ‚£¶Áµ0\õ_j»µ´¶xWHð=0WgÑsÕsë~Öz¸†`“»S䙤\ë‰Ú WQ'±zÒ]4ïL`øB̲ôjiݘg0}‰‰—þÄL$xPãË1Òµ½¶hj:„1AŸØP¹¯w ô­áŠä挸QIsÚÌ“ hqhœk©’`BÜ 8Úá%óÅ, #Ri£ß\]ÉF—/=Nc „Û¹L{Ò®UÇ'÷¹•ƒ0þ3a«N¾„QÌHŒÚYj84åΕ•(¶¾³êòãžlïT”)hkëM¬Ï`ß¾SÁñOêðüÕŸÿqE;.ŠìžÈëœ76æÒô¢Î#æ“nF1–‚E²(FÉܵ XÙH[e<µy6/Ÿ È<0õ‰ç˜û„§}³×ùÜT_ÄKÞ.ò­Rád ã 7ßw…*1>Ë8$IÚ”l$\æ;„Á!sX#ŸïZî¾Û¿¡§šEº%;wó´‡ìD‹Ü½µbµçùôT6Õ7âÉÞ9{ÄlúóÉ®_²í¨¯1•žþò"î`¹v¶oè~ÂQ…Äs)ƒOÅûBA‡™æV%kÑ–æ|kiöªœÅ)êÞå2ÓæÚ8¸9Q.š˜¯þ¤Ð+cpÒOË­®Xyñ7ˆ÷–£–EÌ5¡q¾¢¡{ľÌ\—÷‰GZ²³À°½uO¼3M#aïd ´F^'ctFÇõün2&~7CÀ¹ñÂb.îxaó© E𢯢=§r½ïæ>1v¬o#¦ÞDûƒŒ™ÖñÚlà/Þ\Àiw¾ù£Ý§ÊXü²Z¿4˜öVb;w¦© –´c_½äz]ŠÎ±¯…><]TˆsuîL̵®é“k]³1×ùïîZü46¿»×Ÿh´Èâ=hö>Q]L¤í¼±À•D5 ˆÜƒðaöyUèWmTS)®'ý’±ÝQž>ÔP-íN‘±–æHµ²*»Ý{·_7:¸"§Â=xõP¯©¶¯¶·ŽÝÔ»«È©ô}~ «x§àSØú„17ö‰E6h¨îND9¢µí…‰ÅÚùDá6Ðù‚Oaº¿@‰ƒ*uÒkW÷p†¨·~ œQ FÈ-ב«ÀËݽ®ÊèÐÊÕ~<1¡˜HÙ°òN!r1Ñü#íñ5&*œœc•—¢(¨;Ù?¯ 6Ù›êÎêQ&‡ÊŸ°§°öö(ðqÛ±ðò76{ià’¦+]T+ËB{;s-Ìp¶çšƒ‚ÂðÊCWP8¸ý6?qó¢Oì·ÎÄ+Ð=Û¬'îçŠTwÞÞBµ¶¸©Q ueÄóñ(¼f%=Ì”ä:*ž›äêóõï"*áÆÄñì€â“fõ/(VW(û¾``/žœ!~h^ŸFÙô©š |"iÊ}¢Üÿ®ã»3–Öù[\ñá/öZàô)µ˜½7VŠ3ÔÚU#MµsÑYáøI¯Î»Ü˜Å‰¶£‹Hq×dнúq„Bl Ç’?í#ë*îâp ¯À9¾!ŒWïoh²£Î—Ô Ì‡^tγ;K¢P´$ÊÁ]›¾ëº«®t‡Þƒæ»Ü_ŸB»Ç{¾©ñ½Ò›ËœË \ “ ²¨êÁ³à¨]ºk°½ó”ƽn À‰Êµ|<1X눽’Mz ­pBk×ˬ_:«®÷= àî*îâ¨jS=»#Ú×§0YÙšÆèx¡F¨ ºn¿Bkå8ZQCö<ÊTu¿±¨GhQE–Æ'ô®ý~“Sªw£}H*Õ›çÞ$ççé7Y·¤ûv»ùŒ8ìþ÷á(ÏÌ}ûŠ€x:žXnU$‚›bÏȆ«Ëóm÷ò »>á7±z}NöXX¥™Õë©<Œß¬œœ™Ã JwL£•6f¨£qˆœž·{Hn€Y¡udõÜé•£.JÀÐ+×¹ŸØkg¹nL~ñ)Œ¼úäßÝg®´‡ß쬈Ϋ $òŠü—Ê'ÏÈ+ Î`¯Ûx|¿ö­»¾Ù¸È9ì3O¹‰K›—J¨‹šuW²*ùšoÎ#ŠÎ[‘¤œÊ w}‰½Y1_éS«3Y„ýi7g0ƒç7.íPÒa¡QÁ§€ÕØ]ÝWun Îù”å~Ác«w\ ×ÛxªyÊ'Põñj ¯hRŠ?«Ñh Êf1¸{ !µt߃å}%žŠØÑ/RtµÕÙºä_ꃵ­6Õo-Ç_üjí/]c°¹7+È…8¦×ÍÉ6²ê³~§‡ßý¦:´ý~eï~8Û×Z‰[g–Vg>åóĉ¼­é @zwëD(z¥Ý½¿g\9Ýí/þ[g&YÌÊC{kpçÓê$-Sy©î‹·©Ê$aÕ<~ *ç§wãC–¾ð^Y9û«ª/"‡Y£©œn„‚˜*–$8϶H)¦œ 8Ô´Ãlqb1æ©h¾& Óqv_HÀȪ[X Á{ahˆ‹ ¨¢47g{Èò$9@wg˜HºÄ‚bi¬›"d…íÙ-ñÝj~'%å°ÉÔÕXCŒ#r¾PmýÐ.¾‹MwÕw]×·ï–ÁiL&–Žw\‰¿Ÿgʰ‰}ê™kíÛÓÌ©·k¨Ùµ™ã©™ê†k¤•Ó#Â/v¿ÍH¹ÎiMb>.Ï?;ŸókDg+žÊ5À–yWÛ­â’šYY¢Éêàsž¤%×Ýš® qJ}­§×VˆÉ5p'köøT†'`‚T££»w†:qÚÕ½¶Î©ôåÎyjŽÛ—¢ÖáX·~øªìÖ“ÄL OÎs!?Adú®â3Y««`Αǫ×Nàa>$ ‡å÷Mç‹L:Ë;RÔ˜Ëù¥È§§BD¹7‡ñØ4Óæ7Ž×NéŠtéÎíÞ=õ“¼ÂˆiªŽ­ébá̆ëÄÔõHû¾ÛH¸æÚ{%¢zßèúãåø{O©t$žz,eðÍ3Ñ !® vsç:ŸÛ¼ŠN/kfÒ9yeUÿçÖ›[¨ËK^kÖ\Àtž^Û1_ëÊ•ûÀíµW0¾ø@±WOÎ}ªko,šÅs¯…L`˜°#]ªñuÒg-ÉÐyµÌg6gj5Þj>¿a¹šßÉœ·î¬Î"ñ!?)Äüü¾ý†ÊÕùL—95ãÛ‰hœæ½J¼áX^Ô3"³îäôÍwÿ˜ãAÌ\$ž éZýûuŠdñ9kžmó¹ßÚ±:¤ˆQÄQ_|œÐƒÓŒ-eyï,w~­Ð>z EöSÍÛôªªˆyÃSÁ‰øc/Æ’«ïb*fy™$Pñ%~ Mîô 0Ùˆðw]Ac‡ƒ9 ûLKëÙuàÅõ\Ì_0¸žÃϽsí¨‚ÉZšµOÒÖ/ÿýÄÃ-Â+(|sØíãhlÜ ¤¢°€øÀ®%rI3(€_ï¢ÈPú¼Ä•Ò´aF—ì°6Rž*_Èñ´þ‘ùm|dŠ/ŒuåwŒuóë/úÛQèǯÿúÑ>~ýíÐÄGð?:ÖuÇÿõóãßÿøñë¿ýøã¯¿ýò_ý> 8Òø˜ðo?ýé#z@úÓÜ Éàòó^NïØ3~úÓd$¯ÔNo|7ÊM1ÜÏ9&‰ºüéONÖl‘?åd°P yã‡/d;Ú)o|ùæl 6?ÿqÃË aøów‚ƒnçÏ¿é“ÍyTýßZe™[7àÖ~~¡Pòdö·~8ظö¯ëç?Þ G9лûù/o¨ƒ&MO{ã•9‹êhh¾±N7¥1øúÆ GìÎFfûó׎œê^o¼íL Â2ßX¨HÞ|´ÞpPsQk ƒ?åh,tªe½ã™û%vÿù+gî2ç{/+‹3Pßy_Æ@ãùÆû’$ö´·V9hfIé¸ßúréÕA üç?$ùÍyãΡB¤I¤7žFè¶ ?ï^OÃÓÞò2na¸ý…ÞYˆý½jBC„¤CoܸÊ)Y Ÿßøå›ÉÅ[þ1¡" zçŤ&'üßÙ’³Ø\Xl~'@~^€²Zï¬Ö~ÑÞxc1ß@¬o}g¹EPt¸¼wç7yæã½?Qá‚pûï\tµzã­3ÏË"N?ÿ탄DÄ¿qçÔáDóøoLÕæwüÜBW+GÞrT¥R¶“0o­˜o[hú¾qñ”òÙhžálÐLèT|c{Ü(Eí¿â-þþãÿþò§ÿÿío>þË?ü•,½ìÿ÷Ë?þÓýË/õãï~üß¿ýÂòÌÿ¥rht¦ÅŽûÊ*Iùøí}üƒNýÏÿþåÔõÝKõ\ƒ Г&®Z9¦ æFW²þ÷Ç¿þê|±pdMgµ¢,zu¤¬<ã[ù—w Oú§¿m¼Áø•åþLNG56ÜßüÃþóŸûã7ññ‡ÿùÏþ?¿}Ô?þÓǯwŸÕxªz´HþòTížêïùÿ t endstream endobj 448 0 obj << /CreationDate (D:20150225101848) /ModDate (D:20150225101848) /Title (R Graphics Output) /Producer (R 3.1.2) /Creator (R) >> endobj 449 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /ZapfDingbats >> endobj 450 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica /Encoding 452 0 R >> endobj 451 0 obj [/ICCBased 453 0 R] endobj 452 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus 96/quoteleft 144/dotlessi/grave/acute/circumflex/tilde/macron/breve/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron/space] >> endobj 453 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óû endstream endobj 440 0 obj << /D [438 0 R /XYZ 89 770.89 null] >> endobj 436 0 obj << /D [438 0 R /XYZ 133.912 188.781 null] >> endobj 437 0 obj << /Font << /F8 108 0 R >> /XObject << /Im9 430 0 R /Im10 431 0 R >> /ProcSet [ /PDF /Text ] >> endobj 459 0 obj << /Length 2543 /Filter /FlateDecode >> stream xÚµË®ÛÆuﯺ¢‹áÌY´ì"FS$ikçdÁ+QW‚%Q%¥k»_ßóä ¯HùÚ@”8¯3çýâÛÕ«ÞåËY—¹Íg«í¬LfKëâ$Ïf«ÍìCôù"³.êæ&ÚÃsäáßàuñ|ÅDWxðTð\à©áyÏY€§‘=xf Ï/2·‘ý¸ö{’%²åž-<¯ù¶£ìBè»àäßáù <]p{ O+û;™kƒ›Ü ®@Ÿáy#Ûôhmdîgsl5DÉ01fþÇêß?¼+>'³…MbSXfó§½~˜/\ ÀO2þÂc¢ã",nO<©7Õ<ì” jƒ _(ÍÕE÷X~ï©Y-.%Q‹GÏtž¬Os[ÐÖ=SFwœ+¾–>Íí?‚ã^˜À`qô„ÿÜüe^¤Èà4É¢‡+á@gpsa.-& Я‘}È1câ2ŧ¥¾È\ý&ü««Aæ©^ÅWäYϽêÂë4Þ“®ÐøÀLÒieW‘* ôˆnø±­jIG€-;ž]W§y@(Ì<̰,hUgd»Z„‚bëñÄ{g8–‘ÕÁT_zQõ ÿv­›£Š—hÜ÷»pÎ1ñˆ‘³ÑE͹^Qò½ÄŠM tî¬6¶Q†°¶u¬ñYèZL‘Åni3Âè8ŽZѺ5gbgûC¯GàÚx™O=’ÜMã<Õ3À¸dmlÊt ìãXÄÕ願䰰å2Îq¸¸L ^û'¹É®ë¹2Í]uh¹§5rx‡|%?Ð\;\5Ñ[Ö 6ëö‰ç§5–×¼/‰*<Õ5<Ûk!¼‡9rã•w´ãÚkÍ#OÞ‡ |Ñ㬧¤Òk!ki_Œi©Xñˆ8ÊØ˜L9û'Æœqoml§i/Ù=% ¬TÃ!G㪭ù… Œçà/M&8D(ÑúV]Ø|˜q¹‹þÕàn’iý„â­[ŽSK“‡v–4XWúð1kY˜4‹³¬2þ1ˆ«/ zÝ×8V˜8³¥2lÞ Æ2jl+uõuË3ûz~tM&Ñ¡Øà ôv<>ÖGb%Æ%k£-E8x™6.ì-Ã×>4ÂûIÍ(P%b¬5´¿ìCñù*Hw<¯a^)g©ýš†>óD‡¢Tvšíxo/ $ ¥]uÕÐÈ••÷N¸–= `Ä ôˆ85!,Qðý/Zü> :¯yu/»8{“¤Ä…šƒj£I ^Q¡k8hÐSθèÚ)³Ý Årœì~9"qÞ ‹ 뺧õ É—$&d$i6cb­¦eœ–L¹ÃmŒßØ4úí®ý8äš¹C¼n é¾ï*ÎË`& .E7ÝûBfp7•zº¥ãKßô‰ù1Ф4sh22GF¦™%Õ»á|hTInÅãj®ˆ HD¤ïOó,Gἡt>1í<Ü s¸åÄÊ[¨˜'®‘ßÅôí¬À.òžO<-¬ÝWM²ÌP?sfØO'UõºB€Ì–ì®Èî1'L¸Šœ*2l-΋ŽãÉÏç0X©Ó9híÊ¥xÕR87^={MÁ¯õz)ÇC%Ô4§kÈBÔÿj"OÓÊœaPy’(@]<›GÌ»Ô$åúœÛ±W½¬8»Ý†'øï¬99ñü÷Ĥ§àéÛÀQŠSãe’™\QÔ|“b"#Ï,»×äý)Ö(Že2 ¨¯DËYýŸ¨½`i§^«wœDä÷È£¶EÉô7($–”ªJ ÷ ™ª+q„â,ÙèáxHB·Låè^5ÍÑxÇ;97RoÒê ¨ÇšG5‡èÇ #µå˜ãÎç>¦yb&E`ÞF êäLËÜ ÐDóZÜ÷6tSòÄeö —(¼§Â3œÎµ¾ÖÝ÷™@Û;¾ ²x-é7nz mLowžÜõÄA¹ÉÔ¾Æ&Ãæå6‰>`Sbù‡Ÿx#X*['¥ßZx@YLa5Åäû>˵ås†…Iò¬÷îx~2ÿ"¯—úL»“‹É{OгÀ˜à±ìKD¡Ó,"¨qpË_@ß$‹dù£Åõ¨¸;)¥+AM¸3Kǵe½R¡5q’YÖ¢2[®0&}cš¤b&ta áp-Í­Èž³é>n ŸñòX{ø~îó¯Ý®¦’¾áŽçÅÔJÀ6“$ ¿Ýñ¸<ž'>ËÍ(­Ž>eû@oå÷†Íµ¶A> endobj 454 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[0 1 0] /Rect [470.06 518.525 482.016 526.933] /A << /S /GoTo /D (cite.shmulevich02) >> >> endobj 455 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[0 1 0] /Rect [228.13 468.712 240.085 477.12] /A << /S /GoTo /D (cite.shmulevich02) >> >> endobj 456 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[0 1 0] /Rect [258.186 116.566 270.142 124.974] /A << /S /GoTo /D (cite.shmulevich02) >> >> endobj 460 0 obj << /D [458 0 R /XYZ 89 770.89 null] >> endobj 38 0 obj << /D [458 0 R /XYZ 90 601.723 null] >> endobj 457 0 obj << /Font << /F67 131 0 R /F8 108 0 R /F57 109 0 R /F45 106 0 R >> /ProcSet [ /PDF /Text ] >> endobj 465 0 obj << /Length 1466 /Filter /FlateDecode >> stream xÚXYoã6~÷¯Ð£ŒÆŠHÝ‹¶Àº› )ÚŶqч¶²¬ØFl+µìdóï;%Ê’s,ÆÔp8óÍÁÑPÓÙèò:NœÌËb;³;'óDžGÎláüíþ8žD:pÆÊÝÀ¨``|1…ñÆ ÆFc£†±¾µì1ôüÈ·X¶LRãg¿\^§ß™¨Ô üŒaÌV²£O•ºKRˆ¨VHHìµ…a5 ó±NÜgüWÂӢݰãé5nXÅŒ’‰©7ž„A š…ð8Ö©[î-ʲUš[[KS2I9þ+kæ©î,^ÙgÕ(o¥–h×Òì'uȺ'%Y£Q¸’¼§¼,ŠÙ{¡9¾ ÌNð' ,-db !"rT-xáy2á]ñscÌ‹jo‰ÊÆ@Eš(.8Y"gj¡BMÆT;ô ËÕ<Ÿ àžÄƒŸ¢#˜†.(f4v®  1âijŇÒ.JNò='é¿&¸m~sÆõ²5½8„½´yòƒq?Žb7_¢g‚’èÈÙ@„9ø&veumN y{#ÖRÐ=T8ºš¨ðå¨8ô|Ðd‘SlGÿ¼(Œ¢€8¬)-™}B¸¼Ù*å|ªF¿ÃŸY›¡KêëCÚ-A¢¼X%l뵸zy”´Ñ¡ï¦À¤,voÛÄ… sáæ<¤}C<$´Oò çåWdÚš³-*‡’e-…æ@g•wO+ÎGښ+ Dç £F |ÏrMT Ü€b!%¤]ìçP^œ¥&¦R+ü™`+>ª'yCè´ÙHqw&¡ö=vóòªÉ1t §ƒJ¶-J¦œ¯t2%ÇŸì¤@1\¯í³Âj†\uîH¹„ Sy .7%¡BâkX÷p<Ðy¨jóv˜oZÅu TÁ\¢s®Ãl¨|ÙÅQ\9GkžùÚ•[ÏU¨@sÒU˜oœt›æÅG¡$yF¡V^ªSVø® €X°t˜§|è늎3Zø ™ö÷(•øÈä «Ü¼È€Ró;XŽæÕgs5 Ùo¢cmò¹É ¤ÜÁxnyW‚$±Ó ™QÁ ;±%&[Æ6ßnMu[³QZÉõn :Å3^X-ÙéƒøRœô;ÕécRÇò+ýH!GҔ݂| ŠeÍô)§ErÛÒÐã÷0ðt+º¸¬px„qk5AM¼ú¦w`¼øÝx¢ ‘ÊHØQÞˆ¢Òz¹ 5l?ÀP0†¾ªeß”7Ö¶i3Ñ2·ð¢t|…|„ñ«¸äê=¾~g^èKÜo­`{k–b€æâÄ•H½γ^¸ÎJÞèµSÖ?­ÝS(¿ã­@é7Rï¤Å3ýÄüa½Pšî šº”Ëœî^úáq›mŠ¿ôc[^ÙµÏ0‘; vRØûÞ1)Žô¹!o{ÛºÕUñTù:Äk-öCæÞkZo”¸®ù÷`aÛÑE”®£sº2p@kAÿ£…n¿™ôÍÅ·XÙ»B©¶¶|#ýsÎ]ö¢´­Ý’’æî†&/t~¼fà˜k?ˆ¥:9^ä¶P–í¢áÏå*.n’e_5š Íg˜c‡\Í' 6QûpuStú™—¦ÒéÊÜÜÿ‡ˆO endstream endobj 464 0 obj << /Type /Page /Contents 465 0 R /Resources 463 0 R /MediaBox [0 0 595.276 841.89] /Parent 468 0 R /Annots [ 461 0 R ] >> endobj 462 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./pbntransitions.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 469 0 R /BBox [0 0 504 504] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 470 0 R/F7 471 0 R>> /ExtGState << >>/ColorSpace << /sRGB 472 0 R >>>> /Length 4659 /Filter /FlateDecode >> stream xœ¥ZË®eÉQ߯8C˜gä;§¶ÉH¦Zb€˜”Õ×ö€ßg="on¦º°äêZuöÎGdÄŠ‘;¿}Äãÿzûÿÿˆþì%ÿìk<ëÇþôyüñíWþçøõã7ŸÞÊsÎöxýóÓoþ ÿºÆã¿ßþõßåñïoñø-þÿ‡·(ÏRÿøÖÆz–úèó'Þ_›Ãïò< ø<ÛψGÇ?w·Ï³4àà°À§>—ñ6žÏÊç± wγoáv€{©ÏÑŒ§ðà_ˆc/ÍñÖ&ÆFÛú2_¼ßµž¡ñ`ØQ´ÞeŒù»ö³×sq?ë¹=Ö¿´?_Ë3¦NdVáÐþ`/¯xàö ÿ^ù—¾°ßHÜ8ìs^0Î#æËó8†Ý^Æ›Óçqç›#÷—ë™Ýçq׋cÝóe?ö™/ûåbÛcŸÇµp™/öûž‡í 7Ú¯çÜ_Ï ¸î—ó$ž/çÍçë‹?p¼òâ/w¾ëOXO}õ7¬¿žÄþæ«¿Îö¬¯þ {é<®¿ãŸ›ðOâá/ñ'¼¡‹"?¼?~öÄãSäïÿü•€üóïÿ¨)‡Cê …\Ïñ„ç.q¯ûÎ3ÿÝÒuº]¡÷Ãûãoü_üíã‡?¼ýݘ‡žÑáŽô˜ô†éd8öæŽÐÇs/¢A;õÅEþø†Í5òƒÃ‡KÇéçÜœaÀ•ùcÑ‘ 0:Ðä˜KïmZœä£'5æîŒ0>)´8ÜÞ¸ÊÇ '8/Îí4ކµ(ÏÐþ6£h=ƒG˜h“<»"è8âž…{ˆâkŽ¿(!ïªͰOš­®„sÓ¦§¿Àí¥çÃ-C/‡jÃFΉZçŽî*Z³•½ÂV¹÷»ú9ï¬ÆíÝu=ù¤,R÷sćµêòVlÉšf+×ɳ½'´úÇéÅÇÉéŒ}ªuÙÊ>ñ;ƒ½³ëŒí)XÙ^„=”/†ýÍóá}°Ä0Åk“<ùãO¼öçèè1‰7ú"¼þúøZBfuÙ¨+¡+È?Ö']>ûÐi› • "©o2%ûßŒŽæ ?‰XÁÛ5wÀQ ­Á”@;zd FÛµýÿˆužzã~áÁ_‰ôØÏÀÏàþÍXÂf `°u+í9[âÙ‡#¢!i!;´²IlÀNj-DdÄ¡÷ã&$ÉIwm™TjgÒh<{??èÖ6SR¡ÛÁ¡i?¿y Ñzüüá´ÑíI ÎGI"&m‘8w Ž´øû¡§7:rƒ?ˆ;18€)Z´ëAnó~²ã1÷ćaáõh¡ q©SlMØà%nÉCžŽfn”$ÁÄ@ÜÊÌýÎ]êŽZCŒÛH½ c˜Áë#qÁͱlÛ†ÂDÃÚþ À Þ¤âp’ï9߀C/%í®÷G“š÷¼€ÏTRvÒÇ‹u*)ÇLÜŒç¸x'eäH`ðùwa„»°=n0ĉ—=lÑ#ãØ PÀq†= Ñ5Ž’·9uà?– 8Q¸j´+kañØÀÕ,Õ@)8ª€Å,ƒa‘C¼r~ê¾nVÈj_™BÕŸ2®!ùC†E¿¢Þäï™ô+¨>ºÔeQã‰F© mÑgŒëq[G/¬çOáÑBmÇUXÓ²é(BÒò¡Üøûöüt5„rP†-1P|ƒêJ¼WÉ"¦^Y ÊÊXsÔb„ø\ÕA\¶­2£ÃP´?"Ê2†àükšÿúõ"LE׫|ÿ8©'J<#ûPO"-+;È5‰«s91U@OLNf…DL‹—“¥20\7 *lq`®§ô;þdhQ»ž’s Ø‘Û9õŽ6[å/ᢟƒvÓ‹n½Äj†¨jW86:h4ÄõÌ„pÅñ±ÎÍgŽôP*½ûm@B@3ƒ÷„ƒRÀy^ˆ43ï¯.Î*KÊÔŸÀ‘´¤«$ðß ál¹cŽ=’¢§šPÔÉ-½ÖEø~¸/+žr¡œ Áo{0O©Âó2»ªsuÚ"+ØãæŽ&µ7FýÙ¾ 1?|y¬ sx\Ç>…ËãYLS ùy#Y¬ëX$”™ä°q䘱2â„Wn¿!’Á,<Ò›1=ì ™Î´æ•mæ_°ÉŽ”øwl|w{‡²7|gfl©3Ì’LŒ19]ûBÔTÜÖB“¯L©¤e€…Üè ÎK¹. R¤Ï/Ê´TÅ„— º¤®ëmg¥ÊqVìš-”~cúI}¿€`7+SwÅâîGÍê5+“ŸãOoLÁ˜ªnEõ»0ó vªiiâ<§zŒ)˜y uE £æ½TBƒ€Ýêêæõ8*ƒê*f™8êÌÕ9œ'ãHË2ïÉSIðð‰J‡­ÂªejϪ’ b7çåJ%‰ñ[jÓÊÚy¦eÅ^á®pæ%±b…„\ÎKÊ{|J´FÖ”Lx ¯J?6ÞüKE:óø,aŸ[Õ.­%•+.j…Jæß·”¶©®ÃYyÊóa£«)OMÿ¾ØÇ¢åouJgZÜUÉÒÎ* ‹:%¹beÞ£à``Ö(ÂS¬Î¬A{ó`Éâ\Æã*Ou‚êQiXvÑ~(¶”±íqTRI[{t«é¡puyØÎ)jÁPÉ;öŠ:½Tú>0# fÖ ^[¸\̈¨ÍJœ+: †Ž=V˜ØØp·Çºqz¤Šâj”$$öŽQÆ1fÙÿÐ @‚¨vÉj®2Á5a[Á¨Úe˜*«ßá¼¹®ÇaÑœ$TV^§ë&–…j¥ÐBö˜Þ½Ÿ¬†éQ¥ û»²Ù<¬Œ€Õé©`îðûa“ȧE¥¬*u„±÷;UÖëDéQš¯™Óêâ˜ìV0ÂZ®ídJ¬.¬ž =¨ºô~R&u„•wQ™Nle^Ôî v{ŒæTÖ$Ïi|=(uIï_Á®N'kõ#\Ž0–âDÉAÀ®ÖÀ1Å¿÷ëÃg §wŠdÖãeG¬5Žw¬þ±X¸Â#—k[„œÊZ#«I ]Ø'Ä„4T› Ǹ$‡=+O¬+KðDÛRír.§ c¯Ij ›#à1ãg¿‚F­}âr–k›Sœ>«±,žÌÚH'(áîhô`:‚²Ru‰XG?ü}9+2ÂàÁuÏôxD`áp„’5©Jó+§0GõlÒn…&±#œdY„å¡ÌYäôÕ+skE⚘çñ'ù˜b@ÕûpÌ‹íÝ>ìN!ü¶|z¦‡äû>!¥b¢ḛ^gÌDÆÔp?Å'´tÉñ%æ–ëwÆd͘ ³ä¸1-íÞœµé!‰}bà„æ„‘œÑã…3\FªS.n¯XeÏ '©%/β‡Lé rZÏ,›¸Þ,<«9q\1‡Î}=æ¼pj$gf¿Ó†9ù¤ÇLg«”£ö¬8½%狲oÍ2peŽˆô qÊòþˆ‹s° æ¨ôØŸãOêp­~ûð\Âîè„:&âyLtÇðÍ‹QÍ-%k?ŸºK¬ЉyY“:‡®kÚÒ ’ØÉºŒ™•s ÎÅÖ«jd`}÷bO¿êþ‚tƒû ÒmÌä ^s¼)2$5 c•‰ýz ç¯'uÒÐ´ä˜ÆîwÔ¸YJ…=åÜŒä,·ƒ?=ñèÂŽ(,Œ—0S\ÜÔa3÷ã6?u˜Çk`Ôaóê<õ zFLSz"µÄå4VÛ䜕Y]ý€ì곑ÁŽ!u—u©Z•13gP0ò÷™7:\#v¤*ᨣF¤‡1y„:Œ¾K:j=†o8ÌyŒ`Ö{5=˜YµµÔÑp Ø/Ú½šÂ‡;¤¥$V«Š†ú#¼9Ú_Á® ªc.vVá3+óß1+Ž¢$UO·[W°9HeYï y¡zÜ?Ð ¦uB䉄ÛѬ}TÿÑT<È:”¦¢Î(;c¼[i–‘1Ü‹z˜4¬pSÏùœ ]©MŸ·ÙoY—êiP¿1ã©C"x_6 ] !½ßó)Ïí¬(¸ ªÚ³Ý[@8*£›½ÅÔ·²óC†÷®nŽp>µ€Ìì è¾®p”™üÆ;¹ú˜Ù \:ã™Ùyª5Îv#÷9ÜÛh®m‡4Ú¸žÅ詃»¥÷ìñëN³×¼QXôºž'×ôñƒÍ-„cåýV$ÒÝWsŸö¹ƒwþágò-]õ}6à¨Ñ}E[ïEׇ7³ç ÷gyã!ZSŸG«À†‹ŸoÆÕŸeT+¨–WÜ3..Ü6±Øç·>”:Ùó}¹gd‡ÛºŒì€ŸÛ¡–aPÄíhS…ïš‚ ]N»?Šç™wdGžã7c?ߤvä"v@•¿³_ûYÿ¢¤ûÞà¯j®Œ¶o÷iˆ:”ÚnOŒ´{¶²†Ž\MïÀuÔ^·'ïxv#Ù˜Œ¯õæ[fPÅïg5°ŠîÒ{Í~ÖTÊŸ¦°r]NE¸u£zn¯l¶æ˜zeëKël©]À‡w¡¡|‹»Ô»§ó®„ü £~Ö]ÕYèâÝw‰ïý'Õ ;çæ%n{»:ˆª.JÖ¬Yñ•›Û§,‰÷}_º?ŒÈÛÞ·ÒR” ;ç£/EV|ŸUa ׸Žb6¯3ß(ª¤‡\3í[sú3VÑ®ÁòÆ·\½è5>jXéÙ¥ù¬Vʶ^Ýö¥æÏŒ”M"WXIH´ ,ÿ.="ÅVò޵ä`ùÒhVÈåê›ÛM^?ž,ÓUz*dŽ—Šy߾ö¢uÕÇËíªì#Žþ¬ 9³ª8Ê_®Âö¼­éªåæ›-Þ~©*ÂÏ7ßÀ¨j(ÂëjÀîªbÞñŽŸ÷÷˜?ˆë­:”MˆUµa…È>¼edNf€P¥ª²Þ7ç‡Uèκg«EÍS:7g§ 5ñNU{gìóK'ƒ¡™pU=þHUëR|¥ E¨T½¥ ¥*†=Ÿ˜·(­[…ɦ¾‡Wu”¦ «Œ–ï³ÖâÚ\t÷Ë®˜iySM‹P“ð‚¿˜cBßç ®øßoŒ©oyîWú¶Ã/Øï ôÔ•|æÌÖò»äã¯SüPVn¾sÇŸáÞ8ó\Ï;¾ïýšƒß7ð£@Îáã{lý~Ñqÿú·_EaÇ®DýËãPu?·²†öÍ# uI¨ŠêW>Jù¿^oC^ ÁIüò×kf'–-_ûúí[ÞW—©¾Ç‚,]ÔI×Ç÷œ"Ghæ¸þýk`or+Ç~Ï).}ú1jÅ—0¯ŒÇëŸtïòâîþ“Ÿ>k®ð\p‰?=db<á¿P”¥ˆCåÌÉ~ä,øù‡?},õ¯¼âuÝæw¼žh6þû/]_Àé½ý‹×%?‘b ó‹ß–*í*þûwl™¬¹ã<¾Çrê–5I“¿|™ßÍs€/ᾺÆH‡ùëT°Š?*?<`N—¿™G|Å&Mås-ñí$d¤RÒ$ñÍ3ó#u¶-]€êåo_vߺ8ížhùö‰Ãc}ï—[.ß¼e~AÁ”Ú¥Y½êo~¹ë~Ì Ýmk}¼ú»·ÿ.cŸ¡ endstream endobj 469 0 obj << /CreationDate (D:20150225101848) /ModDate (D:20150225101848) /Title (R Graphics Output) /Producer (R 3.1.2) /Creator (R) >> endobj 470 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /ZapfDingbats >> endobj 471 0 obj << /Type /Font /Subtype /Type1 /Name /F7 /BaseFont /Times-Roman /Encoding 473 0 R >> endobj 472 0 obj [/ICCBased 474 0 R] endobj 473 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus 96/quoteleft 144/dotlessi/grave/acute/circumflex/tilde/macron/breve/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron/space] >> endobj 474 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óû endstream endobj 461 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [235.516 701.827 242.49 712.666] /A << /S /GoTo /D (figure.8) >> >> endobj 466 0 obj << /D [464 0 R /XYZ 89 770.89 null] >> endobj 467 0 obj << /D [464 0 R /XYZ 132.176 383.572 null] >> endobj 463 0 obj << /Font << /F67 131 0 R /F8 108 0 R /F57 109 0 R >> /XObject << /Im11 462 0 R >> /ProcSet [ /PDF /Text ] >> endobj 477 0 obj << /Length 2587 /Filter /FlateDecode >> stream xÚÝYKãÆ¾ï¯‚$dE³ù¦‘ØMvà Œ °•“íEQ3´EQ¥O~½ëÙݤ83kØ#‰d³ºººº_ßoÞ|qW,ʠ̢l±Ù/Êp‘Gqféb³[|·Ü<¬Ì²Y­ã$Zîá¶¿žáÿ¿4Ëï«‹£jáöÈáûs#óˆÁŸv<láï0f2¸×žƒ°iªü?­W3"Ð=þp©ªÆ»þÌb ã]C"F9ÑàÈ÷¡IpúމN8¯ù$/û+®Â=­Šd¬ÖIn–/L‹¢U"jµúaó¯E¸X”©hð„rô[Ýd{¶—UTÇuT”Ë~×2\†¼HßâCA\qÐS>§A´Œ4˜¸]WµÜ‘øB&*Å[ÜÿÏ–è BÐNPºý˜ïÅ[\µÏÚPQ¹ÜÈ9ÓV˜üÌO¹LóNÈJ±…K¶l$ãýœêèà@µqìL)À­t'Ïb€%{:Â_û ‡ßùô˜fÞ. ©.eRðâxÀ‰É–í€×œU3ôüp"ÙûDñl71…JddGƒ®ˆ´µpU¥"ïÍázP=éÉá{Ël‚GêF½°C >ìbt‡‡W~ &}uïÜ!ÊiXBß¹FlH‰Êë^d9оgM~^;qÝGfjhUI¸ü($Ç€HÑAøöxÞÄöž_“y#ÇîtžoñM²|D% “þ( žø¹&+/FœY¼‹]zk`Ú#NÐxÕ Ýß7G2™Ú¸«eóvN…ÕQ$˜-ɃŒŽ(>YÇ^䎣±gŒ¤ƒ©#ã³zŸòÝËs&=‹j÷ÿë±Û¿äL$Fu_µ¸Ú—¸³/î²ÜK0°ÏÈ5xŸ_­Óˆ½—½€ÿŠ‹òm‡Üe•ŸH`³ÄÈü­aÈ:BgGììû0 )*ð†ÔjjR _‘ÌÄ_V²$fWYð£ú‰nfaÜÒßàgà‡DðK^]å,\/²ÚY¸md•­'/r¿ƒß;ø}-*ùðê ö,…ûEf^¼}4žüš¯tž(T=¹!Ck»ð™\|Á²g,€l&ÚLD¥ØÌ¼´ÄE¥ªähäyǯyÝzèY{Nƒ3„ÃgÚÙþ„A’˜ñIüÃ3½2Óoèdéöƒ˜Ê?úÄn‡ÞñÐI&åŽb'ÆhøÎˆ†þ+&…”_Ù£»Yæ=ýG³ªÌRƒl=3¹Ð4Üûznó°n–)^M˜ä¸˜IscÇCw¥q|ÎLiÇ.6IìÓ§y†Ïd6IºàÕ"µ›2ÈSÉè1¦úHßôÛ+™4AÑctžÐŽptA>g¼1(&†qópIÁ­¥üÔS¼­!'f,õî{ĤÕsL£9‚Îð¶"(Ô Å‰Š £Ié0¶WÆÀcJ]æ"|Qu„„,ì•Å(Á£h½úxé·(R‹ü‘аVeA€=sÇ"à6ãá”o·eù²Yah§¡¡aVX¬šÎýȵ)óŸžÜïÕûLËškìîxx«H[Ø5Z3h2Ô%/nYÖ,ú¸Æ=k'ʦç[Ü+¯)ŽnéNƒgGQ‰N•*¡nTƒ Á\ÈÞàë'‰±m­ðü@eÈ[IµÂ[©aê–éèíH6…ƒÌ<)‚nIWÊp<.nFËùÔ¤¨’¿vpÁ*Á #"²ÕœÔýPá^\E%@­e7þñ“,ìdè:d*"›Ý vÏýªõ,’ _ŸåÆãά¦Ë¾ä ¿®TùHTädÕ†/[ÁÃqž2 íõÓzêÿ#hFѽõLÈb§2˜RkÒ?{BTclçKÄË?ãeH¡%9Ï8èKHœ†ÀäÆ|8ÙÓ=ûhÅ:™Tš°^ÓQ!‹ÏDC|eK¦kíw d¢5KŠ{‘‘µ?ÓH1b &S¬ýLðFœAXd &RÏ{Iy½ü¿-F»II„qª[õœuÝq-@©1.ŠÀD“܈Áízä"Ñ€-^÷`+¬ïµì O1Înwð,' (&Ë{³s•Æ ¾óÂŒ%ÖM^Dâ[}¦EP”V+'8 ‡a®ê…NM ÷Êh†|7ê7aDNÿÓ ;°Ô¾Âck+“^yó°(½LYpõòã˜Iua‚Öñ¯p‡'DÔT­¶n¨Õ¾Ï^‘Ç*3‰?+›ÆYÆÝÖÑÇÓ$áFU–j1zvÝž„á#ã¦@#¤´ixEÑ­õÀ-å\hÚÏA6sAm¸¿”1éLÄÙýI•'3U"«9Jhºåé:[ŽÝ3)•c4zbßIí%©&5\ñtòA’Y°sÑÖ„aâ<+ΑŸ}ƒyˆL;h ÛÉq.‰âZÔróù:ñZÁƒPg(Å!]‡Vq@·ÓöXÕ$åÑç4í`Fš±ý®ƒòœû+˜¶ÉúÀéwˆU4ly ŠÍ3í¯Ô“âpçYÕ¯+êoÊÎtÄù|ÓpøýÂÓoh>d^ÑžIDëÚÁJÛÒh$‹âN†'üþù¶®à·7¾õ8<§-ðU®{¯2wàsløf«HÎÊZøzЃ³wçD«D05uárŒópÀöظ9éaƒÍ;”°ÁH;ܵõ˜5¹gÆÉÁµ×&ÂÔ™@†Ã£6¡à[Ú&íÿ4Ýǯª®óÆH¾³m¤Ê¦X 'qÌÆõ-‹fvRïÄåKÒdpd ì9ßøç’h#1<†˜Ø Ê þ¼•N¿-¥|¸ñ8òâcÝÛ >Hÿ›,Ì×A’Ý QÍ™||J¹}â &Ÿ› jôàôiYJ3žC‰C%(8µ3®ýÎå 0~R»?[ÌÄ"©Ñ\Ëݳ_éñØÄÌùMÒÁÆk2KÆÁŽ<÷½¤6“‹VSµ sâU•ôðIÃ-ŸãNI¸âŸ c+æç¶¥Q®?KùRO ¾Ú¤üN"ÛÌ)¤”èBgþj´{‡q‚O¼±Un0JÓqÌCíÀWõ#¼W è"ã8UNãpòiüY²ˆÉòLÎG¦ h ªy™ÁõË!ó?¯°(pÉmûÔ…¼4ó"œv˜F/Ól¾4zá³I”A)}ÓðÂQ0e ¿æ¼7[õNzGh ®ƒ¢µÝe/$“¼âñǺŸwîsÌŒcvy!Èö±w„YÂÞÜÒ§›£ p•éfmN> endobj 478 0 obj << /D [476 0 R /XYZ 89 770.89 null] >> endobj 42 0 obj << /D [476 0 R /XYZ 90 531.02 null] >> endobj 475 0 obj << /Font << /F8 108 0 R /F67 131 0 R /F57 109 0 R /F45 106 0 R >> /ProcSet [ /PDF /Text ] >> endobj 481 0 obj << /Length 2243 /Filter /FlateDecode >> stream xÚíYK“«ÔžŸ_ÑuêHÙA6–ÞªÛ–§ÔÁÜÜ‘: ’`HArÚö×»žì !±û¨åÄAص×^o=ò°z÷ù‡$½Ëü, “»Õö. îÒ0òƒ$¾[mî~ðþ=›Çaäµ3ãý >á“ÃçŸ3|ŠÙO«ï?ÿ»$‚»9PÈ øVøüÄ„xôeÈðæåÕ½UÇuxP‹ÝlE‘w‚Ç=N¯ù,L±péÈf¾“ñ—Ô¸­„/ÜTÊ Ê®~Áe¡×lù—¨ö¹Í/ö65SÞÊíëµNòLH3MË«vÈr-¿~—õ7t{¸5^ÔÀEK¾éJïc"’mSïæB›.UñÔãl&^±'-à­‰+’/@†òz°˜_г8ñrÕ[N”7ºP¤aBoÝTGœoåÊõŽ×ôÒ5´™E¤hÚŽçN{¦Î [{+R ¬®÷ýÙ 0\ÒTÎ!jU$"ãg±X"qãj.C¢íNý…:Éë£Sœ(ED –#‹¥J$<•ìZ7G9¢èTa#7A;ÞÌrä%ôó%lšóã‘nc¼Áiðy„ÏJžÑŸ~–u½^;9!Ïmª[Ù] ¥y>¨ÀÌ€Pò×bZŸèS0-K¬ÁóvàZŒ-0L@¿äŸ¥è€¶§ý\'›¬;À »í¼iú°mŽÖꈸz¹5,zQÃD‰mþÅÛa ò‘WrŸ+xB›'ÑÂûî4¥î5áXºpp,ArÈÙñ ót4ñ/8]åì4Ð#N^ïôN@‡ÐÄÙ_Èv+<^‡ôö„°zYD³nä@"ôc`bµœ\ ¹“Šž Îìæ'…„Ê^/¥‘½D2 6ç–€n'Œx‘vAaí‰4¨ã'ò$Ž‘µpð¶/4tÓñô¼#Öƒ¥V5js ¨V_—´Å.†10ÆÀp¹ô:ÃF¸Æ‘õü†5ˆhòø;6j…×\§ß‘oœ¼´)a£ŽVQò0ÁX×?îi8ÅŽG”ŸQÞMûÄã=‘_lÙ¾°bµ/-£Çª‡B†ɪ…lì²zÊCárX&ñ“,„´òVú¯Ìáø³ƒîO6ä(qm™ø‹À蔑í;Ù’ˆ óþ_+f?Q¢6Áqù‹ì5 bÜœ¾„ 2? —z.¸Kè ž£¬í0á“lg6MïÁ²¶Fp@“8ö3­d†ÿP•0ø¡1C§ƒÔÄ”}…Lm‚(ˆ¶»;SôÜ2 ˆÀj›3çoI~ÆÉqô:´±)W.ìôéh a<`ƒÉ¯zøVXü•éOd;D÷˜™5ê G™¿LTߥ*•‚ÿÆÍ!E ÅiX&àšð>ÒÔ¼ É*Gá³Í‡%;Ú‘î-’[s¾ § /”5çÒìh‹Èû0[.ú ùø…—P¦Ï GÉìœE2•ÑÞòC†(WÖoÉ~_;(ÓMÒ$½É€fº}1çÀH) Õ!ï÷¤Ê¹Î^voœSuœ¿¾¿ŠN£2£ÏeqšN“’½šåµÒÔHúhR§’K‡~,¡ ×r—JÜô%Zj xƬGïàr‘rÕ\ïZþ¥ÎýéUÓ/ã`mÇgo/Øg㎖Þà /éTÒ§R”´ãÛß, ¹®Í+…HðÞK\Y¤~bú VI˜ùE Vk™aÅq¡¶8ôÃ`áÄôè’ðÙz±º7Á`×ð‹d’,V©(p.F(†Ô‘¹­ÁÐu@˜4%œyÍ3ðx{ß‘µ“dòÍô\M]™ãɽ î_](ÿ+¬t2~–·Î^ +®—sHgÊÜ\¡OAú²æÝœ ¸ u#9ŸØ!?ÎâØvt'CÑ…5zȾ‘¾]¿‚Ùë—L˦Ѥ"x±²¸’[\q“ê¸a(ȇ»¼ÀêZo\ͧôhe3ºS ï\tƒ åi¡±yÌVÚÁY;U*zVáÈGžóU»¹Š 7²AŠ4jµè†“ÚüËly®„ŠNÎxÒ¦ŸÔI3G-³$™Tß”Œö|dhÓ´±oDŽº§xeÍVAmšl¬»,ióîb)Õ©’YiÅ6HW5Ïr4ca5[f*djèÚ¸Å;ÂúÊOâ«“Í_'gƒ ûm7QÂ÷ƒ4_ý¢í­ºµùéÍbYjzÒÏÆj®t+ jR`7¹qåjd_ü,8»½S…üòoË0oSwjONxªKûªÀòmѺÂ¥Zaâ'qŸj½¡‚[¾±­‚u®¤¶”í|&Æhbp¨ ¾ÄÜü«§ÉÑ5‘M$%JÌ ^ÀðµŠ81 Ü-B{œ?'œ²ÁO§¥ÝÎ9Ù*˜R¸$ñ—ÿ`#òLÀ¿ÃÿFp„Úf™ý» ÇnDYZje@a#`ÄÒn”Bßå‚wAJ²³ÐŽ–¬fš…@W€ÖFsW‰S}²«µDQâYƒ $œ~íÕÉøDúŒGe½SÄ(dòhSk‚/¹¶ÖÕñ‡k°â™×wùÉi¨Ç©¢ÐóžCB=OT8°ÛsHR+ l ^Œ¶­©/*/ÏÜßå—kx_jIl*¡˜”)Wœ«l’€C'þr{»±ÿÑ*x°â. )_Œ3M :uÇG‡$ÝÑùŸ÷ÀìÀÌöÚ“`lÐC§®õ*1mŒA\ÿÞµHM†Ù!¼[æE;õ²Áé·ôÿnÝO5ïKÛ±s#«[²æšŽ.àbTt²lähÛ—ÑŸÚ¯©+ü¶7H¢¥5Þ£JÊiG5¶•zÅD-ØÛ±öbóDÓâ2@~ìÇËÌ­»?½ì¹ìTG~¦J\J`“-ý8KH3?2ž‹èÿ»w߬Þý½ºÌ„ endstream endobj 480 0 obj << /Type /Page /Contents 481 0 R /Resources 479 0 R /MediaBox [0 0 595.276 841.89] /Parent 468 0 R >> endobj 482 0 obj << /D [480 0 R /XYZ 89 770.89 null] >> endobj 479 0 obj << /Font << /F67 131 0 R /F57 109 0 R /F8 108 0 R >> /ProcSet [ /PDF /Text ] >> endobj 485 0 obj << /Length 1854 /Filter /FlateDecode >> stream xÚÍÛŽÚFô=_AI¼ o઩”HšªÚV)}J¢ÊXÜ€MmS6Šòï™sÆ>6_ÈFÚ‡Y†™3ç~›a_-Ÿ<½ù3ß³¼Ñr;òÍÑܲg¦çŽ–ëÑ;ãåÍÔ±Mc}ÃŒMÎÿÿ³ßð?kØÙó©XËrœÄ|܉=f$[þiùF Ç›©57ÄÙTŸÄ„U Ž&1 {>ȱ}ØHô|)¼’.Éøt—ˆ½s ›«â°`¶f7Ó¹ío$ß)æ‘®"ê›·(QfL8 ëÌ4ÍR&„žÞ|Xþ:2GSÆf¾‹ú+] ךkÚF˜ÿ&ƒ¡+×täÁÖ¾†bº—BÀÁO|‚ äB,øËo¬…qL&‚“°¤ŠÅT³´—Âu<#ˆÁŒD’EðDj.TN)i#`Ã*³µSÒFwÊd8 Ǻ Ã;$ÄÉ -áqÖò׃P̤XjOˆ%&¡´ë H ×° ŒÈiŽ sËòø#TYÆ=gá8Ær•ŒÓ¹t?é-2<‚éƒu2 )„?¡wB$1åœ+ìùkwNb³¦¾#ò–J ¢0c©´ÇÇ?"\‚{…l|¼7]>¦91{¶`§/éž#D´kà‘ç×vèIHF±(Ö^ð1ƽ‡b¹Îêø’)ߟ±ÅBmºÆ/æâÏæ?áR?"hLNbÞÂΖ 9Šù<"B¡ÒL|ûÊÅLrÊ‹8ŸZ¶ÇE]Ô\:9`LÛþBâ¶}_fÏHª—ÙŒ&é­JRS:0tĆL©µœ$Oˆ¯B®à€_bÈÖµœÙ‹¹Ð’ߣ”Z 0ÝLAÅ2•PÛ àÒ 4’»H“ž6MÚ¶ÕœÜ2ØÃà²m»äXÌ[8¶!s©Ó¬b.÷£Jæj$þÖWbéÌeÅØ'ZÑñ$¹LºZ*]“Ý |Ù›æ3n2ÙÞÌáÞ$µñO–m<…?HœoIP`;€wV¨Iåè1‰ò @s²”ÃRŽEð©søL¨~TæógŽç4ñ+8øÓž‘Z ˜QõÉž¤p Š<+ùÜ´-ýao—C %²¸M²(ó ]>iíR¨šªïÉ‚Š|MvÑʧڶa/•†+ŠÁ+ä4Á"uK4© E«#ìñpPZã€_8Äá<.Õ®:·}¹Tô>UétÓªèkRt‚RÜ*MÖ@°§ØwKC!*50Èò½E¯ó‚t”i¹Æ<ã½Î)pR3@‰N!q‰ØÆ¼åã/>~î«ÿ4J`ôƧf1†¤•Ž•Æ©#|õ*¬—$2ÂsŠÊØÁV™ö¸”Ö ÚDH–V–yKê…êXóFïÉÃǾšQ„úÀO“ŒI)¥ªaˆ%Ò;Â3@ô¹Av¾ÅÜ9SN¢×Á–‹äNÐ2·-+á`“9U¶»Ý”&èº]ÚNß¶Èá‘ÝFIuü]vÎnRÖŒMqå°5A·Âã9¢Võäˆûu_q‡köå·Ì›ÃLû­rè³î˜ ‹ìT0Îd9'óôkû"R¿¦/jŒ`õÄUû`=ɯn7õ±ÝG%oŠŒSZysM¾l˜ñ}Ïkx&½õMÔ}P²ÖuæüºúY“èçž]^eßû u(ŠZðס©ëÃPm©|}°Z­ õŒéÊã|áúÚRF³Ê@óNú¾ÕZÚ%ó_H›˜…o`_†ï‰`w$[‘Æ¢êLHCâx!󩜚ÝlÞJçÐ3§Ê)4}z<—<éåK+[2Õ¤$=)è`úLÔj®¶/};ønPU…V•¿=y !¼e$5…•F³ëI"j¯!ISÍî2UJü ÿ!Ëo£Õ0ˆ „ ¾¶W¶3…O—™W¯w'b 2ñÔ.š;æ=õ£>Wäû–Ïv‰ºò!²Ë:zÇX‘Ÿjï'Ûn•Yäñ:Á w½§Õ;Óå/Müç'-t?£&(pHH¥¤Ø†}_LY:i~õÑFUØïÃTB:Ö+[Òa…‘ïŠîƒÿòñ7éðÒ$=н{¶ ޵úÙ¥ÝÕkl¨ããO¼­~(H8Þ|Kµ8ö¾]tZ´W1B}G.‡3â…z$š®TÛá¤Ä¿óvm~‰ÉP”qï'‹}¤†§À÷ÌvðÔ¸Sy—ZkuOM7ÚËêkõ·¦(Ór«QõmcV}üU½É韉ÆÕühÛ¯ð´Úƒ{qA¬G€zÑî¸Y>Pòl¿^}n¹÷]öó“v„Ÿc)ueëºÒU(*ò<š¦j© )TGòî;îqá¼ø·Ëôf.óG¼dˆÿTÁ?àô8䓟—Oþg•Ök endstream endobj 484 0 obj << /Type /Page /Contents 485 0 R /Resources 483 0 R /MediaBox [0 0 595.276 841.89] /Parent 468 0 R >> endobj 486 0 obj << /D [484 0 R /XYZ 89 770.89 null] >> endobj 483 0 obj << /Font << /F8 108 0 R /F57 109 0 R /F67 131 0 R >> /ProcSet [ /PDF /Text ] >> endobj 492 0 obj << /Length 2774 /Filter /FlateDecode >> stream xÚÕZYãÆ~ß_1@BV2ï#ˆx à<, g€<8~hQ”†X‰TDÉëAþ|êìnÒjH4löQ¬ª®ãëêùðòî›çâ©\—Y”=½ìžÊà)âu¥O/Û§Ÿ/¯ËpQ/Wq/ÎØìáÏõ.ðëy Ûá3ZôWè«–Q¾xåÓò³þNËU”-j¤Ò‘T»Œ C3ª×¶ü†ô;˜ž/ºO®§ù„ jî¸ c òðÇåÏ/ýæ9Í=1‚§HQ†,ÄwÂ.þðó†Øä÷Nú@”4ЉbËMÁ®½<[Y}à)-)‡ }öˆ}‚±…Œ„áºLÓG9!º¡cFø2üè…#é3$µÔ:ã!Ò•¼¶D[T(ÓT½SÀnÀNÔo¡ìÿÒ@h@3œ“ÚÝ-Sy CÑ6¶7ï‚0‘B3„_ô83º é:ŠÄ$Ä&~‚±µ÷û™æ­¼‰_µcÑÿÚŽåÿç;<²]C7ÿˆ¡IT½òç Oh¹’ÙgùÕ"r%í~²Y~uÛ÷@|0¿)ð û›Ù“ŽI©*ôvh8'aî!©þ{! ×S3#‹Àßo'9rhdüJÎÅLùû²HPÎ$H}Í2'AjU`.<æ©„¦’­š-ü}ƒßŠÌØ\Ü3`¸"VÏ<$ÈÔX^9ñ™¼áP¼8vgGíÜá>^ÙY,?7O”ió;o4tm?s°}W‰4(8ÍE€y™0õ~Æ¥Iñ9CÒ‘Q§îßKþ€Ð°,”èl¸ [‡ Ša‚= Ä?p²áÇ«U§8:vÒz §B"Á0%öé]‡ú¶ŠF¬Ïôk6«$}bõDjXåºÈbVVŒQ)]‚£dñ=Ê‚Ä! ²C»!ö!JÇyJÚ`¼®TÒŠ‡NçÎ ƒÌŽ&,<7 Î:àŸ=ŽWrBËΣ÷¢Ìä»ý¼kë8Ç8/à@&+ oku[ž‚¾™†üÝÊű6½j¶–>AxB:Ì¡g»F‚ž5´}-Ó.nÒÈJ9R.Oìe_+aZÕ C'âw´ïV³@™4 ‰aƒL®>ã7º33<ã (/8é3šZ§AÝ/êèvIbÑ–Œª²ïZž NààFFÉáhî/—ôx6”»£¦IZw“…õr•gÅâãE¢„ýòWC0ä n ^šÀ´®•à³ǯ›ž ý±v,Kœ|8bð!!̬CS¥íç‹ £ý†Ö~‡2õÔ›Xõ‡;¥•›>SYM>H=åû[и£»¨ˆÅ}$Û¡EÇ™ÓeˆŠ·—érC}ëW‡ÃEiÆG™«,äÓûp·±ûì €zL GQß-R“u·j•aäŽö‘ýoŒîrq÷æ8`d‚avÏ œÃÈ}­³ãA;¹"Êœ=ã-ÓßsãŸQŒ=?7~µ}€ó— å¶Ã»U9»S½þêH 8õ½ C=aüké9‚áÖÀÙÌÕÅÏ6R@ÿJ_¡\µÁs§§D:å!É{W-Û¹€ÖûvpÏçkSª0uzI,¤ÚY±æÊßB½Ëq½ÁÁí¡Ì†^jÈŠuQ„.MrGºÂHÇW#ñN’–Xƒ·7Œ£5®_Åù> endobj 487 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [504.263 143.315 511.237 155.175] /A << /S /GoTo /D (figure.9) >> >> endobj 493 0 obj << /D [491 0 R /XYZ 89 770.89 null] >> endobj 46 0 obj << /D [491 0 R /XYZ 90 480.062 null] >> endobj 490 0 obj << /Font << /F8 108 0 R /F57 109 0 R /F45 106 0 R /F67 131 0 R /F11 115 0 R >> /ProcSet [ /PDF /Text ] >> endobj 497 0 obj << /Length 461 /Filter /FlateDecode >> stream xÚÅS±nÜ0 ÝýåÁŠ%Y²Õ­A´ðÖfP}çËJu‚æëKRvr nêR’(>’zäƒ%«á“L¶0ᦑ¢kÙŠß…0µ6ŽNL‚äš¶:.¾©Ø§X|‡ï«”iDWë)§ß—«6Š•ìZQ["yÙWsÂYeYË„Z#dãX¿c?øU)ùÖø˜`ß—•¶š»eejÃû²Ó<>@ކ,U˸/í´bÂ$ÅSü×Ç#ú`Í{ØŽÇ\0Þæ“²æì1L°ÿÉîq¿%$¿ Éw"ï‚Ï>•ªã1ÝcÙŒý¬M ·»¹ò³qL>À ˜ÌQˆÎÙbÀf|Z›>ƹ¼é¿¡R gLž Õ ­É¼Ã©hŃXÙ#ñƒŸ³s@~-J¨+ɇi'øf4¤ÿ„D|þ>§¯-¤­cˆžVr”EmH.ÎѼŒËÖt}Ýðë˜^)>c,* ÿÜ·¢#º,ߎÍÏÃÊR ’’Ÿ‰Ö©Zà÷D´\NÞØ¤zis“ °7R­:a~Xu‚M'0A'¸<¼èTkÅ£þO¹ŸÎk¥j+Œ„ŸÑ:ÑêÌX[„ŠÏ}ñj2Ý endstream endobj 496 0 obj << /Type /Page /Contents 497 0 R /Resources 495 0 R /MediaBox [0 0 595.276 841.89] /Parent 468 0 R >> endobj 488 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./attractor_robustness.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 499 0 R /BBox [0 0 504 504] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 500 0 R>> /ExtGState << >>/ColorSpace << /sRGB 501 0 R >>>> /Length 668 /Filter /FlateDecode >> stream xœ¥VK‹Û0¾ûWÌe!9T«Ñèa]zØ¥[´Ð&°‡e!Ɇ<È‹Òߑ嗗®ƒc>™of¤™±&€°†Cöƒï‡Yvúùõ§L )%´O‹]vÿ¤øÿ³7@%J"þD¬ñCä9̶ð2ºƒý¼/W»óûb¾ùù|JÍçýñ4~…Ù$û2+~ç·ÎÀ¯ìå$,3„ ßë ß2ã„•àHH[ˆH/Á¦]Z ]¡†ErÂ`M—°á•DámÍ—°Å[Þ×|„ O$E®k¾„-Þ¡|ÃGØðe:ßÊnÀæÿe‡´¤ÀŠaƒdµ1ØÝh‹¤¥32ÃC®Ñ‡»V¦Ž‡û&Å»ÂZ ÷My.¬ŠÖÃ}kCUKlõBYÀå¾Sa¦±@Ç<Ãî¶fáʯ»ÁæaÛ”çbÕA|š¡Fáò„FO‚(ÒJúP÷mšr+¬+iǯL*(hÒ6(%â’b¤5êÐtmÚ¹ÚõÍS"&—u º C¥t‰dÕň ]Á†7)oº¼Oyßá%|> Ouã£4>êÆGi|ÔÒø¨ŸNãÓÝøtÿêÖüÍŸ( ÃÅ†ÂÆQQòÕ×vý ¨xÎè–™…ëãJv4 mùr4òŽ1˜ ÙŽw–˜‹Ö ÃÓ,ÉeØ0ÂÿèIÍyXÓ”M„Ú…¹ª›kIÝø4Ɇˆ9; Ó‹$?ƒ÷w}‹ÔgN9?»…ÇÆ“Ÿ‹ª£Ðn¹ßò*œ.›ss"j‡‡õ*hU µ:ÏÓ<¯-ÿ™Y Çò>4GHÏ›;8\æ|nÛ¬êmÌþníå endstream endobj 499 0 obj << /CreationDate (D:20150225101849) /ModDate (D:20150225101849) /Title (R Graphics Output) /Producer (R 3.1.2) /Creator (R) >> endobj 500 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica /Encoding 502 0 R >> endobj 501 0 obj [/ICCBased 503 0 R] endobj 502 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus 96/quoteleft 144/dotlessi/grave/acute/circumflex/tilde/macron/breve/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron/space] >> endobj 503 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óû endstream endobj 489 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./transition_robustness.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 504 0 R /BBox [0 0 504 504] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 505 0 R>> /ExtGState << >>/ColorSpace << /sRGB 506 0 R >>>> /Length 636 /Filter /FlateDecode >> stream xœ¥•MkÛ@†ïús ؇Lvö[ÐSBÓh  ‡ƒ±•â`)$²)í¯ïH»^IþHcrðÇëǯvßшàžà%ûίË"»h~|¹„y“ BÀð½™×Ùŵäÿ@#oASNè-HôŠ î'·Ï¯S8—&Õlµü;â¯å¾ÎªjYÿ‚ŲYÏêy9}€â&û\t[Ø®1¸ðù`="4¤ò(l»Êäúµ|Ù”õüÏЧö"m–äêî@»«[þÕøÝ?€€EFpï§Œº¾eζØ8´*ÐF£Q®ànG%PJ*G§ÞÊÄ¥èTâ[ÙskF<ÊÄ•ôèdâ[Ùs.‚£žG™ø(NŸ.ñwoX8P„¶ë‚‰@ÛÒ ë{¤‡8Ï®]ž`ç¸Ü#»~¿]òi3¶Û÷Û9zl÷'Ø= 5²ËŽNkµgOGêíT{¸U¬¾9ªPõÜuCP=%þ ™p”=—š8nâQö\IƒR'eÏãv¶|°»wŒ-PI°y{³tÙÛ›^2 ]Þ™ÍÉf©4ê̇»ýM·"Æ÷ékk!6¤îÛ…‡`¬r<\z„:õZÂO¨?6%ÛÈRÅ.á¦3aЍöâiŒ ©×í­hî¸7GTy‹Ö‡Úsi}t+ËMÇÝaä ±´ó<`-Õ®ÛònL¤a¡tðœøÏ¶Ÿ¨AiÇݽ?Q÷/0š¨ùø¾î$ßæ÷H¡Á> qv¨MÞ°óî…§òó#ðc™Lfõâ¹âdÍfµnÒCx¸;J!%—O»þ¹ä8æ¾ó¿é$‹ §òM˜Zæ ^6³z½\•©™³îBÄ} endstream endobj 504 0 obj << /CreationDate (D:20150225101907) /ModDate (D:20150225101907) /Title (R Graphics Output) /Producer (R 3.1.2) /Creator (R) >> endobj 505 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica /Encoding 507 0 R >> endobj 506 0 obj [/ICCBased 508 0 R] endobj 507 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus 96/quoteleft 144/dotlessi/grave/acute/circumflex/tilde/macron/breve/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron/space] >> endobj 508 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óû endstream endobj 498 0 obj << /D [496 0 R /XYZ 89 770.89 null] >> endobj 494 0 obj << /D [496 0 R /XYZ 134.481 177.104 null] >> endobj 495 0 obj << /Font << /F8 108 0 R >> /XObject << /Im12 488 0 R /Im13 489 0 R >> /ProcSet [ /PDF /Text ] >> endobj 517 0 obj << /Length 3359 /Filter /FlateDecode >> stream xÚíÙnãÈñ}¾Â˜' ±8¼ `df' ‚ÅÆÀ>lMÑ–b‰THi¼Ê×§Îî&Õ²'À,y°ÕgUuuÝÍßݽy÷¡¼©‚*󛻇›*¼)â$óìæn}óãâÓq¹*¢t±]F‹›Ù¢Þa»çÎa¹ŠóE?Ž0†kîq²å¹#4'ËÚFpôÃ=CÆþ¦åöˆÿµ£ÅÛ²­­×<Ú?X ‹°Ãæq—‹çe\,zD÷d 7«÷°EJ?ãâVæï±sJZÁ‰[ü¸üéîï>d…íðfEA• ³D Í=&2…·º|NCÚòFæÔ%ü( â¬ÒUo,‚¬áïï‚®‘ñ^æ¶2ާ|{‰º€ë-sÀy‹dñ©[®Ò46<ÚŽÜojâÕ-ôòÊÜÎ<àé:Å8{‚‘,jäþí,%ž³åqD±ÒqwÑâîß<ô_Ã,äŸèòøQ”a)Þç­Úxh\¥aäY2½æ½ ª’Šc¿!žóÜqv_s’=w¾0®¦r±JÊÜõ¤Y%†£÷Øl@+ib¢%èÀާ‹º[ó‚ ¡Æk´Gpg~l Ð`ôqíïªÈQ†d/&X:<$ðO6a¤(:seÄ€%ƒ± £á”èpñ@t5®àá0šüuÌê­ð|tàÕGîœU|vĉK„|Íõ^ Õæbks¥BçVàoäã†eš';/ì{=Åô6‘m3ûâgþ*IDoëŽ;d4±™LpA—øÖMo6xoÆ_¸m%/ ª´dòîQ^Ãڦy¾¸?É9ïq%Ž—U{¼øÕ 7OïfêÝ(J¡ÛH€FžU…m$¶'¬$®y/ ËlKÇVßž÷Ihg÷µ!E†‰ÏJÔiÐì:°ß×E‹•ïJ‰ËUYJ°}åªqJ¦6§ÿÆg^£nfbIÔ<g&µ“ñ­kËeü{ißËItçÀ{Ýä‚·+‹Biaÿ°S­ó9‡$ B0»ÿ ßPé/ì62¿—¿­ðóÑïª$H,óÄ%¤yÆx ¤—â‹B†¹LJ2̸Æ1ÌÔopù†¹{$\BðÖkcà-â2ú=wÉ~ôØe[ñþfn]qKÍSs+IžBŽË\ÍùÐßÖû½ÃVI–‘ÇÚªnA *qÆÁ!®pM xMCr0ªÉÎæ1'ލ]ƒÇÓ‚é:óŠG„Ò©HZ“™]¹¬ÕÝ ²Q0¶­Co€[¼a’HÖÊÞ[4Û 7@:àîÓ |ꆭ‰ðcàUx¬žXØÚm7'nãÒäØåxá"æ-_Âèà3’Ìed­&j-ä]Úb¶Ý0Gô ì@"ôD=Ìr)Š£+T^0™˜Bd#Ü­è×€.˜7´óØóü Ó €õr˜Ù“ “d­~ Ù€tq[VQžªùç‘@2Ëdíçe&¹ÙÉ¢&ÖÕ–H%d{ÖkÎYYZy„¶ŸS0±g[„Ìjű£¦Ó'©P«:;Ü»ö(/ oõ’K WhU™(M< ï ¯ì÷¬"@ƒ*%ÞZ-¾m5Kioy#±¤Õ@û¤7ˆ€Äy7rYç×$Ib¬Ö‰å¡S¥Ùšd“÷Ô>¯W•A–—]k¬äx¿ÎI-äÔµìfnÙïNª¼°é-È'ž-ªâ ó›U k£ˆWþ¢8¹$þ,}l?;>µõ;i÷â\îñÉ íä¯!;Á¿z°[ß}üj¹ŠbpèÄž“xÕïèf-DìgºþBù{Ãüøcç„nü¤óKÇ_o¿:åß uƒ­(¿4vSXr.ûÿâl;Ì$sÎr Æ^£ÿë¨ÃµÈ/œ »¦2)¨ó ê}ÚÙT5MóÐrcÜßÀ–G5'ÜP&ôo8ö’¸†‚È;A ¾=%s/ÞÎs;rñD9L2Ö@N\–.9qQš Nœù‚¸§ÀiñqÙ:ÅnŒžAfct²úÏõÙV™ÜkM¢ 4%¦¹%r#’«Â¦:=l{N\ˉQ®äà9o5¤Þð>öõÝè Â„éèqÁe$U:å4…N8,üŸ°0žšœ‡8²6A뽆a°`ß‹pagè±9òˆºÝ°œˆ¦³kÔ'ºˈQ×ÔîEé)KÀðEY‚LùÄÁ#žÅ{¢ßMh’y²­,¤ªµø¯ƒÐ=j¦óÆòT׺DdêÜqj’&Àò“^ÅC¸_wë·Ž©[iPk|%×oPsÓÅšÓẉËú'Gã>Õ¼œª;.wËeæR¬Y0ÇL ±K¥pðãË4ñ—Rp\,ƳêE¶ ÍŒ€æaÇW™ÂqË¿+¥ù¸Èƒ(ÊÜÂN¼ÛQÜÓÑñHíGÇÛDœ_,”IŦ’n¼eÂ[5¹…fŸb“Âh’UAžFseWùÉÂE?* >/E ׳$iÅùŒ¢i-P®„JçÔˆÙÆG¡aŽ™´ÿ–óÚ ³ˆ8ö-Sã`¢Ó¤æµÁ#’¨ègrþ{M©ª'%ଚ&ÿ•?+穨Ƒ0>©ù™†Ó°b™|ïh¡RM~kþyh)&:.í®{°Á‹Ù‹ :N±‘Y¢"€.r{™“Ø‘M}àãÚË2åúl¥5 7’|Ê/è^¥(/¥pZyŽ“Ï›~´`F‰à;VtÎØM ˧•ú¼º&¢}g÷PŠG" Qø­áÔ”½û[U,ƒ*46Á/”A’N^å6Þ¤ÒÊT'É ­Ø·f1Uñ†e†@¯½ÄÏ1A‘&Óq¸üÚ ‚¬Ê_8@¸¹Ý*M#{íh;~&ÛfrÜ#O ÅÅ‹„ Ñç-‘ǹ‰H³M™\Rm˜¯yÎè´Ý£Jí£pk®î>UiŒê€+òö\QôÆ cÉĦaçùT.qƒsœà¶>Ù‰i؃žë I¹x¯‘òÁ¾µƒí²Å1B/®˜tn_ëÒŠ‹vݵ+oX jUýdn´PõN¡ûÑ)4osÐ1~–ÊMT]é+e¢QÊø“ÎêX4Còœ$ç† ¨½øó­ Ñ…“5[|’-Æ.A{V…Wºl9Ež»¼’áPÝzŸÅ>ºœQ¢…3ü¢&ÈÃ_Û>j#}¥nä˜lçiË0Ôú_I{9@§ågï;Kº‹R À±¼rÛ{6•žÉñâEä+aj ‡ˆÊÿ×¾~è“CY+o@ú^Ô¾Z±p®…Ü^Ò Q‰"5,¤I=ó{ž"­(fâ_$Ö0åoG3J¿Qòv7kã‘>ÀÁéZŸƒ¡½6Á6VYàª%tÍRºæ¢ëœÁXHh7VzM_z¯§%þâ4®ÙjdFu'5 îU«x¿Œ˜)®ðjç“ø§—Š&Ÿ:S½@Ï”Æ1ß5üÖ ‚=í)]عòT›ÆV5qõàçN£S¬0åfã©'#XóøƒÍ»—€6ß,"Økß,âÂcÏ¿M¿'UԢ넚+©Q³a«ûùÅ1WPâiÐÝ9gTOb l’¹qôî|雬4,Át€cjîîÝZ‚ú‘ f¯_üÅ©S…‰?Š#Ëzo>>@T«?µfL÷„+uטÏ=æìcyÊQÉýa6Ýgá]Oáçáàxb"„Åô‹ñT V~r2D ¶ÊA[Î’ÌÅÃëÔ7g¶hQ‚„#;ÏÆ,*?Àuæw"£/_b–_ùÒg0^«µÞÚ3ü¦Ö°­]óªA«²îCh±Ni| eñдŠ)@®õÀãYŸ…Õb‚qóU…gYI*Õ”´äÊÂ^묜n™Ên*5*A­âµûìu]ÏqéÙOrU̹M:­³ ¸/3¸´æ3@ÊC«Z_Û3'܇e¯ßï½ÞÏ0aZî1d¢²3i„<½óMIÄéó(Íöh¿EÇÉÖÞ~´0ÿl1|)û(þ{³ü:ûxýU¶‘?=³±p/Pòäú•Tƒss¸­j±s.ïz^‡yEÕÍ*©‚2“÷ܤÀ…o~÷æ_]¤ endstream endobj 516 0 obj << /Type /Page /Contents 517 0 R /Resources 515 0 R /MediaBox [0 0 595.276 841.89] /Parent 519 0 R /Annots [ 509 0 R 510 0 R 513 0 R ] >> endobj 509 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [330.915 479.041 337.889 489.88] /A << /S /GoTo /D (figure.9) >> >> endobj 510 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [378.494 253.885 390.449 264.724] /A << /S /GoTo /D (figure.10) >> >> endobj 513 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[0 1 0] /Rect [275.502 168.147 282.476 176.555] /A << /S /GoTo /D (cite.cover91) >> >> endobj 518 0 obj << /D [516 0 R /XYZ 89 770.89 null] >> endobj 515 0 obj << /Font << /F8 108 0 R /F57 109 0 R /F67 131 0 R /F62 119 0 R /F11 115 0 R >> /ProcSet [ /PDF /Text ] >> endobj 524 0 obj << /Length 449 /Filter /FlateDecode >> stream xÚSÉNÃ0½ç+|LqmÇNmŽˆE,¤Ü€Cš„¶jRC!þž™±C TPw–÷fžgÉ<’É©æÆ9¦µà¥2¬’·„QGˆ#“R2òb`r3HÍ.|òÏ!—+£¹ÅÊ™ŸåòQc.­áV)DžWÉäÊ2Ç]©JV½0вàNhVµì1½Êdº„w¾ßÀÙeyau*ÅY–]¦UžÞuÄ®—+‚ÝÆ`ÓÁ± |ÿ~·ÚÕ»CabÀ›#«›SË<Œ×TÙ=œ¡ß¼CnGY*Ú8Ew™²é;~³:”|F€·ˆ*·ÈóÔ¸ 'ãMÖÙsu‹‘’;cÂl?îµÞŒd¿x¡R*‚fAæ¢ á¡P÷KÒ‚4—¾^>Î*|S?õà¯<Šß`‰6 ûqÈ¢  /ƒðs²H倻s*½ÛÇ®øÎêû­r°ï;,7 ‚ W–k1MÛ¯aÕë£åjaiI!X¡ÅäœDvÛ1»E¸'Ú¿¦ƒÁ¯éC«†nýȲ§vKX’Õ[ qj}Çÿ¢¿F 7ãÄW¢äFÂTZ®mü@ ‹¹ä²J>9"òí endstream endobj 523 0 obj << /Type /Page /Contents 524 0 R /Resources 522 0 R /MediaBox [0 0 595.276 841.89] /Parent 519 0 R >> endobj 511 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./indegree.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 526 0 R /BBox [0 0 504 504] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 527 0 R>> /ExtGState << >>/ColorSpace << /sRGB 528 0 R >>>> /Length 638 /Filter /FlateDecode >> stream xœ¥VKOÛ@¾ûWÌ)90ìììóÒ¨ !µR›H‡ˆ˜*(1" jûï;~$öÚAMàà•f¿Ì7ïÉÜÁ3¼f?仜f›Ÿ7—ð¸É*¥ {n‹ìâZËï§O@ >j™¢Am@c0]ÁýèfQ,`QÌó1°‚Ñxy‚Ív¶Íåò|žÿZçùfüÓÛìë´2¿ãïžwl¡Õ 9 r¥…Ñõ:}ˋǿc˜>—$euW“AL®¾Ë­·ð;»óŒàV¾çŒ*ß2ëÑ)ðŒÊà j‰}@fX¤+4;©EÉ z7b‹kïІ=Þˆ-Þ˜Ûáë'Tè …¬ÁEô\%PíwDök]rÉVÊtº¶ÓQUÚútmö„®®<«NÉ›:Õ§áJÍP%­s¸ƒâs=!>Ó”ÙÄò„BÉ=ɈFý.ê<Ƙ ¬ÐrjñQ:9Ñ5k`çRÃ:_ÃL5¥°\ÓÀN¦15MZ#Q zR„xŸó˜®Xöj 7RÕÐË*k ¼[ܦ¸íã1Åcלà;±ÅS÷tß?Ný㾜úÇ}ÿ8õûþ™Ô?Ó÷ÏÎîÿô®6¶\Õ,óêE€ÖrÐÎÊwÖ½p8I»x<‡V/Fâ=# 9b`ëýñìAH\ ã9Ì0§Ñ‘¬oû±UEÊÃ}c¼x6lœ¡¤qbd%¶RdIW(IäYwêìP–ést’™Lõ#AÞë±ÀhVÌ_V’†ÍÛrÛ¾ ºþÑ> ä-àÛ«Å4СæãcÙ,5Œ±üO.ã‹ö ^ßfÅv±Ì÷uÌþQ«ã« endstream endobj 526 0 obj << /CreationDate (D:20150225101919) /ModDate (D:20150225101919) /Title (R Graphics Output) /Producer (R 3.1.2) /Creator (R) >> endobj 527 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica /Encoding 529 0 R >> endobj 528 0 obj [/ICCBased 530 0 R] endobj 529 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus 96/quoteleft 144/dotlessi/grave/acute/circumflex/tilde/macron/breve/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron/space] >> endobj 530 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óû endstream endobj 512 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./indegree_kl.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 531 0 R /BBox [0 0 504 504] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 532 0 R>> /ExtGState << >>/ColorSpace << /sRGB 533 0 R >>>> /Length 678 /Filter /FlateDecode >> stream xœ­–KO1…÷ó+¼Lß{ýš-¨T¢‰&Rˆ„T‚†H¢ªÿ¾?Æžx2JÔ.tóåØ÷Ø'wvÍ€=³×æÆ½.–ÍùîÛÇ ¶Ú5‚ !Xù¾[m›ó+tß_þ`€<‚ðjŠ÷‡[Ë–/ìvöiÎH°Ùûfóp¿úyöyýô0wßb³Íú=>í~ÝoWëù[^7–~ÿ´A±êY±WÈ,ºÛbvõ¶~}_oWælùÜ-Ò ..#.—_ݧF±ßÍíì±ví^Ï ø ¾4†¸L™îý…ɲܰÅŽ•à2P ·¸ìq*3·†Û6óXö¥â‚zžÊž“@¦ç©Ì\µœ óXö\‚æRgw±Ì|Ü}Ïÿ9"ZqÔŒ€k‘™àn®¼þq1 v”j,{؇(T™Bø8aÈQ ÑtË%ËÌÉœbùXÜb¹~,3í&^tÄ4’.AÈ´—ø£;ÖI-H“&Ùh’'ň²ë¹FqRLRÛ£Yš»ŸRlÛž,–Š’D1¶c€â½PHøêm;³íÿ˜ë!î1"ݯÑrmºµõs¶„^åYëgä!?ÁQðó÷ O‡’‚’K?ÜKl 'ŠTU~ÀMóÔ4èʆ# ØT¦Êµme Üëq[¹B#ú¾*[$m¿5bek ¦úžDÛÃÕY­*_eç¨'¡©Œ p[ßWqäña|HMP+Žœ°òURšÊ ÉÊU©US$SyÊÉï¦åž£¶•Ÿ ¥¹¦~ÓøoÇ)Vn H•™ª /RW^ŠŽnš¿ù 7Õ endstream endobj 531 0 obj << /CreationDate (D:20150225101926) /ModDate (D:20150225101926) /Title (R Graphics Output) /Producer (R 3.1.2) /Creator (R) >> endobj 532 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica /Encoding 534 0 R >> endobj 533 0 obj [/ICCBased 535 0 R] endobj 534 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus 96/quoteleft 144/dotlessi/grave/acute/circumflex/tilde/macron/breve/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron/space] >> endobj 535 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óû endstream endobj 525 0 obj << /D [523 0 R /XYZ 89 770.89 null] >> endobj 520 0 obj << /D [523 0 R /XYZ 140.08 175.859 null] >> endobj 522 0 obj << /Font << /F8 108 0 R >> /XObject << /Im14 511 0 R /Im15 512 0 R >> /ProcSet [ /PDF /Text ] >> endobj 540 0 obj << /Length 2653 /Filter /FlateDecode >> stream xÚÕÙŽãÆñ}¿b°ðƒ„X4ï#Hx¯±^Ã1œÉC‡¤ŒD)¤´ÚÙÀÿî:ÙMª¥™]$yÔguuÝU­7÷¯¾y›ß^‘†éÝýò®ðï²0òü4¹»¯ïþ>ëæÁ¬éáë´…¯#|úù"Š¢Ùš-6C]7Ü>à²ý‘;5´7¸™FËy˜Ížæa>kjž`D ÏâîÃ|¦‡ÏÜïxø€`Ú¾·<°_2¤·x|V§Î |oþÏûîü»EyEœñ•Þvq”Ðú›)À¥ãzÄuó@à ÎÑùÜÄé3n;Vx52®Í‡Ît½¦å¬Káµ’ƒ@®ºrÇËð8_ʶ²ªà;„Ed/q g+$#‚*ñªeEsÜ¿?J£bÿðŸfÞÊ›/²$œbõ½ìh7±¯H„ÿ4ƒ|l>€ ˜à€k0«¼[Û¸À5Ëݘ]¶Ä¼? ½ñóPeÐþ±A(Ä Ä¿cµ °¨#•K°QÒ÷c±Èù¦›ç€à Ö@dä6HÏ"Àæ²pâ‰awwØ ¡wÀ~¸Ã‘çHà÷'¹ ì‘g?Å 8’Íî >¯6G+™éö_ãXn‰€Û1V4Ç*ŠÁ0Z°V¥ü€_Ùµçf-¿›Þ¾¦jÇÂ%.»†Îpxý¤ø‹(õgÕiˆ˜›Û(ÂÄ—¶•Ð'÷­Ù².0é9!SV Ðùæm’YÆ,ô}/És@’; ƒ”ÞïäàZÆWÄ$n7,í¾ =· e–zi–*h¹ËãƒÐ‹ÓôÚéßÊïQN-IkÅ8ÈØ/ÒF%8Y{[ Vÿ¦AT –ýEú^™GrרV¤]µ2lž JgËQ®V`bH1·äHþm¦ÃtOÆ»U[ÇVü÷š‚¼{*‚€Q³ˆ·¢µ†0J/œ>[ô}„hRFù+¸“ß­°FÙ÷GøÜ kþ Ÿï ˆƒ,Unî wlÑ›íÕ"û1¬bÃܦ¡Ã`ïwbÒñ”º1hÚ–º-_™ÝR2úˆã†5¥ÇsÖ{½l̓âÕ à¦×ƒk°Si’pv#xÉ¿( ¼$¤ñeT¿ ]’za*žÝwS ó‘~¬$êQžyYeýL¸#—‘’µB?ϲ¿UñM_îtqñ‡y"Žãd ¨'öPÐ=š(Ê,W8rÅÔW%©ñ6yŒ]h:ÚGëºsÅæ&\±f£T¤å«ùK(qëŒ_o#ú'`K¾ž…þK$õ²­(ˆ#ãÜd7¦ÒN¦ËñðËx/§?½Fïoë%Ø~Z×uñWwÌn™¯û!ÄâÐ&Á ó§ÜVZG+Å£v²£Û.e]¥WçÆ¿ñβçñ’»ì‹$HUþwvÝIãTXl…\ ÈÁtÖ¡ìkYw'žü[`QäCÆõø1Nxψ‰=OŒè‘ŒüÔÈ<…@qb"<ˆ*Æ}´êšGçéº S1u…•ÎÄYg¥hƒá_îSM×H¹=­ Ñj=TÚ ?ñ¬V£.è¨ätVFâ œ#hœD—WyA<äJn¿t!è¥Ea4©±§É¸jö§ó1F(%4hp¥ŽU;´86VPKÕ SøÒÈá§žìgiïÅç4Vø¼›_Ljc•&+qQÕP¾’ &½µŒò/–õ¬‰Ýá^B ´•¾|nŸ0½þÛgœB=¾0àâ½·1úh9ŸëDŒH>XD/¥ÞÖ˜xÀ²l8´7ÎÎeÐû‹U·›¯o–d,J¡,/Ý Ûõ‰ËÎ0åltÍt8«$ #ƒÓ|»ÑLMŸ-à, +Wú¿=˜LgÈã¶Oó<¦48ˆÇg‹p²\ Nc/"xm4KÂÚ\µµð¯ME%¢Õ/Øã(½èä!Ä•ðôW^vÄEè{Òbò’$åpZ|áÎT|Œ;«Œœ<Äd\Èu> endobj 514 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [346.434 720.136 358.39 730.976] /A << /S /GoTo /D (figure.10) >> >> endobj 536 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [248.3 253.885 260.255 264.724] /A << /S /GoTo /D (figure.11) >> >> endobj 541 0 obj << /D [539 0 R /XYZ 89 770.89 null] >> endobj 538 0 obj << /Font << /F8 108 0 R /F57 109 0 R /F67 131 0 R >> /ProcSet [ /PDF /Text ] >> endobj 545 0 obj << /Length 335 /Filter /FlateDecode >> stream xÚuRÁNÃ0 ½÷+rLÍâ¤én ˜7¤Þ€Ci˘hZÑtBðõØI6vAQ\ÛïÙyN LâÛRk™–JЬsÙg&ŒÔÆÆ… Hu)±¹wP±Û9{ÄuŠSÓâ¢ëM“mv5³ÂVªbͳ’©Z"ϰ¦gO|—?àÞ´C^”Fr€«¼¨¶5¿¦x‡ÐÑ£YqÏ.’ÈüŠAi¹§¨]S3rºHu¡þˆv¡ôDÆÖÄ|ÿ;ùµõ©tŠ OþÕû˜˜@rÛ©‚F´ß1½'êDf rÈë#D§k®jþ•«-Ÿ©ÃGhüÒ<àšt/ÏÒÈ$ípž|¿´¿ˆA^h­‚€à„1†è»Ö«AbLv$dS@zÉŒqr­õ?ê=iYÒ,ÄÏ·„UApæP²ÂÇÇ¿@I+d]ÅqJI`v×d¿þö•} endstream endobj 544 0 obj << /Type /Page /Contents 545 0 R /Resources 543 0 R /MediaBox [0 0 595.276 841.89] /Parent 519 0 R >> endobj 537 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./basinsize.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 547 0 R /BBox [0 0 504 504] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 548 0 R>> /ExtGState << >>/ColorSpace << /sRGB 549 0 R >>>> /Length 651 /Filter /FlateDecode >> stream xœ¥UËnÛ0¼ë+öÀ>tÃ%—¤x)ÐM-ÐÚ@A®ã6‰œí×w%R¯Dn+ä`Á£Ñûâàvð}–ßÙ2;-¿|8ƒu™)TJAÿY®‹ìôBË÷Ë[ ‰ˆˆ)W˜kИ簼ƒ«Ù»9°‚Ù9h ³ÍãHàêûÊíoÕK¸¿…o«r[”Õ¿ÕáÐ|µ>lï‹ù5,/³÷Ë:¸f÷Þ–oz‘¡•ÝMŽÊUûÏ.7O›býkË]µH•eLñ|1’ââü“¼õ~fW× à&#¸”ß.£zƒQ@Ë`=:wÀΠ îañœo B޼V9oùv| dêø[Þxƶ|[~P_Ë¿¾ÅJ22`]Ýã™Vª©n¿EGÔAòõ=5OQ뜪<:µ›¢6NjÅ=u>EÍ0ôÕ¤:y,·7¨¼="–OU¨‹þŒ®›QÇ3ºŽN°ã59ÔyË'Øãs_º–°ã È¡åìønÃ÷¢ÿƒÇ Лº6£uý«–˜ªæTb;Y¬e&%…Ø•éj™*MQ=}ocÅí(„ÉjÖŒ¬£ÚöL*ÍPÓš8T£Ç |…âu.fL7¬1x©ެ½È¼C뇤Ä!g¾f“£õiýJ´Óhé(ü®O×!E’sägKç®:‘Ž^8®5F8¶prÉq’u݉#dôÏA1$$J!Ñhíµ5]óÄÃ#doQ¿4á—K L8 ½¨†Z"vbÁ.GŠ“÷œ:¾19Iƒƒ“Á•¢P¼¦åÞm.ÝâæþN’+Ÿö‡²½{ûáQ›'ûAž ó|©ügz\Í¢´>È E« öžVÅa»ß´‡$ûиÉ^ endstream endobj 547 0 obj << /CreationDate (D:20150225101934) /ModDate (D:20150225101934) /Title (R Graphics Output) /Producer (R 3.1.2) /Creator (R) >> endobj 548 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica /Encoding 550 0 R >> endobj 549 0 obj [/ICCBased 551 0 R] endobj 550 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus 96/quoteleft 144/dotlessi/grave/acute/circumflex/tilde/macron/breve/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron/space] >> endobj 551 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óû endstream endobj 546 0 obj << /D [544 0 R /XYZ 89 770.89 null] >> endobj 542 0 obj << /D [544 0 R /XYZ 142.058 292.551 null] >> endobj 543 0 obj << /Font << /F8 108 0 R >> /XObject << /Im16 537 0 R >> /ProcSet [ /PDF /Text ] >> endobj 556 0 obj << /Length 3363 /Filter /FlateDecode >> stream xÚ½YsÛÆù]¿‚ÎCœ1¡]ìâÊÔ‘,kâÖÎ4–ò”d:I¬y… ­¨ÓßïZ`—m9Öô°Ç·ß}­Î¯ON/m:Ò666KF×·£RòÄÄ*KG×ÓÑ/‘O´Nlôv¬£Åz<1:ZÁëf ¯¹ªå_Ò¨Á?‚ùß®ÿÎÀu\¦)W£I’ÆyilÅZ¸ªÆ°÷ Íà·¼c°Ëf;6Iô0vpá÷±å³gK^³…±û†Ï+Jÿ<•q¦28—Î;‡…+„2ÿþ ƃXÚ<¶eá6ýª´Ór:ìa ‹ªß_ŒÊ¸Ì’ wOÇZYxQ±É…Ô×´M \J²hµ„)Ñ ?$·È‰”¾fLKG¤¹wF™Ç™qÎÇÌÄg ¿ž6 |óØ¿_Uªø¡1Ïuœël½Z•„æKÀ©,áB ‡@.Ið“œÙñ§Ò¨®–¼æ†ˆlø£%ô`é'üÓ¢4±ƒ×¶çÁ!¥º]4‰Cª:? šÖ, Pqã‚ÑÄ‚ÄëO]ß‹F¢Ò©„0ØÅM?ØËŠ>ñG‰ní&TAÔÚ†?YQ:Õ–G¦„K½T…÷S9rÉÏ+< fÍV2šòé,f~Ç5•L#¨<’ƒ«õÑÀíN†Jw:‹Pæsâ¤fÌC¢ê–­3Θhu‹O ž…ßò\‹J²£ÙþDLÞàòÇ!ű(Ë$0}ùÍÅ9P “Å©5½jL¬5Ñ帰x:aM¾™´XÏÎKžñe ŸÈÉfNG¶52¡vÞdˆî²Ð‰€ô–¾%v8<ól(óY1ÑyçEŠ® ü|Á„ýmØÁq‡ó%aB` ?Jr,Oâæ‚¿„¥?^ö"þ~ b¡CÕ.Ë T-;aÑç_áu¯ÿ \JôB”Uà>ʰ釾ݞ$®;ƒß»1çno˜/½%_Ú›#\ôA í—OÒ… |)G^‹à~Þ£ý0ö{ªr}ÌçA‚ uût\+‡/ú6¬”È#X¥8¦¶œ"[åe8Iy%q°e»âÁ©ƒU±hðá¾óàîe‡‹Òk(ÇOÅ4\òÊ[¶J\¿ÉV²¼EÈ«ÝÜÅ=Õ¡H6^$ g¡¶qrä%ä4¿Š4xóõ\3E§tÎBfÞøœÖ†ÆÄÆ*ïôÆÿ]ž½ê€Vs–’ã®qåø½3.ª7Òo"³Gî,t;LÖÄ€² ~a67óCÿÁœ6)ƒ"?kªó˜^¢}Îã·Î'Õ^̠Ȁ³RdÁ»Ž0"¬fK¯M㎡ls!©ª5*:—-”´¥c£L˜OÝ#'(-\So@G§§-a2—êrµ¹;½è,¥váÔJv¶§WÁUC=óJvSÆS§}€ÑÉ›ë“ßO4P F2Ï"ÎEèÂ+ÄzqòËoj4…I°»Ø”Åè–.FÇ«¤ùèêä§“s¼S îtN,!HVåLç»FôUx¹w¸IãXò ‡›ê7nNIáBÃ%vü´ãœÌ7®°ë"j­Žóâ9¸<Îó=.½ßóˆ®Û¸‡„\o<…$B$´õn§kM4MI&r-_—ŒÝ¥$%É”'AF8x †Q³e|póg‡¦ÒJ“ çS›'ÏfìàŸr«£·r¦»¼ÂwrÕT—‡ïOÉÛsž8´ÒàÕ6–2ý®ÃÏþ%Qø—½Ö…p/tú®@°îB)wÉ„±®¤÷¦ w÷Âó.þ4x÷’‡\Vm~i_gýaÎsÑ—;Ãa‡Ùˆ1Gn‰9Fäð¾ øg†‚Â~p7O÷ƒ·C«M‡ÙÝt¹ Ï}@ V®æJSa›»L“‚Žk9^u×,{˜nî îõw¢†ëEºp÷¢»î?):—?wßÞm©à J7ïu x3eÏpgÌ.Ïãœúãž78C6¦v(7ÄaWíÁ«Ÿš4íŠR˜¢›è\5ú“š.íÅu+1rÖ)é”W}\½d–ÐYa+'ÑEì nEð\çP³S®þ‚<•£êZ>h&-Yk^‚‚P½}·0t©Þ_wzx¯nŽþ3…tVA{ÁÿòR¢'¤c“ªšÛ¾ùÐéáj¨ñœȬ¾]©ú{’<.s¥ù’«(!b Še±Nmp°•SŽÔjÿÇ[üýóÝÞMFÛìð"Ãßñ¯'¶-ôÄ"û¹I±Ï@ É:ÏpàHr™@9Õ Ý°ñÀôž®Üèãgäbýƒö¦ Ðù×þXÌøâ€öð¿WÔ½ÿ iJhzÅ<`.8ðá†W¼âõ¨V¢Z/ZÿÂcÇó#ãCãÝ þ·? 3Cf¡ê¶ +ëó¡Á I`X /¶WÁ!øxá 8{6ŒÀq8*záØ8 âºÌà7¤ðŸ p?b­ <8 uôò@&nBü_£©R!Ô‚*ë`ÂWçŽ>Zà±iµC| ÌÆÃ‘€ ^÷:@öç›ú4-å)ïr~T!D©öXáK%<Û$CØSæ½ò>M¼FNùúöt{"ß)F ÕWƒžÇ×GŸÙ{z$>ÝR$멆ï8CŸ1p!èІR}xÝÐfƒ)§ÈhU¢MÁD·Yœ¨@¼Ì÷³jì?kóç> endobj 552 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [396.923 662.015 403.897 672.854] /A << /S /GoTo /D (section.5) >> >> endobj 553 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [89.004 342.92 508.017 354.78] /Subtype/Link/A<> >> endobj 557 0 obj << /D [555 0 R /XYZ 89 770.89 null] >> endobj 50 0 obj << /D [555 0 R /XYZ 90 733.028 null] >> endobj 54 0 obj << /D [555 0 R /XYZ 90 710.429 null] >> endobj 58 0 obj << /D [555 0 R /XYZ 90 440.563 null] >> endobj 554 0 obj << /Font << /F45 106 0 R /F89 558 0 R /F8 108 0 R /F57 109 0 R /F67 131 0 R /F76 141 0 R >> /ProcSet [ /PDF /Text ] >> endobj 566 0 obj << /Length 2162 /Filter /FlateDecode >> stream xÚ­XYoãF~÷¯æ‰ "ûà Œ1;Á»“ÝÄÀ"Èä–¨cG"’²ãüú­“‡Ecr, ZMvuuuÕ×_U÷íÝÍëwÙ"óÄ&‹»í"©ua”Ä‹»Íâ§àÍyi‚¢é–+›¸` / <õ ß}ÐBÃ%¿hoð¯ƒëª8òÀ{X¬—6 >-m”(ÕÂó%ˆ¤iÐíU• šÚ+Tq:ã— n:ê… x² _;ÔóˆkTþ‰¯kˆë É–»ɺ=¿ Æý`>©ÀþÝǪåUI z6‘ ÂåÏwß.¢Åʸ0÷){ëTq=Ç¢Y®\šÓD54³h4'Œ~ý.NG®Oâ0Š ¨$U虞Y÷ùE ¤=ж|Œâˆ ëG45!S´b/äš!F‚ks¼ It`'Sâ oáù'<ÿøÜÔ>cŸ©ŠòWÔpâJZvOÁ®Á?ÐÑ÷ˆ >Š…kîÇ!åYV]¢tY¡4ZVt²RXo¿ïKnWê»Åme­cCøL˜Çö ”\Ó‚mÕŠ1ä6šºÉ›ˆµõ¨@-¨ö†CµçU€î=ŽóÁ©À—'V‚#êŽÛÅ‘¢ ";„zØ'¥ˆaçÃ2N‚‚€†Þ ár•8¼‘[XÏupИôÿ¶$ ³¤ ù Ò8ÜÖdÓÖEqp™ á‘8$<®Àq.8äû“ZRέ$Na!:áNì®ä·‘u)y¼•µ½›±ÜVíî{›²&p»…76hËŽ²ÉQ`WVl-7,êxUžqŽÌ†A¼†:J>ƒ:¯ä:Õ¨hGa&;j¾•®ö¿WÀ| ÊeŸ“‡Ql§Øÿ@¸?!í9gÁCRâ‰ß¶JúÎMxS_±ûÂßI¾› ² ÙÝ>^ðŒÔis@‹ãù=B×-Á&ëƒ÷ÂüN GK¨v¸•úÁåq õtL\OÊÞ’§î–°é f'äÑ5‡+ YQèR1Kd?æ.óÀö‰xœ›âÄršÙàÒOD9à"¬ˆÏ²më«Âx\¬Œd’&/ürª 4”×8¸FöÃßÁ†)ÁhwQª ¨ªõó‰TVdƒŸ iâŸ' o„š÷ˆ~ ×5mhܳà([£Q’O,Q¬×Jà­$t”«®7·„äyÏ'{ñ|G¡4ÁWð¼–çqô„ðÜ«OE¾1¥¸Saû$òJq»kH‡©ëI6ƒÍñæ(Zö5zv·çå:q´ÏZRœŠfpÀù"Syó·Bà„1Z(R›NÝý üB 6ë$™(ÕôÅ”K-­¶Þ!&[´ï"n[YS+ÝyŒØa+Þ"¼íX}Pˆ9Rû,)ö%F;ôÖ ·‡üç‰GiçQ¯—äPŸÊW s¥¢*y·¬«àŸ—XHP…#>FÆ%KA[A÷‹Nc.£‡í5‡ˆJ LŒRzÐßqªG¦%Š>‹• y†'^b™Ù*Kë-%\ëÙÉ¿XVŸi <0Ä9k*Y¤ šë¢§o'Õ½Ü ®8ìqDšØýšÇ)¦´KŸk’öð=fe’ÿ[þ(‘°ÜGóž5]ŠHQm¸áXhÃùŸÌ¨4•ˆÿÇΤöóI„‘Aìæïw7HZÑÂ…ÙÐæ9Õ}9Ö§›_nBgKIbÔ¤.Ñž‰  Ëôëë÷'¨ßÖ7ÿ†?U¼RÍ«‘êÛ™S¥Í-‡»Qý@ðkú¢^ˆ¨’“ÛA‚„’Ÿ ¸ „D½dgmÒÙç(µ‘ü3t^35Yè³ôO0K ¢t£¬á½ ~Dë!aôK'B‚ö†wˆÔ­z†¬J^—flŸ‹Q¥uiF& ’±ñ°OàP Õµ¸˜Œ-ùÛr[×סí¨>>I2ÜêV¾ †_IPj*U9ïÒæ”üzžŽ"œ‡•^q‚ÂÙÏ2d-DPP˜yØ×"ú²¯¹þMW«Œ.WCÐ;ñpÅ¿¿d³'*ã`Ò!Ü'\£'»dJŒR”ƒU.œË¸Ì¸Näs'{P=Ü3üC³0rHœSn„Å\ŸИO²Ó˜k¥»76åû”§ÞZùŠIuŸÂfŽ/|ΠˆPÁ?Âyü²/Ä, IHÕz ùdÎD¼#E ¥ö~”‚òi{é:ÊEÉü-QË}m_#‡u%%1¾\¸¦v_Ñ멾ÑBð(ê"È»H–z! á8tϼ‚Nk-µˆ §ËR/+ê¦å›ïâàC©é©‘{°—ì’Jr&%Ñ=ZÅ>}α|BÜO)zº³µÁp `µœ€Ó^øÒr¨­%h3ö i=Ž/Çë³WÂÄÔPµQvŠvÐ[‹*-^±}êk >ô±/3ïdZá'©¨çkžíE½æØ~ lØwÏ»çzc?+ºþÈÖÎm²éeÏ){¼ðÕ!tùÞVo®ï[VB;ŸÔÑøzû¬n¤/WŠN¼¹aõ•N<‘ŠAPÁ§©—zSûê=íŽÈw#›f‡vÑæT¦š¿)G¹Ú÷"õü…lcuõw õýÌ‘3 ½•¨÷û3¥ _­õAo?Iz’Šâ¥NÙfbW_úƒ¨\Jö|;w/mbf¶ÇýâMvݱé»â$ÿ/½½›‘¨žÅÃþ¹v„…ƒ_þ<9z:ð^5ärƒdµêýß;Ùà endstream endobj 565 0 obj << /Type /Page /Contents 566 0 R /Resources 564 0 R /MediaBox [0 0 595.276 841.89] /Parent 519 0 R /Group 562 0 R /Annots [ 559 0 R 560 0 R ] >> endobj 561 0 obj << /Type /XObject /Subtype /Image /Width 1053 /Height 678 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 568 0 R /Length 35184 /Filter /FlateDecode >> stream xÚì|eÞøWïλW_½óôïéY°€Þ DQ,§¢Ø=QA齂J¥'B(B$!^H…*½C•:ìÿ·y`fg'“Ý õûýìg3;óÌ77÷Ûo¿uè?üðÃêÕ«å})€%J–/_®7‹ôôôeË–ØF$"55UÓ YSPND%4­(,,\lF~~~nnnzzzldäˆæ-Ÿ{> Zuyõyöyù(+e“`Ö»ÇGΜÕôÓé5«E<þOyÉ‚|”•6wŸ3³ÍÐÏþÝµÖ ž|¾ã/w}¶ÍàÏd¥õîPшJhZ±ÈÙÙÙÉÉÉ¿î^ùáoŸ|*øõ7§·h1ã³Á¯½ñMÕ§ºW~H6I f±{ô×_Eüýosk=šÕðõ‚N- ;·ÊjT7î¹Çd¥l*s÷~ãoùÀ³_>þöˆWšOùèÓI¼ñ]í§»ÿóÑ–È&‹ÝÀ>ó¦…†N›WqÇO™—{…Eú¼iÁ¡Q^¦63%!ÚךVäy 55ubß¾=ï¹?è¡G3_ymçð‘'7o>¹aÃΡßeÖùwÐCÿ”M@‚yÚ}Î7½g?üǬ—îÜÔ¡Ö/³û/þñÄžuû£‡lîôBÖËwÊ& `±{¿ ÀGšßýLß4šòï ¿ßøóš» †¦¼=±VõÀ‡þÑü àiwÓ®epów^}§”†÷únjFéÚÈ~ÍŸo<Èco’=«õ«¯žÛKö;¿ðê ï ž•qùç9{~ÐÇZê]Én8jn¶¡X:W–«Aç¤ÒåA_mÜo†0?¨¹Ãñy²‡3â÷è|dr[)‹vÉÞU¯Émކ³²ihpm¡iEŽ¢#"«üsò½.ÿÛß÷=YëxËvg§Gœ Ÿ~¬E«}?³üoUd“`¦»ÇË®vëºØÕñÏ¿ ¬~df›K£Ž/›sdV‡ýƒjìêøÿd“`¦»GÌžQ½E•š}zsê“Íb^’Û=a}dôšI½3Z~4§NÝ©Ue“`9vIûª†ÃñtÃÏ?o¨:Àw¾)kg}]Çáè–äi§¬¸~í>ÿ¼‹†OËNO«åÏ›´ ‹Ï¨¨”fÎصýˆ¨tß”2¹›$ú¡—>iw.Ù-†ÏN1K¿—Žš}Ò\Ë©UU:†û- é“_p8:L]°Ð|³.:?Üä=ûŒ‰òð±lfö©éxXÅÌ›<¬kŸÉ–û.,ZøMM‡ã³1´4¸¦Ð´"ÓA-ÛŒ¼¯Ê·?xðÆJgÿø€ó‰ZÎ>v6üÈùxMù(+e“`¦»Ïi×8å•›úêŽCCª ®vbÆ[§’:Jê|<â£ãjÈJÙ$$˜éî¶¬ÙæïïG=óIbíæ¯uÍý`ÐÒŽýŠÚvÈ©ß,ý•Ɖµe“`™vIþêiÇÓ}cV­Z½.g²(Bn“emþ?®[·"×ÓNY X¹jÕJóú¿ìx¨ï’ÒeYU˜—]Q)͘ZÙáèžæ‡<ÏøJºú¾sUª%Ù«–.ÊѶ¦§»Þ¼$¶ôU²kEöòµëÖ®(ðW‚Z>åp´Ï*Êó°]Hí!¹í2ÉÃDz™.U䡯JK%½´pÎ1µG5‡£ZhŠõÞ¹‹æ~-öŸNc€kM+2<0¹Î+ îyèÐ-÷;oªä¼±’ó¶ÊΞp½þ¯²ÓµòþC~PL®óoÓÝÓ?ª¼®íߎŒzìÄ”Zgæ¼âŒ¯çLmèLm òQVÊ& ñQÓÝ߬ûÞ˜ç[f¿Ñañ»]—ÔïùCƒ>Ë? Xþß/—5èRôŸùo·Ìzã1ÏK° »$ˆVt›ìZÌš!Zñt÷PWwðŸûß ˆWAâ'·©WUu÷×k39þ‚ýÃj8 HЭ‰Û½ÖýçºÓW>í7WõŸõ«Ö;èsµ¾Ö£uáϽêÇÍMU+§ ëTõ|ŸÜ=4>#uÚÕ1|Àá¨7.^°ûÈÀOeÝ}4¯ê¸¿Óع玘ZÿþûÛŒŽŸàp¼ï–çi²Þ0-Ű^KÉý¯¼U]þ¼XšÿÀ7Ÿx3 Ô= Bô¸ÀWΧS’“ôkª~нžku›¹ú8R§½ëp|”œSZ&ŽZŸGß=²ãþú““ÎG§’4RKR½zµªÖúo¿¤óÇo3hÐçµÎ•ÛØèså–17ôÓZçÎU§‘®c‡vK%ZÒ^?`²á£§ò×3-à%©"£.ê¬ò„óÑÎjÏ9Ÿ©í|¶Ž³úóΪÏ8ÿù”óþÇ×VzD‚™î^ØìÎÝ;1£ÎÙ„7œ™õ‹>t|äzÉBVý³ õd“`¦»×P»EL½žË> \Õ¸ÿŸ Yûé÷š}·¾éൟö[óIŸU¿\Ö賘zõú×N°KB¯Ž*Íú‡…n]ÿI‡£ÁÔ”LY;¥guGå. ®Ó›¸úÅ!±iióCT‘å&ӓݪìÿP¯Ý#†wí<$,)33¼ ýU˜kãÔžo–ö¯o ‹ láöíŠ>¬§,<$"73¶K YÛqž¬M{Õá¨Ñ%$37mvXXäü´´”Ä™!I:C"""“õ Ÿ›1×uÄ×¾RɘøŽèÑÔ”¬äÙ£>nÐ#2Ù-ÏS{Iðÿv4zôðáC‡O)]ÙÇemG$e&…ônì:ö‹*_ ¥…æž•ø-†ÌÏÌœ=¶Ki¦‚]{$…©Ä5ï?6<":Ewlˆä²G¸+M³¿‘0íGÇ”nˆi÷ øFpvÆùèÒÒæ…uSÇOÊL ÿ¶¹ëˆÕ{ÎÕ¿NçáC^r8žj7®ô Ó?”µoÎÏÍ ”Â`èì´ÔùSdé¡OúGDDÌIL5|4/ÿ ™Úë\lús—‘Û³ôþ·þ!á³ç$-ð|ŠÓÒŒ(ÿÓ/Ö× šV${`þ“Ïny¤º³æ Î_sÖûóƒÆÎϾp6oélü©ó÷¯¼á¬õâÖÇŸžW½–éî…­Ü;öÙ³‰o9ó>t.ýÔ¹ª¹smK×kusç²OeåÙÄw$€3ݽÑwu;&½?àÇfßmh>vóa[ÛÎØÑiÆŽ·¶½é‹ašø±i‡Ä ‡½ž `—y/žûþÝE½oâÒReíd×жç¼ääØ1euϨE®»„²D»ÆÞíÆÎÑöŸÜS´ÄR#kÑ’%‹R’“cFŠ…t. VGF¯‰+–,Ê[T”ßO†ÂÕ:ÈQFµ¯&cùñÑs"¢¢B¿•ÑgµÑ±ÒÛNzC¢©Û&$b^®Äœ‘’œ’ž›;SRÚ}ff^^nzŠ:àKSsä€ säDq)Ì€ÕŒf²Ô"4/=95sÑË—d¥ºåyrOõ½ ‡ãÕ.dåø.ÿcˆ_º8kAÖ¢¢Å®ÖPùš'…Q½ëD÷4”&¾A²‚ì ró—Dt–qùÛ¡²OüDWnÇ$.+Ì_˜—­?v\‡£Ê¸yi²œšÒS èÕ@)ªy¡.Ó“™¢E—œ\zü¸¢‚¬™ óU’æ'Ÿ;~ƒ~1+–,Î[˜óœÒð±ã\'«Å°iÑQ13‡É±ÛŒ“–¹@Ôè‘———#£ÿ ?š—ÿ…œ?w+.8w©Ys¾­'êž¹07gÅ)NNN™öÕKŽ*£impÍ iE¢’þwíÓ/¸„â£&ÎÖ휽¾râzõt¶ïälÒÌùnõµj'7úÈt÷…=_Ü1îeg·Î>sÙÄ–öÎ]¯-\W|æÌýpGÈËÌt÷N¡Í:Ä6¹¡UÈ–vÓwtž[Ü3e_`ò¾ÀØÝ_†oï²¥íˆ -ÛÇ4ìÚ4À.s{TwÔè=gåÊ•ù)S\_7?Þ.:1q’¬­ÜcnbâüðÞ2 }.t¬a®óC£µý'})ƒÚ/çêŽ8mx§gÔ½1UÔOú²º£J@B’ ’<±u!Ç%ÎøaǯTv8Þ•c%g¥Nÿ¶†Z÷xÃáÓJ7¡ºmœóñJº¿JI;ifÚT ÿBÇ èñe§As3¬ò<éK Ó{N‘z¶â‡‚¬ÄÄè/Å*^ì›p.Hlo#×PùrQõΡniÄK˜¾Éç;Ùõu} ØÄÄy¡¬Û´“¨C»¸ÊsöüÒOiq£‹Ý ‹žÿÝG²ºGZf².ºsIJIrK’:þôsë{ˆ&tq%oþÔÞŽ ¨89î|€ ç“ ÿè¡ü/Äpî¦tw‰¤7¬‡$¨Nh¬y°ó§Xmªã¨Ò%šÖ× ZÇï´~ý³_xÑÙ¤¹³SWç7ýc‚œ“§8§Lu;ûrvûÒÙü‹œÚ¯¤õ`º{ÆÈ.+†½ä,øÔ¹¶µK%vuuîëéÜ×˹»»skG×ÊÂOW«#ÁLw5{ÈgÞ·¾Ý´]ç÷Jß÷mÞþÁòJÛ÷MÌîžáÛ»Œ]ßö³·GG ‰°KLé v¼,%¥gϧ㩳ã'ö¨&ZÒIzÅ®ãcUèØI®Ûr:O˜£í&ûWq…<¼‘Ï:Õ;M^¶bÅòå±/ºÇjÁâÎr ˜«÷˜Ÿ8¾½ ß_¡X¾bÅÒ¬$WˆÔ¬üå+–¥ÏüÎ%ÿ t­šëÒ9)Ö<Þ䌠Ïd„\õÙª2öî’‘h•ç0×SË=¢õ+‡7“Ý[L׋¤0F-WsT+-¢ Ó ‰—Ô5šrþã;ËÆ7&Å Öyül÷¨“æ—hÚ=W€é©Ó¤ˆž·á“ÇgAñÉD—ÚQŽÿîxUjq¹n‚ê<;Þp|u'ÄŸ?Y=fæ¯8_žù™I*@•¶ôgüüGå¯Çù“üº´bB\Ád¹ÿ»ð›y´6¸fд"Îóç/hüéö_8ût©Ä´ΘX×kÆLgÈxç !;Z·Íü´™3Ý==aÞâAÿÞ÷¡sS{çÎR§øù+çO_¹Ìbgwçæ»ç}X0øßÌt÷ÄÔ„NSõOm:kû—‰{úæþ<¸àÀðžÏþy`Bq`äö_'Únr# `—ÙÝ«;*7 øU‹ÒGw›ÍŒ‹›Ð½šãÁî³ãââ“fÖw=ûù¨ðÈÈðQM]ן™”¨í?Aö¯â yލq®ñøçý§„OüªÉË¥÷äL* 溭éöÃ#g‡ lãº@„%9r€k^ãíö!rü“‡#‰ éÑ¥oHø¬ys§¸îhúp˜väÚ ˜1{¶I¼qóÒf}­úðV!óTúb&mÕªGèl·š—\d·­ôZ—Ès§ØüÜEiézò}„Äi,..¬±Ãñј¹óimpÍ iEŒæÎ›=yê¢ví÷~÷½k’B„"!Ñ™˜äœç Ÿ¶oÄÈÅ;çN™"Á<í¾ "xÉØzûrZ8wöpî 8¯Î]=öå}¾4èm `±ûÌäi=f4 YÔ.~g`ÖÞA‹~þN^™{ÎÛÑ'8¯M×i #“¦yÚÀŒY½jÿzLµ7ZMLÈJŒ™Ø«®ãÁn³\]OrNÂÄú•µÛd> IÈIÖu3ã»ÕvT/ ©˜—0®Ã*ìsŸtiUºøÉ°ðñÝþ%ÃôwŸ?w˜:­Ædå$«Ã§Lí[ý×$¼'Ïìï*€©É±çR§E7/57eê€úµŸz৺Œ™PÇ¥±Æã«ðÁ®ÅØÄü¬Yç3á¢ÃXÉüÜy“ÔÇ&C ÍË?f–k®¡Z×YçN±ù¹‹O˜Öì\Åhî9ØøžïŠÅÌIO ±ÀµƒÖ«F{`öìÙ)))9Ó¦-î°yÂăQQ§â抛0jöæ‰a_õ‘M@‚Yì¾`VHÁ¸†[R›ZÙéÔ–î§¶ö8¼ºóÖÔ…ãɦ2wJ™ÕdlZ«ˆe=âÖÆ­í3cY÷Ñi-"?‰L™n±;€q9…K5Š ¥'ÄÊÚ¤œ‚¥KrãJCÄ&¤,),ý¹K—,Î(  ‘’[¸´è\H:z^Ê")äÜÒ3?-w©:ióÜ?š”¿ªçOkJnþ¢Â‚¥¹†s—’¿¤tÇEÙr óS<µß}b7S’µ“p- iÅlD•’œœ\3jtÁ !«Æ­¼xÈP×ÇìlÙ¤ÂXï¾87+ubßÜ Ÿ­Šl²*òÓ¼Ðæ©¿–•6wÏÍÏ?oÄÐØŽßÏoõݼVC¢;…Ì!+­wð9±s…X›¡c$tìœóû¹–Æ´¯ìp´ —M®ÃĸßµúÂõ1±±î1–9Æ4ÒïZ>+xмd_òiii˜SZ6slG›µ0¶W‹À)e XÉá¨ñÊ{½y¯ëêT{|\’Ýò7$è×SböѬüõg'¦4h¬É¹+ݱt³é)ÿ¾ëƒçˆÝЄàšBÓŠYž™9s¦¼ÇÄÄddd,+Eä£kÚø|€Ësw€KELÄøÁ£&GV` Gjpç6­?û¸y—ÀQó²§Ä^a§8:)37#žúךVÌ´$""B-üúM—íî—„ÙqIé)ñQCd\RªDyu[BJzVvvNnNÖ‚”¹³¯ñS pÅ iE€WhZñ.€WhZáð ´Ð @+­P„……7îæ% 99™szÍrÉk åh…u°·ÞzË¡ãÆoTë5j$›Ü—ý‹§Ø Üu×]ƒ ªˆÄ´nݺråʆ•‘‘‘ùË_NŸ>]q·S2/¾øâ•Xñî½÷^‡/½ô’×Ǭ ¡U¿ë®»îî»ï®]»ö¬Y³.m鹟÷aÆ]ýõ—¤|Ê¥ÕªU+<Ï’%KÔúiÓ¦Mš4é"h…iìZ¡OX\\܈#|I@NNŽQQQ‘~åûï¿ÿÅ_âºF´Â÷"]¾|¹:›r)Û9sæ¨ëÖ­» µBU¿¤¤¤àààgžyFüB†ñ]Dh\•ZQæðµBµÂÎàY¯zZ´hQ»vm_pöìÙ{î¹§k×®Úš’’’o¼1==ýÒž¾K¥¾©F||¼T?_lâ"h…¾?^·nÝn¸aûöí§ˆÐ ¸êµBFÚmÛ¶u´œ9s¦gÏžwÞyç_ÿú×o¾ù¦‚ÏK·nÝî¸ãŽJ•*5J¯Z†~ë­·ÞtÓM<òH»ví¼NƒD$f!~¡>Κ5KÝe(ÓŒ¿ÿþû’<µœ””$)Ñ&>$ÌÀý[2sæÌyï½÷$U«V;v¬ZÙ¬Y35·¢X½zõc=öË/¿H‚ P¥J•[n¹åùçŸ/((ÐÂ|öÙg½{÷Öò%É–Äû±H-´Â"U›ô5pË–-üñí·ß.åäßê÷ã?^wÝu}ûöõTÚîEd¬‚´ÂSëÓ—ª´ÑÑÑ’)¥–-[ž8q‚þ.•Vxz¶" ࡇJKK‹ŒŒ¼ùæ›cbb|DÕªUkçyŽ?®Ö÷éÓç¶Ûn“AÚÊ•+eØ,#=÷g+6mÚT¯^½'žx"33S‚y†¥K—J)åää¨ 4ÐFéef¼cÇŽ/¼ð‚ ТE 9ަ÷Ýw_bb¢µBÆ´cÆŒ‘¡¯Œ{ÿûß:tHVßpà â*LçÎ_}õUU†22dÈâÅ‹%#^JL…y饗¤Tµ‘ª$[2åÇ"µÐ ‹TYlÒŸˆV­Z½þúëëׯÏÍÍ•sçw«½ûî»%:O¥í^D¦Á|IÒÓO?½Z‡h¯¦žZŸ¡µ>øàƒâeS¦LñùÝï~ç£|ZaS+~ó›ßüïyRRR,´B†ý7Ýt“Œ£Ôúºuë6lØÐÇA”þ©^õùÉ“'ÿô§?uéÒE v×]wiÃu}Âüu;ÊÃ?ܦMY8zô¨dP»ªÌŒËÈY†mGŽQÃQ ¬†ôË—/—QŸ/ß[ß%cW)®ùóç˲…ŒfÕIÑýå/™9s¦D- nß¾½ úôiI È­µÂYÁ7AY¤Ê:Áú“.úá‡J²}O¡i!׬YÓ°R_ÚEdæu’D¢oÐ!ÍSi…Eë3´ÖǼ¤¤D} z÷Ýwéà"hÅÓO?½ò<‡¶ÐŠÕ«WËŸ|òÉ:¥Èh_Æ`>¢ä8§Î£îDÚ°aƒÄ"cc½V˜þ”¿ÆÀÿ÷ÿ'CÙ¨¨(µ`3ã2x“ŸŒ$W¬X!+322DÍdlÿí·ß6hÐÀï#^!33³oß¾jfdöìÙjeýúõŸþyYˆŽŽ¾í¶Ûdˆ¾fͽ,ÿþ÷¿µ‰•K¥©²N°þ¤Ë9ªZµjZZZEhÅ<ФI‹Òv/"Ó`þJ’v”Eë³øÝ¶¯¿þúü£_, Ð /†¯¦<ËûôéumvÃãºåË—K,©©©M+Ö®]«blذaË–-Ý Á"ã2ÀëØ±£$ïóÏ??~üøÿüÏÿäååU¯^}Ú´iþ-q®?üðþûï8p Ä®ÁÎ;÷ºë®Û²eK½zõÔþË–-“2°×vçwÄ/­VX¤Ê:Á†¡ò?üðÚk¯I–Eßü[È?ýôÓï~÷»þýû[”¶¾ˆ,‚ù]+,*¡…VH‰…i\Z!Ãæn¸AÝ/äLc—!Ðí·ß®y„Dªÿ¨O˜ŒäŸ}öY¿¤äÉ'Ÿ”ñ¡þ(›0`À#<ò¯ýKÆöòñå—_nݺµÞ¿¿KfåÊ•r6UòNž<©ÁÊÇÿ÷ÿþŸ$ï·¿ý­ ¹eÍ‘#Gd, í.7n¬–_yå•>ø@-/X°@¯~,Rw­°H•u‚MéèË/¿üóŸÿìË÷ðî…ܳgÏ›o¾y÷îÝ¥­/"‹`~× ‹Jh¡o¿ý¶ÔOúC¸¬´BèÞ½û­·Þ:}úôcÇŽ8p@ÿs=Þ ¢ôl êy„† V®\955uñâů½öÚ7ÞhúlEhhèÿüÏÿÈ Ð÷â2dˆ”•þ(›/,,”ÿ÷ÿWÝÍ.–!c{_þõ›§’Y»víu×]$Ë’‰Tû*¡]»v²¦ZµjÚš¦M›Jfggˈ]R%[óòòÔ¦¯¾úê¾ûîÛ°aCTTÔ?þñ½Vø±HMÙ¶H•Å&ÃIß²e‹ØD‡ž{î9¿òÖ­[ÓÒÒZ¶l)ç.88X6mÞ¼ÙSië‹È"˜ßµÂ¢Z«™zLIT÷Oú“I´¢"´âøñã:uúýïÓM7ÉàJýfŽ/ƒ(ÃÿbÎÈÈp–ÞU©R%ùxûí·GGG{º êçŸ~æ™gn¸áý/¬zǶmÛd|¨¿ÊfÆÕÜŠ¸ú˜ŸŸ/É9r¤ïZa(™yóæ‰;Hþð‡?ôêÕK²,ÉÐnƒ‘¦„ÑÿÀ© ;4h #R‘²?ÿùÏaaaÚ&ê?úè£þïÿûªU«ôZáÇ"5Õ ‹TYl2<²-ƒ-‹C‰ƒø¥%Òûï¿ÿí·ßÕ›šiiŠÈâ¤ø]+¦Ù·Ó3{a¦W±2+Z¡5Cià{Ìðâ{æ=(ÔµÀS\vbÜc—¯5¬ãžž=åÇfÆý—ô½²¼×Ê,²,rasG‰B ùR²iò C}‹r0Á~ê#Òe]Už[oýSõê5j×®­ÜA¿IÖÜw_¥—^zéõ×_wßêKÆ}ÁfÆíÔ.q‡   qãÆ™¾+³ð®vé¯ò³g¯QZµfÚ´¥‹’å3~—Ò‡¬¬ÃÓ§/[´è¤»VØl5^k…´&5Z³™¯Š;¡žâ’F¡„B¬©è^΢ë³ÙHýÒ(´lj½iÆýØ(<¡:^û]n¹´B«‡vêª/³¦ÙtCù…we}‹žÙ ›p_0í4jZáI+¤™üTŠá ª5É`@kY-< o˜?éÐŽ&Q¨ki\ZxOßu«ìÈ‚û.žâ²ÓÿX$FŸyóΔ”•òž•µdãÆ½j¥Eú½Ë¸ã’¾W:áŸl£ÌB9…ý½$ 5@2äK&÷´©¡¾vŠÕ(BÛä^¼¨<†•ÚEA-—« }¯ûÌP&wÞù·û*Ý÷Ò‹¿ÎVx]yü8 µ™qëÚ¥œbâĉ2lvS™òK£°èе[O­-Û;­Ð×C;uÕ—› £ÌÂpp†¸ì|­á)1Ѳe{ÔPÿÛoCµqþÈQ³òó·ËP_’¡ß¥ÌÄØK>ú—ô½—õµÌ&*°§C©’!_êi'ÔSÊUý˜_›¼ÐÎr¹ÊÐæ×P¡ò¨ôÜsÏ=ÿÝ5[ѰaCå*ÀÍ¥<öØcÕkÔhX:[¡æ2¼«ö<úÙ Ãmäj¶Âqyª¨ZJÔR©æ¯mU뽎KßÒµV©¡*’~ô(k´‰?6 ý‚{—«ªŠ9)}å)—VØQ`ÓºZ^­ð"ûÊ/”Y¸ÏY”7û=syëÉ0[¡0í4jZáI+äýàÁƒ8XŠ,hC5ï´âà…È¥o×þƒŒ{\꣼ëg+Ä)~øá˜r Í,4­P­[;Ž{\vfK=e\†÷bÙžI“’Ô$‚ o'1öã’5>Æ¥:yíëAÃ7„Úµl’²»ZP=¹ ü‹j« ò¥NvBåÝ=Ù†Àz§Ðê@¹*¶‹{\jt­Å¥w–Ѝ<ò®~åéî_g+(×Pï·Ü|óc>¦ž­øäãÕ\†•ÇPÈJ(Ôoû¨q£öÛ>ö+Ük—ö<…§ÐÌBÿœ…ÍÚå/­°Ùj´¡—aþN-(­°Ö ›ùÒN¨r Ó^NÖ|ìy ÏVî'WíÑ_q¹WTý¡ÔÎ=.µÞë¸4}0ˆ†Bë|Ôzõî÷Fá>ÕbZU ÕÃ0-å^y,îM*S{­Ãør”ìr§– fQÞìÛé™}|¶Â¢Ó`¨ h…'­6âÞ£úQ+ÔÕD] LãÒ–µg+Î9EF©S”¾'%mÎÍýI»æº_ qÙùZÃSÆ7oÞ)/Óysç¯YsPêkX'æbÆ¥ú^­“W×Ö‘#GêµBÖ˜j…lUfa,»ë¿úÓ®&îùÒ*€Ì«lzJ¶v*ÕPÇp›e¨†Ój}\†;¬´+…6´ÐbôcåQñ–>[q«ölEûöí4§(­¸ó¾ûî{éÅ_¯ûz›Öm<5û­F«Kî_A+Ű_yì|3é^»¤žH/1jÔ(›N¡ÞUxƒºZ×.¿k…u«±9[az¡A+¬ó¥Î æúvaz²üÒóè¯0Ú„éeÚÔž´Múi›e¨Ýóã^D†o_Ý¿†Òbôcå~­xøÜ³½.œ­=?[ñqélETT”/­F)’û÷Ïúßö±Yyì!ôµKÍV¨Ùûfa:[a]» Z¡nÒnÙ²¥,¯Y³æôéÓëׯ?vì˜ÚºlÙ2µðÃ?h÷>©œ´Ùj¦ûŒÍ| z§poîçËÇžGkžî'÷W\vžqÐJ}”Òð._ž0D§ïµõGð½Qüb†4}_ªúXYù‹%úÊcó&(/ð]+¬³/MUË»,¨V¯ÿa(ìe¹²oÑ3—÷Þi–­_cÚi0Դ“VH³UíEû7£z­(´ñå æÚOÿ/)õ_1™ÆeˆTœB|xpppݺu“J™3gÎ_|! rœ^½z©322ÂÂÂLk—§V£#Ùyj@²cÀS¾TJLÍB¥V ¬%ÛÇžGoåz§pÿ¯ÓþŠË¢0Ìèoq÷¥QzòæË»F¡¯}|l5ž¦ ?zc§òØùfÒ}Œíûl…ûøÜ´vf+ZžG–ãââFŒñÑGuèСGíÚµûä“O>ÿüó™3g¶nÝúÌ™3&33ó»ï¾3­]¦ù²¯ú¯aUûRklæK;#úg+|ÔŠrU½YTh\¦õPk¡†Äø1.ï´Â—FaÐ ½S*¶I±-¤Õ¦VhO‚_ÊÛvL¢L­°™}O†ïxQ1®Y­0\Gô£2u”ôZ¡MPÞ% u-0ëÈ‘#^üGoÙK;¾{\vúO‰‘Á|~þ*÷{Ÿdœ?gÎB5Ô×§w¤‹Ä\̸T߫‡LËœ­Ð>êoÒS5ü† ò¥Ÿq0äTd«>ÙZ¾´»’´}Ë,CÃl…i%Ñâr× CzüRyô³ê½ôÙŠöú5»óN}˜N;j÷A•·òè‹Ýz¶Âfå±yÃa€íßÙ ‹ÚeçÙŠ³¥œ>}Z–Ï”âÆN«Ñ+VÏëטþB‘ö5¬jk²l)YäKB•YèµÂý|ù¥çÑÚ…~v@­© ¸´ÿL¡¯ºúCiN!´Qœ×ÂÐó´Â~¾¼kúÊ£†ÐšS¸£œB¯¦?e1®Vµá_ì]4­°Óv´„)§ÐÌBŸkO«Ìì[ôÌÒ‚VV©bý’0µVV±~yQ1®q­8rý0Li…—7h…þhòn¸˜ÆåÅ¿­QÍÜ4.;³¥¦‰QË2ž—×…ãüãj¥ö¢Xa*WÆ+".õÝ‘û˜Gýmý·©î¸k…öl…ûWµú’–ý³Z6 —uÙê^j½6$¶Y†úg+”›¸£O˜û³¦qyWy4Shß~bppÞ÷ÃÓ† I5½z\# `Ö!IB÷î©­÷®òhå`ñl…{mñºÕ˜Ö.ÿÎVXÔ.=²m³Õ”K+Ü¿†5ýaXÓ|N¨zZÍ žûÒóè‡Óúi;-¼ãÒc  õÕ£yxø’/m¡ÿ)o¾¼kîZa˜ó5M¶ÐŠ2¿®×›…êí/ÚMPvÚŽ6+¡7 2—iöíôÌJ+Ü+† lÔ‚¦îC…‘£©­Ö­ðÔ õÃ0Ã#Ûž0h…¡Ç¶¸èãRéße|»aƹsçîÞ½[ÞåJ+¯§ ]¯2ã²ÿµÆÈÁÕØ^{ic¶qÓ×.PW(‹Ë}™¯ˆ¸´N^ÿ.ê*# ÊdAÊÖôWA”V¨½4‘Ý\ˆµV¨Q„û)Öžep/5Â×Ó~êÿSƒ5­Ð;…_*²ƒæå}ÿ}Zø”e¡¡‹bcÖœbôè¬!ƒ“&LX4&;2rUøÔ"µÞSbʬ[a³vy§îßZØl5áö°øÖf¾­ÅSC;¯ˆ¸ÊÔŠrQ¦Vò¥?)¦ãÓ̺W¯ËÐþœ…EzWyä°C†$Nt9Å:5O‘¿IœbvÔÊä½wïY³\NQ¤æ)r²÷‰S$'mÒ'Éï•ÇbßòfÜ¢vÙ1 ;NaQ» uÉâf-ž6­]>j…r 5zT jÍ|YŒõX?Ýl¿òØ× ëèÊ[Qõÿ˜Ro†Šjj>6 }1^œFaªÚ³Z¡‰€ïZaášV(§ðñ&¨2µB¢ÐîƒÒË…Á;Ü×{¡Vh5­0½ )”V”·b\³ZqøðaÕ;vìèy|™­P‡R¨£IêZ`—}§Ðf+<Åeg¶Ô41zô‡5])iq~ƈî2Ô×oµ™ñŠˆKßÉ«_Ø6`xF[ÿ”Ÿ)Ú¡†’!_ÚI1dA}W©P·èèÃ*ƒ/ehsÈdQ†ÞU•/íÞ§„ø…s²÷h¿«îƒÒî}ÊÉÞ›‘¾ã‡eGÕ\†\ª*®ò¸ïë]Æ­k—fcÇŽ}0}7u ›µËÎiÕÿÀ¬~0¬ÿ¡f›­ÆpïŠ;~¡°™/Z!žn–ðù2«\³§Ð¢óº¢j]„:¦wÕ~£ðT˜Ý(LµBûh¡ÚGÓÊS.­(ó© }_n‚²¾â¨õê_Thr¡÷ m½Þ8ìdßNϬ´ÂS4­°#[ˬhE™£k/þ—„õhíbÆeçk ¿ŒÖd//m¤Z¡#C;qÙìäÕ&ÃoêÃöõQ+dÁpÛ¿>˜µB(¿Œ®mV#©»nfL[’¿©àü<…r Í;dMHpfNö¾ôóóÊ)*ºòø%ãeÖ.Í,<Ý¥œÂ»ÚåÅ­;†wE¹´Bû·/Ú»¶¦Ì) ï´Â"§Z+3¼—«òxýl…¡M]Zq©…µ‡Z„ñN+¬åþ0…FyµÂ‹>AÅQWü€úΡ\Ù/S+LÛ”A+L¿’B+¼ÐŠ’’’ã(ïuÜÓq$ u-¸hqÙé,S^<¥ÇNÆý—ô½ú>Ùå²  ™”YØA¢P$C¾Ô˜ÁSʵ–±ã~„ò–¡ŠE;”ŠÑfÙúXy4³ÐžÑVN!ëµsgø½Yå¦R•Çnj۩]Ê,¤:™¾+§ð®vy1Ö¾i×›…ÍVãÝl…©VXç«\¨º­åK[c¿òxñKPÖÑÙ¯¨v"µSQ/ÿF¡~Ì}ÅÁ¼iƒVè+Ål…Å¡4,Âø¢6¯8†^Bó Ãl…ia}‹žYi…ÅYÖ´Â"Œa«ÍŠp-kʼn ‘†sÂ6ª¡YÐ_ .N\vfK¯ÊŒ«NþÐ…¨Ÿòö„ö¬À*€~€¤O†ÃH'ïcºÏŒ\´Ê£F°úwC0ÃVy¿‚ZÍÚ%õ›«îï¾Ô®ò~ó Ù„öº gĺՄûŒÍ|•÷„jÃ{­òjQ™•çmT`Õ´M£+oEÕŸO\Y—/* c}“’iå±y”ørTy¯8†¾Bù…z¶B}ôÔ'xÑ3ûë¿l—Y1Ð ­;vLËÉ“'õñäyôËú5†NXÖœ:uʰ‹¶U¢Pׂ‹—¯5®ÊŒKß«ºtíæ*´ÿ.ª_Ö¯1ôäîôa$ 5@rÏ—Óø^†ú™*¿2~ik—×ÕIÓ Oµë’·ïN¨óbVÝåPQ¯ÙFqŽ7ü•}í_½ø’}?ve^’jZa¶ÂïX|ÅTAqÙœ-½ú2núݑ߱øÞ•Êsgüj­]´âº"Åå©—Oö/«ŠpÍjÅU‰ÙÒ«’*ϵ–ñ«µvÑjàŠh—|tqYeÿÒöÌ 5­0Õ ´Ð @+àZÐ ´Ð ¸â´â¯Ð´â»ï¾C² ¼ˆJ´¢À5ƒEÓ pì©ÜµbܸqN€k©êZAC°?¦ò»VÔúlñý¢b h\ËŒ1bðàÁC‡6lØ÷ß?f̘ÐÐЉ¥„……Mš4iòäÉááá‘‘‘¹¹¹6µbåÊ• Í@+­¸*wظqcAAÁ‚ 222rrr JY²dɲeË–/_¾jÕªuëÖíØ±cÅŠ6µB â éééfVZpåºÿþ£G9rDE¢ëׯÿñÇ×®]+ ›6mÚ¶mÛž={d«}­ÈËËØ¡cçÎóæÍ“ˆdZhÀUÆøñãENœ8qìØ±’’’ÃGÿôÓOÛ·oß¼yó–-[ÄÄ)T€riÅ¡C‡v_H||¼DáÉ,ì ÝŸoQðMè&ý‚ûëßm‹êuZŠVZpñµâäÉ“Ç?zô¨hžŸö‰Vl)E´bïÞ½‡.—VäææÊ.{/$11ñÌ™3Ê,Ôc­x­Ý’3g¶—ÈkÍæ#îC÷[8|J¿ }¸rõæ#«æ¯<°ÿЩ£×¡€V\L­8~â„8… Š6lذzõêU«VÉûÚµk7nÜ(fqàÀriENNNII‰a¸•’’2¡”I“&IS­8vâŒÅÐÝB+^hQ°cïqm ã_Ÿ¼Ò¦­´à¢i…Xƒ8…xD~~~AAÁÊ•+E.Ö­[§übÍš5bÀ¾Vdee;vÌðÈö¾}û¶mÛ¶uëÖââb P¦V¼ÑqÉÒµ‡Ôr|î¾Ï¾]e¡†¯=~òLí/ £ýAS6oÙ},½àçÿt_&ë´,\»µ¤ئâŸOÈÊ皻ˆŒˆ’ìÜ{<$z‡fðÔÍ»:‘¸ð§/¬Þ¼ëèŠ ‡_o¿Äý€hZV'N”±Pnnn^^žÄæÍ›E"vïÞ½wï^YÿÓO?mܸQäB>ŠnØÔŠÌÌÌ'N¹Ãç9~ü¸0ÕŠS§ÏŽ™µM^ŸX]¯óRê«Aû¢•Z Zc¡ßMßR°ú ûìÆ†í%òÞg܆©ñ»Ôš3gΆ'ìz©µË>ýz¥˜È®ŸŽ¿×m™XƒY0§Ï¸’!›öür"%ÿg œ²øç>!܈V h€0iÒ$qŠüüüüqÆ êy M+áÙ$LµB”^+òËÒ Q’—Zª©‹þzÂÆ£×­9ØvèòjѵaÇ´R­Z/ÕšIóvÍÞ®cÐ ÷¢hZ ¤¤¤,]ºT¯Û·o7hÅÑ£GÅ,V­ZeS+ÒÓÓÏœ9sÚ²I”©¯´):Trê¹æ‹?ûvÕñ“g¬µ¢öÅ?Ÿ2u‹^+ê´,ÜóˉWÛ¹?ô­iÅ¿Ûmßs\v¾ùâeë5î³ÂB+܈V h€³tfaÅŠejÅñãÇ·mÛfS+RSSÏž={ƲI”©òJ\ø“ŒùÓ ~^òã!k­W³oWmÞyTÔ ½ð—]ûŽwµN=sñË¡“ WXPô‹©VÈÂÐð-²×Òµ‡&ÍÛicÐ ÷¢hZ ,Y²dåÊ•ej…zÛ¦V¤¤¤ˆ;xŠQ6Iw­0}½Ôº°\?ôúFÇ%ïv]føíYÓùÃ?Úû×ç6£0=  ­@+àZfñâÅJ+Ö®]k­%%%6µ"99Ù:R÷ÿÿbó+­ðêU´b×®]hZh€¿´âðáÃåÕŠüüü˜˜˜3fŒ?~ôèÑ#J‘ù(+e“@+­@+,´Â Ð @+Ð ´Ð ´ЊK«hZÁh Ð  hZ€V hZ€V  hZà7Jö;ó®¶×á}œX´­¸xÈ üsÇÕö’LZ€V\d­Vû*™§Œ hZpI´âª‡_eÙ@+Ð Æád­@+Ð ²€V €V h hãp´­@+‡“´­@+ÈZVZV €V ŒÃÑ ´­`NvÐ ´àÚÖŠý%ÇÂr—^†¯}‡KÐ ´­¸"´BðŽæ—áK†V hÀ¤µ‡Nº|æ)$1hZ€V\qZaÃ_RÌ“„V hZV hZV hZV hZ€VT˜V$l£ÆZÁh Ð ´­ð‰JÓœ–Ri­`4h ­ðI+ÁÎoЍ7€V 4´Â'­×ø5T@+Ð @+|Ò y YFí´­´ÂS×9kÏ=÷úÃø_µB^‹Kr†ýxm½ö£Ù Œ¦­ ! åClB¯ú—XFël[¯Ö—˜ & 4´Â;­pŸ­˜µñÚš­PEV Œ¦­ ! Þi…¼;uÏVˆ_ˆS\kˆP h£)@+Ð ´Â/Z!Nqmþ_<´­@+­@+Ð iEôæk´² hZhZ€Vø®θ¦ÕhZVZV ¾kEÁÞkº² hZhZ€Vø®×8hZVZV hZV hZV €V h…_8uæÌ]ݾ“ôh/ùxjü®Œh¯6p–ìG+Ð @+Ð ´Â=f§êµB>:W&\ ãù+.´­@+Ð @+Ð €«R+ÖìÞ§× ùè}Zmüøñò±{÷îžöòDÛ¶me—ßüæ7îz €V pyjÅ™3gþüç?«a̦M›ôƒ"µRD@>víÚU–ÿûßkMhXh…Å^ž8tèÐõ×_ÿÇ?þQs´Ð ´‚"¸ÌµB˜0a‚ÆDGGk+eü£V6kÖL>Š&¨Úÿª;yò¤’ ­°ØKCFV™™™ò®>ŠMˆæ|ðÁ×xeA+Ð ´Ð ´àÊÒ ÉË0^=µ-Ã~µrãÆz­Ø¿ÿwÜ!Ÿ|òÉ+V,]ºô£>’1’lzä‘Gd}ýúõ¥Ïh«½ÆŽk½—†_üãÿX·n|Ÿ÷Þ{íü-ZhZ€V\>Z¡xñŃ‚‚f̘ñúë¯ÿîw¿{çwrrrT€üüü*Uªh¿F»dÉYrýõ×ËšÛn»MBöêÕKxâ‰'¶nÝêi/=¹¹¹êŸkÿñ|ã7ZµjeúŸ/Ð @+Њ2‘kJ앉¤œjW‡V(Š‹‹SSS3226oÞìþ@Ä™3gd˜$¤r³Ì½$ÀŠ+Ö¬Ycÿ ´Ð ´ÂŸ½2‘”S àjÒ @+­¸Òµ"44ô š§Ô¢€VZhÀå¦WÖýJL3 €VZ€V €VZhZVZVZV A+¦L™òî»ï¾|ž-ZH“¼„yLHHxþùçïºë®7ß|sùòåh €VZpùk…0}útÕ þú׿;v¬Â¯óyy½zõ2ÝéÐqë­·JŸ€VZh —¿VhÿÚõÕW_­è,Hë¾ë®»Úµkç¾Išy:u¢££/^üæ›oª$ 6 ­´Ð @+®­Æhñ?X÷ìÙ³{÷n;ñÊAž|òI‰ÈT+ŠŠŠ6mÚ¤–%;¿ýío%d=Ð @+­´àJÔ 9Ô 7ÜpÝu×µnݺiÓ¦¿+å½÷ÞSÿuúôé7Ýt“l}ë­·Þyç;î¸Cö}óÍ78 ‡½þúëeSçÎ÷ïßÿþûï_WJtt´ìØ»wïo¼QßyçÏ=÷œ4‹DVªTIBΟ?_ŸæáLJؤW³°Ú×»%Í­w ìêfß¾}hZV\d­{ì1Ys÷ÝwçççÇÄĨÉÉÉjk:uäãm·Ý¶nݺ“'O>ðÀò±cÇŽ²éÞ{ï•åN:9KoyR;*­}ôQO³zöìÙ#ÁjÖ¬)Í_ŸæF9üK•'D+\ïpU#fV hÀÅ׊jÕªÉÆË²´A`âĉj«„”¯¿þºúøÁÈÇÛo¿]–|ðAM+¤{§:t¸ãŽ;¤70¤ù*ž­¨]»¶”Œ¼ó"³P,ZV —\+NŸ>­Œ?ÞT+ºuë¦H›õ]+ŠŠŠî¾ûî+VX¤ùêC®we^õ |ðlØî`Ñ ´­´ârЊ€€ùø›ßüæäÉ“>j…4ÿçž{nݺuêcNNÎúõëÑ @+­´àª×ŠæÍ›ËÇ¿ÿýï²\¹re¯µBÚ»8ÅÈ‘#%m²Ë„ î»ï¾C‡¡€VZhÀe®™™™ªA=ñÄZ˜GyDÖÔ¯__–;¦È^z­¨T©’4Ò“'OÊà_>†††Ê&u «½¢¢¢ >R³fMùøâ‹/._¾|Ò¤IúT‰¼Ô«WÏð„Ý?ÿùOÓ4£€VZhÀå£S§NU¡øøãW­Zrýõ׫ßzÊÉÉéÕ«—æ[·nÕ´¢jÕª/¿üò=÷ÜsÝu×uéÒåìÙ³²)!!á/ù‹z‚»_¿~²pÿý÷¿ñÆê¾&‰WÖÜpà 7VíZ£k×®î?ÜÑ´iS´Ð @+­¸ÌµÂ;ô7AIû•Øõ[OŸ>-MûÔ©S² ÿ5'ÅîÝ»÷ìÙSÞÑ @+­´à2ÔŠÐÐÐXo©Zµªš­ˆ½XHjÑ @+­´àrÓ ¯3fÌwÞ) ð–[n9r䨋Zh €V\&Z‘››ëËÄA§NÞ8OÆ çÌ™sÑæ,òòòÐ @+­´àrÐ @+Ð ´‚­@+Ð @+Ð ´Ð @+­@+­@+­´­´­´Ð ´Ð ´­ ƒE+Ð ´Ð ´­´Ð @+Ð @+Ð @+­@+­@+­´­´­@+è`Ñ ´­´­@+­´­@+Ð @+Ð @+­@+­@+­´­´­ ÀÐ ´­`4h ­´Ð ´­@+¸ê¡h €V €V €VZ€VZ€VZhZA¡€VZV hW=Š­´Ð ´Ð ´Ð @+Ð @+Ð @+­@+­´Ð ´­@+¸êZh h h €V €V €VZ€VZ€V €V hZÁUÐ @+­@+­@+­´­´­´Ð ´Ð ´­ ƒE+Ð ´­àªh €V €V €VZ€VZ€VZhZhZVÐÁ¢hZ€VpÕ´Ð @+Ð @+Ð @+­@+­@+­´­´­@+è`Ñ ´­@+Ð @+­´­´­´Ð ´Ð ´Ð @+Ð @+Ð ´‚­@+Ð @+Ð ´Ð @+­@+­@+­´­´­´Ð ´Ð ´­ ƒE+Ð ´Ð ´­´Ð @+Ð @+Ð @+­@+­@+­´­´­@+è`Ñ ´­´­@+­´Ð ´Ð ´Ð @+Ð @+Ð @+­@+­@+Ð ´­@+MZV €VZV h h €V €V €VZ€VZ€VZh… h ­´Ð ´­@+¸ê¡h €V €V €VZ€VZ€VZhZh €V hZÁUÐ @+­@+­@+­´­´­´Ð ´Ð @+­@+Ð ´‚« €VZ€VZ€VZhZhZh h hZhZV \õ­´Ð ´Ð ´Ð @+Ð @+Ð @+­@+­¸FIýÞ¥Ãj»ÌÂó+lò(—VLeŒ×eý:¼­@+Ð ´Ð € !²ƒK+Êz…µxÂ¥-ž°˜×eú²œ“B+Ð ´­@+À{ÔMPÌV\Ý/9¿h h ­<[qÍŸe´­@+Ð ´Ð @+­@+­@+­´­´­´Ð ´Ð œhZV hZVZh h h €V €V €VZ€VZÀ€­@+Ð ´­@+Ð @+­´­´­´Ð ´Ð ´Ð @+Ð @+p¢hZV €V h €VZ€VZ€VZhZhZh h  8Ñ ´­@+Ð @+Ð ´Ð @+­@+­@+­´­´­´Ð ´Ð œhZV h hZhg­´­´­´Ð ´Ð ´Ð @+Ð @+Ð ´­@+Ð ´Ð ´­´‚³ŒV hZhZh h h €V €V ZV Œ¦­ ! €Vp–Ñ ´­@+Ð ´­´Ð ´Ð ´Ð @+Ð @+Ð @+­@+("´Ð Î2ZV hZAQ €V€Z±é<"ÅÅÅ@+Ð ´Ð @+À¦V¬Y³fÅŠEEEYYYééé™™™²,~±wïÞ#GŽ hZh `­Ë—/_¸paè´¸×:„ÿåÝi¿«?ç/m㛞?qÚÜÜÜÜ;v=z­@+Ð @+­OZñÃ?,X°àƒSOw¼5ÛÑ4ÕÑ­ÀñõÒ?ô)¨¸ð« ø¤¤¤;w:t­@+Ð @+­w/^œ——×¼ÇÇsãj÷Ïq´Ërt/r Zùpð†7·4ÚöѸUýÇ'dee£hZh `Ròò¦Ïš_§yDû‰…m#Ö6š¼ÎÑwÅÍ#Ö¾£t¶báf+Ð ´Ð @+ÀB+ª¿:hΚïSvpÍVßþÝÆGÆn{uÊÞcŽ´d¶­@+­´lhEwBÌ^34iW¿ÄâžqŲñ£¶½2ioÃÙGš%m›y´í‚#oG+Ð ´Ð @+ÀJ+ú»´b§K+æÿyðÆÊ#·½4iÏQ‡›'–jEæ‘7F hZh `¥ç¬vî&¨=· ÝôÏÑÛ^›¼çÃÙ‡¿H9Ú!çh§ì#oD+Ð ´Ð @+À£V<ýnèàÒG¶¥÷ž_|÷°MU]?0»÷“˜ÃmÓöX(¯#õG£hZh `¥ßŬ•¾shZq`Bq¥á›ž ÙöÞŒ½-âw^p´w¾ë?â5 B+Ð ´Ð @+À£VÔ|/tøÜÕc3v~Ÿ^üuRqå‘›ž™°­Á̽mâ™sô›¢’~…%Ç¡hZh `¥#ãVgî± øÛ”â‡Çlz!lÛ£övL:Ü'ïè e%C–ùtZ€V €VZµâ™ú¡c毟½stVñ€ÔâÇ‚6½8e[“9{»¥î·¸dø yi1qZ€V €VZZ”°zbîα9ŃҋŸ·éÕðmŸÅî H?<¸¨dÌê’ UGZMB+Ð ´Ð @+À£VÔz?t\ÂêIy;ƒs‹gW›°ñé[[ÎÛøÿÛ»ðªÊÑû‘©´~íçhOµ:­ÓN§ÇQ‡9Ãçåpp,”ªuЪUK±Z¦bÇ»¶¨(Þ¹‚$€ˆ¨xáF . á‰$@¸d'p$Ù $ ß›¬š“r‰‘‚$ðû=ëɳöÞkíì°óîõþÙ—Ì+¸"ž´6>Ⓤ?¼)+@VÈ @V +8lVü]F Y±pKbZ¬ÏœØ¿ Ïÿé[…wM)y2µ¼ï²xbN|XvE7dÈ YÈ deÅгG¤Õ¾·âÅÙ±‹‡åwSØmbÉc³Ë_ȈÊ KÅï^— +d +6+ÚÞ0rð´ì׿o47öü¬¢Ÿ Éÿߣ o_òàÌòÞ‹ã}3ãýWVtóIP +d +4š¯LÉNœ»e`jíß­øÇÁù—,üå{%ÿ\þøÂÊç—ÅÃrÇpY²BV²YÁa³âß~1rÀäìWçlé7'öÔG±ï ÊÿפÂ.ï”tŸ^þðüʧ2âO-‰ß2LV€¬€¬@VÐXV¼8!§ÿ¬-Ïψ=>­øì~ù?yµðš1%¿šï>+~ÿüÊæW\;HV€¬€¬@Vpجh{ÃȾs¦lî3+öäôØùýó4´°óØ’_O­¸wNåc‹+]ïòª¬Y!+Y¬à°YqùŽê?1{ÐìÍýf=•ûûùÿ2lãuo—Ü=­â¡ÔÊÇÓãO,®¸9QV€¬€¬@Vpج¸ò¦Q/O\3xö¦þ³‹ž™ûþ+yÿöÚ†Çÿ×ôòGçÕ¾±âéE·[ýþûïË ²È 6{öì¿}ä c—½’²±ÿì-½“·žÑ?ç_†¬ïòNÑï§ï|,µ¢÷âx¯¹»î¶lòäɲd…¬d²‚ƒÍ›7¯Û£cþÐ'¥òº?*üÓôÍ /­ùá༟Ýô›ÉÛL©èµ þÈ”­=‡Í™;w®¬Y!+Y¬à¿‹½ýþô¶wŒýíðô‡ÆçÝ4zmÂSY ý?¹,© Ë;[ïšRrßôí·]=ê­‰kÖ¬‘ +d +lÉ’%¡,îzì„Ë_kÿ삄ߥ&<œ‘Ð{uÂ+k/¶®ãù^^ùTâ‡óçÏÅb²d…¬d²‚ƒedddffÎ;÷׎I¸dX¿K¸)9á÷ ^’pß‚3š÷Ø«Óf̘±eË–²²2Y²BV²YÁ!³bõêÕ«V­Z¼xñè·¦þôž1ßê4úÔŸ¾û­;'ÝüÜäoM^¸páæÍ›+++ãñ¸¬€ú¬(**š?~ïÞ½Ã×°.+d +Ü˲BVdggçäädee-[¶,Ì‘æÌ™3oÞ¼°žŸŸ_RRRQQ±gÏY ³"Œ”GydذacÆŒYºt©¬€¬p/Ë Y²bíÚµëÖ­Ëÿ̦M›b±ØÎ;ËËË+++eÏ?ÿüø –-_ÆÎªU™²BV²Â½,+dE}Vlذ!ÅÖ­[KJJÂi×®]²™K—.]¶lyEEE Ñx1d +Ü˲BVÈ øBYQTTÆKYYY,ÅÅŲBV²Â½,+d…¬€/š> JV²Y¬Y¬Y¬@V€¬@V€¬@V +@V +À„SVÈ Y!+d²BVÈ @V¸—e²d²d²Y²Y²Y¬Y¬Y!+d…¬²Y!+d +Ü˲BVÈ È È dÈ dÈ d²d²d…0Y!+d…Ù²Â@€¬p/Ë Y!+@VÈ Y²Y¬Y¬Y¬@V€¬@V€¬@V +@Vø'’€¬p/Ë Y!+@VÈ ÿ +È È È dÈ dÈ d²d²îeY!+dÈ YÈ d²d²d²Y²Y²Y¬Y¬NYá^–²BV€¬8 ³¢]»v¯Ãë¯oÛ¶Í È dÈ Ž,+ ây+Y¬@V€¬à”––ú/z‚víÚÉ Y¬@V€¬þÞe#+È €¬È dÈ @VÈ d²d +îeY!+dÈ ²BV + +Y!+È €¬È dÈ @V +Ü˲BVÈ  +È dÈ @VÈ d²d +d²Y²&œ²Â½,+d…¬Y²Y¬@V€¬d…¬@V +@V²BV + +YaÂ)+dES²¢Ý”Ú•–¸l«’²d +dÍ"+ZîâyY²²‚㞥{Zêóí¦È Y²²‚f‘-øAûBdÈ @VÈ d…¬ +Y!+²BV€¬d…¬²BVÈ Y¬ +îeY!+dÈ @VÈ d…¬ +8é-\¸pr‹n¼¬²BVÈ Y!+²‚ã.L·¶XáÆË Y!+d…¬²Y!+h&Y1räÈ–õz”¾æškŽé·Ç‹óÎ;ïøÃ!/MOOß±cÇ·¿ýmYaÂ)+d…¬²d'XV„‡÷0Û?ܵ5åû†+¹ôÒKÃw9\VD.»ì2YaÂ)+d…¬²d-=+Â/gëÖ­O9å”{î¹§[·n§Ö¹á†jjjö×½bêôÓO—^{íµ×_ý9çœvìܹóÎ;Ã¥áš[µj.}ðÁKKKo¼ñÆSêLœ8ñÉ'Ÿ<í´ÓÂÆçž{îW\(G<^Ÿß"+d²BVÈ Ðô¬.ºè¢pòüóÏOOOŸ4iRtéÌ™3£KÛ·oNžuÖY¹¹¹ÕÕÕßûÞ÷ÂÉûï¿?ºô;ßùN8ùÀì¯{ÕS´oÈŠpòŸþéŸþÊg+n¾ùæãõù-²BV +d…¬Y_(+Ú´iN†9|XêÑ¥£FŠ. ›…“;vŒNÞrË-áä7¿ùÍèä÷¿ÿýú¬‡†£›_Ú³~‹¬È Y!+@VÀgÅÞ½{£K“’’™<òH´A8 ë¬øÒÞ[ÑÄ^²Y!+dÈ dÅQÉŠÇ<œü›¿ù›êêjY¬@VÈ Y²YqYq×]w…“?úÑ¢“ÿðÿ +È Y!+@Vp²eżyó¢Gé‹/¾8:ç / '»téÖ«ªª¢KÃ^ ³â»ßýnxد®®¾à‚ ÂÉ‘#GF—FïJÛ„?øàƒ†IÒ¶mÛ°~ÕUW­ZµjôèÑß¶0gœqFØæÌ3ÏüôÓOe… §¬81ïåþíjWNÔ¥|›¬ +8 ³âÍ7ߌ""rÇw<ýôÓ­ZµŠ>ë)--­gÏžõѱqãÆú¬¸ä’K:tèðw÷w§œrÊC=T_ÉÉÉßúÖ·¢7q?÷Üsaåïÿþïö³Ÿåææ†ïN¶nÝúöÛoŽLÑ£wGî¼óΩS§Ê Y!+NÀ{ùÄ^üË Y²‚“'+Ž@ÃA…#Bø}>`ƒ½{÷†ãEMMMX ‡‰†—›-+dÇ_¼ôD~ž¢;Y!+@V +¾hVòOr7ç›-+d|ɿòBV€¬à„ÏŠ‘#GN>"“&MŠþàÝgœ1~üøÉ_–pƒe…¬È Y!+²‚f•G¬k×®í>Ó©S§ÁƒýÉ Y!+²BV +dÍÁÂ… '·X‹-:²¢ù¼¼¼ÁGÖÈ ²dÐ’²¢ù|N³úó²YñUU×È ¿wÈ Nö¬8¾ÝÐGÖÈ hqY‘úIA¯)©²d…"8©³âøNé›á;–ÈŠ/ža8<>iެYÈ Y!+MV´Ä² +@VÈ YÍ-+Z\YÈ  +d…¬€f˜aiAï³ +@VÈ YÇ1+Þ\œÙ®ßèh¹¸÷°†Y–ß½95ŒŽã¾l+Ë €¬Ðl³"ÔÄ)Ñpù_}_oäÒ/mùÜ*+@V€¬²šCVülE÷±Ó–nØr|Ÿ§ˆnž¬YÈ YÍ?+Â×ýùÞŠÇÆ§ÔìÛwü<›6BeÈ ²BV@sËŠæó1P²d +d´Ä¬è>vZsxžBV€¬d…¬€šÍäµO²d +d´Ð¬¨ª®ivž²d +d´¨¬hŽž²d +dÈ Y²²Ž‹’¼Ú_Ý1wÖþ‡¯a=ñ5ûö¿™»ÿιµY¾†²KÍW„¬È Y²BVÈ Nجø¯¯Ôþ×/ïüÑnJmSÔ/m'É·’²Y!+@VÈ YÁ «»ÿÛ~sÿîòƒ"¢W@Õ/‰kd…¬Y²BVÈ 8è8ZÞê~ȇˆòêýÿÏÈ?7Å×’ö—dÈ Y!+ êªýŸý笨{cÅ!"î[øç¬¸9å¿¬È Y²BVÈ NdïÝWû;üô…û÷Õ”––ôíÛ7ú0؆Y±wïÞè “’’Ùå`Ë–-;ÿüó³²²Zú• +àdŽû ?Èñúë¯?ìTVÈ Nûöí;óÌ3£„ú·NGsãèÌÑ9?üp8ùÕ¯~õàÿ‹8\V4²Ë”ûŠ+®LKKËËË“~?‘4[ÉÉÉ ³bâĉ²BVp’1bÄÁayçwFç„LˆÎY´hQtNuuuÔ ‡ËŠFvi(̱CS 4hòäÉá6„ÛsÁ4|«¸¬Y47á€~ÞyçEG®³Ï>»ªªJVÈ NrŸ~úé-·Ü½k;Lû£3ׯ_@V”––žsÎ9áœK/½4++kÅŠ·Ýv[ô>ˆ /¼0œß¥K—ýuïìŽv:th#»Ô òóŸÿ<á/ýä'?i¹#TV€¬€“Äã?¹ºwï~È ÂL    oß¾a›ð5¬‡s>ÿzã¥û·ìŸÙ·6Â×°–x©¬´cÇŽ pÕUW%&&¾óÎ;;v<õÔS¯¿þú´´´úmÒÓÓðƒÔ íòåËÙÇoÕªU8笳Π÷ìÙ3Úàâ‹/Þ¸qã!wi(z¡Ôºuë&+̦4s999Ñ‘+¬rƒ^½zpˆç|þõNíU› ,S{É YA ‹ÅRRRRSS ù†ˆ}ûö… s˜*7ý:`—=BeÈ 8y´­s¸K£g+úÏV°x¶BVÀI6BeÈ 8aÕìÙ_UÖpI4 ,œùe,}¯¬ÍŠð5¬×ìqÏÈ ²Y!+ Å8èåI¥¿©]ñš¥/s™ú”{FV€¬È Y-7+šÅ"+dÈ Y¬ +d…¬#TV€¬€“GÍžý»Ë›Ýâ½²d…¬@VÈ YF¨¬Y +Y²@V²d²d…¬@VÈ YF¨¬Y +Y²hš;vôìÙóºë®»ýöÛ{ôèѽ{÷÷Þ{oĈ#GŽürn@QQQ¯^½:wîì¾ +dÈ h‰RRR¾]'à¢sòòò~üã‡ãWbbâ±þîá {Ûm·µnÝ:|»K.¹ÄÝ!+@VÈ ÐâäççŸvÚiáP5nܸ†çÇb±3Î8ãKÈŠôôô;v„¨‘²d…¬Y-Ô5×\ŽS_ûÚ×±쀋† r@V…Q|¸« ÄŸßø^‘Ë.»LVÈ ²d´D¥¥¥Ñqê‡?üáÁ—îÛ·¯¬¬,ZÏÉÉiÓ¦ÍÕW_Ý¥K—ð5û¢ÁÞºuëSN9åž{îéÖ­Û©un¸á†šššFö’²d…¬Y'’ DÇ©+¯¼²‘ͪªª.¸à‚a¥ºº:¤D§N¢‹.ºè¢°ûù矟žž>iÒ¤èÚfÎœÙø^²BV€¬ +à„Q—_~y#›½ñÆa›óÎ;/:yî¹ç¶jÕ*z]S›6mÂE7ß|sXÇÁèÚFÕø^²BV€¬ +à„‘››§¾ño|úé§Ñ™ƒnÛ¶më:§Ÿ~z×®]xà°Í׿þõ_ÕéСCûöíW­Zu@VìÝ»7º¶¤¤¤pòÑG=Ü^²BV€¬ +à„±oß¾3Ï<3:Tåçç7<ðEg†'~øá°þÕ¯~µþMõÉŠFö’²d…¬Y'’#FD‡ª‰'ÖŸŽqÑ™wÞyg82!:¹hÑ¢hƒêêê(ÉŠFö’²d…¬Y'’O?ýô–[n‰Þµ¦ýÑ™ëׯo˜¥¥¥çœsN8y饗fee­X±â¶Ûn ÇÁpÑ…^ÎïÒ¥Ëþº÷hG{ :´ñ½zäŒ3Î[žyæ™õ¯ÅBV€¬È Y-ËØ±cC\uÕU‰‰‰ï¼óNÇŽO=õÔ믿>---Ú ==ý?øAý§Ñ._¾<œ9|øðV­Z…sÎ:묰eÏž=£ .¾øâ7n¯ů¿uM}ÈL:Õ="+@VÈ ÐBÅb±”””ÔÔÔ‚‚‚ƒ_­´oß¾p( Á/tG¶²d…¬Y +À• +d +@VÈ @V€¬@V€¬È Y +À• +d +@VÈ @V€¬@V€¬È Y +À• +d +@VÈ @V€¬@V€¬È Y +À• +d +@VÈ @V€¬0i‘ +̦²@V€¬ +d +@VÈ @V€¬0id…sd… +@VÈ ² +d +@V˜´²d²d…¬Y +Y²@V²d€I +@V +@VÈ ² +d +@V˜´²d²d…¬Y +À• +d +@V˜´²d²d…¬Y +À• +d +@VÈ @V€¬@V€¬ +d¡²d€¬dÈ YÈ È ²Y!+d¡²d€¬dÈ YÈ È ²Y!+d¡²d€¬dÈ YÈ È ²Y!+d¡²d€¬dÈ YÈ &-²NÔ¬(..– +d¡G1+vïÞ-+@VÈ 0BiÉ’%MÌŠŠŠ Y²@V€z°åË—7’;wî” +d¡o–ššš••ÕxVÄãñ………²d€¬#ô`ÉÉÉ+V¬øÜ¬¨¨¨ÈÉÉ‘ +d¡{óÍ7ÓÒÒÖ¬YÓxVäççgeeÉ ²ŒÐƒ5jÖ¬Yééé999‡Ìв²²p2D‡¬Y +À=¤¤¤¤P©©© .ÌÎÎÎÏϯϊíÛ·oÛ¶mýúõ!(b±ØªU«dÈ YFè!çH;vìØ¹sç’%KÒÒÒ>þøãyyy¹¹¹YuÖ¬Y³aƲ²²ÌÌLY²@V€z°aÆ…¦¨ªª _×®]»råÊåuÂÊêÕ«Ã9¡)¶oß^YY)+@VÈ 0B)11q×®]{öì áPVV¶eË–ÜÜÜœœœyyy¡)ŠŠŠÂ»wïö"(²ŒÐF²¢ºººªª*‡²±®NhŠÍ›7oÛ¶-ú»²d€¬#´‘¬¨©© áPYY "LBPäççoܸ1$F8ŠcÏž=²dÀ±›´´ë7:¬X,–æ¶„±ù…²"„Cô„ÅÎ;³²² 6mÚT\\\ZZŠCV€¬8¦Ya±XšóÒ”¬±wïÞº¬Ø²bóæÍ7ÝtSFFFX Y.ÝSGV€¬8JãUþCØbiæË¶òxÓ³"zT¿~ý®¾úêûï¿?ÊŠè ݲd@³béÒ¥;v YÑ¡C‡I“&•””È MÏŠ²²²»ï¾»>+n¼ñÆ 6È MÏŠ·Þz«S§NõY¾0@V€¬hzVÄãñŠŠŠÐ›6m*((ðÞ _4+¢·l———‡ Ø°aÖ-[¶mÛ&+@VÈ ²d€¬Y +dÈ €Ã5jÔ Aƒ† úbذa£G7nÜ»ï¾ûÞ{ï}ðÁ&L˜ùdïÞ½Ÿ}öÙçŸ>4ÂСC‡ 6|øð¤¤¤Q£F=úwÞ™={¶¬€¦dEJýúõ{饗^|ñÅ^x!| ë}úô ƒeðàÁãÆ›8qbrròä:S€–oÒ¤IãÇÇʱcǾÑr„[ns¸åáö»áM-Âc„ a²1f̘0“Sú0?I¬3´iV®\ٔ͢dW>räÈÙœJV +ÉŠ^½zedd„“¥Ÿ ë[·n Ã<»§M›Vf̘1kÖ¬”””ìs€–,Œåpø8dô­÷½Öù·¯_ÓuÌOóÖüæ­kº¾õó»Þ˵w×~ýYX~ûv§;ßîxçÛ?íöç Â6îØ­öÌN¿­ÝàXïÖÙád§;ßúÏc»>8"ÜòpûÃOᮄ-Ì(¼"Œå0Ç30߈þsÛ¶ma*²s×Î]M–••u¸‹vîÜYÿ5Z “œ!/¾ø¢¬€£žÏ<óLjjjyyyUUÕîÝ»ãñøŽ;Â`Ÿ:uêG}VÂ¥óçÏOKK[XgÐb…±<~üø›îÒþîq ™ßçýÌ—§­í?=¯Ï´¼§ä ™•7lvÞksòg×®š‘70y]ÿ×õ¶.\úÂä¼ç&¯{i꺾Ó×½œ¼nàGëÏ8滼45¯ï´¼þÓs_žúÉKïeö–öóûjoø)ÂÏâ…–+šT„ÙEËa¦æaÖ1eÊ”Paþ&${öì©®® ö~žo®¤:ØS®3LxBÔôéÓGVÀQÏŠgŸ}6 áeeea¬…_±bŤI“fÍš5wîÜ0ä?þøãŒŒŒeË–…óW-VÅa\ßðûÄÜòÖ3“²¥l2gÓ«s¶¼2gë€Ù[ûÏ,JJ+µ°hô¢¢‘ ·&-Ø:lÞÖ!©[Õ]ÚoVQŸ™E}fõŸU4`vÑà9ECçn6ë±Þ¥neëà9[‡¦n2§pàŒõ¿Ÿõ½[ß¾öÞa3gÎ ?‘»Z®0¯£8Ì1ÂL#Ì7æÍ›ÆõĉÓÓÓCYDÿÛ¹§ V¯^ý¹Û„«Šþæ]qqqrrr¿~ýd‹÷V„¬(**Šž ܲeKô2‰ „qÆ{ffæš5krrrÖ®]››››´Lá þêˆw.Öé•%/~T80uëÀÔ¢sbýfÇ^š{î£Ø+s‹__<$-6x~Xõ¯»èÅY±çgÄžMŽõþ0öLrñs3Š_˜{)%ÖoN,ì{¬wynF¬Ï¬Ú†%uë˳·ôþpÃuC2þgÒà¤qá'r·B fa^faŽfa¾fiiiÑ‹®ÃEåå•••Uuv×%F°sçΤ¤¤è_× Y±û/•——'&&†©Ní‰Ú½«Â.¡)ÊÊÊ·þè£ú÷ï/+à¨gE©©©ëÖ­û?;v„3Ã?þüŒŒŒpÈÎÎÎ0??Æ ›6mÚ ´L………K—.mÿÛ¤„ÿxÿÍzâÃÍÏÏ,z!¥èù™±Þ3bOLýijìÙYEÏÏ.zaNѳ)E½gÆz͈õJ®½èñiÅšRüÇ)ÅMŽýqJ¬ç´Ø“Æžú(ìXt¬w gö ¡ñQìùY±f=;cëcS ¯JÌJ¸vBûß ?Qø¹Ü¹ÐB…yÅÆÃ#Ì4Â|#ÄE˜{,X°`úôé+V¬Øºuk¨ƒxÊ:!:ºvíÚ©S§ús"Ÿ|òIå_ÚµkWØì¶Ûn 3œøgBSÄb±U«VÍž={ðàÁ²ŽzV 2dáÂ…¡&b±¢0„Cò§¤¤,Y²$Œî0NÃ`£¾¨¨¨¸¸xÛ¶mÛ·oÿ?@ Fq8"ó§#nŸ™Ð+3¡ÏšòIûám†æÿdPþ·äÿ>ùÿräHYG=+Â×¥K—ææænܸ1ŒÄ0Š,X⢰°°¸¸8jŠ(%jjšô9o@3ŽÝáÀzÃÓùøš±…wOÛöÀŒ²gÅÿ0£âwÓ*ºM®¸åƒòGf–õœ½ë‰Ô²?Î.{hVÙ}Ée¿Ÿ^vç”]·OØuóû»n|¯,,·Ž/ûõ¤²»§–Ý3½vƒc½Ë­Ê»N.ÿ¯+þ{FÅ#)ñÚí?Üöë÷7Ó{ÙÏOÎÌÌ ?—;Z¢hRQ]]}¸}˜o”””„¹Gôß›YYYyyyaZ&'õïÅHNN¾õÖ[›þlE×®]SSS£7q„kŽ$\FFƨQ£dõ¬HJJZ±bE4$ÃÐ +¡2Ö¬YÖ·oß^VVVUUF}xØ÷™O–& á0ƇŒx÷̇æÝúîæGg—?½ ÞkQåŸÒ*œWù‡”Ê»’ãÏ,Š¿”ï—áãøÓ ã/ˆ?œ¿?%Þcf<\ú›éñnÓâ¿KŽß;3þàœÊ?έ|"­òXïò»•÷ÎŽ?4¯òñ…•O/Š÷^ï5¯âž©Emž^ïùq<ºô÷©•÷Ì©¼^å£ +Ÿø8þLFüÅåñc½Ëýó+[\ÙkIü¹eñ¾+â//‹?³ üŽákyeò‚ ÂOän…–+ê‹0Ç3ŠŠŠ0ësŒŒŒ¬¬¬‚‚‚aZ²cÇŽú¿‘}8ùùù\º³N¸ò0ω^gµjժѣGË 8êYñÆodgg‡#:Gº"ú[±X¬¬¬¬²²rÏž= Ÿ­Z¢êêêp˜ž4iÒÃ&Þ:,û‘‹ž^°+dÅñÇÇïK‹Z]‘øIERnÅœŠ«+ú¬¬xvYü‰%ñGÇH‹÷˜_»<°(þÇôøSKãÏ-¯è»ªâXïòàÂø×®<v_´ó‰±»G­}|ÐÄðSlݺ5üDîVhÑÂì¢þÙŠ0ës•+Wnذ!Eôé²á¢Ï}›F(…Ï}Gô&ŽÒÒÒ0ÉÉÉÉyóÍ7eõ¬7n\¿aðÖ¾0ŠCчAr>ŒñQY„_ó/ …–([ ?üðÃCÇÜ÷ʇ¿y5ý–¡Y7%fÿâÕì΃²ïz}Í=o¬¹÷Í5ÝG¯ùí¨5¿NʾíµìúK:°v¹vpv—!Ù¿–}ûðìߌ8æ»D+7'fß–˜u×Ð% ·|t¸ýá§?‹;Zî»*¢7V„ÙEôg&Š‹‹CPdee…i8¦"Mÿ”˜‚‚‚¦ÿ•í;wnܸñÝwß•pÔ³bΜ9™™™¡ ÂX^Õ@V°’››Ûð/VìZ²0œóóó/^+üµtàÈÔgÅÝG¤>+|pBJÈ @V²€¬€¬d +Yာd +d +YÈ YÈ @V²@V²€¬€¬d +d +YÈ YÈ @V²@V²€¬€¬d +Y!+YÈ @V²BV}Vú¬YÀ‘I8Þþ™Hu¨ endstream endobj 568 0 obj << /Type /XObject /Subtype /Image /Width 1053 /Height 678 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 2604 /Filter /FlateDecode >> stream xÚíÔëJÆá¾…QD$Ñ9ŒÂ̦sʞꇛ§ˆˆ ˆ""*Ìú‡òм‡òN:| ò¿ùUžç^x·;^Ì~ýñà¯ïç…Ww: ¦þuQè¼ÛõÍÀUç]÷º/Í\uÙÝÑc ê¹ßk ê}0%öˆú¥ŒD©ÇƒF¢Á'i#Qº3c Ê<6 ?5>7¿Ìˆ²¯'ŒDo¦ŒDSosF¢\×´€húÝŒ€hæ}Þ@”ÿ0k ší.ˆ ÝsF¢¹óF¢ùO F¢…Þ%#ÑÒç’€¨”(ˆÊ}#Q¥¿j ª&Åh‡š€¨6P7ÕÅh‡Ô²€hyP€¶qhˆâˆp8¬ˆVÄ@qÄ@qÄ@qÄ@qÄ@qÄ@qÄqÄ@qÄ@qÄ@Ä@qÄ@qÄ@qÄ@qÄ@qÄ@qÄqÄ@qÄ@qÄ@Ä@qÄ@qÄ@qÄAqÄ@qÄ@qÄ@Ä@qÄ@qÄ@q@qÄ@qÄ@qÄ@qÄ@qÄ@qÄ@Ä@qÄ@qÄ@q@qÄ@qÄ@qÄ@qÄ@qÄ@qÄ@Ä@qÄ@qÄ@qÄ@qÄ@qÄ@qÄqÄ@qÄ@qÄ@Ä@qÄ@qÄ@qÄ@qÄ@qÄ@qÄqÄ@qÄ@qÄ@Ä@qÄ@qÄ@qÄAqÄ@qÄ@qÄ@Ä@qÄ@qÄ@q@qÄ@qÄ@qÄ@qÄ@qÄ@qÄ@Ä@qÄ@qÄ@q@qÄ@qÄ@qÄ@qÄ@qÄ@qÄ@Ä@qÄ@qÄ@qÄ@qÄ@qÄ@qÄqÄ@qÄ@qÄ@Ä@qÄ@qÄ@qÄ@qÄ@qÄ@qÄqÄ@qÄ@qÄ@Ä@qÄ@qÄ@qÄAqÄ@qÄ@qÄ@Ä@qÄ@qÄ@q@qÄ@qÄ@qÄ@qÄ@qÄ@qÄ@Ä@qÄ@qÄ@q@qÄ@qÄ@qÄ@qÄ@qÄ@qÄ@Ä@qÄ@qÄ@qÄ@qÄ@qÄ@qÄqÄ@qÄ@qÄ@Ä@qÄ@qÄ@qÄ@qÄ@qÄ@qÄqÄ@qÄ@qÄ@Ä@qÄ@qÄ@qÄAqÄ@qÄ@qÄ@Ä@qÄ@qĸQqhˆâˆðÿqH-ˆ–Åh‡º€¨.@Û8$kF¢Z²j ªöWŒD•¾r­±º¶¾±¹µ½³»·pxÔlŸœžµZ_€¯Õ:;;=9n6ö÷vw¶·67Ö×Vµr"™JgFƲ“¹é™|¡Xœ_X\*•«7ÞŸ¯—–æ‹ÅB~f:79‘ɤ‡RÉ[À5ý»ºœ endstream endobj 562 0 obj <> endobj 559 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[0 1 0] /Rect [496.522 622.02 508.477 630.428] /A << /S /GoTo /D (cite.longabaugh05) >> >> endobj 560 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [219 607.853 356.723 618.971] /Subtype/Link/A<> >> endobj 567 0 obj << /D [565 0 R /XYZ 89 770.89 null] >> endobj 62 0 obj << /D [565 0 R /XYZ 90 659.33 null] >> endobj 564 0 obj << /Font << /F8 108 0 R /F57 109 0 R /F45 106 0 R /F67 131 0 R >> /XObject << /Im17 561 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 574 0 obj << /Length 431 /Filter /FlateDecode >> stream xÚuRËNÃ0¼ç+|L¤ÖõÚ±_!($àÚô!µuéƒÂß³k'MÕ‡¢D»ñìάw€ |€’\ZË4h.3ņ‹è;âJJãmä@¤Ög&ÓÍßÞ`9»uÑ >P·í6}»GoЍ×Ï™åÖ`Ób̬`©®Œdň½ÇƒeÒUJÆÛâiâÕ·JºÒÄÅt8«ð³!€ŠG”ã[Îݤj†‰Ìã©Ãš,v<«Ô÷õégñÐëëìH èŒC–£z/å‘XñÔ݇¡äX½´<• žZ—_øéªr‰ñ(ÈÙTsOŠ]¶˜á6=?#ìõœ Ïô4&uëÓ¡|JTnâ%—óÀOèÝ2ЇieœX¢»â°´fgk®em…4—¢öBú£LÈࡎ½`¯{¡m|É `€>¹w·#ù nÏ­1Þar:—¯p〸§Êe{9Ð^™»èT6—ü†¨kÛȹm½ò!´ Ž_ïˆç¤kCz~Ȉ5·#ó"‚´™×~iƒ4n¹¨“=u(é2þ’\…1¥¹t±Br¡MP‘ªfŸÿ¤¹ÜÕ endstream endobj 573 0 obj << /Type /Page /Contents 574 0 R /Resources 572 0 R /MediaBox [0 0 595.276 841.89] /Parent 576 0 R /Group 562 0 R >> endobj 563 0 obj << /Type /XObject /Subtype /Image /Width 1049 /Height 675 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 577 0 R /Length 64735 /Filter /FlateDecode >> stream xÚìxUÛ†×O?Äòa£HñWP&MЍ4A¥‰€(M5T!@@z@  $¤'¤÷F:5ôÞ¤C ”ýßÝCŽÃÌìd¶$„乯\›ÙÙ3sÊœsö½wfvÿó|ù >6mz||Â)PdW|¦ßtçEŸŽnذñ–-žûöíÛµk×P„ÄôáÀ“'Oݹsg6¨†$"$d[&IVVV†ééé)))±±±ÞÞ+† ·mÝÆ¦ISú›Ý² =¥•ô% dÊ›‡z{mýõ—Í-šx~òýÑ=¥•*7ßà5zéЯ&·jkݸ̈́O¿œÜrô’¡´Rys@Q“f€¤¤¤ÈÈHÛ¹SëÔŸ×ø3ÇÎÝ6¾eèpÇoºþÑ賩uêÑK”€’)lî?w¦ç‡oµjØ·s¦õȬ‰£ûu nÝVÒK…n>­í'#k·üý“+: Û8à·»þÙ®ùÔŒ¬M/)l@=!ÎÎ!E·ÿ¨°”g¤)bC<}L,mBTX,z l‘j€èèh—9s¦¿WË¡^ƒ„Nßœ]¾2ÿøñü#GÎ.ý3¡ýWõ>¢—(%3´¹ß³|뿒رú±ñ­®ø.¸{áÀ½‹‡®úÛ·n›øeuz‰(l>ßÁöãaï~>çÿúmüjýö¿Žþ³Ϲ̥16=\Z5µ­÷ÃÞ£†6Ù©eɰž_÷ÔÓwÐŒ?7Åé×zÏÖfàbƒ³IÒV«¯¿~¼mW°ðuÛžK¶Æ•ü:'msÄK¯+v_û $Q³L¬£Ñh&Fè—üzàü-,À6‡a͈HGÄâٙɆ1Ôc#Më^Fk4}·&a ÊÉð÷ô´­ûц÷?Øýö‡—·º;rì£ÍžÜ7ç ué“Ïw¿]—^¢”Lvó`Ï-þMªlïRþÜ„ªW5½å5úÞŸ»;ýnmuq³s^§—(%“ÝÜÓwKÓáu[Ì®×mSã!íR¦†öößï6+nä¿ö]65¢—(%KµÄÌl¦Ñ4ï;bD_žžó¼híÖ¹í5š)†6J ž?vĈ±:ú6§š³åƒÇº†ÆUIBM·Â'Öü=Em˜B…®×ñ籋=|¹o”¨Yæ©Ñ´˜£[޶©«©;ÁÝbeˆÝÐV£¿)~»üË‚ì,ÔpMŸ½ÚÇÀÓÂñšÝBSŸ5Å„lX6yöŠHÅm·goÿ£…F3t5F ì`‡‘£WÖ¬{ Ú×_ªñè•ÚÚO[i¤í;@ûI zJ+é%J@Éd7÷;0ªS¥Ë3ÿwîîÇ&÷¶|{?Âú~ÄÄ»ž=ï¬mF+é%J@Éd7¿hd‹ÑööùüçðvÃâ¾™œòãâægŸÜkHl§áíè%J@É@-‘3›kšÏ ÈÍÝw(yiA³)hmú®‡íI1´Qâö]{ss÷êYð¥¦Þœý2­ÊJM*ª’Æmª£ÑLr±@·Ì$•˜ÄJMÅÎÝ‘öïÌ«{XØ‘ if¤nEÒîÉ´TF~¦ÑŒKÌN5ðº ;Ë=j;ÉÍÀÓÂÙL]¤ÞL}«Äêç1›¦5Ñhš8G)o’4—2\à‹Á(#Ä`CûNñïÕ»Q¹–¶b íK5´¯ÕÑÖþT÷÷f­ne­U? Ú%»yì€:‡Æ¼}˾ὭúuÒ†v×F÷ÕF÷¡zJ+é%J7 ®ìæ½m»|¿ºÍȤ®ã3¾›œÓkú®>³w°ÙýÓï;ûLÊþa|z‘‰]{®nCÉâ@-á6¤S6è·J4Ÿê¬›îl~¨ÕÍ&”% Ý0º{#v΢V÷ÑBŸØÞݦ™¦žM˜`Ïš©­j±äšN¿Ìbó§M¯F½lÖ,ÁÖ·úÉÖ_þñÞý´6(š­ôXfýx¥F3Õ94.Úã'¶Ïjk4Ý׆²N]iû ­«ùã°FšZÖk‚ï1¹W­Z£×ø‡n°Ñhº9‡JêìAë56Q¢õ¼$µ:}Û”þu´ ××ß¶Û§Ýlœ¥e ü×Úv*(''âß4a3µ»nõè aÑßi4?;D&ëÛDÓj„OÁ+þ+GkjõÚQ+ÒJ^¤îÝ[5jõÓüˆ‚ý^¼xD«Çí¶Æÿq»Å9ÿÒêñ±²^©Û·óÔoY¡©ì½l6ˆžj!6©‹Ø?yì"6L-¨7•mj¨áCœ˜5–”c²  Œcÿ¬ñ‘öýÚºŸj4Ó6i­ý¼¶e{mÓ6ÚFŸk?úL[듃5>¦d²›g ©~~aÃ{[Ú? ëªMè¥Më¯Í û£…Ä^ºÓK”€’ÉnÞ}a»áݧïìo›;pÁŸíþòב!þuÉÁ_æïÿyvîÀßwöнû‚v1 –°Í4u‡,pu]eÕ«±FÓgST­Ý8½©¦Î¤0]‚̓ua§À˜˜mN}êÒòàÍ‘ÿn¿‰¶¯7#L°GÏå“'Ú¹F$$¸/èC©gºê^Ü4½›>Àìjçêéd;\·Z­Òeï:–Ùy¦$NjFk'„ÐÚHׯ5šf“œRb|]]½·ÅÄD…{9ÙÖ£rØ:yzzG wèä¤Ûã73Y16Ùö$%Ú•ék?¨Ï4ïHI7Í ä?MY¼jÕòåK—:n Яœ­³‡1+""œf Ôí»«W˜¾1\¥e`…o6Ün[B‚ïšIúJ9궈pe…¶`»§”0ï@'ªå4w]™â|ÿ 4ãVè_û9†cR\Av11!®SØþ#bÜç Óí±éô ÁþÛO\áén×Q£ùlìZýN6÷§µÝl·¥$¸ÚRã×^ê½m#-Õûy§§§_x´è©|û?ɦs»¸¸ÀéúkÛ8¹ûúEÄ>Ä11ñ+(Ëæ‡a´Ê‘ØÖ¸å‰›j[´ÕvøFÛýíµCÓ©ø‹¶gom§®ÚVN~Ò<¤i+Ùͳ¬>ø{MËGáßjSûkwü¢Í¦=8R÷·o˜vç/´òQxOJ@Éd7ï÷g— ½òç‘akŽÿæzrÌ–3Ö[ÎŒw99zձߖ¶ðÀ¯ãÃûô]Ö9ÔbÛáñçì:ºÿMk7èÂÙé!‘‘«'Òêé>iº+€’Ò2ýuñöØ5~|û ÓIEt)9‰i99™iÑa‘‘+É<&:û듵§ˆ5|ÏîÌ´Ô´ìôùþ6O{±ׄâ÷uþ~ž>>Îó(âl²*f[·®”M—ÑNž!)”s\TdTlJŠ•tªWBjjJlÛaÇMÉ´ÃíÉñÉþv:mY¸…²Ú2„–†;§ÆFF'¤íÚ“-©ó†éì“yÍדÖÓÊu“¾ KÝ‘‘Ÿ˜–¡+a3V¯jŒ¦“]¤eоOØÎ̤øø”ôω‹÷p¦mB]tµ]¾3+}{j’0ÿÀµã5šºkCto4ÑIQÓ©¾¶¥¦ qÖÙ]@BÏ.2ÒQ¿ÿàìÌÄø„íYé¬HÛ"ï¿Ïü€=9©Û“ÿ # O¸Vw°†/óð÷ô ðZFû½Æ/&!ž4›ê©»"þ'ŸÊ·ÿ“»=O»èD¿yÝI·Ü¶§$Ç+âÈÈ(™5u'úc´ÊáˆèûÓÁæmu1`°Öj¬vÆLíb;Ýß,[í8kíà!ÚïúlÕ.²ßÙÍ·Oïpfí—ÚäþÚ]CuqbœöìDÝ߉ñº§{†jSúŸqú’’Énníx}SÚÛz¿‚|©Ü3£bgš³‰Ò·àà¿nm´8(N©În¿SšY~Ùì^‰]™‰ááþ¿“It˜ö8Ià,Š‹›±z隨éDgI¨ð”fÏØ ûX¾½C`xxˆ3%›â&“µó$]{únÓ?‹ ¶HF³ÌÛŸhõ´˜„HAv‹!)ÛÿæÇë§‘LÒoÛ¦Yš'¨k»!¸ Áú‚"Ÿhÿ'»SuòHûuFjï(Ÿ¬à³—ÚkêNòÇh” B 3ARÛÚÁô֓µ,ЮvÐnبݸIëà¨]°X;åwí°ß’ÛuŠ™¿Pv󸕓ö,ë¨ÍüE{ÐJ§ç&k/M×^š¡=?U{r‚neÖ/{—µ§d²›ÛûÚ ]ßsíá±g&]˜{i^êÕ%ôsé€óÓÝOOZsxÌP§«|ìB@-úÀu-EÄ&m¡(SóÙ ßP—iMH%BCý¬)Äœ¼.¥tÓ]r3q½ßÞ•¶¯«KY°¿•-5š¦ÖvîÙ³{w`]â@ž,¸ ‘.Hn:Í74|Ý8 Š{‡îaìÞ³gGb„.Etbúî=;c½þÔ Å¶ºUAº0þw·@ù|#ã†RTܨe#Š·gEÅ…+ÕÙUwçñ4WáÊåChóá›ÍB% `ËM4MôMôd¨ðTº~ ö°n"½ØÕ-øq²‰ë|¥YGl[GÙŒ[ó¸c£=¨‰Ú|×·±F3Ô!4ò‰ì"œ'Ðþ¿[ÇZ-x}?ÝN}CEûgGp}hÁÁ𿕾§ =Ó"X‚ºcÖ xÁSƒí/ÄÀ±£úêTb}p!ÉhyÁw”ðŒ6@Ù ØqÛ¶Åüåôðß´ éôÁc‹6 P÷·ÅKë´N»ØîŒÕ˜„_†P2ÙÍcÃB2u>¸¿öØ8íY½Gü3S{y¦Î&ÎNÕ>¤æ’¯(™ìæáÑaÖ›ú-ˆþuëéßÃ/ÎIùgIæµå×þJúgQØ[ïÓÓæFþ2vC?J jñÚTSg°­ƒ“â™Ãõ·ßñ ^?µ‰æƒ©¾ÁÁ¡^½t÷ÐŽ°w÷öv·ÿUwKo/¯ˆp¾ýzÚ¾®.åc|Öêbð 6º»Ìü¥þz7}2Ý%K=Ç-r÷öuZ4ZwIýBOÚK¤÷BÝù‹ãœhÿ[6,_´Ô=€ å4mÒ'÷­!AuW+õ_Æ÷ÜvôÂ-¾¾2ù‡ÄlË>[åÂʰaé¨QÓœ}%u^¯»eøgÛ?œtØ;¸l ô_6@W*«ù..öãz°›¦z³&¢ØÞÚIZ†àºÛ·¿·ˆžº,Ÿ¤»'{ÈÚXzð×%³^ë#7•‡L­«ùÎÖùñÓиµCØy^[ã#ƒŸÌ.lóÝ+-z7¸…>QÓQ«uo0Oì_w›Z¯Õí,:P×\šÎsì7Pk:Ù/µw§rÌÕµ}¯åÔôÁ¢§òíì=­GƒßLò~|ˆåÿꑺ»×WP^Þ É‚ƒ]j4VmÃh”  ”´aSÚØqÿù—îdIDX¸6%#$líø®,mëŸ'Ò/þ¼Ì}Ý”/(4ÿ®ÍãÝ´µ:19’í>jÓœ¦ÿáË•´/Çoÿ½è¦—SPÛóªQíõ«j,Ù¢/aA¾º]…ŒÒ½:À'&Œ­ñt°Òhj/÷’ÔyÝ”'/Ò|òëŸa‰ñ+ï_SûÇQ¨L]føè“O¡Ø~‚ƒ´ ÛbRýWŒç;i:da\j¼.™#5êÔõ>r ¾-x-Åû-Wx?~éµ@× 6›"—Žgµia¯vŸÕ®ýÙ¤Õ.6íuŠ(Þ?Kï¨[ OOÜZP ã×PåƒBÜlØÓÁvòí°UwN¡Éä­±ü± óò¸c w7œlÝôïÈ\übÃ0ØeøúúFEE%{xdL·9¾ÞåºÏýàûÁÛ®ûøwqÍœ9›^¢”Laóø­N™kûžˆvc¯õýSvsßÄ“ÑóÖõ£— ÝÜ'j³­Ïà51£d|pö–SWÅŒ´ñþÙ;j³Âæ GprÖNvfZlX ­HÎÜ‘“¬O›™“¥ÿ‰”9qúœ¨”¬ÙS²äqÛ3Ó(uJVVzjš~)9:ÄirMÓÙ”Wšþ§²Òâù&¡1ÉÙ;²t«SÒvìÈŒ¦ÝFeîØ‘–’¢Ï1³ ÇÀxÚN·n{L°¤ „ñZý ÅóS6FÌâÁQ©;väÄKꕲãI²·GÓêÝþuäd¤edSY’õ›§dïÈN––ˆLؾ#+Mß6YÙéIÛXÖÑÔ¨)QÁ²-· ‹Fóõt–62‰ •ÍK'ÈÎ' &)3+;'';5rí×M»)ë$û¦÷÷‰J£FNѨ Ͷ˜”ì@Ä„HŸÊ´?ë‡5*%=-++3kGŠèØG¥çè7LK¢ÉâMók’ÑlŒŒÀX”| à£'2223))Ù~Uæb»ÜÕ¹k3ì–êž&%ÑK,òæ)‰Ñ.sRÖÍõœëýKªó°h—¹´Råæ)é)ëBV, œð×¶Q†Œ²ó·v YA+•73ð "U¦ Ô~Ûé–V«£ÑŒt§—t» î_·úÉõÒõ{ÍôÏ‘-5CH¤9õ”Í´2øèÛÆOu&‰Ûg ·ÝXhB÷E54šf¾ïׯÛûºOúÛ­ ŽPÛþ¢ý{HäžÊµ¿ðèè“Ê;ý†ú—e±û_“[âGFƒ!(;l5Œ——=ÄÅÅeffîÔC ôTwJ¸ AÉÜžžë–Øoð.Â<]V-[bïø,4‡Ï¶Ä”¸€B“ùºÛ/™8Újè a“líC’2¢Ÿ±C쑊þ(Sx)âééɤ›ð—JìæðT𠎈 õ)¼ƒ#¢) ïÒÕlaQ±‰IIÉ)ɉñQA¾eüÀ³'Ïw`¬ÓúûûSy¨•FŽyïÞ=Lt(N•0t¯„M½zõbbb¼½½+Uª`fî­Zµ:[ÀÝ»wÙúÙ³g¿öÚk˜íÝ»—BeŠî¤÷J;v¬{÷îŸ~úiBB%3¹ ;vì ˆ799™=íÓ§Ì ­ø„ Ú¶mË >œöÃõ¡fÍšááá–=.Ç®^½šÂ]Šu_|ñÅ7nÐJGGÇråÊ‘;°4'Nüúë¯YRÐkgg—‘‘A¡ôÔb,MÇŽ©UytJŦJY°ITB¡T / ĨQ£:wî|øðá””:vïüï¾û.eg¨µ¥M$›Ìœ"5oÞ|ŸR]®†FŸh´~ðÁäb7n$Ùùïÿk¦p(„.Ï?ÿüËDEE)¨…ú+V¤Ø‰­ïÒ¥Kß¾}ÍÌ]xg.ûl –7nÜ^Eøw™™;íç~ì*£#GŽP. UBöœ,÷ÚÚÚ¾ù曾úøø°•§€‚=Š÷ìÙC+ãââHÇ(žŸ7o^Ÿ>},å sæÌag@|}}ÙÊ^½zµiÓ†üýý_{í5 Ë÷ïß/⫯¾â'Pž–J(”J¹ÀƒNLjԩQ£F111E¡µk×ð³Ì}÷îÝ”Kttt±©ÄÁƒYŽ}ûö9r¤´*NAÝ„ ¨x#FŒ¸{÷n… RSS›6mêááaÙ–!Ïêß¿­Zµ-ZD¹ £Ö   çž{îĉÝ»wgìïܹ“P0Ï7ïÙ³'9ãÓU …R)XïÚµë›o¾¡*“²Y¶‘/_¾üßÿþwÁ‚ ­-l"…dW …N¨ ÔDd^üV €§¥*—+WŽ] Tt¹SØS­Z5ð©°`½·lÙÒ"%iܸ1ń«›TV|áÂ…üñ_|Añ<=ýòË/­¬¬(ñÕ«W-Û2{÷î¥H’/??_µÒÓ×_Š÷ /P˜MknݺEñ§ ßœ 8-wêÔéÇdËñññB•°`“JUB¡TÊ–ý†¢ßÿ½jÕªæ|Þ.mäéÓ§WªTéüùó ­-l"…dW …N¨ =zô þ‰‰O]%ˆ©S§V©ReóæÍyyy×®]~ÍŽi¹ o»&Øý}ûö­S§NtttFFÆ7ß|óÒK/ÉÞ+áìì\¡B üÌo;;;Š…W7©¬xVVmøòË/³«ÓÉ,(ž7ççØ µÌÁƒŸ{î9Z¦ÂP¦üË£ˆ±cÇÒš&Mšð5¿þú+µaRREéT*z555•½4sæÌš5k9rÄÇÇçÿþïÿ„*aÁ&•½íZ¡T /‰ú‰'È Æߺuk‹4òÉ“'cbbFŽIÇÎÑÑ‘^:~ü¸¡Ö6‘B2‹«„B'V²0vÛéí«¯¾jf‘,¥wïÞµ¶¶~ñÅ+V¬Hû®srý&r\\œVS5èiµjÕüýý ]àôÏ?ÿ|þùçåÊ•~ªiœ:uŠbBáÕM*+ÎΡﰧéééTì•+Wš\D-B¾@(_¾üŒ3¨ÊT ~‰ E•”Føe¤jöéÓ‡¢P±ªU«ºººò—(¼oР¥ÿðÃsss…*aÁ&•U …R)¼$ºíš~ŠÉ›È;,ÒÈ”i­ZµzôèAê*´3ÙÖ5‘ÂA±¸Jê„¢ÑÚ²eËöíÛW®\ùù矧"Ý¿Jœ?~¼¨C”Ó§O«¹|åܹsyyy¥©â P¼Í+{öìY¾>!!bKzU”þöíÛdI²—Ê_¼xñi5©B©^âPÙ.\¸ð[[ÔD ÉŠ¿r­ ãË¿ECôèÑã§Ÿ~B;üò5PÏõë×I%¶oߎ¦K–,1ÿgèŠ[0žàY`éÒ¥¢€J(ƒ;G:*E©©>&( ¨ L©ÄêRЍúÒ3¡¥µâñÅ:OY«xií]5à™O=(QÕº33¢J•½¼¼¼ûE eÁF_±åUhƒ”ÖŠÓ|{ýúõ›E eÁ‚"tž2UñÒÚ»0j×31(J`hQ¢ª_¢:eJ%®]»ÆFë7øCôTºRúªh%[¦,Øü_ly©™sJeÅÙ|{Õlmm½½½Ú„½ƒH륱iCkkkÚ=¢óX°â&ô.0Ô»´Â"£Æ‚õzZ‡†p¤sGeYcP¨é<%S% UßÉɉÞ\è±Øª_œ“¢J•½Ó§OŸ9s†ÏpÆüU¶‰4±h _>yò$›ÿ‹-/5gBKeÅi¾=þü… Ø£+W®¤f¡¦ôHk.¨ãܹs,(Õ‹b…Ù˜‡÷ iØÌlCQŒTü§R¥J”5=ÒûŽè€fee _}¶FÊÞ5wî\ÚVöÑÓÓÓäÞ%í-YYFÿÉö.Ùzm6GGG¶ ²^Oeæ¡زÅg§N¢¡GZfƒ¥øg9>H‹F¥¬‹mPˆ`‰r ½¿+÷C5}Õœ œd«O±bÅ JO´,[}õÈV_ÍÌl‚5Ⱦ‹Ú1(ã*Aƒú¢&|ž|Ñ”›ÿ å¥&Ç‹ê`y©ùøB¹0Òò\4•·`^4ßÒòßê`6Á e •R,(Õ‹M²Å…÷ í Úƒú6fÄw¥œ]už*U^mÚ´Y»ví˜/_¢55kÖèØ±cçÎ¥¯šSqsPYq5½‹|ÁÁÁaíÚµ²Ì&Lë]Âwv_ßýL%||ö{xìHK»OË[¶ì¢?¦ ‰‰77oÞ™––/U •£Æd• ÑÄ"4•õ*ºj(/L"„К¢žå¦>•ƒÔ"ƒ‚W“Ï6²·à 0›xÕO¹F©ï‡júª9g%d«o+9…i ¥\}…™Ùƒ.ÈNˆ*TB8ôhh\Ö#\Ï|4 7€p0^À÷FY°ù_6/žÞÐgÚ콆¤›ÊKÍœ£P–ãñãg£¢öÒcbbÎÑ£³• å7­â–Í‹æ[šx/«†Ùóõ[Q,(Õ‹&iÙXxÏ1‹øKÒ>`Bç­äolÙ¨64¿ó¼ûî»õë×ïÞ½;-GDD/+Ø AƒfÍšõéÓGÔ\¦•U³HÅ í]Ì#\]]ííí׬Y#}\´h³ z—ð4W‰~ýÆ­Z1wî¦Å‹}~ýuý±½z$›˜1ÃiíÚø9s6.\èEɘJ¨5¦I‡"4•õ*º*›¸–->“ii½°¯Zp–S˜úd)êAAYðùŠeÇ+nñA!‹°«Ðô«rÊU©¢~¨¦¯š£²Õ•`ËB§0ª¹”«¯03›p>BøH½‚½dBÇ*ÁÆQVV©DVB}®d) C‘$ÍêU",ìèÚµqôèä”wŽV²@h ïk,/5gB †2¢xž¢ú«WoÐ òíìܧ§ç~öÙpõo²…VÜây)¿¯Ù‰¥TB¡äL+TBMªA}šÓyˆJ•*UyõñY‰¡C‡ŠÚ¤zõ·k֨ٱÿg%Lî<Œ?IÁ²Qm¨òã¦bè<¬<ï½÷^ýug%úöíË|%¨¤§aÆM›5ë«?+ÁÎY˜ÖyÔ4²QGÍ'†zW¡a”MÈö.…{%ÒÓHo‹HKË'­`fA™™˜J¨5&«ßTÖKt@iFµÔ•ÍKv¼ð•,¤·T^Ê•‡m,SÑz“óRÿõB›àŸ6XpPª*=‚w£TBÁ#¤iÌ9+¡P}.¢5ÂsæW_afVo†zK`BÇ L© Ñ·%ððÌ4•ýú6ÿËæÅ—Ùæ¤Ì#üüö’G$$œ=|H+´ ö~¡ðU*£ACç礱vmÐÎ)Âg‰9Ê…QŸ—þ$…YyÑ|Ë>?~ŠÂ—eí@šXøf'úˆ'`A‘¨^Ò PláÅN4uÚC¡‡o"Í‹öÌwË(ÒÎÃ2Ò•ÐÝ+Ñ”Ÿ• _àŨ^ýíï•èbe5zòäɲCFý¨V\tCŠèUó+n¨w©ôY›Pß»¸>˜‰ÊQ#ºDŠ¡ðŒ?UY/á¥é”÷RCÇËÌ™GxVBtY8;+aÁ¼ uT^öERløóWÙz“óŽt>*9¬# #FZÃOˆXpP¤S.ë*jÎ= ;Q*¡F{eûª±*aBõ™S0›ž›0¶ú 3³±ßÑ$:+Á4U¨„pèÑãõëׯ]»v]-ððÌ4•¸þ$´CšÏù¯ºHóbOéQxV‚/Zcf^lbçŠ> äï_nrÐælÍÞ,ñ ìU‰êÅ? ô(-¶(±Ð#x0ªóðM¤y±ˆšç%ô”¢è<ôȾéÝÏJô±±±a~Á+WªÔ°ACv¯Äσ±s&tQ#3‰`ßÉÃbEþ<ê;š‹¤½‹ß¡Æ#¸Mï›PÙ»,¥*G ·DçéØS eÅPY/~@™GÈÎr£fæÌ#ºWBt}8–ÊKÚQ…»ba›4/¶Þ伸2ˆä‚Á'¶ž=Z|PHO©ÈvQ÷~’v…ëŽ U]å4æ\दú¢Ú±e‘M[}53³™÷J(Lˆ*TB8ôh\HgQ ª{aó¿l^|™ß+ñØ#âô¡Œˆ8ž’r™¿ÏJg~Q^j>¾0TñãÇÏÒŸì9qŠí÷ï¿ÎÃ{ŽraŠ3/6ßò‰½Ÿ®\¹R¨´FV%èUf¢Ä´¹ð#>þ"­ï,€gÕ4Tl~(Yx#ÚƒÊ6d!4ÛD˜—èê)þîÀà ž£;ËW¯D~¯Ä¸qc¹GèÏJT¯Y³fÇ:wé<Új´¡!£~Ôð¾$ý¨™i…úΣæHiï¢~B³„½½½J`,½HW•{—ÅUByÔ¨<+!{q H%”ëÅŽ ÷á¸=X™y„·Kˆî°l^²{ãƒ]¤ j Q1ÌÌK¤lPð ÙË é•i´ ÛU ¥—í< g%ú!G!9g%TVŸ?å @Ë\%ø Jª¯03ë¼Wˆl„Ž@™R á ÌNçñˆNA%DßàdH%ØÞ„¿+$ÍK[zzfçäÜzìúóqqçÈ#Üܶ“e(„^¼ÔÌ9†*ž˜˜cè|Åö[¶$°ðþº"j*.͋֘™ŸØ…°›ûØ.«Â‰ÍÆ<1ûŠ'áÙûÿ±-a1ø‰Ù·fYcâ/ O¨lC~=´‰DŸ²J?nâ9Z°óÿž•¨ÿø^‰Ož• œ•¤?+áããcΨaZ$ýœYø<*;ú°AØ»ØY v–A½MÈž•Pî]"•`]9’–÷ïßÿàÁƒÃ‡çåå±WwîÜÉvíÚůkb_©rÔl6•õ"„!ÒãeæÌÃ…¡ëÃ-•—š{„»bO©5L«—!DÙ g`¾¡pæŠ+rÐ0Î¥lŽ¥•Wv•8™€ù*¡\}ª¼î´ÀF½ð Dg'ª¾ÂÌlìïÐq³®‘4U¨„pèÑPec„ÿܧP%²T|È]ƒuŸ†~”$›—(Sòr~>‚–Ó¶ÿãá‘ÅîÅ]Äh(/5gB UüèÑ¿¥÷G¸¹>Ží»+ ï…¿—jlÅ¥yéîÂ6//>±‹®"f6ÁØZªì² Ú›Ò¹€H [‰ê%< -³¡‰G|[5m(<× ìu|oüê)ö3ÜÒoùã¢a©ÎÃ}Ax¯Ä¸±¢³oרùøœ¬F[QØ5N&Ö‘D2‹¾“GeçQs1ƒ´w™VBeïÞjÍT‚˜J,_¾ÜÑѱK—.züüü~ûí7Z ý̘1ƒmçêê*Û» a\¤æ.ªŽBCõb%‘µ VZž˜ÛÌ™GhâBþú³¥òR˜Dg„—¬›3(D³ÇØz™6(„‡EÎÌ#è‘O°_©²ó˜p’e1¡ú—XYƒ0`·`Ó£òà’­¾š™Ùäß¶–®Qî଄²J¨ÇJˆ>JRV ‘Gd¤_åÁÏJ(ÌÿÆ~°,- Eïbpã±}‹íU†÷…V\”¿®Éä¼h¾•ÎÞBT‚y=å*!D5 ?_ª„ôÃF; IçBÛP´‰¬Jð¼dÏJðd-Õy¸/¼÷î¿g%Ä÷JT®Ü aƒfMŸ•˜={¶™£ÆÐéÑ—Õ¨é”ÆÕæŸ•Æä²½KtVbd´¼bÅŠŒ?~Ú´icÇŽýùçŸGŒáååeeeõðáCJ“ðçŸÊö.Ùz©W áÇ­l|±5*ëňð^ 3U¨Î#´‰"ÍK¶ò**Œó2M%Ì"•z„¨óð—X\­ ª*U‚ßÍ]<;vd=¢P•PY}C“†ù˜Ð1(S*!zïFbì'5U‚ïí) 6ÿËæuëÖ-~Y›¶âû—æ¥fÎ1T àÓÓs¥×5Qlïç·…÷ÂÏînéQ(LqæÅæ[á<Ìo-ô¬*¼,Šßj*ú ‰ê%<³ ª)‹èUa±y½øG|ÛBÛPtVB¶“ð¼¤*!*E:ðì{Ôß+1N¸æíêÕ…i¬'Là×8Ûy„Í®|VBeçQy1ƒ(¨¶ìY …Þ¥æ^‰Gz˜ÏÞ•Þâ ­xQäÅ'váW¯°wZ`v@ Ô¶²ßæÁT‚mŽƒ6¿ö$Ê*Á"é!æ÷&H[€EõÜ+Õ·¡ð—”©„Ð#,Òy˜,\¸ÍÑ!õ¯¿bÜ7îtvN 8$òˆU«í–D¬_Ÿá°:ÉÛ;×}S6[o¨0…vž»¡opm«ÐyT^Ì ê]柕PÙ»LS é'*G»:>nUY/CTV%„ ÌŸy„p•0T“óâƒT()§¢¯ôçk¤{3¡^R•McÙA!ê$,`fWÒS–˜ßò, ªÙJÙÎc¨ lfl¶§§|W ¸ººšÛµ´ú"ØÏ^³/kiJ‘‰¨¬¾z•ögf B•0”Fô*T@%dUB:‹šsVBöMŠÏÿÊyòzª¥QÎKåœ#-Œ4È!”/Åö¶Ã»¯µ5ôƤ²âE‘›Ø MéB•P@”XŠ0(ÖËÐAÞ]h%Úƒš6”•¿6\¡ Më<ì|ÄZÇÚ‰û¦.Îi‡½½÷löÈžXjN¹;¬IÚê»iSNX؉µŽ ¢³&t…ß•Pq©¬¸lïâg%Lþ] •½Ë(•ýøšpAå¨qW a€ÄCGQÕ Õ«P• 1¾À¯5jæQ)ëTÖz„ùÕQ¥²Ï'7ѧ¢GógTÙ*ßR9ƒÂuÒi¥1ôËqLLP füû]ù® Ì&ÌT‰kŠ0‰àg"Ø{‹¹¦£TB4iˆTBØ(U QÑ«*;eM%htÜÖÃF -˜sV‚ïí…ó¿¡¼ÖC¡y©<*-Œ,|aO)kŠí)ÂrOËÒ*+^y©T 5($¾zõ*Š„õbEZ)aô.*¶¨âÂ=Նƞ›PhCÓ:íÖÑ1å¯å1›6±ó‡·zí‰9z”Ÿ•°³ _f ;‘z"0à@JÒߢv3¹óˆ~íšíD¡w[qÙÞEQy½½½ ¿v­¾wûe°¢SQGŽa×N«5îÆÀ BøÈ#ÆBë%{@…Q·èx±y@ô¾úÎc쥼yϳSÙQ…g%D*Á+ËvËWò˜ß"3ªp04óXvP:uÅlBV%„i(—í<…ª„ì® I‡lÂÌ œÔ¨—k®löPóf$[}533S é›s:Ä\%„C”†½ªÜ1€JŠýL;+!Ý›pþWÈKý»?+a(/•_Ü6ÝU»Î_5©ÿ¿ÕìíIåŠE^4ß*œk. •JC½ÊÊŠ«ú64êÜ„BšÖyÈ–ÿã®óˆíúó±1gÈ#²2tßKAÎë3t±×]>"0`?yD\ÌvVÂR‡_bÔ&*?€•í]êm¢PPè]&|¬èÇׯ'Û»dëe¬Gð[ù•õ24:*¯—Ô í<&Ü›¦œšŽ*üâY>EwÅ ‚¯4¶^…6¦úYÈüA!í!ÂoÛ6¤, õdéÐ0V%„»2¤”†yÿy8ÓÎJ(_Ý$¼À‰Œ2•ÕW˜™ ©sz*T CiD¯B%TBª|ƾs玬J{V‚ï„ïÏÿ yº®‰i ­]¥œ—š9G¶0Bîè1´’ @±ýÖ?F]Šõþ™F”FMÅ‹"¯BUÂ( U Q½„E6&‘­¬´3˜Ü†êÏM(´¡i‡vkgî¢óˆCì|DXè1ò_Ÿ]ÌèqÖ¬­[u‘ÍÎG$']"ˆŒ8&,’Å;¶ÆV\¡w©± 5¡Ð»D}IáË`îä•í]fªó1²¶Fe½â^!Êw(«ï<êUB9;c;ªðÇ"…Ö ê¨²aæ 6cñ Y•à÷J(¨þÍW à*Á<ÂÌ œ U Ê‚_ã$ ‘kH×› ÒICV%øS®²oC ¦Æv Ê”Jܼy“ͺyyyw 0ç¬Ûƒí²`ó¿r^ê=‚Ÿ•0”—š3¡²…"Ü­ìJ*Åöq+¦Rx/|UeÅ‹"/áÄξ[„è>káz²ð]1DA‘¨^ü ˆªÀ>“ä Øå7Â4¢Î`Nª “ÚдÎÃêůk =š•y=9é"ÿ®Wv¿®)9éï¸Ø3»vÞaç,èí©è:t[Ó*®Ü»¸M¬Y³†”AöQÖ#Tö.5‡Uøe°ÂXø¥Ê*Gèº) NÁPY/ *AˆîP¦ô õ’Í˨³"àÙ™ÜQùÁöiZGU?( 5fQ Y•àOT‚?•í‚yw Zã䘜t)¶à|óˆ¢î<©x¡½‹Û„¡kœ˜G˜Ö»L¸,GôÈ0J%øÏ²ðG¾¦ÐS¦©„BMù(=ÕyL¾WB4¦ž •xZƒBÙ=Ò˜¦Ê»’ÞÁ1V%L˜„ï8ìv ‘Sˆ`Ÿ3UýBUBvL‰TBöc(¨*UâöíÛw `ì{·¡ýPlþ/¶¼ÔÌ9 …1CåQSqËæEó­pV€y-ð0‰Ù„( ‰êÅâC%ç_£FºcÛåÂwÅrTÙ¶fvnü>kæ´ž;ÑwÃ2m¢è}úøñã'Nœ # ` U‰7nœ’ÐÐPÚ­!›P®·žù‡ó1á‚ôï«1ÙÝ­w@%T øU"??ÿîÝ»wîÜ!•¸tù©Ä =¤ÿý÷Í›7 U‰””Jö÷“„‡‡?|øÙ»ÕB¤ߌÍyøH{äômúÛü–4\ï02ëÚÍûÂáß Û½ûŽßÊÜw=}ﵫ7îO[u* Å©wïÝ#  èÈ‘#ûöíËÍͥǃ=z”lâÚµk…ªDrròíÛ·E!VTTÔz=nnn”@V%òî=T×T¢íðÌ3ßå§*¾‘Ùit6T@%ŠM%ÈÈ#ÈÒÓÓ333÷îÝKBqèÐ!æû÷ï'› Ê*‘˜˜˜——'ºíúÒ¥K§N:yòä… (A¡*ÑuBÎŽƒ7ØrhÊ¥¡órTÂzùÁ»ùÛý–)Šðo<~â|^læ??LÝIOÛÌ:xòö×cþ¹G+[Ó¥!! 9û÷]'ÿ3<Í’MÇÏ_¾¾ýòo ÷?wgÏ‘›ÇåHw•€J@%Š…RRRRSSÉŽ?Nâpþüù¿ÿþ›Ö_¾|ùèÑ£$ô”CA%îÝ»wëInp÷î]J «÷-R‰;wîMäææ*¨DllìÇ€^¢…ªD§ÑÙ7nßo=,cè¼Ü»ù•U¢Ýo™þ¹g·é„P%Ú̺xåÞ×c²¥7ns•øjLöé‹wió6Ã2vº1pö•î*•€JhõgöìÙS¨Jܽ{÷Ô©S *ýèÑ£‡ —(A¡*AáÛ/Sœ›ùOÎÊ*ACæå?{‡t 6ëʹKw§Øb÷P\¹‘¿}ϵøì+²*A KÝOÐV;Þp 9+J#R é¡P ¨‘““³wïÞBU‚ÝR­ QQQä †r¡—(T%dÿ:Zeõ¥¬]'ä|7y§è{beÏ#ˆ~üî‹™*³Ý!:T*€²LFFS‰ƒ*«ÄíÛ·T"22R9#i‚âÿ}jü®€JX öC"•8wîT* æ¨ÄÍ›7Õ¨Dzzz@@À–-[Ö­[·jÕªzhžÒJz‰@%T*a~•P ¨T@% Å£@% @% P  P  P  P  P  ´·¯jS]KÛßÍK8°@%€J@ÑB÷Miû£J @% TbY»Rr>‚*•*TŠM%JMì]ʪT¨ öFu€J•¨ªT¨@% @% @%*•*T{C%€J•ÄÞ¨P  •@u€J•¨T¨T¨@% @%€J@Ɉ½¯ÞÎsMÙQÿ.ݼ •*TJ¬JPЮf[ÿ¨`P  @% „«D»¥n%ç|*T¨<*!ŽÛŸ*òE‚J•*P ¨P  •€J•*P ¨P  •€J¨&ìz €J••0šÚ…;ÐiT¨¨„Ñ*¡qÔþ‘~ @%*•0Z%èoÝ~t•*P ¨„Ñ*Av;Ñ{T¨@% ÙtHÛ.èñ_ùuÿªýÙdhw\Öº([—ò0l @%@% ‡ B¨Â?2 «$ƒ¯–Ö?² •**¡^%¤g%¶-[g%XS@% @%@%Ô«=j÷JSG”5H" P   &«yDÙü­:¨T¨š 樄ÿñ2ÚY P  h"€J˜¦l)Ó4T*TMP ÓT"óï2ÝY P  h"€J˜¦e¨T¨š P ¨T*T P ¨€J•¨D¡Üøð)Ryø=½¿îG]EøßèòÚÛW¡P •*P Æ#=Ó|¢4Ãfó?zúhO裚ÿœú=²íitÀe¿®)è<] @%*a”>p>|˜{ö¢fèlþGOÞ¿÷pê;‡kÿí}h!¾|¨qÐ=—}º¦ Gð1G+ @% ì¨„P øb‰‹fè,ÍYŸÍu¼Ïð™r˜F÷7ñ­û÷òî[ˆ/üïkÖès®®)è3žDV+ @%*!+,‚â‘U~~þú„LÍ™ô·h[ü=ÆÑŒ{Ã4º¿M#ïY޶~÷4«t`Ý]SÐ#(~òõˆäB$P  •INW¯^=sæÌ±cÇŽ=J!ÐáÇwåî{iÀÄûÏܹû gü‡ûi¦„´ÍjæèÁÂp]SÐ#(f:tXu~4HhP0§P/P  PŠUBx2‚Ÿ‰8{ö,Å<ÒÄ÷<Ìðð‰Uhä[¶HùµwèÁƒGº¦xð-Q" AA~-1•*¥X%„§$®]»FóvZZšùûÿá‡^P¥J•âiÝRÖ%äP* oœòåË×®]»S§N¾¾¾P‰g —/_¦Á"{b*TʈJ°S QÃNI\ºt)55Õ"*ѲeËìŠí¢©-[¶lÚ´©¨sÙ¶mÛªU«ÌQ Ö8QQQëÖ­kÛ¶-9ÅòåË•UBe¦ ÈGpj*‰;1A‡ß1•*eA%ØEÝ«›ø)‰ .$%%YD%¾þúëÒz GÕ©S'sTBØ8‹öèÑ£R¥JgΜQP •™‚¢† ,ìÄ„ð'éíP  PŠU‚_ÝtõêÕË—/ïß¿Ÿàüüüûðž0_%®\¹òÅ_,Z´èqœüàÁ÷ß¿qãFöô÷ß7nœO£FÞxã +++НØKT†Y³fÕ¨Qã½÷Þ[°`ß!m2aÂ//¯† ®\¹’¯¾ÓªU«š5k®Y³†ª3vìØwÞy§gÏžשÙyrrr»víj×®mggÇÖÛÛÛ¿ùæ›U«Vmܸ±µµ5­ èÛ·/mÞ¼ysỞJ•Ðꪠ|ùòóæÍímãZ¦ê3EM||<¹À¥K—hÈܸqƒ]ã•*eG%„7Jð«›|}}ßzë­jÕªñpˆØP&¨Eàç  =°õ›7o®P¡;ñ±|ùrRþRÿþýëÔ©Ó¶m[òˆråÊ999±—lmm4hG¢AÅ â±ú‡~غukÇ‹¢wZþè£Z¶lI[?¾bÅŠß}÷ݘ1c¶mÛV¯^½©S§ºó?þ˜¼ÆÑÑñ?þxñÅ)Ôêì˜ ¨Y³fT‹ÜÜ\&”†bErÊ•+Sxi¬Jd+”^´·Š•*_ºzƒTB}¦ ¨!9=sæŒè'C·K@%€J@iU ¦ ì»›rrr(È×h43fÌ%6M%„·]GEEñ—LasVVÖk¯½ÆïË \~ú駦M›R@EyQŽ]»veq8-W­Z•"g–²G à±z5(*ã;©¹ÉÅ‹iùèÑ£T öÒØ±cI1 Ý9‰E€´LâË/¿LŽÃ^2t­Åó”KXX˜ *ѦMÑJÚÛ å^  S¾ÀI”)(j¨3“°kœØ÷8±Û% @% ¬©ûØk×®uèÐ<‚‚Ò€€QzéN²¿Æ%Š–¿úê+~•KÏ)ô­_¿~¥J•Æ'Ü„ÞT6ŠÍfÍšõúë¯Óòþýû©T-Z´øJO­Zµ(ê6«‹T‚/Ÿ?žv’ÀžN:µyóæ´ ~ç¤ŽŽŽ†T"))iÞ¼y´žöæïïo‚J|øá‡C‡íTÂÓÇßJÈf Ššˆˆˆ“'ORâßãÄn—€J•€²£Â{®)ÂÑè©]»¶òçÛì’§ü¸kÜÕÃĺuëFn"»Q”Kùòåd-€]v5þüÊ•+Ó†‰Q¨Å:†……µiÓæwÞéÖ­ÛîÝ»¡€R¯ $€³%¨%_%ˆÍ›7³ß]}ë­·òòòŠü½=5Uø¯B¼½½5ªT©BóT•P ¨T€’©4NYèþõ×_uhD¿óÎ;cÇŽ•¾DC»}ûöþþþݺucEZ¶lT•P ¨T€gT%h^¹rÅÐÞh€Ÿ?^M¾´“ÆSF²*‘}ìØ1¶LÕyá…(å´iÓ ¨€J@% <+*A»*W®ÜsÏ=geeõ믿þWÏ÷ßOƒW«¿ ªbÅŠôê·ß~Û³gÏÿýï´m·nÝ®]»F»ýÏþC/Mœ8‘F}ïÞ½ŸÓãïïOΚ5륗^¢ÄÕ«Woݺ5 y…BÖ¨QƒRnÛ¶MXæåË—»€Jf qm§Ñ=*2d±=©=E\ô8;;¯[·Ž¦V‡Õ«W¯X±‚˜%K–Œ?þ(.”Ý*•*a)• 6lHkÞ}÷Ýôôô€€– 22’½Ú¾}{zúÚk¯:t(??¿víÚôt„ ôÒûï¿OËÖÖÖZýåLlC¦Dƒ •B“%kÑ¢ ya™ûõë§ËR÷SR ÝãÓà.(.È& P ¨€JJ4iÒ„ÖPèNË4îXö*¥¤§;wfOüñGzZ­Z5Zþàƒ¸JÐÈ5M%Æÿ¿ÿýfQ™KñY‰víÚQËÐ#>Hg%€eÉÏχJ@% <-• é—% ·BY•˜2e K@ãÔ|•ÈÎÎ~÷Ýw÷ìÙ£PæÒ…Ô2ôˆ~€ÅÀ½€iƒP ¨T€«666ôôùçŸÏÏÏ7S%hÈ·nÝúСCìirròáÇ¡¨€J@% ”J•6l=ýðÃi¹N:&«qòˆ•+WRÙh“õë×׬Y“¦¨*¡Ì©S§Îž=+ ®6nÜH³è3zè„…WSå4&«„™mH‡xÖ¬Yýû÷°øñ…J@%(!*‘ÀþO?ý”§ùøãiM¯^½h9//% ­„*Q£F ˜ùùùðÓSgggz‰]óO h+‘ƒ´hÑ‚žvèÐa÷îÝnnn¢©¾{÷î¢?úè#Ù2C%P FPPM­¯¼òÊK/½T¥J•;w²õüᇊ´iÿ/ê©Zµj£FØ»€E^ME ¥a%|á…*V¬Ø°aC…ʪ„9mHojo¾ùæòåË“’’ÒÓÓ-~|¡P J‚JlÚ´‰YcРA¹¹¹NNNÿùÏØw4%''Ϙ1ƒ»ÆÉ“'¹JÐÇ—_~ùÞ{ï=÷Üs“&Mbƒ:,,ì7Þ`waÏŸ?ŸjÕªÕµkWvÍåKkÊ•+Gó3˜ɓ'K¿Ûä×_…J † ‰”âÕŸþùÚµk´ìîîΠ§xT¢uëÖiiiöööMš4)_¾ü®]»JšJP SRR–.]JïY %d*²mÕªUQ‰íÛ·W¨PzßgŽuëÖÛP J¾J˜†ð'³”»è£Î4ÒiAø-LŒóçÏÓœ`lŽP TBJNN΋/¾˜‘‘¡>º¶¬JtéÒ…-GFFRIœœœJšJP ÙNaaa %d*1bä¨N:Y¤ ׯ__µjÕ¢;¾ÏÔ°?þøc\\T€Ò¡ÎÎΦҨQ#vV"°¸ ÒB%P —/_®X±âüa(ºNNNn×®]íÚµíììøKT¤%K–|üñǯ¿þz‡²²²Øúþýûó Y£¢¢7nL¡,{º`Áá¤*AÁ½ló€€€¾}û¾÷Þ{Í›7¾7ýþûï&LðòòjذáÊ•+RR *ù¬Y³jÔ¨A›P‘ŒR Š0JH*±t¹}µ7Þ¤øŸ*ÎîøShÓ'Oþúë¯Õ«W§HõdÓ¦MTÈ *Ю¨UÚ\¶YÔ_…þöÛosçÎåɨ t4 åE –/_þé§Ÿ¾úê«õë×÷óóShg3U‚1yòdv…T€gZ%LfõêÕ4yRÜ[¹rešˆÖ#P TBİaÃ(B¦è‘‚%‘JPœÙ¨Q#GGGŠE) Wì%Š3ß|óM ¢(ú¢d4™?~\«¿Ð´cÇŽ,ͨQ£h<׫WÿJ©¬JÌž=›~nooO™RD7oÞ<Ú9ûö V¤?ü°uëÖìÛùRʪ„­­mƒ âââ|||ªU«¤^%lllJH*qàÈñß}߬Y³¤¤¤ÜÜ\å6;vì·ß~K!ëöíÛ¥÷/Ðñ6mç´+¦c†Ú\¶YÔ_…~óÍ7#FŒà*A›SsÊ‹öóÒK/ýõ×_ô4::šUÜP;[D%*!5©è:g¨ÏŠJ¤¤¤˜s‚ÀÚÚºk}ûöõóó+¶s©©©P TB”E¹åË—¯S§Ž0¦¥ ñ­·Þ¢°Š–óóó_~ùeö3£JU­Zuâĉ,…Ù+²/Ö §d·nÝ¢åÚµkSÞ­[7ZÞ³g¥¡ ¥:…ÙË—/§àÂQ+++Qª/űaaa¼H5jÔ ÐNZ iJ©JPRÉÉØú=z 0 P• .[¶¬mÛ¶´…ºÀI¶ µúï4h\CÇeýúõ¯½ö[Vhsåf1t|•w¨¬¼¨IÉwø÷1ò•†ÚÙR*Áèׯ_ll,T€gN%T¨D©Q‰ÇuMMýàƒªT©Â?rE×;::Ò„±%ѵkWv2‚B¬J•*Q\M!Y­Zµ(¦záÂ…?ýô“l þÆoPL8|øpQ]’’’æÍ›ÇNmðï— ø MÉ—÷ïßOiZ´hñ•*a›6m U *a‡~þùgÑ7²ŠòUs¯oCÂÏϯråÊÍ›77tñ¿P%Ú\«îŽ ÑñUÞ¡²JóbMJ2(ÌK¡-«½{÷&{…J•P  OW%´úëê«W¯>tèPå0x×®]( C8ŠèZ·nÍ–)tœìáá!6ò<\  <Ä8b›@Ä`‡Ráß_Œ5ê­·ÞJJJ¢JB• T B¨mA%Ц‹‹Ë±cÇ´©DiiiHHÈÆÓÓÓå£JKKóóóC<Þ¶mâ–(?uê””‡ñ±‚+Þ¦¦¦Ê[POÂøB⛟={vß¾}6l ”äâäÉ“žžžÈÕhÉ\y„UUUÑÑÑ^^^hD]Orss½½½‘äÑÆŒ’øøø¸¸8$É-[¶ˆx/ßÇ­[·K*!*¡í`Ì8Fróü׎]»±#êÑÍÍMŒYÎÞ½{7oÞ¬0ØÐÕÕ6¡‹‹a„Ø éW÷C¬í8‚¤¤¤HÕ0Q8 òÝW™+,øûûc77mÚTXX( û1?88ú:e•|ôÑG%%%T B¨„*AUâÞªˆ‰‰AEtD**‰|ˆˆ… Š:èZ¬BÈDªÏÈÈ@ÐB5Ä]±êÈ‘#¡¡¡¢Nll,6‘⽯¯¯”E5&aÄNé?Ïa è´²²ý¢q„7¢‹°°0Èbä?ü <ÂC‡íÚµ mHƒê— "#÷¢)!;h j——'\@¾ðšÕ«Wc<ÒÌ@‚ƒƒ;ªÔ1°/cæžóöñ•Î>’À¨06´¬R~üøqè Ž¯¶©æää4«ø ˜ Ÿk¼([Û!ÖvÁŽ;¤ß.´‰Í±³Òî«Ï•ø†oaXâè$''ãè@p°áºuëÏu94º¨3f Ž»ˆôT B¨„*AUâ^©9ÜÇÇGíׯ_/ò3Æ€À,®®¯¯www—þ#DPD>Ä2ª‰óÿ7n܈ ‹ÐØÐtiꨟ „ „ˆ Û·oG…}¨T@lÃÀΟ?/é‰Ê NGBBB"##nv”••…!É›òöö®®®oUöóïää„(.UÆ\‰Ê—.]ÂÅ N‚b¨ô…PŠ:ê×DgggKú£q*´m(ŸÀ 6`’¡EØ\’]±ÂqlV%Tæ ½K$o\º°e÷îÝû÷ï×ñÐ袂7ß|3O• „*A¨„P%î¡J44]†Œœ‰ø'!£r%B;²WåÁ ÊŠ/# ®®®HþH_P „1¤SŒÿøñãR’TIÂÏØé­%%%H¿â« qÂLCs×JH#Ø# ,..ÖQ%äM©ì#‚ñM¨WF¼DMì©P‰¸#GÑ©J_˜ •@ ?°4N…ذ  @A%6mÚ”’’‚ÙÖ8à ‡Xá86«ês%]ô!/ ÚÞ†'Í^³‡Fw•˜2eJ\\U‚ª¡JB•¸·*¼¼¼bbb”ƒ:zGJDÖ’VíÝ»wëÖ­b¹ñÈ‘#éééˆýâÿ«1Ôàààüü|IX峑‘‘HÈh¤¨¨¨u*!ƉlŒÍ!2-U •}ÄŽ _ÉZª8|‡qðàA„m…©€šaÃääd•[Aß”¥Cý+GÝUBøŽÊ>D!§ðòïV”.*1zôhhQ³É JB• T B¨wíi×xÿï]Ô‘oåùé4**J,§¥¥áÓ$44ôܹsx‹ {èÐ!WWWùÍ‹”Uâ‡~ἡé´%• ÑQ%‰‰‰(W?FY%Tö*]þÛ¿¥*öíÛ9’‰ÔÓÓSúOumV…BŒ_å(N÷’Î;jö+G4‹ÅrII‰‚Jà—“&ïE̘òWÚM³*ñá‡Jç¼Q%¡Jª!T‰{¥ˆOâ¤&Ä?)[*uô»yóæÒÒRÄQ¸r&Æ#V‰["¥‹+&°ÖÅÅeÇŽÍ&a q­qff&v6!!Aº­SCÓÅnnnÒQFˆšUUU˜½#GŽlÛ¶M½ke•PÙÇcÇŽ}öÙgÒ]ƒZ¡•••îîîØPH?æ$88Xrm*„ Ï•À/CYY™tƒ|+´‰P¿;®Â!V8ލãëë{éÒ%xœ¿¿¿‚J€£G⸠c¼ÅPqìàJèZüöJ·‡jöÐ(¨Ä”)S°ïºÛU‚ª¡JB•¸s*Q\\ìáá°ºaÃÄŨ¨(éâh… ŽÁìß¿_<:å*·òòòW[ä^¹ è¢ MOa@âE:MJJ:xð Äé1˜ü+'ÝUa„!!!Ø)DYÄuDåV¨„|QóäÉ“gFG•hh:石hÐÛÛ›lܸQåi×§BØÚ‚†©@J׸Unn.ªá§Ž‡Xá8ŠT€ú[¶lß)¨~?ccc]šÀ Å-^Ñ  cØÒwÍmÀzšýÎ…*AU‚P%¡JÜ5•TUU!25{kMêêê¯îÐÜ‹¼'–UN‰G¢Óå)Õ¨ÓÒä©moýuê¹sçvìØ犎ŽFvUnYš8…¶3nå+ÇM &\½üöâ7VÜðööª!T B• „*ÑT‚(sUBÔ`ÿþý{÷îå S%¡Jª!T ªU‚P%¡Jª!„*A¨T ª!T ª!„*A¨T ª!T B• „*A• Jª!T B• „*A• Jª!T B• „*qŸªDiiiYY™.ÿ º;«û¨„*AU‚P%¡JÜs•ˆ‰‰±±±éرcûöíMMMUž7§Î;ï¼óÚk¯ÝÞÝl騄*AU‚P%¡JÜ[•@(²°°˜>}zUU–wìØ!ž+}'T"66vÓ¦M·e T B• „*A¨„P%î­Jœ>}º]»v§NÒ}“V«ÄܹsGu[Æ@• T B¨„*AUâÞªDee¥¡¡áÚµkÕW¡_++«nݺ¹ººjT muPîíí=`À“Þ½{GDDøúúZXX˜™™ 4hÉ’%ºÁÃã_¿~:u1bDff¦´jöìÙNNNR54{ôèQñö“O>Y¼xñž={žyæãQ|IIÉŒ3,--Q@• JP%¡JP%!T |ðÁíÚµC2GX’—;::öïß?)))<<ÜÜÜ<&&F]%´ÕAÈoß¾ý† Ο?_PPP\\}lmmwî܉hÂà.\øÊ+¯ Lfddˆ«6¨T ª!T ª!„*¡±‹µk×êëë÷ìÙSºÞÝ™™™ùúúŠ·'Nœ6mšŠJh«ƒr“—_~Y¥#m'8i2Ú_ºté¯Y½¾9_•°²²B”öE}< ;hgggoo6ÓªU‚*AU‚*A¡JhÛ×ôô'Ÿ|ÒÔÔ x[XXˆpncc3º‰=z 2DE%´ÕåÞÞÞº«„Æ1œ={V.`ܸq#GŽÔE%äWshÂFDD[[['%%Q%¨T B¨T BU¢Y*++---ßÿ},#S!i;99EÜ !!A%¨k«#ÊÕŸ=ѬJ¨Œ!77íÄÅÅIk§L™bkkÛR•Ð8…yyy&LÐ××wss£JP%¨„P%¨„ªD³Œ?~èС Mçÿ-Z´H½Žü'ujkkQ>iÒ$•òyóæ 6L÷1TWW8::J«ºvíúÞ{ï‰å±cÇÚÛÛ‹åcÇŽ)¨„Æñ(ì ÄªU«ºté‚ù§JP%¨„P%¨„ª„ ÙÙÙ{öìAãXÎÌÌDº–¢ûÊ•+-,,ÂÂÂÅ«ªª¤»'Ƀº¶:+V¬èرcLL â7âYnn. CBBLLL***tÃÌ™3ûöí›––­ððð€/œ8qB¬Z³fÍSO=…Iˆˆˆ0`€‚Jh¶Ácœ%%%˜öeË– >¼ßJP%¨„P%¨„ª„‰‰‰:u244ìÞ½»¾¾þ»ï¾+"}CÓÿÛ/_¾ÜØØØÌÌ €|®ÔµÕA8Ÿ;w®aæææâó4C‡…)ÌŸ?_Ç1 áO:ÕÀÀÀÔÔ´K—.¡¡¡ÒVçÏŸöÙgaýë_ÿ”UBãx´ ÞÎÎÕ`ƒ†ÅP%¨T B¨T BUB¥¥¥ÈQ•••ê«Ð52~*l®­<˜J`+//Gy‹Æ€ä¦ÞŽ@ºM“.hÆÁ£&&ù7M JP%¨„P%¨„ªi9T ªU‚ªU‚B• T ªU‚ª¡JB• JP%U‚ª¡JB• JP%U‚ª¡JB• JP%U‚ª¡JB• JP%¨T ª!T ª!„*¡‘ÒÒÒ²²27\U!444((ˆ*A• JP%U‚*A• „<ä*cccÓ±cÇöíÛ›ššæää(×WÜ-Ò³gÏvš3f U‚P%¡Jª!T‰¶©EÓ§O¯ªªÂòŽ;ŠŠŠîJÄÆÆnÚ´I½¤¼¼¼ &èë뻹¹Q%¨T B¨T BUBGÆ?tèІ¦“‚ŒŒŒ-Z¤^G~‚“Æ:µµµ(Ÿ4i’Jù¼yó† Ö"•(((@Irr2–ëêêT 8ÐÁÁA,çä䘚š •PØmCZµjU—.]¤3¨T ª!T ª!„*¡Bvvöž={Ð8–333¹Å*qsXXÔ ªª kÕ3¼¶:+V¬èرcLL â7âYnn. CBBLLL***tW Ä9}}ý€€$:ô…µ~~~ÚT:tè0gΜ¥K—ÚÙÙYZZJ'Yi§Ê𶤤¾lÙ²áÇÿ¦ T ªU‚ªU‚B•¸™ÄÄÄN:vïÞ¡ýÝwßZÑÐôŸùË—/766633CÞFtWÏðÚê ±Ï;×° sssñù‚š¡C‡ÂVæÏŸ¯£J€%K– }ˆÉêÕ«±!z§'©«D]]ê@"æÍ›WTTw T§Ê°-Œ œ––F• JP%¡JP%!T eJKK‘£*++ÕW¡kd*üTØ\[˜J`+//Gy‹†WUU%m‚h§Ë&'NœÎŒjvœò!aÓ«ª T ªU‚ªU‚B•xp ÷ôôLKKÛ¶m›µµµJVl5T ªU‚ªU‚B•x€‰‰‰±··‡D 6lÙ²e¿d¡JP%¨„P%U‚ªUâ®A• JP%¡JP%!T B• JP%¡Jª!T ªU‚P%¡Jª!T ªU‚P%¡Jª!T‰‡V%ããã[ºUhhhPPú2U‚P%¡Jª!T‰6«¯½öZ;¦¦¦¢\ýpºÐ£Gõë×k[[YYÙ¡C‡—_~Y¥\Þ—¶~‡:mÚ4•777ª¡JB• T B¨÷J%œuƒìì_wd÷îÝÛ·o¿½*±eËØŠAyy9U‚P%¡Jª!T‰û]%^zé¥Û5`e•°µµµ³³ƒMx{{S%U‚ª¡JB•x Uâ“O>Y¼x±|ùøñã'žxÂÓÓSª†á}úé§Ý»wïÕ«—ŸŸŸ‚Jœ;w‘––öÜsÏY[[ß^•())™1c†¥¥e·nÝDaTTÔo¼t'ÿŒƒ`ÌVVV={öĘnj"펃ƒVa+WWW©>?}út•ö©T ª¡JP%¨„ÍÄohT /»F›Ðþúb›o£JlóU®Öº×/i[¯ßz-5øç”À+IŸÿ/~ËG6ÿ7vã¢ÿõïp/=5\¯¿Å×k¯þã¥QW/gêÛX%-÷{ºÏÀ¿>ãï·yíÇvúã…¢‹UNŽ«³èüù¿‚ü¼Y¼¯ÿÈŸÖ{¬ÓØ‘£ÃªÞ½zþRí_ë=Ñ™¯óµõ%-Ë_Cmÿ6íí·TJÜ\œÅòÂùó^?îÛsßd¤Ï9% }7zcÀßžqvZcÜÁðU?Šò•Ÿ|lÑÉk ¾^üáÂÆ1¯ÿUŽû÷”nnn#TbÖ¬YãÆCÂÌÈÈÈÉÉ¡JP%¨„*A• JB”Ø»¨Q%š{}1s@£JÌ Kå–¾~™¥w}¦Þµô~~_ïÊ?õþ7CïÇ÷ôþk¯÷Ÿizÿ~KïË1z ×~¾Å×kÇ·ävì ^ ‡ŠòwÞz«¤å.æ¦ßäa¹îÊåúÚ°E,[¶',ÕÕÕ¡›Ì›7¯èÛóš~þëî`ž—/_Ž­ÌÌÌPƒi¸qÙ5ÄD¥ý3f`„"Mo†ÞÛ]ªúI¥œP%¡Jª!T‰U%n ÂÝn#ÕÕÕ999È{âë 9µµµ˜•ªª*”‹eÄBõO¤§µûƒ^rb‚¼Ž$‰Ÿâ­8Á ]«·/Áœ¨„P%8ET BUâ'<<ÜÓÓ3--mÛ¶m6/}úØÚÚîܹóüùó(qrrBÚGvBèÂZccãââb±!Þ>ýôÓð T†tèÐA öŽŽŽýû÷OJJ 777‰‰‘6‘·¦&Mšô /¤¦¦4Ü|­„¶F.\øÊ+¯ øeddäääP%U‚ª¡JB•¸›*1pà@ooïQ£Fµoß~Þ¼yRÔ·²²BŽo‘ ÌÌÌ–.]*¥kDz$y©òóÏ?/"€¼þúëXÀ°±•¯¯¯(Ÿ8qâ´iÓ4¶ß v‚“¤ ØÙÙÙÛÛcŠZ¿ÿT ªU‚ªU‚*AU¢µ*ѹsgdø™3gÊT¹ÒÙ³gÛµk.•Œ7näÈ‘+»¸¸ MŒ¼°°[ÙØØŒn¢GC† Ѹ‰‚J(4alllmm””D• T B¨„*AUâ.«„t‚“•¨Ÿ››‹<'•L™2ÅÖÖVce777$| Ù [999EÜ !!¡¥*¡ÐÈËË›0a‚¾¾>:¥Jª!T B• „*ÑÖT¢ººÚÀÀÀÑÑQ*éÚµë{ï½§±òäÉ“ ÔÐtn’‘‘Ñ¢E‹šmÌ›7oذaê‘XµjU—.]Zs¦U‚*A• „*A• JB•¸“*fΜٷoß´´4h…‡‡G»víNœ8!U†Y=z˰°°·+W®ÄÛ°°°ÚÚÚªª*é¾Oê퇄„˜˜˜TTT¨WÐÖ6)))Á-[¶løðá¢ÐÝÝ}äÈ‘"ïi[¦JP%¨„P%U‚ªÄ]S dø©S§˜ššvéÒ%44T^yذa£GîÔ©SûöíçÏŸ1‹UùòåËÍÌÌ` ¨©­}| :ÔÈÈ›«TÐÖˆ¡¡!,cðàÁpQ8cÆ h²ŸÂ2U‚*¡¬E7€P@oñËO• „*A• „P%nä(„+•&Åþ‹/"q©o…]¸pá‚ä ”——×ÖÖj\¥±TÆ„´~¨T‰›U¢°°0???++ëØ±c‰‰‰)))X†Sàw»ººš*A¨T ª!„*q{QÿŠá¾*A•©D^^^FFFðÎ/Ç,ÚÑùÕšÑyÁÁ¢|YÜÿ9Äÿßìà³!;# ¨„*A• JB¨|ñE•¤¤¤ÌþlDzÉ.1߬=T²"æ;=‚¾›‹^ÝU6çËÊUI5Î5+•;%%7}C• T ªU‚ò°¨„MÊ|ix-ÿ¨á£¥?µ×¹þÑG×–.ÅO¥:ËW\û¨ñç}³ãÆQ%ä•&Ì uÛ™µáH±ÇÑÿ¬>XnáUhýù…7ÂÊüߪc5n§j\Žÿ4ïó¬èèhª¡JP%¨„‡H%š‹‹¥¥¥eee*áê6ÔòC{ٵο‰J=ztÄÛ¡^>ñ¥^ åkâ*žÜøí‹Ÿ_˜²÷¿ó^þôxóW5.§ªß (Ø·oU‚P%¨T BUÄÄÄØØØtìØ±}ûö¦¦¦999¢üöÞßµ­ÝÞ ©vM˜™™ 8088¸¨Ä=».UBM%þ6å ¯ÈŸ„ïÖ7©„¥÷·6þ^ »8;öò²”‡“5«OÖ¼ífÏž=T B• JP%!T‰šš ‹éÓ§WUUayÇŽEEEbÕîÝ»·oß~7U"66vÓ¦MÒÛÛ;ônkk{âÄ __ßçž{N__?77÷ž¨ÄÝMªÄ­¨„ͤ­^g6ÆÿÇ3¾Âá`E÷ E/l)¿ã¿3¢//J¼òIÆ••é5S6S%U‚*A• „P%9}út»víN:u§çR•˜;wî¨Q£îÐÐûرcÅò‘#G°×÷D%îènR%nE%¬_ ^·¿pC|Ùº#ŸÅþ÷Ñõÿt̶‹ö‘Õóâ¯,=ŽWõD_ª¡JP%¨„ªD#•••†††k×®U_õÉ'Ÿ,^¼X¾œð·¿ýí/ù‹ŸŸ†´páÂÇüÿøÇ·ß~+ªÍž=ÛÉÉI,c؃ B^}õUéØØØ§žzjÅŠ¢Ú˜1cfÍš%¥b4‹úê­!NûûûóÍ7ÎÎÎÆÆÆâÙÁÅÅÅ“&Mzá…RSSÅ}ûå›ÀPÀÛ¾úê+”c+Ô—ZFì8p Ú„¡Ó .(«ÄêÕ«¥ïbÞ™úvŸž=l¿¸sçÎóçÏkì ê!ToŸ~úiø*C:tè ûU«{=Ý?>1 »lnn# ¯OŸ>¶¶¶¢}åÝtttìß¿R’j#°¶W^yÃÈÈÈ.f¡JÜv•xþÕàu…Ž–¹5~+Qaþ¯÷ó+})ô¢}Tõ~+AU‚*A¡Jhê \__¿gÏžò˜ª¢X‹~±Œ~‘Ã?ûì3)åB1Z¤ØÔ9tèx«ræ´ÉÕ«WÍÌÌ–.]*Êé³Ñ¯T­K—.,×ÕÕ!ÞoݺU£J@7¼½½ÑEûöíçÍ›÷ëæSß¶zü±‹åâ­Æ¾PYR‰çŸ¾¦¦F¬…¼þúëXÀÚŽ¦fë½}Å N'Nœ6mš4<++«‹/J#Ѷ›h]óD¹¼;;;{{{LéíüÝ¢J¨©Ä ÿvÛ_¸þð÷.qŸ~Y¡ïùï§}KG…\|cõ?_YreArõxoª¡JP%¨„ªÄÍûšžþä“OšššbA£JHËåååÈÿ)))âíŠ+¬­­[ª©©©ÎÎÎÕ¨©œ±Ïž=+o Œ7näÈ‘[†VøûûkT‰Î;£ý™3gÊç *ñÚÄñÒµûB’—TBÞ—‹‹ ÚÄžþñ‘vŸ·9j4èÑ£Ç!C´9”¶ÝD#èÚÆÆfôhÕF"""Œ1ÏIIIT‰;ª®*QÖ¨1fÿîéS:2ä¿o…_þ ®I%RªÇm¤JªU‚*A¡J¨RYYiiiùþûïßQ•ÀÙÛÛ÷îÝÛÓÓ3!!A•ÈÍÍEµ¸¸8iÕ”)Slmm[ªÒ NrTTBc_/¾ø¢F•pssCÂÇ}ýõ×P‰•«öí`×Zªh];99ED¨6òòò&L˜ ¯¯N©wN%Ü# ½~=Áé¿®/껩t̶ÿ¾½ÿòì£W¿²$µúª¡JP%¨„ª„Æ?tèÐV«²:4A,;vL£J <99¹¡é|$¹JÌ›7oذa껺ºÚÀÀÀÑÑQZÕµk×÷Þ{ïN¨„ƾ°SUbòäɃ jh:7©}£9 ©ßÁI]%´í&122Z´h‘ÂZµjvðöœéD•ÐtÙµGÓe×ëâ+b+þìU4°ñf°§G]^xåã ¼ª'o¢JªU‚*A¡J4’\„Ʊœ™™‰(+¥èV¨Äš5kžzê) ,""bÀ€UâÂ… úúúßÿýÊ•+¥;)“ŠŠ õNgΜٷoß´´4D}luâĉ;¡û²¤0 q[ªXXXHƒÿøÓ•&æ;w‡ÕÖÖVUUI÷˜RW …ÝÄ„ Í°0ÕF°III ~–-[6|øpQèîî>räHqᆶeªDKUâ_Q…¾‰eë*UXy=P:i÷Å™_^^š|ÅádãSêÞÜB• T ªU‚B•h$11±S§N†††Ý»wGÂ÷Ýw…V´N%Ο?ÿì³Ïbí_ÿú×3gÎh»VbÉ’%ÆÆÆ;v\½zõüùó‘«Å™<ø$:t(t…*› WO:ÕÀÀÀÔÔ²ú› Ün•PïKº,ú6lØèÑ£1iíÛ·Ç8qhÄV5µ?¸t¹¡‘±™™ö5µ©„Ân¢—åË—crT±³³Ã1‚e <^# g̘÷ÝÒ¶L•há#ꂽcÎø%•mH¬p:\ÑÓ§èÅ Ò×÷\œðò'ǯ¬Íªqɬyçsª¡JP%¨„ªÄo”––~õÕW•••·eÌò»iq½¶¶V,ÿý÷òUPi• 555ß}÷J¼U´<¢NÞ—\%DìÇ>^¾|Y^_<¢îçºk.\üB…ÝÄæê ²¸ƒÖmƒ*¡I%|¾<ãŸR¶1¹ÂùhEïÍEC¿(~qñá˫ӯ¬Ë©ñÌ®~/ˆ*A¨T ª!„*A”Tâ&MPS ut~Úu[*¡¦/NÞ{&0µlÓ± ·øŠg¶-}7ââòøË.§j¼óñªž¹µ€*A¨T ª!äáR ;»ww¾4¼\]\œj¯sÝÕõš³3~7.ñ¥—4×qs¿æÚøó¾Ùñ1c¨ê*±åЙ­ie~Ç+Ö%V ú¼è¥¥ïG_ü,ñ²GVÍæ35[ ªç†P%U‚*A• „Z³øØ•%Ǫ_ñ¡JªU‚*AypT‚ÜüVâÁ¥'8yFzÇÿÇãh…ClÅŸ½Šúø•Žßqqú—Õ ¯|œqeEzÍäMT B• JP%!T B• Jܤ{m«W䟄ÿ¬O(w--í¹çž³¶¶–¯BïŸ~úi÷îÝ{õêåçç'Ïó «TTbΜ9]»v…­ˆð&W 4âááѯ_¿N:1BÒf»vpp°²²êÖ­›«««†`__oll<þ|m»,W‰ëW¯x¸»iƒ¨1`À è ’¤XõÆo`˜1|€*«Ä¬Y³äƒ),,ÄT_ºt‰dT BîG•àœ¨„ª„„££cïÞ½ÑrB>Ò”´ÊÉÉé±ÇÃDAAò°¾¾¾”çV©¨Œ`ÇŽhyÛ¶m**FÑÑ/‚‚7òqqq³ícÀýû÷OJJ 777‰‰Qé ‹ÐÐP]TÂÉa¥E'scÀÛ§Ÿ~zذa[·nýðÃ;tè Vùúúúûû#v:;;c“úŸ‚JIî°bÅŠñãÇó/Œ*AU‚P%¡JÜ×*.zõê…ÜŽe'ƒU«V‰UuuuÈùÒõ Mgyzz*¯Ò¨X5jÔã?^UU%©R™™™ÙÒ¥KEÍúúzxÁÂ… •ÛÇT`+$yQ>qâÄiÓ¦©tš’’‚.šU‰«µWÌŒ —.^¤>QíùçŸÇ´‹œ&Mšôú믫4…µèëÀÁC *‰€nˆ»9a×0ûöíã_U‚ª¡JB•¸¯U"55I9êÇ&FŽùä“OŠ”….°Jz¥³ŒViS‰ÂÂB###ˆƒ¤gÏžÅBxx¸Tyܸq€rûh«lllF7ò!C†¨tšŸŸ¯²9ˆ‰‰#‘‡ü³g ÚýA/|ïõ14¨]+áââÒ¹sgiêœçÎÛ¸‘Ê×J¼õÖ[#FŒÀBttôc=&(E¨„P%U‚ªÄ}ª³gÏn§B²ÈÕó¼Â*m* ÅÉNØÜÜ\,ÄÅÅI•§L™bkk«Ü>òV999EÜ@ýÛ‡êêjQG^ˆÞÿüç?«„üÜìÓP‰¸ƒ±êcPW 777ccã_š°··ïÝ»·§§'z×E%8 ¯¯_RR2iÒ$é‹B• „*A¨„P%îS•¨­­íܹ³ŸŸß7¨¨¨077÷nEï–––’ ` Ò[…U *]xê©§¬¬¬„J ð8::J•»víúÞ{ï)·e##£E‹)ïÚË/¿üøã£ e•¨þßOú½£Ã*õ1¨«ÄäÉ“ „ò‚‚ìBrrrCÓ Kº¨ª¡e 2•——Ç?/ª!T B• „*q_«Ä¾}ûLLL“ä…³fͲ°°@Xž6mZß¾}´&L˜`jj*]¡°J›J€¸¸8ñҸìzæÌ™h$-- ™ßÃÃå'Nœh¶ý•+Wb„aaaP¡ªª*ù=—$²³³Ú‡ vþüyQ²|ùru•h¸^?sÆô¾}zkª!ÿc̘èèht íB9r¦¾¾~@@¢&ƒM|7û5{3Ø%K– æàÁƒ¥ww÷‘#GŠhªm™P%¡Jª!T‰6¨¯¾úê»ï¾«RˆPÄÙÐt¢Q¯^½ðÖÒÒYZ~“Â*•o¾ù¦¤©S§Àºté"¿ç’Bû˜ x±±±™™T‰]ãÞ>}ÚÚÚZ´ xôÑGÇŽ«®U•ÿú֛ǀj'NDªG_hgþüù8’ °cÇŽ«W¯F¹QG“ƒG”UʃF䟶3fÌ@‰P9mË„*AU‚P%¡J´A•Ðt']k¬û*ÝA6ClS‰vͶiAÞ“²½6‘áKJJ4¶/=¢Nã0áÕÕÕõõõ¬GeS”ÔÖÖŠåïʾßJ(šš ñQo‡P%¡Jª!T‰U%dŸv-hÑÓ®˜ýôS++«ž={úùù3&$$ä×DýºƒƒV¡AWWWm*1gΜ®]»ÚÚÚŠ(W ´àááѯ_¿N:1BÒ ± ývïÞ½W¯^èW®ׯÕ9|ºÂªÛŸúÕ¦³fÍš?¾¤9_|ö¹K—.‰ˆŽŽÆÌXZZbz‘?ußMB• „*A¨„P%Ú¾J#‡††*¨ÂùÀýýý×®]‹ÊˆXb•¯¯/ ‘»œá#[³›¬\¹ÒÂÂ"lëëëK‘ÞÑѱÿþIIIáááæææ111UF°cÇ´¹mÛ6•prrBãˆvÈ„†„½bÕc=†¹‚‚äÿ›úuXÕ¿O¯¤„x…~µ©D`` ‘‘ÜA¨Ä¢e+^7^ÌÀÓO? Ù¹sç’%K:tè ûnª!T B• „*ÑöU"%%ñø·ÛiR‰.]º \54Ýâ ©xëÖ­*u0*4rèÐ!åMjkkMMM—.]*mØ£GñöÎÌÌ Š!Ê'Nœ8mÚ4m*…Q£F=þøãUUU’J à¡©q„õ… Š1@1>þøcÍýštôݰ^œà¤­_m*‰€°ˆ;\Õ^­ëôØãa{÷‰xþùçEà“&Mzýõ×ußMB• „*A¨„P%Ú¾Jäçç#ïÝ»WA%ä×JÀüýý¥·©©©ÎÎÎsçÎE#‘‘‘Ê› ¤É«5È®Y(,,Ä*›ÑM |È! *úFFFI%Ξ=‹…ððp©ò¸qãFމLVíÛ·Os¿ú£ÍsGÿ}¤B¿ ×J¼õÖ[#FŒÀBDT´YçÇ®ü|U}\\\:wîŒã¨ãnª!T B• „*ÑöU¢ººáÖÑѱ¥*ÙÛÛ÷îÝÛÓÓ3!!A•@0C5rõH‡UNNN7@› * ÅÉN˜™ÜÜ\,ÄÅÅI•§L™bkk+éRbb¢æ~ÿôG'‡•áûúUP‰èëë—””L|uÒüEKÅe×*3àææfllŒÓq7 U‚ª¡JB•hû*ÆŽûØc!)µH% Š“““šÎ ÒE%ÀÀ¡b9''ÇÔÔTDzì‘‘Ñ¢E‹”‡*W ÌÆSO=eee%TNd`` w¢®]»¾÷Þ{b---¥‹#Зô¶±_Ãö‹æÏiõœ°ïè#×ooøUvžF•˜}ºüi×mêáT ª!T BˆŽðªªD[&&&ÆÞÞ1lذeË–UVVÞû1ÝšJ aB%Nœ8!W ///>Éš*AU‚B• JP%pnù[‰_ëÈT‚P%¡JB¨T ªU‚*A• JB• „*A¨„*A• JB• „P%¨T ª¡JB• „P%¨T‰;Á¥K—’’’ÂÃÃÏž=«þ–*A• JB• „P%¨·Âž={Ö®]›‘‘!/D(ܶm[[;&b´‚7nß¾ÙOZ ÒÔyzzž8q¢¤¤¤¬¬Låí½R iüû÷ï/**º•Ùï/¡JB• „P%¨÷D%¶nÝ*/LJJºÓ*qîܹ“'O¶b´ÁÁÁåååØý¬¬,üªcœ±6???77W,#:;;KSy{GUBa×0~L5ƼyófŸ[™Cùþª!T BU‚*q÷UbãÆäKR!R. ï¨JÄÆÆnß¾½£Ý±c‡<äïÞ½ÛÕÕU>xDÃÝÝ]ÛÛ;ª »†ñïܹS,#¸bÚoúŠ„P%¡JB¨T‰ûJ%<ˆ4.ýGzEE…‡‡—TÃHKKóóóC9 ‘¯Dù’““¥¦P„Ñ¢~RR’··÷† RSSÕ;E_žžžÈöøè9|ø°BÊ**++È;†åøøø¸¸8,äææ¢wggg´®òVt÷ë½Ö§&ÅK*!Z@¤Ü²e‹ø²5Q¸nݺõë×Ë÷EÔ,-- v¥¦¥ •Pß5m*Q\\Œ‘#¯J“¬qÒPž€rŸS§Na÷³³³åcP>FêCMOO§JP%¡JB¨T‰Û¢Hªø)‰Cbbbttô¡C‡¤’””Ä㌌ $«ˆˆx†òÌÌL///ŒPTƒ’ˆ ¿@¦ETF0CG6S雇……–””üðà ]4«ñ›4È®@ðC~vssCûååå*ooá×ùë\œ¾)üõ‚ ´°iÓ¦­[·æååá“QÔôõõ={öl~~¾|_P-øûû#‚BdÖVTþ•Pß5*cºwï^ÌžhµMŽf†i‚À>$_+¡0*CE ç–*A• „*AU‚*A•h…J ';;;#,¡YQJR‰úúzwwwé?Ø1$]¬Å2†äâârþüyQ QË¢¾ôÇîÝ»÷ï߯ޯü, ….tQ ü‹By´ÎÊÊB#RùÛ›Fx½~÷öýûöJ©ÛÛÛ»ººZ^Ñ]œà$ßÔ\¿~=â}cׯ;9»d|uZ—œ6lذk×.x ²½Ø\uH²Iá—ÏŒð&u•Pž@•¡â>}š*A• „*A¡JP%n‹J }WW×ÌÌÌòòrÄNt*©„8ƒH~£$$áÐÐP)ôFFFb’1`Q?((h{ˆ¾!åy[¹‹fUJÜ4Âm!½<¾R çòšø|Deqv´/*5×y®?~â+]T£MIIASrÃÒ6i?üðÊ •UByU†Šã‹ØL• JB• „P%¨·E%¤”ž˜˜ˆ$Œ·’JˆÃ"\I›ìÝ»WºãÒ—»»{]]œ">>%ˆ^¨´\x·<•çmå.”UB|3’––¦»JÜ4‚¯ ósо=¯1u‹š˜“œœì©|_Z­â§óçϣ傂 C’M,ÊÏ;§¬ÊH• JB• „P%¨wT%òòòɽ½½¢ä*Mpvv–_^íåå%–±*qâÄ l+. ¨¯¯wuu•.ÖòvHHˆÔˆBÊ*‘””G§fé~‚Óo#¼ùN*©[ÔÄPÕïबÒ®iS‰†ç‰“©&Íßßû(–+**Ä W*cPž@ªU‚ª!„*A•¸£*!Îq')ÉUBD²Í›7—––"²¦¥¥­]»ZˆŒŒÄ†ÁÁÁR‰¸RÁLŒ\ã혲³³ÝÜÜ„4Û…|´H阇ªªªâââƒBa  ê™YA%náÕŸ®þéûÿ|§1u‹šHïØüç&¤}Ѩu×oâ”y:ÛÙÕ­ê—±¬òÚ¶'tÇN±üÓåjl…ñöH|‚»‡gnþ×?×]«©ýù»²ï¥r'g—è/Œ;üEˆÇz¯´ŒbÕ¾ýÒæQ1_úlÚ\\RZ{µîØñ4G§µ%ßýG½^èôÄ©¯Tö@>¦›*AU‚B• JÜ•ˆOÒcä*Þ÷ïßïììŒP½~ýúœœy â\ùt×××=z~úðq{%°;øEEè@³]ÈG+žš›6mÂ[¹§è®¿ÐÕÅm­cDø>m*šqqq«W¯†³È÷E£Jü\ßøt‰/_ñúbõZ×È/ŠéºkÏÖÐÒÛS§s?s\‹ŸX®¹Z î(¶Zãâîèì¶{_„¨s¥îz\|ÒçÁ!1±å?\rv÷L?•%V¡Ë?Õü¼kïþUkœ±¹Ëºõ'³r¤^äÕðÂZi¨Ò«þAt ª!T BU‚*qGUBwêêêÔŸ§FŽÑJ·ŠÕâ™ü Ô-íâiáÿU^¿z¥ÙGÔaò+++•÷Eåÿù«þwùçºkê_L(¿êê¯W^ú?5®-ùî?ŽNkÿ]|AÛæµWë.UýÔ²¯S%¨„P%!T ªi…NÜž§]ß9nÓÓÓKKKsrr‚‚‚ooûòçtS%¨„P%¡JP%¨äQ $ÛÈÈHq7Ú#GŽà×€*A• „*A¡JP%¨T‰{U‚*AU‚B• JªU‚*AU‚B• JP%¨T ª!T BU‚*A• JP%¨„P%¹¤¥¥Eß·`ðT ªÄàÉÉÉEEE­Ø°ªª ÃÖ±rNNŽô¼9ªÄ©eªU‚ª¹¯A ÷»oÁà©T‰ûýuke¸»»k¬¶qãÆôôt±¬þ7 ’¹¹¹‰ÏUTT4»‰Ž-· íß‚Jˆ©ËÈÈâè Pzºßíðíž u•¸ÓG*AU‚Û®ÁÁÁ÷×÷0U‚*ñ`¨~™Ëo -ðËU"???77W,Ÿ;wîäÉ“êõëêê<==###1r,£þ¥K—î¹JÈG~»TbëÖ­ò¤¤¤û]%4ÌR 00°¥7Â¥JB• J´µL~Ÿ›*A•h…JìØ±£Ùjr•»}ûvõrX uYYYIÎZ¹5•À´`7åOèÞ¼y3 ïk•h›Œ5ê­·Þ‚©Q%¡JB• JP%Ú¸J ë„„„ 6øúúž:uJ®ñññqqqX8yò¤§§§»»;>A>,ߣuqq9vì˜zËHII‘zÁ¶Øy¾={öl`` ——×Áƒ¥/:EØÛ²eˉ'Ķ–ÞÞÞdjjªÊÈQîãパcï²³³UF.ª¥¥¥ùmòõp]»í‹­R ¢ZiiiHHv‹ïVêof×®]8P ÌŒ(:¹¹¹EEEmݺU”àØ¡5ìËúõë“““¥m1]°°óçÏ‹=ÍÈÈ@û˜Ì'Œø*ªíÛ·½øûû{xx ;DY]ZÎÍÍÝ´iv%øˆÇÄbsÔÄ!C ö]L5ö1ø‹mLMKWÙ}ù²Æ#r÷UBðÑG•””P%¡JB• JP%Ú‚J 0ÿïRPDÚGòÌÌÌüᇤÀ,üXÀ`ÂÂÂ2íPM¥å˜˜l…xŒÁËË•¥‘cQùMjyóæÍÛ¶mËËËC$†Œ`Ò*dcDt¬ÂgVCÓ•àø,..ÆæëÖ­C5áäÈÌ•••ˆÁG.vÕ2ÒŽ_Z¾ÏÕÕ»#UCËH°!GGÇŠŠŠŸÕ E´ÆÏ€€QrèС½{÷B%¤ìLQ:ãää„Á‹òÝ»w#…¢”ãŸìuddd~~>¦]LšT ­a$˜OTƒ4Û22?„ › £ãÁ¿ XFBƑ߰HûxâÔWG“Ž9:­•ï¾4K Gä^©3f F."=U‚ª¡JÈ39>—_}õÕ¿ß`æÌ™R̸'”——¯^½züøñT ªÄƒªòË®Åè1;>>^ª¦í²km'8 ÃѦü e•@l®««oá)HæÒ*ooïêêjñaØÝÝ]ºLùyÿþýXÀ\¡\þ‰Æ‘‹Í«5àôKý5ÈD@ª†<SüŒœY¯Æ®]»Ž9’““³fÍšªª*” /Qˆ€øV±ÛJßY`DZ;Ò× T,ÃÂ`+G«°9&Aª)¨­­owî܉=m¶e¨„hYŽ™Á2æVR ±õ¿4\©»îäìrúôi*¡íˆÜC•¼ù曉‰‰T B¨„*¡’Éñ­×D—.]ðzgÓbzúÊ•+5®Â'Ë´iÓyäŒdàÀT ªÄƒªpë7…—.]BÂ/((¸E•ÈcP äv,è¢òKRSS=<¯„*AU‚P%ÔëãŸt…»Jâ#£¼¼\—~ÑÈ AƒÐ‹6• <˜*A•xØT üK ÉSþVE%BBBší9VúµÜ¹s'ZË%%% *eé³Ie†„L«ñ?¥ýýý¥ûüTTT¸»»«¼®®ÎÙÙ999YR ì`TTTëT"//ÏÅÅÅÛÛ[耤 ƒlJH¢cË*@vÖ­['N—jJÈȽR‰?üðüùóºlB• „*A¨âW÷‘GùÝï~7oÞ¼3fü©‰I“&áã@DCCC¬}å•Wþñ<öØcØpüøñUUUX‹–ÿûßcíÒ¥KñQ2eÊ”ß5éààо}{T¶´´´µµÅ‡H+Táá‹»ˆú•­T ªÄ­«„ü²kéÊëýû÷oÞ¼¹¸¸i e9ÈÎÎvssCÊRiS¢)´€ÜÛ˜Û›À‚¯¯/\¾°°±_E%éÅõçÎóôôÅÚáÇãí£>ŠOºººº'žxo/^,ÖvïÞo—,YÒÐtV€Ø*·ýû÷¿Åo%Þ|óM½»H³Ž@• J´B%ÖތȴøcAàÇ[$ɳgÏj;Á £Âï‚ôÁƒåÍÂA<<<é°Ñþl¥{C‰OnÙ²E\Ú W‰Ý»woß¾Û:;;£Méò õ„Œ‘ºÑ54:#}ÓM’’’ ±±±¤ß¬¬,õF0¥Ð%g§5îÎkÖ{¬ËÉÉ‘Zn©JLšô ¹Jh¤î*¡mBtiY€©ÀÀ<㸴T%°¹ÆÜeà}ÒE÷T B¨„´H%ž{î9¼EnÇ2þ%k¥›Q o_~ùeñö­·ÞÂ[sssñöÉ'Ÿ”T·W%îÚ·vvvT ªÄP eð'£Ë#e‰o U¨ªªBÓxÓN±ÝâfAØ˺Œóƒ9Ñ–o1Qò”®NÝϵ?ýßEåGÔÝ:ʃT Ù ѱe1áêÛS~D¤Ø\Ç#Òv JB• T u•À‡ X+ýÇŠJ,_¾\T']ÜQ•¸k×JèèT ªALOO/--ÍÉÉ ’þ¡Ð’ò›ÚõƒD«Uâ~„*AU‚P%Z¡Ÿ}öÞþáÿ›G• T‰‡ DAüC"BBBŽ9‚y£J´Z%222äO§JP%U‚*Ax•øàƒð¶OŸ>âmÏž=©„*A¨­P‰ûª!T òpªDJJŠü %ýúõÃÛÉ“'c¹¶¶V¬ÅVr•°²²Â?õuuuùË_ð688X¬W 6 —kˆ –GŒ‘——§ñ†–øÀ511A333•ϪU‚*ñà¨D}]ãƒújø…*A• „*A•ؾ}»½½ýš5k~ÿûß‹{4?~|åÊ•’h”””H*1pàÀ¿ÿýïݺuûÝï~·lÙ2écâСC;wb»¸¸`¡GãÆ;wîúÅÛGyäwÞQ¿2\\Á-øç?ÿ)OnT ªUâÁQ‰û%ûÎ…*A• „*Al•hòœð)€ßg• øÜw_Ç‚t÷uAyy9>eîɰ©T ªD[±‰õU_G• JB• T ]TB㣱Ûò°©T‰ûW%BCCƒ‚‚ø;rXU‚*AU‚<*Ý*¢¢¢ÄCèLLLöïß}·À€©T‰@%^{íµvMèëë?ñÄ£FÂßQ³[½óÎ;Ø¿#T ª¡JP%H[P‰Vóî»ïÚÝ`ìØ±¾¾¾~wªUâP‰Áƒgee‰‡,:Náíí}ë*»iÓ&þQ%¨„P%¹s¤¥¥Eß·¤§§?*Qócc`n ¯Ë?P%î¾JÈODG'N422B·¨sçÎ5jÿ‰£JP%¡JBî-wV%Dfn ¯ô/ÚФ?”*ÑÐtï}}}ggçÆ(zýºƒƒƒ••U·nÝ\]]5ª„Æ:¾¾¾fffƒ OuÑÖ¡JP%¡JBî{•ð²»—ßG wªDÛP ðÄO@°àèèØ¿ÿ¤¤¤ððpssó˜˜u•ÐX§¸¸xÒ¤I/¼ðBjjjAABSäAR tÄtª!T BÈC§÷6Æ·…1P%n0dÈ¢S333___Q8qâÄiÓ¦©¨„Bù N ÕȦ?_«o#6A• „*A¡JP%î¾JôéÓçý÷ß/,,l×®Íè&zôèÅPQ …:r•P¨F<•h#6A• „*A¡JP%î²JTVVvèÐaݺuHVÈÿNNN7HHHPQ …:r•P¨FH•h 6A• „*A¡JP%î²J888˜››WTT S##£E‹©o%?ÁI[yóæ 6L,+T#ªJÜs› JB• „P%¨wZ%ììì™JKK“’’,X`hh(Ö®\¹ÒÂÂ",,¬¶¶¶ªª*33SE%ê„„„˜˜˜@I”«‘û]%ê¯ÿRW_/^Wëëå*Ñhõ×Qáž¼ylôØ÷å¿¢o<ðí¾§JB• „*A• JÜ¡§]ôîÝ{òäÉÈTÒZô»|ùrccc333x¸­“ŠJh«ƒO–¡C‡ÍŸ?_¡¹ßU¢NMä/åµwô¥÷ÒÛzo~¨÷ö½im>|Œ*AU‚ªU‚*q{UB0$+ülEòòòÚÚÚ5EîS•PÿVâZSb¿·ßJ¼¸jU‚ª!T ªUâ^©¡J4«uMm¶ÁË®ÿu˜*AU‚ªU‚*A• ÷‹J´›ÁR%¡JB¨T ª¹_T¢M=¢Ž*AU‚B• JP%È}¡mÄ#¨„P%!T ªU‚ÜG*Ѧ JB• „P%¨T B• JB• „P%¨T B• JB• „P%¨T ÒFAN†AÔ_kT üÄò/×ÕUqíz£Jà'–['T &(B•à!T ªÄ}ª„¨óõ×¹§oz}â¼¼¼Ó§O㧨•“_p:ï·WN~kºÊA›¹y97Úl#P%¡JB¨T ~+AZI}]ãW¿¾®þZ¦ö­ÄÏõ¿½ø­U‚ª!T ªU‚_/”¯ë×4ª«Dë J0Aªÿ¡JP%¨äAãÚÕ_Uâ—ëÚTB\+W]kA•`‚"T þ!B• JP%ȃÆuqÙõUé×IR )Hÿrã§ë­½‰U‚ ŠP%ø‡@U‚*A• HË7n+~‹ä DÔºz½ñÕj¨LP„*Á?B¨T ªy©¿ÚД™ÑįU~ás%¨„P%¡JP%¨ä!^ùu¿<ÍÕ¹¯úë×ÛÎüP%¡JBÚ–J\þ*A• ÷‘JÜåU‚ª!„*¡•³²öQ%¨„*A• JªU‚ªDËb|È»5S©§J$''µtÕƒANNNVVV™í{;°ûª!T BH[T ¼²#©’J q—;w*WÛ¸qczzzKWµ‚={öxzzŠÌ&¨¨¨X»v­tÓ¡»ODDFÕì°1ÈŒŒ y!Ž ·mÛÖÒuœR]F• JB•øÿöάª2ÑûœyΙѼ¤d™Ö©ÔÏɲ›N¥ÇLm&Òhfl™´Ô1kì"–if¦¢)‚r ¹JxCTPDî÷k€‚\vˆ‚‚Pº7ÂGˆl0â||yOïYíÍ^l ôÿ{öã³öZë]ë]ïZ¯ûÿcÝ¡Jô •°íÓÅ6A•¸©*…¸koo¼Ôµ*QZZš““s*úDDD\“J\ߺº\%”#“““©¿tª!T BH/S‰ìÝm®Óþç³òÞÿQ ñA‘ªü«ÿþúŽâß.YZVéöP ¤ßÀÀ@$Þììì®U‰ÈÈÈÝ»w_‡J888@måÌW‰ë[WתÚõDò”#½¼¼0’*ñ+±²²š;w.¼Œ*AU‚Ò›TB$jS?µ©·Àç6P‰ÚÚZ¤ßªª*???ƒ $&&º¹¹yzz;vLnU&Irrrœ·lÙ‚Ÿ˜ØØXQ*33ÓÛÛÛÉÉ éZš‚q&ˆˆpuu•áWª‚Héî§§§w¸®ÔJLB[a¤V«_QDTU¥2 111È–>>>B¯”‰±sïÞ½H•ÆÕŽŠŠ‚É“#¨6Ž=%UBe¥*MŠÖHMM•³as°QÆ*ÑaËÜ2*!X¹reee%U‚ª!¤—©„ñY‰õcÚN%÷ óÝñéìù··€J¤¤¤lÛ¶ YYYˆë55ÿ»Éˆ¯...¹¹¹‰Õaª ·*“$¨mpp0ôÙO,¥ø±"„4d`¤nÌÓ¡J Tb±* #ŠWTT ømݺÙÏx]qqq»víK‹ŒŒTVA]äp•Êà+Ú"STT„ŸHeb///‡° gšª6þ•â””täÈ‘èèh9Fe¥*MºgϹ»qT`¶ÝX%:l™[L%ÀŒ3|}}•·ÒP%¡JBz´Jàß6ŽÂ#j+¸kn•@´ñÆòííí‘~Åx¬¡7!!AÎ)ÿN®2ÉåEG­­­áâô„Ø:Ä]ÄlS™(‹´†Í—*!"ÿì¿oß¾ÐÐPãu! nÞ¼¹¥¥EÔ Â0’!VÚÚŽJeÏÝÝÝe•DbÇÏ%6V!_W…£TUUò'¢>"1¶E]%ÚÚo|§KÄmט„"ø‰–‘A2X—V«E˜‘¸c«C¼ß³grKMUÆ”J´µŸY€‰Ó ¦ª-®qrssyUyÛµÊJUšöŸª««+))ñõõE©ÂÂBà•U-#'<ê:?•IÊ©buÝúAqESll¬ùB• „*AéY*An-•6>)€”‹¤ŠÈÚÖ~Í ,¾ºººž:uJyÉÊ$%¨6Häjq‹6ÙÞÞ9ÙÅÅE<©S•”*͉Ç2±¸ƒüs½ÁºÚÚÿÎ/î¶çÏŸÇäbÕ+£¢míq‚•@Tª,Š5Ša¥J¨¬T¥IÅÏ4&ùøøÔÔÔ`Þ„E!Ù*+ÖaËà(·3äœ2ÿ‹ È©Q3£x‡gjº H–ò.xª!T BU‚*qsUÂL£Lý)Xe’Ä0埬‘N•/q»>Ð2h ãøj°®Né’Ê\+*+UiR™¥å} æ|ƒ–9_ŠŒ,"Æã_q˜‰ŠR¦Š˜:J;ç¦@• „*A¡JP%nºJž†ºJ(gä}âJGÃr ò~•"‚ãSøU‚ª!¤§_=[[ÛÉ“'ÃðïÂ… ß}÷]St¥JP%Èí€8 PZƒ¼ZÞ¹ ¼xI"R´)•P)ÒaMz¦GP%¡JBsæÌ±PðꫯšŒµT ª¹=èð¬R1¤ H/0^B§*aÎñ©´ ã|N• „*A¹éDGG+UâðáÃT ªUâ6GÞ7­¼[Dª„1øûÆ#ºõ½T B¨„릤¤D¨„xÚ¿1ëׯ·ø%cÆoíú«š`ð9ºž*A•P§   //¯;–\WW—œœrêÔ©Ûðpº¾†ljú­ /•“¤¤¤”——wZ¤ûö8U‚ª!ä0±SSÅY %×pVÂàó·“Jìß¿ÓÏ|ùå—»wïFšê´”ñܺj{³³³+++åûݺlV'’¡@§ÓÉáÝÌiX±Ë²²²”#qT`¤|žù˜z·àÙãT B¨„ná§Ûš”7| FÞˆóóWUÿbø§¹gn=•رc‡V«Åóòò¾þúk$R„ù_,KKKsrr®©2oööö7,É‹LqM*qÛÕ* ™œœ|k«„¿¿?ºU‚ª!ļ_AÃK~xó꧃ë‘näçèî™[O%öìÙ#¿¶¶¶îÛ·ÏÁÁAýÐæËÈÈÈÝ»w_Seà2[¶l¹aû›€-…¼ 1š¯×±]]®Èÿ¨§ryyyaä-¬VVVsçÎ…1Q%¡JB®C%zć*q««¨­­ELMKK@xswwwssKOOï0Xv8ONN޳³3¼?.±±±*‹’b*‚=Š„„„`LBBBLL ž8Q‚…dffz{{;99!6K3———`9ÇŽCÓEGG#ìAŽð3×á¶GDD¸ººÊ¿ð+UœíB=±"1 {#µZ­øŠ""¢wZgå*ávïÞ½ÆE QQQ yrÕÆÂqUWWWRRâëëkê¶ksvew¨„Mll¬Ê½©„P%!„*qƒUBäg{{ûmÛ¶á«2¶¶¶"‡#¯"p"?Ë?Y+ƒ¥©yP᯿þãÅeÿ¦f»&•@; £ªXˆ‹‹‹xìRW©8xð T 3·«­ýïüânkpþüy,A>!Öü:)//Wš©TÛ(_ ®T ••"ÃPITûÔ©SÊ œDÀ$ŸššS*aήìr ?ÊûÓ©„P%!„*qÓUÂP¬·Ã‹m:LùÆ7sÕ)---êoлÛn°]=ªÎæ¬ãMýyßÌÄÞ%»²[¡JB• ä6§®®nÍš53gΜ?¾­­í»ï¾{àÀíÛ·wødËî@«Õ®_¿þÏþ3÷Åí¬„ôF¨„P%¹IHH¸¯yFYYÙ£>jaaáããÓÝkÇë¼yó~ûÛßbuãÆãî JB• JªU‚^Ayyùwܬ¯Óé tT"''§®®"C• JB• JB• ¤1}útdø>}úÈÅH¼¼¼ TB«Õ¢›Z~!ÆãÕK &MšD• JB• JB• ¤·€¸hÑΘ1cŒ§âGP¾›©¤¤äé§Ÿ¶²²š={6þ·X¢;ÿö·¿ý·û·%K–,Z´è?Ú™5k–¼K´ÃRT ª!T ª!T Bz;éééB%žþy•Ùš››GŒeÀ@KK ôÁÚÚZLzâ‰'Pü?ÿó?srrÂÂÂÄÒâââÔKQ%¨„P%¨„P%éÕÈðÿÜsϩ̶sçNÌsÿý÷‹¯Ã‡ÿÍo~#®Yzúé§1iΜ9ÆoŸXZ@@€z)ªU‚ªU‚ª!½šÒÒRþ(ï<=='NœøÛvúõë·páÂåË—cž¼Ñ΋/¾øÂ /¨Dkk«XšxKתU«L•¢JP%¡JP%¡JÒ«ÁÏœ¥¥¥ÈÿåååÊ;1á_W®\‰áßýîwƯÊRQ •RT‰Þ¨Å„#¨„P%¹Ù¾}»Èÿ‡–#ñ»&F¾õÖ[ø 5_¿ùæ1CKK‹•P)E•è*Aéª!T Bn[ð37wî\qç5¢¾‰ŸE¥J U6 _ǯÑhòóóçÍ›‡ß>Lzì±Ç0~öìÙmí÷Y‹RÞÞÞê¥ €ƒ 4sZZZüìª!T ª¡JP%éÉìÙ³±ÿü£Ï¾}û^~ùåÿøÿxõÕW322Ä 999¿ÿýïå“cOœ8‘~~~¿ùÍo0æ®»îœkÖ¬3<õÔS•••¦J&䯿.#å…Á•*AU‚*A¨T Bz:.!!!99¹¢¢ÂøJ$ü&âç?|×´Ìë+E¨„P%¨„*A• „ª!T ª!T B¡JB¨„P%!„*A• „*AU‚B¨T B¨„P%!„P%¡JP%U‚*A!T‰^ âRrݵliiAA¤D4,^ªU‚ª!„P%®›¿ÿýï¿ûÝï\]]•# 1òücl𪪪_|ñŽ;î¸ë®» 0{öìÚÚZƒÍ–––ãÆÛ±c‡² µµuÿþý‡ Ò·o_ L™2Å Ô=÷Ü3oÞ¼„„•¶}úô5j”••Uhh(»U‚ ŠP%Ø!ävV‰É“'+GÚÙÙõL•@´6lj[^^ޝfìØ±cÆŒéNl¦fgg{zz>ýôÓÈüÐ"ŒG,:tè“O>‰¯hÕææføÂªU« J¹»»?ú裣G6ÕV“&MÊËË‹÷÷÷‡‰`ù(¢^çÈÈÈmÛ¶±§üJÐàèT B¨„B•èQ*1räHDb'9ù#{ J¬X±âž{îA#È1pŠ;î¸Cæyl޵µµŽ‹‹ƒùùùaxéÒ¥ƒÖét¦A–Ú¿?Jåäät8ÛôéÓåWì”™3g0»C¥Îï¿ÿ¾••{ʯm8wîÜäädª!T B¡Jô•°µµ8p §§§SPPp÷Ýw¿óÎ;R%ÂÂÂ^{íµx`„ ʋիWôÑGÓ¦M5j”³³³œdªHkkëgŸ}öÐC=ÚÛÛ{ÆŒb¶ÔÎΓPÊÁÁÁ¸ª(;hРåË—Œ·±±ûK!¤kAAl lB¥d)„U”ÊÊÊêT%b',ÌÞÞÞÔ&£U‡jii9~üxQsS-C:U ÁÊ•++++©„P%!„*ÑTÙÿJqX·nÝ¢E‹>üðC9yØ×× ™™ÕãçÏŸÿØc7S7mÚ„ަ^dÍš5ˆÖ˜ZRR Awqq“6lØðøã#ɇ„„ 2$<<Ü ªX8V±wï^ƒñŽŽŽwÜqGKK‹¬_¿ó;v¬¢¢»víêT%š››!&÷ÝwìÕp(´ƒ©MƪgÍšõì³Ï¦§§«´ 1S% m(¯j£JB• „ªÄMT‰   ¾}ûŠëy䑘˜¥JHPdòèèh©÷Þ{/¢W[û“‘ú÷ï RA}ðàÁ+V¬SGŽ)Îe`---噑™3gΛ7Ï`Q©©©XTbb¢ÁøÀÀ@ŒGh›µqwwGà„_,Y²D4u3µ(õàƒ¾òÊ+ƒ zê©§Ä™©Ï?ÿ¼ÁHƒV2u“ÁlÄ|•Ì™3'))‰*AU‚B¨7W%”ˆ‚'N 6 k4P‰ôôt{{{¤b¤ßÇK•@q9´Â××W¥rš²¸P qV¢¤¤“&NœøR;ˆnPU$=ÌcüÐ$ˆ,M$6çž{îAÎ\¼x±lFƒ‚Pi„1cÆlܸqÔ¨QÆ £®0¯·ß~[¥•ŒU¢ÃÙȵª„ œ—*AU‚B¨7W%ÄÀŒ3Ö®]‹ˆ‹¯R%P‡  i;;;'&&š£¦Š ›a822ÒX%„& Ìúã³h>}úlÙ²Å`¼­­íý×ÉÍ‘8I±ð 6¨4‚(…9ø êR%©úôéãçç‡XµfÍñL$u•P)‚¯ýû÷ï½÷V¬X1mÚ´áÇË縊;²ƒƒƒ›››ëëësssk‹˜ûX°`4ÅŒ3&Mš„ùÕU"??¢4qâDñ^ 4iNN޼kCY Ñ2{öìÛ uÆFUUU%''/]ºËô÷÷WßäÀÀÀAƒ‰ûPTf#ª„Mll¬P%¡JBU⦫HII‘ïSPÞ+±|ùrXÆwÞ¹~ýz[[[cqõ‘ʽ¦Š´´´` ù’%KÊËËá"Š·µŸ˜øä“OPÊÒÒó‹Ç"£ÑhÆß·oß#F Š5Êàmת8qâijÏ>‹"wÝu*öÌ3Ï ÌwXj÷îݘmÏž=Æm%Þvµ3ºü)§šÚdüÂN™2eÀ€©2QÇËË«±±ñšŠP%¡JBU¢[UÂLêëë›››Å0òU—ÉÎΖWûH°±HqøW}áxYYYÓ§O>|ø¢E‹BCCóÌ©U^^ž<‹qÃZI«ÕÊI×јä: JB• „ªDOP‰®"$$ÄÙÙ933sçÎ'Nœ0a‚ù׫˜jðÆoØØØüúEªU‚ª!„P%z&ááá ,€DL:õã?V^›DU‚ª!„P%¨„P%¡JB¡JB• JB• „ª!T ª!T B¡J°ý ¡JB• „ªU¢'ÓÒÒ‚œ‰x©|×6¡J0AªU‚Bn[•¯]suuUŽ,,,ÄHùŠºÂèÑ£×3fÌh3z_^RUUemmÝ¿ÿ!C†ôíÛS¦Lé!m"ßš×§OŸQ£FYYY…††²WR%¡JBU↩ÄäÉ“•#íììz Jh4š¼v¶mۆꅅ…‰¯eee˜ºo߾ݻwwùJ‘'‡úä“OB¯°;š››V­ZÕsTbÒ¤Ih„øøx8œÂÝÝ]½Tdd$Ú°wu4lºU‚ª!„P%z”JŒ9ùÁIŽ;v,Fö4•ÄÄÄ@%„At7K—.Rô¸qã0uÓ¦Mˆ÷`êEÖ¬Yƒ‹©%%%ˆÓ½...bÒ† üñäää!C†„‡‡_“J(ï•Àðرc'Mš„E-[¶¬_¿~ûÛß`‘‘‘?ü°¼<©Ó5VTT`E»ví2UÈ6yA+Å–¢ˆ˜K‚ŽI)Àr°Y½GydòäÉ{÷î[Íùë_ÿŠ›•••3¿AŒU@ë° S{5œ5kÖ³Ï>›žž^\\¬²³z¦J´-*,"=U‚ª!„P%n®JõíÛW\ƃ”‹¬®T *€H-#ñ½÷Þ‹èÕÖþ€£þýû¨inn(®Ø—*LÕ§O???Ī5kÖ jz{{««„J|íß¿ÿ{ï½·bÅŠiÓ¦ >\¾AÜ‘ÜÜÜ\__¯|Rw¨„™kÌÏχaMœ8Q¼Wû"''GÞ±xñâ±cÇfffB+œœœ°¢ììl1éóÏ?øá‡±›:ôÔSO©«D```ee%Zþã?~á…̯–ƒfD;WUU%''/]ºµõ÷÷Wß XÝ AƒÄ­1*³õ4•°±±‰5Pª!T B¡JÜt•)))ÈÉbXy¯ÄòåËawÞyçúõëmmm‘BÅÅ6*÷J˜*ÒÒÒ‚1H¿K–,)//GT¹·­ý4Á'Ÿ|‚R–––˜_<ƒ¨[UÂÌ5ž8qâÙgŸÅBîºë.lÑ3Ï<ƒÈ-&!á¿ñÆ}ûö}FeeeJ• JB• „ªÄµFÊÉ“'+GÚÙÙõ@•Ðh4yílÛ¶ Õ _ ^{M•DFF¢­Lí÷I“&¡õâããýýý§L™§pww¿îv7¨$ºU‚ª!„P%z”JŒ91ÁIŽ;v,Fö4•ÄÄÄ@%z…AÜ\•xÿý÷­¬¬Lí÷éӧ˯8ÀfΜ9`ÀZ×·Àîë;wnrr2U‚ª!„P%zŽJØÚÚ8ÐÓÓSŒ)((¸ûî»ßyç©aaa¯½öÚ<0aÂåÅêÕ«?ú裌ŒŒiÓ¦5ÊÙÙYN2U¤µµõ³Ï>{衇Fííí=cÆŒÀÀ@1 [jgg‡I(åààp­*aª¸¨dbbâsÏ=7bĬíùÁÜÿý¯¾ú*B£r¶#GŽ ÂÇ_ºt)B£\²““Óc=†fA›äææ,|ÿþýO<ñ„‡‡‡Ê†›£*í©R½wß}wãÆ²ªãÇÇ0vèСC---1fùòåê*¡a”ööö¦¶Âx¦6¶›TB°råÊÊÊJª!T B¡Jô•@¶Ç¿RÖ­[·hÑ¢?üPŽA†ôõõEÄB΄t 2#`7S7mÚ„x¦^dÍš5ˆ£˜ZRR‚lŒìêââ"&mذáñÇONN 2dHxxø5©„©â¨äرc'Mš„ñË–-ëׯÒ;¢xddäÃ?¼jÕ*9Û£>ŠMÞ»w/rrÿþýýüüÄ$uÔ¡i³as***d©GydòäÉ(%ê£ÒVª„J{ªT:ï“*RØR £’³fÍzöÙgÓÓÓ‹‹‹;U ÁŠLm…ñMml·ªÀ&c½"ÒS%¡JBUâæªDPPPß¾}u:Æ #«+UB‚ ©FGGË|{ï½÷"za¸¥¥ù6 @¥HssóàÁƒW¬X!§Ž9Rüíhii)ό̜9sÞ¼yæ«„JqTrôèÑh4 £ÑPpíÚµbÒ|ų=óÌ32"3ÿãÿÀ¢#–,ëÜÚÚ OAAYꡇBÚ4®¤q[™£¦ÚÓTõTT¢íZ.p<ÿüó# ¶ÂÔ fën•Ì™3'))‰*AU‚B¨7W%”ˆ‚'N 6 k4P‰ôôt{{{$I$ÆÃ‡wƒ}}}UŠ §)‹ •g%JJJ0iâĉ/µƒñˆµæ«„Jqe%µZ-fKMM_W­Z5a„·eóæÍ÷ÜsÿÔ©SÊp^yå•?ýéO*‚`N[™R Síiªz]«°È·ß~[e+ŒØál7F%lllp$P%¡JBUâæª„@(]»v-b!¾J•@,X0fÌggçÄÄDsTÂTd3 GFF«R&mܸñÐÏ  ù*¡RüúTÂÑÑn… ÏÅUFV$XùÀ+ƒRæ·Õ¯T Y½.T‰ÚÚÚþýûoݺUe+” T™­»U¶èááÑéõTT B¨„B•¸1*Ô¯_¿#F¤¤¤(U¢¸¸)QŒlii1G%TŠŒ7ÎÎÎN  ÿüó‡~ÇáC‡žzê)¥J4HÜc¼ßÑþ¨gUUUrròÒ¥K!’þþþê[¡\ Êlݤ666±±± @• „*A!T‰›® %%%''G +ï•X¾|9,ãÎ;ï\¿~½­­-¤¸|H%úš*ÒÒÒ‚1±K–,)//G$ñµ­ýÌÂ'Ÿ|‚R–––˜_ œU‚*A!½H%:<1!l¢¦¦FØ¢Nyy9Â’ÏÉ“'5 òUAA‚Ö Bn!pHãÀÆáƒ\¼ ƒ]ݱ]ÝÄ7!ÓâÍ5þ)9ÊS¦TóÀÖõz=l 9ÓŽX&(žE• T ª!„ô•h3:1a`âÜÄ… v*+++**Ξ=[VVvºD¬’vNrK ŽgØâÇ¡Ž´Ã?º:‚<‚nòUR¶Å¢µþ)ÇTNIH•Jƒ5  CÇ’¡ø*ÞpG• T ª!„t­JLs Ä@7}2N¤ç᳟´\„"ÿ”$ß„Lï¸ ¯Ø´mÑ)žQÉ_Mp ÿ",ö‹Ã1.‡¢]B£œC"ñq ‰à‡Ÿ[ì#Žmä8ÔqÀã°ÇÁ.à™„î€N®‚n2eËv‹·Ö¡ãèT%Äe„P‰úúzF#.—ª®®†›ˆ·©„*A• „®U‰nþ¬¿úy»«Ÿ·ðYg±h­Å›k,~fñÏÕÿüôêgÁ*‹ùŸXÌ_i1ïc‹7ðYñ?Ÿ×—óÃÏ­ö‘‡7uð8ìq𣠈¾€N®‚n‚Îò–4\åê&¡pñfùææ«Jûþûïÿñ?~P Lý±ª¡JP%!¤«øAßÜ}ç#~qb¢ýÜÄãs‰ßˆÓÞ±é^±i?Ÿ¤ŸdÈ$ùù2"‘~zõGy<ãðǹ8 qõLDlº8N®‚n‚΂®¾AÅ# TB\ãäââbeeõÑG •7eS%U‚*A!½åý×Êû&š››Å¥Ý—/_nhh¸ÔBÑ„ÜàPÇ<~tÆÆFtt ù Ñ_Ô=ÂX%rss_~ùe¨Ä‹/¾vñâEª!T Béí*a`---"ùˆ¿£ §@šºü3 „ܢȃ<{qü‹¾€N®aìfª¾xñb©666çΣJB• „[C(ÄÝ£B!Bžª ä–Gœ€a,æx„JìÝ»×ÚÚZªþuss£JB• „[Æ&Œ…BÐÒ΄Ü6ˆc^vk•c•§öàß}÷xq6ï• „*A!·žMH¡N!ù‰ÛƒÃ^ve1§Oßv}ùòeñòÇóçÏ×ÔÔP%¡JBÈ-ìJ­ ä6Ä ;\SW¢JB• „j!·3×Ý}¨„P%!„B¨„P%!„B¨„P%!„Bz,^^^p __ßÀÀÀàààýû÷8p $$äСCGމŒŒLJJ:~ü8U‚P%¨„B!ž• „*A!„B• „*A!„B• „*A!„B• „*A!„r«ª„^¯ohhøá‡*++Ïž=[UU¥Ó騄P%!„BÔU"$$ÄÚÚúå—_¶²²zñÅñïÖ­[©„P%!„BÔUB¯×/]ºTªÄ¬Y³***¨„P%!„BÔUâÊ•+ÆÚÚZ¨ÄÁƒy¯!T B!„NU¢¹¹¹©©ÉÓÓ*akkûý÷ßWWWc*U‚P%¨„B!ªÄO?ý$TB¯×kµÚ9sædee •øá‡¨„*A• „BéT% ËËË«ªª øÚÔÔtåʪ¡JP%!„B”*qéÒ¥––ùR èCYYÙ™3gÎ;÷ý÷ß_¼x±±±–¿ JªU‚B!Dª„¸BxDuu5$âÔ©S§OŸ6qþüùºº:½^ϳ„*A• „B1ÈH0…‹/–••Á 5ÍÉ“'KKKÏž=ûý÷ßÃ&xV‚P%¨„B!’íÛ·ççç'$$DDDDFFÆÇǧ¥¥efffee;v,77S¿ýöÛòòr(U‚P%¨„B!www;;»7ÚÛÛ;88À¼½½}|||}}ýüüüýý÷íÛ—˜˜H• T S*îãââ²uëÖ-[¶8::â_ ;99¡³xzz>|8::úH;á„ÞOXXXhh(~÷ìÙ³³÷€Ú¢Î¨9êÏHÈ-€ˆÈ‡BØØµkÒ;b<ò‰O;ÞæQPP`ÎlB°ð;v¸¹¹]_¦¢Jª„J¬_¿þøñãøúÃÏ`øÂ… èÚø½ŽˆˆÀ@lll|||BBÄ<‰Ò›A_ÆO¶»Wàë˾úóÛ_O_¸kÆ›{_zsïô…{ÿò¯ |þºøê¿¯àóvõ[A/¿4cÑÿÌ€f~yÑÕ‘Öo_¡»‹`#ñÕú­½·Ý³pÅvÔõÇVpWÒ«A¢@®@_FÆ@Ò@Þº¬©©A©¿TÉl4©Iõõõò_1€õزe U‚.Q‰M›6%''_¾|¹¹¹ùÊ•+z½¾®®üèÑ£111ÀÔ´´´ŒŒŒÌv¾!„ôZЗCCCÿ±Ôë…ÅÁŸz¥9,ü"â´kd™SDÙ–ð2¯ø2ßIJ¯’Ê|¯{Ä–¹GŸq:ãqS”m>rfëÑ3Αg¾ˆ>ãsÆ3¶Û‹l=ZæQæYúÅÑS[®ñÍøË²«õÇV`[¸C 齈Pt¾Œ¤¼Ô³@æG ùñÇ[Z~­•PŸ i?¶`™<'''ª!]¢öööè¶Ð‡††ô/{~~~XXX|||JJ ºyvvöñãÇóòò0¾€ÒkA/F¿žõ¾ÏïçîÝvÒ#áœWÒwےΙtÁ-ñ‚kœÖ?C© üF»#ó‚úßÔ ^É<Ú§ºÄkâ´N±Z×x­[¢Ö3IërÁ7íBwi¸à™tÁ;ù‚WR•{ìÙµ5£^úëR߸¸8lw+!½ä ôbd $ äÔÔTôëÇçääÀ&Ä_84ƒo¿ý¶Óy°(ñºêêêèèhª!]u¯TB«ÕŠ“çÏŸ—@¤§§£/£—””œ>}º´´´ŒÒ;Á÷¶íû-žòµþòØ–˜*÷ä îÉZ·$K¢nkœnsŒîË”êmiÕ^:Ï4 ë\Û'm‰×9Äêì£u£t›¢«7ÇV;Æë¶&è\’t(ÛÝE6Çêœâ¯tÇ'ù‰ç7F›éuÜâYOÿ`lw+!½$ ä ¤ d $ ä ¤ŽŒŒ qA5&5^¾ÜÔÔÔÜΕv­õõõþþþâ%Ԩĕ_rùòeD«_®–nFxDCCVãêêJ• ¤KT"99ùÌ™3ÿ·®#Ñ©aëiiiÇÇÏôÉ“'ÑéÊËËÏ;÷Ýwß}OéTUUåææ¾ð¶¿ÅK§zkÖE}ï§uLÐ:Äé6ÆêÖEê>;ª³×:$j“´ö Úqºõ±ºõÑW'­¨þ,¼zuxõ§Gt«Ãuk"tvQº 1(¨íî"¹r£sˆ×9Ækíc/|z´ê>‹¿záØ"lw.!½äŠÊÊJd $ ä ²Gzzzddd~~þ… `úvšÚh,\¸ÐÚÚZŽœ:uªé—\ºt ³Í›7 Gÿ3ðNWTT”˜˜èééI• ¤KTÂËË+33¡ÓiÑm¡ö ÇŽCFßDGO×jµÕÕÕ555µµµÿ—Ò A/Ưð;,æÇY¬/´p*~ÒëÔ ~O{—õ(¿Ï­ün§ò'½ÏŽÿª|¼ÿÙ'¿:û¨÷Ù‡=Ëv/Ðíì½.gït*ï·µ¢ŸSù].åþ8û€ûÙQgÙv¶»‹Üë\1Ê­üQÏò§}Ê'uö÷%.Å -þ•<䯻±EØ.î\Bz#HÈHèÅÐŠŠŠŠÓ§O#ç#ÄÇÇçåå•––Š/8wîÜÆ_þŒ¹¬àÌ™3—I]]œÙÎÎ3`u9(((@ìñ÷÷§JÒ%*áãã“}òäÉsíh4šÔÔTt4x„xküÅ‹Ñ%ÑmÅÍ ‘ÒÛÀOvJJÊ¿[í³XqÌâ‹Sx•Møªü¹íçžÛ^õŒoÕÓÞU{VZí¬zyOÕ+A•Ó÷Taø…€*L}ú«ªÇ¼«FyVú²ê±/+Çm«zÖ§j¢_Õ¤Wgèî"l«|§ê9¿ï0Ï”€ÊÉþc}Êïp;e±&ÿßÿšœœŒíâÎ%¤×!ârÒ2:2r>Rl ÿY8q¢¤¤É_$+Pó Ξ={þ— ”rþ×^{­°°°¬¬ ËÄÀ7ß|³}ûvª!]¥ÇGç*//¯¨¨€S@%ÄëÑÑ»ëëëÑëÅõŠâÄ !½ tä«g%þyØâ³Où–ý}ï÷o„V/8tñõ›àÚ?ï©~qgõÂCÕÿ ¯~÷èÅ·Ã..<|q~èÅ×\|5èâ+»/N¼øbÀÅ?~]ýÒÎjÌËhZ‘ÚôABÓ¿¢õ›¾ÑoÍÑ»×;fë?ÏÔ¯MׯLÖ” ·ÓcꛑúEúw¢õKãô+’šV§4­Ëhêî"ïÄ6-MԜڴ6³éóoô3õëS—Õ>ýy–çö`l¶‹;—^Ç+@Æ@Ò@Þ@2Aö@ÔÏÉÉWY㫸[\lRàíí-îß” ºÈa1JA.\¸Pý3⎠,³´´ôĉT BºJ%Л ѹÐõÐÑÑJJJòòò*++1ÏåË—¯\¹òÓO? ƒ`“Ò{AwÎÈÈøð‹ÃÖ_®Njp8®wÈÓoÌÕ¯Íjú$³éƒÔ¦/ õ^½Ï·ú/ õ.ùW§~~\¿&[/¦¾ŸÜ´$©é£Ô¦U™Më²õ›Žë·œÐww‘Òš>ÍjZL¿9Oÿ"O¿)ýò¿âO¾<’žžŽ-ân%¤÷"œI£±±©Ùãøñ㦢¢á±¤®®N¾«Úååå*SëÛÁ‘sÄ5TEEET BºD%vîÜyòäI;z±^¯¯–ï’Ðét MMM?þø£ò¬!¤7ÒÒÒ‚Ÿæ°°°•n‡_÷=ùI”öóôKP‰uÇõŸfé—eè=¾mô9Õè_ÚèUÒèþm£SA£}ž~Ý1ýª,ýò ½mÚÕÏòoô«sôrõ›O4:5vw‘™úÕYWìQü›úu±ºÅ§×zÆV\¸p[ÄÝJH¯éBž•@ê@ö(((8wî$B< “:½ívÐé}⦌~ø!§¤¤d÷îÝT BºD%‚ƒƒÑgÑaeCÏ…¹££AÛѯ!Â&ZÄ ìyÇ!½üžVUUEEE¹yïZöeÔ›ÛræzkþásòoÛNþÙã俾.^²³xéîâw‹ß(þ§ÿÉy_”Sg¸_ýüÕóäl¯“¯ùžœïwòÍíÝ^D Ìñ99ÏGó/ïc+=Pó@Ô[má%¤÷Þ%!n”@º¯¨®®†Dh4D}|E1ÿI/æ¿íº¾¾¾²²rÿþýT BºD%’’’ a è¿E 4í` ´´TùF‰:BHoݹ¼¼<++ëСCþþþ^^^½ÔµEQsÔ_\ö@é½È4‚‘ŸŸ/Òˆ’Bóøî»ï ÍF,633óWª!· ê*A!„BÌÌTB%øÇjrû ¢lB!„ó3Õ„B!„ríðMå„B!„ë`1!„B!„\;|v!„B!ä: JB!„B¨„B!„ª!„B!„*A!„B¡JB!„B¨lB!„BU‚B!„B• „B!„P%!„B!T B!„BU‚B!„B¨„B!„ª!„B!„*A!„B¡JB!„B¨„B!„B• „B!„P%!„B!T B!„BU‚B!„B• „B!„ª!„B!„*A!„B¡JB!„B¨„B!„ª!„B!„P%!„B!T B!„BU‚B!„B• „B!„P%!„B!„*A!„B¡JB!„B¨„B!„ª!„B!„*A!„B!T B!„BU‚B!„B• „B!„P%!„B!T B!„B1Å™3g¨„B!„kõª!„B!Ä|ÊÊÊ൵µT B!„BȵzDï• „B!„˜ÇéÓ§¥Gð^ B!„Bˆ9”””(=‚÷JB!„B®É#JKKy¯!„B!äú<¢÷JB!„BLS\\Ü¡G`˜*A!„Béw0þŠB!„BŒØ´iÓüùó“’’L ÿ~C endstream endobj 577 0 obj << /Type /XObject /Subtype /Image /Width 1049 /Height 675 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 1416 /Filter /FlateDecode >> stream xÚíÔ± ðÞÔŸ¹F3‹}B†$[“v蜒ˆÜgx%ÿ,8è²ý endstream endobj 570 0 obj << /Type /XObject /Subtype /Image /Width 702 /Height 603 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 578 0 R /Length 17866 /Filter /FlateDecode >> stream xÚíÝ@gÞÇqrɽ¹K5É¥7£Ñ\ª]“X¢&¹$–KLÔhŒ½÷.ŠD°cGcEŠ(M¤÷ÞYª4 • ذ%êeßÿìYö%|?7GfŸyæÙç™Yöù͸€‘‘bþüùqqq999Gô>~Á‚Fed=33sïÞ½ò5@²²²ÊÃCDDDFFÆN€*HT S“ƒ>>""ÂÛÕuõðæíÚ›¶l%‹ÙÇíå¡Ê&© ÕªÚ=!!!66600pýúõ‹UòP e“T¨fwõÙwxm·|ئ·í0¥yûÉM?›þñ¸¥Ã¤°úgw–59$VAfö[óyÆþ½ y‹_us1Ây؈_v߬…q£·d“Tj•î.ÓzTT”ƒƒÃüùóW­ZeµÙÊÁa›ƒ£ÃæÍVòP e“TjÕ<ûÂMæMF7üxV“¯W>|냷ôíº²cãwßÝP6Uó쀉s³ßhï¸=Ñö–‹LMM—mt‰ç`÷ƒš4U ³;×äµÞz?úó/Y®¹œ—w9'çØò•Ñþ³á­we“Tj•îéää´téR+++//¯xMÜž½»÷îÝ­ÑÄ{y{I~MRAªUõì 7˜¿7üÕæ¾Ógë¬V:™½ëxÊòpÓ¯mÛ¶2ëá¯I…ªžuÏæÙÞ¼ö¡ß×FÞ±F–ôÿ¢ÿBçÛî`øTit‚MM«G:oÿÅBçÛ}yGz¬üþ‹o®ù~€ùÏÛ"ïÛ)ºGrÃðr[wnmÔjZÈ-¶»måŒ/ÊβћͿø~†Gì]ðŽ¥ÃË?ˆþÍØ¥Á|—â/A}IÇUÁÓÅżñ»ö¯¿™õòÛÅÍÛþ:zÂïN.¿;8]1¦¸ÉGY/7–MRAªUº»ŸŸßêÕ«·mÛ• IÏHËÈHKHH‡R(›¤‚T«twwçV#höV·m͇z}µ,Þ8ð «gö–9‘£ôèÔe[3Ù$¤Zê¼h¯ÊKù³I¶..+êcÔÚ8¸êºö&fëÜjÜH˜ic£Æ“n»asÚµ™åWÃŽ…9´222u »ÝgÝj*czë¿'Œüïµ)lÁö{vZ®?Ô·$g46úð'ï䨓pK]ZÑ¿¹r>¼ÉÍÛÅv­ñ ÏŒŒ[…Þ•ñ;Ï0z¾­°ÿ&y9}aæÈ·*þÔw’è*l=nÍ÷ýëͳÔÿýɆڦmµ}h¿ÿQÛäCy(…²I*HµJw···—l)QAýTƒúÉy(…²I*HµJwŸd1úÃqo÷rûh`PÇá‘_Nï»$}òÂã'Åõñyÿ Ž²I*HµhÔyAv³å•l£Ù–šš‘µ÷À¾ôø*ë†Í”ªÓ¶Ô¸‘جýöïJ©P9"4ôõˆˆô1Ø´µQë™Û¢kرؔýd%ÇÞæ‘ qþIZë¶{OöDû62M±Œ¸G§¥Â¡®üHÞ„ˆ­ŒŒ>ýÉùÖp§¼åµ™µoOzJJjZú®=ûö¦§%ÅÝ•ñ'gîÙ“•–œ”œž6Hz>בoUü¨É!² ö>zí­Ò'h­¯}¤¾ö™FÚ†M•åùFZ¥°AéÓoJûNÿ©twkkk///õM5&&F‚J¼Ž¬ÈCõýV*HµJwïeÞåÛuíGÇv”ÜczZO“ÌÞfY?šfõ›•Ñ{ÚÎï&%}=:¦ë7ëÚKµHÔyAö3” XáXVuí¿>6ƒÛª/óSÖ¸I±zéýf#£ž¦ö5h$À¼[Ón¦6Êj°MÏm§,Yد™®¶ã\ÜŒ»«í¾Ð1àZýîÍÊ[v4ïÙ »©nCðìVF­fèÊÃ\Æ}ÞìÚ]ì¶ýÖ»…UÒ±`›ï40¶QÛŒôÜdþyÙ}ïžÆk‚ÕR¥?ÍÆ-Y2Rc³~ë=Ã*GåžÃ {?åAœïyÐÍ,P:Ù³Y÷) {ʳ5X¯Ú{šìßl²òd!v_H£Ó¬¢ãÃÝíì\ý+žd?eìFÝM\\¼‚Âþ¼ÏVÞ¡úÃ\‚Ã[ãƒ4‘•¾Š*ÔV“Nêy6±rXo¢œç™vUŠBì,—Ï7™¬t´»yD²†oUü¨É!¤ þÍ?>ü^+퇴¿ÔvÿNÛ·¿vØ(íðÑÚþƒµßôÒ~ÞUÛ¶s~“6~­ÚVº»ú³“’’ÔŸ•y¨|PI÷ÓjµõYÙerp¯Åû†®Ì¾>o”]þxç£SœN²Í·6wÔŠœá‹÷ ™Ôûû_…a±™»¢–¿v Øgæ&)óÞ¤|&qÄ GO7¯í+Ëeðzðè¨ù­Z»È+0.*üO ñ“ù®Õt[e5ÐVf‘낲v&jâ]e~j240ÔgJãk•+v,ÀVI¶Þ²éç‰-Œzf¤ÄFEÅ'¥¹L•™êki4@éOï…^»Ò’5 q²{ã²ç-çg¯ÌÑF ›¾¡Žª»IHRœÚI£ÞËR²Òâ#ý7)SöT—ô¤ø¨¨Ø”Œ™ñ[Nܨë¿<À ]Y)‰šÄI e˜-'yø)õº/ððrwwßÚKÖ¿š©tTןë‚2R“4±‘õG@7¢O7{z¸¸¹Ù,Pžm­ìï¿¥«4Õeœ•‹_|bb\dh…±DÇ»vWþµÂU.?b‚¬ªíó§Ûâ¤Ï ןbß9²¥óÜÀë·««‡RRÅ ìM$“´^–&G*)a»¶i6žUU¾ÅØ>_~ÕQ9ò­¯wôã;ê{IP‚¿ï·¿M%3ü8H;v‚vöOÚ%Ë”e޹vâí ¡ÚßïoÛ1¤Ï•î¾uëÖ€€õ‡.%0¤é¤§§ËWy¨þئTj•î>Åfè$ïï×䌱:<ÁéèTŸ_LB‹ÍCŠÍ½ g9L±:<~uÎè‰^ßO²(¯×ˆä´ÌNÃ[+¯ê <ý·Í1ºNcs{ß  ï™2M³®a#AA>3e¾›ªÜ@ ò³‘Ù|†c ²îk­ÌB³íƒ•ÞÊ”ÔÚÄWY÷™¥´o£¶·eVg£Æ³|tå´ã¶ahgÝLÞ@¹ÞùZåë;¦{®©6J,~Æç†”õÑ^¹¦î´Á»¬?NAz»ÛTÏ–YÊ­…™+mll<cvg¦F—uÒÔ)ôÚ®ÊXŒ¯.Û)d®Ì–ŸÌòTúßʨ±i`ðµrÛ±•aªõõl×9>ŽÏ#úãȈëíÝH:h#û‡Ä„9-h­–5ùÞÒѧâÙÑóVS­ÿ¼Ï­ ¯äô®øQöékëÿGɆ1Må4¬ö,kð†AéZ›¢ž”κäPUå„&îÌÈÌÌÚ­qUÒE³iž|Ÿ¢öS_óU_¸(¶Cgí áÚ)Óµói×mÐÚoÕnݦݰQ»h‰vÆ,íðQq?_¸¸ÒÝ%ŽËåFrr²ú[+³tÔßt-… RAªUºûÏîˆY³éàÇ£Ó}~™Q¼@sz©,áÅó½ M ¦­?8~˜Õ×kÝ–e‚ÂbvFm”WuyvžVS”{ËÛ“v]“•à%óWãñÖ5lD©ßÒ¨åÔÍÊke6ßì®®«³˜n¯Ÿ”3½tëÊü8k‹®ÜwÙ ½ò²vÌ”Kë}R¥GYKZ—W¾¾c>›[^{® Íe:í³µ¬{›§J/ºnñ½¾?êóN­8./;åSг£”Œ -/ÖUÞ|푯r±/©£lëÖ>2N¶‘ƒe§ôi¦oÙ^³>Q†ã®«ßx˜õ®ò#›‘\áøÜ8¢?Ž€ŒH*ö (Û{×®ôeÿ€°˜¤¬]ÛW*ùá;óŠ'Fÿ˜ÿYŸ½*9±KûKÃý̶”ÙÍ’&;Y{]kðÆA©­y–u@ µGU•«³¬›rWÊoQÔ~jrð­B¤¿TÿÁ#FiY(iÁÑYëå­,ÎÛµV›µK–;>zðP©VéîÒ¾““SXXXjjªú÷2Ôä þ]-)TþÚÉIy¨LPXà”m}… ÙQ0+¨hnüÉ¥)g,“ϬŠ=iø‹¹kÁÌy!ƒ'Ø÷‘j¾¨ó¬æŽ1ÍÂÖÁÙÝÕÁb‚òÁË\¯óŠBc¼†ªŸï˜ha/òr^1BºÜq½»Ò`¥ƒº®µòVu®ã¥”Ú;»{)gMùYЮó|ø^Eí§&¯*øøøÄÚoKœ0ñÄÊUÊ­É AÚ `­¯ÖÁ±xõšäÉSã·n•j•îîíííáááîî“––V~ÏA’ƒ<”BÙ$¤ZUϾ=Äq¦s«Ä ÇÌcN,I<¹R–è~GÍ6jÆMwüÞ5رªgGb=óý[Çc–;Ç„øxy%Åì£w[yÒúíòÊòÛbª>´ÌáÏñÚ1Cæ»É”neæ2¶vSÖ=¬e®êhl­Ûu‡òÑ»Ž³uüwX޹ÖÄ—“LÇ´2j9c‡®Ny;>[ç6ºö}fŒQ&×7®¨Ø1· r}?c³Ò¤¸Æsõ¤ò޵º8RU±?×ÚßXáÈxØ*Ÿ4Þèv}qÅÊQ‰‹‡¶úã@­öLˆð—òÍ3¤z´¿VÞi̺˜¸)OˆµšÑóƒõù4—ŠýñºáPë¸Ðmsÿx>£ÏÖìPvÿïÿ‚ÑÓÊ'ô†÷”m’¹º˜ZWßgå(©ÇüÆw¥à¤$ß¹C¯ÿ§†F?lñðªjP›gw4jUÖšn€“u³ò#p—iÍôž¥Ó$Ϙ8Þ­ð ¾¢=« 3{hhhœ£c²‰ižµíY7·+¾~W|ýϺ¹çÙÚ¥üd&›¤‚T«jwY‘xž˜˜˜ª#+R(›¤B5»Kãn¡NænƒÖ‡qɘé{ÀÜw¿™s†ñÚðѦ®]CªyvÔ)!q)é‰ñʧwâSÓcÂ¼Ô ~¡‰òPù½ Rœ꫼êÂãuEñqá~5hÄ7~gúNM˜²êVÞˆ§whJzzj|¨nWßXåAœnƒgptbª®ýô”„øDÙ9Þ÷úvüÃâÒRuÒ’5‰Êï7Hˆ «Ø1ï°åÏ%}‹NHOMŒÖcgR¬¿:<ýþè÷SwH\ºÔ ó½¾øÆÊþ±I;ã•#%G,!:D-µšÞÒ¨•Yœ å©e\Qe ùFjR®YÙ!E7öëúãyá¾îIÂãv¦§*»Ç'¦§§„y_;¤º>È‘I‰ ô®x𽂓¥j\hõ}VÎcZ¼oU¯ïà¸$9?ºÓ¡t>-9Ä»ÊA…Êàw–µ¦ æÚÁ¬ì\ãvÊiVŸ(>=5!Ä—ïTü¨ÉÁ½ n:òªO‰ûymÊ’e{Ömس~cò²åÊCÝOF¨uªÙ]²Ìï;vìuY‘‡R(›þtwå=<)~³ßêåÞ“WùYé7f™ç+¿ÕRXý³£ÎñòöõõÞ7n‘×ÝõÅJÑ«kä¦xèÚ¯¶Æ”ûfÖ1]£>>Un¼C‡ÐûºÎ¸»¯›ØÈÈh´ƒlRžÚ«ò#ëåQ}£UwÚCÙýúfu}ð¾>×ðÅ¢œf_ßJ:_“AÕ´²œfõ‰¼ùÅ_†švTmûöíòÕËË+222%%%CGVä¡rdz¬BU\u<<<ËÏž¬ÈC)T·Þ½gp›¼\6/ýÙÞ• Œš¶WËÅÅE]©0§ëoªa jT¸µ}oùÙÜ2wßàˆÐ7€2jrp¨59ô¨59œ¨’ 9’ 9’ 9’ÇÉÉÉ€äÜÇ-^õMw§¶Ú|ÜÆºMKëÖ-6·j®,-š[)KSÝÒ\o¹‡%Í›l4®Ûf̘1þ|WW×ÂÂB^®É¸ï±áÓÿ8L6IÚu"¯ø×c§/;s¥ð¬º\ýÅ–¤ìã¿©~Õ[þÒ%¿ê¹téÒ… Ž9²eË Â@rî/S“°{¹%æ_È8viWá¥ÝE¿í-ú-ûÄoûNü¶¿øòõËoû+Þ‹ïÔu6½nù«—\Ÿ.]¼tQòƒÕæÍÎÎμh’p¿7ùÐj{NdÎù˜¼ q‡/jò/%¹”Tp)Y–£—RÊ–äûWb{øbv¡Ìùóç80kÖ,9k¼t’p_üòË/ZÛlN(ößw>äà…М á‡.Fä^ŒÔ-Qy—Ê–‹z˽.±Œ8¬Nu‹¾¿j‰¾ó:çÎ+--=qâÄœ9sä¬ñÒHÀ}‘——gÔÐzEl±Ûîs>Ùü÷_8p!ðà… ƒƒËó ®«Ý¢ƒõJna™¿Ùc—æÖö]œwNfÎóçÎë©´ÄÅÅåçŸ^»v­““ÓîÝ»k¸—–T ™áléY!Éá§Ÿ~’³ÆK 9÷ENNŽÑ{öËbJ¶e”îØsÞ#û¼wöŸ}Êâ[¶4þ e!Õuýò›*éеװYKnv/uå§€ÜÒšiÑ¢Å{ï½÷í·ßÖ¯_ÿoû›ä‡Òû!;;{Ïž=w°Á³:§N***Z´h‘œ5^ºÉ¸oÉ¡…ã¿‚M)g3Ïmß}^òƒÛÞ îzK£÷[~=d¢Gö½eQ •‡÷ªdºoîÙš‘ä0iÒ$u½C‡Ÿ~úéÙû᫯¾7nÜjíŒ,gÎHlóUXX¸råJ’@rîgrh»½‡SÞâ¸Ó«ÏlL=k“vnKÆ9ûÌsÛ2ÏmÍzæ™g>ùä“ÐÐPu¯Þ½{ËÅûàÁƒëÕ«—øpUu¤|Ê”)/¼ðBÓ&MRRR6lØÐ Aƒ·ÞzËÙÙY­³ÿþnݺI#5òöö–SSÓGyDJ6lèäèXi“7t 00°cÇŽ².}–ú7ž©’’â'NäÎ_¿~=É 9÷39|êþo»‚¯=Nô÷)èW2Äÿä°ÀS²Œ<5RYN>÷VózŽÓ­«…'eå•^núIo«DY^nÒþÕ–Ÿ R*¼ôA»—š´ïc“:Àyý»>üX=u¯—>hÛ¢Ÿ±ZçåfŸ<ñâ_ÍsîûKO«„ -«uôKÚ[í=v´¢JKš6m:fÌY‹‹{üñÇûýðƒ¬oÞ¼9$$$77·GÿýïÕÊjN011‰‹=räHUuž}öÙiÓ¦%&$´jÕª~ýúß|óMttô Aƒä‰Ô:íÛ·ïÛ·ovvöâE‹þýïK‰Ìû? •™) VZG¿±º´lÙrîܹò\yyy7 î¨lÊ?r$÷Ð![[[’@rîgrèâóÖ–c]ÝŠûx—üà{ª¿ß©Aþ§œ¨[N?ûV‹÷¿/+åKo» ùÖûÜÌY}øÙGyø½ý®^Ö;•rs—¡ºÝ?m/ÉA­óâíšõ3–ÂÞ¶éRçˆê=ÅKe%¬³ÖŒL诽öš\Ú?ðÀ]ºtÙ·oŸþÖÅ‹ËÖò‰»_¿~7¶P¡ÎÀÕõ±cǾ÷Þ{2ÅËú–-[þñÈŠF£‘±X[[GFF>øàƒéééRþùçŸ1Bݱª::ЦMɉ‰‰•ŽKbCÁ‘#ùùùEœœœHɸŸÉá»À–…½¼J$-Œ>36øìØÐÒñ¡¥Âd9'ËóÿnѼ÷Ä á×ÊòírùÖêz@}8Äe¿<ünePOË ]ùAµ¼‹™ÃÃ×S×_iҾ̀Yʾ+ü¤Nßqå­é·\iI·­Ž×L³fͺuëæéé)³sy¡LôÍ›7_çÕW_U ?þøã©S§Ö¼Î„ Úµk§®oݺU’ƒ¬ìرCÆÒ¢E‹Ve¼¼¼¤\’ÃÈ‘#ÕÊUÕ©Ðäää:<ôÐCcÆŒÉËË;VFÿöŠÄ‡Ã‡{xx€û•öìÙãï│Ãlmmú…wp*àZÒ”ˆsÓ#/G_4޾0+ö¢º¼ôvË6}'ÉŠIŒ²ÈÊå¾A_Kµäû>òp”ó®éa'zøŸ}Wúª;~9uÍ?¯§Öy­Y‡vƒgKá(—ÝRY6•·¯ßr¥%}œrŠjF’ÃøñãõKd:vuu•õÕ«WK*PËeâž6mZÍëLœ8±}ûö꺃ƒƒ$YIJJ’±lß¾½B7þóŸÿŒ5J]¯ªŽ~ãå$T<óÌ3‹/þEOaaáñã²— ‘ŸŸ g—.ê,™¸eú¾/ÉaïÞ½òMÔUFÃbº¹ŸrvFôÓøKfšßæ%ü¶ ñò‚¤Ë “//LºüÊ»­Úõ›"+²,P¿&üúÒ¿›7ù²ïœÈ“¦a'Þÿ¬ç+ï´œŸø›lúwû®/6nÒ{®}硦Ï7|÷‘zÿR÷z£ù'‡ý¤îÞ EÇç¾7Æ>QÖ'íØ#­•·\éÊP÷Ã'j¦yóæ’ôKäMFRAjjêîÝ»{öìY¯^=µ¼mÛ¶Ó§O¯yI“&IrP×%9¨ëRØ®]»´´4Y?|øpnn®¬HlÂò>TZG¿qáãã#Ù@ƒ aÑ¢EúCPC…D©päÈ‘ˆˆ9k¼tQ7É”-·Lß2‰ßûä*}ܲÿþ@]•œœl4!©¯ÏÉéQÌ~[œruéÎÿ-Oûߊ íªL­e†ve¦öµ÷ZË7ÚeÞhÚV gùxíÝVÿxìɇyìõ>4ñ=¸R*ghç…¶ìÖ_J>:ë{s›§^xÍR×Ô›-;~1ÊL­37ô˜<”6yòéz/¼º4ùWµÎJuÑÕÑ/™àw¬ü;·DGÿ{Y¿DýÙŠ uºvíúðÿ𠖖–O?ýt=¤P&î3fÔ¼ÎäÉ“;tè ¶ììì,É¡üä³Ï>{ðÁßxãgŸ}Ö××W*È›[ƒ ^yåww÷ªêTè€Ô—Äòúë¯ñÅÇŽUoy„P?8!g—.ê&™²eâ–é[&ñ{Ÿ$´È·s~~~AAÁQ ®Úµk×fÃΚ'^^ž®]½K»nvC¶v£nÙ´ïÚbµïuý’•‰%«’OWU§u·Þm÷Å{©Ëʤ“²oU-ë/ơŧoÏ¡C‡ä»^VÔÜrª¨?RQ¡0;;[m°š:ú t*žÒQßµ$<¦¥¥ÉY㥋ºIù!£ü|™¾e¿÷ÉA. Ô}:Ôa»wïn±*~Xài¹Ìß´_k{HkŸ§Ý–¯u(Ð:h ´NG¯[þ´¤¯É’î£gŒ]ëØ±ïЇyÔÄ%¬&{U_² þ|i]õÇïƒ:sæ¤î7AÉ{—œ5^º¨³dâ–é[¾î}rHHHÜÂ)@'Úƒæ¬\j›«Ýþ‹Ö½Dë}Zë{FëWªõ;«õ/Õ”*_ýÎiýÕåÏJ,£ú›ÎÿüÇÁ½§ÎZ—Výª/Y»ûÂ¥:Iÿoež?¯Ä§ââbKKK9k¼tQ—Éô-“8ɸ_߀‹-šl'±!ìª6âª6Z«,1†´8»ð¿ºêêÕ«WÊ\¾|9""BÎï]à‹äÜÇû~III£Fš²xuZnÈÅ«W´7.‘z˽/‘ä ­Û$6‡‡nÛ5hcLË€Á«ýedéW¾¨%÷±üƒ¾!M~nÒ/¤¦Ë€Ð¶ã¾Y•5Åë°ŒNÆ(#åtÉ·yÃ!é`Ñ–ÄcÛ$ŽÝé–z4öÐÙ¤üRC[ÖŤ»¥—¸g”xèÏŒ“×/×ʥŽ´Çä⥾y]æ$|2+qŠWžŒQFÊm 9à6o8øf. =2tÛ®1V1Ïœ¼pù×+ÿÓË„3šÃ瓎\L)¸¸ó襴£Ó^L;¦,å+R.[“\LÌ¿uè\@öÙ5±Emgƽ*KÆ(#å¶p;ÒrOÈÅø$¯ÃÖG®öN:Zrö7qYqåÊ•«W®sù¾–‡Ÿößw.èÀùçC*KXÎùðå뎄\ù¦+ 9¨TÚÞ?»ÔkïYÛÔS}¬ö¶œ#c”‘Êx9é@rÀ-‹;P´.ö船ƒ×†8Fî:qòôùóç/\¸p±Ì¥‹¸¿åÃN¹í>ç¾çœÇÞóž{Ï{éï½ç·Æå¾ôæ;vQÔϽRáœÛžs®»J2K­’NÜ‘ÿæ°H£ŒTÆËI’ÃWTTT\\'nkGì-´Œ::Ð9gèÏnq{¤ä¬Ni¹sº/çΕÈVGGÇ©S§N˜0ÁÖÖVv)ßäìì¼æç5ÂÇǧ¤¤¤Tß íÜlù÷^%™¥Ž™¥NY眳ιd•º(_Ï}Þgäÿ=úd‡o¨%ÎYJ`š[3Jmwžý9áô×ü†#£eŒ2R/oðWM!!!·9j™Ë"##ov¯¶mÛΘ1£Ò.­Òs—NÖ­uû–“çƒÃ×KrÈ$…§N:}úôùŸ²\'//¯cÇŽo¾ù¦‰‰‰™™Ù|ЬY³={ö¨õ[´hñî»ïöèÑã•W^yôÑGƒ‚‚ªjçÊ»¸[ïEM¬rNK 9@ÝLìÝ»÷³Ï>ûÜsÏõéÓçСCjù¾}û¾úê«§žzJ.ugΜ٬Y3µ\*/Y²¤|ß~ýú½øâ‹=ö˜TS -,,>úè£gžyæ“O> ½…äðÅ_lذA]_·nt£ü©¥q™X_yå•Ö­[—7~c7LMMyä‘zõê5lØÐÑÑñÆnW:äªÚ—’aÆÝlrc!ÉAãAÜÜܼ\ Êÿå«<îîîò2°±¶Ñ/÷óó“B9RÖ¤I“Q£FíÜ™ºrÕÊ¿ÿýïRXi;2„[(7Ú\Øß§x€Oñ ß’~%ƒ}Kû• ñS¾VX¤‚Tëç]ü½gñWÛ oÊm83™äu39têÔ©C‡ :íÛ·ÿì³ÏÊçúvíÚ¥¦¦îß¿¿K—.2 ߘ$¼ñÆ...………忈ÛÞÞ^®—?Þ«W¯=züirj!:årxûí·Ëgù… ¾ÿþûå<ÿüóÇïÖ­[×®]«ê†\ã˸† "—žTè@5C®´ýÀÀ@™âo69ŒÝé™!ÈÉɹ6ƒ«S·J÷_kkky„‡‡ë—Kýx`Á‚òH’ÃÿýßÿÉC©¶mÛ¶\Û¹µr#›¢¼K~ô-éïwR–Aþ§ú,[dýTÝú_YJúùœüÁ«¸·$‡EM¬7œJr€:˜ÒÒÒ¤êUùIÝçåaff¦YqrrRË·lÙrcrعs§Ô©æÃË—/ýõ×ÿ49¼øâ‹éÈ%ÿŸ&‡ï¾ûN]_½zõË/¿\M7*ükEyªrUí߬òä0Þ&Ú%*óÀd²>\™ÐÐPyöÅ‹ëÊùUs‚¬Kr:t¨ŒñÕW_8pàá;êù­ÅÃO <5"èô¨ ÓcƒÏŒ :3:XYÆ„\[,›NIáA§œä{²§gñ‡vù Ív’ &oooéÆÞ½{Õ‡»wï–‡¾¾¾ê óòòJ“ƒºï?° “r‹->Ðyíµ×þ49Üx¤šäPÞȆ ^zé¥jºQUr¨jÈUµËÉa‚mÌö謜œ™£å|9r¤àzR"þÏ?ÿ|·nÝôËçÏŸÿè£J˜‘uõs²²cÇŽ¿ýíor"*mGu³åï8ŸœV:)BY¦FœÓ-¥ :~÷Ïçüóùúòõµ6_M;=9²tJDéİÒñ¡gFŸùÑïTÇ­GÎÏ 9@L‰‰‰Ò OOOõ¡LOò055UÿÇ?þQ~‹~ùòå7&õ¾„lÒo0%%塇Rw\»ví-'‡E‹©ëS¦L©>9TÚj’CUC¾ãÉaÒ–¸±»%6=zTŽçñãÇ uŽ—Q×׬YóÏþÓÙÙY-”ÌöÌ3ÏÌš5K­Ð¬Y³±cǪ›†.›222*m§ªö«)oï~ffÌ…Ù1Lc/ΉW—K£¶íüû£õ|äIY†nŽ•ÂŸâ/šÆ]4‰¹h}A"Ĉ Ó_:m¸hÉê`r(..nÒ¤I¯^½¤A¹þýæ›odªRŒOf^™²7nÜ8}út™Êeκqún×®Ý;ï¼!ëÉÉÉÒZ`` $‡´´´ìììÞ½{Wúéˆ?MÝ»wÿî»ïdj[·nÝOúhË–-Õ«o¡NýR2iÒ$¹.~å•Wnœ¾÷ìÙ#¥M™ø^~ùeõ³ˆ]»v}øá‡_xáKK˧Ÿ~ZýäM%Ÿ_|Q‘¦~úé§?M•v#..®AƒÒmõˆþ¾U ¹ªöåb¿[·n7›f8%{%î—Ø …gΜÑÿ5’g¯§–dff¦§§Ÿ>}Z¿¼ªúw¤¼oȯËÓ~_•©]©]³KY~Þ¥]»[»2åbÃÖŸYÄŸþYW¸&Kk™©•jRÙ"åêœøK?zµX½äµ%9ÈõïÿíÓê VµµgÏž;w®jkNNN…}¥5õÂ_ý‡õ[è\WÓŸvC UýÖëê‡|Ëâ­)êrp²C²kܾÂ%çÏŸ¿téRÙŸ½úÃoeîWùØ8í¦}ZëƒZÛCÚ-¹Zû<íÖÃ×¾Zí½¤®K¹Ý!­MŽRM*¯Û«]²óýÝ‹¾Z¿KÆ(#åïVÀM%‡šßÄ6„{7ÅÌÌl„ ›6múñÇyä‘ò zêßÊœà‘ûãÚp»Èì£%gÿ÷?CüÛbÞníö_´;Š´ž%ZÏ“Z/Ýâ}Jë}ZësZù*¥ÜC–b­[‘Öå¸Ö±@»vïÕn…_¯Š”1ò·2 VÜs¸7ÉÁÇÇÇÄÄä‡~˜4iÒ½ù‹ ¹Ç‹}3 „ä÷\7Ã)9<»øô¥«¿]ýÝ“ƒíImð%mÈoÚ°+Úˆ+Úp½%âªnÑ­ËÖÐËJ5¿ó¿»•\]š~¾¿]–ŒNÆ(#•ñrÒ€ä€[Vx¢$é`‘\ŒsÝ×}‰ß°µAv‘Ùq¹¥©G/Ú²îè…Íù¥vG/ÔpÙt¨Ô,<§ïÏ¡2.ŒQF*ãå¤É·yÛ!|Ï/«" ƸìýÆ2ªûBÏîæN_›m«í‹ŒBÆ"#’qÉèdŒÜp’îÈm‡ì#'"öÚhŽÎ><Êe_ÿ­{úl1Ä¥¯ýÞšW–QÈXdD2.Œ‘@rÀ r=žt°È7³pKâ±µ1r‘^Û…ŒEF$ã’р䀻‘ÒrOÄ(’‹ôÚ¾È(d,d 9’ 9 9 9ÉÉHHîxrÐh4$jcrIüÞ'‡ªî9DCb ÷HHHH€äH€ä@r€ä@r€ä@r€ä@r$@r$’$’$’$’0ää ÑhHÔÆä “8÷€!ßs 9@r 9@r 9@r 9’ 9’É’É’É’ÉÉHHHHÀ“ƒF£!9P“ƒLâÜs†|ÏäÉäÉäÉäH€äH$H$H$H$@r$@r 9@r 9@r 9@r 9CN†ä@mL2‰sÏò=’$’$’$’ 9’ 9 9 9 9ÉÉäÉäÉäÉä 99h4’µ19È$Î=`È÷HHHH€äH€ä@r€ä@r€ä@r€ä@r$@r$’$’$’$’0ää ÑhHÔÆä “8÷€!ßs 9@r 9@r 9@r 9’ 9’É’É’É’ÉÉHHHHÀ“ƒF£!9P“ƒLâÜs†|ÏäÉäÉäÉäH€äH$H$H$H$@r$@r 9@r 9@r 9@r 9CN†ä@mL2‰sÏò=’$’$’$’ 9’ 9 9 9 9ÉÉäÉäÉäÉä 99h4’µ19È$Î=`È÷HHHH€äH€ä@r€ä@r€ä@r€ä@r$@r$’$’$’$’0ää ÑhHÔÆä “8÷€!ßs 9@r 9@r 9@r 9’ 9’É’É’É’ÉÉHHHHÀ“ƒF£!9P“ƒLâÜs†|ÏäÉäÉäÉäH€äH$H$H$H$@r$@r 9@r 9@r 9@r 9CN†ä@mL2‰sÏò=’$’$’$’ 9’ 9 9 9 9ÉÉäÉäÉäÉä 99h4’µ19È$Î=`È÷HHHH€äH€ä@r€ä@r€ä@r€ä@r$@r$’$’$’$’0ää ÑhHÔÆä “8÷€!ßs 9@r 9@r 9@r 9’ 9’É’É’É’ÉÉHHHHÀ“ƒF£!9P“ƒLâÜs†|ÏäÉäÉäÉäH€äH$H$H$H$@r$@r 9@r 9@r 9@r 9CN†ä@mL2‰sÏò=’$’$’$’ 9’ 9 9 9 9ÉÉäÉäÉäÉä 99h4’µ19È$Î=`È÷HHHH€äH€ä@r€ä@r€ä@r€ä@r$@r$’$’$’$’0ää ÑhHÔÆä “8÷€!ßs 9@r 9@r 9@r 9’ 9’É’É’É’ÉÉHHHHÀ“ƒF£!9P“ƒLâÜs†|ÏäÉäÉäÉäH€äH$H$H$H$@r$@r 9@r 9@r 9@r 9CN†ä@mL2‰sÏò=’$’$’$’ 9’ 9 9 9 9ÉÉäÉäÉäÉä 99h4’µ19È$Î=`È÷HHHH€äH€ä@r€ä@r€ä@r€ä@r$@r$’$’$’$’0ää ÑhHÔÆä “8÷€!ßs 9@r 9@r 9@r 9’ 9’É’É’É’ÉÉHHHHÀ“ƒF£!9P“ƒLâÜs†|ÏäÉäÉäÉäH€äH$H$H$H$@r$@r 9@r 9@r¸ÛÉ2’ 9€¿Xr8|ø0É€ÚE¦ïû’ÒÒÒrrrHÔ.2}Ë$~ï“C^^^VVVnnî‘#G €Á“)[&n™¾e¿÷ÉAH²³³w€ZB&n™¾oyê¿Íäê’ 9’ 9’ 9’ÇÉÉÉ€äH€äH€äH$@r$@r$¨³ŠŠŠ""",--Ç?hРüX¦ŸN…‡åî^¹ú°ÿþ :tèäÉ“W¯^-”®Ö£QLJ·_ $¸%%%QQQ“&Mš={vhhhqqñÅ‹¯˜K—.IÇ"##ÍÌÌ&Nœ(+Òíºs4êøðïÞ¡ 9ÀÍ:qâÄ–-[äÒòСC¿ÿþ»Ö€ý®#sGnnî˜1cììì¤óuçhÔñáߥCAr€›"×nööö3fÌ8vìØo¿ývåÊ•«W¯¨ËW.ëH?å*8//oêÔ©ÒyB8u|øwíP æJJJÂÃÃå]7!!áìÙ³—.]úõ:þ¼¼íÿi5™ôJ'e¯ .””œLNN666–!Ü‘ûö÷÷hüņ_Ók‡‚ä5wäÈ‘Y³fyxxä8púôé :¯'ºå:¹¹¹k×®•k½ ·¡}ûö&&&Õ×Q;PÖ“?œ;wN.0³³³½½½çÌ™#¹G£™4§M›6qâD;;»3gΔoÚ¾}{RRRùCÙš’’R«‡/ƒuss355>|ø‚ œœœ kxroÊÝ;$¨!y¿ Z¶lYjjêÁƒ‹ŠŠJKKå}ø| LŸ>]Þle¢9ÔÉåf÷’–ž+•‹âãÇïÛ·oçΫW¯¾Í›ö·s4ô=z´S§No¾ù¦L¦sçÎmÒ¤IóæÍ÷ï߯nmÙ²åüùóÕõyóæ½óÎ;òDµwø2MwìØñå—_–˜´jÕªqãÆ½ýöÛ·|rïË¡ 9@ É'ï´r¼{÷îƒÊ, W‹R~öÌ™³×‘‹æ3§õ”?ÿüó29Ê”!õË˯«¤§ªòvíÚW_ÿŒNéõ½)))‘ÎçååÉ'—Ëäµk×JÉ}9F7lذ×^{-??_-ÿå—_š5kÖµkWuk‹-暛ˊ<Ñ¿þõ¯ôôôê’РA¯¿þºtC¿Ï§Nªáɽ©ò»w(HPCòf»`Á‚¨¨(¹^ËÍÍ=|ø°ÌòÆ{ìø±ÂÂãò?å‹âرòåØ1[™õüüåýÖÁÑ¡¼¼gÏžóæÏ>|ø³Ï>[¿~}[;ÛêË?úø£)S§Èzïï{O˜0¡¼ÑcFÏ6]þPþs\z¢ëÈÑcÒ»£ÒÉ#ùùÒaé¶t>66vÉ’%2œûr4Žé=ÌÞ—ýÐC 2D¿Üd¶‰¨˜ØYoÚ´© -:&ú©§žruu­ªëÊ uø{³÷þío[ºli¥Ý.?¹²ìÞ³[^röŸ{î¹^½{ÉŽj¹·w‡ž|òI‰ ™Y™jaÖ®¬.]ºH¡DÓ;v܃CAr€’k4KKK¹ì•wZyï½6M”½;WãÓO?7nœ¬È<(WÓååüñ‹/¾8wî܈ˆˆ¾}ûÊä( V_>uêTY‘«Ý'žxBú ëû÷ïä‘G"##Õ6Ñ) ݼ¥›3t³†ì’“““‘‘!Wš2œûr4ôùû+ijëÖ­ú…aaaRhcc#ëÍš5?~|ƒ dš®Iƒ†<|u°ááá•n-?¹â“O>iß¾}ŒN»ví:w·jÕjÞ¼yòÉÉÉê]!Y¢_¿~°°°xûí·ïÁ¡ 9@M”””ÈÛ¬­­­¼ÍæååÉ{¯¼«ïÏEEE¿)_+•––öàƒ&&&ÊúŠ+þþ÷¿ïÙ³GÝ$“Å„ Ôu¹”wc™\ª/Ÿ6mš¬ÈÛþã?¾aÃY_´h‘L(EÕ¹6ƒ¨‡ì+زe‹ ç–Äà–F2ºøøxýBiêX¶l™¬KrQËtvv.ºE†2|u°6*ÝZ~rSRR¤Ú¶mÛÔr{{{y(¯"Yÿè£:uê´sçÎò½$BÈVN\\\hh¨¨]»vÝíCAr€Nòž/Âò5??_Þ{Õi¢X§¤j3fÌxòÉ'‡ëüðÃò–;wî\uSÛ¶mekyÍýë_jX>pà@¹Ø”•·Þzkݺu7>oy¯dåĉê´!žr­š™™)ó‘ äv¦Î[;Hf²jÕ*ý¬¬,)tss“õæÍ››™™Í™3çÑGˆˆ¨yË8üØØX—ŸŸ_¥[ËO®———T“9]-—$ }}}Õ'íØ±ãC=4~üxyÒòÊÛ”¹±ý;~(HPÃÉBf4™ãd²SoË›°ú~[þ!7uE]WWä½ú¥—^9räò2;wnÔ¨‘ºUýPœº~ðàAy7–·ñ–‡‡‡Ë…ùúõëëÕ«'Á©2>z§Rû/–šr±™˜˜¸zõjÎíL·p4n|(³Ø /¼ðõ×_ë—/]ºTrBNNެKr077—IJÏ>û¬Ìq•¶S+†/Õž~úiȩʔŸÜ¤¤$9ãžžžj¹$(y˜ššZ^S²„ÉeË–ÉúÎ;e«»»û‡åî ’Ôо}û,,,¢¢¢ä-Wý³Aê'ØÏVÍÕÕõ™gž‘üP^)ïºAAA².“…\BÊÔ#oé2?Ê´"’Õ—Ïœ9³¼©wß}÷ŸÿüçèÑ£«zöÒÒÒòÕKWOê~–PšŠ‹‹“ÈpîñѨԦM›dêCID2-š™™©•Ÿ­˜;WV¤ýÏ>ûìÍ7ßÌËË«aË8| >øàÂ… åÌÊCõgFdö×?¹RØ´iÓÞ½{KWå5УG‰OjËòD²Þ²eKÉWj›ê‡"vïÞ-ëê¿DÜíCAr€’9këÖ­2ÇÉ;­¼ñÊ›°úóûÕü6ž®]»Nœ8±Báûï¿ß¯_?õ—ÿ|ùå—5zùå—•¾ð÷/ÿOU•ëÿ² åË—«ÿþ§¿HýY~uþ•ky¹h•ÈpîñѨŠÍSO=U¿~ý† >þøãr5]ÞŽL‘ ,P×e‚–CצM¹@¾©ö jø6l((aI=¿_}õUFFF…“›™™)‘é‰'žxì±ÇZ·n••¥–KpªW¯ž(Ù«ü äææ~ñÅH4hðÜsÏßíCAr€’™+>>^ÞÞå]ýÍ?/^ü­Lùߨ¹:˜ššþú믇VWpõåÈÕ¢\¨Ö䉤éªL2н{÷Ξ=[ýP¢á éavv¶ôíÒ¥K¿Ýi8|™îeÇjN®8~ü¸´\¡PýÄ•¥K÷æP †äûСCÖÖÖ2eË;¿\¸É[ñÿþ÷¿[þó…;v433«y¹¾+W®¼úê«5y"é¤ÔWaãÒ¥Ke2ÛüÛ wühÜ=u|øwüP æNœ8‘žž¾páB™/äJM®+oçmÜÖÖ6""¢æåúòóóçÌ™#—5Ÿ2¤ÿË–-“ÎËîÈ›¾³GãnϘuyøwöPà¦?~<>>~þüùãÆKNN–ùBÞŠÿýwÜ&¤cÒ½«W¯¦¥¥M˜0Aº-WOr]8u|øwéPঔ””È|‘ššºvíÚ‘#GÊ›ð–-[öïß_óËÿ{FºtðàA{{{é¤tU:,Ý–Îב£QLJ÷ÉnAQQ‘Laaa?ÿüóÔ©S‡ Ò¿ÿ ŒtI:&Ý“NJW¥Ã·ù±ÀÚu4êøðïÞ¡ 9Àí\oæäädeeÅÅÅø éŒtI:&Ý“NJWoó3µëhÔñáßÕCAr€ÛŸ5ä Ný‹BEý±¾»:còѨãÿ{‡‚äH€äH€äH€äÀq$@r$@r$@r 9’ 9’ 9’ÉÉÉH€äHÀ0“À}ôÿÔ g endstream endobj 578 0 obj << /Type /XObject /Subtype /Image /Width 702 /Height 603 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 1889 /Filter /FlateDecode >> stream xÚíÖKJ›…ánÁ¹£Ò‰#ñ‰!F ñóçbîFDDD¢&ÝCëŠÜCëNÚÚiçÖ¯}ž%ÞÁ™øXùòýóí)ù41™<[‚ˆž“É©¯f ¦§©é+ÓËôŒˆjfÖD5;g¢š[°Q-,Û€¨–S6 ªTÚD•ÎØ€¨2YU6g¢ÊmØ€¨6ò6 ª|ÁDUزQmmÛ€¨¶‹6 ªbÉDU*Û€¨ÊU%±Q%5U­n¢ª7l@T¦ ˆªÙ²QµÚ6 ªvÇDÕéÚ€¨ºê%n½=U¯o¢ê«—¸õîÛ€¨öÕKÜz6 ªzQ/¼}½6 ªõ¢^P/¨õ‚zA½ ^Ô êõ¢^P/¨Ô‹zA½ ^Ô êõ‚zQ/¨Ô êE½ ^P/êõ‚zA½¨Ô êE½ ^P/¨õ‚zA½¨W½¨Ô êE½ ^P/¨õ‚zA½¨Ô êõ¢^P/¨õ‚zA½ ^Ô êõ‚zQ/¨Ô‹zA½ ^P/êõ‚zQ/¨Ô êE½ ^P/êU/êõ‚zQ/¨Ô êE½ ^P/êõ‚zA½¨Ô êE½ ^P/¨õ‚zA½ ^Ô êõ¢^P/¨Ô‹zA½ ^Ô êõ‚zQ/¨Ô‹zÕ‹zA½ ^Ô êõ‚zQ/¨Ô‹zA½ ^P/êõ‚zQ/¨Ô êE½ ^P/¨õ‚zA½¨Ô êõ¢^P/¨õ‚zA½ ^Ô êõ¢^õ¢^P/¨õ‚zA½ ^Ô êõ¢^P/¨Ô‹zA½ ^Ô êõ‚zQ/¨Ô êE½ ^P/êõ‚zA½¨Ô êE½ ^P/¨õ‚zA½¨W½¨Ô êE½ ^P/¨õ‚zA½¨Ô êõ¢^P/¨õ‚zA½ ^Ô êõ‚zQ/¨Ô‹zA½ ^P/êõ‚zQ/¨Ô êE½ ^P/êU/êõ‚zQ/¨Ô êE½ ^P/êõ‚zA½¨Ô êE½ ^P/¨õ‚zA½ ^Ô êõ¢^P/¨Ô‹zA½ ^Ô êõ‚zQ/¨Ô‹zÕ‹zA½ ^Ô êõ‚zQ/¨Ô‹zA½ ^P/êõ‚zQ/¨Ô êE½ ^P/¨õ‚zA½¨Ô êõ¢^P/¨õ‚zA½ ^Ô êõ¢^õ¢^P/¨õ‚zA½ ^Ô êõ¢^P/¨Ô‹zA½ ^Ô êõ‚zQ/¨Ô êE½ ^P/êõ‚zA½¨Ô êE½ ^P/¨õ‚zA½¨W½¨Ô êE½ ^P/¨õ‚zA½¨Ô êõ¢^P/¨õ‚zA½ ^Ô êõ‚zQ/¨Ô‹zA½ ^P/êõ‚zQ/¨Ô êE½ ^P/êU/êõ‚zQ/¨Ô êE½ ^P/êõ‚zA½¨Ô êE½ ^P/¨õ‚zA½ ^Ô êõ¢^P/¨Ô‹zA½ ^Ô êõ‚zQ/¨Ô‹zÕ‹zA½ ^Ô êõ‚zQ/¨Ô‹zA½ ^P/êõ‚zQ/¨Ô êE½ ^P/¨õ‚zA½¨Ô êõ¢^P/¨õ‚zA½ ^Ô êõ¢^õ¢^P/¨õ‚zA½ ^Ô êõ¢^P/¨Ô‹zA½ ^Ô êõ‚zQ/¨Ô êE½ ^P/êõ‚záÏz6 ªzQ/¼}½û6 ª}õ·Þ¾ ˆª¯^âÖÛ³Qõº6 ªnÇDÕi÷‡GÇ'§gç—W×7·wÃáýÃãh4†wa<î‡Ã»Û›ë«Ë‹ó³Ó“ã£ÃA¯½¸¼’ά­ç ›ÛÅR9©Vë½f«ýKÞ…×[ͽF½ZMÊ¥âöf!¿¾–I¯,/Î/¥Ò«ÙÜF¾°µS,íV’jíµßfëwÁð÷µZÍ×vkÕ¤²[*îlò¹ìj:µ4ï<À?àÀÿê'òÑ endstream endobj 575 0 obj << /D [573 0 R /XYZ 89 770.89 null] >> endobj 572 0 obj << /Font << /F8 108 0 R /F57 109 0 R >> /XObject << /Im18 563 0 R /Im19 570 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 582 0 obj << /Length 1333 /Filter /FlateDecode >> stream xÚ…WYoã6~÷¯ö‰Ö IÝEQ Ùv‹tm»0ZM[>`[r%'Ùô×w.ÊTì d’Ùá𛋹On>Q©ËÌeÑ|•&Ê]¬M–Fóeô—úsZĪ}œÎâ4Q‹ªáIµŸZÕ·¸HUóãtærUÃl±…Ÿ|/ÌŠËNðá²´ñ4YRô_Ý3uÕvrÛ¦A8ôŸxkç4øÓ¿GJIz54|HËLÈÅv>{+6¬¦Áx‹Œ<¢)tD¬öDo‡òz:KM©> lK7mѰš…Y%.ÿžÿ™hf­.SÁ¯GE‡©+Ô#^µò(´„¤SÇ_¦ê.€‰qª]ñx‡Ö‰VYº{ŽÐXµd¦¢´!¼Ö5“Nþ–<Ý•7Ó+¥|d…~ò 6Ú-Ú²æó–‚991Ô°„âÒbK¼L(^Ú˜ÂÇô—+}J»¡Í¼÷Pq°dJ’, õBU,@°€…Ø´â•ï ¹9v¯ô\~‹Žæé^±¢hµ”œ[¡Í…~iÿØá{Z_WÞÉö× €K¹yÑ£ðSõ¸¸¹ãóqË+í•L²9·ŠÒŽã$p8#³¥ú~¾šð­óæØ >(öĤì[•j!…¦´xû±ÕACâ_Š-ÚÃrlÉW¡\ú±¢—P‡£ axì/Þq٫͹ùl¨ƒJÁ;¯t3`GEb² éŠôåùÒ´RïQ±+‹qÏ{UCð€9Ì?l9{y«+Ž„Ç|3®»CkðŽ^ò G>Øx. Hߟ|»sUÜKPì¤"…˜mþo®$ŸùŸ¬»,(w±×[b-©Ô¼Vdé)Ð @;Þ~Þ¡&¥<¬E°2Xp¤³åð;ax xå[z‡×ÿNx]Gé·Rp,oì:~Ê]Ùy[&¾¬+Îd:µø F/Å Ûš$þýÔòWJ endstream endobj 581 0 obj << /Type /Page /Contents 582 0 R /Resources 580 0 R /MediaBox [0 0 595.276 841.89] /Parent 576 0 R /Group 562 0 R /Annots [ 579 0 R ] >> endobj 571 0 obj << /Type /XObject /Subtype /Image /Width 700 /Height 603 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 584 0 R /Length 17904 /Filter /FlateDecode >> stream xÚíÝ\×ÞÆqrÓÞ›\[cc7¦Ù5±EM¼±$7ͨ‰±·Ø Åö^£¨( Š‚HïU`éEì‚ bŠÆ÷ýïlVZ6bù}ï|¼³gÎÌž93;ç™a!FF†š;wnxxxjjêI=)))óæÍ“À ÿîÝ»÷àÁƒòo"€%$$''Kf JJJŠ(‚DÉ 2 P,É qqq1…‰ŽŽŽˆˆ rupX=t˜YÛv3š·É´u;y)…²H*Hµ¢VŒŒ óöö677_´h¡bÑ¢EòR e‘T(fuåÝw¹ì½lÈ'·i?¡i»ß1¹õè%C¤°øw—d†¨"Șîççge6ǸÞ{óš6ÛÐõ«Æ٠¶¡K÷¹Mš×k ‹¤‚T+tuÐCBBlmmçλråJ‹M¶¶Ûl·ÛnÚd!/¥PI©VÌ»ÏßhÖhDÖÓ}³ºóЭ¿ ÜòS÷Zðш:²¨˜wJ“pG› 6Ž~tDɄڬZ0cÆŒ¥ì#è àIÌ *B@@€ÕìÙ&5j¯oðQhç.§W­¹ž~;5õô²¡ÿ»¾Á²H*HµBWÞ±cÇ’%K,,,\\\"Táî?xp¿Jáâê"ÉAI©VÔ»Ï_oöáÐw>ý~ï­ÿݹòØÅCûÎÄ. œñU›f ÞZC*õî(WÜ6Mo_7÷—€Ú]üÐ6°¸ï—}çÛ•¸e£c- ­l7´Ý—óíJzn;¯èõå·¹zõ3û}[ð;D¡'×m&½Ø²SK£“üþùêanë{=Œ^ýýïë¼~…Ù¨^íë~9ëžò /Ân{{³úؼ[7¹zÃ̦mþ1öÞû{¶;n™ÙèÓäêõe‘Tj…®îáá±zõêmÛ¶y{{‡„„DFª“’’"##å¥Ê"© Õ ]ÝÞɮŰúŸ˜6øj[ÓÁ.]—F{§8ì>´eVðˆ_œ;vÛÖDI©Žò-Ôe¹f˜ÿb¼•½ýŠ™½Zû]×f‘‰é:Gƒ70£¾QýßlKÜÆ€Y­ŒZMÛn`Ãl[Ͱ(é»n!ûÔàýÇÿŸ’…¾·ó±–û»ºä=é=¥¾Ñ'3]=šzô@äô†Ídéc[ßG¹›÷±þ-/ƒ¶šåÇO9C‹°~Äè5µê~­îÕ—jÞ«TGݸú§~ê^¿¨}"/¥PI©Vèê666’ üüü‚ƒƒ%$(ß^P¾á /¥PI©VèêãødtÃ?íïÓahp—É?-Nüm~ü˜ñá=uîëÓAI©ŠòÍÇzºœÆ–ªý qqIÉNŒ(²nÀT©:i‹Á K>rôȾØ|•ƒüýÿš 2 ¾3Zµœº-ÔÀ†…Å9z49&¬„=ãg7S¶:Û5aÿCG£lZÕ´*è1–|]]xOþA[;}>Óî7à«í©Û|ånÞ'**2vßA÷9_5˜éÏO9߃‹`Ó±sHÙk«_®©~©¦úÕzê:5SµzjMaíìWêJ›Žÿ-tõÍ›7»¸¸(WÔ={öH>‰Ð’y©\l¥‚T+tõͺ}¿®Ýˆ°îãc¾›œÐÃdoOÓä_f$÷™–ÔsRü㣿±§û·ëÚIµ`”o>6S4þ—oÏ+Éý7Ëm”Û¼ÚÖ8J¥±r»]·¶‘Q6lÄËì«Æ_ͰÔÌúZö¨ÝfÂâù}šh·Ñf´½—£ñ×Êö;Ïßî•[ÿë&º-o7ëQûëÚ¾Ó[µ˜¢-°ݹIîíg›>掅4Ì×ò‡Úµ-•mïÞhÖ9ïϯõ0^ã«”jÚÓdôâÅÕ}lÒÇ|w@þžÙ®yÎ0ÅÆCó"Ü}˜¼øÊÔ[Ù£É׿÷w«m®yß5Æ}òÞ¡³ÙÆÝ¹W€=dgÌÏk¬Yî‚`¯å£s÷¼ÍðÅ^zí>Cé’Ñkòwµ^O;šçvA“>Ýr›½}ù„¼~1Òí{¯¹] wîM̶ûÛfã5f5G}¸¹þ&|·O×ö†Wq½§ì…ÙŒ¹Íë±ÆQÓß¾öó›Ôî‘×(9Êr`mŠ?£4çОð°Ðí’Ìð჊§‚œîEØÝ°É‘š¨ßýH]¿±ú£–êæmÕŸvP·î¨nÑNÝäSõÍÔµ©ù¡T+tuKKKM¤WÒ‚J¥Rž3ÈŒ’47w>>R­ÐÕ¿^Øa˜Ë×&I?›è»àpÿ¥G®L¼"eÐ’#çêoz ï´¤ÞC\¾þzA‡@”o!!»ûk/Üøm³ƒw^ñŽŸ5C¤™gD¨µYO#£:Ëœ<·Ê\ƒþ ìíí} ؈·I £z“¬5³^Ö_)£¶©…½…Ií|½ÍìíÍ5£d¿¹õ[ÕWênÕ¾ÐnË[›¶hf=mÆžïäè´ús#£fã6JYþ†ùZ·02šlí®YÓÚDóCüaK=CCÌ'iƱQ4ÛñÍmOlj«ím—j65vc¾žñÞ¦%gØú˼ÃZÍ“ùÏç9„z›vÒ®ù£‰µ­“4oÃ(ÍÀ9ÆÜ)4Ôsé0Í2kYe›‰òÝ—ZÛ[˜ Ó¾õÚ@Mý¶Ò¢Õ®š]hidôµéýö ]`nk¿Û7WÿÕ“Êõ[jê:IÖoò›æÍü¬¿”N²t²¶vðÌ=,5ûnôµ‰­½½‹OÀß·ÙÂÖÕ?¨`oLÙâQ\ïå•Y`ao­)72è _óî-7yæ;ÊÅœQ:Û¦Kf˜îÍOùHøÁ³iëã¶PÒ^Ý©‹úëÔ?õUùU=t„ºï@õ·?ª;wW·ét¢Q+m ]ÝÚÚZù½ QQQÑÑÑÊowÊŒ¼Ô|%Iû›Jµ‚z¯èö›ï ^‘:Ô<ýWëcìNM°;5ÞêÄèµi¿.Oºðð ñ>={-ïê‡r. lï¾¥crï|{OÝ(e®5ß:¶|ûn{G—ËëË­¯¹s`hÈÜ–F-íåô  üÛøùyÈH×b²•fÖÛª£lpOr|”*ÂAF–úÃÖ%'Ç«T{æÊÐÒb‚³R_¶¯Ô÷ó³Ñ -Ó=òm'0IqÑ‘ª°àü]ýWh÷èóM»í-çiÞm­¬ï¹¥»lªÛh {ˆ¨¨ð`ÿ|ûáðµægr×±ÇÇ¢Ø6¾-\Ú™ï+½¡ôj‘½§-³-<)Nö96ÈZ“”Øz{l•¼ÑÒÚ#wKº£\Ü•G{˜xð9ÅSA>>EðíÕçH«öš´ðËõ¨±êé3Õ‹—j¦YfêqÔ«¿ëu¤M¿Þ¿ºúÖ­[½¼¼”_¥”¨ •˜˜(ÿÊKå—1¥‚T+tõ –ƒÇ»öZ“:ÒâøØ§&º3ñÏ4óË4s=;Í6c‚Åñ1«SGŒsé5Þrà“°7>hÇЖš±qìúÝžÛfÝÿßT©ofãîãã:U®ð“6¸·©2ÒMÔ<1óñ°”q|ÊvoͼûfY:M·ñÕ¼p%/Zš¸kæÝ¦i¶o©loË´NFõ§¹iËÿÚŽãúÁ´cxíÚòO§ÜÊ÷7Lû^-5 Xô³l|¶_^m4÷Ñ×»æµg‡Þê–ùvÈmË4Íã„©+,--½÷ìßì›×È;üsWÕì‹ÑÀÕy+ùÍ–»öϦíÖ´¿…QýÞ¾¹åV£êkvS©¯ß³Ýg¹å럂{ôWÈÕ×[»ž4ÐRÖ÷Û°c^K¥¬Q¯UÛÝòmŸ·˜¸ùïÛÜr¦`!‡×m‹æ«Ú^-º÷´å“­mKîNï\1L6¼ÞÍÏe“æ±Õ­Úr— ßéý¿=£ŠiPæÈÁ½Ážž!}f ûU½`‘&'l·S»¸j&»j‹MêÅKO:p°T+tuÙøŽ;âââ”ÿÂ…’”ÿ–j~ä¼c‡æPŸï Ûz/´+cšÏùÙ—Ä^YseeØÅEÞçÌ2¦Îñ8Ö¦·TsGùf1{Ô°I‹¬líœlÕ|'ÍLN«×Áš[Ö®³·qp°³ø}Ùï¶Nîî.s4CvU¶N.¿ww'cé&XhjìÞ(£É„ŽšyÇ4?ŽØ¨]ÕÉXóÂØA3ï0Aî›»ü¶ÞÊbê5µ?/7vRêämGóÜÀèûµÛl×ϦýíÇévš ÷7l·…d† Ú÷Òþ¾ä÷ãI·Z5IólbðÆ ÏûÛ#Ûo¡kÏ_œ6iêìÌW|_eÏ #åÆ¿ö¤UVš}÷½æ+ˆVš%›5múvÜ"i”Ţњo ,´÷ñ Ún¬¹Ëï3u•ƒƒ­ÕúE‹Ö»ä럂{¤×~ 5OY¾ga+GÆfÕ¢e¶RÁÉbê¤Ù¶»<ܶjÜÏËófý>/®Í2@+}î^xo(½ZTïíÞ¨Ù·/†kΛU½ëhެ§¯»»ý2)þfÒb«õó»(_„ÈíÀ"Ï(Ívm­¬l¬æ “& [ceeeëÀ§eœî.Epss ³Ù5vÜ…+5$-xû¨}|ÕnîjÛ홫×Äü61bëV©Vèê®®®ÎÎÎNNN{öìIHHÐ=gÌ /¥PI©VÔ»ïôÛ>Õ®·EÔX¯Óf{.,Žº¸B¦Ð ‹e—¶Žn;n[g×ËýeŽÞSFjÆ›Zý—ço˜ãz¹§Ÿ²I³IÏ@ÕîÕãu k1xa°*${r·¿!_Ï8[i¾õg¼Áñþâü•C¢‚nñWG­Þä)囦H+:~×.·¼ãÈu{Âý¤<02ÌbJ¿:«ó$ûüíq)ÐÕz=àî¿mö_ïgôÅš]šÕÿ÷×Ï+zX¸ù¸ l“´ÕmÆæâÛl5½›Q=¥ÏóÛµIó«1J¯Ù{ŽºéŸõ~± ‰”íºúx.ì‘{Ü~š½l| ]yF óß:Ý÷SœZÃìø¸¢Œ“ywdL÷÷÷ß¾=ÆdFúf««ŽŽwÜ=î¸{^utJ·²Ži*‹¤‚T+juOOO™‘`§%3AAAR(‹¤B1«ËÆýw˜90iŸ4Õý¨™ûS»$ãµ#f8ôwðßQÌ»£üð MŒŠ Ò|?'".1jO€‹²ÀÃ?J^jþ΂'Fø»kN¹ÀmQDx ‡qˆOŒWhf]tÙíꛘá¯]Õ=Ló"\»`·ohTœvû‰±‘Q²r„ûýÛñ OˆÓVHˆQEiþ^Adx@þ†¹ÄëÞKÚ™ªÝøè0Oe÷ôÛ£ßN=®~á‰R'Àýþâ‚•=âã£"4=%=ê§”ZLnnÔÂ4\zCóÖ²_!yrVÅæö¬¬«Ý÷ûÚ³»@Wß÷¦^áñ‰qšÕ#¢c\s»TÛ陨`o×ü‡ÙÅ7Fª†ûßfÍqLˆp/ì;î\¿dåNW'Ž>P(É ;‹eoo¯ÌäÍõ¸%$<غü»o¿—c¹Úg¿ w'Ž>P(É öGó{èG2ÃE€¿Cfd@fd@fd@fd2 32 32 3(èìÙ³óæÍ›2eŠqé3|øðfM-4ScíÔTozJKZ4ÝÔ¼Ù¦–Í6µj¾¹u«Ím>±üö닆œ9sžÓ 3O00,Y²ÄÆÆæäÉ“999Üï–â½é±—|¸k×®UªTùøã§NÚ¤Ie©¼xñb¥NJJJŸ>}Þ|óÍÿüç?R-ß–/Ýÿîò22"bÛÞk¶{¯m»*XRçÃf_ úM™ÿ¢×ÐWß|Gêôº´AÓÖ*¿úÁ'Ͷ‡(kµùê§_¦,îôãà—+VÞ¤:ST)ÿfèä*U߬õ~“¥îI¿.ØôF:Õk¿7q­£RÇ<$½ùçÿ“¼U«¾ÉfO)ùqŒé‹ÿ~IJÞx·î„5…ÖÉ× Õ™Y6~ÚIæ¥ÍæÁiJë¤kV ×6ÅIZ¸º*êÊ¢°ËßïH7êäHfÈ ÀÉ VVViii'OžzÖÖÖÊKKKKy.3[¶lQÊ-,, fe]33³S“Ì0Øëò`oíä¥7(©Ú Y…7jV~§¾Ñ3ÏÔló¿~NúuÚŒ^Qáw•’7?nû^×·“¯Nï+åz޵Îǃün”²å¢êüÕí{½ñaë·›}ÞkK²R2Pû¦<5S_K}Ü.övÍúÊéÂÇ[O}ïIfÈ ÀÉ ÎÎÎÇÏM §OÖ:£§I“&#FŒÐ/Ùµk—|ô•— òR¶³{÷nýòM›6IfPæ[·n=qâDݺ~~~g 46àZî˜ý×|’jï5«ÛþÛ«|;¤è ¿š³ó†Í_¯×X¦ŠoÔP ßnÔ®U¿i†×iñó¤wštPÞëóŸ{ñß2óý2OÙ—7ßoùæŸ(SU~R§Ö§]›ô£¬XT| ¸ã@fþõìsÍzå•©-ÌãŸ=Òïê¿«C½¯HŠèår±õö³F?û’€ÇŸ8àéé¹ (Ǭ¬¬äS ™AÉ gµÎå9¯%™aäÈ‘çõ(Ï•—öööò2**êĉÿ÷ÿçàà ”/Y²¤råÊʼd†I“&ÉLtt´T–Eç <-ì†n2Ù£™ -y«aóOúLÔ/n—,qïîòò«i+½ñ®²J&íÛ œnxÖ}§ÔlÖQÙrÏÅÎ’dþWûý²/?-wËמzmºµê5V™/ªÎ»ÚçÛ‹_~÷{©òkÿým¥ÌOÝsÃ8T¦œÉÁ9‚®òÏàuùËçÉQãÔE¹%—,¾sf8xð ‹‹K@@@XXXP^y{{Ë]|FF†tÃô=M›6•Ì _"55jÔ£G´´´”””o¾ùFr…²Ö—_~ùᇚ››KBxï½÷^yåe•6mÚLž22R¶v¡X¡¡¡ó£oË4Oûo13oТ}¿Éú%Ã7…J˜´ûèT¯“»þüï U”Eµš~ÖiÈLÃët0µN‹NÊ–û®pyþÅ+u¤°v³“\Så¥iÈå™Áe¦ÍOã¤P׌Bë(×Õº1h®êÆÜ¨[ï|Ðò«‰+çi çFÝžyËTõÇŒˆ›SBsFú]ýnw¦Ñ¨p9jœº(ŸdÈ–[†oÄgf땼»d•#GŽÊ«˜˜ù œ:uJñ333³´ô?,’äƒöLžV­ZIall¬ä„Š+¾üòËÍ›7‹‹“BYQ>È={ö”’ñãǯY³æí·ßV¶&™aÊ”)Jýû÷ËKÙf•*UªW¯~æÌ™| r•X±W­™’4Óª$õJåe’¶ì4Ð8_:}÷Ü‹ÿW©ê[½L7½\ùÕÆ_ö’ u›wèò«©áu¾bR¯ÕçÊ–‡®õÌ ¼û쀳ï·íö¯=ûê;u*¼Zm”e¨;î«Z£^•7küºÁ¯¨:²ñ/5Õí…Ô©b•W«×z¿ýW‹cnÈ›®L¼·<ñÞÒ„?Çý¹0öΜÈÛ“Bsúz^62Ž•£Æ©‹òI†l¸åª%ƒøãÌ Täâ¦|ïëP^íÛ·/>>þìÙ³º_´¼¤uÙ0ÇŽ;~üxQK{ôèñù矵4--­˜uõÉõaãaµLÚõ'KVDem8ø§Ì¯I¼.Ó×)ªdMµ¥çòÕY¼ç´l°ø:úÛYŸ-“®pÃ!õúCjóƒêµûÕ«“ÕËÕs¢oö»úÌB9hû8uQ>É-· ß2ˆ?ÎÌ w.éééšï|å˜ÜòïÙ³G2ƒäÝŸ‚,ô¯AhΜ9ãÇ·´´ìׯßK/½äææ–]bÑÑÑ;N©õ'» õÓ]²=Cm+Ó õÖãj›tµÕ1õÆ#êUÉê±þW¿_-GSå– Ü2|Ë þ83Cdd¤d:åܱcÇV­Z•™™)C³þ×òæƒòóó355•À0yò䨨¨›C||¼W¶Ú3[íqMí©LÙê§¼D¦«j·Ëši÷EµÓõγšð0-ôúˆÙkä¨qê¢<“á[q2ðø?z , º}ûöÝ»wïhýYÊìÛ·oZ]ަмƒÿTÝQÜQïÎTÏ´‹ãŵ \¸È ÀyÊý믿®Zµ*%%Eƒºô‘†É )S°ÞôÔ—È¿!2sWrWíwãîÖ¤c“­‘#%Ç‹ª‚Ì@fžˆŒŒŒˆˆˆ©S§öïß¿_¿~}QúÈq‘£#ÇHŽ”/NZÈ À|Úpüøñ˜˜???”>r\äèÈ1â @fJIrP~• ¥Mî± ™™™Ì™Ì™áÑd†‹ ì 32 32 3¨TªB3Ã0PšÌ 2ˆ—†ç 7nT€ÒAÆåRû³ 2Jƒ:œ„à$,™áðDÉ'…N'!8 ËDf¸uûVá“âöÃ›Ø ,l’OÊlmÖ¬Y2/Ðlð ž„´yÇO_´h‘2Ÿ–žvêô)ñS–‰ÌpCÏ /¼P³fÍJ•*}ôÑG*•êÆã’““så•|Rtóýúõ›6mšîå¹sçÞxãË—/\«bÅŠG¥÷ðÐOBÝ•ð•W^éÞ½{rrrÉ·ÿ§«\kÕª%3ݺuëÚµkûöíÛ´isõêUÖS|–‰ÌpM|RöîÝ{éÒ¥¾}ûöèÑãÚcQ£Føøøk(¯ä“¢›÷ññ‘ó!;;[y¹nݺºV… :Dïᡟ„º+aVVÖwß}7hР’o_.¿º³Ú@aaa’[ôK5j´mÛ6ÖS|–‰ÌpE|Rdfþüùü±ÌüôÓOÍ›7oذáúõë•:|ð\ÉëÔ©ãìì\T›Æ¿ûî»~~~£FzóÍ7øáe©ƒƒÃ{ï½×ªU+KKKy9uêÔçŸ^JF]piÁ·ÃÓG>)ºùË—/ËuÒÍÍMy)7VÞÞÞ…žf’8 õå4;s挔¸»»Ë¾ÐÓ 0ü$Ô¿Ž;¶gÏžETööörºJá!Cä\UNàBOH¹Ž>|¸à­˜möë×OftM:zôhÕªUU*ë)> ËDf¸tñ¢n’OJppðöíÛå´Ÿmf&%áá³²êÔ®­Ô‘kõO½{Ÿ8~\yYhù”ÊÈ)ú/å´éÕ³§Ì$ïÝ+烜Efû’“¥P>'Oœ{;»O>ù¤¨‰‰Éð“P®„2²Ë©(盿Ÿ_Q'•\Ö䜔ù™3gÊø®T+xBêN×|4·©L:u²Ü¼™#õtŸ„e"3œÓ#·ü 46l˜££ãÙ³g¥$##ÃÇÇgÆŒ/¾ø¢RGÎù¸¸8Ý*…Vˆ—™ßÿ½sçÎJa“&M$?Kð~íµ×†hÉGC’¶,’Ì.3….Í÷vxúÈ'Eÿ¥î—_~955ÕÄÄdܸqÅœfr'(g©|.¤²”ØÚÚÊýZQ'`øI(W¯¾úêí·ßž?¾RR𤠔1]Yêïï/£¿ÌzBêN×|4·)<==û÷ïÏazêOÂ2‘Îë‘OJTT”î¥ ýo½õÖâÅ‹%BȵZ)”s>11Ñ k×®ýïÿ«Jfعs§¥¥e5ÜóòÉ'EH€á'¡îJ8zôh9¯ä”+xR¥¥¥I‚MJJÊÊÊ7n\Íš5•ò‚'¤þéªA3|›§N:{ö,‡é©? Ëîw r×­[WÆôüQ.à£FÒ}÷Ì 6lÌ ÔlÖ¬™ò;;»×_½eË–7VJ–-[&9sæºTÿíP¾~&Μ9#×Ò… ršM:õ7Þ¥³fÍ’K´²JÁ x€ï@ž;w®^½z&&&…žTrÕ’s¯N:RA÷}ÅBOHÝéšï‚fà6¿ÿþûU«Vq˜ødiÈ ×ÿŽä[ù÷òåËçÏŸ° ù\»v-==]þÕ•ÈŠ’«‹ZЧ›|R ©VÌi&vCN3 „'aÁ“*33S®öáááµjÕ*þ„ü§Û䠔Ó°Ld†?€'J>)tÊôI(×XÉ t#Jx–‰Ìð'ðDÉ'…N@™> oÞ¼™‘‘A7¢„'!ÿ]K€ÿ¤ 8 §æ¿kž´R’T*Ï(å Í 2ˆó³ ð·™ï3E9~üøµk׬Ž!뙡„™¡F~~~Ê|ÿþý‡ ¢+¯ZµjõêÕ«U«Ö¼yó+VüùçŸV< .\øä“O:wîÜ Aƒùóçÿ£:E•oÚ´é¹çž{Y«B… t22ÃCÌ Ë–-k׮ݭ[·tå;vì™{÷îÉvêÔ©3pà@+…¾}ûNžÊS8)—yI’±;vìÄ1Å#"WãvíÚµnÝúÝwß]»v­®üÃ?ÔýîCQuŠ*Ÿ6mZÓ¦M5j$gopp0Œây{{¿þúëÍš5+˜¶mÛV±bEI¤råÔ}rÿþýrvÉÍT½zõ þD xZ3PJ¤¥¥ýíï¬U§`¹ÜÎ ¦â3ÃíÛ·ÃÃÃçÍ›wõêUÆ2˜È 2|Ë ^Úž3œ8{Óø÷£EíKÁ¥n{.xEdê—˜;fx„g¾&¦|™áƯ¼òJ“&Mä¥ò_È Ld†Rø³‰®ã:ü[Ô¾è–&Í6ÛtLfF-9”sóîç#ãtuRNæŒ[~˜ÌÀôÀ™áÞ½{7oÞTþÈ3™O$3è.qLLd†b2CÔ¾+c—Vf¦ü~Ô?úâ¥ìÛçô—Z¹¾}ç^Ö•Û'ÏÝülx왬?fç}¸~™µïâÕÛí†irÅf×SGNä\¼rÛmÏ…¶CÉ Lÿìû d<©Ì ‰k?,V®{37¤Æ¼*×CYº/õÚ ¹”“V å¾IfzNÛ»7åÚµwCâ/}1*Ž3S9É º1]fÎ_¼µd[úyäã£| AYÚyt|jFÎ2Ûã_OH”Â-§£ö_QV·ñ<£ ’Òœ¶·ûo W®Ý¶à ™‰Ì€2‘ò]âäªuúÂ&æ)ÊËËÙwF,ʽ IùÄUG4÷Sû¯ü¾ód×q 23Ï*3S9Ì ¿;œT åã£Mg2ÿÐÅÝèª|úÈ Ld”•ŸMè_âäª%wOºµ`fŒqã?û™íïe’lézÊ3"“3S9Ì ºÁýPúõb2ƒLÒ®KÀ¾ð d]áÌ ©1#ö^¾ríÎòíd&2ÊjfпjÌ 2ݾsï`úueR~„ÁÄDfÐÏ ³õ2ÊÇS3rœ‚ÎÛxžQJÎÙëöŸ½LöÊ|ìÁ«d&2ÊVf˜]tfP¾ÃðÙðØ‹WoK`2ïÀŸÞûfR"Ÿb&2C¡™!$þ’.ÈÔm|»÷nÞú󗼿½0iõ‘¬+·;Žˆ“’Œó7×;e˜È (+™Aÿ—ïªu íú*»GÇ{EdÞ¾sO2Cûa±égn8œë4BóíÇ/ÇÆóqf"3èNXuäRöm‰âºÝ Oºœzê†î¥$ð}©×®åÜ•u·xœ¾ríÎÀ9ûÉ L†d†œœœÊ•+W¨PA^V¬X±Zµj gxÌ™Aÿ—ïª5gó±ë7îÊ5mñÖtÝw åæ(ådŽ\ñäI•|…3S9É †O’ ºO(¾N×q ºœ Lÿè9ð3Cñ—¸ÏGÆúwl¤¾ò¨‰‰ÌÀÄDf@ùÉ LLd2S)Ï ÿ]K&2CéÏ  4 32 32™2CA*•ŠÌ@YÌ 2ˆóœ”¶ç dÈ dÈ dÈ d@fd@fd2d2d2d2 32 32™2™2CI2ƒJ¥"3P3ƒ âtèÐ>PFÈÀ-Ã÷ƒû%É  ü 32 32 32 32™™™™€ÌÈ €ÌÈ €ÌÈ €Ì@fdxœÎŸ?´jÕª1cÆ 0 _¿~¿ä飕ï¥Î£+W^öí۷߀~ƒþí·ßV¯^-”¦–ŸÞ(ç»ÿHÏ2üSYYY!!!ãÇŸ>}º¿¿ffæ7î–27oÞ”†›ššŽ7Nf¤Ùå§7Êùî?¢® 3À?ráÂ…-[¶Èíä±cÇîÝ»§.Åîiɨ‘––6räHkkki|ùér¾û¢+È `8¹_³±±™2eÊéÓ§oݺuçλwï”R·ïÜÖ’vÊozzúĉ¥ñ² å¢7Êùî?š® 3€²²²åzyõêÕ›7oþñ]¿~].ø[MÆý—ÒHY+'''+ëbLLŒ±±±ìÂCyJÿd{ã)Û}îï 2èäɓӦMsvvN=zôòåË9Z7î'Úé>iiik×®•û»œh×®‰‰Iñu”äµä/×®]“›ÊC‡¹ººÎš5Kvä öF>2\ÚÙÙMš4iܸqÖÖÖW®\Ñ-Ú¹sgtt´î¥,-Ó»/;ëèè8cÆŒ¡C‡Î›7oÇŽgÏž5ðàþ#¨+È `¹Òúøø,]º4...%%åüùóÙÙÙr¾n€É“'ËÅV†˜ë%  +ÿt-iaöµl¹>sæÌáÇãããW¯^íëë[ÂGô%é }§NêØ±cݺue={v£Fš6mzäÈeióæÍçΫÌÏ™3çý÷ß—7*»»/t‡ªW¯.iåÊ•£Gnذ¡——×ÜÇßd0„Œnr•;ßýû÷§M‘ë¿Ü!JùÕ+W®ÞGn”¯\Ö“•™Y­Z5e°úºòû*é)ª¼mÛ¶ÆÆÆÅ׿¢•}k²²²¤ñééé2ºIãåÖxíÚµRòDz#ßÞ 2¤F'NœPÊÏ;פI“îÝ»+K›5k6ÛÌLfä^{íµÄÄÄâ{©”ïþ€Þ}÷]i†~›/]ºdàÁýGå¨+È `¹ÌΛ7/$$DîÑÒÒÒŽ?.#EFF†\rOŸ9}öìùŸæÓ§uÓéÓ–V–2ÞyzyÊõÖv»­®¼GsæÎ:thÕªUkÖ¬iemU|ù§­?0q‚Ì÷ìÕsìØ±ºíŒ9búŒéº—òg¤%Ú†œ:-­;%ôÜsÏ 4H¿Üdº‰tÔž°=2߸qcÙµÐ=¡UªTqpp(j;÷•—ÖÝ?xèà¿þõ¯%K—ÚlÝÁ•iÿýrÈÑýõ×ìù£¬¨”»º¹¶oß¾R¥J>÷&ïU “÷%wëÖM %”îÚµëQw™ !÷e«V­’[]¹ÆÊU7w€È».ãóÏ?=z´ÌÈ(wкòÖ­[¿ù曳gÏ úé§ŸdX” _>qâD™‘;ÜŠ+JdþÈ‘#/½ôRpp°²ÍsZº·ÐŽXÚÑB;^È*©©©IIIrw)»óDzCŸ§§&GmݺU¿0 @ ---e¾I“&cÆŒ©]»¶ Іl°4ï¾²³….Õ\ñÙgŸµk×nVÛ¶m;uꤔ·hÑbΜ9ò111Ê“ !)¢OŸ>G]´hQÆ uWàoeeeÉÖÊÊJ.°ééérÕ•+°re>þü¹óš •ðì³ÏFEEÉüòåËŸþù(‹d˜;v¬2/7}r5–a¥øòI“&ÉŒ\ð+T¨°~ýz™_°` %ç‹“;v(C†¬+ زe‹ìÎÿúÀ÷F>¶¶¶²wú…²©gžyféÒ¥2/™AöZ:ÐÎÎîü*-»¯ì¬ÄŒB—ênll¬TÛ¶m›Rncc#/å,’ùO?ý´cÇŽñññºµ$<ÈRÙððpé¨}ûö=Ò® 3€!Ä\íåæWþ=qâ„\u•"S+«hS¦L©T©ÒP­ŸþY.¹³gÏVµiÓF–êj¾öÚk ,ïß¿¿Ü`ÊLƒ Ö­[Wð}u­’™ .(†ÜlÊýéÞ½{e$’)É ù`½‘¤é•+Wê&''K¡£££Ì7mÚÔÔÔtÖ¬Y/¿ürPPá[.…»&ûåááQèRÝÁuqq‘j2š+å’䥻»»ò¦:txî¹çÆŒ#oª«,¡±Už‚Û¸]AfC† Ëdt“aNy,,—_åJ«û›2£Ì+3r•~ë­·†¾,O§NêÕ«§,U¾ö¦Ì§¤¤ÈÕX.à–Ê͸¹¹yåÊ•e¸”'ß—ëJû¥ÁRSn0£¢¢V¯^-»S’Aóz£àK¿Þxão¾ùF¿|É’%’RSSe^2ƒ™™™ÌHFªZµªŒn…n§Lì¾T{å•WdG.Fwp£££åˆïÞ½[)—ì$/ãâât5%HŒ\ºt©ÌÇÇÇËR''§‚Ýòˆº‚̆8|øð¢E‹BBBäb«ü‡~”o§_-šƒƒÃ«¯¾*ÉAW,W]™—aBneБ‹¹ŒŒ2 ÈÍcñåS§NÕmêƒ>ø÷¿ÿ=bĈ¢Þ=;;[÷…yiêEíoʦÂÃÃeGdwsojãÆ²ÎÎÎÊKÉB2 ššš*/5¿71{¶ÌÈö¿øâ‹ºu릧§¸åR¸û3ž}öÙùóçË‘•—ÊïƒÈ¸¯p¥°qãÆ={ö”¦Ê9ðÝwßIpR¶ìíí-o$óÍ›7—d¥lSùòÃþýûe^ù¹Ã#í 2BF«­[·Êè&×X¹äÊåWù}übþ®N÷îÝÇ—¯ð£>êÓ§òg|ºtéR¯^½êÕ«k~±ÂÓS÷·›Š*×ÿ³?Ë–-S~Òý·ÞGùÝ|eä•ûw¹Q•‘Ýy̽QKKË*UªÔ¬Y³N:*T;hÝvdpœ7ož2/C³t]«V­ä¦øm¿Tíþúõë%JLRŽo×®]“’’òܽ{÷JXªX±âþóŸ–-[&''+å™*W®,%ké:!--íË/¿”(R»ví×_Ý××÷‘v™ !cVDD„\Øå’®ü Ÿ7nÜÊ£û{þ†kß¾ýŒ3þøããÇ+é·øò|äQnN y#Ùˆ4U Ù‹ƒNŸ>]ùÚaéé iá¡C‡¤m7oÞ¼õ°•ÂÝ—^V,æàŠ3gÎÈ–ó*ßL(XY𔑑ñº‚̆kõ±cÇ6oÞ,ƒµ\óåfM.Âþùçÿ§;tè`jjjx¹¾;wî¼óÎ;¶¶¶†¼‘4Rê+tqÉ’%² ²#%üo.<ôÞxtÊùî?Ü® 3€.\¸˜˜8þ|)äîLî%Kr·²² 2¼\߉'fÍš%·†Òþ¥K—JãeÊúáöÆ£+Ëóî?Ä® 3€áΜ91wîÜÑ£GÇÄÄÈH!á{÷î•ÎB&Í»{÷nBBÂØ±c¥ÙÒx寗‡Þ(ç»ÿ(º‚̆ËÊÊ’‘"..níڵÇ—Ëï–-[Ž9bø-ÿc#MJII±±±‘FJS¥ÁÒli|9ér¾û¨+È ðO?^††€€€ßÿ}âĉƒ êÛ·ï/¥Œ4I&Í“FJS¥Á%üâ_Ùêr¾û¨+È ðÀ÷˜©©©ÉÉÉááá¾¾¾^^^ž¥†4Fš$ “æI#¥©%üÖ_Ùêr¾û®+È PÂñBîÚ”ÿP©¢ü²Þ#+Kso”óÝD]Afd@fd@fd@fd2 32 32 32™™™™€ÌÈ €ÌÈ €ÌÈ  \e€‡âÿ’“é^ endstream endobj 584 0 obj << /Type /XObject /Subtype /Image /Width 700 /Height 603 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 1869 /Filter /FlateDecode >> stream xÚíÖKJ›a†áÎ;iÇuÔ¥5‰­õDO„xÑüñxLAEDTˆštmWäÚî¤5®ÀQš·½®%<ßÍË÷òÕ›w©T_ÿÀ£t:“Éd³ƒm k<%™Í>æ™N·KíïK¥z{^¿-ýù‚ùñ=éIì@D￘~Ù€˜2& ¨AÔGÔ'Ô¨ jÌ•3AMš€ ¦L@P3& ¨9TÞU0A-˜€ M@PETɵl‚*›€ Ôª j͵n‚ªš€ j& ¨MÔ– jÛh:jǵk´ µg´ U7ÚíÂ3|6Úí‚vÑ.h´‹vA» ]Ð.Úí‚vÑ.h´ ÚE» ]Ð.Úí‚vA»h´ ÚE» ]Ð.hí‚vA»h´ Úí¢]Ð.hí‚vA» ]´ Úí¢]Ð.h´‹vA» ]´ Úí‚vÑ.h´‹vA» ]Ð.Úí‚vÑ.h´ ÚE» ]Ð.Úí‚vA»h´ ÚE» ]Ð.hí‚vA»h´ Úí¢]Ð.hí‚vA» ]´ Úí¢]Ð.h´‹vA» ]´ Úí‚vÑ.h´‹vA» ]Ð.Úí‚vÑ.h´‹vM€vA» ]´ Úí¢]Ð.h´‹vA» ]´ Úí‚vÑ.h´‹vA» ]Ð.Úí‚vÑ.h´ ÚE» ]Ð.Úí‚vA»h´ ÚE» ]Ð.hí‚vA»h´ Úí¢]Ð.hí‚vA» ]´ Úí¢]Ð.h´‹vA» ]´ Úí‚vÑ.h´‹vA» ]Ð.Úí‚vÑ.h´ ÚE» ]Ð.Úí‚vA»h´ ÚE» ]Ð.hí‚vA»h´ Úí¢]Ð.hí‚vA» ]´ Úí¢]Ð.h´‹vA» ]´ Úí¢] ]Ð.hí‚vA»h´ Úí¢]Ð.hí‚vA» ]´ Úí¢]Ð.h´‹vA» ]´ Úí‚vÑ.h´‹vA» ]Ð.Úí‚vÑ.h´ ÚE» ]Ð.Úí‚vA»h´ ÚE» ]Ð.hí‚vA»h´ Úí¢]Ð.hí‚vA» ]´ Úí¢]Ð.h´‹vA» ]´ Úí‚vÑ.h´‹vA» ]Ð.Úí‚vÑ.h´ ÚE» ]Ð.Úí‚vA»h´ ÚE» ]Ð.hí‚vA»h´ Úí¢]Ð.hí‚vA»h×h´ ÚE» ]Ð.Úí‚vA»h´ ÚE» ]Ð.hí‚vA»h´ Úí¢]Ð.hí‚vA» ]´ Úí¢]Ð.h´‹vA» ]´ Úí‚vÑ.h´‹vA» ]Ð.Úí‚vÑ.h´ ÚE» ]Ð.Úí‚vA»h´ ÚE» ]Ð.hí‚vA»h´ Úí¢]Ð.hí‚vA» ]´ Úí¢]Ð.h´‹vA» ]´ Úí‚vÑ.h´‹vA» ]Ð.Úí‚vÑ.h´ ÚE» ]Ð.Úí‚vA»h´ ÚE» ]Ð.Ú5Úí‚vÑ.h´‹vA» ]Ð.Úí‚vÑ.h´ ÚE» ]Ð.Úí‚vA»h´ ÚE» ]Ð.híBר›í‚váöL€v¡£vM€v¡£vL@PÛ& ¨-ÔæN}ÿàðèøäôìüâòêú¦Ñ¸½»o6[­/ÐZ­fóþî¶Ñ¸¹¾º¼8?;=9>:<دŽç&§gó…ùÅbi9©TÖÖ7ªµÍG[ÐÚ5Öªëk•J²\*.Îò³Ó“¹qËü¯>:<42–›˜š™Ë–Š¥•rRYm_­jíénÁßW«UÛí®V’òJ©¸´PÈÏÍLMäÆF†ü—àðèn{ÒW endstream endobj 579 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [471.519 286.155 483.474 296.994] /A << /S /GoTo /D (subsection.4.3) >> >> endobj 583 0 obj << /D [581 0 R /XYZ 89 770.89 null] >> endobj 580 0 obj << /Font << /F8 108 0 R /F57 109 0 R /F67 131 0 R >> /XObject << /Im20 571 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 589 0 obj << /Length 1154 /Filter /FlateDecode >> stream xÚ­W[kÛH~÷¯Ð¾ *E3£k …†Ô%»e‹¡-m¼¶â¨±%W’“úãwÎet‰åÄ !(š™s™ï|sÎùb69›†±•zi$#kvc¥¾KåùQhÍ–ÖW{æ»ÒÏ\?…~jýäúiø]âºJeßèáŽÕ*dzî|Ÿýiù–+„—†¼Ç+lÙACþ½Þ˜Ùé–r`yTiÄá-ÏX?ƒñÍ}-ûC?Çu_Ñ ”žŽíÕ3ìǺ¿ÿ?€“6e ˜ "/M‚!]CL/GÈ)˜FHyBN!ðMža&>‹oDANÌiù¬N„ôû¨B»“n© þb•’‹ÿŽÍ–úqy½Ö´“%MAzÏ[Àø‡Yñ¼æ'ëLW|/ÒeΦI¯#š89ÐONAØ‹yAÄÄ‹Ðön¡c64¿j7ÅÜ1ˆBlug¾u\c‹3M%hÌYÓlX:ZùÞ‘‰!_-YÈÒÔ³^”Ø™v Ú ‰ƒžã&*9Ä*°nJ çš­Û£á +í5!ºÈΠΈ+’#¶õ&&øÎsÒ°Ü,¯µ ö‰ÇˆCð]„6wHȶõÀ ‹G7×|Mûß;atÏo›öi zåÃ9¼‚65;æ3¦S@ïeb*oȇIöüŽòo=ÿ8Æ"^ªx£¶×i@PxxÉ"Øý^Áýû÷ÞÁÄBÍë`n vK{ ÉLK$‡F Þ®§¦Û!ó »«{ºe¤íI Ãr•/˜X¿»¾dLà! c`Ü5Ê!¹—´Š)¹jÙ#'ÞÑþÆ­I†ò^sî-0 ô?XæšÈ©0PoýcOÿñKCÿÓ&Æ=ž? Ê+ZÈMgÚñ©±A›Q½ÞÐ;Ô„Šcg¨³6Ô/¡HËÁwZ1F_ƒÙUŠ³Ò¤·’8Ï~±‡‹¢PÒÀåÛÁ¯Içó ÆØ!aÝ=¯Ù•°9sHbºx¹ÙwÛß²<ßÔÐ5æë‰þ…60ë²éA2]F‡×¶²ªU8§žÅš¾æI$ÄÓ[º¶Œ¼ä=®9µ`üÀë_~ŸC5À"̧JÑ35_‡÷NÂÌ´ L›»u?ZµEÙP¸í¡*»¾E”𳇢$œ²ŸÕ®2[I[H¬»ÉûÙDhH¾%,^˜¦–TÒ“~b-6“Ÿ/ôU˜¢Foˆ"cÇ gW)¬Ëròþ32×8u{^/à×IŸ!S/ bK ß“)ñ2‚Zwky® "PÖ¨ä†d­ðÇÍ[2.`—6 ؃͆n±²jºO=‘Ÿ5_| Þ¶w­¯|XC3'QÇÔ;ÞÙUWåøí©ˆ]é^ê+¢á –»GUWÐYÓf;ú*8(¯64†~ztx×Ôœfk‘®a²¥¯=3ÛRZ=[×D ÖÄàç©ò#/ÑßÛ>E}ÁEWrÊwyPN*Ò¤IcÈL ½šÄ:ë„ ¼D1—AhRþ?º6qV endstream endobj 588 0 obj << /Type /Page /Contents 589 0 R /Resources 587 0 R /MediaBox [0 0 595.276 841.89] /Parent 576 0 R /Annots [ 585 0 R ] >> endobj 586 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./wiring_biotap.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 592 0 R /BBox [0 0 504 504] /Resources << /ProcSet [ /PDF /Text ] /Font << /F7 593 0 R>> /ExtGState << >>/ColorSpace << /sRGB 594 0 R >>>> /Length 3578 /Filter /FlateDecode >> stream xœZË®$GÝ÷WÔ6å|?¶¶ÀÂHæŽÄ!¤ÌÂr[€Aü>çÕÝ×¶Ó3§*Ÿ‘'"NFM>¾:òñíñÏÛ×þsäv¶¿mö³<þú×7ÇŸŽïoŸýðÇ/??¾x»¥sŒz¼þ¾}ñ<ýøïíÏ9Òñ·[>¾ÂŸoo9)¿¿åYÎ²ŽžÎ<;ྻå•Ï9ŽÞÎ^çíø„;­}² !Ö8¾92á:k"ܪ¤|îvŒäÆ%õ³Îcä³fÁuöM8:aÆ? áÒ[î¾Î%8Ϥ¾]#çÍÕ–FXÐ,?'*õœ•0ûm?{ãªZÄ~ûÑ1»ã“;‚ñ7gÄ~·_*ÆÜGׄZ@o1T-2N=K 8-™rÀ•hgoÁ°í³÷gã‹•çP kËωZ?w}.£5þ>Ù*wýØB+ç|Ù`ƒMæsû-ÅP6`ÞOÓÕ͆LûiöºÎÙž‡Ø_ŽŒ°<p¬çqs¨ò$Ã5QP˨íI$¬¹Ö'Ͱ#76 ±ý4ž…qD• 0L·4Ô+½ßð`ˆ³åÌë¸ïßoá[Ÿ~øßúáÓ÷š Ó‚e_Þ3Ɉ*ïÁàØ4Ѽ44œ«<ÖÒ9W©á œ:Ecr-_ Ÿê2É\d(¡w¹y&€ù㭀߽eÁ5 VFc÷K&ÝØ¤eÙ…' <±Æ\Ï%^`º±{¸'ŒñöˆÃ^Sö WX› *€®ÂM¸Ñˆ³ñàÕ- ¯sç|ál/­gláBëq½[ã“«Y8a¬§hy ƒÚÜ_³¹k^4í‘v`­´íÂÛö w&ÆFiÅ‘ZÙYÖŠý\xútí;Íðo5Pëe¾…cY/ëY%Æ‹õâXÊxÙÏJ¤Ôs¿àE-/ömb<Û Ç<Û‹=Éßúbox¼žpÙ/ç¬ý\ç œÖËy³}}áp_/|¹æ»øDwÚ/|ÃzƒØŸÎïâ+šüÂgØK|ºøŽa›ßùÃOñz(raøë~ü¨ÅÁ]gˆ­ ´Ø§Z1'ìS•>INl¯+kDûGLq]ØœpÎCñŠ5b|Ú x©=æ_ÛX6ƒ™U¸Èë[í4Gu½ ÷À´R«]‰åU­Â\ý¨U{&N<­”ÝÊ`ô®už»+Õ:ìõ ¬cÈǰ~Ÿ6¿bØÜ…Ò*Ò—YVàøkÙV•,HÀ AïÍ÷Á¢ŠSG@«¥ñ(ˆajâ^4&-VKvª¯°8XOgëŠ Hë`ËQ‘ZˆÎ”ÕžéóÙ™ˆ§ò]FNðûJCÒ¹ìuUáˆÎU4?í‰ýçýa¿J²¥:ÙÒÙ”¹°V𮍖e¸šæåe’Nt¾d\d:Ÿ½H/ø¸×ð¢Bœ"É.3îu鞎ÒÖ>3‰Ó»‡ž£vQÔ«ó…±[ÎE,"‰ñ#[º°Õì«þ…94pzb¤WŒ@'·¾ÂÍõbà±L§L1¸¸ò6,H‹ZL¦{Ã["ì|ŽÜx’úÛ©V‰é9r+–‘a(ÏÄLܧ5“Ò8pI•gGr‰ð’aXxH†´13â4|<ãüeؼDÄ ~(=eø$v˜!JœÌÀˆŒäîþ´ æëÍ®KÁƒ8™aßê÷†á–ãý¤E3,U.Œ’õdæÍ õR)”,¯ ³´-‹m‰Û¨ÖâJZ¶ñàÀ\VºÄ6Æiе]"ã9Ì2.Œ«l¶.)Ç*pKpxöSÊ%~³b •ªåFC I±ìî4L¡¿ùý¤} Å5íVú‚·NEDÁ~Ê9TqÈçje®<^`/§àÉöûR߆“?äÀ9 ù3øM+N(ÈwáXUœ›B«—,lU‹Ô$\•3rUÂòû4Ý¿0Â…@ι#º^1#·vL¢¦`èîJø­£sV–“Y ”Œ€DòìñálÉ [¡/wå½G±ŽFèIX'–:…›©>†°,.Ü_qöx5DVÇš©àœÊzSlB%µ¡N(סËNAE 2Ò5ÑàÛmÊ1™¸ñàN‡%T‚™bÓxí†p§V‹ÃÿT€lô•iŸj¥;†ñzÁ·É!†ÄfZŽÐ?•ù[ŠÈUQër²EÇÔ”ðWNÇÎ(ŠöM¢ÐY@jCš%9"C3%¿wêÊ3ò<ÄRO.¡Ar–†d*öÅØ”“:!U1•3¾ôL}í ¤8'œbnÚ” Áj™š}ggªÌJ;´ca¹¨!rVªæ¾²2µK…ÆÄ=í’[1‚òCQŽ6Aç-h8êÀŸXÀPÌ[ É,oH ŸÀædåTDz™•I+&ò‘wZqØ»±& =!4†nÛéƒëˆº‘‡ª­†ør‚Â2Ï´/@30@‰¾@2Sçp ômÍBQ°¬÷pG•‚âõ1ëE\„]`â÷{߉p "Ç!D1¯1 RG±Ë«4ã^™=^¾ÊŠ`ǰ‚wÍ lÀ&)ćq•·–Âo»jÅ@`a¥´¤8aaèHØâÞO!ˆ³«-"#…£ÂÌŽ4Ê|š£êUóK+„9íJñUØ\Š™itª¼Œ®H˼!0OÉ·ºÎ¬"\Û‹»oP3…w€¦¼!13ÈBt‘ª‘¶i¿‡n§b÷ö{Õ!늺N®¶×Îáµ¹@Ø£ 7èOÛ‹Ù†õÄK]Mx14¦÷N¥ðæ(íE]*§ÎófÒ ¬ƒ`NSA‚üæ½U1îÅÊço“Xh5.ÌÝuÂäÛÚR¸"ÔQ/WMY -?…oŒ§s(øâ@ï‚Ë•¡yJ~¥Ü ë9BsõÍ¿yÕˆ%T·kyf¦„¬” 3‘ _â =šéÄ9`êÊÁ½®T””Š$'º’]½Ì¸–Øëô™äL¬ ¤HMÜ•72Av%ÈQ@L^–øÃWñó2¾¡/ç· ñ¤q,ScÔ³’º'êò P]RÍeŒJ¥·Þ/+SYL­Wá‹zÚbùX†ê¦“*¤Ú›’)–GIäJÓ‰ANØÄM×WEµKM1­]âiŠh+¤UÎ’VÒCS2Iõ“xÛ–dÙˆ·$Z ­ü#èÊE «§éª-ÝÃEê¿nFlW³ ƒ¼âê•­{w;Þß»S´ïqO¿*GÙï‡+E]bxG%êÜV…å}A*—L½ sÄÑ¢~Ì£[ä [N§ëBÅ ×¼âj#…ݾ’ lßßJ¦wqÿ¬zݸêu¦°J`K+œºq³¤¯„qÚjIßäæ;Äí0,—è¶`×v‡Ê?*·u7^ì&‘jb4©¾ŸLI3BÝ4!úÖÅSñòã­gI;ñh{vÝ6Tg÷Aò–P—¸âlG¸ß)8Õ\×C ΩÆZ&¿Á¹Â)?éú(åª3êÉŠÓ顼¡WïònLUwxY–îlñíuž®¯M2m/¥myw÷%…Y¼;Èà X®8J!T5²÷¤ÌWjܳü}ùÂG $4oUŸ3ɱ.½$ýÏ®Ë ×êz„l\æ£g„lCÕÐý—†ÒÑØY˜ÄXÀ=䔺/#s”!‡.>Ç)_lÐ#ç8uMa8h!¯˜†jÐ{ª2Ëè MKŽ8¬h¬-ö: 6ÖmiJ§s¨Jm;îìˆY¼á•øNö‘_oqb¯¿üîÄ·éxýå—ÞÃ!i^zäþò¤ëâÞ ÛV“¾`ÚíúÜè[×'ͺõêÈc«u<© ðWߢÊÃ5¶‘ZÇÜñ>Ö}ß­ûÓís´Ï]ýñeúñ€_r!±›b|¹V©uŒiÀ¹ò ·þ¨ý^¿ð©©4=ˆ~UûŠQ ÔÔsÆ[¯&ú½®Õ˧Ú.éù îùd«ê¨G©ÛÛ›` NVøqo<ÞÇçˆèûîã„[ûÉtYÅ}Y éý;Z{îë}¬+ú¾[·÷â³Ü}ñ€ w„ t/ma‚œËf>èÀ£ª©tÉ–è×TÒQ D¦×±÷{·V/¿«LŒ¼?˜°Ìaùâò”ÐÀ‰–>²Äƒ­,ýxT6¦yô3¯cTíÔsúA¬ÆýÞ­•ËçùüÃë‡èW×ï>û-Hx|øû±ÎxëÁÖ$ßù9^ýá~üêwßÿã?ÿþkþõñáÛÛo>hüÿ7ïÿTG:ŸgÿòKûóšÇ;åÒ÷(ðå7ßóËçb!Åï|vÿÅÓåðÖ¥ ÝëÕýëÛÿ&äê endstream endobj 592 0 obj << /CreationDate (D:20150225101935) /ModDate (D:20150225101935) /Title (R Graphics Output) /Producer (R 3.1.2) /Creator (R) >> endobj 593 0 obj << /Type /Font /Subtype /Type1 /Name /F7 /BaseFont /Times-Roman /Encoding 595 0 R >> endobj 594 0 obj [/ICCBased 596 0 R] endobj 595 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus 96/quoteleft 144/dotlessi/grave/acute/circumflex/tilde/macron/breve/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron/space] >> endobj 596 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óû endstream endobj 585 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [254.122 496.973 266.077 507.813] /A << /S /GoTo /D (figure.12) >> >> endobj 590 0 obj << /D [588 0 R /XYZ 89 770.89 null] >> endobj 591 0 obj << /D [588 0 R /XYZ 178.095 222.245 null] >> endobj 587 0 obj << /Font << /F57 109 0 R /F8 108 0 R /F67 131 0 R >> /XObject << /Im21 586 0 R >> /ProcSet [ /PDF /Text ] >> endobj 603 0 obj << /Length 1657 /Filter /FlateDecode >> stream xÚÍXKÛ6¾ï¯0r’‹X+J”dm¤Ùé¶Á6uÑCš×–½ÎZ–cIq]ôÇwž²dkr(Z’Ãáp8üæA¿š]]¿±ñÈ?‹ãp4[޲`”†‘$ñh¶}ðìØx¾OŒ ­wó7ŒvãId¼rÝz ÿ¶+ ¤±·Í‘2†¹Ã8 ™á‘§*è® ¤6G\0.qm… Ö«Knïp¹Oã}‚éüqüqöóõ›é(ó³$LPÁ`4 ?J#ÖïÍxjq¯I”Þ²E{”þ€«…ê¶0pøw$E૞ãTêáL^Ã)è¦'aU…|RQ(®vtÜ× Ú ã©[îß'aâå<@Sˆ­T,j•/X6öKæ¼ÃÍáÄqì}ÂU¢™ãé?EaÜtQ¢6‡JNµÛ‰^8?wµôJÑG­`C4ß2› ×îIÞY·@ý@¶¢–V5j9ýÓÛùȲ ì‡Ðgã²5›ÉE®Š”d‹…ЗxgØY¡qÜŽ˜Hh%ÆÚãæsìÑ­æ*3ò>@7úˆÀOR0@’µsæ$Ó-Ç×ââÐgðN@´ÙÅ)õœW.;Ä?À÷ì+•òÅ=õÜÏ:Š^V»ê††(¼ÃZad!>jÖG,ÖLk̽l‡„rÉm—I3 FEßS¾­Ö½0[ ÜbëH³9V¤wÔl±qj’ãi«bc‚ÖAî|‹Ëkž]j´¾&¿²n ?øV/m–xo—|Ö#9J3tÛäC®ßw¢5EÊØE~é½<inÇ„8Ûq@gíw.üù`”Zåœ8àVdàŠ.hõ¿ öù)W šVô\+¦¯÷úÿþEìºÍ\ÌÞhyß/¢Í}g‹J¶žÁ÷¾?à»ùZwzÇU-š/Õj@£x’]Öbbê4c4ºóµPþ“U}ÆÎÊ×?”"CßÀÃ'ЧE׺d™¹y×±Û¡{\ï…Ë‘ù.+° ó“0ÓÝÄn+b7Î5»‹þT=Ô—G®Û»ÜˆÏ§ì³TuL$•fÆO3Û÷ËöK‡Šú7ÇaÅ 5ÀE/ŠkÁ»=Œ0¤ŠècÈ;ÖÆçï zdôåÉžíC‹tÓ‡(çæ”Å«J_W@£HGeÅ+ºîÓW7¼ -O‹PØ@`•kzÝI‹¶ªrô¬*¸`?+­ Ï‹p!öêÅâªÑ×Mz&– Á‡öqˆ3Ž›lÊ4H<ßZq}Fã6Jî„SW:É=)wëð•ânÍ­#íÈ—×> endobj 600 0 obj << /Type /XObject /Subtype /Image /Width 961 /Height 708 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 42695 /Filter /FlateDecode >> stream xÚì½ûÓuWUç;ÿ«‹ªÃ”U<%tÁ›@ñK)@=M# z4‰ðrŽÝ-BÛJs Q[‹}ääjƒÝ-*"A@‚\3 —„p QºÏznûÙÏ^sŽ9æu͵Öç[³ÞÚï~ö^·=טŸ9Ö˜c\wƒ½î¤B!„:«{Þóž÷¸Ç=®ÛÁæß¹ú³×}ä³ÃŸúЇ¾ýíoÿ⿸A!„Bèûßÿþg¾òõÿåaøñ/rÚÃ~éÊŸ_øÂÞzë­/û³Ðh4F£Ñh´q»ñ[ß}ãÇ?7Pô{>zË“õ+}èC~~ùŸ}”F£Ñh4F£ùÚuw|çžÿçÅ×ßø¹óÏ?ÿíoûËßöQF£Ñh4&··|åî{ÜãBñ‹_¼âÏo¤Ñh4F£Ñhr{ÓW¾sÏ{Þs@èï~÷»¯ø‹›h4F£Ñh4šÜ^wûÝGi:6›Í•ù1F£Ñh4&·Wé¡_õöÑh4F£Ñh4¹½ò¶S„¾ê§Ñh4F£Ñhr{é­ßÙ"ô«ßù g‹Í;íÛF£Ñh4­Ÿöâ7]ÿ.ùcõw˶a›Ã–›íâ_wõcÿÕO<ì~°l¶9lÙwéþëîÎAèk¯½ö–[n¡i4F£Ñf×~ñ7^ôö÷|ä–/ßY¶ Û¶ÜlÿöÞ|ǯ¸û¦–mÃ6‡-kú®þ¤³±ùÚ«®ºüòËŸõ¬«†—Ën¸a÷¾íÐh4F£Ñúi—<é¹޾çc·—mÃ6‡-7ÛÅÃ~àïúè¾òÆW–mÃ6‡-û.Ýï}þ¡_{ͧœmËÆ·ÜrËU‡ðü¢'êÑ^ o}Ã[O)Ú·F£Ñh4Z?íÒ'?ï³·ßyÝM·—mÃ6‡-7Ûźw~ø}·¿îå_~ýa{Ýq;zçö£'¯¿|¦]qü­×]qúÅ“Ã6‡-û.Ýs>wŠÐ|í§mËÏ×^{í%—\r¯{Ýkxq¯C]~齎ÞÐz‹ÐŽüîÆ<౯ý´o‡íýas¬~úÿʇš ~ãÌ'‡wv·¶÷ß„6ÞÅTíè\œ§|ªÿõß¿3rƒùG•p}¶»Î<†"§h¿ÿï`ùJW_ÝvËí8í¨ý]w'ÿGFýF4F£MÓÌ·_*Û†m[ÖìâÙ/zõOýÌ/ùÚðWÍ.ÐýÖß^ÿ¥?zÉi{Ía;|ýÒ§=c»Ááµóq»í^2lsزïÒýögOúõï¾ÙÙŽøù†nøùÑ~ôCîu¯‡òóCÝë!/zÑ“Ž¼ÓÛ èÑÞõ¸Gž»·9÷¸?¾Ù·‹×ÿñ3îmÌÞ{úßÇ=÷ô¯OyäΟÚ•;³µ½ÿ¦´Ñ.¦jÇç"žòðÚ˜G^µAñJ×g»£Ì¨ÀïØÔÐý~ø/:êÀƼp÷3/üçŽ.õöÅëŸûŒã¿>÷Bc.|Š»“›*uÌ4F£ÕjÿÏ··ßyíM·—mÃ6‡-kv1@ì÷ýþªÙźß|ßu·¾êE·^yоxò⨠Ùºy‡×ÿïSžº÷·¯ì|þ`;‡[¶9lÙwéžiOú ×YgÛîåÒ‡<äÈù6¼€ùYÏzֵׄC¿õ­oþ:ü{DÑû[xÞE÷þ•g>Üœ»äuÖ³‹k.¹¯yøó|µoxÝ3ïýWî¼såÙ­])n\×öw1U;9ù”‡¿š‹þsԯ˻\)×g»£Ì¨Äï+nêÅ¿rîÞ¿rë3;=ÓqÍw>9îäÏ»ÈtÑ£h4Fó¶'üÚ ½æ¦Û˶›o¿kزfA„ö}qØævè~ãúw}áeÏÿüËÛË^pòâàß—üúS†íüÓ‰ö^ýÂá‡þ=l/8z=lsزïÒ=õæS„~ã{¬³mz`枟ô¤'.-<Œß¸öP™¥ÿ{öë„\ôÔ÷ÂÆÜÛãàä©ã÷Ÿ‘¹ï3_|¼‘ݯïmmûßà9Òß¿Ýò‘޶ðɇ?êÜá÷>ìÚÅó¿>|àÅOåþ¹ŸžˆïRû^Ÿlüô€Güô¯4F£uÚùö®knúrÙv„ÐÛ]Ü|à…þ²³mz/„cÇ íþâî.Žú–—<ç–?xÎðïç^rðïöÅçþà9ðŸ~}ØÔ÷Îjxgxÿøcpú­[N¾u„оK÷kŸ¹k‹Ðo¾þggä8í8Áæ=–ÞßÎ .2ºêÍ×_õ£æÜ¥opoÿÍo¸ìÞ÷½ìÿ¿?|wûþ .º÷ß}ò§½­ü÷x_·8>vüõás¼ýwaŽ÷þ‚‹Ìî·ÌEOÛ?†íëÑ÷ö¢:½wœ§üîKïk~ôŠ=`ûùñ‘Ÿ¼?ü §gqrî§oîÏÁwþ+ŸËöÅè[;Gû´G‰°eßÅ99æ£M9£ñå=óÝ£Ï;¯ÏöO¾ŸÀ×É÷6K£Ñh4ZwíçÿÓï½ïïn}Ùÿ ³ýÚo¾DTþêûâ°ÍaËš] ÛùÊ¡†ò›Â.ÐýÔ¿ÿ—»¯Ð~ë'þÍv³G[Þ‘¿2lsزïÒ=ñÓ§ý'ïýœ³áçØçÃ%„gÐz7;ôîwßsãðâ€._¸Ú/»ùÙ§{ö~Ò®úÑ궯Ïlíä¿Û1÷ùÕëv6»£G]uæ‹{–vá|ízs¼G×!iP:åëŽ/lp‡_¼Ï}÷ßÙ¹§WþéÄþÞþ¾NÞ<{<ãŸL:—Ýë³÷C:zçdãîÏxNvü™Àçýp{ ÊŸþø²œÀužN¾}ŸF£Ñh´NÛ@¡ïÿø­Wü9ÛnÌðXÃ_}_¶9lùÌ.þ燜mØÈµÇçÛ7}_|ÿÇoÛîâ¡ßù¯Ï{Ç#Î{ç#Žÿ=lç¿ó_Ÿ?¼øíÇ0|ñ°|þà+çµ#„ö]º_þÔ)B¿åo>ïl±Õ w¿ûc» cÎ{›œ»¸î ÷3?öûŸ÷ÀQ{Æ£·Ÿ>¿³©7=k€®gœ|ì%O:oØÓÁ'ϾØþðÇÎÃé‡÷w±ûIçk×›Ž=:ö¢?BÏñì|1¼Çá‹æ>÷;Ï<ú»8ûõ“ÝíîëÌOsz<ãýJç"]ŸáPïó¤ëŽþ lÇs²ÞßHÑNÞÜýØÞé;®ÕÁå=s=|o³4F£u×~á×í•o»ÁÙȼٯ᯾/Û¶¼»‹+ßvƒ³wáûâ>ñ¥í.Ðýô•/¾ö§þ÷QûWÿ¿óÓ?µ»—½×Ã_]_Bk÷v^óãæ¼_øoã×;í¿]þC[OÞý.Ùð΋.>~qÜ®ÿ…ûm¿8¼>ûá£Ïëâg·ù˜×œÙõøÃgvá;`×sñé›{{ÜÛKÔîÏ©ŸóÌÕ“÷xºÁÃ+vx­žõ˜íîv¿~æü1ç½ûã/Úý™v‚ÓC:þŒ÷\ö. ÙÛòÁñÌûŸy÷òzwáûüÙs?i/{òy?ôäëÏtªÓ~uòæÞGg±ÿÛ ?ÄÙ½Ðh4Ö[û¥ßx៻ãOÞ{‹³=ãy¯b¡‡¿ú¾8lsØr³]  û¹7ÿáûÿÝïÿwž´ Nþ{Áó.¹d»Ááõðæè v¾rÁûùx;Ã6‡-û.ÝÅ;ý?þö6g;õB„|ÄÏ{½eéC/´o;Ú‹î‡þã{+n¿Í.z?žC|k»ã¹ü'Í¿xÒ‹üÖËè~—¿¼ä6ß{0×xëmu$F£ÑFíÿúÏ/úø¿]|³Ã6‡-7Ûź·þÙ›?üë¿P¨ýâÑ‹a›Ã–}ð3»s‹Ðÿóƒ_r¶£4GæTÞFq½¹÷Ú¿ÚLÚkÿsþ/¾µÕîÞú›?ô/óŠ©ÏúŠ_;ßüäkKmm˜ÜF£Ñh•ÚÿýÔòKwýÅG¾R¶ Û¶Ülè~ù]o»ñY¿zãe¿zÓ³~õ¦Ë^·g=ñàýƒ?=ñ¦ã×Oì~°l¶9lÙwéñÑÓX迸áË4F£Ñh4Mn?þ‘S/ô_~ä+4F£Ñh4Mn¿á¡ßþѯÒh4F£Ñh4¹=ô¡1N„þçÞÐh4F£ÑhkncHþ‘ßyT!‰ÐÿôÏÿüý¢Ñh4F£ÑVÚŽEèïýÿô÷ÿð}F£Ñh4mmàáX„þ‡ï}ÿÎï|F£Ñh4F[gx8¡¿ûßÿæÿH£Ñh4F£­³ <‹Ðw}ç{_þúßÚŸ>Ö<ø·>ð÷®?MÝ>ð¼ó͉ø¼÷%nÇ‚oxÂvóçÿ—›7w$[¥níàš4û½vØ<ö yW»Òá=îO[ï=¢ÛÌè‡ksÅžðºê×gÜ+Úûþ˃M«ëÿ[ ™¬£ ’nÓh4–ÞŽEè;ïþÞm_ýΨ½õç̃/ÿw\*ÒR·ÿþç·óÅ×<î ¯){¯F±íû7^~¾9ï·o,ž¼÷·lÎÞ{¿Zï²—þí.—æ'¨Ýö÷uÞùæç^Ÿ°÷Ô㜠Û4¼éjlöàF>é9ïÞå¯oÓ+öŽsxÓ˜¶=Ó¿¯ƒƒù¹×w~ïÓh4ÚbÛÀñý•¯ÿýÇ>óQ{ãO›>åêo¸þT¤¥mÿƒOy€ùéWÖ;€Ñö¯þû›K^Zø,„Ô¾ìÅ/ò€[ž×á¾^ù;÷ÀïüyôÞ uËݦÙMWg³¯¼Äœþ@Îý§/|àýŸþÁ3Çpá%­{æÕ½õ F£´‡“úŽQ{Ó¡=?óæK/ö™bÃÉ_ÄgÿùðâêgßÿäS'ÝÝÔÑëáßÝMÝ¡mÈÄ}´Ãøhÿzö8OvúÊã»ÿÓ?ä}Ó±ýá4þðóO¿ÄŒ7rµãRDœ”ãúìŸÑÎUþë¼ò;QýG§¶÷±øÞþîûyæû?ýÙÎóÚû¥†ÿ:xØHT'9ùî°µ³?Óø ®ÀñgNä÷/Ö-Ïv›3Ýl¯ó+~¸ý^Wâ‡;ÙÎÎéŸô¢ý;Å{`‡¿ãŽ¢¦]È÷©÷Œ=÷áßí/uô ×?h✶HsýÇçrÚ+vlQÚ¯L£Ñh´”–€Ð_ýÆw?n¿9joúóÀ§^óMéOW^j.zÓÑ›/¿ÈüÌ•G:zñÍ_óìoawSÛ×ÂöýmØæ¹gÿåáë¿|æqdáÉÖÌžùaÏ)üÕ}ñÌQ¼9œˆ¹ôåg·Ò>üÔs§§v|¾ÛÏK—BßN/ÅÁIÀîí\«+/=xÓ}åOÏKõìl$²^Š#nat;Grøc)~©í! [8÷À£ ß}^y=…»9ü”Gÿè–înãè{Î;ÂùÃz]‘îô|÷Nß}§8ÌÑ?ãÚÁU2Û®•óŒî§·çñ¯&^éFÛv¡´žé7&ÖwÍi4V± <Ðw|÷ŸýÖ¨½ùg̃žzíÙ7_uéÉø{ô§á3—^qôásÏyûðâÚç<àøƒvÅ0è¼joSÛ×®íÛÙí{·æ8ÎÓ¿JGµ¿ý¡ £üx#ãýŽ.ED{ó.Ø\1¾þGµ£‹ÞìÚûB'{@Aq?o_ãƒÞ9½º_êä+W\ô §¾êèõöúÇÞÑö/×é)Ÿ½’ÇÇpx•JuK_·‰è{u¸ÑMí<ýãcˆ¸©“Úá錶9ÞQæw®Þq;»}ïiŽMܨ E_ÿIt F£Ñ*¶‡cúkw|÷S·|kÔÞ|yÐÓÞ½óλ¬ú+^øiçŽÿôŽËô€Ë>|ôïÙÏ´W\d.¸joSÛ×£í«ÚÞ·\[sçî·†7…£Úþu|ֳؿé'5zóìU=j£Ý|>â'8ÞÎÐ1ΜrÌû~úãwÎ=çq¿ÔÑ‹7_pðÅáõ¥¯8³‘„ëyôƒº/Îq»êÒ+Ö-•ÝFì{m8ÅéŸmä%´ƒs¹èÍ¡k•¹ÇÝ{üAO»jÛ¯äë0q©wzÈ$z†F£ÑhõÚ×âúëßü‡OîÛ£ö'ƒ=úu;ï Cí¹ç¼sxqÝ`ÞOþ4¼>wéç¶Ÿ¾5Xû“?™K_yðæ O?wòæÁx}ôáÑöuíäp´ÙÝìlÍqœGõ€Ën8{T»pöëg¶òE÷çwÞÜ¿úæ¼{»ÛÆI;ÞóR(‚ÓKº¿ñˆ>³ß³Û9=’Ã_MóK̹ãã^_ð³—FÛèz^wä6r¸DGÿ¦wK±Û(ûžó‡óôÒ?œïôGw`º+öœ“¯tÎÃÊ×*s{÷øø¾vž¦óF3ñ}Òo7¼oº†F£ÑhÕÚÀñýoýãÍ_¸kÔÞráÎãÊs—ôæ/|ôçþç¼Ç_xÞƒžñWÇŸ¼òbc.~Ëéÿê¹çNÍo?só«üÞÅ¿ðäýƒ/š³ßU¶íÖŽìèh·»çÁ_/¼øAÇkž^}×è+»¯Ïlÿäþϟùâþ¥Ð¶³{w¾yzU·»8<ÍÓÝí|^ùœžæã¯Ì8àw]þ sÞsßå<È“]œ»ü¹®+æêQq½Î¸žGè¸8ÃA>w8€£.´=‹"Ýr¯ÛŒúÞî^äÎÕë²~¸Ý›ú-£ÓwmèÀÒ.ÚÎÁQ¾Oý7lt¯:ÞöÒ…nœýÍy3ªÚIo?¾Î²1ñ F£Ñjµ‡cúŽoÿãg¿xWr{ÕÅæ¢?º+g õÛ[.2zæ{ªïh—‚¶Ì¾·ˆ£×µ¢Ñh4Ú¢ÚÀà }Ë­w'¶ëŸ{î¼ç¾;ùëÚÁÐ|Ùõ•÷2KA[bß[ÈÑÎëZÑh4mQ-¡¿yç÷>wÛwâÛ—<—|ðeïýNÒ×[¶·þlÝãœÑ¥ -¬ï-éhçu­h4¶¨6ðp,BëÎï}þKO£Ñh4F£­³}+¡ÿüêÒh4F£ÑhknÑ^h„B!„Ö­X„¶!„B­[ 4B!„B 4B!„BS!ô;>úÕÝB#„B!ôö³ü!„B¡„¾ñ«» „F!„Bè¡Ïr2B!„B!„B!„P‡ýοºÛ@h„B!„*Þãä³ýµÝB#„B!t‚Чœ B#„B!Bè¯yú¦¯í6!„B¡„>ËÉ»}õM_Û6!„B¡#„Þåä«ý}5B!„B!„PQ„~×M_Ûm 4B!„Bïqò„þØ×vB!„ÐBŸåd!„B¡d„¾æc_Ûm 4B!„BïqòY„þún¡B!„:Dè3œ¼‹Ð×þÝׇvÍI¡B!„¨ø’¯=ic„Þ6!„B¡#„¾ÖƒÐïþ»¯ï6!„B¡Š÷8ù Büë» „F!„Bè¡ÏròB_·Ó@h„B!„*¾î,'ï"ôu 4B!„B1ýWŸøÆn¡B!„¨x“Ah„B!„’ú=ŸøÆn¡B!„¨x“Ï ô'¿±Û@h4kul®B!„ ôYNÞEèë?ùÝB£YÃóæ°Ò!„ÊGè=NÞEè÷~ê» „FóEèÍN¡B!”‰Ð{œ|¡ïØm 4ꄇ£xŸñE#„0›¡}†“wú¯?uÇn¡Q£@,ƒÐ!Ì&v¡â½ÇÉ»ý7Ÿ¾c·Ðhò± -cüE":BsàIÌ&B(ˆÐ{œ B£YðsÔp0öÃ0š „ú‡ç4ïñöó9f!”ƒÐïûÌ7wÚŒÅz<$9¿§x ŠšÄi°kyd;ét€ÐÕ@è=NÞEè÷æ›» „FµáYv¹d>‘vÜ;ñ„¡©øy×ò-Õø+N³‰C(¡÷8y¡?pó7wš >„ÎáØí“M͸S–ÞB¨B †(ø-£ãp„¡÷8y¡ÿÖ~s·Ð¨ñxáûpšÍß"tìÞyŠšÜ«¤hÁR™³þgLBEz“Ï"ô·vz@è]Žåg!4«è[­wD'˜;„P BŸáä]„þàg¿µÛ@hTj\и\”H…ÐʵŠr „ziMZNg„*!ô'ï"ô‡>û­ÝB£²Ný_ 4Ë B=ø„Éû8¨#¸eÕCè=NÞEèßò­ÝB£ÌñB¹`PÄ¥Z³w<#„êû‚–ÓD–Â!€P%„Þãä]„¾á–oï6•âçà‚Á²-8d”d”Aµô'ä¯ÒâaÖÊDè=NÞEè|îÛ» „Fý tÖ*]Ð 4B¨+ch=Ù8•ÞßÃ>~„Š ô'ƒÐ¨È‘€WÖDhø!Ô3BëRÐAC¨BôóßÞm 4RÂsZÀ>šá!T•¢•Æ0Ö ¡Ú½ÇÉ»}ã翽Û@h”?48ó,¥±k)„†ŸB¸2š(„Z"ô'ï"ôM_¸s·Ð(ŠŸÓPGh\СnA:Áˆá‚F¨„Þãä]„þØîÜm 4j‰Ð¶Pˆ2.h„P‡`µÍ|„Æ !T¡÷8ù BñÎÝB£XŠ® ÉUšá!EËiù–õë>ôëqA#Ô¡Ïrò.BÿÝ­wî6)Ç”´¦õ~FÕ6tÉUÿ”®†„Ʀ!T¡ðøã·Þuôb¡‡7w¢Æ—¨Ñ¡EƒÐ¡â&n\10*Œ­8BÃϵGè=NÞEèOÜz×A»í®£ 4Jn’?PdÉaÔcM†„žŸ·´œŒÐJCB#ÔBsòI;ƒÐ·ÝµÛ@hÔEGhÆ„PB;]ÓEÑ9MC¨"BŸåä]„þämwí6MBÑ™ ?#„ªRôn î1Q—Z¢ñ3ã‚F¨%Bïqò.BêKw í“' „FU):•Ah„Ð$¦L.Ú°´°BcÓªŠÐ[N>zq¡ïÞm 4šŠ¢ÓÚÅ?#„J´@×¥2|îš2Á|ÁÏ5Gè3œ¼‹ÐŸ¾ýîOé´Ð¨7Š.…ÐŒ5¡‚\¶´P¶~AƒB#Ô¡ðx•÷z§Ð¨E—Eh\С–¦,'GtBÃÏM€Ðg9y¡?sûÝ» „FRt=„f¬AGè„J…V§¡AhlBmz“Ah´Š\ð3B¨B ³ø4«¸[Ñùy¡®úæ/ß½Û@hÔŒ¢óZã‚f A´`ùÕTC' 4üŒÐ$½ÇÉ 4šEë4B(Ö:EQqNÚ !¡z]¡hB2<ƒ™¬Jf;~F¨c„þÎa»ûèS´æM%BÃÏ¡(‹¤I©‘fX(ZƒÐ˜5„š#ôwvË Qç­³d4 BHÏÏE'ÏÍc£¦ËB#4-B Ë ?~ë]» „F F®XfÖ 4.h„PWKÑÆUI~FhZ„Þãä]„þëOß±móé;@hÔlüÒS±Í@ƒŠ¥è²šÏG!4f ¡Iz“wúýê;n–!B#ä¤hÊ „‚¦Ãøù9HÑÚú·ÐСhgØò´)á-rÕ´™Î¼Ðð3B 4B™#‹/E*üŒÒ°tTŽŽöm]Ií@h„@h„JQôÞBu†„ž·¯M6B׳99­åmÒ¡M” BHi7Æë 5 ùr.×ÑÏõ=¡ºžÛ~F„FŒ’ˆyBiý|\ö´„.»ññeÁ B£•—\ýµÂï„èç2EkÑÊlx½·q*à!Ð(Š+ hD?¢è¹#t›cF„¡ Z ´ª~.Sô" €@hK\:D?÷qæä])Šû‰~ Þo÷:°€ÑÏ5æ"XQeî@„Fkõ£ÐÈ„ÑÏØU{˜BÅV> õy}ß"t„Fôù4àœ ¡w=ᥪ‚ÐÐhµƒ †å‚b, ÓLC¡5Ý¡w ¼[ „F„Fðó DèÅS%>yE'`§o!a%„®Q=„F„F ´¡õи÷,>yBçStÙø %?çß­¬%D„FËË\Á z6^ƒ{„FXžd{5k„&!-ž}@›ðWÙ«¬‡ö•°%„ΤèªmërÅ–pš!÷º'´WˆÐ,'DPtòwù¹B_N8k„ÆR!¡½á`áäX9„Ï9.ÄÆKõVît51$!:ù¾®}í9½ó÷5Ó@h¦ü„Fȇ©FÐr"hÙ­äaßQ)öÞ±un󉆨s¨£.¡Ï‚ùB 4ZóàÈ\?X ¡†Z³Ñx¾Õm4cZج¼1B×¾Á¬»Â(§YÆ#@h?;Ç ±‘ f±Ór¤B+Sá ßê“¢}Ðbà9¨’Ss4¸Á}¸›¹rÍRhB#Z¶„ÆÃÏ׊xÍrÂX„Ö§þ‹€+üŒiL@èå!´­™%!-xà3b GÐeÔ mª3Yé¾îêù#Ö3o@Ñ 9ò)z¾EUv““€Ð„FŒ}FçàS™û.8Xì-LiÖsWÏAhBg"tÕ±`jl^ò9"´s,€Ÿ èàJ=ç wË.gîèØÄäo·Ù•ó„F‹¤èdîí>J(Ûºx„n3yA„FKûœËK!´¼äÐŒ”6HÐõ TER.7Cè„Ý-¡}„@h´Z~†Iø^äçä:‰òvB#”ߟ›¥æ¡§Bh졉вjŒÐš.i©AèàѶ1û±;bå¢B=Ýí¥öeivnDÃØi=¾,Í~B3¡¥š ܌㦴+AhRÞ!-läRæm–…4¸s²_:ø]S¡ƒµk›}åàËx„fŽúàR‡š B#B£žÍÝF]RD.Þç –Ã04ŸwŽDÎp H+zÚjà 4Zó¤¾sŠÎô-§Ù¥y!´l±W„Fs¡Œ¿N_{„¶b ‡ÌÏ65ÿž¡5¥ ' Æ#´Nn¶$°B[]àôJ¡-Ë7f;*‹ñÅfÞð%§JÀÚ½/ú–Z1\Ùf$‰BèÆË “Vº:ZŒÉªJÑ ô$í;eÌ¡QÏÆM^¬ëˆv2ùøcÁŒv‚!MsAGåß .QT†‚ŸìÔþ Bs™øWBh›Q:¼ì½¹B„Æ€@h4S~'ÙˆJ çû–Ó~:Sy˜‘Ÿyü¦ñoÙ¹Á¨@åö}s„®gZ¼ùꇢÓ>›iÓ®À `½¡QWëÐ8~O¯/Qž3ÈÄíóë—Ý‘+Óbw‚Ð8sЂ-˜ð4ªg„ÖÜÑ [K5e`M4¡Ñì(ÚxÇé;&#´“50‡¹¼ÔQ9¡°þbß-¹46,δNž„¢ÓÚ†ªõÐØ.BÏÂ}±æëà\—à3ñrÃ3‚É.d„.‚µ9ݤÓš‘­Ç”%LœKqrø4íûsBϹ&{ *¤D†CѾ%J„Þø9ŠPbЛí3ìÍ’B'|„Fk³c-|íÚˆ&&GÐ Z_!ºÙí NDM+¢åÝÎBaÁØ@ÈóSyûÂgÚt§d‡aá«Þw™”®§å×Ui6-B„.e] Ÿ1OŽÈV¨âKþì[cèthgX!I¥›õ¥ÌrfŒ> _¢Û ô|ïÜ4„fA¡AèY_«d„~×—ÛÙ—æÎøÝ¶Pô£oE’óulõà ÚwµÂÂ÷€ÐV—‚rµͨ@ènm,wb0ÏP¡Ù 2Ãgi…Àç¾J ”„nùxQŸT¤ìøŽÐb,|¥ è"‹5©ùjøº{@èX47¡''Fžk+/…õŽèàrBŸ7þ¨âü…ÐÎì"SMs@h„”fÍ”ôšB÷0Þe"´«èÒá=•™]ùY›øúÝš‘hœÅNNj'žoƒ>š­ŠÐÎ]·aTø¡‚Þ¤&í©t‹S[ç$ý˜Üy+Xi}¸&ÑB 4j㙉z:¦‰[ö}^X?èsðÚ ºÄÖ@èRæ= ¡Y ZÅÌäÏź` ´ÞÈ›úÙ„òWM=!B·Ÿ¯äL•Iô4háÖãˆÖ ´°)[Á …ÐÁ½—õ“¤-hbdA¨,KWª'n]êÚ tm®l*& „F#„žŸ“sû WvkÙ3œ‘ÏÖã‚®‹ÐJ€/è'QVW‡Ÿ*ű †¢*ÆëòĦ…¯íÑ-å‚?@h(zZ„6ê<ÂåˆN@h±—ýíZÉÏ™F^SZ~F¨%Í–MtG±e0å~%K•‰Ðúч@BƒÐR´]m(Ç3ïœÒ…ÐVŒ©ñÃi⟭:Š„Fh‘,]#òÁ„b-’·àK­?9B§Y-9ÑB 4]o,p–ÿÓ\Ù_müž%Bû¢¦}Žß¿ZA„¶¥9àg„&·ŸÅom%Çæ„— äÈL4S ¥£€gBƒÐS AC5’)ÚztŒý KO‚ÐÁÃ&ĮЌ)5pD”­~UÅU¿…"Ë 3M™¯übÚ@Œ}C 4=º–G MH,B Ø\•ŸmÈÏŒ$4{/’='Q•ÑèÏUµ“5"Œb¡Šlºß½÷ר¤v™^w B§åÔ»ƒ¡¡è©@Ú7jlüÁN ¯Gè½È½ü‹Ðšç¡‚S(?mæH4ÕŒ ¡…QtÁ¼ÐBÞþ CÕ‹]0^vÊDè„­9_@èIÆqn7¹pÛŒÈP¶–ÊXh+:«Ñö!t0ŠC˜eÿÍìÃ}ò3cZ³©,2`)ÁUð]û¡£iUBèÃ% 49:=‰•ãv¬±ìîðåPrx¾eåš!´ÓþËQ2B'DsDhÆ2„¦àMä‹a&Ðo³@ŽœÄÚ>+M¦hBO5Žs¯׳ŒAZX](§ìP†=7ægÙÚkâIL(l#¡çËÏŒehñ–³8“§eÒ»> "tærÂR.hÐŽã+¼×Æf-˜UI“ÓÉ·hNSmÐÝò׊Œkzv˜Ÿ KƒÐ]…@3–!:ÁØ•Óö=“%{E|#BpÈ(‚Ð T>Äæ :ßáˆÖ»4ÆÖ(j - ´¤ÿ.B++ªÈë œ9¥ªzMEÑŒe„޽e” |“",'L`õ²îš|~¶Š„HtNBçÀaÔ8¾*„ŠXù¬±¤ÇÿµžewN'³óOSñ³¡•YA‚ŒàDèÞº.c¡“ rÚz½`¼±ì”F„ü3õƲ­™q B+mQì8¾Î2ßÁbß²3Á3ìf‹ QS ˆ5:-ÿ’ï‘kÿý–± еmr”eÐd òž™•¡„b¯e!º¬!¢æQÁ«$ƒ´ñ¤ænØž\ЄÎçgê #4ƒBË£è„ eù=B'‚Ë`š‰@èsyÚg®“AÚ—HYùß~B ƒ­YH˜ÆÏrG¯ @è(sL©‘ó¸ÊºV ùöRpE°/¨/ÿRS˜еá0êÎZà hÄdk +W b³õrt‚Ðú\J«^ ¡ág„–Ôác³$¥!´f9a „.b¸4‹M¡KÍåAhÙÑ¡‰ÁSF’ Ø)0³õTôî¡óùYžëûä,B8¢Fy„@h•Ë|ëçïÆS|v·¬aÁ¤: 4¡çÈŠ 7×âÚ·`Dï刊Ž|…¼ƒyêdÜÕÏõ€ÐÊŒÙp´N„Ö—ÊÕ£¬ü€L³÷`Y¨à…"‹ÄõñrLÞ]и­¡bÙõ8´&S„¢_S°»7~–:Ê­Ÿeèûä|]ÐdŠF ´Ì¥¾ÌE”M@hMĈ2‘|„e“,Å"4“wBƒÐUZiÖõýÉW‘ÐæÑO‡Q"t?Gv9màLùŠF«EheB~_8™ÆjDèàÙiüä“#4fÐ¥ h…­©5#T¦Vbs‚ç¹OÏ€Úg´cùYoØé‚f,C+Dhá.éîB &ÌúfC.èà­]6ÏTÔ–Ðõnº"´ÀÉš, ºÖÄ9÷ì¶“ù9y¡ý¼\жÄòI„V…ÐJpY„ö¹DÆ™:lhM¢rAúT]vi$¡×lâVËaD<–c<Š(ÊêΡõÅr’Ú9+¼Ì$ˆHDP´&'³b5¬Ghë_qïŒÇ–od}tJ=‡˜2 ~F tέ·f„6“"´àñž B'eQI–ônÿe tÔ=ˆÐRÚ—sU¢Ð,W±¡¬›* ³žx½ôwú“ªä ÓçÁþ „.~œÕ©”ÙíÒÓÍ1#–Ÿâ“GL5-B0r!:!ˆBc-õ˜½gš|‚•“£ƒn™fM4¡§²r«_l<†âyçf±œ0ì-pÍ,&§'>k†Ð,$D tKP„¢eI3kÓ'jR‘ØÔô¤Qv4B‹AèØ|qJ„Þ¨ÓbD!´&kG0›P›@–0#ºCB³àˈõed~–sGǺJ–á‚fäB+Y¢².;­ÀÏõê’ñÊÄÚ]o9¡¡Ñ] @èäëÓ~R3ÉhèÌÅUÎ[YÞQ“ „Fh m]‹ˆƒëõLdzŸ4„¶ñ®Ýâ,øÐiÆéŸ„¡W8úô€ÐÎΣ bÔtBßJ¢YRŸþ¹«kRkÑr$˜Æã:vÈ•dKÕËž¡±<„žÊ0r÷ÐN·Œ&%©&‡óMÙã4ÇŸûÍzŒˆ½ ƒy6äÄ;>ܵ~‡ª¯2xpÔVIk8¼Èä¢Bcy=­o{„ö…pøø9XÒQ3LÏn .h´H‹”pKfˈ›€Ð6ô°Ì‡Ù¾o)£Aô¤F GŸ±<„nH 4…ÐÖ_,,Á˜›ÈR¿óúí¸ƒÐ2øYF%FŽŠåÚŠQÓΜÿ›¤LÎúÔ¦mÖâ‚F ô„ƒ>4(Zvžì\QÐQI®¢VÖ÷ÿÃqû :*ÑœÑA/tì¬Ü‰ôz„޽†Í˃@h„î¡e»»ŠP3L\ÐuFÑ9äÛÄ首óÃû¼Íò¬\¨ÒRÄÝ ® üŒ@èn)𛄛kŸ;ÈD®9éÏk9!.h´TsTi9a‚#:¡Õãåð§¹ Û 4!Єî¡!ÚÇÒš%„N`.ó™×pÀô­¤mÌê¹1I×WCÑr&ç±­ð-`4¢ö:Í¢Åà«‘>ZÎL’ù+#„Nýkwå|)Ú·ŠP¨±¢樮2ß\vt{´<„¶©emƒ±ÁñH~þeCIæ¹ ÇÈGhç–5nü(‡¿p’_Ê‚Ð+DèÌ_¡¹+ç‹ÐB•¤‹çnš© šÞŽ–4¾h’ÑÚiRôCR0„ÌúCdǵ¡ÖG+×?ÚHµpÒ~åyeE t%ΩAÑÉÍ]9_„ÖÚ®ÌsQ-Ø'ãÂäû"m!¡u­ÅÐG|ùR Ø\6¿u%/rzª•ƒ¦)óæÜ; „^BéóQ6-íØ¸+g„Žò(ÐòØfŠÐôs´ ŸŒ°.¯ÈÍ«I(!;¢õ)|e„ÎÌ„/TŒÍùŬAè• tAFÕSÅn„ž/=vòÛÁÏMë“QaÎýë{˜%'µK@hëÊÉ©GèØ5ÎD² ä0Ùž £È’@h:òÑÜ•3È~;¡É£®*˜s#ø"™8ƒÐÎ,÷z„Öóq-c ^ê¨å„Q [„ЋD豋 `^ç;¤š\!@NøÛÍÑM?GK¢h×)):ÍëbÅ›ºœP@Y§ó9-é½¼„DÎP­Ÿ˜(¤'’œ³ÐsGh“º¸#XŠdË.Šÿ(k¸˜¸ šdʬÌ`\¡}l<~1FA}í£Ê¨•zF‘RC.ƒuÝô•Ç5©“xRŒ@èM„¶ÙV襙­¥¹›<ŒdŽ¿=-¤õ„Ü  —/úÂú+ŒD£&ã½ò8ƒü,Ùié>2SŒÏh³iîhzrHËœ7E=ë¡õI÷Fk ê¨þŸÿà2HÑÉmý‘z´/ëݸ|Œ>«‰|:D/#º”M{#s¦¢ tÿ–c<JÇ‚ÐQ³º+ZÏt~ïÍŽh+æÄð­Œ=£1E 8½w$>Ìv¢õFLs··YÁP 4¬¡sœ yà£(špè G®|„Ž- ?ëg7tTTÜž/€¢‹D:sq؉‘Žh£ˆUŽ-h¢,n.äô0þ•‰ÎA£„@èR졼­‚ao ôä¨V„Ÿs‚ñÚŸr‡Ý~FiyFKº„åoõÊÜû(ºTmÙ-SwÂŽä+)§æŽzМöTü¡W‹ÐVW1JÛåjPހܘEx2-ñþ\zoˆé“+@h”Cƒr¬ì|£˜ªæ¨²Ïå#´D;?©7MBÙô1T; u©êš¥‘dç¡Aè„I±ÕåÉæö‘ƒ¸è¨™´¶ë”Ð[B}éØ~\ÐÝrüŒr:¾‚ö(ºì‰øªŸä/¥¦€sò³òÇ2:$öͧ*%à VZÁ¸Ð t‚ "´@_ò È-™0XøL«`åŒ?åQÐÃÐ º[®(µ4­œŸ÷iï—²¡Ú‚5(Ú– ýuºµ}2Mz$ö¹¸k[B3ç©¡'GhçÝäû“°Š!xr?ê‚qñ)åVÓõAh„¢zÖÐeŠ®q.ʤ9~$¹ÌJ „N+Þ srۂЫBh[(õ\Ðt$ 4Ô‘`ÊäŸ@ˆ–í¶`±ûŽág´†»{îÐ}3ªÞ&5z£îó´ä.Z³ 4m+doV>å1ºúj²+`ׇlB£°¼ »½}Ží{}ºæ@hTÕ–áý mצè"&Â7µ±þzß—×¶ÉSÇrB„¶u  ÄFº(Bû W~88N‚¤ñlwÕoM— 鯍 «,溓¢û÷šÊ6ÁYCì,cü_yÆÑØÏ ôʺ E§å æÞ Ú(Íc¾`â£nµu?÷\e «8ú0*Î~‹y€>^uÞìn3(W3”-!· ¡€ÐÊ”òªCà9託ëX%ä fìï¡{ã UBè%=@‚:úDè6ÖÆ‡Ð46ÐóEhã)3š`‹@è´§„Á°ó`À³I©RM[ ?£%Qtÿu9Ó@º E秆®:‹I@h‚“=;ŠÖ›q}}R(ÚŽ £l"3šjÖ ÏO}=XiMG2 4C*Ûœ›NµO¤øökç»±yOâ=S„NX¼¹/ÍBc:¡…E26ë#eh±³ˆa'mzzÌ 5°ê3­÷-[¼ gW‰Fé‚&Q3¡§škçx¡£ª„ÇšÍ5`L²=®œ‰øj„9—ù$¬CoÃÏöl¿Bµ¼Píο¤"qO¤Ô–›%²šwÐÎå“×&G}7!‘»p÷ U d„Ž:˜–…W„ÒÉ8?£ª¿·BWµ!&TNÅt¶PÐóEèC”œµ2?b„¼vú ‘üûúÂ#ÓZŸ_ºYX¦|¨EƒõP„vN“ 䘊~Û ´`–}S*¬¡ûDèÌÔsQë Ah¹w°fºìD>Áé!L7ˆì‚žd fäBm¦fÂYN8 ý6^Kè|á|Ôˆ B tû¹¼²ðh¾1‘sD¯¡åäÏÊX_}вœSZ¨5Uá•Xo¹i…ШEåMzÁÀÉ<C ô´†"™ê9¢×€ÐNú¢h£ð'ÛÐÊ;gÖ,«vA·éÀ² ÚL—ÑŽ¡ ÕèT2J-ÛNöLÑS!´à(¡yßåÜï9P ¡íÔÑ­º›‚õÇkú‚ö„ê*{Or\ÐU׳øP9ÈÏ3J0‹Æ8ÑY tË]4ð‘Ÿn99™î5iMK='TßhoˆVËatõ…ðæ ËÂÉÃA7u2?lº §uÂ06¡ÆSlëÉ“³ÔÓ_-B 6_„™!:ÁÆêyµˆ×·,B¯Ç­¬?hÄ'¹òÚ§íú«õ¬ÔÓ»AÊ"´ö~F‹3B‚hz’]4Ch£æg_Yp‚:­g0=E¯©]Ͻìß(:˜ÅHlV"´ÕÕ½’ÅýÀQülgXã ! Bû¦®«BèJwtç-™•]„F#º B[Ý“ zZ/“ì‚ZÎÂ!½VúúÂ.ù£›r •¯ üŒ`VˆÐV‘i'ÿ¯*yÒ¤1¹BR&б_I°qxXp1Úz Z]í?eIk%B+]Ð9E‹8 ”ü¬¹2 4š…MЯ"\Á›bñ¼Ç£îMý¤¸} ´Ÿcƒý0S„V"´œ²±#:Á°’X%é AËA„¶¢·YàmÁ12®¥˜ìÿ©Áϵ:ø¡|ƒ Ig·„¶þgmA„Nq ÒfãtÎF‘µÉPøÐ1Ž _¼\$'#tòcýuÆrèIOpËõÙ9¬¸òN^¢¢xšãô¶•ˆnš¸ Y°ƒê¢@PkChM=>Ÿõ-û~mõ„Æ_7VvËGù¨¡3’ÆÉ ±a±&.¸Ó•„C›$#¤Ü(„6.B61u^Êâ«Æ­I;SãÙeæ0ÕåT—'Å>–^ÕEÓ/QZW%¶Dhëz&«,ÿ­I‹ŠÐšZV›¢Ó´zmëÍ5§,ä|öå…³À̲¡Në“QÅÏúLªùü\d²€Ö ÏB~¶`†5#´~>²½˜Æ³ð9 ¡ÛÜãÁ_Vó(pÚS@ ô"óB§UýÎ<†äGiN”Z§WJþád·‰K¨WH³ÆöjF¢„†pL¼! 4ëtP¦·A?¡ö%åXBGY’Ø{3Ö…[ê–Fcs4Sy`¦ƒ ¥ÞB¦¤qÂÒšoyy±ž&ù•oÙàf䥑Zÿó™¢.èXÿsíhÁw„PG°l/5Çj)ºÈ"}²‹²PÌü”fk˜)Bç̵£h9?#Ùક¾Á…{?û‚7ö8Ùdø.œN’¼”Ÿcê¹½ B+Wï"”ÙEåä9 ´/‡Û&Õ à{Ò—ï%Pö %0ç B tÔ3Š–s™9ã±£‹"t¦ÊÓøƒ¢å:)¾çƒA¿M3îË"tÝ6)æôÑ×X”àmÐC#&ˆ^¼a”)Zv G ‘¾GuÅx)ËèTB„@èRδ„vòLZRÍ"t²¿wcƒÙ6‚&•S Zç¸Ú4é 5É«kß5¬ÓAõîôå!tÂ3)ã¯,´99Ë1Œh!…$Ì¥&VDˆ!zÖà4ÚÌdGô kh!jÎz¢8‚£C0áF¥…J~ÎÔŠ;J~†¢Q ’ô%µ›BË è|Q[*mN„:¸LÛŽÒ}lJxŒek Q#ºsž@Ñ9± tp:J¢Çj!èNCìUZàçz¨¬ïäm¢¯ÑJl¯>OÑ|—ÊIæ}ÑhÁtCA›£‰CKCè"¡Œ¹Ÿ3ûŠ’¨cSI9øMy` Fh_ú8¹¦¶2þ<ÁùtG+ Æî>—Ú´Yゟ¤v(Ÿ“)Ú$M®ûgçÊ_¹bµPë\0#ò]¬ü-‚±¡×É?–oa‹p<øF t{THóK§Mó•¶ÈX£+é(8”1F‘­.t—3\¦ýÊ=xØ‚.hÌ)Êœ/çhÁ…=#´\äÔè²g1WjpxÊDhù§ñ¥Ñ«Šì4’Áó¡=E§1ƒÒFiªíOÿcå€àº˜Ld5I¹¤œÃA'§ágT¼G)•V|ö4 „Ö;™ƒé(}ñ½ÖÿT(x#EHë_Â#»£E‹w$_h4„Ӭ´¾”mpã ~VnçœÚUú"àùÆ< øåŠ0Ýò3ŠÜïØÞc¡Å t0Ø8xÝŒÂulC‹6â~­'»æøOò4¡ÞŒL0ø,'D ôTä?ƒ6:Ž îeÁÕU‚!‚ >„ØZ*™Fz„Ö/ŸŸ¡ágT–Ÿå¥ ú¤jvžz Ô £Œ~õŸo^ï%ËÖ[‰¢è¨õ,ÜŒ„®}WÚl÷oÔSKŸõ›²_pß;š§œA«‰¦Žfa)M,?÷öx‘Ô ¡}·ü&Äýgä—Ê'hÅ‚ÝiC÷rÄ*ò´L¼iBCŽhB·§ˆüTštÐJ˜_DuÖ(•8Î,—éV†m+÷5#„†ŸQ ŠÎÔd'í¼’ÚÇyBaý»c‹“&#´ƒmÅtÓ“Àêxn%{<¸= Š–ý{Ê7sÃŒ2-WÊ;4ùˆìKµaýÙø•y9”‹õó?£õYÔ`âbMüª¯ÀJÿ£‰óRøÀX÷"¤‘×OL„@=âsV´·lBìI9=¡ß  •Ž¢èÌU‚g`*íÚCFù cB´dZvhMª´b>X¡QûûÚW¬P¨g½„–SŽ(Ak :j#=ë_wßÉó5ef'¬¡» Œ˜]¡E[ÿ“©({¢y&h»q*¯¹J!d®³¢SZ¾øÂ‚úâÓø­–®ƒ¡­¶§ 6±7—r¯±9Îø 9jfùÁ±3„Æš!ºBX]…”4²U"t&ÜšPà®Æf¶ÿäGœÁ§uÂWÆ,mÕ…Z|¾îzÝoÚQ~FS´PÐÙù±9:g„˜ä¨€^ù*åxuä圾yA‡#Ȧק~„îÄkÑ€Ÿ7!ìÌAh«ŽIKØ—fI'­|€hÅë1¢Ã9 hj¬¤•,œ EÃϨ~ÞøKÞ;oÛYŒSzo­3”e£Ën§Dèà=>^Dcý«#»Ê}!¤¿Æš!ºÆ}ê{è/¤ÕK8\0ƒðLPãvè¡•gçLì/‡@§+LðZ÷LÑBi!„&±ê>` Þ€ýÌ|O¯¢ÊùiòàÅ"´æ6ò É^‚N–Ò"7­­´Å\JÇ£Ò†ÐJ|j³x­“5n±µT¬¢€—/~Ãú×ãÝ\r6äßkª™ üŒz³êÿT×öš0߈Yâ̤ŒpKFh«Žå˜KrTA#Zii7b~‰àªœ;1ßm«¬¤ÜrñZ'„`éÛ1å:ëºú¨Ø†"œ} V‘’:3$¦ýý¨ŠPK«îó9wÈat¹Ôä¬ËÖõ¡IôW¡ü„Ö pέi¾˜?Ü´ù àgÔ­U.dè ê4Ø)§ ÷jÍòjëÉq—†ÐVíQ·ø{½¦å„ÊðÚögT$Ñb(ZŸCs‚J„Wwjj«õFÑ ž+„¦²ê¥Y·±Zšh ¡šª&#tÐèe"´ !4QÇ„^OR;£^žÖþ,ÒÂP3ã¢åqªO„Vò³o4 ®èÖ¡ «„䀓|Ä­ÊÏSÍJ³ê=#tp)Gp% W©û,CB[u^ÁZà@è5”VÑo4àSÛP´/¥[W.ÙnëGaù…ŒÊ{ÎÁ¹Tu©÷+à‚F3elÓwtnp… 0ß—]šÊƒÅÚú“-o¨@è tfzŸ6n–`ÝÕLÊÒ¬ÎëÄšÔeàš*´ã±8ê,jUÇ‘J¿üŒæˆÍ]Uñˆ½Ñ|7¡ƒ±‚{¤B›QXЋGèøÙ¨ƒÒ&áé§\௫ ­Q‹}´,\ád„ÖW®é¢žù"ÔÌ«L¤¯Ï¿ÔÕ5§£x<¯÷™Zdmãs.i‚úœC†%ÐKGh%zÙ«ó’ɹ6E „Ü¡KA$òB B;ÓÌÊÎâµS§VÚ!Ш%ï_e…Ð` œ`:ñ 8Ï%¸C™£,BûJÞXEél ¡iÓ£&”&ºT*†LŠÆ­Éÿí¼Fapl²b| 0lâG SÓ]t)°*hx56Ä„ª» V]‰ÐÝ:œÁf»öqÔDU„¶‘…Åå¡–L„ž5Bëƒ7lžÿYHnVäø3Sö50ošp`ÁQXSÿËøÇ,çÇôõ œS{à(U[ÇÂÚÎõù!ƒ«EdÀVÚ‡þz“š#¡x–/×tTþüÞ&/ÐÅIÃè,@Žm,~Éüì[ë=yaÚõ—OP3LD1°iUëÔì 4jIŒNtŒ²ŸÊ´ÉÛo<§°þ¬õV\œ§›$óåCh“ÍÏP4¡ÃϤ¡H£èà •¿ó:à{I–4¿Ž¾$wEoú¦høMˆÐõʸ4~¶¢#ºv–uyEŒ¯~“õ—‚òKkrDç ´syˆ)‡ÐDw zîüœOͼŽÑ‚¿B(ÛíÏ-ŒMz„V:äçŽÐð3jOÑÆEÑ<s¦²÷6N|§÷EhÙ—uSÀ×Rmý šŸƒãaÒ„î–¦ZòsKLÑ‚àqí·ä'¤B")!:gYh3¯Wª”UBJ'Bkn1!`XƒÔ†ç¨»Þiš3•€Ði£’/£¾0(s@ñù ¶Ð=íX´.´Ü sÂ.4ÞTù iÏÄô3±’ 0Z%ÿ¾-,9S*,!j@ÑÆÈ‘ÐÓ+†Tµù ¹@åê$ÎüuÊBᙌêtò #ˆr¦ šC„niŸ•ü\?:™#äP´ï#z¦m=Ï”VPÆú¢Û\±Øy\Ш¥‰Þd¤© f§Ì7}EŒO]ͦàêf_•¨4F-‚КHuÐýXæÀ˜é Û€¢gäˆ2`D•”‹³t~ldmwøMåë0þçä\‰¢•óà(& ´œO6ãÉŒjt©õm^9=-8i*n,ŒŸÇ ”3”ÈŽhßÖ'BËÕ ªÉȃo‡>y¥‹‰4/êÎäç–ëf7!o³f)´½ÉˆœIFè„PŒ¡§âg!±|lÌbˆI°?Q=#G´sŽÞ_¤ÌÚѹå>Ža¨B³0n>&¬÷ ® EËE‚íL7*? óÅräŒÂFÉÏš"†X$BwˆÐÍøy*  ™ì+WPúÖÅÏÈmCŒ¼œP.Î4g„ÐX?4#~¶Ù.h¥Ý+e|äº$FL(j\ÅSŒ'“¶~Ò‘6ã:-tNš#„@è™]„Ü:™Dh WÉN ÁÝí¢ÂàÚR¹*\xwü±>ÝÑÁŒ+X?Ô3?ûà-¿×@hÁ°è*xv2vÏ-§éaôD„’’¥FYŒ/> Oš#¡•>j(ZϺ¹XB´dlXu·ËaœI§Ð,àÙgÕ‹Xž‚-f(Ÿp Ó–+‹›dÞøÁI0I×ä`a-!¡;±ºz{XŸ•)Œb%œ…Qó³PÅÀ÷üQpD/¡/Šu9¢;OÊ„“õÌJ›å$‰² ùV"˜ñ8*<؄ܶ>GtY„vFÎ1¶ÍWÄÐ÷ƒ’ÑИ_¥•(-dòÔópò‰ë'ø>„Ö¬òŒùòø9xé¢L~žP·ðìt5 Ü ÎÜ‹ t¬û"*”¡5+û*!´ UðEì 4 4¡;1¿É5ªæB)úUÞÆc£ô•¡|[›—#º8Bûj„Í‚Ÿ¡PW÷f¬g²  :Ÿ¢ƒ¨/gxs¥:6²"áâøæ/Á± x)˜ã#zF¾µJ·gƒgåiÍpM ŸKdÁmýþy盦׼ 4꟟eŠ®á‚v‚b¦}0¡z‚²»CIÑÁ¬BG¦~-§àu‘PK¤¡gµïÍ·Nì‡ñç[S& ð9"æË‘¿àȨ t{)pò 9"´¼’·’•È¡h£xbå/¢¢54>jax*ŽÐÎàç(OŽe3¡ûFèÙÝž™&%jõ·f´’—“t›Ý®ì1G§.N4 Š<±õøÙiån.9øDvÏŽ­±•Þ ß“ÁàB¿(ã)Ç(>¹–.B tcó;S„.µäP?sÚU!¡¨üážDOÞñ–1#ChªÉ]„ÎtϧŒÂé*¿HCèñ×c'Ñš&‹53zBÏe9á¬ù¹¸=1êx¡ ˜ÓÕ`g∮”΀P»×†Ÿ‹ìÂ(r‡úÎÝ÷"ð¬IÊQjݼkMH¶%® ÐsÃÎYßL„.²nÈ웲•ÕÍ„æ…aÁH¼ wZÈËÑóJ:,3ÁÏ l²ƒå”;’«¥Èå ´/AJœg”B!ºf0S˜P‰UßÚpçŸä»üúÜé®­e‚Sæië÷EG!´Í^7$‡y œï‹]Ÿ 0$¸/&qÕŽ¡Wíð=°“ݶ3G4–™k‚–ÁÏ×$Ô‘=«Êq!XÂ;¸8Q.º¬ç‹ÐVç…ŽGôvB¯™”/§²Æ_a6XiÅçî?+2–™k‚æÞQ§òXfR´z5û .-T"ôxãÁ$Õšly…¡—Š Fô?Lk(|ÐëL[ª/vЬp¸È5A+éœã¨°©âfcsG-$ ¢µ°`Pȕ狣ênjkùp#B·aÔN쌀ÐÂÃ>M%V„ƒÐÜųÓÚLˆÐi‰”5‘Ïú¼r Øz‡&~¯B ôÂ8ÁáÐÛª:'?û¼ >+—2ìÊç² uKç¬ÜNÈQc¿&²œ®>‘…rËÆïN›ýÞÜAЕvZ~Þ3;ævóÙC_n:9á†Ô®{‹Áç² 9ò³snÞ~9a ï·~³N§´b§ßòÆOËÎõ2Dn ´H„î!:Ëô¿œkvÛ71‘ Qu)‡Áç² Y#t”íš;B›Px³ü 3ê€M¡IÝŒÐJzÚ{|‘¦Æ·ÚEÈ­d:óZ`í¹2h¾ÝÉRå5–Êõ@h1ݾ.x¶.”YquW×SÏ•A³›¶w…jÁ*T9EÀÇ,5I<ö ¯`‡õå…ó .?GЕœ‹לîß BƒÐ¥YÑ×’Ä‚¨r°0£´¢9Wj •de; lŠå„-¡;Á×ÅgËt®(tÖÌò­©‡Ah„:w†äÜ)QYï6¡ÊVroÙ8 µ­«¡óHˆâ@h©mº ¾-,×9HûVÓþC‰ 4B³@è´½+ gkòB;©Ø„êÀ: Yð*ûÖ-:í<¡…!t¬P)Òãa£«rÅŧ["$PôÜóùÅj>¹l·\vPCéc„–3Gù›Š„-¡Á•INMζ4¡#;Ï•™×Œu…j9.h™¥…”ûÂsÌo°Ñy Vf1äµC„†X*Œwr½B3Hcä¹8³à4Ôçì&9φÃ&/Â3’£)¢Ú÷²C#BOeüfm|ä,Ëú×¶@‰ tãÓPñĈu±}ÝÏY%XÐ*Á\û:ÿž‰¡¡§Kayõb°ÙêÖÂXOâß0%‚Ðíù_4*ÎÏÑϬÐ-$>Jö[q9¡ó¯r BO54÷ì‹VšbÁnËf}v[N| "‚Гܧu ²­ñ3û\ÁN¿Dæºìà’@_bRÙg‚¡kŒËÝR´ÒFDFÅB´ÌXx®OíÐs¸5òû•ñOÐdZÖbçàk0c¿/*φ"´B t3„¶Ó >“k¤ÍVqJcç¹>š‰$Až¨à}aDxS¨`r÷ªi'÷OMW—k¸Ð+¡ÛSt°¦jcZZQ=! Œ-רŠò¥d>¸¤Cr}ô· >‹*Ò*¯ãÞWz$dã\ÕBÇ@„n«AËÖìõÞc¿Â¨KÓÊÔ­¼°ð!=íÌU²™Ë»#ÒJ‘oåÇ‚>iV8*£²B tËAarG´ ¥'b¡å´¥AÓ=~X™éîkB¯ê"@ ý;‰Ð>s*B'8d0Vº¾¹)¡{³Ìmr#oBù‚ŒR z¶sX¡s®k¦Ú_ÿ~ ­àÞ…U'¼±/@ÚúSd$OU”ØD7!B÷ãoé„¢£Š›”ŠˆSúRr2xà6¡óoI&b±¬ÔÔ~Â{¶l´c¬ c6¡µ‡ùö_NRÍ„@èAKmÓ”Iɇ§ñlgnj|‚Øü5#´~ª3O±Ús ß;»ApV(ƒ¢} ‹OU6û©IÜ„Ð"çõ 4]¼¿%W’•ƒ¢‹¯|¡WŽÐzÒ“SãÒ‹4—+Óäl¹Û!!Ÿ†óräg%B;Ç •ÌëAh(zrä6bï½ JõôÃ…YÔ¨E²²çŽ”œ b.ã`=´œò™tìj(r„FÁϾ <£ÅÌëAè…ø=#ðœÑç9 øYE¥ï²3SŒÿâ:öDÐ%ÈDLy¹ò‹MûŒa³;·Ù,^SoÅVËã Ã^üÌ­v^B¯“azè 'jP¾ŠW5ΗÒkCè`͈ çðüº¥Ã'ÊG=¯þ/ã±oស˲¾ ¶Ð 4]jXÊli’{Œã7¢R‚¤¼Æ1Nß[’-5¡Ìšù 3¯(,,2=Ÿ¤kÃyð ˆPpZ< Û£ÎëAh(:s<’k¦Èùœ5{,˜£ÉwØã(ÜÑ«Bh£. aüéyñ?×@Ùi¿Þ¾ókžåuOÏGë™×ƒÐ‹žÄ ;wç[\Qägg¹ÆœÎ/¸qœÚ–Â…K(Ó ";_ÝyO+uó6pA;ã4”®æÉû!=­a^B/{ ©ZÈÀÉôV]Àæ"w«ú ºR Ý•;"ˆ(ÁtÐÎzδc\þs«Æsºàg6Š,ÍX„æ"za­\l%,²êND î¢ÔÙPªçÑÙƒjBayU¬plò*,ÓÁʲwμ»%?ë)Úõe@hv]„î v!ëQlú)9y)4XÚº<‡¾R/Œ\X¡‚ç¥,¸&,í}…0R¬ù®²DNÔ^Ú”¯ÚÄ"ìsFFßF ^ ô¼_©DÑÁ2aQ¶Ý·|OÌ¿nÆïT÷EAk’0¬Ç͸¼ê„ãóÒø™å‰äFLš‡Ñ+Þ¯b§*Q•\Úœ¾²ÄO·v:6bä¡ÛÃsYú*EÑA>*ÀFqÂ^°„SšOѲç|ŒÐBmáÑ?†hÖ-°o¡“ºs’ÒàCHæÏ´•¾ T?cAÿ†.èœ tËß´R2üœ>,J%§/ˆ¬¢T\Y„¶ž¢áã° 9Ìuãÿe#+ñBëïS9fÕ(úð\Ö¦Íâm+ò|~ƒYôÑ3AèIø¹FI©´žcBϬ…OÆ>KÝ;T¹(p‘Q؃í öœU„^Bk+ûæ¡B˜Çzâ:|ÎÞîãyx$»¦ýiæ;É¡=„^BËã{ÚQiêw;‡°(tI«Ã’ÏϾP Ÿ7bá]lÑŒNGv, ¦¯°ÙO ŒÉi°Rκ„ä?ÂÍ>áO3ßIè– ô´¦²l!XŠNG4QÓ¾¼pwŸ¾”aì}¤ xö¹×¹Xl¦'(Ç—Ê·žœ«\[õÅ„˜¤… 0q“ÔÈîħ1£Ã¡c=GÏUÒlXÉñøÎÂG§Î(ã¯g‘|3D ©EÆÓ ô’;Qyg OaÖ =£¤Ÿ¡uöIº*âæuÂ.J ñšEZ0<ë„`ùÁº/"EÎZ?÷r>„–?3v8'¸ ó§¨ t=xîg¥'Ð t%–N&ê`šå䃉Cƒ‘ÎÃ®Šº‰|‰ nB‘˜£yQ\0vüB¾A¢øy…}’sе?¶™Z(ÑAèÙÙÌ(omƒÕ=A„rò¸J² Ò±ÉT hÊzòSšpñ­œcÊ«XNØ 9[W~!Óäc"ìCtEºO_oÜxìÖ¬'ÒÄ‹úÂSƒÛQŽìújÎB ÅÅ[Ñr”uAÛõÕâipG(—KwhNPBÛ5­qXFWìð7¡‹ ñ•²ÛM•µ)hX|oŽƒ+‚ -¤þÐc•¦¨·þ»ŒmòrÂ(´†Ÿj'1/Á6ø„î͆*õÃn-0]¡khª‡È¾AJÃÏΰ_(µæÖP>ÜwÖÚ>ô_¶ïé“Ú9Lï‚VFϵ¹%áWã¡‹ât‰ºÏa„îy;íCd¹8K,â:ñFŸ“*XI\Ò¾»ø0×¥N äDåVÅ¡äg†ÔJfs¯6¨žágL½r~îj˜¡s~ñOŒ+Ðw’GQ m|E†(»ÛF\H([WÕÍõǯôBkøÙ&å¸C™Ü,ê”6{BPtÚ>..@—¡Aè©83‡œÇ ]vG™ülc–û%û„ë3Ù„ÒqXO°ôJÒD¯ ¡õQÉ9¢Q tÑ\på¢ BG¹«ª=:ÓîG na¹Þß$õjŽÕqÊs×ð³ï”=¾¶å¡gо©åø®Ÿ;üA|JÂb„•È鄯S™ u…Ð,'DVW‘$êÉfc~Ž­'8>kŸ#¸Ó`´=p2k [!BË·\È<ë¡×L}X‰M,tŸü< Ð’sðO“ó³Õå|Ötu¹vLðz„–3Ú Ÿ\I¥Œ…Ý8òtL“-™ŸakP´r Å•¨Ú ÝYÇëÿ·¡ÓÆô¨Ñ_öÍ ´`š¯´ºÇ2Ò(ë-êI;êjëSs¬Äó0ÓS“Ó>Ë5t„»5™ŸÓ’¥£´‹üɸÔX‰âXŽ®:Þ,~º¸Ù7êdšw:äçqB9 6OÓ¸G'#´SsÉ7o-ç‹Ð±y¼ƒ.èLÿój«óL莀Ÿ±͆õq¢E?ƒÐµÇt«p8' r„ÞãX͉kB&‚'>.¹bâ·©¢MÃõìNßTí¾çËÚÄrBø„îj”Ñø–sbH2ùÁ´°5MynájÜ™;¬“¢P`%ˆÐJ²UVÆÓŰ þ†ª©çQ±bÚüfľi•}Ô9é6Àss„žûÕ¡›Y~}ÚãTÐÙä}Z=?×CèäÙñÂ|JëAh-[W°PÔ,r%ƒlZ”Z)ëB·ÿq…ŒFm@L‚Ð>+±žÉr{ÞsµnzrGM°Ûh&ÅUG(cA¦k½} VŽë ¡íƒ¢—±ºmlx}«SÞ“œú–Ój–?,{Ô“íUq¢‹M›‰ŠxTZVž’‰½¶?Üç‚^† ¢·£õMÙ–q7Ð55{_r9ù£R›‘ 7ÈÏz¯õ´7ÚÂ|Ñ ;‘q5̨ˆŽ¢ÔŽ2+5DWÄd]…e®víáÀ¤V=(x¾*'ÅÚùo¬‹¬7âíû—m6AèJ3¬($–ïåÆ}XüAO…&ö„æ\2züŽP:3˜6\Î>MÚ+½[/Ù„npA×ÿ„',-Ì„\ÐÁYUj º ëÝìÅ/x‡°ºx³ Bï´±;j» £l£>àDŸf93nІŸ„Š‹GÉ¢Z¥ot¡‹¸Ô„L>ú)9ʪäéa³¬ªr¯ÿ§{ÂZ‰ª _ƒxû4P 4Ö=ø¹†Õ21m±cŸ°€KžÎoty³§ šZFñzZ¾…GÕBn™Å—P© HQ>7¶ªô%¨êõ _%rÁ-—~è-¨®`UNÿ B#›½#³žuñ›4ÿOBå„ì8¢9…"-—lÐ'f$sl&®¤¤\çcA½êÕ&ðFTœv´_¾Ø’f-+j›Eò™È[U¢3 4ÒuÚÌ{¹=B'”)Ó…Œ=ÊH’NºÞ~›™‘ååèsúa|w¢²xž×–º8EYK®v¥¡*˜š¦R– Êwq>E ]{ãm÷¬òA’É•£vÔÖ–w[е;­’Ÿí¤ cŸ«úNÁÇÏú¹°¦ÞÜ|)ºå||©Ùùœ£@T3£ðÏPdaÂé<Ýf¨ F4U‰|D­ÏYiF¬è‚nuPi8HöëãÖ¦M< B/f4Oža)óº7¸IåGÛ9› ¾V’Òº¥}^Þ}' ´…1 ÏIƒðÜfüZ3EÃÏ“ƒ´BPêÊË«ó|™Ÿþ¥ü²ã&4Æ™†.hÛGú)ù'ÛTÈsH ö's¶îœ7˜í–×ä à¾ûEÐÖ³x¾ÝØË±x„¶þDzÁOS¡l7‘Ò5®—±ø¼,˜ÎÑÔ *ûœ}•}‰22o®`äääO ûéíUG+2ràHɹ˚¹ “gš™X¸Y”aÕNc>íâây!ô"Îé…v:säRú@èLãûçÅðsËy™|k”’Œ˜=ÒˆQÇš…~™§/,|h“»ÿ_Ï Ððsr¿r2a˵g“«"t‚ ºO„®DѸ óZàç`^Ù²ñ‡d.Þ¹€¥,†o¥€ UƒŸ¨ö=™-8ò ÏŽåu=Å#úúïóU}òøÆš¥¥à›ˆÆ}ɨ«K$v9îB¿PðEÌ¡×ÿj3LŽÐÖËá[{蜚ÐU‡`ÙÌNU¤À‡&_MÚ“‚d„öYÂJ ý‚QжUh‡Ò•Ôá]Œ#„žÖ'Ѓ ZoÊ‚4(Ç„§¹ ­+®“û.ÿéá¦f¢Qùâ/ L7*C€ç²¸’ ͆HÂÈ…Ûv“Ô™üÀµ9¬?jÂ7šdÞ\B†0×È;7k¼„¢Aè²6-yhèÁ@tš…6Þ-#ô)ZYx«÷ot'ä²Ó$èHƒgß:ĵUhÀÀ\À ¿¥•ø –¶ÍÈu·ÊIó4Ãbþó;áÔôü\¤ªËð’E… tû1BˆòšÜ,ç÷ù 0G=ºê¡5yæk[cýÏ´¤ƒ -§UõÒLN•j c=Ó´¼ËX¶TŸQ#t‘YŒ<ýl©ü@3svf"“GMˆÐP4:äg›W FÏl±wŠìˆòI®^°BÇTk ŒÐ~NÞ¸ÀI´FÙÑ`r«[ë¼\Sx¨àêE¡*‡€µrâÊ´)›ðØHðÛlÊ¢§Ý 4œwz'YÚJ͈5|›ŒÐ¶3G´ÔgCåSÛ<§V– ˜»ƒÎ©Ø„íò>Š}+{g­¡7Šâœ:ÎÜéeëhËþs¡}a*™¶4Ö-WBoÉŠP4ºrA5ç„ÈÁ´½S9ðåª^Íx#¡—e*0s0a»f‚#?50‹p—mßêÍOWËÏB7+µ¶n#vøIZSy<ö ĺ 7bÎê–÷Hç·@›ü$ 4üÜ› ºT÷VÒ²LàÊúà=#ô\~²Àó&T)ØWH%YcÏö†pŽ:Ýiµ“Ø’ÊùJÈJZ5#¸–°¸^ÃÏÅè¤D(„^9B/•Ÿ­§°²r#ò(à‹Ž›ü¦ëŸ–ºÀMΑ•‰ÐQ·ðÚB‚“ÜÎÉ|¾Cã¯ÜgóÖÖÉ÷K儾¤î{ô•P: ¡}]׉÷=¸ ×CÑ 4nÛ™"´>Ž4´–À¢¾‡ì“ßwÂJó>§l‹‰ß™Ù„ø¹ÞÁ,¡;ïí˸ÂBä†fE^‚1 vàRÕ4„ gÇ8ö8?'‰\âVXÌRd½ÃJœ´zéAè5 :ã~2÷yåØŽE­çÒØpçî:¹ï„*xÓúÓ䇒‹Ah37›,ŸS/ð0òµçbGkf‰[ T®Áòj\_iáF3¡n)ó³õ¯/’‹c=UHÖ숡ی­¶ctlŒ„Ïà´É>›ôãc9ì¤á&´@f÷oí ¾nýuEb6ôWØ·÷%¡&)2Z^á½âƒQ2¢…ÛG3F¤ÙÉ`1åm¥¿×ŒX<×ç /¸¬²+L홢AhL†ßaoI«îí´ÿJóhĬ¤3EhÛ‡û·Áº˜®új!'c¶ü”ay Aè––D“tÂT èØ*‡J¤Ï˜'8"”–Mã‚v¦xòXšÎøÙÎB¯žƒùµºê'iU®Æ_f1’“iÖ+ÝÇÚ#´s ›„=–Z×Û7&Ös8Çnyy´©œç¢âŽ—½î-,'t³>µfZÕ/F§O”\QEéŸ÷mYŒŒX¥±‡Â‚˦hzÍfÐÒй ZcEeëm빂pbÕ%Â{pDËyH&ÌØ0U1—–°¡ìK¥ | Ñ¡šR†3Åf¡úÖ¾™öecÞl€ÐÖŸ¹4¸àWàRç¢9¿½#íCt¹0¢rìm­„¢Aè•ØÀM(eÿ­@•± bB·¿ªÁ${Á…3ml×ÂÖ¸iJ¥ѵì‘9îjº¡ÇfÙ‡&1ÂÊ E9¢ƒq}Ö³:ÛŠÑËÂå’—j‚µ29VŽÐv¹¥d@è–6Ðç¢ìùàÂc(&舞/B!m¨iIäcÄç# lý¡•J2‰:Âɶ±ÓÞÅ d‹AäG~òEÑEê³(ÚÄ ´0˜˜’…ƒ`¹çç¬nó´q©=GãBWÑÎÙ sóØ'Œ>Óê ÖD™úPyrŠöe± 2^U¸uÌ’Zø|‰4—½l}vÓÿ9èÏŒ-9ЦšõhÖ…×:hÿóoLeÂBëùYx´§M žKÚí–EèÅó³<ªÊ ìÑ`°Ò ×-ÿ3ˆ(YWŽS–R³lßdvr5±paðfzr, ”_6¨½g.v»Û™ݹ ì¿–J~ ‡lð}‰é”öS¹¬©%ÛȘ\?^ þ—ÍϱCjð±Õ=I1¡$c3Bèå9Ö<ÊëPñ¸l‘yi­€ÐÖï”vgð¯Æe!ŒM>ËS$ãß:):ah¡1q³@he¨F¬ÿY~\NèK'ç lÆ6Q…4™È®¿€Ð>NHŸQδ4•ðóï MçýV"%Môø8å4wV]q>"Œ!4¡²§“' ˜ B'{á@èuÂsÿ¹ c/žåÔwôÞ 9‹QK¶ÑÄÖæxsª€-ˆ’ü )ƒtrIú™º}€çE"t0–É–.?í\H˜PBÔ9d8M\l'.…p:Ò"5_'æq¦€B£à„«ÛþPÄ+$Ž–¡¼®Ä—¥B„Öx/eþ/²f-jþ2÷9©|éŸÛÊî)ÍÅŸQ‘ØJ£hv·ƒõ?›ó¡K´T‚yá;Ý)ã!ÃæUŒ ¦Š²b>Re²¾üß4' B/Ø'Ð'/˜×(è¶þˆh;xaÍ.hÀЏ,’/5„#Íu/WøÕüŽòãÝùNXÞ˜öš$d)÷Å(ùYΘW ¡•%k…à+aÙ‹r»å2XiTƒÐ›Œç†ÎÕ—‹Ah›{„¡íLòÏäØ#ä/rþI6È>önðdM‰ÐÂRš¿Ž™OOK>ë„©‡/_–¯k8Üf,èsn‚lóõȱ1£.fI›ù3‚=£…Ð6v ‚³#FPk(:'׫ü›æÐø"ï,zå½<ªØÃÉÏ‚ ÚŠQÝšî࢒6üœ Ò¸ 5“š¨t.ÊKÝPGuˆækº›í+Š 4)rLo=„–cE”¡&ræœñ×£øSÈû¤ “£S4?„f°Hж S¡ÛL¸6`d-j¡5#Ú$£É¤W;0;gMÍ‚ù9j% 2K‚s¯[?ç0j½}mâ×±ê+V7pAË5µƒË …°7ᡞqcÚ*ÂÀ4T¯¿+M(>$¡—wƒƒÐ€ôº´œ®SàgçlBHÓgž`ô9ükXÎBÅÙMÓ2ý²#.Ø—4±:}"ô"ûÆâZã´LjjÆÏB—`î‹ÍÙ`g‰ð'~o£ ä°¡´«ÊYy>¯ äX;„^¡AžugŽòeÅ’ B;s„úØÕd[žרmRÛšÍ%ÇZÎu.’ý/èÄKËëhæÃÏPtWF[€F3}Wz**O äõ/Ag¬QdfŽZN¨Y«˜– 4a`‘å„‹Ÿ2ƒÐ84æÛŸÓrV·œDv¶ŸtGÅ<›¶ñb,gŸò`Èý†¹DÑ€Ðù¾‚ªK’*gÑi{l67bP‡ó|…¯cƒy)5uo‹¬ΜÚ$/iYüýÞù¹€Ð+¼”YpƒK'dðö¹ }¡ãAwÁ´Q=LüÍr]ÐeË kJ§ù*©i@ºÍ¤‰¾ÑØ6ÈË¡\žVpGm&‚ÿdbf! “Þ™ã{r*$‰Ê¿ƒJ-·ñ ˆ@hz©=Ç„3ÊgÜúçkrVŸ÷ÏGÑ“X Á>U~àEFÝÛø D§?G^,£&p{ÁåEôyAõ½.-³iÂÛ‚šlrú&¾ZKÎñ(ÿGÉ¿Èi¾èÅO™{>#zµƒWfâ £HøéC#M¶%!E^ÝÃomæH¾dVÊq?ê‘«¯ÇF¥ sú«û¿€ç¯¡’ÖÊfÂlí&ìF̳·wŦ.±ê„¨>Ã^dˆ™„¢?e¡1¼ó³f¦I&/úp+ÁúŒÛ„Yy;¬ø,º7ßÉfTš©Øˆý]0/tÀ œXŒÑ.Ž%‚… ZÑ|«”H9dOž ßL}*?ÍúDÁf*)ºeMÌ’R ¾=Ah4/„nL*{* ´L>‚#ÚúSOOÎÏíÙi RÏa%§Ã*ò+˜P5åœq£µÑLgsÅ'ÈrþdÙŠæðmXhM¹¢¨•zš|wšAðÉ©õgdÝûLr¢Œ‚ŽhK-¤Q§¡QÏ “`BƒeOÎÒ ×ÚŠŽhÛöédÿ=9ÂÅVz™ÊÎ3﹇ÃÏ ³„Åï%¥:³­¶œ0*äØÇÕšOŸŲ½Ó¤ë¿¶¡hùð˜ävuA@hºeB•%ÙycÁŠŸ²Mr\|R¡{€ù„P¥ŽÙÔáç E¯¡LäªlàFá(•¹W³º$¿ÖF%„†uè…ì]4ŠŠá±Óy¥#ºÈOE÷àî¡Q?ÎCëª{¢É¯+¸)æˆÐɹC‹’QÌ_jt˜„qMió‹4ð]~Z4#‚ìˆÎ¶®\¸Zä.6ž‰Úí;…`¶J™ì+2Bû†¶‚™âƒüÜEƒÐ(Á2§å²›wë/JØ EGº©rqf?GõðœÿÈ;¸œ0jp45£UÈÖà× –ͤheèš/[~TtS°¶H¥;Eã –ëÒ&¬GˆºV‘|¾„Ž„¡ÑL{² UNÑäâðyôŽè––D³”rª(«XNX|Ü4ºGÞ c}Ôêe $cµƒò&ä¼5ÙóS!ÎÁ7M‹í–m:˜]D™IcìH‰Í¤ª¹äÆGÑeÉùß…¢ ä@³è´NÊ•áY7¡Çöv’¢* ´2– TŽÙ.p´xÕ`À|ÕžÖƒÐʧç9öÇøó×ÿ1Ä&œÑ¬ï+{§ lb(:'˜Jésš‘J©¡èE:7@h¤ï®ÁÌ5ÚzB““å1Ó“ º óµÆÚ·äGá .ªä× ®kË¿ 5ÏœJR-Úú× ÐÖ¿ÈQy²i3=E÷Ïd¦U¢{vn€Ð(ŠM ?[ t2Bû 47ãçÉ'Å9+ïŠS´sFSéHª>›F8 ‚½Ëq»„VYGÏø‹_'ðs•¾R)&í¼tr:èLŽÒ¤N­¨PôRB#•Òôþy½Œ`$ƒé§*ùX:œçÄ3äk.'¬„Ðr^F”Ù¥•PjýÁÆÉóPáiŽ>ÞÃúYTBèàRˆ H[]àw© HÁ¥:„½C„†¢Ah4;„z´ŸŸ¿ØBOõe^¾/:­¾vòuü',º–†Ê4« £Ñ(ÓèEù!Ù×K mtEµôáÐ{Ǽ)‘~–+ªË?Jqï¦A!;-zYmBƒÐx<ŒÐÖŸy „ž¤Å&—N.y wlpÙ+Z§Y6m!3ayõ<ôq–V” ^ ‡ÏÈǨS‰²gáK©7žt×xpœ°e½#³B¯ ¡ç2šËÏ ƒ3z««öŒî['?Û©Ÿ-Ê)[õÉ—‚!ñmºqKÃÛ‹i™W“«Ö M(Em„6b‡ 9œƒ‡W<‡æ¦ÜþU-yf9*–‚Ð+¤hŸµé¬ úmbK>)—®¡‹Foæ‚„d°4ÃÓš¹:§¢t½n£¹ƒLý)ªñ¯U‘ó] ÒÍüÖS ¡PT3OHŸu @hº¥M‡ÏåL09F„ZºÞ³Åd³Ì©å„™¤à£¯RI±ÕÉÉ3+90õ¹8j{Sƒü,¤] –èj0ã–W€VºåsÎûBcœ5«{æg-dôU"´º°iÿ¡'©Æ(<8ŽÊ­!<ž¶rºï` è•˜e Æz Ë&tò^ðNÑDYËlhý  =÷IKUÊ5á‹ÙnàˆÎ_Tˆ@èuÚíY ÐQ €Ðs™Å4Þ‹ÓöÔ@³HjB  _c8[ <ï=»O®‚ê¬Ü‘v<?m:W&MnÙõ’r,tÐmýõ»+ÞêE<#ÌdÏ^o÷H>BˬebÒz40#³˜ÅLµ/gRîX~nYË ìØZu>šÐ›P¾ˆülýKfÀX¿À¤ìA 1$AGzí\ñ²{§ñXœ¶} ¢|}›‰wAËN†X„^UQ•ö! QC@B·_7Tö%:zÁü,üרë &ß³šE»zòÔ§9*rÎŒpÖ•)ZX4UòöyM±9 4Ò8åL^¸Xø¯Ð mu6Œîу~îÓ-jB;Ð’Z³äŒ²(ŽÐòôݤe{¬~e±¯ÌŠ81 ÇŽkÖôLÑÅÞÚ}ÞªÊäÀòCºX„®J/ð³w„Nàg;‡ r ôª(ÚWʳ‘_$(#¡Ï©^ ¡­ze±\ˆ\Yµ°™¡ËOÀEƒÐ 4 |“C—óºÀ€ÐʽG!tTîÿ)*ü¼0ÓºKi;;§¹‘Ü+‚5@•-$–) íL¡,¬y Ö(4£Ì'¦Õý•™€„¡Ah@:ÿú"´ó¿ tãþfE—²óÂh¾€Aå„K5­V§±÷¦›“]Ðò­çãaBW*Tmüðì‹â}ÎãŠf÷WN(ЀtK~–ÒÐ '£=%³Ôúxaüìì´hUV×x”ÓŸƒë÷×PN¾…ËÖøÞ( lÉK}Ñ2-Ÿò4Î BƒÐhñ ›¦²Ha;Áë" ðsíaEˆÖ|qš¬wŒhŽV7!¹q°ÿ]ò ß­§)ð]ð^sú…Ÿrî©q°w˘d!Kÿ’»„F]tT¥$ ÍF-¾Vª#G{·ŒUD8'Ä…2  Ù[øé'Œ>&w:–å °Â:¾ØÒW™=öu ùL‚y¡MÛB í÷BƒÐ(ùVí¤cýÏš'nÂSmrTü³õgG.è+h‚7lc„Lf’Ò'BWr4¯ BƒÐØmJIš©f7]¬³½jœXcƒ6G~–Z¿ïHYh~Fs±Ãúά¯ë]6¯C„ÖŸ•')=›MŠÂYЋ7ÝF‘ê3Í5Œoj=BǺ¬û÷3Ì ¡e`Æ< õÙág4_„ö%¬Óܳµ‹ÆšPâ»É:mYeç½¥Ããd9!½r.2‘ŒrG׆UÊnä4¿“¤àèvþÞÌ/dv Ž€†ø ´,Š6þ4VWªÞˆ53GнYÿ*lüªRtΟþëJS¤²‡‡@èÕòs0àAc=B·L©'§Þèó5£GZ.‚3Nß-3VÍÂ;Ù/ö®¬qYkà¼õ‚±%5ª«È×0aEÌ,†lÀÐmyua¥}¼-¿3ùy*WpÏÝx!¡fî¦)(\ÕÓ…Uéu•¨(~ο|7réb„vúL/Î"G¡'¿媦 ùü­ÿ¹¡ñ'êsBÑ=öàèèäúËÀÜ`ÕÐD4 J69¥6}ülÅQ]ÝxãhLÙø¨jߞɥxû¿såYÜM 4ÝÛ„¼a±s¨e?vϦi©ôÞÛÁh²vû2Ín þpÖ¤£RÞŒX·í8Úz*kçtu#¦ QæÄhcö“ïÇY ´%ï=¡ûCh« 3pÐwaŨ¹•ßõý8ç;ç@ º±ƒ+j)BQ¨Ø§Éͬ„¥OŒ£ÿkËU0i{YEc|@hz*XÒä¨×ËvÂO¥2â3ý!¬ë!lW«ÞøÙ†\жZ¤¥üø„F•æeA¯£ÏfRä<9QGòʾR ijz;<¥‰¤AhºöÍ«§yÈîdæ`ü팟$¤d.-,G­½XIx|?£RÖXs3:Wj;g— &EƒÐÊå&&Ç{‡³õÌœéŠ×[9Òw€Ð tËYp‚‰’UF¥ÅƒŸ{£èn“Tû®Rƒp£Žöļ dk¬)'4¾œ±ÐÉöÄÄÄ–œÆ&5Eó’:˜s/ù 5mZÅÏ E¥Ð2½'¤•^-B[—åke~Vö·âWR¾D&r¾‰P‚öñ³õÄo$#´œIRˆâ $õÿ¼¦ÍÔ;sû¸Çd 4ÝGáYæÚº·±hÈ$Þ°nZY”°ÒŒ ð?£é š—ªþ)ÿ[cPRâ,Ü¡¥)X¹¬¥#šÅ 4=9GùrÓíoÑÜj)ZãŸ0œ£ÛA-ªRp=Ç‹&Gn002(ÊËõJ|ë Óz£(òŒ…Þø ¿vnð‹T¢QV.Ûä-*TÎßAh„ž›e¢VZeùïU]j«HN2 E÷ï‚Öx`ªŽB4£ÓÉ–Së!+Æùû|Îi­¼q”éL ogwµ¾®©\–ïŠOvDcv@hTž}ëD”ö3“Ÿ×sSë¯CƒJ^ó³M­?X¡•«½¢G×òùÙøK¶Gè±ÁO'gíMÒvMå²"v)ÊÁ¡AèzÃWfE Ïš´¥Å“ÿÏz@øyBŠî¡õcqÁqJ™s, ­q ¡4–Ó8œsf)9‚öÍy wõ(ÔôYoeå²| ›ƒx¡AèÚüœðä. ­¿Ö:ùÙù_aHZB;=iÊRà™Êäâݱe ƒá‘ mH¹HV˜\—BhÍrBå=;/„Óä¾ÖÈ·Ž²x%¦f…Y‚FùÀAãd’Œ@ëAh™MÈùßÀ<ÎÅ­O´hãk÷Ä.’‹ù&˜õ—¡p…ð ’—ÁXvü¦%µ ’¼¡gH q ÇR´Ïž 0¡Ahºn"×MkøÙê<®+‰å¯‰pÚ„st‹Ðšô¶J×t‚JÀ]M^ßH'd* dqÍ~ _(]0¾Ëy›$$–¿¨ŸÃjÊÏ¡õsåh E#z>!—~®Œ]«Eh!Üù¢1E÷œZ˜ÓEhÉc¨ìXö ‘ÁÏÔ[g„æËÏÎÕ¦QÞæäÅ>+-O}Õ[ì|.cýËv2Ÿp¹ú¥ý„¡[Úðä%Õz`^Bû¬±¡kStÏ.h$—ôJ¸”ùj”O½…Ä_ÄHc~÷zBÐmË÷4Ü9õždgO®ýÛÌ›düíË ïsS¯CÁñ„¡Aènz×Ë.èu"tЭGèJתC´¯#%Ÿ~‚#ÚWÀÂf$Kzç@è•[`ù™`•ÚÙ±õžd¡' Ëoû7×>~¶žX,u×®ÏEƒÐ to6<Íuà³ABLQqŠ–ƒ™c]Ðò;QîG´lókB9„…œÜK£Ú7WMFèÍLêzËVwlºåœò'‹Ï&’e!Õæ–X„Ö¸2„^ê]ïs¨ >yŸ1¯Z±ºÛÙ\Á#Ô/ª’S j\ÐJ¢®Q¶ ÍÚP˜Ð# aÍ ¯*† {9‚Ëoûü |6Ùz ›˜åÉÅáŸ{ „¡§‚½fÓÔbLÓ"ïz9 Nб©!j€e{~®Q865ïÖY9¢%dÂA+±ÃB|ÕB[E;¡Ÿg.'œÝ“¹b¬óRh’XN…ÐP4 B÷`Rô¥šœîy•ÊÚi¢… ¢É Uð iÏ.èm#—Äj:™ŸçâCýÜ Q&4˜füßࣖ`R»9>I Æ×  })¥ªYw h„îÖ¶Äò†Ï€¯ ¡ƒ.h=BÛ˜2yóEhá4+Ík”s«öõYE*]Î(í^R$Å"t°„“`¨ggUôü¬¥åÖpæ'©·¤Å÷&v„¡{¶?A<V©8IryS`Ôœ¡óãÕûwS$§R,{Öz„–¡%È<éï!ER0>_ÔÌmÕ‘Õ³Fhë_ºåÖb<Ø4–W€Ð ô\ìà¯P"ô’¸BX.'¤æ#t·Uää$5†›`18aj#à´P…Ó¢ÐΈ«!¬"ŒžŸ­?·›¡g”u=[ôå¬kŸÇ¯å"tB£~¡H–àˆ[B+ùù& ú(Y“í‚^'B/²¼\K3ÇQ®Í©ŒÖf]••w|Oñôd¡ÛG•Õ›BÃ6‚ÙG­'`opZ„Ž@hÔ?;½" ´†¦„E—AîÊyN×ç07 BËÑ×Êõžò­¡OkÃWdÕiÃåÜÑÊûÝg„²Eš‹%—iYXT´ÉSÝÅJ× ¡Q·F>X9+ì±0~öÍ5|ëëcýf ­¿~e³9 eª,ý&ÃyÔ=Åx‡uê•È&¡åÈʇ)3Bè`ÅXÁmÕj4ÁêU{BƒÐƒ¢¦0ĪÚçÃTVzÕ/H)Žú½]½ÎZÎëŒÂk„‚ü㌯Ð? ¤<÷_ Bû|Ë„Ö«ÈÆ¿EóT „¡»µ?{F^SKKJ:ëÛ\.lgî£6 R:âh6¥(Z“Ž.Ahä뜾ޥDh}‡³Û/,CÊù=%k3íTpB£äInÐY±„öevz9‚ Wë‚nà¨ñ¹ÚœJ”üœIÓ.DšË$kµ ­qblÄ@£`ì®Ãú<“³Fèà_ƒK ƒóâ6†·3 BÏ¡}®<z/rY„NJ‚v_ØBÃB½16£pÿó*­Y]hu1Á‚Y‚Åë¡M(9¿U$îÐN2ŠéO®ÂíBƒÐ=aì‚n§É²¡²ò¾zž\£8‚eeš!tçQ½!´rùgðì4«;‰…fž ?9y£®®Dhy²?„Ö» åwãûTXþÓ~ŽÌB„îi4î2Ù¢ÊÅaƒÐÂh¶„ ê• ´/—]³@0‚úª7°ï_…ŒÐšÚšA’TúL:äçà¹Ëšë³*MxqÛ‚Ð tov[黉¦hÅ|Z€Ð•.BçQe:vÓ¬'RÖG0ž U¡» ¢`ž Eë9”ÆVX17w„–²aÿÿíÝAz¤º’@a–ÓûßH¯@³Þ‡û ëÙ(üçÓà^—ËåÌé(E4Ñù‡M…þÎŒ]›Š3qŒ¦3H¡ƒ˜|ólàîf6³#.•W,(ô×"»ñç¸:î®Æ%LãÈÉS‚BsúŒé÷ =÷Hžà ÊA—z«—fäŒTv}eR´%þÑþœ2ØTèf‘Å:Ÿ®ÜTè­òße¯ØTr­(ô×D:?iSk\ùíq wÅ=’ÈqÞô»xÇ] ÷ášëfÎÌî®à]oüé ;Nêø{…פºˆn*t­4ÜšaŸZFtæl`&àL¡A¡‘™·K«ol Ó3‚¦±+O8ñ OfŒ_¬ÐÊ⸠‘£¦¯ÍPÓŸwUyࣼ,—ÒÊþ‚Ù8“/ÌHµ{0(›¼¦B'U¶y0sw7#KüÍm~ÞŸ?¢Ðµ˜Oæh`}_PèËŽÖ6>.áÀ®:½]ïÆî…Ý[,1Ói%Vè8ýã…Ϋl¼±ÝÝÔïúsÜ·ÔqBPhS÷@ºK¡—]ß›!èÚRÒ¥Ðs§ßõËAŸ§Ð]kzF¡“‰ëgEZÖ_Ö6q»GSƒªúú««©²ÁAÝø= ±šò ˜^R‰“VyÕ…ÞçäáìîSNÕþEÞÕ³zx-Îtñnž™åϸþ¢­]œ?‰dSèæå"“ÛŠ Ó®€3(4ŽÏÕG:h°à–¡Y?*Sõ¨©ÐÓ}é)Yw)tóRŒÆY"K­°VùïD6‚<„fáè¤B'›†_ÿ&4Å;ådFÇA€B¿ÞŸkGW2:ýWœ’׉lü} »/9®nŸ½?—0‹ã²ß9®’Q+MP[©3ûþŒ³÷¤Í;_z@¡o/j—,Í׋.õ öî_ˆ…ưBo­Â¤AºB¾\Þj¯7ˆ07[\ÅOÿ_¯ÐñNäßÛê:bnV?HÖ‚¾^¶-îfìÚa–f:ǃ:8ÜWKÛVhõ7@¡16'Ç{ðƒ }ûŠßUla@¡ãY÷k‰ÐÉkfJ„ªvhhk•nØîõvW9o ie7co‰Jõ] ]š×O)]%2jûßÝ—¶åz¯°hPht­òAE‚ŒB—ÎÖá·oJº;Øv ÖÙGjÙ]£ÐqÔ¸¥àVßøäÖŒ:“öß1ýÊ/‰ÒIµoÛÂ*påÖºÐÉœ8¤SSèØ™)4(4z(˜²2 g»âØ‹,@…ÞÂê :Ù•²«IæC ²·D èäヮ7ü‚òwt3vÜ€;ˆÇ>B¡ãF3™øLW€½)ê.9PhôÎ]ñd’,j·Z]» ¨Ò‰[zeRj¿£Ðq4l`Sr SJ«—q\ºY鮫‹ÊyÝMS(‰&ƒ¯QèLŠEæTKàÛÉÀ@¡Ñµúwõs€×©V[ej½c¹jÎÛSb—Å1¦Ð™SB™c°™DèÚ»^o×k¹ÒŸ­þ/›–ƒœ„à"©•ãèRèrww•æ3£àTK¦oœdPhtÍÕñ®ÿ¡ ÝL)É4O‰_ày ±OÌâèRè|ävËùs©´9TðâㄽÄUåz네ë×fàŒB-ÂoQè­§Ü\|@¸y^Ø- é3X×ÁÀLIä»Nv'ׂøœZRlºr¤gÉÿGzkÇÏ(tp1¾˜“.}Òr<œFž>gêQÓQò8amž¼qóÔuïšrGþ6|(4¦‡ž¢Ð§3‰:øÄ›«ù°ûÅ=PòiÏ»þXôÀÈ{S8N=Ɉ{ýùç@d£K¡k5ñÖ\€â™jKnPh\cJqï㥺+½m¬)L3weÊ´ü¸,Ža…îjm7l6(,õ’¹Í«½ùûO\Ž{S ùÀ+:H±‹x4ºäNLß¾ƒ^æ¯×Û¬ºC¡A¡±HL „!»[ҡǺfœ¡ÐÇŸé?1‹cL¡kÖÚ•âXt©dA×£ym_`°c-ÉÀû,:ˆ¯f²‰šu’ãù®ÒÐ?¹Læ_·j­á`ЇÅ- [b[n~[A¡BÏ8—Åm’D­ŸÅ1E¡»>Í ÙqœÝ±kÎÍÓ²Éé»ü9yKâq‹æ„¶ë„Ûg{BÇe‚³ÆÁßrË€Bã– ­«·õ]½µŠ<¡›ƒ }ü…”‡”ƒ>I¡KOŠcF¡Kýœi³ÜAóàá¬åø` ;&ð‘é7Hãt:9‡¥däs óæðÞÆ|W*ôßÔÁÌtšï¨˜Ÿœúóš ýëíJÖךõiƉ%QŽ£Ô‹d:¼Äª¼]¶îsÞZ½ùš²,ž³ÔqÂæ+:¢Ð…ÆÅsx²Ù]+~&$—‰îòœé¯nå,ަjN_¶¶V‘ØZ»Þ@tæÁÊÖ™6?ÝŸÉóצßd‰¡LÏ^…¾q Ú*Y[ÉsÇ·¨…Æysxo!²[òÍz Ó (ô©Õ€×™ðw ¶öÑŸ´ríþCµ‚ñòˆþI’ý9¡©Y¾µ鳓ps#ÿ&….¹ž¹Á¢Ã¢A¡±æÞUˆlÁSÏÍN+y—;¯ð"½Ñ·ôˆó:Ù^-(þ\[aãgIK9ûü yFrûøu9=B¡ãÉg÷E DƒBãA^=Pâ~q…NÊÌI¯n5…Π')tPÕ6¯ÐA‘ØàÁJÓ¢·y tÈ3Ž+ôîI *8£·È,´å6ïÒ¡A¡ñ8n&x,¨Ðc!èæÑ¶¹ 5ôçÌãÔ鑟ø$T-«9Hr®¥•æ{¢Å­..¸ÁŸ“3ss~^_¡ƒÝks¦r[BcÙ™<X*‘£iÈñ7ìF)¿‚®µK›¨Ðqïždaç¤B—\‚h© ý9ÇŸ·ÑŸÆ (tIW"Ý}„´{G¬´Év毷ËUYé8arþL–ïΑM|u«­\A™¬Ì§ükéê/Hu©'rüúÚ»|þ{ð£Ÿ"ã_˜oóGŒ·ÖL•™ÄžÒ5èE õzw¢Ûˆ?'v)ôÜW÷ˆÈÏy iß“éã„cÝë6M!Ÿ~mãòÜ»?ÚêÏŒvOÂfÐ|-!Ïz4³y¦¿š?×27b…~«E¿l çŠô£ƒ9]qžó^ïškVìÏ¥u/ÿrº9b‘î=N”϶èföHïË8øÏŸ)ôß¿•QèŸJvÇOå¦xeÌÇ PhàÈü¹ÂÇýy«´hOvÍž¢ÐÃÇ k&ßì¨Ø<Ú|E%\2{´f}˜äµ§OYÛ¨?ÿ´òœ3ùÒoRèÝv«×$(4‹â:“ç] ]3Õæ)ÂÝÿVè¤Éæ\SèÖ|ÞFaw•ØÚõŸfxyʵ'jón$»z÷F.=…î_|]íîÜJ ÐÀ°@ÞèÏ·(t¦ÞuF¡3¯nÊæ"> dw$E7è'¿o™Ÿ,Ø…x WG¸£ãÇ:¿Júÿ D¿/ ¼Áݧ Ð@¯@Þ¨Ð÷ús&…²™=W¡»BбBïÊIF¡›]83ý7ï&ŸfRn2ÿ'h¶°_³¤ÿoxíaÓ²Ï(A¡)4÷ç»,zô€Bg–˜±Õ츟%,­ŠÐñª)É< ÓÃÒüemN& (ôîLî—m,{ªB—ô醻›ƒBShPèÕºŒ&rt)ôØëÊw|ˆ:NìŒE=_1³ì7—ÇÊJÖ%o]?¤VÀ|â\lßW,1~pÖu¢k¿ Ph|Á¢ïª†q—?—Ñã„g+tWLJ@¡3óìãמ¡^¶^ß(cÍOKüirZ8þ)7÷¤_Pèö»*Ý5“d Ká5þ\n-µ{š©öÁÏVèxß‘Tè`éÜ=gÔÌÖÈ/Ü¥¿>Év_¯ l½3› ®ûeÖŠ­Uóù݉»MK›3U¾‘öF Ðø²Hß¹]¡k>Y« ]:+ÄT·ÎtI'r$º$ G÷¾ŸÃôn!nKö þÜUB¹· üp.tþj?¾i¶[[~–EShPhà^_}Š?éa…δVI*t,ÀÍs[µ¯iÆ=w»$ðµ¬BOÙ§gJ®´‹/aó‘(ôÀ›`? Üå«‹(tm• z©$Ñ-!v¥^…þåÒ%ñ·75ü)´h ½ŽE7/­®ì¹;¸ÞñÅYÜá4ùY$#îPhà; ¤CÇ ?RwD3±Ü ·à°B—y­aæ~â_·ß,Íœ‡±btµ=àÙwýëgÚ^…. É3(4ÀŸK+]*™Æ')tÒB“ ]Z9#Aêi™—Îaí¾÷®™µ(Vìú9U¡3{jw(4ðq…®ùsí{W.Áp"GFnÿ]ÈNRèaÙˆºÌˆE[¾o¿w¦$Õħ\ÏPèï<ň³ Ç,ú• A¡ }ð7 ²ÏS踗ß,….‰f¥Uìë âNO·ÆÓú`â»´ÿqþ\F+äÔ6Ý’©@¡þ\óçZ!ÙLï¿Þטéwp±B”ŒB³è—Yôôôô‹„BLÂ'GzA¡Ï*t-ºÔSÿ–¹ˆK.ÉZsº$z|+4‹~ßí|ä~2­èÔ@ô‹/¿Y ]‡SøŽBï[þÛ½:îo’,m7å€U&©8>x˜, û÷?Ž$rä…Ùúû‘>r…Ç—ýt…þHoF¡,ºë<5@¡éþ|—8õ&iÞåÏ¥~D.8zG¡›'k–§­Õ¯0Pîøç§ü’¿À….ÑæÖ×O*jW޵Ý|îdÛ•–œ¦\Ï ÐÀÅëæ5sïß3€¥4Þ-ÓÑTèLdf Aa*/õœäÏIz½E¡Yôý¹´*ŸSè±÷9.Ô3 Ðš‚BïVèLrEPºì…šWPè¸bsŒqD¡Ô+‹ÿ.‹æÏW*t­Ž%….ýu9\Ï ÐÀõ«çÓoæcÐ௙˜ê©‰™¦'A/òDŽí&…fÑ_ög }½B»ã@¡õWÏ BЙc/»užÿJòn6róÈÞ€BgŽ&›žÄY+AX>sðp¢BçÍJàë¡7þðfjºBÇÅÒ¿¯ Ð Ð…>®Ðµõ´ùâ$Š]Ù~Bºuºqð†Ç¯7øïUè"ýòÉòœÿÔ(ô Í¢A¡§Lé—YtsÞÂ8sR¡›Þ;w'R*©Ú¥¿!øyŸx2ä£Äš·|þSËwúž;Qèó6Ñ…¦‹ßyós-cëAǰµè•œÏPèLûÂ]…>õ³˜¢ÐJѾÀŸ›Ÿ…¾f¾m'ô¸øšBÇuêšëé–+¼œùçVPèd^Ç©keoEß &F¡)ôÁO<îØòM….­²<î2Ph`©)ý¤iyø©ñn<¶Ù¶ûWQ»u:ßÓðìµr–B[ÙßaÑGü™BÏšoc»¶W…ž9i±îZ²kY±þ:9X«5··Z`™2µï9i­xíqr¦çË»ñ›ŸZðiNœ72MßtQQhPh€BŸ¡Ðùô…žæ $$Y,ú¡ ÝÔ-,.Ò‚M¡Ï˜o›…zø3(4ðÎLþå–Dê`l'rÌ œnaƒÅL/²|"ÇËLGn؉SG²VÞ×:(ïq(4ð5…޹ÁqºW¡K¢šÇ”×Uó-ѯð‚µr8ܪýAn–m§Ðc[× È|œñå6…¾£ÐµÉ¿©”™Óë±BïŠ÷¬L‰ø÷¯•§þÛa°¶¹8ïtçð‡nù¦Ð³¦Ž|¡7)tfö <ÈŸ¯_§’’9°¼^£Ðq{—æŸ6%|Í­“¥üƒ™+Æî O)tíØß¯PhPh`åHÈíjT[)ºº~(tm;c Ðôdvô: Í¢¿3EäN¼Š^©Ð£ÍMaæÏ ÐÀSVÆ[fé®ðK\<ö¯$—½„êÚÁœ‰‰[.¢N¡ñĽvÉUŠ»Šz»]?qÊM*´“ƒ ÐÀjóy³.ñRë˯tÁÝŽK¡K%‰zX¡k™ÌÉ÷-熎'²ZÓ?>¼$ºBоä2iÉSÆ…™ÌNoÔ4WœZ0yX¡Ë¤'ŵóŒI…¾¾z……¾qÊMž)(4@¡{u4Ÿ‰«áýûÍ¥ybïÕðâ ç•SÀ¦‘ƒ ÝÕ™ô• ]Â:B…ÖŸÒ<­ó+¼,@qFJ—BO\¼¶3 },¥ÐýoÊs¦Z…¾l; PhàÆEp5.•º]mþ’ =½Máqû}„B{ôl>v5ÛÄ¿O¡Ý) ÐÀËDº¬EÜíÄÝ A7º„Õ<&šêI§§XSZlíËþ<|9‚~Bÿšr ¼Ã¢—Šìf•4OÛe9JåDáñÞmRÓà Óûø‡u¼¨Öz@¡ó!è—)4@¡·.ˆË*ô®7ÆgØoWèY{“௬eÝ%6ÍI#y5Rh€BoZ WP 8œ¤aÔ¾9£Ðçm%fö›?gʵ>¨ÐE"ÇWç#›IÓ™]f…(tÍ{[ g:8Q¸øaŸ|pïH=Ç 1|Mæ7S ÐÀû,úúµ)î™/¬y…N64_V{Ý8óýÍ„<›F’›ñ4 Ph`Y7»1Џ¥;¼ kðýÉòÑ‹¯ÎcU{Ÿ§3ܮнŸPhàv‘^gåmæll‰"µªq7™7)tííb&¸f/<0½¸P `X¡3>¼µš*Ž)ô‚ ô¬rÐÉÔ`øê>cH¡ àˆEo-…Î÷%Käx±Bÿ«:ɸ4pp›Ö{Ô‚B@~Íýןk>“3 DÃÏå8©ƒä6ÚšØ'-šBÀ€ÎåCÐ] ÿ+‹¯Ñ¿öç™y°yq‰b…fÑ…е\'rüý9z÷„f³©:0lÑþL¡ `ÌŸK¢ …žøVŸÝ±Ÿº£»va Ð–Ú䪚Lâ=¢ÐK­Ñ+tI”1¦ÜÝÍïéý: |jyMV„ÞýbÓ› ]ÖDÿíT~¶B—•š¿ãé7øØ ÐûuøÚ KÚÇúïï|B‰¸J¡kº¾€BŸõçLÑæ’®A(ôîY³ÂÛ½ -܇+ýùß‹­ëëÞj€Búb…Dq…¥ùïïs™B×6…(4…–²èfÓ“|ÆE^¡¿}u¾]¡“ü9¾%r@¼€fúÄŠã\è¸]Ë:9 É\n ç*´ã„…pD¤c{ìJö(õî„[ÿób œ¤ÐÁ Pµ(4€F'@Æ]Bjçã[^*ßòJ…¦%¸ÅŸíÝ `Š<ÿzJ8mìÏÉŸ³UR8¾£ÐŽƒB ÐÀ£WÞÞ³EùŸ«ø‚%‘ƒÌðé?Ù-ÜåÏ Ð&úó_ÅÝ=[Ôûs2®¸HT6¨OräWŠý™EƒB ÐÀ;ú_³m®¼*ˆô:*B¡ñJ…v±À\‹ÖÖ­õ§AâÇSÒ}¯Qè"‘÷ù3…(4€)ëo3J|ä{žµX…þ¦+´ã„ Ð(4ð‘þ4ŸÏ¼Z·ÁY }D<âwÌå‡+ý™BÀ5kt2q·VúA¢x†BódPh ÐI…~b®ï\…–­ €B,º™ÈÑkÝëÛÈA…vf«ù3…(4€ËVêL4•BþÌ¢±ˆB» àz‘N.ÍO À6ºK?(4ôg Ph+¯éOLž«ÐE"(4  µ.ת?ÚI*´ã„ Ð(4€‹ât…~â>ïög Phë¬æïHWh“¤ Ð(4€éþüh‹Î(4Á£ýÙ Phú-¡ÐxB»z `M‹~YšBƒB ÐÎXÐ_pœBãõþìê(4€5Eú•f²[¬Ï' €B`&ïög—.@¡€Bã;ç¬KÎ¥ Ph Ðø‚(4@¡ M¡ Ph€B Ð…¦Ð…(4@¡ Ph€BSh€B Ð…(4…(4@¡ Ph€BšB Ð…(4ðz…þÏŸ†a†a†ÿùßÿ£Ð†a†a†A¡ Ã0 Ã0 ƒB†a†a…6 Ã0 Ã0 m†a†aQèÿü‡a†a†a™±èäÿÃ:”= endstream endobj 597 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[0 1 0] /Rect [383.879 689.74 390.853 698.149] /A << /S /GoTo /D (cite.batagelij98) >> >> endobj 598 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [184.345 675.574 337.729 686.692] /Subtype/Link/A<> >> endobj 599 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [121.596 474.05 133.552 485.91] /A << /S /GoTo /D (figure.13) >> >> endobj 604 0 obj << /D [602 0 R /XYZ 89 770.89 null] >> endobj 66 0 obj << /D [602 0 R /XYZ 90 733.028 null] >> endobj 605 0 obj << /D [602 0 R /XYZ 190.473 207.443 null] >> endobj 601 0 obj << /Font << /F45 106 0 R /F8 108 0 R /F57 109 0 R /F67 131 0 R >> /XObject << /Im22 600 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 609 0 obj << /Length 3520 /Filter /FlateDecode >> stream xÚ­Z[wâF~ϯàQœcõEj)o¶ãÙqÆžqŒ79Ù${Ž 2&ÃÅ'„‡ýë[·n ëdOŒ@]}«þªê«j_<|õõ;›ö”Ítïá©W$=§MœdiïaÜû9º¯žú*ªVø±Uð¨û¿>|÷õ»¼WÄE¦3ìdã"W½ô˹×Ï §~ílQD·q ‹$:ŸÁË1ü•‹^g¢‹%4¹h‰-U¹`9ÙÂߢœÃçtDSB‹Š–O,±@ñu_çÑ—>vÇÅ}nľ`·5|<³xC”4Ç7C{©¸ Å–/Í*–œ:æ-‚Fš=•ÄYª{ ïðîyK3ÂTð7ê§:*aSªˆ¾íЉ3û®g<µÊÓ_’4AMÁSÁóø³é.ËÎpˆÞÀ˜¢²°}ÞȰîE2מÞ>.AÃ4èb``7Ñ Ç[ì«c¼»<Ö*óËGå _d4ê„ötÆM-L`*ùLÁô0šM ÂV‰J,'ÕLý›ü Ù4Îc~Þ®HOx+x•« l6M£ß*ò Ô{Ç;Yìr²”ÒOp^ôå†; Éç7¢¦ó…÷<ä,pu§oÉtœ…WØ%λXìòrÑáxS7zö^£(bçÜ×PâktÛ׸]êèL¤Š"íX9Ô©Ñ:º˜†ÈÀÖcuÝ‘;\áó=ÄË^!tk *i-'FºéT‰²Eœ%Êï í“,E~c£ZÐõ‚ŸCBÂç÷cKx"è§ë-îÒæâ‘À€Ø!²eŒ[z?Æ%ÎH±ÉÈ\.ÑŠ^pkžr¹8>¥)ò?s,Á¥»Â5–ðÖ1¤r bW·ò„Åf_ˆì/è\ƒ»‚ïÞÉð¹<žÉ·–Ýgæ°‘à†®Q%Oä·æd} Kt Μ6)” `{¬–<‹¢í¬ÕÑþ˜*ê€EU}áuÿ„ïÙ®¤ЪDMÚZX䱚2Q¹óÌBXVÑæÑ[5« LƒvÖŽpàøEMðõg&×:ó^ý3*x‰΀)°Ø¡>@Ü‘¿¯d(Â÷dé½E¶97±"ù;‚•;n»¯¥ÅÁQ3¸™8}­· G¸3<Ô¹p²™úd||„蜅]qP$¨ŸäX]@ÉMlTÚÆÉՆܯÏûàÐÝb€L@Ÿƒz*Á·.iÅèáв5K¦àyÉqbžXެš/D[LÜpÐ ˆÙfÛRSœñ‰6ÒÀwÔMhÊb$Ä„sq¬i˱*S˜|â\u¢ÔVíÚÎ53Ñ»~n£r³êëà¡Mß:MH$J¦Dì„ F”âL´&-—Ï%þ””‚±Nº6X7d"O®`Z±5lİB: n)œ;Ñ!dš+g ×<.Rujfã£h¿ ·ÄZ'¡6?ìêœåˆŒÍØ‚Õ1eD/B?Gì˜$Ь#Ô‰ÖuÜ1Ÿ—Þó“È@D/¤ûh+˜™U'Ò­m¬mpsÿú2LÇÚéEí³둆kPÚî*eT?2AšIlœ¸ìj¹@rk˜oäÜçCà»t€Ð]_2„µúõ²%yÑH/Ú6IëCÁ>¼”äeW ؑԅ1ÂÙèÞõVënQ¿…0/‡> œòJ’@lÛË$à÷¨l¸Ø›ÝÃ›Ž ÐŸ[;oiW¹™µø6†ØU$š€Üá€-¶b}N,Ü£­ØC›88x~h GúÅÃ. ߊõıiæl‚Ô½O.g9àÝ%2í&ìn(>U‚ZèÞ GhøèÍã™:öj¬¨†Â§V•rX7ép*¡üD¬;åYŒ5ng3ÈVV„è¥bw|Æ*i²†ôò\žìZðÑï•‹¨/Àá¥aY²iÈLôɇŒ‰·ÙšÈ‘{ÀÜW€‰YÅÊf'™}" Nl8ÒûVÛÆ7Á÷¡O³0nö‚¯W¯^õ›–Ô±Åcm8½O¿ÓY ­‹ã†ü!Uù?¥¢àÙ}Ý€ßrá |ÎZÕµ8\¦Ê>·Ö šUjïø’èŽ<§:U᳆æ=MdmXrû@2 ç÷1¿ÀÈñ¼¤²ˆ®¡†¸j1\”cë¬øÇ w6!÷Z®»å¶7j~O+©á Qóö+vûÔPý.µ#š‰´$\/覥s’\ 9',àl.£ƒ&Ç{‚iÈgç"“H ÔΊ‚/‹åT˜RÕí$²X+µW˜ã26ë²Ù}b9?f¿‰7˜0÷~öµJ×'Ò3¬Ã55<áÜEF!ŸÕ¦ØAhwàõçVÅÖuAÊ× 6QÑ u°I\hp‚ l#¥âÿPCÒk½*Ÿ½ë9µˆY¹{³Ûg9X§Uyt-S9ëBNB‡øܶ¤J"êFÐçõM¢Ÿ(üࡾ/W¿!” !ƒüè;ÚZE `ê‘øZ·â‹ÝW“àHнå†Îçl,ðجÃŒ[9þ™í ÕôþD¡ ›nC—±g¼Ýð„HŒÜRVŠ“K¡J„7¡@ÙRˤ³Hh²ì ¥åÚ•*eÝNeî¸\¨ÓU>0-F2/&5Oül2è5ß™À[2 €–Ïüž,/ø·©g°TAÚ–Ð ‡Lü®ô ƒ#6¥á–Ê TGõÜzCû%rIP3-¥ÈDlµU;=å°à˜º 4ØšùFå;]ø"L¦â¤PûÈmU¯O’_7ý‘J*úNž÷RŠ0¡Ä‚“ Þ}Ù¬ðWG(ñ^žX ¡èþ:•+Íâb ¾myrȳ@ô§<¢ÃZî>({dDb_ÄËÊ[5@4r(’ĈO™që_x"Ui†’êÆä8­‘”·+ta¿T%T…ŽsÊÉß A÷·W¼²¹¿[Zsv“ ŒÞJmàü­9Llrsxê Œ4Q$õ4”åtWb“í]¥ò6mã"O@•µ<º©¡dÛ%u¤¸ú€+·äÞè¬h3rƒ³f$¦y³,|ž·Pµ£Í! ñºñ6Á‹1m¡zéñmq2*ASå=SIÂh\ì’ƒ´×°RŠl4ܪj#lº<•+B.ŠUš¿¿¾æÃ¦OHÚŒ+šò÷À¿ž)xSIS¼V|9\>N[·^uÛþê¾Å‡á:bGLHÀSUH¹©+úíÑ͉U–S«Q³_XÝ´¹5äBÊ„­2r?«lH*að–óÚK)Qì/9/åqbÔß‹;°ûHåí›Yʶ2µÓΆÑ1œèÑ?è·â/ó†ÔPš¹/¨j(ÿô‘5ltÎÿ£ 2J\Zr”>®f#ÔØg‘½md¿o¾ ÒyYˆÃáêï ŸŠ—þVkk˵·‰P—>ãK&!pìùÓ[]Å4;å|È'`>ûu×üoTÜq wïû©!F{QŸŠ…OÜáһϙüÞË-A¼’¥ÿ#0Ëš» ‘HöuÒJ21»ýÉߌRnã9{9"t<—RŽ‘øHj'(6 4÷ÕÅÉ’¥j‚ßo½#¢ÑhÌUÚ“èýö±E©èì}ÕiÉ…’¶“XÌ“%; *B_¢ÿÇ%#6¢ò-¸ºõ³„;?öžæ.ÁÀç1íu±ÎÓƒxTøpò` öfgtÑÔe=éUàœœN,¾‚ÿ·ÀaÛWW_ý¤¼K8 endstream endobj 608 0 obj << /Type /Page /Contents 609 0 R /Resources 607 0 R /MediaBox [0 0 595.276 841.89] /Parent 576 0 R >> endobj 610 0 obj << /D [608 0 R /XYZ 89 770.89 null] >> endobj 611 0 obj << /D [608 0 R /XYZ 90 740.998 null] >> endobj 211 0 obj << /D [608 0 R /XYZ 90 714.988 null] >> endobj 212 0 obj << /D [608 0 R /XYZ 90 683.542 null] >> endobj 606 0 obj << /D [608 0 R /XYZ 90 638.208 null] >> endobj 354 0 obj << /D [608 0 R /XYZ 90 606.204 null] >> endobj 521 0 obj << /D [608 0 R /XYZ 90 575.316 null] >> endobj 355 0 obj << /D [608 0 R /XYZ 90 555.268 null] >> endobj 136 0 obj << /D [608 0 R /XYZ 90 511.866 null] >> endobj 213 0 obj << /D [608 0 R /XYZ 90 480.421 null] >> endobj 201 0 obj << /D [608 0 R /XYZ 90 447.953 null] >> endobj 202 0 obj << /D [608 0 R /XYZ 90 416.508 null] >> endobj 167 0 obj << /D [608 0 R /XYZ 90 385.62 null] >> endobj 153 0 obj << /D [608 0 R /XYZ 90 354.174 null] >> endobj 261 0 obj << /D [608 0 R /XYZ 90 322.17 null] >> endobj 154 0 obj << /D [608 0 R /XYZ 90 291.282 null] >> endobj 569 0 obj << /D [608 0 R /XYZ 90 249.813 null] >> endobj 218 0 obj << /D [608 0 R /XYZ 90 215.877 null] >> endobj 252 0 obj << /D [608 0 R /XYZ 90 184.431 null] >> endobj 155 0 obj << /D [608 0 R /XYZ 90 143.521 null] >> endobj 607 0 obj << /Font << /F45 106 0 R /F8 108 0 R /F62 119 0 R >> /ProcSet [ /PDF /Text ] >> endobj 614 0 obj << /Length 1066 /Filter /FlateDecode >> stream xÚåX[oÛ6~ϯÐ2  €HEê¶a(š"ÙÖ‡ hýÖöA¶e×-y’’¬húßËÃshQ±ì8˜û°îA/çúéóÑÉ/—2r¸ô…ŒCg4s²ÀIBáq䌦Î;¹ç¡d/Ökלåtáröûaô u¹ŸE‘Ö /Œü$F•3Ÿ“þUѺ"dw®²Q©‰úZ™K${p¹Týº›©fU«ŸU®~Zô’:™ŸÅal|¾HÈÇ裃€ד2bM1Ñz8X•8º‹•&ì–f¦E§“Ã+Ö®oÔ³\B_2ˆ*/ç0”Ï E5pQƒ•õ€¯™ _ëÃÄGÒ+!ÃÖ S€ŠBgxSxE Œømq¤š!Qb!!¢ÔOˆâÜE\+²u¥í B(b?’Â(ú®—¤Y€°ã‰,òއµE¹‡p! ðB–© ±ë…1+¦8¹(ñ}Ìi)²r ’8Ï'€Î5˜o<ˆ?¿©qêÒM%q½¾¢@õ. å«Kõ£¸¯CWìàÂÏdŠ1UOò”5ŸÁ©z&PH·® [iŸgJHd,ß-Õ ™zSl#¯ÆÉxAÀkL )&(w^)8TÙu‘ó‡9Ñ…²áÄ~Cl[£¡šˆWP Ö²iqĬ ˆ¸Ù`cÕS«,—faÜ5ªõëÍ`Á)H9GµŽW\ÅMkÙ%±`¿«w(ØŸ$–k°°]ã”±pgV"ûaú‹j¾1K±~Dë_/)¢=Iµáì«z~jG*q˜&&ÛS$'0æH€ë)н¥áµ%š“XÕÖf45éMk;"}["Dd"üã í!߀ô”èn4°¬×7™¨i®¡gA:%šy§šz|MS•ÞWPdLMAVî‡]Øìc†Å[Àöç~ÅZroÈ2ßåâHÈT1pÏéË íqßåñS—Ç¿ÍÎ7ÞrE[òéQ)B†¹6<€÷ý‘½é׳^︸}ϸï÷Ž[5ÏÉöò{Õÿ íugÇ´ ýSØujyøüÃgº"/Ÿ~°L·w¬†¾•+ÚÑÛÿnÆ–å¿6_5Ôœ÷^O`‚Ïò‰Ù½ÁïìãªÌ|ÉŸãë¾æ=E=TnÆfÖ™g…Cú>ÐIlîÝñ¶ÒGÝ4‡•[ Æ[ò< Dß0Ú[ÿ§5™ðÈ>Ií;­î«…u"Û ·aÌbo­oÓ MíLêð³¥'â8.錄+ û´èj•5Þv¥7ËlÜÏc;æ¸+Äö¡´w!馣‡nCþ¶)é’QlQhB|³k=±`¯;ÎÐÆPÐÚœXL¡<ó>i-ò­…œÓX¯ÁýlÜwbÏáîL¾^ÿ–0ˆýˆgŽ'ÂÔ—a†!Ë$O.F'ßû]– endstream endobj 613 0 obj << /Type /Page /Contents 614 0 R /Resources 612 0 R /MediaBox [0 0 595.276 841.89] /Parent 576 0 R >> endobj 615 0 obj << /D [613 0 R /XYZ 89 770.89 null] >> endobj 70 0 obj << /D [613 0 R /XYZ 90 733.028 null] >> endobj 74 0 obj << /D [613 0 R /XYZ 90 710.429 null] >> endobj 612 0 obj << /Font << /F45 106 0 R /F8 108 0 R /F57 109 0 R >> /ProcSet [ /PDF /Text ] >> endobj 618 0 obj << /Length 1032 /Filter /FlateDecode >> stream xÚíYMsÓ0½÷W˜2Ã8CíZvlÇ0†B åPÍ­íÁ$Npâ’¤-LÃG+­©Vl'qfààØÖǾ§·+YÚw÷O;FdGÝ9Fèz¶øF·o\šÝ›1“–åµ;ôFÌôšCÑ„þô¡¤Ï+ô1›ÒŸq<‡’P”°gÖe|۲܀·ŠS^1I˜A·c>´Ü×}›ñº}˜^Jîú`kbxé ܳ‰°(JÆ ŸqTÀéAù•CÚ=`Àf ¬Nú[0]Üðu÷“á!vä£<·´fš2Ül‚=ñÀGF°qP `y®c=S šf Äô|‡§~(9ˆ þ‰Ç?G¦ÀºdÀ$lYaÇÌ£–廞ù›ÅÌ_üyÊ«„è¢tŒ.q}ÛÔ1?ÒÚSðˆpìVVa˜U/øívã•`«y•bþ¢×kÆÒÒÑ\1æŽ×ñ„,ûÈk¡±Û åm—º5Ë{Ñ0oýw 'Ùv³ËòHÛ˧¾Ô/]ÆÐ%}¬‚9;- 1ßc,L×|Æ¡íøžêð#~Aš´ ›ýô°ÚÄoå$8?w­²ŽÇ¿"ò±¾þ¹)‘ƒ‚È3Ü}ŽqÇ5ߵؾk»Nû¯[²|–ouyÏ¡zÔ*ºF'Šפÿ]ó'¹&Ï2 ‘zd,ж.§6ô“IÛtP 6 ]zšo.ÖùNI:…^.én‡’[IÛ&yÚ–5Åošøÿ£'©>®€H_¤íJÌ2óøÉ+÷lIö\ë‰úð5¯ÒSÿ$rÀö ýB»Nd»§_;‚–{'ݽ߽ÔŸ endstream endobj 617 0 obj << /Type /Page /Contents 618 0 R /Resources 616 0 R /MediaBox [0 0 595.276 841.89] /Parent 620 0 R >> endobj 619 0 obj << /D [617 0 R /XYZ 89 770.89 null] >> endobj 616 0 obj << /Font << /F8 108 0 R /F57 109 0 R >> /ProcSet [ /PDF /Text ] >> endobj 621 0 obj [514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6] endobj 622 0 obj [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj 623 0 obj << /Length 149 /Filter /FlateDecode >> stream xÚ31Ô35R0P0Bc3cs…C®B.c46K$çr9yré‡+pé{E¹ô=}JŠJS¹ôœ ¹ô]¢  b¹<]ä00üÿÃÀøÿûÿÿ üÿÿÿÿÿýÿÿ@¸þÿÿ0üÿÿÿ?Ä`d=0s@f‚ÌÙ² d'Èn.WO®@.Æsud endstream endobj 142 0 obj << /Type /Font /Subtype /Type3 /Name /F75 /FontMatrix [0.01204 0 0 0.01204 0 0] /FontBBox [ 5 5 36 37 ] /Resources << /ProcSet [ /PDF /ImageB ] >> /FirstChar 136 /LastChar 136 /Widths 624 0 R /Encoding 625 0 R /CharProcs 626 0 R >> endobj 624 0 obj [41.52 ] endobj 625 0 obj << /Type /Encoding /Differences [136/a136] >> endobj 626 0 obj << /a136 623 0 R >> endobj 627 0 obj [531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3] endobj 628 0 obj [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj 629 0 obj [816.7 826.7 875.5 756.7 727.2 895.3 896.1 471.7 610.6 895 697.8 1072.8 896.1 855 787.2 855 859.4 650 796.1 880.8 865.5 1160 865.5 865.5 708.9 356.1 620.6 356.1 591.1 355.6 355.6 591.1 532.2 532.2 591.1 532.2 400 532.2 591.1 355.6 355.6 532.2 296.7 944.4 650 591.1 591.1 532.2 501.7 486.9 385 620.6 532.2 767.8 560.6 561.7] endobj 630 0 obj [880.8] endobj 631 0 obj [680.6] endobj 632 0 obj [562.2 587.8 881.7 894.4 306.7 332.2 511.1 511.1 511.1 511.1 511.1 831.3 460 536.7 715.6 715.6 511.1 882.8 985 766.7 255.6 306.7 514.4 817.8 769.1 817.8 766.7 306.7 408.9 408.9 511.1 766.7 306.7 357.8 306.7 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 306.7 306.7 306.7 766.7 511.1 511.1 766.7 743.3 703.9 715.6 755 678.3 652.8 773.6 743.3 385.6 525 768.9 627.2 896.7 743.3 766.7 678.3 766.7 729.4 562.2 715.6 743.3 743.3 998.9 743.3 743.3 613.3 306.7 514.4 306.7 511.1 306.7 306.7 511.1 460 460 511.1 460 306.7 460 511.1 306.7 306.7 460 255.6 817.8 562.2 511.1 511.1 460 421.7 408.9 332.2 536.7 460 664.4 463.9 485.6 408.9] endobj 633 0 obj [404.2 472.7 607.3 361.3 1013.7 706.2] endobj 634 0 obj [569.5 569.5 569.5 569.5 569.5 569.5 569.5 569.5 569.5 323.4 323.4 323.4 877 538.7 538.7 877 843.3] endobj 635 0 obj [777.8 277.8 777.8 500 777.8 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 500 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 1000 777.8 777.8 1000 1000 500 500 1000 1000 1000 777.8 1000 1000 611.1 611.1 1000 1000 1000 777.8 275 1000 666.7 666.7 888.9 888.9 0 0 555.6 555.6 666.7 500 722.2 722.2 777.8 777.8 611.1 798.5 656.8 526.5 771.4 527.8 718.7 594.9 844.5 544.5 677.8 762 689.7 1200.9 820.5 796.1 695.6 816.7 847.5 605.6 544.6 625.8 612.8 987.8 713.3 668.3 724.7 666.7 666.7 666.7 666.7 666.7 611.1 611.1 444.4 444.4 444.4 444.4 500 500] endobj 636 0 obj [277.8 277.8 777.8 500 777.8 500 530.9 750 758.5 714.7 827.9 738.2 643.1 786.3 831.3 439.6 554.5 849.3 680.6 970.1 803.5 762.8 642 790.6 759.3 613.2 584.4 682.8 583.3 944.4 828.5 580.6 682.6 388.9 388.9 388.9 1000 1000 416.7 528.6 429.2 432.8 520.5 465.6 489.6 477 576.2 344.5 411.8 520.6 298.4 878 600.2 484.7 503.1 446.4 451.2 468.8 361.1 572.5 484.7 715.9 571.5 490.3] endobj 637 0 obj [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj 638 0 obj [833.3 777.8 694.4 666.7 750 722.2 777.8 722.2 777.8 722.2 583.3 555.6 555.6 833.3 833.3 277.8 305.6 500 500 500 500 500 750 444.4 500 722.2 777.8 500 902.8 1013.9 777.8 277.8 277.8 500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8 527.8 444.4 500 1000 500 500 500] endobj 639 0 obj [447.2 447.2 575 894.4 319.4 383.3 319.4 575 575 575 575 575 575 575 575 575 575 575 319.4 319.4 350 894.4 543.1 543.1 894.4 869.4 818.1 830.6 881.9 755.6 723.6 904.2 900 436.1 594.4 901.4 691.7 1091.7 900 863.9 786.1 863.9 862.5 638.9 800 884.7 869.4 1188.9 869.4 869.4 702.8 319.4 602.8 319.4 575 319.4 319.4 559 638.9 511.1 638.9 527.1 351.4 575 638.9 319.4 351.4 606.9 319.4 958.3 638.9 575 638.9 606.9 473.6 453.6 447.2 638.9 606.9 830.6 606.9 606.9] endobj 640 0 obj [625 625 937.5 937.5 312.5 343.7 562.5 562.5 562.5 562.5 562.5 849.5 500 574.1 812.5 875 562.5 1018.5 1143.5 875 312.5 342.6 581 937.5 562.5 937.5 875 312.5 437.5 437.5 562.5 875 312.5 375 312.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 312.5 312.5 342.6 875 531.2 531.2 875 849.5 799.8 812.5 862.3 738.4 707.2 884.3 879.6 419 581 880.8 675.9 1067.1 879.6 844.9 768.5 844.9 839.1 625 782.4 864.6 849.5 1162 849.5 849.5 687.5 312.5 581 312.5 562.5 312.5 312.5 546.9 625 500 625 513.3 343.7 562.5 625 312.5 343.7 593.7 312.5 937.5 625 562.5 625 593.7 459.5 443.8 437.5 625 593.7 812.5 593.7 593.7] endobj 641 0 obj [272 326.4 272 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 272 272 272 761.6 462.4 462.4 761.6 734 693.4 707.2 747.8 666.2 639 768.3 734 353.2 503 761.2 611.8 897.2 734 761.6 666.2 761.6 720.6 544 707.2 734 734 1006 734 734 598.4 272 489.6 272 489.6 272 272 489.6 544 435.2 544 435.2 299.2 489.6 544 272 299.2 516.8 272 816 544 489.6 544 516.8 380.8 386.2 380.8 544 516.8 707.2 516.8 516.8 435.2 489.6 979.2 489.6 489.6 489.6] endobj 642 0 obj [654.3 667.6 706.6 628.2 602.1 726.3 693.3 327.6 471.5 719.4 576 850 693.3 719.8 628.2 719.8 680.5 510.9 667.6 693.3 693.3 954.5 693.3 693.3 563.1 249.6 458.6 249.6 458.6 249.6 249.6 458.6 510.9 406.4 510.9 406.4 275.8 458.6 510.9 249.6 275.8 484.7 249.6 772.1 510.9 458.6 510.9 484.7 354.1 359.4 354.1 510.9 484.7] endobj 643 0 obj << /Length1 2039 /Length2 15691 /Length3 0 /Length 16928 /Filter /FlateDecode >> stream xÚŒõt¥ÙÖ ǶSÑŽmÛ¶íìØ6*¶+ª°bWœJ*¶Q±m›uÓ}út÷ùþŒ{GÆØyŸég®9×"'VR¥6s0J8Ø»Ò330ñDåE´˜™LL¬ LL,pääjV®¶ÀÿÊáÈ5€Î.Vö<ÿ²u»~ÈÄŒ]? åì2n¶fV33'€…‰‰û¿†Î<1cw+3€<@ÆÁèG.êàèåleaéú‘翟*Sj377'ÝŸîa; ³•©±=@ÞØÕh÷‘ÑÔØ ê`jtõúŸT|–®®Ž<ŒŒ Æv. ÎÔt+WK€ Ðèì4üA `lü‹9@ÍÒÊå? UsWcg àC`ke ´wùpq³7:>²T¥åŠŽ@ûÿËýÇ€ðWsÌ Ì‡ûËû@Vö:›š:Ø9Û{YÙ[Ì­lE 9WOW:€±½Ù†Æ¶.þÆîÆV¶Æ&–n V0ü‹Ÿ‹©³•£« ƒ‹•íÿóÑfq{3Q;; ½« Üõ‰Y9M?úîÅø×áÚØ;xØûü™[Ù›™ÿAÃÌÍ‘QÝÞÊÉ (-ö—͇î™ÐÀÎÄÄÄÉÁ:€ž¦–Œ$Pórþ©dþCüÁÁÏÇÑÁ`þAègeüøçãbì¸:»ý|þ­ø_ÇÌ 0³2u˜-¬ìáþ‰þ!šÿœ¿³•'@—écü˜Lüýý¥ÿ1afö¶^ÿ˜ÿyÄŒ jòšâ´Qþ[)"âà ð¡gçг°3˜™9Øœ~ÿçïü—ýŸR%c«¿ªûWDi{s÷H|tï¿DÜÿš ª¿Ö†ð¿>æ úgüõ˜Ø™L?~˜ÿ?/ÁŸ.ÿÿfÿ(ÿ¯ãÿ+’p³µýSOõƒÿ½±•­×_óìæú±òbÿM5ÿYh[³ÿ«“v5þØa{ Û¿Ûhå"aå 4S²r5µüÏý÷>‚ÛZÙ•\¬þ¸pôÌLLÿG÷±s¦6—ŠËÇYý©~¬Ôÿ¦·7u0ûc÷X>ÎÝØÙÙØ îãè?;À‡ùcIÍ€žÎ6€‘ÁÞÁõÃðAÎ`îà ÷ljr°…ÿýqEþAœFÑ7€QüoÄÉ`”ú±¥ÿA\F…¿€Qéôá§òúðSý±ÕþFÜÙÿA1MþAµ˜þþè£Ù¿ 3€ø7üh ãŽìoÉGVs+÷™|eîàæü¯&ÿ‚•Yþ Ù>zféåhùqcþcñ!³úüHjý/øÁÅæ_ðƒŒí¿à»àÇJ3þ+òÇ%ÂèðOîÛgæ_êÚÿQø:~Üôö¶@ó³1ÿ%uþŸ>03Ðúiæ.ÿ‚þÕ´®–ÎÀuí#—«‡Ã¿>Xºý ~°tÿü¨ÜãÈòáíù/øÞëOø?ãmêæüQ¶ëŸÐÇìÿÿùΞ@S¸¥ySÞëºöÇZa<ú½ þYò=ÍtjzŸ%çŸnÏHЩÔ5_?o8ß §÷ ¬îˆSÝ -½ùœ´6@‡ÿHVn{ñ}5LT™Þkƒ[œÂ˜,<®ï'€Å§WÚ÷}sòÕ²oí”!ÏsrãBR*@ôè“ô¬ï/_ ›ßSÞ¯á…-Ÿ¡UÑ *ùEžo’=‡CåJOCƒvé‰üëî~-wò7‘L"-œßi,k‘Î&KÜÓœ÷Z¥‹K.®øÚØ4…ÈáìŸÒ☠þ…ÎÈø¡å¾¤9Y \%ç2zþ¬@¹Nt²®\Ó,g[ ÓI%Q=ŒO(y©¤yr5ép©a6¾UÀÓ)j’¨íÏn®ÓsõNߤxæØƒ ;Â{~ôíŽlŽ×'(Æ ãiI9ÈTsuÒeE¬™qÕ|?q•a—؆BÝþßù ÅôÖàÖá¾Å®vzë<}ðž\ØJ/&J ‡ÉgoE –úµw˜ÁS(†Ü;S®,ï¬ÉMœW!tÒ,Ø"HgÙ\C2éLsv.øê`šSÊÏfZ§ÄøÓý‚H³oÙgå‚+Êçh§lg@•h©XxýÙ(† Çéq|Á¯A»\ç9<G<ÍêŸÜ Å’utí2 ‡ŒgW÷æÙÒ`moÙ†’æ°ö\åøü)ˆ43C+=䌹-Д`º,·”3'ò°º¬Ý«§©C/ô]¾;©¼MÕ †’¾&Ï»šSŸÞ ud”¤.%²øÄe ê^2yñ6§üOÊ5fk`ädh §a¬g¶á\ßµÝe— ˆ~õÜ`2ä.•âø4’¤…çC??q·C®SRKˆ5sK’j´= ¹ÛD »¶0ˆãûzWtêXeñæ(|GP”%bäzÆ%¹„™F)“^æì˜ ©Èù–ízúe؃—fz/–¾^BQDs÷™9T•ø½¬…¦ñê׸^ V k[õŠOÐ-!Ò·‚º`Ÿ¶ÇLa)tŒJp§Ër;Ök\̤€Åi”X-4.û‡ˆ3SAjfÜ¿DŒ7 £Q>‡.ëÆ'’}±¨cn{5G†Ö;L…f:‚å<#4V™4@¥Ê|•öF%%¶óXgi#m³uÞ"óþ=­†v&’¬?åS¡Ubôû™­ŸA2Õ½©rwÅWé‘EäØbµÁãÆÄ¦K¢6>H¡²ÄÜš7ÎL4Á–„–ã´‚ Çl?Þç长iýü, wNUy‰¥¸­à¥’‚²Ô¾ WϨN_9:$˜çi{­µ‡ÃמɄ;ÌN¿ýòŠî„q¹´HO›Œã“.mºxé@KŒ|¾â)âdƒØë–\Ív9ŽÞ͖У7+eI1ÅT*GqÈ%KÚ*TT'9$-Uêm¦M QŽØÆ;cÝXª ÚpR\¼M:Šc ’«Ñ½Á‘Hïs8ÎöÜw=© ÿcmtÃû²Ñ¤†wL˜tSò.d* âe8÷$d¿ôAn§yý©MŸ<Ž0´ê —‰dTù ØG eú^ÇÏ”‘Qòuœ ¨­¨_\u6^ ôœ |ÙSåKZØIê?ÓtÔ wœ.óÕÆL¤ŠÅÅÔÓµÉݘ[Ó¦$žŽtüì½?ÉÎ&ñdêy°$¯ØpÓZöÛ:\"™†6“N§¥Xwîëï÷»3t»z¶Â`–Á^$ÙˆwkÛÔû™…3ÐeàêïDR¡Šù‰Êdw°Å­ík¤I¼0´ÂñVÅš|)Úó#zïl­²Û{–NQ@0Ð=kcNLZÝzñŠÃ¦¿' è2.4Z]²½»R_÷„MÚ% g øLmË.&›½UE¥šÍÀ¿ËÅ–r@dsíï"Ò[ÕŸÒʲµø>òÓ&I_›zÂyé’‹òâ‡ÀÆ&§Tn^›h_t{e_5ª3Üí¦™¸ú\Éáù°¢pÿ,у4¸huDñhѶ-Ö\H¿ùùK_ɶ8zb%ñSè«®çØ¸gµ}¨i#©šÕ”[«GÍÆ+«=š`AY£åáœü>”¥7¼ß~G¼‰uÈ•ÉB…?cæ¥j+»O^ž.ÊVìì¹Ç˜3žéÃöò^0ËtQ’À@+Ïú{\­9áaXûå×¼¶½‹Cöé¶u.›…öŸU0”D¬nv§NŠ.NWÜ#4$æô„-m¾;¤7UCn¢|å‚ ‚Ë€¸¸ ê ˆTþ¤ì^ÂÍæÝö;’máÁ.`ÏEM –}¼a¢?¸”ý›ïb\ÊbïnñiªÐH‘%-ºõ­gÅÛ„’i~ôŽGM£Ö§½öÑPê"!Ú \·ˆn+2¸½˜GðÊ£p ØízŽÀjèäæ–°*'OÑgR2yMoœ•á䯑ÞÉÀh˜`6Ö"ð8õ^BÑ\/Ù«WqYcSø‰âz'Úq@`—"÷Ìûêªdn}`’ŽE)Ïvn¾CðD±¬¶ô"Þ±ÑUªæ —†T³2VK¾ÃXs8z‰£ªFÐ4sQ—~ä¿ÐžÍ@‘÷…ÌL4“yÔÓ.WAªô Dnf3£BÙPˆßÁoñ!Á²}Ò‹èÛ UsiÀe<‚^\ _ðóO>:ß4v îiöì<切•ø×üz#µÄOïy½"M9&\S­ÓZˆóòeµ?bªÐK¶Ñ¬àã6Ó£©/Êòüwטo2á{â3¡ùxÌèj f9Šö̳锺'J}/«mÚU¸~p6Þ XÁG@E4} :Cê¿f+Ìà µÕZ¢fÕèŠH„w¬ÓÉ‘ÿ²SÇÿÚ~ˆÞ  l§!«%²wðÜb• ÜõÜhuèèvǼ…¦›«óâ²½GÇÖåà*CY·Þ$=‡Ô'FAY´…Y¤m8¬¯"“¨Âèj·Œ,*k[¥ú• `¹;l]È­ïü\PBØjØÌø©ˆ£;‘4a¨'§é:Ê7ÊÈÛ‹ÐH²¯‚_e·ÖS›E]}_†‘%§ç<¤ÉŒÐ=;äR4…âµ3¹D-2u©×!´lt3)#hwrZJ ¹åb3˜ŸÙFîœËmÂ7~åæDØ)léšò©.ÉB«Ð!n04¢w^¶]Ч¹hsýœ…“³‹¿ôc1*ßBNÔbŽÇÞD6âYîGŸSü§”Açkvƒ>nðrzäƒ*N ææu‚}ùéÖd-ºö@ªÛë|Àˆl¶–è>'MW=Þ|áÒGHý×oß ëîðÌq†=¼¼|¥0ò}ŽÃÔý±øl;ÇŒßå¯ Ó@:QÏ]VZ7‘ §Ûû^&æ$&¢ûҢܓ”Ç­‘sßQ?%=Wgs`’瘂“ú7&À§E*îC"‚Áf"Ã)—T™3¯'á€ý x7D+œ£ãP¯º”Æ`XÑË¢$ÿm•$£v:¼7k’`Ú¥¡JY›XDevìȯ#ÒÁåÖ£¯âaW&jÔçÈ5Èy$±aõGkî/õ[¾dØ lÇÉ4B³.‚+pV“Ž &ýÛzΰ±ÜH½›:|Oî´å#P5r¢»m©´¥+\`ñ_🼢wª—¦ú-éIï}Šp&ÊyÁ–±ÀCÈîÚâÙ_ÄùT6H‚¦Êºþ„ÚÍð唀=VKÁˆqåùg©4·Q5×&&r|ôvß²š…Üç1_ùw†áʼ$wããMÕ½4^Nuò1^ð9£sW›B?Xñž=äÆ@½)Äq‰Œã3-”ÚpßU¯É 7ÿ=eTË ›Nw6 èÙ ]™ ñ¬žÜÓ–"¯nþ¶ åÜ_Är›S¢¡`ƒ„E¯UŸn7`ö»3ªÉV…?J›óu)vyѨþ»£ª y‹•ïhô“«/ˆ.Ì– ß§<ÿÓ×Nl—á)ûÆOŸ§Pš¦Ë=XØÖQB»ÌMÎÅüu©kž -ØJòYßÖ$)@‚{È‘S –x«Ú]“÷AÓx@cpŽ1žzü<ä31QA|`‹&+¿11˜”¥íXëìÄ ñEî#~¾÷öš·ýEýû¤°ry'›>¹ܵ¦nç0“q³ÄRb –æG˜½sà¼ÉƒË‡úýáân%Dâ‰6Ï¡ç²?¥,g÷PRÙkDm™óšO|åbû½Ë)RÓ_´¡àÉN÷†ÿ¸Ã`FþŒ°Ï$ð»˜w½3¾¹™l÷Ê`,O€Nû+ÄËjJ!hf.9hŠd/ö ë: s,uŠ ÕÊr&äã ¼˜ŠtÕªq‹½–ž—¨Œ“µiZK.†p âá’ÁÄßl~´ýc÷ùéf¢cóù¼÷'„’}µß úuH…’pòËê/fP€Nâ­È`*rå°Ÿße…È|—Ä4«2¢go•ê¡ ¦RYi˜dïvƒŽúÞVš©ýfÁ«eŽä-HfÈØŸ¹® ;,*D]XD9éd³s‘çra&Ú&&©óöS#ØÖž‘V™IA{~T|imÆÆ”&Ò2ÍVzXôlf|;‚1¾þ¼kPÔÏö†9ÌA0›BmM X¼lŒ è3F4pðz‹5È«˜¡àFßH‹¼ƒ9¬ /èäãóØ.å·L™_y·ªTòÅ·¹Ç `û&ñ~æâG£õÖ»([l]’qcê¨àŸÁÅ×%´“ÐÎÚôͺu%;ü3y*(7§ÂÄ%™·‚AOw˜€\¯œÂ÷ƒWäI}7nØ) Àxj’Hý•ZŒAp|dž»=»ÆœM垥ü"nZ«µu ƃ”ÙPÅFgÌÚikÓðŒ~tÃj¹£zº‘u „¹‰*6ÒŸä EÍ3{Ú“L>ŸÖ³— ¬Ï÷Ë¡oÌ|*ÚÞ<‹ßéëÏf ™¾ŠJ1b•Ž9Y1¼áÓî‡cª=¾-œÁ†ìC¢)©£VDV)¬ˆAÐ2™ø»p%ÎǤTÒQÂxÚSõ­ 5µ-Pªj¢¦WqY³ò†.’ëwÕhÙþò\ _N§p9É7ÜŬç²MÈi…üŽÅw[»'=鰀ʹ˜« ã§…$BƬÔ}pyð  œ‡2œõD¿¶˜9Ëöæe¼iÄyq6žFÆqPÈ]чU)ȱ°½º±#ʵ4Óä5–jýDËÆŸˆÆG³-:ËÌ)è†ôç/n6ùôûNW´ 0«9’&Ï{·$ ß×ó^çí.“ î¿·*ØSÍ.e¹Pyù%6מ£Oú°«tcNMyêþÊ5YÑ-.£0¡ËÝiWÄ q꜀ä F <?åmð4˜9^UNË8ªL´æÔ,>&ͪŸI‚š…NY©ü!¢!I°iµ‹­»+]¢)Ì'Ôr¸“Å_Ëq/Xƒ~d‚C†¨6"Yv‚–Ĥà"Ç~·2q”(GtãEÊ1oaèþ '·ïP$^Ó2Pà/MÝ K̪u5áñ DNùaÍç¡;Ýu˜Â€wo: GS"œ+œÞM Â*<Œî»V·³,,s¼ýnÀ%ËœþâEcÁ˜rÑWºÌYy¬ @à³ÂеJ1í{Ót—-‚ÅZ©òÔÒ “v匆ëº_EÛ‚/•1Ýæ¦U%ì nƒ¢¤:—l@œ¹èS¤Õ¬lëµ¹9ëQm»ð:]7|·~MWYhâ»Ø\µÎÁ836WtcgY@w¯zì¬Ë~£ÃLèqÀ`W•B$•ÍEÆÖ¥@X¨ÄÙ¿5íGÈÃ…¼æåË2k%Bè­ÛØ^¢<¢ÅçòòRV=qA½H™Ôò~ϱ;Zbõ\¸´’%Ž­rq‹žJ2‹®_âwÆý®%xcÛœ:¦ iæµ¶Â.ƒœP?}h³zÂt2ý¯ú£ÍRuM¶u7–º20pá¹üSdj£m‹É–Ë%^í»è ´Oƒ@Õñ}îBhAzbµöºE ¸wÙÃÔ8eÕyÜœ8˜çۦǦ=Ñ2/rk*àHHøY6SÐ"®B!Ñ)ì8 ‚ ¤Ž …º/^­h¶ß¤ m­4]EµuRvdœçĆíÛ Æª*Ì¿%^V¾/+Ç#|ÇiUu°‰èxÇ[”†ßæ$ìBÂѰûW&NÇ úø÷šó4Šñ„òU®Ëótª—†0†úyL¡QÕÇô’#ZsÞõ‡´’¾I0ùæ†IÎúâ’‰+ÆN+_ã,Jì`çôåí¿ýNƒq§ª«cl¸]–3©@ 8Š^0Û¾XR©â]‘Ì4–éÕPCÞz÷28\©úÝlñÍÎ3Ó¨N‡%æpk*Â7rÊgWXÆ4MYå±ÁÉÞŒjyå«WÆuó½ƒØ¸‘Z¹Œh<ÄêT¸·Šñêíà,ÒkÝÛ·…”…ãÈϯ¢Bmï1ÉòŽ|ºñ±L“‚¥oÀA^0µãÛxÚÐ2Ý›G‹þÉ’Øß˜ÁÓØ)Æ¡$åNHßMæ/k;6–†`iv^pßON—®|«yxšQ4 D»Õ½‘†W¥L.%kĤjÎÈ8ÈØ\åÚQjdL@áڥϤqDç¿:53Èf Ò T!Š&yÁÙ¦ÂpRæØ™'ÃS48Œ0÷o•ñ„î[½Ï„–¡î¹Ô!Úu¯&As3À„˜y""/§˜ç~:Tù¿°ñ”ÐY»@Ì#waŒÊoí<^¼À+ë6;õ“ýä˜`œ¶dηK›¸l»k¢""Aer/žãÌ.†e•¸Tz,#;:»: ³«p’‚kÛxAÇÀOÙ1 nMM\GˆÈ¬›Ž_^¹PÅœè’:(×uYån·\ ú\çÑ'Ë»[ÔxΓ^šEy1SôÅľ»1­AC˜+T~Õå÷|)Rʧ‘UwJ²ÉI Þ!Ä<°i­…G¤–‡½:{‘ÄW!¬Ô”F$"QÑæ¼,Ñ|o[™=ž¨=‰¼ÈØa¢š¨ŸS[SP¼ÅŽ)\92n“©ðôòoåÂrsl,ðEü!È~Q‹û›L—ÚåMÁŒ/›4®fjóH½Bþ×"a†‰x§ò‰ÚŠ+C9ÇÁ§Óùü^uŒ±uÖr\~ão?üQpDwôßnvK‰Xf°Iìa@EKw #v$d¸¦ßz߯†Y|n;‹uMQP™ƒc0aÍAµ†#[ARÑ ¶|:«¥—CÑ$ †`GJ™$³¿vEl*~û®ÏÓb2÷#$¸Q—u5§8ÇŠ+‡‡ÇÈÓKC‡ /7ñ b-ÊBâWÓÁjÖç+)eÝ*Œ©2Â+â:‡Àµ,x*6»+$dLÞ•›=eˆñÏ¡š‡¼Gwý´Œ„9æU9¾||_îßh¬Bív GÉ21z}Ôúåæ³«hôˆƒQ˜éÇíü+¹ŒA_qÕ_Lõš) "-vÐ æªî#ˆ~šOqÿøŠˆEYÆ;a±:®àòD–ìló}s6»÷\ù”2—9Ñy' ¿|0]öV¬Ò âùçA¹DI ȶ—·8A˜C~Zžú¡Yõ ·¶ˆ³`‹ª:×j+cH~C˜¾ÿ6RI>j¡¨´Âæ¡cúfæŒQÌÞ91õo.×òæsÏÒ<¯°ÛdÊà~Ó]›Ïö==DXOÐÉ?Q¿…¸hw¹L|ª¦vS¡ êAjÄÖuøÏ³êÔ†Eñ?ß'W%•ñÂpFJò”›ó0´À."±zKžÛ¾OÕ¬žøõtÁ§…¾Ur&.îÁŠPùô˜b¥ýýyMi­èª>t$á_Þ×Xç¬ ü®‘êÓ„¦…͹õh0¾WDƒ;tšÄSж™¥ßRQà»!O1²vs£ÚQ³ |4P6Š÷d½éÕ3èœX#vJ]'ºö>‰NHYÊØÝÒ¶cй‹ÉÁì˜í¹P©Ä′ã ãvfú•©›Ñ9„§h¦dl2{vW&RñÖÕø«a$=QÄUˆIòíƒ8Q'ùØo\uïŸUôR3Ękºè·òN`SÆ´Ö{óåÇÙ¡!s+HzL{…ôuô‹[<ÔOÐk)Ó`˜<_S~FnT5:Á$s²c«ê¿í‡9«Ë8dAÔÚ(ó>é/K ³Ö¸@^ÇßüfÛð™K*>baÔwq0rZ1x„Û\hºl¹ˆ|Â>OF”¬©á^1°¬‡™Ch!¬ÂC½óÐQ#Á Ë»ób¶ÙÐòú–9’Ô€—:â9¶_÷QöÁ)kÀBšCÄ!ok|fó*5ÖcdçQC>7/Kæý%!€ï%›Ý5˘Ži<âfëkóuœú¦x­Fðš@Ý:Ë"¨O㊻q¸Æ£µ‰ƒ ´[ߤÀKðe*òZn^Õ@žÁ09Z¤©Jߢ‚¬ªÚúe!„ÜsÌOßÕqŸ<\«0NM#«6SsJ—Ê1FÌVùÖ¤³»Ë ç³›ÖÓ³ñ‡rŽ8‘4¯L<ðÓбÙŽ„lÄ6{t›h…½éx{éÛËLË<Y Æhå<¡‡™·<~¤1RX²ÿQÓâödŒ:Ý'm«®‹’Oô¿šÕÒ?ÇÕV©oÜMC݃üj>ߨˆ-Bišú¼¡øKW©Îç³Åˆfºâ7x2®æ\â²µkIö¹Ð²FAPÓ‡.£èVéèe4q!¶OÁAFÆ>Ôœœ"ôSÿ/¶«t/ÑDY¾6/~Ë=)V³y*•Þ«¾;OÉ“þšð¡‹POu–l¶Ã¾sŽíÌÑœ‘¢ö•‰#Ÿ4LÛ,óÃί(³E˜þ˜¼»’õèTy¦…rn‰;!àßnçñ`Y[šX³Œ¡ÌDà+Ö툢†í?õÂCI¬ôÓW¸[pßÇv¥ZÞF¨Ä-ké«ò‰±-£Î%Ýâ(V´ ¯x¦ÙéÇÇAn÷¨úÒ:6¤$ëŠå£ˆ®Ld§Òo@ÏØthDÇ¡]â2L å{»ç&O{B6»2Ž§å™œˆê! ˆ´!¿ÕŠèµ·#C”¬²öH ÜM„WÍwÅNòlG;’x<.º1–÷Ôšð»|;”8¤èï®àKƒG‡§O¸¹ÙáÚfòÓ'•óá²\×÷¥—S±{„/ËÁƒ$$-rr^=³A)»f¦ƒØªÖcÂ0AΰÆ¹gã‘vromîÖóJyÍ›Òôgò†¥ví*KhÌË0Ylëí4T;t¸“Ô#0Ô8ð_}ôe¿rʼnŽÇ™ {º|ÂLy³Q”‡åéæ²pžùn°¡ï*–¾£Æ=@€96d„Ñ[`-¥! áð‹¢ÆÍ"ò'\Öº¡oë¦âí‘û§ª'ù29«šà/ÊÑÜ6C<˜áõ˜F¨€ãÁí.«È¹Xß‹D1pÚÎNU¡µ¾´ô[éb.”ðù¨ÉÛ ”_Ô™ÄÿØ1¥½ßçT¨Öjè=@ñöðã:ÎÕ>ÓäQE>ž£S8‘VF¬›Ð9e–þì6²ô¹s=~AH"0ŸšîSÎ÷Üæ÷Tøn’œR¸o7ˆýà'J¡ƒ.­À6¬™ÛÿOEªËÉ/÷/nè|çHcn"Þ°ªbaª¢ Ćg¦Ôu?”ç"8ËœÍ×mmFÉ­ls“»Ï1y¿´p^f[$à©8©kJãý¬h” ÌZÞñÿAæ…9âøçДبˆåçLÇ·i6œ£:oz‰]ªú]Pêßd•Jyýý"ú\†bB .R’œzá–Tœ™»SˆC ¬=¦ÊQ Ûj)>-žú˜¢´Ð c‹§mF8]î~óÄþn¶±"zý“¬S5§±FMy¦ (¦“ǹ¢˜ìS¥nhR¤ÅÐ`Êö›;”{]_$Ò-ë<Î5†;9Ñ[Ò×’ Ø“¨ÕêéºêðŸ“d´hôÊF¼å_ÚÀÑZ3îQøRŠîµÈL‰é¨».ê£Â¦‘¦uTkªH—|¬¤½£wA»hж’’¼d/›€Õlyú”°ì>§&&FÃ~ï5^þžÇvÿ¢%/ÔÞÐqÚ 1—dR˜üé1û%|VŽÖ˜ŸÜ»ÂñâMƒ$\³®~¬#£eýzºg~¢áCÂ%ä²,nF 5àG^¢h™QßõÚh…kòèi¹g–À…P؇yËÎ0|ÑnDY QöiŸ qõ™Â³}Û›fe3aä âö­Cœ ¦O©•(§:Ù”°æ &äЯû0ot]ëìC7g³Êï8D}Ý/™.%œW1ŽCC7¹:ô_µ!{ðõ$ð˜¹)Ðà¸À;MT¼iÇ,jÇ@].¡ç˜ýÚ×€ËèÔ_¯tÀp0ÚmÀ¢9×@œ‘S¨“—#æêœòæ%T𢅮âçØÐ—SÀ{:áTaašÓ—¹R†æé‰of‚[—ѹbo2¬H¯°þ^ᇶ ‹~K¦+r7äÓ`ß3RVõj×äJæ—q /#sxUy:Íš)ØõàÙ¹ñWBp* Ä—FƒLUú 4ù·3XD=_ñ¯©ÞN'½iËX…Gc·l­šYá èØ-µêOu‹c¡”§Ú“´ÏUXxøS_¿Þzž°ŠÅÁÇŒóÉ»—^žñå ¡—Zîb™©?”jêÒ7Í…TÊ[Oáu 3ÞC¶(xì󔸒 ­ÌnÚÄþý&5öd¬)„³9Mì¢Ø4‰äþE|.Ké¸[­š1ûÖ_[æåÐ’”ùµ®–CÏߪœÉ`KϘB¢íij8Wh¨Ý²ê™|˜1yÀGU_.a7Ñ–š&yˆËW>—H¤è¼#ç^ñð+<5 _k_1"¥2‡µ]?“5ËéÍù÷\÷Dè±¾PƱâȦգSýVòbÏh¸0#ãlŠN·µ£ßšXí °äìþX}ïGq`6ýõýëGpJá—ãP_¸ˆ%çl†ývF ¨QWxÑ”lðP0Ö“ÏÃ3‚ú`~ƒ}ÞéæÉæaCÄ’#2íÕì)\–܇+Øqd»·5S¸M9›!Ŭsv†oG8qù¹+öŒÈÞíMT”bÛW¨Ún£ŽzÿO‘q—%‡…~«‰EXT‹ÅžÒò5:Ô ö¦þ±ÐË•ÛÉi¯ð0“ÜEþC V”àE|\> èð—å±ÀÖ‹«Åº¼g“ÅñàaÇ‹åËb~KbÓÉ¡FËÅg…~PáLú01…]­#o·ÞNìy¿ÇÂSˆ3õ(&¸G[³É:°Âßà g|­òμï"í”Ðë)­]ø¢vfÊi çþ4“¶Z¦Xot6B€Û‡/9ŠÃu®¤¹Ûì—‘ke è Lå'Ö÷Áî—'7!þVÈŸT“>pp%µQà°'©J6|é£ÃÐ+yP!ñœÒéõ’ݽ͚ßLTõ@!„vð¬ïÌ Žwô`yôµ‰ûVðÄfÃéÑéŒìØ;~b7ñȼ±/@“£<Š÷ ¶ë9ƒÔzoMÈ"ðŸk{õ‚h¸D t"ãÆwª{Ɖ¬£k±‰Éz@sg:‘M-ó¯ˆPÏIöóˆZ%÷›a½ÏÖ.ƒüî °.bô:{䤓–}}BL·À‘Dª‡­ (SüÍ%R<ÎQ×R”ßñæM¡8 tIÕC¼-Ì —ÉHâÃ[·üñ ZÚÏ)?Ï=mü>…ƒPÿš?VÞ?ûñbJý8ªg¼–dgr†¡(“‰Õûµ)¹þ ]ÿ¬¾^ƒb ˆcQ*αî5§fàJÔ—;:¯Ðÿ5Æj¹]$›rÙõ§í飄/ó;uáDÑÃíÈ~@دîˆ&2rŽ_‰­Žþciõ‚+UÃù=ÃóÙößÖÍLLÛ¡¯‹vØƤV–áý_ø>e°¤ß—†W¡]ìÌ&Ó¹ ±§Ó& a¢¿:ßçÞÿ"ôÜö:X¦;RÂw8êaP:w°ŽŒô_Ï@.5t¬úäVH!t9±ÌLpÒ‚\–çhîì’1ÆX@Â1o'V@™1Ryôxe¯ûbp0«"Úª’ExÉ9Qw¢ sù˜Þ©´¡=·«'‰sÐ[Š)A }q«aÈ ÝöFZD&òT¶¬gì DÁó„P=­)»¥û‹‰ÆŠ.á´‡?íð˜ë¶0S8:“ì;OcjC  7ÐFøˆ{%¾TL-J\Ð&§ÚÕ`:ÌQqüêÙ¡R ädûF–*12©ZDtùM›°ºÍ`// :ÝøB§ZÞ¹#T> ´ƒ‹ö\Ó!±¹Û‹ÝÑ÷”3³Èw…ÿšr5”éþ„`‘B³Â¹ó> ŒøÔºTDw½o‚ÛiÓõnD»FuV\tSZ˾˜¿¤ÑɃKl!±;LþF9Ñšò­à>ökœy1Ô$z@·9b#‹V¼]bwËp¼rѤœvUÍÈ|ÓèØbHóe†á/Óæà+º‚òLÚá^Ë\M:Ò³lÈ, ù/ððª;ãäáùÙ´|áõÚåË$cŠÕöÒ–&쬀ðéðÑÑÐèF-™Yg©d¾z¼ëóT>ö1mq&&]`e¶qüU‰§G¯ºy‰áÄ®Z›·‹+/Ý&ÙìjPƒ³aƒ‰é‡·Otu2¶+7•qu˜Y÷}ž™°¨‰½’5y³ó{­ädv[‰™Òfï>VFMÜà4쪆ÄrPÓ>¾WKÇÀ¯d°xõ{íבo©£¢‰R{…àÎI60¼ê‘ï~èªÝ7êüï 7êÉõZBøíê‹Äk!ŸÞHìÊ;-ÂmAöн<1(,üÓ&íè^Õ}F°„-•:ïq£÷?#}÷¹(é’Éõúëˆ kebªò¦Ï½fŒ\—Šà*TÚ†1K ¹a‚ñˆ)¬ÇK'½ûínFí{„<ÀÏo<Â_йpÔ½ÉIG•R™ =MÚÄ”ˆ=‘³VRjŒù´Ce¹¬™lú¼û.º1±ÑîÐÁÛ–gÙÜÝ3<§ÒQfHú÷‰Ìjšàa@Õ¾´NßÊ kLDFr¥®”ŽÆˆÿ ¨Uö–‘uAß–2;Ì0î•Gû 1GÛ¼†ï.ÖˆÒª3Þ¨\òä ïiÒ~ž-Ö¶K¢”$§‘£¥³ž¤“[PU$¹ï}t6XcCÙÙÊåÎ;ÿ½"Ycésëå™â·dzšD­_g¥Ê,ð¿)TEßµ/žWƒm0å½?ïåïeFÀsáiüÆ?4Nï¯6 LFÇ­Qõ±N\¯—©ŒŒó”Dà6;F½ù+>Ð4Í'Æ)=Ðe@Óü†.£8Gè ðÀqç³¥ÃìzŠº´­Oøj£3ªÏ*u¥g:"®¦™ªMcÝφ?O§¬ Žâ‰ÛÜ9\¥Àúê1F0^µð¦K—7fÔXS«qi™öÁ›óÇh†0Dš+NnìéÍöe ;¦-NÃ|Úíy/ŽA‰E} YP>´g*ŒÅ}BðVªÇÄ:í@•Z>z/Òg˜vlWÃ]¶æÓMkÅŠ-ë†^(BCײ/n«¥u´Úºvý$]bföjçѼ Y$ÝJæ LŽHÁ'¨ #'ƒ'_}bÅnø´K¤²µ‡ZQYÂw^ÑZŠàèÙ…äã¥w`kÍ ºuzöé®»Ð\9_jÄò‡˜˜Wë9 (màWz®_–¶Ä…†Àü!VŽñø(éüèàz))8Ñiü U†õËa|"0L@†€U´aD¯QÕ ' žÞ¼/k™×mVqöïèR7ÏÕ爽Õo&ÃG*ŒŒÚË?jóï¼ ?§…•Ôw…VŽ[_yÓ ©×›©°¯ÓáÈôØjøÖôšûüÀ¹Æ6ùÕŒ½ Ks~^õIBÌY¾& RãZ°R½0 džn¶J ø^9óż…ˆj89kEfü"”w5Úto`Ì\{Ù$,f €o}1r¾¼Éù~kµŠâ%±˜Îધ[2cWh¢_|t«Ú€ÞÔò Ô²Y¿t…ÒpO$ug1ì+ŠêXÌ ùìã_ n›™EνŽäY°Øš>F™‰q\´" ¶8&B?ÏçsüB5Œ2ëÜ3œ“™ZêŠw‚¹$`H¥.»Í½×QžZ«î9s¹Nüž3S/r6, I˜bUŒ·ÂïÊÅ:9òmuŒûÓ(Q¥ó* Ô8S*ôÇdÎï’F¨í>@%~ &$û x£ë)ýE—G4PÙ7ÈI[7l`vk‰é›¹Ùê½» ù(…ŽˆÁ ²þOT*øhÝ_SS¬(¡Æñ’+P_ZQÊELuw÷|«9GQ‹°³NðU•©+Ä^%UOm}óe]-ö jªQ:¹ˆñÁ!siÝ7Jqj¾)e(”0ï7H{ZwÉéé"žûñäÒs±˜r¸ÚßkEø£’¶ ɃWuÛà´WŠLŒÞBmBpà̓+]D»tx¥ñP»P†ç”J *ΆjóL¨Žü°Vœ)ÿ*8¥ËÒª}ZU?£BBÞN/·8 *ò¹}Ÿ · ÓS£ØË– ðÀÒÊfªbO¡·Æ’Qá·Ž9°«ÞžwgÚ6’MiWûˆ/kcVðxÌÞéæq¶Ó£@ňL„’¤r@ãIu0äŽÉ7°T»fr¢Š‡Gðê¸*ЩuzX¨DÔò³V) ŸH2&Ï Þ—È:=EB¤åGh¼”èˆøÕ’Q½åµYϯ2ôÊrC§€d'X×ìY½_ÏË¡(zϰyÆ‘GwO(AS¹"öùsV¦£í'ÙkÂà½Zxó¡o¾IK(T2îc4Ç1(@Gî#)°‹ŒÂÐÔß³ àÏ &v‚®:‰l‡Þ@ïûûjú¦ …þ>›½º„OÇ&WPZmÉ™Ûàjƒµ-î³Ç|x ^O#£)¡üÐøßµìHÒÚq¿¤òˆt¼Sl'Ôt¹ã…bÔô€bwäiðH±­ƒ”«î–FAŽ{$ÅÑ›h^vËäBÌYJ*÷¾ñWûœ½²µ›+¡I Á,þ¢Ê@ñf¤ª!2±¤ªµ,VçUïØÀòªåO’#0WB ,ÈQ'‘æž5NTÏ=ÎÊúI)ºÂÅãÛ¹N‹pÏÌ‚§Ö0>² ï‰ Oß1÷–äÅí^Ü3?!£Šmü¡x„}ötn“LÞK9¿HuÈ­Ë ÜæÆxôË ·ÈD0ØçŸþ‰j`Up²Wg .Ìèqö3Šú‡Š'2͆¥šP‘íÁ¢¥hMƒj²ª¼¦Bƒ}ÈŽ lۛŤª§¤Ÿû .¬ûMãòñ 9¿è0R©ïÈüÃiæo("/LGÅóØ„œ¶ãØír9þ ƒÈdd¼ÏZ|t~ªØÕ¤’M߸–HÃmÌõù)ÑÂjÓ-_kuâë‘ëóÍ;œ1‹Ÿ·U&-!£ƒèjH–^(¿ Ý5>›ÔQeyR†H–`DÐõ°®¢EïÛ¡—H똬ÔeR<èLc*†dHšCï˜g´ÚœVŽc 5;#™…~E¨l[~åJí¸çß]ûý…ë’¸vù˜m°3#ᆢÆ&D–a›Ê-§òYü^Bw]Á3M—5´"-:ã0pÐËÏ—,=­Y‚ƒôÄôIÇ8ÝÄÁ VÎ-…7OíÁÄßæ:*üåy÷äœ" W»QÕ?Äh :êEgýÝ6S},­yƒ§tÄ+`ûòå @µ¨w¶·üwS¶ iÈùEÏ¢«2«@¯I8©ô‘§…Š»] ÛWZÇà¤ê qì·‰“8_øÖV£¾¬vøùIömKà*¡‘U>´7¾ç˜x«M-°@p!ùhr8]7YÓË7¥ N§ƒ-@QSÙ\–ô²Cf¼<|Mk}ÔÈ~ÆpÄÏVAxuÜæG¾¤^9¬+àKUˆ÷ì„7[ jsÖþ‡eTÉaþ àÔU|¿49è”yØð¦¹µPcîJ:ÓÃîdFÃK`Ä/ª‘ZÀgƒ½°épçfÃ6¢RvÎ P½þ†×kíá»s¿œIçtöœ«µÆÎL÷³‡6ïäý79KД»þ×€”j¥nCj1_\bæ•®ªÞ—:/9Ç÷Ò,¬j¥>£’ÖÓÖ¨hùÐyuF~‚±£ÒiÙÊžÏ%ƒ%‰°6Áa³¨™’Ó#gy'§“— ?Tõ˜ã×€LKGÇÆv[ÃÂôdhšjyZ†C´,¦³yóÕåFæõžx“È”_Üæ½Š8;ŒP>O)o±c·}CD´H0šM†Šã·'kõþ«‰L:´ «â²¢?¤w£ìI:áÆ³¬Æsó£”â×S,KJ½ÌûËû|ßîvv¢h #ÛÀF C@.¾ðI4jJ·h§ºš9ð¶ñÇ„Ç"UãíÇ«q­÷ØàjÏÂ7ôÊkhU¨›¡~É:¬£&Î?*oN¯s†»ÓgØW!Ý^+ü!&Ì¥­DUªmZÇkãÀ4í¯v欿ãTîô£2½bB”‚¶iô‹V8ìÝ H²àéí"ô†ßö· kqúÕ ‘Ã.–ÚØwžQ‘D·€ à<óþ7‹×3‰è>Xõ¹¹òZŒ0ˆ óĦ/IžÝ?í£-Í“ßÆ8²¤E³Æv,¶À]éæB9lªò¼ 2Ë‘¤ÏÀhî=£1â TÏŠí俺}Go®–Ñ™îàžz,ï Ï9ã¡•XsÛáË\˜æÃݬúÑwešÂ¿AÕùq0ß(¸Ù|–)œóèqœlù1›z{ÿ]Œ…¦ÌY0_ÍêbÒ’2ûè¼L7ó•/¢vGþ4VT›¶i8‡Ÿ¡FAÑ0hÔ€pðF4,Ê¥ñTgýG×ïù| ÏÉÍ >—b3ÇÜÂ=Y{Ò:ë1{+°pñ¶}[e`AäCÜDqæ¸éö[2²àO‹3‚Wêà%ÔƒRˆÂ®¼^çŒ4¨Õ@ ‡ UôÜÅ(üíú=Cÿ,_\èÃ}†Ùn<’Gbãf¨9µ Ä|ñVù’ ´øž ƒib5„:pr÷=¾k<™¡ñm{莼è¥gs†$¸NþƒÖˆ]OÐFõÎÄ-æ˜f­Õ« :c“°^#À‡ÔÚ)×HƒwC•v`I´óJB,ž?õû‘ÎíÓÏÕç×Áůg:ä$—›‰È°‘”Q¹õƒ±UäGÐ ÏŠ¿§•Ämì;-çKDgÛñ‡†¥>§·ô ‰—ýølaÐûÞ'3Eí˜eÀßZB|-×oŠ„5|(Xø$šOL—M{ðÀZê•ÔûÇ7#nAòýTr¶L߯[òr2]–*b×’]®Æ(/Ó0˜¾"î]*¹µfz…â3y}+ ¯WýÜÉX¸Ë# Oõ†Ôú¹æËàcÌpå¬áìåûhWÇï,ÆÚùˆŽÅEùgÞ2Ôî± õëIûd[õú†lúN$¯˰·I ±¯CWm›%¶¾"˜ç+ò |¹‚ÖW}³zy?›Ïd¬ÜÁ)òú×+*ÀèìM’\§ESÑMNÈÒúuO4b‰M„§êa.ÆÓOí`ñt±Q™÷/"=yÒôÞŠ¶s®C‹ëN/,< Ï9ËXhŽB¤÷¿mOx0÷Œ¢$ýxsd]*]­«^]HŽô[‹Ne —Ÿ> endobj 645 0 obj << /Length1 2053 /Length2 14049 /Length3 0 /Length 15289 /Filter /FlateDecode >> stream xÚ÷P\ÛÖ ã$8oÜÝ‚;'hÁiw×àînÁÝÝÝÝ=¸»‡Ç9÷Ü“Üïÿ«Þ«®êÞcú˜kε«É‰”è… @z@q¥=37@DVø 3 €‰‰•‰‰žœ\ÙÄÎø_9<¹*ÐÆÖdÉý‡…ˆ P×îM&ªk÷f( ²HÙ›˜YÌÜÌœÜLL&&®ÿ‚l¸¢º&Y€Èh O.²r¶112¶{ËóßG•>5€™‹‹“îow€ÐÆD_× «kg ´x˨¯kPé›íœÿ'¯±7#£££#ƒ®…-ÈÆˆŸšàhbg PÚm€€¿(ät-€ÿPc€'(›ØþG¡2´sÔµÞæ&ú@KÛ7{K  à-;@IR o´ü±Ì èÿ4ÀÌÀüo¸¼ÿ dbù·³®¾>ÈÂJ×ÒÙÄÒ`hbÈ‹Ë0Ø9ÙÑt- þ2Ô5·½ùë:蚘ëê½ü]º.@\è3@÷á?ülõmL¬ìllMÌÿâÈøW˜·6‹Yˆ€,,€–v¶ðÕ'jbÔë»3ã?‡kf r´tý/24±40ü‹†½£Š¥‰µ=PRô›7üo™ÐÀÎÄÄÄÉÁZ€NúÆŒ%Pv¶þ­dþKüÆÁÝÕ d0|£t71¾ýÀ»Úê:v6ö@w×?ÿ‹à™™&úv= ‘‰%üïèob áðÛùÛ˜84˜ÞÆÀô×çß'Í· 3Yš;ÿ6ÿûˆ…åU¥¤Eiÿ¡ü¯RXäp¥ggг°3˜™Y¹œìL÷ÿóoþËþo©‚®É?Õ1ýŽ(iipý‡Ä[÷þKÄáŸÉ úgm¨ÿ›Aô6Ï@ÕïñÿÆÄΤÿöÅüÿy þvùÿ7ûEùÿÿ[‘¸½¹ùßzªÿüÿèu-LÌÿ±x›g{»·Ý½mˆåÿ5Uþg¡…AæÿW'i§û¶!B–Fæÿ¶ÑÄVÜÄ h `b§oüŸ!úï)¼77±*€lMþºpôÌLLÿG÷¶súfo—ŠíÛYý­¾­Ôÿ¦³Ôüµ{,ì]]gx¦·cag¸2¿-©ÐéïÙ02X‚ìÞ\oä܆ ø¿N”ƒÀ(ô—è?ˆãm¸~#N£ÈoÄ`ûq²%£·(Ò¿Ñ[™ßè-ŠìoôÀ(÷/úÈ`TøXŒŠ¿Ñ[¥ßˆ À¨ü/âz‹©û½ÅÔûÞêÔÿýÕSFƒ? 3€ø|Kiøþ…Lþ…o‹ô~›³ÿ¥ÙÛüáÿfbô|«Òø_ÈöÖcg+ã·›õ·Å›ÌäøÖ*Ó?à/³?à1ó?à3‹ßùÙ‘ß.FÐïÜo¶o¯£?Ôoµ[ýV¿åµzÛ>Эa~+þjÌo•Úþß<ì~wâ-™± ðÞ¼UcçúÃá‹ýð‹Ãð­>Ç?ÿæíô| ïü7üŸa×··±y{ü}½mÂñßo Ð ¨¿8Òçñ3­òk¹¯Âs¤ßã›&ßQK¤¦w]´iµ|G]žê³ns+7Ø…²²-Fu#¸DôâzÔXØó¹ùÉíY;Jqr§~a«o<÷H¨º—à>½²à®Û‹µ›ª·d#x»y¦µýÇ÷ Ùè÷Ž=NÕ½EË#s;ŸwË9¤ž‹¦èÃTB¿yçÏgé¥Í~ ±£'€£A;wBž¹¹FË%’Š¢…w?cÍsUß` ˜uY-Qf±íÀ!ÃQÿ@yƒ62Iá*¼/…=ïZð#B* ä‡!Ö\=+²®5[%qû"oÑðøæð‡mo‘"äíÉ€ýÏ[äƒæJmÐ2«9ó§^˜µsàm?·í½`¹„”Î¤Úø ô™Ù(°&uG›úÝP À´íîÇÏs,àd÷õryLQÖD¿z F-°èeÙitºê:!´ApÞ_¸KXÂ¥k\+=áWžÃ$Õb6&ÎàÑ9IWè+C{5ãÇ+ ›„6©\—jwyÿÚ-—~¤ï+°¤Å»û ˆ±1o­¼cï·`P¤œ O6å–ê´„–~ &eQʮЈ=êMÖC)‘÷ùUq–èêæÆeSâ6]çß)pÕLN}G80(6ˆv›”,š8õÿ¤åø]¹¬xH**zÆœV̪“ÓÄ02qÕ.Å€Å1_6CÀ›¨Œ#;xLRËïgó §DΧ3=qË—4…¿^Ý´óÖ8{°–6Qå—cùëÅ6üs YäÏo›jr "yTªSßÎävwñ3[»XQßCÏ \šk£ØvÊ(Ôß!´…;*9lεëm ŽvëpÙX…÷Ý*l DVÈÙÛÌQËðÙ†ÏúL ˆŽ-f5u*Ì„h廨o ‚îè˜ÿI_0æ¢B3ºLÈZ²çq»ý)ÏÛ×eç37Äì l3Ñû¹ÍQ†ØIL}§¦"¬‡ E¸TÉ>h¼ê¼Á ÉìÒË3ÉÕàÓ´.Ϩ­YLàÔž6_Kb‚¹çË1õ³Á±„‘ ³8%Ug½_ çv2Õ^S5‘jS¹z ÕÕS,Üô±A~•‘Þƒ>’ß,äÀ<,“bwNo3q˜¾á¼Ê ¦Ø@-ÌAŵxË÷¼zÀ-­Žž„§”v ƒCò€ûQ Q.íy'tVú"=3æé«%øŠ&ö¿à|÷zTì£ú†\à×4†ž Õ³8ÕžüLfuŽCæ\’é‹È“,ËOv›2™ˆ+îœ?«s7JÛF=6~ég¢ÍËê¼+ØB'6äÒæW8,w‡Ï-¼-å‡^ØMD«K„Ýc‹i!øè„P£•úpý€c†ŠƒÈËO÷É£L«x\…¿Üm̓Š ;^"ƒCÛv|&&å¾%Ò"Ùd÷a,̦2®ðøº—_½øtdM`<|ôã–‚:¸Å~$ ©PTáz2¹à;G^Tì×>c±í/T}Αr÷‰°T\¸ù{Øìs¼Ùk_ØŠ ›Ùщ#οˆ¤ÀTˆJ݆·Õ£|[˜Ñü’…ñ¡)ž°¦,åyÑœ¦afû+~-=?¾Õ çm\ƒLÓSMÿ‚zz¿ˆGu¿ùÍÃMI0Z³Asî(7£÷#Àˆ˜£¾uÅ=,ëýç1ÚsX.VUW@[Üç0ó¹#‰²Úº-$N0b"pgkÚÍÝâ ¤)©š8O¡#h˜w»w¦Œ6³K©¾ê (Ôl†s´òV_´¿ÛyØã5"ÕÉx3EÖ[‰.žØ„ÐcõÚ=?=°šˆ¹ûùÔj çY»ÜÅ)bÞ“L?Cjˆe²¹¢û÷X¹(2ª=¼§×ì] «- ½[caS4¼¤liðÚÓ°N©Ï‡cH›a²ÇWɾ#8n¥(ÚY¦š|çHOBËVM¶–Ç?Õ˜›ÈGZ”¦Qƒh *·ƒÒ¤—jíGÐ#Ë Ì¹R7ˆ8/4Œ¬ ‰èáw’;)Ì^³Úް…ü‘Ö(!ãµ(ŸgÌ•1 »ž>Ê,HÃí[’â9—¢ýf?F„/…óÄña¨Ë =|Λ‹F #:Õ©ÑzØ7æptBÖçå[+spOAVÉ[‡›¢ v³šO86”.e&ö. ËQ²|ÈíÝö óÔF¥ Ð$H¯ýfrNŒù 5j’:d=œh!®¶f~w¦Qzï~d"¡Êá¨[޽IfQàÀ‹â¢þOKfvIîPÑ:ù–x™†sÐ^F¾eŒOÏsÔãôY{UêÝ‹ˆ¤/ûE4‚2¢‹m~͉»½ŒN¼ì‚WQ gºtÛ4äéÝ^óåÏ€ÕÎò€×ËËÈ\·LjÂ.Ñ||Ö¬ÅÝ8i²8ŒœýwI-:VÏªäø©UÛî4QìæiÅ× ˜¼.e¤:¯ýJØb–ã(_rïggÑo²5¨J\ŸÎ?‡µÌ¦Ù^Käk=cgŒ#Ý^tÀÔðÿ:^C¹‡%ýS)O ¿ÆÃ²1©T÷ËÝGŠN]¤>²_ «qZvŒjhÞ Îãíží=òá®JØ>K»R/ò‚ù«‰¶ð7ƒp‡Kê)V‹q¸&~ô@dA…h™W½·’[R+hŽvé°÷2D _†×]ôÞÿÈPПºsõ>¡&Ç–Y6”gA^-óÞÚPÉÍÔ¨D–Ó×_[m<3B/í‹C•Í̱ø›(7ª>L#®qMúÐÇR?´?ÙWÂwØÓb˜×Üüd«=hp)Ô—± ŒÁºW–‚Ñà†.qÃ}öß P ’»‘ŤiBªƒ69;•1¼2ŸaÌ@ȉ¡ŒhëŽg® m ÚiÞ¸ø|kÅN.Y‹UdL²aË=Ú?Â’},ˆÇšK™wô8²S†k^zÖ¨w(ŒZ €‡ÏÏ×ý°)PˆÔõD“‰¡¤‡Äë…×ÇD- Y¹c•pÏSÇÙ£L^ÊŠ°ì Ð⇈˜Êœ£Ì¤Oi€òZóZ¿os”•WŽ,µ•JþŒ×TóØéë ûîÉ»Uy­­þš¥L'ªLÎv}*üéÙ³\ØwÉ8ôr™ žnóŠ?c7÷ t °Dò)m¼üý r& ¡˜eL¥@e”“Rª’ªî¬™ ?eò²TŸYAr5róŽÁ<óó ¸é 8¹iFB <ói³‹Ë`Y¥š×š,­…t½_c_¿!É #«GNO9ÏÓm®]³ xåÅäˆÍ¯FòšKqVœg#”¼Œ¼µŠlY÷…å‚Ö Q³c°o6öüëõëD*ÐaÒ6 x¶îgðæœ)ö»‚µj—Wk¡o`ŠSÆdÔ!Ü.rJR2«Îø¦Zé=±ýѵà‘}ø„ÔSÊÒêB˜ LÐ>0R XTü\[Ýyk[Z¯$p¾ÐmÔ­_Ø÷ðøŒ!å¦|tåPª ÉØ¡·æ`˜WŒö¼Ø8ª9½?ÝFaÿºª•»~é4ÍÞ’g#(hÅXlÓ[}ÝÉm ·Ë¿t¾Ü­Þ¹¹ 8s½rü¬A«,mÝOÛ¸)ˆp¶maI·n*k)f(‰hP (AP®UZóõ}ùÇ®ä{9삜×4i”`n<Íž\aâ¢^l9/)Ìà³=Êy!†[³W^…®2F½ìmr}Åï€MËb(ßíËä,. ŒÁD+rÈöÚÊi‡ÉÌuˆD§4ÐÀ\9-Š|{I·›?Ú×9¦ÂZnðHl%ØóÒâ.Ž2Çy±ù'O‚‰óË#>ñˆnÞ>¢LäI '& 0Ô턤uWWŸ°îë5"¿ˆ'‡û)ëÔßÕtŽjë’ y4{FêmïK«Í©dº\‚ßf‡ É¥dßÒI&€§&ïö Ìùëž÷J7õ·s: iÍ…3'=0 ]üïèw3Úä SÕ0ÑÕô›m"&Ðüƒ°C<»Té ¼À¿‘ñü(±ÃWVì ÇýØ)zìÙ0!“aûÕ5H´†” áÞWÔU·ð›)O=™eŠÁPå訴b<¥UÌ¢î4á튶*68óœÁû÷ÏCϺbbïWØHÚðj–¸Cszq’/4%íy™1²HÖ™Q–æ;BêñŽǡݺõó|ÝŠB(k7ïw](¢Ã¼MÝÍã‚G§¤ã÷5?ÂÏQ·¶¬ÐÁ ú€!RqJ÷žgÉíRg¿Jƒ¥¿Ðõ¾adg×õZ»?øm¸ÍÓZ4:¨nWÄJ¶ý#S)j¤‰˜ì¨Kò"Q Ïofg®8ã`ÂÍ'-“ew¾ð¦"¸ "µßg5œ¯9~`!mâvžháXËšgûôP‘7cfsá!é&žgq=s‘ìPT®G×¥‘ìTäã½9€òÕ_°>qÃ_»¾ƒò‘ˆu˜['OˆS$Âã ­önb›"©ÄO!Õ;Í`Ñ5¤¶âwsL^[4ÞöëÐË.×z?±+|+ðŽŠm¾Nžü¨’ ®È¨#¿šÄ1‚»ÀUùBa<ú#rA¾mïêqcFmŒ¥RkéÃ}$ø{‰ò“g€‰\æÔXñË‹³a«¶Ò+É"ÿƒ‘Î-®0‡ÄüËÀ‘páó€Á—ÓÈZŒ›ðÆ/bî`•©'þþ»@5´fíý sóÏ…è/0& ?ïhqÞêH\Ö™¤guÈ_«[räXkŸa´Ç>¬ú†t»¦Pˆ•†rg›ñƒð.’ñ… *ë%Ýòâà3Åkhÿðé*mú夢Ñ)k°wrô¹-éךaMìD­#÷ê*éð{ Í}Ù&žšzލ›ç--Ù®)ç' ƒÆü|â*rBé5«(ºämK«N,B5QZ7Û!5 ޲*gfX½b Ø/lÐÒyU¤=§œ“{¬³ô6X((Ql$–HcBñRW‹hx0q›D˜< à¢Ò³àÃ+ õ<9ŽzNW-GX¾ÄÏ~]jŒq]Cí}x b-ÌvgX"Øšð¬!²³ç´Zw ãwÆé½mÄ5Jž’2Ê ?°}Yœ}èáÐa‹fʪ¡¾kê•9Øð´n²]Wn5¹DDâ5ÈÿL­m´@i™8bͰ¦¢•'`A(¸õKš¿¦>JÑÄx ²EŠaO„G¦–Ñ3÷N–ÕÒ0ÇlðöïÖý‰ÕE“Óãθ»üvÐñÁ|›‘D8¨Ì*¶NÉÁn7î²WKUÈ¢h_w‡¼ìL³¼‘ž^SÎcî¬.IËʨ[ÓB&“⥤æ,oÒëP'G+ƒS…2M$È*PÂÛãîÁØ“•ùpxsúœBÑí= $Oçë®Û$ÑE¾=Q5†¬z)™œwþ” Ž(fäùõ⫺*„æJHžOÙ—LòxÙÀoŒÉ¢KiªÃ=ýñí ›¼±$?{ú}=9‹pWN'Îe®£–žW`@ä—Ű8šL´q‚jùp±Uy÷ÐéçJ~~l¯€bU5 ¥A€_Û‚Éžã¡ÃzÄÌoµ~¢{TjúdRë?L¢XÐÜh‡“ÒøU±ª±ï%ØßNA*þÑdûWJoL(¸Ÿã$,6‹>ß¼¾U8Ë 5ÅýŒÿ§p!l$‹Õ&¡ 6ÖÕÓ™Íeñ-¥èQPAà¨nÚÔK0WÖ# sýìJFŠŽdŽH o¬ü­”“Ât:éJ4²ù°³Ç &Cšl;‡îBÆél®Remþ“[÷ލD°üõ]UN‚t¹uþ>vÎØð×­ÛÉk=÷öW ûì æOuñÁd_eyª@›&GOº|Ë1À8ò´üñ‡\ ¡ÖÔî#ˆC§°ÊþC¾@N›•¼HUa ºÆ \Íp‘xN ×NC9Ý ï< ÃæîÚ-™åW`ØÌ£šÅä/â¬Ï&!>©Â3‰v±[@Ÿ>¾ÜY™[ÁŠ+ÓšÒؤµàF%?V*4µ¬W³ñ »ã4{ð‚2rRâI~EÌl>3 ~{®zǪx¾–6MRÛ=,>Û|àâÆÙÆõÑ ú’Â!"ë”*ö*Éð˜‚)6?ÚÜ ©(›Jß¶õàÛvåiײ[ù¸F¤³ý 9Ð,Ì8M=½y†áEa»Df‚£u’¨0Mˆr¦Øóf·8ÂÜN¹‹¦Û; †©f;¹”‰÷×ÎC÷Nˆ±oS{E ×ÃBãµ¥…ó#´¾9Ïã§"ÿð#ƒ}÷TxA W üSçFÌ&aìž¶lÃñ“‹‹·‹³ÝŒª>”ãÝîW”c†ËëîÙ‰‚¼wÒ{¾‹ÞÑzÉæEªR—ðï»›¤ŠÉ=äOUWÇ•bŒg°<ª/~=âòÑû) ÷™£ò)¥;v ”î²}`¶rõ%ª‹—•èGªä%ÉÌ–êO=[²íµ†ž•2— ätj†µWî¶C¸1yf‚ñ˧1´ø|Ï6JÖ¤­·MR+ä»=©1X üN}>¿n´›#Êkª6Z‰Zñ¼MgÃ<î•.bI‡÷IåSkWý>ÖYx­ ¨³®jý¢Ëé2H«@ÀϤ‘·GŽ&›x£“Í.V‹ûNmu ¢«7pƒaÃ’PÚ© i%8t‡dÑ,JfÝ»½tr/±W¨èÞ,0·+qøoÌ«˜ñÐwÊ[V-ûJƒ³öU±¹³õ—f’`UOëB£PG°Á–Ø||·³w=> ½(Mp,öP|â'G®cI‹X½ýh2k…^€tØP/Ö`ûù§Ñ6‘³»b¿¯ØÑŒ®HÉ//íµÇƒŒs°óàE¦B}E|(þ” B³ÌïõL çk.î²µ5ãìtð80ï(ÕVN‚õ°{Ž€²ƒÛ/M¤\z8—5»è‡ Cq_2‹/È~up‘ÀI8Ûé9àŪHàñíß@‹ áhVÍ= Ý söÞ“,ÏK¤…ò3u.~V¶Ïd°Ö“ oeLøBL›< ˆÌWaÔb8#¹ú:ÉPAíæG¦Ž(à öªOG):Ýÿ‰ ½Lœs\¤¢c®Õîn‹4âÎ'ZW˜î O2ú}’Бá”…´%£hõRÜwì{ÿ¶F{ >ZªMa˜Z{°¦96›´K÷¦{‹ú\"w÷½f§#‘Wˆ’Eù¶±SñôŒìNŽÛaKØ}¬Ìs¬Æ¢jþsZ0U+.T èH¸Ñ6êIÚ#â M ?×kçRŠåwdª¿µ“¥Ú^áõŠ{E­¿ÃÅ©m>ÄÒ ˆx„ñf KãÉNqÁ„‚1Ä XÏÜ& Hö›:­ŸWâÆÎä¤ )¯Ÿ+ª{Pí¸ÅìKÀsë2åté;šw»-iIè¹üd#Ï%5ŠÐNÍ+‹ÄúZ›#b¹]ŸßAJk&±¢å6|[ë}–ÃwÞi¡:íËà#KTðµ,›—µêÐJÞ€¯5ºàu{Ô`­ŸÂÈpϲñs±µuz¦£»Ã‰ÛŒ{fïäøë^òíê iG ^ ¢½¯Ø¤9›y^ßµ#ƒ¨C޲ÝÌ#ï–åóOaöcª7Ófó阗\òžÝ”l¥]4.ÙœmizÆvþèôéùªz$õ¾°Ü%mÕùžæÊãTòýQ„¿S*½·âÛ‚¡î%×XB¬ÔY vªÄ@‚ÆØœôõDÓ¼ :HeBÌ~& ¹™'…ëqÄ/˜–éŸ-õØøÚpØâ>íRšÙ«¿ —†¥ Ëÿ‹Ÿn µ²Ç{Ù6èv\/˜78Òr f zœ­ì΄)ÕJ~˜K‚ºeµìá€A©!®öXLE Ëêcœ€ÚÏ@¯G5‡ µ€§=&ÔÉäüµí•žÅŠðö§¡Ò<ìžbõ„ÿµÂ½„¯³pàÿV\È€»3(yi†AÂ"R··p޶¸i×›Ñ`» Ü_<‹)NÄý•ÄMì ћό%ø´°PBAÄ9âXi{©r[Á&¸æö6vHÿõ£? 5â}fMõ•4C†ðóÄ IÝ0S–½éÀµ—æÈ d¯&ÛxBKbû÷>-ɇWH…èi{¬*߉ɜCì_y0Í*l ”àø—¡èÅõ‰6V¹~ˆÜá?ª×±˜ùÕ­ðy8AKú®Êã…Äöˆ%” ‘\¿´ÈΠù­F$+ôºBÔ½UÔÎ}áúœä ý¯Xâ¢x—ŸS#ƒI"XnÊ(n. 5b²qk9½¼!¹=Õ3–tàç”3ÅNœscu :âO¾Þe–õ±¸>ãä4Ãå« Úª’‡wƬkô»[Mä¬A •Q¾~ (L­©ôDÍÜ o±›ÿýUO]„8§àÚëÇP@*TÝ›gÄLm^dÇgê:‘^-÷Ÿ0êF;Üåáà u2¼^Ùöu]º¯¾ŸÃqà-Ëx*׬檞\ì÷4t#r;ÒЪ2H'«rh,}/2ã?6wû”¸GÚ °,Ûä \ž^J ù9ÖÀX­¼=€SÂKNCÍý¬&S@6h9âkûÕ s.goòÚ¥GQ6ÛöqǪ¢õ]Ô&ƒØCܬ.:¢*km†Ê|Œ”úúBà±£¿3Mn_Äݳ‘H=«9kº:¬¹8xNtM%ÆÝ{!Ü=Å1´*þ/YŸŽKE1®,%xDL'OäL# êÕ ÅàJL£5ðÔëÃõ”Va?;èÔÖ¨äŸÆ°lü,͹ý4íú¿#â’ÓíBKÜæÍ©³FÍö3ôЋ ĺKÿÄSàÃ…Þñ¦Ê»æwúóéDq(Beü ï(ÜÉ‘ŽöøL9›zAbiû ÄÜôUŽ… qŸM®X’ §WFHÿóI,X«WÆ2t,kâó õ -"‚´®31U‡=v*jþAö¸ëq°í‚äDè²jã×ò‹â1‹‰—»p¹p ]ÁrR9Îø¡nœúy3½GãÝNÒP)£Öé73С|VZ̯sBÑÙîN ëÔR«|ªƒ+—ÕÕ¼ÏÃQ¹ƒöª)£¡Ö¢XT_9¸;u]ß» ! §»®Õèõ¾ÃB¨qð<"hÍÚ˦oÊr;.¡:G^ø‚ÀT-ÁŠŒ3{Ü,.çx‹~.\ä†QWƒoƪX uÑÚ$WÉqŽZC;=^T‡¯¾Iù u] „â*³Jºñª[ŸÄ+g¡ž¥ûÈcû¬É<êι+Æo™Jàt¥…^Ñô³ÒZÆ{µ £`$<«”2”Ì"T®Ü`‡#Í =®¢5ÙÓNqô$ 3v“Ð%9Êì#<ÔÚuÝ_žÜˆƒ§Q@GŠAÔDPÉ%hqÞ+³ÎÏÿ éå´ÑÌž²½›1ª÷Sò9Fÿáüä-ðcÙ®œí] IA'ÇÃâ·#ËÒO ƒ‚9î]εÛ:ð6vt¡Me/ ÊBJïU–×i¾"@ê‡×§f51þw‘àñ¾ÇûI,©/±A{¬_ ÎòàûöúK±ž7švÞëm,†R¿Â4¡7:9íÑE«@$‘Τ[Ç0dZÍ»$ƒmŽ>mß¹•SK°í»@‡x˲–:Iž šœªfm°ðöFߟ&2´W^_¬µ¢àQ¢uÖhî(~|˜|×a/sÆ´FÞ°Þ0[­G’Ÿƒ"$Â'ïvq=¯{ŸèÒp‡²`#œ^iÆð%`fµéjY^«ÿ Õ—etéûžÅ¥\R¤2Ô˜¶9fVß×%ݱºŸÞÞÊV>©$å$Š'߬ Ђ5±ëé ˆb¯) –ˆ:š?,®€#-¦RyA÷øŠyѵßÌlƒAhóâì±åÖF}ðÅå èùñܦsé+³)7­ˆOµz1Éb^)qÆîÐÓÀs)c¨UÜØoúU¨Ýr…† rØrtVA3¹6'“UºT¨ª²ËöVžªEüGv“IÄ/ãóÖÜÃ]I€&ðÏ“cBNdއˆVòÖ„qð[½Èlå¸9³ºv ò|O{ÊúnbƒëðîXi¡E È„s8„ü9½Î’më‡ùê󪧰ô~î—å4‚‹lk*qb§…h.£,:<Ë‚À™UïzJ»gà„°»âx;sr0£P‘½$?=& Ð|îBæýÚ“Ù¾-V™Ç\%Óa¹uˆ¹C®.>J _·(9nù¹1|åÐ ÑÎlÖyuõney½mrgÈKC^U ß©-ßœ–fÜJçêÖÈ}È?.2@3pœlýë~™ºe›à‡ƒ ,QLsöŒ?Ÿ¶À2ó£~Ñá@c"^ÛR§}¨¸h5, ϡijíåÚw–:~Ë|“v®[j—D§9­/5Í>ymŽdeì*b8-ÓPð4K*ª„nZú´£i k?¥7V±iŒËN;VÛ…Ž.‰T!Ãçñý·`}—fÒŒ¡Òð ÏŒÓlUQiD©Šâ}á?÷œ²` Ï­ÞEP÷%‰×•9âòNòþz7ꆦ{h³ Ÿ9=)8î½5‘¶ÌCåÄÑšÒ’‡›Ù\øþwðÍŠ-2^Z—ÛßíØ„ÉèwäϿ㵢À´¤,\&Mo÷8÷2ÒHO&` ,=Þ.-Ýó3RãÛ°/\Ì1ìTÇ‹¶¦ŠÀ‡>tøh±g˜zQ,DrôýÏWë ¼Y_Â}—Ãᔨª^Óph<ú y¹xo{ìt¡Bó(Óæô„!$ÈÂÝî•72ÃqÙeCßù”äȪ•oÈ(ýCÜ/»pÈglõ&áãJÿ„†ÝŸx a‰<£â®ÛX¶5$ŠÍY² @ÄãÉì3ÞÏçüH-’H©æ©ÎÖχýaüä —Ž¢ÄÛ€z΃#?" )=zØO¶ýĸ t"2Ô£Nn¬I®ð`=É#ô`BËèÔ“×˧d/ááIÉg&¤‚ øá$éÛ ,® g3aƒ¿¦Têêà€Zm+cXÃÑ¢Ò‘§–áûJà Æ–æi¡°ùò2FMiTIEê$æf…x„}Iub͇ÕðËGò\“ø^ iCdžpç°V¼ÖT„Hó¤—r/µ: Óõ…(röº¤þh,{|ùQȳÑoÑA·3<[ŒÒ¡ù¨¸Ø˜þjIÓÝÑ:욦\‰ˆäµå’¾ì ¼ÿFçdkŠèi«ª ‚Á8@g2´>ÔÇyžn|Ro¡µnÆY pæÑ\ì7£;œ<`Æ9f:Ñ™M¶¡hu çH˜è(Ô”vˆ+±wÇPí~!‰ ÝV®¡Óçñ|°05éó­jo]“¿á»$Sn—˜Ì8åaYï¢O+8ž2E_]–F^'Õôe µX6>•dÌlFƲP?}Zin»^~¸Èf°j+2GSª!rB¡»¤†Ô¸ö‰I×3·â0¥ìª4xPfµÇE1*gpÁ0ÊÄdÐYîû”žD‰¤•j$4R´F28 à ?å·/Åpa؈Bbð{ûýíMÄ HA9É‚yKØé±Xê]Ï-*Òr€«ã\ ¥3¬–å«–›AðNð™á)*¿àS0ŸJ+·\ÑÜãPôDº QjTÚªJº+=»õâtv~©ë¥ÓXÖüz€ê‡@›ùéË4$N€oµá9ǘ26¨¯™ŽQhì—…¤7޼@ððýgª¨sµ9SŽYHüTJ^ÍÀì <„—0Ñ9»†K‡˜ü·}!ë!?üî¢(\î€6 øŠ%©dFa®ÅÖŒ~°V ùëñǺ3ÂO½ì•´»îÃNºÄ5*¦ëëóVC¬. {ñ;;F—>hÚúN-L.±Ó43ÓîÚÒžàJR²{FLß\âmc&:wñ‹*ÓšYý¹ú#¦=n]’ô›”»ûåV)·Sâ¯{|Òs.*t|üè!òøô?5 {›ìŸwÂf.H¨zF>6m/âž7G¡Ÿ#Ço8½úw–¼‹Ìà$ì¤ßZ¬SÄišgÿ4Ùæ»@ó…ÞØ‹xÍT?ˆÆØÏ† GÑŠ¾r Tì)äLs¢À§ð³ÕJEÈC{†b (¯FoÀG x'¦¥Â&þ)+ÏÝCŒ'þ©ùô£–ß> endobj 647 0 obj << /Length1 1676 /Length2 9728 /Length3 0 /Length 10803 /Filter /FlateDecode >> stream xÚweP\Ù- ¸;$¸»‡àî¬Fº¡iÜÝ%@€ww·à\ƒ»k‚%á1™¹3sï{?^uÕé³>ÝkïoíªCÿB]‹MÒ b”ƒ€al\ìœÂi)}m.N'';''7:=½6æüǃN¯ „º€ `áÅHCæ°'›Œ9ì)T(º:¸x\üÂ\œœnNN¡ÿB Âs7@… ]Ðé¥!NžP-ì©Ó^Œ–L.!!ÖßéIG di¨˜ÃlŽO-ÍZKæù_%Ema0'awwwvsGvÔæ+À³h]€P7 àÚUsGàßäØÑéÚ¶ —?]Zk˜»9x28€,`—§$W° xêÐRP¨9Á+ÿÀ øk{\ì\—û+ûB ðïdsKKˆ£“9ضXƒ€59ev˜Œ`¶ú#ÐÜÁò”oîfr0·x ø½xs€œ¤Àü‰ã_ ],¡ '˜ » Èá–”yÚhY°•4Äц¹ ÿ±>hù´óž±=âöþ[ƒÀVÖP±ruâЃœ] 2E=™Ðÿ±Ùa>NNN.Ðô°´åø£‰¶§ð·ó·ù‰‡¯·Ä `ýDè ²>ý¡{»˜»0¨+Ð×ûߎÿFè\\+% `´Ñÿ©þdZÿ‰Ÿ¦ òq> !€óßßo&Osf;xþþû 9 $eµÔäYþ&ý·[J âðfã°qóq¸¸x|¼ßÿ®ô÷ü‡ÿo«º9è¯õý«¢Øú“ÆÓþý‡ŠÛ_óÁø—|˜ÿÝAò4×@ã?20æäã´|zpý‹áwÊÿKTùÿÁÿ®IÎÕÁáwãBþ¯sGƒç_1O“í {R‰ äI+àÿ Õþ)n)ˆƒÕÿú`æOZ‘Û<Í;/;'ïŸv‹Èh¥‚YÚþ9Oÿ9ާ 0PâúãzÊâäüß“-íŸn—§Cûí>)ì¿ûÊ‚-!VH‘›`…š{¢?ÍÀâxs=iÖ èñ{Ìì`ì)ðÄÐ` ¢ÿq´üü©?L¿‘€ €Cõo$È àPÿñ8´þFBóÐSžÅ?HÀaù7âzlà¿ €ô/øTÈþ_ð©’ÿàS)ÇàÓØs€ÿŸ*CþyÐÁ§F.ÿ‚OLaÿ‚O•ÝÿÜO¥<ÃÿÚ^KW(ôé&ú­„§½ÿþ}í@KôÅ9ˆ¥Hˆ]MHÛm•$¹;ÛÎ87/fÿeÔ5ªÞ¶,©ÛžF´èÝOnô‚d×ÌnôÝ:ÞwÑc£½>§½éšÏûha¢Åº6dk‹-VŸ <±û#eWî]¥ÎNC3°• ÑY“æ ûµÄ41«óÅÎlƼèË¦Š›rÛ³g Çìã±ÑÏHy0BÚ%3Ú+¤ª%§g:è\.%ÆO’(åîÞáæÛì_*a…m¼'?<ÄtRºÎ8|•¶ßÃO¦d6˜¦ßî‘%yH` ºn d´pUW®´Ÿ¾ð0àIt¹ð^qT¾>Ç÷MLHÍŸKuOªÐÁ“Ã$Ù\Ò$JÇhu6 ÅüQMáR_Q7qpŸ”…Bÿc"Ä_mŠ&aû5yŠ.ŒJàW Eï/~OLÜiüHb·ël1 7ZC?‡«·dz¼öoÆJ6íó?û”\±ÓWÚ¶ë{En¤¬|ã9­ÅýáÝîoIN× Í ÅCJ)ŸÈrRgߦo 0ÙmÁMXf©cA’ zg:ÊÒ°/"‘`£4…NMä?©£úVitñ‡ÜÜ'•‰éè®ðŠ7‡g˜ŸÙ©ü1t ‡üDW]É‚tÞ’6öñçÕeâׂ©–s„šíz^¹¡eìò0ÜÞÞÄEU䢋‘Sï™Î‘ÚÛžñ£ÖƒtÒÃj#'BÒóœîÁµ~‘¢“„‹¦Î”ZíÆBW÷Ùù¹G}ì N3:9|ÏíédO ²üÌûÒp“àEÄÖN‰éSjïàøw™–-õl<-œ|¯àÝvÙ~9Yñð4Cç(Ckð…ëòñÓ…2°UÀûËÁíc^Wv 4¼Aí´ ›EÑ‹8TRè¥5¬¸–K¥.i=‰ú¶M‡8B°’ªö•3Ÿ!aäVDaHîLW 9h´º6]G˜à¥šIǼ"~…G§»Ð&—ZÁ*Û?5I?D1 ³¾wêg˜+ûvæý°¶YêÖzú…N¢êçé3I àL”vܶ³š7ò3üVaèq—ć5έ Å£è¦ÀdÜKVÅæ…pš¿*föw™<‚cÅN™}Ñ2¼œŠé<òCFL‡t˜Ïpj³­á&¡-¸õ ’)… ñÑ=Ö×DytRŒ4jHô"Qùò›!ÆÇ¥¼9tÓŒPW,ïÊ;¢KY”%úÏcaø¤ ÚÁä¯`Q„p̪÷†ëlÑïåD¶ ú^Ãõ Åðdìy„½ÀàЯ3²ži‰zô£`¨b)Ò—Bê’öç£Uv ¦I]W„´"Ûfoøzl~ÇLRR:$ÔóÀà "æåÞ–îá›#èëHBgEMæ¸o2¾'ÔEÊL–üަó«;ɶ[‰Ygt%åË•7œÿËÆŸ–äxúV»j›K3ýF¸žúmøKl£øN‰V«ÇEá FͺґÙeå#ÄGW“ÙqR%bµ‘‰{ râ߉sÐ?×?þÒbl\ÂÁ¿Ã3Z8ç±av#AÌ3qUÊ4éÏâ øâz šeþæ}ÜITœ_,ºº³–®ÊÍ‘ŒË.AÇ,ä&ËÐFwzžI¾$ä%ã%q;葼ÎgËcr¡Àæ[ŒésÜÜ÷r£ˆ‰Å/ÞϹ«7ü;ZŸ®Úh|/Y"=>Å¿ËeJ&Ÿñl`êuu®$)^ãÆUTñ0#4Ú«î56Ã)þÏOŸã—Öh¸ú á}G(õbn.¨¤ aɸê¡$n„.rºCÒЦê;u?>]çÀÄ?KwV§ "Üb²¢}v¢$µ|ÊàßUþì]ká!»ŒMú–®Bû Í:S#²Õœm/l4ÜíéýÜñ‹¶•…Ź ·d€ÃÝM@‰F þ)Z¶8sj¡YíŽleu5&èTp˜¸  :cG™NöÝ’A>u`ØRlD†Ì®}åîË©(Ò—RZ¿Þc—Ì(1©PÏXò$›ædñLØ“o8ê4°B”e_ h_Ñl¥¦úoâÍY{–áÐÒÊÈYhÑoÙœ›#žÏU¬Ôø/:í& 剤Ká´}—›ôÝ9± t{ ìvœŽ£F¿›åWðGOQ¹¹­µ©UÕ‰¢¢-Ýž6ÕqY(íTL!}ƒ<ŽK»±Ù¯JzÏ3 ÅMvIªç*.ØD#2ý¹}ys" ¹¸yŠ?ï͆u»àôîÊŒÎ臾)ÎñµûÊpž:¡^S2øÈ ŸÕ ÃýÙ Ž¹¨”ùa%Q!¥ogÐ"&nY®WèçÐhå¬|G Ý—~%çÐ¥îŒbÚ wÐꪋàÇŠ5:´%jƒïܪEîŠË¾¡ÃŸg5›”kÒjà­¿v&miD3{ï!Þö;˜>kI‚Ðåì7j0ô|9I¥ÿ‰~+fô»è•†”ËnHQR|f[œÁ³<¸+–wn»ÂXN.ž£…oæø˜‘VujdškÐàŠÏü= ¹·8©+ºMƒŽD‘68¤–Tè[òn—ƒå• _AÕ&D Qöˆ‘›¥û‘\\ÌDHàøq€ç™5\Ï©3®Ôþ¸º/#· ¼\{Í~ ΢)=q–Õ•yãÙ‰œ| áQ •5#3µå¤ Ž1 û«xÕ©&MËwŽ,ÅŠfMz)ý!ã²#*‰¬t1ÊŸô3²ýƒÑ°ýÝÄ­+ÒÖ”oõÔ²³Î€4Ä!ô!åe£IXÑÂÃò´hSõ¼Ï Y«2gCxB4ø|%Õ·ÂÅ*Uv”:ö‹¤Šåf%T'çéR©1üM½÷Nºt“×LCJ [«¥¨Âe}(ª\«êÈìýÖ¯âg¢†¿¹—œæõþ`x }å{.–ÏbýZëÀ¦«Žó…¤Éý q¯Mî ]ÂK5°É¡cÚÌt M™´cÊh¶dCïXM-æ<1°›çF¤ø5ì(ÐÂápàˆ—B_ޤ²‹f+¡¬¥†‹½~:ACÏäƒ {$%/•!jÁª>;È Š&Ñ2‡ %S=¢ì_.VG2pÞÜ&Fp¼Œ£7Ù‰}¥ ªQŽSšÕ# /½ÏûxÙÝ•ß6G")SñLü “ÞŸí[H„#Ÿ ë[_†-$ó4ïå¼F``SIÏŸ:Ùšjå¯ú’×üIˆúë¸;k©'¨™áyx"eÚX|“ÃØÐˆ÷¾†4b¾Ó0‘¶íJ}^`Š×Ë+& ÍåNÆ¥D8Ý·"cnkòãÐYvQödþ”–&$U©Ñ¢IMš_»_P›Y“«º‘qV’tÜÛv~öv¾0Kˆ8±ú¬3ÝÙ&¶Swì è”ÅúÀOñ¶U?ù­ú 13œç†9iÏ¿Jµj,-q‘J+\.o$µ3Ù$lȇ\:Æo¡¯è³û«¶]çdü¼2 /–_$$9øh¸YEy]ç1¼Z ëõ9JÓaG¾½ú¸ùʈé[Ö˼’͇™dk16Ráã ‚kÜuèFk]é´Ç›+ŒM©nr‹µeQà‘^A*eû•.Œ17~Ô‘ ·ãVC¨“R5`e·žæ¬7ÃZ-Ê9‹¥;/ñ#qLàè¸ICrÄO*õHêšÇ¨ ’K[öÌn[J¯2µ íB•õËÇ#ÆOŠn¥hNP9åÇ÷áÞv{›½\˜tÏB¤¶’<ÜŸ¨»æ·}'Š‚ãÒ¶?ÖèΖ}¾°`ž¸j8¹W'ŠãPÌ^Q)Jd„ß¡ÌÄÎPÓfv¿Xc›%¨-zA9Wç¨D zÌä&1JëmDÄÛÖï|?iÈ—H#4$pÇÝĹÁYÕ¨ºÜÈ¿ú޽@~¿‹Ä€Eв¶“4¥¸ráƒÀâ»ý݈P79bû`}Ì@M¤19[œ»I%ÕÚ÷òÈ„ÓQ•Rø×Ša,¯ -ÍðêP¸”Ò ¯o¾¾í4Š˜n ûô!~ó[’à¹lXûæ….ƒ“–”—½5?qQÈO¬«òWYøMˆê>MG;‹\’’S´}yqÒÞ¶ì”ÓAÄŒM„êÕ¯%^Úö¾æ0ÇèžF°‡ ÒžŠ¸=û‘$Dv­üøu{‰—Ídáê³vn¥\×·A|I ÞËÅ$Rói%ÉÔ/mDÃã«Pv›BB—»Ï á ,aõ™‰ô×Vþ¼Ì}Ï&‚×” †Éù##®K3}E~kñ¸’uæí|Ûlv^ ¨´?a@£îϹer¨¿çdÁ¤Û]!oøI˜Ží¤Ž9ù]àk?Å×5ïïž ‡þ÷ò9”WkK‰ïΙtظ–Ÿ‰3Hò¯¦þøÑVb ÚëkãÚ“åÉ”,6v¿›Ê’ÔC@Ü3Åf^JUNÔ¨Qa–±,]@›Ö‹§f+qÈô µUÜjE“Zå"„o…e û¹AWjÈ︥¿Æ´À“ÈbUe·Ó†§Ûx+SÁW“•F¼ÿ6iV´YKìx¸hÈ€®œI“À‡`Î>øæ%ËxsÉ‘ì¥[J.÷‘nx?m™æÒ"÷(Óë/Vwr©ìðm¤p*|ÏŠ„0C¿%hÔPæJ¡O“0œ¶?Ïú5éÇa(éÃÐâÓÜzBã¹—¼ôÙc·—f&ZO)«ø!ÆÝïÊ0rZý Û<Ötšñ–”QlD89¿õÁ¦¯ÒØ´±jÊ»lËÅF;ú2©Šé}Ód’Ãõп-z¤2c¼•c1Rí©»¼PývÛŒ˜|@$åI¨)ýf1 s¢JbC~-›CÖs(Ý<&¨Ÿwù™æ‘ýR‚-UF6Us…Lžtk^#é*õÏÂ0“ãëW¤|@ÅÅüÞè÷ηI;!Êá]¥;%û!KóNïÉPT—„WâÇa¥’ë˽Y.ý|xý((HúÒk:Mß0b«ˆÛQ:òƒHu?µÍ_@‘_Å»,³å³IξKiéí¯Î þN_G¿) )#E-e0ÃÐè¯*çqׯr¿n¬8ÍÃO½þö©ô«qg>Ò¯´»ö%Åobèï0?ìù›ÖÂwÞûè*,–úexÚ¨bT—5»uã h¦çj½‹/¨ŸßÕb"7x»uJcÿ% ±Ø¡ÖµBT—ôýGRÂ,øÓÇdIüá:¸Vç­I#¢25·GÃûêïZŠ_ŸgU(ö_ØÓÞè׎y¾¸ÁŸY'&‰9E+$–óÅÅorÌëaŠl¯‡Mwì©_ã˜!­0б6t½™ÜE›’ Fºç›îò+ i”cËFç*릔º¿éC¿6É=|ùº¯õ0#½"ø2;÷t³µ–c€Å6P{Kû†eœË·ðþj`Ž>žY®[)K‡æ°æ>ÐÉgÐ<àlÔ&ÝõjpáAš‰.Êe`™Ùç6 “ q¿7MÁöÉ´áŠh{¶Ù޲O©ÒÈP'hwÐM¶Æx3/dµW¦k$§îk*Ñfлað¨ ÁW¼.’›~‡2G´/êcè .þY$Y™/iBÁÈ?ÙjãŽïv¯ªKr€ÆAý“jRÂ'ðʺHñEã,Cg=6™÷½ ³ôåÏŸ“uÄJ²SFþîø® !c¤ã„Ϊ·'2œ‡_,iMÏÇjð¸ãéîÛªmJ†Ú.âŸ<˜6P×®=úFÌ3t9P~.hÏ?y¼Îlç9\}››½×_YÝsç¥}µÂeJÞd$ð`…S>îÅgÕ (ÃRõ§'›B¨—JyÇØhP42µ˜+'õ“âé \á<ÁLŽ™­+ÌsbÐ-fGyÌðYµäÅ‚[²/õ‚çN]Œq÷öŠ|l—¯,få®)Ç©˜WÂ…(Åò-š;jcáÄËTh #òÉ„›Ì¹Fq74‚ð與ÇÒ*^˜ý :ÁÒ©ÓºyQ¸b_ÏÈTŠ7ÊŠÌŠ1iÐá²Ÿî¦ ¡Y?·ØP%ô-|00Þ}gæñ  "ŽsÛ<;ïlÈò9|Q4™’«¶ì¸Vàƒ¾`"èË—xq6”‰Ãq"YÚº„æõÓì¨^#ÔM†nëq¥}ëÉ ÀýuÙÑ_ŠdS5 °S_ûºÒ«ðü³DE¾$¥7?¢ªf{ðå±Ñ¾îN’ì4¡’Jmq‡þžÙ³˜Ï†›âNl…§$SG¬ÂñÙšv•{Õ¢)&Ù8Ðöˆ”Ágî5ý/Y9?C¦Ö6Ÿïºos:Îj~ Ëcizì_•@¨D¬ Ÿ5“À/üQˆvNî\ÒÙ·‡Úo•1(÷ÚcËŒûµÇ§ƒ ·Úde,&ô7Ö”WÄ/4tYR£ë ¾¯ªÿT¯‰¯š¸7WË€ T-С۩w ÊQL:èj AûÀøÁ˜½ä‡~2ÈéÏ€í jqC.|>Ò#iÒô~a¡çºó£Î¼ £r4SÊåAصÕG M2ˆ‘–Í-VlxØBasAVãâIì[¶ÑMt½ŸäÔmeëƒfnsª'ó•/~ ìé6?8ö·f³:Önî®×³Ž¨;¢ïû+[×`ÕÚqçöùt<k;“XJòîïÈ__ÎãŒ5àSg $Ì7OV’3oú€W´§žƒŒ×Úª8Üß«:ºªyßáÖ®“Ò•Ê/Ê´‡j|ÛAÕˆˆñ¬G> 4Oµµ×#&#Š41[BèÈ(ŒM`Ð5¯9ê<\. ”–^dø¼.€K­]”Ô>ãÔ—Cª uÏÃD(…R18Ï ½­ òeé‡Êâm²kWã´—Æ“#„ ‹ËJWº ¾¾Mj^Ÿ7–â 3h2†)Ç!Qs]3”$ÃÄppª¯+Úz¢1in$ɦžã·ª¿•”oDå"á!³ð!iÏ%#LõØaò‚Ñá_Vî"˜Í~ •NÔÛkñ×;þé±Áâ Íݶœ³¥ïUÝLðº$‚f51„4C«Òþ6áÍ™¬gàI]u²Le'Ü7¦’k/“þ§×’ÀõÑRQÏH‘ëaÒÊBU“Tnl¹¥7n9'®ÝmäÛ=šÓKr5ë›@Œc±‹íö:é7É)å2ýh¼5øR`ÝÛÈS’ Ù$ÅàTOÚm|55¼—~WbŸâk Q!ãº=žI·’Ìo½S‹Þ:ôÝÅ:ÏÔ.Ý}8N‰‹Y>ë©Â<úé0›V]™§Øh’ÏQï¿d«ª_VbêÛ¿^ï™Wi5©Lq:C[ø5júÅEV#¸PÈã§t7E¸xÔ¡1ÑYüªRmçÝæa‚}G@rʼÏ{¥/}êR߃”Nž›·©qx¯®MË­R·¨Õ`)ä[Ÿw™àÛDW" ¹Í)H#„«æ¸Ô‚۱мb&g-Ã`‰Ù>äF¶á7ozœ…9Éö e_O’ÝY¾=u’¡õzþÒš/‘n;…ƦOTïÂû¼›€Ä?"Ö‡Ú®fµ¼ ‘æ$ð ..F:šWᦹðdÞ>¾ÏOáŠóyÑ9è@‚tíJ>),ëW;ÆíXb²øÉGôÈ,Û3>ÇJïì{ðÖF×ø ¾‹û0ÍâÌûGÞÅRád$ ¤`ñSPKE‰òºUr ®*©-E·C"JÓ&£‰íbG~8~\}•š<ëH‡÷XPòhkÊÄ…B4÷%Ú¤6n”_Àþa›Õ#>R̉ƒšõ—Ö&¾ïƒhq>Ÿp•”Ù{yì̧vsǾëå(ÂŽÅV @P¨zc˜‡Pmô޵ÜÙÝ1µÊNé›-êZÚÌç’6¹;~•÷Ô\?º>¼Ù×ÿµæB`Iª¦Ô©äùjêÍ0‘è’êCé Úv7$×Cý¦TŒ‚>Ä ™>ì<ôÞ×Ùñ™+33;ƒŸkÚZFë&Uz}z[‹ú=­ÐôKqY.öe±¥ þùc2Œ¶Û¿î®hþ½Æm„zÜæð¸ÁÇ´_A§lº¼ ‡èƶ÷0gçŒj­Øú²%‚–¨}énäÚÆx/üPÒµÒá#?æ¼hؽòìǪŽ+ôly$„cF l¢/¹xË"¯”/[Í;9€Üc.ÜÔ¹á`‡>畃— Åɘç tz>ž¬ ©§&ñ¿ k% ©9­Ú˜Þ„Så2kTQó)‹(ô—=vÌS÷Ñ’xxÎYª Žj¿k—Ô°:I:LøÑ¿nÙâ²EÄ™G¼K5LL9½´ÁÍ[N6¥…wA¢ÐÚ©tñ>” ;;rè˱ûw°‚ô~ðqé^A³ÞÎVû2¢²ØoÝ óè—jÅâ_ñî—ç,ã• ²rõ"#t+|JƒgÈy—È$Y~â7Ž‚ˆöƒN21÷ƨ`Ü‚ñéË™„;ÿ󒨍PÇ«,Ä);1IušúϹœ[Y{$,ßò^Ç}*ÇþªGä”§Ë®¨œ&#’÷&:€ZNÕH°C@)ÈÕq#Ý îûØŽYI¨”)›¿®áåä{ÈÜI«•˜¸\%ÆÖ?ý‰ßÉ`]ïÃÙGiF AØ­• ¨"[AlM]hA-(e0à1êdÓñËнî›Ù‹ä¯sy¡ÆõMüvî—Î&¦XZ±Í2t8ö²à9h/²nϧ+’ÓúéøÇ𪟣²pkÊèò’e3/›ó° “.á¼êæWtb†¾Ö÷H×½£YaüŒÄ tç)xKØk˜Ö‹9Z2Þ÷š7Uý×"Û@=Ö 4´yì¾nJÞÎ¶è¶ÆQ‘gÇ>Û$_xùm{‹mXÖ´taÖGý¡s¸õJÏúŒFÐFåæHü°WŸð»[³8äù_.û³k·asó[ù@ÕsÝww*{à/;TI‰zg)x©úÝõ€ÛïGdï{sŸ¶"ÚaÏM'îÈ ²ªW𡝴—‰¯zDÐÜÇ)ï+ï{™ŸTÎÉ£ÄáÍ›ò4ö«oi]–fvzÇbZšl9MìT¸ðY§°Ê´%2¼0(¡ó7–EG ~g‘¦í{c¤³åòÝeßµ¨ÇÃû×™Çsß#ÿ$ÿ â_øHœfż˗±ƒb¸n%’XeÓõÆQ Õ3Y×,ñÔâÍHÒ¨Â0»!Ó6«_g½ÁWç&Tì6™JxÓçã…µøŸ"5qFØÜc$À“€(3IÁçz5Öò8-Ñ(û‘öGÑ›—ÉõÊ#ž!!/Å· м‰ŒÑ¥ºË³ËÀM1 Ê=êDoöýaïú5Ç^5hÅDºx>`F:ì’ëÍÉíf*âàpô§²hb1˽+ ?ÅÅ]SÓ»$Uà¼Åm5G-ÎŒ[äž\u+ðK–»r`ï[f# tçQè²¶ÊIø+0Ç)Sè•u‹äײ½0K‚¼*Ê‹PÔÇ|$Ëà&y®ÏîÔÜøÁ@šˆÕ´¨7znB¯dµ-IªtOX‡‡ uyéüzîqü˜¢p#õíx‹ÿèZb qÎ|~r»v!ïÿ¼á endstream endobj 648 0 obj << /Type /FontDescriptor /FontName /YAESOG+CMBXTI10 /Flags 4 /FontBBox [-29 -250 1274 754] /Ascent 694 /CapHeight 686 /Descent -194 /ItalicAngle -14 /StemV 107 /XHeight 444 /CharSet (/B/N/P/S/a/b/c/e/i/k/l/m/n/o/r/s/t/w/y) /FontFile 647 0 R >> endobj 649 0 obj << /Length1 1716 /Length2 10583 /Length3 0 /Length 11688 /Filter /FlateDecode >> stream xÚ·T›é.L)w)N @ñàîî®- @°Hq§¸»»(P¬@Ñ¢Š(îEŠKq.™33çüÿZ÷®¬•¼ÏöçÝ{Ièi4´Ù$-¡æ`9¨#œ“C ­ªªÈÉàààfçààB§§×ÀíÁÿ‘£Óë] PG¡YH;ƒAðG™ þh¨ u(½±pr8ù„8ù…88\‚ÿ1„: d@®K€*;@ êvA§—†Â<œ!Ö6ðÇ<ÿ9-˜œ‚‚ü¬¸$ÀÎ #@·;úƒ\A{ù£Á¥ƒr’šÐ#ÿø¹X8C`pvˆýoŽÀßa¯YÖÑRêàv„» ÿ®Oâ ¶x¼wà_͵s„º9zýYA-­~Ó°|ê:BœÞ€eþ²y¡ÿ#³Ã¼üܼ°ìnaü@ÇþCÉù[üÈÁÇ …¬i€} VàÇt/+w~öñú·â¿:''Àb˜ƒ­!ŽèÿDƒ­þÄýw†¸^s<Ž'€ã÷ëï“ñã„YBí=þ1ÿ£Å@MyEm–¿(ÿ­”’‚º¼Ø¸¹l\¼NÿãÁç¿ãü}ÿaÿ‡Tù«ºETt´‚~§øÍâñúþÃÄõ¯Ñ`üko˜ÿB ú8Ð`ã?óoÄÁËañøÆùÿ¼¸üÿ ÿï(ÿ×ùÿߊäÞØÛÿ¡güÓàÿ£9@ì=þ²xè7ðÇåP…>®ˆãÿšêƒÿÜhU°%äÃÿjá Ç%‘t´~t6Nvž?å9ˆ;ØR·°ùs˜þÓÇöG°ÔòûÁóèÅÁñ?ºÇݳ°{|¸¸<öìOÈåqá´÷7?®Ú×!ëhµü½“\¼|³3Èýq$/À‹óqy-ÁîÌ<Èî…?º9û¬ Îè¿ÍÇJýý‰ø@é¿?(÷â•ÿA ÚßHàü@‹¿ïoô¸Ù ¿%¿y-ÿ¹@«AÐæ_ð1/ä_ð±`ÛÁÇŠíþ“9ü9#Ãþ©ä±JØã$Bÿ•›ó1ºË¿àctø?ë±P÷ANÐãø_=°xãìüؤ?–ç±AÿÁ<$Á`w°ú÷i¨…ð[ÛÚ·­—5’änl›#"ȇi—\l#E&¨ð^Ù ÓÕíì¬9år¹ï=œr&¶jRN—9K3§^uÔõ<lÔrÛÖÔæqÓO¦½~QÐNã4!äë§HQ •:÷"hPFâv¢‰[Z÷jÓãx¿¬ížMtc ,“ãW nUkï¬)ËR!¦Ôû¹¦o6ÐÙä=#y™»æ´ežª–A«,Ò~…žàV»Ò?8°€×CÙ ä¸yDÇ“ áA©Ö[(À¾Í-uÝËÀ÷2—'سì­XfJ¹¬U;±Ù8Ù3¦aLêä·1K²ŠâüéyE‰[ ”JsÎ+ÜŠ°œÏ ¥~ú±_,ñ—‹^w:DáóÒû5J;¥Ð`e¹©îñ•Û7Ê©Š¯GûÞ2²ª&ˆÞWnüôi o‹vµ AlyY“‚·!ËBœÅ´ëcTÐGgŸ½pÁ<¥ÏõZ ͦUG¬dAðm‹¿77–+$­JØð£¥ØðÂË“ç¾à´½]ŠaΩ:Ò1?Ês¥nÁ;£(ÿúø¥Þ"ýC”´§›Ãê…wµûª±J¿´Øç½g«ïþÊ ^LT@ón·#âm4 {K8íûùõž°sªJÄ8K„2µ¼Šë³â¯}ÐVntײ€¨ë=Ï»=Ä €:¬Þ¹\ƒHXo¢Ãš¯¿ Qì;ëñXKªº¿ƒ$Çðwãt33á€W;Kq˾ Þj0äÍæ¨jÒ†ºŽÁø°{¶‰]«ièfÚ½—ÜžÇSoçtÛQët¥ƒÒ4,Q]ÇŒè韬aÿ(8ÌÓŸž)¢³ìÂ=k—Çježqä9ÔŒ  æ1•z¶¾K€Œ¿pÓ7rÍyÈ2>‡7ùç§~C-× š%s“Uþ´Ý]lÐjF¡îú5µ±ŽìE—m†Ö@„/åccƒx‘†»h/°ái°«=ËÍÌV Ñûµ`ÙHÓè/lÉSP¨SŒóWˆuýÚ•ð……r,ó´0‹ç(ŠAT5¾'–ày‘æä²[¯ȩϜo“3ZñºyD—!X<öíW¼hØ®Us£È‘­òmÌ$]“ýŽé™1nºà:[OPÞæs;ÊÙÂUšÎ¨§×X¡c^xÌ·¹9/s¶áV«g!kûyï½ÂU&öÂ:;Ñ ²×KV®4,‹‰ÌmÔëäÍ@´Ü2&W…ÐC©2Á͇èÀ´ð–mJŠ.b›ý&lŸ·y¡ð­9ƒ‚ Z~ÿ'øÛ«kŸNü­ñ$¦š$m­Iƒdçø"Y.õ\¶Éê&­«A-¸ô˜±ºÙ-Á+^bSÑÀ¼ÊêwÒÐåMŽúJŸ|ØüsË^6Äc³ô„³dDÆÄ<¹Ë¥Œ;GRµwlxv­ŸšsúRìŠWÏn>)SU9D.J,™I¾Üšé|Õ2Ù‰ÊJ§Fs˜’yýô}tg4Ìwè¨ê(ã™ÁB¢ä€ƒ¤ç÷óYH–íj´é¾$ÏÆÊÚaË­©DM¤Òò%Øþ‰jc¹51=ËÞÂe”>ÜNÉå_Sýffí¶B@ Äç¯êbýîuK虯ùÈfO¥¶VçâEw75¢è`Omßûwöí¸uÃY eKª"¥ò©œ·S€6ÝâÞ¡#—mÖlÛ`Ÿt£Ïpé]”ÃÁ+ªt ºÌê&àÓ šܳޙþ´R$¿š¼}wôÎû3»WªEM¨ý%GLac)ñœŸ4jËÁWŠ&Šï¯šîat†c\P)N=ly‚œB´Óòó¥"näJø²Ö&$ÓžŽƒÞÝŽæN:]È_pç‡éÛ';_•q‰û•Ÿ±†äE{L*lfw™ìª3›!hæ“ñ—.&Ï/ÝåØãCPqöHÔ…d¼Š<°­^—#ÔYhÃb¥‘iÍ×\»X%ÕÍ9ø[ØqB?°lù¡†o-#ùwÉF²JW9v3„Üì)föM¥!9·Í7~üò°v£†š¹&¬¶8[>‡‰ÿªªÎ²ú&=Bôìûéf}ä XÈԩݳ‚ ‘És'nÌ{\†>Œ£pXtK6^¢º%‰ýËdŹ®X(—‘RA¬¼=§1¼X7%\ýk¶&ÿ­ƒ~ÖÛqƒêªäˆ§‹™‹¹O\NÔ÷»n—& BÓD—V bjκ\XÇ[õÙÏ©ö‘K6FòfæO.@TEé—NLt¹ ª2ê§Î×O¥‘i+\;"›Îmïñ¢ÅÓr¯†$)'?nñ²—¹µ÷“ +pU·ÕŠÛwÔ×ZâoÜ#hÿ:££Îï²Á9cfdÀþxs‘äÄ…;»à¦×ò³ñ$hæHÁÛØ¯}O× ÈÓã…ÃFZ¿ìõ}T=šL¾v¼ûLg¡í¿GÎKSžÓ‘±6'L“Òè»!ƒ6ùB@Ó/ÿ¤þáÔ‰2×d·FÔZú¨ ¾>`Qüj{oÆE8ÚÔ8±ÕÙ÷ñ±Bbu8~‹Ñ}ºÍ'ýŽ_Þ:¦9íê ¹Ε”¨ Ý9Êqÿ ]&óG¾øóëgœsš 4jp¥ðö¶ÿ„~/{™¥ï/ù{Ù´Õ4„¢% ÎÆâhwHM„^¹füpSuEÒ{ÜiØë"µ'nÆËÓFY .\N÷â9ì³ÅÊ×Â^çç:Í<¸!¹ŸcKÕ §pWžµÛí­ôX®¸w)ÚÈŠö•†';t:}°Zoö3¹I«^`‡"¥ßïö¾F«IEÿ–`ñæÎ£YW+ÀnåiÜã/’†ÁpòН!o½[ 4¦òôÚzw<—Æw¼\ÛbºÕà̹ÃǸ2é†É0L…ávSKl™Ù»<”ô¥¥ÈreW‡é¤˜—‹ûµdOžJªç2V…¸|±ú@ϸp‘™W åb@NcƒE`(úÖ„›¯ŸqÓˆ¾‘=ÕÜIJEeÜ“®³­éüx½ü]qóŠË…² qùF²Þ:D>ñ«šv„E×ÔmËŒ3>{Èâ:ÿ7éi©¼ÕÈíBÑEç¸q³”Â,{§÷Œ\Æ‹éj`òlåí$Ž:ÊŸâ¥0Δ_Ç&Ñi'Ø„Dxf¾ÚԢʋâ²W[Êä™™ u,§á…ÎFt\ht¯g¢€îÓ0îv„½5CÝüJ§ äfD³m+ïÌ*ë齨 [ÊI†É µ» fçŒËZàc$ævWv‹*žï„—*õ›}I2`Òr?\J؉{ÚãŽÆ;Î>gSöµEFt7÷;Ç¢EƒoW3±R1æzHÓa@±q߀‡òbý½œ°ˆáCîXð­o·÷IÅÇe´)<‚3 sÇ] uõ¡dùnkaý͆}%½½çGÈ×åG¢Œ†´²QãâÉ–¸ì‹c-lj_É´»«v/sÏ$´ó®½•0˜ÎŒÈŸú°&M¸êŠËˆ0ù¥eÞ$:J¨\[Ú‘ëÇëJDFø˜¡C·­¨z±ê‰!@ÌT¥ô®ùØñ"WÔŒ¬9ŽE0"`7H)Ø~&b~•œ•Ûü}=—$Œ…JX+I~ÞÏÏS—_ÛÆRKnw¾ñUbµ¡$-¤êö9å9á‹ÁZ°÷MÚ™yõU:&\%T`üGê`˜÷èän»:Ó²ÓØ&®\2-E=±PÔ½¶¸¥9rk¶Ät«Wô!÷Ž%µzB]p3DÒg˜$ßcÕÇUÔÝ4ª«BùSlçr>Ÿ:j¨­Ôܺ€x°øÛ›2ÈŸ¢â)^ÇœyÈ$}ï@qÐ/1}‘` zHñvcÂS4[Áyß ¼A}.mlìJÙ:0ZîI †-‰¶}âµÉ@à³gÁˆ)PàE,|œ Ã#ùôœe˜˜™¿ñPaÔôRS䌄ÓÕEÝ¿9HçIݼÝ7ÞTK—ë…˜A–vú0þM'­ ‘~ªUw Ñ3¶,×0¤[ùQBŸÃæO‹ô©³êQ6&ⱃÞô2c¥JFʺ¾uä»'÷Î#¢À8 œr:>²ÆÇ­ÜùË¥Úô ªMÑ…†ÒEIhæWëM%Ñ,h’nDÊ…è¿Úïã³Ð eù6(íõCEžñÜ_ªš’ë„¥û¾Ls­¦¼×ô@·] Ë)ZMòëÂHóf«±PÁEz{V¯ƒ„—{àé;€‡‡˜õ@®rMÂ?Uü^žåUçP®Tԇ刎]Ñ&Tf†áþ _¿Ð¸i+}öÉŸ¨‰©k{Ûšl”n>–tåQ0ÚF?˜o2‹zãÈY-&9ð{9ì?ÖÔuÑkqC¨ìçœHú•OÍL+Gt’ÊVÖ=_w…çç å (^¨¨³¬|Š+ë—x3ÈÐM8û¬¯´èÒO¥™]œ£~‘íÛúœ¶™4&B ¿X'£ˆ¸Tļƒ×~\š¨ëè«›…PLñ°«»Ó¹'¸ÿÀ;޹4h"Í«²P–'4=ਣ ˜†žy–è A„úŸé·²œ ¥*×µvÜNë ¹ýxçâªSÙnÈç<·{¢’È ¤oÑÓšX·./jP±‹ ETFÉÄ’¸áþft ­&$_HüÒi§dUW|‰icJËœ~üfõÑ?m[,‚k½§ß—) M=½â]¿ïW íЪ·]z#˜”H²¤TÑ.Ñ´’HÕÞ•CÁ¡z}a×Ù¡ï9Ù|¦•Ç(V̽Ghçíãı¬,jŽßWîÙí‚îÑä„V/ÕÙH×-ñ’4lo‡Fo}$îZ–¨±O±ùï’õFQ§‹.4ú~Ä#ó{èAâ…¤yëAÏÂ&ǘĞa~9_®{Q¨ù3®zÑÝ‹T¡2„H<„`z&DBÉz¦ª{âÝ@?­©Jêµ8ÅgK|æk¡ÐiŽC.c~wÆŸ-<0Œ* Vf v$W^Ê—!s‘ó˜:cÍŽCæËFåýä–b`v¶9hùdìö½4i)RJ~Ÿ¿ý îa߸‘/© k74E¦8}Î:dõÞ#àj7oD0ï혛È$Æ™’_Cõ®ÅôÊÛÆ5R†·––HþâåIÈf{s8ûùÙTm¥Qý¡äár25,I¤WkãÎÁWkë4_ ûMÄ?‹hsƒ îä&ºÙ.O˜òèL ±W?xCbZïú$‘xDñÔ­w¿J;‚<™+¹FÁ÷|E (ÆSTY°S‹—ÚFŠïZÖ™I§ "G$,¿ËÈ*z…|OrˆŽÛÐéçúN ƒ.©©”ˆìC]ÛÐm"Ø×çŸM¥=o/ÞE©>K’ d¡fg\0;s Âs}ûe.Ž‘îÁ&ÙCjþõ÷„²—é7íw Ÿí|5üó…~ôUZÌbð×{“˜ä…­[Ë R#ô/æ­ôH ye³·³åˆb0éK%L׈.ƒÃß4ø–&†ùý^­¤TL[}ífÿþXÈ}FSê ÓòÛ¶¸t.b#pVÉókv®}Å Žên‡<šÏÔ—(Vû5¬,ñÝZ]4;ÞZR¢{_ öÇãŠ,mäC¢ßâ+Ó•}Z.BKÚDåÙ¡ùÝ?%™ÒWïö¿›çm׶®"Üåó¯•Í—çÇí‡îŽÜŸN‘¯‘͘–éÉ!}ã½.é38»ƒ©W ¾†4SúéS}ZÐ.z9úŠ)¡?žJÆk‚…U]CÆ]Û äBîñ°WYëpô¼·‰«%©{IÎ.#Ƭê9ÓÕ•dägša凹Èi,Jl³NKÚNoœ ï•غd+7m ¥Q8÷D’­YLØ„= aOîü:A½ê9íøå16ëªö={u|ø¢ýVj`•[|®“}!Ë;7ˆú¾y$¡è×Ry-[Üé‡<Ÿ”4PÑè¸,­ysM,_@ëÑK:ÜÚøxáëUZ¤Ñòe'ºB_ß>g׸;cÎà3%¬ûËÊѰßýŸ/ñËsÒ¶Ö_¾™Ĭeo_ž¸Â&.ìÑ¡Ý^ìÂp1ÿdØšòøÙþ$üØ‹t —ãˆØö¢N_[!´•—· ŽÛ&ÓRëJHsyÿ:ˆ¼m+*Õ|;ù…´Ž PƒüüVÆŽ9µBîâÛC/žx‡mNsºâz\VŽŽv‡¿ødÇ-ú × 3IõeÓë_ÝêÒ˜±û×H"OŸ}aâ…#«Ã7OI¹f¯Ô¶O[ë“E¸Ú ¸,CQFF?ÈæiW˜Ò}¤Úóý)“(ºÌiÕðLsÏ',„Â]0$tÝ2•ØÂ¥Ã.qð»NÂXè4ܦ3ÑßN£]zÀ?Âw¡­OkOQK«ðØÙÑ é°ZUƒF^uï^“·Äç#kƒ¯P²pï($eôšÖ{æPŸçjh£q­ã§Éž>©M”Û3wï5ºÐˆ‰n­x.º±i(êð ÈpBÊmKP™+âÊ&ë1Ob5èNžà¸'yÖß„ÖÜñ6ݹ!ˆ=¯ËÌ0T}j­Á?t"¯¤¢)4v´Äh¾Ý£VLðÍÁÙò¼¬5ÇÁ¦+}êþ ¦S·ß§¤;‘ºÂ,}³ÁRÌw¸›ˆ~z~ýœ©u†™þ‚ 4^ˆöCîØTb¶ÆS¶†vf,mk©ˆ[ßy´_ÌxËødUš¹(ëF¼Ô’5hZÚÓléÊ®–E9ƒ' 1¥óa¸]}ø|FâµZ` [aíKÇAôÕ.š~âC½¹ŒL^s³ëÀŸsm–‰Ê®² ¯‰-MqKÛt‰‘9÷‹Ù$Ë8ß©Vö¹ǹÏ,-†G¬›³¬s3¸Á§ªaq¯j^Ô¸ÝÈÍØ%æ*ÅZ“éT§²—dÑÖ41á)”4b"¿o¯¾!#.Hª*+í­ñû)Í=iÕ9o'Vÿª‡t gÈ`T'ÂÉbGw­všF¤QåÿyYë˜ä뫳 ‚\5¬‚“ëãw”IvŒ$…ç\l|ɱ.5-ô/"\˜Äðåžy#¨|¿ú™Hu;Ñ2ð¥õ½ÆuÑÈËÐEþI¼ÙÂÓ’Îdµþ–/apï1þÑ|_²­ö’SöŽüåÙ©1g‹mø^'PÒ n,N˘PÜäö6³_Ššš‹Àm],#lbÃ'ò]ÅZ¹Ñ¢j°É@õ-¶íÆoÉýPL¿G_%LЗáíWÍ-Ž’lcÎBÕ€øìÏ_9iÑšÜa£ß1îe æ0å'dg–å\ÆÍEó†£?‰\ øuû+c)@§“Åt^šP·v#<[‰<ã»{;8„ìaasø®ÆíƒszV8°¢ŸS` ™”Oƒð™vÜóQÞáú_,±-ûwû¬™‘åCRµûטd'X÷KòùœÁf@®e0ìHÉ} `Iè|"‡ò‘\e©i¡ÌÓ“KšÕ{P—R¿´žõ¹ˆ4dȼU¬75\k:sV»Ôå‰Ç¦zŸa<›ÊJê9ñ¼óNNò½ òP!ÑÓŸU_jª+p΋¯Â®Ì~jCƧjÉÃJñ`H¨˜•‡qÛyÅ›w‰³ù¿îV¢´Þ,ˆUs®Ÿ ÌLXEȵ6 T}ÌÌ›®¹19ØÃä:ˆî¯˜G¼ø‰®[Q°ët"0Ãõµ­×`;ûŸcÌ‘gb ¹‰ýã 2 áWGÞˆL•Õêü²,çx`ZR4±oÝÖä¿eöæÚ‘§=?×]>“Gcç~‘–â˜1m¨´duœš*”'±kªÃÍóeÊ'³­"ý5é&Šé^%>ýdx8Ù¿ã7‹´ÜÓX#®äîàU—·±ƒB«îÆc›l¸|b‹N¼“ålhu ·ïŠI|uï {hp*T´ì|)úM÷Ñ)‚,“î9úA³Š¢¤Â¢ Êçö¾úº×é+Õ”h' hÃE{c^ãBF‡jï¡’X›¸ë%©è•QÃ0Rââçgâ4À¹Á¼ïÒñJ&ýùˆ¨80†&k›¢3Ä!öO¨Ó$º%cÆ!JØ5Žñ„ç2óìâ „D•mZõ™oQ(‡ˆ– …Ü×iƒu™æ9p.×&ó­¹݇w_ÔibhIÍnž¦Å§ßä6‘8yũ餸b”„‹‡E3±´ÚqQ¹•ŠûM][u“c·¼úzø¨)N#G„s¹žV|£ß~Ÿïºr÷•”*U†°£ø L×=áÏ…ò®5 TÆð v+tt÷bù‰ÒºrÊqÝu í×¼[öÝQJš¾? ¡#£[•&;q§»È+w-¨¹ÊÏGqÅw þŽ(ŒÁ?eù¼QŽøå‘â›þk9Í‘D'[cg"ÅŸÙOqÊeÝùIÂÚsˆ-giŸ*uýüÜ¿š¡M˜möû *y*aánœ_þ*a Y`‘1ÿªg§;ç2E‰N ¢'è÷¡ š²a‚RË9,_Êñ.–æö” >¯:“ ƒsÒ£¨¬Ôªó7£¹&‡Gú1ôG&ÆÁÕ÷-YïÅ‹e® _fRû©‡Þ¬+$ Œ3b¢1ÍGð3¢©z3DT¾¬G;Kà*!«R›k‹Cbá¿`Tf(0žÒüÕAòäY!–Ó±LEÄ#œ£ìr»Ørf-_.}… µÈ(rÖ·Åõ´¹Ç_bðUya›T@mÍ)ZRrE8-Î* ÅF|iÅ˜Ëæ¦i޲Öe‘‰‰5Û+IXÓËßÌÍå}Ø:m¿YˆV!î9™[n©××LÕÝt¥~;xôår$IVT~¶‚[I­1d ²lŽ…h¬hXýgGŽüJlà¶\U$+O´Ö è[„ÀSµ%àýwzž9lT×k "tϺæ¯Ö\Õj¡h÷Àþ:ƒÍõPv<éäŽñ.¬;±ykÌK@zS×ôä{ÏuµÖÁ¦/¹Ó#_OÇ*SœàÆ’n _²¾àüÎáXÉ“‰tÌçªoNƒÃG,®‰:ÙU¯½üÆüÉh?K8jÓ/?ŠÔtqºðÇ^h¬c>—ü°µ¤Ñm‚ˆuÃ]û5þŲ)f¥#@näµ”×å«Ï9š4—×ÓyÀ§ñ¼/¯J¡øV×+4]ùƒ(eÛª¥t’ovØ|øeªºOõÎíçØÈý¸"f¢G\¼R\²6÷³0ÿtËyveëJ½,ŠKš%âfäxm»³°må'^|ÉV xÅÝîÌ u qR1—\z½L q$SÝ"í•ËEj3 }¼dIcÊÜ·¨š·Fºfð’®d'žz_HØòq0gQ¬Ñ`Sóˮ⺒DV[¼MS2 ‰‚lĆkÍ£ÇÌÍî ×Ð}k×?~wœ|üø½ ¸u©»õû©EIHÆs°äÝâOÍ/ç^-» ¢jzaÇŸGÌï*Q$Tð_rï¢ØXj†³Ü]ÄϪÁÚìµØ4Ççí},>ÙÖ S­ ]| ¨ð5ùRa^F¨µ²î-·|0_¯^^ºF50¿Œö9Ò)•kh¹â†èÀË<¾bزôÍ—&w*%Ï3GJªO³Ç£"0*rŽ@”÷® _êùÃy²W²Ô»Mr®· SËŒ3­âÓ¿Ö0¹(úo~àQ¯ëŒ¥ÅŒ™¦c¯èyjþlÞ;«Ü$ê~%,'¼v" Î#ˆ£®ðôÉIÇ™ö½ÙõŠOy îS—åcÀ³²—ç1ˆ2Þ[2ºñ¡Ñû®ø&T×kÌ0g5¥-ñž¢zšâ =ÊË6èÏV,uh軆1e·‚…!"[DWwê„O å…"]1éÅ8¯hºvšêÞlemÈø¿Ü4Mˆ-úÑ´°ÀûpÓ6ScN¿r2uÑGqÈé˜2jiçõÌûûÇ+tb4 ñQóïk`•)ynñÎË_â\RïH­«îStÊý+áç-»˜£0‚ø[ _2{M–^wÊûËzÇ;ü‰ Âo~þ¢!‘RQ«ü5&¬Ù‡ïÈãÈ¢Š]äôñJ©­b:VÐ1ž´5óÈñ-Ë,nhv¸®AˆÊ¯Uá6l­Â¨Å*I„æTÖ+c…쉲¬-¦vlN_#Þ:G刡&öÌWÙ5ó|·J)ÄÅŒ»¢¥™/ÿ•êÿIL½¾ŽD'2p¨3רxu«vtöjz,§8‚Ào2…„˜%@…µ@ÆÚÄ;zú•*œ­T3À)ƒÓP­pé`—< ¦n)Íîß4¬ªòKð¾žZe”š±3ÅÄ尿ÀÖråB†X$Øʼzpl.è´NŒdã§"~aqw×ñcI¬O Õ¡"ä§e]wlhÈ™¤¹ÒùL56º;óN`õ)EHï~ƒW|1ºnä’ >Q»síK ûž¹ &O½¥ô{-âËË» '†3æ”èoú¶–tšJr¤HŸQti³‰ü--SÒú¼µÉC½±mXs'™—f–ÝR[™à> endobj 651 0 obj << /Length1 1407 /Length2 6046 /Length3 0 /Length 7000 /Filter /FlateDecode >> stream xÚtT”kÛ.Ý©’ƒH×ÐÝÝ ’20ŒÀ 14Ò" ‚´ *Ý ’Ò ‚ðº÷·ÿý³Ö9kÖzç½û¹žûº^&=Cy0Ü¢‡!xøyEmmua(È  °°AοÜ,&w(&ñ¿Ý! ʧB ò´á0€†§3€_À/"Á/*€@ñ¿áî% ÐæhÀaE¸«¯;ÔÁó÷+€ÝŽÀ/..Êý» ïq‡Ú`mÂₚhrÂí „ï¿Z°K9"®||ÞÞÞ¼ ^¸»ƒ 7ÀŠp@< î^0à`€Èò/ ÀÈêñÇo·GxƒÜ!”Ãjy *ÊD>à)²ÆCt+?^M1ÌÍ™×|­2×ůbý䣎‚òåÒÌ7ÿõzÆ_¡sF•mFÛ¤éÛsôÉTÿ ºÓ¤ïÐòMÓ$JÝ»ÑôècÉ>áË‚º YHØê:gS½Yï•©ˆj„¿×ùð©¦,G‹’NÜdÿ«¢Ù¶ÏhCø;5[ÞW—Äе8Ëè ¬šR. R¼«ÉVzúÈ»èÛcŸix…l?Œ@+KöÑ) áV›,\ç•zíeÝñ·U½+·î®XæHGÖéœ:®ŸîY1qºu½l¢îÂÛ/ÖRMyš•Ÿ0"7œ\ó-Ùrº2¶tχä£,l‹ilüJH’|S㩾/aû—ñ¸ ¡£‹öIÏüóŠ™ÓC‰×&‹“K8Ñaa M!ºª7ì.ƒä‰¸/êË‹ª Ïž’Çd¸E`ÇLDBöw¶Þà¹ÏWL®9›J¯™>é–N):±žßÙ· (}^܃üSÑÙùV>Í–£Eôê*`ÜÕÒTR1@wå Ðï`Á»N·qÚà9{¨éq‘¬ÀBÍZlT´JGð„,Æål fœxSo ×Lþµ¸ºå!fPzÊÏ$êÇØ˜Ìç#ÍO¯ð OãyY +:k ûÔ™Ýb÷îã~oö*©ÿ4Œ®`t”ôÁÄh^®å£!iyò~üãzFéPì©ÁŽšs½'y€ª¦f7^Iʧd§¼-ªK, V2ŒÃ7VàžÜ'³ïÊ#5ª§½ª±ºÓ'ÉoëäÃלG¤ ÂÌ©T^Pïæ>Ë ‰¯Ïz: Í2ÂÌÏv)ãÕ~«oGØÒ70ºA³…iZå›ü¾Ô•ìz–vKTɉ§6}z\–8|n4B@û^!;!nŽT‚„ò³ò3ÍèLu_}⤖•£³Ñ¹ä9Þ©Ÿý ·5¤/uåU±Œq?ù«î8 Žwï)k´˜œqjæ¿g/ÓÊ“ÿ”« ךœžûl-Ù×v%è‹%¿MJ¢a¢êņ“]=|gDy¨?s3=b`Ùá(PgLÈo×à§ÉxŒ¾Û#4qƒ{{Û+æ‡G»íZ4ôéA“òõ×íkv|cÛ%[åTȵQ“XjÝÑ÷´”Q”OR…©°~¿áÕ  ±Ûñ3-¾!ãøÉ‚ï‹c}1‰0#”'1‘õ#'VIîní¸«¤‡ì S®Ò+bhÓ:¡dW¶¼±‰ïM¹G0´³2SrW½¦Ö’—ÛÂÆ´‹æ¡Ó‘$Æô„/®ÛÕ©£åR,ÌÌub6Á‘-ãí\~å±ÿ=¬¸ñó»e‡„goñDZem„Ü/b4Ú˜ÜN×oÉ õªƒómÞ^lí¤Z‡)ª£_ï Ü¢ ¿fÄâæ9iZê’lùIû°8Iq¾»óGÇaᬧ©•¯F0ºC ‹‰Å*Sz_-K.¥‘•ý ˆ€£4„lí¦xœ†Wú~FåHɦFŠ"ìÞ'>Z ö¾ãÊ9$­¦nšà˜"aÄlè]LxåËÀªÜèöµ?*„~†d?¸Q&FT=‹iMa¿ÖŽ;»^Ø`ê‘öò™nÊð¾þË®’†Ýn ÚY“E‹¢¹dôñnÉÉ»Hï`œpîWR.Øo8óùkæ>ÓQäùÍf½×ÉõÛJË¢Çô[÷ŽÐÖò™[ž›“K›ä÷4a,µÔ´?;s £9EYâG]Å¢¼=h-äýС.–\dís*ÞŠqÐoÔ”Í bD+ ã«WÌv0ìöÄo¯EZ7Påt…öö¬ôŠÐâ±Ë ©“# ¤±êIM"áÑœM™Lr¡ýѪ)xfhgk@å,_áçAM~ z䤼mÉàÊ…ò»7¢]¡ø® 'åÆ Ï‚M/t°8üh¸vϧX_Ü͈zdK¢ÓÑÝn,œœ˜RßZ_90íºÈÔaËÌûѨ6¼ïŒH-›} Mqôlx Ÿ†‡»iÓøÌî}©Øö\bÏ¡¬?x EX¦{«+øÝ¿“J¯AÍFÚïKÖ_9Í^ë>ñ°}& Ôx¤å—Üâá:©a]vnžÂnOrÃY2Ò~™ÍŒh§ƒ.º«gª’eSö⋇•¼S Ôs]Ô÷UNÚTkoqmÈ]_ÎXdjêá¿ò"úÀáªÐ!·h+Oî@è*ß¼&‰îièKÔ_þ–,MÔ~¥êÚ7¸»¨!.‚ý©±Ë1tÀø¹§y㵠ÙKÀô¸êuÞtHhGŠxÒV(žÃ¦Ö;SÓ)í©‡tø'ºIòÜ=ÅÖZ)žr›Œ‚ Ááº0dNxi©¢`\îDkסáyÚ¥ ŒæƒirÅ ZmfsÓ×| Õ[—­LT¼ø ’dÔÝ^vmNÎóô>øÊ¬*7ßæxPånÊ]s޼í%Ç6ÙjÍ2Ø[ð©Ç€5ÜüRÝÓà@CÅ/Ú˜&xÌ)‘ ·eév4O‰ÁÞϹìˆò¢#üIWZJñ– Ì"’l£Ò"¤ò°2Šï‡î;Õ°€æD!ãA3ÓÓ•Wg¶"Ê_Þv›hÅ’ÂØ6-IeÊh6ý5Öëзº®BÁ7†gò¥#‰¡ZÜšìøõ†Å›’-þßšhÂw] Ç#;ÚdûØjZUÒ®SƒÎŽp®gG\¶R;jÉ6•1 Ú½Y)? 6&¤2[5¯kŸJO0èÃ#ÞÉ•" î8Šý8gƒ^ÀzsàA~ÔФ iìéá›o1`äCJ4>ô ­¹>7“Îɘó' ÎXõ¬ÍÙ{R3÷cÂBåGl›S„‚õÌå|Ü$Û’7 -¦Ž…Ú†9Úyqû3Ó}w3L ´0‹c#=&ÐmªÔì Sc¢ißæ|ÀhU¦¥-ªkÜŒi¤ß ¿´–JÊŽµÿ h> ¦¤cË#»À—Z #0œR8v"0G -ÐS{$ZMs{l‡­ÞŽsÍ’…Ä0…P·›óf öà§qó½šÙ3µ ¸k-‰c†}é™1K]Ð=ˆ7c,&eÐÝÍ$D ¦‘æÔ)Wî™Y{+œ<$7Q%ç~yVñ˯¿CºÄ3¥œÂÄò.J•l?4Õ~ÐlUN–¿ýôzƒmIŒþf€×©z!ž¼ßÀ]}ÁU.…ãχ16 T° âãG¬»]Îî—^Âû1%PKfyg5‘ ®ÀÜ×"·j÷ºMûU`-rÛ´7T`VÈ!9m•”Á?²)Ý¥°Ž9ÑplUök¢ñÁ“”R½^¢ìä¯é¶ OÓ¢÷fæŸÕEšgº‹qÞº¬"9ŽÕ6¼Às]•; *aÅdÌÏ%ÔÁ&¦ÓdFØG“£c{%ae(ð¥Ò|ý¼¨mŒ1ºoº,Û[¶ß˜Ô ÈÒ³)ƒ~P®‚2#å ïךè`µ0á§ëæa²ÆU¬ëÙ—Ú±«™hÐE4A”ºÏ*—Wf}‰0§»¾¼‰›ºì¬{g¢’8Ń<´éI5—~ÀPÕë¦# ¼ëÖ»øªFâ!%s"—jËDA7]”ËÔü²Ï/BSM²þ†PØúÀÈèm6Ë«Ùüwƒ&ºà¹·Ö”Dèw!ý ˜Áž’…Ÿ""£¦ÎS ??ðYý ò"–õÁ'Ïìi§u%½Gy9[ö³ÍrÞDïÒ0wXê-Ñ÷Ù=Æ48ð˜¯üD©³Zª†p|ÕSÙØ·³Êéת³]›?Ä÷‰Å½æÃ¦H¶ÌÜ z•Öš™x¯f¡ºÜ–W‡—äc¯ã,vxå2ûlqGã!ßÖës¾«¤3(Ró…Ëqû”» }—È:^¢ WsCPF46§Û¨¥zRÜýü}Í«è{3k3“3œ¤Ó·³@™Ür?·wxïÚN«Tàü­ü4”w€­_L ˜¾^pÆš!oÊ&cÐÌ-æ$óÔG¤‡F¸ð±lÎØèÜLÛ:Ž-:yS¶×쎜 'c^FË>Ma/;ž~Ý£LŒTÇêH¶È0ÔäÑÎC”›JxÓ åù÷o_<·¥=£J;$ô”çìpÖ¿&¡õ‘¡Ì|7R)¥ÔCaQðôø›œè´MÓÝ~<—¤Ø´!¬FØ 9Çj¬ ڛ㠆íj|Á7Œ¤£½šZù'6^L‹'#Æõû¬+µ2`»/ý äm74Æ–§XUû³_ìQ`'ûF,Ê’^è»wÿ; ZIoG˜àú¹úû©ùyïG$Ø]i‡þƒC?’iW‹u¸Ý€X°^N¨ÏFÖs.™È›N¥hP)ð>Aÿ’Ãn}¢œ¾wKŠù V·RÚ¡ûìåEM¸>ºÖãaw·ÌcÞâ(GðÜìþƒ’8f¼—U·ÇÒà°ÙNùdãO)‹eó>až¢U àçA·•¤Ñæ îêÏ¿$˜ ÉÛ`ï(Ô–3LÓAªV}dãæ ×¬»-*y:Gµõ„,¯`8£ô*kÓ°T­},ñ-KÚ¬NäIû•Ÿ€}ÐWLVn{[¿£›‰”:1ÐÆslÃÁþüjEu{æðXƒ•Âð¥ ekÈÄ㆗ê8OÓŸü¨«0HIŒŸ~†ËØéWbpª¿Ñ–*ñctÑcÈ /“Øz­ðq»ÜÄP;;P.)8ó¾³Fµ÷ðzbçú~©D?×¶ïýÆ]ÿ“Sk&ÖË(¶ãS§#Ás“’$f«Ãæ!ý¬!Kœ«ðæ<Ò™Yâ"Âl#‘·?©Ä·¦°A¯ìã úoUÌhv'›Nk+â,’´ÿÀ\“M”Ë~˜Lóîã(ì{Ù:«”O^4ŽŒÛ§dâLU•Ôà¦k†½ÈÉ‘™ï… XP?ÍuE¡%æ¥Oó•i'¥é¡šž–°åvê”±¢GþKš®•EdN÷ÁÄ)cD˱ÑW‡¥êðÕ”¦<¼Õvª‹sÁ‰ð#±–n–¢åSÑb^׿ؚăIšÕŽÉªï©º/-',èÚP1Ë6}h—b'dÓž0¾KÍ˨ZŒz_,UƒA³Ã8»cÍ‹|õ_â̤Ù.O/FŽB¡Æ‘é6wµTù&«{`Ø:Ì0ùžÂ5Å€¡ 'Íǯ=T‰ù ‚\7ß56  vt©ûFÓ¬¡%ig…)~¦gÙ†ëñ…›Án+†âS~/ôþ僱][²Ûrì2¤ÅTlæ ÚÝGËcÖÙx. C›óó÷|å“ý#“ÅW(k÷ÂTZЃúÍ…•§jB[avL·;×¶ìçÆ‚ ¬x»çPÔÍ_G/L¨×#é±){ŒY÷,ÉÖÍcÂg(…¯²êÐD¿Ùx“bN%\vœ=ò—Óµ^žjŽnÞ7¤:ýAü@ýÓì¦zçܛۻ‚¼ëýÃ"³J2}ÇltG)=%M<“•-C”ëå…g§9”ü"$Èö~‰ÁH²w.ÐR5R5¸-R-ö°W‹›æD²™«Ûg{ø¡ä}\c ðLëÝÁæqé“™¦í8¿-dzÄä.·6H±ÂŽ ¸v÷$¯á„Y¯+ާÆ”J^ñE ÝsŠnI.sùtf üYÁül%Ç&øg@rˆ¯ú©AåJƒ6Ÿ$àÒê[>ã.‹Ç¯í»lY§Vz]í…2\õuL âåv¾Á³OEwçy. 7ÂI FlˆIÉ¥œ÷çæíŠ=`ð|Ï0˜Zq^C*O@d¢ÿE>ܾB˜tž*ºz6$¢ZrP¡94ââý=MŒ¥wω%õ8|D J»ïõR“pté1üb+;—”)`&Ïyh#OºJˆµÑ«|¹ÖвO ëiŸL©ÂÛ$o3ÌŽTdζÈš>‚Ñ,8?DÝM#ÀË,O@cú¼èI3E±Í–Hƒk¶mƒ§”ÔZƒ€Ã^‹ˆÅ’ÝKóg ããF©¶UámÁ‹?ÊHxt2àKÝKÂèXb`í×6—ÛÅÛ¯á»XÄÚ'Ã.xµ€˜Üˆêvk+ÖÏ3,ÉÌ“N,¼ˆoT›+&+ÛJÀ㾞~ è âvs;Uh´÷|´‚q6ê5ùËç6 ý÷g­öôºLÅŸæ+Š˜õ—Ì‘†„‡ zÚ?Édû6`Á  jÓ\µõÞ­’¨ìÖ>$ýH”Mbç‰Ó«\S¯Â«>Ur?¹ñ—£O­«žo«CLžAcµÀq~Š}ó _¶A€Ïô&Ìõ• Õ^‚;v¬˜hî2MÁ¤êº‚£÷Úi@ç§oÒ/r^?3V5ÚõÁ˜ä¢ï'Ã|ZFGì§9 .K.|¨oÝ#©ývƒJ ºç;'É)Õ¾[,挫PU*%\p?k²À BûT2[óí–ÑéÆ}–بšÿ|æõºZ¿Ü²t?ù÷È–UU™a*±²ß¯×·@~ž&{ÕõyÙ×D+%[ Ï.ê;‰œ-tÞ–ÿÐø¢ endstream endobj 652 0 obj << /Type /FontDescriptor /FontName /RAFNRP+CMMI5 /Flags 4 /FontBBox [37 -250 1349 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 90 /XHeight 431 /CharSet (/n) /FontFile 651 0 R >> endobj 653 0 obj << /Length1 1467 /Length2 7145 /Length3 0 /Length 8133 /Filter /FlateDecode >> stream xÚ´T”k6LJw— Ý0C—4HwÀ0 0Ä 1t Ò(-ÒÒRÒ ˆ¤Jƒ”¤t|¨ç¼ç=ïÿ¯õ}kÖzæÞ½¯{_ûfcÒ5à“·FXAUp$ˆ( PÔÒRBü@  .›! éýKËf uuƒ!à’ÿå è #ïtJ`äŸPww€„ QI˜$%þvD¸J”À0k€?@‡ºá²)"œ½]a¶vÈ»2œ.HBBŒ÷w8@Þ ê ƒ€á-0ÒêtWv 0(Òû_)8¥íHgIOOO~°“?ÂÕV†‹à CÚô¡nPW¨5à`€6Ø ú?.ÀÐæöGo€°Az‚]¡€;…# …»ÝE¸Ã­¡®€»â5M€Ž3þÇYó/௻€øAÿI÷Wô¯D0øï`0‚prýap[€ Ì ÐQÑäGz!y`¸õ/G°£â.ì†9‚­î~w¨ÈëÀwÿ‚çq…9#ÝøÝ`Ž¿ üJswËÊpkE„“ŽtÃýÕŸÌ ¹»vo?“u€#<á¾ 60¸µÍ/ÖîÎFp˜‹;TMé/—;î?:[( @]P/ˆÀ¯ô†ÞÎÐßFÐ/õ_g„3ÀæÔf½ûÃõu{@HWw¨¿ïþ-á‚@k °‚ÚÂà¸ÿd¿SCmþÈwÃw…yï¸ýþszzG/kÜÑû÷ßóÐÑRT×äùƒø?6„À—à@ 1@ìîàÿï,ÿÁÿ7ößZ]0ì¯Þ€ÿ$TƒÛ à w—÷7¿hÁù×Êpþ]BqÇe(€óê?Š!wÐÿóüùÿãý¯,ÿ7êÿoC*¿Íœ¿íÿ3Ø æèý—Õݑwk¡…¸[øÿºš@ÿ¬²Ôæîô¿V5$øn=äá¶wç ó…ÿèan*0/¨µ. ±ûC¤¿gqWÇê"Ü`¿^œ»( ðlw[q¸{UÜî&öÇv»[Aäïáþ’¡wKöï>”á„õ¯m€]]ÁÞ¸w„¸“D¾ »µµ†zýæ;@€Ž@Þ…î0ûl®¸¿Æ Š`¿t‰¢ûÿÅÿ%Jœþïø"ÿ-þ«'ˆ»«ë]Ó¿©t×ðßòïç õ‚Bpg§©ûº¶³y:O¾µ1i̽Ô3SA¾±sldŸò„ÅR‚AVæœF™Êl/HÅܾS[Áå,ûÛô‘ïêÆzoá>F•ï¶ŒVqS·'¨“‰¾§ôÌSDÍ(¹&É ÷%‹]ûPt¢‰ßáÈZÛö°ùqÔõÌ$z²“—¨ˆ©‡¶iw¼«)ÉÔ¤¤—0ÞYÖG¶X ®‰Ssä,;Å>_yñ$2E;YCºã7Á³šx±hà I/CWtºGðÚ>k’DYj€^I«ÚøKáUN±Çv:©¯ÕC2U®Ç\‰%qk}&ÛáÕCNë/×Ý󥺟Ùo—]eÊ ©g%rδÔy¿öãMíQÐõcÆÛ!jô {m±UBûrÙ÷w UÛ€ôÕŽ½å„£eúpäq:Î4£‘` SÅôP5îÚH C?já‰è—=ö]S&ë¤ÇeÑ=¶‰_k&Î £Rl·ÝZSÉÖûsSG*\9|*`“yöQq:Â!Ÿ§¥5ÓZ ~Ïâ%y‹€„„.f–~#žãM~-ß±õÓ`BœŠë…Je£>ºë^‹T6_³¶¹/ìOÉ+Ïã ^GX¶r:Ä»É}çÄN3Smü^ÚÑá»Y*óÎmr¦¤ GâÍ·Óñ=Ž$¶îóx㥠‘•¤kè.Ù†8“š?âÙBk°"`&Ž{íR¼ï 4¥{u-”“ˆ¢îW‡žg%`á~}¥ß»LÅuõ $9>õ’íPH/tG&By(A½.˜>‡ºÀ$ÿi–Œ"f„ê)bG?Ìcd©½@{Yz'}ßÅwfõýù³Ã☠]äzR Œ¸òW—×Ûâ½ÞC[3Ìsïropx2ú_ÍIV¶‡æ=&—E¹"Éôt’’^И›²Çïì ì2qÓ$M)×¾4YšÛF+nyíÃÏáiè¦ýùö‘$²5…ùХש?[÷Щ÷…µ=c¨Û–ÄÂ|^I:~ü´Ýêª)l£i¢üö§¡ª0Œ²ëý\GÛì7³ž5E{¡“~a"Š&t\y/R‚ ƒ.#F§EÓ<üÉ‹„"dÑúJ&FŽ\*ØV¤++½F…-‡ä=c¹ŽÕ¯ôg´ïMgQÑ|oèQ½æ¡ìbã+J Ky{bœ5áJ]škÂm/Ef~®\Z§¥V²-2 g´o»ÞPÏ—<€ÔV¦Á?ð“”jµ¶¡b¿ªfQ7H+Ó¶Ë[ºª&xo=ÛŸŽ–r2`ªÈ)ÀJËȸï@ÝŽ?.¡"2ÖËF'¿ön1ø[xg XqëàâdS­3áš\îRy8òg2¦8&²< óˆpÅ\˜à-/UêsK*œ©¡ýgá°¡‹Z‡"+w­8¡Øµëãp m¥(u¨q\³¿Ö•Pz›aK ]ã(†UúGïѪ3éê$ëd+!(²Þo™X¹Üòˆz}Eó6¢œu“‘'_ÐáG³jlŽT`²Ö¢èi×ИFÏeª×Ÿ:’GÌw"±M™!ÅZŠÚ¯‡KäÙ¡Éf_-½dƒ>ᄤåM–¢ßWÖ}0TôpdRXø$RHíQšúç3Ù‡_¬©<Ðç8ßÑ[Mº†?«»¨7I%qÖ ÖÚáŠ`¹YŒ­$í^<Üâ)wr[—,[A¦Q¡·÷‡Òó·$DùÍË›·Â)CQEàoâ‡{ÝBTÁ fïãp½€›Òã¡};ì(p²a‹¦¡ëšÒ¹˜Õ6ª`†î¦»½NŒÚ³•X’Í&˜Ò=“’QD’ˆ‹Ð=ñ¨)­Ô×—0…ŸBí¢È·¹ÑŸ,›®¸eÍ ¬4£%Pæ-~'¡+|{ãÀË%žGÊø©h£ÞÓB± “F;VrbÝ, ’̀¡pBtB6·–Izó\tï¨êLbD¿æ“læÎgwBs È™Ö'Ø—Ü}›ø¬nÿ )t,kF‘Äé#uƈª.öd£äy‘ñéµÞÊA° µ fÇÛëJŒÌl›_6çÚM.G­>q“y=–ØuR¡^Ý>Ú™ayk•}á\ëJc+b_;å>G¹t§T²aÖÜro"Ýól¾¦EÈëÀ)¦¡(s¸²8Ãyßûóðéâ1^þÜÜÑœ—PY¿ÿ}ÙÆøkÌiA‡ðûÁCa€i`g\ ×›xF,#ÿi l:‚Dj†=ç5<²º!àMcótwKæ ÕÅ|Í2á0袮…d=€ãM–?ºå‘Ð F׿á$çú*¨|jž1 {ÓgRß^Þó̽ ,΂ÔªqÉÝÃüHX\ÀJŒúíÕsòxÌ:y[rñ•Ñ oéV½I|A»*}å#XÉ=Ϲ¢ÌU4‚žù«óŸ}cö!Z˜u$­( ±¢9Ðð÷‹(º2ÔÀSâ¹å4QçÕôôñaκ_õ\»ai3O]Ù Ÿ“GT]g'=iÒ54yâÏÑ*Bø~‹Ð?§˜ã“ •ÞãlùJñ“ÞÍ!¯à;â«^‚)älF–Ü+äcʲrCRqåãNÔžå„ì“fuöEæH…àjHútÔ1Íý!ÿ@¥ 5'%£ä6»ÉM@—Ãûýl.Ýl6>G?ä6fsê ¤ý’*0qÉßÂîÝ‚]-êÁK‡Ã”ðζ/ñ ჊ µŽ€ãE0 ƒÝؾ—Ú²ƒ»Wãap`š:yC^%"8cÚ/îz5¸ùTtÄ­L…–Œžnê‚?ßo}Ï’ÏÍd¥>ÞrãÉD4Çû›ÍáÝv¦e•úÏÓljÅš§lfC{¿sr¡¼©NcÖ{¹ÈfõQŽºÏ…'Á\·ITþê;cY¯ÿ"Fˆ®äCN LûçsªÜêþ`fKý¹I‹œ$á`_ëC”cúÌ"ìm_­qF%î:}Þ³U6¾ò›*ý©oSãyº>}z#k .÷&µ¸Œ‘â€ó Ê­S‚º'ޱ9/Ñ*ƒ‘b,OW·óÊH½´_É+éÚ#ÃõäkbI gÅ'ÁûécØe ÔÊS-¡k*Lýâ AmÒ÷Ž*ß2Œ9šW½ýÖ‡”QòOÈf…è®jÍT¯-»Ÿ:»áFD¾bk;\ó™W"èE /øT1˜º³˜ôíÝߺÖm%>gA阭¡¡_ýÓ>hÐßè±á¬ PÞÀoù,å]ð*ÿº÷#”ÖGE3Õ›-éxã…æÞ¹m•ö\ÖÛBªK8&5FQ»õ ËVGùùñ”E§$YáCóZ.ÌeRñ¶¡G,¥õòv\µ[Ò´UO¦¨¢iÖŸä³'Ì%x´žÜ°Ñi¤èmE-sÖók±®i…%^²¶~I¡Š­44ó¶ãâÚ:x,•\’ÚRóñj’dÛWyñà|ñ³ñe߇õÀHÂÑÓ¾#¬‹U¾/<0vÇ{Èû0d,ëLÝØM(u.å$o„ÿúAôâÅãñUVo†þœ¹Ržh.ÎL/ ÆÏÕ ÍÞë/§Û‘•‘¯‘‰qEmÌÄÈ­ ÄÊ)ÒaÏ·s?Ïq¡ƒ b<Öô&Œy?­8EÇû#dg!cöy¸OçÛ?Û=àË æ¼²è7/{Á(ié;*[t«Ðit‰5ÅžÛŠzoíËñÉä ά„j¯‹‘àá9ß& (Rô¬Íz_©¯€Fqíþ™ˆ‡ÆºòÌøÓEóÆyK}­”Ë+¢„ûDØëȸ+61ŸÄ£”]û€Úî=#[3—¶µÝ؃.úäú…}“Qri›Ï0¶‘]™BSÍ=Aæ>‰jÖÈ,ɯû•R+÷Ò–q¸Ê"*5]¨ôÔ öŽ$~JAÓÒeîõst{4;Ì®PÅÅyø…¨®ß¶šÏðo 8¥²Ì¤YORôIø¹|6jò¬b^¨Ý—ų5à²$ ¶ö™_˜e4l¯¬‘ý­SθaÝéƒÏ×›ñl÷H÷ã3&’¹Kz:ç•z‹÷«÷üæZ©¸ç–óÕÇ“r±ßx`Voh]ÞFÛ8x#5«v¬ÜLk‰r¡ª<1÷ã¨ñÓJšˆúÙ(4£¿ù]Üwqô,Ì »•¢ˆ®vfØt,y};ÃíÎL­5bw.šÊ»zUDI.Ú÷­POÆÞæXŸ¤ø'­a×Íݾâ9Âz²I_l7BÆ>´bûXήõÒòDªFA¶Í=`_0?M¼%â¯v0× tßÝ–¬ñ;el¢Ç2Õ…S—trH8“Ü·à¢`–7—ˆOäB«Ú7ÄÇõÝ« êNö;Ôgž£ Lé%[ù/?ú+çÅßZ‹%VPA¹·XŽNu÷+­øT-^y×wÜ‹Gìó²d<9|X52Á _ûò€…p£*¸‡Kpöa/æf3Á8Héyþ騴żm¤Ém96üUú sÖÇ¢Z))е²D?¡›2Ý~ûgõë§ ßWjÙ’“gúD"ˆ Lw^ÃL3™ÄܹZUPqoCÁk¢^ΛWx ……›»M×L§l9+­jàÙØ‰÷²íŒ¡LùñëÙãÊdRÓD_%Ð&’b_V£ÊãP;ì{“7Ý:aÿ-3íf“"œyP˜ÍWqÛíȶ¯L—º6%Ej˜«Ål!Ưªm¤’:“~0ÑÛñê P;M“GÀ±…tEox§Ò¥Ã”|·n/Ãóøã¨¹É¶gïÕ~™žÒSꌞ9ñÎ$æ›G×FY"]ę́"J†7G¸°”TwZW¦0G^û}éê@Sj=/Å•¶W¦’xG™lŸŸ½|ë2Ü<{óqžKœˆK·ÕÑÜ >”¶îì5ßqaÅ¢!jm¶£yÜ“š*öÊû…²9†Í,ïûì³¥Âmoü#«þgÆdhc‡ÁVå ÝYô§þù—á˜xa‚'”“åq†òd•ù…mcCçø÷s0à>²šÉXz2aøžG¼3ÐÚ\îÿ8;ï£ïcvH³UÔœŒÅý4sÉ\2žø:öþ¸#9KæV–e¢Â3-ûvÓ w[B•s5'ÛpešÖ@KÃm·’Ç d£s9è±ë´«>§@í—ù•¾“ºà êè…ŒirŽí!©Ö,%õçˆÇOw™»ö·ý‚zâ1%·C÷¸w)ɼÛþ?R·wïÝ”*=彋l[YL1W–ÜÕr25£ïGA1b¯¢'[{Vœ¾#Ú`·zÖmó<.ò¼VΩï;ôqMa$(ß´Úv-BnÿõÆ÷=Õ m2ã¶½‹Î`Ã!+qÔ5­æJugçÀ~â·Û<<ô…T°MƒÕNû 9‰©´'_mÉÄæSÔ#.öd¦¨ÒeèÐÂ\ƒ•âR÷fj&cä|f02\&?̜׾HîœL‘ð5>uè´ä;jŒ¦Á7Qdúº;5½ H R¤Cá©U~CÕÅ~YÍ[Í&²Å¶Ãü].Xó‡úXmœÓ&Išï+ñó.®ŒjV#Y2Ÿýi»iÓ6ßOoPâŸêòí:´´fÉ’dgfüØ wf~Ú!¤z Ï@› EOÏ=§æ:Ü OßÅíåNÀ™Ö`) Æ-ÈŒÈØŸAyeS W}éDøè1üÖÌkr:> –˜N>’ØY©»fq•„Ëóâõ8 ^ssbW׸lçQÂúgvœÂ2ÀˆCxƒKZPuÌzaN!Kô³§é5¹¹GVwë}a–;,L1#0Žó½VÕÑÆÞƒqehëGK“Á›Ò4É :&×¼˜U.‘À½ú*ŸMž•p)þÚ“&`Úlïa¨+¶×| YÊ•Íç:€­YI–ÅSߺ RlŸ‹íÒü™G[ë^J­‡Äï3¦¼Ô>˜Õq}«P« æô_­¡HPzëaÝÖ,f”øn‰?If ª;žÞÜ1ÁÂô•çcvÇé–Åœy’d"¸Ý"Ç¢]ß3núHSÖúˆïÍ/[fUiRû‹_áó©ã`+3ŒDùȬjbeÑ NÝÕdÿŽ™þRÿ^©æ´væÉñ#\K±sSDÎËÖšåXpØq÷¨0^]EÆæ ÿ»Òë¶ôXëãÜã^Ï0{tüÔö‰Ù³“ðÛ2/6” K4¤›²¾rI_Y-¬ª7fÝ0*iv‹S¿PS›3™ý,Ðþ§Fó(-‘ƒ‹©ùô¨Â‡ ïÍ"¬K]g¢6R3†ÆÅl@ê0‚s†sQ`µì@±hWô³û­©E¯žm‘“¨Ð©/MˆÑs f á`O¹wÎNcR±\ö¦-Ô¬+ Î ½ã>í[Û)<8P¼yæTkúíGßwmoã9}‹ Ñ µ`n¹¹pïk–XZ¹N& R)äá Q—VÂä¨MH" 1­ÙàûPB ´RQÓJ´Ý…lš­ï׎MÔ×ø÷ãÒŽ A*¢,Vá/9«’ªo@‚S¥ ÕN$Xb”¼.Sa†K§XºI¨qM¢nú×8ü:ͽ½5iT\†­*²‡î˜?RîãG=ˆ4ÑW5Xú9µk52“;ûê[%0*»"5Á(ÿ¥“$` §1 ?ï1/šñCÛÛ‰¢çHæÕÞw¤í4G ¿Î‰•e½ñz­ñ³¶-ÏmÂ)¶ð¥¬¢ °wC?àÀÓgÅÙ(Õ¶gŒc5½ ШoUet:d¥Ð¶ùãuÌ…É¥ÙSÓ{÷ƒ˜)ǛǣöYäüÊËÝ¿Mì”kH…ì€ÒìEñ\`N ®yóAáã>Œ¦×rhÄù«Þ&9 »‚¥?b½k5”÷oÚr®Ïr\o'#t߯/7G öâà)|ñ‘ŒaJR&zËàëæÐè• ,ó©ú“ÄœçÙ"¼¤ÀÚµw(Mãߺ-ÀŸ´4xù•*bIÅØ¦;´-«79aÏê5²±™žzWÚëå²Î%.ŸÅ´’Ñ&¿éQ>Ï(9A2æû=8³´Ñ XX~^äXÍøÆúC"š¦ÈñkMSÛۨãCùªzN‰õªÂ‰–tÑqÏE5Ns ‚ÑîvJ˜Ÿ~·Å0 }ÕKWM¨Ý!#›ž4%é’¯S_/»w±^Û°d çt'ª“QGñÕ#™âßüˆ0t¢B·!Ï-3Ô ´µÛUm“<Š6Ê>Ç\Ê7TIgp5÷l«‹ô×#òE\·–ØAg«¯G“Žcà–ì ²ÏºîÂëûIËÒÓ…Ì{‹žô#æ3ÚËš«Ÿ<ãU!§ÂÇØ]SnÖdm+ç×R:È9:üîÊÍ”«ŒE „©˜½|iÞÃ?QnÙAùº˜/élª«e?šÑLýl(¸§˜]—L`jÝNß+•™®}@ ôrÕ´ô˜ê‰*Á/³i•’gdEؘ¯Û8Ï–%ð+å:®`Ý„!íƒS8¥;pùãYÉ‚%M ¶ò#0²z&Ý MNRVÞ‹{s% ®Ô§—¯Î ” u#j¶ÿˆ¾ endstream endobj 654 0 obj << /Type /FontDescriptor /FontName /OMCBAL+CMMI7 /Flags 4 /FontBBox [-1 -250 1171 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 81 /XHeight 431 /CharSet (/i/j/k/m/n) /FontFile 653 0 R >> endobj 655 0 obj << /Length1 2809 /Length2 24165 /Length3 0 /Length 25740 /Filter /FlateDecode >> stream xÚŒ÷P]ÙÖ ãÁÝ ppw—àîîwîNàî‚'@Bp—à4¸;y§»ï½¤¿ÿ¯z¯¨‚=¦­1çkí ™Š:“¨…“PÊÉÄÄÆÌÊWTcc°²r0³²²#RQiØ€ìÿ1#Ri]Ýlœùÿwš‚À6 S8NÑÉ çn`ã°qó³ñð³²ØYYùþèäÊ0õ°±(2äœnˆTâNÎÞ®6VÖ ð2ÿ}КÓØøøxÿNˆ:]mÌMЦ k xEsS{€º“¹ äý¯´‚Ö 3? ‹§§'³©ƒ³“«•#ÀÓd Pº]=€€¿(™:ÿ錑  amãö]ÝÉäiê € ö6æ@G7p†»£Ð^ .«Pv:þ¬ðO#à?³°1³ý¯Ü²ÿ*dãøw²©¹¹“ƒ³©£·£ÀÒÆP–R`y¦ŽšÚ»9óM=LmìMÍÀ37H‰ªLÁ þ§=7sWg³›ý_-²üUÐô2·fù«¼†·3ðo'Û_fpþ¾ÎNÎKp@K ø¢¯›©ruúûþéø7BdcXؘƒf@+GÄ×ê`3Ðò Þ|W/€>+X{lÖ¿~þ÷d–—…“£½÷køßûË"*«¦¦«ÍðOÇÿó‰‰9y|™8YLì\¬¶¿DÆ~ðÿw™ÿ à¿ÍÿmU1µù¹?*Ê:Z:øþé<¼ÿöáñYÐþçÈÐþ½‚’XË@í«ô X¹XÍÁ¿Øþ?€¿Sþÿéþ¯*ÿoÒÿ¿„¤ÜííÿvÓþíÿÿq›:ØØ{ÿ',ewøX(:‡ãÿ Õþs”6îÿ×+ 2QG+ûÿÑÆMÊÆ h¡b2·þGCÿÝpy{G Š“›Í_— € ¼aÿÇ>pævà Å ¼W»€àóôï%%Í,þ:xì\ÜSWWSoDðÖƒÀ— |B-€^KÀÂìè§Àíù,\ÿÚQn.°šþ2ýƒ¸,b¯ˆÀ"þŠx,ÿCl`´™¾ºù,’ÿC<¬©WŽ–~Eì™WÄ`‘}Eœ¹W&'ÿŠÀä^˜œâ+“SzE`.ÊÿC¼`.*¯ÌEõ¹¨½"0õWæ¢ñŠÀ\4_˜‹Ö+sÑ~E`.:¯ÌE÷ˆÌEïó^'ÈŽ45kïN0;S7°mÜì^“ÀåÍ^¸3WSs; øf zµsüÏþÏ ü¯ƒýï Çë*|àuÍ_ýà®ÍÁâ¶·eÆ÷—ÍÆÕÜÝÁÒ,§ÿš¹ÀLÌìÁÒýá¿ÁWõM5Íbñ ÙÁ-[Ø]nà×Âk˜Ô+!°Y€ÿ"ÍÆn¬}S7ëWÁý•ãâ¾1^Ë€çeù Á–@ο Í5Áørqüÿ Û_†×â\…;¹»þ±8Àê®ÿÊŽ,kogk ã`Û볂۴ý‚'c÷÷ÏÖÀ›äðGk੾Væ§:‚¯‹?üàÞ^É€“þå7ãüês8þKAœlÿ±þ[?൜®ào€?B¹ÿ¶Ù8ý±ÑÏåUAà]Ü@@ 3û­ÂÁùêø÷BlmØãfOïU2\à–Ü€6ÿÖ×_1`mÿaq³yÕ,'˜¾›ýŸ:bc³]üŠbY»ÿ#x< O§?À5Üÿ€àòø‚™yþ¡2p¶×\Þûž‹Ï+9p% ë?Kýëš7wwïèï1øüÿý±zÍçœÌÂlÂ:îêE‰<™~¿›¦ú¥AÇä»èÚéþ€ú&•®.'dÍõF4u¨}eK’öZd‰ôÉ÷ðsÓ›È/ɪí¿ýÕ¦~µ#.LâöO”Š6ö#¼eÒÙñ{rñÓ ¶ƒþ ùMŽªÀÅU¥ëγWÚ«±¯ry4bî—êN·<Òcå¦8ÍXƒà3T…f¹³øäp &bxzÌ3/´™ë›iÌü‰R¹DDÿ£8ŽR_½uö÷³>«Õìn]”zøÄÐט£SÔ¾b{irxó¾å¥+ý ^ŸKIóQÓW˜Ð™÷سëlÔb[{>yŒ.~eÛ.H„Ñõcm'ªhÅ6v%WÆ©k7ŽÁ}â°ï}µ[í¸Ñúni›þv‰ïGã `E×ú0¨í»ïï&—Õ¡á~¦Ûˆô/wC­Ã[ßýµ? ÷ ¿µòd£—´Ö^YæÏ&N‡­Auie±Ñ—Súº>ƒ1oï‰iúÊ­ôbö-ý쬄ÀšCÒ$'‚¶0[òûûŸñ4ª Àæ™ÐJ–³õ\f‰ oR…¤M®…óÊRNYéž_óµCÑ!Þ¶÷|ÅÌ'Z5ší \ŪdÛG1Lc{ÍÁƒb¡á½|7{›7UUbF8ûNZ÷g5žQbC64x ßU ÊïrSΔ*»ÝšíA0£8Öó shGÓÖx÷°5ÖUöèÉX)+AESº¨Ø'¿/é·h¸ QÚCP$‚ûþº5ˆ½¡SùŽ9}õUÎÎ24…qçP«Öù3¡‘ºÆ]…Ï:DÏü±-²‘©-J_ûƒœ½m®ØLhûDj²ù­ ¬Ëµw´±ÑÏ–Ñm?5=E›–Þ~Êžé® ŽÂˆQ¼éä`Å?’”TÐäüT(eÀ~™KγÝôÉy o{WëfÐðûZ0¼êA—.$åš„p”æÂäÎ#wjþ/éBUÇ*¢¬h‚m›:ª¹”<²ù)Dv¼OúyYW[¥td±–á:!ðæ{1ð[‚³4؃ ñiçjX*’…daLüŸ0h0ÖŸ'EQåÐê˜a{ÄåÆ!ä@•Ô=¾

´CõËŸ‰X©@8LûÊû*òn9¡Z Ì‚–X¼¶Ø[ÿ]-º˜õÁeÆÂÓàŸOÕ0qÛpK;Û¥â +;Ur™÷:`¦‚¼î`ÊðõÇu´¢0ð.¯T êP4T^®=B îÃŒIÎÏK„¡®ÖÉmÉî¸ç a±& ö¾„ð·@ÕÛ¹cKo®‚ØDÝk*s‘E'˜õ9‹ÕØÍòL2’€í*gƒO/LÝMiD£U.ÉÚ±•½dÌ·ùÆ+ŸÓ¤›o7ÎöƒhID‘í[±¦NØLVxÝ™/ÝN¶É.…Î}†š¦¨ÚëÖ ¼ Y3ÜB0æ 0µÙ¤¼&NföÒ×VωqÍ^ZÞ×ÍKS¹ä†>øé=.¾£äG$fÞ,ô•3»Šñ½§ÄqlÓ¯g{èUZˆPÜ–óBLÚ)EÎÄÈ×CL wÌ$ÛK=ÐÂ!-Ä*]F—A ¬o”Z†LªA\£ïˆì/+LÝêà ê„vë*ãl–ŽG—4 ×Ú/²^ïê¥ÂQM—*uRéìݜ ¤¬Lè$Ÿâàè¸Uá›ç;Ò‹sã‹„¤1Ùª!A9r]Ò¾çWJ)=t›¾Hi%³ EÎ1"Ö^ §fçôĬ°÷AÚ¡œa×>Åjð\ ï?Ræ3{)þE®\–5<¦ÝC/…i¸ÊRfâ]«ú !j(Å@5µ›HоrÅF÷sÊÆ6ñMôžC‚''ñÅ3‡gÖÔk9:%ÙaÅsDZ7s·rSɰ dš2¸©ŸÉ¦VtþƒÙ†f…ì÷9 »‰wïy¨7­…Ár|ÀÇ»Ü#”tøA̧v82?âŠ]Øc¦êà²ãz>²GÒ´˜Œ—`¶Ä1m9ßÊs‘ì "üÏ/)]ouÀóð|¨Ìš{{'±¹ýêdÒ´\2Öû½Öh©”äÕµ‡“ É5Sý¨Ë;/Î ™ð¿ƒ7ÚMËÒ$sØèºXäbW\‹—;w2äÓUúpwliã™Çæ\Jw|•ÎBìCnlê¨ïZ:›f‚h¡}Ûîíò…^51#b51Sûo‡^Æóº¹ü \Šë`ÖvN–±O£ß`}h¯Ak& ,ÿÍb[¾Þ·XHæÿÓ$åäP‚ZûmÐ`åöœªÎgJ8™µ»h£ Ù’š„ÀÁYæEÝ·ç" Ž8U®ièÆWGŽ+ÁÝð(_•·@¢J°L (Ži1é°Æ?qŒÃ—­°“šòpûãâLHê'ËåÅ"žq{[¾¯Ö%¶! ¥ìÙSuNŒ ¬* œ¦ëŠhɽo.½`‰x£N@ƒlôùš#÷ÉVäÛ«ª1T’–UzX`ü βª Ô‡Š; šÏgyèy‚ .DŽ ÛîÁ {q¶d^×a:¢Kâ|¯ËÒ`áí˜I6qu†®·Å*l=$À!(uö1$Ž*¹4Å¥á°T{ÚóéfJx’/À!Õ_,ÎJ\ò<ÚOÀh?ºžå…Ÿ¦Ñ2i5ëzŸ§ë8Ýã4ý¿õõîö\•Ãak¦ÈFÒtS îÉf eágt•OçÈSí™—JÖµ‘üÎ~'¶8*kH¤Çv  ¸œþ‚a:ª¯¡`]©Ëô+$@ÝõÙÛ”  ¨¢+]1;)@Â÷Ö¦b O7&\„+(iumŠ–ñ.'Q)·'´uHBÆ6²}Ë Ç'Äk% q‡¹[hir®®®pÂ.½vɾW€:­ŽBpw)«þ˜@g9µ-å“mÒ:Ð*\´%k!¢.C&øÛ‘tôp„àŠΕ yk°¥õ©’£ïÒ´F”ÌÛ»c‹ÿ|š;Ïœ¬Øë 6-ÄlBñyîý‹¥?ÇZZöáHÙÀ¹tEFÍ.¥¢ÛÔ›RmÍ'ÿÇ›æÖ6ÝÞæ8#¤ ™y*Û±2™¯§1Ê2/ðCcHï[bö"Æ/7åÚ< Q‚ W()ßT¢-Óˆ[ se †©ã?·Ô?I®ÁÏEÈ2­n bÂÎ 4ŽØ·wÒ†lR¤½ˆ‡s…hýH±l2?é¨ëk»lÂágåA\kò…FÖ¾à)pýÙ¯¦ÇÂëi•îá#ß”"8ɺŒÓwãΦ{FHÁ Ö‡ÊvÐ&¹­'Ù[ÎwÈ5¼îÞ+”®i«—©îˆ–þæ.= \߽ȞV gsˆîºŽP5k ¿‚ èvløe. ¾*‡÷.ÓÖ•ƒ÷‰¥´¾>»LÂá U»ï­÷2IóGmœ÷ú„æ…gËèPÅk{,tA LúlᯈÅyS)il¶µp¼Ã¯Õ9\îpÀ–KºÃešæ»%¶Ùš—YI¶œ}²kSc>̾~ò  p`ƤSßê–h]´÷~$ÅçIÆ-BÖ½žo¬ésØo6j©“vç2–Î~s×¼ÈVö Ä;ƒô¼7ºy†¸Îùþ[c”ño !g8†ËJ+>kJâ‡ò>HC‘SÅ{“£Ÿ¥åo¸ªàJ<Ûa¶e]]NEË9,ECÖt1lÜ«ƒºW·{.:§N~`꺢ïK\ßðÇÇ-Y¼Q+…^$‹‚0™*±é6¿˜V– }±ÞœàÓŸùèþ¯¾‹Ï'ŸD†Ñ«!_aªC¹íi5”Ü¢ª¿ åCä2Zì #K›öÒa‹Î¥ð±R¶Ë¼ÙßÏš¤‹2ÑGbKs¢;Á³]7Ž¡ó©Züt·w¢¤/‡íÛE³}à"°‹hÒÄýNŠÐ¦úˆgn%j¯)«ßh‰›è„%Ï{ê·‰éY!fÙ J´~Ýx4ºÉ¯£’yÅÝž„ßaLIˆ }vl.LÃð0ým‡ëw‡D~Gÿòï ôBÛ9Õn}“ùË1ÒíC«#=ª/j½°^…ÏeLê0fŒPÛ.ï1©3“Âõ`ñoèSy!€IS9U·IZÑÉê·!·Já/#íýFïé“pæžT‡7Ê•Ì,Ö;¾þ Ës"Gˆ[ü¨‰Ðá3uiu`5fºý!Á½Iª`*S°KçÁ{µ­²zê¾jÐêæ…SX‡Ý°;³\&k¬({þ"Ëèû¤‹Щ!'Cóø2ù¶4)i’G舮¿ä2SÆ1!êKy(ù¾¯D„š ;èI±oàêÞíWYÐo;>Y«$Ë⊜)èÍ—‰§ß X‹e:’GÓЙ6Ⱥ&{Èéå–ÕyP»–tIêàßîÁžÚ.£SÿXÝ“Cf¨Ú‰úö¹s óÝušRá/JnuB ]Œ÷Ëøµ é/œãOv…³!&hnŽn{î¥ð,´¤ævqÝpª¥ŸKÖXÚ*\šz`†n ­cûЪïïõHª}Â$*@"È·@̬ìü=Å![:Amk“mÅŽ(¡—ù¢¡—€ àú±–„ܬ_ú—/:hþSÅ]£ñú5E÷,ñŸ 2Š“RTü`£É§;äo¦)Æ5 ZQ¥n v Ÿnf’¡‰ ¡‘2ºüÔ½!(2î3Ü/ª}O“4¹ªƒf^mH9.IÕGù+mÍ0Ž—©Ú@r‰oX„† •_Nrˆ]µ~wxÖ†ë¢Û<ÍÿÞldŸ{Íåô]·pRJQ‰ºœ˦"Úà“’êwÙ ™™±«IÒ.a þc‘©S¼]¥¤7ê:ßWY? VÓµ[¯kÏÁwrZ~–’hµŽ_f^hÔ€¢3R‡b" wôôbDŠÒSj“Ä™‡¼ª»EÒEŠSƒ6ûtÏÜœqtü0@lY??ënp™ÄãIg{} …ÖÌó‹¡ÑIjˆ “AÓœCç–E2 Í Û]¹zäÒ2þ 5$4[ÆG/Ëê;Ýl@Ê¡¹äÓ>ä¾-•c =ºX~­²V>L'™Å‹ò¨YšóàIW{f…=‚ã2ÿnaKQú¹n'ÊúËRiN‡› Óg‘$Dyhižø-ò?ÕÉH¨Ê‡_½ 7¿ðÿâ^…Ù&u¬èRþ ËÊY‡ŽÝ¢§ñsgêHì½ïçô-Z’år VqIjÞ^àš-á=Þ£ùÁ€¾Ú²Mõg‹îº>GãÔvMÕ>ŒÊyt3Ê“úA"\4…O¤jýLHÈAÌxÌV kÒ_ù)¨ù]‡ÿ-LÈÒ²°9à Õú'„c¥ö1u.¾ˆ»Ðïq•yä=s½9V{û«ÛFfÚ}ðpË´ ô”€XO¸ê»=:œèØä­p#l%2ך]ŸRÁÒj<×tQ Yq"–¨`D&[$·ÁˆýÚèStŽ<'!ýX°<Áüªv©ú/•˜±ZÑJišÐ^ÜÞ•¼ÆÉ£’§ì “2*<ßñêHŽu·µ‡˜¤†0%ç ³ÅÞoæSbBž³S ª~Þ٠ض6Ú ÙÚ=ª, Xðµ(söœ #†°y°9 u‚çsMÓôuôñçV7¼|§b¼uŒü¾YСªá¬Zª¤¦ÿ1úVÙ©äI[™»’Ù¢£†P„lw>}OÔˆ°oW©vE¼U€ ´2:Þλ£ÎЦýE¿ «€rˆl7.#Fa6ÍŠH }$)ð¡’d0F)ý‡TN×Õ¶…ÓݽuŸÄ‚7¤x« ‡ªãæ/ÄÑ mÆQTk}\qj„–¾|›|¿ççKà~h-ô='S EmÔI]ÔfåœXœñIŽ\{r°øqZ,å[ÛÓ¢³“æÙÑ©´é¥¸4¢-Û¶&{ÕX^íoÄp¢±­Pzô£Íeìéõ'Xµý»âº@>˜©¢\½öç+ÊEífjO ÚÖ`‘ØÄŽeT¹Ökï¯"òEŽ\Œßr ¨W|fò£_òQnoîã*ƶWÅÄœÏÜâ„?ñQ ¿GIÕ˜Èý6šÖŒcàž17=eºÁÞK¤®)Õ é?à–6õ%+Ñ>þÀ‡³Âüöf@“òœ}Yê\Õ¡§à‚Éfù:ju•qÏ"2k¶ìäåé‚^h»½å猺U®¯§ë{Ç “­w(ÃÔ+DñÅÏØ› ZÙ/8sºP1[’;|æû<^k¿Á_¶§»ÞIèkÈMBþy½­ÀÎØÎÞš]ê¹dz‡f`'§ï—ÝãûðbBݩ錘ÃÛ…16ÅÜôs…Vâß´^lyÙLgѺ¥k†ôëñ×T14¡:ó›Ú4D<Â<+òÊ퀀gèXwÔ/w 7û2OuÜE†`±”Ža™ w³Ù¹œö’ \“õ ½0â’˜øá ߨ †ÐÔOwÇâúë²mê)T€ÔÏ(’äfg9ov3š>‡ì|â1¡‡ÂªTȩ̀°\ªçWüü’¤Ì¾"2âïIp6^È#Ý0‡î¸ø2› „ßœlYï‡lòpí‹pñQK<Â%–“ýá‘W— o³rÊN€²žêÛ2Ù„€Ï¡;m¤34dmeЋ*N©ÙS ®Îª_È”ÌU?˃Mz¨'½M¦ ÝTT3;ªCß­ç5àžBps~91‹ªy.sýòàÖmñ«ó —}Œ4¤òË”Þ Ó'§'Nþ®–n¨èi{¾Ý¾÷§ÚÉ;²ôWYÆ, ‘‹H#ƒ~ïÀ¾Û…²éwŸŸsξ$ÝvbÞ=~²N¹4HûWMİšÎqÙAVÉ+˜a›DÚÕ©/‚Um-Öäƒûrloåà ³Q]<´ßbNɺ¸kH÷F-~n¦]`ò‡ÀDûT@_ã!rÄÇ^º˜ÆÎ¨ÞãN./>GBô_Ï'Y¾zîð ðO²äe,Ô Î°.{>ŽÀ8 1lE¾¼ñß°‘‰€.øR¨¢ÂVvÈ<ìw«Ý|ßϼÕ-8T§’äœÑC~„šü5ó¨س7ÚöÔ{?¯ËÚ>8­nªï¿KW2P< X˲E×´ãôùîþ«U>ŽKÊîEZ¢h~+1ƒ­Ú^i]„T:’peïjGžè˜²@ÑÐo’†1AGzž4‡<¦ï‚¦Ñ(Ø•ž±ÒF ài£òûí”û@<©ÖoÔ~gö ‰¥òüøp~Öÿ-[I1V•¦#l5Ë‘l’jÙž]Íú5Ú1DëIºÖ.0b tOMU……ÜÏ@‚†W®uÁø2D\¾@Åý‚µ]ìd6œÙiŽ÷åízµ·&ãîÑ•F bw.Ý›FÁ„Y„õ*4ªÇ²öTç´°+cŽ_óŽHdͳEjî~ò^É«ÎÆøk±'òyºã”U=±S÷¤Ÿ¿è0kÒèükÑܑјhí4 Yr:4̲>"ÉgIbdŠo5±Êz.Ø?Å1ëe}(v™šïžŒÿ%zžXú»Ý|¿·gAùÑhÂfÙ/ß¿\º­yöRØÆ ®½lçm¤dé ïMB¨®>p/Rþ+ÕN9ª¿©ŠóxKÆn}Z{ ª)+Ù0Ô6A{˜ëøSÌ çgY×ûHÕ ŸoŒÊÙûž)€_q"m<Âý…+¦[F¼Zc¦Ãª)ŸdP¾P†kÀž‘caIuØúGÆ×U4œ¢¾!‡jO¿ªï@©í ½I¡Ž›ÿhxoøUæY±°"’qsÿÜ’Œ¹fIUªÉrðÙ™¶ïÛÕOkï5u¯øSéÓÔ ØÇŽ!ŸØ•ú³!ì´F^¦eã<‡ •·-žÓáåû ÑÍ~ªä °~p´1‰4™Â¸’š;”°¬ò@µ1­Ê7è{2Ãt쨀sItg„"Ó1Ľ«}†¥j)ÓLSŽ\^™+"idH]Pgà*‹Pßj|°ØÔí†2­ŸáÍÅăGr½£%QLøöùB+Ž À7öŒå ×`”ÒÄ®Æð}1R|–ußÏí¶Eå0CÈE[Ï‚˜CnþÇð¹§Jºü`ûóÀÎ1_mËÓƒ¸ ‡G)”þ[g±ÌK/eKcYØêÈ®ASë ¨¾Ý¹AL.^†U7JÝ…Íü½2w~_âŒ[*GÑJBq& ‡÷&…öƒ.'4.¦.Ôû¸(¨‰7z¹”×®ùÝ* dXrUÓsñK·wîva–aæÖˆ£E·?W(ìKW<û‹'÷«yÇÿàðÛ³mƒŸ9|;Å鿉Ž.”#´Ìü¢¸P/béã¹áýËâîù ´+yz;ËM¡¨‹o·\©±Ì¾27™º¨x|o}oQÚˆnŒ}WÖÐ_ Ñ<ÅBh0à¨bò8Û@µl…¤º2>M˜×·Ÿª³FH‹8ûqÙ—Ö˼sïrgõž°Örº\ÚUöP)!å׀،+ ûèÅ¥QÏõ,ëÉ-ÇÚŠ-Ii¥#W´‚@Œdú1~²25qåŽÅì0ésêÐÛ£Û‚}FüG·j¥=ï':MËt[}¾l±k{\p[‡Áu¾Ek‚jûxßB·ª‡á0ª5g}Ó•mÌ|:*a«a<Ÿµ™Ow4çöJ(Ëëp>*æh~IÕ(á§èói﹡6lÓê:õeæ‰Ð)²RPÐ×0_ã>DêÚl¯÷.¨¶6i;T‚roŒT´9£ëÓ)Å0ËG Eâ,dá$«©lì:Cè@bx¹UÍY«8cÉ¦í®­¸«Ñ³ãÚ@Úïü_ãÙo—”p¸ÌŽRÁcÁXúͺRöè»çÓì‡ûÑ|bèëÛÑv(ŸP WQ47ÖúZLö|·÷ƒ6úWÁnøŒÆŸk› Žwå¾:k^›¦¿eÛ†\júWHzxžä×£h>õü[Yîôñí‡ÍËaúj_ñÔ·›³42o{Ü—´jPD Ëa’ι|ç÷ Rè•„,O*|ßm£‹ñ#xû&-·Ö¬£ÌUæÔÙ'ÜQ˜j,È ñX¾_³õ£t¾bf‹JØT ޼ áÍÁ`x~¼2¢èÁ„=ÁÌ„›KVô5£?©t›•zLî-;Ý5±!|¢ƒ(¹Ǿ(­×w¥Euœ`˜-„žìaÏt‚þ Õ³UËûFÐN PäÔ–!æÄàOñöÒµ•ë¹&™‹Ü9z43–¨ùØ|Þ¥W‰ÈâcˆO>Þåðøã¯ Ýàoñ΄¤Ìªu÷ß/|‘3eMdÈ…È¢î9–³k Ð2jýnGýÔ‰‰ú†–Çwoûl*#Ä'TÉÈÃö¶Ñían/˜N±™èDo¾’{—\s$JOtœË_6^4,ňâ5@qìñ9NY¶éMþv,£Jx¿cQÚ€¼ÈÜ8Ã%›ËUš×(.ÿ¾ ¢Éž["~s¹ïqÈ^‚6ÚO™Ô¸Oï`ÜE],4qŸ>í:]^æªG¢ÓH"UæG2Åz¼;‡³o2pØ!hÆMzg0 UBÑ3 Ù*Ÿtìÿe®{ewá×LÈaðÂGö}Z‘Suwõ„77_Šçs³9ï¸DQ«cçtvT¥ýn€m†D|kh–25$F«¹ eªÊOMRœ¼$Yx ׯˆb¤EKÕ‰ìêªÕÅ9Ž™ò Ö!|„sõ­š|qñ«±}BÄ}K4UÄ.>Œ.o"š¾§k¬}…§utÚ… )±\3jzÀGSyþyû<Æ :ñ qó6¾;râëöD¡ tOÚÄrø^§ü…x±¢õmÏÞaqšZ\ï`Œù~¢LŒÿ¯wiÈ[_wιH˜ºÊÃ3»z …lÿݦĕë`R®Ô\±Å‚d ‰Gkv׫? öÎÏÌZšnº6qœ–>y'>´œæøü¤g¢ »E­‡ÄÝPñ«L‹È㨠~®°TX…bøŸÛó8žxŸB!Ez'#LS³°JXá—U»X¼àB=>OZ7†¸ÄÐMWg>Y¿‡š[©PÕÃ’W Jä >92Ì®½¢bÆ~,Fþ..‰lw3$¦±˜"Í×:KÀëU‡"´[:ÝäÓKie3÷Æt5ù’y¬}h:˜àå.ìG jÿàp9AìÎL1Á@xëÏqÝÎßlß\”Ÿ˜·F¹´(Dûû½àWÃðæÊ½´œC7^ÙÛÍco>½Ïʃ“p|Áã!/k!gd 0gpï°?}Dÿ—F{±4KÚVf¾¼½õLŠüI6÷­aC¬í»+ýcaDw¨(x~ž3ÜÌÈÙ®âóù xä…oA=˜ÉÓ²ô Ô¡»0~­'_सÙn ³6š3£ó¯1mV|‹:—0ÑHª¦ß–1 ¤Dß·ûÅš,:,ÛK^Ò¨µÖ=ó{Y—í\]Ç[†¬Üðv5ˆÈbl7¹W–D@ÍjY÷ea;öÜ: ¦Jzë9šáÇ ïB@ û÷™«•˜ô×­X¦$¤¾AÊvÂÇF\ÅÝ8Á@äù}˜J+a1,´Ã[ïAÑm¨\”‰GøÑƒøðtâ[€5ŒÔ]T­ì¹%ËY‹——/ µQ©éJZ©“¹Dˆ,ÏÑ4¡C4>§áY¯­;ŠëÓg†™q›Ó‰¸3CôƒÆdžª„š›†4-Ü©Áý3 3W™QƒšÉŽçš+èÁ8Í5î…ZAœätÝ™VÔYˆø”mtc"HV.üå‚—v¯¯_Pô®FIyD¢¥$£­Fr¡…eî¿»_rjwl}ü½G›òÝRÍÑ@'}EúÞÂf3ÉVßÉz×9²R¤ŒÓеb*S[&o?PÒñ¹Å,Hu{¤–éôüG¹µ+ý—}Æ÷ v ]Wûb"Ué¸&&­±‘co{uÏlè·ÛÍÌß—¡0E]Ì|T °FCNµ7vC¶ö¿®ß( ëGooB¸Ÿ1ÁìÎSi¹uZø½•˜…Oä[˜Q`H$¨«3ô)^龤ˆÚÉD²ú–A‡ŸøyÜe òÍûM©·¿¢·˜ió0ï,Q‰E´UìÝÆïÔÞ© ºmú 7#|SUgTàÉ®3ªCc€³#5¥¤Ä]jUYØIƒÕu›”eyOŒ›¨'Ōà aDÞu’þ©f_‡e¾tÃ=šžë Aé½×A³e[ðªºF×§1r×úí„üŽ&½í1øÙíH-«æúh¨ ›bÛ‰²¾ÎÞóz¦zÃQö*Å+ô-.{¼=9Í}X;Ñ-½ÄÓG¹þQÏ}ãœ2‚;*›mbð¤¡xní¿rÙ²d³rƒÂ¿uÓ!B,<‹âвi¿Óû–¬3¯ÜÑ묔\®ãMM…c=S½ƒ÷2fëÌ\{ëï5ÐÌqIäW›ÕÊܪú.m‡OFØmßE@h»Ìð|:Ö„N5Ä Ö´]‰ŠbÎ:×5nÛ-4ÍvØ‘†ø‹3>Óq…(t Ç«¤,6F°th¯K9€ù£[|ƒ˜Ä¶ÃÞÝ4CºQ þ a¥½—÷“v ™&Ÿ éì;„¾*ôBÆù›£ûæwÙ…’¤)gŠŸ µAáLMÛ­î¾*±Ã¶¤P¼¡ \8¶;A÷õ'Z¿¦”×ßÚ¢eKH*F°•¢’p÷jNÁÛh¶êÆÆ"©•°U"vb‰miZè2Ëó5#ÑC¡rþœÞ.à'ØDŒùЉ<¡ÿå´K‘R,;~waçòICLHkƒòÍ\µñLtŠ öª#󶘰òj´ hšØBA¿ÆiDEµj¢ZÆ!)o^ y1ÊRg$Êo@baó™ÀÈ[A®”w}¨ÞmtS‚œ*™ä+×ÊØ ßìᣮAXݧîá}Ä$)‡øô³¤T êçoвNïé¾ÝÖV®Ìúíçãò€óë¾ÀêÇeBœöa¹£oIFkýRvu˜Äh O"]ò¶pÚVáÜ gz¥ Ô4 „ˆdFÚ*ˆìy)8S¶0X“ýŒú%:Õ‡³kçM§F·ÀÀõ°,Q¿­ŸyRHB>‘XÏà&œfZ&=çMÖ¡Žñ# ™Ö?~ £AHï¹ûâkÙ”:¸¯Ê`äXŒÁhmîôMgæL¦t¥0ÄËÅT~Á V×€{¶yÞY?›+÷£ÝâôÔ.«ÉVÏväÖÈo)9‘¡tPu‡”‘FË×ÝYhʑ܀¹n¸íBÅX'ÞŽ„Ó9£šL£#wå*V ™"øL[®zÍÆû’-Š´¬ Ã"ÕÙdûY•x ½z±‰É½i'þ/ßI÷<ôÍЭ3?½ìÝLfES9bÎä7´¨’µ”Ú–=Éë kº…U}<Œ$ÚWÞ1Êà‡,Q@¡«¬ƒÇ ùÍÎàR"i\£ÎñÈî +áûâä‘qÃëÉ\Ë›Ö W-5¡²ß·¹ˆ6è¤o#9a±ÓŠ6=^àüù}nÍìŠFac¢¤Ë@‰n(>•"‘:”‹CŒ<Ú…l¹¾€ÏÖ Ù\,ªPß ’ïç a–¤£SI!çÄý…k÷g$–m¬ ³rÊPˆ.¸È)B ¯1‡•‰úú¦ÌàTO^#f£@›Ÿ—J†‹ÁÐÖa—Op±7?yä å3‰bW€ÆùðíK±Íc©†~8ì'TΜQiPäצJu_3%‹µ”ßñÆ´´þîÎÎÎô »OqêþjÍÊ7o¾Ñ7!¬H“ÝV[l‰jó$!±ÂŽÒ¹?šØ: ç¢JÓfù¿ _uJ»#k^h¾#:–Tà B¤™Ü¿¸x´Y“3ìbx“‹EµF²~%’öõÀ|!òÚrV(?øÈ¹ÖØõœ w†)´äù3 ¯‡ï,“* )¯ˆóC¦†Å—Òr>²º›@«¯®N.Ùœ4ã–®³²@öƒ`DwžX=ëÝS·Çç!“/)åY5…Ð~ ª¿ „ÓÍØh38γy‹Šb›§k%B]•º2wôãÃúÏ_<‚Ð! ûPúmÍ×ã»áÈ™´û ʹäî~„K©—³^†Ë.c~¤ÀtAÈ¿¯ÖQ݌߄¸jäÍ7Y™ªÆ}ŸÚ*1}L¢\a_ð¡[·Ñ]ÌÐ$f•Óƒ PrJ’B âÜ ¦´‡ç†Ö2¤/uUNפÇrB¥GYLPÚ…`$E».nóu”>rŠ]T]¢[ÆK ÷òF× ¿;p‰öÛÍÒdÒÜFCšœ†–ú—dnÑ"q^ÞVЀLÈÅAôg_-[ÜÔ|§ãQêë¡púG3÷îÚµì’-ëáO;DQÝHª\‚t_ž66‘‰zrßã`v­ÿVkpT%œâ!g8¤_ü{ž„Ÿö=ƒô9›zPƲÛÒ^ü}i¢F77yÞâ&<ZÌÆ7ÄÐ.q…&.$’˜ZüÌ5‘yè¦}^#aT©´~¬àðY©cL©qíÖå%\‚ü‚Ý,úC³­´û ¹€2·¾Ðeˆß}®R\|@ݯÃQòA™üxM•³Hm¦ óãÏæªšï$/=ÞÛêCýx„r‹.³jã®5î[(5”ýÚžsNtêçàûpгàÊ>”~ÏËFµ¬òŃ¥¥xç 53ÐY«Nš¿Y¡Ž…`Ûܸ´\w¡õžZFõFôËžTl*f)»bÎYâò–FÜÞ*y´¢ÇLXŠ+)=d¼b}TŸkñgwä+Ï/|É¥þÎ!„”îê!åÞÖ\å{ {ùNv/¹ª æjµîmï³6ÎáÃ{,WÑÔf_„Ã’)ÔÚtè w¢žö»~ˆZÞXSG)S AZ¬Kç6È?h;~ÇÕ–ð’Í­Aç=Ý4.9»+·,ËR–ú”¨š)D“è„Ç‹ÀqâþŠ.ŒÈ’¢ÉÄYzßù‚aHŒ»¢ì‚„óⷔ漙#wèdï™[vîÄ=L±ü+”åçRO¯~šä4-³âÔªíi 4 iq™¨Ki€÷­9Þ½yKTéð¨ÀïÜ;Knz¬h/ªõÅH¾Û³i#ð. ¾Ë×yÁý$﵃ÈÑt_eáÄ ¾ÜBLð» D(µ¤->p`*È­¸mñœH;îC”Ìb`¬‰‘‰„'Zéˆ<†Aæ È¥°¿ŠÜ8.¦‰RSŠƒ7†ÏlÕTÍŽ†ç…˜«ùÅiT5ÌŠž£;!Z.sy«Ñ2$TÑÕ‘c}‚¾»{y"d¦s ¿Û}e‘f%ê/CœqeW±x󦃎6 €Ë°ûIá^D1ΖŠ9)'{©âÈ»:‰ë6MgIOö˸œ†¥IïÁ³ ™Ç Îwë(gÙŠDJˆç©ŠÜ+ZfEZÉĆ­:|Yƒ‘b‹ýN1O{ó,Iï55<#-"¨y¥"ßåDÚm¯J kL}ˆŸ†ÍÚúAðÁÕ,Zç!%|cÁmx˜‰… ¹Îúˆ½>ß`‹y€¶2ßP™W×@LúF¢‘ÚU2>­ˆ§…è3f°ˆÎ¦!è@ë[ì™á9彫9bCvŸxFÅîRã4Ó$ vmËb0õõtªúÿ«Büæ²1ö»Î{6`#ïÀ+ðw…}0 Àû¾½yH¾`¥†QÖæ¶_gTav}€ûÏ_NŒÅ»®w —¬(©ê¤nŒu(sÉž¥Þº²ßÌŽ7ßéˆ^/š¸AüŠéûHÁÅ,’7×µx‰¥P#LÞ±+ÑÞ(ßx›Ä½ð©vÝ´í*ò922g¬µViEJrà†`ð@!^(~ÛDïg½>1¾-Áú1ìQ”¯#B ß¹T‘ôTéÍó¾¤*äIà±ÇÍÛtAÜÛ:³(ÁKÚÑðÂG1èz^§–•×pŒ†[Õ£èø<q[nË•·Š:œ9^¢õ·Ï>Ú‰“'osg”xe|o8lTO¢YãC0à€Ð!²F–' vv[.ÙΈìÀ»–ÎÛE¥ÏÚæ\ÙŒ;7Ù¶•‘ââ•„­¿BmIâû1½ØÅ8é`Þ‡~ʰjãô>fó†>|ÆÂ)4ékQfB~Þë&¿V§_%Ùfgo‡­ )˜ ?Ç—ÄGDª4 §:Ä‚E©ÓØ1ý!É\Eu"gº­Fܽƹ…“ýsë±M‡íŠ(ôG–ÍWUZ%Wð¿óo¸ƒØbÒ¼s)]c Kwr¤ 6ÉöÆO㉠UÞüØ î²0DcÎÜÙ󆑉Yøø(ÕƒÀ­4”ÊAtÈ÷98>R`I€‰T—‹ÄéFåÕÌ!RŸLó£­‰j22¤I3–U—ꥌbPÁÈÎ1ÿ5½ï&/‹úùC9öâ:bÍï³Rü«©oGK1ÄÌßiû²é&£ég|Š=•·6ø(† 9G‰™v;"›ê]ZóÐK:?aí|Ñønív,TÞ"7L9;±rçÄçOe\{è,+˜Z§s9e"²ßLU £w‹¬Ø‘{W+ê„6V2V» Jë¯ÝÑ ¼'Ÿ<Ï{9ü)2‘ ÜÔu&&_í>U¨*D€áiÈËþVÎbýƒzZ o·[ ß^Ì|Í£GåâEæÃ¶%Àg¬Þ’$õµ.¨™Nqáèóûµâ¦Œ\j»(|׆7‘ÍÛÁ솗l°•™âînhH…±bÊ ¾éJ-ÐÅgCPŒø|£ùt¿TƺÄPµRõdÛÖ/­¸ZR'œÁð}îô!e†7õ´Çéœß5úÇ‹—o+œØ>ŸÇÝýXÒo¿(Þ7ì×ÑxÔ8Êý@§©m¢³ö‚fÑti\j.»·_]ŸÅQìªO«œN¶•ÔÀN ÏZP¥ eüÝ]àÉür5?ʬQ¥@–˜¨Â¢©ú¿e„r-”¯½Bqÿ°ÓH\EÕà‘°¦@rðd!.#ä0´y”Ô–ôço>2“H‡:ó)v˜Òc}:âd]í±-§J?ÓÍÂæ_o/™ê0N·l«DY5yS<“›Ìí=ÿÔÈá½P $½'Èa£»/Ù‡Q9VÊ ›3F<Ýw®€ÔEô8wƈ­n ú§8$==èÞ:]ÐÝM\¡pGØK’j6²Ô^§Ò‰7€ÂÊËÍî =YǤ“¬³+ /;'Y…õ¤ùÀegÁÁ`@6ŽÙ:Ìd/…fþÊ¡—áЩ’ÂmHþ¦¥Y•—´ÇD2±zÞásšµgÀÎE³Tî6c‹jüæ|„Ž6ãtìä¸"Çé+"œ¬ž+­ÝoA!Öä#K1Q,Þ‚v\î;ˬ1RyäƒÕÒOåâÈ æºÛC8û¡YÃõÝïõÉGü‡+U–G¿Eë!?h}°G k¶#¨ a¦³’¢VüF`L²¢ï‘ÃÔÇ A\ø˜Ür¶¨r!—ž‰¥éBM-7¢uÉËt¬¤CÙ!ðð¶cª:w!®Ü(6Ðàæ8›(º‹ ¼pR9›¢<6Km–ÏRéôÁ!c8e9ÜXÓîË ž0æÊ;bBxlÇ„÷©¼ì¥f/‚Œ³X i¹‚*6hQIt3"ä(ø[”öoìkl‰U-§`o:¯œ|;q¾IߥÚÒ‹k˜Y0ä5¦Ÿ5š¼“pçþòc„mM<‰‡6> B_€ãf˜äغ qªiÓ$ךϟË醒u±Ìé¦3sz¤°kP;‹a˜¼ØÍ„Šàê¾EÛéyˆ—•)Gô2ûhÉ6¤äÁ”(2Í0‘áüÁ J«U)×Q2 ŸWmmWÎ!Ë`MkÀ€ÐX?}ç`ž:4•w®Óì,:øÉa ùÿ "oÝC³–`1bÀ®êF‹­ýå ‰µkç ¼·kÁFx^‹ÃóèŒ,é0\Æç_6Ë”¬xƒÈ,iadl¨ŠàqëIÀ‘€ÛèÅb‹ù•azóí^PëG£… Ì‚,câ¸ÝÁ1š©åÊåã9¼\ ×úø©È:'6qUiZµ‚u(wD'©0ª#ÑJÚ¿€[~½\pú=ìä„(hE"Rø«`\¿Ý—Üb^‰\ ™ž˜÷@Çx×TŽ<“ºü¹ 9C—\¦"qÖñü°]«»sÜdsXú 4Ú‰¾sÌ•öjÌÝíÿu¨‹Þ15ÒTw[vÇwÐó–š•J”€H?èÜ×èÉï^皈&Wg™«ÚÚª¯ƒG¢f § /®—â©!L Ð¥—“.þУsâÅ' O>6TÂÖÊÀ8í3&§PÆ ÀxlEŒ£mŠvq}¨sqº–(ô*iC*Rÿ‹7AswN?¯]3Ϙ,+vãŠ)7ÞhÈŠ8©FI¡,Ÿ€ëk(±³² d4ØŸ|£Õ„òË Z¥KjúGÆùÝ€"VãêBÛêb“a ×Ö $} heΰ3C…{“ÆñÊ`=­ã–B¸;Ì'øNA¶üª²~²0 ›þcÂínÄD‘V'æâ–™¹ØZ²H½ª5„âîð3hôZþˆE) O¨&¤ø _ë?§ËªøË±óHã/««Q˜47ñ‹:𕞇ÕßN@¬Q}œJ†9Spóð³%.úÁ£(˜H]É0lÚÛÒjÅ;’]p¦™4ÙA ”ÿ’ü{šdõÇš®x)r¥ùêLž‹ÎÍr݃Í÷jQ»ö‡h¤~¤é—•Sǵb]pncÚ¿6bµ%áè2œ[š…{³º»«^½²÷Žeò´ž:Ët²ÑÐÎÎP]›‘¢Ë¯”îuRs`á)9{«\þ=MU_å6ìp41S¨(xm)¹Œß`ëf¬¨,¢Â.fþƤÆÖ?`ePÏ!Bçm¼3h 7‹@[ÞŠ‘TM±¨3ЃªÈW82#©A?#ib©âA¸ˆ»žfž#l‘ó’Zèä‚&?sa(Pa˜Í–ÅßíÍ…{é\e‹¾êGºn‚ ƒx†»1Ó«”œЉ!ëɵ[B&–¤úèÕÖÌ&[ßBL t.ÉìÚµŽÎ}_›²‰˜qP½Öö ƒU’¨duõHŠ•!E)&ªPØ* ŽãQ÷#7¬ÁXQyâ]-~Ä'æÅoëOžÎìlï„]sT[Zƒw=›°¶yar³ÿBõWn?‹øè—ÓeÀŽîg±ÿnú¢béáª8˜Póq¡©rý/·I<1©r Ú†„. >/–'ÜóAHΧ‚'ðòW#o›Æ ¹NXŠ¡¢’nfóÒw4YâØŠ¶“<Él¶=Aª«¥k%É`O§;#Ñî¿w¦² (‰„h¶Ñ >Ä?ù#©rÉEwà_q1`Ò“Ä> ¸8 \2 Di‡Î¡”O¸÷‚ UÓ—1¾²n¯Àë‡ô±ïÈñS<]µéPž@w¦äK,$zQ¶¶óƒ çü"ÈøêµÑ'fs–QSÁö¢š4ÏH˳Xíü X|}êFf™ŽoÕJm•Uá6ßa@ÕÔX÷É@yäú©Yp·Ç±äÑÙ/#i}ÌŠOÿ?}:̾ž·y^Æè€³˜êܘjT6EŠ´kmp­ÂCÇ¿Á¨ÐÇúä±pàu<®:x%8TT™ £Næmó·v½,ßû,([t阂/ *# Îd‡Q œWNu~Žc*Du´çî:Š0Û™¸™©ä»±êÉYy× ‹„(ê.ÐÀÛ åd®í¸qBèäÖº°>gl‘çj.ٻIJËZ³Ø‰!²äÖìNÌñÀó¢²/˜ëÿˆÕ hPu%)2lÚ-2¹76…þ޽0g*.-Š×1AU† SWÚf,ÐbÞÛ*¨ Ôn“ÛËL>H%µ´ê½*´é6ˆ˜ßÊ¿¢ª8_ÝK,_âržAøØTCÀ˜nV|ô®¬, ¯GyÝ '—#Æc2Ò4eäû¸‡{ig•Õíò”µ>”«ô¶Õ!åO÷z‘”þ-“¾=k ° ¼[ x\¯ *8ŽRå˹ÛNÔ½ Q¥0*UІ,à%ö.ÍÞkðiI/—Ý‹˜´ÄgØÞŒô¤X,Ú@3~ n¶'/âÁ™Ÿ‹g;B•½!³RÄŸ¸!¤æ=ãJG1_ÜÆE+©qÏÃÍÖ9JÝ_œ'l_8óã}̳¤Ê%Zp(ÜX¯ýÙŽ!^'¦˜bóO란cwi—8ÍéœØdrËç½mk€º—ue³cÛõçD½®³µÊ¡ ˆ×Tö¿TGÌð­ÉöÂ2@J„œF®ÇЭC~˜³‰ü(í×ËQ–ÉÞ”æ¬Lêð(Ë3Îuøꖂt–qêíýšÑD¡Q®s«7)8!؈^Xár@GfDvÉqo˜±)ÓšUÎãkÀ7t?¤¸ ЏMt‘ÁƒóƼý TŽ×rW˜Þ]Z÷𣠰zF‹6:ôO'¤ÃI= õænÙaµ·.÷(ÍOU%õµ|ù¿}Ä2ªO È1ÂNŠp±†òN#‡Qép¶š GA¢¨#—–{6| ´úä×+PkNMÉ»hñpwJSQKƒ¥å†Ôd*HÁËrï%Dƒ³nT;í6/`jâªnÕsÀ€üÆT…ªâWÀ³¢Äëj¶mꃺ•þõò®Y¢(Â*ênˆgq™‹²°—‹¦6*ˆ%vãr3vÉqÚº±»—ÏÙ SŠ! Hï~>‰‰m„Љy‹ÇÊÂFuÕ¹zµƒU¡k¸14Ùhø9Y Ja *±ÛnÜ"ç]:†B3D=€ðÛK ç-” í})F¨ŒjÖ’Ú&¼¢fÑH#„çI^)Gh9Qþ ¦ºz<ô¢úÏîð¿+|î ú}” ;+W¬3ÔC·¹`øI´¢a¨P“N5wÏ`p|žÿh7‹«Ìþ*¥^7ƒ„ª»©ížžÃyøxwh&jÆÛ79(©\ﯴP¤ão§Ã2&Z=XV¸9ˆ_3´H!—Á0¬*Mi=ä?€áæ“ò&䑯ÀèÇÑö§ÜÖwþ_¸yñâàx^ßD8·×8üSC\üÝãjrêèþq-–‚ù§3»\ˆqÁ¾[NÅN C$ïÕ,ÅÊ™ÿŸ±™Í/h(èB0`:¸êw†½ÕâSІ}阣>9¾™H̱ ô=”ÎlÝ· @çj"ÓÇaBîî<í-Û[í„Ù?ˆç%Ðv<й§`äNHnL<³àD³t ,U˜-ãg¤…~T}?‡Wb ×]…Œx[Þm¦&üQ‘–G:H¯„Þ—qèµÛÎ3L“j ã¸ãˆ1o?ÊcwÝYÿ‚0׹߄ {·¼Ì †“‰G~ž´ç³'yÅ? eè–æ¡v/ÉÒ ³­È Ê.§"ÊŸj ôINž³Œ¨ÂÞY41œåP’ŒSÁyäÂúÇ_ôÍþƘ¬ö•Àϯ…uÑ?¸›ý¿:³¹[0e}­5i`¯Rµíþ“­›y°/+ŽÍª•tBõC¸b^„†›ðròÔ]MÈö´N =¯þï:¼Ps ñBQ(âZ†r$µ˜¬XZaåm6}·œC­ êÂLeuŽÞ´Óþ(ú:0ëSVÙhœÈ.åµGƒ«ÁÒ69ÅJºÒ÷¯òõj϶ÀÏZµŒ8Æ^@×{NÒÎÔq¥½?îçxàX$ gRt°{-UëlIÑ^NhW€xêìŸÍÏV A£!ÞOôßMç䲃t,©_ä>© fYl±½ÞSªŸ’êòÙæ ÛþIEâÕi_˜äFüy ñÀfç…Œ^,â,Oá‘v~¶Þ™ï½ú¿’–_o€!„M¿[…$çJ[…çí ·RÆËÖ‚E}Äde‘3ç5]²3ÜÆ÷+Ú0Üå¿]_]L“ÖåX# çˆö×& J]Î ëŸ ù œDzòÁsUúÿË/™£ÅÐT*~»„“ÿë®zîÕ°~wȈ*ªfs £&ò۳ɨ¡ÜN¤—_Ù¿é#<⽞Ø3¼Ôö t°ÝìÐc7Þ9»‘ŒoIPbvÉÜV¤ê0½4"‡ÖuëøŸÒð¡½{ &­(ýâÉDÃíxa„€”ý$ GÊÜq¹m@7«ú’µ„4D(yÿ2N(ÃI")Ð ‘tá¥mRmù·Oc(¯ÎB1ÙòÁŠCãäð`xU£‹F¶H<œ]ß ëŒJ½Æ×Æ*'u[z¹NL?&@â{Uùvåà 9DÔà¡îk8®Žj#]‡ñ¡¸·¸Æ @9?jòR÷y®_zCàÚE9᡾r޲ ûZ ó4°+Ï Þæý‹»1±nC+U8a4hûÙrôÒö€ËÃrŸÆå.<¨ãÐÝ 3¿Š¼wïÊbÒ¦]faE^T=HÚ·Ko ð敃6£ö„Œ«ðxn‰óÅíÙ!FÛcÌÏ[î7m<õŽ^÷‹TïÕ?“4‘kü½¶~_ç®ä‰‡0ï#ín‡0!KƸÈuZ,YÊ•”±†ŒýÃ3®H‹s,Úæ1FWky‡_Î4v~2ÒРµ]f›NÙð¾ xkAà-GF{Ú4ÆÜߘ‚æìøµ !x¤^eÎ2÷ç®&ø„¸ŽÃ9hòô·p9ÚÂF¹Ê–{M¨Ã«hÌLŠceF‘Š‹~ÅY}^¯×‹Ü§¢Ø×ö*oÙ¸š/(W¾&g½ ÉÁvÀqZ·­å©Kç ˆZ'iVþÔµ¹iÓ'ìˆT6ú™|%Ën‡ƒhC†!ý)çÆU.“2m8l=?ª[T¸Îåm!œze©â ¢ëÛ.t•úˆOI‰Á ú½ÇÌw“ð­1ûYÕ·Ç^l‚¾s¯§ˆm {·Ó]¶ãUP¡Ï1gþY½Ü!ülÛÔ‰”Pî9‰/ÞXv8gîWåv5ÈH¤Ñ¸…DU(ÙPˆâÛUàƒ€³¾í¥,I`—Å® ¿ÿtf¹–1sau ŽÒ*¥e1DçEp œܨ?Ü3ªëN9sÝw!2Ä8`í» Ù aí#Ì`ÀxWXÔÇ>eõdÓ]°Ú.§…[/C¹žeû ·r× ´¬’I×#áO¥¶Å´Ê~F9ç éƒúX9S¶ïŠØ‡bÖÑ ³À†‹ePÂ4äÄ€ÇkFÔigò4îÛŽ©nº¨bóA}}ˆÜY•xgXõеA%|°s¥A|þýtHMn°IÝ[R)Ä à8™¯y˶œ—/¿¾•ÃëRýƒêu0:Éš+›ùòz‹f¯ƒeˆÌ.¤äÿ”øç¸Hÿ‘Úõ¸RJ·ª¬nérΗ"hÿÖÀ¾$IËçÞnÄŒœÏ±€øz„.¸¾–€×b¨<6üFþ& í8šá©QTM^ó³¿ið5…^Ë­ wrOwˆŒ›¦ìÕay_ºì è´žÑªÅuæ®söaÊ/ÜÛÏn!ªu…ÑŽQǤ´ ¦üHðÝmdZ&Æ3Ù ÿwåBE/P/æ6Q &'X.)#ÛO}Ž)ºÔM:Ξr¶ÓÇÙÙN’×—%5ÿ4ŸFÈ&r¤!ú—¹JÄÙ‰o+ý ¯¢ÖÃÎ{™>"€Y‡*[‹D~$Ôp†[={Á¯…†}ÑlTZf¢ß…YX²^„pá)ÀÞ]`>}‘ü™9úüÑÛ¼”xÛQXü÷Ç!'>Ž£šßâL¨z1•€J± ~ œ Ó¥ä:4b™Ê)ÛåŽÄ=÷.Dù¿o9T2u«A™ç')]ßœ} ‚Ö1÷¡1ÒoSHŸiùfl@b©RÕkß4C9@ M¯»³US+Rz[úQ¿Ë¶n²î¶¿/Ñf17÷lÝ)N3bÛˆãäTÃ\tMZAá$ƒÛ3:Є-åߪøX7à‹ ±ÓEVT¯¨¿˜õú{¯G| Cž‘ø/9GóÃNȤÏçq÷yýM pûŒ€5c¯–ßS¯YÖ㆜&8 'ý]Ô•7¼2Âö¯»“™…é®ÈÎ3M½]Î^eº»{‰o`Ò˜^âŒjëŸÍ^/˜lÍÔÊfê|ްÞΧe« ð6‰A~þ-t¢Oõa)2¿FÖAÝE1 ÕRÇóÊ*ÙéYÓÒ~ø{lzzÂè‘Ö³¯à&ìJ/jlŒ„óQ_)¸·Ðï!<sk˜rÍÏLJ”cí¨@Û›´e?Ý‹Ùb}~^I™‚2j¾¸Û°[±Z)7 ž¦ð=?íA3Ÿù‚Ù>$û‰<Ö¥6¹c®±]¦Üg÷P•}mºäí5éDYçE(«DÆäHiQaKìk`Δ)«JÙmaa( ƒù%dvw݆¶Á+í&‘¥,¹ÊšvÓ7\ëir¹¿· ؙ֭ }zîn ¡4cae«[sìÎê #wÑ¢Zí!Í·ñr.“¶j]âò­©‡ ]v{.bsÑ¢†¼&ß桹f?æÃSJ'Æš3Ñ”q韓NÝÅ‚$Ê£2òÂVÇáШØùkþG'eQï®|Õ•Ý1ÂØ½N¸®Qòí±uÿîv4¾È g¿›3rºvìØ;ÝÎø©Ü¨3ô×Õ†ÀÄ !n‰ê™Ý8?šM®Å¸+2£ ­Õ˜sQÍ= ¶U‚ë5ž˜å¿ˆþS6–öp1Œ-ÜѨ³kXÜ€kÁú–ü¹9ZVlZ‰ Õòd®C!ó§Èz¡èOœ*™øm{›ªt·¡G¡@IÌb vÀ¦'';ßqÜ–uídü$ÛfÀCy֌ᢋMÐÙØ Ô ]&¯î kü`Qþ‰ðµ?°zµ“\“;ü¾ÇÒ»ø%ÜêÞ™M.ÿŒÃ#=IŽÞ–«o^@àùh‚ÄpMŸ„]/Dì3F¨°Sëêf}t'ˆ=u•¼fÌë´MðÖ-3 #ê4ÿÃòŠ› E/¶6YG~ ®XF"*‰ ~õaõlÇòq®'ÝYEJ:ô‰5}›˜>·õÖ —á#yéjrEõè¡ÄÆ&Ýš"¤¶&_„Lâ·’ÐM|8¶Ò†à§IKÝ@H÷¿Í´— DF3.ntO˜Œóº…·vì!CÕº¶[é¾a…ôiÑÇ N6±×Û­œÜ[\3úÞd·@i@Éh{š¾ $êÙ)þáÚQ\DãÌóµ­¬gÉv#75+.áØë ÍC±)Ó /Žmy¡âaû‡À¤¢ j^‡°c3JN»F®£×¸jßãHûd—#2”ø¸‡ÿX#Fxoyy@1CPâîßúx&›==4¼©»ˆ]:(+à\ò2ï¬ÅŸ˜ô¡^¿rËÄ‚|Â¥[VÂõÏÑìLWz$ÿH«‡üh/=¹Ùž7T¯±8<–"yöf=Ö Hz ýNØP†$2Õ!Rß÷ëmàç}殪S_§¦*x*XÞ¬2އ°eô›XÁ|s×¹YÞXêZ“ =J`ǮɂÕaÛî # OžóŠVâ`Ê”4owôž¶jhŠ}æe+;és±OãŽ\$ÏsÏåi¾¼PB“ 5s¨¸ößÐ4º 4ùTƒÞ´¬¤™ç'Æq´ªŒµ*ê›®Mº8pßì|"îà°?>º“Àdo:À¨!@0-1í<[Ñ£ª¦èq=ȶ•fÛº½“ÇÀT¢âÖPYìÃê ô °!ôfò4ÓGN5X˜§EHÛ[Vͬ“Ÿ[Ç–›COR=Ÿ*ñÓï´rßõc¢Š£<{½âŠG¨€V+;ôó9äd|:9¡¥îéåXÇíêì>¡¦uên1­7RœÇt¤][ƒ°&Ûã"ÿïz$Öolóþ(ß"ìgêÙÖ¾FŠ‘<¨ÆCl9‹(VTKËV·9.c¼™r”¤ljž&BÓ÷p:,k“¾G-Q^Ä ƒ¬¾nQ±>G§——6€ÿ•-H Ö?ô¢/î€%Ÿb6FØZI¶­v÷7|‡iòâÛ„ê†sшTßæ©@.=ôQ°¼HΤ'¹ Êøf3î¬4moBEƒwLº;ìó¼ôô"4=ë¨^#uª"ƒcìFoÉÿ¿÷Úz™j|ûÁ¾Õ.,«\ÉÂÍÎ ò¾o6/‹²`Bí}‰¨|Á°íœüIô1ËR0*ɲÄl uZ*¯”=ª›g–º¸©`ÕÎÅnœBžWpý­å«[ dN—“âi|fDpÔ`#”¢lôIx³üÁ“Í~Š= ?Á Wì+ y!”aSdôÿÛß:άK"ÃÂq$ I]‰¼£OâÄ0ôÿåIœË8¿†¬½j`_ÕÙÀqKçMŒS•¡=·¤þçÎÜÓêÙh±ye§¥DÈ!$¬ü‡(_Ìå†Äe=۵д ª_mæ–VC‚G#;K?®e‹Ü¼yM£xGœ‹QÕ¨YŒU “ëYpu ¦éS:ÊñwËC­sóhDc7’LÓ7u£rB;uFAßrþv¶èË3–pD+·dÁÎËT8À[­„õó$¬Ÿ¹dUsÏÜN®å{°Z;æ(æŽGDò0‡ü#J:ØSûË£ôg|H»Vî ÷ QyDÇB¸ÙvǬµÝÃÁñ´oO"ð‡©–5!=É•¸ ‰åwk|‚„#Îôa›®üÚBN|&~qj)+nRd‘É ÙÌú1P½¢{ʳD{5ÍñF\$œ«œk…7ï8{"‹þëE“¨Ý 2Uü»%U*Ö)+ÐqÝ¹Ï EL…1Wy-A¿÷l:Q¤_äK«¿Á ‚ ¾pÊ™ÛV§•…Vi³`lKg¨¬90»(gQžœ*œ<á ´Ÿ¶Yå”ýŸ½cƒiÞé¾ÃÕÈH¼?F9ÿlÓJßßËõ—¨SÚ²"VÚ¾-Æ0ãvÉÁ“ŽØÕ{åŸÃôé;RRË!ùÝP‘‘Í•W`}s×ÏpZôÕôŒï'(ÍádlÏ>¥t®jØÿ5=P$uoœõæe–mªÉ¦UE$ûÊIoïråHË=®mr ±&Iñ´N䢥Ky«¹Ù× t¬õ¡ÑK¹¡˜ÅÀ•aËæi$ÃRÙ½Ûаø›•Ðë:F‘L̘ïŧÉ4…`Bu2·žTˆo;þÈ>Ó©´THjΉ\ ŒÅ°ð€},­úñ’O¾1S"J¸©ŒyC±Ò6Êý9»ÞÍV0pqšŸ’Ô„¤|>5N¤´ÍýS¦UUVšÚ(àÂ4l •@Z>—)'ôüÝС¬Mfboh3"¾4à³ðóËêOç—Ž¥á;rNG,Ö9¢êÕ|ÔK¿hŸèGÖ9tÀ彚ªðãM•aìÌx=ßÎs÷èZNwJÛ¥ˆœ$éMf}¦sØb©PÑ‹;FˇÑÜÜ{< g*Ÿâ÷\ì+vyñafèzøZò9åpó¢™™&6AÓyj`‹¿T\Î[V¬ã±\®˜"{qZ”U*šB“hìAÏ7ÒÙνÇÁÒÓþù^µB§tô.¹ „‡Ñ´Êˆ0M\Æ[G¨Ú³ã[¿-¹€{‡ÇR~4Ç„á†Àxyó„7×…À’ºõ¶p›|Þ|8M¡täD_:R¥=Fy¬k7WòÇÒÀt2ŠÓ „%}¥À™ì›QçÑ™©Éà ÔÒ$3h=MO‹¸ÁêØ@IŽÉ)¾þ’a¾…øŽ‘ä)[0¢®Ât9Rî?Ý>ZÍ®ýK›_½–ö²Ð•µÒ¥óœŒJÔ¸uQêšÁÄßš‘×`ã«(òɶ[%KaP—7Y.¾é‹î;ódo3‚š|=óÎox,®nïçD±-M¶Ø¼=«mA .^<Æ33\ô'ÅëF0?Ë”ƒØ=^¼E Lü«MÃ|°oì+»æîóbjõh ƒ‘âûA£C­fªMƒsÿ ÷Ì¥ z¢8:œ ˜WY‹ƒ¡<„ù,²g#θiB,Z|5Mýýˆ“Z»}#Kc׆ϕS$Þä_`•‚èŽwn XмE¨ól8»ˆíü\I Tú8®.ÆASɰ¥îÐ'`·c­Q·öͼ'÷a$ ävX=ÁCéôJ¸¥0×P0Gq4“#Á×î‹[º¡:H1Vòî‘õóÉeÝ€ÂLééÊVª îµJgÏ‚óÑ0l!O&d5ëþ–sD¼r—Ž?ËKE¬ŠšNŒ¥F¹ÁèÒ¾úéºÑ?»ò$}à——=0)ŸMmìÛ`uA+oÈê:òÒé«B9J?•*Öšøˆ» R.5\eã8“u65iÑhŸ (ÅÆ7¶Òg‘|.†û|å¤ûƒË¼•ö“åª_eíºæ²æÿk;ø endstream endobj 656 0 obj << /Type /FontDescriptor /FontName /AIRRYW+CMR10 /Flags 4 /FontBBox [-40 -250 1009 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet (/A/B/C/D/Delta/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/a/acute/asterisk/b/bracketleft/bracketright/breve/c/cedilla/circumflex/colon/comma/d/dieresis/e/eight/endash/equal/f/ff/ffi/fi/five/fl/four/g/h/hyphen/i/j/k/l/m/n/nine/o/one/p/parenleft/parenright/percent/period/q/quotedblleft/quotedblright/r/s/semicolon/seven/six/slash/t/three/two/u/v/w/x/y/z/zero) /FontFile 655 0 R >> endobj 657 0 obj << /Length1 1817 /Length2 10885 /Length3 0 /Length 12030 /Filter /FlateDecode >> stream xÚ´TØ-ŒSÜJ€âî.ÁݽŠ$@ŵ¸Kq(ÅÝ¡@qŠ-îÞRJq)<:3wfîýÿµÞ[Y+Éþ|Ÿ³¿CO£©Ã´v¶É;C`ìÜ\"5mn/:=½.æúËŒN¯‚º!"ÿ ‚,`O6Y ØSœš3 ìîàæp ˆp Špqx¸¸„ÿè ÈZx€­jegÈ ^ÆÙÅ ¶µƒ=µùÏ_“3€[XXítÐ [Y@j0;ÓSG+ G€Ž³óþ¯Lbv0˜‹'§§§'‡…“‡3ÔV‚™ à †Ù´An ¨Èð›0@Ý ô'3tz€®ØíO»Ž³ ÌÓ <ÁV ˆÛS†;Ä<5è(©4\@?ƒUÿ `üu6nî¿Ëý•ý»òG²…••³“‹Ä ±Ø€A yU˜Œ `±þháèæü”oáav´°| øcr €=Nÿø¹yžÂ­Á (Èí顸Ûú´œ Á§î6C~Þ'öø·ÿ©®Ý¿àÓxàÁ§ÿÜOÄ ÿ‚O­œÿ™Pø AþUúiÃ8]þq <¡'Ý:[ÿ+â©9ô_ð©ù¿˜p?eÀþý©7ÌÓù_î'úîÿ:§a¼ÿŸšûüÓü‰‡úgöéÀÊ }zÿØÔ'‘üÿñƒ@^ +ôÅyg+ÑPûúÐÎëZ …'ûî„ø ý®A3»ï"´Ëý5•¹æmð:ô˜:òwe[ŽéBj‰ú—ï×¶FÔˆöd­Ž;¿{³Dí©Ýô…Ïă“Å_ Th”ìºR{~¿\ýôƒÛ໕éó]Ý…°5 ®=û¼Ê—ÇÂçwµöjT0î˧Ùcõb^•ÎÒXæÌ‘Ò¢ÀØ©ž±àÿ𙽸œÁÏ›|¤VNdE÷ÿË[âk¼Áw3ç³Z©ËãÖCö‚̘” ñlŠÁWú M™ä‹ïû’uèXúq×ø¦S ·ã“Ï®ºö5ôð§)ý¤)'"¡Ò›˜õvÅ$§Rš$¾œ+Êë^J?Û,ÝØ4’ÀŽ‚ üÚ»½·y >¨LDõ†,ÚvD© Ô>þ*ø¼ìÈ¢]Û¡ûX’µWCV«£«„M­ÂØærTm][¶oë=ƒWuiFV¼†•fO•}¦#=·Y œ[e;vï»Y;‘™Â§Ò75‹Ô¶§æÉb°R¼!nÈ¡r¿n£@&¥K}›•ßÆÛ¤‰1dfR¿ûƒ9»æ cÀý:ràh›°\¯üXS•/ô¯M5>î¦!bsÜXáó¦ˆì~ĦrdÜSxá™AÕdzñg'&Eì\bå¶:Ò8˜êŽ)ƹ ª'3qü¦Â}„"¥*í,È~ßåуC}û¢Kåórlëd¹w®$]ö\¦é^_Óêµ ûâ:Ád˜#¢dÞÆ#š°V¤íBb‰Çº…—ýçÜA:úµðþñC"ïzÖÊ-ά¹ìú¿øˆ9¡Ìñxå¥Ý†…Ùò¾F N>C¿ ¡¤V¶ Œy=y|6Ë,Æ«3EŠfÝ] Ü7O¢úÜ•åÍE7=Eض˜'#w¾[Й©º¬GQsL.î[…þFH§—ñÉ÷â$bŸ™ì;Ž7ÉjçÔÌáËb#-1ß=~iÎØÒ‰q+Ñi˜íº­wôË_Ùº×öm[nØ/³ÂP¯““ ~Üaå9iV0{1ÞnÇ3ðøš»ØÌÛáD‘\MÞã¢Æ‚‘~ÙžR©UL¾êPG­<Ã>}^'©Ÿõ~šÄk:ÛôÝŠÂünT³7ç0]p壤Vq6B¿qÿ,súC1+y”“V?#°Àæ‚’ J¡…Ð.£ì[„)ZjC®¢ÓÑÖ¬Ö£IëUéÃ4Âi,É¡$ÛR ïæà»ú)Ó–rs”ø aâ,~ŽCp*kHÌed¯L‘Þ¢½•É#íýIÛ¡]á×5Ÿa‡Žz·D>4å&ŒPÉ;Iêõk¿„¹Ë)¦B¹s…ÞÁn)äL<ˆCökŸÐñRô@‘Æ¥DßÚ¶rnL09w"£"âe?JG%a•^TŸø/dï“XRþ "—”­ÚyzW­? †¸:Ûß$3¦±od—Õ ¤NÁ”^,cE/6iVl©µIuà(+Dµ{õáŽõ6¿IÒ8¾‹U[¬œâ±%Ð8Xæ ÓíL&½möœL`–lC,‘y¶žŸ¦oI(hºå[v¡,Zi……®Þ“Âr†µ«@Ùó®xcÑ/;i¶ïy¤^ñ£ÕxõzáöÈ{ÇÙ€Ídi»,ä—h<‹ëMŸóžSoxègm9vjúÑ3ëµb;ýhÿR‘C…/ÎÐi¾_I|®×ç–jFU4VŸ”‰ì°Hîç«\+Ðߘ;š./h¯tEŽD8œÁ“Nþ«Á‚0ê¾”ó1CJCêŽèˆ)‰²“Cþ;`œÚ,çÖ¨>ãÔhõ¹ü”ƒcùF3âcäÌÏ·ZÝ miC^Õ»_ÇÚ| ØÝ‘á2ïkm\ ØS…¸F9£²d¸°r\ÚÚ;çCŸÛÁ(â'$yExJ`‹§‹Þ ò™4žb—®Ô'ØÇµòj3ؾ¤e›¢Y@.È­eRµ¤G?‘ú«rúàv Á€Cþ‹oÙw bÞøGt.8W“µˆòsûZÝT ¸‹Ò† ¼¡ÝÙ<ŸºçHáž±YZS’ª›@mÜb¯?cÓœžr_lꦿ´€߯òñQpZV«?~c$ϼDTYþȻۅwúó°.¨BÃnR8”™ÕÐ)aZŠ/ì‘7“àÍBʨäk©±V§;I.JQ¡Ø³ÐöÊï£ »·¦éÒÆ€OɈÌjb9ÍG êÞÞË'Ñ©µ&pXè#O²|Q{«:^n Kãó·ã%®)ªGBû«”JØ4ZP7JÈ6'ñ ¨Ã³ÑCÃÕ5ŽH—è¼,àÐF5tsŸéï²w0µÐ(7µð6\GëzOcRãóeEê Gs`Ù &ÿqÜ${|²¬j#¿tQq÷°ÊÕ6¸´†ó9t¿4÷Àv¼F“>ù Òú¨;­Ç+øËêë@ÆhûdAὑõ*S(‹Hîµs¬µyda!PíVÓ24&œRœqXCJ2¡k*‰t´e™½O¯Â9H³ä·&˜bÑCãOÀªÓÓµ»%[uôèî 0c†¿™%{á"“5ø• —uŒ©U-m®sIóNÿM’†KÁèÌJƼ}.‹+;®¿>°Zˆ¿ÒÈ4Àx˜É­œ…ÁŒI^C2#> ‘”s‰‹Û´pÅ+Œ~UssÄÈüÉŒo‘ꃿŠQA k“õ¼„©ÕšþA|.9ãAÛð/B2æJð%"( AÝP5“ÇÁ{G’æ`Ù M÷Ú€tIQ÷ÊÝ!Èj>J´çƒ^*],3m…,öX`•K]:ÐmT{Jöºôm6>Ž'÷ýÚ„5åS-÷Иq:gú­¡õ¾%÷Ö˜IÛlÉÓR?MXš»¢e–q|Ú. x¾H‡\Úßôª»UNc(Ùæ‚–)¨k_‘V%¬ì|.äV•®­˜Ä§SÞ©‡oúÑsöÐwÚJåBBÂE4 „›0 SÆÇKT4V•¥µ(J=·ÙSâ~O)9këcádŠQÊU(È[BEmˆB"‹ÈÀ a-¨/ƒ^®ßzå.Ø}l ¨éîÞõéSú@ƒôn°ŠRPï6TwF¥ñ¡è¹™XŠÚ&Â?eWÙ¹â$ª\ªs!°XH{†#²ý™Ûëf(åçðŽy"Š~Oê)ƒœB^d³.)öü5!¦ÌrúP¦ `=»ùÐâ ¤š*5uÔ#ª#b¿†0·þ˜ ÌjCš~[:ˆõdÄËdO¼Ð S¨õb\ºó¬3õU©YØ·gìm±ÕŽr4„È:Ê!¬^„ç^j Jݦè]çU/_XËêÏãÞ`N÷Ù÷·l'ƒý48öå„=-uÚݤQ}6糆iš²xl Ïß ¼ÇÝX·Dµ‚fP·ý\N4 çÆÒ®C ÇN¹›à;øÂ ‰A*T½2ìÄêÀ²Mqa[~ñcS¯ñ1&d¯ ÆþÇ¥\¹€çµ½K0!\õ¼óy¥8ÙÑД¤Œ¨îЬênš Ò„5ä@ZøfyÂîžÄE9]ža'm°Ú»P^ b®¡¯4Ïm¶’†;¢uÞ2ùêSÌÃU£,›=b•coô—6q¦gX¡aír'/ðçy' 5Ppb¶Ï£è·o×”ž/–¶õý ÎÁe1•÷'§¦“ÄԤ؋k dG¹?yFîÔ÷ÚþGÊÛ¤gò”úƒê(• ¸¨¯ /ã΃£ób©¢"çýöð…Pßv `¯Ù@q6›µ:_CZتüQZø»Çœ/£º(I_&jh»ƒJIî%vú'1J|ànkì5?Õ°Ùì¥k/U» 6ºb}븶wrDÎâÍ£YùA& M ýJ F;Ä5wçAÞ`…ôþFO/ó^cTôµÿò{œV¼kk‰Ðèaòg£Øci7XÔ¶íP‘áõî=J~Eç±â5ÐjÑûˆ÷¿x¯ï.ÖB¤, ­~9Ú¸2áá´¶Ó@BqÓב×0MhR)®)ãz¿bƳ24ëðë‚€áë Æ¡(¨NAðKr‰RÚuL—–M/g{â%Zô5ÙúIv.ˆFgË'.Yþ³hì|„(WäBÁ>!âŠùµCjÖØ¢#ðMé²¶„ eûºš©ÿ­I¸µª´{+“gÆð`NA™çdöƒN,—áŒ× sw X=&PEJ]*#æ+aÆ•MMÿÎêMÏZmñGð<´@p 9œž²À+zjœ¯DðͱЧ–ãÐÀºˆáB~‡×s"]9²ž.´¢ö§µ@¤Û*´ síWÍFHØuÓžê$¿dêv½ *^¯¹+Ò2 aOª 6¡ŽYíW/™Š¥¿Õæ÷`÷¬fÙUÃYˆ¼9KãÖ/|‡ ŽÜ) V–¶ Ë'ËùJ¥ý컣H×Èg‡ÁŸOa;ðº]èû|Ü—£°®qB©k&ÿoÙ¤÷Q{ĺoQt1ÔÒ߆jVÕ›Ÿ¸ÌF˜ûÄø>0f¿ôÂŒ:!bÍJBÿD"ö] ö%IX=k±wlÝQI‘*Õ-§OüÄ „S;¶5†DrPÌ­sÃz“Z=ÒvþX7jÖ+$`wï籟‚.2•ùEª¥ø%ÊÒm\—xÙÚ¯oŠœDCâªÐ<4·˜ jî·w5IéqêmLèã5`Añm»Û¤Ž6@Ô­|‰‘ù¼°Í&jÿf©H³É–úíGä²3B†ý÷ÌÈt7_k³bæïX H^Œ$ðìÍ2ˤs|‹;sj×G/c+Ñ}Ùy†R´8ozÂ8[ú°Ø2!ΚÏq3kšfc |÷Q“yéìsi.”eo“Ï ÌåË‹| J=_*ö˜æ÷SÁÒQg€¼˜pr×¥üÌBt s1?×í(ë ä‚µÍ ÞCrÄ™¾ö›Gœg~ÓjÚ·-ìæ15˜e¢{j·~y}¶¯^ÜË_Ö9þdrî\|D™ ²%Ït”Ãùæ™ÜÒÚ;Êàrn½Ô`èH/kèNMX˜«€ÑöÜ’G T…µÅúòåz¬½lè%Ô¨÷PZ½ÚAhÁ@,ÐÂ_Ã?Ë—­›=:»s¸vK+´“hÎ2K̳ˆ-Ó¬ezmO¯YÞ:<"ƒÞ¤`à˜ª4%‰™±ÓôãæÝ%ÒjbCo´ûC×s |ø ܘàØYúÛ8a«Wš˜´ L´k˜[å7¿.šÂ7¿!ôô¦NãÂù„!QÆä¥³Ò&ïR´.µ†”ëo)Fg&],‘5År+,å])zEoátêÖOWŒÀ»%°÷¹èÄ TôÊ4Ô绊 # {¬PL´g|}dê#Ú%½5Úuæ9öX7téÌïÍiAhƒ‰ox€Ù» ”!¦õ«dÚ>Sâ6xQ‡iÌ×¶öÀÕdF¯KiMk±šíÓé8¶œ¾¹]§ ešÄ:±ê:Nz„áâjcÂþ†T/—µy7o<¬ê!Ö_i·<àäÐä.’^žpàLÌ««ËRPmܧ¶#%Š)ò£Æÿ¡²/Á?ý†ƒŸIeó–hF‚5<„•¯Ã{Nê=ÑrNÜgé¹ï/¨[;S.Ð*©ØÍïñbR£ROÇiJJÙýÊ.´õÕ hÖ/ðìc¯*<«AäyíU±ÇLôæ—?±`=Éèæ¤§Ã‘¹—ñî];Ägj¤³H¹qÚ!\Ó¨ExX 'õüè©á΢>tíçe“ù¨_4Û+\©øÑU¨–g¤x÷´pâçÏ/sÙç…!A:Y(¬Ã$R 8]щ¯ú§Lzr, Ö h Õ×J\‰,ú¾s%ÙÄw:ƯB:fÐådc1]Pd "§µgTx»³ß´p‘Ä‹và·Ær š(‰…|Ÿ':Éè-´ˆ¶hÁ(¶s^VG¯—ããÙf5ú!jñQïɈƒ&¾“8ïìÞʆÁ‚µß Í|Ý,}lÐÞ®Õ§R9¥0#"ãsÝþNnùî‚Ã"njŸTñ I™ˆÞ”§Í^ ^vKHƒe»ëK’GøÈu†ß:tÝò±Å]×Ê¥åäS£«½×Tî%iÚ?03YgÛ…fuç3‡¥C3ëê6½¦Ø˜ð\Äüä„À°ýä4m¶û›øª°iŸu;Hâ|Y¤É‹…ñަô•Ï©ÆýüÉbiJ£²¤4‹eÁ•tò©šÀŽýë/BJZA‡³Ò*Nš¨®N8B7ô_^}9 ^V­%¤3éx(в\ú¹Â8ï—ÙwOš(Û`e޶×qÄê+p_Kb7¦5ã AŠ–iãóùâ$—ò9ñ‘ëÞJrš•”Œ‘µÒ…P^ƒ`®1 :N Ú0\uBÍÁö©´ÛÐîwhˆv­LôôÆ›ÕädÙ’ÝÔú=ä›§²b®{PŠî麭uÖ3AÖé#–‡„©q R‘÷ƒ6zîöà9A_ÅF¯Ž*ÛtÕžã“o{¼œ¡eøÏF—~(·Ãtäšõ¾ôÕÂ.-VŒ¦¤¨ªè¾Ü‹°1´öV"Ãwž YÖ>á°ùbÖ/ÓáÁBµØ½*Ô¨~eP$2¶ÁPb#^>ÇJT`*ü®Œ¨ 0²i6,{àû€‹†ZEÒ‡Eÿ°Sm~N©B>FGaíÕó™= é[cŠ5ª0(£•'ëý™ùS^`nµïD–O“¯oƒÀ©Ò[‰bɪé€E{brìgPÓÛgüò3iƒkÄ/…DprUS¼ðÂ:…ùÅ wÀ¡æ½Ñnð¼By¹êÈΈGZ Àx[£+ðØý;˜º;ÞØ‡ÉGw^8Ëþ¯è ‡8 L.·#%´ŠÕuø[“¤ÕB"Š¢ äkó5Šïç»r—#)iί…Þ¯ô &tˆ ̱H†ì_K[¿z[šÃ!t™ÒÑ(?Uˆœ°Oê²Ñó-ŽG/dc«´·;{‰‡m¸Á„ß´Y¯ƒ(~*Ÿðpƒ CèPæçdÔI´ô@r=ÙNì8“ÆçO„aP™m1ËŸ¦õŒOèm]Å9ùF˪)ÿ0’E'–‹O ‘?‰Ýå¢2ˆU³õ.Çü#…N<@,Ô™`ѢƄâ|÷Êž†öÙø¦ÕFöÙ!¾ “`äädÃêËŒ0îd¢4×O)凚Ö¥RºG_'*Wäðí/¨µ_ò}Áúta¢¸ÐP%>õÜ:€íþ¶mÞÒ¡k®aúhÿÁ@ç‡%ß¡«ÿTþûÆÇÀÚy•¨$WHþ­§ûÀÓζyY’1Lò»ù2ÊúúA…-åÑè ½cÐðÈà ¡çuÅ×Wö w‡:V¬Ø~Ÿ–÷®.¹ â}¨èGâs Ñ¾Ò˜´%ãSžœ/˜‹ûÙRèPILE«ߨ¥÷1i…ñ§ƒÑ?Æ »c¨¿uñÑ2¹þ\ 1@û˜!þÁ‹'ÂÌ]µž‘¢ÕÔþw–}àY¬PfhdqUËÔ¤x©¹iÖ¶(ášêfE]KôT92òqvªš%ÇŒ!Û—ŽÚ$;¿FÑ%þi³êwÝÔ¥«fd|Å£Œ•’´´©¾U”÷˜þ,'Ñ.ÒS¤ð(ϬGeæE Qϧ€™W”ÊdÔÜo>UjÜ.î'5«j67¸c‹£rqBRaƒ¦©-~8 fŸÝú8&°ýXBigGáx Nk8’†wGƒ ÃJH­ª<ý¢¶ïØ(­l LiY`ˆ¦ìu‰#O}廞ˆõ¢˜µ{•¦Æ–jkÕx¬uWÕêxÝUƒcü®ÆƒÃ|‘Q¾\䯲ÃËL9Û?Ûè¬å>à/ÇPà|ÕîS ¶>+gËõáo(ÊTó|.O–ÍW¸©T›!߬:¶ÒðáSÛnë,-ü°š±mä‹Q:{È\aìÒ&…ŠÑB&¿Ê;Û¾õ´Ž…aC¶Båa¶áÊ |^4O2ÎØL‚°·GGøÅk|ø–9bÅŒè­^ ôáÌlŒtõ‹ä8oJæØŽ“;ÿ‚,‡•÷˜åÁ(SY’ „•Ý’óŒ6çÄ|é*M‘ýjú³¹2›¿Gv8.ŠWU™®×̇NfáBÝkÄB7‰ÂîÁÝ×F*ðÆ­rÒ(Nù:£‹ÚãSk‡¡É9ôJΛÍ|ü¨ÅãjÜ­Õ Õ‚“˜9Ô€º•Fn{5¥|~%åZÀtÌÞ ÀwŸ¦õÄû²„ªQ×rIeGgñ×e¾£/1Ó\!Ø8à`¿uëŒn Hhx„r1°ã6lÕ•²ÆSw\: —§u®`¾VaÄHMKOs‡í+X‘£”kcð†ÿ¦Be{qÕ«+‹ÙX eAvGÞ%Ô|æT2Ï´­×"½z ÿ¦ªª—t g‘öøŽpýµ9íáSD-‡V …mpò´ÔÊGbûçi~÷÷ÇW¼ì-J‰ÁP{´T”Xo®©dYƽ(ÈùÕ…ß~k+½@Ï/QªnÈ2zqhÖÝ<”±…ÐëÍyê¼Ðh ²eŠ^&ó>x¿k°‡*ýð™†^|ü’°Úg¾Í »h5Ë­+iDA‹´m9JàüGopÆ{I931K™GûéPÞG£íÉ8›³¨‘êÑŠKW‘™* ¸‰‰´˜\s ¹×„+ä::`gä¥ ïøâH-]*uñ@Æ]eŸÌ¾œ5Ié]ɇ®x1Ìûô4 OuÓùæ­ÂǾjbÝ ¸9aÕº©hѳ/~X(õ¯ŽüÎÄë¢Ó,@që稃_…ÑDã·¸‰Úý3¤º5Aо։‘>ý±Ô©ÏúŽ_1g%f˜5²J—ݨU$Ò`.†.Z¶%b­—*\nÓ_ÑrŸµ t¿vjº»7BIÉóÔ7oµÙ€¸Ò²¨L`·ÖèFF:Ÿò.å̤’^s”ënxŠ›Q]!ëmR-s£¿ÄA¯‡îã À‘Ñè³!ˆ6×FÇ·mqÇ0]»wËÆ>cÓQ{•:ð“õÅ E®^}¶ì]¬‘4Qs€j—îL½®t“±ÑÛæ=v"‘zÐ>›\¼·V'A¿â¿ܨ٤2pÆU9188Ø^ß’ù,Ð^ú¹<žû¦Pr"kϰÖ_¬q§˜€u-{Æå•^ž|Ûo¼ÃœÔ xIãÐäÂ-ù‹að‚º¾7±Ò6"¬-±íüò!L¤vÎo: )Yå´$6¨f6¶ùfM“@U« Á@”Äû¡­½lÓP˜ÚÃd ƼVJQÔ3ª1jÔ–9¨s{hìù 3¶S7$ø³ q]/¯SO—ôçåG´/ ×ýbÒsE•dœ{ˆ3ºþ[/߹מe‡òxÀd+`Lmä—‘uè§²/êÚCUyûÉš}Ò³t_rWöÑ• ÜK7äuh†žKÏ{AN^`*> Ø]Z/ö¶scM;ÆŒ1¾<Æê³©OÁ¹' -rÔ…ÃpíÓêÓ^cVs)@’.ÙÄFÍL·R‚3ý‡ÓÔ¥‘Éþº#ÆrECj¢ÐcáD~7éq÷ÕùÄ |)ÝÀ½ëï©Ûüª¼Éüoâ2~Z'NFÚ ñªåF÷ zä£Õ'ò}ʽÕtó c§Ú>~EŽv¡:íg~KJ™ìm‚“"Aß[Ò<3«xnDÒ\ÓÆO=ùyÆÒ@앉ö·ò™$œåbï|h¤þ7p®ÍG‹#Þ7¨ óš÷.+ê_ 68öf¿ îŸÇjÅ»s·?íÌ<~¡ hNtóÂS"6C³‡]P*‚mh€À·SFï „[g“öð›_æGË9õotD¨¢òHêöÉ3š—÷ÊœA˜ã–‡Ždõ-5IèòÇ9ÊŽpJ׆¨¶¡ñ¶Mnô{ëB²9¸ T0ª“ºÏ9Ä+L‹µŒÆW"×Íʶö˜Vä)=–LïÞA%Qa’UW'“yãoI5s)ç3y‹'ÀÀ$c?w¤-d2§ %st¸×S;ª7zJë› Éßbl~ÈlcÈ”¬u˜{Þ¼Ðc˜W¯RoR ô_¨â¦fû~òæ)”%<\­æêlñòKz×°&F£Ÿƒ`›æ.jÓüÂ0-9œÔ¹P!|:ýóË`á#ä»$J,ýìú"Î¥ïúÛ^—î‹ã‚˜¨Ž¯o¿gã@èS”´MÌóž+6v(®¨·Îõ Rõèö~ê´õùÊM,nXòºM£€ÚRtê…ŽAý-í&5F‘E+ãä.àLiÏ\cbµ^ÖL‚iÖ–™› âX”DN?@YÃ(`ãFÜÒ!xÌÀ lĶ…dÍz¬_©ø¥Âû/¸¹Þ±%(‰aPEÑdx›ÁÂg1Ùž€ nÅȾ}±ztÏæó2ÕpO6’¶Í‰‡¢4Z ¼Ö‹5³1€†ñâ·‹­nÂ2`£„¬]yÄÅyPòYI‰öŸ%¨l±qÕŠÖœÄIä¾—ë¶—ž=D5KJ4_£šØX¾í`ôAW¢O¸³ó²á›±')öÙMJTê–ÃËT^íÛ¬’ÁF¿òŽ ëµNrZ.Ó¡C ¨ûâŒóΘÆèÓ™†^eÛjá]tÞúQÃøkg§ë~ÊmPR X^GèÏ–òAe™ŠHï2A©Z3.¿pÒO~|¡ÚHÓéºÐ˜×ßÝÚìeŇq'àEÝäp¢wgÀ]ëW‚Ò}ÏZKºhPôSH^_µf‡*6¶ÂÁýô›êJsýéwöÃm1éûõ¾ÈÙÛëŸ<[çlUÊITŽ…kâ¾r ‡DÌ7âµ€ì'C§“N+:Žp–-§,BÀq"•¸{eâßíóI£o¶%#7·nC*D>¹ÜÖDPölž Šä"ë4i5žP³Ø,1Ü‚ÑØâ¸ä ©[&ux@uW}±¡¥äy–Ö«G o&ßG²Ë‹e¨ü²ÓŠø·ISü½¡7­új¹ãØ(ÐAtñk&ìî-|H0Éö4iº í©ùçí…æMaÞ(Š—)·îo™7ž] ãðEœÌ² ófvb/Ðèð?“…äi‡­¯”zN¸íæÎñ*Új/çkÝv0Ÿ8?Z/\Ž,óŠÈ'JhVN ?ÿæÍXÅÞÝ8„ÿ^ƒ„ ñÀž³I¸’ÅW*:EÐB,ÕUÑEß'jmúnÞPƒ¼jrTW –·€Î.g^Kô{¾:š[¥+ëÄÄP6•á' 2 2õĦt¸ÛÊø¾Áÿ8ë¯I–á«_VVEØûIì3 eÚåÿ: MV endstream endobj 658 0 obj << /Type /FontDescriptor /FontName /YZDEFB+CMR12 /Flags 4 /FontBBox [-34 -251 988 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 65 /XHeight 431 /CharSet (/A/C/F/H/K/M/a/b/comma/dieresis/e/f/five/h/i/l/n/o/one/p/period/r/s/t/two/u/y/z/zero) /FontFile 657 0 R >> endobj 659 0 obj << /Length1 1576 /Length2 8336 /Length3 0 /Length 9363 /Filter /FlateDecode >> stream xÚ¶T”ß- Ò „ÔHƒÀÐÝÝÝ] 1CwwJˆRÒ"Hwƒ4HwI—HwI\ô×ÿï[ëÞ5kͼû©sösösÞ¡~¥¢Î$j5IA!.L¬Ì,|qE5Vn ;3 *5µØÅô§•Z ää †Bøþ î2uy²I˜º<Å)B!9W;+;€•‹•›…ÀÆÂÂûW Ô‰ aê¶(2ä 3*µ8ÔÁÓ leíò´Ì_:sz+//7ãït€¨=È ln (šºXƒìŸV47µ¨CÍÁ Ïÿ” °vqqàÝÝÝ™M홡NVBôŒw°‹5@ ä rrY~(™Úƒþ`ÆŒJ а;ÿaW‡Zº¸›:O;°9âü”á ±9ž¨Ë*”@?‚þ`üÙ+3ëßåþÌþU ùljnµw0…x‚!VK° ,¥ÀìâáÂ0…Xü 4µs†>固™‚íLÍž~ïÜ %ª 0}"ø'=gs'°ƒ‹3³3ØîEà¯2O]–„XˆCííAgÔ_û“;ÌŸÚî üãdm!Pwˆ÷ŸÀ ±°üEÂÂÕ¨ ;º‚d%þ y2¡þc³¹8YXX¸y9 GÈÃÜø«¼†§è·“õ—ù‰¯·Ô`ùDä ¶=ý z;›º.N® _ï;þ‹PYY`s€È Aý§ú“dù~:|'°@ŸåI{¬–_Ÿ¿Ÿ Ÿäe…Øyþþû|Rròb²¯ÿ`ü·OL êðfbg0±q²x98ܼßÿVù›ÿ_Ü[ULÁî埂²K(€÷ O½û‹†ÛŸª ûsbèÿ]A ú$e€îå°p²˜?}±þ?ëÿwÊÿŸìUù¿)ÿ7$åjg÷ÛM÷Ûÿÿq›Úƒí<ÿ xR²«ËÓT(BŸfò¿¡Ú ?&Ydvµÿ_¯¬‹éÓtˆB¬ìþn#ØY ì²P»˜[ÿ!¡¿N᩼R:ƒÝ5&V–ÿñ=Í›¹íÓ}âütV¿] §qúï’’s¨Å¯¹cãä˜:9™z¢²<É‹“àÍú4  ßÊ™!P—§À=_€%Ô õ׉rq€b¿L¿7¨ô7âåMÿA¼ ù߈õI¡@п ;hõ/È ‚ÿŸ*Ùþ >-c÷de!ÿ‚O•¡ÿ‚l Ã¿àÓ†]þŸJ¹ý†ÿi‹¹«“ÓÓuñ[¸O=û ÿ¾›@ 9êü Ôœ?Ħ*¤åºB”ØikDp’zK;…žÉ{Þ©Õõé}ù‡ §KÑw_;±7$é.DÈï½÷k›ު6ÿô¹3NPßjFÃïý¸'ZÝCŠB¤!²ísïè£h ×ûEŽ:ÛÑ•C%÷Ú½[Ú£º§èÛPØÌ–êv9—<Ú]ÑS¬fŒA`ÁuŽYÆ4!¢ )2αæÔÅå$NÖè#¹\ÂkTßýXö|o½U¶77Ó^K%lÎíDTDz„¤p8Cã4Þb;ïåf½ ?Ec50²åÞËeîG¢Îɽ¢3Ú èò¶‘ï@’Ø¿\¢ñ…µn_ø""{Iµˆ× Gok‡êJ{t6Ù«’@“¾b3›?ÃÒ»üâs=íz 7^†6 @bi[nŒzóÂ)•ŽOK/³(Þ—ÑÕC}îcGÛ±U®dO¤SO­˜.¶.ÆîŠÊ¤ð;é…Ül,„o*©Üm˜KéÛÉB&ÑÆÈ§-ÍD8±üöA×13RŠë?Gµò ež­QnÎŽ{êI·&™ŸÄ¼Ò¨ÐYK¾òµ²uäÍÁ!ØGÇO¸ð.½ŠzG\ ]‡©…Üà½ï¤ÙО޽àܹdðX·žhYá¯%•uï€>()Á3s¬Ë®E°ã–Ö7^v/KÆ|z[ŠÐ¬2T”êªc¼[ÙíkÒn‹ >aÔ¨ž&7ëC6YfаD$æºÅ¦³¸%‘Uã… /š¹Ë{` !iWy{Pó:ËÊtdAíâ­À±½t@½?ÉäZ5æË’NcQ$ÜrI0©³¤ÕþéDÍá÷ôHçïüpöV•å-z<$ÕãR“ÎÛ}s©¬âE,• sé릟ŒºØ 0Ô-F#T²ë¾•ýÙše@¼Üg-×ÛVßÉZUöi Î£Ñ ~§Q‚^Ÿ ÉKá–¦íÎ zÑîóß&xGI÷_ DÝ` ºÍ3 }EçÅÃé»Ãñi@Š6ÇJ56”{¹B8ø¦µF…5ûdÎ|šQË©ÅÓÑ Ã =óÇ*öm™Nd»/Ö¢yF:D/¸[ÕBÄ€®xÏݯuدü´´¢+MÁFWÖàÝÓšŽ/ äü…ú;y¬mdÓ¢²mòù¸ª¬'?ᗃ̚µ.à§ÀjkGµ½~yƒC›p1¼”´ÄˆõŸ31ÐFvKä89‹+­¼à¸ã­¤eJ#FÅéßÌOþ\¨ efÊ‘X%B&ÂŒäi–[ž×3›«ö—žò P¦i>„ ýÚ£Û»!¸ŠÝ{7+º‹î‰Ô@ú¦e$e¿)˜wBx{{Sf;Ä|yôsKâK!ᇈŽ`À8»ùióãOÕ`Ͳ-E絕ÔLv³9®»W+SÃã;Z¸<†„U-Bµ/ëì?³/ôh¸ÂǪnb÷ì†=Ê*V°@5Jmíà­„mp}鬡{g-›·êOfjh±Ô)Pöœ·tì¢è".Zð!¯ñ2ÓµQgDP z6eR€ô}9£Lëfúe¾ .PȫΌ{>óžÖæ»,"c$x ºÃñs|£³yarˆí#½ˆvi­’fñF(5ÿ@ÔÙBbèkAIú"z•äyý<+A»†õ%˜³›>÷–º‰ø‰vªÚSž ÷ z@: ø'kºœŸÉ‰‚ÜOƒV¨Ÿ¸¼õÁ’_jÓ‡‰øU{‡©i•s¥Þøù Qø’@ì×û¬¢y÷ÏýD{Ý‚a€=£ŠÉ €TBC# žB›<ïØæ¬š¤¹0'@>m¾¹ÿ±öF‡´•(pÝêQ·…©ó(ž–Õ x®£°AÑ.ô9e)(ê¯CRtç4Örü˜ÔJ~c%XþjcÖ¤6ÞspPsB=r$W)>Õµt*ë«Ð©®ßVzk-Ÿ¶²ó¶ƒN¡›ô0i·4:7‹¹ „‚€›%Ë.ÙFk4¢i¢ $û“Ñc C‰Û¿ë›VŠÇÌ¥†¤øÐ™À~§%%ÌJ¨-¼hD]Sm*ù@øë¨À‹¯þwúd‰ùšAc;¨ ûÝ™;û¸Föšæ›4.ü¤ÿ`¿ìwreÇ Ýàwó¥‹&¡h×üãiv/?¤rçs³) jÐÈûSùŒÍÒ25Ï Á|P«„ºð`£ƒ_Ù8 ¼Þ¬ÿ ß$P™ÙöRuuŽ¥ó–$ÕŸxÒï×b Ô1<Öo³úB=öö[4Eä)`Áïy”ÝÈ·R/Ü”¾ŸÎæ­G’ˆ[É‚=ž¨>0zÊD¯Wˆ6ÄA¹iÆ”™B®¾)𼋼ÖkŸyUSp2ŸîðÈð•F/uG¹é4:WLr?û°ckºÝ `Öq‰¨«3ÄUtŠ¢íRÇ‚üHלyìê[ᾉŽR¤ÇëY0D‘ª œÍGÞáÉÏD„nß4ÃUøq‚ ’oÐ<™·:žaMY¾ÔÊ›~‰Ø°ÊZ€ ”;O½F–¥àãÍâ€j1M%’Fñ†¡G9Žå‡h¡ðm}Pg‡R†*±íjñn˜Nr€]Ó¥®§pÆjáà|›bÑ‘ÓÆ‚Q¹,(‚‰ .°>YX¸Fëy¬]±´>Eư8?U»N!b‘ Â>]­êD>jâg]زFñY»åèMÃyšùD8¯l3¼òdî•>P<áÊGY˜êU:·¶¼ÞÑ›ña)Ó.ͳ_bÌ-¢‰çUs{®%ÛDôÖ‹=3OþW,0ž²}Ú‹˜j ±˜½SœXÑWÁÆ—Ó3mëlîƒp¸ª3Ò7/ Ÿa{±„^4gÒT½OÒ ñ+™h×µX$R’Iª@qCOq¢-ÕÄ£ÎÁyM’Ô±Õ©ßóe'Z"ži ¢É*]—¥€v5ÚÿYjñ^Ix·ï+­¹0©1\þ´ú¹»ÿ°—ͰNDØŠAŸü0øEý$º 1ÜÔrœb[ªY#¢WH߇NÂjbkJSd> Ë£"äuÊ×wÛaÒïU˜/>¯à$„'™Ã—•Ö!žÃ!‹ÖuO'£ª½È Nóëçm WoVl¯lºøÎ²€±ƒ€ 'ƒ—Œ×?.ðRZY“ÃÆ¢´¥Ú‚ç«É–ʸ£¾˜}/Y¥.¹_)‡;ùê›UqQO©Zg¥ãû—MäÝ1G!ÂÓS³Skϼ¡kdëÈ|‹öá4(s)¡c®»e诌…3;ÌÝtQ†ýl"ÁËÙäù}Ÿ"fp H O4}RÏ…ÄJƒ±Ô%ƒÝW‚¿!PÙ<.kÒ²x>lJ tåØÅ"Ú˜ä’âcèxhÔ¡5_ÙÝuÀÃ>ê /ñè”é†aÝ?xÃİNž›~Òýìª.ñãÜ}§OåÓqÃþsý½§àÊyk\Îô›Þ[Ie8ĦȯVk°²„?0-c~œéŒ³­—yëlkV«öAÄtî• ÂªæaÅ ¦´gëÏÕÑ#XΕ>Ž#Š ×6®*ù=¤“$®µèULXÛ¹ðiAãÖp°4Ó.Œ²0ß(xì Œ*8øµ®ÒÀœ40uU¾$-žÝo——Ä­ÚÈhÇ¢¨~‡©2HF€E7[{Ÿr‹ç|øj û|½=XUálÁbV¢)\b ‚°˜èñíž&r0B-;´æ"Ìód˜Œ=:À‰–(E-<Êž,ì#åùt”‚Ú*ðSA8ªMóRíQÈí šCWzœÇʺG±z¬½;æˆÍAá?ã4–um-4©[ȳ¾ÆPï §€Í¸ŠU÷ù9æ°m°¨b'Jå\`üª-vès^…ä¯wÛ¢o²êE/åÜ.wíÕTÆÓoÔ½€½›Tî=É’±EQxºkvÒ0½{×¹©É~ëÖ±Ñß«¾h•ÉëOkjò_©p±¢l4æE¹}_¨çHB"os p•§C‚X{‚°.ÒpÍdsMŽrÄ)ú…r7®³„2Þão «_žqÒâ§:kÈ3Ò´ÒØ!)“¶Ã'ÈV&ç6ÎŇ#Ö›ÄÔ Êª.ñÈDjºh—)ß µ5ð$W]I¬U8 Ô’)ó¨ýÖ)ôD#?ÛS>>ÊûÜ¥÷²éMšQßy»>šÉ ˜Ll!áz´ÁL¦AVØ›¸GåØ/ù¼wñ'c&½¿é$íaLOdÐ>/º©žáëã]JTûe"²‹Eë³»Ô/¶ê{Ìé›^²0@Á÷ÍF¦N^uM0Þ“Ýses%LAĺWÚñ;“z_“T ^©ÕÞ#Ù´d­bU%²FÍ‚JKÌÊ‚'}³’ ÍRaq²Î÷ÛB®%•X8+È öŒŠ8þ’’ÛJÆG;OX1>B%Ø8[»dHA¿¶¼oÄiÎÜÙë«ò+j“—oæF\®²þfÍ©ÔÀÌt£6}'G€p@ÑÎR̈˜"Q¢ægFsz–͈×Y=/z#WΉrÒü^¬–§ž ‚‡¿nyH˜Ô8ªº[:¼o•*úÖpSDI'+B ç;Ö)x(FöÊäî„þ ¯Íò1Pµÿäy†iYSáýÈÌŸ´_8,­{fÌ2(ž^>‚á¹-LÞ«N‰1^ ®Ë“çÞû(c3ªÛC–CWuz›k'NþºSË–ïn˜‰;­!©#›_7£ïPìÒ„¿*"½þÚÄ~­ÐMØÔ!uó²¯@­\ɯzß”-F¥sï·‹@‰ªh†«"zx-EÈÃ|½CÃj.F™Nð*jQL±òü¡w}Þà~6œoAšr[#ᘴ¾‡x§˜‡[4¥º/g†5’Vf¤‘>Yû¼ËÆòt ´¬KuQÐJËz¨@ 0„É­O·K-ªbºœŒÎ̘øNä‘ó“@¦í%#Bi'aýÇ:ºÝ,}Uí@ÙÂ/¢ö5ÀjÓŸlS‰& a†£v·ìoô&*.'œ<šÇËbgøa•º¬¼]˜YÓ·nþ˜>>öÅËU7·£Öç"ËE—¼W—z€ )4 qlšˆìäÏ|1a¼! {uÞ©Ñ¢-ˆêöÚÕÛɆœÑ÷N’nó[”·t$ Ö'9º5Úí4°ätêšxS[Iå"ý’o9Ä"Nû?¿Nñ´Í³$ê_`:ðË,w|¥úâÈÅ‘'H¥¹ÝõíBnÉsx·<±À˜º?ÄüùðlÚU4))¸7…þ:#h:£ [Æã©‚Ð1|{‚Iå°‰€fÝÔëš÷–ò|©9Å–œ‹e§8µn8/OÕh×ë(Q±‘„Ö›)Ž„J_ká2â΋• ¼‘ ¯wÿH\ÆŠ¬Ñl‚ªV<“*DRF:8Óç~vkm»žrw\¥ŽîhØœ´6ŒcÂÛ_'zN® B\LÉ<²lºÛ”ûÁüUìøœc–¢YêdžüŒ2‡³»DEŠƒ{8u9\GÂSû$튔"”ãs z¡^*x¢EÈðaY[½†u5ÞN¡°º£°3Ü.Å£wÕÞ!“vökÊILÄ+{ýY²X#Ôéሠê»05ÃËW2"Îr£_†Å»/¿·Ásä{xëšs#9åz!;N67³ð‚\>ìõ(ì`$±-¬0¤ó#˜=ñ\aÈåÛP¬Fæ1m›Í³P“y À£—îØÃÊ÷ûoå»WðøfÛ Ìú¨’Nߥ¬Aù;Ý%24»RsQh«ïM*•È×a˜ãÅÛSž-^ê…¡½3’G9_íVÏ”OÅ@!•,\þ´®4KÚ©Ø-¤­jï†ÕR0©}K”+ NÇ´Q³?š"±¦ùº­(e3ôNuŠ®G3½úŽZí¸½ï½óÑcT7d*ͼŸ9Ò¾îúÄfò{LTSûŠç.ÖÆOÉVü{b©dp¥f.ÅðõEÉøŒ÷Û!ÑMÅw˜ŒƒDÚI“í”0ʃȗtÄš8ÐÁÒQãÆRVÜ›¶µõŽÂ 0D†%ç ¬B¨cír#Qûj’"½âÛ®LɰÎ\]ÒŽˆÇôÇXóZÝð‹ß-Ž ·Î¤„£ìÍ—Y»»³-3CÚy¾³Lzˆw=~>°[XÓHûCDÈl4–(t¤Áèó[ó$TMwêGâsRdçI†Ø2¢6½£_£G+‰-S]/2ìUzâ³Dls°ÙRu;–º4 ‡2ºTNøP[+ð'Ÿp¬î¡<£¬øJ{­Í¶1pÛ,=óYQ³<ÄNYÌx7=¡ oK+¬ÉLæVÕ W ÈË-!>Er™uY,åðÓþy´óY¸eŸÜdž¸zò—ì¦7˜òý,I u\ªâXt&¸ö‚ÑiC] Em«A³¤ýˆ’ù+m‹U“ oŒ‘kaÒâPDK¢–wqn.E÷8CŽöuÔâÝy\H[¾ý6W½È:súpUä¨xL5båýú ›s…°‹ž<çSÝ€äüVº}q'jãlf‚À2•teÙϧL›+b"éÞõcN}Žz¶Íñeæ¶:رè¼u»+Ã\½@”ìb^z_zÒ¡{'VÝ· 8ÎaJЯ"E🻱>üŠ«>Æ|,”€OßÍ=¯{À*‡›• \Õþî”ÿ¬ßC5–ô}¬àd:Výë­Î5nJÐÆèÈIùw®õk\7U4ß]Û›P—¯±¿(Ö¸Íè£è÷ƒÃç÷¨×{³Vâ¥ç¯õ1¿ðwKX®¥äp÷•ŽŠ;ð~™ªÜƾ™Õ ô5czh/!t¦ìî,l!”§ÅȦå+%GTwÐWÓìò×(yR¶QH™×ÃzŽ@”·?p¤úú¦h:)wÍÛécpÌ÷8UÚ   cÎþƒ-XÄSÁØ(Ž|!€!‰9XýëP¤ÉkU»½BgÇQª¬óãŠ!jÚSi‰wå÷ŒóBv÷Vþ/ÑÜ4¹D†´·o+É…K<+Ç 'H®hÉ æd—sò ™Ÿ8'%&B½KNNv£z;Ì*ü(´PúQliÛ93>οá¡Jä=yaCͬÅöýæôñ%]±0$-7“÷½ÌM'~]ßÃinÁ5þ&—âAÊ[p~¤×¢‡nò€Ê³Ã¢Fn®-é¾× 96]ÖËÚ,µQñAñ†”ØqC¿5´ík•λÊ÷å_Üû7ù”WCƒßº6ÜÓ³pN=k]] xItÛÂ5}CÇEé#ÕSœÑ!v†®Ã„Ʊ„]±jY•d”üºF.^Kµ½Ÿ:ïvÌyQÚ–w S…ÃÒ§‹ ޶y×ô.IHí‚ ò£|6­¥¡nup=âV”3WMÃØ€M©éÓö #(‡Ÿç=[+Ô±{f(ðp•qPV@URNrÏŠäTˆ +ïV6k'f2Útùø9úÁ½=Ä|cØ$ÍmoœP01 OõâÈobCî(Sü3E>MÌU¤]+\\•žÁ­§–8½+[VùP¦ZæAÕÕJQÊǹm×tÂÀè! Ïªå·Æ uì’æ]ïšnyÎq=Ê_˜3† ›Â!=Š÷ö«ý8¾ô&î]Î8PS=W+d¢ l¹E¼°q-ú¾ò1‘v´ÎêÃÖa‰êðýjäĘüáô“–äW;4Š!+§“A«£ÊûÉz:ÿå ‹ÕWzó ’òàr$„3سZ{q 1>™0²4ß@Åe«"GfœÅ=bÁ5´8 É`VÔß17Ë-Hnæ'F° ápúYHædcç¨`ÁU*wë›Èšf<…tKGK£Ë‡^«”¨$ÏY…!ÁWêÄ/S—hž§Ê9×ÞÉ‘o݆UÙ&ŽfTmO¨bðÊïì`ž‹’’&çhgxÎG"³ìâw·ŠQA4v§Äöcÿº4›Z«»"¢òýø¬í¢&='Ç<•µëOô‚OJÈY€œÍcA¨(k«zÝ{va/3¢3lLOîæo?’ˆQÅìdû×gÓÈ®[C~:ÔeQ,LJ¿d.*_Øi®=x¸äâL½5š¥š6<šæ©·Ú9SO¾ªÌ‹ãâI´$ åX Íl1ʬæäfWŸpeÀÖXá~ëš)¤£é<'êñBnÚ’x‡{róÇ{ˆÞ#Yê¸â¼‡}{³a=Üëg9£Ô}Äî52y¤!ÕM²Áë ÓÎ1Ú\+{ÖÒxéé¼\YØá¼Õi@w ÌQ7 Ÿ·:°Z}8Çáá&ÆÛ&—qäS/Ô˜±‰C•o:c¼ðúðÓîõÿsYн¸Ìæå7ã–/ö¾šÍ±èqë¨á—/œ¶½Î`5>F”ëÐÜ€“YÔ$Ím$š¾˜±Í)6ò= àâõcÔiŠì x¯cÜ•±4ÐZ)…%¥Ä^©8gÀÇÅséÅý Af  2X¦úèÚ¤Œ¾:s•޳øi!ŽCƒâûì¥MÕ`äØ2$OÓ…Å‘DˆÒàŸ¿—&Wa:çGÞdÆÎ*w)£Y^?¿½3Q—ÚÅŸn"+t@êHþÛ/¸vÅŸäÊŸ»“n‘ÐyÏÅ0ý¿l/Üih¡Š®ù×mÇÖOÂaW¾çÕ”tkÁRv¾…ZÊhˆ=Bm:ðÔ×,4°ÃÖ›úMÚKW*¶JD¥U‚: Úƒ\ÄÎç›EUÏ8.‘6 ôâãªy%óy÷f¡#ðtóôLÆ!³‰Ooݰ•4N¬Ó¤©ÊËecK†~ƒx ŒÎc\o ‚¯¢Kö¶z®…þEÔ endstream endobj 660 0 obj << /Type /FontDescriptor /FontName /FDJKBI+CMR17 /Flags 4 /FontBBox [-33 -250 945 749] /Ascent 694 /CapHeight 683 /Descent -195 /ItalicAngle 0 /StemV 53 /XHeight 430 /CharSet (/B/N/a/c/e/g/i/k/l/n/o/p/t/v) /FontFile 659 0 R >> endobj 661 0 obj << /Length1 1379 /Length2 5950 /Length3 0 /Length 6890 /Filter /FlateDecode >> stream xÚVT쿦[ZRp€”Ôè–é0`Äl4H*!H§ˆH—¤t#%)HwÒJøӯî÷¿÷œ{ÏÎÙÞ÷—ïóþžç=ceÒÖ㑳…Yƒ•`P?/PðXSW ò¬¬ú„3ø+«!ØA%þ›ÿ±;„@Ù@T˜& Pópð øE$øE%€@€(þW Ì] ò„Ø4yj0(NÀúæêã±w@ ºüµpØpøÅÅE¹§ä\Àî  B8€]Pm@Î=˜ ŒðùW )ÂU‚ÏËË‹äç…¹Û?âäxA]0ìî ¶ü‚ xrÿÆKÀ Ðw€Àÿ0ëÁì^ w0ep†Ø€¡pT‚Ôì@õè©j´\ÁÐ?‚5þàüy5~^þ¿Ëý™ý«ú;dcsqA} P{€Ä ÐRÒàEx#¸ ¨í¯@3†Êy‚ Î kTÀJr: ߟèà6îWœqþ…ïWÔ%+BmÃ\\ÀPœà×ù î`Ô­ûðý«æõûcmÚÚý‚`ëáÊg…¸y€UþŒ@™þ±Ùƒa (*&»ÀÞ6|¿Šëû¸‚;ù™Qçðs…¹ìPÀ;0ê‡Àòîà¿ÿîø÷Ž€Ÿ` ±A¬Áö(Á?ÕQf°Ý{ÔäÝ!ÞS Šxüà¯Ïß+s·laPgŸÂ—O[ËÈÀð1×oÀ»äåaÞ?~ €G@ˆâ*P ŠZü»ÊßøÿÂþÛª ‚üy6à?U¡v0€øPw÷ Ï?9Áñ§\8ÿîð†â1ÀñíÍ€Â@Ôÿÿ›ü¿Sþ7ÎÿªòÐþ?Ï£äáìüÛËñËý?¼ ˆ³ÏŸ~‹=(EhÂPº€þg¨øk‚m!.ÿéUE€PʃÚ;ÿ}‰¸Äl« AØ8üA ¿f€*ï ‚µapȯg€ð?|(­Ù8¡ž8jR¿]`””þÝRj³ý¥9aÈÝäC€^( J àì`î¿æ)$àC=V¿Œÿ*lãáîŽÛïÁ£ºþµÿ­l0ØlC0;³‘ s¬k¹¨”£÷âÙ‘þºa”ÆÉã7ëÞê$ÆMæ¬È Yv?“KþÔEº°®Èq*;wÿÚo·ñnxS¢Nó•ÿOËxݱf‚™ÏT½£y»r5= ø÷xôe7ý¯Ýü ƒ0ÑÛÕX³Ý<Ĉµs(.¼º•½kzJæ‡^LmèlVˆ¨þ,ç‰1ˆ6 .œ`}gýf’†ÁÀ÷ü‡7ÉÄéÙò·£·÷Õâ¹öbóýLV^]Nú.–é À;hКÐ0`ž’±ùÉo¥¨QOûå/ôÎx7Jåß{‡;u‡”wKàuD÷%´þc•çÐlÿ×ìd@;}/Å×ĪâzJKwf­»Í–/)U‚N`†­6;ù9*3Ý)&Þ„Ó¬üÝÒOm˜¬qº=qÑ|¯¾Ç¹ð½x›#7yU"89O³ã_^è’ïýÆ7à BwêMöä ߥ3t×ÖJŸ£mö—à é¶–LJžޒ„y9n*ÉW49›_U[X ²öR…$Y[=Á_¡Õkïu¤P¾˜ÔÑ´½ªv¸>}Ìó¥—À„ç“Cì©Z¦aütMBÿ±¡1¬èpÁb¾„Äç­}f*îhÔcúX³µšPÁ±(áS®Ü.vÌÁVå;B÷_óÜÄ–´·t‰Å¹pÍêltœõ.µÒæÝlHvM//‘/©>ªX;ÚZ6î|sgÆ"àA½¹ø73ž‡Î¡:ÏÍüƒ}Š‘Á©èm@–MÂFž´KË9RC÷µ†ZˆBÛ×,ªù§’kêíšv2”.Yø’ëï1,Ì1ìoYJê_?qצ¨£©@Xñ3Ç>÷ ³žâ«„W™ý@Bœòh›e‘è?Xµ>U–™ÞÈlažíz ¿Œ®4uQ^[L%w»&ö ãÖfÒ¼?bÎùt'x«&f{ñæŒ>3Ã¥;W_âÓnnß'—Éò …PNZ‰¶&ܨOsD¨ ‡¹ê®:ãè]MRÛ¼ON…œ/Ûd×Û«íô*b„_?C¿y"z°!¹=ω¯}>Ã?\ÖjªÚ–RíýLãÚËLŸêî¾øŽ>Ë—i$uí½bn[wP 'z]¦/ôÁJ§ ãuñe±žðËš#{j‡Üä åöóÒ#¦O´ì$ngQrO0ÜpÛÅðG àª®†Ûp"]'×ÞÙîáÙ=cCy¬ØñmÔ_ŸÞKû¼N+•4¼7qÕ­¸ÛÈðÆuÅ.‡[qÞ·žD‹±Ä×ÞúzæY¬{4,oÌX^XÆ8 ÁL½ÃŒID“3I=-ybF/†·çËçÔÑœˆ^tÂýG:8n·Ó}.*PSsj8';ã%ó;#ޝ×/ÌÌ›(’ ]ñ…RÀo+Ý-oº0 ;?nƒT†SèâøûYï8¢g%L‚|ó‘Ö|¬.$ÛŠ™ãÁºÀ€Öâ®kc}h‘*0ûÒ Æs¤qq£z_Æè ”Þ»é$ó´Lý±ûk£@ì¶ÊîkÃÁñm±ÀcK"CUׯ÷—Çù^g+¨Ukõ¹‚‚Þà VHæ©©ö° W>’x[oÆ®¹X "Ö‰„¸æ¦^%ó$äzhбnÑÊE„±<"««@»,Êï´´áý´qî´ÕkŒi𘦚_ÍwkžŸR‹ä³gùb†I‡F‹&s7x’º:xEQ'Ja~ óÅ_¸{÷<ÃY„öþnY/•ycź¥þâ®vY¼ž‹º&Rìæ'‰ŠÀçä¯øË²gd0â÷?²æÑê_5 G“š21º#\.‰Ô˜j"†£çN£§Dßh3o§uŽ»<öÏxßHLj“i@þôÉ.ïÓ ÖºK…1rø0:e ‰ÄçÑê8޲{Ýk-ÕtºÐ­ý³ dôhLæ„›œ&¤‰ÕU6bNL‰D­;0ûˆÆ¥â¹ÞZS'î ]sî{註<»´üÄ|r¡ÁKƱT %Wש~­ ;úi'%|F7,³bÐjú‚ÈY×êd«,±ùüÆuÝäKøäݺĦ‘èf….‡–—è`úU§±Ô r|<Ø»ÔÕE¦Õ‡àðøœ–+Zú’ÒeÁ×ÜÄ’|sûKh$£,^ó¹»w.)ÍJˆw–û„z)Ùuö†ù]ú¾ßqõ »“É™ÔÁPaqj‘WZ¿ÝWA@þ³¬ûUñJ®¬¼|û6ûÇSé~«L_G‚ã#_S&¯~¹2Î É×”ßÝj%\È ]çy힬¾·‘nÉ÷?œhÌ.pk¤¡FO9ký¸–TeñÉkmdGýi=m³"€ôÍŽÜc&®+›-ï}‰§!A‘[üR¹ºÈÙÀ²â²—ââD ¤Á²aE[²v3¾ ×î®9ŸòÜ-ºyƒ{k®šm¦¯¿­³tBQ¿®Õ7¢ã¬<ßú÷—ðD~…êâs^Ǥ(\1sÜF²1wDÒ¤†Ýv<Í[}ïÚœ")RUœ2MÊlâTæ)í‚rVëiÖî9‰^Í3*Wa)ÅãâÂ<&É0<}µÜäóÐtÂÇóÝqgôÇž ‘³¤ÆœWy+rÛ©Ÿl*Á"¾M!•¤¥ûŒ¼FUe‚‹Šç¼?¦'cËw.Tì(|´hz)‡¨^ÝŽB¨ùpº ôÝX/¿Bå8 œu'c1˯-V«B®Ê)+ÆÛNøæm‡eÔQ‘Èï ù¯ܺú0æóZ;1{%¾“|$Ò.ƒØYÔ,*`ûTuêYT˜ÕyÅpw†綬æÛßi?b¿Y"°é^Óa²y52ׂÃAY^7óõ¶¿±¥þ®´L:çºo áœÏ½ž{”æŽ jÆže܆z¸ð1Sbõ™étÀ;_›; Íóü²çÏú'©ß@#,lW¸ÍΨøYefùéSÃ,’UÖ©›&µr­d ž¹4¦ùÿ°÷èκŠjD¸ž6™<ó¼ÛR`w“áu¯e¬~˜&^Ð8ŸÛÉ‘¶°lÚ°[Gƒ±cÞ×ù§p!M pqît—sD<Òù¾À 5Ǧù£tîªÙ=7w`yš» ‚íáï¿Æ|´,ŸG»q}í âmZêÒëc­‰40›ìqd/”±ºB·+›W?` ²×å.à&úRÊvþ2‘¼É!Î)éÐWd•3›7«…>XJ¯.àQöܧûúÇ…M÷ìcÓn½À6陽°´¼ß1ø™k˜ŠËÄpwéõÈcì™L•ó©]s`Jõíî©ÕàEïD楕©Q{U1'Ë”½‘Û=·]з ;¶Ÿ¼‹kO÷m»€0EæÀ‰ÇIægpÊáMïÝš$KJ|`Ö9äЭVD,<$¥0úy»f&©’f˜Ͷ®Ž·&É}‚5K9®`fÕÝ)ñÂaõeÃVM—ª£p~¶U\<ä©‘ÉÚ›ž» ø[ À¡0ÝE\Óñ¯il;}¹ÂÅ qò]Ú›¹|¼éñùÂPmí$®KÀÁœ3=‡©7Ú ¡Î"m&;ÉÎ)ÌùECÃvéŠ^*5ǰu¢šF‚(|«ç¹7þœd$Úlpq¼F²Púç8ʲ»}—Û‹¤tëÅÍbn©½¹“O©Ü.eôøÚ 2´æhÜž«Ù÷:³l$Оf¦M}‘øü'M¼àò0ã½úüÆsQž§f—Rl"õ[:nÁÀg6Ú2çÎ  ïˆzøÙÉ õÞ_lO½Íñ[®v<ˆÕIjœt†Ö’ZwlZV)“":6œÑ{mÝq>Ò4\ø6‘‚s²Ty(úîQªÜ¥SÉl™Ý;øPëLœ[§neÇî•+y}Ì_o´f"êwævK}bHžçÇÉ=k?›!½ 8yÒ¿HEQ£«õ#HŽp-×תܪXlú~F¨iˆñæ–·U5©±úýqÉòìx¿ö£ÄÚn-Ú«ÏËuTª}ì®ÇÙÔ…)²`íÁáôñ·‹ZynZàI+3ÝMïóZWnÛÌ¥×}áûkŒž¦ão[ "Ø&gÔ[[\¥WªóT¶Hò[-³†Ë«µ?d‹ ¯Œš]×kîŸêš`‹vÄ‹šÖ¹wÒä rvfN(M#ÌLÍÇÈö*ÝÜ.ZóîÏ)Ë)F b®wiLè ñ<£«2ÝA~!.veÑ6CG‘4N´²bÌÏÜfRØØÞþx)ê.?Êëð‚>§}¯NËyÝÓ»ñ¸ÀX œÚJÏÇ¢b?n?sU’ÿá:ðÁóZpE+^ð|Œ“KݧƇ¹PÝx>ø7x/hêUǾæÈ†&žÝçƒ]•hL¹·gµ©] ŸÙÄKöcÃê:^GöKÚàÒ¤ÝÞ<”zÝøµð¨i} Cÿð @Ï >iò dí?ex@r’ùHF¬W°yý½ªc›hÝ}r.òo¸Ö«Ê+k½É5ôÑ é½áð—c ÌD¤ÏËx<œØ³SC[’ÄWFœŠCø³¹ä‘Pœãس#_‹RWnTT„&fä[i¿¸œ©¦æ>k'pöbP…¾?†Ç© Ê›žÞÙ¨ÞWÐÐÌ^íerƒÌù¾·åZ lEmþî*”¹M¨ùýÜÇ] s^sýPêxÁ“Rß0û…›kѹjÃs4c¿.ñ½™NIœïs™:w‡’©GNÚT™¥VË/ËpÙFÉ„˜%¯F¾ßO®þæ7Ð÷”÷ª × ]ÚòÅîDµ`uÕú›Øfì(¯ÙÈ à C¿e¾vê Bnã%PŒVÃ3Q¡¬VòèÕñšõûY·¾“Î×n X;–có(Ú—;]œlRßhƒÝPp!÷FãÃë¨Â¢ª&ºØóâ šF:2U£zÿÛKJ÷*ïÐSPBK{ «ïÇižZìw„½lšÎÍ9U?i$Ñ,Ä¿…0:ïs’6PÇ•„ÍÞ¿ïoS¡<[ôàŽ®9õ»=¾rVæM+a@²p󷜡â9’î£ÒŽØ¯‹Ÿš·¹h©r‚÷Ò„Yófù¤‡Ð;*0”Áx'¯–ŠäÂ{ëêšåÉ€¦Ì·¶u~_§÷åŸ/g˜>êêC|S6}rÒr¼æ:¸!À*ý²ÌñÅ2uþÁøZœ-CfŠ7¾âæÇsJµ]éÀľž¯‰ÃíåJU32l)Þ®ßênœkGàâ;|µë!Î1€vxí¨* [㧉')ïK xN¢ê6ÿz áz0TÁhذ Æó^¸øÔ¶s<ÒZà:MRPS+S<ÇŽŸ»ƒsåœmÑÁ»ÉI4ZN“ЕŠêƒÐ•—û@ˆœêòÐÇ&q"‹ e{®î"<ýOsòGùÜr§êØamJºú;Y#Ýâ€ÃܯhïôŽª¶4ý6šË¶±TR6|Ǩ ò¡ÖUWî÷§Q€»\2é³g¸,Î,M›Bˆú5ºo¡>úƒ¢ØÚV¡é£¬ ä}½‰±lŒ ~R:2˜¸¹oêD;Óí4™§‹¼U ód zÏËK#C\F†yÐꌖͪSØ"¥Ð½N0½9îÊ뱜V3xšÏ²)K"ü¨8|ÍÆm«‰Œ$»½S?<ì1Çf{¹%Lü®â‹˜qÚ¤®Q僷ë“Âô÷¡²® B;›Z`²¤Ýê´¶…Ž ¿ˆë/8•A „!uô—v‚Ûh&'A]ÝWS^?¼ é,e¢Ìé„×?v‰³5ŠŠ<m²ÄØqAÖh©#tžvÏïa!½M2&O×ð›LÄÆžÝ Æ´ÿÐÛÜ–ø§»5ÏC~<"ÜFßñðÀ‰$ÕˬPïŸ|â\–ÍM–=u…pP,„ë<õ2?©Ã«ü~Ütÿ(o%€¶Ô¼Ç2ÙyȤˆó’ia¼A‘8X<µ¡cS»iIÙþ0/¼Ç 7û³6¿ßç` :Jhvä«É,¥9?kýÖ¡;œkûÙ›rGÊžNýÆúópÙM§»n|«Ò“*>=»Ö§þ+NDz;”ëšøÕkÉJc•„÷x©è¨b3ð¯Nø{ã§f!ÃW‹”q.¹ÍX çj,!ûòg+»ÔÚ¢TWŸ=—uªA–†| &LžÔŸ¡•Kç‰pI‹䜕;7èEÝß¿$8å8‹î+Æã¢«RØ~>.¸¤døu¨“3b¡Íd6‹ž$6]Š“3NÝæø4IСØ@ݪ$R¾£IÁ<7G¡º×]QfrZàÅ@¹_ô}f0‡,áÇîöؘ€kÊî€3àE´å8²N §aNjğq$­TT¤ï^>ïfñ?nÍ=•åÆ ßI£'’–- ¿J7ÍVŠÔ×Íc‡WZ*âO=Š‹§¹ÛU1‘–ûvøj0¢ìhëÚ#è˜ý‰¡‡Çá .+@iãéÊáØÃWÜÇ,œÞ𦹀)«Àªõ›&)LXR~Ïu¹ÂÏyÈÐ8^| ¨;< WÍ£¸gL<Ò!ÅžeøA£ ´Í;§_Â’W\Ã)%;vñÏvºÙW½ÝÍ8Á'SöSÊ]—€"gjíäÐÛèTA„VITýœÚLÓíµÖ±ž»svígé!ÅÞ†ëõZJ~¶Ì‡„ëg ãB¿ö[*òj•ê*m}yB•.‚OžF™f;±˜[ üôHnY7µ7ø¿ÓDuË endstream endobj 662 0 obj << /Type /FontDescriptor /FontName /POWUVC+CMR5 /Flags 4 /FontBBox [-10 -250 1304 750] /Ascent 694 /CapHeight 680 /Descent -194 /ItalicAngle 0 /StemV 89 /XHeight 431 /CharSet (/one) /FontFile 661 0 R >> endobj 663 0 obj << /Length1 1393 /Length2 6165 /Length3 0 /Length 7106 /Filter /FlateDecode >> stream xÚVTì»G@bt·LBém¤ tw*!5Æ€Û`Œ%(%R"HJ+¢4Hƒ€HIH§„’* Í~u¿ÿ½çÜ{vÎö>ýüÞç÷¼güWLE•Ñp 4 + ËUõMd€`°„,àç7C`Ýáhüwà/%÷ßìª8‹×©A±x7}4 ¨ãí„H!Òr90(ËþåˆÆÈÕ >G ¾P‚{øUÑþ„³ _å¯#P&„ÈÊʈü*#á ŠêC±.p$¾" ê4EÃp¬ÿ¿RÜrÁb=ä@ ___1(ÒK qVú"°.@¸ãwþ‚ 4€"Έøf.¯?Ô¦h'¬/âîå…ðF9Â1@|m ©¶ÐÐŽúÃYïàŸW„ˆAþN÷gô¯DÔï`( †Fz@Qþ”3Ð ájè‰aý°"@(Êñ—#ÔÝ ‡ú@îP¼ÃïÆ¡@ ec ïOt^0 Âë%æ…pÿ…ô+ þ’ÕQŽªh$ŽÂz~õ§†ÀÀaø[÷ý« í‹ÂýqvB ~ApôöÝF!<½áÚjzàU€tÎp,P ËÈ‚pO Üæú•ÜÌßþÛù¥Æ÷„ó@{ðàA'8þ€ó‚úÀXŒ7<÷ß ÿ–ÐÃàÎàŸìx5Üé?y ÂxŒ'þõùûdƒç–#åîÿûïá‚,-Ì u„þÛ¤¢‚öâDÅe€¢âR` ".”Á‚þåoüaÿ­5‚"þì üOFm”(ûüÝýÃçONü¹.‚ÀW0@ãy  üC{k°†ÿ‚ü¿Éÿ;äãü¯,ÿíÿ³ ow÷ßV_æÿa…"îþÚñ,öÆâ7Bß ÔºšÃÿXb}¸#ÂùŸVm,¿Ê(g÷¿/á¥ðƒ;!°0—?ô× ðéÝ(¸Ú ñ뙊BÀàÿ°áw æ†J¼ð“úm‚ãWéß%ÕQ0´ã¯—’B1¨??x¼$ÄAðËé÷ûÍk H …ÆâC€xxA@'4ðkžÒR@ò/ÕoIRÂ?]¿å•yc0øÕûM|É¿÷÷ƒÃ“ãhØÍû®oî¿=¬Pæð]á_1"(Š›Ä4yS“¦¾Ê ›Ç(§ô¶ÓÎ,« ì+MqŸá6ê«H#’ŒOOíM†WCÌïŸo(Wvq‘sŠš)­žyÞ¹çFT©E‡?ÇÓûµQáo§¦_eWéô‡ˆñãÕWÒº§¥EÝŽµ¾W4ÊŸëðlŒ•‡+ÊE&D¿ëG3º0BŸ=xÁ­“( Ú|$Q€³Z; ˜}a&îÕÊÆÇfÅÊE´OÿaøNe=U‡å®¸`.ÔÚ»0Zb¦•ÀF3x|‰\æ–?"ñÆkÅ¢««Î‹?7[(êúP"šQåS©ÏWÏDÊBÊ=¥V×NÁûÙ=!´Û¸q®Rúš7<-§ÏeT«Ò™–¤£Cux¯²ËËï_OæÞÅ<œòáV˜âÖÜcK-¿¢â6¦Ò Ö¯ îr!¯på" dñ\E”´etC¥(»òOÉ“Dtl˪p°‹ìÚ„ÙæÖXXØ? q¯Žrs)!t5ô]ošñÜ$$ßu»&’´j§šþá¼7 v…' ¥xP80f•$˜•”:ö›¡•}€‹¨ü‘[GêjLŠýÖ#«—µÉ ½xSz*ŠT¡~Å”j’X éçäó.gtsâvâÙûûò7mˆ.p¯Ãæ cÄñýÞIAÜÄ#Ÿº÷OC(ïl¯3O$´z Üëì]wÆv?Û·fT·©—ÝD“m­6ߥpU1pzØ6ÝZnÔk;AÒPøjÇ·ó…ö%U¯·š#cÄ„Dœ1ÙAš ›•©“¿·$åzV±_ûBaÃâü°ÁÑ­óìXÈÇÇ¥\‹E·–íŒz~ŽÓõ ‘ÀÄõé³ô Á’`&>mþ Ï…ÇFÚ¼•¢úôIƒëwüܨÛýº6•æÞŽNg2XÍëH»„î¼\š’wQžª˜ø@"GÛ›€v÷i˜cۭϸ÷hr·.µçvq“z×/ïÃŒ^©àºØóœäçk!1_g5Ÿ^Çu@>µ*9¨û[`šSÔÊ ­ŠÕ{Åfä7’øm‹›@âwZëXëšÙŸ}ýØÕýY`~w ¹ÓÀæÔÀFz™žÓ$NÌj?]k¦‡Ü]:øļ÷ø=gU€î„>ò5wÁë‚ÌÝÓ raÛ/uã>Ê•ohõ¾sM?îRÎÍ-‹Zm?eÂÞæUÙÏI{ŽÇü¦TÛK[6¤†‰Ã“÷v®úæŽØ~I¢ç^m·¶Î gÀÉæC¤*—*¬"G< BŽ“8–W?r-ß ”ܵ2x/ xµ¯,ä{¯AñüÒóóõmÞÔªœbÙRö›{€*båË‚Oü©)d¢‚fl«‘ÞÛ™ÝâÇ1¹É/*ü‚‘Òí$·îØêºq܉÷ÿYþœG½à&íaîj×çÎÚÎf•(×&êµ·1¦Oì¬miØ/žžØdñA»,®©º&Oi’*Ã…²–|l'¥5Ÿ†RžìPÓdÚàÔZuþätJÓ!,_Jç¿sq»Ò÷!Ó&IâË9Eúí !ôI®R,ù»Ôš³6~ù=R²ožÖ!<Š {¤'9‡Á<ï[€S Ž]ätv6YÃð\žYŠ]Ô´Ó'»ÝÀnb¡ôµV QöÌrôë”C…Ïe4Ü’×È4»1ÖÒÅÔé=z‚pßöBÖÄ™Ž'*˜Q•ØÚtVŽÄƒ6@FÚÂÕªr`œ7›àJGÞòÒi× œ§„¹­ AÉõg³g ¬–=.(ð¸y§Éz¼é¢"7ýÁT'åáfšUwEMJT<"Uµ<ö^~²©n*§û‰àF®Úë•ü:Ò:ì^XJ‹7»­¦‹A÷‰ÒÉÆ‚gZ‚•qã±4SÒ$çkb‡cýÈ{×é…¾’Õ\'*-ì’^Qü¼²jQΩÇefU¤s‹4¦C¢pêQ›bã&~HI¶·ùUF_†Œzw °þm)QKöôꢵ:A [%p±NX5O–¾ïq¶ÕÝòŸ%gŸGoÑ(.áŠÎ¡vi¯jMZÛJwÕÒËÄR·±ÃÚtOXÕGš¶/õQDÛÜ{äÔu¼vçkùXRÙœ«Ì¨´·õÇ>(Žwkd‹eµˆCôÞ1à@nÓÁ0múî7Aºm­—oIG•-§Ô7“;/Š~ÞvξåVíYD ÇÖQ©R¶:þ^ÈõÅH õ¸vìuJ¾ËÍJSrH1±g©‡;P%ÄAeíôeÅ[v%­‰Z7{e÷©Kò#?$a²åÖšfû0µ¶%ö¦õ)ïàí•»rÜšª¡r{o4„y hC#ì!‘VOliÊX%ÓÁÀ̓Álä´°|EéN-󣡉ï'„9Èt0OcAómG™µšOÍl=wïXdí¤ˆb›^i¼oÂŒÕø×[çäW±:MU7 ñ3õ„pï?ÐÔ_0•3êÛQt'ø¼§GgæÑmùÎCgù€’-Ê6güLn{žÀ5éËrñ¼ÜØ1p ,+'šv½ÏZJNÖâö0Ð5†Ð$cÞ™×f‡Ðܳ:sǪ®8q¹1ôi[jd$G•èÙúŽ?OV4ÙÆW^áî¥îëôq\RrˆÊZiŠÍPáa!û´¯:ü±Ù“'ÀW§Ú6VŽ/Ö2ÁÕÕèæUÇ;:|Jå;¯4E°ÄR}-foÎð÷Ýe>£¥£Ôͦ¼ú=oŒ\¾¾!qHäéCœ&¦QnÇe¡œš«tðPÊ\Åß–6(Ö\atD<À0Ås•¸¨(ij"‹à LŒ£¼2°t×B´2•÷0Å~P­¤„®@ºpî¾íº3>«!Üç+Á0›öYÐÄ‚†—«®ð(O¶À+@ò›E4Ï^‡%_"=\Œ B#Ôà%Á¢+ÙõŒw±9Æ1£‰ØúÎ#qŽOfS¨àm±­²pàý–>Ž”ÀR»®+ »¬ó uçnƒ/5.Ôò ¡¬SNK‰#1g‚à/¦*/®ö§}ï÷š»ñ–\x`y6‚*5ñ¤nò‹šL}/³ÚiãQùÞ•WûÓ­hõ}#ðØ£Uú᡺õ½ÎÉòá .™Ô÷vÆ?ÉÂM:£©Yjh•Ç™ò99(>"q¦;ÍæÜ{;ÕŒ&»Þ»Om7ëmªdÄy#^¶Dî¾øÉ0®Ôšª37JUä§fM íÜ~/§ˆ~éIYIknMsþžéÛ w¶g a! ‹Ñ<Á{ì­}&—KËÕíÝý‹&">¯dÒ¨;„u­6XI1ʳï+td¥‘¦ïvg2æó25º˜Ò›(Wn*ˆwΑ„“Ž)ºÓðxÎ Ð «}5ŒˆÜ÷vÛ'’´ âžîÎâ-¡$(°7h‰:”‘†Ñ6Ú©®¼˜T¹µ$_漡kH C›®n]M°×é{ù‰MV,²Û$¿¯ØBêJZøÍ•¦WùÓþØéh9´4Œõåxp©wcŒÎkW_µAVˆìn®­¹ŒÞÅ%ê-nZë70]!,›ª Xæn;²e_†—¯2P6Ý€8w8Ûk?:|»\ãJ^s²tÇmVoW¦ÎQ¦×³Rݸçð•zv >U°ˆ×ûž¿>»@º.t+IÒÄArq%(úá­«ªZõ‹½Ã™š´eÔúƒ³”ÕjyZéèƒ Xð^û—Äh}û:í…Ï5UcØ`] ÚLÚœè.UQBh—R¾(“Zê’r¨Z1>à/Möbôø8øsÎo÷àBËEÍä“Ë}½ÂèØÈiº¥’E€†È×¥éÚ„§Ýî¢Kü~Ô Õæ Þkïô[ÍÒrR£d 9ýR€•a¶žóhù%ôáps]1ìQf4ô°Š1²ô¬©åbhwâ`Êž¸ /Ì2–v}LêM»}µš*±²b©'«þõÜ'¼oü¬î†b(ÒЭ/tHÅ’ŽûO—ÚëÎFZ,·ÓXZeÆloƒ#»¿éÛ7OZˆLö   Ÿ’SNØDŸÏœP«šîæy8Œ÷´ô\X÷ ⢎ºXÅE óùf×tLvT½¯‘ŸÔñVÀ›’ûN‚®èœÜÿ²4"Š~Æš`8`i–ªj³Ší¿ûzÔe³­.Œ4&ö¨^AäâbIn^Z|^BOzß¾(rë&@©Ò\u¶ï§[´¸¥Ömr‚&߆ÎdçþhRšaµ‚®ð=*Naébüº3[yŸÌ§h¨§¾Ì™[]¦Lñ†qÓæŒ™Ä1&¬™=‡dU?Î*ì`ÖÃ2R·bboj ]Ñ/úvý¬™KîMWI¾#Ó&³Eä *Pûí¾Mq¾Ÿ'hByÚà…(4àsðH ýèQ{ë¶Ã>˜·7±DKcc÷¨òz÷Ì%K–øW=C"E}¹ùÌïÃÚÍ ¯ßhìõHyîôJ)Ü“í”'Q>#–%½>®ê`"•-Y[/ÌxüôQ®‹àzˆÁÀ@ñ4ór©®¸[h·L%doXD&'õ–"Z3ëérPbàንAãíîŸqWy穌?6ѨV¤fi·êƒWÑ?)€YÄ1K|ºTw ŸlfCÔÖ˜ìóEÒï8¨QBµÃe]r˜„U¯xê$ëQŒ¼‘ *@{{ ‡Õ™ð+í±5MǼuꇡÜìÊ:kLü’ä·¦‡‚‹ÝGÆìÄû¶’Í«]Kõ ;Z¸?Ĭ˜N#á%í<MóƒòyÈK¥²I1°N½"ç)WRj–\Æ$J­á„6ûUlFâ. Oæa‚ß|¦[’,½§Dß'…[“n¢t3çeëôîµ1Ä– 1–Ù7ˆ>‚P† ¿&jûž–±ÃZîÚ5ôaZëûs¬uìÏíwCß5[uÂÜÙ6Wš7”Ó¿;í9)@¥ÔTiùJ¤ë—ÜšÏRj„$w@¹B O8—ùô8Ê Ï‘KŽ|¤•IÅ|ôàXbøê¸» :sZE%À±í+eý%ÝÚ"kY¹§%#D2ÃþƒÍ«­ÔÀ$Ÿˆåð)qH‹`”{‘À'ÌŒc¾u>Ë {p=Pɺ‰Ÿèi\ÕnS¡ƒÏbÿLå{Ýu'eA6*ÛøÊ+ƒwr“ÊxTvaISdŽT%€jõK:‹ÝPfì§§kík¢4#dêùûn®«ƒ3H”ÏcŽORE® ñØàËã÷ÕËÈþˆâmÓHEZN—¬¨y¼L3ã4“¶âÿv2¤E£=íº–~ÈΜ²f %ÓV‚À œ²&\w3ÞåItŒ`_$'ÇK· tçN_ÙV†P,J8ìð«°+ñ•ê;ÖlòÝØðJzhôÞVhy±+'ž2lpí»'qÿŒä“ý¾\@ñKŸÊöwZ5$õ,¦À06M …°b|Y‰tïg…%/ÜîµÚò%*‹:ÊÏ'ox?ûÑki «ñÇúX›>R¼C&Ñ%Ad@¡ñ`ä^¦ìÐ%ÒÀ]JžÆj ò<3*mãInbô\B›]&~Í9óYweÚÛ b{cݯ¹­w·§RBÀ.û9¯¡·Ê/n0æ> òŸxê³~k4´©Qoû²¢7ùpßúm…j³†ÃÎw}ãKĸú–rwµ§_Tܨsò¡,X äŸÊ*0¼7¢bvç11‹VÉ´%‹p«‡N)`¾÷ Ò£Y‡M"¢¸×òÁ4Ï‹r6»¸ZÈÔØR¯AÅÈîn˜–9± }§±³Ó*Ð~·™3˜ƒ®8nó®ß‡i¢x1¡¿Ç2 Ñ'AQ§Àæ÷ž~¢{Å{¨Ïö³Y)×Ûwè–ä²­Èe¤PP©ÇËö‰¸F§½õÐ(%'ƒœgê\1.{Gž®êpzÖ⊥º v/Lƒ¤[¬©hÇmÆ^Z;¿§„ ö4x©çWZpñ·nÏß.ð‚‡q¡_ëv O ¸ÙW„¿®EUÈ.‡ƒ».»Ïãâ’û%¤E#ÜËFYîíN†Û<"¤»ÔUõãZLäG}¿¶˜©~ºµa"üõ ’\Éþyk÷ûÇi“œäã±»Ÿ·o¿æu æ¥QY ÈÙŒÍKñÏDóöm·Aù¤a¬­ù^¢O†7Ïr¾ )¼?¾k"Ã™Š‹q+BÊ\Fë>¤P&ï¿Î4Tu-3–°<—¡RÆÆÚwuÀ* .ûÇØÞÔS2¾Þ!‰Ç¬Ö›Z“²!ôK «ßó$HJ_Ù¨wß'0?°‡ê20_#ºƒKyo¥?Ð^"$ÑFŒ·(ºÛóo›&SX|ïü*4ÄÔR$Ïv¿üx?&qǨ;î…±¹©å£$lÐ2¹µc™${Ý¡^óøü—úEÞ:PúpõÚþOqB…Hë Z Ï :Ô:ÖÃx뼦ü å˲\¬adÆÐÅ‘ÀHÅÝêÎid™ÅO¿ý§íØêkaëÆF*‹ˆ †ÏºÖ "> endobj 665 0 obj << /Length1 2637 /Length2 17156 /Length3 0 /Length 18672 /Filter /FlateDecode >> stream xÚŒ·eTØÒŠ{44îîîî,hãи»»»w. ®Áw'8Á^Ï̽“Üï½o±ô®ªS»ôô‚DYAÄd ”Ù93°02óÄÔäÕÕY˜ÌÌlŒÌ̬Hê–Î6Àß$ M £“%ÈŽ÷1G ‘3X&nä 6UÙd]l,lN^.^ff+33Ï A޼q#WKS€#@dtB¢Ù{8Zš[8ƒ™þû@mB`ááá¢ÿû8@ÄèhibdP0r¶Ú‚MŒlj K ³Çÿ¸ æ·pv¶çebrssc4²ub9š ÒÐÜ,-ª@' £+ÐðWÚE#[à¿É1"QÔ-,þQ©ÌœÝŒ°ÀÆÒhç>äbg t€ùj2ò%{ Ý?ÆòÿÐþS #Ë¿îþsú/G–v621ÙÚÙyXÚ™Ì,m€%IyFgwgz€‘é_†F6N ðy#W#K#c°ÁßÁ$ETFàÿ“¡“‰£¥½³£“¥Í_Y2ýå\h ;S1­-ÐÎÙ é¯øÄ-&àÊ{0ýÛbk;›×olfigjöW*¦.öLv–.@ñÿXEH¿eæ@g3337¸±@ÐÝÄ‚é/u{àßJ–¿Äà<|¼ìAö3p*@K3 ø’—“‘+àìèôñúSñ¿‰…`jiâ 0š[Ú!ýöÍþÁà)p´tè2ƒ‡Àü×Ï¿ŸôÁsf ²³ñømþw£™ÔÕåÅ?¨Ñý›ô¿jQQ;À‹•ÀÀÊÆàdápòp|þ×Ñ¿%øoúK•,ÿÞeìÌ@ž²—ï¿™¸þg<¨ÿ³=4€ÿePÇ þ½zÌÌ&à_,ÿ¿wáï#ÿ_+ð——ÿ[ðc’t±±ùÛ‚ú¿&ÿ/ #[KÿØ€Ûż$ ðªØý_S-à?»­4µt±ý¿Zg#ð²ˆØ™ƒž‡‘󱥓¤¥;ÐTÙÒÙÄâïáùo;À 6–v@e“å_€å¿MùWÞ@kð%ãnÚß* xÁþ—UÂÎdú×&²rpŒ<˜Á£ÆÊÁðb¯¬)Ðýï)01ÚœÁGà }f G¤¿ZËÉ`ùKôâ0‰þF\&±ßˆÀ$þñ˜$þE\Ì&É߈À$õ±˜d~#0ŸÜoæ“ÿÀ| ¿˜Oñ7ó)ý‹¸Á|Ê¿+€Iõ7ó©ýFìàÅùÀ쿘Oë7ó}øñ€uFÿ"6°ÎÈÖ<ÿÝpÿÚ€¥Æ¿8 c#k'#'‹¥,¬àpŒL€6@3ç?Äÿÿ³(ÿ:aùGl tþ{¶åÿç¸.&ÿ"pD& ð0ýWÂÎþ—ÄÖöw.MÓï$ØÀ-0ÙØ9þaŽø»Õ!ðŽþ{ x¦lŒlÿ8Nßìw ` 3K×ßN8þRƒ\þ$›˜ÿ&ëÍÿú†þiþw)ÙÁ%³ð°·Úýa–YþÁÉXýÁM´þ‚«ó; NplþZ­ßzp-ÿÈ|Å2ý¦b3Ù¹Øÿušÿø¶gýŽìü*øC ÎËþ·ìÒüµl÷?Íegùô[ ¾@˜À#g úÝ,vpÍìm\þˆüParø$¸`. g ©±Í6`éUegòÛÇ_èúGQÙÁUû?CÌåw`àëœÉÙÂøGwÁy9»þ8öáò{HÁ?>œL@ŽÜ×? ¸xn¬Ø©ûÌêñÖówÌ`Ož@Ç"øŸ ÒÄÅ\Yç¿¿ËÀ·çñßï Ðh‚´82á ¶ªn¿«!pcØýÎÖÇ©qóêBÌŽc¹ÍÕ«ˆk]NÀžÍ’#®õÌå*?ö眖¦>û„ñ£Ëòǘ!Ù.Ì'Å(~œÐ|ò0±­È óé‘¶–c¼›W›„]I΄xˆÚO³ÉCΨHßüÕe5+¢Ÿé‘a¡•Ä{¦ åŒt O¼é&©3G÷å6ç°|%$Õu¹ÛYڌܓ·© gyMú¸êëüê©Ú«ñm˜P˜b¡K(ÿày<Õè÷Þu‚M?P¤ïå+¹@"šˆþääO¼™‚÷çÓ²4Àê.T4lËýð¦­>u–£“3”iiHŸ6ˆ× ‘1jvÁd“´*$:¡½û0¦ËT”& ºXzø¦«Ïh‚Ò¸ ¿O0 (_bžE¿‰ÉXtsX?b$Ãñ¦J8Y†,–ü }–?S…ðµ‰~ïæCuo’Ú*w½´ÁF⎠Úb’&*ÂåpïÆ]4´TÔae^$üÉþ·qÜh4'敨¬‘Ò¨‰Ö 1»É9}²,—ÀЉv‡ÿˆnPêLf´Œ+EÎP 8Ûk¶:)-½Tìhk'Ìj~©èá@( v"Kw`ʇÔ3ë°³ˆBuÔŸ6]·{z;ŽyYßШÎÌCO{BL «ldæ/¶T€€ åDñÎì ÉÿèF%øbê²ÔØÅxþÓzS?Þ3®‡5ãÅ÷Dt\ûj§>²QQåm2 zÕSì復 ËÛØýhs7hƒEe•6}d‘ AM6³ŽƒŒê¡$²;I®˜Òu#r! 1°·=Í0:ɨ<&Rò,ZW¤ JñààoXÈõÞ ¡½‹¾§î´_ë<¾Xú0€Çó²~7ظ™®´ò5£Ô/#›œ¡p‰atJûöˆÑS„ *Ê/~ðaÁÕäÃ~ܽ2†¦Fìã{WuÝî½³Š˜ å‚óuêÂesb¡¥ç²­U YIöãúFM”£4•kôEÑÞ¬ùG÷÷Sï_›v=ÙážoyD >bòÃmŒzŠ¥>oÒéß°sä¸sëR|î­\»ñ{„©cvB¹ì=õ¶±ï$ OÄõP \NõíÉôDOépG}5±’$¦e­¿_É@|ÒÕ ¤Ò ØwøØOÍ‚Aa\ò¨Æî{H .*½>®)Þ~bZÜ„ #[#Ô%ÁÜæÛ3aï¶3tÃõ¾fCüQÁé Ó &Ý«‰3õ°dŸg½¸ãçNð›FòËæ“#²¡,4©Êk•¬«VZK„ÇÂàFø—PCFÕßì “s[ƒï›ÚÕcÃÐ>Þò޾š3½içBüŠë¶X|é7WYsó‘«u‹ Ÿ\­mÙÜ¢">µ ¶û¾f=jøÓÄ0Ÿé*=Ñìà™_q?½Ð í¸w&(LÝ/X½é¡ßK÷Ðl}Á‘^t/ÿ©ÜÍÎØä­ÃA®khÉóL,dȼûÃëfŽôlWŠ*ê=òÙ(M̱ï$CÎ5’­ŸmЗCTºDiöñÊè¡zz‹\‚Qw #œ×(]‹zTÆ•E]©m’ÉW«ñ;Ãìñè²ðR$o–Ëw*•3ŒËUY¯ùŽr*{ZsèÙ‰só#gWuÑYB™p­n+•íÞÒn=üXPù`¢àŒœ–-”`NÀÊÅÆ…¤Å–•Îl¾;ò³ôøÍÝE„é´€„Ae†({Dòôw΄#¶DÊ"Ý¥ÂänyÞ€²x3žÖ“ñ<#ÇšqàWíéN †uèÛÉN¦Ô.tEÚB¥cYuÌkØîÌp}JÆ“áã›Rg¢¶Hd”þú £¹5ºxÞ ÉÃãÂDÈ«aåh~½(ãLΦõ’ЩäìÍ|ƒ\(HÇ÷rl):h½ÀëWA¸ÖïѤ­¦k¡„6´&†?jõGbïÆ êHV>g¤øÌH‰­”~–t„…•²MÌWæã<Ä´¾â‰~ã$íJŠ(bŸOm¯íÆd²èe´F»gÚÎu¾ÁÖ@‡xƒ¨õÊRÒ‹¶#æ Iæþ«p3f2и áÛªDÆ­ÐÛù.Fo Ihê"© ¹kÃnÄ•b¦w¢­~Í‘JéôG…¸ÃˆèEq"ûñ`ßkcºëËA:üBŒBc zÆP6oûlzöm!õª‡Ð†Ñaö£W‚áèh¯U ¢ëG¹^€Æ7‹ü_÷ç¤ñô3Á$]Ôy|9ØdÛ7ªÙY“¸n±\MÊQm™xò_<4¢Œ ð¾8',;?dô¸wÈì"'s'}ó/ñO@V{wä–ÃÕî²Sw(4G)³½²#³žçuL1M·lò é š;ñERÒ™#&"áyØ *”«'j9^ÁâE-9RÖDzÅÁìZ ô58ð×›CÃ8ôw2[bsÛ|!Aw¼ÇzÀ¢…—ž]Iòw>´Àæzzw K«Õ`²Æ¾ŸDkš¿ž "~ùüFF@g°Ù ùší[q˜V®Æì±Îõ£œúY®¢/-ºn aë¹ýÚdÿˆÅ;màBKR 0GH>îçÃf ¹U¤ vk9ú.ŽÅÄ9<ŠäcÑ«5>¬P¤gÃÒB’ÌÄ|ÿÏÕµaòéRŠ=âTåóä*‚ôñg È aÏBTÓÎ6³Ñ‚´órÖoš>§J 1j¼~Ž»&å¥BÒ¯—Xa ˜30á±l¼VÛiFÏ0ÚV '»…EQÃ÷yš.’ fs5©Lh¦ã~#u›ô7=桬lblƒbÝí¸éØs>ÄšËÒ³µ!·Í«;€ð#üKįŽçã«—-…‰—”- /w.–KûŸ[°¸Ø²Ö;*g9#µO›!wÙØ€„°ý¡ï+ 7,t‹Ç±ûX9W[×’¿ËÏCi›ÜG3^U2豚nžOo•º¥oа#Á¹$,1<á骼4sa»Ïå^ÖÿÔý’pù˜»„c™[Æ•ñsç›fH\WŒeÔ:2ð/lÿ• Ì#?~ 4yC‚êúc„_ý%ïÝL£ÍËw±ò}±nfÚN™kõè ÀN¦[³¿X`:ŽmjµAUËÐNkoÉåù­X¤Ë5éÑ6ñÒ"?õF…D™Êü:ßg‹õmàAqì°ËÆ®¯jlj«0d›Êñù ˆkÞö²}*fÎ ôŽ:q½ :`…Ò³pžbm;ÏKöÃ9Ãe˜2ݶÛ!™ƒÈ<‘^ö‚Ç8¶íçWÚ9Rýü£M&QX:àA#OZ9ñnrA<.,ˆF<Ç׆†|3‡Y¥ŸØñz°œJXN‰Ç‹#^z¿f¾':Š1èÔ¹ær'Ñ(Ü@¹ÊÅÜÙ ]ŠØ¸dT¬'V¾¯kŠqt VP鄸vØÈå…Ùrþ1FË «¨]†”˜a Såo³K¶jp1Ô×öú™—pv>(A|aj}ZIjL Cƒ fá;Lø †)OkCŸ¡°³Îfî›È–.íè¼ú½®ÔûˆoY-l'!SLÄ¢‘Ù0 ï0”wzœùüƒ'û|•í8r'IˆúœM(¢îG‚šTKëB" ̽kõR<æJ]kV7iàÕÃÖ±-—ŽÈ¼èïÂÔ`ºHx`áªrݼİ[ñÎ2aËöõÆM]þÚ¡†Õ Ú³wÍ—é)ñøxêÅ¢#oî";®oɰ‡YX§«(û¾ë]d¼cYÿð0 D’±dé· ÿµýkFQèùËS¦­HŸ,¹¢b©Ç²÷3þOÕûù¥F8£Š†YÛk.f|E1t|÷²‘ø¨é8"¤ŠÇ·¦&­­8%"¬ |–6ê¸PÔžÞÛ¢5‚Øò%CBŸr‰q._ë6¯]&øª_ ÙIåü×y*¡hª2«z–ö=ÃŵÛ֤Γ9v^B åŸñä QZ Fæè#ÇAÜ00BŸˆÓI$’è¬DIdnð9*Æ„»‰¾y7EoßÑÓóå¹ñÝ‚­Ô„UlZ/ÛII‰Ó'=XU›¶wËgZÃè^©zæn\•ýž»R ™Éºïi'‘Ù‘æ¾i®íE¼Õ°QO#q›‰áàJ×ïÖôx® p粤F¤B¥½“¯~éƒÑ#‰ãrt1*3üð|ã;åÄ ’>ÙŠ ˜Ic?d@üþkÏ#Q¾pì"‹å×c@;Mè‡a:9×ß¼üìäGÍT l%ŒØ9…÷Š×ÍDÞ(T]_]bÀôFÞÎÈ3í` ¿rF Y3ÆÉi¹ÝP4?›ê!FY®Eü¿q T51^ÒÊ tC‚rLß‘Œò5(taóìç¹Í^À |÷Êm4^­¹ºM­ B³‡Uª>8AÄ—­é†\ûŽ„íCŸ^⦀Ξˆ”½¥ê0/nÉ<Ÿ‡•¸U. –@ŽÃ®ƒ[ò†c¹à×eeÊÞ¸@¡Û/Hÿõ†Ÿ]˜¸ðΆ\M¾îÜ4Ï”Çdœ¨aïLqÞ µ‘T‘ºaoˆÐCw~–©»ZÒÜ!d~o=M/ižv'¢¢ Š ê|6Û¢D,I¹»—ä“×—ò«fQÖ'~¸˜{ceKqaØ H¤Z¤75’'ÄúŒN¨|àóe±ºN‚îëgäŽofKÃÝÑÑØ©òœ¬©Þé|gãHe[ŽMšJ»êô¨ÕµuÞWjEuÚ_gæP°Þîü9g.ÒÑq=÷2Žk3«ZåHôªkÂ|Rn§"û¼ðM‡JoÖcœas‹:Zà‡'…·J=OÇ××b_»ç‘xtVÀPO®êk ÎWxuQ”C‘@Ðw¦àž#èÜ) «1©‘âøžá¢\Äy(’"ÕÕp£.WP·Å$»K|vn˜ŸWÝR$塨LUnXésâf¶ L™yq­Å…a*lvñvQÕ¯‚s´šÓ¬FÑ=ÍV<'žŸ’¶^pÌÈb,ï/¢ý”ýôã­õ ߨõEÿ<Ë”¤Ømš¦>vý$'Ï“øá¸,/MˆÅR›½íUë¡ß.…hpA˸É;^áOòŒa†P„ÅÁˆ4$â9\ÜøôVpvõÍ¥ÚwbÔ[ƒJ"û8ž¹qT\¥ÚÜ9½’Óàäƒ&"Êc¹ØmÕÒÅ$4´âý²øï7#¡[ÉBÅ¥š'ûC[Κä¬q‡3ýÓˆo­ŸÛ£³âÙ<’—xm'ùÈc}] Ûw‚PŠ@“õß:YpøÊT…-Û¥˜4\ê8Í{ƒ'µdTB¥-_L +(=]|ª¿ê½É xÈ¥ÓßûgL˜Zmm­l¹“§Ôè˜nÏ_±}…åÓ†Bö]YJ3½¶ëI ¼hµšS¡ƒ\ŽÈH&®Ø2Ñ–ICÕjÏ™‚¿ \\Ñ4àž•‡Àº|SÊoóæKRƒNôdƒ†ÙÚi•¼Væ1FFÖ—Z(wª’ð«CX,볉ìP¼±NF:¬ù8‹O)µ=øç3$Å”Ü;ò›ù¹4Øû­´õöU§4η-ÔEÃõd½az1P<_ãbN¾ À7\ªÉª•øùF9.xBcHæPtªMQ ’PóðåH Ü÷’12;+ñw< ¶³…›Œ;qÉ{Ë<þs†Ãý¢?½IÞ‹XȽmÛ..¯#áwB«Ô5]àwçÔLd¿ê´J¯b%¦ü#µïÞ@7ru#~‰ÂG€—¿sx‹ŸCDýáyAù‡6{#‡¥ÈÖO³(TD÷ͽgȘxÖROÜ!Üv0¬„‡g C~僗ØýÞh¹d°â¹ÑsL_?–˜™æGáìg¶<š“;?þíÀC3K0”ÒOtÒàªÇq3ÉkèÕKgùÖà’Ê V¼âsךR©þÒ©l÷esõÀús¢0Ù«áËGxíìs”ª`b¸âžŒÓÀ÷Ð:žøÄÓù¡ƒŸî …\ ô•MúQÚCÍÚ_óâê‹Kº°³Dã€MµÉ^™‹Ýñöò…ðÛG’‚dОª›‡1×§†g’­Uî+¾°íªË—¶gbf=ݱȘ‰¦p(a–÷ë'góÇÆû«…ܼ:œ'î‡Òîh—UÕgƶ¸˜}o)›ã†`žìª;~EýºN¿(E¬®ËWXí«ÿC­¦ƒtùØ?yyíQ®@‹|A‘l2/ŠŸýðܘ·ÍæóˆÝADë¼I븤ÚÒAÄ’ÿN³Ðè1VZi&A´è Ä ï+Þé_;oÌ–OJ¸PlMʈò ¯~®”»R™Ä2}}»‹[bĽæ>Y§@=©¼ ‡MÆÄŸ0´‡~{,©ñкa-tz¤…èßÚüC·é>¡ÑýÒr\ùŸlöo—ç¿«s“£3R0›øö‡òï5¾Bi[yóOx¥àá¼OqÖá:î^q»êg:|´TlÇÈ#ž”ÏÝ} sË=B^}öÛB‚ÊC@êBô\„ ù}ôñ‡ÓXÌuëÒM=•àeÿ°Þ®ö¼ 1,¶•2t ×ÑR=0Uñ[&Òú€â&šk´«ëƒ:o›ê¨·9Qߊëå,1o¡–æE£É¼«®4L"̼ZyrÀ¢ð£ÁÖN;®… §ö&ÇЃx-K¼å#Ç!³½¥þƒ!;Ž`7!&P©ëìVG¹ÚEÃ…°+O<ò¬N•¹ÿÊÄ ºNp ­ )¨‡¦X§@þ£é+±÷±Ë›ø2í¹/ì¡XÛ!o<ã‹ý„ ˜~>°Œ&»0¸fStj"ø=vQøÊóCdy7 kP{n12æyŒ7Ú•©Ñû¸ÓȲ2{áP­£>º„-Fèt]žèGàéAjѸù84‹„Q®§êÛ’»õ\j‘í^y„O¹H‡ £T-¡‹ÉqÌz_Є«Î~5£¿ð É_’ž™(DÔ N?GÝ…¤‰šQRÓåùÑΈÅå=HMqƒÚetJÀ(–´#›&ûãk $I6!®¶y0ag«4<ÉÎ,fœ–2JQ5Âwl‘§w=£pr$ãhʙڗâžäÀ„ÈïÃüeoS›4i=É¢ß Kû‹—Þj“éä–Æ¬ey¥ØâXHb§Á¬W—ž–É~>¤µ™Õñ>d`¦Œ ÎæïÐöVlð=¢Dƒh5)ˆC"FbzÏð®%áR“=8µ˜ÅÞêeTñ“Ã$X»PB¤hQzúߥv/X‘ж^ÙèoºÆíØ­Ð#Püq;jEÝ2æ;qd  ÞÅRcž»ÿX¯Ú-d{vEüLóqJí‚›¤ÓmYM”&Õ<úIÄ–|@†Ã8´r8±¦5ÙûíÑž'†êí¤ ÈYy ”I¤üÇÃC\æ ƒƒ!Þo‘Ù lÚÎÅ©†¤dpêåŹÄO¦ÙÛRŒ1»ù5ayÌúoÓ*ZGbýlal8|f´iÍ7ùx 3[µ¯ôåc™×“—ãæfŸCÏ9쫉Β²ÕýØX Xßàl-âL™îÄ/—9gZ@P$ø,û掊oš‰ïuÜ® ±‹òp#?åO2 ÌÂt‚J´5½^wÚ!ÒöétöeðýyJY'D0ôK¬Ù™k ޼íG£jP3ž¨ù ´ü¡zX¯¯?!ù×Ö‚…Z&Xà NRí:å)Hf)~¶GÒo² gˆ§2"ªm2.JöÂN2阥ÜY¯D>½ZŸÎÄÒqÄn{Ô?žU¾)$Ƹ.žžë6GÝ|³×}A­’³¦¶Nþ5eÞ‰ÛdÓþƒ¬ü-÷c°¢¬²;ßA:9yÛR©[ñ]κdõjÞ†±…þf">Rø÷¦Üõxó Æö= G\/µ»|±=ÞàÀ¹Jø® R`þ«uí…ÊÒ‰N Âà"ni…ÑMrí»ÉKçÍÛÁž¾Œ9ÇÒn„‰¿m«UÂ4×6ûB™Ìq\‡ô„Î@ÊDÉ™Ñ7œÃ5N²ÍÉ’¼ÞT9Âcp¢>-faʃK™YqŠ/J[T˜óï°º9öÚ[Ò…ÅAuÇ!Zå]ïaªÔ•>x¤ô¨Š¸ÉÁ§·±ãåÊkÐL:¼úÌvªÔ Ï•ºå`ÝZfÈz˜ Q°õy™>›ˆˆ~Rß¸Ø *™¢„Mà H¯+@Þ²–mKØ?êwù¾1ÔøìÝf©vÇH’ƒºbNöˆðkHh\?«*wÏð|¥ دiÂ.Êš¤»Uå ¥‚Wœn×/Õ%æ¹Q¸Ýôk‡ý¬iM‚½ý¥Ö®X÷͇SDT¶•-ﱟò˜¹Ú?®gòR_Z-ðr¶Â|׺ —»çߦ4¾hh¬D5 ú¯þ @6µ9¢jqw?ªZELÿ6£¨¬ˆƒyƒgÉöF®qœ%Õ ,CdÆ»}…šä•½ä‹ÃxèŸGÓ³Œô»#<´nûŽà¸éºërÈdAeX`’­xøvL~?¬kµMuT‰v§j\äÅ¡€Eìà¤ý˜šXdc6dâ;ì†ò+²ñBÓO=Re¥“wy—3ò3ÑÉ@Á$% ׯBIƇÒNzÒyzdzT¶ ݈JFJÝ/ÕS’Y°¾vóÇÝ<Ò¯ˆˆ•–{ÈEÌ9Ì@®ô3G×ÓºiËdANøžIÞŽÄÚLíÅ Ñï?ÌÈ+òﳆ¥„w»õ=#¨Ä=tCš(c©w-#N‘2s›¯Á§\Ó‹0ºDhHMíØä&ípOmb]02["ik[J>Èë‘¢‚ ì]HL]ƒ^œ0^Õ•‘_Ÿ€ O§CˆäÒ®²Q˜ÝjaÝPk1oJÎVÝì~êR >²éÞ×Þ[bDŠÎâÿ\—z¶"nž&ÒUSA+ªìI‘ÜŠ3Û<9ô›"ˆ ìÆ¥ndxj;õ‡&«bÙ/æ WcÜN&™Ñ(ôT$Ù˜f¢'tÒ®•8NržZif©b‹7˜uµ×Úrâ(ø”l— "™š÷°!>ýíd —¬L/–wd½^’H£êñÊ Yà‚>¦¨îw6Ùpj>ß u- k ƒ¢î#–³úSáÇèüVïñwÕímè ÜM­/OîÀÁ_x¹lø©Ûå:Ö³O™Ý*¼Ý h%CbÛ÷ÔæxqØm×ørqÕÌ9|õiúƤ”Ϻ3–õl¨òŽï…kŠ˜éº¹Äˆž?s½mÿÌ¡6š} 9ÖÙäÚ%‡·ÓÛ^‘ÔG™Š j4¾vLËKlÓ{måùõ$U!¤<f³´åaÆ®‚Ì?i¶ ÷ü¬Ï-ûå9>m fmuqû»}Ö§jÛü~Ö¼SA°¾¼;à eÄúOÍìå÷ ‚ê¥<{¾WRÒï+ó*H¼ |Æ€é4m1ôJw+rüDŸfxæ£oÇ*Û Ç4¥›Aÿ%" \%\ÉgyÂÞØúÖ¬¼2›7·Kš'C‰QN@oàáu«êŸ;:Zí½rØ uëÃþ‡ŸÅ£B‹Ì—‘o'<Èq.8ÍCZ±³ÓìëÈêžД„NIU"ºEΞÆû²Ÿ¤û·bÔ¦V)E‘¾d‚/(gãJdª-ê–Ï4W—Öy Š»æbìÝwU\v„1}ÍЬÓ¹Ó‡NH+/ f¹=>¢“`þØ|7u¨Z£ãÂñ¨*ý$6›J¦Ï91f&s÷æáÓƒì„-ôŠ·aç/VÇI†%RWUâõnltXIlµ3t`îDCsu+>¹À1ŒJÓV‹…™dòÒÎÔËûTt†}R*Jr3¼ÆßÝ桦/°=;<‘|ñbæÂžón}4"¨Ü}é:@ÿˆléšL& x:r®@é÷°êÄÇLûá[ìÌ„´fÛNØ#md7 µpöþåÅÐFφÒ;к%#Oû‚©ú)뙲à0ÀvŒw‹!;Ÿªªÿ[ÎŽÈg¹¨.±ïbD}AÂ<¢/{cuI¯ 6¡=ã>ñÓ›ÒNöçxì(íí¨hÍÖµ" 7m èª^Ónùù¸¨#¬'%#.Ý©_)”­ð€‚½c÷'ëD±¬§5²4¦T‚È·oR™¾>Ž5‹‹îmRÄèÅÛ8¢j•×°£áø¥7ŠI‰u,ØpŸæ«d›eýå™ñèÉBR‡M 1(æáÏDÈôÉó·ÿ¡b_ úQ:|ÎrÎJõÈ-€q'—ýr#´ÖL_[7IÓuØâ5¡Z·À‡6¢æì¦ú£3½)^z]C…ÝîˆeMÐIÏ–ãðÌM-ûÁ£y §ð‹DÑaU!‹'ÃûÀoÌLcÏòKü‘Ù¹•,r†¢V.‘d mú%›|RƒOmÃûW^ªÝD²š{Í äSFÈ‹˜ÿf›=,¢Ø °Ïï.¸þüÞ¿]2AÈLß߆¦^TH‹IA‚>ùÖ`LV\)MŽ‹Ë¼¬.^R¡ í’Å‚OY°ŠÓý>ŽG Žÿ¼~,·pñéWzFÅ1‡LÆ^k£‚éák(äy~Šìη)þ|+­u(áÒÛ”eûp9·>Ç\·’ä¥ìÆå²Ζ5B ]h½eZ±ñi ªµÍç÷´®¶¢–/ïlóuéµ°GÜrü°—;ôø.$òjðˆ5ë5 %Èu«Ÿ#Ðnð€lôèÂÃ]¥µé–Ñþ ëPí(54ñö/žð)„ës…ì‰cr.VŠFýÛôÓzÌØš×¶¤Ø‰SZÉK‘°C/ÉÊþ²YÔ¤(×ð×ûõþømJZ zn† ;Ô˜ú D¢ÉqïùByhAz†äÊÃÝÕ£É\›¶ÌL¿”• Ñ~Õ)­(i]rík¯fØ`S/5ðyøîôY¹dYk•uUv]>¦GŽ6Fa2LÆ@q黤ã}£Ùÿyš#Ÿ`Ø&­V­(©itò‘7µoÎG¾ŨKÃ%#ë{RL1ù²J{‘7wå …c÷™zÆwNŸ˜P¹Œ{/Ùú G³S/jE­¾×†Ž}ßñ’˜õ=·äk¿}H¾f@¬X=Ì£ôRo2Äj)¶·/Çêôè¶ÑbbQMŸŠ¬gUFËð•'‰4HŽ!Õ>¶˜Ôw‰ :–-ñ›.¼þ×ïaTFT‹¼¶Gáj£¹…Ì{´dØQhèh.ÙÆm Jííú+éi¦;h°’+­]2ä Ï' Í7BÉ{§šaæq§#ÛtñÑ¿.˜LHø5û ¨´Gä"Ÿ(N|²ž8„÷æ¢8ެ eåíO¨wÑM®¦új’Ž”­ ¦ƒÆzõ‹Ûf þóäI×öɬ=¦ßœš¢æYÉGIÓÂ*mê.tz¶#‡•\Ó–¤¾ž#nÐÛfñûš|kò´ÕaûÊ©è;+ ” Öšl³£±ËÊnÁyìò‡¾¼ÒI:ÍŽÙzgXíø¡Û$r˜”Óíz)Uhí£Ëéͱ ÎpipÙ]‰9âqï)À¶~^6HFYy-PÂ׉aïn,¡&€'rWŠÊ!Æ´Gän7›O84âôâ‚#JÃ"§Iãà·/²îB‚È©bÛ õ¢'7RGln3Ç:t0ø£RÁïží¦¹]MÖjÞ¦1ÿŒÿ¦Pê:6I¼ß/쀮²˜y).G–ăwÓn ñ8¡¨Çã¨zd>’ù™(^†³ q ¥‰M‹·¶ùI°•ª²<‹ËÖÓ$©ž›Þü˜}µ™_ÒªÚñaéŒò A+NÒÍãK[¶)ƒåäôæ~àøôÊÇç,¼1µH»fÙâyZÍ›6MùT¡¼oý†ÀÞ®ÛÐ/õ b¶Ø—Ý3ÛAqÉUÎ}‡µØõöÕ1Í¥ÞÖo Ù]€˜  Ôý/õ ¬;c¢È—\÷RÈöhýeÞÅ=èS ³7ê¬}-û(®g Ç€P[Q¾²Ÿ5²\`JÊ…ë­Uš@‹û#m„Ò{,-Â_Læ5špѤù´Nô¢©fHs‹J—F ;*e°¡Ñ4ÝP¼‹aÂfÊú$Ðcì6ùæëœŒ–ÄÆ&2Bdy ¸E1{-ó/XrµJó\½)‘EX¯Sƒy½=,ÆøWÛkIMâ¢ñÏÊä‰â†ÞvGb¤i¶ô믎êsm‘ÜÁ/28—|{ÉAµÎ¿ƒøtbr€ŒYg÷0ü:—¼F9£d°½mÇÅwø‹ÂŠ„…½¤eÇý­ŠçXjåʇ$v\ìäÒ9“¹:}tt¦^âöéWQÓÝ!/gªï@N3Ô7îæCRÀÍÂ}Ød[Õü‘95}=•†€²_~xÏŽˆ3í$¦w0~¦œmA5¨UŽÆGÕy³¢ÁÈ `Àôî°œ ådóbKõnâÓCGÞïÄËNÓE}jS±w÷w@¢~ñˆ†ÇÈÅ ñ£hZDlÑMoßô”zÜ1ËQ*\‡/zmÛAç¯dêÜïœàÝËŸžž Ñ_\g}€ýÄðå½”Юäìüme1!ù“ìrç sor—‰ƒñåÑ[8WsE^qÕ6ï®_ç¼Wa°PiárbÅ6ié{±œ a:¶nUÙY¬ŒF"i7ß>ÖœŠ}LÍÃÓOÁŸ•¯qf/ .Jñ*Ü:6äa[è›5jÀ´Æͺ6ÙÃ^KCaÏg~ ÏÊŒóÆiÎ"†6 _eÕ97(x´²‹ÿ¤ì̓¹tu¦×*ÔgÌ5²‰¡aȘqÚA|¹r¶ÜÆø2#Õ²Û±íN}H9ȉuˆEZ,夜l|8j±ŸÝ#i÷¸C'¾´|gî4Ç`;óÔiAŸ.£¯gÕ;ÙFVƒYºFÃÀý†Ùkµ(Â0T¶|­Ók•û0Ìj-cLXíxþœVGSäyU<óƒ&CŸ°ÐuÿYUˈŠbË ?’µõ#ulÇ‚y$Ö˺»]àÓœï2ö¥Ê0F–sßš¦ìÛ•4uÜ˼Ýx Æ2Õ0’ÃPâWºñ(ßù*BXv[q& žoÂÇ­ÊðÞ¬e3âý~ÍfïaQ…,¶²üŠ/§Ô—…göoD„ã$ŽúFçêV@TÑáåÑMŽVYˆÚ´ö<®ûÆ9©\¼ÛeFùP@¬I¯ç¯î¤®Æ1”ë¯Èõ†:sö=ç—5¨ªòVíìþ\xfˆoeFpÍ)˲¨˜BâÉÚ ëfÊãA»ý7áwí‡ÚÞÂnÇ›­xaçCw„]PUîÄóavÇÇéÖ¾à nIgO(’I €Gaô`Æ1,fp!ÌÇØ6(ŒC•ë‡Hš:䉀<’8,ÜÀñꑜaR:oyßh©ÃÆ_Ÿn¶VRY1çþ gJJ7(úÃEW rL`‰9lC‡"°O6Ë%acƒ|ŽZÉ&¶¼Ú`pƒã\MÕÔÍñŠ(ýéÆ7AYíè8µ²ÖD.­DÚ¬D“’øN^•qZÛ Õ,ˆ»ÿ5_K¾»·ÝÒ­:Z¨Tí—ÿýðö=†œçxLôSë”×ò·ÑXõ0²Žü^þP({Â÷YÚ<<¦a)?¹ú –LÅÄ7x‰o@%{¦ QRk:ëŸùÙ'ƒÎQ-ý8WÌØï,~…™®6úd›ûkÂ|½-QƒÍÛ* öôE„è錬‰tŒ~n¨= ,áïâ„F›Ûx$BokʵÞ£‡sÈ#×:60 ‹æÌ9Q1öY¥ÊÁ¶ûˆÜ€v>é8©¼" '›@1>Ê€@¼|@ƒc‰ûŒùü®ÚÛÓem”œ{”&»dkÜ ƒÉvLû´lfÕǕ;ÏŽôøÎ©ín‡Z]ïË[Òd"ŒÂ'»9,g¬‘Àƒ°e¾ä73Å&ÔˆPÞ·–U‡*ᦠÏûû—zEîÝ»d¤_)ßÖNqÒË1OÊýªà vÊ¡ªÊ1Ή:eo‚SÅz{Í>m¾ÂëĨO:¨¹|3µô +0•÷¼\Ýo-Ýhð–Š™PϹ¿ï8°Ó¸éº;±téù¶™û|3Ô¾/²˜Çñÿ…¡°™ iÆâE&Mž+æ'Phº=ЫØ\æß×ó%2ô_}éícƒE%ý¬Ê‘m·ù»¯e&MÅ¢+IöLÂRîU°OŽ×Y¦“I¤ R›þªE896Ò ©|R“Šï~ Èz»è§À‡>|®š —Æ5ßTavz'¨gÎ&º ðêê 6Ãfò!†P¾f>ƒwè²:´ûÝcU±GCï/?ŠC ¸³u¥89Œ„á×0G"Ôg¥¶Ìg¡i°Š;Œi:ùúg·Ö¹Ã ÊãÔûïˆÑy„2ó™Ãд É=€êÏ+Û‚d6³a†¿@Émsf’Tu&¤débŠ¿^¥ùx•yžÂ†ÇôU>âx‰Û—½!Ëf[eS‘òçô•} ½LgZÕ ŠÊ£Ñ2ð4kÄh,{iHÓšÀ3¯ˆ™ÄYß¿ˆ7ãþð7×HC~œý>ÅìÍ #Õ±à;Y™¸V5Û5 lÝ3’£:ÞºI¢e“iâïR96› è}e¶|nB9.Õé™YÔï ˜©–TÇ 2xK€šrôȆ H‚Ê8V”ŽQïž«žŠˆÙ[Ü–œ‡ˆ–ž²Ô.P5% ªë¡Œ2‘¸è|6Øô©ã¡)E·ÜDk%LtX0é?„M\ @Ï0ÀÔ!)˜øàÜÀŠ@™“a]õ–3fôÄ1çAšžý`#úÖK‚ÏjÄ:\f¬Ý‰švƒ%MÞ•¤yyÑtª¯¡ˆÙözUùòêºxW¹ÌwÕÙòÿîøÁnfªBrA–ª>¿ š]v/B›ÙºÞª5Xä&Ç$àJ–õ~ȯ!Ì }¶—#æ‚ÐG@¹ÕŒ“:*ˆQc<2r^Ë×¥ë/µ>¾É¨d“¯GcµÉIJxÁ,ÑÄÁ"*™ÿU޽ÿ7Ë•²5‚öœâèóóÓaï£G¼˜—lý‚ë ð.´ý±À_ÔHžˆžž ŠR-ÆÄ-ã^âuoæÁe.ør@ì”Å&¬»U€JÝ®ЉDÑÈ„‘2$Ä¡ó¹p·(û+0DÝ $÷4h S¯ÑÊmÙP4*‚ìFü ô‡ÿq?yÏ0C`1¡`:|ÔHoƒ¹;YòàèÏ“Q=K»²ÇÈ&IÑÀ|Í^I;ThÍ®•…9ŠçÐÐ|„о·'¢ CÍÒx;`Ó¹îš>Iú7¬ÌÞ8E0§ˆN ŒëTE¹,/ݰ‰À{}Z@ÿÚHoámägÄ7áfø —ËÛkË3ñ·£ÇLJýBX¦@’ æúd›g7Cü]ƒ‹cn«"ýÌåð¶@³û¼ÏK©/“HÈHãubìx9äþ3Ú²ß~*uبˆ+cÐHâž7`ßéovS-ºÁÈm¾ªåIÕàÀCVÒÃEb¼7r"qÝ ºè•p0”&L©³ŽÇ•(¹†½{ƒ¤&q\j !ñ!\x2‹ÑGX?üÒø×zåÓ=Ô*ÞZ*ÁC+Ñ Ølº¦ÿj¡}{c·É1?­„e Þät¯sįÖjÉþŠóZÏe»TÒ®’&oöŒå~ðËo7‚G’-Ã^Êv‹em”úC A4a5mP¦E<7á.d²ö™ÊÞWT§ñH TÝt=Û553œ†FYžM!«ü¯¹’”ºˆÐ XB…]ý/xÂó¼ü‘ïib+I½Ñž…Feö˜6¨ÑÔØd#ÈÓFÊ㜴Ræî€LíBÉ_]p;Ø(mÐ!çô%`E»¦$e*jÊ_yŽ ¥¹&FŠØ¢åÚË$Ëä:™QŸÉª($£ísÀê¶•( L Ç©·_˜).*Ç=?±Ó*„Ãi{¥ä=¶lLô¼Êí¹!ﬞ֜±‰ŠÞýã§c¿Öàa8w’”áõ\Ì•þÁí^°×Á2Åf½2éÈÜK;6LE§ð¾ÝüCºêê(W½&@ªèôàÇM!´äBœS«ã3 däaÙcÌ[—ØÖ@`±#È„–< P”h+TÉ|LÝ)b`ÁCí‚MÒŸRC¯§b/AƒvÔÂê— Ô¹Œ"æÝø_™j ©ˆ¥{ Ía¶…löV$œèdc¶d<‘4Àº¡ûÆÞ «¡6óù•kO—ƒW ‰í ƒ<5÷˜ÖЮÒÉ1Áµþ0ú¾áel¿ßê™ 2§,tÙ#mE±}òù–¼,É^}ŠX–\n L¹IÅ™e_€Ï°•pºQ”Å[:‹&MÅ^Ì" [=çëåºï982Ÿ†æY½¶ñ‹Åÿ¯ .Çôê€?ú_“(çúƒqb™³°uyáý¢ŸÇCŸá¨ëß×ðµÿ©ªÜ÷L_‘g–2âÔÎã"OI\îà(~ ʳ -%õ³èÔ¡P‹¢;²b „›×tÏØä9Ñȱ›ñ.Œr°ímÃnMÚen[Ž´ºS#^÷Õ*„™MT?zX»tƒCjÉxõGk†ˆ©×Ô%·¡žKš2ëÉzÑ×ÈJgM¿ZI=M¯~6Ÿâ÷ Ö$)1b–sQÍâÄíLöNqö}Ý5Š®Hºñ äÞ9BT#ÍÛe"[­Z¼ $7Ù¿µtûV“Ø{½O§ƒWüûñ´§.Þʦ×ÏBî©è~˜¥£n3¼Ì(¼,0{n9äl åâ5‹RMÝEˆì÷à'Ïf—Í£j#Mç?ÚNäjí:•g‘wSþ_Õ¤W%õÉŽ†Ø 2½s_ds¯§éR<ÚyºÁma6$eLOÖôÀ£R@‡;?p#?è‘\ù¢á!"Ï´éèò½€Ïן(nUqÔàAlƒ"¸õx¯”Zh¶ÎT:LÑê“c ÿ/ê_r)Íáî\éòŠâ£M”BñìßIòŸšÄjb endstream endobj 666 0 obj << /Type /FontDescriptor /FontName /TTLDXS+CMSLTT10 /Flags 4 /FontBBox [-20 -233 617 696] /Ascent 611 /CapHeight 611 /Descent -222 /ItalicAngle -9 /StemV 69 /XHeight 431 /CharSet (/A/B/C/D/E/F/G/I/K/L/M/N/O/P/R/S/T/U/W/X/a/ampersand/b/backslash/braceleft/braceright/bracketleft/bracketright/c/colon/comma/d/dollar/e/equal/exclam/f/five/four/g/greater/h/hyphen/i/j/k/l/less/m/n/numbersign/o/one/p/parenleft/parenright/period/plus/q/quotedbl/r/s/seven/slash/t/three/two/u/underscore/v/w/x/y/z/zero) /FontFile 665 0 R >> endobj 667 0 obj << /Length1 1514 /Length2 6615 /Length3 0 /Length 7627 /Filter /FlateDecode >> stream xÚxT“[Ó.Ò¤W©¤÷Þ{GzoRB $¡ƒTi‚ôÞéE@Št¤KoÒD@ŠÒ•òGç|ÿùî]ëÞ•µ’w?óÌÌ~öÌìd…ÙÀ˜O Œp€¨#à(>!~Ai€Š®±¥ @PP„_PP˜€ÍŠ‚AþÆ ØÌ H(.ý¿* ©Qh¢.xà ‰„Ä¥…$¤‚‚RÒU  Ðå<@À!H6„»¯ÔÉ…Îó÷#€Ä’’’àýíPrƒx@A@8@ˆr†¸¡3‚€0€1… |ÿ‚SÖ…r—ðööæº!ùNò\¼o(Ê`AB<¼ `À/É= ä4~6€‰3ù—Ááˆòz@hAàH´‹' ñ ³Œµtúîø_d¿¼€?‡âú'Üï_ ðßÎ@áæ„ûBáNG( ÐW×áGù x@8øC"Ðþ@/ t@~oPW2Ñ ÿèC‚< î($? û¥QàWô1«ÁÁ*77…$øµ?U¨„>w_?Åu…#¼áþ¯¡p°ã/`OwS8ô‘'DKõ üs‚ b‚RââbBÈ#Ää,ð+‰¯;ä·ñ7ŒÖèïŽp8¢e@¡Žô?è <—Ý q·ÝnÔûâþ³â‘²*€œ„cቔÈFµn0»”?6a”Y*Ñ7Ir"àdc¨ðœÃÙ±‰`¦ ýžºpÏšõis Yý ÷£³^†eŠÖ:ƒ~ s¬âPuÉŸ^"> Xè‹¿õUBtÕ>ÞÛ²1D¯ªÛ‚e)ºZzÑLVh?;Zha v¤s%¼a'Ür§º¥¡™êO Dã3MK9´ËÑÕîIІ º8ûa®wÑ(K-å¸ä ³%~óô'{ÊFìžú õà 2L#g¡—Lêy_Kª'y"aD*6€’â¥N¼p/ÇYDãÄÝݽƒ{õç0÷JËaµmQÕg› ·ˆMÒwÐÒpí ý¡égÌZwb_ͼú¹u÷›ÙµjÆ\&³kôkÆ §"çý ÷h)ÅÌÓç9þß¾E>©—Á°R;O$}°«èoM£’4Í•Êzª×eê™ß›­L^©´S†™!êÓ—¼Zóö“zêSîɤäÔÉ|ç Ø(­ì|ÈRù½)5‹fÊèÇËH%u¡;ÇPÕ™€–xFÑŽ7oz$‡¤Ã•œ:ÎÁ¶¥¤ua`‹YQŸé½˜EQÖÒôså‹„ùüL`Š Ù765Ъwô×/CÒ=!<³¬i/8Ø÷ꎟ°.hù¹ÀԬæ_ ¸—©‘L.»bÀñìÁ‹‘¥ ¯ÄYÞÖgÓR]…Óú=…µdwî¹p /ây¹%!dà†I²b‘^’˜í‘Hj´É§zIÇÖ¯aIdX‹>WxQ• ÄÌçi6â'øá„E?’Œü^Pœœ8îøGNÚ’©:8•Ý,ôÏÌ\WNÙ üñf`1)ìÈ¡r⻲^k7ør楢 ˆI2¹N'ñˆ#Œöó-í¨KQW}9šƒëJÅ9S@RÙï²Bíé ÍgWÌw™ÜÄx°¬ß3ãîŸÿx=¾°=óÑj;Ïúš=öÓɱ ™$,5~ó5²…=<¼[ a}Ý–+‹ÙäS_0ès­êpq²~:¤Ã˜¥@&~;õÒÓÃ8š@Iì8S\YŽl©Ð ¾”i²W_7ÑÎòd꼜ÂFwŒ/(Ð?jj`H1&ç)C”øÖU98îZÚh˜ù8ë_A¤WŠñÅ™ ù½bç(€Ñ2¿¦WDºù©Êìýæø`X°<Ëæt[a–—óàØUKÎp&O¼Ñòê±+Å5Ú­—J0Øb0ºŸãw'П·xˆŸ·wË×[¥mw lz-0I¹ú’=£nÔLòu—¡Sšß$»ÐåLJ…ÛT-g;øi¨(°°…@–‹½™·ëÒÆÄãFŠ ¶Y?¿n‘¾éxÇ5ÔñLíþÂv1˜£ª÷S=_Ká[a ú~Û×g‘‹]ô± hÝFžÔX]ÒõêKN¼9]Œœ4N (1«b²u4‹ßµj8=iÊãÊøvûQÏüÈÒ7µ¬­8?û…îhì•=ŸbýmAr3Ü+zŽÓœ‰ºÉ³r”qÙP Xa¹Î‚ ›‚3Ì2ìIß¹«žy£å›õÙmåÀú´×ú¥ÞÛ«Fœïg'l…ØH1•.¯öÝÂÛ0bÇIv`naˆ™·û墴†ŸZ©ªÃ |s)’ãß{Ý#ÿÂó8¡(Ÿ©/E­ôìÝ«E¬$ݽyê3Fê=Ô¬KMHVÄ¢JÃŽ—Þ዆x aÉ>Ñáíü<›F¡%š„7±)<[µœ›-f³_Wc4ʪ`¡ÚŽôæ”~+ùvr?5Xü9*DG",t%œ]w{Së"¾Ðú |¨oZô›Öéµ h‰V½Å4 ÊGò}MPíÀ½)†ÎÊøGó‰ÒàZd^TýÛ5Ú…f¥Í”–n\óªÀÃ$Ä9®[ÈøÄ š»á9R_âXÒ‰áíú>ò.Ó…¦—^Y<”%n²÷K(« ãÂuHCe¯™´‹œ<ÚïdKr ? «X|ãâk’ÒÛhæ6ø9}öQ験Ê0mâIâ—…7­Y·¤üpÚ>™D©¬ ô¡·&ögDà”"¹Ò¥b<&fµž \jL´Ï(|\ ZùñyqÇ.x„jç^}%ìÕʆ©ê|1´Â 9o2àƒ#NÛ;8d'-;Vq!|ûBıù!±Üjb÷ÓÁ‘_‹ÏÒümT*äY¯±Ôñýœ˜'£¸_ Z1fp\bÞñéý 9+«FKÆ÷k{:-ǹçp ÙR‡òÏÅDåŽ÷ìÕê˜E?>}{syáFD ŽÙ°Qî󳔨'´•Û½4| e¢ÛtsÖÿŒiøömd¦˜/¿EX<ÃôØK®¯Ÿ M 0JÎÀBÚù…®••£1.ËA•…xôpA?š —Œk÷E¿Žß–›î°ù…ÏÜ}ðªeÁ¢ˆ®°G¥å+Ø×ù‚{æ~t¿uòý"Æ0ÕûjïB“ÜÝkÔ¹+˾խdx}ñПÃ%àwŠÈ¦±¥Â¸kè÷-¤¿unɶgIs­è0:bŽÅQõJ%±“\dxý©Ú#ñ¹&ß+%9õÖjsï†Xh÷`.™5qø-ZŒ*1¾ç‡žMÜ©Ÿ5iO!ëÍLXÒ_%~°÷åxÇVZve]r$”ÍýÐ,ÜÃü•rÅ4òG@6FÚ}Üïbfá{ŽS¦1» BÏ/§änb³Ð¿gzÄô zq·‘YR_K™žn~Jæ&`äqrW æ­åí– p©#S •Èþ6K˜ô%­¦1}4ˆG@½Œž~¨eD°0 e”³ÖƒÉÏÂà !t¦£í"6~Ùœss?>|‰hP¬­[O ¹±;ÚUš)]7¤ÚéRf2;}Ìz$¥VØJà"GðÔFP¹ëïScG"&r^¬~è4ÓU/š«œ¹½™½¯TVI¾ÖñèÕÄÑɽÕ7+S¢·c˜"‹&…^8Þ}‡_uÂ;gÜŸ/~ºÑŽÃðÜ£¨Ô:q¹ÛËþ#a{cÝÏ8šÓ® Ÿs Ö›|úðâÝ þÀ‚–ñ;£)¯Ëh>Ltªe¦€jë²CåîVw;2ÓܺÇ=ÒQÁ+°åÛm$ÙÊ©¸¸ø4ËÔܡثǮ喞·üBÞ‚ù­[*äë°â8ŒšØü†eÚLEsû"Wò+Íl"ެïEŽž'0åönqYG?ÉÀL”^Cq_Løi³«’–M$îIP“qáçË´Ex#]h.nfü,{·í3ÆÁDŽK"ÉúÝKö×C²«ãýEéçLStµä7»‹<) âêà&قǾnûHÙLÓ)wf»NÌRÃö÷ß69Jô²5¾¬ádÈcö—½q±i ‡ŸˆXÈ?(ðSXT=–Ó»xr«ÃNÄçÿˆÆÁ’SžeQ’{ûiçИk™¯Èb=æã ø$Zs£‡(^Õ{½å¦(˜°ƒ>jüÜ_-‰j¸¸÷©wÈ"íZ&?+•ÙÚ–3*çÌÏ•ÕÕ•ÕFt¯† ûäØ\𣆴MÛ_³ÔdtJn\oÓôoö4²µœÊ¢%æ%xΪ^ö.MSuñØŒNÁýø¶ïTz ¥Á ›º\[hÏà€r$îÙâY†ö‚sýc½ëfl­a»Ý¨`¼#j¿•iGü-|Ù™´”ØË[ö¢èoe5¡¹íWkˬöFø¸$¡·ß=, &[×vu,ž <Hˆä‘î6{­ívi/™ûçèάˆ(ÌÇÇ•ëÛ|—6§•¡$óº—ð„4Çb]'\ù^~t©E<¿Áš–ŒB>³IQ€ÿÎk$õ>Ö™©ÍæË°$¹)‹˜ë;WIb ob‚=‚uQò¾r5Ü!*Xm‰:PýôJu0ަ‹þ’ÔË“[OÏò‡tB0÷ ’Ù%P(Ì3O ?m'Ñ÷'SqL2¯=¹Xvêe~|0NMëñê9ºü¦ò¸^¡ëAX›@’:‹¸)­ ü.æ)ÏmÙpAZ–á™Ê)¹½¯È•ƒ0Ä›µù æQïKqýeþÀ§yÁ¨½‘ 1²£B³õ‘òzž*²â×UÕo.%bêM‘¡Y/çÊ|·> ÷%ß6ÉU»ÔðpZ7Åí#eLe¨oìŠÁ{œº¬Q±¹ ™—¾KTPƒ«ëõi•Ó…U¶± ú:Qÿzm3nÓoˆ9j~÷‰þB"]”1ì‹gÕGøFÖ4“=Y—ûŸñ®9B·úÚ…ª)ˆßÈÞ#9zòP7(4Ç)½‰¯S8{±Aa•)ʤå‰]Þ¿]ÔS¾EB¡›cR•˜åž±° hØj~,|»qì©‘“MxÂ|Õ')Å5WÚ¶å@ç¥ â RëâQ +‰b‡IZ´ÈOÂNñµÔ·¤zP) ¸Æ¦úã ba7ëâ•úò!®æ?\‹ Ë;0G,j8Â^2–PçPõÈš–¾š×[’ÔA€]–óÄ"¤‘ò„™÷é龦M¡8,RÁTR;•Q¶5Œ×/OùÞÅ­|G¤>ÌÞ†ÅúzUk€x÷&ßNrmÿŽà^ë›UûÐ@>)*C¾âOºõà<……îÁ¡ÝéÚÆ[L¤ûΛX61%G]øW;m»•v»Â²Sci<ؤû(†žŠZ뉜º(Ú×åúŠElº‰Z¡+;D¨’Æ/ܰˆÙ‡t-S½ÇºfêTÂb7ã<®ZŸ„Í¥äÓË_H'/úšNEP‘M•7­.%½,¥ ŸOæò‡¬©ftbœó1ŸY’SÕs- Ä$\©V¯“ï³ÝÖLzˆÁ[å3pЬAúkæÉªk“mlF.àŒ8—Þi±Ÿ¼ûÃweÊÙ˜ÏÜŠ<žküÁ]Ž×µçÃre›¼õ>åÖaÒѬúb«›áÞ½v“Ñj‚1ÌÚ+"Ñ“#,¶Ÿ¦¾;=º–¬sTà”qg‘»vÍóg»j fUFöB6bðõ¿ݳ'Æ+uOÊðo^-Ó§QIÓ¾RÁð®Íu£¼]ùaØøëKßLS*:§…'‰ÍÔ>Þø;KŸ¨7¯dã°=f ßTK–‹h’±Ç&é'ôúÉvqï}‰õh׿K(3†E#Ý”Î%nµ7Ü7æåå3+í 6L¤ö´òµ£|efI®xáÀ³Õ­a³«ñùÈ!î}¼!nñJ…´KU›Iÿ6mw¤c6§“¢·c‰YæHõnÐã½X!õï;L¶$J"^UøƒëúÙ^Ó5 M·¼ ü~|2i^ù1"¸¸Lépÿ,û–u¶ŸïDÒ,+6D¨jÉuV,l¤´oÏÙÿDÑ?AÇ×\¾ë(jSþGbÍ–¯âçþ›Óµx¿ÿRèÕ”ù§Éú*;H”ØÙ}â[pË#ß}IÅã`/uxnî>ÄèÃüÌ’tÎáy8@Å,¿$òS°!ަ·ý…íìË”»\³™|þ¯õã[jõç~“•õ4ø¼ÝÞûeØwê­ì4™¸Þ~e|Õ–—Í2_Ëv8:ó“i©ËÐò}¨6Ó=²íîQæªKøZW±Âþæ¹Hj¬w8e|þ¹1ä€k[ÀÝhðbeñMË]áFO‚ 5H’ØOßb-²Ôꘃ²®¥ô[ÆÇ-‡(ÃWt§GµÆ0ò|—þ3@-ßm/Z Ò•àõÇlüÚ~õ( b·.7ΩÕvoón@Ì„§Éäti\”|!@ƒf‹¤§éL…§šå‡„¢æß&³tš·>Ó¿ú6•(Ê­ï÷³•Ô|âJ©´d¿\ý°°0A¿¿+·'Ažby7³áìâíÑ.¯’|XkU=&U Gár4&sȈäoÐãÞzeÒZ˜’J¸kR3aš¦ûÈ²í¶ `ªrºõÜ£âØ ¼¬çƒêÛätæU]Éͦì±+ëÙö"óýÊ@±–aϳ³h®€ÀËW¾dhbÏÃx[©”«ÕkïJVwq ÷õöɦ= ëoëê‹+™á{7£ÀªõÍ½ÎøAxaLŽCkõ}'iu‚~ª\%[Þ[”¨Z»ãõ\÷æ tî+ö{Ä¢&_%Ð4ñ¤M*öÔ®+Q&3xiÌÚw"éÞù°§;KúN±ƒZ]þÞ¤Š\4žÈé§+¿ù½E£ÂOÔ¼?ã"-^Ú½î& 7Īøfîmm*%jɦG¢ð|ؾð“ß‹!£¥f›Üov÷£â<‚øÎùo9¿²¹Ã-FOÿõæÒ©^#%™´±´ïŠØÍPÅ=h‡­Š¦SŒû.Õ£J«ÏŸ l³mƨ2SÞ¥|ÕgÖÖúb2þ¼)¸¦=Ø:Æ0늱u+ {¼MEp®³ÓÏU¬Ü7fÂ|QäÌײÅXq /\ ÜÅ\4Àd<7z|ŸÊÆknH¼~©""¶›öÛ³Ý3ƒ÷ =æ¥kjë!iÜ·|òÀÛ"Í¢ìòõJwôÓ‰X¥Q©ã˘¼˜è9Àññ† ¥F¡ö…ËÕ^ EùÈõ¢è^âNí÷9ïh„ƒlqÊÒ!;—R£‰ÁXIÌht3öO{+MÏRzQÉ©êú7Á ›æä’G¬ní»œÆn³CöWºz§;È5×@ªÎ¢Ï;I=‡ù,ðò*M™|š·yXQo±.ãî>ÝY[Í9ñ%3a¾£GdÑÛ¾¡¹“'ßoykÌjÏåêùQÕô}ö,ÿ@škœ‹åóá Å3í®”Ù©„†™ Þé.ÅLËù}!7 ï´ÞE­åÍÖÑÂeöÀç UÇË×¹+ær‚Ä2Öú„] ’©Î Ý)¦Ð£ž-§gr âÕÐ =3âù©Tnã«gÏ!Ë*ø é­V­ñw.(qÒß)µ§IžßdË–¬öeñÁfyXü´‡í¹K~P†¡â¸»§J‘³D»)Q˜:ñØrF¨Ê0ÝK£íû¥ˆ÷=×Ö’ÇB8Šžð—Ô¤ëŽ> ‘Úh8(œŒTçÛ\,ù†Ü4GEmMòsòˆŽWüÿcÞÛ endstream endobj 668 0 obj << /Type /FontDescriptor /FontName /DJUZJT+CMSY10 /Flags 4 /FontBBox [-29 -960 1116 775] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 40 /XHeight 431 /CharSet (/braceleft/braceright/element/logicaland/logicalnot/minus) /FontFile 667 0 R >> endobj 669 0 obj << /Length1 2186 /Length2 16775 /Length3 0 /Length 18083 /Filter /FlateDecode >> stream xÚŒ÷P\ÛÖ ãîîtpw×àîÜw×à xpwwînÁ%¸“à®s®äÜïÿ«Þ+ªš=¦5ç\»›òƒ²£ˆ™ƒ PÒÁÄÈÊÄÂSP—ae°°°3±°°!PRª[lÿ‘#Pj]¬ìùþa!æ 4½ËÄAï† öYW[+;€•‹•›…ÀÆÂÂûCg>€¸±›•@ ë`tA spôt¶²°½çùÏ#€Æ”ÀÊËËÍð·;@ÄèlejlP0YíÞ3šÛÔL­€ Ïÿ A#` 9ò13»»»3Û¹098[Ñ2Ü­@–U  ÐÙ hø‹2@ÑØøojL”uK+—)ÔÌAîÆÎ@À»ÀÖÊhïòîâjot¼g¨ÉÈ”öÿ2–ÿ—à߇`ebýo¸{ÿÈÊþogcSS;Gc{O+{ €¹•- $)Ïò1ŒíÍþ24¶uqx÷7v3¶²56y7ø»tc€¤ˆ Àøá¿ù¹˜:[9‚\˜\¬lÿâÈüW˜÷c–°7s°³Úƒ\þªOÜÊhú~îžÌÿn®½ƒ»½÷¹•½™ù_4Ì\™5ì­œ\2âÿ¶y!ü‘YAN6Ð ô0µdþ+º§#ðo%ë_âw¾ÞŽŽów@_+sàû?oc7 äì ôõþ§â++ÀÌÊ0ZXÙ#ü‰þ.šÿ ¿÷ßÙÊ Ëò>~¬–¿þþû¤ÿ>afö¶žÌÿn1³Ž¢¤Ö' úSþ¯RTÔÁàÍÈÎ `dãd°²²q¸ß|ÿ7ÎOà?ìÿ–*[ý»ºD”±7wðþ‹Äûéý‡ˆÛ¿'ƒæßkC øß Šïó Ðü=NÓ÷ÖÿÏKð·Ëÿ¿Ùÿ+Êÿëøÿߊ$]mmÿÖÓüËàÿGolgeëùo‹÷yv½ï†‚Ãû†Øÿ_S-à¿Zhfåj÷µ2 ã÷±·xŸsFV&ŽÉ­\$­<€fÊV SËÍÒšñžÃÖʨìàbõ×½óîÅÂòtï«gjó~·¸¼·ìoð}³þ7¯„½©ƒÙ_+ÈÆÉ0vv6öDxŸ€wÄ ðf}ßU3 Çß#`f²w½»Þ9úÌœþj,'€Yä/Ñ¿€Yôâ0‹ýA<fñ?ˆÀ,ñ_ÄÍ`–ùƒ8̲Ð{Lù?è=¦ÂôSñz©ô_ÄÃ`VþƒØÌªÐ{>µ?è=Ÿúï{ã?è=ƒÉÄúŽœMm€ïosÐ9ûåÿÛÿ*ÞK2ý/â|fê`ûÞ«ÿH88þ’ØÙýIøW™ÍþßSÿßy˜ÿ!«hßë°ø|nù'×{«,=-öÿ°x—ýÓÿ»Í?à{½¶ÿ€ïdìþÀ÷„ù¡Þï,f‡À÷Òÿä~o¢ãûÒ:üaÆþÍÉÕá}_þçÄXYß‹vþ|¯ÐåÏ ¾;¹í¬þ÷9ÿ²ºýƒÇ;[cËz/áOš÷}`¹ÿ³Þw×Àwênÿ€ïyÝÿqìïÞÿ€ïÔ=ÿß©{ý ÿgÕL]ßßF߉ï{øü÷«ôš",/8˜ò[×·ß׈º3îM²q ^F^ÃiíJà»¨Š <\±çG-‰tÏíG=lbœ°•¼5Ûhã°Ølø¤Fñá,7´C››ì0øLc>ž¸È»²íËuué±Û›Yàœµ¨»_œ¥ÅepºØ›Ï8’ j©º«´<ƒ¥núÅ„1‹ÇÃÃŽÜ!’ÑQ%Z+2;×)Cárùqòw±äÑCêÀçöàJ¸ÕV*áñ1²£ÜuƱзÃ^.9£iÀ,ån¯ÞÓWšÀëöàÏ4&.ãjÂäü™2»Ó—Ò—»Ñ2ª-ÒC›)b›_ÉÎ7áE²=L¨· øéºÄK¾G.'©z±sR—õ–—Ka JÂ#ö/ÁKÎü ®cÊF—󑯙‰7PwIÊœM-dKÇlRV»ò^d1…‹ rޱbí ÞñW ËŠ†µ^´5ü8ªÕ(hïC•F¤ü€yñDrB¨Y@äÃ5u:.Åk•‹2þÄÜNÍÜ:ŒÏ|V{Š?Ôgö˜ã°Àz5د5e(Þ¿€Ð‘UkŒä&Oæh ©ö˜ÌXRŒ—gqÐæ ºlÛúèO•T:ýiö&Ó(B!Èg5Ï}ÆÊ|ö¥u‡h,Lÿ-¸^"Ïë¹ö—Õ[z²mæ¹VÊ[±Fí¸y\$b¹ïT®S´)CÈÇŠ$ïðú1®^¿³ áHYµ®º²þz·ŠÄúk«z2Š‹:¥/yi¤ÙšË*qÂ'`?áØÀ.Ë+عÊ\ ÀKÆ&|1ê\ýòëÚÁ¶I*wò“yoºöújÉ'K`Í™L0.g‡ËwüÛ¥Hf‘šOJí~Î#“#Í'ÄXyÌ.Kˤê)ÖÓuž«ä¬þ¦ƒÄâï—â €AÃÂÀgÑ¡¡˜<š×v# Óúâ}¢ õºl_o©ýªÁOPÈ4`LÊ­=ôƒÂÛV!Õë@z±K} 5éÆº(I8·ÿ‰x+ Æa^Þ²²ªèI„ã‹F œÝÁ¢ê<`QnºGU½9ÿ¥è)àUØÚ™>83G‹Tñ 3ø’°²á§hYIÉrf´&^¹·Iãtz±bÄÇ|q«Ý˜S’¡ö É]ǬƊý¬W3*uŸŒž‚†sŇ)Qõî4ÆhIJ·Ûcj‰H×…ªiˆωŽNp±éš2á%Î+>_–]R„òäãW›œ˜¤›W?̘ Êõ³,®ú?²Ý è=EPn$ØOiÑaqºÊàlPýX7Ë—/0תi•ë§<èCw³³‘Þ@˜\•fAk¢@4Ψù(Ý”V5"R%½Ynj»H‰ÕïP Æ N¤ÍXž¶ ¼5ÆhrscTY’ç$‘¦ÂªOMEæ‚ äÅÀI,2羫ª¾°ç­ú*˜úõ^&Ǽ|N•*­Öc¶œ±wÖ_ð¨ç%ϴµö› xÈÞíGDêº5+ÖÜÒ¯j*ÍÿT"tNWü%žc2bÌ҈ςPÅ"­àÀ¤¸™<ÌKÖJ^.NwA1TÖž±íé©— (áU+@óö$ûš©"â~Í|1Sd•CÀ°ò=-¬‰‹‹“/FX-Í™œ­ù <=†þJÿwçÀ¨NEhÝ—“¥þžWMA}$ \¿ñÉÝ­h,Àêå=Gtç?ñNW+¿õÒŽlÐ+ýýR«C懨ƒ²bZÏx&L¸™ãì·9 E[M¾‹ã`iĵGš¬GÒk ¦¯q˜b«¸#B?îÍœwÑ»?åzõ²'Nˆ‘Ò<ý,óŒ/.«^}t) uÆUqpÁÊÝßÏ=;™æk~k>ñ]êW^“¡~U•°\û>ùDBÔnÿÁñ4ßת­ë‹­“4uA¼P$Ûã Jr\ÝŠˆÒ”mB0[9 º€<áI·p,Í¥›Ô! ìû“8èòéÈxWŽ8`Ò?…Ïw­ƒ—YaYßüwŒö²­ùe>ã£ä¤Ï ïQ„õ/Te0 µ†™í• †}”¶×VzÌl2k¦)Чk<‚^ ëUß"Èëš¹‹P;­Ö¼êð…ù“,µ-'ÖhÙŸ^M %jö§Dg©ŽI­žÞÚyç>KpÓÌÃãF ¯²ª ü©oÃõyó*²Uš$®•¯.´,úÁ–&:¼ô%Ѱe–r»¼Vë÷å'}ÈÄ$jÜ}E÷3: ªXªØ©¯ÜB8Tø\‡ä¾¹w\ÓÛ‹Íù¹uÝ.€À²êùRŒë=Iõ`ñ?áñœvÈ\öêzΧ¦ªqüpÍÆº1ƒÚãz‹íG…aÄi.âv…ºýfì"À—½r9ŸÃá1 P~\1ŒQ°1“ýCź2÷/ÎæÊ%¥¤U¥5ùɳl]šÄOjw†Þè7&¡Â(FŠ<á’,×<÷&þ¹ò²Q¯"PP•wûÑLèçÕɘÞ6…p•:˜É$fÍy³ú­*p¸Ÿ½ô¯¢kØÕZøTA2gkD27Ž™"7Ř–t­¥€>-èš¾CtÂË[CÔ‚t ›-¶)ª½hM½¥¦E©¡ºE±üÉR“ë Ôµ©¯ð™Aìçs- E.[íÚïãëqÆ¥{?îJÜ}´›ÏÇΕÅT*I‹,ºé3" úYæóÚûÂMú$QV­÷©ûçöBgŸóÖ(G[^hfºÕ…ãðƒR'˜°Y塘ܛƭŒCCÖ¥+Ë_îÈÅ¢, pa«ÌÒ"¨'ÔIH…ú?…áÓe\%°‚„% -g9S{\xËâbP>\OK}rî ¤XÈÝœe_ÉïvÜcuð$XòX[Ágˆï™…ñØ1ÝŸÚþ®îEõ±õAGC*­g.¿_Kã§N¥aSր߲¿›­»G°Õë{^ ØäËOÚú’AíÃ8ë肽À Ü/N$¢?IDLMÔ±¯¤ å%Ý÷³äq&Ù“~/ p«Š¥û`@†vl¢gƒ÷Û<›êr¡å—åoM› ß”ek<þá©ÏÄú·F ÌûBÍrp¦WrŒ¡Ðâ#Šýlѽ18x(IoxìœÈ¾€SWJ‡i˺ªBÊ“æ@/ Ž•ˆÎq€ïAÅŒ+Û¡eö[Fmw_»t+MxG[ÖUKƒÛà(Yä6φ˜vÚc~™ðô«ç¥ŠyG2(c»þæE„¢$CèLgŘè_úŽ~m(§.³êÕZ’½¼kþ°Uçr€ÖE]š*iå.EÅ6jRˆ/. ‹z3-=y×é67x‰(¤Âz‰G80GµEÒwëÔ`¿qÊmíý ´ÙÔ‰7!a{ð?oµ“¶Ž`õuzi+7TfÃñùiÌó«pÄ/|lܦNyë–Ãá¡Èðä íѶ à:v4üUj¡[ú\\ØU4ÚUùÈÆêϽ§n«á,Ê1bÏ íÑ5FÐntëq4ïí¥…u.ͤY¼ˆ÷×wLÒ( r¡«’åÎô y×>Ou-¨[æ6ܱÁÓJMxÜ‹Ó ˜P¯fætù¼¶Š|CVÉ”ÕäŠÙ*Hr=sR±]\œäá´7ëhMQ¼v)¨ð)OµwëvOºݶ1_¹}´nœ|Û4”OúZxWæÞ§ø£&ØWrÍL›®5n4òÔ=jhÿl’ò»±B‰i_Žÿ sÞ)Ñ…‰ ‰¿=vz:›Óz¹¹9ºJ`L0Z4‚ý!–<ê¢sd(µ{ô"\…f^¢q]IaFx„CÓÅSä1JR"ªí)>mó;ˆ~©!ä®Óâ5?=ñå-ø¸óCErµyŸ°S½{[h1C.Ogþ twC=‘à @öB»ýéƒ×·‡¯¨é®hhØý¢jJÖI`C9M5õ¡ZdŽ®SÏ€D»kcUgÖ’çççÌba4ˆ™ÍÈ ¦­7U–¢Ð¨ 9Æ™÷|ª…hýÙüFñÝ™¸ùý‡Í AŸ¨øR•EȾ狚.xÝÈ>¿)ôh7kÿÔÑ›reD ¢æs¼zA˜Ô«Û¯†ú`$9M=I^Ǥ Hêg š¥3¼èÖ§«:×±ohÄoþ˜œÛÍÅ àù1§ñªßË©?¤lL'o·N½ 2á}ŠU¿?@¼Èƒ£!âêc¹‰‰XR ¢Òpæzò ñœˆðð8£²ŽÝ Ô” GDäª* #‰¸ G¥$æl´ÍCì´ÆiÚ¸Úº™¬OåƒCðŒøÔ ÷éuRzŸÿ(©¢¢ò"’Åθ©AÑzÔìP{´Ò‰>Ó̧ÿ 6O1,îÔ~#uó|˜ 4—÷AÐÿ¦Ýt@‹Ê40ºm.k>Z“q‹ÇØ%<å> 0G—k¯§wiË÷Êas¹€.ym:æ ï9òïìŒØã±÷w|Tg^Xn¡Ò~‹™)ü™»ªÃðQ=(„ß½ñõ®t?û´¦Ìk¸}¶xgêØ 8ùÓ&ÞTÐkèüÆx÷AÚhÞˆ7ù–£ýa*jCzYÊ ƒ™§õ¦õ23ú|0éJÄIg2 ‹Çû¬¸=Ý@5Wí»ÒLžI·†°Àý*xÆìóØ(V¨Í–07¦…ÓýÁ]$å¡Í𵺂ÀGµ™ÀàèªesüòV!áòëÊqÀž:[€sãÖA—\—²Ðq4EÊÜòHäâÒïZy5EdÎ^IÁuÚˆÁä‹<à@Ÿ‘¥‰„9‹Ú$CŪˆÌ›5>‚Ü’Ìb茄U= ‘ç®h3†¸£ ?«Î¶4ƒùrÖ'9½@¯ vgÉVƒ¯²á‹Kµú'îVv=‡}òcŹ·[¦E Í396BñÒ2•Èb"ÃêZçãOç`ÌXkÒç”ÒSpæ úþ†Hd![à œ_éy%¦`°©÷ÃŽ· ï‹5œÇ(µê†ÖÏcVÍÞ#_þ³x 8ÿ¸YÏ&Ï1hÐÙ9_laͳ‰ÅÒ}^þmû¶HÀ³ÙãÄlïY½9,—ÆãÅÅ hÝrd¶sOýÓfÑ'lU;k±=uâ¨Ô³˜Ü)(,¹³ù!}‰AõµÌÀoóñö´ý ¨¢"Ï}r†¹Üv) p\ËÕŸ.D‹_è¼—îûõä/Byô«…ô…ýGX["p«ÆÍáWjŸ-ÝlÎä`ô‰ªÃa ÏCtõ³ šÕ[CïÊÅF]Èl—Ÿ¤q¼úÁ‡<‘'Ù¨ê•]û;˜öüÜßøe>»ƒÛØ7Z}28Úh³ÜS~•7†=ЪgÔÃF—k®ÒƒyÒgòƒSfoÐ+õŽx`ŸÃ÷ÓKç+ÿïFôG:½x0`R¾ì^}S+qQµiêëŠ^ox©ÃÂПÂ-(„ÖœaÑENîEC¼ÔšÁ­Ž×RBrü)µ°¥3€*d!H¯ O°ób†&DnRçø«ï–†"}QLÞvØ‘;ó˜ÙVcÃ]hi 0KÖ n­nK“×£2X±U–n4SxɃUCD±q-‡¤¤3u¶Ì=ÚªôÓ>2æ&ÁÞ¹–“H¹áúœAºö é><ú$Õb9 ¸í¢óàš#dtŠ…:sÍC#)‰ÕëtF ÂÏ«_a3 •C#Åł۲.¯håç%ÄWÐz×~œ¨©M‚9€”L"àËôÒ`Õ™—Ÿ®Ÿ\†gnºI£n›@åÂbEõÊæ’¸Å·icðkLÆ¿“iÄ>,m€‹›ôÜÀ§ÃH”z,[Sþn™ùô{ ÷LNë%žõ2=z=ù —ù“ ècg¯?ç僻@Ÿ ‘ÑT Òßç55З ¬ÚUÃ0vÜ´¤¿¯Ÿœ’VºçŠ¿‚ïøLÌN:¿©‘]¼­"°×.á eŠæ zNÜ»¥ÿ3žÁ Øn–?ºŠôì±d§iÿŠ¢8¶Øùú„é‘KÂÌùNpS^]8ÄTµWb¢œŽ‚%a²Ä”£vÖ\ÎíNŽ!Á®+1.3Ȫ ±½®Jo'0%'S(ã­/=áÕ¼ÌÐD_ÈÇèí™(m|DÒå@ê®I|e.Ó{×k:§]À1vžïÜŸwÆÁÔ€ÀñKéZÔív#¶µ"ґɶ#ñÔ udлÖ~·*.Ô“Ðõ«DŠIˆ9ʈ­·Q[£º96øÀOÿÛÏ4¶PY°!YS  QìSáúã!Ñ®¹…°Ï6m_ɱR‹IV\Â.©“Û ¶/üú-I2¬ú3†Ã~[8¨ùøŒ UÂz“_)ör9¢‡Z*ÜFv4 7îã¸x–‚R/€2Œ®’å}° «ÛS'¿ ˜¬öf>• ð¤„æœ5É|>‰×eÍÁ€ü†~Üí¨ÕŠý,8yÖVáài7«1I~çý€¼êü›`§×$Fa?à*£¿«¸çW >­ŽHÚï Ú#"Ȇ4UðMôyñÛˆÙVÞ¨—?Ó?NªñAÓtcæwEª¨ù=2Æ ^¤èõ¼ÁÁMߊƒe §*ö²VgÛ(IÓqi¶Èt€µX!¹]Dêu±œq=5:S‚’Iô2±ù>}G‚‹üV¦åàw²Wo¿«ŸrÂ__Û‹[KÂåpÕD^¨›¨:¸©Vkù&“Tó-N]s"©DÈj—ã=ùÃ홾~TF—Í2L6z·”01òÊôÍûk²G¢*G,Š¢¹,9„¤Çx£_ÞDAZ]‡Ìó™µ£ô;`ëØÎì›YäëÐd1=«ë:XµØ?Ð+Êçý€ÔPü¤óô*–Yu¤±Â㾸röâh&D³hLU9Žâ¹K’ÓU¬Òæoº+£ß z?,͆ÂEµ¢±Q¡XŸ(nŽMfÇqª1Ðr¶÷H…‡‹Æ(()·‹£d„þÌò2¨Æ<Ñʰ‰2HÂY•hÊÌ? #‹¢Å`sëã\ó(Ø[ÖÕº”9ò¼åºI˜º€…>Gx¯C_YöÊé-nƒ9ŽrÍTÁþE+GOQ_³àg¿%¡Hžš¹PYo_ñY Õ‡fþg>ÐgVYµ…ŸN5¯TÙe'®0­<ø‚NI¡­¹É s†¯…¹¶JAÇÞɬ¤1÷ðÑ%°ù$&<ýN­õPšÐBAiô§¿³x I‰?ýøTù]«rQëó@³† ˈÆF'rI«q–«j,T9z‡ê3-ì³ïÓzå€U(GÞè'›X—2O¶Ùåù>)m¨¶+'WHT)n‡´ßð¨ˆÃÛˆFn:)Q1X¨O+¬ˆ÷>»UaǧHmªVøÈA m&å|ª§}r¿ªsë ˆë›3“ f:aêß¿=(¾i&³x|,%k)pjÝsøŽÇ,*Ò‰PêMVgˆ½T_ÞUà âÎë‚g¨t¿p›1iÃx7˜)ÛÚ£“¬¥ ŒŸlÜÐà=vÓõxý®ôfã#1Ûà§î‰O2yËá×uØ6Ÿ-Ô%l±èŸAÄ…-&‹cSXçÌ­$ûy 1ѳß:óÃmM©lt>×UK*®BŠ­u,ýí«RáBýÊ™¶XŒ3 g¹²K®ç)ò&´Œ¸T…ö1wÊÔ¡a£®fâ[Ö…¼(O²‹caø®Pñg_$óIºDBà|-ÑS.±Z’”îj âg\÷Ëe|ã­GtŠ/ ή=Ì3·I«„Ö)[À㵃Žs“'³j=`.÷®½‰4Wïm©¢’¼ªË¶ŒÁ¤šÖFŒÌ58mu#: í¢ÏÙäuf=-InðÂô‹¿jÂü`ÓÚscñÕLm‹ŒÑùèRÅl—[BZ0™,Ü>ƒ üåìÒ¨Ìzáï;i÷Çjˆ‘å6õ–Ë Rkã‹@gCŒéýkÿˆ9_ù‰­yåÌUÝð©«­ Ûb šD! +„/K¤^ÌC ÙÏÚaC}VÖKÂâ''# noÊÚ%Pö¤³Kú¹aÊ6)|ŸJj´í)Á©ûÆèË—Á1pJ<>—´pënu½ôÌWŠ€ 6¬á_v"¸wüìroð\ìÉ6à`ZMøMjùÑIÄ»ZU5µ!’Êá°+À¯©Üw£Ñ¯·Ÿ× Ýžh¡1<ªá÷æIÜ× aØírø=‹X^/ _¶õßé}iÏ1¶´á·gh5ë„9Ï|ø 7“YåÊïfG…VüÝ 9fº—'7L?.‚ñ¥GN¯WøÕá|Ó3úùÅÖÁVÔ„*{yú»dÞ(‹¦9ŒSxŽ\¨LíðÈæ@Ïp1îq»\ÕL$rUª"î qŸ÷E4ƒÍM¢›ðcðÒn#Ú€•G/ÛòßÞQHpgž÷™}ì jkÿ%!©,ʨ¦:2€YØ:•ý‹ì‡véÝT52¦ÏSí÷­ýª#„½ƒG°Q!*3úˆ§Yš‹õ¶'¦k–†+t.—ýq“½ØÁòt5GÀH#nÄzŸ—6šûå=OrSS¶ßNÒXÁ¸ò=&±V˜x¯gÄ4¬gˆ08‚jŒ¼§ÔÕŠLÛp/>5 Zç¼ñ{yÉ™óObÓ3?r°ÀFˆüvïVàvõèsLÙhÒ™ôΗ!Òo«eb}–Ã?"cùyù‘&òë‚wðásÉ+¸Ê'6?ýVTGÆó+†H9X¹™› ™¤†Þoâ‹wjUÒËËA]aŠæç¾|lØâX˜Ãw±Ax÷zêsºŸWlDѽá4äó`ØÀ¶äÓN~­ofzÃ[Û5L@íûÁ&/ Èy}Ô߬œÃŒÇ0µK½—»ù¹œëì˜l^`x¨D½]NÙœYmÃÃY²±@UªÝIýÙG¶H­êÄôéÇuñÏo€áQ®Í_èdõM«X^X@÷¼t½j1šf›Øf%Ç£L&†ñ§MQ‡Š’)=Z‚©ÈO¢ûq[x®ÐæpÅñ-au?±i9ѾԊ¦»^‘g|[‡â6ë÷šYv;}ÿía.ø²1á퀸ó»íê÷ÇÒ –¥2Ýo¶‚\wi"mê]ßÅBæXÃBjxTF;@C±ëœ58o‡¨®ncÀ<.ßjG>¯ª„ž)"ËÇn—«·_?AI¼ì€w­Æ„`èO”ð"£«VºõÈUÀZ«³8ñŽƒ%¿½L¿í®÷·Ëgžy×2{v4øcÝúæ4Á fìœ|Á‘- H_¼#Fwg.ùYJÈËU ̶ƒ§ë)þ;(Ã㾨Ž]Bæ¨Wt,00°ì )vmÎÆ8aŠ|ëåspR™jC-Ïv|öÊ‹Ž¿“ ù7S&øÅ„ºÖÕXÈDsÈqiÝ7?*7F­y«¤S†¤uS%“‘ØÖr®a<³Ê+cøèÔH•$QÔo*tlÃýgûóˆœRú¨ YMìçx†‰ºöÝ¥}FQÃ^òfœõ†/¬95¤Öµh f/¸sïeÄ7x³ ì—zo=¼kt¾lÜ ÔC¸O`”cVi´Äf&QJ”‹pŦ^ßp«¨.ö®pÄr#>mÕ“ “õ§Ì–qd¨!^¨ˆç5gµ.•ÿ¶5¢õ˜/Ô~N¢<‡úDs\ÐÎfêj¬i ‰ñ`Ü`š¨ÆX[Aþ­Ÿ½ßmÕ—X\´sמxq²¿ÆW|§¹Ð‰Eκõ„ø%œâ_}oN ¥y B{ƒ?BL³Š@ãúŒ8Êæû‹.þ[ŠÃŒ¢Õ‚”‘Ø÷‹06Ñ¢…­Ï'yÏJݘGW*ñ_¡Šõð}(à ꥥúhCËŒœ´2yÀ}ËÕv—D‹ùR)4&fß Ì}Ç0”.:âr…*F÷….êë NdE&4¤ßÌEÿ:G:1æú%|tx‰­b¸WnŒqË-J Òÿ¾5c?ÁÜõ±~u+1‘©LVâ™$–¹¡O£7žIçªÃ¦"¹TÀ0;J?ºØA¶n—~m\sÏfÄKˆæð¢²uù¶N4x¤qÂìÂÝ’ÚÍÐdÁefåðLÆ;ýâæ%?t î*p|¾ É»–þ BÑÓsÂíUIzë—¬.W}šS²ÆÓ ÕG¥m-Ç®#¼Æ 6ìÆì,¾>ˆÇMËl,¼W^Y^¡×©¾ŽBÈcŽ#±Jó0u[L#N×UˆáV'ôZ^0²–…FÅ8Ø ƒv£²¢qÑv˜Ê™VÌH É}y 祣–Jš.ÉGôò&Æv†–™A+ ÎÉûOu? –( ý„Ã…óŽL\ôý•v­jûT{±‡Z“ö¤ñô¨"6Y ÉÎ:¬#×Ü8zg(™IïñŸÚ=/,J]§v8è¾E[-UVOÛ.v=|‹Ñçdë{ì|× j‹K#¿è2§ y“U‡ª èÛC…b´‰‚-)Tk1 ˜?wŠ_»®Ôϰ ÒA%´tP¾«+æb¥!+ÅÞ¶Jk žGj Êoì•75f¸½2>¥“Þ/ª_Ïà¾fÑrãñä)º—äD:Uè›^ûFud)£éNð” SaŠˆ»‰9^™ÁXáL·cH¨qË^¥\~žøÒ1,ÎA_Zá@,8jQjÃÏ}-½=ba>VÝä`bÝØUS¹lï®h%a?üýë¤÷›ai€·ÇÛÝÙ^Å!xOn©Vª 0µð«Û–TõÐÌYìÃw òÖ ·+—Âñ/O’æPÞRQ½ ðþNÕÐT]R"NP}âNó aÅÔÌá5ŽÔh£Ä õÌY9³ÊP¨ß•±ë>ˆÝòbôO.Bë<ð ›AóB³•€mS|’D\Ò) Cí™_Õˆ]Ô1˜œ ]ËçqpÍ…÷k‹"FbÖ9š-7A—ðd[êáA±ß¼{×xV/ÂöëòõÝíc[¥–‡4/îÁNYÏû¨-b_Ÿ¹h»|lÔvÛô ý ˆ2%aë«øá6¤5ŠÊû;zRýW®KJ"ë…GÂ`鋵ŠFSœ;ø£L3âÚíèkßh÷À7gƒrDœ--/Á"ûßß1¶oÈ^.ô)?ÇZ'I°~Ìù† &FC¡{©]p¯©›=ËqÃWz0aªï³,=¨ì¹!˜¼'pÇhˆÿ}ØÍøU§Žy„É4ž"…ÚëÓ¸-=·7BÃØ…MIgM+Ö©¥öÜõÑÎ¥ŽÿF½O7o5bϹ­ä !Hºž€OVWõ§N¸nî5þé á„»±Â'µh'M¤Ø H3AùŽ‘LÿN]Ī%1òß¾1EÿzC”ÈœÞbØ›²I@WÄŸÚÐ÷OÂÊüY’ébu-o­• ¾&›ŒÅËÑrßÓHTYGÚŒúÏÅÛòE ©aVÑÝä]ºSˆ¥îr§L‹ElM@'jÊŸP¬ôr®„hOP?Fé Q§B(–oQXº‹&_eÏâB©Ègû¬-ÊŠ§¶Ì–4ãPMU¥JÛY‰ô{”’HòSò²n¸£¤ -•Vqpá¥É$¾/qcŠ9 1ž"Ÿ%|EïÄZз5ÅàÙsëbÆVà'X}K”ÎâeÕ. [E-L}íQï?GNÞ(•uðÄ8 .èN“Ëþ²œ¸°)ƒŸ)†Ëý ›òØß86EkJn‰)”ÿ-””pªmû0éz†ç«€«LˆÁ “´ñ\- bIª¾wÓk2Lsàb OÎiU´gÏë¤÷š5žf[ëÁž~q€¨z¬ÉÉÖ‰½¶c{µù.L¶"žÚ¼R™¥CÐóCeDµVÝÂ.šEòvÅ0–AYAÂKû‰aêÈ&MÞ0m³ø¶•ØŒiÖÑæÂýƒö¹Ws§ƒxÂÇíá'¿æs˜|Wªò³ÈHçŒgÉÔJdÚ‚QZ°'T(g|’Ö9y4~TöN‹•¬®ó¢ TÔžj^ìÃKHÆ-ë—[°ÐEÉÎÞ†#ˆ‰¿”üÔ¥"œœ¥h^¡GõÎ!ed­jìÿôtSA?.o#4}D+§Ö¨lokX¤ÊˆêXŒ,ê#ÚÕ$3±žeïÉ 0tƒË'±ÛIÀbà1û 6ÑsF¶£«‰7F!E'ĈãY¿ìà¬0½/(nWŸ@hFLçÂzžÜã|î›ÑïY\çþH®r2UÆÒò®Ó~buá°@GèU½S<„ŒoÑë£?ܖپƔ±-ÿJ Õ?ã…”l±ÎfóÅBσ>«yé¢g ðÏóÉïYM~§.}Snë½³h6@¡·è]6mÝj`GÐQLôZT[SúߥNªÔ ì‰w )‘h~³ZX¿›Ÿú…5N×…iŽ~¡t’йý$ ÈùUfe¡6—œí³x†!zõðÒDˆz¢®ˆSgéJ\†ÎÎÃ4º©t—uî2¯ýäÓçb†Ô_'ª×|é’waÎ…!à̶8o0zAë^ÎâŒB—­@¬K‚¶lÖíÀ=C ã,fMùßo"`³¨ÇŠ/ì• ²"‹("Îq ZÑ_»B ªNA\%­E*´œG†Ã"q‡eòË‹¼Zs“¦ßðÖ® í53"îî…Ú}³.¸‡8Uå8l¦äŠçž5Ôë, M¾ |ëF¾:2Õ»®A&oÐaðñËx/’ʇ÷'mÃsùZû*$~ª7U\ß±I©€4€í)oK9àçS«4!YR" ZþÀt>ÛTη̻Þی̀¿•5©áÑÈ·¦ßUò…^^S]|Ù€Ô ¼ ‹(NK±;É|Ép Ïwý—µ©±6jU}"v¨C¯ã„ÀeÌ´7Ù*Øý ã¾hF²ºôÚÅÆË>µ áºÈzâ…Ä,-“C>. x¡ÎKŽpgƒ>þjåX£1©}í”ÊźoÁÊ…Ý<:BÛ|¢4!’†:®k¿Þ ,$S/×Lþ,ÆÑ‘Ô†_&ª6Ó¤gE.E"»©bŸçñѹ‹øÅN O#'ÞzQ…êð³×©ægý2ñ N ‚{ú£t6‹!ê$Åêvpd£e? Fîcw&…$cèhKôŒÎWiÇÏ+¹A¨L•gXàlX·ŒïËDÅ>N™ÙÀª% Ünþ¬' 騾‘i›iÞ^=]Ë!î* ”–¼V8•kjlß &‡¸ÓÀ‰êæ©lŒü42ß±û2!TùëÕµ_¡ºv—»ŒK´’¶—ÐZÛ1)‘†(–¨•HÕO±R9¼{¬È9Œ ®„Z—ÛÌCè¾rßéý‡ã–p½´Ç’Ý·½©3„Ü~aW²_°”™iTé{TZèe~ÏpŒsŸcƒAgnë¦W žsæö¹'ý Ä£SLj¬9EÄ‘w™*1…u+­Q,A|M?…ÍÌb ¼[Ί°ë¹LDè6– –³€rL­H˜h©k$ôçs"“â ómmžß}Ç·†e´œf,'ìç£ÞbRW 6BkÕ“cƒßõ¿Q+k~öç‹Êæ‹0˜òÆõlÿÂPõ:™-KÒß¿w¼ÂG~ÕÂOÄBenÂÓ´SÒArÐûļƒ ³•àQ˜£þÁåÛþå"zÁ¯of¨Õ&"U¦TÀÔ…·Ré”–HÎ3ÒaLjSü,c¸H]†š$`òlë–ß«kRÛj ¤àv ̈́ۦÌC§Y³×”BµãjWL3MMȱ âÕLÏÒ##BCøÓ|Ç0Å…|Ì)ž¨MמY¯KN™?†`Ãc§8ÓÍ„Ç[ ÿ*ÅãùÂutPCO“êË4¯o}÷UÃÜ£W‡œ¼¿ýj”œ‹'ud6šd1«Ù“â–Âc„x ÉìQNÃCŒ\8—JYiÅÅ‹Vu=_Mã½ÜÉ¥ õÊÄçá€u×[@^äŸ<óãú¢iJ²Òxèò5[²ì¶kY&ô²¾C¾´0^wæ€Þyb0 £µà\{އ‡Ò–eÚRé“€3hÂ@EGgýE'csqŠ’Œ ½±ŠL\ßQ¹Hùš ?ÆnË0ˈØIâ{¶æ=£ß+ËŸFFé8»Ó|$$Z‚zòvë]âWi[£¯†“fa­¼)OmMÚ§¹æÚ’ÜÕJ¼oú »ÁÆÐ½èpì bKÕŒdžzžxîž;ÆE¥¹v\$CÇtq­1tœu3ªLsm€å¼qQ™¦æüZQjÌ Â‚š"þªð7áõGÏÄÙû;2–úO¹.¢j&aææü Zi?êi¤,CCS.C4ñ0C¡µð1™¯Ìö­S“uѽŽ5é´um§g¶ù¿ìì3 Ê1ÐQ|‰áj E!ïÿ…±ZaµÂÎÊyé%°‹ž:F4ι°ÆØúö¥ôÃ:ñaCþ72ØKït× Êˆ8_^Skå‡`ýHý»ðÁfL´¤T-²¤¹ðhÚ}Òp¶žò@kU±Âú+@¿|T+».+$TÖÙ|¨N(³¬¾;PøÐ¤MW5JT{òÄ>­f{vB÷×sX#²lÀ€z5ݦ†ÀéiÞïš~ç÷ŸÊJß¿kŸ³6–ÒîWÄ€š×#>§F5„P̲¼®¼Ž€ÕçÅCÖŽîµÖIé,"…Ñî;š¯ýr˜¶½*£3ÑuFß|LÓ·H7{´EŽB=! zÛ¦@¼Š–&ap¯ñ“G]–Žxb"Ê3²·Œ TލÑ1QLߢu½­ +dú&Êç%ÄÎF‡_~© f#k³\Û\…ÁÅD \zGáS;¶X~'?ÚT4rs`Ñ+x44(ãÙæj!2/µ“P§Ë}Ò©S!.•”Ü©æƒøIn 9“Š“!})¬¸JÄ÷µùcÐú×äá_æ²M.b³D 2ÜÑÞÁp–’“Rg šAS´Bö±ž˜ŸÍu "°qG$y©ñýM|t‰Mâüæ¶]Õ„8‡hÀ°Ý18Ý$=âIMžåÚ«núhüÒö88­L¤ /eÍŒ]a.zÅ.ˆ]Z´O {¸ô«Ý´ =( y8xÛG"^ûxkŽcÖƒÓMu™hUÐÝô#(Ú²¸ˆ*Ra¹*¿l@bñ‡&:U±³^vˆÜ¾.B]:ù©àµ¥ó\Ð/)¶bïŬ_Ú¼UDë—™;;Ì<ƒ`«ÓëYš”$ `o”®’‘-íŒ8ø^ꑎªâÃZ¡×MÛ\$¨ý[…Qö k§g¹ü±[§R†˜u[¥«‚¦PXß!BµCõ¼ lî¸ÉäzµôƒU;,x¯@Æ™‡'&ÂŽg–=Éöíj'hÁßi°]žÄb`–X50@ÌŠK´ÅY\kr!1°.€3N ê_&GP `…lh)XPæ’Z™~l¯*±G‘\Óµ¤ñ7Nq}ÝÉz žâS.;˜äÐ?¾ú~EðLú€òiú´´¯=>í¿‚ØQÀ÷û ­¹ÁÞÀвŽ.gý`j$ÃÆãëòoì©þB w‡‘¼y„Yw.™ýÊKß´%²\¯q¢‡&*D7ŒRÈñb¯ “ÐqL»g[p°ËLùL4E Õa´%+EÌ B°05 èZöé3/ãGÐòòÇú3 &÷ˆ…‘q( ¾¨ªî-´2"#øsçúØîõ”ÓŸ“‚x%‡ LÇ`)bÒ‘(°ÇZºL‘&Z/ÈùlARŠ Í©™à|x|º×?QÖ™‹Ô»Â|30'-Fú<Ϩ g-sbcC]õ°Ç÷ŽjÖtpÑ4Qï-• ÜÄ}v —‡g3UIžM½…!CñVkƒ—JB©©ÕÍa!±zH‡lŒÎs;>©3F«¥IOÉÙ´C>œgH, y:p0çô·…ïâ"˜¦øãÊâIƒ‰.Ò9"[,'*Yàê ÂÒöTàP7¤Nè„/Ãì ‘" ¨æ¡•þŸæúÚÙyY÷/¬°¥0§nÈkº™dÏ0JªûUâu/ãÝ [œX»¿ádK)—Rl—ÿø°¡´ž[-Â!jk6&®~R ¥¥8F-JöÉôó¦ƒ=GQYŽW”c^zÇS§ªÔnlñpTê½Ø•H4Ï ²S¦ ,á"gNO Ë…1 £ÊÈÞsúVþ+;Üe|Wpâ…<¹I6ëÖ£Óæ=FcÝ1­C€Ç›˜€hx,¾bŒ2iv§ÊüÌÒ®V ¦%S8§Ü`Õ]“ØVÝ®Œ¯åÕä(bïqû™Ä=ÚSJ\•ù×=¡ZÁuu¬çäË78gw­Y±Zß¡tÛ>ö»7š°»@k—Ý+/-žsƒïÓ!•8ØPB-zç=ó÷É ÄÀ_4Þc½[¥¤2¯ìý\N ,b a‡'ic1).N-ŒH7©”£þvDÓ{é]ðÒÇ!7,º›52Ði¡X°¯Íâ­Ùçóë?d"+º$o[sŸ±ä,†p×Ã!wÿúÆî£ì¸úxôK­(\¬·GÑp1€í<½5Š /¸câ»p©<|®åçú¾£ÄËæ˜ ’¦¢ï²ã=ÏogÌz P0K[ð/|O¢ ‹-KZç¶ÿ¦(ÿ{X“ï¦Û~ªô¦Aš£ rg·_Gè©=Ùß4~¡|gP—-<Ùa‡rµk,áj|t†ÀIízÍ®ÄHç®Öÿê‹cû:»RÏë"é®=I”ÅÛÖNaœP‘øÖMUÁi¼ÏœalbÉ‚TKz5î\È3ÝŠŸbüÞQ’ÚI9Ý?¿€ ©çF®¦B?`ޱuNÌe Ús!>sôìàxXè:‡¡¸ù­]æ4ÿª-§fý_ÊöÅYÊF·uÕ˜¼ÔL‹7XS y¹ÜÒLLØÙ´ !ò5Ìsq¹'¨¶[…ÔŸ$M¯5øëîRæ® @u¿*h­c4¤…!njxß•?·‚ ’gç" ÅÕìdc¬æJ™}—]HyN¨ò½!†(rö{mÐ)»ù;µ=ÝÆGLìˆmÑ|zm~¦–ëq¶¬È†58¾½ÐB ¿Æ7 ™œÜ´ÎºÒE¼Ð+FuNÍÙPìõ—\ñØ’N3JQþÃr—rÃæÍã°èž÷z“;½f}MxàŒÌäËën̈HÑz²UŠ;[U ž—^ ÎIÃÔõ1W–n©ò‘ã^â+‰á¥FJSÕ~c+âÏæÄQÝÏÆÌ äZŒ;ÆéôO¨×¤(b»„ì*g)¬MÏAÚœ›òÂìmÐó; ˜on×à‚…N§’# lŽ|ûžBòÑýLùFiú³"(Böâ•»›áCƲ²w ›M][þŸ¶ ×äÍ*_¢”L0¬GV¶JéXþO. ¯šû¶%ƒÝ-ßmP•4H–tNzX,¢šg‹ÛÍщgy~‚‚AƲ…FSßÈ[ ­`â3-ôáF4+·æ[‡Þ“üåwê.^Ѳ”8{ƨ$!Ë€~š<ƒÎ=4 ^^Ê+ÄMl¡ÍER ËÛ?>@dÁbô€5sÄ醱‹2là‹±Ã/|Ù 2¢'_Qú endstream endobj 670 0 obj << /Type /FontDescriptor /FontName /ZNFWYE+CMTI10 /Flags 4 /FontBBox [-35 -250 1124 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 68 /XHeight 431 /CharSet (/A/B/C/D/E/I/J/L/M/N/O/P/R/S/T/a/b/bracketleft/bracketright/c/colon/comma/d/e/f/fi/g/h/hyphen/i/k/l/m/n/o/p/period/quoteright/r/s/semicolon/seven/slash/t/two/u/v/w/x/y/z) /FontFile 669 0 R >> endobj 671 0 obj << /Length1 2778 /Length2 19770 /Length3 0 /Length 21355 /Filter /FlateDecode >> stream xÚŒ÷PXÓ ãÜ]ww·àî. î®Á‚»;Á!8ÁÝ!8Á îIð$ÜÉî¾›ì÷ÿU÷U0OwŸî~ZΨÉU5˜Å-œÌ@ÒNŽîÌì,lI%MMv6' "5µ¦»=èrDjm«›“£À’®  ;Xöè6TrrÈ{ØØ9ì<ì¼ll66þÿ:¹ ^=m,J,y'G"µ¤“³«•µ;8Îÿ>èÌéìüü¼Lˆ;€\mÌŽ% »5ÈÑhÐp2·¹ûüǵ»»³+«—— ÐÁÅÉÕJ„ž àeãn P¹\=A€_”Ê@Ð?ÔX©šÖ6n+4œ,ݽ€® X`ocrtñp´¹ÀÑrŠgã߯Š0þ)€…ý_wÿœþåÈÆñ¯Ã@ss'g ££ÀÒÆP‘Vdq÷vg-~íÝœÀçž@{ Øà¯Ôiq5Ìð~næ®6Îîn,n6ö¿8²þr.³”£…¤“ƒÈÑÝ ñW~¯m\Aæàºû°þÓ\;G'/G¿ÿ!KG Ë_4,<œYµm\<@r¯ÿ±‹ˬ@în666>NÈò6·fý@ÓÇô—’ý—Ì!ÀÏÙÉ` ¦ °±ÿ ú¹=AwWP€ßŸŠÿ"Dvv€…¹;À deãˆøÛ;X ²üƒûïjã 0`;€í×Ï¿ŸŒÀfáähïóÛü¯³JêIªKH1þCù_¥„„“7À™ ÀÌÁÉ àæäððóþëå_þÿãþ—ThóOnø“s´tðÿM\»ÿÑðüg.èþYzÀ#(;§ û=ü†lÜlæà_ìÿŸWà¯#ÿÿ&ÿ——ÿ×áÿ¿I{ØÛÿ¥§ûÛàÿGt°±÷ùÇ<ÍîàÍPrï‡ãÿ5Õý½ÎJ ‡ÿ«•s‚7DÜÑÊþßBÚ¸IÛxƒ,TmÜÍ­ÿš˜ÿµìÝÞÆ¤êäfóë¾0³³±ýxåÌíÀwЏY©@àúoD)Gs'‹_«ÇÁͺº}ÙÀóÅÁÍ ðcï¨Èû¯Ñ°²8:¹ƒÀì–N®ˆ¿ZÊà `ÿ%úñX%~#^ð¤ýF|Ö׿?€Uê_ÄË`•þج2¿€Uö7â°ÊýFàè ¿8ºâoŽ®ô£+ÿFàè*ÿ">ptÕßOý7ÇÓø¸¬š¿8ºÖoŽ®ý£ëüFàèºÿ"~°ø/âë€ÎàøuÝýkŽt3·±1·q5÷pøWÎÅñK/7»ßÆ`fÿ"vðY3 ë0 3W 9Èdéþ‡˜ûñßKö¯7ö¿Åv ÷ÿØósþ+ÿ?ÀÕ4ÿqƒ“1w²ä¿9sý’88üæükRY“å—ÎÂÉÞþÏœÁW+è·S°è?Ay~é]<Àÿ¯p~àIµ:üá\.Ëß^À–6ž¸ý¥vòø3,ØÄêw°Þê×3 úÓLÇú79p­}œ­AŽX€e6@pò¶@pûíþ€àzý&Á.Œý¯…ý­W÷Fàûšõw(n°/Gð¢ÿ.8´£‡ƒÙ¯+Öê”À/ «Óï¤Á>þ8ÅÎ&êü[ Žá ~îÿÓ.ö¤ÿí>˜xzmœ~÷“ \Dg{?H€¿þ°ºü&ù y€Üþº¶þÍœë—ÐÉdafÿÇA°ôÚ³ƒéývË ¦ár°ùï¸qÿ²yþÑn°7ð#ùo~હÙݬÿp fñ›ø¡au·vý1)à’¸{9ýqìÃã÷ €cþõ}ÈÍÜÉõϺ‚›ëù'ìõÇ‚zÿÁQ}þ€àžøþÎìÉäúwÿ¹ÂÍ=\ÁMqÿë•ßïÿÃ}•¼AæˆkËNæ‚a¶Maĉ¼˜f„¨t2é™ýÖ\»=žPáÓèësC¶]ïÄÓÆÐ7ö¥ènÅÖÉ~øu4ÃGv¦¨u=û7IRŸ?èB\Ù-=?LòŠ˜YSìÐÿ‡‹¿v°td¯2ÇkÅW,R™å-áSÀ¹3“ 0`^{£-ÞÞ-`̾É'1"œÇs–ùéïp¼}\òݬÑäpë# "ÐÇ'¾Åœš§ñ“8N—Ç[ñ«,Û^Ég£gØž&óŸì%¿0P”ÃÄc³w]ã—™¢ èzϬ;ˆü*÷@ÃÔ™¡Éù uŸÑÒËKZ¦X¥½|Èøp,òÕ}”+£…’g¼²ßáîÌ­ÞÙ­ÂÙEÓ¬ï„åÞ+Ä=œ6‰Í×?"]°•àˆ¿òõù—Úæ¼£jô´=w^ð>ôÖè©–ºô@E„/MËBCÇ*Ínå¥OºmÄâ2|UÏßeñʰŸÞ`œ`]Zë‹ËÍáO®‹¢)ýL>…g_//âûÔÙr9n3Ì62[ó¤ }œ(Ô¬¦Þ‚Òåñ*…FJ1ùOubó]ÒçÓJ‘G÷ý&UEÏ”VŒMOgÂmÇ"g10‹úy‘ÀÀö¶ âå[ìYn=Öõ}!ý¦‘ÒãÒ¢ÈáH\"©é2ƒÉšÂx9¤®ã¥û;”¸ÏpéhøÖÎv–mQʵ¹Ô¸ßÇ'¾ÔKˆZ©g)¼{o=(¤± ÒÞ÷‚–PS&|[µg0E<˜²fÔ@ù&sJ¡_ÕgÂ{¬>®)²q4X‡æµAÒ D fËAç’ ?qW¸jÀc@OÒvïà<ðvÙ–ÅäÇL|áú¤,Y˦ãa¼ñéÈWÂø‚RÛƒ·Cûî¡^]ö”Èù ‹ëVM¢³¥Ûë>±ê£‚“NôbGŽÿþ0uÌdV g™ÓïÓÞ$ðvê3ŠårÑ»ÓØ”ƒÓ›òçJK«sê^ç¢g!›2R:Z¿w KM“¨^Õ?55@9´|¯_n&ç‰öÞsÌÎôÞK×I,U:-Äw&]`Äög\ê—À!­½Ð¦%ÖF BªøÍKgFwstÆ‚Ÿf¹7sKUÄÇ µW&|7'J’sÌqÉ"ñM95Q T=iöûOk’ŒîÕÕsª$Ë$aŒë¹ðS~¿Øe•8£:Ú¥?Kn¨ Ó¡=d‚Ž„ø)1,S…LÀìš<¥Y‘¶„«gƒ&Ád—]yDƒ8S-E‘ãqÓµ¦·óôÎôJcÞØ”¢™.­vÎ!ë‰IMao…V¤#WjGU™I@éØ/FƒS†CUŒÇ°`G”ùzÉW7ž6èÓñm 4.‹‹uæ ì½QÁ—gû`U¥×Ôšr–ót…imí·½l%þF¸Ï&ØòVͼÈ÷2§>¸ Oh~L…¨}Ým2. ãBnh3RäÕ•búr\ú>Žö`ÀtÇÚnYS3A®ÚQ6dÿ¹µ£{:ùËÛûÁBSÌÍ»åýàÌ »•Mm%©sÔ6*0Lµ{Çá]ut¡Vï|M%ë¹Ê¬&"µ)Í9±_¾Â°‹ä¹Í´q¯·ì03–çžÔ÷E.onÒ¨ƒ„µÎï1ÙCLßò+,öì¹iÍ&Í6]˜ÒeïX*) Ç|û¯”•ïõ‡d¾À»xL“¶6.+¥Bõ|ë·z>Y´`…†bwºxÃ0ÔŽ¹ÛÙƒ6Ñ Âv~˜lAd¿l pB R€8§K¿ò'œsSÚ'1` ç·L ûc~ÉÅ„À¬4þ¸^A÷¼ÎÞëY ©û}UÜ6‘\æk¨·ðéMŽ^ѹ éš×׈I¼Jü¼OÉúXUï¾4LãVü‰©tèž<¼ y_õOß‘¢ÑÁ)z¾ñ\wSÆŒ§ÓµÓT„ºZ” P_lÓCrÿŸµ@†ºi‹#-¤Dxzw9bk—¤•ŸQ¤ lÐ….—AAõ"GaÊ8£Z¯†9GÈÆvxц‚øUÜ[ 8ý㯹]Ù ¿v8¬þ|^åƒßNÓÉ$vy­8Üýá­ßÆ…ivʘ…W*‘ÿJŠŒü‹/k[î±,m>UXôDÖªÒL)_|éÎÛ„}ô©¨·¥B¼Û~õŠÎ[ƒ÷ÚôÔX˜»Çvœ¡açYšN¥ß%¸DÚô_\Çüº\ñúµô_ø¥ª –eêv=’¸ø×EvL\z¦YCJwßœ zï¥'h„ûçZò“­ÔˆöéÞ°xŒIx[ʘI}gñÒ|Ïrbê{…W&¡hg§ÐâÏo‰`eõ ÒþÄ¿šæQÐG|T¥1 CÉ"Õ]4I¯'åF«È9¯Ö¹ùIàô`+|5mv¤c»2Ú\Ö {\öQ¹ÎÖHõOøÊµí äw™ÊpŒü/ëh\¼±>2htó?··Q*ƒQúb(j}'öPTLRýkÌõûJ”†Šµé‰“mö<îˆK@ÞéDf¢‰G"38i/ãðz}áW—¹ËxÑ'šåVÍö0XkñüZ?¤OåëE)0 œÖa'œg¬ãVû gú’+o"´ ø‚f—R|‹Ž¶z#Dß=A¥à} Uˆ¬»}*Òy¡žÒM »…¡ZÀ3çwÞo–6¶È–˜!]–W§ƒä1`Öd¸à"ÏŸ÷у0¥UjùAT‹P1¡„U­*N9b™¤IaIG# ºÏø©[A“¬Þ3$5z†dTÉ¡t1Áƒ|#jMÏG3…Ã*D· ½KO!Çëd‹j¹vGoSŽ…Öeƒôífߦâ¡Âi xÖÚf·=°Ùãå9úAÕÃÕ‚lh~8z§xÀä9S¤é¡vìÔ!°ùEø&€¤Eªy²’n_cbrš%¥·þ-û=’Å3nl(å× 9¸iÁ® U#<Ìîñ–›\uÈÞŸißÓ:å ™R)ÆDsòR‚ïöÍ$ fgƾ¯ðùo|’™ÍßÚ¼2ì”EFtÙ…3çˆÚ®÷&ÓÃ.d'ØÁÙÅèH?@Çu§$ÜÁ¥î˜¿O³ ‹Ñèøf€¦!ÂÛÖôO¯Ï‘¡m™ŸÂ†ÎUÂxpÊK²hQMŒ ³odææKÛ;&p0 Ôo®ÊáÂgDüUÎí±-,Oªùå©6E6 ’¯Ro· ×±knÖï{#s0Ú‡‡'„|÷—ªßÏS݇pŠ+ä½ß§ñ­Œ-¨ÚeÁ3ô›0õØ|1À‰""k©øF}ÒÁÙ•ð=œwÀpÉÕ1$BYž¬åôgìì—¬…Òµv5MHïa¿ô¨ØöftÖm¯26Ã뀗æÜÞ)-igÄÒW=d¦í߯’¿ÑÓ¾™Ìák>ïcïÿgA)¯ÈŽ+Š¥Ô<&ŠE1œcV1¥ÖJ|ÕÓaiÞ6·PàÚÜ]$deÿ&þ*#‰[¯^aV8XãàÆèÌQ,ª4Èž{IÖm'äùvgä”õË^gì”6ñ¦Ç¡ÕçÀÔE±Ë—è´\öis©bõ½&*rÛ¼9³¬~‰Æ0¾>Ì®ÓøÞ(–DEÝSdO˜¼òÛóË7a+ }÷Íyïöi ‰|ý:ÎÌZÊÌíTÍÞŒC¬"²5 >”OûíË-Ô’‡¡h†¶ÇªWQ-0•‘†Tž³K@”žïÓHeÂñõ¿Ïý®ôÊKë>÷œ+cu}ˆ)wǦ¤0ºI"pƉˆÌä•E£}µ&…© Oƒ‰§«¶Ê'ÜâÈDK¸ô£‚*ëÐm+Ö,ﮢåù‹‘-Ñ/V’—ØjÁÕØ”Έzrð !ÃQL= ÷â™WêªSdðªv6B÷:š)¥‰(;g¦Qî3*Qɪ#ÙöS wš~ †lšHÓ¤Ôcë…Ê…ÈM¢°l©Î/?¯›Su›QÖ·_§•áD€Á˜®¸VR–Ä-zª2úS<ë¹±ßCværƒp†^[ª3¶™ «Ú@½¸UÒMâ#ù™½8çà”ýIPª¶^ñtÈ(WÖ¿V#e ¡1² @y;Ö ß[qý0IÒ\qpÔÐ×5‚Ve„zÛDô˜µ»¯ü¦ÁƒŠûsx *½ìï%ç„ BÐÓ´BÏ„[‡k ÀÕ,ÒfÎD…DTÏBYâä,Z”w-þ¼Ö-7atOe/â _FõÛ®|¸Ú7]i(Lª®ôUeP›|—¡±¢~`Á@vd¯|·š`†e;ùÊ«ÛÃd¸Ÿ˜mŸ³Ì¤×aPšõx;PíæÛ{Ëo{ň7´r¯”aŠ»öDDZ\l«n²è'Þže/41æ·‰cŽÎ“̹ïu½ã¡‘K•ä_vp…õäumÂü*óH-ùEÞõg«Ð]µ•ŒñÀPóû7õÞª'pÆA {[‹xý;zOzá¯'S(ÚS©°E-ÛxI3Ö³·0:’u'?;Gq~Ï¥ÝcÔ ùóÞ¾)ð~à—îI^†›H¤a{ N]e¦Úì#XC ò+»c$‡ó‡tyؘºM–òB4×÷oídž¥’3˜'µ‰Y]‡"}¤¸‡xnÚé$äôOò•ÞÕãºÓ_Õ –Ȕ߭È?¡ó‚M[afЋ¡":x3,ˆS î¹Ý1*UË]"J‘¯sà$¸T'Çs•ª Ekhs¬ðøÍ-€#ŽÀOMœÞ‹PþÔ^wç-Ž §Gœ:&'”fŽ w’™?雳§d¡Žç>^3ñ€ðà‚,Â2EÝEž£gVtZ(S²ÙÅ›n¨æÞæ¤JÒNHœ>«89Hª[¦´—)%SŸ™Óò\¼ Qzóä Ø­¯éÙ/¼» Hä|Ýoí!ÇY6¡œnIgq[–<¢<ÚÂ4D§Ùô…ªH>|Q2Îw’‚Ú]¾JEÒ²‚PŒßŒî´1¾"GíÙréðŒ÷±bã©h¦ e?)¿0¬ÍÔȵ"k¸aŒKÈi¶Å--z~Á\·‘½Rï²ó´§ò¯µ¹?gsq¾îFTó†˜wuÚ—}R‹zŸåé{s”3z ŠZ»áJ0­½3»Ïì­Ö¦­z_ã"0ìNã¾-‚ìz«t )ù­8º.õ–í#…k6‘[ÎŒ†dÝ!”ðÀGŸ ägƒÅçEc!rærvªnÅÔ-% 9f‘Ÿ¸K©r—ì‘”¹˜òü—4Yr ÐᔀÙa«·Û­æ ]Œ•µ8Ò:ŽJ³êzYfªÐm!µžÙGæ¢&VJvÜúNCN›ØŸ‰+ Þ‡~´,Œ€~ƒ·}!3 ²ø}µål:Š©½°&sßÊnÜJŠ«M:³`Õ¥Ìjê Wv4³wÂÁa]ùä>ùŠŽÕ`Hlß_P²|Âèʳ¿¤{‹¦ÓÎõA26B÷.ZíáI!ˆ;ö^\”_¸w1˜¼€?æ‡ýô¤4ÙÓzG xèè‘Wˆ_Æõ©@Û`j‡‘¥Ø$Üì´’Êý®:‘ý”¥5`|yt¡ß|þ{½ßçj!¡ÏóûömÜ)ßåo‘BOHÓ7écs%›üS®p[ø-Á¹f!î­Y™T>'sUËEÚç#tüå‹"%›ûlÐù·dª¥Ém: $ú’ã#91*ù§ÁA¯ÎØÞŸ-ð:Cf–û:á4¹gÒî™x£CGpטûsðÚå$ëüØÇ:"Äc2·õ‡ß†¯#pUI¢“A@"tÌÄäÙ'ÃþPÌo³Ï½m†ñú‡ò})­—â äf“-EÚ „Žç{¥3KÏœŽÒGb¦¥YøºˆPôùÖ2!–áC84)ïTû¼Û›iä0ñ³³^ÎJl„éÐ&3 }B ÙT§O"Ë0óFÍEGröžu>ªßÖ¾[Ä-B‡¸ctúÎ{}œ·†0/ãO¯?ÑEÖà;ÇôËKB]ÊÓ«‘ç²Ãq븦¥reÌqÏþyÈKF¿í@«¨3¥¶ˆ²¯È›B_ûÞê.¨-8båkÒtR+KT߇K@ºTΆ=D´<¥‰»^âú[[B‡œLhä*òÚr˜^lÎoì!"!WÀåçj˜ËèB‚3ÇÄMã,·Îqã %¿A~©”á6ìyb¨)¾ùM‰}w¡uʳ÷:nŸ^q&  ¾1šUÿ1ÿæêíØ³tWŸÝËüü§Ëpõ›hËMôé FËÁ›×jÒm…ù)ÚTÈÁÿ(MOx=„¢§1”‘1§:ÎôýH`’×5×…‡ù]´^æIYQ™Á 8”Îù+µ ѱíÒ‚öÖzO·’3\1ðð[ÄGåXüÍ’f¤Œ@ ¹Ùt,òu!‹½0–‘nÛl¨ŠÁçšC;CŒ–Ës¥i€Y*UZ¤6“c´‚Yb>ÅS¥£ŸŽ³Þ]æjظPƒå:´bŸÇ`l}Ñ•¸Ü Ú‚ýÜp' P³ƒ,™IJP×R ú*ÉÈ©8wBYâÏn;äÈ„šÍÒPrdcƒžVYv³\­žˆ•^ÅPŽã7yæ¯ìMFý,·?³K³r)Ýð®K„÷jÀ+_ké¬så&×Ã.œ|Ôk¨æòGª„W‹Í¯,‰žØÕ=é%:yqÙy¥´Ð7ܰÍ&¸Zâ2ö€ræàÊ£òµ½E»IR¼NBTP–$ÒC'ç€ü—¹Ë…Nyp&R|áÆT¼ÎÔ°£Åó[¡ÿjb¤ïÂ8uÕGSWè"ÿ0’oe-ÝKâ*‚É–³_UØ¢Ž ›Ãåb&1ißú»4Å%î.kñA:Å–×Ê®?:hÒ83aeÏè$®ÁçÏ#ή¡W†8¨]KþëÕ€âÉE>V¨ OK<$ÖåÄìb$…ꊿX¯Ú öEw‡Ü¾Ïé§#˺J!†âÓ¶Íìß  ‡ÁY«ï—|=©(Þþ%†ª8‡³ZtÊ1àüáÄýµ‡(y_ÿÉPJ¹P™—%ªô’c „¹˜AUí×òãCˆ6ûù˜ãÄφ|²ô¯Ú¡­Y6(€÷ARyYõí¥û땜[ "!\©‹ë‹JD³…ãòŽZ ™îw(%¿1ùîŸÆ-_"FCb¬%whŸ¡8w.Tb 0À)qB‹9§çX}@ú)ü¡¾ò±0ó¦ðË*íª–§)Ÿ5+xƒ/Ùiˆ×t · â;æúÏW£Ñfµ|Ì÷åV¦oO•cë›ÞwîNFTƒèf: üáÐ u'»Ú"µ°Ì_¥]¶¨Rç^L¾mŒ’]³Öáhßn®y³XÑîPAF“¢Õ*¾ XøˆˆÀ£Â ?(/"[Ä]7eQF•¸ÝÖÍ¥ÆòQÞç¸æQ8¢¿pÝ® òy_ö:Ç9ªÈØÐ«J=0£ûåN|RçK…l÷qí¸­oI¦&ÕT«áy>÷—S |N*ÇæÞz Ɇ(xWÝÕ!©V’¼y%hR :ØôÅEaÊx=ÌædIŒ¸6­­zÚS+ÆjÕ¼BúV–ƒ5üvJ=À;VzG?ÛüYq?òHÝróú*¼7úÓIœå°Ûåyoùé ¦[ç"¸09Sg‘=m.òy–š|Õ3‰ Œ‰x$Z|ƒÓkçªß g3“½î”R1DœöWñ&³2âdÅny¶¼&Ç©ø¨(zDG’BŸüö„”áE¸`ˆ¯Ñï`´i_D€«ó² ²[lÂåf¾)5D&xýô”'7STÞ}ñ¨ª§º"ße²~Þ^Ð1Q£Eê£,6‰®µ4@ß.ͱ!I$t»šmÀîÚg‹§ãG5Ckw]兀‹}ÙDŸ‘TÌC 4¡WA²ûEñ^•åü»ó¼v¨+ÅZµØÈ¶¶âŸ³« ÔÓÅN‚tÃÉj:­U+€üI ÊÉO…0’wg³ ÆZñH2Î;“þ3„öã~_CÑo yîã—ï™-ãøaî5XYrj”KžS£!fziÙV10ç¶by¿ô´œPŒ ±CcÞ ‰ùŽ·¨¿ÖþÄü.ód-Þ{IÆ ·NÎ'®A'ŽßÖHˆ-, ;ø•ËC} eè<«‚w9h=ŠM.ŸãÆð`DƈJLãYéø… ɹ”ÝFÅeûOGÞ¦ÐfÈoÆ5æÒª}¶‘hŽX΢&+ù1=üM󱋸†Z!O¤›Ws`oHÕüÀ}wÁ$-C­Í)Eu¦sߪï;Éø AŸT‘²ÖÅ’$\ëPŒÿn(,Zõ®×ä¨%LeŸÇ5ªÛÓwáªG&ßÊH$nR]ïPt&j€HÒd(´ ÒçÊ=ufîƒî4O‚‚ˆÙ‹Ë§´®·c¨Ivú„ªèèÔÒØ¸q9òÕØ´[{/0ŸrNKÄuFlµöýWêxø}xÎ<_–ŠË£-÷F^;¹«ù{¦+LW _ì4ŽwÌ—òsØrÉaô<ž6obB`Þ¤˜…;{éD..ˆ1IªÏ-TAßžßþ„âÄ(Ó;[ž’¤¦ùdÆG¯ç¨¤‰ê‹átñœlå µ…ÒC§£tš69ôBòm÷¢óÜ覚âxµ}m•òQá5³$ìI6ä¾têê÷Ñcìô: YJ¯w@ª§bÍoTò´¥&"™»›Bó/б_HwÛ·‚B«]ãÞîÝÖÏæ?GqXÙ<æ' ñqµ+áаÖºôš9¤Kå~˜ÉþÛoòD˜yÿ̓“³3ÛÉÇÇ9Öúûx˜£V­B2ÑrKW.Íîå fÝÉm‰§¹+ìm„Î+¥†uG4®„—©YÒ˜™°Dø¬ ¥WU:9D²u!Á‰9åcŠÀþñqŒ2)d5÷ÕØ¼r…F¼À©aôÒ|‚AÁ¡n‚8*·W¤7?tX›È‡È`an•v²vÖ²$ê²÷=üÈâºEW3ÍïI¼LÍîXšòïžœICÃ$ÔèVWê>t˜èßV v<Žr,mP<½Çâ¤nÊÁŸ˜‘<¤p<$e2y'ª¡Rh²[™ñ:%°syjôº¼ ü¸tT½sË™îŒ9FR» Z.{^_|ÐùNQ¡v  ò¹®›"Yý™Ðœ>í4À8š¹Z0zïBÛjü'±Cñ EV'ùäÔÜ+:º¢‘òÀ¨Ëqþ»#»»9·C'\³þEû?ÆÑ¥ Wuφ¾BX#ÞE“NL?-è8Ç|ÏÒÜhè “?ŸD¨œ< `±k s—ÄñÃP¶}`*åö¡ñ}Ö^yØ,‡Ñ½ Ÿh:ÂF:}3gF›ghÐS¹È‹J™äS—r%•™Á¡?öœwLvaå²Eå&|!.륆æ˜4i0óH*±mÀ-*,ö!÷ÓÅ­u­¤³AÞÏøÍûRál’(ÿ‡F-‰ÏÏûö»)‹\›Í•*X‰—] M¥ˆ…n^…56×ÅÒnçmoçô9ÑÙ‡qŒ9”è™çãöÆ9;:ŒÑk‹•$È|ÂÛ K«óq¿`|8¥µcßêl+ÍÈ™X@9Ç·(ïø w$˱1Œw<ƒ=çvPkâ‚Ë~µf:”‚ëÚ3L ïH$FõÔ$Ü™þĈ¶8'’¶!ñZk™ âZ[è‡ÆÄv“ƒ²¹îq;²mù.h‘ª/k‘¨íÈ3™žbܤªéG|Ÿú[æ4Bçd±Õ×6"ÒdLQXïºügðßÞR”Ö;Ö)b$ô²Ø¨ˆäÛ(9hË‘ð¼=P z½±peçKc‰1ÝW©åFzú‘+Æ å²‚©ÙóØoQfp? ÔZûPSMè~‘¦¸/tX-yC¨[©+væªYRìZ3¾;Ÿ‡Ç´tªÞçúÉ«™ÊÙÀ1?—ö­Ì‚ÔÓXÀ3ÿÐ÷°«ÓÖÆ€Uüȹå–j›:G:ëÀ„1qv‚–ã¡þšþ͵¢Ö¢Š+õ=Åù²U± Wßâ´¨j¡™Cd.Fø<ÞÆqŒ”«‹ˆ§_¤Ä%uM\6ÞÁ|áJøzøhùú%\í«‹Éõ³§ªÙQÁ>¢­ä—KÁ¸ Fçæþ÷FÕ)Ú{#) ÏÈŽ”ñ\ËtûÏÓ3‹±«+‹z>¬ó.Õ‹Ó•óú¸#­ J†Iâùñs4n)Àø˜gíâ–²ÃÉê‘XÒbðPø?ñÐì&׈PäÉ^Yt5{NÅŽ$¶©°œOÉDöNŒqCr¹³HÅó&•rù%m9ð >l=Põ„BŸ@#SC&ÄÈú?>26¾/QΑú%¢_yCé!¸¨MŽã ¸wz¦ü>ÞDjý½¿ð™ÖhŸu tLæ)œÇÁ-ËÆM=©‘ÉEO¥÷ÒV«–[ÓsHƧ÷‚é{e6èòô4#•‡´f;Ü FJd£ð„! a˜è[Þ4ã³gdEÚ=Jg¿øÇ0z;ˆ¬½®Ê±áÓæG„…ÎeÎFîlkjÒ–\_dç`·5—õó:È𶟰¯`µtÊïïÛ3¶Î·™lß’±¨kÈ´FÛ¾mûd{-“‹~Eð5§ÐÇrÇy{¢§qhËÐsNßûòùõwͺðuëdƒ->êK+#ñtLA^aÔãƒ#Tò ¤ªþÍ¡,`í‘…<¤1iÈ 5æPTØÛËŠ›š “bØŸõ=™~WQ³ñféqÔä9é×Àý;êf©hø‹QÃ6åuÏi+>ª|/?ísÆ„úãK¼SÕ‡· ±¸ZÚ>Ñèó è-ÉT;> n Ç~¨ìú£ã°§ðmÝoÁ]ÆÂv9ÓAÊYD­w`7|7w6O ©V¢Ùo9a–ê·¦}s`X¿¥JËj}ÜE¥y8˜÷³¬¨9Ax+Oô€Øµ üØhƒê„“-­uÔ`š&x•²ïÍŸ ýp˜íúù¥îA§[Db•"›9á퓘¬I5ÜÄ`†Ê!žè &•CÙø#  £@§\5dÆíÆ’6fÕð ˹YØœÏtl¼¼¸…P‹GE¼»öZèÇb7´xt\a3…ZP´ô!K¿–8ƒµCb%‹‹œ>»eÍ¢"ëYõrèT4z²¸ljC¦V"Gÿí€k}J¸H°ò_=õ1T2Ñ’k.߆—$«ÙѺÃuKõ$A;“–T›á|¼è¨üL'œ¸Âú§ VM €hé™(P ‘±y± °Ñƒ_‹‰ÈÃ'«ë{ܯ¡²§¢ÊÝÿl0:ŠÿMÚ–~)œe3÷6M•³÷¢}{AEPÓwug´h_X¦¬GNm‰È‡®¯ÿÂ5 AÂÿdªUÔðã!—Þ½.É2©ÚZ†)(=÷œDý”šj-!s9´¤5DÔ …OüÄö ¼KÉ’z¥S˧Sÿ,×amá¦3¡~…'D¤”~d*óµ`˜ýO.TöÍ ‡Í7O³ fèšQk¯cg×Êb·K:—ù9ú ¬QpXÆë8à ‘‡°:[køVw$Ë”Œj,OÔèåpUôu_šœ0hí KÃKÓyª,ù„Ðh±ÔÛŒåuΫ WÇN²rŒMyøàËRÁúë&<ƒ*OhòÉà·Ã_ó;8MFé2gÍ}ýÙƒ§Ÿ†˜rØ—ìóeæÚån€£Ô!t’(›ˆ5̬Š^ÕÙóŽªI§V}ü–tʵh¯D”Jy?c@ùæó7­ŒK¸Ôú°·ã£Çªù‹h Á _4ˆ8žÄQfû7$|9ôÀT–)„çcƒìê€7õRñsrl_ØNI3É=:§HDŠ"Ò¦v²rÁÐkŒ:¤ 3øv]€bPÕh,þOÙb‡¨“ìšÃ PÚ·Š •¼ÇZ˜œçÇ6Òf²£L»zôJ´&ð#òPî`Jn— ö{Å­Ð"“6ÞRöàU €à)îjíVh˜Þ !Ö‹u¢ÆY·#NÌ °•3ßÜ¿íÓsµœRàN{9'rHSj L›ÒÁ|Ç×ÚƒÏù½ÑÇhMλsêü)Ù-èüëPuµÐ¸XFêúü6§­)l2^ve}U¼- #Å&[ŠèšÎ¬Ö‹,Ñ› Ô¬ž‡RÔ‚ŒÄ[e-yNsm –Ë63ohÿNÔ\Tf¢Nh.™˜Õ8=h§ÜŸ(±µ2x¦‰«Ï"÷_Nõ!¤‰åãóde»¸¤ù”3Z{Æ =ô—sFËs0uUì‡ò÷¯l¿õÐ=ç–cÍMuÁ‘™°Ž|`ê2’J4o[ó&›VyQû4¥ —bÐ+9<;¾DÆ#ZW¯£Ÿ…7Ž{½¡ º`û(¹ó¶ ·AÁgFI&ŠJú­c w­ËÕŽÇH¤Úeã`Ï8òròøÃnü3)ÁÞS•aU-Sr’|õ’ÞROìYt u?ÞIÕc×·6ç‚)××Ö}×ï*¶¬4â*·q`®5Jœ£Áð3߈7eOYÊB‰ªˆžë›8ê›Õ«tŒ=“"|fXë\LLhM6x™tkË-×”¢{¶q1óù>1+³¬a¤«cš²K+˜w§'Sn^r´”}¶ÉïmgG!Ǭn Õeš©äß÷c~H2sU³ûì<3Zh¹û=е?%ª-hƒ@˜@…yМ'Ák|¿Ú3Ñ âŠ$í`AÓÂ6™@ƒ¬¾sµÇ‡/Â6qн çQl£©Ñ†Q‚“†›cµ4ý¨$ººÏ®ó3ý5–¢º²/¢"ás:'_ºÿlvƒc!+|”>ÔT¶±f8÷´Û芑BÝ>Š´ÿí4œ­>Ž|U¤’3Å‚pO¯a,!"±ÉGí»ËÈU{>Åh+–ëB•OÏØßdfDœ´! šôéIïä鉗}Ñôþo›:£"¶^ŸOÈbî™}̼ëj¨{qz×·±Q«Zi¬Ô‡aw¤c:Òp…È7˜ƒmcö[³‹M¡_%ã?”“¹’6HŒªzmúåмêYð Sr`!Az:fj”Õ—NÚ‡`!ªo¢×fþh¥ $mçº/S® gV£3'¶0köîE}ÉË-¡ûï&¨Ê¯»ªÅ숆Ÿ¥Ž„üx(e7ˆ*-ßšIì£_h¥CY„W8?—–XCšbŸ¸ïz"ErÊÖ«ß/øã*H)KðªïÑ‹XWÉ!23ÏPrxJ]øRuá¹²Y€ „Ñu~÷Q4·ãö6óìµoÞü?,yd5è¾ dÔ¢Ÿ”ßà´~ FÀ꬚\£„_íX†ÙÅ¡X›Ma» Ñþ ÝÍ2ä;$Æçô£ÙV­‘† "l’ågä†u¬@7%ºô_€F(Lå8HÉ®xúàk»ž0s¯É ÕE2Y2D“õÃx“+·[Eɶ7S*PÖæ2ʰžGJ=ök'Ön%S•¡¯ÀÊë ÷šÄåÖ$³…ïäçÍ–«B!¿¢PwÏ…4Z•Ï0íˆ5<ÄÐ÷²ï³X¥¼ø>O´¬¦¾h¤ÌîMp HT¦XuÄö’dŒ!í. pÁ !Ç[ËP {qš*Š'J•Ÿ1NÇU]•ŠÝ—ã|ÔV([ykï_éý)¨Ñ|„Þ |à<‡CP¥äÛ#Û–Eµ8 :ÔR¯) è¶±ÅÕ•å[ }n»ˆÌ8[6ÌÙ%„ªØíKŽÓ A/Ñ81È(Å8‘1þé= ×âò[>`ÎHÝ´Íl·YH —Ž›Iªè‹‹$÷þ~¼ÍTE©’‹µvd!{ý¨•ã 4Vü •ºî„¦­]¢>B݉uÚ32‰C4õô¦‹ËËÈfY,þ] WY*š°‡ã)¤H¶jnø,¾Y=‹Æ¡¿„Ü&wðð LU4ÎMfAÙa¨‚E_€ÍÞ8ãÐÕþ»«éâý3ê.âá®OK¯7­4Ê’,(9'ctÊ^Ìݘ¢©;”¡'el§7û^ÅØ£RˆÉÝZ˜)?:b{ÓúA‘ççµÈLªmßhg+l³‚`;Õö©"ÉkûgåQ6ä’[ê:›,“«ËïN4:µ¦°¸o•¼d±Éƒ ±.,»Å¢Šåó0¾‡>¿½Ûl°²Ö§•Åd2vµ ˜áËsóóO"•î¤M“J4fßÊê (œ.ÛÏT02!caž]Yk€†Í´>ÅRºÅ%#Ó‘½B  ­;»Œó¦¹œ%¦G)êIlºM ¡ëmr>·ñ“ ãäBƒæ,_ܵñ„V‹ü’íR}#ë–çñ@`vÂ'H’ÊåÈCj‰D>“çGu× ¯Ý¸O/›&t^xš`ꀺ+K²Žâ]ݬôÁá%à…¢=Ðå#œ°äG— t3åÔ­b•%;AþÝ÷Ýî9,ƒ,¶ç}mbå¯/ä[ÊÄØ"ðP©ð¦ù=yýgÈfÏLR©öÒº*2&â5~J ì ¦÷êQ*¤\SŠwj- QQXktµòí*,ùV+ç_鼌ž¹¯NÇ®ÐÛü"=òSUD”m= ·Œ?Ú—¡?lñK—Ô±¿ÀÑwV&ÏßĘ*á~;ù@sC¹ô驇ìá37`ˆ@zQ¢8÷a)ßGË2´sÊŠ?KTXg~F9ÓÓÒÚÞöª÷å =#/q Wð84ÁFPn^ïOYÁd)‡' {·é3Nůº5ÃØ´\ vÈßF°Ìðãz¡øŽ}ÔUµ ˜°ªbtÀ¥9;—ò5·£)Ÿñµ×ÅìýpâÓ‡ª¹ÞMqQ/‘®«½y3zàâMÁ¾ Ák"-|EÝÿ³%.4E«jq8]© ‹ˆ<¸íI*)ç%ܤ!Lu£µ1;;:urºïZ&à|ÜÇëoUH…TšövÄê¹mÇSŒ«.³ŸZß=A’U[æ½b¦îùš½ZFnß…8o×v=†îû¬H¶iˆaÅž4‡ø^eÏëë5¢¤sògãï÷¬m8Ó¬q)Ù´¤Œ,,îȤáìþ£—áïÎ;šây‰òÊéLw€ÍÝ2ð§|çF…3XWGýêÓôÓ!·]T¢UOßIæ¡3  ÝÝÚIž¾(¦Ø3K,ÎvWSLÆÁpe1q§¾!“ »ÍàD€ uJãRÍ©ÆùÉ„æ±`Õk;ÌÏ£»wÖ°¡”ï°³ª,ç~DR ^Ò?ÖÛžMÌ2äÝÍqñÆ`ùpΟ©äµ2åÌ£T|ú*œÙ_OJõÔ µô†$ –Ñ;ÐÛ゘‡½OwÌÖeSnQôu#¼õýØ-RÛѸòç'†Rç¬jc` …I-Q­FÀZ®÷çü`ÂêmEJêÀ(+¯t{mJÝ(GˆNlŒ%Õ)ÞüÙý­èsn$¯1ªæ¦QÍÑ`ʽ$»5›TNÒ|jÀn$NŸí$ËœÍ.ãÝ]®/šÖ7“ÙÒG•y#ú÷!ê‘ ¹'E—•JgÞþÈ%ì}jò'(GÇboóD†HPyŠgóåÚM:ÑçTà$û¦*Â: "¡5cÜD=·vËc¡ Áx ꟿÉÊ·pL^ñ Úûr󆦹 û³«Œ’%ŸR·¯ 1}HÔ’æFûrÑì{†SسÙ—/±róÂ;éíà5‘¯Þt™øC\V ÇØ\ÑåA>çDòuÞ;.™a¦ÆÊ‹ó79»ú>õõyB ¡(\Ùö'ɾûB3 ±”ý½Hçav÷¢¤Ô¤¸ôŒÈñ#äKßø¦È–C‚gª´¢cëeá·O¨­2ß2竘`…¥r¢FÑyP*×´Öò[Bšž¥ßÝ)/VxÈšáfá7©ž~“Ñ’ ?d\âöôE!¾¼/¡ÙÉúºàz‚š"IÆ1V‰ ãÙ(¯É·õÉâ]Þ&]Ý씺øR¬zÇ3å¥  <M9!¬‡3Œ1mï rmåíJ}V-ñÉúŒaQßÑ€0JlŠ%škùl É‘–¢Ik¢rÎ¥ÎGZ*øO¾’xÇ.==Vnñr_—MJ×=Üà4 ËËâCš=êp€GGÅÇ}²/Mp ‡D½Kˆ,(Ÿ6çÚ>ä-ÝÝdN2ÝúouýübÒ:ÃÌ6·#uÏ•kØš|ÆÔ—$›]§ùtš¢5îí»º;[wè‚Ù"mÁÕ©ÙÏ2Äëo«Q"9Ðí((zÄë4^#Àøª§¿<º¹íFµ´tŸâh¢[®çWL epjT:¡@–޵šc7ëùµî“T·L+™Ë½ÿÓÁŒœ*ó×$,‡-Ûƒgí­·´¬ºI©>&]Ô+CÖÞ {¹ÜYu¬“>`— ¾®ÉD¯wbNZ²?Pv „þgBPO±³•åLø°Õ s0é®ìœBƒÙ嘸ë[ÇÖ§<Þ§â!Ä(øÉCÔç¸ÖªY­±˜ {Ÿâ¹bÅ´‚ßêïG0|.ê[Ô`EEërÒ”¶IŽ»œ¦€¦$ Qžïé7­Æ>HÝrGS1$Žê2]\¼3ûâ>ši߯¾nÛÒ‚‡ukXnü«\–*Í»/Íá){´Ö!?–Ô9 ÕË!G±R®ÏßRÅ;PgQÎ?Xßý»•—&Éâæ¼a•,¢©v.]761üÑ€W|ÁgAÜ?9Üan®­‰mªÎ( ß±ºÄ¦«ròøMŸžÈJHR̘}^ÁÄ­½ÿ_GͧÓ,íá;Ûy¦jVøÿx<Þ Z—wö¬qݳêp·“„Æ4вd[@ymÙaübõ7¬0'Þa‹s¤ýF£Åðz¾[ös¸K 褫Et¸Nù ·ò81¥¥Â,:‡?¬éS¾J­‹þç*¯’3 ä(¾1¢† œ¿Ù@éTé†Éiñܤ¯ŽÜè"Õ‹HïÑZ‚à\pžTƱ})W%6ÑóÓ¬ P†\6Çj¿äj‡Ä—Ùà öþ–zx6¤2K5ûËY‘0²ù7:R‰oº8cÝ6¬éìçê øšùC]O/™(4+÷îãŸÒ®­Jàvä?æBs{ºL%ƒ—ÍÉÓ¤ÀTt«Ž æyÇ«É2¤Çü^ •Šíá:±¡Ïà^kû…í¦þ?³@æ—GÙŠ§=ý|d¶PÝX¨Â]&fƒœCHè‡Öl¢sRóר¢yœãy!¦Jð®¢MÑ*c™aW™Ë:MÌÇcýdz-‹ÞS<_€£].;¤¼Ýf˜«±EQúNÅ}¸ÄèëúøYUÈü0ûP0¦mŽÊA«x`ç@²D<ÇŸ… g]Bü|ÑugÇ}¹a£(ïêb.ôÀž7JHúX4ê,ÜñHåÖ®åC©øŠ¬Ã?µé8í“DÙÅ»öÄÃe~ŠY'3sqP‘r¡« &ŠV”¤?߄܌ÂQ,¸j[…@(z#˜†4 NíÚøãâ´!Ä÷PC-«³\J¤âí¦â|f¶×‰¥“y.&Q;ºÇ<æ°çXšT•¸…£ûºUañ'ª™÷̷Ѥˆ+G—Ή9@(»ÿÍ\ýú$ëÁåû>¾ËvùŠíyU+ÀÒÀGYÅWó*2)ã¿âŠ»!žŽkät}íØÊœ…²ÌVÂ&Æ›¬üŽÓb/O›vÅöNâ¥ËBo~]õkf 1H7£}âÄõ¾Ö ÒÍÓÔ†l¡3ÐU‘‡—_6+¿¯íÖç\åóÑ¡GeÓhè5å+Ëôj…/Ìågmµ›:@/]rœÆÛM`ƒ#‹ÃôõR0\À”8¶@Nª @hûÆÈ¾ïÂpïOÌrÙée@t¶Ïie,ßžð¡ÖÉ"ŸGЯäíU¨¶ïŒH¾»Ò0Û£i«9 t`…¤àòÐz [‹GÜKgØÎ¹¨W8¡U ©´ÂËT>CXIÌÝ{àeÎïZhR·µ óH"n!© E¶vƒr_÷ñžœî±«áÓÈ¥mªP ]4ƒè>Þ °û‹¿é€³GKYÃ:ŽÊŒô3Îé¾Z6fÆ„Ñ m×Ò­™Ÿê†qø.Hº½O JÔ’á<÷kÔÕ]mx«­á²„ë‚…`&oKŽ$«ÜmóVÁA-¼ˆ¤÷\JãΛ?7pïUüÿ—˜uv*UçÊ “ \ ŽY¨çÙò>Oa"-ü¾ øYJ†ÊÓëýH¨žø²eOÝA¼íéAæVÉW“EBVvµÐS0µ$+sö¶U1àœ µNz0¾ä¡F'·* Ä´¥yù˜‘÷š1‰ZwO90ü²@zÛÛÓ'´œýɽ9sD…\OR®eÿUüê÷v»ÙÕÖ9nÈù2ðw4m¾;·óAÔ=ŒÑt±Š§L%©éH•ÿ…õ—I}:5T ›$A•'ň˜Eñ?m$äp•—çõ Ô·F þ,á|O®•Escϸ8÷E;žÄ`k¿bÌ¢jøâH wᾌXÙ±¥}—ÃtÄ­SSl'QˆVCi”êHKØ©hqOʘÏ{©Ýð‹ºÏ~åáe®ç<µ3ºpp Ð2¿´ú?;UXÐP‘}8£Bû"?™–‘¼ÍŽOÈ|ÑI,0‘Y PÊ3ȼ>0p ´èÛ‰[Ì^Ö,Þô']ÑE«$ÐÏ ÍÆ®Ejωíןô€×¯>à]q7¼wKfÔ—©Wp0X¾žJ͘7a`¦­~"P¾|Áh…®ìê¼ç‰·EÓ ð‚¾C2—)+N[˜/lO‘;=Ü;³®vOü–›±ÖGrü0¢qqë£ã‘Ù «° ËC§|S4¥• 4“Ál.¦õè gƒÊGÑÝò8eU²M½Äk‹4 æK!Y§â¸P†Œ½ˆ3 žŠGhfÿçBÏÁå87Ç—áΔ¬V#bßZÒ˜k>šåRíÈ·c´.—š@gx¼ŸË‹–u'ݽoe+Uös›q4ÛÝñ™Nfµ–ºªûb‰PøE\±+8bá ñYÇ[7Ôr&ˆº}q?{·ñâȧeƒÂÆÿ´©_RzH–¤zãõHwœ~ •ëfü š €8N⯬×ÎA‰Ôþȹ5£dBPÎéúqó«bF¯Š°”´’ýe. !,DGh |š.ëQzD²ŠBî?µÍYøIó님“ÆA\q ä[ãŽÕ4²!Ò±œ Ã·\_7e( )h1OÂNñÑÂhcn(Š~“êãÒ£‡Ûl'‚'µÃû.èæñmxyªnQ>vÖþ±iî.ãî Š:†º&§ôíy> Œ° "xª›ƒ~´çÆ |ž‹¥}÷dI>'O BÀ¡«²‚^ÀœûAys‡¢ù*iÊÓcHLT{>]×á n…¯Ü¢†Ç!Àž×f1_É·[My‚Åg”/1¨±:h}Û!lÃÎ-JMeÐBŠðÍ5µ~v6L›eí<ævýöÕ %ž¶™jŸ+Ré*ƒžÝ)Èl 31ŒÕ#}GðÔm?AѺï–Õ›4Ô†)]Uä}J(AÌ•ŸÀŽ©ÈœÀ´dÈ¥_}5%”;|*”FLø¹°ô¨=í™­õøÐuj€…8ûܬ³?Uù×Bm|¤lŘXSüÚ*¾7KXæcîøÉo¹Û,¸B6T~™ëÔÙöµ¶ô×á ¡­£ÿy…ê É»–¬0{­•'Ñ™g?¶ab]jpƒï‘°~H Š>•5yw¢êÔüD'•ØUk ¤âÌJ©°_ƒ¢ðÝÛÕI\C1Œ6€€GQ'Œ;Ê%2Æ—(‡œek Î=ËÚ`¼éã— ìIøL®ÄÔí èk·!ÈÏÛt̤4 X«áó˜`sUÀ‘µdòâtärW6é€eòŽEÙb\¯VvC»÷ߟí¹t]<(Ó?¤%&4òÚkŸÈPv¤¬¤ÿ4HSAÕw)œj£Ã•;N|®½ž Ö}>(ë)®¼— N³2‰9Q¯rSþæ½Øcíñ†æ»MC%TÖ³Ÿ7l\°à,m=Ö®tæûÍ|‚$ܵÂ1#å™êÒÁ1¼{O)$"JÎN§ðïÞíKüQì }-×5‰ãj¡ÉÜ>™ã€Ò;™-uDׇƺi©E7ûšüsÆZ Ÿ ³1ÏPõöÃÇR Ím;ó¦ñ¤ªççø©ˆ©oN*/gãô :  3ôÏ0ÂÃü÷âÁ‰÷9 ƒ“O—™ТÇLKßä©ÔèKäGì·8Ÿo¹g¤_œ8…†»þ£²ðŸ:ê!Øæô OÝöq“‹£»NLŒÈ'|Ÿ–MYwÞÁñ8— B™d˧&¶g`ô`wRx nQ-;õÅ&N§Ä!ÒÝj€  8Ü~,ƒ}ùC™-§ŽWWD®cÝòJN¹?·Ùgcl[ÞÅ iö°¹ÑëY!-NÒ©5¾ŸûÂ;YJý°Ó?}6º×hüÇð÷’É¡µœüÕÞ5y~‰ÁÆ ÂÅ’¨c†ÎI­M¸ŠFoéî4®ì¥¤Á­¸¤C+Ö—ÜÀþ=¼ëñó½ôÛúݨ3e1òˆn•Ûž£é‚¤a"8GIrÚŸ<Äúöê2’ûŠ”àÝb&ñµ{\}íµ&’\¿ô=æiu #|À7 @÷@!5·[¹/ì¢ùÞ„ô„tÐ^?JœQ ™½Ø Tdè…×¥ë‡ã·Z')µæœ[K9iüs]é†uû "/àx<ÍY+Ä›ÆÑƬdH¨o¾}©.]¤sPkx˜ž7ßõ»–¤xÖƒiÁz‹-¦)n£ÒMS³ˆwYK$}Ç饫ô%C`‹HdcQÇ„éçØ=-lk*Áþ4JX2Ô¦«*l%vg•Æ~jBœô)øNMR}h‡…ÀdïoÁû8ùäÁ¦×J˜"Ô•“ÀÒüD£;]¹bP·ºšáve^%Dô?ÿÜ—€¿/yU¯sôuù¦EŽ+»YéTþ `úØÜ:ÁVã…0aš7ù±h¼S5f›ZE¨‰‚eÒkóþF™Œc†(¯ h©HÛ˜aýË(¢,LáLººs€ê;ׂVÌíW¸…êW¥Ç×Y´ï=îs±œúk´p 1Z%˜¼81ê\ endstream endobj 672 0 obj << /Type /FontDescriptor /FontName /CYCRBE+CMTT10 /Flags 4 /FontBBox [-4 -233 537 696] /Ascent 611 /CapHeight 611 /Descent -222 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet (/A/B/C/D/E/F/G/H/I/K/L/M/N/O/P/R/S/T/U/V/W/X/a/ampersand/asciicircum/asterisk/b/bar/braceleft/braceright/bracketleft/bracketright/c/colon/comma/d/dollar/e/eight/equal/exclam/f/five/four/g/greater/h/hyphen/i/j/k/l/less/m/n/nine/numbersign/o/one/p/parenleft/parenright/period/plus/q/question/quotedbl/r/s/semicolon/seven/six/slash/t/three/two/u/underscore/v/w/x/y/z/zero) /FontFile 671 0 R >> endobj 673 0 obj << /Length1 1464 /Length2 1785 /Length3 0 /Length 2711 /Filter /FlateDecode >> stream xÚT 8T{W}ݹ®ÐBå_˜†Æ¬ˆ1*{v1u…º÷˜93s2Îgf WSh*·}´ªn=-"YZ.Ý".‘%mRŠ”hêF¥ïÌDÛ÷=Ï÷=ó¥>ÿ6ÏÃRéð¸Žåht¹wµFÿçG>ŸÌM÷âö½bXsËãÂö5}ƺè3þÝFJºæ¼:+»¶ñ£…×[üì"tª: /y~êÑœ«ÇŽ³Ú®ÏÒð»f¨íEћӌoyêçž}ˆ³Šô7†QÎs8ødÔ/õåÖ¾94Ëzlö>ÿ”Ȳži“ëšnΫ§Ø±UÌ4S§¸çá|« äÀæÍ‹œ¼‘k[{ûo-éß/½;À¯ ¨­Úø±%½¯{­/T·î{wr=éáÈØ™ a·Õ†Èrrîì§GÙçuýy:¦¡o×duÒxߺ‰]dÁ¶ÝMé ÞøTûÌP¥ûÚ_¸«O†›1Ë ç¼T^|à¹-s®MÉ«»öï°W F~GM¿°s·ÒqSKO£ê˜¯ùånÉÊEÇlKNùíÎ6͈ù…ê5O Ðõoæ.¥º_¨˜?ESF}Û"ÿL@§æ§ÒŒîS‚LŠúw?ÌËŽdº7¦ÀK‘;<ôZNÛú±Ùå˜&ƒ^Õ§qÙÇäM9­ýÅŽ¦k3ó¬=l™aÃäà¯V¨…;Õ †©7ù9÷\Ÿs¢ÞLË>s¸áÇküûfOJƒ{Û ?hÏÇ_ßy¬Ðo²Úë¦PY§×ãÅ©AÒ4§Ý>´,QAÓÓPe/‚¤—sí…}OËœ÷ä›>§}' ¬êðÄšî¥fæ´œtKJ¸¼ãuÀ“ )ãºÎmîà÷hj×<·/#t½ï²´âá¾´«ÊÇÛ–uï°Ø\Sºûœ|Ÿät0¿¢ýyIˆ^S[ûr¿Ð«À4޵øÜ­+õÁm~m“ê“pÒ¦³ÅGí^<ùxñ)çvbh–•;;âJ·2;VoJøOÈ¢ýÔ´zR¾'Õ»û¯MzcÝ#‚Z¼K~yþ‡L­6cÛ¼q2»F°ý“5ÇÛÏïœÿÖè>9$²(GœextØvaÄò»‹ƒ,‹š‚ G™yÛ¢ÊÏá¯H?ºvTÃþüƒ•X(†gš +ü¸Šl®“äÈ-hN|­Ïøì[òîMB¢Êïœ|½eúðGõ›&3÷–µÄ^â­ß0g×½ dëšSßßà¹[‘kÞÑm2¼`wt»¡eèÑÆEE)‡ÞÖd¥¯Â/\ôñS:¯W†H—Çt̬VfXͬH=’æ)^']ˆœU‘í•U¢¨m¶sÿPZÓ:Ý¿6Ä­“òÛù‚EÖé8'zl')õü_Ư7^šý< *°üúÁã(ÍžåÑŸ‹á›EiU­¿sz¨7·N§ÊÌ?6¨/ÍþŠzlâï»=žbV&ã^Š^ÔqjÆ=Ý>3%pÅUŸ±é›Í¿tu˜û¿[¶]µ«ÒæµãY#³DU´™åÁõ[9÷w1ëkϪxî1Ʊ®çFkzTe”·¥Û&UFeœÙ¿¢6E¿$»ÙëôÎ2žoQà¿ÜCßEÒ.ĨX/ýªg8~¸]·ÝuïÓwUzqÜʰ2Cî¥÷œÖUk¦)ØÏÊN[P{ªÐ†%Û×çYþú冪b¿{¥ç ]ŠèÂÕgíZÈF^Ÿ``n˜ìbº¸ÜØX4뾺µÒ®9°ÖhJ~€›IDçäqŽí'âìþö›’å2ÉR87Û.a?û^b­[ñ8Zgqô\CäNÑ(QdY?oÖÈ»7|÷ âMaKñÜ>y¹ï_%rò•è_•Ö™–w=Ù~¯õ'Ù|·ÎëÇ6¡Gš-&n½°ƒ<ÑÏvb¯úÕêGaÜî“„ùeÕ·«ý–­Ðs/mž(=¾$»iüËÓkWQ kÌ]+ÒmglÚÒáÏ>œÙy9Õ¸j; ò¨×_€V:è7ÿÙãi=ÆÈíâáõÕf¥úغÖÚ f1•©¤#µ#*üq¥ª¸l[¼bLÞµ:Hø wlkÉÙË?©.tØðþTVAßú\È&ÐØTsóºº?f§š+æ†è{¬ô)ñf5ÎlµYN¡§ÿ}ÚþÙ2ò¦ ÄåmKK C^q2«øáÖ? 6sv½—Gнãó2u±(ØÙõrŽùÕi6/ÞÞUeLÜ[¾´:iå–€­%“­ÏDçó–F tj+’¢wÈls/~F;ã-VÏÈz'ò;Ÿ9Oþ@ºÚ5[Œ®+”î[бâãò[^: endstream endobj 674 0 obj << /Type /FontDescriptor /FontName /MROFTN+CMTT12 /Flags 4 /FontBBox [-1 -234 524 695] /Ascent 611 /CapHeight 611 /Descent -222 /ItalicAngle 0 /StemV 65 /XHeight 431 /CharSet (/B/N/e/l/o/t) /FontFile 673 0 R >> endobj 675 0 obj << /Length1 2058 /Length2 7279 /Length3 0 /Length 8506 /Filter /FlateDecode >> stream xÚµTÓí6N£”t*N¤ÙhiAºeŒ#6`c€t‰€€ !!]Ò)"”4‚Hw ‚Â;õyÔç÷ÿŸó¾gçl»>}Ý÷õù~ÙniëòÊY#¬ J8ŠÄÜÓÔÓ‚|@ › åýÇLÄfuEÂpñ¿î¹BÁ(ŒMŒÂÄi"à57GH‰Š ðî¿Wq€ ³hòÔp(’ˆíÂÙÓfk‡Â´ù÷/€ ݽ+Êó3 çu…AÀp€&euÂt„€º ŠòüO I;ÊYœŸßÝÝì„äC¸ÚJsòÜa(;€ uEC­?¿˜ñ±ôì`È_v]„ Êì ` Ž0ŽÄd¸Á­¡®Ls€®ª@Ë ÿ¬ñ+€ðÏÙ@| ßåþÉþQÿ™ †@NÎ`¸' n °9BZJ|( ·þvD"0ù`4æ¶Âüœ P’{cþC q…9£|H˜ãŠü?Ê`NYn}áä…£D?æS€¹B!˜c÷äÿu³p„;Üë`ƒ[Ûü aíæÌ¯‡¹¸AUþ Á˜ˆþØl¡(€0 .¨ÄŽÿGy=OgèO'è‡ÃÀÇËá °Á€úÀl ˜"/$  \Ý >^;þ‹ˆ@ €5 ‚XAmap¢?Õ1f¨Í/Œ¹|W˜ÀˆÑüñùýÏ#/kÜÑóOøÏûå—×56Ô4äþÅø·O^áðâð  „…„"wï|þ[ä7ý©ÿ´jƒaÿŒüSOnƒÜýÅstÿ²@ÿ# ކðß÷%C„oB0_ ÿgùÿLùÿSý*ÿ7áÿï@JnŽŽ?Ý?ýÿ7Ø æèùOFÈn(ÌRh"0«ÿßPCè¯EÖ„ZÃÜœþ׫Šc–CnëøûaH%˜ÔZ†‚Øý”Ë¿—€©îƒCµHØ' €þ³mÌÓ‰¹ªŸ.(f™þÛQAXÿØ:aØÕìIĈK@Xଧ5Ôã§®ü|p “À°óØ \‰~\¨ˆ0€_î‡éÁëðßûƒÄü Ð]¿âo$ ð+ýA~•?HÀ¯ú‰a|:€_ïÂÌ¢ÿÝÅtÿF‚˜î`'gŒî~ Žà”X´êÙj<>fרÛõ¹Ÿ:QIÿYù=Œu¾RÜ´Z’iöLÄ…àX™1þÌ¥œd ¯‚MÑW62Âa¢šyÿ´—`{ð"øÄf¬Þåb: ÐFŸf[¹^{?æ;н”Ôõ ô(ªI$p_šóÚJcp‹ÙyâµÂêDvÅŸ n†{«ÎtC¢‰X×R(Þs"ê2Lâ颉pÊUc…4¸ ’«ë¹’$c_¾¼f¸Ù&ˆ•à”Õ“êa>„íŸ÷yïñb ÒãáÆ¡‡¾ð|\ ùhŽ>Dq£Œµ’Ú†zçÛCž5šZènmÜí¼9\š¥ØhP—E˜kFÅ8ƒÐZÉÑÎ`U~YY÷øêz(u¦>è”=”sO¤k”i‚Íoé{ݲNdš Äû$I,`,ö•gÊí*Þ@îç«€H¨¾ÜÊš½_£îX]Ã[‘Ö/¦ëç{›e’kÓ¬d1ÌÏb‚8ÕsÉÝ,‘›À^Á¥Ý™1ûOw(qf˜…ˆ9%Àã–BacH¨pO{§Å…@¯mÚÓÏh-ÿÃ9R“rŽÏ›Y¦œàøeŸ³76ª’M9³NRF‰zK@j¶§_Ì YvdJ¬}õœn:Qª(KMiP…ãq”®œîšõ«ñé!‹By‰õ¥¨Y³¼¸>?`ÙôzÖaB‹®%£×‰?ïéh©‡MS}€œ6º­=q³Ö)÷DqúŸX•¥·¥½˜cžÞ`¯z{ð1x³åÍȇèê”ð=ÓùW§Ç6ÅW{©ÃûÀ‹“…Gb49Ä¢ü  s|¿bíöÑzÉ€Ð^kQ%¾+ؼK+Ù<ä¢3wó¿Žöe4”h´©‘ä~R”ÞHÃIP.~ìG$TÆ{|i+MEè᜼¦”oOS^y³§i¯ ðäa²ÝV“ðs»Ö4K+_‚úTä˜ì1O7_ÂÒˆw«ñÃU:cã½n6£Æ›O¦bÌé>-R´(’¨Œdݪ<8éj™Ïqðý&‚f_K=³J«$hZ™³´äTK¶Î¶× bòïg½[£ÿî•áÛëÚ®à³æô‰l¦©Æö+¾Oæ×åïûú™L?ŠLOIÈÄÎÖykÙÞU"ÇgnAí9}0ÂRÇUhP[š ›Ñ¢Yreº°0–~ÇL;ú*¡_ÔmØä¦ø|YVSËa¾¹[V‡ŽŠ¶Y'lÒ%Õ ¶uFæ,?Èw¦4P |¸¦{QÍ!k±(tâ4|8jåϺ$&ºsÇŸ$“|Ó‹Ñê*e±8½j2ÇÇö‰nS­¯ÛoßP"à}À¢yuê™åmEÌòþâT…-kQÀW°øt ·Ì÷GVÓŸó£Âhc(f|ºú9§?BVÝ4ꆓNx¶b=(‹î,ù|0Gx7A$kOÕ“ñ´ù>ÄëZuI\e•ªÒMÈ!%W!}jùòEI*¿‚nš%ׇcî>²tÆ£(ä­nôaFâ ¸œ€þJEaxúMóÄõ$w…§ÚgÌ0ÿLb&ÒôíÒ04/ÞDTâò‡@:À Q2=³Ós¢×¢µû-ä\dÚ cù êûº'Í'•Ô¥|ú¾Êþ9âå.¥(¢B#evî‰AÍ'9}9ÃòR«Ý§ö4hDm$ÚjæÚ¥Y-Wc Á‹Å\8n§J´Ì%Q’~ ËÉÌøž]É£þjÒgºÈ=†³ ;@áøxOºwíZ8¯%ʈy2ᛌ’°ã+Éá}T©½‚öleŒÀ®„Ôï ‘ØOe¦: ÜüØób‘Ç€¹S :øÂIæÕ7jÈ[EY»‘ù‚Mœïx‚8’6#ž7Òêˆ ®Ë·ØQÜÆNVP 4` M=âOª{÷Hìqõ)÷õ¢¼ƒÌ_\Ä´^[7?X–K0zV†+ºÑs}ë€l?ãKîèc•|ŽPË«§¯Ì¥Fr×"ó…—† ñÙ«ú®&L†Ù=¿'d.n—r2#ÝÒÅ럈¦›ŸIö\§7ôþÛ ¼°wF™xBÑYD· Ñ7g«å±}G,“û¯ L5p:´ú¿…ÄJ»·9É_¼Å—< 0Ψ~é6¸ºMzÿ»bÓÃA7«î‘vãËךãBÂÝJ¯üöÌjÊ[eCsç­_Šjú¼çj÷_ÞU—<èxaÄœ|Å=ÿêH9¨6ËÓÃôøwÃì¡È7³©‰v6rMæØ×±L_ÈG—gš¤o&Ø—ïÞNժ״bÑŠz½W»q× Ý­º³Œ_ ëzÃseÁr‰Ù]ò€‚$V.„åž›wÊRÄÔn¬n×ÞºÏÅ—cQö˜­;£Ä‹#ü‡|¦jÖ9™G{éYâá¬`ÄðÔjðZøq@°^²:²'™¯<Ÿäó®â4Ê1j'‹ -–ÂñK?T8Á沚¡óTצçÜʺÝŒKݬéÆÏš–o_¬©¡ÀùbÛ.««û½^x'飜;»ÎÎZŸ ˜ùJJÛ^ùÆ¥âŒ:Å5m,î#TIfÓK{P_±<=ú/£äBÒ{¨Æî|¼~Å)¢ô}õ–ÏAeè+ʆD=VÆ62á!’’â—o\UVqWÞì7ð‹þ"'7Z?*›(úè‘ΣB?œT •=$–¬zµo-î Í²)Èò‰6ùEÖžÁ6ò  rÁ%5¤Ûà÷z†¯kP ¹öCåaÓjí² ·Äx]àmqsñØ9éç¸ÎÂÒíú¯?©4ì±²m¿—WvÎsìVPË:{î»/KMüõ°¬ÇQQ¯üp‡ã ÝQR¦×Ý[/\NL†eÕ ¸VE­Ž$팄h‹'û$Î.ï¯Ï| §ÜrBI«— LÕ8__iѬ¥a4jݬâø>†4r]6˜Ñûâe¥×YM¸ÆwÜh€;Ì@¥†s@ÈEÕ´ÖüixDZÎo¥ßj`,Eæ“3uζ]áî[üüdRÒ^eRBÝèm|œôºÏÁ—€ Ö]F*ƒ›e¤1â,“ÎÏdÖ5ÕßÓg.ßot0ÄyÜRÕ¿9ãTÝÙý fŸ‚å'ç/Á‡û¢-7"gsH¸üùÂu·ÜõkY7y’Î;b®B+Ó³ØtýzeMætA†!÷yã|52öå¨ùÉîϾñ"‰êÜER¯}÷ÿ°Çã¦a4Íe>›Î§ñ9ûá‚ßeY|ý€}½±Ó6»%¯ƒr¨£ø zë†lŸ˜_rūս€××5Œ U¶«G2p‚ëÆ[ÝcSÍ¥¥´÷!ß×Ú¡ëÞ[´e_,¾ÍQúæN×9¤~;­.Pâ­QÇ©ÞÛ(ô1ºe2ØOz®ÝÚÙê‡>‘½{zŸË†½ìª=—ž¦1ëž0ncíEª—á¹à^‡MLæQnꪞ­·ù™¾g¥ä½õâѧšòƒwü­^m£Fg[àÈSÍÁ[”hœÊ£ôÑþãV#vŠ¥b·iŸYpóB¶±—XžÖDÁͽg3š6É ýÇ=Í ÀÌGýùS´8- Û=ñBtåÉE¨ºè°€2wÂÝ·õ,c[ÁOo¨q©Ýѯ9µ²†©y ºÂçŸøÏ¶û›X¿yÇ¥œâ׿góq@·¬+‘ü&âNAk¾KV޻é¹¼¢’ÛJ¡¹S=$hö rÔïì”ÕZ Ùe# N×ì…r ÆÎ?º—zñ²º]²ëÔÞë˜Hæ u}{¸Ù&í“6ÝøjSR|$¼-Ák_ˆý9€H©¦ì¤59]Ë›b~à$âó©÷½˜`ûU"ƒK-œÎòÛfÒõD˜·NX]êÞ`Ü1]|×[sÈm :Ày× x ·—ºÊ ¸?hÛR%ÐV£›¬’ï뤺´ûÂË7 ¬¼`›í²,37$¬I¤òË‘ª>ϸ+ÚMe—änâjNè[–Tç†Ç+Ÿk0ô¹øóÔø™³ž›O<ãÛêšsÄ,š2sTÛ¤¹¼Ù!Aþ­¹‡¡omשµŸDóŸï6êΕ!‘:Ÿž1B1R!–\V¯HuÜóÔ³³Ok›4N&‡MŸ^t´õL¦˜Ü¾%Ù©šê·ªyš€ýÍ.p¾7ážOlK£KÚ[>¯;má%§Ž|¦¯Õ0ûvjÎU2}kéž¡fHp{q[êÛm„¯¨Ê[)¹ˆk+_Ä]\“©F¯ POŠ#÷†ÑåžÖ%Á”Í{Ï4xîÏ|ZZ<Û0üý®‡%K–ŒÜ°{ziM@ÐýXâhƯ®»š­GŒÑ›kçB*mýž¶Ÿûòì?Klª+ÇÐ, Ðò‰Eº½n¬Üz¨ÑækB‹$uJê™—bñ@'ö[š•J]æ`ù+’­]˜oÅÉËy»ú¢Ýu*éž±¼•a.´ ãN™P Dq̱*âã×®¼[9ŽïÆU¿–py[Ñňkdÿb÷$ñðìÊBRìV$ìéÓšÄ Ûuh;ÕíŨ£TÔnF³Œ)½OЭŒ¬Æ§;®¼ú€&{òrdù…sn™{yÿÓ€Amg{vˆú‹v_êƒbï:ÿ´—˜.¿ƒ^ìÕYΩ¨Ã¦¢Xzd yndï‚‘…*‰rCVzX‚Y†V™¯B6법L“£‰•AíÃ~Ü«T®;Iø”Ñ +êÝ Ž•GùéÝù‰ãïÛ3ͱ´µD‚e*¤x“èäÏìFK_–Ãñ¨s ‚S®ä†ŽúJéÛ…“6Ù#–7޵Ĥ[>B´‡ Ý6¤ÄoÌ‘gH%~>}xœ0Ä,PÉïk–ÿ.Ávl"ƒ3ªù’ûèãQ¨±UZ ‚¥!~|RƒKŒö#»õ„ñ®JY\زh>ChZâúaíGÝÇ3Q$**U<ÀP[S^ØËÅÓ:ld}iK¦ßqÅÙèÖ2 îÆõºTç{ɾcE*òõ]š8xÉÒ+¦û A›Ñ”ä:Dk_^+Ú´9|«Z¢Vƒùò‘¹)¼HKsgY>ÝX˼ürÓ… ô "ë¨[ yó ¨\fO‚rº”tf°!i5¿bÆ+4½E³›c(¾ã‚œÜg%‡‹A«:©¨²¯š ©Ë«eÕô†”2d²69·=v÷Uu²k’VÏŸÓ¤ªäÌw¤}؇képcÊ8“f3cêþŠãp¿MW¯— ^8¸ùi¨›±~r÷-‚c×Ü䩬ËZ$ÎÛ´)Y¾¨’ðÄ'šzY}õð ËcêlÞ¬o#-ƒ P-Ÿ÷•Ù¶|-sy×ÜI/÷‰<õCéE¢'•j]øCh‡õd€oꄎèú<éò˜g³n»²•î{iµ)x‡Ø-C;¾2òÅøÁçÈL&¥ÛÀë!A½¢qÇôÃ\Õª¾&âÓýã¾ÎŠc‡‘Ú½wq–›ý>·á;LóžÅ?|jÎL"ªœ ×ÜÈ<‹ãº/m³Kãp{írù8º¡±0Æ«Éî}Ïß×Ws‡*T‰–˽å5.*Óogh«Ì½œž„'IÃæ·Ý{DGø±Î;Î%¦å9,°Î>¹ÍS¯?'¾^yº‡Íæ>é9s“tõ[œß˜Áá÷ч+uØ™vFÓ¸Ù¸j±Õ %ÒkÎvÍý9²zÏ2«›RbN­žÐQørê ZãÌrо îšAU­d%ʶ‹YRHï>^܉×ÂÒæÈýrá´z©Ì(C¥âÎï|9*ž©@3ˆ.È™#7&÷UA‹–ÍGè"8*«Fö3+rOÉ´„£|·¯Çñ½ \¤½Sü ]¬Žú¸À„­&—hÁJªyáïÒxæ9ó"‰Ûw<ú¶ó¹ÖH†¬ùâ´SŸ’°š‘l'¬aoQêÛÏS‚'ôà›áuÇAî#Qºæ-n×ëàKʦžå p³Ú¿UO Õº¸N]^·ïe{ÙT^:±®ä#T¦Î=sÀzƒÅx£î³Z“è媴zã^Büžá B,æGu RÇWRHTò ñQŒ´N»syRø‘çÃÏêq>PÚÿðµv9³²ä±jð¦0Uã:näÝrðí6 ™*f©Ð<ƒÏ{Ÿk¶)ÝDWö…Í£¼O¯\ý^™=Ù¦gªwaî=Q†2ÐI«½ÎŸÜGÊ>šv¾ÒZÉ5Z+¤Ý§ágÕ¸¬ “*Ó–ÒRê ³ñÕ~\PtT Ξ«]{ÖCB_V:Œ=7F°®B¡7âP×8+˜nÀ¾*Õ"eo³;âB‰‚gø›.îy$+æÃõýà¾>‡Ä¾ñcs›KSæ¡™îPgM¦†~Ú’1ã1N97#«áÕ§ØXÍ™¹ŽÓŒâ›ëoݸîÂá¯î5WOÄß5Ž¿:~ƒE[5€R-· 0ÙR‡uWGÏñÙRªfþ¾š1rn©bk#É[áX*PRžÀÛÞmQ\ýz¹¸jr”uöâ¤L1eñ¤n2È„wd²ê£§y•?Jîæ)2Åüˆ9¯†WÈâÑ&*Ì:ªµ¾3ûŽœ%½ªþãLÛíc2­é1ËÈ@uü|}­àDRqh)ËÀêSÍÅ;N/‹7“ÃC1ôáã±Ø+âvŸý ¦Ú9J©Ëk¥·=öïMTL4';ÞŠaÛ¹ŸH\x^&OšzÈ`!ÅòÉË;v¢fØÊ `ÊŸÄ@áÁ8Yëu—DâÍ´6/¥oŒê`ìë«|øTù.:¡¿5QX¢2ìj\õrDøXÓ!C›y­„œûÔ‘Hž±{z=1jª¾˜ðêøP0¼b1/Q”Éÿ„ÄL`’ ®·<¹>¸Lt°ûfOã9–€v’v‹Ã Å#–7â I¹ÍÃYdJìý¤ç»Œƒ–æSh­Ü&UõèÏuDØî  œ.¶¾Åª¦¬Úh†à£ m¶÷èÛXÈžòÍjcqok®~¯LV™†ÞC%%7§{&,nÑÛB c·ÈAtI‹ß —ëj2,žBF”&J&…ëã•á²bYÝ·p¼*]r‘±ËâZÌ“^ùýæÛaëÁð츠µ’U¶yÏ%>m–Pƒ0‡>†>ùƒk^ýT’ƒææCß2lÜbôÛ:Ä›N%í± À*|îwÅÍ_0†PuóÀ] ߇u)‘¦Ù¦w‡¶BÆ$cÍιv–X)ˆtN"Nn(20ÑiìŒR§z8…È+ß±<ý¤¦£awŒgÐüÁÝlô*_+ÅõoFõ2Òø2S‡ôÙ¤¨>ÐGŽ¥Jý R6ãEØñˆ?ñ­ðJWdÁ†³Ý 4^¡_ZÚÉØíËðÀû)T³ÁŠMè@ðéÛC°™A£šW‚hC$Ë OûYÆí4±%s¥RH¡JÛKÆ÷ U‹ùn¬³ï³‚'p«ÞÙd¸iÉ¡~‚6ÒŠàW»cʦ™õž;ëõ˜A8™W,‰E>à´ca·³`²V©h{"½7šB“(ò{‚?³Ë{£¹&ËògyéSþ­û½T_Ðd–f숥 ˜’ÓžPniéÓ¦#ûu­ûqC¯“_2W3åÑ ÎjFr’ÉŸ}Ø-µ4n\E]÷:iÔ–fõµ¿¬àê³·ïZj‚¯ÙnÅJ…n3;vöU©˜ y×e’zÝœÿ^±qò€O“Åw¦#áÿ4EÍð endstream endobj 676 0 obj << /Type /FontDescriptor /FontName /BSYWMW+CMTT8 /Flags 4 /FontBBox [-5 -232 545 699] /Ascent 611 /CapHeight 611 /Descent -222 /ItalicAngle 0 /StemV 76 /XHeight 431 /CharSet (/A/B/C/D/E/F/H/I/R/T/U/a/ampersand/b/bar/c/colon/comma/d/e/equal/exclam/f/g/h/i/k/l/n/o/one/p/parenleft/parenright/r/s/seven/t/two/u/v/w/y/zero) /FontFile 675 0 R >> endobj 677 0 obj << /Length1 2292 /Length2 14125 /Length3 0 /Length 15478 /Filter /FlateDecode >> stream xÚöPÜÛò Cp‚‚Ûàîn!¸»; ƒ»{Ü‚—wîœàÁÝáMÎ9÷æÜÿ÷U½WTVËÚ½zwï_¨È”Õ˜DÌÀ& I°½ 3+?@LA]ÀÊÊÁÌÊÊŽLE¥nåb úÇŒL¥ rr¶Ûóÿ+@Ì tØÄ.8°=@ÖÕÀÆ`ãægãáge°³²òý'ìĺY™˜²`{32•ØÁÓÉÊÂÒrÌþКÒØøøxÿJˆØœ¬Lö ‹%Èr¢)Р6µ¹xþ­ ¥‹‹? ‹»»;3ÐΙìdñŽŽànåb P9ƒœÜ@f€ß‚Š@;Ðßʘ‘©ê–VÎÛÕÀæ.î@'b°µ2Ù;C2\íÍ@NÈá5y€’Èþï`ù¿ÿôÀÆÌö_º²YÙÿ• 45Û9í=­ì-æV¶ €’¤<³‹‡ #hoö;hë †äÝ€V¶@HÀ_•’"* Dà?òœM¬\œ™­lKdùM鲄½™ØÎdïâŒü»>q+')¤íž,߬=ØÝÞû`neofþ[„™«‹†½•£+HFüŸˆ ùÍäàbeeåå`€ SK–ßôêž ¿œ™! |½Àsˆ¯•9ò ÙÛè¸8¹‚|½ÿíø_„ÌÆ0³2u˜€,¬ì‘ÿ°CÌ ó¿1äò¬<z¬Ùc°þþùï_ñ2ÛÛzþ ÿë~YÔ5ÔÄ”5þVü_Ÿ¨(ØàÍÄ `bçàpq²¸ùx¾ÿKò_ùÿ‘þ—UhõOi¬ødìÍÁ¾¿@Z÷nÿ í? CøßÁIhÿ ¾>+«)ä¶ÿÏãÿWÊÿ¿©ÿÍòÿ6øÿ· IW[Û¿Ü´ùÿÜ@;+[Ï ƒìêY 0d5ìÿo¨èïEV™Y¹Úý_¯Œ ²"ö¶ÿm£•³¤•ÈLÙÊÅÔò¯qùÏ%@Øm­ìAÊ`g«ß/ €‰•õÿø ÛfjyMœ!Wõ— Y¦ÿ=QÂÞlö{ëØ¹¸@'' '2+d¸Ø¹¸Þlõ4yü5×f{° $Qç 0;!ÿ¾Pn.‹ÈoÓ߈À"úñXÄþ ^‹øÄ`‘ø/âa°HþAl©?ˆÀ"ýqXdþ Èér„S鿈©üAXTÿ ‹ÚÄ Y‡?©ñAiþñAÿ ˆ"“ÿ"6v ÐéRŽé$Øl ¹§ÿX89[ììþþ¾@³AH#@ ¥ü=<ÿmâo¿£+dæÿ¤@tšÿIè4·rûÇo7ØÕé_ ‹?Œ¿Åï/èß!B-ÿ” 饧ƒ%Èþ_›Õ¿ ¤M6ÿ‚éJä†h´ý=’üFÙýl€qC@ðŸÓ!±ïã¿ÜŠþ¸!¹o”½-ÈüOŸ8Ùþ±:ýOû8! u€¼ àµò…fqü„HÿW'Ø :ÿÎõÜþÕ.H¸3ä)þ“9âÏ׋ÅÅÒ ô¯û€ÔëâþW¤u®ÿ‚Ö¹ý BÔ»ÿkâ |žä@b½@N“ýÏ’›º:AÄ»üõ C^€ÿ࿾³ ÈùÇØT ÄúkHëmµ¡;Óö˜Ð4Õ¶V*“÷§6×{4„$ºªÌ 5§k‘¤ÁnŒåM Ú«÷‹¤OÞMµáÍŸTZ|âU'·[&púÇ D¾õ#1©¿ßñyrôÑ ´i‚î¥ÊqtåESÎúuï•òøÖWº46·­²SÅ-÷ú±tŠ)Z#J?ðË U®IÖ,9¼ 1"=æ©úÌÕõ4æçñRÙxdßÃhŽBoÝuö˜»Y¯•ruvçN|J|]N‡QB©NN›àΦNZô] ¢ ºÆxOk*XÎÈSr(¿J]:z;õó+³ü-c˜|‚‡&b·™þH¢ D¶Fúezÿ‹iËYé¨ o´¥±dçâê–š¬{§ëË£ÖЕÛnƒ€Oü¢W0Û2ú”~)B3ñyµ¿Æ#‚òbRq~ ¿½Èè Ûú•üµ«F¥³VÖH~ÌsK{È‚¾ŒBT@Òì­ç=ª›$s³G7µÖrîøî”é9½©ýöŠ{ëË äàå3Ô¯kê™L–Ö©3° ˆüs_˜˜öMçyÞùMXØàÁ²ú§æë&Œ×RGqpXDqìür·c¿íŒqÊ” €CûÀïëX.‰¶¾ôÁUpÅêTFBhœ~Rv‚¹B×=lÊô–#ðÍ/á¡NÍ3†µœˆs´@SáioKÌñ˜ªáŒ'©˜ '¢gKDÌêÚ6Jýwjo|רS Iä üB7ۯʹ'%Õy#]ÈC Ý^!)O[wd·‚æ7‘ðùÔ÷oÀ|æ ‹V*­µÝ}«“žv*3NVˆ8ÖqÃ’0Kú£˜¢P®¥HüÎû»Äái!ß=y¶òZc³Ti¶ÕÛ>´„N¼šð6 tÊd959Œô2wñ¼j\íGÀc2’{²\ôË8ã\Çç—7NW¼Ò¦x%%4÷"£x* u[Ñum]ƒÒÝ!×ìÑü|ï^qûÄt Mõ¾Å~°ÿ §þ‡`ë(ÃúZõÆHGròKQ»€v«€Ôv@œÑÉplý4?¤W×És†{Ídh÷Sïäí">2Ň˜j¾8*PzBûqÅKºî"> ™R¡Ô4.¤-yVÉŠ •xÁýJ<Â}3¥çpKKK*y¤¹ÓÇQl—öRɇÛtš%¤åPÁ°i;Ûe?NÊa‘SLÁÓÏ?¤ˆ×õ¾NÙoŠéÐõýtø‰¦>¡³ZI‚À³‡r°leù8j%Cl ô9r³§ðÈs¬¡Øàæù j=eœ´”NŽË´1j"ú¾þ®|¦5Õ“yyæŒÇ÷ýC5ø „Å(§Ã•åöâ·¬ÏBÙ¶Õ[=9 “2ïÀ±ý:rd$»þÕo±-—¥2I†üCØJ>®Ì†?'ßìº^dº›Nò5s½ûZp»Šh&+ŠRÝ{Êzty¡Wt:HìpýVoÌåbe‹nÐuÔj¡èܘ˜æ ™UÝ?VƉ4”ÛZ(ÿþÕˆ{äÒ`[aÇâÄ–á>ž0üÛÔ§vøñ¥C¬¾»E~ïû¢·%èWŸ›Ã…m¥k[ÓèÎSvyc•*Í òì´í#¿‘¤¯¥ *§¿j³²z^4ЦFK:}ðð&Hå"þ^nN$ѱZÙ.Nè²¾ë5Çg?ì™+JÒ× ÈØta@Ú⌊€}ÂFgÌq˜§Ì{ïAýäCrÒ[Ì)íljy%ËS,´ž.˜—1Ñ]öV¬fPyg:3°Ë×Õk¯Û'ëÆ¢ç ´Nú~‚œ=×-è‹\üËu½ñ=}€ öÕ²±;Á4k,ɇAKƒéWÕŠž›”ö¥†Çì jX®[zå?ß^ϨÈ0™bS:W%¯ÃªžD?”`|eÞw;8o2ÌJ¿–÷W+A×dJe‹´Tÿî!‰†œDäByTP€5¾wœÄ«z¬M0ÀÊα“¸j]m˜oS)Ï_VþZž”vq†\¾gå…$H(ò&[ÍÉú#éìõ“7 ¿Ý‹÷gèk¸`e ëLô «XllC.뀒ò‰–„4Š'©:冕¥`CN=…dý£ÆÀ±7_ ¯*"âw=M¸ƒ ºã¾oNzÀYΦ¾žXóÕ{Y 0§ tŸ³4ÿä”Ä%ÝJ/ˆÌ+(\ZCKáyÀ†Uó£Å›ßõénto{Cí¡A xÿÍÍ®®:С)¡!šNGQ,Tõ´ÙWÁF<-2þmÚ'ѱq†6‹ô¬¯MºÎù<úKÎðtÏàr5m„P*”lX4-ÍÁð4–àcj¿ªxŽOµÃׇW+!ƒ)Bx§fè{mB+‘°ß­Å·_Üö’+.–Ùû€·ðªÂöâ_Î%x ‚ØÆ»^:çØ‘Ë"ewEI] üšl°†%—]¿µA÷æ†aYÊJ»BûåõÀ7}*JŒÞšÊSÉÉ>Ú@¨¦A÷_ÌœÊaƒ+£F`%kc:9zóK3iì²Õ\5?â‚V¥š7>ÂÌÀ•êþðé§“àã£ä.>*ür¯( Ñí”Óý•_àv šY^ºvØsZêðÏa¸–ox».¾p’nìÝàQªÕG6£–í}Sÿ¹‘ ‰z°ö‹yt¸+"§õÛ-ÛìŽÒŠ.¯O_‹­Ò6žŠÍn$»4ú¼ê8ÔýJëC¾¨@I)!ým…ЃwËJù "ÛÆ=ÒækË*tæ Dô&‹ò¦ÏŒN%Ã: +‘ví÷XÙ”ËÇñ¦^F•¯ñ–Ý„$ð\!ñ_²ÈD k>e}·ºþu‹/ ß#)„:ØÙ–à"÷´k2DY LF©_[(åkGÔóÁ |«ßìÖ2ØJÎñrP–VâAFxýF³.hªM»uWšR­P˜b×êiEíÒ²ª¿ùu¹Ó«…ZÕ4ÌŸXZb4Ç™h¢Ê­Õà+l=x‰áÈÝ W+O·¶÷])c‘¯"¦ áÃÑõ‡X_VﶨN­…ÏÖæEPUƒ£ößûûËu*ßapаD`œÔ0imŒe%e¥Oc¦¬¼ÕÝ’aâËŸë‹ÎQ®òÃÂO´ ù” sª³ùÓ‰´ MI¡†kÃ饌,Ü æ³ÅèÆD€£oãÍÎQ^º¤´½DICº6‰8ùÝ4šAN(ô“-%5*æú¼[³Î;ß@Ìœ<5ï´AvžE¡3˜’©CIÑ ›Uä¢Ý@8 ³yï€ÿå–Ëç#%<“8Ž©¯n®¯ôŸƒccSlÈÒÃ*wí³î¯ØG>¿W Œ§‡ÂÅr›ôáòâ°[_H?gé¿*®úVþ¿ÖýÃ…_Çþ„”ù)®Ôaiü'ÎÄ ÆÂŠ¿„Џn©r› ¶$²¤#Íí—<>ö«Õžß–g!¥ið 2g6lžànÆÛ¾„ÄU…‡§¤|·CñöºÑ¾æ"ûÝС”R&ÁV±»Ö >¹ žÏ+*cùä‰ wÕûÄTyÙÀ0:*JúÛ¼.–t‰Ca4B㺞nuâ¸ÔÁ–¼Ï~ùì y’ í¨È™Œ .:µÊ7Ú?HÝ#kAÁ™ŸBD§*;ì<»?ô±Íqº<öåÜÌØ¦°º'¿ sÈ9"«ÿ¼[ƬéÑ/‡žnõ:‰I°%* 7 2)„ux²ÈZ&å‘B$¤ksùY­·®ùaR1·}áÙï»’aQxênÔ *ñ+7ãȲG7ãÉp;tä¾íËÆâ§”wN85üÁ| B6µKE±ÃuJÓ…[*”è#o¯(I»‹ÕsàÙ#ÇÅ”V5sAŸ…’n¿«½âÙpÍL2Š AóöÈDMZ¤<ä§Ð=·jg /µÍ|í‰ÚSoè£ò[-?aÚA?!mŸ@·Œˆ4^÷¼¹öpð&Ñu cë¶xŒ9ë3Ÿ0qovºQz쎽´ñ¦H¨Èü»©ôf|ä¹åŠOÀ„“¼d¨½¨cksû…¥´¨±ìŒ&`¾KKÔònïNÔ¹ÛÒòüÚ¢²#‘¥¢²¡ÑÐ ³»=·šÆë/äè꟡ÄôÏ>ÅmhEîSl><˜—)¢TÓ/õ{æA¤ù¸ZÑäf܈*2À¶›©¬0´> æ Ávµ,«Ì»®¬Ù4:¬Y†ºì×#T}°:ÆH±)‘•\dár`yµ–ÅY’„kKeË-ñÓÅzÕø4<¦öÊ&µóý!»-ÂHçEÛ³j¼°¤‘d¥)ŒCã8¯CÊÜÆq‰¾êÁ´ŒÉE€; Ý\s¤Ý1øfîÍûZT:¶ÚýppùYjƒÞUê €f$»¼)r¼§Ž|‡„yŽ)Òëà|fp´2¸EÆÏÅ& ØtšÂ  })½ie’¤8Xu¤Ts˜%D"TïD8Å °0;ʉHŒ¾&ÙáNŽE?«(þÕc<ª"Ž+2^:AL3g_Ä ‹ Tü$5µI¹(>špIª§Ò²Ëë,¨(ÎjÁ_¥˜TìË;ÚæúÉ7ˆˆ¸¥Ó¨}`úL–›ŒBzîÂw×ñfѵŠ\¹§Ù9ÂŽWt O¶+Jã*f»Ì.½€#óÜ^$m–zŸ¬½À ¸¬f˜ÉZÝŸjå\[ïYüdŸQWfð³g«áIµ-w¹ ^çÙ«¥ÛCº†OÓ{B•ˆ/™|’ÿë)še ÙÐæõ:-ÀøW9dU+5KÛ×5–šï[Ýã<ìåû%^fíÓ3û"~füÂùöD~ð…µ; 3¯~¤ôN^KIS=3Ù[,ŽYË}¯ÌŽ+WÎ^tʼn©óX¼%¯[õ „YÊG+Tv¶W8wÏ©¥Æ¸Çt"ÓA$EmI#ùõËØ"ÎŒ8kSoû§>éy G{¾éoºLÛÅðîÊrem¥÷“2IZ—  ³ —M•®, {$z ‹Q Ibnª€€ cWT•~ËI±uO…2‘™â쿯-9Å.ÖGÓÅTaÕð9éQ”N¹ôúï¬öº¼ÛE¿¸¹·~Ò€rjcɵMšX_Û<'¾®—¿hNuª- FÉM¼á‹ª¬öK@‘ÚM•¹´'å_Ë"2ÞñUVžùm¶r©7Ÿ®]$n»”t6@›f %úÍÛ5Næ{˜ôtÜB{…¸£ Žàøm!ˆS_µ &ݘÆÔúôÞ©·åå¼Ú{D¨KªÿÕ‘A€Íñ1ˆ¬AJô«z|º"þÁý^07½Hqó ·hÍ¢>ÔLsN4N³è/Ôò£ŠÔŸ¥SGA?LýäCÂ…UGà•p‘»km nŸÉV¦38S´§¸ílá%ßìR;üì [ýf²uNˆ÷5XßcC¥ª¨®cÜvnD"}×õ›.Qáâ÷ö¥qåïkØøäÉ©§z®±”Ò!'QlÏ„v%cÑ9³Ä±· ¹*ºÍÔw?®¯ 4GwGþR4"<æ*ð£)阰#gÚ¦ýa‘ioMÙ>¦u™/Ãöך; -ëŸ RçÔreb¼.á3 £œ”¯hì^­£-rt~Ûݬá‡Ãýâ—x%2GfÅÿ|2ø³þ‰øó¬ BP@!M$ž iŒ!€\Z[ûbüÝ’ÎÍÂ\ú&^sæí»7@£ ¶~#V ÂqÉ"EM— ]QÍy3Xð¶‚3P"€‡Ðûc—ëÍé-eS_°è´øiï$<-}€%íL‘<=!ÁT™õ‚¶|êP6˜Œ9¼÷I¹÷ÆÓ!D+ÔÃ>¡-HˆÅ(oÏ“ú=+†ÚÊ1)}‰ júɡ8ûï<ë”rÄÊ«òùž]É<å•E6Ì,Á/×pD|J<ÐÁ4]­žG®RGÄE›ª›Â ç„=‰Í”b;¼9ˆ6µz<;×4G²Î[hÊY g-!·ÚÎlEÑ¿>9Éñ'ÇJÈÉb[Õ) QnÝ®à†)•/?Òž´É´Þ^ñûÒ# rhP!Ǔχ¨­*®‹¡ð€%Žm·ëHߨ۬¦”ÒàP68$ô fÍúéKÔ‘Úçw-r‰z”<ÐBß?޳Y­—e‚3lßY+¯b¶Uá|”T{¼Ç©­:É(Ú+ e.¬d;´•ꩈ‰“ïl>^&ȱ:M¼¨âѽì½|á#°k´Œ´6B†k®Ÿ¥]»OIHëf˜mv=ašAÌ»B|Wˆ6º`ÆX²:Æú(±ù)hŸŒ²æäݾø³½žRl ¦ï3C8HÂ0ÿCî©éçBjºþ€‡ûΨG7®¬ùÍ×Ürü·ûÌÈvÅßùvðÆŠÅ2¿Í»÷!ÑÍ7 ‡µcï`iY†¹í©KöŒëØu‡/b•L®s©ž¦Ö1Lòé ÜÈ =^Ö8Ù’Q\Åßܯ³ ¯}÷* ¸Jš(;yÇ÷#êýbÑ}Ø! S4&醥U¯ÊŠ>ÒÚ2ön±ŸnR sWü¢Ø/†^D©"ú”V÷ÑLƆ¢á@X×9qZ¾X ñ]ˆˆFÚò¾üxgœi&œw‰õø{^ œƒ°“ášd\ðœÞîY:Æö.üH°s¾’Œà»é‚ž°Èm¶OŽtÁò°©îNŸÍÚÔµáw3~JBy·$MeÖ^ÈkX8-wj<_•ùÛç2å ÖÉêY})ÀŽÞ¦G*€Ä/¤Jð|ŸÔ‚CsXßñK Œ#f¼¶ E?ïª1uüŠÊlß6¬–™Zzîdzk“ž‰ºMyÙVoÆw$ßù ;}ö–w¾(â•Àå'!ï«cf¯äw- #2{,Tö9Ñó{CMŒoheRàÕ3ncF0²Ÿ`)ŠRqöR9ü^r àø#5îjãoK$m=—m¬¢e Eø4¦ß ®…h;K ÍÊb죞æ™FìH+#g÷·÷w*͒Зoû¡Ð¹Þ¢H¹{c ýÊHeÀK¸wf×:r¼¨ƒ]ÁUUêç耺ÿ•zÍòÊ4Âj5Ñÿ­8šL‹ àˆ&‚–“‘$ÚCˆ¬PÝT'©}à ê#¹™Ã‡ÍhÙ¯ ¢ âÓ´†¿Qþê¦ñßÙW1; ÖÉÂx¯ŠBI2£sÒ./¨›Ýyˆ3Qb-’lì=kéœt?~ú‰ý½`›u°õE>>ö3Àt="T%§Lç‘s#:VÅ.ǹ§’áˆCøÑ(b~<7KB´æMÞxÇ,¤=VâßÉhæúÁe&ÔΪrdcKºÙ=^àÊ—-L")51ÚÛh]hiéYã/YÀTxzQƒ%ÕX' —žÞÿp¯:½tàѨÂqL!Ð .n¨ÞÂ<¿|r ‘zØÅÐGÇæŠ*i~à²rÍz«UˆN 3#NÎ`áHj$n·½`ÝhÓLX;8o¼Ñ%-Þ|Æð:*Ž9=.×Ûq{ÍÅh+T—ÀŸ¡–¥Ö@ hÛ!ßtð¹íQWÙµ4ýÖׄðö‰ÌÌÑsäGÿ[í;JA —·KÕj÷|Õ+×¹&Ïк®¹±®þúµ5QEB]S]|¹õÏaMØjž00­ œü_‘6~=à‘ÏGJIѾ3-ÂÙËýæþâ–‰1¾,nžD ÕÛ);3_=ÖÙ@ 7 /é6d/òˤIbš™ipÞ[dILùlÎ8{?Èÿ‡ùCo}¡T$3Ûmøq©<št´gkû©›ÄǸât©“)ѳ?Z²ìñ÷z‰ë&Í ‹áîhH‰Ú]6ì$14/‚Ù­aòƨH%—ÞÏ ·’\׿?_(2Ýå¶8]¦{äzQ'‡ºÉ/¿ ù““é™óÄ9À)ò<–£ç<±"ç´îÝ\߈ 5ú`~À°…Ë ØhÔÒJ$»4£Ž²F§Ê†+Y)o,ÆÑ9ôŽnhÐÆ~Ä#¨>(HaQ¶YT1© ,îK ÅXˆÒ€¢£MîºÎ[µ•ß+I0PS±ðòƒÈÁ =?/âTfpqfqvrc‚îßÕ7ÞcíTiŸUÂÎÀTEpGþ²"Qïž ¢Aý9#‰k¡%:\·Ž`íÁµ"¢µ’”Þü‰„jù‘ļ”ŒŽ50!jéÈüðÓ.EV(¾^Ö½£º9ß„k&.é•&|‚ÚT+ DGݘº•X°7˜ ‘ùE²^Ò72qÝVŽ‘&Õá’–J¾eDŽ`èi]Sõ0ìÌTN§tÜܾ©Õq E»¡ ™WE:Göì’ù¼Q~[Âè=Òq\³øfú†òÏU'¸iqFBÔ OÔ¢€{½½ñæ+*•Ìæ…eyË£ÃϪùªÁç[ᄚª²ªµ=àÉéE8sÆŽê]<è{øÌ1ßü¹)%±ƒ ˜MŠÌ—ôËM ò€! ûo=Ï\H‰ ò\äÓ^¢cµ8¥Ô)/wI!H—IX¢œŠQœ7„"㯛Y4;Io烽äK„U‰1ÔÌ.€Nr¼?×|¥µµrŽ…¢X¼_'à4êåIy¿dÊ®Pö×lÉAwÆsN¸X÷;}O¢+Īj£Û‘92É&¤Ý¦1ëN˜z´8ɪ×XC6“o_!)•KüztÈs·ÔŽkÇÛ#ÙÔK»ROuÇYùö¶Ål”„Æþmöí Æ±Ož @ôœ0ïDÄ’Ì”Ä#¡ÆÖ¡„Á+-K£»Rÿ>HeUo%í#õ¯1q¼ ¨Èo6æ™7›JþÐÔ÷9ƒíµÉ£DmMﺫõµŒF‰ú›ÉäÃ3ã¹ÈúË‚ÉÛƒ¨eáœðÛ¤Ù¯ÉröØvk9CÇM>kfk ཨoǤ֙,©¥*"î PÇ…© :*f£×ö|@¤ˆ;½ƒ\(pžŠ_6rG@§-Ô·0×]ŒÌ{=×RŸs²ôh½â…OñW¡`'úÿó–ÓUFÄh¨‘q¼Çºs“R8˜QP¸X,yÓD–*¶Tvi!X>ã”k©\ËLÈlû…K#×­+ åò>O(@‰—ýÕ—‘pQŒ†"½ \Õª=Æ'VV¨£ÕTà>‡/ ý~ÒT¸HŠÃV‚Ö´9®ÚP†Â¾/}¸¬/„QïÏŒRz¨Ò…¡fDì<·_Âefàü2{OÍä?üq€d}¹«©EŠ€ƒkV‡ßÔ!ÝY3DÔßð⊡ ::õþŽxec±Aøó‡õQÜc_fØ)¡o=bÍ5¡ue;P#ŽÌ'¶8,-­:]¼ä×âL|9 8¿ÖžÝm³*ô´hxÍØ-0T¬¾xú)YbÆuØ0÷Î'‹,z!£Í ƒ†™uÖO£òås‰Ü¦W»×%&6³e§…bªγ2ÅS­ô—ÛÓwÊP?H'Q}¾ú„¿ƒÑÁ2I7Ò³&iµd¾Êë´ãžç—¸~…YÆ Jhà ä+¿RŽ_ÓŸA¤hŸxaÝEGcKÕ_!ó[f½p=Kï+ñëx­iUf¢jl`¯S<Ô@Áóe&vXôÐs¼ŸbŽêñ"‹Fceê.5j6þàÄŒÉH7ljˆ,sAÐíIÛ“xé&HD÷.‚I‡0ÝÃî€.à `ZÓ Y> 1gÉw4fY3ø*ö]#í|§ NßK070‰Åú„°[m[¿Heò.n ÌtóË!ÜL¹a¹ÙÁí¿”Û#“í4T[…ŒÕÜ÷ð@¸ò'wfÌrºjÀÆ´¤6#³#sjÓë/Ý€ª2…Ű–Оֈ7sË$[7_Ó¬d]±œ®MÝ6ç—nLÇYwÒV<Aæd؃½àç>]'–Ùë‘›ð©¯d³qcz—Å<N‰À(cú{îÉ=DxÓEÂc!L¨j®ã³âÐÐNÈÂPE­Tå5îm1~£F<Ù\Üû 4­%š€F‚Q=*RS‹âv‹XkXIBè§Ÿåó7ƒi Z~D×EÏV¤ëž¸RÛÙdj dõ¹I¾.ÇP”°õ×’b+Ú}Ý´ÊH54~®šr‰s;ã/{[‘tdã]Dfj>êê›=ˆ%iÅkX§=ˆ—üÌ {ÀêoÚçkËUvbXSϲ‹u^ dŽúèD_†-Ìdñ%«I>Yð=ΟÎÞ¢NªTÝñÿ2R|ºÇuz6t¿c\aÉ<±rwN€:ôaùMúVàõPç%̸’ø–ÅJ¥tô‰1ðêS«v)½£ ðˆ¹r|˜+±Ô…›qþt|¾Ó§¦ÉÆ^õ%Wø¬:4¢g©#¥!îkœT5½WSN‹ÂÊBcÚß|Õ8a2ǤÈãäW}Ò|ÀUÕ”Ñ%(.æŒ{ÌÓ+=H},,¾|´Wm½L>_¾̺+9DãŒK«b97Vsš)JÚ«TÀA“žfò?¾h:º+ñl/ªPlîüå—â©ìOn°ü¹‚#'×íªXÝkÚS>‰ÚÀ4•­oEÂ'“_ªI"Ìàöz ù~Q¤««Š40Ú4Í{IÔ"¢BDd“5ùÐ,Ót­üÚxŸÛ_ Ö…_6® W—ýâ$[^|­³äÝI)”ââ#½åªÆHü½Wx¢ Ì|Sp/ŸÄ‚¿éÄ3Ëxë!U<%?Z`d+9~sÜ€yÝüÔg"Á^ÐN•bâ ª ¦ñ髵÷o«öm’>îÑδ¾“P’¬-Ú–h£ŒñÔ% º‘3^¢æ‹ôÅŽ{Q/l¿5èW|&£JP>˜ÙK àÀ¥±Ì´ËÅå>CÙsT¤2% ^O14´dDj¨E–VŽÂ'r¸Ë8² $Æ>]]Àñxó$ý©G7—¼ŒßäÖ{ñI‚ ˜1–mОY;»‘æÉn#.ƒé•êåýb½{ù1}‰_~Œ÷«•Ä¢Ì3ýÐÃɯñ0+õU þì«Ñêæ à³Jy±ä„ãÔïÆë ô{€Ó§PµÚ!¢pÁ’*6Á-ûÇ#гÆïFz³"ÌÐÄ Ô]kih}ƒ°º,b³ÞHÕ@¶ìšM£<7¿ø°P{z—š)*Ky¨&•²ßx7w”Á]¡=„v #Ã×…ºi3Ò\pm[Ï2©v6œ&Õ°³ÖA›$,bí–ÂGMXv橜½ÉKtK9:VÞ{|2d³Êlzù°p{¸´ý•‡©ìÏöð9^š‹“‡í+=}îb1èÂÏQ›»Þžo句ùYçã`l°žþÔ¶0žæÿí mÂ7kÏ‘©äÒkµy4t£«Ñ•Äáð!uT‚·«trPw¶]ýr÷¤e~„ˆAYOB;>6ªNvOG«4-SŸì‚4PçMÝ6¾[“|%¨<Ã4ó¯ ÝÔ$rȃ¶=¹©ER¸è£å!^Þ^ôâ¬U„#‰ÔÚ‡ùƒ¹„ïžÒ¤˜ùÌqPVàXñüþÃæykÂ6JϰšÞ²5·-AîùG?Fédé!…kc7²ÑRrùxt‘+Y7LÍ¢0Tœ9®[ËwM|Šl×傱P%t§ú?\ÃÖ{=±B¶›Ã¯„ºXvÎãfk ¬v¥ÞNÆ›'ƒ@—ê æ®èfÌý¡3èæåQá~§WÓ³Üè-Þá:-rÊ™ÉßljÆíа*¬½ ìLz/lƒ“¯•ËC|:g‘ü/„hÁ^l•m“ï—Kaì΂×l>è ÊIŸh%îKÂÔOÜh¦Mm´½mÐ~Âc|Ê4NËZ/7ǘ NÄX™ÏRÚÒ1 òá>ÏŒ½£ô÷°=xsJ oé³ù ©¿ÅþWB¤["ù¨­`~¬C¯7ßg2îú}ÛÝTö¥Á–pKß.i‘ ÀXs2õ¸°]¯zpܵ¤ßª}ž6¢wU3‹Ùa)P0Ááì­Rœêϱõy˜˜Ðâ§–)Ù̳JÞÊDÀ„®þ£»N“Jµiš”öäzÄ­]¹pê‘"Jº 7ÒíGX_Ò½ì@µ§uº‰% "ÔÏk=†_Ó‚:ß”SÛ¦†-Î[ô<êšÖ 1hÁ—˜ÆŠá)Ò$:º‰ž‘ÿŒ* £½˜ ­Cì ãhÛ~m#léE£H©ÕÈ{÷õë>·`Çó]û‡:¨¸7òFä©ö æë'Hìì‡Çò„hðœÅвèÐxo{¦¿3%ÙÇÔÁöíʰÊ¤ð‹æ ɺ™ØÓ“ûFNËÇ=c¾‚H|4Š íRûøXòÖ›¦¥ @p®Çú‡`¯ÍÑܴ۬çù¸R—ˆÌ¨HLð˜vórج¶ |ޏÓ yÉlŸoX •¿[ÐçïK~EAµ¦Á"H†«Á*›NøxX«ðu{7áæ`z»Ä}f}£$ó[XzßðçÒ*Iw)²ãì&îîÓ bCCôŸFÈ"w²ößIïhZp5K^¥ÎîÊxA½PD‰kw3E T…;C¥ã2?èÔVrÙà }îÃK1C…Î@Wy.;-"<›¹Y;ìÖÊD:†i[Ƚťz±ˆmDÁÀÕêqõ]i‘{%÷]ÀÿxX±¹Ãä1ÓüI¾?ÐaÂôŒ5Zž–XX=‡j°<Úç+MÛaˆ'7mwJe©¢vš|M*•t© ¡#‘¼<žÞb§Ù8n@â”v“•¢õwÒÝ×Ka7ÅG#ÓaV=pÏSœW5}9WT`bºù$+åR^‰Ø#6]jçz[ 4­Úh釚ÅQ-p6ª´åIáYΓ¢âê³Á*­:^B)ª‹Þ,»¯6 {è}´((2ECb–gn¢ÔËzùÁ]—>NÛ;)šÀ}ÞIÍI©jR¦šG®ºÒ.ã'i0~ÂK׊ù ½¡Ùn?‘Æ•O×Éi+~I‚Ì“Dtºüúu.½ÚË,LW˜Ð@Ûw›#Ô`ßvÞ²ó÷Þ½Ó4.c:œ‡—WiBx1NyTúŸ« ƒ:2ƒ‘«ºõ5¼HsÕ‹Ë;p®èõá3"²û9“Ž}_qÎÕtÇ3{ŸU\TV¥ ®Ýüúœ—3¨+Vï¢òFàè»Tcqj×. ‡7¶U×m;òäz»Jl|jyÔ€”4MXÔª²¯­ Oö„µ"·K7òªuCæë™ý#û;j@ßµyBEß÷¢—g5sµo…š =\GéH¥f¤í~¶%›:²4Ý¡´.-˜SöéYÚ뙡|;G)U€Ç`´a\Ðõæ­à§†vùúç¶Ì}«q2(ŠÀ¾Ö¾1w6:㣂#žÑJ} +güž–®]£méK/u'aSÛ1Ëq±}OeâJMø 5¢X×Ã9ô3¸Ué”cX¦$ø+ÌDLË7’œ$ãcW*Ïí+c®(™·•oÈ­\=^2¢‰ßäŒÚ nZvQʤÞG¹@ÿPØRäÚ û¥]L'H öúNȧ7æôýÈ•P†]£`s´bBÁ%y`˜Wˆ{)^ìÖˆ‚ì°ß°¹GÏÙ=ËÇÖ룭Ý!ÊãFtA=ªR˜j”ÈlPc‘ÈK9·PËDÊBæZ£Œ²tñjk…øJÄ]mÿvÀ~|%hÓ ,]ÑkôÈ_sxcLâ=w£YÍ¿Cå˜[=³w²q6ÝcÈ_¬ìÞÐtý©Š™°Ž8m3@ƒêy” ñ·Ù–Ѭà&œŽ†˜ZŒ ïÝ9œÆœfÉå™`©™ÌJ8²)@eFÚl:²zñlðV|áÑ%KÉo;èÒË^ïG^ÊÍT+DǺ¾‰–<©oá5IZ=¹êûààþÄÞ²áÔs•ôU&Ö8îA³-\Þl™aÓ¬ZF¥™Òo™@XÅ@b!ýinÔvû4¢iÕÉdÒf´ä¤jŒ9³'šfÚI»ß©ÑÿµQË¥)GfQÄ)íŒq„mñÿIgU  endstream endobj 678 0 obj << /Type /FontDescriptor /FontName /TUSCPV+CMTT9 /Flags 4 /FontBBox [-6 -233 542 698] /Ascent 611 /CapHeight 611 /Descent -222 /ItalicAngle 0 /StemV 74 /XHeight 431 /CharSet (/A/B/C/D/E/F/G/H/I/K/O/P/R/S/T/U/V/a/b/bar/c/colon/comma/d/e/eight/equal/f/five/four/g/greater/h/hyphen/i/k/l/less/m/n/o/one/p/parenleft/parenright/period/q/r/s/seven/six/t/three/two/u/v/w/y/zero) /FontFile 677 0 R >> endobj 107 0 obj << /Type /Font /Subtype /Type1 /BaseFont /FNTMWE+CMBX10 /FontDescriptor 644 0 R /FirstChar 40 /LastChar 121 /Widths 639 0 R >> endobj 106 0 obj << /Type /Font /Subtype /Type1 /BaseFont /BOVJKD+CMBX12 /FontDescriptor 646 0 R /FirstChar 12 /LastChar 121 /Widths 640 0 R >> endobj 122 0 obj << /Type /Font /Subtype /Type1 /BaseFont /YAESOG+CMBXTI10 /FontDescriptor 648 0 R /FirstChar 66 /LastChar 121 /Widths 629 0 R >> endobj 115 0 obj << /Type /Font /Subtype /Type1 /BaseFont /XQGXIS+CMMI10 /FontDescriptor 650 0 R /FirstChar 58 /LastChar 121 /Widths 636 0 R >> endobj 121 0 obj << /Type /Font /Subtype /Type1 /BaseFont /RAFNRP+CMMI5 /FontDescriptor 652 0 R /FirstChar 110 /LastChar 110 /Widths 630 0 R >> endobj 118 0 obj << /Type /Font /Subtype /Type1 /BaseFont /OMCBAL+CMMI7 /FontDescriptor 654 0 R /FirstChar 105 /LastChar 110 /Widths 633 0 R >> endobj 108 0 obj << /Type /Font /Subtype /Type1 /BaseFont /AIRRYW+CMR10 /FontDescriptor 656 0 R /FirstChar 1 /LastChar 127 /Widths 638 0 R >> endobj 104 0 obj << /Type /Font /Subtype /Type1 /BaseFont /YZDEFB+CMR12 /FontDescriptor 658 0 R /FirstChar 44 /LastChar 127 /Widths 641 0 R >> endobj 103 0 obj << /Type /Font /Subtype /Type1 /BaseFont /FDJKBI+CMR17 /FontDescriptor 660 0 R /FirstChar 66 /LastChar 118 /Widths 642 0 R >> endobj 120 0 obj << /Type /Font /Subtype /Type1 /BaseFont /POWUVC+CMR5 /FontDescriptor 662 0 R /FirstChar 49 /LastChar 49 /Widths 631 0 R >> endobj 117 0 obj << /Type /Font /Subtype /Type1 /BaseFont /YXWOQJ+CMR7 /FontDescriptor 664 0 R /FirstChar 49 /LastChar 65 /Widths 634 0 R >> endobj 131 0 obj << /Type /Font /Subtype /Type1 /BaseFont /TTLDXS+CMSLTT10 /FontDescriptor 666 0 R /FirstChar 33 /LastChar 125 /Widths 628 0 R >> endobj 116 0 obj << /Type /Font /Subtype /Type1 /BaseFont /DJUZJT+CMSY10 /FontDescriptor 668 0 R /FirstChar 0 /LastChar 103 /Widths 635 0 R >> endobj 119 0 obj << /Type /Font /Subtype /Type1 /BaseFont /ZNFWYE+CMTI10 /FontDescriptor 670 0 R /FirstChar 12 /LastChar 122 /Widths 632 0 R >> endobj 109 0 obj << /Type /Font /Subtype /Type1 /BaseFont /CYCRBE+CMTT10 /FontDescriptor 672 0 R /FirstChar 33 /LastChar 125 /Widths 637 0 R >> endobj 558 0 obj << /Type /Font /Subtype /Type1 /BaseFont /MROFTN+CMTT12 /FontDescriptor 674 0 R /FirstChar 66 /LastChar 116 /Widths 621 0 R >> endobj 141 0 obj << /Type /Font /Subtype /Type1 /BaseFont /BSYWMW+CMTT8 /FontDescriptor 676 0 R /FirstChar 33 /LastChar 124 /Widths 627 0 R >> endobj 268 0 obj << /Type /Font /Subtype /Type1 /BaseFont /TUSCPV+CMTT9 /FontDescriptor 678 0 R /FirstChar 40 /LastChar 124 /Widths 622 0 R >> endobj 110 0 obj << /Type /Pages /Count 6 /Parent 679 0 R /Kids [78 0 R 112 0 R 128 0 R 133 0 R 138 0 R 150 0 R] >> endobj 165 0 obj << /Type /Pages /Count 6 /Parent 679 0 R /Kids [162 0 R 169 0 R 183 0 R 187 0 R 191 0 R 198 0 R] >> endobj 210 0 obj << /Type /Pages /Count 6 /Parent 679 0 R /Kids [207 0 R 215 0 R 222 0 R 226 0 R 238 0 R 244 0 R] >> endobj 260 0 obj << /Type /Pages /Count 6 /Parent 679 0 R /Kids [257 0 R 263 0 R 312 0 R 328 0 R 333 0 R 351 0 R] >> endobj 371 0 obj << /Type /Pages /Count 6 /Parent 679 0 R /Kids [357 0 R 376 0 R 389 0 R 433 0 R 438 0 R 458 0 R] >> endobj 468 0 obj << /Type /Pages /Count 6 /Parent 679 0 R /Kids [464 0 R 476 0 R 480 0 R 484 0 R 491 0 R 496 0 R] >> endobj 519 0 obj << /Type /Pages /Count 6 /Parent 680 0 R /Kids [516 0 R 523 0 R 539 0 R 544 0 R 555 0 R 565 0 R] >> endobj 576 0 obj << /Type /Pages /Count 6 /Parent 680 0 R /Kids [573 0 R 581 0 R 588 0 R 602 0 R 608 0 R 613 0 R] >> endobj 620 0 obj << /Type /Pages /Count 1 /Parent 680 0 R /Kids [617 0 R] >> endobj 679 0 obj << /Type /Pages /Count 36 /Parent 681 0 R /Kids [110 0 R 165 0 R 210 0 R 260 0 R 371 0 R 468 0 R] >> endobj 680 0 obj << /Type /Pages /Count 13 /Parent 681 0 R /Kids [519 0 R 576 0 R 620 0 R] >> endobj 681 0 obj << /Type /Pages /Count 49 /Kids [679 0 R 680 0 R] >> endobj 682 0 obj << /Type /Outlines /First 3 0 R /Last 71 0 R /Count 5 >> endobj 75 0 obj << /Title 76 0 R /A 73 0 R /Parent 71 0 R >> endobj 71 0 obj << /Title 72 0 R /A 69 0 R /Parent 682 0 R /Prev 51 0 R /First 75 0 R /Last 75 0 R /Count -1 >> endobj 67 0 obj << /Title 68 0 R /A 65 0 R /Parent 51 0 R /Prev 63 0 R >> endobj 63 0 obj << /Title 64 0 R /A 61 0 R /Parent 51 0 R /Prev 59 0 R /Next 67 0 R >> endobj 59 0 obj << /Title 60 0 R /A 57 0 R /Parent 51 0 R /Prev 55 0 R /Next 63 0 R >> endobj 55 0 obj << /Title 56 0 R /A 53 0 R /Parent 51 0 R /Next 59 0 R >> endobj 51 0 obj << /Title 52 0 R /A 49 0 R /Parent 682 0 R /Prev 27 0 R /Next 71 0 R /First 55 0 R /Last 67 0 R /Count -4 >> endobj 47 0 obj << /Title 48 0 R /A 45 0 R /Parent 27 0 R /Prev 43 0 R >> endobj 43 0 obj << /Title 44 0 R /A 41 0 R /Parent 27 0 R /Prev 39 0 R /Next 47 0 R >> endobj 39 0 obj << /Title 40 0 R /A 37 0 R /Parent 27 0 R /Prev 35 0 R /Next 43 0 R >> endobj 35 0 obj << /Title 36 0 R /A 33 0 R /Parent 27 0 R /Prev 31 0 R /Next 39 0 R >> endobj 31 0 obj << /Title 32 0 R /A 29 0 R /Parent 27 0 R /Next 35 0 R >> endobj 27 0 obj << /Title 28 0 R /A 25 0 R /Parent 682 0 R /Prev 7 0 R /Next 51 0 R /First 31 0 R /Last 47 0 R /Count -5 >> endobj 23 0 obj << /Title 24 0 R /A 21 0 R /Parent 7 0 R /Prev 19 0 R >> endobj 19 0 obj << /Title 20 0 R /A 17 0 R /Parent 7 0 R /Prev 15 0 R /Next 23 0 R >> endobj 15 0 obj << /Title 16 0 R /A 13 0 R /Parent 7 0 R /Prev 11 0 R /Next 19 0 R >> endobj 11 0 obj << /Title 12 0 R /A 9 0 R /Parent 7 0 R /Next 15 0 R >> endobj 7 0 obj << /Title 8 0 R /A 5 0 R /Parent 682 0 R /Prev 3 0 R /Next 27 0 R /First 11 0 R /Last 23 0 R /Count -4 >> endobj 3 0 obj << /Title 4 0 R /A 1 0 R /Parent 682 0 R /Next 7 0 R >> endobj 683 0 obj << /Names [(Doc-Start) 102 0 R (cite.aldana03) 211 0 R (cite.aldana03_2) 212 0 R (cite.batagelij98) 606 0 R (cite.biere08) 354 0 R (cite.cover91) 521 0 R] /Limits [(Doc-Start) (cite.cover91)] >> endobj 684 0 obj << /Names [(cite.dubrova11) 355 0 R (cite.faure06) 136 0 R (cite.kauffman04) 213 0 R (cite.kauffman69) 201 0 R (cite.kauffman93) 202 0 R (cite.kim07) 167 0 R] /Limits [(cite.dubrova11) (cite.kim07)] >> endobj 685 0 obj << /Names [(cite.laehdesmaeki03) 153 0 R (cite.li04) 261 0 R (cite.liang98) 154 0 R (cite.longabaugh05) 569 0 R (cite.maucher11) 218 0 R (cite.shmulevich02) 252 0 R] /Limits [(cite.laehdesmaeki03) (cite.shmulevich02)] >> endobj 686 0 obj << /Names [(cite.spellman98) 155 0 R (figure.1) 166 0 R (figure.10) 520 0 R (figure.11) 542 0 R (figure.12) 591 0 R (figure.13) 605 0 R] /Limits [(cite.spellman98) (figure.13)] >> endobj 687 0 obj << /Names [(figure.2) 229 0 R (figure.3) 241 0 R (figure.4) 315 0 R (figure.5) 331 0 R (figure.6) 379 0 R (figure.7) 436 0 R] /Limits [(figure.2) (figure.7)] >> endobj 688 0 obj << /Names [(figure.8) 467 0 R (figure.9) 494 0 R (lstlisting.-1) 266 0 R (lstlisting.-2) 295 0 R (lstlisting.-3) 360 0 R (lstlisting.-4) 380 0 R] /Limits [(figure.8) (lstlisting.-4)] >> endobj 689 0 obj << /Names [(lstnumber.-1.1) 267 0 R (lstnumber.-1.10) 277 0 R (lstnumber.-1.11) 278 0 R (lstnumber.-1.12) 279 0 R (lstnumber.-1.13) 280 0 R (lstnumber.-1.14) 281 0 R] /Limits [(lstnumber.-1.1) (lstnumber.-1.14)] >> endobj 690 0 obj << /Names [(lstnumber.-1.15) 282 0 R (lstnumber.-1.16) 283 0 R (lstnumber.-1.17) 284 0 R (lstnumber.-1.18) 285 0 R (lstnumber.-1.19) 286 0 R (lstnumber.-1.2) 269 0 R] /Limits [(lstnumber.-1.15) (lstnumber.-1.2)] >> endobj 691 0 obj << /Names [(lstnumber.-1.20) 287 0 R (lstnumber.-1.21) 288 0 R (lstnumber.-1.22) 289 0 R (lstnumber.-1.23) 290 0 R (lstnumber.-1.24) 291 0 R (lstnumber.-1.25) 292 0 R] /Limits [(lstnumber.-1.20) (lstnumber.-1.25)] >> endobj 692 0 obj << /Names [(lstnumber.-1.26) 293 0 R (lstnumber.-1.27) 294 0 R (lstnumber.-1.3) 270 0 R (lstnumber.-1.4) 271 0 R (lstnumber.-1.5) 272 0 R (lstnumber.-1.6) 273 0 R] /Limits [(lstnumber.-1.26) (lstnumber.-1.6)] >> endobj 693 0 obj << /Names [(lstnumber.-1.7) 274 0 R (lstnumber.-1.8) 275 0 R (lstnumber.-1.9) 276 0 R (lstnumber.-2.1) 296 0 R (lstnumber.-2.10) 305 0 R (lstnumber.-2.11) 306 0 R] /Limits [(lstnumber.-1.7) (lstnumber.-2.11)] >> endobj 694 0 obj << /Names [(lstnumber.-2.12) 307 0 R (lstnumber.-2.13) 308 0 R (lstnumber.-2.2) 297 0 R (lstnumber.-2.3) 298 0 R (lstnumber.-2.4) 299 0 R (lstnumber.-2.5) 300 0 R] /Limits [(lstnumber.-2.12) (lstnumber.-2.5)] >> endobj 695 0 obj << /Names [(lstnumber.-2.6) 301 0 R (lstnumber.-2.7) 302 0 R (lstnumber.-2.8) 303 0 R (lstnumber.-2.9) 304 0 R (lstnumber.-3.1) 361 0 R (lstnumber.-3.10) 370 0 R] /Limits [(lstnumber.-2.6) (lstnumber.-3.10)] >> endobj 696 0 obj << /Names [(lstnumber.-3.2) 362 0 R (lstnumber.-3.3) 363 0 R (lstnumber.-3.4) 364 0 R (lstnumber.-3.5) 365 0 R (lstnumber.-3.6) 366 0 R (lstnumber.-3.7) 367 0 R] /Limits [(lstnumber.-3.2) (lstnumber.-3.7)] >> endobj 697 0 obj << /Names [(lstnumber.-3.8) 368 0 R (lstnumber.-3.9) 369 0 R (lstnumber.-4.1) 381 0 R (lstnumber.-4.10) 398 0 R (lstnumber.-4.11) 399 0 R (lstnumber.-4.12) 400 0 R] /Limits [(lstnumber.-3.8) (lstnumber.-4.12)] >> endobj 698 0 obj << /Names [(lstnumber.-4.13) 401 0 R (lstnumber.-4.14) 402 0 R (lstnumber.-4.15) 403 0 R (lstnumber.-4.16) 404 0 R (lstnumber.-4.17) 405 0 R (lstnumber.-4.18) 406 0 R] /Limits [(lstnumber.-4.13) (lstnumber.-4.18)] >> endobj 699 0 obj << /Names [(lstnumber.-4.19) 407 0 R (lstnumber.-4.2) 382 0 R (lstnumber.-4.20) 408 0 R (lstnumber.-4.21) 409 0 R (lstnumber.-4.22) 410 0 R (lstnumber.-4.23) 411 0 R] /Limits [(lstnumber.-4.19) (lstnumber.-4.23)] >> endobj 700 0 obj << /Names [(lstnumber.-4.24) 412 0 R (lstnumber.-4.25) 413 0 R (lstnumber.-4.26) 414 0 R (lstnumber.-4.27) 415 0 R (lstnumber.-4.28) 416 0 R (lstnumber.-4.29) 417 0 R] /Limits [(lstnumber.-4.24) (lstnumber.-4.29)] >> endobj 701 0 obj << /Names [(lstnumber.-4.3) 383 0 R (lstnumber.-4.30) 418 0 R (lstnumber.-4.31) 419 0 R (lstnumber.-4.32) 420 0 R (lstnumber.-4.33) 421 0 R (lstnumber.-4.34) 422 0 R] /Limits [(lstnumber.-4.3) (lstnumber.-4.34)] >> endobj 702 0 obj << /Names [(lstnumber.-4.35) 423 0 R (lstnumber.-4.36) 424 0 R (lstnumber.-4.37) 425 0 R (lstnumber.-4.38) 426 0 R (lstnumber.-4.39) 427 0 R (lstnumber.-4.4) 392 0 R] /Limits [(lstnumber.-4.35) (lstnumber.-4.4)] >> endobj 703 0 obj << /Names [(lstnumber.-4.40) 428 0 R (lstnumber.-4.5) 393 0 R (lstnumber.-4.6) 394 0 R (lstnumber.-4.7) 395 0 R (lstnumber.-4.8) 396 0 R (lstnumber.-4.9) 397 0 R] /Limits [(lstnumber.-4.40) (lstnumber.-4.9)] >> endobj 704 0 obj << /Names [(page.1) 101 0 R (page.10) 189 0 R (page.11) 193 0 R (page.12) 200 0 R (page.13) 209 0 R (page.14) 217 0 R] /Limits [(page.1) (page.14)] >> endobj 705 0 obj << /Names [(page.15) 224 0 R (page.16) 228 0 R (page.17) 240 0 R (page.18) 246 0 R (page.19) 259 0 R (page.2) 114 0 R] /Limits [(page.15) (page.2)] >> endobj 706 0 obj << /Names [(page.20) 265 0 R (page.21) 314 0 R (page.22) 330 0 R (page.23) 335 0 R (page.24) 353 0 R (page.25) 359 0 R] /Limits [(page.20) (page.25)] >> endobj 707 0 obj << /Names [(page.26) 378 0 R (page.27) 391 0 R (page.28) 435 0 R (page.29) 440 0 R (page.3) 130 0 R (page.30) 460 0 R] /Limits [(page.26) (page.30)] >> endobj 708 0 obj << /Names [(page.31) 466 0 R (page.32) 478 0 R (page.33) 482 0 R (page.34) 486 0 R (page.35) 493 0 R (page.36) 498 0 R] /Limits [(page.31) (page.36)] >> endobj 709 0 obj << /Names [(page.37) 518 0 R (page.38) 525 0 R (page.39) 541 0 R (page.4) 135 0 R (page.40) 546 0 R (page.41) 557 0 R] /Limits [(page.37) (page.41)] >> endobj 710 0 obj << /Names [(page.42) 567 0 R (page.43) 575 0 R (page.44) 583 0 R (page.45) 590 0 R (page.46) 604 0 R (page.47) 610 0 R] /Limits [(page.42) (page.47)] >> endobj 711 0 obj << /Names [(page.48) 615 0 R (page.49) 619 0 R (page.5) 140 0 R (page.6) 152 0 R (page.7) 164 0 R (page.8) 171 0 R] /Limits [(page.48) (page.8)] >> endobj 712 0 obj << /Names [(page.9) 185 0 R (section*.1) 105 0 R (section*.2) 611 0 R (section.1) 2 0 R (section.2) 6 0 R (section.3) 26 0 R] /Limits [(page.9) (section.3)] >> endobj 713 0 obj << /Names [(section.4) 50 0 R (section.5) 70 0 R (subsection.2.1) 10 0 R (subsection.2.2) 14 0 R (subsection.2.3) 18 0 R (subsection.2.4) 22 0 R] /Limits [(section.4) (subsection.2.4)] >> endobj 714 0 obj << /Names [(subsection.3.1) 30 0 R (subsection.3.2) 34 0 R (subsection.3.3) 38 0 R (subsection.3.4) 42 0 R (subsection.3.5) 46 0 R (subsection.4.1) 54 0 R] /Limits [(subsection.3.1) (subsection.4.1)] >> endobj 715 0 obj << /Names [(subsection.4.2) 58 0 R (subsection.4.3) 62 0 R (subsection.4.4) 66 0 R (subsection.5.1) 74 0 R] /Limits [(subsection.4.2) (subsection.5.1)] >> endobj 716 0 obj << /Kids [683 0 R 684 0 R 685 0 R 686 0 R 687 0 R 688 0 R] /Limits [(Doc-Start) (lstlisting.-4)] >> endobj 717 0 obj << /Kids [689 0 R 690 0 R 691 0 R 692 0 R 693 0 R 694 0 R] /Limits [(lstnumber.-1.1) (lstnumber.-2.5)] >> endobj 718 0 obj << /Kids [695 0 R 696 0 R 697 0 R 698 0 R 699 0 R 700 0 R] /Limits [(lstnumber.-2.6) (lstnumber.-4.29)] >> endobj 719 0 obj << /Kids [701 0 R 702 0 R 703 0 R 704 0 R 705 0 R 706 0 R] /Limits [(lstnumber.-4.3) (page.25)] >> endobj 720 0 obj << /Kids [707 0 R 708 0 R 709 0 R 710 0 R 711 0 R 712 0 R] /Limits [(page.26) (section.3)] >> endobj 721 0 obj << /Kids [713 0 R 714 0 R 715 0 R] /Limits [(section.4) (subsection.5.1)] >> endobj 722 0 obj << /Kids [716 0 R 717 0 R 718 0 R 719 0 R 720 0 R 721 0 R] /Limits [(Doc-Start) (subsection.5.1)] >> endobj 723 0 obj << /Dests 722 0 R >> endobj 724 0 obj << /Type /Catalog /Pages 681 0 R /Outlines 682 0 R /Names 723 0 R /PageMode/UseOutlines/SweaveConcordance 79 0 R /OpenAction 77 0 R >> endobj 725 0 obj << /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.14)/Keywords() /CreationDate (D:20150225101937+01'00') /ModDate (D:20150225101937+01'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) kpathsea version 6.1.1) >> endobj xref 0 726 0000000000 65535 f 0000000015 00000 n 0000012811 00000 n 0001059509 00000 n 0000000060 00000 n 0000000090 00000 n 0000017549 00000 n 0001059388 00000 n 0000000135 00000 n 0000000172 00000 n 0000017604 00000 n 0001059316 00000 n 0000000222 00000 n 0000000283 00000 n 0000029113 00000 n 0001059230 00000 n 0000000334 00000 n 0000000394 00000 n 0000057999 00000 n 0001059144 00000 n 0000000445 00000 n 0000000488 00000 n 0000065102 00000 n 0001059071 00000 n 0000000539 00000 n 0000000595 00000 n 0000067362 00000 n 0001058947 00000 n 0000000641 00000 n 0000000676 00000 n 0000067418 00000 n 0001058873 00000 n 0000000727 00000 n 0000000777 00000 n 0000087187 00000 n 0001058786 00000 n 0000000828 00000 n 0000000875 00000 n 0000544636 00000 n 0001058699 00000 n 0000000926 00000 n 0000000969 00000 n 0000558032 00000 n 0001058612 00000 n 0000001020 00000 n 0000001060 00000 n 0000566201 00000 n 0001058538 00000 n 0000001111 00000 n 0000001184 00000 n 0000601521 00000 n 0001058413 00000 n 0000001230 00000 n 0000001266 00000 n 0000601577 00000 n 0001058339 00000 n 0000001317 00000 n 0000001378 00000 n 0000601633 00000 n 0001058252 00000 n 0000001429 00000 n 0000001478 00000 n 0000642848 00000 n 0001058165 00000 n 0000001529 00000 n 0000001583 00000 n 0000806805 00000 n 0001058091 00000 n 0000001634 00000 n 0000001691 00000 n 0000813346 00000 n 0001057979 00000 n 0000001737 00000 n 0000001764 00000 n 0000813402 00000 n 0001057918 00000 n 0000001815 00000 n 0000001853 00000 n 0000005235 00000 n 0000001901 00000 n 0000005497 00000 n 0000005646 00000 n 0000005794 00000 n 0000005950 00000 n 0000006104 00000 n 0000006260 00000 n 0000006415 00000 n 0000006565 00000 n 0000006721 00000 n 0000006877 00000 n 0000007033 00000 n 0000007189 00000 n 0000007344 00000 n 0000007493 00000 n 0000007649 00000 n 0000007805 00000 n 0000007961 00000 n 0000008115 00000 n 0000008264 00000 n 0000008587 00000 n 0000003913 00000 n 0000008420 00000 n 0000008475 00000 n 0001055118 00000 n 0001054975 00000 n 0000008531 00000 n 0001054111 00000 n 0001053967 00000 n 0001054833 00000 n 0001055976 00000 n 0001056550 00000 n 0000012866 00000 n 0000012636 00000 n 0000008722 00000 n 0000012755 00000 n 0001054401 00000 n 0001055689 00000 n 0001055402 00000 n 0001054689 00000 n 0001055832 00000 n 0001055261 00000 n 0001054545 00000 n 0001054255 00000 n 0000017038 00000 n 0000017190 00000 n 0000017342 00000 n 0000020287 00000 n 0000017660 00000 n 0000016883 00000 n 0000013077 00000 n 0000017493 00000 n 0001055543 00000 n 0000020498 00000 n 0000020148 00000 n 0000017783 00000 n 0000020442 00000 n 0000811245 00000 n 0000023827 00000 n 0000023652 00000 n 0000020595 00000 n 0000023771 00000 n 0001056264 00000 n 0000815841 00000 n 0000028129 00000 n 0000028281 00000 n 0000028432 00000 n 0000028584 00000 n 0000028745 00000 n 0000028899 00000 n 0000029169 00000 n 0000027950 00000 n 0000023989 00000 n 0000029057 00000 n 0000811529 00000 n 0000811642 00000 n 0000811870 00000 n 0000031390 00000 n 0000032484 00000 n 0000040555 00000 n 0000031541 00000 n 0000050597 00000 n 0000031749 00000 n 0000031243 00000 n 0000029305 00000 n 0000031693 00000 n 0001056666 00000 n 0000047796 00000 n 0000811473 00000 n 0000047858 00000 n 0000032365 00000 n 0000031846 00000 n 0000047740 00000 n 0000037331 00000 n 0000037475 00000 n 0000037577 00000 n 0000037614 00000 n 0000037857 00000 n 0000044516 00000 n 0000044660 00000 n 0000044762 00000 n 0000044799 00000 n 0000045042 00000 n 0000050804 00000 n 0000050458 00000 n 0000047970 00000 n 0000050748 00000 n 0000052924 00000 n 0000052749 00000 n 0000050901 00000 n 0000052868 00000 n 0000055082 00000 n 0000054907 00000 n 0000053060 00000 n 0000055026 00000 n 0000057627 00000 n 0000057785 00000 n 0000061179 00000 n 0000058055 00000 n 0000057480 00000 n 0000055179 00000 n 0000057943 00000 n 0000811359 00000 n 0000811416 00000 n 0000061335 00000 n 0000061492 00000 n 0000064889 00000 n 0000061706 00000 n 0000061024 00000 n 0000058178 00000 n 0000061650 00000 n 0001056783 00000 n 0000810903 00000 n 0000810960 00000 n 0000811302 00000 n 0000065158 00000 n 0000064750 00000 n 0000061816 00000 n 0000065046 00000 n 0000811756 00000 n 0000069898 00000 n 0000074297 00000 n 0000067474 00000 n 0000067187 00000 n 0000065268 00000 n 0000067306 00000 n 0000074565 00000 n 0000069759 00000 n 0000067584 00000 n 0000074447 00000 n 0000074503 00000 n 0000071075 00000 n 0000071219 00000 n 0000071319 00000 n 0000071356 00000 n 0000071599 00000 n 0000078795 00000 n 0000076632 00000 n 0000076839 00000 n 0000076493 00000 n 0000074715 00000 n 0000076783 00000 n 0000083616 00000 n 0000083403 00000 n 0000083678 00000 n 0000078656 00000 n 0000076962 00000 n 0000083560 00000 n 0000080181 00000 n 0000080325 00000 n 0000080425 00000 n 0000080462 00000 n 0000080705 00000 n 0000811813 00000 n 0000086666 00000 n 0000086824 00000 n 0000086976 00000 n 0000087242 00000 n 0000086511 00000 n 0000083803 00000 n 0000087131 00000 n 0001056900 00000 n 0000811586 00000 n 0000091219 00000 n 0000088657 00000 n 0000087378 00000 n 0000088776 00000 n 0000088832 00000 n 0000088889 00000 n 0001056407 00000 n 0000088946 00000 n 0000089003 00000 n 0000089060 00000 n 0000089117 00000 n 0000089174 00000 n 0000089229 00000 n 0000089286 00000 n 0000089343 00000 n 0000089400 00000 n 0000089457 00000 n 0000089514 00000 n 0000089571 00000 n 0000089627 00000 n 0000089684 00000 n 0000089741 00000 n 0000089798 00000 n 0000089855 00000 n 0000089912 00000 n 0000089969 00000 n 0000090026 00000 n 0000090083 00000 n 0000090139 00000 n 0000090196 00000 n 0000090253 00000 n 0000090310 00000 n 0000090367 00000 n 0000090424 00000 n 0000090481 00000 n 0000090538 00000 n 0000090595 00000 n 0000090652 00000 n 0000090709 00000 n 0000090765 00000 n 0000090822 00000 n 0000090879 00000 n 0000090936 00000 n 0000090993 00000 n 0000091050 00000 n 0000091107 00000 n 0000091164 00000 n 0000092881 00000 n 0000097604 00000 n 0000097873 00000 n 0000092742 00000 n 0000091329 00000 n 0000097755 00000 n 0000097811 00000 n 0000094169 00000 n 0000094313 00000 n 0000094413 00000 n 0000094518 00000 n 0000094626 00000 n 0000094663 00000 n 0000094906 00000 n 0000100467 00000 n 0000100618 00000 n 0000101658 00000 n 0000243252 00000 n 0000100823 00000 n 0000100320 00000 n 0000097998 00000 n 0000100767 00000 n 0000384249 00000 n 0000384311 00000 n 0000101539 00000 n 0000100932 00000 n 0000384193 00000 n 0000239945 00000 n 0000240089 00000 n 0000240174 00000 n 0000240274 00000 n 0000240311 00000 n 0000240554 00000 n 0000380886 00000 n 0000381030 00000 n 0000381115 00000 n 0000381215 00000 n 0000381252 00000 n 0000381495 00000 n 0000387612 00000 n 0000387766 00000 n 0000387979 00000 n 0000387465 00000 n 0000384423 00000 n 0000387923 00000 n 0000811074 00000 n 0000811188 00000 n 0000390665 00000 n 0000389864 00000 n 0000388089 00000 n 0000389983 00000 n 0000390039 00000 n 0000390096 00000 n 0000390153 00000 n 0000390210 00000 n 0000390267 00000 n 0000390324 00000 n 0000390381 00000 n 0000390438 00000 n 0000390494 00000 n 0000390551 00000 n 0000390608 00000 n 0001057017 00000 n 0000393034 00000 n 0000458452 00000 n 0000458602 00000 n 0000459096 00000 n 0000392887 00000 n 0000390775 00000 n 0000458752 00000 n 0000458808 00000 n 0000458870 00000 n 0000458927 00000 n 0000458984 00000 n 0000459041 00000 n 0000455488 00000 n 0000455632 00000 n 0000455717 00000 n 0000455754 00000 n 0000463282 00000 n 0000461002 00000 n 0000459247 00000 n 0000461121 00000 n 0000461177 00000 n 0000461234 00000 n 0000461291 00000 n 0000461348 00000 n 0000461405 00000 n 0000461461 00000 n 0000461518 00000 n 0000461575 00000 n 0000461632 00000 n 0000461689 00000 n 0000461746 00000 n 0000461803 00000 n 0000461860 00000 n 0000461917 00000 n 0000461972 00000 n 0000462029 00000 n 0000462086 00000 n 0000462143 00000 n 0000462200 00000 n 0000462257 00000 n 0000462314 00000 n 0000462371 00000 n 0000462428 00000 n 0000462485 00000 n 0000462542 00000 n 0000462599 00000 n 0000462656 00000 n 0000462713 00000 n 0000462770 00000 n 0000462827 00000 n 0000462884 00000 n 0000462941 00000 n 0000462997 00000 n 0000463054 00000 n 0000463111 00000 n 0000463168 00000 n 0000463225 00000 n 0000465661 00000 n 0000466899 00000 n 0000471600 00000 n 0000465868 00000 n 0000465522 00000 n 0000463418 00000 n 0000465812 00000 n 0000541149 00000 n 0000541211 00000 n 0000466780 00000 n 0000465991 00000 n 0000541093 00000 n 0000468165 00000 n 0000468309 00000 n 0000468409 00000 n 0000468514 00000 n 0000468622 00000 n 0000468659 00000 n 0000468902 00000 n 0000537786 00000 n 0000537930 00000 n 0000538015 00000 n 0000538115 00000 n 0000538152 00000 n 0000538395 00000 n 0000544103 00000 n 0000544262 00000 n 0000544420 00000 n 0000544692 00000 n 0000543948 00000 n 0000541324 00000 n 0000544580 00000 n 0000554795 00000 n 0000546488 00000 n 0000555063 00000 n 0000546349 00000 n 0000544802 00000 n 0000554945 00000 n 0000555001 00000 n 0001057134 00000 n 0000551486 00000 n 0000551630 00000 n 0000551715 00000 n 0000551817 00000 n 0000551854 00000 n 0000552097 00000 n 0000558087 00000 n 0000557857 00000 n 0000555189 00000 n 0000557976 00000 n 0000560696 00000 n 0000560521 00000 n 0000558197 00000 n 0000560640 00000 n 0000562903 00000 n 0000562728 00000 n 0000560793 00000 n 0000562847 00000 n 0000565994 00000 n 0000567041 00000 n 0000571264 00000 n 0000566257 00000 n 0000565855 00000 n 0000563000 00000 n 0000566145 00000 n 0000575512 00000 n 0000575574 00000 n 0000566922 00000 n 0000566380 00000 n 0000575456 00000 n 0000568042 00000 n 0000568186 00000 n 0000568286 00000 n 0000568323 00000 n 0000568566 00000 n 0000572234 00000 n 0000572378 00000 n 0000572478 00000 n 0000572515 00000 n 0000572758 00000 n 0000579283 00000 n 0000579433 00000 n 0000580568 00000 n 0000584749 00000 n 0000579585 00000 n 0000592085 00000 n 0000579796 00000 n 0000579128 00000 n 0000575688 00000 n 0000579740 00000 n 0001057251 00000 n 0000589029 00000 n 0000811131 00000 n 0000589090 00000 n 0000580449 00000 n 0000579919 00000 n 0000588973 00000 n 0000581527 00000 n 0000581671 00000 n 0000581771 00000 n 0000581808 00000 n 0000582051 00000 n 0000585751 00000 n 0000585895 00000 n 0000585995 00000 n 0000586032 00000 n 0000586275 00000 n 0000592236 00000 n 0000593074 00000 n 0000592442 00000 n 0000591938 00000 n 0000589204 00000 n 0000592386 00000 n 0000597325 00000 n 0000597387 00000 n 0000592955 00000 n 0000592539 00000 n 0000597269 00000 n 0000594047 00000 n 0000594191 00000 n 0000594291 00000 n 0000594328 00000 n 0000594571 00000 n 0000601078 00000 n 0000601230 00000 n 0000601689 00000 n 0000600931 00000 n 0000597487 00000 n 0000601465 00000 n 0001056120 00000 n 0000642463 00000 n 0000642622 00000 n 0000604230 00000 n 0000642392 00000 n 0000643696 00000 n 0000642903 00000 n 0000604068 00000 n 0000601825 00000 n 0000642792 00000 n 0000639608 00000 n 0000811699 00000 n 0000710221 00000 n 0000732107 00000 n 0000730404 00000 n 0000643562 00000 n 0000643050 00000 n 0000730348 00000 n 0001057368 00000 n 0000708625 00000 n 0000728280 00000 n 0000752252 00000 n 0000752465 00000 n 0000731953 00000 n 0000730539 00000 n 0000752409 00000 n 0000750204 00000 n 0000761102 00000 n 0000753973 00000 n 0000761372 00000 n 0000753834 00000 n 0000752599 00000 n 0000761254 00000 n 0000761310 00000 n 0000757878 00000 n 0000758022 00000 n 0000758124 00000 n 0000758161 00000 n 0000758404 00000 n 0000806264 00000 n 0000806422 00000 n 0000806599 00000 n 0000763391 00000 n 0000806923 00000 n 0000763236 00000 n 0000761498 00000 n 0000806749 00000 n 0000806861 00000 n 0000811017 00000 n 0000811927 00000 n 0000810671 00000 n 0000807070 00000 n 0000810790 00000 n 0000810846 00000 n 0000813458 00000 n 0000813171 00000 n 0000812024 00000 n 0000813290 00000 n 0000814843 00000 n 0000814668 00000 n 0000813555 00000 n 0000814787 00000 n 0001057485 00000 n 0000814927 00000 n 0000815252 00000 n 0000815611 00000 n 0000816090 00000 n 0000816116 00000 n 0000816179 00000 n 0000816216 00000 n 0000816787 00000 n 0000817178 00000 n 0000817519 00000 n 0000817544 00000 n 0000817569 00000 n 0000818232 00000 n 0000818288 00000 n 0000818405 00000 n 0000819005 00000 n 0000819394 00000 n 0000819785 00000 n 0000820487 00000 n 0000820960 00000 n 0000821597 00000 n 0000822063 00000 n 0000822396 00000 n 0000839445 00000 n 0000839790 00000 n 0000855200 00000 n 0000855534 00000 n 0000866457 00000 n 0000866718 00000 n 0000878527 00000 n 0000878798 00000 n 0000885918 00000 n 0000886138 00000 n 0000894391 00000 n 0000894619 00000 n 0000920480 00000 n 0000921055 00000 n 0000933206 00000 n 0000933506 00000 n 0000942989 00000 n 0000943233 00000 n 0000950243 00000 n 0000950463 00000 n 0000957688 00000 n 0000957910 00000 n 0000976703 00000 n 0000977238 00000 n 0000984985 00000 n 0000985262 00000 n 0001003466 00000 n 0001003855 00000 n 0001025331 00000 n 0001025915 00000 n 0001028746 00000 n 0001028974 00000 n 0001037600 00000 n 0001037958 00000 n 0001053557 00000 n 0001057562 00000 n 0001057680 00000 n 0001057774 00000 n 0001057844 00000 n 0001059580 00000 n 0001059792 00000 n 0001060011 00000 n 0001060249 00000 n 0001060446 00000 n 0001060624 00000 n 0001060827 00000 n 0001061059 00000 n 0001061291 00000 n 0001061525 00000 n 0001061754 00000 n 0001061983 00000 n 0001062212 00000 n 0001062440 00000 n 0001062666 00000 n 0001062896 00000 n 0001063130 00000 n 0001063363 00000 n 0001063597 00000 n 0001063829 00000 n 0001064061 00000 n 0001064289 00000 n 0001064457 00000 n 0001064625 00000 n 0001064795 00000 n 0001064964 00000 n 0001065134 00000 n 0001065303 00000 n 0001065473 00000 n 0001065638 00000 n 0001065815 00000 n 0001066020 00000 n 0001066240 00000 n 0001066412 00000 n 0001066529 00000 n 0001066652 00000 n 0001066776 00000 n 0001066892 00000 n 0001067003 00000 n 0001067097 00000 n 0001067215 00000 n 0001067253 00000 n 0001067405 00000 n trailer << /Size 726 /Root 724 0 R /Info 725 0 R /ID [<1C10884511F61279E84F0B01121DAE86> <1C10884511F61279E84F0B01121DAE86>] >> startxref 1067731 %%EOF BoolNet/src/0000755000176000001440000000000012473311652012437 5ustar ripleyusersBoolNet/src/boolean_network.h0000644000176000001440000000557212473311652016011 0ustar ripleyusers#ifndef BOOLEAN_NETWORK_H #define BOOLEAN_NETWORK_H #define TRUTHTABLE_BOOLEAN_NETWORK 0 #define PROBABILISTIC_BOOLEAN_NETWORK 1 #define SYMBOLIC_BOOLEAN_NETWORK 2 /** * Basic structure for different types of * Boolean network (extended by derived structures * TruthTableBooleanNetwork, ProbabilisticBooleanNetwork and SymbolicBooleanNetwork) */ typedef struct { // the network type unsigned char type; // the number of genes in the network unsigned int numGenes; // a vector specifying whether the genes are fixed: // -1 means the gene is not fixed, 1 and 0 means the // genes are fixed to the corresponding values int * fixedGenes; } BooleanNetwork; /** * Internal structure describing a Boolean network * with a truth table representation */ typedef struct { // here: type = TRUTHTABLE_BOOLEAN_NETWORK unsigned char type; // the number of genes in the network unsigned int numGenes; // a vector specifying whether the genes are fixed: // -1 means the gene is not fixed, 1 and 0 means the // genes are fixed to the corresponding values int * fixedGenes; // an index array with the -th entry // specifying the bit position of the -th gene // in a state array - this is not always equal to , // as fixed genes are not stored unsigned int * nonFixedGeneBits; // a vector encoding the input genes for all transition functions. int * inputGenes; // a vector of indices to split up for the single // gene transition functions. int * inputGenePositions; // a vector encoding the return values of all transition functions int * transitionFunctions; // a vector of indices to split up for the single // genes. int * transitionFunctionPositions; } TruthTableBooleanNetwork; typedef struct { int * inputGenes; int * transitionFunction; unsigned int numGenes; double probability; unsigned int functionIndex; } PBNFunction; /** * Internal structure describing a Probabilistic Boolean network */ typedef struct { // here: type = PROBABILISTIC_BOOLEAN_NETWORK unsigned char type; // the number of genes in the network unsigned int numGenes; // a vector specifying whether the genes are fixed: // -1 means the gene is not fixed, 1 and 0 means the // genes are fixed to the corresponding values int * fixedGenes; // the number of non-fixed genes in the network unsigned int numNonFixedGenes; // an index array with the -th entry // specifying the bit position of the -th gene // in a state array - this is not always equal to , // as fixed genes are not stored unsigned int * nonFixedGeneBits; // an array containing an array of transition functions for each gene PBNFunction ** transitionFunctions; // the lengths of the arrays in unsigned int * numFunctionsPerGene; } ProbabilisticBooleanNetwork; // see also symbolic_boolean_network.h for the definition of symbolic networks #endif BoolNet/src/common.h0000644000176000001440000001477012473311652014111 0ustar ripleyusers#ifndef COMMON_H #define COMMON_H #include #include #include #include "uthash.h" /** * Common structures and definitions */ /** * Macros for bit manipulation */ // the number of bits that can be stored in one component of a 32-bit state array #define BITS_PER_BLOCK_32 (sizeof(unsigned int) * 8) // Retrieve the -th bit in #define GET_BIT(x,i) (((x) & ((unsigned long long)1 << (i))) != 0) // Set the -th bit in to 1 #define SET_BIT(x,i) ((x) | ((unsigned long long)1 << (i))) // Set the -th bit in to 0 #define CLEAR_BIT(x,i) ((x) & (~((unsigned long long)1 << (i)))) // Set the -th bit in to #define SET_BIT_TO_VAL(x,i,v) (((x) & (~((unsigned long long)1 << (i)))) | ((v) << (i))) // Retrieve the -th bit in an array of 32-bit integers #define GET_BIT_ARRAY(x,i) (((*(&(x) + i / BITS_PER_BLOCK_32)) & ((unsigned int)1 << (i % BITS_PER_BLOCK_32))) != 0) // Set the -th bit in an array of 32-bit integers to 1 #define SET_BIT_ARRAY(x,i) (*(&(x) + i / BITS_PER_BLOCK_32) |= ((unsigned int)1 << (i % BITS_PER_BLOCK_32))) // Set the -th bit in an array of 32-bit integers to 0 #define CLEAR_BIT_ARRAY(x,i) (*(&(x) + i / BITS_PER_BLOCK_32) &= (~((unsigned int)1 << (i % BITS_PER_BLOCK_32)))) /** * Macros for the management of vector-like buffers with automatic resizing */ // Allocate a buffer of type [] and set the capacity counter and the number of elements #define ALLOC_BUFFER(buf, type, sz, count) do{sz = 4; count = 0; buf = calloc(sz, sizeof(type)); } while(0); // Add a new element of type to the buffer , and update the capacity counter and the number of elements #define PUT_BUFFER(buf, type, sz, count, el) do{if (sz == count) {sz *= 2; buf = realloc(buf, sz * sizeof(type));} buf[count++] = (type) el; } while(0); // Set the capacity of the buffer of type [] to the current number of elements #define FINALIZE_BUFFER(buf, type, sz, count) do{sz = count; buf = realloc(buf, sz * sizeof(type)); } while(0); /** * A hash structure for the allocated memory map */ typedef struct { // a pointer to the allocated memory void * ptr; // used by the hash table UT_hash_handle hh; } AllocatedMemory; // map that stores all allocated memory pointers // to free them on interrupt extern AllocatedMemory * memoryMap; /** * Custom function to allocate memory that stores * the pointers in the global map. */ static inline void* CALLOC(size_t n, size_t sz) { void * ptr = calloc(n, sz); if (ptr == NULL) error("Out of memory!"); AllocatedMemory * m = calloc(1, sizeof(AllocatedMemory)); m->ptr = ptr; HASH_ADD_PTR(memoryMap, ptr, m); return ptr; } static inline void* REALLOC(void* ptr, size_t new_sz) { if (ptr == NULL) return CALLOC(new_sz, 1); void * newptr = realloc(ptr, new_sz); if (newptr == NULL) error("Out of memory!"); if (newptr != ptr) { AllocatedMemory * m; HASH_FIND_PTR(memoryMap, &ptr, m); HASH_DEL(memoryMap, m); m->ptr = newptr; HASH_ADD_PTR(memoryMap, ptr, m); } return newptr; } /** * Custom function to free memory that was * allocated using CALLOC(). */ static inline void FREE(void * ptr) { AllocatedMemory * m; HASH_FIND_PTR(memoryMap, &ptr, m); HASH_DEL(memoryMap, m); free(m); free(ptr); } /** * Add one to a binary number represented by an array of characters * with 0/1 elements. * is a vector of fixed positions that are not touched or NULL. * Return true if there is a next state, or false in case of an overflow. */ static inline bool getNextState(unsigned char * state, int * fixed, unsigned int numBits) { if (numBits == 0) return false; int i = numBits - 1; while(true) { while (fixed != NULL && fixed[i] != -1) { --i; } if (i < 0) return false; if (state[i] == 0) { state[i] = 1; return true; } else { if (i == 0) return false; state[i] = 0; --i; } } } /** * Free all remaining memory blocks stored in * the global map. */ extern void freeAllMemory(); /** * A structure that provides flexible * large array blocks as a list of arrays */ typedef struct ALE { void * array; struct ALE * next; } ArrayListElement; static inline void allocNewArray(ArrayListElement ** head, unsigned int numElements, unsigned int elementSize) { ArrayListElement * el = CALLOC(1, sizeof(ArrayListElement)); el->array = CALLOC(numElements, elementSize); el->next = *head; *head = el; } /* * Free an array list . */ static inline void freeArrayList(ArrayListElement * head) { ArrayListElement * current = head; while (current != NULL) { ArrayListElement * next = current->next; FREE(current->array); FREE(current); current = next; } } /** * Encode a vector of binary values in an integer. * The rightmost element in is the leftmost bit in * is an array of elements, and points * to an integer to which the result is written. */ extern void bin2dec(int *dec, int *bin, int *numBits); /** * Decode an integer to a vector of binary values. * The rightmost element in is the leftmost bit in * points to the result vector, is a number * to be decoded, and is the number of bits/elements in bin */ extern void dec2bin(int *bin, int *dec, int *numBits); /** * Inserts values of fixed genes into states - this is required as * fixed genes are not encoded in the internal state representations. * is a pointer to a state to be corrected. * is an array specifying which genes are fixed, as contained in * the BooleanNetwork structure. * is the length of . * The function changes the state pointed to by and has no return value. */ extern void insertFixedGenes(unsigned int * value, int* fixedGenes, unsigned int numGenes); /** * Removes values of fixed genes from states - this is required as * fixed genes are not encoded in the internal state representations. * is a pointer to a state to be corrected. * is an array specifying which genes are fixed, as contained in * the BooleanNetwork structure. * is the length of . * The function changes the state pointed to by and has no return value. */ extern void removeFixedGenes(unsigned int * value, int* fixedGenes, unsigned int numGenes); extern SEXP getListElement(SEXP list, char *str); #endif BoolNet/src/symbolic_simulator.c0000644000176000001440000011175112473311652016531 0ustar ripleyusers#include #include #include #include #include #include #include #include #include #include "symbolic_network.h" #include "uthash.h" #include "common.h" #include "random.h" #include "sat_search.h" #define STATEHASH_ARRAY_SIZE 1024 /** * A list element containing the states of one attractor */ typedef struct ASLE { TemporalState ** states; unsigned int numStates; struct ASLE * next; unsigned int index; } TemporalAttractorStateListElement; /** * A list comprising attractors */ typedef struct { TemporalAttractorStateListElement * head; TemporalAttractorStateListElement * tail; unsigned int size; } TemporalAttractorStateList; /** * A hash structure for state sets */ typedef struct SH { UT_hash_handle hh; struct SH * nextState; unsigned int sequenceIndex; TemporalState * initialState; } TemporalStateHash; /** * A structure for mapping states to attractors */ typedef struct { UT_hash_handle hh; TemporalAttractorStateListElement * attractor; TemporalState * state; } TemporalAttractorHash; /** * A wrapper structure for a state set */ typedef struct { ArrayListElement * hashStructs; ArrayListElement * stateStructs; TemporalStateHash * table; unsigned int stateSize; unsigned int internalStateSize; unsigned int hashSize; unsigned int currentEntryHash; unsigned int poolArraySize; } TemporalStateHashTable; /** * A wrapper structure for a map * mapping states to attractors */ typedef struct { ArrayListElement * hashStructs; ArrayListElement * stateStructs; TemporalAttractorHash * table; unsigned int stateSize; unsigned int internalStateSize; unsigned int currentEntryHash; unsigned int poolArraySize; } AttractorHashTable; /** * Functions to handle hash tables for states and attractors */ TemporalStateHashTable * allocStateHashTable(unsigned int stateSize) { TemporalStateHashTable * res = CALLOC(1, sizeof(TemporalStateHashTable)); res->hashStructs = NULL; res->stateStructs = NULL; res->stateSize = stateSize; // ensure proper alignment of states in array if (stateSize % sizeof(unsigned long long) == 0) res->internalStateSize = stateSize; else res->internalStateSize = ((stateSize / sizeof(unsigned long long)) * sizeof(unsigned long long) + sizeof(unsigned long long)); res->hashSize = offsetof(TemporalState, state) + stateSize * sizeof(unsigned char); res->table = NULL; res->currentEntryHash = 0; res->poolArraySize = STATEHASH_ARRAY_SIZE; return res; } AttractorHashTable * allocAttractorHashTable(unsigned int stateSize) { AttractorHashTable * res = CALLOC(1, sizeof(AttractorHashTable)); res->hashStructs = NULL; res->stateStructs = NULL; res->stateSize = stateSize; // ensure proper alignment of states in array if (stateSize % sizeof(unsigned long long) == 0) res->internalStateSize = stateSize; else res->internalStateSize = ((stateSize / sizeof(unsigned long long)) * sizeof(unsigned long long) + sizeof(unsigned long long)); res->table = NULL; res->currentEntryHash = 0; res->poolArraySize = STATEHASH_ARRAY_SIZE; return res; } void freeStateHashTable(TemporalStateHashTable * hash) { TemporalStateHash * entry, *tmp; HASH_ITER(hh, hash->table, entry, tmp) { HASH_DEL(hash->table, entry); } freeArrayList(hash->hashStructs); freeArrayList(hash->stateStructs); FREE(hash); } void freeAttractorHashTable(AttractorHashTable * hash) { TemporalAttractorHash * entry, *tmp; HASH_ITER(hh, hash->table, entry, tmp) { HASH_DEL(hash->table, entry); } freeArrayList(hash->hashStructs); freeArrayList(hash->stateStructs); FREE(hash); } /** * Decode a sequence of states as a state-memory representation and * returns it in . * is the network to which the state belongs. * is the number of entries in the state vector. */ inline static void decodeState(SymbolicBooleanNetwork * network, int * state, unsigned int stateLength, TemporalState * result) { unsigned int numStates = stateLength / network->numGenes; unsigned int i, j; memset(result, 0, sizeof(TemporalState) + network->totalStateSize * sizeof(unsigned char)); for (i = 0; i < network->numGenes; ++i) { for (j = 0; j < network->stateSizes[i]; ++j) { if (j < numStates) result->state[network->stateOffsets[i] + j] = state[i * numStates + j]; else result->state[network->stateOffsets[i] + j] = state[(i + 1) * numStates - 1]; } } } /** * Check whether a stat transition pair has already been traversed, and store it in the hash * table otherwise. * is the hash table for the lookup. * is the next state after the state transition. * receives the initial state of the transition if it was found. * If is true, the absolute time point is not stored in the table. * is the index of the sequence to which the transition belongs. * Returns true if the state was found, and false otherwise. */ bool findOrStore(TemporalStateHashTable * hash, TemporalStateHash ** initialState, TemporalState * nextState, bool dropTimeInfo, unsigned int sequenceIndex) { //TemporalState * search = CALLOC(1, sizeof(StateHash) + sizeof(unsigned char) * hash->stateSize); //memcpy(search, nextState, sizeof(TemporalState) + sizeof(unsigned char) * hash->stateSize); //if (dropTimeInfo) //{ // search->timeStep = HASH_UNSET; // search->startState = HASH_UNSET; //} TemporalStateHash * res = NULL; if (dropTimeInfo) { HASH_FIND(hh, hash->table, nextState->state, hash->stateSize, res); } else { HASH_FIND(hh, hash->table, nextState, hash->hashSize, res); } if (res != NULL) { if (*initialState != NULL) (*initialState)->nextState = res; *initialState = res; return true; } if (hash->currentEntryHash % hash->poolArraySize == 0) { allocNewArray(&hash->hashStructs, hash->poolArraySize, sizeof(TemporalStateHash)); allocNewArray(&hash->stateStructs, hash->poolArraySize, sizeof(TemporalState) + sizeof(unsigned char) * hash->internalStateSize); } res = (TemporalStateHash *) (((unsigned char *) hash->hashStructs->array) + sizeof(TemporalStateHash) * (hash->currentEntryHash % hash->poolArraySize)); res->initialState = (TemporalState *) (((unsigned char *) hash->stateStructs->array) + (sizeof(TemporalState) + sizeof(unsigned char) * hash->internalStateSize) * (hash->currentEntryHash % hash->poolArraySize)); memcpy(res->initialState, nextState, sizeof(TemporalState) + sizeof(unsigned char) * hash->stateSize); res->sequenceIndex = sequenceIndex; ++hash->currentEntryHash; if (*initialState != NULL) { (*initialState)->nextState = res; } //unsigned int i; //for (i = 0; i < hash->hashSize; ++i) // Rprintf("%x",((unsigned char *)&res->initialState)[i]); if (dropTimeInfo) { HASH_ADD(hh, hash->table, initialState->state, hash->stateSize, res); } else { HASH_ADD_KEYPTR(hh, hash->table, res->initialState, hash->hashSize, res); } *initialState = res; return false; } TemporalAttractorHash * addAttractorHashEntry(AttractorHashTable * hash, TemporalState * state, TemporalAttractorStateListElement * listElement) { if (hash->currentEntryHash % hash->poolArraySize == 0) { allocNewArray(&hash->hashStructs, hash->poolArraySize, sizeof(TemporalAttractorHash)); allocNewArray(&hash->stateStructs, hash->poolArraySize, sizeof(TemporalState) + sizeof(unsigned char) * hash->internalStateSize); } TemporalAttractorHash * res = (TemporalAttractorHash *) (((unsigned char *) hash->hashStructs->array) + sizeof(TemporalAttractorHash) * (hash->currentEntryHash % hash->poolArraySize)); res->state = (TemporalState *) (((unsigned char *) hash->stateStructs->array) + (sizeof(TemporalState) + sizeof(unsigned char) * hash->internalStateSize) * (hash->currentEntryHash % hash->poolArraySize)); memcpy(res->state, state, sizeof(TemporalState) + sizeof(unsigned char) * hash->stateSize); res->attractor = listElement; ++hash->currentEntryHash; HASH_ADD(hh, hash->table, state->state, hash->stateSize, res); return res; } /** * Find the attractor belonging to state in the hash table * and return it if it exists. */ TemporalAttractorStateListElement * getAttractorForState( AttractorHashTable * hash, TemporalState * state) { TemporalAttractorHash * res = NULL; HASH_FIND(hh, hash->table, state->state, hash->stateSize, res); if (res == NULL) { return NULL; } else { return res->attractor; } } /** * Allocate a list structure that stores attractors */ TemporalAttractorStateList * allocAttractorStateList() { TemporalAttractorStateList * res = CALLOC(1, sizeof(TemporalAttractorStateList)); res->size = 0; res->head = res->tail = NULL; return res; } /** * Add an empty attractor entry to the attractor list . * is the number of states of the attractor. * Returns the empty entry. */ TemporalAttractorStateListElement * addAttractor( TemporalAttractorStateList * list, unsigned int numStates) { TemporalAttractorStateListElement * res = CALLOC(1, sizeof(TemporalAttractorStateListElement)); res->numStates = numStates; res->states = CALLOC(numStates, sizeof(TemporalState *)); if (list->head == NULL) { list->head = res; res->index = 0; } else { list->tail->next = res; res->index = list->tail->index + 1; } ++list->size; list->tail = res; return res; } /** * Free all entries of the attractor list */ void freeAttractorStateList(TemporalAttractorStateList * list) { TemporalAttractorStateListElement * current = list->head, *tmp; while (true) { if (current == NULL) break; tmp = current; current = current->next; FREE(tmp->states); FREE(tmp); } FREE(list); } /** * Perform a state transition of the network from state * at the absolute time point . * Assigns the successor state to . */ void symbolicStateTransition(SymbolicBooleanNetwork * network, TemporalState * currentState, TemporalState * nextState, unsigned int * timeStep) { unsigned int i; for (i = 0; i < network->numGenes; ++i) { if (network->stateSizes[i] > 1) memcpy(&nextState->state[network->stateOffsets[i] + 1], ¤tState->state[network->stateOffsets[i]], (network->stateSizes[i] - 1) * sizeof(unsigned char)); if (network->fixedGenes[i] != -1) nextState->state[network->stateOffsets[i]] = network->fixedGenes[i]; else nextState->state[network->stateOffsets[i]] = evaluate( network->interactions[i], currentState, network->stateOffsets, network->numGenes); } nextState->timeStep = *timeStep; nextState->startState = currentState->startState; ++*timeStep; } /** * Finalizer that ensures that the internal C structures * of the R network object are freed when the * garbage collector frees . */ static void finalizeSymbolicNetwork(SEXP network) { if (NULL == R_ExternalPtrAddr(network)) return; //Rprintf("finalizing\n"); SymbolicBooleanNetwork * _network = R_ExternalPtrAddr(network); freeSymbolicNetwork(_network); R_ClearExternalPtr(network); } /** * Parse an R list specifying an expression tree and convert it to the * internal representation. * is a vector specifying the size of the history for each gene. * is the time step at which the last predicate that * depends on the absolute time point has obtained its final value. * is a Boolean vector that is set to true if the gene occurs in the formula * and to false otherwise. * Returns an internal tree representation of . */ BooleanFormula * parseRTree(SEXP formula, unsigned int * memorySizes, unsigned int * attractorSearchStartTime, bool * geneOccurs) { if (strcmp(CHAR(STRING_ELT(getListElement(formula, "type"), 0)), "atom") == 0) { BooleanAtom * res = allocAtom( *INTEGER(getListElement(formula, "index")) - 1, -*INTEGER(getListElement(formula, "time")) - 1, *LOGICAL(getListElement(formula, "negated"))); if (res->literal >= 0) { if (geneOccurs != NULL) geneOccurs[res->literal] = true; if (memorySizes[res->literal] < res->time + 1) { memorySizes[res->literal] = res->time + 1; } } return (BooleanFormula *) res; } else if (strcmp(CHAR(STRING_ELT(getListElement(formula, "type"), 0)), "constant") == 0) { Constant * res = allocConstant( *INTEGER(getListElement(formula, "value")), *LOGICAL(getListElement(formula, "negated"))); return (BooleanFormula *) res; } else { const char * operator = CHAR( STRING_ELT(getListElement(formula, "operator"), 0)); unsigned int op; if (strcmp(operator, "|") == 0) op = OPERATOR_OR; else if (strcmp(operator, "&") == 0) op = OPERATOR_AND; else if (strcmp(operator, "maj") == 0) op = OPERATOR_MAJ; else if (strcmp(operator, "sumis") == 0) op = OPERATOR_SUMIS; else if (strcmp(operator, "sumgt") == 0) op = OPERATOR_SUMGT; else if (strcmp(operator, "sumlt") == 0) op = OPERATOR_SUMLT; else if (strcmp(operator, "timeis") == 0) op = OPERATOR_TIMEIS; else if (strcmp(operator, "timegt") == 0) op = OPERATOR_TIMEGT; else if (strcmp(operator, "timelt") == 0) op = OPERATOR_TIMELT; else error("Unknown operator!"); SEXP operands = getListElement(formula, "operands"); BooleanOperator * res = allocOperator(op, *LOGICAL(getListElement(formula, "negated")), length(operands), NULL); unsigned int i; for (i = 0; i < length(operands); ++i) { res->operands[i] = parseRTree(VECTOR_ELT(operands, i), memorySizes, attractorSearchStartTime, geneOccurs); } if (res->operator == OPERATOR_TIMEIS || res->operator == OPERATOR_TIMEGT || res->operator == OPERATOR_TIMELT) { if (res->numOperands < 1|| res->operands[0]->type != FORMULA_CONSTANT) error("Time operator has an invalid specification!"); Constant * constant = ((Constant*) res->operands[0]); unsigned int value = constant->value; if (res->operator == OPERATOR_TIMELT) --value; if (value >= *attractorSearchStartTime) *attractorSearchStartTime = value; } return (BooleanFormula *) res; } } /** * R interface function to perform a state transition of * the network from state * at the absolute time point . * Returns the successor state. */ SEXP symbolicStateTransition_R(SEXP network, SEXP previousState, SEXP timeStep) { SymbolicBooleanNetwork * _network = R_ExternalPtrAddr(network); if (_network == NULL) error("Internal network structures not supplied to C handler!"); unsigned int _timeStep = *INTEGER(timeStep), k; TemporalState * current = CALLOC(1, sizeof(TemporalState) + _network->totalStateSize * sizeof(unsigned char)); TemporalState * next = CALLOC(1, sizeof(TemporalState) + _network->totalStateSize * sizeof(unsigned char)); decodeState(_network, INTEGER(previousState), length(previousState), current); current->timeStep = _timeStep; symbolicStateTransition(_network, current, next, &_timeStep); SEXP retSXP; PROTECT(retSXP = allocVector(INTSXP, _network->numGenes)); int * resultState = INTEGER(retSXP); for (k = 0; k < _network->numGenes; ++k) { resultState[k] = next->state[_network->stateOffsets[k]]; } UNPROTECT(1); FREE(next); FREE(current); return retSXP; } /** * Convert a Boolean expression tree to a * truth table representation. * is the total number of genes in the network. * Returns a binary vector representing the truth table result column. */ SEXP getTruthTable_R(SEXP tree, SEXP numGenes) { int _numGenes = *INTEGER(numGenes); unsigned int attractorSearchStartTime = 0; unsigned int * stateSizes = CALLOC(_numGenes, sizeof(unsigned int)); unsigned int * stateOffsets = CALLOC(_numGenes, sizeof(unsigned int)); bool * geneOccurs = CALLOC(_numGenes, sizeof(bool)); unsigned int i, j; for (i = 0; i < _numGenes; ++i) { stateSizes[i] = 1; } BooleanFormula * _tree = parseRTree(tree, stateSizes, &attractorSearchStartTime, geneOccurs); if (attractorSearchStartTime > 0) { freeFormula(_tree); FREE(stateSizes); FREE(stateOffsets); FREE(geneOccurs); Rf_error( "Temporal operators are not allowed in the truth table representation!"); } unsigned int geneCount = 0; for (i = 0; i < _numGenes; ++i) { if (stateSizes[i] > 1) { freeFormula(_tree); FREE(stateSizes); FREE(stateOffsets); FREE(geneOccurs); Rf_error( "Temporal operators are not allowed in the truth table representation!"); } stateOffsets[i] = geneCount; if (geneOccurs[i]) ++geneCount; } SEXP res = PROTECT(allocList(2)); SEXP table = PROTECT(allocVector(INTSXP, 1 << geneCount)); SEXP genes = PROTECT(allocVector(INTSXP, (geneCount == 0? 1 : geneCount))); if (geneCount == 0) *INTEGER(genes) = 0; else { j = 0; for (i = 0; i < _numGenes; ++i) { if (geneOccurs[i]) { INTEGER(genes)[j++] = i + 1; } } } TemporalState * current = CALLOC(1, sizeof(TemporalState) + geneCount * sizeof(unsigned char)); memset(current, 0, sizeof(TemporalState) + geneCount * sizeof(unsigned char)); int * tableEntry = INTEGER(table); do { current->timeStep = 0; *tableEntry = evaluate(_tree, current, stateOffsets, geneCount); ++tableEntry; } while (getNextState(current->state, NULL, geneCount)); SETCAR(res, genes); SETCADR(res, table); freeFormula(_tree); FREE(stateSizes); FREE(stateOffsets); FREE(geneOccurs); UNPROTECT(3); return res; } /** * Construct the internal expression tree representation * of a symbolic network specified by the R object */ SEXP constructNetworkTrees_R(SEXP object) { SymbolicBooleanNetwork * network = calloc(1, sizeof(SymbolicBooleanNetwork)); SEXP interactions = getListElement(object, "interactions"); SEXP fixed = getListElement(object, "fixed"); network->type = SYMBOLIC_BOOLEAN_NETWORK; network->numGenes = length(interactions); network->attractorSearchStartTime = 0; network->stateSizes = calloc(network->numGenes, sizeof(unsigned int)); network->stateOffsets = calloc(network->numGenes + 1, sizeof(unsigned int)); network->fixedGenes = calloc(network->numGenes, sizeof(int)); network->interactions = calloc(network->numGenes, sizeof(BooleanFormula *)); unsigned int i, j; for (i = 0; i < network->numGenes; ++i) { network->fixedGenes[i] = INTEGER(fixed)[i]; network->stateSizes[i] = 1; } for (i = 0; i < network->numGenes; ++i) { network->interactions[i] = parseRTree(VECTOR_ELT(interactions, i), network->stateSizes, &network->attractorSearchStartTime, NULL); //printFormula(network->interactions[i]); //Rprintf("\n"); } network->totalStateSize = 0; for (i = 0; i < network->numGenes; ++i) { network->stateOffsets[i] = network->totalStateSize; network->totalStateSize += network->stateSizes[i]; } network->stateOffsets[network->numGenes] = network->totalStateSize; network->stateFixed = calloc(network->totalStateSize, sizeof(int)); for (i = 0; i < network->numGenes; ++i) { for (j = 0; j < network->stateSizes[i]; ++j) { network->stateFixed[network->stateOffsets[i] + j] = network->fixedGenes[i]; } } SEXP res = PROTECT( R_MakeExternalPtr(network, install("CStructures"), R_NilValue)); R_RegisterCFinalizerEx(res, finalizeSymbolicNetwork, true); UNPROTECT(1); return res; } BooleanFormula * getSATFormula(unsigned int targetIndex, BooleanFormula * formula, unsigned int time) { // create a formula of the form target <=> factors, i.e. // (target & factors) | (!target & !factors) // outer and BooleanOperator * extendedInteraction = allocOperator(OPERATOR_OR, false, 2, NULL); // target literal BooleanAtom * target = allocAtom(targetIndex, 0, false); // inner conjunctions BooleanOperator * firstConjunction = allocOperator(OPERATOR_AND, false, 2, NULL); BooleanOperator * secondConjunction = allocOperator(OPERATOR_AND, false, 2, NULL); // first conjunction: positive operands firstConjunction->operands[0] = (BooleanFormula *) target; // factors are considered one time step earlier than the target firstConjunction->operands[1] = copyFormula(formula, false, 1); // second conjunction: negated operands secondConjunction->operands[0] = copyFormula((BooleanFormula *) target, false, 0); secondConjunction->operands[0]->negated = !secondConjunction->operands[0]->negated; secondConjunction->operands[1] = copyFormula(formula, false, 1); secondConjunction->operands[1]->negated = !secondConjunction->operands[1]->negated; // assemble top-level DNF from conjunctions extendedInteraction->operands[0] = (BooleanFormula *) firstConjunction; extendedInteraction->operands[1] = (BooleanFormula *) secondConjunction; // convert whole top-level DNF to CNF, and store it in the network object BooleanFormula * res = convertToCNF((BooleanFormula *) extendedInteraction, false, time); // free temporary DNF freeFormula((BooleanFormula *) extendedInteraction); return res; } /** * Start an attractor search based on a SAT formulation of the * symbolic network . * is an optional parameter specifying the maximum attractor size. * If is true, a search for attractors of up to * is started. Otherwise, attractors are identified based on the approach by Dubrova and Teslenko. * Returns a list with four elements as simulateStates_R, where only the third element is non-null * and comprises the identified attractors */ SEXP symbolicSATSearch_R(SEXP network, SEXP maxAttractorSize, SEXP restrictedSearch) { SymbolicBooleanNetwork * _network = R_ExternalPtrAddr(network); bool _restrictedSearch = *LOGICAL(restrictedSearch); if (_network == NULL) error("Internal network structures not supplied to C handler!"); GetRNGstate(); unsigned int i, j, k; if (_network->cnfInteractions == NULL) // create a CNF representation of the formulae, including the // equivalence relations to the targets { _network->cnfInteractions = calloc(_network->numGenes, sizeof(BooleanFormula **)); for (i = 0; i < _network->numGenes; ++i) { _network->cnfInteractions[i] = calloc( _network->attractorSearchStartTime + 1, sizeof(BooleanFormula *)); for (j = 0; j <= _network->attractorSearchStartTime; ++j) { _network->cnfInteractions[i][j] = getSATFormula(i, _network->interactions[i], _network->attractorSearchStartTime - j); } } } pAttractorInfo res; if (!_restrictedSearch) // start exhaustive SAT search as described by Dubrova and Teslenko { int _maxAttractorSize; if (isNull(maxAttractorSize)) { _maxAttractorSize = 1; } else _maxAttractorSize = *INTEGER(maxAttractorSize); res = getAttractors_SAT_exhaustive((BooleanNetwork *) _network, _maxAttractorSize, EXTENSION_MIXED); } else // only search for cycles of a specified maximum length { res = getAttractors_SAT_maxLength((BooleanNetwork *) _network, *INTEGER(maxAttractorSize)); } SEXP retSXP, attractorListSXP, iterSXP; // create list with 3 empty elements to have same return value structure // as simulateStates_R PROTECT(retSXP = allocList(4)); PROTECT(iterSXP = attractorListSXP = allocList(res->numAttractors)); pAttractor el = res->attractorList; for (i = 0; i < res->numAttractors; ++i) { SEXP attractorSXP; PROTECT( attractorSXP = allocVector(INTSXP, el->length * _network->numGenes)); int * attractorStates = INTEGER(attractorSXP); for (j = 0; j < el->length; ++j) { for (k = 0; k < _network->numGenes; ++k) // decode bit vector in Attractor structure { attractorStates[j * _network->numGenes + k] = GET_BIT_ARRAY( el->involvedStates[j * el->numElementsPerEntry], k); } } SETCAR(iterSXP, attractorSXP); UNPROTECT(1); iterSXP = CDR(iterSXP); el = el->next; } SETCADDR(retSXP, attractorListSXP); UNPROTECT(2); PutRNGstate(); return (retSXP); } /** * Symbolic simulator that identifies attractors and generates sequences of states * and attractor graphs. * is a pointer to the C structures of a symbolic network. * is either a list of start states, an integer specifying the number of * random start states, or NULL for an exhaustive search. * is the maximum number of state transitions performed to find an attractor. * , and specify whether the return * value comprises the state sequences, the transition graph, and the attractors respectively. */ SEXP simulateStates_R(SEXP network, SEXP states, SEXP maxTransitions, SEXP returnSequences, SEXP returnGraph, SEXP returnAttractors) { SymbolicBooleanNetwork * _network = R_ExternalPtrAddr(network); if (_network == NULL) error("Internal network structures not supplied to C handler!"); unsigned int _maxTransitions = *INTEGER(maxTransitions); unsigned long long _numStates = length(states); unsigned long long i, j, k; unsigned int mode; unsigned char * randomStartStates = NULL; if (!Rf_isNull(states)) { if (IS_INTEGER(states)) // a number of start states to generate randomly is supplied { _numStates = *INTEGER(states); mode = MODE_RANDOM; GetRNGstate(); randomStartStates = CALLOC(_numStates, sizeof(unsigned char) * _network->totalStateSize); } else // the start states themselves are supplied { _numStates = length(states); mode = MODE_SUPPLIED; } } else // exhaustive search { unsigned int numNonFixed = 0; for (j = 0; j < _network->numGenes; ++j) { if (_network->fixedGenes[j] == -1) numNonFixed += _network->stateSizes[j]; } _numStates = (unsigned int) 1 << numNonFixed; mode = MODE_EXHAUSTIVE; } // allocate required structures bool _returnSequences = *LOGICAL(returnSequences); bool _returnGraph = *LOGICAL(returnGraph); bool _returnAttractors = *LOGICAL(returnAttractors); TemporalStateHashTable * hash = allocStateHashTable( _network->totalStateSize); TemporalStateHashTable * usedStates = NULL; AttractorHashTable * attractorHash = allocAttractorHashTable( _network->totalStateSize); TemporalState * current = CALLOC(1, sizeof(TemporalState) + _network->totalStateSize * sizeof(unsigned char)); TemporalState * currentStart = CALLOC(1, sizeof(TemporalState) + _network->totalStateSize * sizeof(unsigned char)); TemporalState * next = CALLOC(1, sizeof(TemporalState) + _network->totalStateSize * sizeof(unsigned char)); TemporalAttractorStateList * attractors = allocAttractorStateList(); unsigned long long stateCount = 0; unsigned long long * sequenceSizes = CALLOC(_numStates, sizeof(unsigned long long)); int * attractorIndices = CALLOC(_numStates, sizeof(int)); if (mode == MODE_EXHAUSTIVE) // generate first initial state for exhaustive search (all non-fixed genes set to 0) { for (j = 0; j < _network->totalStateSize; ++j) { if (_network->stateFixed[j] == -1) currentStart->state[j] = 0; else currentStart->state[j] = _network->stateFixed[j]; } } else if (mode == MODE_RANDOM) { usedStates = allocStateHashTable(_network->totalStateSize); } for (i = 0; i < _numStates; ++i) // iterate over start states { R_CheckUserInterrupt(); sequenceSizes[i] = 1; attractorIndices[i] = ~0; SEXP state; switch (mode) { case MODE_SUPPLIED: // take next start state from the input list state = VECTOR_ELT(states, i); decodeState(_network, INTEGER(state), length(state), currentStart); break; case MODE_RANDOM: // generate a random start state while (true) { TemporalStateHash * dummy = NULL; for (j = 0; j < _network->totalStateSize; ++j) { if (_network->stateFixed[j] == -1) currentStart->state[j] = randomStartStates[i * _network->totalStateSize + j] = intrand(2); else currentStart->state[j] = randomStartStates[i * _network->totalStateSize + j] = _network->stateFixed[j]; } // check whether the state has already been choosen as a start state if (!findOrStore(usedStates, &dummy, currentStart, true, 0)) break; } break; } currentStart->startState = i; currentStart->timeStep = 0; memcpy(current, currentStart, sizeof(TemporalState) + _network->totalStateSize * sizeof(unsigned char)); unsigned int timeStep = 1; TemporalStateHash * previous = NULL; if (!findOrStore(hash, &previous, current, _network->attractorSearchStartTime == 0, i)) ++stateCount; for (j = 0; j < _maxTransitions || _maxTransitions == 0; ++j) // calculate successor states { symbolicStateTransition(_network, current, next, &timeStep); if (findOrStore(hash, &previous, next, _network->attractorSearchStartTime < timeStep, i)) // a previously found state has been reached { if (next->startState == previous->initialState->startState) // a new attractor has been found { unsigned int attractorSize = timeStep - previous->initialState->timeStep - 1; TemporalAttractorStateListElement * el = addAttractor( attractors, attractorSize); attractorIndices[i] = el->index; for (k = 0; k < attractorSize; ++k) // enumerate attractor states { addAttractorHashEntry(attractorHash, previous->initialState, el); el->states[k] = previous->initialState; previous = previous->nextState; } if (attractorSize + 1 == timeStep) // If the whole sequence is an attractor, add the initial state at the end ++sequenceSizes[i]; } else // we have reached a sequence we traversed before // => determine sequence size etc. from previous run if (_returnSequences) { while (sequenceSizes[i] < _maxTransitions || _maxTransitions == 0) { if (previous == NULL) // not enough transitions) break; TemporalAttractorStateListElement * entry = getAttractorForState(attractorHash, previous->initialState); if (entry != NULL) { sequenceSizes[i] += entry->numStates; attractorIndices[i] = entry->index; break; } ++sequenceSizes[i]; previous = previous->nextState; } } break; } ++sequenceSizes[i]; ++stateCount; memcpy(current, next, sizeof(TemporalState) + _network->totalStateSize * sizeof(unsigned char)); } if (i < _numStates - 1 && mode == MODE_EXHAUSTIVE) // generate next state for exhaustive search { getNextState(currentStart->state, _network->stateFixed, _network->totalStateSize); } } SEXP retSXP, attractorListSXP, initialStatesSXP, nextStatesSXP, attractorAssignmentSXP, transitionSXP, iterSXP, graphSXP; PROTECT(retSXP = allocList(4)); if (_returnAttractors) // store attractor sequences in results { PROTECT(iterSXP = attractorListSXP = allocList(attractors->size)); TemporalAttractorStateListElement * el = attractors->head; for (i = 0; i < attractors->size; ++i) { SEXP attractorSXP; PROTECT( attractorSXP = allocVector(INTSXP, el->numStates * _network->numGenes)); int * attractorStates = INTEGER(attractorSXP); for (j = 0; j < el->numStates; ++j) { for (k = 0; k < _network->numGenes; ++k) { attractorStates[j * _network->numGenes + k] = el->states[j]->state[_network->stateOffsets[k]]; } } SETCAR(iterSXP, attractorSXP); UNPROTECT(1); iterSXP = CDR(iterSXP); el = el->next; } SETCADDR(retSXP, attractorListSXP); if (_returnSequences) // also store indices of attractors for the sequences { SEXP attractorIndexSXP; PROTECT(attractorIndexSXP = allocVector(INTSXP, _numStates)); memcpy(INTEGER(attractorIndexSXP), attractorIndices, sizeof(int) * _numStates); SETCADDDR(retSXP, attractorIndexSXP); UNPROTECT(1); } UNPROTECT(1); } if (_returnSequences) { // calculate maximum delay in the network unsigned int maxTimeDiff = 1; for (k = 0; k < _network->numGenes; ++k) { if (_network->stateSizes[k] > maxTimeDiff) maxTimeDiff = _network->stateSizes[k]; } PROTECT(iterSXP = transitionSXP = allocList(_numStates)); if (mode == MODE_EXHAUSTIVE) // again, regenerate first start state for exhaustive search { for (j = 0; j < _network->totalStateSize; ++j) { if (_network->stateFixed[j] == -1) currentStart->state[j] = 0; else currentStart->state[j] = _network->stateFixed[j]; } } for (i = 0; i < _numStates; ++i) // iterate over states { R_CheckUserInterrupt(); SEXP transitionStatesSXP; PROTECT( transitionStatesSXP = allocVector(INTSXP, ((maxTimeDiff - 1) + sequenceSizes[i]) * _network->numGenes)); int * transitionStates = INTEGER(transitionStatesSXP); SEXP state; switch (mode) { case MODE_SUPPLIED: state = VECTOR_ELT(states, i); decodeState(_network, INTEGER(state), length(state), currentStart); break; case MODE_RANDOM: memcpy(currentStart->state, &randomStartStates[i * _network->totalStateSize], sizeof(unsigned char) * _network->totalStateSize); break; } currentStart->startState = i; currentStart->timeStep = 0; unsigned int currentState = 0; for (j = 0; j < maxTimeDiff; ++j) { bool nextState = false; for (k = 0; k < _network->numGenes; ++k) { if (mode == MODE_SUPPLIED) // store supplied initial states in results { SEXP state = VECTOR_ELT(states, i); int * _state = INTEGER(state); unsigned int numStates = length(state) / _network->numGenes; if ((maxTimeDiff - j) <= numStates) { transitionStates[j * _network->numGenes + k] = _state[k * numStates + (numStates - currentState - 1)]; nextState = true; } else transitionStates[j * _network->numGenes + k] = _state[(k + 1) * numStates - 1]; } else // construct list of initial states from internal vector representation if (_network->stateSizes[k] >= maxTimeDiff - j) transitionStates[j * _network->numGenes + k] = currentStart->state[_network->stateOffsets[k] + (maxTimeDiff - j - 1)]; else transitionStates[j * _network->numGenes + k] = currentStart->state[_network->stateOffsets[k] + _network->stateSizes[k] - 1]; } if (nextState) { ++currentState; nextState = false; } } memcpy(current, currentStart, sizeof(TemporalState) + _network->totalStateSize * sizeof(unsigned char)); // get successor states from hash table TemporalStateHash * res; if (_network->attractorSearchStartTime == 0) HASH_FIND(hh, hash->table, current->state, hash->stateSize, res); else HASH_FIND(hh, hash->table, current, hash->hashSize, res); for (j = 0; j < sequenceSizes[i]; ++j) { if (res != NULL) // encode successor state for results { for (k = 0; k < _network->numGenes; ++k) { transitionStates[(maxTimeDiff + j - 1) * _network->numGenes + k] = res->initialState->state[_network->stateOffsets[k]]; } res = res->nextState; } else error("Did not find a required successor state!"); } SETCAR(iterSXP, transitionStatesSXP); iterSXP = CDR(iterSXP); UNPROTECT(1); if (mode == MODE_EXHAUSTIVE) // generate next start state for exhaustive search { getNextState(currentStart->state, _network->stateFixed, _network->totalStateSize); } } SETCAR(retSXP, transitionSXP); UNPROTECT(1); } if (mode == MODE_RANDOM) { FREE(randomStartStates); PutRNGstate(); } TemporalStateHash * entry, *tmp; if (_returnGraph) // generate the graph representation { PROTECT(graphSXP = allocList(3)); PROTECT( initialStatesSXP = allocVector(INTSXP,stateCount * _network->numGenes)); PROTECT( nextStatesSXP = allocVector(INTSXP,stateCount * _network->numGenes)); PROTECT(attractorAssignmentSXP = allocVector(INTSXP,stateCount)); int * initialStates = INTEGER(initialStatesSXP); int * nextStates = INTEGER(nextStatesSXP); int * attractorAssignment = INTEGER(attractorAssignmentSXP); // add all state pairs in the hash table to the graph i = 0; HASH_ITER(hh, hash->table, entry, tmp) { R_CheckUserInterrupt(); for (k = 0; k < _network->numGenes; ++k) { initialStates[i * _network->numGenes + k] = entry->initialState->state[_network->stateOffsets[k]]; if (entry->nextState != NULL) nextStates[i * _network->numGenes + k] = entry->nextState->initialState->state[_network->stateOffsets[k]]; else nextStates[i * _network->numGenes + k] = entry->initialState->state[_network->stateOffsets[k]]; } attractorAssignment[i] = attractorIndices[entry->sequenceIndex]; ++i; } SETCAR(graphSXP, initialStatesSXP); SETCADR(graphSXP, nextStatesSXP); SETCADDR(graphSXP, attractorAssignmentSXP); SETCADR(retSXP, graphSXP); UNPROTECT(4); } UNPROTECT(1); if (mode == MODE_RANDOM) freeStateHashTable(usedStates); freeStateHashTable(hash); freeAttractorHashTable(attractorHash); FREE(sequenceSizes); FREE(next); FREE(current); FREE(currentStart); FREE(attractorIndices); freeAttractorStateList(attractors); return retSXP; } /** * Check whether is a null pointer. */ SEXP checkNullPointer(SEXP ptr) { void * p = R_ExternalPtrAddr(ptr); SEXP ret; PROTECT(ret = allocVector(LGLSXP,1)); *LOGICAL(ret) = (p == NULL); UNPROTECT(1); return (ret); } BoolNet/src/statespace_search.h0000644000176000001440000000430412473311652016272 0ustar ripleyusers#ifndef STATESPACE_SEARCH_H #define STATESPACE_SEARCH_H #include "boolean_network.h" #include "attractor_info.h" #include /** * Retrieves attractors only for a given set of input states supplied in . * Here, numGenes / 32)> consecutive array entries describe one state, thus * the array size is numGenes / 32) * numberOfStates> * describes the network structure. */ extern pAttractorInfo getAttractorsForStates(unsigned int * selectedStates, unsigned int numberOfStates, TruthTableBooleanNetwork * net); /** * Retrieves attractors from a given transition table with entries. * * Returns a list of attractors - the last element of this list is empty! */ extern pAttractorInfo getAttractors(unsigned long long * table, unsigned long long numberOfStates, unsigned int numberOfGenes); /** * Calculate complex/loose attractors by performing random transitions from * the states supplied in . * If is true, self loops are only considered if there are no other possible transitions. * If is not NULL, this vector holds the probabilities for each gene to be chosen * for a transition. */ pAttractorInfo getLooseAttractors(unsigned int * selectedStates, unsigned int numberOfStates, TruthTableBooleanNetwork * net, unsigned int randomSteps, bool avoidSelfLoops, double * probabilities); /** * Retrieves the result column of the state transition table. * specifies the total number of genes. * is an array of values specifying whether gene is fixed (0 or 1) or not (-1). * provides the input genes for all transition functions and can be split up * for a single function according to . * provides the truth tables for all transition functions and can be split up * for a single function according to . */ unsigned long long * getTransitionTable(TruthTableBooleanNetwork * net); #endif BoolNet/src/common.c0000644000176000001440000000764712473311652014111 0ustar ripleyusers#include "common.h" #include #include AllocatedMemory * memoryMap = NULL; /** * Common utilities for the BoolNet package * * Copyright 2009/2010 by Christoph Müssel and Zhou Dao * * Contact christoph.muessel@uni-ulm.de */ void freeAllMemory() { AllocatedMemory * m, * tmp; HASH_ITER(hh, memoryMap, m, tmp) { HASH_DEL(memoryMap, m); free(m->ptr); free(m); } //Rprintf("Freed all memory\n"); } /** * Encode a vector of binary values in an integer. * The rightmost element in is the leftmost bit in * is an array of elements, and points * to an integer to which the result is written. */ void bin2dec(int *dec, int *bin, int *numBits) { // clear output first unsigned int numElts; if (*numBits % BITS_PER_BLOCK_32 == 0) numElts = *numBits / BITS_PER_BLOCK_32; else numElts = *numBits / BITS_PER_BLOCK_32 + 1; memset(dec,0,numElts*sizeof(int)); // decode input and write binary integers unsigned int * unsigned_dec = (unsigned int *) dec; unsigned int i; for(i = 0; i < *numBits; ++i) { unsigned_dec[i / BITS_PER_BLOCK_32] |= ((unsigned int)bin[i] << (i % BITS_PER_BLOCK_32)); } } /** * Decode an integer to a vector of binary values. * The rightmost element in is the leftmost bit in * points to the result vector, is a number * to be decoded, and is the number of bits/elements in bin */ void dec2bin(int *bin, int *dec, int *numBits) { unsigned int i; unsigned int * unsigned_dec = (unsigned int *) dec; for(i = 0; i < *numBits; ++i) if( (unsigned_dec[i / BITS_PER_BLOCK_32] & ((unsigned int)1 << (i % BITS_PER_BLOCK_32))) != 0) bin[i] = 1; else bin[i] = 0; } /** * Inserts values of fixed genes into states - this is required as * fixed genes are not encoded in the internal state representations. * is a pointer to a state to be corrected. * is an array specifying which genes are fixed, as contained in * the BooleanNetwork structure. * is the length of . * The function changes the state pointed to by and has no return value. */ void insertFixedGenes(unsigned int * value, int* fixedGenes, unsigned int numGenes) { unsigned int tmp[numGenes]; unsigned int i, j = 0; // build an array of Boolean values for the genes for (i = 0; i < numGenes; ++i) { if (fixedGenes[i] != -1) // this gene is fixed { tmp[i] = fixedGenes[i]; } else // not a fixed gene => take value from original state { tmp[i] = ((value[j / BITS_PER_BLOCK_32] & ((unsigned int)1 << (j % BITS_PER_BLOCK_32))) != 0) ? 1 : 0; ++j; } } // re-encode Boolean array to integer value bin2dec((int *)value,(int*)tmp,(int*)&numGenes); } /** * Removes values of fixed genes from states - this is required as * fixed genes are not encoded in the internal state representations. * is a pointer to a state to be corrected. * is an array specifying which genes are fixed, as contained in * the BooleanNetwork structure. * is the length of . * The function changes the state pointed to by and has no return value. */ void removeFixedGenes(unsigned int * value, int* fixedGenes, unsigned int numGenes) { unsigned int tmp[numGenes]; memset(tmp,0,sizeof(unsigned int) * numGenes); unsigned int i, j = 0; // build an array of Boolean values for the genes for (i = 0; i < numGenes; ++i) { if (fixedGenes[i] == -1) { tmp[j] = ((value[i / BITS_PER_BLOCK_32] & ((unsigned int)1 << (i % BITS_PER_BLOCK_32))) != 0) ? 1 : 0; ++j; } } // re-encode Boolean array to integer value bin2dec((int *)value,(int*)tmp,(int*)&numGenes); } SEXP getListElement(SEXP list, char *str) { SEXP names = getAttrib(list, R_NamesSymbol); unsigned int i; for (i = 0; i < length(list); ++i) { if (strcmp(CHAR(STRING_ELT(names, i)), str) == 0 ) { return VECTOR_ELT(list, i); } } return R_NilValue; } BoolNet/src/picosat.h0000644000176000001440000006775412473311652014275 0ustar ripleyusers/**************************************************************************** Copyright (c) 2006 - 2015, Armin Biere, Johannes Kepler University. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ****************************************************************************/ #ifndef picosat_h_INCLUDED #define picosat_h_INCLUDED /*------------------------------------------------------------------------*/ #include #include /*------------------------------------------------------------------------*/ /* The following macros allows for users to distiguish between different * versions of the API. The first 'PICOSAT_REENTRANT_API' is defined for * the new reentrant API which allows to generate multiple instances of * PicoSAT in one process. The second 'PICOSAT_API_VERSION' defines the * (smallest) version of PicoSAT to which this API conforms. */ #define PICOSAT_REENTRANT_API #define PICOSAT_API_VERSION 953 /* API version */ /*------------------------------------------------------------------------*/ /* These are the return values for 'picosat_sat' as for instance * standardized by the output format of the SAT competition. */ #define PICOSAT_UNKNOWN 0 #define PICOSAT_SATISFIABLE 10 #define PICOSAT_UNSATISFIABLE 20 /*------------------------------------------------------------------------*/ typedef struct PicoSAT PicoSAT; /*------------------------------------------------------------------------*/ const char *picosat_version (void); const char *picosat_config (void); const char *picosat_copyright (void); /*------------------------------------------------------------------------*/ /* You can make PicoSAT use an external memory manager instead of the one * provided by LIBC. But then you need to call these three function before * 'picosat_init'. The memory manager functions here all have an additional * first argument which is a pointer to the memory manager, but otherwise * are supposed to work as their LIBC counter parts 'malloc', 'realloc' and * 'free'. As exception the 'resize' and 'delete' function have as third * argument the number of bytes of the block given as second argument. */ typedef void * (*picosat_malloc)(void *, size_t); typedef void * (*picosat_realloc)(void*, void *, size_t, size_t); typedef void (*picosat_free)(void*, void*, size_t); /*------------------------------------------------------------------------*/ PicoSAT * picosat_init (void); /* constructor */ PicoSAT * picosat_minit (void * state, picosat_malloc, picosat_realloc, picosat_free); void picosat_reset (PicoSAT *); /* destructor */ /*------------------------------------------------------------------------*/ /* The following five functions are essentially parameters to 'init', and * thus should be called right after 'picosat_init' before doing anything * else. You should not call any of them after adding a literal. */ /* Set output file, default is 'stdout'. */ void picosat_set_output (PicoSAT *, FILE *); /* Measure all time spent in all calls in the solver. By default only the * time spent in 'picosat_sat' is measured. Enabling this function might * for instance triple the time needed to add large CNFs, since every call * to 'picosat_add' will trigger a call to 'getrusage'. */ void picosat_measure_all_calls (PicoSAT *); /* Set the prefix used for printing verbose messages and statistics. * Default is "c ". */ void picosat_set_prefix (PicoSAT *, const char *); /* Set verbosity level. A verbosity level of 1 and above prints more and * more detailed progress reports on the output file, set by * 'picosat_set_output'. Verbose messages are prefixed with the string set * by 'picosat_set_prefix'. */ void picosat_set_verbosity (PicoSAT *, int new_verbosity_level); /* Disable/Enable all pre-processing, currently only failed literal probing. * * new_plain_value != 0 only 'plain' solving, so no preprocessing * new_plain_value == 0 allow preprocessing */ void picosat_set_plain (PicoSAT *, int new_plain_value); /* Set default initial phase: * * 0 = false * 1 = true * 2 = Jeroslow-Wang (default) * 3 = random initial phase * * After a variable has been assigned the first time, it will always * be assigned the previous value if it is picked as decision variable. * The initial assignment can be chosen with this function. */ void picosat_set_global_default_phase (PicoSAT *, int); /* Set next/initial phase of a particular variable if picked as decision * variable. Second argument 'phase' has the following meaning: * * negative = next value if picked as decision variable is false * * positive = next value if picked as decision variable is true * * 0 = use global default phase as next value and * assume 'lit' was never assigned * * Again if 'lit' is assigned afterwards through a forced assignment, * then this forced assignment is the next phase if this variable is * used as decision variable. */ void picosat_set_default_phase_lit (PicoSAT *, int lit, int phase); /* You can reset all phases by the following function. */ void picosat_reset_phases (PicoSAT *); /* Scores can be erased as well. Note, however, that even after erasing * scores and phases, learned clauses are kept. In addition head tail * pointers for literals are not moved either. So expect a difference * between calling the solver in incremental mode or with a fresh copy of * the CNF. */ void picosat_reset_scores (PicoSAT *); /* Reset assignment if in SAT state and then remove the given percentage of * less active (large) learned clauses. If you specify 100% all large * learned clauses are removed. */ void picosat_remove_learned (PicoSAT *, unsigned percentage); /* Set some variables to be more important than others. These variables are * always used as decisions before other variables are used. Dually there * is a set of variables that is used last. The default is * to mark all variables as being indifferent only. */ void picosat_set_more_important_lit (PicoSAT *, int lit); void picosat_set_less_important_lit (PicoSAT *, int lit); /* Allows to print to internal 'out' file from client. */ void picosat_message (PicoSAT *, int verbosity_level, const char * fmt, ...); /* Set a seed for the random number generator. The random number generator * is currently just used for generating random decisions. In our * experiments having random decisions did not really help on industrial * examples, but was rather helpful to randomize the solver in order to * do proper benchmarking of different internal parameter sets. */ void picosat_set_seed (PicoSAT *, unsigned random_number_generator_seed); /* If you ever want to extract cores or proof traces with the current * instance of PicoSAT initialized with 'picosat_init', then make sure to * call 'picosat_enable_trace_generation' right after 'picosat_init'. This * is not necessary if you only use 'picosat_set_incremental_rup_file'. * * NOTE, trace generation code is not necessarily included, e.g. if you * configure PicoSAT with full optimzation as './configure -O' or with * you do not get any results by trying to generate traces. * * The return value is non-zero if code for generating traces is included * and it is zero if traces can not be generated. */ int picosat_enable_trace_generation (PicoSAT *); /* You can dump proof traces in RUP format incrementally even without * keeping the proof trace in memory. The advantage is a reduction of * memory usage, but the dumped clauses do not necessarily belong to the * clausal core. Beside the file the additional parameters denotes the * maximal number of variables and the number of original clauses. */ void picosat_set_incremental_rup_file (PicoSAT *, FILE * file, int m, int n); /* Save original clauses for 'picosat_deref_partial'. See comments to that * function further down. */ void picosat_save_original_clauses (PicoSAT *); /* Add a call back which is checked regularly to notify the SAT solver * to terminate earlier. This is useful for setting external time limits * or terminate early in say a portfolio style parallel SAT solver. */ void picosat_set_interrupt (PicoSAT *, void * external_state, int (*interrupted)(void * external_state)); /*------------------------------------------------------------------------*/ /* This function returns the next available unused variable index and * allocates a variable for it even though this variable does not occur as * assumption, nor in a clause or any other constraints. In future calls to * 'picosat_sat', 'picosat_deref' and particularly for 'picosat_changed', * this variable is treated as if it had been used. */ int picosat_inc_max_var (PicoSAT *); /*------------------------------------------------------------------------*/ /* Push and pop semantics for PicoSAT. 'picosat_push' opens up a new * context. All clauses added in this context are attached to it and * discarded when the context is closed with 'picosat_pop'. It is also * possible to nest contexts. * * The current implementation uses a new internal variable for each context. * However, the indices for these internal variables are shared with * ordinary external variables. This means that after any call to * 'picosat_push', new variable indices should be obtained with * 'picosat_inc_max_var' and not just by incrementing the largest variable * index used so far. * * The return value is the index of the literal that assumes this context. * This literal can only be used for 'picosat_failed_context' otherwise * it will lead to an API usage error. */ int picosat_push (PicoSAT *); /* This is as 'picosat_failed_assumption', but only for internal variables * generated by 'picosat_push'. */ int picosat_failed_context (PicoSAT *, int lit); /* Returns the literal that assumes the current context or zero if the * outer context has been reached. */ int picosat_context (PicoSAT *); /* Closes the current context and recycles the literal generated for * assuming this context. The return value is the literal for the new * outer context or zero if the outer most context has been reached. */ int picosat_pop (PicoSAT *); /* Force immmediate removal of all satisfied clauses and clauses that are * added or generated in closed contexts. This function is called * internally if enough units are learned or after a certain number of * contexts have been closed. This number is fixed at compile time * and defined as MAXCILS in 'picosat.c'. * * Note that learned clauses which only involve outer contexts are kept. */ void picosat_simplify (PicoSAT *); /*------------------------------------------------------------------------*/ /* If you know a good estimate on how many variables you are going to use * then calling this function before adding literals will result in less * resizing of the variable table. But this is just a minor optimization. * Beside exactly allocating enough variables it has the same effect as * calling 'picosat_inc_max_var'. */ void picosat_adjust (PicoSAT *, int max_idx); /*------------------------------------------------------------------------*/ /* Statistics. */ int picosat_variables (PicoSAT *); /* p cnf n */ int picosat_added_original_clauses (PicoSAT *); /* p cnf m */ size_t picosat_max_bytes_allocated (PicoSAT *); double picosat_time_stamp (void); /* ... in process */ void picosat_stats (PicoSAT *); /* > output file */ unsigned long long picosat_propagations (PicoSAT *); /* #propagations */ unsigned long long picosat_decisions (PicoSAT *); /* #decisions */ unsigned long long picosat_visits (PicoSAT *); /* #visits */ /* The time spent in calls to the library or in 'picosat_sat' respectively. * The former is returned if, right after initialization * 'picosat_measure_all_calls' is called. */ double picosat_seconds (PicoSAT *); /*------------------------------------------------------------------------*/ /* Add a literal of the next clause. A zero terminates the clause. The * solver is incremental. Adding a new literal will reset the previous * assignment. The return value is the original clause index to which * this literal respectively the trailing zero belong starting at 0. */ int picosat_add (PicoSAT *, int lit); /* As the previous function, but allows to add a full clause at once with an * at compiled time known size. The list of argument literals has to be * terminated with a zero literal. Literals beyond the first zero literal * are discarded. */ int picosat_add_arg (PicoSAT *, ...); /* As the previous function but with an at compile time unknown size. */ int picosat_add_lits (PicoSAT *, int * lits); /* Print the CNF to the given file in DIMACS format. */ void picosat_print (PicoSAT *, FILE *); /* You can add arbitrary many assumptions before the next 'picosat_sat' * call. This is similar to the using assumptions in MiniSAT, except that * for PicoSAT you do not have to collect all your assumptions in a vector * yourself. In PicoSAT you can add one after the other, to be used in the * next call to 'picosat_sat'. * * These assumptions can be interpreted as adding unit clauses with those * assumptions as literals. However these assumption clauses are only valid * for exactly the next call to 'picosat_sat', and will be removed * afterwards, e.g. in following future calls to 'picosat_sat' after the * next 'picosat_sat' call, unless they are assumed again trough * 'picosat_assume'. * * More precisely, assumptions actually remain valid even after the next * call to 'picosat_sat' has returned. Valid means they remain 'assumed' * internally until a call to 'picosat_add', 'picosat_assume', or a second * 'picosat_sat', following the first 'picosat_sat'. The reason for keeping * them valid is to allow 'picosat_failed_assumption' to return correct * values. * * Example: * * picosat_assume (1); // assume unit clause '1 0' * picosat_assume (-2); // additionally assume clause '-2 0' * res = picosat_sat (1000); // assumes 1 and -2 to hold * // 1000 decisions max. * * if (res == PICOSAT_UNSATISFIABLE) * { * if (picosat_failed_assumption (1)) * // unit clause '1 0' was necessary to derive UNSAT * * if (picosat_failed_assumption (-2)) * // unit clause '-2 0' was necessary to derive UNSAT * * // at least one but also both could be necessary * * picosat_assume (17); // previous assumptions are removed * // now assume unit clause '17 0' for * // the next call to 'picosat_sat' * * // adding a new clause, actually the first literal of * // a clause would also make the assumptions used in the previous * // call to 'picosat_sat' invalid. * * // The first two assumptions above are not assumed anymore. Only * // the assumptions, since the last call to 'picosat_sat' returned * // are assumed, e.g. the unit clause '17 0'. * * res = picosat_sat (-1); * } * else if (res == PICOSAT_SATISFIABLE) * { * // now the assignment is valid and we can call 'picosat_deref' * * assert (picosat_deref (1) == 1)); * assert (picosat_deref (-2) == 1)); * * val = picosat_deref (15); * * // previous two assumptions are still valid * * // would become invalid if 'picosat_add' or 'picosat_assume' is * // called here, but we immediately call 'picosat_sat'. Now when * // entering 'picosat_sat' the solver knows that the previous call * // returned SAT and it can safely reset the previous assumptions * * res = picosat_sat (-1); * } * else * { * assert (res == PICOSAT_UNKNOWN); * * // assumptions valid, but assignment invalid * // except for top level assigned literals which * // necessarily need to have this value if the formula is SAT * * // as above the solver nows that the previous call returned UNKWOWN * // and will before doing anything else reset assumptions * * picosat_sat (-1); * } */ void picosat_assume (PicoSAT *, int lit); /*------------------------------------------------------------------------*/ /* This is an experimental feature for handling 'all different constraints' * (ADC). Currently only one global ADC can be handled. The bit-width of * all the bit-vectors entered in this ADC (stored in 'all different * objects' or ADOs) has to be identical. * * TODO: also handle top level assigned literals here. */ void picosat_add_ado_lit (PicoSAT *, int); /*------------------------------------------------------------------------*/ /* Call the main SAT routine. A negative decision limit sets no limit on * the number of decisions. The return values are as above, e.g. * 'PICOSAT_UNSATISFIABLE', 'PICOSAT_SATISFIABLE', or 'PICOSAT_UNKNOWN'. */ int picosat_sat (PicoSAT *, int decision_limit); /* As alternative to a decision limit you can use the number of propagations * as limit. This is more linearly related to execution time. This has to * be called after 'picosat_init' and before 'picosat_sat'. */ void picosat_set_propagation_limit (PicoSAT *, unsigned long long limit); /* Return last result of calling 'picosat_sat' or '0' if not called. */ int picosat_res (PicoSAT *); /* After 'picosat_sat' was called and returned 'PICOSAT_SATISFIABLE', then * the satisfying assignment can be obtained by 'dereferencing' literals. * The value of the literal is return as '1' for 'true', '-1' for 'false' * and '0' for an unknown value. */ int picosat_deref (PicoSAT *, int lit); /* Same as before but just returns true resp. false if the literals is * forced to this assignment at the top level. This function does not * require that 'picosat_sat' was called and also does not internally reset * incremental usage. */ int picosat_deref_toplevel (PicoSAT *, int lit); /* After 'picosat_sat' was called and returned 'PICOSAT_SATISFIABLE' a * partial satisfying assignment can be obtained as well. It satisfies all * original clauses. The value of the literal is return as '1' for 'true', * '-1' for 'false' and '0' for an unknown value. In order to make this * work all original clauses have to be saved internally, which has to be * enabled by 'picosat_save_original_clauses' right after initialization. */ int picosat_deref_partial (PicoSAT *, int lit); /* Returns non zero if the CNF is unsatisfiable because an empty clause was * added or derived. */ int picosat_inconsistent (PicoSAT *); /* Returns non zero if the literal is a failed assumption, which is defined * as an assumption used to derive unsatisfiability. This is as accurate as * generating core literals, but still of course is an overapproximation of * the set of assumptions really necessary. The technique does not need * clausal core generation nor tracing to be enabled and thus can be much * more effective. The function can only be called as long the current * assumptions are valid. See 'picosat_assume' for more details. */ int picosat_failed_assumption (PicoSAT *, int lit); /* Returns a zero terminated list of failed assumption in the last call to * 'picosat_sat'. The pointer is valid until the next call to * 'picosat_sat' or 'picosat_failed_assumptions'. It only makes sense if the * last call to 'picosat_sat' returned 'PICOSAT_UNSATISFIABLE'. */ const int * picosat_failed_assumptions (PicoSAT *); /* Returns a zero terminated minimized list of failed assumption for the last * call to 'picosat_sat'. The pointer is valid until the next call to this * function or 'picosat_sat' or 'picosat_mus_assumptions'. It only makes sense * if the last call to 'picosat_sat' returned 'PICOSAT_UNSATISFIABLE'. * * The call back function is called for all successful simplification * attempts. The first argument of the call back function is the state * given as first argument to 'picosat_mus_assumptions'. The second * argument to the call back function is the new reduced list of failed * assumptions. * * This function will call 'picosat_assume' and 'picosat_sat' internally but * before returning reestablish a proper UNSAT state, e.g. * 'picosat_failed_assumption' will work afterwards as expected. * * The last argument if non zero fixes assumptions. In particular, if an * assumption can not be removed it is permanently assigned true, otherwise * if it turns out to be redundant it is permanently assumed to be false. */ const int * picosat_mus_assumptions (PicoSAT *, void *, void(*)(void*,const int*),int); /* Compute one maximal subset of satisfiable assumptions. You need to set * the assumptions, call 'picosat_sat' and check for 'picosat_inconsistent', * before calling this function. The result is a zero terminated array of * assumptions that consistently can be asserted at the same time. Before * returing the library 'reassumes' all assumptions. * * It could be beneficial to set the default phase of assumptions * to true (positive). This can speed up the computation. */ const int * picosat_maximal_satisfiable_subset_of_assumptions (PicoSAT *); /* This function assumes that you have set up all assumptions with * 'picosat_assume'. Then it calls 'picosat_sat' internally unless the * formula is already inconsistent without assumptions, i.e. it contains * the empty clause. After that it extracts a maximal satisfiable subset of * assumptions. * * The result is a zero terminated maximal subset of consistent assumptions * or a zero pointer if the formula contains the empty clause and thus no * more maximal consistent subsets of assumptions can be extracted. In the * first case, before returning, a blocking clause is added, that rules out * the result for the next call. * * NOTE: adding the blocking clause changes the CNF. * * So the following idiom * * const int * mss; * picosat_assume (a1); * picosat_assume (a2); * picosat_assume (a3); * picosat_assume (a4); * while ((mss = picosat_next_maximal_satisfiable_subset_of_assumptions ())) * process_mss (mss); * * can be used to iterate over all maximal consistent subsets of * the set of assumptions {a1,a2,a3,a4}. * * It could be beneficial to set the default phase of assumptions * to true (positive). This might speed up the computation. */ const int * picosat_next_maximal_satisfiable_subset_of_assumptions (PicoSAT *); /* Similarly we can iterate over all minimal correcting assumption sets. * See the CAMUS literature [M. Liffiton, K. Sakallah JAR 2008]. * * The result contains each assumed literal only once, even if it * was assumed multiple times (in contrast to the maximal consistent * subset functions above). * * It could be beneficial to set the default phase of assumptions * to true (positive). This might speed up the computation. */ const int * picosat_next_minimal_correcting_subset_of_assumptions (PicoSAT *); /* Compute the union of all minmal correcting sets, which is called * the 'high level union of all minimal unsatisfiable subset sets' * or 'HUMUS' in our papers. * * It uses 'picosat_next_minimal_correcting_subset_of_assumptions' and * the same notes and advices apply. In particular, this implies that * after calling the function once, the current CNF becomes inconsistent, * and PicoSAT has to be reset. So even this function internally uses * PicoSAT incrementally, it can not be used incrementally itself at this * point. * * The 'callback' can be used for progress logging and is called after * each extracted minimal correcting set if non zero. The 'nhumus' * parameter of 'callback' denotes the number of assumptions found to be * part of the HUMUS sofar. */ const int * picosat_humus (PicoSAT *, void (*callback)(void * state, int nmcs, int nhumus), void * state); /*------------------------------------------------------------------------*/ /* Assume that a previous call to 'picosat_sat' in incremental usage, * returned 'SATISFIABLE'. Then a couple of clauses and optionally new * variables were added (a new variable is a variable that has an index * larger then the maximum variable added so far). The next call to * 'picosat_sat' also returns 'SATISFIABLE'. If this function * 'picosat_changed' returns '0', then the assignment to the old variables * is guaranteed to not have changed. Otherwise it might have changed. * * The return value to this function is only valid until new clauses are * added through 'picosat_add', an assumption is made through * 'picosat_assume', or again 'picosat_sat' is called. This is the same * assumption as for 'picosat_deref'. * * TODO currently this function might also return a non zero value even if * the old assignment did not change, because it only checks whether the * assignment of at least one old variable was flipped at least once during * the search. In principle it should be possible to be exact in the other * direction as well by using a counter of variables that have an odd number * of flips. But this is not implemented yet. */ int picosat_changed (PicoSAT *); /*------------------------------------------------------------------------*/ /* The following six functions internally extract the variable and clausal * core and thus require trace generation to be enabled with * 'picosat_enable_trace_generation' right after calling 'picosat_init'. * * TODO: using these functions in incremental mode with failed assumptions * has only been tested for 'picosat_corelit' thoroughly. The others * probably only work in non-incremental mode or without using * 'picosat_assume'. */ /* This function determines whether the i'th added original clause is in the * core. The 'i' is the return value of 'picosat_add', which starts at zero * and is incremented by one after a original clause is added (that is after * 'picosat_add (0)'). For the index 'i' the following has to hold: * * 0 <= i < picosat_added_original_clauses () */ int picosat_coreclause (PicoSAT *, int i); /* This function gives access to the variable core, which is made up of the * variables that were resolved in deriving the empty clause. */ int picosat_corelit (PicoSAT *, int lit); /* Write the clauses that were used in deriving the empty clause to a file * in DIMACS format. */ void picosat_write_clausal_core (PicoSAT *, FILE * core_file); /* Write a proof trace in TraceCheck format to a file. */ void picosat_write_compact_trace (PicoSAT *, FILE * trace_file); void picosat_write_extended_trace (PicoSAT *, FILE * trace_file); /* Write a RUP trace to a file. This trace file contains only the learned * core clauses while this is not necessarily the case for the RUP file * obtained with 'picosat_set_incremental_rup_file'. */ void picosat_write_rup_trace (PicoSAT *, FILE * trace_file); /*------------------------------------------------------------------------*/ /* Keeping the proof trace around is not necessary if an over-approximation * of the core is enough. A literal is 'used' if it was involved in a * resolution to derive a learned clause. The core literals are necessarily * a subset of the 'used' literals. */ int picosat_usedlit (PicoSAT *, int lit); /*------------------------------------------------------------------------*/ #endif BoolNet/src/sat_search.h0000644000176000001440000000314712473311652014731 0ustar ripleyusers#ifndef SAT_SEARCH_H #define SAT_SEARCH_H #include "boolean_network.h" #include "attractor_info.h" #define EXTENSION_EXPONENTIAL 0 #define EXTENSION_LINEAR 1 #define EXTENSION_LINEAR_ADAPT 2 #define EXTENSION_MIXED 3 /** * Determine all attractors having at most states in the network , * and return them in an AttractorInfo structure. */ extern pAttractorInfo getAttractors_SAT_exhaustive(BooleanNetwork * network, unsigned int initialCycleSearchLength, unsigned int extensionMode); /** * Identify all attractors using a SAT-based algorithm adapted from Dubrova et al., 2011. * Here, is the network whose attractors are identified. * If > 0, the first step of the algorithm is to identify and exclude * all attractors of length 1 to . * specifies the way the chain is extended: * EXTENSION_EXPONENTIAL corresponds to the exponential scheme by Dubrova et al. * EXTENSION_LINEAR corresponds to linearly increasing the length * EXTENSION_LINEAR_ADAPT corresponds to a linear increase whose step width is * increased over the iterations * EXTENSION_MIXED corresponds to a mixture of linear and exponential increase, * where the chain length is doubled after 5 linear increases. * Returns an AttractorInfo structure comprising all attractors of the network. */ extern pAttractorInfo getAttractors_SAT_maxLength(BooleanNetwork * network, unsigned int maxLength); #endif BoolNet/src/attractor_info.c0000644000176000001440000000254312473311652015625 0ustar ripleyusers#include "attractor_info.h" #include "common.h" /** * Allocate a new AttractorInfo structure for states */ pAttractorInfo allocAttractorInfo(unsigned long long tableSize, unsigned int numGenes) { pAttractorInfo res = (pAttractorInfo)CALLOC(1,sizeof(AttractorInfo)); if ((numGenes % BITS_PER_BLOCK_32) == 0) res->numElementsPerEntry = numGenes/BITS_PER_BLOCK_32; else res->numElementsPerEntry = numGenes/BITS_PER_BLOCK_32 + 1; res->numAttractors = 0; res->table = NULL; res->tableSize = tableSize; res->initialStates = NULL; res->table = (unsigned int*) CALLOC(tableSize * res->numElementsPerEntry,sizeof(unsigned int)); res->attractorAssignment = (unsigned int*) CALLOC(tableSize,sizeof(unsigned int)); res->stepsToAttractor = (unsigned int*) CALLOC(tableSize,sizeof(unsigned int)); return res; } /** * Free a list of attractor structures */ void freeAttractorList(pAttractor p) { do { pAttractor next = p->next; if (p->involvedStates != NULL) FREE(p->involvedStates); FREE(p); p = next; } while(p != NULL); } /** * Free an AttractorInfo structure including * all sub-elements and the attractor list */ void freeAttractorInfo(pAttractorInfo p) { if (p->initialStates != 0) FREE(p->initialStates); FREE(p->table); FREE(p->attractorAssignment); FREE(p->stepsToAttractor); freeAttractorList(p->attractorList); FREE(p); } BoolNet/src/random.h0000644000176000001440000000064712473311652014077 0ustar ripleyusers#ifndef RANDOM_H_ #define RANDOM_H_ #include /** * This header contains wrapper methods to generate random numbers. */ /** * Returns a random double in [0,1) */ static inline double doublerand_1() { return unif_rand(); } /** * Returns a random integer value in [0,maxVal-1] */ static inline unsigned int intrand(unsigned int maxVal) { return (unsigned int)(unif_rand() * maxVal); } #endif /*RANDOM_H_*/ BoolNet/src/uthash.h0000644000176000001440000016264112473311652014116 0ustar ripleyusers/* Copyright (c) 2003-2011, Troy D. Hanson http://uthash.sourceforge.net All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef UTHASH_H #define UTHASH_H #include /* memcmp,strlen */ #include /* ptrdiff_t */ #include /* exit() */ /* These macros use decltype or the earlier __typeof GNU extension. As decltype is only available in newer compilers (VS2010 or gcc 4.3+ when compiling c++ source) this code uses whatever method is needed or, for VS2008 where neither is available, uses casting workarounds. */ #ifdef _MSC_VER /* MS compiler */ #if _MSC_VER >= 1600 && defined(__cplusplus) /* VS2010 or newer in C++ mode */ #define DECLTYPE(x) (decltype(x)) #else /* VS2008 or older (or VS2010 in C mode) */ #define NO_DECLTYPE #define DECLTYPE(x) #endif #else /* GNU, Sun and other compilers */ #define DECLTYPE(x) (__typeof(x)) #endif #ifdef NO_DECLTYPE #define DECLTYPE_ASSIGN(dst,src) \ do { \ char **_da_dst = (char**)(&(dst)); \ *_da_dst = (char*)(src); \ } while(0) #else #define DECLTYPE_ASSIGN(dst,src) \ do { \ (dst) = DECLTYPE(dst)(src); \ } while(0) #endif /* a number of the hash function use uint32_t which isn't defined on win32 */ #ifdef _MSC_VER typedef unsigned int uint32_t; typedef unsigned char uint8_t; #else #include /* uint32_t */ #endif #define UTHASH_VERSION 1.9.4 //Modified by C. Muessel for use in R #define uthash_fatal(msg) error(msg) /* fatal error (out of memory,etc) */ #define uthash_malloc(sz) malloc(sz) /* malloc fcn */ #define uthash_free(ptr,sz) free(ptr) /* free fcn */ #define uthash_noexpand_fyi(tbl) /* can be defined to log noexpand */ #define uthash_expand_fyi(tbl) /* can be defined to log expands */ /* initial number of buckets */ #define HASH_INITIAL_NUM_BUCKETS 32 /* initial number of buckets */ #define HASH_INITIAL_NUM_BUCKETS_LOG2 5 /* lg2 of initial number of buckets */ #define HASH_BKT_CAPACITY_THRESH 10 /* expand when bucket count reaches */ /* calculate the element whose hash handle address is hhe */ #define ELMT_FROM_HH(tbl,hhp) ((void*)(((char*)(hhp)) - ((tbl)->hho))) #define HASH_FIND(hh,head,keyptr,keylen,out) \ do { \ unsigned _hf_bkt,_hf_hashv; \ out=NULL; \ if (head) { \ HASH_FCN(keyptr,keylen, (head)->hh.tbl->num_buckets, _hf_hashv, _hf_bkt); \ if (HASH_BLOOM_TEST((head)->hh.tbl, _hf_hashv)) { \ HASH_FIND_IN_BKT((head)->hh.tbl, hh, (head)->hh.tbl->buckets[ _hf_bkt ], \ keyptr,keylen,out); \ } \ } \ } while (0) #ifdef HASH_BLOOM #define HASH_BLOOM_BITLEN (1ULL << HASH_BLOOM) #define HASH_BLOOM_BYTELEN (HASH_BLOOM_BITLEN/8) + ((HASH_BLOOM_BITLEN%8) ? 1:0) #define HASH_BLOOM_MAKE(tbl) \ do { \ (tbl)->bloom_nbits = HASH_BLOOM; \ (tbl)->bloom_bv = (uint8_t*)uthash_malloc(HASH_BLOOM_BYTELEN); \ if (!((tbl)->bloom_bv)) { uthash_fatal( "out of memory"); } \ memset((tbl)->bloom_bv, 0, HASH_BLOOM_BYTELEN); \ (tbl)->bloom_sig = HASH_BLOOM_SIGNATURE; \ } while (0); #define HASH_BLOOM_FREE(tbl) \ do { \ uthash_free((tbl)->bloom_bv, HASH_BLOOM_BYTELEN); \ } while (0); #define HASH_BLOOM_BITSET(bv,idx) (bv[(idx)/8] |= (1U << ((idx)%8))) #define HASH_BLOOM_BITTEST(bv,idx) (bv[(idx)/8] & (1U << ((idx)%8))) #define HASH_BLOOM_ADD(tbl,hashv) \ HASH_BLOOM_BITSET((tbl)->bloom_bv, (hashv & (uint32_t)((1ULL << (tbl)->bloom_nbits) - 1))) #define HASH_BLOOM_TEST(tbl,hashv) \ HASH_BLOOM_BITTEST((tbl)->bloom_bv, (hashv & (uint32_t)((1ULL << (tbl)->bloom_nbits) - 1))) #else #define HASH_BLOOM_MAKE(tbl) #define HASH_BLOOM_FREE(tbl) #define HASH_BLOOM_ADD(tbl,hashv) #define HASH_BLOOM_TEST(tbl,hashv) (1) #endif #define HASH_MAKE_TABLE(hh,head) \ do { \ (head)->hh.tbl = (UT_hash_table*)uthash_malloc( \ sizeof(UT_hash_table)); \ if (!((head)->hh.tbl)) { uthash_fatal( "out of memory"); } \ memset((head)->hh.tbl, 0, sizeof(UT_hash_table)); \ (head)->hh.tbl->tail = &((head)->hh); \ (head)->hh.tbl->num_buckets = HASH_INITIAL_NUM_BUCKETS; \ (head)->hh.tbl->log2_num_buckets = HASH_INITIAL_NUM_BUCKETS_LOG2; \ (head)->hh.tbl->hho = (char*)(&(head)->hh) - (char*)(head); \ (head)->hh.tbl->buckets = (UT_hash_bucket*)uthash_malloc( \ HASH_INITIAL_NUM_BUCKETS*sizeof(struct UT_hash_bucket)); \ if (! (head)->hh.tbl->buckets) { uthash_fatal( "out of memory"); } \ memset((head)->hh.tbl->buckets, 0, \ HASH_INITIAL_NUM_BUCKETS*sizeof(struct UT_hash_bucket)); \ HASH_BLOOM_MAKE((head)->hh.tbl); \ (head)->hh.tbl->signature = HASH_SIGNATURE; \ } while(0) #define HASH_ADD(hh,head,fieldname,keylen_in,add) \ HASH_ADD_KEYPTR(hh,head,&((add)->fieldname),keylen_in,add) #define HASH_ADD_KEYPTR(hh,head,keyptr,keylen_in,add) \ do { \ unsigned _ha_bkt; \ (add)->hh.next = NULL; \ (add)->hh.key = (char*)keyptr; \ (add)->hh.keylen = keylen_in; \ if (!(head)) { \ head = (add); \ (head)->hh.prev = NULL; \ HASH_MAKE_TABLE(hh,head); \ } else { \ (head)->hh.tbl->tail->next = (add); \ (add)->hh.prev = ELMT_FROM_HH((head)->hh.tbl, (head)->hh.tbl->tail); \ (head)->hh.tbl->tail = &((add)->hh); \ } \ (head)->hh.tbl->num_items++; \ (add)->hh.tbl = (head)->hh.tbl; \ HASH_FCN(keyptr,keylen_in, (head)->hh.tbl->num_buckets, \ (add)->hh.hashv, _ha_bkt); \ HASH_ADD_TO_BKT((head)->hh.tbl->buckets[_ha_bkt],&(add)->hh); \ HASH_BLOOM_ADD((head)->hh.tbl,(add)->hh.hashv); \ HASH_EMIT_KEY(hh,head,keyptr,keylen_in); \ HASH_FSCK(hh,head); \ } while(0) #define HASH_TO_BKT( hashv, num_bkts, bkt ) \ do { \ bkt = ((hashv) & ((num_bkts) - 1)); \ } while(0) /* delete "delptr" from the hash table. * "the usual" patch-up process for the app-order doubly-linked-list. * The use of _hd_hh_del below deserves special explanation. * These used to be expressed using (delptr) but that led to a bug * if someone used the same symbol for the head and deletee, like * HASH_DELETE(hh,users,users); * We want that to work, but by changing the head (users) below * we were forfeiting our ability to further refer to the deletee (users) * in the patch-up process. Solution: use scratch space to * copy the deletee pointer, then the latter references are via that * scratch pointer rather than through the repointed (users) symbol. */ #define HASH_DELETE(hh,head,delptr) \ do { \ unsigned _hd_bkt; \ struct UT_hash_handle *_hd_hh_del; \ if ( ((delptr)->hh.prev == NULL) && ((delptr)->hh.next == NULL) ) { \ uthash_free((head)->hh.tbl->buckets, \ (head)->hh.tbl->num_buckets*sizeof(struct UT_hash_bucket) ); \ HASH_BLOOM_FREE((head)->hh.tbl); \ uthash_free((head)->hh.tbl, sizeof(UT_hash_table)); \ head = NULL; \ } else { \ _hd_hh_del = &((delptr)->hh); \ if ((delptr) == ELMT_FROM_HH((head)->hh.tbl,(head)->hh.tbl->tail)) { \ (head)->hh.tbl->tail = \ (UT_hash_handle*)((char*)((delptr)->hh.prev) + \ (head)->hh.tbl->hho); \ } \ if ((delptr)->hh.prev) { \ ((UT_hash_handle*)((char*)((delptr)->hh.prev) + \ (head)->hh.tbl->hho))->next = (delptr)->hh.next; \ } else { \ DECLTYPE_ASSIGN(head,(delptr)->hh.next); \ } \ if (_hd_hh_del->next) { \ ((UT_hash_handle*)((char*)_hd_hh_del->next + \ (head)->hh.tbl->hho))->prev = \ _hd_hh_del->prev; \ } \ HASH_TO_BKT( _hd_hh_del->hashv, (head)->hh.tbl->num_buckets, _hd_bkt); \ HASH_DEL_IN_BKT(hh,(head)->hh.tbl->buckets[_hd_bkt], _hd_hh_del); \ (head)->hh.tbl->num_items--; \ } \ HASH_FSCK(hh,head); \ } while (0) /* convenience forms of HASH_FIND/HASH_ADD/HASH_DEL */ #define HASH_FIND_STR(head,findstr,out) \ HASH_FIND(hh,head,findstr,strlen(findstr),out) #define HASH_ADD_STR(head,strfield,add) \ HASH_ADD(hh,head,strfield,strlen(add->strfield),add) #define HASH_FIND_INT(head,findint,out) \ HASH_FIND(hh,head,findint,sizeof(int),out) #define HASH_ADD_INT(head,intfield,add) \ HASH_ADD(hh,head,intfield,sizeof(int),add) #define HASH_FIND_PTR(head,findptr,out) \ HASH_FIND(hh,head,findptr,sizeof(void *),out) #define HASH_ADD_PTR(head,ptrfield,add) \ HASH_ADD(hh,head,ptrfield,sizeof(void *),add) #define HASH_DEL(head,delptr) \ HASH_DELETE(hh,head,delptr) /* HASH_FSCK checks hash integrity on every add/delete when HASH_DEBUG is defined. * This is for uthash developer only; it compiles away if HASH_DEBUG isn't defined. */ #ifdef HASH_DEBUG #define HASH_OOPS(...) do { fprintf(stderr,__VA_ARGS__); exit(-1); } while (0) #define HASH_FSCK(hh,head) \ do { \ unsigned _bkt_i; \ unsigned _count, _bkt_count; \ char *_prev; \ struct UT_hash_handle *_thh; \ if (head) { \ _count = 0; \ for( _bkt_i = 0; _bkt_i < (head)->hh.tbl->num_buckets; _bkt_i++) { \ _bkt_count = 0; \ _thh = (head)->hh.tbl->buckets[_bkt_i].hh_head; \ _prev = NULL; \ while (_thh) { \ if (_prev != (char*)(_thh->hh_prev)) { \ HASH_OOPS("invalid hh_prev %p, actual %p\n", \ _thh->hh_prev, _prev ); \ } \ _bkt_count++; \ _prev = (char*)(_thh); \ _thh = _thh->hh_next; \ } \ _count += _bkt_count; \ if ((head)->hh.tbl->buckets[_bkt_i].count != _bkt_count) { \ HASH_OOPS("invalid bucket count %d, actual %d\n", \ (head)->hh.tbl->buckets[_bkt_i].count, _bkt_count); \ } \ } \ if (_count != (head)->hh.tbl->num_items) { \ HASH_OOPS("invalid hh item count %d, actual %d\n", \ (head)->hh.tbl->num_items, _count ); \ } \ /* traverse hh in app order; check next/prev integrity, count */ \ _count = 0; \ _prev = NULL; \ _thh = &(head)->hh; \ while (_thh) { \ _count++; \ if (_prev !=(char*)(_thh->prev)) { \ HASH_OOPS("invalid prev %p, actual %p\n", \ _thh->prev, _prev ); \ } \ _prev = (char*)ELMT_FROM_HH((head)->hh.tbl, _thh); \ _thh = ( _thh->next ? (UT_hash_handle*)((char*)(_thh->next) + \ (head)->hh.tbl->hho) : NULL ); \ } \ if (_count != (head)->hh.tbl->num_items) { \ HASH_OOPS("invalid app item count %d, actual %d\n", \ (head)->hh.tbl->num_items, _count ); \ } \ } \ } while (0) #else #define HASH_FSCK(hh,head) #endif /* When compiled with -DHASH_EMIT_KEYS, length-prefixed keys are emitted to * the descriptor to which this macro is defined for tuning the hash function. * The app can #include to get the prototype for write(2). */ #ifdef HASH_EMIT_KEYS #define HASH_EMIT_KEY(hh,head,keyptr,fieldlen) \ do { \ unsigned _klen = fieldlen; \ write(HASH_EMIT_KEYS, &_klen, sizeof(_klen)); \ write(HASH_EMIT_KEYS, keyptr, fieldlen); \ } while (0) #else #define HASH_EMIT_KEY(hh,head,keyptr,fieldlen) #endif /* default to Jenkin's hash unless overridden e.g. DHASH_FUNCTION=HASH_SAX */ #ifdef HASH_FUNCTION #define HASH_FCN HASH_FUNCTION #else #define HASH_FCN HASH_JEN #endif /* The Bernstein hash function, used in Perl prior to v5.6 */ #define HASH_BER(key,keylen,num_bkts,hashv,bkt) \ do { \ unsigned _hb_keylen=keylen; \ char *_hb_key=(char*)(key); \ (hashv) = 0; \ while (_hb_keylen--) { (hashv) = ((hashv) * 33) + *_hb_key++; } \ bkt = (hashv) & (num_bkts-1); \ } while (0) /* SAX/FNV/OAT/JEN hash functions are macro variants of those listed at * http://eternallyconfuzzled.com/tuts/algorithms/jsw_tut_hashing.aspx */ #define HASH_SAX(key,keylen,num_bkts,hashv,bkt) \ do { \ unsigned _sx_i; \ char *_hs_key=(char*)(key); \ hashv = 0; \ for(_sx_i=0; _sx_i < keylen; _sx_i++) \ hashv ^= (hashv << 5) + (hashv >> 2) + _hs_key[_sx_i]; \ bkt = hashv & (num_bkts-1); \ } while (0) #define HASH_FNV(key,keylen,num_bkts,hashv,bkt) \ do { \ unsigned _fn_i; \ char *_hf_key=(char*)(key); \ hashv = 2166136261UL; \ for(_fn_i=0; _fn_i < keylen; _fn_i++) \ hashv = (hashv * 16777619) ^ _hf_key[_fn_i]; \ bkt = hashv & (num_bkts-1); \ } while(0); #define HASH_OAT(key,keylen,num_bkts,hashv,bkt) \ do { \ unsigned _ho_i; \ char *_ho_key=(char*)(key); \ hashv = 0; \ for(_ho_i=0; _ho_i < keylen; _ho_i++) { \ hashv += _ho_key[_ho_i]; \ hashv += (hashv << 10); \ hashv ^= (hashv >> 6); \ } \ hashv += (hashv << 3); \ hashv ^= (hashv >> 11); \ hashv += (hashv << 15); \ bkt = hashv & (num_bkts-1); \ } while(0) #define HASH_JEN_MIX(a,b,c) \ do { \ a -= b; a -= c; a ^= ( c >> 13 ); \ b -= c; b -= a; b ^= ( a << 8 ); \ c -= a; c -= b; c ^= ( b >> 13 ); \ a -= b; a -= c; a ^= ( c >> 12 ); \ b -= c; b -= a; b ^= ( a << 16 ); \ c -= a; c -= b; c ^= ( b >> 5 ); \ a -= b; a -= c; a ^= ( c >> 3 ); \ b -= c; b -= a; b ^= ( a << 10 ); \ c -= a; c -= b; c ^= ( b >> 15 ); \ } while (0) #define HASH_JEN(key,keylen,num_bkts,hashv,bkt) \ do { \ unsigned _hj_i,_hj_j,_hj_k; \ char *_hj_key=(char*)(key); \ hashv = 0xfeedbeef; \ _hj_i = _hj_j = 0x9e3779b9; \ _hj_k = keylen; \ while (_hj_k >= 12) { \ _hj_i += (_hj_key[0] + ( (unsigned)_hj_key[1] << 8 ) \ + ( (unsigned)_hj_key[2] << 16 ) \ + ( (unsigned)_hj_key[3] << 24 ) ); \ _hj_j += (_hj_key[4] + ( (unsigned)_hj_key[5] << 8 ) \ + ( (unsigned)_hj_key[6] << 16 ) \ + ( (unsigned)_hj_key[7] << 24 ) ); \ hashv += (_hj_key[8] + ( (unsigned)_hj_key[9] << 8 ) \ + ( (unsigned)_hj_key[10] << 16 ) \ + ( (unsigned)_hj_key[11] << 24 ) ); \ \ HASH_JEN_MIX(_hj_i, _hj_j, hashv); \ \ _hj_key += 12; \ _hj_k -= 12; \ } \ hashv += keylen; \ switch ( _hj_k ) { \ case 11: hashv += ( (unsigned)_hj_key[10] << 24 ); \ case 10: hashv += ( (unsigned)_hj_key[9] << 16 ); \ case 9: hashv += ( (unsigned)_hj_key[8] << 8 ); \ case 8: _hj_j += ( (unsigned)_hj_key[7] << 24 ); \ case 7: _hj_j += ( (unsigned)_hj_key[6] << 16 ); \ case 6: _hj_j += ( (unsigned)_hj_key[5] << 8 ); \ case 5: _hj_j += _hj_key[4]; \ case 4: _hj_i += ( (unsigned)_hj_key[3] << 24 ); \ case 3: _hj_i += ( (unsigned)_hj_key[2] << 16 ); \ case 2: _hj_i += ( (unsigned)_hj_key[1] << 8 ); \ case 1: _hj_i += _hj_key[0]; \ } \ HASH_JEN_MIX(_hj_i, _hj_j, hashv); \ bkt = hashv & (num_bkts-1); \ } while(0) /* The Paul Hsieh hash function */ #undef get16bits #if (defined(__GNUC__) && defined(__i386__)) || defined(__WATCOMC__) \ || defined(_MSC_VER) || defined (__BORLANDC__) || defined (__TURBOC__) #define get16bits(d) (*((const uint16_t *) (d))) #endif #if !defined (get16bits) #define get16bits(d) ((((uint32_t)(((const uint8_t *)(d))[1])) << 8) \ +(uint32_t)(((const uint8_t *)(d))[0]) ) #endif #define HASH_SFH(key,keylen,num_bkts,hashv,bkt) \ do { \ char *_sfh_key=(char*)(key); \ uint32_t _sfh_tmp, _sfh_len = keylen; \ \ int _sfh_rem = _sfh_len & 3; \ _sfh_len >>= 2; \ hashv = 0xcafebabe; \ \ /* Main loop */ \ for (;_sfh_len > 0; _sfh_len--) { \ hashv += get16bits (_sfh_key); \ _sfh_tmp = (get16bits (_sfh_key+2) << 11) ^ hashv; \ hashv = (hashv << 16) ^ _sfh_tmp; \ _sfh_key += 2*sizeof (uint16_t); \ hashv += hashv >> 11; \ } \ \ /* Handle end cases */ \ switch (_sfh_rem) { \ case 3: hashv += get16bits (_sfh_key); \ hashv ^= hashv << 16; \ hashv ^= _sfh_key[sizeof (uint16_t)] << 18; \ hashv += hashv >> 11; \ break; \ case 2: hashv += get16bits (_sfh_key); \ hashv ^= hashv << 11; \ hashv += hashv >> 17; \ break; \ case 1: hashv += *_sfh_key; \ hashv ^= hashv << 10; \ hashv += hashv >> 1; \ } \ \ /* Force "avalanching" of final 127 bits */ \ hashv ^= hashv << 3; \ hashv += hashv >> 5; \ hashv ^= hashv << 4; \ hashv += hashv >> 17; \ hashv ^= hashv << 25; \ hashv += hashv >> 6; \ bkt = hashv & (num_bkts-1); \ } while(0); #ifdef HASH_USING_NO_STRICT_ALIASING /* The MurmurHash exploits some CPU's (x86,x86_64) tolerance for unaligned reads. * For other types of CPU's (e.g. Sparc) an unaligned read causes a bus error. * MurmurHash uses the faster approach only on CPU's where we know it's safe. * * Note the preprocessor built-in defines can be emitted using: * * gcc -m64 -dM -E - < /dev/null (on gcc) * cc -## a.c (where a.c is a simple test file) (Sun Studio) */ #if (defined(__i386__) || defined(__x86_64__)) #define MUR_GETBLOCK(p,i) p[i] #else /* non intel */ #define MUR_PLUS0_ALIGNED(p) (((unsigned long)p & 0x3) == 0) #define MUR_PLUS1_ALIGNED(p) (((unsigned long)p & 0x3) == 1) #define MUR_PLUS2_ALIGNED(p) (((unsigned long)p & 0x3) == 2) #define MUR_PLUS3_ALIGNED(p) (((unsigned long)p & 0x3) == 3) #define WP(p) ((uint32_t*)((unsigned long)(p) & ~3UL)) #if (defined(__BIG_ENDIAN__) || defined(SPARC) || defined(__ppc__) || defined(__ppc64__)) #define MUR_THREE_ONE(p) ((((*WP(p))&0x00ffffff) << 8) | (((*(WP(p)+1))&0xff000000) >> 24)) #define MUR_TWO_TWO(p) ((((*WP(p))&0x0000ffff) <<16) | (((*(WP(p)+1))&0xffff0000) >> 16)) #define MUR_ONE_THREE(p) ((((*WP(p))&0x000000ff) <<24) | (((*(WP(p)+1))&0xffffff00) >> 8)) #else /* assume little endian non-intel */ #define MUR_THREE_ONE(p) ((((*WP(p))&0xffffff00) >> 8) | (((*(WP(p)+1))&0x000000ff) << 24)) #define MUR_TWO_TWO(p) ((((*WP(p))&0xffff0000) >>16) | (((*(WP(p)+1))&0x0000ffff) << 16)) #define MUR_ONE_THREE(p) ((((*WP(p))&0xff000000) >>24) | (((*(WP(p)+1))&0x00ffffff) << 8)) #endif #define MUR_GETBLOCK(p,i) (MUR_PLUS0_ALIGNED(p) ? ((p)[i]) : \ (MUR_PLUS1_ALIGNED(p) ? MUR_THREE_ONE(p) : \ (MUR_PLUS2_ALIGNED(p) ? MUR_TWO_TWO(p) : \ MUR_ONE_THREE(p)))) #endif #define MUR_ROTL32(x,r) (((x) << (r)) | ((x) >> (32 - (r)))) #define MUR_FMIX(_h) \ do { \ _h ^= _h >> 16; \ _h *= 0x85ebca6b; \ _h ^= _h >> 13; \ _h *= 0xc2b2ae35l; \ _h ^= _h >> 16; \ } while(0) #define HASH_MUR(key,keylen,num_bkts,hashv,bkt) \ do { \ const uint8_t *_mur_data = (const uint8_t*)(key); \ const int _mur_nblocks = (keylen) / 4; \ uint32_t _mur_h1 = 0xf88D5353; \ uint32_t _mur_c1 = 0xcc9e2d51; \ uint32_t _mur_c2 = 0x1b873593; \ const uint32_t *_mur_blocks = (const uint32_t*)(_mur_data+_mur_nblocks*4); \ int _mur_i; \ for(_mur_i = -_mur_nblocks; _mur_i; _mur_i++) { \ uint32_t _mur_k1 = MUR_GETBLOCK(_mur_blocks,_mur_i); \ _mur_k1 *= _mur_c1; \ _mur_k1 = MUR_ROTL32(_mur_k1,15); \ _mur_k1 *= _mur_c2; \ \ _mur_h1 ^= _mur_k1; \ _mur_h1 = MUR_ROTL32(_mur_h1,13); \ _mur_h1 = _mur_h1*5+0xe6546b64; \ } \ const uint8_t *_mur_tail = (const uint8_t*)(_mur_data + _mur_nblocks*4); \ uint32_t _mur_k1=0; \ switch((keylen) & 3) { \ case 3: _mur_k1 ^= _mur_tail[2] << 16; \ case 2: _mur_k1 ^= _mur_tail[1] << 8; \ case 1: _mur_k1 ^= _mur_tail[0]; \ _mur_k1 *= _mur_c1; \ _mur_k1 = MUR_ROTL32(_mur_k1,15); \ _mur_k1 *= _mur_c2; \ _mur_h1 ^= _mur_k1; \ } \ _mur_h1 ^= (keylen); \ MUR_FMIX(_mur_h1); \ hashv = _mur_h1; \ bkt = hashv & (num_bkts-1); \ } while(0) #endif /* HASH_USING_NO_STRICT_ALIASING */ /* key comparison function; return 0 if keys equal */ #define HASH_KEYCMP(a,b,len) memcmp(a,b,len) /* iterate over items in a known bucket to find desired item */ #define HASH_FIND_IN_BKT(tbl,hh,head,keyptr,keylen_in,out) \ do { \ if (head.hh_head) DECLTYPE_ASSIGN(out,ELMT_FROM_HH(tbl,head.hh_head)); \ else out=NULL; \ while (out) { \ if (out->hh.keylen == keylen_in) { \ if ((HASH_KEYCMP(out->hh.key,keyptr,keylen_in)) == 0) break; \ } \ if (out->hh.hh_next) DECLTYPE_ASSIGN(out,ELMT_FROM_HH(tbl,out->hh.hh_next)); \ else out = NULL; \ } \ } while(0) /* add an item to a bucket */ #define HASH_ADD_TO_BKT(head,addhh) \ do { \ head.count++; \ (addhh)->hh_next = head.hh_head; \ (addhh)->hh_prev = NULL; \ if (head.hh_head) { (head).hh_head->hh_prev = (addhh); } \ (head).hh_head=addhh; \ if (head.count >= ((head.expand_mult+1) * HASH_BKT_CAPACITY_THRESH) \ && (addhh)->tbl->noexpand != 1) { \ HASH_EXPAND_BUCKETS((addhh)->tbl); \ } \ } while(0) /* remove an item from a given bucket */ #define HASH_DEL_IN_BKT(hh,head,hh_del) \ (head).count--; \ if ((head).hh_head == hh_del) { \ (head).hh_head = hh_del->hh_next; \ } \ if (hh_del->hh_prev) { \ hh_del->hh_prev->hh_next = hh_del->hh_next; \ } \ if (hh_del->hh_next) { \ hh_del->hh_next->hh_prev = hh_del->hh_prev; \ } /* Bucket expansion has the effect of doubling the number of buckets * and redistributing the items into the new buckets. Ideally the * items will distribute more or less evenly into the new buckets * (the extent to which this is true is a measure of the quality of * the hash function as it applies to the key domain). * * With the items distributed into more buckets, the chain length * (item count) in each bucket is reduced. Thus by expanding buckets * the hash keeps a bound on the chain length. This bounded chain * length is the essence of how a hash provides constant time lookup. * * The calculation of tbl->ideal_chain_maxlen below deserves some * explanation. First, keep in mind that we're calculating the ideal * maximum chain length based on the *new* (doubled) bucket count. * In fractions this is just n/b (n=number of items,b=new num buckets). * Since the ideal chain length is an integer, we want to calculate * ceil(n/b). We don't depend on floating point arithmetic in this * hash, so to calculate ceil(n/b) with integers we could write * * ceil(n/b) = (n/b) + ((n%b)?1:0) * * and in fact a previous version of this hash did just that. * But now we have improved things a bit by recognizing that b is * always a power of two. We keep its base 2 log handy (call it lb), * so now we can write this with a bit shift and logical AND: * * ceil(n/b) = (n>>lb) + ( (n & (b-1)) ? 1:0) * */ #define HASH_EXPAND_BUCKETS(tbl) \ do { \ unsigned _he_bkt; \ unsigned _he_bkt_i; \ struct UT_hash_handle *_he_thh, *_he_hh_nxt; \ UT_hash_bucket *_he_new_buckets, *_he_newbkt; \ _he_new_buckets = (UT_hash_bucket*)uthash_malloc( \ 2 * tbl->num_buckets * sizeof(struct UT_hash_bucket)); \ if (!_he_new_buckets) { uthash_fatal( "out of memory"); } \ memset(_he_new_buckets, 0, \ 2 * tbl->num_buckets * sizeof(struct UT_hash_bucket)); \ tbl->ideal_chain_maxlen = \ (tbl->num_items >> (tbl->log2_num_buckets+1)) + \ ((tbl->num_items & ((tbl->num_buckets*2)-1)) ? 1 : 0); \ tbl->nonideal_items = 0; \ for(_he_bkt_i = 0; _he_bkt_i < tbl->num_buckets; _he_bkt_i++) \ { \ _he_thh = tbl->buckets[ _he_bkt_i ].hh_head; \ while (_he_thh) { \ _he_hh_nxt = _he_thh->hh_next; \ HASH_TO_BKT( _he_thh->hashv, tbl->num_buckets*2, _he_bkt); \ _he_newbkt = &(_he_new_buckets[ _he_bkt ]); \ if (++(_he_newbkt->count) > tbl->ideal_chain_maxlen) { \ tbl->nonideal_items++; \ _he_newbkt->expand_mult = _he_newbkt->count / \ tbl->ideal_chain_maxlen; \ } \ _he_thh->hh_prev = NULL; \ _he_thh->hh_next = _he_newbkt->hh_head; \ if (_he_newbkt->hh_head) _he_newbkt->hh_head->hh_prev = \ _he_thh; \ _he_newbkt->hh_head = _he_thh; \ _he_thh = _he_hh_nxt; \ } \ } \ uthash_free( tbl->buckets, tbl->num_buckets*sizeof(struct UT_hash_bucket) ); \ tbl->num_buckets *= 2; \ tbl->log2_num_buckets++; \ tbl->buckets = _he_new_buckets; \ tbl->ineff_expands = (tbl->nonideal_items > (tbl->num_items >> 1)) ? \ (tbl->ineff_expands+1) : 0; \ if (tbl->ineff_expands > 1) { \ tbl->noexpand=1; \ uthash_noexpand_fyi(tbl); \ } \ uthash_expand_fyi(tbl); \ } while(0) /* This is an adaptation of Simon Tatham's O(n log(n)) mergesort */ /* Note that HASH_SORT assumes the hash handle name to be hh. * HASH_SRT was added to allow the hash handle name to be passed in. */ #define HASH_SORT(head,cmpfcn) HASH_SRT(hh,head,cmpfcn) #define HASH_SRT(hh,head,cmpfcn) \ do { \ unsigned _hs_i; \ unsigned _hs_looping,_hs_nmerges,_hs_insize,_hs_psize,_hs_qsize; \ struct UT_hash_handle *_hs_p, *_hs_q, *_hs_e, *_hs_list, *_hs_tail; \ if (head) { \ _hs_insize = 1; \ _hs_looping = 1; \ _hs_list = &((head)->hh); \ while (_hs_looping) { \ _hs_p = _hs_list; \ _hs_list = NULL; \ _hs_tail = NULL; \ _hs_nmerges = 0; \ while (_hs_p) { \ _hs_nmerges++; \ _hs_q = _hs_p; \ _hs_psize = 0; \ for ( _hs_i = 0; _hs_i < _hs_insize; _hs_i++ ) { \ _hs_psize++; \ _hs_q = (UT_hash_handle*)((_hs_q->next) ? \ ((void*)((char*)(_hs_q->next) + \ (head)->hh.tbl->hho)) : NULL); \ if (! (_hs_q) ) break; \ } \ _hs_qsize = _hs_insize; \ while ((_hs_psize > 0) || ((_hs_qsize > 0) && _hs_q )) { \ if (_hs_psize == 0) { \ _hs_e = _hs_q; \ _hs_q = (UT_hash_handle*)((_hs_q->next) ? \ ((void*)((char*)(_hs_q->next) + \ (head)->hh.tbl->hho)) : NULL); \ _hs_qsize--; \ } else if ( (_hs_qsize == 0) || !(_hs_q) ) { \ _hs_e = _hs_p; \ _hs_p = (UT_hash_handle*)((_hs_p->next) ? \ ((void*)((char*)(_hs_p->next) + \ (head)->hh.tbl->hho)) : NULL); \ _hs_psize--; \ } else if (( \ cmpfcn(DECLTYPE(head)(ELMT_FROM_HH((head)->hh.tbl,_hs_p)), \ DECLTYPE(head)(ELMT_FROM_HH((head)->hh.tbl,_hs_q))) \ ) <= 0) { \ _hs_e = _hs_p; \ _hs_p = (UT_hash_handle*)((_hs_p->next) ? \ ((void*)((char*)(_hs_p->next) + \ (head)->hh.tbl->hho)) : NULL); \ _hs_psize--; \ } else { \ _hs_e = _hs_q; \ _hs_q = (UT_hash_handle*)((_hs_q->next) ? \ ((void*)((char*)(_hs_q->next) + \ (head)->hh.tbl->hho)) : NULL); \ _hs_qsize--; \ } \ if ( _hs_tail ) { \ _hs_tail->next = ((_hs_e) ? \ ELMT_FROM_HH((head)->hh.tbl,_hs_e) : NULL); \ } else { \ _hs_list = _hs_e; \ } \ _hs_e->prev = ((_hs_tail) ? \ ELMT_FROM_HH((head)->hh.tbl,_hs_tail) : NULL); \ _hs_tail = _hs_e; \ } \ _hs_p = _hs_q; \ } \ _hs_tail->next = NULL; \ if ( _hs_nmerges <= 1 ) { \ _hs_looping=0; \ (head)->hh.tbl->tail = _hs_tail; \ DECLTYPE_ASSIGN(head,ELMT_FROM_HH((head)->hh.tbl, _hs_list)); \ } \ _hs_insize *= 2; \ } \ HASH_FSCK(hh,head); \ } \ } while (0) /* This function selects items from one hash into another hash. * The end result is that the selected items have dual presence * in both hashes. There is no copy of the items made; rather * they are added into the new hash through a secondary hash * hash handle that must be present in the structure. */ #define HASH_SELECT(hh_dst, dst, hh_src, src, cond) \ do { \ unsigned _src_bkt, _dst_bkt; \ void *_last_elt=NULL, *_elt; \ UT_hash_handle *_src_hh, *_dst_hh, *_last_elt_hh=NULL; \ ptrdiff_t _dst_hho = ((char*)(&(dst)->hh_dst) - (char*)(dst)); \ if (src) { \ for(_src_bkt=0; _src_bkt < (src)->hh_src.tbl->num_buckets; _src_bkt++) { \ for(_src_hh = (src)->hh_src.tbl->buckets[_src_bkt].hh_head; \ _src_hh; \ _src_hh = _src_hh->hh_next) { \ _elt = ELMT_FROM_HH((src)->hh_src.tbl, _src_hh); \ if (cond(_elt)) { \ _dst_hh = (UT_hash_handle*)(((char*)_elt) + _dst_hho); \ _dst_hh->key = _src_hh->key; \ _dst_hh->keylen = _src_hh->keylen; \ _dst_hh->hashv = _src_hh->hashv; \ _dst_hh->prev = _last_elt; \ _dst_hh->next = NULL; \ if (_last_elt_hh) { _last_elt_hh->next = _elt; } \ if (!dst) { \ DECLTYPE_ASSIGN(dst,_elt); \ HASH_MAKE_TABLE(hh_dst,dst); \ } else { \ _dst_hh->tbl = (dst)->hh_dst.tbl; \ } \ HASH_TO_BKT(_dst_hh->hashv, _dst_hh->tbl->num_buckets, _dst_bkt); \ HASH_ADD_TO_BKT(_dst_hh->tbl->buckets[_dst_bkt],_dst_hh); \ (dst)->hh_dst.tbl->num_items++; \ _last_elt = _elt; \ _last_elt_hh = _dst_hh; \ } \ } \ } \ } \ HASH_FSCK(hh_dst,dst); \ } while (0) #define HASH_CLEAR(hh,head) \ do { \ if (head) { \ uthash_free((head)->hh.tbl->buckets, \ (head)->hh.tbl->num_buckets*sizeof(struct UT_hash_bucket)); \ HASH_BLOOM_FREE((head)->hh.tbl); \ uthash_free((head)->hh.tbl, sizeof(UT_hash_table)); \ (head)=NULL; \ } \ } while(0) #ifdef NO_DECLTYPE #define HASH_ITER(hh,head,el,tmp) \ for((el)=(head), (*(char**)(&(tmp)))=(char*)((head)?(head)->hh.next:NULL); \ el; (el)=(tmp),(*(char**)(&(tmp)))=(char*)((tmp)?(tmp)->hh.next:NULL)) #else #define HASH_ITER(hh,head,el,tmp) \ for((el)=(head),(tmp)=DECLTYPE(el)((head)?(head)->hh.next:NULL); \ el; (el)=(tmp),(tmp)=DECLTYPE(el)((tmp)?(tmp)->hh.next:NULL)) #endif /* obtain a count of items in the hash */ #define HASH_COUNT(head) HASH_CNT(hh,head) #define HASH_CNT(hh,head) ((head)?((head)->hh.tbl->num_items):0) typedef struct UT_hash_bucket { struct UT_hash_handle *hh_head; unsigned count; /* expand_mult is normally set to 0. In this situation, the max chain length * threshold is enforced at its default value, HASH_BKT_CAPACITY_THRESH. (If * the bucket's chain exceeds this length, bucket expansion is triggered). * However, setting expand_mult to a non-zero value delays bucket expansion * (that would be triggered by additions to this particular bucket) * until its chain length reaches a *multiple* of HASH_BKT_CAPACITY_THRESH. * (The multiplier is simply expand_mult+1). The whole idea of this * multiplier is to reduce bucket expansions, since they are expensive, in * situations where we know that a particular bucket tends to be overused. * It is better to let its chain length grow to a longer yet-still-bounded * value, than to do an O(n) bucket expansion too often. */ unsigned expand_mult; } UT_hash_bucket; /* random signature used only to find hash tables in external analysis */ #define HASH_SIGNATURE 0xa0111fe1 #define HASH_BLOOM_SIGNATURE 0xb12220f2 typedef struct UT_hash_table { UT_hash_bucket *buckets; unsigned num_buckets, log2_num_buckets; unsigned num_items; struct UT_hash_handle *tail; /* tail hh in app order, for fast append */ ptrdiff_t hho; /* hash handle offset (byte pos of hash handle in element */ /* in an ideal situation (all buckets used equally), no bucket would have * more than ceil(#items/#buckets) items. that's the ideal chain length. */ unsigned ideal_chain_maxlen; /* nonideal_items is the number of items in the hash whose chain position * exceeds the ideal chain maxlen. these items pay the penalty for an uneven * hash distribution; reaching them in a chain traversal takes >ideal steps */ unsigned nonideal_items; /* ineffective expands occur when a bucket doubling was performed, but * afterward, more than half the items in the hash had nonideal chain * positions. If this happens on two consecutive expansions we inhibit any * further expansion, as it's not helping; this happens when the hash * function isn't a good fit for the key domain. When expansion is inhibited * the hash will still work, albeit no longer in constant time. */ unsigned ineff_expands, noexpand; uint32_t signature; /* used only to find hash tables in external analysis */ #ifdef HASH_BLOOM uint32_t bloom_sig; /* used only to test bloom exists in external analysis */ uint8_t *bloom_bv; char bloom_nbits; #endif } UT_hash_table; typedef struct UT_hash_handle { struct UT_hash_table *tbl; void *prev; /* prev element in app order */ void *next; /* next element in app order */ struct UT_hash_handle *hh_prev; /* previous hh in bucket order */ struct UT_hash_handle *hh_next; /* next hh in bucket order */ void *key; /* ptr to enclosing struct's key */ unsigned keylen; /* enclosing struct's key len */ unsigned hashv; /* result of hash-fcn(key) */ } UT_hash_handle; #endif /* UTHASH_H */ BoolNet/src/symbolic_network.h0000644000176000001440000001162612473311652016210 0ustar ripleyusers#ifndef SYMBOLIC_SIMULATOR_H #define SYMBOLIC_SIMULATOR_H #include #include #include "boolean_network.h" #define FORMULA_ATOM 0 #define FORMULA_OPERATOR 1 #define FORMULA_CONSTANT 2 #define OPERATOR_AND 0 #define OPERATOR_OR 1 #define OPERATOR_MAJ 2 #define OPERATOR_SUMIS 3 #define OPERATOR_SUMGT 4 #define OPERATOR_SUMLT 5 #define OPERATOR_TIMEIS 6 #define OPERATOR_TIMEGT 7 #define OPERATOR_TIMELT 8 #define MODE_EXHAUSTIVE 0 #define MODE_SUPPLIED 1 #define MODE_RANDOM 2 #define HASH_UNSET ~0 /** * "Base class" for Boolean Formulae */ typedef struct { // The formula type which allows // for casting to the corresponding "derived" type unsigned char type; // Is the formula negated or not? bool negated; } BooleanFormula; /** * "Derived class" for operators */ typedef struct { // here: type = FORMULA_OPERATOR unsigned char type; bool negated; // The operator type unsigned char operator; // The number of operands unsigned int numOperands; // The operands BooleanFormula ** operands; } BooleanOperator; /** * "Derived class" for literals */ typedef struct { // here: type = FORMULA_ATOM unsigned char type; bool negated; // The index of the variable that this object represents int literal; // The temporal difference unsigned int time; } BooleanAtom; /** * "Derived class" for constants */ typedef struct { // here: type = FORMULA_CONSTANT unsigned char type; bool negated; // The value of the constant int value; } Constant; /** * A structure holding a symbolic network * with all its network trees */ typedef struct { // here: type = SYMBOLIC_BOOLEAN_NETWORK unsigned char type; // The number of genes in the network unsigned int numGenes; // A vector specifying whether genes are fixed (0/1) or not (-1) int * fixedGenes; // The formulae representing the transition functions BooleanFormula ** interactions; // The formulae representing the transition functions in CNF // (for SAT-based attractor search) // Usually, this is a single formula per gene. // In the presence of time-dependent predicates, there are // + 1 formulae per gene. BooleanFormula *** cnfInteractions; // A vector specifying the maximum delay for each gene unsigned int * stateSizes; // The sum of all elements in stateSizes unsigned int totalStateSize; // The point of time at which attractor search can start, // as temporal predicates do not change any more unsigned int attractorSearchStartTime; // A vector specifying the indices in the state vector // at which the histories for each of the genes start unsigned int * stateOffsets; // A vector marking each entry in the state vector as fixed or not, // corresponding to the genes it belongs to int * stateFixed; } SymbolicBooleanNetwork; /** * A structure holding a state for temporal network simulation */ typedef struct { // The index of the start state to which this state belongs unsigned long long startState; // The current time step unsigned int timeStep; // The state vector (also containing previous states for certain genes if required) unsigned char state[]; } TemporalState; extern void freeSymbolicNetwork(SymbolicBooleanNetwork * network); static inline BooleanOperator * allocOperator(unsigned int operator, bool negated, unsigned int numOperands, BooleanFormula ** operands) { BooleanOperator * res = calloc(1, sizeof(BooleanOperator)); res->negated = negated; res->type = FORMULA_OPERATOR; res->operator = operator; res->numOperands = numOperands; if (operands == NULL) res->operands = calloc(numOperands, sizeof(BooleanFormula *)); else res->operands = operands; return res; } static inline BooleanAtom * allocAtom(int literal, unsigned int time, bool negated) { BooleanAtom * res = calloc(1, sizeof(BooleanAtom)); res->type = FORMULA_ATOM; res->negated = negated; res->literal = literal; res->time = time; return res; } static inline Constant * allocConstant(int value, bool negated) { Constant * res = calloc(1, sizeof(Constant)); res->type = FORMULA_CONSTANT; res->negated = negated; res->value = value; return res; } /** * Free the expression tree */ extern void freeFormula(BooleanFormula * formula); /** * Free the internal network structure */ extern void freeSymbolicNetwork(SymbolicBooleanNetwork * network); extern BooleanFormula * copyFormula(BooleanFormula * formula, bool negate, unsigned int timeOffset); /** * Evaluate an expression tree on the previous state . * is an array describing where the history of the i-th gene starts. * is the total number of genes in the network. * Returns a logical value resulting from the evaluation. */ extern unsigned char evaluate(BooleanFormula * formula, TemporalState * state, unsigned int * stateOffsets, const unsigned int numGenes); extern BooleanFormula * convertToCNF(BooleanFormula * formula, bool negate, unsigned int time); #endif BoolNet/src/sat_search.c0000644000176000001440000006256712473311652014737 0ustar ripleyusers#include "sat_search.h" #include #include #include #include "attractor_info.h" #include "common.h" #include "random.h" // Activate this switch to use the Lingeling solver instead of PicoSAT // - requires lglib.c and lglib.h to be present in the package. // Make sure to respect Lingeling's license terms! //#define USE_LINGELING #ifdef USE_LINGELING #include "lglib.h" #define sat_add_literal(solver, lit) lgladd(solver, lit) #define sat_deref(solver, lit) lglderef(solver, lit) #define sat_solve(solver) lglsat(solver) #define sat_free(solver) lglrelease(solver) #define SATISFIABLE LGL_SATISFIABLE /** * Custom interrupt function to be used with Lingeling. * The function calls R's user interrupt check. */ void SATInterrupt(void * external_state) { R_CheckUserInterrupt(); } typedef LGL Solver; #else #include "picosat.h" #define sat_add_literal(solver, lit) picosat_add(solver, lit) #define sat_deref(solver, lit) picosat_deref(solver, lit) #define sat_solve(solver) picosat_sat(solver, -1) #define sat_free(solver) picosat_reset(solver) #define SATISFIABLE PICOSAT_SATISFIABLE typedef PicoSAT Solver; /** * Custom interrupt function to be used with PicoSAT. * The function calls R's user interrupt check. */ int SATInterrupt(void * external_state) { R_CheckUserInterrupt(); return 0; } #endif #include "symbolic_network.h" /** * Custom memory allocator to be used with PicoSAT. * The allocator uses the internal memory map of BoolNet */ void * SATAlloc(void* mem, size_t sz) { return CALLOC(sz, 1); } /** * Custom memory deallocator to be used with PicoSAT/Lingeling. * The deallocator uses the internal memory map of BoolNet */ void SATDealloc(void* mem, void * ptr, size_t sz) { FREE(ptr); } /** * Custom memory resize function to be used with PicoSAT/Lingeling. * The function uses the internal memory map of BoolNet */ void * SATRealloc(void* mem, void * ptr, size_t old, size_t new) { return REALLOC(ptr, new); } #ifdef USE_LINGELING /** * Initialize the Lingeling SAT solver using appropriate memory handlers * and interrupt handlers. */ Solver * initSATSolver() { Solver * sat = lglminit(NULL, &SATAlloc, &SATRealloc, &SATDealloc); lglonabort(sat, NULL, &SATInterrupt); lglsetopt(sat, "elmfull", 1); lglsetopt(sat, "elmschedprod", 1); lglsetopt(sat, "seed", intrand(~0))); return sat; } #else /** * Initialize the PicoSAT SAT solver using appropriate memory handlers * and interrupt handlers. */ Solver * initSATSolver() { Solver * sat = picosat_minit(NULL, &SATAlloc, &SATRealloc, &SATDealloc); picosat_set_interrupt(sat, NULL, &SATInterrupt); picosat_set_seed(sat, intrand(~0)); return sat; } #endif /** * Recursively encode a symbolic formula for the SAT solver. This function expects that * is already in CNF, being either a constant, an atom, or a conjunction * comprising only constants, atoms or flat disjunctions. * is the network to which the formula belongs. * is the index of the gene that is currently encoded. * is the index of the state for which the formula should be encoded. * is the SAT solver. */ void encodeFormula(SymbolicBooleanNetwork * network, BooleanFormula * formula, int geneIndex, int stateIndex, Solver * sat) { assert(formula->type != FORMULA_CONSTANT); // if (formula->type == FORMULA_CONSTANT) // { // Constant * constant = (Constant *) formula; // if ((constant->value == 1 && !constant->negated) // || (constant->value == 0 && constant->negated)) // { // // add tautology // picosat_add(sat, -(network->numGenes * stateIndex + geneIndex + 1)); // picosat_add(sat, network->numGenes * stateIndex + geneIndex + 1); //// picosat_assume(sat, network->numGenes * stateIndex + geneIndex + 1); // } // else // { //// picosat_assume(sat, -(network->numGenes * stateIndex + geneIndex + 1)); // } // } // else if (formula->type == FORMULA_ATOM) { BooleanAtom * atom = (BooleanAtom *) formula; // add the atom directly if (atom->negated) { sat_add_literal(sat, -(network->numGenes * (stateIndex + atom->time) + atom->literal + 1)); } else { sat_add_literal(sat, network->numGenes * (stateIndex + atom->time) + atom->literal + 1); } } else if (formula->type == FORMULA_OPERATOR) { BooleanOperator * operator = (BooleanOperator *) formula; int i; for (i = 0; i < operator->numOperands; ++i) { // recursively encode operands encodeFormula(network, operator->operands[i], geneIndex, stateIndex, sat); if (operator->operator == OPERATOR_AND) // if this is the outer conjunction, each inner element must be a clause // and thus be terminated by a 0 { sat_add_literal(sat, 0); } } } } /** * Add CNF clauses that represent the th-last state of the network * in the chain to the SAT solver . * specifies which of the formulae available for each gene should * be utilized for the state (usually the first, but there may be more than one * formula if the network comprises time-dependent predicates). */ static inline void addState_SAT(BooleanNetwork * network, Solver * sat, int stateIndex, unsigned int formulaIndex) { unsigned int i, j, k; for (i = 0; i < network->numGenes; ++i) { if (network->fixedGenes[i] != -1) // fixed gene => add a clause with a constant 1 or 0 for that gene { if (network->fixedGenes[i] == 0) sat_add_literal(sat, -(network->numGenes * stateIndex + i + 1)); else sat_add_literal(sat, network->numGenes * stateIndex + i + 1); sat_add_literal(sat, 0); } else // non-fixed gene { if (network->type == TRUTHTABLE_BOOLEAN_NETWORK) // network in truth table representation => construct CNF from truth table { TruthTableBooleanNetwork * ttNetwork = (TruthTableBooleanNetwork *) network; unsigned int numInputs = ttNetwork->inputGenePositions[i + 1] - ttNetwork->inputGenePositions[i]; unsigned int funcSize = ttNetwork->transitionFunctionPositions[i + 1] - ttNetwork->transitionFunctionPositions[i]; // construct clauses for equivalence relations by "doubling" the truth table of // the transition function (corresponding to inactive and active output) for (j = 0; j < funcSize; ++j) { // in the first half, the target gene is inactive (truth table result is negated) // input genes must be negated for CNF if (ttNetwork->transitionFunctions[ttNetwork->transitionFunctionPositions[i] + j]) { sat_add_literal(sat, network->numGenes * stateIndex + i + 1); for (k = 0; k < numInputs; ++k) { int varIndex = network->numGenes * (stateIndex + 1) + ttNetwork->inputGenes[ttNetwork->inputGenePositions[i] + k]; if (((j >> (numInputs - k - 1)) & 1) != 0) sat_add_literal(sat, -varIndex); else sat_add_literal(sat, varIndex); } sat_add_literal(sat, 0); } else { // in the second half, the target gene is active (unchanged truth table result) // input genes must be negated for CNF sat_add_literal(sat, -(network->numGenes * stateIndex + i + 1)); for (k = 0; k < numInputs; ++k) { int varIndex = network->numGenes * (stateIndex + 1) + ttNetwork->inputGenes[ttNetwork->inputGenePositions[i] + k]; if (((j >> (numInputs - k - 1)) & 1) != 0) sat_add_literal(sat, -varIndex); else sat_add_literal(sat, varIndex); } sat_add_literal(sat, 0); } } } else if (network->type == SYMBOLIC_BOOLEAN_NETWORK) // network in symbolic representation => use CNF representation of the formulae // to generate the corresponding SAT solver clauses { SymbolicBooleanNetwork * symNetwork = (SymbolicBooleanNetwork *) network; // recursively encode the formula encodeFormula(symNetwork, symNetwork->cnfInteractions[i][formulaIndex], i, stateIndex, sat); if (symNetwork->cnfInteractions[i][formulaIndex]->type != FORMULA_OPERATOR || ((BooleanOperator *) symNetwork->cnfInteractions[i][formulaIndex])->operator != OPERATOR_AND) // if the top-level formula is not an AND operator, // the result is a single clause that needs to be terminated here { sat_add_literal(sat, 0); } } } } } /** * Add clauses to the SAT solver to specify that the -th last state and * the -th last state of the chain should be equal. * is the Boolean network from which the transition functions come. */ static inline void addEqualityCondition_SAT(Solver * sat, BooleanNetwork * network, unsigned int state1, unsigned int state2) { unsigned int i, j; for (i = 0; i < network->numGenes; ++i) // iterate over genes { unsigned int historySize = 1; if (network->type == SYMBOLIC_BOOLEAN_NETWORK) // determine history size historySize = ((SymbolicBooleanNetwork *) network)->stateSizes[i]; // for temporal networks, the history must also be equal for the two states for (j = 0; j < historySize; ++j) { int gene1 = network->numGenes * (state1 + j) + i + 1; int gene2 = network->numGenes * (state2 + j) + i + 1; // equivalence consists of two clauses: (!A | B) & (A | !B) sat_add_literal(sat, gene1); sat_add_literal(sat, -gene2); sat_add_literal(sat, 0); sat_add_literal(sat, -gene1); sat_add_literal(sat, gene2); sat_add_literal(sat, 0); } } } /** * Exclude an identified attractor from the SAT search by adding its complement to the formula. * is a pointer to the SAT solver. * is the employed Boolean network. * is a structure holding the attractor to be excluded. */ static inline void excludeAttractor_SAT(Solver * sat, BooleanNetwork * network, pAttractor attractor) { unsigned int l, i, j; for (l = 0; l < attractor->length; ++l) // iterate over attractor states { // add the complement of the current state as a clause // (for temporal networks, this must also include the state history) for (i = 0; i < network->numGenes; ++i) // iterate over genes { unsigned int historySize = 1; if (network->type == SYMBOLIC_BOOLEAN_NETWORK) // determine history size of the current gene historySize = ((SymbolicBooleanNetwork *) network)->stateSizes[i]; for (j = 0; j < historySize; ++j) { // decode value of the gene bool val = GET_BIT_ARRAY( attractor->involvedStates[((attractor->length + l - j) % attractor->length) * attractor->numElementsPerEntry], i); // add its complement to the clause (at the last state of the chain) if (val) sat_add_literal(sat, -(j * network->numGenes + i + 1)); else sat_add_literal(sat, j * network->numGenes + i + 1); } } // finish clause for the state sat_add_literal(sat, 0); } } /** * If a temporal network contains time-dependent predicates, this function adds a sequence of states * traversing the instable phase of the network to the beginning of the chain in . This is required * to ensure that only reachable start states are used for the attractor search. * is index of the current beginning of the chain. */ static inline void addBurnInPhase(SymbolicBooleanNetwork * network, Solver * sat, int startStateIndex) { if (network->attractorSearchStartTime > 0) // only do this if there is a time-dependent predicate { unsigned int j; for (j = 1; j <= network->attractorSearchStartTime; ++j) // iterate over the number of steps required for the burn-in and add states // utilizing the formulae that describe the behaviour at the corresponding time step addState_SAT((BooleanNetwork *) network, sat, startStateIndex + j, j); } } /** * Determine whether the SAT solver found an attractor. If yes, the attractor is * encoded in a Attractor structure and returned, and its states are excluded from future * SAT searches. * is the employed Boolean network. * is the length of the attractor if already known, or -1 if the length * should be determined by the function. * is the total length of the state chain (which may be more than the attractor size). * Returns a pointer to an Attractor structure holding the attractor, or NULL if no attractor * was found in the state chain. */ static inline pAttractor getNextAttractor_SAT(Solver * sat, BooleanNetwork * network, int attractorLength, unsigned int maxLength) { int i, j; if (attractorLength <= 0) // determine length if not already known { bool identical = true; for (attractorLength = 1; attractorLength <= maxLength; ++attractorLength) // traverse the states from the next-to-first to the last to find a duplicate of the // first state (chain is reversed => first state is a potential attractor state) { identical = true; for (i = 0; i < network->numGenes; ++i) // compare the values of each gene in the current state and the first state { unsigned int historySize = 1; if (network->type == SYMBOLIC_BOOLEAN_NETWORK) // determine history size of current gene historySize = ((SymbolicBooleanNetwork *) network)->stateSizes[i]; for (j = 0; j < historySize; ++j) // in temporal networks, do not only compare the current state, // but also its history to make sure this is really an attractor { if (sat_deref(sat, (attractorLength + j) * network->numGenes + i + 1) != sat_deref(sat, j * network->numGenes + i + 1)) { identical = false; break; } } if (!identical) break; } if (identical) break; } if (!identical) // none of the states was identical to the last one => no attractor in the chain return NULL; } // An attractor was found => build Attractor structure pAttractor res = CALLOC(1, sizeof(Attractor)); if ((network->numGenes % BITS_PER_BLOCK_32) == 0) res->numElementsPerEntry = network->numGenes / BITS_PER_BLOCK_32; else res->numElementsPerEntry = network->numGenes / BITS_PER_BLOCK_32 + 1; res->length = attractorLength; res->involvedStates = (unsigned int *) CALLOC( res->length * res->numElementsPerEntry, sizeof(unsigned int)); for (attractorLength = 0; attractorLength < res->length; ++attractorLength) // iterate over attractor states { for (i = 0; i < network->numGenes; ++i) // iterate over genes { // determine gene value and set the corresponding entry in the state array if (sat_deref(sat, (res->length - attractorLength - 1) * network->numGenes + i + 1) == 1) SET_BIT_ARRAY( res->involvedStates[attractorLength * res->numElementsPerEntry], i); } } // exclude the found attractor from future SAT searches excludeAttractor_SAT(sat, network, res); return res; } /** * Determine all attractors having at most states in the network , * and return them in an AttractorInfo structure. */ pAttractorInfo getAttractors_SAT_maxLength(BooleanNetwork * network, unsigned int maxLength) { if (network->type == SYMBOLIC_BOOLEAN_NETWORK && ((SymbolicBooleanNetwork *) network)->attractorSearchStartTime > 0) { Rf_error( "SAT-based attractor search in networks with time-dependent predicates is only possible without attractor length restrictions!"); } pAttractorInfo res = allocAttractorInfo(0, network->numGenes); // add dummy terminator node res->attractorList = (pAttractor) CALLOC(1, sizeof(Attractor)); unsigned int i, j, length; unsigned int maxDelay = 1; if (network->type == SYMBOLIC_BOOLEAN_NETWORK) // determine maximum time delay in the network { for (j = 0; j < network->numGenes; ++j) { unsigned int stateSize = ((SymbolicBooleanNetwork *) network)->stateSizes[j]; if (stateSize > maxDelay) { maxDelay = stateSize; } } } for (length = 1; length <= maxLength; ++length) // iterate over possible attractor lengths { // initialize SAT solver Solver * sat = initSATSolver(); pAttractor attractor = res->attractorList; while (attractor->next != NULL) // exclude all previously identified attractors from the search { excludeAttractor_SAT(sat, network, attractor); attractor = attractor->next; } // create a chain of +1 states for (i = 0; i <= length + maxDelay; ++i) { addState_SAT(network, sat, i, 0); } #ifdef USE_LINGELING for (i = 0; i < network->numGenes; ++i) // freeze the first state(s) of the chain: // the variables of the first state are used // to exclude identified attractors from future searches // (multiple states for temporal Boolean networks with delays >1) { unsigned int stateSize = 1; if (network->type == SYMBOLIC_BOOLEAN_NETWORK) // determine history size for current gene stateSize = ((SymbolicBooleanNetwork *) network)->stateSizes[i]; for (j = 0; j < stateSize; ++j) { lglfreeze(sat, j * network->numGenes + i + 1); } } #endif // specify that the first and the last state of the chain // should be identical addEqualityCondition_SAT(sat, network, 0, length); //lglprint(lgl, stdout); // call the SAT solver int satisfiable = sat_solve(sat); while (satisfiable == SATISFIABLE) // as long as the formula is satisfiable, there are more attractors // of the specified length { // encode the attractor in an Attractor structure, // prepend it to the result list, and exclude it from the search pAttractor attr = getNextAttractor_SAT(sat, network, length, 0); ++res->numAttractors; attr->next = res->attractorList; res->attractorList = attr; // try to find further solutions satisfiable = sat_solve(sat); } // free SAT solver sat_free(sat); } return res; } /** * Identify all attractors using a SAT-based algorithm adapted from Dubrova et al., 2011. * Here, is the network whose attractors are identified. * If > 0, the first step of the algorithm is to identify and exclude * all attractors of length 1 to . * specifies the way the chain is extended: * EXTENSION_EXPONENTIAL corresponds to the exponential scheme by Dubrova et al. * EXTENSION_LINEAR corresponds to linearly increasing the length * EXTENSION_LINEAR_ADAPT corresponds to a linear increase whose step width is * increased over the iterations * EXTENSION_MIXED corresponds to a mixture of linear and exponential increase, * where the chain length is doubled after 5 linear increases. * Returns an AttractorInfo structure comprising all attractors of the network. */ pAttractorInfo getAttractors_SAT_exhaustive(BooleanNetwork * network, unsigned int initialCycleSearchLength, unsigned int extensionMode) { // initialize SAT solver Solver * sat = initSATSolver(); int i, j, maxDelay = 1; if (network->type == SYMBOLIC_BOOLEAN_NETWORK) // determine maximum time delay in the network { for (j = 0; j < network->numGenes; ++j) { unsigned int stateSize = ((SymbolicBooleanNetwork *) network)->stateSizes[j]; if (stateSize > maxDelay) { maxDelay = stateSize; } } } // check if the network comprises time-dependent predicates -- // for such networks, the chain cannot be extended and must be rebuilt // each time a longer chain is needed bool isTimeDependent = (network->type == SYMBOLIC_BOOLEAN_NETWORK && ((SymbolicBooleanNetwork *) network)->attractorSearchStartTime > 0); if (isTimeDependent) // for time-dependent predicates, length-based attractor search is not supported { initialCycleSearchLength = 0; } pAttractorInfo res; if (initialCycleSearchLength != 0) // first determine attractors by explicitly searching for cycles // if a cycle length is specified { //unsigned int maxAttractorLength = 2000/network->numGenes; //if (maxAttractorLength == 0) // maxAttractorLength = 1; //else //if (maxAttractorLength > 10) // maxAttractorLength = 10; res = getAttractors_SAT_maxLength(network, initialCycleSearchLength); } else // initialize empty attractor list { res = allocAttractorInfo(0, network->numGenes); // add dummy terminator node res->attractorList = (pAttractor) CALLOC(1, sizeof(Attractor)); } // construct initial chain of maximum length 100 int numStates = network->numGenes > 100 ? 100 : network->numGenes; for (i = 0; i < numStates; ++i) { addState_SAT(network, sat, i, 0); } //picosat_print(sat, stdout); if (initialCycleSearchLength != 0) // if attractors have been identified by the cycle search, // exclude them from the search { pAttractor attractor = res->attractorList; while (attractor->next != NULL) { excludeAttractor_SAT(sat, network, attractor); attractor = attractor->next; } } #ifdef USE_LINGELING for (i = 0; i < network->numGenes; ++i) // freeze the first and the last state(s) of the chain: // the variables of the first state are used // to exclude identified attractors from future searches, // whereas the variables of the last state(s) are required for // an extension of the chain // (multiple states for temporal Boolean networks with delays >1) { unsigned int stateSize = 1; if (network->type == SYMBOLIC_BOOLEAN_NETWORK) // determine history size of current gene stateSize = ((SymbolicBooleanNetwork *) network)->stateSizes[i]; for (j = 0; j < stateSize; ++j) { lglfreeze(sat, j * network->numGenes + i + 1); if (!isTimeDependent) lglfreeze(sat, (numStates + j) * network->numGenes + i + 1); } } #endif if (isTimeDependent) // add additional states in case of time-dependent predicates addBurnInPhase((SymbolicBooleanNetwork *) network, sat, numStates - 1); //picosat_print(sat, stdout); int satisfiable = sat_solve(sat); unsigned int numIncrements = 0; while (satisfiable == SATISFIABLE) // as long as the formula is satisfiable, there may be more attractors { // check whether the identified chain comprises an attractor, // and decode it if yes pAttractor attr = getNextAttractor_SAT(sat, network, -1, numStates - maxDelay + 1); if (attr == NULL) // no attractor found => chain is too short and must be prolonged { if (isTimeDependent) // if additional burn-in states were added, the chain must be rebuilt "from scratch", // i.e. the previous result cannot be recycled. { // free old solver sat_free(sat); // create new solver sat = initSATSolver(); // exclude already identified attractors pAttractor attractor = res->attractorList; while (attractor->next != NULL) { excludeAttractor_SAT(sat, network, attractor); attractor = attractor->next; } // start chain at time point 0 i = 0; } else { #ifdef USE_LINGELING if (!isTimeDependent) { // melt the variables of the last state(s), as // the chain will be extended for (i = 0; i < network->numGenes; ++i) { unsigned int stateSize = 1; if (network->type == SYMBOLIC_BOOLEAN_NETWORK) stateSize = ((SymbolicBooleanNetwork *) network)->stateSizes[i]; for (j = 0; j < stateSize; ++j) lglmelt(sat, (numStates + j) * network->numGenes + i + 1); } // extend chain at previous time point i = numStates; } #endif } switch (extensionMode) // determine the new chain length depending on the extension mode { case EXTENSION_EXPONENTIAL: // double the chain length numStates *= 2; break; case EXTENSION_LINEAR: // add the initial chain length numStates += network->numGenes > 100 ? 100 : network->numGenes; break; case EXTENSION_LINEAR_ADAPT: // add a multiple of the initial chain length depending // on the number of increments already performed numStates += (numIncrements++ / 5 + 1) * (network->numGenes > 100 ? 100 : network->numGenes); break; case EXTENSION_MIXED: // perform an exponential increase every five increments and a // linear increase otherwise if (++numIncrements % 5 == 0) numStates *= 2; else numStates += network->numGenes > 100 ? 100 : network->numGenes; break; } // add new states to the chain for (; i < numStates; ++i) { addState_SAT(network, sat, i, 0); } if (!isTimeDependent) { #ifdef USE_LINGELING // freeze the new end of the chain // (possibly multiple states in temporal Boolean networks) for (i = 0; i < network->numGenes; ++i) { unsigned int stateSize = 1; if (network->type == SYMBOLIC_BOOLEAN_NETWORK) // determine history size of current gene stateSize = ((SymbolicBooleanNetwork *) network)->stateSizes[i]; for (j = 0; j < stateSize; ++j) lglfreeze(sat, (numStates + j) * network->numGenes + i + 1); } #endif } else // network has time-dependent predicates { // add additional states in case of time-dependent predicates addBurnInPhase((SymbolicBooleanNetwork *) network, sat, numStates - 1); #ifdef USE_LINGELING // as a new chain has been constructed from scratch, we must // again freeze the start state(s) for (i = 0; i < network->numGenes; ++i) { unsigned int stateSize = 1; if (network->type == SYMBOLIC_BOOLEAN_NETWORK) stateSize = ((SymbolicBooleanNetwork *) network)->stateSizes[i]; for (j = 0; j < stateSize; ++j) { lglfreeze(sat, j * network->numGenes + i + 1); } } #endif } } else // an attractor has been found => add it { ++res->numAttractors; attr->next = res->attractorList; res->attractorList = attr; } // look for more potential solutions satisfiable = sat_solve(sat); } // free the SAT solver sat_free(sat); return res; } BoolNet/src/statespace_search.c0000644000176000001440000012004312473311652016264 0ustar ripleyusers/** * C code to identify attractors in Boolean networks * * This is part of the BoolNet R package. * * Copyright 2009/2010 by Christoph Müssel and Zhou Dao * * Contact christoph.muessel@uni-ulm.de * */ #include #include #include #include #include #include "random.h" #include "common.h" #include "boolean_network.h" #include "statespace_search.h" #include #define NODE_ARRAY_SIZE 1024 /** * A structure saving search trees for states. * State trees are employed if a non-exhaustive search is * conducted to provide an efficient method to lookup * states that have already been visited. */ typedef struct STN { // The left child node (containing "smaller" states) struct STN * leftChild; // The right child node (containing "larger" states) struct STN * rightChild; union { // In case of synchronous networks: struct { // The node holding the next state after a transition has // been applied to the current state struct STN * successor; // The basin of attraction to which the state belongs unsigned int attractorAssignment; // The number of transitions required to enter the attractor unsigned int stepsToAttractor; } sync; // In case of asynchronous networks: struct { // An array of all successor nodes struct STN ** successors; // The number of successor states unsigned int numSuccessors; // Dummy variable unsigned int unused; } async; } type; // The state itself - a set of binary-encoded integers with // elements unsigned int * data; } StateTreeNode; typedef struct { StateTreeNode * root; unsigned int arraySize; unsigned int nodeCount; unsigned int numElements; unsigned int successorPos; ArrayListElement * nodeArrays; ArrayListElement * dataArrays; ArrayListElement * successorArrays; } StateTree; void stateTransition(unsigned int * currentState, unsigned int * nextState, TruthTableBooleanNetwork * net); /** * Insert a new transition from to into
. * is the number of array elements occupied by a state. */ TransitionTableEntry * insertNewTransition(TransitionTableEntry ** table, unsigned int * initialState, unsigned int * nextState, unsigned int numElements) { TransitionTableEntry * entry = (TransitionTableEntry *)CALLOC(1,sizeof(TransitionTableEntry)); entry->initialState = CALLOC(numElements,sizeof(unsigned int)); entry->nextState = CALLOC(numElements,sizeof(unsigned int)); memcpy(entry->initialState,initialState,numElements*sizeof(unsigned int)); memcpy(entry->nextState,nextState,numElements*sizeof(unsigned int)); entry->next = *table; *table = entry; return entry; } /** * Free a list-type transition table as used in complex attractors */ void freeTransitionTableEntry(TransitionTableEntry * t) { do { TransitionTableEntry * next = t->next; FREE(t->initialState); FREE(t->nextState); FREE(t); t = next; } while (t != NULL); } static inline StateTree * allocStateTree(unsigned int numElements, unsigned int arraySize) { StateTree * tree = CALLOC(1, sizeof(StateTree)); tree->root = NULL; tree->arraySize = arraySize; tree->successorPos = 0; tree->nodeCount = 0; tree->nodeArrays = NULL; tree->dataArrays = NULL; tree->successorArrays = NULL; tree->numElements = numElements; return(tree); } static inline void newNodeArray(StateTree * tree) { allocNewArray(&tree->nodeArrays, tree->arraySize, sizeof(StateTreeNode)); allocNewArray(&tree->dataArrays, tree->arraySize * tree->numElements, sizeof(unsigned int)); } static inline void newSuccessorArray(StateTree * tree) { allocNewArray(&tree->successorArrays, tree->arraySize, sizeof(StateTreeNode *)); tree->successorPos = 0; } static inline void freeStateTree(StateTree * tree) { freeArrayList(tree->nodeArrays); freeArrayList(tree->dataArrays); freeArrayList(tree->successorArrays); FREE(tree); } /** * Allocate a new node of a state tree. * and are pointers to the * left and right subtrees. * is the state reached after a state transition. * is an array of binary-encoded integers of length * describing the state. * is the basin of attraction the state belongs to, * and is the number of transitions required to enter * the attractor. * * Returns a state tree node with the supplied values. */ static inline StateTreeNode * allocTreeNode(StateTree * tree, StateTreeNode * leftChild, StateTreeNode * rightChild, StateTreeNode * successor, unsigned int * data, unsigned int numElements, unsigned int attractorAssignment, unsigned int stepsToAttractor) { if (tree->nodeCount % tree->arraySize == 0) newNodeArray(tree); StateTreeNode * res = &(((StateTreeNode *)tree->nodeArrays->array)[tree->nodeCount % tree->arraySize]); res->leftChild = leftChild; res->rightChild = rightChild; res->type.sync.successor = successor; res->data = &(((unsigned int *)tree->dataArrays->array) [(tree->nodeCount % tree->arraySize) * tree->numElements]); memcpy(res->data,data,numElements*sizeof(unsigned int)); res->type.sync.attractorAssignment = attractorAssignment; res->type.sync.stepsToAttractor = stepsToAttractor; ++tree->nodeCount; return res; } static inline StateTreeNode ** reserveSuccessorArray(StateTree * tree, unsigned int numSuccessors) { if (tree->successorArrays == NULL || tree->successorPos + numSuccessors >= tree->arraySize) newSuccessorArray(tree); StateTreeNode ** res = &(((StateTreeNode **)tree->successorArrays->array)[tree->successorPos]); tree->successorPos += numSuccessors; return res; } /** * Recursive helper function for findNode() */ StateTreeNode * findNodeRec(StateTree * tree, StateTreeNode * parent, unsigned int * data, unsigned int numElements, bool * found) { unsigned int direction = 0; int i; for (i = numElements - 1; i >= 0; --i) { if (data[i] > parent->data[i]) { direction = 1; break; } if (data[i] < parent->data[i]) { direction = 2; break; } } switch(direction) { case 0: *found = true; return parent; case 1: if (parent->rightChild == 0) { parent->rightChild = allocTreeNode(tree, 0,0,0,data,numElements,0,0); *found = false; return parent->rightChild; } else return findNodeRec(tree, parent->rightChild,data,numElements,found); case 2: if (parent->leftChild == 0) { parent->leftChild = allocTreeNode(tree, 0,0,0,data,numElements,0,0); *found = false; return parent->leftChild; } else return findNodeRec(tree, parent->leftChild,data,numElements,found); } // should never be reached return 0; } /** * Recursively find the node corresponding to state in the state tree , * or insert the node if it does not exist. * is the size of the state vector . * The return value of indicates whether the element previously existed in the tree * * Returns the (possibly newly created) node belonging to . If the tree is empty, * is set to this node. */ StateTreeNode * findNode(StateTree * tree, unsigned int * data, unsigned int numElements, bool * found) { if (tree->root == 0) { tree->root = allocTreeNode(tree, 0,0,0,data,numElements,0,0); *found = false; return tree->root; } return findNodeRec(tree, tree->root,data,numElements, found); } /** * Returns the successor of the supplied state node . * If the state transition has not yet been calculated, * a new node is inserted into the tree . * is the number of array elements required to store one state. * describes the network for which a state transition is performed. * is a counter to be increased when a new state is identified */ StateTreeNode * findSuccessor(StateTree * tree, StateTreeNode * current, unsigned int numElementsPerEntry, TruthTableBooleanNetwork * net, unsigned int * basinCounter) { bool found; if (current->type.sync.successor == 0) // the state does not exist => calculate state transition and insert it { unsigned int nextState[numElementsPerEntry]; stateTransition(current->data,nextState,net); current->type.sync.successor = findNode(tree,nextState,numElementsPerEntry, &found); ++ *basinCounter; } return current->type.sync.successor; } /** * Traverse the tree supplied by in-order, and write the values * of the tree nodes to the corresponding arrays , *
, , and . * is the number of array elements allocated by one state. * is the current value of the node counter used for the array indices * and increased during recursion. This should be initially set to 0. */ void inOrderSerializeTree(StateTreeNode * root, unsigned int * initialStates, unsigned int * table, unsigned int * attractorAssignment, unsigned int * stepsToAttractor, unsigned int numElements, unsigned int * nodeNo) { R_CheckUserInterrupt(); if (root->leftChild != 0) // recursive descent of left subtree inOrderSerializeTree(root->leftChild,initialStates,table,attractorAssignment, stepsToAttractor,numElements,nodeNo); // write the state itself memcpy(&initialStates[numElements* (*nodeNo)],root->data,numElements*sizeof(unsigned int)); memcpy(&table[numElements* (*nodeNo)],root->type.sync.successor->data,numElements*sizeof(unsigned int)); attractorAssignment[*nodeNo] = root->type.sync.attractorAssignment; stepsToAttractor[*nodeNo] = root->type.sync.stepsToAttractor; *nodeNo = *nodeNo + 1; if (root->rightChild != 0) // recursive descent of right subtree inOrderSerializeTree(root->rightChild,initialStates,table,attractorAssignment, stepsToAttractor,numElements,nodeNo); } /** * Free a state tree supplied by recursively. * If , is assumed to be an array and freed */ /* void freeTreeNode(StateTreeNode * node, bool freeSuccessorArray) { if (node->leftChild != 0) freeTreeNode(node->leftChild, freeSuccessorArray); if (node->rightChild != 0) freeTreeNode(node->rightChild, freeSuccessorArray); if (freeSuccessorArray) FREE(node->type.async.successors); FREE(node->data); FREE(node); --nodeCount; } */ /** * Make a transition from to the next state. * States are encoded as arrays of ints and can thus contain an arbitrary number of genes. * is a binary-coded integer with used bits. * is an array of values specifying whether gene is fixed (0 or 1) or not (-1). * provides the input genes for all transition functions and can be split up * for a single function according to . * provides the truth tables for all transition functions and can be split up * for a single function according to . * * The return value is the next state, encoded in a single integer. */ void stateTransition(unsigned int * currentState, unsigned int * nextState, TruthTableBooleanNetwork * net) { unsigned int i = 0, k = 0, idx = 0; unsigned int elementsPerEntry; if (net->numGenes % BITS_PER_BLOCK_32 == 0) { elementsPerEntry = net->numGenes / BITS_PER_BLOCK_32; } else { elementsPerEntry = net->numGenes / BITS_PER_BLOCK_32 + 1; } for (i = 0; i < elementsPerEntry; ++i) nextState[i] = 0; for (i = 1; i <= net->numGenes; ++i) { if (net->fixedGenes[i-1] == -1) // the gene is not fixed { unsigned long long inputdec = 0; for (k = net->inputGenePositions[i-1]; k < net->inputGenePositions[i]; k++) { if (net->inputGenes[k]) // if the input of the function is not 0 (constant gene), take input bit { unsigned int gene = net->inputGenes[k] - 1; unsigned int bit; if (net->fixedGenes[gene] == -1) bit = (GET_BIT(currentState[net->nonFixedGeneBits[gene] / BITS_PER_BLOCK_32], net->nonFixedGeneBits[gene] % BITS_PER_BLOCK_32)); else // fixed genes are not encoded in the states // => take them from fixedGenes vector bit = net->fixedGenes[gene]; inputdec |= bit << (net->inputGenePositions[i] - k - 1); } } // determine transition function int transition = net->transitionFunctions[net->transitionFunctionPositions[i-1] + inputdec]; if(transition != -1) // apply transition function nextState[idx / BITS_PER_BLOCK_32] |= ((unsigned int)transition << (idx % BITS_PER_BLOCK_32)); else // this is a dummy function for a constant gene // => value does not change nextState[idx / BITS_PER_BLOCK_32] |= (GET_BIT(currentState[idx / BITS_PER_BLOCK_32], idx % BITS_PER_BLOCK_32) << (idx % BITS_PER_BLOCK_32)); //(GET_BIT(currentState[(i-1) / BITS_PER_BLOCK_32], // (i-1) % BITS_PER_BLOCK_32) << (idx % BITS_PER_BLOCK_32)); ++idx; } } } /** * Make a transition from to the next state for a bit vector encoded * as a single integer (max. 64 genes). * is a binary-coded integer with used bits. * is an array of values specifying whether gene is fixed (0 or 1) or not (-1). * provides the input genes for all transition functions and can be split up * for a single function according to . * provides the truth tables for all transition functions and can be split up * for a single function according to . * * The return value is the next state, encoded in a single integer. */ unsigned long long stateTransition_singleInt(unsigned long long currentState, TruthTableBooleanNetwork * net) { unsigned int i = 0, k = 0, idx = 0; unsigned long long nextState = 0; for (i = 1; i <= net->numGenes; ++i) { if (net->fixedGenes[i-1] == -1) // the gene is not fixed { unsigned long long inputdec = 0; for (k = net->inputGenePositions[i-1]; k < net->inputGenePositions[i]; k++) { if (net->inputGenes[k]) // if the input of the function is not 0 (constant gene), take input bit { unsigned int gene = net->inputGenes[k] - 1; unsigned int bit; if (net->fixedGenes[gene] == -1) bit = (GET_BIT(currentState, net->nonFixedGeneBits[gene])); else // fixed genes are not encoded in the states // => take them from fixedGenes vector bit = net->fixedGenes[gene]; inputdec |= bit << (net->inputGenePositions[i] - k - 1); } } // determine transition function int transition = net->transitionFunctions[net->transitionFunctionPositions[i-1] + inputdec]; if(transition != -1) // apply transition function nextState |= (transition << idx); else // this is a dummy function for a constant gene // => value does not change nextState |= (GET_BIT(currentState, idx) << idx); ++idx; } } return nextState; } /** * Retrieves the result column of the state transition table. * specifies the total number of genes. * is an array of values specifying whether gene is fixed (0 or 1) or not (-1). * provides the input genes for all transition functions and can be split up * for a single function according to . * provides the truth tables for all transition functions and can be split up * for a single function according to . */ unsigned long long * getTransitionTable(TruthTableBooleanNetwork * net) { unsigned long long i = 0; // determine number of fixed genes int numFixed = 0; for( i = 0; i < net->numGenes; i++) if(net->fixedGenes[i] != -1) ++numFixed; int numNonFixed = net->numGenes - numFixed; // allocate truth table with 2^(non-fixed genes) elements unsigned long long numberOfElements = (unsigned long long)1 << numNonFixed;//pow(2,numNonFixed); unsigned long long * table = CALLOC(numberOfElements,sizeof(unsigned long long)); if (table == 0) { Rf_error("Too few memory available!"); } unsigned long long initialState = 0; // calculate state transitions for(initialState = 0; initialState < numberOfElements; ++initialState) { R_CheckUserInterrupt(); //state is simply the binary encoding of the counter //calculate transition table[initialState] = stateTransition_singleInt(initialState, net); } return table; } /** * Retrieves attractors from a given transition table
with entries. * * Returns a list of attractors - the last element of this list is empty! */ pAttractorInfo getAttractors(unsigned long long * table, unsigned long long numberOfStates, unsigned int numberOfGenes) { unsigned long long i; unsigned int current_attractor = 0, elementsPerEntry; if (numberOfGenes <= 32) { elementsPerEntry = 1; } else { elementsPerEntry = 2; } pAttractorInfo result = allocAttractorInfo(numberOfStates,numberOfGenes); for (i = 0; i < numberOfStates; ++i) { //memcpy(&result->table[i],&table[i],sizeof(unsigned int) * elementsPerEntry); result->table[i*elementsPerEntry] = table[i] & 0xFFFFFFFF; if (elementsPerEntry == 2) result->table[i*elementsPerEntry + 1] = (table[i] & 0xFFFFFFFF00000000) >> 32; } pAttractor attractorHead, attractorList,tmpList; attractorHead = attractorList = (pAttractor) CALLOC(1,sizeof(Attractor)); attractorList->next = NULL; for(i = 0; i < numberOfStates; i++) { R_CheckUserInterrupt(); if(!result->attractorAssignment[i]) // the current state has not yet been visited { // first attractor has number 1 current_attractor++; unsigned long long begin = i; unsigned int steps = 0; while(!result->attractorAssignment[begin]) // iterate while no attractor has been assigned { ++steps; // first simply count steps until attractor is reached // - to get the distance to the attractor, this number is // later subtracted from the maximum distance result->stepsToAttractor[begin] = steps; result->attractorAssignment[begin] = current_attractor; // perform a state transition begin = table[begin]; } if(current_attractor == result->attractorAssignment[begin]) //calculate length and basin size of new attractor { attractorList->basinSize = steps; // fix the number of steps to the attractor by calculating // the maximum distance and subtracting the current value from it int maxstep = result->stepsToAttractor[begin]; int rec = 0; unsigned long long tmp = i; while(tmp != begin) { rec++; result->stepsToAttractor[tmp] = maxstep - result->stepsToAttractor[tmp]; tmp = table[tmp]; } attractorList->length = steps - rec; attractorList->involvedStates = (unsigned int *) CALLOC(attractorList->length * elementsPerEntry,sizeof(unsigned int)); attractorList->numElementsPerEntry = elementsPerEntry; int a=0; do { result->stepsToAttractor[tmp] = 0; //attractorList->involvedStates[a++] = tmp; //memcpy(&attractorList->involvedStates[a],&tmp,elementsPerEntry*sizeof(unsigned int)); // get low-order and high-order longs in a platform-independent manner attractorList->involvedStates[a] = tmp & 0xFFFFFFFF; if (elementsPerEntry == 2) attractorList->involvedStates[a+1] = (tmp & 0xFFFFFFFF00000000) >> 32; tmp = table[tmp]; a += elementsPerEntry; } while(tmp != begin); /* set steps of attractors to 0; add attractor stub information */ //generate a next attractor space attractorList->next = (pAttractor)CALLOC(1,sizeof(Attractor)); attractorList = attractorList->next; attractorList->next = NULL; } else //update existing attractor { // reset attractor number current_attractor--; // assign states to attractor basin, and // correct the numbers of steps to the attractor unsigned long long tmp = i; int maxstp = result->stepsToAttractor[begin] + steps; while(tmp != begin) { result->attractorAssignment[tmp] = result->attractorAssignment[begin]; result->stepsToAttractor[tmp] = maxstp - result->stepsToAttractor[tmp] + 1; tmp = table[tmp]; } // update basin size in attractor record tmpList = attractorHead; for (tmp = 1; tmp < result->attractorAssignment[begin]; tmp++) tmpList = tmpList->next; tmpList->basinSize = tmpList->basinSize + steps; } } } result->attractorList = attractorHead; result->numAttractors = current_attractor - 1; FREE(table); return result; } /** * Retrieves attractors only for a given set of input states supplied in . * Here, numGenes / 32)> consecutive array entries describe one state, thus * the array size is numGenes / 32) * numberOfStates> * describes the network structure. */ pAttractorInfo getAttractorsForStates(unsigned int * selectedStates, unsigned int numberOfStates, TruthTableBooleanNetwork * net) { unsigned long long i; unsigned int current_attractor = 0, elementsPerEntry; bool found; // calculate the number of array elements required for one state // (depending on the number of genes) if (net->numGenes % (sizeof(unsigned int) * 8) == 0) { elementsPerEntry = net->numGenes / BITS_PER_BLOCK_32; } else { elementsPerEntry = net->numGenes / BITS_PER_BLOCK_32 + 1; } // all states are stored in a tree for fast search StateTree * stateTree = allocStateTree(elementsPerEntry, NODE_ARRAY_SIZE); pAttractor attractorHead, attractorList,tmpList; attractorHead = attractorList = (pAttractor) CALLOC(1,sizeof(Attractor)); attractorList->next = NULL; for(i = 0; i < numberOfStates; i++) { // check whether the current state is already in the state tree, otherwise insert it StateTreeNode * currentState = findNode(stateTree,&selectedStates[i*elementsPerEntry],elementsPerEntry,&found); if(!currentState->type.sync.attractorAssignment) // the current state has not yet been visited { // first attractor has number 1 current_attractor++; unsigned int steps = 0; unsigned int basinSize = 0; while(!currentState->type.sync.attractorAssignment) // iterate while no attractor has been assigned { R_CheckUserInterrupt(); ++steps; // first simply count steps until attractor is reached // - to get the distance to the attractor, this number is // later subtracted from the maximum distance currentState->type.sync.stepsToAttractor = steps; currentState->type.sync.attractorAssignment = current_attractor; // perform a state transition currentState = findSuccessor(stateTree,currentState,elementsPerEntry,net,&basinSize); } if(current_attractor == currentState->type.sync.attractorAssignment) //calculate length and basin size of new attractor { attractorList->basinSize = steps; // fix the number of steps to the attractor by calculating // the maximum distance and subtracting the current value from it int maxstep = currentState->type.sync.stepsToAttractor; int rec = 0; StateTreeNode * tmp = findNode(stateTree,&selectedStates[i*elementsPerEntry],elementsPerEntry,&found); while(memcmp(tmp->data,currentState->data,elementsPerEntry*sizeof(unsigned int))) { R_CheckUserInterrupt(); rec++; tmp->type.sync.stepsToAttractor = maxstep - tmp->type.sync.stepsToAttractor; // perform a state transition tmp = findSuccessor(stateTree,tmp,elementsPerEntry,net,&basinSize); } attractorList->length = steps - rec; attractorList->involvedStates = (unsigned int *) CALLOC(attractorList->length * elementsPerEntry,sizeof(unsigned int)); attractorList->numElementsPerEntry = elementsPerEntry; int a=0; do { R_CheckUserInterrupt(); tmp->type.sync.stepsToAttractor = 0; memcpy(&attractorList->involvedStates[a],tmp->data,elementsPerEntry*sizeof(unsigned int)); tmp = findSuccessor(stateTree,tmp,elementsPerEntry,net,&basinSize); a += elementsPerEntry; } while(memcmp(tmp->data,currentState->data,elementsPerEntry*sizeof(unsigned int))); //generate a next attractor space attractorList->next = (pAttractor)CALLOC(1,sizeof(Attractor)); attractorList = attractorList->next; attractorList->next = NULL; } else //update existing attractor { // reset attractor number current_attractor--; // assign states to attractor basin, and // correct the numbers of steps to the attractor StateTreeNode * tmp = findNode(stateTree,&selectedStates[i*elementsPerEntry],elementsPerEntry,&found); int maxstp = currentState->type.sync.stepsToAttractor + steps; while(memcmp(tmp->data,currentState->data,elementsPerEntry*sizeof(unsigned int))) { R_CheckUserInterrupt(); tmp->type.sync.attractorAssignment = currentState->type.sync.attractorAssignment; tmp->type.sync.stepsToAttractor = maxstp - tmp->type.sync.stepsToAttractor + 1; //perform a state transition tmp = findSuccessor(stateTree,tmp,elementsPerEntry,net,&basinSize); } // update basin size in attractor record tmpList = attractorHead; unsigned int i; for (i = 1; i < currentState->type.sync.attractorAssignment; ++i) tmpList = tmpList->next; tmpList->basinSize = tmpList->basinSize + basinSize; } } } pAttractorInfo result = allocAttractorInfo(stateTree->nodeCount,net->numGenes); result->attractorList = attractorHead; result->initialStates = CALLOC(result->tableSize * elementsPerEntry,sizeof(unsigned int)); result->numAttractors = current_attractor - 1; unsigned int nodeNo = 0; // build a series of arrays by in-order traversing the tree inOrderSerializeTree(stateTree->root, result->initialStates, result->table, result->attractorAssignment, result->stepsToAttractor, elementsPerEntry, &nodeNo); freeStateTree(stateTree); return result; } /** * Identification of attractors in asynchronous networks */ typedef struct SSE { unsigned int * state; struct SSE * next; } StateStackElement; /** * Push a new element on top of the stack . * is the state to push onto the stack and has elements. * Returns the new stack element. */ static inline StateStackElement * pushStateStackElement(StateStackElement ** stack, unsigned int * state, unsigned int numElements) { StateStackElement * el = CALLOC(1,sizeof(StateStackElement)); el->state = CALLOC(numElements,sizeof(unsigned int)); memcpy(el->state,state,sizeof(unsigned int) * numElements); el->next = *stack; *stack = el; return el; } /** * Remove the top-level element from . */ static inline void deleteStateStackElement(StateStackElement ** stack) { StateStackElement * el = *stack; *stack = (*stack)->next; FREE(el->state); FREE(el); } /** * Applies the transition function belonging to gene to state . * holds the network information. * The result is returned in . */ static inline void applySingleFunction(unsigned int * currentState, unsigned int geneIdx, TruthTableBooleanNetwork * net) { unsigned int k = 0; if (net->fixedGenes[geneIdx] == -1) // the gene is not fixed { unsigned long long inputdec = 0; for (k = net->inputGenePositions[geneIdx]; k < net->inputGenePositions[geneIdx+1]; k++) { if (net->inputGenes[k]) // if the input of the function is not 0 (constant gene), take input bit { unsigned int gene = net->inputGenes[k] - 1; unsigned int bit; if (net->fixedGenes[gene] == -1) bit = (GET_BIT(currentState[gene / BITS_PER_BLOCK_32], gene % BITS_PER_BLOCK_32)); else // fixed genes are not encoded in the states // => take them from fixedGenes vector bit = net->fixedGenes[gene]; inputdec |= bit << (net->inputGenePositions[geneIdx+1] - k - 1); } } // determine transition function int transition = net->transitionFunctions[net->transitionFunctionPositions[geneIdx] + inputdec]; currentState[geneIdx / BITS_PER_BLOCK_32] = CLEAR_BIT(currentState[geneIdx / BITS_PER_BLOCK_32], geneIdx % BITS_PER_BLOCK_32); if(transition != -1) // apply transition function currentState[geneIdx / BITS_PER_BLOCK_32] |= (transition << (geneIdx % BITS_PER_BLOCK_32)); else // this is a dummy function for a constant gene // => value does not change currentState[geneIdx / BITS_PER_BLOCK_32] |= (GET_BIT(currentState[geneIdx / BITS_PER_BLOCK_32], geneIdx % BITS_PER_BLOCK_32) << (geneIdx % BITS_PER_BLOCK_32)); } } /** * Calculate a random asynchronous state transition for . * If is not NULL, this is a vector specifying * the cumulative distribution function of the probabilities of genes * to be chosen for a transition. Otherwise, each gene has equal probability. */ static inline void asynchronousStateTransition(unsigned int * currentState, double * probabilities, TruthTableBooleanNetwork * net) { unsigned int i; if (probabilities == NULL) // uniform gene selection { unsigned int r; // ensure that no fixed gene is chosen do { r = intrand(net->numGenes); } while (net->fixedGenes[r] != -1); // make a transition with the chosen gene applySingleFunction(currentState,r,net); } else { double r = doublerand_1(); // find the last index in the cumulative distribution that // is less than for (i = 0; i < net->numGenes; ++i) { if (probabilities[i] < r && probabilities[i+1] >= r) break; } // make a transition with the chosen gene applySingleFunction(currentState,i,net); } } /** * Calculate the forward reachable set of . * is the number of array elements used to represent one state. * If is true, self loops are only considered if there are no other possible transitions. * holds the network information. * Returns the resulting state tree (set).. */ StateTree * buildAsynchronousStateSet(unsigned int * startState, unsigned int numElements, bool avoidSelfLoops, TruthTableBooleanNetwork * net) { StateTree * res = allocStateTree(numElements, NODE_ARRAY_SIZE); StateStackElement * stack = NULL; unsigned int i; bool found=false, newNodes=false; // push the start state onto the stack pushStateStackElement(&stack,startState,numElements); do // iterate while stack is not empty (depth-first search) { R_CheckUserInterrupt(); unsigned int origstate[numElements]; memcpy(origstate,stack->state,sizeof(unsigned int) * numElements); // remove the top-level stack element deleteStateStackElement(&stack); StateTreeNode * current = findNode(res,origstate,numElements,&found); StateTreeNode ** successors; unsigned int numSuccessors; if (avoidSelfLoops) // try to find successor states that do not lead to the initial state { unsigned int successorStates[net->numGenes*numElements]; for (i = 0; i < net->numGenes; ++i) // first, calculate all successors { memcpy(&successorStates[i*numElements],origstate,sizeof(unsigned int) * numElements); applySingleFunction(&successorStates[i*numElements],i,net); } unsigned int numNonSelfLoops = 0; bool noSelfLoop[net->numGenes]; for (i = 0; i < net->numGenes; ++i) // now, check which of the successor states are the same as the initial state { if (memcmp(&successorStates[i*numElements],origstate,sizeof(unsigned int) * numElements) != 0) { ++numNonSelfLoops; noSelfLoop[i] = true; } else noSelfLoop[i] = false; } if (numNonSelfLoops == 0) // all transitions are self loops // => accept self loop { successors = reserveSuccessorArray(res,1); numSuccessors = 1; successors[0] = findNode(res,successorStates,numElements,&found); if (!found) pushStateStackElement(&stack,successorStates,numElements); } else // there is at least one transition that is no self loop // => do not accept self loops { successors = reserveSuccessorArray(res, numNonSelfLoops); numSuccessors = numNonSelfLoops; unsigned int j; for (i = 0, j = 0; i < net->numGenes; ++i) { if (noSelfLoop[i]) // create successor in tree { successors[j++] = findNode(res,&successorStates[i*numElements],numElements,&found); newNodes = newNodes | !found; if (!found) pushStateStackElement(&stack,&successorStates[i*numElements],numElements); } } } } else // self loops are allowed { unsigned int state[numElements]; successors = reserveSuccessorArray(res,net->numGenes); numSuccessors = net->numGenes; for (i = 0; i < net->numGenes; ++i) // calculate all successors { memcpy(state,origstate,sizeof(unsigned int) * numElements); applySingleFunction(state,i,net); successors[i] = findNode(res,state,numElements,&found); newNodes = newNodes | !found; if (!found) pushStateStackElement(&stack,state,numElements); } } current->type.async.successors = successors; current->type.async.numSuccessors = numSuccessors; } while (stack != NULL); // return the number of elements in the state set return res; } /** * Recursively retrieve an array of states from a tree * and store it to is the number of array elements used to represent one state. * is the current array entry to be written and should be initialized to 0. */ void getStateSet(StateTreeNode * root, unsigned int * states, unsigned int numElements, unsigned int * nodeNo) { if (root->leftChild != 0) // recursive descent of left subtree getStateSet(root->leftChild,states,numElements,nodeNo); // write the state itself memcpy(&states[numElements* (*nodeNo)],root->data,numElements*sizeof(unsigned int)); *nodeNo = *nodeNo + 1; if (root->rightChild != 0) // recursive descent of right subtree getStateSet(root->rightChild,states,numElements,nodeNo); } /** * Recursively extract the transition table from a state set * and store it to a list of transitions
. * is the number of array elements used to represent one state. * receives the size of the resulting table. */ void getLooseAttractorTransitionTable(StateTreeNode * root, TransitionTableEntry ** table, unsigned int numElements, unsigned int * size) { if (root->leftChild != 0) // recursive descent of left subtree getLooseAttractorTransitionTable(root->leftChild,table,numElements,size); bool duplicate[root->type.async.numSuccessors]; memset(duplicate,0,sizeof(bool)*root->type.async.numSuccessors); unsigned int i, j; // check for duplicate transitions for (i = 0; i < root->type.async.numSuccessors; ++i) { for (j = i + 1; j < root->type.async.numSuccessors; ++j) { if (memcmp(&root->type.async.successors[i * numElements], &root->type.async.successors[j * numElements], sizeof(unsigned int) * numElements) == 0) duplicate[j] = true; } } // copy the unique transitions to the table for (i = 0; i < root->type.async.numSuccessors; ++i) { if (!duplicate[i]) { insertNewTransition(table,root->data,root->type.async.successors[i]->data,numElements); ++ *size; } } if (root->rightChild != 0) // recursive descent of right subtree getLooseAttractorTransitionTable(root->rightChild,table,numElements, size); } /** * Validate whether a set with states is a true attractor. * If is true, self loops are only considered if there are no other possible transitions. * holds the network information. */ bool validateAttractor(unsigned int * attractor, unsigned int attractorLength, bool avoidSelfLoops,TruthTableBooleanNetwork * net) { unsigned int numElts, i; if (net->numGenes % BITS_PER_BLOCK_32 == 0) numElts = net->numGenes / BITS_PER_BLOCK_32; else numElts = net->numGenes / BITS_PER_BLOCK_32 + 1; for (i = 0; i < attractorLength; ++i) // iterate over states { StateTree * set = buildAsynchronousStateSet(&attractor[i*numElts],numElts,avoidSelfLoops,net); if (set->nodeCount != attractorLength) { freeStateTree(set); return false; } unsigned int size_set = set->nodeCount; unsigned int states_set[numElts * size_set]; unsigned int nodeNo = 0; getStateSet(set->root,states_set,numElts,&nodeNo); freeStateTree(set); // compare forward reachable set to original set if (memcmp(states_set,attractor,sizeof(unsigned int) * numElts * size_set) != 0) // no attractor return false; } return true; } /** * Calculate complex/loose attractors by performing random transitions from * the states supplied in . * If is true, self loops are only considered if there are no other possible transitions. * If is not NULL, this vector holds the probabilities for each gene to be chosen * for a transition. */ pAttractorInfo getLooseAttractors(unsigned int * selectedStates, unsigned int numberOfStates, TruthTableBooleanNetwork * net, unsigned int randomSteps, bool avoidSelfLoops, double * probabilities) { // attractor list has empty dummy element at the end pAttractor attractorList = CALLOC(1,sizeof(Attractor)); unsigned int numElts, i, j; if (net->numGenes % BITS_PER_BLOCK_32 == 0) numElts = net->numGenes / BITS_PER_BLOCK_32; else numElts = net->numGenes / BITS_PER_BLOCK_32 + 1; // if probabilities for the genes are supplied, exclude fixed genes (if any) // and recalculate probabilities double * pProbabilities = NULL; double convertedProbabilities[net->numGenes + 1]; if (probabilities != NULL) { convertedProbabilities[0] = 0.0; double probabilitySum = 0.0; for (i = 0; i < net->numGenes; ++i) { if (net->fixedGenes[i] == -1) probabilitySum += probabilities[i]; } for (i = 0; i < net->numGenes; ++i) { if (net->fixedGenes[i] == -1) convertedProbabilities[i+1] = convertedProbabilities[i] + probabilities[i]/probabilitySum; else convertedProbabilities[i+1] = convertedProbabilities[i]; } pProbabilities = convertedProbabilities; } unsigned int attractorCount = 0; for (i = 0; i < numberOfStates; ++i) // iterate over supplied start states { unsigned int currentState[numElts]; memcpy(currentState,&selectedStates[i*numElts],sizeof(unsigned int) * numElts); unsigned int t = 0; for (j = randomSteps; j > 0; --j) // perform random state transitions // to reach a potential attractor { asynchronousStateTransition(currentState,pProbabilities,net); ++t; } // calculate forward reachable set of end state StateTree * set = buildAsynchronousStateSet(currentState,numElts,avoidSelfLoops,net); unsigned int states_set[numElts * set->nodeCount]; unsigned int nodeNo = 0; getStateSet(set->root,states_set,numElts,&nodeNo); // search for the current potential attractor in the attractor list bool found = false; pAttractor current = attractorList; while (current != NULL && !found) { found = ((set->nodeCount == current->length) && (memcmp(states_set,current->involvedStates,sizeof(unsigned int) * numElts * set->nodeCount) == 0)); current = current->next; } if (!found) // the potential attractor does not yet exist in the result list { if (validateAttractor(states_set,set->nodeCount,avoidSelfLoops,net)) // check whether this is a true attractor { pAttractor attractor = CALLOC(1,sizeof(Attractor)); attractor->numElementsPerEntry = numElts; attractor->length = set->nodeCount; attractor->involvedStates = CALLOC(numElts * set->nodeCount,sizeof(unsigned int)); memcpy(attractor->involvedStates,states_set,sizeof(unsigned int) * numElts * set->nodeCount); attractor->transitionTableSize = 0; if (set->nodeCount != 1) // if this is a steady-state attractor, no need to store transition table! getLooseAttractorTransitionTable(set->root,&attractor->table,numElts,&(attractor->transitionTableSize)); ++attractorCount; attractor->next = attractorList; attractorList = attractor; } } freeStateTree(set); } pAttractorInfo res = allocAttractorInfo(0,net->numGenes); res->numAttractors = attractorCount; res->attractorList = attractorList; return res; } BoolNet/src/attractor_search_interface.c0000644000176000001440000002605012473311652020156 0ustar ripleyusers#include #include #include "statespace_search.h" #include "sat_search.h" #include "common.h" /** * Identification of attractors */ #define SYNC_MODE_STATE_SPACE 0 #define ASYNC_MODE_RANDOM 1 #define SYNC_MODE_SAT_EXHAUSTIVE 2 #define SYNC_MODE_SAT_RESTRICTED 3 /** * The R wrapper function for getAttractors. * Arguments: * inputGenes An integer vector containing the concatenated input gene lists * of *all* transition functions * inputGenePositions A vector of positions to split up for each transition function * transitionFunctions The concatenated truth table result columns of the transition functions of all genes. * transitionFunctionPositions A vector of positions to split up for each transition function. * fixedGenes A vector that contains -1 for all genes that can be both ON and OFF, 1 for genes that are always ON, * and 0 for genes that are always OFF. * specialInitializations A matrix of special initializations supplied by the user. The first row contains the genes, * the second row contains the corresponding initialization values. * startStates An optional array of encoded states used to initialize the heuristics * (not needed for exhaustive search) * simType An integer that determines whether a synchronous, asynchronous or SAT-based search is performed * geneProbabilities For asynchronous search, the probabilities of each gene to be chosen for update * randomSteps For asynchronous search, the number of random transitions performed to reach a potential attractor * avoidSelfLoops If set to true, self loops are only allowed if no other transitions are possible, which reduces the * number of edges in the attractors * returnTable If set to true and networkType is synchronous, the transition table is included in the return value. * maxAttractorSize The maximum attractor length for SAT-based search */ SEXP getAttractors_R(SEXP inputGenes, SEXP inputGenePositions, SEXP transitionFunctions, SEXP transitionFunctionPositions, SEXP fixedGenes, SEXP startStates, SEXP simType, SEXP geneProbabilities, SEXP randomSteps, SEXP avoidSelfLoops, SEXP returnTable, SEXP maxAttractorSize) { GetRNGstate(); // decode information in SEXP for use in C TruthTableBooleanNetwork network; network.type = TRUTHTABLE_BOOLEAN_NETWORK; network.numGenes = length(fixedGenes); network.inputGenes = INTEGER(inputGenes); network.inputGenePositions = INTEGER(inputGenePositions); network.transitionFunctions = INTEGER(transitionFunctions); network.transitionFunctionPositions = INTEGER(transitionFunctionPositions); network.fixedGenes = INTEGER(fixedGenes); network.nonFixedGeneBits = CALLOC(network.numGenes, sizeof(unsigned int)); int _networkType = *INTEGER(simType); int _randomSteps = *INTEGER(randomSteps); bool _returnTable = (bool) (*INTEGER(returnTable)); bool _avoidSelfLoops = (bool) (*INTEGER(avoidSelfLoops)); double * _probabilities = NULL; if (!isNull(geneProbabilities) && length(geneProbabilities) > 0) _probabilities = REAL(geneProbabilities); // count fixed genes, and create an index array for non-fixed genes: // contains the bit positions in a state // at which the -th gene is stored - this is different from // as fixed genes are not stored unsigned int numNonFixed = 0, i; for (i = 0; i < network.numGenes; i++) { if (network.fixedGenes[i] == -1) { network.nonFixedGeneBits[i] = numNonFixed++; } } pAttractorInfo res; if (_networkType == SYNC_MODE_STATE_SPACE && (isNull(startStates) || length(startStates) == 0)) // no start states supplied => perform exhaustive search { // calculate transition table unsigned long long * table = getTransitionTable(&network); if (table == 0) { PutRNGstate(); return R_NilValue; } unsigned long long numStates = (unsigned long long) 1 << numNonFixed;//pow(2,numNonFixed); // find attractors res = getAttractors(table, numStates, network.numGenes); } else // start states supplied or SAT search { unsigned int numElts; if (network.numGenes % BITS_PER_BLOCK_32 == 0) numElts = network.numGenes / BITS_PER_BLOCK_32; else numElts = network.numGenes / BITS_PER_BLOCK_32 + 1; unsigned int* _startStates = (unsigned int*) INTEGER(startStates); if (_networkType == SYNC_MODE_STATE_SPACE) { for (unsigned int i = 0; i < length(startStates) / numElts; ++i) { removeFixedGenes(&_startStates[i * numElts], network.fixedGenes, network.numGenes); } res = getAttractorsForStates(_startStates, length(startStates) / numElts, &network); } else if (_networkType == SYNC_MODE_SAT_EXHAUSTIVE) { int _maxAttractorSize; if (isNull(maxAttractorSize)) { _maxAttractorSize = 1; } else _maxAttractorSize = *INTEGER(maxAttractorSize); res = getAttractors_SAT_exhaustive( (BooleanNetwork *) &network, _maxAttractorSize, EXTENSION_MIXED); } else if (_networkType == SYNC_MODE_SAT_RESTRICTED) { res = getAttractors_SAT_maxLength((BooleanNetwork *) &network, *INTEGER(maxAttractorSize)); } else { res = getLooseAttractors(_startStates, length(startStates) / numElts, &network, _randomSteps, _avoidSelfLoops, _probabilities); } } // pack results in SEXP structure for return value SEXP resSXP; SEXP stateInfoSXP; int* array; // create a result list with two elements (attractors and transition table) PROTECT(resSXP = allocList(2)); SET_TAG(resSXP, install("stateInfo")); SET_TAG(CDR(resSXP), install("attractors")); if (res->tableSize != 0 && _returnTable) { // create a 3-element list for the transition table PROTECT(stateInfoSXP = allocList(4)); SET_TAG(stateInfoSXP, install("table")); SET_TAG(CDR(stateInfoSXP), install("attractorAssignment")); SET_TAG(CDR(CDR(stateInfoSXP)), install("stepsToAttractor")); SET_TAG(CDR(CDR(CDR(stateInfoSXP))), install("initialStates")); // write transition table result column SEXP tableSXP; PROTECT( tableSXP = allocVector(INTSXP,res->tableSize * res->numElementsPerEntry)); array = INTEGER(tableSXP); for (i = 0; i < res->tableSize; ++i) { // the transition table results do not contain fixed genes => insert them insertFixedGenes(&res->table[i * res->numElementsPerEntry], network.fixedGenes, network.numGenes); memcpy(&array[i * res->numElementsPerEntry], &res->table[i * res->numElementsPerEntry], res->numElementsPerEntry * sizeof(unsigned int)); } SETCAR(stateInfoSXP, tableSXP); UNPROTECT(1); // write attractor assignment vector for states in transition table SEXP assignmentSXP; PROTECT(assignmentSXP = allocVector(INTSXP,res->tableSize)); array = INTEGER(assignmentSXP); memcpy(array, res->attractorAssignment, res->tableSize * sizeof(int)); SETCADR(stateInfoSXP, assignmentSXP); UNPROTECT(1); // write a vector with number of transitions from a state to an attractor SEXP stepSXP; PROTECT(stepSXP = allocVector(INTSXP,res->tableSize)); array = INTEGER(stepSXP); memcpy(array, res->stepsToAttractor, res->tableSize * sizeof(int)); SETCADDR(stateInfoSXP, stepSXP); UNPROTECT(1); // if available, write the original states SEXP initialStateSXP; if (res->initialStates == 0) initialStateSXP = R_NilValue; else // if start states are specified, the initial states for each transition have to be saved as well, // as they cannot be inferred by enumeration { PROTECT( initialStateSXP = allocVector(INTSXP,res->tableSize * res->numElementsPerEntry)); array = INTEGER(initialStateSXP); for (i = 0; i < res->tableSize; ++i) { // the transition table results do not contain fixed genes => insert them insertFixedGenes( &res->initialStates[i * res->numElementsPerEntry], network.fixedGenes, network.numGenes); memcpy(&array[i * res->numElementsPerEntry], &res->initialStates[i * res->numElementsPerEntry], res->numElementsPerEntry * sizeof(unsigned int)); } SETCADDDR(stateInfoSXP, initialStateSXP); UNPROTECT(1); } } else { stateInfoSXP = R_NilValue; } // assign to result list SETCAR(resSXP, stateInfoSXP); if (res->tableSize != 0 && _returnTable) UNPROTECT(1); // count attractors unsigned int numAttractors = 0; pAttractor el; for (el = res->attractorList; el->next != NULL; el = el->next) ++numAttractors; // write attractors SEXP attractorsSXP; PROTECT(attractorsSXP = allocList(numAttractors)); SEXP listPos = attractorsSXP; for (el = res->attractorList, i = 0; el->next != NULL; el = el->next, ++i) { SEXP attractorSXP; // each attractor is a 2-element list with a list of states included // in the attractor and the size of the basin if (el->transitionTableSize == 0) PROTECT(attractorSXP = allocList(2)); else PROTECT(attractorSXP = allocList(4)); SET_TAG(attractorSXP, install("involvedStates")); SET_TAG(CDR(attractorSXP), install("basinSize")); if (el->transitionTableSize != 0) { SET_TAG(CDR(CDR(attractorSXP)), install("initialStates")); SET_TAG(CDR(CDR(CDR(attractorSXP))), install("nextStates")); } SEXP stateSXP; PROTECT( stateSXP = allocVector(INTSXP,el->length * el->numElementsPerEntry)); array = INTEGER(stateSXP); for (i = 0; i < el->length; ++i) { if (_networkType == SYNC_MODE_STATE_SPACE) // insert fixed gene values, as they are missing in the calculated results insertFixedGenes( &el->involvedStates[i * el->numElementsPerEntry], network.fixedGenes, network.numGenes); memcpy(&array[i * el->numElementsPerEntry], &el->involvedStates[i * el->numElementsPerEntry], el->numElementsPerEntry * sizeof(unsigned int)); } SETCAR(attractorSXP, stateSXP); // write basin size SEXP basinSXP; PROTECT(basinSXP = allocVector(INTSXP,1)); array = INTEGER(basinSXP); array[0] = el->basinSize; SETCADR(attractorSXP, basinSXP); SETCAR(listPos, attractorSXP); if (el->next != NULL) listPos = CDR(listPos); if (el->transitionTableSize != 0) { SEXP attrInitialStateSXP; SEXP attrNextStateSXP; PROTECT( attrInitialStateSXP = allocVector(INTSXP,el->numElementsPerEntry * el->transitionTableSize)); PROTECT( attrNextStateSXP = allocVector(INTSXP,el->numElementsPerEntry * el->transitionTableSize)); unsigned int * initial = (unsigned int*) INTEGER( attrInitialStateSXP); unsigned int * next = (unsigned int*) INTEGER(attrNextStateSXP); TransitionTableEntry * currentState = el->table; for (i = 0; i < el->transitionTableSize; ++i) { memcpy(&initial[i * el->numElementsPerEntry], currentState->initialState, sizeof(unsigned int) * el->numElementsPerEntry); memcpy(&next[i * el->numElementsPerEntry], currentState->nextState, sizeof(unsigned int) * el->numElementsPerEntry); currentState = currentState->next; } SETCADDR(attractorSXP, attrInitialStateSXP); SETCADDDR(attractorSXP, attrNextStateSXP); UNPROTECT(2); } UNPROTECT(3); } UNPROTECT(1); SETCADR(resSXP, attractorsSXP); PutRNGstate(); UNPROTECT(1); // free resources freeAttractorInfo(res); FREE(network.nonFixedGeneBits); return (resSXP); } BoolNet/src/picosat.c0000644000176000001440000050062412473311652014254 0ustar ripleyusers/**************************************************************************** Copyright (c) 2006 - 2015, Armin Biere, Johannes Kepler University. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ****************************************************************************/ #include #include #include #include #include #include #include #include #include "picosat.h" /* By default code for 'all different constraints' is disabled, since 'NADC' * is defined. */ #define NADC /* By default we enable failed literals, since 'NFL' is undefined. * #define NFL */ /* By default we 'detach satisfied (large) clauses', e.g. NDSC undefined. * #define NDSC */ /* Do not use luby restart schedule instead of inner/outer. * #define NLUBY */ /* Enabling this define, will use gnuplot to visualize how the scores evolve. * #define VISCORES */ #ifdef VISCORES // #define WRITEGIF /* ... to generate a video */ #endif #ifdef VISCORES #ifndef WRITEGIF #include /* for 'usleep' */ #endif #endif #ifndef NRCODE #include #endif #define MINRESTART 100 /* minimum restart interval */ #define MAXRESTART 1000000 /* maximum restart interval */ #define RDECIDE 1000 /* interval of random decisions */ #define FRESTART 110 /* restart increase factor in percent */ #define FREDUCE 110 /* reduce increase factor in percent */ #define FREDADJ 121 /* reduce increase adjustment factor */ #define MAXCILS 10 /* maximal number of unrecycled internals */ #define FFLIPPED 10000 /* flipped reduce factor */ #define FFLIPPEDPREC 10000000/* flipped reduce factor precision */ #define INTERRUPTLIM 1024 /* check interrupt after that many decisions */ #ifndef TRACE #define NO_BINARY_CLAUSES /* store binary clauses more compactly */ #endif /* For debugging purposes you may want to define 'LOGGING', which actually * can be enforced by using the '--log' option for the configure script. */ #ifdef LOGGING #define LOG(code) do { code; } while (0) #else #define LOG(code) do { } while (0) #endif #define NOLOG(code) do { } while (0) /* log exception */ #define ONLYLOG(code) do { code; } while (0) /* force logging */ #define FALSE ((Val)-1) #define UNDEF ((Val)0) #define TRUE ((Val)1) #define COMPACT_TRACECHECK_TRACE_FMT 0 #define EXTENDED_TRACECHECK_TRACE_FMT 1 #define RUP_TRACE_FMT 2 #define NEWN(p,n) do { (p) = new (ps, sizeof (*(p)) * (n)); } while (0) #define CLRN(p,n) do { memset ((p), 0, sizeof (*(p)) * (n)); } while (0) #define CLR(p) CLRN(p,1) #define DELETEN(p,n) \ do { delete (ps, p, sizeof (*(p)) * (n)); (p) = 0; } while (0) #define RESIZEN(p,old_num,new_num) \ do { \ size_t old_size = sizeof (*(p)) * (old_num); \ size_t new_size = sizeof (*(p)) * (new_num); \ (p) = resize (ps, (p), old_size, new_size) ; \ } while (0) #define ENLARGE(start,head,end) \ do { \ unsigned old_num = (ptrdiff_t)((end) - (start)); \ size_t new_num = old_num ? (2 * old_num) : 1; \ unsigned count = (head) - (start); \ assert ((start) <= (end)); \ RESIZEN((start),old_num,new_num); \ (head) = (start) + count; \ (end) = (start) + new_num; \ } while (0) #define NOTLIT(l) (ps->lits + (1 ^ ((l) - ps->lits))) #define LIT2IDX(l) ((ptrdiff_t)((l) - ps->lits) / 2) #define LIT2IMPLS(l) (ps->impls + (ptrdiff_t)((l) - ps->lits)) #define LIT2INT(l) ((int)(LIT2SGN(l) * LIT2IDX(l))) #define LIT2SGN(l) (((ptrdiff_t)((l) - ps->lits) & 1) ? -1 : 1) #define LIT2VAR(l) (ps->vars + LIT2IDX(l)) #define LIT2HTPS(l) (ps->htps + (ptrdiff_t)((l) - ps->lits)) #define LIT2JWH(l) (ps->jwh + ((l) - ps->lits)) #ifndef NDSC #define LIT2DHTPS(l) (ps->dhtps + (ptrdiff_t)((l) - ps->lits)) #endif #ifdef NO_BINARY_CLAUSES typedef uintptr_t Wrd; #define ISLITREASON(C) (1&(Wrd)C) #define LIT2REASON(L) \ (assert (L->val==TRUE), ((Cls*)(1 + (2*(L - ps->lits))))) #define REASON2LIT(C) ((Lit*)(ps->lits + ((Wrd)C)/2)) #endif #define ENDOFCLS(c) ((void*)((Lit**)(c)->lits + (c)->size)) #define SOC ((ps->oclauses == ps->ohead) ? ps->lclauses : ps->oclauses) #define EOC (ps->lhead) #define NXC(p) (((p) + 1 == ps->ohead) ? ps->lclauses : (p) + 1) #define OIDX2IDX(idx) (2 * ((idx) + 1)) #define LIDX2IDX(idx) (2 * (idx) + 1) #define ISLIDX(idx) ((idx)&1) #define IDX2OIDX(idx) (assert(!ISLIDX(idx)), (idx)/2 - 1) #define IDX2LIDX(idx) (assert(ISLIDX(idx)), (idx)/2) #define EXPORTIDX(idx) \ ((ISLIDX(idx) ? (IDX2LIDX (idx) + (ps->ohead - ps->oclauses)) : IDX2OIDX(idx)) + 1) #define IDX2CLS(i) \ (assert(i), (ISLIDX(i) ? ps->lclauses : ps->oclauses)[(i)/2 - !ISLIDX(i)]) #define IDX2ZHN(i) (assert(i), (ISLIDX(i) ? ps->zhains[(i)/2] : 0)) #define CLS2TRD(c) (((Trd*)(c)) - 1) #define CLS2IDX(c) ((((Trd*)(c)) - 1)->idx) #define CLS2ACT(c) \ ((Act*)((assert((c)->learned)),assert((c)->size>2),ENDOFCLS(c))) #define VAR2LIT(v) (ps->lits + 2 * ((v) - ps->vars)) #define VAR2RNK(v) (ps->rnks + ((v) - ps->vars)) #define RNK2LIT(r) (ps->lits + 2 * ((r) - ps->rnks)) #define RNK2VAR(r) (ps->vars + ((r) - ps->rnks)) #define BLK_FILL_BYTES 8 #define SIZE_OF_BLK (sizeof (Blk) - BLK_FILL_BYTES) #define PTR2BLK(void_ptr) \ ((void_ptr) ? (Blk*)(((char*)(void_ptr)) - SIZE_OF_BLK) : 0) #define AVERAGE(a,b) ((b) ? (((double)a) / (double)(b)) : 0.0) #define PERCENT(a,b) (100.0 * AVERAGE(a,b)) #ifndef NRCODE #define ABORT(msg) \ do { \ Rf_error(msg); \ } while (0) #else #define ABORT(msg) \ do { \ fputs ("*** picosat: " msg "\n", stderr); \ abort (); \ } while (0) #endif #define ABORTIF(cond,msg) \ do { \ if (!(cond)) break; \ ABORT (msg); \ } while (0) #define ZEROFLT (0x00000000u) #define EPSFLT (0x00000001u) #define INFFLT (0xffffffffu) #define FLTCARRY (1u << 25) #define FLTMSB (1u << 24) #define FLTMAXMANTISSA (FLTMSB - 1) #define FLTMANTISSA(d) ((d) & FLTMAXMANTISSA) #define FLTEXPONENT(d) ((int)((d) >> 24) - 128) #define FLTMINEXPONENT (-128) #define FLTMAXEXPONENT (127) #define CMPSWAPFLT(a,b) \ do { \ Flt tmp; \ if (((a) < (b))) \ { \ tmp = (a); \ (a) = (b); \ (b) = tmp; \ } \ } while (0) #define UNPACKFLT(u,m,e) \ do { \ (m) = FLTMANTISSA(u); \ (e) = FLTEXPONENT(u); \ (m) |= FLTMSB; \ } while (0) #define INSERTION_SORT_LIMIT 10 #define SORTING_SWAP(T,p,q) \ do { \ T tmp = *(q); \ *(q) = *(p); \ *(p) = tmp; \ } while (0) #define SORTING_CMP_SWAP(T,cmp,p,q) \ do { \ if ((cmp) (ps, *(p), *(q)) > 0) \ SORTING_SWAP (T, p, q); \ } while(0) #define QUICKSORT_PARTITION(T,cmp,a,l,r) \ do { \ T pivot; \ int j; \ i = (l) - 1; /* result in 'i' */ \ j = (r); \ pivot = (a)[j]; \ for (;;) \ { \ while ((cmp) (ps, (a)[++i], pivot) < 0) \ ; \ while ((cmp) (ps, pivot, (a)[--j]) < 0) \ if (j == (l)) \ break; \ if (i >= j) \ break; \ SORTING_SWAP (T, (a) + i, (a) + j); \ } \ SORTING_SWAP (T, (a) + i, (a) + (r)); \ } while(0) #define QUICKSORT(T,cmp,a,n) \ do { \ int l = 0, r = (n) - 1, m, ll, rr, i; \ assert (ps->ihead == ps->indices); \ if (r - l <= INSERTION_SORT_LIMIT) \ break; \ for (;;) \ { \ m = (l + r) / 2; \ SORTING_SWAP (T, (a) + m, (a) + r - 1); \ SORTING_CMP_SWAP (T, cmp, (a) + l, (a) + r - 1); \ SORTING_CMP_SWAP (T, cmp, (a) + l, (a) + r); \ SORTING_CMP_SWAP (T, cmp, (a) + r - 1, (a) + r); \ QUICKSORT_PARTITION (T, cmp, (a), l + 1, r - 1); \ if (i - l < r - i) \ { \ ll = i + 1; \ rr = r; \ r = i - 1; \ } \ else \ { \ ll = l; \ rr = i - 1; \ l = i + 1; \ } \ if (r - l > INSERTION_SORT_LIMIT) \ { \ assert (rr - ll > INSERTION_SORT_LIMIT); \ if (ps->ihead == ps->eoi) \ ENLARGE (ps->indices, ps->ihead, ps->eoi); \ *ps->ihead++ = ll; \ if (ps->ihead == ps->eoi) \ ENLARGE (ps->indices, ps->ihead, ps->eoi); \ *ps->ihead++ = rr; \ } \ else if (rr - ll > INSERTION_SORT_LIMIT) \ { \ l = ll; \ r = rr; \ } \ else if (ps->ihead > ps->indices) \ { \ r = *--ps->ihead; \ l = *--ps->ihead; \ } \ else \ break; \ } \ } while (0) #define INSERTION_SORT(T,cmp,a,n) \ do { \ T pivot; \ int l = 0, r = (n) - 1, i, j; \ for (i = r; i > l; i--) \ SORTING_CMP_SWAP (T, cmp, (a) + i - 1, (a) + i); \ for (i = l + 2; i <= r; i++) \ { \ j = i; \ pivot = (a)[i]; \ while ((cmp) (ps, pivot, (a)[j - 1]) < 0) \ { \ (a)[j] = (a)[j - 1]; \ j--; \ } \ (a)[j] = pivot; \ } \ } while (0) #ifdef NDEBUG #define CHECK_SORTED(cmp,a,n) do { } while(0) #else #define CHECK_SORTED(cmp,a,n) \ do { \ int i; \ for (i = 0; i < (n) - 1; i++) \ assert ((cmp) (ps, (a)[i], (a)[i + 1]) <= 0); \ } while(0) #endif #define SORT(T,cmp,a,n) \ do { \ T * aa = (a); \ int nn = (n); \ QUICKSORT (T, cmp, aa, nn); \ INSERTION_SORT (T, cmp, aa, nn); \ assert (ps->ihead == ps->indices); \ CHECK_SORTED (cmp, aa, nn); \ } while (0) #define WRDSZ (sizeof (long) * 8) #ifndef NRCODE #define picosat_fprintf(...) do { } while (0) #define picosat_vfprintf(...) do { } while (0) #define picosat_fputs(...) do { } while (0) #define picosat_fputc(...) do { } while (0) #else #define picosat_fprintf(file, fmt, ...) do { fprintf(file, fmt, ##__VA_ARGS__); } while (0) #define picosat_vfprintf(file, fmt, va_list) do { vfprintf(file, fmt, va_list); } while (0) #define picosat_fputs(str, file) do { fputs(str, file); } while (0) #define picosat_fputc(c, file) do { fputc(c, file); } while (0) #endif typedef unsigned Flt; /* 32 bit deterministic soft float */ typedef Flt Act; /* clause and variable activity */ typedef struct Blk Blk; /* allocated memory block */ typedef struct Cls Cls; /* clause */ typedef struct Lit Lit; /* literal */ typedef struct Rnk Rnk; /* variable to score mapping */ typedef signed char Val; /* TRUE, UNDEF, FALSE */ typedef struct Var Var; /* variable */ #ifdef TRACE typedef struct Trd Trd; /* trace data for clauses */ typedef struct Zhn Zhn; /* compressed chain (=zain) data */ typedef unsigned char Znt; /* compressed antecedent data */ #endif #ifdef NO_BINARY_CLAUSES typedef struct Ltk Ltk; struct Ltk { Lit ** start; unsigned count : WRDSZ == 32 ? 27 : 32; unsigned ldsize : WRDSZ == 32 ? 5 : 32; }; #endif struct Lit { Val val; }; struct Var { unsigned mark : 1; /*bit 1*/ unsigned resolved : 1; /*bit 2*/ unsigned phase : 1; /*bit 3*/ unsigned assigned : 1; /*bit 4*/ unsigned used : 1; /*bit 5*/ unsigned failed : 1; /*bit 6*/ unsigned internal : 1; /*bit 7*/ unsigned usedefphase : 1; /*bit 8*/ unsigned defphase : 1; /*bit 9*/ unsigned msspos : 1; /*bit 10*/ unsigned mssneg : 1; /*bit 11*/ unsigned humuspos : 1; /*bit 12*/ unsigned humusneg : 1; /*bit 13*/ unsigned partial : 1; /*bit 14*/ #ifdef TRACE unsigned core : 1; /*bit 15*/ #endif unsigned level; Cls *reason; #ifndef NADC Lit ** inado; Lit ** ado; Lit *** adotabpos; #endif }; struct Rnk { Act score; unsigned pos : 30; /* 0 iff not on heap */ unsigned moreimportant : 1; unsigned lessimportant : 1; }; struct Cls { unsigned size; unsigned collect:1; /* bit 1 */ unsigned learned:1; /* bit 2 */ unsigned locked:1; /* bit 3 */ unsigned used:1; /* bit 4 */ #ifndef NDEBUG unsigned connected:1; /* bit 5 */ #endif #ifdef TRACE unsigned collected:1; /* bit 6 */ unsigned core:1; /* bit 7 */ #endif #define LDMAXGLUE 25 /* 32 - 7 */ #define MAXGLUE ((1<= FLTCARRY) { if (e >= FLTMAXEXPONENT) return INFFLT; e++; m >>= 1; } } m &= ~FLTMSB; return packflt (m, e); } static Flt addflt (Flt a, Flt b) { unsigned ma, mb, delta; int ea, eb; CMPSWAPFLT (a, b); if (!b) return a; UNPACKFLT (a, ma, ea); UNPACKFLT (b, mb, eb); assert (ea >= eb); delta = ea - eb; if (delta < 32) mb >>= delta; else mb = 0; if (!mb) return a; ma += mb; if (ma & FLTCARRY) { if (ea == FLTMAXEXPONENT) return INFFLT; ea++; ma >>= 1; } assert (ma < FLTCARRY); ma &= FLTMAXMANTISSA; return packflt (ma, ea); } static Flt mulflt (Flt a, Flt b) { unsigned ma, mb; unsigned long long accu; int ea, eb; CMPSWAPFLT (a, b); if (!b) return ZEROFLT; UNPACKFLT (a, ma, ea); UNPACKFLT (b, mb, eb); ea += eb; ea += 24; if (ea > FLTMAXEXPONENT) return INFFLT; if (ea < FLTMINEXPONENT) return EPSFLT; accu = ma; accu *= mb; accu >>= 24; if (accu >= FLTCARRY) { if (ea == FLTMAXEXPONENT) return INFFLT; ea++; accu >>= 1; if (accu >= FLTCARRY) return INFFLT; } assert (accu < FLTCARRY); assert (accu & FLTMSB); ma = accu; ma &= ~FLTMSB; return packflt (ma, ea); } static Flt ascii2flt (const char *str) { Flt ten = base2flt (10, 0); Flt onetenth = base2flt (26843546, -28); Flt res = ZEROFLT, tmp, base; const char *p = str; char ch; ch = *p++; if (ch != '.') { if (!isdigit (ch)) return INFFLT; /* better abort ? */ res = base2flt (ch - '0', 0); while ((ch = *p++)) { if (ch == '.') break; if (!isdigit (ch)) return INFFLT; /* better abort? */ res = mulflt (res, ten); tmp = base2flt (ch - '0', 0); res = addflt (res, tmp); } } if (ch == '.') { ch = *p++; if (!isdigit (ch)) return INFFLT; /* better abort ? */ base = onetenth; tmp = mulflt (base2flt (ch - '0', 0), base); res = addflt (res, tmp); while ((ch = *p++)) { if (!isdigit (ch)) return INFFLT; /* better abort? */ base = mulflt (base, onetenth); tmp = mulflt (base2flt (ch - '0', 0), base); res = addflt (res, tmp); } } return res; } #if defined(VISCORES) static double flt2double (Flt f) { double res; unsigned m; int e, i; UNPACKFLT (f, m, e); res = m; if (e < 0) { for (i = e; i < 0; i++) res *= 0.5; } else { for (i = 0; i < e; i++) res *= 2.0; } return res; } #endif static int log2flt (Flt a) { return FLTEXPONENT (a) + 24; } static int cmpflt (Flt a, Flt b) { if (a < b) return -1; if (a > b) return 1; return 0; } static void * new (PS * ps, size_t size) { size_t bytes; Blk *b; if (!size) return 0; bytes = size + SIZE_OF_BLK; if (ps->enew) b = ps->enew (ps->emgr, bytes); else b = malloc (bytes); ABORTIF (!b, "out of memory in 'new'"); #ifndef NDEBUG b->header.size = size; #endif ps->current_bytes += size; if (ps->current_bytes > ps->max_bytes) ps->max_bytes = ps->current_bytes; return b->data; } static void delete (PS * ps, void *void_ptr, size_t size) { size_t bytes; Blk *b; if (!void_ptr) { assert (!size); return; } assert (size); b = PTR2BLK (void_ptr); assert (size <= ps->current_bytes); ps->current_bytes -= size; assert (b->header.size == size); bytes = size + SIZE_OF_BLK; if (ps->edelete) ps->edelete (ps->emgr, b, bytes); else free (b); } static void * resize (PS * ps, void *void_ptr, size_t old_size, size_t new_size) { size_t old_bytes, new_bytes; Blk *b; b = PTR2BLK (void_ptr); assert (old_size <= ps->current_bytes); ps->current_bytes -= old_size; if ((old_bytes = old_size)) { assert (old_size && b && b->header.size == old_size); old_bytes += SIZE_OF_BLK; } else assert (!b); if ((new_bytes = new_size)) new_bytes += SIZE_OF_BLK; if (ps->eresize) b = ps->eresize (ps->emgr, b, old_bytes, new_bytes); else b = realloc (b, new_bytes); if (!new_size) { assert (!b); return 0; } ABORTIF (!b, "out of memory in 'resize'"); #ifndef NDEBUG b->header.size = new_size; #endif ps->current_bytes += new_size; if (ps->current_bytes > ps->max_bytes) ps->max_bytes = ps->current_bytes; return b->data; } static unsigned int2unsigned (int l) { return (l < 0) ? 1 + 2 * -l : 2 * l; } static Lit * int2lit (PS * ps, int l) { return ps->lits + int2unsigned (l); } static Lit ** end_of_lits (Cls * c) { return (Lit**)c->lits + c->size; } #if !defined(NDEBUG) || defined(LOGGING) static void dumplits (PS * ps, Lit ** l, Lit ** end) { int first; Lit ** p; if (l == end) { /* empty clause */ } else if (l + 1 == end) { picosat_fprintf (ps->out, "%d ", LIT2INT (l[0])); } else { assert (l + 2 <= end); first = (abs (LIT2INT (l[0])) > abs (LIT2INT (l[1]))); picosat_fprintf (ps->out, "%d ", LIT2INT (l[first])); picosat_fprintf (ps->out, "%d ", LIT2INT (l[!first])); for (p = l + 2; p < end; p++) picosat_fprintf (ps->out, "%d ", LIT2INT (*p)); } picosat_fputc ('0', ps->out); } static void dumpcls (PS * ps, Cls * c) { Lit **end; if (c) { end = end_of_lits (c); dumplits (ps, c->lits, end); #ifdef TRACE if (ps->trace) picosat_fprintf (ps->out, " clause(%u)", CLS2IDX (c)); #endif } else picosat_fputs ("DECISION", ps->out); } static void dumpclsnl (PS * ps, Cls * c) { dumpcls (ps, c); picosat_fputc ('\n', ps->out); } void dumpcnf (PS * ps) { Cls **p, *c; for (p = SOC; p != EOC; p = NXC (p)) { c = *p; if (!c) continue; #ifdef TRACE if (c->collected) continue; #endif dumpclsnl (ps, *p); } } #endif static void delete_prefix (PS * ps) { if (!ps->prefix) return; delete (ps, ps->prefix, strlen (ps->prefix) + 1); ps->prefix = 0; } static void new_prefix (PS * ps, const char * str) { delete_prefix (ps); assert (str); ps->prefix = new (ps, strlen (str) + 1); strcpy (ps->prefix, str); } static PS * init (void * pmgr, picosat_malloc pnew, picosat_realloc presize, picosat_free pdelete) { PS * ps; #if 0 int count = 3 - !pnew - !presize - !pdelete; ABORTIF (count && !pnew, "API usage: missing 'picosat_set_new'"); ABORTIF (count && !presize, "API usage: missing 'picosat_set_resize'"); ABORTIF (count && !pdelete, "API usage: missing 'picosat_set_delete'"); #endif ps = pnew ? pnew (pmgr, sizeof *ps) : malloc (sizeof *ps); ABORTIF (!ps, "failed to allocate memory for PicoSAT manager"); memset (ps, 0, sizeof *ps); ps->emgr = pmgr; ps->enew = pnew; ps->eresize = presize; ps->edelete = pdelete; ps->size_vars = 1; ps->state = RESET; ps->defaultphase = JWLPHASE; #ifdef TRACE ps->ocore = -1; #endif ps->lastrheader = -2; #ifndef NADC ps->adoconflictlimit = UINT_MAX; #endif ps->min_flipped = UINT_MAX; NEWN (ps->lits, 2 * ps->size_vars); NEWN (ps->jwh, 2 * ps->size_vars); NEWN (ps->htps, 2 * ps->size_vars); #ifndef NDSC NEWN (ps->dhtps, 2 * ps->size_vars); #endif NEWN (ps->impls, 2 * ps->size_vars); NEWN (ps->vars, ps->size_vars); NEWN (ps->rnks, ps->size_vars); /* because '0' pos denotes not on heap */ ENLARGE (ps->heap, ps->hhead, ps->eoh); ps->hhead = ps->heap + 1; ps->vinc = base2flt (1, 0); /* initial var activity */ ps->ifvinc = ascii2flt ("1.05"); /* var score rescore factor */ #ifdef VISCORES ps->fvinc = ascii2flt ("0.9523809"); /* 1/f = 1/1.05 */ ps->nvinc = ascii2flt ("0.0476191"); /* 1 - 1/f = 1 - 1/1.05 */ #endif ps->lscore = base2flt (1, 90); /* var activity rescore limit */ ps->ilvinc = base2flt (1, -90); /* inverse of 'lscore' */ ps->cinc = base2flt (1, 0); /* initial clause activity */ ps->fcinc = ascii2flt ("1.001"); /* cls activity rescore factor */ ps->lcinc = base2flt (1, 90); /* cls activity rescore limit */ ps->ilcinc = base2flt (1, -90); /* inverse of 'ilcinc' */ ps->lreduceadjustcnt = ps->lreduceadjustinc = 100; ps->lpropagations = ~0ull; #ifdef NRCODE ps->out = stdout; #else ps->out = NULL; #endif new_prefix (ps, "c "); ps->verbosity = 0; ps->plain = 0; #ifdef NO_BINARY_CLAUSES memset (&ps->impl, 0, sizeof (ps->impl)); ps->impl.size = 2; memset (&ps->cimpl, 0, sizeof (ps->impl)); ps->cimpl.size = 2; #endif #ifdef VISCORES ps->fviscores = popen ( "/usr/bin/gnuplot -background black" " -xrm 'gnuplot*textColor:white'" " -xrm 'gnuplot*borderColor:white'" " -xrm 'gnuplot*axisColor:white'" , "w"); picosat_fprintf (ps->fviscores, "unset key\n"); // fprintf (ps->fviscores, "set log y\n"); fflush (ps->fviscores); system ("rm -rf /tmp/picosat-viscores"); system ("mkdir /tmp/picosat-viscores"); system ("mkdir /tmp/picosat-viscores/data"); #ifdef WRITEGIF system ("mkdir /tmp/picosat-viscores/gif"); picosat_fprintf (ps->fviscores, "set terminal gif giant animate opt size 1024,768 x000000 xffffff" "\n"); picosat_fprintf (ps->fviscores, "set output \"/tmp/picosat-viscores/gif/animated.gif\"\n"); #endif #endif ps->defaultphase = JWLPHASE; ps->state = READY; ps->last_sat_call_result = 0; return ps; } static size_t bytes_clause (PS * ps, unsigned size, unsigned learned) { size_t res; res = sizeof (Cls); res += size * sizeof (Lit *); res -= 2 * sizeof (Lit *); if (learned && size > 2) res += sizeof (Act); /* add activity */ #ifdef TRACE if (ps->trace) res += sizeof (Trd); /* add trace data */ #else (void) ps; #endif return res; } static Cls * new_clause (PS * ps, unsigned size, unsigned learned) { size_t bytes; void * tmp; #ifdef TRACE Trd *trd; #endif Cls *res; bytes = bytes_clause (ps, size, learned); tmp = new (ps, bytes); #ifdef TRACE if (ps->trace) { trd = tmp; if (learned) trd->idx = LIDX2IDX (ps->lhead - ps->lclauses); else trd->idx = OIDX2IDX (ps->ohead - ps->oclauses); res = trd->cls; } else #endif res = tmp; res->size = size; res->learned = learned; res->collect = 0; #ifndef NDEBUG res->connected = 0; #endif res->locked = 0; res->used = 0; #ifdef TRACE res->core = 0; res->collected = 0; #endif if (learned && size > 2) { Act * p = CLS2ACT (res); *p = ps->cinc; } return res; } static void delete_clause (PS * ps, Cls * c) { size_t bytes; #ifdef TRACE Trd *trd; #endif bytes = bytes_clause (ps, c->size, c->learned); #ifdef TRACE if (ps->trace) { trd = CLS2TRD (c); delete (ps, trd, bytes); } else #endif delete (ps, c, bytes); } static void delete_clauses (PS * ps) { Cls **p; for (p = SOC; p != EOC; p = NXC (p)) if (*p) delete_clause (ps, *p); DELETEN (ps->oclauses, ps->eoo - ps->oclauses); DELETEN (ps->lclauses, ps->EOL - ps->lclauses); ps->ohead = ps->eoo = ps->lhead = ps->EOL = 0; } #ifdef TRACE static void delete_zhain (PS * ps, Zhn * zhain) { const Znt *p, *znt; assert (zhain); znt = zhain->znt; for (p = znt; *p; p++) ; delete (ps, zhain, sizeof (Zhn) + (p - znt) + 1); } static void delete_zhains (PS * ps) { Zhn **p, *z; for (p = ps->zhains; p < ps->zhead; p++) if ((z = *p)) delete_zhain (ps, z); DELETEN (ps->zhains, ps->eoz - ps->zhains); ps->eoz = ps->zhead = 0; } #endif #ifdef NO_BINARY_CLAUSES static void lrelease (PS * ps, Ltk * stk) { if (stk->start) DELETEN (stk->start, (1 << (stk->ldsize))); memset (stk, 0, sizeof (*stk)); } #endif #ifndef NADC static unsigned llength (Lit ** a) { Lit ** p; for (p = a; *p; p++) ; return p - a; } static void resetadoconflict (PS * ps) { assert (ps->adoconflict); delete_clause (ps->adoconflict); ps->adoconflict = 0; } static void reset_ados (PS * ps) { Lit *** p; for (p = ps->ados; p < ps->hados; p++) DELETEN (*p, llength (*p) + 1); DELETEN (ps->ados, ps->eados - ps->ados); ps->hados = ps->eados = 0; DELETEN (ps->adotab, ps->szadotab); ps->szadotab = ps->nadotab = 0; if (ps->adoconflict) resetadoconflict (ps); ps->adoconflicts = 0; ps->adoconflictlimit = UINT_MAX; ps->adodisabled = 0; } #endif static void reset (PS * ps) { ABORTIF (!ps || ps->state == RESET, "API usage: reset without initialization"); delete_clauses (ps); #ifdef TRACE delete_zhains (ps); #endif #ifdef NO_BINARY_CLAUSES { unsigned i; for (i = 2; i <= 2 * ps->max_var + 1; i++) lrelease (ps, ps->impls + i); } #endif #ifndef NADC reset_ados (ps); #endif #ifndef NFL DELETEN (ps->saved, ps->saved_size); #endif DELETEN (ps->htps, 2 * ps->size_vars); #ifndef NDSC DELETEN (ps->dhtps, 2 * ps->size_vars); #endif DELETEN (ps->impls, 2 * ps->size_vars); DELETEN (ps->lits, 2 * ps->size_vars); DELETEN (ps->jwh, 2 * ps->size_vars); DELETEN (ps->vars, ps->size_vars); DELETEN (ps->rnks, ps->size_vars); DELETEN (ps->trail, ps->eot - ps->trail); DELETEN (ps->heap, ps->eoh - ps->heap); DELETEN (ps->als, ps->eoals - ps->als); DELETEN (ps->CLS, ps->eocls - ps->CLS); DELETEN (ps->rils, ps->eorils - ps->rils); DELETEN (ps->cils, ps->eocils - ps->cils); DELETEN (ps->fals, ps->eofals - ps->fals); DELETEN (ps->mass, ps->szmass); DELETEN (ps->mssass, ps->szmssass); DELETEN (ps->mcsass, ps->szmcsass); DELETEN (ps->humus, ps->szhumus); DELETEN (ps->added, ps->eoa - ps->added); DELETEN (ps->marked, ps->eom - ps->marked); DELETEN (ps->dfs, ps->eod - ps->dfs); DELETEN (ps->resolved, ps->eor - ps->resolved); DELETEN (ps->levels, ps->eolevels - ps->levels); DELETEN (ps->dused, ps->eodused - ps->dused); DELETEN (ps->buffer, ps->eob - ps->buffer); DELETEN (ps->indices, ps->eoi - ps->indices); DELETEN (ps->soclauses, ps->eoso - ps->soclauses); delete_prefix (ps); delete (ps, ps->rline[0], ps->szrline); delete (ps, ps->rline[1], ps->szrline); assert (getenv ("LEAK") || !ps->current_bytes); /* found leak if failing */ #ifdef VISCORES pclose (ps->fviscores); #endif if (ps->edelete) ps->edelete (ps->emgr, ps, sizeof *ps); else free (ps); } inline static void tpush (PS * ps, Lit * lit) { assert (ps->lits < lit && lit <= ps->lits + 2* ps->max_var + 1); if (ps->thead == ps->eot) { unsigned ttail2count = ps->ttail2 - ps->trail; unsigned ttailcount = ps->ttail - ps->trail; #ifndef NADC unsigned ttailadocount = ps->ttailado - ps->trail; #endif ENLARGE (ps->trail, ps->thead, ps->eot); ps->ttail = ps->trail + ttailcount; ps->ttail2 = ps->trail + ttail2count; #ifndef NADC ps->ttailado = ps->trail + ttailadocount; #endif } *ps->thead++ = lit; } static void assign_reason (PS * ps, Var * v, Cls * reason) { #if defined(NO_BINARY_CLAUSES) && !defined(NDEBUG) assert (reason != &ps->impl); #else (void) ps; #endif v->reason = reason; } static void assign_phase (PS * ps, Lit * lit) { unsigned new_phase, idx; Var * v = LIT2VAR (lit); #ifndef NFL /* In 'simplifying' mode we only need to keep 'min_flipped' up to date if * we force assignments on the top level. The other assignments will be * undone and thus we can keep the old saved value of the phase. */ if (!ps->LEVEL || !ps->simplifying) #endif { new_phase = (LIT2SGN (lit) > 0); if (v->assigned) { ps->sdflips -= ps->sdflips/FFLIPPED; if (new_phase != v->phase) { assert (FFLIPPEDPREC >= FFLIPPED); ps->sdflips += FFLIPPEDPREC / FFLIPPED; ps->flips++; idx = LIT2IDX (lit); if (idx < ps->min_flipped) ps->min_flipped = idx; NOLOG (picosat_fprintf (ps->out, "%sflipped %d\n", ps->prefix, LIT2INT (lit))); } } v->phase = new_phase; v->assigned = 1; } lit->val = TRUE; NOTLIT (lit)->val = FALSE; } inline static void assign (PS * ps, Lit * lit, Cls * reason) { Var * v = LIT2VAR (lit); assert (lit->val == UNDEF); #ifdef STATS ps->assignments++; #endif v->level = ps->LEVEL; assign_phase (ps, lit); assign_reason (ps, v, reason); tpush (ps, lit); } inline static int cmp_added (PS * ps, Lit * k, Lit * l) { Val a = k->val, b = l->val; Var *u, *v; int res; if (a == UNDEF && b != UNDEF) return -1; if (a != UNDEF && b == UNDEF) return 1; u = LIT2VAR (k); v = LIT2VAR (l); if (a != UNDEF) { assert (b != UNDEF); res = v->level - u->level; if (res) return res; /* larger level first */ } res = cmpflt (VAR2RNK (u)->score, VAR2RNK (v)->score); if (res) return res; /* smaller activity first */ return u - v; /* smaller index first */ } static void sorttwolits (Lit ** v) { Lit * a = v[0], * b = v[1]; assert (a != b); if (a < b) return; v[0] = b; v[1] = a; } inline static void sortlits (PS * ps, Lit ** v, unsigned size) { if (size == 2) sorttwolits (v); /* same order with and with out 'NO_BINARY_CLAUSES' */ else SORT (Lit *, cmp_added, v, size); } #ifdef NO_BINARY_CLAUSES static Cls * setimpl (PS * ps, Lit * a, Lit * b) { assert (!ps->implvalid); assert (ps->impl.size == 2); ps->impl.lits[0] = a; ps->impl.lits[1] = b; sorttwolits (ps->impl.lits); ps->implvalid = 1; return &ps->impl; } static void resetimpl (PS * ps) { ps->implvalid = 0; } static Cls * setcimpl (PS * ps, Lit * a, Lit * b) { assert (!ps->cimplvalid); assert (ps->cimpl.size == 2); ps->cimpl.lits[0] = a; ps->cimpl.lits[1] = b; sorttwolits (ps->cimpl.lits); ps->cimplvalid = 1; return &ps->cimpl; } static void resetcimpl (PS * ps) { assert (ps->cimplvalid); ps->cimplvalid = 0; } #endif static int cmp_ptr (PS * ps, void *l, void *k) { (void) ps; return ((char*)l) - (char*)k; /* arbitrarily already reverse */ } static int cmp_rnk (Rnk * r, Rnk * s) { if (!r->moreimportant && s->moreimportant) return -1; if (r->moreimportant && !s->moreimportant) return 1; if (!r->lessimportant && s->lessimportant) return 1; if (r->lessimportant && !s->lessimportant) return -1; if (r->score < s->score) return -1; if (r->score > s->score) return 1; return -cmp_ptr (0, r, s); } static void hup (PS * ps, Rnk * v) { int upos, vpos; Rnk *u; #ifndef NFL assert (!ps->simplifying); #endif vpos = v->pos; assert (0 < vpos); assert (vpos < ps->hhead - ps->heap); assert (ps->heap[vpos] == v); while (vpos > 1) { upos = vpos / 2; u = ps->heap[upos]; if (cmp_rnk (u, v) > 0) break; ps->heap[vpos] = u; u->pos = vpos; vpos = upos; } ps->heap[vpos] = v; v->pos = vpos; } static Cls *add_simplified_clause (PS *, int); inline static void add_antecedent (PS * ps, Cls * c) { assert (c); #ifdef NO_BINARY_CLAUSES if (ISLITREASON (c)) return; if (c == &ps->impl) return; #elif defined(STATS) && defined(TRACE) ps->antecedents++; #endif if (ps->rhead == ps->eor) ENLARGE (ps->resolved, ps->rhead, ps->eor); assert (ps->rhead < ps->eor); *ps->rhead++ = c; } #ifdef TRACE #ifdef NO_BINARY_CLAUSES #error "can not combine TRACE and NO_BINARY_CLAUSES" #endif #endif /* TRACE */ static void add_lit (PS * ps, Lit * lit) { assert (lit); if (ps->ahead == ps->eoa) ENLARGE (ps->added, ps->ahead, ps->eoa); *ps->ahead++ = lit; } static void push_var_as_marked (PS * ps, Var * v) { if (ps->mhead == ps->eom) ENLARGE (ps->marked, ps->mhead, ps->eom); *ps->mhead++ = v; } static void mark_var (PS * ps, Var * v) { assert (!v->mark); v->mark = 1; push_var_as_marked (ps, v); } #ifdef NO_BINARY_CLAUSES static Cls * impl2reason (PS * ps, Lit * lit) { Lit * other; Cls * res; other = ps->impl.lits[0]; if (lit == other) other = ps->impl.lits[1]; assert (other->val == FALSE); res = LIT2REASON (NOTLIT (other)); resetimpl (ps); return res; } #endif /* Whenever we have a top level derived unit we really should derive a unit * clause otherwise the resolutions in 'add_simplified_clause' become * incorrect. */ static Cls * resolve_top_level_unit (PS * ps, Lit * lit, Cls * reason) { unsigned count_resolved; Lit **p, **eol, *other; Var *u, *v; assert (ps->rhead == ps->resolved); assert (ps->ahead == ps->added); add_lit (ps, lit); add_antecedent (ps, reason); count_resolved = 1; v = LIT2VAR (lit); eol = end_of_lits (reason); for (p = reason->lits; p < eol; p++) { other = *p; u = LIT2VAR (other); if (u == v) continue; add_antecedent (ps, u->reason); count_resolved++; } /* Some of the literals could be assumptions. If at least one * variable is not an assumption, we should resolve. */ if (count_resolved >= 2) { #ifdef NO_BINARY_CLAUSES if (reason == &ps->impl) resetimpl (ps); #endif reason = add_simplified_clause (ps, 1); #ifdef NO_BINARY_CLAUSES if (reason->size == 2) { assert (reason == &ps->impl); reason = impl2reason (ps, lit); } #endif assign_reason (ps, v, reason); } else { ps->ahead = ps->added; ps->rhead = ps->resolved; } return reason; } static void fixvar (PS * ps, Var * v) { Rnk * r; assert (VAR2LIT (v) != UNDEF); assert (!v->level); ps->fixed++; r = VAR2RNK (v); r->score = INFFLT; #ifndef NFL if (ps->simplifying) return; #endif if (!r->pos) return; hup (ps, r); } static void use_var (PS * ps, Var * v) { if (v->used) return; v->used = 1; ps->vused++; } static void assign_forced (PS * ps, Lit * lit, Cls * reason) { Var *v; assert (reason); assert (lit->val == UNDEF); #ifdef STATS ps->FORCED++; #endif assign (ps, lit, reason); #ifdef NO_BINARY_CLAUSES assert (reason != &ps->impl); if (ISLITREASON (reason)) { reason = setimpl (ps, lit, NOTLIT (REASON2LIT (reason))); assert (reason); } #endif LOG ( picosat_fprintf (ps->out, "%sassign %d at level %d by ", ps->prefix, LIT2INT (lit), ps->LEVEL); dumpclsnl (ps, reason)); v = LIT2VAR (lit); if (!ps->LEVEL) use_var (ps, v); if (!ps->LEVEL && reason->size > 1) { reason = resolve_top_level_unit (ps, lit, reason); assert (reason); } #ifdef NO_BINARY_CLAUSES if (ISLITREASON (reason) || reason == &ps->impl) { /* DO NOTHING */ } else #endif { assert (!reason->locked); reason->locked = 1; if (reason->learned && reason->size > 2) ps->llocked++; } #ifdef NO_BINARY_CLAUSES if (reason == &ps->impl) resetimpl (ps); #endif if (!ps->LEVEL) fixvar (ps, v); } #ifdef NO_BINARY_CLAUSES static void lpush (PS * ps, Lit * lit, Cls * c) { int pos = (c->lits[0] == lit); Ltk * s = LIT2IMPLS (lit); unsigned oldsize, newsize; assert (c->size == 2); if (!s->start) { assert (!s->count); assert (!s->ldsize); NEWN (s->start, 1); } else { oldsize = (1 << (s->ldsize)); assert (s->count <= oldsize); if (s->count == oldsize) { newsize = 2 * oldsize; RESIZEN (s->start, oldsize, newsize); s->ldsize++; } } s->start[s->count++] = c->lits[pos]; } #endif static void connect_head_tail (PS * ps, Lit * lit, Cls * c) { Cls ** s; assert (c->size >= 1); if (c->size == 2) { #ifdef NO_BINARY_CLAUSES lpush (ps, lit, c); return; #else s = LIT2IMPLS (lit); #endif } else s = LIT2HTPS (lit); if (c->lits[0] != lit) { assert (c->size >= 2); assert (c->lits[1] == lit); c->next[1] = *s; } else c->next[0] = *s; *s = c; } #ifdef TRACE static void zpush (PS * ps, Zhn * zhain) { assert (ps->trace); if (ps->zhead == ps->eoz) ENLARGE (ps->zhains, ps->zhead, ps->eoz); *ps->zhead++ = zhain; } static int cmp_resolved (PS * ps, Cls * c, Cls * d) { #ifndef NDEBUG assert (ps->trace); #else (void) ps; #endif return CLS2IDX (c) - CLS2IDX (d); } static void bpushc (PS * ps, unsigned char ch) { if (ps->bhead == ps->eob) ENLARGE (ps->buffer, ps->bhead, ps->eob); *ps->bhead++ = ch; } static void bpushu (PS * ps, unsigned u) { while (u & ~0x7f) { bpushc (ps, u | 0x80); u >>= 7; } bpushc (ps, u); } static void bpushd (PS * ps, unsigned prev, unsigned this) { unsigned delta; assert (prev < this); delta = this - prev; bpushu (ps, delta); } static void add_zhain (PS * ps) { unsigned prev, this, count, rcount; Cls **p, *c; Zhn *res; assert (ps->trace); assert (ps->bhead == ps->buffer); assert (ps->rhead > ps->resolved); rcount = ps->rhead - ps->resolved; SORT (Cls *, cmp_resolved, ps->resolved, rcount); prev = 0; for (p = ps->resolved; p < ps->rhead; p++) { c = *p; this = CLS2TRD (c)->idx; bpushd (ps, prev, this); prev = this; } bpushc (ps, 0); count = ps->bhead - ps->buffer; res = new (ps, sizeof (Zhn) + count); res->core = 0; res->ref = 0; memcpy (res->znt, ps->buffer, count); ps->bhead = ps->buffer; #ifdef STATS ps->znts += count - 1; #endif zpush (ps, res); } #endif static void add_resolved (PS * ps, int learned) { #if defined(STATS) || defined(TRACE) Cls **p, *c; for (p = ps->resolved; p < ps->rhead; p++) { c = *p; if (c->used) continue; c->used = 1; if (c->size <= 2) continue; #ifdef STATS if (c->learned) ps->llused++; else ps->loused++; #endif } #endif #ifdef TRACE if (learned && ps->trace) add_zhain (ps); #else (void) learned; #endif ps->rhead = ps->resolved; } static void incjwh (PS * ps, Cls * c) { Lit **p, *lit, ** eol; Flt * f, inc, sum; unsigned size = 0; Var * v; Val val; eol = end_of_lits (c); for (p = c->lits; p < eol; p++) { lit = *p; val = lit->val; if (val && ps->LEVEL > 0) { v = LIT2VAR (lit); if (v->level > 0) val = UNDEF; } if (val == TRUE) return; if (val != FALSE) size++; } inc = base2flt (1, -size); for (p = c->lits; p < eol; p++) { lit = *p; f = LIT2JWH (lit); sum = addflt (*f, inc); *f = sum; } } static void write_rup_header (PS * ps, FILE * file) { char line[80]; int i; sprintf (line, "%%RUPD32 %u %u", ps->rupvariables, ps->rupclauses); picosat_fputs (line, file); for (i = 255 - strlen (line); i >= 0; i--) picosat_fputc (' ', file); picosat_fputc ('\n', file); fflush (file); } static Cls * add_simplified_clause (PS * ps, int learned) { unsigned num_true, num_undef, num_false, size, count_resolved; Lit **p, **q, *lit, ** end; unsigned litlevel, glue; Cls *res, * reason; int reentered; Val val; Var *v; #if !defined(NDEBUG) && defined(TRACE) unsigned idx; #endif reentered = 0; REENTER: size = ps->ahead - ps->added; add_resolved (ps, learned); if (learned) { ps->ladded++; ps->llitsadded += size; if (size > 2) { ps->lladded++; ps->nlclauses++; ps->llits += size; } } else { ps->oadded++; if (size > 2) { ps->loadded++; ps->noclauses++; ps->olits += size; } } ps->addedclauses++; assert (ps->addedclauses == ps->ladded + ps->oadded); #ifdef NO_BINARY_CLAUSES if (size == 2) res = setimpl (ps, ps->added[0], ps->added[1]); else #endif { sortlits (ps, ps->added, size); if (learned) { if (ps->lhead == ps->EOL) { ENLARGE (ps->lclauses, ps->lhead, ps->EOL); /* A very difficult to find bug, which only occurs if the * learned clauses stack is immediately allocated before the * original clauses stack without padding. In this case, we * have 'SOC == EOC', which terminates all loops using the * idiom 'for (p = SOC; p != EOC; p = NXC(p))' immediately. * Unfortunately this occurred in 'fix_clause_lits' after * using a recent version of the memory allocator of 'Google' * perftools in the context of one large benchmark for * our SMT solver 'Boolector'. */ if (ps->EOL == ps->oclauses) ENLARGE (ps->lclauses, ps->lhead, ps->EOL); } #if !defined(NDEBUG) && defined(TRACE) idx = LIDX2IDX (ps->lhead - ps->lclauses); #endif } else { if (ps->ohead == ps->eoo) { ENLARGE (ps->oclauses, ps->ohead, ps->eoo); if (ps->EOL == ps->oclauses) ENLARGE (ps->oclauses, ps->ohead, ps->eoo); /* ditto */ } #if !defined(NDEBUG) && defined(TRACE) idx = OIDX2IDX (ps->ohead - ps->oclauses); #endif } assert (ps->EOL != ps->oclauses); /* ditto */ res = new_clause (ps, size, learned); glue = 0; if (learned) { assert (ps->dusedhead == ps->dused); for (p = ps->added; p < ps->ahead; p++) { lit = *p; if (lit->val) { litlevel = LIT2VAR (lit)->level; assert (litlevel <= ps->LEVEL); while (ps->levels + litlevel >= ps->levelshead) { if (ps->levelshead >= ps->eolevels) ENLARGE (ps->levels, ps->levelshead, ps->eolevels); assert (ps->levelshead < ps->eolevels); *ps->levelshead++ = 0; } if (!ps->levels[litlevel]) { if (ps->dusedhead >= ps->eodused) ENLARGE (ps->dused, ps->dusedhead, ps->eodused); assert (ps->dusedhead < ps->eodused); *ps->dusedhead++ = litlevel; ps->levels[litlevel] = 1; glue++; } } else glue++; } while (ps->dusedhead > ps->dused) { litlevel = *--ps->dusedhead; assert (ps->levels + litlevel < ps->levelshead); assert (ps->levels[litlevel]); ps->levels[litlevel] = 0; } } assert (glue <= MAXGLUE); res->glue = glue; #if !defined(NDEBUG) && defined(TRACE) if (ps->trace) assert (CLS2IDX (res) == idx); #endif if (learned) *ps->lhead++ = res; else *ps->ohead++ = res; #if !defined(NDEBUG) && defined(TRACE) if (ps->trace && learned) assert (ps->zhead - ps->zhains == ps->lhead - ps->lclauses); #endif assert (ps->lhead != ps->oclauses); /* ditto */ } if (learned && ps->rup) { if (!ps->rupstarted) { write_rup_header (ps, ps->rup); ps->rupstarted = 1; } } num_true = num_undef = num_false = 0; q = res->lits; for (p = ps->added; p < ps->ahead; p++) { lit = *p; *q++ = lit; if (learned && ps->rup) picosat_fprintf (ps->rup, "%d ", LIT2INT (lit)); val = lit->val; num_true += (val == TRUE); num_undef += (val == UNDEF); num_false += (val == FALSE); } assert (num_false + num_true + num_undef == size); if (learned && ps->rup) picosat_fputs ("0\n", ps->rup); ps->ahead = ps->added; /* reset */ if (!reentered) // TODO merge if (size > 0) { assert (size <= 2 || !reentered); // TODO remove connect_head_tail (ps, res->lits[0], res); if (size > 1) connect_head_tail (ps, res->lits[1], res); } if (size == 0) { if (!ps->mtcls) ps->mtcls = res; } #ifdef NO_BINARY_CLAUSES if (size != 2) #endif #ifndef NDEBUG res->connected = 1; #endif LOG ( picosat_fprintf (ps->out, "%s%s ", ps->prefix, learned ? "learned" : "original"); dumpclsnl (ps, res)); /* Shrink clause by resolving it against top level assignments. */ if (!ps->LEVEL && num_false > 0) { assert (ps->ahead == ps->added); assert (ps->rhead == ps->resolved); count_resolved = 1; add_antecedent (ps, res); end = end_of_lits (res); for (p = res->lits; p < end; p++) { lit = *p; v = LIT2VAR (lit); use_var (ps, v); if (lit->val == FALSE) { add_antecedent (ps, v->reason); count_resolved++; } else add_lit (ps, lit); } assert (count_resolved >= 2); learned = 1; #ifdef NO_BINARY_CLAUSES if (res == &ps->impl) resetimpl (ps); #endif reentered = 1; goto REENTER; /* and return simplified clause */ } if (!num_true && num_undef == 1) /* unit clause */ { lit = 0; for (p = res->lits; p < res->lits + size; p++) { if ((*p)->val == UNDEF) lit = *p; v = LIT2VAR (*p); use_var (ps, v); } assert (lit); reason = res; #ifdef NO_BINARY_CLAUSES if (size == 2) { Lit * other = res->lits[0]; if (other == lit) other = res->lits[1]; assert (other->val == FALSE); reason = LIT2REASON (NOTLIT (other)); } #endif assign_forced (ps, lit, reason); num_true++; } if (num_false == size && !ps->conflict) { #ifdef NO_BINARY_CLAUSES if (res == &ps->impl) ps->conflict = setcimpl (ps, res->lits[0], res->lits[1]); else #endif ps->conflict = res; } if (!learned && !num_true && num_undef) incjwh (ps, res); #ifdef NO_BINARY_CLAUSES if (res == &ps->impl) resetimpl (ps); #endif return res; } static int trivial_clause (PS * ps) { Lit **p, **q, *prev; Var *v; SORT (Lit *, cmp_ptr, ps->added, ps->ahead - ps->added); prev = 0; q = ps->added; for (p = q; p < ps->ahead; p++) { Lit *this = *p; v = LIT2VAR (this); if (prev == this) /* skip repeated literals */ continue; /* Top level satisfied ? */ if (this->val == TRUE && !v->level) return 1; if (prev == NOTLIT (this))/* found pair of dual literals */ return 1; *q++ = prev = this; } ps->ahead = q; /* shrink */ return 0; } static void simplify_and_add_original_clause (PS * ps) { #ifdef NO_BINARY_CLAUSES Cls * c; #endif if (trivial_clause (ps)) { ps->ahead = ps->added; if (ps->ohead == ps->eoo) ENLARGE (ps->oclauses, ps->ohead, ps->eoo); *ps->ohead++ = 0; ps->addedclauses++; ps->oadded++; } else { if (ps->CLS != ps->clshead) add_lit (ps, NOTLIT (ps->clshead[-1])); #ifdef NO_BINARY_CLAUSES c = #endif add_simplified_clause (ps, 0); #ifdef NO_BINARY_CLAUSES if (c == &ps->impl) assert (!ps->implvalid); #endif } } #ifndef NADC static void add_ado (PS * ps) { unsigned len = ps->ahead - ps->added; Lit ** ado, ** p, ** q, *lit; Var * v, * u; #ifdef TRACE assert (!ps->trace); #endif ABORTIF (ps->ados < ps->hados && llength (ps->ados[0]) != len, "internal: non matching all different constraint object lengths"); if (ps->hados == ps->eados) ENLARGE (ps->ados, ps->hados, ps->eados); NEWN (ado, len + 1); *hados++ = ado; p = ps->added; q = ado; u = 0; while (p < ps->ahead) { lit = *p++; v = LIT2VAR (lit); ABORTIF (v->inado, "internal: variable in multiple all different objects"); v->inado = ado; if (!u && !lit->val) u = v; *q++ = lit; } assert (q == ado + len); *q++ = 0; /* TODO simply do a conflict test as in propado */ ABORTIF (!u, "internal: " "adding fully instantiated all different object not implemented yet"); assert (u); assert (u->inado == ado); assert (!u->ado); u->ado = ado; ps->ahead = ps->added; } #endif static void hdown (PS * ps, Rnk * r) { unsigned end, rpos, cpos, opos; Rnk *child, *other; assert (r->pos > 0); assert (ps->heap[r->pos] == r); end = ps->hhead - ps->heap; rpos = r->pos; for (;;) { cpos = 2 * rpos; if (cpos >= end) break; opos = cpos + 1; child = ps->heap[cpos]; if (cmp_rnk (r, child) < 0) { if (opos < end) { other = ps->heap[opos]; if (cmp_rnk (child, other) < 0) { child = other; cpos = opos; } } } else if (opos < end) { child = ps->heap[opos]; if (cmp_rnk (r, child) >= 0) break; cpos = opos; } else break; ps->heap[rpos] = child; child->pos = rpos; rpos = cpos; } r->pos = rpos; ps->heap[rpos] = r; } static Rnk * htop (PS * ps) { assert (ps->hhead > ps->heap + 1); return ps->heap[1]; } static Rnk * hpop (PS * ps) { Rnk *res, *last; unsigned end; assert (ps->hhead > ps->heap + 1); res = ps->heap[1]; res->pos = 0; end = --ps->hhead - ps->heap; if (end == 1) return res; last = ps->heap[end]; ps->heap[last->pos = 1] = last; hdown (ps, last); return res; } inline static void hpush (PS * ps, Rnk * r) { assert (!r->pos); if (ps->hhead == ps->eoh) ENLARGE (ps->heap, ps->hhead, ps->eoh); r->pos = ps->hhead++ - ps->heap; ps->heap[r->pos] = r; hup (ps, r); } static void fix_trail_lits (PS * ps, long delta) { Lit **p; for (p = ps->trail; p < ps->thead; p++) *p += delta; } #ifdef NO_BINARY_CLAUSES static void fix_impl_lits (PS * ps, long delta) { Ltk * s; Lit ** p; for (s = ps->impls + 2; s <= ps->impls + 2 * ps->max_var + 1; s++) for (p = s->start; p < s->start + s->count; p++) *p += delta; } #endif static void fix_clause_lits (PS * ps, long delta) { Cls **p, *clause; Lit **q, *lit, **eol; for (p = SOC; p != EOC; p = NXC (p)) { clause = *p; if (!clause) continue; q = clause->lits; eol = end_of_lits (clause); while (q < eol) { assert (q - clause->lits <= (int) clause->size); lit = *q; lit += delta; *q++ = lit; } } } static void fix_added_lits (PS * ps, long delta) { Lit **p; for (p = ps->added; p < ps->ahead; p++) *p += delta; } static void fix_assumed_lits (PS * ps, long delta) { Lit **p; for (p = ps->als; p < ps->alshead; p++) *p += delta; } static void fix_cls_lits (PS * ps, long delta) { Lit **p; for (p = ps->CLS; p < ps->clshead; p++) *p += delta; } static void fix_heap_rnks (PS * ps, long delta) { Rnk **p; for (p = ps->heap + 1; p < ps->hhead; p++) *p += delta; } #ifndef NADC static void fix_ado (long delta, Lit ** ado) { Lit ** p; for (p = ado; *p; p++) *p += delta; } static void fix_ados (PS * ps, long delta) { Lit *** p; for (p = ps->ados; p < ps->hados; p++) fix_ado (delta, *p); } #endif static void enlarge (PS * ps, unsigned new_size_vars) { long rnks_delta, lits_delta; Lit *old_lits = ps->lits; Rnk *old_rnks = ps->rnks; RESIZEN (ps->lits, 2 * ps->size_vars, 2 * new_size_vars); RESIZEN (ps->jwh, 2 * ps->size_vars, 2 * new_size_vars); RESIZEN (ps->htps, 2 * ps->size_vars, 2 * new_size_vars); #ifndef NDSC RESIZEN (ps->dhtps, 2 * ps->size_vars, 2 * new_size_vars); #endif RESIZEN (ps->impls, 2 * ps->size_vars, 2 * new_size_vars); RESIZEN (ps->vars, ps->size_vars, new_size_vars); RESIZEN (ps->rnks, ps->size_vars, new_size_vars); if ((lits_delta = ps->lits - old_lits)) { fix_trail_lits (ps, lits_delta); fix_clause_lits (ps, lits_delta); fix_added_lits (ps, lits_delta); fix_assumed_lits (ps, lits_delta); fix_cls_lits (ps, lits_delta); #ifdef NO_BINARY_CLAUSES fix_impl_lits (ps, lits_delta); #endif #ifndef NADC fix_ados (ps, lits_delta); #endif } if ((rnks_delta = ps->rnks - old_rnks)) { fix_heap_rnks (ps, rnks_delta); } assert (ps->mhead == ps->marked); ps->size_vars = new_size_vars; } static void unassign (PS * ps, Lit * lit) { Cls *reason; Var *v; Rnk *r; assert (lit->val == TRUE); LOG ( picosat_fprintf (ps->out, "%sunassign %d\n", ps->prefix, LIT2INT (lit))); v = LIT2VAR (lit); reason = v->reason; #ifdef NO_BINARY_CLAUSES assert (reason != &ps->impl); if (ISLITREASON (reason)) { /* DO NOTHING */ } else #endif if (reason) { assert (reason->locked); reason->locked = 0; if (reason->learned && reason->size > 2) { assert (ps->llocked > 0); ps->llocked--; } } lit->val = UNDEF; NOTLIT (lit)->val = UNDEF; r = VAR2RNK (v); if (!r->pos) hpush (ps, r); #ifndef NDSC { Cls * p, * next, ** q; q = LIT2DHTPS (lit); p = *q; *q = 0; while (p) { Lit * other = p->lits[0]; if (other == lit) { other = p->lits[1]; q = p->next + 1; } else { assert (p->lits[1] == lit); q = p->next; } next = *q; *q = *LIT2HTPS (other); *LIT2HTPS (other) = p; p = next; } } #endif #ifndef NADC if (v->adotabpos) { assert (ps->nadotab); assert (*v->adotabpos == v->ado); *v->adotabpos = 0; v->adotabpos = 0; ps->nadotab--; } #endif } static Cls * var2reason (PS * ps, Var * var) { Cls * res = var->reason; #ifdef NO_BINARY_CLAUSES Lit * this, * other; if (ISLITREASON (res)) { this = VAR2LIT (var); if (this->val == FALSE) this = NOTLIT (this); other = REASON2LIT (res); assert (other->val == TRUE); assert (this->val == TRUE); res = setimpl (ps, NOTLIT (other), this); } #else (void) ps; #endif return res; } static void mark_clause_to_be_collected (Cls * c) { assert (!c->collect); c->collect = 1; } static void undo (PS * ps, unsigned new_level) { Lit *lit; Var *v; while (ps->thead > ps->trail) { lit = *--ps->thead; v = LIT2VAR (lit); if (v->level == new_level) { ps->thead++; /* fix pre decrement */ break; } unassign (ps, lit); } ps->LEVEL = new_level; ps->ttail = ps->thead; ps->ttail2 = ps->thead; #ifndef NADC ps->ttailado = ps->thead; #endif #ifdef NO_BINARY_CLAUSES if (ps->conflict == &ps->cimpl) resetcimpl (ps); #endif #ifndef NADC if (ps->conflict && ps->conflict == ps->adoconflict) resetadoconflict (ps); #endif ps->conflict = ps->mtcls; if (ps->LEVEL < ps->adecidelevel) { assert (ps->als < ps->alshead); ps->adecidelevel = 0; ps->alstail = ps->als; } LOG ( picosat_fprintf (ps->out, "%sback to level %u\n", ps->prefix, ps->LEVEL)); } #ifndef NDEBUG static int clause_satisfied (Cls * c) { Lit **p, **eol, *lit; eol = end_of_lits (c); for (p = c->lits; p < eol; p++) { lit = *p; if (lit->val == TRUE) return 1; } return 0; } static void original_clauses_satisfied (PS * ps) { Cls **p, *c; for (p = ps->oclauses; p < ps->ohead; p++) { c = *p; if (!c) continue; if (c->learned) continue; assert (clause_satisfied (c)); } } static void assumptions_satisfied (PS * ps) { Lit *lit, ** p; for (p = ps->als; p < ps->alshead; p++) { lit = *p; assert (lit->val == TRUE); } } #endif static void sflush (PS * ps) { double now = picosat_time_stamp (); double delta = now - ps->entered; delta = (delta < 0) ? 0 : delta; ps->seconds += delta; ps->entered = now; } static double mb (PS * ps) { return ps->current_bytes / (double) (1 << 20); } static double avglevel (PS * ps) { return ps->decisions ? ps->levelsum / ps->decisions : 0.0; } static void rheader (PS * ps) { assert (ps->lastrheader <= ps->reports); if (ps->lastrheader == ps->reports) return; ps->lastrheader = ps->reports; picosat_fprintf (ps->out, "%s\n", ps->prefix); picosat_fprintf (ps->out, "%s %s\n", ps->prefix, ps->rline[0]); picosat_fprintf (ps->out, "%s %s\n", ps->prefix, ps->rline[1]); picosat_fprintf (ps->out, "%s\n", ps->prefix); } static unsigned dynamic_flips_per_assignment_per_mille (PS * ps) { assert (FFLIPPEDPREC >= 1000); return ps->sdflips / (FFLIPPEDPREC / 1000); } #ifdef NLUBY static int high_agility (PS * ps) { return dynamic_flips_per_assignment_per_mille (ps) >= 200; } static int very_high_agility (PS * ps) { return dynamic_flips_per_assignment_per_mille (ps) >= 250; } #else static int medium_agility (PS * ps) { return dynamic_flips_per_assignment_per_mille (ps) >= 230; } #endif static void relemdata (PS * ps) { char *p; int x; if (ps->reports < 0) { /* strip trailing white space */ for (x = 0; x <= 1; x++) { p = ps->rline[x] + strlen (ps->rline[x]); while (p-- > ps->rline[x]) { if (*p != ' ') break; *p = 0; } } rheader (ps); } else picosat_fputc ('\n', ps->out); ps->RCOUNT = 0; } static void relemhead (PS * ps, const char * name, int fp, double val) { int x, y, len, size; const char *fmt; unsigned tmp, e; if (ps->reports < 0) { x = ps->RCOUNT & 1; y = (ps->RCOUNT / 2) * 12 + x * 6; if (ps->RCOUNT == 1) sprintf (ps->rline[1], "%6s", ""); len = strlen (name); while (ps->szrline <= len + y + 1) { size = ps->szrline ? 2 * ps->szrline : 128; ps->rline[0] = resize (ps, ps->rline[0], ps->szrline, size); ps->rline[1] = resize (ps, ps->rline[1], ps->szrline, size); ps->szrline = size; } fmt = (len <= 6) ? "%6s%10s" : "%-10s%4s"; sprintf (ps->rline[x] + y, fmt, name, ""); } else if (val < 0) { assert (fp); if (val > -100 && (tmp = val * 10.0 - 0.5) > -1000.0) { picosat_fprintf (ps->out, "-%4.1f ", -tmp / 10.0); } else { tmp = -val / 10.0 + 0.5; e = 1; while (tmp >= 100) { tmp /= 10; e++; } picosat_fprintf (ps->out, "-%2ue%u ", tmp, e); } } else { if (fp && val < 1000 && (tmp = val * 10.0 + 0.5) < 10000) { picosat_fprintf (ps->out, "%5.1f ", tmp / 10.0); } else if (!fp && (tmp = val) < 100000) { picosat_fprintf (ps->out, "%5u ", tmp); } else { tmp = val / 10.0 + 0.5; e = 1; while (tmp >= 1000) { tmp /= 10; e++; } picosat_fprintf (ps->out, "%3ue%u ", tmp, e); } } ps->RCOUNT++; } inline static void relem (PS * ps, const char *name, int fp, double val) { if (name) relemhead (ps, name, fp, val); else relemdata (ps); } static unsigned reduce_limit_on_lclauses (PS * ps) { unsigned res = ps->lreduce; res += ps->llocked; return res; } static void report (PS * ps, int replevel, char type) { int rounds; if (ps->verbosity < replevel) return; sflush (ps); if (!ps->reports) ps->reports = -1; for (rounds = (ps->reports < 0) ? 2 : 1; rounds; rounds--) { if (ps->reports >= 0) picosat_fprintf (ps->out, "%s%c ", ps->prefix, type); relem (ps, "seconds", 1, ps->seconds); relem (ps, "level", 1, avglevel (ps)); assert (ps->fixed <= ps->max_var); relem (ps, "variables", 0, ps->max_var - ps->fixed); relem (ps, "used", 1, PERCENT (ps->vused, ps->max_var)); relem (ps, "original", 0, ps->noclauses); relem (ps, "conflicts", 0, ps->conflicts); // relem (ps, "decisions", 0, ps->decisions); // relem (ps, "conf/dec", 1, PERCENT(ps->conflicts,ps->decisions)); // relem (ps, "limit", 0, reduce_limit_on_lclauses (ps)); relem (ps, "learned", 0, ps->nlclauses); // relem (ps, "limit", 1, PERCENT (ps->nlclauses, reduce_limit_on_lclauses (ps))); relem (ps, "limit", 0, ps->lreduce); #ifdef STATS relem (ps, "learning", 1, PERCENT (ps->llused, ps->lladded)); #endif relem (ps, "agility", 1, dynamic_flips_per_assignment_per_mille (ps) / 10.0); // relem (ps, "original", 0, ps->noclauses); relem (ps, "MB", 1, mb (ps)); // relem (ps, "lladded", 0, ps->lladded); // relem (ps, "llused", 0, ps->llused); relem (ps, 0, 0, 0); ps->reports++; } /* Adapt this to the number of rows in your terminal. */ #define ROWS 25 if (ps->reports % (ROWS - 3) == (ROWS - 4)) rheader (ps); fflush (ps->out); } static int bcp_queue_is_empty (PS * ps) { if (ps->ttail != ps->thead) return 0; if (ps->ttail2 != ps->thead) return 0; #ifndef NADC if (ps->ttailado != ps->thead) return 0; #endif return 1; } static int satisfied (PS * ps) { assert (!ps->mtcls); assert (!ps->failed_assumption); if (ps->alstail < ps->alshead) return 0; assert (!ps->conflict); assert (bcp_queue_is_empty (ps)); return ps->thead == ps->trail + ps->max_var; /* all assigned */ } static void vrescore (PS * ps) { Rnk *p, *eor = ps->rnks + ps->max_var; for (p = ps->rnks + 1; p <= eor; p++) if (p->score != INFFLT) p->score = mulflt (p->score, ps->ilvinc); ps->vinc = mulflt (ps->vinc, ps->ilvinc);; #ifdef VISCORES ps->nvinc = mulflt (ps->nvinc, ps->lscore);; #endif } static void inc_score (PS * ps, Var * v) { Flt score; Rnk *r; #ifndef NFL if (ps->simplifying) return; #endif if (!v->level) return; if (v->internal) return; r = VAR2RNK (v); score = r->score; assert (score != INFFLT); score = addflt (score, ps->vinc); assert (score < INFFLT); r->score = score; if (r->pos > 0) hup (ps, r); if (score > ps->lscore) vrescore (ps); } static void inc_activity (PS * ps, Cls * c) { Act *p; if (!c->learned) return; if (c->size <= 2) return; p = CLS2ACT (c); *p = addflt (*p, ps->cinc); } static unsigned hashlevel (unsigned l) { return 1u << (l & 31); } static void push (PS * ps, Var * v) { if (ps->dhead == ps->eod) ENLARGE (ps->dfs, ps->dhead, ps->eod); *ps->dhead++ = v; } static Var * pop (PS * ps) { assert (ps->dfs < ps->dhead); return *--ps->dhead; } static void analyze (PS * ps) { unsigned open, minlevel, siglevels, l, old, i, orig; Lit *this, *other, **p, **q, **eol; Var *v, *u, **m, *start, *uip; Cls *c; assert (ps->conflict); assert (ps->ahead == ps->added); assert (ps->mhead == ps->marked); assert (ps->rhead == ps->resolved); /* First, search for First UIP variable and mark all resolved variables. * At the same time determine the minimum decision level involved. * Increase activities of resolved variables. */ q = ps->thead; open = 0; minlevel = ps->LEVEL; siglevels = 0; uip = 0; c = ps->conflict; for (;;) { add_antecedent (ps, c); inc_activity (ps, c); eol = end_of_lits (c); for (p = c->lits; p < eol; p++) { other = *p; if (other->val == TRUE) continue; assert (other->val == FALSE); u = LIT2VAR (other); if (u->mark) continue; u->mark = 1; inc_score (ps, u); use_var (ps, u); if (u->level == ps->LEVEL) { open++; } else { push_var_as_marked (ps, u); if (u->level) { /* The statistics counter 'nonminimizedllits' sums up the * number of literals that would be added if only the * 'first UIP' scheme for learned clauses would be used * and no clause minimization. */ ps->nonminimizedllits++; if (u->level < minlevel) minlevel = u->level; siglevels |= hashlevel (u->level); } else { assert (!u->level); assert (u->reason); } } } do { if (q == ps->trail) { uip = 0; goto DONE_FIRST_UIP; } this = *--q; uip = LIT2VAR (this); } while (!uip->mark); uip->mark = 0; c = var2reason (ps, uip); #ifdef NO_BINARY_CLAUSES if (c == &ps->impl) resetimpl (ps); #endif open--; if ((!open && ps->LEVEL) || !c) break; assert (c); } DONE_FIRST_UIP: if (uip) { assert (ps->LEVEL); this = VAR2LIT (uip); this += (this->val == TRUE); ps->nonminimizedllits++; ps->minimizedllits++; add_lit (ps, this); #ifdef STATS if (uip->reason) ps->uips++; #endif } else assert (!ps->LEVEL); /* Second, try to mark more intermediate variables, with the goal to * minimize the conflict clause. This is a DFS from already marked * variables backward through the implication graph. It tries to reach * other marked variables. If the search reaches an unmarked decision * variable or a variable assigned below the minimum level of variables in * the first uip learned clause or a level on which no variable has been * marked, then the variable from which the DFS is started is not * redundant. Otherwise the start variable is redundant and will * eventually be removed from the learned clause in step 4. We initially * implemented BFS, but then profiling revelead that this step is a bottle * neck for certain incremental applications. After switching to DFS this * hot spot went away. */ orig = ps->mhead - ps->marked; for (i = 0; i < orig; i++) { start = ps->marked[i]; assert (start->mark); assert (start != uip); assert (start->level < ps->LEVEL); if (!start->reason) continue; old = ps->mhead - ps->marked; assert (ps->dhead == ps->dfs); push (ps, start); while (ps->dhead > ps->dfs) { u = pop (ps); assert (u->mark); c = var2reason (ps, u); #ifdef NO_BINARY_CLAUSES if (c == &ps->impl) resetimpl (ps); #endif if (!c || ((l = u->level) && (l < minlevel || ((hashlevel (l) & ~siglevels))))) { while (ps->mhead > ps->marked + old) /* reset all marked */ (*--ps->mhead)->mark = 0; ps->dhead = ps->dfs; /* and DFS stack */ break; } eol = end_of_lits (c); for (p = c->lits; p < eol; p++) { v = LIT2VAR (*p); if (v->mark) continue; mark_var (ps, v); push (ps, v); } } } for (m = ps->marked; m < ps->mhead; m++) { v = *m; assert (v->mark); assert (!v->resolved); use_var (ps, v); c = var2reason (ps, v); if (!c) continue; #ifdef NO_BINARY_CLAUSES if (c == &ps->impl) resetimpl (ps); #endif eol = end_of_lits (c); for (p = c->lits; p < eol; p++) { other = *p; u = LIT2VAR (other); if (!u->level) continue; if (!u->mark) /* 'MARKTEST' */ break; } if (p != eol) continue; add_antecedent (ps, c); v->resolved = 1; } for (m = ps->marked; m < ps->mhead; m++) { v = *m; assert (v->mark); v->mark = 0; if (v->resolved) { v->resolved = 0; continue; } this = VAR2LIT (v); if (this->val == TRUE) this++; /* actually NOTLIT */ add_lit (ps, this); ps->minimizedllits++; } assert (ps->ahead <= ps->eoa); assert (ps->rhead <= ps->eor); ps->mhead = ps->marked; } static void fanalyze (PS * ps) { Lit ** eol, ** p, * lit; Cls * c, * reason; Var * v, * u; int next; double start = picosat_time_stamp (); assert (ps->failed_assumption); assert (ps->failed_assumption->val == FALSE); v = LIT2VAR (ps->failed_assumption); reason = var2reason (ps, v); if (!reason) return; #ifdef NO_BINARY_CLAUSES if (reason == &ps->impl) resetimpl (ps); #endif eol = end_of_lits (reason); for (p = reason->lits; p != eol; p++) { lit = *p; u = LIT2VAR (lit); if (u == v) continue; if (u->reason) break; } if (p == eol) return; assert (ps->ahead == ps->added); assert (ps->mhead == ps->marked); assert (ps->rhead == ps->resolved); next = 0; mark_var (ps, v); add_lit (ps, NOTLIT (ps->failed_assumption)); do { v = ps->marked[next++]; use_var (ps, v); if (v->reason) { reason = var2reason (ps, v); #ifdef NO_BINARY_CLAUSES if (reason == &ps->impl) resetimpl (ps); #endif add_antecedent (ps, reason); eol = end_of_lits (reason); for (p = reason->lits; p != eol; p++) { lit = *p; u = LIT2VAR (lit); if (u == v) continue; if (u->mark) continue; mark_var (ps, u); } } else { lit = VAR2LIT (v); if (lit->val == TRUE) lit = NOTLIT (lit); add_lit (ps, lit); } } while (ps->marked + next < ps->mhead); c = add_simplified_clause (ps, 1); v = LIT2VAR (ps->failed_assumption); reason = v->reason; #ifdef NO_BINARY_CLAUSES if (!ISLITREASON (reason)) #endif { assert (reason->locked); reason->locked = 0; if (reason->learned && reason->size > 2) { assert (ps->llocked > 0); ps->llocked--; } } #ifdef NO_BINARY_CLAUSES if (c == &ps->impl) { c = impl2reason (ps, NOTLIT (ps->failed_assumption)); } else #endif { assert (c->learned); assert (!c->locked); c->locked = 1; if (c->size > 2) { ps->llocked++; assert (ps->llocked > 0); } } v->reason = c; while (ps->mhead > ps->marked) (*--ps->mhead)->mark = 0; if (ps->verbosity) picosat_fprintf (ps->out, "%sfanalyze took %.1f seconds\n", ps->prefix, picosat_time_stamp () - start); } /* Propagate assignment of 'this' to 'FALSE' by visiting all binary clauses in * which 'this' occurs. */ inline static void prop2 (PS * ps, Lit * this) { #ifdef NO_BINARY_CLAUSES Lit ** l, ** start; Ltk * lstk; #else Cls * c, ** p; Cls * next; #endif Lit * other; Val tmp; assert (this->val == FALSE); #ifdef NO_BINARY_CLAUSES lstk = LIT2IMPLS (this); start = lstk->start; l = start + lstk->count; while (l != start) { /* The counter 'visits' is the number of clauses that are * visited during propagations of assignments. */ ps->visits++; #ifdef STATS ps->bvisits++; #endif other = *--l; tmp = other->val; if (tmp == TRUE) { #ifdef STATS ps->othertrue++; ps->othertrue2++; if (LIT2VAR (other)->level < ps->LEVEL) ps->othertrue2u++; #endif continue; } if (tmp != FALSE) { assign_forced (ps, other, LIT2REASON (NOTLIT(this))); continue; } if (ps->conflict == &ps->cimpl) resetcimpl (ps); ps->conflict = setcimpl (ps, this, other); } #else /* Traverse all binary clauses with 'this'. Head/Tail pointers for binary * clauses do not have to be modified here. */ p = LIT2IMPLS (this); for (c = *p; c; c = next) { ps->visits++; #ifdef STATS ps->bvisits++; #endif assert (!c->collect); #ifdef TRACE assert (!c->collected); #endif assert (c->size == 2); other = c->lits[0]; if (other == this) { next = c->next[0]; other = c->lits[1]; } else next = c->next[1]; tmp = other->val; if (tmp == TRUE) { #ifdef STATS ps->othertrue++; ps->othertrue2++; if (LIT2VAR (other)->level < ps->LEVEL) ps->othertrue2u++; #endif continue; } if (tmp == FALSE) ps->conflict = c; else assign_forced (ps, other, c); /* unit clause */ } #endif /* !defined(NO_BINARY_CLAUSES) */ } #ifndef NDSC static int should_disconnect_head_tail (PS * ps, Lit * lit) { unsigned litlevel; Var * v; assert (lit->val == TRUE); v = LIT2VAR (lit); litlevel = v->level; if (!litlevel) return 1; #ifndef NFL if (ps->simplifying) return 0; #endif return litlevel < ps->LEVEL; } #endif inline static void propl (PS * ps, Lit * this) { Lit **l, *other, *prev, *new_lit, **eol; Cls *next, **htp_ptr, **new_htp_ptr; Cls *c; #ifdef STATS unsigned size; #endif htp_ptr = LIT2HTPS (this); assert (this->val == FALSE); /* Traverse all non binary clauses with 'this'. Head/Tail pointers are * updated as well. */ for (c = *htp_ptr; c; c = next) { ps->visits++; #ifdef STATS size = c->size; assert (size >= 3); ps->traversals++; /* other is dereferenced at least */ if (size == 3) ps->tvisits++; else if (size >= 4) { ps->lvisits++; ps->ltraversals++; } #endif #ifdef TRACE assert (!c->collected); #endif assert (c->size > 0); other = c->lits[0]; if (other != this) { assert (c->size != 1); c->lits[0] = this; c->lits[1] = other; next = c->next[1]; c->next[1] = c->next[0]; c->next[0] = next; } else if (c->size == 1) /* With assumptions we need to * traverse unit clauses as well. */ { assert (!ps->conflict); ps->conflict = c; break; } else { assert (other == this && c->size > 1); other = c->lits[1]; next = c->next[0]; } assert (other == c->lits[1]); assert (this == c->lits[0]); assert (next == c->next[0]); assert (!c->collect); if (other->val == TRUE) { #ifdef STATS ps->othertrue++; ps->othertruel++; #endif #ifndef NDSC if (should_disconnect_head_tail (ps, other)) { new_htp_ptr = LIT2DHTPS (other); c->next[0] = *new_htp_ptr; *new_htp_ptr = c; #ifdef STATS ps->othertruelu++; #endif *htp_ptr = next; continue; } #endif htp_ptr = c->next; continue; } l = c->lits + 1; eol = (Lit**) c->lits + c->size; prev = this; while (++l != eol) { #ifdef STATS if (size >= 3) { ps->traversals++; if (size > 3) ps->ltraversals++; } #endif new_lit = *l; *l = prev; prev = new_lit; if (new_lit->val != FALSE) break; } if (l == eol) { while (l > c->lits + 2) { new_lit = *--l; *l = prev; prev = new_lit; } assert (c->lits[0] == this); assert (other == c->lits[1]); if (other->val == FALSE) /* found conflict */ { assert (!ps->conflict); ps->conflict = c; return; } assign_forced (ps, other, c); /* unit clause */ htp_ptr = c->next; } else { assert (new_lit->val == TRUE || new_lit->val == UNDEF); c->lits[0] = new_lit; // *l = this; new_htp_ptr = LIT2HTPS (new_lit); c->next[0] = *new_htp_ptr; *new_htp_ptr = c; *htp_ptr = next; } } } #ifndef NADC static unsigned primes[] = { 996293, 330643, 753947, 500873 }; #define PRIMES ((sizeof primes)/sizeof *primes) static unsigned hash_ado (Lit ** ado, unsigned salt) { unsigned i, res, tmp; Lit ** p, * lit; assert (salt < PRIMES); i = salt; res = 0; for (p = ado; (lit = *p); p++) { assert (lit->val); tmp = res >> 31; res <<= 1; if (lit->val > 0) res |= 1; assert (i < PRIMES); res *= primes[i++]; if (i == PRIMES) i = 0; res += tmp; } return res & (ps->szadotab - 1); } static unsigned cmp_ado (Lit ** a, Lit ** b) { Lit ** p, ** q, * l, * k; int res; for (p = a, q = b; (l = *p); p++, q++) { k = *q; assert (k); if ((res = (l->val - k->val))) return res; } assert (!*q); return 0; } static Lit *** find_ado (Lit ** ado) { Lit *** res, ** other; unsigned pos, delta; pos = hash_ado (ado, 0); assert (pos < ps->szadotab); res = ps->adotab + pos; other = *res; if (!other || !cmp_ado (other, ado)) return res; delta = hash_ado (ado, 1); if (!(delta & 1)) delta++; assert (delta & 1); assert (delta < ps->szadotab); for (;;) { pos += delta; if (pos >= ps->szadotab) pos -= ps->szadotab; assert (pos < ps->szadotab); res = ps->adotab + pos; other = *res; if (!other || !cmp_ado (other, ado)) return res; } } static void enlarge_adotab (PS * ps) { /* TODO make this generic */ ABORTIF (ps->szadotab, "internal: all different objects table needs larger initial size"); assert (!ps->nadotab); ps->szadotab = 10000; NEWN (ps->adotab, ps->szadotab); CLRN (ps->adotab, ps->szadotab); } static int propado (Var * v) { Lit ** p, ** q, *** adotabpos, **ado, * lit; Var * u; if (ps->level && ps->adodisabled) return 1; assert (!ps->conflict); assert (!ps->adoconflict); assert (VAR2LIT (v)->val != UNDEF); assert (!v->adotabpos); if (!v->ado) return 1; assert (v->inado); for (p = v->ado; (lit = *p); p++) if (lit->val == UNDEF) { u = LIT2VAR (lit); assert (!u->ado); u->ado = v->ado; v->ado = 0; return 1; } if (4 * ps->nadotab >= 3 * ps->szadotab) /* at least 75% filled */ enlarge_adotab (ps); adotabpos = find_ado (v->ado); ado = *adotabpos; if (!ado) { ps->nadotab++; v->adotabpos = adotabpos; *adotabpos = v->ado; return 1; } assert (ado != v->ado); ps->adoconflict = new_clause (2 * llength (ado), 1); q = ps->adoconflict->lits; for (p = ado; (lit = *p); p++) *q++ = lit->val == FALSE ? lit : NOTLIT (lit); for (p = v->ado; (lit = *p); p++) *q++ = lit->val == FALSE ? lit : NOTLIT (lit); assert (q == ENDOFCLS (ps->adoconflict)); ps->conflict = ps->adoconflict; ps->adoconflicts++; return 0; } #endif static void bcp (PS * ps) { int props = 0; assert (!ps->conflict); if (ps->mtcls) return; for (;;) { if (ps->ttail2 < ps->thead) /* prioritize implications */ { props++; prop2 (ps, NOTLIT (*ps->ttail2++)); } else if (ps->ttail < ps->thead) /* unit clauses or clauses with length > 2 */ { if (ps->conflict) break; propl (ps, NOTLIT (*ps->ttail++)); if (ps->conflict) break; } #ifndef NADC else if (ps->ttailado < ps->thead) { if (ps->conflict) break; propado (ps, LIT2VAR (*ps->ttailado++)); if (ps->conflict) break; } #endif else break; /* all assignments propagated, so break */ } ps->propagations += props; } static unsigned drive (PS * ps) { unsigned res, vlevel; Lit **p; Var *v; res = 0; for (p = ps->added; p < ps->ahead; p++) { v = LIT2VAR (*p); vlevel = v->level; assert (vlevel <= ps->LEVEL); if (vlevel < ps->LEVEL && vlevel > res) res = vlevel; } return res; } #ifdef VISCORES static void viscores (PS * ps) { Rnk *p, *eor = ps->rnks + ps->max_var; char name[100], cmd[200]; FILE * data; Flt s; int i; for (p = ps->rnks + 1; p <= ps->eor; p++) { s = p->score; if (s == INFFLT) continue; s = mulflt (s, ps->nvinc); assert (flt2double (s) <= 1.0); } sprintf (name, "/tmp/picosat-viscores/data/%08u", ps->conflicts); sprintf (cmd, "sort -n|nl>%s", name); data = popen (cmd, "w"); for (p = ps->rnks + 1; p <= ps->eor; p++) { s = p->score; if (s == INFFLT) continue; s = mulflt (s, ps->nvinc); picosat_fprintf (data, "%lf %d\n", 100.0 * flt2double (s), (int)(p - ps->rnks)); } fflush (data); pclose (data); for (i = 0; i < 8; i++) { sprintf (cmd, "awk '$3%%8==%d' %s>%s.%d", i, name, name, i); system (cmd); } picosat_fprintf (ps->fviscores, "set title \"%u\"\n", ps->conflicts); picosat_fprintf (ps->fviscores, "plot [0:%u] 0, 100 * (1 - 1/1.1), 100", ps->max_var); for (i = 0; i < 8; i++) picosat_fprintf (ps->fviscores, ", \"%s.%d\" using 1:2:3 with labels tc lt %d", name, i, i + 1); picosat_fputc ('\n', ps->fviscores); fflush (ps->fviscores); #ifndef WRITEGIF usleep (50000); /* refresh rate of 20 Hz */ #endif } #endif static void crescore (PS * ps) { Cls **p, *c; Act *a; Flt factor; int l = log2flt (ps->cinc); assert (l > 0); factor = base2flt (1, -l); for (p = ps->lclauses; p != ps->lhead; p++) { c = *p; if (!c) continue; #ifdef TRACE if (c->collected) continue; #endif assert (c->learned); if (c->size <= 2) continue; a = CLS2ACT (c); *a = mulflt (*a, factor); } ps->cinc = mulflt (ps->cinc, factor); } static void inc_vinc (PS * ps) { #ifdef VISCORES ps->nvinc = mulflt (ps->nvinc, ps->fvinc); #endif ps->vinc = mulflt (ps->vinc, ps->ifvinc); } inline static void inc_max_var (PS * ps) { Lit *lit; Rnk *r; Var *v; assert (ps->max_var < ps->size_vars); if (ps->max_var + 1 == ps->size_vars) enlarge (ps, ps->size_vars + 2*(ps->size_vars + 3) / 4); /* +25% */ ps->max_var++; /* new index of variable */ assert (ps->max_var); /* no unsigned overflow */ assert (ps->max_var < ps->size_vars); lit = ps->lits + 2 * ps->max_var; lit[0].val = lit[1].val = UNDEF; memset (ps->htps + 2 * ps->max_var, 0, 2 * sizeof *ps->htps); #ifndef NDSC memset (ps->dhtps + 2 * ps->max_var, 0, 2 * sizeof *ps->dhtps); #endif memset (ps->impls + 2 * ps->max_var, 0, 2 * sizeof *ps->impls); memset (ps->jwh + 2 * ps->max_var, 0, 2 * sizeof *ps->jwh); v = ps->vars + ps->max_var; /* initialize variable components */ CLR (v); r = ps->rnks + ps->max_var; /* initialize rank */ CLR (r); hpush (ps, r); } static void force (PS * ps, Cls * c) { Lit ** p, ** eol, * lit, * forced; Cls * reason; forced = 0; reason = c; eol = end_of_lits (c); for (p = c->lits; p < eol; p++) { lit = *p; if (lit->val == UNDEF) { assert (!forced); forced = lit; #ifdef NO_BINARY_CLAUSES if (c == &ps->impl) reason = LIT2REASON (NOTLIT (p[p == c->lits ? 1 : -1])); #endif } else assert (lit->val == FALSE); } #ifdef NO_BINARY_CLAUSES if (c == &ps->impl) resetimpl (ps); #endif if (!forced) return; assign_forced (ps, forced, reason); } static void inc_lreduce (PS * ps) { #ifdef STATS ps->inclreduces++; #endif ps->lreduce *= FREDUCE; ps->lreduce /= 100; report (ps, 1, '+'); } static void backtrack (PS * ps) { unsigned new_level; Cls * c; ps->conflicts++; LOG ( picosat_fprintf (ps->out, "%sconflict ", ps->prefix); dumpclsnl (ps, ps->conflict)); analyze (ps); new_level = drive (ps); // TODO: why not? assert (new_level != 1 || (ps->ahead - ps->added) == 2); c = add_simplified_clause (ps, 1); undo (ps, new_level); force (ps, c); if ( #ifndef NFL !ps->simplifying && #endif !--ps->lreduceadjustcnt) { /* With FREDUCE==110 and FREDADJ=121 we stir 'lreduce' to be * proportional to 'sqrt(conflicts)'. In earlier version we actually * used 'FREDADJ=150', which results in 'lreduce' to approximate * 'conflicts^(log(1.1)/log(1.5))' which is close to the fourth root * of 'conflicts', since log(1.1)/log(1.5)=0.235 (as observed by * Donald Knuth). The square root is the same we get by a Glucose * style increase, which simply adds a constant at every reduction. * This would be way simpler to implement but for now we keep the more * complicated code using the adjust increments and counters. */ ps->lreduceadjustinc *= FREDADJ; ps->lreduceadjustinc /= 100; ps->lreduceadjustcnt = ps->lreduceadjustinc; inc_lreduce (ps); } if (ps->verbosity >= 4 && !(ps->conflicts % 1000)) report (ps, 4, 'C'); } static void inc_cinc (PS * ps) { ps->cinc = mulflt (ps->cinc, ps->fcinc); if (ps->lcinc < ps->cinc) crescore (ps); } static void incincs (PS * ps) { inc_vinc (ps); inc_cinc (ps); #ifdef VISCORES viscores (ps); #endif } static void disconnect_clause (PS * ps, Cls * c) { assert (c->connected); if (c->size > 2) { if (c->learned) { assert (ps->nlclauses > 0); ps->nlclauses--; assert (ps->llits >= c->size); ps->llits -= c->size; } else { assert (ps->noclauses > 0); ps->noclauses--; assert (ps->olits >= c->size); ps->olits -= c->size; } } #ifndef NDEBUG c->connected = 0; #endif } static int clause_is_toplevel_satisfied (PS * ps, Cls * c) { Lit *lit, **p, **eol = end_of_lits (c); Var *v; for (p = c->lits; p < eol; p++) { lit = *p; if (lit->val == TRUE) { v = LIT2VAR (lit); if (!v->level) return 1; } } return 0; } static int collect_clause (PS * ps, Cls * c) { assert (c->collect); c->collect = 0; #ifdef TRACE assert (!c->collected); c->collected = 1; #endif disconnect_clause (ps, c); #ifdef TRACE if (ps->trace && (!c->learned || c->used)) return 0; #endif delete_clause (ps, c); return 1; } static size_t collect_clauses (PS * ps) { Cls *c, **p, **q, * next; Lit * lit, * eol; size_t res; int i; res = ps->current_bytes; eol = ps->lits + 2 * ps->max_var + 1; for (lit = ps->lits + 2; lit <= eol; lit++) { for (i = 0; i <= 1; i++) { if (i) { #ifdef NO_BINARY_CLAUSES Ltk * lstk = LIT2IMPLS (lit); Lit ** r, ** s; r = lstk->start; if (lit->val != TRUE || LIT2VAR (lit)->level) for (s = r; s < lstk->start + lstk->count; s++) { Lit * other = *s; Var *v = LIT2VAR (other); if (v->level || other->val != TRUE) *r++ = other; } lstk->count = r - lstk->start; continue; #else p = LIT2IMPLS (lit); #endif } else p = LIT2HTPS (lit); for (c = *p; c; c = next) { q = c->next; if (c->lits[0] != lit) q++; next = *q; if (c->collect) *p = next; else p = q; } } } #ifndef NDSC for (lit = ps->lits + 2; lit <= eol; lit++) { p = LIT2DHTPS (lit); while ((c = *p)) { Lit * other = c->lits[0]; if (other == lit) { q = c->next + 1; } else { assert (c->lits[1] == lit); q = c->next; } if (c->collect) *p = *q; else p = q; } } #endif for (p = SOC; p != EOC; p = NXC (p)) { c = *p; if (!c) continue; if (!c->collect) continue; if (collect_clause (ps, c)) *p = 0; } #ifdef TRACE if (!ps->trace) #endif { q = ps->oclauses; for (p = q; p < ps->ohead; p++) if ((c = *p)) *q++ = c; ps->ohead = q; q = ps->lclauses; for (p = q; p < ps->lhead; p++) if ((c = *p)) *q++ = c; ps->lhead = q; } assert (ps->current_bytes <= res); res -= ps->current_bytes; ps->recycled += res; LOG ( picosat_fprintf (ps->out, "%scollected %ld bytes\n", ps->prefix, (long)res)); return res; } static int need_to_reduce (PS * ps) { return ps->nlclauses >= reduce_limit_on_lclauses (ps); } #ifdef NLUBY static void inc_drestart (PS * ps) { ps->drestart *= FRESTART; ps->drestart /= 100; if (ps->drestart >= MAXRESTART) ps->drestart = MAXRESTART; } static void inc_ddrestart (PS * ps) { ps->ddrestart *= FRESTART; ps->ddrestart /= 100; if (ps->ddrestart >= MAXRESTART) ps->ddrestart = MAXRESTART; } #else static unsigned luby (unsigned i) { unsigned k; for (k = 1; k < 32; k++) if (i == (1u << k) - 1) return 1u << (k - 1); for (k = 1;; k++) if ((1u << (k - 1)) <= i && i < (1u << k) - 1) return luby (i - (1u << (k-1)) + 1); } #endif #ifndef NLUBY static void inc_lrestart (PS * ps, int skip) { unsigned delta; delta = 100 * luby (++ps->lubycnt); ps->lrestart = ps->conflicts + delta; if (ps->waslubymaxdelta) report (ps, 1, skip ? 'N' : 'R'); else report (ps, 2, skip ? 'n' : 'r'); if (delta > ps->lubymaxdelta) { ps->lubymaxdelta = delta; ps->waslubymaxdelta = 1; } else ps->waslubymaxdelta = 0; } #endif static void init_restart (PS * ps) { #ifdef NLUBY /* TODO: why is it better in incremental usage to have smaller initial * outer restart interval? */ ps->ddrestart = ps->calls > 1 ? MINRESTART : 1000; ps->drestart = MINRESTART; ps->lrestart = ps->conflicts + ps->drestart; #else ps->lubycnt = 0; ps->lubymaxdelta = 0; ps->waslubymaxdelta = 0; inc_lrestart (ps, 0); #endif } static void restart (PS * ps) { int skip; #ifdef NLUBY char kind; int outer; inc_drestart (ps); outer = (ps->drestart >= ps->ddrestart); if (outer) skip = very_high_agility (ps); else skip = high_agility (ps); #else skip = medium_agility (ps); #endif #ifdef STATS if (skip) ps->skippedrestarts++; #endif assert (ps->conflicts >= ps->lrestart); if (!skip) { ps->restarts++; assert (ps->LEVEL > 1); LOG ( picosat_fprintf (ps->out, "%srestart %u\n", ps->prefix, ps->restarts)); undo (ps, 0); } #ifdef NLUBY if (outer) { kind = skip ? 'N' : 'R'; inc_ddrestart (ps); ps->drestart = MINRESTART; } else if (skip) { kind = 'n'; } else { kind = 'r'; } assert (ps->drestart <= MAXRESTART); ps->lrestart = ps->conflicts + ps->drestart; assert (ps->lrestart > ps->conflicts); report (outer ? 1 : 2, kind); #else inc_lrestart (ps, skip); #endif } inline static void assign_decision (PS * ps, Lit * lit) { assert (!ps->conflict); ps->LEVEL++; LOG ( picosat_fprintf (ps->out, "%snew level %u\n", ps->prefix, ps->LEVEL)); LOG ( picosat_fprintf (ps->out, "%sassign %d at level %d <= DECISION\n", ps->prefix, LIT2INT (lit), ps->LEVEL)); assign (ps, lit, 0); } #ifndef NFL static int lit_has_binary_clauses (PS * ps, Lit * lit) { #ifdef NO_BINARY_CLAUSES Ltk* lstk = LIT2IMPLS (lit); return lstk->count != 0; #else return *LIT2IMPLS (lit) != 0; #endif } static void flbcp (PS * ps) { #ifdef STATS unsigned long long propagaions_before_bcp = ps->propagations; #endif bcp (ps); #ifdef STATS ps->flprops += ps->propagations - propagaions_before_bcp; #endif } inline static int cmp_inverse_rnk (PS * ps, Rnk * a, Rnk * b) { (void) ps; return -cmp_rnk (a, b); } inline static Flt rnk2jwh (PS * ps, Rnk * r) { Flt res, sum, pjwh, njwh; Lit * plit, * nlit; plit = RNK2LIT (r); nlit = plit + 1; pjwh = *LIT2JWH (plit); njwh = *LIT2JWH (nlit); res = mulflt (pjwh, njwh); sum = addflt (pjwh, njwh); sum = mulflt (sum, base2flt (1, -10)); res = addflt (res, sum); return res; } static int cmp_inverse_jwh_rnk (PS * ps, Rnk * r, Rnk * s) { Flt a = rnk2jwh (ps, r); Flt b = rnk2jwh (ps, s); int res = cmpflt (a, b); if (res) return -res; return cmp_inverse_rnk (ps, r, s); } static void faillits (PS * ps) { unsigned i, j, old_trail_count, common, saved_count; unsigned new_saved_size, oldladded = ps->ladded; unsigned long long limit, delta; Lit * lit, * other, * pivot; Rnk * r, ** p, ** q; int new_trail_count; double started; if (ps->plain) return; if (ps->heap + 1 >= ps->hhead) return; if (ps->propagations < ps->fllimit) return; sflush (ps); started = ps->seconds; ps->flcalls++; #ifdef STATSA ps->flrounds++; #endif delta = ps->propagations/10; if (delta >= 100*1000*1000) delta = 100*1000*1000; else if (delta <= 100*1000) delta = 100*1000; limit = ps->propagations + delta; ps->fllimit = ps->propagations; assert (!ps->LEVEL); assert (ps->simplifying); if (ps->flcalls <= 1) SORT (Rnk *, cmp_inverse_jwh_rnk, ps->heap + 1, ps->hhead - (ps->heap + 1)); else SORT (Rnk *, cmp_inverse_rnk, ps->heap + 1, ps->hhead - (ps->heap + 1)); i = 1; /* NOTE: heap starts at position '1' */ while (ps->propagations < limit) { if (ps->heap + i == ps->hhead) { if (ps->ladded == oldladded) break; i = 1; #ifdef STATS ps->flrounds++; #endif oldladded = ps->ladded; } assert (ps->heap + i < ps->hhead); r = ps->heap[i++]; lit = RNK2LIT (r); if (lit->val) continue; if (!lit_has_binary_clauses (ps, NOTLIT (lit))) { #ifdef STATS ps->flskipped++; #endif continue; } #ifdef STATS ps->fltried++; #endif LOG ( picosat_fprintf (ps->out, "%strying %d as failed literal\n", ps->prefix, LIT2INT (lit))); assign_decision (ps, lit); old_trail_count = ps->thead - ps->trail; flbcp (ps); if (ps->conflict) { EXPLICITLY_FAILED_LITERAL: LOG ( picosat_fprintf (ps->out, "%sfound explicitly failed literal %d\n", ps->prefix, LIT2INT (lit))); ps->failedlits++; ps->efailedlits++; backtrack (ps); flbcp (ps); if (!ps->conflict) continue; CONTRADICTION: assert (!ps->LEVEL); backtrack (ps); assert (ps->mtcls); goto RETURN; } if (ps->propagations >= limit) { undo (ps, 0); break; } lit = NOTLIT (lit); if (!lit_has_binary_clauses (ps, NOTLIT (lit))) { #ifdef STATS ps->flskipped++; #endif undo (ps, 0); continue; } #ifdef STATS ps->fltried++; #endif LOG ( picosat_fprintf (ps->out, "%strying %d as failed literals\n", ps->prefix, LIT2INT (lit))); new_trail_count = ps->thead - ps->trail; saved_count = new_trail_count - old_trail_count; if (saved_count > ps->saved_size) { new_saved_size = ps->saved_size ? 2 * ps->saved_size : 1; while (saved_count > new_saved_size) new_saved_size *= 2; RESIZEN (ps->saved, ps->saved_size, new_saved_size); ps->saved_size = new_saved_size; } for (j = 0; j < saved_count; j++) ps->saved[j] = ps->trail[old_trail_count + j]; undo (ps, 0); assign_decision (ps, lit); flbcp (ps); if (ps->conflict) goto EXPLICITLY_FAILED_LITERAL; pivot = (ps->thead - ps->trail <= new_trail_count) ? lit : NOTLIT (lit); common = 0; for (j = 0; j < saved_count; j++) if ((other = ps->saved[j])->val == TRUE) ps->saved[common++] = other; undo (ps, 0); LOG (if (common) picosat_fprintf (ps->out, "%sfound %d literals implied by %d and %d\n", ps->prefix, common, LIT2INT (NOTLIT (lit)), LIT2INT (lit))); #if 1 // set to zero to disable 'lifting' for (j = 0; j < common /* TODO: For some Velev benchmarks, extracting the common implicit * failed literals took quite some time. This needs to be fixed by * a dedicated analyzer. Up to then we bound the number of * propagations in this loop as well. */ && ps->propagations < limit + delta ; j++) { other = ps->saved[j]; if (other->val == TRUE) continue; assert (!other->val); LOG ( picosat_fprintf (ps->out, "%sforcing %d as forced implicitly failed literal\n", ps->prefix, LIT2INT (other))); assert (pivot != NOTLIT (other)); assert (pivot != other); assign_decision (ps, NOTLIT (other)); flbcp (ps); assert (ps->LEVEL == 1); if (ps->conflict) { backtrack (ps); assert (!ps->LEVEL); } else { assign_decision (ps, pivot); flbcp (ps); backtrack (ps); if (ps->LEVEL) { assert (ps->LEVEL == 1); flbcp (ps); if (ps->conflict) { backtrack (ps); assert (!ps->LEVEL); } else { assign_decision (ps, NOTLIT (pivot)); flbcp (ps); backtrack (ps); if (ps->LEVEL) { assert (ps->LEVEL == 1); flbcp (ps); if (!ps->conflict) { #ifdef STATS ps->floopsed++; #endif undo (ps, 0); continue; } backtrack (ps); } assert (!ps->LEVEL); } assert (!ps->LEVEL); } } assert (!ps->LEVEL); flbcp (ps); ps->failedlits++; ps->ifailedlits++; if (ps->conflict) goto CONTRADICTION; } #endif } ps->fllimit += 9 * (ps->propagations - ps->fllimit); /* 10% for failed literals */ RETURN: /* First flush top level assigned literals. Those are prohibited from * being pushed up the heap during 'faillits' since 'simplifying' is set. */ assert (ps->heap < ps->hhead); for (p = q = ps->heap + 1; p < ps->hhead; p++) { r = *p; lit = RNK2LIT (r); if (lit->val) r->pos = 0; else *q++ = r; } /* Then resort with respect to EVSIDS score and fix positions. */ SORT (Rnk *, cmp_inverse_rnk, ps->heap + 1, ps->hhead - (ps->heap + 1)); for (p = ps->heap + 1; p < ps->hhead; p++) (*p)->pos = p - ps->heap; sflush (ps); ps->flseconds += ps->seconds - started; } #endif static void simplify (PS * ps, int forced) { Lit * lit, * notlit, ** t; unsigned collect, delta; #ifdef STATS size_t bytes_collected; #endif int * q, ilit; Cls **p, *c; Var * v; #ifndef NDEDBUG (void) forced; #endif assert (!ps->mtcls); assert (!satisfied (ps)); assert (forced || ps->lsimplify <= ps->propagations); assert (forced || ps->fsimplify <= ps->fixed); if (ps->LEVEL) undo (ps, 0); #ifndef NFL ps->simplifying = 1; faillits (ps); ps->simplifying = 0; if (ps->mtcls) return; #endif if (ps->cils != ps->cilshead) { assert (ps->ttail == ps->thead); assert (ps->ttail2 == ps->thead); ps->ttail = ps->trail; for (t = ps->trail; t < ps->thead; t++) { lit = *t; v = LIT2VAR (lit); if (v->internal) { assert (LIT2INT (lit) < 0); assert (lit->val == TRUE); unassign (ps, lit); } else *ps->ttail++ = lit; } ps->ttail2 = ps->thead = ps->ttail; for (q = ps->cils; q != ps->cilshead; q++) { ilit = *q; assert (0 < ilit && ilit <= (int) ps->max_var); v = ps->vars + ilit; assert (v->internal); v->level = 0; v->reason = 0; lit = int2lit (ps, -ilit); assert (lit->val == UNDEF); lit->val = TRUE; notlit = NOTLIT (lit); assert (notlit->val == UNDEF); notlit->val = FALSE; } } collect = 0; for (p = SOC; p != EOC; p = NXC (p)) { c = *p; if (!c) continue; #ifdef TRACE if (c->collected) continue; #endif if (c->locked) continue; assert (!c->collect); if (clause_is_toplevel_satisfied (ps, c)) { mark_clause_to_be_collected (c); collect++; } } LOG ( picosat_fprintf (ps->out, "%scollecting %d clauses\n", ps->prefix, collect)); #ifdef STATS bytes_collected = #endif collect_clauses (ps); #ifdef STATS ps->srecycled += bytes_collected; #endif if (ps->cils != ps->cilshead) { for (q = ps->cils; q != ps->cilshead; q++) { ilit = *q; assert (0 < ilit && ilit <= (int) ps->max_var); assert (ps->vars[ilit].internal); if (ps->rilshead == ps->eorils) ENLARGE (ps->rils, ps->rilshead, ps->eorils); *ps->rilshead++ = ilit; lit = int2lit (ps, -ilit); assert (lit->val == TRUE); lit->val = UNDEF; notlit = NOTLIT (lit); assert (notlit->val == FALSE); notlit->val = UNDEF; } ps->cilshead = ps->cils; } delta = 10 * (ps->olits + ps->llits) + 100000; if (delta > 2000000) delta = 2000000; ps->lsimplify = ps->propagations + delta; ps->fsimplify = ps->fixed; ps->simps++; report (ps, 1, 's'); } static void iteration (PS * ps) { assert (!ps->LEVEL); assert (bcp_queue_is_empty (ps)); assert (ps->isimplify < ps->fixed); ps->iterations++; report (ps, 2, 'i'); #ifdef NLUBY ps->drestart = MINRESTART; ps->lrestart = ps->conflicts + ps->drestart; #else init_restart (ps); #endif ps->isimplify = ps->fixed; } static int cmp_glue_activity_size (PS * ps, Cls * c, Cls * d) { Act a, b, * p, * q; (void) ps; assert (c->learned); assert (d->learned); if (c->glue < d->glue) // smaller glue preferred return 1; if (c->glue > d->glue) return -1; p = CLS2ACT (c); q = CLS2ACT (d); a = *p; b = *q; if (a < b) // then higher activity return -1; if (b < a) return 1; if (c->size < d->size) // then smaller size return 1; if (c->size > d->size) return -1; return 0; } static void reduce (PS * ps, unsigned percentage) { unsigned redcount, lcollect, collect, target; #ifdef STATS size_t bytes_collected; #endif Cls **p, *c; assert (ps->rhead == ps->resolved); ps->lastreduceconflicts = ps->conflicts; assert (percentage <= 100); LOG ( picosat_fprintf (ps->out, "%sreducing %u%% learned clauses\n", ps->prefix, percentage)); while (ps->nlclauses - ps->llocked > (unsigned)(ps->eor - ps->resolved)) ENLARGE (ps->resolved, ps->rhead, ps->eor); collect = 0; lcollect = 0; for (p = ((ps->fsimplify < ps->fixed) ? SOC : ps->lclauses); p != EOC; p = NXC (p)) { c = *p; if (!c) continue; #ifdef TRACE if (c->collected) continue; #endif if (c->locked) continue; assert (!c->collect); if (ps->fsimplify < ps->fixed && clause_is_toplevel_satisfied (ps, c)) { mark_clause_to_be_collected (c); collect++; if (c->learned && c->size > 2) lcollect++; continue; } if (!c->learned) continue; if (c->size <= 2) continue; assert (ps->rhead < ps->eor); *ps->rhead++ = c; } assert (ps->rhead <= ps->eor); ps->fsimplify = ps->fixed; redcount = ps->rhead - ps->resolved; SORT (Cls *, cmp_glue_activity_size, ps->resolved, redcount); assert (ps->nlclauses >= lcollect); target = ps->nlclauses - lcollect + 1; target = (percentage * target + 99) / 100; if (target >= redcount) target = redcount; ps->rhead = ps->resolved + target; while (ps->rhead > ps->resolved) { c = *--ps->rhead; mark_clause_to_be_collected (c); collect++; if (c->learned && c->size > 2) /* just for consistency */ lcollect++; } if (collect) { ps->reductions++; #ifdef STATS bytes_collected = #endif collect_clauses (ps); #ifdef STATS ps->rrecycled += bytes_collected; #endif report (ps, 2, '-'); } if (!lcollect) inc_lreduce (ps); /* avoid dead lock */ assert (ps->rhead == ps->resolved); } static void init_reduce (PS * ps) { // lreduce = loadded / 2; ps->lreduce = 1000; if (ps->lreduce < 100) ps->lreduce = 100; if (ps->verbosity) picosat_fprintf (ps->out, "%s\n%sinitial reduction limit %u clauses\n%s\n", ps->prefix, ps->prefix, ps->lreduce, ps->prefix); } static unsigned rng (PS * ps) { unsigned res = ps->srng; ps->srng *= 1664525u; ps->srng += 1013904223u; NOLOG ( picosat_fprintf (ps->out, "%srng () = %u\n", ps->prefix, res)); return res; } static unsigned rrng (PS * ps, unsigned low, unsigned high) { unsigned long long tmp; unsigned res, elements; assert (low <= high); elements = high - low + 1; tmp = rng (ps); tmp *= elements; tmp >>= 32; tmp += low; res = tmp; NOLOG ( picosat_fprintf (ps->out, "%srrng (ps, %u, %u) = %u\n", ps->prefix, low, high, res)); assert (low <= res); assert (res <= high); return res; } static Lit * decide_phase (PS * ps, Lit * lit) { Lit * not_lit = NOTLIT (lit); Var *v = LIT2VAR (lit); assert (LIT2SGN (lit) > 0); if (v->usedefphase) { if (v->defphase) { /* assign to TRUE */ } else { /* assign to FALSE */ lit = not_lit; } } else if (!v->assigned) { #ifdef STATS ps->staticphasedecisions++; #endif if (ps->defaultphase == POSPHASE) { /* assign to TRUE */ } else if (ps->defaultphase == NEGPHASE) { /* assign to FALSE */ lit = not_lit; } else if (ps->defaultphase == RNDPHASE) { /* randomly assign default phase */ if (rrng (ps, 1, 2) != 2) lit = not_lit; } else if (*LIT2JWH(lit) <= *LIT2JWH (not_lit)) { /* assign to FALSE (Jeroslow-Wang says there are more short * clauses with negative occurence of this variable, so satisfy * those, to minimize BCP) */ lit = not_lit; } else { /* assign to TRUE (... but strictly more positive occurrences) */ } } else { /* repeat last phase: phase saving heuristic */ if (v->phase) { /* assign to TRUE (last phase was TRUE as well) */ } else { /* assign to FALSE (last phase was FALSE as well) */ lit = not_lit; } } return lit; } static unsigned gcd (unsigned a, unsigned b) { unsigned tmp; assert (a); assert (b); if (a < b) { tmp = a; a = b; b = tmp; } while (b) { assert (a >= b); tmp = b; b = a % b; a = tmp; } return a; } static Lit * rdecide (PS * ps) { unsigned idx, delta, spread; Lit * res; spread = RDECIDE; if (rrng (ps, 1, spread) != 2) return 0; assert (1 <= ps->max_var); idx = rrng (ps, 1, ps->max_var); res = int2lit (ps, idx); if (res->val != UNDEF) { delta = rrng (ps, 1, ps->max_var); while (gcd (delta, ps->max_var) != 1) delta--; assert (1 <= delta); assert (delta <= ps->max_var); do { idx += delta; if (idx > ps->max_var) idx -= ps->max_var; res = int2lit (ps, idx); } while (res->val != UNDEF); } #ifdef STATS ps->rdecisions++; #endif res = decide_phase (ps, res); LOG ( picosat_fprintf (ps->out, "%srdecide %d\n", ps->prefix, LIT2INT (res))); return res; } static Lit * sdecide (PS * ps) { Lit *res; Rnk *r; for (;;) { r = htop (ps); res = RNK2LIT (r); if (res->val == UNDEF) break; (void) hpop (ps); NOLOG ( picosat_fprintf (ps->out, "%shpop %u %u %u\n", ps->prefix, r - ps->rnks, FLTMANTISSA(r->score), FLTEXPONENT(r->score))); } #ifdef STATS ps->sdecisions++; #endif res = decide_phase (ps, res); LOG ( picosat_fprintf (ps->out, "%ssdecide %d\n", ps->prefix, LIT2INT (res))); return res; } static Lit * adecide (PS * ps) { Lit *lit; Var * v; assert (ps->als < ps->alshead); assert (!ps->failed_assumption); while (ps->alstail < ps->alshead) { lit = *ps->alstail++; if (lit->val == FALSE) { ps->failed_assumption = lit; v = LIT2VAR (lit); use_var (ps, v); LOG ( picosat_fprintf (ps->out, "%sfirst failed assumption %d\n", ps->prefix, LIT2INT (ps->failed_assumption))); fanalyze (ps); return 0; } if (lit->val == TRUE) { v = LIT2VAR (lit); if (v->level > ps->adecidelevel) ps->adecidelevel = v->level; continue; } #ifdef STATS ps->assumptions++; #endif LOG ( picosat_fprintf (ps->out, "%sadecide %d\n", ps->prefix, LIT2INT (lit))); ps->adecidelevel = ps->LEVEL + 1; return lit; } return 0; } static void decide (PS * ps) { Lit * lit; assert (!satisfied (ps)); assert (!ps->conflict); if (ps->alstail < ps->alshead && (lit = adecide (ps))) ; else if (ps->failed_assumption) return; else if (satisfied (ps)) return; else if (!(lit = rdecide (ps))) lit = sdecide (ps); assert (lit); assign_decision (ps, lit); ps->levelsum += ps->LEVEL; ps->decisions++; } static int sat (PS * ps, int l) { int count = 0, backtracked; if (!ps->conflict) bcp (ps); if (ps->conflict) backtrack (ps); if (ps->mtcls) return PICOSAT_UNSATISFIABLE; if (satisfied (ps)) goto SATISFIED; if (ps->lsimplify <= ps->propagations) simplify (ps, 0); if (ps->mtcls) return PICOSAT_UNSATISFIABLE; if (satisfied (ps)) goto SATISFIED; init_restart (ps); if (!ps->lreduce) init_reduce (ps); ps->isimplify = ps->fixed; backtracked = 0; for (;;) { if (!ps->conflict) bcp (ps); if (ps->conflict) { incincs (ps); backtrack (ps); if (ps->mtcls) return PICOSAT_UNSATISFIABLE; backtracked = 1; continue; } if (satisfied (ps)) { SATISFIED: #ifndef NDEBUG original_clauses_satisfied (ps); assumptions_satisfied (ps); #endif return PICOSAT_SATISFIABLE; } if (backtracked) { backtracked = 0; if (!ps->LEVEL && ps->isimplify < ps->fixed) iteration (ps); } if (l >= 0 && count >= l) /* decision limit reached ? */ return PICOSAT_UNKNOWN; if (ps->interrupt.function && /* external interrupt */ count > 0 && !(count % INTERRUPTLIM) && ps->interrupt.function (ps->interrupt.state)) return PICOSAT_UNKNOWN; if (ps->propagations >= ps->lpropagations)/* propagation limit reached ? */ return PICOSAT_UNKNOWN; #ifndef NADC if (!ps->adodisabled && ps->adoconflicts >= ps->adoconflictlimit) { assert (bcp_queue_is_empty (ps)); return PICOSAT_UNKNOWN; } #endif if (ps->fsimplify < ps->fixed && ps->lsimplify <= ps->propagations) { simplify (ps, 0); if (!bcp_queue_is_empty (ps)) continue; #ifndef NFL if (ps->mtcls) return PICOSAT_UNSATISFIABLE; if (satisfied (ps)) return PICOSAT_SATISFIABLE; assert (!ps->LEVEL); #endif } if (need_to_reduce (ps)) reduce (ps, 50); if (ps->conflicts >= ps->lrestart && ps->LEVEL > 2) restart (ps); decide (ps); if (ps->failed_assumption) return PICOSAT_UNSATISFIABLE; count++; } } static void rebias (PS * ps) { Cls ** p, * c; Var * v; for (v = ps->vars + 1; v <= ps->vars + ps->max_var; v++) v->assigned = 0; memset (ps->jwh, 0, 2 * (ps->max_var + 1) * sizeof *ps->jwh); for (p = ps->oclauses; p < ps->ohead; p++) { c = *p; if (!c) continue; if (c->learned) continue; incjwh (ps, c); } } #ifdef TRACE static unsigned core (PS * ps) { unsigned idx, prev, this, delta, i, lcore, vcore; unsigned *stack, *shead, *eos; Lit **q, **eol, *lit; Cls *c, *reason; Znt *p, byte; Zhn *zhain; Var *v; assert (ps->trace); assert (ps->mtcls || ps->failed_assumption); if (ps->ocore >= 0) return ps->ocore; lcore = ps->ocore = vcore = 0; stack = shead = eos = 0; ENLARGE (stack, shead, eos); if (ps->mtcls) { idx = CLS2IDX (ps->mtcls); *shead++ = idx; } else { assert (ps->failed_assumption); v = LIT2VAR (ps->failed_assumption); reason = v->reason; assert (reason); idx = CLS2IDX (reason); *shead++ = idx; } while (shead > stack) { idx = *--shead; zhain = IDX2ZHN (idx); if (zhain) { if (zhain->core) continue; zhain->core = 1; lcore++; c = IDX2CLS (idx); if (c) { assert (!c->core); c->core = 1; } i = 0; delta = 0; prev = 0; for (p = zhain->znt; (byte = *p); p++, i += 7) { delta |= (byte & 0x7f) << i; if (byte & 0x80) continue; this = prev + delta; assert (prev < this); /* no overflow */ if (shead == eos) ENLARGE (stack, shead, eos); *shead++ = this; prev = this; delta = 0; i = -7; } } else { c = IDX2CLS (idx); assert (c); assert (!c->learned); if (c->core) continue; c->core = 1; ps->ocore++; eol = end_of_lits (c); for (q = c->lits; q < eol; q++) { lit = *q; v = LIT2VAR (lit); if (v->core) continue; v->core = 1; vcore++; if (!ps->failed_assumption) continue; if (lit != ps->failed_assumption) continue; reason = v->reason; if (!reason) continue; if (reason->core) continue; idx = CLS2IDX (reason); if (shead == eos) ENLARGE (stack, shead, eos); *shead++ = idx; } } } DELETEN (stack, eos - stack); if (ps->verbosity) picosat_fprintf (ps->out, "%s%u core variables out of %u (%.1f%%)\n" "%s%u core original clauses out of %u (%.1f%%)\n" "%s%u core learned clauses out of %u (%.1f%%)\n", ps->prefix, vcore, ps->max_var, PERCENT (vcore, ps->max_var), ps->prefix, ps->ocore, ps->oadded, PERCENT (ps->ocore, ps->oadded), ps->prefix, lcore, ps->ladded, PERCENT (lcore, ps->ladded)); return ps->ocore; } static void trace_lits (PS * ps, Cls * c, FILE * file) { Lit **p, **eol = end_of_lits (c); assert (c); assert (c->core); for (p = c->lits; p < eol; p++) picosat_fprintf (file, "%d ", LIT2INT (*p)); picosat_fputc ('0', file); } static void write_idx (PS * ps, unsigned idx, FILE * file) { picosat_fprintf (file, "%ld", EXPORTIDX (idx)); } static void trace_clause (PS * ps, unsigned idx, Cls * c, FILE * file, int fmt) { assert (c); assert (c->core); assert (fmt == RUP_TRACE_FMT || !c->learned); assert (CLS2IDX (c) == idx); if (fmt != RUP_TRACE_FMT) { write_idx (ps, idx, file); picosat_fputc (' ', file); } trace_lits (ps, c, file); if (fmt != RUP_TRACE_FMT) picosat_fputs (" 0", file); picosat_fputc ('\n', file); } static void trace_zhain (PS * ps, unsigned idx, Zhn * zhain, FILE * file, int fmt) { unsigned prev, this, delta, i; Znt *p, byte; Cls * c; assert (zhain); assert (zhain->core); write_idx (ps, idx, file); picosat_fputc (' ', file); if (fmt == EXTENDED_TRACECHECK_TRACE_FMT) { c = IDX2CLS (idx); assert (c); trace_lits (ps, c, file); } else { assert (fmt == COMPACT_TRACECHECK_TRACE_FMT); putc ('*', file); } i = 0; delta = 0; prev = 0; for (p = zhain->znt; (byte = *p); p++, i += 7) { delta |= (byte & 0x7f) << i; if (byte & 0x80) continue; this = prev + delta; putc (' ', file); write_idx (ps, this, file); prev = this; delta = 0; i = -7; } picosat_fputs (" 0\n", file); } static void write_core (PS * ps, FILE * file) { Lit **q, **eol; Cls **p, *c; picosat_fprintf (file, "p cnf %u %u\n", ps->max_var, core (ps)); for (p = SOC; p != EOC; p = NXC (p)) { c = *p; if (!c || c->learned || !c->core) continue; eol = end_of_lits (c); for (q = c->lits; q < eol; q++) picosat_fprintf (file, "%d ", LIT2INT (*q)); picosat_fputs ("0\n", file); } } #endif static void write_trace (PS * ps, FILE * file, int fmt) { #ifdef TRACE Cls *c, ** p; Zhn *zhain; unsigned i; core (ps); if (fmt == RUP_TRACE_FMT) { ps->rupvariables = picosat_variables (ps), ps->rupclauses = picosat_added_original_clauses (ps); write_rup_header (ps, file); } for (p = SOC; p != EOC; p = NXC (p)) { c = *p; if (ps->oclauses <= p && p < ps->eoo) { i = OIDX2IDX (p - ps->oclauses); assert (!c || CLS2IDX (c) == i); } else { assert (ps->lclauses <= p && p < ps->EOL); i = LIDX2IDX (p - ps->lclauses); } zhain = IDX2ZHN (i); if (zhain) { if (zhain->core) { if (fmt == RUP_TRACE_FMT) trace_clause (ps,i, c, file, fmt); else trace_zhain (ps, i, zhain, file, fmt); } } else if (c) { if (fmt != RUP_TRACE_FMT && c) { if (c->core) trace_clause (ps, i, c, file, fmt); } } } #else (void) file; (void) fmt; (void) ps; #endif } static void write_core_wrapper (PS * ps, FILE * file, int fmt) { (void) fmt; #ifdef TRACE write_core (ps, file); #else (void) ps; (void) file; #endif } static Lit * import_lit (PS * ps, int lit, int nointernal) { Lit * res; Var * v; ABORTIF (lit == INT_MIN, "API usage: INT_MIN literal"); ABORTIF (abs (lit) > (int) ps->max_var && ps->CLS != ps->clshead, "API usage: new variable index after 'picosat_push'"); if (abs (lit) <= (int) ps->max_var) { res = int2lit (ps, lit); v = LIT2VAR (res); if (nointernal && v->internal) ABORT ("API usage: trying to import invalid literal"); else if (!nointernal && !v->internal) ABORT ("API usage: trying to import invalid context"); } else { while (abs (lit) > (int) ps->max_var) inc_max_var (ps); res = int2lit (ps, lit); } return res; } #ifdef TRACE static void reset_core (PS * ps) { Cls ** p, * c; Zhn ** q, * z; unsigned i; for (i = 1; i <= ps->max_var; i++) ps->vars[i].core = 0; for (p = SOC; p != EOC; p = NXC (p)) if ((c = *p)) c->core = 0; for (q = ps->zhains; q != ps->zhead; q++) if ((z = *q)) z->core = 0; ps->ocore = -1; } #endif static void reset_assumptions (PS * ps) { Lit ** p; ps->failed_assumption = 0; if (ps->extracted_all_failed_assumptions) { for (p = ps->als; p < ps->alshead; p++) LIT2VAR (*p)->failed = 0; ps->extracted_all_failed_assumptions = 0; } ps->alstail = ps->alshead = ps->als; ps->adecidelevel = 0; } static void check_ready (PS * ps) { ABORTIF (!ps || ps->state == RESET, "API usage: uninitialized"); } static void check_sat_state (PS * ps) { ABORTIF (ps->state != SAT, "API usage: expected to be in SAT state"); } static void check_unsat_state (PS * ps) { ABORTIF (ps->state != UNSAT, "API usage: expected to be in UNSAT state"); } static void check_sat_or_unsat_or_unknown_state (PS * ps) { ABORTIF (ps->state != SAT && ps->state != UNSAT && ps->state != UNKNOWN, "API usage: expected to be in SAT, UNSAT, or UNKNOWN state"); } static void reset_partial (PS * ps) { unsigned idx; if (!ps->partial) return; for (idx = 1; idx <= ps->max_var; idx++) ps->vars[idx].partial = 0; ps->partial = 0; } static void reset_incremental_usage (PS * ps) { unsigned num_non_false; Lit * lit, ** q; check_sat_or_unsat_or_unknown_state (ps); LOG ( picosat_fprintf (ps->out, "%sRESET incremental usage\n", ps->prefix)); if (ps->LEVEL) undo (ps, 0); reset_assumptions (ps); if (ps->conflict) { num_non_false = 0; for (q = ps->conflict->lits; q < end_of_lits (ps->conflict); q++) { lit = *q; if (lit->val != FALSE) num_non_false++; } // assert (num_non_false >= 2); // TODO: why this assertion? #ifdef NO_BINARY_CLAUSES if (ps->conflict == &ps->cimpl) resetcimpl (ps); #endif #ifndef NADC if (ps->conflict == ps->adoconflict) resetadoconflict (ps); #endif ps->conflict = 0; } #ifdef TRACE reset_core (ps); #endif reset_partial (ps); ps->saved_flips = ps->flips; ps->min_flipped = UINT_MAX; ps->saved_max_var = ps->max_var; ps->state = READY; } static void enter (PS * ps) { if (ps->nentered++) return; check_ready (ps); ps->entered = picosat_time_stamp (); } static void leave (PS * ps) { assert (ps->nentered); if (--ps->nentered) return; sflush (ps); } static void check_trace_support_and_execute (PS * ps, FILE * file, void (*f)(PS*,FILE*,int), int fmt) { check_ready (ps); check_unsat_state (ps); #ifdef TRACE ABORTIF (!ps->trace, "API usage: tracing disabled"); enter (ps); f (ps, file, fmt); leave (ps); #else (void) file; (void) fmt; (void) f; ABORT ("compiled without trace support"); #endif } static void extract_all_failed_assumptions (PS * ps) { Lit ** p, ** eol; Var * v, * u; int pos; Cls * c; assert (!ps->extracted_all_failed_assumptions); assert (ps->failed_assumption); assert (ps->mhead == ps->marked); if (ps->marked == ps->eom) ENLARGE (ps->marked, ps->mhead, ps->eom); v = LIT2VAR (ps->failed_assumption); mark_var (ps, v); pos = 0; while (pos < ps->mhead - ps->marked) { v = ps->marked[pos++]; assert (v->mark); c = var2reason (ps, v); if (!c) continue; eol = end_of_lits (c); for (p = c->lits; p < eol; p++) { u = LIT2VAR (*p); if (!u->mark) mark_var (ps, u); } #ifdef NO_BINARY_CLAUSES if (c == &ps->impl) resetimpl (ps); #endif } for (p = ps->als; p < ps->alshead; p++) { u = LIT2VAR (*p); if (!u->mark) continue; u->failed = 1; LOG ( picosat_fprintf (ps->out, "%sfailed assumption %d\n", ps->prefix, LIT2INT (*p))); } while (ps->mhead > ps->marked) (*--ps->mhead)->mark = 0; ps->extracted_all_failed_assumptions = 1; } const char * picosat_copyright (void) { return "Copyright (c) 2006 - 2014 Armin Biere JKU Linz"; } PicoSAT * picosat_init (void) { return init (0, 0, 0, 0); } PicoSAT * picosat_minit (void * pmgr, picosat_malloc pnew, picosat_realloc presize, picosat_free pfree) { ABORTIF (!pnew, "API usage: zero 'picosat_malloc' argument"); ABORTIF (!presize, "API usage: zero 'picosat_realloc' argument"); ABORTIF (!pfree, "API usage: zero 'picosat_free' argument"); return init (pmgr, pnew, presize, pfree); } void picosat_adjust (PS * ps, int new_max_var) { unsigned new_size_vars; ABORTIF (abs (new_max_var) > (int) ps->max_var && ps->CLS != ps->clshead, "API usage: adjusting variable index after 'picosat_push'"); enter (ps); new_max_var = abs (new_max_var); new_size_vars = new_max_var + 1; if (ps->size_vars < new_size_vars) enlarge (ps, new_size_vars); while (ps->max_var < (unsigned) new_max_var) inc_max_var (ps); leave (ps); } int picosat_inc_max_var (PS * ps) { if (ps->measurealltimeinlib) enter (ps); else check_ready (ps); inc_max_var (ps); if (ps->measurealltimeinlib) leave (ps); return ps->max_var; } int picosat_context (PS * ps) { return ps->clshead == ps->CLS ? 0 : LIT2INT (ps->clshead[-1]); } int picosat_push (PS * ps) { int res; Lit *lit; Var * v; if (ps->measurealltimeinlib) enter (ps); else check_ready (ps); if (ps->state != READY) reset_incremental_usage (ps); if (ps->rils != ps->rilshead) { res = *--ps->rilshead; assert (ps->vars[res].internal); } else { inc_max_var (ps); res = ps->max_var; v = ps->vars + res; assert (!v->internal); v->internal = 1; ps->internals++; LOG ( picosat_fprintf (ps->out, "%snew internal variable index %d\n", ps->prefix, res)); } lit = int2lit (ps, res); if (ps->clshead == ps->eocls) ENLARGE (ps->CLS, ps->clshead, ps->eocls); *ps->clshead++ = lit; ps->contexts++; LOG ( picosat_fprintf (ps->out, "%snew context %d at depth %ld after push\n", ps->prefix, res, (long)(ps->clshead - ps->CLS))); if (ps->measurealltimeinlib) leave (ps); return res; } int picosat_pop (PS * ps) { Lit * lit; int res; ABORTIF (ps->CLS == ps->clshead, "API usage: too many 'picosat_pop'"); ABORTIF (ps->added != ps->ahead, "API usage: incomplete clause"); if (ps->measurealltimeinlib) enter (ps); else check_ready (ps); if (ps->state != READY) reset_incremental_usage (ps); assert (ps->CLS < ps->clshead); lit = *--ps->clshead; LOG ( picosat_fprintf (ps->out, "%sclosing context %d at depth %ld after pop\n", ps->prefix, LIT2INT (lit), (long)(ps->clshead - ps->CLS) + 1)); if (ps->cilshead == ps->eocils) ENLARGE (ps->cils, ps->cilshead, ps->eocils); *ps->cilshead++ = LIT2INT (lit); if (ps->cilshead - ps->cils > MAXCILS) { LOG ( picosat_fprintf (ps->out, "%srecycling %ld interals with forced simplification\n", ps->prefix, (long)(ps->cilshead - ps->cils))); simplify (ps, 1); } res = picosat_context (ps); if (res) LOG ( picosat_fprintf (ps->out, "%snew context %d at depth %ld after pop\n", ps->prefix, res, (long)(ps->clshead - ps->CLS))); else LOG ( picosat_fprintf (ps->out, "%souter most context reached after pop\n", ps->prefix)); if (ps->measurealltimeinlib) leave (ps); return res; } void picosat_set_verbosity (PS * ps, int new_verbosity_level) { check_ready (ps); ps->verbosity = new_verbosity_level; } void picosat_set_plain (PS * ps, int new_plain_value) { check_ready (ps); ps->plain = new_plain_value; } int picosat_enable_trace_generation (PS * ps) { int res = 0; check_ready (ps); #ifdef TRACE ABORTIF (ps->addedclauses, "API usage: trace generation enabled after adding clauses"); res = ps->trace = 1; #endif return res; } void picosat_set_incremental_rup_file (PS * ps, FILE * rup_file, int m, int n) { check_ready (ps); assert (!ps->rupstarted); ps->rup = rup_file; ps->rupvariables = m; ps->rupclauses = n; } void picosat_set_output (PS * ps, FILE * output_file) { check_ready (ps); ps->out = output_file; } void picosat_measure_all_calls (PS * ps) { check_ready (ps); ps->measurealltimeinlib = 1; } void picosat_set_prefix (PS * ps, const char * str) { check_ready (ps); new_prefix (ps, str); } void picosat_set_seed (PS * ps, unsigned s) { check_ready (ps); ps->srng = s; } void picosat_reset (PS * ps) { check_ready (ps); reset (ps); } int picosat_add (PS * ps, int int_lit) { int res = ps->oadded; Lit *lit; if (ps->measurealltimeinlib) enter (ps); else check_ready (ps); ABORTIF (ps->rup && ps->rupstarted && ps->oadded >= (unsigned)ps->rupclauses, "API usage: adding too many clauses after RUP header written"); #ifndef NADC ABORTIF (ps->addingtoado, "API usage: 'picosat_add' and 'picosat_add_ado_lit' mixed"); #endif if (ps->state != READY) reset_incremental_usage (ps); if (ps->saveorig) { if (ps->sohead == ps->eoso) ENLARGE (ps->soclauses, ps->sohead, ps->eoso); *ps->sohead++ = int_lit; } if (int_lit) { lit = import_lit (ps, int_lit, 1); add_lit (ps, lit); } else simplify_and_add_original_clause (ps); if (ps->measurealltimeinlib) leave (ps); return res; } int picosat_add_arg (PS * ps, ...) { int lit; va_list ap; va_start (ap, ps); while ((lit = va_arg (ap, int))) (void) picosat_add (ps, lit); va_end (ap); return picosat_add (ps, 0); } int picosat_add_lits (PS * ps, int * lits) { const int * p; int lit; for (p = lits; (lit = *p); p++) (void) picosat_add (ps, lit); return picosat_add (ps, 0); } void picosat_add_ado_lit (PS * ps, int external_lit) { #ifndef NADC Lit * internal_lit; if (ps->measurealltimeinlib) enter (ps); else check_ready (ps); if (ps->state != READY) reset_incremental_usage (ps); ABORTIF (!ps->addingtoado && ps->ahead > ps->added, "API usage: 'picosat_add' and 'picosat_add_ado_lit' mixed"); if (external_lit) { ps->addingtoado = 1; internal_lit = import_lit (external_lit, 1); add_lit (internal_lit); } else { ps->addingtoado = 0; add_ado (ps); } if (ps->measurealltimeinlib) leave (ps); #else (void) ps; (void) external_lit; ABORT ("compiled without all different constraint support"); #endif } static void assume (PS * ps, Lit * lit) { if (ps->alshead == ps->eoals) { assert (ps->alstail == ps->als); ENLARGE (ps->als, ps->alshead, ps->eoals); ps->alstail = ps->als; } *ps->alshead++ = lit; LOG ( picosat_fprintf (ps->out, "%sassumption %d\n", ps->prefix, LIT2INT (lit))); } static void assume_contexts (PS * ps) { Lit ** p; if (ps->als != ps->alshead) return; for (p = ps->CLS; p != ps->clshead; p++) assume (ps, *p); } static const char * enumstr (int i) { int last = i % 10; if (last == 1) return "st"; if (last == 2) return "nd"; if (last == 3) return "rd"; return "th"; } static int tderef (PS * ps, int int_lit) { Lit * lit; Var * v; assert (abs (int_lit) <= (int) ps->max_var); lit = int2lit (ps, int_lit); v = LIT2VAR (lit); if (v->level > 0) return 0; if (lit->val == TRUE) return 1; if (lit->val == FALSE) return -1; return 0; } static int pderef (PS * ps, int int_lit) { Lit * lit; Var * v; assert (abs (int_lit) <= (int) ps->max_var); v = ps->vars + abs (int_lit); if (!v->partial) return 0; lit = int2lit (ps, int_lit); if (lit->val == TRUE) return 1; if (lit->val == FALSE) return -1; return 0; } static void minautarky (PS * ps) { unsigned * occs, maxoccs, tmpoccs, npartial; int * p, * c, lit, best, val; #ifdef LOGGING int tl; #endif assert (!ps->partial); npartial = 0; NEWN (occs, 2*ps->max_var + 1); CLRN (occs, 2*ps->max_var + 1); occs += ps->max_var; for (p = ps->soclauses; p < ps->sohead; p++) occs[*p]++; assert (occs[0] == ps->oadded); for (c = ps->soclauses; c < ps->sohead; c = p + 1) { #ifdef LOGGING tl = 0; #endif best = 0; maxoccs = 0; for (p = c; (lit = *p); p++) { val = tderef (ps, lit); if (val < 0) continue; if (val > 0) { #ifdef LOGGING tl = 1; #endif best = lit; maxoccs = occs[lit]; } val = pderef (ps, lit); if (val > 0) break; if (val < 0) continue; val = int2lit (ps, lit)->val; assert (val); if (val < 0) continue; tmpoccs = occs[lit]; if (best && tmpoccs <= maxoccs) continue; best = lit; maxoccs = tmpoccs; } if (!lit) { assert (best); LOG ( picosat_fprintf (ps->out, "%sautark %d with %d occs%s\n", ps->prefix, best, maxoccs, tl ? " (top)" : "")); ps->vars[abs (best)].partial = 1; npartial++; } for (p = c; (lit = *p); p++) { assert (occs[lit] > 0); occs[lit]--; } } occs -= ps->max_var; DELETEN (occs, 2*ps->max_var + 1); ps->partial = 1; if (ps->verbosity) picosat_fprintf (ps->out, "%sautarky of size %u out of %u satisfying all clauses (%.1f%%)\n", ps->prefix, npartial, ps->max_var, PERCENT (npartial, ps->max_var)); } void picosat_assume (PS * ps, int int_lit) { Lit *lit; if (ps->measurealltimeinlib) enter (ps); else check_ready (ps); if (ps->state != READY) reset_incremental_usage (ps); assume_contexts (ps); lit = import_lit (ps, int_lit, 1); assume (ps, lit); if (ps->measurealltimeinlib) leave (ps); } int picosat_sat (PS * ps, int l) { int res; char ch; enter (ps); ps->calls++; LOG ( picosat_fprintf (ps->out, "%sSTART call %u\n", ps->prefix, ps->calls)); if (ps->added < ps->ahead) { #ifndef NADC if (ps->addingtoado) ABORT ("API usage: incomplete all different constraint"); else #endif ABORT ("API usage: incomplete clause"); } if (ps->state != READY) reset_incremental_usage (ps); assume_contexts (ps); res = sat (ps, l); assert (ps->state == READY); switch (res) { case PICOSAT_UNSATISFIABLE: ch = '0'; ps->state = UNSAT; break; case PICOSAT_SATISFIABLE: ch = '1'; ps->state = SAT; break; default: ch = '?'; ps->state = UNKNOWN; break; } if (ps->verbosity) { report (ps, 1, ch); rheader (ps); } leave (ps); LOG ( picosat_fprintf (ps->out, "%sEND call %u result %d\n", ps->prefix, ps->calls, res)); ps->last_sat_call_result = res; return res; } int picosat_res (PS * ps) { return ps->last_sat_call_result; } int picosat_deref (PS * ps, int int_lit) { Lit *lit; check_ready (ps); check_sat_state (ps); ABORTIF (!int_lit, "API usage: can not deref zero literal"); ABORTIF (ps->mtcls, "API usage: deref after empty clause generated"); #ifdef STATS ps->derefs++; #endif if (abs (int_lit) > (int) ps->max_var) return 0; lit = int2lit (ps, int_lit); if (lit->val == TRUE) return 1; if (lit->val == FALSE) return -1; return 0; } int picosat_deref_toplevel (PS * ps, int int_lit) { check_ready (ps); ABORTIF (!int_lit, "API usage: can not deref zero literal"); #ifdef STATS ps->derefs++; #endif if (abs (int_lit) > (int) ps->max_var) return 0; return tderef (ps, int_lit); } int picosat_inconsistent (PS * ps) { check_ready (ps); return ps->mtcls != 0; } int picosat_corelit (PS * ps, int int_lit) { check_ready (ps); check_unsat_state (ps); ABORTIF (!int_lit, "API usage: zero literal can not be in core"); assert (ps->mtcls || ps->failed_assumption); #ifdef TRACE { int res = 0; ABORTIF (!ps->trace, "tracing disabled"); if (ps->measurealltimeinlib) enter (ps); core (ps); if (abs (int_lit) <= (int) ps->max_var) res = ps->vars[abs (int_lit)].core; assert (!res || ps->failed_assumption || ps->vars[abs (int_lit)].used); if (ps->measurealltimeinlib) leave (ps); return res; } #else ABORT ("compiled without trace support"); return 0; #endif } int picosat_coreclause (PS * ps, int ocls) { check_ready (ps); check_unsat_state (ps); ABORTIF (ocls < 0, "API usage: negative original clause index"); ABORTIF (ocls >= (int)ps->oadded, "API usage: original clause index exceeded"); assert (ps->mtcls || ps->failed_assumption); #ifdef TRACE { Cls ** clsptr, * c; int res = 0; ABORTIF (!ps->trace, "tracing disabled"); if (ps->measurealltimeinlib) enter (ps); core (ps); clsptr = ps->oclauses + ocls; assert (clsptr < ps->ohead); c = *clsptr; if (c) res = c->core; if (ps->measurealltimeinlib) leave (ps); return res; } #else ABORT ("compiled without trace support"); return 0; #endif } int picosat_failed_assumption (PS * ps, int int_lit) { Lit * lit; Var * v; ABORTIF (!int_lit, "API usage: zero literal as assumption"); check_ready (ps); check_unsat_state (ps); if (ps->mtcls) return 0; assert (ps->failed_assumption); if (abs (int_lit) > (int) ps->max_var) return 0; if (!ps->extracted_all_failed_assumptions) extract_all_failed_assumptions (ps); lit = import_lit (ps, int_lit, 1); v = LIT2VAR (lit); return v->failed; } int picosat_failed_context (PS * ps, int int_lit) { Lit * lit; Var * v; ABORTIF (!int_lit, "API usage: zero literal as context"); ABORTIF (abs (int_lit) > (int) ps->max_var, "API usage: invalid context"); check_ready (ps); check_unsat_state (ps); assert (ps->failed_assumption); if (!ps->extracted_all_failed_assumptions) extract_all_failed_assumptions (ps); lit = import_lit (ps, int_lit, 0); v = LIT2VAR (lit); return v->failed; } const int * picosat_failed_assumptions (PS * ps) { Lit ** p, * lit; Var * v; int ilit; ps->falshead = ps->fals; check_ready (ps); check_unsat_state (ps); if (!ps->mtcls) { assert (ps->failed_assumption); if (!ps->extracted_all_failed_assumptions) extract_all_failed_assumptions (ps); for (p = ps->als; p < ps->alshead; p++) { lit = *p; v = LIT2VAR (*p); if (!v->failed) continue; ilit = LIT2INT (lit); if (ps->falshead == ps->eofals) ENLARGE (ps->fals, ps->falshead, ps->eofals); *ps->falshead++ = ilit; } } if (ps->falshead == ps->eofals) ENLARGE (ps->fals, ps->falshead, ps->eofals); *ps->falshead++ = 0; return ps->fals; } const int * picosat_mus_assumptions (PS * ps, void * s, void (*cb)(void*,const int*), int fix) { int i, j, ilit, len, norig = ps->alshead - ps->als, nwork, * work, res; signed char * redundant; Lit ** p, * lit; int failed; Var * v; #ifndef NDEBUG int oldlen; #endif check_ready (ps); check_unsat_state (ps); len = 0; if (!ps->mtcls) { assert (ps->failed_assumption); if (!ps->extracted_all_failed_assumptions) extract_all_failed_assumptions (ps); for (p = ps->als; p < ps->alshead; p++) if (LIT2VAR (*p)->failed) len++; } if (ps->mass) DELETEN (ps->mass, ps->szmass); ps->szmass = len + 1; NEWN (ps->mass, ps->szmass); i = 0; for (p = ps->als; p < ps->alshead; p++) { lit = *p; v = LIT2VAR (lit); if (!v->failed) continue; ilit = LIT2INT (lit); assert (i < len); ps->mass[i++] = ilit; } assert (i == len); ps->mass[i] = 0; if (ps->verbosity) picosat_fprintf (ps->out, "%sinitial set of failed assumptions of size %d out of %d (%.0f%%)\n", ps->prefix, len, norig, PERCENT (len, norig)); if (cb) cb (s, ps->mass); nwork = len; NEWN (work, nwork); for (i = 0; i < len; i++) work[i] = ps->mass[i]; NEWN (redundant, nwork); CLRN (redundant, nwork); for (i = 0; i < nwork; i++) { if (redundant[i]) continue; if (ps->verbosity > 1) picosat_fprintf (ps->out, "%strying to drop %d%s assumption %d\n", ps->prefix, i, enumstr (i), work[i]); for (j = 0; j < nwork; j++) { if (i == j) continue; if (j < i && fix) continue; if (redundant[j]) continue; picosat_assume (ps, work[j]); } res = picosat_sat (ps, -1); if (res == 10) { if (ps->verbosity > 1) picosat_fprintf (ps->out, "%sfailed to drop %d%s assumption %d\n", ps->prefix, i, enumstr (i), work[i]); if (fix) { picosat_add (ps, work[i]); picosat_add (ps, 0); } } else { assert (res == 20); if (ps->verbosity > 1) picosat_fprintf (ps->out, "%ssuceeded to drop %d%s assumption %d\n", ps->prefix, i, enumstr (i), work[i]); redundant[i] = 1; for (j = 0; j < nwork; j++) { failed = picosat_failed_assumption (ps, work[j]); if (j <= i) { assert ((j < i && fix) || redundant[j] == !failed); continue; } if (!failed) { redundant[j] = -1; if (ps->verbosity > 1) picosat_fprintf (ps->out, "%salso suceeded to drop %d%s assumption %d\n", ps->prefix, j, enumstr (j), work[j]); } } #ifndef NDEBUG oldlen = len; #endif len = 0; for (j = 0; j < nwork; j++) if (!redundant[j]) ps->mass[len++] = work[j]; ps->mass[len] = 0; assert (len < oldlen); if (fix) { picosat_add (ps, -work[i]); picosat_add (ps, 0); } #ifndef NDEBUG for (j = 0; j <= i; j++) assert (redundant[j] >= 0); #endif for (j = i + 1; j < nwork; j++) { if (redundant[j] >= 0) continue; if (fix) { picosat_add (ps, -work[j]); picosat_add (ps, 0); } redundant[j] = 1; } if (ps->verbosity) picosat_fprintf (ps->out, "%sreduced set of failed assumptions of size %d out of %d (%.0f%%)\n", ps->prefix, len, norig, PERCENT (len, norig)); if (cb) cb (s, ps->mass); } } DELETEN (work, nwork); DELETEN (redundant, nwork); if (ps->verbosity) { picosat_fprintf (ps->out, "%sreinitializing unsat state\n", ps->prefix); fflush (ps->out); } for (i = 0; i < len; i++) picosat_assume (ps, ps->mass[i]); #ifndef NDEBUG res = #endif picosat_sat (ps, -1); assert (res == 20); if (!ps->mtcls) { assert (!ps->extracted_all_failed_assumptions); extract_all_failed_assumptions (ps); } return ps->mass; } static const int * mss (PS * ps, int * a, int size) { int i, j, k, res; assert (!ps->mtcls); if (ps->szmssass) DELETEN (ps->mssass, ps->szmssass); ps->szmssass = 0; ps->mssass = 0; ps->szmssass = size + 1; NEWN (ps->mssass, ps->szmssass); LOG ( picosat_fprintf (ps->out, "%ssearch MSS over %d assumptions\n", ps->prefix, size)); k = 0; for (i = k; i < size; i++) { for (j = 0; j < k; j++) picosat_assume (ps, ps->mssass[j]); LOG ( picosat_fprintf (ps->out, "%strying to add assumption %d to MSS : %d\n", ps->prefix, i, a[i])); picosat_assume (ps, a[i]); res = picosat_sat (ps, -1); if (res == 10) { LOG ( picosat_fprintf (ps->out, "%sadding assumption %d to MSS : %d\n", ps->prefix, i, a[i])); ps->mssass[k++] = a[i]; for (j = i + 1; j < size; j++) { if (picosat_deref (ps, a[j]) <= 0) continue; LOG ( picosat_fprintf (ps->out, "%salso adding assumption %d to MSS : %d\n", ps->prefix, j, a[j])); ps->mssass[k++] = a[j]; if (++i != j) { int tmp = a[i]; a[i] = a[j]; a[j] = tmp; } } } else { assert (res == 20); LOG ( picosat_fprintf (ps->out, "%signoring assumption %d in MSS : %d\n", ps->prefix, i, a[i])); } } ps->mssass[k] = 0; LOG ( picosat_fprintf (ps->out, "%sfound MSS of size %d\n", ps->prefix, k)); return ps->mssass; } static void reassume (PS * ps, const int * a, int size) { int i; LOG ( picosat_fprintf (ps->out, "%sreassuming all assumptions\n", ps->prefix)); for (i = 0; i < size; i++) picosat_assume (ps, a[i]); } const int * picosat_maximal_satisfiable_subset_of_assumptions (PS * ps) { const int * res; int i, *a, size; ABORTIF (ps->mtcls, "API usage: CNF inconsistent (use 'picosat_inconsistent')"); enter (ps); size = ps->alshead - ps->als; NEWN (a, size); for (i = 0; i < size; i++) a[i] = LIT2INT (ps->als[i]); res = mss (ps, a, size); reassume (ps, a, size); DELETEN (a, size); leave (ps); return res; } static void check_mss_flags_clean (PS * ps) { #ifndef NDEBUG unsigned i; for (i = 1; i <= ps->max_var; i++) { assert (!ps->vars[i].msspos); assert (!ps->vars[i].mssneg); } #else (void) ps; #endif } static void push_mcsass (PS * ps, int lit) { if (ps->nmcsass == ps->szmcsass) { ps->szmcsass = ps->szmcsass ? 2*ps->szmcsass : 1; RESIZEN (ps->mcsass, ps->nmcsass, ps->szmcsass); } ps->mcsass[ps->nmcsass++] = lit; } static const int * next_mss (PS * ps, int mcs) { int i, *a, size, mssize, mcsize, lit, inmss; const int * res, * p; Var * v; if (ps->mtcls) return 0; check_mss_flags_clean (ps); if (mcs && ps->mcsass) { DELETEN (ps->mcsass, ps->szmcsass); ps->nmcsass = ps->szmcsass = 0; ps->mcsass = 0; } size = ps->alshead - ps->als; NEWN (a, size); for (i = 0; i < size; i++) a[i] = LIT2INT (ps->als[i]); (void) picosat_sat (ps, -1); //TODO short cut for 'picosat_res () == 10'? if (ps->mtcls) { assert (picosat_res (ps) == 20); res = 0; goto DONE; } res = mss (ps, a, size); if (ps->mtcls) { res = 0; goto DONE; } for (p = res; (lit = *p); p++) { v = ps->vars + abs (lit); if (lit < 0) { assert (!v->msspos); v->mssneg = 1; } else { assert (!v->mssneg); v->msspos = 1; } } mssize = p - res; mcsize = INT_MIN; for (i = 0; i < size; i++) { lit = a[i]; v = ps->vars + abs (lit); if (lit > 0 && v->msspos) inmss = 1; else if (lit < 0 && v->mssneg) inmss = 1; else inmss = 0; if (mssize < mcsize) { if (inmss) picosat_add (ps, -lit); } else { if (!inmss) picosat_add (ps, lit); } if (!inmss && mcs) push_mcsass (ps, lit); } picosat_add (ps, 0); if (mcs) push_mcsass (ps, 0); for (i = 0; i < size; i++) { lit = a[i]; v = ps->vars + abs (lit); v->msspos = 0; v->mssneg = 0; } DONE: reassume (ps, a, size); DELETEN (a, size); return res; } const int * picosat_next_maximal_satisfiable_subset_of_assumptions (PS * ps) { const int * res; enter (ps); res = next_mss (ps, 0); leave (ps); return res; } const int * picosat_next_minimal_correcting_subset_of_assumptions (PS * ps) { const int * res, * tmp; enter (ps); tmp = next_mss (ps, 1); res = tmp ? ps->mcsass : 0; leave (ps); return res; } const int * picosat_humus (PS * ps, void (*callback)(void*state,int nmcs,int nhumus), void * state) { int lit, nmcs, j, nhumus; const int * mcs, * p; unsigned i; Var * v; enter (ps); #ifndef NDEBUG for (i = 1; i <= ps->max_var; i++) { v = ps->vars + i; assert (!v->humuspos); assert (!v->humusneg); } #endif nhumus = nmcs = 0; while ((mcs = picosat_next_minimal_correcting_subset_of_assumptions (ps))) { for (p = mcs; (lit = *p); p++) { v = ps->vars + abs (lit); if (lit < 0) { if (!v->humusneg) { v->humusneg = 1; nhumus++; } } else { if (!v->humuspos) { v->humuspos = 1; nhumus++; } } } nmcs++; LOG ( picosat_fprintf (ps->out, "%smcs %d of size %d humus %d\n", ps->prefix, nmcs, (int)(p - mcs), nhumus)); if (callback) callback (state, nmcs, nhumus); } assert (!ps->szhumus); ps->szhumus = 1; for (i = 1; i <= ps->max_var; i++) { v = ps->vars + i; if (v->humuspos) ps->szhumus++; if (v->humusneg) ps->szhumus++; } assert (nhumus + 1 == ps->szhumus); NEWN (ps->humus, ps->szhumus); j = 0; for (i = 1; i <= ps->max_var; i++) { v = ps->vars + i; if (v->humuspos) { assert (j < nhumus); ps->humus[j++] = (int) i; } if (v->humusneg) { assert (j < nhumus); assert (i < INT_MAX); ps->humus[j++] = - (int) i; } } assert (j == nhumus); assert (j < ps->szhumus); ps->humus[j] = 0; leave (ps); return ps->humus; } int picosat_usedlit (PS * ps, int int_lit) { int res; check_ready (ps); check_sat_or_unsat_or_unknown_state (ps); ABORTIF (!int_lit, "API usage: zero literal can not be used"); int_lit = abs (int_lit); res = (int_lit <= (int) ps->max_var) ? ps->vars[int_lit].used : 0; return res; } void picosat_write_clausal_core (PS * ps, FILE * file) { check_trace_support_and_execute (ps, file, write_core_wrapper, 0); } void picosat_write_compact_trace (PS * ps, FILE * file) { check_trace_support_and_execute (ps, file, write_trace, COMPACT_TRACECHECK_TRACE_FMT); } void picosat_write_extended_trace (PS * ps, FILE * file) { check_trace_support_and_execute (ps, file, write_trace, EXTENDED_TRACECHECK_TRACE_FMT); } void picosat_write_rup_trace (PS * ps, FILE * file) { check_trace_support_and_execute (ps, file, write_trace, RUP_TRACE_FMT); } size_t picosat_max_bytes_allocated (PS * ps) { check_ready (ps); return ps->max_bytes; } void picosat_set_propagation_limit (PS * ps, unsigned long long l) { ps->lpropagations = l; } unsigned long long picosat_propagations (PS * ps) { return ps->propagations; } unsigned long long picosat_visits (PS * ps) { return ps->visits; } unsigned long long picosat_decisions (PS * ps) { return ps->decisions; } int picosat_variables (PS * ps) { check_ready (ps); return (int) ps->max_var; } int picosat_added_original_clauses (PS * ps) { check_ready (ps); return (int) ps->oadded; } void picosat_stats (PS * ps) { unsigned redlits; #ifdef STATS check_ready (ps); assert (ps->sdecisions + ps->rdecisions + ps->assumptions == ps->decisions); #endif if (ps->calls > 1) picosat_fprintf (ps->out, "%s%u calls\n", ps->prefix, ps->calls); if (ps->contexts) { picosat_fprintf (ps->out, "%s%u contexts", ps->prefix, ps->contexts); #ifdef STATS picosat_fprintf (ps->out, " %u internal variables", ps->internals); #endif picosat_fprintf (ps->out, "\n"); } picosat_fprintf (ps->out, "%s%u iterations\n", ps->prefix, ps->iterations); picosat_fprintf (ps->out, "%s%u restarts", ps->prefix, ps->restarts); #ifdef STATS picosat_fprintf (ps->out, " (%u skipped)", ps->skippedrestarts); #endif picosat_fputc ('\n', ps->out); #ifndef NFL picosat_fprintf (ps->out, "%s%u failed literals", ps->prefix, ps->failedlits); #ifdef STATS picosat_fprintf (ps->out, ", %u calls, %u rounds, %llu propagations", ps->flcalls, ps->flrounds, ps->flprops); #endif picosat_fputc ('\n', ps->out); #ifdef STATS picosat_fprintf (ps->out, "%sfl: %u = %.1f%% implicit, %llu oopsed, %llu tried, %llu skipped\n", ps->prefix, ps->ifailedlits, PERCENT (ps->ifailedlits, ps->failedlits), ps->floopsed, ps->fltried, ps->flskipped); #endif #endif picosat_fprintf (ps->out, "%s%u conflicts", ps->prefix, ps->conflicts); #ifdef STATS picosat_fprintf (ps->out, " (%u uips = %.1f%%)\n", ps->uips, PERCENT(ps->uips,ps->conflicts)); #else picosat_fputc ('\n', ps->out); #endif #ifndef NADC picosat_fprintf (ps->out, "%s%u adc conflicts\n", ps->prefix, ps->adoconflicts); #endif #ifdef STATS picosat_fprintf (ps->out, "%s%llu dereferenced literals\n", ps->prefix, ps->derefs); #endif picosat_fprintf (ps->out, "%s%u decisions", ps->prefix, ps->decisions); #ifdef STATS picosat_fprintf (ps->out, " (%u random = %.2f%%", ps->rdecisions, PERCENT (ps->rdecisions, ps->decisions)); picosat_fprintf (ps->out, ", %u assumptions", ps->assumptions); picosat_fputc (')', ps->out); #endif picosat_fputc ('\n', ps->out); #ifdef STATS picosat_fprintf (ps->out, "%s%u static phase decisions (%.1f%% of all variables)\n", ps->prefix, ps->staticphasedecisions, PERCENT (ps->staticphasedecisions, ps->max_var)); #endif picosat_fprintf (ps->out, "%s%u fixed variables\n", ps->prefix, ps->fixed); assert (ps->nonminimizedllits >= ps->minimizedllits); redlits = ps->nonminimizedllits - ps->minimizedllits; picosat_fprintf (ps->out, "%s%u learned literals\n", ps->prefix, ps->llitsadded); picosat_fprintf (ps->out, "%s%.1f%% deleted literals\n", ps->prefix, PERCENT (redlits, ps->nonminimizedllits)); #ifdef STATS #ifdef TRACE picosat_fprintf (ps->out, "%s%llu antecedents (%.1f antecedents per clause", ps->prefix, ps->antecedents, AVERAGE (ps->antecedents, ps->conflicts)); if (ps->trace) picosat_fprintf (ps->out, ", %.1f bytes/antecedent)", AVERAGE (ps->znts, ps->antecedents)); picosat_fputs (")\n", ps->out); #endif picosat_fprintf (ps->out, "%s%llu propagations (%.1f propagations per decision)\n", ps->prefix, ps->propagations, AVERAGE (ps->propagations, ps->decisions)); picosat_fprintf (ps->out, "%s%llu visits (%.1f per propagation)\n", ps->prefix, ps->visits, AVERAGE (ps->visits, ps->propagations)); picosat_fprintf (ps->out, "%s%llu binary clauses visited (%.1f%% %.1f per propagation)\n", ps->prefix, ps->bvisits, PERCENT (ps->bvisits, ps->visits), AVERAGE (ps->bvisits, ps->propagations)); picosat_fprintf (ps->out, "%s%llu ternary clauses visited (%.1f%% %.1f per propagation)\n", ps->prefix, ps->tvisits, PERCENT (ps->tvisits, ps->visits), AVERAGE (ps->tvisits, ps->propagations)); picosat_fprintf (ps->out, "%s%llu large clauses visited (%.1f%% %.1f per propagation)\n", ps->prefix, ps->lvisits, PERCENT (ps->lvisits, ps->visits), AVERAGE (ps->lvisits, ps->propagations)); picosat_fprintf (ps->out, "%s%llu other true (%.1f%% of visited clauses)\n", ps->prefix, ps->othertrue, PERCENT (ps->othertrue, ps->visits)); picosat_fprintf (ps->out, "%s%llu other true in binary clauses (%.1f%%)" ", %llu upper (%.1f%%)\n", ps->prefix, ps->othertrue2, PERCENT (ps->othertrue2, ps->othertrue), ps->othertrue2u, PERCENT (ps->othertrue2u, ps->othertrue2)); picosat_fprintf (ps->out, "%s%llu other true in large clauses (%.1f%%)" ", %llu upper (%.1f%%)\n", ps->prefix, ps->othertruel, PERCENT (ps->othertruel, ps->othertrue), ps->othertruelu, PERCENT (ps->othertruelu, ps->othertruel)); picosat_fprintf (ps->out, "%s%llu ternary and large traversals (%.1f per visit)\n", ps->prefix, ps->traversals, AVERAGE (ps->traversals, ps->visits)); picosat_fprintf (ps->out, "%s%llu large traversals (%.1f per large visit)\n", ps->prefix, ps->ltraversals, AVERAGE (ps->ltraversals, ps->lvisits)); picosat_fprintf (ps->out, "%s%llu assignments\n", ps->prefix, ps->assignments); #else picosat_fprintf (ps->out, "%s%llu propagations\n", ps->prefix, picosat_propagations (ps)); picosat_fprintf (ps->out, "%s%llu visits\n", ps->prefix, picosat_visits (ps)); #endif picosat_fprintf (ps->out, "%s%.1f%% variables used\n", ps->prefix, PERCENT (ps->vused, ps->max_var)); sflush (ps); picosat_fprintf (ps->out, "%s%.1f seconds in library\n", ps->prefix, ps->seconds); picosat_fprintf (ps->out, "%s%.1f megaprops/second\n", ps->prefix, AVERAGE (ps->propagations / 1e6f, ps->seconds)); picosat_fprintf (ps->out, "%s%.1f megavisits/second\n", ps->prefix, AVERAGE (ps->visits / 1e6f, ps->seconds)); picosat_fprintf (ps->out, "%sprobing %.1f seconds %.0f%%\n", ps->prefix, ps->flseconds, PERCENT (ps->flseconds, ps->seconds)); #ifdef STATS picosat_fprintf (ps->out, "%srecycled %.1f MB in %u reductions\n", ps->prefix, ps->rrecycled / (double) (1 << 20), ps->reductions); picosat_fprintf (ps->out, "%srecycled %.1f MB in %u simplifications\n", ps->prefix, ps->srecycled / (double) (1 << 20), ps->simps); #else picosat_fprintf (ps->out, "%s%u simplifications\n", ps->prefix, ps->simps); picosat_fprintf (ps->out, "%s%u reductions\n", ps->prefix, ps->reductions); picosat_fprintf (ps->out, "%s%.1f MB recycled\n", ps->prefix, ps->recycled / (double) (1 << 20)); #endif picosat_fprintf (ps->out, "%s%.1f MB maximally allocated\n", ps->prefix, picosat_max_bytes_allocated (ps) / (double) (1 << 20)); } #ifndef NGETRUSAGE #include #include #include #endif double picosat_time_stamp (void) { double res = -1; #ifndef NGETRUSAGE struct rusage u; res = 0; if (!getrusage (RUSAGE_SELF, &u)) { res += u.ru_utime.tv_sec + 1e-6 * u.ru_utime.tv_usec; res += u.ru_stime.tv_sec + 1e-6 * u.ru_stime.tv_usec; } #endif return res; } double picosat_seconds (PS * ps) { check_ready (ps); return ps->seconds; } void picosat_print (PS * ps, FILE * file) { #ifdef NO_BINARY_CLAUSES Lit * lit, *other, * last; Ltk * stack; #endif Lit **q, **eol; Cls **p, *c; unsigned n; if (ps->measurealltimeinlib) enter (ps); else check_ready (ps); n = 0; n += ps->alshead - ps->als; for (p = SOC; p != EOC; p = NXC (p)) { c = *p; if (!c) continue; #ifdef TRACE if (c->collected) continue; #endif n++; } #ifdef NO_BINARY_CLAUSES last = int2lit (ps, -ps->max_var); for (lit = int2lit (ps, 1); lit <= last; lit++) { stack = LIT2IMPLS (lit); eol = stack->start + stack->count; for (q = stack->start; q < eol; q++) if (*q >= lit) n++; } #endif picosat_fprintf (file, "p cnf %d %u\n", ps->max_var, n); for (p = SOC; p != EOC; p = NXC (p)) { c = *p; if (!c) continue; #ifdef TRACE if (c->collected) continue; #endif eol = end_of_lits (c); for (q = c->lits; q < eol; q++) picosat_fprintf (file, "%d ", LIT2INT (*q)); picosat_fputs ("0\n", file); } #ifdef NO_BINARY_CLAUSES last = int2lit (ps, -ps->max_var); for (lit = int2lit (ps, 1); lit <= last; lit++) { stack = LIT2IMPLS (lit); eol = stack->start + stack->count; for (q = stack->start; q < eol; q++) if ((other = *q) >= lit) picosat_fprintf (file, "%d %d 0\n", LIT2INT (lit), LIT2INT (other)); } #endif { Lit **r; for (r = ps->als; r < ps->alshead; r++) picosat_fprintf (file, "%d 0\n", LIT2INT (*r)); } fflush (file); if (ps->measurealltimeinlib) leave (ps); } void picosat_enter (PS * ps) { enter (ps); } void picosat_leave (PS * ps) { leave (ps); } void picosat_message (PS * ps, int vlevel, const char * fmt, ...) { va_list ap; if (vlevel > ps->verbosity) return; picosat_fputs (ps->prefix, ps->out); va_start (ap, fmt); picosat_vfprintf (ps->out, fmt, ap); va_end (ap); picosat_fputc ('\n', ps->out); } int picosat_changed (PS * ps) { int res; check_ready (ps); check_sat_state (ps); res = (ps->min_flipped <= ps->saved_max_var); assert (!res || ps->saved_flips != ps->flips); return res; } void picosat_reset_phases (PS * ps) { rebias (ps); } void picosat_reset_scores (PS * ps) { Rnk * r; ps->hhead = ps->heap + 1; for (r = ps->rnks + 1; r <= ps->rnks + ps->max_var; r++) { CLR (r); hpush (ps, r); } } void picosat_remove_learned (PS * ps, unsigned percentage) { enter (ps); reset_incremental_usage (ps); reduce (ps, percentage); leave (ps); } void picosat_set_global_default_phase (PS * ps, int phase) { check_ready (ps); ABORTIF (phase < 0, "API usage: 'picosat_set_global_default_phase' " "with negative argument"); ABORTIF (phase > 3, "API usage: 'picosat_set_global_default_phase' " "with argument > 3"); ps->defaultphase = phase; } void picosat_set_default_phase_lit (PS * ps, int int_lit, int phase) { unsigned newphase; Lit * lit; Var * v; check_ready (ps); lit = import_lit (ps, int_lit, 1); v = LIT2VAR (lit); if (phase) { newphase = (int_lit < 0) == (phase < 0); v->defphase = v->phase = newphase; v->usedefphase = v->assigned = 1; } else { v->usedefphase = v->assigned = 0; } } void picosat_set_more_important_lit (PS * ps, int int_lit) { Lit * lit; Var * v; Rnk * r; check_ready (ps); lit = import_lit (ps, int_lit, 1); v = LIT2VAR (lit); r = VAR2RNK (v); ABORTIF (r->lessimportant, "can not mark variable more and less important"); if (r->moreimportant) return; r->moreimportant = 1; if (r->pos) hup (ps, r); } void picosat_set_less_important_lit (PS * ps, int int_lit) { Lit * lit; Var * v; Rnk * r; check_ready (ps); lit = import_lit (ps, int_lit, 1); v = LIT2VAR (lit); r = VAR2RNK (v); ABORTIF (r->moreimportant, "can not mark variable more and less important"); if (r->lessimportant) return; r->lessimportant = 1; if (r->pos) hdown (ps, r); } #ifndef NADC unsigned picosat_ado_conflicts (PS * ps) { check_ready (ps); return ps->adoconflicts; } void picosat_disable_ado (PS * ps) { check_ready (ps); assert (!ps->adodisabled); ps->adodisabled = 1; } void picosat_enable_ado (PS * ps) { check_ready (ps); assert (ps->adodisabled); ps->adodisabled = 0; } void picosat_set_ado_conflict_limit (unsigned newadoconflictlimit) { check_ready (ps); ps->adoconflictlimit = newadoconflictlimit; } #endif void picosat_simplify (PS * ps) { enter (ps); reset_incremental_usage (ps); simplify (ps, 1); leave (ps); } int picosat_haveados (void) { #ifndef NADC return 1; #else return 0; #endif } void picosat_save_original_clauses (PS * ps) { if (ps->saveorig) return; ABORTIF (ps->oadded, "API usage: 'picosat_save_original_clauses' too late"); ps->saveorig = 1; } void picosat_set_interrupt (PicoSAT * ps, void * external_state, int (*interrupted)(void * external_state)) { ps->interrupt.state = external_state; ps->interrupt.function = interrupted; } int picosat_deref_partial (PS * ps, int int_lit) { check_ready (ps); check_sat_state (ps); ABORTIF (!int_lit, "API usage: can not partial deref zero literal"); ABORTIF (ps->mtcls, "API usage: deref partial after empty clause generated"); ABORTIF (!ps->saveorig, "API usage: 'picosat_save_original_clauses' missing"); #ifdef STATS ps->derefs++; #endif if (!ps->partial) minautarky (ps); return pderef (ps, int_lit); } BoolNet/src/probabilistic_boolean_network.c0000644000176000001440000004371412473311652020712 0ustar ripleyusers/** * C code for Markov simulations of Probabilistic Boolean Networks * * This is part of the BoolNet R package. * * Copyright 2009/2010 by Christoph Müssel * * Contact christoph.muessel@uni-ulm.de * */ #include "uthash.h" #include "common.h" #include "boolean_network.h" #include #include #include #include #include #include #include #define MATRIX_POOL_SIZE 1024 /** * An entry in the state probability matrix */ typedef struct { // the initial state // (next state is the index of the matrix array) unsigned int state; // the probability for this state transition double probability; // used by the hash table UT_hash_handle hh; } MatrixEntry; /* * Structure that maintains a sparse matrix */ typedef struct { MatrixEntry ** matrix; ArrayListElement * entryPool; unsigned int poolArraySize; unsigned int currentEntry; unsigned int numCols; } SparseMatrix; /* * Initialize a matrix with columns * maintaining an entry pool with arrays of size * */ static inline SparseMatrix * allocSparseMatrix(unsigned int numCols, unsigned int poolArraySize) { SparseMatrix * res = CALLOC(1, sizeof(SparseMatrix)); res->matrix = CALLOC(numCols, sizeof(MatrixEntry *)); memset(res->matrix,0,sizeof(MatrixEntry *) * numCols); res->poolArraySize = poolArraySize; res->currentEntry = 0; res->entryPool = NULL; res->numCols = numCols; return res; } /** * Calculate a transition table with one entry for each state. Each entry consists of * one bit per (non-fixed) function in . * receives the number of elements in the table. * receives the number of array elements occupied by one state. * Returns an array of states. */ unsigned int * probabilisticTransitionTable(ProbabilisticBooleanNetwork * net, unsigned int * tableSize, unsigned int * numElements) { // determine number of fixed genes unsigned int totalFunctionCount = 0; unsigned int i, j, k, numNonFixed = 0; for (i = 0; i < net->numGenes; ++i) { if (net->fixedGenes[i] == -1) { totalFunctionCount += net->numFunctionsPerGene[i]; ++numNonFixed; } } if (totalFunctionCount % BITS_PER_BLOCK_32 == 0) *numElements = totalFunctionCount / BITS_PER_BLOCK_32; else *numElements = totalFunctionCount / BITS_PER_BLOCK_32 + 1; // allocate truth table with 2^(non-fixed genes) elements *tableSize = ((unsigned int)1 << numNonFixed); unsigned int * table = CALLOC(*tableSize * *numElements,sizeof(unsigned int)); if (table == 0) { Rf_error("Too few memory available!"); } unsigned int initialState = 0; // calculate state transitions for(initialState = 0; initialState < *tableSize; ++initialState) { R_CheckUserInterrupt(); //state is simply the binary encoding of the counter //calculate transitions for (i = 0; i < net->numGenes; ++i) { if (net->fixedGenes[i] == -1) { for (j = 0; j < net->numFunctionsPerGene[i]; ++j) { PBNFunction * current = &net->transitionFunctions[i][j]; unsigned int inputdec = 0; for (k = 0; k < current->numGenes; ++k) { if (current->inputGenes[k]) // if the input of the function is not 0 (constant gene), take input bit { unsigned int gene = current->inputGenes[k] - 1; unsigned int bit; if (net->fixedGenes[gene] == -1) bit = (GET_BIT(initialState, net->nonFixedGeneBits[gene])); else // fixed genes are not encoded in the states // => take them from fixedGenes vector bit = net->fixedGenes[gene]; inputdec |= bit << (current->numGenes - k - 1); } } int transition = current->transitionFunction[inputdec]; if(transition != -1) // apply transition function table[initialState * *numElements + current->functionIndex / BITS_PER_BLOCK_32] |= (transition << (current->functionIndex % BITS_PER_BLOCK_32)); else // this is a dummy function for a constant gene // => value does not change table[initialState * *numElements + current->functionIndex / BITS_PER_BLOCK_32] |= (GET_BIT(initialState, net->nonFixedGeneBits[i]) << (current->functionIndex % BITS_PER_BLOCK_32)); } } } } return table; } /** * Calculate combinations of function indices. * is an array containing the numbers of functions for each gene. * is the previous function combination from which the next * combination is calculated. * is the number of functions. * Returns false if there are no more combinations, and true otherwise. */ static inline bool nextFunctionCombination(unsigned int * maxVals, unsigned int * combination, unsigned int size) { unsigned int i; while(true) { for (i = 0; i < size; ++i) { ++combination[i]; if (combination[i] < maxVals[i]) return true; else { if (i == size - 1) return false; else combination[i] = 0; } } } } /** * Add to the element of whose start state is , * or add the corresponding element to the hash table */ static inline void addToMatrixEntry(SparseMatrix * matrix, unsigned int column, unsigned int state, double value) { MatrixEntry * entry; HASH_FIND_INT(matrix->matrix[column], &state, entry); if (entry == NULL) // add a new hash table entry { if (matrix->currentEntry % matrix->poolArraySize == 0) allocNewArray(&matrix->entryPool, matrix->poolArraySize, sizeof(MatrixEntry)); entry = &(((MatrixEntry *)matrix->entryPool->array)[matrix->currentEntry % matrix->poolArraySize]); ++matrix->currentEntry; entry->probability = 0.0; entry->state = state; HASH_ADD_INT(matrix->matrix[column],state,entry); } // increment probability entry->probability += value; } /** * Extract a state from the combined transition table of all functions
* depending on the function combination . * is the number of array elements occupied by one state. * is the state for which the successor state is looked up. * holds the network information. * Returns the extracted state as an integer. */ static inline unsigned int extractState(unsigned int * table, unsigned int numElements, unsigned int initialState, unsigned int * combination, ProbabilisticBooleanNetwork * net) { unsigned int i, j, res = 0; for (i = 0, j = 0; i < net->numGenes; ++i) { if (net->fixedGenes[i] == -1) // exclude fixed genes { unsigned int functionIndex = net->transitionFunctions[i][combination[j]].functionIndex; // insert the th bit at the next position res |= (GET_BIT(table[initialState * numElements + functionIndex / BITS_PER_BLOCK_32], functionIndex % BITS_PER_BLOCK_32)) << net->nonFixedGeneBits[i]; ++j; } } return res; } /** * Free all hash tables in the matrix array * and the array itself. * is the number of columns of the matrix. */ void freeMatrix(SparseMatrix * matrix) { unsigned int i; for (i = 0; i < matrix->numCols; ++i) { // free hash table HASH_CLEAR(hh,matrix->matrix[i]); } // FREE(matrix->matrix); freeArrayList(matrix->entryPool); // free array FREE(matrix); } /** * Start a Markov chain simulation on network by performing matrix multiplications. * receives the number of elements in the returned probability vector. * is the matrix of state transition probabilities with columns. * is an optional vector with encoded start states. */ double * markovSimulation(ProbabilisticBooleanNetwork * net, unsigned int numIterations, unsigned int * outcomeSize, SparseMatrix ** stateProbabilities, unsigned int * startStates, unsigned int numStartStates) { unsigned int tableSize = 0, numElements = 0, i, k; // calculate combined transition table unsigned int * table = probabilisticTransitionTable(net,&tableSize,&numElements); SparseMatrix * matrix = allocSparseMatrix(tableSize, MATRIX_POOL_SIZE); *stateProbabilities = matrix; unsigned int combination[net->numNonFixedGenes]; memset(combination,0,sizeof(unsigned int) * net->numNonFixedGenes); unsigned int maxCombination[net->numNonFixedGenes]; unsigned int geneIndices[net->numNonFixedGenes]; // write array with numbers of functions for (i = 0; i < net->numGenes; ++i) { if (net->fixedGenes[i] == -1) { maxCombination[net->nonFixedGeneBits[i]] = net->numFunctionsPerGene[i]; geneIndices[net->nonFixedGeneBits[i]] = i; } } // set up transition probability matrix do // iterate over all possible function combinations { double probability = net->transitionFunctions[geneIndices[0]][combination[0]].probability; for (i = 1; i < net->numNonFixedGenes; ++i) probability *= net->transitionFunctions[geneIndices[i]][combination[i]].probability; for (i = 0; i < tableSize; ++i) // add probabilities for all reached states in the transition table { R_CheckUserInterrupt(); unsigned int state = extractState(table,numElements,i,combination,net); addToMatrixEntry(matrix,state,i,probability); } } while (nextFunctionCombination(maxCombination,combination,net->numNonFixedGenes)); FREE(table); double * outcome = CALLOC(tableSize,sizeof(double)); double * oldOutcome = CALLOC(tableSize,sizeof(double)); *outcomeSize = tableSize; if (numStartStates == 0) // no start states => equal probability for all states { for (i = 0; i < tableSize; ++i) { outcome[i] = 1.0/tableSize; } } else // start states supplied => equal probability for all supplied states { for (i = 0; i < numStartStates; ++i) { outcome[startStates[i]] = 1.0/numStartStates; } } for (k = 0; k < numIterations; ++k) // perform matrix multiplications { R_CheckUserInterrupt(); memcpy(oldOutcome,outcome,sizeof(double) * tableSize); for (i = 0; i < tableSize; ++i) { MatrixEntry * entry; outcome[i] = 0.0; for(entry = matrix->matrix[i]; entry != NULL; entry=entry->hh.next) { outcome[i] += oldOutcome[entry->state] * entry->probability; } } } FREE(oldOutcome); return outcome; } /** * R wrapper for the Markov simulation. * is a concatenated integer vector of the input genes for all functions. * is used to split up into the single function inputs. * contains the truth table result columns of all functions and is * split up according to . * specifies whether genes are fixed (0,1) or not (-1). * is a vector specifying which function belongs to which gene. * is a vector of probabilities for the functions. * is the number of matrix multiplications to be performed. * is an optional vector of start states (otherwise all states are considered). * is the value below which values are considered to be 0. * specifies whether the result should contain a transition table * Returns a list containing a data frame of important states and their probabilities * and, optionally, the transition table. */ SEXP markovSimulation_R(SEXP inputGenes, SEXP inputGenePositions, SEXP transitionFunctions, SEXP transitionFunctionPositions, SEXP fixedGenes, SEXP functionAssignment, SEXP probabilities, SEXP numSteps, SEXP startStates, SEXP cutoff, SEXP returnTable) { ProbabilisticBooleanNetwork network; network.type = PROBABILISTIC_BOOLEAN_NETWORK; int * _inputGenes = INTEGER(inputGenes); int * _inputGenePositions = INTEGER(inputGenePositions); int * _transitionFunctions = INTEGER(transitionFunctions); int * _transitionFunctionPositions = INTEGER(transitionFunctionPositions); int * _functionAssignment = INTEGER(functionAssignment); double * _probabilities = REAL(probabilities); int _numSteps = *INTEGER(numSteps); int * _startStates = NULL; if (!isNull(startStates)) _startStates = INTEGER(startStates); double _cutoff = *REAL(cutoff); bool _returnTable = (bool)(*INTEGER(returnTable)); unsigned int i, j; network.numGenes = length(fixedGenes); network.fixedGenes = CALLOC(network.numGenes,sizeof(int)); memcpy(network.fixedGenes,INTEGER(fixedGenes),sizeof(unsigned int) * network.numGenes); network.nonFixedGeneBits = CALLOC(network.numGenes,sizeof(unsigned int)); // determine which genes are not fixed network.numNonFixedGenes = 0; for(i = 0; i < network.numGenes; i++) { if(network.fixedGenes[i] == -1) { network.nonFixedGeneBits[i] = network.numNonFixedGenes++; } } network.numFunctionsPerGene = CALLOC(network.numGenes,sizeof(unsigned int)); network.transitionFunctions = CALLOC(network.numGenes,sizeof(PBNFunction *)); // count number of functions per gene for (i = 0; i < length(functionAssignment); ++i) { ++network.numFunctionsPerGene[_functionAssignment[i]]; } // allocate function vectors for (i = 0; i < network.numGenes; ++i) { network.transitionFunctions[i] = CALLOC(network.numFunctionsPerGene[i],sizeof(PBNFunction)); } unsigned int functionCounter[network.numGenes]; memset(functionCounter,0,sizeof(unsigned int) * network.numGenes); unsigned int functionIndex = 0; for (i = 0; i < length(functionAssignment); ++i) // decode functions { PBNFunction * current = &network.transitionFunctions[_functionAssignment[i]] [functionCounter[_functionAssignment[i]]++]; unsigned int numInputs = _inputGenePositions[i+1] - _inputGenePositions[i]; current->inputGenes = CALLOC(numInputs,sizeof(int)); memcpy(current->inputGenes,&_inputGenes[_inputGenePositions[i]],numInputs*sizeof(int)); current->numGenes = numInputs; current->transitionFunction = CALLOC((unsigned int)1 << numInputs,sizeof(int)); memcpy(current->transitionFunction,&_transitionFunctions[_transitionFunctionPositions[i]], ((unsigned int)1 << numInputs)*sizeof(int)); current->probability = _probabilities[i]; if (network.fixedGenes[_functionAssignment[i]] == -1) { current->functionIndex = functionIndex++; } else { current->functionIndex = ~0; } } unsigned int startStateElements; if (network.numGenes % (sizeof(unsigned int) * 8) == 0) { startStateElements = network.numGenes / BITS_PER_BLOCK_32; } else { startStateElements = network.numGenes / BITS_PER_BLOCK_32 + 1; } // decode start states (remove fixed genes) unsigned int numStartStates; unsigned int * decodedStartStates = NULL; if (isNull(startStates)) numStartStates = 0; else { numStartStates = length(startStates)/startStateElements; decodedStartStates = (unsigned int*)CALLOC(numStartStates, sizeof(unsigned int)); } for (i = 0; i < numStartStates; ++i) { decodedStartStates[i] = 0; for (j = 0; j < network.numGenes; ++j) { if (network.fixedGenes[j] == -1) { decodedStartStates[i] |= GET_BIT(_startStates[i * startStateElements + j / BITS_PER_BLOCK_32], j % BITS_PER_BLOCK_32) << network.nonFixedGeneBits[j]; } } } unsigned int outcomeSize = 0; SparseMatrix * matrix; // perform simulation double * outcome = markovSimulation(&network,_numSteps,&outcomeSize,&matrix, decodedStartStates,numStartStates); // determine number of non-zero results unsigned int nonZero = 0; for (i = 0; i < outcomeSize; ++i) { if (outcome[i] > _cutoff) ++nonZero; } // encode results SEXP resSXP, stateSXP, probSXP; if (_returnTable) PROTECT(resSXP = allocList(5)); else PROTECT(resSXP = allocList(2)); PROTECT(stateSXP = allocVector(INTSXP,nonZero*startStateElements)); PROTECT(probSXP = allocVector(REALSXP,nonZero)); int * states = INTEGER(stateSXP); double * prob = REAL(probSXP); //return R_NilValue; for (i = 0, j = 0; i < outcomeSize; ++i) // encode states with non-zero probability { if (outcome[i] > _cutoff) { prob[j] = outcome[i]; states[j*startStateElements] = i; // re-encode fixed genes insertFixedGenes((unsigned int *)&states[j*startStateElements],network.fixedGenes,network.numGenes); ++j; } } SET_TAG(resSXP, install("states")); SET_TAG(CDR(resSXP), install("probabilities")); SETCAR(resSXP,stateSXP); SETCADR(resSXP,probSXP); if (_returnTable) // encode the transition table { SET_TAG(CDR(CDR(resSXP)), install("initialStates")); SET_TAG(CDR(CDR(CDR(resSXP))), install("nextStates")); SET_TAG(CDR(CDR(CDR(CDR(resSXP)))), install("transitionProbabilities")); //calculate size of transition table unsigned int tableSize = 0; for (i = 0; i < outcomeSize; ++i) { MatrixEntry * entry; for(entry = matrix->matrix[i]; entry != NULL; entry=entry->hh.next) { ++tableSize; } } SEXP initialStateSXP, nextStateSXP, transitionProbSXP; PROTECT(initialStateSXP = allocVector(INTSXP,tableSize * startStateElements)); PROTECT(nextStateSXP = allocVector(INTSXP,tableSize * startStateElements)); PROTECT(transitionProbSXP = allocVector(REALSXP,tableSize)); unsigned int * initialStates = (unsigned int *)INTEGER(initialStateSXP); unsigned int * nextStates = (unsigned int *)INTEGER(nextStateSXP); double * transitionProbs = (double *)REAL(transitionProbSXP); // encode non-zero states in transition matrix j = 0; for (i = 0; i < outcomeSize; ++i) { MatrixEntry * entry; for(entry = matrix->matrix[i]; entry != NULL; entry=entry->hh.next) { initialStates[j * startStateElements] = entry->state; insertFixedGenes(&initialStates[j*startStateElements],network.fixedGenes,network.numGenes); nextStates[j * startStateElements] = i; insertFixedGenes(&nextStates[j*startStateElements],network.fixedGenes,network.numGenes); transitionProbs[j] = entry->probability; ++j; } } SETCADDR(resSXP,initialStateSXP); SETCADDDR(resSXP,nextStateSXP); SETCADDDR(CDR(resSXP),transitionProbSXP); UNPROTECT(3); } UNPROTECT(3); freeMatrix(matrix); FREE(outcome); if (decodedStartStates != NULL) FREE(decodedStartStates); return resSXP; } BoolNet/src/symbolic_network.c0000644000176000001440000003411512473311652016201 0ustar ripleyusers/** * C code for a generic symbolic simulator for Boolean networks * * This is part of the BoolNet R package. * * Copyright 2013 by Christoph Muessel * * Contact christoph.muessel@uni-ulm.de * */ #include "random.h" #include "common.h" #include "symbolic_network.h" /** * Free the expression tree */ void freeFormula(BooleanFormula * formula) { if (formula->type == FORMULA_ATOM || formula->type == FORMULA_CONSTANT) { free(formula); } else { BooleanOperator* operator = (BooleanOperator*) formula; unsigned int i; for (i = 0; i < operator->numOperands; ++i) { freeFormula(operator->operands[i]); } free(operator->operands); free(operator); } } /** * Free the internal network structure */ void freeSymbolicNetwork(SymbolicBooleanNetwork * network) { free(network->stateSizes); free(network->stateOffsets); free(network->fixedGenes); free(network->stateFixed); unsigned int i, j; for (i = 0; i < network->numGenes; ++i) { freeFormula(network->interactions[i]); if (network->cnfInteractions != NULL) { for (j = 0; j <= network->attractorSearchStartTime; ++j) freeFormula(network->cnfInteractions[i][j]); free(network->cnfInteractions[i]); } } free(network->interactions); if (network->cnfInteractions != NULL) free(network->cnfInteractions); free(network); } /** * Evaluate an expression tree on the previous state . * is an array describing where the history of the i-th gene starts. * is the total number of genes in the network. * Returns a logical value resulting from the evaluation. */ unsigned char evaluate(BooleanFormula * formula, TemporalState * state, unsigned int * stateOffsets, const unsigned int numGenes) { if (formula->type == FORMULA_CONSTANT) // return the constant value { Constant* constant = (Constant*) formula; char value = constant->value; if (constant->negated) return !value; else return value; } else if (formula->type == FORMULA_ATOM) // return the value of the atom in the current state { unsigned char res; BooleanAtom* atom = (BooleanAtom*) formula; res = state->state[stateOffsets[atom->literal] + atom->time]; if (atom->negated) return !res; else return res; } else // recursively evaluate operands and summarize them using the operators { BooleanOperator* operator = (BooleanOperator*) formula; unsigned int i, threshold, sum, comparisonTimeStep; switch (operator->operator) { case OPERATOR_OR: for (i = 0; i < operator->numOperands; ++i) { if (evaluate(operator->operands[i], state, stateOffsets, numGenes)) { return !operator->negated; } } return operator->negated; case OPERATOR_AND: for (i = 0; i < operator->numOperands; ++i) { if (!evaluate(operator->operands[i], state, stateOffsets, numGenes)) { return operator->negated; } } return !operator->negated; case OPERATOR_MAJ: threshold = floor(operator->numOperands / 2.0); sum = 0; for (i = 0; i < operator->numOperands; ++i) { if (evaluate(operator->operands[i], state, stateOffsets, numGenes)) { ++sum; if (sum > threshold) return !operator->negated; } } return operator->negated; case OPERATOR_SUMIS: threshold = ((Constant *) operator->operands[operator->numOperands - 1])->value; sum = 0; for (i = 0; i < operator->numOperands - 1; ++i) { if (evaluate(operator->operands[i], state, stateOffsets, numGenes)) { ++sum; } } if (sum == threshold) return !operator->negated; else return operator->negated; case OPERATOR_SUMGT: threshold = ((Constant *) operator->operands[operator->numOperands - 1])->value; sum = 0; for (i = 0; i < operator->numOperands - 1; ++i) { if (evaluate(operator->operands[i], state, stateOffsets, numGenes)) { ++sum; if (sum > threshold) return !operator->negated; } } return operator->negated; case OPERATOR_SUMLT: threshold = ((Constant *) operator->operands[operator->numOperands - 1])->value; sum = 0; for (i = 0; i < operator->numOperands - 1; ++i) { if (evaluate(operator->operands[i], state, stateOffsets, numGenes)) { ++sum; if (sum >= threshold) return operator->negated; } } return !operator->negated; case OPERATOR_TIMEIS: comparisonTimeStep = ((Constant *) operator->operands[0])->value; if (operator->negated) return (state->timeStep != comparisonTimeStep - 1); else return (state->timeStep == comparisonTimeStep - 1); case OPERATOR_TIMEGT: comparisonTimeStep = ((Constant *) operator->operands[0])->value; if (operator->negated) return (state->timeStep <= comparisonTimeStep - 1); else return (state->timeStep > comparisonTimeStep - 1); case OPERATOR_TIMELT: comparisonTimeStep = ((Constant *) operator->operands[0])->value; if (operator->negated) return (state->timeStep >= comparisonTimeStep - 1); else return (state->timeStep < comparisonTimeStep - 1); default: Rf_error("Unknown operator!"); } } } /** * Print a Boolean expression tree (for debugging purposes only) */ void printFormula(BooleanFormula * formula) { if (formula->type == FORMULA_ATOM) { BooleanAtom* atom = (BooleanAtom*) formula; if (atom->negated) Rprintf("!"); Rprintf("var%d", atom->literal); if (atom->time != 0) Rprintf("[%d]", -atom->time - 1); } else if (formula->type == FORMULA_CONSTANT) { Constant* constant = (Constant*) formula; if (constant->negated) Rprintf("!"); Rprintf("%d", constant->value); } else { BooleanOperator* operator = (BooleanOperator*) formula; if (operator->negated) Rprintf("!"); if (operator->operator == OPERATOR_MAJ) Rprintf("maj"); else if (operator->operator == OPERATOR_SUMGT) Rprintf("sumgt"); else if (operator->operator == OPERATOR_TIMEIS) Rprintf("timeis"); else if (operator->operator == OPERATOR_TIMEGT) Rprintf("timegt"); else if (operator->operator == OPERATOR_TIMELT) Rprintf("timelt"); Rprintf("("); unsigned int i; for (i = 0; i < operator->numOperands; ++i) { printFormula(operator->operands[i]); if (i < operator->numOperands - 1) { if (operator->operator == OPERATOR_OR) Rprintf(" | "); else if (operator->operator == OPERATOR_AND) Rprintf(" & "); else Rprintf(", "); } } Rprintf(")"); } } BooleanFormula * copyFormula(BooleanFormula * formula, bool negate, unsigned int timeOffset) { if (formula->type == FORMULA_ATOM) { BooleanAtom * res = calloc(1, sizeof(BooleanAtom)); memcpy(res, formula, sizeof(BooleanAtom)); if (negate) res->negated = !res->negated; res->time += timeOffset; return (BooleanFormula *) res; } if (formula->type == FORMULA_CONSTANT) { Constant * res = calloc(1, sizeof(Constant)); memcpy(res, formula, sizeof(Constant)); if (negate) res->negated = !res->negated; return (BooleanFormula *) res; } unsigned int i; BooleanOperator * operator = (BooleanOperator*) formula; bool negated = (negate && !operator->negated) || (!negate && operator->negated); BooleanOperator * res = allocOperator(operator->operator, negated, operator->numOperands, NULL); for (i = 0; i < res->numOperands; ++i) { res->operands[i] = copyFormula(operator->operands[i], false, timeOffset); } return (BooleanFormula *) res; } BooleanFormula * convertToCNF(BooleanFormula * formula, bool negate, unsigned int time) { bool innerNegate = (!negate && formula->negated) || (negate && !formula->negated); if (formula->type == FORMULA_ATOM || formula->type == FORMULA_CONSTANT) { return copyFormula(formula, negate, 0); } BooleanOperator* operator = (BooleanOperator*) formula; if (operator->operator == OPERATOR_TIMEIS || operator->operator == OPERATOR_TIMELT || operator->operator == OPERATOR_TIMEGT) // temporal operators => compare to time { int value; int comparisonTimeStep = ((Constant *) operator->operands[0])->value - 1; switch (operator->operator) { case OPERATOR_TIMEGT: value = (time > comparisonTimeStep); break; case OPERATOR_TIMELT: value = (time < comparisonTimeStep); break; default: value = (time == comparisonTimeStep); break; } if (innerNegate) value = !value; Constant * res = allocConstant(value, false); return (BooleanFormula *) res; } unsigned int operandBufferSize, numOperands, i, j; BooleanFormula ** operands; ALLOC_BUFFER(operands, BooleanFormula *, operandBufferSize, numOperands); if (operator->operator == OPERATOR_SUMGT || operator->operator == OPERATOR_SUMLT || operator->operator == OPERATOR_SUMIS || operator->operator == OPERATOR_MAJ) // counting operators => transform to canonical CNF { unsigned int stateSize, threshold; if (operator->operator != OPERATOR_MAJ) { stateSize = operator->numOperands - 1; threshold = ((Constant*) operator->operands[stateSize])->value; } else { stateSize = operator->numOperands; threshold = floor(stateSize / 2.0); } unsigned char * state = calloc(stateSize, sizeof(unsigned char)); do { bool includeTerm = false; unsigned int count = 0; for (i = 0; i < stateSize; ++i) { if (state[i]) ++count; } switch (operator->operator) { case OPERATOR_SUMGT: case OPERATOR_MAJ: includeTerm = (count <= threshold); break; case OPERATOR_SUMLT: includeTerm = (count >= threshold); break; case OPERATOR_SUMIS: includeTerm = (count != threshold); break; } if (innerNegate) includeTerm = !includeTerm; if (includeTerm) { BooleanFormula ** subOperands = calloc(stateSize, sizeof(BooleanFormula *)); for (i = 0; i < stateSize; ++i) { subOperands[i] = copyFormula(operator->operands[i], state[i], 0); } BooleanOperator * subOp = allocOperator(OPERATOR_OR, false, stateSize, subOperands); PUT_BUFFER(operands, BooleanFormula *, operandBufferSize, numOperands, subOp); } } while (getNextState(state, NULL, stateSize)); free(state); BooleanOperator * res = allocOperator(OPERATOR_AND, false, numOperands, operands); BooleanFormula * res2 = convertToCNF((BooleanFormula *) res, false, time); freeFormula((BooleanFormula *) res); return res2; } // AND or OR unsigned int innerAnds = 0, op; if (innerNegate) { if (operator->operator == OPERATOR_AND) op = OPERATOR_OR; else op = OPERATOR_AND; } else op = operator->operator; Constant * overrideResult = NULL; for (i = 0; i < operator->numOperands; ++i) { BooleanFormula * operand = convertToCNF(operator->operands[i], innerNegate, time); if (operand->type == FORMULA_OPERATOR) { BooleanOperator * subOp = (BooleanOperator *) operand; if (subOp->operator == op || subOp->numOperands == 1) { for (j = 0; j < subOp->numOperands; ++j) { PUT_BUFFER(operands, BooleanFormula *, operandBufferSize, numOperands, subOp->operands[j]); } free(subOp->operands); free(subOp); } else { if (subOp->operator == OPERATOR_AND) ++innerAnds; PUT_BUFFER(operands, BooleanFormula *, operandBufferSize, numOperands, subOp); } } else { if (operand->type == FORMULA_CONSTANT) { Constant * c = (Constant * )operand; if ((op == OPERATOR_OR && ((c->value == 1) ^ c->negated)) || (op == OPERATOR_AND && ((c->value == 0) ^ c->negated))) overrideResult = (Constant *)copyFormula((BooleanFormula *)c, false, 0); else freeFormula(operand); } else PUT_BUFFER(operands, BooleanFormula *, operandBufferSize, numOperands, operand); } } if (overrideResult != NULL) { for (i = 0; i < numOperands; ++i) { freeFormula(operands[i]); } free(operands); return (BooleanFormula *)overrideResult; } if (op == OPERATOR_OR && innerAnds > 0) { unsigned int transformedOperandBufferSize, numTransformedOperands; BooleanFormula ** transformedOperands; ALLOC_BUFFER(transformedOperands, BooleanFormula *, transformedOperandBufferSize, numTransformedOperands); unsigned int * comb = calloc(numOperands, sizeof(unsigned int)); unsigned int * counts = calloc(numOperands, sizeof(unsigned int)); for (i = 0; i < numOperands; ++i) { if (operands[i]->type == FORMULA_OPERATOR) counts[i] = ((BooleanOperator *) operands[i])->numOperands; else counts[i] = 1; } unsigned int pos = 0; while (true) { BooleanOperator * newOp = allocOperator(OPERATOR_OR, false, numOperands, NULL); for (i = 0; i < numOperands; ++i) { if (operands[i]->type == FORMULA_OPERATOR) newOp->operands[i] = copyFormula( ((BooleanOperator *) operands[i])->operands[comb[i]], false, 0); else newOp->operands[i] = copyFormula(operands[i], false, 0); } PUT_BUFFER(transformedOperands, BooleanFormula *, transformedOperandBufferSize, numTransformedOperands, newOp); if (comb[pos] < counts[pos] - 1) ++comb[pos]; else { if (pos == numOperands - 1) break; while (pos < numOperands && comb[pos] == counts[pos] - 1) ++pos; if (pos == numOperands) break; for (i = 0; i < pos; ++i) { comb[i] = 0; } ++comb[pos]; pos = 0; } } free(comb); free(counts); for (i = 0; i < numOperands; ++i) freeFormula(operands[i]); free(operands); BooleanOperator * res = allocOperator(OPERATOR_AND, false, numTransformedOperands, transformedOperands); BooleanFormula * res2 = convertToCNF((BooleanFormula *) res, false, time); freeFormula((BooleanFormula *) res); return res2; } else { BooleanOperator * res = allocOperator(op, false, numOperands, operands); return (BooleanFormula *) res; } } SEXP convertToCNF_R(SEXP network) { SymbolicBooleanNetwork * _network = R_ExternalPtrAddr(network); if (_network == NULL) error("Internal network structures not supplied to C handler!"); unsigned int k; for (k = 0; k < _network->numGenes; ++k) { Rprintf("var%d = ", k); BooleanFormula * converted = convertToCNF(_network->interactions[k], false, 0); printFormula(converted); freeFormula(converted); Rprintf("\n"); } return R_NilValue; } BoolNet/src/attractor_info.h0000644000176000001440000000457312473311652015637 0ustar ripleyusers#ifndef ATTRACTOR_INFO_H #define ATTRACTOR_INFO_H typedef struct TTE { unsigned int * initialState; unsigned int * nextState; struct TTE * next; } TransitionTableEntry; /** * Structure that internally describes an attractor */ typedef struct Attractor { // an array of states the attractor consists of unsigned int *involvedStates; // if this is a complex attractor, // the transitions of the attractor are stored here TransitionTableEntry * table; // the number of elements in
unsigned int transitionTableSize; // the number of array elements for one entry of // - i.e. for more than 32 genes, successive // array elements form one entry. unsigned int numElementsPerEntry; // the number of states in int length; // the number of states in the basin of attraction unsigned int basinSize; // list pointer to the next element struct Attractor *next; } Attractor, *pAttractor; /** * A structure holding all information * retrieved by the algorithms in this file */ typedef struct { // the number of elements in the following three arrays unsigned long long tableSize; // the states before the transition - can be NULL unsigned int *initialStates; // the resulting states of the transition table unsigned int *table; // the number of array elements for one entry of the table // - i.e. for more than 32 genes, successive // array elements in
and form one table entry. unsigned int numElementsPerEntry; // the attractors the corresponding states belong to unsigned int *attractorAssignment; // the number of transitions needed to go from the original state // (before transition, not stored here as it is defined by the order) // to the attractor unsigned int *stepsToAttractor; // the list of attractors pAttractor attractorList; // the number of list elements in attractorList unsigned int numAttractors; } AttractorInfo, *pAttractorInfo; /** * Allocate a new AttractorInfo structure for states */ extern pAttractorInfo allocAttractorInfo(unsigned long long tableSize, unsigned int numGenes); /** * Free a list of attractor structures */ extern void freeAttractorList(pAttractor p); /** * Free an AttractorInfo structure including * all sub-elements and the attractor list */ extern void freeAttractorInfo(pAttractorInfo p); #endif BoolNet/src/Makevars.win0000644000176000001440000000005012473311513014716 0ustar ripleyusersPKG_CFLAGS = -DNGETRUSAGE -DNALLSIGNALS BoolNet/src/reconstruct_network.c0000644000176000001440000010537412473311652016741 0ustar ripleyusers/** * C code for the reconstruction of Boolean networks * * This is part of the BoolNet R package. * * Copyright 2009/2010 by Christoph Müssel * * Contact christoph.muessel@uni-ulm.de * */ #include #include #include #include #include #include #include #include "common.h" /** * Structure for lists of * transition functions for * the return value of reconstruction functions */ typedef struct FLE { // the number of input genes unsigned int k; // the indices of the input genes int * inputGenes; // The transition function. // ATTENTION: // If all functions are built (returnPBN = true), this // is a bit vector containing the transition function // If "don't care" values are allowed (returnPBN = false), // each integer element encodes one bit unsigned int * transitionFunction; // the next element in the list struct FLE * next; } FunctionListElement; /** * Structure to build an internal stack * of functions. This is used to determine * all equally-rated functions recursively */ typedef struct FSE { // the bit position to be processed next unsigned int pos; // the (incomplete) transition function unsigned int * transitionFunction; // the next element on the stack struct FSE * next; } FunctionStackElement; typedef struct { unsigned int pos; unsigned int numFixed; unsigned int numAvailable; unsigned int k; unsigned int n; unsigned int * indexMapping; int * comb; int * intComb; } InputCombination; /** * Add a new element to the function list specified by . * Set the corresponding values , and * by copying the supplied values. * is the number of elements needed for the transition function vector. * Returns the new list element. */ static inline FunctionListElement * addFunctionListElement(FunctionListElement ** root, unsigned int k, unsigned int transitionFunctionSize, int * inputGenes, unsigned int * transitionFunction) { FunctionListElement * el = CALLOC(1,sizeof(FunctionListElement)); el->k = k; el->inputGenes = CALLOC(k,sizeof(unsigned int)); memcpy(el->inputGenes,inputGenes,sizeof(unsigned int) * k); el->transitionFunction = CALLOC(transitionFunctionSize,sizeof(unsigned int)); memcpy(el->transitionFunction,transitionFunction,sizeof(unsigned int) * transitionFunctionSize); el->next = *root; *root = el; return el; } /** * Free all elements of the list */ void freeFunctionList(FunctionListElement ** root) { if (*root == NULL) return; FunctionListElement * current = *root; do { FunctionListElement * next = current->next; FREE(current->inputGenes); FREE(current->transitionFunction); FREE(current); current = next; } while(current != NULL); *root = NULL; } /** * Push a new element on top of the stack . * and describe the data to be pushed. * These elements are copied. * is the number of elements of . * Returns the new stack element. */ static inline FunctionStackElement * pushFunctionStackElement(FunctionStackElement ** stack, unsigned int * transitionFunction, unsigned int transitionFunctionSize, unsigned int pos) { FunctionStackElement * el = CALLOC(1,sizeof(FunctionStackElement)); el->pos = pos; el->transitionFunction = CALLOC(transitionFunctionSize,sizeof(unsigned int)); memcpy(el->transitionFunction,transitionFunction,sizeof(unsigned int) * transitionFunctionSize); el->next = *stack; *stack = el; return el; } /** * Remove the top-level element from . */ static inline void deleteFunctionStackElement(FunctionStackElement ** stack) { FunctionStackElement * el = *stack; *stack = (*stack)->next; FREE(el->transitionFunction); FREE(el); } /** * A function that iteratively returns all choose combinations of input genes * if called multiple times. * The function receives an input array containing the previous combination. * Before the first call, this combination must be initialized to {k-1, k-2, ... , 0}, * and must be set to 0. * After each call, contains the next combination. If all combinations have been * listed, the function returns false, otherwise true. */ static inline bool nextCombination(InputCombination * comb) { bool posChanged = false; // find the first position that has not been set // to its maximum number while(comb->pos < comb->k - comb->numFixed && comb->intComb[comb->pos] == comb->numAvailable - comb->pos - 1) { ++ (comb->pos); posChanged = true; } if (comb->pos == comb->k - comb->numFixed) { // all elements have been listed return false; } if (posChanged) // reset lower-order positions, and increase // the position found previously { unsigned int i; ++comb->intComb[comb->pos]; for (i = comb->pos; i > 0; --i) comb->intComb[i-1] = comb->intComb[i] + 1; comb->pos = 0; } else // the current position has not been set to its maximum value // => increase it ++comb->intComb[comb->pos]; unsigned int j; for (j = 0; j < comb->k - comb->numFixed; ++j) { comb->comb[comb->numFixed + j] = comb->indexMapping[comb->intComb[j]]; } //for (j = 0; j < comb->k; ++j) // Rprintf("%d ",comb->comb[j]); //Rprintf("\n"); return true; } static inline InputCombination * initCombination(int * requiredDependencies, int * excludedDependencies, unsigned int k, unsigned int n) { InputCombination * res = CALLOC(1,sizeof(InputCombination)); res->comb = CALLOC(k,sizeof(int)); res->indexMapping = CALLOC(n,sizeof(int)); res->k = k; res->n = n; res->numFixed = 0; res->numAvailable = 0; unsigned int j; for (j = 0; j < n; ++j) { if (requiredDependencies != NULL && requiredDependencies[j] != 0) { res->comb[res->numFixed] = j; ++(res->numFixed); } else if (excludedDependencies == NULL || excludedDependencies[j] == 0) { res->indexMapping[res->numAvailable] = j; ++(res->numAvailable); } } res->intComb = CALLOC(res->numAvailable,sizeof(unsigned int)); for (j = 0; j < res->k - res->numFixed; ++j) { res->intComb[j] = k - res->numFixed - j - 1; res->comb[res->numFixed + j] = res->indexMapping[res->intComb[j]]; } return res; } static inline void freeInputCombination(InputCombination * comb) { FREE(comb->comb); FREE(comb->intComb); FREE(comb->indexMapping); FREE(comb); } /** * Lähdesmäki's best-fit extension algorithm to infer Boolean networks * from time series. * and represent state transitions. * Here, consecutive array entries describe one state, * thus the array size is . * is an array of the same length as specifying * whether inputs were normally regulated (-1), overexpressed (1), or knocked out (0). * is the number of genes in the time series. * is the maximum number of inputs a function can have. * is a flattened Boolean matrix specifying dependencies * that *must* occur in the reconstructed networks. * Similarly, specifies dependencies * that *must not* occur in the reconstructed networks. * receives one list of possible functions for each gene, and * stores the error of these functions on the time series. * specifies whether the algorithm stops as soon as a perfect solution * is found (false) or not (true). * specifies whether incomplete functions (with "don't care" values) * are expanded recursively (true) or returned as-is (false). */ void bestFitExtension(unsigned int * inputStates, unsigned int * outputStates, unsigned int * perturbations, unsigned int numStates, unsigned int numGenes, int * requiredDependencies, int * excludedDependencies, unsigned int maxK, FunctionListElement ** result, unsigned int * errors, bool allSolutions, bool returnPBN) { unsigned int i, j; unsigned int numElts; // calculate block size in time series array if (numGenes % BITS_PER_BLOCK_32 == 0) numElts = numGenes / BITS_PER_BLOCK_32; else numElts = numGenes / BITS_PER_BLOCK_32 + 1; // store the lengths of the current best solutions for // each gene - initialized with maximum value. unsigned int bestLength[numGenes]; memset(bestLength,0xFF,sizeof(unsigned int) * numGenes); for (i = 0; i < numGenes; ++i) // iterate over genes { unsigned int currentMaxK = maxK, minK = 0, excludedCount = 0; if (requiredDependencies != NULL) for (j = 0; j < numGenes; ++j) if (requiredDependencies[i*numGenes + j] != 0) ++minK; if (excludedDependencies != NULL) for (j = 0; j < numGenes; ++j) if (excludedDependencies[i*numGenes + j] != 0) ++excludedCount; if (currentMaxK < minK) currentMaxK = minK; if (currentMaxK > numGenes - excludedCount) currentMaxK = numGenes - excludedCount; // set error to maximum errors[i] = ~0; unsigned int k, s; if (minK == 0) { // check for constant genes unsigned int geneVal = GET_BIT(outputStates[i/BITS_PER_BLOCK_32],i % BITS_PER_BLOCK_32); bool isConst = true; unsigned int const0Err = (geneVal > 0), const1Err = (geneVal == 0); for (s = 1; s < numStates; ++s) { if (perturbations != NULL && perturbations[s * numGenes + i] != -1) // ignore this state if the current gene is perturbed continue; unsigned int nextBit = GET_BIT(outputStates[s*numElts + i/BITS_PER_BLOCK_32],i % BITS_PER_BLOCK_32); if (nextBit != geneVal) { isConst = false; } if (nextBit) ++const0Err; else ++const1Err; } if (isConst) // gene is constant => simplest function already found! { int inputGenes = -1; addFunctionListElement(&result[i],1,1,&inputGenes,&geneVal); errors[i] = 0; bestLength[i] = 0; } else { if (const0Err <= const1Err) { int inputGenes = -1; unsigned int val = 0; addFunctionListElement(&result[i],1,1,&inputGenes,&val); errors[i] = const0Err; bestLength[i] = 0; } if (const1Err <= const0Err) { int inputGenes = -1; unsigned int val = 1; addFunctionListElement(&result[i],1,1,&inputGenes,&val); errors[i] = const1Err; bestLength[i] = 0; } } } for (k = (minK > 1? minK : 1); k <= currentMaxK; ++k) // iterate over possible numbers of inputs { if (errors[i] == 0 && !allSolutions) break; // initialize gene combination vector InputCombination * comb = initCombination((requiredDependencies == NULL? NULL : &requiredDependencies[i*numGenes]), (excludedDependencies == NULL? NULL : &excludedDependencies[i*numGenes]), k, numGenes); // calculate the number of array elements needed // to represent the output of a function unsigned int array_sz = (unsigned int)1 << k; unsigned int numEltsFunc; if (array_sz % BITS_PER_BLOCK_32 == 0) numEltsFunc = array_sz / BITS_PER_BLOCK_32; else numEltsFunc = array_sz / BITS_PER_BLOCK_32 + 1; unsigned int c_0[array_sz]; unsigned int c_1[array_sz]; do { R_CheckUserInterrupt(); memset(c_0,0,sizeof(unsigned int) * array_sz); memset(c_1,0,sizeof(unsigned int) * array_sz); for (s = 0; s < numStates; ++s) // iterate over states and count errors { if (perturbations != NULL && perturbations[s * numGenes + i] != -1) // the current gene is perturbed in this state // => ignore the state for inference of this gene continue; unsigned int input = 0, bit; for (bit = 0; bit < k; ++bit) // build input by transferring the bits of the input genes // in the current state into a condensed input value { input |= (GET_BIT(inputStates[s * numElts + comb->comb[bit]/BITS_PER_BLOCK_32], comb->comb[bit] % BITS_PER_BLOCK_32)) << bit; } // determine the response value after a state transition unsigned int response = GET_BIT(outputStates[s * numElts + i/BITS_PER_BLOCK_32],i % BITS_PER_BLOCK_32); if (response == 0) ++c_1[input]; else ++c_0[input]; } unsigned int f[numEltsFunc]; memset(f,0,sizeof(unsigned int) * numEltsFunc); unsigned int error = 0, c; for (c = 0; c < array_sz; ++c) { if (c_0[c] > c_1[c]) error += c_1[c]; else error += c_0[c]; } if (error < errors[i]) // the new solution is better than all previously found solutions // => reset the solution list and the best error { errors[i] = error; bestLength[i] = k; freeFunctionList(&result[i]); } if (error <= errors[i] && (bestLength[i] >= k || allSolutions)) { if (!returnPBN) // encode a function with "don't care" value // note: in contrast to the code below, // each entry of f corresponds to a single bit here { unsigned int f[array_sz]; memset(f,0,sizeof(unsigned int) * array_sz); for (unsigned int l = 0; l < array_sz; ++l) { if (c_1[l] < c_0[l]) { f[l] = 1; } else if (c_1[l] > c_0[l]) { f[l] = 0; } else { f[l] = -1; } } addFunctionListElement(&result[i],k,array_sz,comb->comb,f); } else { // recursively determine all functions by filling "don't care" values. // note: here, the elements of f are used as bit vectors // to save memory // start with an element initialized to zero, // and first examine the 0-th position unsigned int f[numEltsFunc]; memset(f,0,sizeof(unsigned int) * numEltsFunc); FunctionStackElement * stack = NULL; pushFunctionStackElement(&stack,f,numEltsFunc,0); do { R_CheckUserInterrupt(); // get top-level stack element FunctionStackElement * el = stack; if (el->pos == array_sz) // the top-level element on the stack is a complete function // => clean it up { // create a new element in the result function list containing the // completed function on the stack addFunctionListElement(&result[i],k,numEltsFunc, comb->comb,el->transitionFunction); // remove the completed function from the stack deleteFunctionStackElement(&stack); } else if (c_1[el->pos] == c_0[el->pos]) // the 0-error and the 1-error are equal // => create two solution branches, one with the -th bit set to 1 // and one with the -th bit set to 0 { // create a new element on the stack with the -th bit set to 1 FunctionStackElement * new = pushFunctionStackElement(&stack,el->transitionFunction, numEltsFunc,el->pos+1); new->transitionFunction[el->pos / BITS_PER_BLOCK_32] |= (unsigned int)1 << (el->pos % BITS_PER_BLOCK_32); // increment the position of the old element, which remains on the stack // with the -th bit set to 0 (due to initialization) ++el->pos; } else if (c_1[el->pos] < c_0[el->pos]) // the error is lower if the -th bit is set to 1 { // set the -th bit of the top-level stack element to 1, // and increment the position to be examined el->transitionFunction[el->pos / BITS_PER_BLOCK_32] |= (unsigned int)1 << (el->pos % BITS_PER_BLOCK_32); ++el->pos; } else // the error is lower if the -th bit is set to 0 { // due to initialization, the -th bit is already set to 0 // => increment the position to be examined ++el->pos; } } // terminate if all stack elements have been completed while (stack != NULL); } } } // get next input gene combination vector while(nextCombination(comb)); freeInputCombination(comb); } } } /** * Calculate the entropy of a set of genes (gene_1,...,gene_n) * specified by . * All values less than specify genes in the input states, and values greater or * equal to specify genes in the output states. * and contain states, each consisting * of array elements. * is an array of the same length as specifying * whether inputs were normally regulated (-1), overexpressed (1), or knocked out (0). * The table counting the occurrences of gene value combinations is returned in
, which * must be initialized to a size of 2^. * The return value is the entropy H(gene1,...,gene_n). */ static inline double entropy( unsigned int * inputStates, unsigned int * outputStates, unsigned int * perturbations, unsigned int currentGene, unsigned int numStates, unsigned int elementsPerEntry, unsigned int numGenes, int * chosenIndices, unsigned int numChosenIndices, unsigned int * table) { unsigned int numEntries = (unsigned int)1 << numChosenIndices; // reset table to 0 memset(table,0,sizeof(unsigned int) * numEntries); unsigned int state, validStates = 0; for (state = 0; state < numStates; ++state) { if (perturbations != NULL && perturbations[state * numGenes + currentGene] != -1) // the current gene is perturbed in this state // => ignore the state in the entropy calculation continue; ++validStates; unsigned int tableIndex = 0, geneIndex; for (geneIndex = 0; geneIndex < numChosenIndices; ++geneIndex) // count the number of occurrences of gene value combinations { // encode the index of the table element to be increased if (chosenIndices[geneIndex] < numGenes) // this is a gene in the input states { unsigned int chosenIndex = chosenIndices[geneIndex]; tableIndex |= (GET_BIT(inputStates[state * elementsPerEntry + chosenIndex/BITS_PER_BLOCK_32],chosenIndex % BITS_PER_BLOCK_32)) << geneIndex; } else // this is a gene in the output states { unsigned int chosenIndex = chosenIndices[geneIndex] - numGenes; tableIndex |= (GET_BIT(outputStates[state * elementsPerEntry + chosenIndex/BITS_PER_BLOCK_32],chosenIndex % BITS_PER_BLOCK_32)) << geneIndex; } } // increase the corresponding table entry ++table[tableIndex]; } // calculate entropy double result = 0.0; unsigned int tableIndex; for (tableIndex = 0; tableIndex < numEntries; ++tableIndex) { if (table[tableIndex] != 0) result += ((double)table[tableIndex])/validStates*log2(((double)table[tableIndex])/validStates); } return -result; } /** * Liang's REVEAL algorithm for reconstruction of Boolean networks. * This version is enhanced for dealing with inconsistent samples by * taking the solutions that produce the minimum error. * and represent state transitions. * Here, consecutive array entries describe one state, * thus the array size is . * is an array of the same length as specifying * whether inputs were normally regulated (-1), overexpressed (1), or knocked out (0). * is the number of genes in the time series. * is the maximum number of inputs a function can have. * is a flattened Boolean matrix specifying dependencies * that *must* occur in the reconstructed networks. * Similarly, specifies dependencies * that *must not* occur in the reconstructed networks. * receives one list of possible functions for each gene, and * stores the error of these functions on the time series. * specifies whether the algorithm stops as soon as a perfect solution * is found (false) or not (true). * specifies whether incomplete functions (with "don't care" values) * are expanded recursively (true) or returned as-is (false). */ void reveal(unsigned int * inputStates, unsigned int * outputStates, unsigned int * perturbations, unsigned int numStates, unsigned int numGenes, int * requiredDependencies, int * excludedDependencies, unsigned int maxK, FunctionListElement ** result, unsigned int * errors, bool allSolutions, bool returnPBN) { unsigned int i, j; unsigned int numElts; // calculate block size in time series array if (numGenes % BITS_PER_BLOCK_32 == 0) numElts = numGenes / BITS_PER_BLOCK_32; else numElts = numGenes / BITS_PER_BLOCK_32 + 1; for (i = 0; i < numGenes; ++i) // iterate over genes { unsigned int currentMaxK = maxK, minK = 0, excludedCount = 0; if (requiredDependencies != NULL) for (j = 0; j < numGenes; ++j) if (requiredDependencies[i*numGenes + j] != 0) ++minK; if (excludedDependencies != NULL) for (j = 0; j < numGenes; ++j) if (excludedDependencies[i*numGenes + j] != 0) ++excludedCount; if (currentMaxK < minK) currentMaxK = minK; if (currentMaxK > numGenes - excludedCount) currentMaxK = numGenes - excludedCount; // set error to maximum // Note: in REVEAL, is only used as an indicator // whether a solution has been found, i.e. it is 0 if // a solution was found, and anything else otherwise. errors[i] = ~0; unsigned int k, s; // check for constant genes unsigned int geneVal = GET_BIT(outputStates[i/BITS_PER_BLOCK_32],i % BITS_PER_BLOCK_32); bool isConst = true; for (s = 1; s < numStates; ++s) { if ((perturbations == NULL || perturbations[s * numGenes + i] == -1) && GET_BIT(outputStates[s*numElts + i/BITS_PER_BLOCK_32],i % BITS_PER_BLOCK_32) != geneVal) // ignore this state if the current gene is perturbed { isConst = false; break; } } if (isConst) // gene is constant => simplest function already found! { int inputGenes = -1; addFunctionListElement(&result[i],1,1,&inputGenes,&geneVal); errors[i] = 0; } for (k = (minK > 1? minK : 1); k <= currentMaxK; ++k) // iterate over possible numbers of inputs { if (errors[i] == 0 && !allSolutions) break; // initialize gene combination vector InputCombination * comb = initCombination((requiredDependencies == NULL? NULL : &requiredDependencies[i*numGenes]), (excludedDependencies == NULL? NULL : &excludedDependencies[i*numGenes]), k, numGenes); // calculate the number of array elements needed // to represent the output of a function unsigned int array_sz = (unsigned int)1 << k; unsigned int numEltsFunc; if (array_sz % BITS_PER_BLOCK_32 == 0) numEltsFunc = array_sz / BITS_PER_BLOCK_32; else numEltsFunc = array_sz / BITS_PER_BLOCK_32 + 1; do { R_CheckUserInterrupt(); // calculate entropy of input genes unsigned int table_input[array_sz]; double entropy_input = entropy(inputStates, outputStates, perturbations, i, numStates, numElts, numGenes, comb->comb, k, table_input); // calculate entropy of the combination of input genes and output value int comb_output[k+1]; memcpy(comb_output,comb->comb,sizeof(unsigned int) * k); comb_output[k] = numGenes + i; unsigned int table_output[(unsigned int)1 << (k+1)]; double entropy_all = entropy(inputStates, outputStates, perturbations, i, numStates, numElts, numGenes, comb_output, k+1, table_output); if (fabs(entropy_input - entropy_all) < 1E-6) // the two entropies are the same => output is fully explained by input { // a solution has been found => set errors to 0 so that // the algorithm does not search for higher k's errors[i] = 0; if (!returnPBN) // encode a function with "don't care" value // note: in contrast to the code below, // each entry of f corresponds to a single bit here { unsigned int f[array_sz]; memset(f,0,sizeof(unsigned int) * array_sz); for (unsigned int l = 0; l < array_sz; ++l) { if (table_input[l] == 0 || table_output[l | ((unsigned int)1 << k)] == table_output[l]) { f[l] = -1; } else if (table_output[l | ((unsigned int)1 << k)] > table_output[l]) { f[l] = 1; } else { f[l] = 0; } } addFunctionListElement(&result[i],k,array_sz,comb->comb,f); } else { // recursively determine all functions by filling "don't care" values. // note: here, the elements of f are used as bit vectors // to save memory // start with an element initialized to zero, // and first examine the 0-th position unsigned int f[numEltsFunc]; memset(f,0,sizeof(unsigned int) * numEltsFunc); FunctionStackElement * stack = NULL; pushFunctionStackElement(&stack,f,numEltsFunc,0); do { R_CheckUserInterrupt(); // get top-level stack element FunctionStackElement * el = stack; if (el->pos == array_sz) // the top-level element on the stack is a complete function // => clean it up { // create a new element in the result function list containing the // completed function on the stack addFunctionListElement(&result[i],k,numEltsFunc, comb->comb,el->transitionFunction); // remove the completed function from the stack deleteFunctionStackElement(&stack); } else if (table_input[el->pos] == 0 || table_output[el->pos | ((unsigned int)1 << k)] == table_output[el->pos]) // no information is available if the -th bit must be set to one or zero // => create two solution branches, one with the -th bit set to 1 // and one with the -th bit set to 0 { // create a new element on the stack with the -th bit set to 1 FunctionStackElement * new = pushFunctionStackElement(&stack,el->transitionFunction, numEltsFunc,el->pos+1); new->transitionFunction[el->pos / BITS_PER_BLOCK_32] |= (unsigned int)1 << (el->pos % BITS_PER_BLOCK_32); // increment the position of the old element, which remains on the stack // with the -th bit set to 0 (due to initialization) ++el->pos; } else if (table_output[el->pos | ((unsigned int)1 << k)] > table_output[el->pos]) // the -th bit must be set to 1 { // set the -th bit of the top-level stack element to 1, // and increment the position to be examined el->transitionFunction[el->pos / BITS_PER_BLOCK_32] |= (unsigned int)1 << (el->pos % BITS_PER_BLOCK_32); ++el->pos; } else // the -th bit must be set to 0 { // due to initialization, the -th bit is already set to 0 // => increment the position to be examined ++el->pos; } } while (stack != NULL); } } } // get next input gene combination vector while(nextCombination(comb)); freeInputCombination(comb); } } } /** * R Wrapper for bestFitExtension() and reveal() * contains an array of * binary * values, where consecutive values form one state. * specifies the number of states in the array. * is the highest number of input genes for a function. * If is 0, bestFitExtension is called. If is 1, reveal() is called. * Returns a list of lists. The outer list has elements, and the inner * list has one element for each equally-rated function for the current gene. Each of these * elements consists of a vector of input genes, the function as a binary vector, and * the error this function makes on the input time series. */ SEXP reconstructNetwork_R(SEXP inputStates, SEXP outputStates, SEXP perturbations, SEXP numberOfStates, SEXP requiredDependencies, SEXP excludedDependencies, SEXP maxK, SEXP method, SEXP allSolutions, SEXP returnPBN) { int * _inputStates = INTEGER(inputStates); int * _outputStates = INTEGER(outputStates); unsigned int * _perturbations = (Rf_isNull(perturbations)? NULL : (unsigned int *)INTEGER(perturbations)); int * _requiredDependencies = (Rf_isNull(requiredDependencies)? NULL : INTEGER(requiredDependencies)); int * _excludedDependencies = (Rf_isNull(excludedDependencies)? NULL : INTEGER(excludedDependencies)); int _numberOfStates = *INTEGER(numberOfStates); int _maxK = *INTEGER(maxK); int _method = *INTEGER(method); int _allSolutions = *INTEGER(allSolutions); int _returnPBN = *INTEGER(returnPBN); unsigned int numGenes = length(inputStates) / _numberOfStates; unsigned int numElts; if (numGenes % BITS_PER_BLOCK_32 == 0) numElts = numGenes / BITS_PER_BLOCK_32; else numElts = numGenes / BITS_PER_BLOCK_32 + 1; unsigned int encodedInputStates[numElts * _numberOfStates]; memset(encodedInputStates,0,numElts * _numberOfStates * sizeof(unsigned int)); unsigned int encodedOutputStates[numElts * _numberOfStates]; memset(encodedOutputStates,0,numElts * _numberOfStates * sizeof(unsigned int)); unsigned int state,gene; for (state = 0; state < _numberOfStates; ++state) // binary encoding of input states { for (gene = 0; gene < numGenes; ++gene) encodedInputStates[(numElts * state) + gene / BITS_PER_BLOCK_32] |= (_inputStates[state*numGenes + gene] << (gene % BITS_PER_BLOCK_32)); } for (state = 0; state < _numberOfStates; ++state) // binary encoding of output states { for (gene = 0; gene < numGenes; ++gene) encodedOutputStates[(numElts * state) + gene / BITS_PER_BLOCK_32] |= (_outputStates[state*numGenes + gene] << (gene % BITS_PER_BLOCK_32)); } FunctionListElement ** res = CALLOC(numGenes,sizeof(FunctionListElement *)); unsigned int * errors = CALLOC(numGenes,sizeof(unsigned int)); if (_method == 0) // perform Lähdesmäki's best-fit extension bestFitExtension(encodedInputStates,encodedOutputStates,_perturbations, _numberOfStates,numGenes, _requiredDependencies,_excludedDependencies, _maxK,res,errors,_allSolutions,_returnPBN); else // start REVEAL algorithm reveal(encodedInputStates,encodedOutputStates,_perturbations, _numberOfStates,numGenes, _requiredDependencies,_excludedDependencies, _maxK,res,errors,_allSolutions,_returnPBN); // for (gene = 0; gene < numGenes; ++gene) // { // printf("Gene %d\n",gene+1); // FunctionListElement * cur = res[gene]; // while (cur != NULL) // { // printf("Input: "); // unsigned int k; // for (k = 0; k < cur->k; ++k) // printf("%d ",cur->inputGenes[k] + 1); // printf("\nFunction: "); // for (k = 0; k < (1 << cur->k); ++k) // printf("%d",GET_BIT(cur->transitionFunction[k / BITS_PER_BLOCK_32],k%BITS_PER_BLOCK_32)); // printf("\nError: %d\n\n",errors[gene]); // cur = cur->next; // } // } // pack R objects SEXP resSXP; PROTECT(resSXP = allocList(numGenes)); SEXP listPos1 = resSXP; for(gene = 0; gene < numGenes; ++gene) { SEXP geneSXP; unsigned int listLength = 0; FunctionListElement * cur = res[gene]; while (cur != NULL) { ++listLength; cur = cur->next; } PROTECT(geneSXP = allocList(listLength)); cur = res[gene]; unsigned int i; SEXP listPos2 = geneSXP; for (i = 0; i < listLength; ++i) { SEXP entrySXP,inputSXP,funcSXP,errorSXP; PROTECT(entrySXP = allocList(3)); SET_TAG(entrySXP, install("input")); SET_TAG(CDR(entrySXP), install("func")); SET_TAG(CDR(CDR(entrySXP)), install("error")); PROTECT(inputSXP = allocVector(INTSXP,cur->k)); int * array = INTEGER(inputSXP); unsigned int j; unsigned int numBits; if (cur->k == 1 && cur->inputGenes[0] == -1) { numBits = 1; array[0] = 0; } else { numBits = (unsigned int)1 << cur->k; for (j = 0; j < cur->k; j++) array[j] = cur->inputGenes[cur->k - j - 1] + 1; } SETCAR(entrySXP,inputSXP); UNPROTECT(1); PROTECT(funcSXP = allocVector(INTSXP,numBits)); array = INTEGER(funcSXP); if (_returnPBN) // for PBN, functions are internally represented as bit vectors to save memory dec2bin(array,(int*)cur->transitionFunction,(int*)&numBits); else // for incomplete truth tables, we need a third "don't care" value // hence, each bit is an integer in this case (but far fewer entries => less memory) memcpy(array,(int*)cur->transitionFunction,numBits*sizeof(int)); SETCADR(entrySXP,funcSXP); UNPROTECT(1); PROTECT(errorSXP = allocVector(INTSXP,1)); array = INTEGER(errorSXP); *array = errors[gene]; SETCADDR(entrySXP,errorSXP); UNPROTECT(1); SETCAR(listPos2,entrySXP); UNPROTECT(1); listPos2 = CDR(listPos2); cur = cur->next; } UNPROTECT(1); SETCAR(listPos1,geneSXP); listPos1 = CDR(listPos1); } UNPROTECT(1); // free resources for (gene = 0; gene < numGenes; ++gene) freeFunctionList(&res[gene]); FREE(errors); FREE(res); return resSXP; } BoolNet/NAMESPACE0000644000176000001440000000215012466166263013075 0ustar ripleyusersuseDynLib(BoolNet) import(igraph, XML) S3method(print, AttractorInfo) S3method(print, SymbolicSimulation) S3method(print, BooleanNetwork) S3method(print, SymbolicBooleanNetwork) S3method(print, BooleanNetworkCollection) S3method(print, ProbabilisticBooleanNetwork) S3method(print, BooleanStateInfo) S3method(print, TransitionTable) S3method(print, MarkovSimulation) export( loadNetwork, loadBioTapestry, loadSBML, saveNetwork, getAttractors, plotAttractors, plotSequence, plotStateGraph, plotNetworkWiring, plotPBNTransitions, attractorsToLaTeX, sequenceToLaTeX, stateTransition, getAttractorSequence, getTransitionTable, getStateSummary, getBasinOfAttraction, getPathToAttractor, getTransitionProbabilities, toPajek, toSBML, generateRandomNKNetwork, generateCanalyzing, generateNestedCanalyzing, generateState, generateTimeSeries, perturbNetwork, perturbTrajectories, simplifyNetwork, simulateSymbolicModel, reconstructNetwork, chooseNetwork, fixGenes, binarizeTimeSeries, markovSimulation, testNetworkProperties, testAttractorRobustness, testTransitionRobustness, testIndegree, truthTableToSymbolic, symbolicToTruthTable) BoolNet/data/0000755000176000001440000000000012466166264012572 5ustar ripleyusersBoolNet/data/examplePBN.rda0000644000176000001440000000060712466166264015260 0ustar ripleyusers‹Å”ÝNƒ0ÇKÁDñ3Ù‰7ô†ÌË^/™z»,^í–agYK€ELö"ú2>‡wK|Ÿ`ZJÁÁб¹Å“œöôÏéÇù…ööºoé}ÔUj7 ÷=î:Ž‘ïá^§ €Úà O² 13kÜ¥®¤ºˆ¸ïiíê¾Æ÷“¹S!£·Œ‰[IcŸ¦ÑDEn¬´ßma¥²v¨3¡\UËDBýq$ÚpLÝo~€Ã0*•}?`g@<=ñáì/ ÊV“ÁE! ¡ ß±¼='ö’bŸ›$!þ eD–é%"—«A HòE·„d¥‹R¶5/ÊMZ®™01“‰`bŠú‹ŠЂ2hº=Dë£Yf? 9þ‡" +ª2 Æ­<²òÈNgÔË„ÉÉÕWYh¹_gßÊ„F8p܈×f<î1Åù`Hb|W~k]Ï ³·Jñ¬—± #âvó°C»8zdÁƒL9-ªWÌó°ØZ’™}á¥6y¾BoolNet/data/igf.rda0000644000176000001440000000073112466166264014030 0ustar ripleyusers‹ÕWÛNÂ@Ý^ÅzMHøßÅ…hˆ‰ð×ZÒÐnI»DHühÀâtÛí $ -—&Û™ÎîΞ³3;m;­^]ëi!IÜ%Pen’Ñ1HÉà^Uv Må]íLJXít#U~mߘýAƾnµå¿_`û=à`Ó´‡†\?4^Т™9%3Hñ‚SPˆùДp•ä%æ‚’ƒ0TT-HžÅ-;ÃÆ.Ï4…³3“ alçœ$û M.yÑBoolNet/data/cellcycle.rda0000644000176000001440000000106412466166264015222 0ustar ripleyusers‹íWËNÂ@Ki|4ñêÆ´‰ `ãʨ<Œ+$&lË0(±B1j¿ùK~zçE§ƒ¦%`â$Ãܶ÷–3÷ÜÇ´UoW¬¶…2q3¢iÀÏ2QÖ"&A€ßp@Êà Ð0èj‰•Z0>ÙËĸü²•—šµ7\×þh7ôŸH$sòf?>¥Uï9ÄB¶ÈëpD¢¨?ájªaÙXL!ç9^†ÍQ0é¿ë~¾a£Øïî‰t\;§ªR¨K¡á9ÇVÎçUšms‡5¤šÞ9æRí·U8Íî·nÜ”=ÒÎ!´BÙ›håN return empty data frame if (includeAttractorStates == "none" && table[currentStateIdx,"transitionsToAttractor"] == 0) { res <- data.frame(matrix(nrow=0,ncol=numGenes)) } else if (length(attractorIdx) > 0) attributes(res)$attractor <- attractorIdx colnames(res) <- sapply(colnames(table)[seq_len(numGenes)],function(n)strsplit(n,".",fixed=TRUE)[[1]][2]) rownames(res) <- NULL } return(res) } BoolNet/R/print.MarkovSimulation.R0000644000176000001440000000603212466166264016645 0ustar ripleyusers# Custom print function for class MarkovSimulation print.MarkovSimulation <- function(x, activeOnly = FALSE, ...) { genes <- x$genes numGenes <- length(genes) cat("States reached at the end of the simulation:\n") if (activeOnly) { reachedStates <- data.frame(apply(x$reachedStates[,seq_len(numGenes)],1,function(state) { r <- paste(genes[which(state == 1)],collapse=", ") if (r == "") r <- "--" r }),x$reachedStates$Probability) colnames(reachedStates) <- c("Active genes", "Probability") print(reachedStates) } else { print(x$reachedStates) } if (!is.null(x$table)) { cat("\nProbabilities of state transitions in the network:\n") transitionProbs <- getTransitionProbabilities(x) colIndices <- c(1,numGenes,numGenes + 1, 2*numGenes, 2*numGenes + 1) if(activeOnly) { inputStates <- apply(transitionProbs,1,function(row) { r <- paste(genes[which(row[colIndices[1]:colIndices[2]] == 1)],collapse=", ") if (r == "") r <- "--" r }) outputStates <- apply(transitionProbs,1,function(row) { r <- paste(genes[which(row[colIndices[3]:colIndices[4]] == 1)],collapse=", ") if (r == "") r <- "--" r }) colWidth <- max(c(sapply(inputStates,nchar),sapply(outputStates,nchar))) align <- "left" } else { inputStates <- apply(transitionProbs,1,function(row) paste(row[colIndices[1]:colIndices[2]],collapse="")) outputStates <- apply(transitionProbs,1,function(row) paste(row[colIndices[3]:colIndices[4]],collapse="")) colWidth <- numGenes align <- "right" } binMatrix <- data.frame(inputStates,outputStates, transitionProbs[,colIndices[5]]) cat(format("State",width=max(7,colWidth),justify=align)," ", format("Next state",width=max(11,colWidth + 2),justify=align), format("Probability",width=13,justify="right"),"\n",sep="") apply(binMatrix,1,function(row) { # paste all states of input and output into one string, and put out all columns of the table in a # formatted way cat(format(row[1],width=max(7,colWidth),justify=align), " => ", format(row[2],width=max(11,colWidth + 2),justify=align), format(row[3],width=13,justify="right"),"\n",sep="") }) } return(invisible(x)) } BoolNet/R/loadSBML.R0000644000176000001440000004546312473107364013610 0ustar ripleyusers# Check whether N is an integer using # a regular expression. check.integer <- function(N) { !length(grep("[^[:digit:]]", as.character(N))) } # Parse an SBML species list in . # Returns a list containing a map of gene ids to gene names, # a vector specifying which genes are fixed # and a vector of initial levels. parseSBMLSpecies <- function(rootNode) { genes <- c() fixed <- c() initialLevels <- c() # iterate over species for (species in xmlChildren(rootNode)) { attrs <- xmlAttrs(species) # if available, use the "name" attribute as the gene name # (and replace unsuitable characters by underscores) # otherwise use the gene id. if (is.na(attrs["name"]) || attrs["name"] == "") # for better compatibility with CoLoMoTo, # remove "s_" at the beginning of identifiers name <- sub("^s_","",attrs["id"]) else name <- gsub("[^a-zA-Z0-9_]+","_",attrs["name"]) # gene names must be unique if (name %in% genes) { suffix <- 1 while (paste(name,suffix,sep="_") %in% genes) suffix <- suffix + 1 warning(paste("Duplicate gene \"",name,"\", renaming to ", name,"_",suffix,"!",sep="")) name <- paste(name,suffix,sep="_") } # Reject logical networks with more than two values for a gene if (!is.na(attrs["maxLevel"]) && as.integer(attrs["maxLevel"]) > 1) stop(paste("BoolNet supports only binary genes, but gene \"", name,"\" has a maximum level of ",attrs["maxLevel"],"!", sep="")) # build a lookup table id -> gene name genes[attrs["id"]] <- adjustGeneNames(name) if (!is.na(attrs["constant"]) && tolower(attrs["constant"]) == "true") # if the gene is constant, save its initial level in the "fixed" vector { #if (is.na(attrs["initialLevel"])) #stop(paste("Gene \"", name, "\" is constant, but no initial level is supplied!", sep="")) # warning(paste("Gene \"", name, "\" is constant, but no initial level is supplied! Assuming an input!", sep="")) fixed[name] <- TRUE } else # this gene is not constant fixed[name] <- FALSE initialLevels[name] <- as.integer(attrs["initialLevel"]) } return(list(genes = genes, fixed = fixed, initialLevels = initialLevels)) } # Parse a list of transitions in . # Here, is the result of parseSBMLSpecies() # containing a map of gene ids/assignments, a vector # specifying fixed genes and a vector of initial levels. # Returns a list of interactions in the format # of class BooleanNetwork parseSBMLTransitions <- function(rootNode, genes, symbolic) { # iterate over all transitions transitions <- xmlApply(rootNode,function(transition) { # parse inputs inputList <- xmlFindNode(transition, "listOfInputs") if (is.null(inputList)) { inputs <- c() } else { inputList <- inputList[[1]] inputs <- c() inputThresholds <- c() # iterate over inputs for (input in xmlChildren(inputList)) { attrs <- xmlAttrs(input) id <- attrs["qualitativeSpecies"] # verify gene name in species list if (is.na(genes$genes[id])) stop(paste("Unknown input \"",id,"\"!",sep="")) else inputs <- union(inputs, id) # check whether attributes of the input are compatible # with Boolean logic if (tolower(attrs["transitionEffect"]) != "none") stop(paste("Transition effect for input gene \"",id,"\" is \"", attrs["transitionEffect"],"\", expected \"none\"!", sep="")) if (!is.na(attrs["thresholdLevel"]) && !is.na(attrs["id"])) # if a threshold level has been specified, save it with the # corresponding ID for later use in the MathML terms { inputThresholds[attrs["id"]] <- as.integer(attrs["thresholdLevel"]) if (inputThresholds[attrs["id"]] > 1) stop("Threshold levels must be 0 or 1!") } } } # parse outputs outputList <- xmlFindNode(transition, "listOfOutputs") outputs <- c() if (!is.null(outputList)) { outputList <- outputList[[1]] for (output in xmlChildren(outputList)) # iterate over outputs { attrs <- xmlAttrs(output) id <- attrs["qualitativeSpecies"] # verify gene list in species list if (is.na(genes$genes[id])) stop(paste("Unknown output ",id,"!",sep="")) else outputs <- union(outputs, id) # check whether attributes of the output are compatible # with Boolean logic if (tolower(attrs["transitionEffect"]) != "assignmentlevel") stop(paste("Transition effect for output gene \"",id,"\" is \"", attrs["transitionEffect"],"\", expected \"assignmentLevel\"!", sep="")) if (!is.na(attrs["outputLevel"])) stop("Output levels for transitions are not supported in Boolean models!") } } # parse function terms functionTermList <- xmlFindNode(transition, "listOfFunctionTerms", throwError=TRUE)[[1]] transitionFunction <- parseSBMLFunctionTerms(functionTermList, genes$genes[inputs], inputThresholds) return(list(inputs=inputs, outputs=outputs, transitionFunction=transitionFunction)) }) # now convert the read data to the BoolNet interaction format interactions <- lapply(names(genes$genes), function(gene) { # identify the transitions linked to each gene linkedTransitions <- which(sapply(transitions, function(transition)gene %in% transition$output)) if (length(linkedTransitions) == 0) # no transitions are assigned to this gene { if (!genes$fixed[genes$gene[gene]] || is.na(genes$initialLevels[genes$gene[gene]])) { if (is.na(genes$initialLevels[genes$gene[gene]])) { # Assume an input if the gene has no transition function and no initial value warning(paste("There is no transition and no initial level for gene \"", gene,"\"! Assuming an input!",sep=""), call.=FALSE) if (symbolic) return(parseBooleanFunction(genes$gene[gene])) else return(list(input=which(names(genes$genes) == gene), func=c(0,1), expression=genes$gene[gene])) } else if (!genes$fixed[genes$gene[gene]]) warning(paste("There is no transition for the non-constant gene \"", gene,"\"! Setting it to a constant ", genes$initialLevels[genes$gene[gene]], "!" ,sep=""), call.=FALSE) } # build a constant interaction if (symbolic) return(parseBooleanFunction(as.character(genes$initialLevels[genes$gene[gene]]))) else return(list(input=0, func=genes$initialLevels[genes$gene[gene]], expression=as.character(genes$initialLevels[genes$gene[gene]]))) } else { if (length(linkedTransitions) > 1) # multiple transitions per gene are not allowed, as these may be conflicting { stop(paste("Gene \"",gene,"\" is affected by multiple transitions!",sep="")) } if (genes$fixed[genes$gene[gene]]) # a constant gene should not be the output of a transition stop(paste("Gene \"",gene,"\" has been specified as constant, but there is a transition!",sep="")) if (symbolic) { # parse the Boolean expression, and construct a symbolic expression tree return(parseBooleanFunction(transitions[[linkedTransitions]]$transitionFunction, genes$genes)) } else { # parse the Boolean expression, and generate an interaction with # the corresponding truth table return(generateInteraction(transitions[[linkedTransitions]]$transitionFunction, #genes$genes[transitions[[linkedTransitions]]$input], genes$genes)) } } }) names(interactions) <- genes$genes return(interactions) } # Parse a list of function terms in , where specifies # the assignment of gene identifiers to gene names, # and specifies the assignment of threshold identifiers # to values (see also parseMathML()). # Returns a single character string representing the function term # as an R expression. parseSBMLFunctionTerms <- function(rootNode, genes, inputThresholds) { # iterate over function terms functionTerms <- xmlApply(rootNode, function(term) { attrs <- xmlAttrs(term) outputLevel <- as.integer(attrs["resultLevel"]) if (outputLevel > 1) stop("The result level of a function term must be 0 or 1!") if (tolower(xmlName(term)) == "defaultterm") # this is the default term => no expression { return(list(term="",outputLevel=outputLevel)) } else # parse the MathML expression in the function term { math <- xmlFindNode(term, "math", throwError=TRUE)[[1]][[1]] return(list(term=parseMathML(math, genes, inputThresholds), outputLevel=outputLevel)) } }) # build lists of terms with result 0 (negative terms) # and terms with result 1 (positive term) posTerms <- c() negTerms <- c() defaultValue <- NA for (term in functionTerms) { if (term$term != "") { if (term$outputLevel == 0) { negTerms <- c(negTerms, term$term) } else { posTerms <- c(posTerms, term$term) } } else defaultValue <- term$outputLevel } if (is.na(defaultValue)) stop("Missing default term in transition!") if (defaultValue == 0) # if the default is 0, the result is a DNF of the positive terms { if (length(posTerms) > 0) totalTerm <- paste(posTerms, collapse=" | ") else totalTerm <- "0" if (length(negTerms) > 0) # if the default value is 0, additional negative terms are ignored, # as they should be part of the default value # (otherwise this is a contradiction to the positive terms) warning("Potentially contradictory terms in a transition have been ignored!") } else # if the default value is 1, the result is a negated DNF of the negative terms { if (length(negTerms) > 0) totalTerm <- paste("!(",paste(negTerms, collapse=" | "),")",sep="") else totalTerm <- "1" if (length(posTerms) > 0) # if the default value is 1, additional positive terms are ignored, # as they should be part of the default value # (otherwise this is a contradiction to the negative terms) warning("Potentially contradictory terms in a transition have been ignored!") } return(totalTerm) } # Recursively parse the MathML expression in . # Here, valid identifiers are the gene names in # and the input thresholds in , # which are replaced by the corresponding values. # Returns an R expression string representing the MathML expression. parseMathML <- function(rootNode, genes, inputThresholds) { name <- xmlName(rootNode) if (name == "apply") # a bracket { operator <- xmlName(xmlChildren(rootNode)[[1]]) children <- sapply(xmlChildren(rootNode)[-1],parseMathML, genes, inputThresholds) if (operator == "and" || operator == "times") { # treat "and" and "times" equally, but warn if (operator == "times") warning("Interpreting \"times\" operator as a logical \"and\"!") return(paste("(",paste(children, collapse = " & "),")",sep="")) } else if (operator == "or" || operator == "plus") { # treat "or" and "plus" equally, but warn if (operator == "plus") warning("Interpreting \"plus\" operator as a logical \"or\"!") return(paste("(",paste(children, collapse = " | "),")",sep="")) } else if (operator == "xor") { # convert XOR to a DNF by pasting all odd entries in the truth table tt <- allcombn(2, length(children)) - 1 tt <- apply(tt,1,function(x)sum(x) %/% 2 == 1) return(paste("(",getDNF(tt, children),")",sep="")) } else if (operator %in% c ("eq", "neq", "gt", "lt", "geq", "leq")) { # comparison operators have to be converted to Boolean logic if (length(children) != 2) stop(paste("Operator \"",operator,"\" requires two operands!",sep="")) # check which of the child expressions are constant isConst <- sapply(children,function(x) { check.integer(x) }) if (all(isConst)) # two constants are compared (this does not really make sense!) { children <- as.integer(children) return(as.integer(switch(operator, eq = {children[1] == children[2]}, neq = {children[1] != children[2]}, gt = {children[1] > children[2]}, lt = {children[1] < children[2]}, geq = {children[1] >= children[2]}, leq = {children[1] <= children[2]} ))) } else if (any(isConst)) # one constant and one variable are compared { constChild <- as.integer(children[isConst]) varChild <- children[!isConst] return(switch(operator, eq = { if (constChild == 1) varChild else paste("!",varChild,sep="") }, neq = { if (constChild == 0) varChild else paste("!",varChild,sep="") }, gt = { if (constChild == 1) "0" else varChild }, lt = { if (constChild == 0) "0" else paste("!",varChild,sep="") }, geq = { if (constChild == 0) "1" else varChild }, leq = { if (constChild == 1) "1" else paste("!",varChild,sep="") } )) } else # two variables are compared { return(switch(operator, eq = { paste("((",children[1]," & ",children[2],") | ", "(!",children[1]," & !",children[2],"))", sep="") }, neq = { paste("((",children[1]," & !",children[2],") | ", "(!",children[1]," & ",children[2],"))", sep="") }, gt = { paste("(",children[1]," & !",children[2],")", sep="") }, lt = { paste("(!",children[1]," & ",children[2],")", sep="") }, geq = { paste("(",children[1], " | !",children[2],")", sep="") }, leq = { paste("(!",children[1], " | ",children[2],")", sep="") } )) } } else if (operator == "not") { if (length(children) > 2) stop("Multiple arguments supplied to unary operator \"neg\"!") return(paste("!",children, sep="")) } else # an unsupported symbol has been specified stop(paste("Unsupported math symbol: ", operator,"!",sep="")) } else if (name == "ci") # this is a gene identifier or a threshold level { id <- trim(xmlValue(rootNode)) if (!(id %in% names(genes))) { if (!(id %in% names(inputThresholds))) # neither threshold identifier nor gene stop(paste("Unspecified input \"",id,"\" in transition function!",sep="")) else # this is a threshold identifier return(inputThresholds[id]) } # this is a gene return(genes[id]) } else if (name == "cn") # this is a constant { # convert value and ensure it is Boolean attrs <- xmlAttrs(rootNode) if (!is.null(attrs) && !is.na(attrs["type"]) && tolower(attrs["type"]) != "integer") stop("\"cn\" nodes must be of type \"integer\"!") val <- trim(xmlValue(rootNode)) if (!check.integer(val) || !(as.integer(val) %in% c(0,1))) stop("\"cn\" nodes must be 0 or 1!") return(val) } else if (name == "true") return("1") else if (name == "false") return("0") else # an unsupported symbol has been specified stop(paste("Unsupported math symbol: ", name,"!",sep="")) } # Import the sbml-qual document loadSBML <- function(file, symbolic=FALSE) { # load XML document doc <- xmlRoot(xmlParse(file)) # remove comments from the document suppressWarnings(comments <- getNodeSet(doc,"//comment()")) if (length(comments) > 0) removeNodes(comments) # do various checks to ensure this is an sbml-qual document if (xmlName(doc) != "sbml") stop("Not an SBML document!") if (as.integer(xmlAttrs(doc)["level"]) > 3 || as.integer(xmlAttrs(doc)["version"]) > 1) warning("This import is designed for documents up to SBML level 3 version 1!") if (is.null(xmlNamespaces(doc)$qual)) stop("This document does not import the sbml-qual package!") model <- xmlFindNode(doc, "model", throwError=TRUE)[[1]] # compartments are ignored # parse species species <- xmlFindNode(model, "listOfQualitativeSpecies", throwError=TRUE)[[1]] genes <- parseSBMLSpecies(species) # parse transitions transitions <- xmlFindNode(model, "listOfTransitions", throwError=TRUE)[[1]] interactions <- parseSBMLTransitions(transitions, genes, symbolic) if (symbolic) { delays <- apply(sapply(interactions,maxTimeDelay,genes=genes$genes),1,max) fixed <- as.integer(rep(-1L,length(genes$genes))) names(fixed) <- genes$genes res <- list(genes = genes$genes, interactions=interactions, fixed=fixed) res$internalStructs <- .Call("constructNetworkTrees_R",res) res$timeDelays <- delays class(res) <- "SymbolicBooleanNetwork" } else { # create BooleanNetwork structure res <- list(genes = genes$genes, fixed = sapply(interactions,function(i) { if (i$input[1] == 0) i$func[1] else -1 }), interactions = interactions) class(res) <- "BooleanNetwork" } return(res) } BoolNet/R/getTransitionTable.R0000644000176000001440000000436312466166263016014 0ustar ripleyusers# Retrieves the transition table of an AttractorInfo structure # in a readable way getTransitionTable <- function(attractorInfo) { stopifnot(inherits(attractorInfo,"AttractorInfo") || inherits(attractorInfo,"SymbolicSimulation")) if (inherits(attractorInfo,"SymbolicSimulation")) { if (is.null(attractorInfo$graph)) stop(paste("This SymbolicSimulation structure does not contain transition table information.", "Please re-run simulateSymbolicModel() with returnGraph=TRUE!")) return(attractorInfo$graph) } else if (is.null(attractorInfo$stateInfo$table)) stop(paste("This AttractorInfo structure does not contain transition table information.", "Please re-run getAttractors() with a synchronous search and returnTable=TRUE!")) return(.internal.getTransitionTable(attractorInfo$stateInfo)) } # Internally used to extract the information from the subcomponent # of AttractorInfo .internal.getTransitionTable <- function(stateInfo) { fixedGenes <- which(stateInfo$fixedGenes != -1) nonFixedGenes <- which(stateInfo$fixedGenes == -1) if (!is.null(stateInfo$initialStates)) { initialStates <- t(apply(stateInfo$initialStates,2,dec2bin,length(stateInfo$genes))) } else { initialStates <- matrix(ncol=length(stateInfo$genes),nrow=2^length(nonFixedGenes)) # encode the initial states # first, encode the changing part by calculating all combinations temp <- allcombn(2,length(nonFixedGenes)) - 1 initialStates[,nonFixedGenes] <- temp[,ncol(temp):1] if (length(fixedGenes) > 0) # if there are fixed genes, encode their values initialStates[,fixedGenes] <- sapply(stateInfo$fixedGenes[fixedGenes], function(value)rep(value,2^length(nonFixedGenes))) } # build return structure of class TransitionTable res <- data.frame(initialStates, t(apply(stateInfo$table,2,dec2bin,length(stateInfo$genes))), stateInfo$attractorAssignment,stateInfo$stepsToAttractor) colnames(res) <- c(paste("initialState.",stateInfo$genes,sep=""), paste("nextState.",stateInfo$genes,sep=""), "attractorAssignment","transitionsToAttractor") class(res) <- c("TransitionTable","data.frame") return(res) } BoolNet/R/getTransitionProbabilities.R0000644000176000001440000000177712466166263017563 0ustar ripleyusers# Builds a matrix of transitions and their probabilities from getTransitionProbabilities <- function(markovSimulation) { stopifnot(inherits(markovSimulation,"MarkovSimulation")) if (is.null(markovSimulation$table)) stop(paste("The supplied simulation result does not contain transition information.", "Please re-run markovSimulation() with returnTable=TRUE!")) initialStates <- t(apply(markovSimulation$table$initialStates,2,dec2bin,length(markovSimulation$genes))) nextStates <- t(apply(markovSimulation$table$nextStates,2,dec2bin,length(markovSimulation$genes))) idx <- order(apply(initialStates,1,function(x)paste(x,collapse=""))) res <- data.frame(initialStates,nextStates,markovSimulation$table$probabilities) res <- res[idx,] rownames(res) <- NULL colnames(res) <- c(paste("initialState.",markovSimulation$genes,sep=""), paste("nextState.",markovSimulation$genes,sep=""), "probability") return(res) } BoolNet/R/helpers.R0000644000176000001440000002562112473107364013647 0ustar ripleyusers # Encode a vector of binary values with bits # to a decimal number bin2dec <- function(bin,len) { if (len %% 32 == 0) numElts <- as.integer(len / 32) else numElts <- as.integer(len / 32) + 1 dec = rep(0,numElts) dec = .C("bin2dec",as.integer(dec),as.integer(bin),as.integer(len))[[1]] } # Decode the low-order bits of to a vector of binary values, # where the first entry is the least significant bit dec2bin <- function(dec,len) { bin = rep(0,len) bin = .C("dec2bin",as.integer(bin),as.integer(dec),as.integer(len),NAOK=TRUE)[[1]] } # Generate a list of all assignments of n variables with N possible values allcombn <- function(N,n) { rownum = N^n sapply(n:1,function(i) { rep(seq_len(N),each=N^(i-1),len=rownum) }) } # Get DNF representation of a truth table # using the gene names in . # If is "canonical", build a canonical DNF. # If is "short", join terms to reduce the DNF getDNF <- function(truthTable, genes, mode = c("short","canonical")) { if (mode[1] == TRUE) mode <- (if (length(genes) <= 12) "short" else "canonical") mode <- match.arg(mode, c("short","canonical")) # check for constant functions if (isTRUE(all.equal(truthTable,rep(0,length(truthTable))))) return("0") else if (isTRUE(all.equal(truthTable,rep(1,length(truthTable))))) return("1") # generate truth table entries <- allcombn(2,length(genes)) - 1 colnames(entries) <- genes if (mode == "short") { # heuristic minimization # the 1 terms that need to be covered uncoveredEntries <- which(truthTable == 1) # current conjunction list conjunctions <- list() while (length(uncoveredEntries) > 0) { # take an uncovered entry and expand it currentEntry <- entries[uncoveredEntries[1],] for (gene in genes) # test for each gene whether it can be eliminated from the term { geneIdx <- which(names(currentEntry) == gene) candidate <- currentEntry[-geneIdx] condition <- rep(TRUE,length(truthTable)) for (i in seq_along(candidate)) { condition <- condition & (entries[,names(candidate)[i]] == candidate[i]) } if (length(unique(truthTable[condition])) == 1) # eliminate gene currentEntry <- currentEntry[-geneIdx] } # determine which truth table result entries are now covered eliminatedEntries <- rep(TRUE,length(truthTable)) for (i in seq_along(currentEntry)) { eliminatedEntries <- eliminatedEntries & (entries[,names(currentEntry)[i]] == currentEntry[i]) } uncoveredEntries <- setdiff(uncoveredEntries, which(eliminatedEntries)) # remember conjunction conjunctions <- c(conjunctions, list(currentEntry)) } return(paste(paste("(",sapply(conjunctions, function(conj) { paste(mapply(function(gene, val) { if (val == 1) return(gene) else return(paste("!",gene,sep="")) }, names(conj), conj), collapse=" & ") }), ")", sep=""), collapse=" | ")) } else { # canonical DNF conjunctions <- apply(entries[truthTable==1,,drop=FALSE],1,function(conj) { paste("(",paste(sapply(seq_along(conj),function(lit) { if (conj[lit]) genes[lit] else paste("!",genes[lit],sep="") }),collapse=" & "),")",sep="") }) return(paste(conjunctions[conjunctions != ""],collapse = " | ")) } } # Retrieves a string representation of an interaction function by either # building a DNF (if is false) # or returning an unspecific function description # (if is true or "canonical" or "short"). # contains the result column of the interaction's truth table, and # contains the names of the involved genes. getInteractionString <- function(readableFunctions,truthTable,genes) { if (readableFunctions != FALSE) getDNF(truthTable,genes, readableFunctions) else { if (isTRUE(all.equal(truthTable,rep(0,length(truthTable))))) return("0") else if (isTRUE(all.equal(truthTable,rep(1,length(truthTable))))) return("1") else { truthTable <- sapply(truthTable,function(x) { if (x == 0) "0" else if (x == 1) "1" else "*" }) paste("", sep="") } } } # Reorders a matrix of states (with each column being one state) # in a canonical way such that the "smallest" state is the first. # This makes attractor representations unique. canonicalStateOrder <- function(stateMatrix) { smallestIndex <- -1 smallestVal <- rep(Inf,nrow(stateMatrix)) for (i in seq_len(ncol(stateMatrix))) # iterate over states { for (j in seq_len(nrow(stateMatrix))) # iterate over elements of encoded state { if (stateMatrix[j,i] < smallestVal[j]) # determine new minimum { smallestVal <- stateMatrix[,i] smallestIndex <- i break } else { if (stateMatrix[j,i] > smallestVal[j]) break } } } if (smallestIndex != 1) # rearrange matrix return(cbind(stateMatrix[,smallestIndex:ncol(stateMatrix),drop=FALSE], stateMatrix[,seq_len(smallestIndex-1),drop=FALSE])) else return(stateMatrix) } # Find a child node named # of , or return NULL if such a node # does not exist. # If , throw an error if the node does not exist. xmlFindNode <- function(node,name,throwError=FALSE) { indices <- which(xmlSApply(node, xmlName) == name) if (length(indices) == 0) { if (throwError) stop(paste("Node \"",name,"\" is required, but missing!", sep="")) else return(NULL) } return(xmlChildren(node)[indices]) } # Remove leading and trailing whitespace characters from trim <- function(string) { string <- gsub("^[ \t]+", "", string) string <- gsub("[ \t]+$", "", string) return(string) } # Generate an interaction by parsing # and building the corresponding truth table. # Here, is a list of all genes in the network. # Returns an interaction as used in the BooleanNetwork class. generateInteraction <- function(expressionString, genes) { res <- .Call("getTruthTable_R", parseBooleanFunction(expressionString, genes), length(genes)) names(res) <- c("input","func") res$expression <- expressionString return(res) } # Create a DNF from a count predicate # ("maj","sumis","sumgt","sumlt"). # is the expression tree of the predicate # Returns an expression tree in DNF expandCountPredicate <- function(tree) { if (tree$operator == "maj") { if (length(tree$operands) %%2 == 0) count <- length(tree$operands) / 2 else count <- floor(length(tree$operands) / 2) operands <- tree$operands } else { count <- tree$operands[[length(tree$operands)]]$value operands <- tree$operands[-length(tree$operands)] } table <- as.matrix(allcombn(2,length(operands)) - 1) tableRes <- as.integer(apply(table,1,function(x) { switch(tree$operator, "maj" = sum(x) > count, "sumgt" = sum(x) > count, "sumlt" = sum(x) < count, "sumis" = sum(x) == count ) })) return(parseBooleanFunction(getDNF(tableRes, sapply(operands, stringFromParseTree)))) } # Get the inputs for an expression tree . # If is TRUE, the indices are returned instead of the gene names. # Returns a vector of gene names. getInputs <- function(tree, index=FALSE) { res <- switch(tree$type, operator = { unique(unlist(lapply(tree$operands, getInputs, index=index))) }, atom = { if (index) tree$index else tree$name }, constant = { NULL } ) return(res) } # Determine the maximum time delays for the genes # in a symbolic expression tree . # Returns a vector of time delays for the genes. maxTimeDelay <- function(tree, genes) { res <- switch(tree$type, operator = { timeDelays <- sapply(tree$operands, maxTimeDelay, genes=genes) if (!is.null(dim(timeDelays))) apply(timeDelays,1,max) else timeDelays }, atom = { res <- rep(1,length(genes)) names(res) <- genes res[tree$index] <- -tree$time res }, constant = { res <- rep(1,length(genes)) names(res) <- genes res } ) return(res) } # Convert into valid identifiers # by replacing special characters # Returns a vector of adjusted gene names. adjustGeneNames <- function(geneNames) { # eliminate special characters res <- gsub("[^a-zA-Z0-9_]+","_",geneNames) # ensure that identifier does not start with a number res <- gsub("(^[0-9][a-zA-Z0-9_]*)$","_\\1", res) names(res) <- geneNames return(res) } # Check whether the internal C pointer is null checkNullPointer <- function(ptr) { return(.Call("checkNullPointer",ptr)) } # Print a synchronous attractor specified by a data frame # The attractor has the index and a basin consisting of states. # If is true, states are represented as a list of active genes (otherwise binary vectors). printSynchronousAttractor <- function(attractor, index, basinSize=NA, activeOnly=FALSE) { if (is.na(basinSize)) cat("Attractor ",index," is a simple attractor consisting of ", nrow(attractor), " state(s)",sep="") else cat("Attractor ",index," is a simple attractor consisting of ", nrow(attractor), " state(s) and has a basin of ", basinSize, " state(s)",sep="") # print a graphical representation of the attractor cycle if (activeOnly) { cat(".\nActive genes in the attractor state(s):\n") for (j in seq_len(nrow(attractor))) { state <- paste(colnames(attractor)[which(attractor[j,] == 1)],collapse=", ") if (state == "") state <- "--" cat("State ", j, ": ", state, "\n", sep="") } cat("\n") } else { cat(":\n\n") numGenes <- ncol(attractor) cat(" |--<", paste(rep("-",numGenes-1), collapse=""),"|\n", sep="") cat(" V ", paste(rep(" ",numGenes-1), collapse="")," |\n", sep="") for (j in seq_len(nrow(attractor))) { cat(" ", as.integer(attractor[j,])," |\n",sep="") #cat(" | ", paste(rep(" ",numGenes-1), collapse="")," |\n", sep="") } cat(" V ", paste(rep(" ",numGenes-1), collapse=""), " |\n", sep="") cat(" |-->", paste(rep("-",numGenes-1), collapse=""), "|\n\n", sep="") } if (!activeOnly) cat("\nGenes are encoded in the following order: ", paste(colnames(attractor), collapse=" "), "\n\n", sep="") } BoolNet/R/markovSimulation.R0000644000176000001440000001226112466166263015552 0ustar ripleyusers# Perform a Markov chain simulation with iterations/matrix multiplications on . # If is supplied, probabilities for all other start states will be set to 0. # All probabilities below are regarded as zero. markovSimulation <- function(network, numIterations=1000, startStates=list(), cutoff=0.001, returnTable=TRUE) { stopifnot(inherits(network,"ProbabilisticBooleanNetwork") | inherits(network,"BooleanNetwork")) if (sum(network$fixed == -1) > 32) stop("A Markov chain simulation with more than 32 non-fixed genes is not supported!") # the C code requires all interactions to be coded into one vector: if (inherits(network,"BooleanNetwork")) # deterministic network { # Assemble all input gene lists in one list , and remember the split positions in . inputGenes <- as.integer(unlist(lapply(network$interactions,function(interaction)interaction$input))) inputGenePositions <- as.integer(cumsum(c(0,sapply(network$interactions, function(interaction)length(interaction$input))))) # Do the same for the transition functions. transitionFunctions <- as.integer(unlist(lapply(network$interactions,function(interaction)interaction$func))) transitionFunctionPositions <- as.integer(cumsum(c(0,sapply(network$interactions, function(interaction)length(interaction$func))))) probabilities <- as.double(rep(1.0,length(network$genes))) functionAssignment <- as.integer(0:(length(network$genes)-1)) } else # probabilistic network { wrongProb <- sapply(network$interactions,function(interaction) abs(1.0-sum(sapply(interaction,function(func)func$probability))) > 0.0001) if (any(wrongProb)) stop(paste("The probabilities of gene(s) ",paste(network$genes[wrongProb],collapse=", ")," do not sum up to 1!",sep="")) # Assemble all input gene lists in one list , and remember the split positions in . inputGenes <- as.integer(unlist(lapply(network$interactions,function(interaction)lapply(interaction,function(singleFunc)singleFunc$input)))) inputGenePositions <- as.integer(cumsum(c(0,unlist(lapply(network$interactions, function(interaction)lapply(interaction,function(singleFunc)length(singleFunc$input))))))) # Do the same for the transition functions. transitionFunctions <- as.integer(unlist(lapply(network$interactions,function(interaction)lapply(interaction,function(singleFunc)singleFunc$func)))) transitionFunctionPositions <- as.integer(cumsum(c(0,unlist(lapply(network$interactions, function(interaction)lapply(interaction,function(singleFunc)length(singleFunc$func))))))) probabilities <- as.double(unlist(lapply(network$interactions,function(interaction)lapply(interaction,function(singleFunc)singleFunc$probability)))) functionAssignment <- as.integer(unlist(mapply(function(index,interaction)rep(index,length(interaction)),0:(length(network$interactions )- 1), network$interactions))) } # check whether the start states are allowed # by comparing the values of the fixed genes fixedGenes <- which(network$fixed != -1) if (length(startStates) > 0) { statesValid <- sapply(startStates,function(state) { isTRUE(all(state[fixedGenes] == network$fixed[fixedGenes])) }) if (!isTRUE(all(statesValid))) warning("Some of the supplied start states did not match the restrictions of the fixed genes and were removed!") startStates <- startStates[statesValid] } convertedStartStates <- NULL if (length(startStates) > 0) convertedStartStates <- sapply(startStates,function(x)bin2dec(x,length(network$genes))) on.exit(.C("freeAllMemory", PACKAGE = "BoolNet")) # call C code res <- .Call("markovSimulation_R", inputGenes,inputGenePositions, transitionFunctions,transitionFunctionPositions, as.integer(network$fixed), functionAssignment, probabilities, as.integer(numIterations), convertedStartStates, as.double(cutoff), as.integer(returnTable), PACKAGE="BoolNet") if (length(network$genes) %% 32 == 0) numElementsPerEntry <- as.integer(length(network$genes) / 32) else numElementsPerEntry <- as.integer(length(network$genes) / 32 + 1) # build result matrix reachedStates <- data.frame(t(sapply(res$states,function(state)dec2bin(state,length(network$genes)))),res$probabilities) colnames(reachedStates) <- c(network$genes,"Probability") if (returnTable) { initialStates <- matrix(res$initialStates,nrow=numElementsPerEntry) nextStates <- matrix(res$nextStates,nrow=numElementsPerEntry) res <- list(reachedStates=reachedStates, table=list(initialStates=initialStates,nextStates=nextStates,probabilities=res$transitionProbabilities), genes=network$genes) } else { res <- list(reachedStates=reachedStates, table=NULL, genes=network$genes) } class(res) <- "MarkovSimulation" return(res) } BoolNet/R/generateRandomStartStates.R0000644000176000001440000000277712466166263017356 0ustar ripleyusers generateRandomStartStates <- function(network, n) { mat <- matrix(nrow=n,ncol=length(network$genes)) fixedPositions <- which(network$fixed != -1) nonFixedPositions <- which(network$fixed == -1) if (n > (2 ^ length(nonFixedPositions))) stop("The number of states to generate exceeds the total number of possible states!") if (length(fixedPositions) != 0) # fill fixed positions with the corresponding values mat[,fixedPositions] <- sapply(fixedPositions,function(x) rep(network$fixed[x],n)) if (n != 2 ^ length(nonFixedPositions)) { # generate other positions randomly mat[,nonFixedPositions] <- round(runif(n=n*length(nonFixedPositions))) } else { mat[,nonFixedPositions] <- allcombn(2,length(nonFixedPositions)) - 1 } # eliminate duplicates mat <- unique(mat) while (nrow(mat) != n) # if duplicates were removed, generate new states until the # desired number of states is reached { vec <- rep(0,length(network$genes)) if (length(fixedPositions) != 0) # fill fixed positions vec[fixedPositions] <- sapply(fixedPositions, function(x)network$fixed[x]) # generate other positions randomly vec[nonFixedPositions] <- round(runif(n=length(nonFixedPositions))) mat <- unique(rbind(mat,vec)) } #cat("Using initial states:\n") # print states and form a list res <- lapply(1:nrow(mat),function(i) { #cat(paste(mat[i,],collapse=""),"\n",sep="") mat[i,] }) #cat("\n") return(res); } BoolNet/R/getBasinOfAttraction.R0000644000176000001440000000101512466166263016253 0ustar ripleyusers# Determine the basin of attraction of attractor in . getBasinOfAttraction <- function(attractorInfo,attractorNo) { stopifnot(inherits(attractorInfo,"AttractorInfo") || inherits(attractorInfo,"SymbolicSimulation")) if (missing(attractorNo) || attractorNo <= 0 || attractorNo > length(attractorInfo$attractors)) stop("Please provide a valid attractor number!") table <- getTransitionTable(attractorInfo) return(table[which(table$attractorAssignment == attractorNo),,drop=FALSE]) } BoolNet/R/print.ProbabilisticBooleanNetwork.R0000644000176000001440000000263012466166264021001 0ustar ripleyusersprint.BooleanNetworkCollection <- function(x, ...) { print.ProbabilisticBooleanNetwork(x, ...) } # Custom print function for class ProbabilisticBooleanNetwork print.ProbabilisticBooleanNetwork <- function(x, ...) { cat("Probabilistic Boolean network with",length(x$genes),"genes\n\n") cat("Involved genes:\n",paste(x$genes,collapse=" "),"\n\n",sep="") cat("Transition functions:\n") mapply(function(gene,interaction) { cat("\nAlternative transition functions for gene ",gene,":\n",sep="") # print original expressions read from the files (if available) lapply(interaction,function(func) { cat(gene," = ",func$expression,sep="") if (!is.null(func$probability) || !is.null(func$error)) { cat(" (") if (!is.null(func$probability)) { cat(" probability: ",func$probability,sep="") if (!is.null(func$error)) cat(", ") } if (!is.null(func$error)) cat("error: ",func$error,sep="") cat(")") } cat("\n") }) }, x$genes,x$interactions) if (sum(x$fixed != -1) > 0) { cat("\nKnocked-out and over-expressed genes:\n") mapply(function(gene,fixed) { if (fixed != -1) cat(gene," = ",fixed,"\n",sep="") }, x$genes,x$fixed) } return(invisible(x)) } BoolNet/R/plotNetworkWiring.R0000644000176000001440000000525012466166264015717 0ustar ripleyusers# Plot a wiring graph of the network with the supplied # graphical parameters. # Requires igraph. # Returns the igraph structure representing the wiring graph. plotNetworkWiring <- function(network,layout=layout.fruchterman.reingold,plotIt=TRUE,...) { stopifnot(inherits(network,"ProbabilisticBooleanNetwork") | inherits(network,"BooleanNetworkCollection") | inherits(network,"BooleanNetwork") | inherits(network,"SymbolicBooleanNetwork")) if (installed.packages()["igraph","Version"] < package_version("0.6")) bias <- 1 else bias <- 0 edgeList <- c() # construct list of edges from interactions if (inherits(network,"BooleanNetwork")) # deterministic network { for (i in seq_along(network$genes)) { if (network$interactions[[i]]$input[1] != 0) # no edges for constant genes { edgeList <- rbind(edgeList, cbind(network$interactions[[i]]$input, rep(i,length(network$interactions[[i]]$input)))) } } } else if (inherits(network,"SymbolicBooleanNetwork")) # symbolic network { inputs <- lapply(network$interactions, getInputs, index=TRUE) for (i in seq_along(network$genes)) { edgeList <- rbind(edgeList, cbind(inputs[[i]], rep(i,length(inputs[[i]])))) } } else # probabilistic network { for (i in seq_along(network$genes)) { for (j in seq_along(network$interactions[[i]])) { if (network$interactions[[i]][[j]]$input[1] != 0) # no edges for constant genes { edgeList <- rbind(edgeList, cbind(network$interactions[[i]][[j]]$input, rep(i,length(network$interactions[[i]][[j]]$input)))) } } } } # build graph from edge list res <- graph.data.frame(edgeList-bias,directed=TRUE,vertices=as.data.frame((seq_along(network$genes)) - bias)) res <- set.vertex.attribute(res,"name",value=network$genes) args <- list(...) # check for certain graphical parameters in ... # that have different default values in this plot if (is.null(args$vertex.color)) args$vertex.color <- "grey" if (is.null(args$edge.arrow.size)) args$edge.arrow.size <- 0.5 if (is.null(args$vertex.label.cex)) args$vertex.label.cex <- 0.7 if (is.null(args$vertex.size)) args$vertex.size <- 18 if (plotIt) { plot(res,vertex.label=network$genes,vertex.label.cex=args$vertex.label.cex, vertex.size=args$vertex.size,vertex.color=args$vertex.color, edge.arrow.size=args$edge.arrow.size, layout=layout,...) } return(invisible(res)) } BoolNet/R/print.BooleanNetwork.R0000644000176000001440000000133012466166264016266 0ustar ripleyusers# Custom print function for class BooleanNetwork print.BooleanNetwork <- function(x, ...) { cat("Boolean network with",length(x$genes),"genes\n\n") cat("Involved genes:\n",paste(x$genes,collapse=" "),"\n\n",sep="") cat("Transition functions:\n") mapply(function(gene,interaction) { # print original expressions read from the files (if available) cat(gene," = ",interaction$expression,"\n",sep="") }, x$genes,x$interactions) if (sum(x$fixed != -1) > 0) { cat("\nKnocked-out and over-expressed genes:\n") mapply(function(gene,fixed) { if (fixed != -1) cat(gene," = ",fixed,"\n",sep="") }, x$genes,x$fixed) } return(invisible(x)) } BoolNet/R/plotPBNTransitions.R0000644000176000001440000000721012466166264015761 0ustar ripleyusers# Plots a graph of the transitions in a probabilistic Boolean network. # is the result of a Markov simulation with returnTable=TRUE. # If stateSubset is specified, only transitions between states in the set are considered. # If is true, the edges are annotated with probabilities. # If is true, the states are annotated with their gene values. # specifies the igraph layout to be used. # If is false, only the graph is returned, and nothing is plotted. # ... specifies further parameters to igraph. plotPBNTransitions <- function(markovSimulation,stateSubset, drawProbabilities=TRUE,drawStateLabels=TRUE, layout=layout.fruchterman.reingold, plotIt=TRUE,...) { stopifnot(inherits(markovSimulation,"MarkovSimulation")) if (is.null(markovSimulation$table)) stop(paste("The supplied simulation result does not contain transition information.", "Please re-run markovSimulation() with returnTable=TRUE!")) # assemble edges from table edgeMatrix <- data.frame(apply(markovSimulation$table$initialStates,2, function(x)paste(dec2bin(x,length(markovSimulation$genes)),collapse="")), apply(markovSimulation$table$nextStates,2, function(x)paste(dec2bin(x,length(markovSimulation$genes)),collapse=""))) if (!missing(stateSubset)) { # determine edges to be excluded based on the subset stateSubset <- sapply(stateSubset,function(x)paste(x,collapse="")) keepIndices <- apply(edgeMatrix,1,function(row) { (length(intersect(row,stateSubset)) == length(unique(row))) }) # drop edges edgeMatrix <- edgeMatrix[keepIndices,] probabilities <- markovSimulation$table$probabilities[keepIndices] } else probabilities <- markovSimulation$table$probabilities # determine set of vertices vertices <- as.data.frame(as.character(unique(c(as.character(edgeMatrix[,1]), as.character(edgeMatrix[,2]))))) # build graph graph <- graph.data.frame(edgeMatrix,vertices=vertices,directed=TRUE) if (drawProbabilities) graph <- set.edge.attribute(graph,"label",value=paste(" ",probabilities)) if (drawStateLabels) label <- as.character(vertices[,1]) else label <- NA if (plotIt) { # set default values for further graphical parameters args <- list(...) if (is.null(args$vertex.size)) args$vertex.size <- 2 if (is.null(args$edge.arrow.mode)) args$edge.arrow.mode <- 0 if (is.null(args$vertex.label.cex)) args$vertex.label.cex <- 0.75 if (is.null(args$edge.label.cex)) args$edge.label.cex <- 0.75 if (is.null(args$vertex.label.dist)) args$vertex.label.dist <- 1 if (is.null(args$vertex.color)) args$vertex.color <- "grey" if (is.null(args$edge.label.color)) args$edge.label.color <- "green" if (is.null(args$edge.arrow.size)) args$edge.arrow.size <- 0.5 # plot it plot(graph,vertex.label=label,layout=layout,vertex.label.cex=args$vertex.label.cex, vertex.size=args$vertex.size,vertex.color=args$vertex.color, vertex.label.dist = args$vertex.label.dist, edge.arrow.size=args$edge.arrow.size, edge.label.color=args$edge.label.color, edge.label.cex=args$edge.label.cex,...) } # return the igraph object return(invisible(graph)) } BoolNet/R/generateState.R0000644000176000001440000000175312466166263015005 0ustar ripleyusersgenerateState <- function(network, specs, default=0) { stopifnot(inherits(network,"ProbabilisticBooleanNetwork") || inherits(network,"BooleanNetwork") || inherits(network,"SymbolicBooleanNetwork")) if (!all(names(specs) %in% network$genes)) stop(paste("Undefined gene names:", paste(setdiff(names(specs), network$genes), collapse=", "))) if (!all(unlist(specs) %in% c(0,1))) stop("Please provide only Boolean values!") lengths <- unique(sapply(specs, length)) if (length(lengths) > 1) stop("The number of specifications for each gene must be the same!") if (lengths == 1) { state <- rep(default, length(network$genes)) names(state) <- network$genes state[names(specs)] <- specs } else { state <- matrix(rep(default, length(network$genes) * lengths), nrow=lengths) colnames(state) <- network$genes for (i in seq_along(specs)) state[,names(specs)[i]] <- specs[[i]] } return(state) } BoolNet/R/zeta.R0000644000176000001440000000144012466166264013147 0ustar ripleyusers # Distribution function of the Zeta distribution dzeta <- function(k,gamma=2.5,approx_cutoff=100) { zeta_approx <- sum(sapply(seq_len(approx_cutoff),function(x)1/(x^gamma))) sapply(k,function(k_i) { 1/(k_i^gamma * zeta_approx) }) } # Quantile function of the Zeta distribution qzeta <- function(p,maxK,gamma=2.5,approx_cutoff=100) { vals <- cumsum(dzeta(seq_len(maxK),gamma,approx_cutoff)) sapply(p,function(p_i) { indices <- which(vals > p_i) if (length(indices) == 0) return(NA) else return(indices[1]) }) } # Draw random numbers from the Zeta distribution rzeta <- function(n,maxK,gamma=2.5,approx_cutoff=100) { maxP <- cumsum(dzeta(seq_len(maxK),gamma,approx_cutoff)) p <- runif(min=0,max=maxP,n=n) return(qzeta(p,maxK,gamma,approx_cutoff)) } BoolNet/R/toSBML.R0000644000176000001440000002040412466166264013305 0ustar ripleyusers# Indent using tabs. indent <- function(string,count) { if (count == 0) return(string) return(paste(paste(rep("\t",count),collapse=""), string, sep="")) } # Export a Boolean network to an sbml-qual file . # If , a new symbolic representation for the interactions # is generated on the basis of the truth tables (in disjunctive normal form). # Otherwise, the $expression elements of the interactions are parsed. # If is true, constant transition functions are exported for fixed genes # instead of their true transition functions toSBML <- function(network, file, generateDNFs=FALSE, saveFixed = TRUE) { symbolic <- inherits(network,"SymbolicBooleanNetwork") stopifnot(inherits(network,"BooleanNetwork") || symbolic) if (symbolic) { if (any(network$timeDelays > 1)) stop("SBML does not support networks with time delays!") parseTrees <- network$interactions } else { parseTrees <- NULL if (generateDNFs == FALSE) # Check whether all interactions have suitable string representations { tryCatch( { # parse the string representations parseTrees <- lapply(network$interactions, function(int)parseBooleanFunction(int$expression)) }, error=function(e) { warning(paste("The transition functions of this network did not contain valid symbolic expressions!", "Generating DNF representations from the truth tables!")) # There was an error parsing a string representation => generate DNFs generateDNFs <<- TRUE }) } if (generateDNFs != FALSE) # build new representations of the functions in disjunctive normal form { network$interactions <- lapply(network$interactions, function(interaction) { table <- allcombn(2, length(interaction$input)) - 1 interaction$expression <- getDNF(interaction$func, network$genes[interaction$input], generateDNFs) return(interaction) }) # parse the DNF representations parseTrees <- lapply(network$interactions, function(int)parseBooleanFunction(int$expression)) } names(parseTrees) <- network$genes } # generate a network identifier from the file name id <- sub(".sbml", "", basename(file), fixed=TRUE) id <- gsub("[^a-zA-Z0-9_]+","_",id) # open a string connection output <- NULL f <- textConnection("output", encoding="UTF-8", open="w", local=TRUE) # write document header cat(file=f, "\n") cat(file=f, "\n") cat(file=f, "\t\n", sep="") # write default compartment cat(file=f, "\t\t\n") cat(file=f, "\t\t\t\n") cat(file=f, "\t\t\n") # write genes cat(file=f, "\t\t\n") for (gene in network$genes) { if ((saveFixed && network$fixed[gene] != -1) || (!symbolic && network$interactions[[gene]]$input[1] == 0)) { if (saveFixed && network$fixed[gene] != -1) level <- network$fixed[gene] else level <- network$interactions[[gene]]$func[1] cat(file=f, "\t\t\t\n", sep="") } else cat(file=f, "\t\t\t\n", sep="") } cat(file=f, "\t\t\n") # write transition functions cat(file=f, "\t\t\n") for (gene in network$genes) { if ((!saveFixed || network$fixed[[gene]] == -1) && (symbolic || network$interactions[[gene]]$input[1] != 0)) { cat(file=f, "\t\t\t\n", sep="") cat(file=f, "\t\t\t\t\n") if (symbolic) inputs <- getInputs(network$interactions[[gene]]) else inputs <- network$genes[network$interactions[[gene]]$input] for (input in inputs) cat(file=f, "\t\t\t\t\t\n", sep="") cat(file=f, "\t\t\t\t\n") cat(file=f, "\t\t\t\t\n") cat(file=f, "\t\t\t\t\t\n", sep="") cat(file=f, "\t\t\t\t\n") cat(file=f, "\t\t\t\t\n") cat(file=f, "\t\t\t\t\t\n") cat(file=f, "\t\t\t\t\t\t\n") parseTree <- parseTrees[[gene]] cat(file=f, MathMLFromParseTree(parseTree, indentLevel=7)) cat(file=f, "\t\t\t\t\t\t\n") cat(file=f, "\t\t\t\t\t\n") cat(file=f, "\t\t\t\t\t\n") cat(file=f, "\t\t\t\t\n") cat(file=f, "\t\t\t\n") } } # finish document cat(file=f, "\t\t\n") cat(file=f, "\t\n") cat(file=f, "\n") close(f) # open file and write the complete XML string f <- file(file, encoding="UTF-8", open="w") cat(file=f,output,sep="\n") close(f) } # Build a MathML representation of a parse tree # that represents a symbolic Boolean expression. # Indentation of the XML nodes starts with . # Returns a string with MathML code. MathMLFromParseTree <- function(tree,indentLevel=0) { res <- switch(tree$type, operator = { if (tree$operator %in% c("timeis","timegt","timelt")) stop(sprintf("Operator \"%s\" not supported in SBML!", tree$operator)); if (tree$operator %in% c("maj","sumis","sumlt","sumgt")) # convert special predicates to general Boolean formulae tree <- expandCountPredicate(tree) if (tree$negated) paste(indent("\n", indentLevel), indent("\n", indentLevel+1), indent("\n" ,indentLevel+1), indent({if (tree$operator=="|" || tree$operator=="any") {"\n"} else{"\n"}}, indentLevel+2), paste(sapply(tree$operands,MathMLFromParseTree, indentLevel+2), collapse=""), indent("\n", indentLevel+1), indent("\n", indentLevel), sep="") else paste(indent("\n", indentLevel), indent({if (tree$operator=="|" || tree$operator=="any") {"\n"} else{"\n"}}, indentLevel+1), paste(sapply(tree$operands, MathMLFromParseTree, indentLevel+1), collapse=""), indent("\n", indentLevel), sep="") }, atom = { if ((tree$name == "0" && !tree$negated) || (tree$name == "1" && tree$negated)) indent("0\n", indentLevel) else if ((tree$name == "1" && !tree$negated) || (tree$name == "0" && tree$negated)) indent("1\n", indentLevel) else paste(indent("\n",indentLevel), indent("\n", indentLevel+1), indent(paste("",tree$name,"\n",sep=""),indentLevel+1), indent(paste("", {if (tree$negated) 0 else 1}, "\n", sep=""), indentLevel+1), indent("\n",indentLevel), sep="") }) return(res) } BoolNet/R/scanStatistic.R0000644000176000001440000000722712466166264015031 0ustar ripleyusers# determination of P(k,N,w) pval <- function(k,N,w) { return((k/w-N-1)*b(k,N,w)+2*Gb(k,N,w)) } # helper function b<-function(k,N,w) { return(choose(N,k)*w^k*(1-w)^(N-k)) } # helper function Gb<-function(k,N,w) { sum<-0 for(i in k:N) { sum <- sum + b(i,N,w) } return(sum) } # If two significant overlapping windows were found, these windows are # merged. If the windows do not overlap, two different windows are stored # in a list listadapt <- function(lcur,lnew) { if(length(lcur)==0) { lcur=lnew return(lcur) } else { if(lnew[[1]][1]<=lcur[[length(lcur)]][2]) { lcur[[length(lcur)]][2]<-lnew[[1]][2] if(lcur[[length(lcur)]][3]>lnew[[1]][3]) { lcur[[length(lcur)]][3] <- lnew[[1]][3] } return(lcur) } else { lcur<-append(lcur,lnew) return(lcur) } } } # This method searches for data accumulations by shifting a window with # window size across the data and deciding at each position if there # is a data accumulation. To test this, a scan statistic with significance # level is used. scanStatistic <- function(vect, w=0.25, sign.level=0.1) { temp<-vect vect <-unlist(vect) vsort <- sort(vect) N <- length(vect) range <- (max(vect)) - (min(vect)) windowsize <- range*w N <- length(vect) binarizeddata<-temp res<-list() lcur<-list() # shift a fixed window over the data # the window is moved from point to point for(i in seq_along(vect)) { start <- vsort[i] stop <- vsort[i] + windowsize k <- length(vect[(vect >= start) & (vect <= stop)]) p <- pval(k,N,w) if(p>1) { p=0.99 } if(p<=sign.level & p>0 & k >= (N*w-1) & k > 2) { res <- listadapt(res,list(c(start,stop,p))) } } # if no accumulation for a fixed was found, the # binarization is rejected, and we search for a accumulation # with a higher sign.level. if(length(res)==0) { while(TRUE) { sign.level=sign.level+0.05 if(sign.level>2) { binarizeddata<-(sapply(vect,function(x) 0)) return(list(bindata=binarizeddata,thresholds=NA,reject=TRUE)) } for(i in seq_along(vect)) { start <- vsort[i] stop <- vsort[i] + windowsize k <- length(vect[(vect >= start) & (vect <= stop)]) p <- pval(k,N,w) if(p>1) { p=0.99 } if(p<=sign.level & p>0 & k >= (N*w-1) & k > 2) { #res <- append(res,list(c(start=start,stop=stop,pval=p))) res <- listadapt(res,list(c(start,stop,p))) } } if(length(res)!=0) break } reject<-TRUE } else { reject<-FALSE } # search the window with the smallest sign.level. # this window is used for the binarization min=1000 ind=0 for(i in seq_along(res)) { if(res[[i]][3] res[[ind]][2]]) smaller <- length(vect[vect < res[[ind]][1]]) if(bigger > smaller) { threshold<-res[[ind]][2] small<-tail(vsort[vsort<=threshold],n=1) big<-vsort[vsort>threshold][1] thres<-(big+small)/2 for(i in seq_along(vect)) { if(vect[i]<=threshold) { binarizeddata[i]<-0 } else { binarizeddata[i]<-1 } } } else { threshold<-res[[ind]][1] small<-tail(vsort[vsort=threshold][1] thres<-(big+small)/2 for(i in seq_along(vect)) { if(vect[i]>=threshold) { binarizeddata[i]<-1 } else { binarizeddata[i]<-0 } } } return(list(bindata=binarizeddata,thresholds=as.numeric(thres),reject=reject)) } BoolNet/R/fixGenes.R0000644000176000001440000000157412473107364013756 0ustar ripleyusers# Sets the genes in to the values in # and returns the customized copy of fixGenes <- function(network,fixIndices,values) { stopifnot(inherits(network,"BooleanNetwork") | inherits(network,"SymbolicBooleanNetwork") | inherits(network,"ProbabilisticBooleanNetwork")) if (length(fixIndices) != length(values) && length(values) != 1) stop("fixIndices and values must have the same number of elements, or values must have 1 element!") if (any(is.na(network$fixed[fixIndices]))) stop("fixIndices contains invalid indices!") if (any(values != 0 & values != 1 & values != -1)) stop("Please supply only 0, 1, or -1 in values!") network$fixed[fixIndices] <- as.integer(values) if (inherits(network,"SymbolicBooleanNetwork")) network$internalStructs = .Call("constructNetworkTrees_R",network); return(network) } BoolNet/R/loadNetwork.R0000644000176000001440000001551412473107364014476 0ustar ripleyusers# Load a network in a specified rule description language # from file . # is the character that separates targets and factors # specifies whether gene names are converted to lower case loadNetwork <- function(file, bodySeparator=",", lowercaseGenes=FALSE, symbolic=FALSE) { func <- readLines(file,-1) # strip comments func <- gsub("#.*", "", trim(func)) func <- func[nchar(func) > 0] # check header if (length(func) == 0) stop("Header expected!") header <- func[1] header <- tolower(trim(strsplit(header, bodySeparator)[[1]])) if (length(header) < 2 || header[1] != "targets" || !(header[2] %in% c("functions","factors")) || (length(header) == 3 && header[3] != "probabilities")) stop(paste("Invalid header:", func[1])) func <- func[-1] if (lowercaseGenes) func <- tolower(func) # Replace all invalid characters to be able to load most networks func <- gsub("[^\\[\\]a-zA-Z0-9_\\|\\&!\\(\\) \t\\-+=.,]+","_", func, perl=TRUE) tmp <- unname(lapply(func,function(x) # split strings at separators that are NOT # inside a bracket block { bracketCount <- 0 lastIdx <- 1 chars <- strsplit(x,split="")[[1]] res <- c() if (length(chars) > 0) { for (i in seq_along(chars)) { if (chars[i] == "(") bracketCount <- bracketCount + 1 else if (chars[i] == ")") bracketCount <- bracketCount -1 else if (chars[i] == bodySeparator && bracketCount == 0) { res <- c(res, trim(paste(chars[lastIdx:(i-1)],collapse=""))) lastIdx <- i + 1 } } res <- c(res, trim(paste(chars[lastIdx:length(chars)],collapse=""))) } return(res) })) targets <- sapply(tmp,function(rule)trim(rule[1])) for (target in targets) { if (regexec("^[a-zA-Z_][a-zA-Z0-9_]*$", target)[[1]] == -1) stop(paste("Invalid gene name:",target)) } factors <- sapply(tmp,function(rule)trim(rule[2])) temporal <- length(grep("timeis|timelt|timegt|\\[|\\]", factors, ignore.case=TRUE) > 0) if (temporal && !symbolic) { warning("The network contains temporal elements. This requires loading the model with symbolic=TRUE!") symbolic <- TRUE } probabilities <- sapply(tmp,function(rule) { if (length(rule) >= 3) as.numeric(trim(rule[3])) else 1.0 }) factors.tmp <- lapply(factors,matchNames) # create list of all gene names in both sides of the functions genes <- unique(c(targets,unname(unlist(factors.tmp)))) isProbabilistic <- (length(unique(targets)) < length(targets)) if (symbolic) { if (isProbabilistic) stop("Probabilistic networks cannot be loaded with symbolic=TRUE!") interactions <- lapply(factors, function(rule)parseBooleanFunction(rule, genes)) onlyInputs <- setdiff(genes,targets) if(length(onlyInputs) > 0) # some genes are only used as inputs, but are not involved in the network # -> create dummy input and function { for(gene in onlyInputs) { warning(paste("There is no transition function for gene \"", gene,"\"! Assuming an input!",sep="")) interactions[[gene]] = parseBooleanFunction(gene, genes) } } delays <- apply(sapply(interactions,maxTimeDelay,genes=genes),1,max) names(interactions) <- genes fixed <- as.integer(sapply(interactions, function(int) { if (int$type == "constant") int$value else -1L })) names(fixed) <- genes res <- list(genes = genes, interactions=interactions, fixed=fixed) res$internalStructs <- .Call("constructNetworkTrees_R",res) res$timeDelays <- delays class(res) <- "SymbolicBooleanNetwork" return(res) } else { # extract "real" gene names from the list, drop constants #suppressWarnings(genes <- genes[is.na(as.integer(genes))]) fixed <- rep(-1,length(genes)) names(fixed) <- genes interactions <- list() for(i in seq_along(targets)) { target <- targets[i] interaction <- generateInteraction(factors[i], genes); if (isProbabilistic) { interaction$probability <- probabilities[i] interactions[[target]][[length(interactions[[target]]) + 1]] <- interaction } else { if (length(interaction$func) == 1) # this is a constant gene => fix it { fixed[target] <- interaction$func } interactions[[target]] <- interaction } } onlyInputs <- setdiff(genes,targets) if(length(onlyInputs) > 0) # some genes are only used as inputs, but are not involved in the network # -> create dummy input and function { for(gene in onlyInputs) { warning(paste("There is no transition function for gene \"", gene,"\"! Assuming an input!",sep="")) if (isProbabilistic) interactions[[gene]][[1]] = list(input = length(interactions)+1,func=c(0,1), expression = gene, probability=1.0) else interactions[[gene]] = list(input = length(interactions)+1,func=c(0,1), expression = gene) } } if (isProbabilistic) { wrongProb <- sapply(interactions,function(interaction) { abs(1.0-sum(sapply(interaction,function(func)func$probability))) > 0.0001 }) if (any(wrongProb)) stop(paste("The probabilities of gene(s) ",paste(genes[wrongProb],collapse=", ")," do not sum up to 1!",sep="")) } res <- list(interactions = interactions, genes = genes, fixed = fixed) if (isProbabilistic) class(res) <- "ProbabilisticBooleanNetwork" else class(res) <- "BooleanNetwork" return(res) } } matchNames <- function(rule) { regexpr <- "([_a-zA-Z][_a-zA-Z0-9]*)[,| |\\)|\\||\\&|\\[]" rule <- paste(gsub(" ", "", rule, fixed=TRUE)," ",sep="") res <- unique(unname(sapply(regmatches(rule,gregexpr(regexpr, rule))[[1]], function(m) { sapply(regmatches(m,regexec(regexpr,m)),function(x)x[2]) }))) # remove operators isOp <- sapply(res, function(x) { tolower(x) %in% c("all", "any", "sumis", "sumgt", "sumlt", "maj", "timegt", "timelt", "timeis") }) return(res[!isOp]) } BoolNet/R/print.AttractorInfo.R0000644000176000001440000000447612466166264016132 0ustar ripleyusers# Custom print function for class AttractorInfo print.AttractorInfo <- function(x, activeOnly = FALSE, ...) { numGenes <- length(x$stateInfo$genes) attractors <- x$attractors for (i in seq_along(attractors)) { if (is.null(attractors[[i]]$initialStates)) # simple attractor { printSynchronousAttractor(getAttractorSequence(x, i), i, attractors[[i]]$basinSize, activeOnly=activeOnly) } else { # print general information on the attractor cat("Attractor ",i," is a complex/loose attractor consisting of ",ncol(attractors[[i]]$involvedStates), " state(s) and ",ncol(attractors[[i]]$initialStates), " transition(s)",sep="") if (activeOnly) { cat(".\nActive genes in the state transitions: \n") initialStates <- t(apply(attractors[[i]]$initialStates,2,function(state) dec2bin(state,numGenes))) nextStates <- t(apply(attractors[[i]]$nextStates,2,function(state) dec2bin(state,numGenes))) binMatrix <- data.frame(initialStates,nextStates) apply(binMatrix,1,function(row) { state1 <- paste(x$stateInfo$genes[which(row[seq_len(numGenes)] == 1)],collapse=", ") if (state1 == "") state1 <- "--" state2 <- paste(x$stateInfo$genes[which(row[seq_len(numGenes) + numGenes] == 1)],collapse=", ") if (state2 == "") state2 <- "--" cat(state1," => ",state2,"\n",sep="") }) } else { cat(":\n\n") initialStates <- apply(attractors[[i]]$initialStates,2,function(state) paste(dec2bin(state,numGenes),collapse="")) nextStates <- apply(attractors[[i]]$nextStates,2,function(state) paste(dec2bin(state,numGenes),collapse="")) binMatrix <- data.frame(initialStates,nextStates) apply(binMatrix,1,function(row) { cat(row[1]," => ",row[2],"\n",sep="") }) cat("\nGenes are encoded in the following order: ",paste(x$stateInfo$genes,collapse=" "),"\n\n",sep="") } } } return(invisible(x)) } BoolNet/R/plotAttractors.R0000644000176000001440000002141412473107364015226 0ustar ripleyusers# Plot state tables of all attractors in . # Genes are grouped according to . # An additional title can be supplied in . # If <plotFixed> is set, fixed variables are included in the plot. # <onColor> and <offColor> specify the colors of ON/1 and OFF/0 states. plotAttractors <- function (attractorInfo, subset, title = "", mode=c("table","graph"), grouping = list(), plotFixed = TRUE, onColor="green",offColor="red", layout=layout.circle, drawLabels=TRUE, drawLegend=TRUE, ask=TRUE, reverse=FALSE, ...) { stopifnot(inherits(attractorInfo,"AttractorInfo") || inherits(attractorInfo, "SymbolicSimulation")) if (inherits(attractorInfo,"AttractorInfo")) { numGenes <- length(attractorInfo$stateInfo$genes) geneNames <- attractorInfo$stateInfo$genes } else { numGenes <- ncol(attractorInfo$attractors[[1]]) geneNames <- colnames(attractorInfo$attractors[[1]]) } if (missing(subset)) subset <- seq_along(attractorInfo$attractors) else if (any(subset > length(attractorInfo$attractors))) stop("You specified an attractor index that is greater than the total number of attractors in 'subset'!") switch(match.arg(mode,c("table","graph")), table = { # determine list of genes to be plotted whichFixed <- which(attractorInfo$stateInfo$fixedGenes != -1) if (plotFixed | (length(whichFixed) == 0)) plotIndices <- seq_len(numGenes) else plotIndices <- seq_len(numGenes)[-whichFixed] if (inherits(attractorInfo,"AttractorInfo")) { # convert decimal state numbers to binary state matrices (one for each attractor) binMatrices <- lapply(attractorInfo$attractors,function(attractor) { res <- matrix(apply(attractor$involvedStates,2,function(state) dec2bin(state,numGenes)[plotIndices]),nrow=length(plotIndices)) }) # count the numbers of attractors with equal lengths attractorLengths <- sapply(attractorInfo$attractors,function(attractor) { if (is.null(attractor$initialStates)) # simple attractor ncol(attractor$involvedStates) else # complex attractor => extra treatment -1 }) } else { binMatrices <- lapply(attractorInfo$attractors, t) attractorLengths <- sapply(binMatrices, ncol) } lengthTable <- table(attractorLengths) lengthTable <- lengthTable[as.integer(names(lengthTable)) != -1] oldAsk <- par("ask") res <- lapply(seq_along(lengthTable),function(i) # accumulate all attractors with equal length in one matrix and plot them { len <- as.integer(names(lengthTable)[i]) attractorIndices <- intersect(which(attractorLengths == len), subset) if (length(attractorIndices) > 0) { cnt <- length(attractorIndices) # build accumulated matrix totalMatrix <- c() for (mat in binMatrices[attractorIndices]) { totalMatrix <- cbind(totalMatrix,mat) } rownames(totalMatrix) <- geneNames[plotIndices] colnames(totalMatrix) <- sapply(attractorIndices,function(i)paste("Attr",i,".",seq_len(len),sep="")) if(length(grouping)>0) # reorder genes according to the supplied groups totalMatrix = totalMatrix[unlist(grouping$index),,drop=FALSE] par(ask=ask && i > 1 && dev.interactive()) # initialize with empty plot if (reverse) plot(c(),c(),xlim=c(0,len*cnt),ylim=c(-2,nrow(totalMatrix)+1),xlab="",ylab="", axes=FALSE,main=paste(title, "Attractors with ",len," state(s)",sep="")) else plot(c(),c(),xlim=c(0,len*cnt),ylim=c(nrow(totalMatrix)+1,-2),xlab="",ylab="", axes=FALSE,main=paste(title, "Attractors with ",len," state(s)",sep="")) axis(2,seq_len(nrow(totalMatrix))-0.5,rownames(totalMatrix), yaxt='s', las=2) # plot active and inactive states for(i in seq_len(ncol(totalMatrix))) for(j in seq_len(nrow(totalMatrix))) { if(totalMatrix[j,i] == 1) rect(i-1,j-1,i,j,col=onColor,border="gold") else rect(i-1,j-1,i,j,col=offColor,border="gold") } # draw vertical separators between attractors sep = seq(0,ncol(totalMatrix),by=len) abline(v = sep[-1],col="white",lwd=3) # output frequency of attractor (basin size / number of states) if (inherits(attractorInfo,"AttractorInfo")) { if (is.null(attractorInfo$stateInfo$table)) freq <- rep(NA, length(attractorIndices)) else freq <- round(sapply(attractorInfo$attractors[attractorIndices], function(attractor)attractor$basinSize/ncol(attractorInfo$stateInfo$table)) * 100,2) } else { if (!is.null(attractorInfo$graph)) { freq <- round(sapply(attractorIndices, function(i)sum(attractorInfo$graph$attractorAssignment == i)/ nrow(attractorInfo$graph)) * 100,2) } else freq <- rep(NA, length(attractorIndices)) } if (!isTRUE(all(is.na(freq)))) { text(sep[seq_along(sep)-1] + len/2, rep(0.4+nrow(totalMatrix),ncol(totalMatrix)), paste(freq,"%",sep=""),cex=.75,font=3) } if(length(grouping)>0) # draw separators between groups, and print group names { sepPos = cumsum(sapply(grouping$index,length)) abline(h=sepPos[-length(sepPos)],col="black",lwd=3) text(ncol(totalMatrix)/2,sepPos-0.5,grouping$class,cex=0.9) } if (drawLegend) legend(x="bottomright", pch=c(15,15), col=c(onColor,offColor), legend = c("active","inactive"), cex=0.7, horiz=T) totalMatrix } }) par(ask=oldAsk) # return a list of accumulated matrices names(res) <- names(lengthTable) return(res) }, graph = { args <- list(...) if (is.null(args$vertex.size)) args$vertex.size <- 2 if (is.null(args$edge.arrow.mode)) args$edge.arrow.mode <- 0 if (is.null(args$vertex.label.cex)) args$vertex.label.cex <- 0.75 if (is.null(args$vertex.label.dist)) args$vertex.label.dist <- 1 if (is.null(args$vertex.color)) args$vertex.color <- "grey" if (is.null(args$edge.arrow.size)) args$edge.arrow.size <- 0.5 lapply(attractorInfo$attractors[subset],function(attractor) { if (inherits(attractorInfo,"AttractorInfo")) { nodes <- data.frame(apply(attractor$involvedStates,2,function(state) paste(dec2bin(state,numGenes),collapse="")), stringsAsFactors=FALSE) if (!is.null(attractor$initialStates)) # asynchronous complex attractor { initialStates <- apply(attractor$initialStates,2,function(state) paste(dec2bin(state,numGenes),collapse="")) nextStates <- apply(attractor$nextStates,2,function(state) paste(dec2bin(state,numGenes),collapse="")) } else { initialStates <- apply(attractor$involvedStates,2,function(state) paste(dec2bin(state,numGenes),collapse="")) if (length(initialStates) == 1) # steady state nextStates <- initialStates else # synchronous attractor with more than one state nextStates <- initialStates[c(2:length(initialStates),1)] } } else { initialStates <- apply(attractor,1,paste,collapse="") nextStates <- apply(attractor[c(2:nrow(attractor),1),,drop=FALSE],1,paste,collapse="") nodes <- data.frame(unique(c(initialStates, nextStates)), stringsAsFactors=FALSE) } edgeMatrix <- data.frame(initialStates,nextStates) graph <- graph.data.frame(edgeMatrix,vertices=nodes,directed=TRUE) if (drawLabels) labels <- nodes[,1] else labels <- NA args$layout <- layout args$x <- graph args$vertex.label <- labels args$main <- title do.call("plot",args) graph }) }) } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/R/sequenceToLaTeX.R�������������������������������������������������������������������������0000644�0001760�0000144�00000010113�12473107364�015204� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ sequenceToLaTeX <- function(network, startState, includeAttractorStates = c("all","first","none"), sequence, title="", grouping = list(), plotFixed = TRUE, onColor="[gray]{0.9}",offColor="[gray]{0.6}", highlightAttractor=TRUE, reverse=FALSE, file="sequence.tex") { if (!missing(network)) { stopifnot(inherits(network,"BooleanNetwork") || inherits(network,"SymbolicBooleanNetwork")) if (missing(startState) || !missing(sequence)) stop("Either \"network\" and \"startState\" or \"sequence\" must be provided!") sequence <- getPathToAttractor(network = network, state = startState, includeAttractorStates = includeAttractorStates) numGenes <- length(network$genes) whichFixed <- which(network$fixed != -1) if (plotFixed | (length(whichFixed) == 0)) plotIndices <- seq_len(numGenes) else plotIndices <- seq_len(numGenes)[-whichFixed] attractor <- attributes(sequence)$attractor sequence <- sequence[,plotIndices] attributes(sequence)$attractor <- attractor } else { if (missing(sequence) || !missing(startState)) stop("Either \"network\" and \"startState\" or \"sequence\" must be provided!") attractor <- attributes(sequence)$attractor } # escape "_" in LaTeX genes = gsub("_", "\\_", colnames(sequence)) # determine list of genes to be plotted # Open output file, and print header sink(file) cat("% Please include packages tabularx and colortbl in your master document:\n", "% \\usepackage{tabularx,colortbl}\n\n\n",sep="") totalMatrix <- t(sequence) colnames(totalMatrix) <- seq_len(ncol(totalMatrix)) if(length(grouping)>0) { # reorder genes according to the supplied groups totalMatrix <- totalMatrix[unlist(grouping$index),] separationPositions <- c(1,cumsum(sapply(grouping$index,length)+1)) } else separationPositions <- c() if (highlightAttractor && !is.null(attractor)) { header <- paste(paste(rep(">{\\centering\\arraybackslash}X", min(attractor) - 1), collapse = " "), "|", paste(rep(">{\\centering\\arraybackslash}X", length(attractor)), collapse = " "), "|", sep="") } else header <- paste(rep(">{\\centering\\arraybackslash}X", ncol(totalMatrix), collapse = " ")) # output table header cat("\\begin{table}[ht]\n", "\\begin{center}\n", "\\caption{",title,"}\n", "\\begin{tabularx}{\\linewidth}{l", header, "}\\hline\n", sep="") cat("\\textbf{Time}\t&\t",paste(seq_len(ncol(totalMatrix)),collapse="\t&\t"),"\\\\") if(length(grouping) == 0) cat("\\hline\n") else cat("\n") # output active and inactive states if (reverse) indices <- rev(seq_len(nrow(totalMatrix))) else indices <- seq_len(nrow(totalMatrix)) for(j in indices) { separator <- which(separationPositions==j) if (length(separator) != 0) { cat("\\hline \\multicolumn{",ncol(totalMatrix) + 1, "}{c}{",grouping$class[separator],"}\\\\ \\hline \n",sep="") } cat("\\textbf{",rownames(totalMatrix)[j],"}\t&\t",sep="") for(i in seq_len(ncol(totalMatrix))) { if(totalMatrix[j,i] == 1) cat("\\cellcolor",onColor,"1",sep="") else cat("\\cellcolor",offColor,"0",sep="") if (i < ncol(totalMatrix)) cat("\t&\t") } cat("\\\\\n") } cat("\\hline") if (highlightAttractor && !is.null(attractor)) { cat("\\multicolumn{",min(attractor), "}{c|}{}\t&\t\\multicolumn{",length(attractor), "}{c|}{Attractor}\\\\\\cline{",min(attractor) + 1, "-", max(attractor) + 1, "}\n",sep="") } cat("\\end{tabularx}\n\\end{center}\n", "\\end{table}\n\n",sep="") sink() # return the matrix return(totalMatrix) } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/R/saveNetwork.R�����������������������������������������������������������������������������0000644�0001760�0000144�00000011235�12466166264�014517� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ # Save <network> to <file> in the BoolNet file format. # If <generateDNFs> is true or a mode of getDNF(), # a new symbolic representation for the interactions # is generated on the basis of the truth tables (in disjunctive normal form). # If <generateDNFs> is false, the $expression elements of the interactions are exported. # If <saveFixed> is true, constant transition functions are exported for fixed genes # instead of their true transition functions saveNetwork <- function(network, file, generateDNFs = FALSE, saveFixed = TRUE) { stopifnot(inherits(network,"BooleanNetwork") || inherits(network,"SymbolicBooleanNetwork") || inherits(network,"ProbabilisticBooleanNetwork")) expressions <- NULL if (inherits(network,"BooleanNetwork")) { if (generateDNFs == FALSE) # Check whether all interactions have suitable string representations { tryCatch( { # parse the string representations lapply(network$interactions, function(int)parseBooleanFunction(int$expression)) }, error=function(e) { warning(paste("The transition functions of this network did not contain valid symbolic expressions!", "Generating DNF representations from the truth tables!")) # There was an error parsing a string representation => generate DNFs generateDNFs <<- TRUE }) } if (generateDNFs != FALSE) { expressions <- mapply(function(interaction, gene, fixed) { if (!saveFixed || fixed == -1) { table <- allcombn(2, length(interaction$input)) - 1 expression <- getDNF(interaction$func, network$genes[interaction$input], generateDNFs) return(paste(gene, ", ", expression, sep="")) } else return(paste(gene, ", ", fixed, sep="")) }, network$interactions, network$genes, network$fixed) } else { expressions <- mapply(function(interaction, gene, fixed) { if (!saveFixed || fixed == -1) return(paste(gene, ", ", interaction$expression, sep="")) else return(paste(gene, ", ", fixed, sep="")) }, network$interactions, network$genes, network$fixed) } sink(file) cat("targets, factors\n") } else if (inherits(network,"SymbolicBooleanNetwork")) { expressions <- mapply(function(interaction, gene, fixed) { if (!saveFixed || fixed == -1) return(paste(gene, ", ", stringFromParseTree(interaction), sep="")) else return(paste(gene, ", ", fixed, sep="")) }, network$interactions, network$genes, network$fixed) sink(file) cat("targets, factors\n") } else { if (generateDNFs == FALSE) # Check whether all interactions have suitable string representations { tryCatch( { # parse the string representations lapply(network$interactions, function(int)lapply(int, function(func)parseBooleanFunction(func$expression))) }, error=function(e) { warning(paste("The transition functions of this network did not contain valid symbolic expressions!", "Generating DNF representations from the truth tables!")) # There was an error parsing a string representation => generate DNFs generateDNFs <<- TRUE }) } if (generateDNFs != FALSE) { expressions <- mapply(function(interaction, gene, fixed) { if (!saveFixed || fixed == -1) { lapply(interaction, function(func) { table <- allcombn(2, length(func$input)) - 1 expression <- getDNF(func$func, network$genes[func$input], generateDNFs) return(paste(gene, ", ", expression, ", ", func$probability, sep="")) }) } else return(paste(gene, ", ", fixed, ", 1", sep="")) }, network$interactions, network$genes, network$fixed) } else { expressions <- mapply(function(interaction, gene, fixed) { if (!saveFixed || fixed == -1) { lapply(interaction, function(func) { return(paste(gene, ", ", func$expression, ", ", func$probability, sep="")) }) } else return(paste(gene, ", ", fixed, ", 1", sep="")) }, network$interactions, network$genes, network$fixed) } expressions <- unlist(expressions) sink(file) cat("targets, factors, probabilities\n") } cat(paste(expressions, collapse="\n"),"\n",sep="") sink() } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/R/perturbTrajectories.R���������������������������������������������������������������������0000644�0001760�0000144�00000014530�12466166264�016252� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ perturbTrajectories <- function(network, measure = c("hamming", "sensitivity", "attractor"), numSamples = 1000, flipBits = 1, updateType = c("synchronous","asynchronous","probabilistic"), gene, ...) { symbolic <- inherits(network,"SymbolicBooleanNetwork") probabilistic <- inherits(network,"ProbabilisticBooleanNetwork") stopifnot(inherits(network,"BooleanNetwork") || symbolic || probabilistic) measure <- match.arg(measure, c("hamming", "sensitivity", "attractor")) if (probabilistic && measure != "hamming") stop("Probabilistic networks are only supported for measure=\"hamming\"!") fixedIdx <- which(network$fixed != -1) nonFixedIdx <- which(network$fixed == -1) if (symbolic) { maxDelay <- max(network$timeDelays) flipIndices <- unlist(mapply(function(x, i) { if (network$fixed[i] == -1) seq_len(x) + (i - 1) * maxDelay else c() }, network$timeDelays, seq_along(network$genes))) startStates <- lapply(seq_len(numSamples), function(i) { m <- matrix(nrow=maxDelay, ncol=length(network$genes), round(runif(n=maxDelay*length(network$genes)))) m[,fixedIdx] <- network$fixed[fixedIdx] m }) } else { flipIndices <- seq_along(network$genes)[nonFixedIdx] startStates <- lapply(seq_len(numSamples), function(i) { s <- round(runif(n=length(network$genes))) s[fixedIdx] <- network$fixed[fixedIdx] s }) } if (length(flipIndices) == 0) stop("All genes in this network are fixed!") perturbedStates <- lapply(startStates, function(state) { flip <- sample(flipIndices, size=flipBits, replace=FALSE) state[flip] <- 1 - state[flip] return(state) }) if (measure == "hamming") { dists <- mapply(function(state1, state2) { sum(stateTransition(network=network, state=state1, type=updateType, ...) != stateTransition(network=network, state=state2, type=updateType, ...)) }, startStates, perturbedStates)/length(network$genes) return(list(stat=dists, value=mean(dists))) } else if (measure == "sensitivity") { if (missing(gene)) stop("Parameter \"gene\" must be set for sensitivity analysis!") if (is.character(gene)) geneIdx <- which(network$genes == gene) else geneIdx <- gene if (length(geneIdx) == 0) stop(paste("Unknown gene \"", gene, "\"!", sep="")) sensitivities <- unname(mapply(function(state1, state2) { stateTransition(network=network, state=state1, chosenGene = geneIdx, ...)[geneIdx] != stateTransition(network=network, state=state2, chosenGene = geneIdx, ...)[geneIdx] }, startStates, perturbedStates)) return(list(stat=sensitivities, value=mean(sensitivities))) } else { if (symbolic) { att1 <- simulateSymbolicModel(network, startStates=startStates, returnGraph=FALSE, canonical=TRUE, ...) att2 <- simulateSymbolicModel(network, startStates=perturbedStates, returnGraph=FALSE, canonical=TRUE, ...) attractorAssignment1 <- att1$attractorAssignment attractorAssignment2 <- att2$attractorAssignment } else { att1 <- getAttractors(network, startStates=startStates, returnTable=TRUE, canonical=TRUE, ...) att2 <- getAttractors(network, startStates=perturbedStates, returnTable=TRUE, canonical=TRUE, ...) tt1 <- getTransitionTable(att1) tt2 <- getTransitionTable(att2) attractorAssignment1 <- tt1$attractorAssignment attractorAssignment2 <- tt2$attractorAssignment names(attractorAssignment1) <- apply(tt1[,seq_along(network$genes)],1,paste,collapse="") names(attractorAssignment2) <- apply(tt2[,seq_along(network$genes)],1,paste,collapse="") attractorAssignment1 <- unname(attractorAssignment1[sapply(startStates,paste,collapse="")]) attractorAssignment2 <- unname(attractorAssignment2[sapply(perturbedStates,paste,collapse="")]) } attractorsEqual <- matrix(sapply(seq_along(att1$attractors), function(i1) { seq1 <- getAttractorSequence(att1, i1) sapply(seq_along(att2$attractors), function(i2) { seq2 <- getAttractorSequence(att2, i2) return(identical(seq1,seq2)) }) }), nrow=length(att1$attractors)) stat <- apply(cbind(attractorAssignment1, attractorAssignment2), 1, function(idx) { attractorsEqual[idx[1],idx[2]] }) return(list(stat=stat, value=mean(stat))) } } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/R/stateTransition.R�������������������������������������������������������������������������0000644�0001760�0000144�00000014150�12473107364�015373� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������stateTransition <- function(network,state,type=c("synchronous","asynchronous","probabilistic"), geneProbabilities, chosenGene, chosenFunctions, timeStep=0) { stopifnot(inherits(network,"BooleanNetwork") | inherits(network,"SymbolicBooleanNetwork") | inherits(network,"ProbabilisticBooleanNetwork")) type <- match.arg(type, c("synchronous","asynchronous","probabilistic")) if (inherits(network,"SymbolicBooleanNetwork")) { if (type != "synchronous") stop("Only synchronous updates are allowed for symbolic networks!") if (!is.null(dim(state))) { if (ncol(state) != length(network$genes)) stop(paste("\"state\" must be either a vector with one value for each gene,", "or a matrix with the genes in the columns and multiple predecessor states in the rows!")) state <- as.integer(as.matrix(state[nrow(state):1,])) } else { if (!is.numeric(state) || length(state) != length(network$genes)) stop(paste("\"state\" must be either a vector with one value for each gene,", "or a matrix with the genes in the columns and multiple predecessor states in the rows!")) state <- as.integer(state) } if (is.null(network$internalStructs) || checkNullPointer(network$internalStructs)) # refresh internal tree representations if necessary network$internalStructs = .Call("constructNetworkTrees_R",network); on.exit(.C("freeAllMemory", PACKAGE = "BoolNet")) res <- .Call("symbolicStateTransition_R", network$internalStructs, state, as.integer(timeStep)) } else { if (length(state) != length(network$genes)) stop("The state must consist of exactly one value for each gene!") nonFixedIndices = (network$fixed == -1) res <- state if (inherits(network,"BooleanNetwork") & type == "probabilistic") type <- "synchronous" if (!inherits(network,"BooleanNetwork") & length(type) == 3) type <- "probabilistic" if (type == "probabilistic") { if (missing(chosenFunctions) || is.null(chosenFunctions)) { chosenFunctions <- sapply(network$interactions,function(gene) { distr <- c(0,cumsum(sapply(gene,function(func)func$probability))) r <- runif(n=1) idx <- 0 for (i in seq_along(gene)) { if (r > distr[i] & r <= distr[i+1]) { idx <- i break } } idx }) } else if (length(chosenFunctions) != length(network$genes)) stop("Please provide a function index for each gene!") res[nonFixedIndices] <- mapply(function(i,f) { if(network$interactions[[i]][[f]]$input[1] == 0) # this is a constant gene with no transition function return(network$interactions[[i]][[f]]$func[1]) input = state[network$interactions[[i]][[f]]$input] return(network$interactions[[i]][[f]]$func[bin2dec(rev(input),length(input)) + 1]) }, which(nonFixedIndices), chosenFunctions[nonFixedIndices]) } else { if (!inherits(network,"BooleanNetwork")) stop("Please choose type=\"probabilistic\" for a probabilistic Boolean network!") changeIndices <- switch(type, synchronous = which(nonFixedIndices), asynchronous = { if (missing(chosenGene) || is.null(chosenGene)) { if (missing(geneProbabilities) || is.null(geneProbabilities)) sample(which(nonFixedIndices),1) else { if (length(geneProbabilities) != length(network$genes)) stop("Please supply exactly one probability for each gene!") if (abs(1.0 - sum(geneProbabilities)) > 0.0001) stop("The supplied gene probabilities do not sum up to 1!") if (sum(geneProbabilities[nonFixedIndices]) < 0.0001) stop("There is no non-fixed gene with a probability greater than 0!") geneProbabilities[nonFixedIndices] <- geneProbabilities[nonFixedIndices]/sum(geneProbabilities[nonFixedIndices]) if (sum(nonFixedIndices) != length(network$genes)) geneProbabilities[!nonFixedIndices] <- 0 distr <- c(0,cumsum(geneProbabilities)) r <- runif(n=1) idx <- 0 for (i in seq_along(network$genes)) { if (r > distr[i] & r <= distr[i+1]) { idx <- i break } } idx } } else { if (is.character(chosenGene)) { chosenGeneIdx <- which(network$genes == chosenGene) if (length(chosenGeneIdx) == 0) stop(paste("Gene \"",chosenGene,"\" does not exist in the network!",sep="")) chosenGeneIdx } else chosenGene } }) res[changeIndices] <- sapply(changeIndices,function(i) { if(network$interactions[[i]]$input[1] == 0) # this is a constant gene with no transition function return(network$interactions[[i]]$func[1]) input = state[network$interactions[[i]]$input] return(network$interactions[[i]]$func[bin2dec(rev(input),length(input)) + 1]) }) } res[!nonFixedIndices] = network$fixed[!nonFixedIndices] } names(res) <- network$genes return(res) } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/R/binarizeTimeSeries.R����������������������������������������������������������������������0000644�0001760�0000144�00000017022�12466166263�016003� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Several binarization methods for time series. <measurements> is a list of matrices with the # genes in the rows, each specifying one time series. # If <method> is "kmeans", k-means binarization is used. # <nstart> and <iter.max> are the corresponding parameters for k-means. This clustering # is employed for binarization. # If <method> is "edgeDetector", an edge detector is used for binarization. # If <method> is "edgeDetector" and <edge> is "firstEdge", # the first "significant" edge in the sorted data is the threshold for the binarization. # If <edge> is "maxEdge", the algorithm searches for the edge with the highest gradient. # With the <scaling> factor, the size of the first edge can be adapted. # If <method> is "scanStatistic", a scan statistic is used to binarize the data # If <dropInsignificant> is true, insignificant genes (that are not recommended by the statistic) are removed. # Returns a list containing the binarized matrix list and (for k-means) a vector # of thresholds and (for scan statistic) a vector specifying genes to remove. binarizeTimeSeries <- function(measurements, method=c("kmeans","edgeDetector","scanStatistic"), nstart=100, iter.max=1000, edge=c("firstEdge","maxEdge"), scaling=1, windowSize=0.25, sign.level=0.1, dropInsignificant=FALSE) { if (!is.null(dim(measurements))) fullData <- measurements else # in case of list, paste all matrices before clustering { fullData <- measurements[[1]] for (m in measurements[-1]) { fullData <- cbind(fullData,m) } } #switch between the different methods switch(match.arg(method), kmeans={ cluster <- apply(fullData,1,function(gene) # cluster data using k-means { cl_res <- kmeans(gene, 2, nstart=nstart,iter.max=iter.max) if (cl_res$centers[1] > cl_res$centers[2]) # exchange clusters if necessary, so that smaller numbers # are binarized to 0, and larger numbers are binarized to 1 group <- abs(cl_res$cluster-2) else group <- cl_res$cluster-1 # calculate the binarization threshold threshold <- min(cl_res$centers) + dist(cl_res$centers)[1]/2 list(bin=group, threshold=threshold) }) if (is.null(dim(measurements))) # split up the collated binarized measurements into a list of matrices of the original size { startIndex <- 0 binarizedTimeSeries <- lapply(measurements,function(m) { currentSplit <- (startIndex+1):(startIndex+ncol(m)) startIndex <<- startIndex + ncol(m) t(sapply(cluster,function(cl) cl$bin[currentSplit])) }) } else { binarizedTimeSeries <- t(sapply(cluster,function(cl) cl$bin)) } #colnames(binarizedTimeSeries)<-colnames(fullData) return(list(binarizedMeasurements=binarizedTimeSeries, thresholds=sapply(cluster,function(cl)cl$threshold))) }, edgeDetector={ #switch between the different edgedetectors switch(match.arg(edge), firstEdge={ cluster <- apply(fullData,1,function(gene) # cluster data using edgedetector { cl_res <- edgeDetector(gene,scaling,edge="firstEdge") list(bin=cl_res$bindata,thresholds=cl_res$thresholds) }) if (is.null(dim(measurements))) # split up the collated binarized measurements into a list of matrices of the original size { startIndex <- 0 binarizedTimeSeries <- lapply(measurements,function(m) { currentSplit <- (startIndex+1):(startIndex+ncol(m)) startIndex <<- startIndex + ncol(m) t(sapply(cluster,function(cl) cl$bin[currentSplit])) }) threshlist<-sapply(cluster,function(cl) cl$thresholds) } else { binarizedTimeSeries <- t(sapply(cluster,function(cl) cl$bin)) threshlist<-sapply(cluster,function(cl) cl$thresholds) } return(list(binarizedMeasurements=binarizedTimeSeries,thresholds= threshlist)) }, maxEdge={ cluster <- apply(fullData,1,function(gene) # cluster data using edgedetector { cl_res <- edgeDetector(gene,edge="maxEdge") list(bin=cl_res$bindata,thresholds=cl_res$thresholds) }) if (is.null(dim(measurements))) # split up the collated binarized measurements into a list of matrices of the original size { startIndex <- 0 binarizedTimeSeries <- lapply(measurements,function(m) { currentSplit <- (startIndex+1):(startIndex+ncol(m)) startIndex <<- startIndex + ncol(m) t(sapply(cluster,function(cl) cl$bin[currentSplit])) }) threshlist<-sapply(cluster,function(cl) cl$thresholds) } else { binarizedTimeSeries <- t(sapply(cluster,function(cl) cl$bin)) threshlist<-sapply(cluster,function(cl) cl$thresholds) } return(list(binarizedMeasurements=binarizedTimeSeries,thresholds= threshlist)) }, stop("'method' must be one of \"firstEdge\",\"maxEdge\"") ) }, scanStatistic={ cluster <- apply(fullData,1,function(gene) # cluster data using scanStatistic { cl_res <- scanStatistic(gene,windowSize,sign.level) list(bin= cl_res$bindata,thresholds=cl_res$thresholds,reject=cl_res$reject) }) significant <- sapply(cluster,function(cl)(cl$reject==FALSE)) # remove not recommended genes if (dropInsignificant) { significant <- sapply(cluster,function(cl)(cl$reject==FALSE)) cluster <- cluster[significant] } if (is.null(dim(measurements))) # split up the collated binarized measurements into a list of matrices of the original size { startIndex <- 0 binarizedTimeSeries <- lapply(measurements,function(m) { currentSplit <- (startIndex+1):(startIndex+ncol(m)) startIndex <<- startIndex + ncol(m) t(sapply(cluster,function(cl) cl$bin[currentSplit])) }) rejectlist<-sapply(cluster,function(cl) cl$reject) threshlist<-sapply(cluster,function(cl) cl$thresholds) } else { binarizedTimeSeries <- t(sapply(cluster,function(cl) cl$bin)) rejectlist<-sapply(cluster,function(cl) cl$reject) threshlist<-sapply(cluster,function(cl) cl$thresholds) } if(any(rejectlist)) { warning("The following genes show a uniform behaviour and should possibly be excluded from binarization:", paste(rownames(fullData)[!significant],collapse=" ")) } return(list(binarizedMeasurements=binarizedTimeSeries,thresholds=threshlist,reject=rejectlist)) }, stop("'method' must be one of \"kmeans\",\"edgeDetector\",\"scanStatistic\"") ) } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/R/toPajek.R���������������������������������������������������������������������������������0000644�0001760�0000144�00000002234�12466166264�013603� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Export a state table in <stateGraph> to a Pajek graph toPajek <- function (stateGraph, file="boolean.net", includeLabels=FALSE, ...) { args <- list(...) if (!is.null(args$attractorInfo)) { warning("The parameter \"attractorInfo\" is deprecated. Use \"stateGraph\" instead!") stateGraph <- args$attractorInfo } if (!inherits(stateGraph,"TransitionTable")) stateGraph <- getTransitionTable(stateGraph) geneCols <- setdiff(colnames(stateGraph),c("attractorAssignment","transitionsToAttractor")) numGenes <- (length(geneCols)) / 2 from <- apply(stateGraph[,1:numGenes,drop=FALSE],1,paste,collapse="") to <- apply(stateGraph[,((numGenes+1):(2*numGenes)),drop=FALSE],1,paste,collapse="") vertices <- unique(c(from,to)) vertexIndices <- seq_along(vertices) names(vertexIndices) <- vertices from <- vertexIndices[from] to <- vertexIndices[to] sink(file) cat("*Vertices ", length(vertices), "\r\n", sep = "") if (includeLabels) { for (i in seq_along(vertices)) cat(i," \"",vertices[i],"\"\r\n",sep="") } cat("*Arcs\r\n") for (i in seq_along(from)) cat(from[i]," ",to[i]," 1\r\n",sep="") sink() } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/R/generateTimeSeries.R����������������������������������������������������������������������0000644�0001760�0000144�00000005546�12466166263�016002� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ # Generate time series from a Boolean network <network>. # <numSeries> is the number of start states for which time series are generated. # <numMeasurements> is the number of time points for each time series. # <type> is the type of transitions used (synchronous or asynchronous) # If <type> is "asynchronous", <geneProbabilities> describes the # transition probabilities for the genes. # If <noiseLevel> is not 0, Gaussian noise is added to the result. generateTimeSeries <- function(network, numSeries, numMeasurements, type = c("synchronous","asynchronous","probabilistic"), geneProbabilities, perturbations=0, noiseLevel = 0.0) { symbolic <- inherits(network, "SymbolicBooleanNetwork") if (missing(geneProbabilities)) geneProbabilities <- NULL if (perturbations > 0) { perturbationMatrix <- sapply(1:numSeries, function(x) { p <- rep(NA, length(network$genes)) p[sample(1:length(network$genes),size=perturbations)] <- sample(c(0,1),size=perturbations,replace=TRUE) return(p) }) rownames(perturbationMatrix) <- network$genes } ts <- lapply(seq_len(numSeries), function(i) { if (symbolic) { if (perturbations > 0) { fixedIdx <- which(perturbationMatrix[,i] != -1) network <- fixGenes(network, fixedIdx, perturbationMatrix[fixedIdx,i]) } res <- t(simulateSymbolicModel(network, startStates=1, returnAttractors=FALSE, returnGraph=TRUE, returnSequences=TRUE)$sequences[[1]]) } else { startState <- round(runif(length(network$genes))) if (perturbations > 0) { fixedIdx <- which(perturbationMatrix[,i] != -1) network <- fixGenes(network, fixedIdx, perturbationMatrix[fixedIdx,i]) startState[fixedIdx] <- perturbationMatrix[fixedIdx,i] } res <- startState for (j in 2:numMeasurements) { startState <- stateTransition(network, startState, type=type, geneProbabilities=geneProbabilities) res <- cbind(res,startState) } } colnames(res) <- NULL if (noiseLevel != 0) { res <- res + matrix(rnorm(mean=0, sd=noiseLevel, n = length(res)), nrow=nrow(res)) } rownames(res) <- network$genes colnames(res) <- seq_len(ncol(res)) return(res) }) if (perturbations > 0) ts$perturbations <- perturbationMatrix return(ts) } ����������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/R/print.SymbolicBooleanNetwork.R������������������������������������������������������������0000644�0001760�0000144�00000000762�12466166264�020000� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������print.SymbolicBooleanNetwork <- function(x,...) { cat("Symbolic representation of a Boolean network\n\n"); cat("Transition functions:\n") for (gene in x$genes) { cat(gene, " = ", stringFromParseTree(x$interactions[[gene]]), "\n", sep="") } if (sum(x$fixed != -1) > 0) { cat("\nKnocked-out and over-expressed genes:\n") mapply(function(gene,fixed) { if (fixed != -1) cat(gene," = ",fixed,"\n",sep="") }, x$genes,x$fixed) } } ��������������BoolNet/R/reconstructNetwork.R����������������������������������������������������������������������0000644�0001760�0000144�00000022761�12466166264�016142� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Reconstruct a Boolean network from a transition table or a list of time series in <measurements>. # If <method> is "bestfit", Lähdesmäki's best-fit extension algorithm is called. # If <method> is "reveal", Liang's REVEAL algorithm is called. # <maxK> specifies the maximum number of input genes of a function. # If <readableFunctions> is true, DNF representations of the functions are generated. reconstructNetwork <- function(measurements,method=c("bestfit","reveal"),maxK=5, requiredDependencies = NULL, excludedDependencies = NULL, perturbations=NULL, readableFunctions=FALSE, allSolutions=FALSE, returnPBN=FALSE) { if (maxK < 0) stop("maxK must be >= 0!") # determine method to use meth <- switch(match.arg(method,c("bestfit","reveal")), bestfit=0, reveal=1, stop("'method' must be one of \"bestfit\",\"reveal\"")) perturbationMatrix <- NULL if (inherits(measurements,"TransitionTable")) # preprocess transition table and call algorithm { numGenes <- (ncol(measurements) - 2) / 2 if (numGenes < maxK) { maxK <- numGenes warning(paste("maxK was chosen greater than the total number of input genes and reset to ",numGenes,"!",sep="")) } if (!is.null(perturbations)) { if (!all(perturbations %in% c(0,1,-1,NA))) stop("The perturbation matrix may only contain the values 0,1,-1 and NA!") perturbations[is.na(perturbations)] <- -1 if (is.null(dim(perturbations))) perturbations <- matrix(perturbations,ncol=1) if (ncol(perturbations) != 1 && ncol(perturbations) != nrow(measurements)) stop(paste("There must be either one global vector of perturbations, or a matrix", "containing exact one column for each time series!")) if (nrow(perturbations) != numGenes) stop("The perturbation matrix must have exactly the same number of rows as the measurements!") if (ncol(perturbations) == 1) { perturbationMatrix <- matrix(-1,nrow=numGenes,ncol=nrow(measurements)) for (j in seq_len(nrow(measurements))) perturbationMatrix[,j] <- perturbations[,1] } else perturbationMatrix <- as.matrix(perturbations) } inputStates <- as.integer(t(as.matrix(measurements[,seq_len(numGenes)]))) outputStates <- as.integer(t(as.matrix(measurements[,(numGenes+1):(2*numGenes)]))) numStates <- nrow(measurements) genenames <- sapply(colnames(measurements)[seq_len(numGenes)],function(x)strsplit(x,".",fixed=TRUE)[[1]][2]) } else # the measurements are time series { if (!is.null(dim(measurements))) # only one time series => create list measurements <- list(measurements) numGenes <- nrow(measurements[[1]]) if (numGenes < maxK) { maxK <- numGenes warning(paste("maxK was chosen greater than the total number of input genes and reset to ",numGenes,"!",sep="")) } if (is.null(perturbations) && !is.null(measurements$perturbations)) { perturbations <- measurements$perturbations measurements$perturbations <- NULL } if (!is.null(perturbations)) { if (!all(perturbations %in% c(0,1,-1,NA))) stop("The perturbation matrix may only contain the values 0,1,-1 and NA!") perturbations[is.na(perturbations)] <- -1 if (is.null(dim(perturbations))) perturbations <- matrix(perturbations,ncol=1) if (ncol(perturbations) != 1 && ncol(perturbations) != length(measurements)) stop(paste("There must be either one global vector of perturbations, or a matrix", "containing exact one column for each time series!")) if (nrow(perturbations) != numGenes) stop("The perturbation matrix must have exactly the same number of rows as the measurements!") } perturbationMatrix <- c() genenames <- rownames(measurements[[1]]) if (is.null(genenames)) genenames <- paste("Gene",seq_len(numGenes)) inputStates <- c() outputStates <- c() for (i in seq_along(measurements)) # iterate over all time series and build state vectors { measurement <- measurements[[i]] if (numGenes != nrow(measurement)) stop("All measurement matrices must contain the same genes!") inputStates <- c(inputStates,as.integer(as.matrix(measurement[,1:(ncol(measurement)-1)]))) outputStates <- c(outputStates,as.integer(as.matrix(measurement[,2:ncol(measurement)]))) if (!is.null(perturbations)) { for (j in seq_len(ncol(measurement) - 1)) { if (ncol(perturbations) == 1) perturbationMatrix <- cbind(perturbationMatrix, perturbations[,1]) else perturbationMatrix <- cbind(perturbationMatrix, perturbations[,i]) } } } numStates <- as.integer(length(inputStates) / numGenes) } if (is.null(requiredDependencies)) requiredDepMatrix <- NULL else { if (is.null(names(requiredDependencies))) names(requiredDependencies) <- genenames if (length(union(names(requiredDependencies),genenames)) != length(genenames)) stop("The required dependencies must consist of gene names that are comprised in the measurements!") requiredDepMatrix <- matrix(0,nrow=numGenes,ncol=numGenes) colnames(requiredDepMatrix) <- genenames rownames(requiredDepMatrix) <- genenames maxRequired <- 0 for (i in seq_along(requiredDependencies)) { maxRequired <- max(maxRequired, length(requiredDependencies[i])) for (el in requiredDependencies[i]) requiredDepMatrix[el,names(requiredDependencies)[i]] <- 1 } if (maxRequired > maxK) { warning(paste("The number of required dependencies is greater than maxK! Setting maxK to ", maxRequired, "!", sep="")) maxK <- maxRequired } requiredDepMatrix <- as.integer(requiredDepMatrix) } if (is.null(excludedDependencies)) excludedDepMatrix <- NULL else { if (is.null(names(excludedDependencies))) names(excludedDependencies) <- genenames if (length(union(names(excludedDependencies),genenames)) != length(genenames)) stop("The excluded dependencies must consist of gene names that are comprised in the measurements!") excludedDepMatrix <- matrix(0,nrow=numGenes,ncol=numGenes) colnames(excludedDepMatrix) <- genenames rownames(excludedDepMatrix) <- genenames for (i in seq_along(excludedDependencies)) { gene <- names(excludedDependencies)[i] if (!is.null(requiredDependencies) && !is.null(requiredDependencies[[gene]])) { conflicts <- intersect(requiredDependencies[[gene]], excludedDependencies[[gene]]) if (length(conflicts) > 0) stop(paste("For gene ",gene, ", potential inputs were specified both as required and excluded dependencies: ", paste(conflicts, collapse=", "), sep="")) } for (el in excludedDependencies[i]) excludedDepMatrix[el,names(excludedDependencies)[i]] <- 1 } excludedDepMatrix <- as.integer(excludedDepMatrix) } if (!is.null(perturbations)) perturbationMatrix <- as.integer(perturbationMatrix) on.exit(.C("freeAllMemory", PACKAGE = "BoolNet")) # call C code res <- .Call("reconstructNetwork_R", inputStates, outputStates, perturbationMatrix, as.integer(numStates), requiredDepMatrix, excludedDepMatrix, as.integer(maxK), as.integer(meth), as.integer(allSolutions), as.integer(returnPBN)) if (any(sapply(res,function(interaction)length(interaction)==0))) # some function lists are empty warning("Some functions could not be inferred. Possibly the input data is noisy or maxK was chosen too small!") # prepare result object res <- list(genes=genenames, interactions=lapply(res,function(gene) lapply(gene,function(interaction) { interaction$expression <- getInteractionString(readableFunctions, interaction$func, genenames[interaction$input]) if (returnPBN) interaction$probability <- 1.0/length(gene) interaction })), fixed=sapply(res,function(gene) { if (length(gene) == 0) -1 else if (gene[[1]]$input[1] == 0) gene[[1]]$func[1] else -1 })) names(res$interactions) <- res$genes names(res$fixed) <- res$genes if (returnPBN) class(res) <- "ProbabilisticBooleanNetwork" else class(res) <- "BooleanNetworkCollection" if (allSolutions) # simplify functions and remove duplicates { res <- simplifyNetwork(res) res$interactions <- lapply(res$interactions,function(interaction) { duplicates <- duplicated(sapply(interaction,function(func)func$expression)) return(interaction[!duplicates]) }) } return(res) } ���������������BoolNet/R/simplifyNetwork.R�������������������������������������������������������������������������0000644�0001760�0000144�00000007050�12466166264�015415� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Simplify a Boolean network by dropping all input genes that are not relevant # for the output simplifyNetwork <- function(network,readableFunctions=FALSE) { stopifnot(inherits(network,"BooleanNetwork") | inherits(network,"ProbabilisticBooleanNetwork") | inherits(network,"BooleanNetworkCollection")) if (inherits(network,"BooleanNetwork")) { network$interactions <- mapply(function(interaction, j) { if (interaction$input[1] != 0) # no constant gene { table <- allcombn(2,length(interaction$input)) - 1 dropGenes <- apply(table,2,function(gene) # drop all genes that have no influence on the results, # i.e. the result column is equal for 0 values and 1 values { (identical(interaction$func[gene==1], interaction$func[gene==0])) }) if (sum(!dropGenes) == 0) { network$fixed[j] <<- interaction$func[1] interaction$input <- 0 interaction$func <- interaction$func[1] } else if (sum(dropGenes) > 0) { # update network network$fixed[j] <<- -1 dropFunctionIndices <- unlist(sapply(seq_along(dropGenes),function(i) { if(dropGenes[i]) which(table[,i] == 0) else NULL })) interaction$input <- interaction$input[!dropGenes] interaction$func <- interaction$func[-dropFunctionIndices] interaction$expression <- getInteractionString(readableFunctions, interaction$func, network$genes[interaction$input]) } } interaction }, network$interactions, seq_along(network$interactions), SIMPLIFY=FALSE) } else { network$interactions <- lapply(network$interactions,function(gene) lapply(gene,function(interaction) { if (interaction$input[1] != 0) # no constant gene { table <- allcombn(2,length(interaction$input)) - 1 dropGenes <- apply(table,2,function(gene) # drop all genes that have no influence on the results, # i.e. the result column is equal for 0 values and 1 values { (identical(interaction$func[gene==1], interaction$func[gene==0])) }) if (sum(!dropGenes) == 0) { interaction$input <- 0 interaction$func <- interaction$func[1] } else if (sum(dropGenes) > 0) { # update network dropFunctionIndices <- unlist(sapply(seq_along(dropGenes),function(i) { if(dropGenes[i]) which(table[,i] == 0) else NULL })) interaction$input <- interaction$input[!dropGenes] interaction$func <- interaction$func[-dropFunctionIndices] interaction$expression <- getInteractionString(readableFunctions, interaction$func, network$genes[interaction$input]) } } interaction })) } return(network) } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/R/print.BooleanStateInfo.R������������������������������������������������������������������0000644�0001760�0000144�00000000507�12466166264�016536� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Custom print function for class BooleanStateInfo print.BooleanStateInfo <- function(x, activeOnly=FALSE, ...) { # Create a TransitionTable object and print it cat("Transition table of Boolean network\n\n") transitionTable <- .internal.getTransitionTable(x) print(transitionTable, activeOnly=activeOnly, ...) } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/R/simulateSymbolicModel.R�������������������������������������������������������������������0000644�0001760�0000144�00000016300�12473107364�016505� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������simulateSymbolicModel <- function(network, method=c("exhaustive","random","chosen","sat.exhaustive","sat.restricted"), startStates=NULL, returnSequences=(!(match.arg(method) %in% c("sat.exhaustive", "sat.restricted"))), returnGraph=(!(match.arg(method) %in% c("sat.exhaustive", "sat.restricted"))), returnAttractors=TRUE, maxTransitions=Inf, maxAttractorLength=Inf, canonical=TRUE) { stopifnot(inherits(network,"SymbolicBooleanNetwork")) if (is.null(network$internalStructs) || checkNullPointer(network$internalStructs)) # refresh internal tree representations if necessary network$internalStructs = .Call("constructNetworkTrees_R",network); if (!is.null(maxAttractorLength) && is.infinite(maxAttractorLength)) maxAttractorLength <- NULL if (length(method) > 1) # if no method is supplied, infer method from the type of <startStates> { if (!is.null(maxAttractorLength)) method <- "sat.restricted" else if (length(startStates) == 0) { method <- "exhaustive" } else if (is.numeric(startStates)) { if (length(startStates) > 1) stop("Please supply either the number of start states or a list of start states in startStates!") else method <- "random" } else if (is.list(startStates)) method <- "chosen" else stop("Please supply either the number of start states or a list of start states in startStates!") } method <- match.arg(method, c("exhaustive","random","chosen","sat.exhaustive","sat.restricted")) if (method == "random") { if (startStates > 2 ^ (sum(network$timeDelays[network$fixed == -1]))) # more start states than in the full network { method <- "exhaustive" warning(paste("The number of random states is set larger than the total", "number of states. Performing an exhaustive search!")) } } if (method %in% c("sat.exhaustive", "sat.restricted")) { if (!is.null(maxAttractorLength)) maxAttractorLength <- as.integer(maxAttractorLength) else if (method == "sat.restricted") stop("maxAttractorLength must be set for method=\"sat.restricted\"!") if (returnSequences) { warning("Sequences cannot be returned for method=\"sat.exhaustive\" and method=\"sat.restricted\"!") returnSequences <- FALSE } if (returnGraph) { warning("Graph cannot be returned for method=\"sat.exhaustive\" and method=\"sat.restricted\"!") returnGraph <- FALSE } } else if (method == "exhaustive") { startStates <- NULL convertedStates <- NULL } else if (method == "chosen") { convertedStates <- lapply(startStates, function(state) { if (!is.null(dim(state))) { if (ncol(state) != length(network$genes)) stop(paste("\"startStates\" must be either a list of vectors with one value for each gene,", "or a list of matrices with the genes in the columns and multiple predecessor states in the rows!")) return(as.integer(as.matrix(state[nrow(state):1,]))) } else if (!is.numeric(state) || length(state) != length(network$genes)) stop(paste("\"startStates\" must be either a list of vectors with one value for each gene,", "or a list of matrices with the genes in the columns and multiple predecessor states in the rows!")) return(as.integer(state)) }) } else convertedStates <- as.integer(startStates) if (maxTransitions == 0) warning("\"maxTransitions\" is set to 0, which disables the transition limit!") else if (is.infinite(maxTransitions)) maxTransitions <- 0 on.exit(.C("freeAllMemory", PACKAGE = "BoolNet")) if (method %in% c("sat.exhaustive","sat.restricted")) res <- .Call("symbolicSATSearch_R", network$internalStructs, maxAttractorLength, method == "sat.restricted") else res <- .Call("simulateStates_R", network$internalStructs, convertedStates, #as.integer(length(startStates)), as.integer(maxTransitions), as.logical(returnSequences), as.logical(returnGraph), as.logical(returnAttractors)) ret <- list() if (returnSequences) { ret[["sequences"]] <- list() } if (returnGraph) { initialStates <- matrix(res[[2]][[1]], ncol=length(network$genes), byrow=TRUE) colnames(initialStates) <- paste("initialState.",network$genes, sep="") nextStates <- matrix(res[[2]][[2]], ncol=length(network$genes), byrow=TRUE) colnames(nextStates) <- paste("nextState.",network$genes, sep="") attractorAssignment <- data.frame(res[[2]][[3]] + 1) attractorAssignment[attractorAssignment == 0] <- NA colnames(attractorAssignment) <- "attractorAssignment" graph <- data.frame(unique(cbind(initialStates, nextStates, attractorAssignment))) class(graph) <- c("TransitionTable","data.frame") ret[["graph"]] <- graph } if (returnAttractors) { attractors <- lapply(res[[3]], function(x) { att <- matrix(x, ncol=length(network$genes), byrow=TRUE) colnames(att) <- network$genes if (canonical) { smallestIndex <- -1 smallestVal <- rep(Inf, ncol(att)) for (i in seq_len(nrow(att))) # iterate over elements of encoded state { equal <- TRUE for (j in seq(ncol(att),by=-1,length.out=ncol(att))) { if (att[i,j] < smallestVal[j]) # determine new minimum { equal <- FALSE smallestVal <- att[i,] smallestIndex <- i break } else if (att[i,j] > smallestVal[j]) { equal <- FALSE break } } if (equal && i != smallestIndex) { if (i - smallestIndex < (smallestIndex + nrow(att) - i) %% nrow(att)) { smallestVal <- att[i,] smallestIndex <- i } } } } if (smallestIndex != 1) # rearrange matrix att <- rbind(att[smallestIndex:nrow(att),,drop=FALSE], att[seq_len(smallestIndex-1),,drop=FALSE]) as.data.frame(att) }) ret[["attractors"]] <- attractors } if (returnSequences) { maxDelay <- max(network$timeDelays) if (returnAttractors) { ret[["attractorAssignment"]] <- res[[4]] + 1 ret[["attractorAssignment"]][ret[["attractorAssignment"]] == 0] <- NA } sequences <- mapply(function(seq, att) { seq <- matrix(seq, ncol=length(network$genes), byrow=TRUE) colnames(seq) <- network$genes rownames(seq) <- paste("t =", (1:nrow(seq)) - maxDelay) seq <- as.data.frame(seq) # add attractor information to sequence if (!is.na(att)) attributes(seq)$attractor <- (nrow(seq) - nrow(ret[["attractors"]][[att]]) + 1):nrow(seq) seq }, res[[1]], ret[["attractorAssignment"]], SIMPLIFY=FALSE) ret[["sequences"]] <- sequences } class(ret) <- "SymbolicSimulation" return(ret) } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/R/getAttractorSequence.R��������������������������������������������������������������������0000644�0001760�0000144�00000002632�12466166263�016343� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ getAttractorSequence <- function(attractorInfo, attractorNo) { stopifnot(inherits(attractorInfo,"AttractorInfo") || inherits(attractorInfo,"SymbolicSimulation")) if (inherits(attractorInfo,"SymbolicSimulation")) { if (is.null(attractorInfo$attractors)) stop(paste("This SymbolicSimulation structure does not contain attractor information.", "Please re-run simulateSymbolicModel() with returnAttractors=TRUE!")) if (missing(attractorNo) || attractorNo <= 0 || attractorNo > length(attractorInfo$attractors)) stop("Please provide a valid attractor number!") return(attractorInfo$attractors[[attractorNo]]) } else { if (missing(attractorNo) || attractorNo <= 0 || attractorNo > length(attractorInfo$attractors)) stop("Please provide a valid attractor number!") if (!is.null(attractorInfo$attractors[[attractorNo]]$initialStates)) stop("A sequence can be obtained for synchronous attractors only!") numGenes <- length(attractorInfo$stateInfo$genes) # decode binary representation of states involved in the attractors binMatrix <- t(matrix(apply(attractorInfo$attractors[[attractorNo]]$involvedStates,2,function(state) dec2bin(state,numGenes)),nrow=numGenes)) colnames(binMatrix) <- attractorInfo$stateInfo$genes return(as.data.frame(binMatrix)) } } ������������������������������������������������������������������������������������������������������BoolNet/R/symbolicToTruthTable.R��������������������������������������������������������������������0000644�0001760�0000144�00000001174�12473107364�016325� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ # Convert a SymbolicBooleanNetwork object # <network> to a BooleanNetwork object symbolicToTruthTable <- function(network) { stopifnot(inherits(network, "SymbolicBooleanNetwork")) res <- list(genes = network$genes, fixed = network$fixed, interactions = lapply(network$interactions, function(int) { newInt <- .Call("getTruthTable_R", int, length(network$genes)) names(newInt) <- c("input","func") newInt$expression <- stringFromParseTree(int) return(newInt) })) class(res) <- "BooleanNetwork" return(res) } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/R/parseBooleanFunction.R��������������������������������������������������������������������0000644�0001760�0000144�00000033001�12473107364�016314� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ # Split up <expression> into symbols. # Returns a vector of symbols. scan <- function(expression, lowerCase=FALSE) { if (lowerCase) expression <- tolower(expression) # add extra whitespace to brackets and operators expression <- gsub("(\\(|\\)|\\[|\\]|\\||\\&|\\!|\\=|\\.\\.|[a-zA-Z0-9_]*)"," \\1 ", expression) # strip multiple whitespace characters expression <- gsub("[ ]+", " ", expression) expression <- gsub("^[ ]+", "", expression) expression <- gsub("[ ]+$", "", expression) # split up at whitespace positions res <- strsplit(expression, " ", fixed=TRUE)[[1]] return(res) } # Parse a Boolean function in <expression>, # and build a corresponding parse tree. parseBooleanFunction <- function(expression, varNames=c(), lowerCase=FALSE) { minArgCounts <- c("&"=2,"|"=2, "all" = 1, "any" = 1, "maj" = 1, "sumis" = 2, "sumgt" = 2, "sumlt" = 2, "timeis" = 1, "timelt" = 1, "timegt" = 1) maxArgCounts <- c("&"=Inf,"|"=Inf,"all" = Inf, "any" = Inf, "maj" = Inf, "sumis" = Inf, "sumgt" = Inf, "sumlt" = Inf, "timeis" = 1, "timelt" = 1, "timegt" = 1) isBooleanArgument <- function(arg) { return (arg$type %in% c("atom","operator") || arg$type == "constant" && arg$value %in% c(0,1)) } checkPredicate <- function(pred) { if (pred$operator %in% c("&","|","maj")) { for (el in pred$operands) { if (!isBooleanArgument(el)) { stop(paste("Invalid argument to \"",pred$operator,"\": ", stringFromParseTree(el),sep="")) } } } else if (pred$operator %in% c("sumis","sumgt","sumlt")) { for (el in pred$operands[-length(pred$operands)]) { if (!isBooleanArgument(el)) { stop(paste("Invalid argument to \"",pred$operator,"\": ", stringFromParseTree(el),sep="")) } } if (pred$operands[[length(pred$operands)]]$type != "constant") stop(paste("Last argument of \"",pred$operator,"\" must be an integer value!")) } else if (pred$operator %in% c("timeis")) { if (pred$operands[[1]]$type != "constant" || pred$operands[[1]]$value < 0) stop(paste("Argument of \"",pred$operator,"\" must be a non-negative integer value!")) } } # internal function to step forward one symbol advanceSymbol <- function(errorIfEnd = TRUE) { pos <<- pos + 1 #print(symbols[-(1:pos-1)]) if (pos > length(symbols)) if (errorIfEnd) stop("Unexpected end of expression!") else return(NA) else return(symbols[pos]) } getCurrentSymbol <- function() { #print(symbols[-(1:pos-1)]) if (pos > length(symbols)) return(NA) else return(symbols[pos]) } # internal function to preview the next symbol previewSymbol <- function() { if (pos + 1 > length(symbols)) return(NA) else return(symbols[pos + 1]) } getSymbolPos <- function() { return(pos) } setSymbolPos <- function(newPos) { pos <<- newPos } # internal function to parse a sub-expression in brackets parseExpression <- function(temporalVariables = c()) { operators <- c() children <- c() symb <- advanceSymbol() while (TRUE) { if (symb == "(") # a new sub-expression children[[length(children)+1]] <- parseExpression(temporalVariables=temporalVariables) else if (symb == "!") # a negation children[[length(children)+1]] <- parseNegation(temporalVariables=temporalVariables) else if (regexpr("^[a-zA-Z0-9_]*$",symb) == -1) # something unexpected happened stop(paste("Unexpected symbol:",symb)) else children[[length(children)+1]] <- parseAtomOrPredicate(symb, temporalVariables=temporalVariables) symb <- advanceSymbol(FALSE) if (is.na(symb) || symb %in% c(")",",")) # end of expression was reached break if (!symb %in% c("&","|")) stop("Operator expected!") operators <- c(operators,symb) symb <- advanceSymbol() } if (length(children) == 1) { # an operator with only one child return(children[[1]]) } else if (length(unique(operators)) == 1) { # an n-ary operator res <- list(type="operator",operator=operators[1], negated=FALSE, operands=children) checkPredicate(res) return(res) } else # a mixture of multiple operators => ensure correct precedence { i <- 1 startPos <- NA operators <- c(operators, "|") operands <- list() while (i <= length(operators)) # identify AND operators and move them to a subtree { if (operators[i] == "&" && is.na(startPos)) # start of a conjunction startPos <- i if (operators[i] == "|" && !is.na(startPos)) # end of a conjunction => create subtree { subOp <- list(type="operator", operator="&", negated=FALSE, operands=children[startPos:i]) operands[[length(operands)+1]] <- subOp startPos <- NA } else if (is.na(startPos)) operands[[length(operands)+1]] <- children[[i]] i <- i + 1 } res <- list(type="operator",operator="|", negated=FALSE, operands=operands) checkPredicate(res) return(res) } } # internal function to parse atoms or temporal predicates parseAtomOrPredicate <- function(name, temporalVariables=c()) { if (regexpr("^[0-9]*$",name) != -1 || name %in% c("true","false")) # a (Boolean or integer) constant { if (name == "true") value <- 1L else if (name == "false") value <- 0L else value <- as.integer(name) return(list(type="constant", value=value, negated=FALSE)) } if (tolower(name) %in% names(minArgCounts)) # a temporal predicate { name <- tolower(name) # translate all into & and any into | operator <- switch(name, all = "&", any = "|", name) nextSym <- previewSymbol() if (!is.na(nextSym) && nextSym == "[") # a temporal iterator definition follows { # discard bracket advanceSymbol() varName <- advanceSymbol() if (regexpr("^[a-zA-Z0-9_]*$",varName) == -1) # something unexpected happened stop(paste("Unexpected symbol:",varName)) symb <- advanceSymbol() if (symb != "=") { stop(paste("Expected \"=\" instead of \"",symb,"\" in temporal predicate!")) } # parse start time point startTime <- parseTimePoint(temporalVariables=temporalVariables, TRUE) symb <- getCurrentSymbol() if (symb != "..") { stop(paste("Expected \"..\" instead of \"",symb,"\" in temporal predicate!")) } # parse end time point endTime <- parseTimePoint(temporalVariables=temporalVariables, TRUE) symb <- getCurrentSymbol() if (symb != "]") stop(paste("Unexpected symbol:",symb)) } else # no temporal iterator defined { startTime <- 0 endTime <- 0 varName <- NULL } symb <- advanceSymbol() if (symb != "(") stop(paste("Unexpected symbol:",symb)) subElements <- c() while(TRUE) # parse parameters of predicate { oldPos <- getSymbolPos() for (time in startTime:endTime) # expand arguments according to temporal range { tempVars <- temporalVariables if (!is.null(varName)) { if (length(tempVars) > 0 && !is.na(tempVars[varName])) { stop(paste("Duplicate variable ",varName,"! Please use only unique variable names!",sep="")) } tempVars[varName] <- time } # re-parse the argument with a new time point => reset parser position setSymbolPos(oldPos) subElement <- parseExpression(temporalVariables=tempVars) subElements <- c(subElements, list(subElement)) if (subElement$type == "constant") break } subElements <- unique(subElements) symb <- getCurrentSymbol() if (is.na(symb)) stop("Unexpected end of expression!") if (symb == ")") break if (symb != ",") stop ("Expected \",\" or \")\"!") } # check if number of argument matches if (length(subElements) < minArgCounts[name] || length(subElements) > maxArgCounts[name]) stop(paste("Invalid number of arguments to ",name,": ",length(subElements),sep="")) res <- list(type="operator",operator=operator, negated=FALSE, operands=subElements) # check if argument types match checkPredicate(res) return(res) } else # an atom with or without temporal information { nextSym <- previewSymbol() if (!is.na(nextSym) && nextSym == "[") # the atom has a time point specification { symb <- advanceSymbol() time <- parseTimePoint(temporalVariables=temporalVariables) symb <- getCurrentSymbol() if (symb != "]") stop(paste("Unexpected symbol:",symb)) } else # no time point specified => default to previous time point time <- -1L if (length(varNames) > 0) # check if variable is known { varIndex <- which(varNames == name) if (length(varIndex) == 0) stop(paste("Unknown variable:",name)) negated <- FALSE return(list(type="atom", name=name, index=as.integer(varIndex), time=as.integer(time), negated=negated)) } else { return(list(type="atom", name=name, time=as.integer(time), negated=FALSE)) } } } # internal function to parse a time specification parseTimePoint <- function(temporalVariables=c(), allowPositive=FALSE) { symb <- advanceSymbol() time <- 0 while (TRUE) { sign <- 1 if (symb == "+") # ignore positive sign symb <- advanceSymbol() else if (symb == "-") # set multiplier to negative sign { sign <- -1 symb <- advanceSymbol() } if (symb %in% names(temporalVariables)) # a variable was found => add its value { time <- time + sign * temporalVariables[symb] symb <- advanceSymbol() } else # this has to be an integer time value { suppressWarnings(addTime <- as.integer(symb)) if (is.na(addTime)) { stop(paste("Invalid time specification: ",symb, ". Time specifications must be integers <= -1)", sep="")) } time <- time + sign * addTime symb <- advanceSymbol() } if (symb %in% c("]","..")) break } if (time > -1 && !allowPositive) { stop(paste("Invalid time specification: ",time, ". Time specifications must be integers <= -1)", sep="")) } return(as.integer(time)) } # Internal function to parse a negation parseNegation <- function(temporalVariables=c()) { symb <- advanceSymbol() if (symb == "(") { res <- parseExpression(temporalVariables) } else if (symb %in% c(")","&","|","]","[","=")) stop(paste("Unexpected symbol:",symb)) else res <- parseAtomOrPredicate(symb, temporalVariables=temporalVariables) res$negated <- !res$negated return(res) } tryCatch( { symbols <- scan(expression, lowerCase=lowerCase) pos <- 0 res <- parseExpression() }, error = function(e) { stop(sprintf("Error parsing expression \"%s\": %s", expression, e$message)) }) if (!isBooleanArgument(res)) stop(paste("Non-Boolean formula ",stringFromParseTree(res),"!",sep="")) return(res) } # Regenerate the expression string # from the parse tree <tree> stringFromParseTree <- function(tree) { res <- switch(tree$type, operator = { if (tree$operator %in% c("|","&")) { paste({if (tree$negated) "!" else ""}, "(", paste(sapply(tree$operands,stringFromParseTree), collapse=paste(" ",tree$operator," ",sep="")), ")", sep="") } else { paste({if (tree$negated) "!" else ""}, tree$operator,"(",paste(sapply(tree$operands,stringFromParseTree), collapse=", "),")",sep="") } }, atom = paste({if (tree$negated) "!" else ""}, tree$name, {if (tree$time != -1) paste("[",tree$time,"]",sep="") else ""}, sep=""), constant = paste({if (tree$negated) "!" else ""}, tree$value, sep="") ) return(res) } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/R/loadBioTapestry.R�������������������������������������������������������������������������0000644�0001760�0000144�00000021673�12473107364�015315� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Parse all nodes in <rootNode> # (i.e., all nodes of a certain type), # and write them to a list parseGeneAttrs <- function(rootNode) { i <- 0 res <- xmlApply(rootNode,function(child) { i <<- i + 1 attrs <- xmlAttrs(child) name <- unname(attrs["name"]) if (name == "" | is.na(name)) name <- paste(xmlName(child),i,sep="_") # find the "simulationLogic" node, which contains # the necessary logic information logic <- xmlFindNode(child,"simulationLogic") initVal <- NULL if (is.null(logic)) { warning(paste("Gene ",name," does not specify a simulation logic, assuming AND!",sep="")) logic <- "AND" } else { # try to find initial values in the simulation parameters logic <- logic[[1]] params <- xmlFindNode(logic,"simParameters") if (!is.null(params)) { for (param in xmlChildren(params[[1]])) { pa <- xmlAttrs(param) if (pa["name"] == "initVal") { initVal <- as.numeric(pa["value"]) if (initVal != 0 & initVal != 1) # only 0 and 1 are allowed for the initialization { warning("Initial value for gene ",name," is neither 0 nor 1 and is ignored!",sep="") initVal <- NULL } break } } } # get the Boolean function of the node logic <- unname(xmlAttrs(logic)["type"]) } list(id=unname(attrs["id"]), name=adjustGeneNames(name),logic=logic,initVal=initVal,inputs=NULL) }) } # Parse all types of nodes (genes, signals, etc) parseAllGenes <- function(rootNode) { genes <- unlist(xmlApply(rootNode,parseGeneAttrs),recursive=FALSE) names(genes) <- lapply(genes,function(gene)gene$id) return(genes) } # Parse the links in the children of <node> and insert them # into the input lists of the genes parseAllLinks <- function(rootNode,geneList) { for (link in xmlChildren(rootNode)) { attrs <- xmlAttrs(link) if (is.na(attrs["sign"])) # a link with unspecified direction (inhibition or activation) was found { warning(paste("The link between \"",geneList[[attrs["src"]]]$name, "\" and \"",geneList[[attrs["targ"]]]$name, "\" is not specified as an enhancer or suppressor and is therefore ignored!",sep="")) } else { geneList[[attrs["targ"]]]$input[[length(geneList[[attrs["targ"]]]$input) + 1]] <- list(input=unname(attrs["src"]),sign=attrs["sign"]) } } return(geneList) } # Load a BioTapestry file (*.btp) from <file> # and convert it to a Boolean network loadBioTapestry <- function(file, symbolic=FALSE) { doc <- xmlRoot(xmlTreeParse(file)) # detect the "genome" XML node which holds the nodes and links of the network genome <- xmlFindNode(doc,"genome",throwError=TRUE)[[1]] # find the "nodes" node that contains all genes/inputs/etc nodes <- xmlFindNode(genome,"nodes",throwError=TRUE)[[1]] # read in genes geneList <- parseAllGenes(nodes) # find the "links" node that contains the links/dependencies links <- xmlFindNode(genome,"links",throwError=TRUE)[[1]] # add links to gene list geneList <- parseAllLinks(links,geneList) # build up network structure genes <- unname(sapply(geneList,function(gene)gene$name)) geneIds <- names(geneList) fixed <- rep(-1L,length(genes)) i <- 0 interactions <- lapply(geneList,function(gene) { i <<- i + 1 input <- sapply(gene$input,function(inp) { which(geneIds == inp$input) }) if (length(input) == 0) { if (!is.null(gene$initVal)) # input-only gene without fixed value (=> depending on itself) { input <- 0 func <- gene$initVal fixed[i] <<- func expr <- func } else # input-only gene with fixed value { input <- i func <- c(0,1) expr <- gene$name } } else # dependent gene { # determine signs/negations of genes inputSigns <- sapply(gene$input,function(inp)inp$sign) if (!symbolic || gene$logic == "XOR") { tt <- as.matrix(allcombn(2,length(input)) - 1) func <- as.integer(switch(gene$logic, AND = { # calculate truth table for AND apply(tt,1,function(assignment) { res <- 1 for (i in seq_along(assignment)) { if (inputSigns[i] == "+") res <- res & assignment[i] else res <- res & !assignment[i] if (!res) break } res }) }, OR = { # calculate truth table for OR apply(tt,1,function(assignment) { res <- 0 for (i in seq_along(assignment)) { if (inputSigns[i] == "+") res <- res | assignment[i] else res <- res | !assignment[i] if (res) break } res }) }, XOR = { # calculate truth table for XOR apply(tt,1,function(assignment) { res <- assignment[1] for (i in 2:length(assignment)) { res <- xor(res,assignment[i]) } res }) }, stop(paste("Unknown Boolean operator \"", gene$logic,"\"!",sep="")) )) } # get string representation of the input gene literals literals <- mapply(function(gene,sign) { if (sign == "+") gene else paste("!",gene,sep="") }, genes[input], inputSigns) # get string representation of function expr <- switch(gene$logic, AND = { paste(literals,collapse=" & ") }, OR = { paste(literals,collapse=" | ") }, XOR = { getDNF(func,genes[input]) } ) } if (symbolic) return(parseBooleanFunction(expr,varNames=genes)) else return(list(input=input,func=func,expression=expr)) }) names(interactions) <- genes fixed <- as.integer(fixed) names(fixed) <- genes net <- list(genes=genes,interactions=interactions,fixed=fixed) if (symbolic) { net$timeDelays <- apply(sapply(net$interactions,maxTimeDelay,genes=net$genes),1,max) net$internalStructs <- .Call("constructNetworkTrees_R",net) class(net) <- "SymbolicBooleanNetwork" } else class(net) <- "BooleanNetwork" return(net) } ���������������������������������������������������������������������BoolNet/R/attractorsToLaTeX.R�����������������������������������������������������������������������0000644�0001760�0000144�00000014504�12473107364�015572� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Create LaTeX state tables of all attractors in <attractorInfo>. # Genes are grouped according to <grouping>. # An additional title can be supplied in <title>. # If <plotFixed> is set, fixed variables are included in the plot. # <onColor> and <offColor> specify the colors of ON/1 and OFF/0 states. # <file> is the name of the output LaTeX document. attractorsToLaTeX <- function (attractorInfo, subset, title = "", grouping = list(), plotFixed = TRUE, onColor="[gray]{0.9}",offColor="[gray]{0.6}", reverse=FALSE, file="attractors.tex") { stopifnot(inherits(attractorInfo,"AttractorInfo") || inherits(attractorInfo, "SymbolicSimulation")) if (inherits(attractorInfo,"AttractorInfo")) { numGenes <- length(attractorInfo$stateInfo$genes) geneNames <- attractorInfo$stateInfo$genes } else { numGenes <- ncol(attractorInfo$attractors[[1]]) geneNames <- colnames(attractorInfo$attractors[[1]]) } if (missing(subset)) subset <- seq_along(attractorInfo$attractors) else if (any(subset > length(attractorInfo$attractors))) stop("You specified an attractor index that is greater than the total number of attractors in 'subset'!") # escape "_" in LaTeX genes = gsub("_", "\\_", attractorInfo$stateInfo$genes) # determine list of genes to be plotted whichFixed <- which(attractorInfo$stateInfo$fixedGenes != -1) if (plotFixed | (length(whichFixed) == 0)) plotIndices <- seq_len(numGenes) else plotIndices <- (seq_len(numGenes))[-whichFixed] if (inherits(attractorInfo,"AttractorInfo")) { # convert decimal state numbers to binary state matrices (one for each attractor) binMatrices <- lapply(attractorInfo$attractors,function(attractor) { res <- matrix(apply(attractor$involvedStates,2,function(state) dec2bin(state,numGenes)[plotIndices]),nrow=length(plotIndices)) }) # count the numbers of attractors with equal lengths attractorLengths <- sapply(attractorInfo$attractors,function(attractor) { if (is.null(attractor$initialStates)) # simple attractor ncol(attractor$involvedStates) else # complex attractor => extra treatment -1 }) } else { binMatrices <- lapply(attractorInfo$attractors, t) attractorLengths <- sapply(binMatrices, ncol) } lengthTable <- table(attractorLengths) lengthTable <- lengthTable[as.integer(names(lengthTable)) != -1] # Open output file, and print header sink(file) cat("% Please include packages tabularx and colortbl in your master document:\n", "% \\usepackage{tabularx,colortbl}\n\n\n",sep="") res <- lapply(seq_along(lengthTable),function(i) # accumulate all attractors with equal length in one matrix and plot them { len <- as.integer(names(lengthTable)[i]) attractorIndices <- intersect(which(attractorLengths == len), subset) if (length(attractorIndices) > 0) { # build accumulated matrix totalMatrix <- c() for (mat in binMatrices[attractorIndices]) { totalMatrix <- cbind(totalMatrix,mat) } rownames(totalMatrix) <- geneNames[plotIndices] colnames(totalMatrix) <- sapply(attractorIndices,function(i)paste("Attr",i,".",seq_len(len),sep="")) if(length(grouping)>0) { # reorder genes according to the supplied groups totalMatrix <- totalMatrix[unlist(grouping$index),] separationPositions <- c(1,cumsum(sapply(grouping$index,length)+1)) } else separationPositions <- c() # output table header cat("\\begin{table}[ht]\n", "\\begin{center}\n", "\\caption{", title, "Attractors with ",len," state(s)}\n", "\\begin{tabularx}{\\linewidth}{l", paste(rep(paste(rep(">{\\centering\\arraybackslash}X", len), collapse = " "),length(intersect(which(attractorLengths == len),subset))),collapse="|"), "}\\hline\n", sep="") cat("\t&\t",paste(paste("\\multicolumn{",len,"}{c}{Attr. ",intersect(which(attractorLengths == len),subset),"}", sep=""),collapse="\t&\t"),"\\\\\n") # output active and inactive states if (reverse) indices <- rev(seq_len(nrow(totalMatrix))) else indices <- seq_len(nrow(totalMatrix)) for(j in indices) { separator <- which(separationPositions==j) if (length(separator) != 0) { cat("\\hline \\multicolumn{",ncol(totalMatrix) + 1,"}{c}{",grouping$class[separator],"}\\\\ \\hline \n",sep="") } cat("\\textbf{",rownames(totalMatrix)[j],"}\t&\t",sep="") for(i in seq_len(ncol(totalMatrix))) { if(totalMatrix[j,i] == 1) cat("\\cellcolor",onColor,"1",sep="") else cat("\\cellcolor",offColor,"0",sep="") if (i < ncol(totalMatrix)) cat("\t&\t") } cat("\\\\\n") } # output frequency of attractor (basin size / number of states) if (inherits(attractorInfo,"AttractorInfo")) { if (is.null(attractorInfo$stateInfo$table)) freq <- rep(NA, length(attractorIndices)) else freq <- round(sapply(attractorInfo$attractors[attractorIndices], function(attractor)attractor$basinSize/ncol(attractorInfo$stateInfo$table)) * 100,2) } else { if (!is.null(attractorInfo$graph)) { freq <- round(sapply(attractorIndices, function(i)sum(attractorInfo$graph$attractorAssignment == i)/ nrow(attractorInfo$graph)) * 100,2) } else freq <- rep(NA, length(attractorIndices)) } if (!isTRUE(all(is.na(freq)))) { cat("\\hline Freq.\t&\t",paste(paste("\\multicolumn{",len,"}{c}{",freq,"\\%}", sep=""),collapse="\t&\t"),"\\\\\n") } cat("\\hline\\end{tabularx}\n\\end{center}\n", "\\end{table}\n\n",sep="") totalMatrix } }) # return a list of accumulated matrices sink() names(res) <- names(lengthTable) return(res) } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/R/edgeDetector.R����������������������������������������������������������������������������0000644�0001760�0000144�00000003510�12466166263�014601� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Provides several methods to binarize a vector consisting of real values. # The methods are edge-detector-based. With <edge>="firstEdge", # the first "significant" edge in the sorted data is the threshold for the binarization. # With the <scaling> factor, the size of the first edge can be adapted. # The "maxEdge" method searches for the edge with the highest gradient. edgeDetector <- function(vector,scaling=1,edge=c("firstEdge","maxEdge")) { distance<-c() binarizeddata<-vector #sort data sortedvector<-sort(vector) #distance calculation for(i in seq_len(length(vector)-1)) { distance[i]<-sortedvector[i+1]-sortedvector[i] } switch(match.arg(edge), #the index of the first edge with distance[i]>threshold is determined firstEdge= { threshold<-scaling*((sortedvector[length(vector)]-sortedvector[1])/((length(vector)-1))) index <- 0 for(i in seq_len(length(vector)-1)) { if(distance[i]>threshold) { index<-i break } } }, #the index of the edge with the maximal gradient is determined maxEdge= { index <- which.max(distance) }, stop("'method' must be one of \"firstEdge\",\"maxEdge\"") ) #based on the edge index, the binarization is performed if(index!=0) { for(i in seq_len(length(vector))) { if(vector[i]>=sortedvector[index+1]) binarizeddata[i]<-1 else binarizeddata[i]<-0 } threshold=(sortedvector[index+1]+sortedvector[index])/2 return(list(bindata=binarizeddata,thresholds=as.numeric(threshold))) } else #if no edge was found, a vector consisting of zeros is returned { binarizeddata<-(sapply(vector,function(x) 0)) return(list(bindata=binarizeddata,thresholds=NA)) } } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/R/plotSequence.R����������������������������������������������������������������������������0000644�0001760�0000144�00000015770�12473107364�014660� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������plotSequence <- function(network, startState, includeAttractorStates = c("all","first","none"), sequence, title = "", mode=c("table","graph"), plotFixed = TRUE, grouping = list(), onColor="green",offColor="red", layout, drawLabels=TRUE, drawLegend=TRUE, highlightAttractor=TRUE, reverse=FALSE, ...) { if (!missing(network)) { stopifnot(inherits(network,"BooleanNetwork") || inherits(network,"SymbolicBooleanNetwork")) if (missing(startState) || !missing(sequence)) stop("Either \"network\" and \"startState\" or \"sequence\" must be provided!") sequence <- getPathToAttractor(network = network, state = startState, includeAttractorStates = includeAttractorStates) numGenes <- length(network$genes) if (match.arg(mode,c("table","graph")) == "table") { whichFixed <- which(network$fixed != -1) if (plotFixed | (length(whichFixed) == 0)) plotIndices <- seq_len(numGenes) else plotIndices <- seq_len(numGenes)[-whichFixed] attractor <- attributes(sequence)$attractor sequence <- sequence[,plotIndices,drop=FALSE] attributes(sequence)$attractor <- attractor } } else { if (missing(sequence) || !missing(startState)) stop("Either \"network\" and \"startState\" or \"sequence\" must be provided!") } switch(match.arg(mode,c("table","graph")), table = { # build accumulated matrix totalMatrix <- t(sequence) if(length(grouping)>0) # reorder genes according to the supplied groups totalMatrix = totalMatrix[unlist(grouping$index),,drop=FALSE] if(is.null(colnames(totalMatrix))) colnames(totalMatrix) <- seq_len(ncol(totalMatrix)) else if (length(grep("t = ",colnames(totalMatrix)) == ncol(totalMatrix))) # if column names were specified and contain time points, remove the "t =" prefix { colnames(totalMatrix) <- sapply(colnames(totalMatrix), gsub, pattern="t = ", replacement="", fixed=TRUE) } # initialize with empty plot if (reverse) plot(c(),c(),xlim=c(0,ncol(totalMatrix)),ylim=c(-2,nrow(totalMatrix)),xlab="",ylab="", axes=FALSE, main=title, ...) else plot(c(),c(),xlim=c(0,ncol(totalMatrix)),ylim=c(nrow(totalMatrix),-2),xlab="",ylab="", axes=FALSE, main=title, ...) axis(3,c(0,seq_len(ncol(totalMatrix))-0.5),c("t=",colnames(totalMatrix)), lty="blank", yaxt='s', xaxt='s', xaxs="i") axis(2,seq_len(nrow(totalMatrix))-0.5,rownames(totalMatrix), yaxt='s', xaxt='s', xaxs="i", las=2) # plot active and inactive states for(i in seq_len(ncol(totalMatrix))) for(j in seq_len(nrow(totalMatrix))) { if(totalMatrix[j,i] == 1) rect(i-1,j-1,i,j,col=onColor,border="gold") else rect(i-1,j-1,i,j,col=offColor,border="gold") } if(length(grouping)>0) # draw separators between groups, and print group names { sepPos = cumsum(sapply(grouping$index,length)) abline(h=sepPos[-length(sepPos)],col="black",lwd=3) text(ncol(totalMatrix)/2,sepPos-0.5,grouping$class,cex=0.9) } if (!is.null(attributes(sequence)$attractor) && highlightAttractor) # draw line for attractor { attrStart <- min(attributes(sequence)$attractor) - 1 lines(x=c(attrStart,attrStart),y=c(-1,nrow(totalMatrix)) + 0.5) arrows(x0=attrStart, y0=-0.5, x1 = ncol(totalMatrix), y1 = -0.5, length = 0.1, angle = 20, code = 3) text(attrStart, -1, "Attractor", pos=4) } if (drawLegend) legend(x="bottomright",pch=c(15,15), col=c(onColor,offColor), legend = c("active","inactive"), cex=0.7, horiz=T) return(totalMatrix) }, graph = { if (installed.packages()["igraph","Version"] < package_version("0.6")) bias <- 1 else bias <- 0 args <- list(...) if (is.null(args$vertex.size)) args$vertex.size <- 2 if (is.null(args$edge.arrow.mode)) args$edge.arrow.mode <- 0 if (is.null(args$rescale)) args$rescale <- !missing(layout) if (is.null(args$vertex.label.cex)) args$vertex.label.cex <- 0.75 if (is.null(args$vertex.label.dist)) args$vertex.label.dist <- 0.25 if (is.null(args$vertex.label.degree)) args$vertex.label.degree <- -pi/2 if (is.null(args$vertex.color)) args$vertex.color <- "grey" if (is.null(args$edge.arrow.size)) args$edge.arrow.size <- 0.5 if (missing(layout)) layout <- matrix(c(seq(-1,1,length.out=nrow(sequence)), rep(0,nrow(sequence))), ncol=2) states <- apply(sequence,1,paste,collapse="") nodes <- data.frame(seq_along(states),stringsAsFactors=FALSE) lastAttractorEdgeIndex <- NULL if (length(states) > 1) { initialStates <- 1:(length(states) - 1) nextStates <- 2:length(states) edgeMatrix <- data.frame(initialStates,nextStates) if (!is.null(attributes(sequence)$attractor)) { attractorEdge <- c(max(attributes(sequence)$attractor), min(attributes(sequence)$attractor)) if (all(attractorEdge <= length(states))) { edgeMatrix <- rbind(edgeMatrix, attractorEdge) lastAttractorEdgeIndex <- nrow(edgeMatrix) } } } else { edgeMatrix <- data.frame(matrix(nrow=0,ncol=2)) } graph <- graph.data.frame(edgeMatrix,vertices=nodes,directed=TRUE) if (drawLabels) labels <- states else labels <- NA if (highlightAttractor && !is.null(attributes(sequence)$attractor)) { attractorEdgeIndices <- intersect(seq_len(nrow(edgeMatrix)), c(attributes(sequence)$attractor, nrow(edgeMatrix))) - bias graph <- set.edge.attribute(graph,"width",index=attractorEdgeIndices,value=3) } if (!is.null(lastAttractorEdgeIndex)) { graph <- set.edge.attribute(graph, "curved", value = 0) graph <- set.edge.attribute(graph, "curved", index=lastAttractorEdgeIndex - bias, value=0.5) } plot(graph,layout=layout,vertex.label=labels,vertex.label.cex=args$vertex.label.cex, vertex.size=args$vertex.size, vertex.color=args$vertex.color, vertex.label.dist=args$vertex.label.dist, vertex.label.degree=args$vertex.label.degree, edge.arrow.size=args$edge.arrow.size, rescale=args$rescale, main=title,...) return(graph) }) } ��������BoolNet/R/testNetworkProperties.R�������������������������������������������������������������������0000644�0001760�0000144�00000033267�12466166264�016626� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Calculate the Gini index of <x> Gini <- function(x) { n <- length(x) x <- sort(x) 1/(n-1)*(n+1-2*(sum((n+1-seq_len(n))*x)/sum(x))) } # Compare the Hamming distances of the successor states of states and their perturbed copies. testTransitionRobustness <- function(network, accumulate=TRUE, params=list()) { res <- do.call("perturbTrajectories", c(list(network=network, measure="hamming"), params)) if (accumulate) return(res$value) else return(res$stat) } # Test attractor robustness by searching the original attractor # in <params$numSamples> perturbed copies of <network> or by perturbing the state trajectories # and checking whether the attractors change. testAttractorRobustness <- function(network, accumulate=TRUE, params=list()) { origAttrs <- getAttractors(network,canonical=TRUE) # decode parameters if (is.null(params$perturb)) perturb <- "functions" else perturb <- params$perturb if (params$perturb == "trajectories") { params$perturb <- NULL if (!is.null(params$copies)) { params$numSamples <- params$copies params$copies <- NULL } res <- do.call("perturbTrajectories", c(list(network=network, measure="attractor"), params)) if (accumulate) return(res$value) else return(res$stat) } else { if (is.null(params$method)) method <- "bitflip" else method <- params$method if (is.null(params$maxNumBits)) maxNumBits <- 1 else maxNumBits <- params$maxNumBits if (is.null(params$numStates)) numStates <- max(1,2^length(network$genes)/100) else numStates <- params$numStates if (is.null(params$simplify)) simplify <- (perturb[1] == "states") else simplify <- params$simplify if (is.null(params$readableFunctions)) readableFunctions <- FALSE else readableFunctions <- params$readableFunctions if (is.null(params$excludeFixed)) excludeFixed <- TRUE else excludeFixed <- params$excludeFixed if (!is.null(params$numSamples)) copies <- params$numSamples else if (is.null(params$copies)) copies <- 100 else copies <- params$copies perturbationResults <- unlist(sapply(seq_len(copies),function(copy) { # get attractors of perturbed network perturbedAttrs <- getAttractors(perturbNetwork(network, perturb=perturb, method=method, maxNumBits=maxNumBits, numStates=numStates, simplify=simplify, readableFunctions=readableFunctions, excludeFixed=excludeFixed)) # try to find original attractors in perturbed network attractorIndices <- sapply(origAttrs$attractors,function(attractor1) { index <- which(sapply(perturbedAttrs$attractors,function(attractor2) { identical(attractor1,attractor2) })) if (length(index) == 0) NA else index }) return(sum(!is.na(attractorIndices))) })) if (accumulate) # return overall percentage of found attractors return(sum(perturbationResults)/(length(origAttrs$attractors) * copies) * 100) else # return percentage of found attractors for each run return(perturbationResults/(length(origAttrs$attractors)) * 100) } } # Calculate the in-degrees of states in the network. # If <accumulate> is true, the in-degrees are accumulated # using the Gini coefficient testIndegree <- function(network,accumulate=TRUE,params) { attr <- getAttractors(network) graph <- plotStateGraph(attr,plotIt=FALSE) # calculate in-degree using igraph if (accumulate) # accumulate using Gini index return(Gini(degree(graph,mode="in",loops=TRUE))) else # return the raw degrees return(degree(graph,mode="in",loops=TRUE)) } # Calculate the Kullback-Leibler distance of # two distributions <x> and <y>. # <bins> is the number of bins used for discretization. # <minVal> is the minimum value to be used instead of zero kullbackLeiblerDistance <- function(x,y,bins=list(),minVal=0.00001) { x <- cut(x,breaks=bins,include.lowest=T,right=F) y <- cut(y,breaks=bins,include.lowest=T,right=F) tx <- table(x) ty <- table(y) tx <- tx/length(x) ty <- ty/length(y) tx[tx < minVal] <- minVal ty[ty < minVal] <- minVal return(sum(tx*(log(tx/ty)))) } # Generic function to test properties of <network> against random networks. # <numRandomNets> specifies the number of random networks to generate. # <testFunction> is the name of a function that returns a distribution of test values or a test statistic for each network, # which receives <testFunctionParams> as optional parameters. # If <accumulation> is "characteristic", the test function must return a characteristic/test statistic value for each value, and # a histogram of these value is plotted with a line for the original network. # If <accumulation> is "kullback_leibler", a histogram of the Kullback-Leibler distances of the test value distribution for the original network # and the random networks is plotted. # <sign.level> is the desired significance level for <network> in comparison to the random networks. # <functionGeneration>,<simplify>,<noIrrelevantGenes>,<validationFunction>,<failureInterations, # <d_lattice>,<zeroBias> are the corresponding parameters of generateRandomNKNetwork(). # <title> is the title of the plot, <xlab> is its x axis caption, <breaks> is the corresponding histogram parameter, and ... supplies further # graphical parameters testNetworkProperties <- function(network, numRandomNets=100, testFunction="testIndegree", testFunctionParams=list(), accumulation=c("characteristic","kullback_leibler"), alternative=c("greater","less"), sign.level=0.05, drawSignificanceLevel=TRUE, klBins,klMinVal=0.00001, linkage=c("uniform","lattice"), functionGeneration=c("uniform","biased"), validationFunction, failureIterations=10000, simplify=FALSE, noIrrelevantGenes=TRUE, d_lattice=1, zeroBias=0.5, title="", xlab, xlim, breaks=30, ...) { stopifnot(inherits(network,"BooleanNetwork") || inherits(network,"SymbolicBooleanNetwork")) if (is.character(testFunction)) testFunctionName <- testFunction else testFunctionName <- "" testFunction <- match.fun(testFunction) accumulate <- (match.arg(accumulation) == "characteristic") origResult <- testFunction(network,accumulate,testFunctionParams) numGenes <- length(network$interactions) if (inherits(network,"SymbolicBooleanNetwork")) inputGenes <- sapply(network$interactions,function(interaction)length(getInputs(interaction))) else inputGenes <- sapply(network$interactions,function(interaction)length(interaction$input)) if (missing(validationFunction)) validationFunction <- NULL randomResults <- lapply(seq_len(numRandomNets),function(i) { randomNet <- generateRandomNKNetwork(n=numGenes, k=inputGenes, topology="fixed", linkage=linkage, functionGeneration=functionGeneration, validationFunction=validationFunction, failureIterations=failureIterations, simplify=simplify, noIrrelevantGenes=noIrrelevantGenes, d_lattice=d_lattice, zeroBias=zeroBias) randomRes <- testFunction(randomNet,accumulate,testFunctionParams) return(randomRes) }) if (accumulate) randomResults <- unlist(randomResults) args <- list(...) res <- switch(match.arg(accumulation,c("characteristic","kullback_leibler")), characteristic = { # get one value for each random network, and plot a histogram of these values if (missing(xlab)) { xlab <- switch(testFunctionName, testIndegree = "Gini index of state in-degrees", testAttractorRobustness = "% of identical attractors", testTransitionRobustness = "Normalized Hamming distance", "accumulated results" ) } if (missing(xlim)) { #xlim <- switch(testFunctionName, # testIndegree = c(0,1), # testAttractorRobustness = c(0,100), # c(min(c(origResult,randomResults)), # max(c(origResult,randomResults))) #) xlim <- range(c(origResult, randomResults)) } alternative <- match.arg(alternative, c("greater","less")) # calculate p-value if (alternative == "greater") pval <- sum(randomResults < origResult) / length(randomResults) else pval <- sum(randomResults > origResult) / length(randomResults) # plot histogram if (testFunctionName == "testIndegree" | testFunctionName == "testAttractorRobustness") { r <- hist(randomResults,xlim=xlim,xlab=xlab,main=title,xaxt="n",...) axis(side=1,at=seq(xlim[1],xlim[2],length.out=11)) } else { # plot with default axis r <- hist(randomResults,xlim=xlim,xlab=xlab,main=title,...) } # plot result for original network abline(v=origResult,col="red") if (alternative == "greater") text(x=origResult,pos=2,y=max(r$counts)*0.75, labels=paste("> ",round(pval * 100),"%\nof random results",sep=""), col="red",cex=0.75) else text(x=origResult,pos=4,y=max(r$counts)*0.75, labels=paste("< ",round(pval * 100),"%\nof random results",sep=""), col="red",cex=0.75) if (drawSignificanceLevel) # plot line for significance level { if (alternative == "greater") { quant <- quantile(randomResults,1.0-sign.level) abline(v=quant,col="blue") text(x=quant,pos=2,y=max(r$counts)*0.85, labels=paste((1.0-sign.level) * 100,"% quantile",sep=""), col="blue",cex=0.75) } else { quant <- quantile(randomResults,sign.level) abline(v=quant,col="blue") text(x=quant,pos=4,y=max(r$counts)*0.85, labels=paste(sign.level * 100,"% quantile",sep=""), col="blue",cex=0.75) } } list(hist=r,pval=1.0-pval,significant=(1.0-pval<=sign.level)) }, kullback_leibler = { # a distribution of values is returned for each network, # plot the Kullback-Leibler distances to the original network if (missing(xlab)) xlab <- "Kullback-Leibler distance" if (missing(klBins)) { bins <- unique(c(origResult,unlist(randomResults))) bins <- c(bins,max(bins) + 1) } else { bins <- unique(c(origResult,unlist(randomResults))) if (klBins < length(bins)) bins <- seq(min(bins),max(bins),length.out=klBins+1) else bins <- c(bins,max(bins) + 1) } vals <- sapply(randomResults,function(results) kullbackLeiblerDistance(origResult,results,bins=bins,minVal=klMinVal)) r <- hist(vals,xlab=xlab,main=title,breaks=breaks,...) list(hist=r) }, stop("'accumulation' must be one of \"characteristic\",\"kullback_leibler\"")) return(res) } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/R/plotStateGraph.R��������������������������������������������������������������������������0000644�0001760�0000144�00000014113�12466166264�015146� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Plots a graph that visualizes the state transitions and attractor basins. <attractorInfo> is an object # of class AttractorInfo. This requires the igraph package. # If <highlightAttractors> is set, attractor edges are drawn bold. # If <colorBasins> is true, each basin is drawn in a different color. # Colors can be provided in <colorSet>. # <layout> specifies the graph layouting function. # If <piecewise> is true, subgraphs are layouted separately. # <basin.lty> and <attractor.lty> specify the line types used to draw states in the basins # and in the attractors (if <highlightAttractor> is set). # If <plotIt> is not set, only the igraph object is returned, but no graph is plotted. # ... provides further graphical parameters for the plot. # Returns an object of class igraph plotStateGraph <- function(stateGraph,highlightAttractors=TRUE,colorBasins=TRUE,colorSet, drawLegend=TRUE,drawLabels=FALSE,layout=layout.fruchterman.reingold, piecewise=FALSE,basin.lty=2,attractor.lty=1,plotIt=TRUE,...) { stopifnot(inherits(stateGraph,"AttractorInfo") || inherits(stateGraph,"TransitionTable") || inherits(stateGraph,"SymbolicSimulation")) args <- list(...) if (!is.null(args$attractorInfo)) { warning("The parameter \"attractorInfo\" is deprecated. Use \"stateGraph\" instead!") stateGraph <- args$attractorInfo } if (installed.packages()["igraph","Version"] < package_version("0.6")) bias <- 1 else bias <- 0 symbolic <- FALSE if (inherits(stateGraph,"AttractorInfo")) { stateGraph <- getTransitionTable(stateGraph) } else if (inherits(stateGraph,"SymbolicSimulation")) { symbolic <- TRUE if (is.null(stateGraph$graph)) stop(paste("This SymbolicSimulation structure does not contain transition table information.", "Please re-run simulateSymbolicModel() with returnGraph=TRUE!")) stateGraph <- stateGraph$graph } geneCols <- setdiff(colnames(stateGraph),c("attractorAssignment","transitionsToAttractor")) numGenes <- (length(geneCols)) / 2 from <- apply(stateGraph[,1:numGenes,drop=FALSE],1,paste,collapse="") to <- apply(stateGraph[,((numGenes+1):(2*numGenes)),drop=FALSE],1,paste,collapse="") vertices <- unique(c(from,to)) edges <- data.frame(from,to) res <- graph.data.frame(edges,vertices=as.data.frame(vertices),directed=TRUE) res <- set.vertex.attribute(res,"name",value=vertices) if ("attractorAssignment" %in% colnames(stateGraph)) attractorAssignment <- stateGraph$attractorAssignment else { attractorAssignment <- c() colorBasins <- FALSE drawLegend <- FALSE } if ("stepsToAttractor" %in% colnames(stateGraph)) attractorIndices <- to[stateGraph$stepsToAttractor == 0] else { attractorIndices <- c() highlightAttractors <- FALSE } # determine nodes and edges that belong to attractors # set default edge width and line type res <- set.edge.attribute(res,"width",value=0.9) res <- set.edge.attribute(res,"lty",value=basin.lty) if (highlightAttractors) { attractorEdgeIndices <- which(apply(edges,1, function(edge)((edge[1] %in% attractorIndices) & (edge[2] %in% attractorIndices)))) - bias # set different edge width and line type for attractor edges res <- set.edge.attribute(res,"width",index=attractorEdgeIndices,value=2) res <- set.edge.attribute(res,"lty",index=attractorEdgeIndices,value=attractor.lty) } if (missing(colorSet)) { # define default colors colorSet <- c("blue","green","red","darkgoldenrod","gold","brown","cyan", "purple","orange","seagreen","tomato","darkgray","chocolate", "maroon","darkgreen","gray12","blue4","cadetblue","darkgoldenrod4", "burlywood2") } # check for certain graphical parameters in ... # that have different default values in this plot if (is.null(args$vertex.size)) args$vertex.size <- 2 if (is.null(args$edge.arrow.mode)) args$edge.arrow.mode <- 2 if (is.null(args$edge.arrow.size)) args$edge.arrow.size <- 0.3 if (is.null(args$vertex.label.cex)) args$vertex.label.cex <- 0.5 if (is.null(args$vertex.label.dist)) args$vertex.label.dist <- 1 attractors <- unique(attractorAssignment) attractors <- attractors[!is.na(attractors)] if (colorBasins) { res <- set.edge.attribute(res,"color",value="darkgrey") for (attractor in attractors) { # determine nodes and edges belonging to the basin of <attractor> basinIndices <- which(attractorAssignment == attractor) if (!symbolic) { # change vertex color res <- set.vertex.attribute(res,"color",basinIndices - bias, value=colorSet[(attractor-1) %% length(colorSet) + 1]) if (drawLabels) res <- set.vertex.attribute(res,"label.color",basinIndices - bias, value=colorSet[(attractor-1) %% length(colorSet) + 1]) } #basinEdgeIndices <- which(apply(edges,1, # function(edge)((edge[1] %in% basinIndices) # & (edge[2] %in% basinIndices)))) - bias basinEdgeIndices <- basinIndices - bias # change edge color res <- set.edge.attribute(res,"color",index=basinEdgeIndices, value=colorSet[(attractor-1) %% length(colorSet) + 1]) } } if(plotIt) { if (drawLabels) labels <- vertices else labels <- NA if (piecewise) layout <- piecewise.layout(res, layout) if (symbolic) autocurve.edges(res) do.call("plot",c(list(res),args,"vertex.label"=list(labels), "layout"=list(layout))) #plot(res,vertex.size=args$vertex.size,layout=layout, # edge.arrow.mode=args$edge.arrow.mode, # vertex.label=labels,vertex.label.cex=args$vertex.label.cex, # vertex.label.dist=args$vertex.label.dist, # ...) if (colorBasins & drawLegend) legend(x="bottomleft",pch=15,ncol=1, col=colorSet[attractors-1 %% length(colorSet) + 1], legend = paste("Attractor",seq_along(attractors)), cex=0.5) } return(invisible(res)) } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/R/getAttractors.R���������������������������������������������������������������������������0000644�0001760�0000144�00000025767�12473107364�015046� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Identify attractors in a Boolean network. # <network> is a BooleanNetwork/SymbolicBooleanNetwork structure specifying the network. # <method> specifies what kind of search is conducted: "exhaustive" performs a full search over all states, # "random" generates <startStates> random initial states, and "chosen" uses the states supplied in <startStates>. # "sat.exhaustive" and "sat.restricted" start a SAT-based attractor search. # <genesON> and <genesOFF> are lists of genes to be set to ON/1 or OFF/0 respectively. # If <canonical> is true, states in the attractors are reordered such that the "smallest" state is the first # <randomChainLength> is the number of random transitions performed for the identification of an asynchronous attractor # If <avoidSelfLoops> is true, loops to the same state are eliminated from asynchronous attractors. # <geneProbabilities> optionally specifies the probabilities of choosing a gene for an asynchronous update. # <maxAttractorLength> specifies the maximum attractor length for method="sat.restricted" and the initial search length for method="sat.exhaustive". # if <returnTable> is true, the transition table is included in the result. getAttractors <- function (network, type=c("synchronous","asynchronous"), method=c("exhaustive","sat.exhaustive","sat.restricted","random","chosen"), startStates=list(), genesON = c(), genesOFF = c(), canonical=TRUE, randomChainLength = 10000, avoidSelfLoops = TRUE, geneProbabilities = NULL, maxAttractorLength=Inf, returnTable=TRUE) { stopifnot(inherits(network,"BooleanNetwork") || inherits(network,"SymbolicBooleanNetwork")) symbolic <- inherits(network,"SymbolicBooleanNetwork") nonFixedPositions <- which(network$fixed == -1) type <- match.arg(type, c("synchronous","asynchronous")) if (type == "asynchronous") { if (symbolic) stop("Only synchronous updates are allowed for symbolic networks!") if (length(method) == 1 & match.arg(method) == "exhaustive") stop("Asynchronous attractor search cannot be performed in exhaustive search mode!") if (length(geneProbabilities) > 0 ) { if (length(geneProbabilities) != length(network$genes)) stop("Please supply exactly one probability for each gene!") if (abs(1.0 - sum(geneProbabilities)) > 0.0001) stop("The supplied gene probabilities do not sum up to 1!") } } if (!is.null(maxAttractorLength) && is.infinite(maxAttractorLength)) maxAttractorLength <- NULL if (length(method) > 1) # if no method is supplied, infer method from the type of <startStates> { if (type == "asynchronous" & length(startStates) == 0) { startStates <- max(round(2 ^ sum(network$fixed == -1) / 20), 5) method = "random" } else if (is.numeric(startStates)) { if (length(startStates) > 1) stop("Please supply either the number of start states or a list of start states in startStates!") else method <- "random" } else if (is.list(startStates) & (length(startStates) > 0)) method <- "chosen" else if (!is.null(maxAttractorLength)) method <- "sat.restricted" else method <- "exhaustive" } # fix genes according to genesON and genesOFF if (length(genesON) > 0) { network <- fixGenes(network,genesON,1) } if (length(genesOFF) > 0) { network <- fixGenes(network,genesOFF,0) } if (symbolic) { return(simulateSymbolicModel(network, method=method, startStates=startStates, maxAttractorLength=maxAttractorLength, returnGraph=returnTable && !(match.arg(method) %in% c("sat.exhaustive", "sat.restricted")), returnSequences=FALSE, returnAttractors=TRUE, canonical=canonical)) } else { method <- match.arg(method,c("exhaustive","sat.exhaustive","sat.restricted","random","chosen")) if (method == "sat.restricted" && is.null(maxAttractorLength)) stop("maxAttractorLength must be set for method=\"sat.restricted\"!") if ((length(network$genes) > 29) && (method == "exhaustive") && (type == "synchronous")) { method <- "sat.exhaustive" warning("An exhaustive state space search is restricted to networks with at most 29 genes. Switching to the SAT-based exhaustive search, which supports more genes, but does not return a transition table!") } else if (method %in% c("sat.exhaustive", "sat.restricted") && type != "synchronous") stop("SAT-based search can only be used for synchronous networks!") startStates <- switch(method, exhaustive = list(), sat.exhaustive = list(), sat.restricted = list(), random = { if (!is.numeric(startStates)) stop("Please supply the number of random states in startStates!") if (startStates > (2 ^ length(nonFixedPositions))) # more start states than in the full network { if (type == "synchronous") { list() warning(paste("The number of random states is set larger than the total", "number of states. Performing an exhaustive search!")) } else { warning(paste("The number of random states is set larger than the total ", "number of states! The maximum number of different states is ",2 ^ length(nonFixedPositions)),"!",sep="") startStates = 2 ^ length(nonFixedPositions) } } # generate random matrix generateRandomStartStates(network, startStates) }, chosen = { if (!is.list(startStates) | length(startStates) == 0) stop("No start states supplied!") if (!all(sapply(startStates,function(x)(length(x) == length(network$genes))))) stop(paste("Please provide binary vectors with",length(network$genes), "elements in startStates!")) fixedGenes <- which(network$fixed != -1) statesValid <- sapply(startStates,function(state) { isTRUE(all(state[fixedGenes] == network$fixed[fixedGenes])) }) startStates <- startStates[statesValid] if (!any(statesValid)) stop("None of the supplied start states matched the restrictions of the fixed genes!") if (!all(statesValid)) warning("Some of the supplied start states did not match the restrictions of the fixed genes and were removed!") startStates } ) if (!is.null(maxAttractorLength)) { if (!(method %in% c("sat.exhaustive", "sat.restricted"))) stop("maxAttractorLength can only be used with method=\"sat.exhaustive\" or method=\"sat-res.ricted\"!") maxAttractorLength <- as.integer(maxAttractorLength) } specialInitialization <- NULL convertedStartStates <- NULL if (length(startStates) > 0) convertedStartStates <- sapply(startStates,function(x)bin2dec(x,length(network$genes))) # the C code requires all interactions to be coded into one vector: # Assemble all input gene lists in one list <inputGenes>, and remember the split positions in <inputGenePositions>. inputGenes <- as.integer(unlist(lapply(network$interactions,function(interaction)interaction$input))) inputGenePositions <- as.integer(cumsum(c(0,sapply(network$interactions, function(interaction)length(interaction$input))))) # Do the same for the transition functions. transitionFunctions <- as.integer(unlist(lapply(network$interactions,function(interaction)interaction$func))) transitionFunctionPositions <- as.integer(cumsum(c(0,sapply(network$interactions, function(interaction)length(interaction$func))))) searchType <- switch(type, synchronous = if (method == "sat.exhaustive") 2 else if (method == "sat.restricted") 3 else 0, asynchronous = 1) on.exit(.C("freeAllMemory", PACKAGE = "BoolNet")) # Call the C code result <- .Call("getAttractors_R",inputGenes,inputGenePositions, transitionFunctions,transitionFunctionPositions, as.integer(network$fixed), as.integer(convertedStartStates), as.integer(searchType), as.double(geneProbabilities), as.integer(randomChainLength), as.integer(avoidSelfLoops), as.integer(returnTable), maxAttractorLength, PACKAGE="BoolNet") if (is.null(result)) stop("An error occurred in external C code!") if (length(result$attractors) == 0) stop("getAttractors() was not able to identify any attractors! Please check the supplied parameters and restart!") if (length(network$genes) %% 32 == 0) numElementsPerEntry <- as.integer(length(network$genes) / 32) else numElementsPerEntry <- as.integer(length(network$genes) / 32 + 1) if (!is.null(result$stateInfo)) { result$stateInfo$table <- matrix(result$stateInfo$table,nrow=numElementsPerEntry) if (!is.null(result$stateInfo$initialStates)) result$stateInfo$initialStates <- matrix(result$stateInfo$initialStates,nrow=numElementsPerEntry) } for (i in seq_len(length(result$attractors))) { result$attractors[[i]]$involvedStates <- matrix(result$attractors[[i]]$involvedStates,nrow=numElementsPerEntry) if (canonical) # reorder states result$attractors[[i]]$involvedStates <- canonicalStateOrder(result$attractors[[i]]$involvedStates) if (!is.null(result$attractors[[i]]$initialStates)) result$attractors[[i]]$initialStates <- matrix(result$attractors[[i]]$initialStates,nrow=numElementsPerEntry) if (!is.null(result$attractors[[i]]$nextStates)) result$attractors[[i]]$nextStates <- matrix(result$attractors[[i]]$nextStates,nrow=numElementsPerEntry) if (result$attractors[[i]]$basinSize == 0) result$attractors[[i]]$basinSize <- NA } # order attractors according to their lengths attractorLengths <- sapply(result$attractors,function(attractor)ncol(attractor$involvedStates)) reordering <- order(attractorLengths) result$attractors <- result$attractors[reordering] if (!is.null(result$stateInfo)) { inverseOrder <- sapply(seq_along(reordering),function(x)which(reordering == x)) result$stateInfo$attractorAssignment <- inverseOrder[result$stateInfo$attractorAssignment] } # extend the resulting structure by additional information, and assign a class result$stateInfo$genes <- network$genes result$stateInfo$fixedGenes <- network$fixed if (!is.null(result$stateInfo$table)) class(result$stateInfo) <- "BooleanStateInfo" class(result) <- "AttractorInfo" return(result) } } ���������BoolNet/R/truthTableToSymbolic.R��������������������������������������������������������������������0000644�0001760�0000144�00000002541�12473107364�016324� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ # Convert a BooleanNetwork object # <network> to a SymbolicBooleanNetwork object truthTableToSymbolic <- function(network, generateDNFs=FALSE) { stopifnot(inherits(network, "BooleanNetwork")) res <- list(genes = network$genes, fixed = as.integer(network$fixed), interactions = lapply(network$interactions, function(int) { func <- tryCatch( { if (generateDNFs != FALSE) parseBooleanFunction(getDNF(int$func, network$genes[int$input], mode=generateDNFs), network$genes) else parseBooleanFunction(int$expression, network$genes) }, error = function(e) { parseBooleanFunction(getDNF(int$func, network$genes[int$input], mode=generateDNFs), network$genes) }) return(func) })) names(res$fixed) <- res$genes res$internalStructs <- .Call("constructNetworkTrees_R",res) res$timeDelays <- apply(sapply(res$interactions,maxTimeDelay,genes=res$genes),1,max) class(res) <- "SymbolicBooleanNetwork" return(res) } ���������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/R/perturbNetwork.R��������������������������������������������������������������������������0000644�0001760�0000144�00000022372�12466166263�015247� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Randomly perturb a supplied network. # <perturb="functions"> perturbs the functions associated with the genes directly. # <perturb="states"> perturbs a maximum of <numStates> states # in the transition table resulting from the functions. # <method="bitflip"> randomly flips up to <maxNumBits> in the functions or states. # <method="shuffle"> randomly permutes the bits in the functions or states. # If <simplify> is set, the perturbed network is simplified to remove irrelevant input functions. # If <excludeFixed> is set, fixed genes are excluded from the perturbations and stay as they are. perturbNetwork <- function(network,perturb=c("functions","transitions"),method=c("bitflip","shuffle"), simplify=(perturb[1]!="functions"),readableFunctions=FALSE,excludeFixed=TRUE, maxNumBits=1,numStates=max(1,2^length(network$genes)/100)) { stopifnot(inherits(network,"BooleanNetwork") | inherits(network,"ProbabilisticBooleanNetwork")) fixedGenes <- which(network$fixed != -1) if (length(perturb) == 1 && perturb == "states") { warning("perturb=\"states\" is deprecated. Use perturb=\"transitions\" instead!") perturb <- "transitions" } if (inherits(network,"BooleanNetwork")) # deterministic network { switch(match.arg(perturb,c("functions","transitions")), functions= switch(match.arg(method,c("bitflip","shuffle")), bitflip = { # choose the function to be perturbed if (length(fixedGenes) > 0 & excludeFixed) functionIdx <- sample((seq_along(network$interactions))[-fixedGenes],size=1) else functionIdx <- sample(seq_along(network$interactions),size=1) # choose the indices of the truth table to be flipped flipIndices <- sample(seq_along(network$interactions[[functionIdx]]$func), size=runif(n=1,min=1, max=min(maxNumBits, length(network$interactions[[functionIdx]]$func))), replace=FALSE) # flip the bits network$interactions[[functionIdx]]$func[flipIndices] <- as.integer(!network$interactions[[functionIdx]]$func[flipIndices]) network$interactions[[functionIdx]]$expression <- getInteractionString(readableFunctions, network$interactions[[functionIdx]]$func, network$genes[network$interactions[[functionIdx]]$input]) }, shuffle= { # choose the function to be perturbed if (length(fixedGenes) > 0 & excludeFixed) functionIdx <- sample((seq_along(network$interactions))[-fixedGenes],size=1) else functionIdx <- sample(seq_along(network$interactions),size=1) # draw a random permutation of bit positions flipIndices <- sample(seq_along(network$interactions[[functionIdx]]$func), size=length(network$interactions[[functionIdx]]$func), replace=FALSE) # permute the bits network$interactions[[functionIdx]]$func <- network$interactions[[functionIdx]]$func[flipIndices] network$interactions[[functionIdx]]$expression <- getInteractionString(readableFunctions, network$interactions[[functionIdx]]$func, network$genes[network$interactions[[functionIdx]]$input]) }, stop("'method' must be one of \"bitflip\",\"shuffle\"")), transitions = { # turn off gene fixing - otherwise reverse-engineering of the transition table is not possible oldFixed <- network$fixed network$fixed <- rep(-1,length(network$genes)) names(network$fixed) <- network$genes # calculate transition table table <- t(sapply(getAttractors(network)$stateInfo$table,dec2bin,length(network$genes))) # determine the states to be perturbed statesToChange <- sample(seq_len(nrow(table)),min(numStates,nrow(table)),replace=FALSE) lapply(statesToChange,function(state) { # choose the indices of the states that are allowed to be changed flipIndices <- seq_along(network$genes) if (length(fixedGenes) > 0 & excludeFixed) flipIndices <- flipIndices[-fixedGenes] switch(match.arg(method,c("bitflip","shuffle")), bitflip = { # choose the actual indices to be changed flipIndex <- sample(flipIndices, size=runif(n=1,min=1, max=min(maxNumBits, length(flipIndices))), replace=FALSE) # flip the bits at these positions table[state,flipIndex] <<- as.integer(!table[state,flipIndex]) }, shuffle = { # determine a permutation of the bit indices flipIndex <- sample(flipIndices, size=length(flipIndices), replace=FALSE) # permute the state table[state,] <<- as.integer(table[state,flipIndex]) }, stop("'method' must be one of \"bitflip\",\"shuffle\"") ) NULL}) # restore network by assigning the columns of the state table to the corresponding genes network$interactions <- apply(table,2,function(gene) { input = seq_along(network$genes) # encoding is reversed in the transition table input <- input[length(input):1] list(input=input, func=gene, expression= getInteractionString(readableFunctions, gene, network$genes[input])) }) # reactivate fixed genes network$fixed <- oldFixed }, stop("'perturb' must be one of \"functions\",\"transitions\"")) } else # probabilistic network { if (match.arg(perturb) != "functions") stop("In probabilistic Boolean networks, only perturb=functions is allowed!") switch(match.arg(method,c("bitflip","shuffle")), bitflip = { # choose the gene and the function to be perturbed if (length(fixedGenes) > 0 & excludeFixed) geneIdx <- sample((seq_along(network$interactions))[-fixedGenes],size=1) else geneIdx <- sample(seq_along(network$interactions),size=1) functionIdx <- sample(seq_along(network$interactions[[geneIdx]]),size=1) # choose the indices of the truth table to be flipped flipIndices <- sample(seq_along(network$interactions[[geneIdx]][[functionIdx]]$func), size=runif(n=1,min=1, max=min(maxNumBits, length(network$interactions[[geneIdx]][[functionIdx]]$func))), replace=FALSE) # flip the bits network$interactions[[geneIdx]][[functionIdx]]$func[flipIndices] <- as.integer(!network$interactions[[geneIdx]][[functionIdx]]$func[flipIndices]) network$interactions[[geneIdx]][[functionIdx]]$expression <- getInteractionString(readableFunctions, network$interactions[[geneIdx]][[functionIdx]]$func, network$genes[network$interactions[[geneIdx]][[functionIdx]]$input]) }, shuffle= { # choose the function to be perturbed if (length(fixedGenes) > 0 & excludeFixed) geneIdx <- sample((seq_along(network$interactions))[-fixedGenes],size=1) else geneIdx <- sample(seq_along(network$interactions),size=1) functionIdx <- sample(seq_along(network$interactions[[geneIdx]]),size=1) # draw a random permutation of bit positions flipIndices <- sample(seq_along(network$interactions[[geneIdx]][[functionIdx]]$func), size=length(network$interactions[[geneIdx]][[functionIdx]]$func), replace=FALSE) # permute the bits network$interactions[[geneIdx]][[functionIdx]]$func <- network$interactions[[geneIdx]][[functionIdx]]$func[flipIndices] network$interactions[[geneIdx]][[functionIdx]]$expression <- getInteractionString(readableFunctions, network$interactions[[geneIdx]][[functionIdx]]$func, network$genes[network$interactions[[geneIdx]][[functionIdx]]$input]) }, stop("'method' must be one of \"bitflip\",\"shuffle\"")) } # simplify the network if necessary if (simplify) network <- simplifyNetwork(network,readableFunctions) return(network) } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/R/getStateSummary.R�������������������������������������������������������������������������0000644�0001760�0000144�00000005442�12466166263�015347� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Summarize information on a state <state>, specified as a vector of # Boolean values. Information is taken from the state tables in <attractorInfo>. # The function outputs the corresponding attractor, the distance to the basin, # and the next state. getStateSummary <- function(attractorInfo,state) { stopifnot(inherits(attractorInfo,"AttractorInfo") | inherits(attractorInfo,"SymbolicSimulation")) if (inherits(attractorInfo,"SymbolicSimulation")) { if (is.null(attractorInfo$graph)) stop(paste("This SymbolicSimulation structure does not contain transition table information.", "Please re-run simulateSymbolicModel() with returnGraph=TRUE!")) geneCols <- setdiff(colnames(attractorInfo$graph),c("attractorAssignment","transitionsToAttractor")) numGenes <- (length(geneCols)) / 2 stateIndices <- apply(attractorInfo$graph[,seq_len(numGenes),drop=FALSE], 1, function(x) { all(as.integer(x) == as.integer(state)) }) return(attractorInfo$graph[stateIndices,,drop=FALSE]) } else { if (length(state) != length(attractorInfo$stateInfo$genes)) stop("State must have one element for each gene!") if (is.null(attractorInfo$stateInfo$table)) stop(paste("This AttractorInfo structure does not contain transition table information.", "Please re-run getAttractors() with a synchronous search and returnTable=TRUE!")) if (!is.null(attractorInfo$stateInfo$initialStates)) { stateNo <- bin2dec(state,length(state)) # search element in initial state index stateNo <- which(apply(attractorInfo$stateInfo$initialStates,2,function(x) { isTRUE(all.equal(x,stateNo)) })) } else { # find out the decimal number of the state which is used in the # transition table shortenedState <- state[attractorInfo$stateInfo$fixedGenes == -1] # simply use <stateNo>-th elements if initial states are not provided stateNo <- bin2dec(shortenedState,length(shortenedState)) + 1 } # coerce summary into a one-row dataframe, i.e. create a # TransitionTable object with one element res <- as.data.frame(as.list(unlist(list(state, dec2bin(attractorInfo$stateInfo$table[,stateNo], length(attractorInfo$stateInfo$genes)), attractorInfo$stateInfo$attractorAssignment[stateNo], attractorInfo$stateInfo$stepsToAttractor[stateNo])))) colnames(res) <- c(paste("initialState.",attractorInfo$stateInfo$genes,sep=""), paste("nextState.",attractorInfo$stateInfo$genes,sep=""), "attractorAssignment","transitionsToAttractor") class(res) <- c("TransitionTable","data.frame") return(res) } } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/R/print.TransitionTable.R�������������������������������������������������������������������0000644�0001760�0000144�00000006227�12466166264�016451� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Custom print function for class TransitionTable print.TransitionTable <- function(x, activeOnly=FALSE, ...) { geneCols <- setdiff(colnames(x),c("attractorAssignment","transitionsToAttractor")) numGenes <- (length(geneCols)) / 2 colIndices <- c(1,numGenes,numGenes + 1, 2*numGenes); if ("attractorAssignment" %in% colnames(x)) colIndices <- c(colIndices, 2*numGenes + 1) if ("transitionsToAttractor" %in% colnames(x)) colIndices <- c(colIndices, 2*numGenes + 2) genes <- sapply(colnames(x)[seq_len(numGenes)],function(n)strsplit(n,".",fixed=TRUE)[[1]][2]) if(activeOnly) { inputStates <- apply(x,1,function(row) { r <- paste(genes[which(row[colIndices[1]:colIndices[2]] == 1)],collapse=", ") if (r == "") r <- "--" r }) outputStates <- apply(x,1,function(row) { r <- paste(genes[which(row[colIndices[3]:colIndices[4]] == 1)],collapse=", ") if (r == "") r <- "--" r }) colWidth <- max(c(sapply(inputStates,nchar),sapply(outputStates,nchar))) align <- "left" } else { inputStates <- apply(x,1,function(row) paste(row[colIndices[1]:colIndices[2]],collapse="")) outputStates <- apply(x,1,function(row) paste(row[colIndices[3]:colIndices[4]],collapse="")) colWidth <- numGenes align <- "right" } binMatrix <- cbind(inputStates,outputStates) if ("attractorAssignment" %in% colnames(x)) binMatrix <- cbind(binMatrix, x[,colIndices[5]]) if ("transitionsToAttractor" %in% colnames(x)) binMatrix <- cbind(binMatrix, x[,colIndices[6]]) binMatrix <- as.data.frame(binMatrix) cat(format("State",width=max(7,colWidth),justify=align)," ", format("Next state",width=max(11,colWidth + 2),justify=align), if ("attractorAssignment" %in% colnames(x)) { format("Attr. basin",width=13,justify="right") } else "", if ("transitionsToAttractor" %in% colnames(x)) { format("# trans. to attr.",width=19,justify="right") } else "", "\n",sep="") apply(binMatrix,1,function(row) { # paste all states of input and output into one string, and put out all columns of the table in a # formatted way cat(format(row[1],width=max(7,colWidth),justify=align), " => ", format(row[2],width=max(11,colWidth + 2),justify=align), if ("attractorAssignment" %in% colnames(x)) { format(row[3],width=13,justify="right") } else "", if ("transitionsToAttractor" %in% colnames(x)) { format(row[4],width=19,justify="right") } else "", "\n",sep="") }) if (!activeOnly) cat("\nGenes are encoded in the following order: ", paste(genes,collapse=" "),"\n",sep="") return(invisible(x)) } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/R/generateRandomNKNetwork.R�����������������������������������������������������������������0000644�0001760�0000144�00000012312�12466166263�016741� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������generateRandomNKNetwork <- function(n,k,topology=c("fixed","homogeneous","scale_free"), linkage=c("uniform","lattice"), functionGeneration=c("uniform","biased"), validationFunction, failureIterations=10000, simplify=FALSE, noIrrelevantGenes=TRUE, readableFunctions=FALSE, d_lattice=1, zeroBias=0.5, gamma=2.5, approx_cutoff=100) { k_i_vec <- switch(match.arg(topology), fixed = { if (length(k) == n) k else if (length(k) == 1) rep(k,n) else stop("k must have 1 or n element(s)!") }, homogeneous = round(rpois(n,k)), scale_free = rzeta(n,k,gamma=gamma,approx_cutoff=approx_cutoff), stop("'topology' must be one of \"fixed\",\"homogeneous\"") ) k_i_vec[k_i_vec > n] <- n if ((zeroBias == 0 | zeroBias == 1) && noIrrelevantGenes && any(k_i_vec > 0)) stop("If setting 'zeroBias' to 0 or 1, you must set 'noIrrelevantGenes' to FALSE!") geneNames <- paste("Gene",seq_len(n),sep="") if (!missing(validationFunction) && !is.null(validationFunction)) validationFunction <- match.fun(validationFunction) else validationFunction <- NULL interactions <- mapply(function(i,k_i) { if (k_i == 0) { genes <- 0 func <- round(runif(min=0,max=1,n=1)) } else { table <- allcombn(2,k_i) - 1 genes <- switch(match.arg(linkage,c("uniform","lattice")), uniform = sample(seq_len(n),k_i,replace=FALSE), lattice = { region <- c(max(1,round(i - k_i*d_lattice)):max(1,i-1), min(n,i+1):min(n,round(i + k_i*d_lattice))) sample(region,k_i,replace=FALSE) }, stop("'linkage' must be one of \"uniform\",\"lattice\"")) containsIrrelevant <- TRUE validFunction <- TRUE counter <- 0 while((!validFunction) || containsIrrelevant) { tryCatch( { functionGeneration <- match.fun(functionGeneration) }, error = function(e){} ) if (is.function(functionGeneration)) func <- functionGeneration(input=genes) else func <- switch(match.arg(functionGeneration,c("uniform","biased")), uniform = round(runif(min=0,max=1,n=2^k_i)), biased = as.integer(runif(min=0,max=1,n=2^k_i) > zeroBias), stop("'functionGeneration' must be one of \"uniform\",\"biased\" or a function!")) if (noIrrelevantGenes) { dropGenes <- apply(table,2,function(gene) # determine all genes that have no influence on the results, # i.e. the result column is equal for 0 values and 1 values { (identical(func[gene==1], func[gene==0])) }) containsIrrelevant <- (sum(dropGenes) > 0) } else containsIrrelevant <- FALSE if (!is.null(validationFunction)) validFunction <- validationFunction(table, func) counter <- counter + 1 if (counter > failureIterations) stop(paste("Could not find a transition function matching the restrictions of", "\"validationFunction\" in", failureIterations, " runs.", "Change \"validationFunction\" or increase \"failureIterations\"!")) } } return(list(input=genes,func=func, expression=getInteractionString(readableFunctions, func,geneNames[genes]))) },seq_len(length(k_i_vec)),k_i_vec,SIMPLIFY=FALSE) fixed <- sapply(interactions,function(i) { if (i$input[1] == 0) i$func[1] else -1 }) names(fixed) <- geneNames names(interactions) <- geneNames net <- list(genes=geneNames,interactions=interactions,fixed=fixed) class(net) <- "BooleanNetwork" if (simplify) net <- simplifyNetwork(net,readableFunctions) return(net) } generateCanalyzing <- function(input) { k <- length(input) table <- allcombn(2, k) - 1 canalyzingInput <- sample(1:k,size=1) res <- round(runif(min = 0, max = 1, n = 2^k)) res[table[,canalyzingInput] == sample(c(0,1),size=1)] <- sample(c(0,1), size=1) return(res) } generateNestedCanalyzing <- function(input) { k <- length(input) table <- allcombn(2, k) - 1 remainingIndices <- 1:(2^k) res <- rep(sample(c(0,1), size=1),2^k) for (canalyzingInput in sample(1:k,size=k,replace=FALSE)) { newIndices <- which(table[remainingIndices,canalyzingInput] == sample(c(0,1),size=1)) res[remainingIndices[newIndices]] <- sample(c(0,1), size=1) remainingIndices <- setdiff(remainingIndices, remainingIndices[newIndices]) } return(res) } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/R/chooseNetwork.R���������������������������������������������������������������������������0000644�0001760�0000144�00000005630�12466166263�015042� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Creates a deterministic Boolean network from a Probabilistic Boolean network # by choosing the functions specified in <functionIndices> from the # network <probabilisticNetwork>. chooseNetwork <- function(probabilisticNetwork,functionIndices,dontCareValues=NULL,readableFunctions=FALSE) { stopifnot(inherits(probabilisticNetwork,"ProbabilisticBooleanNetwork") | inherits(probabilisticNetwork,"BooleanNetworkCollection")) if (length(functionIndices) != length(probabilisticNetwork$genes)) stop("Please provide a vector of function indices for each gene!") if (inherits(probabilisticNetwork,"ProbabilisticBooleanNetwork")) { interactions <- mapply(function(interaction,index) { list(input=interaction[[index]]$input, func=interaction[[index]]$func, expression=interaction[[index]]$expression) }, probabilisticNetwork$interactions,functionIndices,SIMPLIFY=FALSE) } else { if (!is.null(dontCareValues) && length(dontCareValues) == length(probabilisticNetwork$genes) && is.null(names(dontCareValues))) names(dontCareValues) <- probabilisticNetwork$genes interactions <- mapply(function(interaction,index,gene) { func <- interaction[[index]]$func dcPos <- which(func == -1) if (length(dcPos) > 0) { if (is.null(dontCareValues) || is.null(dontCareValues[[gene]])) stop(paste("No values for the \"don't care\" ", "entries were specified for gene \"", gene,"\"!",sep="")) if (!all(dontCareValues[[gene]] %in% c(0,1))) stop(paste("Invalid values for \"don't care\" entries specified for gene \"", gene,"\"!",sep="")) if (length(dontCareValues[[gene]]) != length(dcPos)) stop(paste("There must be exactly ",length(dcPos), " value(s) for \"don't care\" entries in the function for gene \"", gene,"\"!",sep="")) func[[dcPos]] <- dontCareValues[[gene]] expression <- getInteractionString(readableFunctions, func, probabilisticNetwork$genes[interaction[[index]]$input]) } else expression <- interaction[[index]]$expression list(input=interaction[[index]]$input, func=func, expression=expression) }, probabilisticNetwork$interactions, functionIndices, probabilisticNetwork$genes,SIMPLIFY=FALSE) } res <- list(genes=probabilisticNetwork$genes, interactions=interactions, fixed=probabilisticNetwork$fixed) class(res) <- "BooleanNetwork" return(res) } ��������������������������������������������������������������������������������������������������������BoolNet/vignettes/����������������������������������������������������������������������������������0000755�0001760�0000144�00000000000�12473311652�013660� 5����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/vignettes/BoolNet_package_vignette.bib������������������������������������������������������0000644�0001760�0000144�00000012130�12473107365�021261� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@article{laehdesmaeki03, Address = {Hingham, MA, USA}, Author = {H. L\"{a}hdesm\"{a}ki and I. Shmulevich and O. Yli-Harja}, Journal = {Machine Learning}, Number = {1-2}, Pages = {147--167}, Publisher = {Kluwer Academic Publishers}, Title = {{On Learning Gene Regulatory Networks Under the Boolean Network Model}}, Volume = {52}, Year = {2003}} @article{akutsu00, Author = {Akutsu, T. and Miyano, S. and Kuhara, S.}, Journal = {Bioinformatics}, Number = {8}, Pages = {727--734}, Title = {{I}nferring qualitative relations in genetic networks and metabolic pathways}, Volume = {16}, Year = {2000}} @article{li04, Author = {F. Li and T. Long and Q. Ouyang and C. Tang}, Journal = {PNAS}, Pages = {4781-4786}, Title = {{The yeast cell-cycle network is robustly designed}}, Volume = 101, Year = 2004} @article{xiao07, Author = {Y. Xiao and E. R. Dougherty}, Journal = {Bioinformatics}, Number = {10}, Pages = {1265--1273}, Title = {{The impact of function perturbations in Boolean networks}}, Volume = {23}, Year = {2007}} @article{faure06, Author = {A. Faur{\'e} and A. Naldi and C. Chaouiya and D. Thieffry}, Journal = {Bioinformatics}, Number = {14}, Pages = {e124--e131}, Title = {{Dynamical analysis of a generic Boolean model for the control of the mammalian cell cycle}}, Volume = {22}, Year = {2006}} @book{kauffman93, Author = {S. A. Kauffman}, Publisher = {Oxford University Press}, Title = {{The Origins of Order: Self-Organization and Selection in Evolution}}, Year = {1993}} @article{kauffman69, Author = {S. A. Kauffman}, Journal = {Journal of Theoretical Biology}, Number = 3, Pages = {437--467}, Title = {{Metabolic Stability and Epigensis in Randomly Constructed Genetic Nets}}, Volume = 22, Year = 1969} @article{aldana03, Author = {M. Aldana}, Journal = {Physica D}, Number = {1}, Pages = {45--66}, Title = {{Boolean dynamics of networks with scale-free topology}}, Volume = {185}, Year = {2003}} @article{liang98, Author = {S. Liang and S. Fuhrman and R. Somogyi}, Journal = {Pacific Symposium on Biocomputing}, Pages = {18--29}, Title = {{REVEAL, a general reverse engineering algorithm for inference of genetic network architectures}}, Volume = 3, Year = {1998}} @inproceedings{aldana03_2, Author = {M. Aldana and S. Coppersmith and L. P. Kadanoff}, Booktitle = {{Perspectives and Problems in Nonlinear Science}}, Editor = {E. Kaplan and J. E. Marsden and K. R. Sreenivasan}, Publisher = {Springer}, Title = {{Boolean dynamics with random coupling}}, Year = 2003} @article{spellman98, Author = {P. T. Spellman and G. Sherlock and M. Q. Zhang and V. R. Iyer and K. Anders and M. B. Eisen and P. O. Brown and D. Botstein and B. Futcher}, Title = {{Comprehensive Identification of Cell Cycle-regulated Genes of the Yeast Saccharomyces cerevisiae by Microarray Hybridization}}, Journal = {Molecular Biology of the Cell}, Volume = 9, Number = 12, Pages = {3273--3297}, Year = 1998 } @article{kim07, Author = {S. Kim and J. Kim and K.-H. Cho}, Title = {{Inferring gene regulatory networks from temporal expression profiles under time-delay and noise}}, Journal = {Computational Biology and Chemistry}, Volume = 31, Pages = {239--245}, Year = 2007 } @article{shmulevich02, Author = {I. Shmulevich and E. R. Dougherty and S. Kim and W. Zhang}, Title = {{Probabilistic Boolean networks: a rule-based uncertainty model for gene-regulatory networks}}, Journal = {Bioinformatics}, Volume = 18, Number = 2, Pages = {261--274}, Year = 2002 } @article{longabaugh05, Author = {W. J. R. Longabaugh and E. H. Davidson and H. Bolouri}, Title = {{Computational representation of developmental genetic regulatory networks}}, Journal = {Developmental Biology}, Volume = 283, Number = 1, Pages = {1--16}, Year = 2005 } @article{batagelij98, Author = {V. Batagelij and A. Mrvar}, Journal = {Connections}, Number = 2, Pages = {47--57}, Title = {{Pajek -- Program for Large Network Analysis}}, Volume = 21, Year = 1998 } @book{cover91, Author = {T. M. Cover and J. A. Thomas}, Title = {Information Theory}, Publisher = {Wiley}, Address = {New York}, Year = {1991} } @article{kauffman04, Author = {S. Kauffman and C. Peterson and B. Samuelsson and C. Troein}, Title = {Genetic networks with canalyzing {B}oolean rules are always stable}, Journal = {PNAS}, Volume = {101}, Number = {49}, Pages = {17102–-17107}, Year = {2004} } @article{maucher11, author = {M. Maucher and B. Kracher and M. K\"uhl and H. A. Kestler}, title = {Inferring {B}oolean network structure via correlation}, journal = {Bioinformatics}, volume = {27}, number = {11}, pages = {1529--1536}, year = {2011} } @article{dubrova11, author = {E. Dubrova and M. Teslenko}, title = {A {SAT}-based algorithm for finding attractors in synchronous Boolean networks}, journal = {IEEE/ACM Transactions on Computational Biology and Bioinformatics}, volume = {8}, number = {5}, pages = {1393--1399}, year = {2011} } @article{biere08, author = {A. Biere}, title = {{PicoSAT Essentials}}, journal = {Journal on Satisfiability, Boolean Modeling and Computation}, volume = 4, pages = {75--97}, year = 2008} } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/vignettes/BoolNet_package_vignette.Snw������������������������������������������������������0000644�0001760�0000144�00000274277�12473107365�021322� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\documentclass[a4paper]{article} \SweaveOpts{keep.source=TRUE} %\VignetteIndexEntry{Detailed introduction to all major features of BoolNet} \usepackage{a4wide} \usepackage{graphicx} \usepackage{amsmath} \usepackage{hyperref} \usepackage{listings} \lstset{breaklines=true, breakautoindent=false, breakindent=0pt, columns=fullflexible,keepspaces=true, basicstyle=\small\ttfamily} \setlength{\parindent}{0em} \setlength{\parskip}{0.2em} \title{BoolNet package vignette} \author{Christoph M\"ussel, Martin Hopfensitz, Hans A. Kestler} \widowpenalty=10000 \clubpenalty=10000 \hyphenation{me-thods pro-per-ties re-pre-sen-ta-tion} \begin{document} \SweaveOpts{concordance=TRUE} \maketitle \tableofcontents \clearpage \section{Introduction} \texttt{BoolNet} is an R package that provides tools for assembling, analyzing and visualizing synchronous and asynchronous Boolean networks as well as probabilistic Boolean networks. This document gives an introduction to the usage of the software and includes examples for use cases. \texttt{BoolNet} supports four types of networks: \begin{description} \item[Synchronous Boolean networks]{ consist of a set of Boolean variables \[ X = \left\{X_1, \ldots, X_n \right\} \] and a set of transition functions \[ F=\left\{ f_{1},\ldots,f_{n}\right\}, \] one for each variable. These transition functions map an input of the Boolean variables in $X$ to a Boolean value ($0$ or $1$). We call a Boolean vector $\mathbf{x}(t) = \left(x_1(t), \ldots, x_n(t) \right)$ the {\em state} of the network at time $t$. Then, the next state of the network $\mathbf{x}(t)$ is calculated by applying {\em all} transition functions $f_i(\mathbf{x}(t-1))$. In a biological context, genes can be modeled as Boolean variables ({\em active/expressed} or {\em inactive/not expressed}), and the transition functions model the dependencies among these genes. In the synchronous model, the assumption is that all genes are updated at the same time. This simplification facilitates the analysis of the networks.} \item[Asynchronous Boolean networks]{ have the same structure as synchronous Boolean networks. Yet, at each point of time $t$, only {\em one} of the transition functions $f_i \in F$ is chosen at random, and the corresponding Boolean variable is updated. This corresponds to the assumption that in a genetic network, gene expression levels are likely to change at different points of time. In the most common model, the gene to be updated is chosen uniformly among all genes. Moreover, \texttt{BoolNet} supports specifying non-uniform update probabilities for the genes.} \item[Probabilistic Boolean networks (PBN)]{ allow for specifying more than one transition function per variable/gene. Each of these functions has a probability to be chosen, where the probabilities of all functions for one variable sum up to 1. Formally \[ F=\left\{\left\{\left(f_{11}, p_{11}\right), \ldots, \left(f_{1k_1}, p_{1k_1}\right)\right\}, \ldots, \left\{\left(f_{n1}, p_{n1}\right), \ldots, \left(f_{nk_n}, p_{nk_n}\right)\right\}\right\} \] where $k_i$ is the number of alternative transition functions for variable $i$, and $p_{ij}$ is the probability that function $j$ is chosen for variable $i$. A state transition is performed by selecting one function for each gene based on the probabilities and applying the chosen functions synchronously.} \item[Temporal Boolean networks]{ are Boolean networks that incorporate temporal predicates and discrete time delays. Here, the next state $x(t)$ may not only depend on $x(t-1)$, but can depend on any predecessor state $x(t - \Delta), \Delta \in \{1, 2, \ldots\}$. Furthermore, $x(t)$ may also directly depend on the time step $t$ itself. } \end{description} In \texttt{BoolNet}, there are different structure classes representing these network types: \begin{description} \item[\emph{BooleanNetwork} objects]{ contain synchronous and asynchronous Boolean networks. Here, the transition functions are internally represented as truth tables.} \item[\emph{ProbabilisticBooleanNetwork} objects]{ encode Probabilistic Boolean networks. They use a truth table representation as well.} \item[\emph{SymbolicBooleanNetwork} objects]{ represent synchronous and temporal Boolean networks. They encode Boolean functions in a symbolic form, i.e. as expression trees.} \end{description} As we have seen, the networks are represented in two different forms: The truth table representation, which basically maps inputs to the corresponding output values, is usually the most efficient representation for synchronous, asynchronous and probabilistic networks and uses a very fast simulator. However, this representation grows exponentially with the number of inputs and is therefore inappropriate for networks with a high number of inputs. This is particularly the case for temporal networks, where each unique time delay for a gene encodes an input. Hence, temporal networks are represented by directly encoding the corresponding Boolean expressions and use a different simulator. As synchronous Boolean networks are a special case of temporal networks (with all time delays being 1), these networks can also be represented as \emph{SymbolicBooleanNetwork} objects. The package provides several methods of constructing networks: Networks can be loaded from files in which human experts describe the dependencies between the genes. Furthermore, they can be reconstructed from time series of gene expression measurements. It is also possible to generate random networks. This can be helpful for the identification of distinct properties of biological networks by comparison to random structures. The different methods of assembling networks are described in Section~\ref{sec:assemblingnetworks}. In Section~\ref{sec:networkanalysis}, tools for the analysis and visualization of network properties are introduced. For synchronous, asynchronous and temporal Boolean networks, the most important tool is the identification of attractors. Attractors are cycles of states and are assumed to be associated with the stable states of cell function. Another possibility of identifying relevant states is the included Markov chain simulation. This method is particularly suited for probabilistic networks and calculates the probability that a state is reached after a certain number of iterations. To test the robustness of structural properties of the networks to noise and mismeasurements, the software also includes extensive support for perturbing networks. In this way, it is possible to test these properties in noisy copies of a biological network. In Section~\ref{sec:importexport}, the interaction of \texttt{BoolNet} with related software is described. In particular, the import from and export to SBML is discussed. Also, the necessary steps to import networks import networks from BioTapestry and to export networks to Pajek are outlined. For the examples in the following sections, we assume that the \texttt{BoolNet} package has been properly installed into the R environment. This can be done by typing <<eval=FALSE>>= install.packages("BoolNet") @ into the R console or by the corresponding menu entries in an R GUI. For some of the plots, the \texttt{igraph} package is required and must be installed in your R environment as well. This is analogous to installing \texttt{BoolNet}. For the BioTapestry and SBML import, the \texttt{XML} package must be installed. After installation, the \texttt{BoolNet} package can be loaded via <<>>= library(BoolNet) @ \section{Assembling networks}\label{sec:assemblingnetworks} \subsection{Assembling a network from expert knowledge} A major advantage of Boolean networks is the fact that natural-language statements can easily be transferred into this representation. This allows researchers for building Boolean networks entirely from expert knowledge, for example by collecting statements on gene dependencies from literature and expressing them as Boolean rules. \texttt{BoolNet} is able to read in networks consisting of such rule sets in a standardized text file format. In such a file, each line consists of a target gene and an update rule, usually separated by a comma. Optionally, it is also possible to add a probability for the rule if the file describes a probabilistic network. The first line of such a file is a header \begin{samepage} \begin{verbatim} targets, factors \end{verbatim} or \begin{verbatim} targets, factors, probabilities \end{verbatim} \end{samepage} To illustrate the process of transforming natural-language statements into Boolean rules, we take a look at the mammalian cell cycle network introduced by Faur\'e et al. \cite{faure06}. In Table 1 of this paper, the authors list natural-language statements of gene dependencies and the corresponding Boolean expressions. The following rules are taken from this table. For gene CycD, Faur\'e et al. state: \begin{quote} \textit{CycD is an input, considered as constant.} \end{quote} Transforming this into a Boolean rule is rather simple: CycD does not change its value, which means that its value after a transition only depends on its previous value. Thus, the transition rule is \begin{verbatim} CycD, CycD \end{verbatim} Gene Rb has a more complex description: \begin{quote} \textit{Rb is expressed in the absence of the cyclins, which inhibit it by phosphorylation [...]; it can be expressed in the presence of CycE or CycA if their inhibitory activity is blocked by p27.} \end{quote} As a general rule, inhibition can be represented by a Boolean negation. In the \texttt{BoolNet} file format, a negation is expressed by the \texttt{!} character. The referenced cyclins comprise the genes CycA, CycB, CycD, and CycE. If {\em all} these genes are absent, Rb is expressed -- i.e. if CycA is not expressed {\em and} CycB is not expressed {\em and} CycD is not expressed {\em and} CycE is not expressed. A logical AND is embodied by the \texttt{\&} character. Consequently, the first part of the rule is \begin{verbatim} ! CycA & ! CycB & ! CycD & ! CycE \end{verbatim} In combination with the above statement, the fact that Rb can be expressed in the presence of CycE and CycA if p27 is active means that CycB and CycD must not be active. Thus, the second part of the rule is \begin{verbatim} p27 & ! CycB & ! CycD \end{verbatim} This statement is an exception (or alternative) to the first statement; this can be expressed as a logical OR, for which the \texttt{|} character is used. The complete rule for gene Rb is thus \begin{verbatim} Rb, (! CycA & ! CycB & ! CycD & ! CycE) | (p27 & ! CycB & ! CycD) \end{verbatim} After processing all genes in the table in this way, we get the following network description: \begin{samepage} \begin{footnotesize} \begin{verbatim} targets, factors CycD, CycD Rb, (! CycA & ! CycB & ! CycD & ! CycE) | (p27 & ! CycB & ! CycD) E2F, (! Rb & ! CycA & ! CycB) | (p27 & ! Rb & ! CycB) CycE, (E2F & ! Rb) CycA, (E2F & ! Rb & ! Cdc20 & ! (Cdh1 & UbcH10)) | (CycA & ! Rb & ! Cdc20 & ! (Cdh1 & UbcH10)) p27, (! CycD & ! CycE & ! CycA & ! CycB) | (p27 & ! (CycE & CycA) & ! CycB &! CycD) Cdc20, CycB Cdh1,(! CycA & ! CycB) | (Cdc20) | (p27 & ! CycB) UbcH10, ! Cdh1 | (Cdh1 & UbcH10 & (Cdc20 | CycA | CycB)) CycB, ! Cdc20 & ! Cdh1 \end{verbatim} \end{footnotesize} \end{samepage} Now save this description to a file ``cellcycle.txt'' in your R working directory. The network can be loaded via <<eval=FALSE>>= cellcycle <- loadNetwork("cellcycle.txt") @ The result is an object of class \emph{BooleanNetwork} containing a truth table representation of the network. The same network is also included in \texttt{BoolNet} as an example and can be accessed via <<>>= data(cellcycle) @ \texttt{BoolNet} also provides several convenience operators that can be used to express complex Boolean functions in a compact way, e.g. \begin{itemize} \item \texttt{maj(a, b, ...)} is 1 if the majority of its operands are 1. Similarly, \texttt{sumgt(a, b, ..., N)} is 1 if more than $N$ operands are 1, \texttt{sumlt(a, b, ..., N)} is 1 if less than $N$ operands are~1, and \texttt{sumis(a, b, ..., N)} is 1 if exactly $N$ operands are 1. \item \texttt{all(a, b, ...)} is 1 if all its operands are 1 (i.e. a logical AND), and \texttt{any(a, b, ...)} is~1 if at least one of its operands is 1 (i.e. a logical OR). \end{itemize} The cell cycle network is a classical Boolean network, where each transition function only depends on the previous state of the network. E.g., \verb+CycB, ! Cdc20 & ! Cdh1+ can be written formally as $CycB(t) = \neg Cdc20(t-1) \wedge \neg Cdh1(t-1)$. As already discussed before, \texttt{BoolNet} also incorporates several temporal extensions. For example, a transition function can also depend on the states of genes at earlier time points: \begin{verbatim} a, b[-3] & b[-2] & b \end{verbatim} is 1 if b has been active in the previous three time steps. The operators described above can also incorporate time ranges. The previous statement can be written in a more compact way using the \texttt{all} operator: \begin{verbatim} a, all[d=-3..-1](b[d]) \end{verbatim} This defines a time delay variable \texttt{d} that can be used for time specifications inside the operator. It can also be used in arithmetic operations. E.g., \begin{verbatim} a, all[d=-3..-1](b[d] & c[d-1]) \end{verbatim} specifies that a is active if b has been active in the previous three time steps and c has been active at time $t-4$, $t-3$ and $t-2$. Apart from relative time specifications, the \texttt{BoolNet} network language also incorporates predicates that depend on the absolute time, i.e. the number of time steps that have elapsed since the initial state. \begin{samepage} For example, \begin{verbatim} a, timeis(3) \end{verbatim} specifies that \texttt{a} is active at time step 3 and inactive at all other time steps. Similarly, the predicates \texttt{timelt} and \texttt{timegt} evaluate to 1 before and after the specified time point respectively. \end{samepage} As the above examples do not cover all possibilities of the network description language, a full language specification is provided in Section~\ref{sec:appendix}. For temporal networks, \texttt{BoolNet} uses a special symbolic simulator that represents the functions as expression trees, whereas the standard simulator is based on a truth table representation. These simulators are discussed in Section~\ref{sec:networkanalysis}. As synchronous Boolean networks are a special case of temporal networks, they can also be simulated with the symbolic simulator. When a network is loaded from a file using \texttt{loadNetwork()}, the user can specify the parameter \texttt{symbolic=TRUE} to load it in form of a \emph{SymbolicBooleanNetwork} object instead of a \emph{BooleanNetwork} object. The same parameter is also available for the import functions discussed in Section~\ref{sec:importexport}. Temporal networks can only be loaded with \texttt{symbolic=TRUE}, as \texttt{BoolNet} cannot represent them as truth tables. \begin{sloppypar} As many network generation and modification routines (such as random network generation and network reconstruction that are discussed in the following sections) internally use the truth table representation, there are conversion routines \texttt{truthTableToSymbolic()} and \texttt{symbolicToTruthTable()} that convert synchronous Boolean networks of class \emph{BooleanNetwork} in a truth table representation to networks of class \emph{SymbolicBooleanNetwork} in a symbolic representation and vice versa. For more details, please refer to the manual. \end{sloppypar} \subsection{Reconstructing a network from time series} An entirely different approach of assembling a network is to infer rules from series of expression measurements of the involved genes over time. For example, microarray experiments can be conducted at different points of time to cover the expression levels of different cell states. To reconstruct networks from such data, \texttt{BoolNet} includes two reconstruction algorithms for synchronous Boolean networks, Best-Fit Extension~\cite{laehdesmaeki03} and REVEAL \cite{liang98}. REVEAL requires the inferred functions to match the input time series perfectly, hence it is not always able to reconstruct networks in the presence of noisy and inconsistent measurements. Best-Fit Extension retrieves a set of functions with minimum error on the input and is thus suited for noisy data. In the following, we introduce a tool chain for the reconstruction of a Probabilistic Boolean Network from time series using Best-Fit extension. Microarray measurements are usually represented as matrices of real-valued numbers which, for example, quantify the expression levels of genes. \texttt{BoolNet} includes a real-valued time series of gene measurements from a project to analyze the yeast cell cycle \cite{spellman98} which can be loaded using <<>>= data(yeastTimeSeries) @ This data contains four preselected genes and a series of 14 measurements for each of these genes. \begin{sloppypar} In a first step, the real-valued dataset has to be converted to binary data as required by the reconstruction algorithm. \texttt{BoolNet} offers several binarization algorithms in the function \texttt{binarizeTimeSeries()}. We here employ the default method which is based on $k$-means clustering (with $k=2$ for active and inactive): \end{sloppypar} <<>>= binSeries <- binarizeTimeSeries(yeastTimeSeries) @ The returned structure in \texttt{binSeries} has an element \texttt{\$binarizedMeasurements} containing the binary time series, and, depending on the chosen binarization method, some other elements describing parameters of the binarization. To reconstruct the network from this data, we call the Best-Fit Extension algorithm: <<>>= net <- reconstructNetwork(binSeries$binarizedMeasurements, method="bestfit", maxK=4) @ Here, \texttt{maxK} is the maximum number of input genes for a gene examined by the algorithm. The higher this number, the higher is the runtime and memory consumption of the reconstruction. \begin{samepage} We can now take a look at the network using <<>>= net @ \end{samepage} \begin{sloppypar} The dependencies among the genes in the network can be visualized using the \texttt{plotNetworkWiring()} function. In this graph, each gene corresponds to a vertex, and the inputs of transition functions correspond to edges. \end{sloppypar} <<echo=FALSE,results=hide>>= pdf("wiring1.pdf") par(mar = c(1, 1, 1, 1)) set.seed(333) plotNetworkWiring(net) dev.off() @ <<eval=FALSE>>= plotNetworkWiring(net) @ plots a graph similar to that at the top of Figure~\ref{fig:wiring}. To use this function, you must install the \texttt{igraph} package. \begin{figure}[p] \centering \includegraphics[width=0.5\linewidth]{wiring1} \includegraphics[width=0.5\linewidth]{wiring2} \caption{The wiring graph of the reconstructed network without prior knowledge (top) and with the inclusion of prior knowledge (bottom). Each node of the graph represents one gene, and each arrow represents a gene dependency.} \label{fig:wiring} \end{figure} A network that involved the same genes was examined by Kim et al. \cite{kim07}. When comparing the wiring graph of our reconstructed network with the reference network presented in Figure~2 of this paper, one observes a very high similarity between the two networks. However, the reconstructed network comprises too many links for the gene Sic1: The reference network does not contain a self-regulation of Sic1 or regulation of Sic1 by Fkh2. If it is known in advance that these regulations are not plausible, such prior knowledge can be supplied to the reconstruction algorithm: <<>>= net <- reconstructNetwork(binSeries$binarizedMeasurements, method="bestfit", maxK=4, excludedDependencies = list("Sic1" = c("Sic1", "Fkh2"))) @ <<echo=FALSE,results=hide>>= pdf("wiring2.pdf") par(mar = c(1, 1, 1, 1)) set.seed(442) plotNetworkWiring(net) dev.off() @ The wiring of the reconstruction with prior knowledge is shown at the bottom of Figure~\ref{fig:wiring}. We can see that the two false links are now eliminated. Similar to \texttt{excludedDependencies}, there is also a parameter \texttt{requiredDependencies} that specifies dependencies that must be included in the network. When \texttt{reconstructNetwork()} discovers multiple functions for a gene with the minimum error on the input data, it includes all of these functions as alternative functions with equal probability. Consequently, the function returns a \texttt{ProbabilisticBooleanNetwork} structure. If you would like to obtain a \texttt{BooleanNetwork} object with only one function per gene from a probabilistic network, you can extract such a network by telling the software which of the functions you would like to use. This can be done by specifying the indices of the functions to extract: <<>>= net <- reconstructNetwork(binSeries$binarizedMeasurements, method="bestfit", maxK=4) singleNet <- chooseNetwork(net, c(1,2,3,2)) @ The result is a Boolean network that is created by extracting the first function of gene Fkh2, the second function of genes Swi5 and Clb1, and the third function of gene Sic1 from the above probabilistic network: <<>>= singleNet @ \begin{sloppypar} \texttt{BoolNet} also supports the generation of artificial time series from existing networks: The \texttt{generateTimeSeries()} function generates a set of time series from a network using random start states and optionally adds Gaussian noise. \end{sloppypar} <<echo=FALSE,results=hide>>= set.seed(3176) @ <<>>= series <- generateTimeSeries(cellcycle, numSeries=100, numMeasurements=10, noiseLevel=0.1) @ generates a list of 100 time series by calculating 10 consecutive transitions from 100 randomly chosen network states in the mammalian cell cycle network. The series are subject to Gaussian noise with a standard deviation of 0.1, such that the result is a list of real-valued matrices. We can now binarize these simulated measurements and try to reconstruct the original network: <<>>= binSeries <- binarizeTimeSeries(series, method="kmeans") net <- reconstructNetwork(binSeries$binarizedMeasurements, method="bestfit") net @ Obviously, the number of generated time series is still to small to reconstruct the network unambiguously. However, the result comes close to the original network. We see that the functions of the network are not fully specified: At some positions, there are asterisks (\texttt{*}) denoting a \emph{don't care} value. This means that functions with a 0 and a 1 at this position match the time series equally well. That is, a partially defined function with $m$ asterisks corresponds to $2^m$ fully defined Boolean functions. It is also possible to generate these fully defined functions instead of the partially defined function by setting the parameter \texttt{returnPBN} to true (which was the behaviour prior to \texttt{BoolNet} version 2.0). For many \emph{don't care} values, this may consume a high amount of memory and computation time. \texttt{generateTimeSeries()} can also generate time series with artificial knock-outs and overexpressions: <<echo=FALSE,results=hide>>= set.seed(4463) @ <<>>= series <- generateTimeSeries(cellcycle, numSeries=10, numMeasurements=10, perturbations=1, noiseLevel=0.1) @ specifies that each generated time series is generated from a network where one randomly selected gene is artificially knocked down (constantly 0) or overexpressed (constantly 1). These perturbations are returned in an additional element \texttt{perturbations}. \begin{samepage} <<<>>= series$perturbations @ \end{samepage} Here, each column corresponds to the perturbations applied in one series. A value of 1 denotes an overexpression, a value of 0 denotes a knock-out, and an N/A value means that no perturbation was applied to this gene. The \texttt{reconstructNetwork()} function also supports the reconstruction from such perturbation experiments if it is known which genes were perturbed. First, we store the series and the perturbation matrix in separate variables and binarize the data as before: <<>>= perturbations <- series$perturbations series$perturbations <- NULL binSeries <- binarizeTimeSeries(series, method="kmeans") @ Now, we can reconstruct the network by specifying the \texttt{perturbations} parameter: <<>>= net <- reconstructNetwork(binSeries$binarizedMeasurements, method="bestfit", perturbations=perturbations) net @ As we generated only 10 series in this case, the reconstructed network is much more incomplete than in the previous reconstruction. In biological settings, perturbation experiments are probably one of the most frequent ways of exploring the behaviour of a regulatory network, as it is much easier to obtain various different responses by applying perturbations than by just measuring the wild type behaviour. \subsection{Creating random networks} To study structural properties of Boolean networks and to determine the specific properties of biological networks in comparison to arbitrary networks, it is often desirable to generate artificial networks. \texttt{BoolNet} comprises a facility for the generation of random $N$-$K$ networks \cite{kauffman69, kauffman93}. In the standard $N$-$K$ networks, $N$ is the total number of genes, and $K$ is the number of input genes for each gene transition function. Such a network can be generated using <<>>= net <- generateRandomNKNetwork(n=10, k=3) @ This creates a network with 10 genes, each of which has a transition function that depends on 3 genes and whose output is generated uniformly at random. Similarly, one can also specify different numbers of input genes for each gene: <<>>= net <- generateRandomNKNetwork(n=10, k=c(1,2,3,1,3,2,3,2,1,1)) @ \texttt{BoolNet} does not only support this standard case, but allows for different methods of choosing the numbers of input genes (parameter \texttt{topology}), the input genes themselves (parameter \texttt{linkage}), and the transition functions (parameter \texttt{functionGeneration}). In the following, some examples are presented. The command <<>>= net <- generateRandomNKNetwork(n=20, k=20, topology="scale_free") @ determines the numbers of input genes by drawing values from the scale-free Zeta distribution \cite{aldana03}. According to this distribution, most transition functions will have a small number of input genes, but a few transition functions may depend on a high number of genes. The shape of the Zeta distribution can be customized using an additional parameter \texttt{gamma}, which potentially increases the number of input genes when chosen small and vice versa. <<>>= net <- generateRandomNKNetwork(n=10, k=3, linkage="lattice") @ creates a network in which the transition functions of the genes depend on a choice of genes with adjacent indices \cite{aldana03_2}. This leads to networks with highly interdependent genes. It is also possible to influence the truth tables of the functions in several ways. The parameter \texttt{zeroBias} changes the ratio of 1 and 0 returned by the functions: <<>>= net <- generateRandomNKNetwork(n=10, k=3, functionGeneration="biased", zeroBias=0.75) @ generates a network in which the outcome of a transition function is 0 for around 75\% of the inputs. A more intricate way of influencing the function generation is the specification of generation functions. Generation functions explicitly generate functions according to a specific function class. \emph{Canalyzing functions} are assumed to occur frequently in biological systems~\cite{kauffman04}. A canalyzing function has the property that one input can determine the output value on its own, i.e. if this input is either active or inactive, the output of the function is always the same. \emph{Nested canalyzing functions} are a recursive definition of canalyzing functions, where the part of the function that does not depend on the canalyzing input is a canalyzing function for another input. Such functions can be generated using the built-in generation functions \texttt{generateCanalyzing()} and \texttt{generateNestedCanalyzing()}: <<>>= net1 <- generateRandomNKNetwork(n=10, k=3, functionGeneration=generateCanalyzing, zeroBias=0.75) net2 <- generateRandomNKNetwork(n=10, k=3, functionGeneration=generateNestedCanalyzing, zeroBias=0.75) @ It is also possible to define own generation functions: A generation function receives a vector \texttt{input} of input gene indices as a parameter and returns a truth table result column with \verb+2^length(input)+ values representing the function. If no explicit generation scheme is known for the function class of interest, validation functions can be used instead of generation functions. Validation functions verify whether randomly generated functions belong to a specific function class and reject invalid functions. Naturally, this is much less efficient than generating appropriate functions directly. An example is the generation of monotone functions, which are also thought to be biologically plausible. These function account for the assumption that a transcription factor usually either activates or inhibits a specific target gene, but does not change the type of regulation depending on other factors~\cite{maucher11}. We can specify a simple validation function that checks whether a Boolean function is monotone: \begin{samepage} <<>>= isMonotone <- function(input, func) { for (i in seq_len(ncol(input))) # check each input gene { groupResults <- split(func, input[,i]) if (any(groupResults[[1]] < groupResults[[2]]) && any(groupResults[[1]] > groupResults[[2]])) # the function is not monotone return(FALSE) } return(TRUE) } @ \end{samepage} \begin{sloppypar} Here, \texttt{input} is a matrix containing the input part of the transition table, and \texttt{func} is the output of the Boolean function. In a monotone function, the values of the target may only change in one direction when switching one input. Hence, a function for which switching the value of an input gene sometimes switches the target from active to inactive, but also sometimes switches it from inactive to active is not monotone. This is validated by comparing the two groups of transition table entries for which the current input is active and inactive respectively. If a validation function is supplied to \texttt{generateRandomNKNetwork()}, the generator generates Boolean functions until either the validation function returns \texttt{TRUE} or the maximum number of iterations (specified by the parameter \texttt{failureIterations}) is reached, in which case it fails. \end{sloppypar} <<>>= net <- generateRandomNKNetwork(n=10, k=3, validationFunction="isMonotone", failureIterations=1000) @ creates a network with 10 genes in which all functions have 3 inputs, of which at least one is canalyzing. By default, \texttt{generateRandomNKNetwork()} creates functions that cannot be simplified, i.e. that do not contain any genes that are irrelevant for the outcome of the function. If desired, this behaviour can be changed by setting \texttt{noIrrelevantGenes} to \texttt{FALSE}. The presented parameters can be combined, and there are further options and parameters, so that a broad variety of networks with different structural properties can be generated. For a full reference of the possible parameters, please refer to the manual. \subsection{Knock-out and overexpression of genes} \texttt{BoolNet} allows for temporarily knocking out and overexpressing genes in a network without touching the transition functions. This means that genes can be set to a fixed value, and in any calculation on the network, this fixed value is taken instead of the value of the corresponding transition function. Knocked-out and overexpressed genes speed up the analysis of the network, as they can be ignored in many calculations. For example, to knock out CycD in the mammalian cell cycle network, we call <<>>= data(cellcycle) knockedOut <- fixGenes(cellcycle, "CycD", 0) @ or alternatively use the gene index <<>>= knockedOut <- fixGenes(cellcycle, 1, 0) @ This sets the gene constantly to 0. To over-express the gene (i.e. to fix it to 1), the corresponding call is <<>>= overExpressed <- fixGenes(cellcycle, "CycD", 1) @ The command <<>>= originalNet <- fixGenes(knockedOut, "CycD", -1) @ reactivates the gene (for both knock and overexpression) and resets the network to its original state. The function also accepts multiple genes in a single call, such as <<>>= newNet <- fixGenes(cellcycle, c("CycD","CycE"), c(0,1)) @ which knocks out CycD and overexpresses CycE. \section{Network analysis}\label{sec:networkanalysis} \subsection{Simulation of state transitions} To simulate a state transition and identify successor states of a given state, \texttt{BoolNet} includes the function \texttt{stateTransition()}. The function supports transitions for all four types of networks. The following code performs a synchronous state transition for the state in which all genes are set to 1 on the mammalian cell cycle network: <<>>= data(cellcycle) stateTransition(cellcycle, rep(1,10)) @ To calculate all state transitions in a synchronous network until an attractor is reached, you can call <<>>= path <- getPathToAttractor(cellcycle, rep(0,10)) path @ The returned matrix consists of the subsequent states until an attractor is reached. Depending on the optional parameter \texttt{includeAttractorStates}, the sequence comprises all attractor states, only the first attractor state or none of the attractor states. A sequence can be visualized by plotting a table of state changes: <<echo=FALSE,results=hide>>= pdf("sequence.pdf") par(mar = c(1, 4, 2, 1)) plotSequence(sequence=path) dev.off() @ <<eval=FALSE>>= plotSequence(sequence=path) @ \begin{figure}[t] \centering \includegraphics[width=0.6\linewidth]{sequence} \caption{Visualization of a sequence of states in the mammalian cell cycle network. The columns of the table represent consecutive states of the time series. The last state is the steady-state attractor of the network.} \label{fig:sequence} \end{figure} The result is depicted in Figure~\ref{fig:sequence}. \texttt{plotSequence()} also includes a shortcut that calculates the sequence directly if a network and a start state are supplied. It also provides an alternative way of visualizing the sequence as a state transition by setting \texttt{mode="graph"}. The function <<eval=FALSE>>= sequenceToLaTeX(sequence=path, file="sequence.tex") @ creates a \LaTeX\ table similar to \texttt{plotSequence()} function document. In many cases, start states are defined by a set of active genes. Instead of supplying a full state vector, one can also supply only these active genes using the \texttt{generateState()} function. <<>>= startState <- generateState(cellcycle, specs=c("CycD"=1,"CycA"=1)) stateTransition(cellcycle,startState) @ \begin{sloppypar} calculates a state transition starting from a state where only the genes \emph{CycD} and \emph{CycA} are active, while all other genes are inactive (which is controlled by the \texttt{default} parameter of \texttt{generateState()}). \end{sloppypar} For temporal Boolean networks (objects of class \emph{SymbolicBooleanNetworks}), the above functions can be utilized mostly in the same way. We demonstrate this using a small temporal network example of the IGF (Insulin-like growth receptor) pathway that is included in the package and can be loaded via <<>>= data(igf) @ The model illustrates the activation and feedback inhibition of the PI3K-Akt-mTOR signalling cascade through IGF and IRS. A state transition from the initial state in which the trigger of the pathway -- IGF -- is active, can be performed using <<>>= startState <- generateState(igf, specs=c("IGF"=1)) stateTransition(igf, startState) @ The IGF network incorporates time delays of up to 3. Therefore, the last three states have to be known to calculate a successor state. If only a single state is supplied -- as above -- the function assumes that the state was the same before. This can be seen when calculating the sequence to the attractor using <<>>= getPathToAttractor(network=igf,state=startState) @ Here, the states at $t=-2, \ldots 0$ are the same as the generated start state. If it is required to specify multiple predecessor states here, a matrix of states can be supplied instead of a vector. E.g., <<>>= startState <- generateState(igf, specs=list("IGF"=c(0,0,1))) startState @ specifies that the first two states ($t=-2, t=-1$) should have all genes inactive, while IGF is activated only at $t=0$. This time, we plot the sequence instead of printing it: \begin{figure}[bt] \centering \includegraphics[width=0.6\linewidth]{sequence_igf} \caption{Visualization of a sequence of states in the IGF network. The columns of the table represent consecutive states of the time series. After activation of IGF, the attractor consisting of 14 states is entered immediately. This attractor represents the activation and inactivation of the PI3K-Akt-mTOR signalling cascade through IGF and IRS.} \label{fig:sequence_igf} \end{figure} <<echo=FALSE,results=hide>>= pdf("sequence_igf.pdf") par(mar = c(1, 9, 2, 1)) plotSequence(network=igf, startState=startState) dev.off() @ <<eval=FALSE>>= plotSequence(network=igf, startState=startState) @ The result is depicted in Figure~\ref{fig:sequence_igf}. \texttt{stateTransition()} can also perform asynchronous updates. A random asynchronous transition is performed using <<echo=FALSE>>= set.seed(54321) @ <<>>= stateTransition(cellcycle, rep(1,10), type="asynchronous") @ In this case, the fifth gene, CycA, was chosen at uniformly at random and updated. \begin{samepage} We can also specify non-uniform probabilities for the genes, for example <<echo=FALSE>>= set.seed(4321) @ <<>>= stateTransition(cellcycle, rep(1,10), type="asynchronous", geneProbabilities=c(0.05,0.05,0.2,0.3,0.05,0.05,0.05,0.05,0.1,0.1)) @ This obviously increases probabilities for the genes 3 and 4 (E2F and CycE) to be chosen. In this case, CycE was chosen for the update. \end{samepage} \enlargethispage{0.5cm} Sometimes you do not want a random update at all, but would like to specify which gene should be chosen for the update. This is possible via <<>>= stateTransition(cellcycle, rep(1,10), type="asynchronous", chosenGene="CycE") @ In probabilistic Boolean networks, a state transition is performed by choosing one of the alternative functions for each gene and applying this set of functions to the current state. The following performs a state transition with a randomly chosen set of functions on the artificial probabilistic Boolean network taken from \cite{shmulevich02} with 3 genes, starting from state (0,1,1): <<echo=FALSE>>= set.seed(432) @ <<>>= data(examplePBN) stateTransition(examplePBN, c(0,1,1), type="probabilistic") @ You may get a different result, as the functions are chosen randomly according to the probabilities stored in the network. If you would like to execute a specific set of transition functions, you can supply this in an additional parameter: <<>>= stateTransition(examplePBN, c(0,1,1), type="probabilistic", chosenFunctions=c(2,1,2)) @ This call uses the second function for gene x1 and x3 and the first function for gene x2. \subsection{Identification of attractors} Attractors are stable cycles of states in a Boolean network. As they comprise the states in which the network resides most of the time, attractors in models of gene-regulatory networks are expected to be linked to phenotypes \cite{kauffman93,li04}. Transitions from all states in a Boolean network eventually lead to an attractor, as the number of states in a network is finite. All states that lead to a certain attractor form its {\em basin of attraction}. \texttt{BoolNet} is able to identify attractors in synchronous and asynchronous Boolean networks. There are three types of attractors in these networks: \begin{description} \item[Simple attractors]{occur in synchronous and temporal Boolean networks and consist of a set of states whose synchronous transitions form a cycle.} \item[Complex or loose attractors]{are the counterpart of simple attractors in asynchronous networks. As there is usually more than one possible transition for each state in an asynchronous network, a complex attractor is formed by two or more overlapping loops. Precisely, a complex attractor is a set of states in which all asynchronous state transitions lead to another state in the set, and a state in the set can be reached from all other states in the set.} \item[Steady-state attractors]{are attractors that consist of only one state. All transitions from this state result in the state itself. These attractors are the same both for synchronous and asynchronous update of a network. Steady states are a special case of both simple attractors and complex attractors.} \end{description} The \texttt{getAttractors()} function incorporates several methods for the identification of attractors in synchronous and asynchronous networks. We present these methods using the included mammalian cell cycle network as an example. This network has one steady-state attractor, one simple synchronous attractor consisting of 7 states, and one complex asynchronous attractor with 112 states (see \cite{faure06}). We first demonstrate the use of exhaustive synchronous state space search. This means that the software starts from all possible states of the network and performs synchronous state transitions until a simple or steady-state attractor is reached. \pagebreak[4] <<eval=FALSE>>= data(cellcycle) attr <- getAttractors(cellcycle) attr @ \begin{lstlisting}[linewidth=.9\linewidth] <<echo=FALSE,results=tex>>= attr <- getAttractors(cellcycle) attr @ \end{lstlisting} Typing \texttt{attr} calls a special print method that presents the attractor in a human-readable way. Here, a state in an attractor is represented by a binary vector, where each entry of the vector codes for one gene. An alternative is to print only the names of the active genes (i.e., the genes that are set to 1) instead of the full vector by calling the \texttt{print()} method explicitly with a changed parameter: <<eval=FALSE>>= print(attr, activeOnly=TRUE) @ \begin{lstlisting}[linewidth=.9\linewidth] <<echo=FALSE,results=tex>>= print(attr, activeOnly=TRUE) @ \end{lstlisting} We can see that the search identified both synchronous attractors. \begin{sloppypar} The \texttt{AttractorInfo} structure stores the attractors in an encoded form. The function \texttt{getAttractorSequence()} can be used to obtain the sequence of states that constitute a specific synchronous attractor as a table: \end{sloppypar} <<>>= getAttractorSequence(attr, 2) @ retrieves the states that make up the second (i.e., the 7-state attractor) as a data frame with the genes in the columns and the successive states in the rows. \begin{figure}[t] \centering \includegraphics[width=0.65\linewidth]{attractor1} \caption{Visualization of the state changes in an attractor. The columns of the table represent consecutive states of the attractor. On top, the percentage of states leading to the attractor is supplied.} \label{fig:attractor1} \end{figure} Synchronous attractors can also be visualized by plotting a table of changes of gene values in the states of the attractor: <<eval=FALSE>>= plotAttractors(attr, subset=2) @ <<echo=FALSE,results=hide>>= pdf("attractor1.pdf") par(mar=c(1,5,1,1)) plotAttractors(attr, subset=2) dev.off() @ plots the state changes of the simple attractor with 7 states, as depicted in Figure~\ref{fig:attractor1}. Similarly, <<eval=FALSE>>= attractorsToLaTeX(attr, subset=2, file="attractors.tex") @ exports the same state table to a \LaTeX\ document. The advantage of the exhaustive search method is that apart from the attractors themselves, the complete transition table is calculated and stored in the return value. This table comprises information that is used by a number of analysis methods described below. You can extract the transition table in a data frame and print it out using <<eval=FALSE>>= tt <- getTransitionTable(attr) tt @ \begin{verbatim} State Next state Attr. basin # trans. to attr. 0000000000 => 0110010111 1 4 [...] 1111111111 => 1000001110 2 1 Genes are encoded in the following order: CycD Rb E2F CycE CycA p27 Cdc20 Cdh1 UbcH10 CycB \end{verbatim} In the printed table, the first column denotes the initial state, the second column contains the state after the transition, the first column contains the number of the attractor that is finally reached from this state, and the fourth column lists the number of state transitions required to attain this attractor. A table of the same structure is returned by <<eval=FALSE>>= getBasinOfAttraction(attr, 1) @ which extracts all states from the transition table that belong to the basin of attraction of attractor one (i.e., whose attractor number in column 3 is 1). If you are interested in information on a single state (here: the state with all genes set to 1), you can type <<eval=FALSE>>= getStateSummary(attr, c(1,1,1,1,1,1,1,1,1,1)) @ \begin{verbatim} State Next state Attr. basin # trans. to attr. 1111111111 => 1000001110 2 1 Genes are encoded in the following order: CycD Rb E2F CycE CycA p27 Cdc20 Cdh1 UbcH10 CycB \end{verbatim} The visualization function \texttt{getStateGraph()} makes use of the transition table as well: It plots a transition graph in which the basins of attraction are drawn in different colors, and the attractors are highlighted. The result of <<echo=FALSE,results=hide>>= pdf("stategraph1.pdf") set.seed(43210) par(mar=c(1,1,1,1)) plotStateGraph(attr) dev.off() @ <<eval=FALSE>>= plotStateGraph(attr) @ is depicted at the top of Figure~\ref{fig:stategraph}. The blue basin belongs to attractor 1, and the green basin belongs to attractor 2. The above call does not ensure that the basins of attraction are clearly separated in the plot. If this is desired, one can choose to use a piecewise layout, which means that the layouting function is applied separately to each basin of attraction, and the basins are drawn side by side. The result of <<echo=FALSE,results=hide>>= pdf("piecewisestategraph.pdf") set.seed(43210) par(mar=c(1,1,1,1)) plotStateGraph(attr, piecewise=TRUE) dev.off() @ <<eval=FALSE>>= plotStateGraph(attr, piecewise=TRUE) @ is depicted at the bottom of Figure~\ref{fig:stategraph}. \begin{figure}[p] \centering \includegraphics[width=0.7\linewidth]{stategraph1} \includegraphics[width=0.7\linewidth]{piecewisestategraph} \caption{The state graph of the mammalian cell cycle network using the regular layout (top) and using a piecewise layout (bottom). Each node represents a state of the network, and each arrow is a state transition. The colors mark different basins of attraction. Attractors are highlighted using bold lines.} \label{fig:stategraph} \end{figure} Exhaustive search consumes a high amount of time and memory with increasing size of the network, which makes it intractable for large networks (\texttt{BoolNet} currently supports networks with up to 29 genes for exhaustive state space search). Therefore, \texttt{BoolNet} also allows for other search techniques that can handle larger networks. Depending on the requirements, the following options are available: \begin{description} \item[Heuristic state space search] basically uses the same technique as exhaustive attractor search, but only uses a subset of states as initial states instead of the full state space. It then identifies the attractors to which state transitions from these states lead. The start states can either be supplied, or they can be calculated randomly. \item[Exhaustive SAT-based search] exhaustively identifies all possible attractors of a network based on a formulation of attractor search as a satisfiability (SAT) problem and then applies the PicoSAT solver \cite{biere08} to the problem. The algorithm is an adaption of that of Dubrova and Teslenko \cite{dubrova11}. Unlike exhaustive state space search, this method only returns the attractors, but not the state transition table/graph. Depending on the network structure, it can be applied to networks comprising several hundreds of genes. \item[Restricted SAT-based search] uses another formulation as a satisfiability problem and only identifies attractors of a predefined maximum cycle length. It is exhaustive with regard to attractors of at most this size, but will never return any attractors that comprise more than the predefined number of states. Like the exhaustive SAT-based search, this method does not return a transition table. \end{description} The following shows the application of the above methods exemplarily. A heuristic state space search from randomly chosen start states in the mammalian cell cycle network can be started via <<>>= attr <- getAttractors(cellcycle, method="random", startStates=100) @ This chooses 100 random start states for the heuristic search and usually identifies both attractors. <<>>= attr <- getAttractors(cellcycle, method="chosen", startStates=list(rep(0,10),rep(1,10))) @ starts from the states \texttt{(0,0,0,0,0,0,0,0,0,0)} and \texttt{(1,1,1,1,1,1,1,1,1,1)} and again identifies both synchronous attractors. \begin{sloppypar} For the above calls, only the subset of the transition table traversed by the heuristic search is returned. This means that there is no guarantee that, e.g. \texttt{getBasinOfAttraction()} returns the complete basin of attraction of an attractor in heuristic mode. \end{sloppypar} An exhaustive SAT-based search can be started using <<>>= attr <- getAttractors(cellcycle, method="sat.exhaustive") @ This will again return all attractors, but no transition table. If you are only interested in a subset of attractors that have a predefined length, the restricted SAT-based search can be applied. For example, <<>>= attr <- getAttractors(cellcycle, method="sat.restricted", maxAttractorLength=1) @ restricts the attractor search to steady states. Correspondingly, only the first attractor of the network is returned: <<eval=FALSE>>= attr @ \begin{lstlisting}[linewidth=.9\linewidth] <<echo=FALSE,results=tex>>= attr @ \end{lstlisting} \texttt{BoolNet} can also identify attractors in asynchronous Boolean network. For this purpose, another special heuristic algorithm is included. This algorithm starts from a small subset of states and makes a number of random transitions to reach an attractor with a high probability. After that, a validation step is performed to analyze whether a complex attractor has been identified. The command <<results=hide>>= attr <- getAttractors(cellcycle, type="asynchronous", method="random", startStates=500) @ conducts an asynchronous search with 500 random start states on the mammalian cell cycle network. In this case, the algorithm has identified both the steady-state attractor and the complex attractor: \enlargethispage{0.5cm} <<eval=FALSE>>= attr @ \begin{verbatim} Attractor 1 is a simple attractor consisting of 1 state(s): |--<---------| V | 0100010100 | V | |-->---------| Genes are encoded in the following order: CycD Rb E2F CycE CycA p27 Cdc20 Cdh1 UbcH10 CycB Attractor 2 is a complex/loose attractor consisting of 112 state(s) and 338 transition(s): 1011101111 => 1011101110 [...] 1000000000 => 1010000000 Genes are encoded in the following order: CycD Rb E2F CycE CycA p27 Cdc20 Cdh1 UbcH10 CycB \end{verbatim} For the complex attractor, the involved transitions are printed out. By default, the algorithm tries to avoid self-loops, i.e. transitions that lead to the same state again. This means that self-loop transitions are only allowed if there is no other transition that leads to a different state. If you would like to allow the algorithm to enter self-loops even if transitions to different states are possible, you can call <<eval=FALSE>>= attr <- getAttractors(cellcycle, type="asynchronous", method="random", startStates=500, avoidSelfLoops=FALSE) @ In the resulting complex attractor with 112 states, there are 450 transitions instead of 338 transitions, which is due to the additional self-loops. The asynchronous heuristic search does not return a transition table, such that the above analysis methods cannot be applied here. \begin{figure}[tb] \centering \includegraphics[width=0.55\linewidth]{attractor2} \caption{Graph representation of the complex attractor in the mammalian cell cycle network. Each node represents a state of the complex attractor, and each arrow represents a state transition.} \label{fig:attractor2} \end{figure} As there are multiple possible transitions for each state, complex attractors cannot be visualized as in Figure~\ref{fig:attractor1}. For this reason, \texttt{plotAttractors()} supports a graph mode that visualizes the transitions among the states in the attractor: <<echo=FALSE,results=hide>>= pdf("attractor2.pdf") par(mar=c(1,1,1,1)) plotAttractors(attr, subset=2, mode="graph", drawLabels=FALSE) dev.off() @ <<eval=FALSE>>= plotAttractors(attr, subset=2, mode="graph", drawLabels=FALSE) @ plots the 112-state attractor as depicted in Figure~\ref{fig:attractor2}. We omit the state labels (i.e. the gene values) due to the high number of states. This plot again requires the \texttt{igraph} package. \begin{sloppypar} Although \texttt{getAttractors()} can also be applied to temporal networks and other networks that are in a symbolic representation (i.e. \emph{SymbolicBooleanNetwork} objects), this function is only a shortcut to the simulation function \texttt{simulateSymbolicModel()} in this case. It is advised to use \texttt{simulateSymbolicModel()} directly , as it provides more options. For the temporal model of the IGF pathway included in \texttt{BoolNet}, an exhaustive simulation can be performed as follows: \end{sloppypar} <<eval=FALSE>>= sim <- simulateSymbolicModel(igf) sim @ \begin{lstlisting}[linewidth=.9\linewidth] <<echo=FALSE,results=tex>>= sim <- simulateSymbolicModel(igf) sim @ \end{lstlisting} By default, the result object of class \emph{SymbolicSimulation} comprises several components: \begin{itemize} \item A list of sequences \texttt{sequences} from each start state to the corresponding attractor. If this component is not desired, the parameter \texttt{returnSequences} can be set to false. \item A graph structure \texttt{graph} that comprises all traversed state transitions. If this component is not desired, the parameter \texttt{returnGraph} can be set to false. \item The identified attractors \texttt{attractors}. If this component is not desired, the parameter \texttt{returnAttractors} can be set to false. \end{itemize} In this case, the network has two attractors: A steady state describes the inactive state of the pathway. The circular attractor describes the activation and inactivation of the PI3K-Akt-mTOR signalling cascade initiated by IGF. All visualization and analysis function described above can also be applied to the simulation results obtained by \texttt{simulateSymbolicModel}. For example, the cascade attractor can be visualized via <<echo=FALSE,results=hide>>= pdf("attractor3.pdf") par(mar=c(1,5,1,1)) plotAttractors(sim, subset=2) dev.off() pdf("stategraph2.pdf") par(mar=c(1,1,1,1)) plotStateGraph(sim) dev.off() @ <<eval=FALSE>>= plotAttractors(sim, subset=2) @ Similarly, <<eval=FALSE>>= plotStateGraph(sim) @ plots the state transition graph of the network. Unlike in classical synchronous networks, a state can have multiple successor states (outgoing edges) in temporal networks, as a state transition may also depend on the history of states before the current state. The two plots are shown in Figure~\ref{fig:temporal_plots}. \begin{figure}[p] \centering \includegraphics[width=0.6\linewidth]{attractor3} \includegraphics[width=0.6\linewidth]{stategraph2} \caption{Top: Visualization of an attractor that describes the activation and inactivation of the PI3K-Akt-mTOR signalling cascade through IGF and IRS. The columns of the table represent consecutive states of the attractor. On top, the percentage of states leading to the attractor is supplied.\newline Bottom: The state transition graph of the IGF pathway network. Each node represents a state of the network, and each arrow is a state transition. The colors mark different basins of attraction. } \label{fig:temporal_plots} \end{figure} For temporal networks, it is often infeasible to perform an exhaustive state-space simulation, as the search space is not only exponential in the number of genes, but also in the time delays. There are two options to deal with this: First, the search can be restricted to randomly generated or prespecified start states similarly to \texttt{getAttractors()}. If time delays of more than 1 are included in the network, not only single start states are generated, but the required history of states is generated as well. For example, <<echo=FALSE>>= set.seed(43851) @ <<>>= sim <- simulateSymbolicModel(igf, method="random", startStates=2) @ generates two start state matrices, each comprising 3 states (the maximum delay of the IGF network), and uses them as the basis for a simulation. This can be seen when examining the sequences to the attractors: <<>>= sim$sequences @ Both sequences comprise start states $t=-2$, $t=-1$ and $t=0$. The second option is to use a SAT-based attractor search similar to that in \texttt{getAttractors()}. Here, only the attractors are identified, but no state sequences and no state transition graph are returned. <<>>= sim <- simulateSymbolicModel(igf, method="sat.exhaustive") @ identifies all attractors in the network in an exhaustive manner. Alternatively, one can only search for attractors of a specific maximum length: <<>>= sim <- simulateSymbolicModel(igf, method="sat.restricted", maxAttractorLength=1) @ will only return the steady-state attractor representing pathway inactivity, but not the 14-state attractor. Please note that this length-restricted search cannot be applied to temporal networks comprising the time-dependent predicates \texttt{timeis},\texttt{timelt} or \texttt{timegt}. \begin{sloppypar} Classical synchronous Boolean networks can also be simulated using the symbolic simulator \texttt{simulateSymbolicModel()} if they are in a symbolic form. However, in most cases, \texttt{getAttractors()} will be faster and will consume less memory for synchronous networks without temporal elements. Only if the number of inputs to genes is very high and exhaustive simulation is not required, it may be advisable to use the symbolic simulator. \end{sloppypar} \subsection{Markov chain simulations} Another way of identifying relevant states in Boolean networks are Markov chain simulations. Instead of identifying cycles explicitly, these simulations calculate the probability that a certain state is reached after a predefined number of iterations. Of course, states in an attractor have a high probability of being reached if the number of iterations is chosen large enough. Markov chain simulations for probabilistic Boolean networks were introduced by Shmulevich et al. \cite{shmulevich02}. As a special case of probabilistic Boolean networks, these simulations are also suited for synchronous Boolean networks. The following performs a Markov experiment with the predefined number of 1000 iterations on the example PBN described in \cite{shmulevich02}: \enlargethispage{-0.5cm} <<>>= data(examplePBN) sim <- markovSimulation(examplePBN) sim @ Only states with a non-zero probability are listed in the two tables. The first table shows the states that are reached after 1000 iterations. The second table is a transition table annotated with transition probabilities. This table can be suppressed by the parameter \texttt{returnTable=FALSE}. The results correspond exactly to those in \cite{shmulevich02}. If the transition table is included in the simulation results, we can plot a graph of the network: <<eval=FALSE>>= plotPBNTransitions(sim) @ <<echo=FALSE,results=hide>>= pdf("pbntransitions.pdf") set.seed(4961) par(mar=c(1,1,1,1)) plotPBNTransitions(sim) dev.off() @ This graph is displayed in Figure~\ref{fig:pbntransitions}. The vertices are the states of the graph. The edges represent transitions and are annotated with the corresponding transition probabilities. For this plot, the \texttt{igraph} package must be installed. \begin{figure}[h] \centering \includegraphics[width=0.65\linewidth]{pbntransitions} \caption{State transition graph of the example probabilistic Boolean network included in \texttt{BoolNet}. Each node represents a state of the network, and each arrow is a possible state transition, annotated by the transition probability.} \label{fig:pbntransitions} \end{figure} We can also use Markov chain simulations to identify the attractor states in the mammalian cell cycle network: \begin{samepage} <<>>= data(cellcycle) sim <- markovSimulation(cellcycle, numIterations=1024, returnTable=FALSE) sim @ \end{samepage} We set the maximum number of iterations to 1024, which is the number of states in the network. In a deterministic network, this guarantees that all states are found. The fourth state in the returned table is the steady-state attractor identified previously. It has a probability of 0.5, as the basin of attraction is exactly half of the states. The other 7 states belong to the simple synchronous attractor. It is also possible to restrict the simulation to a certain set of input states instead of using all possible input states. In the following example, we only consider the state with all genes set to 1, and identify the state belonging to the steady-state attractor again: \begin{samepage} <<>>= sim <- markovSimulation(cellcycle, numIterations=1024, returnTable=FALSE, startStates=list(rep(1,10))) sim @ \end{samepage} \subsection{Robustness assessment} A biological network is assumed to be robust to small amounts of noise. The plausibility of network models is therefore often assessed by testing its robustness to noise and mismeasurements. Typically, artificial noise is applied, and its influence on the behaviour of a network is measured. There are two major ways of applying random noise: Either the current state of a network in a simulation can be perturbed, or the network structure itself can be perturbed. \texttt{BoolNet} includes functions for both types of robustness assessment. The function \texttt{perturbTrajectories} measures the influence of noise that is applied to the current network state. It generates a set of initial states and creates perturbed copies of these states by randomly flipping bits. It then measures the influence of the flips on the further dynamic behaviour of the network. For example <<echo=FALSE>>= set.seed(3361) @ <<>>= data(cellcycle) r <- perturbTrajectories(cellcycle, measure="hamming", numSamples=100, flipBits=1) @ randomly generates 100 states and 100 copies with one bitflip and performs a single state transition for each state. It then measures the normalized Hamming distance (the fraction of different bits) between each state and the corresponding perturbed copy. A robust network is assumed to yield a low Hamming distance. The average distance can be viewed by typing <<>>= r$value @ A related measure is the average sensitivity. This measure assesses only a single transition function and counts the number of successor states that differ between the original states and the perturbed copies for the corresponding gene. E.g., <<>>= r <- perturbTrajectories(cellcycle, measure="sensitivity", numSamples=100, flipBits=1, gene="CycE") @ <<>>= r$value @ measures the average sensitivity of the transition function for gene CycE. The long-term behaviour can be evaluated by comparing the attractors that are reached from the initial states and their perturbed copies. <<>>= r <- perturbTrajectories(cellcycle, measure="attractor", numSamples=100, flipBits=1) r$value @ measures the fraction of pairs of states and perturbed copies that yield the same attractors. It can be assumed that small changes in the state should not influence the long-term behaviour of the network, and hence the attractors should mostly be the same. The second class of perturbations adds random noise to the network itself. This is implemented in the \texttt{perturbNetwork()} function. Unlike \texttt{perturbTrajectories()}, this function does not perform any simulations, but returns a perturbed copy of the network that can be analyzed further. \texttt{BoolNet} includes a set of different perturbation options that can be combined. For example, <<>>= perturbedNet <- perturbNetwork(cellcycle, perturb="functions", method="bitflip") @ chooses a function of the network at random and flips a single bit in this function. By setting the parameter \texttt{maxNumBits}, you can also flip more than one bit at a time. Instead of flipping bits, <<>>= perturbedNet <- perturbNetwork(cellcycle, perturb="functions", method="shuffle") @ randomly permutes the output values of the chosen transition functions. This preserves the numbers of 0s and 1s, but may change the Boolean function completely. These kinds of perturbations are supported for synchronous and asynchronous networks as well as for probabilistic networks. For synchronous networks, a further perturbation mode is available: <<>>= perturbedNet <- perturbNetwork(cellcycle, perturb="transitions", method="bitflip", numStates=10) @ Here, \texttt{BoolNet} calculates the complete transition table of the network and then flips a single bit in 10 states of the transition table. From this modified table, a network is reconstructed. Changes of this type only affect a few states (which might not be the case when perturbing the functions directly as above), but possibly several of the transition functions. As in the previous examples, it is also possible to modify the number of bits to be flipped or to choose \texttt{method="shuffle"}. \begin{samepage} A detailed listing of a perturbation experiment is shown below. In this experiment, 1000 perturbed copies of the cell cycle network are created, and the occurrences of the original synchronous attractors are counted in the perturbed copies. This is similar to the simulation in \texttt{perturbTrajectories()} with \texttt{measure="attractor"}. However, instead of comparing the outcomes of different initial states in the same network, it compares all attractors of different perturbed networks to all attractors of the original network by exhaustive search. \begin{footnotesize}\label{alg:perturbation} <<eval=FALSE>>= # Perform a robustness test on a network # by counting the numbers of perturbed networks # containing the attractors of the original net library(BoolNet) # load mammalian cell cycle network data(cellcycle) # get attractors in original network attrs <- getAttractors(cellcycle, canonical=TRUE) # create 1000 perturbed copies of the network and search for attractors perturbationResults <- sapply(1:1000, function(i) { # perturb network and identify attractors perturbedNet <- perturbNetwork(cellcycle, perturb="functions", method="bitflip") perturbedAttrs <- getAttractors(perturbedNet, canonical=TRUE) # check whether the attractors in the original network exist in the perturbed network attractorIndices <- sapply(attrs$attractors,function(attractor1) { index <- which(sapply(perturbedAttrs$attractors, function(attractor2) { identical(attractor1, attractor2) })) if (length(index) == 0) NA else index }) return(attractorIndices) }) # perturbationResults now contains a matrix # with the first 2 columns specifying the indices or the # original attractors in the perturbed network # (or NA if the attractor was not found) and the next 2 # columns counting the numbers of states # in the basin of attraction (or NA if the attractor was not found) # measure the total numbers of occurrences of the original attractors in the perturbed copies numOccurrences <- apply(perturbationResults[seq_along(attrs$attractors),,drop=FALSE], 1, function(row)sum(!is.na(row))) # print original attractors cat("Attractors in original network:\n") print(attrs) # print information cat("Number of occurrences of the original attractors", "in 1000 perturbed copies of the network:\n") for (i in 1:length(attrs$attractors)) { cat("Attractor ",i,": ",numOccurrences[i],"\n",sep="") } @ \end{footnotesize} \end{samepage} \pagebreak[4] \begin{samepage} The results of such an experiment could look like this: \begin{verbatim} Attractors in original network: Attractor 1 is a simple attractor consisting of 1 state(s) and has a basin of 512 state(s): [...] Attractor 2 is a simple attractor consisting of 7 state(s) and has a basin of 512 state(s): [...] Number of occurrences of the original attractors in 1000 perturbed copies of the network: Attractor 1: 622 Attractor 2: 589 \end{verbatim} \end{samepage} We see that the steady-state attractor is slightly more robust to perturbations than the simple attractor with 7 states, as it can be identified in a higher number of perturbed copies. \subsection{Identifying specific properties of biological networks} The described robustness measures could also be used to identify specific properties of real-world networks in comparison to arbitrary (random) networks. For example, one could assume that attractors in biological networks are more robust to perturbations than attractors in random networks with a similar structure, as they should be capable of compensating for small dysfunctions of their components. Similarly to the above code, one could execute a number of random perturbations on the biological network and measure the percentage of original attractors found in the perturbed copies. Afterwards, one could repeat this process on a number of randomly generated networks -- i.e., generate perturbed copies from each of the random networks, and measure the percentage of attractors in the copies. If the percentage of the biological network is higher than most of the percentages of the random network, this suggests that the biological network exhibits a higher robustness. This is a kind of computer-intensive test. \texttt{BoolNet} comprises a generic facility for such computer-intensive tests. This facility already includes several tests (mainly for synchronous Boolean networks) and can be extended by custom test functions. The outlined example of attractor robustness is one of the integrated functions: <<eval=FALSE>>= data(cellcycle) res <- testNetworkProperties(cellcycle, numRandomNets=100, testFunction="testAttractorRobustness", testFunctionParams = list(copies=100, perturb="functions")) @ creates a set of 100 random networks (each with the same number of input genes for the functions as the cell cycle network) and creates 100 perturbed copies for each of these networks and for the cell cycle network by applying \texttt{perturbNetwork()} with \texttt{perturb="functions"}. For each network, it then calculates the percentage of attractors that can still be found in the perturbed copies. The function plots a histogram of this robustness measures of the random networks (see Figure~\ref{fig:robustness}, top panel). The corresponding value of the original cell cycle network is plotted as a red line, and the 95\% quantile is plotted as a blue line. <<echo=FALSE,results=hide>>= pdf("attractor_robustness.pdf") par(mar=c(4,4,2,1)) data(cellcycle) set.seed(3241) res <- testNetworkProperties(cellcycle, numRandomNets=100, testFunction="testAttractorRobustness", testFunctionParams = list(copies=100, perturb="functions")) dev.off() @ \begin{figure}[p] \centering \includegraphics[width=0.6\linewidth]{attractor_robustness} \includegraphics[width=0.6\linewidth]{transition_robustness} \caption{Top: Attractor robustness of randomly generated networks (histogram) in comparison to the mammalian cell cycle network (red line).\newline Bottom: Normalized Hamming distance of randomly generated networks (histogram) in comparison to the mammalian cell cycle network (red line). } \label{fig:robustness} \end{figure} We can see that the average percentage of found attractors is significantly higher in the biological network with a $p$-value of 0.01. \begin{sloppypar} It is also possible to perturb the states instead of the networks themselves by setting \texttt{perturb} to \texttt{"trajectories"}. In this case, the function applies \texttt{perturbTrajectories()} with \texttt{measure="attractor"} to the biological network and the randomly generated networks. It then tests whether the fraction of state pairs that yield the same attractor is higher in the biological network than in the randomly generated networks. The second built-in test function also tests the robustness of the network behaviour by perturbing the network states: \texttt{testTransitionRobustness()} applies \texttt{perturbTrajectories()} with \texttt{measure="hamming"} to each network. It then checks whether random bit flips yield a higher Hamming distance of the successor states in randomly generated networks than in the biological model, i.e. whether noise in the states influences the randomly generated networks stronger than the biological model. In contrast to the previous measures for which a greater value was assumed in the biological model, the Hamming distance is assumed to be smaller. Hence, we must specify the test alternative as \texttt{alternative="less"}. \end{sloppypar} <<eval=FALSE>>= testNetworkProperties(cellcycle, numRandomNets=100, testFunction="testTransitionRobustness", testFunctionParams=list(numSamples=100), alternative="less") @ <<echo=FALSE,results=hide>>= pdf("transition_robustness.pdf") par(mar=c(4,4,2,1)) data(cellcycle) set.seed(22652) testNetworkProperties(cellcycle, numRandomNets=100, testFunction="testTransitionRobustness", testFunctionParams=list(numSamples=100), alternative="less") dev.off() @ The results are shown in the bottom panel of Figure~\ref{fig:robustness}. Again, the result is highly significant (indeed, the Hamming distances are \emph{always} lower in the biological network), which means that the biological network is considerably more robust to noise in the states than the randomly generated models. Another network property can also be tested using a built-in function: When looking at the state graph of a biological network (which can be generated using \texttt{plotStateGraph()}), it can often be observed that many state transitions lead to the same successor states, which means that the dynamics of the network quickly concentrate on a few states after a number of state transitions. We call the number of states whose synchronous state transitions lead to a state $s$ the {\em in-degree} of state $s$. We expect the biological network to have a few states with a high in-degree and many states with a low in-degree. A characteristic to summarize the in-degrees is the Gini index, which is a measure of inhomogeneity. If all states have an in-degree of 1, the Gini index is 0; if all state transitions lead to only one state, the Gini index is 1. <<eval=FALSE>>= testNetworkProperties(cellcycle, numRandomNets=100, testFunction="testIndegree") @ <<echo=FALSE,results=hide>>= pdf("indegree.pdf") par(mar=c(4,4,2,1)) set.seed(6314) testNetworkProperties(cellcycle, numRandomNets=100, testFunction="testIndegree") dev.off() @ plots an histogram of Gini indices in 100 random networks and draws the Gini index of the cell cycle network as a red line, as depicted in the top panel of Figure~\ref{fig:indegree}. \begin{figure}[p] \centering \includegraphics[width=0.6\linewidth]{indegree} \includegraphics[width=0.6\linewidth]{indegree_kl} \caption{Top: Gini indices of state in-degrees of randomly generated networks (histogram) in comparison to the mammalian cell cycle network (red line)\newline Bottom: Kullback-Leibler distances of in-degrees of the mammalian cell cycle network and 100 random networks.} \label{fig:indegree} \end{figure} The histogram shows that the Gini index of the in-degrees is always higher in the biological network. This is probably due to the special structure of functions in biological networks. Instead of accumulating the in-degrees using the Gini index, it is also possible to compare the distributions of the in-degrees across the networks. For this purpose, the Kullback-Leibler distances of the in-degrees of the supplied network and each of the random networks are calculated and plotted in a histogram. The Kullback-Leibler distance (also called relative entropy) is an asymetric measure of similarity of two distributions \cite{cover91}. If the distributions are equal, the Kullback-Leibler distance is 0, otherwise it is greater than 0. <<eval=FALSE>>= testNetworkProperties(cellcycle, numRandomNets=100, testFunction="testIndegree", accumulation="kullback_leibler") @ <<echo=FALSE,results=hide>>= pdf("indegree_kl.pdf") par(mar=c(4,4,2,1)) set.seed(234256) testNetworkProperties(cellcycle, numRandomNets=100, testFunction="testIndegree", accumulation="kullback_leibler") dev.off() @ results in the plot displayed in the bottom panel of Figure~\ref{fig:indegree}. It is possible to switch between the histogram of an accumulated characteristic (e.g. the Gini index) and the histogram of the Kullback-Leibler distances for all tests. \begin{sloppypar} You can also easily implement your own tests. To do this, the only thing you have to do is implement a custom testing function that replaces \texttt{testIndegree()} or \texttt{testAttractorRobustness()}. Testing functions have the following signature: \end{sloppypar} \begin{verbatim} function(network, accumulate=TRUE, params) \end{verbatim} The first parameter is the network that should be tested. The parameter \texttt{accumulate} specifies whether a single characteristic value (e.g., the Gini index of the in-degrees) should be calculated, or whether a distribution of values (e.g., a vector of all in-degrees) should be returned. The third parameter is a list of further arguments needed by your function. If, for example, we would like to compare the sizes of the basins of attractions of synchronous attractors in biological and random networks, we would write a function like this: \begin{samepage} <<>>= testBasinSizes <- function(network, accumulate=TRUE, params) { attr <- getAttractors(network) basinSizes <- sapply(attr$attractors, function(a) { a$basinSize }) if (accumulate) return(mean(basinSizes)) else return(basinSizes) } @ \end{samepage} This function calculates the mean basin size as a characteristic value if accumulation is required, or returns the sizes of all basins of attraction in a vector otherwise. It does not need any further parameters in \texttt{params}. Now, we can start a test using <<eval=FALSE>>= testNetworkProperties(cellcycle, numRandomNets=100, testFunction="testBasinSizes", xlab="Average size of basins of attraction") @ <<echo=FALSE,results=hide>>= pdf("basinsize.pdf") par(mar=c(4,4,2,1)) set.seed(6724) testNetworkProperties(cellcycle, numRandomNets=100, testFunction="testBasinSizes", xlab="Average size of basins of attraction") dev.off() @ to produce the plot shown in Figure~\ref{fig:basinsize}. Apparently, the average basin sizes do not differ as much as the built-in test characteristics between the random networks and the cell cycle network. \begin{figure}[h] \centering \includegraphics[width=0.6\linewidth]{basinsize} \caption{A custom test statistic measuring the basin sizes on randomly generated networks (histogram) and the mammalian cell cycle network (red line).} \label{fig:basinsize} \end{figure} \begin{sloppypar} By writing custom test functions, you can extend the test facility to perform a wide variety computer-intensive test. Of course, it is also possible to plot the Kullback-Leibler distances with such new methods by using \verb+accumulation="kullback_leibler"+. \texttt{testNetworkProperties()} accepts most of the parameters of \texttt{generateRandomNKNetwork()}. If necessary, you can generate more specialized kinds of random networks which resemble the original network in certain aspects, for example by specifying a generation function or by setting a proportion of 0 and 1 in the function outputs similar to the original network using \verb+functionGeneration="biased"+. \end{sloppypar} \clearpage \section{Import and export}\label{sec:importexport} \subsection{Saving networks in the \texttt{BoolNet} file format} Corresponding to the \texttt{loadNetwork()} command, a network can be saved using \texttt{saveNetwork()}. This stores the network in the network file format described in Section~\ref{sec:appendix} and can be applied to all types of networks supported by \texttt{BoolNet}. For example, the cell cycle network can be saved using <<eval=FALSE>>= saveNetwork(cellcycle, file="cellcycle.txt") @ \begin{sloppypar} The function stores the expressions that describe the transition functions. In some cases, there may not always be a valid symbolic description of the networks (e.g. for networks returned by \texttt{generateRandomNKNetwork()} when the \texttt{readableFunctions} parameter was not set). In this case, \texttt{saveNetwork()} can generate symbolic representations of the transition functions in Disjunctive Normal Form (DNF): \end{sloppypar} <<>>= net <- generateRandomNKNetwork(n=10, k=3, readableFunctions=FALSE) saveNetwork(net, file="randomnet.txt", generateDNF=TRUE) @ The \texttt{generateDNF} parameter can also be used to detail which type of DNF formulae should be exported: \texttt{generateDNF="canonical"} exports canonical DNF formulae. \texttt{generateDNF="short"} minimizes the canonical functions by joining terms. By simply setting \texttt{generateDNF=TRUE}, formulae with up to 12 inputs are minimized, and formulae with more than 12 inputs are exported in a canonical form, as a minization is very time-consuming in this case. \subsection{Import from and export to SBML} \begin{sloppypar} \texttt{BoolNet} provides an interface to the widely used Systems Biology Markup Language (SBML) via the import function \texttt{loadSBML()} and the export function \texttt{saveSBML()}. As the core SBML does not fully support Boolean models, import and export of SBML models is based on the \texttt{sbml-qual} package which extends SBML by several qualitative modeling approaches, such as general logical models and Petri nets. For a full description of \texttt{sbml-qual}, refer to \href{http://sbml.org/Documents/Specifications/SBML_Level_3/Packages/Qualitative_Models_(qual)}{http://sbml.org/Documents/Specifications/SBML\_Level\_3/Packages/Qualitative\_Models\_(qual)}. \end{sloppypar} \texttt{BoolNet} only supports a subset of \texttt{sbml-qual}. It can read and write logical models with two possible values for each state, which are equivalent to Boolean networks. Logical models with more than two values for a gene or Petri nets cannot currently be handled by \texttt{BoolNet}. An export to SBML is usually not associated with any loss of information. For example, we can write the cell cycle network to a file and re-import it into \texttt{BoolNet}: \begin{footnotesize} <<>>= toSBML(cellcycle, file="cellcycle.sbml") sbml_cellcycle <- loadSBML("cellcycle.sbml") sbml_cellcycle @ \end{footnotesize} Apart from some additional brackets, the re-imported network coincides with the original network. Similar to the \texttt{saveNetwork()} function, \texttt{toSBML()} exports a symbolic representation of the network transition functionss, which may not always be available. As for \texttt{saveNetwork()}, there is a parameter \texttt{generateDNF} that can be set to generate a symbolic representation in Disjunctive Normal Form from the truth tables. \subsection{Importing networks from BioTapestry} BioTapestry is a widely-used application for visual modeling of gene-regulatory networks \cite{longabaugh05}. It can be freely accessed at \url{http://www.biotapestry.org}. Although its primary purpose is visualization, the software supports specifying logical functions for the genes. \texttt{BoolNet} can read in the top-level (``Full genome'') plot of a BioTapestry file (*.btp) and convert it into a Boolean network. As an example, we assume the following BioTapestry model with 5 genes (2~inputs and 3~dependent genes): \begin{center} \includegraphics[width=0.8\linewidth]{biotap_model} \end{center} The corresponding BioTapestry file is included in \texttt{BoolNet}. You can determine its path using <<eval=FALSE>>= system.file("doc/example.btp", package="BoolNet") @ \label{cmd:example.btp} to access it in BioTapestry or \texttt{BoolNet}. For the import, \texttt{BoolNet} needs to know the type of influence a gene has on another gene. Therefore, imported networks should only use links that are either enhancers or repressors. Neutral links are ignored in the import. We now set further simulation parameters for the model. These parameters are imported by \texttt{BoolNet} to construct the functions of the Boolean network. First, we want to change the function of Gene~2 to \texttt{OR}. Right-click on Gene~2 and choose \texttt{Simulation Properties...}. \begin{center} \includegraphics[width=0.8\linewidth]{biotap_sim_properties} \end{center} In the properties dialog, choose the \texttt{Logic} tab, and select \texttt{OR} for the logical function. \begin{center} \includegraphics[width=0.8\linewidth]{biotap_logic} \end{center} Now set the function of Gene~1 to \texttt{XOR} (exclusive or) in the same way. \begin{samepage} You can also specify initial values for constant genes, i.e., genes with no input links. Choose the simulation properties of Input~1, and change to the \texttt{Parameters} tab. Choose \texttt{initVal} and set it to 1. \begin{center} \includegraphics[width=0.8\linewidth]{biotap_initval} \end{center} \end{samepage} Press Return to store the result, and exit the dialog with \texttt{OK}. This will create a fixed gene with value 1 (i.e., an over-expressed gene) in the \texttt{BoolNet} import. Note that values other than 0 and 1 are ignored by the import, as well as initialization values for non-constant genes. We assume that you save the network to a file ``example.btp'' in your working directory. In \texttt{R}, type <<echo=FALSE>>= net <- loadBioTapestry(system.file("doc/example.btp", package="BoolNet")) @ <<eval=FALSE>>= net <- loadBioTapestry("example.btp") @ to import the network. Alternatively, replace the file name by the command on page~\pageref{cmd:example.btp} to use the file in the package if you do not want to create the file yourself. The imported network looks like this: <<eval=FALSE>>= net @ \begin{verbatim} Boolean network with 5 genes Involved genes: Input 1 Input 2 Gene 1 Gene 2 Gene 3 \end{verbatim} \pagebreak[4] \begin{verbatim} Transition functions: Input 1 = 1 Input 2 = Input 2 Gene 1 = (!Gene 1 & !Input 1 & Input 2) | (!Gene 1 & Input 1 & !Input 2) | (Gene 1 & !Input 1 & !Input 2) | (Gene 1 & Input 1 & Input 2) Gene 2 = Gene 1 & Gene 3 & !Input 2 Gene 3 = Gene 1 | Gene 2 Knocked-out and over-expressed genes: Input 1 = 1 \end{verbatim} We can see that Input~1 is specified as an over-expressed constant gene. Input~2 is modeled as depending only on itself, i.e. it keeps its initial value. Gene~1 is a representation of the XOR function in Disjunctive Normal Form (DNF), using only logical ANDs, logical ORs, and negations. Gene~2 and Gene~3 consist of conjunctions and disjunctions of their inputs respectively. In addition to this textual description, we can visually verify the network by plotting its wiring: <<eval=FALSE>>= plotNetworkWiring(net) @ <<echo=FALSE,results=hide>>= pdf("wiring_biotap.pdf") par(mar=c(1,1,1,1)) set.seed(559652) plotNetworkWiring(net) dev.off() @ The resulting plot is shown in Figure~\ref{fig:wiring_biotap}. \begin{figure}[h] \centering \includegraphics[width=0.6\linewidth]{wiring_biotap} \caption{The wiring graph of the imported network specified in BioTapestry.} \label{fig:wiring_biotap} \end{figure} You can now use the imported network just like any other network in \texttt{BoolNet}. \clearpage \subsection{Exporting network simulations to Pajek} For further analysis, network simulations can be exported to Pajek, a Windows application that provides visualization and analysis methods for graph structures \cite{batagelij98}. For more information on Pajek, please refer to \url{http://pajek.imfm.si/doku.php}. The export function writes the state transition graph to a Pajek file (*.net). This requires a synchronous exhaustive attractor search in \texttt{BoolNet} to build the full transition table. To export the mammalian cell cycle network to Pajek, call <<eval=FALSE>>= data(cellcycle) attr <- getAttractors(cellcycle) toPajek(attr, file="cellcycle.net") @ This will export the graph of the state transitions, which is usually sufficient for plotting. If you want to include the state information (i.e., the gene assignment vectors), call <<eval=FALSE>>= toPajek(attr, file="cellcycle.net", includeLabels=TRUE) @ Now, start Pajek, load the network with \texttt{File | Network | Read}, and check out the tools provided by this application. For example, visualizations can be accessed using the menu item \texttt{Draw | Draw}. Figure~\ref{fig:pajek} shows a plot of the cell cycle network with the Kamada-Kawai layout (Menu entry \texttt{Layout | Energy | Kamada-Kawai | Separate Components}). \begin{figure}[h] \centering \includegraphics[width=0.75\linewidth]{pajek} \caption{A visualization of the mammalian cell cycle network in Pajek.} \label{fig:pajek} \end{figure} \clearpage \bibliographystyle{plain} \bibliography{BoolNet_package_vignette} \section{Appendix}\label{sec:appendix} \subsection{Network file format} This section provides a full language description for the network file format of \texttt{BoolNet}. The language is described in Extended Backus-Naur Form (EBNF). For synchronous, asynchronous and probabilistic Boolean networks, the supported format is as follows: \begin{verbatim} Network = Header Newline {Rule Newline | Comment Newline}; Header = "targets" Separator "factors"; Rule = GeneName Separator BooleanExpression [Separator Probability]; Comment = "#" String; BooleanExpression = GeneName | "!" BooleanExpression | "(" BooleanExpression ")" | BooleanExpression " & " BooleanExpression | BooleanExpression " | " BooleanExpression; | "all(" BooleanExpression {"," BooleanExpression} ")" | "any(" BooleanExpression {"," BooleanExpression} ")" | "maj(" BooleanExpression {"," BooleanExpression} ")" | "sumgt(" BooleanExpression {"," BooleanExpression} "," Integer ")" | "sumlt(" BooleanExpression {"," BooleanExpression} "," Integer ")"; GeneName = ? A gene name from the list of involved genes ?; Separator = ","; Integer = ? An integer value?; Probability = ? A floating-point number ?; String = ? Any sequence of characters (except a line break) ?; Newline = ? A line break character ?; \end{verbatim} \pagebreak[4] The extended format for temporal networks includes additional time specifications and temporal predicates is defined as follows: \begin{verbatim} Network = Header Newline {Function Newline | Comment Newline}; Header = "targets" Separator "factors"; Function = GeneName Separator BooleanExpression; Comment = "#" String; BooleanExpression = GeneName | GeneName TemporalSpecification | BooleanOperator | TemporalOperator BooleanOperator = BooleanExpression | "!" BooleanExpression | "(" BooleanExpression ")" | BooleanExpression " & " BooleanExpression | BooleanExpression " | " BooleanExpression; TemporalOperator = "all" [TemporalIteratorDef] "(" BooleanExpression {"," BooleanExpression} ")" | "any" [TemporalIteratorDef] "(" BooleanExpression {"," BooleanExpression} ")" | "maj" [TemporalIteratorDef] "(" BooleanExpression {"," BooleanExpression} ")" | "sumgt" [TemporalIteratorDef] "(" BooleanExpression {"," BooleanExpression} "," Integer ")" | "sumlt" [TemporalIteratorDef] "(" BooleanExpression {"," BooleanExpression} "," Integer ")" | "timeis" "(" Integer ")" | "timegt" "(" Integer ")" | "timelt" "(" Integer ")"; TemporalIteratorDef = "[" TemporalIterator "=" Integer ".." Integer "]"; TemporalSpecification = "[" TemporalOperand {"+" TemporalOperand | "-" TemporalOperand} "]"; TemporalOperand = TemporalIterator | Integer TemporalIterator = ? An alphanumeric string ?; GeneName = ? A gene name from the list of involved genes ?; Separator = ","; Integer = ? An integer value?; String = ? Any sequence of characters (except a line break) ?; Newline = ? A line break character ?; \end{verbatim} \end{document} ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/vignettes/biotap_model.png������������������������������������������������������������������0000644�0001760�0000144�00000172724�12466166264�017052� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR����¦���Øæ��®iCCPICC Profile��xíZgTM—®î‰0 9ÃsÎ ɃäF’ˆ$A2"É�ˆDEE0�&’"¢(ˆb�%©ˆb‰Ûàë~gÏw¾_»ÿÖ:§«Ÿ¹uëÞš®ê©;õ\�$NxQ©¡0� ,<:ÒÖDŸìäìBƽÀÀ¤¼|¢¨z66ˆÊ(‹#ˆ6R†e¶l=7—Þ7À³ ÔªtR0úþˆ#‡�@6ˆ€%à7öÝÂÞ¿qÜÞMFtò¶°O ÒU!X:’bk€à‡�à‰Û˜æÅöÞÆŒo·°—Wd��œß}²—W�‚¹H¿±÷–ß±>ˆ}.d X¦pß pD„øÀêøúEù� Z‡èøúFù„ †�Ö ‹@Ú%¶ž‰¸5é+\@xëÙ!w¤ìÑ@e±ñá_²°Ï�4¥À-ý/™Ädl‰�4sþK6o»ý<!¶ÇQþJŠÛæ "bófss^�\�ë…››«5››ëµ� Æ�è õ‰‰ŒÝÖè­Ðdþ8â@(5 v#`¬8àAˆû@82@.(�GA¨uàh- Ü] <�ƒàx&À;ð|?Á*A8ˆ1A$IA :¤Aæ-ä yBþP%@iPT•BÕÐY¨ jƒ:¡>hzM@³Ðwh†aÌóÀ"°,¬ï„Í`;Ø ö‡©ð~8 > ‡«áø*Ü÷ÃOáqø#¼�o¢hQ¬(2J ¥†ÒGY¢œQ~(**•…*AU¡. ÚQwQOPoPŸPËh4š͇–Fk Ñ´:€ÎAŸ@ŸA_Aw£‡Ðãè/è5 Ã…ǨaL0?L4æ¦S‹¹ŒéÁ c¦1óX–+ŒUÁa°Ø8l6¶ Û€½…}„ÀþÀ¡p¬81œÎç£âÒpÇpgq7pp“¸<Ï—ÃëãðÁø$|þ þ:þ~¿DC¤ Q¥1§ñ¤‰¡É¡©¢¹Jó€f‚f‘–H+H«AkMëG›@[D{޶“ö9í†ÀKP&˜|Å„Ba”0O$…‰ÚDb81“XM¼N&~¦ÃÒ‘é4é(tátYt5t7éžÓ}§'Ò‹ÑëÓ»ÓÇÑÓ_¢ï§Ï�3ð1h280D2ä340ô1¼%A$>’ɉK*&5“‘æiÅ}Ó«;Ç7˜x™v0¹2Å3•1µ3½dúÅÌɬÁìÌÏ\Æ|ƒy”y…—E‡eËA––;,ïXq¬¬æ¬a¬¬-¬ÏX—ظشÙ<ÙÒØêÙúÙ¾°3±«°;³'²×°÷²ä`àPæpæHä¨åèãøÌÉÌ©ÎéÁyˆó<ç ç"/—W0WW+×n,· 7…;»–û÷<7O(O Ï-ž÷¼ô¼j¼ž¼9¼—y_óaùäù\øñ5ò½àGñËð;ñ§ñ7ò¿$£ÉòdWr&ù2ù�­€š€À›³‚¬‚ú‚TÁ Á~Áe!!;¡ƒB—„^ …5…ƒ„ ÷ ÿ¡ˆ¤‰\™eÕ­C‰)‹ù‰»'¶,.)î*~Xü¶ø7 A {‰L‰v‰9I~I[ÉtÉ6ÉOR|R¶RR×¥¾H J;HçHwH/ÈHÈxÈËôɬË*ÉÉž’}*GÓ“Û'×(÷Vž[ÞV>[¾K~YA^!@¡Rá¹"ƒ¢©bŠb›âw%I%¥“JÏ””M•S•o*/ªÈ««œVWåRµW-P} †UÓWKRkWû©® ¦~^ý½††§F…Æ+MvMŠf‘æc-:-s­l­{;°; w¤íèÖ†´wj'kwhoèèè$éÜÖÙÐÕÕMÖíÜ vêíLÝyG£g¢—¥×¯OÔ·Ò/Ô6`3p2(7xc(`ègxÖpÎHÞ(Ú¨ÍhÍx§qºq¿ ½‰I©ÉS!Ó ÓK¦?wií:¸ëž½™½Y¹Ù”¹¤ù^ó6 `ajQ`ñÂ’lhÙl¹b¥o•gõÌšÏ:ÀºÙzÕÆÈæˆÍËÝ»Ãw·Û¢m­mËlßÙ)Ø%ØõQX(ž”‹”_öÆöEöãÒñ÷Y½›7œ,œÊœfÕ3œŸ¹»D»ô¸2»ú¸¶¸¡ÜìÜjÝÜ Ýº¿÷PóÈöxµGzOÒžAOAÏhÏ{^œ^¡^ÞLÞ~Þí>DOŸ+¾x_7ßf?ŒŸ‹ß%´¿³ÿ¥�t€K@S 6Ð-°%ˆ&hOе`º`ßà›!Ì!!!=¡Ü¡Q¡„ž…ˆg†ODhFG|¦šP«©«{ö6E"ý#»¢x¢â¢†£å¢s£gb bªbÖbc¯ícÞGÝ÷(N*.;nf¿ÑþÚx8Þ3¾ã�ßÄc ;ÊV]o$q'%$%k'ŸJÞLñLé>(t0ýàLê®Ô†4ú4jÚð!ÕC¥‡ÖÒ=Ó{2Ä2r3¾fR2Û²x³f½Ï¶ÈnÎaËIÈ™Ê5ÍmÌcÉ;7uØôð¥|öü¤üwG,\-à-H/øRèPØQ$^TX´Rì[<P¢VR}”p4æèÄ1³cW“ç_:á}âQ©fé™2¦²¤²OåŽåwN*œ¬¬ V쯘9eª§R¡²ªŠ¡*±j®ÚµúAfÍùZ®ÚœÚ•ºàºÑÓ§ož‘=SYOªO­_8ëwöÅ9³s7Ï˯i`mÈjX½qaú¢Ãź—/‰_ªhblÊlZkÞÛ<ÓâÞ2|y×åŽ+ªW.^¾Z~éZv+Ôº¿õ{[PÛd»Kû“ëæ×ïÜйÑzSþæù[·NÝæ¼]ÜAߑ݉îLî\éŠíúÞÖ=Ûãß3ugϱ»ÎwGzíz‡îYÝ{ØgÖwÿ¾ÉýÞ~£þ; t?ÔØ5 7ÐõHÿQ÷cƒÇ=ƒ†ƒ½C&C}OÌž<¶|j÷tä™Ó³Ñ‘©ç~Ïg_„½øþ2æåÊ«äQÔhÖýXñkÎ×§Þ¿9?®0Þ:¡3qwÒbrxÊejj:xúÇÛøwð»Ü÷ÌïOΈÌ\ú þ¡{Öbvä£çÇŸb>mÎå|fû\ýEúKÛWïƒßܾÍ~ùÿ82Ï3~AmáîO»Ÿ“‹‹KyËÜËçiüº¿â¼òa5n ¿Vº.±~}Ã|cl3üo,ð7ø üþÆc¿±ÀßXàï¹Àßs¿çÏþž ü=ø{.ðÿ÷\€êéµ  ö÷àG=�tÎ�0@@ýoÛó(¿£ €BH!xËÀ#<„(ÐEø†C  ¼ƒX!=(áÞ¢p|łڇšDÛ¡0v˜)ì~;®M#C³@ÛK¨&¦ÒùÓ›3(’ÈŒÌL´Ìh +Ž]ˆC•Ó‚+;—ç2ï(?ž¬!*X-4#¢$š(Ö/Á!é'Õ,½&k*W(ÿRQ@ÉG¹VeR[¢‘§Ù¥5¯-¬c«{xç}¬¶a¬Q½ñ Sì.3óƒ5–ÝV¯­wÓÛ ÙiP,í=¢ÓJ/¸Ürt›tÿ¾ö$y‘½|t|-ü\ýÃæ•W…ä‡F‡¹„G(Qö2GÒD¡¢6¢WcVc7âàýøxÆ\ B‰¢IädžöƒL©„4tÚæ¡•ôùŒ¹Ì™¬éì79¯rŸç==<’¿\\ø«8ù(t,ùøçRë²óåËZ§¨È©ZwõTÍJýi3õqg¯œûÚ yÁçbYcÿ¥õfé‡Ë)WÎ]¸¶ÐÆÞ®vÝñ†ïM¿[·ƒ;‚;CºÂ»£zâî¤ÜÍí-½×Ð×uÿUÿÂCº¶G¤ÇøÇƒóCÓO††;Ÿ6=«)|~èEÂËØW‘£Qc–¯Q¯O¾Ñ|36ž9¡617yn*xZazõíýw'ÞΨ}À|x0›úQåãûOÇç¬?3|ûÒùõæ·Ñró=?[—ÖŒ77‘ù‡�Ð#<”$ÐŽ àÄ Y"¼P `+¸^Gù£FÐ6è§O̶§ƒûŽ?GL«BÀƈ-t¹ôA $EFN&Ó:ó<ËgÖolK웜D.2·…w/_ ÿ5òA&!ká,‘^1”øN‰DÉV©yY¹SòOÑJÊÊ{T²U[Ô^¨¯iòiéí×®Ôy¨»¬'¨ojj˜oÔd<`òÎtÕŒdN¶µÔ´2´¶´qÞíi`N‰¶?àâ˜å”ï\âRîZíVï~ÉãÊžvÏn¯ÞÃ>£¾S~þZ%‡„8†‡i„+DHP…ö’#ù£ÈÑÂ1’±òûTâÔ÷+Ç+KNKLæOá>È–JJ#§£Ò73V3—²–rs©yïòmÜ..J)>ÊÌûøÉ¥Kå<'wT8!+!»êJõJ­i]Ñéñz±³¡ç.œŸ» yÑ·±ìÒP3ºEýrЕWû[qmF퇮÷ÞDÝÒ¾} ãZç\·`åNúÝ˽“}„ûJýBîH{”õ8w0{(ýIòpüÓègÔ‘Ðçá/"_ƽJÍËxô&f<lÂÒcÊiz÷[ów¦ïgŒ>Ïš~´ød3gþYõ Ç—/_»¾~÷û±s^xã§Ø¢ÓÒ•_”U—õ•íùÇ2û@h‚ÝÛxaÇæPY1PôY;àD¸E@íAµ¢YщèÌÖ; Ãmâ hDhnÑ:Ò.Šˆ*ÄQºCô ôÓ ÇH–ŒXƦC̦,t,#¬lÁìúkœ¯¹np—ñìçuäSçgçŸ' \ÌòV¡™mËw—“$I.H=—n“9!»OŽ"¯¨@¯0«Ø¥t\9LEO•Eõ½Z«z–†‹¦„æ’Vھ: º°îÐÎ*=ª¾ž£Á¤a³QŠñn“¦]»Ž˜¹šs™?·8jioÅi5f]cº[Ãc;lWC‰²7ràp˜sìp*vpÑvåpýá6à~Æ#e›§º“לwŸOo²Ÿ›¿z�sÀ·À‡AuÁûC,BC—Âˆ *P÷¶EÆFÉDMFÇèÆ|‰­ßw0.`¿uüŽÒ <‰¤$šdTòFÊêÁ_©ËiˇÓd,gqf[æ¤æÞÈûž/vħ ²p´˜»ÄõhűÉb¥áeWËU(œrß^K㵸:…ÓgŠêïC7jÈ¿ðºQáÒá¦-Æ—Ï^%\‹no߬$[mš·» {ݵïè ëgxÐ>`ûèÃ`ê™áÏ:Ÿß{E;vx<yjqÆú3Ç"jkþóé[{V€É�8Ž@‘ €áÍ�`§ÀÁ �­Lhú9€øÚþ{ÿCØé›Û¬Žì=ƒ¦À9p'¼„’G… Î ¦Ðühwt9zÃqÁ”c^cù±ÞØ:ìœ .׆ÛÀ›âóñOi¸h¼i=E—6—öAŒ°ÐGä&FïÒñÐÅÒ ÑËÑçÓc°ch#ñ“²H Œ^ŒCL:L ¿™Ã¼ÁÉò‘Õuá.ÇÙ}Ø?qÄrœE\¢\7¹í¹¿óäóÊòñÅðóðß!‡ ðÜŒ’z+\.âˆp…ƒbEâ\ã’g¥öJëÊ0ȬÉþ”û.?«0¥øZiDy@¥[õºZ³úYJÍZGvdj§ê$ëfí,×kÐï4xa¸hÌl"oJÙoVm~ßâ§•€µµMÊîÛ'vÝ” {Kv‡Ç6§\go=Wq7wŒû¦Ç¦'ÁKÐ[Ç'À·Ä¯?€6Ð"¨0¸=d4t%œ'b'ÕoAäí¨…ñØ=û*ã&ãÅD$ÜN"&»§´§2¦EZÎÈÈbήÎÕÈÌ÷9²RXX,\ÒzÌôøÓR²™“K•%Õµ|usg:ÏVŸÏº°·Ñ¥É´Eé ßÕÍÖéö®'oóv™Þ±¹'ÿëÃã%†.<©~)0ZûfפÒ[ÕÌs×¾²~W›g]¸±(·”¸|ñWýJÙªÝÝÚÙu±õ3"]›žÛ¿&HFÂ+ˆ²‡  û0k‘ðyø-Âý»£ÊQ¯ÐÜh7tz#Œ À4`¾cÕ°‰ØGÁUàfðJãÞGÃHãNsáÕhÒ¾'hò ÓDMb ñ 9Ýyz}8ýS† §IŒ¤dÒ7FÆçL»˜®3Ë2ŸFØì¬l¬ÇØ8Ù*Ø…Ù›8t9†8ý87¸Ê¸5¸Gy’y…yñÅó‹#¼r®€žÀ¢`“P¨°¸ð‘ÑP1%±uñ^‰#’RRR›ÒC27d/Ë5Ë_T¨W¬SªR.S)R=¬–©~Pã€f¬uGˆvN.ugŠ^¾~•ÁUÃA£9¬©Ø. ³HóR‹ËoÖ|6Ö»Ólí.R’í)ÒŽÇNýÎÍ.•®Ån9î¹…{*=¯y {/û ûÙùçôa‚BLBÃÓ#Š©÷ÞüÍ£뽯8®wÿƵ„ØÄ«I‹):3S‘Ò­2 2³I9¹5yŸóÕŽdL©—”,s9Þ]*Svê$sÅáJƪÆû:Ôéöú}çô.¼mlm*j ¼¢¡u²½ñFÌ-›Ý.åù»÷Dî ={,>$>,öLì¹èK±Qá×Rãn“oÅß7Ïš~ø¢ö-éGÁBÄ"y©vycEvuÇšÚ:n}`£{þ-@²Wd@o`8 C)£òQŸÐfèó"&ó«Ž=…Ãà"p/‘÷¼yË3iæi}iG–„;D]âm:º;ô–ô¯BH€t‚Q…q„)œÇ\ÇbÄ2ËZĦÃö™½šÃ•“ƒs”«†;ŒGÉ!xÏ×Í_MNÜ-¤#,-Â'Ê,F§‘ÀKÒJ‘¤ydddä²äÛf”8•MT¢TëÔžj`45´BwÔiëòîtÑ+ÑbÈbäj\e2»KÃ,Ç|ÔRÉ*×úÃî]¶g),öYާdàšï.èÑíã­æKò[ X Z 9&~‘*¿÷r”zt[¬Ò¾–ýrñd/&Ë¥ÜJ5NkO‡2,3K³&sdsSòçs *¸^„+v,©?ºtÜôÄñÒ™r“y“•ºU—k¤këO‹œ©;+~®©AñBk£Ò¥f$N¬¸ÂxõÀµé6³ö‹7ho†ÞèîÌéúØcz§æîú=J_C?x@yxn`ý±åàÉ¡OÃOsž<{ÿòþ(×Xàëú7¯'ø&ƒ¦Zßbß9¿¯ž™žåÿh÷)i®æó•/í_›¿úžõÃc^nþëÂéŸN?-–-)/ÝZ6^~üKç×…®•ì•ÉUÕÕÜÕ‰5•µÄµ+kŸÖ×× ×ûÖ77Ô6¨ç6¦6¹7)›‡7{·æÿwÖÖþh "B#"ɆÛÿ練Ð$Ïk»0!51<Ôj+·‹ ¹>øzš#wäÚ †nçÁ!:—_¸½"ÛÂÒáÞVÖÿ`ÿHc[#}!j´þæ@°?5Ú†ò<)>ÐÀ ÁDD^âeôÇNU°—’ƒ†DË�j‰Œ±µG°0‚;£bí¶òèH~HqüGgÁ×Ïð9 ûïú­3EïÚòÅ‚üù ‰0ßâ Væ ø!1x$R‡#9aÀ�þSË�à…´Ä"mQ ¼GpÒ#é`ò?zÿ&1Þî€ôûŸÉH~YâíÏßÞȈÏ?6ƒ€/‚ÿȽ[m[£‹Ú”ú/Ÿ4¶ìmF¾A~V~íϘТhE´ Z­ÖAk�2š ÍdÐÊhu´Z­…´i�cð±ðgŒ[öÃZücODì×tDZ·¾»÷ŸVà°­ôߟÿm èÑ\ëÜŸ ù“Û9È“XdžN"y~�ÜI¸´uû%Ú/n+WDP÷GF“õ¬I?iò®pYi²¢¼‚<ø/ eê\ƒÚ}��� pHYs�� �� �šœ�� �IDATxì]œEÒ¯Í˲ »°dDD¢˜NÅœ3f1‹NOÑsÄO<³§œ <Ì9gÅœÃÀ¬ˆä¼d6§÷Õ¿ßÖ³·™™7ïí[X°zo»»ººªú?=¡kº{Òˆ¨5ÿ²ùWtíµ×nµÇ{ìÛ¹sç½³³³{2Mƒ" (Š€" (Š€" (Š€" (q¨ªªš¾hÑ¢÷9¼yÅWLâ KÒø_>ÿ ÇŒ³Ã!C.ÊÊÊÚ¦¦¦†êëëã TE@PE@PE@PE@P€@zz:±Ojkk¿~ùå—obÇÃç™ ó¯`ÇwÜ7‰lSQQ^ Š€" (Š€" (Š€" (Š€" „F�“Øá@Ûl¿ýöûqÅátÀl‡ì¶mÛîE@PE@PE@PE@H8ŠŠŠöâúce¦C:Ïrؾ2Q¯Ñ U‹ÓŒ·ß¡e¿üBµ••¦NFv.µ8€zÞ› Š‹)''‡233)- > ï`ˬ\\Beo¾I5?ÿ@é ³-ê[µ¢¬M6£ÖûíG¹Å–¹de }8õmš²ðª¬« H¤žr2ó¨‡Mh·¾ƒ©}›p2½­Wª" (Š€" (Š€" (Š€" x!Àãý ™ž@;þmôÅ_|íÅ(4Ì‚ÀÒ‹9Ÿ}A¿=ö8´¦âN]¨Í])·X1g.•,\@¥¥¥Ôïøã©ûŽÛS+8 x=‡_™e_|LUOÜOyíÚQa÷îÔª[Oã¬(Ÿ;ƒåΡ²%K(çØS©õö»„–ùÕôÏèéÉPëÂ|êй#u,êDµõu´hé|Z¼°„ÊWVÒ1[žHƒ6Ú1®L?û•®(Š€" ¬O,þã'ZHhàÆÅk¥Y«/£¼â"ÊX+Ú׌ÒòÅðËÚl`÷Ô´³j-«+ ¢¼5c¿jQE@PA€—Xl›éoãHÌp˜óùç4õþ‡¨g«Ö´IûÔ{ß}¨Ã!Cˆêê¨äÅ—iêkoÒÏå•Ìó /ÚˆPvÂZ_› ³ôËO(òøXêÚ­5u߬ î² åít8;Ò©ü³—hùǯÐìïS ó”ò¬‰ôv+ó«?>£'¾@Ý ¨ÇFhï>ûÓ}÷£òªRšøËKôñÌ÷iÞ¬ÅôØ×÷±Ãd»>;Êôm€(Š€" 4åôÉwÒ»%D­ !§ Ün0í½ýÆ”ÃÙ9ï?@ÿùµ7]}&ß3‚,¨›Kù/Me'¸‘Qü«j¨S±”h¯sÎ¥»ºþ…ºeßÑ}c'ÒJi<7±bitÁÙ´u±{.§÷GŸF·þ>Š&~vP9}|ÏÍôcÿ“éÌ=ð¢¢yòï ÏL§·>fv¸öÖ¶fmò¶¡iÔÙGÓßÿ³?·ó˜€v†×Q>ã%ÚX =óñ¹ÔÍ=¤áÅ(§" (Š€"Ð\¤ËžéñœXR1ë±§©;þVZK]–¬¢‚ߦRæç_òÀ½žÚM™J›,]EE¥54)3¦3oQ¿~”Ë3üB/©H{é?Ô¥WmØ/ƒr;USví<J›ÿ#EXOVí\*ìTI9›ÕPVv-`ÞŠ>Xæ~"iñŠzqÒã”ß5Ú÷Ê¥Ö´¬~MYúUÖ–ÓÊô%TP˜M²ò(ƒW“€wãŽý¨{®¿L_eZ (Š€"ÐL¤Ñªï^¤‰iGÓˆ-‰Æ{˜^|êaúiÌStÁîÝ(­n*}üHÕ¨‡ïØ?Dr©k¿žTË®¸~9–žúr;1r»¨ó¡¨8:Þ=Ð_AJê–Ó'¯¾M­¶;„¶îŒ/W§>T.žNO|‘úí5ŒöØÖ(¨*¬¤ºšJn³å‰0%iÔ¾…öù”É÷uàºêˉôeñ‰4‚óÔœöVÿA7žy÷ÈTÀºêŒ=ÞÿÙäÍ’"jýñÉDšV° Þ¢sƒL/ZbêrÛµ'êϳ90vk/ÿãKúpZ& ¼u°C­¡bëM§k·ßŽzhWúää-\qšWE@PÖ6Æé€¯WdÔñl… °àÃO¨/±Ø®Œ¨Ky”.àeß-_nœ¹¿N¥œ%”]SGÙy™´"½†LcŽò[óÙëTPTK}¶.¢ì6”Yá›ð,J_ô×á•u3(3Ò‹¨O~&•~QJ«¸NݧûÊüâ÷(#;ƒ6جòòs(='B‹h}_ZÍË+jieV åfRû¼¶ÔºU.Í^²œPç°âc|ej" (ŠÀšF€ïI|Øî€ciä‘}iÔ‰Љ;£y¼4÷«‡ÜCSŽ©¡’ùKÙ¡ÒŠé á#)“"üG4£óÏôÔò]hÄð#Ã|l;T±b•ñ½k‡úe4áæ;èG¦-ã܃“µ-’ÁqܹçÒ½¢Ž ìµT½j­¬ú³ÍPŸ‘Á³ ïŒëØ-3ô•)tbõ Z°´œïõÍgïÏÏŒ¥è\³I6UóË ÿàØäϘ‚’úå’Ñ <H{n*XyÑSUWÏ 3ÆiÀØàœÁØÿ)cÙ/OÐÍ7°_bç-©w_T]i ¾ìÿèʃÿAíÿí´Ú –?ekJPE@X dÈòŠ´xoyò~ý6¬K£®ÕõT€ ð€6{¿a/Bi¯¨ˆPž¡€=6gÞ™¿N |{T¸ô êÞ¿ åvlOYmÙéŸGé¹|3ΘË#”Ù¦Žê³ÛRF«,¦çÒ†ýÓiîÒ/Yæ©F¥×¿¹•3©ë€bÞo¢ o<™MY™”•QGåi%TÇSZe¤Sf]›è¦˜yµT3 “æ–Ì ´ÓKÒE@Pšzã$ ²´hÑB¾/È€¹Ö\¯}ærºfò�ºsÔ^Ñe³è¹{n§;_™dŒê5äl^zqõhUIKK¢£`yùJþ_C KJ(×pFÿ-ùåMú÷-7Ò§Ó¢ùÁ§\G眴#/1 šõî]tû¯ýéŒA%tÖÅã ÃNǦ Nߨ/nê_wÖd´ÿíxwÍ)Ô—gÚ!ÌûöºeÔmÑ2Î_<áuÚoÃeôßá'Òeôpºeê&4îõó)÷3èÚ˜NÙtý�mtìTøÄ»´ÇÝ·Ó°†Cõ4ºëÌë¨ó·Ò­¿¡†M¦ ¯¢^îÄf­Ç�—Cͪ%TR‚[~ã`ÛÝkðÁÔþ].ß+b0®§2z~Ô9ôõ–çШÝs=ííË:—Oùî1šÞn}äÅcéŒý63N¨­wRûãö¡ycn¤Wèlzù},ݰBÝ<zëžohØ=×SúÊ*úƒñö~{zvÌ1ÄsLXþÃstØí è¡{N¥÷Ŧ½z™²%?0ö#£Ø÷<„–Ï¡¥=¤«Nß‘² VwRçÇPÍËÓ¸O¹ Ÿ»¯:…6ŒôWM£‡o<@õ¢óÇÞDC6kOÓÞK<öç4†N¹e*muÅC´Ís«Ñþ±W²q„|ûøC„"‘|¢Â*úé‹Çé§?åÍz“N¼!ºÅÖiƒw£^ƒ/¦;/ÛJû`5UwÜF²’翘A;°‘­NÓŠ€" (ŠÀÚF Mœ<Ë)ýC›‹© OŒ((⿾Qó€Þü²X^µãGþºUWSA/¿àM—-( Ì·Í)£‚®Å”UÌN‡Â<JËã§ÈeÇ€ u™”^CY<#×Wðì ¢‚òÅ´"ÀÖÊœrêÒ­Š (;+ƒ²YV;B296_˨Ϧ®__N ÕtK§…+VÚ銖(Š€" 4<3ÇËË–Ì¥3VÑׯÝO_ÒPzdïÞ|½®eçö,šöÛFcÀBzä€aô —éÚ8ó÷Ïá4ì€Rzü­©SÃØvF?ÒÄ‚M½?-¯e‡úög>@WmÛ‹J>½‹N¸ìrÚ~×7h÷Ù”^_I“žCg={ ÝüÀ“Ôvæ{4|ôh*/¼“n9|�UÏz—Žd‡ÃI7?IwnÛŠ^¸ðquGzõ–ƒ¨UÝ,z˜YŒ§Û˜O™Eus¨>Òž¾d4}=|4mqÂÅtxÿBj—Ã-1ºx� ]ã¥~}ÚЫOÜG·½ü î·»ÈÏûüzvZz¤O{Ê\Ù‰Nº)d2·ñHƒÓaúwßÒOËrø‹Sµ¼”±7õéZ@Õó>2vïuÎ4ñÈþ4óÝGi8< RÄàÃ3"N¦ß*Ó}í­œñ.6â_´íð›éµã·¥ÊŸ^¡#ÎI”ÞËØôaaéT9m3‰Îø×Ýôh¯.ÔÊÁžÊÊh.söãLj*.ëñ7^"0æJúø§ýé`ãhYEsh—{©Wvý&61oŬ‰täÈ›Œþ‰ÇoE%?I'\ñ ?‹ìodñS„ÑçÅ“hQwГgVÓ}'\HÞß•n:¤7k]H>?h4½öé´èí»è”‘S×çÆÓ–»ICo|™¾v*]³/Ê.,¦6u«Ó*g¼íüYƒê#ü¬óåMtΗ{¬ÖŸn;rGºl;¢ñ ?‡úñ—»ò¸ñú`}Ym<”¿I6m>UÖouø¸Š5¯(Š€" ¬ÌLÌ[H·¼"›7áÊ{>ß,óxÛ®Ö¼–g&˜N|:s{Êx &/¿Èå™YÙ™fê oÛry_…¶ù”UT@imØóߊ§rþÖf´Jœ9”–É3Òxúá2Þú+·<Pfëœ<³l¢ —íå½%ryÎb«ô,޳X&? °ÌrþU±S¤ši¹õ´*§6P¦¯ýZ (Š€"ÐLÔQߦL¸ŸÆL˜J@Ëè—îÕÕ5Ì‚à¡î]¥¿CrñeÏžO›·¯¢ªÈætáWÓÓ‡]C_L=˜êÍ‚‚ƒó ::­]¨D]·?–ŽÏ¨¦¥‹WRÇMv¦¾ô4•³ ®.ƒï˜Ñw½ùÃÔ¾¬”ê6?®ûx<]þåTZqH_š;ù-.ß‹vá¹ð³KjhÀÁ<ú»âcšQº?õÍLã¥Dÿûù{úm›®4pÀ�ŠT¬¢òÚlêΟ™îÆe èG=6ȤJ|GuíE|r=õÏ,£ªÊ:Úÿfv¦\x-M¶ mÝ~ }0úE¢áhãŒJ*/D£®Ø‰V,ZÌŸ†faN0Sù™öØM÷Ñ—½91u*m|ÁiT§<šóÝLJ£NÝZ­¨¤Í9‡®ûôº|•àXÈCóÂIO{3mJלµ;å//£Â­£'G}DÇÜúÍàú¼^àw×›ô튨‚_L”•V°¼?CÅ‚ŸéŒøi<ó�Ç%Òq{º¬/¼_™LûõÝ‘êfEc§Ý|Ë�ª¬Ye*›˜wÎä÷L®±;µZUNïw:]÷þ}Ü~¥ uQýC¯{‘®Ü¿+­ªª¦Ý·%z$'Ë誘þ =Άïчªg—PÑ€í̱Ÿ±pým`ÚŒygtîE=zô úê ªJ[6)èøó#“ê#ÒŸ.äþ´ªQZvØæ´Í!ì”(£ý6¦ÎUüXU·æ3Gq¿½ˆžZÊý .5_Åp ×¼" (Š€"±=ân$™Ùg#ªš1›wÜê@ÄK!¨mžØ–¨ Çü°D+xÚêŠü+%Þ¢Š²7è8ƒ ¦møórŒ|~ lÍŒ\v `¦fO ` ßp±Ø‘Ÿy¨:3P'hVF×¶]¨¾²”ZgæP.;/ò3³ø—ÃË*²ÍTÝŠÚ*Þ¬²Šü P^ ©,£.…\‡ß$hPE@h)ÔS%·½ê&ºh_*›ÿ-];ø$2k$½pãXÏo÷ë)³-;Áy¨Ø%c9-gß7ïÒÀƒúè½);'­Ñõ]f: ž}ÕŸýÅ£tçy·Ñç\»×ßzÓ4Žá‘_$ÂBûö È¼y´Ä¬VH§.ýyTüUe±c¢¬K6¾¦3{—c„>üÛ’ZñZÃú¬^ôÏÇÇPÉqWÐð×ùmýGÓíOýÛgÓ*Þ|Cè:^ú°r%ß9]ÛîG«X—i O$ÜjmËN7þ÷õßd M`¾êE+«ñ Žå4¿5½C}´ÁtÕóOÑоÑýêø“óùSÔÓ¾úhÏk(máRþN¿/¨\ÆyÈ‘å ±§¦¾®ÚÃ^v ”|Íie,Xbœ xQ•Ó‘e¬¤jvÁ=„ft.ŒÐþ¦WHkxÑP]ÅO¼$oíw8çD¢s¥Ÿÿ>ˆÒÞ¿Žñ¿„¶*ª¢š ˦ú2š9™õï9„r/¡r›Êå±6Ôñ±Ë`Û¡ÐF¹4wÑRNñ žÿ2.¦ïä¡ïu<7)üëKǵÎb]+¢mª+åãƒcŒPêЀAÀñ·;YT€ÕŸæÆúÓÛ°wãîO¼áõbþô8BÕòüR$Z)¸F1©©…2îµNߎJÐÿŠ€" (ŠÀZC ¼Ó!gó´hþ|êÛ¾?ñ*Ö¢"Žù—Ï7lÌt€ÓgðF ì4È¢’eK)c³¼y£Ç·¡½•·¢e¥“¨êäòß<ðšSßÜ8Óy¦dóôHÊ©£å«ê¨²óÖ ]è6*ìOß•|J9‘LãxÈçYù­ØÁÎ <_‚¢2kkØìE•´e»meº:4¯(Š€"ÐÜD%4kÖ,ÊÈÝˆŽ¿d[zõ†OiVÙ~¼'€ý›kw]9iShÖâ*Ú¸ßC8Ô”-41–Õap)ù?Õ Ôê©t;jψ&Ÿ²o¦8ÎÛüò²®·×R-¢£+5*é÷§°,Õ˦öØOGÑë?\E‘ÐÁK çͧÒZ¶­û`úïÑâŸß£KŽ>ŸÎ{~�½~2£M0{‰F×ò*ãÑô®Å÷©ºîtÊé}ȩ́ڿM‚'†¶*ˆÀZà‰Ó¡zÅ,Ʊak¸s¨SovœL˜KË.¨oØ›"›8¢ðO§lä\ÃÕìEÛ¹ÿB êQqƒÕUÀ¾#Ï2D½h¥ºòrª/òxíÏœ9ûñ0 M]Èǯ'/§dÇ@ëûÑžô½øðÃTöÑé÷ìJue¼Ÿ\E1›ò¨÷V¬ÿß“iÆ?E?YWBSÞgƒªÍRÊLÑY$…Ðo*ó1¶±ºÂ4˜.yêK:~“¨ã<åKçÓ’2öæ0ûröíÈñ‘úÒâÿ:Vé¯þôËÿã—9{š¥Ÿx6AˆüÒl¯aõéƒè—Õ4ïWnx·=ÙuBDkêE@PE`­#`œfoyEú–[Pݯ¿Óþ2DwÞƒŠØñІ´0C÷\0Û/óÌ…¹˜~ºQJßrs3}1ʰúÿHŸÝ©âûïiÁ‚*êÜžßJ±³ÂüÒù±7X¼ýÀ³b6¿!ažŠº,Šl²;ÕÕzÜÅÄ÷i»)M/ÿ†–Ì,¥výZSvZ6å¤cyf:D(›oâ9i¼´‚/ž¾„òrZQïÂMù;84(Š€" ´xš=[²œ÷t˜9§–VÌžDOÝÀ3::gׯ�àûDt@« ·£#9{óƒ¯S3÷¢N¼NÿÍûnbÊ‘´íyTWÝ0Šc ϶ç ËæP›Ã[Kr(›KßWG¿¿ó8½ÇÙÞüU‹ºNí¹NGöiÜ@&Ò‘;õ¡òiïÓõxý–ÔšgÍìt8Ñ—ÒÙWt¥KŽÚ‰ 3*hÞÌ*îßÚÖͧwÞûŠzm¹ umSL›±ÜÿåDïÕÑ{Ù§_ÿL›ïÑ—ò³y¹ˆ—}ueÔw߈þ{}Æ>‡³ÆoKuü…Ô®[ú½õåbÚz¯¨£x)˜.Ë æÏœNsjZ±^Îðí.§¸+m¸ Øùýþc¯mHGl݆¾{éºã+&íÁÎ3E?z g&r!‘moç­÷aÊzqâ–tÔ®}¨böçtý­,ä´qÔ#½ŽÊê`o ¿çŒº¬.tû?¦,b¼7`¬9”Uw¥£OëK#&<Ź#éRÞô¹jfvØ6US×A2íj:ãºL:w»ÖôåÒL4¨åšåQ›ÿÔ/õ£_ŽÈéµ÷¨Û膣GS«ÿC:eÓò…s©ªh#êÙ6ƒòpèÿó&MÙn(mÀËKùh5Ú†AÇŸû§ÿ½–ž¬Ú—núÇnfÓÓàþTGé½ús î¡ÓN¦6]ZQ+^Þ¯N -£_Ø9sÂ][D¿ŠÁ4(Š€" (-?g:ø= ˆ¡«øá®hï=iî7_SÏJè€=àpÀ,ÌFHçÙ¼WÂâ ~Øâ§ÌíѾáÿùv@$ý—ò[¤ô §ù³_£Ì¢|*Þo!6‘4l,—e/æ¹£ f—QYé´¦áËŸb¥"<¿r»NChRÉ+´,¿ŒZoCuf=jôMoåÀfFhélþüfI9íÜù`ª.¯ ´³‘Í(Š€" ¬xÙßf~p4ù`TÝ6žE÷Ÿ} µ­^Je™œòÛj¾ÏTWÑyoÜO4òT:ç„qQæ>'Ðø7þNEU‹yo†( ÿ#Ú6Z/:ebn:ý¼iÄí—ÑI\}çaÐY¾Cw:™ªn}”vÆò ÚƒÒ¾½„N¸R8wÖ]tñ.íxˆrþ´ó.ôö#×Ðe'^MÃ_j` ½iì3½)Ÿ—Xü|ËÕÑ/ bŸ#iü1pÈcv`vÖtö—ÒGwö¤›ž¸Š3;ÀHÓ®˜}\­¬íVtÇwÓ ´çƼôp^MP>î¾ûMº}·í©}t†¡Ë?™éðÐèóé!!r¼Å©<Ð>ùtºã¬¹tî]—ÓkLÛøØ³è„A¼Ùc+Þ~vvÎG} Ѻ—½»@/ÜQJ‡{ =ßÐôA§]ONëÇûL,çn„qþŠ'Y¦gà ;:n1vú"ÚΓº´Ñ>'óLŒËh+¡¶+Ê£Ë'›Ò:îÍØgÓ¸ ÏÒ«¯v×ý´÷³§Ò›¼\³–õEVÓ¹‚™°§®,—†ô å\}]}Î1óλû)v2dÑVG]AôÚ:ï„gé䛥CycO—vøÇŸgV¦-ÿfðìó‰LÖ`–Jô§œ^;Ói}î¡1çcîáô苼œ(N,ùßË</äHz~�/ á/€hPE@PZé<ª7‹Oû¼ð xæð p´áýZ-ZDÙ?ýBzõâUmx¦�¦B¦Q9¯Å\ÊkOŸAU¼Öµ¢cG³2Ο 2³–O§ÖKߥ·¡v ¨ßèál¨,«¡¥óVQÉô•TZ¸'ÕnZæ *¡W¼E‹ò¨Ï¢hÇvòCFiE%-Y²’,)§Í‹ö¥"êW¦ùJVE@h62©ï ÔÚH×ó~<+/¤•õ”ס;uÌ«¦93áÅ=V¹-uåO%WógœkyëÆ6YüÆz>-g^;äwÜ€Šs«hάh½hY:vîÊ_U(ÇÄ~^šWMµ|¿¨â±[FÍ2úyâhþÁôÉ=‡RfÙJªâ}‚Zó&Žóç/3º!#§MêÔ.—JW–ñ$½Þo9ƒ–ÌšÃ{6äS÷Å„åUlh›¼IŸ×`W:uéÆoäyÃH^LQ»tÕu§V»b¶WÏ£qGÿƒ–\ô0Ù± a�Îó;ñìÃ\Z:g&­NÈÌïÈåü‚À õ•¼leAµëÒ…W/òæ›\· UÕfð£x¯„9sJ Ž{t§Ü*æ]ˆÝ'V·:[·ëÌ/"ÒheÆž¢üL~Q01UÃc‘^@ôhOU‹çТRìÊ),¤É7ïA—Õ]FÏò>8ìé­‹©G‡|Æn ¡ú2©±Mu¼u'êÖ–7¦æÇÊÅ_Ó5ûŒ ª‹î£sw(öÐïÖg‘¼ci—ÎÌ[ÅǶ–—f¶É‹Ù›Ý¦#ue¯ ÆñµË¨de yÑ|}C?N+õ¹üŽ]©€¿†¿jîOµnȨ̂®ÝŠØ±Ä})'–1–ó>»Î¿–þLçŸx9òð[´›²Xß0pé?E@PE`-#pØa‡§Oj¤¾Ï=÷Ü+AöD×ÁbßÈ6TÄSýª&G9ü•Š<lÉ‚2^RQ›K9¼ cÏvM—Ò0 Â'Ø2 [çÒÊßÞ燾ÙTØ&i´bU&•§m@múíNËË*–Ùš7û™7¹ZQ7ƒ22«às ºš\j›µ! ì° þ½,”Ló•¬(Š€"Тà/EðFÄiü~¾¦Æ€ëgro<œÎCíž ÇŸM2{ײœù]Bÿ¸cozô¹½)Ÿ—¦ó^5žËüÒx…`&ßkêù ÒßêgðrA¸ù½ìŠêõ“µvæ;·Òù÷|F÷¼ÊÎô*€ûµ$1zm^’<íå/Leñ£(Ò€ŸWÅ@λM|`õÛw33;"] +~§Q'\BN½ÚWÓçO¾J3iwºï•K©]tƒ ጛvñÌHsøKb¿Ü•ÅMkD÷¢qÏó;þ1Y&‘F˜ÉJ2¹?¥yö§YüyØZf\Ð+f}AŸÔì@'þ-‹¬¬n¬JsŠ€" (ŠÀZFàˆ#Ž@?þõ}æu¶ÿ«�� �IDAT™g^Žgf&`æBß$Û¶mKùìp@¡¦¦†JyÇåüõ ¤…w}‘¯Z®(Š€"°~"U·œ¦”dSÏÎy<¬\÷°à}GºÓ=Òù«kÆ5 3-:uÉ㎋£{l„QÉ›DWÍù&ý6“? UM…½6§Ý÷ÚŽr–ΤåëNA}0“gctÌ.£y‹Ë ¦<Š€" (ŠÀEਣŽ:ÏOø×÷©§žz1ŒvÌNÙ îÒ 8lžõIf˜¶(" (ŠÀú…@f^!åÖÑRþÄeãù kªi”WØŽZ§WÓb¶¡Ñ[ø5eB‹ÕÃKiøKZ­y‡tžJR_SÁ›.¥õmoèµß[lPÃE@PZ8G}ô¡üyóâ&]–:„±Yx}7…b!ÂFx„¿¥Ë ÛåSE@X?¨)[F‹ÖêKä•-[LkÕ„{(khÅ’E´¢ÅÚ—ÃÖ~LM;TŠ" (ŠÀ_Ø×+Òx¦Ã_m´" (Š€" (Š€" (Š€" 4 ¼SVÃL‡çŸ¾Y4¨PE@PE@PE@PE@øë!À[3˜ïYòžÌkio¬¿æÚbE@PE@PE@PEூ@Gsú_PE@PE@PE@P¦!`f:à kç+`M3^k+Š€" (Š€" (Š€" (Š@ËEÀÌthÖå>ø ?¾åB`Yvå•WÒÛo¿mQ4©´LÖ¥óªe"Ø4«ÿ¦á§µE@PE@Pþ2§f9„^^qÈ!‡oÑè׺uëbÇ{,GÂĉéµ×^“ì‹ãÙée“&Mйm‰¤8qöÙgSß¾}=¥>óÌ3Ô©S'§D×”=ž†„$÷½öÚ+$÷úÃÖ³gÏFç„{Žì½÷Þ)mìÚ8¯ìs*'IõèуöØczöÙgSÚ¶ææ×?o»í6ÊÈÈ­zmàÚ8eTE@PE@PZæ“™ /¯Øf›mèÞ{ï5 C† ¡ššÉ®Õ8ÈÎ0†¹myõÕWiÚ´i4räÈ0ÕCóÀ™p×]wÑ·ß~K[mµU£zp:~øáf@äÚÓˆQ3¡h®cøÊ+¯Puuµ±áÓO?¥sÏ=—ðE ÌÚ´icâuýŸœSK–,¡éÓ§ÓC=DC‡¥[n¹…Î?ÿüPÍk®cJ¹2)Š€" (Š€" (ŠÀšD öÉÌ„ötÀ�jë­·ö4ô¸ãŽó¤¯ baìqÛ‚å”)SRîtØqÇÍàôÉ'Ÿlät(//7³D0HCpí ÓåiŒ@sÃÍ6Û,¦hÑ¢E&½é¦›RŸ>}bôõ!ážS'Ÿ|²qŠ]z饯ùн{÷¸Íl®cW±2(Š€" (Š€" (ŠÀšF ¶¼"!§C•]tQà ¼¾¾ž.¿ürêÖ­uéÒ…ÆŒ$®ÙÊ`ÇÅ_L]»v¥6Úˆî¼óÎÕtÙm¹ãŽ;³¾úê+Â�o²S0ÿ˜cŽ¡§žzŠ"‘HLì믿Nùùù´ë®»šmAXâí³Ý¦·ÞzËØÙ€ý7Þ(Ùf_xá:âˆ#ÌqÇŒŽ{î¹'¦óôÓO§3Ï<3–Gâ—_~¡-¶Ø‚–-[fÚzà 7P¿~ý¨mÛ¶“¯¿þºÿgœAW_}uŒ|p¬Ðv„æ<†1¥q°)^;Âð¸jfΜIÆ £:|í™H.o*ó999„¥ ˜Ýtÿý÷ÑAÇÙïÕI¥½ae[^2äÜ|ñÅãÇᬳΊÍ~ñª£4E@PE@PEà/€@ê³gÏ& €ü…Ï=÷=òÈ#4vìXºé¦›è¥—^òco½ªªŠæÍ›û!/áÿþïÿh„ „Í#1“`òäÉ4wî\)6±Ý–ƒ>˜vÞygóæK!†Þˆ·©,±˜5k}öÙg1QöÒ m{ÂoœQ_0ÿñÇm”‰Aâ–[n),Í£}Øïáƒ> C=”þùÏÒªU«ŒÞAƒ™A+ p|à˜***"/ô8Þyçã´ÂñÀ H»Çm^±b…aiîc(vÅaÚ†ÇÕlJJJèóÏ?7ç×öÛoï²4[Ž ô78‰‚޳ß1ª“jÃËÊÊŒ­°W~ .l¤&èÜjÄØÁ¹ùÆo ú5f%ý÷¿ÿ9b¼ê(MPE@PE@ø `&8`t2Œß°‡ <hˆð†k~ûñbuù}<ì|eee„7ŒÜ~ûíR9à€"G}t,Ÿªlàv5úñæoF<¯½F.¸à‚Fêxàá·Ð1šm;ˆìhˆì¾ûî±òT'ú÷ïáM%X^Za°zï½÷bjl{âaɳ$"YYY‘ÒÒRSƒ 60Çeß}÷5ùï¿ÿ>RPPaGLL~*À}Ï=÷Œ+jåÊ•æØð&£†wéÒ¥~k7nœÉãuìØ1³?Œè7<»$&·¶¶ÖØÏo“c4vhDN;í´Xž7ß4:ž~úé­¹!{ô=^ŠÓ‹°Ž×Ž0<e÷äwÚi§t#hss… cËNÏãîgØïxÕIU›ÐžYÉÎÎnôÃ5÷¦1jâ[`rñGžgåDØ¡3•÷`‰vØa±¼&E@PE@P¿ð5dò?„„–W`39¼…–°á†J20Æ&ŒxËøðÃÇf7üþûïæ-i`Å$ ±³¾L­‡ÙoU—/_Nx»î,uX[.fÉ;eÈ]ZáÚËÝvÛÍ|MáÃ?4ûEpç63 d3Ê—_~™ößâÁ—+ºYó}ô‘™é 3x€gôa6l{ôÑGÍ,|ñ_ìÀŒi+¬c¶áXî°ÃföFŒØÂaچǫ™x»~üñÇ›7÷ØÔ‘?^lÍFÃ,‹]vÙ%&ßï8Ç<ÉÔñ—„ë»ï¾ÛˆKD.¼ðBC“cèu ×Á¼¼¼˜\\_n½õV³4ÈÞl7Æ  E@PE@PE`ýG ¹$ñ‰Ì& ‘\Úïa~s823ůò§lЈо}û?‰- …%£G6ƒrwi…k^<,1øÁ K:wîLx ¤£öBÀ’–óÎ;ÏÛly8=N8áúâ‹/ŒSá¨£Ž¢ñãÇ7ÒwÒI'™Ï­by–~€NYƒý-ì€6ÊÒ ›ÞRÓaچǫ}Ø+›VbŸ|žóÚk¯5{§xñ¦š†/YÀ‘‡Ï¾†9ήþdê¸2R™wn…ÕGœjkÓ‘ÖVåSE@PE@Pš ãth&Ù«‹Å ƒH R0HZ[_(..¦o¾ùÆì1�;0Ø“·î~vað ŸEôãi ƒ6l°ˆ7ö™À.ÿ~! –ûì³=öØcƹ2jÔ(¦pD€öÝwß/mñŸrúÏ?ÿL?þ8ñr›f¯Ïªî·ß~æ¸àM=ÖÇãø ôîÝ›0€Ã~˜!Ÿ¦D à‡hü±Åâæ>†1E‰0íÃã!Ú6ß|sƒÛe—]föÀ%ÖÄvÌÈÍÍ¥SN9…Âg÷„©ã×ææ ‡9·ÂèŦ³¥N‡0h)" (Š€" (ŠÀúŠ@:7 ë ÖÈš z1 ƒÞ'žx òñ¦Úý AªÀ†#ÁÞHi8 0À††Øè Ó¬18À4~ XñÖÕ/l»í¶4iÒ$Z°`K“é˜í€Á¹ýÕ /¡a°<x°Y~`;WÐnÞ7ÁL…ç}-¼D7™æ…;ï/apÿí·ßÌ1Áž8&Àƒöã«Øàƒh̬Á§ñuO>ùÄ,ÑÁ 0¥ßþâ6OÄLŠ?þøÃl¦ˆ¯¸aMCW§äô# ȳc8ª0C_]¨¨¨ M6Ù¤Yrl1³$`ŒM,o¾ùf3£öãü :Îî1SÇnks§Ãœ[^6`OY·!–61‹UiŠ€" (Š€" (ŠÀ_ãkÀBùSy°*m&^¬¡ŽlÒvþùç›My°iÕª•©#婊¡“ÛµÚïý÷ß7*°‘bÏž=M9Ïzˆð'û"ØH’?!3Ám ÏЈð>fº¿ÿýï1¾T&x0g6ºãÁôjb]{âaÉÐÚÆ³b²¾üòKÓfþrHŒ–Ê„î<s#2räHsÜù­x„?›†8þöF¤ì�2öÝ}÷ÝÌâ=8"üP³Ù/«ˆ´k×.òÀ4âÁƼlÇÔ0`@ä§Ÿ~2i{#É5q ý6’„±aÚ†Çí ØH’—™ RyÏ•Ïòh„M*2ö±å‘^½zE9äÈÿþ÷¿Fâãg¯c¯N#MÈ  ^òÞ ±$!>Þ¹åâüŽ;îáY<‘6mÚ˜ÍvÑ¿yFO¬ÕªŠ€" (Š€" (ŠÀº�| ð:ÀéП›ò_Ž×Xà¯М9sÌ&’^û.¬)C`C×®]z+<þ|óGL)o ¡¥` ÌlÁ›dÁ3€¿l&ˆ%ÀØk¯ÌFÁò|¢ÑoÚú¢E‹ˆ¿|!"=ãµ} ô# Ý8,¾:u²Ék%ï8Ã(÷„©³¦öÜ /ì•‚þ‡ýFÜ=HÖ´íªOPE@PE@XÛð˜íôµætXÛWý-,sÁ` _±Ð ¬+ØN‡uÅfµSPE@PE@hnàtXýÓÍ­Uå+>¬\¹Ò”œ}öÙ>JVZ&Ø�û]hPE@PE@PÆÈL‡¼¼â¾ÆEšSE@PE@PE@PE 9x¦Ãøz…E@PE@PE@PE@PRŽ@lyÅ5×\“rá*PPE@PE@PE@PþºÄ–WðtyÅ_·hËE@PE@PE@P”"о}{]^‘RDU˜" (Š€" (Š€" (Š€" ÄÐ=bPhBPE@PE@PE@PR‰€¯Óáˆé±Ó1¢&E@PE@PE@PE@@À×éPG‹’Dà?ÿùO’5µš"°n# }?uÇO±L–*IXŸÐkCêæºŒéºl{ê¤JTµ€ïF’˜ÝpÊ)§ûìôÚ6Xõ+Š€" (Š€" (Š€" (Š@ËG@7’lùÇH-TE@PE@PE@PÖY2“µüÉ'ŸL¶ê_¢Þ1dzZ;1ÕíœsÎY®X®I#ÂÀå×væ§Ÿ~ZÛ&´hýÚ÷SwxÁò‡~HâHjiç‰^GRpPUD‹A`]¾6l¶Ùf-Çx†ø=·µ´ë­¦~¶·´gN¯¾ï¸h¹" ¬{$ít@SO=õTÊÌl’ˆ&#V[[K÷ß¿‘ÓÒìqçåpž–f{K³çoû¥§¯Ý-HêëëiÒ¤I-²¯µ´ã%ýZbíû‚D¸Ø¾®¹5‚°ÔóÄE‹ÈÆRñ Ƨ¥]GÔžàãå–®K××ö–š_—1 ²½¥[-õø«]Š€":šä1¨ªª2t0'‰PZ¶ˆˆ¦M‚ÿyÑüÊÀ 9^Á-“<‚Zš=bW˜¸¥ÙÞÒìÁÀ¡)N‡;6Ùd<xp˜Ãáɯ¯xÖKqåÊ•11©îû£G¦Ûn»Î?ÿ|BAt˜ŒóÏ-“¼S%0ÛÒúZK³'<§°©ç‰#.©¬Ý¼°ÌÏÏOJnØJ«V­2¬^ýr]ÀÆÛ÷A´Ã¥ÿsˤÍRnÇn™äã/Ȱí‘ë…Èv¯6¿è^;vË$Ÿ¨=¨gëtu õÕW›k›è°y$í–I¾9ì<E‡Ø`Çn™äm{lþxé–Ö÷ãÙ».”ÇÃô™gž¡yóæQ×®]騣Žj–&%ÛZÚµ¹YÀQ¡Š€"Тh’Ówr#´„rCõk)ê €?ämš]Ï‹šè¨««‹±·4{b†5$ü¦º¡¸¥ÙÞÒì©®®Žõ5é.¾nþé§Ÿ¦¥K—Òßÿþ÷XœíÚµ£¡C‡ÆhaöÍ=Y| kÔ¨Q±Aþ­·ÞW=Ú ‡ÆÜ¹sc R*ú>œ ø!H ûä3þ'¸Ût¿sQêHœŠ¾?`À�sž8°?ز`ÁÚc=ñÁa“ˆíÉ[[‡ØcÓ Ä^tÐ[ûØÚõÂ2Ñódüøñ„~ë·_Ü·o_Ú}÷Ý]3|óñÎ?§Ã7ßøŠ ]°õÖDr¼½°ôÃç½÷Þ ­##ô·iÓÆ°í¹çž«±ÇÃÄöÕ*7ìþ“ʾ¯ïwïÞvÜ~kš5km°Á4{öl:fèa¦½p>à·&í ‹}ms±µ±y~çb<|¤¾Û:üð¶sæÌi1×· È‹í¸·6õê%_h'N”äj±}~­VèA°ù÷Ýw_Ž`R²×Û—_~™***ŒpÄp@|ðÁ«)LW+I°¯'n• Û½ú²ßµÙ•”·Ï—/èÚìòj^PÖ?šätÀÒ ÛÙàÂÓ©S'—”p~áÂ…u222båñìưvÅÓ-òìØ¶Ç¦#4Õ-¬íãe2¶B–lÛ[š=ègòàfÛ”Æ:A¬]¼÷Þ{ ÛÏ?ÿl;wì·~2mýAø,Z´ÈOÝxã±Á½<_|ñžüvAVV–¥d—[ÐwЧ쇟°6‰,Ķ=6éTôýÌÌ 4h[jÝ:ºuëfœ0òP'úàp(.nOÛn»-eggûò ¿Ä¶íAÇVø›;¶íqua™Èy‚ó¢C‡<ÐN™2Řà5€vmC>ìy"uŸþW:üðþ&;cƯTUUIo¼©Yº÷ûïßzŸ>››¸¼¼”fP¯^›pyãóAä'‰à#òáøB€ãÁëþ˜(>‰êO”ßîkA}×q6ˆ8>ýükã|èÑ£%sÝY‡µGøÃƉ^oEnsÙùÀÔ¾w㺆û‡K[ÛöØt¤Sumpåºy8óáxHt-¾Ý÷]™aóöù¦N¢ü®Ìd1Å  Ë–-#üpÍ-**¢V­ZÑ¡‡*ÅMŠƒ0 ²=è\OÔ Ø€ç7¸ô k³[WóŠ€"°þ!Ð$§¨äè^øøÓ±‹Þ¦ ><†Þˆ#bi¯Ä¸qãbdÈ]¼xq,„­ ÓÛ$Ùã^ݼÈ@,ò;vìhÞ”K™_áŸmÔ ‡±½¸¸Øˆš>}.MºŒz÷.⇽…<°êÎ)M™`eÛ„‚Dmoiö =°)ÑpÜqÇÑã?nŽ#f8Àávðäê²ß(á#çêÛÇáºë®3#K)¿üòË:ð íu¼ WøÁl÷µ {lYv}è¹ì²Ëçª؆<*í`˰é¶<Û›'^:ŒíÀ œU«Vò1ìdf2|þùç´Ã;Þ^KÀÛ›ž={šr‰13Âæ^?ÛÃØv}äÃ`–/Y,aìî¾ûnãpÈÍÍ¥ÒÒRsFècn ç8öÞ{ïx¢ÍŒ aòÃÒoVóÏÞK;ï|�½õÖ“”“ÓŠ~û-º‡Š8ÆŽ½ˆF޼‰^yåAêÑ£/Ïl™ÅÎ¥ž THÛo¿Qtž„ÅGìO$ŒPG:^Ç"ìuÄîOkª¯ù/\—0Ãç W�åLÙçZ2vÛ}ßÏØ¹gŠÍp<ˆóAhrÏ”<bÛîTÚcë@zÉ’%æz‹X° ç`égÔ C†W SWxî¼óNIš{œú¸Ç† vß[Gø¼Î/™Q$<vìÅo—§"„)–TÀ)gƒ8$®ÁB?üðÓ6'YLƒÎ­DÁ¹,ÜsyÜ“eéiе9Qʯ(ëMr:„iî7 O—{Õ±pP ØüÙ7e[†}3¶éaÒo¾9ͼ¹ÁšÙ³çPŸ>}xjvWúúëaš®\DÝXì {‚¦ºÉDž>úè[~èëD……´Í6´|ù*~+˜MÏ?ÿ—ýÎéÕ´ï¾—ÑĉÿŠ'γ<Èv·BK³öÙD®½Èã8â‡^áì³Ïö"§Œ&ƒ|ÄC%ú´ûÀ+ÄpÄ ‰¯Dåùs~r‚ìiJ߇><´”òÃKçÎ]ÌCÌé§ŸÎ}}_ócÛÙµk7æ+¥Ž:ÆvðÐ/Ù¯ns”ÙÓT,Åá““c–"`m/\ñêÆàiݺµi¢<ćq<ÄÃdæÌ_=YÊËW±3usž¡4–ÏÕ…”••m®ÃbW~~!½óÎ34aÂ:÷Ü›éÇ¿4vgeåÄœ®à ,]Þ¦æ±o ®/pn6UÜ©\—0Ë!(<ùô fv‡{M ªãUƯz~4{z½½ÿø1hµ÷^2Rm«×/<ãÈÔs”ÙdOS¯ ®m^yéãpâãÅÌš ¢[ίxn—?[“ÅŽ„çŸÞ8àŒC_ÃN%kÛg8)šâ|ðj[²¶{ÉŠGǃôc×áàU?¨/{ñ+MPÖmšätÀCª\4Û^ÎTÃ"z ×Öe{îƒì>ÛF<DÁးoß~´rÅrúåç:°Išq<¸m°m°Ëüì±yšêÆö6mº±”èÌŽ»îz†¶Ûn;š<yr4þŽãm·7*ñ�OºÝÖDmOÆž+®8n¾ùÑf±ÇÏ~Ó`ë2’ (`]wÐ,éCào÷ ÔsÛ!y<ÀIǃÌ~:xmyÉØ#²âÅЛÄá&vºõüìqùšÚ÷á8À¹ºªôÏ™pD€.¶õäÅmD+KWQ¯â茙QSScÊ域í©>¶Ð×”sQì•8KÁBxÝØv8�» ‡èQž¨ã!L¿”å®}W]5ÁÎ<óÚØ,:›çì³ÿÅ3|jè ƒ†òàÁCMìâëwlãácëJ6o@è>´íÒK/¥ë¯¿>f’Û;ïb«d%üð êû~³DÊ1¨Ç€ÙžÐ\öØøˆ ÒD¡‰ÃÁ½ Üå·å‰ðá#|öµuÂqŒH,oðÅ¡êg+»)×WVP^‰: £ ÙñÊâ_nýDùÝúMÁN„wÞy'&ÒÆ tÛå=öüñ1þ0‰ LƒlêËaô }îHÿǃðÈ5�¼aû²ÔÕXPÖšätÀÅþàÉÅG.0©„ÉÖ¹¢ËötÙ#üCFç†5ªp8,[¶”ô@‹JÐïS"Ô§oÔñ�~´ƒx»¾!4üºm]/úvEtã%……­Œ?‡ÃäÉ“h¯åY#øFwãj*E¦[ tÛödì\ãip€¤ÚØ<Ä^èsó y9üê‚Ážý`Ë–64‚¯ã%evŒ´/ÙR&m‘‡cw3AÑ'2Â/ᇞåË—û€¯½öZºòÊ+ÅœÎa¨dÛ"ᇥà)¨QÃJó†Á2Öá€ýÇL‡•¼ccÞ«`%ÏxøÇ?Î6}ûì³i»kŽ`cÛÏÈz¶¼1cÆ4šºãhãiózÕ·åÚöØõâ¥!?ÁNø‘OÔá€þ;ü^_‚;Àé· ÛíÆ$8Ì(“`§yåº=b¯½¢›ƒYô‰.KÐðsñA=™ÉtPÀÆšAFÑ)6X|lû.¹ä Àn¸AÄ4Â1FôI¸6›ÐÅVÐAü$/üØ4RàsÛ‚r8LÑçE¶Ôµc¿2¡‡±ÇÆGêé°¯©^üv›EŽð%jÔ—ë&ò…ë˜ðLÙ0¸n¡ÏÈ€ tLC— ÷/{„'LŒúøÙØ¡ž—4b7ˆ~Ðe`ìŇr›y?Þhiøÿöù¦V¢üad OLáhÜ¥b›.Ž {ÌŽðšñjL!Ïî÷^òm{ýÒ8®èÃv?¶é(Ç=\ô‰.ûÜò“¯tE@XH‰Ó¹ˆ¤êÆâB,+›në].¢6]ìA~’ÿÞ@oOápØxãák—®4oþ¼˜ã|¤"KèÛz…fÇASÝ m´eضb,©r8ÈÌèÄÃÌŠ+Œ<[fXÛ“±z'[‡TÚÙ°ÉŽív™‚†à{å•WlR£tYYYlÊø!Cõ ¯~&•íãá…ð¡ ?±7VIƒÇ-—zˆí‡cäÁ+Á¶Í–'|~ýÇ•ág̰ÀçåD–á¬@ÛMÆú'¼©Q2Ù¾}2£a3ÓK,:óCÎJºâŠ+Ì )G\Êôží72A={¶7ù‡~(6²±]ÛÁ„%Ê¥°„³ØÉ®þ2{ »úE?EzÕUW™:Rº!'Œ=b§ÄAXŠ\;†Nq8` nâÍp@ûÑ6‰ú+±�� �IDATÅñ •2@‡3Ç Ð'Á K)k®6K°ñš`.±m¯;S ÎH¡ÙŽIi¿È”<¶SBtH9b[Ÿ>R޲‹.ºÈ8Pç!%"1~n‘—ŸË 9vpë‚ß«ï㺄þŒM#¤b è÷àÀ٦#-¿TÙ…d#öº®‰m¸¦OÚ&öH¹È’¼Ä"[òàH#€Á•¼[ß06üƒœ‹mÛ¶5Ççޝ\oE>ø$ÉO2×уúv Ë+ Ë{i£m—-Ï­/X¹t7öü’z‰òK½0q*1õà Ü·ß~Û˜ƒâx,%ö²7Ó Û!ÓíË^òÃÐpï…<iŸÛõéËv=M+ŠÀú@“€Á¾ Ú鿆ºl}’–ضMh£ IXW‡Ãr^ëßµ;æò7•9ž6}}úébÚi§âØÅƒx»¾Û>”•Mu“zÛ¶#M#—óXÂà|p"Ï4Øž<ž‹±Ø6Ù²c ›$á•Ø¦!ígÏÈsþüusØÝb×£>{ë-ù³Lòn\RRbH²V]d džp ’5ºä&*D©#±ÐƒvÍ5טoÃK^ø$:b;`p*YüÛå’†/Y^´ÿû¿ÿ“j&¶ë"‡^ âx<b‘‰þo·Ëå>›.édû>dÊ[’Ò•ìp臃ÌtXsHˆãëbWñÒŠŠMlïí€|¯�¶í’–u$í³x»ú㸢®[?Œ=.O,¥Žè6LÔá€EÔG=¤%o?@Bt%ržˆÍÛ˜‹¶>ÁGh¶c!ˆÇv÷ öòá ‹Ød;D†`.< ÛiáMèK™Û|  ¯ÄBCÿ…#Ûží Çç•ð=:6÷Ó#¼v¹¤Qf—KZb±Ç/>‰E®£?ÙOÊ_ø¤¾ðIìe®“‚Íc ¬¸ö¡+ÇÔ]äXìÆf[·]†t2רé耬wß}×-2y¼™Ç@YêÙ„ (·ñðj=¿å·TÅM¦SWÙØ±ccÇ ÜGy$Æ"ÇN" ¦alw쵞Y±Ef< –ã-}Ä­ˆ:©ÐíÊÕ¼" ´\üŸšBØ,7JaMö"›GŠœ0±\äl‰Ú³‚÷pÀÒŠ˜Ãg8Àá0gî|ÊÏ/ ßÿÞxãÚÿI¶.×F/{\ž |<Ûñ• lé% 2£�ìñ !È^áAìe{2öÀá0nÜËÍbØk· iLaÅ:HÛI ¼n<cÆŒI¶<Âá`O‹• ‚‘äƒðÁÀQq¸:ìA¾ÈC >yДÁ¿Èpùä†.t?{ÄáCìښȓ™¢ß.Û8¡Ûv 6^rQ?^ð³]ê‰CÁÌt°¾^ÑÉÌxˆNÛÇâöíáp(¥ž¼ù*–Z þsÏ=GGq„y³(r{ÙÏ»>:avõ‡L¿‡/[ž—=vyØ´},†~80¨D2±[ßµGìzX,Ÿzê)SåÃ?4³2~ýõW³±ïôéÓ©{÷î„ß}÷m±Å&ýý÷ßÓæ›G?¥‰vú·7¶[l,LEþgÓ$mÏP¾ ØË±Ä2±Iøüð¹ð c3„WìD^®R&±Í#4¿Xl±ëøÙ¸6Àñ`óÃá ³_㇠öÙ¼¦ à_"öø]C½ÄÃ&×{Pïw^&b—Þ0mG¨kìý"[òaäJ¯Ø®o§]^”aO |ÒsäÈ‘Š1XFÙÑGݨ?4br2ç¶Óai”MôüJ”¿‘²&flí´+³pm³ñ `Š`/à ’ÞD1E Açºð„q\ål×ñ£‹ÝñÚgËÒ´" ¬û4Éé€ .òó»¡lÍ‹uñ“`Shvl¹Â¦Ë ±è’|AöH]›‡+VRwk†­rsèiÓyÝxÇF;v‹ [Ò~ö ÌASÝ‚l‡ŒnüYL|¥ÂÝ3a»my3ÉI¼‰äöQ‡ʉ³Õûl‚èÍÏváA¹Í#r¼ìAYsÙ#za‹póÆÍÎ .ÐËnÖxÍ?6ÜD~|æðÍ0xüóÃgÔ¨Qf`Žry teް_ÀÍ[æmÈÁ²$–´” Þ:ÂI ¶šJüå^A~å¨cÛù¢ e¶=ÈÛ!Ù¾§<Ì`éöaA{:”6à(刱§f:täã‹|‡ŽèŒ3ΠSN9Å<ØÁ&iŸŸí‚Êm»®´ø†ÝÕ_6.¢Kd‹\‰m^Ia)<ÒFÉ‹ƒs<lJ>ÑëËíú®Ñ'±´Ï KðØû:ôî}4Áé€0qâD“~ùå—ù+ç–E½õÖ[tØa‡™Í-ñ°.N8[áT<ùä“Í1³›–®Ýûí·_¬_¿Ë#¤=Æ †ÂëØêÇk׳y\|n¾ùfÃêçÇ@ý[ì[ÅTšÄÿ„WÊ„WbЅǵe8ßp@¿—k††aËN¥=^ç’èöº¶+`[%Àž[n¹%F—¶£Ü¶Ýnƒð Üæ‘:ˆ…åAçx…_l“z¢ 2l]Âï%;™kƒÈG ÙèÇýû÷7K=àpÀµçÆbh(ƒ³އdú¾—ýB׉$„i“ð6GF¿àbëš/äÑ.üî¸ãŽF× à‡�Üå|²1@™Ý‚ly° ?±3Œ\/9ï 盡#ïêjªNÑ¡±" ¬ü¹X0 {q àHû +|¶ v:ŒŒ+àpè[R‡Cë¼VÆáЮ]‘L` F"!Ȇ0Sݼtá&4tèÞì¡s8lKG5’¿¼1ÎKL\šm»v+úÙ>³§Ã²7n¹Y{ÍNpí–¼8*++…db‘)Öí;móÉL�¿rðâáâÆŒéîø! ~òÆPä¢óÏÖa§…Mêz• îx¼AvÕM¶ï<´˜8?:Њå^±<ó•²Ã¡  ?Êz¼$Ã.·Ûk§mÛí´Íã—Æ5uä>I#–kÒaCo2XŠ£À© ô°±[ß«=¶ívÚ‹W|Ñp6L˜pVŒKÞ°œ›è¾ñÆôþûïÓ|`–Ãa½3<˜Ý�§ ìÇzx¯`Û`§½x¥¹× Y—íÒm¹¶ vÚæAb™þ|s= Û6Øièô ˜å„A¿ âíXl #ÇK6hv];íÇ¢<¸VÈO®³š\¿D–Ø.y¯Ø¶ÁN{ñ® Z É\¼lƹ$¼ywÀÇsŒqFˆã2à(Œ‚lªë·Ì#¨NªÊR…©mœ“¸FÀÉ€™¶ÃÁæ—´9lgÊqÏ ‚lS_yE`ÝB ³)æâ‚!?[Ž{!ñ›¹`×qÓöÌ”yé‘e©+<®~äÁ›ŸŸ/¬lbÄ€„ÈÄ�Qp„&Õ\{„&†,ùÙü A.BNNµù,¦×’Ší¶Û¶ÑÒ <`‰}¶Ü°¶K‘!6!ïgìáýŒgjíÝ¢Wl±7xÃàDœRîc/q8Øí"×®>à€Ž¼ül>y {í¾Øº8°ôÁb bð!yà“r¤!+ž=RWd¡žß´dÈFŸ‰Àƒ Ȳ'ž»räçÒm‡Á¬Ù³Œn<¤~úéÆ^»¶uã=~øþÃ÷¿¯þgâ3˜|²ÄÇÅa°?l”cˆ4pEp÷s°ËPŽuð¶ãåR_ò†Èÿ\{„&†LÔwƒÌhHõLWÚ¯_ºuÇF—v8è ƒbYÁ rÅé¡C£ŸËDz×]w5?¤m<],ýðA»äH�]lpydð`ÏpÀ`y ÂÜÁê‡Á|°ýÖ[o5fxÍx[$¶íEt)ó³ßÅGêH=[&x!e8ŸÄA*<rmp¯#"Kdƒ?ÕöÀ§)‚Øi2üOô#›ÅÑ€×á‘Xê&‹´r\{D¶Ä¢±¤¥¾ä…×µGèabÈD}7Øz¥ÌËáàÚÇÓO>iœROb—tÐì¾/¼^1–LÚ÷s¼À÷hùr†W½5MKSØf;#Åá ±8Ð/åºÌüúä%‚)øí€ºò³é?õëggÓûvþ)<ÿ›~“×”¾¢ E@X§h’ÓAZŠ b¹@J™Äö¡Å^Ž Ñ#õܼK·íÃÁÏ6©&†Ly¨rõ»yW^ÐT7áˆm{?üð6Úm·ó Û„ ׃ìá€%˜á€€7‡"vJÚZÿ\º›V¡#^›öˆbbld…›8DðEû!ÅÞ¿Á®ƒ—ž={Ú¤X2Àc"„ÁË¡I,ƒäÝÁ­íôǃ×&ЇúØCžðŠ)»ìXx‹SChàCŸ°í°ë")ìAƒ ±ËæµuxÕO¦ï›M!Ù^è<õÔ;hÀ€þTQYAµ5Õtá…ûÓå—_±šãa.ïü}Åϰs¥ a¶ÒÌôïŸfød‰…ûàíg»ÐÛ}_èh'°°wõ÷j;Ê;dØu…×¥¹yá“8K¿ºò€'ƒvÉ'»õÅ&;ö²AhÛüñÒRºÜãçÖ~Ðí´WÞ­›L^<àÚàåpÙ®M  ±Û×äü—ún,umº å.ÝÍ‹ ¡#ví_Æ üî1y"_b—îæ]>/{°É%0µҾæâº!Ï¶ÓÆv<Ø×BÐ]ýn>Œ=Â/¶eÛi»žKwó6/ÒÉ\\’‡ã?� ]b{�-´xq<û¥> ®ãAîó³¦âTbŠ{œ p2ˆÃq²!Ó ÛEŸÔ—ôžß~+ÅÎÿÇœŽ;î8S6S¦©qnbÏoc|¶Cðãš°ÿ¬m_6_L™&E`½F %N!¿ ‰—Á®g§ÝY(såºy»¾vùððù°ÇŽüñGÚyçÍCã Aƒè«¯¾¢!C6¢¶ipÎŽ£èçÂð b?Ü€ÉÕcÛ é ©nÂcÇ®L8ð–~›mF¶?¿RñXlIê|ðÊãÔ…?ý‰‡.×NTtåºyÛ;íò­ {\äAëMå<=Ù±——g›ß(]^^nò®¼O<Ñì íÒÁl?|7ædlG‚+2@Ã`UÞÌ¡ºË'û0ÇÏQËB¦Ø‚‡rWGŒ1„Ø•ˆÃâ“éûØ _vÙ“TTXd¦Öwà}8ªj*饧Ð!‡ö5凸Î;?¢Šò ³WMemºé@ºçîè̳v9(µö{a'øâz`ïê~  öÅ7¦ï¸1ð¸rݼȱã0Xºrð†úS=ÓÁÕ;Þ'v›’ICw./ÛD[öꫯJQèxêÔ©1^{ð€Á„üÎ;ï¼$‚lkh8í~ šW°ëº÷)» uݼ—<?>Ô•ú¸FÙo°í~.<"Û¶É-sóRÇm>q8€ç¿­4,Q ø‰^3Àë[[fç½ø¼hvIñ¹en^dØq2×·ï÷îÝ;öel 6i<ðÀÍ1ýõ×Jl¼êâ=dP}Àئ™t¼¾/ ³˜7FÀ˹ÏÃŽgžy&¦CøƒbùÜ/xü(Aõ“ÁÔ–'Çíé§Ÿ&|_LÃò÷šáu­°å -²lz¦al·ey¥m#FDŸ=Åñ`óÛ|B÷ã÷â•:+ŠÀú‹@“a/^Ž„D`õÓãÒݼ«Ãv4ˆãÁËá�ǃlljŸ?º+Ë+¦.<e°ïʇR8ž+½2n´y«m\ƒt¸enÞÕ‡üڶ礓Nò2ËÐıàËàQ€6É´«á#ƒ}›_Òâppؤ1êÛ n™›y…Và zH‘:~±ØåUî§ß‹×¥yÕ•íŠ éØã6¥—_šÆƒæJ³hÇ?ö-wüV1Çf8TV”ÓîK÷Þó whG•¼/@qq{ºåæW™~çÀ¶¸úݼk¯ÇñÄò |Åâɧ_0Ep6`†(÷ A:‚ʼdÙ4¯ºèkta¶@NNNRŸÍD½03l[ö²Çå ›‡,¯þëG÷ÒŸ*{08ËÎÎ6¸Úo-íAÛ›o¾Iؤ2(4Å·®=¨‡Nq6ù9 ÁãÊpóàÜdú>üî9�®­"ßÕïæ…Ïv8€&ƒ]ô¹ /bœ¢Óm>7íêwó.¿W>Ñ:AüAe^ºmZغÜ#ÈWž°,Ï«®8rD6cFc!ôdcq<`¢Ø”¨8pýjŽà…‹—8Äá`óÀápûí·“—ã!¬|[^ØtXÙöù/Ž„”xñ“G…°úTi‘" ¬C¤Äé y”¼ƒ=`·é^i?…-ºì¼ÈMè^öˆn,a·t„hÝqxƒp×.уb?{ªš(ÞT·x¶Û²d@-mDêãa ƒK8ÐÆ·¸Î<hîòŠ<?Û[š=bo˜øÐC Ö}¼QÑ ¡ ÆÀÝåó:öñ²ù½x¥\l”º’G¹ô›z2Á–ág-7™¾7—ô£rÞðó¥‡C1Ït¨®ªdGB;c0>ÄmÛP!/µ¹.ÇÃf‡öˆ+iÓb|‚ìó³í“6zai·íÚk¯%ü®¼òÊØÞ pB` õö»¾ø K¤žÈD^ô ígÊ$ÄÃRøìo%§L™bɸ>$êx�?m˜‚ŽÙç7˜¶Û¼°´mC:ì'3±_ ä¹øaÖôÑK׎DóÀºáh€ã±ä!ËÞ›Bd‹}v^hÒ.É W,<ƒf<ðÛƒn`‹ÓIdùáy"SìA;-2ÂÄXö�y¨‚—M‰Øy8çD¦,›0D럴ýÞž•<ä~)ŽyáEõDí±T®–ôÂN0±uŠ^`—ùÙ#¼ˆ“¹6Øõ%mÏâǃ”yŸ¶H§€äíØnMJÃñ�‡ƒ—Ž çúƒq<H>‘8U˜ŠNYJë'®àpã¤~‰ƒ0g;êJ}» Mt –þ‡¯Ï{ì±4«a¿”_Ê‘G¼ð?<+z°Ë £þS¿ )q:Z^*)sìB»²Ý¼È±évZÊaG²¶ØëB]Ùn^ôÙq¼©n¶ ;mËpÓ^|ò ‡Ão?ýD?<—qDØ¢¶/(·évڮ립øRa—\W÷šÎÛ6ÙiØ\¯�>¯ãàÖG]/ZXº_]èÆ²”Û^¶zѼäzÑܺÉô}8*+*©ÏT¨ª® âöÅÃáPÔàx(6MY?ß®ŽÌl@yµ7ŽÔcGÅAa;�ül·évÚm—çœ v°õ ÝO¦]ê!ÂÒ¯¾8äÁ=ǃ8Ðwâ9l;%mÛd§QžÌ'3q¼!Ç^ƒß±cGãôÁÛB ®.нhŸL,†ÌÌè­±ëxˆ'×¶ÉN'ROxQ_®·2GÞËñå§Ë¦ÛiÑ‘L,Ø$N×&?]6ÝNÃ×ñ ¶¹| ûáàG÷’96ÝN£Ì/øñyѽhëG·u&sm°ëÛi¯ÏKÛånZø1+¡°°Ð-NIÞÕáδp•`Y–gàÖªU+·8T>U˜B¿|DlGƒ"×iÉ75²²í>e§ýôŠ!ì=Í?Œ.?”®(ë.Mr:ؤƒ12³ Tñœ~ºÂØ#vø-©À^¸±}òÉ'¼|ÓÕö~ð²ßÏ/^?ZÛ¥®ðzá-eòà ‡Ã¯ìx(yï1úç®­éß5Þ(ÐÏv‘~<kÒÑ/ƾ²·C<Þ¦”ÇÃø'²§„},ƒðö+‹gÝV™æi×±ËIûÙ“¨ á·åáÍuMm t 3Ì ~û5sÖ ãHØa‡L<sÖLÚlÓf† ˜áОÕÕU,§:ö&\f:غD?b?á^ûøÉ™WY¼ 2Ñ×”Xhq<¤Úá`ãdíCÆKÆ>4?i>™9mÚ´Ø'3sssé†n0Å÷Þ{ïj_!7žâthn,ÅNYJ!S¿]ºäýbé#(²ÙubÚõP&ÚNqq8 ¶ë⺄à§Ë–ëÇc„ügË ²ÉO—]ßGA&‰97ÅÑ u„.y?]"|~<¶ ¤í>/eˆÝún>ˆ×.kδ|^Úíß~:ÅáÏàW? =QâphN›ÂØk”ìç�çÃC=d!öWxDŽìÿ€'½Ê…¯)q"}Yôœp ’lûõ]/~?ÞF5£(ë%Mv:È…Kb?”â9üê ò½tØ4›Ç¦‹ İ#Y‡ƒ8, ÇÖ…¼?½(šêfË ’9AåvWøÂáðãߣj¬®Íg ¬2ቅσÊí²¦Øcë„L¯9¼5xë­·lV“ÆtO{3ªÕ<¶Ý^ºP.<‹É»ƒûË/¿ÜL@.x1 ̘1R=&7FhH¸{@ˆ#-y‰Ýú’G9lÃ@.Ñ ²%¶ë{Ѥ<™¾/ø¼ôâïffCtæÏ|èPl>yzò);Ó<›ÁðïŸÊ›F~hf6`FD{^ZQSSEí8ÞbË<³!YYYbV,¶mGZòÇDP¹WYSh¢:KáA ]nßuxF¿Â KÞ<»1‹~3ìö¸ºÄá‘Ø¶QÒa>™‰svâÂnÄB/h^Ç×O/è¶Íö”r±Ë+†£Á2 ó¢Ûºm]RåÂ#±”%Ãñ€l|p½qlÝþoëM¥=°m†L9VÛ6¥âº†¾á¶úì6E)ÑÿÀÁ=&¶ áµi¶,›.¼v,å~Îg¡ á÷’&åM¹6ˆ ;Æ^Òwlº_ýN÷v{\œýꇡÛ:ÂðÃé 6…áwyR…éþûïOo¼ñ†q4ØÎ8J‹ŠŠb8äÙ1òâxHÓ Û!KäI,m·•BôU¡I,}Yòˆ½øƒÎu»®¦E`ýD IN‡ Hpq²/d²ùLP¯2ܬäìU–æÚ¶žË×{âMusu¥"vŸ·Kô+㾎‘©À3YÛšÛ|ÅBúŽÕÃ?û”¦|Rsذa6ÁŸÊ‡"?lı 7hè…Ãkž×Æ1±uÂ&û±ñH>Éô} £K'úмi$f8`}ïLþ ¦8Ž8âƒì…gžµÝÊ›Fn2p3á–g8ˆÃ3"d¼ß1ZèÉ`i·Ëv<`ˆA<”ûÅâpÀC³Ý/l™Í™ÆqE·ÑtÈñ¶c±¡’÷�I6`–fKÉTn¡ Ý0øüKd€æ#“ŒsS¦d{20ír.»1ê –~2šƒn#èG[͵aOs´1H&Úëi7°IeHæÚàçlÃ9à:Ò`«Ì”rí?özIEHT®c^÷|\/š’ÁÔOŸ\C±wC§NŒ3÷aÌ|ÀOfjI}¡'³×d$k{ÐõÆ~n;Aó{‰áÅ/õ4V¿Mr:à!Õö\ÊT ÄC¼ÌM hØ:D–è²oÚ-ͱ5LÏv/‚A¼²±Ÿþùî…§ÈIËx:ÝrÑz2ö ¾-ÃN»º$/‡þóŸôïÿ;6ˆÀ´F8ì$Ï«,èxyõW肜ýë_F­ìè‡CÐ1ñ²Qìiêñ’™2Hà²á;E¿è”¼K™m]/í‡%¾ �GAÔñðçW*°7f8Àá�Çø€!ôÖQ _©=P_–`€Ï^¶ûÙc×sÓ"Ç¥#ï–¹y»Ž”%‹%ê‹ /Ý¢ ¿x¸r8� $„ß–-²$ö*KK‘çC°±g6ÈqÌĉ…y  ]ò¶{i–¤%¶ù’IÛz¥~"ø¸}WdH ù8‡q>ÃQ„�'òÈynó#mãd—ý"Ë/ƵD®urÌülùaíquÊ Gä <hÀ <l^Wž”%kÈ9’·c·ÌÍ{ñÚöØåñÒmË—4 ¸†úéKÂëAóÖËñ&uýt¸ôDuà8'j“«3™<Úe·ÍNûÉ\OÁƒÙ¶ç°8"dø\Ùn<‰„ se~×”¹¶„á›%N¶/»ú5¯(ëMr: ‰rñ°›‹ ‰Ðå†e—¥å"$õ%öª#¼v™ÿڴǶ-hªøâÙnË “|D.Ž…¤ÝúÂkÓ½xm,mÞ0iÑ!r›Ûž“O>y5³ðÖRÞô&Ò±Ý(íˆG³Ëí4Æeçu›î—¶õ…µ'¨×_½Qe?¬ËÌ Ñaëõ³MxýÊ“íûpZÂa�ù´ˆ#1l´šb³Ë‡<øüú›—í^mŸݯÍ6]t„©/¼v};,–®î8ÀˆÅCdãÈn]Û;íe{غ¶¿4äËñµylº­/{¼ÞêÚ:’IÛ¶ ~X{ÀçÖ £þøÙƒHȺ}¾$bíÈc‡Í¦{®úÙÔ|Üv£Ÿ×&/Þ¦Øã%Ï‹&:Âoáõ’Z2×Ôñ‚mŸ—cÁ­oó£,žíný0:ì:‰òÛuƒÒÉ`жºí÷Ó!×a”¿þúë16Ìr€Bg^òâašŒí0`êæ›Çì“Økj8~» ñuΧQ�� �IDATl£WyE`ÝB INñxâBb_@w/.v^ ’ ³[å"CÊ„eBØ�º¤AÐEÒ¶¬(%ú_èn]”Š )^” ͵evšêÖÒloiö�[Ä‚·ä¥ yû¸ /ƒi¯º(·ë#oË].>îC/d¥2Øö#-6@‡¤mБÇO‚Ý6Ðds>y‰™ò�*õD†`aËxÄÑeÇMéûpŠÔÔÔÇbÉ‹}bbHH ~<¸‰Â Û„æÚ.í�]xÀ¼è”úv4ÑáÖE™È2á•zÂ#6 ï† ,ÅÄ¢õE¯È½x L,t»®0ˆlÉ /òÂïòH;\{DF21NÐi,…nëBZl@±ÏæýàƒŽ•!o· y B—ö ±Èšð"/ü.ØæÚƒ¼ÍkËù"×­+ŽœöÛ|ÐE¦mØ�y’ve"/ÎI[/Òv;E¾”‰nœx‹+òE¦ðƒ.6 ®¤…_ä!ŸÑ ù [è"_Ê‹ )^” <bè’]x@YH#ز¢”è¡»uQ*2¤LxQ&4×”Ù!™kC¢}?Ìg`ýl·m Jï»ï¾AÅk´,LåXŠ¡6BC,t9¾~\§…Wê!†ž d»__øÛoA"W+ûd`x~œŸÒÖx}y5EJPu&9äí˜\Dl4\š›Þ º[ææ!6Hhiöˆ]aâ–f{K³Ç7)¯>àÒܼàŸ݋צùá#vÑÙœ1làgÊm»½ò˜ñ ³¼ìGýx2 ×¶ù°¡)¶‹×>›î–¹yðÚ¶·4{¤-ab´­¥Ÿ'^},LÛ¼x0˜'Ï>¶ë>ÒN·Ÿºy?>›|ìzvZøl|ÖDß·mj öˆ×5{lÛã¥Ñ¶–tmˆgïºPÞœ˜Úé—ÛØxÑìr¿´×¹ïZê'+Yº}íIV†ÖSu&9|ðÁÕÒ–f NÐT·–f{K³gòäÉ.œk5ßÒðiiö¸Gû¾‹Hòù ,õ< ÆUñ Ƨ¥]GÔžàãå–®K××ö–š_—1 ²½¥[-õø«]Š€":07k'þ X²dÉ}¶XlÔvÊ)§’¶y4­(Š€" (Š€" (Š€" (Š€íÛ·?cõmh½8•¦(Š€" (Š€" (Š€" (Š@‚¨Ó!AÀ”]PE@PE@PE@PÂ! N‡p8)—" (Š€" (Š€" (Š€" $ˆ€ïž ÊQvE@PE@PE@PE@Pbèž1(4¡(Š€" (Š€" (Š€" (©F@—W¤Q•§(Š€" (Š€" (Š€" (LÁáüóÏ—¤ÆŠ€" (Š€" (Š€" (Š€" 4˜Óa‹-¶ aÆ5Y  PE@PE@PE@P¿6=ô æt8.½ôRIj¬(ë)×_}Ü–éµ .DÊ (Š€" (Š€" (ØãÕœ[o½5 >Ü£š’E`}@`üøñ¡š¡×‚P0)“" (Š€" (Š€" X¸ãÕœoÊ’;ŸñUÊd­‹‚>¹oкh¶Ú¬(Š€" (Š€" (Š€"ðC`ìØ±TUUEééé”––fâììlÊÍÍ5yÀºü222åÿÏÞ½ÀÙQÕù¢ÿ÷+ y‘„’@H�a�EÞ*rdŒòŠÀAÁF8ÂÀøÑ㹞Qï€^õÈGG.7D1À: *Åð%(h€@HÈ;Ý[«Ân:îN'éݽ«ë[çììÚ«ªV­õ]|ócÕª &ÄG±‰ÖfC‡Gy$^}õÕM.¬vØa•]ß @€� @€@FŽo}ë[ãå—_Ž+VÄúõ룩©)œ÷*… )HŸ´ŸŽ :4–,YÒi¯7:¤Àaß}÷íôâßÿþ÷qï½÷†à¡S… @€� @ P­­­1f̘Øyç#í§Y«V­Ê?---m³RàÐØØ˜‡Æ ÛúÐ!¥ië8Û!M¥X¹retÐAqÏ=÷Äá‡^(H%@€� @€�6HACeCú{z¬bÐà W¤ð¡¹¹9Ràf9¤ã黫­¾«íËÓRŠÑþS™N‘n°Ï>ûäÁCûk¶e¿¾¾.¦>6¯¢ý~WuÛ®!ƌ캓]]§œ� @€�ØT ²fCúNÛúìÿ¥­ò»²Ÿ²î¶Í>^‘f:TB‡Ž¥ÊÓ‚iKÁÃÝwßÝéÂéøˆ¡që×ЧŸ[™~ƺæõñ¡‹Í÷;þÑÔPœº[ÜvÏâh¿ßñ¼=wÿsæ¤X±ª%›ö±>¦î>,¾ôí§ã×ó_éxªß @€� @€@Z³, ÍzH³Òz k×®Í×w¨äéQ‹´U2®ªíQèP™Zѱ’4óaöìÙyqšZ1eÊ”Ž§lô{íºÖ˜ùùG6*ÛÚ Ùlˆ/œ7%fßü×<œHõ4faÅ ¦îS–­½Ÿë @€� @€@ÒäƒÖ,TX¸pa¾ÔBʶÛn»üQŠD¤G,Ò'ië.xØlèPyž#… ·<0¦M›–§i%Ë'žx¢ã)Ýþ5¢1.úð”8ÿ+ òóþ¯3'Çw¼znU·×¥ƒï;2ÆŽjŠŸß÷RÛ¹Í-ë£ùµ´åÄ·Ž‹÷;>þôìʸô†¿Ä¢—ÖæÄåÿsŸøá/ž³NœþiyüëÌÚùãgž°K¤‰#·Î[snýkÛù?þÕ qÆ»v‰ž|5nºó…øT6»bùÊ–øä7žŒe+š£³{µ5Ê @€�(ˆ@š\f1üáÈŸz=ztÛº í—\HÁÄÒ¥KóO Ú?vѾ«›*ªÌthƒ´ŸÖsH H+[Ž5*ÚWÞq?ÍDxÿ;ÇçŸýöžÕ[;ŽÞðxF:wÌöM=ž©°ëŽƒã¡§–çit¼Ïàl¶ÃûŽqÖÿýHüòþ%1ãm;槤@aÊ®ÛÅîã‡Äþõ¡˜°ãØk·¡ÑÔXÿxÒ.ñÏÿgAþÈÇ1Žñ;dhÙù{fçÒ§}æÁ8hÚˆøïÇ씟³èåµqÈFFW÷êØ&¿  @€� @€@­ ¤¿ÿ/X° 3Eú»~Z$²³@!•7.ÏÒã);èlÛtúB‡³Ò…ééÆÝméxW7©\—Ú°4›¶Õk[+Å[õ]Ÿµ©cŸÛoûøÛâ5±Ë¸Á‘¿8{Æ„|-‰ÝwÒv•«[ãòŸÍ¯}î…ÕÙl‰A1zDS6#bU<Ÿ i»ïÑeqä£â–_/Î׋¸ööEyùâWÖÅ5?ù[¬^ÓÏ¿´&¿î{èò^ùEþ @€� @€�H“ Ò#FŒèQ°ýöÛçë>TµèØÍ…•™/nÿ»'¡CK¶Øã­w-n»,Ílh¿mX³}I×ûϽ¸&œ:"† ªo 0ÞuÄØ¸ûÁWbåê–xyÙº¸û¡¥ykÚ© •°¢’à òzé‚5ÙÚÛ nȯ­œ›ÿèä4{£«{urº" @€� P³;ì°C >|“öu5É MR?~|¾þÃ&eÝO_ÈN¨ÌtèøhEÇßéF]5¢³§²4c`݆l&Eöö‹IÃâ€,DèévߣKó¿ìW^­Ùþºß<²,vÝiH<ñÌŠ¸Á²x$[»¡»í·Ù̆i‡åYd$ò0#…=Ù¶ô^=©Ó9 @€� @ ?ÒzŽ­éØ][R>fFt¶mv¦CšVÑÙó+Kç¤s·dK3î~pi|‹'ÿ¼"[ØqE/O¯Üü¿.{*>“->yì¡c²�¢9öž84~ú›—"½%ã»·ý-¾wñþñø3+#ÍtHçvµ¥Wn^÷³Eñµ§E1#æ?ñj¾˜eZ¯asÛ–Þksõ9N€� @€�úK =.Ñ“  }ûÒùiý‡Î¶Í†•Ù ›[Ó!W9·³½º²9ÞñO¿ßäп]õ§28{¼!›õÐ~;îcȦG*ûí§ý WÄéŸ}8Ò[05ÖÇ K6¬ÉŽýð/došx1{L¢>–g¡BÚ:Öõ¯ÿñǼ<ýñ£ì­?þÕ‹‘f:¤·`¤­ãùç|áѼ<ýqÙŸmÛïì^mí @€� @€�‚¤WaV^ÙÝßñ;v§« ¢G¡CW·¿I:gKÔþÚŽCûc=ÙåÕ ‹Sv<7­ßP :ëìwkvþÆÑGggu^¶¥÷ê¼¥ @€� @ ÿºûûÿÖüóÏô__Ý™� @€�¨Qž„›éžçøñœ¿cùòå±fÍšhiÙð¸BZ,bðàÁùÊ–Ûm·]ì¼óÎ5J¡Y @€� @€@_ l6t8äCúºMîG€� @€� �W €AÔ @€� P‹›éоëÊ7÷F5ê @€� @€� $`¦CKS  @€� @€@‘„E-m%@€� @€�:h°4•� @€�I@èP¤ÑÒV @€� P ¡CKS  @€� @€@‘úäíEÑV @€� °ò•ˆn�©Bö?>bøØ*T¬Jl* tØÔD  @€@ÑRà0çÌ¢÷¢:íŸ9;âðYÕ©[­è tè�â' @€À�˜ztö왨CÛЕ{æD<qç6TàRl¹€ÐaËÍ\A€� P8ø¯ú¯–Ðáu {ô‰€…$û„ÙM @€� @€@ù„ås=&@€� @€�}" tèf7!@€� @€�å:”oÌõ˜� @€�ô‰€Ð¡O˜Ý„� @€�”O@èP¾1×c @€� Ð'B‡>av @€� P>¡CùÆ\  @€� @€@Ÿú„ÙM @€� @€@ùË×e=&@€� °©À++WÇMólz €%ÇÿÝÔ;|h[®É 4¡Ã@Qý!@€�Ø*8œyõ·êÚZ»hö¬“bÖÖZ³´‡� J8èºL€� еÀÑÓ&ÅÌÃèú„>2çžâÎÇÖp 5�² Ê6âúK€� Э@ Š<K@èÐíð:H€@ XH²ÁÝŽ� @€�”E@èP–‘ÖO @€� ÐÇB‡>w; @€� P¡CYFZ?  @€�ô£ÀméÇ›»5ý& tè7z7&@€� PsñÿÌ/Oõ”� Bÿ$ @€� Ð'ŸþMÄE÷÷É­Ü„�:ÔÈ@h @€�2üïû"þßeè©> „þ9 @€� @ OÎþeÄÿy Ooéfô“@c?Ý×m  @€�Àßy2âªv3­Ü¸³Þ±tmÄß#bþâùµeÇOŒ;dË®q6¾:ô•´û @€�(‘@ îük÷N³–¬‰¸ô‘îÏs´{ÙGGÌšÖý9Žè/¡CÉ»/ @€�’½KĽÏG¬nÙ¸Ã×1eûˆƒÇm\îWÏæ<±ù`§g59‹@õ„Õ³U3 @€�Ò ¤ÀáŽ"&_±ðÕ C"RàpröhEÚÜa÷?·\`s³I¶¼FWè]¡Cïzª� @€�nRàð£wFLß­›“"@`ÀÔ˜žè @€�5/ð½wj~4@/ zSU @€�t.ИýÍ#-x8cRçÇ• 00<^10ÇU¯ @€�Ô”À÷þ›#kj@4†@ ˜éÐGÐnC€� @ ÌÞPQæÑ×÷2 Ê<úúN€� @€�ª( t¨"®ª  @€� @€@™¬éPæÑ×w @€�!ÐÜÚ“?ýõxvɲ¼?g^ýãHŸ]GŒ§÷º/÷½×û9ç̈kÏøÒß"†Žz½Üª `¦CPUI€� @ /ëëãôCÿn“[¦²ÆÃ?¸Iy0Cà°©Šª t¨ª*  @€�ôµÀÌ#Øä–yÙ>ëÆÇŸ¹ño¿ P%¡C•`UK€� @ /ö?6Žž6©í–OÜ%RYÔgOTzz[yŒ‘‚ú@@èÐÈnA€� @ /fþúl‡÷½ù ¯ßòMï{}ÿ'o"^/±G€�ª ªF«b @€�}+pò›öáƒÅ¦ÆøÐQo|ý滑>i;úŸ6|û“�} àí}€ì @€�úB )xX½®9F ²ñ-ËÖqhÌÊÆï½q¹_¨¢€Ð¡Š¸ª&@€� °­k[#Ö´ô¼–SÞ|@¬inŽW×m|MÝÿƒGźåŸÕ{¿ZÖo¨+}§¶ nˆdžu韛@A„(Í$@€�(§Àîøü﷤“³¤âގ׌Æ8=šéX^Ýß¿þ[ÄÈÿ/âsG|öMÕ½—Ú ¨=Ycí‰ @€�ØFÎÿg~s;Ø ЗÿÛ¨/[à^ @€� @€À€uÈaÕ) @€�"𿲗P|âõ7a¶[ƒ²5l”O@èP¾1×c @€� ¤Å-ÀX ÓT6ðxÅF~ @€� @€�½% tè-Iõ @€� @€� 6âðƒ� @€�è-¡CoIª‡� @€�ØHÀB’qøA€� @ 6–,Y_ýêWãᇎ‘#GÆöÛoÍÍÍqÌ1ÇIJeË¢®®.Î:ë¬~oüÏþó¸ä’KâÉ'ŸŒ#<2Î9çœ8üðÃû½]@€@ÿúÇÝ]  @€�ôX ýE~æÌ™ùùóæÍ‹‰'æûO=õTœtÒIñè£Æe—]Öãúªuâ7¿ù͸ýöÛcÇwŒ»îº+®¾úê¸å–["µ3…$6Ê'àñŠò¹ @€�Hàé§ŸŽO<1ž{î¹|¦C%pH]˜2eJü⿈Q£Fõ{žy晘0aBÜ|óÍ1{öìøú׿ž·iñâÅ1wîÜ~oŸ Ð?f:ô»» @€�è‘À¹çž+W®Œ!C†ÄqÇ·É5;í´S\|ñÅ›”§‚E‹Å Aƒb̘1¯¦Ç3ZZZbôèÑ•¢¾{RO C:"©’ÔnWlÄéR J5Ü:K€� P$W^y%\!µyÒ¤I1|øðN›ÿá8V¬XÑvlÁ‚qÆgä!Bz¬aéÒ¥qà 7äkA\qÅqÁĺuëâ¼ó΋U«VÅ5×\“_{ 'Äu×]þšÐ]=m7ëd§µµ5¾øÅ/æGæÌ™“ÏÈèä4E”@@èP‚AÖE @€�b ¤E#+Û¸qã*»›|×××Lj#òòÕ«WÇ»ßýîX¸pa>C¢¡¡!+N;í´¸õÖ[ó…/½ôÒxðÁóÇR‘ߘ1cFÜxãqÇwıÇ›«g“F¼VðøãG /ÒB’iû—ù—<txãßøÚ¾(“€5Ê4ÚúJ€� P(—^z©­½iö@O¶ë¯¿>Ò:i}…ôhCSSSŒ;6n»í¶xùå—ó*Ò#iKo—8äCâ]ïzWþ;ýñì³Ïæû=©§í¢v;Ó¦M‹ÿøÇqꩧ楩¾4£ÂF€@9Ìt(ç¸ë5 @€@öÝwß¶V>ôÐC±~ýúüÕ˜©0½)â»ßýnÜÿýù9)\8å”SÚÖoHTœ~úéù±TO Òb”­ïfCT¶´¶CÚÒ1Ò¶%õädì³Ï>ùci½‰o|ãñ»ßý.–/_Þåã!•ë| 0ð„oLõˆ� @`€ì¹çžyHf(¤ÅÓ#“'OÎ{wþùçÇa‡o~ó›óßiÖBzkÄ'?ùÉü÷ÚµkóWVVÖgØR’ÊÌŠm©'-p™åHkQ 6lK›à|€€Ç+À ê @€ÀÀHk5|ùË_nëÜ<жŸvÒ#•m=öÈw§Nš¯Y³&î»ï¾Êá|áÈæææ¶ß›ÛÙÒzÒ‚”¿úÕ¯ò…)+u§°!½Î3­1QWWW)öM€@‰„%l]%@€�(žÀYgiÈ´]rÉ%yxPéEú‹~Çíä“OŽwÞ9/N³!Òb”óçÏTÏ‹/¾˜—§E"ÓV !Ò›,*[e¿'õT®Ißéo{ÛÛâàƒn[Dò׿þu¾ÀezÄF€@9<^QÎq×k @€�‚¤×^{mwÜqqá…ÆôéÓóµÒ ‚oûÛùB‘騙gž™÷(•ßtÓMù+3Ózûï¿ì½÷Þy)Œ¸òÊ+ÛÖkHoª˜7o^üä'?iÓH¯ÔLõí¾ûîÝÖÓvÁk;)ÔøÁ~×ù8ꨣbâĉñ‡?ü!ugÇóý&@ B‡rŒ³^è3»ï¾;/^Üg÷«•¥UÁ8âˆZiŽv @€À�øÀ>éóüóÏç³ÒâßúÖ·b×]wŽë6¤7R<öØc‘^_9tèÐü/ÿ’³Ï>;Ò§ý–Öƒ¸è¢‹ÚåûÝÕÓñäô—,Y’‡©=S¦LÙ¤]¯ñ›�/ tøc¬‡úT iel PôFˆôÙÜ–ÖƒHo‘ØÖmKêIçî·ß~ÛzK× 0€„h0u…@- <8'x-µ©mI!KZ¨ËF€� @€À¦B‡MM” Ð éqƒO<±jªí*æÎkfGm‘Ö @€�ô£€·Wô#¾[ @€� @€�, tÈ£«o @€� @ „ýˆïÖÊ pÍ5×Ä{ßûÞ8öØcÛ>ÿãü|Eí"ôÿ¶Ûn‹·¾õ­±Ûn»Å 'œ=ôPš­ @€�jBÀš51 A`à œqÆùë²Þÿþ÷ç?~|Ü|óÍ1dÈ~íô=÷Ü·Þzk§¯«4,½küÔSO­üŒgŸ}6—ùƒ>˜¿ž¬í€ @€�:0Ó¡S…ô¦À¡‡ÚVÝÐïË/¾˜‡ ¯¾új[»:î¬\¹2.»ì²øÑ~¿ýíoãøãÏOIï¿þúë;žî7 @€�˜éÐ Š"úO`Ù²eÑÒÒ£Gî¶/¼ðB´¶¶Fš9±%[ ¦OŸžÏZèîº ÄUW]“'OÎO›3gNþNôæææH¡…� @€�Í 6oä ª$pÅWÄ\ëÖ­‹óÎ;/V­Zi ˆ´¥õ®»îºüÑŒï}ï{qöÙgGš}Êëëëã7¿ùMüíoËg |ç;߉k¯½6Î?ÿüX¿~}|üãÏ|æ3qÎ9çÄ 7Ü×wã7ÆŒ3âk_ûZ¤@!méØý÷ß—_~y¼á oÈË*¼ño¬ìæßcƌɩX¸pa¼å-oÙèXúñôÓOÇÕW_½I¹è'§îŠx<»÷­¯}÷ w½°<?ë®»²kž˜ßƒ+œB :i†ezý¸À@: „QÔH¡À¥—^i„¹sçæ!À‰'ž˜‡)$¸ãŽ;òÅ'O;í´¸òÊ+óßóæÍ‹´äI“bŸ}ö‰[n¹%>ÿùÏÇ%—\_úÒ—â™gžÉƒ‡Q£Fåu§uÚoéÜôÈDZòä™Çoõ�� �IDAT“Oޝýëíw¹ŸfV¤Àá°Ã‹w¼ã›œwï½÷Æ÷¿ÿýMÊ @€@? ÜyUÖ€ôéÁ6õÀˆ·ÍÈgº]%tè˜Sª%0{öì˜5kVµªW/>:ô)·› ÐQ`РAyÑ‘G‡rH¬]»¶í”´pce«œ—ÎÙk¯½òâ´ÿÇ?þ1Ÿ‘B‡¦¦¦Êéù÷àÁƒ7ú½-?¾øÅ/ÆÎ;ï) ©´¥}})Œxç;ßÙ¾È~ôˆÊwÞG}tÌœ9³ÃQ?  ÐËi¦Ã¼,l8ò#¦Õ£ÊÓL‡«žz)þñÿ1ŽÚqx®qÞ¨üßÊÞ¬S]ú[@èÐß#àþl$ÐÐÐÐö;­íÐÝ–^c™¶Å‹Çòå¦ÄvwþÖK`üð‡?ŒŸþô§yðÐY=ií‡4KÃÖ½@ Ràà¿Þtïä(½ pOVÇâ,t8. ŸÕ³ …?Ž£Ž:*f‘Íz°èô+m’€·W ¤ÑÔ%¨Ì8HAEoÎjhϘüÈG>?ÿùÏc¿ýöË¥G<žzê©ö§Ù'@€� @ 3:AQD€@1žþù¼¡S§NÍ­¨««ëÕ†§…-ßûÞ÷æ¯×|ì±Çâ‘G‰—^z).¾øâxàzõ^*#@€� 0„qTõ‰@ ´_›¡Tš¸zõê|7½Š2méM•­ý~¥,ýå?=J‘f6ü×ýW^ü‰O|"ÿž0aB<ùä“y8êýÙÏ~V¹,£òcذaùîÃ?œ/(™Ÿè¸Æ@z´ã}ï{_¤ÌóUÌ+gßéM#FŒhWb—� @€�Î<^Ñ™Š2zM ½ÎòŸþéŸÚê›?~þüG}4#EúN[zSEzlᢋ.j;7½RóÏþsÛï´3zôèxÏ{ÞS¦LÉß&‘‡3Ï<3?çSŸúTì¸ãŽqûí·GZïáñÇÓ»Ò"öØc¸é¦›ò@"ýþà?˜¾ò0á+_ùJœrÊ)ùïö|úÓŸŽ›o¾¹}QÛþ¡‡Ú¶o‡� @€�®ÌtèÚÆzAàôÓOôélÛwß}ãì³ÏÞèPz‹Eûàa£ƒÙñãÇÇþçÆO<‘¿¿z̘1m§LŸ>=þú׿Ƃ bÚ´i‘·HDzëDûíÜsÏ̓‹úúú<¤h¬²ÿå/9ÒÇF€� @€ÀÖ ¶ÞΕt#Þ(1wîÜnÎØ²C/¼ðB~Á¢E‹zToz•f_l©Ÿ6 @€�::t�mX³fM<÷ÜsÛXˆËׯ_•µ R˜ðÌ3ÏDc£}õ ®J @€�TQÀÿj¯"®ª ”Q`ìØ±½Þí_þò—qÐAåŸTyZû!-ò˜^•Y+Û¸qãj¥)ÚA€� @ f„53B``qĽޑO<±×ëT! @€�ÕðöŠê» @€�(¥€Ð¡”îÓ @€� @ úB‡ê» @€�(¥€Ð¡”îÓ @€� @ úB‡ê» @€�(¥€Ð¡”îÓ @€� @ úB‡ê» @€�(¥€Ð¡”îÓ @€� @ úB‡ê» @€�(¥€Ð¡”îÓ @€� @ úB‡ê» @€�(¥€Ð¡”îÓ @€� @ úB‡ê» @€�(¥€Ð¡”îÓ @€� @ úB‡ê» @€�(¥€Ð¡”îÓ @€� @ úB‡ê» @€�(¥€Ð¡”îÓ @€� @ úB‡ê» @€�(¥€Ð¡”îÓ @€� @ úB‡ê» @€�(¥€Ð¡”îÓ @€� @ úB‡ê» @€�(¥€Ð¡”îÓ @€� @ úB‡ê» @€�(¥€Ð¡”îÓ @€� @ úB‡ê» @€�(¥€Ð¡”îÓ @€� @ úB‡ê» @€�(¥€Ð¡”îÓ @€� @ úB‡ê» @€�(¥€Ð¡”îÓ @€� @ úB‡ê» @€�(¥€Ð¡”îÓ @€� @ úB‡ê» @€�(¥€Ð¡”îÓ @€� @ úB‡ê» @€�(¥€Ð¡”îÓ @€� @ úB‡ê» @€�(¥€Ð¡”îÓ @€� @ úB‡ê» @€�(¥€Ð¡”îÓ @€� @ úB‡ê» @€�(¥€Ð¡”îÓ @€� @ úB‡ê» @€�(¥€Ð¡”îÓ @€� @ úB‡ê» @€�(¥€Ð¡”îÓ @€� @ úB‡ê» @€�(¥€Ð¡”îÓ @€� @ úB‡ê» @€�(¥€Ð¡”îÓ @€� @ úB‡ê» @€�(¥€Ð¡”îÓ @€� @ úB‡ê» @€�(¥€Ð¡”îÓ @€� @ úB‡ê» @€�(¥€Ð¡”îÓ @€� @ úB‡ê» @€�(¥€Ð¡”îÓ @€� @ úB‡ê» @€�(¥€Ð¡”îÓ @€� @ úB‡ê» @€�(¥€Ð¡”îÓ @€� @ úB‡ê» @€�(¥€Ð¡”îÓ @€� @ úB‡ê» @€�(¥€Ð¡”îÓ @€� @ úB‡ê» @€�(¥€Ð¡”îÓ @€� @ úB‡ê» @€�(¥€Ð¡”îÓ @€� @ úB‡ê» @€�(¥@c){­Ó @€�[`å+úwÏœž÷ó©åÎ}ꮈºù=¿Î™6'°ÿñÃÇnî,Ç H¡Ã€V"@€�”\àåg6�<qgDúôd[`vÖŒˆyWEÜ-tè ™sz(0svÄá³zx²Ó ,¡ÃÀO½!@€�H»°ÁaêÑÙ_öfnØßÜŸOf3îz)âÈŒØkøæÎvœÀæÒL›ž†^›¯Í ) t(ä°i4 @€@RàÐÓÿ¼>›Ýp×#¦•]“f=Øô‚€Ð¡UQd Iyô´� @€�Ô°€Ð¡†GÓ @€� @€@‘„E=m'@€� @€�5, t¨áÁÑ4 @€� Pd¡C‘GOÛ  @€� @€@ jxp4� @€�Y@èPäÑÓv @€� PÃB‡M#@€� @€�E:yô´� @€�Ô°€Ð¡†GÓ @€� @€@‘„E=m'@€� @€�5, t¨áÁÑ4 @€� Pd¡C‘GOÛ  @€� @€@ jxp4� @€�Y@èPäÑÓv @€� PÃB‡M#@€� @€�E:yô´� @€�Ô°€Ð¡†GÓ @€� @€@‘„E=m'@€� @€�5, t¨áÁÑ4 @€� Pd¡C‘GOÛ  @€� @€@ jxp4� @€�Y@èPäÑÓv @€� PÃB‡M#@€� @€�E:yô´� @€�Ô°€Ð¡†GÓ @€� @€@‘„E=m'@€� @€�5, t¨áÁÑ4 @€� Pd¡C‘GOÛ  @€� @€@ jxp4� @€�Y@èPäÑÓv @€� PÃB‡M#@€� @€�E:yô´� @€�Ô°@c ·MÓ @€� @€�~hmmôY·n]455埆††µJèÐ#&' @€� @€�r ¤ aíÚµùgÅŠÑÜÜ)l>|xŒ=:ÿ:th^Ö•ŒÐ¡+å @€� @ ¤)`HAãZ?¸oiÜÿL],iØ.Fï<$NÚmy>Ṙ6i‡˜8qbŒ3¦K%¡C—4 @€� @€�ò ´´´Ä’%Kâ?nûK|ïŽÕ;e¡ÂØíóÏ ÃãšÍ1ÿÉæ˜¾lIµü‘Øo¿ýbĈB :eQH€� @€�Ê'°~ýú|†Ãwoûs|ï®UqôIoˆ;µFl7,bÌàØ{û!±g<ì4¤>ž~idl÷ç?ÇvÛý1¦NÚið t(ß?CzL€� @€�:HU,|nI<õÒ øÈYûFëÐ1~B]|áš1¤)vÚ; c†Š¡£†ÅŸŸiˆ?ý屨a‡—b§vÚ¤N¡Ã&$  @€� @€@9Ò*~õÀ’xÓ~»Æè±#¢µiH ]WñüºØ½±)FdŸaÙ,¶<$ ‰Øa—í³bTLzñÅNÁ²+m @€� @€�ÈßPñÜ‹­±C8 2(76ÄÆìqІúÞXƒê룩aPDöÆÌôÖÌ¡#†Æ‹-#céÒ¥ò™éÐ)‹B @€� P>ôšÌ¯F ÚnH4Ô7Dk]CÔ××å3Ò¬…Ö,thºhÉ~´ÔEÔ jˆeuCò×jv¦%tèLE @€�(©Àšu-Yšu¾®.Ö¿f°2ÛÉÖ˜ŒÖÖºhξ×f§4fëKÖ¥�"+KaEg›Ð¡3e @€� @ ¤--)aȇôÉC…ˆ¦õÙ ‡ì³&KÖ6gadÓÖe9C}–D¤Œ¢«MèЕŒr @€� PBôÚÌæ,p¨Ï‡4¡5Û_ž#³ý64g3RàЇ Y‘íwµ º’QN€� @€�J*­ÙRÙzé{} j¬‹lù†üÓÔ°>²õ%óý´ÎàôG›Ð¡ Å @€� @ ŒiâBZ·¡>ÍlHë8dŸuÙk²ßé³.›é¯éðÚcf:”ñŸ}&@€� @€�[!Mlȃ†|È´Ÿ ˳€¡5}Rð}7eŸÆì“VšlIß]lÝL‚èâ Å @€� @€À€Ȳ„lÛðgúš}ÖeŸÖìGZ<²þµCÙ²iÍÉ.7WtIã� @€�(§@ZÏ¡.­ç… õ Ù‹1³‚´vCS*Ï> Ùš铎g‡»Ü„]Ò8@€� @€�Ê'B…:¤Å$óµ²Ù C³ßi!ÉÆ,ahʾÓgHöI›…$78ø“� @€�è@ö²Š<xH¹BzƒE>«!û‘‚‡Áé;+”?cQ—¿É¢«*ÍtèJF9 @€�(¡@>Ó! Òc•С)6Ì~È_™¥ MÙ'åéXW›Ð¡+å @€� @ ¤éñŠ4Ã!… •™•Ç*Òw>Ó!ûN‹J6¦d¢‹MèÐŒb @€� PF´€dCåóÚB‘)dHáBšÕ‡ëóÇ,’OSþ˜EçRB‡Î]” @€� @€�Ò ä³²€¡2Ó!-*™‡<¤�¢2ë!OǺڄ]É('@€� @€�%È­Èú]ùÎ×xhȣȆ6T‚‡´¶C] ²ï®6¡CW2Ê  @€� @€@ Z³ !ûÿùÙ’ ¾[ë¢e}]4·F´fŸuÙ'í§Ð!ýîj:t%£œ� @€�”T ÍÙ§% Ò~únnɾ³ÏÚ´Ÿ}Ö5oÀIDW›Ð¡+å @€� @ „ë³!… yà}·f©Ãº,lHáBþIûYà°&ûÖtX×’½ê¢‹MèÐŒb @€� PVôÈDþI3²G+ò™ i–CöI3Öfei*Dl8Ö•“С+å @€� @ „i‡¶G*²þ§ýÕÙ'ÍrHW¤ƒ²ïÆì;-þàñŠþC¢Ë @€� @`kÖdL´æ3²™ Íu±fmÄÊìÕ˜¯Ž¼&Û´>š³YÙY±";ÖÕf¦CW2Ê  @€� @€@ Ò+2òOzMfzuföªÌìwk¶ß”}›Ò«3ëcpS6Ñ!{£Å ¬¬«MèЕŒr @€� PB†,u¨Ïž›¨Ï‚†8Ôg;M C³U#³¬!gåéÓ˜ý®Ëž½hÌŽuµ º’QN€� @€�J(PŸ…uYè°á“ÍzÈ‚†úº–h¬«Ïf5dÁCD4dßYðífÇZ³`¢óé—–U—  @€� @€@ÙRx0hðúX³bu¶€dZ)²5Ög¯±XÜÜœ­íÐ’=NÑš…-ù ‡úl͇ÖìuÃbM 4¨S:¡C§,  @€� @€@ùcâ.Mñ·¿.‰æuëbݺ–X…¯dïÌ\‘}¯jiŽUY�‘G¶«–­ˆcil¿ýöb :eQH€� @€�Ê'ÐÔÔï8x‡øíËⱿ¼‹W¬‰§^\‘¥ ­± ›Õ°dUs¼ºrm,[¹2–.[Ï>ûrì9biŒ7®S,k:tÊ¢� @€�”O Ít˜4atì¿Ëâ¸rÎüxû»ö;þ’Mi9<-Þwg 9ØÒ;¯­º—–Å!Ûý5¦ì¶Cì°Ãb :eQH€� @€�Ê'P—½¹bذañécíú?Çœ>1fTÄ«#ÆŽŒxµ)æ¯[nls&½‡ïÑ{î¹g :´S,¡C§,  @€� @€@9b̘1ñáƒãí·8¾÷’¸ÿéçcɲe1zÂà8fºxǤˆ}&‰'ÆèÑ£³&³×Xt² :AQD ,k×®'Ÿ|2î¼óÎ8úè£c¯½öêrÕÙ²˜è' @€�é1‹Q£FÅ›þnxì¿÷.±bÅŠìíÍ‘‰áÇçACúN3RY:ÖÙ&tèLE’¤Àá–[n‰=öØ#.\˜ÿ còäÉ%é½n @€� Ð@z}ævÛm—?n‘f3¤--4™>C† ÉÆtNw›Ð¡;Ç p»îº+=ì°˜4ib 6<֬ɞӲ @€� @ @ Òl†ôI3 ÒwZû¡'›Ð¡'JÎ!0@þþïÿ>û—E}L›:5Ò¿H–/_>@{ª[ @€�ô‡€Ð¡?ÔÝ“@L˜0!›Ý°&Z[[ceöžÝ®©‘æj @€�:lÀ4—@o 4(_8rݺuù©Þ¬[] @€�è~Å> @€� @€�­:l%œË @€� @€�î„Ýû8J€� @€�l¥€Ða+á\F€� @€�t/ tèÞÇQ @€� @`+„[ ç2 @€� @ {¡C÷>Ž @€� @€�[) tØJ8— @€� @€�Ý º÷q”� @€�ØJ¡ÃV¹Œ� @€�è^@èн£ @€� @€ÀV ¶Îe @€� @€@÷B‡î}%@€� @€�¶R@è°•p.#@€� @€�º:tïã( @€� °•B‡­„s @€� н€Ð¡{G  @€� @€�­:l%œË @€� @€�î„Ýû8J€� @€�l¥€Ða+á\F€� @€�t/ tèÞÇQ @€� @`+„[ ç2 @€� @ {¡C÷>Ž @€� @€�[) tØJ8— @€� @€�Ý 4vØQ лsæÌéÝ ÕF Ž?þø;vlÜÉ- @€ÀÀ: ¬ñÔÔ¼ÀwÞéc#P$Ù³gǬY³ŠÔdm%@€�5! t¨‰aÐ |3f üNêá€H3s„dnXuˆ�úP@èЇØnE€�2 Œ5Ê).ó?�î»Ð¡Àƒ§é Ðï’ì÷!Ð� @€� 00„s\õŠ� @€�ô»€Ð¡ß‡@ @€� @€ÀÀ: ÌqÕ+ @€� ÐïB‡~ @€� @€�S@è00ÇU¯ @€� @€@¿ ú}4€� @€� L¡ÃÀW½"@€� @€�ý. tè÷!Ð� @€� 00„s\õŠ� @€�ô»€Ð¡ß‡@ @€� @€ÀÀ: ÌqÕ+ @€� ÐïB‡~ @€� @€�S@è00ÇU¯ @€� @€@¿ 4ö{ 4€� @€�¶Z`Î[}i¡/<~bÄØ!…îB)/t(Å0ë$ @€�UàοF¤OÙ¶ÙGGÌšV¶^¯¿B‡â™ @€� @ fL.'BšÙQÆ¥¨£-t(êÈi7 @€�¥5¨¼ÿ¥_èPœô-$Yœ±ÒR @€� P(¡C¡†Kc  @€� @€@q„Å+-%@€� @€�…:j¸4–� @€�G@èPœ±ÒR @€� P(o¯(Ôpi,Qàî»ïŽÅ‹±éÛÜæ±cÇÆG±Íõ¨€�(¦€Ð¡˜ã¦Õ P 8<÷Üsj±¦ @€�zG@èÐ;Žj!@€�›<xp¤ÿò_†--kÖ¬)CWõ‘�èF@èÐ bо�� �IDATŽC @ 7Ràpâ‰'öf•5[×ܹsÍî¨ÙÑÑ0 ÐwB‡¾³v' @€�lV`Μ9›=§L'üñ¥™)8ÇUè0GUŸ @€�(¬ÀwÞécÛ 0{öì˜5kŽ‚  :pšM€�ŸæškâG?úQ¼úê«mÙc=â£ýhì³Ï>meµº³hÑ¢¸üòËã÷¿ÿ}Ü|ó͵ÚLí"@€@¡f̘Q¨öV»±iƇð¥ÚÊÕ¯_èP}cw @€�›œqÆÑØØïÿûócãÇÏÿò>dÈMÎí«‚{î¹'n½õָ袋º¼åï~÷»øú׿×_}¬]»6:è .Ïu€�¶L`Ô¨Qþ‹~2¡Cþ¬/`›5™� C=´­p@ôgàðâ‹/Æ©§žºÑÌ‹¶ÆµÛimmÿ÷qãÆµ+µK€�è\@èй‹R P3Ë–-‹%K–l¶=/¼ðB¤Ç¶tKuOŸ>=ž}öÙÍ^zÈ!‡ÄèÑ£câĉ›=×  @€�Wøg€�ÔÀW\\pA¬[·.Î;ï¼XµjU¤õÒv 'Äu×]—?–ñ½ï}/Î>ûìX¹re^^__¿ùÍoâoû[¤U¾¿óïÄöÛo—]vYœþù±~ýúøøÇ?ŸùÌgâœsΉn¸!¯óÆoŒ?üá±`Á‚üw*¿ÿþûóõÞð†7äeÛòÇÓO?W_}õ¶TÑë×Z½×IUH€�º:tIã�è{\zé¥ñàƒÆÜ¹sópàÄOŒ´¸X î¸ãŽ8öØcã´ÓN‹+¯¼2ÿ=oÞ¼Hë1Lš4)_„ò–[n‰ÏþóqÉ%—Ĺçž_úÒ—â™gžÉƒ‡ô¼pªÿ?øA[çÒ¹iQˇz(N>ùä|͆¶ƒÛ¸sï½÷Æ÷¿ÿým¬¥w/· zïzª�t' tèNÇ1 Ѓ Êïzä‘GFzœ!-ØXÙÚ?Q9/³×^{姤ý?þñùìˆ:¤­©©)ÿ®ü1xðàÊnÕ¿;ì°xç;ßYõûôäVAs @€@ï z×Sm @ ×ÚêliiiÛïlg·ÝvË‹/^Ë—/áÇwvZŸ•Mž<9ÒLZÙ¬‚^+#¡ P I–e¤õ“�J!P™ý‚оœÑP \$@€�¶X@è°Åd. @€�µ+ðüóÏç›:ujÛcuuuµÛ`-#@€�´€Ç+ôðêÔ²@ûõ*aAjïêÕ«óf777çßéM•­ý~¥ì±ÇË¥H3þë¿þ+/þÄ'>Q9&Lˆ'Ÿ|2y䑼îŸýìgmÇÒci6lXþýðÃç J¦7XÌœ93/ëøGzÄãÑGÍ‹+ T 6:*ùM€�v÷Ìi÷Ãn—û1|l—‡(¦€Ð¡˜ã¦Õ PpôJËôV‰Ê6þüü/ù{î¹gÛ_èÓ›*Ò›)~ò“ŸTN‹ôJÍãŽ;.vß}÷¶²Ñ£GÇ{Þóžxâ‰'â/ùK¤ÀáÌ3Ïl;þ©O}*¯óöÛo´æÃÇ>ö±üØ{ì7ÝtS¼ímo‹~ðƒ‘Þ4q×]wÅW¾ò•ü•™m´ÛI¯¿üéO¯¼òJ^úòË/ç¯îLo×H¯¢´ @€@'OÜ‘>¶îfÎŽ8|V÷ç8Z8¡Cá†Lƒ  @` œ~úé‘>mÿú¯ÿºQqz‹ÅE]´QYûãÇÿüÏÿÌC‡±cÇÆ˜1cÚŽéÓ§Ç_ÿú×X°`AL›6-Ò¬„Jì¼óÎm祷_¤à¢¾¾>vÜqǶòŽ;³fÍŠô¹öÚk;ò›�: 0#¢óIcÏ,÷ï4D(3`ÿ: Ø¡Õ1(‹@kkkÞÕ´ŽCW[ZXò oxCÛáöC¥0…6èE¡£ü—ûžr z*U¸ó„…2 &@€�¢ ¤õæÎÛ+Í_¿~}>s!Uö›ßü&n¼ñÆhl¬ÿ³^Y+¢W:« @ °µó¿N K¨á @ gkÖ¬‰çž{®g'oæ¬ßþö·1yòäü“N½êª«â]ïzW¤ 6 @€@­je$´ƒ�¬@Zg¡··´þB¶qãÆ¡™ÕoãÊláÍnªþ}zûV’ïmQõ @ tB‡Ò ¹ @€@_ qÄ}}K÷«58Ìyý"µÖ¼.Ûc%ù.i @`à ¬^×Cšü•y[Gšà¶ ºž� ÐS©Gg‹Ê`){+É÷tDG€À�¸÷OÏÆO,ŒÏpô�îeõ»&t¨¾±; @€�6¤À¡(ï ·’¼j  Ÿ¿ù—ÑÒº>þí¤·ÓØJú­¼Îe @€� @`À \të¯âÿøŽßÏjuPèP-Yõ @€� @€À€<lý0 ¶ÞΕ @€� P<|îæ;KÒÛÞë¦5zÏRM @€� PPïÜû`\5ïm­eåê¶ýÊNZãaÑÒåqØ»VŠ ñ}üßM±Ã‡öK[…ýÂî¦ @€� PK)p¸óñ…›mÒc‹Çüê÷›=¯–N˜=뤘uÄýÒ$¡C¿°») @€�ÔªÀÑÓ&Ešé0ÿ/‹6jâ‡ßvp|訃â¡ç^ب¼V̹ç)Õl¿Ð¡šºê&@€� @€�B ¤À᎙™ÿeýí_ÓÖöÿ9ý¨ø·oÆúúxÓÄ]ÚÊk}§'³7ªÙ¡C5uÕM€� @€�…øÌqo;éí…ïGtÀÛ+úCÝ=  @€� @ 鑊Ϟð¶B´µi¦C-ŽŠ6 @€� @€@¿ ´¤¢ßSÐ :pšM€� @€�ÕH¯ÅLë;ضMÀãÛæçj @€�€Cšü7úÞV¡Co(ªƒ� @€�ØD@t³ ‰ @€�¨ºÀ‹OE<u׆OºYÚOÛø½#&¶a¿ÝŸÍ­ßÿcÄ]‹6V¾Ó¯Ó÷ŠìU–íN¶[3†¥f†BC @€� P2kÎŽ˜wÕ†N§ï9gF¼´°S„*\µ`Ã'öϼ3â?8t V#…B‡Í @€� @€@©ÆM‰˜rÔÆ]>6bÿã7.k÷kæÔv?^Ûí¬lÓ³”ô—€Ð¡¿äÝ—� @€�e8|æÆo<9bððËÚý:yˆáM¯ iˆø‡,»°Õ®€Ð¡vÇFË @€� 0°þ‡ˆ‘ã_ïcÇâõ#ù^ >”-ùPÙfLŽ5¨òËw- jqT´‰� @€�ehñæ,xHÛ.ûEL<8^yå•X¸pa,^¼8/Nßéw*OÛÌiùWþÇG²Klµ- t¨íñÑ: @€� lÃ^{ÄâDÔ7Æ×¾öµ˜<yr\xá…y¿ÓwúÊÓvà>û‰8x\^äh¬á¶i @€�P`msK¬É>=ÚÆíCw{S¬:ð}±~õÚøÐ¹çÅ)§eD‡mûQÛÇ«Ùñ´ýÞ ±:«~ÕÚÞ£C]ýli]Ÿ§ïtŸÁ 1(ûضM@è°m~®&@€� @€�_øÉ¯ãó7ÿ²Ci×?Ž7ÅïþõÛ]ŸÐñHc¶Ød}}|ní²ŽG¶ù÷¯Ÿ|&Fþóãs'Ÿ=ámÛ\_Ù+ðxEÙÿ Ð @ v–oxž¹v¨eèßÅ.[VQóòˆ*[Ög÷D@èÐ%ç @€�úC`îÿޏÿ†þ¸³{ @€�^ðxE¯0ª„� Pu«#®8%âô+#ŽúPn JTGà½ë-ñ‰¿?¢:•÷Q­ƒ¬çÐÔB‡ÞPT @ šß9;bøØl¹öÕ¼‹º  ÐkiF‹0ög¡+òxE¡‡Oã  @€�Ò\uZÄü›JÓ]%@€�!`¦ÃÀG½ @€�‚Ào¾1ïª×{²hÁëûéQ‹Ëß1svÄ®F<;ÿõc½½wÏœ 5V¾{»þ¾¨¯Èmï ÷ @€@ úÚm @€�›HÃwvÚœ3#Þ”­óðût^oMmÙ\{zã>ê @€�+ t°C«c @€@¡¦‘f:,[´q7ÆïñÖó"ö{÷Æå~u.°ÿñ—+%@€�>:ô ³› @€�¶@ ¿#"Íj¸çê×/LÃ?‰ØaÒëeö @€@ jxp4� Ð&°[¶ŽÃG~¶á-m…v P»K–,‰¯~õ«ñðÃÇÈ‘#cûí·æææ8æ˜cbÙ²eQWWguV¿wà¶Ûn‹/|á ñôÓOǘïï¿ÿþýÞ®Ò�¡Ã@Iý @€�®À.û îèê)ðóŸÿ<fΜ™÷mÞ¼y1qâÄ|ÿ©§žŠ“N:)}ôѸì²Ëú½ï?øÁâÔSOmkdzÏ>©½>ø`ìºë®måv¶^À+3·ÞΕ @€�ê Œ›²á‘Šác«/w @€@/¤'žxb<÷ÜsùL‡Jઞ2eJü⿈Q£Fõ¶­Š•+WæÁÇ~ô£øíoÇ¿a ˜4Cãúë¯ß¶Ê]Ý&`¦C… @€@ ìz@Ä{¾1r|5Ls еÀ¹çžé/ôC† ‰ãŽ;n“wÚi§¸øâ‹7)¯,Z´( cÆŒ©uúÑhii‰Ñ£Gor¼'u,X° ®ºêª˜<yr~ýœ9s"µ-=òâ‹/nR§‚­:l›« @€�Õøo­þ=Ü�½(ðÊ+¯Äí·ßž×8iÒ¤>|x§µøÃŽ+Vlt,…�gœqF"¤õ–.]7ÜpC¾ÄW\\pA¬[·.Î;ï¼XµjU\sÍ5ùõ'œpB\wÝuÑØØÝÕ±ÑͲo|ã7*J!Gz¤báÂ…ñ–·¼e£c~l½€Ðaëí\I€� @€�íÒ¢‘•mܸq•ÝM¾ëëëcĈmå«W¯Žw¿ûÝù_øÓ,‰†††<°8í´ÓâÖ[osÎ9'.½ôÒ|­…¹sçæaDz„cÆŒqã7ÆwÜ‘ÝÕÑv³.v^xá…üþ‡vX¼ãïèâ,Å[* tØR1ç @€� @€@§/½ôR[ykkkÛþævÒ i-ˆ4Ó =–‘¶±cÇFz³ÄË/¿œ?j‘¹HÛ‘G‡rH¬]»6ÿþH @ö¤Ž¶ :Ùùâ¿;ï¼sbTîÕÉiжP@è°…`N'@€�Š%žÍýØÇ>óçÏÏžžßýå/™ÿÚo|ãùtÜbõHk  P»ûî»o[ãzè¡X¿~}þjÌTøÍo~3¾ûÝïÆý÷ߟŸÓÔÔ§œrJ^žÞf‘¶ôHÅé§Ÿžï§º¦M›–/HÙÙúi6DeKk;<þøãùÏ-©£r}jÓøÃøéOš•rßÛ. tØvC5 @€�5,žñ]¼xqÜu×]y+Ówú¤)¹é˜�zO`Ï=÷Ìg%¤Ù i¡Ç´>Be¡ÆóÏ??Ò£ o~ó›ó¦ ³gÏÎ÷+³"Òì…«¯¾z«þý¼µu¤E#?ò‘DzÍç^{í•·'½63-*™Þ¶aÛ6¯ÌÜ6?W @€�¨¼+¾}S;+kÜ>l¹@Z«áË_þrÛ…<ð@Û~Ú™0aBÛï=öØ£mêÔ©ùþš5kâ¾ûîk+O G¦k=Ù¶¦Ž´ å{ßûÞ8õÔSã±Ç‹›nº)£EZÐ2…¶m:l»¡ @€�H ‚¥ç„+Ûøñãcúô镟¾  @ Î:ë¬H @¦í’K.Éß8Q©>ý%¿³íä“On{¬!͈H R¦ÇâR]•×W¦Å&ÓV !R QÙÒ~OꨜŸ¾Ó#ï{ßûòÙoÿüÏÿ'tR¼ç=ï‰}èC1tèкlý-:l™—³  @€� ¤Ç(fÍšÕÖòôhEe¡²¶Âv;é•oiJpz,#mé;ýNå[´­ÌÎiaÄò õäßéwú¤c6 @ººº¸öÚkã;ßùN<õÔSyÈ{ùå—Ç÷¿ÿýHBZË!ý{øÌ3Ïlëý¨Q£òYi¶BZ_aÿý÷σ‹üãyqå•WFe݇ô¦ŠôøÃE]Ôv}z¥fzœ#ÍT誎¶“_Ûùô§?7ß|sÇâü÷¡‡Úi¹Â-ð ã–›¹‚�( À>ð¶ÿšžÝínûÚ×¾ŸÿüçÛN¹ð #}>ûÙÏÆç>÷¹¶òÍîüâk·¼^OüðÂÈ?éÂã?›}>·Ù*œ@€�¢ ¤ï¦ÏóÏ?ŸÏ\H ?~ë[ßÊgžu¶¦Nz#EzÄ!-™fLœ8±­ëgŸ}v¤Oû-­ Ñ>xHÇvß}÷.ëhmÚO´¤ãq¿{G@èÐ;Žj!@€�j\`ï½÷Î0KÍLûÝmýèG7šQ97ý—¸-ÚŽùhÄá³:¿d»-¬«óZ” @ æÒÚ=]!­ ±Ï>ûlSŸz£Žmj€‹7:lÄá 0 š³w·7¯Ù¤+3ßÿ¾ e«_ÝäXû‚QCbÔøÚ½¾¿™k_?1Û«Ï^ç6¬‹zÒ‰ëjmÙpyúNÇgŸ ï¥ßpÀŸ @ XB‡b—Ö @€�=¸í ?ÖðÚ5ÿeùöѽ¶S£_Oý:â£#7<~‘ð @€�‚  :pšM€�l¹À(“¶Í @`¼½bð\J€� @€�t-`¦C×6Ž @€�E˜þ¿"ŽýDQ[ÿz»LÍxÃQ@èPÄQÓf @ {´ø¢»7r”�ô€Ç+ú�Ù- @€� @€@„eu}&@€� @€�} tèd· @€� @€�e:”qÔõ™� @€�ô€Ð¡Ý‚� @€�”QÀÛ+Ê8êúL€�J"°dÉ’øêW¿?üpŒ92¶ß~ûhnnŽcŽ9&–-[uuuqÖYgÕ„Æ¢E‹âòË/ßÿþ÷qóÍ7×D›4‚�l«€Ða[]O€�Ô¤ÀÏþó˜9sfÞ¶yóæÅĉóý§žz*N:é¤xôÑGã²Ë.ë÷¶ÿîw¿‹¯ýëqýõ×ÇÚµkã ƒê÷6i�è-Wô–¤z @€�šxúé§ãÄOŒçž{.ŸéP R§L™¿øÅ/bÔ¨Q5ÑÞÖÖÖø÷ÿ÷7n\M´G# @€@o zSS] @€@Mœ{î¹±råÊ2dHwÜq›´i§vŠ‹/¾x“òTsxùå—;=Ö¾0=ž‘ßèjëi=‡rHŒ=ºm&FWõ)'@€�EðxEGM›  @€�.^y啸ýöÛóã“&MŠáÇwzî‡?üáX±bEÛ± Ägœ‘�i퇥K—Æ 7ܯqÅWÄ\ëÖ­‹óÎ;/V­Z×\sM~í 'œ×]w]46nøŸUÝÕÓv3; @ $B‡’ ´n @€�²¤E#+[w,Ô××Lj#òSW¯^ï~÷»cáÂ…ù ‰†††<¬8í´ÓâÖ[osÎ9'.½ôÒxðÁcîܹy‘ߘ1cFÜxãqÇwıÇ›«§Ò.ß @ ,B‡²Œ´~ @€�’¼ôÒKm=Më%ôdK‹8¦u vÝu×ü‘ŒtÍØ±cã¶Ûn˵3fL 4(¯êÈ#ŒôHDZô±²=ûì³ùnOê©\ã›�”A@èP†QÖG P"}÷Ý·­·=ôP¬_¿>5f*üæ7¿ßýîwãþûïÏÏijjŠSN9%R¨¶ôHÅé§Ÿžï§z¦M›–/FY9žxí4¢²µ´´ä»éiÛ’zò üA€�¨€Ða€¬n @€�² ì¹çžyˆƒL‹=¦G&&OžœsœþùqØa‡Å›ßüæüwšµ0{öìøä'?™ÿN³®¾úê¶õ¶Ô°2³b[ëÙÒû:Ÿ�Ôª€·WÔêÈh °Ui­†/ùËm×>ðÀmûig„ m¿÷Øc|êÔ©ù÷š5kâ¾ûîk;žŽlnnnû½¹Þªgs÷qœ�E@èP”‘ÒN @ ÇguV¤E ÓvÉ%—äo¨\œÞ<Ñq;ùä“cçw΋Ólˆ´åüùó#Õóâ‹/æåi‘È´UBˆHT¶Ê~Oê©\Óþ;=žQy4ã™gžÉ iÜ>(ª€Ç+Š:rÚM€�t)PWW×^{mwÜqqá…ÆôéÓóµFßþö·#­åŽyæ™y©ü¦›nÊ_™™Ö{Øÿýcï½÷ÎëHaÄ•W^Ù ¤7UÌ›7/~ò“Ÿ´Ý?½R3Õ·ûî»w[OÛívÒã?ýéO#½ê3mé±³Ï>;3ÆñÇßîL» @ xB‡â™ @€�=øÀ>éóüóÏç³ÒâßúÖ·ò·T46nü?ƒÒ){ì±xüñÇcèС1qâĶ»¤ }Úoi=ˆ‹.º¨}Q¾ß]=›œœÌš5+ÿ¤ÄF€�šÀÆÿ×v õN @€�™ÀN;í”6‡‘ÖƒØgŸ}6wÚf÷V=›½‘ @€@ XÓ¡ÆHó @€� @€@Q„E9í&@€� @€�5. t¨ñÒ< @€� PT¡CQGN»  @€� @€@ j|€4� @€�U@èPÔ‘Ón @€� PãB‡ Í#@€� @€�E:uä´›� @€�Ô¸€Ð¡ÆHó @€� @€@Q„E9í&@€� @€�5. t¨ñÒ< @€� PT¡CQGN»  @€� @€@ j|€4� @€�U@èPÔ‘Ón @€� PãB‡ Í#@€� @€�E:uä´›� @€�Ô¸€Ð¡ÆHó @€� @€@Q„E9í&@€� @€�5. t¨ñÒ< @€� PT¡CQGN»  @€� @€@ j|€4� @€�U@èPÔ‘Ón @€� PãB‡ Í#@€� @€�E:uä´›� @€�Ô¸€Ð¡ÆHó @€� @€@Q„E9í&@€� @€�5. t¨ñÒ< @€� PT¡CQGN»  @€� @€@ j|€4� @€�U@èPÔ‘Ón @€� PãB‡ Í#@€� @€�E:uä´›� @€�Ô¸€Ð¡ÆHó @€� @€@Q„E9í&@€� @€�5. t¨ñÒ< @€� PT¡CQGN»  @€� @€@ j|€4� @€�U@èPÔ‘Ón @€� PãB‡ Í#@€� @€�E:uä´›� @€�Ô¸€Ð¡ÆHó @€� @€@Q„E9í&@€� @€�5. t¨ñÒ< @€� PT¡CQGN»  @€� @€@ j|€4� @€�U@èPÔ‘Ó»¥=��„IDATn @€� PãB‡ Í#@€� @€�E:uä´›� @€�Ô¸€Ð¡ÆHó @€� @€@Q„E9í&@€� @€�5. t¨ñÒ< @€� PT¡CQGN»  @€� @€@ j|€4� @€�U@èPÔ‘Ón @€� PãB‡ Í#@€� @€�E:uä´›� @€�ô±Àúõë·èŽB‡-âr2 @€� Ð^ » BèÐ^Ê> @€�(±@wBw,]]'tèNÍ1 @€� P"ÆÆÆõ¶«¡ãÅB‡Ž"~ @€� @€�’ ,]º4z($¢Ê¹/¿ür§bB‡NY @€� @€�ò ¬^½:š››·¨ãéü+VtzСS… @€� @ |‹/Î„Ê †ž¼ð ]B‡ž:‡�ÿ¿½»û£ÊÓ8þkÛíö+q0qH‚)YÀH(¼Ȉվ€«]e¢ ³BqÁq—pÄŸEH / BK´ÊÜDb.€Õ*BÃA^¤ °K^HÇŽínw·÷÷û˜²«Ûqe½t}k¦RÕ§ªËUŸ„ãÓOŸ:…� €� €�ä@`rrÒÆÇÇmttÔêõúe¯XÁ„nÇÐ{š’¡@�@�@�œ Ôj5Ûºu«™Æi¨T*©ðAaƒ‚†³gÏÚ¹sçlÍš5³c;ÌçZÚ°”óßÅk@�@�@�h:õn(‹vçwÚñãÇCð 'Ztww[GGGÊår¸î––ëííµ®®.B‡¦û—À!€� €� €� ±€z1(L(•JvóÍ7ÛéÓ§ÃíêÙ YÛB(˜Ð>===áõB§AO‡…d(G�@�@�@ g  …BÚÛÛmÆ 622—Ô­ 4ÇÐAK½Ö{M„T(C�@�@�@ Ç 4·¶¶†[(,ÄÇbª§Cr¾I^N‡m €� €� €�äP †1xP¯ ±WƒÂ­Ç× ÑÓa!Ê@�@�r)°ï‹¯ryÝ\44ŸÀJë³<è– … ºÍBc8İa±ÀA¢„Í÷ïŠ+B�@�XÀ§Çþlš™@�¼ Äq¦¯z¬†ÑÑQ{íµ×쥗^ ã<h[ %.çDèp9¶!€� €�äFà±;Í~Ÿ›ËåB@ G¿õæ+¾Z©páý÷ß·¡¡!{ï½÷ìÅ_ ÇSùb¡ÃbBlG�@�È…@_W‡ý~û¹¸V.XŽÀ7ß|c‡ o9räˆ>|ضoß¾¤C0ä’˜Ø @�@�@�ü T*Û»wïœ ÷ÝwmlllNÙB/’¡@�@�@�œ <xÐ~øá‡9 .\°Ì)[è·W,$C9 €� €� €�9xì±ÇìÑGµZ­f/^´jµjÅb1ÌK¡!tXŠû €� €� €� C=*³^¯[|¢E|b…—¹”ii{-åHìƒ� €� €� €�$¬"€� €� €� €@v„ÙYr$@�@�@�H:$0XE�@�@�@�ìH2;KŽ„� €� €� €À/Z T*ÙþýûMHj°H ÙÑÑæä ’Ú¦}ÚÚÚ¬³³Óz{{^7¡CC @�@�@�ÈŸ@¹\¶Ý»w[OOOxL¦žZ¡§Wè‘™ÃÃóÌloo7Í $4;v¬!·W4d¡@�@�@�V*@è°RAÞ� €� €� €� ²Pˆ� €� €� €�+`L‡• ò~@�@�@�šT@c9ÌŸ5ˆ¤Ê–2:,E‰}@�@�@�È¡ÀÇlo½õ–i@Éjµ–zŠÅƒ>hÏ>ûì¢"Ü^±(; €� €� €� OGyĶlÙ2çâõxÌ;vÌ)[è¡ÃB2”#€� €� €� sÖÖVÛ³g©wCœvîÜ©__nIèp9¶!€� €� €� cÝV¡žêñ ippÐî¿ÿ~«×ëáV‹Åhb; €� €� €�9PØ'­?ùä“Ößßo»víŠÅK Hr–‹@�@�@�h$ÐÞÞn/¿ü²i<õrˆ³žb¡§Y,4-¼e¡wPŽ� €� €� €�M+ ñÔ»!Î *•ŠuuuÍ 8ÄÛ,’=#’0ôtHj°Ž� €� €� €@Î’aƒ‚…±±1»té’i=9 ¤ÖF”J¥9åI>B‡¤ë €� €� €�äX@·J(\¨V«!h¶ñññУA!ƒ¶ë‰êá ýb‡¸œOGè0_„× €� €� €�äT@Âwß}gç㉉‰ÐƒAã9¨7ƒ¶ÅÐ!.‹Åbèí@èÓ0\6 €� €� €�KµX[[[.ttt„Y=bo-c¡@b`` á §CC @ ¼þúë¦d3vR‚+-U)Ý\·n]H?U!é¾.MÚ΄�ä] v?UݨºTs³Oj„jÖïØ mökæú@�ÅbO�Õº]Amå‘‘‘pƒneÐvýÎÐ÷]ì˜ÉíÛ·o·Ï?ÿ<Y´èúüvýÅ‹íùçŸ_ô}ËÙÐa9Zì‹@Êå²=ôÐC¶yóæ9ÂQ…¨m_}õUX*|ˆ Kj›¬ÀrÈÆ%#€�A@ƒ¾1úþÔˆýlj²]m·Éj«×‘~/¬ïQðG ·§Zå´ÞÞ åæK­ûÿ§¡¾¢}5i¿ꆥ¯{Y‹þðiµŽQ¯ùç~z,šžšÖÙ9e½¥KvÇæ²Ý¸q¿î ¿#ÂIò C…qV;Zõ¢~Gèñ“úÒîî»ï_æ¼B×ÿ®dÒ-»víºì[uú—ÚYë:—ï¿ÿÞ>ùä“˾ÿJ6:\‰ïA G Ô`V"«uURª”8|ûí·!™UE©Þñ¾.-CƒØâ2Gd\* ô­ÕÐÐ}ðé);[î·_ß¾Ù®XcmþÝéòA_hõvšµúuõ™²š—×ë^ßξVcU„÷0ó}õÁ^ïQØÐêiD|½Zǘ¬ú9(tðs)øEMŽ{Àr~Ä=mGÿÇ~ûWׇqú=„�äQ@ì5i{Ài©zQ=á¾üòK»ï¾ûfŸQðߪӗۖîîî^¯Î#œ“Ÿ–¯…s8þ|hÏ/é�ËØ‰šXìŠ@TÑ©"œœœ “^+t8yòd覊MƒæØV¡C2xÈ£׌�ùP=©G‹½{èŒ}=Ôg¿ûíV[ÓÓåAA«7í<pðð E!B­`í ÂvóAQ_ÎÌÚGÁCÁ­šgB‡6¾Ãtàà÷Õ®â1¦¼EÙâçÎÉÏ£Ô]µÒš»½ý˲M|zÖžû‡^ëïï§ÇC¾ÿÓàêȵ@ bè ß ÔnÖGÚàà`ø²¯ W©Ã2¦ØN_ê[bð óÑ#1õ¥¢Î%ë‰Ð!kQއ@“ ÄŠ'TB~nÁĪõíõrˆ½ TiÆŠ3†Ë­,›ŒËA�œ ¨ž<vò¼}ôyÁþîo²bGÕ[ÛBO…)¿AA‚·5­êáB[ÕoãüC»z7(tP¹W·a©×aöתSÕlQt¡ÐÁËVßÞâ/Vó:ߢŸK­Õ¯ÇÏÓ ~­m>¦Cw«Ýö››ìßöýÑÚzÞðAÆ–ú-\NÿépÙ ФÉøú¯ÞpqÖwªß5¾Ã©S§lÓÆÖ2S&Ž=ÌzšÄ‡~n£ˆíô$Yè½,ðu}yøÎ;ïØŽ;¦ë`¯§Õ»!ž“Âå s¸mwB‡y!¼D�¹1TPºÝG¥U+X•’Bˆ:¨—ƒ‚‡ØÛA`¬<çW €@ó ¨1©gšÿë¿_4è·KÅN»To±ú¤7æ<1˜òè~7‚í0Ý£aÊS}±¤ödò¶ î °A!EX:ˆÚOûǺ¥A½ Vó K*êéàAŠ·“½ì„ŸûX­ÅFZ:Ì®ï·Ùýwzÿ]Ò¨¡Üüÿ2¸BÈ»€êðd/…šU'j›ÚØêqpÑÃõëÊøvÝ‚ñæ›oÚ™3gì©§ž ÇJšêË?þ¤²ƒÚgŸ}fÏ<óŒÝ{ï½³»(pÐÏÔÀ–±M?»1£B‡Œ 9 Í* Æ¡…P)VÊ^‘M4£J)q•ÑÓ¡Yÿ%p] °TÝ’¦o¢ŽüàÉÀú5ö‡ÓuûÃè°Ýîßú_[,Ùˆ'ã8\ðè•I³=SþA]I‚ׯÞVœôòšßvá÷`Ø„72˾÷õUÔèC‡¶Ý÷-úRsû̼šÇ¨L¶X·wq(y˲Ëç?¿3劯øú¼~­ùñRp¹ZÚ¥þý° °±W€<¨Ý¿¨Óvµ¹µMã©)hˆ½‰ÕÃxÿþýöÅ_ÌžºzIÄP"êx æO*ÓñÏ;go¼ñ†ÝsÏ=¶{÷nëëë ·Q+tÐÏUÛ^sÖ¡CÖ¢&Pe¦ÊPÕÄD9\Öc£Qƒ*'½Ž¡C¬<c÷¬¸l2.h( †›ƒj]ÞÓ¡ÏlMÉn-µZ‡ßnPñÛ JíÞÖƒ‚Nÿ,^öêÝ>8¤÷Po…ªn¯ðöbÕg}^Wà0áó¸ÏêùÐéÝa‹PµÿÌ\ò,Bï_Íc W¦Ï«w&<ѵ øïbqÊþÔZ±±É>»à”)ÀV£X¿;˜@�¼¨í¬IKÍ 4«ÛÉúÝ¡¶´^k›z«g±n¹xõÕWíÂ… s¸Tß7èµzKÌŸT÷ê÷Rœ^;vÌ^yåÓSç´MïsÜ/«%¡CV’&ˆ!‚*CUFz­I Çx[E\ª,V ÚWS\†ü�4¹€oª û6vØOþÕÿ]­¶ÅQÑÑáîz½¨`aÒÇq÷dA¦^ï±à-²°Í_ëÖ õx¨øzÙÛˆêù "Üzá=ôô Ï-ÂÜæ!FÑG— ½VñkýÖ‘vüK:ëðª_\Öý>’1ìáúñ‚š¨X߆Òl@­†5 '8h©¶´‚µ‘õ:†ÕjCÇv´lT®Û,|ðÁvøðáY2 ÚØ*Ÿ?é÷’~Nœxà{üñÇíÒ*×ÏÔ9Å6Ü/«%¡CV’&ˆ_¬ˆbÅ+E5¬5Ç^ZW¨íšU†MJÅe!€�A@!ì5×\c¹ùŒ}t©bë{JÖï½züÖŠ‚wO˜ôÛÔÊÞ&T˜0>é=üö  R2Nú¬/¤¦{:øcÌf‚‡šn¯ðI½4{牟o±e«wŒÑ:xOŒ¢Â›ž¶Q³ê¤ÿÓR³ Þ~hãôóèå£ß)L €@žâ‡~-ãyq=@Ä6wlSëõºuëì¹çž³#GŽØÛo¿mgÏží‘4Ôq uÕ&ß´i“=ýôÓvÓM7Íöºˆç¢÷Ævò˜Y¬:d¡È1hbU>ÉÊO•£*³ÎNïä›HFã~Zί°šø—†�)}¨Ö£!ÿvÓ·öéѲõ{7„µÖåƒ/ÔýÃø¤÷t(zà /£Z=tèí™îµ !D¨‡ƒ‚õr(Åu_*ðŽ!p=üù”ÏÁ³Þ0ƃÊVë¿–ö0¦CÁo#ñsô-Lù7yÕN¿¦ªmšªØ=ãvÝu×…rú=Á„�äE@mæùíáùíhY4ºe9Ö—zÿ¶mÛì¶Ûn ƒBª=·EG'¤ßAqÒÏФývîÜi?üðœÐWƒÂM 9®V LèˆùP壊JKUn±ÂÔ“+4èLOOO(Sy£y¡ãRŽ�4«€êKõt¸}p“ýîâY;qªÏn\w?6Ó¯Øo;ðN Öâ=ü šútîÝ[}�Fÿ îBàPôpA½ÂR¡ƒ*ÙâD ¦>èXèá0Z¬æ1ê«Â¯¥4sN Cô(ÏKcS6òãyû›¾3vÇ-›‚ËÕjÔ6ë¿'® ~ù±ý¬ *‹¡>øk ¯ 1o4Ç@ûÄ÷KBÛvíÚÕEû%C‡äNO<ñÄìËFèçjÖû@ègÆsšÝ9ƒB‡ 9Í,ÃõlPE+3-5B»F×Uå§@"vÏÒ6M±Bkf® h$ zqË–-ö×?ýdíú/;y¼h7üj­u÷z=Úé·¡y¯�  ²M·Vx‹Lc5hI¿+Áê¾ÍGÑQFá=|ßÏ;H„©àûê}žmxãÐCŒ™÷®ê1jþ-žŸ]x$¨Ÿse|Ò&F&ìôÛ¯&ŽÛÝ7‚‡\ô»‚ È«@ ´T}¨1ÔžV[Zã7ÄGÒëÜ—cµÔ§OÄŸÏA?CW^`˜Ða9ƒì‹@Ô@TØ Y•¡&¥ šõZÞѳ‚Â-‘HÁC T–\û°D�šU@ ŵk×Ú]wÝåß:}mÇþ|ØNž¸ÎζöÛDK—Õ >¶ƒz1¨7@¯÷XPOŸUÆuðÞ a0Iß÷S¹¦ÐÓA= <t·Wøº‚‹Õ<†g ?Ÿ‹?ë³sjÜúª?Ù­mgì–¿ݯ½öÚЀ&žþ{äOȇ@²ÎÓºfõ.PØ Û!N:>èkÜõ Ž=¤³Üöórö×¾ú]¥eœ5àäB=%Vò·Eè°=Þ‹@& ‡Çï¨BJVœºüXI)xP²ªFv,‹ÛsÀÄ%"€� ÔKlppÐëÆÓvã?zPûŸ¡—XM£ˆÓH\YdéáB˜t‹®Þž8Äô†%üy51sNú–,Œkq}¿mØp‹­_¿>„Òº% È«@² ­ÞCCCá– }ð×6}‘§9NÉýcÙbK…»G]l·†Ûc;ÿ†nh¸}%… C‡½{÷®ä˜¼šD Ö'Nœh’+â2@�Õˆ½ÅVÿL®Þ¨A­ÑÕ53!€�ü²¾þúëLO8:ìÙ³'ÓÀÁ@àÿŸÀùóç=)ê‚E‰Ø@�@�$?oÌ öíÛ×`wŠ@�@�@�@�å h áßø|«˜ùÏË;ï@�@�@�@�Ò>8æ?Íötxá…Ò{P‚� €� €� €�\¡Àlè°mÛ6ãî+Täm €� €� €� 0+¥NšÝÀ  €� €� €� …�¡CŠ@�@�@�R„) @�@�@�@ B‡,9 €� €� €�¤R$ €� €� €� €@„Y(r @�@�@�H :¤H(@�@�@�@�,²Pä €� €� €�  tH‘P€� €� €� €�Y:d¡È1@�@�@�@ %@è"¡�@�@�@�² tÈB‘c €� €� €� €@J€Ð!EB €� €� €�d!@è…"Ç@�@�@�@�”�¡CŠ„@�@�@�ÈB€Ð! EŽ� €� €� €�)B‡  €� €� €� …�¡CŠ@�@�@�R„) @�@�@�@ B‡,9 €� €� €�¤R$ €� €� €� €@„Y(r @�@�@�H :¤H(@�@�@�@�,²Pä €� €� €�  tH‘P€� €� €� €�Y:d¡È1@�@�@�@ %@è"¡�@�@�@�² tÈB‘c €� €� €� €@J€Ð!EB €� €� €�d!@è…"Ç@�@�@�@�”�¡CŠ„@�@�@�ÈB€Ð! EŽ� €� €� €�)B‡  €� €� €� …�¡CŠ@�@�@�R„) @�@�@�@ B‡,9 €� €� €�¤R$ €� €� €� €@„Y(r @�@�@�H :¤H(@�@�@�@�,²Pä €� €� €�  tH‘P€� €� €� €�Y:d¡È1@�@�@�@ %C‡©Ô @�@�@�@�+˜Š¡Ã•‚w"€� €� €� €�  P„� €� €� €�+Pè [+¸½bå–@�@�@�~àöŠŸ-XC�@�@�@�,èé¥&ÇB�@�@�@�(@O‡(Á@�@�@�² §C¶ž @�@�@�¦¦Úf$Â@’{÷î@�@�@�ÈB`ªàGùµÏ·LMMíËâˆ@�@�@�( O+t¸×ç[|nM̺í"α\¯µ,K•iÖ~šâ브eÉ¥Ö™@�@�@�@`uÂþ£“K­ÇYgUK¼®ûzrÖ~z­}4'·Å²šn¯ÐŽ'|Ž!B\*DÐz\*DˆÛ´ŒAƒ–šbY ârzëôŸqßdë €� €� €� ð+ , 9Ű!¹T Ie1€H† *ÁCr9»ÏÿÑ´;ć»����IEND®B`‚��������������������������������������������BoolNet/vignettes/pajek.png�������������������������������������������������������������������������0000644�0001760�0000144�00000205405�12466166264�015477� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR��Á��Ä���§¥P���sRGB�®Îé���gAMA��± üa��� pHYs��Ã��ÃÇo¨d��ÿ¥IDATx^íýûÓ}ßUˆ~þˆ®.«Ž?P§ê�§º Š_úh—Óˆ4è#$à¥Ý-JÛJsK¢¶DúÈ!"ŠÜìnQ!! ’È5!\BÂý’€(ÍYï»>ïøŒwÜæ˜—µÖ\k?ŸÚ•ìwï9Çãc>ãYs¯½¿O^ÿÆ·ÑãCð� �€��@��ÇüÞßû{Ïïù=\6?ù›¯þÉ×ÿàO.Ã>â#>âÛ¾íÛ~ögö½ø€��@�� �€À¿û»¿û¿ðËÿ—ü¨ÿì?ÿÏå¼<ž|äŸ{Å" ¿ð ¿ðïxÇ—ýÓÄ� �€��@��À›~ý·¿þ‡j‘ÑßùCoòió–èE@ù?ý!<€��@�� �€�ðxý¯þÖïý½à oú©'Ë!ôr Ç—ëá€��@�� �€@ŒÀ7ÿÂo.÷Fßièåè—ÿ³7á€��@�� �€@ŒÀ7üÂo-_1¼ÓпýÛ¿ýÿüÍx� �€��@�� #ðµïúÍE?ßiè凯øoÁ� �€��@��¯~'ÓÐ_õmoÁ� �€��@��¯ü9¦¡_ùí?Œ�@�� �€��1_úŽßzv/ÇW¿êGÌGíOk{vð:�@�� �€À<|ñ7¼áxé—â_ü[c‹ÍÅòæKüý¯}õ'þWô#ÿ³ÿëØÇbs±ì%ëývÝ ¡_ûÚ×¾ýío"{žÊ€'@�� �€��ö¯~Ñ·}ç¾ýçß=ö±Ø\,¯‹î°Äó¾úí/ÿŠß|ó÷},6Ë) ý^ý£æCHäE7¿ö•¯|éK_ú’—¼ryº<yãßÈÇxvð:�@�� �€À<¼ð/}Þ¢ž¿ó-ïûXl.–×0wXb9~~Ï}ï/|ýWŽ},6Ë^²þÎO³sèøš3¤—#çWÞ«ç/úK÷ÿ>öc—'Ë‹‹†~ã·<“Ñž¼€��@�� 0/ú´ÏÿÉw½ûõo~רÇbs±¼†¹Ã‹Ò}÷|÷»¾öËþß?–'÷õ•åïž<<§wü鬯}ù³‰›‹e/Y/û)¦¡ÿÑkÜ|¬zÑÊË©ó _øÂ÷yŸ÷Yž,ÿ»ü{é‹Þg}}ÑÖ$µ #ëž<ùàOü‡¶ý‡ñ¯úÄÿâÉÓÿÅgýÝgÎ|åG<ù„¿úÈ·ånMü¯b¾«—h02dÊ‹ò8OžüßþûWyÉR¯÷ƒ³ÄÕ†-ÝéCçôT^þîÿÁO>ú+ïГµJeIEø¬P?âo1ãlâ_ý誥<LgÖ€��@�døä§ú¯óÈÇ¢¡Ëk犗øÜ/úê?þñÎ{,ïzŽñ%¥ûëÿæ ïü_òìñ5_òÎåqÿÊ—~æg“ýå¹ùÊ£¹÷³~î|Ébs±ìõß¿ñ“LCÿã×½Õ|¬z9k^ôÇ~ìÇþþ÷yŸå±üûýË¿÷ùý_ôEwGÑ‹†¦£•‘ïø¤~Îû>yÎ'ý#ÛþÝøôÙïûäÉG~ÞÀôÙŸDÏ_÷ÖOÿhöÖ“¯øÈGÖÄŸþ*N€‹j‰#€5¯?% yóäÉG¿"gVƒÓW>´PËŠ,ºÎé<•Ž©¥üþ‹ÏþÂ×}Ç'-Wqý<^]_ø?<g…šžüãÏûì§•üyÏ{òäyŸþ´¨D‘/¦Â‚÷K1—Ö£êë �€À¥øäÿño¿í]ï~í›ß5ö±Ø\,¯-^bQ·¿ëÿ[ÞõãK,J÷×¾ûõïøª/zÇ+î?ûðdýs1Bç¼Ëóÿ阮xåg—)÷#Ÿ>–é÷›‹e¯/ÎÛ˜†þº×¿Í|ÐÂ/úý¿= ]ž,Šù%/yÉr�½BË·|Ë2fùßUFK#Ÿÿü÷ý Ÿóž<ç…_kÛÿº×¿æ…ðä|¾÷îÛ¾îk?ç}ÿè+˜ÙW<¶&þôí8ÞY–K4 ìgßzˆ%yy÷Éóÿç”M N\-øÐBM+>‹®s:O¥mê‹ÿÂsÞ÷/¼æ¡ÀøV™æl¤.òÏþ“GE{TEa] �€��.Ÿò—¿`£¯yó»Æ>Þú®÷,–ׯ/QÔОc‹Û´Ä¢tå ßñ3_ö·úËï_öOîþü’¿òéË*ÿñáŸx¾¼û3÷³Öÿ½|Áú|±¹Xöäñg¼•iè¯ÿη™ÒЋh^Ôór#4½²Üñ<¿û–ák_»<YïèxldQ!ÏÿŒï¼W_gÛÿú¯»S„Ÿ¡WÿÛÏòŸóÅw¯/Føtaþ¼S<ë¿?ð·ï׺³¼þ[íßüóœû?Å`k‰¿ýtúbí‹?u™u÷ï}?õ5÷rØs¹¢^¥ìá=PqÈ÷ÚÎŽQ¬H¾-Ož<ù˜çßýïúïc^ñ¢ƒkh±?Ä+üY=LÆÂ±â³X ¤ÒÍ-ðREÝùÔç?Α(€{xìOK.€ÚÉò:qÉõ³úTEþì]§ìíæmC¼€��@`8÷÷=¯yóÏ}¬zõvyòÖ»£îŸ7¤¡ÅíëÙôý9´=‘/±jè·ÉËÞþ÷^¶üïO-Oî듟ú{/û{ÿÓ_YLýÎãË+ËëO‡ý½g³žÎý{/[5´‡ù_þ‰÷<û}èo|ÃÛ͇þ]Ž»»;tóú.‰éåù##_ðü'óÊo|Ã+ÿà“ç¼èëlûßøu/~ßxñÿG¯¾Ì¥×¿àùïû©¯{°,¬=üùt-Z… {:}yeÁ÷väà»W/ñäéêËH>ëÉó?óÎUî=W+ŠUR>�…üº}À“?øÝXÇÛKÐxíùjçíwYxš£;”žÆþìEÏA—åÉ3ˆ5‹yû™³zXÖ å¹^® –J»Ï¬ÎѳÐu¸˜]sº>Dfé-Qu R»È…Y§øMçmF¼€��@` úú;ßýoßñeÿû÷™¿ü×¾$¸Yyy×›¸Ø\,¯~ÆK,öáþßò„¬™/еø‹Òý±—ÿÝñ‘<þúý#dv]ny%ž²Ø\,{hê3 ýMßõSæƒkèE+/7lÜðî¶ úÇ%šùäxÎ'ýböNÜ?±_ÿâ÷{ò'?ËYýaÊ+ÿࢧŸŽÖþ¼³óäýþâëŸN¹ÿóÙ¿yå#7Äà;ËÞ|9zn½¨W´\Êzèú³¸úú§ÀW¼Gþý>€ÁÂsñùÏZTìß‘Ézxñ1>:eÚ<A"ÑË[ë+àÅð(¿Jå”K‡]‡äÃjÍL·Ë"ÙïÇ?äB§×²/<f �€�ØEà~Ï¿ãåÿÇ÷›~ß°8Q]þ\Þõ&.6Ë«{ºÄÿùý/·‹‘Ÿ¹ÿ'Ä:½hÎZ^üžþ9ZbÕЯú¯ŸûíõÜW}ÔÓÿ]ž¼ê£>äUÿõ‡,OþÆÇ} -´Z^W\^¿°L¼Ü¿›òÜõ±jhOÿùcú›ÿõO›Zü 7ò‡¸Š}òÜOùs‰×Ê>ùC×^¬}öÇÒ˜e<3õ /Y$øg?8ÿ%é¹ËšwÖ¿~oçïÿ¡Ç><|?-ÁGšÏ­ïÌŠUò:þ°ÐÊ+.~>y¿|î“ýûH2ÏOXއö(5ÏüÑëFh?´¼]Ðx¿¿ôúõï< ì8ÁªÌËÉx˜û¬~ «4¶ú]áÉ«œ*sY‹›-”··ûð:�@��íø3åï|ïüÜW~ëÍÇ¢2ßêÿ[Þõ&.6Ë«Ûë¯øÖ7šâÞÄïý‘wÒ‹ÒýñW|ñkÿøÿC=þ«å•¿ù'þ8_E<_Þµ&Þ™Zl.–=ðÿÌ0 ýO¾ûgÌÇb~ÉKÞûû~ßÝcyòäÉrôÝ“õ±¼¸¼BÏßû^ËÈW/âõOÓjŸ?Xñ _p'|¿ðáÏozéŸ^ž//~àK¿”¼ú¦—¾ßÇ}õjüÅ÷„Þº{þðúúî—~ÚsßïÓþåýBOîŸP\ÆÒƒïÇ<[Âs˜^ÿ—zÑý«ÃwίÑéŸ.ýh•¼‡®?„Uqŧ/(=@!B{0µ¬õä/~š ‡ÁÏ^øÜ…¯°õÐ~ÚãY÷˜à þÐRy˜–=xɲ™¯Tü“ï^V¤Õe}.‰[«‹žÈ²ôªë..V½Îæò6^@�� °ö¯þÝxë/þÃ×ü¨ùXäæøÿ–w½‰‹ÍÅòêÿK,J÷m_óeoø¤úÎOú#Ëã /ü¨å9=xËó—ýÉç‹WÞ@S–‰wsÿÈ:w±¹Xö²ðÂË4ôÿþ=ï0O5ôªžWÑLzýs•Ô«¶~ï{-#_ó‡Ÿ<÷Ïüo«}þœ­ø¿½ôýé8ï_úeËÈ/ºÓÐwOž>Þðg>Œ,ÏFÓ˜eüÓ/xÉ:…Ûü¸¯y´´|7…–ðf¯“…{Á³èÄŠb•*¥?„`Å(— ‡ï»Çê%ËUÇòïÑ£ýá»;Î_þýá/âUÁS°X~úïémæãY«?«3OÂ2›ž]â!9þqì+~Ù§=÷ý?í ÷Ùg'ÊOëêáEñ§ˆ]ö’ˆGAÙ›ËÛtx� �€Àü¹¿ú…oú©_ý¦ïz»ùøìÏÿªà~èå]oâbs±¼ú¿Ã‹Òý©oüûßóß}Â÷üwÏ{x,Ï×??áó_øBŠby¾¼¨^y:ò~Ê'|ÏŸjg±¹Xö²ð®¡ÿósæãÙ9ô"‘W-d4B/¯¿÷½ž¯ñŸzÿÿñ»Øq"½³¼ÃÁêú­ü¹×¬ßbÃø¼ô=ùÃ_ì,W…UóàoyéûàK¿¼yº1ñ»î®÷< G.t(n� �NŽÀû?Ñÿìo WV‹ÍÅòjv‡%¥ûŽú?ðWþÌ ÇŸ]í,6Ë8ÿ–w?û]ŽÿóûÞi>îwãµëó€¦9ÖWMÏßû^Ï^? ÿðÿùäCþì·ØÅ0>„oùkïÿ_þµ—;µ7~9g¡—ÿåyòÇþá¨å–«‚ÖFy;@�� �ÿïÏøâ}ç{þùþÂØÇbs±¼®µÃ‹ÒýùïøÖ7½ä/¾éÅñÍ/ù‹o~ñÝ“§—|êÝëwo}ꛟ>_^ùÔåÏû×ïŸÜ?h=Yl.–½šùcofúŸ~ÿ;ÍGíw =;xý$ÜkèbÃоëÏþ—Ë-û¬µC8X� �€ÀÉø´¿þ¯ùÞý±wýæØÇbs±¼j†–øØÿû‡¿úå_ñËÿêuc‹ÍŲ§|>æMLCë¼  �€��@��Aàk¾ýÍŸö×_þç?óûXl.–W wXâ+^ù­ÿÍû~èrf<ö±Ø\,{•ðQ?ľSøÏßøóx� �€��@�� #ð‡Cÿ‹ü<€��@�� �€�ˆøodúÛ~èñ�@�� �€��@ Fà#V ½ü[¾8¨‡þ§ÿô^<€��@�� �€À-# Eòïûw?ýoE˜ú?þ§ÿô»ÿ �€��@�� p£,z¸ZCÿÎÿï?þ»ÿ»x� �€��@��ÛD`ÑÃÕúßÿÎï¾û·~ �€��@�� p›,z¸ZCÿö¿ÿÝ_{÷À� �€��@�Ü&‹®ÖÐïù­ßùù_þwêñO>ñɇÿõïÕ¯OðÊ÷~þý7$ïÿ}èç·á|ÆI?À¯û2ÿ!ÿË›-pÈþ”#ô¯ó;LZçVÈ~ò‰_ׇvõêÅåîÝû¤Â7$M¥u+ʆ™š=q¥¨{Ò÷ ±OùZÏÎ0|tUÜ…öÝÿˇ?Ùkãüõ-QÖ H;§m™¬žDc.�@à ,z¸ZC¿û7çç~ñ·Ôã[þÔ“é÷è×G½Òjÿ{>ÿ¹Ì±¯ù¤OùÃùŒ“Žÿxicø›^ú!Ožû7Þdá³.ÑÅ#ŸŸù®¿ñáO>äó¿«1¢LÔCư¨ïàʤ`PIçïÖzî‡<ùSÿ˜ÆçWÏ|ìÌe“Dƒk®PMfï6òCå|Ïç¿ôY²âÊLY«BpÚòâòoS¢Ëãç +ÚLP€��ÃXôpµ†þ…_þwoù‰_Q¯ÿO>ôÓ_­_õJ›ýïûô~ò'¾rˆ¦Êþ«ÿæ=yá—ø¬>´E!üçF†‚O`¤Áá=ãº_ë+ÿæ}ðßügO—_=?’ãsHÙ4d¹-ºâBMf¿ò…Ož%¨¸Dÿ€;'ÿÄó>ôƒ>ëûžqÝâÃó^¸1ÑqÏc š`t©©1X�@�Ü‹nÓпú–Ÿo¸o-^üÒç=Ürð¼oxËO|ÿ½œ}p×?÷Ÿ-F^ý¹ô0êá]nj}¾ü/7¥Ww^¹3¾(ZÛÛ¥A>¹÷±ŸËàûE¿ò©côY߬õ¢a sÅá~üg½põû‘‘WP(<ƒ5>O—£ˆªK€&òÌH*ËwvÖÏòh`ÖåýQêrôàÉ}Öç>”ÓŸ^¦–Ä5³¹«·t‘¬™zõ]<NÓ½…gà<Eò阻@>”J÷IՊŲyT{¢ø‰“U7"qwxÞÙaá/û×Ü)Ï#ûWÚÝZ” 5¹þ>u7`mU,K¬[;À¿Hq&evº&“gUñ4#Æ.΋‘@�� P@‹†þÅ_ùí~Û¯©Ç7|ü“ýŒ×è×—WÞzÅ‹ž<ÿÖ‰_þü'ÿŠõ­õɯýðk>÷ƒŸZà¦èy`ß\ôÁæs>÷_ܯø/>çéÝ…÷NÞ­ûÁŸó£àk=y²N|äÕËK O^ôåë»öLýÀg<çYhOã¥ñ~ígPÜõÔÃê/º ÓF~ÍW:̈U�ÿwK<ý÷P�Ϫb‰nu’yrŸ¬gî¹™"— ÏùÐuØ2W±Õ5fUÝ3'—Ô/î €jìˆTYÚecÔm®GUjí'²ê†$îY¼"|{§˜Ž=ä¥i/ß!|·¹–OߌµOŸUŽÚ€Õ»ì©h³‡øGê¼Ú‡uk¸dò´5‘æÂH �€�¨F`ÑÃÕçпø«¿ý#?ùëêñÿäÃ>ãµ_ÿªEk®ÿÖ·–1/zùÝÜoüøç¼ìÛ–'¯}Ù?}ånâËaýUë02EÏ-û†xlŸY~lÍðóY,‘WÒþ²úÒæ)Ø E1–g–¹ôoÅó1hw^±ÏÿFy9Ÿ‚{³‹ ²²¯ë¿ò€6_K;¹¼²VÅ£pÂL=Lyùó?ì3¾jNøÇ.Yî-ë.•ð®ûÜHÞYdÜ]¡ŠZM¯˜-›pGì™8^œ~øOwJÞ±ŠšgØÞ'E…ÆÊ¤‘tŽø¹/KÉn˜šâÄf¬÷¡H‰¶3ù…0� �ªXôpµ†þ¥_ýí{û¯«Ç7~“ûÌ×±×_w§¿ânä|æsž¾õí/þ°~ñ¬ÿ{gáÙ˜»‰_ñü'ŸðÊå 7EÏ•}Ç¢W–5ÃO¾Öâ|à½û°ô3k…($©pÖUL(Ø‹Q]3¥–{_‘‚§vEpŸ¦üã™o^êŸÃs^öíOÍ&3µ–Ö7~ÂÝÄåù‹¾b 癑¤‡:Ý68OC~å†~@ ­,“eÖÞ¾‰{–n7üo+«)¤§ ]ªh¹Ôy¼4VæL–ße÷5öJª«xã¨fmÆtÈ&ûÅ[ƒi>XŒ@��j=\­¡ù×þýÿÔo¨Ç7-ú³^Ï^_zís^öªeäë1ýðÖòü9/ú„çÐÈeÖ"GîgÝ {ÑWÞY~ãgÝÉÖûïö:XÙ7|Ð^ýÆ«–vûÔ,7¬~ÞyõÁ/~ãc¯¸§?²ÿ0ñ‘Ã4žM”PÎ[8{P÷ȳO—[P$SðÔÔéSpr)xœ;…pòY1ÜgMåݪ¨;gžóÔŸåù'üÉUú¦ð¼«Ã»ONªN;¹`¸¸º"ÙX–÷…ÍsÁË&Y{æÞqªô>S}‰£²á›ÞꊊsêüñŽxåËèåŽî³ïÓÎÅ×ûÚÄÿžÇî(ÎLn~ëMÊ9SS¢ãLv‡Ö:†ñ@�� ð‹®Öпòëÿá­?óõøfúáÝ=Š/ý¡·þÌ}ösï?Ä|î'?ï¹öÙÿòé”W¼àÉ“|ó³éÿòóîoq¼S-4æ­_ýÉO_{Á'?ïáõ»‰Ë?>×pC;öžgÖž:¶ŒY¼¥å´Ÿwï>»û÷¼¯^mò)üù#ûƒ½ñ&J(’á<ò„â}ìÒ3T ±û0Ÿ¡ÇÆ'S@IyòɯȺª¡{Ïw¼ôÞ<÷ó¾c± |Xâ9/ý¼‡Å™Z<¤’?¯ðð1t?sïá#›ŸÅ¿àó ïkûYCÊR”ª½÷°UâÄYUÚ•¸g÷!<ç¥ß¬Â7w Ï,í2UùÕ{™1ÌÓ2Ž÷©¿aSµ! j¾´qVÞ³)®Ž¾øsÙ,f,Þ–gDšŠÔâLL@��‹®Öпúÿá'ö=ͯzÁ“çÿƒöéÍëÖLüæç?ù°ÏùÎÍ<›ƒP“—[pf§Úû±Þ»ú-T#b@��E·hè·¿ã7oø¼ç<÷ó^×<}§‰w½ùÅoh1éä9 Ø„$V74l—Ú†ç±Þ»:¶�@�Ü4-ú×Þý;?õs¿UÿxÓ‹ïníøðWÃܧ|ËŸÜÖÏA±3òXnëÚ‹ð±Þ»úX$a � �N†À¢‡«Ï¡ýÝ¿óÓïüwx� �€��@��ÛD`ÑÃÕúŸ½úûð�@�� �€��·Œ@µ†þuü@�� �€��·@µ†~þ �€��@��ÛF�ú¶óè��@�� �ꀆ®Ç 3€��@�� �n‚†þöúEþXFß6\ˆ� �€��@�¼mQÅB'ÿ¾x÷ÓÿÀï{ßû^hhÔ�@�� �€�”4ô›~ñÛÙçÐ( �€��@�� p§¡ëäÇçÐÐШ �€��@�� ðhhT�@�� �€�¨C�º/Œ@�� �€�� ýª7ý"à~hT �@�� �€�XT±ÐÉî‡~Õ›~‰? ¡Q1@�� �€��@àAC?“ÊÐШ �€��@�� !p¯¡5?ÖÐoþ¥W±ΡQM@�� �€��@àNC?ÖÉ4ô«ßüKôXÆAC£b€��@�� �€À¢Š¹N^ž»zy€��@�� � ¡Q@�� �€��@ ‚†þŽ7ÿàº]Œ@�� �€�¸"‹*:ùѽßñ–_âhè+Ö�b@�� �€�¨CàNC?ÖÉÐÐub4�@�� �€À­!PÐЯyË/ñΡo­>/�@�� �€€F`QÅB'?:‡~Í[~™? ¡QC@�� �€��@à^C?ÒÉ4ôkÿí//×<< ¡Q1@�� �€��@`QÅ«H^Õòò044½ Š@�� �€��«†æGúuÿö—ù€��@�� �U,tòc ýÿü:ö€†FÅ� �€��@��; ýX'K ýúþez@C£b€��@�� �€À¢Š¹H^ž?ÒÐâ=hhT �@�� �€�(hèù#¿ÂÐШ �€��@�� °¨b¡“CCC£D€��@�� �€€@  ¡¿óG~…?p@�� �€��‹*:ùÑ9ôwþè¯ð44*æÔ<¹ÿwêà<�@�� 0wú±N~¤¡ßð£¿ÂÐÐ3ä >4 °ªç÷Þ? ¤�Ä �€��@€#°¨b¡“ièïú±_áhhTÏI M2ú¤Àm �€��@`U,t²Ðпú]?öì =CÎàCíA²Ð8F  pkÔÒæ­áƒx@÷ú‘N~¤¡ÿÕý*@C7@Œ)h»%z` ` �s!ÐF›çŠÞCXT±ÐÉ4ô¿þñ_åhèC’„E æ[2ôDÜÔº@`~úÏ›is~pà!8E }lF°º‹€wœœLŸÄ@Cgpà �ŽB çü˜”wm8ÖgA  ¡¿û'~?p}–¼ž×ÏàÐ¥¿ðž´þ@‡�ªxäSp^äá9�S!œÇ<)~ƒh=/àM}Sg€ÀYXT±ÐÉΡ¿ç'~? ¡Ï’×3ú™9téüP2X¢¸zqÀ1‡Ï@�̉@ð-!‘õA€ËmâD`ÎÔë!°¨b¡“ièï}ë¯ñ4ô‰R{:W3ú¸SÈ®§/fç(®^p:Àá0�Ó"hèàD¹8ke¿N"48vF`QÅB'?ÒÐÿæm¿ÆÐÐ;§çv–ó¨ßD ùø„4t|r£o•®rïv²†H�Ø}ÝNÿ‰(OFLÅi'Ûe –o E ,4ô¯ÿ›·={@CßTqìlƒH]qþ׋«äÝÀH �€@}ZL—÷ù£èºËø†1@�,ÜkèG:ù‘†þ¾Ÿüuþ€†FÑô#à"×´ihoVqõâ€~d`� àJš¤3Ñ‘)‘ù»úÃ7œ Æ€À(U,tò# ýý?ùëü = ÷Û´ß„W{‹Þp ­OS­{·™bD €@Ìmižä¥û:ÌåÄZ—ãg:òiÂH à!°¨b¡“ièxû¯ó44*©ÌQn¦©¬>ŒÕÐd30»úV»nb˜ €À%¨º&×ÌYEDɳêK⌠€À¦,ªXèäGúoÿ þ€†Þ4×6^õbF§fƤ48–ÈA ª–»v*�d8}ÅŸ’ig’ŒZëÌ#¦ß8‹*:ù‘†þÁŸú þ€†¾ñré ¸†®:Š^[EÜ0zÞíAs�¸)ªÈˆKœ='ÌaÎ7Uov;U,t24ôvhßeó£ÆÚ£—"^ùNPÔÐÐE´1��!´ih±tFC{còÌ9$^WE  ¡è§ƒ?p}Õ:WpŸ_ðVðYdà[¾ôhèü*a„) �.Œ@Ûç¢f B»p]!´XT±ÐÉΡßôÓ¿ÁÐÐ;§çŒË{Q©¼�kèL7:c.à3�s"Ðv ÑÐÅ1E^1x&D`QÅB'?ÒÐoþ™wó4ô„)œÊ¥!ŸQ áÛC詊Î� °"`Þóf‚#H,sÙoŽ€Fí,ªXèäGú-?ónþ€†ý%MÕÐkÙZCgºÑ%“… €�ؼ2ί>DCC@çÇH A`QÅB'?ÖÐ?ûî·°4tÓS¼—CàÓ£’“-¡íFޤñO7·Œ€ËUwhnªIjh2…Cè[.Kľwú±N~¤¡ÿí;ÞÍÐл%æ¼ 5t‘æ“àLï‰?0õ,$-Ÿ7Mð�L¢«=AÈËè~ NëI7æE¯"ù‡ßñžõÉ# ½¼ÊÐÐ(£$üx¦ÈÝ[E­BC'Ša@�p´\®½“MX‹áÍhèàºHÂH.� ,ªXèäGúGÞñž»ÇÏÝÿï;Þ Ý�1¦¬'Á™aŽéQØ´tÕ'›Eo‘S �nO.¿÷ÉñÈ“I†è’·jhSy7n9­ˆÔ"°¨â§:yUËïxÏc ½¨gö€†®Åã "‰·ÝÑ‘4›×ÐEƒÈ)�7Ž€§¡ÍÃé$¥l§¡“ÜxN>h@àNC?ÖÉ4ôþÜ{øºbLé—Ñmòz]×»‘#¯ª‘A �€€@@Ëeb›õ(zýÇŸ1,]py«è�� P…À¢Š…N~¤¡ìïY?úð€†®ƒ5™³7obñˆu€Àp‰ü ŸÝ×QdªU‚{~®oe„²0’Yw880nE“N^Ÿ ý›?öÎghè)‹MÃl“ÑmZ4Š ‡Ð›¦ÆÀ `^¢syÍo.ÊÙ¤†è úF aN‚À½†~¤“iè×oþø;Ÿ= ¡'IÛÙÝ(£3¦ô˜Ì+gþ pÍ:8ŠæÇ}AC’q,z³,ªøN$3©¬4ôòÞÃúf exàŽbÃá±wJ”4><j@àbxŠvy½êz…%þÀ-þ` úb¥…pæGàNC3‘¼<¤¡â]¿ÉÐÐógôDÖÊèí4tñ3Ö¡ W�Ø@C“Œ6/æ='‹·j+’MpÚž5€µnE }³Åp@à[ËhݺpÇiÆ’@àºÄ”R¥ž‹GÑæ949À=†¾nÅ!²‰(hè·þüoòΡ'JÝU\‰?»QVEgnä@§¹J! p UwP$ Ç#º@CC@“~¬zÛ,ªXèäGçÐÐз];Eß)£ƒéÅö–li;e€�˜ âAr‘d2™1䉹"4ôd…wnhè›HóüAæetþfŒâÐó<G!°Hñ?’R«¡—pŠÌ“?‡Ö'ÓEãGá‰uÀõ(jèßzëÏ/厎»'¸—ãz0ODùû4’MKhèä¬y�'@�ˆ� h’Ѧ3mÄRTºæa§˜ipÑìxbi p=î5ôª“Ÿ>ðÂëeù4%et¦iŇÐè4§© 8 Ž@@è@Fgè(#¾ÅOC›ËACQ#X¼­ðÂ~Ç{øçÐ(™­ÐÚWô™iZ8„Þ:S°.ŒÀZ3[,£WNãì'Ž¥q4pá‚Dhs"°¨b¡“Cÿ«ÿUzüëÿUhè9³x=¯Ì3¦n$ºýxcÐi®W0ˆ G@Èh72—ôoiˆ­ /�EU,tò# ýí?ô‹ßþ¦ghè" 0 ¸3UièâàQ>Ã�—A`¬[|§0>o ´†&rƒ†¾Lá!!°¨b¡“¡¡O”¾‹»Ú#£q}ñâ@x@`„lÕkvžC¯3‡Ü«'B4¯B@ïR XH ¡QS#ô§àtYwš¸QM œ@`EMl.•¼ã¢GËe´ÖÐ8„W°Z€†nA söD Öʦ865tO{Û3^¬€À¬´P¼7ã( í's¡LÌÆŸÁl[T l ÐД0æ`<íÃè×ÑfN!–G#@:þ½ç5´)£û õ f;º¬°þM#� }Óé?Qð±ŒönùÀg'J1\Û! 4—ÑÉ»;Š÷ZxɵAé…ÄQôºÓµK`<�C€†#Œì€)ˆÍF"^ÄQÍéÁ@`b< ¿»c7 ­µ¸ >â70ÛÄ×nhè›Hóe‚ônÒˆ?î¼Lø�fô½Uwwì©¡=ÍÕ3ts%`"…�4ô($ag'L­ïôÀ;åË�“ °ÞÿÀ¿S¸>ç@˜î¬¡…Œæ„¶ }’ºƒ›WF�úÊÙ½jlÞ'›k¼¢Ù\Ä€@¤>Å!t拆¦lÕð ^ySô'lÐá…) Љ�4t'€˜~ ☙ŸÊðyŒsX�éàÇÒ-†)¾M54_”Ô3¡§/.8x+@CßJ¦¯§þpsí78§¹^®ˆ�WÏô<#Lãsèín®Ð÷£‘‰·X�×F�úÚù½xtú¶ è‹§ánÄ]ùO®ÔÐÉ›¶3Øl¡È3ëb ¸ÐÐ×ËémEÄûu¸í„n \D .‡€Ðâ.Ž"uè[ÓNìpC~ô%DƒL@`A�epzp¬rú"� °ž$åj¾œ]CŠwwìUƒXç:@C_'—7 ŽUn6õ4 à1FFFﯡ—�R\p Áõ¯UL7ˆ�4ô &ýR!ÿ óRè  �Þ'W™»2ŽÒÐDtý§Åæíàï·FÅÛA�úvr}ÍH¡¡¯™WD6F€‹Q¡žã»¢Å»å=$”~õ¼º¡/!ªþ[3Cb p  ¡¯‘Ç›Žbà7#‚7Œ@^F¥¡G%g%LRÒ8†,ìÜ ÐÐ7˜ô«…ì}2{µ87ˆgÔÉÖ®Á$†@²Î“2ú( ŸŽW¥Ïp/G€ V ¡Q A Ù&/mw¸ðè†N€@m¯:5¾=ã =P@¯’Œ~8’¾;œ¦óé¤. €†ž pacÛÌ §&5ƒ`&M ÜŠ@CsíQ ]Èî¡î?36œÜH:Ó8†Ø(w0{a ¡/œÜ› mx›¹*‚¸òª™E\æ:/Êè³kè}t?ª\hè˧ø†„†N&»Y[$íc˜ž:eô%54øs†¢…çB�ú\ù‚·èùúhøŒ;o#À$ôÔ9ÉhM,;kèáÌfÞ¶1|•Ij�n�퀆Þ[XÞLÀ=kVVð-¢½këí‹@g]2z‡û"2ÌV…«¦ÁáKTùƒÁ@à¤@CŸ4qpû© ä@Äm ³›^q\Q\2­J Ð\çÁÄ6§ÓЦÃÐÐØ5@ hèÐ0å`<5\ÔÐø ÔQÚâà Àò@ Z±èÝѱ›†ægáµÎ› AC·Öæ‰�44jâ|ÐMt+ÂCÐ`Ä1ñ|t{ŒSùnaà”4ÈPSFï ¡i“ŽÝ­æ©|,§L?œC€† 'Œm@ †jèæ·`Ì ÞuÈë°&F A/òÃ`Š,¸ÓcHô´IÇîVhè!Ù ° � 28mz=¥ÎÜË1öÈgNpq*?g^àÕ>4hè•@Ä]æùô¨<ÝÿšÖÐm€ŒŠv€Ày€†>oî®ày|Üë½ë©á¸$ÅqRjŸ}hèS§Î÷#ЦW¡¹gÔÐâ2`E² þ,À8;ÐÐgÏàYýmû^B¼¨ÚùYuÿ‘Ï´é¹…K…iÁ‡c‡#Ь¹ŒÞTCóÎîV“�›Ñ8<p�‹�4ô±øßîêqWÈô -Žš¦/žUߎ†&ãëŠÛ­QD~iš…#?Ê'Óc#‹Ïª=µ†SUåƒw@�z±„D@¨7ýó¦ÕÊ» îˆ¦/6NjŠC¡g&ýMÛ?ŠLŽ@‘ ÿi_o½ÁűwÏk81‹N›²WÓÆÇΈ�4ô³vzŸµNåÌ.´/iYýÕ 4´g$ÆN359eº—ˆB\*Ì–¶­Ûÿlñ  ?ªjÆdU—¡ªΫ¡Å7ÂA_UyÇà€†ÞX˜- `Óý®ù“[hh“©‹ÿMlS|g~äÀBA:|,=¶bîQ¨1ƒ ‰N¸G×óÍÆM”z@hö¤j¢†zò㉪è0øÔ@CŸ:}gu¾xH¬%©¸»C·Ý Læ ‹Ï¿ã[;bÑ?ä¶áÉn“ÃÝ€A Ѓ@çyp›‚,2XODü(Á<8oóy1u =ùñÄìÃÈ)€†>Eš®æd²­Œ &%íõq\÷½PÞO-ñ½ï&N¢\'qãj•xvG@_¾V¹Ð¦G“ÌPå‰lž ¬R¸ÍòI5ô²¸©2º­0k,ÐÐcñ„µ,ùΧe4µÌµLãÑ^e~¦Ãk¨m·…dì ݇fOÀ-›aSàn-ãLÇèà !z×·ÅÞ°tç¢ú!ïtÓ�!� b8Ή±ž[ßåç\CÛì…Êu¶X(©õõ0ísÒÔ>ù€†Þg¬²)CU›ŽôHiT¼žWÍÚÜòm±Š±ÖŽèsÞ#WÆŸhèS§ïÜÎ'›Áœñ“í3ÖЦ¼ÙäôT>õ¼Ì‘ön…†Þ j,´)C.M›¥ävû(p©mÑ hèµ’œ¼iÕÁ8X€†F%†@¾ù éLLšQ¥E ­ï¸àˆÐÉ= ð ºTRñï–Œ¶6¼›{X$¥¨še4ùÙoA0‡�]–'!âÒSLës•?mƒ½#•6k˜:€†îÓ¨Ò”¦†^.ªð*m~2X\¢Ø“¸Å;OѬŸ ]fÌ‹€¨ç†òîW“ý ¡‹–¹¡�ŠKc�Ð@C£*ŽA`”†&;ñ'•æéEчâ�¦x±tðSÓ»ñ~íBµã))¬ #P[·I}ÀÜoÎŒãd6EÔt¢Â‰EÖƒ•¸)œ(X¸:?ÐÐóçè²ê#^¯ñ×Åó•1½f)ô«æVíƒ8 ÊÜ.Ÿ‰ LWwæý¼¶ØÙ±ËÖ:;¼®ÍÜZF=©ÕÐí—–Æ•3zžûƒÄ´ó � }ž\ÖÓ@à Qh;MyÇ;)—#4·Š‘uóÓšŽšxPU«tÖB•†Þӱθ0˜T|'†Eù›±Ÿ1’ŠNgÅÒ™U2Þî9&ÖЂäñÃ{¦æ6ׂ†¾Í¼ïuRærZôh¿žW·42æÖà&BÃ9´¸x¨=íîÌ_²û¢!uâŒéS!‘Œ™1Å úd,ð‚ŒKÅËû¢‘@CÏø@@C£6D`aIÊõ®öIh茼Ò<ø®ç4ž~ˆàÙ(+èpÅFÅÑ8꿼 ½aÑÃôÄd*?£_‹!öÉÏÍ„³ºZä¥bD“ (^9ˆÖs’�áÆ¹€†>W¾f÷–s:qY’Ô6ÕÐkÑ·%>´7×LF±WyêÏ[&ªZÍ^ßðïÄõ?Ju5ÛÉO, JÐE^:Ebù±ˆç0?¤ÈÝ)‡“"� =aRNé’f®U,z’Ñ ‚õèOÞ¨sÄòN4“[Í&$˜º6šè^ž5z}Þ¯jÒ{:vÊÒ‡ÓçD Øù „Þl$?:VÒâd$ì9+^€�4ô _rI! ‰Üè*"µäÕÒ6–wž>æv´`å<Kò÷+‹é¾6Èì ž×3õÚ^Ò0å’EŽ .†€Wص$Pr ˆU­žÙ›æ˜ªU¢ØbŠhÉ%t+INÄ0 PD�º” -«ÿ›œ¿2ß’~&ŸÕ­&òñä(½¸JÆõuñ¢©¿Iãj훼¥[Ð?-ì öéj™¦+ÎopœSÞqZÌ}7j3ÖÚiÏÚ4À=Óž×Ð<dÑžjÞ3@¬u: ¡O—²44‰×à¿-¢›gÔ°)—͵H:sLV5Grý T²©¹cf߇ܛ5ô:1ÂŒ5 Ÿ€€€Þ£6c­ÚñDzAzµÍ†Uf(Ÿ¤†h6sŽ3C¤ðá,@CŸ%S³û©U©`+R¨EúæZ-£Dyÿóı°cÞ›¡×”TŸÁ�7èù°u¦“Q˜—+ÉÃø­C€} °bk™*éC•ªÁ|“zÍýÞ°J2ØM‡ACo /Œ7 � Ý�Ú£)UФw±‰çs*ž ¯‹ˆ‘Úöî Y^ø ñú§'^…Zõ†¯Wߣ¡é§�«V¬\ÄŸ[+Šþª¥1Ì@Û•sW^³æGŠ} ­/ûé\üÏ¿ïNê!4t{â´jl·u•™â(WÐz1!£Í?›5´þµX‚×&G€°.§ù]Hmþg[Mú™7ÎGÉu1 œ"*ûª+OfrÓ%‡™ö ÝìÏlù2‰T8©qÐ}§3›³ÁD�º|­Úm]ef¬’óˆñf \N¦œÍ%ô‹žŸyƒŒ‘óÞw —¹æ˜}Kò}ZŒÎU*q\±ŸÙw™1îž.4mö,t`â© ÄøÄêÀаôI€†nLœ W|Sã(D-Áæ!ŽTfq.‰QI©!7¼ss®ž^["Bß dÈOíðÚk´™“*´ŸÚJÀøó"°Ã•kq@ñÒ=¹‘Oš—6 ÍQ{]tRáö@ ¡ÁÜ‚a]™~_ƒ†.Î:˜ SA4Ò“ø«pò½]±.Y0_7ìi¥±Ã=šÙν´1lÀ _Ü8ű†&㜣mö¬²Ôy›z‹œæÇÈK"� ÝžV\Ñ ì}æ)ÅXÒ ±ëýF‡6¢©–Ú†ÐÜâu’àíeÁ¾ï(Zš§¡É¥~6.©¡Í.{ÞÖÛ“M̽Y<†ïÙÁܳüì€çkøFNÈF5kèb°ÐÐåå–ÍBC·ge“tO»‹{ÍÌ@á)Ÿ©e{KMlöa„ëf=~H'ãç@ÁsÑvèOÉ%ŠÝh¯ÊÂ:@à0Z3i'é¨Ç0C˜G¸‘3$ŸD yX§†^5ôYL’›ÝÆÄ #� Ý›ÜÛÜ~"j“˜4²Ä€\Å�òF%æÆ´{\+kåJÆým,yöLþðñCV :³ÄÀ¾Û»»0@Ìðmü¿Ýó¨Ï¼’¯‚6IòU6k: ©¾ ¸ÚRYÆ_ hè‹%tópÊ|%NóʦìæryUœÜˆž®%2×ßÚÚpËÙÜ|nú Ä·€b¿·iè̬Í+ �YˆIÌ;MÐ{¼?>ÍCV:øý(¦2¡¨ÒÐk‘“3\ô'D�z ø·#24éäéuźJFóæÄ¥0)ÎŒ†æërÖj{H5Tih¡§½«ˆQ·  ÕPœ57gG /¦Åž¸Å¸@LÊ÷"ì’_×ÅTçIŽ*Bš ªˆ Ü8ÐÐc  ¸]Ç,s´tj¯æ…ŒâXœ˜b—ϲ• S=L¿KŠ|ÀI TðµØ!؃“þÖÔöÔÃðN b9;p—Å:>¹æŠ"tÖ† ̘£ŠarÅŸùµÓyL¿*ÐÐÃ2[Ü´ÃV:ÎP ¡Å D ­5ÍY¼%˜‚X+rOCS{[E36Ô íÁåÞæmQCk72yls³€ÀåÈÈÙxL-D\šû½¸£= ±å±L\Þ{=¢ö²ŸZ tma<G�zX=¹iØJ‡\)ôbð§à8¢0z=è%Ô 44Ée¾âvz]ŽÅ…;7ãÃØÎ }èÖÁâ·‹€InE½Û€WÀÏ‚š<ãž Á‹¥êçÿÛB3Ch»òç­d»ûOÂÄ”s!� =,_·£¡‰d¹´õ¯붡e·É‰Zk=M Ëß" ­ßM6•Ú¨¡WG”Ä%ÚÖŠjÁÁx pˈ+çQ[›.Ôc![lRÁE{‘ˆŠÈÉ¢f…ð Nd‚?ƒK~ÒÑæÒ-W2b_€†V 7µ y'(2Q±m4ËhÒÇdA¬%pÑ¿‘€f¹cÔBL5/ Q\Ÿ 9)©ÒÐ7UÏÃX�†€@~”0PFÇ Ø$mM;¦ , þ˜ŠGqFû¦I»ùÊü–¨S )#� ]Æ(9{’4¢ EÐ6ŸÆN#ø­¡…å²Õ;ÏH&º8,ôÚ ³+PÇ"Ðø“çÀ½ D›[Q �@@#Q¥ ¸ ³+o>ñÌŠÁüìV ‚Þ7—оUhò¶ð! 8S‘—êw󦪢Àà‹!� =2¡ØuâLB“yÈAìÌÍTu¦2¦W=JTK-Áœ52ñm‘çÂ1ÙÖÄÑ”�-߃¶¿5O%s ·K,ýèÔ”žNŠ9³Š¦qœ¬ÔR„p#ø…é@â¯ôÈð?«\ò&6³ëþõƒg@�:•…d#¯Úé…O8(æ @ jÅ©éRècÍ\¶zR•+éMq 44×ͦ†ö:M ª“UÔpЖ6*6Žfv øXz¶«pÎu™¯úiZ&߈¦´c¾µ…†î!®@C¼»f‡*ÂÇ"� ]À¿Šæ’jæØ”o½ºGÇ$mi�ÇVßE·¾+˜Ž¿ËFrÀ¦ Ïš¦¹{\ë“?^§!ZonELï,GŸôlŠU`\ÒQž`] °ÁÆì_4C瘺x„ìõÁÎMÎp¶4ŸgpóX:sÉ‘±17‚�4tYCç¯J¡¡Êæ­B«gqïÜZF %jjèU šR{‡½íѽö\;£; ½ãÇ4¶@O¹D¦÷åÖÃØ;8®4·0o¯q;UÊ2 AeU0ò¢/õk„†®ƒ= ¡£Ú¨mäµÛøu©y­øãJœ¼<rçc´†æú˜“)ÍZ=¡_‹&'Ê€ e]Zä¯ëŠç4ÞIj²vëMâ6Ü�m a'MD•ñûh­)KsŽ ~ð€`ÎÊ€hèôL ¹äȸŠ1·ƒ�4´›kÎGyÉÒ°™OZm&_{¤éÔ!'wSÏ™Ô)$2Ñ7—צ�Ýí@Cóp¼j1£ãj˜z^¾!™k‰§ª^Ý×÷ÉVû#0dëÅR8XÂ#s:¡Ð4F†àéièèÌFï†ü–è¨adr ¡ .È hbœÉ³>Ä=OâÄt,ÈKˆEþ'§o¬VÆdS¼ÅÿrÞˆ©¡éEñ®0[ÙÚN¦‹5tÆHþ‘[·ä~aŒB ÷ B.Þµ¬='æñ$&`K›½ÒÓ¾µÐyÄØ�] ¡¹’®õãohh[Có¯p7 .0Ë¥a?Ÿ±ìŠ|`¥)U3š'‹‰àVUÍŨ) ºªÙNC ¬’Åi¦£ØHf¨Ì̦›ÁOø�zèo=œ¬/ãé혷yŸ ¨ž0M ÝfðÔ×SN˜»ÐÐj ’{59l·o´P'J\ëë~RÃü-þ"—ˤ’M }”+jh¯NÌ>áõ3‘… öb }#E»Ñ^€Y 0þm¨ ˆ(±­Ï„cU:ÿ‹xE ‰ÄúpÑB.Šá`À5€†Îjèd¾ogïi¾n¸‡Ì”ËB:ÿä}B+édâÆó4´Ù¸D¦úÑ…”ìdf ±µi‹vZÇÆV ¬­\0YéEÃdÔÅ6§â̽U¿æÇË5 É$h±†í$aİhh£ <ÆIn­ä°S×IUÎ×â¡‹É™QÈb-£õ�­žL„ÖÐÜa¯_ ÛÁùhèQ*–Ä©÷œUŒÚ‰D#D›UD‘¹z×b}å4¡àóëüÙyÉ«ðQ‰(…@�ÚÖЂ ˆŒ2)¿öÔD).9ôwY¸º-Ê&OI›2šËt­¡3ÉÚhL¬¡Í ©Ðfw O¼·0©5ë…#$B­YŒs"°Qã(ò3¡!XK¼ÎAó(^_º�ï _p9‚†ž³há4´[f«ÎÐ\fÌy+O0²&ʘ.…Ò5qàÈëñœLµnæªú@y7›'("dÑ®¼@8ø±²<†67Q>ÞS¥@U£x%IÖòZÖÓК²¼Õƒîq8CoNæaçà˜b½Ø˜òkaäµ€†Nå7Ørz~¦–ŸcP —5u®´[T´Á>W ã|Êß*.·œèéyàžèÁ Ðúo6Åæ$Z`U1ï†X¦“™ev”‡XŒE Ù88ë½/˜ópñû*<¾™|%¶§y[v MiºIh¢t"p ™…óNg0ýÔ@C§ÒW%;’T˜Zx¦AœGô·­“ ($/Ï{K+f."kÕä>ˆVièÍ•t¦5òš :å>àWñÚØÀÛ+‹>`�Ødãð®$µÎ;ÝÔ¦‚Åõ6½Û£¡‰¬<<ugÑP®¡«þ3;W–;hè,øUÊ#Ɇٵ'Ç%²Ç&&‰ elr±9†¿¨E3½[T‡€'4´–ÔÅÖå•PÃf×Ú딇`¥…†ž$pcO2]Ch~ãœÖÖdP?1ãŠE¶ ³!šú>nZ@›w’o”ŠYó�ó¡Ã��4t¶$’4T¼æÎ®7Ù8®¡Ås.v3¿ª3½Â=ŠÃL¾ž6­¡uŒ¼Tw{Tèà6t­¡‡ô¡í öÜ›9ãÛ¡Ë7‚@fWzÚ{]ô£x‰Z ­ÇsA,T¯^ÚkÁ·ÒG]ü×jhWÿ÷#o¤žo$LhèŠDsaO˰aÅÂs å4m²§÷ß© ÔpÕ[+Ò¿™?ÙOjhÑf‚ 0³% còâ Ü3;ô›^�dö¦y%hk®;‹*9Þ}üŒƒØX„MüŸÃ&ŸsÊ# |ßG4Ùš±kÎYrdˆ0r ¡ë’s ˜:ÓÓŽL@âUB9?8© ÁÕÓк߈“ÇÍ(t7§s¯%³h±?%÷`f-ŒS!P,~R®ú6O[ó£‡àÎ7"o ß„VözŸÉ9««ÔP„Œæ˜Aõ§ÌóJ[696“¦~'aá@C×¥)Ù¿/¼Ç4Ý—ìy­ìeh#z­+gtFCk×e£-š× …3CÜÈH¼q.¼­6ÂfÏ…@¦Â9sòèˆ Hžòëó"[BÖÔÇDMÜg2"¦˜cÄw˜s7:(Ijhîâ8×nÚÇ[hèjœ“4Wm÷ü4‰›kÅÜ®Ù3úͱ@-ç­EècS@›Îè‰qƒäÎ ‰n;#ÐÐÛa Ëó#P¬Ú霴Bõ´µùd~)GÙ\¨MC'¿9³›†6‘‡†žËî!4tu „‚ NI«MŸ‚>ÌØ:¦d:¶vCØ×× ‚£ÅAHR@›ÁÆDÏÊ\þí ”höÁê“; nXú25´'‚ãS¤ˆõ°£(Xk5´`¹ÕÉÌBü¬!óÓCµ óÞ‚…j¡¾üxhè–g6RfLËÚsÏ¡# þyâÜ.oâ‰].¦ycX{ 5!%MIdyñ#u‹ù 2ðp~ç7)#½1â-h\1Qˆ]­\9ùc5´`-S‰õÑ`í[f!âFR±Ürg]Tiè-èôÓçA�º%™Í|Ë]?ƒO îþœ ÑæâUôÝf„¼.Jj>ž_·Ä? 5óáÖ ¡‡C ƒçB`”†Ö—èÞé D}m:ÃÅw›†½—¬á Ex^džáœ«,ám€�4tKydvÔ„ª®%ÔóÌ™ p¡¡…ê¥Sóu~“é+fƒ ”ú„Y-¶± }†K@ ˆ@¦Y—М ¸ÞÕ_×;ˆÿéqç_ï ~»CHó54±XËâKŸ±ôžÔÐc-– œhèÆ¬w>¶_#²­ÓfÜì[ž®ÕýÏ G÷­µ±ñ××çq/l…y«yA¼[- »@`KÚ¶¡I«w½Â%£î\ÚϘ|Äe?L,”âÅÊ“3–Þ3zìŠ[l‰�4t#ú™ýMØnÓ´ÙÐæZ&ñãýÜ Ä”Î¤žEÇ"}–c r7[Z›j“n¶m¨5´þ ‹ägRCó‹p¡ÅŸ™_£ËD-$l\õõ”oßßö,¹7‚�4tc¢3,€ößnÓ´ÙÐö44ÍâJ¬ÍuǯœBF'5AS]`8�æmÈ÷BшÜÞÙ-QyúÃÛÙ: xYnž4æz½Èئ'ý¹½ÛcÝþ…`ဆn̲¸Ä7­9¢qmLs˜ p:>bÚ¬ÝØhzm¯cå¿ö>I)¡M’¸1 Œš,vŒ‘¤Œ.jhÎKúäÛ¤óÌEòÉ0ÛŠŒ½5ô¨…FÕìÌŒ�4tcv ¡ÛrÚTÜ'Z…GÜžzÎà䵨zOÆ¥†1^Ö¦ÊfC\˜rã´mC­‰ãÿ‰Þ&üѧ Q‚¸Âä²ð„þä«ÄQ+wwæú¡­À81zmö1릀†nOwQFi¢}mÌ´˜ p®¡kÓŸ¢Ûi=íå™·"ýß Xß=Ëw ͬM•Jì6 Ѐ@Û6ÔZìåª_äXOsÍÿå5´VÆšvÖUâ¨9+Æ¢¡ó ÜP˜rI ¡ÛÓZÔÐÄ\ík`f S /Þ–øsê4ú(£˜ËëýÀKÙT©¬©AŒ{¿ˆŽÖЫhæšRï=‹ÓËú<ð„s…–˦2æ‡Ðëê\›ä“ÐÜOS©Ç<™DX{ØC˜=s‹cÀÌ@C·g‡ÓÖR�Û²!7“h/Ñ“t-‡GJ&Ùr´(§–Ù�àÎSÌ|M’Ä¡Àr—D@PA1FSÇ·sèýnJj®Mõ�ze&~‚ƒ«po@¿†6-g>OÓœ9 â-fG¨ZºÁ>¦LŽÀMkèN‘º†Æ¶lÞ6‡Ë/3wº»ˆŽÅussìbâáP€.B„çE £E…§/ªõe˜zŽ^ÔíÉÓФ)õ¢ëõ9ýop©OWòB-6\ÒîüÛŠæ,ñ¢9ÑÙô°™-«–>o1ÃsÕУDjQF·íLlËæÛxórfó>äB™«ê«›t ûClBCF&A #ì2åí ñºæõ#®ƒ5óÄÒ–+ïgÏš§Ñ…¼¤­÷›".êKñÇ@LõÏÙ2““íE³Öw«ORœpc#nWCWÝh_ÑÂ¥agê=‰m™¯þÀóÆ‹#ƒÜŪh¹vÀ±8$½E@Ò†ÃЇ2d6f~LƒŒæ ˜4q¼b0…+òÝ4tò§÷‚®ÍÙ¸™uÆõ¯”^–p`nQC©‚zL&Ê¢¸J®ºªÞ¡JεD-à£XZ=^ˆ@Þmè<V99bãseþlNNrÿ’~ Ú½E:¸AC/ÞŠYB.kãÜ%®³‹s$…ó«fsÔø ™º¿¶ÀôŠúײkmbü€†~ö剆üet@’Ý`¡!–ËL9®*6ßócH•Ù;ISD AØÅ;´jÿjML’—?YŸsíKˆÑ‹IÝÉ%µ©G…Á¼}ñEÆ* MY(.ÇÔBMñzR¾ÊàE‹¥G!p[zÝ�ë­[ÜË!8kMRæ"?éWFåûì4�>–rw,0! 3(aÌ)4´'ìâZ»×ñb–)@¹ü­ÒÐz"©I’¤ü‰0^Œ7îÈBõÆ_8‰k†Ü¦‹Šäx‚—ñS”+œ‹ÀÍih~¥›ùÑœ"ÜE5PKˆµÔVôðÖ4>(NúÍfLÍ~ÑO¯ß'b�˜@ ýÇéÝ ¤a khhÁNy²±Ð¢üI­ñu|ðmBz—«v³wç•:WÒ: |!}1@Á9†›°˜áR7¤¡õFÍsG€©¹oÅ5kUJÄà>íYîs½¤Ü˜óǨ=œßçkì D±\ÆmEK[SÃ5ø©u¡)£…@$E˜YQ,¡M™‚KhhSªš 5t zy,æsÝ—…¸Ï�ˆ1×Cà¦5ôß»(jè¥hz$BÏÜëÕk2"Z¾Ã%í×^Sõ›MZ8Eµèì$£Ã0 03\Ø;±(£{v±—B"sKoU-'bÍwÍ”i?Í/_æ¿^_% õצ(/[Û¬¢Y 87¤¡W-knÔ*Ižs›[Ø?Q‘íïªViŸ»å¹²'×ý@»zÒÿQ[#¹†CðH£Xÿ»8#£éd'Ïl„!M!Íå8¿BðÑ‹®¯ˆ;4D¿æ?|¡-stºS‡Ô½ 7§¡õF]ÙDÐA>ÁMpÒÉLjôfƒ·0Qt©üa†I¾fÍx‡+ÇÂÛÙ}wp^x8¿Ã;`‚%.Œ€Yá\hnÁ$ZF i+tpþ¤VuëÔòZ·3î[àç:Qh_7jßÁwœLS4±  „ÀmihÚ–q#¯ÝWEÝ):§ßf¹s¶íÔÐù3ìc3uìêÉ2—7ÉY<„›¨Ý¿—…T]õ(ï€$…ÖÒZY4M3)zŽ“«Ï§Miß9½®î‰lò¿ K.í†À-jh n ‚3z:ØuÄS=Å®n@Ohµ¼ækçf¦ž&òáþÄmB÷Ê SöD@(³XíéXq-OSri+˜§h³8À“Ѽ©™Ž-¯n›ÿè-Sæzï+&Õ¹÷ƒÍæ­Ïq€"®  q%ÍbØä@C?MP±£bº¨¡=¢¤HùÉËhB÷´ Lþ”¡h<ù3ìb mŠ­>³°IÙ¿fU‹KÜc7`má!ß³Zqf fÆ¡‰'ëêZ‹imS¬›äa²#D°žÎkCvdÎ>ŠrImž™r‹Ña@'ÐÐY M@k1s7Q•—ªâœ¿7tVáÓ…\[ƒemºž:šƒ¹[D‘·ÉûñΑ_:9Rd$9 ÀÀ*§DU‹WøÎfF,)£Çr¾)£{ôŠ0—â¹h—B'“¥“îÝ­aVHþø#_0¦žÖ~æ bäÙ€†®ÖÐZLCy©1[wàX>={ÉÆþó\ÐÕK’LÍ>­…u声õt²Wíã6wrŸ±Ê5ðä2?’œªÔóµ¶ú_Þ\ÆæŽËh!{"ç…}Ù|­$ÓÜàP™§›û Kb»ÒÓUqõ ¹"� Ý®¡y:i;éÇ",sš Ù9缆æsMâ¦f.O4t¦B0æ¤x$™¼¾3jNZFoA)Ô¤´ðm†ˆÛäMP¬µ*é*­)Æ5 ±§Â›Ã &ÖÆµ…°y ÐÐÏÀï¡-.b„žÖ\ ö|†Yz|;°¼ö\Zãì)Ë5Aij4Q+iÍ"ÜÔžÁеD?Þîè¥9Fx³L¼YÌÝSëüX‰M!vñFþe‰>Õ¶çÌÀòZm¾bM6És“œó·_·!ÐWóB˜8!ÐЃ5´¾&.Jä ³@CÇ›G‹]~ß3½fü€¦ÍÁœ¯…ø>j{Õ9ªâ…†®‚ ƒõU¢Ønñ–? €\w®jÌS„#2…o›}ïÚfEÈôÚuº6/�t—rPD¦6®¢A 8ÐÐjh}…jÞ´—ÙÐÐmZô¤ø`ƒ²C_@$ 6¿ >Éq¯YÔ›g #è²pU'ÎòºAøÿ ==6Mƒmö½Ë˜˜|j©IŒçÆ—µ µ NU:`ú逆~”²©êÍM–¾jçžõ8vº¢ô.R³µ‚dͦ+^Ô”mš¤{G/;|‚™¯+!ò1 ¾gvj’¤=²õ§'|*m ©`u!š=Ýl2aCP˜ª€†ÞCC×*P±F8u{¨ªHsp Î:ÅS«¡5ì¦VÞ§ydp3;Ç$äü„fÓsµ PsôyD†ZÏ8u‡M¯9ÇrWò„¨'ž†öÄ4o7Þ7{`ÇÜ$ÐÐjhsó{»:&£çÑ)4ÄUJ¬‰×Áñ ßìÐ<2{8)ú3¦6³© ØÈg˜SF 9uj¶äJz£@r—æÏá•Ó ¡wðjx˜0xR ¡eâši+Ïãz‰@«‰Ã¼“ÖYÛ+8±Ø ì뼘77Ó°¢ì¦3o!¾{bl››)$ÞÚVéœu¸þcúT˜òˆ®Óß’C°ÚZ·¿éZ7Ä" 6÷ô!Ù„‘k#p} ]»½{öÛƒÒ{öÝj³zŠ{ÞûêáµkÑ‹Ž4´¾Ò\èfn9Α™ݘÅ+µ56*o½1šÄͨaÐE¬S´+Mþ<nûrkÕ&ÂÔÐ1ÃOòe•ÚH1þŒ\YC·]m7kè*J*ÊhsÀ+lˆÏ¢©èÿ•Ÿ�Hzù5Õ™<îÝ$Ý\< (yBe¿O'Ž=¯Ú `Êm" 7µG§Ãgç@FQÖ(;:_ ¯#/\ §+ÝÛtøâºáËUm\P{Þf bOSy´9v²öúJ_®¡…ÖÌK¯dwàŒIè¥ÀÓÐtJwøa ôF©‡YÁ·tݨcçtXACó” êÖ}–Ó WÛ ­ÿt¥‡g@಺‡‰ªÔªÖgɼš«¬Ö¼·’–/9L$´˜_b[qe¢Y˜ŸgxZ3µ÷[޺Ó»ZÄg¸?dw²ª­´K°|1L ­)â¤QïÈM:ÄHpÍ>h­€ퟴàöü@C9Jһɉ\´™% í‘©¾‹#>ŠÖÝȼJáÂ×Ô‚üEqл$7ÈÔ¦!ºBt_Ù¹›°ÌÏ€ðð,¾5ÿ¼†r┢»Ìð|Uµ­|Ãâ'ߤ8j¦zäÐ ‰FNÀe5ôÚÑÛtL‘S‚ÍYœËËÅlÚ¯²|ê¢$5æ)é5³ÅüŠ\ 0ͦ¥)[8Ægñ¯1yëLŠö__˜í܉{vÜ@d`êzÛÓÔU× Ê=%`'bÓƒŠ5•1ç:]Û9s½…ˆú¸¸†&5SËGUê6#‹k/ßMn’Êoç·JC{ÿCŽùú\кöak ÐæñL?_ÄÝîð;°7 ÆB@l(Ú†ëfÔWGùyÞu;;KçôŒ†&Â7kCtäíÜ;oÆáù(®¬¡¹Œ¨Å«YÂÖn×@¬kŸk×F=Ãø"'’“šUMÄLq,”±÷;¼Isõ¬U¬~¥í3L ’zçjÙúÊ!ƒ Æ\]W´ñ= ½såoùát.Ñ9½¨¡×ŒëcÎѳ¶Îìß ××Ðâ’4™ã¢Hòì4°‰§×õë Æ“ñN2¬V‡ñnjê]“F×¹÷PŰõOñ¢ ݦôm:ëÝÊF¤o·u'©^¸±¼¨<-•Ü•[¸·Í¶RÏ=sc�‰áÅ‘QqðÙèhŸâ¼ñU ¡Ý ]ZK£Æß¬†ær½ï9>¨ ÊS&-´î d4‰l­¡3š«óÚb(òQ •Ååâ¦:~ÿ+‡"2pUH iUDÛ¡jcž¨á4¢èY¢gnFC7eQ*gÿÏboÇáÛÒÐâ¸"³{J¡PÌ)¤ä¸&kðçDS´ì£sˆ¼Œ6Šš÷i­¡=UíIÉí07µ‚)¬M¶slµœÉ×Ö>ÀþÅ ¢ŠµÔµy²¡­Ô–AóÍ‹òŽàÝ•'¨›ˆ_Ï(‹ý\SCkõÉ‘ÊløØBQ|×&ÆsÉÔFµÆO4Þ<gâ'ʼMò#(®q‹7f¬MUÍßDI$SF²rH<­¬Ë[ ¹Ï1Lfg ÁFn¯¤iÏrB¸>;l®¶%Úf%DÉ ´wÝ®»ÉX6N†€a×Fàjš_¶:8Øö\µå¾SÌYúÅ6ãmì<K÷È€…°& ´£©¹IL›’šŽ4Út²ó8k'Í‹õÅýa.\œùaävx„ ´ÑUëpë¸Úì·ÍJ ¿@ò8ß3¥é—ê'ÐIÇ0 ¬\PCg~Á¬âõ6v8Koõ6ã§(wÝ ½ŸË0S¬ÙÖä\j·\RóLrœ´×¡yvLR6[~O.¡/Ä´–Ñ[WÎÖö{pÃÜk `^”òÏ÷ì5BæQì°Å–h˜’O O.gfÁÒ ÉÌÃÙ8F^Kih±Iâϯ…ñTu[îÛh%ãC›å¶(öŸÅ3èe3¾'’¸Õü!$ÁȦJ¦1ô®`d’ÔæM&ZU5f ®ÐI'3ë&Ç\»2“ `ئÐî¦bÓ{S_LnêÒžÆ3=«ÓŸ†]Ü0%ï¤`ìà›âœx9uÓóý?—ˇ‰‘çEàv54‰Œ€šÙ¡m"4ôÚ9QêŸ4JjhÞ\©­­×{KKêÕšù[Kœ¶ÓÐÜUÝ9Ä+Bd´Uf‘à62[\nÍ ¦N¢¯ ]Exð‚÷p¨Ý˵ã«\âWMÊåš[nhè*ä18‰À¥4´)n 2›?3F/Ñ6Ë<A1µ`2»'F!›SëW®…ׂÒk½\+ =-4«'Žu÷ \­M ¯(!ë½²‚ÞC¦Ös|sÁYF.€wÕ*.oDC{7³ Ùãµ{¹v|¾V=m~Â,R îlœ#/À5t†G¸J‹sÜFm³¼ õÓUëÒÍ¢SBÙüú6×Í$@µ2^Åh, õuúòDäÝ §-w¦·™‚¡1™ï tú¦¯OÚ b0/ŒMa$¶†yIy<…äj2£9¿y˜Ô6¯Úñù\$54ð³fãí<ÏLj‘gGàjºØÅ5‰Ä©y› œ¨•ÙÙË. ï@êQîˆ4¹¸»>65´°ljî`-¾´g¿3ež†Öef¾²éç˜âª#¾M¼L¿Hôx[›o[.›¹w~l(â=®d¬î8¤›B͹T.8‡Þåa§õbüüy‡‡Ó"pZË¡‡âô´ÑD@:Eƒ1…§O[mEœ3RO°'×»Þt*�j´Ô}¹¶ÃD‡ÂÚcmnY”YsâxȱV0—ðúî:á+z}nÈB0rkðr2KK»Ø&W…˃¢¨¡óŸD Ž ®Š›9-“¡¡år~Ž¿6³ŽäAå¡Èø‰1·ŒÀÕ4ôºUÄž÷d %>&‚6šÐ‹š¾™Å§WJå’%›—zœ=Mº×¤¯Û-½kRØôD|OÅìg";ù¼{iâ€{Îk8(ÔŒŸmEåu&óžÅ¶%0ëÐ+ˆ]“€Ø&WÍã“`ç©UôDÏ&;œ×Uô?qŽ`^<ˆjá¼9©Ù.(X¾ÔÐÞ%f 0øžÔ Ž'šãÅ^ÇTé±(ÿ³ÖŸ•lDİÌÕ*Yô�R¥š¯=òåS⻪‚ ÊV¤rÊ\òˆ†ße!ÊÍéD{mWi3r—<ÙG%'ö¬¸Ü'º<Ñ ­¯˜{Ü3ð[óNyÍÄ Œ×SÏIÚ¡éÂÐÔÀÁÔ¥4t‘)â=hÓ*Ùjj¦¢o¢ÅŠÜó*gÎUâ^ðB&XÄÑKD»¥?…¶Ö«Çä«»¸©€;)›‹! ´˜*Dã0°x´)³òÏUðvO¼ýž9tл“ÀžQ²V‘uCYˆˆ�/ò�OM@ƒE;Íà<8ûÄ»:¢íxm÷r4ç·¥¡‹šÃ«<Sx›Ö{=> ’(öÿ2ÅM½P+B3FÞM½Ïõ„\æGó%É·X y’ÎÕ±¶V´¦†ªý25‰@¶@ .QOaSáqÅ·CqWnËÎ65Äx`Æ H'(80y»ÓUnœËkbo}—]p�šjÈ ¦˜\JC¯Û)s‰é‘líëÓ@3%}3%i>þäkÚ£ibUOCÓDþD«g¢Ý¢†Îôiês™š .ÈO‘ý \ƒ:R6ñÒp†¸#çE Y¢æ–§¥ŸÜC2ZoÀ¶î£ål@°£n \%žŸˆjÒ¯×Jλ¡àù!\PC'/1«är•&ð(@óQ1åb]ú³ÊŸâ*§+i}÷žмïò¤POô-ÑEþåh âý<à¦DX§Çœ(yOÄHsuám³qL¼zJ”ËG¾­Yy=Hƒ`y§Ð—ÿ¾¯æ³»y-¯s¯*(ËúI¼JCÛmpSn«ih’•è�]ƒ|uñÑäz.Sv|]ÎŒ™¹§S¥S¼âD„Óîª>ù?ód…ß;HÏ‹"ØÐÆãZ(ð0ÍÕÒ|þ]lK怶0O]¥p¾Zí¥ÉPoíàò²ÇÕyærbŒe4ÁkÊèLGãG[#ð;¿òÁ±%¡ïÐhKD±›´™Å, pM Ïk^Fg‡44 5-_]½A ]%Å49zmUHç¸YþÄKVF[7ÈYj¢SêR ðHG}ÀZ¬[ݧó[¦¸ 0à’Tít!Žùî›ô,…W+ì4\‚1*´i"ZÂü|oMŠ÷V[Ñš®9¶m-Ìܺ†ö-L™’Á:æ&­ujm¤™1uŠ1 t¯V(fºª­7î܈ ]¦ Šp’¤&´©žE+Í÷ËLy˜Ö´€N†™Yc®@fñÃ}Tq: \<ðXÄ^ Ä¥¨s®¨ƒ­Mî­ËAU°¶#H»HËUËa0èA�ú=“ĵV(j‘â�Îþú¹—Hn–ؤ'ë3ÏmSœ¼Årfl«ÿ¤ì{_ë$c>Ý ŸuжaV‹(Œ¤?Ù÷öEgâ:½Âô“" ¹7.c³æÉÈYèQl¾Ù=1êí/3ä`p�¯×ã¥ùñDçmÞ¿pFëfþ =ÏŸt˜ÁžtÁ퀆~¾ O+äwiW¾3ÒGë‹fÓ¥‡H1/gX“y½õéNžyÅ¢µÝEô ³£°Î”Ь™ ñ⬠sˆW0rFÖ’6OFãzæõÆí‘ݶCì$õ¾Í¼†éý&Æú®&+ï÷(´ÛA.Ä)Cð=Ÿ†“óì£Ø7…böèÝ<ñ^lK%fhèG5Ëhšó”m*¡Ìt>f}ž™u®ú&Ýbý3Ö”ñ…ÍãÙò/݆͆TìëÂ.w)nQfK#¯D®¹På´CºMdD#lø¼xϱÄlèm.¶Œç° CswϬÞ#œV~34¿'ÊCÌìç˜<VÌ…¶&ÈGX¨"Ú^&8P`+ÞÕq°ÓV›hh™±Ÿã?óZ6PQI%Dž˜Œ9gyUyÅ»ˆ÷Ü<Eˆ)X‹N³éò5)‹@´…¼ˆÏ`Böµ€æÚ:cjà³¹;’õ<Ð1˜:žäª•Ñb'¸;Š) àéÑŒ†ĸ.êuN#œÓ4›i Þ†øöçA‰@Bhæ ÁÚŽö§o1ƒ�4ÐÐFUjh=Vobbð1w’J8‘å—>EÝëžj’ ÉÔÔ8MLmF´[óh1Ø›[„4è—™¹<"íCÑÂFb }±‚ÜC˜¥zæÐûª¾HãÎÜI.Ý?\þê²X·|p/ÁZ›Q›[ÒÜÅy íiqrI§u=e×½Ÿ1ÝSøy?î:Û \rEhh;­žŒäuPÞf"»Èþ¼ôÐTmjh“Ù‹t_AôúG¡³‹ñ0L¶Ã ¯ÐÒÜ¥S} ø—\z-ìâ‡þkáéÁ‚ Å~™ 1Ä­|³{Ș¸J¢§¬Ðéuë‰5%Ϭ©§¹{žÍ±Í‹@ÌÏ/K2·ÄÌV3ðç@C»i2岦’Lš3šÈ.Ömmdœ<|Œ@IsqÀΦöHÒS… "nCC,‘Ì»)èŸÚü¬¥{^±1×.ñ·†€ÞïÁ©9˜“áÙ5´VÆÞÆ÷pÓãaÍå¦89ÖåŠ\÷Gz%à½íØL¸fc^0Å‹·[Ûˆ· hè7N æ5wôLÃЬ¤í›.åݘy¤×EÙeäÉÒò:ÖÐz|þÝò§ææ™¯‡d0VÌ“8y2X´ Of™+̵ WHm^m:‹¢0,PÆÜ+N’Ä\+ë­l^½h°—9¼<M^—Ô÷«lMœ¨u É¥Á›&Æ/�4t!ÅD­¢¹°Ñ&étz2yMë&*^‰‘4{°æS-X9ÿ&Ÿ‹;ª…ÍÌ­¤�’RûÜé"UzˆWXôÔx²˜kb¾m½ ¢…]Ì�‚FÄ¥,@ƒ+TÆ-ÐÝÆ…ÖÜ╘vb­uj°®`È}À7•ô²4/Œd;ÞÇa¬rj ¡Séã4PLÑ–ØÆE-v>qŸùzqu“[§m9q8žÔ6?¡#VåZð{R7Ó0S1ëÍ~©×:‘††€®Úhì! „cñR-þ Fì©ia'â½ `�ê>ÞUº8#ØHC›º“K|¹`Ë={ fúP¬½iëŽÍ†�4t6#£d´y$Pû¢y韌„¨“KÀn{_2ïÚÃüôP?ЈæY=˜7 S@¯ç@Áý!™ ži9](èžÅ\-ïôE¯¨1¾I½+d¾£OÁWz[ ÀÅk|ƒ„î  ¯ù‰\’`WØéù …>­ Üí¶ (víÌg»áƒ…† � ]†‘oENè噉‚L‰z¼kz> ­[!È%µX”swÛZ �²CbËÙ\¤ 0Ÿgô.™2)Ø<'K†7ÔÁ4t2¡–DÀÜ×âEª:NÅZŽó]œ\ý¨a¦†&Ó„ð›ÆJoRoÛz´£»’ç€ЂoW«žçÂ1³UX÷D@C’e’y"$W¾ò2z%,ú»a:°Š ÎÝ¢3õèÂ<ñÈŒ¾ ˆRwVþÊ >oZú]-¦5€'‹€ˆvX¿õ�]üŠ­W‡ýG€o½5Ä»‚ç‡NèZA;"^N/æ×0h<iY.sM†1±�z+ŒShõShhAtó<œhè(zkiñ$D'×£ùi.x»OŒå&I‡ÓŸIÄfïY¹Û»G9˜"¶Ô\[g=Vçëg#B¸A@o„3Ì)‹oLqMK,!tää¨ê T}Ÿ†ˆT4¯ ˜ú›Kê"2&ó˜Ë‰¼˜L{øAŒÙÚ:u: ¸5.¥¡·V0ÁµxQíÅ…åq–9«èFq-ïæ]!gÐÐA°º Zô¾„Ä{­x¾jñõõ?¬P䎆ú<PFC@Š[#@[lýôŒö¦–ÑbÛníX}H‘Òi3ò¹? ”8í|âíw5%‚N„ɯgøó†L{6‰šû ¢¸LÝÑÐ+M ܨ‚³8•ëû¨’ïš²¬íÅu˱ jê™í¡øÅŸÂ;‡<É褒=†w,Ý~¸HrMÐö’Ú†™=õ(gÚBÀ¬S# Y]ì_Ri\®™ðp8Ûè>•×ÐZ˜jŠnÓЂ÷LļŒh‰oªØ³ z4xìÀ\\léëhèµÙ¼¬ôx°J%ëå<.ë·xÉ1üʤmó`cú£þB qL̓æjù¨Å·Ž…7oJ:õ¼æ|B÷ÐmµŠYÐ_‚rmîßþ´™,êݰ¡ƒ_lÉ U4‰ë ¯­Ðë&í˜NÎ »)â‹-¯-ŘuË\AC{âÕÜE¦¢‰ƒÛ‰ee•Ú+²˜Ézœ°:ól°’öÛEsÓ%-s>|�ÉhýÄ<%âeÃ%8åˆR/|ãΟEF›š®4¶K4,NÅæ§mTœzKê9žœ‚ÏÍÎbîDA5f 6Áù­¸…½O,§/�:{ÐÎ :¼—í/–Û‹khÁ³1 æ•·Ђ•ò ;™Ná†è¦?IËÞ0!.;­m4§ÒÇ¢I˜r–Ƙ’:¹üê…?_ Æ{¶°Ú¬×¹ws� ±§ÄM\¦’6eè±Hò(âˆh›¯`5Û˜Ò¿ÈáJ6AÝ õºÍ‡Ç&«\ACEL¯X@“€Kš*Êñ$‘‘^ÏÌŒ1×ÍhèfãÄòcµj6²¬;ŠÖÐE¥k^Ï$[c¿Ù'ÐùjÄÈM0Å"§D¢ezÒ¿ËÆF”ÑbÇ™ÚW(l“?¬òÿG ^/.ÚiÝ"éÅl<dX"p Í·w­Ú( è ûŒÍ¢PíɈ’ô«§Ñq×&5´ÐÍ|–Ù¹ƒ¯0öîY ³¿y¼A7í_€@ñ(¡Èê\F¯œ³Öê­þM\ê ΡË>1¶£5wr/ëíÏA#ÿc*.fíD`Q °ÑЂ2òH/—WNÙA»‹æÈÔäèE*}Þ±#=â.†Ìý4¢°/ä²h`¢ê;Í&WtµˆX¿…` n|ÿÊ/ÆŽ7ˆ@‘¢‰ü§ÕЂ tDbß™ÚdnJ3g°¤†æ-À£¢Sóû‘šEo°hòí p) ]›¶XŽÄôT»Vq¼©Sµ¦)ÚiPü´´–MB)n*àâÐbâÎÌ]ÄÓf·3»Q£´i#Ù. &&™’à pœ¾f»—#y2¢54§bA&Þ1¶y±!ÚJ†:4 ˆÌ’o‚-Ç<Wª ¬ ¶Fàv5tQ@súÛ4 &÷™ÇÌŸ7¬j[ð ½hžîäŽØê§épQ@ëÃŽ9ï¼›P ~4`ëF²Q  ‡- n„�ß§bÿöß1µ‘Ϻ¡x,D|EjÕcOÎ íN e¨£JCsB††Þºr`BnTCÏ  © d$`•2ÎjO+ÔI>5ý ’(š“©ÍVaŽ4AºZ­· ¼é…µf©çë§v Œøþ5å IžúØ[Ë´ŸqlÈòSÜÆ÷¾°÷îåX·w�ÏE6?JÈ4“dLçÅ—@¦ý4`Hú`pnQC'µWžqtI”ÎÜ&w¸J<#Õ¡ fN”;'ú2€çQt&-)q¼÷˜-Êë[¼Ç˜ÎŒ‚®ªЋЋ‡±Æ‹«cÀ- Q®zËpe§§ª°›nÉ|5{’7‰ÈüJF‘92É}Mìçµ6¡’é•lÉ%ñL äaÄH p8·¥¡ã ,ø%I7yŽî¡Á°ùºÑQÇyä«ù‘^é !ï³9Rwä0 h·º{™@߆Xlb@[E¸ 4È»æ@³IÇôk ë*q^|yάL.7‹ž¤‘Ma÷ˆ—œ§ÍÈCw²ÑŸž5 Ó]rk O„©Ì‡“ºSäk`SðaŒEà†4tLEòMânrôééñZÑ1×Äb6ï?N²pÑ«Ú ŽÛ õ}Ǥ–Ñ:fƒÌ®2n×B!4GÏôu.õlþg¿YX�TQúó}¡}ùN1e´wÍLW¼&5‰­Ñ[gÍ£)ÁðBûæ¿€¡qàP'£œ@yŒ96 ³3&Á0 0-·¢¡å§eP³LÌðKO)ôËhSrMiÞÊ& jƧ'vN➌†ö$›m½\»Dzë»ûÓÁûe¿µþ,Õðv¥y)[¥q©n¹Ü4w¢)åç¹9M»V½&us4ž‚Ót§ Ê,Ðб6 dëÎx¥ý‚XÎ…ÀMhèX@‹„õhˆ˜¢MFóYñy…nD[oR®ô„7¯C‹ˆ‚<Öö¡*MÐ NOF  ›aÇÄ ±†æ÷$¬'ÊÉkΤ€^mz$гqбÇj2-—ÎBÅ®oé[¢…P¦«Ý×j¹KC·¾¢=ák™f:c•{Eð1�ìƒÀõ5tÀ’Þnï>ßšWÜš´CÁÆEš«´-ôpÈ0ßùëæÇÊ¢ x(U}¦sŒŠºÍOè¦z¢Í=̺z7­Ò™ßT–Ñg$uÝÆÕËÙO(Ñ-ŽU¦§z…cD5ÂyNÑ"j>rˆ†æ2Z?¹QД5ïê( ×™‚M ЉÀ•5t,wLÎí—ûÐA›–¥YAÍIÒ¶tg™æ§ënM ¾öq#º2ÿÓC)®+ݺ’çjùÍ‘m¥«ût§˜4šM mŠK½¡ÄŽNîG¾A’SRIÊ2¿ë‰Qõ=uB§ õ¬£ð4t[WÒ¢9Ô<)AŒš‡«!)˜¶Cà²:¶©€/¶K[³å$ëÅË¥¶GÓ±ˆ’Ðü~G”PÒæ­™¼céFžD ­{µa’t‰+•µ)ÖNls³n!.ùVÍ—ÉõeÆ‚9&31™5Úé Å¥¸´à7ºh&ñÈYËYáR2jÞexãà <¢Ø,g`1kŸÞ’yÄ0 P…ÀE4´`“`3{o%i¥ ÜMs‚«ZHG*^ÔiŽŸ® {ñ Î<Ú¾F©X…ªÁUÙÔâ>?¼š3›ù@0r~´ ¾çiMóò/_½Eêë‘ȧVC¯×±„†÷}­ƒ“ºÁ®ÂE£áDj6ó¸!îÈÐÐ=…‡¹Ç"pz ­©9–2Ev>6U«ï £Wx‘]åð¦ƒ×V¡;ÍÚ¢¨+˜|-d4oiÈÍào 6^zëDÀ¾F€“‰&–$uÓÖk؃ZÌò.ŸAM;U7'Póônð:wÒ#êf‘ªùŸƒÏ—3ÕDêõß*¸òyÁH °5WÐЙíðõÝ:Ož}®„ª1ÙVó&ÓtYµÜø†°×Š’'ÓúˆeÅgB(Š€ëîXœ‚@`ÄþêÐææÍ«5tR>rÊ¥-©/é=ây¬®ÝKæ‘ÐÖ­ÁÌ‹ô™ÖLZû¹D2 ›"pn 0Kpuž|kSÜ_¹¬€ªd´9xHû …÷•AÞbÅìÙè`›‘rpq¬½C °D?(Ôò.¹œ¹‘“sã=ej_=Å»ê¦]©ùœS ú€Æé­f¦Š5´Ö€æ_MÄ“ý‰€ °'××ÐÎ+=fÜ:™3†€µƒ+ š0éÖÑUÙ7[…î1¢E‰?ƒÏ=µ)Ý5«Þnp\ÛGÕêvñÂòõðĮॆÀÝÙ`m¢ÉÇd­¹å2šž“qM\ë[1‡s÷Zžà ê\ûš× ñ $ÚlƒoÍÉÂD 0 skè•A¼ŒŠBaÔ¦5¥Û¨ ÅvDøúr¿è[@Á\:k0‹ðIß<(3˃ëŠ2»Vù(¼òæi=Ä1, ŠpI*$cg Ǻ³è[0À$N ñí 5Ùá8ˆwM¼Ð4žÉ0uD¤éy^„5N‰â³A¢†ÏQ“þcØ+hhR3|sz‚_ôBV«®Q–¹·š@5O™ºxSš W-@ùÒÀ"Îá¨5Xë!¡j*c³îP�µQ‹ö&¶F-&m«ch@€ØFë*®;kØÓšÍ{ó<Šâwût€ZûšJ:èkœ²@3%/·iN:[‡¯ ;TCR0ìƒÀé54i­üâÓ‚Qø ýäÝøÅ—óÔpðºé-npŸam Áäë• ‰/¯¡yEi`E™- `Tíeì˜W™‰v@@+ª•jLN—‚îUµ y ž¾zß"eññ3—pµGC æ×@_ŠðË�êAB‹ª3˘6EàÜZð¯Öyô«'¡jq•?¢—x<ž‘w&»éîÂÃá2ZphU; nv/†N$wæ6àu¯ÀÇ@ @À»º •ôbó¾—SYC²‚ÍåE‘9s%zXW+éý5´кó,›G3“gCI`Ê­!pV mòo†X3cj‹`7™B¼©=—œ…Ö”¢ÑëŸzq R ÝÖã›Ó4rz‹·±LkÜ:X³*Тö‡+fðh3CJÍûZ8&X.ã6—Ýææ"ªôÞ÷{d¨dñ§e“½‹Á’)ÞM8ákô<UjTf‹Ña�‚À‰5tƒjÙhš‚~Hz8_×:¯žPÀ+‹s( hÍ×µŽE&¶Öã›Ùã½…°Þ3Æ`­8¿“8 7n"óz'8ü¢]°\>š  ˜\ažDhšŠU²~—ó³)Ê ·<%z™çb]Ë|EL7Jnã;…ùÂÃÈ©8¥†nSyîhËV¨mvø,âÊS%á›ÐÁ»ñvESS Nn:¥3ãk¤âÐ(¾äè\q 4¼F¾ÅZ° ’5´Øz‚‹’«d†i¥˜™EÚ‘Á”Ô: 2.HØäU¡•iQSCówM­•niRC ³A PÞ¢{æóˆ‘@ [ÑЊ›"õøœ¹Ì îË´+N”‚ýy{k.Ä-&ö�赺ÓÝ¡¯¶€6@-Å«;RŠÛ hÒâI2Ú\ßšš’Ó _ÚÖ‡ NÝú]>FóX’Å0Oµ}A_�Ï“ c˜Sjè•#ªîåHÇá©„ØìÇé&3zœ« çnSe6;¼ÅÄ-’^[x[ÄÕ`S4ò ˜Æ"¼ºã*‹éáÎ4çèÏôÌ­'´²'åµ Mjh2Hjo–ÐäÉ{“'âÅÏH­3cs k@` 'ÖФfŠú` -50œïšõÔž†Ëd:ÞQÄaƒÐÜ¢É ¡ÓÔyO6þNÏ1Ü1{ï# 5×5€_]ÇJšÞO´†æ"•xX¼;æEkh½´öÜ´ÜæLC:0ìƒÀY5t^wn!¤æFpâpËÞL»ÔT=~ðp ½iÞ‹—mó8ÊÔ¦€Œrv€�! ȇ+Ý-Pj> àJ7>a5Ùž«Oêk¼ÁñYµZhVïG©žZ…“XåÇ$ÓæÌ¹†M 0 skè" 3ë†}t˜ÖÊþ®öG4.£M*/¦cÏ3§~O´"9du, ªØY@çet\&YÝ$[¡•ùÎå2ݸ‚Õù܆¯pè%¼ŸI1¯ 8DÂógªÊƒÀÎ\YCÏ©¢Š¤³EТæ1‰VÒ¼‰çú@‚·¦|*g¶Èi­M�R‹Æˆ€¸bßÇqjY” hþ$Ê#’&R]Ÿ4kèuzÏw‡¼�…óÚIór¢Ö™L 0ˆÀe5ôΊÁä ‘×̘ᥰ.Ê¥s|w‡–ÈBaÇ?ó9Üÿ6ƒ;g¿ÍÉg“ÇrÍp½ó÷ÏjY:ÖÐ\ {hú¤Z1š‹lS¸ëSx7{•̵v&9ÀÀœ\SCï)Ф )rÏRÐ×ýü°$¦Kz—B8˯#ïY�{f³g-`Òƒæî†�§ªÔQvÊh~PEþb]úShížXÅÜé|–gÁ”à 'ÙÅDÔ"\4ˆ@à(.¨¡wÖ Z¤Šã„£R«¹Ntø7K8S%²9€zFæÐe4v®}‚ê\˜tˆéÛ! ^À]ÛùÀy{u ¹eŠÇ(dM«aŽÄ⃽†S± ”v•^ ä~&Àò‚%€À„@Cw%Ehñß´ë2=b²çÞâ§hœ%ã»5ôÉWáÉ®3"¸ÈÆ$nlf•}`R§Ï<îÚÁ«6ÉXÔܦY­ªM:hÐ^æÓ37½h;¦@7/!Šî,fCàjzg¡ (ùËA{&ÍU@›@ »ŽÚÀú.ýïž1еv®#­Z°TÁ…Áû `ªCb’£îåØb]OÆfÑ]&iY_–¬¯˜´?ÛyÐ>ÕˆU€@-çÖÐB  Ô绵ù>^;I(A‹WôyÇ|–ijç,hÄw`x‡,C`„‘hUǯðÍ+ö«{âu‹ß_ó"5éKpl<·Ê²#Ì¿'ã}¹5ø°N‡ÀY5ô!ôªÏ;5×Ì©TÄÅF@ÜtØLcH@“ñd†\ðˆæLÁáÔ�XOˆ)Ôü¯È]cQÍKÒªu³æ©ñ0½ëW9,k ]e­  —DàÄz‹Ûò9¾$×èóS4sm=Ϲ”¢WÃ@&¿»1r7LU·ÛꙣhÚ8;HG*®üM1Í_ôîxÎc¨Ï;„ŒöúZgìÇ&«í8¥†žA¿ÎàÃFeÁ{?¯“¶Þâ£ÏæÐÀõÐÐÍщû# UÝþ>èÓq¢wN€ül¸ÖIqœLò Ó ÁÀœßÄÑFòf¾4?"áÓřȄ÷(Öâñ@`# ¡ÛÏÚíN0S·Ç¼³]K@CCCO°àB•@HIϳ…zön2N!ʃoŸÓ ½ªmÓ .…éyÌ)}U3OR’hcØ Sjè•M޽—ƒÎ2¿(´[:Ç.¤¡9¿óSóïÆ:“±®P8™˜=˜í ¼(@58±ÔæãuÏ[R³+Çæ`íð:L{E¯Ð�á›ø“_Õ€:öÜXë\œXC‹+û£p×Bó(O6Z—“/'hA²â“ÄCh÷E7‚}¸Y€3RìD`B ݶMø™±‡‰>ßåÇÂwC¿¥4%2§ë€Ÿµv<ß™eLFଚ_ O•ž6 ž*ÓÁÑÄþü‘ÖŽ˜i'Å{Uðûá2ýÂÂ}x¡v:³—+Wý:A¼¥Óá)éø÷£´¸§E/ü)ëÅ ›7ˆÀ¹5ôœ ëdá9ƒ¢‹}vb4±ùžá\ùN Õm'’˜>ótvìykmÛÄä:óðØüé}>]8Ðp¬×5¿óÍ2/cf»¶É'#Àž@Co‚voâÊP£âìDœF›'+»A±ÛBCÝÉØƒ3•PÛ)å§ZæKnPÃñNp¹eq¦Ë¿M(Ôs¿€¦“2%¤°)âM‘=Õ¯-ª–áìm!� Ý›oï¢×îLó=éì‰f„Ÿ£lPC ÜÚ¥yìß888T›§çô¤mƒðº ®Ó<!KPˆÃãõl‚N(j}ÖtñóžoÐÐs*¼š hèöŒÄ‡[µÄ×îÇ63¹>6Ï›9Å›¢Y\]è>1Öñ³>þ3¶MýÙÓxñ(nOg°Ö„´Q‡Ö¦æÏñ6aþ–çI!Íš"€&ë_æk™žþËWÅH1�Ž�4t{ Ї[mÔÜî?3ÉÅB7s{A°œ‹3'([ˆéy Þ"}ý6oó_–ê/ªËXhÛ¼®¼ë4‚(8 ¥Hš»‡'9“›¥Îu6Wùâul“Ë9ÙhèF`‹¤¹ÚmcçFŸ¬i&?êñ°b°œ²õs/œ¤²Ï q8Î'sãørçÆ‘9°&'Yº§�¨®øñ<³°Fj±¢E½_îç{¸ö,Âd E׆€ñ@à@C7¦©(+ù DãÓøq‚÷‘œ»Á'wÉ`%„ÂÙ¼9âžFؼè‰&Þ8>t‰˜¬äe®ö й/¨®øj‘žÓ1Ф¦À¥ßuzó}™R×¢Y»Úƒ*æÛA�º=×y¦ëdê*­{_ á.…·É¿W.-8‹>‘9ÏèÓ{"\•ŽIªU|Yj’š<ÜQ›ÂÔÄ«qs zËûÕ9ïõ C™{¬®u?m Kž58�¦B�º=&yæFñuÑ]NEqLª7Úüл=Nl˜z%@-•ç-Ñ»ê�@D™Í_ú^µŒ«vkoçêØ‘dZ¡ªu)êÓ qfažShŠæ§ÚÄí¦vÏÐûvY€e pv ¡{3È»BÀËc);PêB 'ƒ9L7<N¸ú¹à÷οä¡Ë<]¹·’¶œ¿OùmÁ�Û¤!¨ÚQ<`Í™àêpØÇ†öèTüb†–ÑyWEakÌ=?“m"—jŒ7„�4ôàd+£5Eš4êIa“Ícݼ[<ÛNBoŠéÙZr2–£†åÛðQn½®@€ š$ÝÖán*•6p;Pñè�ùÑ´"'L}¨¼T÷[‘ðMZî<ï8¼ºà�8 hèñÈ-y w'¢×“*Aó{:¢ ˜Gòn!„xoEÍ_»i êÔ³v(¼™ññê¿G¬Ìo§oIºÈ¯"ô¥Gyƒ=#GíS­òcóHBx.ú/í<)¯Õ¹vŒÚSW˜{›@Co•w©G1x,4½—‹Ñ6»'tpÏiŠgŠÛàघJ> 9­U«ì<8#õ<•L×–Ð ¢NH„eà3Î7ò$vàFÐj•tª¾¡N%Ôó:—þ·m+y×*뉸æOJ±K›˜¶@ ŸŽ¶ðj± ½°wf’ÑDåµ±Õ6˜ŒØXú¶äZ„_›Ù£üL®ë)cS©h•l ècG“o=¬MKÅ<@Òm†Ë•QÁS«Áë”;±S@¯Ó½[5Dà‚–ójë „} ˜¼8¡¡·­ØetU`UJ—Ÿ ˆö)úu…Q­‹ÛŸ¡%W|ààáøKRêÅ‚Æ{÷ÀÐŽ]:ˆ)—3nÏÐî‚�+]œú˜ËeA§0ƒ1ñêZðWªº@§Ÿ˜’$Ù>imø0hèáJƒ&1 dóþ�Lg̃ zѓΫ3«Aúß-¨Y·ä© íOÊX ×�‡ª.yc@¬¡×Å•˜w]š¹7S¥|ûk*Ø‚L¯†o¯x45™wÖqzl¾õNGj£ûpL2õ€1@ @p±š7²éHhèMá}f\³Õ üåé{*\R-$Žcõ,ôú'—Ôcá65ýØ%®am†bëGr-Ë@›»L¨d>F Ž~'OmaøEE²ð¶VÒI7ªr‘¤W{Z@½•ˆ³tÔ°TaˆÁ@ F�2¯Œ6 ”7NëB­zyŠ99«¡J„"±.DƒåKN¹@³ädª¥½"Ô˜:ZCo-àNTQ/*Pm˜’ÁvÓâ÷|åªëS3íX}820Ðl_œ²ç�œCñ-Ãíø=hHú-~ná}P^ìpB@óChñ¼ tîÀŠWÌâ•í€msþØY@#%Á-ºH¨r~†~l~Ç®^ÜéÅ££žzë\]ûÖãLXÓaq5bH q°¿†^7B&FŒG!0ðÂ~‹ ¡·@5²iê×±NÄ5G¤Éu39àÑz‘j¹€æKpËE#fDÜSRoÆcÓ´§µfä÷t²¸–(N*€øöh;¯LÜ ]¼aÀ¨JµyGùcBá1­ à>uI7`Þ3eS|zÃ\ ÀEÃQ…†iÊ `®±Dæñ²æ™M­óú6%˺Pó60] 44½Õ³h*‘'4¶ÀŽ Ú»”Š5Š.NQNâüO £‚=ݺͻ;ˆ´³n;§S¡ÊL±øyÈÖ1Ä� pj ¡KßF2Ú£lÑátÃ3ÏNŠ}‘«ÕU° ÁU ‘DÎsyMò½jÑ‹ ¾R§,jâ5X-¸ „x¬_[¤1Å-p±Ri §§Àb„›ñïq)B,޹1R;ÖcÆÏxÌÖ(õ{ 7ŽÀä% }d}j5ÐïM‘ÙMmÁe‰NQ»¦&&ÝL²5ÐФlªÂ XÛ7et1¢*ÇN4xrjFÒ“Ëk%Ä¿Èaþ·WèDwz$“Ò£ÿò×*µ«ìPðE¦LxàasÊ€J†ÉKº±nk9=Ãb£j%>öÐïV‘;Îå ÙW£N\L=DtöwƒkëªÀ eŽi£JkŽhž}Ü¡3KW€Å›¤EÑò?“¿?= ºÑYW1Sé¸ò¬ÛéXÒ¤ÿœ—’–w¶P»…ƒ….†Àüõ ]]rù³“¼i*”Ί) DAúâÔ-¿:_Èk$^ÃË7Âà Ç“òÞ$wØ“OÖGæ3{ŠèŠûÅ«s^Qté%dw0·¡tOgƒ“ýPsäye.Í_Ü­Ú3½`7g’H•ß<À¦Ì¿} ¡« yöPk·( bƒšÍE§!iž±Ñ‹™’]ÇÄ…@áÎ7t_¾âjYÿoì‡OUàµ9g|&­óx[ôÄÜ,"ÆxŸš€Ð=7£–Šn_c@Ãþ5oÖФü8-ø™’ï¼´N±ïNáä5ö¢¨Bà• ]•Sy“åØ_ô$.n(@1h1-îõ¬ºõSËYS”“¢õÚgUŒZqÏõº×˜ùëZ­_#«+…S¾XtI Í5±V6* ]!Áþ:U!T8kjå±…ä¡JìÁŸLRÅ`Ô Õ5S3ûȱcszd$XûZœ¢2¡¡ëŠÎ“huVÂÑ$Ró6¯¡ ~€ëH¯v=íb~=+Þ�ùíh~øÄÛ­þ2Y|Ùw&Ÿ”©F^,@sè:ñ˜©)_ô.rSwH›r0­­Ú«t§)¬w ädhç½Êº9$ó…a“#p–²„†®.$“+‰ß«ÍYjetC#ÑŠSôH­?LMgÀâ³ÔbÇ-XщÀÑBÙ ŠãÓ€Õœkä,|$PòŠ„ooëñ¹<ü`sÎË{ì§Odžw¸ü¤Ép‡“Tqõ¨ÔœšUNJÃë§Bà,e ]]6+ã{·ßq×Sµ}ExÕÒz-£Í’%ãÑIs�÷Í<]æ®’ ç)»©3EïR¤ºî÷PÜeÞÅ›8NöjÛdÁ•[°ë÷ÅfÛÕN$i§~/lj@ÓÕSäám Ö€BàD5 ÝX¿Hmž¸¾j±†%F}±ÆSäZž2·u1@m|}ÅëXú ‚4^h²Ã›nU%t>qäÈ,&¿ºãfé²J JÓ½’¾‘š9…äD_nuîüt3óŽyF~8 +¬»'ªIhèÞ’( A¾€ þÌÚ¼µ{šRœ½eÌc¼&*"zZ‡IGzDÁVñ¤ ™ nq¦{»…†æ>ºÞèD{‡é'â#3¹úz.›LiK‰ŠÙ+Å*}Ô ;”Š·¹v[:^ÈäÏ€ˆöt{)ßòé(¢-LÌ:çªFhèö¢ê'ͤ¤6ªÒîUAº(”)"úÂb¬¤‹šFx.Ów©GÑ«œŠ¯Iª€:ËàsQÒš¦ø~›¼†±ÇõæUôç,•ô³ŸÙ’ %‡‰+"ž&þVÒڦö£å­ÝÞÔþäÆOšµÉQmsïtÝ º-Ñw³DgíϽ'©‡/TŒY¯¨£3_¡‰foó^ÔBÙôP·vâ¾ØaZWŸ=ß‚¤î¯ÌbÁ ×üQ0†ù èÕ ¤¸ÖðØ'1¸µ°ÈØçcôx3Ë“ w.7ÎHCÖ=eˆYiF .Å i4/Ý6º ·òQY£]6M(¿=oÇ,2‹YÊZÓˆÓè58¡¤éO.g= í`Êk!žòsûs7•…36ȸI×RÉi±H.ž¸êø»æZS%ú,Î$éE€¯¯´© Îø´~ž‘"†€©{Ö³0Ò†@P‡EÒh[±4t#†bïñN. ‡<?êw$¼cžŒ€6êŽïLñîdp!”Å¤Ú /O£çmf¥­—aüE€¼´DyèÝè0›çO#‰Üê´`Ç „“p«@‹û¼ÑAÐÄ{Ìbn3±†Þó14t+9ríE þêñäE•†6O¸:OÂhhï •6d<÷¨K”öÊ«œy½)*ÓÔÐ$²é:ÊÔÄb×ÜæóJì1<¢MÚ¹šj‚Ëqˆû¸Ed0†Î ´Û˜¼€žê[ÝÐÐíâI·v‹÷3ù)u Úí{ž„yZÙ«u­†cjæ�/ô`O"ó×¹ KÎÐлõôXûê*¥Ìòì{FŠú6åÅv9]Y" Ϙâ„ÚFvFeê‘4{ÊTúlTrOaúiïä(Q+?WÒÁAÚøx,zÚÓ¤þ‹wepŸ…ìøKH^r/¶Àõ4Ô¦Š ~;œw°|öîX¥¡õÆ¡ÊP 5&Ê’6Ý ºµ%Lí’\“ä­A·]¼gg‰dÌž Ý€dÿ”bù‰F_ßïRÒΡ“@m2,î÷\&n²¼oÔ»0(^0ˆ&¸Íc/JX¾a„I -®Cø,ÞÑ‹!ËÍC7má˜Z\‘e½kÌœB@·åbȬxÏzKhn9{as”‘[Ókë‡$£P…$ȨmÓÐÐÉfêf­ðÕ8ÌÇP, ãZ÷ÞåQkLt,Ëñ@… $;|7òß“.nã­‘ßÈþÙãjÐÐñöáú[`¼µQvnÐl†æp½°§Jý­éih¯M•¬‹9S¬=NËÅÁ;ƒ ½à$"õzâ-Sbîäåã_<íª¨tWyʯ„tÖz%@ã‹Â]ø¦u3÷Êü/³Ì¶3füÔ¡™Ç+þº¸.ÕÚË”æ4ËÃ-vHe ],Ñu€·¯‡¸tãFŠ)¸>º×W°Ç÷Ìu¦¹ïéOíZÐеˆ=úoÝÅ“uG7E$WЦ€ÞÝt£â¾Åg½BÖÄ4Dïff%Ã'SñHEDQu÷vu­Ì1! àÎ>óbM¨™MóõUc™;hˆ€öüûw6çô§f1e'­ê9Ó!®O¦ur¬cºùÇ’cׂµàT¢á­yð„†®ÈE’÷u#×kh‰é½²[«È hþ­ -‚3×ëTp½‘G€¤•ø^ˆ×ú:*Šà„Có�N\MïrNl=sO™r °òü¡J¾…ë±±¢dR¥NÙIKz,zc­Ý,¤¼­ó_Œ¹Y@ÆÖUQœZ@/ÎCCWL±‰&[‚ØœžæÎhñ ï¡BÈš£Dà\+ðXbÒàd§×M'²ÀIrøò?c祯¿Nv¶P̦)£Û4tƒ€ÖiÅïÅî à5–#–áäiá8ìÅ ¢JŒÿÞâ>øßà*^ɨ¡¡³u›Ô‘ÁE•©°Ðüú;öM\©{ß\öC  é‰«j‚1¿—¼™7oˆ£ôlœpœ™ÙùãhÐÐz+‰â1YF@¯%ê]€oÍsñ”(¿‡ =Òbºw^ñðåˆ4’=îp‡¯äÀ4Ρ+ ²¹Sz"ÆSÏkÃÞ­p:*"â­åuQp“Ö'Fž”1EhœU-\G$tEÕ*£ðßÚN&e[ûÐcß«Ïàu¾×ľëÐkI®ñû²ûO&_”ˆžºÂ\KÒ`ñ²˜á6?¥<p;èzóÄÒN—Æ9t¢gÌ&d=~Ë\CW8W9TÄ¢oq>+OR°Ÿ^áêYkw>¬*,ÝøMZ4«Zèƒ=Íw çiä¿S(.ÉA››ÑÖAy¤Zð]ì^Ž=‹Go[Ê©ênPêí³g5ï³n¼ã¶óA´!hèí Ö–M½§£Ö‚†®@Òäzó‹DEa](ì ý¡±†n`“"ÿо(Ïê© µ¶fɱÍK¶µ†äb #A~·Xn;›ºNHøŠDë?É+S+çt`™×íe¾S¸sñx›z»meZæ;kÿbÖ»lkä›ÅÎy¹ärbwŸ·ÿBCW×'musËâ˜dqP.¤¶()á[к2Z["˜#ËÃBYãT^žÇÖµ’\¼æþ7OßY5û™ŸHÙáåÁ_=xˆ€.ng]Øùˆ¦¹gñxky›ñJ›t¶Ðlé}õe çÔÄWÕwø`G0FU³ˆÀ š»øÔ›º±€kÛ m× \qÙèåÃ4“ÊÑéŠ×”;/¼:ƒ¤6]Th¹Xk€"VBžÖoXhª)q§rµèŒÖÇ¢Bt;äEeR¶Ðߺhu‘6‹!œk€Y<ù}”¶ŠHOÝkó˜ì3RgS'}Ó›ûMɾªvï¼Èh¡Æ„2ˆ³iJK‚­WÜÎ>4t#¶ Ô_ì@ka‡5xìuDo9ÍnBhŠC‚Àç¼€&IMì¶?—í¿bC6“Sâ$&L2¬VCë«2!ù^ónÇÊü|Þ$ø w#(žá¥ÙÉÛ†WÚžÃS–7h&×ëhÛE’}7 ½‚Fl 1^íù4]l$!I»øØBC·ª)L…9]7Þzü²xl«¨’û‚S´'ž5Óg! Åž1óÀ±8$3}È¢I߆]ƒ§„†æ ˜Œ¾&Ô%GÌ•DüZóSæk�WT#竆²×ä:)E>é\ô–§›«ŠØûÑó–[%»öp쉸¨^⓸,û£ÞÇÂlÔÄJ¾]¦ÏBC·WµYbrI¬Ä kxmyl¨ùØÕÌÝÒtqOˆ6é…©åQ{†ZgOA«#æ]& „úŸ¹kxÿ½Dôæ`_zb‡Û4d}Gý {E[gGŸGìÖe—Ê—½šc‰·˜î­Ã54u(S@¯ïî³Ùûw¥¦¨IÆ&1im7$“þŒ Ý‹§Yµµš˜oã-DOUÐÖôñJf ¿Þà�öf¨~~z“‡Í¸L,µvóqflv\ š›¼z<,ÙÇ-Ü£·„zön¸L%•%Ê‘w§ÄÎ Lo1q)% c`pÙjjh]“[ÜÓ2ðªF¿O —Æ^ íB¼ 4tou˜Ü󵂻Êc.82?OQôY±Ù;cï"b4®ªB2¸ˆÃU¶6r(øÅÕz>Ä«NW¸®s**¡‚–£ÛÛå›ÁjäêÄ4(ðýÔ•*yÎ F¨€ÍžE[ƒ÷£†U’S¼>Â}3÷`%öX)E\l¯np6Òкç$¨9½JVif4t%wLPÉ­.+9+ï´¦¤`n¼ºn~4^p_BÐgê ÅjšË‡<jäð\Œr,oç!ðÞFbZ”G\c¤ÒÖf)š4’ïJQÛ{^>§É$ÔI,”½Š½R%’MÝx"¼“é-\å»UÔ‰×OiXæ¨è3odœèú\|–µÑÑi›¸$(Ì'S}PÆYô´ ]ÜqÑ€`Ïgìò"#}™˜S»KƒF•|K £?µvñB0åË!ôE“™M»@C44¯CO4S5AãòzH#OfðìÄ^ik¥W*㣪{a»ih. …TÕoqñšï E„EÛåÕ¥W¡ÓèáEˆ‡@(ÇÑy(‘Á"8z�ßÂÅéÜóüÅsÑìÌ ¡{³Ó³·ƒÍÜëÖý|o—šÆ=Ž(n!./„åX»xnhƒÃù+ ïFë!MºW¶‘ÿÅu·À7‹è1tý©Ï˜i 1'Rô¬ÝÒ·Œ‡ØŒåQÑ¥+•q1Øí˜Qß±@7-Œ…×�=×/j';‹ÇlIfÏòÚåX¸?=â!èžÅz8õ¦³,ZdÅâ€í*SËÐнð&ë,¸¼ãB³×5?¹KÍú.=—5f€$nèIƦ9x;"‹1»nsµ4ÆXÏ;…ï¼RµÓ�óà“!Ô½¶X«c¼¶5O d¢¾X%gBÞbŒ&q´Ð^ca×HìV~â«=u—‚èY<ÆžmË×Fí Š¸—€ˆ·<ælƒâ¼³ ¡[r§k´ªj—%E__iq¥4§¸KÍÅp2fÉ5±÷ŠšU¨"!ÄK~l^t#ì.37ÖóíüÌ[…ÁI\׌×y5ë¼XüÉÎÇu##ÛŠÿze|lº9u›ŸÛ•Ùé-mRó+z\Ä‹;7hGÿs mU!CÑ%Ú¶P4ÎZÛi€¤3¼_‹¤Ö&¿)¤=ŽµÍ…†®ÃÍSœUV8;P=mZX,hnlÁ­h.†É]nçVe!?xÔºžªË{R5r”ÛU‹n:˜·½‰tåwyòn*šGs&94[»ÞÄ6|®WÆ ™ ¼ÍZp¬kn¶UˆñtêWA,šˆ¸Dôa­Ù%R«º´ÚJ´ÁO1ÏSí›v«yÂlËŸ ]‡¡Þö Õ šý! D” Ÿ‘Å»K�ÿ)ÐçÂh…EcU—°A£²¬WÞ”•4’C|„ß3TT¼`¨Tø“ø¤muK”Y³¯ššM]l¢ØÅùÊ̼bâºnÔ×Xã­AÛaHKâÛÁ웢õÄmqÈæÒaÒ&÷d£ºò {ª‚‚¹ àTav¦ºÀ!È…{–Ôê�‘ò¦ZÄU “K¢©4ô¦²iûi‚Š2}Ð…µSæojhþ"Õ /ýõ!P†>„†x2›‘â®î™;mþŒb Aûôçú„/¥ÍgAtÞÖ0¯o9ÓRö‡l.ŠKtÎÏó®ÝŒ Ÿö<5¯kfHìüRm Á£LACW ß¿“µF%ÎòahRnPu³óý¯¹ fΘ|›Å6ówŽì¤6Îà£N•jÅÇðNÐ iítÚ>fãך+iû• œï'‡Z4æßYo;n~|Š®EÅ¥ ÝíPœ×'mq…IÄÛ >ßÞÖ ×Eˆ.)9¿…º ZÅ,K½(‡b,c±-¨ ¼s°`ÎNk4}ª{‚‚†®COÐAm˜åXk¤ÎãÇ£5q‚Nö<“õÅ€ˆ«& à#MzíA gn1Ó8çn³cõ¸äÍÕà{k‹Õ7²I}Ž*w>Ñ#ù^ZµI,n _þí¨ ˜ßl-μ¹6Ï–*59s ]¬L©ùycpÜŸÞk̾)v±PWšÁÎz8ÚÞr¼sé¨MÏ«’¨/fŠÓûÁ/.Ñ<` oM5‡Ó?ºCMjùù¦ܹŒ#4H:î0HS^-wp¡#ªX4ùð‘ù|e¯>xÈ÷p]kxÚÂÏZ›¼ ®ŠW(pñ®‰Iqus³ëE­Ž=²*:9á�]~I'{Ø5¹Ä¹†iÇ ;_iš|‚FжY4°´SÄQº¹Iù&Zà¹)²V•J¾¨×ª4·'íªöQàžƒóQÄ^²³gìz-hèüšq)*ñ¤Å¦9š—óf¼¢7ÙG`~;qkÄž‚dó>É{˜iY;L‰n¸õ¼ÍyÝ$v[ºÍáü,!a©Ýji«GæW1SÆ ò¥j›v|gì=Ô4-& Ž É¨Ï_€ÒSLNX—Ϋs/:ÓŽàF“KE£Ôí²MxñÍë5&M›´þÏ—ªœ¯ÜPf=SFù6ÊNO,s¡¡;LM¼@usH5³dà­fK1RÏBL©)ô‡ Ð3o ¯Íw æU54oüMz-³x!Ç'z"£ó3å¶œÎ?«¸Ç‹à_¦J›“%è%SIa§‰Ë¤£QØáíÓ#—Ë‚6éRY·•LÕ f #|®xNþsÜšoFWÉòÈ„–45|Ø(ßFÙ`Þ 4t«ö‘B]qi7Ú7Ó|É ÖµbÓvŠ[%0âñl�³½Æã‰9¾ŒncN„ÓÌÌŽj[8\eS´Cñ§8?ËT· ’Uu iU\K&fø¢D“ÒðzHŠ+´â!tP<SšŽF¥ °£¯¬r™,ÛSŒ‰›—n"B—s®Ðl9ä`¾¡V‹ Ö`sÔ”Q¾²3*®Z;ÐеˆU'uµÎ¤Š9KéÄ RG‘yE€O)Ò_uJZ'x½ÁôÐ[dˆà(6 p¾å´Â³Ç<ÞSEDú R&qWæ©Ô­Ô\që„îkÇyLÞá×ù¦jzYKK ¸~ ÈrPðUê<sýIú˜Z¡`Nú“öòÌ-ÏëV<÷Žÿ›Kªy4Olvµjâ÷†©r{ì`hè±xJkk}˜Ûõ¥;©ß5ÇF‡|1aäôt“ëüto‹â+¢½Å¢;ØÔÝ”7ÚàæNÞAžë³í5鸣cs`ê=Á4p‰9MQYe,D*U`[¼UØ}Þ…ó¼�hßužÄó-ïõÑn†ßSÔ³MzæîPíCÜbd‡`Í% ¡·E^s]‚o»ðëÅÊ&6¤‘zŠg$î—‚ÔƸ,kÖÆ¨“]¯~œ™‚b*ë×Ù{G^g¡SCÁÛ|óqÝÞ¶®gª´í*ªM¶wð<Mƒ™#Xj"mYÛ‡_%Æ´œKÛáÍ‚RÌs½zlsîg^æ®K膢õ4÷ªø¡VùÁæÈ¶,w.šŸÞï^¿…¼·ÃGBC‡ôÎ ß·æî¿hŠRŒš‚9¦žÁãb˜þSðàQ2Úì1Ú·Mª*aTw Ây'qÈ!ºZDÕ¨>‡.Öº°†ž¼Ú i¶)fÝG°¤ž½'™�‹Ì·L±$¯?‹ý‚3•‰�ßhqû (gŽpÒ}-¬ÓƒžVùm>ì0«3ÌÎé;, =³ë¾;JÿåC-Ö4QO|jâÙɸâZXç#;Rp®¸jâÜWDr#Ǩä®qË.˜X|l »×‡ëõ±åQkÍ¹ÖÆ{x4È›ˆ·©Â‰Š«p6 Ø«Þ!»IE‚•ÈjõJôPšKãÍðõb˜`rm–7¸*„Çvù!)¨õ??¾ß½~ yoÇŽ„†‹§üOiðʬ7xás‚:‹ÕL¬-ØÍ¼qÍä,¯yhÝÌ/?4Å]í@%šÊ©™{E¯‹6°›Ÿ¢ÞòŸxnÔ@³ºëÓ+öøÏN—¨øÍÕÅÍÓk;=³Iõðì«s„‰1Lv5?ë ¥Šd4AqNÓÀjîÍ€/xÒ»áj•›ô¯xoIž]…¢¿ðE©ÑˆûI&ÑÐcy&wµcªÊÏ,°Ú' =,|cÇj²³Ú†ylýŠPÑ8'nÎ/I~Ô\é}.ä ñ¬§³‹ž ©Yô-ø®î™Š}8û-A××½0@;VØVÐoñWÉø¦E%":{ýlŠU³qS8r='>轃³q­Ì –&Ž”v„¹[‹=‚×T&ÚAæã5O@{tÁ ¾;ïòà 6msy‹g¸K;„†�²æ ±Ãµ°ê LarYÐn…d,œÛénaê›C˜…³3o]«3G‰SäešÍˆRÚÆhŠ¢´ôŸÍ>ÕZ>*ãÍ' ]D¬m�ïâ~_ÝVˆ<ùZÄ9æ»ÜiûÊãÛLÔ톬qîâéå2{MX«höÕîý™OñF]i#³ù¸Š#{<ì™[tl»ÐаÕÔ >�âÅ1O¡dÈhU„œƒ}““ù\¡ž‰§D û(f¾> ‹iÚ‘ß$°é³=´¯qƒAU-ñêÒ“€Š^«+Ÿ¯Ò¦H’žì3LlIÚûרŸ}0¬]%à ʈ(i^¨ÉþÒÃQæšÿÅŽ 'Å­¼/ð�×çÏÕH°×ø�Ž’ØË&¶ëŠü^a-™Üd ’Ö4mw›Õ~ÏÜÝ AC÷"ïméu+j²ë]oÜü"z|dòZq° zÎb(M ëîxÿŽC¥lÉô„o~Môf€å•*G¢?MÐ*m?\Ó«YBºqò&„"9Œƒ"vÓ±Í ï?ÇP„s±ú9¾‚-’$¬·¶N1½’¬½žŠÕ}ÍÔµæç±bÛrV!xQž{oi®0먻œíŠ-™ÜíÈXnv²ybÆ«Æ@C÷ë‘ ï@´Æl%3E†GD6yÜc2©èâúOSìŒêºœî"Z‚è<ÓÿÞ¼ŸôÔ!ö5âåç‚*J Á_õ´™šº/]<çç™t#Žtç 50ü3š dŸwU#ʘ÷ÚE(’¥Øá=.ÖÐzoš»U¼hò?í/“]½#j^Ò >iøf‡½³ÃÅâ‰ôxØ3·Óí¶éÐÐm¸=šå‘àÚ˧Ð$5¸œåÞ|”ìÁÚ²)z<Dnø\ó­¹L˜!ù%²¬xb}{ˆ^B”_³å&jbåYŸWÁnÖ^¬–ß"³UøÇ\o[RfU+bp'kRL¹¦óe2‰è2ù"ÌÔCR-éÂA‰]É—ÖŒ*¶ ÐÛ"öÌ-UÞþ¥×ù“`³kdª÷”Ín 5;ÙìaóÄfW;'BCwx7=&Áù5´GßÁר3ÄJÄ'ŒÉ‡éÁ"Ú5·Y¾sô¤\·«8¿qm ôÙl®=‘Î3W§›79¯­ŠžÍÓıÒϽ¤©œ«ÅÃÌ9œçíÀjœ¹ƒOÔG×9ôŠ÷aWQ‹h~nƒ‹ó9wFÜÍ(ö#'s³#h^ Ê›„À£fíÉßž-P¼ ^sÖžk5»ÍYºÊáªÁÍîš = IûÃô™ôJ(&ãïïÀq~ÔZ°g@ bzŸ¬í)nøöÖ„«7Œ°à÷æZžôt‚f6š€ìõT.8tçÖ*ÄëRZ¸´m‡1u@æî¼]y7$§]HÔ¶yÃñJìô¿qº‡èAé¢9ÓŠõ$µp›·€¸añUâC}±¯=¸8ódu’ùÂÛy¹¼c|d[k>Eh&4t[m¸³ÄÆ›YC{DÐ\Õ=aœÅ^"³Â>ç_>†“©V¢BËî&nª4t€°)€š¹£–îý–æ&AÞÅ¢~øNÔ6cäy'Ø­ÒÚ@Õ;¥h'£ŠF0`g<n ì6)Î!nk©DÛ„ VNõ¦ŸQ¦&Ó,^Ñ]I{¢‰]œ©Ó±úŠ˜^b’y#ÍÍ"¿DÿÈ:"xûWßÇ4ô0œÍí=sA$^²ÅržòtO̧DëúIpº–ŒbTš5Õ Ëb@í¹`m½¨h3£â=ÖŽWH\?ºå=/@‰§y…S›ÊC  XÈôçø$'_Ôã=ͱžà˜z-•<jŠWþ¢è˜f[i+r“Z=ø5€y·XÕÑÒFµ40ƒ[xØÓš'à =¬x‚K®i "ð9 ç&©V-‚éãköÔÒnâFK:/^cÃÉe­’6;M>ƒsŽ ˜›(覢;r%Í%¸™Ao­†T‚m²~¦å¥C@›|QSÍÞkBµ.ÔѬÆ„ìI%¾7…ÜCî°Ðú`}%¹51ò¨ .Až€¦(’«áíçíQI,ºÚ0À+ŒŒ©™ãþCCgZ”ËÌÕHrÌ÷#(:¢E>Q¼Kã5Ës®4{ƒ¦-n|©ÅQ‹TšJECJá$•M¬ð´‡ÜìÌÅ–¬(¾ù<F@”ïR°AEÇ©¬Mh-Û?¯ç×ÀDˆÈ"í˜b²·¦Vïèa’^ï‹{¢ösÝkœÕùŸ«·<dï^p™Õ­ÊÛøUz½Ç£L;q¯HÒ`ÃÒIËC†‰¨ò¶jðoÛŒ@C·á&gÅ|1fͬ´5TSº ÍÁ‰S¤&P¢Ë"#‹¹‚XÛbIB+vu‘‚‰^{¼*Î¥g! Ú"êªÐ¨BxQiE{8skTlºf‚šdL˜“ø¼©{fS¯•ÙàÁA\·ægtà €öÔ®;Åû„Pó?ï|—™¤*¨`-"T±\=³ ©i˜RtoÔ€ž5s\hèQÕbÀt–:¨BA‹b:²cŽáD)¨­¨¡‰X=Ñ\lEU1šƒE6…ºŠÛFçêq§Ôøw.wøtu~™(Å<ž×4¢¤÷ùè£'=6/9W šíÂ4ÅSPáhNšb±Jn¶Emî b$ó´Øt•ºƒîâæãZJùºgêˆÄ½(ñÞ÷¢ãn˜yáW U¹È3d•ÙQƒ›[óäq­ø@CªûW¢OQy4»ñ¹œƒ;ðWrfñ˜Ww‹ýŒH¥©Ìò /¹@˜Üˆ¥a›ýIfq¨3;ˆš–wå|ìëé'÷9ìûa2A^qfÀL.q™a[ïY±=ñ䥯sO µ†â’ÄxÑ»²4*7ïâfcõÉ[ŒæŠx§s·©=‰Õ“0rS[hh/¤{;_AC®œë)­qÈtq¯¯h…!¦ÓDA©ÜfŒáž=O_!Ð+AçØZZÔ[/4xoäÌñNPäÐbÛ$ÈZrÞÇͼ_Æ—pͧG9<ZFyÅÙbëêsŠ50�o-qÓ—Ðm=ÙܺÅû‹:‚`{OM®ÖÈgnœ¿hö+4˜4=¦÷˜[ŠÌ—Îilå[ ÖT±Ô>z0¤=|7Ø•nsæÎô¸ƒ¨*¸N ešElKch!±‹aá^w¸Ü ¯sˆ«ˆNž  ؇­íÎ1{&±õ€*–«è¯^öt¾¼pmìƒØ¦mÛOœuŒý ÉãÒ~<½b#),øœ"åA‰³�~,Í%5·™gÚ5›azQosN,I’á}- ©Î©ˆ.ig¦‹ªjú̃7ÝŒC‡†ãS#ë^ùÉ9:¾O0§T¡°‰ô.êo* Yçn'ßO4iN¨äšã¢¼›bµáMñš´×~LâÖÍUܦÙòðYÅâ¾âÙ j>Ù®s›kQÊÞh¦Á±Ã“¥Ûm7‚‘û`ÊG>…?çƒM–3aÑ[U 3ã§¡Å4Ô ï›Ü¥ª]~¿7�[`ç`hèN�M?c5{ÔœŒEkM©$Ž5s ¢yd}Eì"s‰‘‰T¶ô6ÞßáÔál¸™îàj*ãCг©zÅ™kəܭÛs§{™jÇ\²6jA¨ïɬZ;™ñTx¼8·¸ e|«ì/}r¼¾b^ÓŠ·âmë9©gñ½¬n.´kï”3é¢LÏ¥ äø†´Zf?Øí‚‚†Œí‰º—I7Ä8"Íïñt-J85xƒïÎwbîþ”ajè"ú7¸’Jæ<üKóæ}Y@„— ¢kŠÊ¡"`FdV¼Â_Ÿ0º4oÙùžéì¢H³+ÒžÚZˆhJç-ƒÞõâ÷l¥vRPІ"ÈDßãm-¦dÑõ’Ù¨ö»‘\w·a3G =¸ NÔ½Š/`¾+ ]Ó mä1© <SÊlÝuÌ‚0÷ðá¹-ap)ïbŽdŠŽ%£`hVæ¶ ¯b‹N¼ªÍ뢅]°”‹d�<ı-:Ca0ÄÍp‰ÍÕl'?1hë[A¼‚NM»ZH h-âÍKtÞe¨aµihm?éFrúá(égó° éÍ6GM„†…ä#;Ùw¸—%ìL=ÝLÕÏ·A̤\y›*<`êá@ig8Ù(žV<ª3sHM\]f \Ër}Ì‚¹¢~ÑÛ¼fÕeöÑF5 ³cy®K†w�g.3±sîÝ‚ôN b¤·ô>~f¤¶¦¾´Gš35…š2º ½ªÁ:‚Ò3‰&Ÿ;—ίµÿÈiCƒ†Þ¿¦X1ßûMI¡§› ƒ3'Êõu“é<áô7¼½Å)1woÀò} C"ò$©h¨¼Yšý¦öÄÈ«gZÈT0^º/ƒ!¹¸q#&ŸxÕŒUÀxôÖÀE©ÎãÔNÌÀ|E¾Ýøëb—é) Á ¦ç1€œ3ùtÝt8˜Œàfö‹*œµ?UÓ/9˜22[tÐгed?zøšshpl@ZB W<úÐôWKmÍÈšœx¸xâ€ô¤²1±*zµý~lƒ…f�ToÓŽ)×j¯ÍŠ×á±AÁ¨üdº-)ĵ{*³\¼SL¹ÃÝÐÏ…¢õGÉ$œx�1¹ tý'XEk…Ù22À®cb÷òv.3²˜÷#…†>üƒ—n®KÎÎtœ`v“³<2-Ò­»3p!+žt’·4 G¯¡IZëÞ¨,]òj¿6FŒßž;±}<Bk“GÅêZ•Ó(áNÊOí?i9ñµ€óé-íŸEÝ!ÃrðõšOëJi«O…wZ’÷ ÉÈFþCCoìiÌtcÆÀ¥ÛÊûôŠf7Úù‚¡8o d!&êkô€ÖüÅÉ}ÔÍ‹Up`½–¶í676 G‹µn¯þôgÁƒ‘wµ`¡Ú}T•n Ž€.A_AÛ®-ѼþÓ‹6¯Å™Ypl'˜ñN1C ÁÙCt¾ƒônâùÊÈh±mµ65Y}ø•L3Ô^Ói6xÞ‰Ef>64hècñ?ÙêÄ€Z²èž$(R—–‹róŠœÜ;³‡ñ]}ˆxÒí§xsy?\¼ÿñh;<ÓãUˆçyÜtâ d“×’VÁ”й·O„Öv%ï<gs  è„bæÛ63=3ÆÛ)Üê™;I9è/ÍêV A¹óˆ} b3—ÈÀK]zp§Íüê󌘑-‚‚†ÞÕkÚ$*÷Λ5wk.0ûPÆ‚&D øe Ü5gͰ¥É+ާ÷e¸Q°¬ëöÙ¦¡éz)è ºÿ™WV¤è¨¯2;ó àmáµ¼ùžeÀÿlS3«óVï:MO‰‘Ô<죶¤x.yÀ’ú ñ9Á3kòÉøÏʯÌ òÐ(M™UÌ1mE÷¸›Í;±-ïûø ½Îç[E7•}ÁÄ÷6=^Ð'‹x G|Nn²&¬„-|Ð6 F1~ç®Q{±W}ºZ{Äûní܆tìPT ^aÊ@©§÷ŽÉ�&e<¤¥¹Vã^$œx;“)¡È·¨jn“s²¾+FhÆËñøDƒ–Á\èf¯ÑÄúoë'+/×C(= Ý Ãšó¾ƒóÐÐ;€|²%‚z 䣨ÕO™½‡^ôH‡[ÓMh‹öÀùÔ”° ªqT{€ép'í®°{ ’’‰´ÁÞz3K` ð•lò’–¡â’µV$ñEMÈ ßãUŸóÐÙAC¯ÚT÷ Á[ñ\PwÐ_òµìÁÏM¶¤Ð†ì ZoãîS[uCB˜ÁȦ¾9@hèfè.;1 ÷•Y‚ïêí-èÔAD¬ -Vïÿ¸-H¤Ç}ºmìY ¼¿V­ÛLå”—à^Â$³JfŒ×Ûxçn³S_` ›¥Õ-—YÉ:äâÒSÆ$¸<åÞ®{ÐL M1tÒÉdºù~÷žÅVåÀò0…·ÚZ§€Ö¹ãP˜°ŒÅjÅ! ¬Ll¶Ùæ f™@C£0!@,_õišØÌÈ3[×:žÏÒì ºÿÐv2:&)j;×P�oÑ“Úå-0øNaf‰Ì˜b/-¹;�]TZwjŦùïýØ‚^±êóM˜Árš‘¶Û#k§ˆûù#Üà!Ÿ½ASzn±Y#mí]˜Nm›¨ñb÷2ï¶¹ŠYU@CWÁuýÁ1'Šƒ•tƒáÃÌÂðjA3©ÙíÌÛ£4ô!ÕÀÑnãå¶Y:õ”ýÚÛZjÐÊ PBµÆI"S±yŠÊ¤)ª·b•rAf~ž#¸×Û_\r› ý:ùÕUŽž÷á¤XÝûÓ¼n¡%(ÌZªÑÁšùòH#_T›©)žX[W1&�4t«[iR¹©ZÌKá@ä ËüDAkhA^GÙN@ë˃* €7ï^3››=‰Òš‘µKWßB.äQÅÈÓ!á:¯æ…vÑÒ–N Áç9ñq5_.8šÕšuHŽ´¸Ç"<öXFk”̤x½£6â(j(Ï·•GàR›‘⬱Z¿Ò ½wdtÆÞ>=^/ÞÅwƒkh"SO“‹Æ³¤Eæ:$MDýîõOç(5ELªÖ­Ì bº˜ è—e¢ìµX,ÞxÀ%]ð!›yÊË©Ø;JØNC —D¤<.Ý2´W´ÓƒaâÓPÆÜ7Þt„©þò0}kæ´Xš÷ŸÐ7 ‰) ÐÐû•Á¹.=a*˜E0‚ÐUš•Ìé‚pƒ[±WƒbüF)l#»œ±Ø›3nô¨Ë#cMW‹7Ë+¿L\ÓU(Ýìà"I_³Å<é©+S+‹=¥.d´§\ûÓÈ\âç•¥‰«½4Ii€Ô –0ä\qR =°Œûkã-@Cï—ô°ŸÓWŠ·k, ‰OɈ–ÂE:ȵQàì¹VÒgÞ‡ÜÄÒ#oáÜíŒ)£|­©$bü¢Ëó¼Ê_ -8YoÒäVõT¯ L^ÆúV¾ÅLåÚŸ¾Lð´wï õ‚µM˜Ç(1iTÅEîÅ´³EyÐÕ5ĤçÁ›fÒ>†µ!� ݆[õ¬kz†=IµhŒ8± ÁMoÅØe„Zunœ {®•ôy‹*ʇiöxò¼hGd¼øiC“ªaÔªIˆTMÇà‹!—ts°Á>å 8x.–æ“VßMá è![ ¹ï_-ôÍ{?’Zy z|e¶!R·[¬Ké£"ÑÉ5 / Ø´~sýßÔDhèÒ]TŸE ²“£á2œSôG‡‚du nò:D`?¯Õ†�5g:¶ÐÐkR2 i¦(0hÞà“žd¼©ÓÉ>×馂€H®)Xk+sSYãñÀžÚ”€«Zzêqó¬$P´[Üïë%Z„¶ÅÞo+¯5à‡ì£Û\z¿¼›Ûæ\Õ¿z«)Æ”ËÍÚdghhêOµ“x'xm;™—Œ†Þo+>¬DõL_w©síÐý1¼êŠT1yáoZ6Å͸ÖóF÷rð-/öõú–¹´¸Tλ— ¶­‰QÉm‘ëÅgO¶¶­h⓼Õg¶x4Ðãæ6 � Ý�Zã“UMaݸÀÆÓ]MÂÜêDXžLá±7Ú‚ÔôBû¬R•1àðg3ÜfäË´—}l­ ´ä`¾âúœ àD;4,†Ðä–:Üø•Lõ_Kë¶p†ëéX Òêä?í,þ–IÅñ ~Ålu'Q«yÃÉð^ (¥ª´†;Óƒæ.@Cï]A{®ÚK;û­·®§-bíkò¸É¡YìÀ#;,Q›AîÒFí0ŽZgœ Í ïfñ躪móõZ¬ÚÆSw'5ÐÓíÚ|À¬CÐ Ï»7à ýÛ3àI|ÅBõÌŸ „Wô2±õ)8 à!dhÍë5Cb!gL¥¾ÏQt¦¨ˆ”†D #£€†…d‹³thSyg–"`ñ¦6Ì“‰¸ÓsòŒ–69`à>^«h›ÔÐ^ðZ(lÚ,ó9àš#¨ó}2’w# ªæO<9UTT‚Ê*Dï2!=×?ù‹ždçô‘¬89› ÞÔ£´›< -d´Iøær=!ð¹sSúZ¨`f¡†¢Ê˜Å˜6 ¡Ûp6K‹‡-Yo¨_CÇb‹‡\äÓÕýMydSãõðo¯p)Ÿ«žV3.Ï”Yäb/Ìð±Œn®$¶¸¦­60«.Î(§mG’ýze6}“†fE± Í&¤öÀŠä»†ö‹p†ô´ð*hÛuFòmë;È5Ó6ôš†)=sc ¡®M7âbý`ÿ|µZäzq¡hß6 ½•lg¹9›;»”\Nˆ×Ú½×·»ñ±y.³LUÝlE@ hSF¯ÃèŸw¹HR¬ù:_ª¾Œ$2Ò“ËÖøæéª,xNÒ¦Öº™N=8†^‰q®r5?Ø6oaÏ‘I~ÞÓ¥›] zŠÔsIB%úBÙÈSÿ^ƒ¥¡ÍuÇfqB†ÚߥxEÞž©AfŠÇ,u^ó›ýÀªà²`B¡?0Ò›2hh}áD &¶† j.%kÁ 44mœ@zš°¨Ë:¹R@@KyÎáæÑïÀ#ódt|ƒ¯ˆÅL•4»Ñ°ýÛÁF\À,4ôìI<VI÷ª o¼\šëÍÆcZ3[ÈÀ,C¸VÒÔQ.Å]„W¦öÐË] o®sö°áŠ$Y¶”PM,šÜ8Ñs~ ÉË»mÛšüÆéѼ„37 y8üªÏÄJ_cEð}ß0³5½{G<¼ øóª®ßl[uõ¯ hès”×+»y\»Kƒñ¼÷hÿyˆ›Ð ¦6êÒq¬KÞê¼&õñJU›‚`œ“KÒæ“¾aX-$ï¸ÎâÛ¤âäOH>ÒÈæ=kºÁÍ&549`ê×Z”ÌS~Z¬ïuáœïñ¶>„¦Wx^:½-N×;š»Qœ~È€æ;ÄÛ / }¦äV ‘ÎÀ¶h¬¡‰§´Bò44?à¡.5üLE·‡Nè†OoÈÅ´JÐb‚:¥xËü3ä¨0k±Ò*§ÖÆÏ†€VÆ\¶z”%^çÜVÌBøš¨ß:L¬($l@¿ ¹X­q™«¹‚3ƒðYˆo®¿¹Ù}n¨ð|Ó7£7�µé”¶ÛÔ¥4 }¾¤?pWê¿ÏÜ^Ãæ ¦pÍao�f'‚lÓ[fbo9?k—´LÔ>ð: ²ÆeAòþ1æñ7GjÕÒiÓgF@T;ýÉŸ—‘ÅÐÌrâ:xµ@Ëé;†õºylãXk¢à×t àµ�íR±Y‘¬@(‰¶²FWkmÏñ“»·'® } ø]K%DáJÕæ,Š ¤xWàl+ZQ±7táøxrUà×M\Š”Q/×ubvA‘YJ®æ„°ï“\¬r.„t梖×pm=k­Ëes]Í“úN‰âŅƒ«y¾äƒ >˜Ÿ.s<‰4ÌSê¼c #5ÝísÞàjO§î_4ÐÐ箊-”t¾ð3ƒ@I{Úœ.XØû‚vQ¸·å5{›ý†Yû»\ó˜×3¦zÈKŠýlȦ� ¦ò㌔/inÊ<Z6?s$i^²z÷¼å}+fÜTÆÞ‹ÜI~Í ¢Ž§]j ;Ñ@”Ú\JÎ:‹ŸÉpÎ8 z׬m§üFY®Ú“úòÝD“3¿—ÛN »é=ž«»Db±ªŒ$앇šd„îˆôŠ£ÿäì]9~Œ¸a"åÊUÔ?…qÁ´Bsk®‹/eIkf Š;èFm:“Ø=¶ü K¶•áE*R? %íç¨fÍ!Ž &€†NÕ;L_éöZTó5«6,‘'ŽXi d^è'%yã 1Sòá]׳v”?qã^ ) ÛCÂQÑí“;¬r.ŠÔ±®xbJ[þ"n2¡ÇžŸÚIó^ޤÄÏäÎó0>' ª¢Îø3vÌÊNÃõ.6Ê2XtlÞk­AC×"Ö8~·kë%]µ“2—l Ç‚é¼Iìy]~cTN;Ê¥ O‹Ã¡¡E|Е ÇðÃð(ZÔ°÷§'¦Í{ÄC :‹çÓ‚`…vç«ó‘CPnÐÐD,Á‚‡ÆŸóF<Ì[Ð#7’Gµ‰(.3zT|±Qõ7(éO2ŒwÜ´2ÆÇ&¯±˜œ»õ}®Eo¦ï†õu€g|B¨ÄKŽ@@ÑBïÒ¦XË;Ï`Ò[DéñÇwæ%.ù#Þí‡]{¾~Ï»›¿# GqE>}I½KN‡™\=Ä2ŒÄ@CïQ!zólqk*°äÖjã©8 ±´^œN³ö(îˆ{G¸F[^úÝ.– ÏŽ¸Û’«mÓ“£‚ꇮŠ@ ¡I¼ê'^yëÝáíµB+ ^¢-SôS«d>w -<'”ô<—ÅôÃæ7)4ö©À6½”JmIäÃÜ¿Qæ}»…‘ÐÐ;eY_Ôê›ÕÌØï™¦¸Nê‘5Zoé]ØEsQÌõãSÔ|—¨2Õ“”ª…tÃN—© ǹzÎT3˜x#¯ uÝL®3ýÔŠ“{»©†æ×�’Ȝ޹†Ž}^ÌfÐØ®8 ä½è–Å)Å[Ø,.Š„�4ôNÅ deþ–/oÇÖúÍ•´Ö¸µÖâñ‚‹‚Ì”e;‹­—Ë�~ˆK#‹–ô˜µÿ™QjŒ¹Y4’þ ®®ƒ 7Uãj³äÕ‚é°¸óá -î½&o¹Îö¾æF'hÍӷЦÃ;oÌÃͱcbhè<VF’õ¾’œWÌù‘Üoâµí¾«Çwuž†ç‚þ7 >›ØÓ¥beê$×ô|Ïp†ç¯Š€.cQ¨ºnõ�ÎÆ\y“qÖ=0 eÌYF›Òôá;1¦Sôk@†{Õµy­ÒiPÆk‡÷Í!QœÚ4ô1é3I'àYO1ç_ç8 Þ€o™…bõÖà@í”!í­vÑâøÝ:ŠÙáDK6;´žHN:ºÝÂ)‹@ H†±Ü¬«)Ä+CŠ_ÐTL›Bm‹9ÄŸ"†´¨nv¦c½Uä&죌±\À ±#1ÐÐÇTˆÖ\za“@^g¤m.k,ÉKdOs!ŽÂS=±š»CøÔäbÅ\¼ïyu•ÿ¯�a·XF;7‚€ÇQ¢˜Ñì h¡½úñ›ˆì›j «|ɉ‚Ü›ÊÏ™»XÙÏoúÈÅ<XåY ˜uØúÊ•vuq!>`.(ºW•‚±ƒ÷¡iOCð;7 -„‚éó>ŒÖnMæ}½â(7€œÕ‰{;ñ47 } /M+šÊoì®Ôr—òG6c½êÄ\ˆ+“©¼26vX €†>¬<<M nîaO+¯™42ùU¿f€È™`!­ávãO>6Ç;vâ>íÀ³ $×¢¯è¢ ¬±¬¥®/Í ïJb<ÍÆ>‹u×?µ¤ã˜š¦Œ¥CB5ùõ›±^ub®§ëÞ´[· ŽB�z’vbÆ1¿¼ХǛâu.¯IíÃY1Ñx­Ц¡3kè}òBew8]®fý˜}½)3“ÐÏ»íiœů[T]zZˆÝ°ya‹ç\(‹+=54'Í«˜"µŸÝ¦hŠ£Àwó ͆�4ôѪÑ|…“»VÀÞU²w­,(þ€°%ó ;Üç£ä{ÈþB0‰¿pL´ýúÉY×Ɇ{ƒ@`%b Å—µ¦€&õÏͰÙ',\({W´U=ý=6‰ZC¼EŠƺÚ`Íãçýy»ÁyLÙhè-Plãñcì"§o>RKpN¸Q¾'4‡pP±qîÀÖ7ØxñײՓESͨzù{jþNÜŒ�&ŽE@WŽš™kB.Rù¦ S ©KÝtuEÃë)ô. ؇ö›÷cPcë¡hrmŽœßÿb€P‹�4t-b½ã¾#‚+ ©˜ 9wë=hëÞØN8Ÿ_Ë€ÍgÔ98¢¨Ly½…W&D±€ØÂ ؼ ^ñh \|®*V+éÁªK=þjoòÝ|\=)îYåXÎD]”Ñó‡ c’@C'9,PKñ[\ðy×Á‚Êé\„ŸI@FÔÿ4n#S^²5¹4U²ÙKâS‚!z?;ù/þ÷8€¹—D saæ©"z] h"^’×yô¼RuνòG¬Å7U{ ‹n•G¬ad›{<­Á¢ÍÆÁ”c€†>�ï2=P 1Ù mÍ™]ð,WÏB>�ÄÑKŠk‰$?náõ‰4´W]¼ÿmÑ›ˆ<±E¦`óbh6ÎlF.’8ýòkHý< ]FC‹-–é)™¸’n7l ê ÊAÑ v9Æ8˜9Ú:X>hèC`¿[TïÞŽF³‹Ø„dzú0 ZØDc½]/iÀ[\‰™(é†Ñ°P±'™_œòÄp`ðªæ,þw….Ë„hnÖÐëþÒÿqPOù‰×ÅïôñwçÿÄf ÞÓüü­=¯Ú«d45šâ-šWÝ\׎ z®üjê ¶±P6Zèð¹€Þ‚¶æ‚Õò†�¡ëÎŒûc2­4ëJ_¼é 6óB±§0bˆ„Kz¡â€ß0÷J<l^Oj¹LÅÆßÊC䕺0»ÞŠ_e¦:åc>„¶‘[¯ÎfpWLÆí¼†6´EŒ·1f  ¡·@µÝfFHiùˆiÚÃ\)j=Ýîñ9grL ½¾¸pê¼@4ðêÒšZר ¸ŒH6³Ì¶Ú?×XqZ K>‹ÚKþY 9S«zCed"‘ÞÌ¢£X—³„yúÞy-‘džà §X p  ¡gL“©9ˆ9‰ Æ1 h}‘O×zs͈¦òÉ _ÀK íÑ„‰ÐÝB«j’nê£4¥€pIï‹Î–9ÊyØ9œ‡'óM!†ÙŠó‹dà™cjhšÈU¸¾!D¸—ôjÏaÈáXk[.ÃT�óßB³g~/¶4ô, Õ´hå•…ëÌhÇYàØÒqÎÔÆ°Íîï¼\ÑO³UhU­Kq»¶¡û¢4â˜Mˆ’¶_a/…F@_’y,Á¹¥AC{µª÷—IÔD¼=2½˜5Óé¤ÀЄ‚Æm·XÏEäE‚kø"ž'� }|âø&[ÚÜáÞ‹Å깇Gއ¯Òƒ"¢;š—+•kf‡w6ì25ãtŸÈtޤÈ;ÂK40®Ûçš¾àÃÜ›*þ<à©y€kbz®{-9±M’[;¹q‚¢]"–Óדóg¶mKŠõ¼øª% H¦FãÆ'ÆF‚?:àaŒ�4ôñâ5~½-ó’ZÐ=ñ çw¡&bDÑ ˜ÌØÌ³U1í³J›K·Ìu…YÕUKs™"MM\¥­q,Ô‹[›âñ-gWS.kÉoíÌÆ ¬Ñ>åÛÇ»˜-¡UZSP7î}‹ì(DŠ)n»6hp SöD�zO´µ‚ÆÏG{Û¯xùËÏ$´ ¯ŒÅöËkmâ#ÏHÆ!¾YxÈ*y#äoÌÅNÀAnûö’Ð%Zïš:#ÖÐô.ïÓýgQy01rrDa››QìÁ & Q[!£#‹Ú¤¬âÎ-ú¶õ�s_ó �­›ÍWÌŸ®¡5ȳøÖù‚ýhèƒË€³±'ߊñå4ívÎ8âŃØ~yBRƒ Þ¾ÔvÁ¶P&ä_¡7/@]«Å)êXì®ßòtF²Ç÷jÏ/5Ú ³âº-Þ(/hÙÐtMΕ_ÃE8g$ívÀbÏ®s½ý2UIˆÍKé ÿ9oŸWï1KTa"1!‡W…ƒÁ @C7€6xЧ â^oWΤ\ÇpêÑÂzp`“™‹1áLmjè†FXÀ„ü»º¤ÿ×lêÉ‚Œ1Ñí-лzƒÚš¯«W¡é-(éªê=õ`ST‰ÐÚÔÐ|³ðÉÝ­°Vi)î³pxþ›—Db ]¬7oÿzݶhРÔl ψ�4ôñYã__={B!ð[ˆEAåBRÚñxhÆy@0ò«®œS+ëÞ6ε;K*6³ŠÌŽžÑÉ1µ¿äªÍòò^sä¡#íá_6[°¶)žtóŽ¥õ¾àeæ)ïdý“)³ŒÉU¯)˜>ÚtS`Œ WÔ&É…xŸÕ¦’Fô0“^š­aâ逆>>eÇé=o ‚`Ws½HsoVCëþ”×Ðâ:dxÑdZìðEcƒ8Æ*—Š1ÁüdÖTù&Ç÷Ù"¾ès<!±†^/´Èíâóf ÍõâÊ6ÚTp–¬Õ§¾ëéGÑŸ72þ\\3ˆ~dz&6»¦ŽæÊ„†n†î¡¡ÏcQ:T}1‹s1É }RÂßÒ|}<(C= Æ\,zæI±°šM«é&®Áò“‰QKqå#ú¢p#ÓÏø©=önˆSæGÀ üû¦Bàohmݦ¡yÝ ²¢úojò*™x~~ímm- Wü½/ Æ¢œ‹éQJ:C;óïx؆�4tnƒg™ŒóÉô@s±CB=›gƒÃ;Ôœ‰€VÕ¢/š´(èxTX£¨|ˆ?ºÇp‘ÑÁÅé^‡ãEË{$_+ÓÉĉ5tÑÛ!€ÃÈáèªÓ·÷hql kºÔ¤*ObÞäÌ—hÓÐú4z*¶É\&\L{Z n=røå„I`Ã÷õ>@CïƒsaS¸Ôjh- µ.äÚ‘è^¼8"ãœÐšÃBœËѺàpòõäà¸è«-Ñu‚þNOµ-5!ÙWt›ÚÔÂxRR{-vf©ÑŸXÐp4ïí¢ÙÔÐ^•/x[Ór†ô¶åçèòŒw-ÁE°àdâm V÷M©Àd½œ¨íªÉ’a›¤) ;ÐÐåK´mSÍîj.æZT—#^W˜”>W´€ÖÍ{§fm³q}Éy›³IeÙf¼jVÐcF9™´£µˆ(oO¬P¾DàæºfÛ° @ ¾�D¦Þâü)ŠMWŽÉÉ¢ Îu;ÚQØï Žš?/œ™ÅsÞȈoµ&6ÁÉ»iháóüøÃÃ6 ¡ÛpÛc–ÙཅM…!$±ÎžpÜ#È×аhŬu¶Öaž¸¬Ê‘ëTŠm l-U:ÖÓÞŠ|$•ýÆÕ ó!où$…ÆÚ¬Û¸,cºê*n‰SËE³èSâ-"瘬¼+ 1kàÆ7M ´?ÑÞ€+ hèÙË!ކРN|¤OP’âfv¼˜Zk:Ö€èîHXé{9ú9“ß=17#Û 2ÖÌÒåí“câÕ0~2ø{&kÐ{A(3ΙTQ^eÆUª2}é ûÀÿs6§e¾1Åë"(‘ñúø™[«úš~±N‚Ô€g’èw4ôys÷ÔsMÍzßr~÷¨ù\´[L›&\ÝÿćU&°S·}xš”Å`Xq=f¸“Eƒy H“8–¢Q…©3" ëGß=Oq™ü©Ë8£·øµŸæ1.Ü5ªg¬jSCs6&bMm®xÃÆÍÎDÞ¤ 3îøì!� }úÚ ìì©@CÇì|.¤2lkh ^‘¬cж òÎ4Q¢úÙ¢+k›¦Và%íùãÉ”5}¦è™öάaúm'Êi½×,Q.¬õsOl ÂÑ;‚KI/^½·@f M rð Öô\œkè4ñL ô<s£)hS`| ¡÷Ç|äŠú2×äPñ¢–#vé÷ƶb­qÂë…E±ÕI‘Eûãd˜ßGCs¹ k8E©Í%Kð°Ó]Ûì_ XQïnQQœ7̽¬/ðLM/ÆóÍ(”â5440#½î¦±Ño(yƒ8PÍcóî†�4ônP_ˆ‹ýKb3ó+xhèõdÂÓ‹ÄæÅÛæLý—Ìô„š÷r]$ɸ’ø}óFs®†E\ßÒELiø” '¡ÉÀ1ìxˆŠÊ¸¼ ÇZì>NPñ1WñÖš |­›©Oñ·Ä‹¼—épò콂”(h ¯`s; ¡·ÃvsËË q¦õ‡)¨%lî÷Æ è𽋠AÓ¢‡åO2ÚÔpÛ¬MÁã²`‡zÐy1/Z¸˜0u³ ±:{êBdÓ’¸Y㱆Ž®¾Æ+Ê>N>4=¹ANª¡Ûˆm.ä5—Ñ&¼¢Pi:¿¤Ùa;k.Ê÷‘›Ýk§ú¬é3u!ñ>×g7¥¡µòã\ìÝ9Çé{%ëÎfÖк£o±O’ÁÔЦ˜&·¹ )~˜À»ìyßIØÜó‚JTcP0Þ¥v•«I¡ù<.òä  ²-`bS hq„hh.Ó«˜ü‡âe³‚6r f·C�z;l7´Ìe1ÿlѼäå²Rè6Sˆìp±¾4Z˜êðé®4ô„Zèf}5²EÖ´Œö®‚V÷xåS—âíŠKš’,éò¾†°¹¼8MæŒ F°k zE%‹z«ÄóZ h»|ϑѫAÞ%éÏH˜ÇbRÓFå ³‡ � }ì]‹jj^ïî¿AÅiKè ­Eºü;n²æDÎÂ\#ͦlúÜFô݃½ÙØz fæ ´µà¯ÄšWu¬3LÇöÉ{ôÝ<J;Œ4·*/E(D¹Ú[‚oIñqJl¸n|–ð44ïDB@óÍEj‘HÕë?ü¦¬þä?û»:¬í�4ôþ˜÷®¨Ù“ï[AèšÇùtó¹Çν~o?_ó©fÞµ»&¿Ô!Æiº!²-l6¸Á§˜­ßf±œøºž?”Ñ>yÓåÒ³ ^>x†8ƒy¿ötA›žfâäã‰Zª=Õõ•¡®y±kĺ³åBìw€&m½Cõ+^˜œêÚ…’X¢È~£Ö…£€†> ùÆuÍ=I¤|}Û$kÝ <®otwÇiZ6‰)Ø�. ßvCªRxCVÌápq©š™«ÇT Á¸ªÉS¬ˆÎpã± Bn+¹­gi>[FkY]œÂIAJ¦‹¼]Cã·¤Á>—ïk¾m¹ÿ|Œùú:1Þ°œ76ýƒعâDzà”ù€†ž?GÏ<4I“Ë>-2g …!(~fòódznr´�Dè¶ÇJ4Iѧ‹m©¸mª„ ©$¸K«?™ŸÀóöˆV'Å€6|ìEzÔª™–,ðZå;]T¦Øbºni®Ø|!ïÚ5%¹'Úf3aòv&Z›7½xã„ÈÈv7éaóîYN“¬ =I"Ênx‿îñ2×…züº¶æ²²OÓŒ0U©ˆšÿÉCsõ°±Qnm¿Í[Þ§©2zÔSäµç=¼ARvx�Á,�Oa$›n’³Ð†;ÜbºHŠþ“/ê½+ˆ—Ë\s£™sfÖFÄÒBƒnF³M!‚y·âûWw+…ÖÞ½‹ÞÞzº™â<âÚh†§E�zÚÔ<Òµœp…ÇZ|Ð�ÍYÂŽ)ƒµæËT¥â’@ü)XÐÞ†‡œT{Ã× šp57˜!hhÞöÌ£è"¤¼ǧP[·ØLZц3(í6F§#¾œ+þÚWêšØ…zöèZ¾É‡»ÁˆËõ-”ÉÆß¼¢£¿Fï1X‘1šáš@šÇÄ ¡@ÛcJr+jñÇ#öáobŠi¡Y<íZÃ$DNÁ‚£‰Ê§óV´ÛÑw3ø¼éêçmf„ èýº‰z:ð£-\2ïVlp» Ÿ¢ÏÅÃòáë ‰ÀX ­4g'MA¦” &44ש“äT7êMë(¨)ØÎÉî¹8’üvÁÞ¸ehèI ÙËMF欤í\LC áÅe±ÐOš¬ m6¶þZ1½í7Ûia# Mµ—ì(¢˜Mõ ®½KÑ¡)Ññ&‘Ý u~z´¼AŒlF –Ñ¢=ê ÍP7M¡z69íDZGhh}Ÿ†ßìn\@ã[}Í5‰I ¡“@í:,î圆4{Š“Œ¢h’Ú;áØ5þôb€6Å–¬î‚·¦¡…Œ¥õEË\Qõ„/anªg!#<;Áë«ýà^oßí)gpÒÛ#ÀeÕ¡ùA÷®ÞP”h|xÁÓÆ¥(Ûœ§L'):¡êݧ!b¤=Ëᢹ”¸yÐ\š0w4ÐÐGgÀZ?îåw Kœ÷=Ýà1òYGw&S'™í*è7dv8{ª±des žCÂ×ú#PÒÂÞ :CÞ’Åe$8CÄfÙó(kàɼcX-š-µ€µ'Ž$b"Ò×|§ð½`è:¯ p‹ñœKÅ Ì»ž×u¬ÃhSÓZüEz¾Et°  ¡'­A"œøE¶àhL<…&ò¶í=Ÿ#!ø(¢âwztcÚÅTZý ˜÷›í´ Z/5rþ¤g ³’ÍòãyáŠëc¡c<‘¡‡ñ…q±k„0ÒÛ­`®(ÂVÙQ…Í5®Iª\>jAë΀±…*i³Úhâ܇ïhÚ‚·5¼¤†E˜úP‰øž×ÀÍ@aây€†ž4wZÆ NáÔ »o‘e< m’ûœ™:)@IˆÂ ßdºc&§ÐÐZR7DÊeA|7Á¦†¦Eõìõi®˜c +´µnê=PÄs! ·Ãv ËÏx—×6'"=ž³ךf‹é3hhA šKu ZòšÉfË3ezܶ¨ؼY ¡§N½à#ï1ƒæVSÀ ]2V?mЬ§G5{Ayýf;þÕ*pSˆ2ÆŒ¼g‹KŽŒ5³‹Z\Îñ bº1z׬j}¼° œ×½¿ Ì,¾[3ã1æpLi(jLW”f-ÎBZ[óý¨¥§9^ì¦=Ò;×ãR±¯ q•ÐÇâ.g©ž˜¤=ñÁZ—D�úLi5ûºÙ€…†¦ Å`­ê§Ï‰Ž' ×¦bŠ0"\ …–\[ðoàó mJ�j¸šôŠÖÓ¦:áýRh߸Oób¨úT7¨¢f(̉ÐcñÜÍ/<³È9ÕÐ�Í6žt曑ӲÉí‚^4±ï�‹¹s½s½¿âW´J&Nð–Sv@�KÜ ÐÐgJºÉ2:�O@s²öŽ+. ¡EhfD"¡câŽØV1§Ðк·ËgeÄ(—ÅqÓ%‹S⛌kk-LĄè°½«8®¡M=çm7ª:þD\Fг€Ã5´‚)¬9'ˆ+[¾ã((S@›ïŠô­Ò\:5ÐÐçK©­‰‰gÃjùè ž©@Œz-'†E뤌ì«BcZÍKÈD¯*Ì`pRŒ˜‹fýÜû¸¨oFØ`º´Ù¦h9¨E¡¸»wýsÝzTâ‰Àß[‰s ¯¨«+Þ¹ÁýÍü ÍÆ¼®S¼#ç$íÌVTðçD@CŸ(Yw®fäǤšU5ÈÂIÆ{†˜b6$®·ÌË“gMwVIàs§åžé^ö5Œ=«ÔÎ5;bœŽxS-¶Ö·ãw–8=‡)@QÆñQ®¡½ËûÓihOËò@„ÒŸ8‰õå½)¦“=E 6B�z#`·2› ÚT!3´ù¼c\rHˆ™Äɇ)²ûs9¿†&p<”úA(ZÐí–{E™âE¢ÔÍŠvÑ«-̰³¶ˆëfm5¦;‹\U‹úç[€3§»,“YSãÒn5ïÑ2¡u8„˜wW´‰LÆgŒ@Cw¸ëtAÇæw¤D{öô41µGOü`× /f^3˜ÊÉk$ÁˆóT9Ó hžbÝ­w+�¡‰ùŸä½H)7>òf¹òkƒëy7Tñ6W×50v,|…ÎæƒÅ*üO1ì,ÑœÑМ|ttbË{÷FÔóìôCðÇ¢;#� ½3à]ËÅZˈ@Os 홨#ÛÂÎÄ«¿5‰÷ &Ñs'Æ>­†æ1šzkÁ§{§÷ ÇPT….rJn[7m›•¬ðu•\ÃD  VM b?Š HÁØÔœÚü~‚>ÎЊ¹AC¯Sð+Öù-/ }²ì›dÁIĤTâ_­’&ÇPQCϘc Óî(¹s mÉ(„ÐU*„¯ùçª*Ìœ~æ%µ·Fm±`Žò v6E@3¶GÑmš_è’…M¯=¸ânbn.±#È¿BàÔ¡¥¹¸Ñ\ܲifa,@CŸ¬ <&ò~— >[%ªõ®ãïúcE-ű2¿,o~©EÓwO‰œB@›mØ»îjCë[‡? tpY¥°éª6Î3¾ÝiÖá[©-q˜Õ‰@ µhä£ÙCì—uçréÌg§çµÓ×½éíÐàCµPÿ<4dð%El·Úôa|ÐÐm¸<Kð¦÷u gghnçÈÍ´:kh.•̸¼#êÔÐf®ÒТÒD‘ð$Š\pákª[SO?@¨ê ´D±$š‹¿ÊŸæU0qZx ákn4±/´¶âR‰÷ã(qBä¬ÿ,†¬IØÓ¦ŒÆvÛ"Űi"� }úÂ(^÷¢P‹ì¢ìÞ/®¢øê&5{­…³êúÜcvâ÷!DLkí[°beu®½ròJ”ƒ#Dƒ)ù‹úºÈîEÿùîØHCç}˜ªHàÌpLvZ¹(¨^“»<¢K_y„†¦?9?è¹·æI3 š»„cÇ凑@Cw8Åt-“w6›t£)ûØ =ªÕ›ðÜcR2(ˆ>&ô<ÏL œ¢“d¼Øtí­š@Ø äéC×+ü?™åãôZ¨|O5céD¾ PUã;}ÃôMлÀ¸"霠„Âo‰ú';‡0Þ>œ¢…€æqÅi¿ëË óÆMs ã@@ � }…’Ðjò2ZtO!iž ´ˆw±àëÑ4‡t²bAëx9Èf;÷lŠæ§Û$Môä©ΦPæºAk>%ˆÝëÄZÂO¸‹󨓃õNNİ ÐÙÔ5I^C †9\CÓ6'’ ›œ÷îEä_Ô<Œ-3aåß KÐÐ×I:©ónQS 9EÇ$BXìŒ÷ª(CM&5ã*6­Uú@_ô³1,ªIŽÆ¦š«d}3´Íž†-™†i\ÄÙÓõcsÓ™z×Åp0`Bt6‹RÒ¬dÍ~ž¼6Åt¾übÈ÷ûºO½ÝJí¦¨¡×;4„“+Èì!ÁÄ ¦NŠ�4ôIçºí‘õ)4t•ó&{”_pym ­¯.xa˜*Þ!øÓÙäý•gJ¼nþÉ;qИu€žÿ|dE3A䛺X=8ÎovwC@g“oïžà~ ­7r¾‚“äpá­ùÕ@}«¿òEÔc‡©D�úšIJÂæë‚y÷$b-ebI䉨çX)Ž’S¤ó¦ª°¸0Ú44!¦›7,òÓh.—I%ëMmžoy/ÆJzx?®Ú5ÐÐSí‘Ngx6µ ä÷'¬µªWiiá¯ðí¦·ži¼3´Ìt“?bá›?oGÄ–Éäcv@�z\B“8¿”÷*§¼*5Ðjƒ n˜âõ-KçM±Únè%‘®¡×uu!y©1Ï–¨wjÍ_ ”t DŠÈ ïÇ I7•GÑs ˜ʦNkp¯æj¾/h£™;n 'dÎ^àæ­_œ¨Í»ç, xuU ¡¯šÙ§qy§œåƒCSqnY ºLQ²¾¨ô. 8ùjÉeаæHçÔЦү—ä õøämŽä•xBB(lªI*�¯Jµñ:PÂÖ"FQÄ[²¹1q¨ð¼-ÀKWˆB”¼þ5wiѬ7rm)öhè€g¼Ý§cäPtWt¿ÿ°�j€†®EìLãF‹¯àùîÆÅšLãŸzXÅ“‚yuÂt8Ã4{äá¥cö¤ ·u^AyÙ4oð TÒ®!¸Ð$®Å´N½'Vt…‹*jKVU!™ÞVYhs³öA ”fšTfîP½—õ°Cj)ÃáÂÕäTf8E¶ß'×Xåf€†¾rê=/r–æ÷}`Z ‘„g~#[k;Τqçðˆx`€´Ä!=,„;æ‰K1½'MÝ_É þd(þiÅ,Ä´¨~t'Ly7êtöã<V ¬U˜Ú¯à=3//y]é-Ìë\<Ïä@L×_à®ûßé]…) Ð�4t?†S[0I¼ÈY¢ÇïÜò5 kˆ½öPtUO,N©M0ïsµs·Ïu¤)"MúÛ0­»ê­t×%è•x~öYêy}=óÑJ i:‘O5¼Ø:ÝÆôMð¨Ìd!“–ùîàÊ[·y8ñÀù-àódîlNn±M ã@@ � }ñ’ðT‹ÇYz¼=û@« O‹Etš-¢mo¸‚UÝØ4ùË•ª¸Ì…´zæ*™´3½Èz¢xY¨u¶8« G Ît÷beö8€¹3#ë]º ¼’†6/k«šŽ™ÐÌF›¹àÛõ€†¾^Nˆ‰{§#UÄw p“•Šs™óªH?âÞêDZÓƒ®¿o Ì…P&5L’Zkkq©#@¦w‹GÑñw¼ªMƒ‹øk²m]Ì:)^Áˆ2×¼Þø[fÎÀBEòÑ×Õ|›CCŸ´¼oÍmhè[Ëø³x5kÏïí`¬¡¸šI ¯Úèfè^¼­ Y¹¿†6´ÖÍü­¡µ8Že4· .*<@ŠR¸¡©C=×nŸ[hhq­¸~„ªH«R½¹V�ça!ò?fžd£iÛ¤·PTˆñ( ¡Bþàu5¯Ì›—\G è|ÚBCÏÓºt6éÖ…àÕ™—Ùã¹&à-Ÿ„¯ÐÐÁgÜByë»-E=è²ç7kÖ–t[)Ö®‚ñWB ¨y‰ŠzÖü<¿†®ç½·(jw\”^i/\#hèkä±: MǤf]l�Õ~ÔL”×Èÿî——yÍPãŽ1öšR/ð .?’°hƒü¡Œ¹ü¥ç듌†S(Ë: ó¯þ“‘òÕÅ”¶6ß6+ï-FN‚@‘BEer]üIóOq¹Ý`Ñ—¯|éâ~Œ§ïhè[, ¦IÁˆ¯[™_¦Þ¸€@3Ü´%OP¶E7•†6/øÅ†è¯=ZgÁÌ Çy ½æˆ ‘-ä¬E,£ô«·JƒdÉp[5bÖ$èŠ ÓdE{Öû@F“ØlDDñz{­¸ Š"{’\Ã[C�úÖ2~o ¡Íó¼‘1Ö€@3ÜÇ;*º û–'m©+‹£ 3k]¨³`æ…kh½%‡ÂssOàêèªÄ ×ÂTO e xìn‚µÝ(JCoÇéãgnŠß—l4qy¹[ÔÍ  ;yÃtóÒ˜Ú€†nÃíô³NÔ¹\¼àºgøOph!EW SÕéNýdˆ†ö² ÚÐÔݵ’65´÷B.—‹×0ñÅ@R #ÉY^=ä xªŠ‚3IÚh–䲞N¯ˆkK±AŠ{!éÿ$ðM&IÜÐ@CßhU´Ö( -ÚÏðXæì[\’šbšt¿'1c鹪aï7ãŠÚ7£¡ƒïr kêiï:'µâºÂ3Û£žy"pÀ6|'Nb°MùyÚ»¿.þÆ-]¬N‚I³ÞÕH‘šWÄD A�:ƒÒeÇôè€=A ŽsªNz¶‹7#àöDL(cO=s Û¬¡µŒæWhü[öZ1“ŸÜáuý¯§2i�¿N ›ÃÑ—^)^oè×-dmëOHö/<¬\[Æà¡y\l.M€ú×<.µ ñíXý¸!„­€†ÞaØ€@‘@gøÖ£ƒÂN›Ð]„Ë>SÆåuaæ¤G'ÈLǤ’Å­³µJ‚ÛË~QFÝ×\´Ø­5Ôŵ]œ‹Ó"@•Puä b}!Ê¥¶ù|ý.ß\Ób•w,PÏ‚Ðò61ô � ݃æîŠ€§`f`O¡üvÃÅ“ª¢­ m·vVŽ[¬&“áh#b q™¡Aãø»"®¡½;Acõ+W!e̬Õr™NÂŇø7XÔC0KÂ,]Ï=­¡ÍLû×¼Á#؇À²Ý¢æE¶Òv€Ã²F�Uqbb%´[`\<õ©‡uÓ]û«î£¦h¦~¸Ý‘)”…ÀrYKm®Å %Oéêt˜â>8 ,›ž4$S.ƒ€( Qlµo^}Ÿß;ü' ÿhn‹üj0IF šª…} oa󀆾…,_6FSAî­–‰ûøàI½àwd¹’æmf# ­5º'©I7›ÌN™ÔÐ4Œ;Sü&ŸYZhÌûö)V1õœVrtfœ j5«°Wü’RL4í$ݘp˜à.¸¸êæÎcÏN˜Ê+¹ }¥lÞV,ž„ÚÞ5%º…Wýšüp H}ÌÌ4×ÐÚˆÖ(æq27bþ6HFC„·ó-2 ›s"àå.Ï„Ûæµ_&4a0y¹(J½êVìŒWÇŽñ4ôJbú"\ç"æg/‰ÇFÕ'G�zòÁ=hèµy5¢è=BdÎi® âc3óÂCxÂtð­ASé’v ~Ó#£0x[õ@€ž>)Iå5S°G#T„\äµaUÔÐz»¯Û<9p–&.qÞL|e¦’SM¾*„Kσ�4ô<¹€'Õ˜B­ÚJß~Òg©e¶ÉþúEOF¯Ý½Ø6j5t¦å놧5tFxVKpñã¦øÖ9¨RBµzºˆ|KM`N ¤fŠ·Fœ;A µ;ȬCójyy#š®FLð9ÈÅÅÌÐGJ5‹÷'E�zÒÄÀ­ É^˜1Õ6F°v›‘þY¢ì3Ÿ/zžÔ*�OC›º™¿4¶à;RB¯ª0µ±ØhyÏæf3)‹õôᥛ áªcÍ”¹ *–sµ;ÈÔÐä69 ºð½"d/ç"ì|f>˜ºêŽ@\Í@C7C‡‰³ PliÛ9:‰†ºÔ—ËBð?‹�[‘XѯÒåÓù0­uLWMË«ýRUO¢¡Å:w>qÛ•+,ëÊÔ?½ TÜ)âB‹oÀ!àkÌý2¤ò‡8<ʈÖÐt}+–hљϻF;C�úb E8»"à©·]`‹‰†Êu¤§¡iL,∴T5_ CtA¡Là‰+fCMJ3Æ¢ô¯Í5GG_µèõW/æëUò%Ä5Üp m:¦¯Ö蕼ÛýÀnj!¯¡5¡AÀí¦¹»¶qhèkçÑmˆ€n–.–0íµÞÈù®ªã6#ŽvÌFîý>†V·nZC“ænJ¢öªˆkàmq®7 MÆ5/‡‰úÊʼ·Ø¬ó¢VÿYe¡6YŽYkpÎñ&¹­r9ØeAjô…Ç%Q{Îl^É+hè+e±ìŠÀTš÷i-”élF¿•éqŸÎ(B²€æih~°äÉÓ>Iðž²ØBC¯áº'/=s×*â•/þäoU ™Õ²†ÞÎrUÔ[^QÕÿkhýn ×€¹u²nÍ>4ô­eñŽA`fÍû 5žµCp­™—q:)C“ÚkœžŒæÔæ^·ÕQy×2®Ö7ŒïD€’›ßñŠb›ˆ½Öé­˜~SõÓ¬¡M®ÐiŠùmlâ`íb@C_,¡g'Fi©!î ù(t³–Ôë+ùoÒ{L¬BbuËÏüµ­û¨VdŠ¿Õ£6b ]<+&WÛ/NÁ€±Tm„`i½G¶Öзó9F ¡3{ÐLͺõ(û؉c·ÕíXƒ†¾\#Ò‘Ì£¡µ'BCS·à}¢J:d4tÐjèµezþ˜ ‰H‹±hýí‰uS²,2ØÚªà¹è¸bÛââsÛÒûÏâš+fULÍ]ßà ûã€çD�zμÀ«©8‘€·;óÆ£[HQ›ÆY1Õm€•xKL×ï’f-úÉÃÌ·ëèŠAFO½QsÎõk©@CWI½œ¿u"%mN;¬¨¡¹°¢9º©ëi“{Ç ¡/D„°7“hh®ðt§1•ÐÐ4f5UÔ¦ @{B·´šÚjg§ô0 4SD˜r,k–3_®­:ã×WÞæj‹½_÷·­»ÿ¬QZHíNfج8'ÐÐsæ^MÀ Z¨^Þi¸&7M EKFøó8¶-PZCë&G‹Šè‚“'-Ù{Ô†èßÂÉX‘Ô8f5#\C6ͤ›e?¶<:u3JûOÌh耼MªIrl‚ö +‚�4ô!°cÑ#`Š¿ã1;(—Þ)ËY4´4 šÚjÚð4´×³Ñ†wÞÇ.ç¥{ ½Þ¦û­juó’˜bç¦ò[OÂrÐpy$«`Çà<ÐÐy¬0<í[Dž¸Çbgž­ ­ÇèÖþÐ;žþüª×HÚÂ4•„-\h%m¢*Ö¥Y QÔjèüyØØz€µC0+J¼¨Uà(Wió6ö(¶¶³‘†ö>Û:Ø¿ÐÐ×Ë)"ÚXn»öÃáSð=9ÞYIFs­ÌOq¸hZrU“æj˜ŽÊ<aÁ%5 Vï¿!'.<¨y Í7¹ ”Šb¨‚k‡‚Á[ àey ͯ /\oy ¼|%J¼_Ü¢øa“€†F1� ŠZ°ÂVÓP~Lüçµ…ÜÔç©ât–›åškÜ¢¿Úˆñ¦5Sôëƒ"ñ_•3uƒv€ì´é [R+·-WD&A È/4ôÀAC¦¶@�z Taó²ð¹¿NâG¼ž€æç1¦’'¬ÁéoR/re,¼ò{¸‚7ÿ“˱OÚŠC&ýgm]Æ:8úÚ¿6jCÃø¼üê×µ ìYWlÞµ¯Zl&ÙÆ œ¢Ÿú3 —A�ú2©D ›#à0mº0ï‘BëÖÁæáèµ\ÅŠ¦Bf«4t¬_…Í@¸çíèt˜·¸ôE7kè@^oZ-0¾P ("#ï’Îó²¼ íéf iä±Î»¼’™Â°Ë#� }ù#Àa쬡‹\o*fÝo¨Ëzoí¬¡MmžFsÌ›¤…Ê4t¦¹ŠBÑ—"f%åÕ°B„¡ãˆ i -ʲx™wT½+›ÐÓÓü„>³ð…¯=2ácÌ( ¡G! ;×G ¦ïáñ ik6oáo ¤°Í-Ðã/Ùd4¨v8¾á¤øÍHê‹æ÷èµKžmý²_Cã4zø¦8Ö`•€ÙÏì LtÐЄR‘3xb èA�º=̽!‚¦-PÈœ ó&MÇQ¼Å*\¿E¯øæqe€Öå¦8+Š/Ì@H ›²Øt ã¹™Á¤†. eÈÕ›Û! ®Kƒ…Ì‹ºXðպ͗ -_¬ÀÚUf¯#ìáEݼßgˆ>œhèÓ¥ ƒÀ„Úk¨Ôl¼ƒ^O  5ß™„ºÕb7ÇžæÐfƒ&š÷6#‰ŠÖ2ÌˉcJ«æЗdñ<h让QÍú’W)È0è ¡@kžÓ· %>¦­bí÷ÂÉ Mú{£kSgðµ@Cs¨Í)csÁµ~Ñr,£‹©,ÚÇ€ý¨ÊšY�cIô¶ÃFØyMn&-x›N_·½ ¡o!ˈ±¥v‹³| ¦ªùJðërñ·ô´"ïñ~¾§¡ã3<=‘¤C,^{|¥¡…3ö¤ÇOÌÝÚ¬ACÌBÀ·ñeIÌ™=„) °"� J�evÐÐû{g*¢—˜’7è(Ár+ÇjhµN©œŽª4´yy@Hßž,FÀlÚ£ º˜<¤­ÖLjhóÒÿ­²»ÐШ PF >ü(ÏOŒ=;>^Õþx’w}Ý“¤ú].·ˆZÇ%Ü‹u?YW~cÈ( ½vz´ö¶,8+Ÿ5s·B°!¨›ÕÐ1Œ‚£p±ÚPZ˜Òƒ�4tz˜{Œí…&d=‡^ú ÊÔ¾: šÈ¶˜[«#イ_(þ¯jIºÑÝ ±›®SŠ9Ú7±Nd&kA6ò†®+]œ^í~“ÁÖ@TkYôŒÈÀçÙ€†ž-#ðg:öB/¶*ö× F4ò±Zkôæ yšüqðtöüšÚÿ•„Nsœk¢§’‹ { oÜ”†ŽqÓï ºÃ>çÚ_g÷úì„ÿÛ"0°ÏhöçÜÔÐÜxQdÓÉ(=1µHчmIôW ¦«ÄÿáZN¨í-´©Æ$ìždÖŘ(Và(ê4?—½Lá%5´y S¼°Ù¹H°Ü倆¾|Š`£aÑ ýƒ®°ú&´©Ðæ˜@CSW.J„bDüðÕüo%®kéÿ¡÷_7Ô¡yf“¾ÃÄZyƒ—‘2ùop¤¨[ó“QÔq³úée÷=Ëq2¡çÁM_؆7¸+ úرèiÕ“ AlªLÑNùIªFòšŸf‘¼õíO‹ókOFS%#Ýb“ g†5khff-Œ9»ihS šÅyÕHûš_!sº¨ãt…‡ÏŽ�4ôÙ3ÿ7D >ÚpavîbjYSS’¶æÇ6úES‚{G¼7R#n„B+{'ÓÛ¥ çÚé2jf;x/`Ù»8Ô»/x¥ˆÃ­ihº°/~<5ê"¿˜ �ÐÐ( `  Ïƒ9_ô4h|çt¿†^ƒÕm¬¶V<ÿù5@,Óã¿íÔj†>¤TjSƒñè“Qa°ÿ Ü+ïKžCÓñ³Þò 4Ø™\LI ¡“@aØ­ ´Æí[�®Ö²ÉoÝq%g*B:òYGÒz+]ó¢"Sæq°ÜÖ cŽBÀÛ&WÔHш)¦‚¢y]M¹‚â<4Òì�&f ¡›¡ÃÄk"`j¾5ÔÚ8 bƒYú ÿG‹jYÌߢp¸bLm]”wMÂqŽzœ‘’"Ì6¬Ò0¥[ŒŸ¢ü-zîÕO ›OZrzƒg^!N>iÔÅÀ€S � }Š4ÁÉN=ej!ˆã/áqÅOòš#Hº™+i¯7Óë=h•ìikisd~z[é@C·á†YÁõvÕº íQ.½N &^A¥€†ž! ða¦ÕÐB‹vüœy›×ÐtØ\<ߪR�AFÛä¯Páú¤jl õkhº>ë¬Í€¾b „µN°×Šût~|›y7§yÞç Þ^hèkçÑU#à‰³Q ²Ú!50£ZF*³AC{² !œ~ù\ê4ø“1ÍÙˆÛ¨Ð`g;âëÃ|ÝŽ†^/5;ÿg»„Â2ˆ€†F…�G˜]0ßü¶F“<!ÿø]ð«pÜ”>å¥@ÚŽ=†Èß!FâLõŸCÅm뺂ý!Är0I#ñ°‹C¯špÃ5ç:„‘Ý€†Þ j,t&ˆÊgãt¡¡½SœXe’þ^S"þä/?%%M±20YC44N×δç»}-Öv¿†ŽË2i¿;ÐM ܼ›ø£@ÀB�ul&<ÑÚ;ÅáÎëÿ±§¡õWQ4TO|V—4dgH3îÔÐ[à–DÃŽB ˜ôŒÆÇ\XC•5¬ z€†îAs¯ŒÀ©7 SCÓ±±PÀ±Ê¤ãg~½›†&l;õn0}}+£ZtŽô¬Z;E95¶0`mÒHV#4ô$©„@ ƒ�4t%Œ¹9&Ô@Zàò¬xTfç^ E.Fòw·¸'!))Š•W´S°…†^áÝ·" p æ…kp5+\-^ªyÛœì-–×C�úz9ED˜GCk ˜9%Ín®’×UÌYy0�÷zI‰œ¶®ŸA¸èéä¸ýÇ€fôVJ^M04tsR0l�4ô¨Âæ8üÑaE…ç©aqXµÚ ¤žÔÅHÖkÅqf|á|¤™åòÖ0òt䝯3û út�‡¯�4ôµó‹èÚ8üÑñf£ :k0ž4´wHVlØíàŽ›IQT™Œ¥í@ ]å_:S–!~=8 hè£Çºç@à¨sD¯õÆ}tõVœk IwÆ þÂzÅDÃE¯ Ð Mα]§ôÒ¼æ˜ô: †Ý€†Þ j,*¨=¾òNÍãsè* ½ŠÎжÊ/zV+^xÌxO°˜»3æÞô6là4ôΉÃr@ ˆ�4t" �Ç  ¯bAü' ÍSU É{9.¬¡ù¡ ùÉ4ô1{àB«êë´ä hè •B¹ÐÐI$¸ú¤ÊÓÐÁqr,»WYLÓµ|œüvŽQçÐúcòÀ¯Wí7QþS& 4ôM ‚=ÐЧHœ¼]H׿¡ù˜°¨¡ù¬>iδísCzì¹–æÁÕËácé“"°†»N /Ü»!� ½ÔXt!¨áµq¶ÝËAZ<1ÿœ­Coª¡ùÕ…þ >8¼ïJ3&ßÞ†õ¢·?Ÿ…ûŽn£‚å@CO‘8b¼¾H¯{·däÏ¡¡¡½Ë.¦éyíͬ¨p ”nÕe44êLˆ�4ô„IK@àúezϼÑ"s#/?¾­=‡žê(z‹sèør…_«@Fc£v"ìn¾Í«n%ÊØìtÓ�X€†F%�IðŽ– -nQjS™ çù°X\ q,säÏÕ3¿û|ÒJ‚[S"P,×àÃ%ó »ÈSÂ�§€À‰€†>qòàúµ(Þ1Yüx÷ÚšßÇ"NÓ{ £¨¡× B÷€Œ¹âr×Ä+³Ú×6�!� ½°0 ºmRvtФƒ{9ô,ýÑpñü¬+òôäc5´y˜öoâ&ò öõ[ñ-€†Þ]Ø­Ì ¡ƒ†‹  5îŠyÜ}UPaèñÐÌ9ô:C_]4/Љ·†@qÕjå"c܈ì€�4ô c Ђ@|ÀèÁ¦žk¸—c•†¤ƒÿ„aQÄW¼‚�� éIDAT´Ä\3çp ]ã,Æg$÷Ní=¸ÅEvF�zgÀ±È" ¥ëÝWР¡I‹Ç`“ÜÆ 54‡%‹²—?‡n^o¼†6÷šÇ 1cÜ8æl�4ô¨Â&†@ñ€98|ªÒк›¿>1ÏY4ô°"ƒ¡}Hjhú8Èo2ÃzYeßб¸ÐЗJ'‚¹<¢Az§ÅÔ}M@V#Bƒjq\|åØŸuÛSCC—\~gí`­À­¿[ X�hhÔ�8浆¡iICÏŽKöqÜGC›°ï)–»µš¸vü•°B,@`r ¡'OÜOЧÂtØl~ó/ÐÐz|¬Å…Zá§‘Etôg¿àЖgˆÛà4ÔgÔk`…(€Àü@CÏŸ#xäÔƒßDᔚ­7Öʱ8ɹ¬§¡—Zéѱ€>öÞlƒ ÐPœ S.�B�§@�úi‚“·Ž@ñ& º+ƒjÐÐúw½Ü΂†Þp,7ZA\;~ˆ“0€@hè$PFÀ»—C» Üàžõ÷m{ ½’9ž?¸8°ühØY S΀|A�ú"‰D—G sEϘsukí-½Òˆi6<ù"D€=4TfÔ1�* ¡«àÂ` p0mgÌÂéÕoÏg9~¦@ ½·åÉ›x:|ÚÂǬíh«É¶YÛEË@�p ¡Q@à"ˆ»‚/ÀiõLƒÏÒ³·ÐÐÊÙ S†Ñ¶³ÚfM �œD�ú‚IEH·‰@³†>ãý¾c5ôªžOw!q›u~Ò¨ÛÔpÛ¬“B·À逆>]Êà0p2:¸3a5‘—ÝSnÆ%׫NâVeƒ�!Ð,…›'| �v@�z±Ø äy*5fhèó^HìTRXfmR¸mÖa�ÐÐ)˜0œâ}½âÈöt÷rÏ¡WeœLÙI/$’ÑaØáäKQ¸Ú<ñðá�¸ ¡o$Ñ<C@hèÓÝ <VCë£hhì–4—SóÄÎÃ�ÐÐ( p[˜§ÔÅ£ë©0ÚBCŸîBbªŒÀ™�f)Ü<é�@` ¡÷Á«�ãHÞ-}¼£%†kèuÁs]H”@ÂûS Уƒ{æN<œ�WG�úêF|@àËüú„§-Ä=*È<8Ü3÷ðÀá�¸ ¡o!ˈœõgìÌÌe4ôz®ŒÄè¬ÀÎ鎥À � }#‰F˜·ŽÀe~}"â-H[/ú£ãï©Àž¹GÇõÀ­ � }+™Fœ@à÷r@C£’Ï‚@î™{|à'8;ÐÐgÏ üY®ñBhèl¾1îP:EpçôCCÇâ@àV€†¾•L#N °"pö_ŸÈkè5Xä‚@gíuN?$d, n hè[Ë8âçF�úÜù» ïûp¿…Û@Q#€†>}¬ €@-Ðеˆaün üz·¬a! ÐŒ�4t3t˜€À@C�:–,!0üËÐÐ%Èñ>8hèãs�€�È#� Ç #wC`ìÞ@@ï–8,z€†îAs�Ø¢¶ÐŠSv �‹]! ßûäÉòè)¼ž¹W1I€†ž41p �@Q[@C£löG�ẕ"˜hè²�€�H!Ц¡‹³RkcðÀ½¨ pƒ@Cß`Ò28+E5Ì ÿš×YQƒßÛ#0¶ØŠu¾}@X�2ÐÐeŒ0�Iˆµ…øe±±Gƒ“ �7fF`ÔoÛACÏœeøhh�§AÀÓúpø-ª§ÁŽžhèóçÜÐÐ7‘f ®@ ¡×C ŸD€†¾FÆo0 èL:B>)ÐÐ'MÜ·ˆ€)/<¹Œ{9n±DÎ34ôùsˆnhè[É4âgG yÍ¢IFºQõìÂÿù€†ž?Gð¬@C£€�8¶Žœ¡žÏ‘]xù¶·¡VQ@à\@CŸ+_ðÜ.±†Æ‘óíVÆù#ûÓxçÇ�s � }Ž<ÁK �ŠŸqãErRpïþI·ohè/�„Î�ôñ9ò/ëÀoÈÔc†@`  ¡§Hœ�@ÀC�s£6®�4ôµó‹è.Œ�4ô…“‹Ð€ÀÀÇÜWÈ"b@‘£@€À€†>cÖà3¸pDw+™¾í8ñaËmçÑŸhè³f~[@�ú²ŒWpÓ?*œ hèså Þ›C�sß\Ê0�@à @CŸ!KðÜ0ø˜û†“Ð��ó"� =onà�„�>æF1� �€ÀT@CO•8€��@�� p ¡O$¸€��@�� 0ÐÐS¥Î� �€��@�œ�hè$ . �€��@�L…�4ôTé€3@�� �€��'@�úI‚‹@�� �€��S!� =U:à �@�� �€À €†>A’à"�@�� �€ÀT@CO•8€��@�� p ¡O$¸€��@�� 0ÐÐS¥Î� �€��@�œ�hè$ . �€��@�L…�4ôTé€3@�� �€��'@�úI‚‹@�� �€��S!� =U:à �@�� �€À €†>A’à"�@�� �€ÀT@CO•8€��@�� p ¡O$¸€��@�� 0ÐÐS¥Î� �€��@�œ�hè$ . �€��@�L…�4ôTé€3@�� �€��'@�úI‚‹@�� �€��S!� =U:à �@�� �€À €†>A’à"�@�� �€ÀT@CO•8€��@�� p ¡O$¸€��@�� 0ÐÐS¥Î� �€��@�œ�hè$ . �€��@�L…�4ôTé€3@�� �€��'@�úI‚‹@�� �€��S!PÐÐËÛx� �€��@�� #ðþo|Ç“õß{ßû^€€��@�� �€@hh½ �€��@��: ¡ëð*^”`��@�� �€À倆††@�� �€��u@C×áuù‹*€��@�� PDà™†^žá€��@�� �€@§¿Ëÿ@�� �€��@ ÀÿÞø”=v•Z����IEND®B`‚�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/vignettes/biotap_sim_properties.png���������������������������������������������������������0000644�0001760�0000144�00000257012�12466166264�021010� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR����£���Xþ×Û��¡iCCPICC Profile��xÚíšWPT]×ç×9én &§&çœA@2’…& ’“„¶IŠ$Á@PD0¢ŠŠ"`�ŒEDQ3(QÅ’ú»Ðçy§æ›™›™»q]ìZõ_{¯PuªÎ¯jo�¥#ÁLf, �qñI,w;Kº¯ð �Ð@%84‘iáææÿ[›{�À€Z0“ûÂQ5µW2àeRЯeÿgãaùøú n�@‹üí‡�-ä·¿�h©IÌ$�d�ÐB£‚Ã�J�Pe1Ü­�‡�DJ$ÃÝ €ã%�‘Âp·à™� R‚ƒY‘�Âß�€ Býí‡Dˆh�=%42 @Ä �Ï@À›……'†È×�@XXbh€�µŒ‹KPr�ÅP&+ @) �d}|ýè¿ÇÚh  ·€ÿð-î3@ÃN�QÕÿhJ§„3�…ÿ£Í¸�ˆÀãÄm��@(–�¸·löŒ<�¡`e?›½t’Í^©À ´Å†&³R~ŸÇ�à€Ü@a�P5Ð0µ`à ð…@…(ˆ¤B:l‡]PÅpÊ jà,ÔC4à h‡.x�}ð ^üƒð ~‚ „‚ð"Bˆ"‡¨ Zˆ!b†Ø Žˆ;â‹!H’Œ¤#¹HR‚Eª3HÒ‚´!ÝHòA¦ïÈ"Š¢d”†Š¡r¨:j€®EPt2Ñ­h.º=ŒV¡uèô6Úƒ>E‡Ñè,ÊÆ0ü:Fc€±Ä8c|1á&&“‡9€©ÄœÇ´bîbž`Þb>a°X,V«Š5ÂÚbØ`l6[€=‚=½ŒíÀöc‡±_°Ë82N§ˆ3ÀÙá¼pá¸$Ü\)®w ׉Àãfð< /‹×ÃÛà½ð‘ø-ø||¾ÿ?‚ÿAÀø #‚!À$äήF ³D"Q”¨A´$zcˆ™Äâiâ5â#â8qžƒÂ!Å¡ÏáÈÄ‘ÌQÀQÉq…ãÇljB’&‘\Iá¤tR é,©ô‚ô…Œ#‹“uÉŽäPò6r)¹ŽÜI$ÏP(YŠ)Å‹OÙM©¢\£ P>sâ9éœÆœ ÎxÎ<Γœ78_p~ç¢p)pYrpmá*åºÈÕÃõžå–à6æöâfqq×qwsOPªÕ„êCM¡–R©¨Ó<$E[ž0ž\ž*ž6žažU^qÞ5¼þ¼i¼e¼­¼¯xñ óñùò¥ñ•ñ]çä[¦‰ÓÌhiÛi'iwhïø üJüŽüqüÅüMüÏøçDL‚rjz¾ò ê ú fžìü(Ä-¤+ä+”!T-Ô-ôY˜OØP8Px‡ð9á>á9q+‘‘b‘f‘·¢xQ5Q†hºhµèÑ1Q1+±X±b7ÅÞ‹s‰ˆ‰ˆ_#—Дð“Ø!Q/ñR#©&é#™+Y/ùŠŽ¥kÒýé»é—èo¥HRR¡Rû¤nHMIóK[J3¥Ë¥{¤däd<d¶Ë\”y#K‘5––=,Û%ûSNVŽ!—+wInLžWÞRž%_-? €QÐUW8¤pOaAQYÑ_q¯â-ÅoJÒJžJ»•Z•¦•%•Ý•w*·(R‘PqWÙ¥rM勪´ª—jêmÕY5%µ@µRµnµuõhõêO5È©õš¢šîšùšíš ZšZ‘ZZ/´¹µíµ³µ[´¿ë(ë„ê×y¦Ë­k¯›£{CwNOS/Fï”Þ°¾ˆ¾§~±þ¼¥A¦A«ÁOC-Ã8Ãs†ïdŒ‚ŒÊ^ 3ŒKŒ›pš8šä›Ü[ƒ_c½&wM‡)bºÖ4Ëô¶éª™™Y¦Ù-³Ussó,ó¶µ°ÖbmÎÚ;8 ;‹<‹KŠ¥‹å~Ë++«cVo­¥¬Ã­ÏXOÛhÚ$Ù´Ø,Û®µÝiÛcÇeçawÔî­½Œ}´ýEûŸëLÖm_wÏËÁÓá˜Ã˜£²ãfÇ'p²w*vzéLwŽrnt^t±tÙãòÌUÂ5ÒµÑuÉÍÆmŸÛ«õ²ëã×·ºcÝ]ÝËÜßyhy¤{t3hŒ ÆÆ/O[ÏÏa/U¯4¯{Þ4ïïïU'Ÿ2Ÿ)_Cß]¾Ïüdý’ü:ýùüCý›6`6xl¨Þ0`p0à} A`~àëª37öI%Ý Ž ¾ÂÒJ ½F ÛÖŽ ÷ ¿ð¸‰ô‹lˆÂGmˆjŠæˆÞ}5†3&,æÆ&¾M›6uÆŠÆ&Æ>ˆ“‰K{¯¿;~$Á8¡4á3ÓŽYÅ\Úìµ¹EfE°ÚÅ·$$i$&M&[%W&/§ø¦\MåKe¦>Ú¢²%ËäV›­ÕihZPÚímÛ2¶ ¥¯I?–¾”áŸq=S43=s(Ë4ëD;;(»c»ÌöÛ'sÖåÔårå2svèï8ºcygÐÎÎ] » w}ÝÍØÝ’'ž·=ï}¾S~c@AzÁX¡}aýÚžm{ÆöÚï½X$X”YônŸó¾+ÅâÅ;‹¿ì÷Ú»D±dÉbiXiïƒUÉ“Žr8tå0ýpááù#!G5>zºŒ·,³ìÓ1ïcwŽk¯(§”o-Ÿ<áy¢³B«¢²’»2£rºÊ¿êÁIã“çªEª ªkbjO9ºqZýtE-µ6§vöLø™—gÎÞ8§qîd]^ÝÒù„óã¼.<¨7¯¿tQñbyOÃî†åÆÍ“MM—Ö]º}Yÿò…+²WŽ]彚ߌ4omþÞÝ2Úê×úäšãµ;×Í®7ßмqî¦ìÍ·„o•Þæºß†mËj[lOiÿÞ×1ÕÑ9vgã¡»¾wŸwytõßs¹÷°Û¡ûþ}»û]=6=wX=èxhù°½×¢·ý‘壎ÇV;û¬ûºúíú»Ÿ8<y8à2Ð÷Ôãéóg>ÏŸ>{þbêeÜË﯒_-¾ÎÄ æ q •¾~sâ­ìÛsÃZÃÍ#f#wGFÆüÆÆÆcÆL¤½Cß¾ç{|RnòâÃSNSÏ?}üø)ù{ºà³Àçª/ª_Z¾Zíû¶áÛÔ÷äè}3b3çf fïþôø9:—0·:¿gAtáÜ/£_÷}?,mY&.]QZ¹¶ê¸:ÄŽÿËYà/ üe¿,ð—þ²À_øËYà/ üe¿,ð—þ²Àÿ¿,À f���Ј€µ�œ¾�|}�dÌÿmü÷=Êà �(� @ȃ9Âh€w?b°3È*& ·04L*fëíÅyàÆð[ ‚„Nb‡Ç,©‹\EÉáŒàräÖ¦ÒyøxI|XŽŸ À-(#¤/ì$%Z(vI|P’H7’Š•®’™”Ó‘ÏPèQRWiT]V·×دùJ[J'T·ZoÔ@Ôa´Ç¸ÝdÆTÖÌÝ|ïÚ–x+Së›ZÛ—öøuzŽÛN:w¸¼q[Ïå.ãaÄpö òJôÞésÔ÷¼ßMÿ¾ £ß7¢AÔ`zˆV¨Y˜S¸D\䶨=Ñe1•›Šb“âüâmt˜R›ùX‰˜ÄÕ¤¥ä¥”Õ-èVbÏ6‘t™ ùLz–X¶àvÞr.6—½cqçÌ®éÝ“yãùo ^¾Øótïó¢…â˜ý¿J³"‡²>êZvîØB¹É fEeeGÕØÉÅ®SR§­j·œ¹|ökòùÐ eõ=WU›¼.e_>{¥÷êl‹`«Á5ïëa7ÂoFÞŠ¹Ó¶©=¾#±sËì»…]GïÕu·ßÝ3û³Wàõ1ññjßLÿø“þ¶§ Ï*žï±ãeú«”׬ÁÄ!ç7˜7Çß¿Þ=b02=zv,f\k|iâþ»#ï£& >à><˜Êù¨÷ñý§ÃÓ®Ÿ¹?}iûzãÛà™ÎŸÍ >˶l6� €.e0oH†Ãp>!¢ˆ3’‹ÜFuA«ÑLæ9Ö û„›Å ˜¾ÏrÄôÈDò¥‰³+šÛ‰ªÍ#ÌKà]ᛡ}æÿ&0/ȦˆÐEMÄâ›%H^¥¿•æ•q•Í“ëRÀ(®UÊPnV™UÓTÐ8¡ùD«£«»Q/_¿Éà¥á²±„‰ÅšxÓ ³‡æ Ò–öV±ÖE6 ¶½vïì—¨Žt'ugckWg7ßõAî‘ñŒ$Ïm^ÙÞy>E¾üŽùWm¨ ¸xyckPGðƒÐÁ°±ð‘ˆ‡‘MQ‡¢³b6mò޵3Š×JPbÊl¦³$éI²ÉÊ)š©z[ ·ê¦ioÓHWÍPȔΒÌÝ.CÍ¥ì îÄìdïZÚ=Ÿ7_ÀSÈÜó®È}ß­ý²%Ù¥%…>~¤÷èü1±ãkÊ}N0+ò+/W-VÛ×”œ®U8{öü¹éóÊÂêË.ö7b› /E_>r¥§™ÐbÓºãZ× ÌMÓ[Ûn_m›îîdÜÙy÷R×h7ù¾N׃؇[{så=.ìËïßù$k íiÒ3æóØñ/Y¯¶¼ÎÌÚõ&ómòpÜHÄhà˜Ïøú Çwöïm'm>ØNÙtúä6íøYÿ‹Ð—/_Û¿íÿþcíŒì¬ÐO…9ŸùË¿K~+‹l6�  J` ë!öB !DqF’‘Jä è4íÀ11ÍX~lö#.÷ï!ÄØÄb9Ž›$oÒ,¹„¢GäÜÁ¥Å5Î}ˆễçéäÝÁgOã¤=ç/ˆ´’Z~#r]´Ll«¸·„¡¤ ä ½_ê‚ôn™ YC9.¹qù…BÅ�% eªò¬Ê Õµ#ê© Mm-.­)ívúqzú4ý÷͆yF~ÆJÆó&]kš†™i™£æýk+-˜–V<V£Ö6Ù¶ëí¤ì~Ø·¯Ûçàï(âøÂé ³§‹°ËëI·ØõFî8÷“ŒDO/!¯iïÛ>¥¾‘~¦þBþ?6ôœÌÞ¸!È0˜7x:¤;´&,+|C„a$_ä·¨‡Ñ51[79ÅJÇÎÇÝ?’ÉÔbÎmna¥$ª%Ž&•&›'I©Mݾ%r«kÚšmªébÔLŽ,LÖjöÒö_9 ¹ ;ævþص'œï\Sx}Ï÷"…}¡ÅûKEø,?4zDáh|Ù•c¿ÊµNTäW^®®&Ôh <]R{ï,æœM]Ñù7õZ÷6|h²½tæ ùjRópëúk]7Ìn¶Ü6n»ÕaÝùè®g×Hw\÷ƒÖ^÷Gúrž¨ ||ÖöâÞkÒÐÞᬱ¹I×ÏBs6à÷}:��^àH€÷ �C ˜@‰@àÆ À0dqñ€H´üûÿЀT¸Kˆ!ÂBÎ#¨8Ê@ Ð6t£‰Ù„9ÃJb°Ç°ƒ8Qœîî ^‚¯Á ¨X„Â*ÑžXD|Ê!ÂÂQÇ1K2'’^’È©änŠ(%r—SŒ3…³ŸKƒ«ˆë·w U’šGå æéç5ã­ãæ+à[¥±hùÃùG‚†C? ¥£Â%"ò"7D=E¿‹‰«‹÷K$KŠIÞ¡ÇI‰IÝ—N“Q—™=&ç-Ï+ß§P¢è¥$¢4¬|Fe³ª¹·Ú²úOïšSZcÚotžëöêuè_3h4<cTa|Ädߚݦ9fYæykYÔY¶Y½´ž³å³Ó´g¬Ks¨r¼ïôÓEÊÕÕ-{}“ûÆ.Og/A¯IïŸBß? Å ´�\�;D–1 ;ÞIŠrŠÞÓºi0v1^,a-3bs1ëVâl²bÊÆÔŠ-£i ÛÒoeR²²[sxrw,ìÚ•Ç—_Uh´§¯(tßâþý¥²šÙ~z4°lòxBù|Å*¯j‰šéÓmgªÎåß\ï×`ߤsYâ »y¼µýúñ[âíöwÜîiÞÿúððc¥þóOŸW½’¬~»nTgBÒè#ßôÕ¯üß føg¯ÏiÌg,\øU»X¶ä±Ì¹|fEaåôªÜj;;ˆÍ�;8¯aÄ)Fî£jŒ²Ðs膎 ÀüƊb7`˱#8Y\$®÷o€ÏÀwÈ¡œ0IÔ!f»9x88ÎrÌ‘lHIïÉFä"ò8Řr€ò…Ó‘ó™+žë)÷îSTjõO(Ï Þu¼×øÔùNÑÄiGøø  ” Ê 6™ õ ‡ ¯Š”‰‰Še‰ËŠ?’H“T”|E/”²š“n‰•U”ý W'« £°¢Ø¥´O9PEE…­Ú¯v]ý’F£æ­ZíJÝ2½ý½» ·m3N1a®ÙdmmÎ\›mQdYiuźÏfÚo¯°ÎÉåxÔ©Óù›«„›ëú\÷z Œ,O†—ª7ÙûƒOo£_…醂€ÂÀý+‚®„,„Ɇ{Dì‰ìŽÆÅhm²‹õ‹ŠÏJ(e^Ø|Ÿõ)‰7Ù(%$µtK×ÖÕmé)W2ç²Í¶ïÎéÛAÝ鲫xw_>µÀ«ðäžÏEûòŠGJôJ˜=äw¸ã¨ZÙ‰ã|å{+x*ëOzÖ`NµÖ¦žµ¨ã>?QßÜPÒuÙò*wóhkýõä›n·ÍÛu;5ï*Ý“»/ó@¦Wá±b¿â€Â3…ò¯eߨ o­ŸP|ß8eÿ©÷‹Á·Ìų sôùê…ÕEõ¥5Ë+„•ÞÕ6�œ QDv!oQ=4ÂèbŠ0Ÿ°Øs8 .÷oˆ?AÀ¯ˆöÄ&ŽÝ3¤0Òs²3ùÅœr‹ÓŒó—3×kîMT áÑãyÎÏGà«¡ÙЦøKÌ> V ù Šœ3ç/Ñ!YEÏ•Š‘^/c&«*'!ϧ@VäP"*“T¨ªbjjê^yš-Z“:ºvz‰ú5OpÆF&±kjL‡ÍÅ×úY°|bM³ñ·­´›ZgäPà8è¬ãRèúaý:÷3 šgž7Î'Ëü‹¤;‚’C ¨ዑKÑó›ÅIÇ_`jn¾”h˜Ô’¢“Ú´U#íBºZÆ…,ì›9¶¹­;‘]λæ¨fïy\$²/ºøZ ¡Ôû@íÁùÃöG<ft|Oùh…y奓ªÕµ§äNלQ<ÛP§}¾¹^çbc£jSùež+Û®Ž·8´^¸Nº{³÷¶j[AûÇNû;'ï®Üct×õÀÆÃ³½+ûŽ÷0zZðìù …—i¯îŠ E½©}ûfDb4z¬yÿÎ÷}Õäø”äGO™Ó'?_þÒúµñÛ‰ïy?g4f¾Îžúéóó×\Ù¼îüÍÛ…Ç¿Ì~_YÌ_]Ò_*\YÖ[ÎX¾¼üiEzÅweÿJ÷ {Õ`•¹zvuŒ-Êf°÷²»Øl€ßo°��€d•›À¢;YYÃÿ[‹‹Mþ§/�Pâc]œ�@��>„[;€�¬2cÝœ~ïADÂã==þøªñ!.®|³–­ûﳈ3ÉÒ�„�f’ãž™eå��ä@x¢Í?y*c‚Ü�€ �ib%»{€,�Ò–˜âa�T�d"-ŠáýgÏlX¸õE#¢m×ýñy£“Ö1�€€JoJptÿ] ÕGˆ…pH„C<¨XõŸU " Xá›à=° !b!X@ÿ³Ïê¿)¶ ,ˆ„ðÿ)#B!’ÿ­ùúŸ Ñ ÿêÁb,‡ÄÑ9ÿ©ð?æ‹…`iÖiNi.ÿÇÊcµ±zXK¬)Ö kt¬�VÔ°ºXC¬Ök‚ÕÃ-L� "ÿéqct+®)"åHÂVc¯¨?3„ü;L� ¢ÿ—ýéýÑtóô¿Âï7��x*Àñ��wÒ/þ·o-)|K�€Us++:2*‰nÁdƆ«Ò×Ňª«Òµ5µ4á¿� eê\¼Â}a���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÚ3�µŸŸ�� �IDATxÚìwxÕúÇ?Û“lz'„ˆ”Pô‚ņH±€‚Š€xí¨\ z-Hð^ ä'ˆ(\Á\Šb Å‚Ý 6DDJ€@HÏî&ÙÍîÌïͬ»›­É&=Ÿçá ;õ÷¼óž9ß9çŒJ­‰âŒî]¹âŠË{ 6tG‡§#@ @ åû‹zÿ¾é‡ïö¾¿UÏž½z=òÈ?9묞SêêêÆI’$<$@  $Ôj5:N¥V«Ñ:ø»nݺÊ555Â3@ @ ÂB’$ìv»¬ÑhTÚ‹.ºP®««^@ @Ðh$I’µ™™"!Ë2v»«ÕŠ©¤„ƒ›·PþË/ØkkÐè£H>£í_J\j*ƒ­V‹J¥ 阵%ÅX>üºÝ?¢®ïM!EG£ëÞã°aD¥¦…}ÌÒªb¶îÛÌÞ¢_¨uÔ Ëm ]ÓºsQî`RâC;¦@ @ ‚ÐQ}óÍ7r  êêꨩ©áÈWßð늕ÄÅIÍhC|»,TT9JqÑqÌf3]n¸ìóúN§ zLË7Ÿcýï2b’“IÌÎ&ºm{T*ÕGRyä–ÒR coÅØÿ‚¹íÀW¬Ùõ:ÆÄXÒ2ÓIOÊÀ.98QvŒ’¢bª«jsöô9ý¼ Çà¯@Éï?SDgtL=)ç7•”“š„æOìãê’ßÙ[d ÇÙ‘¹N«‰rGI1"~@кЛèÑjµräë¯Ù·ìUÚGéž’F§¡CH»j88¿ý.ûÞûÝÕµì[ö ¨dr @£Ñ<¦ùÛ/W. «­‘ìñ$^p1F¡R©©þê*>_ÏáJ(^¹�³J…úÜ ƒsÛï_ñßï–—GÎé\Úù2æ£Újfã/ïðù¡O(,(aÅöe A¿Îç<¦@ Z¼)Æ//ä£bˆ0ÄsF¿Á\Ú¿#àÈ'/óÜžN̸û¶­GY1ç%öEG;�kýÿkÊ`н“9¿­áOéEGù÷ügÁFª¢ÿXVSfàÊî¡wª¦Ï?™yó~›ÂƯ®!Žj>á~êz3w<­Ùm-ÿþe®¸[ͦ¯n"6@\´¤MÍÁá3¹ë¹ËØôÕ˜�ׯrð.»©˜µŸO¦­x”Á©$2˜JJ(X±†.*53ÛiSj"î×}h¿þ$‰ä½ûè^f"É\ÇN­š+ÖÔ¥ QÙÙ~YSRŒêçhÓÁÊi]4DeØÐÛ Qû Y¥Fg?JbF-†uèôVŽ¿ó5»•ÝÎï1K*‹y{çJb³bHé…1NC¹tœ½e?Rk¯¦J]J\¢ž4] ÞÞ¹’Žé]ÈŽj'¢@ Z *Lß¿ÍFÕõÜy6,^üo¯~Ÿç¬æ‹Û¢rìãóדpÜ)°ö’£ÈêÒ; @Ñ· Xým?îœÔÏ)6$BšNÊ•|±a3Ñý®¢w¦¾YNQ[r€×6¾M—A71ôŒ�¬‰µ8êj‘¤è>O> H‰E+9ýjúv#ߦÞÈ’Ô¼öÚ~ç©»ÿÃ}¯Jœ$áô<ânS󿱑ýq½|Vf€eᕜ]“ÐH¾c·â÷oÙº_ËàÁ½ ¥s‚ñ̘Ýÿ\®{õB¾¸ù,‘:@ÐzD‡Ãpƒã[¿ ¹®Ž~hS]Cœù8*iTT€$µg†ƒÅèëèc´TªëœûŒ¹Îï1ë¾zŸ¸$;{'¡C'£‘ PŸø Pã êDШ“è«ÅüÓWïã¸æv¿Çüæ·ÏÐè5´ë‘HL¬µAæü`¶a—ìTéŠ1$jI‰IÀÅáÒ ¾ùí3F¦ŽQ ­¨ ßåc™tm.Sn¼œÏ¿‰ÂªZ9W½ÀÞ1u+ÃP«HåÊ “Ð"#3w³ºâîœp z@¥‚šÊr,uŽ–¿D©œ¥ÏÌçªå#8ÛÑ<ç—õÎã&OæšNa@¥Ra3•Seýãœh4*Ô2 K8½~/7Ú*9^Vݬöî^»€Ï˜Ìœîzlæ@“P{ÙÔ¬ÔñËÃÿâÉ^á’3–…Ù’ ²„Êá¨÷³÷Δå¿ü—gž„®çŸM§´‡YÅàGg1mÄ?øì²*º3 •ˆ ÁÞâÄìù•Ó*²lq* Î‡O€ÉâÜÀlA%ËīԨ$èéPqhÏÞ€o‡˾!»k<Qé)èâÐÆÆ Ž’AsÑÆ;ô h¢u¨£¢8­«š£eß"I·ú=æÑÚCduK%5#ƒAN«A§qP­*Æ¡‘‰Ö¨Ñ:â“CÆØ©ë¦åhñ¡“óK þZàÈ�–JNœ(Ò@¶#I{ÖNåñ]ÝX8esDMo¾ð, ×ï Ãð{˜q÷5äD×RV\ë:jEuPGQq1Qng+ýåCþoîS|¹ßù{ð-OpïßÏ#(øèyžÝÓ•;ú3ñ¡Å� ¸a&Ü~‰nû?1ñ)vüí?~ ¹qÎÆ^áwë™;%ß¹xhéû ;­œ—&ÜÈoÀÜ™˜»¯;‹ßÏ#ê«çyvOGn9ó“f¾Ìécï ñ¿1pѳ ïç<€m?Ïßý™Ìãrã.¿iKߟB‡h^”œÓ-Õ™J).Ö6Xïnw‡Á#Hù$#IÖM¹—ígßË”‹£|Ú› {·²èΙl®?æµ-àŽa=лl]Hʸ!ÎyŠõÜûŸ\CœG+¹M/ìà¦þºÊÊï=ÏMŸ¤ðÆœ1¤(åö㛌|ö8¯¾p+Ÿ(6 ê༆?ä‰IÊ5 çŒê#”µ¿–é·Ÿ‡¾þü™wŽ¡î݇Xü¥³|M¿…n‰õqÓ~^{ê6^þ y žfxö¸€'æÎá–¹ûèõØ«\V÷fƒeÿ”°ü?r,$Zùù›•ÜëO1rã“Û¸mðEtü FqÀ´aK?—IÀºorîå§‹ô!‚SCdˆ?^Bµ–¸$=4`Ð;ÿé´ÎWAÉq`·ƒÍF\6’ƒòãÅï  qY©èRSÐ%Æ Š‰vS£®ðТ¶ÐEGNOœâªK¨ pÌZC5mÚ&’‡^§A¯Q£S©ÑjÔÎ/OHzê$ ›$a3ÔQ×VMQ¥Iˆ @Ъ‘e(/=ÊÁƒ&¶¿·ŒoÍë—vB’쨤öÿz:*IB¢ˆ×/¿‰WÍ’wæÒQû;‹ïŸÀM—›Y¹éF24î <ç±ñêªn·Iô¿ûe¦÷í@ñ—Ï3þÑ©ô¿ð.ÎÑ£–jÙùÆ&¾qϼ¼Š„C3aæLª2wT7lqíħøû3«XØ7š·¼Š;g¤³aî•D; xmJ>º–°udGJöàH7 É)Œxx&Û'Ìä¬ñ1ªk"ɉ"©–o<ÅÎ7®à™%ËéÒ9ž ÿýùïncp—‹Ñ…_¯çýi¼Þ9mU}&qZ _Õ˜\/2øþ;~.7`¯µ•щÎYqØ ?ãÚ‰O1èÞùl¼¶+‡>Z΄ÍN'É’„„ [Ñ.~­Uûµ·öàGŒ¼ó_ôð ïÝЗڟ×sÍÄIün~‘¹£:jj÷ïdñœÜñ¯E,ïІhïa G.q`•$rþvÌ™Æç?_ƈnq€‰O,„ ^¤ƒ^ůŠM’DMÁF®ô4}'<ÃÆzQüù*Æ?¶l—a•$´õç_øÐNN™Ïª»mügüƒ,ýäBž¾ªPÄÒ·±òÊ™¼÷å@Nl~ž[&=DÖ›K8ûÂkýÔ»|Ó­<~Yô‰©Ä;.«=¸Ùùû’Ïähøöiîýv`ƒxÊ¿ö<íÿú¶ÿZr/]RÓˆ‘¤ 1(Ytt ö£V: ½H @ h "C°áúèh -ÄFCL [ÿW¥‚ÚZ0™ÁR Õ5D™-èôZ7*MB,º¤8Tñ±m�½´õo[v°PiõèT4åVˆªxL£!ctqQÑ´j¢4¢Õ:¢4:@¢Æa§ÚaÇ*9°itÔDI˜ v‡ˆ@ h58ÐÅÂޥ˘³t¿ I¢º‡£¾—zæßvð ðèyôL±b•{òàS3X3òq¾Ù7‚+;ź5ðœhg7õ?Èê?–46ÊJªHï~>¹¬¡ZªÅáÐ aþ·?>@ŠÅŒ£çm<ñù¦~»Ê«r9ºk0ˆ :é9\\G·£á±Ï9h¾Œ\­ -ð¿Ý?ðë9YœÑ­r‰j»žì3ºÑ8½[rÚi©µXêÏ5ˆ×¿ø7]µ¬µ.{f4KœÍ®›. wJ)ŸÎ|&,¥£¦–êÔ>Lyl�•'J¨õQ9êE†Oÿ‡o;ûöÑñ—˜’Ñï?F3åÖs‰®¬¥çU÷òÄ—¯3Õ¤øÇyÀD•Œßöþºk0šÇ'^Ll……ÄÞãX5å3ÆÌû€ƒ—u ZvzïùùG¿$jl6,æß×ßÍÿÈå¶D ‡9½?æÂ¿ÖïbXîy8ocÁ>xfn7jëLØäppd×ÇÀh¦Ýy1Ѧj:»'>ùSM q8p8œçýÄÛL», “ÕÆÅ}áuƒ‡ÃAͬ& ìŒíp1IÝú‘ËUò·3rèÑfv ''ÉVƒUÕpÙÎ@åï«w‰¬ÄÓƒ¤XLñT>²'ç ßZÈéÒ‘LKµ-h Æ"‘Úe¬.£Öá@ ˜A«‚½É×v>ëÁÖ q‰ ïÜÀbÊ*¨¬„J3µHèÛeì!P—ƒM£F ƈÒýÑ;œC24VÐhPÉ`ÓÆP—ð˜Y mj͵¢´Zbµ:bµ¢5zd ÆnEo·Rí¨£;r­…6‰mDO@ hUHÔš ïô§Y6:˱ï˜=øï /˜Ä[O]Ž,9·‘$ m‚È¥¦‚ 3@ Õvgݤ7¨<ò»Ò“Aòz›~ø›å,¼/Ÿ¯ëÄ~@…sBHY6Cnra!¥2€š6]sa[ :©Kq°;F~T´ÎÀÙD«$$]î_9‡âq1áý…pÖõ<ûÏ蚢ÇTfÂ8L¥TUÅÔÛg†¾ÃÈ´Rjv-¹×pú²†þ÷;]»ïe)ðÔ•¨²Y ŽÕð¢ó‚™¾n5£só38jÊ8VZÊþm[á’ÇQ•Q T×–c•ÜýSï#IFrØ|ØkÃR¼úGs¼ @m-VC:P…Í!!!c2eŽ—”û´QUÿbÁf­EÒj,:ν÷F¸w9»ïêƒê“' ÷az%Y©«q³I²ph×v¸d8Q%¥TË@m…ë’„Frž¿ÏéQ=QX±�‰²óµ1F�–L¹%.‹rgÔQWSé¼&‡™ªªªúuf¯e¶Àåï«w‰+žŽºâ©Ý9}á­töjJÌ΂·VTb2xïã+>©³KΨ•‚L†*Ak =Ïàıcä¦$Cr"$%ArÄÖ÷d°X * Ðé(./CÓã ì†6dö¢Ü¼“¶DÀ ½t:gE©¶; *Lj3{NOìÊ÷Å_bµµbµzb5ÑDi5hqÓ^–µœ|Ž •‰ �²¥”‚‚4Q§sÃÃ}Ùðä—X†Wß—A’$Õf`/%V:¶ÕPg)ªoœÉ^"ƒÜPd°íãùûò±ç½Ê®[z¡–÷s_Ï«eu½È�`Çîêß×òÛO{A–°IzRÒ€ëxÿÇé8¿S$Ê a¶›!{0/ýx%%»?æáëó¸o]7Þ¿­/õ—€N«qÙ(Ë@E«äêònqdsËí¹ÜýK°ÿm'ôN¯8gƒ;¨ëE[eîŸé4Ñ)–¥ü©~n ›ÙSd@¹^Ìih¯ž”´¾°òŽK}HUÜi-Ò‰VK®9!ÕÕHIѾŸ/2»Ë^öYéØ> °bì6ŒKx·_{ Ë[pû â°Ø½lŠ¡S¯¾ð»8xççÅìýèc£N’Ð*ç·X£©ßÙ¶gƒþáÕßrCwå[2ÕeÇ(µÔ€ V÷¯È^Ë‚”¿Ã—ÈÐ0ž~ùæp 6IÂ^?塞þC¤ƒlîùÚ^â@ 8é"C°áê³Ï±ç7Žè5d§¦@R"Ä'8{ �èô Ñ€FÍQ‹Çé9¨Ïîp‚Üùbj~øãÇ­d¦Ä;ÅÔg­Õ:Ÿ3õ2Ç[©qè»_ŒÃîÿ˜Îä@õJ™IîbD¯ÒcPëÑ©ôÈÈèÕ•%J‰1DÓ)ñLêjì"  Õà@*JrèˆÊÃ;Yýäÿ€ÛÈÔ;0¹ {ˆ>­×ϼò>9w"ƒ">üÏÓÀµômƒÃöÇ× õ=<†KØ ÔXŽòÃ÷~Û²’N•å82RpÈé°÷I–nLäÚ©Þÿ ÿÞ WüûlŒŽ:⌂ùpÏcY<|Ý�55*&µkÇØòñ6:œÝ¬øTz�ÿ3Ä9ëF›Ó‚/·ï¦çÀ\bõzßö9,ä/Mç«0qI_æ:€£ìW6}[BïAH÷1ßá< ÇàH]4`Cj§uï ,aÅ{§qMïx¾ç^æoÊØ4õe øÙ—½™½‡�sx{ãÙ\wagjÍ¿çmƒÛ“£v`©ßG–d¿Ï]FæÂÞå8Ú¥;…[×ß–ËKW×òH7-V“ÕN›ldõ¹˜ÁOh™ÜÏÈ·ó_á OŸDÕ½ÁóüÊþÎu†qù<yýL¢ŸC· =EG±&Nû 1é°÷¹ÙÛo4íb£Ñkh°ì´@審áË—f³Ê:”§ÿqÑ$ž¨;t^ààþ›‰oMtttÐ}ê(ç—·`üóg9¿Z!ˆ@ N‘Á$Ë$]z GwlÇe Íht ƒ³·Z ;%55êõhûõ¡ÔáØCÀ,«QŸ6Šc‡ßC›KêéÑ€Úm ¨T”«áøa –œQ˜ë¤€Ç”«eúe ggñzÊc-Ûp¨dõº¾ä�‡]¦ì°Sq5çgŽÀV]'z2A«BBk„ß^™Éݯ8—œsÅD–Ý3†[m: #9جIÜ÷Á2˜t+÷ŽwμOçñ,ùà.’¬%T»¥wY6B‚s?W­•Ãí÷]ÁÏ>ÊßÃù7=ÀÄ+¶°hÊÍXç-ç|Ù DõÝÃŒŸïÜeàÄçyè‚dÊJªQ'^Àæ×çÑg0áú ¸”k;«’Ø=w†ó‹�¯eɘž8ˆÊᦉ¹gá#|¶°=Oÿ÷YRµi {ÙXz1XÄx.騡Öd ¶ú�‹}ȳõ'ÅÇ@|¥'ë3óxÕmùY·æóäÍ·3âQ&??•÷€Žc'2¾Ï"–GkQ;8”/|Ô7È}Ù{FÛËyk¾™‘“f]ý¥÷¹íß,½­ •'*À!ctü¿tpè8Êm<uçR.^óONÓŽJNr3,}”]EBeµs8„—MªôKÙüºžÅKß`Ãùü2.}ãV>ŒÒaw8œßÙ3EVæå°D1á³µf\ÇŒ{?p™tߢմ‹ÕÑëºÇà½9Ü7þ n~f9WwŽo°lÔYʪŠ9hæjüËAâÉÐá|nëüs&ßL`ùÛ—ݧøïò:ײ®›Žº*«H@ h¨Þzë-9àãž$Oô‰èþ…´HNŒ'ƨ¨¶ÖRVUEɃX»æR“žNUUjµ:è1u0–}DZÇx’3㈎ÕJE­¥Ž²BŪ0'^B]âé!³’b~ªÜDzR É)ñc¢@–1×ÔRZZÅñÒjz& %‰´ ÇAK£%­]6F·†³d·RYRDe­DLZ6é16Ž:PG%•ÍdÁŽ–ø8EǨ¨õcÓÛ‘eåHs?'j3³ˆ–ª±bĨµa—e¬VÐÔ•³{ãL&|z_¼p5ZKV­£¦–cÇÊ]Ç0ħ‘‘…¹Ê‚Vk &FCiÁLÄ’“Š£º«âãôTÖÛ¥&©M[¢¬è±—Ç‘”MšÛu¹°²øúPúÏטs^\}ƒ´±d§FQväU>:äicÓÉNiXWÖ–Rp¼†ä6m08¬Xí­Á®1 “,9RŒ-é9ÙDYK)(2ù´·ÊÆäLÒŒ*ª,VЉÕÖpüX 6PÇÑ.'kÉN˜ý÷4$&²ë™<êx”7îêƒPSÉI‹ÅQ]Êá&W\xÚä@ŸAÛ„4j¨-ÙÎãCîÄúÏÿ0ùÜTç÷ÞÐÅÒ&3¬UXíZŒñ1®íõñéd¡Ê {9ÅUu>—ù-©>ŽUÕ®˜‹MÏ"ΠAƒ›¥ »w<icÉj›D­É‚Ö ¦üX …_=á?ͻɻq*W½¶‰Ëâ-®Øऋ o¾ùfÀjI®ORt4Ö]ßc¨®!&6T*,3¶¨( gŸEyMk’$•JÒ1QTýú ÑÒaã퀊J“–jU;â»\L…¥6ìcŒì.ÞN¥ã ­YG] ºÓ8#í,•–Ž)‚S¢*C«Ó¢B¦®.ü!p­5vêì2¨´è´`¯³s쳇ùÇüKYþæ¥Äêt¨e‰:ŸÃöTètZdYÂîµ^£Õ¢VáÓ.çyýÓÉ¡-óÈ{á+^ذ‰t«)¢^ d›?yÙ«Ò ÓªA®÷_cD¥,ØøòNº í1ÔÝj~cÊø‡I<Š)6¾^µC\ÌÖ?B²Í~ù«dìuvdÏèÔx.÷µ,@ù{ljF%ãA«Ó¡òOõÇ’ìØ2ÇÄ`MÁ7|Qw.7þMÇñ*›H@ h=Ofk×® úT IjµNGBB±±±ètõ“lÕÕa6›©¬¬¤®®ÎµíŸå˜@ øk¢sT°·XOûÌNŽíÀTt”9›³rÔüiÛ‘ª2ÚÄPVXB]ÈÚ„ë‘_Ùùë!*«l$vèÉŃúa(;D…í¯ƒÚøtÒõ K,âfAëªÚW¯^Ò«Y–]oý½çÌŽ-‡Õ3àT9¦@ þzhcIŠrPVf:IꩈILƨ¶QRfBô†÷(â““0FéP«UHu5T”–ñg›ËùäÇ @ x‚Yµj•xn@ @ÐdT#GŽ"ƒ@ @ ‚&£’•@ @ š€˜ùP @ AD"ƒ@ @ ‚ˆ D@ @ ¡ÙD†W^y…%K–œN˜6m›7oÑ hõœJ÷•ð¿@ @ð×#d‘᪫®B¥Ryü3®õcǎ媫®rýÞ¸q#ï½÷^‹_P0;ý5vîÜé÷Zš‹{ÜÜ\ŸëÖ®]KFF‡£Åìiªß ô—»Ú·oß ÞÜÿ]zé¥=ßɸ¯Üï)µZMNNä7Þ8eÊÉ_|æçç£ÑhZµÿ@ ‚S m8ŸsÎ9¼øâ‹(ê?4ŠáÇSWW×*.*¡à}-6l`ÿþýLš4)¢vŽ;–矞ï¾ûŽ^½z5F…F£iU¾=Ui®2\¿~=6› €/¿ü’É“'³nÝ:rrr�ˆÿSøO¹§JKK9pà�¯¾ú*£GfîܹäååÔ2@ §¨ÈOïÞ½}®7n\«¹¨@v†‚÷µ¬_¿ž½{÷F¼qtÞyç‘““êU«<D†êêjÞ{ï=6lØÐê|{ªÒ\eØ£G×ÿOœ8À™gžIçÎÿTþó¾§n¾ùfFÅ#<ÂèÑ£ÉÎÎ>ie @ Z›“áŸÿügÀƃ$IL:•¶mÛÒ¦MæÌ™sR.X’$zè!²²²8ýôÓY¸paÀk™?>k×®eÛ¶môèуɓ'GÌ•JŘ1cX½z5²,»–¿ÿþûÄÆÆrá…úôm _Ž=Úãš6mÚD=øî»ï\ËæÌ™ÃSO=Õb>ë­·¸æškhÓ¦ ½zõâ…^p­»ýöÛ¹ûî»=¶ÿå—_8묳(//G’$ž|òIºtéBBB^x!Û·o÷ØþŽ;î`ÆŒþéÑ£›6mjö2 'î‚]G(ÛxsèÐ!nºé&ÒÒÒhÓ¦GžæÄ`0ŸŸO]]Ë–- ZÎþÊ Ð>'+?„“§”{óí·ß¦W¯^¤¥¥1qâDWï@ @ˆ äðáÃ:tÈïú3fðæ›oòú믳`Áž~úiÞyçf¹(«ÕJaa¡ëŸÕju­›5kK—.eÚ´ilذ]»vqôèQ¿×2bÄÎ?ÿ|:wîÌóÏ?Ï„ "jëØ±c)((૯¾r-s*áË·|™ÍÚµk]Û¾ùæ›üôÓO[.[¶Œ³Ï>»Å‚¬  €Aƒñé§ŸrõÕWsÿý÷c2™�èÓ§Ë–-£¼¼ÜË>r�� �IDATµýÒ¥KiÓ¦ IIIÌš5‹§Ÿ~š;-[¶Ð¶m[Î?ÿ|8àÚþÀ Êð§Ÿ~¢²²²EÊ0B¹ŽP¶ñæé§Ÿ¦¸¸˜¯¿þš7ß|“þýû·Ø5uéÒ…ììl~ùå— åì¯ íi, ¿üò‹Ç¿¢¢¢&å©Ã‡óÁŸŸÏý÷ßϸqãx饗\‹@ @ð—C‘#FÈFŽuýÛ¼y³ký˜1cä#Føü][[+FùÙgŸu­¿üòËå믿^Ž4#FŒ7n”eY–m6›œ˜˜(?ðÀûdggËO>ù¤ßk™0a‚|ñÅËÍE×®]å{î¹G–eY®®®–F£üñÇ7Ê—ï¿ÿ¾¬Óéd³Ù,˲,·k×N1b„<tèPY–eù‡~ãââd«Õq¿_rÉ%A·«ªª’ù½÷Þ“eY–ËÊÊdƒÁ /^¼ØUFéééòêÕ«e«Õ*FyòäÉ®ýív»'Oœ8ѵlРAòm·Ýæúíp8d@^³fM‹•¡â{@Þ»w¯ÇòP®#ÔkõŽÍÈãÆ“G³]W ²íß¿¿ÏuÞåJøÚ'’× R©d½^ïñO£ÑÈjµ:ä<å+ÏuÖY²Åbq->|¸<räHY @ ø+öÄK—.uý>í´ÓBÚoÿþýX,^{í5×[Áß~û-¤qÜaàÀ®®ò€«G@AAôéÓ§Á>*•ê¤ =cÆŒá…^àÙgŸm0T"\_^tÑE¨T*¶nÝJNN²,sÿý÷»&|÷Ýw¹ì²ËÐëõ-zŸ}öŸ~ú©«ÇAmm-�III >œåË—3aÂÞ{ï=W_}µëZ àQ–çž{.?ýôÓ)#ä…r½Öû￟n¸_~ù…¹sçrÉ%—´èµsÁ-çÆÄFsä…>úÈcY~~>>ø`“òÔi§FLLŒëwŸ>}˜7o’$…=é¬@ @pª–È`49ãŒ3Â>‰Ãá�œ_mpŸ(/!!¡Y.J¥R¡Õ6¼´êêj�RRRZU!Œ;–™3gòé§Ÿ6*®/cbb0`�[¶l!33“+®¸‚sÏ=‡ÃÁöíÛyçw¸ï¾ûZìÚdYfüøñ|óÍ7L˜0ë®»Ž%K–xló÷¿ÿ«®ºŠC‡±lÙ2Æ^¯w s‰õØ>&&Æ5âT ”ëhìµ^sÍ5tîÜ™‡zˆK/½”Ù³g3uêÔ¹®ÒÒR ÈÍÍ ©œ-I¤ò”Z­¦¶¶ö¤ —@ Á)!24–Î;£×ë)--åšk®9i{æ™g’ššÊŽ;4h«qìÍ©J¥jÖ‰ÜrsséÕ«Ë–-cÆ ¬_¿¾I¾2d+V¬ %%…)S¦`00`�+V¬àûï¿çòË/o1ŸïÞ½›•+WòñÇ3pà@ŸŸâ6l©©©Ì;—>ø€;v�ЩS'Ôj5_}õ—]v™kû/¿ü’aÆy4ê àóÏ?oñ2 D(×êµú¢gÏž|ðÁ<úè£äççóÈ#´Èôüü|¢¢¢¸å–[B*gï2eŸ–$RyjÛ¶mtîÜYˆ @ ‚¿$-Ò—×`0pÿý÷³bÅ þûßÿR[[KeeeЙó‹÷Ä………Øl6T*ƒ ⥗^â£>bÛ¶m\}õÕTWW{|ÝÁ›¾}û²sçNŽ?Þl>;v,+W® 8T"T_<˜Ÿ~úÉCL4h‹/æ‚ . 11±Åü®ÓéP©Tüúë¯2mÚ4� ]ûét:ÆŽËÂ… 9ûì³éÙ³'àì9sóÍ7³zõj¾øâ , O>ù$ÅÅÅ_¤èß¿?ß|ó ¿ÿþ;o¾ù&'N<)eèP®#ÔkõfÙ²e:tI’¨©©¡{÷îÍ"0(e[PPÀÇÌĉyúé§yæ™gÈÌÌÄh4-gï2eŸ–¤±yê믿v ÏZ¿~=[·nåÎ;﵋@ à¯I¤&ö 4ñ£2©Z^^žl0d£Ñ(GGGËcÆŒi‘‰ù“O>qM|ؾ}{SSSå·ÞzKÎÎΖŸzê)¿¶—––Êçž{®¬×ëå»îº«Y&Ç(((U*•|÷Ýwõm0_J’$§¦¦ÊÆ s-ûöÛoe@^°`A³MèËï6l'Mš$ 9**Jž:uª|×]wÉÑÑчnÛ¶MäE‹y·¢¢B=z´¬V«å˜˜999Y~ùå—=¶Ù»w¯Ü£G»uë&ÿüóÏ &~l‰2ô7ñc¨×Ê6¾&~Ôjµrbb¢|Î9çÈŸþy³–­Z­–;tè _uÕUòÿþ÷?í‚•³¯2%6šsòÊyóæ¹&~ åÞò•çÎ;ï<yàÀr||¼¬Ñhä»îºK®««3þ@ þ’¨ä@¯ð›»ÝΑ#GÈÎÎö9oBKqäȲ²²Âzë{ìØ1’’’ˆŠŠjQkñe(TVVb0\¾+,,$++˵þ³Ï>cذa;vÌçøêêjJKKÉÎÎöÛ ýĉ¤§§·ê2 å:BÙÆå{FFF«/g_eÊ>­õÞ;v,ÕÕÕ¼óÎ;œ8q‚˜˜˜ój@ %Z\d|qõÕWËòåË…3§ î"ƒ@ @ h¡‰‚@TUUpÏ=÷gN)zõêåú2ˆ@ @ =@ @ Dµp@ @ ‚H }üñÇ…@ @ 4Uii©.!@  Éˆá@ @ "‚@ @ D„"ÃË/¿ìóÿ@ @ =Z€çž{N8A b_ |)Dn>¶ ‚?= &~|ùå—¹å–[ü_ @  ¢'ƒ@ @ ‚ˆ  w‡U«V ¯`̘1 –=÷ÜsÜ{ï½Â—arÆg´*{~þùgQ("ö[/üñGqŸˆ<"¹¡Õç†=zœ2~>•}zªÔ»¾bY ü…E€[o½­V{R ·Ûí,[¶¬UÚã¯d/|š=ûÛßP«On‡I’عs§(/û­Ö—â>yäÏûž?on8U8•}z*Õ»@ˆ X­Vìv;�²,£R©\ÿWðµÌß:•Jås;_ë”ß’$µZ{„/#gÝnoRe>þ|ºwïÎàÁƒ›T™òO\\\³Ý UUUÍV^3gÎ$??Ÿ¼¼<fΜ)bÿÎ#M½O"õÐÈ—±±±Íz~“ÉÔly¤%üÓÚc_É Þy£5Þ‹3fÌ`æÌ™"7´¢Øÿ3̧k×®¥°°¬¬,®»îºVåÓÖ–›$ %Y¸'Z•¦¯ŠVInþ*f•¸òÛáp´Z{¼ñ×uMø2¸=6›ÍµNÙ/kÖ¬¡¬¬Œ»îºËClHNNfôèÑMªÌë€)S¦¸õóæÍ º½"`=z4â啟Ÿïj0(§L™Ò*c¿[·n˜L&—/”÷X;~ü8ôØ®ªªê/“G½O–,Y‚$I¨Õj¿sss¹øâ‹#vŸø{ݱ£éYïÞ¸Ê;œ<òñÇGTŒà’K.i–<r²ò~vv6çõïMAAíÚµãðáÃŒ=’øøxòòòÈËËk•õ{nk­õbvv6GŽi5¹ÁʾkÖ¬irˆ7†t…{?:4l›ëÓwß}—šš�jjjX»v-#FŒðëÓæ­w#!2Îåf@ DÏ´Ú€*nFFF“ +** ¸^£Ñ„lO¸v;w0{¼ Ôu-TÛýÙß[#áË–²G­V‡]3†U«Vñâ‹/°{÷n’““ÉÌÌlÔ÷óòω'üã©§žjШ衇B:¿N§‹HyyÛRTTDFF†ÇÃN¨6µdìkµúôé‹ÑCÛ¶m9zô¨ë!NaàÀ¤¦¦Ð·o_ôz½ßí"ûÍEc}Î}òâ‹/’––P`$‰½{÷úm07å>QX·n£FuààÁ=X­µtìx&Z­–ß~û€Î{P]mæÈ‘ßéС;Z­.ìû¤1y$\Ž?@||¼Ïk×?-kìÉÈÈp‰ íÚµã˯·søðarrr•7Zê^ 7ß¶DnÈÈÈð¨+Û¶mˉ',oéÜŒ²²2Ö¬YöXúHœßýþjŽí#åÓÂÂB×ÿËËË)//çÅ_$))‰èèh®¾úꈔE ŸF꙳±Â‚÷ò@¹Y ‘¡A‚U’„w¢KIIq%—%K–0aÂ׺;ï¼3àq/^쑤JJJü&U¥»W0{¼` 7ʾéé锕•ÝÇŸ=‘ò¥rÞÔÔT�8ʾ}åtê”ÄáÃE´m›MFF:€ËWÁ®?¾lI{T*U£*ÄqãÆ±råJÊÊÊ\C¨%oÜßò{Åé¾î‰'ž ??Ÿ’’RSS=õS§Num3uêTŸþÑh4MŽ}÷uS§NåÑG%%%ŵ¬¤¤„””¸o-±ß®];L¦*2330™L|ýõל{î¹Øl6×ö&“‰öíÛ{ü‹‹óØ&Ry¤11Ýܾ õ>Y´hiiiDEEa6›Ñh4Øl6Ÿõz½Kh¸ôÒK#rŸøëµðÆ/rþù—³iÓ* †h~ýu§‡È°`Á?™4éiÖ¯…œœ\Ž/@¯7—HÿþC‚Þ'Í#¡ øÈ½aãë\¡æ‘“kþìyâ‰'8¯oÁvíÚq^ÿÞDGG{Ük-Q…RG¹ îC=Ü먓‘JKKIII¡´´ÔCx())A¯×»|Ù’¹! .ôV­ZŸqãU‡Fâþ $øÚ>ÒòiVV555”——»„åwyy9‹-r-5jT£mh¬OÅr¸(Ï2¾zß(up°Ü,„È6;êŸ&wè ë.@,Y²¤ÁöÞ•p ‡ªpøðÃý““ÃáÃGèܹ3f±}»LïÞ$IïW°JǺ®#55•Ï>ûŽví2HLŒãœs⨨0aµêY·nŸ}öƒ¡CeãÆ5ºÂ<Uíñ~�òEYYeeeìÞ½Ûçú{î¹§Yo2¥Q¯<Ø–––6xÀU€•í"Y^áÏß=×Ò±‡Ùd"3³ &“‰Ûo¿¡C‡"˲‡YYm1›Ì¤§¥»n”a‘Œµæ¦9}© ƒªª*¬V«ßž ƒ£ÑèñЊЌC‡öø\^]m¢S§ž¬Zµ€²²"t:=*•ÊeOll"[¶¬eéÒ9Lžü ?ýô-jµÎàNfÙvïÞÝ»w“™™Ibbâ)Qù‡âŸüü| n³jÍ[ÄÇÇûl´7gÞ†{wy÷ù#”Fª{cþdÄ"4¸ë dSsæ†pb<99™ôôôUïû+X;÷cc}:jÔ(Ö­[Gyy9ÑÑÑÄÇÇOFFUUU‚ÃÂ… ÉÊÊj’Øp²âÁ[hpá.0œ õ®@ hE"ƒ{W±@ã°"ý ä~.w9=ÊvîË¡  €ÜÜ.TUVðËnݺ«Ø¾]9!ú³Ç›P»Ýù³=>¾-àT~Ÿ~-ýúõc×®]οßï¢_ßþ.Q¦¼¼<à›•HøÒ۞ǻgžYÞ,ö„ZuïÞ½Qñµ{÷n>þøã€½k¾Ô}_1•œœÜ@hPz7¸o©Øå~KNNv l';öM&999˜ÌôdPeßöíÛ;•ÓO§Êl¢Cj{uuu‹ýpÊÖÛ÷ÍéË`÷‰»À`2™ ’$aµZÃBñ¥2<›éÓ—p÷ݳ}v¥½çža·×qå•70xðhŸþmji Á@‰µGy„ÿûßÍkìñ׋AÙ®]»väåå¡×ë=ÞP6w=ʽè.0xçþl¬=î¹<\!Dù«ˆ"Š€Ú¹!!\Á1½ˆB»}$}:jÔ(¶lÙâúíî¯-[¶x………¬X±‚n¸!b>ml½ÛØgs÷8ö•“åf@ D†ÉÅ×\sˆ ÞÉH9—{ÅÈ÷dêª|êǘææv¡¼¼Œn]»q¢ø8¿í•éœë”„X^^ô!ÉÛžHù299™Ž’˜P`صk'K_šÍ9çÜÉ–-O…%’„ãKö�Íj¯ –|MšäK(𷯻ÈÈ._“…ùk¼øŠµPJû”‡aïI‘”ó56ö***ü>ŒÏž=›iÓ¦5XŠÐÐ\±¯R©HJJªªÈÈp Ê߯¿þš¾}ûº„ˆ¬¬¶T™ªè˜–F•ÉÌ?þq[¶laÈ!TTT49ö•íœ9s̺ïîÏÆÆ~¸¾ôëá Á„__j ç>Ù±Ã9Q£‚ûÿ!ÐX]_s1¨B¾OüMÔæÞ½:¹¹¹×ÇÇǻάÛ|(±öðódÉž|òÉF5#‘÷>ì|5J>L~~>Ó¦M h_¤ê¡pò¬{Nõµ} ¹3“gÝó¦²]RR’Çúòòr1™LCyy¹‡À¦ÔÍ™¼¯#З1�WC8Ôa;‘|.t¿¿šcûHûôÒK/õéS÷åŠQ^^κuë|öhˆ´OÝëá ôXP|­Ä±ûrå¥@ Ü,„Èà3Iùû”SsŠ ¾*ö@öx+¨�Ç‹ŠÈÉÉ¡¼¼ŒŽ;r¢ø8Ym²(<Vè|%y÷™¡ÙãM ®kÁ|¹o_9çœP`P–$&&RYYé1›u8¶7Æ ÙìñÕx÷ço•JÅúõëý–ƒÅbq5˜†îóm”¿Ê4ü=xH’äóš}íë-0¸¯÷žÍ<œØw?†?{”òŒ34ò•zKǾòe “ÉD»œLf™™™˜LU<öØc :ÔµÞ9¤¢Šö)§×ÏÉ‚ÙTÅk¯½êjø45ö}•íìÙ³ÉÏÏwͺ¯ôŽ3z$IIίˆLŸ>½I±ª/ýÝ'îs0"HhP"•ù!C}Ÿ4îþQðî µ{÷n×2w!ÒŸ ±{÷n"Xà X¬ýóŸÿt !LJJ¢¼¼<hQâ,’y?//1£Gòå×Ûý6FsrrÈËËC£Ñx,o{Bͳ 3fÌpÍ¢ïnwÎŽ„=„mï8­ªª"!!òòr—À ä[e¿`ñÜÔÜàm³òû¹çžóãÊy僉>á6ŠC½¿»}8DÒ§þü4xð`6oÞ 8'ŒT„†¦ú4Üz·±ÄÅÅyÄ»?±*œXBdh�[2iøªÔýÙãk]NN555tìØ‘Š²2²ÚfQx´¬¶Yì?p/¿,aÀ€TW²¬¬¬ ú†¦±3ýóe§NITT˜xì±Ûüã•W6Ò¯_ž{îMŸ6…c{cí™tïuÍj÷ïåË—7è^,‹‹‹\Bƒ÷öË—/güøñƒ½E{üñÇ]u×ìkßéÓ§»®ÊþM-¯Y³fùÝW¥R‘àZç=)šûq*++=®«%b_¥Rý! T™ÈÌÈtëÉPå!08{2da2›HKKÅd6yÌÍPUUñ<¢ˆ3ÁfÝŸ>}z£c¿1¾ôþ­f³9lÁ]hP«Õ˽ÏÎ}r2ë¿}Í×âkYnn.Z­ÿjÓׄf¡úGù¿»Ààý,D:ïOŸ>ÄÄDÞ Þc°fΜé÷-x¤ë!_C7e[e>¨@½+µ§²²2`ƒÒ„„***\åªÑh¨¬¬$!!ÁuœæÎ þÊëÞ{ïå£>òy¬-[¶0xð`ŸB¶¿s‡Ó¨ ÷þjÌý*‘ô©7 ,pÈ!¼þúë |ÜŸ†[ï6%Ïz÷\Ô+&”Xq‘Á߆pñ~ '©ù{ÓŠ=••äævùC`8æŽ=Fll¿ýö|ð;—]Ö1¤‡£¦(³Ál?|¸«Uß`Î÷ýúõwõ§<ãK_öLº÷:/~·Yìñu •JEYY+V¬ðüqðàÁBƒ/Á×DŸþÆßú²ëñÇ'??ßCdð~°ôwÝʃ¥w¯‚Æ–—bK°ûÂ{¨†û>ʺøøxŸv5wì{ôdpûºDFf¦‡À üMIIÅd6Ó>5•ªz!âÍ7ßäšk®i 445Ìš5+¤Y÷•7FM‰ýÆÀÊÿa@£Ñ4J`ð·SîwV¯^ ÀÖ­[Y´h{öì¡sçÎ8p€ììl¢¢¢�øþûï9묳�øá‡èÙÓùÕ‰ŠŠ l6›ÇDtá䥡i¸„êŸ|°A½èn³¯h¸up¸±Ÿ——Gbb¢ß1Øîs (ö5—=þr¨/âããØãÞˆÔjJnåÚ•|ämƒòBÃ×lý‘Î ¶+--¥¨¨ˆI“&5h—––rýõׇ]¯7×ýu2¿TªO7oÞÌž={<ü¹yóf† ‚ �<†Õ„*ÞœÌçw%~}Mòèoy¤bY ü‰E%IøŠàNïÞ½éí6àÖý•¾ð÷% _“ÔxwËôg/…97· ••Ud»õ`8rôÑQ~߀ŒŒtµý¹óg7º®óeÛ¶Ù¬[·©¡Àз»vî¢_ÿþ®!°"`åŠí±h6{üí;iÒ$,XÀòåËCª,•Ù¦ÓÒÒ\ŸnT¶?~ü8eeetïÞ=håçÏ?S¦L!??Y–]ÞǪªª 8ã²Édò˜ÝýºÂ)/E,ð÷öÔE`tíîv)Û6gìggg{ …Èt›“Á\å«'CÛú i˜L&ÒÒÓ¸ãŽ;¸å–[\]û#™G™ußWO¨Hçe¬6›­ÑƒZ­Æápxünì}òG®ÿc.†N®gëÖ­�lܸ‘­[·òî»ï2yòdÀ9ÌiÓ¦MŒ9ƒÁÀæÍ›]"î]»8xð 7ß|sÀûÄŸ† p˜‘¯òr_¦4¼[ýmªžy晀|||¼ÇÛB_õ[¤ó¾òU†¼¼<òóó þ¼æ°'P¯B_¹Õ}Þw{æÎëZÞTÿ„?Þ<÷aÞõEKåïs.X°€®]»R^^NQQlÚ´‰!C†¸¶ËÈÈ ¨¨ˆÕ«Wsýõ×7*ö1tèа®©9‰„O•ßC‡eèС̟?ßÃ_ŠÀеkW×ýäîƒÆú´)Ïœá¢Üwî=¼ïÇPr³@ øóѨ)^ÃIx;vìù_s(Ⱦp m<cL4¿ï?@rr’k|u¤|ÒØYŠ«ªª=ú1ßÃ÷î ú¾\wÝ$¶o_ܬj¼?{€µgþüù®Ê9œÏŒ*Cmm­Çrå»wïfþüùòò¦?ÿfΜIUU&“ ³ÙŒÙlv ʃ¦Ò÷5|!T{B±ÅÛ®`Û²«9bߣ§Bl¼çïøø=Ìfqq±,¯ò\ßy$''ÇãaÍýaJ¥R¹rH$&ëk¬/[ª'C¸¾T†­[·²téD×òŽ;bµZINNæƒ>à“O>áÓO?¥¦¦†uëÖQTTDEE…˵Zíšœ7’e ï<¡Œ«ö•?µgîܹŸwn®òpý3cÆ *++ ÊdoMõs¸öxϯ`2™\ÿ”<« »òn}‰#-?‘~îŠÔ×%܆¤¤¤ Þ1cÆx Š0ÉgFwü Ûh šã‹“'OfþüùtíÚ•={ö4Z[<4Vph®x§ž“Á׸*ïßá ·ÏÞ>ÏåëÁ9{œßXmtrS¶7›Í~¤=x7Å—J·6ƒÁæwˆD¿~}=†&¸ÚÏ×›®¦úÒ—=Ê Ía2i—;î²¹n1F£Ñ%0¸ŸW9†¯Ï`*‹óò–O–eXQ®I–eWýñÇ÷cî] •ãyÛJy¹Û¬›±ò ¥±ž——ОHž»@Pp¸€¸¸8öìÙÃí·ßîs¨DÛ¬,~üáGâââøß¶ÿÇ·ßî1dÂl67)ö½ÇšzÏÇàýVH™—¡±±¾îh¾ž ½O¼Y´h‘Çï+¯¼²AãÚ]ä�=z´k› /¼ /¼0è}âÏ?lt/Oïm”Æ‚û[Iå÷Æ4ÎBõkóæÍ|÷hð7¦º9ó¾û¾æ8q¿[Úž3f¸zZxM 4¼Ãl6#I’__657ø²'P9žŒÜàëz| ÞÛŒ3†U«VQTTRãÑ;ö±bÅ ú|÷îÝ®z>ÜO<6'áæwñQ”¿ŠØàÞ‹!Pî ×§¡Ö»?wéò1ÎøõWÎÿ9ôí?<mGDbY üD#_¸¿‘ _ÂD01#=±±±yäÞ Õ…pºÝyûrëÖ|.º(€¥Kg{ ý¸îºIõâÌÇpoØGÒ—'Ã_û <˜ùó瓜œLff¦ÇC‰ûü îìÞ½›öíÛû\—™™éÚÆ½ÑìÁÉý¯Ò(P©T ³î"—"øš”Qù›——Ǽyó|Š ¡”—"b¸ok2™<ìðÆb±ŒOE`˜7ožÇ¶ÍûYYY®†Ë­·Î§[·®ÔÔÖ`¯³ñàƒ—1uêc „†£……<öØZ┲�� �IDATIJN¢àÐAþïÿnÃd2¹†L„:Õ_ì{ 9î³îûbÌè‘]Û{/†âËÖÖ“!Xƒ8œúEù¬_°o«‡3Ñc$p+©LéK`Õ?Þ±¨7S°ãE:ï»çr_ñ¬ ;÷kŠ=Ó§O'??Ÿyóæyäܸ¸8×s‡»Hã.4¸çB÷ ,#‘BëHø§)¹ÁEEEùã@½u‰U_Üpà „¥žoi"éÓ¬¬,WOw¡k×®M~þŽD½«Ðþ»ïˆ¼�+W®dܸq�r{¸±ýw>Å+V0nÜ8dY沂sZ]¯ @p ˆ ¡$¼pz3x÷bhÊâ÷vK–,¡wïÞìØ±ÃãïO?ýÄùçŸÏîÝ»éÓ§Û¶mcøð�œSoúb¶»‹Þ ÈPì w\¡÷1·nÍÇh4rÎ9wÖW ÊWV¸†$¨T*>]¿’6m²ê»››Í—'ÃïuʃÇ!C\ø*•ŠöíÛã÷8ÕÕÕ>wã7òúë¯7é›Ôî¿qÈÊüþ¶Sò¡ø+¯[òóó#R©7F`hlì+ÂÁ£®")1‰ššÒRR°ÖÕòÎÛ{¹êêÜ=.üŒšê’’’¨«µræ™gð¢O¹{âÅ®íµ=PCnÖ¬YÄÆÆz̺ïÎáÇùê›ßx5G9™s2´Ô8Û`ãˆÃÉ#6lûüûöísýß×[É={öpß}÷…íCŸ‚ €Þûz×S‘ÊûÊ2÷Þ}î‚“{œ{ïënS$ìQEøð¾ÇæÎ‹Z­&??ße£¯ž Mi@†#ò4%F›+7xÇ~§N\_j(--eãÆØív®¸â T*ï¿ÿ>àœ(ÕÛß«W¯v5¢/¿üòFç†7’šš 8‡1*õ¼ÝngíÚµa )P>¿ øL"íS_ëÖ¬YCaa!555”——7ȾrE(ç äÓHÌeá~Î;ït>ë)BC0Ûüm/@ˆ M®$ƒ ‘8O¸q¨CŸ>} %¡Úi_Z,WãÞ×:€6m²øï’y¬_<3èƒfSjN¶=ÿû߃ á–A c†êï Þ õ™3g|#;kÖ,,KDÊkÖ¬YÌš5 £ÑØä ž»Z"ö• ÉI‰Œw&ï¾³›­–””¬¶ZV®øŽq7ôr =¶–Úšjxp(/¾ð©iÉÔZ­¤¦¦0÷™ <ðà•>"Mið(噓“Ãyý{³jÍ[.qaÌè‘|õÍòòòšÜÀhª/Ý{" †F}ÆÒ`0„Ô“!’ת°ìSiÍaO§NÐëõH’äÑXpo¤}øá‡ 6¬Ùü¨ï..ùxCõO ÞOÁîüüü÷€J¥ò)Ö‡S^îƒ"(._9J2i6›ü ÇÇMé‰í›ûþøRƒò¦„„Ÿûzç€ãÇ{”ESQ„E`hÌ9¬V+€Khh±3jjj�\ƒ;÷ÝwÏ>û¬O¡¡9ä¡ÛýþW„ƒanïk!6Bdš¤B™U¹©=¼¨ëq {;¼ÿ* ½ûî»noã'ø±+{Ü Öu-T_º7 ½»jZ,ŒF#ëÏdÇŽl~ù bcc±X,~»u6Ö—-mO8\}õÕÍ^!‡:«»?"Ø5{7š|Í:Nyùë½ÑT_4Wì›L&ºuëBum-ïÔ ©))جµ¤¦&c³ÖzôdHHˆ#19™^ø‚ÔÔd¬V+i)ÉX­µœyF7×vîâS$böìÙÌž=›iÓ¦¹æ^ÈÉÉ!//Í}†Ãápuõ÷U¶‘ö¥/rssÙ»w/z½£Ñ¶Ð`0P«ÕTUUa³ÙÈÍÍõÛxõ>q'ÔOXîÚµËgõ}ûö¹Ê7Ø}Il6ûöí£S§N.Aù žsK„ãŸPìöÕÍYi8»7²•†´"25&ö•]0æÍ›ç*3EðeS¸÷âìÙ³?†žù›4OÙ×h4zô\$ÉU?ùê]‰ÜÈwþ>ã×Ò¹Áî½t¡!{÷îm 4DJ IMMÅn·û<G ¡Á}ÎEhh ‘þº…"0 6Ì5ƒ"4„"J†ãÓÆÔ»þŽ©ÄßâÅ‹;v,õCCýŲ÷ö¯ÌkÑÜ,þ$"C(É.Ò=BéIàkïÏi†ƒû¸ÎæèÊØ˜ñj¾¶Sœ6¿ü¿þü3?®{£ÑöèÖdOk¬ùÇWÏwá¥)×Ü”ò²X,ÄÄÄ4ºGCc˦1±GmM-i©)Xm5¤¦¤bµÕ’ššT/4¤b2™\ãß““’±Y­õë­¤¤&cµÖ8… ›Í%H¸7´"ûŠØàp8<–{ )ÛP}éoåÁUyPGhP‹ÅT`×—ù„åÆQ©TcèÓÓÓ™6mÏ>ûl‹æEPPz.hµÚBC¤êÐPïE%ß*n‹ÅâSèŠdìCiT(ó ø²©1öx Áê!_~h ÿ„s¿·tnð‡¯Ï=‡²}ff&‰‰‰ÍRçzŸ#Xo*e2gƒÁ@ttt£Î)ŸFGG»¾Ú¡Ø¢ Þy:RDú™S B­Óüm/@ˆ a?j´D¢'C°s…bb‡¿!Û¶m£{÷î|ñÅœyæ™ †V„cOsù2Ð[Aeò ùãºçÙóóϼ‚û/4òŸY"æË–´'T”Y¨[Z`ð¶YiÌûûW÷[„@]¿›Z^J·ÍHõhh®Ø7™LÔÙë°Ùj<z0X­VÒRS9Tp¸¸8Î=÷\âââ8TpˆgvÃjµ’š’‚ÕZKJJ*6›•:»­AO†æŠ}å*Re)#4DZ`p¿>÷tºuëV—À�ÎOXîß¿ßõ ˨¨(ž|òI�^|ñÅ_ PÞh*"CsûRA”®ÜÞË#•÷½EKï{w„ ~'7tßW8#ûá– ›šb"4„b‡ro*‚?!°¹ëE_ûŸÌÜàE`ðŽo„Úøo ážCNö— âãã]ó1”——óꫯíñ•eþ†¬¬,Ÿë[âÆãÇ+>}m²bY œ‚"C¨³†G¢'C0Õ?{ÍÁL`ðž“!Ü7eÁf)Õ—¡Ž×¬®®æÿÙ»ó¸¨êýà¯ÙVPDQÜDE\Rsï¢išei@&e©·ºv½•ݾ^·¬´ÔüYš¡Y×ë¾¢©i’"ji¨án⊂€0 ³œßtN3,à ΠÈëùxð`8s–Ïù|>s˜Ïû|>Ÿãêꊌßã÷3§ÍÞ·G^Vez¬ù'õæ›obïÞ½¥–ß¹sÇlò([ÿ—÷e³¢GÈ•lÌ¿ÿþûX¸p! àææf6 äìÙ³+<oK3¶ÛZ^Fê‚^™/&UQ÷ÅüÙ¶õŠ´…öL(DƒõQXXˆè˜^ˆ‹‹“z(|öÙËXöÿŠ E…ðöö‚N§…—·:vrÅž={——•JUåußˬÉËŠ>'% uêÔ\.‡B¡îæ–ümiˆÄÃ|NLYóËÙ³gC¡P //Ï,À ‚ôÄŸ²Ê×ÚëˆiñŠ ¦ÄXYËí•?ֈŧŸ~*•«˜?R ƒÅü±gzL?Ã%ƒB¦i²ÇumöìÙåÞ•-ïµJ¥*wHš=¯ å›Åå–†±U嵡,uëÖµ:À Ö;±1_Qݘƺ-µZýP{åéСC±{÷n¸¸¸˜>ÿüsxzzJ‡õë×Kß4 Ö¯_/lÍÓÊ~ç,«'¦L&+wž«²êxYë[ûÔ"bÁ¢‚‚‚2g¥­Ì—ñ‚kÏô<Ì—¦Ê¦Çžãúl9ï7{ÿøêWÁ¬ñû(8:=ƒ 2»ƒôí·ßJÁGEEY}ÉžÄ@‚øÙô1•¢LLéêêjö±wþT¦îÿ5"k¿?YÜC¡~}\»–*FF#5f&½Þ >Ù‰6mÛ ¨H ½¾H 0DDDXuw¹º{Øëˆi !77·Â9Ä�ÃСCɨ’w¡ÅÀ‚é8`ÓtVúXmÚ´PÜ#Jìš-.—[bKƒÌÖëfEݽ !‚ôY.ùûQ}©/YV¦iª Œ²fõr¨ÊkCyÁµ³gÏ–9äÇtn„’뇄„Øå<l=†éü ¦²²²zJ{~o¯¡?üð6lˆÜÜÜRSâòÊÌÕð0i·t½)뻊¥›òû&Õà ƒ\.·ø¸ªÂ‡žÑW«ÕZœ ÞôŸtuK=óÒÒ—ïŠÞ[œXh1ý•É˪NOÉ»QÖ¤G 0¼õÖ[øì³Ï¤FÃêÕ«U©´[“?å=5B&“aîܹ� ͸¾`Á‹yPÖ2{•—سBl”¹¸¸H1¶ä½ë¾““"""þ 4t6›äQ 0äååÁÉÉ Z­VjÄüãϧHˆë‹R€UuÝwt^Zû9:t¨ôe¾¢9Ä�ƒ½?'•=¿’=J,}N*ÊÓ ‚øÚ^ï6*š¼N&“ÁÅÅ………(**’‚………pvv.|±µîW¦ìLŸ.!–YyizØÏ¢ØÈ1]ÇR³°°ÐæÏâãxmŸ’R±.‰ë‡„„X Ö–h³µîØzŒ:uêØœ&{}¦mýŒÈd2éz �»wï6 8˜öt{8ØZWö;§\./÷zSÞ÷_kÖ·tm&"¬úça:s¬øÊZå}Q´´nuN)kfúµ”v[•L{QQQ¹ûªL^V÷ôDGG—ZÖ¦M鎀-çbmzlÉ›… –š°ÌÚÏš=ògÞ¼y¥¾œ‹¢¢"›fºwTÝW«Õˆˆˆ–¦†¢¢"³ ¡˜æ’ëåååA­V—[ßEÝyYr¹øûŠz2 :ÔÊ2-ßò–Wæs"6¶Ñ©Êº¦Õj¡ÕjÍb@«Õ– ²[›ÓÀ…­æÎ[ê³Z^š&Jž·Ô°Ôx®è¦Cm¸6Xû½Èt[kíÖÔ}Kl 8*àèïmâu�víÚ%½ÎÎΆ‹‹‹(³ö—=êÃålÊ£þ—;Ø|=d€ˆA‹ÄeYYó襲ººš6æMß3݇é?eÓ(iuKOI–.öÌKËé1ݶ2éyûí·-¦§¼/å},+J~ÉuDƒÅÞå%N¦gÚ³¢ä«G]÷¡Óé V«¡Ó餿K>K©á þÖétpqq©5×[?'ûÛß*L»¥FCe>'K 0˜öh0]nésR^þ >¼Òeëˆüy˜º&6œ‹ŠŠÌîÖ«Õꇪû¦Ý¡mÍñØ:FZGܧ½>‹:NZæìì\ayÕ¦ïöªûÖ<–ÕšºoÉàÁƒ«Í—c{^o+ªåþö·¿U*O+ó·í… 6åÏá¶Ö¯¯Ó鬮ËDT˃ âÝ®²þ—\VÞLKË­Ù‡é„>Õ-=ÌKû¥ÇÒ—E{¤ÇÖeååOeïöU¶ÎØ£¼æÍ›'õj(+ý¬û5ç:R>'öüŒˆ%k?'5å:b¯ô¨Õj³÷«CÝ7MSMû,òÚ`¿ºÿ8pdžš,}^*›§Ž¾6Ûú†ˆd0³jÕªjuÕ-=%YêºÆ¼´,99™ùúϼ¬ /ù9áu„éᵡ&Ôýš¢&çiMú¿KD/Ù½{÷Ì¡qqqˆ‰‰)õšˆˆˆˆˆˆˆÈŒ""""""""»`ˆˆˆˆˆˆˆì‚A"""""""²‹Rs2U{2‘]0È@DDDDDDDv!‹ŠŠâp """""""zhÊŽ;"**Š9ADDDDDDDE)¾x÷Ýw™D¹yóæU¸¯DDDDDTÙö†d Cll,s…è1µ|ùr«Öãµ€ˆˆˆˆˆ*ÛÞP:ò ½&þR«3ùðŠ®¬iDDDDDDTí-^¼Z­r¹2™ r¹NNNpvv†L&�Èd2éG¡PÀÉÉ ~~~èÑ£‡´Ÿrƒ )))ÈËË+7Ý»wg)=êÔ©ƒ'žxYYYÈÏχ P©TP«Õ��…B¹\¹\…B•JWWWdgg›í§Ü C^^Ú´iSæ{'NœÀÑ£Gh """"""z Fxyy¡Q£F0ÐjµÐh4Ðh40 Rï…B¥R µZ 777ëƒ ‚PüdË’½d2 Ф¤$DDD°4ˆˆˆˆˆˆˆj0£Ñ(d2œá¤..¡Ñh ×ë!“É T*¡R©àìì •JUj?rKÇY˜þˆÝ#œÑºuk$%%Ùí¤är†DÔ/õº<n. xÕQ±6Ùé¼ � @–›®#——N°Ø“A 2”O��­[·Æ‘#GÌ&z0åáªDü硸z«�� Ó xeÎÙ2×U)d˜2¦)~HÊ4{]R‹&®øWT�ò5BüÝ0ÿÛ«8”|Ÿ5‚ˆˆˆˆˆˆ¨’Œ‚�£ÑFƒììl™Å �H1›‚ bW‰’ âââŠw T"((Èb"‹tFDÍL±Ë +ä2Ì}=q;nK¥B'•œµˆˆˆˆˆˆ¨’A€Ñ`@jj*òòò —ËáââgggFèõzèõz•h(7È ŽÇP*K¯Ò©S'´lÙ‚ @­VãâÅ‹6%¼ž‡³_ ÂäOÎ�Þ ÄæŸÒñÇ-M…ÛviSõë©°ÿ—{Ò2½A€þÏhÊð'๾øãf–n¼;÷Šà¤’ã˵Ʀwñòp?œýãþ½ü Q1ÃC >1«ãoKëoû9ã‡6Æ©KyØz0Ó£ð À€.¹„Ü|}™Ç"""""""ªiÄ^ ¿ýöd2<==¥yL§P999ÈÉÉ“““Ù0 Àœ ¦=Jþ8;;ÃÓÓ^^^¨W¯ž4Idy” ^ì‹û¢] wÈå2øxþñ𪫲º'B5Î\~�¾ô1Õ*9FõóÁËÿIAÂÉlŒèã�jâ_g¼øï3ðóqFpSW¨”2Lxº1¦~z¯Ì9‹'»xÂ×Û 2�-š¸ÀÍY±3N#´¥F=Ù¯Ì9‹;YEèÖ¶N¹Ç"""""""ªiär9Ο?¥R ///¨TªR�P©ThР<==‘]*PᜠåMæ`šŠ‚ ‚�ääë�…EƇ;q™ %×½]]¤ejѸ ¹ GøÁÃU ÿFÎÒ:…F|¹ù&¸•^ˆúõœàé¡Â75¸›UÜá—³¹èÙ±vÊD¾Æ€ÿî¹�ȼ¯ÃšÝi(Ôq÷žž*tnåQˆˆˆˆˆˆjqH„‡‡‡Uq€ºuëB£ÑHC'¬ 2”7'ƒ­AƒQ@üá¿&pôªkþD™ '~+C‹N!pv’K‹¡=êãÈéû((4 +W‡#gr��Z“€†Á(HÁ 1µ®Îr³ ‡Vg„‹Z!F,Q*d勈ˆˆˆˆˆ¨&ñöö†»»{™±²Èd2øúú"55Õ<F`)ÈPÖ#,KþÈd² ƒ %jðpS@&Z¸¡cˆ‡ÕÛþr6Y¹º2oy,%M:ãâµ|œ<Ÿ‹”?XÜ×ñ³¹hÙÌ *¥ rÐ)ÄGN[÷„ [EDDDDDDT])•Ê2çd´D¡PÀÃü=oqâDzÆ_”½0m»‹_PhÀ‘Ó9X;».]ÏÇÙ?ò­ÞV§ðþ²Ë˜ˆá^ÈÊÕ£U3Wì=vE:#¾ÿ! kç´Ç…kÐñþ²Ëåî+_cÀº}wðùÛ-!@òÅ<üqKµóCØz,""""""¢êªnݺVÅ�JƼ¼¼¬ 2ˆ½*‹!‚Åž yz xãD©å³Vþgµ…Zó�ÅßÞú @ñÐñuIçSó1îÃßQÏC '¥éÙÙt [fÀE-Ç¡Ì}ýû«+Òë-Ó±íç ÈeÅO©(kýعg¥×Ë6Ý´x,""""""¢šF¯×K¤´e´BÉÀD…?Z³C[‡KˆJlu?O_ærƒQ°©Ño4 ¨lJl=Quc©ýoK›_ά$"""""""kY :”Û“¡nݺضm4 <x�­V ƒ¡øŽ½B¡€Z­†»»;\\\ШQ#æ2Q-Wn¡[·nÌ"""""""²‡K‘](¹óÃ+º2‡‰ˆˆˆˆˆˆj öd """""""»`ˆˆˆˆˆˆˆì‚A"""""""² ˆˆˆˆˆˆˆÈ.d """""""»P2 ˆˆˆˆè±Qp8µ•ùP–ö‘€{}æ9ƒ DDDDôø8µXÃ|(KTÍ| "‡bˆˆˆˆ?!}ˆ(æ�$­.d>Q•`ˆˆˆˆ?Q¼koŠA"ª"œø‘ˆˆˆˆˆˆˆì‚A"""""""² ˆˆˆˆˆˆˆÈ.d """""""»`ˆˆˆˆˆˆˆì‚A"""""""² ˆˆˆˆˆˆˆÈ.d """""""»`ˆˆˆˆˆˆˆìBÉ, """¢Úì~A!¶&Ÿ,Î%²Cê»»²P‰è‘aˆˆˆˆjµ­Éç³jÛcq.qÑO#ºG'*=2 2èÛ2�QkdÚW'ÂÁ ©,D"zäd """"ѱF÷`ˆªNüHDDDDDDDvÁ Ùƒ DDDDDDDd 2‘Ãüpƒy@T›0È@DDDDD3éðQ2ó¨¶`ˆˆˆˆˆêÝcÀì“Ì¢Ú€A"""""r¸~¾>Ï| zÜ1È@DDDDDUbbðé)æÑãLÉ, """""{ùî°Ò¤ÇÂó÷ß9 䣚ə̯‡Ù ¨ïÌ| ê…A"""""²›•烷-¯óé) [ ,Ma~=Œ¸¾@tKæU/ 2‘Côm ½ Ì—¯yª tiÀ<ªŒÕ+ä=* 2‘Ýõm ü4 ü/šW¼ÌYQ`ݼøïNÞ̧Êbª+ˆˆˆˆˆÈáœÀ–ÁÀ¦Ì ¢ÇŸ.ADDDDD·v� Dµƒ DDDDDä0Jyñ…#˜Dµâ3Ï, """""GYÛŸ<Õ&ìÉ@DDDDDÃ�Qí Ùƒ DDDDDDDdœ“ˆˆˆˆ¨†Ò|wnfç�bVmC̪mhâYWƒò×µ­¼:øï$`~àZ™GDÁ Q $2Æukö6{o\·öP´lÁ4È��F�.uAp`ÂþúqäajwÙÿ•¿ÌãÚM&“U»41È@DDDDT#–B™ËÆGtÀG?˜ÆGt€àS¨×Ⱦù×Ý_rx«T0ùͰã3™y\{Éd²R×…êt`ˆˆˆˆ¨:·'Me½nÙÐ}Bš!áb* �aÍ#ÄÇ F�èú°çãâ êø-ûF£clü³ltü¡joø+ÀÀ<®]A…’×Óe%ƒ*àÀ Q .”ü-¾Þ ®�ž k£Øò ýW¡ÓH�r‡·J…? l�;ŽÑ)ˆÃ<®ñwÉ@CEï1È@DDDDT‹ ¦¿AÀƒŸŸ¢¢"i™ èZß ®ÚŒô÷óBjjêŸ{ª ¸µîœš¤åŽSxÀ= PQ%‡«•2oçqæ- Õ‰ùQ› ¦AñG¥RÁÝÝîîîåöl¨Ê`ƒ DDDDDÕ,¸`X_§§§C§Ó¡Y³fen›³êc�TŠO©_pŒ€BU%çp80 €\¨ä,SGx'xk� ” óƒ€k×®!?? 6,˜¯!UhàÇžˆˆˆˆ¨´y: ·H@ZV²òµhâ߬ü/örò22yñ=¶š5k†¢¢"äää”êUÕØ“ˆˆˆˆ¨(Ù0øè7à?'þœØ 7ïÄF@_îd–+�CÕžQ�´Þm'ª*HMM…‡‡äry©áUÕ›!M""""¢j`–ÿ|TƒN‹g™ODd™8_‹Ñh,ÿºâ` 2U¥æc ‚ hëÉ<""Ë ƒ`0 4”¼Æ8‡KUâG£Ñˆv0µ­Fƒ©©z¨Ì"²L¯×Ã`(%—Ëa4!—÷-¨ª‰d """"ªFÄ@ƒF¸È 0µÌÀŒ!¢ ‰=Dr¹¼Ô\ Žž›Ã%ˆˆˆˆˆ!1¨PòÇh4J?âIªYÖ¬Yƒ•+W2#¨ÊˆAñ§¬k‹£1È@DDDDTM”lÐëõ;æèÑ£áììlöãååUmò䥗^ÂèÑ£kdyîÛ·»wï¶*ï]\\„AƒaóæÍü0P¥ˆÃ%EpAÄáDDDDDÕ(À ¾6¼Í´û³#„……aÉ’%Òßâîêà©§žrhÅZ»víÂÕ«WñÆo8$ï³²²ššŠ5kÖàÅ_ÄG}„¿ÿýï4mTó˜ö`0A¼¾Tż 2=ÂÀ‚éï² ƒÁáÃ%<<<йsçj™GÏ?ÿ÷ ó�� �IDAT|µHG||<.]ºd÷†|ɼ?~<ž{î9|ðÁ=z4üüüYÚ¨æ1.!“ɤ@ƒ\ Ž 8p¸Q5 :”|¶}vv6–/_N½^/ýTE�";;}ûöÅüùóÍ1£Fš5k¤eï½÷Þ|óMlÚ´ ;wFÆ 1yòdIëF|øá‡ D³fÍ0oÞ<³c½÷Þ{xûí·±~ýztìØQêY!./¹ÞЫW/4oÞË–-ƒ^¯Çßÿþw4mÚ#GŽÄ•+Wl>vbb"úõ뇠  |úé§Òû_|ñ6mÚ„'N ,, ÿøÇ?��Û¶mÃóÏ?fÍš¡{÷îX¾|ùCç¹Z­ÆÇ N‡U«VUxœªLÕ¬ ã.Á Ñ#,”ü-HHH@¿~ý°{÷n(•JéG¡PHÁ{ÐjµHKK“~´Z-�ÀÓÓ¯¾ú*fΜ‰Ã‡KÚË—/c̘1Òö×®]î]»°xñbL™2Ï>û,V¬XÕ«WKëÌš5 [¶lA\\.\ˆ… bÇŽÒû7oÞÄ?ü€%K–`úôé:t¨´üúõëfëíÝ»|ðÞzë-<ýôÓxçw0fÌ‚€¯¾ú çÎÊ+l:ö¾}û0eÊ<ÿü󈎎ƌ3píÚ5�@dd$zö쉠  ,Z´&L��ܸqýúõþ}û0lØ0¼óÎ;ÈËË{èò ŸŸ.\¸Páqª:mT3‚ %ƒ•e]k…Ã%ˆˆˆˆˆªa°áêÕ«7n4 Þÿ}³®Í2™ *•ʬ§ÀÃHJJB`` ô÷Î;1`À��Àرc±wï^DGGcݺu˜5kvìØµZ-¥W&“¡^½zؽ{7Ôj5^xᤦ¦bÏž=˜8q"´Z-/^Œ™3g¢oß¾�ŠŸ¼°~ýz 6L:®F£ÁæÍ›Ñ A‹é-**–-[àããƒÐÐP,[¶ m۶ŬY³��{öìÁ¡C‡¤�Š5ÇÎÌÌDBBBBB Óé0þ|8p�111€¯¯/òòòЫW/i›É“'K¯§NŠY³f!11C† yè2iܸ1ÒÓÓË<Îÿý§ø8‘O y$i£ê«ä\.â#,«"¸À Q54L›6 jµ]»v-µ®L&ƒR©,w?¶Œ·îÓ§âã㥿 …Ù~/^Œnݺ¡_¿~xùå—a–¹\¸ººJ½0°lÙ2F\½zùùùøþû綾/_.5ß@XXX…�èС|||��®®®�€Jﻸ¸HÃH¬=vÏž=�P©Tpww·*ˆsøða$$$àöíÛ�€ÂÂB»Ô…ÌÌLôìÙó¡Žã¨´Qõ2”÷èʪ˜ô‘A""""¢j\_ß¿��4iÒDê5P’ 0ÝV§Ó™5&T*€ânÔâð q;ƒÁ�­V ½^o°EEEÒ~ ¡Óé ÓéЪU+‹ç"6îÕj5´Z-d2™´ì©§žB»ví¤uëÖ­ëð¼uÔ±A@tt4Ž?Ž &`Ô¨QX¹r¥]Ò|ïÞ=ܸqÁÁÁegù×+YÚ¨úÊ"aZ7l`ˆˆˆˆ¨šÎ;'-óòò²º›³N§ƒ prrP<T@§ÓA¥RA¡PÀ`0H]©U*•ôx;Ó®ÕeígÊ”)hÕª^{í5¼ûî»èÓ§Z·n]*íEEERZ;†-Z@&“!((NNNÈÊÊÂÈ‘#«4Oíul™LfÖ³áܹsX·nöìÙƒ>}ú@§ÓÙ-Í‹/†³³3¢¢¢¬:NU¦ªÿ5¤¬É9ñ#Q-–••UªÑP1€PrîqøBÉF©8ÌA Fܾ}iii¸yó&nß¾-5Lׯ_`Ù²eøÇ?þˆˆŒ?¾T×ûcÇŽ!!!r¹ñññøùçŸ  ¸WÃÔ©S±víZ¬[·………ÈÉÉÁ‰'ž—ö:v×®]qêÔ)ܽ{�àææ™L†‹/"-- 3gÎ�¤¥¥Ù´_qÒÍ7nààÁƒ˜:u*,X€yóæ¡aÆVÇQi£šd°åºÁ Q-h$´lÙRúûüùófƒÁ�N­V+ýèõz³Æ…8´A $TÔØ'~ D@@�‘””„ÔÔTLš4 _}õ|}}�qqq¸sçþùÏšíC|죟ŸÆŽ‹gŸ}VzÒ�|ðÁˆŠŠBll,üüü€E‹UIžÚãØÃ† C‡Œ)S¦ Y³fxýõ×1mÚ4´nÝJ¥'NÄ{ï½' u±†˜÷-[¶Ä¤I“––†ƒâ•W^�«Žã¨´Qͼ~”5D¢*É.\(DEEaãÆˆe©=¦–/_ŽÑ£GW¸¯DDT£%­VÇ�Qq@D´U›¬:’Œ˜UÛý4¢{tz$ £Ñ(=zN¯×C§Ó¡E‹¸ÿ>�`åÊ•xùå—Ͷ»ÇËår¨T*èõz³ùÊ"g· =®Òôјí§¤—^z ظq#222àââ"í¿ä>ôz=nݺ??¿r'®t{ûÎ;¨W¯œ�999P«ÕÒßiiihÔ¨‘ÝÓnzƒ�ܸ•†¦~ =ú´QõÖ­[C­VC¥RÁÉÉ …J¥r¹ …r¹\êÍdê×_…‹‹‹´ž¸]Éצû¯®®®R{ƒ=ˆˆˆˆˆª¹\Ž?üPúû?þ(w]±¡`Ú`(kˆ„µ*³Óõ4h�wwwé<JR*•hÖ¬Y•ìul___©ÑO iú·£ñÖçQ¥ªG5DÂìúÅb """"ª~ÆŽ‹#F��¶nÝZáú …B ˆÃ'A0Ja [÷£×ëѶm[´oß^zßh4B&“I½ˆ¨öàÓ%ˆˆˆˆˆª!™L†/¾øO<ñfÏž N'us‡3Èår³Þ*•Jz2„øJ•J%mc:oƒøD ‘Á`öoi?%Éår¼ýöÛ�ЇcˆûŸLAD 2ÙìÈ‘#ÈÌ̬uç]¿~}ôèу€ˆˆæé§ŸFpp0”J¥$P*•e6øÅƽ¸žé:âøé’‚²†XÚOYAµZmÕºDÄ ‘U233qëÖ-f‘ƒ”5Q›¥uíuLG¬KD/ˆÈ®Ôj5êׯÿØŸgff¦47cˆìª~ýú>|øcžÛ·ogÏ """"¢øt """""""² öd """"ª!Ξ=ËL @o”r@Á©0èOmÚ´©é`ˆbÍš5زe òòò¤eÍ›7Ç›o¾‰Ö­[WûôÿðØ;w.®^½ŠN:aîܹhß¾= –ˆˆØˆ GŽAªÎd "‡?~<”J%^xá�€¯¯/vìØggçG𮤤$ÄÇÇcöìÙ害aÃŒ3FúûæÍ›HLLÄéӧѤI.Q98'9Lxx¸ôºcÇŽ<À‘‘1cƘõ®(©  �Ë–-Ö-[püøqDFF�²³³±~ýz*‘ìÉ@DÕBnn. <==-®—žž£Ñ___›öŸ!C†àæÍ›×;þ<V®\‰ÀÀ@�ÀêիѰaCèõzddd° ˆˆˆˆˆ,`ˆªÜòåË1eÊèt:¼þúëÐh4X³f �`ذaX·n”J%Ö®]‹‰'¢  �Æ ƒ\.DZcÇ––†ÈÈH|÷Ýwøïÿ‹É“'C¼ýöÛ˜1cbcc±qãF�ÀæÍ›1bÄ|þùç8þ<�`ãÆ8yò$¾üòK´mÛÖ,m;w6ûÛËË Mš4Ajj*z÷î]ê\®^½ŠU«V±P‰ˆª‹Ë‡ �âÿüm…ÃéŠ> \L®Òä ‚ ý6f?z½ƒz½·oßÆÐ¡CY¾9¹\™Œ“,ƒ DD6‰ÅÒ¥Kqúôilß¾7nÄðáÃ1bÄlÞ¼?ýôˆ±cÇbÅŠøé§Ÿ˜˜ˆ¤¤$ uëÖØ¹s'fΜ‰… bþüù¸víA@½zõ°téRlذÁì˜3gÎÄ–-[pæÌŒ=‹-²*­éééHMME÷îÝ1`À€Rï=zÿûßÿX¨DDÕÍÁ•�VZ·nH' Ï¬\¹+«8È`‹>úˆåú¸7ΔJ( f1È@Dd+'''�@Ïž=Ñ­[7Iï™i×ëÖ­‚ƒƒ¥×W®\Áš5k°páB¨T*³}«Õj»¥sÞ¼yhÔ¨6oÞ,¥ÅT÷îÝ1xð`¨«W¯ÆÁƒÑ·o_DEE1CˆÈ±.W='�A½¬Úäpú¬¼|&L@/÷*M®-=”J~u\‰eNÄ ‘˜Fí ƒÅu›6m �ÈÌÌă–¦“'ObÓ¦MØ»w/5jTæ:>|8 °DTT¢££™DäXI�2WëDXyÍ9’Œ•—·¡W¯^ˆîѩʃ b€Á`0˜ŠŠŠ Óé ÕjqöìYÞᮢǟ.AD5ŽØ£@¡Pصׂ©ŒŒ üýïÇþýûÑ®];�@bb"._¾Ì """"*{2Qs÷î]�@HHT*•Ý'HÒh4xæ™g0fÌœ;w)))¸wïæÌ™ƒS§N±�ˆˆè±tãÆ ( 4jÔÈìëš5kPTT„ &Ôº<)yî¶æÅ£È;Gó?þÀêÕ«qùòeŒ3O?ýt•Õ?ªyØ“ˆÆtn10 *,,�èõz�€N§“Þ3}-:wî<x�N‡ü�0mÚ4�€ŸŸ� %%………Ø·oŸ´]ff¦ôÚÍÍ �ðûï¿ãÌ™3X½zu©ã <÷Üs8|ø0¦NЧŸ~#GŽÄ+¯¼WWWxxx°`‰ˆè±²cÇDDD }ûö†···YP}ß¾}ؽ{÷#MãèÑ£áìì gggx{{£sçÎøæ›o~Ü’çnk^T´¾#ÎËÞåe0УGxyyaÒ¤Iå!uTý#ˆˆ��ß}÷Þxã éïäädDEEáìÙ³X±bΞ= �Ò“#fÏž-­»|ùr\¿~Ýlžžž9r$‚‚‚ššŠiÓ¦!&&�0}útøøø`Ïž=hÚ´).\(~fYóæÍ±uëV\ºt �ðÒK/(~DÙ'Ÿ|‚gŸ}¶Tºß}÷]ìØ±£Ìs gÁÑc¥  �'NDË–-qíÚ5ddd`É’%¨S§NµKk×®]‘€™3gB¡Pà7ÞÀéÓ§k|<ÌyíÚµ K—.uhú~ùåäææ"66½zõB·nÝjeý« _ý54M?— "‡7nÆWæ{mÚ´ÁĉÍ–õìÙÓ,ÐP’¯¯/víÚ…‹/¢~ýúðòò’Þ2dnß¾óçÏ£eË–Édˆ‰‰)iŸ4iFŽ ¹\Ÿ2óñÇãã?fQ­páÂÜ¿o¼ñêÖ­ �xñÅ«eZëÔ©ƒððp„‡‡£eË–6lŽ;†:Ôè2Ï+,, m۶ň#¬>¯øøxüqù’Ù{KII‹‹ \\\juý« ëׯÇ‹¾}û2È@DOؾ}»Ýö—žž�¸sçŽUû½råJ•'QMçïï¥R‰={ö k×®×MLLÄŒ3pãÆ ¼öÚkÒ°E øÉ ,À·ß~‹»wï¢}ûöøøã&5{õê…I“&�~üñGLŸ>_ý5BCC?6Z¥R™í·<Í›7ð×°ËmÛ¶aíÚµHJJB£FðòË/#66VZÿ½÷ÞCaa!ºwïŽ9sæà•W^Á”)S*Ü®"F£3gÎÄ·ß~ £Ñˆ×^{ ï¾ûn¥ËÖóúâ‹/°iÓ&õ:„……¡oß¾X°`UåuýúuÌœ9?üð”J%f̘QêPÜ3uöìÙÐh4 C«V­ðý÷ßWXÞ–òÜÖúgͱ&Mš„Æãƒ>¶éÚµ+æÏŸXLÑhÄ’%K°jÕ*¤¦¦Â××sçÎÅÈ‘#í^¾Ö~Çœ;w.víÚ…É“'ÃßߟA"ªÝ´Z-nݺe—} ‚ ÍåpåÊ\»vÏ'""²#ooo¼ð ˜={6nݺ…ùóç—ÙUýÂ… ˜2e ^}õUddd`ÆŒxöÙgѬY3�Àœ9s°téRLŸ>½{÷ÆâÅ‹ñä“OâÔ©S€ŸŸ6mÚ$¶lÙ‚””ìß¿_ 2¬^½K–,±*ÝkÖ¬�téÒ@ñ¤ýúõÃþólذï¼óÆŽ+Í¥tóæMüúë¯øå—_0}út©ËEÛUdÖ¬Yزe âââpïÞ=¼öÚkh×®† V©ò°ö¼\Ý=‰C ?!íÖM,X°À¬—gEåµ`ÁdffâçŸFFFF¹½úõë‡çŸ_~ù%-Z$ÍoUQy[Ês[ëŸ5ÇJMM… fÛ¥¤¤ ''Gú»¼ôÌ™3}ôæÌ™ƒÈÈH\»vMê kïòµErr2^}õUŒ1ãLJ««+ƒ DT»Ô¯_ßîûLHH@hh¨ôå#11Ï=÷\µzNxƒ XøDDT£}õÕWð÷÷Çœ9s°ÿ~lذ;v4['33  N§ÃüùóqàÀÄÄÄ ¨¨Ÿþ9bbbðÖ[o�âââàëë‹Ï>û ‹-Bÿþý±lÙ2äççÃÍÍ {öìAdd$0mÚ4üþûï¸wïúôéSn:ÓÒÒ°hÑ"ÄÇÇ#11¯¼òŠt÷{òäÉÒzS§NŬY³˜˜ˆ!C†HË5 6oÞlö¿ÛšíÊ£Õj±xñbÌœ9SêÚ¾fͬ_¿Þ¦F¨x^Û¶mñcǬ:¯ƒ‡ �¾¾¾(x‡^½zY]^�púôiøûû#00-Z´(7m~~~ ‚B¡ŽaMy[Ês[êŸ-DzFÉôhµZ,\¸}úôÁ›o¾ � ²kù> ƒÁ€M›6áàÁƒˆE¿~ýd ¢Ú£GvßçðáÙ±DDD&“É0cÆ ôïß/½ôúõë‡øøxDDDHëôìÙ!!!��•Jwww�®^½Šüü|³õ ÂÃÑ’’�èÝ»7d2:„¦M›BL:Ï<ó t:vî܉ÁƒÃÉÉ©ÜtÞºu ñññ ÄÔ©SiöþáÇ‘€Û·oøëIV¢°°°2»mWñ¼¿ÿþ{iÒèË—/KO½²–éy½ýöÛ¥Y™ôY*/1` .à£>²iü¿5å]Qž[[ÿl9–5J¦çêÕ«Ðh4<x°ÃÊ×^ÁÓòcˆˆˆˆˆª½ˆˆ=z:tÀ7ß|cÖ°³D«Õ�ÜÝÝÍ–»ººJÝÕ]]] aÆ:t(ÂÃÃa0pòäIìØ±£Ôxý’ºt邸øøRËA@tt4Ž?Ž &`Ô¨QX¹re…é®ìv¦ ?�xꩧЮ];i¹8¡µºté‚íÛ·C¯×› }ØôY">±ëý÷ßÇСCñá‡â_ÿú—ÝÊÛ^õÏQÇ*Y†%÷oÏò}2™ ‘‘‘ˆŽŽ®QQgˆˆˆˆˆ�‘ïܹ3.^¼hõ6-Z´€\.ÇÑ£GÍî9rƒ ’þ0`�þ÷¿ÿÁËË o¾ù&Ôj5"""°víZœ9sƪ! e9wîÖ­[‡={ö OŸ>ÐétÝN'''deeaäÈ‘v/ kÒ'“É*}‡»}ûöؾ};þýïcÑ¢Eøç?ÿ ¹\n·ò¶Gý³öXr¹Üìщ‰‰V×]'''ìÚµ &L¨Òò­H›6m0yòdiøFM"ÕJÉÉÉX¿~½tÇøÄ‰HHHÀ“O>iõ>ÜÜÜ0~üxlذGŽA~~>>ùädffâÕW_•Öëß¿?RRRðÛo¿IcËûõ뇯¿þ={öD½zõ*unnnÉd¸xñ"ÒÒÒ0sæL�Ås8b;‘Z­ÆÔ©S±víZ¬[·………ÈÉÉÁ‰'ìR6Ö¤¯k×®8uê”4Q¶µV¯^ëׯÃh4B£Ñ uëÖVl)o{Ô?kŽcÇŽá?þÀ–-[0uêT«ŽïììŒ×_û÷ïÇŽ;`0’’‚Ó§O;¼|ËS¯^=L›6 Ÿ}öY 00È@DDDDT‹eggcòäÉðööF@@�zõê…Q£FYÝu^ôñÇ£S§N0`�š6mŠ… bÅŠ—Ö …··7zôè!͔߷o_èõú‡šH¯Y³fxýõ×1mÚ4´nÝJ¥'NÄ{gØ};S|𢢢 ???Ø<áäoذaèС‚ƒƒ+nbjÕªUhÓ¦ 7nŒ#GŽ`öìÙv/o{Õ?kŽõ /ÀÝÝmÚ´ÁÌ™3ñßÿþ×ê4üßÿý^|ñEŒ;uëÖEß¾}qôèQ‡—oYFŒ¸¸8 42™¬Æ^Wd .¢¢¢°qãF›ž KD5ËòåË1zôè ×ãµ€ìmÕªUˆ‰‰A\\¢££™!DäXI«€Õ1@TaÝ5gÕ‘dĬچ¸è§Ý£S•&W‚�£ÑƒÁ�£Ñ½^/Mô¦Óé ÕjqöìÙRÚÓ7p÷î]ÂÛÛ»Òû)((@VVüüüª¼‘”““µZ ggg�ÅwüÅG:b;Sz½·nÝ‚ŸŸ_¥·m0¤9J>E«¬ôùø6‚Þ(å€BܹsõêÕ“Ö±Faa!rssáããóÈËÛšúgͱ222*ýä¯ÂÂBdff–¹ÿ‡-ߪ´sçN´iÓjµ*• NNNP(P*•ËåP(ËåÉd¥Îó×_…‹‹‹´ž¸]ÉצûR(Ðëõpuu•Úœ“ˆˆˆˆ¨–kÚ´)š6múÐûquu•z)Tµ’òY(¨ìv¦”J%š5kVeçeÌ×ñõõµy¿ÎÎÎ6%YÞÖÔ?kŽõ0wvvF“&Mª¼|G.ADDDDDDDvÁ Ùƒ DDDDDDDd 2‘]0È@DDDDDDDvÁ§Krrr —Ëáááa¶üÔ©S0 èܹócu¾Ž8¯ììlœ:u ÷îÝC»víвeËjs¾:999ðôô,õ˜L[FdeeÁÉÉ v{\iyud """"¢ââÅ‹8tè222`0 T*† �þøãètºGdX¿~=.^¼�P©T¨W¯ºuë†ÐÐÐJïÓÞç%V®\‰Þ½{£k×®P*«GS+''Û·oÇõëסR©`0ТE 6 ...6åqNNâã㑚š ¥R N™L†Æ#::ºÔ~Ôj5Z´hÐÐPVºƒ DDDDDTèt:lß¾AAA7när9Î;''§j—V??? 4·nÝ©S§???øøøT¸í¥K—nݺ9,}·nÝ‚V«EXXXµ 0äååá믿†——^ýuxzz"##6lÀ7ß|ƒØØX¨T*«ò877+V¬€»»;^yåøøø@¯×ãÆ¸råJ™euóæMœ8q;wîÄ”)Sj|t´¯¿þ/¾ø¢Yð§&✠DDDDDµÔ½{÷PXXˆnݺA­VC¥R¡C‡ðôô¬viU«ÕðóóC·nÝп�À7¬ÚöÒ¥KÒÝuGIOO‡R©¬6�HJJ‚ÑhÄØ±c¥2mРÆŽ‹û÷ïãäÉ“Vçqbb" Æ'v”J%1`À€2÷Ž>}ú ''·oß®ñuÐÑÖ¯_ &ààÁƒ5ú<Ø“ˆˆˆˆ¨–ª[·.är9®\¹‚Æ[\÷Æ8pà�rrrеkWDDDHï ‚€¤¤$œ:u <@Æ 1pà@4jÔ�°iÓ&øûû£k×®�Ї*üøã>|8|}}�‡†B¡0ÛoyêÕ« xn��¸páΜ9ƒ›7oÂÝÝ¡¡¡ �?~gÏž…Á`ÀòåË€AƒYu^999HHHÀåË—!—ËÑ»woi¿¦NŸ>C‡A¯×cùòåðööƨQ£°ÿ~èõz4iÒ‡Bhh(ÂÃÃKåWýúõѯ_?4mÚTÚ§¸mHH<ˆÜÜ\ôèÑaaaøaÏ^œI9‡¦~0tð xyy•J“ 8yò$:wî ggg³÷<==‚'N <<¼Â<ÉÉÉèÔ©ÜÝÝmªcnnnfeU™:XQý€øøxxxxà‰'ž¶Y±b €æÍ››åiYåqüøq$''#;;èß¿?ZµjA€S§NAtéÒ½zõ²¹ŽX+33sçÎÅ®]»0yòdøûû׸ë {2ÕR...hß¾=ñyÝŠ�� �IDAT­V[æz÷îÝî]»Ð¶m[„††bÿþý¸ÿ¾ôþ¡C‡päÈ„††bܸqðððÀªU«¤uêÔ©ƒóçÏKëŸ?ééé¸zõª´,99Ùê1ø§OŸPÜ-_lè`üøñhÙ²%öîÝ‹¢¢"�@HHš6m ooo 2Äl†ŠÎ+)) ùùùˆŽŽÆèѣѤI“2Ó€víÚA¡P`È!èÙ³'� 77—/_ÆñãÇѳgO[•_â¶W®\ÁO?ý„îÝ»£U«VØ·o6lØ�A‰ÌÌÌR½L¿z½Þ¬!nªqãÆÈÎÎ.·ñošÇ9990 ¢JÒëõøå—_àêê*•Ueê 5ùuÿþ}äææšm—žžn¶?Kåñã?¢S§NˆÅSO=…úõë�~þùgœ;wO?ý4Œ#GŽ˜õб¶ŽØ*99¯¾ú*¾úê+0È@DDDDD5ðaÃЧOüöÛoX¾|9îÞ½[j‚‚Œ=]ºtAÏž=!—Ë¥�Á`@RR:tè€îÝ»£Q£F1b Ž= �hÞ¼9nܸN�¸|ù2BBBšš �ÈÈÈ@AAš5kVn:óòòpìØ1|÷ÝwHLLDçÎ¥Fo·nÝÐ¥Kx{{#<<ƒׯ_P|GÞÃÃÎÎÎð÷÷—�ܽ{...ðôôD“&MÊ ‚Ô©SžžžËåð÷÷—zgˆ í1cÆ }ûöðòò²*¿DƒÏ=÷Z·nnݺÁh4ÂÇÇC‡Epp0‚‚‚¤ó,+È� ÜžnnnÁ¬a^^‹ûªS§ŽUu*==k׮ŧŸ~Ь¬,DEEY|…¥:hK~Yø(YGŽA`` ÂÃÃáåå…ÀÀ@Ô¯_ƒGEXXкukøûûã÷ß·¹ŽT†Á`À¦M›0aÂüôÓO5æšÂáDDDDDµ\ïÞ½ˆ-[¶`ÕªUxñÅÍîÈŠ=�@.—C­VÃ`0�(¾ƒ¬Óé̺úËd24mÚ��Èd2\»v uëÖ�„‡‡cݺu0¸xñ"‚‚‚,>Z177—.]’žzböþõë×qíÚ5äååIÉŠX:/1[¶lAff& €€€�›ó¶Q£FÒkóKÔ°aCi[q‚F±ë?P<'By=\]]�………e¾¯ÕjK=.²¼<÷¥Ñh¬:g•J???ddd AƒRW¦Ú’_•-½^-Z”ZW<ö™3g¤Þ YYYfÁ{Ôk‚ bÏœš€=ˆˆˆˆˆMš4Á„  R©ðÛo¿ÙÔ�Pêi�J¥Rjè«T*4mÚW¯^ÅåË—„&MšÀh4"-- .\(4(ÉÏÏãÆCddd©u·nÝŠ;v@©T¢uëÖvË“V­Za„ pss“îîÛ£ÁXQ~Ùƒ8qbVVV™ïgee¡aÆfòòXœŸÁÚF½§§'žxâ <õÔS8{ö,Ξ=[é:èèüƒ4¦OÙ(ù^pp0ºté‚.]º`РAèÓ§Cëˆi0eذaX¹r%Ì Õ,®®®hÔ¨îÝ»gScV&“áæÍ›fËoܸa6!aóæÍ¥ Cpp0 üýýqæÌܽ{AAA•Jsff&~ÿýwDFF"""¢Ü!¦=láãヱcÇ¢gÏž8zô(AxèÆ¿5ùõ°”J%Zµj…äääRi.**BJJŠÕó¨T*4oÞ¿þúk¹óv”%((mÛ¶ÅîÝ»‘ŸŸ_©:hm~Éd2i8Žø¾µå¡P(péÒ¥RïyyyA¡P@£Ñ U«VÒO`` Cë�´iÓK—.Å”)SÌz›0È@DDDDDÕÖÝ»w‘’’"5ÀÓÒÒššZªUQ´cÇŽHII‘æ]8rä Ð¥K³ Czz:ÒÒÒ¤.å8yò$üýýK=Á–Æ´lÈËË“ÿ'›�Š'9LKKÃlÚwrr2rrr ôz=4h`qn{æ—=ôë×<ÀÖ­[¥à@~~>6lØ�///ôíÛ×ê}õïßZ­ß}÷ÒÓÓßé¿}û6öîÝ[îvâ“<âãã+U­Í/???ܺu ÙÙÙ8þ<vïÞmuýéÚµ+®^½Š‹/Bddd == …ááá8sæ RRR ×ë¡Õj‘––æ°:R¯^=L›6 Ÿ}öY¥oçd """"ª¥4 víÚ…mÛ¶ÁÕÕ<@ûöíÍÑg">>ß~û-”J%”J%† föD___é.µØ5= �F£±Â¡5ʺu놽{÷bß¾}èÞ½;°ÿ~Ô¯_hÙ²%’““±dÉtêÔ C‡µjß§N®]»àää/// 8Ð.ù^2¿Änñå=¡²¼½½ñòË/cË–-øôÓOáî¼<Ô©S'N„Z­¶z_ 6ÄË/¿Œ;wbùòåprr‚Ñh„··w™óˆÜÜÜ0pà@lß¾§OŸF‡l®ƒÖÔ¯öíÛãÂ… Xºt)êׯѣGãË/¿´êÜúöí‹¢¢"lܸQ <ôïß>>>èÓ§ŒF#¶oß¹\AвeKŒ9ÒîudĈˆŠŠ2›3¢&’-\¸PˆŠŠÂÆË+-Ñcjùòå=zt…ëñZ@ö¶jÕ*ÄÄÄ ..ÑÑÑÌ"r¬¤UÀê *ˆ°îš³êH2bVmC\ôÓˆîÑ©J“+A€Ñh„Á`€Ñh„^¯—&zÓétÐjµ8{ö,"##–Žœœ nݺÒ$•¡Óé Ñh¬~ =iµZ( ©gC^^^©næ<€³³³´Ž5Ļ׎hø‰ùåææ½^¥RiqòK‘A�ôF@)VÞ4ÏÏÏGvv64 Ž?. Q FHHˆUÇ5ÍëììlxzzÚ¨xØ:hMýÊÏϯtYéõz”¹£ÑˆÜÜ\Ô©Sr¹¼Êꈭvî܉6mÚ@­VC¥RÁÉÉIú\Èår( ÈårÈd²R=.~ýõW¸¸¸Hë‰Û•|mº/…B½^WWW©½Áž DDDDDµ\ݺu¥§>< •JUæzU¡dc·¬qìå=ÎÑñι#ˆùUÙù"láææ&5‚ƒƒƒqçÎ9r¿ÿþ»Í“eªÕj³ÇtVU´¦~=LC_©T–ÀËåÒ˜UYGj"æQ-ãëë‹gžy†Avlj‰ˆˆˆˆˆˆÈ.d """""""»`ˆˆˆˆˆˆˆì‚A"""""""² ˆˆˆˆˆ7nÜÀíÛ·!‚MÛ­Y³+W®¬1é%"Çbˆˆˆˆ¨Û±c"""о}{ÃÛÛ§N²zû}ûöa÷îÝ5&½DäX 2ÕR˜8q"Z¶l‰k×®!##K–,A:uIzvíÚ…¥K—Ö˜ôQiJfQítáÂÜ¿o¼ñêÖ­ �xñÅYzâããqéÒ%¼ñÆ5"½DT{2ÕRþþþP*•سgO¹ëF|øá‡ D³fÍ0oÞ<‹û¬h}£ÑˆE‹!44žžžhݺ5¶lÙ‚/¾ø›6m‰'†üã•Nï'Ÿ|‚öíÛÃÇÇýû÷lj'ÌÖ™4ifÍše¶MXX~üñGiÙ{g·ß~ëׯGÇŽ±dɋ鷿ܝ_¿Ž &ÀÏÏÍš5Ê+X é±Ãž DDDDDµ”··7^xáÌž=·nÝÂüùóK =˜5k¶lÙ‚¸¸8Ü»w¯½öÚµk‡aÆ•¹ÏŠÖŸ3g>úè#Ì™3‘‘‘¸ví5j„ÐÐPüôÓO¸yó&,X�//¯J¥wΜ9Xºt)¦OŸŽÞ½{cñâÅxòÉ'qêÔ)��RSSKM™’’‚œœéï›7oâ×_Å/¿ü‚éÓ§£[·nÓo͹/X°�™™™øù矑‘‘VBbˆˆˆˆˆ_}õüýý1gÎìß¿6l@ÇŽ�Z­‹/ÆÌ™3Ñ·o_�ÅO“X¿~}™A†ŠÖ×jµX¸p!úôéƒ7ß|�$mïë닼¼<ôêÕ«Ré-**Â矎˜˜¼õÖ[�€¸¸8øúúâ³Ï>âE‹lÊFƒÍ›7£AƒÒù•—~kòêôéÓð÷÷G`` Z´hÁÊG%— """"ªÅd2f̘@ôë×III�€«W¯"??ßÿ=ŒÁƒãÌ™3¸víZ™ûªhý«W¯B£Ñ`ðàÁMoDD„´¾B¡@xx8RRRl>VXX˜`¨(ýÖäÕÔ©S±uëVôèÑdå£Ç{2"""pôèQtèÐß|ó """`0��O=õÚµk'­+NºXREë‹ï»»»;$½Z­¶Ìý»ººš …¨,Ké·&¯Fމ   ¼ÿþû:t(>üðCüë_ÿbå#ˆˆˆˆˆèñãííÎ;ãâÅ‹�Ї899!++ #GެpûŠÖoÑ¢œœœ°k×.L˜0¡Ôû2™ EEE•No‹- —ËqôèQ³ÞGŽÁ Aƒ¤¿år94ôwbb¢Udz”~kóª}ûöؾ};þ?{wE•ïÿÿUÝ=H $€  ,!e½"hFù3* ›1ƒŠÂ°ˆ æjÀà.†À�7 p‘á¢,„8€_df€@e Nöîêß–†,Í"jò~>mRU§ÎùÔI…‡õÉ©s^zé%ÒÒÒxñÅuãIµ¢×%DDDDDj¨;w²dÉ÷€ììl6mÚD×®]ðóó#))‰Å‹“™™IQQyyy—­ÖpAUåýýý9r$Ÿ~ú)«V­Âét²gÏvïÞ @ûöíÙµkßÿýUÅÄã?ÎÒ¥KÙ²e ùùùLŸ>“'O2bÄw=qqqlÛ¶ýë_¬X±‚¤¤$¯ú«²ø½é«ŒŒ rrr0M“ÂÂBZ´hÅ¢G2Q’ADDDDDª3gÎ0jÔ(ˆŒŒ$!!>}úx áŸ4idøðáØív"##+@±ªò/¿ü2 àÑG%$$„Î;³uëV�iժ͚5ã™gž¹ªx§M›F›6mèÞ½;5bƌ̙3‡¸¸8w™þýûLLL S¦LaÑ¢E^÷YeñWuíóæÍ#&&† °eË^yåÝ„Ríèu ‘ªK—.üðÃ9r„ï¿ÿž¨¨(ÂÂÂ<Êøùù‘’’Brr2¹¹¹Øívl¶Ÿ#æÏŸEåýýýyûí·ÝË9Úív Ã� 44”M›6qüøqêÔ©sUñ†„„ð׿þ•‚‚NŸ>íQÿÑÑÑìØ±ƒ'N¸'v,**ò(séuyU×¾aÃŠŠŠ8wîõêÕÓ (J2ˆˆˆˆˆHõÓ¨Q#5jTùƒƒÍFDD„÷U”÷÷÷§aÆå ¿æx ¬´ÌÅ+G\©Êâ¯ìÚýýýñ÷÷×M'Õ–^—‘ëBI¹.”d‘ëBI¹.”d‘ëBIáÈ‘#|÷Ýw¸\®+:oÁ‚Ì;W("€’ """""5ÚªU«ˆ'66–f͚Ʈ]»¼>ݺu¬Y³æ†ÄÚ¼ys÷å}zö쩨È/̦.©™ 6l÷ß?ûÛßðññaÅŠÔ®]û‰çã?æàÁƒ<ýôÓå_¾|9%%%�|ñÅ<ÿüódffÒ¨Q#€_,î+¹‘êNI‘êÛo¿åìÙ³<ýôÓ„„„�0`À€_,žÕ«W³ÿþ Ð[¶léþþĉ�Ü~ûíDGGÿjú´ªk©îôº„ˆˆˆˆH Õ¸qcl6k×®­°ŒišLž<™¨¨("""xõÕW+­³ªò¦i’––ÆwÜAݺuiÑ¢+V¬à­·ÞbÙ²edggÓ¶m[žþù«¾®?ü~ýúAÇŽ™={¶ÇññãÇóÜsϱdÉZ·nÍ›o¾ €Óéd„ DEEѼysfÍšEÏž=ÉÈÈðêú*º†œœ† ‚Ýn'""‚9sæèæ“jK#DDDDDj¨°°0ú÷ïÏ+¯¼Bnn.)))—½r0uêTV¬XAzz:§Nâ©§ž¢eË–$&&–[gUå“““yíµ×HNNæÁäðáÃÔ¯_Ÿ; 6pôèQRSS ½êë:rä]ºtáÏþ3K—.å…^àÑG¥V­Z�=z”;v°}ûvÆŽK‡�˜<y2sçÎeâĉtïÞÙ³g³qãFºwïîÕõ=øàƒå^Cjj*'Ožä³Ï>ãĉèæ%DDDDD¤úyï½÷hܸ1ÉÉÉ|úé§,]º”Ö­[P\\ÌÌ™3™2e ;wÊV“X²dI¹I†ªÊ3cÆ :uêÄèÑ£<^uçÇ$!!áš®iÔ¨Qîï“’’˜:u*›7oæþûïwï/,,dùòåÜ|óÍ�ñÎ;ïðä“OºÏŸ1c~ø¡{Ū®/22²Ükؽ{77&**ЦM›ê¦%DDDDD¤z2 ƒ‰'Ò­[7žxâ ºtéÂêÕ«‰çàÁƒäçç³páBV­ZÀ°ÛíåÖUUùƒRXXH=~öëÊÊÊbÓ¦M|÷Ýwî$ÂÅÚ¶mëN0\ˆ­   Ü‡a^]_E’’’4hß~û-¯½öš;A!¢$ƒˆˆˆˆˆTKñññlݺ•V­ZñþûïÓé W¯^“.^˜$òRU•¿p<88øg»—ËÅ AƒøòË/2d}úôaîܹUžwáU __ß Ë\i\лwo¢££™0a={ödòäÉŒ7N7(É """""ÕWXXwÞy'ûöíÊ^eðõõåôéÓôîÝ»Êó«*ß´iS|}}ùøã2dÈeÇ Ãp/QyµöîÝKff&k×®¥S§N”––zu^Æ ‰‰‰aÛ¶môêÕ €]»vqæÌ¯¯¯²kˆeåÊ•¼ôÒK¤¥¥ñâ‹/b±h~©~tW‹ˆˆˆˆÔP;wîdÉ’%ͦM›èÚµ+�~~~$%%±xñb233)**"//ìììr뫪¼¿¿?#GŽäÓO?eÕªU8NöìÙÃîÝ»hß¾=»víâûï¿¿êk Â0 öíÛDZcǘ2e �ÇŽ«òÜ^½z1cÆ FŽɘ1c=z4Øl6¯û£¼kÈÈÈ ''Ó4),,¤E‹J0ˆ’ """""R½œ9s†Q£FFdd$ ôéÓÇc(ÿ¤I“8p ÇÇn·IZZZ…uVUþå—_fÀ€<ú裄„„йsg¶nÝ @bb"­Zµ¢Y³f<óÌ3WuMî$A‹-°Ùl 6Œñãdz~ýúJÏ<y2Ï?ÿ<{÷¨ˆ÷ß§ÓIPP××WÞ5Ì›7˜˜4hÀ–-[xå•WtóIµ¥×%DDDDDj¨.]ºðÃ?päȾÿþ{¢¢¢ ó(ãççGJJ ÉÉÉäææb·ÛÝÙ˜?þ•÷÷÷çí·ßv/ëh·ÛÝ+†††²iÓ&Ž?N:u*½G—MæxAjj*/½ô~~~øûû0~üxêׯ_nÌøøøðòË/»··mÛÆÙ³giÖ¬™××WÞ5lذ¢¢"Î;G½zõt㉒ """""R}5jÔˆFUþà`³áýƒFåýýýiذa¹ÇÂÃïùš.ŒñB‚¡2Ë–-ãàÁƒÜu×]8p€Y³fѦMî½÷Þ+¾¾K¯ÁßßßðQ’ADDDDD¤šóõõå믿fÙ²eøùù‘À¸qãÜ#-D¤jJ2ˆˆˆˆˆˆP6ŸBbb¢:BähâG¹.”d‘ëBI¹.”d‘ŸÝ”)SøôÓO¯¹ž 0wîÜ ·Eä—¥$ƒˆˆˆˆH Ö·o_÷òŠ>¡¡¡îãO<ñ}ûö½ævæÏŸÏÎ;«,wêÔ)jÕªE¯^½Ê=¾nÝ:Ö¬YSáö¥:uêÄã?^îþ×^{M7€Èu¦Õ%DDDDDj¸¶mÛòæ›oº·-–ŸþÙ«W/Ç ‹eéÒ¥”––²qãFŽ?Nxx¸~@"¿!J2ˆˆˆˆˆÔpµjÕâÎ;ï,÷X¿~ýnh, .$>>ž/¾ø‚ÌÌLþøÇ?ê$ò¢×%DDDDD¤BãÇç¹çž»l{óæÍtéÒ…èèh^ýusLÓd„ DFFrë­·2kÖ,¯ÚÚ¿?Û·o'99™ØØX/^|î3''‡!C†`·Û‰ˆˆ`Μ9îc~ø!ýúõ#""‚Ž;2{ölsN'&L **ŠæÍ›3kÖ,zöìIFF†GŸLž<™¨¨("""xõÕW½n_ä·D#DDDD¤ú(8[öõ‹ ïÏ9ðïó_³ÀØycãu¹Àuþ«i–}œç¿–:Àá,ûzð;èÕóç‰Átþô)ÇќøÍ9Ìßÿþw6®ÿ”#FpâÄ &Žÿôùÿˆˆˆ� yêTÒçþ7/¿ü2 Ìœ9“´€E]@TDcâã:пßøÓŸþÄÞ=ÿ-ZToñWxü’ý©Ó§qò‡ïùlãNœ8A@@€ûؑÇèÒé^þüòd–.]Ê Ï?Ç£ø=µjÕ`ò¤‰ÌýïÿfâĉtïÞÙ³g³qý§tïÞÍÝÜÔ©SY±béééœ:uЧžzŠ–-[’˜˜XÖ~j*'Ožä³Ï>û©}%DDDDD~A§—}Ý·±ìãÕƒ~àaØ<¶ì¼ñ1»*ø8óü×3ÀèŸi’BÓÁç›6pSh÷®%K–еkW÷q÷çüöÉ޳iÓ&š7oNii))¯&³þ“ÿcðàÁ”––òö›i <˜áCŸàÝwÞbÝÚ5¸œ¥?ÕsY¾ÅÅ¢¿Îç±ÇÃp9é÷û¾LøÓX/\ÀŸÿügx/Çc»œë+÷ø%ûwïüŠÆш¦Q?•F|Ê}ZÒ¨‘L2™ÍŸoâþû裡¨ˆwޚɓO>é.7ãõi|¸b.gY’¢¸¸˜™3g2eÊ:wî ”­Š±dÉw’a÷îÝ4iÒ„¨¨(š6mªßeQ’ADDDDä×°uÙ׿!~ wçìÿ7d‚»‡@³àœ`¸‚‘ –ŸéÝ-6îl×÷Þ{Ͻ«qãÆ?µg±ýô9¿}÷=h~[ �>~6‚kסÄa‚ÅÆ‘ÜΞû7mÛÇyÆl±aX}*¼ŽÍYY>’KÏ9{îßÕ⮄{Yœ¹”)S“1 £Âx<¶Ë¹¾r_²?iôs 4ˆoîåµ×^s'.ÈÊÊbÓ¦M|÷]ÙÏ¢¨Ä¡ ¨„„{;ÿÔ†ËpÇ|ðàAòóóY¸p!«V­àÀØíöŸ’II :”»îº«ÜöE”dù¥Ä„øA^>è!:âÛüI†ó §³ì«ÃQö}I ”–Bq1ø}ëÏ”d°T«61-c+<îþ”·}ɾ‚¢b°X »¹^…eʳpñÿ€ÅJ½.O@|±•„„ïã¹H­:ä]v¼¸ÔAP­Úîý½ûô%ºù­L˜0ž<ÈäÉ“7n.—‹Aƒñå—_2dÈú<ò{æ¦Ïs·Y+¤X¬øúüÔ†éƒóüˆ†^½zѲeK÷þ÷÷½{÷æ¶Ûn㥗^¢gÏžîöE~k4ñ£ˆˆˆˆˆ\7·ß~;aaa|õÕW?=ÐSTTTá9EEE,_¾œ7ÞxƒãÇ»?‡¦V­Z,Z´èªãiܸ1û÷ï÷Øgš&GŽ¡aÆûcccY¹r%/¼ðiii˜¦ÉÞ½{ÉÌÌäÝwße̘1ÜsÏ=ç4lؘ˜¶mÛæÞ·k×.Μ9ãÞŽŽŽÆ××—Ó§OÓ»wo÷ÇýJJ%í‹(É """""5–atíÚ•ôôt6lØÀŽ;xä‘G(,,Äår•{ÎG}DII   N:îÏ-·ÜBŸ>}X¾|9ÅÅÅWOß¾}Ù¿?S§NåÔ©Sœ9s†W^y…ââbî½÷^w¹ŒŒ rrr0M“ÂÂBZ´hÅb!((Ã0Ø·oÇŽcÊ”)�;vÌ}n¯^½˜1c#GŽd̘1Œ=š€€�l¶²ã~~~$%%±xñb233)**"//ììì*ÛHII¡{÷îepz±-¢$ƒˆˆˆˆˆTcÇŽ¥´´”ž={òÐC1tèPêÖ­ûÓ¼ —X´h?ü0µk×¾ìØO<ÁÙ³gY³fÍUÅÒµkW&MšÄ´iÓhÒ¤ Mš4áwÞaÖ¬Y„……¹ËÍ›7˜˜4hÀ–-[xå•W�ˆˆˆp'Z´hÍfcذaŒ?žõë×0yòdžþyöîÝKQQï¿ÿ>N§“   wý“&MbàÀ >»ÝNdd$iii‚¡LÊ�� �IDATU¶°oß>²²²p8^m‹ü’4'ƒˆˆˆˆH öÁTz|þüù•nƒç_õZ¶lÉ·ß~Knn.õë×Çb±ð»ßý®Â6–/_^á±»îºËãU oâ¹Ô„ =z4À××—&MšàçççQfÆ qîÜ9êÕ«çq,55•—^z ???üýý?~<õë×ÀÇLJ—_~Ù]~Û[8{ö,Íš5sïóóó#%%…äädrss±Ûíî‘Úw8äçç_Öþܹs™;w®Çö{sæb³”\DI©v.^=á—DëÖ­+-ãïïïN"\êâIw‚`Ù²e<x»îº‹0ëí·hÓ¦Çëî0›ˆˆˆ Û¿xôƒÈo‘’ """"""×À××—¯¿þšeË–áççGBBã^Sáë!"Õ™’ """"""× 11‘ÄÄÄŸv˜N05?‚ÔLšøQDDDDDDD® %DDDDDDDäºP’ADDDDDDD® %DDDDDDDäºP’ADDDDDDD® ­.!""""òñÍ7ߨ~ .¬.a±ÅZeq§Ó‰ÃáÀf³aµzQÞl°j•L9/&&æW‡’ """""zˆëII©Áôº„ˆˆˆˆˆˆˆ\J2ˆˆˆˆˆˆˆÈu¡$ƒˆˆˆˆˆˆˆ\J2ˆˆˆˆˆˆˆÈu¡$ƒˆˆˆˆˆˆˆ\J2ˆˆˆˆˆˆˆÈu¡$ƒˆˆˆˆˆˆˆ\J2ˆˆˆˆˆˆˆÈu¡$ƒˆˆˆˆˆˆˆ\J2ˆˆˆˆˆÔ`}ûöÅß߸óÎ;yÿý÷“×òÄOзo_ýPE~AJ2ˆˆˆˆˆÔpíÛ·gÓ¦ML™2«ÕÊÓO?ÍîÝ»Õ1üñǼýöÛûzõêÅÃ?¬¨È/Ȧ.©Ùj×®M\\qqqÜzë­$&&²mÛ6Zµjõ«yõêÕìß¿Ÿ§Ÿ~Ú½¯_¿~úaŠüÂ4’ADDDDDÜš4i€Ãá�`üøñ<÷Üs,Y²„Ö­[óæ›o`š&Ó§O'66–zõêÑ­[7²³³=êºpîÊ•+騱#v»¤¤$JJJÜeLÓdòäÉDEEÁ«¯¾Zn·ÿÖ[o±lÙ2²³³iÛ¶-Ï?ÿ¼GYoëÎÉÉaÈ!Øív"""˜3gŽn�‘k¤‘ """""â¶`Á�ÚµkÀÑ£GÙ±cÛ·ogìØ±tèЀäädÞ~ûmÆŽË=÷ÜÃÌ™3éÚµ+»ví"22Ò}nvv6»ví"))‰ììlfÏžMll,Æ `êÔ©¬X±‚ôôtN:ÅSO=EË–-ILL¬°}›ÍƆ 8zô(©©©„††ºË¸¯¥ªºSSS9yò$Ÿ}ö'Nœ @7€ˆ’ """""r-Ž;FZZ«W¯fóæÍ :”öíÛ»²|ùrn¾ùf�JJJøË_þÂàÁƒyöÙgHOO'<<œ7Þxƒ´´4÷¹AAA¬ZµŠÀÀ@ú÷ïÏ¡C‡øä“O6lÅÅÅÌœ9“)S¦Ð¹sgw’cÉ’%îD@y턇‡óã?’Pî5yS÷îÝ»iܸ1QQQ4mÚT7‚ˆ’ """""r­rssY½z5QQQ$%%ñàƒzoÛ¶­ÇþÁƒÉÏÏ'>>Þ½ÏjµÇž={<Îmܸ1u¥¥¥aš¦»ž… ²jÕ*�8€Ýn¯´}oxSwRRƒ âÛo¿åµ×^s'#DDI¹JíÚµcõêÕ^—/.. 88Øc`` yyy•žk±X(**Â0 œN'P¶*DË–-ÝeBBB®ù𼩻wïÞDGG3aÂzöìÉäÉ“7nœn%DDDDDäFiÚ´)‹…­[·Ò£G÷þ-[¶pß}÷Uznvv6ÑÑцAtt4¾¾¾œ>}šÞ½{_Q †axL y)oëŽeåÊ•¼ôÒK¤¥¥ñâ‹/b±h~|‘«¥ß¹"AAA<þøã,]º”-[¶ŸŸÏôéÓ9yò$#FŒð(»uëV>ùä lÙÉÏ?ÿœ¡C‡àççGRR‹/&33“¢¢"òòò.[¥¢<íÛ·g×®]|ÿý÷å÷¦îŒŒ rrr0M“ÂÂBZ´háN0¤¤¤Ð½{w÷D’Um‹ˆ’ """""r•¦M›F›6mèÞ½;5bƌ̙3‡¸¸8rÑÑÑLŸ>zõêñûßÿžGyĽ²À¤I“8p ÇÇn·é1qdEiժ͚5ã™gž)·LUuÏ›7˜˜4hÀ–-[xå•WÜÇöíÛGVV–{)Ϫ¶Eª#Ó4)--¥¨¨ˆââbJKKq¹\•ž£×%DDDDDj°>ø ÒãóçÏ/wHHýë_)((àôéÓØív ø¬ÜM7ÝÄ|à^"òÒyüüüHII!99™ÜÜ\ìv;6›­ÊöCCCÙ´iǧN:å–­ªî 6PTTĹsç¨W¯žÇ¹sçÎeîܹ^o‹T·äBII %%%äççãp8°Z­S·n]‚ƒƒ Äjµ*É """""×O`` Çê©ju›ÍFDDÄ·^e™Êêö÷÷Çßß_?H‘óùùù|ó¯“,ÝžÇW‡ ÎX¨[ߟ‡ý›x{.·F†Ahhèå¿oêBù9´iÓÆ½…ˆüú9NΜ9Ã{;Ââ EpK(Ü7…ðC°ùvîwpÿ¹3$ü{-[¶¤V­Zu(É """"RlÝ ›6ý*ByÀb””šõ30Mp™`XÊ®¿ †ib5M ‹—å]`ua�F ê׎¡S'ýŽÿL\.ùùù,ü[‹³ éüÐíl<nB@„úq[ˆ?MƒmÜâoáà©ÚääðOš7oî‘hP’ADDDD¤:Ù¸þô'õÃoˆ…+›‘ÿJËWãÆ)Éð3r8Ê=ÃS¾üñÉÌÀZ„Û þçP1µü}hh#,ÐÐ@_ë‘sØÊ¿Žì%,ì·Ür‹»%DDDDDDDj¸ÒÒR>Ûu†¶-R÷¦Z˜>þ–ZàûRÛ|¨eó!ÈLJ�?|ý!¬A‡rëyâ„G=J2ˆˆˆˆˆTW^þËp]ôº„Qõ˜Ó41M‹Å‚Å‹×%LWÙÇb”}ªµ_Ñë?ÕÃá ÷„É]-jáïïK©aÅá²r‹ÕB°Í‚¯Å‚Õ¬`µB`­@¾sÖ&/晴 """""5BçÎðê«^=räV«•úõë—»åÏmÁ‚”””0dÈß~¿›N0`±ÅZuNÂéÄép`ØleOoU•wó|£ÚÏÉðÚkJ2ܨÛÖ4Éÿ|ü±Z¬˜†‹Å –Í `Z,˜8-à4ÀðµrÎ𧤤ģ‹ºRDDDD¤æZµjñññÄÆÆÒ¬Y3ÂÂÂØµk—ûøO<Aß¾}ö8Ö­[Çš5k®©Žkß¾}ÝK_†……qçwòþûïÿ&þ7ªÏä·¡¸ÔY–¸2 \ç÷¸Ê[¦iàpA‰JL(q8MÓ4=êÐH‘ª  €aÆqÿý÷ó·¿ý V¬XAíÚµÝezõê…ÃáøÕÅþñÇsðàAž~úé_$ÖöíÛóú믳}ûv222xúé§i×®­ZµúÕþ¼é>“_?§Ó.—ËÀ…Ó—Óe¡Øá¢Ä§A© —‹Rçåu(É """"RC}ûí·œ={–§Ÿ~š� àQ¦_¿~¿ÊØW¯^Íþýû=˜od¬µk×&..ޏ¸8n½õVÙ¶mÛ¯:ÉðK÷™üú¹\.. ¦ ¦ËàßNµÍ²ä‚Ã,K0X�.JÌËëÐë"""""5TãÆ±Ùl¬]»¶Â2ãÇç¹çž»l{ýúõ$$$ФIfÍš…Ãáàü#5¢wïÞüóŸÿtŸóŸÿùŸL:Õ½mš&mÛ¶å“O>©°Ý?ü~ýúAÇŽ™={¶ûØ[o½Å²eËÈÎΦmÛ¶<ÿüóåÆjš&Ó§O'66–zõêÑ­[7²³³Ë½¾Í›7Ó¥K¢££yýõׯ¨›4iàp¡Î%K–кukÞ|óÍ+ŽgåÊ•tìØ»ÝNRR’Ç{ï¦i2yòd¢¢¢ˆˆˆàÕKæÝ(¯ý+é³ÊêÎÉÉaÈ!Øív"""˜3gŽ~‘ª›åü¤¢°.|m¾Vðµ‚Õ…íü÷þVð-'£ ‘ """""5TXXýû÷ç•W^!77—””W%�Ž=JAAÇöW_}ŶmÛxî¹çÈÊÊâ…^`ݺu4lØ÷Þ{çž{Ž9sæðÚk¯pèÐ!\.—G½{öì!//¯ÂØŽ9B—.]øóŸÿÌÒ¥Kyá…xôÑG©U«>ø 6làèÑ£¤¦¦Zn¬ÉÉɼýöÛŒ;–{™3gÒµkWvíÚEdd¤ûœ¿ÿýïlܸ‘#FpâÄ &NœÈ#<BDD„Wý¸`Á�Úµkç®sÇ—[ÙžýwÆŽK‡*端¾¢aÆîs³³³ÙµkIIIdgg3{ölbcc6l�S§NeÅŠ¤§§söô)žzê)Z¶lIbbâOíïØÁöíÛÝíÛl6¯úìâºOº¼îÔÔTNž<ÉgŸ}Ɖ'Ð/R5bX̲¯¦ JMÅ&›Pj”8Ávþ5‰òF2(É """"Rƒ½÷Þ{4nܘääd>ýôS–.]JëÖ­+=§¤¤„+VP¯^=î¸ãfÍšÅí·ßî­°víZ>ÿüókŠkÔ¨Qîï“’’˜:u*›7oæþûï'22’ððp~üñG*Œñ/ù ƒæÙgŸ ==ððpÞxã ÒÒÒÜeOž<ɦM›hÞ¼9¥¥¥¤¤¤°~ýz\a|ÇŽ#--Õ«W³yóf†JûöíÝÇ Y¾|97ßîU<©©©îsƒ‚‚XµjôïߟC‡ñÉ'Ÿ0lØ0Š‹‹™9s&“&O¡sçÎX²$Ç’%K܉�öo¾Ù½¯ª>»P÷”)eu_H \\÷îÝ»iܸ1QQQ4mÚT¿@ÕŒq>±à4²¥RMø·óü‚)&;ÁçB’ÁÎrædÐë"""""5ù¡Â0˜8q"ëׯÇårÑ¥K¾øâ‹JÏiÕªõêÕ 00€ÿøÿpÀYÞÓÇÊÊÊ"99™qãÆPTTäõ¹$??Ÿøøx÷>«ÕJ\\{öìñ({÷ÝwÓ¼ys�|||¾lY¾Kåææ²zõj¢¢¢ÈÌÌä­·Þò8Þ¶m[ü+‰§qãÆî~½Pׯ1MÓ]ÏÂ… éÑ£=zôà믿æðáÕ¶%}VYÝIIIüïÿþ/wÝu7nÔ/P5äºè¿¸ Ð¥.0qaq¹°\”d€«œ%T5’ADDDDDˆgëÖ­´jÕŠ÷ßßãaø†?ä¸\ 4ˆ/¿ü’!C†Ð§OæÎ{Euì±?00°Ò×4¼Õ®];V¯^}]â9}út¥çZ,ŠŠŠ0 üéÕ«mZµÄzþ!ïÂÄ×ââº[¶léÞqݽ{÷&::š &гgO&OžìNIõ`1À°€Å«a1𵀆VkÙÇâÂ}ÿ)É """""— ãÎ;ïdß¾}×÷¡Åb¡°°Ð½½yóæJËïÝ»—ÌÌLÖ®]K§N(--½¬Œa•Ž6hÚ´)‹…­[·Ò£G÷þ-[¶pß}÷Ýð¾­,žnݺUznvv6ÑÑцAtt4¾¾¾œ>}šÞ½{—ûW‘ªúìÒº+ËÊ•+y饗HKKãÅ_ÄbÑ ùêÀ0Ê’ 6Ëù¹ph”Môh³øXÁçü¤PþĺDDDDDj¨;w²dÉ÷_Ù³³³Ù´i]»v½®íÄÅűmÛ6þõ¯±bÅ ’’’*-„aìÛ·cÇŽ1eÊ l„ Ú·oÏ®]»øþûï+¬ãñÇgéÒ¥lÙ²…üü|¦OŸÎÉ“'1bÄ ïë+‰gëÖ­î•7V¯^ÍçŸÎСCðóó#))‰Å‹“™™IQQyyy—­RQžªúÌ›º322ÈÉÉÁ4M iÑ¢…;Á’’B÷îÝÝIVµ-¿N¶ó‰ëù&¬V°œ_QÂïüо¾›UI9ïÌ™3Œ5а°0"##IHH OŸ>×}ø{ÿþý &&&†)S¦°hÑ¢JËGDD0räHÆŒC‹-°Ùl 6Œñãdz~ýz�iժ͚5ã™gž)·žiӦѦMºwïN£F˜1csæÌ!..îéoo㉎ŽfúôéÔ«Wßÿþ÷<òÈ#î•%�&MšÄÀ>|8v»ÈÈH‰,+âMŸUU÷¼y󈉉¡AƒlÙ²…W^yÅ}lß¾}dee¹—ò¬j[~} ,Ö‹’ >–²Ä‚ÍR–hðµ­,áà£%,EDDDDä‚.]ºðÃ?päȾÿþ{¢¢¢ ó(3þüJ·ÃÃÃ/›ñÂÒ•?4ïØ±ƒ'N¸'#¼ôœKëMMM套^ÂÏÏ�ÆOýúõ eÓ¦M?~œ:uê”[GHHýë_)((àôéÓØív è´]ð1Qž>ø ÒãóçÏóòéŠâ¹t’Ì›nº‰>øÀ½Dä¥ó8øùù‘’’BÊ«Éÿ.»ÝŽÍf«ôš¼í³ u'''“›{yÝ6l ¨¨ˆsçι'ÿ¼`îܹsgTµ-¿N–óɋ맑 >}|Ï',.W¹#”d©á5jD£F~öv®tµƒK'3¼`¸4ÉQ•ÀÀ@Õ~iÞÆSUÙl6"""®¸}oú¬²ºýýý݉©^ X/|ÎOìèkÛùQ >Vðµ¹ð;Ÿ\ðq/5¡$ƒˆˆˆˆHõ·u+¤¤¨n4Ó—y~ŠþªßP7L«ibX, ;}ºìu‚J~n†«ìÐ0�£š÷å¦MºŸn0Ëù$Ã…‘ ¶ó¯LØÎb¸0¢Áâ*;¦$ƒˆˆˆˆHM±qcÙG~Ýuü4YÞ=v®]ëUy‘ëz/çï¯ó_ ,V6‹ ëO‰_kY²K¯KˆˆˆˆˆˆˆH¹L¸�\àrÿj8]³lN© ³,É`š—ס$ƒˆˆˆˆHuÒ±#Œ«~ø%¹.z]¨zÌiš˜¦‰Åbq/YÕƒ é:ÿ×f£õk§Nº·nP¢Áá§Yö½Ó‡œN(9Ÿ`(=?¯i©’ """""Õ\çÎeùŸÒœe«KXl`±VYÜåtât80l¶²©ü«*þÁϰPýçdÊe–Ý[Îó£LÓE©³,™PjRö½ŠÍ²9J†’ """""""R>óB‚Á³ì5‰R'”8ËF4”˜6‡ (;v)%DDDDDDD—ë¢W$(û¾ÈU6ŠÁé,Áàë› ¸ôº„ˆˆˆˆÈoÚ7ß|£Nø-¸Â×%œN'‡›Í†Õ‹×%œ®²÷âm°êu 9/&&æºÔSì40/Ì¿à0(. üè~ÅðuáÀÀÀ$¿DI‘ÿ!J2ˆ”Ç0Êî)«áÂf‹áÂÇ�Ó>°ù¸ð±Zðó—ËÀ×¢$ƒˆˆˆˆˆˆˆ”ÃjXp_¹Ä…Åbàc…@‹ «üŒ²ÍâÂ0]ØÊɉ)É """""""X¬`à:ÿ«,†›aÁ×âÂj¸°Z\Ø 0\`1ÌË–]µ¨EDDDDDDj6‹Å‚¯Ÿ‹âü"L— ˜¸L““‡—ËÄÀ‰aº°8Á,qD1¾¾¾žõ¨+EDDDDDDj6›ÍFDŽ}wGi)¥¥NŠL“³“|Ó¤Ðé Ðá Ô NžË§y„„„xÔ£$ƒˆˆˆˆˆˆH çããC÷va|ùÿ޳÷È)NæsàD>šü£ÄÉ™B?”p® €¼s…=zš¦µò¸ùæ›=êÑœ """""""5œÍf#Ò^—Ø'™“±“.=cØpĵƒÁb°ÅfÐÆé¤~‰ãÔ9:|Gt£0ÂÂÂ<ëQWŠˆˆˆˆˆˆÔl†aÄ€û#(qå±l„Ö°"¸©6üèÃÎÒbrl&Ã#$¾‰M›6%00У%DDDDDDD«ÕJhh(O=ìG—V'ùŸ-gøêà÷œ9wŽºv?º61è -"o"""‚ºuëâr¹<êP’A¤*))aÿþýlܸ‘Î;Ó¬Y³Ëf…©Ê”)SHHH [·n×Tæ—ŽñJþêÀÔ©S‡úõëc†ûØ‚ ())aÈ!^×wáœAƒ]uL—¶{5qˆx$ l6êÔ©CÛVÁÄÞÖ€üü|V«•àà`êÖ­Kpp0X­V‡ÇùšøQ¤Ú¿?}ôõêÕãСCäææªSDDDj¸S§NQ«V-zõêåõ9óçÏgçÎ×T¦oß¾„‡‡sêÔ)ý;wîÄßߟÂÂÂkº.ob¬JNN½zõ",,ŒN:M:uèÚµ«»ÌºuëX³fÍÕ{5çTUÇõ¨SÄb±@ݺuiذ!‘‘‘4iÒ»ÝNhh(X,å§”d©²²²ˆëØ‘öÚ‡¯¯:EDD¤†[ºt)¥¥¥lܸ‘ãÇßжϞ=ˤI“~•ýrôèQ:tè@nn.YYYüðÜ>}šåË—§Gª}²ÁÇÇüüüðñññÁ£$ƒˆ�pß}÷É­Ío¥Q£F„‡×W§ˆˆˆÔp .$>>Ó4ÉÌ̼¡mûúú2oÞ<²³³uý2mÚ4JJJø¿ÿû?Z·naøûûÓ­[7^}õUÝ8"—P’A¤²Ûí„……bš&ÿþ÷¿/›¬EDDDj–ýû÷³}ûv’““‰eñâÅ—•1M“ &É­·ÞʬY³®ªLy{ì1BCC=zt…ÿ_bš&Ó§O'66–zõêÑ­[·Ë’ÞÆ8yòd¢¢¢ˆˆˆ¨4Qàt:ÉÈÈ`À€ÜrË-WÔ§ÞÄ{ÁÊ•+騱#v»¤¤$JJJÜÇ>üðCúõëGDD;vdöìÙ^ÇðÔSOñÌ3ÏxìûÇ?þAûöí9sæŒn|Q’AD®___jÕªEii)V«›MsÀŠˆˆÔd‹-"**Šøøxú÷ïÏÎ;Ù»w¯G™äädÒÓÓ?~<+V¬`×®]|÷ÝwW\¦<uëÖ%%%…íÛ·³`Á‚rË$''“ššÊ“O>ÉÇŒÝn§k×®:tèŠÚŸ:u*+V¬ ==3f0cÆ V­ZUn›GŽ¡¸¸˜:\qŸz/ÀÞ½{IKK#))‰~ýú‘žžNFF†G ]ºtaݺu$&&ò /ðã?zC»víÈÈÈðH(Ì›7ððpêÖ­«_”d‘ëËår±hÑ"ú÷ïaôë׋Åâ1š¡´´”·ß~›2|øpbbbx÷ÝwiР{ä7e*3`À�î½÷^&L˜@^^žÇ±’’þò—¿ðØcñì³ÏÒ®];ÒÓÓñõõå7ÞðºýââbfΜÉðáÃéܹ3}úôáî»ïfÉ’%寔““”½ÞÄ{APP«V­¢ÿþ¤¦¦rß}÷ñÉ'Ÿ¸5Š#Fмys’’’(..fóæÍ^ÅѧO Ã`ùòåî>Z¸p!Ô/J2ˆˆˆˆˆÈõ·yóf>LÏž=9{ö,Üu×],^¼Øýp~äÈΞ=KÛ¶m/;ÿÂ$pÞ”©ÊÌ™3ÉËËcêÔ©û<H~~>ñññî}V«•¸¸8öìÙãuûêY¸p!=zô G|ýõ×>|¸ÜxBCC8}úôeÇV­ZÅ„ Ê=Ï›x/hܸ1îí¶mÛ²qãFLÓtïËÊÊ"99™qãÆPTTäUÖ­[—x€E‹°fÍœN'¿ûÝïtãËÏFc¤EDDDDj°… Pn"!!‚‚�ÂÂÂ*¬Ç›2U¹í¶ÛxöÙgIMMåŽ;îpï/.. 88Ø£|`` {Ôƒ7í;N�zõêEË–-ÝûCBBÊ-pÙ«#�;vì`Á‚$''_vÌ›x+b±X(**Â0 \.ƒ âË/¿dÈ!ôéÓ‡¹sç^QŸ0€¾}û’““CFFýû÷Ç××W7¾ül4’ADDDD¤†***bùòå¼ñÆ?~Üý9|ø0µjÕrÿüöÛo',,Œ¯¾úÊãAú⿨{SÆãÆ£aÆLœ8ѽ¯iÓ¦X,¶nÝêQvË–-4kÖÌëö£££ñõõåôéÓôîÝÛýéÚµk¹±ѵkWfÏžM~~¾××àM¼ÉÎÎ&::Ã0Ø»w/™™™¼û3†{î¹çŠÆ÷Ýwaaa¼ñƬ]»V¯Jˆ’ """""òóøè£())aÀ€Ô©SÇý¹å–[èÓ§Ë—/§¸¸Ã0èÚµ+ééélذ;vðÈ#PXXè~¥Â›2Þ --cÇŽy<ì?þøã,]º”-[¶ŸŸÏôéÓ9yò$#FŒðº}???’’’X¼x1™™™‘——WéÒ™ÿõ_ÿÅ™3gxàRíSO�� �IDAT8pà€G‚¦"ÞÄ{ÁÖ­[Ýs0¬^½šÏ?ÿœ¡C‡ºë1 ƒ}ûöqìØ1¦L™àÑ7Uñññáø³fÍ¢uëÖÄÆÆº¥¤¤Ð½{w÷(ª¶E”d‘ -Z´ˆ‡~˜Úµk_vì‰'žàìÙ³¬Y³€±cÇRZZJÏž=y衇:t(uëÖõ˜oÁ›2ÞèÑ£½{÷öØ7mÚ4Ú´iC÷îÝiÔ¨3fÌ`Μ9ÄÅÅ]Qû“&MrOi·Û‰ŒŒ$--­ÂXÚ´iÃçŸNQQ-[¶Än·Îܹs=Ø/åM¼P¶ÄôéÓ©W¯¿ÿýïyä‘G6l�Œ9’1cÆÐ¢E l6Æ cüøñ¬_¿Þëþìß¿?Àe£öíÛGVV‡Ã«mo3fÌp 8>ø€áÇ«GDª©Ù³gÓ·oß*Ëéß¹ÞæÍ›ÇàÁƒIOOgРAêùy}12ÃÀtˆ÷îßœy[v2xÞ‡¤zˆAwµ¹¡áº\.\.¦iât:1M‡ÃÓ餤¤„ÒÒRŠ‹‹ùæ›oxðÁ]œ››Kýúõ±X,×Tæjpúôiìv{…É oÚw8äææb·Û½^Îûܹsìß¿Ÿ›o¾™FUœ<1`:Àb£ ¨¸ÂxüñG, þþþ?~œàààrç‡ÈËËÃÏÏ�Ž~wŒ›o©ÍV/ò7YYY$&&rèС çŸêá£>"&&???|||ðõõu/Yo±X°Z­X, øì~ܱcîrλôû‹ë²Z­8ÝÏšøQDDDDD¼æÍrŽWºäã• ôXájÛ·ÙlDDD\QÛµk×.wõŠ«·V­Z@Ù„”7ÝtS…ÉŽKõë×ÇazCZZ=ô rCèu ‘jêܹs�üçþ§:Cnd©¦j×®ÍÒ¥KÕrÃh$ƒˆˆˆˆˆˆˆ\J2ˆˆˆˆˆˆˆÈu¡$ƒˆˆˆˆˆˆˆ\J2ˆˆˆˆˆ�¥¥¥ìÝ»—£GbšžË,X°€¹s窓Ê1eÊ>ýôSu„J2ˆˆˆˆˆÔxGŽá 44”{ï½—æÍ›B§NÜeÖ­[Çš5k~“××·o_ÂÃÃ9uê”Çþ;wâïïOaaá5Õ?þ|vîÜyUç6oÞÿ ?={öÔ *¿)Z]BDDDD¤;zô(íÛ·'<<œÍ›7Kqq1›7ofݺuÕæ:Ïž=ˤI“xçw~Uq-_¾œÂÂBÛ·oçÅ_$33“Fe«Cˆü–(É """"RƒM›6’’Ö®]Ë-·Ü€¿¿?ݺu£[·nÕæ:}}}™7oC† ¡mÛ¶¿š¸Z¶l‰ÓéÄáppæÌ�n¿ýv¢££usÊo’^—©¡œN'<öØcîCU6oÞL—.]ˆŽŽæõ×_÷8öá‡Ò¯_?"""èØ±#³gÏö8>~üxž{î¹Jëp:L˜0¨¨(š7oάY³èÙ³'î2¦i2yòd¢¢¢ˆˆˆàÕW_­2îÇ{ŒÐÐPFËå*·ŒišLŸ>ØØXêÕ«G·nÝÈÎξ¬Ì„ ˆŒŒäÖ[oeÖ¬YåÖs¥ñUæ©§žâ™gžñØ÷üƒöíÛsæÌw¿®\¹’Ž;b·ÛIJJ¢¤¤äg‹IDIñpäÈŠ‹‹iß¾½Wå¿ýö[žyæúõëÇ Aƒ˜8q"‡ö¨¯K—.¬[·ŽÄÄD^xá~üñG÷ñ£G²nݺJë˜<y2sçÎåùçŸgåÊ•ìß¿Ÿ7ròäIw™©S§²bÅ ÒÓÓ™1c3fÌ`ÕªU•Æ^·n]RRRؾ}; ,(·Lrr2©©©<ùä“|üñÇØívºvíÊ¡C‡<ʤ§§3~üxV¬XÁ®]»øî»ï<깚ø*Ó®];222Ü#�æÍ›Gxx8uëÖåèÑ£¬]»–´´4’’’èׯéé鉙듈’ """""â!''€ xUþäÉ“üÏÿü#FŒ`ìØ±øøø°~ýz÷ñQ£F1bÄš7oNRR’{noë(**âwÞá±ÇcÔ¨QÜvÛm̘1ƒ ¸G3sæL†NçÎéÓ§wß}7K–,©2þpï½÷2aÂòòò<Ž•””ð—¿ü…Ç{ŒgŸ}–víÚ‘žžŽ¯¯/o¼ñP¶úÆÛo¿ÍÀ>|8111¼ûî»×-¾ŠôéÓÃ0X¾|¹;Ž… 2pà@w™   V­ZEÿþýIMMå¾ûîã“O>ùÙb©ˆæd©¡BCC8}ú´Wåï¾ûnš7o€ÁÁÁCò²²²Ø´i“û¯ûEEE^×qðàA HHH¸¬mÃ0ÜeòóóY¸p¡û/ñÀn·{u 3gΤC‡L:•Ç{̽ÿB½ñññî}V«•¸¸8öìÙ”Ô8{öl¹s:”ßê5`±^Q|å©[·.<ð�‹-bÈ!¬Y³§ÓÉï~÷;w™ÆèÞnÛ¶-iii˜¦yÍ}&¢$ƒˆˆˆˆˆT)** €o¾ùæšër¹\ 4ˆ/¿ü’!C†Ð§OæÎ{EuÔªU (›¤±"N§€^½zѲeK÷þ¯Ú¸í¶ÛxöÙgIMMåŽ;îpï/.. 88Ø£|`` {ÔCAA�aaaÞÅת X¬W_E @ß¾}ÉÉÉ!##ƒþýûWÚO‹…¢¢" øæ>Q’ADDDDDªD·nÝxï½÷xöÙg¯i¹Ä½{÷’™™ÉÚµkéÔ©¥¥¥W\GÆ ‰‰‰aÛ¶môêÕ €]»vyÌE¯¯/§OŸ¦wïÞWë¸qãÈÌÌdâĉî}M›6Åb±°uëVzôèáÞ¿eËî»ï> lÕ‡°°0¾úê+ºtéâNN\<Zã²øÎ'®Õ}÷ÝGXXo¼ñk×®åóÍ_TZ>;;›èèh ø.}&â-ÍÉ """"Rƒ%''sîÜ9zôèÁîÝ»q¹\8¾üòKÆŒsE Ã0Ø·oÇŽcÊ”)�;vìŠâéÕ«3fÌ`äÈ‘Œ3†Ñ£G€ÍVö÷Q???’’’X¼x1™™™‘——wÙ*•  --Í#¶   üq–.]Ê–-[ÈÏÏgúôéœ<y’#F�e¯DtíÚ•ôôt6lØÀŽ;xä‘G(,,tÏÉp=â+øÃ˜5k­[·&66ÖãøÖ­[Ýs0¬^½šÏ?ÿœ¡C‡zSJJ Ý»wwÖ¨j[¤"É ""7ÄÅ3\‹üV<øàƒÜtÓMê©ÖÚ´iÃçŸÎSO=E‡Æápмys÷_ð½áN ¼ð Œ=šaÆ1~üxn½õVºvíêU=“'OÆf³±iÓ&n¿ývÞÿ}âãã r—™4i¥¥¥ >œ‘#Gbš&‰‰‰ÌŸ?ßëx{ôèAïÞ½Y±b…{ß´iÓxúé§éÞ½;þþþøùù1gÎâââÜeÆŽKŸ>}èÙ³'aaaÌš5‹={ö¸çdpÇW\Xߨg®*¾òôïßß=ñ䥢££™>}:ýû÷'??Ÿ'Ÿ|’aÆyÝgûöí#++ ‡ÃáÕ¶HEŒ3f¸È|ÀðáÃÕ#"ÕÔìÙ³éÛ·o•åôo\oóæÍcðàÁêùMJOOgРAêˆß’/æAÆ`˜ñÞýìæmÙÉày’>è!ÝÕæ††ër¹p¹\˜¦‰ÓéÄ4MN§“’’JKK)..æ›o¾áÁüÙãÉËËãŸÿü'M›6½ê÷õóòòðóóÃßß(ÉP¿~ý«ŽiÛ¶mtêÔÉýÆÅ¹¹¹Øív÷H‡ë¡  €Ó§Oc·Û=’ËÍÍ¥~ýúX,å 7`:p˜{ìx•ñ9N6› «µâ×+²²²HLLäŸT+›¬<ñÄðÁpâÄ .›[âçî3ùuøè£ˆ‰‰ÁÏÏ|}}±Z­Øl6, V«‹Å‚a—ÝÛ;vì À]îÂy—~q]V«‡ÃA`` ûyCw•ˆˆü¬~øau‚üæddd°qãFu„Ô8!!!Üyç×\ÇÅ®4Á°lÙ2<È]wÝŘ5kmÚ´áÞ{ャ¬Íf#""âº÷C`` ÇJ åñfe†ë_ZZ=ô!!!8ÌòËÜ|óÍ74&‘Ëî1uˆˆüœêÔ©£¿Ëo’’ "¿ ___¾þúk–-[†ŸŸ üÿìÝy\T÷½?þ×Ì™a�aDdßdwDÜMAQA1%&q Ø46IÍmnš´½iúí/÷¦¹mÒ¤YjãÅXI“J$&—,Š„ e“M#( ‚ˆ0"Û,ç÷™ôõ|<|È9çs>ç³F?ïùœÏùÝï~×㌂»…F£�<öØcÝŽMŸ>]z;ÑíÆ  qqqˆ‹‹cCt¡V«ñá‡�ô¢é±§žzŠ DÃß.ADDDDDDDƒ‚A""""""" 2Ñ àš DDDDDD½¸vírssqõêULž<ÁÁÁf÷ƒ DDDDDwµ”””––"** &Çjkk‘œœ ooo<ôÐCwD=Ôj5†iÿÞ½{¡Õj±fÍ�€(ŠØ¾};æÏŸY³fA¡P˜Ý7’ê¯R©0~üx„††ÂÏÏoP¯ÓµýˆA"""""º u 2Þör={×®]ÃìÙ³o:/www,_¾ÍÍÍhhh@^^RSSððp�@`` ƒtNUUÚÚÚ&*++»í mäáá%K– ²²ß}÷>ýôS<ñăZ–®íG 2Ñ]F­V£ªª jµÚ$ÈÐyûv  ëëë%È R©àêê*mO›6 ~ø!Ž=ЍÕjLž<ÙäœÚÚZ( “`‚¹}#¡T*<<<àáá;;;ìÝ»—.]‚»»û •¥kûƒ DDDDDt— DNNŠ‹‹¥jMM nܸÔ××KiEQDVVrssÑÔÔ„qãÆ!::nnn�€ÀÎÎ .”Ω®®ÆÁƒ‘˜˜AžžŽÜÜ\ˆ¢ˆ™3gbÞ¼yfË•ÂÂBèõz$''Ã××K–,é³ –ÑÑÑxë­·››‹ùóçãÈ‘#ÐétXºt)òòò‘‘N‡ääd899!00°Û¾Ÿþô§EñÇzéu˜9c:æ-X$]˘¯§§'222Šððpˆ¢ˆcÇŽá»ï¾ƒ 7iãy'NÄÑ£GÑØØˆ3gaVxd¯mÔ—Q£F€É¬“:˜éQ‘––†üü|ÈårDDD ´´“&MÂôéÓMÊ»téR‹î—žê8kÖ,DFFò—sâÛ%ˆˆˆˆˆîrÆgô‹‹‹¥}………îöm}FF233Šõë×ÃÞÞ;wîDCC�ÀÕÕß}÷Éà5''P(øê«¯PTT„U«VaéÒ¥ÈÌÌ4Y+¡³   xyyÁÉÉ 111˜1c†Eeè'''¨ÕjÔÕÕ�4 �¾¾¾˜<y2A@LL æÎkv€>ë¥ÑhpîÜ9dggcîܹ ´ø¼óçÏãàÁƒ˜4iBCCqäÈ©®=µQot:Nœ8[[[xxxHûû*KZZN:…ÈÈH¬]»õõõ(++CKK‹Iyígi_õUGbˆˆˆˆˆF˜‰'¢¢¢MMMRaÒ¤I&iôz=²²²0uêTDDDÀÍÍ ñññÇ—òimmÅùóç¥sΜ9ƒiÓ¦A¯×ãøñã ƒ¯¯/BBBàíí‚‚³erpp€½½=¬­­áíí±cÇZT†þR«Õhnn6»̘1Ëåðöö†«««Ù}–ÖK§ÓaÍš5˜2e ->¯¹¹ ˜9s&æÎ ¹\޲²²Û¨'µµµøàƒð׿þõõõHLL„L&“ú©·²S§NÅìÙ³áää„¥K—öú8Múª·:ÒÈÂÇ%ˆˆˆˆˆËå())‡‡Z[[áç燳gÏJi Õjáåå%í“Édðòò•+W��666ð÷÷GAAPZZ …BñãÇ£¾¾Z­ùùùÒ7äõõõýZ÷Á’2ô×7àíí=à¶3–Iª—AúºZ¨MÒ¹¹¹I)t=¯°° …ÝÚÃ8S�är9T*ôz}¿Ë©T*ááá+W®ÀÙÙYÊÓlºôñxÚ©?}5Xu$ˆˆˆˆˆhèüÈ„F£AHHärÓ‰ÏÆAŸ•••é B¡@kk«´=eÊ|úé§ÐjµÈÍÍÅ”)S “ɤG(áââbrmKYZKµ´´ ±±ÑdÀÝ_ÝêeÐT6£,>ÏÑÑ …‚ ô«=úc̘1X°`ÜÝÝñïÿ&LÀĉÍסKßÛ[„ÛÖWÄ  !!!Ø¿?êêêov*“ÉPYY‰ñãÇKû+**L¶ƒ‚‚��§NÂùóç�ptt„ hiiÁ„ ú=XíO,õí·ßB¡P`êÔ©n·nõú!È�¹¢_çƒ ÑŸoý0iÒ$:t>>>5jTŸ}£V«áì쌪ª*i=‰šš“õz¿Ð…k2‘ÉdEÑì´x¥R‰iÓ¦áÌ™3¨¨¨€V«Eff&š››1sæL“tÁÁÁ8zô(\]]¥uŒoOÈÏÏÇ™3g ÓéÐÖÖ†êêêËäîîŽêêji­KË`ŽN§Ãõë×ÑØØˆòòr:t™™™ˆŠŠ‚Ý€Ûm õº™óŒ " qnTÆëMÐÿ°¯¯??‰^½ìûô�ô"�¹€™³Ã‘“—¼‚3hÓêÐÜÚ†ÊKÕÒ9þÈø&û>=€CŸ}އC®PB”ÉÍ^C®PbòÔiÈ+8ƒò‹hm×"ã›L\¿ÑŒÐ°™—µë‘¿ªÃg2€Ž©ñk×®…R©”ì*::À®]» P( P(gò–�˜<y2 ºÍX¸p! öíÛ¹\QŒÕ«W›½^pp0rrrðæ›obúôéX¶l™Åe誢¢¯¿þ:d2àììŒ7öûÕ—æ˜Ô "D½Á!“°ú§ }ž§Õj±oß>>|r¹¼×öèd0ˆÀøÀ`Œ=•ƒ¿½þcu °~ü�*›QXü“hìÛ·§rò0uêTÌ¿í:>úØ|ßÌ[°ÈqáÂ8;;cyìJlß¾2A)åÛõ:‹ÒÑWÿÜùc_-[‡qn=žÓÓ>i+_‡+Ù«¯¾*&&&bÏž=Ø´i[„蕜œŒ„„„>Óñ³€ˆعs'6n܈;v ))‰ 2’díÞÙ$î�"-ë»™9ظóìHZ…¤9ÓoiqEQ„(Š0 Ðëõ0 ÐétÐëõhoo‡V«E[[ ;¬šZ«Õ¢¥¥¥_‹6š h4¨Õênk?˜ÓÔÔkkk“WjÞl†‚Á`€¦áÔv¶+¬�yß?û»¹¹YzsEŸçˆ–µÑPöMUUvìØ 6ÀÇÇgHï—ÎAzöé§ŸbâĉP©TP*•°²²‚ P(Ëår¹2™¬[ ñäÉ“°±±‘ÒÏëúsç¼A€N§ƒ­­­4ÞàL"""""ê7¥R ¥R9àóår9,Noîq†›-ÃPêeÐ è<K €ùAöh{»A©ƒ Èá4¦{ß¡¡¡žžž¨¯¯ÇÉ“'ááæ _Ÿ¾ó´RÂÚêæûÊÀg%†=ˆˆˆˆˆˆ¨O‚  ¦¦Fzݦ··7æÍ›Ç†! 2QŸ‚‚‚¤7‡õ„o— """"""¢AÁ  ˆˆˆˆˆˆˆhPpM""¢!’™™‰ººº»²îcÇŽÅœ9sxÝ¡ÒÓÓáíí ??¿›Î«±±r¹öööý>777z½3fÌ`§ ±ÛÕÖì㑇A""¢!RWW‡ªª*6 k)))(--5Ù§T*ñÛßþ¶×Ÿ•••dØ»w/´Z-Ö¬YcñuKKK‘‘‘+W®@¯×C¡P )) ãÆ³8óçÏC«ÕÞ¶è@ê}3}…ˆˆ“cµµµHNN†··7zè¡!+ÃíjkK®{«úd ""T*ÆŽ{WÔµ®®mmmìt¢ÆÝÝË—/—¶e2Y¿Î „Á`¶Ïž=‹k×®aöìÙfÓkµZìÛ·X¿~=är9ŠŠŠ`ee5¢Ú­k½‡ZQQQ· Caaá]ÿÞê~*o¿ý6Ö­[ˆˆˆ¨gcÇŽÅÊ•+îÛ·³7ˆF •JWWן?yòd“í³gÏ¢¾¾¾Ç ÃÕ«WÑÚÚŠÙ³gC¥R�¦N:âÚ­k½‡’Z­FUU4 ÔjµI¡óöÝèVöÃPJIIÁÑ£G±iÓ&,Z´ˆA"""""ºóˆ¢ˆ´´4äååA¡P <<¼[š#GŽ@§ÓaéÒ¥ÈÎÎFaa!ôz=’““áëë‹%K–˜¤=z4är9¾ÿþ{¸»»›½î`oo H娶m¢¢¢àïïo’¶¤¤Ðh4 Á’%K ‚IÙ<==‘‘‘ÐÐP„‡‡CE¤§§#77¢(bæÌ™˜7o^·zçççC.—#""¥¥¥˜4i¦OŸÞ­ÞÆs²²²{úš4 çæè¥1pssëÖV'NÄÑ£GÑØØˆ3f`Ö¬Y=~¯×ëáïœ9sF ÞÔÔÔHu®¯¯‡^¯—ÊÑ[ÝŒe ±cÇ Ñh0g΄……áóÏ?GQQÜÜܰdÉ8::JeÐëõ(,,ì±­-½n×¾hllDzz:Î;¹\Žùóç#,, rùï)¨¨¨ÀGŽâêµFD†Ï¼9‘fï¿ÎÛ¾¾¾=–u¸ª««Ã‹/¾ˆƒbóæÍðööfˆˆˆˆˆFN‡ëׯKÛ¶¶¶Ò`,##§OŸÆ¢E‹àããƒãÇC£Ñ˜œ¯Ñh Õj�AAA(++Ãõë×±dÉØÚÚv»ž ¦L™‚ôôth4DEEI3Œ ТɾÚÚÚndÕÕÕáÛo¿Exx8ª««qòäI¸¸¸ ,,L*Û¥K—péÒ%Ì;�€¯¾ú EEEXµjZZZ°ÿ~¸¸¸ ((�––†S§NaÁ‚?~<Nž<‰²²2“�GçzÛ*;;óæDÂÇËdzObçÎxì±Çààà sùòe”——#,, ---8räáàà`6РÓé |||PPP ­O——‡ñãÇKit:€Ž…9 ±bÅ ©nŽŽŽRÝêëëQ]] . 22/^Ä¡C‡PZZ µZ˜˜|öÙgÈÎÎFTT””ÿåË—ÑÔÔ„°°0TWWãĉptt”ÚÚ’ë^ºt /^Dxx8<<< Óé‘‘ÆÆF¬_¿ÍÍÍP*•ÐétP(:†«W¯^ÅÁƒ1}F®ßèh¯ÉCLÚ´s?h4TWW£¦¦¦Çûb¸ËÉÉÁ/~ñ ÄÇÇcÆ fd """¼ûî»Ø»w¯Éæýýýñä“O"$$dØ—ÿòåËØºu+¾ûî;ìß¿ŸJt‡¨¨¨À믿.m¯]»þþþ0 ÈÎÎFhh¨48‹Åùóç{ÌËÁÁöööÐjµ½~ ¤§§ãüùóX³fM¿}4R*•xðÁ¡T*1eÊ\»v çÏŸ7Lêt:¬Y³£FÐñ­üñãDZxñbøúúèX̲  �AAAÐét8qâBCC¥YK—.EIIIåÐëõÈÊÊBhhhǺ âããñò+¯âøñ㈉‰‘Ò677#)) NNN0 ÈÈÈ@EEEë÷( ( L:Ÿ|ò Z[[agg‡ÒÒRÄÄÄàìÙ³R½^“'ObñâÅ��œ9sÅÅŘ8q¢”ŸL&úuë0jÔ(xzzâôéÓpwwÇâÅ‹�.\À¥K—¤¾B¡€ 6lØ�¥R‰ÐÐP\¿~] Xz]ãýeì caôèÑpvv†L&ƒÁ`0 ¶ÛËÁÑ í:²¾É@YYBCCoê¾îôz=RSSqìØ1lÚ´IꈈˆH²aÃ( ¬]»�àêêŠýû÷ÃÚÚú¶•)++ À /¼Ðcš“'Oâõ×_GJJ ÚÛÛ{ý<¾¾¾Òç�išzcc#Z[[M¦û¦ùóçÃÏÏ{÷îÅÎ;±nÝ:xzzö+Ñ£GC©TJÛÈÊÊ‚(ŠÒ–nnn&ƒÚ††hµZäççKoÖ¨¯¯—Ö60ïÏTuã9^^^Ò>™L///\¹rÅ$­——œœœ¤¶6Îâèi*¿ &LÀÁƒqîÜ9xxx@«Õ" �çÏŸ—ÒyIÕ\�� �IDAT444À`0 °°ßÿ½IÝŒù ‚�www©¾ÖÖÖR•J™LfrŽ£££É¿WÞÞÞÈÊÊ‚\.·øºžžžÝÖ˜3gŽtDEEÁËËË$È`l/½øc{ ¹™ûb$ÚÛÛGLyd ""ºÅ:?Ï<mÚ´Û`¸rå Ö¬Yƒ{ï½·×tƒo¼ñÒÒÒ¸°#ÑH&“™<ÿndœ~?”Sµ===ñðÃcëÖ­8}út¿ƒ æê¢ÓézH°pqq‘öûÆ·\ôçù}ã ·ë2 Z[[¥­T*Æââbi®ýÖWÝû¾1¶õÍ\w„ xøá‡qäȼ÷Þ{X°`Ùµ?†ú¾Ž¿—±±±HJJ‚½½=ƒ DDDts4 ôz=ÆŒÓkºÚÚZ †~¯ íÚ5ÄÄÄ ²²²Ï´ÆéÂ>>> 2ÝEœakk‹êêjé±½^/,t[ÂÖÖnnn¸zõªÉ�«ósöåUUU%Í艣£#A@KK &L˜Ðí¸Z­†³³3ªªª c‘Å–––ó3f d2*++1ÞÏפܯuCHHöïߺº:ÄÇÇ÷»nƒ©s[ßìu]\\ðàƒ"-- ÇïñÍ$ƒQÖ‘`âĉؼy³ôèÉH Ñ0œœŒ'žxZ­?þ8ZZZðî»ïèxny÷îÝP(øàƒðÈ# ¹¹qqqËåøöÛoQ]]ØØX¼÷Þ{=z4Þzë-lÞ¼¢(â©§žÂsÏ=‡M›6aÏž=�€>ú§OŸFqq1�`Ïž=8uê¶nÝŠI“&Ýt}ÊÊʰsçÎaÕÆ±±±=>ïLt·ëºð£qà/|}}qúôi¸¹¹A¥RáØ±c&ƒsÜÝÝ‘——‡¦¦&ØÙÙu;^SSƒºº:L˜0‚  ººååå˜3gŽ”ÆÃÃùùù¸víjjjžžnöZ•••8þ<üýýqöìY\¼x .ìµ|‚ <<§N‚§§'‚ƒƒ¡×ëQ__/=ˆÌÌLܸqJ¥ÕÕÕP*•fg|�k�L›6 gΜ¿¯\]ÆâÄwÙhnnÆÌ™3­¯‚‚‚ “É Š¢ÙÇ9,©Û@õÖÖ7sÝœœøùùA­VC§ÓIk3 UY‡3üüç?Gttôˆ{¬ƒA""¢adÓ¦Mزe òòò°oß>ìÙ³+W®D||<>úè#¤¥¥!::>ø ¶mÛ†´´4|óÍ7ÈÊÊ‚¯¯/BBBðé§ŸâùçŸÇ«¯¾ŠÇ{ ùË_pሢlÙ²~ø¡tÍçŸ{÷îE~~>L}»YÇÇ¿ÿýïaÕÆ;vì@RRo6"3º.üt¬!ãããƒùóçc÷îÝxï½÷`kk‹+Vt[c «àà`äääàÍ7ßÄôéÓ±lÙ2“ã---8xð >ùäØÚÚ¢©© S¦L1yÝá”)SPRR‚-[¶`ìØ±HHHÀÖ­[Í4233‘ššŠööv̘1âÅý.\ƒÁ€}ûöA.—CEcõêÕ�€E‹A.—ãÂ… pvvÆÊ•+±}ûv“çü»ŠŽŽÆ°k×.(ä€ÂÊqqqÒ-ƒJ¥ÂÚµk¡T*{„öU·ê«­zÝÜÜ\<xVVVpttÄ=÷ÜsÓíäää4 ûâvŠGbb¢Éú! 2Ñ€Ÿã;w.fÏžm²ÈSçGŒéfÏž-Mã={6¾ÿþ{¼ûî»xõÕW Û„‡âyÜžDDDHï+¿ÝÞyç;vŒ7QÖ¬YÓëqggglÞ¼öööÉd6IÓuiccƒ¤¤$455™]wÆ××Ï<ó ÑÜ܌ѣGw[÷ÁÑÑ›6mÂ7¤A×sÏ=g’fÅŠÉdP*•hnn†B¡è¶&BO\A…{î¹jµÚd–‚\.Ç¢E‹¤íªª*´¶¶šL¹ïš·J¥Â½÷Þ íŠåh¹qjG@.ôYž_ÿú×ýê#“íÎo®°¤n]Ë`gg×­m¯®ìO[÷÷ºF‰‰‰ÐéthkkèQ£LÉ驽Yïmjccƒ5kÖH3Qº–u8züñÇïˆÏˆˆˆ†©Î Žõõl³q5󺺺§'ßJ~~~X¹rå°iKˆn^×7X¢¯Ï¢Ñ£Gcôèѽ¦éí[ÝÎÇ.N)—ËáààÐmQQàéé‰úúzœ<y®®®Ýøæ(•J(Ð^ƒ­§º DÚz ×5¾‚s°ôY 2ÑmÑy%ô[9cˆèN%jjjPXX…Booo“Ç9hørss³hqR 2Ýjjj�t,f|Lb¤.ED4!((ˆ 1EDD°n#ˆˆˆn±Îë+ƒ�¤÷¨¿}é¼z»¹•Ü‹ŠŠÐÔÔ•J…/¿ü�ðôÓOKÇ=<<pöìYœ9s­­­øâ‹/¤cuuu�~œFZPP€üü|œ:u ‰‰‰fË­×ëQXX�Ò‚’ dõB4�6CŸär�ü÷äŽéN6Ñ­óÞ{ïá—¿ü¥´““ƒÄÄDü÷ÿ·4€7¾9â…^Ò%''ãâÅ‹&y3«W¯F@@�ÊËËñôÓOcãÆÒñßþö·pqqÁgŸ}///”””��üýýññÇãìÙ³x衇��_ý5^~ùeÜwß}f˽sçNlذ �€úúz<òÈ#øôÓOÙ©DD½tüÓçFbî$œÉ@DDt ­_¿ëׯ7{ìÿý¿ÿg²=wî\“@CW®®®8xð JKK1vìX8::š‰‰Á¥K—P\\Œàà`Èd2lܸÑä}åX½z5är9\\\z¼VRR’’’ðþûﳉˆúÒåÔKFd€A""" ?|óÓÛ3 `Ò¤IÒvç�ƒ‘««+“ˆnڻヒööv<üðÃl €‹þ!ƒ w ˆˆˆ†X]]öíÛ7(y‰¢ˆââb�À·ß~‹>úhH^ùu3u%¢‘%!!AzôI&“ÁÃÃþþþxôÑGqï½÷ZœÏ_|ææfˆîr 2 ±¶¶6TUU J^ÙÙÙðó󃟟�`ûöíX¶lߘÑÀ………áÍ7ßD}}=ÊËËñî»ïbݺuøóŸÿŒ_ýêWCr̓¢¬¬Ìd"ùd """cÇŽô<W¯^="êîììÌ��š€ÜG^¹§ÄvcÙw{{{̘1CÚÞ°aî¿ÿ~üá@BB<<<ýšÀÙ³gd ºÃ0È@DD4DæÌ™ÃF¸Ûå~ ¼³qä•;q™Äþ»‹©T*¼ôÒK˜6mvî܉ßÿþ÷0 xþùç±k×. <úè£ø¯ÿú¯óè-ýßÿþw¤¦¦B«Õ",, ‹-Â+¯¼Òïkƒ DDDDwŸ E@dâð/gÖ;@é1öuܶAAððð^û?ÿó?Ø»w/vìØ«W¯âÑGÅäÉ“göüÞÒÇÆÆ"-- •••xå•W¤·ãô÷DCÁ Š0ˆ"r9ƒA"""¢a(2qäÌ `:qwwGmm-ÚÚÚðÆoàùçŸÇ¢E‹�t¼M"%%Ål� ¯ô¾¾¾puuÅõë×1oÞ<‹Î!º•ô€ˆˆˆˆˆh°ÔÕÕaîܹ(++Ã7ð¯ý û÷ï�œ;w®Çµú›~ ç %d """"¢ArõêUTTT 00z½�°|ùrLž<YJ3zôhóƒ³~¦è9DC†þcˆˆˆˆˆºyã7`mmÄÄD888ÀÊÊ õõõ½å&  Ïô2™ íííý:‡èv` ¡d """"ºËµµµ¡ºº:ßÿ=>úè#üóŸÿÄk¯½†qãÆ�þã?þo¿ý6"""°jÕ*´µµáܹs ë–ŸJ¥ê3ý¬Y³ð¯ý 5557nœEç UÁ ¤m±§@ƒh€L&Öu9RtE­€BiA¡ÀŠé!pQÛ1È@DDDDD·NVVüüü —ËáããƒÉ“'ãØ±c˜9s¦”æø´Z-6mڄǃqqqصk—Ù<ûJ‡þóŸ Dbb"Þ|óÍ~_ƒh0D bßéDˆ?Ìj¾^;ò-0æ< �¹�…R‰ ‘Ód """"¢[cÏž=¥S©TøË_þ‚?ýéO¨ªª‚‡‡Š‡]}¥wttDzz:._¾ ‹Î!jrYÇL±K,AË Èdæ1<ù“p¸ûùcoÞ9d•]º-eào,Y>€P(àãã3hé]]]oúDƒA.”‚�ƒ(B«ÿññ A.“Öc†÷ÓøIˆ?&Nœ…Ò궸r‘ d¶Q 0 [Œˆˆˆˆˆˆ¨Žk2ý@.“A>Ì_U9¬ÛM@DDDDDDDƒA"""""""|\‚ˆˆˆˆˆˆnQDCÇ߯mƒÉ�™ùïÁõ¢irýû>Õ0ì0È@DDDD4B²häE@ßÞ}¿ drèõzèt:( ‚��Ð�ƒhš\.”ƒ07_«×à þß׉&Nœ8,ÊÁ D·–^Û1›A"V‡Ìô" 3tÌÊg&Ãd.¸&ÝZ]‹èãu‘æ‚ |TbxbˆˆˆˆˆˆnñHT�Ð)J ë{hÚ9¨ g€aøv-›€ˆˆˆˆˆˆnýhô‡áh§EÑtá…ÎÛƒ œÅ0|qM""""""ºõd�ý:z½^:¬Óé��‚ @¡PtÄ"~.p&ÃðÅ ÝzƨÁ³Azì g0  2Ñ Ð Ðw}×d/dCÔú!(»AÚtz(ä2r®,0Pl9"""¢á¦©Žm@Dwœšp§aˆˆˆh¸Ù÷àÔ¶8|\‚ˆˆˆh¸Ñ¶É÷ë·ó~Îö a+==ÞÞÞðóó»©4Ô!77z½3fÌqý, 0år(ä÷.4ô8“ˆˆˆh¸zï çc¶Ý---xñÅñþûï÷kP|ùòå›N3RRRð׿þÍÍÍ&ûkjjð /Ho*ÎΟ?sçÎõ«Î/¼ðŽ?ÞíXmm-^xáìÚµë¦Ë5>ìo]ˆA""""º¶?È@ÝgΜÁ`@YYšššnÙuÏž=‹ìììAÉ«µµiiiæ<·JQQQ·}………¼©G˜·ß~---#¾|\‚ˆˆˆèvûö=à›í?n_.þñgm+°u5¸ðœTæ ]9²Þ1ý{$Ée¿Íòóóáåå…ŠŠ œ9sááá·,ÈP__Ù³gßt^‚ ''3fÌ€››Ûm/Ï­ V«QUUFµZmdè¼MÃ_JJ Ž=ŠM›6aÑ¢E 2Ñ�}³(=Ö{šw6a÷ß}8ôå)=ÖwyèŽrõêUTUU!11‡F~~~· ƒ(ŠHKKC^^ …Ù „%i:ËÎÎFaa!ôz=’““áëë‹%K–@Edee!77MMM7n¢££û L:%%%8|ø06nÜh6(ŠHOOGnn.DQÄÌ™31oÞ¼Ësýúux{{cÖ¬Y�:øòË/±råJ¸ºº�¾þúk‚€ÈÈH‹Ê~äÈèt:xzz"##¡¡¡fÛêäÉ“(--EBB¬¬¬ÌÖ'00999(..–#555¸qãBBBP__oR÷¾ÊfI8p�öööX°`tζmÛÿ~·;ý¨®®/¾ø"<ˆÍ›7ÃÛÛ›A""""º A‹:f2hº<ÿì:Xð80y9ÛÈSbÙýPPP€1cÆÀËË S¦LÁ—_~‰ºº:Œ;VJ“‘‘Ó§OcÑ¢EðññÁñãÇ¡ÑhLò±$É턲²2\¿~K–,­­­”Ovv6æÍ›'å³sçN<öØcpppè1?DEEaß¾}ÈÍÍÅ´iÓº¥ùꫯPTT„U«V¡¥¥û÷‹ ‚‚‚Ì–çôéÓ(..–‚ ÅÅŨ­­EYY™dÈÉÉÁòåË-.»F£Á¥K—péÒ%Ì;ÝÊYVV†#GŽ`ݺu=�@¥Raüøñ&A†ÂÂBC¡Pt럾ÊfI644@E“}µµµhkk뱜½µ;u—““ƒ_üâˆÇ† ¤ß ˆˆˆˆ¨†§Ò:f-dí4 0<qpòeÑÈÏÏÇÔ©S�“&M‘#GŸŸÅ‹� ²³³а°0�@ll,Ο?/åaIš®`oo­V+}c«×ë‘••…ÐÐPDDD��âããñòË/ãøñ㈉‰éµ.S§NE^^Ž=Š &˜Óëõ8~ü8/^ _ߎߧÜÜ\ ((ÈlyüýýqâÄ hµZ(•Jœ;wAAA(//Gdd$®\¹‚ææføøøô«ì:kÖ¬Á¨Q£ºÕ¡¾¾©©©Xºt)<==û쿉'â“O>ASSìììPXXˆ˜˜œ={Ö¤î}•m }h‰¾Úzn·ÔÔT;v ›6m’~d """¢óšüê Àn,Û‚†ÄÅ‹ÑÐЀÀÀ@´¶¶B©TÂÛÛÒ ¦±±­­­½>®`IK444@«ÕÂËËKÚ'“Éàåå…+W®X”DzeËœœŒôôt“٠ƼóóóQZZ* è{[»ÀÛÛ2™ .\ÀèÑ£�áááØ½{7 JKK�ApõêU‹Ëîææf6ÀÐÖֆݻwcÒ¤I˜>}ºEõ „\.GII <<<ÐÚÚ ???“ ƒ%í:X}h ¢hµZèt:\½z---ÈÍÍ•©lll¼íkF èõzˆ¢™L…B™L6,ƒ ííí#æ3…A"""¢áÊ}2 4äòóó�Û·o7€ðöö–^ÿØÛ”mKÒX: Ðí…BÖÖV‹òprrBdd$233¥GŒƒJã ÜÅÅEÚ¯R©zÌK©TÂËË eee°³³C@@�<==a0P]]’’é1…Á(»q°[UU…ööö^•è\~ã#!!!Ëåýn×ÁèCƒÁ�NƒÁ�…B…B¹\Aàççggg( ‚Ðk»ßŠ�ƒV«•¶EQ”Ú{¸d2bcc‘””{{{ˆˆˆˆè&8t<"Á� !N‡ÂÂB,]ºS¦L1Ùÿüùùùðöö†³³3lmmQ]]-Mw×ëõÒ €Eiú ,�À˜1c “ÉPYY‰ñãÇKû+**L¶û2oÞ<˜¼ÒÒÑÑ‚  ¥¥¥Û£=•èxd¢  �666ˆˆˆ€ ðööF~~>jjj0he·²²ÂªU«°cǤ¦¦âþûïï00'$$û÷ïG]]âãã»·¤l–ö¡L&3 WTTHuã~…B!µ£££# t:&L˜ n'½^¥R ™L&EŒÁ‡Û]6 ã˜Í›7K÷ÖH"çG+Ñ0ã9 x&ãɶ !UZZ ½^©S§ÂÚÚZúcgg‡‰'¢¨¨H(úúúâôéÓ(//Guu5RRRLš–¦éÊÝÝÕÕÕhjjÐ1s`Ú´i8sæ *** Õj‘™™‰ææfÌœ9Óâº) ,[¶ ׯ_—ö ‚€ððpäççãÌ™3ÐéthkkCuuuå1jkkMß¾¾¾8uê¼½½amm=¨e···Ç<€ÊÊJ>|Ø¢s‚‚‚ “É Š¢Ù7XZ6KúÐÃÃUUU¸v튋‹qèÐ!)8% 4;FŒí^PP€’’³ín RÜ,KòEQša!“É T*µ 7ÃÁÁO?ý4þö·¿È�À™ DDDDÃÏOždÐ-‘ŸŸ³ÓÖ§M›†œœœ={&LÀüùó±{÷n¼÷Þ{°µµÅŠ+º­3`Iš®‚ƒƒ‘““ƒ7ß|Ó§ODzeË`×®]Ò”û¸¸8³oaèÍøñã1aÂKû.\ƒÁ€}ûöA.—CEcõêÕ=–ÇÕÕ¶¶¶pss“¤¾¾¾0 Ý.¬²»¸¸ !!|ð0gΜ^Ó«T*¬]»VúvÞKÊfIN™2%%%زe ÆŽ‹„„lݺUš `îúÆv?pà�:dÒîÆÏ3¶sç™ÆÆÀ—\.—Òõ–GWæÊg ÐX2kd¨ÄÇÇ#11ÑìZ 2Ѱwÿý÷÷xÌËË Ï=÷œ´íììŒÍ›7C£ÑÀÞÞ2™ ÁÁÁ&çX’¦+$%%¡©©Iš R©pï½÷B«Õ¢¥¥Å¢׬YcvBB‚ɶ ˆŠŠÂ=÷ÜFµZm2°4W�xê©§Lòqww7iŸÎƒý¾Ên hôµßÏÏÏ>û¬Åuöññ1Ùîú&KÊfI:::bÓ¦M¸qã†4 ~öÙg¥2™¬[]zkw­V Q¥õ"ÚÚÚ¤·y‚ -Îh0 T*!—Ë¡Õja0`0¤ížòè‹(ŠR€ávüñ;âs…A"""""²˜%þ¼5ÀÎήÛ>¥RiÑ q är9úUžþʲß,KÊfIä÷®íÞùíF2™LšÑ™L&“þtô'sôz½´à&1È@DDDd–N§Ãþç"''@ÇÊùééé°¶¶Æ›o¾ÉÿL ¢Îü®ƒ{½^/Í:0 …BZ¡ó¢‘Æ@B×ÀAOn&Î3$†ãë+d """.ÿÉQ(PWW‡¯¿þ�ðõ×_ã믿F||< DDCd0ÞûA€\.G{{;€ŽÙ æ>‡cæGòE:Î$À`0ºÍ– þáÛ%ˆˆˆèŽ•˜˜hÑ>""ºy½½¥¡ëc F–>ÞÐ[~ýÉC§ÓI‹ i‘Inƒ DDDtÇŠŠŠ‚§ç¯tuuí¶ ãŒàÇ7@XrŽqP¯Óé¤E?UÆ…#u:´Z-´Z­É+8‰A"""¢n ’’’¤íøøx“Õâ»jhh@yy9êêê��uuu(//GCCCÿ.ÜÜ�\-š:òAS]ÇöÕòŽcDDw(㢒ÆõŒë1ðæÞà`|\AE´··C«ÕJ㢎Àë't÷–GW:®Ç·óí 2�ëÖ­“~þÕ¯~ÕkÚ×^{ ~~~xæ™g��Ï<ó üüüðÚk¯õï¢G_~ï¤väƒÔg:¶ï×qŒè”››‹S§NÝòë^»v ÇŽCjj*JJJØà/år9¬¬¬ P(¤A¾B¡€J¥’^AÙ™L&ƒ•••ÉŸÎë9¨T*¨T*deeáÂ… R^*•JJÛSæêÒùü®¸fÏÍc Ñm„ ˆˆˆ~îÍ“O>i2óÁ¨·×Ü™uÏ“@d’ùc6ìVRRRPZZ*m«Õj8::",, !!!çsþüyhµZ̘1ã–•]Elß¾óçÏǬY³†Å�1%%/^Äã?[[[iMM ¶mÛ†ßýîwÃ~ Ûß¾4ÞCQQQÒç­1xpåÊ$''ÃÛÛ=ôP¯ùôµBnn.¬¬¬àççgq·ã¾dˆˆˆèN¡ktmÝv'®½¿ã‡Ö뽞î`-ÀÁÕÉüÁ>Î5!€QN=ïš—Aÿãß­×… PX±?é–qwwÇòåËÑÜÜŒ††äåå!55ÑÑÑ’kž={×®]ÃìÙ³œGUUÚÚÚ6¬î­­­HKKÊ+nkûÜjEEE&A�(,,ä/˜…Þ~ûm¬[·666 2 ‡_>}¾ÛîÚøáÉÿÞå?—<©bÿ? öìOºeT*\]]¥íiÓ¦áÃ?ÄÑ£GµZ=$A†úúú›D×ÖÖB¡P »™‚ ''3fÌ€››ÛmkŸ[I­V£ªª Æä~),,’ûçN”’’‚£GbÓ¦MX´hƒ DDDDÕ'õ{·Þz ¹¹¹˜?>DQDzz:rss!Š"fΜ‰yóæõ˜Goé³³³QXX½^äädøúúbÉ’%ýºF^^222 Ó霜 '''üô§?Å‘#G Óéàé鉌Œ „††"<<¢("++ ¹¹¹hjj¸qãm0ž„cÇŽA£Ñ`Μ9 Ã矎¢¢"¸¹¹aÉ’%pttì±îS§NEII >Œ7Jû\¿~ÞÞÞ˜5k€ŽÇ�¾üòK¬\¹R }ýõב‘‘ýªo×¶êêäÉ“(--EBB¬¬Ì "''ÅÅÅR`¤¦¦7nÜ@HHêëëMêÞWÙDQDZZòòò P(Ì–ëÀ°··Ç‚ ¤s¶mÛ†¨oN0Ê�� �IDAT¨(øûû÷»Ý‡ƒºº:¼øâ‹8xð 6oÞ ooï÷ùÁ…‰ˆˆˆˆ¨'''¨Õjém+_}õŠŠŠ°jÕ*,]º™™™&k9tÕ[ú   xyyÁÉÉ 111Òóòý¹†¯¯/&Ož Aƒ¹sç�4 Î;‡ììlÌ;�€ŒŒ dff"44ëׯ‡½½=vîÜiòöFƒï¿ÿiiiˆˆˆÀ„ ðÅ_àÃ?„(ŠˆE]]]Ÿ‹"ÚØØ ** UUUÈÍÍ”öQ«Õ(..–Î/..Fmm-ÊÊʤ}9997n\¿êk®­:+++Ñ#G°`Á‚ @Çl˜ñãÇ›”±°°ÁÁÁÝfšXR¶ŒŒ œ>}óçÏÇ<€ššh4“|ºí«­­E[[Û€îËá$''¿øÅ/ðÿ÷hnnQŸœÉ@DDDwŽ˜gè§G~=N½ áA­V£¹¹z½ÇÇâÅ‹áëë  c¾‚‚u;¯¯ô°··‡V«•¾©íï5Ôj5ÆŒ¹\ÞíÛ^N‡5kÖ`Ô¨QRÞYYY •Ö ˆÇË/¿ŒãÇ#&&Ƥì÷ß?FWWWœ8q...X¼x1�àûï¿ÇÅ‹ûl»©S§"//Gí¶èì@ÚÇßß'Nœ€V«…R©Ä¹sç„òòrDFFâÊ•+hnn†O¿êÛµ­:«¯¯Gjj*–.] OOÏ>ë<qâD|òÉ'hjj‚ ƒ³gÏšÔ½¯² dgg#44aaa�€ØØXœ?þ¦îçþÞc·›^¯Gjj*Ž;†M›6I÷ ƒ DDDD·ì6V\0‘hݸqÞÞÞhhh€V«E~~¾ô­o}}}ÏÚ÷7ý@Ï鉛››É Ù˜·———´O&“ÁËË W®\19wܸqÒ¹J¥RàK3  ƒEåX¶l’““‘žžŽiÓ¦ÝT]½½½!“ÉpáÂŒ=�ŽÝ»wÃ`0 ´´W¯^µ¸¾]Ûʨ­­ »wïÆ¤I“0}út‹ê¹\Ž’’xxx µµ~~~&AKú¢±±­­­^ÏâVÜc·:ØÐÞÞ>rþ)æG'uÕÒÒ‚ÆÆF899IƒêÀÀ@¸¸¸HiT*•Ùsû›~ çôg Ût…BÖÖÖ!kC'''DFF"33ÓdaÍÔU©TÂËË eee°³³C@@�<==a0P]]’’i-„Á¨¯L&ƒB¡@UUÚÛÛ{}T¢sùLh4„„„@.—÷»/t:�˜¼t0 å=6d2bcc‘””{{{ˆˆˆˆˆhäúöÛo¡P(0uêTØØØ@´´´t›úoŽ£££EéÎþœ3cÆŒL&Cee%Æ/í¯¨¨0Ù óæÍCAAÒÒÒnª}€Ž°±±ADDA€··7òóóQSSƒ€€€A«¯••V­Z…;v 55÷ß·€9!!!Ø¿?êêê? ¾pvv†­­-ª««¥Çôz½|è<×jµ&y Æ}9Lœ8›7o–út$áÂDDDDDw9N‡ëׯ£±±ååå8tè233;;;‚€ððpäççãÌ™3ÐéthkkCuuµÙü,IïîîŽêêj455Y|Î@)•JL›6 gΜAEE´Z-233ÑÜÜŒ™3giÛ* ,[¶ ׯ_¿©ö1jkkMß¾¾¾8uê¼½½amm=¨õµ··Ç<€ÊÊJ>|Ø¢s‚‚‚ “É Š¢Ù7#XZ6___œ>}åå娮®FJJŠI@�<<<PUU…k×®¡¸¸‡êµlCy <ýôÓøÛßþ6" �g2Ýõ***ðúë¯C&“ÁÁÁÎÎÎØ¸q£É3ñ .„Á`À¾}û —Ë!Š"‚ƒƒ±zõj³yö•>88999xóÍ71}út,[¶¬ß×èèèh8p�»ví‚B¡€B¡@\\<<<†¼}Ç &˜¼ya íãêê [[[¸¹¹IëEøúúÂ`0t[¸p°êëââ‚„„|ðÁpppÀœ9szM¯R©°víZ(•JÈd²÷Åüùó±{÷n¼÷Þ{°µµÅŠ+º­'1eÊ”””`Ë–-;v,°uëÖ^Ë7”÷ØÍŠGbb¢Ù52FÙ«¯¾*&&&bÏž=Ø´i?a‰îPÉÉÉHHHè3? ˆˆèn³33w~‚I«4gú-½¶(ŠEƒz½ƒ:NZèM«Õ¢­­ ………ˆíe0 Ñh V«-š>ßWú¦¦&X[[›¼æ°¿×è­V‹–––a³Øß@Úg$×·¿eÓh4°··ï1`t,PÚßùPÞc·Ó§Ÿ~Úñ–üsxjϗز!"§C¡P@.—CÈårÈd²nmzòäIØØØHéA€B¡èösç¼A€N§ƒ­­­4ÞàL"""ºã\»v ¯¼ò  V«1zôhèt:ÜsÏ=Ðh4ÉdøÙÏ~6,Êzùòelݺß}÷öïßÏΣaO.—ÃÁÁaÐÒÛÙÙÝô5úC©TJ³�FB{škŸ‘\ßþ–Í’àÈ@¾ùÊ{ìnÇ ÝQŽ9‚ÄÄD�À7ß|�À¹sç°jÕ*â­·Þºíå<yò$^ýu¤¤¤ ½½¡¡¡ì<""ñ¸ð#Ý1ÊÊʰråJTUUá•W^‘ �€£G›o® Þxã 8;;³ãˆˆèŽÁ Ý1{ì1477ÃÚÚ+V¬èv|ܸqøÓŸþdöÜË—/£¾¾¾Ïkh4\»v­Çã–æ3{ölŒ3Æ$BDD4Òñq """º#444à³Ï>бÚzOÏ1?ú裸qㆴ]\\Œ 6`̘1=z4±gϨÕj$''ã‰'ž€V«Åã?Ž––¼ûî»�€¸¸8ìÞ½[ZŒ­·|ˆˆˆd """A ¤Ÿ{{A.—ÃÞÞ�ÐÚÚŠåË—£¼¼ÍÍÍvvvxðÁqàÀlÚ´ [¶lA^^öíÛ‡={ö`åÊ•ˆÇG}„´´4DGG÷™ƒ DDDD#ÈÕ«W¥Ÿ ƒE礤¤ ¬¬ žžž°¶¶�Œ;‡F}}=aee�˜;w.fÏžöövéüÊÊJ‹ó!""bˆˆˆh„˜8q¢ôs~~>DQ”Þþ÷¿ÿÿú׿pêÔ)�¯M»ï¾û¤Ácc#Ö¯_/匪ª*³ÁA¤Ÿõz=� °°°ßù1È@DDD4L?ŽŽŽ¨¯¯‡F£Ayy9üüü��›7oFDDfÍš cVÂŽ;ð›ßü�ÐÞÞŽ;wJë+ô—qæÄÍæCÔc@‹ˆ¨«ÎÁöÛ‰ÿÑA.—㥗^ÂÏþs�@nn®d��ég�@PP� ­­ 'Nœ@dd$�@«ÕB&“Y,¬|ˆFÊ ‚ˆ¨ÇÙDDDt§øÙÏ~†|�ðꫯB«ÕJÇZZZº¥OHH€››€ŽÙÈÉÉÁÏ~ö3\¹r@Çâ� Óé¤À‘ñgKò1G¯×KßL_¸p¢(²‰ˆhDcXˆˆˆî2™ ï¿ÿ>V¬Xgžy111¸ï¾ûààà€]»vA©TbÅŠظq#�ÀÁÁü16lØ€S§NaÊ”)˜0aÞÿ}¸¹¹aÛ¶mR -- ß|ó :$]/99+V¬€··w¯ù˜³sçN|þùçhhh��Ô××ã‘GA||<bccÙ™DDÄ Ñp°nÝ:¬[·555(((€ øÇ?þOOÏn.Ìž=EEE())­­-|||¤c<òyä“ôsçÎÅ /¼Ðíš½åcNRR’’’ðþûï³ÃˆˆˆA"""¢ánܸq7n\Ÿéär9BBBnúzƒ•ÑHÅ5ˆˆˆˆˆˆˆhP0È@DDDDDDDƒ‚A""""""" 2Ñ `ˆˆˆˆˆî*ÍÍÍ(**B{{ûMç¥ÕjQTT„ÊÊJ 6.Ýõd """"º‹%$$ÀÚÚ¯¾új·cyyy°¶¶ÆO~ò“;¢®ˆŽŽ†³³3æÏŸ±cÇâ¾ûîÃÕ«WͶ‰µµ5œœœ0cÆ üóŸÿì–׊+àèèˆ  ((£GÆÂ… Íæ3nÜ8lذGޱ¨?¬­­accƒ€€�,Y²}ôoVbˆˆˆˆˆF†½{÷vÛ—ššzÇÔ¯ººáááhmmEAAêêê™™‰¢¢"Ì›7ÍÍÍ&égÍš…ôôt<ÿüó¿üå/‘——�¨¬¬Ä¬Y³PUU…o¾ùµµµ¨¯¯ÇÇŒÈÈH³ù<ûì³8uê{ì±>ˆÌÌLìß¿¿ûÝïÐÖÖ†uëÖáõ×_·¸¾Ä–-[xc o¿ý6ZZZd """"¢‘ÍÃÃ'OžDeee· ƒ‡‡ÇQÇW^yz½û÷Ÿ�`òäÉØ¿?.^¼ˆmÛ¶™¤W«ÕÇæÍ›ñâ‹/BE|ûí·�€—^z íííøì³Ï0uêTÈd2iÆÇŸÿüg³ùüêW¿ÂÿøG\¼xÙÙÙ½–ÕÞÞ3fÌ@TT~þóŸãóÏ?ÇÒ¥Kñ‡?üUUUÕ÷Àøä“Oxs )))xøá‡qìØ1ˆˆˆˆˆhäZ¾|9¬¬¬ðñÇKûrssQ[[‹èèh“´Ÿ|ò xàøøø ""ÉÉÉ&ÇŸ}öY<õÔSøæ›o°xñbà¯ýk¿òÐëõøýï???á­·Þ²eËðÎ;ïHi þøÇ?ÂÏÏ>>>øßÿýßë§×ë±}ûv¬_¿&Çüüü°bÅŠnA†Îüýý�:z½ï¼óÖ¯_qãÆõ«]\\¤²÷‡J¥ÂK/½­V‹;wöÙ†ÿûß‘ššŠï¾ûaaaøõ¯mQ»ÓíWWW‡_|¿ùÍopñâEˆˆˆˆˆhäQ«ÕˆŽŽ6yd"55qqq°¶¶6I[QQÅ‹ã‹/¾@\\žyæ\¿~]:^YY‰/¾øO<ñxà$%%á¹çžÃÿßÞ½GUU'z�ÿîÇyñòøÀÂ’’W%K,kLQVzqÌ|$eâ­ÉÔòÚx½^oã]:Ò`S.-#§±ÒDRÆSc4&¦K[™%):–`" œÇ~Ü?gÏ9<ä€Gù~Ö:‹Ã9ûüöÞ¿³Ýîß—ßï·úé'¿ËX¶l6n܈ `çÎ(,,D^^ÊÊÊŒeV¬Xœœdee!##ÈÍÍmpÿŠ‹‹QSSƒ!C†4øþàÁƒqêÔ)¸\®ßûí·�C‡EQQâãã›UÇv»¯½ön¹å–f�bbb‰cÇŽ5Y‡&L@BB¢££‘™™‰Ù³gûUïÔz|óÍ7˜;w.Ö¯__o(C"""""jõ’““±oß>üòË/�€mÛ¶aÊ”)õ–KKKÃܹsƒôôt8ìÝ»×g™²²2¼÷Þ{˜;w.^xá˜L&ìÞ½Û¯2<ñ3f -- ýû÷GFFzôè]×�‡k×®Ejj*xà$''#!![·nmpß<G·nÝ|¿{÷îPUÕg(BII 2331f̬^½O>ù$âãã¿.÷èÑïzýþûï1aÂtïÞ………ؽ{7$IjÑwÔ£G”––6Y‡½zõB·nÝСCŒ1±±±~wÔz¨ªŠììlÌž=Ÿþy›Ùn™_?&“ ;vì@||<.^¼ˆQ£Fá£>ª·ì—_~‰/¾ø?ÿü³ xKHH@LL �Àd2!$$¤Þí"+ãÔ©S¨®®Æˆ#ê­Wc™ªª*lÞ¼Ùè½pâĉFçèÒ¥ �àâÅ‹ ¾ñâE˜L&tïÞÝxíÌ™3صkz÷îôôtL˜0�йsg�@yy¹_õj³Ù0lØ0üðÃ8p Q/-QVV†„„¿¿‡†´ä3tãÆ@Ün•!]7ÞC&ŠŠŠ0iÒ$ȲosA×u¤¤¤àÀ˜={6’““±qãÆf­§©2BCC�f³ùŠ.À=—ÄÀ×;tèÐàò}úô (,,lðý'NàÎ;ï„Åb1^:t(víÚUoYϤ‘Gõkûô郥K—bèС˜4i~øaLž<¹ÙßÏùóçQTT„~ýúµè{ÄwG×— ˜0aRRRŒ ˆˆˆˆˆ¨ÍHNNÆœ9spìØ1deeÕ{¿  �[¶lÁ'Ÿ|‚‘#G6:‡Á•4UFÏž=‹ýû÷#11€{Ê .ËDGGÃl6£¼¼“&Mjr6› 'NĦM›°hÑ"ˆâ¿F_¾|ï¿ÿ>}ôQ¿¶?88£FÂúõë1þ|„……ùõ¹qãÆaÊ”)HOOÇý÷ßoL鯵k×ÂjµbÖ¬Y~}‚ øüõ;ß]?±±±HKKCttt›ÛvÎÉ@DDDDD�ÜC&$I‚¦i¸ï¾ûl` ‚€ãÇ£¤¤Ë—/àž¿À_þ”‘˜˜ˆŒŒ <ýôÓX¸p!ž}öYØl6£g…ÅbAzz:Þ}÷]lÙ²v»8tèP£ë]¾|9Ξ=‹Ç•••�€ÒÒRüæ7¿Aß¾}ñßÿýß~ïÃK/½„ÊÊJŒ;ß~û-t]‡¢(8pà�.\ØèçÖ¬Y]×ñÌ3Ï\±|‡Ã’’!//éééX³f V®\‰®]»úU‡ñññ8|ø°1ÇF ¾;ºö:v숅 âå—_n“C"""""2„……açÎØºu«Ï_û=¢¢¢Œ†ÿ€ Ë2æÌ™ƒ%K–øLìx%þ”±lÙ2,X°�°ÛíxóÍ7¡ª*‚ƒƒr–.]ŠY³f!55‘‘‘èÕ«233]oLL þñà»ï¾C·nÝЧOÜvÛm(,,ÄÎ;jѸ¸8ìÙ³š¦áî»ïFxx8n¹å¤¥¥Õ»‡·ððp¬^½¹¹¹Ø¼ys£ËíÛ·½{÷Æí·ßާžz %%%ÈËËÓO>éw&%%aРAèׯæÍ›­‰'"++ cÆŒ1æi‹„ŒŒ }Ö¬YضmRSSùÍݤ6lØà×ø?ž ˆˆ¨½y+ÿ<þÖd¥<Œ”áq×uݺ®C×uhšUU¡iE1&zs¹\p88zô¨1ñ`kPQQ‹Åb4¨KJJ|&M tû÷ïÇÈ‘#®þÞEÁ™3gYo‰Æœ;w'OžÄùóçñÊ+¯àÈ‘#øõ¯ñãÇc„ Wœ¢¡ý8yò$úöíÛ¬ âz}gÏžEÇŽeñÝQëõ׿þ±±±ØqäžÛö^™„™÷ÆA–eˆ¢I’ Š"A¨d<x6›ÍXN’$Ȳ\ï¹wY’$AQí ÎÉ@DDDDDÍR·1Ý’Fê•ÊÈÎÎÆ©S§0|øpœ8qëÖ­C\\î¿ÿþzåȲŒ¨¨¨f­;<<ááá�ÜCD¾þúkdddà½÷Þókއºû1xðàVû=Ô½mg ¾;¢+aÈ@DDDDD­ŠÙlÆ‘#G ‹Å‚#F`ñâÅ׬ ùàÁƒñ—¿ü…O� ˆˆˆˆˆ¨UIJJBRR+‚¨ âÄDDDDDDD ˆˆˆˆˆˆˆ( 2Q@0d """""j\. P\\ MÓX!Ô&1d """"jÇ&Ož «ÕŠŒŒŒzï}ûí·°Z­5jT›Þǘ˜X­ÖFãÆ�<öØc˜<yòuß¾¢¢"Œ?;wÆý÷ߘ˜tèÐ#GŽlÓÇ”Õj…ÍfCtt4ÆŒƒíÛ·óC"""""jrrrê½–}SìÛöíÛ‘ŸŸüü|¬Y³�°eËãµW^y�˜˜ˆ‰'^×m+..F||<Μ9ƒ½{÷¢´´åååøàƒpï½÷¶Ù:2dòóó‘››‹Å‹Ãáp`úôéÈÌÌô»Œ?ü¯¾új»ù7øÆo ¦¦¦ÍïoaIDDDDÔÎEFFâàÁƒ(..FÏž=}B†ÈÈÈ6¿4žŸ;w�pÇw ::Úg¹©S§^÷m[µjœN'>ùätíÚ�ŒÞ#m¹Ihh(lü>sæL<òÈ#Xºt)&Ožì×qµk×.â™gžiÿ·nÝŠÝ»w#55<ð@›Ýöd """"jça6›ñÁ¯>|¥¥¥=z´Ï²;vìÀÔ©S…{î¹6lðyÉ’%xî¹ç°wï^<øàƒˆŽŽÆþð‡f•¡ª*^|ñEôîÝ111X·nƇM›6Ëhš†eË–¡wïÞˆŠŠÂÊ•+¯º<Û^÷÷Ý»wcĈèÓ§Ö­[EQðÛßþ·Þz+&Mš„“'O¶h»TUŦM›0cÆ #`hŒ¦iX½z5î¼óNDDD`Ô¨Q8tèÏ2O=õV¬Xáó™!C†à³Ï>«·O[·nÅ]wÝeôâ8}ú4fÏžÈÈHDEEáõ×_h][,¬Zµ .— o½õV“ÇÁŸþô'dggãСC2d,Xà×±ÓÖ•••á÷¿ÿ=žþyœ>}š!µ=aaa=z´Ï‰ììl$%%Ájµú,[TT„|Ÿ~ú)’’’°hÑ"\ºtÉx¿¸¸Ÿ~ú)æÍ›‡©S§"%%¿ûÝïðÓO?ù]Ʋe˰qãF,X°�;wîDaa!òòòPVVf,³bÅ äää ++ ÈÈÈ@nnîUÕCqq±OûÛß°téRÌŸ??ü0-Z„)S¦@×u¬_¿> òælWQQâãã›Ü¶—^z kÖ¬ÁO<?ü‘‘‘øÕ¯~…üÑXæÇÄ™3g|>÷ý÷ߣ¢¢ÂgŸ>þøc¼òÊ+xá…Œù(Ö¬Yƒ²²2üãÿÀ–-[p÷Ýw¼®cbb‰cÇŽ5yL˜0 ˆŽŽFff&fÏží×±s³øæ›o0wî\¬_¿ÕÕÕ ˆˆˆˆˆ¨mINNƾ}ûðË/¿��¶mÛ†)S¦Ô[.-- sçÎELL ÒÓÓáp8°wï^ŸeÊÊÊðÞ{ïaîܹxá…`2™°{÷n¿Ê°Ûíxíµ×0cÆ ¤¥¥¡ÿþÈÈÈ@= ë:�Àáp`íÚµF·òääd$$$`ëÖ­¯§Ó‰œœ$''cÞ¼yPwÜqÖ®]‹ÄÄDŒ;{öìiÑvy=z4¹ üã1cÆ ÌŸ?C‡EVVÌf3^~ùåfïSMM ¶oߎiÓ¦CF¾ýö[tìØ½{÷Æ=÷܃»îºëšÔu=PZZÚäqЫW/tëÖ :tÀˆ#ë÷ñw³PUÙÙÙ˜={6>ÿüó6³Ýœ“ˆˆˆˆˆ0~üx˜L&ìØ±ñññ¸xñ"F…>ú¨Þ²_~ù%¾øâ üüóÏF0à-!!111��“É„8N¿Ê8uꪫ«1bĈzëÁX¦ªª ›7o6þ¢~âĉk2Ä Aƒ� �Ÿ!$6› ªª¶h»:wî �(//¿â6xÊõžR’$ 6 ßÿ}³÷iÈ!÷y-==)))8vìþïÿþϘ Ðu]VV†„„¿¥†´ä3m=l¨ûï‡!µjÞC&ŠŠŠ0iÒ$ȲosA×u¤¤¤àÀ˜={6’““±qãÆf­§©2BCC�f³ùŠ.À=—„÷¤Ž:t¸áÁælWïÞ½�G½b¹‡�âózPPÏPˆ«1iÒ$DGGãÅ_ĸqã°lÙ2,^¼8 u}þüy¡_¿~-:–qüµ%‚ `„ HII1þ]0d """"¢6#99sæÌÁ±cÇ••Uïý‚‚lÙ²Ÿ|ò FŽ —ËÕìu4UFÏž=‹ýû÷#11€{Ê .ËDGGÃl6£¼¼“&Mj5õ×Üí ƨQ£°~ýzÌŸ?aaa .×·o_ˆ¢ˆ¯¾ú cÇŽ5^ÏÏÏǘ1cŒßEQô¹bs‡ÜyçØ¹s'þë¿þ ™™™xþùçZ×k×®…ÕjŬY³ü:–Aðù ~ Ž¿¶"66iiiõî€ÒpN"""""à2!I4MÃ}÷Ý×`£X?~%%%X¾|9� ¤¤ÄïuøSFbb"222ðôÓOcáÂ…xöÙga³ÙŒž‹éééx÷Ýw±eËØívTTTÔ»ÛÂõÖ’íz饗PYY‰±cÇâÛo¿…®ëPÀÂ… :›9s&Þÿ}äç磪ª «W¯FYYæÎk”5lØ0ìß¿ÿüç?‘““ƒôôt¿·}Ó¦M8}ú44MCMM  �Q[\ׇ%%%(**B^^ÒÓÓ±fͬ\¹]»cC²Z�� �IDATvõë8ˆÇáÇyBqüµv;vÄÂ… ñòË/·É€!°sçNlݺ¢X¿©e4ü �Y–1gÎ,Y²ÄgbÇ+ñ§ŒeË–aÁ‚(((€ÝnÇ›o¾ UUl”³téRÌš5 ©©©ˆŒŒD¯^½™™yÃë°¹Û‡={ö@Ó4Ü}÷ÝÇ-·Ü‚´´4Ÿ;{¬Zµ qqqx衇pë­·"##¯¿þ:† f,3mÚ4„„„ 66Ë—/Ç;ï¼ã÷v¿õÖ[ˆE=ŸŸÿýßÿ½ªºÞ·oz÷îÛo¿O=õJJJ——‡'Ÿ|Òïã )) ƒ B¿~ý0oÞ¼€­Ùĉ‘••…1cÆó´EBFF†>kÖ,lÛ¶ ©©©<³ݤ6l؀ɓ'7¹ÏDDÔÞ¼•ÿ k²RFÊð¸ëºn]סë:4MƒªªÐ4 Š¢½¹\.8=z&Lh5uVQQ‹Åb4‚KJJн{÷kVÆþýû1räH£›¼7EQpæÌDFFÖ›CâFjÉvUTTàäÉ“èÛ·o£sTWW£¼¼‘‘‘6DÏ;WobGØívTVV]bŸqœ={;v4– Äñw³úë_ÿŠØØXì8rÏmû ¯ÎLÂÌ{ã Ë2DQ„$IE‚ Ô;~<›Íf,'IdY®÷Ü»,I’ ( ‚‚‚Œöçd """"¢f©Û�nIïJedggãÔ©S>|8Nœ8uëÖ!..÷ß½rdYFTTT««£–lW‡0xðà+.dÜå¢1- �Àjµúôž¸uíϱԭ[·€t }Vµ&f³GŽAvv6, FŒÅ‹·é.äDíC"""""jU’’’””ÄŠ jƒ8ñ#C""""""" † DDDDDDD ˆˆˆˆˆˆnRo¿ý66nÜÈŠ ë†!Q;6yòdX­VdddÔ{ïÛo¿…ÕjŨQ£Úô>ÆÄÄ·glè1nܸ›öûýôÓOñÑG5úþ¿ÿû¿#11±ÕŸV«6› ÑÑÑ3f ¶oßμ ˆˆˆˆˆ¨µÊÉÉ©÷ZvvöM±oÛ·oG~~>òóó±fÍ�À–-[Œ×^yå�7À‡~ˆW_}µÉå† ‚üü|äææbñâÅp8˜>}:233¾®é7Þ@MMM›ÿ^y K""""¢v.22Dqq1zöìé2DFF¶ùý8p ñüܹs�€;î¸ÑÑÑüòo ]»v¡°°Ï<óÌ— ÅàÁƒßgΜ‰GyK—.ÅäÉ“ý:Fý]×´uëVìÞ½©©©xàÚì÷Êž DDDDDí\bb"Ìf3>øàãµÃ‡£´´£GöYvÇŽ˜:u*¢¢¢pÏ=÷`Æ >ï/Y²Ï=÷öîÝ‹|ÑÑÑøÃþЬ2TUÅ‹/¾ˆÞ½{#&&ë֭øqã°iÓ&cMÓ°lÙ2ôîÝQQQX¹råU×CSezöm÷îÝ1búôéƒuëÖAQüö·¿Å­·ÞŠI“&áäÉ“õ>³sçNÜsÏ=ˆŒŒDzz:œN§ÏzW¯^;ï¼5j:ÔືnÝŠ»îºËè}ÑT]6—?ߟ?ûôÔSOaÅŠ>û8dÈ|öÙg�€?ýéOÈÎÎÆ¡C‡0dÈ,X°Àïm´X,Xµj\.Þzë­&롱uºî¡¬¬ ¿ÿýïñüóÏãôéÓ ˆˆˆˆˆ¨í ÃèÑ£}†Ldgg#)) V«ÕgÙ¢¢"<øàƒøôÓO‘””„E‹áÒ¥KÆûÅÅÅøôÓO1oÞ<L:)))øÝï~‡Ÿ~úÉï2–-[†7bÁ‚عs' ‘——‡²²2c™+V ''YYYÈÈÈ@FFrss¯ªš*³¸¸ûÛß°téRÌŸ??ü0-Z„)S¦@×u¬_¿xýõ×}>óÉ'Ÿ 33ééé˜:u*²²²|“—^z kÖ¬ÁO<?ü‘‘‘øÕ¯~…üѧœ?þ¯¼ò ^xác‰¦ê²¹üùþüÙ§ügΜñ)ûûï¿GEE�`„ HHH@tt42331{öìfmgLL "##qìØ±&롱uºîé›o¾Áܹs±~ýzTWW3d """"¢¶%99ûöíÃ/¿ü�ضm¦L™Ro¹´´4Ì;111HOO‡ÃáÀÞ½{}–)++Ã{g¹sçâ…^€ÉdÂîÝ»ý*Ãn·ãµ×^ÃŒ3––†þýû###=zô€®ë��‡Ãµk×ÝÊ“““‘€­[·¶xÿý-Óét"''ÉÉɘ7oEÁwܵk×"11cÇŽÅž={|>ŒÜÜ\L›6 kÖ¬Á˜1cŒ¿è;NüñÄŒ30þ| :YYY0›Íxùå—}Ê©©©ÁöíÛ1mÚ4c¨‡?ßGs5õý5µOþèÕ«ºuë†:`ĈˆmövöèÑ¥¥¥MÖCcëºuHªª";;³gÏÆçŸÞfÎ%œ“ˆˆˆˆˆ0~üx˜L&ìØ±ñññ¸xñ"FÕà ¾üòK|ñÅøùçŸ`À[BBbbb��&“ !!!>]é¯TÆ©S§P]]#FÔ[¯ Æ2UUUؼy³ÑÓàĉW5„¿e4�€   �ðRb³Ù ªªÏgn»í6cYÀ=‘aff&4M3Ö{ï½÷ïK’„aÆáûï¿÷)gÈ!oö÷Ñ\þ|WÚ'Q¼>Ë.++CBBÂUÕC ëîZ… uëŸ!µjÞC&ŠŠŠ0iÒ$ȲosA×u¤¤¤àÀ˜={6’““±qãÆf­§©2BCC�f³ùŠ.À=—„÷¤Ž:t¸ª†\ ËlŒ(аÛí‡�â³LPP1´ ¥uy=yïÓõpþüy¡_¿~-ª‡ÖTw&L@JJŠñï‚!µÉÉɘ3gŽ;†¬¬¬zï`Ë–-øä“O0räH¸\®f¯£©2zöì‰ØØXìß¿‰‰‰�Ü“P^¸pÁX&::f³ååå˜4iR@öýZ”Ù˜C‡!::‚  oß¾E_}õÆŽk,“ŸŸ1cÆ\U]^OÞûä ¼oÇØÐ0AZüúµk×ÂjµbÖ¬Y~ÕCÝuµ¦ºkHll,ÒÒÒÚäP8'p™$ š¦á¾ûî«÷~pp0AÀñãÇQRR‚åË—�JJJü^‡?e$&&"##O?ý4.\ˆgŸ}6›ÍèYa±XžžŽwß}[¶lÝnGEEE½;24ǵ(Ó㫯¾2æ+صköìÙƒ'Ÿ|Ò¨™3gâý÷ßG~~>ªªª°zõj”••aîܹW]—×Ê•ö �† †ýû÷ãŸÿü'rrržž^¯Œøøx>|ؘ¤1‡%%%(**B^^ÒÓÓ±fͬ\¹]»võ«ê®ëFÖÝ•tìØ .ÄË/¿Üfo±Êˆˆˆˆˆ�¸‡Lìܹ[·nmp\}TT”Ñð0`�dYÆœ9s°dÉ’z6ÆŸ2–-[†    �v»o¾ù&TUEpp°QÎÒ¥K1kÖ,¤¦¦"22½zõBffæUíÿµ(p÷’X½z5"""0eÊüæ7¿Áœ9sŒ÷W­Z…¸¸8<ôÐC¸õÖ[‘‘‘×_Æ »êº¼VšÚ§iÓ¦!$$±±±X¾|9Þyçze$%%aРAèׯæÍ›×èºöíÛ‡Þ½{ãöÛoÇSO=…’’äå塆?õPw]7²î3qâDdeea̘1×mØÉµ dddè³fͶmÛššÊ3+ÑMjÆ ˜<yr“Ëñ\@DDíÍ[ùßàñ·v +åa¤ »®ëÖuº®CÓ4¨ª MÓ (Š1Ñ›Ëå‚Ãá@AAÆßjꬢ¢‹Å¸½eII ºwï~ÍÊØ¿?FŽitm÷¦( Μ9ƒÈÈÈzsH´T Ë|ì±ÇP]]mÛ¶áܹs°Ùlõæ_𨮮Fyy9"##›ÕÈ Ä÷q­öéܹs NVéíìÙ³èØ±c½Û¥^‹ã²îº®wÝ]k»v퀰ãÈ <·í3¼:3 3ïƒ,ËE’$AE‚Pï;xð l6›±œ$Ie¹Þsï²$I‚¢( 2Úœ“ˆˆˆˆ¨¨{Áïù½5þE³îdˆ-i”]©Œììlœ:u Çlj'°nÝ:ÄÅÅáþûï¯WŽ,ËˆŠŠ èþ]‹24ÙØ ò¹cÃõü>®Õ>5õ>�tëÖíº—u×u#ëK„+ŸcšËs Ù&ÿýðtNDDDDÔ:ÃÏ_Ûr×é–0›Í8rä²³³a±X0bÄ,^¼¸MÖC\\œq‰›Å͸O7Óù£±ÀòZh(x`È@DDDDÔJ ×£‘Ð%%%!))馨—çž{î¦û~nÆ}ºÙÎîŸÍ;oøÛS¡©ÏqâG""""¢VÖ@ð<o¯=ˆ¨åçA€ôfðwþ‘¦Â† DDDDD­ aP¯‘àõÜjµ¢ªªŠED²Ûí°X,îóFm/þ‡ ÍêÍàY¶¼¼Üçu† DDDDD­DÝpAˆ¢ˆ°°0ìÙ³‡DDÊËËCXXXíÝ#àîÍÐŒÞPv»Š¢4kŠ¢Ô @2µuï&!Š¢q«¹N:Ál6#77¬,"2ÔÔÔ 77&“ ;wv‡ ¢Øè¹¥1eee¨ªªjVo†ÒÒÒzÁ'~$""""ºÁá‚®ëõz1x ’$¡gÏž(++Ã_|ªª*¸\.ã¡( EªªÐ4 š¦A×õOäFD­ãÜàéÍä9Ȳ Y–a2™ŒGPP:w]»B’$#œt÷b¨246¸\.ÔÔÔÀd2!,, ’$5ºmº®£¢¢.—«Þ{ ˆˆˆˆˆZY£¢îp I’`2™Ð¥K„††Á‚ªª>Ï=C¢›/dðL&“Ïs³Ùl¼f„ ð¿�¨ªŠAƒáèÑ£P:u2Öé.¸\.TVV¢ººááá(--eÈ@DDDDÔZž^ ž@ÀÓ¨Ð4ͧqá6x/ ¸{<ÔíÅ i+˜¨óÞç�O¸P7pð>W¸‡K÷ïÞçœÆBMÓ`2™ðoÿöo8~ü8ÊËË!Ë2‚ƒƒaµZ¡ë:‡±]¡¡¡ ªf2d """"j%ƒwè Š"t]‡$IÐ4 ²,û\Ì{7<TU…ªªF¸Àèæ A0B††ÂY–ÿ2@0&~ô>¿\‰®ëE‹111øå—_PSSc ËEÑ5, BBB¼í%C""""¢V4Ô.ÑÐ…¼ PUŠ¢@’$#dð<2Ý<!ƒçáé±ÐPÀàyH’T0øžSšâpšÍftïÞ—.]BUUTU5 OÈ`2™|†f0d """"jEáBÝ ÁÓ“Á»ཌ$IP²,ûôd¨û ¢¶{^¨ûðáé¹à <÷ûÜÃ%ê—ãïz%IBhh(DQ4nSY7ÐhC""""¢ܨ xBŸ wYö™ƒAÓ4c(…÷ÃHxÊdÐ@Ô6Ï ÞçÏ¿ûº½¼ïß±¶7ê M uC ³Ù ‡ÃMÓê •ňˆˆˆÀ¦}‡oغu]<¡€û…ÚÀ@‡¦éÐ5ÕýS× {æ\PUhº]ÓÜË×–a„ `¸@ÔæÃxMÔ(=·¦EˆžŸµ=º'y ˆ6øÎ½¼×p‹æ†ž�T’$\ºt !!!¾“K6R&C"""""�yÇ~DÞ±oTÌàõ£Îs½ÎÃxßëw]÷ý¬ç}"jã)ƒà9@€ÑCÁ{bGŸßןÏ7g^£L�—/_ÆŠ+°hÑ"tïÞÝ'„`È@DDDDTÇĸþ@ÊßcXƒîÕ¡n½¶×‚VÛk¡vIwï†u‡HpÈQ[ÊÞ ™ƒP;”Ês Q¬íÝ ük.Ïp«ñwöó šÓ£Á3ŸÃ{g .àwÞÁ‚ š,‡!µkƒ¬H×*¶Å{ïçžÛRÖ½{DÝå&ÝÜáCݹ„:C"¼oè3ÍuôèQüýï�9rÄðáïø† DDDDD­°1á ¼ï4á$x/S7``Ø@tóê† �Œ ÝA¢%s1xs:ذaƒÏk›7oF\\, C""""¢¶.Ô}Ï;P$©^°Àpèæ>? ̱ÐP¸àý³îsåææ¢¸¸Øçµ‹/"''O<ñC""""¢¶Ô˜h(hð~Ï;\ðþID7÷¹¡±�!Pá‚ÇĉñðÃCUUTVVBQ˜L&˜L¦+~Ž!Q+mLÔÑÔ{ ˆnîs•^kxÂÈ–“$ɘû¥îœWˆˆˆˆ¨ 4*êöl¨Û£! "j›ç‡Öt`È@DDDDÔ § ¢ö{^h 2±qAD"«€ˆˆˆˆˆˆˆ=ˆˆˆˆˆˆˆÚ9‹Å‚?ÿùÏ$ ¢(BX­VX­VŸIEQ„$Ie6› ¡¡¡>å0d """"""jç{ì1„„„@UUèºMÓ ª****Œ[XšÍf˜ÍfX­V�À±cÇ|Êáp """"""" † DDDDDDD ˆˆˆˆˆˆˆ( 8'ùPUµÞCE¨ªzÅÏ1d """""""}ôÞ|óMèºEQ ë:AÀC=„ÿøÿhôs.ADDDDDDD>Ƈ¾}ûú¼Š)S¦\ñs ˆˆˆˆˆˆˆÈ‡$IHMM… Æk>ú(BBB®ø9† DDDDDDDäC×uôíÛãÆ�ôïß÷Þ{/4Mƒ®ë~Ž!€O€ ë:&OžŒ.]º`úôé .S'~$""""""¢™Ífüçþ'BCC¡išñðÜm¢.öd """""""‚�]ׇ¦ip: ò TU5†MÔíÕÀž DDDDDDDä.¨ªŠêêjTUUAUUŸ A€Óé„Åbñy`È@DDDDDDÔUU¡( ªªªPQQššhšA Š"$I2Oöd """""""’$áôéÓ8þ<ìv;A€Ùl†Åb$IFÈàùi2™àt:2‘¯Ë—/#''²,CEˆ¢«Õ «Õ AŒÞ ‚ aƒÅbADD„O9 ˆ¨A+W®„Ùl6ºBéºnœ\A€,Ë0™L‡ÅbÕj…Óé€z㲈ˆÚ#OwR§ÓiL’u³“$ ’$Ál6 DDíç/ýf³555—.]‚¢(PŘÁ{Ùæ>|8òóó›õ™º×õ•••xöÙg²¿ ˆ¨A‡£GFŸ>}|.5MƒÃáÀáÇáp8 ˲q!äsÂ""j¯TUÅåË—Qtö:PyÙ —"A$h�0›„Ú =@× �t÷s½öBSÓÝËz–jŸÜÐ24U‡.¸oW&Š€Í¦#ÔR…¸>Dõè�›ÍI’x@Q»¼'S´ÙlPU¡¡¡°Z­:t(dY† вëçÓ§OcúôéMn‡çΞët]סª*ŠŠŠðñÇlŸ2QÃ'YÆåË—a6›Ý'>A€ªªp8(((€¢(°Z­0™L>ã³<'-† DÔ^)Š‚ .`KÞYœstÁ°»ú sDÈ6+tA„ªš„Ú�It7ÚµÚ×T Ð4ÁXFÕôÚ†¿�Yt7ä%Ñ H‚nü~£Êp):D‚¦ÁUã@eù%üý‡_`ûág<ò@7„‡‡C–yÉIDí7dðüôôpÓ4 ²,Ãétâ믿Æ=÷ÜcÜ¥AÄ…¹ÍܬÐ: C‡ÓéDyyy@{žñŒOD òÜ–Æår‰§ªªøé§ŸpéÒ%Ãd2Ád2Ýc=c·0Q{¥ª*ªªª°ùï¥øîBGÌ|d:„A%è¡B€¨š*Àl$ÁÝØWuÝhÜ« ꀪ‚&@ÓI¯ D@�Iô„ -C—QÔÝå €%X¥CîêÒïæ8`Ï;‡´¤PtéÒ…=ˆ¨] š¦!ƒªªÆ¼UUUøá‡п˜Íf‚ÞìkiÏuzs¶Ç³MÕÕÕp8 ˆèÚóœhDI‚ ë¨ªªÂ…  «Õjôrð<¼C DÔUUUáØOåØž/ ññ~0YC I24ÐuwÏ�U Á݃@Ô¡i4Íýº®»jž‡î¾€ˆp÷ @Ò�Q¼±e(`‚�Ud€ C“%˜ƒ% L臛¾ÁèAå¸/"Â￲ÝlƒwÈà™‡AQH’dÌÏpöìYDöèá¾îöô v'��»ÝŽ÷ßÓ§Oo0hh.—Ë…¿üå/˜2eŠû\Û{Á³Mªª¢²²2à×î ˆ¨Až¡ªª f‹ÐuTVVÂáp!ƒÉd‚Ùl6z3x†M0` ¢öHÓ4TTT û«J ¢ ªL6Ti"4—�At PtÀ¥¸{ è’±v˜‚÷ðÔ6êuÝÝà÷Ì‹ ^CD÷±¶7Â*CÓ8E² H @€ªÕªˆK¢èÖÛ^À½ÿ¦Àb±p"H"j·Aƒw/—Ë—ËQ¡×^cWWW£òÒ%„††çJ¡v²œ¯¿þo¼ñJKK1mÚ4c’H£Q/Ëõ^óü¿”››‹½{÷böìÙ¸ûî»÷TUEuu5jjjŒkz† DtMY,˜Íf÷IÐ逦¹ÓN“ÉdžeL&{2Q»çt:a·Ûq¤XºvÀ¿høârî –ÐÙdÁ%EG\T§ è¢C’@Ô¡j€KTU�TÀ®ëp¨@&@Ñ@Ða³¨Ã$&0×>ndN—ˆ`Y‡E‚dÀ*ê(u8qÜ©—5 k')©‚ÝnøE,Q[ ê—ðLœî™ˆÑl6CÓ4\¾|‚ ½…/\¸€?ÿùÏØ·oŸQž¢(õ[Y–.á¹KÜùóç±jÕ*ÄÇÇã±ÇCÇŽát:Q]] MÓŒÛT2d ¢kÊÓ+A×uØíã$é¹HôܶÒ3/ƒ÷É’“?Q{äé{Q ":,`‘`•%8E³AlàuD %÷œŠ&@SEœàP» Ô¨�4À&I€IÄÚ‡E�d 7´Œ §û÷ÐÚBuDˆ"L&§$'ª]q±¼.— ²,Ãb±ð@!¢v0x žž Þs˜iš“ÉdÌ«PUU‡ÃK—.áþçpñâEŸ2/]ºTï[TVVÖ[¿Ëå‚¢(ÆïûöíñcǰdÉAQ”krg8† DÔ(Oh iA0&í’eÙèÁP·'C"j¯E,ËèØÃŠ2‹Œ¸ }Cm°ZMŠ&À¥¨QTØU 20Ép¿§º‡R¨àT‡âîQ ¨µC²˜%÷C˜¤Ú 7°ŒN.fI€Ù Xk'“Ôt ÕŠ†n5þnw¢cw‹H›L&(DÔî‚ÏC’$¨ªjô`ð„Óu'O×4 ¡¡¡X²d ¶lÙ‚ƒú ]c»\®ÿ_òž«á¾ûîäI“ ]×?*z¸3C"jçDç9ñxNDž‡g²GOÀà¹Í¥Ï2"¢vÄl6#,, ÷÷)Åö*'º†XÐ¥ƒ!& Q‚KÓáp¹í5.!:L’Q h€KÅÓƒ@‡³¶¯êîó©Ir?,þ5ÜA -ã²K€Yl&÷O‹$@ÓU(.‚EÝ].Œîá¾¼Ùlæ&ˆ¨]† žŸž?ÜyÏÑàùÝsÍí¹¦–$ áááHKKÑ#GðöÛoãܹsF¯ož!Í ‘‘‘˜5kúõëç3|ÃÓ{"Ðw‡cÈ@D† Þ';ÏP ›Íæ“|zÿ¬{‚bÐ@Dí-dèÒ¥ FE ﺘDt²Yd¡I\š�“ ¸\€äÒânàK¢»ïTÝ |‡X<ÏkïD!èY̲�³Ȳ{n„Y†à̲‹,À*&A‡ KP\ª‚H݉øˆÜrË-0›Íœø‘ˆÚ]ÀP÷z¸îu4€‡ {ÿánÈ!8p rssa2™êKív»Ïœ7ž`CE<úè£øõ¯íòz�Æú‰!5È;@ðNLƒƒƒQ]]Ÿ1\uDDíñ¼†»úGbfå9žíˆ¨ð0˜¬�D’ˆ.’ À$ 8X‡EDÁݰ7iîÞ¦Ú¡ .U€¨ü«qïnØfI¯í}à~íF–¡9XL,µå™E@Ò€ªj—JÊñ«Ž¥ˆ»=aaaìÅ@DíŽçšØÓ{Àsì <s0Áb±Àb±ø„ +—†��rIDATÞ×Ô‹Ó§Oot=M¬›œœ\/|ðÌ áíö̈®ùŲ§çBPPqòN§—/_†Åâgëénå}"%"j, úöí‹ËÊ`>õOütÜ„ž·uBph› AÖ!*îIeI‡(²h* «€¦�ˆ: è:d Ðj¯1Ùý9©v’F©ö³7´ U‡�¸oÑ©Îì—ìøåLn³ÇÐ(}ûö…ÅbiðöjDDí…÷Ü š¦ÁåráòåË0™L 5nï=<¹9ü½;„÷.<ó88Ž€Á ˆ¨Ñ å   c¼¼ça8þ<JKK›Íf|®nOöj ¢öDEtêÔ ƒ†ÙüŽýx?Þ‚sRØÅ ¨‚W턪Pfk‡)(š»×€ZÛ“À³œRÛ67z Ôþ”EwPq#˨qy•6½•2 Kq{tˆÎ;÷‚'"jO¡BÝ€AUU¸\.Øívœ={Ö˜w!$$ÄgØBs¯Ÿ›³¼§'…wdEQz‹a† DÔ ˆˆTTT ²²Ò˜¦î J”––Âjµ¢S§N¼³Q-›Í†þýû£S§_UR‚óç¿…Ó鄪xÝÇü’¿É…ç*€Zûhvúq ˨}.I’{^Šn]нûíèÚµ+l6ª««y@øçB¸p᪪ªŒðõüùó8þ|ƒËû«sçÎøá‡Z´}žëüž={^›aÆ < ˆÈ8²2ˆˆuÑUÛìf¦iÎ;‡sçÎñ '"jc¾ûî»Àüçy’ššÊZ%ºÉ•——7¹ ÏDDDDDÔÒö† �›6mbmÑU._¾ÌYxˆˆˆˆˆˆˆèª ©©© ˆˆˆˆˆˆˆèªÉC† ál"""""""ºj"«€ˆˆˆˆˆˆˆ!C""""""" † DDDDDDD ˆˆˆˆˆˆˆ( 2Q@0d """"""¢€`È@DDDDDDDÁˆˆˆˆˆˆˆ‚!C""""""" † DDDDDDD ˆˆˆˆˆˆˆ( 2Q@0d """"""¢€`È@DDDDDDDÁˆˆˆˆˆˆˆ‚!C""""""" † DDDDDDD ˆˆˆˆˆˆˆ( 2Q@0d """"""¢€`È@DDDDDDDÁˆˆˆˆˆˆˆ‚!C""""""" † DDDDDDD ˆˆˆˆˆˆˆ( 2Q@0d """"""¢€`È@DDDDDDDÁˆˆˆˆˆˆˆ‚!C""""""" † DDDDDDD ˆˆˆˆˆˆˆ( 2Q@0d """"""¢€`È@DDDDDDDÁˆˆˆˆˆˆˆ®ÚÉ“'2ÑÕ9yò$>øàȬ """""""j©'N`ÇŽHIIaO"""""""jK—.ìÉ@DDDDDDDÍwüøqäææÃÉ“'2QóüðÃصk—OÀÀ9ˆˆˆˆˆˆˆ¨Yê ………عs'çd """""""ÿ])`àœ DDDDDDDä—£Gâ£>j4`(,,dO"""""""º²ÂÂÂ&†;wBX¿~½Îê"""""""¢†”––âøñãxüñÇQXXxÅßÿ6‹csÃ7:Ä����IEND®B`‚����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/vignettes/biotap_initval.png����������������������������������������������������������������0000644�0001760�0000144�00000110405�12466166264�017404� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR��¼��[���ûGy��®iCCPICC Profile��xíZgTM—®î‰0 9ÃsÎ ɃäF’ˆ$A2"É�ˆDEE0�&’"¢(ˆb�%©ˆb‰Ûàë~gÏw¾_»ÿÖ:§«Ÿ¹uëÞš®ê©;õ\�$NxQ©¡0� ,<:ÒÖDŸìäìBƽÀÀ¤¼|¢¨z66ˆÊ(‹#ˆ6R†e¶l=7—Þ7À³ ÔªtR0úþˆ#‡�@6ˆ€%à7öÝÂÞ¿qÜÞMFtò¶°O ÒU!X:’bk€à‡�à‰Û˜æÅöÞÆŒo·°—Wd��œß}²—W�‚¹H¿±÷–ß±>ˆ}.d X¦pß pD„øÀêøúEù� Z‡èøúFù„ †�Ö ‹@Ú%¶ž‰¸5é+\@xëÙ!w¤ìÑ@e±ñá_²°Ï�4¥À-ý/™Ädl‰�4sþK6o»ý<!¶ÇQþJŠÛæ "bófss^�\�ë…››«5››ëµ� Æ�è õ‰‰ŒÝÖè­Ðdþ8â@(5 v#`¬8àAˆû@82@.(�GA¨uàh- Ü] <�ƒàx&À;ð|?Á*A8ˆ1A$IA :¤Aæ-ä yBþP%@iPT•BÕÐY¨ jƒ:¡>hzM@³Ðwh†aÌóÀ"°,¬ï„Í`;Ø ö‡©ð~8 > ‡«áø*Ü÷ÃOáqø#¼�o¢hQ¬(2J ¥†ÒGY¢œQ~(**•…*AU¡. ÚQwQOPoPŸPËh4š͇–Fk Ñ´:€ÎAŸ@ŸA_Aw£‡Ðãè/è5 Ã…ǨaL0?L4æ¦S‹¹ŒéÁ c¦1óX–+ŒUÁa°Ø8l6¶ Û€½…}„ÀþÀ¡p¬81œÎç£âÒpÇpgq7pp“¸<Ï—ÃëãðÁø$|þ þ:þ~¿DC¤ Q¥1§ñ¤‰¡É¡©¢¹Jó€f‚f‘–H+H«AkMëG›@[D{޶“ö9í†ÀKP&˜|Å„Ba”0O$…‰ÚDb81“XM¼N&~¦ÃÒ‘é4é(tátYt5t7éžÓ}§'Ò‹ÑëÓ»ÓÇÑÓ_¢ï§Ï�3ð1h280D2ä340ô1¼%A$>’ɉK*&5“‘æiÅ}Ó«;Ç7˜x™v0¹2Å3•1µ3½dúÅÌɬÁìÌÏ\Æ|ƒy”y…—E‡eËA––;,ïXq¬¬æ¬a¬¬-¬ÏX—ظشÙ<ÙÒØêÙúÙ¾°3±«°;³'²×°÷²ä`àPæpæHä¨åèãøÌÉÌ©ÎéÁyˆó<ç ç"/—W0WW+×n,· 7…;»–û÷<7O(O Ï-ž÷¼ô¼j¼ž¼9¼—y_óaùäù\øñ5ò½àGñËð;ñ§ñ7ò¿$£ÉòdWr&ù2ù�­€š€À›³‚¬‚ú‚TÁ Á~Áe!!;¡ƒB—„^ …5…ƒ„ ÷ ÿ¡ˆ¤‰\™eÕ­C‰)‹ù‰»'¶,.)î*~Xü¶ø7 A {‰L‰v‰9I~I[ÉtÉ6ÉOR|R¶RR×¥¾H J;HçHwH/ÈHÈxÈËôɬË*ÉÉž’}*GÓ“Û'×(÷Vž[ÞV>[¾K~YA^!@¡Rá¹"ƒ¢©bŠb›âw%I%¥“JÏ””M•S•o*/ªÈ««œVWåRµW-P} †UÓWKRkWû©® ¦~^ý½††§F…Æ+MvMŠf‘æc-:-s­l­{;°; w¤íèÖ†´wj'kwhoèèè$éÜÖÙÐÕÕMÖíÜ vêíLÝyG£g¢—¥×¯OÔ·Ò/Ô6`3p2(7xc(`ègxÖpÎHÞ(Ú¨ÍhÍx§qºq¿ ½‰I©ÉS!Ó ÓK¦?wií:¸ëž½™½Y¹Ù”¹¤ù^ó6 `ajQ`ñÂ’lhÙl¹b¥o•gõÌšÏ:ÀºÙzÕÆÈæˆÍËÝ»Ãw·Û¢m­mËlßÙ)Ø%ØõQX(ž”‹”_öÆöEöãÒñ÷Y½›7œ,œÊœfÕ3œŸ¹»D»ô¸2»ú¸¶¸¡ÜìÜjÝÜ Ýº¿÷PóÈöxµGzOÒžAOAÏhÏ{^œ^¡^ÞLÞ~Þí>DOŸ+¾x_7ßf?ŒŸ‹ß%´¿³ÿ¥�t€K@S 6Ð-°%ˆ&hOе`º`ßà›!Ì!!!=¡Ü¡Q¡„ž…ˆg†ODhFG|¦šP«©«{ö6E"ý#»¢x¢â¢†£å¢s£gb bªbÖbc¯ícÞGÝ÷(N*.;nf¿ÑþÚx8Þ3¾ã�ßÄc ;ÊV]o$q'%$%k'ŸJÞLñLé>(t0ýàLê®Ô†4ú4jÚð!ÕC¥‡ÖÒ=Ó{2Ä2r3¾fR2Û²x³f½Ï¶ÈnÎaËIÈ™Ê5ÍmÌcÉ;7uØôð¥|öü¤üwG,\-à-H/øRèPØQ$^TX´Rì[<P¢VR}”p4æèÄ1³cW“ç_:á}âQ©fé™2¦²¤²OåŽåwN*œ¬¬ V쯘9eª§R¡²ªŠ¡*±j®ÚµúAfÍùZ®ÚœÚ•ºàºÑÓ§ož‘=SYOªO­_8ëwöÅ9³s7Ï˯i`mÈjX½qaú¢Ãź—/‰_ªhblÊlZkÞÛ<ÓâÞ2|y×åŽ+ªW.^¾Z~éZv+Ôº¿õ{[PÛd»Kû“ëæ×ïÜйÑzSþæù[·NÝæ¼]ÜAߑ݉îLî\éŠíúÞÖ=Ûãß3ugϱ»ÎwGzíz‡îYÝ{ØgÖwÿ¾ÉýÞ~£þ; t?ÔØ5 7ÐõHÿQ÷cƒÇ=ƒ†ƒ½C&C}OÌž<¶|j÷tä™Ó³Ñ‘©ç~Ïg_„½øþ2æåÊ«äQÔhÖýXñkÎ×§Þ¿9?®0Þ:¡3qwÒbrxÊejj:xúÇÛøwð»Ü÷ÌïOΈÌ\ú þ¡{Öbvä£çÇŸb>mÎå|fû\ýEúKÛWïƒßܾÍ~ùÿ82Ï3~AmáîO»Ÿ“‹‹KyËÜËçiüº¿â¼òa5n ¿Vº.±~}Ã|cl3üo,ð7ø üþÆc¿±ÀßXàï¹Àßs¿çÏþž ü=ø{.ðÿ÷\€êéµ  ö÷àG=�tÎ�0@@ýoÛó(¿£ €BH!xËÀ#<„(ÐEø†C  ¼ƒX!=(áÞ¢p|łڇšDÛ¡0v˜)ì~;®M#C³@ÛK¨&¦ÒùÓ›3(’ÈŒÌL´Ìh +Ž]ˆC•Ó‚+;—ç2ï(?ž¬!*X-4#¢$š(Ö/Á!é'Õ,½&k*W(ÿRQ@ÉG¹VeR[¢‘§Ù¥5¯-¬c«{xç}¬¶a¬Q½ñ Sì.3óƒ5–ÝV¯­wÓÛ ÙiP,í=¢ÓJ/¸Ürt›tÿ¾ö$y‘½|t|-ü\ýÃæ•W…ä‡F‡¹„G(Qö2GÒD¡¢6¢WcVc7âàýøxÆ\ B‰¢IädžöƒL©„4tÚæ¡•ôùŒ¹Ì™¬éì79¯rŸç==<’¿\\ø«8ù(t,ùøçRë²óåËZ§¨È©ZwõTÍJýi3õqg¯œûÚ yÁçbYcÿ¥õfé‡Ë)WÎ]¸¶ÐÆÞ®vÝñ†ïM¿[·ƒ;‚;CºÂ»£zâî¤ÜÍí-½×Ð×uÿUÿÂCº¶G¤ÇøÇƒóCÓO††;Ÿ6=«)|~èEÂËØW‘£Qc–¯Q¯O¾Ñ|36ž9¡617yn*xZazõíýw'ÞΨ}À|x0›úQåãûOÇç¬?3|ûÒùõæ·Ñró=?[—ÖŒ77‘ù‡�Ð#<”$ÐŽ àÄ Y"¼P `+¸^Gù£FÐ6è§O̶§ƒûŽ?GL«BÀƈ-t¹ôA $EFN&Ó:ó<ËgÖolK웜D.2·…w/_ ÿ5òA&!ká,‘^1”øN‰DÉV©yY¹SòOÑJÊÊ{T²U[Ô^¨¯iòiéí×®Ôy¨»¬'¨ojj˜oÔd<`òÎtÕŒdN¶µÔ´2´¶´qÞíi`N‰¶?àâ˜å”ï\âRîZíVï~ÉãÊžvÏn¯ÞÃ>£¾S~þZ%‡„8†‡i„+DHP…ö’#ù£ÈÑÂ1’±òûTâÔ÷+Ç+KNKLæOá>È–JJ#§£Ò73V3—²–rs©yïòmÜ..J)>ÊÌûøÉ¥Kå<'wT8!+!»êJõJ­i]Ñéñz±³¡ç.œŸ» yÑ·±ìÒP3ºEýrЕWû[qmF퇮÷ÞDÝÒ¾} ãZç\·`åNúÝ˽“}„ûJýBîH{”õ8w0{(ýIòpüÓègÔ‘Ðçá/"_ƽJÍËxô&f<lÂÒcÊiz÷[ów¦ïgŒ>Ïš~´ød3gþYõ Ç—/_»¾~÷û±s^xã§Ø¢ÓÒ•_”U—õ•íùÇ2û@h‚ÝÛxaÇæPY1PôY;àD¸E@íAµ¢YщèÌÖ; Ãmâ hDhnÑ:Ò.Šˆ*ÄQºCô ôÓ ÇH–ŒXƦC̦,t,#¬lÁìúkœ¯¹np—ñìçuäSçgçŸ' \ÌòV¡™mËw—“$I.H=—n“9!»OŽ"¯¨@¯0«Ø¥t\9LEO•Eõ½Z«z–†‹¦„æ’Vھ: º°îÐÎ*=ª¾ž£Á¤a³QŠñn“¦]»Ž˜¹šs™?·8jioÅi5f]cº[Ãc;lWC‰²7ràp˜sìp*vpÑvåpýá6à~Æ#e›§º“לwŸOo²Ÿ›¿z�sÀ·À‡AuÁûC,BC—Âˆ *P÷¶EÆFÉDMFÇèÆ|‰­ßw0.`¿uüŽÒ <‰¤$šdTòFÊêÁ_©ËiˇÓd,gqf[æ¤æÞÈûž/vħ ²p´˜»ÄõhűÉb¥áeWËU(œrß^K㵸:…ÓgŠêïC7jÈ¿ðºQáÒá¦-Æ—Ï^%\‹no߬$[mš·» {ݵïè ëgxÐ>`ûèÃ`ê™áÏ:Ÿß{E;vx<yjqÆú3Ç"jkþóé[{V€É�8Ž@‘ €áÍ�`§ÀÁ �­Lhú9€øÚþ{ÿCØé›Û¬Žì=ƒ¦À9p'¼„’G… Î ¦Ðühwt9zÃqÁ”c^cù±ÞØ:ìœ .׆ÛÀ›âóñOi¸h¼i=E—6—öAŒ°ÐGä&FïÒñÐÅÒ ÑËÑçÓc°ch#ñ“²H Œ^ŒCL:L ¿™Ã¼ÁÉò‘Õuá.ÇÙ}Ø?qÄrœE\¢\7¹í¹¿óäóÊòñÅðóðß!‡ ðÜŒ’z+\.âˆp…ƒbEâ\ã’g¥öJëÊ0ȬÉþ”û.?«0¥øZiDy@¥[õºZ³úYJÍZGvdj§ê$ëfí,×kÐï4xa¸hÌl"oJÙoVm~ßâ§•€µµMÊîÛ'vÝ” {Kv‡Ç6§\go=Wq7wŒû¦Ç¦'ÁKÐ[Ç'À·Ä¯?€6Ð"¨0¸=d4t%œ'b'ÕoAäí¨…ñØ=û*ã&ãÅD$ÜN"&»§´§2¦EZÎÈÈbήÎÕÈÌ÷9²RXX,\ÒzÌôøÓR²™“K•%Õµ|usg:ÏVŸÏº°·Ñ¥É´Eé ßÕÍÖéö®'oóv™Þ±¹'ÿëÃã%†.<©~)0ZûfפÒ[ÕÌs×¾²~W›g]¸±(·”¸|ñWýJÙªÝÝÚÙu±õ3"]›žÛ¿&HFÂ+ˆ²‡  û0k‘ðyø-Âý»£ÊQ¯ÐÜh7tz#Œ À4`¾cÕ°‰ØGÁUàfðJãÞGÃHãNsáÕhÒ¾'hò ÓDMb ñ 9Ýyz}8ýS† §IŒ¤dÒ7FÆçL»˜®3Ë2ŸFØì¬l¬ÇØ8Ù*Ø…Ù›8t9†8ý87¸Ê¸5¸Gy’y…yñÅó‹#¼r®€žÀ¢`“P¨°¸ð‘ÑP1%±uñ^‰#’RRR›ÒC27d/Ë5Ë_T¨W¬SªR.S)R=¬–©~Pã€f¬uGˆvN.ugŠ^¾~•ÁUÃA£9¬©Ø. ³HóR‹ËoÖ|6Ö»Ólí.R’í)ÒŽÇNýÎÍ.•®Ån9î¹…{*=¯y {/û ûÙùçôa‚BLBÃÓ#Š©÷ÞüÍ£뽯8®wÿƵ„ØÄ«I‹):3S‘Ò­2 2³I9¹5yŸóÕŽdL©—”,s9Þ]*Svê$sÅáJƪÆû:Ôéöú}çô.¼mlm*j ¼¢¡u²½ñFÌ-›Ý.åù»÷Dî ={,>$>,öLì¹èK±Qá×Rãn“oÅß7Ïš~ø¢ö-éGÁBÄ"y©vycEvuÇšÚ:n}`£{þ-@²Wd@o`8 C)£òQŸÐfèó"&ó«Ž=…Ãà"p/‘÷¼yË3iæi}iG–„;D]âm:º;ô–ô¯BH€t‚Q…q„)œÇ\ÇbÄ2ËZĦÃö™½šÃ•“ƒs”«†;ŒGÉ!xÏ×Í_MNÜ-¤#,-Â'Ê,F§‘ÀKÒJ‘¤ydddä²äÛf”8•MT¢TëÔžj`45´BwÔiëòîtÑ+ÑbÈbäj\e2»KÃ,Ç|ÔRÉ*×úÃî]¶g),öYާdàšï.èÑíã­æKò[ X Z 9&~‘*¿÷r”zt[¬Ò¾–ýrñd/&Ë¥ÜJ5NkO‡2,3K³&sdsSòçs *¸^„+v,©?ºtÜôÄñÒ™r“y“•ºU—k¤këO‹œ©;+~®©AñBk£Ò¥f$N¬¸ÂxõÀµé6³ö‹7ho†ÞèîÌéúØcz§æîú=J_C?x@yxn`ý±åàÉ¡OÃOsž<{ÿòþ(×Xàëú7¯'ø&ƒ¦Zßbß9¿¯ž™žåÿh÷)i®æó•/í_›¿úžõÃc^nþëÂéŸN?-–-)/ÝZ6^~üKç×…®•ì•ÉUÕÕÜÕ‰5•µÄµ+kŸÖ×× ×ûÖ77Ô6¨ç6¦6¹7)›‡7{·æÿwÖÖþh "B#"ɆÛÿ練Ð$Ïk»0!51<Ôj+·‹ ¹>øzš#wäÚ †nçÁ!:—_¸½"ÛÂÒáÞVÖÿ`ÿHc[#}!j´þæ@°?5Ú†ò<)>ÐÀ ÁDD^âeôÇNU°—’ƒ†DË�j‰Œ±µG°0‚;£bí¶òèH~HqüGgÁ×Ïð9 ûïú­3EïÚòÅ‚üù ‰0ßâ Væ ø!1x$R‡#9aÀ�þSË�à…´Ä"mQ ¼GpÒ#é`ò?zÿ&1Þî€ôûŸÉH~YâíÏßÞȈÏ?6ƒ€/‚ÿȽ[m[£‹Ú”ú/Ÿ4¶ìmF¾A~V~íϘТhE´ Z­ÖAk�2š ÍdÐÊhu´Z­…´i�cð±ðgŒ[öÃZücODì×tDZ·¾»÷ŸVà°­ôߟÿm èÑ\ëÜŸ ù“Û9È“XdžN"y~�ÜI¸´uû%Ú/n+WDP÷GF“õ¬I?iò®pYi²¢¼‚<ø/ eê\ƒÚ}��� pHYs�� �� �šœ�� �IDATxìÝ€ÕýÀñß^çéU¬Ø{‰Æ ÿM° ¢I°ÄnÔ4¶¨1ÄX±w¢!6ÄXÐ`Á† Šôã(×ûþ¿Ù›eYvïn¹Ûö=vwæÍ›÷>ogç·oÞÌúD¤@ÿ²› ›žëƒøBþìµ;Ù|›ÜÇÐç¡óœDaéÜy<"€� €� .àŸ¡¯Ýyî£%qŸ»îjöÚý³yµúW™¥ÿäè_·?þñ»tÐA‡õíÛ÷œœœ!: @�@�¤¨©©Y²fÍš×uzÙzdL:u¯£>ú’ìììÝëêꤱ±1)+F¡@�@�0ŒŒ ÑØVêëë?°ÞÎ{ï½÷a~¿÷ªª*„@�@�HzëÀÕ`W233ww†4tíÚõëÙeB�@�@ •,ðµ€7C{wë_ÔºÙ2‹u,„”­]+ßÍù¬ÿâ ©¯®vÖÉÌÉ“îÛ‘!‡"{ö”ÜÜ\ÉÊÊŸ/Ò5lÍXžnä]^^.K–,‘ÒÒâÃÖíÒ¥‹ :T ü¬kº¥<Ýr–”Ë›ßÌ‘E«¿ê†*Í·Qr³òeÛ^ÛÉ£•]zµªœQQX€� €� ‘îöî»ï~Ð\i­÷׆;,ûï»òÕ#3¥sçéÙ§ŸtØ_|:Üwã²åR¼z•Xà:ú”SdÀÞã¥S§Nθ‰hù644ˆå»lÙ2'ص ¶ °@òu=j¥ª²Ró«pò´ wÀ€N~Ú--K'?+çü%ÿ•Ç?zH Š ¥WßÞÒ»[©ol5ëVÊÚÕÅRYZ-'=Uöºw‹åŒº1 €€‡õ²ì«…RQ0LFèâa¾dÕ~5òÕ»oË×k+¥ë€dï±C$ú§sû•‚œ@�Ö8=¼-]¤f=»ËÞyG¾¹ÿ2¤Sl×£—Œ8ìÇÒëgG‹hàZüìóòÍK/Ëç•ÕšæA Xý2hŸ}lÌDÔ2ÔÖÖÊÊ•+eÅŠÒ§OéÝ»·ôêÝSŠŠŠœûmذQÖKñš5NëÝíׯŸÓ+-S+çüoÿ+þï>é< ³ ÚGy„4êp©¬)—W¾xNÞúþuY±t­<òÁý"¬ï9rßfËm[ÌG ^k?{In¹qšÌý&P‚ýϺI®›¸¯äzP èyWÊ[»Ynû+9÷ Ál)<‹yç—çÈ­¿¹Oþ{Ò˜ð…-¿®ù^øýƒ2dòïä Áù-§1Eͪweú=s¥F¿;Sn»ï¡rÀnÃ=q±81$o¿vûø åÜ{?”q“÷˪åßw »¯åÖL k?–¿Þü¬ìÔNíØÖ²Õ”­’/?ûD¾÷š¼²a?™~ÍQâý»¬­¥c=h@«^ưô‘Çe´/Cv)¯—~%eÒù«o$ë÷4hl”‘íÖ•I·ò:Y•!K4m·Ñ£%O{e£MR¬­±=u„õghþ[·³OŸu-’Üœ\ÉËë䤵!vµ]´iíÆbyvÁL)ìŸ/=†åIAçLY߸J­ûTªë+¥4£D:åH¯ì|ÉÔ–vxïÑ2 o`´,™@B 4¬}O~zÖ4‘C¦ÈýSLjϞ• _)‘ZÝ£ïV…ùvÞ+²¸ó®rèÎ}#Ö©¥¼ËÞ{EÞëyªœ­Ûò~òKÁžú´ S+î¡.úÅû£·^‘>çý®ëÇ^ú†òuòØ+ÏÊèŸþRë·^þrÏ?åÙÇþ)ÇL}L.>p›Ø3l—5"¸èvÚ§ÝÊdÉ›Êø«Ÿ“ž:F2¤N;'Öë»l릚õ‹å1mÇ!g_Ø.í¸eé"›…§ûîåKäÜÛš¾aîy S¶öØ Â·ËkðNÀÞL^ÐÜ´êÍyÒ]‡ìY!Ò¯²J:—¯Ò¡ ŠlØà¼y_~#¹ßKN]ƒäägÉÆŒ:qÖ9鄨ٖ””H÷îÝÞ]7ˆ­¯oêªg‹kS^^ž“ÆžÛ:;w¶§§w¿ž+™9™2pÇ"É/Ì•Œ\¿¬‘¥òIy­i¨—ÒìbÉ-Ê’ù]¥ SžüP²Alc{ž1?f"hUë×9EºïgÊØœjÉØî÷²è”RT*=&Z‰ëä‹Ë®—?]ü ¼Cäý½ù¼såÄÉ©µeÕºÊ-6Ò _T3sì–ÞÉ>Sš;Ãã¦ÛôØ ú%ÔïoГF‘Ë·)m„ºäŽ–‡-’š «e}UKëoÊ©µÏ³×#œ|Æoåøäü‰ÇË©ã)Ÿ/^)µûõMSù\´ÿ¹¹vkmý·H×P,óÙ¯U:gê¶XÞÆ z=ˆM>½˜£å÷A7²Ùj‘Ì6Kà¼óó‡dþé]eÕ3¿‘£ñ‹Oߣ޿˶Ü.s@À; ÍÊgCšûËÿò+Ù©Á'ýk¥‹~îû4°•Öˆ¼ÿ‰È EV•8P]´W¶¿~íµ´ù_.j6O¿kÁ«]ÜfÃÜ ÒÜrØÅiî|Kcimwy¤ÇåÕßKÿ1=u|qwéÖ½›öJvaƒTfKUö:éT˜!ݺv‘ݺJÏÞÝ¥¯¦µu"åżæßøÄÇGôˤM¿ó±l,+“õ%«eùÊN¯Ó&¿‘¯8@8Àþ&Ês;ïïofÿEþd+Þ2U&ê²;ç|·Åû¾ù¼Ëäé‹N”‹û$°^õ7rçÄ+ä¹wçÉŒ)ÈÁ‡êéý+ž•Å2û}}ðÁºý©2oYEÓv*äõ[¦l¶Ýe¯ß)o™#Îç»úç~Õ­”'¦Niª‡ÖåŠòYq`ÿX—ÊOäŠÃ—G>- ÖkÝ—¯ËTÇ!àqçì¥ÚÍß)ÿyâÝwe¦ë5E·±.ÚgŒN§Š +´'s•,¯ï.;ëëEÚ«YÓ¨u»sŠÜòÜ<™}çDÇý³ {TËdzglªƒz¼þåº`ù¾›s§L¹sŽ|öîÌ`š+f¼.ëÜ2j¾<q˦e3ßm²Ò¼›Ê?sÎl¹Å©ãº­HmÖnšwñg³eŠë¢uþrã¦:/ûà¹MË4ÍìoÜö }¿WÈœN“×µþ¯þñj-ßy}Yu+ë;[>~ýA§Ng~´p?Ot†1ošßR;¹¯Ï‘;ƒuºS>.¶ò4JõÊy2eâòÓV{N”[šÞÿßKAÿMu®®ÕΘuk¤´¶TK§Áx„4nxÜ䆉ôpzx­@ÍM]V­•~tvÓœ\—›kú—­«k`*ݵ×Õzdµ—§s•yÐ ÄÖ¯ h£åk­õÞZ/ýÙk÷ÏÖ±»8Øk÷î–Ö^7WÖêÜJé·M‘tÓà8';Sr2õ†Ã„gé£s§‰Æ©ÓºÚéßÚÜ:©Û&CVo  £•“ù$’@Þà½ä—Z ¿\tŠÌ=þ9ÿç?–¡=ÜžÕÕrßOÏ™?¹V^zû Y3ç.™ø›K¥ÿS3dìþäÄŸ—yº\wÄ0É)ê¹Å¾Ô|Þ>©]ý‘|UX¯!Cª¿-¾ôm™pÍ ™uîwrͤëå¤#ÿ*#O¸VfÍê-œ4Y®|åyõ—Úú ä“êÀÀLj—Ê⯆Ø7nNï~îÞ¢·„‘¬Ñä©‹o‘¢ò…rýñ¿•ûvß_núé©.òƒ,]¼X†ehO±íßK_•cϾ^ÆMºY^:eœTö‚?ù7òmùt¹å¸‘ºu+ÿùë¥ ä ‹îÐò×ʽ¿øÜ÷ºnãg#¬x›M~ë~Ö)'3×ɿ䣹2C_ÿhüöÒ©Q?§Ö-žÔ¿®ÞMúæ6ÊWOþA~s×Ûò뻟’ ÛçÉûÜ*¿;ûX¹âåGƒt—Ä žœ*“Ÿ<Jn~`–týþ5™tíµRYôW-ãùúéë墻jåŽç^•êÊåjð·¾3eÊþ}tËòß3uœuýÝòð°~Ò«sY„6®Û¬ÝÌeÂäå´›gÉ_Çu’g~÷39ûšÞòâ-?‘N KåŸýY²/ž!o;\Ö.Z* ½õµºošòeüI‹Ì¹EäèåáSv’¢L­ï5­¨ïZg­ïŒ‡eÔÐþ[¼µé“ÞU'ðYßR;59\»@μ^߇ý6ʽ'¿™ÐYõRX±^,^*zuu o{.Ö÷q ÿˆï¥`!6ÕXkœÝÀÛÀøb²˜§ øðf´tê(GÇ׿fjÒB½b#_‡êèó¦G BÅnOVV®ÝzªS‡<äéݲs²š=%åöÞ†>Z@k¯m²;÷Öeöè¦k®¬¹ùÎP…Î:æ7WÇçi Ý)#[mtc£T5ÔK¥þÕh@^«óªò¥,·¾Ùr:…áD ÁßS.üô Ùa†OwÞ&g>u›œtÙ=rúÁC¥jɇ2SË9é ‘RûC±t³§Œ’Çå»Õe—íÉŽãD¾ë;L $µUR©½V¡SsyÛ`›Šô‚TgÔGá$“îzYÎ_$åÕEba¤Ò]òäùã;¬Œû‘È _,“ ;èÅLaë[ZýÓoÎN~v‚Øy­Ž“Þp9íŒí¥jÃz)í2Tv%2/'ÛY–Y¡.•Ü4qÒ|óÑ¿5ïåºÉJᆠ)Úíd™uÑ\9éÖÉwðÌ”ÿÄiÏÊÕGô—²šZ9P}Ê lÃ)ZÈ? MïÔk~'|û‘,±eG_!—Ú_j7n:ýø“o–ùWýH*ª¤jÝByFƒÝqÍ’Ówë+«åÀÉˉ3^“´LÜf˜~"™àiòò§KŠriØé ™öÖ ¹ò½odãÙºþ<ÝÆTèß ¤› ÖÔOèYµ3÷9XƒÓ@ùOSÿóöì&UÚÙP]×-j»ípù‘ì7"G~Ðó1?=Q䪷ä»ò#dT–ϹOåûŸ"_íÞ_¶3FüUeRY×d«ÛL ÒyÛq¢—,K娱2|Ð�©+](kU}$Í»A¶ÍªšêÊ-߃MÎ~ýŒvÞMõŒÚNMËýÐ<9cL–TÖgÊ•L’W'ÎoVž(;e.å̲!Î[pó÷aÄ÷RØ~áÖÚâ5 ·äº”ç ÈNÀÛ\¯©>käP©ùî‘^½Dºjo® Ðñ¢7Ê ÔM/@“zªgãFý+=™$9lñí=Âzumœ®Ⱥ=½–ÆíÙuƒ[§wVÓZšæÊÚ¿k?=ÕW.Yz¡›ƒ(ÌÊÖ¿\é”™ãL«êk$Gÿ*ô6k:âÑ_]!ýŠtHßèC ËsE@OÉ®\‘#Lœ*û2ý²“åÞ?-½?#‡émýlš¡½¿Öû˜FÉÉÙRWµÑ ¯¤¡\ïwm§e#LÍä}äPÝ÷l=â;û‹ãùeE±Žå¯+uòЫPËW¬û[žMѾ<ÉÖýËþsÂ& ÜýÍï·kú=m!ù—~*wM»Iî{MCËaÃD‹Ü´nc¤º4JNÏ`µTëÇ-™:ÜÊÂJûR^“Û[Ÿ”JmC 4Vþ=†æÉò56.ºÆIWR>œu¾M'œpš>ò×Ò­ÿH¥ÇëÙ¯ݦ-7jÙ°bM ´×À«V罿nµ¬^_d«Jõª,Ùþ`Ñ[&~/G Ñ/ôZ‚QƒÄ¯wª)q²×;Ñl«‘ýü|Én¬//\%ǽà¬îü3*#'Ð#®õµò÷UÿUk×7%Ôaó6¶ºêä´›¹XÛ gûjÓ:ö5e¬t²ÐìarÁÌ©R|òU2iö_Evþ¹Ü~É)²mð BÓ*úPµ®ÔÙ~ye©~ôkž5zÁ±Îo±¾ã—¾5Z_+|„ÉÚϦ@;êó¦zFm§¦åyuÔÁg:å."\QZ);ä[~…!=¼›Ïohî½ädùŸÀÛ ð”4r:æ"€@â ´*àÍÝi{Y³r¥ŒêÑ]‡/è‡w·nú¨v€µ^ xµWUï¦Ã²¥X/¬ÉÜq{½P,úG‚]¨f÷̵۹A¯ûhLvP´@×ý³´¶Ž{°ŒD9´h[»õ¶äú³œ ·0+G 3;ið8嫃'ôÀ¤åÕÓõ:²bMµŒí¾{³yFÚóˆ¯@µ¬]µ\2rÈ97M—{<G{ë6èY‹@qÙcïÉ)Û¹7MòK¥ÞºD{-*۠ׄ6·iX1ïÆÁº¿ëúz¨¬¯†M z¿ìÆnºï^JYu3¾Ñf8³¬ÇU÷e —-XðëP£Àöõv†+_Ó/Ïãœ×NXfË›òïs5Øý…<ÿÁó24Ç/³ÏÜIž ®ë$ܼ.öyaÒÇÆÆNÒ£—v×ÎüBV5î!=m¾Nµ5«õßÞzÖÇÒ8©µ7VǨiùmmû¿)²ô¡“ðŽÚyW=PÏ^ÕUÉÒånÔÖT·ª òÁ­è0kq=4ØÒ2¦5ò…VyÔ#$_çmpŠP/õ€nàX-_/\¤…Ð!Më:óïòÔoõöM“¿A/[Q¢¦Måwýå:lÞÆºmg¶Õ9G]´£BNÙŸþ^ºëhˆ¾~ÅJ)¯×ú 8TþþéOdíç¯Ée?¿P¦<=FfŸ¡–áS`óÎ\§~­­ï†:©¨Ñ‘ðüš^©œvÔ²»õŒÖNM˳´ÇÞu.[¹\s%Ûë­)W[þš¬)¹@úõTåÚòéûú¶ÛÏMÉ,Ját¶½? Ô¶å¶jôÔ,A�Dp^·'5ZÁ2Æî, _~-ËôzöЀW?Ô»ègAÓA5[?¾´÷Ut¬ìr;57tdŒÝ)pJ*J¦úsÆz“‡ R©ØnÐk=»îäo°˜2½8Çî±kéš+ëÈ®;È’Ê¥äûré>º@r|9’«="Ùúh‡ß=Ðåút8ƒ~T­]R"ù¹dDÑÚûÕüõín™xD Þ+ÿ÷²|P6PÆ,]sÖÉGóf;EÚyDÉÕ 1Ï?ËŸ~~­tºó$Ó'G6¬^.5݆ʮ™’¯œ‹î|Yíy¢ ÔáIº;o65—wƒýZ¡¥Öý1pª9pBׯ¶:¯õ4p`yÓ©h ¢j3´GUïØ {]íí¼\ð±|?rŒ|ÿ/½cÄšßAõ7 i¼îdq™Þ`éËò¥såR R¤ÿײqïν^·¨‹ˆ’=ƒÓw·ë SåÙWÆÊ û”ªÞ‘n/rÆ=2HÇùV4¶–?8¤Â-¿mÓÔ =Ú6U•ê] Ö7}î»uoŽaó3ÉO'’³o™&¯ ¸JöêŸ#_¿ý¬ÌÒE—îØÛ1ið[ƒüIî{¥H&ì3R*¿.7¼)rÔ c¥ £·œ|éArÊgÊŸzÞ.?Ùµ¿vܖȲ5"Ûn?Àn­ãl}Sù—ÚØ-›¹ÖÉà}޹ãr9ÿªþrÙ ûHQf•¬ø¾Xzn;Zº6¬”ÿ¼6_†ÝNúwé);j–ïçvŽü™ÞÞ­ª¯•Ñmï@yÃÿuyûÜø> o'u°ó7<ü¢ô?õGÒGVèPÚu© Ê­‘ÆÎýœM¼ûÉçÒgx½<~î•ò²Î9(än [¼—Âö Ë Voy¹QÉWØÉ�Y'KW­’Âýa£®öe‰ ’A Uo™~øt;ä`Yþá’›—+½l ¯»Ö£kAª»Õ±±kµv…Þš(kÏ=¤D?ˆÜoÜ‘ l™]ˆ¶Q‡Aäè:öKkö!ôÚk ˆ-0¶´v—›mòë8¾=û- Š_õ…R0PÇژæïâ:,L‹é—u?”KYq¥ìÛ÷§R[¸B9ZžÌG ‘2ª–ËŒ[î ² 2ù–Gåàžõ²®"W&Í}Br¯9A®ùõ¿‚Åžr÷càfË®'\%òÒT™ò‹'åW7?,ÇŒ´PaÓÔlÞ•M=¨n   ~ ˆvº“ŒLÑó?ÎŒÀ—ÒFéäÄ…zý,hÐÔ{7YdÊmr®E‡O‘«&¿-Sß×Þ2gùæùowøu2ræ5rþ©O놓ä’ÉGÉMwO“+ºÞ*·;r˺ µ-èð+ý8²ígos¤<sG¹ûÛËäé;¬`qƒÜwÆhÙ¸F#ïðòëg„}´­À*Á}ÚƒiS¶?3B�a݆R}Út¹¡æR¹|ÊéÁ|¦ÜñŒ3D/–-µÏ2ë!>H|ÿ»L~ÑTƃ&ß%—î×]Ö­-•¾ÇüAføïIš"¸9z±ÌÚ¶ŸämQ~K±¥ËÈÜ;ˆTí'sºN®8õ™ô\ÓFåùË#¤P‡5|~Ë5»yXv#'ÈŒ“¬ãÂbs6Mz/óþújC~“G+ꛑÕËùÂhïMY…>s{ÒÝvl±ÔÁ 9ÿsüZÿœiä/äћѭÖÞû1rÄ‘rù-—Êsºðÿ®»E¦¼x±ÌÓÆ¼O#™m¾_Xž«?|X&ߦÝóÎ4_~sºÕC'É£·Ø~Ó@ q¬KõÈgžyæ¥æŠhÁ©ýèC'ýÕ³œÏ¾^:¦®{Qí!ÍÓÕ|ú+fÕ²NÇq­]òÔè´*ýÕ4'hC¢MnÀk?4aëñ-Ð@ÚnAf“ïuƒ] ‚-(®Öqx-åiåÜ(Ųpã¿õ'…ó¥{.›k9uåUÕz/ßR½‹Z¥ìÔí0½ ¤W‹åŒV~æ#‚^¤WV­¬¯¬pnŒRн—dV–è{º,ØdJ¿¾z¿¦TjêuhO—|©Y»LÖèÆäté-ý5*,Õa ™õë¥Xƒ®Ð©ù¼³¤·^œ”WS"KW—ilÕYêÌ[2 eÀ žâ«\«w,´@.KzêÏú*d™^@gçPò»÷“¹Ú»ªÛï’Ÿ¡cés$?»Z–-]£Ë7Ï?§s/_ï“2µºtÖáOµ>©«©Ô^i½ÇwqÙ–u)ÏÓ‹ñzHuS]­^Ýûê—sŸ”Ú³ t<•¬Z¹6Ðó^þ°íÛú¡SFA/ÔKï:[¢–eág„6/û¦õr¤gÿ¾’]¯ã‡õó,· ‹øõ¶m«ÖÈâÿN“Io%óþvŒdUh{éõ™Õz_ÛõŽ—õé+EµÚf*”«?½®Ë—-SÏ-ÊØê–mìß¼Ý4Yn—^Ò§{ž”—Vèçm®^‡œ)%K—I™ö•ZÚ0ÝœºÛ‚²Aïh°ÅäË—m÷_ÅZYVlímSóõuÞ_ùµ²ì{kïÈSVao=‹˜/•n;nQÏ0ëúU2í„så°§õn!ƒô½­´ú~Ù°b¹”9oïl}ö—l½H³Aï°‘­?@ÔÐIïâã¾­Ô-ìVR§ìcS°äþ*­Ëê¨u ¦ã $„€¼?yê©§B.‹Ø²\n¯ª“ÝôŽ 5},¹z7†|핵Þ ÆP«=°¹:ôa½öòºÅ„öÖ†çêæi¿°fÁ¬õ⺭¥uaÆ`Ïm ¯M­ÉÓÊYе@>× W66|'™Y5ï긻<éš=X¶ïµ»Tl¬hU9ò‰$ wLÉÑ!Dvr¥¡¶Fô¤ÅS¦^°™¡g7êëôâÌÐ¥ºn¶~Ýb¾›¦y»IÛòèÓüõ*z¶&ZÈ’«O˪1†›ÖïƒïµS/0µTKåËÔ<tƒþz©‹Õ”U{>dê—ø m¬ÆÐ²ëWͽLλãyø©C¤P¯OÈб»uúã;[LN=õÖgúã9õÁÊo‘jӌָhGE¶âúu›öƒ?¡S ¼›ÜC—µæy´ú¶fݘÓÔ®’Ëþï<9äöGäAzßu}¿Dzo[™|zv"ª_«Ìb.+ €@ XÀ{ôO<ñ|Ke²Yë]µƒŽõÆÚ{n“ 5(//w†'¸?Ñ\O¬»-7èµ^] |suˆ„݉Á&;Ýdãv-Ðuu­¹`×ͳ=ÊéæÍ# à•@vÃYTœ#Cúæ;—Òz•oZå£Ã0Ö.^¡×lèu#úÃHL €@4 xöØc=-Aè| PÝ 3< µ@Ó¦Ð4¡ë6÷<t77]Ö\¡ËB×ñ²œ¡Ûà9 °5Yùú#9y ²n]™Žqfj“€/Wºõ,”½3PeœzðÛTnVB�°AInpÙš­»iþ#¯á¦‰¼4ò\w÷14U¤y¡Ë#=w×ñºœ‘¶Å<@ V:ý°5á¼±®JzWÀ¯×èí%™@�–,àõioKéXŽ� €� €@R ؆ %%%O$eé)4 €� €�-Ø}Ã,èeB�@�@ %,àµ?&@�@�RR€Þ”lV*…� €� à ðº<"€� €�¤¤�CR²Y© €� €€+@¯+Á# €� €@J ð¦d³R)@�@�W€€×•à@�@ %xS²Y© €� €€+`/ €� €�)+@oÊ6-C�@�0^Þ €� €�)-À†”n^*‡� €� ¥>@�ö¨­­•·ÞzK-Z$¥¥¥âó%ÿÇ͆ äƒù»¸›Ô»˜ß¬O†vüúVpN1ê{"3SDúØ«W'Ùkïþrê/ÇHn®ž˜@�oøDñÆ‘\@ LÀ‚݇zHúôÈf(2�� �IDATé#§všôèÑCl¦`ì_Ðô:Áæûí·Ò}›Qa…åe¬~ 4l£>4úýR_× «W•É£-_1G¼ïP‚ÞXQI�QèáJÃØ7Þxà r'L˜ M] ã„vòº=¾ðl9iœïol”µn®[j-¿S·ÐÊÙ2æ„6wð7µ«=8’ú¤^Ÿdw/”ÏÝ[.»ì¹û¯ŸÊíâóˆ�l•�=¼[ÅÇÊ I QƒÂO?ýT&Nœè,¶×69½¹&ñTߨ •5 ÁcruCÃ]æˆ"9Ø<{8ö\»yM´Aß'5u"NØIž»ý ùí;oú²ç  »�oìf¬�-4448úuë&öÜíᵞ½à†°<Ü`Ñ‚ Ð)Ñæ[pV¡AY`JôÒ&šž[ž&=}?¸Áoƒ½:°·F»z{öí*•þÌÍÞ;®8 €@[ÒÐ5ÖA�fªªª‚Ë-ȵ^7ÐuOgúC5`Ôè¥_rÆúî±Ç›ÖsúÿlqXãü—_~Yúôí#»ŒÝüô¸;†4Öü­.5õá®[ìèóßùÏ‹²¡¤X+ä“.EÝdøv;KßCÜã疰éer¦·R;ï}bcyëõ½RU/RÓ˜!߬󉽲³³#W™¹ €@ ôðÆ€ERh€õêvêÔÉ tÝ�×Ý 7KS¦7ß|³ì³Ï>²ÛnMw?ÙŒ˜†Ìrž¶vþ¬Y³d÷Ýw—wÚ9<‹˜òqW¶€·¶¡©ìîL}´9›‡æ…îü™»IjkªeÀ°ÑòÍÂÿÉêåßË™)ã9:$—–óÙ,±¾póoùkW-×a Ò§ÿ ðì·j»n™íÑzx-ØmÔëÕµZ{x32T² ËéáÝbÃÌ@�Ú @ÀÛ4VA�–òòòœ€ÅÒ`ÃÜà×C vÂ'wyøü­y}ß}÷9«{•·åã^³æ^sçÜcK·âá‘æ[`·Ë~?–S/ú£&ôÉ5”—fý]v=øhëô Lv¯.šËÇ–wTú»¯›"ý_^rƒmÖ»íj^ÖþÎ{@ÿ±»4Øû"Q­+7ê‚<zvÍœ ¼ àõÆ‘\@ LÀ^»5™ÝŠÌzEÝq¼aÉœ—DZšúz=Ÿ2Yø·nÝ:¹âÊ+åõ×_wzˆ>ø`¹~Ú4)**r¦ââb¹à‚ äÝwߕʑG)¯¼òŠüç?ÿqr:÷Üsžã³Î<ÓIoù]{íµòÚk¯IYY™ 6ÌÉ;d³ÁžZ' Y`å©×:Uæè }¾Ü’F›oA]uMÑrŸ!#eÁÜ—¥ª®Q^ytº¼ÿïgdÅâ¯dж;É ¿¾FFì°›“ÿô+'ÉÐíÆÊŠ%‹ä½Wž’Û_þ\æ>ÿH³é‡í°«”–¬‘¹Ï>,E½úÊäo?/ÏNÿ“dfeËINÕàû0'ÿ²õkåþ?þV¾˜?Wºöè-¿ºò6³Çþòüßo‘OÞ}C>ÿð¿òþë³åä‹®—]8B¢¥·º‡—õ6-벯?—§§_/K>ûŸät–?Î|S:wïeÉuƒêõŒìšM­þUëøè%eú> àuŒø¼ àõÆ‘\@ LÀíá­®®ŽìZph“솎ýuÇ34Pµ^âÇÜI{ÕUW‰Í³{üÚdw‚°¡/¾ð‚ê-­.“Å‹;ã?mù?ü  ʦqŧŸ~º,]ºTnºñFÙw¿ýdÉ’%Á´–ÞÝ®=ÜùšÏ¼ÒZ]ä“F™ÑõÚƒþœBÔùeu~ù¡¼Qæ­¨“+ËÜfÉðý•·ôõªìÞ²ã’ýŽ”7nû<tÏrÈå÷9ù/Yúƒ|øÖÙéøóäè?Ï‘ùrZL¿àíWe»Ÿœ!GÜ<[^»éùãÙÇIïÑ»ÊW?* ŸŸ!Ýy½”?ØÉöå¿’Î}É |,ß¾þ¸LŸú;9~ú<é|ЙÒëí¹Ò¥ßPÙãÔK¥4¿‹Ì]Y'ÑÒ›ƒ[ÖŸì”õý9òÂWÈðýŽ‘S®~BÊ×,•åù’¡Qm[à¢5ëáÕðVéýx¿ªÑCS'O¡ï?ž#€ÀÖ „ÿ>ÐÖåÆÚ €@“€¼6Yï­û×´(ø`Aøg6=±ù˜¾ùæ›rÆgÈÈ‘#? X­·wùòåòÝwßÉ;ï¼#“&M’ÁC†HÏž=å¸ãŽ Ï*øÚò³_~³ ù í)¶ ¢FÚüG$š+›Q½?Cê-àÕ!õMv‡ææëfY<÷9ylÒx™uæÒ—ƒd³¦9ù Úû§ÒuèŽâÏÊ“>Ûï%ký/˜¿•gÈÞ?‘'L‘‚þ#¤Á—)-¥¼ÏѲóÿ]"z‘>;ì%Ù eÿ‹ï‘ÂmFJÿÝ‘’%Ÿ;ùo\ù½,_ð¦ Øã0)[»JzŒÚCÖ/ýJ*Ö‹/¯P2²s%#§“dué-þì<i.½9¸eÝaÂR°Í})¾Œ,YúÁ«²qÍr§<Y¹R«iÍ«V¿1Ôécó\{z5ƒZuÊÌÔCS.CÜ÷ °õ|…ÞzCr@�ðÚ0ûs.VÓÞP÷Ž›_¼¦óµ‡Öþ‡=XPkÓØ±cƒËvÙ%p·[ææ³óΛî×êÎsó ÍÛÍoï½÷æ¡èÍβ| rB>:}¥iÀ¶Å6ß®Ãê3j¬Œ=îéÚ¸tï\eñgËÞ,MC:,t,Èl#S]ºöê·Ù6[Jߥ{ï`úœ¬,ÉïÒ] mˆ€–³“æk&–ÿú’N>{ê/Úþ¾cöÚ5ßKÏ>ý$S ­Á§[ßÓG(ëWÜ+¯ÞúkyâŒ]e— çËø_^)™9öeȾY±l¬Ù]üZÆÂL½+o^ˆqPŠ' €@Û<ÿDYµj•ÓëRYYÙ¶±$½€µŸ¶É xÝ@Ô}´eáÏÃz¸_¿~–Lìç|û÷ïï<_´h‘óh¯m¹Ö_ýupùúõë|Có²íØëAƒwøè£Ä‚ä¶L–WAîæ?‘l±­Máqoè| \{.#wÛ_Bç¯[ö̾î9ñægdØî?’Oþõ¼õÀõÁmØ r4è,ÌÉtò5½¬¸ZÐjÛÍË ¶V‡Þ;å>ðŒ«dè‡lQþ,gÛ›êÛRzÛŽ•5Ô§`àPùÅm/ÊÒçÉÓWŸ,=ú–Ý=Ûù…5 x-ðÕáÛÒ¥·{Ó ×fu®Ñ2vÊ–¹sçJçÎ2ò¤—@~~¾ Ñ3w}ûnêØOÞÕ«W;žBG×¥K—6÷ lM…Xâ/PZZ*¹¹¹NðZéBÝÐ×áóGŒá¦vk±]wÝÕËû裊õò:ÔÉç€?üá2yòdgìî‹/¾ ²Ý¼-_û³uöÝw_yàœ<,èµ`Úæ»=¶Ns“¥+lêáµàÌíÛméù¦À5ð±ë¦_W¾ÞÙÜ€¡£¥±|­,ûèM©­(u¶ai,P¶ 5?WV}kz @-uËœ›­=îš½.:J†ïq°¼7óϲ͈í¤[ßAR[U¡C5%/¿³ô4RV.ú8¸nKé3šÊênËÊÿýGódÐŽãeôHm†IŽÆ²V›,àµá.ÖËÛ ÃD²ô–dö:ßåå8_hìX„�é%`×uÔÔÔ81¥}v»([£àiÀk§ {õêå\=¥§Ñ¬L ~66¶®®Îù  xÝÏ÷1Tæî»ï–¿ýíoÁYãÆ“Ù³gËßÿþwgŒ® k°‹×ÆŒ#÷Þ{¯ØgŒG·Ýv›\{íµrÿý÷;Á¬¾7ÝtÓA¯õðZúéÓ§ËÙgŸ-‡z¨Ø/ÁY/ÂüùóüÂËeém oõéäÞA °X¬ÏÔzw›^Ÿ„η`0KƒÏN:65tþèqûËö-·Ÿ´“èЃÃ'_'_¿óŠ<ñûSå´g9ÁjŽöÊè6-ÿXÓgéºl»ÛÍk Ö:h†§Ýðˆ<víòçcGK·m†Hme¹œvÓã2\{¢÷=þL¹ÿÂãä–cFÈϯù»Œh³é!º½PŸg§-ÖJ§ÎEÒgøö²ßÏÏ–Ÿ«¨iÇ®sK2ëáµ ;G¯|³y…zç )Ì•=rœã‰ÎbB�4°Ï^»kφ œë5¼x-"=³¤¤ä^/,XàœV,((Øì`ãEÞä�É#`à ì–d6ìÀS·÷Ô ÝÇXjd·³ µk׮ͮvÖYg‰mÿÉ'Ÿl6¥±rµ”_x&Ÿþ¹,ì±·3Û>@ƒAnH¶Ì/ßP¢cm»éPÚ ©Ñ^V›ò:DÍ?Öô-•³F]Ûn—}œàÐôÖ¬®=û:^îüæÒ»®CuEY >z[2w²ï–—=:C4ÆÕ4Hem¬ÑûðÞõáRùä'â|)q×áÒCÀ^ëå­¨¨+V8gä¶¶æžöðÚ)Lûu%;(µå€¶µ•a}H ÛÿíƒÊ&û<p{yÝÒµåóÁÎEšn¿ývç^½;sGë¶!¶Ýæ&»£C[& à;n¹¦ Ãk©Z;¿°°‡“©“¾°`‹ „çkz7Ãð|Üù] µü[VÌÒw?í¦µÇæÒ‡;t.ì¼™ƒìZw®vô:Aoƒ¼zûݬÌlY[Z%ÇUêq¤€cI(:ÏH;FØŸÅ”[z1yðº=9m9˜yQò@�İ©ÿýïÎðû\pƒO÷³Á}ô¢´ãÇ—·ß~Û ví´—ý D[/HkMy¬>E:¬Tã4'Àµ^LgÒn¦|ÌoÆÇÀÔËzvm²`WÁXZX{µ«õW…×gJŸ5ïéÁî¨@þE�´°ã„u–Øg®“7¹xQò@�”°(»S˧Ÿ~ꌫµ-w<¬=÷rúÑ~$ö×QSNNŽh‡%ÓV Ø÷ ‚¾:„׿[¶A{yW|,³Ë=;ÐmeQYR@€€7‘* hÖ£kA¨Ý á“O>‘£Ž:J† ’ŒÝÍýä`/nSXgó[v0+÷â=óªÓ¼«}/Ÿ¾ü’”}÷¹Øƒ¸g¹ñ/ ÐvÞ¶Û±&D°SQvÁÚ©§ž*/èOþN:Õéáu{y£¬Æì4°÷ŒýÙ½•í}cï{Í„�x!@Àë…"y €À6taðàÁrÎ9çÈš5kœÛËØU·LD°÷KQQ‘ôîÝÛ9@°I‰y ÐV޶ʱ´(`A‹Ý“×zëìÞÉÒ6àºi AÅ@ ]xÛ…•L@ TÀ bÜÇÐe<G�@ ½¼½\º½KKþ €� €�Ä(@À#É@�@�’K€€7¹Ú‹Ò"€� €�Ä(@À#É@�@�’K€€7¹Ú‹Ò"€� €�Ä(Ðnwi°_#bB�@�@ -åååmY-â:ôðFda& €� €@ªð¦JKR@�@�ˆ¼Y˜‰� €� *¼©Ò’Ô@�@ ¢€§­ùýþˆqg^~ùåîS@�@�pn¸á†ˆ-Å–WŠ0ÓÓ€×çóEØÄ¦Y»í¶›Lš4iÓ ž!€� €�¤µÀŒ3¢Ö¿¥Ø2êŠa ÒÂK’UàÍ7ßLÖ¢SnZ€}+¡›‡Â%±@Gî[žöð¶ÖÜ«îéÖnt¤‹�ûVº´4õìhö­Žg{x+—€·®¾®ùZ¸C›!Ñ|­]ʶZ+=†ÑmZ»Ä#C/ö­iS§Éù¿>_ºvíÚÚÒGNçQ"g6—m…´á%†Í¢y±o5»X¶¡­V®\)³%\x³¥åË—KNNŽôêÕ«ù-·a[ÍgØÌR¶Õ N+¥ªa+«ß\²¸¼ õ ›•©¨¨Hú÷ï/ëׯ—AƒÉ=÷Ü#cÇŽÝ,M<_Ø7{¯ÆÄ³l;õB÷­sÎ9G¶Ùf¹ú꫃/--uö­/¾øBrssƒóCŸÜ~ûíò‹_üB Cgó´Ý· Â=nÙ>µ×^{‰]p3bĈv1êÛ·¯|ðÁ2`À€6ç¿bù çØú›ßüF&L˜ v\«¨¨††™={¶dgg·9oVD âðê>=÷Üs2pà@ùío+þóŸåO—×Ûo¿½<óÌ32jÔ¨¸lŸ"‹€¼Üéä“Ov.µ»£¸_Øžzê)9üðÃ%++Ë9йiCí@hù„溜礣@¤ýÁŽ[ö¥ò¬³Îû¢xÇw´ }AíܹóVí“V~wß~ì±Ç‚åÜwß}åù矗cŽ9&8'¤¢@\.Zs¦î£ÁÚóŒŒ ÙvÛmeÑ¢EÎk»£ÃA$ãÆ“‡~Ø™géÆ/ÿüç?žª9sæ´˜öé§Ÿ–ýöÛOvØayçwä²Ë.sØ_ýêWÁ<ÿõ¯É{ì!‡rˆ<þøãÎüiÓ¦‰:å”SÄ‚Ûv¤tÑÊdóùà£Þî~änoÏ=÷tö©7Þx#ø>œ9s¦üüç?w^GÛ¿,ŸÆÆF©¯¯wö™²²2'½åsÚi§óж/¸Ûç‘÷~ª¼Â÷-«—;Ͼ<ZgMyyy‹ûÆK/½$;s¬¹à‚ œ/Ÿ–WKûÚücY±b…“¤ã_´}1t{÷Þ{o°Ìn»ØñÍò>|x°ìî2Ù;â=à¼);蟸ôð66}X„ÖqãÆb;§Ýšâô‰ÅÒœÞyN�üÑG9=U??ñDg•¥K—ʼ·Þ’×^}ÕùÖÛRZË÷Å^¿Þu—s°·oâW_u•ì²ë®òÉÇ‹õâþîw¿“éiû=^OOuä‘r‰Î³žæ<ø Œ9R4�ˆ”ÎÆAE*ShýxŽ@G„ï['t’<¢_÷ÝgY¶l™ó7N¿Ø5·ÏX9m¹ý}ÿý÷R_Wç<¯Ðº m¾õEÛ:¢žlް÷}ød(ÖAòÒ‹/ÊôéÓ[Ü7,È}ø¡‡œcÎ]wß-ÿùÏ‚ëDÛ×l›v|©«­uÒ†kš;.…oÏò ­‡ {ú“ÅØvôèÍæ[:&RM .o­@C';xÚŽwÀÈ­·Þ*ûèÁÙÒ <Xæë¸¥yóæÉ2`ºÞE_,¹yyÁyÍ¥½ôÒK%KÇ'Ù©§Ýwß];ì0gó6.j…À7ê,ËôçÛnsæ[ïÖõƒlï½÷v^×i kÛž?~³éÂËZGž#СûˆmÏÆêÙ~5MÇÇÏÒÓ˜vÚÒÞÏ65·Ï¸ïyKgyÚ_}S Ûš}ÁÖcB •Â÷-;nYϪuÈœ{î¹²ãN;5{œ°‹@mÜüöz¦Ñ¦ý÷ßß9SiùZ^6Ùsû ÝלúOè>z¬‰v\jn{–ç‡~èôLõ“Ÿ8Ût·Ã#©*—€×OŠúüC†œe½QG}´3¦×½€-t½ÌÌÌà¸Ä–ÒÚP [7ôÏÝÍ[³fäççËÏ~ö3g¶=Ú)žÐíµ&]h™ÜüyD #Bß³¶];ÕjûÏ z†ãÉ'Ÿ”ûï¿ßy_·´ÏX>n^¡Ï-O{Ýš}ÆÒ2!*îþZŸ«ôLaII‰3ìÍ:Rl‹¶o¼ÿþûÎÄð|B_Ûóð×îöB—…kÚº½×_ݺ=w[<"Šq xmÌSèd;œÍ ÿÞ{ï9W¼žy晲`Ág|‘¥³Ý&{tÓ·6­­cÁ¯»ž›ŸõäÚ‡–]¥jãxC§nݺɺuëœušK^¦Ð<xŽ@G ¸ïíÐíÙtÞ³gO3fŒ³¨5ûŒív%zqq±óþ¿óÎ;ƒ±m£¥}!tû<G Â÷-÷¸ecjí®&çé<ûbmß°ݳÏ>Ûdw[xQ‡A¸y˜O´}͵ =æ…>oëö¦L™²ÙqÔݤªÀæ‘gÕÒvÖðÉÑÐùv%¹Ý­Á†7Ø g{Ýu×9n[×Òºé[›Ö>\ÜuíÑ^Ûvûõë'ÿûß r† "µ:Vê÷¿ÿ½|ðÁb·ÝÆåôÓOw£¥sóuËd¯™èhHï?Æ`ãmÏ?ÿü˜÷jdëÛÁøDCÿïÿÛÉ£¹}¦£ëÌöèHû–{ܲž^»0Ú®¹ä’K¢O®¼òJçBµ‚‚çz+·›o´}Í­›¥sÓ†>on_ln{v\³ üWzñ6é `à™Ú»¸|s+klwW°ûéÚ7á<_>Ù)U»2ÜÆË¶v²+ÄíB²:Û¤¨}PD›bI)GµvíZ§'Ì Ž-•×>`Ü:EK)Oæ!ÐQvŸN£ËÔš}Æ®>/,Œ|O^ö…X´I›¬mÙ·¢íUUUÎÙÄ… Ê©§ž*Ÿ~úi¥¹}-˜(Ê“–¶ÞC%f#С¶oÙu&vûæ$|²}Âî$âÅ­aãÒÃËŽgC l²u:uên±ÙëXÒn¶bÈ û¶>EúÅ©HéÂ×ã5-˾eekÍ>c½»ÍMì Íé°,UbÝ·¬Þ‘ö ëÀ±Éí­ Í·¥}ÍY±™šÛ^3«±´ˆKÀË/º¤Å{‹JÆA€}+èl2-¼Þ·ìbÒ¹sçò giñî¡’‰ —€×Æ=1!€€÷ì[Þ›’#&àõ¾eCä¶æ§‚iˆM .ï›o¾[)I�­`ßj‰ˆY€}+f2V@ ¡< xmÐ|k& Ì„� €� €@s­-›ËÖy:¶ ôÎ-m˜å €� €�4'àUléiÀÛ\Y†�/ðý÷ß‹ÝÖ¥µSKé[ZÞÚí@�ŽˆkÀ;xð`™3gN°¾vì³Î:+øÚ–÷îÝÛØß·o_çWÐn»í6ill ¦á l)`¿Ž¶×^{9û“Ý›÷úë¯ß2QÈœ–Ò·´Ü~Å®b·ûõÚ_—.]Brç) €�ñˆkÀZõ[o½U/^,wÝuWèl¹ãŽ;dÙ²eÎÏ1ÚO›Úrûõ3&ˆ.pÑE9¿üd¿Œ6þ|™>}º¼ýöÛQWh)}KË-c»‰¾õ&Û_iiiÔm±�d°_'›9sf2W²#– ð¾üòËr÷ÝwËSO=%999ÂÆpØo–ÛÏ£>øàƒòÝwßELÇLÒ] ²²RfÍšå fa7º·Ÿ~à"Ò´”¾¥å3e&)(pÍ5×Èûï¿/_|±Œ=Zêëëåˆ#ŽÇ\9ä9ùä“Zï½÷Þòá‡l™Ýsצo¿ýÖù2j?2qüñÇÇ4ä(˜!O@ f¸¼_~ù¥ÓcûôÓOK¯^½Z¬ÀQG%vÅÞgŸ}ÖbZ ŽvFÄ~Š{èСÁê2Ä9ƒœò¤¥ô--w³š={¶œtÒINï—WWÕºyóˆ@"¸îÕW_í°ö+iK–,‘Ë/¿\&Ož,6äΦo¾ùFì'„ÝÉÒØOÔÛtÞyçɱÇëì6Ï:z˜@ ýâðÚ7cëÕ4hP«jkéìC¦ºººUéI„@º lܸѩr~~~°êö³Üîüà̦'îühé[ZnÙX²õ*o»í¶rÉ%—8áÛá5É.`gKl¬ºýÜ|Ÿ>}‚Õ±÷üqÇ·Ù¼àÂ'eeeÎÐ"ëñ-))qÆÙ¿ñÆ!)xŠ�í%÷€÷Š+®áÇˉ'ž( -ÖsÞ¼yÎi$[‡ ¶pÄ¡ãh-hµ ?#M-¥oi¹åÙ³gO9ðÀåÚk¯•ßÿþ÷rûí·KMMM¤Í1”èׯ_«êdÇ/;ûbסœrÊ)òÒK/±Ÿ´JŽDl½@Ü^ë­µž!×tá…¶X#»«ƒýã˜1cZLKÒQ ÿþÒ­[7Y´hQ°ú6th»í¶ ¾}ÒRú––‡æeÏ÷Ýw_çKéš5kÂñ”hÍ·Ç\w8ƒ}1´q¿Ï>û¬3ØÆs\J¼%¨DÄ=à5£=z8�vk#û‹4YÕ£>*÷ÜsÜxã’››)óH{ûiwL°‹;m²ÀÓz’&Nœè¼¶¬Ö;ØRú––3mzb_`­Wؾ˜2!jv»ÌÏ?ÿ¼Ùj 6L>þøc±! v«Íõë×;éwÙe5j”s sÇønذ¡Ù¼Xˆ�Þ$DÀkUÙi§äþûïwôÛiw²{óÈÈ‘#åÞ{ﻸͽÖMÃ#l.0uêTY¸p¡ì³Ï>2nÜ8g¨Ahï}÷ÝçÁîZ-¥oi¹ MÚm·ÝdìØ±bû¯½^ý:Ž[FH `­cÆîom²» Ù…møÚÜ/öåñ‰'ž7ß|Sì̉¿6´ Ú_À§›8SÏßëŦìªíĶSçååm‘å“O>)“&MÚb>3@ }ìêp»û‰ýDk¦–ÒG[n½Uv«@Ëh·[bB •l˜‚‘·³“Ñ&»Ÿ £ÝjsíÚµ×kœa�� �IDATNgŽ]PÊ„@º ̘1C&L˜°ƒÝ×}ÅŠΗÃ-Æ8#+Æô$G�$½5YkŠÝRúhËí Í¸úÖ“&ìN Í»VÇлžDª³çeB�ŽH˜! We¶„� €� N¼éÔÚÔ@�HC¸ iØ÷¬ùiHM•h_y÷îÁ…bíKLîi*`·!㸕¦OµÛUÀŽ[5Å%àí¨Ê±ÒQ 5÷MGêŒ@[¸ÛH[ÔXÄðtHC²hO>¬¯ éϲ‰÷¶¤D^Ø•äo¿ý¶L›6͹¢Ü‹<É@�Žð*¶ô4àõ›ðÌ?î(ûîÜò-Œ¢¥»ô´!råÄ¡[¸Ÿrx?¹üW[ÎOø“}{É€^ü€E¸ ¯“_Ànf?%üë_ÿZ®ºê*qorŸü5£ €�é$klÍÆÓ€7ÚF¢Í?çO_È{ŸmŒ¶88?4Ý]—l+‡î¸÷á+ï–È»v“¼œÍ«qè¸î2ç½’àú<A Ýì>ØË—/—‡~8ݪN}hWÐcP»nˆÌ@ÀSÍ#EO³n9³kÎ&;èì$¼õ·£díí½ö¬áòŸÇÊoOÌÀMwÆO·‘í†Êù' ”G§î( ¿-—õ²ÿ.Ý‚i‡ê…î]³å_•9ó&Ý_î¿z{yþ–±b=Â>û© &R\À¾Gúñ—¯6ÕC ]ÂA™>±c×Á»w—;.í¿¬�Ó/#£ËbËÆŽ ë¶Ñ³Šw_:F^þË®2íÜÒ)7®‡á`y‚@ª ÄuOë×37¸³Ûó‹N, •Ê%ùZŽ9 wp|­›îѯ’¥«ªäÁWÈy7})õ ~ù·öò¶×¦_»±ÞßW篓ÆF¿ÓvËÖÔÈUÓ¿‘Ó®[èÆ03!€� «@ø1¨A3v|:ç¸òôkä/-u²Ð;Or³7õ®X÷Lä…§ –¹ÿ[/'^þ‰äi°{ànÝc-é@  q xÃËûø««å¹7‹å‹ï*œÀvÔÀüÍ’TV78AnyUƒ¬+­s–Ù°†=Æt‘Ú«k“ gøÏûëœçö mXQ\#ÊêåÛe•2jÐæyò@�f"ƒ,ù#¯¬”75ˆuKѲÈÏËtÎjÎÿ¢TºdÉgz–r—Ñžßhë0¼H¨Û’-[]¬U]} ‡68#Ê“¥«ªåËï+q½6ÄÁ¦Ïí¹j²q¾vÚhø€|yC?”˜@�ðJ dC ¦¥üvQ(Y™>¹ì—C‚I—ëYH&h„ x[[ÝM'Šk¼òîZùé~½¤¿ž6šÒ»k½¹W>TN»v¡ØÐ†Ûu €�[#~ Š”W†ŽïµÉ\º`ÓÆòzÉÔ§—ßõµ¬meì¬È? °Õ 5¤¡5µYURÛ릷! ƒûu’#÷é¹ÙÝl˜CYeƒ¬Y_'v1[ß9b§”˜@�h‹@¤cPx>+ÖÖÈH’gÇ»Xºs~ oiÑÒJYªg2íÖ™¹ÙÃoa>Ǥp?^#ÐIð>ÿV±½_O¹ïªí‚ö­ù½…e¹ŽÕ]²¢*8þ祲R?xì v¿^»˜íÿ~Ü—q¼A!ž¤ª@ee¥tëÖMÆïTqÔ¨QÎ}ySµ¾Ô Žˆt ßöS¯­–3¶<qÃNò©µ+^_ë$±‹Ü®žþ­ì¢wlxNK³¦í(ל9<|u^#€@;Ø9—3KJJîõ"ïE‹Iÿþý%+++â-‘ž|òI™4iÒVÿ&¹"*è”éœjM¹íâ€R½}™M] ³Z½^kò& ‰"`¿In·#óêWi¥^”x ¸ûÔ¾gÍ£5Ç »+ƒ¸Ñ®G±cQuM£ÔÔ5óå é&`Ç-›f̘!&LØ¢úååå²bÅ ±N›­’r ¯ÝŽÌzu[;¹Á®¥e½ÖæO:@�ôhÍ1¨º¶ù@–cQú¼_¨ib$eÀ›t”Äðêg³v” @�Øâðº]ر—5@ 9†34§Ã2Ú.Àq«ív¬‰@"$ÝEk‰€F@�@�’G€€7yÚŠ’"€� €�´A€€· h¬‚� €� <¼ÉÓV”@�@  ž¼\0Ó†`@�@�ˆ^Å–ž¼Ü)b[1@�@  ^Å–ž¼m¨« €� €� Ю¼íÊKæ €� €�ñ àw °}@�@�v àmW^2G�@�ˆ·�o¼[€í#€� €�´«�o»ò’9 €� €@¼xãÝl@�@ ]xÛ•—Ì@�@�â-@Àï`û €� €�í*@ÀÛ®¼dŽ� €� oÞx·�ÛG�@�hWÞvå%s@�@�x ðÆ»Ø> €� €@» ð¶+/™#€� €�Ä[€€7Þ-Àö@�@�ÚU€€·]yÉ@�@ Þž¼~¿?Þõaû €� €�)"àUléiÀëóùR„—j €� €�Ä[À«ØÒÓ€7Þ(l@�@�pÞp^#€� €�¤”�oJ5'•A�@� à á5 €� €@J ð¦TsR@�@�pÞp^#€� €�¤”�oJ5'•A�@� à á5 €� €@J ð¦TsR@�@�pÞp^#€� €�¤”�oJ5'•A�@� à á5 €� €@J ð¦TsR@�@�pÞp^#€� €�¤”�oJ5'•A�@� à á5 €� €@J xðúýþ”¡2 €� €�ñð*¶ô4àõù|ñaË €� €�)%àUléiÀ›RÂT@�@ %xS¢© €� €@4Þh2ÌG�@�H Þ”hF*� €� M€€7š ó@�@�RB€€7%š‘J €� €�D à&Ã|@�@�” àM‰f¤ €� €�Ñx£É0@�@ %xS¢© €� €@4Þh2ÌG�@�H Þ”hF*� €� M€€7š ó@�@�RB€€7%š‘J €� €�D à&Ã|@�@�” àM‰f¤ €� €�Ñ< xý~´í0@�@�˜¼Š-= x}>_L• 1 €� €�ѼŠ-= x£–ù €� €�ÄK€€7^òl@�@ Cx;„™ €� €�ÄK€€7^òl@�@ Cx;„™ €� €�ÄK€€7^òl@�@ Cx;„™ €� €�ÄK€€7^òl@�@ Cx;„™ €� €�ÄK€€7^òl@�@ Cx;„™ €� €�ÄK€€7^òl@�@ Cx;„™ €� €�ÄK€€7^òl@�@ Cx;„™ €� €�ÄK€€7^òl@�@ C< xý~‡š €� €�¤¾€W±¥§¯ÏçK}yjˆ� €� Ð!^Å–ž¼Rs6‚� €� €@ ¼1`‘@�@ ùx“¯Í(1 €� €@ ¼1`‘@�@ ùx“¯Í(1 €� €@ ¼1`‘@�@ ùx“¯Í(1 €� €@ ¼1`‘@�@ ùx“¯Í(1 €� €@ ¼1`‘@�@ ùx“¯Í(1 €� €@ ¼1`‘@�@ ùx“¯Í(1 €� €@ ¼1`‘@�@ ùx“¯Í(1 €� €@ ¼1`‘@�@ ù< xý~ò Pb@�@�„ð*¶ô4àõù| ‰E¡@�@�’OÀ«ØÒÓ€7ù)1 €� €@ª ð¦z S?@�@ ÍxÓü @õ@�@�T àMõ¦~ €� €@š ð¦ù€ê#€� €�©.@À›ê-Lý@�@�4 àMó7�ÕG�@�R]€€7Õ[˜ú!€� €�i.@À›æo�ª� €�¤º�oª·0õC�@�Ò\€€7Íß�T@�HuÞToaê‡� €�¤¹�oš¿¨> €� 꼩ÞÂÔ@�HsÞ4P}@�@ ÕxS½…© €� æž¼~¿?Í9©> €� €€W^Å–ž¼>ŸÏ«ú‘ €� €@š x[zð¦y›P}@�@� àMÀF¡H €� €�Þ ðzgIN €� €� (@À›€B‘@�@�¼ àõÎ’œ@�@�P€€7…"!€� €�x'@Àë%9!€� €�$ �o6 EB�@�ðN€€×;KrB�@�H@ÞlŠ„� €� à�¯w–ä„� €� €¼ Ø( @�@À;^ï,É @�@ x°Q( €� €€w¼ÞY’ €� €@ ð&`£P$@�@�ï< xý~¿w%#'@�@�´ð*¶ô4àõù|iÝ(T@�@À;¯bKO^ïªGN €� €�x#@Àë#¹ €� €�$¨�o‚6 ÅB�@�ðF€€×GrA�@�HPÞmŠ…� €� à�¯7Žä‚� €�  ¼ Ú0 @�@À^oÉ@�@ Ax´a( €� €€7¼Þ8’  €� €@‚ ð&hÃP,@�@�ox½q$@�@� àMІ¡X €� €�ÞðzãH. €� €� *@À›  C±@�@�¼ àõÆ‘\@�@�TÀÓ€×ï÷'h5) €� €@² x[zðú|¾ds¤¼ €� €� *àUléiÀ› V @�@ xÓ¸ñ©: €� ¼éÐÊÔ@�HcÞ4n|ªŽ� €�¤ƒ�o:´2uD�@�ÒX€€7Ÿª#€� €�é @À›­L@�@�4 àMãÆ§ê €� €@:ð¦C+SG@�@ xÓ¸ñ©: €� ¼éÐÊÔ@�HcÞ4n|ªŽ� €�¤ƒ�o:´2uD�@�ÒX€€7Ÿª#€� €�é @À›­L@�@�4 àMãÆ§ê €� €@:xðúýþt0£Ž €� €� àUléiÀëóù: êl@�@ ¼Š-= xÓž:"€� €�$—�orµ¥E�@�ˆQ€€7F0’#€� €�$—�orµ¥E�@�ˆQ€€7F0’#€� €�$—�orµ¥E�@�ˆQ€€7F0’#€� €�$—�orµ¥E�@�ˆQ€€7F0’#€� €�$—�orµ¥E�@�ˆQ€€7F0’#€� €�$—�orµ¥E�@�ˆQ€€7F0’#€� €�$—�orµ¥E�@�ˆQ€€7F0’#€� €�$—�orµ¥E�@�ˆQÀÓ€×ï÷Ǹy’#€� €� YÀ«ØÒÓ€×çóE.-s@�@�ˆQÀ«ØÒÓ€7Æ:@�@�v àmwb6€� €� OÞxê³m@�@�v àmwb6€� €� OÞxê³m@�@�v àmwb6€� €� OÞxê³m@�@�v àmwb6€� €� OÞxê³m@�@�v àmwb6€� €� OÞxê³m@�@�v àmwb6€� €� OÞxê³m@�@�v àmwb6€� €� OÞxê³m@�@�v àmwb6€� €� OO^¿ßϺ°m@�@�ð*¶ô4àõù|)DLU@�@�â)àUléiÀO¶� €� €@$ÞH*ÌC�@�HÞ”iJ*‚� €� I€€7’ ó@�@�RF€€7eš’Š €� €�D à¤Â<@�@�” àM™¦¤" €� €�‘x#©0@�@ exS¦)© €� €@$ÞH*ÌC�@�HÞ”iJ*‚� €� I€€7’ ó@�@�RF€€7eš’Š €� €�D à¤Â<@�@�” àM™¦¤" €� €�‘x#©0@�@ e< xý~ÊÀP@�@�ø x[zðú|¾øª°u@�@�”ð*¶ô4àM]*‚� €� 2¼)Ó”T@�@ ’�o$æ!€� €�¤Œ�oÊ4%A�@�ˆ$@ÀI…y €� €�)#@À›2MIE@�@�" ðFRa €� €@Êð¦LSR@�@�H¼‘T˜‡� €� 2¼)Ó”T@�@ ’�o$æ!€� €�¤Œ�oÊ4%A�@�ˆ$@ÀI…y €� €�)#@À›2MIE@�@�" ðFRa €� €@Êð¦LSR@�@�Hž¼~¿?Ò6˜‡� €� €@Ì^Å–ž¼>Ÿ/抰 €� €�‘¼Š-= x#”y €� €�ÄS€€7žúl@�@ ÝxÛ˜ €� €�ÄS€€7žúl@�@ ÝxÛ˜ €� €�ÄS€€7žúl@�@ ÝxÛ˜ €� €�ÄS€€7žúl@�@ ÝxÛ˜ €� €�ÄS€€7žúl@�@ ÝxÛ˜ €� €�ÄS€€7žúl@�@ ÝxÛ˜ €� €�ÄS€€7žúl@�@ ÝxÛ˜ €� €�ÄS€€7žúl@�@ Ý< xý~»˜ €� €�¤‡€W±¥§¯ÏçK}j‰� €� Ðî^Å–ž¼í^k6€� €� €@Œ¼1‚‘@�@ ¹x“«½(- €� €@Œ¼1‚‘@�@ ¹x“«½(- €� €@Œ¼1‚‘@�@ ¹x“«½(- €� €@Œ¼1‚‘@�@ ¹x“«½(- €� €@Œ¼1‚‘@�@ ¹x“«½(- €� €@Œ¼1‚‘@�@ ¹x“«½(- €� €@Œ¼1‚‘@�@ ¹x“«½(- €� €@Œ¼1‚‘@�@ ¹< xý~rÕžÒ"€� €�$¬€W±¥§¯ÏçKX0 †� €� \^Å–ž¼ÉEHi@�@�ÒA€€7Z™:"€� €�i,@À›ÆOÕ@�@�t àM‡V¦Ž €� €@ ð¦qãSu@�@ xÓ¡•©# €� ƼiÜøT@�HÞtheêˆ� €�¤±�o7>UG�@�ÒA€€7Z™:"€� €�i,@À›ÆOÕ@�@�t àM‡V¦Ž €� €@ ð¦qãSu@�@ xÓ¡•©# €� ƼiÜøT@�HÞtheêˆ� €�¤±€§¯ßïOcJªŽ� €� ीW±¥§¯Ïçó²Žä…� €� Æ^Å–ž¼iÜT@�@ Ax´a( €� €€7¼Þ8’  €� €@‚ ð&hÃP,@�@�ox½q$@�@� àMІ¡X €� €�ÞðzãH. €� €� *@À›  C±@�@�¼ àõÆ‘\@�@�T€€7A†b!€� €�x#@Àë#¹ €� €�$¨�o‚6 ÅB�@�ðF€€×GrA�@�HPÞmŠ…� €� à�¯7Žä‚� €�  ¼ Ú0 @�@ÀO^¿ßïM©È@�@ í¼Š-= x}>_Ú7 � €� €�Þx[zðzS5rA�@�@À;^ï,É @�@ x°Q( €� €€w¼ÞY’ €� €@ ð&`£P$@�@�ïx½³$'@�@� àMÀF¡H €� €�Þ ðzgIN €� €� (@À›€B‘@�@�¼ àõÎ’œ@�@�P€€7…"!€� €�x'@Àë%9!€� €�$ �o6 EB�@�ðN€€×;KrB�@�H@ÞlŠ„� €� à�¯w–ä„� €� €ž¼~¿?«H‘@�@�’QÀ«ØÒÓ€×çó%£%eF�@�H@¯bKOÞt¢H €� €�i.@À›æo�ª� €�¤º�oª·0õC�@�Ò\€€7Íß�T@�HuÞToaê‡� €�¤¹�oš¿¨> €� 꼩ÞÂÔ@�HsÞ4P}øÿöî<FŠ2ÿãø·gQPÀ{ð>ú¼5ÐÕh<þð�E¼ã $*jd×]uGdc/¼‡³ü��ÙIDAT¨€÷}kŒàÅ5Š ‚ Ìô¯>ÏìÓ³Ý3ÓðtuuÍ»HSÝUÕUÏózjÒŸyú©@�².@àÍz S?@�@ “ x;ù @õ@�@�¬ x³ÞÂÔ@�èäÞN~P}@�@ ëÞ¬·0õC�@�:¹�·“Ÿ�T@�Ⱥ�7ë-Lý@�@�N.@àíä'�ÕG�@�².4ðæóù¬{Q?@�@�„BeË 7—Ë%T}ƒ� €� uPÙ2hàÍ::õC�@�¨=oíµ%F�@�(C€À[›"€� €�Ôž�·öÚŒ#€� €�”!@à-‹M@�@�jO€À[{mF‰@�@�Ê ð–Ŧ €� €�µ'@à­½6£Ä €� €�exËÀbS@�@�Ú ðÖ^›Qb@�@�2¼e`±) €� €@í xk¯Í(1 €� €@Þ2°Ø@�@ ö¼µ×f”@�@  oXlŠ� €� P{ÞÚk3JŒ� €� P†@ÐÀ›ÏçË84›"€� €� PZ T¶ xs¹\é³@�@�2BeË ·Œò³) €� €�‰xaæ  €� €�Õ ðVKžã"€� €�$"@àM„™ƒ €� €�TK€À[-yŽ‹� €� ˆ�7f‚� €� P-oµä9. €� €@"ÞD˜9 €� €@µ¼Õ’ç¸ €� €�‰xaæ  €� €�Õ ðVKžã"€� €�$"@àM„™ƒ €� €�TK€À[-yŽ‹� €� ˆ�7f‚� €� P-oµä9. €� €@"ÞD˜9 €� €@µ‚Þ|>_­zp\@�@�Œ „Ê–Ao.—Ë3ÕA�@�¨–@¨l4ðV ƒã"€� €� PJ€À[J†å €� €�™ ðf¢© €� €@)o)–#€� €�dB€À›‰f¤ €� €�¥¼¥dXŽ� €� o&š‘J €� €�” ð–’a9 €� €@&¼™hF*� €� PJ€À[J†å €� €�™ ðf¢© €� €@)o)–#€� €�dB !éZLž<9éCr<@�@�N,hà3fL'¦¦ê €� €�ÅæÏŸ_lq°e‰ÞJW&˜ ;B�@�ÈŒ�cx3Ó”T@�@ ˜�·˜ Ë@�@�2#<ðæóùÌàP@�@�ê„Ì”Ao×®]mÙ²eÕQᨠ€� €�™P¦T¶ 1½h­W¯^¶páB«««³¦¦&Ëår!ÊÈ>@�@�:‰€zvv/^lÊ–!¦ ·GV__o‹-rd €� €�K ¡¡ÁzöìiÝ»wRñ W%RÁB.H Ù  €� €@§:†·SKRy@�@�T xSÙ, @�@ ”�7”$ûA�@�H¥�7•ÍB¡@�@�B xCI²@�@�T xSÙ, @�@ ”�7”$ûA�@�H¥�7•ÍB¡@�@�B xCI²@�@�T xSÙ, @�@ ”�7”$ûA�@�H¥�7•ÍB¡@�@�B xCI²@�@�T xSÙ, @�@ ”�7”$ûA�@�H¥�7•ÍB¡@�@�B xCI²@�@�T xSÙ, @�@ ”�7”$ûA�@�H¥�7•ÍB¡@�@�B xCI²@�@�T xSÙ, @�@ ”�7”$ûA�@�H¥@C*KE¡@�¨°À²eËìƒ>°Y³fÙgŸ}f .´ææf÷ð‡Îçóîi.—ó‹Ì/+,ˆžTk½?®æ¹úœu©ïb=zô°ÆÆFëß¿¿í°ÃÖÐPÝúZuÆ´å ÷ç˜^…:÷ý>“4ÖOðèŸþù?-Õâ@�²- í÷ßß~øaëÞ½» 2ÄvÚi'÷|µÕV«éÊ/]ºÔ~ÿýwW¿çŸÞ~ýõW;ì°Ã\øõ!#© fÅÓÊŸ1Ix+ߎ@ %MMM6}út{çwìœsα~ýú­Ð;›’b®R1|/œz«¿þúk»êª«l—]v±#FX}}ý*í»£oΚ3¦mù•ß®ÒÆÞ•oÞ‰� PC € »ÆpöÙgÛzë­guuuQàÕWµ5T‘¶ŠÕ#ýÓ¤�¡àùÃ?Øõ×_o °áÇ»:·µ‹U]—9gLWõ”hÿý ëW½ãÆû[û¥a @�jS@áOcu_~ùe;âˆ#l£6rÁOË››£ˆÍÓðÐW»*‡¦Ž–GÛ*dÆ·×k¿¬®®>ªï†öâ‹/Úšk®i}úô©X¯¶ÊP Îq«bÏ;£éÊœ{Åì:º,ic¯Ä™@�2-°xñb»÷Þ{mðàÁ¶yc£­Ñ­[!ðªâ­?¤—‡àƒ¤¶ûþûïíž{î± 6ØÀºEûiýÞUy=lØ0ûꫯl¯½öêÐ~Uv•ÕõëFeó!WehY×lË–-u=½*ëk¯½æÆóVj¬rHçbŽªß#<bwÞy§=ñÄöÓO?ÙV[må¼ßþÑGµ¿þúËÖ_ý‚¡ÚK“zõýv¥æ-nÙ3•¾áÐÏÁ}÷Ýg~ø¡;—ûöík:Ê=÷Jùudy5Œ¹-™Ô™@�2+ z}¸¯³Î:¶é¦›Z>ðdɵ®Ø#ŸWÐýß°«ó›nºÉÎ<óL›<yr»á©#þñm|#Ä—µõ\eW9}ü¶zÝÔÜä–«çN¬m¼ñƶîºëÚG}ä–ûc…šë˜!}]üü—_~±C9Ä.ºè"[}õÕ]{^{íµ6tèPûæ›o mqå•WÚ“O>Yx=iÒ$Ó2×öQûùý•šgÑ4º9|ðÁn(ÏŸþiÛo¿½ »—]v™½ûî»ÎÄŸ¥\B.¯†quïUâu™#€� P!õö}üñÇ.ð((iˆ«–éCW=[ ºKyW˜ŒZz~ã‹›¢[™ÝvÛm¶å–[ºùù矿˜Xí¥¥o5þ®åÏÛ[¯P¡q· ©Å¦Öï÷w^¨‹Ê?®ö£Û)Üh_ºX­k×®¶É&›Øœ9sÜíÊÖXcb‡Xée![×S…ºä’KÜíã^zé%[;ºõšê{Ê)§¸žÉóÎ;Ïî¸ãWvÕ½ù¿† ¾×]w=õÔS®­½k±ý»7GÿeÑt„ öÅ_˜îÜ¡^n?)ðÊK.åž{~~Þ–©¶‰¯¯†1×·s@�L üñÇî»;»'m}C}¡çS¡P¾¹ºœ)4FÝ¿Î Š»Ñ¼åÿJ´hæ3] ý÷uÿ¶ÃGØŒ™3l¿ýökÙ$Z¯‹áì8Àæ~=·pÛ³ O°ƒ:È%áöÖ«Wvi4añ‹íÜsϵ¾}úÚ¸ñã ûŸø÷‰®góôÓO/,S”puȵ„ôæ¨ÇWÅW€ÉG¡^ëxu?^}ͯÀ+“Ð7¤³KGx³ Ø”)SìøãwõXùøiØðaö¿ÿÃf¿?Û¶Øb ×>K"ÃY³gÙ©§žj7ß|³õîÓÛ™º÷¨i[šÙïbŹÖgÈô·ß~s¿œýó_ÿ´nÝ»-wˆ×:ªsüÜÓ*õ¨_rñ%ö /¸shß!ûÚ¥—^jk¯½¶{çÛo¿m“®šdï½÷ž>}ÆôB˜Vòøqãí•W^qçÜå—_n{ì¹Çò#VÁ˜! Ëùy†� Aõ<êb-}P+øéÎ ~®çî‘ÓÇa”‚„4SŽ–ÕÅѶwÝy—sÌ16ðÿº{÷N»kÚòm¢õß}÷ÝtãMnø€Æî¾ûî6ö¼±Qð̻㴷>:ªû§ãî¹Çž.ä-]²ÔC÷×:eª°ÿ…cªõõ-wšPÁUn½·¥üÑs·¾¥Î ¼k­µ–»ß°LBO!WpêóùgŸ»ë!Ñ=“}{ùm†î7ÔUeÎ's u_ðÛ5r”;ÖöÞ{ï‚—{Ú<Þ®­žgÍô‹Ï¿p¿à 8¨t½#“ø¹'Ÿ3N?ÃÝáã°ûï¿ßæ}7ÏÎ<ãÌÂ>&^6Ñ8à�7D桇²^={Öi»^½zÙ[o½e£G6õ0ÇÍ«aLà ýÏþ@�R# ^Nõâê¯uéÒ¥¥‡7z[>xë[zx„ÚxÌ›7Ï}%|ì±ÇºíŽ;î87Vtþüù…÷©âGy¤ëYÔ_9»øâ‹]O™zÁ´ïެw¡5ÚöÐCu½´3fÌpïUðÐ>5þÒ—³lcåV¢^l\=×¶z®‡ þe"›PSHg_·ø\½šÔƒ_®çÛm· ø¾´î³¬‹ÿŠmßúý­_gÍÔÛi {ëºÆ_ËÍŸ{­žÝ1cÆØ6Ûlã'Ÿ|²=û쳦Ÿ½OçÓsÏ=ç^o¶ÙfnÈŒ–Ï;×ÝäÀ´üÑ dŸ|ò‰»ÀЯÆ^µ0 €@fÜWûQ¸Ó8Eÿ냠Ÿ7Ô·„C½.õ¸ûî»]X¼å–[ì /t¡JûTï—>È5NØ¿ÖxI=xµ¬#ëUFm«`zøá‡Û´iÓÜë©S§ÚÈ‘# ûöÇðsÿ>½Ö­ÈZ×U¯ýŽaן8¡œ}}âó~ýú¹Ã¼ùæ›ÿS}}®ck½GÆ [\pë]Ô}—ãû*çyLF5}ûí·m:ÈÍ×WÛj8p`á=z®ÉïçÆotî»í¶›Mœ8Ñ[²Õ·šn¸á×wÞÙýRÌÞSë*yÞ2†×5 ÿ!€�dU@¤ª[fé.ú€õÿ!¯À¤çš|Ôkÿ\’é¢( gÐm°ü¤[”iùYgåé=~ŸZ 0¦[gùûþ–»^cVõµ±n%¥? ¡{«ì~Òþâ“/¯–鹺8O“Þ§q¶úsÃ2 =…pöeR½âuÑE‚º}–.º:ᄜ±_?sæL7LCÚÛèý/­^Þ£>ÚõÄûà§c´Þ¿?®_í£ez®G-™ÊN½»ºÙ{ÄÆÑÆ+=—‰2Ô-÷4©gÖ?×…ŸšôZÛÈóÁ´W_}ÕFF¿ˆé.'t’»0RÛ?~ùøöèuÜ\ÏãSÆÞ¸8Ï@�2% V݉AãK‹õðj}ëßb�O?ý´Û‡z²â÷°Õ×µºhM=¯«é7Þ0·U­î«°¡ÐêCf{ëU¿­zÆ4„AcQ*Ú»ÐLïõáÁ‡3_G…võð*ôª©w1‹bË´¯ÎÅö­eòÐSúsÐ ½ûï¿¿ÛTN]qŦ»eè‚<M¾¾zÏÕW_íz$5ÌDwjP[”;iµlªû/ëVn2Úzë­í´ÓNsž íº‹…±šTW¹i;ý¡ovÝuWw! Îeõòj[m§ «uºgtcc£3Ò{µ~ß}÷5Ý2NÃ!tgý²©ãég¢Ø”„1·˜<Ë@�2# Ûqm¸á†¦1ž ¢êåÕ³ú Õ£½Ià 4vWá!>é¿ÿþvûí·»‹£´/ iP Ó‡¼‚¶ÖõìÙÓ½­#ëÕ{¦ñ‘~5j” +C_î×—šûÀ« áƒ®zwe!“ÐSç¶Ê$Õ_½ˆþDÕQ q¾5WÛj[=Ôô ‡zçüñvih« µjª±¸:/5ÌC¿´éžÌ:?õç¦u9É-~îéœ?ñÄÝiCúÅkJt§ פo5ôí…Îm£Ö¶Ú¦[o½Õµ‰îŒ¢ž`ýÜéç@ḽ©RÆú)}åòŸö Àz@�jQ@aïÓO?uaG_oë«qõ”êÃYÁÈO>0ùÞ<¿¼œ¹ÆŽî³Ï>nŒ¯†;èX~¿ÚO{ë‹ëšk®±Ç{Ìžyæ™b«K.S=TÔ³«?´¡! Çw½p>œ”ÜA™+’rV½tOYÍûEãvÒ’š²`ª1¸ .t½¯ñs³”¡†åèçÄÿÒßNûѤ»›t¬{÷î]luÑe•2^þ+dÑò@�ÚЇµ‚çæ›onºãÁQGU¸°L¡/d`Ò¾t<õvÆÇŒzÁöÖûíü\!Rÿ¨.>”¯ok®°ëƠЬ€(‹xÐokå¬KÒyÛm·-§hÁ¶õžš×ª©Îr&?†·Ø{ômI[“†”;Œ¤RÆúÕvà¸qãþÖVY‡� €@­ ¨ËߎKáèOëj‚ïå Y/õNiìc©PÑÞúÖeñ2WQ¬ÜYß{·hÑ"÷u²Æ0kl¥î2äû2'éì™ôÓÊ‹Wʘ! •o;Ž€� §ÕWẗ¨¾Þ×NÕ3©YÿA›‚¢®RªýcÖ¬YnÜ¥.è:t¨ëå.·§¸ÜÂdÑÙ{jŽi¹gDǶ¯´1·cíÀV €�5. TeÕ}B_ýu›={¶z +Ïu‡ A¨ÄÅ\I²)lêÆÿº‚^|A¯Õ›=xðàŠ]¬Öº~YsÆ´u ‡„17|»±G@� h\¬îV `¨á _~ù¥ûkhúÊ_a­–'õRkø†þ¬kcc£»z^·…ÒGå‰XU‡¬8cºªgBûïO˜ÀÛ~;° €@Æ|/¤® ×C˜Bc]uGƒZ ½ žÑ½{w÷§”u 5=Bßs·œS¡Ö1-§µWnÛ¤Œ ¼+×>¼ @ # e ºµv}SøðàÇ%ûåi˜×ª3¦•?{’0æ¶d•oGŽ€� b}Øêëþ¤¿òO1IEІsxVL;nšÜÝš;^&¶D�@�@ ˜�7%;B�@�H£�7­B™@�@�‚ xƒQ²#@�@�4 xÓØ*” @�@ ˜�7%;B�@�H£�7­B™@�@�‚ xƒQ²#@�@�4 xÓØ*” @�@ ˜�7%;B�@�H£�7­B™@�@�‚ xƒQ²#@�@�4 xÓØ*” @�@ ˜�7%;B�@�H£�7­B™@�@�‚ xƒQ²#@�@�4 xÓØ*” @�@ ˜€o>ØÞØ €� €�) ‡7e Bq@�@� xÃz²7@�@�” 0¤!e Bq@�@� ÐÃÖ“½!€� €�¤L€Þ”5ÅA�@�+@oXOö†� €� 2zxSÖ @�@ ¬�7¬'{C�@�H™�7e Bq@�@� ä¢Ý=êc…`ÿðËõZÛúå~®ezh;MþµŸûeñ¹ž3!€� €� àü_þÏõÜ?´]Sìusô<þÐvz­môˆ¯kjˆ̉>Àú¹¬žû¹¬_§¹¹škòË|Ðõó–µ-ÿûmãËxŽ� €� €€º^ÂÝø\!V“–ùð¶ZîCo|Þüÿ¨mÈ,ïˆê����IEND®B`‚�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/vignettes/biotap_logic.png������������������������������������������������������������������0000644�0001760�0000144�00000107327�12466166264�017044� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR��¾��[���—D��®iCCPICC Profile��xíZgTM—®î‰0 9ÃsÎ ɃäF’ˆ$A2"É�ˆDEE0�&’"¢(ˆb�%©ˆb‰Ûàë~gÏw¾_»ÿÖ:§«Ÿ¹uëÞš®ê©;õ\�$NxQ©¡0� ,<:ÒÖDŸìäìBƽÀÀ¤¼|¢¨z66ˆÊ(‹#ˆ6R†e¶l=7—Þ7À³ ÔªtR0úþˆ#‡�@6ˆ€%à7öÝÂÞ¿qÜÞMFtò¶°O ÒU!X:’bk€à‡�à‰Û˜æÅöÞÆŒo·°—Wd��œß}²—W�‚¹H¿±÷–ß±>ˆ}.d X¦pß pD„øÀêøúEù� Z‡èøúFù„ †�Ö ‹@Ú%¶ž‰¸5é+\@xëÙ!w¤ìÑ@e±ñá_²°Ï�4¥À-ý/™Ädl‰�4sþK6o»ý<!¶ÇQþJŠÛæ "bófss^�\�ë…››«5››ëµ� Æ�è õ‰‰ŒÝÖè­Ðdþ8â@(5 v#`¬8àAˆû@82@.(�GA¨uàh- Ü] <�ƒàx&À;ð|?Á*A8ˆ1A$IA :¤Aæ-ä yBþP%@iPT•BÕÐY¨ jƒ:¡>hzM@³Ðwh†aÌóÀ"°,¬ï„Í`;Ø ö‡©ð~8 > ‡«áø*Ü÷ÃOáqø#¼�o¢hQ¬(2J ¥†ÒGY¢œQ~(**•…*AU¡. ÚQwQOPoPŸPËh4š͇–Fk Ñ´:€ÎAŸ@ŸA_Aw£‡Ðãè/è5 Ã…ǨaL0?L4æ¦S‹¹ŒéÁ c¦1óX–+ŒUÁa°Ø8l6¶ Û€½…}„ÀþÀ¡p¬81œÎç£âÒpÇpgq7pp“¸<Ï—ÃëãðÁø$|þ þ:þ~¿DC¤ Q¥1§ñ¤‰¡É¡©¢¹Jó€f‚f‘–H+H«AkMëG›@[D{޶“ö9í†ÀKP&˜|Å„Ba”0O$…‰ÚDb81“XM¼N&~¦ÃÒ‘é4é(tátYt5t7éžÓ}§'Ò‹ÑëÓ»ÓÇÑÓ_¢ï§Ï�3ð1h280D2ä340ô1¼%A$>’ɉK*&5“‘æiÅ}Ó«;Ç7˜x™v0¹2Å3•1µ3½dúÅÌɬÁìÌÏ\Æ|ƒy”y…—E‡eËA––;,ïXq¬¬æ¬a¬¬-¬ÏX—ظشÙ<ÙÒØêÙúÙ¾°3±«°;³'²×°÷²ä`àPæpæHä¨åèãøÌÉÌ©ÎéÁyˆó<ç ç"/—W0WW+×n,· 7…;»–û÷<7O(O Ï-ž÷¼ô¼j¼ž¼9¼—y_óaùäù\øñ5ò½àGñËð;ñ§ñ7ò¿$£ÉòdWr&ù2ù�­€š€À›³‚¬‚ú‚TÁ Á~Áe!!;¡ƒB—„^ …5…ƒ„ ÷ ÿ¡ˆ¤‰\™eÕ­C‰)‹ù‰»'¶,.)î*~Xü¶ø7 A {‰L‰v‰9I~I[ÉtÉ6ÉOR|R¶RR×¥¾H J;HçHwH/ÈHÈxÈËôɬË*ÉÉž’}*GÓ“Û'×(÷Vž[ÞV>[¾K~YA^!@¡Rá¹"ƒ¢©bŠb›âw%I%¥“JÏ””M•S•o*/ªÈ««œVWåRµW-P} †UÓWKRkWû©® ¦~^ý½††§F…Æ+MvMŠf‘æc-:-s­l­{;°; w¤íèÖ†´wj'kwhoèèè$éÜÖÙÐÕÕMÖíÜ vêíLÝyG£g¢—¥×¯OÔ·Ò/Ô6`3p2(7xc(`ègxÖpÎHÞ(Ú¨ÍhÍx§qºq¿ ½‰I©ÉS!Ó ÓK¦?wií:¸ëž½™½Y¹Ù”¹¤ù^ó6 `ajQ`ñÂ’lhÙl¹b¥o•gõÌšÏ:ÀºÙzÕÆÈæˆÍËÝ»Ãw·Û¢m­mËlßÙ)Ø%ØõQX(ž”‹”_öÆöEöãÒñ÷Y½›7œ,œÊœfÕ3œŸ¹»D»ô¸2»ú¸¶¸¡ÜìÜjÝÜ Ýº¿÷PóÈöxµGzOÒžAOAÏhÏ{^œ^¡^ÞLÞ~Þí>DOŸ+¾x_7ßf?ŒŸ‹ß%´¿³ÿ¥�t€K@S 6Ð-°%ˆ&hOе`º`ßà›!Ì!!!=¡Ü¡Q¡„ž…ˆg†ODhFG|¦šP«©«{ö6E"ý#»¢x¢â¢†£å¢s£gb bªbÖbc¯ícÞGÝ÷(N*.;nf¿ÑþÚx8Þ3¾ã�ßÄc ;ÊV]o$q'%$%k'ŸJÞLñLé>(t0ýàLê®Ô†4ú4jÚð!ÕC¥‡ÖÒ=Ó{2Ä2r3¾fR2Û²x³f½Ï¶ÈnÎaËIÈ™Ê5ÍmÌcÉ;7uØôð¥|öü¤üwG,\-à-H/øRèPØQ$^TX´Rì[<P¢VR}”p4æèÄ1³cW“ç_:á}âQ©fé™2¦²¤²OåŽåwN*œ¬¬ V쯘9eª§R¡²ªŠ¡*±j®ÚµúAfÍùZ®ÚœÚ•ºàºÑÓ§ož‘=SYOªO­_8ëwöÅ9³s7Ï˯i`mÈjX½qaú¢Ãź—/‰_ªhblÊlZkÞÛ<ÓâÞ2|y×åŽ+ªW.^¾Z~éZv+Ôº¿õ{[PÛd»Kû“ëæ×ïÜйÑzSþæù[·NÝæ¼]ÜAߑ݉îLî\éŠíúÞÖ=Ûãß3ugϱ»ÎwGzíz‡îYÝ{ØgÖwÿ¾ÉýÞ~£þ; t?ÔØ5 7ÐõHÿQ÷cƒÇ=ƒ†ƒ½C&C}OÌž<¶|j÷tä™Ó³Ñ‘©ç~Ïg_„½øþ2æåÊ«äQÔhÖýXñkÎ×§Þ¿9?®0Þ:¡3qwÒbrxÊejj:xúÇÛøwð»Ü÷ÌïOΈÌ\ú þ¡{Öbvä£çÇŸb>mÎå|fû\ýEúKÛWïƒßܾÍ~ùÿ82Ï3~AmáîO»Ÿ“‹‹KyËÜËçiüº¿â¼òa5n ¿Vº.±~}Ã|cl3üo,ð7ø üþÆc¿±ÀßXàï¹Àßs¿çÏþž ü=ø{.ðÿ÷\€êéµ  ö÷àG=�tÎ�0@@ýoÛó(¿£ €BH!xËÀ#<„(ÐEø†C  ¼ƒX!=(áÞ¢p|łڇšDÛ¡0v˜)ì~;®M#C³@ÛK¨&¦ÒùÓ›3(’ÈŒÌL´Ìh +Ž]ˆC•Ó‚+;—ç2ï(?ž¬!*X-4#¢$š(Ö/Á!é'Õ,½&k*W(ÿRQ@ÉG¹VeR[¢‘§Ù¥5¯-¬c«{xç}¬¶a¬Q½ñ Sì.3óƒ5–ÝV¯­wÓÛ ÙiP,í=¢ÓJ/¸Ürt›tÿ¾ö$y‘½|t|-ü\ýÃæ•W…ä‡F‡¹„G(Qö2GÒD¡¢6¢WcVc7âàýøxÆ\ B‰¢IädžöƒL©„4tÚæ¡•ôùŒ¹Ì™¬éì79¯rŸç==<’¿\\ø«8ù(t,ùøçRë²óåËZ§¨È©ZwõTÍJýi3õqg¯œûÚ yÁçbYcÿ¥õfé‡Ë)WÎ]¸¶ÐÆÞ®vÝñ†ïM¿[·ƒ;‚;CºÂ»£zâî¤ÜÍí-½×Ð×uÿUÿÂCº¶G¤ÇøÇƒóCÓO††;Ÿ6=«)|~èEÂËØW‘£Qc–¯Q¯O¾Ñ|36ž9¡617yn*xZazõíýw'ÞΨ}À|x0›úQåãûOÇç¬?3|ûÒùõæ·Ñró=?[—ÖŒ77‘ù‡�Ð#<”$ÐŽ àÄ Y"¼P `+¸^Gù£FÐ6è§O̶§ƒûŽ?GL«BÀƈ-t¹ôA $EFN&Ó:ó<ËgÖolK웜D.2·…w/_ ÿ5òA&!ká,‘^1”øN‰DÉV©yY¹SòOÑJÊÊ{T²U[Ô^¨¯iòiéí×®Ôy¨»¬'¨ojj˜oÔd<`òÎtÕŒdN¶µÔ´2´¶´qÞíi`N‰¶?àâ˜å”ï\âRîZíVï~ÉãÊžvÏn¯ÞÃ>£¾S~þZ%‡„8†‡i„+DHP…ö’#ù£ÈÑÂ1’±òûTâÔ÷+Ç+KNKLæOá>È–JJ#§£Ò73V3—²–rs©yïòmÜ..J)>ÊÌûøÉ¥Kå<'wT8!+!»êJõJ­i]Ñéñz±³¡ç.œŸ» yÑ·±ìÒP3ºEýrЕWû[qmF퇮÷ÞDÝÒ¾} ãZç\·`åNúÝ˽“}„ûJýBîH{”õ8w0{(ýIòpüÓègÔ‘Ðçá/"_ƽJÍËxô&f<lÂÒcÊiz÷[ów¦ïgŒ>Ïš~´ød3gþYõ Ç—/_»¾~÷û±s^xã§Ø¢ÓÒ•_”U—õ•íùÇ2û@h‚ÝÛxaÇæPY1PôY;àD¸E@íAµ¢YщèÌÖ; Ãmâ hDhnÑ:Ò.Šˆ*ÄQºCô ôÓ ÇH–ŒXƦC̦,t,#¬lÁìúkœ¯¹np—ñìçuäSçgçŸ' \ÌòV¡™mËw—“$I.H=—n“9!»OŽ"¯¨@¯0«Ø¥t\9LEO•Eõ½Z«z–†‹¦„æ’Vھ: º°îÐÎ*=ª¾ž£Á¤a³QŠñn“¦]»Ž˜¹šs™?·8jioÅi5f]cº[Ãc;lWC‰²7ràp˜sìp*vpÑvåpýá6à~Æ#e›§º“לwŸOo²Ÿ›¿z�sÀ·À‡AuÁûC,BC—Âˆ *P÷¶EÆFÉDMFÇèÆ|‰­ßw0.`¿uüŽÒ <‰¤$šdTòFÊêÁ_©ËiˇÓd,gqf[æ¤æÞÈûž/vħ ²p´˜»ÄõhűÉb¥áeWËU(œrß^K㵸:…ÓgŠêïC7jÈ¿ðºQáÒá¦-Æ—Ï^%\‹no߬$[mš·» {ݵïè ëgxÐ>`ûèÃ`ê™áÏ:Ÿß{E;vx<yjqÆú3Ç"jkþóé[{V€É�8Ž@‘ €áÍ�`§ÀÁ �­Lhú9€øÚþ{ÿCØé›Û¬Žì=ƒ¦À9p'¼„’G… Î ¦Ðühwt9zÃqÁ”c^cù±ÞØ:ìœ .׆ÛÀ›âóñOi¸h¼i=E—6—öAŒ°ÐGä&FïÒñÐÅÒ ÑËÑçÓc°ch#ñ“²H Œ^ŒCL:L ¿™Ã¼ÁÉò‘Õuá.ÇÙ}Ø?qÄrœE\¢\7¹í¹¿óäóÊòñÅðóðß!‡ ðÜŒ’z+\.âˆp…ƒbEâ\ã’g¥öJëÊ0ȬÉþ”û.?«0¥øZiDy@¥[õºZ³úYJÍZGvdj§ê$ëfí,×kÐï4xa¸hÌl"oJÙoVm~ßâ§•€µµMÊîÛ'vÝ” {Kv‡Ç6§\go=Wq7wŒû¦Ç¦'ÁKÐ[Ç'À·Ä¯?€6Ð"¨0¸=d4t%œ'b'ÕoAäí¨…ñØ=û*ã&ãÅD$ÜN"&»§´§2¦EZÎÈÈbήÎÕÈÌ÷9²RXX,\ÒzÌôøÓR²™“K•%Õµ|usg:ÏVŸÏº°·Ñ¥É´Eé ßÕÍÖéö®'oóv™Þ±¹'ÿëÃã%†.<©~)0ZûfפÒ[ÕÌs×¾²~W›g]¸±(·”¸|ñWýJÙªÝÝÚÙu±õ3"]›žÛ¿&HFÂ+ˆ²‡  û0k‘ðyø-Âý»£ÊQ¯ÐÜh7tz#Œ À4`¾cÕ°‰ØGÁUàfðJãÞGÃHãNsáÕhÒ¾'hò ÓDMb ñ 9Ýyz}8ýS† §IŒ¤dÒ7FÆçL»˜®3Ë2ŸFØì¬l¬ÇØ8Ù*Ø…Ù›8t9†8ý87¸Ê¸5¸Gy’y…yñÅó‹#¼r®€žÀ¢`“P¨°¸ð‘ÑP1%±uñ^‰#’RRR›ÒC27d/Ë5Ë_T¨W¬SªR.S)R=¬–©~Pã€f¬uGˆvN.ugŠ^¾~•ÁUÃA£9¬©Ø. ³HóR‹ËoÖ|6Ö»Ólí.R’í)ÒŽÇNýÎÍ.•®Ån9î¹…{*=¯y {/û ûÙùçôa‚BLBÃÓ#Š©÷ÞüÍ£뽯8®wÿƵ„ØÄ«I‹):3S‘Ò­2 2³I9¹5yŸóÕŽdL©—”,s9Þ]*Svê$sÅáJƪÆû:Ôéöú}çô.¼mlm*j ¼¢¡u²½ñFÌ-›Ý.åù»÷Dî ={,>$>,öLì¹èK±Qá×Rãn“oÅß7Ïš~ø¢ö-éGÁBÄ"y©vycEvuÇšÚ:n}`£{þ-@²Wd@o`8 C)£òQŸÐfèó"&ó«Ž=…Ãà"p/‘÷¼yË3iæi}iG–„;D]âm:º;ô–ô¯BH€t‚Q…q„)œÇ\ÇbÄ2ËZĦÃö™½šÃ•“ƒs”«†;ŒGÉ!xÏ×Í_MNÜ-¤#,-Â'Ê,F§‘ÀKÒJ‘¤ydddä²äÛf”8•MT¢TëÔžj`45´BwÔiëòîtÑ+ÑbÈbäj\e2»KÃ,Ç|ÔRÉ*×úÃî]¶g),öYާdàšï.èÑíã­æKò[ X Z 9&~‘*¿÷r”zt[¬Ò¾–ýrñd/&Ë¥ÜJ5NkO‡2,3K³&sdsSòçs *¸^„+v,©?ºtÜôÄñÒ™r“y“•ºU—k¤këO‹œ©;+~®©AñBk£Ò¥f$N¬¸ÂxõÀµé6³ö‹7ho†ÞèîÌéúØcz§æîú=J_C?x@yxn`ý±åàÉ¡OÃOsž<{ÿòþ(×Xàëú7¯'ø&ƒ¦Zßbß9¿¯ž™žåÿh÷)i®æó•/í_›¿úžõÃc^nþëÂéŸN?-–-)/ÝZ6^~üKç×…®•ì•ÉUÕÕÜÕ‰5•µÄµ+kŸÖ×× ×ûÖ77Ô6¨ç6¦6¹7)›‡7{·æÿwÖÖþh "B#"ɆÛÿ練Ð$Ïk»0!51<Ôj+·‹ ¹>øzš#wäÚ †nçÁ!:—_¸½"ÛÂÒáÞVÖÿ`ÿHc[#}!j´þæ@°?5Ú†ò<)>ÐÀ ÁDD^âeôÇNU°—’ƒ†DË�j‰Œ±µG°0‚;£bí¶òèH~HqüGgÁ×Ïð9 ûïú­3EïÚòÅ‚üù ‰0ßâ Væ ø!1x$R‡#9aÀ�þSË�à…´Ä"mQ ¼GpÒ#é`ò?zÿ&1Þî€ôûŸÉH~YâíÏßÞȈÏ?6ƒ€/‚ÿȽ[m[£‹Ú”ú/Ÿ4¶ìmF¾A~V~íϘТhE´ Z­ÖAk�2š ÍdÐÊhu´Z­…´i�cð±ðgŒ[öÃZücODì×tDZ·¾»÷ŸVà°­ôߟÿm èÑ\ëÜŸ ù“Û9È“XdžN"y~�ÜI¸´uû%Ú/n+WDP÷GF“õ¬I?iò®pYi²¢¼‚<ø/ eê\ƒÚ}��� pHYs�� �� �šœ�� �IDATxìÝ`[Õ½Çñ¿¼wì$Î"›,„�!ìF–YʃҔÇ*i )£PJKie¤´ìQF[ H);¥ìM˜aH™±ã½d½ÿÿÊ×Qɶœ[ã{A‘tǹç|®lÿttî•ODŠìöÇ?þq—3f:dȃ322Fë<&@�@�âR ±±qYIIÉ :=uÉ%—,ÖF”ûôŸásçÎÝóÈ#üUzzú´ææfimmËRi@�@�L %%E4ÛJKKË;=öØÕ~ßHÓùù{íµ×¡@`Z}}=R €� €�Ľ€uäjè•ÔÔÔi{ì±ÇaÚ -øfôë×ï`ëéeB�@�@ ‘,�¤mºÞ‚oŠööŽÒ[Ä6Ú2KÌ:VBªËÊdù3ÏJÅgŸIKCƒ³MjF–ôŸ¼Œ>ä`É8P233%--M|>I~²2Ý$^SS#Ë–-“ªª âVö-((1cÆH^^žSžuYwU¦[ÏòªRyié3²dÝgÒà¯×r[%3-G&o/ûO8Dw«žákÏ\@�@�xÐÜ9JëšbÉt×E‹½ÓYÅ­7؆A¬|}‘|qß|ÉÏÏ•ƒ‡JÁˆaâÓáÀV®’ÒukÅìÄ“N’á{í!ÙÙÙθŠHåúý~±rW®\é„^ ·¹y¹’£Ûiº•úº:-¯Ö)ÓÂïðáÃò´»:R‘NyVÏ·—½.¾äæIñA2¨h°´´ú¥dý)[W*uU rÂÔ“e·1{uYψ;cx,Ð"+¿øXjsÇÊÄá—Mq[G Q¾Xôš|YV'ý†ï {M-‘CoP* Ð]î0Íéñíêd6ëé]ùƲô®Èèì\Ù~@±Œ;ô;R|ô‘"`KyL–>ù”|Z× ëü]ƒk@Fî½·©ˆX—¦¦&Y³f¬^½Z,ƒ ’âA¥°°P,WVn’ÒR)-)qÖ±ÞÞ¡C‡:½´‘ µz¾ýÕëòïÝ)ùÃóeä˜ÁrðøÃeƄä®±FþûÙ£òÊ7/Èêerß;w‰hhß}ü>Ö3Ò¾˜@_ ”}ò¤Ì»êryyi°û~µ\vÊ>’éA¥"—]'¯Ür|<é'rÖ {ãìõÔ(oÌú©üùì;åõ¶‹¾ðÆoäîßý]FϾ@fŒÊ‰~û.¶h\»Hn½íeiÔ÷æÎ”Y S÷9Dößu[OÜ»Øý,ÞzÇ탻ϕ³þö®L?pº¼UÝ O_7Rò¶ ¦7õËW‹—{o¾ZþÛö—q»È¡»,gþüùOËÆ"<|´êÕ»eæ¯þÖ^â1?»ZÎ:iÉoŸÃˆ”n_Þ°â¾e¢/Ev®i‘¡åÕ’ÿÅRI{ãM ­ÒÉRÙ~}µÕ4Ëâ´Y¦ëMœ(YÚKiª­­•R ¶fêðë!NÑò-[ðõéãÂ~…’™‘)YYÙκ6ôÁÎ΋4•m(•GÏ—¼a92`l–äæ§JEëZY²þ#ih©“ª”rÉ/ÌâôIÕ‘¶î¶ƒ&Ê𬑊d>1'à/{SŽ:ýr‘ƒçÈ]s÷ÊO‘sÿ[.Mú³ù§Ãš¡aâÕÿÊ×ù»È!; Û®®Ê®~ó¿òæÀ“åLÝ—÷S@rw×7£¹Ùݸ²L˜¶è›ð÷_ù¯ þÙÝØ>úÚûkÖËÿ}D&5KZ!×ßöOyäÊ1sóØ&ú·Êa\t?[ç¸U˲—Þ•=~û¨üóäí$Ešµ£¢B_e[:ùåÍÛ~)çÝóžÈ§ÈmW#ýª¾•Å/?"Wýý9î´£dûæcKwÕÍí[å¬?Þ%GL,+_½GÎü㯤~à}òÛC¶ÆÀnVŠÕ@ 'NðMµaMk_zUúë°„ÝkE†ÖÕK~ÍZâð®uË:Á7ëó¥’¹¼T2šý’‘“&RšÅÙæ„™‹-//—þýû;½½n˜miñKC}£³Õµ)++ËYÇÛ6ùù‘ßc/úòeIÍH•;JN^¦¤d¤DVȇ5M:Ô¡EªÒK%³0Mäô“Üì,ù¶¼Rl›cž`Å3!õëzÞù‡ÓdjFƒ¤lÿ;YrR£7ª’àOM¤f4Ëg]!Wžÿw9p‡ð?ó—)Ç?¾DNnÚ k××m¶¿¾iMÍÈhŸo¿W:ûÔ§}Åö~iÕ7¤€_?H _¿öU5dm֖̉rï’%ÒX¹N*ê»Ú~cIÝ}Ôš<gáÄSÏ‘ãÆeËÏO9NNÞc–|úõiÚwHŒ|ÄÆEû£;;nÝmÿfëùKåí%"¹Rç|z·ÙòÎð¯{)zw¿@^üûO¤_uøSGÊäÝ–YçÔIumµž·ÑÃÂ{¸Ù¶G_(S|R[ß"Ãfž&?ùãýòmŠ}àÙËéaýÙ ÚRõGW3¬öÞtvËùü ™â÷ɰ¦V)Ðßý> ¸òm‰È[мó±ÈÚrÝÐe)2L;‚lݜϗtZ¦ïµk'ÁÙ0÷Ä5·v›;ßÖ±umwy¸ûU ßȰíêøãþRÔ¿H{Œó$=Ï/u©¥RŸ¾^²óR¤¨_ (ê'õ—!º®m®,æuþšÀ§ï|DßXÚôÁȆêj©(_'«Ölpz|ã²a©üýâýeÿýívŠ<úA©ó_ºðz¹Ò6œ7WNÑe7<³|³×~çeWË¿Ï;^Î{àÃàv Kå†S.–G½*·ÏÙ_<D?ö¿x¬©-•…óôùêþçÊ«+kÛöS+/Ì›³É~W¾pƒœ2ï©u~YèÕ›ûû¨y,˜;§­Ú–‹o—OJƒ¿¶¥îC¹ø°Ã侪ÛÛµþód®ãô¸aáÒà–ïÔŽ,X´Hæ»^stë#ýžÑÊéT[¹Z{6×ʪ–þ²“>_¢½œ­Ú¶æÈ¼G_•…7œâ¸Rk¯‘ù`áíÛ /|¾¾½~ËŸ¹AæÜðŒ|²h~û:ßþ‚¬wë¨å¾³`ÞÆeóµYiÙmõŸÿÌB™ç´qî+Ü1îpÜ´ìÒOÊ×EÛüù†m^ùΣ—é: —ºÇ/ô5_+ÏüéÇò‚¶ÿ¹?þVë7G^XÙÐÍö.”^ø»Ó¦SæÒnáþNYþÁ"c–?ÿîxI_S"•zîHõ†J)+Y#%Õ5RßìÖ#²ÍÊnw\—~°Ðy­ÛÏÂÅU6tǵ}w?­R»¾DJÊ7Hm]­T®Y-eZ¿ídqëÌýF+,°ˆå×€þèúl¨CªU²³©`m™ ÕÎáü"íÍÉÔÁU™v¯·tÝ\ªô×^Xë¡ÕŸ|}G<TO$«Xüc©\ ¶Ö›k=Bv³çîͶ±«>Øs»·ÉÖµçÕµ!³N†nS(E’3ÒS%Cs}º†ñ4½·rZZ3¤YÛj 7e6Kó6)²nCð¤³þA ²Fí)³´ž×Ÿw’¼|Ü/åç?üŽŒàö´®“;:Uæñ{yòµRòÌMrÊÙʰ‡n—©ûý@Ž¿ê1ù`ÖÿÊe‡•ŒÂ›ý<u^¶OšÖ½/_4¤·ó§HÃׯɵ¾&?¸ôv¹ÿ¬åréWÈ ß½QÆÏü½Üÿ ¹ï„Ùò›ÿ.ÏͲˆhÛ/–‚ŒÚß´B¾þb´½ûÖ!÷îï¡à_ô22’6ñòÐùó¤°æc¹â¸säÎiûÉÕG“QáÚ"ßÊŠ¯¿–±)Úsl?ã+ž“cϼB¦Ÿq<yÒtiøäq9nöÙòUÍ­2ïûãuïVÿÅrã…‹eÆy×iý›äo?º@î|A÷qô8«Þ&SÀº£uÊHÍtÊ/ÿe¹]Ÿ´ÇdÉnÕßUëËãÿÒÛÌ‹åî{w•!™­òÅ¿þ gßôšüâæ‡ä“³ä­ûþ,œy¬\|÷rÐHÞ¥Áxñ¿æÊì}O®¹û~é÷ÍórÆï/u…7j·“/ÿ}…œwS“\÷ès²CËÇòk5¸eÈ|™³ß`Ýs°þ·Í],§_q³Ü;v¨çW‡9ÆÍ›7sùÁì«äÇ×Ü/7NÏ–‡/8Zμt<1ïÉö¯žw­¤Ÿ»¼tì¶R¶d…øÛkmß8åÈ'œ/òÌ<‘#—{Oš"y…©ÚÞK»ÑÞ«´ÍÚÞÛï• c†ux 6ÉŠÅ E&þB&Õè'€îk¢mÏz\Ý©3ÓjÝÇ}rê¿ÆËźŸáËÙWüF^ßï?rÈÈŒ.\Ý=„ÞûeÅGÊÊ’UòÔ‘׎ü½<ÐHi­æÚ÷¡J<F R-ø¦tõqM†Ž¿Í´Uót`UŽž4’›«Ûî5ŒŠ]ÖL߉ëÛa ‘¥WcHÏHëôc ·77ôÞ‚­=·ÉþpYXuïÝõ:«knfŽ3„!_ÇgêXã, ÔÙ)ézo#[¥Þß"uzkÔ`Þ¤óê³Z¥:³¥Óz:•ábHÀ(ç~ô¢ìp»†¨þ"§=ô9á¢Ûä#õËÞ•ùZ×3fŒ—¦oK¥h»Ýe‚<(Ë×m'”§‹,2VFŽÔ?ÚMõR×´éGµ•mc„m*Ô“WŸC½×ÑOrÆMOÉÏ÷(”š†B±88ã&ù×Ï÷p®Ê2ý ‘Ç?[)ü;èIO¶·uõ¦ï¢òt€Cð¹^zÐ)?k[ùñ©“¥¾²Bª ÆÈND^ÍHw–¥æ…iK]°4í2vÖYúþÓZöñrÙì$¯²V w=Qî?ïe9áÏÿ‘åüG¤ëüåÈo&ÕMr€úÜ“܇SµümÁwî¥È}_½/ËlÙ‘Ë…‡ “&í‘lÖ_rü5òö%‰¿¶^ê×,kè~Þýò¿»‘ â˜}¾ûóòôû+å€mÆêo%ü±<õÑù2 ¶FüSN•Ë_¹]~óæRÙpxºnÿªîc®ŒTJ¥~»ü(]{~ÒvÚÞjH ÖÿÇêÿ³Ý‹¤^;š‹"c÷¸]’}ÇeÈ·Úƒ¾ÝQÇ‹\òŠ,¯9\&¤ùÄþ(¼õé‡òÅ´a2y»í$P_-uÍm¶º,8ù%Òt9RŸÔM*ÛŽ.ÍUË-ÝjïArÏ«’IiµÒØP×á5Ø"­–%·(=gd“W§¾^+ët¿zµžÔ¦eÚh·‰2]nzöVÙ3¯Qšwü‘L¿âqíühýŠN· ?|¸AÖ}ù޼öõZyÍ�Ö~#Ÿ¹^Æ»o8m&Ä@÷NnK?F—+R\,ÒO{wu¸€Ž#½Ðn°z¢šl¨ÒÛ½é»týuž1bx‡wò›rX/¯ãu­Ûókk¹=½nÈuzku][§³ßaý†êÇ5’›¦'Äéðˆ¼´t½eJvj†óµ¾¥Q2ôVç×˳éhÈ@C­ -ÔmBz6­%ψAýø{Íê Ùÿ”¹òî±ÿ#·^t¢üíÊ3eШ‡åP½$ M·ko°õF§ rbnº4×ëGµ6Ã_£×ÌÖŸ×pS'ewŒþüÙ6�Ÿ ^–õ ²ºTÇû7W9å/ÎÓú•êÏœÛÀ—%éú3fÿ9ñ©í ­Ø5�tIÛòMʯúHnºüj¹óy˜cÇŠ|-r`Û¶­áÚÒL[5øÚƒÚÒw4û)©:Ëi·¾Ao̤û«’&°6VÿÝÆdɪ7­c8õßÂúéÓö©UçÛ4sæå°ñ¿¢aãe‚žH[ªŸˆ5ê>méô ÛHåê’``kI•&÷Öúu²®¢Ð6•†µi2ù@ÑË-~#µ‡Öök &Œ”€^ݦÜ)^¯^3IþÛ9’în/_"ßÜÙÜùgBJF°‡\Ûkõ¢þkË*ÚV¶aÓclmÕÉ9næbÇþ9ýØçÚ¶±·+S%[¯MÙš>V~9®”žx‰œ±ðF‘~(ýÕI2©ý…¶Mô®~}•³ÿšº*ýõ¯e6êÉÉ:¿ËöN?L†4j{­ò›MéÒÏμ÷sYsÞî2L?`t§e /•³n®’ë¾Y&¦tnTëÁ8\vH-“’Jm}KMûÕ&Z»ruw¸É}¶ð¿ÉáÚ¡2ï·ŸËe{/³ç ‡ÿt°„Ê›l̈îßÌ)“¥dÍ™0 ¿kÐ_àEEz¯7û#k=¾|µ—U¯5¦ÃÒ¥TO¾IÝq²¾»v~݆m®Ðf×ܵ˗¹á×½· ì¡^÷fëÚ6…Ô1…“äƒÒ×$3æ„ß¼´ ÉKÍÖ|W®ƒ*ô“õ¤H‹“¬-i©ý§uZfØÊ3>h²µ«$%c¸üôê[åoüT{ï*õ“Œ`š¸è7å¤íÝKz¤N¯a]®½–Î*õüÑÎ~Ž4ž…-»u”þÌëö{ƒÛ·M¿^s»µHþà¦þ4hOó³¯?¿æd=°úÜb³eÇ€C î_/…¸æy}#=Ýyîijòß¼û, ½?’ÇÞyLÆddáiSä_íÛ:+nÚûaûÓûÖÖlP¬Ý·ó?“µ­»É@›¯SSã:ýw~dë8kk﬎a-´ø,Ó~ç„óqƒï„v‘‰#ô­æzY±ÊMomm«¯Õ° ¹¢¿^íLR^‰|¦MžðËq’£õ¬tªÐ"-ă¯A¾üx‰cÖÔ¶ý„Óî‡ÎÙ]K N¿žL¶º\MÛêïú;‹ƒmØôëïag¶µ9C]´ÓBfÊÂ~'#Üm4ªW¬^#5eø!rÇGGHÙ§ÏËE?<Wæü{;YxªZvœ‚»wæ:^Ýmoe³Ô6jçHÇòœç>3åd}t<÷Ö¡rÒîöF%8eõÓןözçZ@ïÂÆyRÙ$ëuès‰?µÒ(ìü=éjÛMz™Ûö­/*Y¿nuðYÚ™~„ö¼¯3O½µ¯ÃˆýíÑ¡)Swÿç_ÊJÌ?|à�ýÝ£¿Ø ô—gnÛÖtý¦½±¢ciWÙÇucFJÊÔ)Á+#(è×$ëE!*¥Ni»á×zzÝÉö`„ªõ»F¯­çö»ë…Þï·ƒ,«{WÊ¿©‘þs%×!™Ú;’®÷ö'8CÿØeút˜ƒþª*[V.9™Ù2®pí ëü\øÐ}ð¾XóÞSòNõÙcê(é—±^Þu¡S¥Æ –L=ióT¹V®üáï%û†d»ÁR¹n•4‘ÑýR%GsÄ’ž’%»/#tè’þHo2uV¶ß¾ÑÖÖŸIçç°íŒvûê<×aÁåîUôg-8C{Xõ ú“×T©™‹?oÆo'ßüG¯0±@Ë›Ü~ãP‡àólËgzÅ€Ÿ} «V¼,¾¥O‡})öàôÞmÖ'íÃ_?Õ²ëwtƒ¹òȧÊÌýÆKý·oÈŸþü¶È©·ÉH\Û6Ì£½þíC-ÜúÛþ7N~íá¶©¾J¯Qᾩp—»mo¦a³SFÊQ³'È™ó.—ç‡_"{Ó±¥¯="÷ë¢ wä˜øv@®”;ÿ[(?Ø{¼Ô}ý‚üé%‘ïýiªä¦ ’/œ!']uš\9ð¯rÄ.ô#·\Ç™ŠLš<\ôr<ÎÎ7Ößyæ»u3×fµ÷÷E®ûµüü’arÑ̽¥0µ^VS*'M”~þ5òìóoËØ©Û˰‚²£ùVf~øß»w·Úkutw°¾ÿÍßã8} ß#w^öi:çJ9B]úehˆuºˆsƒné#;µ *}£FŽ’k¥o0üZÏN];VHKXùÉçzI£Q2¨_†lXò¼üߺÒ÷ µW¾­üͶaĨ@÷‚oµþA):ø@Yõî;’™•)Å6Æ×B¯õðZXµq¹:v¶L{eWëåŒÒvßMÊõB¸^–٠ktxD†ncßÜf!74üÚs Æm]»ªƒÍ‹4tŒßťKE^­äŽÐ±ƒ6±í=¹íÕjdý·z–piì3ä(iª žÍ©Læ#k)õ«äöy7… eýØõÿäÀ-²¾6SÎxyd^:S.ýÅÚ«>çæ4è¦Ë.3/yr®ÌùÑ¿ä'×Ü+ÇŒ·¡§NË®këQu/7¦éBˆvƒ‘~ü¬Ÿ 93‚oP[%Ûɇzå' äÊž?›-2ç/rÖSºÞasä’Ù¯ÉÜ·Ü€²iùÛv™ŒŸ©üüäëP‡äW³¿'Wß|¹\ÜïÏò—cÇoÞ–1~§>:LÕ©Oú6ß•‡¯«‘cϹHþ}UL‡5œú'¹óÔ‰²¡DxÇúëï ûõb¿c½Áö9¿.µyÔ0ËÃl믒‰?¾UþÔx¡üzÎÿ+ ÿιîa9f´žX[e¿Ï¬Çx†øÞ»H~ÔVdzo’ ÷í/ë˪dÈ1Û×ÉWΑûÜ9_îŸ4T²6«¿­²¹ËøÌMÞ4î+ÏÜs™\|ò¥rÆ£m;•ƒåúã$O{S?wiðêVÜøÈí'X'†3XÄælœôzèÃôYeN›G7Ú›’Vì¼qj¤KkT[‘-g¼ù¸Œ¼ýZ¹ôº‹d[E[cü‰’£~VÓ™M M_™ýÜוn×feÇ·«m³Úkâ>h¯¸Hæ-vŸëýŒ9òð…:fe}Y0X‡,â!Ä´€ó•Åß}øá‡Ÿì¬šRíË#²õ[Ô2>ùLŠu¼]ÿÂí1µ_>ýV´Y¯c¼Ê–-—FŸV¯ßÂfcmèB¤É ¾ö…ö‡Æz€s5PÛ¥Ël²ñ¿nèµ0lá¸AÇèuU¦Õsƒ”ÊÇžÖ¯*Αþ 4£k=u5õ z-à*½úZL):T?4+‘êÏ|úJ ·x¸§5I…^ZÉ.¦’Û¿XRëÊõu] 8éy2tÈ@sY%-:ì§ GËVJ‰~ùLFÁ ¦™ J‡;¤¶TH©†¯Ð©ó²ÓdžÄ”ÕX.+ÖéÇ)ù2bä€ö²%%O†(¾º2½Ú¡º4¨_b“ç«••z¢}®’Ó¨ ÈÔÞVÝANŠŽ·ÏœôY¹¢D—oZ~F~±ŽÁ÷éu[uÝ|Õ䓿Æ:í¥Öë„—VoÞ–š,=io€4´µÕÚ•Ûˆ¾Q÷I•íPÃP^Z½¬]Sì‰îXÿû·íC§”ÜbY¬W­-WËꎟmZ÷ÛeÈÀaC$½EÇëÁÊÌ-€^îmíú`,}ýr9ãÅïÉ«·#iµz¼ôœ„ÜÔ½.nEÛ5™Ó¤pð)LiÒc¦B™úµîº|åJõܬþÁ½n~Œ›7]-³ X÷Ï’šªZý›©ç,§JùŠ•: x møŠîNÝíƒÕR©WâØlòåÈ6£‰¯¶LV–Úñ¶©óö:¯¯œ&YùïN¦”ýºù’ÖR¥ÇN×Ô¿ ¹9ú7'C/Åöí*½¤›mÙ&«x„ ÌÖou^Wºj›U“»uα‹¼íæõJ“â‘CÅW£cØ E_GÅ):Lg­XÕ˜@ ~Ž=öØïÙØ‚#zè¡Ç;«¶ÛËj¡²H¯ðÐøþ’©WoÈÑ^Zëñ­Õá MÚ#›©C"*´××=q&´÷¶cùn™ömj­W× ¸¶®ˆmxƒ=¶1¾6u§L«gn¿\ùTOnÙà_.©i–{õ~–ôK%“‹§Ií†ÚnÕÓÙ)ÿ kz•• ^d¸ø›E?ÈØlJÕ“;Sô–f=‘3t©n›®ïI7›ï®Ó²ÝU{rïÓòõ!ý§©A¯¸hWMt×uÆùë�}íÀ N]µÅÖò¥jºÃ@‹4‡ƒj+jkÞ¥jpKуÕZwÝáÚ—/’Ÿ]w°ÜûÐÁ’§ç0¤èxèfý"ŸÍ&§zÉ4ý"ž–öÆo¶ÖÆÝqÑN‹tÅ è>í˃B§`}7º‡.ëÎãHííζ¡ë¤êùi©ú"×_à6L#lÛ£µÙtú³ÐW½Ú…ŸTë+ÒO<›ºñÚ Ý@ &Ž;î¸#-ø¹`Á‚Ǻª‘õÐZo«ýá±ÞYš`m²!5z‘q¶à~ÉDg=³î¾Üðk½¼€3uè„]¹Á&û¨ÑÆõZàu¿Å­³Ðë–¹5êé–Í= à¥@º¿R–”fÈè!9Îi·^–MY €�› Ìœ9ó(çä6 ‹Ý™,ŒÚº%:䡬¬l“MÜ2,ÌZ@uŸo²R„'Ö£kÙ&7ܺ¡Ø-Ï–¹óìqgÓÖªggûd ­€?w¤Là—õë«+-ë#€�Ñ Onën ´òÝuÃüáîß]Ç}Þ{w÷>t›póB—‡{ìnãu=Ãí‹y €@Ošk+¤$8Ü·'›³  €@tNðõ=ðÀÑmÆÚ €� €�Ä—€#?(//__õ¦¶ €� €�t_`À€3ízc~™@�@�HdŸ_»1!€� €� ÈÎ7LÐã›È‡˜¶!€� €�˜€ÓãKðåÅ€� €� è uHô#Lû@�@�†:ðB@�@�H †:$Åa¦‘ €� €�_^ €� €�I!@ðMŠÃL#@�@�œà  €� €� /À7·%ü!¦ €� €�*ÀP^ €� €�I!ÀP‡¤8Ì4@�@@ÒÔ€onã…€�[E ±±EþñÏäÍ×WKii½ñûŹׇÎÔ*ïQ<�� �IDATí‚3l�VèÔÚö$Fæü­rÈaËBkÈc쵑ŸŸ/'N”}÷ÝW222<(•"@�M||™@�Ï,ôžü“gdÊ΃ä×W,ƒ†HFš¦WŸORÚßnûâî÷7«KdêØA¯¶ÌÞŽç¶‹ùúXÈ ìykk«”——ËóÏ?¯o–þ!³fÍ"ü†"ñ< Ç×F A�Ž7ßø‘ÔöË’ÎÞ[25ðÖ´Ä×íáÕìë^Ÿ=ØlÒPd¹h³e±1m­vYÛÔ!¼gj{˜¯;ØQ¾v¨Sô‹D”™3gÊ}óçË‹/¾(ßùÎw‚¬ü‹�x#@¯7Ž”‚�¡Ö{÷øó_ËÌ ”úæ€4éóM7)>»fZ ?–œû¶Û3c Ï/­÷ëp¶ðÚh÷X ´Ø°ÿþr÷ÝwËÁìâ̆ €@†:t�á)l¹€úÖT<¬ŸÔµˆ¤k÷žÏ§½½hCBí¦=¾¡}€V7ÇÖüšfëÔ Ö)6k¸ioj,Jv|…¹žvo·ÂÂBIOOwÞ`XO0 à•�C¼’¤h¨¯¯—/ËR¥¡·H‡8ø>Iu†÷ºÃܱ½Á�ùƳOHQñ`™´ÓníelßÜEƒpçóßzñ?Ò¿xˆŒ›<Õ]±í>ºrÜúÔivk xÆÛ ·`mÎÃpóŸ|âI=Á¯Tƒ¿Oú÷ï/S¦L‘Q£GE\ß„+'æo2ÎÁ¾™püÚ‹`{Y�fB�<`¨ƒGƒ�!ÎP€ìt ˆ>©×àÐÞÞT]žjQÎé&Õ�²þü[®–ÉÓö–±;LsæZö ]î®Ú“ùÏ<ò2aÊ49i'·˜àâögt§üz¿¶GÇ*ÛäÝ%…›Í5×Hcc£L˜0AÞ{ï=Y±b…Ü{ï½rÄGDUN´ûÝ’õW­Zåœt6bħaáÚÕ“òÂ:üãöúÚkÇggg3¤¤ƒO@`Ëê°å†”€�á2ÓdMU½h�NÑà›–ê¿Þ[gÇP«9G¬U;S5M—º!+”{>ÿœkþ®·•m¶°ü†¶Ë±YQÑN6fõ²Ë.s6;òÈ#åÎ;ï”ï}ï{ÑÓkëŸ{î¹²í¶ÛÊå—_¾U÷é¼Ð ·Ðk÷YYY[uŸŽ�É)Àà©ä<î´­/•&Ët¬ÃúÆV)ÓÂ*41V5¤¦©Ujš[¥Noµští¾UÃN³ÊZ]V«ìfóëõ¶®¤Lþ|Áirʾ£å”ýÆÈ_/:CÊÊ××ÕõW¯]#s6Sfí9\Îûþ^rï WÈù?د½œkuš<öÏ[Ú×_§Ã ®»øL9í€ñrÒnƒå—Çîv¿N]ÂÔÇæ·´´ˆ¿ífCo‘æ[ ³›»îøñãå‹/¾pʹå–[ä°Ã“±cÇÊQG%o½õV{ù§Ÿ~ºÜtÓM2gÎ5j”TVTHWëÛr ØvMÜý÷ÛO–,Y"óõJ ;ï¼³LŸ>].\Ø^þÚµk夓NrÊž6mšs5kƒõP¿ôÒKN¯ô.»ì"O>ñ„³M¤õ­]áêúúë¯ËÑGí”?yòd±í]÷Þ1ÓžÞÖÖà‰ƒMMß­ÿÊHJz|“ò°ÓhzA@ƒïgiÒZÒ,z93;G)U»oSÚ.âkïºÝ¾Ýj À+õ2a¯®Ö3Çt²@_Û¿O^ò±/8ôO9Ë^»é™ûËSä°¹JŠ®øø…³teŸqí3’‘“//ßp®¬ùæ+§,+g™)hè7R2Ö4;ë?qñ¥zí Ùûç×ÊðŠ5ËÂî·U+gåÛdwn}>-o’{Ú¶ÈYîþcí‰4ßz1›››q«Ë—/—|PŽÒ^ß:-kÀ€NP7nœœwÞyrà 7ÈÍ7ßìûí·ßÊsÏ='gžy¦<ñøãúEó)]®ÿ /8×Á}äá‡ågŸí\"lêԩΕìj W]u•ó%¶ƒÓN;M†.o¼ñ†Øú^x¡<ûì³ròÉ'Ë+¯¼âÖóµNyúåV×Hë[Y¡u}¼­®¿ýíoÅz·ï¹çYµr¥sm^»nrz{õÍßßBð Ä<Øbz|·˜@ ¬@fºŽ*H‘M6„¡9¢7ŸóÜNvók”l±›Î·¿[Öv³å6¿BêÊw_íþ©äŸèܶÓÇß¾ó¬T­[%ëW-“Õ¾*“ý™äÝVÒ ɶ3ŽwªceY9V¶ £°ñÆk¾‘U‹_’í<]†M;TZÓ2¥ßˆI›í×êeëw¬Í÷ipnm§]ÍB{Mg̘á„Nûv²ßþîwN]?üpÙ~ûíPh=²ï¿ÿ¾3ßýÇzƒgÏž-£ÇŒq.ïÕÕúßýîwâá:6×ÊËË˓믿Þ¶pÀÈçŸîmãŒ-ÜtÐANOìTíþòË/“ðrssú؃þÌí›Ô:[¿c]Ç´Õ555ÕùR /lõ‰t²š…^}oúF†¡®(÷ à¥�=¾^jRlб½ùÚÓ›“æ“ìôTI×1¾éíšfNo¯ÓÝëüã\æ,]/û›©§Àiàt§ŠòUÎÑ“w•܌௫‘ÛO€kÑeš«ƒË·ß¸<3MËÐ"Üõ­—9ÃÊNO“ŠŠ`ycvÙ¯}¹S€Ž=Ýo°Tý7Ìü‚ŒÔ][ÖÆ6Û•N=õT=z´ <¸}7O?ý´L­GØ& îe¼l»!C†´?·å]­?pàÀöõ-xÚåÁÒÒ‚~n¹voaÔ&áηa ß|óM{ýlÿî²®ÖWWë½>ÿüóeŸ}ö‘3Î8C.¸à'D;;ÖœÀ«ÇËùmûÒ¶Û<‚¯+Ä=x)àyðµñ[ö1^]]—õ¤,ˆ#êêj‘¬Q’£ÁÔBo^[ðMÕ¤ê`ÁncÀµpjÁØÂªeM›,ÿ2Ìy\·úK<d¸óxݪ/œûâ¡ÛH~ñ0IËÌ–º•ŸË }nSkÍz˽’§Õ&Ûªm3Ú™Wñå{2zò.Îc÷ŸÐýºóì¾ãü< ó&{23FöÚk¯M6ýúë¯á6wýâ†ûï¿_æÍ›·É>,PºûŒv}Û6t{7ÄZy#GŽtêò«_ýJ¬'¸ãÔqÛ®Ö·íC÷eÏm\ò‚ œ¡úí §œrŠ-jŸ,èêÿ:C¯{rÛË/¿,ù:Ä‚ ’O ''GFí¼ñ÷²õžßuëÖ9“ÙÇjí½^V˜²@ öªªª,ñJöàæ¦§H¶†Ð Œ|5ßj¯þcÿëÍÆ8áT{ óÚzu-Ù¢Üm·“a“v‘OŸºWÆï´‡´ê PŸþçŸ2\{}·3Á)gÜôåÅ[/‘}«×KÙŠ/å“–”Ô4í=Ns†´÷øjÙyºÍØ]ÅÜ.c§L—m´ìRÝfàðm±³î~M8Òc+×Â]´“»{ïn¿~ýzç¡Øf×ùµ¡öÆÁ]ÏîÝ›­íú¡åØö¡ÏÇh·!Ö+k'ÛÙX_ë´°ài¿Ç­Nüqû6]­ïÖÓ݇íoÑ¢Eb'Íí¹çžNíͶå69½¾m÷¶oÛÞz|‡êü-qVâHû=`—´¡Wöû ô²-Eð4øÚÇ`ÅÅÅí«…þòÛÒŠ²=Ä€3Ž3' ùÖÛ«3Go6!Õ†9XàÕëÜkºtN"Ó_l¯Þw­¼6ÿ/í½Ó^ò‹¼*³®¾_îûõIrõ‘cõú¹~2nùñUÿ'¹Yκ'^z‡<ö×_É›Ý"ãv›!œ|®<}ëe|mŒ±žP§;J·!úܦYWÞ'÷hy7ÏÚCrúõ—Œì\¹ø±/õã÷àúx©í¦°rÜùV®Ûûj빡­ãï»pó­·Õíqu×ßc=äÐC•½÷Þ[ŠŠŠä¢‹.rÆÄÚÉlwÜq‡S[×Ýg´ëÛ¶vs÷ëÞ»åÝvÛmr¶ž�·Ûn»9=À555r×]w9AÕ®ö0kÖ,±á×]w ½Â­o• ­«=·«QXXïׯŸLš4É)ÏÝ·-wÜÀkÛÛc ¾¾m˜$—€ý^°«¾TVV:C²¼ ¾ÖmqZyyùß¼ ]¼x± 6Lì¤ûåj¿À˜@ ù*ô’[Sþå—Óö#ÛfKž†Eb+š?õwƒ†£6’Ð_6Ï —¡bîüÚÊr Ì©’S BîüÐuíñçŸ$¶îÙw<µÉ¢Žë×nÐ!Ú«åu¶ßM Ñ'_[&Mó´ÏÀÙ……C yö»Ó*fõEš¢]?R9îüÚÚZ±Û AƒÜYí÷6„Íæ»¡Ùt¶~û†m,LÛdA¶ãä_÷Þ¾ÀÂnkÖ¬qN„³7L \öûÀÞ�Ûï™Õ«W;—bôB@¯ sº§¿½333oÛ±wó„^/e Ÿöó¿Ka­öæµJAVºäf‹|õ³`ðm ¿z×ÝsÊ$?o@¸sÍäñ›¯–šŠr9y'ùäµçåƒç•óîzT××€­‰6ä\¹vL›ŸŸ×¿ý¹û ³õÝròs²µ÷Õ®áídŸ–¹SwƵF»¾[v¤{žf·pÓ6ÛÇO‡.ëlýÐõì±õöFšÜÀkËÝÇ|íž…^þ–D’c>‰+`?÷v³op´léåäi𵳆ééõòðPñ)`¿¬v¬xNì(…š¥rµãÒ.*`\uÐviø´_·'Ö‚¥=v&[¦ôÎ ®ÍßißÝ5ð¾"K=+ƒ† ‘«Ÿ~EÆí´sÔåtw¿…ýtèDzpØDp'üÛS7è†ÞÛßëéy÷Ýwëÿö´l¶C�ø°àk¿Ü+ÒxÕOƒ¯W•¢ˆoûE5!«VJ×~(¹;í-jàÕ&¹Ch²4s¯Ãö»õÖdŸ¼Û5m™¼°Ðë_+Ñ¿óÎ;Îp¯ÿàyScJA�x øÆóÑ£îĨ€ w²/E°o {sõ{²ý¡GÈÈIzé,=Ù-ÒÔ1 [o¯M±6ßê:ÖÕž3m¹€Èb—Â|òÉ'/ذKž…ž·å{ @@?yðZÀ>¢²]íkoí«k_¹î2§'/´gÏë}öfy›ž6×›{NÜ}¹cúìföº±×ÍcB�¼ øz©IY Ð.`½¢öå?ýéO¥¤¤Ä¹,ÝdB œ€½^ìªvõâ@è §Ä<ØR‚ï– ²=D°ðb'‚YïÝ¥Ç7bƒYÐc7èº÷=.ˆ @�N¾à°¼pÃŒ{ïM©”‚� €@tv¢5 €� €� /@ðMøCL@�@�L€àËë�@�@ )¾Iq˜i$ €� €�Á—×� €� €@Rlµ«:dee% D�@�ð^ ¦¦ÆóBéñõœ”@�@�bQ€à‹G…:!€� €�x.@ðõœ”@�@�bQ€à‹G…:!€� €�x.àéÉm@Àó R`â 4ùRßÒÚV)©k•òúV©mH³?qÛÜÝ–¥§Šä¦ûd@vŠ ÊI‘âÜÉNóIFª¯»E° €�q/àu¶ô4øú|üQŽûWX/5ÀBoeC«¬©ñËò Á{ À„›[{©1¼›tý,Æ‚®Þ¡y©2º9x_˜•BøáãFÕ@�¼ð:[z|½m*¥%²€ÜÕÕ­òQ©_VVµHņjñ×Vˆ¿¡FÒ|ÁO:¾Ëëøâååï.JŸµ£§oµg7¯([ŠGÈØ1RÕ˜&€O2éõMä Ú†� °•¾[˜â7°Þ^ëÝý¶:zËK×JNk½Ì˜6^åK††»xŸÞܹÞ¢¦Ö²¯Û"}¦iq Ù}«öx7éƒUëjäÅ·×Ê»%u"»–Â, Ã>†<„d €�Ý øvG‰u<°Þ^Ó»Jƒ¯õôfûëä‡3v‘ÉÃr$7#U{5ãÿœË7V·ÊÈi’š’")šuS4ýú4ÞZìÕŽ[g²a÷±õæ¶êy&o÷ -­R”Ÿ!Y…9òÀ“Kå«eÕ2 ·ÐókÃëëéK’Â@�’D€à›$:–šYÙpNd³^ßæê2™²M®Œ-ÒÞÌ4K‚~iÖ³ÛlXƒ;TÜÞëË×Ô¤BÛ™šÒ*ãÝnï¯õìV”–HQñ m³ó°×× ¾"þVë¬ó²ÓeÄØ"YúE™”ê;Ðüúev€á) €�t)@ðí’ˆ¼¨Ó_»zCžÅ–ÚÚ, r$ç!¸¹9xÝ”¨;î~-ø†ŽõÕåëíŠxƒõµzÚÍ&»ß°¾D.úÉrùHÑ aÎ|ð`X3¯3Ü¡¥Õ'-z…‹~E¹R¹aã帩 €�D/@ðÞ¬}‹––I±²õÆÔ}&ýß.YÖ¨÷iÚÛ©—0H•Vñûƒ×1 ¶nòµyno¯íÉ?ñÄòÞ{ï9yêÔ©rôÑGKzzz{Ež|òI)-+uºSG-{íµ—ddd´/wX ÕÙ±üö•z¸¼ª©Ut,³mîöòÚP7þÞsãUR¶f•Üý×¹2û7:óàk¡WŸYømÑí5üZÏo 5Åñ27ócB�@�èb6øþç?ÿ‘AƒÉ®»î}«ºØâé§Ÿ–!C†È”)SºX³óÅßÿþ÷eï½÷– /¼0ìŠÖ†ÒR ^!“µgòäÉ!szç¡Wmö²¶^Ý7 ö&Â&  ÎM#£ÅD'•:÷ÿ©¬¬”SN9EV®\)ǼäååÉ_ÿúW¹á†äÞ{ï•aÆéÖ>™7ož444È„ äí·ß–ŠŠ y衇d÷Ýww–G*ßö‘k‚k٣Щ«åÕZ´gÖÚ’Òv• +ÕÞ"}öÞ«òÒã÷;Å-zæQÙíïËŽ{èŒïUg—-š|ýú¤F{Å^÷üCëÂc@�èž@Ìßk¯½Öé¡ÛÁwÁ‚N ÞÒàÛ±µ¡¾¾^vÙe—öU·Ùf›­|W¯^íôžŽ1¢}¿½Õæövó_3jjj †D·÷ÜðfeOþš;w®|ýõ×òÒK/IAA³Ö™gž)ßýîwå‚ .þóŸ–  xðÁËï~÷;g3fÈm·Ý&Ó¦Ms–G*ßY¹“ýwg¹ IhÔÞÙT'ôc²©¡Ö/¯?õ°LØy/§ûçõ§–ñÓö_JªÆì€öøÄ:u´ŒÊFýr½‰]Ø— @�¶H fƒïµª‹ÿö·¿u±†w‹:è ¹ì²Ë¼+°%Yø;v¬üñl_»7ÛܾÓn<pzDð['Ö뛚šêô[ÇçæÁTÇÆnØ ÿøÇ?ää“Ov†5Xhv' ¾W\q…|òÉ'2vÛmuœlpܰ»ÎàÁƒ¥¦¦ÆéŽT¾õªZ¶tù·Íé²¶¶EÒµ¬T½¬ƒ…^§­ÚªÃϹÚéùµz[ȵl\ÑlWuðk5ôêsëñµ/ò°“ÙÖèÉl’�Wºp÷ €�ô•@\v#­_¿^Î:ë,™4i’l·Ývò³ŸýLìãow²á?úÑdܸqb½|×\sXÏŸ;Ù¶wÜq‡ûT¬¼³Ï>[vØa5j”³»ÐãGá|\nClL©Ó‰'ž(>ø`{Q÷ß¿Sgw†ÕÑöýç?ÿYvÚi'9üðÃ7Ùw¤:ÿå/‘—_~YæÏŸ/Ó§O—§žzÊ)2\›;3ìjÿV¯HC<Ü6tçÞêà> ¾NïoKS³ŽÝmrÆïÚ}“Ý´WøóÏ?wò>{ï³ÙrÃkÓ§Ÿ~*¶½…X ¿ëÖ­•<(/¾ø¢Ø1´r"•o˼Xþµ~+Ýrý‚Ž¥U~ùrƒ_¾ÐÛ’Šù¼²E¾Ô›ÝÛmIeÛ2}¼T×ùªªU–é6¶í7z[­Á·ÞRxš~‡1 €�l‘@\ß3Î8CÖ®]+=ö˜<ú裲jÕ*±ºÝéÔSO•êêjyæ™gÄ>âÿðÃeÙ²eîbgýòòòöç§vš¼þúëb¡ñË/¿”[o½µ}ÙСCåÊ+¯”>úÈs|óÍ7·/ë΃uëÖÉ»ï¾ëܬ'ÒV¬X!UUUîS'¸Û˜Uw²6Y},Ä?ðÀξm«;Eª³ÙØV x .lñV^h›»2ìjÿûÆÝúôôÞíñµ{÷±S–3,À-U—éunm¹Óµiô˜Ñ!ÃoƒËí­ã´³­»ø®»îÒ¡ »É¹¿<Wìñ¡‡j›»“-P:ÓÆòmû¶Y›•o˺½\{±ývm^ÝÆ¯·Víé è<»×‹µ9÷v¡3»µ´=wÖ×ûužõuª§Ûdë‰mÚm¬ÿ"€� €@ân¨Ã7ß|#/¼ð‚Üwß}N/¬µÜB¯õðZp´Kb½öÚkNç˜1c;Ê‚m¸iùòåÎXÑË/¿\9äg•‰'¶¯j½½îdÒN ŠfzõÕWzÙ66æö–[néöæû쳺m«ÛÕW_ílÛYsss%33S²²²dàÀa÷Õ•áðáÃí"íßZo²“õøºÒîÝçNÙú¼}j{h=ò6½õÖ[²­ghŸtyéºR§—×Öqª ‰˜={¶sÌ1òì³ÏŠöö)LùîvÎ:[°|°ŽÉÍÑ/ãpFíZ»´ÀT½wm[[¬x{œlü²Ý,,ÛP‡TÉÐät´ƒ_ŸÔ$À·Ù¹-å@�¾ˆ»àûí·ß:V;ï¼s»™]ÊÊ&ëEuƒ‹;¯}¥Ü^V÷còŽ«ÙP;I͵MÑžYÜqÇõxŒoh°³Ëp¹ûîªÎÛÐñyW†nð´ÿŽåmÉs;^v³Àkã{Ýçîq -ÛÚou²±ºöæÆÞì„Nl-øÛI‹nYö&À®bÇð‡?ü¡Ó~à¶¿NB·w}m^¤ý»ëwµ|€ßt¯ÜB[Ö¶i@þÃ)²æ³ÅúÜbmŠž(Ç]>_“qš3Þׯ³[­Ò¤£ZÔ&Kƒ/CÚø¸C�@` âîóS =6}ñÅíÍþì³ÏœÇ6,Á±õvºólAYYYûºØUl²á'»rÀ¬Y³äâ‹/vz™mx€—“{ÝZ+3tBWûè¬Î]mkË»2ìN^­c×niiiao`Ý›]£×Žío~óyî¹çÄzÓÝe|ðsI3«]\\ì”å†h[Ç.;gC`Î;ï<gL·»?w{»·òÝùî}O—ÐÞ^ëñÍÕ±¹yéi’›©[º|çÔ‹¥¥f½4UWè­\9íbÉÏΔ¼Œ4ÝF×uîÓ%׳öôf9CãëÕkŽr@�’W îz|­ÇÏNö²“·ì2am؃ÞÑ£G;=up€üþ÷¿wNzûꫯœ/:°�n²áö‘¾ÿ´ò¬lÛÆæ»Ù—””8'…ŽË W^wçÙ‰w¶íd®‡~Ø9ÙÎý¿«2:«³…H[nãš#M]FÚ.t¾™¶“ÀB‡…„.ïîc;.nø }Ú£ÚkÿçþÇ ©6„Á.gfÛÛ±úõ¯í„[{zÝ/µ°Ëš=ÿüóòË_þÒ9±ÐÝGÇòÝmÝ6ôdyAFºöø¦µ_Ñ!E{nm²Çl·“ìwò¹òò=×ÊîÇž*ã§îáÌw.e¦Cô‚ҪݾÍmÃ,�s93‡@�Ø"˜îñ½ñÆqª6VÕnv¹* 5vE†¥K—ÊŽ;îèÜ죻‚dì¤0»Úƒ­gCì ÙÙÙ¡ìÚ®EEEb[ =öØcíl« µçž{:‘ÛpÛ¿X¶¥Óé§ŸîŒ;¶j'¡sÎ9Q©ÎVÈI'$v-_ ñv%ƒŽSw ;nÓñ¹íß.¶¥“Û£jáÔ†sØÐ»ts—[—ëøl;Áñßÿþ·3ÌÅ®îa=Âî¶Öv»æ¯ûÜB²]•ã‘G‰¸·|w›Ž÷Ý]^ ½»9™~³´çÖ¹×Þܬà-7+U¾wêù2rò49â¬K$WçgÛ2[Oo¹ºMNV†öüfHž>ÏÖ!…Ú{Ì„� €�[&`P§éÇìž\ØÖ†ØÇðö1±­=Ù%½,8õëׯÓ]ÙÉo¶®]ᡳɮ`¡°cy¶maa¡³¬®®Î)"''§³¢ºµÌz«íº²÷×­ÛVŠTg[lW¾°ñ­Ö¦HSw #mß“ùŸ•·Èûk›dñê)h©=GȾJ~N–s<­¾î›˜ÐòC{^c}ù¹ogÈ=·Ð>h0~½”¯¶)x³ÚìqC]ƒdi›í¹{³Þ^{lßÞl_bQ£—3ûxy™”­+‘aý³dçaY2uH†l7 î>¬ =”<F�@ KËHv•©-ýtÙÝÑ€N÷ô¯g¸0âîlkÜ÷ïß?l±×_½sÙ+ûjàW^yÅéQµá]MÖën Ý×ÝGwB»»n¤ûHu¶õík™»šBÛÖÕº^-·q«y)Ú£™*¥eÕRÛœ/þíÙÔ^ùÎBºë$-â�� �IDATWûïrоY ^ç¼zÛvìŒzÐ'…ý4ôê<=-xoËíÄ6½µhðµðkÃRt…ŒÆ2õ帙 €�É àu¶ô4øÆÊ°¯9^´h‘s™2ëñ|òÉ'3ýc¥~É^Â,Ÿ ÈN‘Ay©²Z2å³5Õ2rH“^‘! ãb’aW1ˆóiøP ¶ú¡€Ïz{í¦í±:µ ûu8Xº=¿MúuÅ ú%ue ÒZ]êŒi6/s3?&@�ˆ^ !ƒ¯Áo7¦ØÈÖËA9)2¼ MÖ(Ÿ-[ê EY1y”Œµd%ÀxVû"å5~½ YÏÆæ65úeõòYòé2©©k”QcÆ9^æf~L €� ½@BßèØ¢7¬G·87EjôBµŹúÑþXY½¶Dþýúç"/-Ööõ3þ$ŸZ}˜Ó³%5·HFè›mÕiD~ªã–=âI~xi> €@ |û>Ùwk½–Ãòí$¶4)È,¡E9²ªbˆÔ6ù¥YǸ&Âdã’BOÈ‹¦Mv3½MQ–:¥É˜ÂTšGoo4†¬‹� €@G‚oGž÷Š€õZf¥H¦`»Ní ÜTÑ/]{õúµtøŠ^ÁÌ9‘Í ­Ã¬‡ÜÞ,ÐÛÛ+/Ov‚�  ß=°ñÐ, qv³@gÁ®²! u-i²ëx%ù”‘üÖ6;‘À›ä/š� à™�Á×3J ê©€€ûeö´¶C�@�º°«,1!€� €� ðß„?Ä4@�@À¾¼@�@�’B€à›‡™F"€� €�|y €� €�$…�Á7)3D�@� øò@�@�H ‚oRf‰� €� @ðå5€� €� žß@ h4@�@`ë x-=ýÊbŸÏשÀG}Ôér"€� €�$ŸÀŽ;î¶Ñ]e˰u2ÓÓßNöÃ"@�@�úT€àÛ§üì@�@ ·¾½%Í~@�@�úT€àÛ§üì@�@ ·¾½%Í~@�@�úT€àÛ§üì@�@ ·¾½%Í~@�@�úT€àÛ§üì@�@ ·¾½%Í~@�@�úT€àÛ§üì@�@ ·¾½%Í~@�@�úT€àÛ§üì@�@ ·¾½%Í~@�@�úT€àÛ§üì@�@ ·¾½%Í~@�@�úT€àÛ§üì@�@ ·< ¾@ ·êÍ~@�@�\Àëléiðõù| ÎOó@�@�zKÀëléiðí-öƒ� €� €@´ßhÅX@�@ .¾qyب4 €� €@´ßhÅX@�@ .¾qyب4 €� €@´ßhÅX@�@ .¾qyب4 €� €@´ßhÅX@�@ .¾qyب4 €� €@´ßhÅX@�@ .¾qyب4 €� €@´ßhÅX@�@ .¾qyب4 €� €@´ßhÅX@�@ .¾qyب4 €� €@´ßhÅX@�@ .< ¾@ .¨4 €� €@ì x-= ¾>Ÿ/öĨ €� €@\ x-= ¾q)J¥@�@�’B€à›‡™F"€� €�|y €� €�$…�Á7)3D�@� øò@�@�H ‚oRf‰� €� @ðå5€� €� ߤ8Ì4@�@€àËk�@�@ )¾Iq˜i$ €� €�Á—×� €� €@R|“â0ÓH@�@�‚/¯@�@�¤ ø&Åa¦‘ €� €�_^ €� €�I!@ðMŠÃL#@�@�< ¾@�Q@�@�<ð:[z|}>Ÿ'¤@�@�¼Î–ž_ €� €�±*@ðÕ#C½@�@�< øzÊIa €� €�±*@ðÕ#C½@�@�< øzÊIa €� €�±*@ðÕ#C½@�@�< øzÊIa €� €�±*@ðÕ#C½@�@�< øzÊIa €� €�±*@ðÕ#C½@�@�< øzÊIa €� €�±*@ðÕ#C½@�@�< øzÊIa €� €�±*@ðÕ#C½@�@�< øzÊIa €� €�±*@ðÕ#C½@�@�<ð4øO+Ga €� €�É+àu¶ô4øú|¾ä=2´@�@ÀS¯³¥§Á×Ó–R €� €� |=Ĥ(@�@�Ø øÆî±¡f €� €� |=Ĥ(@�@�Ø øÆî±¡f €� €� |=Ĥ(@�@�Ø øÆî±¡f €� €� |=Ĥ(@�@�Ø øÆî±¡f €� €� |=Ĥ(@�@�Ø øÆî±¡f €� €� |=Ĥ(@�@�Ø øÆî±¡f €� €� |=Ĥ(@�@�Ø øÆî±¡f €� €� |=Ĥ(@�@�Øð4øØm)5C�@�ˆ+¯³¥§Á×çóÅ&•E�@�ˆ]¯³¥§Á7vÙ¨ €� €@² |“ý@û@�@�$ ø&ɦ™ €� €@² |“ý@û@�@�$ ø&ɦ™ €� €@² |“ý@û@�@�$ ø&ɦ™ €� €@² |“ý@û@�@�$ ø&ɦ™ €� €@² |“ý@û@�@�$ ø&ɦ™ €� €@² |“ý@û@�@�$ ø&ɦ™ €� €@² |“ý@û@�@�$ ø&ɦ™ €� €@² |“ý@û@�@�$ð4ø$a£™ €� €�[[Àëléiðõù|[»ý”� €� $^gKOƒo’š‰� €� ‡ß8<hT@�@ z‚oôfl� €� ‡ß8<hT@�@ z‚oôfl� €� ‡ß8<hT@�@ z‚oôfl� €� ‡ß8<hT@�@ z‚oôfl� €� ‡ß8<hT@�@ z‚oôfl� €� ‡ß8<hT@�@ z‚oôfl� €� ‡ß8<hT@�@ z‚oôfl� €� ‡ß8<hT@�@ zOƒo ˆ¾l� €� €@¯³¥§Á×çó…©2³@�@�ˆ^Àëléið¾9l� €� €@ï|{Ç™½ €� €�ô±�Á·�»G�@�è‚oï8³@�@�> øöñ`÷ €� €�½#@ðígö‚� €� ÐÇß>>�ì@�@ w¾½ãÌ^@�@�úX€àÛÇ€Ý#€� €�ôŽ�Á·wœÙ  €� €@ |ûø�°{@�@�Þ øöŽ3{A�@�èc‚o�v� €� Ð;ßÞqf/ €� €�},@ðíãÀî@�@�zG€àÛ;Îì@�@ < ¾@ ›Ãî@�@�EÀëléiðõù|‰âL;@�@�úXÀëléiðícv� €� €@D‚oD €� €�$’�Á7‘Ž&mA�@�ˆ(@ðHÃ@�@�D ø&ÒѤ- €� €�¾iX€� €� HßD:š´@�@ ¢�Á7" @�@�I€à›HG“¶ €� €�D øF¤a €� €@" |éhÒ@�@�ˆ߈4,@�@�H$‚o"MÚ‚� €� Q€à‘† €� €�‰$@ðM¤£I[@�@�" |#Ò°�@�@ ‘< ¾@ ‘lh  €� €@ x-= ¾>Ÿ¯iØ5 €� €@" x-= ¾‰M[@�@�K€à›XÇ“Ö €� €�D øF€a6 €� €@b |ëxÒ@�@�ß0ÌF�@�H,‚obOZƒ� €� A€à†Ù €� €�‰%@ðM¬ãIk@�@�"|#À0@�@ ±¾‰u<i  €� €@‚of#€� €�$–�Á7±Ž'­A�@�ˆ @ð�Ãl@�@�Ä ø&Öñ¤5 €� €�¾`˜� €� XßÄ:ž´@�@ ‚€§Á7DØ ³@�@�ˆNÀëléiðõù|ѵ†µ@�@�ˆ àu¶ô4øF¨3³@�@�ès‚oŸ*€� €� ÐßÞPf €� €�}.@ðíóC@@�@�zC€àÛÊì@�@ Ï¾}~¨� €� €@o|{C™} €� €�ô¹�Á·Ï@�@�è ‚oo(³@�@�> øöù!  €� €�½!@ðí eö� €� Ðçß>?T�@�@ 7¾½¡Ì>@�@�ú\€àÛ燀 €� €�ô†�Á·7”Ù €� €@Ÿ |ûüP@�@�Þð4øÞ¨3û@�@�H¯³¥§Á×çó%Á! ‰ €� €�½!àu¶ô4øö�û@�@�@ 'ßž¨±  €� €@Ü |ãîQa@�@�ž|{¢Æ6 €� €�q'@ð»CF…@�@�z"@ðí‰Û €� €�Ä�Á7îF�@�è‰�Á·'jlƒ� €� w߸;dT@�@ 'ßž¨±  €� €@Ü |ãîQa@�@�ž|{¢Æ6 €� €�q'@ð»CF…@�@�z"@ðí‰Û €� €�Ä�Á7îF�@�è‰�Á·'jlƒ� €� wžß@ w�T@�@ 6¼Î–ž_ŸÏ›jÔ @�@ î¼Î–ž߸Ӥ €� €�I#@ðMšCMC@�@�ä ø&÷ñ§õ €� €@Ò|“æPÓP@�@ ¹¾É}üi= €� 4ߤ9Ô4@�Hn‚orZ� €�$�Á7i5 E�@�’[€à›ÜÇŸÖ#€� €�I#@ðMšCMC@�@�ä ø&÷ñ§õ €� €@Ò|“æPÓP@�@ ¹¾É}üi= €� 4ߤ9Ô4@�Hn‚orZ� €�$�Á7i5 E�@�’[ÀÓà’[“Ö#€� €�x&àu¶ô4øú|>ÏJA €� €�É-àu¶ô4ø&÷¡¡õ €� €�±,@ðå£CÝ@�@�< øzFIA €� €�±,@ðå£CÝ@�@�< øzFIA €� €�±,@ðå£CÝ@�@�< øzFIA €� €�±,@ðå£CÝ@�@�< øzFIA €� €�±,@ðå£CÝ@�@�< øzFIA €� €�±,@ðå£CÝ@�@�< øzFIA €� €�±,@ðå£CÝ@�@�< øzFIA €� €�±,@ðå£CÝ@�@�<ð4øÏ*FA €� €�É-àu¶ô4øú|¾ä>:´@�@À3¯³¥§Á׳VR €� €� |=¥8@�@�Ø øÆæq¡V €� €� |=¥8@�@�Ø øÆæq¡V €� €� |=¥8@�@�Ø øÆæq¡V €� €� |=¥8@�@�Ø øÆæq¡V €� €� |=¥8@�@�Ø øÆæq¡V €� €� |=¥8@�@�Ø øÆæq¡V €� €� |=¥8@�@�Ø øÆæq¡V €� €� |=¥8@�@�Øð4øØl%µB�@�ˆ;¯³¥§Á×çóÅ(F�@�ˆM¯³¥§Á76ɨ €� €�"_^ €� €�I!@ðMŠÃL#@�@�¾¼@�@�’B€à›‡™F"€� €�|y €� €�$…�Á7)3D�@� øò@�@�H ‚oRf‰� €� @ðå5€� €� ߤ8Ì4@�@€àËk�@�@ )¾Iq˜i$ €� €�Á—×� €� €@R|“â0ÓH@�@�‚/¯@�@�¤ð4ø¤@£‘ €� €�[_Àëléiðõù|[_€= €� €�$…€×ÙÒÓà›G€F"€� €�Ä¥�Á7.•F�@�ˆV€à­ë#€� €�Ä¥�Á7.•F�@�ˆV€à­ë#€� €�Ä¥�Á7.•F�@�ˆV€à­ë#€� €�Ä¥�Á7.•F�@�ˆV€à­ë#€� €�Ä¥�Á7.•F�@�ˆV€à­ë#€� €�Ä¥�Á7.•F�@�ˆV€à­ë#€� €�Ä¥�Á7.•F�@�ˆV€à­ë#€� €�Ä¥�Á7.•F�@�ˆVÀÓà¢Ý?ë#€� €� VÀëléiðõù|a+ÍL@�@�¢ð:[z|£m ë#€� €� Ð[ßÞ’f? €� €�}*@ðíS~vŽ� €� Ð[ßÞ’f? €� €�}*@ðíS~vŽ� €� Ð[ßÞ’f? €� €�}*@ðíS~vŽ� €� Ð[ßÞ’f? €� €�}*@ðíS~vŽ� €� Ð[ßÞ’f? €� €�}*@ðíS~vŽ� €� Ð[ßÞ’f? €� €�}*@ðíS~vŽ� €� Ð[ßÞ’f? €� €�}*@ðíS~vŽ� €� Ð[ßÞ’f? €� €�}*àið }ÚvŽ� €� 8^gKOƒ¯ÏçKiZ‚� €� Ч^gKOƒoŸÊ°s@�@�: øv‚Ã"@�@�Ä ø&α¤% €� €�|;Áa €� €@â|çXÒ@�@�N¾à°@�@ q¾‰s,i  €� €@'ßNpX„� €� 8ßÄ9–´@�@ ‚o'8,B�@�H‚oâKZ‚� €� Љ�Á·!€� €�$Ž�Á7qŽ%-A�@�èD€àÛ ‹@�@�G€à›8Ç’– €� €�t"@ðí‡E €� €�‰#àið ‰#CK@�@�úTÀëléiðõù|}ŠÃÎ@�@�GÀëléiðMfZ‚� €� hßD;¢´@�@ ¬�Á7, 3@�@�M€à›hG”ö €� €�„ ø†ea& €� €@¢ |íˆÒ@�@�°ß°,ÌD�@�H4‚o¢QÚƒ� €� V€à–…™ €� €�‰&@ðM´#J{@�@� |ò0@�@ Ѿ‰vDi €� €@X‚oXf"€� €�$š�Á7ÑŽ(íA�@�+@ð ËÂL@�@�D ø&Ú¥= €� €�a< ¾@ ìN˜‰� €� €@´^gKOƒ¯Ïç‹¶=¬� €� €@X¯³¥§Á7l™‰� €� €@ |cà P@�@�­/@ðÝúÆì@�@ ¾1p¨ €� €ÀÖ øn}cö€� €� ß8T@�@`ë |·¾1{@�@àÿÛ»)оãÿÙ]DADyð^¼¯E_ð ˆh¼ðH¼@Áã‰$*`äy|^ãcT¢OŒà…·ÄxÕxÆ[£‚J”(**j<APeÞþÕRC³,»Û3=»S3ß"M÷twuW}ª7óŸšê@ |K ( €� €@ñ|‹oÌ@�@�J@€À·" €� €�_€À·øÆœ@�@ |K ( €� €@ñ|‹oÌ@�@�J@€À·" €� €�_€À·øÆœ@�@ |K ( €� €@ñR |³ÙlñKÌ@�@�*B íØ2ÕÀ7“ÉTD#PI@�@�â ¤[¦ø¿úœ@�@�ü|ós# 씥Á��«IDAT€� €@`¾5ÅE�@�ÈO€À7?7r!€� €�&@àXƒQ\@�@�ü|ós# €� €@`¾5ÅE�@�ÈO€À7?7r!€� €�&@àXƒQ\@�@�ü|ós# €� €@`¾5ÅE�@�ÈO€À7?7r!€� €�&@àXƒQ\@�@�ü|ós# €� €@`¾5ÅE�@�ÈO€À7?7r!€� €�&jà›Íf«>ÅE�@�(U´cËTßL&Sªn” @�@ 0´cËTßÀ,). €� €@ øVPcSU@�@ ’|+¹õ©; €� PA¾ÔØT@�¨dßJn}êŽ� €�T�o56UE�@�*Y€À·’[Ÿº#€� €�$@à[AMU@�@�J ð­äÖ§î €� €@ øVPcSU@�@ ’|+¹õ©; €� PA¾ÔØT@�¨dßJn}êŽ� €�T�o56UE�@�*Y ¦-+_WW×–§ã\ €� €�äèñÍQ°€� €� PξåÜºÔ @�@ 'zà›Ífsg@�@�|ŠS¦øvìØÑV­Z•OÝȃ� €� €@N@1¥bË4Sª7·uïÞÝ–.]jUUUV__o™L&Ͳr,@�@�2PO¯‚ÞåË—›bË4Sªo×®]­ººÚ–-[æ¦4 ʱ@�@�*C ¦¦Æºuëf;wNµÂ©¾*™ ˜v!S­1C�@�¨HTÇøV¤ •F�@�B€À7ˆf¢ €� €�… ø*H~@�@� |ƒh& ‰� €� P¨�o¡‚äG�@�B€À7ˆf¢ €� €�… ø*H~@�@� |ƒh& ‰� €� P¨�o¡‚äG�@�B€À7ˆf¢ €� €�… ø*H~@�@� |ƒh& ‰� €� P¨�o¡‚äG�@�B€À7ˆf¢ €� €�… ø*H~@�@� |ƒh& ‰� €� P¨�o¡‚äG�@�B€À7ˆf¢ €� €�… ø*H~@�@� |ƒh& ‰� €� P¨�o¡‚äG�@�B€À7ˆf¢ €� €�… ø*H~@�@� j‚(%…D�@ eU«VÙÇlsçεÏ?ÿÜ–.]j«W¯v“?U6›u‹™LƯ2¿.·"Zh¯íþ¼šgª3Ö¡ºƒuíÚÕjkk­®®ÎöÚk/«©iß·úP1m¸Âý5¦Wi]ûþ˜ía¬¿äÑ?ÿüóªÇÿ €�”·€Þ¼?úè#›9s¦uîÜÙ dû[Þh£‚®üÊ•+í?þpõ{饗ì·ß~³c=ÖÁ>Øh« –‹3¦Å¿bÚʸGc|‹ßžœ@ DêëëmÖ¬YöÞ{ïÙ%—\b½{÷^§·¶DŠYP1|¯œz¯¿þúk»ñÆmÿý÷·áÇ[uuuAÇnmærsÆ´µ-Ÿÿ~maLà›û@ 0‚ z5¼áâ‹/¶-¶ØÂªªª¢ÀW_áV™ 7ªG6ú§¤@Bè?ü`·Þz«õéÓdž æê¼¡ìi¬/;gLÓ¸,š?F+ðmß?Í3°@�Tj,¯¦#Fئ›nêÆòú^¦TN’ÂA4VÁ¸¦Ö& ah\½öS—.]íä“O¶Ç{̶Ýv[ÛgŸ}ŠÖË­s†àÜ’m%šæsíµäØÜöö2&ðm®U؆� PË—/·çŸÞ `[öè±ÎMlM}â·5)·àW¸Tõkè@Ïž=sëÓX:t¨zè¡vå•W¶êp Áƒn®kؽq�¬Þ×lvµuéÒÅú÷ïo/¿ü²í²Ë.n<s«Np§4›:µê÷ÔSO¹¡*ª±ÙÇwœuèÐ!·ûÓO?mµµµ¶÷Þ{çÖ=üðÃîõž{î™[·¡…r5•Ýœ9sìƒ>p×ð;ì`;vØaî†È¤×Þ†üZ³¾=[ÿ‘²55a@�JL@Áß'Ÿ|b›o¾¹m¿ýö–¢Ä+V¸a�ÚÖÔ¤`±aZÛsªÀAÓÔ©SmìØ±vçwæzUý¶Bçž®µÇñ­¯ƒÏ§×õ«ë]Ý *ÐPooôU¯ÍŸ?ß­÷çJk®s¦éìëâç¿þú«}ôÑvõÕWÛÆoìÚóæ›o¶ÁƒÛ7ß|“k‹n¸Áž}öÙÜë)S¦˜Ö¹¶_Ó†þ˜MÍËÑ4zˆuÔQnˆÏ_ýeú�ðý÷ßÛµ×^kï¿ÿ¾³ò×AS&i¯kOcz|}K3G�(K¿ÿþÛ>ýôSø(`ÒX­Ó›¯žâP£¾¢Àpݤ ·aœl|}}4áž{î±wÞÙÍ/¿üòu†%è(ë÷¯=BKÛ`h\®‚Õ¦Rãü h•ª¢yü¼:޾ºV£c馶Ž;ÚvÛmg ,p9Ûd“Mš:EÞëÒtn\OjÒ¤Iî±s¯¾úªm=²Mõ=÷ÜsM=•—]v™Ýwß}®ìªûê5† €o¹å{î¹ç\[{צŽï2Gÿ•£é„ láÂ…¦'}hl»O |å%—¤×ž?†Ÿ7gª}âÛÛÓ˜À×·s@�²øóÏ?Ý3z5¶UÏ´­®©Îõ„*8Ô›p¦*ã‚Ǩ;ØDao4oø?‡­šós\`úŸ[þcÇ ·Ùsf»¯Š×dr=j}öéc‹¾^”{\Ú„‰ìÈ#t±nªkn»ziW®ZiËÿ\n—^z©õúG/»bü EˆÎ?ùŸ“]Oç\[§ÂÕ!Ó¬¯Žz«U|2Ù(¸×6¾ªû–[né_™¤ø¦é좤¼Ù’%KlÚ´ivÆg¸z,‹||:l¨ýëŸÿ²yͳvÚɵϊÈpî¼¹vÞyçÙwÜa=ÿÑÓ™º<jÚ†fö‡Xw®íedúûï¿»iÿþß[§ÎÖ:ÄkÕ9~íi“zØ'Mœä†Çè8h ]sÍ5¶Ùf›¹œï¾û®M¹qŠ}øá‡nÌü¬Ù³rAµz˜Ç_1Þ^{í5wÍ]wÝuÖ@ÿµglGc†:¬m–@�ÊP@=‘º™MoØ �u㘟ûɪ2z;Œ¢!Dš)ŽÖi}nŠò=pÿvÊ)§XßÿéëÆ—Îx`Æ:Û¿ûî;›zûT7¬à¡‡²ƒ>ØÆ]6. @³î¼-mÎêþéœúpÁÞÊ+Ý9ô|ÞéÓ¦ÛÇäΩzTW7<™BW¹•·¡üѲÛÞPg¾ë«gË$픦sÎ|ÿŸáz° äãÛ6ØUeÁg ru_òû5r”7ΙŽïïÚ<Þ®–ËÍtá ݽ~}ûå®›u<TÿèÚŽ_{Ú~ằÀº)òÑGµÅß-¶±ŽÍcòµ“mÈ!nèÌO<aÝ»uÏmÓ~Ý»w·wÞyÇFmêqŽŸ³= |ÓþËçx €�%# ^Oõêê×Ìt”ëñ¿ oÀÕ =¾Ñ›.nbyñâÅî«âÓN;Ííwúé§»±¤¿üòK.Ÿ*~â‰'ºžFýjÚĉ]Ï™zÅtìÖlwÁk´ï1ÇãzmgÏžíò*�Ñ15>Ó—3àÆÊ«:ÕD½ÚñºjY“ ô!@&²I+¥éì럫÷QI=ºñõZÞc=\ ïÛAûé9Í_}õU“û7Îßøu¹™z;qo\×øk¹ùkOc¦u#ä9çœc»í¶››ÆŒc/¼ð‚éï@ùt=½øâ‹îµn”ÓP­_´h‘½òÊ+vÄGØ?þhýúõ³Ï>ûÌ~úé§ÜùÛÓ˜ÀW-MB�([÷•äi££Wp¨e?¯©Ž†@¬éÝÐüÁtAã]wÝeW]uUîÉê óyô†®qÄþµÆSjRà«u­ÙîË¥�õøã·3f¸¼Ó§O·‘#GæŽíÏáç>Ÿ^WU5ÔϯÓ\“Ú‘fÐë/œ´œ}}âóÞ½{»Ó¼ýöÛëÕ__«ëÜÚGyd¬ KOÆPo£žÛ?V’eï§<¡š*(UúöÛo›u›¯¯öUêÛ·o.–•üqn¿ývç~àÚäɓݵ%'}«¡tÛm·¹wý­ì·ß~îƒHSöþœmeÌ_×<ü‡� P®zCÕQ=jKO5ЭŸü›½'-+ù P¯ý²n8ÓÍSæ Çù¤;ãµþ¢‹.r«”ÇS+”©§k›m¶qçLº]cZõu²Ç¥¢8á„Üqüùu¼xòåÕ:-kÒM|Jª³ÆáêgŒe’vJÃÙ—IõŠ×E7öêÕËõ¸Ÿyæ™ÎØo×#º4|C6S•”_ã©Õë«gë&7�úí>¿Ëû¯ÜLe§ÞÞGyÄ=Ò.VÕuUoM2Üj«­Ü6õÔúeÝ ª¤×ÚGž?þ¸½þúë62ú@¦§fœ}öÙîJí7~üøµãߣ×:¶7oOc_µ @ ,ô«'7hüiS=¾ÚÞøM¸)=XÇPÏ–Žç“¾ÆÕsPÕ©ñ¼Jo½õ–i<®zlï¿ÿ~t(xõÁfKÛU¿¯zÊ4´AcU\´tCšòúàBsM¾Ž ÞÕã«àWuhM½}=[šëXi8oè<òÐUú™é—¢'~øánWÝ`uýõ×›ž®¡÷”|}•禛nr=”~¢';(�Lšt¼M;uêä'£]wÝÕÎ?ÿ|w}é‘>(0Ö¤¤ºÊMû郄¾m8à€Ü ƒº–Õë«}µŸ^m;äC¬¶¶Ö)¯¶8Ðô¨9 “ГDô¡SçÓßDS©- |›jÖ!€�”€Æn½õÖ¦1  HÕë«7hMzÃÕÔRÒ0íUOz㯫«³{ï½×ÝD¥ci¨ƒ3½Ù+XÖ¶nݺ¹l­Ù®Þ4ŸôiÔ¨Q.°ÓËøz¿}Csø*àð¯z{e!“´SÎÍ•Iþª¿zýŠCª§ÌùvÔ\m«}5)`ÓõÖ?óÌ3-~xh® ¡šj¬®®K ÿЇ7=ÓY×§~ÆZO\“Üâמ®ù³Î:Ë¡Ö5¤`Ó¢'kø Ñ·ú6C×¶ÆYk_Géî»ïvm¢'©¨gXwú;PÜR*¶ñÚ¿¬–JÂv@�P°ª›¢ôh®7q½Áûà×WÉN¾wϯ×\_én(©×Ñ'C½´3gÎt? ¯çýqµOKÛÕ³Ü8)hUÀ Û’$ÕCuõI?ÚñÆoذaÃÖ àý>…ÌÓpnéü ~O=õT÷LZÕ¯w4®WmOz„V<)0‹·Q|[ÒåM˜jÒÝ¥K—ºÞØøµÙøÚÛ}÷Ý]¯®†ëèoÅxóf;­ã(éi!ñ¤¡=O>ù¤ x`'ù…ÃbøÆ[Še@�²Л¶Pý<«žpÒI'ån@SUãÀ©�P«÷3>¦Ô³¥í~??WЫ›„Ô+bá·77WÐë' oÐOù*P”…LÒNm鬠¬=’÷Ô<TS]I’ãÛT}{Ò\ÒÐ’¤ÃKŠm¼îǤæJÏ6@�P¯–z¤4Wã\u£˜~ÑLëÓ zE£›Ñ4¾qC©¥íóéy u1bDãM-¾VÝ4i¸…ÆjjŒ³ dïékñ@­Ü¡-[Y¤ÔwÃ4uÒõXlc lucÿw½3³@�2P�¨ŸmÕ³Hõ„¡ºG=• ÚŠ ¶Ÿ¾*öÓܹsݸLÝø5xð`×ë´ç8iÊÑÙ{jŽiÒ+¢uû·…qÔC=†À·uíÁ^ €� èUã\Õ‹úæ›oÚ¼yóÜM^ºS]OdÐЄbÜôÕ–l :õºã^?â ×ºùî ƒ*ÚMmëWnΘ6náô_·•1oúmÇ@�J\@ãfõtˆóçÏ·/¿üÒýºš†(h 9©×ZwÝëçbkkkÝÝözœ”nLòwÜ·UýÊÅÓâ_1meLà[ü¶ä  €�%(à{%uǹ&ýÀŲeËÜàPƒ_¶¡sÐO4ë) šÒ~fo’æ ÝÓ$­ß¾miLà›_‘ @ Œœé¦7M¡½¾9|áÇ-ûõ¥0ÕÓâ_=me¬À—Ç™¿=9 €@ èMWÃ�Úz(@ “¥h8§ÏŠirSg–ÜŒ €� €� øØh@�@ ¹�or3r €� €�(@à`£Qd@�@�ä¾ÉÍÈ� €�  �o€F‘@�@�’ ø&7# €� €@€¾6EF�@�H.@à›ÜŒ €� €� øØh@�@ ¹�or3r €� €�(@à`£Qd@�@�ä¾ÉÍÈ� €�  �o€F‘@�@�’ ø&7# €� €@€¾6EF�@�H.@à›ÜŒ €� €� (ðÍXnŠŒ� €� €@,=¾I¸Ø@�@ Xß`›Ž‚#€� €�$`¨C-öE�@�U€¡¡¶åF�@�H&@o2/öF�@�S€ß0ÛR#€� €�$ Ç7©û#€� €�„(àz|yŽoˆMG™@�@�’ø&Ñb_@�@�`²™¨è§GSulÒð?ùõz­}ýz?×:MÚOÉ¿ös¿.>×2 @�@�/àG ÄçZö“ö«½^-Ç'í§×ÚGS|›_W_mXM>õs²Zös²~›æ>ØÕ\ɯó¯Ÿ7lmøßï_Ç2 €� €�>àõ>àÏÌ*i‚ã®Öûà7>Ïí£ÀW/”jg¥¦N ÀÖ¯×þzíó)o|Ù½>Ðõóh7 €� €�ë ÄãPmôqgssÅŸñízÝx]üX«ÿ";³šÇP+����IEND®B`‚���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/MD5�����������������������������������������������������������������������������������������0000644�0001760�0000144�00000017335�12473324601�012167� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������253a55df1ad036477a600d951da47816 *DESCRIPTION 2ac8698b8109b3fa4e41d7336d15ffff *NAMESPACE 57679970d38c17ac9c95478b9313aed0 *R/attractorsToLaTeX.R 0e037f01fa88a832cb43d3a9d5e9f5dd *R/binarizeTimeSeries.R ec2c323ef07745ec7b89339aa5a4433c *R/chooseNetwork.R 7c81eb3530ee3fede7742d9729de77c1 *R/edgeDetector.R c7fb28f26b946db5f54730be6d492516 *R/fixGenes.R b96b8b67effb0c2d55a29cc6f19323bd *R/generateRandomNKNetwork.R 9597332899ac07b3145917fafc789d15 *R/generateRandomStartStates.R 2c872695c4fa33c90c6de2431f19e689 *R/generateState.R 5650d6d8b6da147a254e9681a291a90b *R/generateTimeSeries.R 4db8f585d2e3477db95a8db2720a2e4c *R/getAttractorSequence.R 140740c1ba1d08eea3e27e9da3637f48 *R/getAttractors.R 08764b48eccb7812f9c333c122d1e689 *R/getBasinOfAttraction.R cc663c2b39dc50cd45bbb83d7cd36d44 *R/getPathToAttractor.R 9637fc5badfec905a1d865d5e65d3839 *R/getStateSummary.R a45f67785e1846f8482c9ff10debd95c *R/getTransitionProbabilities.R d31c9950c1a42c23eb5585c23e98bb25 *R/getTransitionTable.R fcedd10ae785f0be113ea1ea2e66b091 *R/helpers.R 8e0fdeac893b8bfc8837c9d94e9ed1f9 *R/loadBioTapestry.R f1e4da50ef5dd5ea083b8fcd060b3f77 *R/loadNetwork.R aa19fa3aaa70362a5d5d18bb114c245c *R/loadSBML.R 817f7c8476aa6b32443be62885e3c72d *R/markovSimulation.R d3dc1ab8d227e4775adfaee9973732e9 *R/parseBooleanFunction.R 75a4ff7284740122216a79cd7f9508e1 *R/perturbNetwork.R 6e8d3d79095844cf1fb6cb7c75750cfe *R/perturbTrajectories.R 54ab01ffef3dec2435b53b9bee56c324 *R/plotAttractors.R 20fd67145509cae5e9701fcfa93e210c *R/plotNetworkWiring.R 9f64811ec997a7aa2fc262725ae6f7e5 *R/plotPBNTransitions.R 50068abb6516a79ef0246de1cf4ece7e *R/plotSequence.R 1a4c7472949dcd09fe8c8db854233825 *R/plotStateGraph.R 1d3e5b86636a5b54035d7062285e34e4 *R/print.AttractorInfo.R bd5b5182c9a4321e0051be7f40bcbf6f *R/print.BooleanNetwork.R 09ac08c8cb2ef098c96a86de93e5ad7c *R/print.BooleanStateInfo.R b4ce1c3d7c29f9b9d92a5428ace77b0a *R/print.MarkovSimulation.R 55d7e998f889cf528bef3d68edb38562 *R/print.ProbabilisticBooleanNetwork.R 2a6921108f7704c4949bcd96b82a2cb0 *R/print.SymbolicBooleanNetwork.R 1138169d9ef31f04670bbc2544524e4c *R/print.SymbolicSimulation.R 0adfd6c034e0bf75c16d351c4f2e52f6 *R/print.TransitionTable.R 78216cfe9045ded3a90b43edb6e0d21f *R/reconstructNetwork.R 00623749adde58c327566c72a67d4027 *R/saveNetwork.R 8db261cf9b75f737bc6ca7f49c67dbd0 *R/scanStatistic.R a9cfa06573f8eeb0aefa2329c59689aa *R/sequenceToLaTeX.R 5877e9963cac94f7dc2b245079826450 *R/simplifyNetwork.R c8a4ab49f15e1e8888d4bd132e1d9271 *R/simulateSymbolicModel.R 595c68d880e16c31046313f648cc34c6 *R/stateTransition.R ea0fbe49b283f4f0c073de77ab78fbaf *R/symbolicToTruthTable.R 42daa52bc14fc6918004e35203e07907 *R/testNetworkProperties.R 568159a3609b108c45ba2c39728fa6ce *R/toPajek.R 47bc51ada1eefa53c11e0171a589bc8b *R/toSBML.R dab752c2c82ef4e5e93224ad6934208c *R/truthTableToSymbolic.R 811f12cc71a25cbf23ade7eb93bb2162 *R/zeta.R ec45191be2833f0b81cdd9b9a7b8a34c *build/vignette.rds 6323b9a68ede50d320ceffa342711988 *data/cellcycle.rda 2162a3dfd9f29f06223413307dd177c8 *data/examplePBN.rda d58578f1cc7da58378f1617a6d8bb021 *data/igf.rda 8919de127f7ee2391900468a36c5dcd4 *data/yeastTimeSeries.rda 62409980eecaca8e52f1d495f499d6bd *inst/CITATION 425dfe841d43b1c66473d819e098dd4a *inst/NEWS.Rd 6f2a639feacaaedd0e6ba03706c5bed3 *inst/doc/BoolNet_package_vignette.R e5183b47ee9e7fb9417498d986c59e12 *inst/doc/BoolNet_package_vignette.Snw 93fecaf746049931eac6508d4b1fb934 *inst/doc/BoolNet_package_vignette.pdf fcb0ddc4a26eb5062f05b55032e5b151 *inst/doc/cellcycle.txt 27bccf40991bbe762bc274cbd7874f40 *inst/doc/example.btp a9e0ea6aa1d8787e05472cc2fcaaeaa7 *man/BoolNet-package.Rd 67caa758b9f663491e69a3c18f4ee36f *man/attractorsToLaTeX.Rd 3461bfd43dd57a88d01d83df611f95c0 *man/binarizeTimeSeries.Rd 3623b2fe85476af5336cf7e220c1d60e *man/cellcycle.Rd 036eacac86ee9bfe4f821ab5ef7fb616 *man/chooseNetwork.Rd 7914c426e149300046dfce5ca9517777 *man/examplePBN.Rd 98af6630df76a0232c66ebb0bc8837d7 *man/fixGenes.Rd 642d27c47da308a31eaf78400173f2f4 *man/generateRandomNKNetwork.Rd 6b7e62a87a818acd4982332b9aa254e1 *man/generateState.Rd 38c0aa52a0ee9f8bf97e8067c77fcde5 *man/generateTimeSeries.Rd 201ec0e62a545f6a444f6caf689b3b03 *man/generationFunctions.Rd 35e00e1d48235e6deda56da6a5aa5758 *man/getAttractorSequence.Rd 72c6a2e78ad4bb47cc35d7d00c2a8c64 *man/getAttractors.Rd 9a35b1240af9834c41698983a18a6304 *man/getBasinOfAttraction.Rd 942d670fcd5de88dc007005fdab638c6 *man/getPathToAttractor.Rd 86d4773284835753fd35078d27d620d9 *man/getStateSummary.Rd 87053d20084edd33f1c2fe2c2a4f9787 *man/getTransitionProbabilities.Rd 8489c176c7be92a3e98d55b44e8c7aa9 *man/getTransitionTable.Rd ce766f16cf9e6a7a2bb9e883e8eaeb61 *man/igf.Rd 45e936129f9b2587bf185102395c260d *man/loadBioTapestry.Rd ed4cbad9b4579b8a7c6b0cc2f4a936b1 *man/loadNetwork.Rd 2707e6dd84d360637b761470776337d8 *man/loadSBML.Rd c859af507471ba3da30d304d90622a83 *man/markovSimulation.Rd 1592f64ef13d306cbc4110ae2ce8f604 *man/perturbNetwork.Rd 196308b14d4adf113e9a71211c9018cf *man/perturbTrajectories.Rd 7d3cafb6484920b455af4faa84844abb *man/plotAttractors.Rd c7904f48e78584e4ad19f1f88c897398 *man/plotNetworkWiring.Rd 2638a35d79eddce77b3cac8e6cd995b9 *man/plotPBNTransitions.Rd 6ffc20ceb3f57f516ba0f89910c45764 *man/plotSequence.Rd e0c340ffb88ae9e4adbc457d5ecaae49 *man/plotStateGraph.Rd 5f379a9e2b4a9a418d8b665af74757be *man/print.AttractorInfo.Rd e0b2b98da9c074e4e30dd73d57dae9da *man/print.BooleanNetwork.Rd b480ee06d8d8c2ade8ad0b5c89a13a7e *man/print.MarkovSimulation.Rd d03ef8645e4d3ad814798e882167aa8d *man/print.ProbabilisticBooleanNetwork.Rd 0b0de959a1efcef7fb7cbee820e80353 *man/print.SymbolicSimulation.Rd d6e7961146750c9b36106a8d280a1c09 *man/print.TransitionTable.Rd 98f8fc35b62488d9311508f3cba92992 *man/reconstructNetwork.Rd a00de398f679b032e7455478b427b4b5 *man/saveNetwork.Rd 193c5cf928939ccffccce788a27154af *man/sequenceToLaTeX.Rd 5944620706adac67972e04b0eea2627f *man/simplifyNetwork.Rd 235d5f7bb9ebf1c349f20912107b4dd9 *man/simulateSymbolicModel.Rd ce79e445196a6f65daca2a2cdce0aa88 *man/stateTransition.Rd d3d63606a7c4517c4faa078a43d9bbdd *man/symbolicToTruthTable.Rd ebae90dc72087715f94107aee6eb6536 *man/testNetworkProperties.Rd a5db19da3fb5103170c96cad7d537b74 *man/toPajek.Rd 205d9b5aa773edc1124a0ae58d5e7a0e *man/toSBML.Rd a43aad3b0dd5fff7a95a9075bdfdaa2e *man/truthTableToSymbolic.Rd 7ffc48740e826cbf5c56c11fb8dfe9df *man/yeastTimeSeries.Rd da975f995fc5f2ef57170b3d3ba53178 *src/Makevars.win 56a684219ad834529e4c4c6e9deb9ef2 *src/attractor_info.c 8b25f0694d6279bba2e28c947e304524 *src/attractor_info.h 036826c4ebee96d5885709f10efbd391 *src/attractor_search_interface.c 8e4fdfd767d86b61f15c5c245e8dba77 *src/boolean_network.h 8bcc0d40927949da8d50a8b116fc45d9 *src/common.c 156f9c56866c9e7707594d1f0faf101b *src/common.h 3ae7901969630cf0f1c12ac9024957eb *src/picosat.c 2c29607ee624151f84ac09f55535010e *src/picosat.h a869a6a74b9c0a1c4c796003c1251d60 *src/probabilistic_boolean_network.c 686e443cfcfa3f597ea866bc25c356e7 *src/random.h 58be262aa256be87d8d8cf3cf63abfb3 *src/reconstruct_network.c 22bc54f938607f08f72f1fbbf7289b7c *src/sat_search.c 0d6515ab8ff7605f16ca10eb5c6fc9e4 *src/sat_search.h 351d201ca2f926bdd1b5f4694de19902 *src/statespace_search.c c085761b2f853545febe7170a3715eb2 *src/statespace_search.h 4d4e389c0ff626a5e0db88416991e94e *src/symbolic_network.c dbbf4848847aefb8b756d749519bdf1d *src/symbolic_network.h a92bedbf4bd0438dab983bd4713b6456 *src/symbolic_simulator.c 460b4e88a7af5ba2c60231ca9f3644c8 *src/uthash.h e5183b47ee9e7fb9417498d986c59e12 *vignettes/BoolNet_package_vignette.Snw 45d3f76bd49d22f8d6e0ad5cc2a14c62 *vignettes/BoolNet_package_vignette.bib cbc02d945670e5381418720262b10955 *vignettes/biotap_initval.png 530409792bed5d5a53140e85554b9d61 *vignettes/biotap_logic.png d4a2fcf1d0a873afde1c021019649014 *vignettes/biotap_model.png e02e5fea28346a3d8162b4feaa6ffb05 *vignettes/biotap_sim_properties.png d6aa77a2d43960ebb98c288990d3fe41 *vignettes/pajek.png ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/build/��������������������������������������������������������������������������������������0000755�0001760�0000144�00000000000�12473311652�012747� 5����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/build/vignette.rds��������������������������������������������������������������������������0000644�0001760�0000144�00000000374�12473311652�015312� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������‹������QMK1Í~ØÚ‚ ô&ò öè¥A¤zðV†ÍlIM3KvêâÍ_nÕ]±QÁùHxof^ò8WJ¥*KR•fRf ñsñDåj&ùòšÈÝ"¯¨ž`ƒëg»ñȌŽï"ìU‰ Ö¡ÑÖs ³¯Ø’×LœÓ;ØRÐ5ï¶šj=´þ÷ÄÆÔöâOìJ¤->Ÿ ±<ýÆ<ñ°Ã6j7-±Aoúë·ßùÉ!¢œÞàKGaäa&&_Ê£Œs,²»r9”É*ÞáGÿ£ýgºbÔpÖä«„ƒX,´rÐÆBçŠ:¿ßû·›Ã` ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/DESCRIPTION���������������������������������������������������������������������������������0000644�0001760�0000144�00000002334�12473324601�013356� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Package: BoolNet Type: Package Title: Construction, Simulation and Analysis of Boolean Networks Version: 2.1.1 Date: 2015-02-25 Authors@R: c(person("Christoph", "Müssel", role = "aut"), person("Martin", "Hopfensitz", role = "aut"), person("Dao", "Zhou", role = "aut"), person(c("Hans", "A."), "Kestler", email = "hans.kestler@uni-ulm.de", role = c("aut", "cre")), person("Armin", "Biere", role = "ctb", comment="contributed PicoSAT code"), person(c("Troy", "D."), "Hanson", role = "ctb", comment="contributed uthash macros")) Imports: igraph (>= 0.6), XML Description: Provides methods to reconstruct and generate synchronous, asynchronous, probabilistic and temporal Boolean networks, and to analyze and visualize attractors in Boolean networks. License: Artistic-2.0 LazyLoad: yes Encoding: UTF-8 Packaged: 2015-02-25 09:19:38 UTC; muessel Author: Christoph Müssel [aut], Martin Hopfensitz [aut], Dao Zhou [aut], Hans A. Kestler [aut, cre], Armin Biere [ctb] (contributed PicoSAT code), Troy D. Hanson [ctb] (contributed uthash macros) Maintainer: Hans A. Kestler <hans.kestler@uni-ulm.de> NeedsCompilation: yes Repository: CRAN Date/Publication: 2015-02-25 11:52:49 ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/man/����������������������������������������������������������������������������������������0000755�0001760�0000144�00000000000�12473107364�012426� 5����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/man/reconstructNetwork.Rd�������������������������������������������������������������������0000644�0001760�0000144�00000014673�12473107364�016655� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{reconstructNetwork} \alias{reconstructNetwork} \title{ Reconstruct a Boolean network from time series of measurements } \description{ Reconstructs a Boolean network from a set of time series or from a transition table using the best-fit extension algorithm or the REVEAL algorithm. } \usage{ reconstructNetwork(measurements, method = c("bestfit", "reveal"), maxK = 5, requiredDependencies = NULL, excludedDependencies = NULL, perturbations=NULL, readableFunctions=FALSE, allSolutions=FALSE, returnPBN=FALSE) } \arguments{ \item{measurements}{ This can either be an object of class \code{TransitionTable} as returned by \if{latex}{\cr}\code{\link{getTransitionTable}}, or a set of time series of measurements. In this case, \code{measurements} must be a list of matrices, each corresponding to one time series. Each row of these matrices contains measurements for one gene on a time line, i. e. column \code{i+1} contains the successor states of column \code{i}. The genes must be the same for all matrices in the list. Real-valued time series can be binarized using \code{\link{binarizeTimeSeries}}. } \item{method}{ This specifies the reconstruction algorithm to be used. If set to "bestfit", Laehdesmaeki's Best-Fit Extension algorithm is employed. This algorithm is an improvement of the algorithm by Akutsu et al. with a lower runtime complexity. It determines the functions with a minimal error for each gene. If set to "reveal", Liang's REVEAL algorithm is used. This algorithm searches for relevant input genes using the mutual information between the input genes and the output gene. } \item{maxK}{ The maximum number of input genes for one gene to be tested. Defaults to 5. } \item{requiredDependencies}{An optional specification of known dependencies that must be included in reconstructed networks. This is a named list containing a vector of gene names (regulators) for each target.} \item{excludedDependencies}{Analogous to \code{requiredDependencies}, this is an optional specification of dependencies that must not be included in reconstructed networks. This is a named list containing a vector of gene names (prohibited regulators) for each target.} \item{perturbations}{If \code{measurements} contains data obtained from perturbation experiments (i.e. different targeted knock-outs and overexpressions), this optional parameter is a matrix with one column for each entry in \code{measurements} and a row for each gene. A matrix entry is 0 for a knock-out of the corresponding gene in the corresponding time series, 1 for overexpression, and NA or -1 for no perturbation. If \code{measurements} has an element \code{perturbations} and this argument is not specified, the element of \code{measurements} is taken. } \item{readableFunctions}{ If this is true, readable DNF representations of the truth tables of the functions are generated. These DNF are displayed when the network is printed. The DNF representations are not minimized and can thus be very long. If set to FALSE, the truth table result column is displayed. } \item{allSolutions}{ If this is true, all solutions with the minimum error and up to \code{maxK} inputs are returned. By default, \code{allSolutions=FALSE}, which means that only the solutions with both minimum error and minimum \code{k} are returned. } \item{returnPBN}{Specifies the way unknown values in the truth tables of the transition functions ("don't care" values) are processed. If \code{returnPBN=TRUE}, all possible functions are enumerated recursively, and an object of class \code{ProbabilisticBooleanNetwork} is returned. This can consume a high amount of memory and computation time. If \code{returnPBN=FALSE}, the transition functions may contain "don't care" (*) values, and an object of class \code{BooleanNetworkCollection} is returned. \code{returnPBN=TRUE} corresponds to the behaviour prior to version 2.0. The default value is \code{returnPBN=FALSE}. } } \details{ Both algorithms iterate over all possible input combinations. While Best-Fit Extension is capable of returning functions that do not perfectly explain the measurements (for example, if there are inconsistent measurements or if \code{maxK} was specified too small), REVEAL only finds functions that explain all measurements. For more information, please refer to the cited publications. } \value{ If \code{returnPBN=TRUE}, the function returns an object of class \code{ProbabilisticBooleanNetwork}, with each alternative function of a gene having the same probability. The structure is described in detail in \code{\link{loadNetwork}}. In addition to the standard components, each alternative transition function has a component \code{error} which stores the error of the function on the input time series data. If \code{returnPBN=FALSE}, the function returns an object of class \code{BooleanNetworkCollection} that has essentially the same structure as \code{ProbabilisticBooleanNetwork}, but does not store probabilities and keeps "don't care" values in the functions. Due to the "don't care" (*) values, this collection cannot be simulated directly. However, a specific Boolean network of class \code{BooleanNetwork} can be extracted from both \code{BooleanNetworkCollection} and \code{ProbabilisticBooleanNetwork} structures using \code{\link{chooseNetwork}}. } \references{ H. Laehdesmaeki, I. Shmulevich and O. Yli-Harja (2003), On Learning Gene-Regulatory Networks Under the Boolean Network Model. Machine Learning 52:147--167. T. Akutsu, S. Miyano and S. Kuhara (2000). Inferring qualitative relations in genetic networks and metabolic pathways. Bioinformatics 16(8):727--734. S. Liang, S. Fuhrman and R. Somogyi (1998), REVEAL, a general reverse engineering algorithm for inference of genetic network architectures. Pacific Symposium on Biocomputing 3:18--29. } \seealso{ \code{\link{generateTimeSeries}}, \code{\link{binarizeTimeSeries}}, \code{\link{chooseNetwork}} } \examples{ # load example data data(yeastTimeSeries) # perform binarization with k-means bin <- binarizeTimeSeries(yeastTimeSeries) # reconstruct networks from binarized measurements net <- reconstructNetwork(bin$binarizedMeasurements, method="bestfit", maxK=3, returnPBN=TRUE) # print reconstructed net print(net) # plot reconstructed net plotNetworkWiring(net) } \keyword{probabilistic Boolean network PBN reconstruction REVEAL best-fit extension} ���������������������������������������������������������������������BoolNet/man/plotAttractors.Rd�����������������������������������������������������������������������0000644�0001760�0000144�00000014544�12473107364�015752� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{plotAttractors} \Rdversion{1.1} \alias{plotAttractors} \title{ Plot state tables or transition graphs of attractors } \description{ Visualizes attractors, either by drawing a table of the involved states in two colors, or by drawing a graph of transitions between the states of the attractor. } \usage{ plotAttractors(attractorInfo, subset, title = "", mode = c("table","graph"), grouping = list(), plotFixed = TRUE, onColor = "green", offColor = "red", layout = layout.circle, drawLabels = TRUE, drawLegend = TRUE, ask = TRUE, reverse = FALSE, ...) } \arguments{ \item{attractorInfo}{ An object of class \code{AttractorInfo}, as returned by \code{\link{getAttractors}}, or an object of class \code{SymbolicSimulation}, as returned by \code{\link{simulateSymbolicModel}}. } \item{subset}{An subset of attractors to be plotted. This is a vector of attractor indices in \code{attractorInfo}.} \item{title}{ An optional title for the plot } \item{mode}{Switches between two kinds of attractor plots. See Details for more information. Default is "table".} \item{grouping}{This optional parameter is only used if \code{mode="table"} and specifies a structure to form groups of genes in the plot. This is a list with the following elements: \describe{ \item{class}{A vector of names for the groups. These names will be printed in the region belonging to the group in the plot.} \item{index}{A list with the same length as \code{class}. Each element is a vector of gene names or gene indices belonging to the group.}} } \item{plotFixed}{This optional parameter is only used if \code{mode="table"}. If this is true, genes with fixed values are included in the plot. Otherwise, these genes are not drawn. } \item{onColor}{This optional parameter is only used if \code{mode="table"} and specifies the color value for the 1/ON values in the table. Defaults to green. } \item{offColor}{This optional parameter is only used if \code{mode="table"} and specifies the color value for the 0/OFF values in the table. Defaults to red. } \item{layout}{If \code{mode="graph"}, this parameter specifies a layouting function that determines the placement of the nodes in the graph. Please refer to the \code{\link[igraph]{layout}} manual entry in the \pkg{igraph} package for further details. By default, the circle layout is used. } \item{drawLabels}{This parameter is only relevant if \code{mode="graph"}. It determines whether the nodes of the graph are annotated with the corresponding values of the genes in the attractor states. } \item{drawLegend}{Specifies whether a color key for the ON/OFF states is drawn if \code{mode="table"}. Defaults to \code{TRUE}. } \item{ask}{ If set to true, the plot function will prompt for a user input for each new plot that is shown on an interactive device (see \code{link{par("ask")}}). } \item{reverse}{ Specifies the order of the genes in the plot. By default, the first gene is placed in the first row of the plot. If \code{reverse=TRUE} (which was the default until \pkg{BoolNet} version 2.0.2), the first gene in the network is placed in the bottom row of the plot. } \item{\dots}{ Further graphical parameters to be passed to \code{\link[igraph:plot.graph]{plot.igraph}} if \code{mode="graph"}. } } \details{ This function comprises two different types of plots: The "table" mode visualizes the gene values of the states in the attractor and is only suited for synchronous or steady-state attractors. Complex asynchronous attractors are omitted in this mode. Attractors in \code{attractorInfo} are first grouped by length. Then, a figure is plotted to the currently selected device for each attractor length (i.e. one plot with all attractors consisting of 1 state, one plot with all attractors consisting of 2 states, etc.). If \code{ask=TRUE} and the standard X11 output device is used, the user must confirm that the next plot for the next attractor size should be shown. The figure is a table with the genes in the rows and the states of the attractors in the columns. Cells of the table are (by default) red for 0/OFF values and green for 1/ON values. If \code{grouping} is set, the genes are rearranged according to the indices in the group, horizontal separation lines are plotted between the groups, and the group names are printed. The "graph" mode visualizes the transitions between different states. It creates a graph in which the vertices are the states in the attractor and the edges are state transitions among these states. This mode can visualize all kinds of attractors, including complex/loose attractors. One plot is drawn for each attractor. As before, this means that on the standard output device, only the last plot is displayed unless you set \code{par(mfrow=c(...))} accordingly. } \value{ If \code{mode="table"}, a list of matrices corresponding to the tables is returned. Each of these matrices has the genes in the rows and the states of the attractors in the columns. If \code{mode="graph"}, a list of objects of class \code{igraph} is returned. Each of these objects describes the graph for one attractor. } \seealso{ \code{\link{getAttractors}}, \code{\link{simulateSymbolicModel}}, \code{\link{attractorsToLaTeX}}, \code{\link{plotSequence}}, \code{\link{sequenceToLaTeX}} } \examples{ # load example data data(cellcycle) # get attractors attractors <- getAttractors(cellcycle) # calculate number of different attractor lengths, # and plot attractors side by side in "table" mode par(mfrow=c(1, length(table(sapply(attractors$attractors, function(attractor) { length(attractor$involvedStates) }))))) plotAttractors(attractors) # plot attractors in "graph" mode par(mfrow=c(1, length(attractors$attractors))) plotAttractors(attractors, mode="graph") # identify asynchronous attractors attractors <- getAttractors(cellcycle, type="asynchronous") # plot attractors in "graph" mode par(mfrow=c(1, length(attractors$attractors))) plotAttractors(attractors, mode="graph") } % Add one or more standard keywords, see file 'KEYWORDS' in the % R documentation directory. \keyword{ Boolean network attractor cycle basin transition state graph plot} ������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/man/igf.Rd����������������������������������������������������������������������������������0000644�0001760�0000144�00000001673�12466166264�013477� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{igf} \alias{igf} \docType{data} \title{ Boolean model of the IGF pathway } \description{ A small Boolean model of major components of the IGF (Insuline-like growth receptor) pathway. Through IRS, IGF activates the well-known PI3K-Akt-mTOR signalling cascade. This cascade is finally inactivated by a feedback inhibion of IRS. The model simplifies several complex formations and cascades by representing them as single nodes and specifying time delays instead. It therefore demonstrates the usage of temporal Boolean networks in \pkg{BoolNet}. } \usage{data(igf)} \format{ This data set consists of a variable \code{igf} of class \code{SymbolicBooleanNetwork} with 5 genes. The class \code{SymbolicBooleanNetwork} is described in more detail in \code{\link{loadNetwork}}. } \examples{ data(igf) sim <- simulateSymbolicModel(igf) plotAttractors(sim) } \keyword{datasets IGF pathway symbolic Boolean network time delays} ���������������������������������������������������������������������BoolNet/man/stateTransition.Rd����������������������������������������������������������������������0000644�0001760�0000144�00000007357�12466166264�016132� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{stateTransition} \Rdversion{1.1} \alias{stateTransition} \title{ Perform a transition to the next state } \description{ Calculates the next state in a supplied network for a given current state } \usage{ stateTransition(network, state, type = c("synchronous","asynchronous","probabilistic"), geneProbabilities, chosenGene, chosenFunctions, timeStep = 0) } \arguments{ \item{network}{ A network structure of class \code{BooleanNetwork}, \code{SymbolicBooleanNetwork} or \code{ProbabilisticBooleanNetwork}. These networks can be read from files by \code{\link{loadNetwork}}, generated by \if{latex}{\cr}\code{\link{generateRandomNKNetwork}}, or reconstructed by \code{\link{reconstructNetwork}}. } \item{state}{ The current state of the network, encoded as a vector with one 0-1 element for each gene. If \code{network} is of class \code{SymbolicBooleanNetwork} and makes use of more than one predecessor state, this can also be a matrix with the genes in the columns and multiple predecessor states in the rows. } \item{type}{The type of transition to be performed. If set to "synchronous", all genes are updated using the corresponding transition functions. If set to "asynchronous", only one gene is updated. This gene is either chosen randomly or supplied in parameter \code{chosenGene}. If set to "probabilistic", one transition function is chosen for each gene, and the genes are updated synchronously. The functions are either chosen randomly depending on their probabilities, or they are supplied in parameter \code{chosenFunctions}. Default is "synchronous" for objects of class \code{BooleanNetwork} and \code{SymbolicBooleanNetwork}, and "probabilistic" for objects of class \code{ProbabilisticBooleanNetwork}.} \item{geneProbabilities}{An optional vector of probabilities for the genes if \code{type="asynchronous"}. By default, each gene has the same probability to be chosen for the next state transition. These probabilities can be modified by supplying a vector of probabilities for the genes which sums up to one.} \item{chosenGene}{If \code{type="asynchronous"} and this parameter is supplied, no random update is performed. Instead, the gene with the supplied name or index is chosen for the next transition.} \item{chosenFunctions}{If \code{type="probabilistic"}, this parameter can contain a set of function indices for each gene. In this case, transition functions are not chosen randomly, but the provided functions are used in the state transition.} \item{timeStep}{An optional parameter that specifies the current time step associated with \code{state}. This is only relevant for networks of class \code{SymbolicBooleanNetwork} that make use of time-dependent predicates (\code{timelt, timeis, timegt}). Otherwise, this parameter is ignored. } } \value{ The subsequent state of the network, encoded as a vector with one 0-1 element for each gene.} \seealso{ \code{\link{loadNetwork}}, \code{\link{generateRandomNKNetwork}}, \code{\link{generateState}} } \examples{ # load example network data(cellcycle) # calculate a synchronous state transition print(stateTransition(cellcycle, c(1,1,1,1,1,1,1,1,1,1))) # calculate an asynchronous state transition of gene CycA print(stateTransition(cellcycle, c(1,1,1,1,1,1,1,1,1,1), type="asynchronous", chosenGene="CycA")) # load probabilistic network data(examplePBN) # perform a probabilistic state transition print(stateTransition(examplePBN, c(0,1,1), type="probabilistic")) } \keyword{state transition Boolean network synchronous update asynchronous update probabilistic Boolean network PBN transition state} ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/man/plotPBNTransitions.Rd�������������������������������������������������������������������0000644�0001760�0000144�00000005376�12473107364�016504� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{plotPBNTransitions} \alias{plotPBNTransitions} \title{ Visualize the transitions in a probabilistic Boolean network } \description{ Visualizes the state transitions and their probabilities in a probabilistic Boolean network. This takes the transition table information calculated by the \code{\link{markovSimulation}} method. Only transitions with non-zero probability are included in the plot. The function requires the \pkg{igraph} package. } \usage{ plotPBNTransitions(markovSimulation, stateSubset, drawProbabilities = TRUE, drawStateLabels = TRUE, layout = layout.fruchterman.reingold, plotIt = TRUE, ...) } \arguments{ \item{markovSimulation}{ An object of class \code{MarkovSimulation}, as returned by \code{\link{markovSimulation}}. As the transition table information in this structure is required, \code{\link{markovSimulation}} must be called with \code{returnTable} set to TRUE. } \item{stateSubset}{ An optional list of states, where each element of the list must be a vector with a 0/1 entry for each gene. If this argument is supplied, the graph only contains the specified states and transitions between these states. } \item{drawProbabilities}{ If set to true, the edges of the graph are annotated with the probabilities of the corresponding transitions. Default is TRUE. } \item{drawStateLabels}{ If set to true, the vertices of the graph are annotated with the gene values of the corresponding states. Defaults to TRUE. } \item{layout}{ A layouting function that determines the placement of the nodes in the graph. Please refer to the \code{\link[igraph]{layout}} manual entry in the \pkg{igraph} package for further details. By default, the Fruchterman-Reingold algorithm is used. } \item{plotIt}{ If this is true, a plot is generated. Otherwise, only an object of class \code{igraph} is returned, but no plot is drawn. } \item{\dots}{ Further graphical parameters to be passed to \code{\link[igraph:plot.graph]{plot.igraph}}. } } \value{ Returns an invisible object of class \code{igraph} containing the wiring graph. } \details{ This function uses the \code{\link[igraph:plot.graph]{plot.igraph}} function from the \pkg{igraph} package. The plots are customizeable using the \code{\dots} argument. For details on possible parameters, please refer to \code{\link[igraph:plot.common]{igraph.plotting}}. } \seealso{ \code{\link{markovSimulation}} } \examples{ # load example network data(examplePBN) # perform a Markov chain simulation sim <- markovSimulation(examplePBN) # plot the transitions and their probabilities plotPBNTransitions(sim) } \keyword{probabilistic Boolean network PBN Boolean network plot transition graph} ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/man/getTransitionTable.Rd�������������������������������������������������������������������0000644�0001760�0000144�00000004367�12466166264�016537� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{getTransitionTable} \Rdversion{1.1} \alias{getTransitionTable} \title{ Retrieve the transition table of a network } \description{ Retrieves the transition table and additional attractor information of a network. } \usage{ getTransitionTable(attractorInfo) } \arguments{ \item{attractorInfo}{ An object of class \code{AttractorInfo}, as returned by \code{\link{getAttractors}}, or of class \code{SymbolicSimulation}, as returned by \code{\link{simulateSymbolicModel}}. As the transition table information in this structure is required, \code{getAttractors} must be called in synchronous mode and with \code{returnTable} set to TRUE. Similarly, \code{simulateSymbolicModel} must be called with \code{returnGraph=TRUE}. } } \details{ Depending on the configuration of the call to \code{getAttractors} or \code{simulateSymbolicModel} that returned \code{attractorInfo}, this function either returns the complete transition table (for exhaustive synchronous search) or the part of the transition table calculated in a heuristic synchronous search. Asynchronous search is not supported, as no transition table is calculated. } \value{ Returns a generic dataframe of the class \code{TransitionTable}. For n genes, the first n columns code for the original state (in this case, the \code{state} parameter), i.e. each column represents the value of one gene. The next n columns code for the successive state after a transition. The column \code{attractorAssignment} indicates the attractor to the state is assigned. If this information is available, the column \code{stepsToAttractor} indicates how many transitions are needed from the original state to the attractor. The table has a row for each possible input state. The \code{TransitionTable} class supports pretty printing using the \code{\link{print}} method. } \seealso{ \code{\link{getStateSummary}}, \code{\link{getBasinOfAttraction}}, \code{\link{getAttractors}}, \code{\link{simulateSymbolicModel}} } \examples{ # load example data data(cellcycle) # get attractors attractors <- getAttractors(cellcycle) # print the transition table print(getTransitionTable(attractors)) } % Add one or more standard keywords, see file 'KEYWORDS' in the % R documentation directory. \keyword{Boolean network transition transition table state} �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/man/getStateSummary.Rd����������������������������������������������������������������������0000644�0001760�0000144�00000004117�12466166264�016064� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{getStateSummary} \Rdversion{1.1} \alias{getStateSummary} %- Also NEED an '\alias' for EACH other topic documented here. \title{ Retrieve summary information on a state } \description{ Returns information on the supplied state, i.e. the successive state after a transition, the (synchronous) attractor to which the state leads, and the distance to this attractor. } \usage{ getStateSummary(attractorInfo, state) } \arguments{ \item{attractorInfo}{ An object of class \code{AttractorInfo}, as returned by \code{\link{getAttractors}}, or of class \code{SymbolicSimulation}, as returned by \code{\link{simulateSymbolicModel}}. As the transition table information in this structure is required, \code{getAttractors} must be called in synchronous mode and with \code{returnTable} set to TRUE. Similarly, \code{simulateSymbolicModel} must be called with \code{returnGraph=TRUE}. } \item{state}{ A 0-1 vector with n elements (where n is the number of genes in the underlying networks) describing the state. } } \value{ Returns a generic dataframe of the class \code{TransitionTable}. For n genes, the first n columns code for the original state (in this case, the \code{state} parameter), i.e. each column represents the value of one gene. The next n columns code for the successive state after a transition. The column \code{attractorAssignment} indicates the attractor to the state is assigned. If this information is available, the column \code{stepsToAttractor} indicates how many transitions are needed from the original state to the attractor. In this case, the table has only one row describing the supplied state. The \code{TransitionTable} class supports pretty printing using the \code{\link{print}} method. } \seealso{ \code{\link{getBasinOfAttraction}}, \code{\link{getTransitionTable}}, \code{\link{getAttractors}}, \code{\link{simulateSymbolicModel}} } \examples{ # load example data data(cellcycle) # get attractors attractors <- getAttractors(cellcycle) # print information for an arbitrary state print(getStateSummary(attractors, c(1,1,1,1,1,1,1,1,1,1))) } \keyword{Boolean network transition state} �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/man/plotNetworkWiring.Rd��������������������������������������������������������������������0000644�0001760�0000144�00000004062�12473107364�016427� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{plotNetworkWiring} \alias{plotNetworkWiring} \title{ Plot the wiring of a Boolean network } \description{ Plots the wiring of genes (i.e. the gene dependencies) of a synchronous or probabilistic Boolean network. The nodes of the graph are the genes, and the directed edges show the dependencies of the genes. This requires the \pkg{igraph} package. } \usage{ plotNetworkWiring(network, layout = layout.fruchterman.reingold, plotIt = TRUE, ...) } \arguments{ \item{network}{ A network structure of class \code{BooleanNetwork}, \code{SymbolicBooleanNetwork} or \code{ProbabilisticBooleanNetwork}. These networks can be read from files by \code{\link{loadNetwork}}, generated by \if{latex}{\cr}\code{\link{generateRandomNKNetwork}}, or reconstructed by \code{\link{reconstructNetwork}}. } \item{layout}{ A layouting function that determines the placement of the nodes in the graph. Please refer to the \code{\link[igraph]{layout}} manual entry in the \pkg{igraph} package for further details. By default, the Fruchterman-Reingold algorithm is used. } \item{plotIt}{ If this is true, a plot is generated. Otherwise, only an object of class \code{igraph} is returned, but no plot is drawn. } \item{\dots}{ Further graphical parameters to be passed to \code{\link[igraph:plot.graph]{plot.igraph}}. } } \details{ This function uses the \code{\link[igraph:plot.graph]{plot.igraph}} function from the \pkg{igraph} package. The plots are customizeable using the \code{\dots} argument. For details on possible parameters, please refer to \code{\link[igraph:plot.common]{igraph.plotting}}. } \value{ Returns an invisible object of class \code{igraph} containing the wiring graph. } \seealso{ \code{\link{loadNetwork}}, \code{\link{generateRandomNKNetwork}}, \code{\link{reconstructNetwork}}, \code{\link{plotStateGraph}}, \code{\link[igraph:plot.graph]{igraph.plotting}} } \examples{ # load example data data(cellcycle) # plot wiring graph plotNetworkWiring(cellcycle) } \keyword{wiring graph plot Boolean network dependencies} ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/man/markovSimulation.Rd���������������������������������������������������������������������0000644�0001760�0000144�00000007115�12473107364�016265� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{markovSimulation} \alias{markovSimulation} %- Also NEED an '\alias' for EACH other topic documented here. \title{ Identify important states in probabilistic Boolean networks } \description{ Identifies important states in probabilistic Boolean networks (PBN) using a Markov chain simulation } \usage{ markovSimulation(network, numIterations = 1000, startStates = list(), cutoff = 0.001, returnTable = TRUE) } \arguments{ \item{network}{ An object of class \code{ProbabilisticBooleanNetwork} or \code{BooleanNetwork} whose transitions are simulated } \item{numIterations}{ The number of iterations for the matrix multiplication, which corresponds to the number of state transitions to simulate } \item{startStates}{ An optional list of start states. Each entry of the list must be a vector with a 0/1 value for each gene. If specified, the simulation is restricted to the states reachable from the supplied start states. Otherwise, all states are considered. } \item{cutoff}{ The cutoff value used to determine if a probability is 0. All output probabilities less than or equal to this value are set to 0. } \item{returnTable}{ If set to true, a transition table annotated with the probabilities for the transitions is included in the results. This is required by \code{\link{plotPBNTransitions}} and \code{\link{getTransitionProbabilities}}. } } \details{ The algorithm identifies important states by performing the following steps: First, a Markov matrix is calculated from the set of transition functions, where each entry of the matrix specifies the probability of a state transition from the state belonging to the corresponding row to the state belonging to the corresponding column. A vector is initialized with uniform probability for all states (or -- if specified -- uniform probability for all start states) and repeatedly multiplied with the Markov matrix. The method returns all states with non-zero probability in this vector. See the references for more details. } \value{ An object of class \code{MarkovSimulation} with the following components: \item{reachedStates}{A data frame with one state in each row. The first columns specify the gene values of the state, and the last column holds the probability that the corresponding state is reached after \code{numIterations} transitions. Only states with a probability greater than \code{cutoff} are included in this table.} \item{genes}{A vector of gene names of the input network} \item{table}{If \code{returnTable=TRUE}, this structure holds a table of transitions with the corresponding probabilities that transitions are chosen. This is a list with the following components: \describe{ \item{initialStates}{A matrix of encoded start states of the transitions} \item{nextStates}{The encoded successor states of the transitions} \item{probabilities}{The probabilities that the transitions are chosen in a single step} }} } \references{ I. Shmulevich, E. R. Dougherty, S. Kim, W. Zhang (2002), Probabilistic Boolean networks: a rule-based uncertainty model for gene regulatory networks. Bioinformatics 18(2):261--274. } \seealso{ \code{\link{reconstructNetwork}}, \code{\link{plotPBNTransitions}}, \code{\link{getTransitionProbabilities}} } \examples{ # load example network data(examplePBN) # perform a Markov chain simulation sim <- markovSimulation(examplePBN) # print the relevant states and transition probabilities print(sim) # plot the transitions and their probabilities plotPBNTransitions(sim) } \keyword{probabilistic Boolean network PBN Markov chain } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/man/symbolicToTruthTable.Rd�����������������������������������������������������������������0000644�0001760�0000144�00000002157�12466166264�017053� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{symbolicToTruthTable} \alias{symbolicToTruthTable} \title{ Convert a symbolic network into a truth table representation } \description{ Converts an object of class \code{SymbolicBooleanNetwork} into an object of class \code{BooleanNetwork} by generating truth tables from the symbolic expression trees. } \usage{ symbolicToTruthTable(network) } \arguments{ \item{network}{ An object of class \code{SymbolicBooleanNetwork} to be converted. } } \details{ The symbolic network \code{network} must not contain temporal operators, as these are not compatible with the truth table representation in \code{BooleanNetwork} objects. } \value{ Returns an object of class \code{BooleanNetwork}, as described in \code{\link{loadNetwork}}. } \seealso{ \code{\link{truthTableToSymbolic}}, \code{\link{loadNetwork}} } \examples{ # Convert a truth table representation into a # symbolic representation and back data(cellcycle) symbolicNet <- truthTableToSymbolic(cellcycle) print(symbolicNet) ttNet <- symbolicToTruthTable(symbolicNet) print(cellcycle) } \keyword{Boolean network symbolic Boolean network conversion} �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/man/yeastTimeSeries.Rd����������������������������������������������������������������������0000644�0001760�0000144�00000002627�12466166264�016051� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{yeastTimeSeries} \alias{yeastTimeSeries} \docType{data} \title{ Yeast cell cycle time series data } \description{ Preprocessed time series measurements of four genes from the yeast cell cycle data by Spellman et al. } \usage{data(yeastTimeSeries)} \format{ A matrix with 14 measurements for the genes Fhk2, Swi5, Sic1, and Clb1. Each gene is a row of the matrix, and each column is a measurement. } \details{ The data were obtained from the web site of the yeast cell cycle analysis project at \url{http://genome-www.stanford.edu/cellcycle}. The time series synchronized with the elutriation method were extracted for the genes Fhk2, Swi5, SIC1, and Clb1. In a preprocessing step, missing values were imputed by taking the means of the measurements of the same genes at neighbouring time points. } \source{ P. T. Spellman, G. Sherlock, M. Q. Zhang, V. R. Iyer, K. Anders, M. B. Eisen, P. O. Brown, D. Botstein, B. Futcher (1998), Comprehensive Identification of Cell Cycle-regulated Genes of the Yeast Saccharomyces cerevisiae by Microarray Hybridization. Molecular Biology of the Cell 9(12):3273--3297. Yeast cell cycle analysis project web site: \url{http://genome-www.stanford.edu/cellcycle} } \examples{ data(yeastTimeSeries) # the data set is stored in a variable called 'yeastTimeSeries' print(yeastTimeSeries) } \keyword{datasets yeast cell cycle time series binarization binarize} ���������������������������������������������������������������������������������������������������������BoolNet/man/binarizeTimeSeries.Rd�������������������������������������������������������������������0000644�0001760�0000144�00000013357�12466166264�016531� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{binarizeTimeSeries} \alias{binarizeTimeSeries} \title{ Binarize a set of real-valued time series } \description{ Binarizes a set of real-valued time series using k-means clustering, edge detection, or scan statistics. } \usage{ binarizeTimeSeries(measurements, method = c("kmeans","edgeDetector","scanStatistic"), nstart = 100, iter.max = 1000, edge = c("firstEdge","maxEdge"), scaling = 1, windowSize = 0.25, sign.level = 0.1, dropInsignificant = FALSE) } \arguments{ \item{measurements}{ A list of matrices, each corresponding to one time series. Each row of these matrices contains real-valued measurements for one gene on a time line, i. e. column \code{i+1} contains the successor states of column \code{i+1}. The genes must be the same for all matrices in the list. } \item{method}{The employed binarization technique. "kmeans" uses k-means clustering for binarization. "edgeDetector" searches for a large gradient in the sorted measurements. "scanStatistic" searches for accumulations in the measurements. See Details for descriptions of the techniques.} \item{nstart}{ If \code{method="kmeans"}, this is the number of restarts for k-means. See \code{\link{kmeans}} for details. } \item{iter.max}{ If \code{method="kmeans"}, the maximum number of iterations for k-means. See \code{\link{kmeans}} for details. } \item{edge}{If \code{method="edgeDetector"}, this decides which of the edges is used as a threshold for binarization. If set to "firstEdge",the binarization threshold is the first combination of two successive sorted values whose difference exceeds a predefined value (average gradient * \code{scaling}). The parameter \code{scaling} can be used to adjust this value. If set to "maxEdge", the binarization threshold is the position of the edge with the overall highest gradient.} \item{scaling}{If \code{method="edgeDetector"} and \code{edge="firstEdge"}, this holds the scaling factor used for adjustment of the average gradient.} \item{windowSize}{If \code{method="scanStatistic"}, this specifies the size of the scanning window (see Details). The size is given as a fraction of the whole range of input values for a gene. Default is 0.25.} \item{sign.level}{If \code{method="scanStatistic"}, the significance level used for the scan statistic (see Details). } \item{dropInsignificant}{ If this is set to true, genes whose binarizations are insignificant in the scan statistic (see Details) are removed from the binarized time series. Otherwise, a warning is printed if such genes exist. } } \details{ This method supports three binarization techniques: \describe{ \item{k-means clustering}{For each gene, k-means clusterings are performed to determine a good separation of groups. The values belonging to the cluster with the smaller centroid are set to 0, and the values belonging to the greater centroid are set to 1.} \item{Edge detector}{This approach first sorts the measurements for each gene. In the sorted measurements, the algorithm searches for differences of two successive values that satisfy a predefined condition: If the "firstEdge" method was chosen, the pair of values whose difference exceeds the scaled average gradient of all values is chosen and used as maximum and minimum value of the two groups. If the "maxEdge" method was chosen, the largest difference between two successive values is taken. For details, see Shmulevich et al.} \item{Scan statistic}{The scan statistic assumes that the measurements for each gene are uniformly and independently distributed independently over a certain range. The scan statistic shifts a scanning window across the data and decides for each window position whether there is an unusual accumulation of data points based on an approximated test statistic (see Glaz et al.). The window with the smallest p-value is remembered. The boundaries of this window form two thresholds, from which the value that results in more balanced groups is taken for binarization. Depending on the supplied significance level, gene binarizations are rated according to the p-value of the chosen window.} } } \value{ Returns a list with the following elements: \item{binarizedMeasurements}{A list of matrices with the same structure as \code{measurements} containing the binarized time series measurements} \item{reject}{If \code{method="scanStatistic"}, a Boolean vector indicating for each gene whether the scan statistic algorithm was able to find a significant binarization window (FALSE) or not (TRUE). Rejected genes should probably be excluded from the data.} \item{thresholds}{The thresholds used for binarization} } \references{ I. Shmulevich and W. Zhang (2002), Binary analysis and optimization-based normalization of gene expression data. Bioinformatics 18(4):555--565. J. Glaz, J. Naus, S. Wallenstein (2001), Scan Statistics. New York: Springer. } \seealso{ \code{\link{reconstructNetwork}} } \examples{ # load test data data(yeastTimeSeries) # perform binarization with k-means bin <- binarizeTimeSeries(yeastTimeSeries) print(bin) # perform binarization with scan statistic # - will find and remove 2 insignificant genes! bin <- binarizeTimeSeries(yeastTimeSeries, method="scanStatistic", dropInsignificant=TRUE, sign.level=0.2) print(bin) # perform binarization with edge detector bin <- binarizeTimeSeries(yeastTimeSeries, method="edgeDetector") print(bin) # reconstruct a network from the data reconstructed <- reconstructNetwork(bin$binarizedMeasurements, method="bestfit", maxK=4) print(reconstructed) } \keyword{Boolean network binarization binarize k-means edge detector scan statistic} ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/man/toSBML.Rd�������������������������������������������������������������������������������0000644�0001760�0000144�00000005015�12466166264�014024� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{toSBML} \alias{toSBML} \title{ Export a network to SBML } \description{ Exports a synchronous or asynchronous Boolean network to SBML with the \code{sbml-qual} extension package. } \usage{ toSBML(network, file, generateDNFs = FALSE, saveFixed = TRUE) } \arguments{ \item{network}{ An object of class \code{BooleanNetwork} or \code{SymbolicBooleanNetwork} to be exported } \item{file}{ The name of the SBML file to be created } \item{generateDNFs}{ If \code{network} is a \code{BooleanNetwork} object, this parameter specifies whether formulae in Disjunctive Normal Form are exported instead of the expressions that describe the transition functions. If set to FALSE, the original expressions are exported. If set to "canonical", a canonical Disjunctive Normal Form is generated from each truth table. If set to "short", the canonical DNF is minimized by joining terms (which can be time-consuming for functions with many inputs). If set to TRUE, a short DNF is generated for functions with up to 12 inputs, and a canonical DNF is generated for functions with more than 12 inputs. For objects of class \code{SymbolicBooleanNetwork}, this parameter is ignored. } \item{saveFixed}{ If set to TRUE, knock-outs and overexpression of genes override their transition functions. That is, if a gene in the network is fixed to 0 or 1, this value is exported, regardless of the transition function. If set to FALSE, the transition function is exported. Defaults to TRUE. } } \details{ The export creates an SBML file describing a general logical model that corresponds to the Boolean network. Importing tools must support the \code{sbml-qual} extension package version 1.0. The export translates the expressions that describe the network transition functions to a MathML description. If these expressions cannot be parsed or \code{generateDNFs} is true, a DNF representation of the transition functions is generated and exported. For symbolic networks, temporal operators and delays of more than one time step are not allowed, as they are not compatible with SBML. } \references{ \url{http://sbml.org/Documents/Specifications/SBML_Level_3/Packages/Qualitative_Models_(qual)} } \seealso{ \code{\link{loadSBML}}, \code{\link{loadNetwork}}, \code{\link{saveNetwork}}, \code{\link{toPajek}} } \examples{ # load the cell cycle network data(cellcycle) # export the network to SBML toSBML(cellcycle, file="cellcycle.sbml") # reimport the model print(loadSBML("cellcycle.sbml")) } \keyword{SBML Boolean network file export} �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/man/generationFunctions.Rd������������������������������������������������������������������0000644�0001760�0000144�00000002756�12466166264�016761� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{generationFunctions} \alias{generateCanalyzing} \alias{generateNestedCanalyzing} \title{ Generation functions for biologically relevant function classes } \description{ These generation functions randomly generate canalyzing or nested canalyzing Boolean functions. These functions are usually not called directly, but are supplied to the \code{functionGeneration} parameter of \code{\link{generateRandomNKNetwork}}. } \usage{ generateCanalyzing(input) generateNestedCanalyzing(input) } \arguments{ \item{input}{ A vector of input gene indices for the Boolean function } } \value{ A binary vector corresponding to the result column of the truth table that represents the canalyzing/nested canalyzing function. } \references{ S. Kauffman and C. Peterson and B. Samuelsson and C. Troein (2004), Genetic networks with canalyzing Boolean rules are always stable. PNAS 101(49):7102--17107. } \seealso{ \code{\link{generateRandomNKNetwork}} } \examples{ # generate a random network with canalyzing functions net1 <- generateRandomNKNetwork(n=10, k=5, functionGeneration="generateCanalyzing") print(net1) # generate a random network with nested canalyzing functions net2 <- generateRandomNKNetwork(n=10, k=5, functionGeneration="generateNestedCanalyzing") print(net2) } \keyword{canalyzing function nested canalyzing function, random network} ������������������BoolNet/man/fixGenes.Rd�����������������������������������������������������������������������������0000644�0001760�0000144�00000003006�12466166264�014472� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{fixGenes} \alias{fixGenes} \title{ Simulate knocked-out or over-expressed genes } \description{ Simulates knocked-out or over-expressed genes by fixing the values of genes to 0 or 1, or turn off knock-out or over-expression of genes. } \usage{ fixGenes(network, fixIndices, values) } \arguments{ \item{network}{ The original network of class \code{BooleanNetwork}, \if{latex}{\cr} \code{SymbolicBooleanNetwork} or \code{ProbabilisticBooleanNetwork} containing the genes to be fixed } \item{fixIndices}{ A vector of names or indices of the genes to be fixed } \item{values}{ Either one single value, or a vector with the same length as \code{fixIndices}. For each gene, a value of 1 means that the gene is always turned on (over-expressed), a value of 0 means that the gene is always turned off (knocked-out), and a value of -1 means that the gene is not fixed. } } \value{ Depending on the input, an object of class \code{BooleanNetwork}, \code{SymbolicBooleanNetwork} or \code{ProbabilisticBooleanNetwork} containing the fixed genes is returned. These classes are described in more detail in \code{\link{loadNetwork}}. } \seealso{ \code{\link{loadNetwork}}} \examples{ # load example data data(cellcycle) # knock out gene CycD (index 1) net <- fixGenes(cellcycle, 1, 0) # or net <- fixGenes(cellcycle, "CycD", 0) # get attractors by exhaustive search attractors <- getAttractors(net) print(attractors) } \keyword{Boolean network probabilistic Boolean network PBN knock-out over-expression fixed gene fix} ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/man/generateState.Rd������������������������������������������������������������������������0000644�0001760�0000144�00000003200�12466166264�015511� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{generateState} \alias{generateState} \title{ Generate a state vector from single gene values } \description{ This function provides a simple interface to generate full state vectors by specifying only the genes of interest. For example, only those genes that are active can be specified, while the others are set to a default value. } \usage{ generateState(network, specs, default = 0) } \arguments{ \item{network}{ An network of class \code{BooleanNetwork}, \code{SymbolicBooleanNetwork} or \code{ProbabilisticBooleanNetwork} for which a state is generated. } \item{specs}{ A named vector or list specifying the genes to be set. Here, the names of the elements correspond to the gene names, and the elements correspond to the gene values. The function can also generate a matrix of states if the elements of \code{specs} are vectors of values (of the same length). } \item{default}{ The default value used for the unspecified genes (usually 0). } } \value{ Returns a full state vector with one entry for each gene of the network, or a matrix with one state in each row if \code{specs} contains vectors of state values. } \seealso{ \code{\link{getAttractors}}, \code{\link{simulateSymbolicModel}}, \code{\link{stateTransition}} } \examples{ # load cell cycle network data(cellcycle) # generate a state in which only CycD and CycA are active state <- generateState(cellcycle, c("CycD"=1, "CycA"=1)) print(state) # use the state as a start state for attractor search print(getAttractors(cellcycle, startStates=list(state))) } \keyword{state Boolean network probabilistic Boolean network PBN} ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/man/getBasinOfAttraction.Rd�����������������������������������������������������������������0000644�0001760�0000144�00000004576�12466166264�017011� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{getBasinOfAttraction} \Rdversion{1.1} \alias{getBasinOfAttraction} \title{ Get states in basin of attraction } \description{ Extracts information on all states in the basin of a supplied attractor } \usage{ getBasinOfAttraction(attractorInfo, attractorNo) } \arguments{ \item{attractorInfo}{ An object of class \code{AttractorInfo}, as returned by \code{\link{getAttractors}}, or of class \code{SymbolicSimulation}, as returned by \code{\link{simulateSymbolicModel}}. As the transition table information in this structure is required, \code{getAttractors} must be called in synchronous mode and with \code{returnTable} set to TRUE. Similarly, \code{simulateSymbolicModel} must be called with \code{returnGraph=TRUE}. } \item{attractorNo}{ The index of the attractor in \code{attractorInfo} whose basin should be identified } } \details{ The function outputs a transition table containing only the states that are contained in the basin of attraction, and displays additional information on these states. If \code{attractorInfo} is the result of an exhaustive synchronous attractor search, the complete basin of attraction is returned. If \code{attractorInfo} is the result of a heuristic synchronous search, there is no guarantee that the complete basin of attraction is returned, as only the calculated states are included. Asynchronous search results are not supported, as no transition table is calculated. } \value{ Returns a generic dataframe of the class \code{TransitionTable}. For n genes, the first n columns code for the original state, i.e. each column represents the value of one gene. The next n columns code for the successive state after a transition. The column \code{attractorAssignment} indicates the attractor to the state is assigned (in this case, \code{attractorNo}). If this information is available, the column \code{stepsToAttractor} indicates how many transitions are needed from the original state to the attractor. The \code{TransitionTable} class supports pretty printing using the \code{\link{print}} method. } \seealso{ \code{\link{getStateSummary}}, \code{\link{getTransitionTable}}, \code{\link{getAttractors}}, \code{\link{simulateSymbolicModel}} } \examples{ # load example data data(cellcycle) # get attractors attractors <- getAttractors(cellcycle) # print basin of first attractor print(getBasinOfAttraction(attractors, 1)) } \keyword{Boolean network attractor cycle basin} ����������������������������������������������������������������������������������������������������������������������������������BoolNet/man/loadSBML.Rd�����������������������������������������������������������������������������0000644�0001760�0000144�00000003527�12466166264�014327� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{loadSBML} \alias{loadSBML} \title{ Load an SBML document } \description{ Loads an SBML document that specifies a qualitative model using the \code{sbml-qual} extension package. } \usage{ loadSBML(file, symbolic=FALSE) } \arguments{ \item{file}{ The SBML document to be imported } \item{symbolic}{ If set to \code{TRUE}, the function returns an object of class \code{SymbolicBooleanNetwork} with an expression tree representation. Otherwise, it returns an object of class \code{BooleanNetwork} with a truth table representation. } } \details{ The import assumes an SBML level 3 version 1 document with the \code{sbml-qual} extension package version 1.0. \pkg{BoolNet} only supports a subset of the \code{sbml-qual} standard. The function tries to import those documents that describe a logical model with two possible values per species. It does not support general logical models with more than two values per species or Petri nets. Further details on the import: \itemize{ \item{The import supports multiple function terms with the same output for a transition and interprets them as a disjunction, as proposed in the specification.} \item{Comparison operators are converted to the corresponding Boolean expressions.} \item{Compartments are ignored.} } For the import, the \pkg{XML} package is required. } \value{ Returns a structure of class \code{BooleanNetwork} or \code{SymbolicBooleanNetwork}, as described in \code{\link{loadNetwork}}. } \references{ \url{http://sbml.org/Documents/Specifications/SBML_Level_3/Packages/Qualitative_Models_(qual)} } \seealso{ \code{\link{toSBML}}, \code{\link{loadNetwork}} } \examples{ # load the cell cycle network data(cellcycle) # export the network to SBML toSBML(cellcycle, "cellcycle.sbml") # reimport the model print(loadSBML("cellcycle.sbml")) } \keyword{SBML Boolean network file import} �������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/man/perturbNetwork.Rd�����������������������������������������������������������������������0000644�0001760�0000144�00000010034�12466166264�015756� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{perturbNetwork} \Rdversion{1.1} \alias{perturbNetwork} %- Also NEED an '\alias' for EACH other topic documented here. \title{ Perturb a Boolean network randomly } \description{ Modifies a synchronous, asynchronous, or probabilistic Boolean network by randomly perturbing either the functions for single genes or the state transitions. Random perturbations can be employed to assess the stability of the network. } \usage{ perturbNetwork(network, perturb = c("functions","transitions"), method = c("bitflip","shuffle"), simplify = (perturb[1]!="functions"), readableFunctions = FALSE, excludeFixed = TRUE, maxNumBits = 1, numStates = max(1,2^length(network$genes)/100)) } \arguments{ \item{network}{ A network structure of class \code{BooleanNetwork} or \code{ProbabilisticBooleanNetwork}. These networks can be read from files by \code{\link{loadNetwork}}, generated by \if{latex}{\cr}\code{\link{generateRandomNKNetwork}}, or reconstructed by \code{\link{reconstructNetwork}}. } \item{perturb}{ If set to "functions", a transition function of a single gene is chosen at random and perturbed directly. This is the default mode. If set to "transitions", the transition table is generated, one or several state transitions are perturbed randomly, and the gene transition functions are rebuilt from the modified transition table. \code{perturb="transitions"} is only allowed for non-probabilistic networks of class \code{BooleanNetworks}. } \item{method}{ The perturbation method to be applied to the functions or transitions. "bitflip" randomly inverts one or several bits (depending on the value of \code{maxNumBits}). "shuffle" generates a random permutation of the positions in the function or state and rearranges the bits according to this permutation. } \item{simplify}{ If this is true, \code{\link{simplifyNetwork}} is called to simplify the gene transition functions after the perturbation. This removes irrelevant input genes. Defaults to TRUE if \code{perturb} is "transitions", and to FALSE otherwise. } \item{readableFunctions}{ If this is true, readable DNF representations of the truth tables of the functions are generated. These DNF are displayed when the network is printed. The DNF representations are not minimized and can thus be very long. If set to FALSE, the truth table result column is displayed. } \item{excludeFixed}{ Determines whether fixed variables can also be perturbed (if set to FALSE) or if they are excluded from the perturbation (if set to TRUE). Default is TRUE. } \item{maxNumBits}{ The maximum number of bits to be perturbed in one function or state. Defaults to 1. } \item{numStates}{ The number of state transitions to be perturbed if \code{perturb} is "transitions". Defaults to 1% of all states. } } \value{ Depending on the input, an object of class \code{BooleanNetwork} or \code{ProbabilisticBooleanNetwork} containing the perturbed copy of the original network is returned. The classes \code{BooleanNetwork} and \code{ProbabilisticBooleanNetwork} are described in more detail in \code{\link{loadNetwork}}. } \seealso{ \code{\link{loadNetwork}}, \code{\link{generateRandomNKNetwork}}, \code{\link{reconstructNetwork}}, \code{\link{simplifyNetwork}}} \examples{ # load example data data(cellcycle) # perturb the network perturbedNet1 <- perturbNetwork(cellcycle, perturb="functions", method="shuffle") perturbedNet2 <- perturbNetwork(cellcycle, perturb="transitions", method="bitflip") # get attractors print(getAttractors(perturbedNet1)) print(getAttractors(perturbedNet2)) } \references{ Y. Xiao and E. R. Dougherty (2007), The impact of function perturbations in Boolean networks. Bioinformatics 23(10):1265--1273. I. Shmulevich, E. R. Dougherty, W. Zhang (2002), Control of stationary behavior in probabilistic Boolean networks by means of structural intervention. Journal of Biological Systems 10(4):431--445. } \keyword{Boolean network probabilistic Boolean network PBN state perturb perturbation noise robustness} ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/man/BoolNet-package.Rd����������������������������������������������������������������������0000644�0001760�0000144�00000014457�12473306230�015654� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{BoolNet-package} \Rdversion{1.1} \alias{BoolNet-package} \alias{BoolNet} \docType{package} \title{Construction, Simulation and Analysis of Boolean Networks} \description{Tools for reconstruction, analysis and visualization of synchronous, asynchronous and probabilistic Boolean networks, in particular for the identification of attractors in gene-regulatory networks} \details{ \tabular{ll}{ Package: \tab BoolNet\cr Type: \tab Package\cr Version: \tab 2.1.1\cr Date: \tab 2015-02-25\cr License: \tab Artistic-2.0\cr LazyLoad: \tab yes\cr } This package provides useful methods for the construction and generation of Boolean networks and for their analysis. In particular, it is designed for the analysis of gene-regulatory networks. The software supports four types of networks: \describe{ \item{Synchronous Boolean networks}{These networks consist of a set of Boolean variables (genes) \var{X} and a set of transition functions, one for each variable. These transition functions map an input from the set \var{X} to a Boolean value. A state is a vector of values for each of the variables in \var{X}. Then, the next state of the network is calculated by applying \emph{all} transition functions to the state.} \item{Asynchronous Boolean networks}{Asynchronous networks have the same structure as synchronous Boolean networks. Yet, the next state of the network is calculating by choosing only \emph{one} of the transition functions at random and updating the corresponding Boolean variable (gene). This corresponds to the assumption that in a genetic network, gene expression levels are likely to change at different points of time.} \item{Synchronous Boolean networks with time delays}{These networks additionally include dependencies on genes at time steps other than the previous time step. That is, not only the immediate predecessor state is considered to determine the next state of the network, but earlier states can be considered as well. Furthermore, it is possible to use predicates that depend on the absolute time point, i.e. the number of transitions from an initial state. } \item{Probabilistic Boolean networks}{Probabilistic networks allow for specifying more than one transition function per variable/gene. Each of these functions has a probability to be chosen, where the probabilities of all functions for one variable sum up to 1. Transitions are performed synchronously by choosing one transition function for each gene according to their probabilities and applying them to the current state.} } Networks can be assembled in several ways using \pkg{BoolNet}: The \code{\link{reconstructNetwork}} function infers Boolean networks from time series of measurements using several popular reconstruction algorithms. \code{\link{binarizeTimeSeries}} provides a means of binarizing real-valued time series for these reconstruction algorithms. Boolean networks (synchronous, asynchronous, and probabilistic networks) can also be expressed in a description language and loaded from files using \code{\link{loadNetwork}} or stored to files using \code{\link{saveNetwork}}. Furthermore, networks can be imported from BioTapestry using \code{\link{loadBioTapestry}} and from SBML with the \code{sbml-qual} package using \code{\link{loadSBML}}. The package also includes an export to SBML (see \code{\link{toSBML}}). Via \code{\link{generateRandomNKNetwork}} and \code{\link{perturbNetwork}}, the package supports various methods of generating random networks and perturbing existing networks for robustness analysis. The \code{\link{getAttractors}} function identifies attractor cycles in a synchronous or asynchronous Boolean network. Attractors can be identified by exhaustive search or heuristic methods. For networks with time delays, the function \code{simulateSymbolicModel} simulates the model and identifies attractors. The \code{\link{markovSimulation}} function identifies relevant states in probabilistic Boolean networks by performing a Markov chain simulation. The package also provides methods to visualize state transitions and basins of attraction \if{latex}{\cr} (\code{\link{plotPBNTransitions}}, \code{\link{plotStateGraph}}), to plot the wiring of a network \if{latex}{\cr}(\code{\link{plotNetworkWiring}}), to plot attractor state tables (\code{\link{plotAttractors}}) and sequences of states (\code{\link{plotSequence}}), and to export them to LaTeX (\code{\link{attractorsToLaTeX}} and \code{\link{sequenceToLaTeX}}) and Pajek (\code{\link{toPajek}}). Transition tables of the network can be analyzed using \code{\link{getTransitionTable}}. Paths from start states to their corresponding attractors are identified using \code{\link{getPathToAttractor}}. } \author{ Christoph Müssel, Martin Hopfensitz, Dao Zhou, Hans A. Kestler Contributors: Armin Biere (contributed PicoSAT code), Troy D. Hanson (contributed uthash macros) Maintainer: Hans A. Kestler <hans.kestler@uni-ulm.de> } \references{ S. A. Kauffman (1969), Metabolic stability and epigenesis in randomly constructed nets. J. Theor. Biol. 22:437--467. S. A. Kauffman (1993), The Origins of Order. Oxford University Press. Further references are listed in the corresponding help sections. } \keyword{package Boolean network probabilistic Boolean network PBN attractor cycle basin transition Markov chain simulation state graph reconstruction} \examples{ ################################## # Example 1: identify attractors # ################################## # load example data data(cellcycle) # get all synchronous attractors by exhaustive search attractors <- getAttractors(cellcycle) # plot attractors side by side par(mfrow=c(2,length(attractors$attractors))) plotAttractors(attractors) # identifies asynchronous attractors attractors <- getAttractors(cellcycle, type="asynchronous", startStates=100) plotAttractors(attractors, mode="graph") #################################### # Example 2: reconstruct a network # #################################### # load example data data(yeastTimeSeries) # perform binarization with k-means bin <- binarizeTimeSeries(yeastTimeSeries) # reconstruct networks from transition table net <- reconstructNetwork(bin$binarizedMeasurements, method="bestfit", maxK=3, returnPBN=TRUE) # analyze the network using a Markov chain simulation print(markovSimulation(net, returnTable=FALSE)) } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/man/getAttractors.Rd������������������������������������������������������������������������0000644�0001760�0000144�00000035553�12473107364�015556� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{getAttractors} \Rdversion{1.1} \alias{getAttractors} %- Also NEED an '\alias' for EACH other topic documented here. \title{Identify attractors in a Boolean network} \description{Identifies attractors (cycles) in a supplied Boolean network using synchronous or asynchronous state transitions} \usage{ getAttractors(network, type = c("synchronous","asynchronous"), method = c("exhaustive", "sat.exhaustive", "sat.restricted", "random", "chosen"), startStates = list(), genesON = c(), genesOFF = c(), canonical = TRUE, randomChainLength = 10000, avoidSelfLoops = TRUE, geneProbabilities = NULL, maxAttractorLength = Inf, returnTable = TRUE) } \arguments{ \item{network}{ A network structure of class \code{BooleanNetwork} or \code{SymbolicBooleanNetwork}. These networks can be read from files by \code{\link{loadNetwork}}, generated by \code{\link{generateRandomNKNetwork}}, or reconstructed by \code{\link{reconstructNetwork}}. } \item{type}{ If \code{type="synchronous"}, synchronous state transitions are used, i.e. all genes are updated at the same time. Synchronous attractor search can be performed in an exhaustive manner or using a heuristic that starts from predefined states. For symbolic networks, only synchronous updates are possible. If \code{type="asynchronous"}, asynchronous state transitions are performed, i.e. one (randomly chosen) gene is updated in each transition. Steady-state attractors are the same in asynchronous and synchronous networks, but the asynchronous search is also able to identify complex/loose attractors. Asynchronous search relies on a heuristic algorithm that starts from predefined states. See Details for more information on the algorithms. } \item{method}{ The search method to be used. If "exhaustive", attractors are identified by exhaustive state space search, i.e. by calculating the sucessors of all 2^n states (where n is the number of genes that are not set to a fixed value). This kind of search is only available for synchronous attractor search, and the maximum number of genes allowed for exhaustive search is 29. Apart from the attractors, this method generates the full state transition graph. If \code{method} is "sat.exhaustive" or "sat.restricted", attractors are identified using algorithms based on the satisfiability problem. This search type is also restricted to synchronous networks. It can be used to identify attractors in much larger networks than with \code{method="exhaustive"}, but does not return the state transition graph. For \code{method="sat.exhaustive"}, an exhaustive attractor search is performed, while \code{method="sat.restricted"} only searches for attractors of a specified maximum length \code{maxAttractorLength}. If \code{method} is "random", \code{startStates} is interpreted as an integer value specifying the number of states to be generated randomly. The algorithm is then initialized with these random states and identifies the attractors to which these states lead. If \code{method} is "chosen", \code{startStates} is interpreted as a list of binary vectors, each specifying one input state. Each vector must have \code{length(network$genes)} elements with 0 or 1 values. The algorithm identifies the attractors to which the supplied states lead. If \code{network} is of class \code{SymbolicBooleanNetwork} and makes use of more than one predecessor state, this can also be a list of matrices with the genes in the columns and multiple predecessor states in the rows. If \code{method} is not supplied, the desired method is inferred from the type of \code{startStates}. By default, if neither \code{method} nor \code{startStates} are provided, an exhaustive search is performed. } \item{startStates}{ The value of \code{startStates} depends on the chosen method. See \code{method} for more details. } \item{genesON}{ A vector of genes whose values are fixed to 1, which reduces the complexity of the search. This is equivalent to a preceding call of \code{\link{fixGenes}}. } \item{genesOFF}{ A vector of genes whose values are fixed to 0, which reduces the complexity of the search. This is equivalent to a preceding call of \code{\link{fixGenes}}. } \item{canonical}{ If set to true, the states in the attractors are rearranged such that the state whose binary encoding makes up the smallest number is the first element of the vector. This ensures that attractors found by different heuristic runs of \code{getAttractors} are comparable, as the cycles may have been entered at different states in different runs of the algorithm. } \item{randomChainLength}{ If \code{type="asynchronous"}, this parameter specifies the number of random transitions performed by the search to enter a potential attractor (see Details). Defaults to 10000. } \item{avoidSelfLoops}{ If \code{type="asynchronous"} and \code{avoidSelfLoops=TRUE}, the asynchronous attractor search only enters self loops (i.e. transitions that result in the same state) if none of the possible transitions can leave the state. This results in attractors with fewer edges. Otherwise, self loops are included in the attractors. By default, self loops are avoided. } \item{geneProbabilities}{ If \code{type="asynchronous"}, this allows to specify probabilities for the genes. By default, each gene has the same probability to be chosen for the next state transition. You can supply a vector of probabilities for each of the genes which sums up to one. } \item{maxAttractorLength}{If \code{method="sat.restricted"}, this required parameter specifies the maximum size of attractors (i.e. the number of states in the loop) to be searched. For \code{method="sat.exhaustive"}, this parameter is optional and specifies the maximum attractor length for the initial length-restricted search phase that is performed to speed up the subsequent exhaustive search. In this case, changing this value might bring performance benefits, but does not change the results.} \item{returnTable}{ Specifies whether a transition table is included in the returned \code{AttractorInfo} structure. If \code{type="asynchronous"} or \code{method="sat"}, this parameter is ignored, as the corresponding algorithms never return a transition table. } } \details{ Depending on the type of network and the chosen parameters, different search algorithms are started. For \code{BooleanNetwork} networks, there are three different modes of attractor search: \describe{ \item{Exhaustive synchronous state space search}{ In this mode, synchronous state transitions are carried out from each of the possible states until an attractor is reached. This identifies all synchronous attractors. } \item{Heuristic synchronous state space search}{ In contrast to exhaustive synchronous search, only a subset of the possible states is used. From these states, synchronous transitions are carried out until an attractor is reached. This subset is specified in \code{startStates}. } \item{Exhaustive synchronous SAT-based search}{ Here, the attractor search problem is formulated as a satisfiability problem and solved using Armin Biere's PicoSAT solver. The algorithm is a variant of the method by Dubrova and Teslenko which searches for a satisfying assignment of a chain constructed by unfolding the transition relation. Depending on \code{maxAttractorLength}, it additionally applies an initial size-restricted SAT-based search (see below) to increase overall search speed. This method is suitable for larger networks of up to several hundreds of genes and exhaustively identifies all attractors in these networks. In contrast to the state space search, it does not construct and return a state transition table. } \item{Size-restricted synchronous SAT-based search}{ Here, the SAT solver directly looks for satisfying assignments for loops of a specific size. This may be more efficient for large networks and is guaranteed to find all attractors that comprise up to \code{maxAttractorLength} states (e.g. all steady states for \code{maxAttractorLength=1}) , but does not find any larger attractors. As for the exhaustive SAT-based method, no transition table is returned. } \item{Heuristic asynchronous search}{ This algorithm uses asynchronous state transitions and is able to identify steady-state and complex/loose attractors (see Harvey and Bossomaier, Garg et al.). These attractors are sets of states from which all possible asynchronous transitions lead into a state that is member of the set as well. The heuristic algorithm does the following for each of the input state specified by \code{startStates}: \enumerate{ \item Perform \code{randomChainLength} random asynchronous transitions. After these transitions, the network state is expected to be located in an attractor with a high probability. \item Calculate the forward reachable set of the current state. Then, compare this set to the forward reachable set of all states in the set. If all sets are equal, a complex attractor is found. } } For \code{SymbolicBooleanNetwork} networks, \code{getAttractors} is simply a wrapper for \code{\link{simulateSymbolicModel}} with preset parameters. } Printing the return value of \code{getAttractors} using \code{\link{print}} visualizes the identified attractors.} \value{ For \code{BooleanNetwork} networks, this returns a list of class \code{AttractorInfo} with components \item{attractors}{A list of attractors. Each element is a 2-element list with the following components: \describe{ \item{involvedStates}{A matrix containing the states that make up the attractor. Each column represents one state. The entries are decimal numbers that internally represent the states of the genes. The number of rows depends on the number of genes in the network: The first 32 genes are encoded in the first row, genes 33-64 are encoded in the second row, etc.} \item{initialStates}{This element is only available if an asynchronous search was carried out and this is a complex attractor. In this case, it holds the encoded start states of the transitions in the complex attractor} \item{nextStates}{This element is only available if an asynchronous search was carried out and this is a complex attractor. In this case, it holds the encoded successor states of the transitions in the complex attractor} \item{basinSize}{The number of states in the basin of attraction. Details on the states in the basin can be retrieved via \code{\link{getBasinOfAttraction}}.} }} \item{stateInfo}{A summary structure of class \code{BooleanStateInfo} containing information on the transition table. It has the following components: \describe{ \item{initialStates}{This element is only available if \code{type="synchronous"}, \code{method} is "random" or "chosen", and \code{returnTable=TRUE}. This is a matrix describing the initial states that lead to the states in \code{table} after a state transition. If \code{method} is "exhaustive", this component is \code{NULL}. In this case, the initial states can be inferred, as all states are used. The format of the matrix is described in \code{involvedStates}.} \item{table}{This element is only available if \code{type="synchronous"} and \if{latex}{\cr}\code{returnTable=TRUE}. It holds result vector of the transition table as a matrix with one column for each state. These are encoded bit vectors in decimal numbers as described above.} \item{attractorAssignment}{This element is only available if \code{type="synchronous"} and \code{returnTable=TRUE}. It contains a vector that corresponds to the entries in \code{table} and describes the attractor index in \code{attractors} to which successive transitions from the described state finally lead.} \item{stepsToAttractor}{This element is only available if \code{type="synchronous"} and \code{returnTable=TRUE}. Referring to \code{attractorAssignment}, this is the number of transitions needed to reach the attractor.} \item{genes}{A list of names of the genes in \code{network}.} \item{fixedGenes}{Specifies the fixed genes as in the \code{fixed} component of \code{network}.} } The structure supports pretty printing using the \code{\link{print}} method.} For \code{SymbolicBooleanNetwork} networks, \code{getAttractors} redirects the call to \code{\link{simulateSymbolicModel}} and returns an object of class \code{SymbolicSimulation} containing the attractors and (if \code{returnTable=TRUE}) the transition graph. } \references{ S. A. Kauffman (1969), Metabolic stability and epigenesis in randomly constructed nets. J. Theor. Biol. 22:437--467. S. A. Kauffman (1993), The Origins of Order. Oxford University Press. I. Harvey, T. Bossomaier (1997), Time out of joint: Attractors in asynchronous random Boolean networks. Proc. of the Fourth European Conference on Artificial Life, 67--75. A. Garg, A. Di Cara, I. Xenarios, L. Mendoza, G. De Micheli (2008), Synchronous versus asynchronous modeling of gene regulatory networks. Bioinformatics 24(17):1917--1925. E. Dubrova, M. Teslenko (2011), A SAT-based algorithm for finding attractors in synchronous Boolean networks. IEEE/ACM Transactions on Computational Biology and Bioinformatics 8(5):1393--1399. A. Biere (2008), PicoSAT Essentials. Journal on Satisfiability, Boolean Modeling and Computation 4:75-97. } \seealso{ \code{\link{loadNetwork}}, \code{\link{generateRandomNKNetwork}}, \code{\link{simulateSymbolicModel}}, \code{\link{plotAttractors}}, \code{\link{attractorsToLaTeX}}, \code{\link{getTransitionTable}}, \code{\link{getBasinOfAttraction}}, \code{\link{getAttractorSequence}}, \code{\link{getStateSummary}}, \code{\link{getPathToAttractor}}, \code{\link{fixGenes}}, \code{\link{generateState}} } \examples{ # load example data data(cellcycle) # get all synchronous attractors by exhaustive search attractors <- getAttractors(cellcycle) # plot attractors side by side par(mfrow=c(2, length(attractors$attractors))) plotAttractors(attractors) # finds the synchronous attractor with 7 states attractors <- getAttractors(cellcycle, method="chosen", startStates=list(rep(1, length(cellcycle$genes)))) plotAttractors(attractors) # finds the attractor with 1 state attractors <- getAttractors(cellcycle, method="chosen", startStates=list(rep(0, length(cellcycle$genes)))) plotAttractors(attractors) # also finds the attractor with 1 state by restricting the attractor length attractors <- getAttractors(cellcycle, method="sat.restricted", maxAttractorLength=1) plotAttractors(attractors) # identifies asynchronous attractors attractors <- getAttractors(cellcycle, type="asynchronous", startStates=100) plotAttractors(attractors, mode="graph") } % Add one or more standard keywords, see file 'KEYWORDS' in the % R documentation directory. \keyword{Boolean network synchronous update asynchronous update symbolic Boolean network attractor cycle basin} �����������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/man/attractorsToLaTeX.Rd��������������������������������������������������������������������0000644�0001760�0000144�00000007040�12473107364�016305� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{attractorsToLaTeX} \Rdversion{1.1} \alias{attractorsToLaTeX} %- Also NEED an '\alias' for EACH other topic documented here. \title{ Create LaTeX state table of attractors } \description{ Exports state tables of attractors (corresponding to the plot generated by \code{\link{plotAttractors}} with \code{mode="table"}) to a LaTeX document. } \usage{ attractorsToLaTeX(attractorInfo, subset, title = "", grouping = list(), plotFixed = TRUE, onColor = "[gray]{0.9}", offColor = "[gray]{0.6}", reverse = FALSE, file = "attractors.tex") } \arguments{ \item{attractorInfo}{ An object of class \code{AttractorInfo}, as returned by \code{\link{getAttractors}}, or an object of class \code{SymbolicSimulation}, as returned by \code{\link{simulateSymbolicModel}}. } \item{subset}{An subset of attractors to be exported. This is a vector of attractor indices in \code{attractorInfo}.} \item{grouping}{An optional structure to form groups of genes in the plot. This is a list with the following elements: \describe{ \item{class}{A vector of names for the groups. These names will be printed in the region belonging to the group in the table.} \item{index}{A list with the same length as \code{class}. Each element is a vector of gene indices belonging to the group.}} } \item{title}{ An optional title for the plot } \item{plotFixed}{ If this is true, genes with fixed values are included in the plot. Otherwise, these genes are not shown. } \item{onColor}{ An optional color value for the 1/ON values in the table. Defaults to dark grey. } \item{offColor}{ An optional color value for the 0/OFF values in the table. Defaults to light grey. } \item{reverse}{ Specifies the order of the genes in the plot. By default, the first gene is placed in the first row of the table. If \code{reverse=TRUE}, the first gene in the network is placed in the bottom row of the table. } \item{file}{ The file to which the LaTeX document is written. Defaults to "attractors.tex". } } \details{ This function creates LaTeX tables that visualize the states of synchronous attractors. Asynchronous attractors are ignored. Attractors in \code{attractorInfo} are first grouped by length. Then, a LaTeX table environment is created for each attractor length (i.e. one plot with all attractors consisting of 1 state, one plot with all attractors consisting of 2 states, etc.). The output file does not contain a document header and requires the inclusion of the packages \code{tabularx} and \code{colortbl}. The tables have the genes in the rows and the states of the attractors in the columns. If not specified otherwise, cells of the table are light grey for 0/OFF values and dark grey for 1/ON values. If \code{grouping} is set, the genes are rearranged according to the indices in the group, horizontal separation lines are plotted between the groups, and the group names are printed. } \value{ A list of matrices corresponding to the plots is returned. Each of these matrices has the genes in the rows and the states of the attractors in the columns. } \seealso{ \code{\link{getAttractors}}, \code{\link{plotAttractors}}, \code{\link{sequenceToLaTeX}}, \code{\link{plotSequence}} } \examples{ # load example data data(cellcycle) # get attractors attractors <- getAttractors(cellcycle) # output LaTeX document attractorsToLaTeX(attractors, file="attractors.tex") } \keyword{LaTeX Boolean network attractor cycle basin transition state graph} ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/man/cellcycle.Rd����������������������������������������������������������������������������0000644�0001760�0000144�00000001705�12466166264�014665� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{cellcycle} \alias{cellcycle} \docType{data} \title{ Mammalian cell cycle network } \description{ The mammalian cell cycle network as described by Faure et al. } \usage{data(cellcycle)} \details{ The data consists of a variable \code{cellcycle} of class \code{BooleanNetwork} with 10 genes describing the four phases of the mammalian cell cycle. The network has one steady-state attractor. Furthermore, it has one synchronous attractor with 7 states and one asynchronous complex/loose attractor with 112 states. The class \code{BooleanNetwork} is described in more detail in \code{\link{loadNetwork}}. } \source{ A. Faure, A. Naldi, C. Chaouiya and D. Thieffry (2006), Dynamical analysis of a generic Boolean model for the control of the mammalian cell cycle. Bioinformatics 22(14):e124--e131. } \examples{ data(cellcycle) # the network is stored in a variable called 'cellcycle' print(cellcycle) } \keyword{datasets cell cycle mammalian Boolean network} �����������������������������������������������������������BoolNet/man/testNetworkProperties.Rd����������������������������������������������������������������0000644�0001760�0000144�00000032513�12473107364�017327� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{testNetworkProperties} \alias{testNetworkProperties} \alias{testIndegree} \alias{testAttractorRobustness} \alias{testTransitionRobustness} \title{ Test properties of networks by comparing them to random networks } \description{ This is a general function designed to determine unique properties of biological networks by comparing them to a set of randomly generated networks with similar structure. } \usage{ testNetworkProperties(network, numRandomNets = 100, testFunction = "testIndegree", testFunctionParams = list(), accumulation = c("characteristic", "kullback_leibler"), alternative=c("greater","less"), sign.level = 0.05, drawSignificanceLevel = TRUE, klBins, klMinVal = 1e-05, linkage = c("uniform", "lattice"), functionGeneration = c("uniform", "biased"), validationFunction, failureIterations=10000, simplify = FALSE, noIrrelevantGenes = TRUE, d_lattice = 1, zeroBias = 0.5, title = "", xlab, xlim, breaks = 30, ...) } \arguments{ \item{network}{ A network structure of class \code{BooleanNetwork} or \code{SymbolicBooleanNetwork} } \item{numRandomNets}{ The number of random networks to generate for comparison } \item{testFunction}{ The name of a function that calculates characteristic values that describe properties of the network. There are two built-in functions: "testIndegree" calculates the in-degrees of states in the network, and "testAttractorRobustness" counts the occurrences of attractors in perturbed copies. It is possible to supply user-defined functions here. See Details. } \item{testFunctionParams}{ A list of parameters to \code{testFunction}. The elements of the list depend on the chosen function. } \item{accumulation}{ If "characteristic" is chosen, the test function is required to return a single value that describes the network. In this case, a histogram of these values in random networks is plotted, and the value of the original network is inserted as a vertical line. If "kullback_leibler" is chosen, the test function can return a vector of values which is regarded as a sample from a probability distribution. In this case, the Kullback-Leibler distances of the distributions from the original network and each of the random networks are calculated and plotted in a histogram. The Kullback-Leibler distance measures the difference between two probability distributions. In this case, the resulting histogram shows the distribution of differences between the original network and randomly generated networks. } \item{alternative}{ If \code{accumulation="characteristic"}, this specifies whether the characteristic value is expected to be greater or less than the random results under the alternative hypothesis. } \item{sign.level}{ If \code{accumulation="characteristic"}, this specifies a significance level for a computer-intensive test. If \code{alternative="greater"}, the test is significant if the characteristic value is greater than at least \code{(1-sign.level)*100}\% of the characteristic values of the random networks. If \code{alternative="less"}, the test is significant if the characteristic value is less than at most \code{sign.level*100}\% of the characteristic values of the random networks. } \item{drawSignificanceLevel}{ If \code{accumulation="characteristic"} and this is true, a vertical line is plotted for the significance level in the histogram. } \item{linkage, functionGeneration, validationFunction, failureIterations, simplify, noIrrelevantGenes, d_lattice, zeroBias}{ The corresponding parameters of \code{\link{generateRandomNKNetwork}} used to generate the random networks. This allows for customization of the network generation process. The three remaining parameters of \code{\link{generateRandomNKNetwork}} are set to values that ensure structural similarity to the original network: The parameters \code{n} and \code{k} are set to the corresponding values of the original network, and \code{topology="fixed"}. } \item{klBins}{ If \code{accumulation="kullback_leibler"}, the number of bins used to discretize the samples for the Kullback-Leibler distance calculations. By default, each unique value in the samples has its own bin, i.e. no further discretization is performed. The influence of discretization on the resulting histogram may be high. } \item{klMinVal}{ If \code{accumulation="kullback_leibler"}, this defines the minimum probability for the calculation of the Kullback-Leibler distance to ensure stability of the results. } \item{title}{ The title of the plots. This is empty by default. } \item{xlab}{ Customizes label of the x axis of the histogram. For the built-in test functions, the x axis label is set automatically. } \item{xlim}{ Customizes the limits of the x axis of the histogram. For the built-in test functions, suitable values are chosen automatically. } \item{breaks}{ Customizes the number of breaks in the } \item{\dots}{ Further graphical parameters for \code{\link{hist}} } } \details{ This function generically compares properties of biological networks to a set of random networks. It can be extended by supplying custom functions to the parameter \code{testFunction}. Such a function must have the signature \code{function(network, accumulate=TRUE, params)} \describe{ \item{network}{This is the network to test. In the process of the comparison, both the original network and the random networks are passed to the function} \item{accumulate}{If \code{accumulate=TRUE}, the function must return a single value quantifying the examined property of the network. If \code{accumulate=FALSE}, the function can return a vector of values (e.g., one value for each gene/state etc.)} \item{params}{A list of further parameters for the function supplied by the user in \code{testFunctionParams} (see above). This can contain any type of information your test function needs.} } Three built-in functions for synchronous Boolean networks already exist: \describe{ \item{testIndegree}{This function is based on the observation that, often, in biological networks, many state transitions lead to the same states. In other words, there is a small number of "hub" states. In the state graph, this means that the in-degree of some states (i.e., the number of transitions leading to it) is high, while the in-degree of many other states is 0. We observed that random networks do not show this behaviour, thus it may be a distinct property of biological networks. For this function, the parameter \code{alternative} of \code{testNetworkProperties} should be set to "greater". The function does not require any parameter entries in \code{params}. If \code{accumulate=FALSE}, it returns the in-degrees of all synchronous states in the network. If \code{accumulate=TRUE}, the Gini index of the in-degrees is returned as a characteristic value of the network. The Gini index is a measure of inequality. If all states have an in-degree of 1, the Gini index is 0. If all state transitions lead to one single state, the Gini index is 1. This function requires the \pkg{igraph} package for the analysis of the in-degrees. } \item{testAttractorRobustness}{This function tests the robustness of attractors in a network to noise. We expect attractors in a real network to be less susceptible to noise than attractors in randomly generated networks, as biological processes can be assumed to be comparatively stable. There are modes of generating noise: Either the functions of the network can be perturbed, or the state trajectories can be perturbed in a simulation of the network. If \code{perturb="functions"} or \code{perturb="transitions"}, the function generates a number of perturbed copies of the network using \code{\link{perturbNetwork}} and checks whether the original attractors can still be found in the network. If \code{perturb="trajectories"}, the network itself is not perturbed. Instead, a set of random initial states is generated, and a set of perturbed states is generated from these initial states by flipping one or more bits. Then, the function tests whether the attractors are the same for the initial states and the corresponding perturbed states. This corresponds to calling \code{\link{perturbTrajectories}} with \code{measure="attractor"}. \code{params} can hold a number of parameters: \describe{ \item{numSamples}{If \code{perturb="trajectories"}, the number of randomly generated state pairs to generate. Otherwise the number of perturbed networks that are generated.} \item{perturb}{Specifies the type of perturbation to be applied (possible values: \code{"functions"}, \code{"transitions"} and \code{"trajectories"} -- see above).} \item{method, simplify, readableFunctions, excludeFixed, maxNumBits, numStates}{ If \code{perturb="functions"} or \code{perturb="transitions"}, these are the corresponding parameters of \code{\link{perturbNetwork}} that influence the way the network is perturbed.} \item{flipBits}{ If \code{perturb="trajectories"}, the are the corresponding parameters of \code{\link{perturbTrajectories}} that defines how many bits are flipped.} } If {perturb="functions"} or \code{perturb="transitions"} and \code{accumulate=FALSE}, the function returns a vector of percentages of original attractors found in each of the perturbed copies of the original network. If \code{accumulate=TRUE}, the function returns the overall percentage of original attractors found in all perturbed copies. If \code{perturb="trajectories"} and \code{accumulate=FALSE}, the function returns a logical vector of length \code{numSamples} specifying whether the attractor was the same for each initial state and the corresponding perturbed state. If \code{accumulate=TRUE}, the function returns the percentage of pairs of initial states and perturbed states for which the attractors were the same. For this function, the parameter \code{alternative} of \code{testNetworkProperties} should be set to "greater". } \item{testTransitionRobustness}{This function calls \code{perturbTrajectories} with \code{measure="hamming"} to measure the average Hamming distance between successor states of randomly generated initial states and perturbed copies of these states. code{params} can hold parameters \code{numSamples, flipBits} corresponding to the parameters of \code{\link{perturbTrajectories}} that define how many initial states are drawn and how many bits are flipped. If \code{accumulate=FALSE}, the function returns a numeric vector of length \code{numSamples} with the normalized Hamming distances of all pairs of initial states and perturbed copies. If \code{accumulate=TRUE}, the mean normalized Hamming distance over all pairs is returned. For this function, the parameter \code{alternative} of \code{testNetworkProperties} should be set to "less". } } } \value{ The function returns a list with the following elements \item{hist}{The histogram that was plotted. The type of histogram depends on the parameter \code{accumulation}.} \item{pval}{If \code{accumulation="characteristic"}, a p-value for the alternative hypothesis that the test statistic value of the supplied network is greater than the value of a randomly generated network is supplied.} \item{significant}{If \code{accumulation="characteristic"}, this is true for \code{pval < sign.level}.} } \seealso{ \code{\link{generateRandomNKNetwork}}, \code{\link{perturbNetwork}}, \code{\link{perturbTrajectories}}, \code{\link{plotStateGraph}}, \code{\link{getAttractors}} } \examples{ # load mammalian cell cycle network data(cellcycle) if (interactive()) # do not run these examples in the package check, as they take some time { # compare the in-degrees of the states in the # cell cycle network to random networks testNetworkProperties(cellcycle, testFunction="testIndegree", alternative="greater") # compare the in-degrees of the states in the # cell cycle network to random networks, # and plot the Kullback-Leibler distances of the 100 experiments testNetworkProperties(cellcycle, testFunction="testIndegree", accumulation = "kullback_leibler") # compare the robustness of attractors in the cell cycle network # to random networks by perturbing the networks testNetworkProperties(cellcycle, testFunction="testAttractorRobustness", testFunctionParams=list(perturb="functions", numSamples=10), alternative="greater") # compare the robustness of attractors in the cell cycle network # to random networks by perturbing the state trajectories testNetworkProperties(cellcycle, testFunction="testAttractorRobustness", testFunctionParams=list(perturb="trajectories", numSamples=10), alternative="greater") # compare the robustness of single state transitions in the cell cycle network testNetworkProperties(cellcycle, testFunction="testTransitionRobustness", testFunctionParams=list(numSamples=10), alternative="less") } } \keyword{robustness analysis perturbation in-degree} �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/man/sequenceToLaTeX.Rd����������������������������������������������������������������������0000644�0001760�0000144�00000013352�12473107364�015732� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{sequenceToLaTeX} \alias{sequenceToLaTeX} \alias{sequenceToLaTeX.BooleanNetwork} \alias{sequenceToLaTeX.data.frame} %- Also NEED an '\alias' for EACH other topic documented here. \title{ Create LaTeX table of state sequences } \description{ Exports tables of state sequences (corresponding to the plot generated by \code{\link{plotSequence}} with \code{mode="table"}) to a LaTeX document. } \usage{ sequenceToLaTeX(network, startState, includeAttractorStates = c("all","first","none"), sequence, title = "", grouping = list(), plotFixed = TRUE, onColor="[gray]{0.9}", offColor="[gray]{0.6}", highlightAttractor=TRUE, reverse = FALSE, file="sequence.tex") } \arguments{ \item{network}{ An object of class \code{BooleanNetwork} or \code{SymbolicBooleanNetwork} for which a sequence of state transitions is calculated } \item{startState}{ The start state of the sequence } \item{includeAttractorStates}{ Specifies whether the actual attractor states are included in the table or not (see also \code{\link{getPathToAttractor}}). If \code{includeAttractorStates = "all"} (which is the default behaviour), the sequence ends when the attractor was traversed once. If \code{includeAttractorStates = "first"}, only the first state of attractor is added to the sequence. If {includeAttractorStates = "none"}, the sequence ends with the last non-attractor state. } \item{sequence}{ The alternative call to \code{sequenceToLaTeX} requires the specification of the sequence itself instead of the network and the start state. The sequence must be provided as a data frame with the genes in the columns and the successive states in the rows. For example, sequences can be obtained using \code{\link{getPathToAttractor}} or \code{\link{getAttractorSequence}} (however, the specialized function \code{\link{attractorsToLaTeX}} exists for attractors). } \item{title}{ An optional title for the table } \item{plotFixed}{If this is true, genes with fixed values are included in the plot. Otherwise, these genes are not shown. } \item{grouping}{This optional parameter specifies a structure to form groups of genes in the table. This is a list with the following elements: \describe{ \item{class}{A vector of names for the groups. These names will be printed in the region belonging to the group in the tabke.} \item{index}{A list with the same length as \code{class}. Each element is a vector of gene names or gene indices belonging to the group.}} } \item{onColor}{ An optional color value for the 1/ON values in the table. Defaults to dark grey. } \item{offColor}{ An optional color value for the 0/OFF values in the table. Defaults to light grey. } \item{highlightAttractor}{ If set to true, the attractor states are highlighted in the plot by drawing a line at the begin of the attractor and labeling the states correspondingly. Information on the attractor must be supplied in the attribute \code{attractor} of the sequence, which is a vector of indices of the states that belong to the attractor. This attribute is usually present if the sequence was obtained using \code{\link{getPathToAttractor}}. } \item{reverse}{ Specifies the order of the genes in the plot. By default, the first gene is placed in the first row of the table. If \code{reverse=TRUE}, the first gene in the network is placed in the bottom row of the table. } \item{file}{ The file to which the LaTeX document is written. Defaults to "sequence.tex". } } \details{ This function creates a LaTeX table that visualizes a sequence of states in a synchronous network. The output file does not contain a document header and requires the inclusion of the packages \code{tabularx} and \code{colortbl}. The tables have the genes in the rows and the successive states of the sequence in the columns. If not specified otherwise, cells of the table are light grey for 0/OFF values and dark grey for 1/ON values. If \code{grouping} is set, the genes are rearranged according to the indices in the group, horizontal separation lines are plotted between the groups, and the group names are printed. The function can be called with different types of inputs: The user can specify the parameters \code{network}, \code{startState} and \code{includeAttractorStates}), in which case \code{\link{getPathToAttractor}} is called to obtain the sequence. Alternatively, the sequence can be supplied directly as a data frame in the \code{sequence} parameter. } \value{ Returns a matrix corresponding to the table. The matrix has the genes in the rows and the states of the attractors in the columns. If \code{sequence} was supplied, this corresponds to the transposed input whose rows may be rearranged if \code{grouping} was set. } \seealso{ \code{\link{attractorsToLaTeX}}, \code{\link{plotSequence}}, \code{\link{plotAttractors}}, \code{\link{getPathToAttractor}}, \code{\link{getAttractorSequence}}. } \examples{ # load example data data(cellcycle) # alternative 1: supply network and start state # and export sequence to LaTeX sequenceToLaTeX(network=cellcycle, startState=rep(1,10), includeAttractorStates="all", file="sequence.txt") # alternative 2: calculate sequence in advance sequence <- getPathToAttractor(cellcycle, state=rep(1,10), includeAttractorStates="all") sequenceToLaTeX(sequence=sequence, file="sequence.txt") } % Add one or more standard keywords, see file 'KEYWORDS' in the % R documentation directory. \keyword{Boolean network state path sequence LaTeX} ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/man/simplifyNetwork.Rd����������������������������������������������������������������������0000644�0001760�0000144�00000005501�12466166264�016132� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{simplifyNetwork} \Rdversion{1.1} \alias{simplifyNetwork} \title{ Simplify the functions of a synchronous, asynchronous, or probabilistic Boolean network } \description{ Eliminates irrelevant variables from the inputs of the gene transition functions. This can be useful if the network was generated randomly via \code{\link{generateRandomNKNetwork}} or if it was perturbed via \code{\link{perturbNetwork}}. } \usage{ simplifyNetwork(network, readableFunctions = FALSE) } \arguments{ \item{network}{ A network structure of class \code{BooleanNetwork}, \code{ProbabilisticBooleanNetwork} or \code{BooleanNetworkCollection}. These networks can be read from files by \code{\link{loadNetwork}}, generated by \if{latex}{\cr}\code{\link{generateRandomNKNetwork}}, or reconstructed by \code{\link{reconstructNetwork}}. } \item{readableFunctions}{ This parameter specifies if readable DNF representations of the transition function truth tables are generated and displayed when the network is printed. If set to FALSE, the truth table result column is displayed. If set to "canonical", a canonical Disjunctive Normal Form is generated from each truth table. If set to "short", the canonical DNF is minimized by joining terms (which can be time-consuming for functions with many inputs). If set to TRUE, a short DNF is generated for functions with up to 12 inputs, and a canonical DNF is generated for functions with more than 12 inputs. } } \details{ The function checks whether the output of a gene transition function is independent from the states of any of the input variables. If this is the case, these input variables are dropped, and the transition function is shortened accordingly. In non-probabilistic Boolean networks (class \code{BooleanNetwork}), constant genes are automatically fixed (e.g. knocked-out or over-expressed). This means that they are always set to the constant value, and states with the complementary value are not considered in transition tables etc. If you would like to change this behaviour, use \code{\link{fixGenes}} to reset the fixing. } \value{ The simplified network of class \code{BooleanNetwork}, \code{ProbabilisticBooleanNetwork} or \code{BooleanNetworkCollection}. These classes are described in more detail in \code{\link{loadNetwork}} and \code{\link{reconstructNetwork}}. } \seealso{ \code{\link{loadNetwork}},\code{\link{generateRandomNKNetwork}}, \code{\link{perturbNetwork}}, \code{\link{reconstructNetwork}}, \code{\link{fixGenes}} } \examples{ # load example data data(cellcycle) # perturb the network perturbedNet <- perturbNetwork(cellcycle, perturb="functions", method="shuffle") print(perturbedNet$interactions) # simplify the network perturbedNet <- simplifyNetwork(perturbedNet) print(perturbedNet$interactions) } \keyword{Boolean network probabilistic Boolean network PBN logic simplify simplification} �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/man/plotStateGraph.Rd�����������������������������������������������������������������������0000644�0001760�0000144�00000010106�12466166264�015662� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{plotStateGraph} \Rdversion{1.1} \alias{plotStateGraph} \title{ Visualize state transitions and attractor basins } \description{ Plots a graph containing all states visited in \code{stateGraph}, and optionally highlights attractors and basins of attraction. This requires the \pkg{igraph} package. } \usage{ plotStateGraph(stateGraph, highlightAttractors = TRUE, colorBasins = TRUE, colorSet, drawLegend = TRUE, drawLabels = FALSE, layout = layout.fruchterman.reingold, piecewise = FALSE, basin.lty = 2, attractor.lty = 1, plotIt = TRUE, ...) } \arguments{ \item{stateGraph}{An object of class \code{AttractorInfo} or \code{SymbolicSimulation}, as returned by \code{\link{getAttractors}} and \code{\link{simulateSymbolicModel}} respectively. As the transition table information in this structure is required, \code{getAttractors} must be called in synchronous mode and with \code{returnTable} set to TRUE. Similarly, \code{simulateSymbolicModel} must be called with \code{returnGraph=TRUE}. Alternatively, \code{stateGraph} can be an object of class \code{TransitionTable}, which can be extracted using the functions \code{\link{getTransitionTable}}, \code{\link{getBasinOfAttraction}}, or \code{\link{getStateSummary}} } \item{highlightAttractors}{ If this parameter is true, edges in attractors are drawn bold and with a different line type (which can be specified in \code{attractor.lty}). Defaults to TRUE. } \item{colorBasins}{ If set to true, each basin of attraction is drawn in a different color. Colors can be specified in \code{colorSet}. Defaults to TRUE. } \item{colorSet}{ An optional vector specifying the colors to be used for the different attractor basins. If not supplied, a default color set is used. } \item{drawLegend}{ If set to true and \code{colorBasins} is true, a legend for the colors of the basins of attraction is drawn. Defaults to TRUE. } \item{drawLabels}{ If set to true, the binary encodings of the states are drawn beside the vertices of the graph. As this can be confusing for large graphs, the default value is FALSE. } \item{layout}{ A layouting function that determines the placement of the nodes in the graph. Please refer to the \code{\link[igraph]{layout}} manual entry in the \pkg{igraph} package for further details. By default, the Fruchterman-Reingold algorithm is used. } \item{piecewise}{ If set to true, a piecewise layout is used, i.e. the subgraphs corresponding to different basins of attraction are separated and layouted separately. } \item{basin.lty}{ The line type used for edges in a basin of attraction. Defaults to 2 (dashed). } \item{attractor.lty}{ If \code{highlightAttractors} is true, this specifies the line type for edges in an attractor. Defaults to 1 (straight). } \item{plotIt}{ If this is true, a plot is generated. Otherwise, only an object of class \code{igraph} is returned, but no plot is drawn. } \item{\dots}{ Further graphical parameters to be passed to \code{\link[igraph:plot.graph]{plot.igraph}}. } } \details{ This function uses the \code{\link[igraph:plot.graph]{plot.igraph}} function from the \pkg{igraph} package. The plots are customizeable using the \code{\dots} argument. For details on possible parameters, please refer to \code{\link[igraph:plot.common]{igraph.plotting}}. } \value{ Returns an invisible object of class \code{igraph} containing the state graph, including color and line attributes. } \seealso{ \code{\link{getAttractors}}, \code{\link{simulateSymbolicModel}}, \code{\link{getTransitionTable}}, \code{\link{getBasinOfAttraction}}, \code{\link{getStateSummary}}, \code{\link{plotNetworkWiring}}, \code{\link[igraph:plot.common]{igraph.plotting}} } \examples{ # load example data data(cellcycle) # get attractors attractors <- getAttractors(cellcycle) # plot state graph \dontrun{ plotStateGraph(attractors, main="Cell cycle network") } } % Add one or more standard keywords, see file 'KEYWORDS' in the % R documentation directory. \keyword{Boolean network attractor cycle basin transition state graph plot} ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/man/plotSequence.Rd�������������������������������������������������������������������������0000644�0001760�0000144�00000015676�12473107364�015403� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{plotSequence} \alias{plotSequence} \title{ Plot a sequence of states } \description{ Visualizes sequences of states in synchronous Boolean networks, either by drawing a table of the involved states in two colors, or by drawing a graph of transitions between the successive states. } \usage{ plotSequence(network, startState, includeAttractorStates = c("all","first","none"), sequence, title = "", mode=c("table","graph"), plotFixed = TRUE, grouping = list(), onColor="green", offColor="red", layout, drawLabels=TRUE, drawLegend=TRUE, highlightAttractor=TRUE, reverse = FALSE, ...) } \arguments{ \item{network}{ An object of class \code{BooleanNetwork} or \code{SymbolicBooleanNetwork} for which a sequence of state transitions is calculated } \item{startState}{ The start state of the sequence } \item{includeAttractorStates}{ Specifies whether the actual attractor states are included in the plot or not (see also \code{\link{getPathToAttractor}}). If \code{includeAttractorStates = "all"} (which is the default behaviour), the sequence ends when the attractor was traversed once. If \code{includeAttractorStates = "first"}, only the first state of attractor is added to the sequence. If {includeAttractorStates = "none"}, the sequence ends with the last non-attractor state. } \item{sequence}{ The alternative call to \code{plotSequence} requires the specification of the sequence itself instead of the network and the start state. The sequence must be provided as a data frame with the genes in the columns and the successive states in the rows. For example, sequences can be obtained using \code{\link{getPathToAttractor}} or \code{\link{getAttractorSequence}} (however, the specialized plot \code{\link{plotAttractors}} exists for attractors).} \item{title}{ An optional title for the plot } \item{mode}{Switches between two kinds of attractor plots. See Details for more information. Default is "table".} \item{plotFixed}{This optional parameter is only used if \code{mode="table"}. If this is true, genes with fixed values are included in the plot. Otherwise, these genes are not drawn. } \item{grouping}{This optional parameter is only used if \code{mode="table"} and specifies a structure to form groups of genes in the plot. This is a list with the following elements: \describe{ \item{class}{A vector of names for the groups. These names will be printed in the region belonging to the group in the plot.} \item{index}{A list with the same length as \code{class}. Each element is a vector of gene names or gene indices belonging to the group.}} } \item{onColor}{This optional parameter is only used if \code{mode="table"} and specifies the color value for the 1/ON values in the table. Defaults to green. } \item{offColor}{This optional parameter is only used if \code{mode="table"} and specifies the color value for the 0/OFF values in the table. Defaults to red. } \item{layout}{If \code{mode="graph"}, this parameter specifies a layouting function that determines the placement of the nodes in the graph. Please refer to the \code{\link[igraph]{layout}} manual entry in the \pkg{igraph} package for further details. By default, the nodes are placed in a horizontal line. } \item{drawLabels}{This parameter is only relevant if \code{mode="graph"}. It determines whether the nodes of the graph are annotated with the corresponding values of the genes in the attractor states. } \item{drawLegend}{Specifies whether a color key for the ON/OFF states is drawn if \code{mode="table"}. Defaults to \code{TRUE}. } \item{highlightAttractor}{ If set to true, the attractor states are highlighted in the plot. If \code{mode="table"}, a line is drawn at the begin of the attractor, and the states are labeled correspondingly. If \code{mode="graph"}, the attractor transitions are drawn as bold lines. Information on the attractor must be supplied in the attribute \code{attractor} of the sequence, which is a vector of indices of the states that belong to the attractor. This attribute is usually present if the sequence was obtained using \code{\link{getPathToAttractor}}. } \item{reverse}{ Specifies the order of the genes in the plot. By default, the first gene is placed in the first row of the plot. If \code{reverse=TRUE} (which was the default until \pkg{BoolNet} version 2.0.2), the first gene in the network is placed in the bottom row of the plot. } \item{\dots}{ Further graphical parameters to be passed to \code{\link[igraph:plot.graph]{plot.igraph}} if \code{mode="graph"}. } } \details{ This function comprises two different types of plots: The "table" mode visualizes the gene values of the states in the sequence. The figure is a table with the genes in the rows and the successive states of the sequence in the columns. Cells of the table are (by default) red for 0/OFF values and green for 1/ON values. If \code{grouping} is set, the genes are rearranged according to the indices in the group, horizontal separation lines are plotted between the groups, and the group names are printed. The "graph" mode visualizes the transitions between different states. It creates a graph in which the vertices are the states in the sequence and the edges are state transitions among these states. The function can be called with different types of inputs: The user can specify the parameters \code{network}, \code{startState} and \code{includeAttractorStates}), in which case \code{\link{getPathToAttractor}} is called to obtain the sequence. Alternatively, the sequence can be supplied directly as a data frame in the \code{sequence} parameter. } \value{ If \code{mode="table"}, a matrix corresponding to the table is returned. The matrix has the genes in the rows and the states of the attractors in the columns. If \code{sequence} was supplied, this corresponds to the transposed input whose rows may be rearranged if \code{grouping} was set. If \code{mode="graph"}, an object of class \code{igraph} describing the graph for the sequence is returned. } \seealso{ \code{\link{sequenceToLaTeX}}, \code{\link{plotAttractors}}, \code{\link{attractorsToLaTeX}}, \code{\link{getPathToAttractor}}, \code{\link{getAttractorSequence}}, \code{\link{simulateSymbolicModel}} } \examples{ # load example data data(cellcycle) # alternative 1: supply network and start state # and plot sequence as a table plotSequence(network=cellcycle, startState=rep(1,10), includeAttractorStates="all") # alternative 2: calculate sequence in advance sequence <- getPathToAttractor(cellcycle, state=rep(1,10), includeAttractorStates="all") # plot sequence as a graph plotSequence(sequence=sequence, mode="graph") } \keyword{Boolean network state path sequence plot} ������������������������������������������������������������������BoolNet/man/print.AttractorInfo.Rd������������������������������������������������������������������0000644�0001760�0000144�00000002305�12466166264�016635� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{print.AttractorInfo} \Rdversion{1.1} \alias{print.AttractorInfo} \title{ Print attractor cycles } \description{ Specialized print method to print the attractor cycles stored in an \code{AttractorInfo} object. For simple or steady-state attractors, the states of the attractors are printed in binary encoding in the order they are reached. For asynchronous complex/loose attractors, the possible transitions of the states in the attractor are printed. The method can print either the full states, or only the active genes of the states. } \usage{ \method{print}{AttractorInfo}(x, activeOnly = FALSE, ...) } \arguments{ \item{x}{ An object of class \code{AttractorInfo} to be printed } \item{activeOnly}{ If set to true, a state is represented by a list of active genes (i.e., genes which are set to 1). If set to false, a state is represented by a binary vector with one entry for each gene, specifying whether the gene is active or not. Defaults to \code{FALSE}. } \item{\dots}{ Further parameters for the \code{\link{print}} method. Currently not used. } } \value{ Invisibly returns the printed object } \seealso{ \code{\link{print}}, \code{\link{getAttractors}} } \keyword{attractor print} ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/man/perturbTrajectories.Rd������������������������������������������������������������������0000644�0001760�0000144�00000007361�12466166264�016774� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{perturbTrajectories} \alias{perturbTrajectories} \title{ Perturb the state trajectories and calculate robustness measures } \description{ Perturbs the state trajectories of a network and assesses the robustness by comparing the successor states or the attractors of a set of initial states and a set of perturbed copies of these initial states. } \usage{ perturbTrajectories(network, measure = c("hamming", "sensitivity", "attractor"), numSamples = 1000, flipBits = 1, updateType = c("synchronous", "asynchronous", "probabilistic"), gene, ...) } \arguments{ \item{network}{ A network structure of class \code{BooleanNetwork}, \code{SymbolicBooleanNetwork} or \code{ProbabilisticBooleanNetwork} whose robustness is measured. } \item{measure}{ Defines the way the robustness is measured (see Details). } \item{numSamples}{ The number of randomly generated pairs of initial states and perturbed copies. Defaults to 1000. } \item{flipBits}{ The number of bits that are flipped to generate a perturbed copy of an initial state. Defaults to 1. } \item{updateType}{ If \code{measure="hamming"}, the type of update that is performed to calculate successor states. } \item{gene}{ If \code{measure="sensitivity"}, the name or index of the gene for whose transition function the average sensitivity is calculated. } \item{\dots}{ Further parameters to \code{\link{stateTransition}} and \code{\link{getAttractors}}. } } \details{ The function generates a set of \code{numSamples} initial states and then applies \code{flipBits} random bit flips to each initial state to generate a perturbed copy of each initial state. For each pair of initial state and perturbed state, a robustness statistic is calculated depending \code{measure}: If \code{measure="hamming"}, the normalized Hamming distances between the successor states of each initial state and the corresponding perturbed state are calculated. If \code{measure="sensitivity"}, the average sensitivity of a specific transition function (specified in the \code{gene} parameter) is approximated: The statistic is a logical vector that is \code{TRUE} if \code{gene} differs in the successor states of each initial state and the corresponding perturbed state. If \code{measure="attractor"}, the attractors of all initial states and all perturbed states are identified. The statistic is a logical vector specifying whether the attractors are identical in each pair of initial state and perturbed initial state. } \value{ A list with the following items: \item{stat}{A vector of size \code{numSamples} containing the robustness statistic for each pair of initial state and perturbed copy.} \item{value}{The summarized statistic (i.e. the mean value) over all state pairs.} } \references{ I. Shmulevich and S. A. Kauffman (2004), Activities and Sensitivities in Boolean Network Models. Physical Review Letters 93(4):048701. } \seealso{ \code{\link{testNetworkProperties}}, \code{\link{perturbNetwork}} } \examples{ data(cellcycle) # calculate average normalized Hamming distance of successor states hamming <- perturbTrajectories(cellcycle, measure="hamming", numSamples=100) print(hamming$value) # calculate average sensitivity of transition function for gene "Cdh1" sensitivity <- perturbTrajectories(cellcycle, measure="sensitivity", numSamples=100, gene="Cdh1") print(sensitivity$value) # calculate percentage of equal attractors for state pairs attrEqual <- perturbTrajectories(cellcycle, measure="attractor", numSamples=100) print(attrEqual$value) } \keyword{Boolean network probabilistic Boolean network, PBN, perturbation perturb trajectory noise robustness} �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/man/examplePBN.Rd���������������������������������������������������������������������������0000644�0001760�0000144�00000001671�12466166264�014723� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{examplePBN} \alias{examplePBN} \docType{data} \title{ An artificial probabilistic Boolean network } \description{ An artificial probabilistic Boolean network example introduced by Shmulevich et al. } \usage{data(examplePBN)} \details{ This artificial network is introduced by Shmulevich et al. for a step-by-step description of their Markov chain algorithm. It is included as a general example for a probabilistic Boolean network. The network consists of 3 genes, where gene 1 and gene 3 have two alternative transition functions, and gene 1 has a unique transition function. } \source{ I. Shmulevich, E. R. Dougherty, S. Kim, W. Zhang (2002), Probabilistic Boolean networks: a rule-based uncertainty model for gene regulatory networks. Bioinformatics 18(2):261--274. } \examples{ data(examplePBN) # the network is stored in a variable called 'examplePBN' print(examplePBN) } \keyword{datasets probabilistic Boolean network PBN} �����������������������������������������������������������������������BoolNet/man/print.TransitionTable.Rd����������������������������������������������������������������0000644�0001760�0000144�00000002415�12466166264�017162� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{print.TransitionTable} \Rdversion{1.1} \alias{print.TransitionTable} \alias{print.BooleanStateInfo} \title{ Print a transition table } \description{ Specialized print method to print a transition table with the initial state in the first column, the successor state in the second column, the basin of attraction to which the state leads in the third column, and the number of transitions to the attractor in the fourth column. } \usage{ \method{print}{TransitionTable}(x, activeOnly = FALSE, ...) \method{print}{BooleanStateInfo}(x, activeOnly=FALSE, ...) } \arguments{ \item{x}{ An object of class \code{TransitionTable} or \code{BooleanStateInfo} to be printed } \item{activeOnly}{ If set to true, a state is represented by a list of active genes (i.e., genes which are set to 1). If set to false, a state is represented by a binary vector with one entry for each gene, specifying whether the gene is active or not. Defaults to \code{FALSE}. } \item{\dots}{ Further parameters for the \code{\link{print}} method. Currently not used. } } \value{ Invisibly returns the printed object } \seealso{ \code{\link{print}}, \code{\link{getTransitionTable}}, \code{\link{getBasinOfAttraction}}, \code{\link{getStateSummary}} } \keyword{transition table print} ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/man/simulateSymbolicModel.Rd����������������������������������������������������������������0000644�0001760�0000144�00000017600�12473107364�017227� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{simulateSymbolicModel} \alias{simulateSymbolicModel} \title{ Simulate a symbolic Boolean network } \description{ This function simulates Boolean networks in a symbolic representation, possibly with additional temporal qualifiers. The function can identify attractors, determine the state transition graph, and generate sequences of successive states. } \usage{ simulateSymbolicModel(network, method = c("exhaustive", "random", "chosen", "sat.exhaustive", "sat.restricted"), startStates = NULL, returnSequences = (!(match.arg(method) \%in\% c("sat.exhaustive", "sat.restricted"))), returnGraph = (!(match.arg(method) \%in\% c("sat.exhaustive", "sat.restricted"))), returnAttractors = TRUE, maxTransitions = Inf, maxAttractorLength = Inf, canonical = TRUE) } \arguments{ \item{network}{ A network structure of class \code{SymbolicBooleanNetwork}. These networks can be read from files by \code{\link{loadNetwork}}, \code{\link{loadBioTapestry}} or \code{\link{loadSBML}} with the \code{symbolic=TRUE} flag. } \item{startStates}{ An optional parameter specifying the start states. If this is an integer value, it denotes the number of random start states to generate. Otherwise, it has to be a list of states. The list elements must either be vectors with one value for each gene in the network, or matrices with the genes in the columns and multiple predecessor states in the rows. These predecessor states may be evaluated if temporal predicates in the network have a time delay of more than one. If the number of supplied predecessor states is smaller than the maximum time delay in the network, genes are assumed to have had the same value as in the first supplied state prior to this state. In particular, if only a single state is supplied, it is assumed that the network always resided in this state prior to starting the simulation. } \item{method}{ The simulation method to be used (see details). If \code{method} is not specified, the desired method is inferred from the type of \code{startStates}. } \item{returnSequences}{ If set to true (and no SAT-based method is chosen), the return value has an element \code{sequences} specifying the sequences of states to the attractor. } \item{returnGraph}{ If set to true (and no SAT-based method is chosen), the return value has an element \code{graph} specifying the state transition graph of the network. } \item{returnAttractors}{ If set to true, the return value has an element \code{attractors} containing a list of identified attractors. } \item{maxTransitions}{ The maximum number of state transitions to be performed for each start state (defaults to \code{Inf}). } \item{maxAttractorLength}{If \code{method="sat.restricted"}, this required parameter specifies the maximum size of attractors (i.e. the number of states in the loop) to be searched. For \code{method="sat.exhaustive"}, this parameter is optional and specifies the maximum attractor length for the initial length-restricted search phase that is performed to speed up the subsequent exhaustive search. In this case, changing this value might bring performance benefits, but does not change the results.} \item{canonical}{ If set to true and \code{returnAttractors=TRUE}, the states in the attractors are rearranged such that the state whose binary encoding makes up the smallest number is the first element of the vector. This ensures that attractors determined in runs with different start states are comparable, as the cycles may have been entered at different states. } } \details{ Similarly to \code{\link{getAttractors}}, the symbolic simulator supports different simulation modes which can be specified in the \code{method} parameter: \itemize{ \item{Exhaustive search} {If \code{method="exhaustive"}, all possible states in the network are used as start states. If the network has time delays greater than one (temporal network), this means that exhaustive search does not only cover all 2^n possible states for a network with n genes, but also all possible state histories of those genes for which longer delays are required.} \item{Heuristic search} {For \code{method="random"} or \code{method="chosen"}, a subset of states is used as start states for the simulation. If \code{method="random"}, \code{startStates} is interpreted as an integer value specifying the number of states to be generated randomly. The algorithm is then initialized with these random start states. If \code{method="chosen"}, \code{startStates} is interpreted as a list of binary vectors, each specifying one start state (see also parameter description above for details). } \item{SAT-based attractor search} { If \code{method} is "sat.exhaustive" or "sat.restricted", the simulator transforms the network into a satisfiability problem and solves it using Armin Biere's PicoSAT solver (see also \code{\link{getAttractors}} for more details). If \code{method="sat.restricted"}, only attractors comprising up to \code{maxAttractorLength} states are identified. Otherwise, the algorithm by Dubrova and Teslenko is applied to identify all attractors. As the SAT-based approaches identify attractors directly, no state sequences and no transition graph are returned.} } } \value{ Returns a list of class \code{SymbolicSimulation} containing the simulation results: If \code{returnSequences} is true and no SAT-based method was chosen, the list contains an element \code{sequences} consisting of a list of data frames, each representing the state transitions performed from one start state (denoted as time step 0) to the attractor. Here, the columns correspond to the genes in the network, and the rows correspond to the states. Apart from the immediate start state, the sequences may also contain the supplied or assumed predecessor states of the start state (marked by a negative time step t) if the network contains time delays greater than one. If \code{returnGraph} is true and no SAT-based method was chosen, the list contains an element \code{graph} of class \code{TransitionTable}. Each row of the table corresponds to one state transition from an initial state to a successor state, i.e. an edge in the state transition graph. If \code{returnAttractors} is true, the list contains an element \code{attractors}, which itself is a list of data frames. Each data frame represents one unique attractor, where each column corresponds to a gene, and each row corresponds to one state in the attractor. If both \code{returnSequences} and \code{returnAttractors} are true, there is an additional element \code{attractorAssignment}. This integer vector specifies the indices of the attractors to which the sequences lead. The structure supports pretty printing using the \code{\link{print}} method.} \references{ E. Dubrova, M. Teslenko (2011), A SAT-based algorithm for finding attractors in synchronous Boolean networks. IEEE/ACM Transactions on Computational Biology and Bioinformatics 8(5):1393--1399. A. Biere (2008), PicoSAT Essentials. Journal on Satisfiability, Boolean Modeling and Computation 4:75-97. } \seealso{ \code{\link{loadNetwork}}, \code{\link{loadBioTapestry}}, \code{\link{loadSBML}}, \code{\link{getAttractors}}, \code{\link{plotAttractors}}, \code{\link{attractorsToLaTeX}}, \code{\link{getTransitionTable}}, \code{\link{getBasinOfAttraction}}, \code{\link{getAttractorSequence}}, \code{\link{getStateSummary}}, \code{\link{getPathToAttractor}}, \code{\link{fixGenes}} } \examples{ data(igf) # exhaustive state space simulation sim <- simulateSymbolicModel(igf) plotAttractors(sim) # exhaustive attractor search using SAT solver sim <- simulateSymbolicModel(igf, method="sat.exhaustive") plotAttractors(sim) } \keyword{simulation symbolic Boolean network temporal predicates} ��������������������������������������������������������������������������������������������������������������������������������BoolNet/man/print.MarkovSimulation.Rd���������������������������������������������������������������0000644�0001760�0000144�00000002464�12466166264�017370� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{print.MarkovSimulation} \alias{print.MarkovSimulation} \title{ Print the results of a Markov chain simulation } \description{ A specialized method to print an object of class \code{MarkovSimulation}. This prints all states that have a non-zero probability to be reached after the number of iterations in the Markov simulation. If the simulation was run with \code{returnTable=TRUE}, it also prints a table of state transitions and their probabilities to be chosen in a single step. } \usage{ \method{print}{MarkovSimulation}(x, activeOnly = FALSE, ...) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{x}{ An object of class \code{MarkovSimulation} to be printed } \item{activeOnly}{ If set to true, a state is represented by a list of active genes (i.e., genes which are set to 1). If set to false, a state is represented by a binary vector with one entry for each gene, specifying whether the gene is active or not. Defaults to \code{FALSE}. } \item{\dots}{ Further parameters for the \code{\link{print}} method. Currently not used. } } \value{ Invisibly returns the printed object } \seealso{ \code{\link{print}}, \code{\link{markovSimulation}} } \keyword{print Markov chain simulation probabilistic Boolean network PBN}% __ONLY ONE__ keyword per line ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/man/print.ProbabilisticBooleanNetwork.Rd����������������������������������������������������0000644�0001760�0000144�00000002500�12466166264�021513� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{print.ProbabilisticBooleanNetwork} \Rdversion{1.1} \alias{print.ProbabilisticBooleanNetwork} \alias{print.BooleanNetworkCollection} \title{ Print a probabilistic Boolean network } \description{ A specialized method to print an object of class \code{ProbabilisticBooleanNetwork}. For backward compatibility, this method also prints objects of class \code{BooleanNetworkCollection}, which have been replaced by \code{ProbabilisticBooleanNetwork}. This prints all alternative transition functions and their probabilities. If the network is the result of a reconstruction from time series measurements, it also outputs the error the functions make on the time series. If genes are knocked-out or over-expressed, these genes are listed below the functions. } \usage{ \method{print}{ProbabilisticBooleanNetwork}(x, ...) \method{print}{BooleanNetworkCollection}(x, ...) } \arguments{ \item{x}{ An object of class \code{ProbabilisticBooleanNetwork} or \code{BooleanNetworkCollection} to be printed } \item{\dots}{ Further parameters for the \code{\link{print}} method. Currently not used. } } \value{ Invisibly returns the printed object } \seealso{ \code{\link{print}}, \code{\link{reconstructNetwork}}, \code{\link{loadNetwork}} } \keyword{network Boolean network probabilistic Boolean network PBN print} ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/man/loadBioTapestry.Rd����������������������������������������������������������������������0000644�0001760�0000144�00000003773�12466166264�016042� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{loadBioTapestry} \alias{loadBioTapestry} \title{ Import a network from BioTapestry } \description{ Imports a Boolean network from a BioTapestry file (*.btp). BioTapestry is an interactive tool for building, visualizing, and simulating gene-regulatory networks, and can be accessed at \url{http://www.biotapestry.org}. } \usage{ loadBioTapestry(file, symbolic = FALSE) } \arguments{ \item{file}{ The name of the file to import. This must be a BioTapestry XML file (*.btp). } \item{symbolic}{ If set to \code{TRUE}, the function returns an object of class \code{SymbolicBooleanNetwork} with an expression tree representation. Otherwise, it returns an object of class \code{BooleanNetwork} with a truth table representation. } } \details{ The function builds up a Boolean network by importing the nodes, the links between these nodes, and the simulation parameters of the top-level plot of a BioTapestry file. The BioTapestry network should have the following properties: \itemize{ \item All links should be either enhancers or repressors. Unspecified ("neutral") links are ignored. \item In the simulation parameters, each node should specify the correct logical function (AND, OR, XOR) for its inputs. \item Constant genes can be generated by modeling a gene without any input link and setting the simulation parameter \code{initVal} to 0 or 1. } } \value{ A network of class \code{BooleanNetwork} or \code{SymbolicBooleanNetwork}, as described in \code{\link{loadNetwork}}. } \references{ W. J. R. Longabaugh, E. H. Davidson, H. Bolour (2005), Computational representation of developmental genetic regulatory networks. Developmental Biology 283(1):1--16. } \seealso{ \code{\link{loadNetwork}}, \code{\link{loadSBML}} } \examples{ # import the example BioTapestry file # included in the package vignette exampleFile <- system.file("doc/example.btp", package="BoolNet") net <- loadBioTapestry(exampleFile) # print the imported network print(net) } \keyword{BioTapestry import} �����BoolNet/man/truthTableToSymbolic.Rd�����������������������������������������������������������������0000644�0001760�0000144�00000003155�12466166264�017052� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{truthTableToSymbolic} \alias{truthTableToSymbolic} \title{ Convert a network in truth table representation into a symbolic representation } \description{ Converts an object of class \code{BooleanNetwork} into an object of class \code{SymbolicBooleanNetwork} by generating symbolic expression trees. } \usage{ truthTableToSymbolic(network, generateDNFs = FALSE) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{network}{ An object of class \code{BooleanNetwork} to be converted. } \item{generateDNFs}{ This parameter specifies whether formulae in Disjunctive Normal Form are generated instead of the parsing the string expressions that describe the transition functions. If set to FALSE, the original expressions are parsed. If set to "canonical", a canonical Disjunctive Normal Form is generated from each truth table. If set to "short", the canonical DNF is minimized by joining terms (which can be time-consuming for functions with many inputs). If set to TRUE, a short DNF is generated for functions with up to 12 inputs, and a canonical DNF is generated for functions with more than 12 inputs. } } \value{ Returns an object of class \code{SymbolicBooleanNetwork}, as described in \code{\link{loadNetwork}}. } \seealso{ \code{\link{truthTableToSymbolic}}, \code{\link{loadNetwork}} } \examples{ # Convert a truth table representation into a # symbolic representation and back data(cellcycle) symbolicNet <- truthTableToSymbolic(cellcycle) print(symbolicNet) ttNet <- symbolicToTruthTable(symbolicNet) print(cellcycle) } \keyword{Boolean network symbolic Boolean network conversion} �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/man/generateRandomNKNetwork.Rd��������������������������������������������������������������0000644�0001760�0000144�00000021171�12466166264�017463� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{generateRandomNKNetwork} \Rdversion{1.1} \alias{generateRandomNKNetwork} \title{ Generate a random N-K Boolean network } \description{ Generates a random N-K Boolean network (see Kauffman, 1969) using different configurations for the topology, the linkage, and the functions. } \usage{ generateRandomNKNetwork(n, k, topology = c("fixed", "homogeneous", "scale_free"), linkage = c("uniform", "lattice"), functionGeneration = c("uniform", "biased"), validationFunction, failureIterations=10000, simplify = FALSE, noIrrelevantGenes=TRUE, readableFunctions = FALSE, d_lattice = 1, zeroBias = 0.5, gamma = 2.5, approx_cutoff = 100) } \arguments{ \item{n}{ The total number of genes in the network } \item{k}{ If this is a single number, this is either the maximum number of genes in the input of a transition function (for \code{topology="fixed"} and \code{topology="scale_free"}) or the mean number of genes in the input of a function (for \code{topology="homogeneous"}). If \code{topology="fixed"}, this can also be a vector with \code{n} elements specifying the number of input genes for each gene separately. } \item{topology}{ If set to "fixed", all transition functions of the network depend on exactly \code{k} input genes (unless there are irrelevant input genes to be removed if \code{simplify=TRUE} and \code{noIrrelevantGenes=FALSE}). If set to "homogeneous", the number of input genes is drawn independently at random from a Poisson distribution with lambda = k. If set to "scale_free", the number of input genes of each function is drawn from a Zeta distribution with parameter \code{gamma}. } \item{linkage}{ If this parameter is "uniform", the actual input genes are drawn uniformly at random from the total \code{k} genes. If set to "lattice", only genes from the neighbourhood \if{latex}{\cr}\code{(i - d_lattice * k_i):(i + d_lattice * k_i)} are taken, which means that all genes are dependent from other genes in the direct neighbourhood. } \item{functionGeneration}{ This parameter specifies how the truth tables of the transition functions are generated. If set to "uniform", the truth table result column of the function is filled uniformly at random with 0 and 1. If set to "biased", a bias is introduced, where the probability of drawing a 0 is determined by the parameter \code{zeroBias}. As a third option, \code{functionGeneration} can be set to a user-defined function that generates the truth tables. This function must have a single parameter \code{input} that is supplied with a vector of input gene indices. It must return a binary vector of size \code{2^length(input)} corresponding to the result column of the truth table. For the generation of canalyzing and nested canalyzing functions that are often assumed to be biologically plausible, the generation functions \code{\link{generateCanalyzing}} and \code{\link{generateNestedCanalyzing}} are included in \pkg{BoolNet}. } \item{validationFunction}{ An optional function that restricts the generated Boolean functions to certain classes. This can be used if no explicit generation function can be specified in \code{functionGeneration}, but it is nevertheless possible to check whether a generated function belongs to that class or not. The function should have two input parameter \code{input} and \code{func} that receive a candidate function. \code{input} is a matrix of 0/1 integer values specifying the input part of the truth table of the candidate function, with the input genes in the columns. Each of the 2^k rows of \code{input} (where k is the number of input genes) corresponds to one entry of \code{func}, which is an integer vector of 0/1 values corresponding to the output of the candidate function. The validation function should return \code{TRUE} if the candidate function is accepted or \code{FALSE} if it is rejected. } \item{failureIterations}{ The maximum number of iterations the generator tries to generate a function that is accepted by \code{validationFunction} before it gives up and throws an error. Defaults to 10000. } \item{simplify}{ If this is true, \code{\link{simplifyNetwork}} is called to simplify the gene transition functions after the perturbation. This removes irrelevant input genes. Should not be used together with \code{noIrrelevantGenes=TRUE}, as this automatically generates a network that cannot be simplified any further. Defaults to FALSE. } \item{noIrrelevantGenes}{ If set to true, gene transition functions are not allowed to contain irrelevant genes, i.e. the functions have exactly the number of input genes determined by the \code{topology} method. This means that the network cannot be simplified any further, and \code{simplify} should be turned off. The default value is TRUE. } \item{readableFunctions}{ This parameter specifies if readable DNF representations of the transition function truth tables are generated and displayed when the network is printed. If set to FALSE, the truth table result column is displayed. If set to "canonical", a canonical Disjunctive Normal Form is generated from each truth table. If set to "short", the canonical DNF is minimized by joining terms (which can be time-consuming for functions with many inputs). If set to TRUE, a short DNF is generated for functions with up to 12 inputs, and a canonical DNF is generated for functions with more than 12 inputs. } \item{d_lattice}{ The dimension parameter for the lattice if \code{linkage="lattice"}. Defaults to 1. } \item{zeroBias}{ The bias parameter for biased functions for \code{functionGeneration="biased"}. Defaults to 0.5 (no bias). } \item{gamma}{ The Gamma parameter of the Zeta distribution for \code{topology="scale_free"}. Default is 2.5. } \item{approx_cutoff}{ This parameter is only used with \code{topology="scale_free"}. It sets the number of iterations in the sum used to approximate the Riemann Zeta function. Defaults to 100. } } \details{ The function supports a high number of different configurations to generate random networks. Several of the parameters are only needed for special configurations. The generated networks have different structural properties. Refer to the literature for more details. Constant genes are automatically fixed (e.g. knocked-out or over-expressed). This means that they are always set to the constant value, and states with the complementary value are not considered in transition tables etc. If you would like to change this behaviour, use \code{\link{fixGenes}} to reset the fixing. } \value{ An object of class \code{BooleanNetwork} containing the generated random network. The class \if{latex}{\cr}\code{BooleanNetwork} is described in more detail in \code{\link{loadNetwork}}. } \references{ S. A. Kauffman (1969), Metabolic stability and epigenesis in randomly constructed nets. J. Theor. Biol. 22:437--467. S. A. Kauffman (1993), The Origins of Order. Oxford University Press. M. Aldana (2003), Boolean dynamics of networks with scale-free topology. Physica D 185: 45--66. M. Aldana and S. Coppersmith and L. P. Kadanoff (2003), Boolean dynamics with random coupling. In E. Kaplan, J. E. Marsden and K. R. Sreenivasan (editors): Perspectives and Problems in Nonlinear Science, Springer. } \seealso{ \code{\link{perturbNetwork}},\code{\link{loadNetwork}}, \code{\link{simplifyNetwork}}, \code{\link{fixGenes}} } \examples{ # generate different random networks net1 <- generateRandomNKNetwork(n=10, k=10, topology="scale_free", linkage="uniform", functionGeneration="uniform", noIrrelevantGenes=FALSE, simplify=TRUE) net2 <- generateRandomNKNetwork(n=10, k=3, topology="homogeneous", linkage="lattice", functionGeneration="uniform", d_lattice=1.5, simplify=TRUE) net3 <- generateRandomNKNetwork(n=10, k=2, topology="fixed", linkage="uniform", functionGeneration="biased", noIrrelevantGenes=FALSE, zeroBias=0.6) # get attractors print(getAttractors(net1)) print(getAttractors(net2)) print(getAttractors(net3)) } \keyword{LaTeX Boolean network attractor cycle random network} �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/man/chooseNetwork.Rd������������������������������������������������������������������������0000644�0001760�0000144�00000005636�12466166264�015567� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{chooseNetwork} \alias{chooseNetwork} \title{ Extract a single Boolean network from a probabilistic Boolean network } \description{ Creates a \code{BooleanNetwork} object with exactly one function per gene by extracting a specified set of transition functions from a \code{ProbabilisticBooleanNetwork} or \code{BooleanNetworkCollection} object. } \usage{ chooseNetwork(probabilisticNetwork, functionIndices, dontCareValues=NULL, readableFunctions=FALSE) } \arguments{ \item{probabilisticNetwork}{ A \code{ProbabilisticBooleanNetwork} or \code{BooleanNetworkCollection} object as returned by \code{\link{reconstructNetwork}} or \code{\link{loadNetwork}} } \item{functionIndices}{ A vector of function indices with one entry for each gene } \item{dontCareValues}{ If \code{probabilisticNetwork} is of class \code{BooleanNetworkCollection}, this specifies the values to fill in for "don't care" (*) values in the truth tables of the transition functions. This is a list containing one vector of Boolean values for each gene. The lengths of the vectors must coincide with the numbers of "don't care" values in the functions. } \item{readableFunctions}{ If \code{probabilisticNetwork} is of class \code{BooleanNetworkCollection}, the string representations of the transition functions must be refreshed after filling in values for the "don't care" entries. This parameter specifies if readable DNF representations of the transition function truth tables are generated and displayed when the network is printed. If set to FALSE, the truth table result column is displayed. If set to "canonical", a canonical Disjunctive Normal Form is generated from each truth table. If set to "short", the canonical DNF is minimized by joining terms (which can be time-consuming for functions with many inputs). If set to TRUE, a short DNF is generated for functions with up to 12 inputs, and a canonical DNF is generated for functions with more than 12 inputs. } } \value{ Returns an object of class \code{BooleanNetwork} consisting of the transition functions whose indices were specified in \code{functionIndices}. The class \code{BooleanNetwork} is described in more detail in \code{\link{loadNetwork}}. Constant genes are automatically fixed (e.g. knocked-out or over-expressed). This means that they are always set to the constant value, and states with the complementary value are not considered in transition tables etc. If you would like to change this behaviour, use \code{\link{fixGenes}} to reset the fixing. } \seealso{ \code{\link{reconstructNetwork}}, \code{\link{loadNetwork}} } \examples{ # load example data data(examplePBN) # extract a unique network # - always use the first function net <- chooseNetwork(examplePBN, rep(1, length(examplePBN$genes))) # get attractors from this network print(getAttractors(net)) } \keyword{Boolean network probabilistic Boolean network PBN conversion reconstruction} ��������������������������������������������������������������������������������������������������BoolNet/man/loadNetwork.Rd��������������������������������������������������������������������������0000644�0001760�0000144�00000033554�12466166264�015226� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{loadNetwork} \Rdversion{1.1} \alias{loadNetwork} %- Also NEED an '\alias' for EACH other topic documented here. \title{ Load a Boolean network from a file } \description{ Loads a Boolean network or probabilistic Boolean network from a file and converts it to an internal transition table representation. } \usage{ loadNetwork(file, bodySeparator = ",", lowercaseGenes = FALSE, symbolic = FALSE) } \arguments{ \item{file}{ The name of the file to be read } \item{bodySeparator}{ An optional separation character to divide the target factors and the formulas. Default is ",". } \item{lowercaseGenes}{ If set to \code{TRUE}, all gene names are converted to lower case, i.e. the gene names are case-insensitive. This corresponds to the behaviour of \pkg{BoolNet} versions prior to 1.5. Defaults to \code{FALSE}. } \item{symbolic}{ If set to \code{TRUE}, a symbolic representation of class \code{SymbolicBooleanNetwork} is returned. This is not available for asynchronous or probabilistic Boolean networks, but is required for the simulation of networks with extended temporal predicates and time delays (see \code{\link{simulateSymbolicModel}}). If such predicates are detected, the switch is activated by default. } } \details{ Depending on whether the network is loaded in truth table representation or not, the supported network file formats differ slightly. For the truth table representation (\code{symbolic=FALSE}), the language basically consists of expressions based on the Boolean operators AND (&), or (|), and NOT (!). In addition, some convenience operators are included (see EBNF and operator description below). The first line contains a header. In case of a Boolean network with only one function per gene, the header is "targets, functions"; in a probabilistic network, there is an optional third column "probabilities". All subsequent lines contain Boolean rules or comment lines that are omitted by the parser. A rule consists of a target gene, a separator, a Boolean expression to calculate a transition step for the target gene, and an optional probability for the rule (for probabilistic Boolean networks only -- see below). The EBNF description of the network file format is as follows: \preformatted{ Network = Header Newline {Rule Newline | Comment Newline}; Header = "targets" Separator "factors"; Rule = GeneName Separator BooleanExpression [Separator Probability]; Comment = "#" String; BooleanExpression = GeneName | "!" BooleanExpression | "(" BooleanExpression ")" | BooleanExpression " & " BooleanExpression | BooleanExpression " | " BooleanExpression; | "all(" BooleanExpression {"," BooleanExpression} ")" | "any(" BooleanExpression {"," BooleanExpression} ")" | "maj(" BooleanExpression {"," BooleanExpression} ")" | "sumgt(" BooleanExpression {"," BooleanExpression} "," Integer ")" | "sumlt(" BooleanExpression {"," BooleanExpression} "," Integer ")"; GeneName = ? A gene name from the list of involved genes ?; Separator = ","; Integer = ? An integer value?; Probability = ? A floating-point number ?; String = ? Any sequence of characters (except a line break) ?; Newline = ? A line break character ?; } The extended format for Boolean networks with temporal elements that can be loaded if \code{symbolic=TRUE} additionally allows for a specification of time steps. Furthermore, the operators can be extended with iterators that evaluate their arguments over multiple time steps. \preformatted{ Network = Header Newline {Function Newline | Comment Newline}; Header = "targets" Separator "factors"; Function = GeneName Separator BooleanExpression; Comment = "#" String; BooleanExpression = GeneName | GeneName TemporalSpecification | BooleanOperator | TemporalOperator BooleanOperator = BooleanExpression | "!" BooleanExpression | "(" BooleanExpression ")" | BooleanExpression " & " BooleanExpression | BooleanExpression " | " BooleanExpression; TemporalOperator = "all" [TemporalIteratorDef] "(" BooleanExpression {"," BooleanExpression} ")" | "any" [TemporalIteratorDef] "(" BooleanExpression {"," BooleanExpression} ")" | "maj" [TemporalIteratorDef] "(" BooleanExpression {"," BooleanExpression} ")" | "sumgt" [TemporalIteratorDef] "(" BooleanExpression {"," BooleanExpression} "," Integer ")" | "sumlt" [TemporalIteratorDef] "(" BooleanExpression {"," BooleanExpression} "," Integer ")" | "timeis" "(" Integer ")" | "timegt" "(" Integer ")" | "timelt" "(" Integer ")"; TemporalIteratorDef = "[" TemporalIterator "=" Integer ".." Integer "]"; TemporalSpecification = "[" TemporalOperand {"+" TemporalOperand | "-" TemporalOperand} "]"; TemporalOperand = TemporalIterator | Integer TemporalIterator = ? An alphanumeric string ?; GeneName = ? A gene name from the list of involved genes ?; Separator = ","; Integer = ? An integer value?; String = ? Any sequence of characters (except a line break) ?; Newline = ? A line break character ?; } The meaning of the operators is as follows: \describe{ \item{\code{all}}{Equivalent to a conjunction of all arguments. For symbolic networks, the operator can have a time range, in which case the arguments are evaluated for each time point specified in the iterator.} \item{\code{any}}{Equivalent to a disjunction of all arguments. For symbolic networks, the operator can have a time range, in which case the arguments are evaluated for each time point specified in the iterator.} \item{\code{maj}}{Evaluates to true if the majority of the arguments evaluate to true. For symbolic networks, the operator can have a time range, in which case the arguments are evaluated for each time point specified in the iterator.} \item{\code{sumgt}}{Evaluates to true if the number of arguments (except the last) that evaluate to true is greater than the number specified in the last argument. For symbolic networks, the operator can have a time range, in which case the arguments are evaluated for each time point specified in the iterator.} \item{\code{sumlt}}{Evaluates to true if the number of arguments (except the last) that evaluate to true is less than the number specified in the last argument. For symbolic networks, the operator can have a time range, in which case the arguments are evaluated for each time point specified in the iterator.} \item{\code{timeis}}{Evaluates to true if the current absolute time step (i.e. number of state transitions performed from the current start state) is the same as the argument.} \item{\code{timelt}}{Evaluates to true if the current absolute time step (i.e. number of state transitions performed from the current start state) is the less than the argument.} \item{\code{timegt}}{Evaluates to true if the current absolute time step (i.e. number of state transitions performed from the current start state) is greater than the argument.} } If \code{symbolic=FALSE} and there is exactly one rule for each gene, a Boolean network of class \code{BooleanNetwork} is created. In these networks, constant genes are automatically fixed (e.g. knocked-out or over-expressed). This means that they are always set to the constant value, and states with the complementary value are not considered in transition tables etc. If you would like to change this behaviour, use \code{\link{fixGenes}} to reset the fixing. If \code{symbolic=FALSE} and two or more rules exist for the same gene, the function returns a probabilistic network of class \code{ProbabilisticBooleanNetwork}. In this case, alternative rules may be annotated with probabilities, which must sum up to 1 for all rules that belong to the same gene. If no probabilities are supplied, uniform distribution is assumed. If \code{symbolic=TRUE}, a symbolic representation of a (possibly temporal) Boolean network of class \code{SymbolicBooleanNetwork} is created. } \value{ If \code{symbolic=FALSE} and only one function per gene is specified, a structure of class \code{BooleanNetwork} representing the network is returned. It has the following components: \item{genes}{A vector of gene names involved in the network. This list determines the indices of genes in inputs of functions or in state bit vectors.} \item{interactions}{A list with \code{length(genes)} elements, where the i-th element describes the transition function for the i-th gene. Each element has the following sub-components: \describe{ \item{input}{A vector of indices of the genes that serve as the input of the Boolean transition function. If the function has no input (i.e. the gene is constant), the vector consists of a zero element.} \item{func}{The transition function in truth table representation. This vector has \if{latex}{\cr}\code{2^length(input)} entries, one for each combination of input variables. If the gene is constant, the function is 1 or 0.} \item{expression}{A string representation of the Boolean expression from which the truth table was generated} }} \item{fixed}{A vector specifying which genes are knocked-out or over-expressed. For each gene, there is one element which is set to 0 if the gene is knocked-out, to 1 if the gene is over-expressed, and to -1 if the gene is not fixed at all, i. e. can change its value according to the supplied transition function. Constant genes are automatically set to fixed values.} If \code{symbolic=FALSE} and there is at least one gene with two or more alternative transition functions, a structure of class \code{ProbabilisticBooleanNetwork} is returned. This structure is similar to \code{BooleanNetwork}, but allows for storing more than one function in an interaction. It consists of the following components: \item{genes}{A vector of gene names involved in the network. This list determines the indices of genes in inputs of functions or in state bit vectors.} \item{interactions}{A list with \code{length(genes)} elements, where the i-th element describes the alternative transition functions for the i-th gene. Each element is a list of transition functions. In this second-level list, each element has the the following sub-components: \describe{ \item{input}{A vector of indices of the genes that serve as the input of the Boolean transition function. If the function has no input (i.e. the gene is constant), the vector consists of a zero element.} \item{func}{The transition function in truth table representation. This vector has \if{latex}{\cr}\code{2^length(input)} entries, one for each combination of input variables. If the gene is constant, the function is -1.} \item{expression}{A string representation of the underlying Boolean expression} \item{probability}{The probability that the corresponding transition function is chosen} }} \item{fixed}{A vector specifying which genes are knocked-out or over-expressed. For each gene, there is one element which is set to 0 if the gene is knocked-out, to 1 if the gene is over-expressed, and to -1 if the gene is not fixed at all, i. e. can change its value according to the supplied transition function. You can knock-out and over-express genes using \code{\link{fixGenes}}.} If \code{symbolic=TRUE}, a structure of class \code{SymbolicBooleanNetwork} that represents the network as expression trees is returned. It has the following components: \item{genes}{A vector of gene names involved in the network. This list determines the indices of genes in inputs of functions or in state bit vectors.} \item{interactions}{A list with \code{length(genes)} elements, where the i-th element describes the transition function for the i-th gene in a symbolic representation. Each such element is a list that represents a recursive expression tree, possibly consisting of sub-elements (operands) that are expression trees themselves. Each element in an expression tree can be a Boolean/temporal operator, a literal ("atom") or a numeric constant.} \item{internalStructs}{A pointer referencing an internal representation of the expression trees as raw C objects. This is used for simulations and must be set to NULL if \code{interactions} are changed to force a refreshment. } \item{timeDelays}{An integer vector storing the temporal memory sizes required for each of the genes in the network. That is, the vector stores the minimum number of predecessor states of each gene that need to be saved to determine the successor state of the network.} \item{fixed}{A vector specifying which genes are knocked-out or over-expressed. For each gene, there is one element which is set to 0 if the gene is knocked-out, to 1 if the gene is over-expressed, and to -1 if the gene is not fixed at all, i. e. can change its value according to the supplied transition function. Constant genes are automatically set to fixed values.} } \seealso{ \code{\link{getAttractors}}, \code{\link{simulateSymbolicModel}}, \code{\link{markovSimulation}}, \code{\link{stateTransition}}, \code{\link{fixGenes}}, \code{\link{loadSBML}}, \code{\link{loadBioTapestry}} } \examples{ # write example network to file sink("testNet.bn") cat("targets, factors\n") cat("Gene1, !Gene2 | !Gene3\n") cat("Gene2, Gene3 & Gene4\n") cat("Gene3, Gene2 & !Gene1\n") cat("Gene4, 1\n") sink() # read file net <- loadNetwork("testNet.bn") print(net) } \keyword{Boolean network probabilistic Boolean network PBN file logic parse} ����������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/man/toPajek.Rd������������������������������������������������������������������������������0000644�0001760�0000144�00000003666�12466166264�014333� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{toPajek} \Rdversion{1.1} \alias{toPajek} \title{ Export a network to the Pajek file format } \description{ Exports a network to the Pajek file format to visualize transition trajectories. For more information on Pajek, please refer to \url{http://pajek.imfm.si/doku.php} } \usage{ toPajek(stateGraph, file = "boolean.net", includeLabels=FALSE, ...) } \arguments{ \item{stateGraph}{ An object of class \code{AttractorInfo} or \code{SymbolicSimulation}, as returned by \code{\link{getAttractors}} and \code{\link{simulateSymbolicModel}} respectively. As the transition table information in this structure is required, \code{getAttractors} must be called in synchronous mode and with \code{returnTable} set to TRUE. Similarly, \code{simulateSymbolicModel} must be called with \code{returnGraph=TRUE}. Alternatively, \code{stateGraph} can be an object of class \code{TransitionTable}, which can be extracted using the functions \code{\link{getTransitionTable}}, \code{\link{getBasinOfAttraction}}, or \code{\link{getStateSummary}} . } \item{file}{ The name of the output file for Pajek. Defaults to "boolean.net". } \item{includeLabels}{ If set to true, the vertices of the graph in the output file are labeled with the binary encodings of the states. Defaults to FALSE. } \item{\dots}{ This is only for compatibility with previous versions and should not be used. } } \value{ This function has no return value. } \seealso{ \code{\link{getAttractors}}, \code{\link{simulateSymbolicModel}}, \code{\link{getTransitionTable}}, \code{\link{getBasinOfAttraction}}, \code{\link{getStateSummary}}, \code{\link{toSBML}} } \examples{ # load example data data(cellcycle) # get attractors attractors <- getAttractors(cellcycle) # export to Pajek toPajek(attractors, file="pajek_export.net") } % Add one or more standard keywords, see file 'KEYWORDS' in the % R documentation directory. \keyword{Pajek Boolean network attractor cycle basin transition state graph} ��������������������������������������������������������������������������BoolNet/man/saveNetwork.Rd��������������������������������������������������������������������������0000644�0001760�0000144�00000004060�12466166264�015233� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{saveNetwork} \alias{saveNetwork} \title{ Save a network } \description{ Saves synchronous, asynchronous, probabilistic and temporal networks in the \pkg{BoolNet} network file format . } \usage{ saveNetwork(network, file, generateDNFs = FALSE, saveFixed = TRUE) } \arguments{ \item{network}{ An object of class \code{BooleanNetwork} or \code{SymbolicBooleanNetwork} to be exported } \item{file}{ The name of the network file to be created } \item{generateDNFs}{ If \code{network} is a \code{BooleanNetwork} object, this parameter specifies whether formulae in Disjunctive Normal Form are exported instead of the expressions that describe the transition functions. If set to FALSE, the original expressions are exported. If set to "canonical", a canonical Disjunctive Normal Form is generated from each truth table. If set to "short", the canonical DNF is minimized by joining terms (which can be time-consuming for functions with many inputs). If set to TRUE, a short DNF is generated for functions with up to 12 inputs, and a canonical DNF is generated for functions with more than 12 inputs. For objects of class \code{SymbolicBooleanNetwork}, this parameter is ignored. } \item{saveFixed}{ If set to TRUE, knock-outs and overexpression of genes override their transition functions. That is, if a gene in the network is fixed to 0 or 1, this value is saved, regardless of the transition function. If set to FALSE, the transition function is saved. Defaults to TRUE. } } \details{ The network is saved in the \pkg{BoolNet} file format (see \code{\link{loadNetwork}} for details). If the expressions in the transition functions cannot be parsed or \code{generateDNFs} is true, a DNF representation of the transition functions is generated. } \seealso{ \code{\link{loadNetwork}} } \examples{ # load the cell cycle network data(cellcycle) # save it to a file saveNetwork(cellcycle, file="cellcycle.txt") # reload the model print(loadNetwork("cellcycle.txt")) } \keyword{Boolean network probabilistic Boolean network PBN file export} ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/man/print.SymbolicSimulation.Rd�������������������������������������������������������������0000644�0001760�0000144�00000003735�12466166264�017714� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{print.SymbolicSimulation} \alias{print.SymbolicSimulation} \title{ Print simulation results } \description{ Specialized print method to print the information stored in an \code{AttractorInfo} object. By default, the states of the identified attractors are printed in a binary encoding. Furthermore, the state transition graph and the sequences from the start states to the attractors can be printed. The method can print either the full states, or only the active genes of the states. } \usage{ \method{print}{SymbolicSimulation}(x, activeOnly = FALSE, sequences = FALSE, graph = FALSE, attractors = TRUE, ...) } \arguments{ \item{x}{ An object of class \code{SymbolicSimulation} to be printed. } \item{activeOnly}{ If set to true, a state is represented by a list of active genes (i.e., genes which are set to 1). If set to false, a state is represented by a binary vector with one entry for each gene, specifying whether the gene is active or not. Defaults to \code{FALSE}. } \item{sequences}{ If set to true and if \code{\link{simulateSymbolicModel}} has been started with \code{returnSequences=TRUE}, the sequences from the start states to the attractors are printed. Defaults to \code{FALSE}. } \item{graph}{ If set to true if \code{\link{simulateSymbolicModel}} has been started with \code{returnGraph=TRUE}, the state transition table is printed. Defaults to \code{FALSE}. } \item{attractors}{ If set to true if \code{\link{simulateSymbolicModel}} has been started with \code{returnAttractor=TRUE}, the state transition table is printed. Defaults to \code{TRUE}. } \item{\dots}{ Further parameters for the \code{\link{print}} method. Currently not used. } } \value{ Invisibly returns the printed object } \seealso{ \code{\link{simulateSymbolicModel}} } \keyword{print symbolic Boolean network} �����������������������������������BoolNet/man/getTransitionProbabilities.Rd�����������������������������������������������������������0000644�0001760�0000144�00000002676�12466166264�020301� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{getTransitionProbabilities} \alias{getTransitionProbabilities} \title{ Get a matrix of transitions and their probabilities in probabilistic Boolean networks } \description{ Retrieves the state transitions and their probabilities in a probabilistic Boolean network. This takes the transition table information calculated by the \code{\link{markovSimulation}} method. } \usage{ getTransitionProbabilities(markovSimulation) } \arguments{ \item{markovSimulation}{ An object of class \code{MarkovSimulation}, as returned by \code{\link{markovSimulation}}. As the transition table information in this structure is required, \code{\link{markovSimulation}} must be called with \code{returnTable} set to TRUE. } } \value{ Returns a data frame with the first \code{n} columns describing the values of the genes before the transition, the next \code{n} columns describing the values of the genes after the transition, and the last column containing the probability of the transition. Here, \code{n} is the number of genes in the underlying network. Only transitions with non-zero probability are included. } \seealso{ \code{\link{markovSimulation}} } \examples{ # load example network data(examplePBN) # perform a Markov chain simulation sim <- markovSimulation(examplePBN) # print out the probability table print(getTransitionProbabilities(sim)) } \keyword{Boolean network probabilistic Boolean network PBN transition probability} ������������������������������������������������������������������BoolNet/man/getAttractorSequence.Rd�����������������������������������������������������������������0000644�0001760�0000144�00000003067�12466166264�017065� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{getAttractorSequence} \alias{getAttractorSequence} \title{ Decode the state sequence of a synchronous attractor } \description{ Obtains the sequence of states belonging to a single synchronous attractor from the encoded data in an \code{AttractorInfo} structure or in a \code{SymbolicSimulation} structure. } \usage{ getAttractorSequence(attractorInfo, attractorNo) } \arguments{ \item{attractorInfo}{ An object of class \code{AttractorInfo}, as returned by \code{\link{getAttractors}}, or of class \code{SymbolicSimulation}, as returned by \code{\link{simulateSymbolicModel}}. As the transition table information in this structure is required, \code{getAttractors} must be called in synchronous mode and with \code{returnTable} set to TRUE. Similarly, \code{simulateSymbolicModel} must be called with \code{returnGraph=TRUE}. } \item{attractorNo}{ The index of the attractor in \code{attractorInfo} whose state sequence should be obtained } } \value{ Returns a data frame with the genes in the columns. The rows are the successive states of the attractor. The successor state of the last state (i.e. the last row) is the first state (i.e. the first row). } \seealso{ \code{\link{getAttractors}}, \code{\link{simulateSymbolicModel}}, \code{\link{getPathToAttractor}}, \code{\link{plotSequence}}, \code{\link{sequenceToLaTeX}} } \examples{ # load example data data(cellcycle) # get attractors attractors <- getAttractors(cellcycle) # print basin of 7-state attractor print(getAttractorSequence(attractors, 2)) } \keyword{Boolean network attractor cycle sequence state} �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/man/print.BooleanNetwork.Rd�����������������������������������������������������������������0000644�0001760�0000144�00000001302�12466166264�017003� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{print.BooleanNetwork} \Rdversion{1.1} \alias{print.BooleanNetwork} \title{ Print a Boolean network } \description{ A specialized method to print an object of class \code{BooleanNetwork}. This prints the transition functions of all genes. If genes are knocked-out or over-expressed, these genes are listed below the functions. } \usage{ \method{print}{BooleanNetwork}(x, ...) } \arguments{ \item{x}{ An object of class \code{BooleanNetwork} to be printed } \item{\dots}{ Further parameters for the \code{\link{print}} method. Currently not used. } } \value{ Invisibly returns the printed object } \seealso{ \code{\link{print}}, \code{\link{loadNetwork}} } \keyword{network Boolean network print} ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/man/getPathToAttractor.Rd�������������������������������������������������������������������0000644�0001760�0000144�00000006135�12466166264�016513� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{getPathToAttractor} \alias{getPathToAttractor} \title{ Get state transitions between a state and its attractor } \description{ Lists the states in the path from a specified state to the corresponding synchronous attractor. } \usage{ getPathToAttractor(network, state, includeAttractorStates = c("all","first","none")) } \arguments{ \item{network}{Either a network structure of class \code{BooleanNetwork} or \code{SymbolicBooleanNetwork} , or an attractor search result of class \code{AttractorInfo}. In the former case, a synchronous attractor search starting from \code{state} is conducted. In the latter case, \code{network} must be the result of a call to \code{\link{getAttractors}} with \code{returnTable=TRUE}, and its transition table must include \code{state}. } \item{state}{ A binary vector with exactly one entry per gene in the network. If \code{network} is of class \code{SymbolicBooleanNetwork} and makes use of more than one predecessor state, this can also be a matrix with the genes in the columns and multiple predecessor states in the rows. } \item{includeAttractorStates}{ Specifies whether the actual attractor states are included in the resulting table or not. If \code{includeAttractorStates = "all"} (which is the default behaviour), the sequence ends when the attractor was traversed once. If \code{includeAttractorStates = "first"}, only the first state of attractor is added to the sequence. This corresponds to the behaviour prior to \pkg{BoolNet} version 1.5. If {includeAttractorStates = "none"}, the sequence ends with the last non-attractor state. In this case, the sequence can be empty if the start state is an attractor state. } } \value{ Returns a data frame with the genes in the columns. The rows are the successive states from \code{state} to the the corresponding attractor. Depending on \code{includeAttractorStates}, attractor states are included or not. The data frame has an attribute \code{attractor} specifying the indices of the states that belong to the attractor. If \code{includeAttractorStates} is \code{"first"} or \code{"none"}, these indices may correspond to states that are not included in the sequence itself. This attribute is used by \code{\link{plotSequence}} to highlight the attractor states. } \seealso{ \code{\link{getAttractors}}, \code{\link{simulateSymbolicModel}}, \code{\link{getTransitionTable}}, \code{\link{getBasinOfAttraction}}, \code{\link{plotSequence}}, \code{\link{attributes}} } \examples{ # load example network data(cellcycle) # get path from a state to its attractor # include all attractor states path <- getPathToAttractor(cellcycle, rep(1,10), includeAttractorStates="all") print(path) # include only the first attractor state path <- getPathToAttractor(cellcycle, rep(1,10), includeAttractorStates="first") print(path) # exclude attractor states path <- getPathToAttractor(cellcycle, rep(1,10), includeAttractorStates="none") print(path) } \keyword{Boolean network sequence path basin attractor} �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������BoolNet/man/generateTimeSeries.Rd�������������������������������������������������������������������0000644�0001760�0000144�00000006651�12466166264�016517� 0����������������������������������������������������������������������������������������������������ustar �ripley��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\name{generateTimeSeries} \alias{generateTimeSeries} \title{ Generate time series from a network } \description{ Generates time series by simulating successive state transitions from random start states. In addition, the resulting matrices can be perturbed by Gaussian noise. } \usage{ generateTimeSeries(network, numSeries, numMeasurements, type = c("synchronous","asynchronous","probabilistic"), geneProbabilities, perturbations = 0, noiseLevel = 0) } \arguments{ \item{network}{ An object of class \code{BooleanNetwork} or \code{SymbolicBooleanNetwork} that contains the network for which time series are generated } \item{numSeries}{ The number of random start states used to generate successive series of states, that is, the number of time series matrices to generate } \item{numMeasurements}{ The number of states in each of the time series matrices. The first state of each time series is the randomly generated start state. The remaining \code{numMeasurements - 1} states are obtained by successive state transitions. } \item{type}{ The type of state transitions to be performed (see \code{\link{stateTransition}}) } \item{geneProbabilities}{ An optional vector of probabilities for the genes if \code{type="asynchronous"}. By default, each gene has the same probability to be chosen for the next state transition. These probabilities can be modified by supplying a vector of probabilities for the genes which sums up to one. } \item{perturbations}{ If this argument has a value greater than 0, artificial perturbation experiments are generated. That is, \code{perturbations} genes in each time series are knocked out or overexpressed artificially using the \code{\link{fixGenes}} function. } \item{noiseLevel}{ If this is non-zero, it specifies the standard deviation of the Gaussian noise which is added to all entries of the time series matrices. By default, no noise is added to the time series. } } \value{ A list of matrices, each corresponding to one time series. Each row of these matrices contains measurements for one gene on a time line, i. e. column \code{i+1} contains the successor states of column \code{i+1}. If \code{noiseLevel} is non-zero, the matrices contain real values, otherwise they contain only 0 and 1. If \code{perturbations>0}, the result list contains an additional matrix \code{perturbations} specifying the artificial perturbations applied to the different time series. This matrix has \code{numSeries} columns and one row for each gene in the network. A matrix entry is 0 for a knock-out of the corresponding gene in the corresponding time series, 1 for overexpression, and NA for no perturbation. The result format is compatible with the input parameters of \code{\link{binarizeTimeSeries}} \if{latex}{\cr} and \code{\link{reconstructNetwork}}. } \seealso{ \code{\link{stateTransition}}, \code{\link{binarizeTimeSeries}}, \code{\link{reconstructNetwork}} } \examples{ # generate noisy time series from the cell cycle network data(cellcycle) ts <- generateTimeSeries(cellcycle, numSeries=50, numMeasurements=10, noiseLevel=0.1) # binarize the noisy time series bin <- binarizeTimeSeries(ts, method="kmeans")$binarizedMeasurements # reconstruct the network print(reconstructNetwork(bin, method="bestfit")) } \keyword{time series Boolean network synchronous update asynchronous update } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������