rrcov/0000755000176200001440000000000014660625142011413 5ustar liggesusersrrcov/tests/0000755000176200001440000000000014443667016012562 5ustar liggesusersrrcov/tests/tldapp.R0000644000176200001440000000223614443667016014174 0ustar liggesusers## VT::15.09.2013 - this will render the output independent ## from the version of the package suppressPackageStartupMessages(library(rrcov)) library(MASS) dodata <- function(method) { options(digits = 5) set.seed(101) tmp <- sys.call() cat("\nCall: ", deparse(substitute(tmp)),"\n") cat("===================================================\n") data(pottery); show(lda <- LdaPP(origin~., data=pottery, method=method)); show(predict(lda)) data(hemophilia); show(lda <- LdaPP(as.factor(gr)~., data=hemophilia, method=method)); show(predict(lda)) data(anorexia); show(lda <- LdaPP(Treat~., data=anorexia, method=method)); show(predict(lda)) data(Pima.tr); show(lda <- LdaPP(type~., data=Pima.tr, method=method)); show(predict(lda)) data(crabs); show(lda <- LdaPP(sp~., data=crabs, method=method)); show(predict(lda)) cat("===================================================\n") } ## -- now do it: ## Commented out - still to slow ##dodata(method="huber") ##dodata(method="sest") ## VT::14.11.2018 - Commented out: too slow ## dodata(method="mad") ## dodata(method="class") rrcov/tests/tldapp.Rout.save0000644000176200001440000000365414443667016015666 0ustar liggesusers R Under development (unstable) (2018-11-12 r75592) -- "Unsuffered Consequences" Copyright (C) 2018 The R Foundation for Statistical Computing Platform: i386-w64-mingw32/i386 (32-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > ## VT::15.09.2013 - this will render the output independent > ## from the version of the package > suppressPackageStartupMessages(library(rrcov)) > library(MASS) > > dodata <- function(method) { + + options(digits = 5) + set.seed(101) + + tmp <- sys.call() + cat("\nCall: ", deparse(substitute(tmp)),"\n") + cat("===================================================\n") + + data(pottery); show(lda <- LdaPP(origin~., data=pottery, method=method)); show(predict(lda)) + data(hemophilia); show(lda <- LdaPP(as.factor(gr)~., data=hemophilia, method=method)); show(predict(lda)) + data(anorexia); show(lda <- LdaPP(Treat~., data=anorexia, method=method)); show(predict(lda)) + data(Pima.tr); show(lda <- LdaPP(type~., data=Pima.tr, method=method)); show(predict(lda)) + data(crabs); show(lda <- LdaPP(sp~., data=crabs, method=method)); show(predict(lda)) + + cat("===================================================\n") + } > > > ## -- now do it: > > ## Commented out - still to slow > ##dodata(method="huber") > ##dodata(method="sest") > > ## VT::14.11.2018 - Commented out: too slow > ## dodata(method="mad") > ## dodata(method="class") > > proc.time() user system elapsed 0.54 0.06 0.59 rrcov/tests/tsde.Rout.save0000644000176200001440000003505414443667016015340 0ustar liggesusers R Under development (unstable) (2013-08-17 r63608) -- "Unsuffered Consequences" Copyright (C) 2013 The R Foundation for Statistical Computing Platform: i386-w64-mingw32/i386 (32-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > ## Test for singularity > doexact <- function(){ + exact <-function(){ + n1 <- 45 + p <- 2 + x1 <- matrix(rnorm(p*n1),nrow=n1, ncol=p) + x1[,p] <- x1[,p] + 3 + ## library(MASS) + ## x1 <- mvrnorm(n=n1, mu=c(0,3), Sigma=diag(1,nrow=p)) + + n2 <- 55 + m1 <- 0 + m2 <- 3 + x2 <- cbind(rnorm(n2),rep(m2,n2)) + x<-rbind(x1,x2) + colnames(x) <- c("X1","X2") + x + } + print(CovSde(exact())) + } > > dodata <- function(nrep=1, time=FALSE, short=FALSE, full=TRUE){ + + domcd <- function(x, xname, nrep=1){ + n <- dim(x)[1] + p <- dim(x)[2] + + mcd<-CovSde(x) + + if(time){ + xtime <- system.time(dorep(x, nrep))[1]/nrep + xres <- sprintf("%3d %3d %3d\n", dim(x)[1], dim(x)[2], xtime) + } + else{ + xres <- sprintf("%3d %3d\n", dim(x)[1], dim(x)[2]) + } + lpad<-lname-nchar(xname) + cat(pad.right(xname,lpad), xres) + + if(!short){ + + ibad <- which(mcd@wt==0) + names(ibad) <- NULL + nbad <- length(ibad) + cat("Outliers: ",nbad,"\n") + if(nbad > 0) + print(ibad) + if(full){ + cat("-------------\n") + show(mcd) + } + cat("--------------------------------------------------------\n") + } + } + + options(digits = 5) + set.seed(101) # <<-- sub-sampling algorithm now based on R's RNG and seed + + lname <- 20 + + ## VT::15.09.2013 - this will render the output independent + ## from the version of the package + suppressPackageStartupMessages(library(rrcov)) + + data(heart) + data(starsCYG) + data(phosphor) + data(stackloss) + data(coleman) + data(salinity) + data(wood) + + data(hbk) + + data(Animals, package = "MASS") + brain <- Animals[c(1:24, 26:25, 27:28),] + data(milk) + data(bushfire) + + tmp <- sys.call() + cat("\nCall: ", deparse(substitute(tmp)),"\n") + + cat("Data Set n p Half LOG(obj) Time\n") + cat("========================================================\n") + domcd(heart[, 1:2], data(heart), nrep) + domcd(starsCYG, data(starsCYG), nrep) + domcd(data.matrix(subset(phosphor, select = -plant)), data(phosphor), nrep) + domcd(stack.x, data(stackloss), nrep) + domcd(data.matrix(subset(coleman, select = -Y)), data(coleman), nrep) + domcd(data.matrix(subset(salinity, select = -Y)), data(salinity), nrep) + domcd(data.matrix(subset(wood, select = -y)), data(wood), nrep) + domcd(data.matrix(subset(hbk, select = -Y)),data(hbk), nrep) + + domcd(brain, "Animals", nrep) + domcd(milk, data(milk), nrep) + domcd(bushfire, data(bushfire), nrep) + ## VT::19.07.2010: test the univariate SDE + for(i in 1:ncol(bushfire)) + domcd(bushfire[i], data(bushfire), nrep) + cat("========================================================\n") + } > > dogen <- function(nrep=1, eps=0.49){ + + library(MASS) + domcd <- function(x, nrep=1){ + gc() + xtime <- system.time(dorep(x, nrep))[1]/nrep + cat(sprintf("%6d %3d %10.2f\n", dim(x)[1], dim(x)[2], xtime)) + xtime + } + + set.seed(1234) + + ## VT::15.09.2013 - this will render the output independent + ## from the version of the package + suppressPackageStartupMessages(library(rrcov)) + + ap <- c(2, 5, 10, 20, 30) + an <- c(100, 500, 1000, 10000, 50000) + + tottime <- 0 + cat(" n p Time\n") + cat("=====================\n") + for(i in 1:length(an)) { + for(j in 1:length(ap)) { + n <- an[i] + p <- ap[j] + if(5*p <= n){ + xx <- gendata(n, p, eps) + X <- xx$X + tottime <- tottime + domcd(X, nrep) + } + } + } + + cat("=====================\n") + cat("Total time: ", tottime*nrep, "\n") + } > > docheck <- function(n, p, eps){ + xx <- gendata(n,p,eps) + mcd <- CovSde(xx$X) + check(mcd, xx$xind) + } > > check <- function(mcd, xind){ + ## check if mcd is robust w.r.t xind, i.e. check how many of xind + ## did not get zero weight + mymatch <- xind %in% which(mcd@wt == 0) + length(xind) - length(which(mymatch)) + } > > dorep <- function(x, nrep=1){ + + for(i in 1:nrep) + CovSde(x) + } > > #### gendata() #### > # Generates a location contaminated multivariate > # normal sample of n observations in p dimensions > # (1-eps)*Np(0,Ip) + eps*Np(m,Ip) > # where > # m = (b,b,...,b) > # Defaults: eps=0 and b=10 > # > gendata <- function(n,p,eps=0,b=10){ + + if(missing(n) || missing(p)) + stop("Please specify (n,p)") + if(eps < 0 || eps >= 0.5) + stop(message="eps must be in [0,0.5)") + X <- mvrnorm(n,rep(0,p),diag(1,nrow=p,ncol=p)) + nbad <- as.integer(eps * n) + if(nbad > 0){ + Xbad <- mvrnorm(nbad,rep(b,p),diag(1,nrow=p,ncol=p)) + xind <- sample(n,nbad) + X[xind,] <- Xbad + } + list(X=X, xind=xind) + } > > pad.right <- function(z, pads) + { + ### Pads spaces to right of text + padding <- paste(rep(" ", pads), collapse = "") + paste(z, padding, sep = "") + } > > whatis<-function(x){ + if(is.data.frame(x)) + cat("Type: data.frame\n") + else if(is.matrix(x)) + cat("Type: matrix\n") + else if(is.vector(x)) + cat("Type: vector\n") + else + cat("Type: don't know\n") + } > > ## VT::15.09.2013 - this will render the output independent > ## from the version of the package > suppressPackageStartupMessages(library(rrcov)) > > dodata() Call: dodata() Data Set n p Half LOG(obj) Time ======================================================== heart 12 2 Outliers: 5 [1] 2 6 8 10 12 ------------- Call: CovSde(x = x) -> Method: Stahel-Donoho estimator Robust Estimate of Location: height weight 39.8 35.7 Robust Estimate of Covariance: height weight height 38.2 77.1 weight 77.1 188.1 -------------------------------------------------------- starsCYG 47 2 Outliers: 7 [1] 7 9 11 14 20 30 34 ------------- Call: CovSde(x = x) -> Method: Stahel-Donoho estimator Robust Estimate of Location: log.Te log.light 4.42 4.96 Robust Estimate of Covariance: log.Te log.light log.Te 0.0163 0.0522 log.light 0.0522 0.3243 -------------------------------------------------------- phosphor 18 2 Outliers: 2 [1] 1 6 ------------- Call: CovSde(x = x) -> Method: Stahel-Donoho estimator Robust Estimate of Location: inorg organic 13.3 39.7 Robust Estimate of Covariance: inorg organic inorg 133 134 organic 134 204 -------------------------------------------------------- stackloss 21 3 Outliers: 6 [1] 1 2 3 15 17 21 ------------- Call: CovSde(x = x) -> Method: Stahel-Donoho estimator Robust Estimate of Location: Air.Flow Water.Temp Acid.Conc. 57.8 20.7 86.4 Robust Estimate of Covariance: Air.Flow Water.Temp Acid.Conc. Air.Flow 39.7 15.6 25.0 Water.Temp 15.6 13.0 11.9 Acid.Conc. 25.0 11.9 40.3 -------------------------------------------------------- coleman 20 5 Outliers: 8 [1] 1 2 6 10 11 12 15 18 ------------- Call: CovSde(x = x) -> Method: Stahel-Donoho estimator Robust Estimate of Location: salaryP fatherWc sstatus teacherSc motherLev 2.78 58.64 9.09 25.37 6.69 Robust Estimate of Covariance: salaryP fatherWc sstatus teacherSc motherLev salaryP 0.2556 -1.0144 0.6599 0.2673 0.0339 fatherWc -1.0144 1615.9192 382.7846 -4.8287 36.0227 sstatus 0.6599 382.7846 108.1781 -0.7904 9.1027 teacherSc 0.2673 -4.8287 -0.7904 0.9346 -0.0239 motherLev 0.0339 36.0227 9.1027 -0.0239 0.9155 -------------------------------------------------------- salinity 28 3 Outliers: 9 [1] 3 4 5 9 11 16 19 23 24 ------------- Call: CovSde(x = x) -> Method: Stahel-Donoho estimator Robust Estimate of Location: X1 X2 X3 10.84 3.35 22.48 Robust Estimate of Covariance: X1 X2 X3 X1 10.75 -1.62 -2.05 X2 -1.62 4.21 -1.43 X3 -2.05 -1.43 2.63 -------------------------------------------------------- wood 20 5 Outliers: 11 [1] 4 6 7 8 9 10 12 13 16 19 20 ------------- Call: CovSde(x = x) -> Method: Stahel-Donoho estimator Robust Estimate of Location: x1 x2 x3 x4 x5 0.573 0.119 0.517 0.549 0.904 Robust Estimate of Covariance: x1 x2 x3 x4 x5 x1 0.025185 0.004279 -0.001262 -0.000382 -0.001907 x2 0.004279 0.001011 0.000197 -0.000117 0.000247 x3 -0.001262 0.000197 0.003042 0.002034 0.001773 x4 -0.000382 -0.000117 0.002034 0.007943 0.001137 x5 -0.001907 0.000247 0.001773 0.001137 0.005392 -------------------------------------------------------- hbk 75 3 Outliers: 15 [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 53 ------------- Call: CovSde(x = x) -> Method: Stahel-Donoho estimator Robust Estimate of Location: X1 X2 X3 1.59 1.79 1.67 Robust Estimate of Covariance: X1 X2 X3 X1 1.6354 0.0793 0.2284 X2 0.0793 1.6461 0.3186 X3 0.2284 0.3186 1.5673 -------------------------------------------------------- Animals 28 2 Outliers: 13 [1] 2 6 7 8 9 12 13 14 15 16 24 25 28 ------------- Call: CovSde(x = x) -> Method: Stahel-Donoho estimator Robust Estimate of Location: body brain 18.7 64.9 Robust Estimate of Covariance: body brain body 4702 7973 brain 7973 28571 -------------------------------------------------------- milk 86 8 Outliers: 21 [1] 1 2 3 6 11 12 13 14 15 16 17 18 20 27 41 44 47 70 74 75 77 ------------- Call: CovSde(x = x) -> Method: Stahel-Donoho estimator Robust Estimate of Location: X1 X2 X3 X4 X5 X6 X7 X8 1.03 35.90 33.04 26.11 25.10 25.02 123.06 14.37 Robust Estimate of Covariance: X1 X2 X3 X4 X5 X6 X7 X1 4.73e-07 6.57e-05 1.79e-04 1.71e-04 1.62e-04 1.42e-04 6.85e-04 X2 6.57e-05 1.57e+00 1.36e-01 9.28e-02 4.18e-02 1.30e-01 1.58e+00 X3 1.79e-04 1.36e-01 1.12e+00 8.20e-01 8.27e-01 8.00e-01 6.66e-01 X4 1.71e-04 9.28e-02 8.20e-01 6.57e-01 6.41e-01 6.18e-01 5.47e-01 X5 1.62e-04 4.18e-02 8.27e-01 6.41e-01 6.93e-01 6.44e-01 5.71e-01 X6 1.42e-04 1.30e-01 8.00e-01 6.18e-01 6.44e-01 6.44e-01 5.55e-01 X7 6.85e-04 1.58e+00 6.66e-01 5.47e-01 5.71e-01 5.55e-01 4.17e+00 X8 1.40e-05 2.33e-01 1.74e-01 1.06e-01 9.44e-02 9.86e-02 3.54e-01 X8 X1 1.40e-05 X2 2.33e-01 X3 1.74e-01 X4 1.06e-01 X5 9.44e-02 X6 9.86e-02 X7 3.54e-01 X8 1.57e-01 -------------------------------------------------------- bushfire 38 5 Outliers: 23 [1] 1 5 6 7 8 9 10 11 12 13 15 16 28 29 30 31 32 33 34 35 36 37 38 ------------- Call: CovSde(x = x) -> Method: Stahel-Donoho estimator Robust Estimate of Location: V1 V2 V3 V4 V5 105 148 287 223 283 Robust Estimate of Covariance: V1 V2 V3 V4 V5 V1 1964 1712 -10230 -2504 -2066 V2 1712 1526 -8732 -2145 -1763 V3 -10230 -8732 56327 13803 11472 V4 -2504 -2145 13803 3509 2894 V5 -2066 -1763 11472 2894 2404 -------------------------------------------------------- bushfire 38 1 Outliers: 2 [1] 13 30 ------------- Call: CovSde(x = x) -> Method: Stahel-Donoho estimator Robust Estimate of Location: V1 98.5 Robust Estimate of Covariance: V1 V1 431 -------------------------------------------------------- bushfire 38 1 Outliers: 6 [1] 33 34 35 36 37 38 ------------- Call: CovSde(x = x) -> Method: Stahel-Donoho estimator Robust Estimate of Location: V2 141 Robust Estimate of Covariance: V2 V2 528 -------------------------------------------------------- bushfire 38 1 Outliers: 0 ------------- Call: CovSde(x = x) -> Method: Stahel-Donoho estimator Robust Estimate of Location: V3 238 Robust Estimate of Covariance: V3 V3 37148 -------------------------------------------------------- bushfire 38 1 Outliers: 9 [1] 8 9 32 33 34 35 36 37 38 ------------- Call: CovSde(x = x) -> Method: Stahel-Donoho estimator Robust Estimate of Location: V4 210 Robust Estimate of Covariance: V4 V4 2543 -------------------------------------------------------- bushfire 38 1 Outliers: 9 [1] 8 9 32 33 34 35 36 37 38 ------------- Call: CovSde(x = x) -> Method: Stahel-Donoho estimator Robust Estimate of Location: V5 273 Robust Estimate of Covariance: V5 V5 1575 -------------------------------------------------------- ======================================================== > ##doexact() > > proc.time() user system elapsed 0.45 0.10 0.54 rrcov/tests/thubert.Rout.save0000644000176200001440000041252214443667016016055 0ustar liggesusers R Under development (unstable) (2023-03-23 r84036 ucrt) -- "Unsuffered Consequences" Copyright (C) 2023 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > dodata <- function(nrep=1, time=FALSE, short=FALSE, full=TRUE, + method=c("hubert", "hubert.mcd", "locantore", "cov", "classic", + "grid", "proj")) + { + ## Test the PcaXxx() functions on the literature datasets: + ## + ## Call PcaHubert() and the other functions for all regression + ## data sets available in robustbase/rrcov and print: + ## - execution time (if time == TRUE) + ## - loadings + ## - eigenvalues + ## - scores + ## + + dopca <- function(x, xname, nrep=1){ + + n <- dim(x)[1] + p <- dim(x)[2] + if(method == "hubert.mcd") + pca <- PcaHubert(x, k=p) + else if(method == "hubert") + pca <- PcaHubert(x, mcd=FALSE) + else if(method == "locantore") + pca <- PcaLocantore(x) + else if(method == "cov") + pca <- PcaCov(x) + else if(method == "classic") + pca <- PcaClassic(x) + else if(method == "grid") + pca <- PcaGrid(x) + else if(method == "proj") + pca <- PcaProj(x) + else + stop("Undefined PCA method: ", method) + + + e1 <- getEigenvalues(pca)[1] + e2 <- getEigenvalues(pca)[2] + k <- pca@k + + if(time){ + xtime <- system.time(dorep(x, nrep, method))[1]/nrep + xres <- sprintf("%3d %3d %3d %12.6f %12.6f %10.3f\n", dim(x)[1], dim(x)[2], k, e1, e2, xtime) + } + else{ + xres <- sprintf("%3d %3d %3d %12.6f %12.6f\n", dim(x)[1], dim(x)[2], k, e1, e2) + } + lpad<-lname-nchar(xname) + cat(pad.right(xname, lpad), xres) + + if(!short){ + cat("Scores: \n") + print(getScores(pca)) + + if(full){ + cat("-------------\n") + show(pca) + } + cat("----------------------------------------------------------\n") + } + } + + stopifnot(length(nrep) == 1, nrep >= 1) + method <- match.arg(method) + + options(digits = 5) + set.seed(101) # <<-- sub-sampling algorithm now based on R's RNG and seed + + lname <- 20 + + ## VT::15.09.2013 - this will render the output independent + ## from the version of the package + suppressPackageStartupMessages(library(rrcov)) + + data(Animals, package = "MASS") + brain <- Animals[c(1:24, 26:25, 27:28),] + + tmp <- sys.call() + cat("\nCall: ", deparse(substitute(tmp)),"\n") + + cat("Data Set n p k e1 e2\n") + cat("==========================================================\n") + dopca(heart[, 1:2], data(heart), nrep) + dopca(starsCYG, data(starsCYG), nrep) + dopca(data.matrix(subset(phosphor, select = -plant)), data(phosphor), nrep) + dopca(stack.x, data(stackloss), nrep) + ## dopca(data.matrix(subset(coleman, select = -Y)), data(coleman), nrep) # differences between the architectures + dopca(data.matrix(subset(salinity, select = -Y)), data(salinity), nrep) + ## dopca(data.matrix(subset(wood, select = -y)), data(wood), nrep) # differences between the architectures + dopca(data.matrix(subset(hbk, select = -Y)),data(hbk), nrep) + + ## dopca(brain, "Animals", nrep) + dopca(milk, data(milk), nrep) + dopca(bushfire, data(bushfire), nrep) + cat("==========================================================\n") + } > > dogen <- function(nrep=1, eps=0.49, method=c("hubert", "hubert.mcd", "locantore", "cov")){ + + dopca <- function(x, nrep=1){ + gc() + xtime <- system.time(dorep(x, nrep, method))[1]/nrep + cat(sprintf("%6d %3d %10.2f\n", dim(x)[1], dim(x)[2], xtime)) + xtime + } + + set.seed(1234) + + ## VT::15.09.2013 - this will render the output independent + ## from the version of the package + suppressPackageStartupMessages(library(rrcov)) + library(MASS) + + method <- match.arg(method) + + ap <- c(2, 5, 10, 20, 30) + an <- c(100, 500, 1000, 10000, 50000) + + tottime <- 0 + cat(" n p Time\n") + cat("=====================\n") + for(i in 1:length(an)) { + for(j in 1:length(ap)) { + n <- an[i] + p <- ap[j] + if(5*p <= n){ + xx <- gendata(n, p, eps) + X <- xx$X + ## print(dimnames(X)) + tottime <- tottime + dopca(X, nrep) + } + } + } + + cat("=====================\n") + cat("Total time: ", tottime*nrep, "\n") + } > > dorep <- function(x, nrep=1, method=c("hubert", "hubert.mcd", "locantore", "cov")){ + + method <- match.arg(method) + for(i in 1:nrep) + if(method == "hubert.mcd") + PcaHubert(x) + else if(method == "hubert") + PcaHubert(x, mcd=FALSE) + else if(method == "locantore") + PcaLocantore(x) + else if(method == "cov") + PcaCov(x) + else + stop("Undefined PCA method: ", method) + } > > #### gendata() #### > # Generates a location contaminated multivariate > # normal sample of n observations in p dimensions > # (1-eps)*Np(0,Ip) + eps*Np(m,Ip) > # where > # m = (b,b,...,b) > # Defaults: eps=0 and b=10 > # > gendata <- function(n,p,eps=0,b=10){ + + if(missing(n) || missing(p)) + stop("Please specify (n,p)") + if(eps < 0 || eps >= 0.5) + stop(message="eps must be in [0,0.5)") + X <- mvrnorm(n,rep(0,p),diag(1,nrow=p,ncol=p)) + nbad <- as.integer(eps * n) + xind <- vector("numeric") + if(nbad > 0){ + Xbad <- mvrnorm(nbad,rep(b,p),diag(1,nrow=p,ncol=p)) + xind <- sample(n,nbad) + X[xind,] <- Xbad + } + list(X=X, xind=xind) + } > > pad.right <- function(z, pads) + { + ### Pads spaces to right of text + padding <- paste(rep(" ", pads), collapse = "") + paste(z, padding, sep = "") + } > > whatis <- function(x){ + if(is.data.frame(x)) + cat("Type: data.frame\n") + else if(is.matrix(x)) + cat("Type: matrix\n") + else if(is.vector(x)) + cat("Type: vector\n") + else + cat("Type: don't know\n") + } > > ################################################################# > ## VT::27.08.2010 > ## bug report from Stephen Milborrow > ## > test.case.1 <- function() + { + X <- matrix(c( + -0.79984, -1.00103, 0.899794, 0.00000, + 0.34279, 0.52832, -1.303783, -1.17670, + -0.79984, -1.00103, 0.899794, 0.00000, + 0.34279, 0.52832, -1.303783, -1.17670, + 0.34279, 0.52832, -1.303783, -1.17670, + 1.48542, 0.66735, 0.716162, 1.17670, + -0.79984, -1.00103, 0.899794, 0.00000, + 1.69317, 1.91864, -0.018363, 1.76505, + -1.00759, -0.16684, -0.385626, 0.58835, + -0.79984, -1.00103, 0.899794, 0.00000), ncol=4, byrow=TRUE) + + cc1 <- PcaHubert(X, k=3) + + cc2 <- PcaLocantore(X, k=3) + cc3 <- PcaCov(X, k=3, cov.control=CovControlSest()) + + cc4 <- PcaProj(X, k=2) # with k=3 will produce warnings in .distances - too small eignevalues + cc5 <- PcaGrid(X, k=2) # dito + + list(cc1, cc2, cc3, cc4, cc5) + } > > ################################################################# > ## VT::05.08.2016 > ## bug report from Matthieu Lesnoff > ## > test.case.2 <- function() + { + do.test.case.2 <- function(z) + { + if(missing(z)) + { + set.seed(12345678) + n <- 5 + z <- data.frame(v1 = rnorm(n), v2 = rnorm(n), v3 = rnorm(n)) + z + } + + fm <- PcaLocantore(z, k = 2, scale = TRUE) + fm@scale + apply(z, MARGIN = 2, FUN = mad) + scale(z, center = fm@center, scale = fm@scale) + + T <- fm@scores + P <- fm@loadings + E <- scale(z, center = fm@center, scale = fm@scale) - T %*% t(P) + d2 <- apply(E^2, MARGIN = 1, FUN = sum) + ## print(sqrt(d2)); print(fm@od) + print(ret <- all.equal(sqrt(d2), fm@od)) + + ret + } + do.test.case.2() + do.test.case.2(phosphor) + do.test.case.2(stackloss) + do.test.case.2(salinity) + do.test.case.2(hbk) + do.test.case.2(milk) + do.test.case.2(bushfire) + data(rice); do.test.case.2(rice) + data(un86); do.test.case.2(un86) + } > > ## VT::15.09.2013 - this will render the output independent > ## from the version of the package > suppressPackageStartupMessages(library(rrcov)) > > dodata(method="classic") Call: dodata(method = "classic") Data Set n p k e1 e2 ========================================================== heart 12 2 2 812.379735 9.084962 Scores: PC1 PC2 1 2.7072 1.46576 2 59.9990 -1.43041 3 -3.5619 -1.54067 4 -7.7696 2.52687 5 14.7660 -0.95822 6 -20.0489 6.91079 7 1.4189 2.25961 8 -34.3308 -4.23717 9 -6.0487 -0.97859 10 -33.0102 -3.73143 11 -18.6372 0.25821 12 44.5163 -0.54476 ------------- Call: PcaClassic(x = x) Standard deviations: [1] 28.5023 3.0141 ---------------------------------------------------------- starsCYG 47 2 2 0.331279 0.079625 Scores: PC1 PC2 1 0.2072999 0.089973 2 0.6855999 0.349644 3 -0.0743007 -0.061028 4 0.6855999 0.349644 5 0.1775161 0.015053 6 0.4223986 0.211351 7 -0.2926077 -0.516156 8 0.2188453 0.293607 9 0.5593696 0.028761 10 0.0983878 0.074540 11 0.8258140 -0.711176 12 0.4167063 0.180244 13 0.3799883 0.225541 14 -0.9105236 -0.432014 15 -0.7418831 -0.125322 16 -0.4432862 0.048287 17 -1.0503005 -0.229623 18 -0.8393302 -0.007831 19 -0.8126742 -0.195952 20 0.9842316 -0.688729 21 -0.6230699 -0.108486 22 -0.7814875 -0.130933 23 -0.6017038 0.025840 24 -0.1857772 0.155474 25 -0.0020261 0.070412 26 -0.3640775 0.059510 27 -0.3458392 -0.069204 28 -0.1208393 0.053577 29 -0.6033482 -0.176391 30 1.1440521 -0.676183 31 -0.5960920 -0.013765 32 0.0519296 0.259855 33 0.1861752 0.167779 34 1.3802755 -0.632611 35 -0.6542566 -0.173505 36 0.5583690 0.392215 37 0.0561384 0.230152 38 0.1861752 0.167779 39 0.1353472 0.241376 40 0.5355195 0.197080 41 -0.3980701 0.014294 42 0.0277576 0.145332 43 0.2979736 0.234120 44 0.3049884 0.184614 45 0.4889809 0.311684 46 -0.0514512 0.134108 47 -0.5224950 0.037063 ------------- Call: PcaClassic(x = x) Standard deviations: [1] 0.57557 0.28218 ---------------------------------------------------------- phosphor 18 2 2 220.403422 68.346121 Scores: PC1 PC2 1 4.04290 -15.3459 2 -22.30489 -1.0004 3 -24.52683 3.2836 4 -12.54839 -6.0848 5 -19.37044 2.2979 6 15.20366 -19.9424 7 0.44222 -3.1379 8 -10.64042 3.6933 9 -11.67967 5.9670 10 14.26805 -7.0221 11 -4.98832 1.5268 12 8.74986 7.9379 13 12.26290 6.0251 14 6.27607 7.5768 15 17.53246 3.1560 16 -10.17024 -5.8994 17 21.05826 5.4492 18 16.39281 11.5191 ------------- Call: PcaClassic(x = x) Standard deviations: [1] 14.8460 8.2672 ---------------------------------------------------------- stackloss 21 3 3 99.576089 19.581136 Scores: PC1 PC2 PC3 1 20.15352 -4.359452 0.324585 2 19.81554 -5.300468 0.308294 3 15.45222 -1.599136 -0.203125 4 2.40370 -0.145282 2.370302 5 1.89538 0.070566 0.448061 6 2.14954 -0.037358 1.409182 7 4.43153 5.500810 2.468051 8 4.43153 5.500810 2.468051 9 -1.47521 1.245404 2.511773 10 -5.11183 -4.802083 -2.407870 11 -2.07009 3.667055 -2.261247 12 -2.66223 2.833964 -3.238659 13 -4.43589 -2.920053 -2.375287 14 -0.46404 7.323193 -1.234961 15 -9.31959 6.232579 -0.056064 16 -10.33350 3.409533 -0.104938 17 -14.81094 -9.872607 0.628103 18 -12.44514 -3.285499 0.742143 19 -11.85300 -2.452408 1.719555 20 -5.73994 -2.494520 0.098250 21 9.98843 1.484952 -3.614198 ------------- Call: PcaClassic(x = x) Standard deviations: [1] 9.9788 4.4251 1.8986 ---------------------------------------------------------- salinity 28 3 3 11.410736 7.075409 Scores: PC1 PC2 PC3 1 -0.937789 -2.40535 0.812909 2 -1.752631 -2.57774 2.004437 3 -6.509364 -0.78762 -1.821906 4 -5.619847 -2.41333 -1.586891 5 -7.268242 1.61012 1.563568 6 -4.316558 -3.20411 0.029376 7 -2.379545 -3.32371 0.703101 8 0.013514 -3.50586 1.260502 9 0.265262 -0.16736 -2.886883 10 1.890755 2.43623 -0.986832 11 0.804196 2.56656 0.387577 12 0.935082 -1.03559 -0.074081 13 1.814839 -1.61087 0.612290 14 3.407535 -0.15880 2.026088 15 1.731273 2.95159 -1.840286 16 -6.129708 7.21368 2.632273 17 -0.645124 1.06260 0.028697 18 -1.307532 -2.54679 -0.280273 19 0.483455 -0.55896 -3.097281 20 2.053267 0.47308 -1.858703 21 3.277664 -1.31002 0.453753 22 4.631644 -0.78005 1.519894 23 1.864403 5.32790 -0.849694 24 0.623899 4.29317 0.056461 25 1.301696 0.37871 -0.646220 26 2.852126 -0.79527 -0.347711 27 4.134051 -0.92756 0.449222 28 4.781679 -0.20467 1.736616 ------------- Call: PcaClassic(x = x) Standard deviations: [1] 3.3780 2.6600 1.4836 ---------------------------------------------------------- hbk 75 3 3 216.162129 1.981077 Scores: PC1 PC2 PC3 1 26.2072 -0.660756 0.503340 2 27.0406 -0.108506 -0.225059 3 28.8351 -1.683721 0.263078 4 29.9221 -0.812174 -0.674480 5 29.3181 -0.909915 -0.121600 6 27.5360 -0.599697 0.916574 7 27.6617 -0.073753 0.676620 8 26.5576 -0.882312 0.159620 9 28.8726 -1.074223 -0.673462 10 27.6643 -1.463829 -0.868593 11 34.2019 -0.664473 -0.567265 12 35.4805 -2.730949 -0.259320 13 34.7544 1.325449 0.749884 14 38.9522 8.171389 0.034382 15 -5.5375 0.390704 1.679172 16 -7.4319 0.803850 1.925633 17 -8.5880 0.957577 -1.010312 18 -6.6022 -0.425109 0.625148 19 -6.5596 1.154721 -0.640680 20 -5.2525 0.812527 1.377832 21 -6.2771 0.067747 0.958907 22 -6.2501 1.325491 -1.104428 23 -7.2419 0.839808 0.728712 24 -7.6489 1.131606 0.154897 25 -9.0763 -0.670721 -0.167577 26 -5.5967 0.999411 -0.810000 27 -5.1460 -0.339018 1.326712 28 -7.1659 -0.993461 0.125933 29 -8.2104 -0.169338 -0.073569 30 -6.2499 -1.689222 -0.877481 31 -7.3180 -0.225795 1.687204 32 -7.9446 1.473868 -0.541790 33 -6.3604 1.237472 0.061800 34 -8.9812 -0.710662 -0.830422 35 -5.1698 -0.435484 1.102817 36 -5.9995 -0.058135 -0.713550 37 -5.8753 0.852882 -1.610556 38 -8.4501 0.334363 0.404813 39 -8.1751 -1.300317 0.633282 40 -7.4495 0.672712 -0.829815 41 -5.6213 -1.106765 1.395315 42 -6.8571 -0.900977 -1.509937 43 -7.0633 1.987372 -1.079934 44 -6.3763 -1.867647 -0.251224 45 -8.6456 -0.866053 0.630132 46 -6.5356 -1.763526 -0.189838 47 -8.2224 -1.183284 1.615150 48 -5.6136 -1.100704 1.079239 49 -5.9907 0.220336 1.443387 50 -5.2675 0.142923 0.194023 51 -7.9324 0.324710 1.113289 52 -7.5544 -1.033884 1.792496 53 -6.7119 -1.712257 -1.711778 54 -7.4679 1.856542 0.046658 55 -7.4666 1.161504 -0.725948 56 -6.7110 1.574868 0.534288 57 -8.2571 -0.399824 0.521995 58 -5.9781 1.312567 0.926790 59 -5.6960 -0.394338 -0.332938 60 -6.1017 -0.797579 -1.679359 61 -5.2628 0.919128 -1.436156 62 -9.1245 -0.516135 -0.229065 63 -7.7140 1.659145 0.068510 64 -4.9886 0.173613 0.865810 65 -6.6157 -1.479786 0.098390 66 -7.9511 0.772770 -0.998321 67 -7.1856 0.459602 0.216588 68 -8.7345 -0.860784 -1.238576 69 -8.5833 -0.313481 0.832074 70 -5.8642 -0.142883 -0.870064 71 -5.8879 0.186456 0.464467 72 -7.1865 0.497156 -0.826767 73 -6.8671 -0.058606 -1.335842 74 -7.1398 0.727642 -1.422331 75 -7.2696 -1.347832 -1.496927 ------------- Call: PcaClassic(x = x) Standard deviations: [1] 14.70245 1.40751 0.95725 ---------------------------------------------------------- milk 86 8 8 15.940298 2.771345 Scores: PC1 PC2 PC3 PC4 PC5 PC6 PC7 1 6.471620 1.031110 0.469432 0.5736412 1.0294362 -0.6054039 -0.2005117 2 7.439545 0.320597 0.081922 -0.6305898 0.7128977 -1.1601053 -0.1170582 3 1.240654 -1.840458 0.520870 -0.1717469 0.2752079 -0.3815506 0.6004089 4 5.952685 -1.856375 1.638710 0.3358626 -0.5834205 -0.0665348 -0.1580799 5 -0.706973 0.261795 0.423736 0.2916399 -0.5307716 -0.3325563 -0.0062349 6 2.524050 0.293380 -0.572997 0.2466367 -0.3497882 0.0386014 -0.1418131 7 3.136085 -0.050202 -0.818165 -0.0451560 -0.5226337 -0.1597194 0.1669050 8 3.260390 0.312365 -0.110776 0.4908006 -0.5225353 -0.1972222 -0.1068433 9 -0.808914 -2.355785 1.344204 -0.4743284 -0.1394914 -0.1390080 -0.2620731 10 -2.511226 -0.995321 -0.087218 -0.5950040 0.4268321 0.2561918 0.0891170 11 -9.204096 -0.598364 1.587275 0.0833647 0.1865626 0.0358228 0.0920394 12 -12.946774 1.951332 -0.179186 0.2560603 0.1300954 -0.1179820 -0.0999494 13 -10.011603 0.726323 -2.102423 -1.3105560 0.3291550 0.0660007 -0.0794410 14 -11.983644 0.768224 -0.532227 -0.5161201 -0.0817164 -0.4358934 -0.1734612 15 -10.465714 -0.704271 2.035437 0.3713778 -0.0564830 -0.2696432 -0.1940091 16 -2.527619 -0.286939 0.354497 0.8571223 0.1585009 0.2272835 0.4386955 17 -0.514527 -2.895087 1.657181 0.2208239 0.1961109 0.1280496 -0.0182491 18 -1.763931 0.854269 -0.686282 0.2848209 -0.4813608 -0.2623962 0.4757030 19 -1.538419 -0.866477 1.103818 0.3874507 0.2086661 0.1267277 0.2354264 20 0.732842 -1.455594 1.097358 -0.2530588 -0.0302385 0.2654274 0.6093330 21 -2.530155 1.932885 -0.873095 0.6202295 -0.4153607 0.0048383 0.0067484 22 -0.772646 0.675846 -0.259539 0.4844670 -0.0893266 -0.2785557 -0.0424662 23 0.185417 1.413719 0.066135 1.1014470 0.0468093 0.0288637 0.2539994 24 -0.280536 0.908864 0.113221 1.3370381 0.3289929 0.2588134 -0.0356289 25 -3.503626 1.971233 0.203620 1.1975494 -0.3175317 0.1149685 0.0584396 26 -0.639313 1.175503 0.403906 0.9082134 -0.2648165 -0.1238813 -0.0174853 27 -2.923327 -0.365168 0.149478 0.8201430 -0.1544609 -0.4856934 -0.0058424 28 2.505633 3.050292 -0.554424 2.1416405 -0.0378764 0.1002280 -0.3888580 29 4.649504 1.054863 -0.081018 1.1454466 0.1502080 0.4967323 0.0879775 30 1.049282 1.355215 -0.142701 0.7805566 -0.2059790 0.0193142 0.0815524 31 1.962583 1.595396 -2.050642 0.3556747 0.1384801 0.1197984 0.1608247 32 1.554846 0.095644 -1.423054 -0.3175620 0.4260008 -0.1612463 -0.0567196 33 2.248977 0.010348 -0.062469 0.6388269 0.2098648 0.1330250 0.0906704 34 0.993109 -0.828812 0.284059 0.3446686 0.1899096 -0.0515571 -0.2281197 35 -0.335103 1.614093 -0.920661 1.2502617 0.2435013 0.1264875 0.0469238 36 4.346795 1.208134 0.368889 1.1429977 -0.1362052 -0.0158169 -0.0183852 37 0.992634 2.013738 -1.350619 0.8714694 0.0057776 -0.2122691 0.1760918 38 2.213341 1.706516 -0.705418 1.2670281 -0.0707149 0.0670467 -0.1863588 39 -1.213255 0.644062 0.163988 1.1213961 0.2945355 0.1093574 0.0019574 40 3.942604 -1.704266 0.660327 0.1618506 0.4259076 0.0070193 0.3462765 41 4.262054 1.687193 0.351875 0.5396477 1.0052810 -0.9331689 0.0056063 42 6.865198 -1.091248 1.153585 1.1248797 0.0873276 0.2565221 0.0333265 43 3.476720 0.555449 -1.030771 -0.3015720 -0.1748109 -0.1584968 0.4079902 44 5.691730 -0.141240 0.565189 0.3174238 0.6478440 1.0579977 -0.5387916 45 0.327134 0.152011 -0.394798 0.4998430 0.1599781 0.3159518 0.1623656 46 0.280225 1.569387 -0.100397 1.2800976 0.0446645 0.0946513 0.0461599 47 3.119928 -0.384834 -3.325600 -1.8865310 -0.1334744 0.1249987 -0.2561273 48 0.501542 0.739816 -1.384556 -0.1244721 0.2948958 0.4836170 -0.1182802 49 -1.953218 0.269986 -1.726474 -0.8510637 0.5047958 0.4860651 0.2318735 50 3.706878 -2.400570 1.361047 -0.4949076 0.2180352 0.4080879 0.1156540 51 -1.060358 -0.521609 -1.387412 -1.2767491 -0.0521356 0.1665452 -0.0044412 52 -4.900528 0.157011 -1.015880 -0.9941168 0.2069608 0.3239762 -0.1921715 53 -0.388496 0.062051 -0.643721 -0.8544141 -0.1857141 0.0063293 0.2664606 54 0.109234 -0.018709 -0.242825 -0.2064701 -0.0585165 0.1720867 0.1117397 55 1.176175 0.644539 -0.373694 0.0038605 -0.3436524 0.0194450 -0.0838883 56 0.407259 -0.606637 0.222915 -0.3622451 -0.0737834 0.0228104 0.0297333 57 -1.022756 -0.071860 0.741957 0.2273628 -0.1388444 -0.2396467 -0.2327738 58 0.245419 1.167059 0.225934 0.8318795 -0.5365166 -0.0090816 -0.1680757 59 -1.300617 -1.110325 -0.262740 -0.8857801 -0.0816954 -0.1186886 -0.0928322 60 -1.110561 -0.832357 -0.212713 -0.4754481 -0.4105982 -0.1886992 -0.0602872 61 0.381831 -1.475116 0.601047 -0.6260156 -0.1854501 -0.1749306 -0.0013904 62 2.734462 -1.887861 0.813453 -0.5856987 0.2310656 0.1117041 -0.0293373 63 3.092464 -0.172602 0.017725 0.4874693 -0.5428206 0.0151218 -0.0683340 64 3.092464 -0.172602 0.017725 0.4874693 -0.5428206 0.0151218 -0.0683340 65 0.004744 -2.712679 1.178987 -0.6677199 0.0208119 0.0621903 -0.0655693 66 -2.014851 -1.060090 -0.099959 -0.7225044 -0.1947648 -0.2282902 -0.0505015 67 0.621739 -1.296106 0.255632 -0.3309504 -0.0880200 0.2524306 0.1465779 68 -0.271385 -1.709161 -1.100349 -2.0937671 0.2166264 0.0191278 0.0114174 69 -0.326350 -0.737232 0.021639 -0.3850383 -0.4338287 0.2156624 0.1597594 70 4.187093 9.708082 4.632803 -4.9751240 -0.0881576 0.2392433 0.0568049 71 -1.868507 -1.600166 0.436353 -0.8078214 -0.1530893 0.0479471 -0.1999893 72 2.768081 -0.556824 -0.148923 -0.3197853 -0.5524427 0.0907804 -0.0694488 73 -1.441846 -2.735114 -0.294134 -1.2172969 0.0109453 -0.0562910 0.1505788 74 -10.995490 0.615992 1.950966 1.1687190 0.2798335 0.2713257 0.0652135 75 0.508992 -2.363945 -0.407064 -0.9522316 0.1040307 0.1088110 -0.7368484 76 -1.015714 -0.307662 -1.088162 -1.0181862 -0.0440888 -0.1362208 0.0271200 77 -8.028891 -0.580763 0.933638 0.4619362 0.3379832 -0.1368644 -0.0669441 78 1.763308 -1.336175 -0.127809 -0.7161775 -0.1904861 -0.0900461 0.0037539 79 0.208944 -0.580698 -0.626297 -0.7620610 -0.0262368 -0.2928202 0.0285908 80 -3.230608 1.251352 0.195280 0.8687004 0.1812011 0.2600692 -0.1516375 81 1.498160 0.669731 -0.266114 0.3772866 -0.2769688 -0.1066593 -0.1608395 82 3.232051 -1.776018 0.485524 0.1170945 0.0557260 0.2219872 0.1187681 83 2.999977 -0.228275 -0.467724 -0.4287672 0.0494902 -0.2337809 -0.0718159 84 1.238083 0.320956 -1.806006 -1.0142266 0.2359630 -0.0857149 0.0593938 85 1.276376 -2.081214 2.540850 0.3745805 -0.2596482 -0.1228412 -0.2199985 86 0.930715 0.836457 -1.385153 -0.6074929 -0.2476354 0.1680713 -0.0117324 PC8 1 9.0765e-04 2 2.1811e-04 3 1.1834e-03 4 8.4077e-05 5 9.9209e-04 6 1.6277e-03 7 2.4907e-04 8 6.8383e-04 9 -5.0924e-04 10 3.1215e-04 11 3.0654e-04 12 -1.1951e-03 13 -1.2849e-03 14 -9.0801e-04 15 -1.2686e-03 16 -1.8441e-03 17 -2.1068e-03 18 -5.7816e-04 19 -1.2330e-03 20 3.3857e-05 21 3.8623e-04 22 1.3035e-04 23 -3.8648e-04 24 -1.7400e-04 25 -3.9196e-04 26 -7.6996e-04 27 -4.8042e-04 28 -2.0628e-04 29 -4.5672e-04 30 -1.4716e-04 31 -4.6385e-05 32 -2.0481e-04 33 -3.0020e-04 34 -5.8179e-05 35 1.3870e-04 36 -6.7177e-04 37 -3.0799e-04 38 6.2140e-04 39 4.5912e-04 40 -3.7165e-04 41 -5.4362e-04 42 -1.0155e-03 43 1.3449e-04 44 -5.4761e-04 45 1.0300e-03 46 1.1039e-03 47 -6.4858e-04 48 -7.6886e-05 49 3.2590e-04 50 8.6845e-05 51 4.9423e-04 52 9.2973e-04 53 4.4342e-04 54 4.9888e-04 55 7.2171e-04 56 -3.2133e-05 57 -1.8101e-04 58 -5.4969e-06 59 -8.3841e-04 60 5.9446e-05 61 -6.5683e-05 62 -3.4073e-04 63 -6.5145e-04 64 -6.5145e-04 65 1.4986e-04 66 2.8096e-04 67 -6.5170e-05 68 -1.3775e-04 69 6.8225e-06 70 -1.6290e-04 71 3.9009e-04 72 -1.3981e-04 73 6.2613e-04 74 2.6513e-03 75 3.7088e-04 76 9.9539e-04 77 1.2979e-03 78 5.6500e-04 79 3.0940e-04 80 8.7993e-04 81 -3.1353e-04 82 4.9625e-04 83 -6.3951e-04 84 -4.5582e-04 85 5.9440e-04 86 -3.6234e-04 ------------- Call: PcaClassic(x = x) Standard deviations: [1] 3.99253025 1.66473582 1.10660264 0.96987790 0.33004256 0.29263512 0.20843280 [8] 0.00074024 ---------------------------------------------------------- bushfire 38 5 5 38435.075910 1035.305774 Scores: PC1 PC2 PC3 PC4 PC5 1 -111.9345 4.9970 -1.00881 -1.224361 3.180569 2 -113.4128 7.4784 -0.79170 -0.235184 2.385812 3 -105.8364 10.9615 -3.15662 -0.251662 1.017328 4 -89.1684 8.7232 -6.15080 -0.075611 1.431111 5 -58.7216 -1.9543 -12.70661 -0.151328 1.425570 6 -35.0370 -12.8434 -17.06841 -0.525664 3.499743 7 -250.2123 -49.4348 23.31261 -19.070238 0.647348 8 -292.6877 -69.7708 -21.30815 13.093808 -1.288764 9 -294.0765 -70.9903 -23.96326 14.940985 -0.939076 10 -290.0193 -57.3747 3.51346 1.858995 0.083107 11 -289.8168 -43.3207 16.08046 -1.745099 -1.506042 12 -290.8645 6.2503 40.52173 -7.496479 -0.033767 13 -232.6865 41.8090 37.19429 -1.280348 -0.470837 14 9.8483 25.1954 -14.56970 0.538484 1.772046 15 137.1924 11.8521 -37.12452 -5.130459 -0.586695 16 92.9804 10.3923 -24.97267 -7.551314 -1.867125 17 90.4493 10.5630 -21.92735 -5.669651 -1.001362 18 78.6325 5.2211 -19.74718 -6.107880 -1.939986 19 82.1178 3.6913 -21.37810 -4.259855 -1.278838 20 92.9044 7.1961 -21.22900 -4.125571 -0.127089 21 74.9157 10.2991 -16.60924 -5.660751 -0.406343 22 66.7350 12.0460 -16.73298 -4.669080 1.333436 23 -62.1981 22.7394 6.03613 -5.182356 -0.453624 24 -116.5696 32.3182 12.74846 -1.465657 -0.097851 25 -53.8907 22.4278 -2.18861 -2.742014 -0.990071 26 -60.6384 20.2952 -3.05206 -2.953685 -0.629061 27 -74.7621 28.9067 -0.65817 1.473357 -0.443957 28 -50.2202 37.3457 -1.44989 5.530426 -1.073521 29 -38.7483 50.2749 2.34469 10.156457 -0.416262 30 -93.3887 51.7884 20.08872 8.798781 -1.620216 31 35.3096 41.7158 13.46272 14.464358 -0.475973 32 290.8493 3.5924 7.41501 15.244293 2.141354 33 326.7236 -29.8194 15.64898 2.612061 0.064931 34 322.9095 -30.6372 16.21520 1.248005 -0.711322 35 328.5307 -29.9533 16.49656 1.138916 0.974792 36 325.6791 -30.6990 16.83840 -0.050949 -1.211360 37 323.8136 -30.7474 19.55764 -1.545150 -0.267580 38 325.2991 -30.5350 20.31878 -1.928580 -0.120425 ------------- Call: PcaClassic(x = x) Standard deviations: [1] 196.0487 32.1762 18.4819 6.9412 1.3510 ---------------------------------------------------------- ========================================================== > dodata(method="hubert.mcd") Call: dodata(method = "hubert.mcd") Data Set n p k e1 e2 ========================================================== heart 12 2 2 358.175786 4.590630 Scores: PC1 PC2 1 -12.2285 0.86283 2 -68.9906 -7.43256 3 -5.7035 -1.53793 4 -1.8988 2.90891 5 -24.0044 -2.68946 6 9.9115 8.43321 7 -11.0210 1.77484 8 25.1826 -1.31573 9 -3.2809 -0.74345 10 23.8200 -0.93701 11 9.1344 1.67701 12 -53.6607 -5.08826 ------------- Call: PcaHubert(x = x, k = p) Standard deviations: [1] 18.9255 2.1426 ---------------------------------------------------------- starsCYG 47 2 2 0.280653 0.005921 Scores: PC1 PC2 1 -0.285731 -0.0899858 2 -0.819689 0.0153191 3 0.028077 -0.1501882 4 -0.819689 0.0153191 5 -0.234971 -0.1526225 6 -0.527231 -0.0382380 7 0.372118 -0.5195605 8 -0.357448 0.1009508 9 -0.603553 -0.2533541 10 -0.177170 -0.0722541 11 -0.637339 -1.0390758 12 -0.512526 -0.0662337 13 -0.490978 -0.0120517 14 0.936868 -0.2550656 15 0.684479 -0.0125787 16 0.347708 0.0641382 17 1.009966 -0.0202111 18 0.742477 0.1286170 19 0.773105 -0.0588983 20 -0.795247 -1.0648673 21 0.566048 -0.0319223 22 0.723956 -0.0061308 23 0.505616 0.0899297 24 0.069956 0.0896997 25 -0.080090 -0.0462652 26 0.268755 0.0512425 27 0.289710 -0.0770574 28 0.038341 -0.0269216 29 0.567463 -0.1026188 30 -0.951542 -1.1005280 31 0.512064 0.0504528 32 -0.188059 0.1184850 33 -0.288758 -0.0094200 34 -1.190016 -1.1293460 35 0.615197 -0.0846898 36 -0.710930 0.0938781 37 -0.183223 0.0888774 38 -0.288758 -0.0094200 39 -0.262177 0.0759816 40 -0.630957 -0.0855773 41 0.314679 0.0182135 42 -0.130850 0.0163715 43 -0.415248 0.0205825 44 -0.407188 -0.0287636 45 -0.620693 0.0376892 46 -0.051896 0.0292672 47 0.426662 0.0770340 ------------- Call: PcaHubert(x = x, k = p) Standard deviations: [1] 0.529767 0.076946 ---------------------------------------------------------- phosphor 18 2 2 285.985489 32.152099 Scores: PC1 PC2 1 -2.89681 -18.08811 2 21.34021 -0.40854 3 22.98065 4.13006 4 12.33544 -6.72947 5 17.99823 2.47611 6 -13.35773 -24.10967 7 -0.92957 -5.51314 8 9.16061 2.71354 9 9.89243 5.10403 10 -14.12600 -11.17832 11 3.84175 -0.17605 12 -10.61905 4.37646 13 -13.85065 2.01919 14 -8.11927 4.34325 15 -18.69805 -1.51673 16 9.95352 -6.85784 17 -22.49433 0.29387 18 -18.66592 6.92359 ------------- Call: PcaHubert(x = x, k = p) Standard deviations: [1] 16.9111 5.6703 ---------------------------------------------------------- stackloss 21 3 3 78.703690 19.249085 Scores: PC1 PC2 PC3 1 -20.323997 10.26124 0.92041 2 -19.761418 11.08797 0.92383 3 -16.469919 6.43190 0.22593 4 -4.171902 1.68262 2.50695 5 -3.756174 1.40774 0.57004 6 -3.964038 1.54518 1.53850 7 -7.547376 -3.27780 2.48643 8 -7.547376 -3.27780 2.48643 9 -0.763294 -0.63699 2.53518 10 4.214079 4.46296 -2.28315 11 -0.849132 -2.97767 -2.31393 12 -0.078689 -2.28838 -3.27896 13 3.088921 2.80948 -2.28999 14 -3.307313 -6.14718 -1.35916 15 5.552354 -7.34201 -0.32057 16 7.240091 -4.86180 -0.31031 17 14.908334 6.84995 0.70603 18 10.970281 1.06279 0.68209 19 10.199838 0.37350 1.64712 20 4.273564 1.99328 0.14526 21 -11.992249 2.19025 -3.37391 ------------- Call: PcaHubert(x = x, k = p) Standard deviations: [1] 8.8715 4.3874 2.1990 ---------------------------------------------------------- salinity 28 3 3 11.651966 4.107426 Scores: PC1 PC2 PC3 1 1.68712 1.62591 0.19812128 2 2.35772 2.37290 1.24965734 3 6.80132 -2.14412 0.68142276 4 6.41982 -0.61348 -0.31907921 5 6.36697 -1.98030 4.87319903 6 5.22050 1.20864 0.10252555 7 3.34007 2.02950 0.00064329 8 1.06220 2.89801 -0.35658064 9 0.34692 -2.20572 -1.71677710 10 -2.21421 -2.74842 0.76862599 11 -1.40111 -2.16163 2.21124383 12 -0.38242 0.32284 -0.23732191 13 -1.12809 1.33152 -0.28800043 14 -3.24998 1.35943 1.17514969 15 -2.11006 -3.70114 0.45102357 16 3.46920 -5.41242 8.56937909 17 0.46682 -1.46753 1.48992481 18 2.21807 0.99168 -0.61894625 19 0.28525 -2.00333 -2.16450483 20 -1.66639 -1.76768 -1.06946404 21 -2.58106 1.23534 -0.65557612 22 -4.15573 1.71244 0.08170141 23 -3.07670 -4.87628 2.53200755 24 -1.70808 -3.71657 2.99305849 25 -1.08172 -1.05713 0.02468813 26 -2.23187 0.27323 -0.85760867 27 -3.50498 1.07657 -0.68503455 28 -4.49819 1.43219 0.53416609 ------------- Call: PcaHubert(x = x, k = p) Standard deviations: [1] 3.4135 2.0267 1.0764 ---------------------------------------------------------- hbk 75 3 3 1.459908 1.201048 Scores: PC1 PC2 PC3 1 -31.105415 4.714217 10.4566165 2 -31.707650 5.748724 10.7682402 3 -33.366131 4.625897 12.1570167 4 -34.173377 6.069657 12.4466895 5 -33.780418 5.508823 11.9872893 6 -32.493478 4.684595 10.5679819 7 -32.592637 5.235522 10.3765493 8 -31.293363 4.865797 10.9379676 9 -33.160964 5.714260 12.3098920 10 -31.919786 5.384537 12.3374332 11 -38.231962 6.810641 13.5994385 12 -39.290479 5.393906 15.2942554 13 -39.418445 7.326461 11.5194898 14 -43.906584 13.214819 8.3282743 15 -1.906326 -0.716061 -0.8635112 16 -0.263255 -0.926016 -1.9009292 17 1.776489 1.072332 -0.5496140 18 -0.464648 -0.702441 0.0482897 19 -0.267826 1.283779 -0.2925812 20 -2.122108 -0.165970 -0.8924686 21 -0.937217 -0.548532 -0.4132196 22 -0.423273 1.781869 -0.0323061 23 -0.047532 -0.018909 -1.1259327 24 0.490041 0.520202 -1.1065753 25 2.143049 -0.720869 -0.0495474 26 -1.094748 1.459175 0.2226246 27 -2.070705 -0.898573 0.0023229 28 0.294998 -0.830258 0.5929001 29 1.242995 -0.300216 -0.2010507 30 -0.147958 -0.439099 2.0003038 31 -0.170818 -1.440946 -0.9755627 32 0.958531 1.199730 -1.0129867 33 -0.697307 0.874343 -0.7260649 34 2.278946 -0.261106 0.4196544 35 -1.962829 -0.809318 0.2033113 36 -0.626631 0.600666 0.8004036 37 -0.550885 1.881448 0.7382776 38 1.249717 -0.336214 -0.9349845 39 1.106696 -1.569418 0.1869576 40 0.684034 0.939963 -0.1034965 41 -1.559314 -1.551408 0.3660323 42 0.538741 0.447358 1.6361099 43 0.252685 2.080564 -0.7765259 44 -0.217012 -1.027281 1.7015154 45 1.497600 -1.349234 -0.2698932 46 -0.100388 -1.026443 1.5390401 47 0.811117 -2.195271 -0.5208141 48 -1.462210 -1.321318 0.5600144 49 -1.383976 -0.740714 -0.7348906 50 -1.636773 0.215464 0.3195369 51 0.530918 -0.759743 -1.2069247 52 0.109566 -2.107455 -0.5315473 53 0.564334 0.060847 2.3910630 54 0.272234 1.122711 -1.5060028 55 0.608660 1.197219 -0.5255609 56 -0.565430 0.710345 -1.3708230 57 1.115629 -0.888816 -0.4186014 58 -1.351288 0.374815 -1.1980618 59 -0.998016 0.151228 0.9007970 60 -0.124017 0.764846 1.9005963 61 -1.189858 1.905264 0.7721322 62 2.190589 -0.579614 -0.1377914 63 0.518278 0.931130 -1.4534768 64 -2.124566 -0.194391 -0.0327092 65 -0.154218 -1.050861 1.1309885 66 1.197852 1.044147 -0.2265269 67 0.114174 0.094763 -0.5168926 68 2.201115 -0.032271 0.8573493 69 1.307843 -1.104815 -0.7741270 70 -0.691449 0.676665 1.0004603 71 -1.150975 -0.050861 -0.0717068 72 0.457293 0.861871 0.1026350 73 0.392258 0.897451 0.9178065 74 0.584658 1.450471 0.3201857 75 0.972517 0.063777 1.8223995 ------------- Call: PcaHubert(x = x, k = p) Standard deviations: [1] 1.2083 1.0959 1.0168 ---------------------------------------------------------- milk 86 8 8 5.739740 2.405262 Scores: PC1 PC2 PC3 PC4 PC5 PC6 PC7 1 -5.710924 -1.346213 0.01332091 -0.3709242 -0.566813 0.7529298 -1.2525433 2 -6.578612 -0.440749 1.16354746 0.2870685 -0.573207 0.7368064 -1.6101427 3 -0.720902 1.777381 -0.21532020 -0.3213950 0.287603 -0.4764464 -0.5638337 4 -5.545889 1.621147 -0.85212883 0.4380154 0.022241 0.0718035 0.1176140 5 1.323210 -0.143897 -0.78611461 0.5966857 0.043139 -0.0512545 -0.1419726 6 -1.760792 -0.662792 0.46402240 0.2149752 0.130000 0.0797221 0.1916948 7 -2.344198 -0.363657 0.92442296 0.3921371 0.241463 -0.2370967 0.0636268 8 -2.556824 -0.680132 0.04339934 0.4635077 0.154136 0.0371259 0.0260340 9 1.203234 2.712342 -1.00693092 0.1251739 0.170679 0.2231851 -0.0118196 10 3.151858 1.255826 -0.01678562 -0.5087398 -0.087933 0.0115055 -0.0097828 11 9.562891 1.580419 -2.65612113 -0.1748178 -0.153031 -0.0880112 -0.1648752 12 13.617821 -0.999033 -1.92168237 0.0326918 -0.038488 0.0870082 -0.1809687 13 10.958032 -0.097916 0.95915085 -0.2348663 0.147875 0.1219202 0.0419067 14 12.675941 0.158747 -1.04153243 0.3117402 0.302036 0.1187749 -0.2310830 15 10.726828 1.775339 -3.36786799 0.1285422 0.151594 0.0998947 -0.2028458 16 3.042705 0.212589 -1.23921907 -0.5596596 0.277061 -0.5037073 0.0612182 17 0.780071 2.990008 -1.58490147 -0.5441119 0.436485 -0.0603833 0.1016610 18 2.523916 -0.923373 -0.03221722 0.3830822 0.208008 -0.5505270 -0.1252648 19 1.990563 1.062648 -1.42038451 -0.3602257 -0.068006 -0.1932744 -0.1197842 20 -0.243938 1.674555 -0.72225359 -0.1475652 -0.397855 -0.5385123 -0.0559660 21 3.354424 -2.001060 -0.22542149 0.3346180 0.032502 -0.0953825 0.1293148 22 1.477177 -0.777534 -0.35362339 0.1224412 0.203208 0.0514382 -0.2166274 23 0.502055 -1.618511 -0.85013853 -0.1298862 -0.144328 -0.1941806 -0.1923681 24 0.900504 -1.227820 -1.07180474 -0.5851197 0.112657 0.0467164 0.0405544 25 4.161393 -1.869015 -1.54507759 0.2003123 -0.152582 -0.1382908 0.0864320 26 1.277795 -1.185179 -1.13445511 0.2771556 -0.101901 0.0070037 -0.1279016 27 3.447256 0.257652 -1.13407954 -0.0077859 0.853002 -0.1376443 -0.1897380 28 -1.695730 -3.781876 -0.72940594 -0.0956421 0.064475 0.3665470 0.0726448 29 -3.923610 -1.654818 -0.16117226 -0.4242302 -0.303749 -0.0209844 0.1723890 30 -0.309616 -1.564739 -0.39909943 0.1657509 -0.178739 -0.0600221 -0.0571706 31 -0.960838 -2.242733 1.50477679 -0.2957897 0.163758 -0.1034399 0.0257903 32 -0.671285 -0.459839 1.39124475 -0.3669914 0.246127 0.2094780 -0.2681284 33 -1.589089 -0.390812 -0.16505762 -0.3992573 0.086870 -0.0402114 -0.0399923 34 -0.421868 0.636139 -0.42563447 -0.2985726 0.311365 0.2398515 -0.0540852 35 1.118429 -2.116328 -0.22329747 -0.4864401 0.289927 -0.0503006 0.0101706 36 -3.660291 -1.630831 -0.57876280 0.1294792 -0.260224 0.0912904 -0.1565668 37 -0.087686 -2.530609 0.50076931 -0.0319873 0.194898 -0.1233526 -0.2494283 38 -1.418620 -2.303011 -0.09405565 -0.0931745 0.169466 0.1581787 0.0850095 39 1.815225 -0.838968 -1.10222194 -0.4897630 0.180933 0.0096330 -0.0600652 40 -3.420975 1.398516 -0.17143314 -0.5852146 0.090464 -0.2066323 -0.2974177 41 -3.462295 -1.795174 -0.17500650 -0.1610267 -0.595086 0.5981680 -1.5930268 42 -6.401429 0.451242 -0.78723149 -0.4285618 0.055395 -0.0212476 0.0808936 43 -2.583017 -0.871790 1.29937081 0.2422349 -0.190002 -0.2822972 -0.2625721 44 -5.027244 -0.167503 -0.02382957 -0.8288929 -0.852207 0.7399343 0.4606076 45 0.364494 -0.440380 -0.07746564 -0.4552133 0.095711 -0.1662998 0.1566706 46 0.420706 -1.880819 -0.82180986 -0.1823454 -0.022661 -0.0304227 -0.0516440 47 -1.932985 -0.120002 4.00934170 0.0930728 0.295428 0.2787446 0.3766231 48 0.395402 -1.021393 1.07953292 -0.4599764 -0.132386 0.1895780 0.2771755 49 2.886100 -0.276587 1.48851137 -0.6314648 -0.203963 -0.0891955 0.1347804 50 -3.255379 2.479232 -0.37933775 -0.3651497 -0.415000 0.0045750 0.0671055 51 1.939333 0.617579 1.57113225 0.0310866 -0.039226 0.0409183 0.1830694 52 5.727154 0.275898 0.58814711 -0.1739820 -0.222791 0.2553797 0.1959402 53 1.207873 0.131451 0.80899235 0.2872465 -0.353544 -0.1697200 -0.0987230 54 0.612921 0.040062 0.17807459 -0.0053074 -0.202244 -0.0671788 0.0530276 55 -0.399075 -0.727144 0.26196635 0.3657576 -0.192705 0.0903564 0.0641289 56 0.240719 0.733792 -0.05030509 0.0967214 -0.186906 0.0310231 -0.0594812 57 1.589641 0.289427 -1.02478822 0.2723190 -0.048378 0.2599262 -0.2040853 58 0.423483 -1.262515 -0.85026016 0.4749963 -0.082647 0.0752412 0.1352259 59 1.983684 1.335122 0.42593757 0.1345894 0.096456 0.1153107 -0.0385994 60 1.770171 0.935428 0.14901569 0.3641973 0.274015 -0.0280119 0.0690244 61 0.182845 1.706453 -0.18364654 0.2517421 -0.035773 0.0357087 -0.1363470 62 -2.191617 1.966324 -0.03573689 -0.2203900 -0.235704 0.1682332 -0.1145174 63 -2.442239 -0.209694 -0.06681921 0.3184048 0.206772 -0.0608468 0.2425649 64 -2.442239 -0.209694 -0.06681921 0.3184048 0.206772 -0.0608468 0.2425649 65 0.407575 2.996346 -0.63021113 -0.1335795 0.087668 0.0627032 0.0486166 66 2.660379 1.322824 0.10122110 0.2420451 0.192938 0.0344019 -0.0771918 67 -0.032273 1.315299 -0.04511689 -0.1293380 -0.025923 -0.1655965 0.1887534 68 1.117637 2.005809 1.97078787 -0.0429209 -0.176568 0.1634287 -0.0916254 69 0.970730 0.837158 0.01621375 0.2347502 -0.071757 -0.2464626 0.2907551 70 -2.688271 -5.335891 -0.64225481 4.1819517 -9.523550 2.0943027 -2.8098426 71 2.428718 1.976051 -0.24749122 0.1308738 0.018276 0.1711292 0.1346284 72 -2.061944 0.405943 0.50472914 0.4393739 -0.056420 -0.0031558 0.2663880 73 2.029606 2.874991 0.68310320 -0.2067254 0.511537 -0.2010371 0.0805608 74 11.293757 0.328931 -3.84783031 -0.4130266 -0.210499 -0.1103148 -0.0381326 75 0.120896 2.287914 0.83639076 -0.2462845 0.551353 0.6629701 0.3789055 76 1.859499 0.422019 1.18435547 0.1546108 0.017266 0.0470615 -0.1071011 77 8.435857 1.147499 -2.19924186 -0.4156770 0.386548 0.0294075 -0.1911399 78 -1.090858 1.311287 0.62897430 0.1727009 0.077341 0.0135972 -0.0096934 79 0.560012 0.623617 0.83727267 0.1680787 0.087477 0.0611949 -0.2588084 80 3.873817 -1.133641 -1.27469019 -0.2717298 -0.165066 0.1696232 0.0635047 81 -0.758664 -0.880260 0.00057124 0.2838720 0.016243 0.1527299 -0.0150514 82 -2.709588 1.464049 -0.12598126 -0.3828567 0.213647 -0.1425385 0.1552827 83 -2.213670 0.059563 0.87565603 0.1255703 -0.082005 0.2189829 -0.2938264 84 -0.242242 -0.483552 2.05089334 -0.0681005 -0.101578 0.1304632 -0.2218093 85 -1.032129 2.375018 -2.19321259 0.2332079 -0.066379 0.1854598 -0.0873859 86 0.015327 -0.948155 1.39530555 0.2701225 -0.268889 0.0578145 0.1608678 PC8 1 2.1835e-03 2 1.6801e-03 3 1.6623e-03 4 2.6286e-04 5 9.5884e-04 6 1.4430e-03 7 1.8784e-04 8 6.8473e-04 9 -6.8490e-04 10 1.1565e-04 11 5.6907e-06 12 -1.8395e-03 13 -2.1582e-03 14 -1.6294e-03 15 -1.6964e-03 16 -1.9664e-03 17 -2.2448e-03 18 -6.5884e-04 19 -1.1536e-03 20 2.6887e-04 21 3.3199e-05 22 1.1170e-04 23 -1.7617e-04 24 -2.1577e-04 25 -6.1495e-04 26 -7.2903e-04 27 -6.8773e-04 28 -2.0742e-04 29 -2.6937e-04 30 -6.7472e-05 31 -1.3222e-04 32 -1.6516e-04 33 -1.8836e-04 34 -1.1273e-04 35 3.0703e-05 36 -3.0311e-04 37 -1.9380e-04 38 5.5526e-04 39 4.1987e-04 40 8.4807e-05 41 8.8725e-04 42 -6.5647e-04 43 4.3202e-04 44 -5.3330e-04 45 8.9161e-04 46 1.1588e-03 47 -1.2714e-03 48 -4.0376e-04 49 4.1280e-06 50 3.0116e-04 51 5.8510e-05 52 3.3236e-04 53 4.0982e-04 54 4.0428e-04 55 6.1600e-04 56 -4.0496e-05 57 -1.8342e-04 58 -1.6748e-04 59 -1.0894e-03 60 -2.6876e-04 61 -5.8951e-05 62 -1.5517e-04 63 -7.9933e-04 64 -7.9933e-04 65 2.2592e-05 66 2.4984e-05 67 -2.2714e-04 68 -3.3991e-04 69 -3.0375e-04 70 3.4033e-03 71 2.3288e-05 72 -3.4126e-04 73 2.5528e-04 74 2.2760e-03 75 -2.8985e-04 76 7.9077e-04 77 9.4636e-04 78 4.9099e-04 79 3.0501e-04 80 6.5280e-04 81 -3.6570e-04 82 4.9966e-04 83 -4.3245e-04 84 -4.6152e-04 85 7.4691e-04 86 -6.1103e-04 ------------- Call: PcaHubert(x = x, k = p) Standard deviations: [1] 2.39577535 1.55089079 0.92557331 0.33680677 0.19792033 0.17855133 0.16041702 [8] 0.00054179 ---------------------------------------------------------- bushfire 38 5 5 31248.552973 358.974577 Scores: PC1 PC2 PC3 PC4 PC5 1 155.972 1.08098 -23.31135 -1.93015 1.218941 2 157.738 0.35648 -20.95658 -2.42375 0.466415 3 150.667 2.12545 -16.20395 -2.00140 -0.582924 4 133.892 5.25124 -15.88873 -2.78469 -0.275261 5 102.462 13.00611 -21.54096 -4.69409 -0.944176 6 77.694 18.75377 -28.71865 -6.44244 0.446350 7 286.266 -11.36184 -98.67134 10.95233 -3.625338 8 326.627 29.92767 -112.60824 -29.26330 -13.710094 9 327.898 32.39553 -113.34314 -31.65905 -13.830781 10 325.131 5.81628 -105.58927 -13.45695 -8.987971 11 326.458 -7.84562 -94.25242 -6.11547 -8.572845 12 333.171 -37.69907 -50.89207 8.98187 -1.742979 13 279.789 -40.78415 -8.06209 7.65884 0.181748 14 37.714 10.54231 13.46530 -1.55051 2.102662 15 -90.034 34.68964 18.98186 0.69260 0.417573 16 -46.492 23.65086 10.07282 4.36090 -0.748517 17 -43.990 20.36443 9.61049 2.83084 -0.127983 18 -32.938 19.11199 2.64850 2.92879 -1.473988 19 -36.555 20.60142 2.01879 0.63832 -1.235075 20 -46.837 19.89630 6.65142 0.89120 0.271108 21 -28.670 15.29534 6.59311 3.29638 0.402194 22 -20.331 15.06559 7.33721 2.16591 2.006327 23 108.644 -7.92707 -1.45130 6.27388 0.356715 24 163.697 -16.15568 0.61663 4.24231 0.464415 25 100.471 -0.30739 0.87762 2.86452 -0.692735 26 106.922 0.90864 -1.91436 2.54557 -0.565023 27 121.966 -3.29641 4.85626 -0.47676 -0.490047 28 98.650 -4.51455 16.64160 -3.08996 -0.839397 29 88.795 -10.85457 30.46708 -5.37360 0.315657 30 142.981 -27.89100 22.40713 -1.67126 -0.680158 31 14.125 -21.60028 29.80480 -8.25272 -0.019693 32 -244.044 -11.76430 24.53390 -12.52294 2.022312 33 -283.842 -13.21931 -6.23565 -2.63367 -0.080728 34 -280.168 -13.41903 -7.69318 -1.24571 -0.722513 35 -285.666 -13.78452 -6.50318 -1.23756 1.074669 36 -282.938 -13.82281 -7.63902 0.20435 -0.971673 37 -281.129 -16.20408 -8.57154 1.85797 0.234486 38 -282.589 -16.91969 -8.36010 2.35589 0.490630 ------------- Call: PcaHubert(x = x, k = p) Standard deviations: [1] 176.77260 18.94662 16.21701 3.95755 0.92761 ---------------------------------------------------------- ========================================================== > dodata(method="hubert") Call: dodata(method = "hubert") Data Set n p k e1 e2 ========================================================== heart 12 2 1 315.227002 NA Scores: PC1 1 13.2197 2 69.9817 3 6.6946 4 2.8899 5 24.9956 6 -8.9203 7 12.0121 8 -24.1915 9 4.2721 10 -22.8289 11 -8.1433 12 54.6519 ------------- Call: PcaHubert(x = x, mcd = FALSE) Standard deviations: [1] 17.755 ---------------------------------------------------------- starsCYG 47 2 1 0.308922 NA Scores: PC1 1 0.224695 2 0.758653 3 -0.089113 4 0.758653 5 0.173934 6 0.466195 7 -0.433154 8 0.296411 9 0.542517 10 0.116133 11 0.576303 12 0.451490 13 0.429942 14 -0.997904 15 -0.745515 16 -0.408745 17 -1.071002 18 -0.803514 19 -0.834141 20 0.734210 21 -0.627085 22 -0.784992 23 -0.566652 24 -0.130992 25 0.019053 26 -0.329791 27 -0.350747 28 -0.099378 29 -0.628499 30 0.890506 31 -0.573100 32 0.127022 33 0.227721 34 1.128979 35 -0.676234 36 0.649894 37 0.122186 38 0.227721 39 0.201140 40 0.569920 41 -0.375716 42 0.069814 43 0.354212 44 0.346152 45 0.559656 46 -0.009140 47 -0.487699 ------------- Call: PcaHubert(x = x, mcd = FALSE) Standard deviations: [1] 0.55581 ---------------------------------------------------------- phosphor 18 2 1 215.172048 NA Scores: PC1 1 1.12634 2 -22.10340 3 -23.49216 4 -13.45927 5 -18.60808 6 11.24086 7 -0.14748 8 -9.77075 9 -10.37022 10 12.71798 11 -4.61857 12 10.07037 13 13.16767 14 7.57254 15 17.81362 16 -11.08799 17 21.70358 18 18.24496 ------------- Call: PcaHubert(x = x, mcd = FALSE) Standard deviations: [1] 14.669 ---------------------------------------------------------- stackloss 21 3 2 77.038636 18.859777 Scores: PC1 PC2 1 -20.334936 10.28081 2 -19.772121 11.10736 3 -16.461573 6.43794 4 -4.258672 1.73213 5 -3.773146 1.41928 6 -4.015909 1.57571 7 -7.635560 -3.22715 8 -7.635560 -3.22715 9 -0.855388 -0.58707 10 4.298129 4.41664 11 -0.767202 -3.02229 12 0.038375 -2.35217 13 3.172500 2.76354 14 -3.261224 -6.17206 15 5.553840 -7.34784 16 7.242284 -4.86820 17 14.878925 6.85989 18 10.939223 1.07406 19 10.133645 0.40394 20 4.267234 1.99501 21 -11.859921 2.12579 ------------- Call: PcaHubert(x = x, mcd = FALSE) Standard deviations: [1] 8.7772 4.3428 ---------------------------------------------------------- salinity 28 3 2 8.001175 5.858089 Scores: PC1 PC2 1 2.858444 1.04359 2 3.807704 1.55974 3 6.220733 -4.32114 4 6.388841 -2.83649 5 6.077450 -3.70092 6 5.974494 -0.67230 7 4.531584 0.78322 8 2.725849 2.41297 9 0.100501 -2.13615 10 -2.358003 -1.49718 11 -1.317688 -1.15391 12 0.434635 0.58230 13 0.116019 1.79022 14 -1.771501 2.71749 15 -2.630757 -2.44003 16 2.289743 -5.51829 17 0.637985 -1.26452 18 3.076147 0.19883 19 0.097381 -1.95868 20 -1.572471 -0.93003 21 -1.284185 2.21858 22 -2.531713 3.30313 23 -3.865359 -3.01230 24 -2.143461 -2.41918 25 -0.714414 -0.41227 26 -1.327781 1.18373 27 -2.201166 2.41566 28 -2.931988 3.20536 ------------- Call: PcaHubert(x = x, mcd = FALSE) Standard deviations: [1] 2.8286 2.4203 ---------------------------------------------------------- hbk 75 3 3 1.459908 1.201048 Scores: PC1 PC2 PC3 1 31.105415 -4.714217 -10.4566165 2 31.707650 -5.748724 -10.7682402 3 33.366131 -4.625897 -12.1570167 4 34.173377 -6.069657 -12.4466895 5 33.780418 -5.508823 -11.9872893 6 32.493478 -4.684595 -10.5679819 7 32.592637 -5.235522 -10.3765493 8 31.293363 -4.865797 -10.9379676 9 33.160964 -5.714260 -12.3098920 10 31.919786 -5.384537 -12.3374332 11 38.231962 -6.810641 -13.5994385 12 39.290479 -5.393906 -15.2942554 13 39.418445 -7.326461 -11.5194898 14 43.906584 -13.214819 -8.3282743 15 1.906326 0.716061 0.8635112 16 0.263255 0.926016 1.9009292 17 -1.776489 -1.072332 0.5496140 18 0.464648 0.702441 -0.0482897 19 0.267826 -1.283779 0.2925812 20 2.122108 0.165970 0.8924686 21 0.937217 0.548532 0.4132196 22 0.423273 -1.781869 0.0323061 23 0.047532 0.018909 1.1259327 24 -0.490041 -0.520202 1.1065753 25 -2.143049 0.720869 0.0495474 26 1.094748 -1.459175 -0.2226246 27 2.070705 0.898573 -0.0023229 28 -0.294998 0.830258 -0.5929001 29 -1.242995 0.300216 0.2010507 30 0.147958 0.439099 -2.0003038 31 0.170818 1.440946 0.9755627 32 -0.958531 -1.199730 1.0129867 33 0.697307 -0.874343 0.7260649 34 -2.278946 0.261106 -0.4196544 35 1.962829 0.809318 -0.2033113 36 0.626631 -0.600666 -0.8004036 37 0.550885 -1.881448 -0.7382776 38 -1.249717 0.336214 0.9349845 39 -1.106696 1.569418 -0.1869576 40 -0.684034 -0.939963 0.1034965 41 1.559314 1.551408 -0.3660323 42 -0.538741 -0.447358 -1.6361099 43 -0.252685 -2.080564 0.7765259 44 0.217012 1.027281 -1.7015154 45 -1.497600 1.349234 0.2698932 46 0.100388 1.026443 -1.5390401 47 -0.811117 2.195271 0.5208141 48 1.462210 1.321318 -0.5600144 49 1.383976 0.740714 0.7348906 50 1.636773 -0.215464 -0.3195369 51 -0.530918 0.759743 1.2069247 52 -0.109566 2.107455 0.5315473 53 -0.564334 -0.060847 -2.3910630 54 -0.272234 -1.122711 1.5060028 55 -0.608660 -1.197219 0.5255609 56 0.565430 -0.710345 1.3708230 57 -1.115629 0.888816 0.4186014 58 1.351288 -0.374815 1.1980618 59 0.998016 -0.151228 -0.9007970 60 0.124017 -0.764846 -1.9005963 61 1.189858 -1.905264 -0.7721322 62 -2.190589 0.579614 0.1377914 63 -0.518278 -0.931130 1.4534768 64 2.124566 0.194391 0.0327092 65 0.154218 1.050861 -1.1309885 66 -1.197852 -1.044147 0.2265269 67 -0.114174 -0.094763 0.5168926 68 -2.201115 0.032271 -0.8573493 69 -1.307843 1.104815 0.7741270 70 0.691449 -0.676665 -1.0004603 71 1.150975 0.050861 0.0717068 72 -0.457293 -0.861871 -0.1026350 73 -0.392258 -0.897451 -0.9178065 74 -0.584658 -1.450471 -0.3201857 75 -0.972517 -0.063777 -1.8223995 ------------- Call: PcaHubert(x = x, mcd = FALSE) Standard deviations: [1] 1.2083 1.0959 1.0168 ---------------------------------------------------------- milk 86 8 2 6.040806 2.473780 Scores: PC1 PC2 1 -5.768003 -0.9174359 2 -6.664422 0.0280812 3 -0.484521 1.7923710 4 -5.211590 2.0747301 5 1.422641 -0.3268437 6 -1.810360 -0.5469828 7 -2.402924 -0.1987041 8 -2.553389 -0.4963662 9 1.583399 2.5410448 10 3.267946 0.9141367 11 9.924771 0.6501301 12 13.628569 -2.3009846 13 10.774550 -1.1628697 14 12.716376 -1.0670330 15 11.176408 0.7403371 16 3.209269 -0.0804317 17 1.256577 2.8931153 18 2.468720 -1.2008647 19 2.253229 0.8379608 20 0.021073 1.6394221 21 3.205298 -2.3518286 22 1.470733 -0.9618655 23 0.475732 -1.7044535 24 0.930144 -1.3288398 25 4.151553 -2.2882554 26 1.314488 -1.3527439 27 3.613405 -0.0813605 28 -1.909178 -3.6473200 29 -3.987263 -1.3255834 30 -0.370601 -1.5855086 31 -1.273254 -2.1892809 32 -0.816634 -0.4514478 33 -1.553394 -0.2792004 34 -0.275027 0.6359374 35 0.980782 -2.2353223 36 -3.678470 -1.3459182 37 -0.327102 -2.5615283 38 -1.563492 -2.2008288 39 1.876146 -1.0292641 40 -3.204182 1.6694332 41 -3.561892 -1.5844770 42 -6.175135 1.0123714 43 -2.736601 -0.7040261 44 -4.981783 0.2434304 45 0.368802 -0.5011413 46 0.369508 -1.9511091 47 -2.306673 -0.0089446 48 0.215195 -1.1000357 49 2.704678 -0.5919929 50 -2.930879 2.7161936 51 1.846250 0.3732500 52 5.661288 -0.3139157 53 1.154929 -0.0575094 54 0.625715 -0.0733934 55 -0.453714 -0.7535924 56 0.343722 0.6460318 57 1.743002 0.0794685 58 0.433705 -1.3500731 59 2.078550 1.0860506 60 1.867913 0.7162287 61 0.392645 1.6184583 62 -1.958732 2.0993596 63 -2.383251 -0.0253919 64 -2.383251 -0.0253919 65 0.780239 2.9018927 66 2.785329 1.0142893 67 0.131210 1.2703167 68 1.110073 1.8140467 69 1.076878 0.6954148 70 -3.260160 -5.6233069 71 2.647036 1.6892084 72 -2.017340 0.5353349 73 2.247524 2.6406249 74 11.649291 -0.7374197 75 0.280544 2.2306959 76 1.791213 0.1796005 77 8.730344 0.3412271 78 -0.987405 1.3467910 79 0.560808 0.5006661 80 3.897879 -1.5270179 81 -0.792759 -0.8649399 82 -2.493611 1.6796838 83 -2.245966 0.1889555 84 -0.468812 -0.5359088 85 -0.538372 2.4105954 86 -0.185347 -1.0176989 ------------- Call: PcaHubert(x = x, mcd = FALSE) Standard deviations: [1] 2.4578 1.5728 ---------------------------------------------------------- bushfire 38 5 1 38435.075910 NA Scores: PC1 1 -111.9345 2 -113.4128 3 -105.8364 4 -89.1684 5 -58.7216 6 -35.0370 7 -250.2123 8 -292.6877 9 -294.0765 10 -290.0193 11 -289.8168 12 -290.8645 13 -232.6865 14 9.8483 15 137.1924 16 92.9804 17 90.4493 18 78.6325 19 82.1178 20 92.9044 21 74.9157 22 66.7350 23 -62.1981 24 -116.5696 25 -53.8907 26 -60.6384 27 -74.7621 28 -50.2202 29 -38.7483 30 -93.3887 31 35.3096 32 290.8493 33 326.7236 34 322.9095 35 328.5307 36 325.6791 37 323.8136 38 325.2991 ------------- Call: PcaHubert(x = x, mcd = FALSE) Standard deviations: [1] 196.05 ---------------------------------------------------------- ========================================================== > > dodata(method="locantore") Call: dodata(method = "locantore") Data Set n p k e1 e2 ========================================================== heart 12 2 2 1.835912 0.084745 Scores: PC1 PC2 [1,] 7.3042 1.745289 [2,] 64.6474 0.164425 [3,] 1.1057 -1.404189 [4,] -3.1943 2.565728 [5,] 19.4154 -0.401369 [6,] -15.5709 6.666752 [7,] 5.9980 2.509372 [8,] -29.5933 -4.805972 [9,] -1.3933 -0.899323 [10,] -28.2845 -4.270057 [11,] -14.0069 0.048311 [12,] 49.1484 0.694598 ------------- Call: PcaLocantore(x = x) Standard deviations: [1] 1.35496 0.29111 ---------------------------------------------------------- starsCYG 47 2 2 0.779919 0.050341 Scores: PC1 PC2 [1,] 0.174291 -0.0489127 [2,] 0.703776 0.0769650 [3,] -0.136954 -0.1212071 [4,] 0.703776 0.0769650 [5,] 0.125991 -0.1134658 [6,] 0.413609 0.0121367 [7,] -0.466451 -0.5036094 [8,] 0.238569 0.1446547 [9,] 0.498194 -0.1998666 [10,] 0.065125 -0.0353931 [11,] 0.562344 -0.9836936 [12,] 0.399997 -0.0164068 [13,] 0.376370 0.0369013 [14,] -1.041009 -0.2611550 [15,] -0.798187 -0.0090880 [16,] -0.464636 0.0805967 [17,] -1.123135 -0.0293034 [18,] -0.861603 0.1297588 [19,] -0.884955 -0.0588007 [20,] 0.721130 -1.0033585 [21,] -0.679097 -0.0238366 [22,] -0.837884 -0.0041718 [23,] -0.623423 0.1002615 [24,] -0.188079 0.1168815 [25,] -0.032888 -0.0131784 [26,] -0.385242 0.0707643 [27,] -0.401220 -0.0582501 [28,] -0.151978 0.0015702 [29,] -0.677776 -0.0945350 [30,] 0.878688 -1.0329475 [31,] -0.628339 0.0605648 [32,] 0.068629 0.1556245 [33,] 0.174199 0.0317098 [34,] 1.118098 -1.0525206 [35,] -0.726168 -0.0784655 [36,] 0.592061 0.1512588 [37,] 0.064942 0.1258519 [38,] 0.174199 0.0317098 [39,] 0.144335 0.1160195 [40,] 0.519088 -0.0311555 [41,] -0.429855 0.0359837 [42,] 0.015412 0.0513747 [43,] 0.299435 0.0665821 [44,] 0.293289 0.0169612 [45,] 0.504064 0.0916219 [46,] -0.063981 0.0612071 [47,] -0.544029 0.0904291 ------------- Call: PcaLocantore(x = x) Standard deviations: [1] 0.88313 0.22437 ---------------------------------------------------------- phosphor 18 2 2 0.933905 0.279651 Scores: PC1 PC2 1 4.5660 -15.58981 2 -21.2978 -0.38905 3 -23.3783 3.96546 4 -11.7131 -5.79023 5 -18.2569 2.81141 6 15.5702 -20.54935 7 1.3671 -3.27043 8 -9.4859 3.92005 9 -10.4501 6.22662 10 15.0583 -7.60532 11 -3.9078 1.56960 12 10.0330 7.52732 13 13.4815 5.50056 14 7.5487 7.24752 15 18.6543 2.46040 16 -9.3301 -5.68285 17 22.2533 4.63689 18 17.7892 10.85633 ------------- Call: PcaLocantore(x = x) Standard deviations: [1] 0.96639 0.52882 ---------------------------------------------------------- stackloss 21 3 3 1.137747 0.196704 Scores: PC1 PC2 PC3 [1,] 19.98046 -6.20875 -3.93576 [2,] 19.57014 -7.11509 -4.03666 [3,] 15.48729 -3.14247 -3.29600 [4,] 3.12341 -1.38969 1.50633 [5,] 2.35380 -0.84492 -0.25745 [6,] 2.73860 -1.11731 0.62444 [7,] 5.58533 4.04837 2.11170 [8,] 5.58533 4.04837 2.11170 [9,] -0.56851 0.17483 2.46656 [10,] -5.36478 -4.80766 -2.64915 [11,] -1.67190 3.34943 -1.74110 [12,] -2.46702 2.71547 -2.72389 [13,] -4.54414 -2.99497 -2.44736 [14,] 0.35419 6.70241 -0.45563 [15,] -8.28612 5.93369 1.94314 [16,] -9.51708 3.21466 1.64046 [17,] -14.87676 -9.74652 1.10983 [18,] -12.00452 -3.40212 1.81609 [19,] -11.20939 -2.76816 2.79887 [20,] -5.42808 -2.89367 0.23748 [21,] 9.83969 0.74095 -5.30190 ------------- Call: PcaLocantore(x = x) Standard deviations: [1] 1.06665 0.44351 0.33935 ---------------------------------------------------------- salinity 28 3 3 1.038873 0.621380 Scores: PC1 PC2 PC3 1 -2.7215590 -0.98924 0.3594538 2 -3.6251829 -1.03361 1.4973993 3 -6.0588883 4.23861 -1.1012038 4 -6.2741857 2.42372 -1.4875092 5 -5.7274076 5.42190 2.9332011 6 -5.8431892 0.57161 -0.3385363 7 -4.4051377 -0.83292 0.0851817 8 -2.6155827 -2.50739 0.3386166 9 -0.0426575 1.19631 -2.5025726 10 2.5297488 1.65029 -0.0110335 11 1.5528097 1.93255 1.4216262 12 -0.3140451 -0.73269 -0.1961364 13 0.0010783 -1.88658 0.1849912 14 1.9554303 -2.13519 1.8471356 15 2.7897250 2.40211 -0.6327944 16 -1.7665706 8.69449 5.6608836 17 -0.4374125 1.72696 0.7230753 18 -2.9752196 -0.54118 -0.6829760 19 -0.0599346 0.84127 -2.8473543 20 1.6597909 0.34191 -1.4847516 21 1.3857395 -2.43924 0.0039271 22 2.6664754 -3.14291 1.0600254 23 4.1202067 3.81886 1.0608640 24 2.4163743 3.45141 1.6874099 25 0.8493897 0.31424 -0.3073115 26 1.4216265 -1.55310 -0.5455012 27 2.3021676 -2.63392 0.0481451 28 3.0877115 -2.85951 1.4378956 ------------- Call: PcaLocantore(x = x) Standard deviations: [1] 1.01925 0.78828 0.36470 ---------------------------------------------------------- hbk 75 3 3 1.038833 0.363386 Scores: PC1 PC2 PC3 1 32.393698 -3.4318297 0.051248 2 33.103072 -4.4154651 0.294662 3 35.038965 -3.5996035 -0.940929 4 35.955809 -4.9285404 -0.479059 5 35.424918 -4.3076292 -0.366699 6 33.753497 -3.2463136 0.289013 7 33.817375 -3.6819421 0.684167 8 32.717119 -3.7074394 -0.279567 9 34.932190 -4.6939061 -0.738196 10 33.737339 -4.5702346 -1.193206 11 40.202273 -5.4336890 -0.229323 12 41.638189 -4.5304173 -1.996311 13 40.768565 -5.0531048 2.123222 14 44.408749 -8.8448536 8.236462 15 0.977343 1.3057899 0.938694 16 -0.900390 1.6169842 1.382855 17 -2.384467 -0.9835430 0.375495 18 -0.143306 0.7859701 -0.237712 19 -0.344479 -0.9791245 0.733869 20 1.199115 0.8330752 1.216827 21 0.184475 0.8630593 0.351029 22 -0.100389 -1.5084406 0.718236 23 -0.847925 0.4823829 0.958677 24 -1.334366 -0.1021190 1.000300 25 -2.669352 0.4692990 -0.811134 26 0.601538 -1.1984283 0.541627 27 1.373423 1.2098621 0.136249 28 -0.721268 0.6164612 -0.963817 29 -1.832615 0.2543279 -0.297658 30 0.120086 -0.1558590 -1.976558 31 -0.747437 1.7749106 0.342824 32 -1.727558 -0.8325772 1.043088 33 -0.073907 -0.3923823 1.083904 34 -2.646454 -0.1350138 -1.101448 35 1.331096 1.0443905 -0.039328 36 0.281192 -0.6569943 -0.404009 37 0.245349 -1.8406517 0.093656 38 -2.049446 0.5320301 0.347219 39 -1.645547 1.3268749 -1.068792 40 -1.216874 -0.8556007 0.201262 41 0.959445 1.6250030 -0.553881 42 -0.603579 -0.9569812 -1.502730 43 -0.946870 -1.6333180 1.324763 44 0.076217 0.5018427 -1.902369 45 -2.140584 1.2192726 -0.677180 46 -0.081677 0.5389288 -1.785347 47 -1.590461 2.1881067 -0.583771 48 0.931421 1.3321181 -0.669782 49 0.512639 1.2123979 0.683099 50 1.095415 0.0045968 0.143109 51 -1.456417 1.1186245 0.619657 52 -0.917904 2.2084467 -0.366392 53 -0.429654 -0.8524437 -2.326637 54 -1.213858 -0.4996891 1.630709 55 -1.253877 -0.9438354 0.692022 56 -0.390657 -0.0427482 1.571167 57 -1.797537 0.8934866 -0.281980 58 0.396886 0.3227454 1.492494 59 0.646360 -0.2194210 -0.562699 60 0.119900 -1.2480691 -1.459763 61 0.867946 -1.7843458 0.232229 62 -2.733997 0.3604288 -0.692947 63 -1.442683 -0.3732483 1.452800 64 1.444934 0.5727959 0.434633 65 -0.147284 0.7055205 -1.413940 66 -1.739552 -0.9838385 0.220303 67 -0.824644 0.1503195 0.411693 68 -2.437638 -0.4835278 -1.392882 69 -2.091970 1.1865192 -0.088483 70 0.403429 -0.7855276 -0.540161 71 0.507512 0.3152001 0.276885 72 -0.944376 -0.8197825 0.044859 73 -0.648597 -1.1160277 -0.658528 74 -0.979453 -1.4589411 0.029182 75 -0.982282 -0.7226425 -1.917060 ------------- Call: PcaLocantore(x = x) Standard deviations: [1] 1.01923 0.60282 0.46137 ---------------------------------------------------------- milk 86 8 8 1.175171 0.426506 Scores: PC1 PC2 PC3 PC4 PC5 PC6 [1,] 6.1907998 0.58762698 0.686510 -0.209679 0.3321757 -1.3424985 [2,] 7.0503894 -0.49576086 -0.322697 -0.767415 -0.0165833 -1.4596064 [3,] 0.7670594 -1.83556812 0.468814 0.346810 -0.0204610 -0.2115383 [4,] 5.4656748 -2.29797862 1.612819 -0.378295 -0.2050232 0.3486957 [5,] -1.0291160 0.37303007 0.634604 -0.521527 -0.3299543 0.0859469 [6,] 2.2186300 0.39396818 -0.236987 -0.033975 -0.2549238 0.2541221 [7,] 2.7938591 -0.01152811 -0.600546 -0.098564 -0.3906602 0.3798516 [8,] 2.9544176 0.32646226 0.273051 -0.275073 -0.3982959 0.2377581 [9,] -1.3344639 -2.45440308 1.001792 -0.104783 -0.1744718 -0.0887272 [10,] -2.9294174 -0.79860558 -0.260533 0.375330 0.3425169 -0.2056682 [11,] -9.5810648 -0.09577968 1.565111 -0.112002 0.3143032 -0.3190238 [12,] -13.1147240 2.95665890 0.228086 -0.180867 0.0136463 -0.4604390 [13,] -10.2989319 1.53220781 -2.244629 0.323950 -0.0398642 -0.3463501 [14,] -12.2553418 1.62281167 -0.472862 -0.212983 -0.4124280 -0.4253719 [15,] -10.8346894 -0.09781844 2.134079 -0.272304 -0.1090226 -0.3725738 [16,] -2.8358474 0.28109809 0.945309 0.603249 0.1615955 0.1762086 [17,] -1.0353408 -2.75475311 1.677879 0.598578 0.0078965 0.0228522 [18,] -2.0271810 1.25894451 -0.266038 -0.168565 -0.3000200 0.2891774 [19,] -1.9279394 -0.68339726 1.264416 0.186749 0.3018226 -0.0869321 [20,] 0.2568334 -1.62632029 0.854279 -0.088175 0.5458645 0.2217019 [21,] -2.7017404 2.45223507 -0.243639 -0.211402 -0.2102323 0.2140100 [22,] -1.0386097 0.99459030 0.188462 -0.033434 -0.2857078 -0.1438517 [23,] -0.0198126 1.73285416 0.761979 0.005501 0.1671992 -0.0375468 [24,] -0.4909448 1.40982693 0.967440 0.521275 0.1625359 -0.0892501 [25,] -3.6632699 2.51414455 0.966410 -0.272694 0.0467958 0.1572715 [26,] -0.8733564 1.42247465 0.946038 -0.338985 -0.0804141 -0.0080759 [27,] -3.2254798 0.26912538 0.799468 0.372442 -0.6886191 -0.0553515 [28,] 2.4675785 3.56128696 0.813964 0.118354 -0.1677073 -0.0303774 [29,] 4.4177264 1.13316321 0.613509 0.261488 0.4229929 0.1780620 [30,] 0.8240097 1.54163297 0.398148 -0.221825 0.0309586 0.0830110 [31,] 1.7735990 2.00615332 -1.399933 0.469158 -0.0740282 0.0692312 [32,] 1.2348922 0.28918604 -1.239899 0.470999 -0.1511519 -0.3692504 [33,] 1.9407276 0.19123540 0.406623 0.389965 0.0994854 -0.0204286 [34,] 0.6225565 -0.65636700 0.565253 0.369897 -0.1612501 -0.1774611 [35,] -0.4869219 2.26301333 0.071825 0.588101 -0.0579092 -0.0362009 [36,] 4.1117242 1.16638974 0.982790 -0.266009 0.0728797 -0.0018914 [37,] 0.8415225 2.46677043 -0.526780 0.167456 -0.2370116 -0.0731483 [38,] 2.0528334 2.09648023 0.220912 0.206722 -0.1924842 0.0676382 [39,] -1.4493644 1.14916103 0.904194 0.455498 0.0678893 -0.1476540 [40,] 3.4867792 -1.82367389 0.730183 0.499859 0.2327704 -0.1518819 [41,] 4.0222120 1.34765470 0.580852 -0.453301 0.2482908 -1.5306566 [42,] 6.4789035 -1.25599522 1.644194 0.381331 0.1699942 0.1847594 [43,] 3.1529354 0.44884526 -0.967114 -0.220364 0.0037036 0.0802727 [44,] 5.3344976 -0.47975673 0.642789 0.298705 0.9983145 -0.1310548 [45,] 0.0325597 0.49900084 0.076948 0.486521 0.1642679 0.1392696 [46,] 0.1014401 1.97657735 0.733879 0.127235 0.0650844 -0.0144271 [47,] 2.7217685 -0.37859042 -3.696163 0.355401 -0.4123714 0.2114024 [48,] 0.2292225 1.01473918 -1.115726 0.434557 0.2668316 0.0103147 [49,] -2.2803784 0.59474034 -1.783003 0.549252 0.4660435 -0.0802352 [50,] 3.1560404 -2.84820361 0.913015 0.077151 0.5803961 0.0350246 [51,] -1.4680905 -0.43078891 -1.733657 0.074684 0.0026718 0.0819023 [52,] -5.2469034 0.48385240 -1.246027 0.081379 0.2380924 -0.1663831 [53,] -0.7670982 0.00234561 -0.923030 -0.366820 0.1582141 0.0508747 [54,] -0.2428655 0.04714401 -0.217187 -0.059549 0.1762969 0.0806339 [55,] 0.8723441 0.66109329 -0.224917 -0.360607 -0.0638127 0.1310131 [56,] 0.0019700 -0.67624071 0.081304 -0.182908 0.1045597 -0.0281936 [57,] -1.3684663 -0.00045069 0.860560 -0.350684 -0.1443970 -0.2270651 [58,] 0.0079047 1.36376727 0.750919 -0.437914 -0.1894910 0.2345556 [59,] -1.7430794 -1.06973583 -0.569381 -0.055139 -0.1582790 -0.0873605 [60,] -1.5171606 -0.69340281 -0.287048 -0.136559 -0.3871182 0.1606979 [61,] -0.0955085 -1.64221260 0.263650 -0.265665 -0.0808644 -0.0476862 [62,] 2.2259171 -2.22161516 0.426279 0.027834 0.2924338 -0.1784242 [63,] 2.7573525 -0.11785122 0.391113 -0.094032 -0.3184760 0.4251268 [64,] 2.7573525 -0.11785122 0.391113 -0.094032 -0.3184760 0.4251268 [65,] -0.5520071 -2.86186682 0.746248 0.109945 0.0556927 -0.0135739 [66,] -2.4472964 -0.94969715 -0.329042 -0.113895 -0.2728443 -0.0523337 [67,] 0.1790969 -1.29190443 0.146657 0.140234 0.1534048 0.2318353 [68,] -0.8017055 -1.93331421 -1.968273 0.017854 0.1287513 -0.2306786 [69,] -0.7356418 -0.68868398 -0.075215 -0.156944 0.0302876 0.4232626 [70,] 3.8821693 5.16959880 0.215490 -8.985938 5.2189361 -2.8089276 [71,] -2.3478937 -1.60220695 0.058822 -0.111845 -0.0539018 0.0087982 [72,] 2.3676739 -0.70331436 -0.214457 -0.307311 -0.1582719 0.3995413 [73,] -1.9906385 -2.60946629 -0.730312 0.485522 -0.2391998 0.1009341 [74,] -11.2435515 1.44868683 2.482678 0.026711 0.4922865 -0.2822136 [75,] 0.0044207 -2.29768358 -0.692425 0.538923 -0.4110598 -0.0824903 [76,] -1.4045239 -0.22649785 -1.343257 -0.067382 -0.1322233 -0.1072330 [77,] -8.3637576 0.14167751 1.267616 0.384528 -0.0728561 -0.4017300 [78,] 1.3022939 -1.47457541 -0.394623 -0.068014 -0.1502832 0.0757414 [79,] -0.1950676 -0.58254701 -0.824931 -0.088174 -0.2071634 -0.1896613 [80,] -3.4432989 1.73593273 0.777996 0.094211 0.2377017 -0.1520088 [81,] 1.2167258 0.77512068 0.085803 -0.214850 -0.2201173 0.0432435 [82,] 2.7778798 -1.80071342 0.583878 0.465898 0.0648352 0.2148470 [83,] 2.6218578 -0.39825539 -0.553372 -0.145721 -0.0977092 -0.2485337 [84,] 0.8946018 0.33790104 -1.974267 0.091828 0.0051986 -0.2606274 [85,] 0.7759316 -2.34860124 2.423325 -0.384149 -0.0167182 -0.0353374 [86,] 0.6266756 0.87099609 -1.407948 -0.237762 0.0361644 0.1675792 PC7 PC8 [1,] -0.1014312 1.5884e-03 [2,] -0.3831443 1.0212e-03 [3,] -0.7164683 1.2035e-03 [4,] 0.0892864 3.5409e-04 [5,] -0.0943992 1.0547e-03 [6,] 0.1184847 1.5031e-03 [7,] -0.2509793 1.6850e-05 [8,] -0.0136880 7.0308e-04 [9,] 0.2238736 -1.9164e-04 [10,] 0.0754413 1.3614e-04 [11,] 0.0784380 3.5175e-04 [12,] 0.2033489 -1.3174e-03 [13,] 0.2139525 -1.7101e-03 [14,] 0.1209735 -9.1070e-04 [15,] 0.2119647 -9.2843e-04 [16,] -0.3011483 -2.1474e-03 [17,] 0.0660858 -1.9036e-03 [18,] -0.5199396 -9.4385e-04 [19,] -0.1232622 -1.2649e-03 [20,] -0.3900208 -2.6927e-04 [21,] 0.0264834 7.6074e-05 [22,] -0.0736288 1.7240e-04 [23,] -0.2156005 -5.5661e-04 [24,] 0.1143327 -2.5248e-04 [25,] 0.0481580 -6.1531e-04 [26,] -0.0084802 -7.5928e-04 [27,] -0.2173883 -3.0971e-04 [28,] 0.3288873 -1.8975e-04 [29,] 0.0788974 -7.2436e-04 [30,] -0.0598663 -3.0463e-04 [31,] -0.1511658 -4.8751e-04 [32,] -0.0532375 -2.5207e-04 [33,] -0.0635290 -3.9270e-04 [34,] 0.1598240 1.3024e-04 [35,] -0.0355175 -8.5374e-05 [36,] -0.0174096 -6.3294e-04 [37,] -0.2883141 -5.2809e-04 [38,] 0.1426412 5.3331e-04 [39,] 0.0313308 4.2738e-04 [40,] -0.3536195 -3.4170e-04 [41,] -0.3925168 1.4588e-04 [42,] -0.0056267 -9.1925e-04 [43,] -0.4447402 -1.8415e-04 [44,] 0.9184385 -5.9685e-04 [45,] -0.0340987 7.2924e-04 [46,] -0.0162866 9.7800e-04 [47,] 0.2428769 -1.1208e-03 [48,] 0.3026758 -4.5769e-04 [49,] 0.0246345 -2.6207e-04 [50,] 0.0857698 7.6439e-05 [51,] 0.1136658 1.3013e-04 [52,] 0.3993357 6.2796e-04 [53,] -0.1765161 1.1329e-04 [54,] 0.0016144 2.5870e-04 [55,] 0.1064371 5.8188e-04 [56,] 0.0207478 -8.7595e-05 [57,] 0.1560065 6.3987e-05 [58,] 0.1684561 -5.0193e-05 [59,] 0.0778732 -8.5458e-04 [60,] 0.0037585 1.0429e-05 [61,] -0.0296083 3.1526e-05 [62,] 0.0913974 -2.2794e-04 [63,] 0.0358917 -7.3721e-04 [64,] 0.0358917 -7.3721e-04 [65,] 0.1209159 2.9398e-04 [66,] -0.0027574 2.9380e-04 [67,] -0.0091059 -2.7494e-04 [68,] 0.0555970 -3.3016e-04 [69,] -0.0149255 -3.1228e-04 [70,] 0.9282997 4.7859e-05 [71,] 0.2630142 4.2617e-04 [72,] 0.1063248 -3.0070e-04 [73,] -0.1462452 4.9607e-04 [74,] 0.2027591 2.6399e-03 [75,] 0.6934350 6.0284e-04 [76,] -0.0430524 8.1271e-04 [77,] 0.0789302 1.4655e-03 [78,] -0.0318359 5.2799e-04 [79,] -0.1269568 2.9497e-04 [80,] 0.2903958 7.8932e-04 [81,] 0.0979443 -3.1531e-04 [82,] -0.0548155 4.2140e-04 [83,] -0.0371550 -5.6653e-04 [84,] -0.0835149 -7.0682e-04 [85,] 0.1864954 1.0604e-03 [86,] 0.1074252 -7.4859e-04 ------------- Call: PcaLocantore(x = x) Standard deviations: [1] 1.08405293 0.65307452 0.28970076 0.11162824 0.09072195 0.06659711 0.05888048 [8] 0.00022877 ---------------------------------------------------------- bushfire 38 5 5 1.464779 0.043290 Scores: PC1 PC2 PC3 PC4 PC5 [1,] -69.9562 -13.0364 0.98678 1.054123 2.411188 [2,] -71.5209 -10.5459 0.31081 1.631208 1.663470 [3,] -63.9308 -7.4622 -2.43241 0.671038 0.465836 [4,] -47.0413 -9.6343 -3.83609 0.758349 0.683983 [5,] -15.9088 -20.1737 -5.55893 1.181744 -0.053563 [6,] 8.3484 -30.7646 -5.51541 1.877227 1.338037 [7,] -207.7458 -66.2492 34.48519 -5.894885 -1.051729 [8,] -246.4327 -97.0433 -9.57057 22.286225 -9.234869 [9,] -247.5984 -98.8613 -12.13406 23.948770 -9.250401 [10,] -245.8121 -79.2634 12.47990 13.046128 -5.125478 [11,] -246.8887 -62.5899 21.21764 9.111011 -5.080985 [12,] -251.1354 -9.2115 31.77448 0.236379 0.707528 [13,] -194.0239 27.1288 21.05023 0.940913 1.781359 [14,] 51.7182 8.5038 -11.22109 -2.132458 1.984807 [15,] 180.5597 -4.8151 -21.36630 -9.390663 -0.817036 [16,] 135.7246 -5.0756 -11.33517 -10.015567 -1.670831 [17,] 133.0151 -4.0344 -8.95540 -7.702087 -0.923277 [18,] 121.2619 -9.0627 -5.96042 -7.210971 -2.092872 [19,] 124.9038 -10.6649 -7.22555 -5.349553 -1.771009 [20,] 135.5410 -6.8146 -7.52834 -5.562769 -0.396924 [21,] 117.1950 -3.5643 -4.67473 -6.862117 -0.234551 [22,] 108.9944 -2.3344 -5.90349 -5.928299 1.455538 [23,] -21.4031 8.0668 6.19525 -4.784890 0.671394 [24,] -76.3499 16.7804 6.52545 -1.391250 1.219282 [25,] -12.5732 6.1109 -1.45259 -3.512072 -0.375837 [26,] -19.1800 3.4685 -2.02243 -3.490028 -0.169127 [27,] -33.6733 12.0757 -3.53322 0.048666 0.067468 [28,] -9.3966 21.5055 -5.91671 2.650895 -0.449672 [29,] 1.4123 35.8559 -5.98222 5.982362 0.613667 [30,] -54.2683 39.6029 7.82694 6.759994 0.035048 [31,] 74.8866 34.9048 10.03986 12.592158 0.149308 [32,] 331.4144 9.3079 27.73391 17.334531 1.015536 [33,] 367.6915 -19.5135 48.52753 10.213314 -1.268047 [34,] 363.8686 -20.4079 49.32855 8.986581 -1.930673 [35,] 369.4371 -19.5074 49.66761 9.001542 -0.179566 [36,] 366.5850 -20.2555 50.30290 7.745330 -2.259131 [37,] 364.5463 -19.8198 53.00407 6.757796 -1.083372 [38,] 365.9709 -19.3753 53.80168 6.467284 -0.854384 ------------- Call: PcaLocantore(x = x) Standard deviations: [1] 1.210280 0.208063 0.177790 0.062694 0.014423 ---------------------------------------------------------- ========================================================== > dodata(method="cov") Call: dodata(method = "cov") Data Set n p k e1 e2 ========================================================== heart 12 2 2 685.776266 13.127306 Scores: PC1 PC2 1 8.18562 1.17998 2 65.41185 -2.80723 3 1.86039 -1.70646 4 -2.26910 2.44051 5 20.19603 -1.47331 6 -14.46264 7.05759 7 6.91264 1.99823 8 -28.95436 -3.81624 9 -0.61523 -1.09711 10 -27.62427 -3.33575 11 -13.17788 0.37931 12 49.94879 -1.62675 ------------- Call: PcaCov(x = x) Standard deviations: [1] 26.1873 3.6232 ---------------------------------------------------------- starsCYG 47 2 2 0.280150 0.007389 Scores: PC1 PC2 1 0.272263 -0.07964458 2 0.804544 0.03382837 3 -0.040587 -0.14464760 4 0.804544 0.03382837 5 0.222468 -0.14305159 6 0.512941 -0.02420304 7 -0.378928 -0.51924735 8 0.341045 0.11236831 9 0.592550 -0.23812462 10 0.163442 -0.06357822 11 0.638370 -1.02323643 12 0.498667 -0.05242075 13 0.476291 0.00142479 14 -0.947664 -0.26343572 15 -0.699020 -0.01711057 16 -0.363464 0.06475681 17 -1.024352 -0.02972862 18 -0.759174 0.12317995 19 -0.786925 -0.06478250 20 0.796654 -1.04660568 21 -0.580307 -0.03463751 22 -0.738591 -0.01126825 23 -0.521748 0.08812607 24 -0.086135 0.09457052 25 0.065975 -0.03907968 26 -0.284322 0.05307219 27 -0.303309 -0.07553370 28 -0.052738 -0.02155274 29 -0.580638 -0.10534741 30 0.953478 -1.07986770 31 -0.527590 0.04855502 32 0.171408 0.12730538 33 0.274054 0.00095808 34 1.192364 -1.10502882 35 -0.628641 -0.08815176 36 0.694595 0.11071187 37 0.167026 0.09762710 38 0.274054 0.00095808 39 0.246168 0.08594248 40 0.617380 -0.06994769 41 -0.329735 0.01934346 42 0.115770 0.02432733 43 0.400071 0.03289494 44 0.392768 -0.01656886 45 0.605229 0.05314718 46 0.036628 0.03601196 47 -0.442606 0.07644144 ------------- Call: PcaCov(x = x) Standard deviations: [1] 0.529292 0.085957 ---------------------------------------------------------- phosphor 18 2 2 288.018150 22.020514 Scores: PC1 PC2 1 2.7987 -19.015683 2 -20.4311 -0.032022 3 -21.8198 4.589809 4 -11.7869 -6.837833 5 -16.9357 2.664785 6 12.9132 -25.602526 7 1.5249 -6.351664 8 -8.0984 2.416616 9 -8.6979 4.843680 10 14.3903 -12.732868 11 -2.9462 -0.760656 12 11.7427 2.991004 13 14.8400 0.459849 14 9.2449 3.095095 15 19.4860 -3.336883 16 -9.4156 -7.096788 17 23.3759 -1.737460 18 19.9173 5.092467 ------------- Call: PcaCov(x = x) Standard deviations: [1] 16.9711 4.6926 ---------------------------------------------------------- stackloss 21 3 3 28.153060 8.925048 Scores: PC1 PC2 PC3 [1,] 10.538448 13.596944 12.84989 [2,] 9.674846 14.098881 12.89733 [3,] 8.993255 9.221043 9.94062 [4,] 1.744427 3.649104 0.17292 [5,] 0.980215 2.223126 1.34874 [6,] 1.362321 2.936115 0.76083 [7,] 6.926040 0.637480 -0.11170 [8,] 6.926040 0.637480 -0.11170 [9,] 0.046655 0.977727 -2.46930 [10,] -7.909092 0.926343 0.80232 [11,] -0.136672 -3.591094 0.37539 [12,] -1.382381 -3.802146 1.01074 [13,] -6.181887 -0.077532 0.70744 [14,] 3.699843 -4.885854 -0.40226 [15,] -2.768005 -7.507870 -6.08487 [16,] -5.358811 -6.002058 -5.94256 [17,] -17.067135 1.738055 -5.86637 [18,] -11.021920 -1.775507 -6.19842 [19,] -9.776212 -1.564455 -6.83377 [20,] -6.075508 0.369252 -2.08345 [21,] 6.301743 2.706174 8.79509 ------------- Call: PcaCov(x = x) Standard deviations: [1] 5.3059 2.9875 1.3020 ---------------------------------------------------------- salinity 28 3 3 11.801732 3.961826 Scores: PC1 PC2 PC3 1 -1.59888 1.582157 0.135248 2 -2.26975 2.429177 1.107832 3 -6.79543 -2.034636 0.853876 4 -6.36795 -0.602960 -0.267268 5 -6.42044 -1.520259 5.022962 6 -5.13821 1.225470 0.016977 7 -3.24014 1.998671 -0.123418 8 -0.93998 2.789889 -0.515656 9 -0.30856 -2.424345 -1.422752 10 2.20362 -2.800513 1.142127 11 1.38120 -2.076832 2.515630 12 0.44997 0.207439 -0.152835 13 1.21669 1.193701 -0.277116 14 3.31664 1.306627 1.213342 15 2.08484 -3.774814 0.905400 16 -3.64862 -4.677257 9.046484 17 -0.46124 -1.411762 1.706719 18 -2.13038 0.890401 -0.633349 19 -0.23610 -2.262304 -1.885048 20 1.70337 -1.970773 -0.781880 21 2.67273 1.038742 -0.610945 22 4.24561 1.547290 0.108927 23 2.99619 -4.785343 3.094945 24 1.64474 -3.564562 3.432429 25 1.11703 -1.158030 0.237700 26 2.30707 0.069668 -0.735809 27 3.59356 0.860498 -0.611380 28 4.57550 1.300407 0.589307 ------------- Call: PcaCov(x = x) Standard deviations: [1] 3.43536 1.99043 0.94546 ---------------------------------------------------------- hbk 75 3 3 1.436470 1.181766 Scores: PC1 PC2 PC3 1 31.105415 -4.714217 10.4566165 2 31.707650 -5.748724 10.7682402 3 33.366131 -4.625897 12.1570167 4 34.173377 -6.069657 12.4466895 5 33.780418 -5.508823 11.9872893 6 32.493478 -4.684595 10.5679819 7 32.592637 -5.235522 10.3765493 8 31.293363 -4.865797 10.9379676 9 33.160964 -5.714260 12.3098920 10 31.919786 -5.384537 12.3374332 11 38.231962 -6.810641 13.5994385 12 39.290479 -5.393906 15.2942554 13 39.418445 -7.326461 11.5194898 14 43.906584 -13.214819 8.3282743 15 1.906326 0.716061 -0.8635112 16 0.263255 0.926016 -1.9009292 17 -1.776489 -1.072332 -0.5496140 18 0.464648 0.702441 0.0482897 19 0.267826 -1.283779 -0.2925812 20 2.122108 0.165970 -0.8924686 21 0.937217 0.548532 -0.4132196 22 0.423273 -1.781869 -0.0323061 23 0.047532 0.018909 -1.1259327 24 -0.490041 -0.520202 -1.1065753 25 -2.143049 0.720869 -0.0495474 26 1.094748 -1.459175 0.2226246 27 2.070705 0.898573 0.0023229 28 -0.294998 0.830258 0.5929001 29 -1.242995 0.300216 -0.2010507 30 0.147958 0.439099 2.0003038 31 0.170818 1.440946 -0.9755627 32 -0.958531 -1.199730 -1.0129867 33 0.697307 -0.874343 -0.7260649 34 -2.278946 0.261106 0.4196544 35 1.962829 0.809318 0.2033113 36 0.626631 -0.600666 0.8004036 37 0.550885 -1.881448 0.7382776 38 -1.249717 0.336214 -0.9349845 39 -1.106696 1.569418 0.1869576 40 -0.684034 -0.939963 -0.1034965 41 1.559314 1.551408 0.3660323 42 -0.538741 -0.447358 1.6361099 43 -0.252685 -2.080564 -0.7765259 44 0.217012 1.027281 1.7015154 45 -1.497600 1.349234 -0.2698932 46 0.100388 1.026443 1.5390401 47 -0.811117 2.195271 -0.5208141 48 1.462210 1.321318 0.5600144 49 1.383976 0.740714 -0.7348906 50 1.636773 -0.215464 0.3195369 51 -0.530918 0.759743 -1.2069247 52 -0.109566 2.107455 -0.5315473 53 -0.564334 -0.060847 2.3910630 54 -0.272234 -1.122711 -1.5060028 55 -0.608660 -1.197219 -0.5255609 56 0.565430 -0.710345 -1.3708230 57 -1.115629 0.888816 -0.4186014 58 1.351288 -0.374815 -1.1980618 59 0.998016 -0.151228 0.9007970 60 0.124017 -0.764846 1.9005963 61 1.189858 -1.905264 0.7721322 62 -2.190589 0.579614 -0.1377914 63 -0.518278 -0.931130 -1.4534768 64 2.124566 0.194391 -0.0327092 65 0.154218 1.050861 1.1309885 66 -1.197852 -1.044147 -0.2265269 67 -0.114174 -0.094763 -0.5168926 68 -2.201115 0.032271 0.8573493 69 -1.307843 1.104815 -0.7741270 70 0.691449 -0.676665 1.0004603 71 1.150975 0.050861 -0.0717068 72 -0.457293 -0.861871 0.1026350 73 -0.392258 -0.897451 0.9178065 74 -0.584658 -1.450471 0.3201857 75 -0.972517 -0.063777 1.8223995 ------------- Call: PcaCov(x = x) Standard deviations: [1] 1.1985 1.0871 1.0086 ---------------------------------------------------------- milk 86 8 8 5.758630 2.224809 Scores: PC1 PC2 PC3 PC4 PC5 PC6 1 5.7090867 1.388263 0.0055924 0.3510505 -0.7335114 -1.41950731 2 6.5825186 0.480410 -1.1356236 -0.3250838 -0.7343177 -1.71595400 3 0.7433619 -1.749281 0.2510521 0.3450575 0.2996413 -0.34585702 4 5.5733255 -1.588521 0.8934908 -0.3412408 0.0087626 0.07235942 5 -1.3030839 0.142394 0.8487785 -0.5847851 0.0588053 -0.08968553 6 1.7708705 0.674240 -0.4153759 -0.1915734 0.1382138 0.12454293 7 2.3570866 0.381017 -0.8771357 -0.3739365 0.2918453 0.13437364 8 2.5700714 0.695006 0.0061108 -0.4323695 0.1643797 -0.00469369 9 -1.1725766 -2.713291 1.0677483 -0.0647875 0.1183120 -0.10762785 10 -3.1357225 -1.255175 0.0666017 0.5083690 -0.1096080 -0.00647493 11 -9.5333894 -1.608943 2.7307809 0.1690156 -0.1682415 -0.06597478 12 -13.6028505 0.941083 2.0136258 -0.1076520 -0.0475905 -0.15295614 13 -10.9497471 0.048776 -0.8765307 0.1518572 0.1428294 -0.00064406 14 -12.6558378 -0.219444 1.1396273 -0.3734679 0.2875578 -0.23870524 15 -10.6924790 -1.818075 3.4560731 -0.1177943 0.1101199 -0.19708172 16 -3.0258070 -0.203186 1.2835368 0.5799363 0.3237454 0.23168871 17 -0.7498665 -2.977505 1.6310512 0.6305329 0.3994006 0.06594881 18 -2.5093526 0.924459 0.0899818 -0.4026675 0.2963072 0.11324019 19 -1.9689970 -1.051282 1.4659908 0.3870104 -0.0708083 -0.02148354 20 0.2695886 -1.646440 0.7597630 0.1750131 -0.3418142 0.21515143 21 -3.3470252 1.989939 0.2887021 -0.3599779 0.0771965 0.16867095 22 -1.4659204 0.777242 0.4090149 -0.1248050 0.1916768 -0.23160291 23 -0.4944476 1.634130 0.8915509 0.1222296 -0.1231015 -0.08351169 24 -0.8945477 1.239223 1.1117165 0.6018455 0.0912200 -0.01204668 25 -4.1499992 1.860190 1.6062973 -0.2139736 -0.1140169 0.16632426 26 -1.2647012 1.188058 1.1893430 -0.2740862 -0.0971504 -0.09851714 27 -3.4280131 -0.267150 1.1969552 0.0354366 0.8482718 -0.18977667 28 1.6896630 3.793723 0.7706325 0.1007287 0.0317704 -0.11269816 29 3.9258127 1.691428 0.1850999 0.4485202 -0.2969916 0.16594044 30 0.3178322 1.577233 0.4455231 -0.1687197 -0.1587136 -0.00823174 31 0.9562350 2.258138 -1.4672169 0.2675668 0.1910110 0.03177387 32 0.6738452 0.470764 -1.3496896 0.3524049 0.2008218 -0.36957179 33 1.5980690 0.413899 0.1999664 0.4232293 0.0768479 -0.04627841 34 0.4365091 -0.626490 0.4718364 0.3392252 0.2554060 -0.19018602 35 -1.1184804 2.124234 0.2650931 0.4791171 0.2927791 -0.01579964 36 3.6673986 1.659798 0.6138972 -0.1092158 -0.2705583 -0.16494176 37 0.0867143 2.541765 -0.4572593 0.0024263 0.2163300 -0.20116352 38 1.4191839 2.315690 0.1365887 0.1028375 0.1595780 -0.02049460 39 -1.8062960 0.845438 1.1469588 0.5022406 0.1603011 -0.08751261 40 3.4380914 -1.358545 0.1956896 0.6314649 0.0716078 -0.21591535 41 3.4608782 1.828575 0.2012565 0.1064437 -0.7454169 -1.64629924 42 6.4162310 -0.402642 0.8070441 0.5146855 0.0331594 0.04373032 43 2.5906567 0.897993 -1.2612252 -0.2620162 -0.1432569 -0.10279385 44 5.0299750 0.203721 0.0439110 0.8775684 -0.9536011 0.15153452 45 -0.3555392 0.454930 0.1173992 0.4688991 0.1137820 0.18752442 46 -0.4155426 1.892410 0.8649578 0.1827426 -0.0186113 -0.04029205 47 1.9328817 0.121936 -3.9578157 -0.1135807 0.2971001 0.18733657 48 -0.3947656 1.028405 -1.0370498 0.4467257 -0.1445498 0.16878692 49 -2.8829860 0.279064 -1.4443310 0.5889970 -0.1883118 0.16947945 50 3.2797246 -2.443968 0.4100655 0.4278962 -0.4414712 0.08598366 51 -1.9272930 -0.622137 -1.5136862 -0.0483369 -0.0272502 0.16006066 52 -5.7161590 -0.298434 -0.5216578 0.1385780 -0.2435931 0.10628617 53 -1.1933277 -0.125878 -0.7556261 -0.3129372 -0.3166453 0.03078643 54 -0.5994394 -0.031069 -0.1296378 0.0061490 -0.1869578 0.09839221 55 0.4104586 0.733465 -0.2088065 -0.3645266 -0.1830137 0.04705775 56 -0.2227671 -0.724741 0.1007592 -0.0838897 -0.1939960 -0.04223579 57 -1.5706297 -0.292436 1.0849660 -0.2559591 -0.0917278 -0.27423151 58 -0.4102168 1.263831 0.9082556 -0.4592777 -0.0676902 0.11089798 59 -1.9640736 -1.340173 -0.3652736 -0.1267573 0.0775692 -0.07977644 60 -1.7490968 -0.941370 -0.0849901 -0.3453455 0.2858594 0.06413468 61 -0.1583416 -1.699326 0.2385988 -0.2231496 -0.0513883 -0.12227279 62 2.2124878 -1.942366 0.0743514 0.2627321 -0.2844018 -0.15848039 63 2.4578489 0.226019 0.1148050 -0.2715718 0.2322085 0.22346659 64 2.4578489 0.226019 0.1148050 -0.2715718 0.2322085 0.22346659 65 -0.3779208 -2.987354 0.6819006 0.1942611 0.0529259 0.01315140 66 -2.6385498 -1.331204 -0.0367809 -0.2327572 0.1845076 -0.08521680 67 0.0526645 -1.301299 0.0912198 0.1634869 -0.0068236 0.24131589 68 -1.1013065 -2.004809 -1.9168056 0.0260663 -0.2029903 -0.12625268 69 -0.9495853 -0.831697 0.0389476 -0.2123483 -0.0202267 0.38463410 70 2.6935893 5.369312 0.6987368 -4.5754846 -9.6833013 -2.32910628 71 -2.4037611 -1.983509 0.3109848 -0.1015686 -0.0071432 0.06410351 72 2.0795505 -0.392730 -0.4534128 -0.4054224 -0.0312781 0.25408988 73 -2.0038405 -2.874605 -0.6269939 0.2408421 0.5184666 0.11140104 74 -11.2683996 -0.361851 3.9219448 0.4045689 -0.2203308 0.05930132 75 -0.1028287 -2.295813 -0.7769187 0.3071821 0.4537196 0.00522380 76 -1.8466137 -0.425825 -1.1261209 -0.1760585 0.0165729 -0.10698465 77 -8.4124493 -1.174820 2.2700712 0.4213953 0.3446597 -0.20636892 78 1.1103236 -1.299480 -0.5787732 -0.1455945 0.0732148 -0.01806218 79 -0.5451834 -0.620170 -0.7830595 -0.1746479 0.0723052 -0.26017118 80 -3.8647223 1.126328 1.3299567 0.2645241 -0.1881443 0.00485531 81 0.7690939 0.887363 0.0513096 -0.2730980 0.0076447 -0.07590882 82 2.7287618 -1.435327 0.1602865 0.4465859 0.2129425 0.16104418 83 2.2241485 -0.042822 -0.8316486 -0.1230697 -0.1193057 -0.35207561 84 0.2452905 0.491732 -2.0050683 0.0286567 -0.1159415 -0.24887542 85 1.0655845 -2.360746 2.2456131 -0.1479972 -0.1186670 -0.14020891 86 -0.0091659 0.952208 -1.3429189 -0.2944676 -0.2433277 0.15354490 PC7 PC8 1 -0.09778744 2.3157e-03 2 0.05189698 1.8077e-03 3 0.70506895 1.2838e-03 4 -0.08541140 3.2781e-04 5 0.11768945 8.3496e-04 6 -0.17886391 1.5222e-03 7 0.14143613 1.3261e-04 8 -0.07724578 7.1241e-04 9 -0.12298048 -7.0110e-04 10 0.07569878 2.3093e-05 11 0.29299858 -3.4542e-04 12 0.07764899 -2.1390e-03 13 -0.08945524 -2.2633e-03 14 0.03597787 -1.8891e-03 15 0.11780498 -2.0279e-03 16 0.46501534 -2.3266e-03 17 0.08603290 -2.4073e-03 18 0.52605757 -9.8822e-04 19 0.31007227 -1.3919e-03 20 0.61582059 -2.3549e-05 21 0.01199350 -6.1649e-05 22 0.03654587 1.3302e-05 23 0.27549986 -3.6759e-04 24 -0.04155354 -2.9882e-04 25 0.11473708 -7.9629e-04 26 0.06673183 -8.3728e-04 27 0.16937729 -9.5775e-04 28 -0.41753592 -7.5544e-05 29 -0.03693100 -2.2481e-04 30 0.08461537 -1.3611e-04 31 0.02476253 -1.4319e-04 32 -0.09756048 -1.2234e-04 33 0.06442434 -2.4915e-04 34 -0.17828409 -9.5882e-05 35 0.00881239 -7.1427e-05 36 -0.01041003 -2.8489e-04 37 0.15994729 -3.1472e-04 38 -0.22386895 6.1384e-04 39 0.03666242 2.8506e-04 40 0.35883231 -8.3062e-05 41 0.18521851 8.5509e-04 42 0.00733985 -6.4477e-04 43 0.35466617 3.2923e-04 44 -0.74952524 -7.6869e-05 45 0.09907237 7.9128e-04 46 0.05119980 1.0606e-03 47 -0.48571583 -9.3780e-04 48 -0.27463442 -2.7037e-04 49 0.06787536 -3.0554e-05 50 0.08499400 3.1181e-04 51 -0.09197457 1.1213e-04 52 -0.24513244 3.9100e-04 53 0.24012780 3.2068e-04 54 0.07999888 3.5689e-04 55 -0.09825475 6.6675e-04 56 0.05133674 -7.2984e-05 57 -0.10302363 -2.0693e-04 58 -0.12323360 -1.6620e-04 59 -0.05119989 -1.1016e-03 60 0.00082131 -3.2951e-04 61 0.08128272 -1.1550e-04 62 -0.01789040 -1.1579e-04 63 -0.07188070 -7.8367e-04 64 -0.07188070 -7.8367e-04 65 0.00917085 -2.6800e-05 66 0.03121573 -5.3492e-05 67 0.12202335 -3.0466e-04 68 -0.04764366 -2.6126e-04 69 0.13828337 -3.9331e-04 70 0.10401069 4.2870e-03 71 -0.14369640 3.7669e-05 72 -0.10334451 -2.6456e-04 73 0.17655402 1.0917e-04 74 0.26779696 1.8685e-03 75 -0.75016549 2.1079e-05 76 0.01802016 7.7555e-04 77 0.13081368 6.4286e-04 78 0.01409131 4.9476e-04 79 0.06643384 2.6590e-04 80 -0.12624376 5.9801e-04 81 -0.14074469 -3.2172e-04 82 0.09228230 4.4064e-04 83 -0.06352151 -3.6274e-04 84 -0.02642452 -3.9742e-04 85 -0.03502188 6.9814e-04 86 -0.11749109 -5.1283e-04 ------------- Call: PcaCov(x = x) Standard deviations: [1] 2.39971451 1.49157920 0.93184037 0.33183258 0.19628996 0.16485446 0.12784351 [8] 0.00052622 ---------------------------------------------------------- bushfire 38 5 5 11393.979994 197.523453 Scores: PC1 PC2 PC3 PC4 PC5 1 -91.383 -16.17804 0.56195 -0.252428 1.261840 2 -93.033 -13.93251 -0.67212 0.042287 0.470924 3 -85.400 -10.72512 -3.09832 -1.224797 -0.504718 4 -68.381 -12.12202 -3.31950 -0.676880 -0.228383 5 -36.742 -21.04171 -1.98872 0.397655 -0.932613 6 -12.095 -30.21719 0.59595 2.100702 0.384714 7 -227.949 -71.40450 35.57308 -7.880296 -2.710415 8 -262.815 -111.81228 -11.04574 2.397832 -13.646407 9 -263.767 -114.13702 -13.71407 3.131736 -13.825200 10 -264.312 -90.69643 9.72320 0.967173 -8.800150 11 -266.681 -72.85993 16.55010 0.291092 -8.373583 12 -274.050 -18.41395 20.74273 -2.464589 -1.505967 13 -218.299 19.16040 7.69765 0.069012 0.054846 14 29.646 10.52526 -7.50754 0.855493 1.966680 15 159.575 3.86633 -6.95837 -2.753953 0.616068 16 114.286 2.47164 0.62690 -3.146317 -0.501623 17 111.289 3.45086 1.97182 -0.303064 -0.094416 18 99.626 -1.80416 4.88197 -0.013096 -1.438397 19 103.353 -3.50426 3.58993 1.578169 -1.317194 20 113.769 0.84544 3.28254 2.204926 0.131167 21 95.186 3.50703 4.97153 0.916181 0.351658 22 86.996 4.00938 2.95209 1.281788 1.920404 23 -44.232 8.50898 6.30689 -1.038871 0.400078 24 -99.527 13.81377 1.75130 -0.260669 0.394804 25 -34.855 5.99709 -0.57224 -1.660513 -0.620158 26 -41.265 2.94659 -1.04825 -2.243950 -0.440017 27 -56.148 10.14428 -5.41858 0.321752 -0.608412 28 -32.366 20.27795 -8.60687 3.806572 -1.267249 29 -22.438 34.73585 -11.19123 8.296154 -0.511610 30 -79.035 37.05713 -1.51591 9.892959 -1.618635 31 49.465 39.37414 5.95714 22.874813 -1.883481 32 304.825 30.19205 37.68900 45.175923 -1.293939 33 341.237 7.04985 65.43451 44.553009 -3.148116 34 337.467 6.16879 66.48222 43.278480 -3.688631 35 342.929 7.38548 66.91291 43.941556 -1.937887 36 340.143 6.70203 67.85433 42.479161 -3.873639 37 337.931 7.43184 70.50828 42.333220 -2.645830 38 339.281 8.07267 71.34405 42.400459 -2.392774 ------------- Call: PcaCov(x = x) Standard deviations: [1] 106.7426 14.0543 4.9184 1.8263 1.0193 ---------------------------------------------------------- ========================================================== > dodata(method="grid") Call: dodata(method = "grid") Data Set n p k e1 e2 ========================================================== heart 12 2 2 516.143549 23.932102 Scores: PC1 PC2 [1,] 6.4694 3.8179 [2,] 61.7387 19.1814 [3,] 1.4722 -1.0161 [4,] -3.8056 1.5127 [5,] 18.6760 5.3303 [6,] -16.8411 1.7900 [7,] 4.9962 4.1638 [8,] -26.8665 -13.3010 [9,] -1.0648 -1.2690 [10,] -25.7734 -12.4037 [11,] -13.3987 -4.0751 [12,] 46.7700 15.1272 ------------- Call: PcaGrid(x = x) Standard deviations: [1] 22.719 4.892 ---------------------------------------------------------- starsCYG 47 2 2 0.473800 0.026486 Scores: PC1 PC2 [1,] 0.181489 -0.0300854 [2,] 0.695337 0.1492475 [3,] -0.120738 -0.1338110 [4,] 0.695337 0.1492475 [5,] 0.140039 -0.0992368 [6,] 0.413314 0.0551030 [7,] -0.409428 -0.5478860 [8,] 0.225647 0.1690378 [9,] 0.519123 -0.1471454 [10,] 0.071513 -0.0277935 [11,] 0.663045 -0.9203119 [12,] 0.402691 0.0253179 [13,] 0.373739 0.0759321 [14,] -1.005756 -0.3654219 [15,] -0.789968 -0.0898580 [16,] -0.467328 0.0334465 [17,] -1.111148 -0.1431778 [18,] -0.867242 0.0417806 [19,] -0.871200 -0.1481782 [20,] 0.823011 -0.9236455 [21,] -0.669994 -0.0923582 [22,] -0.829959 -0.0890246 [23,] -0.627294 0.0367802 [24,] -0.195929 0.0978059 [25,] -0.028257 -0.0157122 [26,] -0.387346 0.0317797 [27,] -0.390054 -0.0981920 [28,] -0.148231 -0.0132120 [29,] -0.661454 -0.1625514 [30,] 0.982767 -0.9369769 [31,] -0.628127 -0.0032112 [32,] 0.055476 0.1625819 [33,] 0.173158 0.0501056 [34,] 1.222924 -0.9319795 [35,] -0.711235 -0.1515118 [36,] 0.576613 0.2117347 [37,] 0.054851 0.1325884 [38,] 0.173158 0.0501056 [39,] 0.134833 0.1309216 [40,] 0.522665 0.0228177 [41,] -0.428171 -0.0073782 [42,] 0.013192 0.0534392 [43,] 0.294173 0.0975945 [44,] 0.293132 0.0476054 [45,] 0.495172 0.1434167 [46,] -0.066790 0.0551060 [47,] -0.547311 0.0351134 ------------- Call: PcaGrid(x = x) Standard deviations: [1] 0.68833 0.16275 ---------------------------------------------------------- phosphor 18 2 2 392.155327 50.657228 Scores: PC1 PC2 1 5.6537 -15.2305 2 -21.2150 -1.8862 3 -23.5966 2.3112 4 -11.2742 -6.6000 5 -18.4067 1.5202 6 16.9795 -19.4039 7 1.5964 -3.1666 8 -9.7354 3.2429 9 -10.8594 5.4759 10 15.5585 -6.5279 11 -4.0058 1.2905 12 9.4815 8.2139 13 13.0640 6.4346 14 7.0230 7.7600 15 18.4378 3.7658 16 -8.9047 -6.3253 17 21.8748 6.1900 18 16.9843 12.0801 ------------- Call: PcaGrid(x = x) Standard deviations: [1] 19.8029 7.1174 ---------------------------------------------------------- stackloss 21 3 3 109.445054 16.741203 Scores: PC1 PC2 PC3 [1,] 15.136434 14.82909 -2.0387704 [2,] 14.393636 15.46816 -1.8391595 [3,] 12.351209 10.12290 -2.3458098 [4,] 2.510036 2.07589 1.8251581 [5,] 1.767140 1.78527 -0.0088651 [6,] 2.138588 1.93058 0.9081465 [7,] 6.966825 -1.75851 0.6274924 [8,] 6.966825 -1.75851 0.6274924 [9,] -0.089513 -1.09062 2.2894224 [10,] -7.146340 2.65628 -0.8983590 [11,] -0.461157 -3.09532 -2.6948576 [12,] -1.575403 -2.60157 -3.4122582 [13,] -5.660744 1.37815 -1.2975809 [14,] 2.881484 -5.50628 -2.5762898 [15,] -4.917360 -9.13772 0.0676942 [16,] -7.145755 -7.22052 0.6665270 [17,] -17.173481 1.87173 4.3780920 [18,] -11.973894 -2.60174 2.9808153 [19,] -10.859648 -3.09549 3.6982160 [20,] -6.031899 0.15817 1.2270803 [21,] 8.451640 4.98077 -5.4038839 ------------- Call: PcaGrid(x = x) Standard deviations: [1] 10.4616 4.0916 2.8271 ---------------------------------------------------------- salinity 28 3 3 14.911546 8.034974 Scores: PC1 PC2 PC3 1 -2.72400 0.79288 0.688038 2 -3.45684 0.86162 1.941690 3 -5.73471 -4.79507 0.129202 4 -6.17045 -3.04372 -0.352797 5 -4.72453 -5.59543 4.144851 6 -5.75447 -1.07062 0.579975 7 -4.40759 0.47731 0.680203 8 -2.76360 2.30716 0.540271 9 -0.28782 -1.40644 -2.373399 10 2.64361 -1.43362 -0.266957 11 1.91078 -1.66975 1.312215 12 -0.40661 0.68573 -0.200135 13 -0.14911 1.88993 0.044001 14 1.99005 2.43874 1.373229 15 2.88128 -2.21263 -0.863674 16 -0.12935 -8.28831 6.483875 17 -0.16895 -1.68742 0.905190 18 -3.08054 0.23753 -0.269165 19 -0.38685 -1.08501 -2.736860 20 1.45520 -0.33209 -1.686406 21 1.13834 2.53553 -0.381657 22 2.48522 3.42927 0.417050 23 4.56487 -3.36542 0.711908 24 2.94072 -3.08490 1.556939 25 0.82140 -0.26895 -0.406490 26 1.17794 1.61119 -0.863764 27 2.02965 2.80707 -0.489050 28 2.98039 3.21462 0.747622 ------------- Call: PcaGrid(x = x) Standard deviations: [1] 3.86155 2.83460 0.95394 ---------------------------------------------------------- hbk 75 3 3 3.714805 3.187126 Scores: PC1 PC2 PC3 1 8.423138 24.765818 19.413334 2 7.823138 25.295092 20.356662 3 9.023138 27.411905 20.218454 4 8.223138 28.010236 21.568269 5 8.623138 27.442650 21.123471 6 9.123138 25.601873 20.279943 7 8.823138 25.463855 20.770811 8 8.223138 25.264348 19.451646 9 8.023138 27.373593 20.716984 10 7.623138 26.752275 19.666288 11 9.323138 31.108975 24.313778 12 10.323138 33.179719 23.469966 13 10.323138 29.958667 26.231274 14 9.323138 29.345676 34.207755 15 1.723138 -0.077538 0.754886 16 1.423138 -1.818609 -0.080979 17 -1.676862 -1.872341 -0.686878 18 0.623138 -0.077633 -0.548955 19 -0.876862 -0.576068 0.716574 20 1.423138 -0.016144 1.261078 21 0.923138 -0.223313 0.041619 22 -1.276862 -0.299937 1.038679 23 0.323138 -1.327742 0.057038 24 -0.376862 -1.626860 0.034051 25 -0.676862 -1.550331 -2.266849 26 -0.776862 0.290637 1.184359 27 1.623138 0.750760 0.417361 28 0.123138 -0.016334 -1.346603 29 -0.476862 -1.220468 -1.338846 30 -0.476862 1.387213 -1.339036 31 1.423138 -1.059368 -0.824991 32 -1.176862 -1.833934 0.118433 33 -0.176862 -0.691099 0.908323 34 -1.276862 -1.251213 -2.243862 35 1.423138 0.858128 0.325317 36 -0.576862 0.574335 0.102918 37 -1.576862 0.413330 0.892903 38 -0.176862 -1.841691 -1.085702 39 0.423138 -0.752683 -2.205550 40 -1.176862 -0.905930 -0.211430 41 1.723138 0.819721 -0.479993 42 -1.376862 0.666284 -1.093554 43 -1.576862 -1.304659 1.061761 44 0.123138 1.203126 -1.553772 45 0.223138 -1.358581 -2.151818 46 0.123138 1.003714 -1.569097 47 1.323138 -1.159169 -2.136494 48 1.423138 0.919427 -0.472331 49 1.423138 -0.246300 0.340737 50 0.423138 0.727773 0.716479 51 0.623138 -1.665267 -0.771259 52 1.623138 -0.798657 -1.607314 53 -1.376862 1.310494 -1.645816 54 -0.576862 -1.879908 0.716669 55 -1.176862 -1.235698 0.164407 56 0.123138 -1.296997 0.962055 57 0.123138 -1.304849 -1.545920 58 0.723138 -0.714086 1.207441 59 -0.076862 0.881115 0.026199 60 -1.376862 1.226208 -0.549050 61 -1.276862 0.781504 1.322377 62 -0.776862 -1.657699 -2.174806 63 -0.576862 -1.956627 0.409888 64 1.123138 0.712448 0.915891 65 0.323138 0.689271 -1.392672 66 -1.476862 -1.289430 -0.441492 67 -0.076862 -0.905930 -0.211430 68 -1.576862 -0.852389 -2.213213 69 0.323138 -1.696011 -1.676276 70 -0.676862 0.773747 0.118243 71 0.523138 0.152524 0.371386 72 -1.076862 -0.606812 -0.188443 73 -1.376862 0.114117 -0.433924 74 -1.676862 -0.522431 0.018632 75 -1.376862 0.612552 -1.699453 ------------- Call: PcaGrid(x = x) Standard deviations: [1] 1.9274 1.7853 1.6714 ---------------------------------------------------------- milk 86 8 8 9.206694 2.910585 Scores: PC1 PC2 PC3 PC4 PC5 PC6 [1,] 6.090978 0.590424 1.1644466 -0.3835606 1.0342867 -0.4752288 [2,] 6.903009 -0.575027 0.8613622 -1.1221795 0.7221616 -1.3097951 [3,] 0.622903 -1.594239 1.2122863 -0.0555128 0.3252629 -0.2799581 [4,] 5.282665 -1.815742 2.2543268 0.9824543 -0.5345577 -0.7331037 [5,] -1.039753 0.663906 0.3353811 0.3070599 -0.3224317 -0.4056666 [6,] 2.247786 0.218255 -0.3382923 0.1270005 -0.0271307 -0.2035021 [7,] 2.784293 -0.291678 -0.4897587 0.0198481 0.0752345 -0.5986846 [8,] 2.942266 0.315608 0.1603961 0.3568462 -0.0647311 -0.5316127 [9,] -1.420086 -1.751212 1.7027572 0.0708340 -0.9226517 0.0738411 [10,] -2.921113 -0.727554 0.0113966 -0.3915037 -0.0772913 0.6062573 [11,] -9.568075 0.792291 1.0217507 0.2554182 -0.6254883 0.8899897 [12,] -12.885166 3.423607 -1.2579351 -0.4300397 -0.4094558 1.1727128 [13,] -10.038470 1.274931 -2.6913262 -1.6219658 -0.3284974 1.1228303 [14,] -12.044003 2.096254 -1.2859668 -0.9602250 -0.7937418 0.8264019 [15,] -10.798341 1.159257 1.4870766 0.3248231 -1.0787537 0.8723637 [16,] -2.841629 0.500846 0.4771762 0.5975365 0.3197882 0.5804087 [17,] -1.150691 -1.978038 2.3229313 0.5275273 -0.5339514 0.5421631 [18,] -1.992369 1.131288 -0.8385615 0.1156462 0.2253010 -0.3393814 [19,] -1.999699 -0.252876 1.2229972 0.5081648 0.0082612 0.3373454 [20,] 0.091385 -1.439422 1.1836134 0.6297789 0.0961407 -0.2126653 [21,] -2.571346 2.280701 -1.2845660 0.1463583 0.0949331 0.0902039 [22,] -0.990078 1.087033 -0.1638640 -0.0351472 0.0743205 -0.0040605 [23,] -0.010631 1.704171 0.0038808 0.5765418 0.6086460 0.0329995 [24,] -0.440350 1.500798 0.2769870 0.5556999 0.4751445 0.6516120 [25,] -3.578249 2.672783 -0.3534268 0.7398104 0.1108289 0.2704730 [26,] -0.854914 1.626684 0.2301131 0.5530224 0.0662862 -0.0999969 [27,] -3.175381 0.762609 0.5101987 0.0849002 -0.2137237 0.2729808 [28,] 2.599844 3.370137 -0.5174736 0.7409946 0.6853156 0.2430943 [29,] 4.395534 0.823611 0.1610152 0.8184845 0.7665555 0.0779724 [30,] 0.843794 1.438263 -0.2366601 0.4600650 0.3424806 -0.1768083 [31,] 1.890815 1.266935 -1.8218143 -0.3909337 0.8390127 0.1026821 [32,] 1.300145 -0.085976 -0.8965312 -0.8855787 0.4156780 0.1478055 [33,] 1.923087 0.137638 0.3487435 0.2958367 0.4245932 0.1566678 [34,] 0.615762 -0.390711 0.8107376 0.0295536 -0.1169590 0.2940241 [35,] -0.372946 2.037079 -0.7663299 0.1907237 0.6959350 0.5366205 [36,] 4.068134 1.129044 0.5492962 0.7640964 0.4799859 -0.4080205 [37,] 0.937617 2.048258 -1.2326566 -0.0942856 0.7885267 -0.1004018 [38,] 2.141223 1.877022 -0.5178216 0.3750868 0.4767003 0.1240656 [39,] -1.403505 1.327163 0.3165610 0.3989824 0.3505825 0.5915956 [40,] 3.337528 -1.689495 1.4737175 0.2584843 0.4308444 -0.0810597 [41,] 3.938506 1.384908 0.8103687 -0.5875595 1.1616535 -0.6492603 [42,] 6.327471 -1.061362 1.9861187 1.1016484 0.3512405 -0.1540592 [43,] 3.120160 -0.064108 -0.8370717 -0.2229341 0.5623447 -0.7152184 [44,] 5.290520 -0.669008 0.8597130 0.5518503 0.2470856 0.6454703 [45,] 0.058291 0.356399 -0.1896007 0.2427518 0.3705541 0.3975085 [46,] 0.150881 1.942057 -0.1140726 0.5656469 0.5227623 0.2151825 [47,] 2.870881 -1.446283 -2.8450062 -1.7292144 -0.0888429 -0.1347003 [48,] 0.335593 0.500884 -1.3154520 -0.3874864 0.3449038 0.5387692 [49,] -2.179494 -0.021237 -1.7792344 -0.8445930 0.4435338 0.6547961 [50,] 2.968304 -2.588546 1.8552104 0.4590101 -0.1755089 -0.0550378 [51,] -1.399208 -0.820296 -1.3660014 -0.8890243 -0.2344105 0.1236943 [52,] -5.112989 0.318983 -1.3852993 -0.8461529 -0.3467685 0.7349666 [53,] -0.773103 -0.267333 -0.8154896 -0.3783062 0.0113880 -0.3304648 [54,] -0.244565 -0.066211 -0.2541557 0.0043037 0.0390890 0.0074067 [55,] 0.894921 0.516411 -0.4443369 0.0708354 -0.0637890 -0.2799646 [56,] -0.038706 -0.588256 0.3166588 -0.0196663 -0.1793472 -0.1179341 [57,] -1.377469 0.428939 0.7502430 0.1458375 -0.3818977 -0.0380258 [58,] 0.042787 1.488605 0.0252606 0.6377516 -0.1524172 -0.1898723 [59,] -1.734357 -0.966494 -0.1026850 -0.5656888 -0.4831402 0.0308069 [60,] -1.501991 -0.544918 -0.0837127 -0.2362486 -0.5382026 -0.1351338 [61,] -0.175102 -1.339436 0.8403933 -0.0907428 -0.4846145 -0.2795153 [62,] 2.100915 -2.004702 1.3031556 -0.0041957 -0.2067776 -0.0793613 [63,] 2.735432 -0.102018 0.3215454 0.5331904 -0.1499209 -0.3536272 [64,] 2.735432 -0.102018 0.3215454 0.5331904 -0.1499209 -0.3536272 [65,] -0.665219 -2.325594 1.6287363 0.0607163 -0.6996720 0.1353325 [66,] -2.439244 -0.737375 0.0187770 -0.4561269 -0.5425315 -0.0208332 [67,] 0.121564 -1.214385 0.4877707 0.1809998 -0.1943262 0.0662506 [68,] -0.804267 -2.238327 -0.8547917 -1.3449926 -0.3577254 -0.0293779 [69,] -0.761319 -0.676391 -0.0245494 0.2262894 -0.3396872 -0.1166505 [70,] 3.385399 4.360467 -0.7946150 -0.0417895 0.4474362 -4.6626174 [71,] -2.364955 -1.257673 0.5226907 -0.2346145 -0.7838777 0.1815821 [72,] 2.334511 -0.794530 0.0175620 0.1848925 -0.3437761 -0.4522442 [73,] -2.023440 -2.449907 0.2525041 -0.6657474 -0.5509480 0.2118442 [74,] -11.180192 2.456516 1.1036540 0.8711496 -0.3833194 1.3548314 [75,] 0.058297 -2.094811 0.3075211 -0.8052760 -0.9527729 0.5850255 [76,] -1.355742 -0.464355 -1.0183333 -0.8525619 -0.1577144 -0.0767323 [77,] -8.296881 0.945092 0.8088967 -0.0071463 -0.4527530 1.0614233 [78,] 1.251696 -1.460466 0.2511701 -0.2717606 -0.3158308 -0.2964813 [79,] -0.192380 -0.662365 -0.3671703 -0.6722658 -0.1243452 -0.2388225 [80,] -3.355201 1.915096 -0.1086672 0.3560062 0.0956865 0.6974817 [81,] 1.245305 0.736787 -0.1662155 0.1309822 -0.0122872 -0.2182528 [82,] 2.679561 -1.666401 1.1576691 0.3960280 -0.0059146 0.0584136 [83,] 2.596651 -0.556654 -0.0807307 -0.4468501 0.0964927 -0.3922894 [84,] 0.959377 -0.272038 -1.5879803 -1.1153057 0.3412508 -0.1281556 [85,] 0.602737 -1.384591 2.8844745 0.9479144 -0.7946454 -0.2014038 [86,] 0.698125 0.335743 -1.5248055 -0.4443037 0.0768256 -0.1999790 PC7 PC8 [1,] 0.9281777 -0.05158594 [2,] 0.8397946 -0.04276628 [3,] -0.5189230 0.04913688 [4,] -0.0178377 0.01578074 [5,] -0.0129237 0.01056305 [6,] -0.0764270 0.01469518 [7,] -0.3059779 0.04237267 [8,] -0.0684673 0.02289928 [9,] -0.2549733 -0.00832119 [10,] -0.0578118 -0.01894694 [11,] 0.0415545 -0.03474479 [12,] 0.0869267 -0.04485633 [13,] -0.2843977 -0.03100709 [14,] -0.3375083 -0.02155574 [15,] -0.1718828 -0.02996980 [16,] -0.4176728 0.03232381 [17,] -0.5923252 0.01765700 [18,] -0.3190679 0.04476532 [19,] -0.0279426 -0.00236626 [20,] 0.1299811 0.00586022 [21,] 0.0474059 0.00563264 [22,] -0.1240299 0.01123557 [23,] 0.2232631 0.00551065 [24,] 0.0122404 0.00060079 [25,] 0.2627442 -0.00824800 [26,] 0.2257329 -0.00440907 [27,] -0.8496967 0.05266701 [28,] 0.3473502 -0.00500580 [29,] 0.4172329 -0.00542705 [30,] 0.2773880 -0.00014648 [31,] -0.1224270 0.02372808 [32,] -0.2224748 0.00757892 [33,] -0.0633903 0.01236118 [34,] -0.2616599 0.00561781 [35,] -0.1671986 0.01988458 [36,] 0.4502086 -0.00418541 [37,] -0.0773232 0.02768282 [38,] 0.0464683 0.01134849 [39,] -0.0927182 0.00555823 [40,] -0.2162796 0.02467605 [41,] 0.9440753 -0.04806541 [42,] -0.0078920 0.02022925 [43,] 0.1152244 0.02074199 [44,] 1.0406693 -0.08815111 [45,] -0.1376804 0.01424369 [46,] 0.1673461 0.00442877 [47,] -0.4125225 0.01038694 [48,] 0.1556289 -0.02103354 [49,] 0.0434415 -0.01782739 [50,] 0.2518610 -0.02154540 [51,] -0.1186185 -0.00881133 [52,] 0.1507435 -0.04523343 [53,] 0.2161208 -0.00967982 [54,] 0.1374909 -0.00783970 [55,] 0.2417108 -0.00895268 [56,] 0.1253846 -0.01188643 [57,] 0.1390898 -0.01831232 [58,] 0.2219634 -0.00364174 [59,] -0.2045636 -0.00589047 [60,] -0.3679942 0.01673699 [61,] -0.0705611 -0.00273407 [62,] 0.1447701 -0.02026768 [63,] -0.1854788 0.02686899 [64,] -0.1854788 0.02686899 [65,] -0.2626650 -0.00376657 [66,] -0.3044266 0.00484197 [67,] -0.1358811 0.00605789 [68,] -0.0551482 -0.02379410 [69,] -0.0914891 0.00812122 [70,] 10.2524854 -0.64367029 [71,] -0.1326972 -0.01666774 [72,] 0.0051905 0.00656777 [73,] -0.8236843 0.03367265 [74,] 0.2140104 -0.04092219 [75,] -0.5684260 -0.00987116 [76,] -0.1225779 -0.00204629 [77,] -0.4235612 -0.00450631 [78,] -0.1935155 0.00973901 [79,] -0.1615883 0.00518643 [80,] 0.2915052 -0.02960159 [81,] 0.0908823 0.00038216 [82,] -0.3392789 0.02605374 [83,] 0.1112141 -0.00629308 [84,] 0.0510771 -0.00845572 [85,] 0.0748700 -0.01174487 [86,] 0.2488127 -0.01446339 ------------- Call: PcaGrid(x = x) Standard deviations: [1] 3.034253 1.706044 1.167717 0.670864 0.536071 0.396285 0.266625 0.020768 ---------------------------------------------------------- bushfire 38 5 5 38232.614428 1580.825276 Scores: PC1 PC2 PC3 PC4 PC5 [1,] -67.120 -23.70481 -1.06551 1.129721 1.311630 [2,] -69.058 -21.42113 -1.54798 0.983735 0.430774 [3,] -61.939 -17.23665 -3.81386 -0.635074 -0.600149 [4,] -44.952 -16.53458 -5.16114 0.411753 -0.390518 [5,] -12.644 -21.62271 -7.14146 3.519877 -1.211923 [6,] 12.820 -27.86930 -7.66114 7.230422 0.040330 [7,] -194.634 -100.67730 27.43084 -0.026242 -0.134248 [8,] -229.349 -129.75912 -19.46346 25.591651 -18.592601 [9,] -230.306 -131.28743 -22.22175 27.251157 -19.214683 [10,] -231.118 -115.10815 3.70208 16.303210 -10.573515 [11,] -234.540 -100.24984 13.67112 10.325539 -8.727961 [12,] -246.507 -51.03515 27.61698 -5.352226 0.514087 [13,] -195.712 -5.81324 20.04485 -9.226807 1.721886 [14,] 49.881 16.90911 -9.97400 -1.900739 2.190429 [15,] 179.545 23.96999 -18.71166 -2.987136 1.332713 [16,] 135.356 15.81282 -9.24353 -4.703584 0.971669 [17,] 132.350 16.65014 -7.01838 -2.428578 1.346198 [18,] 121.499 9.75832 -4.45699 -1.587450 0.131923 [19,] 125.222 9.17601 -5.88919 0.582516 -0.061642 [20,] 135.112 14.63812 -5.90351 0.411704 1.460488 [21,] 116.581 14.47390 -3.04021 -1.842579 2.005998 [22,] 108.223 14.62103 -4.47428 -1.196993 3.288463 [23,] -22.095 3.26439 6.58391 -6.164581 2.125258 [24,] -77.831 3.46616 6.59280 -6.373595 1.545789 [25,] -13.092 3.41344 -0.99296 -5.076733 0.299636 [26,] -19.206 -0.17007 -1.84209 -4.858675 0.347945 [27,] -35.022 6.54155 -3.12767 -3.556587 -0.327873 [28,] -12.651 20.14894 -4.61607 -2.025539 -1.214190 [29,] -4.404 36.39823 -3.81590 -0.633155 -0.602027 [30,] -60.018 30.40980 9.44610 -1.763156 -0.765133 [31,] 67.689 47.40087 12.70229 9.791794 -0.671751 [32,] 324.134 63.46147 31.52512 30.099817 2.406344 [33,] 364.639 38.84260 51.20467 30.648590 3.218678 [34,] 361.089 37.09494 52.00522 29.394356 2.861158 [35,] 366.403 38.88889 52.31879 29.878844 4.650618 [36,] 363.821 37.40859 53.10394 28.286557 2.922632 [37,] 361.761 37.21276 55.73012 27.648760 4.477279 [38,] 363.106 37.78395 56.56345 27.460078 4.845396 ------------- Call: PcaGrid(x = x) Standard deviations: [1] 195.5316 39.7596 11.7329 7.3743 1.7656 ---------------------------------------------------------- ========================================================== > > ## IGNORE_RDIFF_BEGIN > dodata(method="proj") Call: dodata(method = "proj") Data Set n p k e1 e2 ========================================================== heart 12 2 2 512.772467 29.052346 Scores: PC1 PC2 [1,] 6.7568 3.2826 [2,] 63.0869 14.1293 [3,] 1.3852 -1.1318 [4,] -3.6709 1.8153 [5,] 19.0457 3.8035 [6,] -16.6413 3.1452 [7,] 5.3163 3.7464 [8,] -27.8536 -11.0863 [9,] -1.1638 -1.1788 [10,] -26.6915 -10.2803 [11,] -13.6842 -2.9790 [12,] 47.8395 11.2980 ------------- Call: PcaProj(x = x) Standard deviations: [1] 22.644 5.390 ---------------------------------------------------------- starsCYG 47 2 2 0.470874 0.024681 Scores: PC1 PC2 [1,] 0.181333 -3.1013e-02 [2,] 0.696091 1.4569e-01 [3,] -0.121421 -1.3319e-01 [4,] 0.696091 1.4569e-01 [5,] 0.139530 -9.9951e-02 [6,] 0.413590 5.2989e-02 [7,] -0.412224 -5.4579e-01 [8,] 0.226508 1.6788e-01 [9,] 0.518364 -1.4980e-01 [10,] 0.071370 -2.8159e-02 [11,] 0.658332 -9.2369e-01 [12,] 0.402815 2.3259e-02 [13,] 0.374123 7.4020e-02 [14,] -1.007611 -3.6028e-01 [15,] -0.790417 -8.5818e-02 [16,] -0.467151 3.5835e-02 [17,] -1.111866 -1.3750e-01 [18,] -0.867017 4.6214e-02 [19,] -0.871946 -1.4372e-01 [20,] 0.818278 -9.2784e-01 [21,] -0.670457 -8.8932e-02 [22,] -0.830403 -8.4781e-02 [23,] -0.627097 3.9987e-02 [24,] -0.195426 9.8806e-02 [25,] -0.028337 -1.5568e-02 [26,] -0.387178 3.3760e-02 [27,] -0.390551 -9.6197e-02 [28,] -0.148297 -1.2454e-02 [29,] -0.662277 -1.5917e-01 [30,] 0.977965 -9.4199e-01 [31,] -0.628135 -7.2164e-16 [32,] 0.056306 1.6230e-01 [33,] 0.173412 4.9220e-02 [34,] 1.218143 -9.3822e-01 [35,] -0.712000 -1.4787e-01 [36,] 0.577688 2.0878e-01 [37,] 0.055528 1.3231e-01 [38,] 0.173412 4.9220e-02 [39,] 0.135501 1.3023e-01 [40,] 0.522775 2.0145e-02 [41,] -0.428203 -5.1892e-03 [42,] 0.013465 5.3371e-02 [43,] 0.294668 9.6089e-02 [44,] 0.293371 4.6106e-02 [45,] 0.495898 1.4088e-01 [46,] -0.066508 5.5447e-02 [47,] -0.547124 3.7911e-02 ------------- Call: PcaProj(x = x) Standard deviations: [1] 0.6862 0.1571 ---------------------------------------------------------- phosphor 18 2 2 388.639033 51.954664 Scores: PC1 PC2 1 5.8164 -15.1691 2 -21.1936 -2.1132 3 -23.6199 2.0585 4 -11.2029 -6.7203 5 -18.4220 1.3231 6 17.1862 -19.2211 7 1.6302 -3.1493 8 -9.7695 3.1385 9 -10.9174 5.3594 10 15.6275 -6.3610 11 -4.0194 1.2476 12 9.3931 8.3149 13 12.9944 6.5741 14 6.9396 7.8348 15 18.3964 3.9629 16 -8.8365 -6.4202 17 21.8073 6.4237 18 16.8541 12.2611 ------------- Call: PcaProj(x = x) Standard deviations: [1] 19.714 7.208 ---------------------------------------------------------- stackloss 21 3 3 97.347030 38.052774 Scores: PC1 PC2 PC3 [1,] 19.08066 -9.06092 -2.64544 [2,] 18.55152 -9.90152 -2.76118 [3,] 15.04269 -5.37517 -2.31373 [4,] 2.79667 -1.78925 1.70823 [5,] 2.21768 -1.17513 -0.10495 [6,] 2.50717 -1.48219 0.80164 [7,] 5.97151 3.25438 2.40268 [8,] 5.97151 3.25438 2.40268 [9,] -0.68332 0.30263 2.42495 [10,] -5.83478 -4.04630 -2.91819 [11,] -1.07253 3.51914 -1.87651 [12,] -1.89116 2.98559 -2.89885 [13,] -4.77650 -2.36509 -2.68671 [14,] 1.33353 6.57450 -0.50696 [15,] -7.45351 7.08878 1.37012 [16,] -9.04093 4.56697 1.02289 [17,] -16.15938 -7.50855 0.30909 [18,] -12.45541 -1.62432 1.11929 [19,] -11.63677 -1.09077 2.14162 [20,] -5.79275 -2.08680 -0.06187 [21,] 10.13623 -0.76824 -4.70180 ------------- Call: PcaProj(x = x) Standard deviations: [1] 9.8665 6.1687 3.2669 ---------------------------------------------------------- salinity 28 3 3 12.120566 8.431549 Scores: PC1 PC2 PC3 1 -2.52547 1.45945 -1.1943e-01 2 -3.32298 2.15704 8.7594e-01 3 -6.64947 -3.26398 1.0135e+00 4 -6.64427 -1.81382 -1.6392e-01 5 -6.16898 -2.52222 5.1373e+00 6 -5.87594 0.26440 -2.4425e-15 7 -4.23084 1.46250 -2.8008e-01 8 -2.21502 2.76478 -8.3789e-01 9 -0.40186 -2.17785 -1.6702e+00 10 2.27089 -1.84923 7.3391e-01 11 1.37935 -1.29276 2.1418e+00 12 -0.22635 0.60372 -5.0980e-01 13 0.27224 1.73920 -7.0505e-01 14 2.36592 2.40462 6.4320e-01 15 2.37640 -2.83174 5.2669e-01 16 -2.49175 -4.77664 9.0404e+00 17 -0.61250 -1.11672 1.4398e+00 18 -2.91853 0.63310 -8.3666e-01 19 -0.39732 -2.02029 -2.1396e+00 20 1.47554 -1.23407 -1.1712e+00 21 1.70104 1.92401 -1.1292e+00 22 3.14437 2.81928 -5.2415e-01 23 3.62890 -3.51450 2.6740e+00 24 2.04538 -2.63992 3.0718e+00 25 0.77088 -0.54783 -1.3370e-01 26 1.57254 0.89176 -1.2089e+00 27 2.63610 1.97075 -1.1855e+00 28 3.55112 2.67606 -6.0915e-02 ------------- Call: PcaProj(x = x) Standard deviations: [1] 3.4815 2.9037 1.3810 ---------------------------------------------------------- hbk 75 3 3 3.801978 3.574192 Scores: PC1 PC2 PC3 1 28.747049 15.134042 2.3959241 2 29.021724 16.318941 2.6207988 3 31.271908 15.869319 3.4420860 4 31.586189 17.508798 3.6246706 5 31.299168 16.838093 3.2402573 6 30.037754 15.591930 2.1421166 7 29.888160 16.139376 1.9750096 8 28.994463 15.350167 2.8226275 9 30.758047 16.820526 3.7269602 10 29.759314 16.079531 4.0486097 11 35.301371 19.637962 3.7433562 12 37.193371 18.709303 4.9915250 13 35.634808 20.497713 1.4740727 14 36.816439 27.523024 -2.3006796 15 1.237203 -0.331072 -1.3801401 16 -0.451166 -1.118847 -1.9707479 17 -2.604733 0.067276 0.0130015 18 0.179177 -0.804398 -0.1285240 19 -0.765512 0.982349 -0.2513990 20 1.236727 0.259123 -1.4210070 21 0.428326 -0.503724 -0.6830690 22 -0.724774 1.507943 -0.0022175 23 -0.745349 -0.330094 -1.0982084 24 -1.407850 -0.011831 -0.8987075 25 -2.190427 -1.732051 0.4497793 26 0.058631 1.444044 0.0446166 27 1.680557 -0.429402 -0.6031146 28 -0.315122 -1.179169 0.5822607 29 -1.563355 -1.026914 0.1040012 30 0.329957 -0.633156 1.8533795 31 -0.110108 -1.617131 -1.0958807 32 -2.035875 0.463421 -0.6346632 33 -0.356033 0.740564 -0.8116369 34 -2.342887 -1.340168 0.9724491 35 1.607131 -0.379763 -0.3747630 36 0.084455 0.486671 0.6551654 37 -0.436144 1.659467 0.7145344 38 -1.754819 -1.076076 -0.6037590 39 -0.904375 -2.161949 0.3436723 40 -1.455274 0.331839 0.1499308 41 1.539788 -1.212921 -0.1715110 42 -0.688338 -0.048173 1.7491184 43 -1.635822 1.539067 -0.5208916 44 0.511762 -1.165641 1.5020865 45 -1.454500 -2.099954 0.0219268 46 0.362645 -1.208389 1.3758464 47 -0.615800 -2.658098 -0.4629006 48 1.426278 -1.027667 0.0582638 49 0.809592 -0.533893 -1.1232120 50 0.996105 0.469082 -0.0988805 51 -1.036368 -1.227376 -1.0843166 52 -0.016464 -2.331540 -0.6477169 53 -0.376625 -0.405855 2.4526088 54 -1.524100 0.621590 -1.2927429 55 -1.588523 0.591668 -0.2559428 56 -0.592710 0.529426 -1.4111404 57 -1.306991 -1.538024 -0.1841717 58 0.275991 0.491888 -1.4739863 59 0.598971 0.196673 0.6208960 60 -0.127953 0.485014 1.8571970 61 0.140584 1.905037 0.5838465 62 -2.305069 -1.617811 0.3880825 63 -1.666479 0.357251 -1.1934779 64 1.480143 0.248671 -0.5959984 65 0.309561 -1.219790 0.9671263 66 -1.986789 0.248245 0.1723620 67 -0.765691 -0.269054 -0.4611368 68 -2.232721 -1.090790 1.3915841 69 -1.502453 -1.813763 -0.4936268 70 0.170883 0.584046 0.8369571 71 0.543623 0.043244 -0.3707674 72 -1.168908 0.341335 0.2837393 73 -0.902885 0.411872 1.0546196 74 -1.425273 0.852445 0.5719123 75 -0.898536 -0.555475 2.0107684 ------------- Call: PcaProj(x = x) Standard deviations: [1] 1.9499 1.8906 1.2797 ---------------------------------------------------------- milk 86 8 8 8.369408 3.530461 Scores: PC1 PC2 PC3 PC4 PC5 PC6 [1,] 6.337004 -0.245000 0.7704092 -4.9848e-01 -1.6599e-01 1.1763e-01 [2,] 7.021899 1.030349 0.2832977 -1.2673e+00 -8.7296e-01 2.0547e-01 [3,] 0.600831 1.686247 0.9682032 -3.2663e-02 7.4112e-02 4.7412e-01 [4,] 5.206465 2.665956 1.5942253 9.8285e-01 -5.4159e-01 -2.0155e-01 [5,] -0.955757 -0.579889 0.3206393 5.1174e-01 -6.1684e-01 -3.8990e-02 [6,] 2.198695 0.073770 -0.5712493 1.9440e-01 -1.0237e-01 4.1825e-02 [7,] 2.695361 0.644049 -0.8645373 8.1894e-02 -2.6953e-01 1.6884e-01 [8,] 2.945361 0.137227 -0.2071463 5.0841e-01 -4.2075e-01 5.8589e-02 [9,] -1.539013 1.879894 1.6952390 1.6792e-01 -2.8195e-01 5.0563e-02 [10,] -2.977110 0.319666 0.3515636 -5.2496e-01 4.6898e-01 8.5978e-03 [11,] -9.375355 -1.638105 1.9026171 4.1237e-01 1.8768e-02 -1.8546e-01 [12,] -12.602600 -4.715888 0.0273004 -4.7798e-02 -1.2246e-02 9.6858e-03 [13,] -10.114331 -2.487462 -1.6331544 -1.5139e+00 4.1903e-01 2.8313e-01 [14,] -11.949336 -3.190157 -0.2146943 -5.0060e-01 -2.9537e-01 3.2160e-01 [15,] -10.595396 -1.905517 2.3716887 7.6651e-01 -3.3531e-01 1.9933e-02 [16,] -2.735720 -0.748282 0.6750464 7.2415e-01 5.5304e-01 2.2283e-01 [17,] -1.248116 2.131195 2.2596886 6.4958e-01 3.5634e-01 2.9021e-01 [18,] -1.904210 -1.285804 -0.7746460 3.0198e-01 -2.7407e-01 1.7500e-01 [19,] -1.902313 0.095461 1.3824711 5.0369e-01 2.2193e-01 -5.5628e-02 [20,] 0.123220 1.399444 1.1517634 3.2546e-01 7.8261e-02 -4.0733e-01 [21,] -2.436023 -2.524827 -1.0197416 3.4819e-01 -1.4914e-01 -4.3669e-02 [22,] -0.904931 -1.114894 -0.1235807 2.0285e-01 -1.6200e-01 2.5681e-01 [23,] 0.220231 -1.767325 0.0482262 6.4418e-01 9.8618e-02 -5.7683e-02 [24,] -0.274403 -1.561826 0.3820323 7.0016e-01 5.5220e-01 1.4376e-01 [25,] -3.306400 -2.980247 0.0252488 9.4001e-01 -1.0841e-01 -2.5303e-01 [26,] -0.658015 -1.625199 0.3021005 7.2702e-01 -3.0299e-01 -1.2339e-01 [27,] -3.137066 -0.774218 0.5577497 6.4188e-01 -8.0125e-02 7.7819e-01 [28,] 2.867950 -3.099435 -0.6435415 1.0366e+00 1.5908e-01 7.6524e-02 [29,] 4.523097 -0.527338 -0.1032516 6.4537e-01 4.7286e-01 -2.7166e-01 [30,] 1.002381 -1.376693 -0.2735956 5.0522e-01 -1.2750e-01 -1.6178e-01 [31,] 1.894615 -1.296202 -1.9117282 -3.8032e-01 4.6473e-01 3.1085e-01 [32,] 1.210291 0.067230 -0.9832930 -8.5379e-01 3.2823e-01 4.9994e-01 [33,] 1.964118 0.022175 0.1818518 3.0464e-01 3.5596e-01 1.4985e-01 [34,] 0.576738 0.567851 0.6982155 1.8415e-01 1.8695e-01 3.2706e-01 [35,] -0.231793 -2.143909 -0.6825523 4.0681e-01 5.4492e-01 3.6259e-01 [36,] 4.250883 -0.719760 0.2157706 7.7167e-01 -1.9064e-01 -2.0611e-01 [37,] 1.077364 -2.054664 -1.3064867 1.0043e-01 8.6092e-02 3.5416e-01 [38,] 2.259260 -1.653588 -0.6730692 5.7300e-01 1.6930e-01 1.6986e-01 [39,] -1.251576 -1.451593 0.4671580 5.8957e-01 4.2672e-01 2.2495e-01 [40,] 3.304245 1.998193 1.0941231 1.3734e-01 3.7012e-01 2.4142e-01 [41,] 4.286315 -1.280951 0.5856744 -6.0980e-01 -4.3090e-01 1.9801e-01 [42,] 6.343820 1.801880 1.3481119 1.0355e+00 2.9802e-01 -8.4501e-04 [43,] 3.119491 0.214077 -1.1216236 -3.8134e-01 -1.9523e-01 -2.6706e-02 [44,] 5.285254 0.938072 0.7440487 1.1539e-02 8.1629e-01 -7.9286e-01 [45,] 0.082429 -0.416631 -0.1588203 2.3098e-01 5.1867e-01 9.4503e-02 [46,] 0.357862 -1.951997 -0.0731829 7.0393e-01 1.8828e-01 1.5707e-02 [47,] 2.428744 1.522538 -3.0467213 -1.9114e+00 2.4638e-01 3.5871e-01 [48,] 0.282348 -0.697287 -1.1592508 -5.4929e-01 6.2199e-01 -5.4596e-02 [49,] -2.266009 -0.559548 -1.3794914 -1.1300e+00 7.8872e-01 -2.0411e-02 [50,] 2.868649 2.860857 1.6128307 6.7382e-02 2.2344e-01 -4.1484e-01 [51,] -1.596061 0.546812 -1.1779327 -1.0512e+00 1.3522e-01 -9.4865e-03 [52,] -5.186121 -1.000829 -0.7440599 -9.6302e-01 3.0732e-01 -1.7009e-01 [53,] -0.800232 0.049087 -0.6946842 -5.8284e-01 -2.1277e-01 -2.7004e-01 [54,] -0.246388 -0.030606 -0.1814302 -1.1632e-01 5.7767e-02 -1.8637e-01 [55,] 0.914315 -0.428594 -0.4919557 4.5039e-02 -2.7868e-01 -2.2140e-01 [56,] -0.061827 0.583572 0.3263056 -1.1589e-01 -1.2973e-01 -1.6518e-01 [57,] -1.295979 -0.421943 0.8410805 3.0441e-01 -3.9478e-01 -4.5233e-02 [58,] 0.174908 -1.343854 0.0115086 8.0227e-01 -3.9364e-01 -2.2918e-01 [59,] -1.869684 0.840823 0.0109543 -5.5536e-01 -1.4155e-01 1.0613e-01 [60,] -1.614271 0.557309 -0.0690787 -9.1753e-02 -3.0975e-01 1.6192e-01 [61,] -0.258192 1.434984 0.7684636 -1.1998e-01 -3.4662e-01 -4.8808e-02 [62,] 2.000275 2.204730 1.1194067 -2.3783e-01 5.9953e-02 -1.5836e-01 [63,] 2.694063 0.555482 -0.0340910 6.4470e-01 -2.2417e-01 1.9442e-02 [64,] 2.694063 0.555482 -0.0340910 6.4470e-01 -2.2417e-01 1.9442e-02 [65,] -0.822201 2.427550 1.5859438 -2.6715e-16 -1.9429e-15 1.0564e-14 [66,] -2.545586 0.605953 0.1469837 -3.5318e-01 -2.5871e-01 1.6901e-01 [67,] 0.028900 1.253717 0.4474540 5.3595e-02 1.6063e-01 -1.0980e-01 [68,] -1.086135 1.968868 -0.7220293 -1.6576e+00 6.2061e-02 -7.0998e-04 [69,] -0.836638 0.660453 0.0049966 1.3663e-01 -1.0131e-01 -2.4008e-01 [70,] 4.843092 -6.035092 0.8250084 -3.4481e+00 -4.8538e+00 -7.8407e+00 [71,] -2.500038 1.146245 0.6967314 -2.4611e-01 -1.4266e-01 -8.2996e-02 [72,] 2.220676 1.122951 -0.2444075 1.1066e-01 -3.1540e-01 -2.1344e-01 [73,] -2.310518 2.354552 0.2706503 -6.4192e-01 2.0566e-01 4.5520e-01 [74,] -10.802799 -3.462655 2.2031446 1.1326e+00 2.8049e-01 -2.9749e-01 [75,] -0.301038 2.284366 0.2440764 -6.9450e-01 2.6435e-01 4.3129e-01 [76,] -1.477936 0.245154 -0.8869850 -8.9900e-01 -9.8013e-02 1.1983e-01 [77,] -8.169236 -1.599780 1.4987144 3.7767e-01 2.4726e-01 3.8246e-01 [78,] 1.096654 1.646072 0.0591327 -3.3138e-01 -1.7936e-01 6.2716e-02 [79,] -0.289199 0.625796 -0.3974294 -6.6099e-01 -2.0857e-01 2.1190e-01 [80,] -3.160557 -2.282579 0.3255355 4.6181e-01 2.7753e-01 -1.5673e-01 [81,] 1.284356 -0.548854 -0.2907281 2.4017e-01 -2.5254e-01 -1.4289e-03 [82,] 2.562817 2.019485 0.8249162 3.2973e-01 3.3866e-01 1.3889e-01 [83,] 2.538825 0.759863 -0.3142506 -5.1028e-01 -2.0539e-01 8.8979e-02 [84,] 0.841123 0.110035 -1.5793120 -1.2807e+00 1.2332e-01 1.6224e-01 [85,] 0.636271 1.793014 2.6824860 1.0329e+00 -4.8850e-01 -2.3012e-01 [86,] 0.633183 -0.426511 -1.4791366 -6.1314e-01 -7.0534e-02 -2.3778e-01 PC7 PC8 [1,] 1.0196e-01 -1.7180e-03 [2,] 2.6131e-01 -8.5191e-03 [3,] 6.9637e-01 -8.0573e-03 [4,] -1.3548e-01 -1.4969e-03 [5,] 3.1443e-02 -2.7307e-03 [6,] -2.5079e-01 3.6450e-03 [7,] 4.5377e-02 -2.6071e-03 [8,] -1.6060e-01 -2.3761e-04 [9,] -1.5152e-01 -4.3079e-04 [10,] 9.1089e-02 1.9536e-03 [11,] 2.5654e-01 -1.4875e-03 [12,] -2.3798e-03 -1.0954e-04 [13,] -1.3687e-01 2.8402e-03 [14,] -6.5248e-02 -1.5114e-03 [15,] 3.7695e-02 -2.7827e-03 [16,] 3.8131e-01 -3.7990e-03 [17,] 4.5661e-02 -1.4965e-03 [18,] 3.9910e-01 -7.2703e-03 [19,] 2.9353e-01 -3.3342e-03 [20,] 6.0915e-01 -6.0837e-03 [21,] -1.0079e-01 1.0179e-03 [22,] -2.2945e-02 -1.0515e-03 [23,] 2.3631e-01 -2.5558e-03 [24,] -7.7207e-02 3.4800e-03 [25,] 1.4903e-02 -3.2430e-04 [26,] 3.8032e-03 -2.1705e-03 [27,] 3.7208e-02 -3.0631e-03 [28,] -4.8147e-01 6.1089e-03 [29,] -4.0388e-02 2.8549e-03 [30,] 3.4318e-02 -1.0014e-03 [31,] -2.2872e-02 1.8706e-03 [32,] -8.4542e-02 1.3368e-03 [33,] 4.5274e-02 5.3383e-04 [34,] -2.0048e-01 2.4727e-03 [35,] -5.6482e-02 2.9923e-03 [36,] -2.6046e-02 -1.2910e-03 [37,] 9.6038e-02 -1.8897e-03 [38,] -2.9035e-01 4.4317e-03 [39,] -4.6322e-03 2.4336e-03 [40,] 3.8686e-01 -3.9300e-03 [41,] 3.7834e-01 -7.8976e-03 [42,] -8.2037e-04 -4.3106e-05 [43,] 3.3467e-01 -5.2401e-03 [44,] -6.2170e-01 1.2840e-02 [45,] 5.3557e-02 2.9156e-03 [46,] 5.1785e-04 2.0738e-03 [47,] -5.2141e-01 5.7206e-03 [48,] -2.7669e-01 6.7329e-03 [49,] 8.4319e-02 3.8528e-03 [50,] 1.4210e-01 1.6961e-04 [51,] -1.1871e-01 2.6676e-03 [52,] -2.5036e-01 6.4121e-03 [53,] 2.2399e-01 -2.8200e-03 [54,] 5.6532e-02 4.9304e-04 [55,] -1.4343e-01 1.2558e-03 [56,] 4.1682e-02 -9.6490e-04 [57,] -1.3014e-01 -6.2709e-04 [58,] -2.1428e-01 8.2594e-04 [59,] -7.9775e-02 -8.9776e-04 [60,] -8.6835e-02 -1.0498e-03 [61,] 6.2470e-02 -2.7499e-03 [62,] 3.3052e-02 -3.2369e-04 [63,] -1.7137e-01 -3.1087e-04 [64,] -1.7137e-01 -3.1087e-04 [65,] 3.5496e-14 2.5975e-12 [66,] -2.2016e-02 -1.2206e-03 [67,] 8.5160e-02 -1.4837e-04 [68,] -2.2535e-03 1.9054e-04 [69,] 5.9976e-02 -8.6961e-04 [70,] 1.0448e+00 -2.0167e-02 [71,] -1.7609e-01 1.9378e-03 [72,] -1.7047e-01 2.6076e-04 [73,] 1.1885e-01 -8.1624e-04 [74,] 2.0942e-01 3.3164e-03 [75,] -7.7528e-01 9.9316e-03 [76,] -4.6285e-03 2.5153e-04 [77,] 7.0218e-02 1.5708e-03 [78,] -1.4859e-02 -6.7049e-04 [79,] 5.1054e-02 -2.0198e-03 [80,] -1.5770e-01 4.9579e-03 [81,] -1.9411e-01 4.4401e-04 [82,] 6.0634e-02 8.7960e-04 [83,] -4.4635e-02 -1.7048e-03 [84,] -2.3612e-03 -2.2242e-04 [85,] -5.5171e-02 -1.1222e-03 [86,] -1.4972e-01 1.4543e-03 ------------- Call: PcaProj(x = x) Standard deviations: [1] 2.8929930 1.8789522 0.9946460 0.7479403 0.3744197 0.2596328 0.1421387 [8] 0.0025753 ---------------------------------------------------------- bushfire 38 5 5 37473.439646 1742.633018 Scores: PC1 PC2 PC3 PC4 PC5 [1,] -67.2152 -2.3010e+01 4.4179e+00 1.0892e+00 1.7536e+00 [2,] -69.0225 -2.1417e+01 2.5382e+00 1.1092e+00 9.3919e-01 [3,] -61.6651 -1.8580e+01 -6.1022e-01 -8.1124e-01 -1.6462e-01 [4,] -44.5883 -1.8234e+01 -3.9899e-01 -5.2145e-01 2.0050e-01 [5,] -12.2941 -2.2954e+01 3.5970e+00 1.1037e+00 -2.4384e-01 [6,] 13.0282 -2.8133e+01 8.7670e+00 3.4751e+00 1.3728e+00 [7,] -199.0774 -7.7956e+01 5.4935e+01 6.3134e+00 -1.9919e+00 [8,] -228.2849 -1.3258e+02 2.2340e+01 2.1656e+01 -1.2594e+01 [9,] -228.9164 -1.3560e+02 2.0463e+01 2.2625e+01 -1.2743e+01 [10,] -232.4703 -1.0661e+02 3.5597e+01 1.7915e+01 -7.7659e+00 [11,] -236.7410 -8.8072e+01 3.6632e+01 1.5095e+01 -7.4695e+00 [12,] -249.4091 -3.6830e+01 2.4010e+01 4.7317e+00 -1.2986e+00 [13,] -197.0450 4.2633e-14 4.9738e-14 1.1657e-13 -1.1369e-13 [14,] 50.9487 1.1397e+01 -1.1247e+01 -4.8733e+00 2.4511e+00 [15,] 180.7896 1.7571e+01 -8.0454e+00 -1.0582e+01 1.2714e+00 [16,] 135.6178 1.4189e+01 -4.9116e-01 -9.2701e+00 1.4021e-01 [17,] 132.5344 1.5577e+01 2.2990e-01 -6.4963e+00 7.3370e-01 [18,] 121.3422 1.0471e+01 4.5656e+00 -4.9831e+00 -5.2314e-01 [19,] 125.2722 9.0272e+00 3.7365e+00 -3.3313e+00 -2.9097e-01 [20,] 135.2370 1.4091e+01 2.0639e+00 -3.6800e+00 1.1733e+00 [21,] 116.4250 1.5147e+01 2.9085e+00 -4.8084e+00 1.2603e+00 [22,] 108.2925 1.4223e+01 7.7165e-01 -4.5065e+00 2.7943e+00 [23,] -22.8258 6.4234e+00 2.4654e+00 -3.9627e+00 7.9847e-01 [24,] -78.1850 4.6631e+00 -3.6818e+00 -2.7688e+00 5.8508e-01 [25,] -13.0417 2.7521e+00 -3.1955e+00 -4.6824e+00 -3.1085e-01 [26,] -19.1244 -9.5045e-01 -2.6771e+00 -4.7104e+00 -1.6172e-01 [27,] -34.4379 3.2761e+00 -9.2826e+00 -2.9861e+00 -3.3561e-01 [28,] -11.5852 1.4506e+01 -1.5649e+01 -1.6260e+00 -8.5347e-01 [29,] -2.9366 2.8741e+01 -2.2907e+01 3.9749e-01 3.5861e-02 [30,] -59.7518 2.8633e+01 -1.4710e+01 3.5226e+00 -9.9066e-01 [31,] 67.8017 4.7241e+01 -9.1255e+00 1.3201e+01 1.3500e-13 [32,] 321.9941 7.6188e+01 2.2491e+01 3.1537e+01 3.2368e+00 [33,] 359.5155 6.6710e+01 5.6061e+01 3.4541e+01 2.0718e+00 [34,] 355.8007 6.5695e+01 5.7430e+01 3.3578e+01 1.4640e+00 [35,] 361.1076 6.7577e+01 5.7402e+01 3.3832e+01 3.2618e+00 [36,] 358.3592 6.6791e+01 5.8643e+01 3.2720e+01 1.2487e+00 [37,] 355.9974 6.8071e+01 6.0927e+01 3.2560e+01 2.4898e+00 [38,] 357.2530 6.9073e+01 6.1517e+01 3.2523e+01 2.7558e+00 ------------- Call: PcaProj(x = x) Standard deviations: [1] 193.5806 41.7449 16.7665 8.1585 1.6074 ---------------------------------------------------------- ========================================================== > ## IGNORE_RDIFF_END > > ## VT::14.11.2018 - commented out - on some platforms PcaHubert will choose only 1 PC > ## and will show difference > ## test.case.1() > > test.case.2() [1] TRUE [1] TRUE [1] TRUE [1] TRUE [1] TRUE [1] TRUE [1] TRUE [1] TRUE [1] TRUE [1] TRUE > > proc.time() user system elapsed 1.96 0.57 3.40 rrcov/tests/tlda.R0000644000176200001440000000634214443667016013636 0ustar liggesusers## VT::15.09.2013 - this will render the output independent ## from the version of the package suppressPackageStartupMessages(library(rrcov)) library(MASS) ## VT::14.01.2020 ## On some platforms minor differences are shown - use ## IGNORE_RDIFF_BEGIN ## IGNORE_RDIFF_END dodata <- function(method) { options(digits = 5) set.seed(101) # <<-- sub-sampling algorithm now based on R's RNG and seed tmp <- sys.call() cat("\nCall: ", deparse(substitute(tmp)),"\n") cat("===================================================\n") cat("\nData: ", "hemophilia\n") data(hemophilia) show(rlda <- Linda(as.factor(gr)~., data=hemophilia, method=method)) show(predict(rlda)) cat("\nData: ", "anorexia\n") data(anorexia) show(rlda <- Linda(Treat~., data=anorexia, method=method)) show(predict(rlda)) cat("\nData: ", "Pima\n") data(Pima.tr) show(rlda <- Linda(type~., data=Pima.tr, method=method)) show(predict(rlda)) cat("\nData: ", "Forest soils\n") data(soil) soil1983 <- soil[soil$D == 0, -2] # only 1983, remove column D (always 0) ## This will not work within the function, of course ## - comment it out ## IGNORE_RDIFF_BEGIN rlda <- Linda(F~., data=soil1983, method=method) ## show(rlda) ## IGNORE_RDIFF_END show(predict(rlda)) cat("\nData: ", "Raven and Miller diabetes data\n") data(diabetes) show(rlda <- Linda(group~insulin+glucose+sspg, data=diabetes, method=method)) show(predict(rlda)) cat("\nData: ", "iris\n") data(iris) if(method != "mcdA") { show(rlda <- Linda(Species~., data=iris, method=method, l1med=TRUE)) show(predict(rlda)) } cat("\nData: ", "crabs\n") data(crabs) show(rlda <- Linda(sp~., data=crabs, method=method)) show(predict(rlda)) cat("\nData: ", "fish\n") data(fish) fish <- fish[-14,] # remove observation #14 containing missing value # The height and width are calculated as percentages # of the third length variable fish[,5] <- fish[,5]*fish[,4]/100 fish[,6] <- fish[,6]*fish[,4]/100 ## There is one class with only 6 observations (p=6). Normally ## Linda will fail, therefore use l1med=TRUE. ## This works only for methods mcdB and mcdC table(fish$Species) if(method != "mcdA") { ## IGNORE_RDIFF_BEGIN rlda <- Linda(Species~., data=fish, method=method, l1med=TRUE) ## show(rlda) ## IGNORE_RDIFF_END show(predict(rlda)) } cat("\nData: ", "pottery\n") data(pottery) show(rlda <- Linda(origin~., data=pottery, method=method)) show(predict(rlda)) cat("\nData: ", "olitos\n") data(olitos) if(method != "mcdA") { ## IGNORE_RDIFF_BEGIN rlda <- Linda(grp~., data=olitos, method=method, l1med=TRUE) ## show(rlda) ## IGNORE_RDIFF_END show(predict(rlda)) } cat("===================================================\n") } ## -- now do it: dodata(method="mcdA") dodata(method="mcdB") dodata(method="mcdC") dodata(method="mrcd") dodata(method="ogk") #dodata(method="fsa") rrcov/tests/tqda.Rout.save0000644000176200001440000006775214443667016015344 0ustar liggesusers R Under development (unstable) (2023-03-23 r84036 ucrt) -- "Unsuffered Consequences" Copyright (C) 2023 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > ## VT::15.09.2013 - this will render the output independent > ## from the version of the package > suppressPackageStartupMessages(library(rrcov)) > > dodata <- function(method) { + + options(digits = 5) + set.seed(101) # <<-- sub-sampling algorithm now based on R's RNG and seed + + tmp <- sys.call() + cat("\nCall: ", deparse(substitute(tmp)),"\n") + cat("===================================================\n") + + data(hemophilia); show(QdaCov(as.factor(gr)~., data=hemophilia, method=method)) + data(anorexia, package="MASS"); show(QdaCov(Treat~., data=anorexia, method=method)) + data(Pima.tr, package="MASS"); show(QdaCov(type~., data=Pima.tr, method=method)) + data(iris); # show(QdaCov(Species~., data=iris, method=method)) + data(crabs, package="MASS"); # show(QdaCov(sp~., data=crabs, method=method)) + + show(QdaClassic(as.factor(gr)~., data=hemophilia)) + show(QdaClassic(Treat~., data=anorexia)) + show(QdaClassic(type~., data=Pima.tr)) + show(QdaClassic(Species~., data=iris)) + ## show(QdaClassic(sp~., data=crabs)) + cat("===================================================\n") + } > > > ## -- now do it: > dodata(method="mcd") Call: dodata(method = "mcd") =================================================== Call: QdaCov(as.factor(gr) ~ ., data = hemophilia, method = method) Prior Probabilities of Groups: carrier normal 0.6 0.4 Group means: AHFactivity AHFantigen carrier -0.30795 -0.0059911 normal -0.12920 -0.0603000 Group: carrier AHFactivity AHFantigen AHFactivity 0.023784 0.015376 AHFantigen 0.015376 0.024035 Group: normal AHFactivity AHFantigen AHFactivity 0.0057546 0.0042606 AHFantigen 0.0042606 0.0084914 Call: QdaCov(Treat ~ ., data = anorexia, method = method) Prior Probabilities of Groups: CBT Cont FT 0.40278 0.36111 0.23611 Group means: Prewt Postwt CBT 82.633 82.950 Cont 81.558 81.108 FT 84.331 94.762 Group: CBT Prewt Postwt Prewt 9.8671 8.6611 Postwt 8.6611 11.8966 Group: Cont Prewt Postwt Prewt 32.5705 -4.3705 Postwt -4.3705 22.5079 Group: FT Prewt Postwt Prewt 33.056 10.814 Postwt 10.814 14.265 Call: QdaCov(type ~ ., data = Pima.tr, method = method) Prior Probabilities of Groups: No Yes 0.66 0.34 Group means: npreg glu bp skin bmi ped age No 1.8602 107.69 67.344 25.29 30.642 0.40777 24.667 Yes 5.3167 145.85 74.283 31.80 34.095 0.49533 37.883 Group: No npreg glu bp skin bmi ped age npreg 2.221983 -0.18658 1.86507 -0.44427 0.1725348 -0.0683616 2.63439 glu -0.186582 471.88789 45.28021 8.95404 30.6551510 -0.6359899 3.50218 bp 1.865066 45.28021 110.09787 26.11192 14.4739180 -0.2104074 13.23392 skin -0.444272 8.95404 26.11192 118.30521 52.3115719 -0.2995751 8.65861 bmi 0.172535 30.65515 14.47392 52.31157 43.3140415 0.0079866 6.75720 ped -0.068362 -0.63599 -0.21041 -0.29958 0.0079866 0.0587710 -0.18683 age 2.634387 3.50218 13.23392 8.65861 6.7572019 -0.1868284 12.09493 Group: Yes npreg glu bp skin bmi ped age npreg 17.875215 -13.740021 9.03580 4.498580 1.787458 0.079504 26.92283 glu -13.740021 917.719003 55.30399 27.976265 10.755113 0.092673 38.94970 bp 9.035798 55.303991 129.97953 34.130200 10.104275 0.198342 32.95351 skin 4.498580 27.976265 34.13020 101.842647 30.297210 0.064739 3.59427 bmi 1.787458 10.755113 10.10428 30.297210 22.529467 0.084369 -6.64317 ped 0.079504 0.092673 0.19834 0.064739 0.084369 0.066667 0.11199 age 26.922828 38.949697 32.95351 3.594266 -6.643165 0.111992 143.69752 Call: QdaClassic(as.factor(gr) ~ ., data = hemophilia) Prior Probabilities of Groups: carrier normal 0.6 0.4 Group means: AHFactivity AHFantigen carrier -0.30795 -0.0059911 normal -0.13487 -0.0778567 Group: carrier AHFactivity AHFantigen AHFactivity 0.023784 0.015376 AHFantigen 0.015376 0.024035 Group: normal AHFactivity AHFantigen AHFactivity 0.020897 0.015515 AHFantigen 0.015515 0.017920 Call: QdaClassic(Treat ~ ., data = anorexia) Prior Probabilities of Groups: CBT Cont FT 0.40278 0.36111 0.23611 Group means: Prewt Postwt CBT 82.690 85.697 Cont 81.558 81.108 FT 83.229 90.494 Group: CBT Prewt Postwt Prewt 23.479 19.910 Postwt 19.910 69.755 Group: Cont Prewt Postwt Prewt 32.5705 -4.3705 Postwt -4.3705 22.5079 Group: FT Prewt Postwt Prewt 25.167 22.883 Postwt 22.883 71.827 Call: QdaClassic(type ~ ., data = Pima.tr) Prior Probabilities of Groups: No Yes 0.66 0.34 Group means: npreg glu bp skin bmi ped age No 2.9167 113.11 69.545 27.205 31.074 0.41548 29.235 Yes 4.8382 145.06 74.588 33.118 34.709 0.54866 37.691 Group: No npreg glu bp skin bmi ped age npreg 7.878499 10.77226 8.190840 2.910305 -0.035751 -0.207341 16.82888 glu 10.772265 709.56118 81.430257 13.237682 19.037867 -0.518609 59.01307 bp 8.190840 81.43026 122.845246 33.879944 16.612630 -0.077183 46.78695 skin 2.910305 13.23768 33.879944 119.446391 50.125920 0.074282 18.47068 bmi -0.035751 19.03787 16.612630 50.125920 40.722996 0.145242 6.99999 ped -0.207341 -0.51861 -0.077183 0.074282 0.145242 0.071388 -0.53814 age 16.828880 59.01307 46.786954 18.470680 6.999988 -0.538138 91.08183 Group: Yes npreg glu bp skin bmi ped age npreg 15.77941 -8.199298 6.42493 -0.51800 -1.03288 -0.133011 21.93437 glu -8.19930 907.250219 23.71115 87.51536 9.98156 -0.082159 58.12291 bp 6.42493 23.711150 134.18613 19.70588 5.15891 -0.795470 26.30378 skin -0.51800 87.515364 19.70588 151.32924 28.28551 0.347951 26.67867 bmi -1.03288 9.981563 5.15891 28.28551 23.14529 0.457694 -7.91216 ped -0.13301 -0.082159 -0.79547 0.34795 0.45769 0.128883 -0.41737 age 21.93437 58.122915 26.30378 26.67867 -7.91216 -0.417375 131.79873 Call: QdaClassic(Species ~ ., data = iris) Prior Probabilities of Groups: setosa versicolor virginica 0.33333 0.33333 0.33333 Group means: Sepal.Length Sepal.Width Petal.Length Petal.Width setosa 5.006 3.428 1.462 0.246 versicolor 5.936 2.770 4.260 1.326 virginica 6.588 2.974 5.552 2.026 Group: setosa Sepal.Length Sepal.Width Petal.Length Petal.Width Sepal.Length 0.124249 0.099216 0.0163551 0.0103306 Sepal.Width 0.099216 0.143690 0.0116980 0.0092980 Petal.Length 0.016355 0.011698 0.0301592 0.0060694 Petal.Width 0.010331 0.009298 0.0060694 0.0111061 Group: versicolor Sepal.Length Sepal.Width Petal.Length Petal.Width Sepal.Length 0.266433 0.085184 0.182898 0.055780 Sepal.Width 0.085184 0.098469 0.082653 0.041204 Petal.Length 0.182898 0.082653 0.220816 0.073102 Petal.Width 0.055780 0.041204 0.073102 0.039106 Group: virginica Sepal.Length Sepal.Width Petal.Length Petal.Width Sepal.Length 0.404343 0.093763 0.303290 0.049094 Sepal.Width 0.093763 0.104004 0.071380 0.047629 Petal.Length 0.303290 0.071380 0.304588 0.048824 Petal.Width 0.049094 0.047629 0.048824 0.075433 =================================================== > dodata(method="m") Call: dodata(method = "m") =================================================== Call: QdaCov(as.factor(gr) ~ ., data = hemophilia, method = method) Prior Probabilities of Groups: carrier normal 0.6 0.4 Group means: AHFactivity AHFantigen carrier -0.29810 -0.0028222 normal -0.13081 -0.0675283 Group: carrier AHFactivity AHFantigen AHFactivity 0.026018 0.017653 AHFantigen 0.017653 0.030128 Group: normal AHFactivity AHFantigen AHFactivity 0.0081933 0.0065737 AHFantigen 0.0065737 0.0118565 Call: QdaCov(Treat ~ ., data = anorexia, method = method) Prior Probabilities of Groups: CBT Cont FT 0.40278 0.36111 0.23611 Group means: Prewt Postwt CBT 82.436 82.631 Cont 81.559 80.272 FT 85.120 94.657 Group: CBT Prewt Postwt Prewt 23.630 25.128 Postwt 25.128 38.142 Group: Cont Prewt Postwt Prewt 35.8824 -8.2405 Postwt -8.2405 23.7416 Group: FT Prewt Postwt Prewt 33.805 18.206 Postwt 18.206 24.639 Call: QdaCov(type ~ ., data = Pima.tr, method = method) Prior Probabilities of Groups: No Yes 0.66 0.34 Group means: npreg glu bp skin bmi ped age No 2.5225 111.26 68.081 26.640 30.801 0.40452 26.306 Yes 5.0702 144.32 75.088 31.982 34.267 0.47004 37.140 Group: No npreg glu bp skin bmi ped age npreg 5.74219 14.47051 6.63766 4.98559 0.826570 -0.128106 10.71303 glu 14.47051 591.08717 68.81219 44.73311 40.658393 -0.545716 38.01918 bp 6.63766 68.81219 121.02716 30.46466 16.789801 -0.320065 25.29371 skin 4.98559 44.73311 30.46466 136.52176 56.604475 -0.250711 19.73259 bmi 0.82657 40.65839 16.78980 56.60447 47.859747 0.046358 6.94523 ped -0.12811 -0.54572 -0.32006 -0.25071 0.046358 0.061485 -0.34653 age 10.71303 38.01918 25.29371 19.73259 6.945227 -0.346527 35.66101 Group: Yes npreg glu bp skin bmi ped age npreg 15.98861 -1.2430 10.48556 9.05947 2.425316 0.162453 30.149872 glu -1.24304 867.1076 46.43838 25.92297 5.517382 1.044360 31.152650 bp 10.48556 46.4384 130.12536 17.21407 6.343942 -0.235121 41.091494 skin 9.05947 25.9230 17.21407 85.96314 26.089017 0.170061 14.562516 bmi 2.42532 5.5174 6.34394 26.08902 22.051976 0.097786 -5.297971 ped 0.16245 1.0444 -0.23512 0.17006 0.097786 0.057112 0.055286 age 30.14987 31.1527 41.09149 14.56252 -5.297971 0.055286 137.440921 Call: QdaClassic(as.factor(gr) ~ ., data = hemophilia) Prior Probabilities of Groups: carrier normal 0.6 0.4 Group means: AHFactivity AHFantigen carrier -0.30795 -0.0059911 normal -0.13487 -0.0778567 Group: carrier AHFactivity AHFantigen AHFactivity 0.023784 0.015376 AHFantigen 0.015376 0.024035 Group: normal AHFactivity AHFantigen AHFactivity 0.020897 0.015515 AHFantigen 0.015515 0.017920 Call: QdaClassic(Treat ~ ., data = anorexia) Prior Probabilities of Groups: CBT Cont FT 0.40278 0.36111 0.23611 Group means: Prewt Postwt CBT 82.690 85.697 Cont 81.558 81.108 FT 83.229 90.494 Group: CBT Prewt Postwt Prewt 23.479 19.910 Postwt 19.910 69.755 Group: Cont Prewt Postwt Prewt 32.5705 -4.3705 Postwt -4.3705 22.5079 Group: FT Prewt Postwt Prewt 25.167 22.883 Postwt 22.883 71.827 Call: QdaClassic(type ~ ., data = Pima.tr) Prior Probabilities of Groups: No Yes 0.66 0.34 Group means: npreg glu bp skin bmi ped age No 2.9167 113.11 69.545 27.205 31.074 0.41548 29.235 Yes 4.8382 145.06 74.588 33.118 34.709 0.54866 37.691 Group: No npreg glu bp skin bmi ped age npreg 7.878499 10.77226 8.190840 2.910305 -0.035751 -0.207341 16.82888 glu 10.772265 709.56118 81.430257 13.237682 19.037867 -0.518609 59.01307 bp 8.190840 81.43026 122.845246 33.879944 16.612630 -0.077183 46.78695 skin 2.910305 13.23768 33.879944 119.446391 50.125920 0.074282 18.47068 bmi -0.035751 19.03787 16.612630 50.125920 40.722996 0.145242 6.99999 ped -0.207341 -0.51861 -0.077183 0.074282 0.145242 0.071388 -0.53814 age 16.828880 59.01307 46.786954 18.470680 6.999988 -0.538138 91.08183 Group: Yes npreg glu bp skin bmi ped age npreg 15.77941 -8.199298 6.42493 -0.51800 -1.03288 -0.133011 21.93437 glu -8.19930 907.250219 23.71115 87.51536 9.98156 -0.082159 58.12291 bp 6.42493 23.711150 134.18613 19.70588 5.15891 -0.795470 26.30378 skin -0.51800 87.515364 19.70588 151.32924 28.28551 0.347951 26.67867 bmi -1.03288 9.981563 5.15891 28.28551 23.14529 0.457694 -7.91216 ped -0.13301 -0.082159 -0.79547 0.34795 0.45769 0.128883 -0.41737 age 21.93437 58.122915 26.30378 26.67867 -7.91216 -0.417375 131.79873 Call: QdaClassic(Species ~ ., data = iris) Prior Probabilities of Groups: setosa versicolor virginica 0.33333 0.33333 0.33333 Group means: Sepal.Length Sepal.Width Petal.Length Petal.Width setosa 5.006 3.428 1.462 0.246 versicolor 5.936 2.770 4.260 1.326 virginica 6.588 2.974 5.552 2.026 Group: setosa Sepal.Length Sepal.Width Petal.Length Petal.Width Sepal.Length 0.124249 0.099216 0.0163551 0.0103306 Sepal.Width 0.099216 0.143690 0.0116980 0.0092980 Petal.Length 0.016355 0.011698 0.0301592 0.0060694 Petal.Width 0.010331 0.009298 0.0060694 0.0111061 Group: versicolor Sepal.Length Sepal.Width Petal.Length Petal.Width Sepal.Length 0.266433 0.085184 0.182898 0.055780 Sepal.Width 0.085184 0.098469 0.082653 0.041204 Petal.Length 0.182898 0.082653 0.220816 0.073102 Petal.Width 0.055780 0.041204 0.073102 0.039106 Group: virginica Sepal.Length Sepal.Width Petal.Length Petal.Width Sepal.Length 0.404343 0.093763 0.303290 0.049094 Sepal.Width 0.093763 0.104004 0.071380 0.047629 Petal.Length 0.303290 0.071380 0.304588 0.048824 Petal.Width 0.049094 0.047629 0.048824 0.075433 =================================================== > dodata(method="ogk") Call: dodata(method = "ogk") =================================================== Call: QdaCov(as.factor(gr) ~ ., data = hemophilia, method = method) Prior Probabilities of Groups: carrier normal 0.6 0.4 Group means: AHFactivity AHFantigen carrier -0.29324 0.00033953 normal -0.12744 -0.06628182 Group: carrier AHFactivity AHFantigen AHFactivity 0.019260 0.013026 AHFantigen 0.013026 0.021889 Group: normal AHFactivity AHFantigen AHFactivity 0.0049651 0.0039707 AHFantigen 0.0039707 0.0066084 Call: QdaCov(Treat ~ ., data = anorexia, method = method) Prior Probabilities of Groups: CBT Cont FT 0.40278 0.36111 0.23611 Group means: Prewt Postwt CBT 82.587 82.709 Cont 81.558 81.108 FT 85.110 94.470 Group: CBT Prewt Postwt Prewt 10.452 15.115 Postwt 15.115 37.085 Group: Cont Prewt Postwt Prewt 31.3178 -4.2024 Postwt -4.2024 21.6422 Group: FT Prewt Postwt Prewt 5.5309 1.4813 Postwt 1.4813 7.5501 Call: QdaCov(type ~ ., data = Pima.tr, method = method) Prior Probabilities of Groups: No Yes 0.66 0.34 Group means: npreg glu bp skin bmi ped age No 2.4286 110.35 67.495 25.905 30.275 0.39587 26.248 Yes 5.1964 142.71 75.357 32.732 34.809 0.48823 37.607 Group: No npreg glu bp skin bmi ped age npreg 3.97823 8.70612 4.58776 4.16463 0.250612 -0.117238 8.21769 glu 8.70612 448.91392 51.71120 38.66213 21.816345 -0.296524 24.29370 bp 4.58776 51.71120 99.41188 24.27574 10.491311 -0.290753 20.02975 skin 4.16463 38.66213 24.27574 98.61950 41.682404 -0.335213 16.60454 bmi 0.25061 21.81634 10.49131 41.68240 35.237101 -0.019774 5.12042 ped -0.11724 -0.29652 -0.29075 -0.33521 -0.019774 0.051431 -0.36275 age 8.21769 24.29370 20.02975 16.60454 5.120417 -0.362748 31.32916 Group: Yes npreg glu bp skin bmi ped age npreg 15.26499 6.30612 3.01913 3.76690 0.94825 0.12076 22.64860 glu 6.30612 688.16837 22.22704 12.81633 3.55791 0.68833 32.28061 bp 3.01913 22.22704 103.97959 9.95281 2.09860 0.45672 31.17602 skin 3.76690 12.81633 9.95281 67.51754 19.51489 0.59831 -2.35523 bmi 0.94825 3.55791 2.09860 19.51489 17.20331 0.24347 -6.88221 ped 0.12076 0.68833 0.45672 0.59831 0.24347 0.05933 0.43798 age 22.64860 32.28061 31.17602 -2.35523 -6.88221 0.43798 111.16709 Call: QdaClassic(as.factor(gr) ~ ., data = hemophilia) Prior Probabilities of Groups: carrier normal 0.6 0.4 Group means: AHFactivity AHFantigen carrier -0.30795 -0.0059911 normal -0.13487 -0.0778567 Group: carrier AHFactivity AHFantigen AHFactivity 0.023784 0.015376 AHFantigen 0.015376 0.024035 Group: normal AHFactivity AHFantigen AHFactivity 0.020897 0.015515 AHFantigen 0.015515 0.017920 Call: QdaClassic(Treat ~ ., data = anorexia) Prior Probabilities of Groups: CBT Cont FT 0.40278 0.36111 0.23611 Group means: Prewt Postwt CBT 82.690 85.697 Cont 81.558 81.108 FT 83.229 90.494 Group: CBT Prewt Postwt Prewt 23.479 19.910 Postwt 19.910 69.755 Group: Cont Prewt Postwt Prewt 32.5705 -4.3705 Postwt -4.3705 22.5079 Group: FT Prewt Postwt Prewt 25.167 22.883 Postwt 22.883 71.827 Call: QdaClassic(type ~ ., data = Pima.tr) Prior Probabilities of Groups: No Yes 0.66 0.34 Group means: npreg glu bp skin bmi ped age No 2.9167 113.11 69.545 27.205 31.074 0.41548 29.235 Yes 4.8382 145.06 74.588 33.118 34.709 0.54866 37.691 Group: No npreg glu bp skin bmi ped age npreg 7.878499 10.77226 8.190840 2.910305 -0.035751 -0.207341 16.82888 glu 10.772265 709.56118 81.430257 13.237682 19.037867 -0.518609 59.01307 bp 8.190840 81.43026 122.845246 33.879944 16.612630 -0.077183 46.78695 skin 2.910305 13.23768 33.879944 119.446391 50.125920 0.074282 18.47068 bmi -0.035751 19.03787 16.612630 50.125920 40.722996 0.145242 6.99999 ped -0.207341 -0.51861 -0.077183 0.074282 0.145242 0.071388 -0.53814 age 16.828880 59.01307 46.786954 18.470680 6.999988 -0.538138 91.08183 Group: Yes npreg glu bp skin bmi ped age npreg 15.77941 -8.199298 6.42493 -0.51800 -1.03288 -0.133011 21.93437 glu -8.19930 907.250219 23.71115 87.51536 9.98156 -0.082159 58.12291 bp 6.42493 23.711150 134.18613 19.70588 5.15891 -0.795470 26.30378 skin -0.51800 87.515364 19.70588 151.32924 28.28551 0.347951 26.67867 bmi -1.03288 9.981563 5.15891 28.28551 23.14529 0.457694 -7.91216 ped -0.13301 -0.082159 -0.79547 0.34795 0.45769 0.128883 -0.41737 age 21.93437 58.122915 26.30378 26.67867 -7.91216 -0.417375 131.79873 Call: QdaClassic(Species ~ ., data = iris) Prior Probabilities of Groups: setosa versicolor virginica 0.33333 0.33333 0.33333 Group means: Sepal.Length Sepal.Width Petal.Length Petal.Width setosa 5.006 3.428 1.462 0.246 versicolor 5.936 2.770 4.260 1.326 virginica 6.588 2.974 5.552 2.026 Group: setosa Sepal.Length Sepal.Width Petal.Length Petal.Width Sepal.Length 0.124249 0.099216 0.0163551 0.0103306 Sepal.Width 0.099216 0.143690 0.0116980 0.0092980 Petal.Length 0.016355 0.011698 0.0301592 0.0060694 Petal.Width 0.010331 0.009298 0.0060694 0.0111061 Group: versicolor Sepal.Length Sepal.Width Petal.Length Petal.Width Sepal.Length 0.266433 0.085184 0.182898 0.055780 Sepal.Width 0.085184 0.098469 0.082653 0.041204 Petal.Length 0.182898 0.082653 0.220816 0.073102 Petal.Width 0.055780 0.041204 0.073102 0.039106 Group: virginica Sepal.Length Sepal.Width Petal.Length Petal.Width Sepal.Length 0.404343 0.093763 0.303290 0.049094 Sepal.Width 0.093763 0.104004 0.071380 0.047629 Petal.Length 0.303290 0.071380 0.304588 0.048824 Petal.Width 0.049094 0.047629 0.048824 0.075433 =================================================== > dodata(method="sde") Call: dodata(method = "sde") =================================================== Call: QdaCov(as.factor(gr) ~ ., data = hemophilia, method = method) Prior Probabilities of Groups: carrier normal 0.6 0.4 Group means: AHFactivity AHFantigen carrier -0.29834 -0.0032286 normal -0.12944 -0.0676930 Group: carrier AHFactivity AHFantigen AHFactivity 0.025398 0.017810 AHFantigen 0.017810 0.030639 Group: normal AHFactivity AHFantigen AHFactivity 0.0083435 0.0067686 AHFantigen 0.0067686 0.0119565 Call: QdaCov(Treat ~ ., data = anorexia, method = method) Prior Probabilities of Groups: CBT Cont FT 0.40278 0.36111 0.23611 Group means: Prewt Postwt CBT 82.949 83.323 Cont 81.484 80.840 FT 84.596 93.835 Group: CBT Prewt Postwt Prewt 22.283 17.084 Postwt 17.084 25.308 Group: Cont Prewt Postwt Prewt 37.1864 -8.8896 Postwt -8.8896 31.1930 Group: FT Prewt Postwt Prewt 20.7108 3.1531 Postwt 3.1531 25.7046 Call: QdaCov(type ~ ., data = Pima.tr, method = method) Prior Probabilities of Groups: No Yes 0.66 0.34 Group means: npreg glu bp skin bmi ped age No 2.2567 109.91 67.538 25.484 30.355 0.38618 25.628 Yes 5.2216 141.64 75.048 32.349 34.387 0.47742 37.634 Group: No npreg glu bp skin bmi ped age npreg 4.396832 10.20629 5.43346 4.38313 7.9891e-01 -0.09389257 7.45638 glu 10.206286 601.12211 56.62047 49.67071 3.3829e+01 -0.31896741 31.64508 bp 5.433462 56.62047 120.38052 34.38984 1.4817e+01 -0.21784446 26.44853 skin 4.383134 49.67071 34.38984 136.94931 6.1576e+01 -0.47532490 17.74141 bmi 0.798908 33.82928 14.81668 61.57578 5.1441e+01 0.00061983 8.56856 ped -0.093893 -0.31897 -0.21784 -0.47532 6.1983e-04 0.06012655 -0.26872 age 7.456376 31.64508 26.44853 17.74141 8.5686e+00 -0.26872005 29.93856 Group: Yes npreg glu bp skin bmi ped age npreg 15.91978 7.7491 7.24229 10.46802 5.40627 0.320434 25.88314 glu 7.74907 856.4955 58.59554 29.65331 11.44745 1.388745 38.24430 bp 7.24229 58.5955 89.66288 21.36597 6.46859 0.764486 36.30462 skin 10.46802 29.6533 21.36597 86.79253 26.22071 0.620654 5.28665 bmi 5.40627 11.4475 6.46859 26.22071 20.12351 0.211701 0.71583 ped 0.32043 1.3887 0.76449 0.62065 0.21170 0.062727 0.93743 age 25.88314 38.2443 36.30462 5.28665 0.71583 0.937430 136.24335 Call: QdaClassic(as.factor(gr) ~ ., data = hemophilia) Prior Probabilities of Groups: carrier normal 0.6 0.4 Group means: AHFactivity AHFantigen carrier -0.30795 -0.0059911 normal -0.13487 -0.0778567 Group: carrier AHFactivity AHFantigen AHFactivity 0.023784 0.015376 AHFantigen 0.015376 0.024035 Group: normal AHFactivity AHFantigen AHFactivity 0.020897 0.015515 AHFantigen 0.015515 0.017920 Call: QdaClassic(Treat ~ ., data = anorexia) Prior Probabilities of Groups: CBT Cont FT 0.40278 0.36111 0.23611 Group means: Prewt Postwt CBT 82.690 85.697 Cont 81.558 81.108 FT 83.229 90.494 Group: CBT Prewt Postwt Prewt 23.479 19.910 Postwt 19.910 69.755 Group: Cont Prewt Postwt Prewt 32.5705 -4.3705 Postwt -4.3705 22.5079 Group: FT Prewt Postwt Prewt 25.167 22.883 Postwt 22.883 71.827 Call: QdaClassic(type ~ ., data = Pima.tr) Prior Probabilities of Groups: No Yes 0.66 0.34 Group means: npreg glu bp skin bmi ped age No 2.9167 113.11 69.545 27.205 31.074 0.41548 29.235 Yes 4.8382 145.06 74.588 33.118 34.709 0.54866 37.691 Group: No npreg glu bp skin bmi ped age npreg 7.878499 10.77226 8.190840 2.910305 -0.035751 -0.207341 16.82888 glu 10.772265 709.56118 81.430257 13.237682 19.037867 -0.518609 59.01307 bp 8.190840 81.43026 122.845246 33.879944 16.612630 -0.077183 46.78695 skin 2.910305 13.23768 33.879944 119.446391 50.125920 0.074282 18.47068 bmi -0.035751 19.03787 16.612630 50.125920 40.722996 0.145242 6.99999 ped -0.207341 -0.51861 -0.077183 0.074282 0.145242 0.071388 -0.53814 age 16.828880 59.01307 46.786954 18.470680 6.999988 -0.538138 91.08183 Group: Yes npreg glu bp skin bmi ped age npreg 15.77941 -8.199298 6.42493 -0.51800 -1.03288 -0.133011 21.93437 glu -8.19930 907.250219 23.71115 87.51536 9.98156 -0.082159 58.12291 bp 6.42493 23.711150 134.18613 19.70588 5.15891 -0.795470 26.30378 skin -0.51800 87.515364 19.70588 151.32924 28.28551 0.347951 26.67867 bmi -1.03288 9.981563 5.15891 28.28551 23.14529 0.457694 -7.91216 ped -0.13301 -0.082159 -0.79547 0.34795 0.45769 0.128883 -0.41737 age 21.93437 58.122915 26.30378 26.67867 -7.91216 -0.417375 131.79873 Call: QdaClassic(Species ~ ., data = iris) Prior Probabilities of Groups: setosa versicolor virginica 0.33333 0.33333 0.33333 Group means: Sepal.Length Sepal.Width Petal.Length Petal.Width setosa 5.006 3.428 1.462 0.246 versicolor 5.936 2.770 4.260 1.326 virginica 6.588 2.974 5.552 2.026 Group: setosa Sepal.Length Sepal.Width Petal.Length Petal.Width Sepal.Length 0.124249 0.099216 0.0163551 0.0103306 Sepal.Width 0.099216 0.143690 0.0116980 0.0092980 Petal.Length 0.016355 0.011698 0.0301592 0.0060694 Petal.Width 0.010331 0.009298 0.0060694 0.0111061 Group: versicolor Sepal.Length Sepal.Width Petal.Length Petal.Width Sepal.Length 0.266433 0.085184 0.182898 0.055780 Sepal.Width 0.085184 0.098469 0.082653 0.041204 Petal.Length 0.182898 0.082653 0.220816 0.073102 Petal.Width 0.055780 0.041204 0.073102 0.039106 Group: virginica Sepal.Length Sepal.Width Petal.Length Petal.Width Sepal.Length 0.404343 0.093763 0.303290 0.049094 Sepal.Width 0.093763 0.104004 0.071380 0.047629 Petal.Length 0.303290 0.071380 0.304588 0.048824 Petal.Width 0.049094 0.047629 0.048824 0.075433 =================================================== > > proc.time() user system elapsed 1.71 0.42 3.06 rrcov/tests/tmcd4.R0000644000176200001440000002420114443667016013717 0ustar liggesusers## Test the exact fit property of CovMcd doexactfit <- function(){ exact <-function(seed=1234){ set.seed(seed) n1 <- 45 p <- 2 x1 <- matrix(rnorm(p*n1),nrow=n1, ncol=p) x1[,p] <- x1[,p] + 3 n2 <- 55 m1 <- 0 m2 <- 3 x2 <- cbind(rnorm(n2),rep(m2,n2)) x<-rbind(x1,x2) colnames(x) <- c("X1","X2") x } print(CovMcd(exact())) } dodata <- function(nrep=1, time=FALSE, short=FALSE, full=TRUE, method = c("FASTMCD","MASS", "deterministic", "exact", "MRCD")){ ##@bdescr ## Test the function covMcd() on the literature datasets: ## ## Call CovMcd() for all regression datasets available in rrcov and print: ## - execution time (if time == TRUE) ## - objective fucntion ## - best subsample found (if short == false) ## - outliers identified (with cutoff 0.975) (if short == false) ## - estimated center and covarinance matrix if full == TRUE) ## ##@edescr ## ##@in nrep : [integer] number of repetitions to use for estimating the ## (average) execution time ##@in time : [boolean] whether to evaluate the execution time ##@in short : [boolean] whether to do short output (i.e. only the ## objective function value). If short == FALSE, ## the best subsample and the identified outliers are ## printed. See also the parameter full below ##@in full : [boolean] whether to print the estimated cente and covariance matrix ##@in method : [character] select a method: one of (FASTMCD, MASS) doest <- function(x, xname, nrep=1){ n <- dim(x)[1] p <- dim(x)[2] if(method == "MASS"){ mcd<-cov.mcd(x) quan <- as.integer(floor((n + p + 1)/2)) #default: floor((n+p+1)/2) } else{ mcd <- if(method=="deterministic") CovMcd(x, nsamp="deterministic", trace=FALSE) else if(method=="exact") CovMcd(x, nsamp="exact", trace=FALSE) else if(method=="MRCD") CovMrcd(x, trace=FALSE) else CovMcd(x, trace=FALSE) quan <- as.integer(mcd@quan) } crit <- mcd@crit if(time){ xtime <- system.time(dorep(x, nrep, method))[1]/nrep xres <- sprintf("%3d %3d %3d %12.6f %10.3f\n", dim(x)[1], dim(x)[2], quan, crit, xtime) } else{ xres <- sprintf("%3d %3d %3d %12.6f\n", dim(x)[1], dim(x)[2], quan, crit) } lpad<-lname-nchar(xname) cat(pad.right(xname,lpad), xres) if(!short){ cat("Best subsample: \n") if(length(mcd@best) > 150) cat("Too long... \n") else print(mcd@best) ibad <- which(mcd@wt==0) names(ibad) <- NULL nbad <- length(ibad) cat("Outliers: ",nbad,"\n") if(nbad > 0 & nbad < 150) print(ibad) else cat("Too many to print ... \n") if(full){ cat("-------------\n") show(mcd) } cat("--------------------------------------------------------\n") } } options(digits = 5) set.seed(101) # <<-- sub-sampling algorithm now based on R's RNG and seed lname <- 20 ## VT::15.09.2013 - this will render the output independent ## from the version of the package suppressPackageStartupMessages(library(rrcov)) method <- match.arg(method) if(method == "MASS") library(MASS) data(Animals, package = "MASS") brain <- Animals[c(1:24, 26:25, 27:28),] data(fish) data(pottery) data(rice) data(un86) data(wages) tmp <- sys.call() cat("\nCall: ", deparse(substitute(tmp)),"\n") cat("Data Set n p Half LOG(obj) Time\n") cat("========================================================\n") if(method=="exact") { ## only small data sets doest(heart[, 1:2], data(heart), nrep) doest(starsCYG, data(starsCYG), nrep) doest(data.matrix(subset(phosphor, select = -plant)), data(phosphor), nrep) doest(data.matrix(subset(coleman, select = -Y)), data(coleman), nrep) doest(data.matrix(subset(salinity, select = -Y)), data(salinity), nrep) doest(data.matrix(subset(wood, select = -y)), data(wood), nrep) doest(brain, "Animals", nrep) doest(lactic, data(lactic), nrep) doest(pension, data(pension), nrep) doest(data.matrix(subset(vaso, select = -Y)), data(vaso), nrep) doest(stack.x, data(stackloss), nrep) doest(pilot, data(pilot), nrep) } else { doest(heart[, 1:2], data(heart), nrep) doest(starsCYG, data(starsCYG), nrep) doest(data.matrix(subset(phosphor, select = -plant)), data(phosphor), nrep) doest(stack.x, data(stackloss), nrep) doest(data.matrix(subset(coleman, select = -Y)), data(coleman), nrep) doest(data.matrix(subset(salinity, select = -Y)), data(salinity), nrep) doest(data.matrix(subset(wood, select = -y)), data(wood), nrep) doest(data.matrix(subset(hbk, select = -Y)),data(hbk), nrep) doest(brain, "Animals", nrep) ## doest(milk, data(milk), nrep) # difference between 386 and x64 doest(bushfire, data(bushfire), nrep) doest(lactic, data(lactic), nrep) doest(pension, data(pension), nrep) ## doest(pilot, data(pilot), nrep) # difference between 386 and x64 if(method != "MRCD") # these two are quite slow for MRCD, especially the second one { doest(radarImage, data(radarImage), nrep) doest(NOxEmissions, data(NOxEmissions), nrep) } doest(data.matrix(subset(vaso, select = -Y)), data(vaso), nrep) doest(data.matrix(subset(wagnerGrowth, select = -Period)), data(wagnerGrowth), nrep) doest(data.matrix(subset(fish, select = -Species)), data(fish), nrep) doest(data.matrix(subset(pottery, select = -origin)), data(pottery), nrep) doest(rice, data(rice), nrep) doest(un86, data(un86), nrep) doest(wages, data(wages), nrep) ## from package 'datasets' doest(airquality[,1:4], data(airquality), nrep) doest(attitude, data(attitude), nrep) doest(attenu, data(attenu), nrep) doest(USJudgeRatings, data(USJudgeRatings), nrep) doest(USArrests, data(USArrests), nrep) doest(longley, data(longley), nrep) doest(Loblolly, data(Loblolly), nrep) doest(quakes[,1:4], data(quakes), nrep) } cat("========================================================\n") } dogen <- function(nrep=1, eps=0.49, method=c("FASTMCD", "MASS")){ doest <- function(x, nrep=1){ gc() xtime <- system.time(dorep(x, nrep, method))[1]/nrep cat(sprintf("%6d %3d %10.2f\n", dim(x)[1], dim(x)[2], xtime)) xtime } set.seed(1234) ## VT::15.09.2013 - this will render the output independent ## from the version of the package suppressPackageStartupMessages(library(rrcov)) library(MASS) method <- match.arg(method) ap <- c(2, 5, 10, 20, 30) an <- c(100, 500, 1000, 10000, 50000) tottime <- 0 cat(" n p Time\n") cat("=====================\n") for(i in 1:length(an)) { for(j in 1:length(ap)) { n <- an[i] p <- ap[j] if(5*p <= n){ xx <- gendata(n, p, eps) X <- xx$X tottime <- tottime + doest(X, nrep) } } } cat("=====================\n") cat("Total time: ", tottime*nrep, "\n") } docheck <- function(n, p, eps){ xx <- gendata(n,p,eps) mcd <- CovMcd(xx$X) check(mcd, xx$xind) } check <- function(mcd, xind){ ## check if mcd is robust w.r.t xind, i.e. check how many of xind ## did not get zero weight mymatch <- xind %in% which(mcd@wt == 0) length(xind) - length(which(mymatch)) } dorep <- function(x, nrep=1, method=c("FASTMCD","MASS", "deterministic", "exact", "MRCD")){ method <- match.arg(method) for(i in 1:nrep) if(method == "MASS") cov.mcd(x) else { if(method=="deterministic") CovMcd(x, nsamp="deterministic", trace=FALSE) else if(method=="exact") CovMcd(x, nsamp="exact", trace=FALSE) else if(method=="MRCD") CovMrcd(x, trace=FALSE) else CovMcd(x, trace=FALSE) } } #### gendata() #### # Generates a location contaminated multivariate # normal sample of n observations in p dimensions # (1-eps)*Np(0,Ip) + eps*Np(m,Ip) # where # m = (b,b,...,b) # Defaults: eps=0 and b=10 # gendata <- function(n,p,eps=0,b=10){ if(missing(n) || missing(p)) stop("Please specify (n,p)") if(eps < 0 || eps >= 0.5) stop(message="eps must be in [0,0.5)") X <- mvrnorm(n,rep(0,p),diag(1,nrow=p,ncol=p)) nbad <- as.integer(eps * n) if(nbad > 0){ Xbad <- mvrnorm(nbad,rep(b,p),diag(1,nrow=p,ncol=p)) xind <- sample(n,nbad) X[xind,] <- Xbad } list(X=X, xind=xind) } pad.right <- function(z, pads) { ### Pads spaces to right of text padding <- paste(rep(" ", pads), collapse = "") paste(z, padding, sep = "") } whatis<-function(x){ if(is.data.frame(x)) cat("Type: data.frame\n") else if(is.matrix(x)) cat("Type: matrix\n") else if(is.vector(x)) cat("Type: vector\n") else cat("Type: don't know\n") } ## VT::15.09.2013 - this will render the output independent ## from the version of the package suppressPackageStartupMessages(library(rrcov)) dodata() dodata(method="deterministic") dodata(method="exact") dodata(method="MRCD") ##doexactfit() rrcov/tests/tmve4.R0000644000176200001440000001607214443667016013752 0ustar liggesusersdodata <- function(nrep=1, time=FALSE, short=FALSE, full=TRUE, method = c("FASTMVE","MASS")){ ##@bdescr ## Test the function covMve() on the literature datasets: ## ## Call covMve() for all regression datasets available in rrco/robustbasev and print: ## - execution time (if time == TRUE) ## - objective fucntion ## - best subsample found (if short == false) ## - outliers identified (with cutoff 0.975) (if short == false) ## - estimated center and covarinance matrix if full == TRUE) ## ##@edescr ## ##@in nrep : [integer] number of repetitions to use for estimating the ## (average) execution time ##@in time : [boolean] whether to evaluate the execution time ##@in short : [boolean] whether to do short output (i.e. only the ## objective function value). If short == FALSE, ## the best subsample and the identified outliers are ## printed. See also the parameter full below ##@in full : [boolean] whether to print the estimated cente and covariance matrix ##@in method : [character] select a method: one of (FASTMCD, MASS) domve <- function(x, xname, nrep=1){ n <- dim(x)[1] p <- dim(x)[2] alpha <- 0.5 h <- h.alpha.n(alpha, n, p) if(method == "MASS"){ mve <- cov.mve(x, quantile.used=h) quan <- h #default: floor((n+p+1)/2) crit <- mve$crit best <- mve$best mah <- mahalanobis(x, mve$center, mve$cov) quantiel <- qchisq(0.975, p) wt <- as.numeric(mah < quantiel) } else{ mve <- CovMve(x, trace=FALSE) quan <- as.integer(mve@quan) crit <- log(mve@crit) best <- mve@best wt <- mve@wt } if(time){ xtime <- system.time(dorep(x, nrep, method))[1]/nrep xres <- sprintf("%3d %3d %3d %12.6f %10.3f\n", dim(x)[1], dim(x)[2], quan, crit, xtime) } else{ xres <- sprintf("%3d %3d %3d %12.6f\n", dim(x)[1], dim(x)[2], quan, crit) } lpad<-lname-nchar(xname) cat(pad.right(xname,lpad), xres) if(!short){ cat("Best subsample: \n") print(best) ibad <- which(wt == 0) names(ibad) <- NULL nbad <- length(ibad) cat("Outliers: ", nbad, "\n") if(nbad > 0) print(ibad) if(full){ cat("-------------\n") show(mve) } cat("--------------------------------------------------------\n") } } options(digits = 5) set.seed(101) # <<-- sub-sampling algorithm now based on R's RNG and seed lname <- 20 ## VT::15.09.2013 - this will render the output independent ## from the version of the package suppressPackageStartupMessages(library(rrcov)) method <- match.arg(method) if(method == "MASS") library(MASS) data(heart) data(starsCYG) data(phosphor) data(stackloss) data(coleman) data(salinity) data(wood) data(hbk) data(Animals, package = "MASS") brain <- Animals[c(1:24, 26:25, 27:28),] data(milk) data(bushfire) tmp <- sys.call() cat("\nCall: ", deparse(substitute(tmp)),"\n") cat("Data Set n p Half LOG(obj) Time\n") cat("========================================================\n") domve(heart[, 1:2], data(heart), nrep) domve(starsCYG, data(starsCYG), nrep) domve(data.matrix(subset(phosphor, select = -plant)), data(phosphor), nrep) domve(stack.x, data(stackloss), nrep) domve(data.matrix(subset(coleman, select = -Y)), data(coleman), nrep) domve(data.matrix(subset(salinity, select = -Y)), data(salinity), nrep) domve(data.matrix(subset(wood, select = -y)), data(wood), nrep) domve(data.matrix(subset(hbk, select = -Y)),data(hbk), nrep) domve(brain, "Animals", nrep) domve(milk, data(milk), nrep) domve(bushfire, data(bushfire), nrep) cat("========================================================\n") } dogen <- function(nrep=1, eps=0.49, method=c("FASTMVE", "MASS")){ domve <- function(x, nrep=1){ gc() xtime <- system.time(dorep(x, nrep, method))[1]/nrep cat(sprintf("%6d %3d %10.2f\n", dim(x)[1], dim(x)[2], xtime)) xtime } set.seed(1234) ## VT::15.09.2013 - this will render the output independent ## from the version of the package suppressPackageStartupMessages(library(rrcov)) library(MASS) method <- match.arg(method) ap <- c(2, 5, 10, 20, 30) an <- c(100, 500, 1000, 10000, 50000) tottime <- 0 cat(" n p Time\n") cat("=====================\n") for(i in 1:length(an)) { for(j in 1:length(ap)) { n <- an[i] p <- ap[j] if(5*p <= n){ xx <- gendata(n, p, eps) X <- xx$X tottime <- tottime + domve(X, nrep) } } } cat("=====================\n") cat("Total time: ", tottime*nrep, "\n") } docheck <- function(n, p, eps){ xx <- gendata(n,p,eps) mve <- CovMve(xx$X) check(mve, xx$xind) } check <- function(mcd, xind){ ## check if mcd is robust w.r.t xind, i.e. check how many of xind ## did not get zero weight mymatch <- xind %in% which(mcd@wt == 0) length(xind) - length(which(mymatch)) } dorep <- function(x, nrep=1, method=c("FASTMVE","MASS")){ method <- match.arg(method) for(i in 1:nrep) if(method == "MASS") cov.mve(x) else CovMve(x) } #### gendata() #### # Generates a location contaminated multivariate # normal sample of n observations in p dimensions # (1-eps)*Np(0,Ip) + eps*Np(m,Ip) # where # m = (b,b,...,b) # Defaults: eps=0 and b=10 # gendata <- function(n,p,eps=0,b=10){ if(missing(n) || missing(p)) stop("Please specify (n,p)") if(eps < 0 || eps >= 0.5) stop(message="eps must be in [0,0.5)") X <- mvrnorm(n,rep(0,p),diag(1,nrow=p,ncol=p)) nbad <- as.integer(eps * n) if(nbad > 0){ Xbad <- mvrnorm(nbad,rep(b,p),diag(1,nrow=p,ncol=p)) xind <- sample(n,nbad) X[xind,] <- Xbad } list(X=X, xind=xind) } pad.right <- function(z, pads) { ### Pads spaces to right of text padding <- paste(rep(" ", pads), collapse = "") paste(z, padding, sep = "") } whatis<-function(x){ if(is.data.frame(x)) cat("Type: data.frame\n") else if(is.matrix(x)) cat("Type: matrix\n") else if(is.vector(x)) cat("Type: vector\n") else cat("Type: don't know\n") } ## VT::15.09.2013 - this will render the output independent ## from the version of the package suppressPackageStartupMessages(library(rrcov)) dodata() rrcov/tests/togk4.Rout.save0000644000176200001440000002227414443667016015431 0ustar liggesusers R version 4.0.2 (2020-06-22) -- "Taking Off Again" Copyright (C) 2020 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > ## VT::15.09.2013 - this will render the output independent > ## from the version of the package > suppressPackageStartupMessages(library(rrcov)) > > ## VT::14.01.2020 > ## On some platforms minor differences are shown - use > ## IGNORE_RDIFF_BEGIN > ## IGNORE_RDIFF_END > > dodata <- function(nrep=1, time=FALSE, short=FALSE, full=TRUE, method = c("FASTMCD","MASS")){ + domcd <- function(x, xname, nrep=1){ + n <- dim(x)[1] + p <- dim(x)[2] + + mcd<-CovOgk(x) + + xres <- sprintf("%3d %3d\n", dim(x)[1], dim(x)[2]) + + lpad<-lname-nchar(xname) + cat(pad.right(xname,lpad), xres) + + dist <- getDistance(mcd) + quantiel <- qchisq(0.975, p) + ibad <- which(dist >= quantiel) + names(ibad) <- NULL + nbad <- length(ibad) + cat("Outliers: ",nbad,"\n") + if(nbad > 0) + print(ibad) + cat("-------------\n") + show(mcd) + cat("--------------------------------------------------------\n") + } + + lname <- 20 + + ## VT::15.09.2013 - this will render the output independent + ## from the version of the package + suppressPackageStartupMessages(library(rrcov)) + + method <- match.arg(method) + + data(heart) + data(starsCYG) + data(phosphor) + data(stackloss) + data(coleman) + data(salinity) + data(wood) + + data(hbk) + + data(Animals, package = "MASS") + brain <- Animals[c(1:24, 26:25, 27:28),] + data(milk) + data(bushfire) + + tmp <- sys.call() + cat("\nCall: ", deparse(substitute(tmp)),"\n") + + cat("Data Set n p Half LOG(obj) Time\n") + cat("========================================================\n") + domcd(heart[, 1:2], data(heart), nrep) + ## This will not work within the function, of course + ## - comment it out + ## IGNORE_RDIFF_BEGIN + ## domcd(starsCYG,data(starsCYG), nrep) + ## IGNORE_RDIFF_END + domcd(data.matrix(subset(phosphor, select = -plant)), data(phosphor), nrep) + domcd(stack.x,data(stackloss), nrep) + domcd(data.matrix(subset(coleman, select = -Y)), data(coleman), nrep) + domcd(data.matrix(subset(salinity, select = -Y)), data(salinity), nrep) + ## IGNORE_RDIFF_BEGIN + ## domcd(data.matrix(subset(wood, select = -y)), data(wood), nrep) + ## IGNORE_RDIFF_END + domcd(data.matrix(subset(hbk, select = -Y)), data(hbk), nrep) + + domcd(brain, "Animals", nrep) + domcd(milk, data(milk), nrep) + domcd(bushfire, data(bushfire), nrep) + cat("========================================================\n") + } > > pad.right <- function(z, pads) + { + ### Pads spaces to right of text + padding <- paste(rep(" ", pads), collapse = "") + paste(z, padding, sep = "") + } > > dodata() Call: dodata() Data Set n p Half LOG(obj) Time ======================================================== heart 12 2 Outliers: 5 [1] 2 6 8 10 12 ------------- Call: CovOgk(x = x) -> Method: Orthogonalized Gnanadesikan-Kettenring Estimator Robust Estimate of Location: height weight 39.76 35.71 Robust Estimate of Covariance: height weight height 15.88 32.07 weight 32.07 78.28 -------------------------------------------------------- phosphor 18 2 Outliers: 2 [1] 1 6 ------------- Call: CovOgk(x = x) -> Method: Orthogonalized Gnanadesikan-Kettenring Estimator Robust Estimate of Location: inorg organic 13.31 40.00 Robust Estimate of Covariance: inorg organic inorg 92.82 93.24 organic 93.24 152.62 -------------------------------------------------------- stackloss 21 3 Outliers: 2 [1] 1 2 ------------- Call: CovOgk(x = x) -> Method: Orthogonalized Gnanadesikan-Kettenring Estimator Robust Estimate of Location: Air.Flow Water.Temp Acid.Conc. 57.72 20.50 85.78 Robust Estimate of Covariance: Air.Flow Water.Temp Acid.Conc. Air.Flow 38.423 11.306 18.605 Water.Temp 11.306 6.806 5.889 Acid.Conc. 18.605 5.889 29.840 -------------------------------------------------------- coleman 20 5 Outliers: 3 [1] 1 6 10 ------------- Call: CovOgk(x = x) -> Method: Orthogonalized Gnanadesikan-Kettenring Estimator Robust Estimate of Location: salaryP fatherWc sstatus teacherSc motherLev 2.723 43.202 2.912 25.010 6.290 Robust Estimate of Covariance: salaryP fatherWc sstatus teacherSc motherLev salaryP 0.12867 2.80048 0.92026 0.15118 0.06413 fatherWc 2.80048 678.72549 227.36415 9.30826 16.15102 sstatus 0.92026 227.36415 101.39094 3.38013 5.63283 teacherSc 0.15118 9.30826 3.38013 0.57112 0.27701 motherLev 0.06413 16.15102 5.63283 0.27701 0.44801 -------------------------------------------------------- salinity 28 3 Outliers: 3 [1] 3 5 16 ------------- Call: CovOgk(x = x) -> Method: Orthogonalized Gnanadesikan-Kettenring Estimator Robust Estimate of Location: X1 X2 X3 10.74 2.68 22.99 Robust Estimate of Covariance: X1 X2 X3 X1 8.1047 -0.6365 -0.4720 X2 -0.6365 3.0976 -1.3520 X3 -0.4720 -1.3520 2.3648 -------------------------------------------------------- hbk 75 3 Outliers: 14 [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ------------- Call: CovOgk(x = x) -> Method: Orthogonalized Gnanadesikan-Kettenring Estimator Robust Estimate of Location: X1 X2 X3 1.538 1.780 1.687 Robust Estimate of Covariance: X1 X2 X3 X1 1.11350 0.04992 0.11541 X2 0.04992 1.13338 0.13843 X3 0.11541 0.13843 1.05261 -------------------------------------------------------- Animals 28 2 Outliers: 12 [1] 2 6 7 9 12 14 15 16 17 24 25 28 ------------- Call: CovOgk(x = x) -> Method: Orthogonalized Gnanadesikan-Kettenring Estimator Robust Estimate of Location: body brain 39.65 105.83 Robust Estimate of Covariance: body brain body 3981 7558 brain 7558 16594 -------------------------------------------------------- milk 86 8 Outliers: 22 [1] 1 2 3 11 12 13 14 15 16 17 18 20 27 41 44 47 50 70 74 75 77 85 ------------- Call: CovOgk(x = x) -> Method: Orthogonalized Gnanadesikan-Kettenring Estimator Robust Estimate of Location: X1 X2 X3 X4 X5 X6 X7 X8 1.03 35.80 33.10 26.15 25.13 25.06 123.06 14.39 Robust Estimate of Covariance: X1 X2 X3 X4 X5 X6 X7 X1 4.074e-07 5.255e-05 1.564e-04 1.506e-04 1.340e-04 1.234e-04 5.308e-04 X2 5.255e-05 1.464e+00 3.425e-01 2.465e-01 1.847e-01 2.484e-01 1.459e+00 X3 1.564e-04 3.425e-01 1.070e+00 7.834e-01 7.665e-01 7.808e-01 7.632e-01 X4 1.506e-04 2.465e-01 7.834e-01 6.178e-01 5.868e-01 5.959e-01 5.923e-01 X5 1.340e-04 1.847e-01 7.665e-01 5.868e-01 6.124e-01 5.967e-01 5.868e-01 X6 1.234e-04 2.484e-01 7.808e-01 5.959e-01 5.967e-01 6.253e-01 5.819e-01 X7 5.308e-04 1.459e+00 7.632e-01 5.923e-01 5.868e-01 5.819e-01 3.535e+00 X8 1.990e-07 1.851e-01 1.861e-01 1.210e-01 1.041e-01 1.116e-01 3.046e-01 X8 X1 1.990e-07 X2 1.851e-01 X3 1.861e-01 X4 1.210e-01 X5 1.041e-01 X6 1.116e-01 X7 3.046e-01 X8 1.292e-01 -------------------------------------------------------- bushfire 38 5 Outliers: 17 [1] 7 8 9 10 11 12 28 29 30 31 32 33 34 35 36 37 38 ------------- Call: CovOgk(x = x) -> Method: Orthogonalized Gnanadesikan-Kettenring Estimator Robust Estimate of Location: V1 V2 V3 V4 V5 104.5 146.0 275.6 217.8 279.3 Robust Estimate of Covariance: V1 V2 V3 V4 V5 V1 266.8 203.2 -1380.7 -311.1 -252.2 V2 203.2 178.4 -910.9 -185.9 -155.9 V3 -1380.7 -910.9 8279.7 2035.5 1615.4 V4 -311.1 -185.9 2035.5 536.5 418.6 V5 -252.2 -155.9 1615.4 418.6 329.2 -------------------------------------------------------- ======================================================== > > proc.time() user system elapsed 0.40 0.20 0.59 rrcov/tests/tmest4.R0000644000176200001440000001031714443667016014127 0ustar liggesusers## VT::15.09.2013 - this will render the output independent ## from the version of the package suppressPackageStartupMessages(library(rrcov)) library(MASS) dodata <- function(nrep = 1, time = FALSE, full = TRUE) { domest <- function(x, xname, nrep = 1) { n <- dim(x)[1] p <- dim(x)[2] mm <- CovMest(x) crit <- log(mm@crit) ## c1 <- mm@psi@c1 ## M <- mm$psi@M xres <- sprintf("%3d %3d %12.6f\n", dim(x)[1], dim(x)[2], crit) lpad <- lname-nchar(xname) cat(pad.right(xname,lpad), xres) dist <- getDistance(mm) quantiel <- qchisq(0.975, p) ibad <- which(dist >= quantiel) names(ibad) <- NULL nbad <- length(ibad) cat("Outliers: ",nbad,"\n") if(nbad > 0) print(ibad) cat("-------------\n") show(mm) cat("--------------------------------------------------------\n") } options(digits = 5) set.seed(101) # <<-- sub-sampling algorithm now based on R's RNG and seed lname <- 20 data(heart) data(starsCYG) data(phosphor) data(stackloss) data(coleman) data(salinity) data(wood) data(hbk) data(Animals, package = "MASS") brain <- Animals[c(1:24, 26:25, 27:28),] data(milk) data(bushfire) tmp <- sys.call() cat("\nCall: ", deparse(substitute(tmp)),"\n") cat("Data Set n p c1 M LOG(det) Time\n") cat("======================================================================\n") domest(heart[, 1:2], data(heart), nrep) domest(starsCYG, data(starsCYG), nrep) domest(data.matrix(subset(phosphor, select = -plant)), data(phosphor), nrep) domest(stack.x, data(stackloss), nrep) domest(data.matrix(subset(coleman, select = -Y)), data(coleman), nrep) domest(data.matrix(subset(salinity, select = -Y)), data(salinity), nrep) domest(data.matrix(subset(wood, select = -y)), data(wood), nrep) domest(data.matrix(subset(hbk, select = -Y)), data(hbk), nrep) domest(brain, "Animals", nrep) domest(milk, data(milk), nrep) domest(bushfire, data(bushfire), nrep) cat("======================================================================\n") } # generate contaminated data using the function gendata with different # number of outliers and check if the M-estimate breaks - i.e. the # largest eigenvalue is larger than e.g. 5. # For n=50 and p=10 and d=5 the M-estimate can break for number of # outliers grater than 20. dogen <- function(){ eig <- vector("numeric",26) for(i in 0:25) { gg <- gendata(eps=i) mm <- CovMest(gg$x, t0=gg$tgood, S0=gg$sgood, arp=0.001) eig[i+1] <- ev <- getEvals(mm)[1] # cat(i, ev, "\n") stopifnot(ev < 5 || i > 20) } # plot(0:25, eig, type="l", xlab="Number of outliers", ylab="Largest Eigenvalue") } # # generate data 50x10 as multivariate normal N(0,I) and add # eps % outliers by adding d=5.0 to each component. # - if eps <0 and eps <=0.5, the number of outliers is eps*n # - if eps >= 1, it is the number of outliers # - use the center and cov of the good data as good start # - use the center and the cov of all data as a bad start # If using a good start, the M-estimate must iterate to # the good solution: the largest eigenvalue is less then e.g. 5 # gendata <- function(n=50, p=10, eps=0, d=5.0){ if(eps < 0 || eps > 0.5 && eps < 1.0 || eps > 0.5*n) stop("eps is out of range") library(MASS) x <- mvrnorm(n, rep(0,p), diag(p)) bad <- vector("numeric") nbad = if(eps < 1) eps*n else eps if(nbad > 0){ bad <- sample(n, nbad) x[bad,] <- x[bad,] + d } cov1 <- cov.wt(x) cov2 <- if(nbad <= 0) cov1 else cov.wt(x[-bad,]) list(x=x, bad=sort(bad), tgood=cov2$center, sgood=cov2$cov, tbad=cov1$center, sbad=cov1$cov) } pad.right <- function(z, pads) { ## Pads spaces to right of text padding <- paste(rep(" ", pads), collapse = "") paste(z, padding, sep = "") } ## -- now do it: dodata() dogen() #cat('Time elapsed: ', proc.time(),'\n') # for ``statistical reasons'' rrcov/tests/tmest4.Rout.save0000644000176200001440000002707214443667016015622 0ustar liggesusers R Under development (unstable) (2013-08-17 r63608) -- "Unsuffered Consequences" Copyright (C) 2013 The R Foundation for Statistical Computing Platform: i386-w64-mingw32/i386 (32-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > ## VT::15.09.2013 - this will render the output independent > ## from the version of the package > suppressPackageStartupMessages(library(rrcov)) > > library(MASS) > dodata <- function(nrep = 1, time = FALSE, full = TRUE) { + domest <- function(x, xname, nrep = 1) { + n <- dim(x)[1] + p <- dim(x)[2] + mm <- CovMest(x) + crit <- log(mm@crit) + ## c1 <- mm@psi@c1 + ## M <- mm$psi@M + + xres <- sprintf("%3d %3d %12.6f\n", dim(x)[1], dim(x)[2], crit) + lpad <- lname-nchar(xname) + cat(pad.right(xname,lpad), xres) + + dist <- getDistance(mm) + quantiel <- qchisq(0.975, p) + ibad <- which(dist >= quantiel) + names(ibad) <- NULL + nbad <- length(ibad) + cat("Outliers: ",nbad,"\n") + if(nbad > 0) + print(ibad) + cat("-------------\n") + show(mm) + cat("--------------------------------------------------------\n") + } + + options(digits = 5) + set.seed(101) # <<-- sub-sampling algorithm now based on R's RNG and seed + + lname <- 20 + + data(heart) + data(starsCYG) + data(phosphor) + data(stackloss) + data(coleman) + data(salinity) + data(wood) + data(hbk) + + data(Animals, package = "MASS") + brain <- Animals[c(1:24, 26:25, 27:28),] + data(milk) + data(bushfire) + + tmp <- sys.call() + cat("\nCall: ", deparse(substitute(tmp)),"\n") + + cat("Data Set n p c1 M LOG(det) Time\n") + cat("======================================================================\n") + domest(heart[, 1:2], data(heart), nrep) + domest(starsCYG, data(starsCYG), nrep) + domest(data.matrix(subset(phosphor, select = -plant)), data(phosphor), nrep) + domest(stack.x, data(stackloss), nrep) + domest(data.matrix(subset(coleman, select = -Y)), data(coleman), nrep) + domest(data.matrix(subset(salinity, select = -Y)), data(salinity), nrep) + domest(data.matrix(subset(wood, select = -y)), data(wood), nrep) + domest(data.matrix(subset(hbk, select = -Y)), data(hbk), nrep) + + + domest(brain, "Animals", nrep) + domest(milk, data(milk), nrep) + domest(bushfire, data(bushfire), nrep) + cat("======================================================================\n") + } > > # generate contaminated data using the function gendata with different > # number of outliers and check if the M-estimate breaks - i.e. the > # largest eigenvalue is larger than e.g. 5. > # For n=50 and p=10 and d=5 the M-estimate can break for number of > # outliers grater than 20. > dogen <- function(){ + eig <- vector("numeric",26) + for(i in 0:25) { + gg <- gendata(eps=i) + mm <- CovMest(gg$x, t0=gg$tgood, S0=gg$sgood, arp=0.001) + eig[i+1] <- ev <- getEvals(mm)[1] + # cat(i, ev, "\n") + + stopifnot(ev < 5 || i > 20) + } + # plot(0:25, eig, type="l", xlab="Number of outliers", ylab="Largest Eigenvalue") + } > > # > # generate data 50x10 as multivariate normal N(0,I) and add > # eps % outliers by adding d=5.0 to each component. > # - if eps <0 and eps <=0.5, the number of outliers is eps*n > # - if eps >= 1, it is the number of outliers > # - use the center and cov of the good data as good start > # - use the center and the cov of all data as a bad start > # If using a good start, the M-estimate must iterate to > # the good solution: the largest eigenvalue is less then e.g. 5 > # > gendata <- function(n=50, p=10, eps=0, d=5.0){ + + if(eps < 0 || eps > 0.5 && eps < 1.0 || eps > 0.5*n) + stop("eps is out of range") + + library(MASS) + + x <- mvrnorm(n, rep(0,p), diag(p)) + bad <- vector("numeric") + nbad = if(eps < 1) eps*n else eps + if(nbad > 0){ + bad <- sample(n, nbad) + x[bad,] <- x[bad,] + d + } + cov1 <- cov.wt(x) + cov2 <- if(nbad <= 0) cov1 else cov.wt(x[-bad,]) + + list(x=x, bad=sort(bad), tgood=cov2$center, sgood=cov2$cov, tbad=cov1$center, sbad=cov1$cov) + } > > pad.right <- function(z, pads) + { + ## Pads spaces to right of text + padding <- paste(rep(" ", pads), collapse = "") + paste(z, padding, sep = "") + } > > > ## -- now do it: > dodata() Call: dodata() Data Set n p c1 M LOG(det) Time ====================================================================== heart 12 2 7.160341 Outliers: 3 [1] 2 6 12 ------------- Call: CovMest(x = x) -> Method: M-Estimates Robust Estimate of Location: height weight 34.9 27.0 Robust Estimate of Covariance: height weight height 102 155 weight 155 250 -------------------------------------------------------- starsCYG 47 2 -5.994588 Outliers: 7 [1] 7 9 11 14 20 30 34 ------------- Call: CovMest(x = x) -> Method: M-Estimates Robust Estimate of Location: log.Te log.light 4.42 4.95 Robust Estimate of Covariance: log.Te log.light log.Te 0.0169 0.0587 log.light 0.0587 0.3523 -------------------------------------------------------- phosphor 18 2 8.867522 Outliers: 3 [1] 1 6 10 ------------- Call: CovMest(x = x) -> Method: M-Estimates Robust Estimate of Location: inorg organic 15.4 39.1 Robust Estimate of Covariance: inorg organic inorg 169 213 organic 213 308 -------------------------------------------------------- stackloss 21 3 7.241400 Outliers: 9 [1] 1 2 3 15 16 17 18 19 21 ------------- Call: CovMest(x = x) -> Method: M-Estimates Robust Estimate of Location: Air.Flow Water.Temp Acid.Conc. 59.5 20.8 87.3 Robust Estimate of Covariance: Air.Flow Water.Temp Acid.Conc. Air.Flow 9.34 8.69 8.52 Water.Temp 8.69 13.72 9.13 Acid.Conc. 8.52 9.13 34.54 -------------------------------------------------------- coleman 20 5 2.574752 Outliers: 7 [1] 2 6 9 10 12 13 15 ------------- Call: CovMest(x = x) -> Method: M-Estimates Robust Estimate of Location: salaryP fatherWc sstatus teacherSc motherLev 2.82 48.44 5.30 25.19 6.51 Robust Estimate of Covariance: salaryP fatherWc sstatus teacherSc motherLev salaryP 0.2850 0.1045 1.7585 0.3074 0.0355 fatherWc 0.1045 824.8305 260.7062 3.7507 17.7959 sstatus 1.7585 260.7062 105.6135 4.1140 5.7714 teacherSc 0.3074 3.7507 4.1140 0.6753 0.1563 motherLev 0.0355 17.7959 5.7714 0.1563 0.4147 -------------------------------------------------------- salinity 28 3 3.875096 Outliers: 9 [1] 3 5 10 11 15 16 17 23 24 ------------- Call: CovMest(x = x) -> Method: M-Estimates Robust Estimate of Location: X1 X2 X3 10.02 3.21 22.36 Robust Estimate of Covariance: X1 X2 X3 X1 15.353 1.990 -5.075 X2 1.990 5.210 -0.769 X3 -5.075 -0.769 2.314 -------------------------------------------------------- wood 20 5 -35.156305 Outliers: 7 [1] 4 6 7 8 11 16 19 ------------- Call: CovMest(x = x) -> Method: M-Estimates Robust Estimate of Location: x1 x2 x3 x4 x5 0.587 0.122 0.531 0.538 0.892 Robust Estimate of Covariance: x1 x2 x3 x4 x5 x1 6.45e-03 1.21e-03 2.03e-03 -3.77e-04 -1.05e-03 x2 1.21e-03 3.12e-04 8.16e-04 -3.34e-05 1.52e-05 x3 2.03e-03 8.16e-04 4.27e-03 -5.60e-04 2.27e-04 x4 -3.77e-04 -3.34e-05 -5.60e-04 1.83e-03 1.18e-03 x5 -1.05e-03 1.52e-05 2.27e-04 1.18e-03 1.78e-03 -------------------------------------------------------- hbk 75 3 1.432485 Outliers: 14 [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ------------- Call: CovMest(x = x) -> Method: M-Estimates Robust Estimate of Location: X1 X2 X3 1.54 1.78 1.69 Robust Estimate of Covariance: X1 X2 X3 X1 1.6485 0.0739 0.1709 X2 0.0739 1.6780 0.2049 X3 0.1709 0.2049 1.5584 -------------------------------------------------------- Animals 28 2 18.194822 Outliers: 10 [1] 2 6 7 9 12 14 15 16 25 28 ------------- Call: CovMest(x = x) -> Method: M-Estimates Robust Estimate of Location: body brain 18.7 64.9 Robust Estimate of Covariance: body brain body 4993 8466 brain 8466 30335 -------------------------------------------------------- milk 86 8 -25.041802 Outliers: 20 [1] 1 2 3 11 12 13 14 15 16 17 18 20 27 41 44 47 70 74 75 77 ------------- Call: CovMest(x = x) -> Method: M-Estimates Robust Estimate of Location: X1 X2 X3 X4 X5 X6 X7 X8 1.03 35.88 33.04 26.11 25.09 25.02 123.12 14.39 Robust Estimate of Covariance: X1 X2 X3 X4 X5 X6 X7 X1 4.89e-07 9.64e-05 1.83e-04 1.76e-04 1.57e-04 1.48e-04 6.53e-04 X2 9.64e-05 2.05e+00 3.38e-01 2.37e-01 1.70e-01 2.71e-01 1.91e+00 X3 1.83e-04 3.38e-01 1.16e+00 8.56e-01 8.48e-01 8.31e-01 8.85e-01 X4 1.76e-04 2.37e-01 8.56e-01 6.83e-01 6.55e-01 6.40e-01 6.91e-01 X5 1.57e-04 1.70e-01 8.48e-01 6.55e-01 6.93e-01 6.52e-01 6.90e-01 X6 1.48e-04 2.71e-01 8.31e-01 6.40e-01 6.52e-01 6.61e-01 6.95e-01 X7 6.53e-04 1.91e+00 8.85e-01 6.91e-01 6.90e-01 6.95e-01 4.40e+00 X8 5.56e-06 2.60e-01 1.98e-01 1.29e-01 1.12e-01 1.19e-01 4.12e-01 X8 X1 5.56e-06 X2 2.60e-01 X3 1.98e-01 X4 1.29e-01 X5 1.12e-01 X6 1.19e-01 X7 4.12e-01 X8 1.65e-01 -------------------------------------------------------- bushfire 38 5 23.457490 Outliers: 15 [1] 7 8 9 10 11 29 30 31 32 33 34 35 36 37 38 ------------- Call: CovMest(x = x) -> Method: M-Estimates Robust Estimate of Location: V1 V2 V3 V4 V5 107 147 263 215 277 Robust Estimate of Covariance: V1 V2 V3 V4 V5 V1 775 560 -4179 -925 -759 V2 560 478 -2494 -510 -431 V3 -4179 -2494 27433 6441 5196 V4 -925 -510 6441 1607 1276 V5 -759 -431 5196 1276 1020 -------------------------------------------------------- ====================================================================== > dogen() > #cat('Time elapsed: ', proc.time(),'\n') # for ``statistical reasons'' > > proc.time() user system elapsed 0.68 0.10 0.79 rrcov/tests/tmcd4.Rout.save0000644000176200001440000030654514443667016015422 0ustar liggesusers R Under development (unstable) (2023-03-23 r84036 ucrt) -- "Unsuffered Consequences" Copyright (C) 2023 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > ## Test the exact fit property of CovMcd > doexactfit <- function(){ + exact <-function(seed=1234){ + + set.seed(seed) + + n1 <- 45 + p <- 2 + x1 <- matrix(rnorm(p*n1),nrow=n1, ncol=p) + x1[,p] <- x1[,p] + 3 + n2 <- 55 + m1 <- 0 + m2 <- 3 + x2 <- cbind(rnorm(n2),rep(m2,n2)) + x<-rbind(x1,x2) + colnames(x) <- c("X1","X2") + x + } + print(CovMcd(exact())) + } > > dodata <- function(nrep=1, time=FALSE, short=FALSE, full=TRUE, method = c("FASTMCD","MASS", "deterministic", "exact", "MRCD")){ + ##@bdescr + ## Test the function covMcd() on the literature datasets: + ## + ## Call CovMcd() for all regression datasets available in rrcov and print: + ## - execution time (if time == TRUE) + ## - objective fucntion + ## - best subsample found (if short == false) + ## - outliers identified (with cutoff 0.975) (if short == false) + ## - estimated center and covarinance matrix if full == TRUE) + ## + ##@edescr + ## + ##@in nrep : [integer] number of repetitions to use for estimating the + ## (average) execution time + ##@in time : [boolean] whether to evaluate the execution time + ##@in short : [boolean] whether to do short output (i.e. only the + ## objective function value). If short == FALSE, + ## the best subsample and the identified outliers are + ## printed. See also the parameter full below + ##@in full : [boolean] whether to print the estimated cente and covariance matrix + ##@in method : [character] select a method: one of (FASTMCD, MASS) + + doest <- function(x, xname, nrep=1){ + n <- dim(x)[1] + p <- dim(x)[2] + if(method == "MASS"){ + mcd<-cov.mcd(x) + quan <- as.integer(floor((n + p + 1)/2)) #default: floor((n+p+1)/2) + } + else{ + mcd <- if(method=="deterministic") CovMcd(x, nsamp="deterministic", trace=FALSE) + else if(method=="exact") CovMcd(x, nsamp="exact", trace=FALSE) + else if(method=="MRCD") CovMrcd(x, trace=FALSE) + else CovMcd(x, trace=FALSE) + quan <- as.integer(mcd@quan) + } + + crit <- mcd@crit + + if(time){ + xtime <- system.time(dorep(x, nrep, method))[1]/nrep + xres <- sprintf("%3d %3d %3d %12.6f %10.3f\n", dim(x)[1], dim(x)[2], quan, crit, xtime) + } + else{ + xres <- sprintf("%3d %3d %3d %12.6f\n", dim(x)[1], dim(x)[2], quan, crit) + } + lpad<-lname-nchar(xname) + cat(pad.right(xname,lpad), xres) + + if(!short){ + cat("Best subsample: \n") + if(length(mcd@best) > 150) + cat("Too long... \n") + else + print(mcd@best) + + ibad <- which(mcd@wt==0) + names(ibad) <- NULL + nbad <- length(ibad) + cat("Outliers: ",nbad,"\n") + if(nbad > 0 & nbad < 150) + print(ibad) + else + cat("Too many to print ... \n") + if(full){ + cat("-------------\n") + show(mcd) + } + cat("--------------------------------------------------------\n") + } + } + + options(digits = 5) + set.seed(101) # <<-- sub-sampling algorithm now based on R's RNG and seed + + lname <- 20 + + ## VT::15.09.2013 - this will render the output independent + ## from the version of the package + suppressPackageStartupMessages(library(rrcov)) + + method <- match.arg(method) + if(method == "MASS") + library(MASS) + + data(Animals, package = "MASS") + brain <- Animals[c(1:24, 26:25, 27:28),] + + data(fish) + data(pottery) + data(rice) + data(un86) + data(wages) + + tmp <- sys.call() + cat("\nCall: ", deparse(substitute(tmp)),"\n") + + cat("Data Set n p Half LOG(obj) Time\n") + cat("========================================================\n") + + if(method=="exact") + { + ## only small data sets + doest(heart[, 1:2], data(heart), nrep) + doest(starsCYG, data(starsCYG), nrep) + doest(data.matrix(subset(phosphor, select = -plant)), data(phosphor), nrep) + doest(data.matrix(subset(coleman, select = -Y)), data(coleman), nrep) + doest(data.matrix(subset(salinity, select = -Y)), data(salinity), nrep) + doest(data.matrix(subset(wood, select = -y)), data(wood), nrep) + doest(brain, "Animals", nrep) + doest(lactic, data(lactic), nrep) + doest(pension, data(pension), nrep) + doest(data.matrix(subset(vaso, select = -Y)), data(vaso), nrep) + doest(stack.x, data(stackloss), nrep) + doest(pilot, data(pilot), nrep) + } else + { + doest(heart[, 1:2], data(heart), nrep) + doest(starsCYG, data(starsCYG), nrep) + doest(data.matrix(subset(phosphor, select = -plant)), data(phosphor), nrep) + doest(stack.x, data(stackloss), nrep) + doest(data.matrix(subset(coleman, select = -Y)), data(coleman), nrep) + doest(data.matrix(subset(salinity, select = -Y)), data(salinity), nrep) + doest(data.matrix(subset(wood, select = -y)), data(wood), nrep) + doest(data.matrix(subset(hbk, select = -Y)),data(hbk), nrep) + + doest(brain, "Animals", nrep) + ## doest(milk, data(milk), nrep) # difference between 386 and x64 + doest(bushfire, data(bushfire), nrep) + + doest(lactic, data(lactic), nrep) + doest(pension, data(pension), nrep) + ## doest(pilot, data(pilot), nrep) # difference between 386 and x64 + + if(method != "MRCD") # these two are quite slow for MRCD, especially the second one + { + doest(radarImage, data(radarImage), nrep) + doest(NOxEmissions, data(NOxEmissions), nrep) + } + + doest(data.matrix(subset(vaso, select = -Y)), data(vaso), nrep) + doest(data.matrix(subset(wagnerGrowth, select = -Period)), data(wagnerGrowth), nrep) + + doest(data.matrix(subset(fish, select = -Species)), data(fish), nrep) + doest(data.matrix(subset(pottery, select = -origin)), data(pottery), nrep) + doest(rice, data(rice), nrep) + doest(un86, data(un86), nrep) + + doest(wages, data(wages), nrep) + + ## from package 'datasets' + doest(airquality[,1:4], data(airquality), nrep) + doest(attitude, data(attitude), nrep) + doest(attenu, data(attenu), nrep) + doest(USJudgeRatings, data(USJudgeRatings), nrep) + doest(USArrests, data(USArrests), nrep) + doest(longley, data(longley), nrep) + doest(Loblolly, data(Loblolly), nrep) + doest(quakes[,1:4], data(quakes), nrep) + } + cat("========================================================\n") + } > > dogen <- function(nrep=1, eps=0.49, method=c("FASTMCD", "MASS")){ + + doest <- function(x, nrep=1){ + gc() + xtime <- system.time(dorep(x, nrep, method))[1]/nrep + cat(sprintf("%6d %3d %10.2f\n", dim(x)[1], dim(x)[2], xtime)) + xtime + } + + set.seed(1234) + + ## VT::15.09.2013 - this will render the output independent + ## from the version of the package + suppressPackageStartupMessages(library(rrcov)) + + library(MASS) + method <- match.arg(method) + + ap <- c(2, 5, 10, 20, 30) + an <- c(100, 500, 1000, 10000, 50000) + + tottime <- 0 + cat(" n p Time\n") + cat("=====================\n") + for(i in 1:length(an)) { + for(j in 1:length(ap)) { + n <- an[i] + p <- ap[j] + if(5*p <= n){ + xx <- gendata(n, p, eps) + X <- xx$X + tottime <- tottime + doest(X, nrep) + } + } + } + + cat("=====================\n") + cat("Total time: ", tottime*nrep, "\n") + } > > docheck <- function(n, p, eps){ + xx <- gendata(n,p,eps) + mcd <- CovMcd(xx$X) + check(mcd, xx$xind) + } > > check <- function(mcd, xind){ + ## check if mcd is robust w.r.t xind, i.e. check how many of xind + ## did not get zero weight + mymatch <- xind %in% which(mcd@wt == 0) + length(xind) - length(which(mymatch)) + } > > dorep <- function(x, nrep=1, method=c("FASTMCD","MASS", "deterministic", "exact", "MRCD")){ + + method <- match.arg(method) + for(i in 1:nrep) + if(method == "MASS") + cov.mcd(x) + else + { + if(method=="deterministic") CovMcd(x, nsamp="deterministic", trace=FALSE) + else if(method=="exact") CovMcd(x, nsamp="exact", trace=FALSE) + else if(method=="MRCD") CovMrcd(x, trace=FALSE) + else CovMcd(x, trace=FALSE) + } + } > > #### gendata() #### > # Generates a location contaminated multivariate > # normal sample of n observations in p dimensions > # (1-eps)*Np(0,Ip) + eps*Np(m,Ip) > # where > # m = (b,b,...,b) > # Defaults: eps=0 and b=10 > # > gendata <- function(n,p,eps=0,b=10){ + + if(missing(n) || missing(p)) + stop("Please specify (n,p)") + if(eps < 0 || eps >= 0.5) + stop(message="eps must be in [0,0.5)") + X <- mvrnorm(n,rep(0,p),diag(1,nrow=p,ncol=p)) + nbad <- as.integer(eps * n) + if(nbad > 0){ + Xbad <- mvrnorm(nbad,rep(b,p),diag(1,nrow=p,ncol=p)) + xind <- sample(n,nbad) + X[xind,] <- Xbad + } + list(X=X, xind=xind) + } > > pad.right <- function(z, pads) + { + ### Pads spaces to right of text + padding <- paste(rep(" ", pads), collapse = "") + paste(z, padding, sep = "") + } > > whatis<-function(x){ + if(is.data.frame(x)) + cat("Type: data.frame\n") + else if(is.matrix(x)) + cat("Type: matrix\n") + else if(is.vector(x)) + cat("Type: vector\n") + else + cat("Type: don't know\n") + } > > ## VT::15.09.2013 - this will render the output independent > ## from the version of the package > suppressPackageStartupMessages(library(rrcov)) > > dodata() Call: dodata() Data Set n p Half LOG(obj) Time ======================================================== heart 12 2 7 5.678742 Best subsample: [1] 1 3 4 5 7 9 11 Outliers: 0 Too many to print ... ------------- Call: CovMcd(x = x, trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=7); nsamp = 500; (n,k)mini = (300,5) Robust Estimate of Location: height weight 38.3 33.1 Robust Estimate of Covariance: height weight height 135 259 weight 259 564 -------------------------------------------------------- starsCYG 47 2 25 -8.031215 Best subsample: [1] 1 2 4 6 8 10 12 13 16 24 25 26 28 32 33 37 38 39 40 41 42 43 44 45 46 Outliers: 7 [1] 7 9 11 14 20 30 34 ------------- Call: CovMcd(x = x, trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=25); nsamp = 500; (n,k)mini = (300,5) Robust Estimate of Location: log.Te log.light 4.41 4.95 Robust Estimate of Covariance: log.Te log.light log.Te 0.0132 0.0394 log.light 0.0394 0.2743 -------------------------------------------------------- phosphor 18 2 10 6.878847 Best subsample: [1] 3 5 8 9 11 12 13 14 15 17 Outliers: 3 [1] 1 6 10 ------------- Call: CovMcd(x = x, trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=10); nsamp = 500; (n,k)mini = (300,5) Robust Estimate of Location: inorg organic 13.4 38.8 Robust Estimate of Covariance: inorg organic inorg 129 130 organic 130 182 -------------------------------------------------------- stackloss 21 3 12 5.472581 Best subsample: [1] 4 5 6 7 8 9 10 11 12 13 14 20 Outliers: 9 [1] 1 2 3 15 16 17 18 19 21 ------------- Call: CovMcd(x = x, trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=12); nsamp = 500; (n,k)mini = (300,5) Robust Estimate of Location: Air.Flow Water.Temp Acid.Conc. 59.5 20.8 87.3 Robust Estimate of Covariance: Air.Flow Water.Temp Acid.Conc. Air.Flow 6.29 5.85 5.74 Water.Temp 5.85 9.23 6.14 Acid.Conc. 5.74 6.14 23.25 -------------------------------------------------------- coleman 20 5 13 1.286808 Best subsample: [1] 2 3 4 5 7 8 12 13 14 16 17 19 20 Outliers: 7 [1] 1 6 9 10 11 15 18 ------------- Call: CovMcd(x = x, trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=13); nsamp = 500; (n,k)mini = (300,5) Robust Estimate of Location: salaryP fatherWc sstatus teacherSc motherLev 2.76 48.38 6.12 25.00 6.40 Robust Estimate of Covariance: salaryP fatherWc sstatus teacherSc motherLev salaryP 0.253 1.786 -0.266 0.151 0.075 fatherWc 1.786 1303.382 330.496 12.604 34.503 sstatus -0.266 330.496 119.888 3.833 10.131 teacherSc 0.151 12.604 3.833 0.785 0.555 motherLev 0.075 34.503 10.131 0.555 1.043 -------------------------------------------------------- salinity 28 3 16 1.326364 Best subsample: [1] 1 2 6 7 8 12 13 14 18 20 21 22 25 26 27 28 Outliers: 4 [1] 5 16 23 24 ------------- Call: CovMcd(x = x, trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=16); nsamp = 500; (n,k)mini = (300,5) Robust Estimate of Location: X1 X2 X3 10.08 2.78 22.78 Robust Estimate of Covariance: X1 X2 X3 X1 10.44 1.01 -3.19 X2 1.01 3.83 -1.44 X3 -3.19 -1.44 2.39 -------------------------------------------------------- wood 20 5 13 -36.270094 Best subsample: [1] 1 2 3 5 9 10 12 13 14 15 17 18 20 Outliers: 7 [1] 4 6 7 8 11 16 19 ------------- Call: CovMcd(x = x, trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=13); nsamp = 500; (n,k)mini = (300,5) Robust Estimate of Location: x1 x2 x3 x4 x5 0.587 0.122 0.531 0.538 0.892 Robust Estimate of Covariance: x1 x2 x3 x4 x5 x1 1.00e-02 1.88e-03 3.15e-03 -5.86e-04 -1.63e-03 x2 1.88e-03 4.85e-04 1.27e-03 -5.20e-05 2.36e-05 x3 3.15e-03 1.27e-03 6.63e-03 -8.71e-04 3.52e-04 x4 -5.86e-04 -5.20e-05 -8.71e-04 2.85e-03 1.83e-03 x5 -1.63e-03 2.36e-05 3.52e-04 1.83e-03 2.77e-03 -------------------------------------------------------- hbk 75 3 39 -1.047858 Best subsample: [1] 15 16 17 18 19 20 21 22 23 24 26 27 31 32 33 35 36 37 38 40 43 49 50 51 54 [26] 55 56 58 59 61 63 64 66 67 70 71 72 73 74 Outliers: 14 [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ------------- Call: CovMcd(x = x, trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=39); nsamp = 500; (n,k)mini = (300,5) Robust Estimate of Location: X1 X2 X3 1.54 1.78 1.69 Robust Estimate of Covariance: X1 X2 X3 X1 1.227 0.055 0.127 X2 0.055 1.249 0.153 X3 0.127 0.153 1.160 -------------------------------------------------------- Animals 28 2 15 14.555543 Best subsample: [1] 1 3 4 5 10 11 17 18 19 20 21 22 23 26 27 Outliers: 14 [1] 2 6 7 8 9 12 13 14 15 16 23 24 25 28 ------------- Call: CovMcd(x = x, trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=15); nsamp = 500; (n,k)mini = (300,5) Robust Estimate of Location: body brain 18.7 64.9 Robust Estimate of Covariance: body brain body 929 1576 brain 1576 5646 -------------------------------------------------------- bushfire 38 5 22 18.135810 Best subsample: [1] 1 2 3 4 5 6 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 Outliers: 16 [1] 7 8 9 10 11 12 29 30 31 32 33 34 35 36 37 38 ------------- Call: CovMcd(x = x, trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=22); nsamp = 500; (n,k)mini = (300,5) Robust Estimate of Location: V1 V2 V3 V4 V5 105 147 274 218 279 Robust Estimate of Covariance: V1 V2 V3 V4 V5 V1 346 268 -1692 -381 -311 V2 268 236 -1125 -230 -194 V3 -1692 -1125 9993 2455 1951 V4 -381 -230 2455 647 505 V5 -311 -194 1951 505 398 -------------------------------------------------------- lactic 20 2 11 0.359580 Best subsample: [1] 1 2 3 4 5 7 8 9 10 11 12 Outliers: 4 [1] 17 18 19 20 ------------- Call: CovMcd(x = x, trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=11); nsamp = 500; (n,k)mini = (300,5) Robust Estimate of Location: X Y 3.86 5.01 Robust Estimate of Covariance: X Y X 10.6 14.6 Y 14.6 21.3 -------------------------------------------------------- pension 18 2 10 16.675508 Best subsample: [1] 1 2 3 4 5 6 8 9 11 12 Outliers: 5 [1] 14 15 16 17 18 ------------- Call: CovMcd(x = x, trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=10); nsamp = 500; (n,k)mini = (300,5) Robust Estimate of Location: Income Reserves 52.3 560.9 Robust Estimate of Covariance: Income Reserves Income 1420 11932 Reserves 11932 208643 -------------------------------------------------------- radarImage 1573 5 789 36.694425 Best subsample: Too long... Outliers: 117 [1] 164 237 238 242 261 262 351 450 451 462 480 481 509 516 535 [16] 542 572 597 620 643 654 669 697 737 802 803 804 818 832 833 [31] 834 862 863 864 892 900 939 989 1029 1064 1123 1132 1145 1202 1223 [46] 1224 1232 1233 1249 1250 1258 1259 1267 1303 1347 1357 1368 1375 1376 1393 [61] 1394 1402 1403 1411 1417 1419 1420 1428 1436 1443 1444 1453 1470 1479 1487 [76] 1492 1504 1510 1511 1512 1517 1518 1519 1520 1521 1522 1525 1526 1527 1528 [91] 1530 1532 1534 1543 1544 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 [106] 1557 1558 1561 1562 1564 1565 1566 1567 1569 1570 1571 1573 ------------- Call: CovMcd(x = x, trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=789); nsamp = 500; (n,k)mini = (300,5) Robust Estimate of Location: X.coord Y.coord Band.1 Band.2 Band.3 52.80 35.12 6.77 18.44 8.90 Robust Estimate of Covariance: X.coord Y.coord Band.1 Band.2 Band.3 X.coord 123.6 23.0 -361.9 -197.1 -22.5 Y.coord 23.0 400.6 34.3 -191.1 -39.1 Band.1 -361.9 34.3 27167.9 8178.8 473.7 Band.2 -197.1 -191.1 8178.8 26021.8 952.4 Band.3 -22.5 -39.1 473.7 952.4 4458.4 -------------------------------------------------------- NOxEmissions 8088 4 4046 2.474539 Best subsample: Too long... Outliers: 2156 Too many to print ... ------------- Call: CovMcd(x = x, trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=4046); nsamp = 500; (n,k)mini = (300,5) Robust Estimate of Location: julday LNOx LNOxEm sqrtWS 168.19 4.73 7.91 1.37 Robust Estimate of Covariance: julday LNOx LNOxEm sqrtWS julday 9180.6297 12.0306 0.7219 -10.1273 LNOx 12.0306 0.4721 0.1418 -0.1526 LNOxEm 0.7219 0.1418 0.2516 0.0438 sqrtWS -10.1273 -0.1526 0.0438 0.2073 -------------------------------------------------------- vaso 39 2 21 -3.972244 Best subsample: [1] 3 4 8 14 18 19 20 21 22 23 24 25 26 27 28 33 34 35 37 38 39 Outliers: 4 [1] 1 2 17 31 ------------- Call: CovMcd(x = x, trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=21); nsamp = 500; (n,k)mini = (300,5) Robust Estimate of Location: Volume Rate 1.16 1.72 Robust Estimate of Covariance: Volume Rate Volume 0.313 -0.167 Rate -0.167 0.728 -------------------------------------------------------- wagnerGrowth 63 6 35 6.572208 Best subsample: [1] 2 3 4 5 6 7 9 10 11 12 13 14 16 17 18 20 23 25 27 31 32 35 36 38 44 [26] 48 51 52 53 54 55 56 57 60 62 Outliers: 13 [1] 1 8 15 21 22 28 29 33 42 43 46 50 63 ------------- Call: CovMcd(x = x, trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=35); nsamp = 500; (n,k)mini = (300,5) Robust Estimate of Location: Region PA GPA HS GHS y 11.00 33.66 -2.00 2.48 0.31 7.48 Robust Estimate of Covariance: Region PA GPA HS GHS y Region 35.5615 17.9337 -0.5337 -0.9545 -0.3093 -14.0090 PA 17.9337 27.7333 -4.9017 -1.4174 0.0343 -28.7040 GPA -0.5337 -4.9017 5.3410 0.2690 -0.1484 4.0006 HS -0.9545 -1.4174 0.2690 0.8662 -0.0454 2.9024 GHS -0.3093 0.0343 -0.1484 -0.0454 0.1772 0.7457 y -14.0090 -28.7040 4.0006 2.9024 0.7457 82.6877 -------------------------------------------------------- fish 159 6 82 8.879005 Best subsample: [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [20] 20 21 22 23 24 25 26 27 28 30 32 35 36 37 42 43 44 45 46 [39] 47 48 49 50 51 52 53 54 55 56 57 58 59 60 107 109 110 111 113 [58] 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 [77] 134 135 136 137 138 139 Outliers: 63 [1] 30 39 40 41 42 62 63 64 65 66 68 69 70 73 74 75 76 77 78 [20] 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 [39] 98 99 100 101 102 103 104 105 141 143 144 145 147 148 149 150 151 152 153 [58] 154 155 156 157 158 159 ------------- Call: CovMcd(x = x, trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=82); nsamp = 500; (n,k)mini = (300,5) Robust Estimate of Location: Weight Length1 Length2 Length3 Height Width 329.9 24.5 26.6 29.7 31.1 14.7 Robust Estimate of Covariance: Weight Length1 Length2 Length3 Height Width Weight 69082.99 1477.81 1613.64 1992.62 1439.32 -62.12 Length1 1477.81 34.68 37.61 45.51 28.82 -1.31 Length2 1613.64 37.61 40.88 49.52 31.81 -1.40 Length3 1992.62 45.51 49.52 61.16 42.65 -2.25 Height 1439.32 28.82 31.81 42.65 46.74 -2.82 Width -62.12 -1.31 -1.40 -2.25 -2.82 1.01 -------------------------------------------------------- pottery 27 6 17 -10.586933 Best subsample: [1] 1 2 4 5 6 9 10 11 13 14 15 19 20 21 22 26 27 Outliers: 9 [1] 3 8 12 16 17 18 23 24 25 ------------- Call: CovMcd(x = x, trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=17); nsamp = 500; (n,k)mini = (300,5) Robust Estimate of Location: SI AL FE MG CA TI 54.983 15.206 9.700 3.817 5.211 0.859 Robust Estimate of Covariance: SI AL FE MG CA TI SI 20.58227 2.28743 -0.02039 2.12648 -1.80227 0.08821 AL 2.28743 4.03605 -0.63021 -2.49966 0.20842 -0.02038 FE -0.02039 -0.63021 0.27803 0.53382 -0.35125 0.01427 MG 2.12648 -2.49966 0.53382 2.79561 -0.15786 0.02847 CA -1.80227 0.20842 -0.35125 -0.15786 1.23240 -0.03465 TI 0.08821 -0.02038 0.01427 0.02847 -0.03465 0.00175 -------------------------------------------------------- rice 105 6 56 -14.463986 Best subsample: [1] 2 4 6 8 10 12 15 18 21 22 24 29 30 31 32 33 34 36 37 [20] 38 41 44 45 47 51 52 53 54 55 59 61 65 67 68 69 70 72 76 [39] 78 79 80 81 82 83 84 85 86 92 93 94 95 97 98 99 102 105 Outliers: 13 [1] 9 14 19 28 40 42 49 58 62 71 75 77 89 ------------- Call: CovMcd(x = x, trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=56); nsamp = 500; (n,k)mini = (300,5) Robust Estimate of Location: Favor Appearance Taste Stickiness -0.2731 0.0600 -0.1468 0.0646 Toughness Overall_evaluation 0.0894 -0.2192 Robust Estimate of Covariance: Favor Appearance Taste Stickiness Toughness Favor 0.388 0.323 0.393 0.389 -0.195 Appearance 0.323 0.503 0.494 0.494 -0.270 Taste 0.393 0.494 0.640 0.629 -0.361 Stickiness 0.389 0.494 0.629 0.815 -0.486 Toughness -0.195 -0.270 -0.361 -0.486 0.451 Overall_evaluation 0.471 0.575 0.723 0.772 -0.457 Overall_evaluation Favor 0.471 Appearance 0.575 Taste 0.723 Stickiness 0.772 Toughness -0.457 Overall_evaluation 0.882 -------------------------------------------------------- un86 73 7 40 17.009322 Best subsample: [1] 1 2 9 10 12 14 16 17 18 20 23 24 26 27 31 32 37 39 41 42 45 47 48 49 50 [26] 51 52 55 56 60 61 62 63 64 65 67 70 71 72 73 Outliers: 30 [1] 3 4 5 6 7 8 11 13 15 19 21 22 28 29 30 34 35 36 38 40 43 44 46 53 54 [26] 58 59 66 68 69 ------------- Call: CovMcd(x = x, trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=40); nsamp = 500; (n,k)mini = (300,5) Robust Estimate of Location: POP MOR CAR DR GNP DEN TB 20.740 71.023 6.435 0.817 1.146 56.754 0.441 Robust Estimate of Covariance: POP MOR CAR DR GNP DEN POP 582.4034 224.9343 -12.6722 -1.6729 -3.3664 226.1952 MOR 224.9343 2351.3907 -286.9504 -32.0743 -35.5649 -527.4684 CAR -12.6722 -286.9504 58.1190 5.7393 6.6365 83.6180 DR -1.6729 -32.0743 5.7393 0.8339 0.5977 12.1938 GNP -3.3664 -35.5649 6.6365 0.5977 1.4175 13.0709 DEN 226.1952 -527.4684 83.6180 12.1938 13.0709 2041.5809 TB 0.4002 -1.1807 0.2701 0.0191 0.0058 -0.9346 TB POP 0.4002 MOR -1.1807 CAR 0.2701 DR 0.0191 GNP 0.0058 DEN -0.9346 TB 0.0184 -------------------------------------------------------- wages 39 10 19 22.994272 Best subsample: [1] 1 2 6 7 8 9 10 11 12 13 14 15 17 18 19 25 26 27 28 Outliers: 9 [1] 4 5 6 24 28 30 32 33 34 ------------- Call: CovMcd(x = x, trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=19); nsamp = 500; (n,k)mini = (300,5) Robust Estimate of Location: HRS RATE ERSP ERNO NEIN ASSET AGE DEP 2153.37 2.87 1129.16 297.53 360.58 6876.58 39.48 2.36 RACE SCHOOL 38.88 10.17 Robust Estimate of Covariance: HRS RATE ERSP ERNO NEIN ASSET HRS 6.12e+03 1.73e+01 -1.67e+03 -2.06e+03 9.10e+03 2.02e+05 RATE 1.73e+01 2.52e-01 2.14e+01 -3.54e+00 5.85e+01 1.37e+03 ERSP -1.67e+03 2.14e+01 1.97e+04 7.76e+01 -1.71e+03 -1.41e+04 ERNO -2.06e+03 -3.54e+00 7.76e+01 2.06e+03 -2.02e+03 -4.83e+04 NEIN 9.10e+03 5.85e+01 -1.71e+03 -2.02e+03 2.02e+04 4.54e+05 ASSET 2.02e+05 1.37e+03 -1.41e+04 -4.83e+04 4.54e+05 1.03e+07 AGE -6.29e+01 -2.61e-01 4.83e+00 2.44e+01 -1.08e+02 -2.46e+03 DEP -6.17e+00 -7.05e-02 -2.13e+01 2.29e+00 -1.30e+01 -3.16e+02 RACE -2.17e+03 -9.46e+00 7.19e+02 5.59e+02 -3.95e+03 -8.77e+04 SCHOOL 7.12e+01 5.87e-01 5.39e+01 -2.14e+01 1.63e+02 3.79e+03 AGE DEP RACE SCHOOL HRS -6.29e+01 -6.17e+00 -2.17e+03 7.12e+01 RATE -2.61e-01 -7.05e-02 -9.46e+00 5.87e-01 ERSP 4.83e+00 -2.13e+01 7.19e+02 5.39e+01 ERNO 2.44e+01 2.29e+00 5.59e+02 -2.14e+01 NEIN -1.08e+02 -1.30e+01 -3.95e+03 1.63e+02 ASSET -2.46e+03 -3.16e+02 -8.77e+04 3.79e+03 AGE 1.01e+00 7.03e-02 2.39e+01 -9.52e-01 DEP 7.03e-02 4.62e-02 2.72e+00 -1.94e-01 RACE 2.39e+01 2.72e+00 8.74e+02 -3.09e+01 SCHOOL -9.52e-01 -1.94e-01 -3.09e+01 1.62e+00 -------------------------------------------------------- airquality 153 4 58 18.213499 Best subsample: [1] 3 22 24 25 28 29 32 33 35 36 37 38 39 40 41 42 43 44 46 [20] 47 48 49 50 52 56 57 58 59 60 64 66 67 68 69 71 72 73 74 [39] 76 78 80 82 83 84 86 87 89 90 91 92 93 94 95 97 98 105 109 [58] 110 Outliers: 14 [1] 8 9 15 18 20 21 23 24 28 30 48 62 117 148 ------------- Call: CovMcd(x = x, trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=58); nsamp = 500; (n,k)mini = (300,5) Robust Estimate of Location: Ozone Solar.R Wind Temp 43.2 192.9 9.6 80.5 Robust Estimate of Covariance: Ozone Solar.R Wind Temp Ozone 959.69 771.68 -60.92 198.38 Solar.R 771.68 7089.72 -1.72 95.75 Wind -60.92 -1.72 10.71 -11.96 Temp 198.38 95.75 -11.96 62.78 -------------------------------------------------------- attitude 30 7 19 24.442803 Best subsample: [1] 2 3 4 5 7 8 10 12 15 17 19 20 22 23 25 27 28 29 30 Outliers: 10 [1] 1 6 9 13 14 16 18 21 24 26 ------------- Call: CovMcd(x = x, trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=19); nsamp = 500; (n,k)mini = (300,5) Robust Estimate of Location: rating complaints privileges learning raises critical 67.1 68.0 52.4 57.6 67.2 77.4 advance 43.4 Robust Estimate of Covariance: rating complaints privileges learning raises critical advance rating 169.34 127.83 40.48 110.26 91.71 -3.59 53.84 complaints 127.83 156.80 52.65 110.97 96.56 7.27 76.03 privileges 40.48 52.65 136.91 92.38 69.00 9.53 87.98 learning 110.26 110.97 92.38 157.77 112.92 6.74 75.51 raises 91.71 96.56 69.00 112.92 112.79 4.91 70.22 critical -3.59 7.27 9.53 6.74 4.91 52.25 15.00 advance 53.84 76.03 87.98 75.51 70.22 15.00 93.11 -------------------------------------------------------- attenu 182 5 86 6.440834 Best subsample: [1] 68 69 70 71 72 73 74 75 76 77 79 82 83 84 85 86 87 88 89 [20] 90 91 92 101 102 103 104 106 107 109 110 111 112 113 114 115 116 117 118 [39] 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 [58] 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 [77] 157 158 159 160 161 162 163 164 165 166 Outliers: 61 [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [20] 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 36 37 38 39 [39] 40 45 46 47 54 55 56 57 58 59 60 61 64 65 82 97 98 100 101 [58] 102 103 104 105 ------------- Call: CovMcd(x = x, trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=86); nsamp = 500; (n,k)mini = (300,5) Robust Estimate of Location: event mag station dist accel 18.624 5.752 67.861 22.770 0.141 Robust Estimate of Covariance: event mag station dist accel event 1.64e+01 -1.22e+00 5.59e+01 9.98e+00 -8.37e-02 mag -1.22e+00 4.13e-01 -3.19e+00 1.35e+00 1.22e-02 station 5.59e+01 -3.19e+00 1.03e+03 7.00e+01 5.56e-01 dist 9.98e+00 1.35e+00 7.00e+01 2.21e+02 -9.24e-01 accel -8.37e-02 1.22e-02 5.56e-01 -9.24e-01 9.62e-03 -------------------------------------------------------- USJudgeRatings 43 12 28 -47.889993 Best subsample: [1] 1 2 3 4 6 9 10 11 15 16 17 18 19 22 24 25 26 27 28 29 32 33 34 36 37 [26] 38 41 43 Outliers: 14 [1] 5 7 8 12 13 14 20 21 23 30 31 35 40 42 ------------- Call: CovMcd(x = x, trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=28); nsamp = 500; (n,k)mini = (300,5) Robust Estimate of Location: CONT INTG DMNR DILG CFMG DECI PREP FAMI ORAL WRIT PHYS RTEN 7.40 8.19 7.80 7.96 7.74 7.82 7.74 7.73 7.57 7.63 8.25 7.94 Robust Estimate of Covariance: CONT INTG DMNR DILG CFMG DECI PREP FAMI ORAL CONT 0.852 -0.266 -0.422 -0.155 -0.049 -0.074 -0.117 -0.119 -0.177 INTG -0.266 0.397 0.537 0.406 0.340 0.325 0.404 0.409 0.430 DMNR -0.422 0.537 0.824 0.524 0.458 0.437 0.520 0.504 0.569 DILG -0.155 0.406 0.524 0.486 0.426 0.409 0.506 0.515 0.511 CFMG -0.049 0.340 0.458 0.426 0.427 0.403 0.466 0.476 0.478 DECI -0.074 0.325 0.437 0.409 0.403 0.396 0.449 0.462 0.460 PREP -0.117 0.404 0.520 0.506 0.466 0.449 0.552 0.565 0.551 FAMI -0.119 0.409 0.504 0.515 0.476 0.462 0.565 0.594 0.571 ORAL -0.177 0.430 0.569 0.511 0.478 0.460 0.551 0.571 0.575 WRIT -0.159 0.427 0.549 0.515 0.480 0.461 0.556 0.580 0.574 PHYS -0.184 0.269 0.362 0.308 0.298 0.307 0.335 0.358 0.369 RTEN -0.260 0.472 0.642 0.519 0.467 0.455 0.539 0.554 0.573 WRIT PHYS RTEN CONT -0.159 -0.184 -0.260 INTG 0.427 0.269 0.472 DMNR 0.549 0.362 0.642 DILG 0.515 0.308 0.519 CFMG 0.480 0.298 0.467 DECI 0.461 0.307 0.455 PREP 0.556 0.335 0.539 FAMI 0.580 0.358 0.554 ORAL 0.574 0.369 0.573 WRIT 0.580 0.365 0.567 PHYS 0.365 0.300 0.378 RTEN 0.567 0.378 0.615 -------------------------------------------------------- USArrests 50 4 27 15.391648 Best subsample: [1] 4 7 9 12 13 14 15 16 19 21 23 26 27 29 30 32 34 35 36 38 41 42 43 45 46 [26] 49 50 Outliers: 11 [1] 2 3 5 6 10 18 24 28 33 37 47 ------------- Call: CovMcd(x = x, trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=27); nsamp = 500; (n,k)mini = (300,5) Robust Estimate of Location: Murder Assault UrbanPop Rape 6.71 145.42 65.06 17.88 Robust Estimate of Covariance: Murder Assault UrbanPop Rape Murder 16.1 269.3 20.3 25.2 Assault 269.3 6613.0 567.8 453.7 UrbanPop 20.3 567.8 225.4 47.7 Rape 25.2 453.7 47.7 50.9 -------------------------------------------------------- longley 16 7 12 12.747678 Best subsample: [1] 5 6 7 8 9 10 11 12 13 14 15 16 Outliers: 4 [1] 1 2 3 4 ------------- Call: CovMcd(x = x, trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=12); nsamp = 500; (n,k)mini = (300,5) Robust Estimate of Location: GNP.deflator GNP Unemployed Armed.Forces Population 106.5 430.6 328.2 295.0 120.2 Year Employed 1956.5 66.9 Robust Estimate of Covariance: GNP.deflator GNP Unemployed Armed.Forces Population GNP.deflator 108.5 1039.9 1231.9 -465.6 81.4 GNP 1039.9 10300.0 11161.6 -4277.6 803.4 Unemployed 1231.9 11161.6 19799.4 -5805.6 929.1 Armed.Forces -465.6 -4277.6 -5805.6 2805.5 -327.4 Population 81.4 803.4 929.1 -327.4 63.5 Year 51.6 504.3 595.6 -216.7 39.7 Employed 34.2 344.1 323.6 -149.5 26.2 Year Employed GNP.deflator 51.6 34.2 GNP 504.3 344.1 Unemployed 595.6 323.6 Armed.Forces -216.7 -149.5 Population 39.7 26.2 Year 25.1 16.7 Employed 16.7 12.4 -------------------------------------------------------- Loblolly 84 3 44 4.898174 Best subsample: [1] 1 2 4 7 8 10 13 14 19 20 21 25 26 28 31 32 33 34 37 38 39 40 43 44 45 [26] 46 49 50 51 55 56 58 61 62 64 67 68 69 73 74 75 79 80 81 Outliers: 31 [1] 5 6 11 12 15 17 18 23 24 29 30 35 36 41 42 47 48 53 54 59 60 65 66 70 71 [26] 72 76 77 78 83 84 ------------- Call: CovMcd(x = x, trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=44); nsamp = 500; (n,k)mini = (300,5) Robust Estimate of Location: height age Seed 20.44 8.19 7.72 Robust Estimate of Covariance: height age Seed height 247.8 79.5 11.9 age 79.5 25.7 3.0 Seed 11.9 3.0 17.1 -------------------------------------------------------- quakes 1000 4 502 8.274369 Best subsample: Too long... Outliers: 265 Too many to print ... ------------- Call: CovMcd(x = x, trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=502); nsamp = 500; (n,k)mini = (300,5) Robust Estimate of Location: lat long depth mag -21.31 182.48 361.35 4.54 Robust Estimate of Covariance: lat long depth mag lat 1.47e+01 3.53e+00 1.34e+02 -2.52e-01 long 3.53e+00 4.55e+00 -3.63e+02 4.36e-02 depth 1.34e+02 -3.63e+02 4.84e+04 -1.29e+01 mag -2.52e-01 4.36e-02 -1.29e+01 1.38e-01 -------------------------------------------------------- ======================================================== > dodata(method="deterministic") Call: dodata(method = "deterministic") Data Set n p Half LOG(obj) Time ======================================================== heart 12 2 7 5.678742 Best subsample: [1] 1 3 4 5 7 9 11 Outliers: 0 Too many to print ... ------------- Call: CovMcd(x = x, nsamp = "deterministic", trace = FALSE) -> Method: Deterministic MCD(alpha=0.5 ==> h=7) Robust Estimate of Location: height weight 38.3 33.1 Robust Estimate of Covariance: height weight height 135 259 weight 259 564 -------------------------------------------------------- starsCYG 47 2 25 -8.028718 Best subsample: [1] 1 6 10 12 13 16 23 24 25 26 28 31 32 33 37 38 39 40 41 42 43 44 45 46 47 Outliers: 7 [1] 7 9 11 14 20 30 34 ------------- Call: CovMcd(x = x, nsamp = "deterministic", trace = FALSE) -> Method: Deterministic MCD(alpha=0.5 ==> h=25) Robust Estimate of Location: log.Te log.light 4.41 4.95 Robust Estimate of Covariance: log.Te log.light log.Te 0.0132 0.0394 log.light 0.0394 0.2743 -------------------------------------------------------- phosphor 18 2 10 7.732906 Best subsample: [1] 2 4 5 7 8 9 11 12 14 16 Outliers: 1 [1] 6 ------------- Call: CovMcd(x = x, nsamp = "deterministic", trace = FALSE) -> Method: Deterministic MCD(alpha=0.5 ==> h=10) Robust Estimate of Location: inorg organic 12.5 40.8 Robust Estimate of Covariance: inorg organic inorg 124 101 organic 101 197 -------------------------------------------------------- stackloss 21 3 12 6.577286 Best subsample: [1] 4 5 6 7 8 9 11 13 16 18 19 20 Outliers: 2 [1] 1 2 ------------- Call: CovMcd(x = x, nsamp = "deterministic", trace = FALSE) -> Method: Deterministic MCD(alpha=0.5 ==> h=12) Robust Estimate of Location: Air.Flow Water.Temp Acid.Conc. 58.4 20.5 86.1 Robust Estimate of Covariance: Air.Flow Water.Temp Acid.Conc. Air.Flow 56.28 13.33 26.68 Water.Temp 13.33 8.28 6.98 Acid.Conc. 26.68 6.98 37.97 -------------------------------------------------------- coleman 20 5 13 2.149184 Best subsample: [1] 3 4 5 7 8 12 13 14 16 17 18 19 20 Outliers: 2 [1] 6 10 ------------- Call: CovMcd(x = x, nsamp = "deterministic", trace = FALSE) -> Method: Deterministic MCD(alpha=0.5 ==> h=13) Robust Estimate of Location: salaryP fatherWc sstatus teacherSc motherLev 2.76 41.08 2.76 25.01 6.27 Robust Estimate of Covariance: salaryP fatherWc sstatus teacherSc motherLev salaryP 0.391 2.956 2.146 0.447 0.110 fatherWc 2.956 1358.640 442.724 12.235 32.842 sstatus 2.146 442.724 205.590 6.464 11.382 teacherSc 0.447 12.235 6.464 1.179 0.510 motherLev 0.110 32.842 11.382 0.510 0.919 -------------------------------------------------------- salinity 28 3 16 1.940763 Best subsample: [1] 1 8 10 12 13 14 15 17 18 20 21 22 25 26 27 28 Outliers: 2 [1] 5 16 ------------- Call: CovMcd(x = x, nsamp = "deterministic", trace = FALSE) -> Method: Deterministic MCD(alpha=0.5 ==> h=16) Robust Estimate of Location: X1 X2 X3 10.50 2.58 23.12 Robust Estimate of Covariance: X1 X2 X3 X1 10.90243 -0.00457 -1.46156 X2 -0.00457 3.85051 -1.94604 X3 -1.46156 -1.94604 3.21424 -------------------------------------------------------- wood 20 5 13 -35.240819 Best subsample: [1] 1 2 3 5 9 11 12 13 14 15 17 18 20 Outliers: 4 [1] 4 6 8 19 ------------- Call: CovMcd(x = x, nsamp = "deterministic", trace = FALSE) -> Method: Deterministic MCD(alpha=0.5 ==> h=13) Robust Estimate of Location: x1 x2 x3 x4 x5 0.582 0.125 0.530 0.534 0.888 Robust Estimate of Covariance: x1 x2 x3 x4 x5 x1 1.05e-02 1.81e-03 2.08e-03 -6.41e-04 -9.61e-04 x2 1.81e-03 5.55e-04 8.76e-04 -2.03e-04 -4.70e-05 x3 2.08e-03 8.76e-04 5.60e-03 -1.11e-03 -1.26e-05 x4 -6.41e-04 -2.03e-04 -1.11e-03 4.27e-03 2.60e-03 x5 -9.61e-04 -4.70e-05 -1.26e-05 2.60e-03 2.95e-03 -------------------------------------------------------- hbk 75 3 39 -1.045501 Best subsample: [1] 15 17 18 19 20 21 22 23 24 26 27 28 29 32 33 35 36 38 40 41 43 48 49 50 51 [26] 54 55 56 58 59 63 64 66 67 70 71 72 73 74 Outliers: 14 [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ------------- Call: CovMcd(x = x, nsamp = "deterministic", trace = FALSE) -> Method: Deterministic MCD(alpha=0.5 ==> h=39) Robust Estimate of Location: X1 X2 X3 1.54 1.78 1.69 Robust Estimate of Covariance: X1 X2 X3 X1 1.227 0.055 0.127 X2 0.055 1.249 0.153 X3 0.127 0.153 1.160 -------------------------------------------------------- Animals 28 2 15 14.555543 Best subsample: [1] 1 3 4 5 10 11 17 18 19 20 21 22 23 26 27 Outliers: 14 [1] 2 6 7 8 9 12 13 14 15 16 23 24 25 28 ------------- Call: CovMcd(x = x, nsamp = "deterministic", trace = FALSE) -> Method: Deterministic MCD(alpha=0.5 ==> h=15) Robust Estimate of Location: body brain 18.7 64.9 Robust Estimate of Covariance: body brain body 929 1576 brain 1576 5646 -------------------------------------------------------- bushfire 38 5 22 18.135810 Best subsample: [1] 1 2 3 4 5 6 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 Outliers: 16 [1] 7 8 9 10 11 12 29 30 31 32 33 34 35 36 37 38 ------------- Call: CovMcd(x = x, nsamp = "deterministic", trace = FALSE) -> Method: Deterministic MCD(alpha=0.5 ==> h=22) Robust Estimate of Location: V1 V2 V3 V4 V5 105 147 274 218 279 Robust Estimate of Covariance: V1 V2 V3 V4 V5 V1 346 268 -1692 -381 -311 V2 268 236 -1125 -230 -194 V3 -1692 -1125 9993 2455 1951 V4 -381 -230 2455 647 505 V5 -311 -194 1951 505 398 -------------------------------------------------------- lactic 20 2 11 0.359580 Best subsample: [1] 1 2 3 4 5 7 8 9 10 11 12 Outliers: 4 [1] 17 18 19 20 ------------- Call: CovMcd(x = x, nsamp = "deterministic", trace = FALSE) -> Method: Deterministic MCD(alpha=0.5 ==> h=11) Robust Estimate of Location: X Y 3.86 5.01 Robust Estimate of Covariance: X Y X 10.6 14.6 Y 14.6 21.3 -------------------------------------------------------- pension 18 2 10 16.675508 Best subsample: [1] 1 2 3 4 5 6 8 9 11 12 Outliers: 5 [1] 14 15 16 17 18 ------------- Call: CovMcd(x = x, nsamp = "deterministic", trace = FALSE) -> Method: Deterministic MCD(alpha=0.5 ==> h=10) Robust Estimate of Location: Income Reserves 52.3 560.9 Robust Estimate of Covariance: Income Reserves Income 1420 11932 Reserves 11932 208643 -------------------------------------------------------- radarImage 1573 5 789 36.694865 Best subsample: Too long... Outliers: 114 [1] 164 237 238 242 261 262 351 450 451 462 463 480 481 509 516 [16] 535 542 572 597 620 643 654 669 679 697 737 802 803 804 818 [31] 832 833 834 862 863 864 892 900 939 989 1029 1064 1123 1132 1145 [46] 1202 1223 1224 1232 1233 1249 1250 1258 1259 1267 1303 1347 1357 1368 1375 [61] 1376 1393 1394 1402 1411 1417 1419 1420 1428 1436 1443 1444 1453 1470 1504 [76] 1510 1511 1512 1518 1519 1520 1521 1522 1525 1526 1527 1528 1530 1532 1534 [91] 1543 1544 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1557 1558 1561 [106] 1562 1564 1565 1566 1567 1569 1570 1571 1573 ------------- Call: CovMcd(x = x, nsamp = "deterministic", trace = FALSE) -> Method: Deterministic MCD(alpha=0.5 ==> h=789) Robust Estimate of Location: X.coord Y.coord Band.1 Band.2 Band.3 52.78 35.37 7.12 18.81 9.09 Robust Estimate of Covariance: X.coord Y.coord Band.1 Band.2 Band.3 X.coord 123.2 21.5 -363.9 -200.1 -24.3 Y.coord 21.5 410.7 46.5 -177.3 -33.4 Band.1 -363.9 46.5 27051.1 8138.9 469.3 Band.2 -200.1 -177.3 8138.9 25938.0 946.2 Band.3 -24.3 -33.4 469.3 946.2 4470.1 -------------------------------------------------------- NOxEmissions 8088 4 4046 2.474536 Best subsample: Too long... Outliers: 2152 Too many to print ... ------------- Call: CovMcd(x = x, nsamp = "deterministic", trace = FALSE) -> Method: Deterministic MCD(alpha=0.5 ==> h=4046) Robust Estimate of Location: julday LNOx LNOxEm sqrtWS 168.20 4.73 7.91 1.37 Robust Estimate of Covariance: julday LNOx LNOxEm sqrtWS julday 9176.2934 12.0355 0.7022 -10.1387 LNOx 12.0355 0.4736 0.1430 -0.1528 LNOxEm 0.7022 0.1430 0.2527 0.0436 sqrtWS -10.1387 -0.1528 0.0436 0.2074 -------------------------------------------------------- vaso 39 2 21 -3.972244 Best subsample: [1] 3 4 8 14 18 19 20 21 22 23 24 25 26 27 28 33 34 35 37 38 39 Outliers: 4 [1] 1 2 17 31 ------------- Call: CovMcd(x = x, nsamp = "deterministic", trace = FALSE) -> Method: Deterministic MCD(alpha=0.5 ==> h=21) Robust Estimate of Location: Volume Rate 1.16 1.72 Robust Estimate of Covariance: Volume Rate Volume 0.313 -0.167 Rate -0.167 0.728 -------------------------------------------------------- wagnerGrowth 63 6 35 6.511864 Best subsample: [1] 2 3 4 5 6 7 9 10 11 12 13 16 17 18 20 23 25 27 31 32 35 36 38 41 44 [26] 48 51 52 53 54 55 56 57 60 62 Outliers: 15 [1] 1 8 15 21 22 28 29 33 39 42 43 46 49 50 63 ------------- Call: CovMcd(x = x, nsamp = "deterministic", trace = FALSE) -> Method: Deterministic MCD(alpha=0.5 ==> h=35) Robust Estimate of Location: Region PA GPA HS GHS y 10.91 33.65 -2.05 2.43 0.31 6.98 Robust Estimate of Covariance: Region PA GPA HS GHS y Region 35.1365 17.7291 -1.4003 -0.6554 -0.4728 -14.9305 PA 17.7291 28.4297 -5.5245 -1.2444 -0.0452 -29.6181 GPA -1.4003 -5.5245 5.2170 0.3954 -0.2152 3.8252 HS -0.6554 -1.2444 0.3954 0.7273 -0.0107 2.1514 GHS -0.4728 -0.0452 -0.2152 -0.0107 0.1728 0.8440 y -14.9305 -29.6181 3.8252 2.1514 0.8440 79.0511 -------------------------------------------------------- fish 159 6 82 8.880459 Best subsample: [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [20] 20 21 22 23 24 25 26 27 35 36 37 42 43 44 45 46 47 48 49 [39] 50 51 52 53 54 55 56 57 58 59 60 106 107 108 109 110 111 112 113 [58] 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 [77] 134 135 136 137 138 139 Outliers: 64 [1] 30 39 40 41 62 63 64 65 66 68 69 70 73 74 75 76 77 78 79 [20] 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 [39] 99 100 101 102 103 104 105 141 142 143 144 145 146 147 148 149 150 151 152 [58] 153 154 155 156 157 158 159 ------------- Call: CovMcd(x = x, nsamp = "deterministic", trace = FALSE) -> Method: Deterministic MCD(alpha=0.5 ==> h=82) Robust Estimate of Location: Weight Length1 Length2 Length3 Height Width 316.3 24.1 26.3 29.3 31.0 14.7 Robust Estimate of Covariance: Weight Length1 Length2 Length3 Height Width Weight 64662.19 1412.34 1541.95 1917.21 1420.83 -61.15 Length1 1412.34 34.14 37.04 45.07 29.25 -1.26 Length2 1541.95 37.04 40.26 49.04 32.21 -1.34 Length3 1917.21 45.07 49.04 60.82 43.03 -2.15 Height 1420.83 29.25 32.21 43.03 46.50 -2.66 Width -61.15 -1.26 -1.34 -2.15 -2.66 1.02 -------------------------------------------------------- pottery 27 6 17 -10.586933 Best subsample: [1] 1 2 4 5 6 9 10 11 13 14 15 19 20 21 22 26 27 Outliers: 9 [1] 3 8 12 16 17 18 23 24 25 ------------- Call: CovMcd(x = x, nsamp = "deterministic", trace = FALSE) -> Method: Deterministic MCD(alpha=0.5 ==> h=17) Robust Estimate of Location: SI AL FE MG CA TI 54.983 15.206 9.700 3.817 5.211 0.859 Robust Estimate of Covariance: SI AL FE MG CA TI SI 20.58227 2.28743 -0.02039 2.12648 -1.80227 0.08821 AL 2.28743 4.03605 -0.63021 -2.49966 0.20842 -0.02038 FE -0.02039 -0.63021 0.27803 0.53382 -0.35125 0.01427 MG 2.12648 -2.49966 0.53382 2.79561 -0.15786 0.02847 CA -1.80227 0.20842 -0.35125 -0.15786 1.23240 -0.03465 TI 0.08821 -0.02038 0.01427 0.02847 -0.03465 0.00175 -------------------------------------------------------- rice 105 6 56 -14.423048 Best subsample: [1] 4 6 8 10 13 15 16 17 18 25 27 29 30 31 32 33 34 36 37 [20] 38 44 45 47 51 52 53 55 59 60 65 66 67 70 72 74 76 78 79 [39] 80 81 82 83 84 85 86 90 92 93 94 95 97 98 99 100 101 105 Outliers: 13 [1] 9 19 28 40 42 43 49 58 62 64 71 75 77 ------------- Call: CovMcd(x = x, nsamp = "deterministic", trace = FALSE) -> Method: Deterministic MCD(alpha=0.5 ==> h=56) Robust Estimate of Location: Favor Appearance Taste Stickiness -0.2950 0.0799 -0.1555 0.0363 Toughness Overall_evaluation 0.0530 -0.2284 Robust Estimate of Covariance: Favor Appearance Taste Stickiness Toughness Favor 0.466 0.389 0.471 0.447 -0.198 Appearance 0.389 0.610 0.592 0.570 -0.293 Taste 0.471 0.592 0.760 0.718 -0.356 Stickiness 0.447 0.570 0.718 0.820 -0.419 Toughness -0.198 -0.293 -0.356 -0.419 0.400 Overall_evaluation 0.557 0.669 0.838 0.846 -0.425 Overall_evaluation Favor 0.557 Appearance 0.669 Taste 0.838 Stickiness 0.846 Toughness -0.425 Overall_evaluation 0.987 -------------------------------------------------------- un86 73 7 40 17.117142 Best subsample: [1] 2 9 10 12 14 16 17 18 19 20 23 24 25 26 27 31 32 33 37 39 42 48 49 50 51 [26] 52 55 56 57 60 61 62 63 64 65 67 70 71 72 73 Outliers: 30 [1] 3 4 5 6 7 8 11 13 15 21 22 28 29 30 35 36 38 40 41 43 44 45 46 53 54 [26] 58 59 66 68 69 ------------- Call: CovMcd(x = x, nsamp = "deterministic", trace = FALSE) -> Method: Deterministic MCD(alpha=0.5 ==> h=40) Robust Estimate of Location: POP MOR CAR DR GNP DEN TB 17.036 68.512 6.444 0.877 1.134 64.140 0.433 Robust Estimate of Covariance: POP MOR CAR DR GNP DEN POP 3.61e+02 1.95e+02 -6.28e+00 -1.91e-02 -2.07e+00 5.79e+01 MOR 1.95e+02 2.39e+03 -2.79e+02 -3.37e+01 -3.39e+01 -9.21e+02 CAR -6.28e+00 -2.79e+02 5.76e+01 5.77e+00 6.59e+00 7.81e+01 DR -1.91e-02 -3.37e+01 5.77e+00 9.07e-01 5.66e-01 1.69e+01 GNP -2.07e+00 -3.39e+01 6.59e+00 5.66e-01 1.42e+00 9.28e+00 DEN 5.79e+01 -9.21e+02 7.81e+01 1.69e+01 9.28e+00 3.53e+03 TB -6.09e-02 -9.93e-01 2.50e-01 1.98e-02 6.82e-03 -9.75e-01 TB POP -6.09e-02 MOR -9.93e-01 CAR 2.50e-01 DR 1.98e-02 GNP 6.82e-03 DEN -9.75e-01 TB 1.64e-02 -------------------------------------------------------- wages 39 10 19 23.119456 Best subsample: [1] 1 2 5 6 7 9 10 11 12 13 14 15 19 21 23 25 26 27 28 Outliers: 9 [1] 4 5 9 24 25 26 28 32 34 ------------- Call: CovMcd(x = x, nsamp = "deterministic", trace = FALSE) -> Method: Deterministic MCD(alpha=0.5 ==> h=19) Robust Estimate of Location: HRS RATE ERSP ERNO NEIN ASSET AGE DEP 2161.89 2.95 1114.21 297.68 374.00 7269.37 39.13 2.43 RACE SCHOOL 36.13 10.39 Robust Estimate of Covariance: HRS RATE ERSP ERNO NEIN ASSET HRS 3.53e+03 8.31e+00 -5.96e+03 -6.43e+02 5.15e+03 1.12e+05 RATE 8.31e+00 1.78e-01 8.19e+00 2.70e+00 3.90e+01 8.94e+02 ERSP -5.96e+03 8.19e+00 1.90e+04 1.13e+03 -4.73e+03 -9.49e+04 ERNO -6.43e+02 2.70e+00 1.13e+03 1.80e+03 -3.56e+02 -7.33e+03 NEIN 5.15e+03 3.90e+01 -4.73e+03 -3.56e+02 1.38e+04 3.00e+05 ASSET 1.12e+05 8.94e+02 -9.49e+04 -7.33e+03 3.00e+05 6.62e+06 AGE -3.33e+01 -6.55e-02 8.33e+01 1.50e+00 -3.28e+01 -7.55e+02 DEP 4.50e+00 -4.01e-02 -2.77e+01 1.31e+00 -8.09e+00 -1.61e+02 RACE -1.30e+03 -6.06e+00 1.80e+03 1.48e+02 -2.58e+03 -5.59e+04 SCHOOL 3.01e+01 3.58e-01 -5.57e+00 2.84e+00 9.26e+01 2.10e+03 AGE DEP RACE SCHOOL HRS -3.33e+01 4.50e+00 -1.30e+03 3.01e+01 RATE -6.55e-02 -4.01e-02 -6.06e+00 3.58e-01 ERSP 8.33e+01 -2.77e+01 1.80e+03 -5.57e+00 ERNO 1.50e+00 1.31e+00 1.48e+02 2.84e+00 NEIN -3.28e+01 -8.09e+00 -2.58e+03 9.26e+01 ASSET -7.55e+02 -1.61e+02 -5.59e+04 2.10e+03 AGE 6.57e-01 -1.64e-01 1.13e+01 -2.67e-01 DEP -1.64e-01 9.20e-02 2.38e-01 -6.01e-02 RACE 1.13e+01 2.38e-01 5.73e+02 -1.67e+01 SCHOOL -2.67e-01 -6.01e-02 -1.67e+01 7.95e-01 -------------------------------------------------------- airquality 153 4 58 18.316848 Best subsample: [1] 2 3 8 10 24 25 28 32 33 35 36 37 38 39 40 41 42 43 46 [20] 47 48 49 50 52 54 56 57 58 59 60 66 67 69 71 72 73 76 78 [39] 81 82 84 86 87 89 90 91 92 95 97 98 100 101 105 106 108 109 110 [58] 111 Outliers: 10 [1] 8 9 15 18 24 30 48 62 117 148 ------------- Call: CovMcd(x = x, nsamp = "deterministic", trace = FALSE) -> Method: Deterministic MCD(alpha=0.5 ==> h=58) Robust Estimate of Location: Ozone Solar.R Wind Temp 40.80 189.37 9.66 78.81 Robust Estimate of Covariance: Ozone Solar.R Wind Temp Ozone 935.54 857.76 -56.30 220.48 Solar.R 857.76 8507.83 1.36 155.13 Wind -56.30 1.36 9.90 -11.61 Temp 220.48 155.13 -11.61 84.00 -------------------------------------------------------- attitude 30 7 19 24.464288 Best subsample: [1] 2 3 4 5 7 8 10 11 12 15 17 19 21 22 23 25 27 28 29 Outliers: 8 [1] 6 9 13 14 16 18 24 26 ------------- Call: CovMcd(x = x, nsamp = "deterministic", trace = FALSE) -> Method: Deterministic MCD(alpha=0.5 ==> h=19) Robust Estimate of Location: rating complaints privileges learning raises critical 64.4 65.2 51.0 55.5 65.9 77.4 advance 43.2 Robust Estimate of Covariance: rating complaints privileges learning raises critical advance rating 199.95 162.36 115.83 160.44 128.87 -13.55 66.20 complaints 162.36 204.84 130.33 170.66 150.19 16.28 96.66 privileges 115.83 130.33 181.31 152.63 106.56 4.52 91.44 learning 160.44 170.66 152.63 213.06 156.57 9.92 88.31 raises 128.87 150.19 106.56 156.57 152.05 23.10 84.00 critical -13.55 16.28 4.52 9.92 23.10 80.22 27.15 advance 66.20 96.66 91.44 88.31 84.00 27.15 95.51 -------------------------------------------------------- attenu 182 5 86 6.593068 Best subsample: [1] 41 42 43 44 48 49 51 68 70 72 73 74 75 76 77 82 83 84 85 [20] 86 87 88 89 90 91 92 101 102 103 104 106 107 109 110 111 112 113 114 [39] 115 116 117 119 120 121 122 124 125 126 127 128 129 130 131 132 133 134 135 [58] 136 137 138 139 140 141 144 145 146 147 148 149 150 151 152 153 154 155 156 [77] 157 158 159 160 161 162 163 164 165 166 Outliers: 49 [1] 1 2 4 5 6 7 8 9 10 11 12 13 14 15 16 19 20 21 22 [20] 23 24 25 27 28 29 30 31 32 33 40 45 47 59 60 61 64 65 78 [39] 82 83 97 98 100 101 102 103 104 105 117 ------------- Call: CovMcd(x = x, nsamp = "deterministic", trace = FALSE) -> Method: Deterministic MCD(alpha=0.5 ==> h=86) Robust Estimate of Location: event mag station dist accel 17.122 5.798 63.461 25.015 0.131 Robust Estimate of Covariance: event mag station dist accel event 2.98e+01 -1.58e+00 9.49e+01 -8.36e+00 -3.59e-02 mag -1.58e+00 4.26e-01 -3.88e+00 3.13e+00 5.30e-03 station 9.49e+01 -3.88e+00 1.10e+03 2.60e+01 5.38e-01 dist -8.36e+00 3.13e+00 2.60e+01 2.66e+02 -9.23e-01 accel -3.59e-02 5.30e-03 5.38e-01 -9.23e-01 7.78e-03 -------------------------------------------------------- USJudgeRatings 43 12 28 -47.886937 Best subsample: [1] 2 3 4 6 9 10 11 15 16 18 19 22 24 25 26 27 28 29 30 32 33 34 36 37 38 [26] 40 41 43 Outliers: 14 [1] 1 5 7 8 12 13 14 17 20 21 23 31 35 42 ------------- Call: CovMcd(x = x, nsamp = "deterministic", trace = FALSE) -> Method: Deterministic MCD(alpha=0.5 ==> h=28) Robust Estimate of Location: CONT INTG DMNR DILG CFMG DECI PREP FAMI ORAL WRIT PHYS RTEN 7.46 8.26 7.88 8.06 7.85 7.92 7.84 7.83 7.67 7.74 8.31 8.03 Robust Estimate of Covariance: CONT INTG DMNR DILG CFMG DECI PREP FAMI CONT 0.7363 -0.2916 -0.4193 -0.1943 -0.0555 -0.0690 -0.1703 -0.1727 INTG -0.2916 0.4179 0.5511 0.4167 0.3176 0.3102 0.4247 0.4279 DMNR -0.4193 0.5511 0.8141 0.5256 0.4092 0.3934 0.5294 0.5094 DILG -0.1943 0.4167 0.5256 0.4820 0.3904 0.3819 0.5054 0.5104 CFMG -0.0555 0.3176 0.4092 0.3904 0.3595 0.3368 0.4180 0.4206 DECI -0.0690 0.3102 0.3934 0.3819 0.3368 0.3310 0.4135 0.4194 PREP -0.1703 0.4247 0.5294 0.5054 0.4180 0.4135 0.5647 0.5752 FAMI -0.1727 0.4279 0.5094 0.5104 0.4206 0.4194 0.5752 0.6019 ORAL -0.2109 0.4453 0.5646 0.5054 0.4200 0.4121 0.5575 0.5735 WRIT -0.2033 0.4411 0.5466 0.5087 0.4222 0.4147 0.5592 0.5787 PHYS -0.1624 0.2578 0.3163 0.2833 0.2268 0.2362 0.3108 0.3284 RTEN -0.2622 0.4872 0.6324 0.5203 0.4145 0.4081 0.5488 0.5595 ORAL WRIT PHYS RTEN CONT -0.2109 -0.2033 -0.1624 -0.2622 INTG 0.4453 0.4411 0.2578 0.4872 DMNR 0.5646 0.5466 0.3163 0.6324 DILG 0.5054 0.5087 0.2833 0.5203 CFMG 0.4200 0.4222 0.2268 0.4145 DECI 0.4121 0.4147 0.2362 0.4081 PREP 0.5575 0.5592 0.3108 0.5488 FAMI 0.5735 0.5787 0.3284 0.5595 ORAL 0.5701 0.5677 0.3283 0.5688 WRIT 0.5677 0.5715 0.3268 0.5645 PHYS 0.3283 0.3268 0.2302 0.3308 RTEN 0.5688 0.5645 0.3308 0.6057 -------------------------------------------------------- USArrests 50 4 27 15.438912 Best subsample: [1] 4 7 12 13 14 15 16 19 21 23 25 26 27 29 30 32 34 35 36 38 41 43 45 46 48 [26] 49 50 Outliers: 7 [1] 2 5 6 10 24 28 33 ------------- Call: CovMcd(x = x, nsamp = "deterministic", trace = FALSE) -> Method: Deterministic MCD(alpha=0.5 ==> h=27) Robust Estimate of Location: Murder Assault UrbanPop Rape 6.91 150.10 65.88 18.75 Robust Estimate of Covariance: Murder Assault UrbanPop Rape Murder 17.9 285.4 17.6 25.0 Assault 285.4 6572.8 524.9 465.0 UrbanPop 17.6 524.9 211.9 50.5 Rape 25.0 465.0 50.5 56.4 -------------------------------------------------------- longley 16 7 12 12.747678 Best subsample: [1] 5 6 7 8 9 10 11 12 13 14 15 16 Outliers: 4 [1] 1 2 3 4 ------------- Call: CovMcd(x = x, nsamp = "deterministic", trace = FALSE) -> Method: Deterministic MCD(alpha=0.5 ==> h=12) Robust Estimate of Location: GNP.deflator GNP Unemployed Armed.Forces Population 106.5 430.6 328.2 295.0 120.2 Year Employed 1956.5 66.9 Robust Estimate of Covariance: GNP.deflator GNP Unemployed Armed.Forces Population GNP.deflator 108.5 1039.9 1231.9 -465.6 81.4 GNP 1039.9 10300.0 11161.6 -4277.6 803.4 Unemployed 1231.9 11161.6 19799.4 -5805.6 929.1 Armed.Forces -465.6 -4277.6 -5805.6 2805.5 -327.4 Population 81.4 803.4 929.1 -327.4 63.5 Year 51.6 504.3 595.6 -216.7 39.7 Employed 34.2 344.1 323.6 -149.5 26.2 Year Employed GNP.deflator 51.6 34.2 GNP 504.3 344.1 Unemployed 595.6 323.6 Armed.Forces -216.7 -149.5 Population 39.7 26.2 Year 25.1 16.7 Employed 16.7 12.4 -------------------------------------------------------- Loblolly 84 3 44 4.898174 Best subsample: [1] 1 2 4 7 8 10 13 14 19 20 21 25 26 28 31 32 33 34 37 38 39 40 43 44 45 [26] 46 49 50 51 55 56 58 61 62 64 67 68 69 73 74 75 79 80 81 Outliers: 31 [1] 5 6 11 12 15 17 18 23 24 29 30 35 36 41 42 47 48 53 54 59 60 65 66 70 71 [26] 72 76 77 78 83 84 ------------- Call: CovMcd(x = x, nsamp = "deterministic", trace = FALSE) -> Method: Deterministic MCD(alpha=0.5 ==> h=44) Robust Estimate of Location: height age Seed 20.44 8.19 7.72 Robust Estimate of Covariance: height age Seed height 247.8 79.5 11.9 age 79.5 25.7 3.0 Seed 11.9 3.0 17.1 -------------------------------------------------------- quakes 1000 4 502 8.274209 Best subsample: Too long... Outliers: 266 Too many to print ... ------------- Call: CovMcd(x = x, nsamp = "deterministic", trace = FALSE) -> Method: Deterministic MCD(alpha=0.5 ==> h=502) Robust Estimate of Location: lat long depth mag -21.34 182.47 360.58 4.54 Robust Estimate of Covariance: lat long depth mag lat 1.50e+01 3.58e+00 1.37e+02 -2.66e-01 long 3.58e+00 4.55e+00 -3.61e+02 4.64e-02 depth 1.37e+02 -3.61e+02 4.84e+04 -1.36e+01 mag -2.66e-01 4.64e-02 -1.36e+01 1.34e-01 -------------------------------------------------------- ======================================================== > dodata(method="exact") Call: dodata(method = "exact") Data Set n p Half LOG(obj) Time ======================================================== heart 12 2 7 5.678742 Best subsample: [1] 1 3 4 5 7 9 11 Outliers: 0 Too many to print ... ------------- Call: CovMcd(x = x, nsamp = "exact", trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=7); nsamp = exact; (n,k)mini = (300,5) Robust Estimate of Location: height weight 38.3 33.1 Robust Estimate of Covariance: height weight height 135 259 weight 259 564 -------------------------------------------------------- starsCYG 47 2 25 -8.031215 Best subsample: [1] 1 2 4 6 8 10 12 13 16 24 25 26 28 32 33 37 38 39 40 41 42 43 44 45 46 Outliers: 7 [1] 7 9 11 14 20 30 34 ------------- Call: CovMcd(x = x, nsamp = "exact", trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=25); nsamp = exact; (n,k)mini = (300,5) Robust Estimate of Location: log.Te log.light 4.41 4.95 Robust Estimate of Covariance: log.Te log.light log.Te 0.0132 0.0394 log.light 0.0394 0.2743 -------------------------------------------------------- phosphor 18 2 10 6.878847 Best subsample: [1] 3 5 8 9 11 12 13 14 15 17 Outliers: 3 [1] 1 6 10 ------------- Call: CovMcd(x = x, nsamp = "exact", trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=10); nsamp = exact; (n,k)mini = (300,5) Robust Estimate of Location: inorg organic 13.4 38.8 Robust Estimate of Covariance: inorg organic inorg 129 130 organic 130 182 -------------------------------------------------------- coleman 20 5 13 1.286808 Best subsample: [1] 2 3 4 5 7 8 12 13 14 16 17 19 20 Outliers: 7 [1] 1 6 9 10 11 15 18 ------------- Call: CovMcd(x = x, nsamp = "exact", trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=13); nsamp = exact; (n,k)mini = (300,5) Robust Estimate of Location: salaryP fatherWc sstatus teacherSc motherLev 2.76 48.38 6.12 25.00 6.40 Robust Estimate of Covariance: salaryP fatherWc sstatus teacherSc motherLev salaryP 0.253 1.786 -0.266 0.151 0.075 fatherWc 1.786 1303.382 330.496 12.604 34.503 sstatus -0.266 330.496 119.888 3.833 10.131 teacherSc 0.151 12.604 3.833 0.785 0.555 motherLev 0.075 34.503 10.131 0.555 1.043 -------------------------------------------------------- salinity 28 3 16 1.326364 Best subsample: [1] 1 2 6 7 8 12 13 14 18 20 21 22 25 26 27 28 Outliers: 4 [1] 5 16 23 24 ------------- Call: CovMcd(x = x, nsamp = "exact", trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=16); nsamp = exact; (n,k)mini = (300,5) Robust Estimate of Location: X1 X2 X3 10.08 2.78 22.78 Robust Estimate of Covariance: X1 X2 X3 X1 10.44 1.01 -3.19 X2 1.01 3.83 -1.44 X3 -3.19 -1.44 2.39 -------------------------------------------------------- wood 20 5 13 -36.270094 Best subsample: [1] 1 2 3 5 9 10 12 13 14 15 17 18 20 Outliers: 7 [1] 4 6 7 8 11 16 19 ------------- Call: CovMcd(x = x, nsamp = "exact", trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=13); nsamp = exact; (n,k)mini = (300,5) Robust Estimate of Location: x1 x2 x3 x4 x5 0.587 0.122 0.531 0.538 0.892 Robust Estimate of Covariance: x1 x2 x3 x4 x5 x1 1.00e-02 1.88e-03 3.15e-03 -5.86e-04 -1.63e-03 x2 1.88e-03 4.85e-04 1.27e-03 -5.20e-05 2.36e-05 x3 3.15e-03 1.27e-03 6.63e-03 -8.71e-04 3.52e-04 x4 -5.86e-04 -5.20e-05 -8.71e-04 2.85e-03 1.83e-03 x5 -1.63e-03 2.36e-05 3.52e-04 1.83e-03 2.77e-03 -------------------------------------------------------- Animals 28 2 15 14.555543 Best subsample: [1] 1 3 4 5 10 11 17 18 19 20 21 22 23 26 27 Outliers: 14 [1] 2 6 7 8 9 12 13 14 15 16 23 24 25 28 ------------- Call: CovMcd(x = x, nsamp = "exact", trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=15); nsamp = exact; (n,k)mini = (300,5) Robust Estimate of Location: body brain 18.7 64.9 Robust Estimate of Covariance: body brain body 929 1576 brain 1576 5646 -------------------------------------------------------- lactic 20 2 11 0.359580 Best subsample: [1] 1 2 3 4 5 7 8 9 10 11 12 Outliers: 4 [1] 17 18 19 20 ------------- Call: CovMcd(x = x, nsamp = "exact", trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=11); nsamp = exact; (n,k)mini = (300,5) Robust Estimate of Location: X Y 3.86 5.01 Robust Estimate of Covariance: X Y X 10.6 14.6 Y 14.6 21.3 -------------------------------------------------------- pension 18 2 10 16.675508 Best subsample: [1] 1 2 3 4 5 6 8 9 11 12 Outliers: 5 [1] 14 15 16 17 18 ------------- Call: CovMcd(x = x, nsamp = "exact", trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=10); nsamp = exact; (n,k)mini = (300,5) Robust Estimate of Location: Income Reserves 52.3 560.9 Robust Estimate of Covariance: Income Reserves Income 1420 11932 Reserves 11932 208643 -------------------------------------------------------- vaso 39 2 21 -3.972244 Best subsample: [1] 3 4 8 14 18 19 20 21 22 23 24 25 26 27 28 33 34 35 37 38 39 Outliers: 4 [1] 1 2 17 31 ------------- Call: CovMcd(x = x, nsamp = "exact", trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=21); nsamp = exact; (n,k)mini = (300,5) Robust Estimate of Location: Volume Rate 1.16 1.72 Robust Estimate of Covariance: Volume Rate Volume 0.313 -0.167 Rate -0.167 0.728 -------------------------------------------------------- stackloss 21 3 12 5.472581 Best subsample: [1] 4 5 6 7 8 9 10 11 12 13 14 20 Outliers: 9 [1] 1 2 3 15 16 17 18 19 21 ------------- Call: CovMcd(x = x, nsamp = "exact", trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=12); nsamp = exact; (n,k)mini = (300,5) Robust Estimate of Location: Air.Flow Water.Temp Acid.Conc. 59.5 20.8 87.3 Robust Estimate of Covariance: Air.Flow Water.Temp Acid.Conc. Air.Flow 6.29 5.85 5.74 Water.Temp 5.85 9.23 6.14 Acid.Conc. 5.74 6.14 23.25 -------------------------------------------------------- pilot 20 2 11 6.487287 Best subsample: [1] 2 3 6 7 9 12 15 16 17 18 20 Outliers: 0 Too many to print ... ------------- Call: CovMcd(x = x, nsamp = "exact", trace = FALSE) -> Method: Fast MCD(alpha=0.5 ==> h=11); nsamp = exact; (n,k)mini = (300,5) Robust Estimate of Location: X Y 101.1 67.7 Robust Estimate of Covariance: X Y X 3344 1070 Y 1070 343 -------------------------------------------------------- ======================================================== > dodata(method="MRCD") Call: dodata(method = "MRCD") Data Set n p Half LOG(obj) Time ======================================================== heart 12 2 6 7.446266 Best subsample: [1] 1 3 4 7 9 11 Outliers: 0 Too many to print ... ------------- Call: CovMrcd(x = x, trace = FALSE) -> Method: Minimum Regularized Covariance Determinant MRCD(alpha=0.5 ==> h=6) Robust Estimate of Location: height weight 38.8 33.0 Robust Estimate of Covariance: height weight height 47.4 75.2 weight 75.2 155.4 -------------------------------------------------------- starsCYG 47 2 24 -5.862050 Best subsample: [1] 1 6 10 12 13 16 23 24 25 26 28 31 33 37 38 39 40 41 42 43 44 45 46 47 Outliers: 0 Too many to print ... ------------- Call: CovMrcd(x = x, trace = FALSE) -> Method: Minimum Regularized Covariance Determinant MRCD(alpha=0.5 ==> h=24) Robust Estimate of Location: log.Te log.light 4.44 5.05 Robust Estimate of Covariance: log.Te log.light log.Te 0.00867 0.02686 log.light 0.02686 0.41127 -------------------------------------------------------- phosphor 18 2 9 9.954788 Best subsample: [1] 4 7 8 9 11 12 13 14 16 Outliers: 0 Too many to print ... ------------- Call: CovMrcd(x = x, trace = FALSE) -> Method: Minimum Regularized Covariance Determinant MRCD(alpha=0.5 ==> h=9) Robust Estimate of Location: inorg organic 12.5 39.0 Robust Estimate of Covariance: inorg organic inorg 236 140 organic 140 172 -------------------------------------------------------- stackloss 21 3 11 7.991165 Best subsample: [1] 4 5 6 7 8 9 10 13 18 19 20 Outliers: 0 Too many to print ... ------------- Call: CovMrcd(x = x, trace = FALSE) -> Method: Minimum Regularized Covariance Determinant MRCD(alpha=0.5 ==> h=11) Robust Estimate of Location: Air.Flow Water.Temp Acid.Conc. 58.2 21.4 85.2 Robust Estimate of Covariance: Air.Flow Water.Temp Acid.Conc. Air.Flow 49.8 17.2 42.7 Water.Temp 17.2 13.8 25.2 Acid.Conc. 42.7 25.2 58.2 -------------------------------------------------------- coleman 20 5 10 5.212156 Best subsample: [1] 3 4 5 7 8 9 14 16 19 20 Outliers: 0 Too many to print ... ------------- Call: CovMrcd(x = x, trace = FALSE) -> Method: Minimum Regularized Covariance Determinant MRCD(alpha=0.5 ==> h=10) Robust Estimate of Location: salaryP fatherWc sstatus teacherSc motherLev 2.78 59.44 9.28 25.41 6.70 Robust Estimate of Covariance: salaryP fatherWc sstatus teacherSc motherLev salaryP 0.1582 -0.2826 0.4112 0.1754 0.0153 fatherWc -0.2826 902.9210 201.5815 -2.1236 18.8736 sstatus 0.4112 201.5815 65.4580 -0.3876 4.7794 teacherSc 0.1754 -2.1236 -0.3876 0.7233 -0.0322 motherLev 0.0153 18.8736 4.7794 -0.0322 0.5417 -------------------------------------------------------- salinity 28 3 14 3.586919 Best subsample: [1] 1 7 8 12 13 14 18 20 21 22 25 26 27 28 Outliers: 0 Too many to print ... ------------- Call: CovMrcd(x = x, trace = FALSE) -> Method: Minimum Regularized Covariance Determinant MRCD(alpha=0.5 ==> h=14) Robust Estimate of Location: X1 X2 X3 10.95 3.71 21.99 Robust Estimate of Covariance: X1 X2 X3 X1 14.153 0.718 -3.359 X2 0.718 3.565 -0.722 X3 -3.359 -0.722 1.607 -------------------------------------------------------- wood 20 5 10 -33.100492 Best subsample: [1] 1 2 3 5 11 14 15 17 18 20 Outliers: 0 Too many to print ... ------------- Call: CovMrcd(x = x, trace = FALSE) -> Method: Minimum Regularized Covariance Determinant MRCD(alpha=0.5 ==> h=10) Robust Estimate of Location: x1 x2 x3 x4 x5 0.572 0.120 0.504 0.545 0.899 Robust Estimate of Covariance: x1 x2 x3 x4 x5 x1 0.007543 0.001720 0.000412 -0.001230 -0.001222 x2 0.001720 0.000568 0.000355 -0.000533 -0.000132 x3 0.000412 0.000355 0.002478 0.000190 0.000811 x4 -0.001230 -0.000533 0.000190 0.002327 0.000967 x5 -0.001222 -0.000132 0.000811 0.000967 0.001894 -------------------------------------------------------- hbk 75 3 38 1.539545 Best subsample: [1] 15 17 18 19 20 21 22 23 24 26 27 29 32 33 35 36 38 40 41 43 48 49 50 51 54 [26] 55 56 58 59 63 64 66 67 70 71 72 73 74 Outliers: 0 Too many to print ... ------------- Call: CovMrcd(x = x, trace = FALSE) -> Method: Minimum Regularized Covariance Determinant MRCD(alpha=0.5 ==> h=38) Robust Estimate of Location: X1 X2 X3 1.60 2.37 1.64 Robust Estimate of Covariance: X1 X2 X3 X1 2.810 0.124 1.248 X2 0.124 1.017 0.208 X3 1.248 0.208 2.218 -------------------------------------------------------- Animals 28 2 14 16.278395 Best subsample: [1] 1 3 4 5 10 11 18 19 20 21 22 23 26 27 Outliers: 0 Too many to print ... ------------- Call: CovMrcd(x = x, trace = FALSE) -> Method: Minimum Regularized Covariance Determinant MRCD(alpha=0.5 ==> h=14) Robust Estimate of Location: body brain 19.5 56.8 Robust Estimate of Covariance: body brain body 2802 5179 brain 5179 13761 -------------------------------------------------------- bushfire 38 5 19 28.483413 Best subsample: [1] 1 2 3 4 5 14 15 16 17 18 19 20 21 22 23 24 25 26 27 Outliers: 0 Too many to print ... ------------- Call: CovMrcd(x = x, trace = FALSE) -> Method: Minimum Regularized Covariance Determinant MRCD(alpha=0.5 ==> h=19) Robust Estimate of Location: V1 V2 V3 V4 V5 103 145 287 221 281 Robust Estimate of Covariance: V1 V2 V3 V4 V5 V1 366 249 -1993 -503 -396 V2 249 252 -1223 -291 -233 V3 -1993 -1223 14246 3479 2718 V4 -503 -291 3479 1083 748 V5 -396 -233 2718 748 660 -------------------------------------------------------- lactic 20 2 10 2.593141 Best subsample: [1] 1 2 3 4 5 7 8 9 10 11 Outliers: 0 Too many to print ... ------------- Call: CovMrcd(x = x, trace = FALSE) -> Method: Minimum Regularized Covariance Determinant MRCD(alpha=0.5 ==> h=10) Robust Estimate of Location: X Y 2.60 3.63 Robust Estimate of Covariance: X Y X 8.13 13.54 Y 13.54 24.17 -------------------------------------------------------- pension 18 2 9 18.931204 Best subsample: [1] 2 3 4 5 6 8 9 11 12 Outliers: 0 Too many to print ... ------------- Call: CovMrcd(x = x, trace = FALSE) -> Method: Minimum Regularized Covariance Determinant MRCD(alpha=0.5 ==> h=9) Robust Estimate of Location: Income Reserves 45.7 466.9 Robust Estimate of Covariance: Income Reserves Income 2127 23960 Reserves 23960 348275 -------------------------------------------------------- vaso 39 2 20 -1.864710 Best subsample: [1] 3 4 8 14 18 20 21 22 23 24 25 26 27 28 33 34 35 37 38 39 Outliers: 0 Too many to print ... ------------- Call: CovMrcd(x = x, trace = FALSE) -> Method: Minimum Regularized Covariance Determinant MRCD(alpha=0.5 ==> h=20) Robust Estimate of Location: Volume Rate 1.14 1.77 Robust Estimate of Covariance: Volume Rate Volume 0.44943 -0.00465 Rate -0.00465 0.34480 -------------------------------------------------------- wagnerGrowth 63 6 32 9.287760 Best subsample: [1] 2 3 4 5 6 7 9 10 11 12 16 18 20 23 25 27 31 32 35 36 38 41 44 48 52 [26] 53 54 55 56 57 60 62 Outliers: 0 Too many to print ... ------------- Call: CovMrcd(x = x, trace = FALSE) -> Method: Minimum Regularized Covariance Determinant MRCD(alpha=0.5 ==> h=32) Robust Estimate of Location: Region PA GPA HS GHS y 10.719 33.816 -2.144 2.487 0.293 4.918 Robust Estimate of Covariance: Region PA GPA HS GHS y Region 56.7128 17.4919 -2.9710 -0.6491 -0.4545 -10.4287 PA 17.4919 29.9968 -7.6846 -1.3141 0.5418 -35.6434 GPA -2.9710 -7.6846 6.3238 1.1257 -0.4757 12.4707 HS -0.6491 -1.3141 1.1257 1.1330 -0.0915 3.3617 GHS -0.4545 0.5418 -0.4757 -0.0915 0.1468 -1.1228 y -10.4287 -35.6434 12.4707 3.3617 -1.1228 67.4215 -------------------------------------------------------- fish 159 6 79 22.142828 Best subsample: [1] 2 3 4 5 6 7 8 9 10 11 12 14 15 16 17 18 19 20 21 [20] 22 23 24 25 26 27 35 36 37 42 43 44 45 46 47 48 49 50 51 [39] 52 53 54 55 56 57 58 59 60 71 105 106 107 109 110 111 113 114 115 [58] 116 117 118 119 120 122 123 124 125 126 127 128 129 130 131 132 134 135 136 [77] 137 138 139 Outliers: 0 Too many to print ... ------------- Call: CovMrcd(x = x, trace = FALSE) -> Method: Minimum Regularized Covariance Determinant MRCD(alpha=0.5 ==> h=79) Robust Estimate of Location: Weight Length1 Length2 Length3 Height Width 291.7 23.8 25.9 28.9 30.4 14.7 Robust Estimate of Covariance: Weight Length1 Length2 Length3 Height Width Weight 77155.07 1567.55 1713.74 2213.16 1912.62 -103.97 Length1 1567.55 45.66 41.57 52.14 38.66 -2.39 Length2 1713.74 41.57 54.26 56.77 42.72 -2.55 Length3 2213.16 52.14 56.77 82.57 58.84 -3.65 Height 1912.62 38.66 42.72 58.84 70.51 -3.80 Width -103.97 -2.39 -2.55 -3.65 -3.80 1.19 -------------------------------------------------------- pottery 27 6 14 -6.897459 Best subsample: [1] 1 2 4 5 6 10 11 13 14 15 19 21 22 26 Outliers: 0 Too many to print ... ------------- Call: CovMrcd(x = x, trace = FALSE) -> Method: Minimum Regularized Covariance Determinant MRCD(alpha=0.5 ==> h=14) Robust Estimate of Location: SI AL FE MG CA TI 54.39 14.93 9.78 3.82 5.11 0.86 Robust Estimate of Covariance: SI AL FE MG CA TI SI 17.47469 -0.16656 0.39943 4.48192 -0.71153 0.06515 AL -0.16656 3.93154 -0.35738 -2.29899 0.14770 -0.02050 FE 0.39943 -0.35738 0.20434 0.37562 -0.22460 0.00943 MG 4.48192 -2.29899 0.37562 2.82339 -0.16027 0.02943 CA -0.71153 0.14770 -0.22460 -0.16027 0.88443 -0.01711 TI 0.06515 -0.02050 0.00943 0.02943 -0.01711 0.00114 -------------------------------------------------------- rice 105 6 53 -8.916472 Best subsample: [1] 4 6 8 10 13 15 16 17 18 25 27 29 30 31 32 33 34 36 37 [20] 38 44 45 47 51 52 53 54 55 59 60 65 67 70 72 76 79 80 81 [39] 82 83 84 85 86 90 92 93 94 95 97 98 99 101 105 Outliers: 0 Too many to print ... ------------- Call: CovMrcd(x = x, trace = FALSE) -> Method: Minimum Regularized Covariance Determinant MRCD(alpha=0.5 ==> h=53) Robust Estimate of Location: Favor Appearance Taste Stickiness -0.1741 0.0774 -0.0472 0.1868 Toughness Overall_evaluation -0.0346 -0.0683 Robust Estimate of Covariance: Favor Appearance Taste Stickiness Toughness Favor 0.402 0.306 0.378 0.364 -0.134 Appearance 0.306 0.508 0.474 0.407 -0.146 Taste 0.378 0.474 0.708 0.611 -0.258 Stickiness 0.364 0.407 0.611 0.795 -0.320 Toughness -0.134 -0.146 -0.258 -0.320 0.302 Overall_evaluation 0.453 0.536 0.746 0.745 -0.327 Overall_evaluation Favor 0.453 Appearance 0.536 Taste 0.746 Stickiness 0.745 Toughness -0.327 Overall_evaluation 0.963 -------------------------------------------------------- un86 73 7 37 19.832993 Best subsample: [1] 9 10 12 14 16 17 18 20 23 24 25 26 27 31 32 33 37 39 42 48 49 50 51 52 55 [26] 56 57 60 62 63 64 65 67 70 71 72 73 Outliers: 0 Too many to print ... ------------- Call: CovMrcd(x = x, trace = FALSE) -> Method: Minimum Regularized Covariance Determinant MRCD(alpha=0.5 ==> h=37) Robust Estimate of Location: POP MOR CAR DR GNP DEN TB 14.462 66.892 6.670 0.858 1.251 55.518 0.429 Robust Estimate of Covariance: POP MOR CAR DR GNP DEN POP 3.00e+02 1.58e+02 9.83e+00 2.74e+00 5.51e-01 6.87e+01 MOR 1.58e+02 2.96e+03 -4.24e+02 -4.72e+01 -5.40e+01 -1.01e+03 CAR 9.83e+00 -4.24e+02 9.12e+01 8.71e+00 1.13e+01 1.96e+02 DR 2.74e+00 -4.72e+01 8.71e+00 1.25e+00 1.03e+00 2.74e+01 GNP 5.51e-01 -5.40e+01 1.13e+01 1.03e+00 2.31e+00 2.36e+01 DEN 6.87e+01 -1.01e+03 1.96e+02 2.74e+01 2.36e+01 3.12e+03 TB 2.04e-02 -1.81e+00 3.42e-01 2.57e-02 2.09e-02 -6.88e-01 TB POP 2.04e-02 MOR -1.81e+00 CAR 3.42e-01 DR 2.57e-02 GNP 2.09e-02 DEN -6.88e-01 TB 2.59e-02 -------------------------------------------------------- wages 39 10 14 35.698016 Best subsample: [1] 1 2 5 6 9 10 11 13 15 19 23 25 26 28 Outliers: 0 Too many to print ... ------------- Call: CovMrcd(x = x, trace = FALSE) -> Method: Minimum Regularized Covariance Determinant MRCD(alpha=0.5 ==> h=14) Robust Estimate of Location: HRS RATE ERSP ERNO NEIN ASSET AGE DEP 2167.71 2.96 1113.50 300.43 382.29 7438.00 39.06 2.41 RACE SCHOOL 33.00 10.45 Robust Estimate of Covariance: HRS RATE ERSP ERNO NEIN ASSET HRS 1.97e+03 -4.14e-01 -4.71e+03 -6.58e+02 1.81e+03 3.84e+04 RATE -4.14e-01 1.14e-01 1.79e+01 3.08e+00 1.40e+01 3.57e+02 ERSP -4.71e+03 1.79e+01 1.87e+04 2.33e+03 -2.06e+03 -3.57e+04 ERNO -6.58e+02 3.08e+00 2.33e+03 5.36e+02 -3.42e+02 -5.56e+03 NEIN 1.81e+03 1.40e+01 -2.06e+03 -3.42e+02 5.77e+03 1.10e+05 ASSET 3.84e+04 3.57e+02 -3.57e+04 -5.56e+03 1.10e+05 2.86e+06 AGE -1.83e+01 1.09e-02 6.69e+01 8.78e+00 -5.07e+00 -1.51e+02 DEP 4.82e+00 -3.14e-02 -2.52e+01 -2.96e+00 -5.33e+00 -1.03e+02 RACE -5.67e+02 -1.33e+00 1.21e+03 1.81e+02 -9.13e+02 -1.96e+04 SCHOOL 5.33e+00 1.87e-01 1.86e+01 3.12e+00 3.20e+01 7.89e+02 AGE DEP RACE SCHOOL HRS -1.83e+01 4.82e+00 -5.67e+02 5.33e+00 RATE 1.09e-02 -3.14e-02 -1.33e+00 1.87e-01 ERSP 6.69e+01 -2.52e+01 1.21e+03 1.86e+01 ERNO 8.78e+00 -2.96e+00 1.81e+02 3.12e+00 NEIN -5.07e+00 -5.33e+00 -9.13e+02 3.20e+01 ASSET -1.51e+02 -1.03e+02 -1.96e+04 7.89e+02 AGE 5.71e-01 -1.56e-01 4.58e+00 -5.00e-02 DEP -1.56e-01 8.08e-02 -3.02e-01 -4.47e-02 RACE 4.58e+00 -3.02e-01 2.36e+02 -4.54e+00 SCHOOL -5.00e-02 -4.47e-02 -4.54e+00 4.23e-01 -------------------------------------------------------- airquality 153 4 56 21.136376 Best subsample: [1] 2 3 8 10 24 25 28 32 33 35 36 37 38 39 40 41 42 43 46 [20] 47 48 49 52 54 56 57 58 59 60 66 67 69 71 72 73 76 78 81 [39] 82 84 86 87 89 90 91 92 96 97 98 100 101 105 106 109 110 111 Outliers: 0 Too many to print ... ------------- Call: CovMrcd(x = x, trace = FALSE) -> Method: Minimum Regularized Covariance Determinant MRCD(alpha=0.5 ==> h=56) Robust Estimate of Location: Ozone Solar.R Wind Temp 41.84 197.21 8.93 80.39 Robust Estimate of Covariance: Ozone Solar.R Wind Temp Ozone 1480.7 1562.8 -99.9 347.3 Solar.R 1562.8 11401.2 -35.2 276.8 Wind -99.9 -35.2 11.4 -23.5 Temp 347.3 276.8 -23.5 107.7 -------------------------------------------------------- attitude 30 7 15 27.040805 Best subsample: [1] 2 3 4 5 7 8 10 12 15 19 22 23 25 27 28 Outliers: 0 Too many to print ... ------------- Call: CovMrcd(x = x, trace = FALSE) -> Method: Minimum Regularized Covariance Determinant MRCD(alpha=0.5 ==> h=15) Robust Estimate of Location: rating complaints privileges learning raises critical 65.8 66.5 50.1 56.1 66.7 78.1 advance 41.7 Robust Estimate of Covariance: rating complaints privileges learning raises critical advance rating 138.77 80.02 59.22 107.33 95.83 -1.24 54.36 complaints 80.02 97.23 50.59 99.50 79.15 -2.71 42.81 privileges 59.22 50.59 84.92 90.03 60.88 22.39 44.93 learning 107.33 99.50 90.03 187.67 128.71 15.48 63.67 raises 95.83 79.15 60.88 128.71 123.94 -1.46 49.98 critical -1.24 -2.71 22.39 15.48 -1.46 61.23 12.88 advance 54.36 42.81 44.93 63.67 49.98 12.88 48.61 -------------------------------------------------------- attenu 182 5 83 9.710111 Best subsample: [1] 41 42 43 44 48 49 51 68 70 72 73 74 75 76 77 82 83 84 85 [20] 86 87 88 89 90 91 92 101 102 103 104 106 107 109 110 111 112 113 114 [39] 115 116 117 121 122 124 125 126 127 128 129 130 131 132 133 134 135 136 137 [58] 138 139 140 141 144 145 146 147 148 149 150 151 152 153 155 156 157 158 159 [77] 160 161 162 163 164 165 166 Outliers: 0 Too many to print ... ------------- Call: CovMrcd(x = x, trace = FALSE) -> Method: Minimum Regularized Covariance Determinant MRCD(alpha=0.5 ==> h=83) Robust Estimate of Location: event mag station dist accel 18.940 5.741 67.988 23.365 0.124 Robust Estimate of Covariance: event mag station dist accel event 2.86e+01 -2.31e+00 1.02e+02 2.68e+01 -1.99e-01 mag -2.31e+00 6.17e-01 -7.03e+00 4.67e-01 2.59e-02 station 1.02e+02 -7.03e+00 1.66e+03 1.62e+02 7.96e-02 dist 2.68e+01 4.67e-01 1.62e+02 3.61e+02 -1.23e+00 accel -1.99e-01 2.59e-02 7.96e-02 -1.23e+00 9.42e-03 -------------------------------------------------------- USJudgeRatings 43 12 22 -23.463708 Best subsample: [1] 2 3 4 6 9 11 15 16 18 19 24 25 26 27 28 29 32 33 34 36 37 38 Outliers: 0 Too many to print ... ------------- Call: CovMrcd(x = x, trace = FALSE) -> Method: Minimum Regularized Covariance Determinant MRCD(alpha=0.5 ==> h=22) Robust Estimate of Location: CONT INTG DMNR DILG CFMG DECI PREP FAMI ORAL WRIT PHYS RTEN 7.24 8.42 8.10 8.19 7.95 8.00 7.96 7.96 7.81 7.89 8.40 8.20 Robust Estimate of Covariance: CONT INTG DMNR DILG CFMG DECI PREP CONT 0.61805 -0.05601 -0.09540 0.00694 0.09853 0.06261 0.03939 INTG -0.05601 0.23560 0.27537 0.20758 0.16603 0.17281 0.21128 DMNR -0.09540 0.27537 0.55349 0.28872 0.24014 0.24293 0.28886 DILG 0.00694 0.20758 0.28872 0.34099 0.23502 0.23917 0.29672 CFMG 0.09853 0.16603 0.24014 0.23502 0.31649 0.23291 0.27651 DECI 0.06261 0.17281 0.24293 0.23917 0.23291 0.30681 0.27737 PREP 0.03939 0.21128 0.28886 0.29672 0.27651 0.27737 0.42020 FAMI 0.04588 0.20388 0.26072 0.29037 0.27179 0.27737 0.34857 ORAL 0.03000 0.21379 0.29606 0.28764 0.27338 0.27424 0.33503 WRIT 0.03261 0.20258 0.26931 0.27962 0.26382 0.26610 0.32677 PHYS -0.04485 0.13598 0.17659 0.16834 0.14554 0.16467 0.18948 RTEN 0.01543 0.22654 0.32117 0.27307 0.23826 0.24669 0.29450 FAMI ORAL WRIT PHYS RTEN CONT 0.04588 0.03000 0.03261 -0.04485 0.01543 INTG 0.20388 0.21379 0.20258 0.13598 0.22654 DMNR 0.26072 0.29606 0.26931 0.17659 0.32117 DILG 0.29037 0.28764 0.27962 0.16834 0.27307 CFMG 0.27179 0.27338 0.26382 0.14554 0.23826 DECI 0.27737 0.27424 0.26610 0.16467 0.24669 PREP 0.34857 0.33503 0.32677 0.18948 0.29450 FAMI 0.47232 0.33762 0.33420 0.19759 0.29015 ORAL 0.33762 0.40361 0.32208 0.19794 0.29544 WRIT 0.33420 0.32208 0.38733 0.19276 0.28184 PHYS 0.19759 0.19794 0.19276 0.20284 0.18097 RTEN 0.29015 0.29544 0.28184 0.18097 0.36877 -------------------------------------------------------- USArrests 50 4 25 17.834643 Best subsample: [1] 4 7 12 13 14 15 16 19 21 23 25 26 27 29 30 32 34 35 36 38 41 45 46 49 50 Outliers: 0 Too many to print ... ------------- Call: CovMrcd(x = x, trace = FALSE) -> Method: Minimum Regularized Covariance Determinant MRCD(alpha=0.5 ==> h=25) Robust Estimate of Location: Murder Assault UrbanPop Rape 5.38 121.68 63.80 16.33 Robust Estimate of Covariance: Murder Assault UrbanPop Rape Murder 17.8 316.3 48.5 31.1 Assault 316.3 6863.0 1040.0 548.9 UrbanPop 48.5 1040.0 424.8 93.6 Rape 31.1 548.9 93.6 63.8 -------------------------------------------------------- longley 16 7 8 31.147844 Best subsample: [1] 5 6 7 9 10 11 13 14 Outliers: 0 Too many to print ... ------------- Call: CovMrcd(x = x, trace = FALSE) -> Method: Minimum Regularized Covariance Determinant MRCD(alpha=0.5 ==> h=8) Robust Estimate of Location: GNP.deflator GNP Unemployed Armed.Forces Population 104.3 410.8 278.8 300.1 118.2 Year Employed 1955.4 66.5 Robust Estimate of Covariance: GNP.deflator GNP Unemployed Armed.Forces Population GNP.deflator 85.0 652.3 784.4 -370.7 48.7 GNP 652.3 7502.9 7328.6 -3414.2 453.9 Unemployed 784.4 7328.6 10760.3 -4646.7 548.1 Armed.Forces -370.7 -3414.2 -4646.7 2824.3 -253.9 Population 48.7 453.9 548.1 -253.9 40.2 Year 33.5 312.7 378.8 -176.1 23.4 Employed 23.9 224.8 263.6 -128.3 16.8 Year Employed GNP.deflator 33.5 23.9 GNP 312.7 224.8 Unemployed 378.8 263.6 Armed.Forces -176.1 -128.3 Population 23.4 16.8 Year 18.9 11.7 Employed 11.7 10.3 -------------------------------------------------------- Loblolly 84 3 42 11.163448 Best subsample: [1] 3 4 5 6 10 21 22 23 24 28 29 33 34 35 36 39 40 41 42 45 46 47 48 51 52 [26] 53 54 57 58 59 63 64 65 66 70 71 76 77 81 82 83 84 Outliers: 0 Too many to print ... ------------- Call: CovMrcd(x = x, trace = FALSE) -> Method: Minimum Regularized Covariance Determinant MRCD(alpha=0.5 ==> h=42) Robust Estimate of Location: height age Seed 44.20 17.26 6.76 Robust Estimate of Covariance: height age Seed height 326.74 139.18 3.50 age 139.18 68.48 -2.72 Seed 3.50 -2.72 25.43 -------------------------------------------------------- quakes 1000 4 500 11.802478 Best subsample: Too long... Outliers: 0 Too many to print ... ------------- Call: CovMrcd(x = x, trace = FALSE) -> Method: Minimum Regularized Covariance Determinant MRCD(alpha=0.5 ==> h=500) Robust Estimate of Location: lat long depth mag -20.59 182.13 432.46 4.42 Robust Estimate of Covariance: lat long depth mag lat 15.841 5.702 -106.720 -0.441 long 5.702 7.426 -577.189 -0.136 depth -106.720 -577.189 66701.479 3.992 mag -0.441 -0.136 3.992 0.144 -------------------------------------------------------- ======================================================== > ##doexactfit() > > proc.time() user system elapsed 6.12 2.12 12.87 rrcov/tests/thubert.R0000644000176200001440000002106314443667016014364 0ustar liggesusersdodata <- function(nrep=1, time=FALSE, short=FALSE, full=TRUE, method=c("hubert", "hubert.mcd", "locantore", "cov", "classic", "grid", "proj")) { ## Test the PcaXxx() functions on the literature datasets: ## ## Call PcaHubert() and the other functions for all regression ## data sets available in robustbase/rrcov and print: ## - execution time (if time == TRUE) ## - loadings ## - eigenvalues ## - scores ## dopca <- function(x, xname, nrep=1){ n <- dim(x)[1] p <- dim(x)[2] if(method == "hubert.mcd") pca <- PcaHubert(x, k=p) else if(method == "hubert") pca <- PcaHubert(x, mcd=FALSE) else if(method == "locantore") pca <- PcaLocantore(x) else if(method == "cov") pca <- PcaCov(x) else if(method == "classic") pca <- PcaClassic(x) else if(method == "grid") pca <- PcaGrid(x) else if(method == "proj") pca <- PcaProj(x) else stop("Undefined PCA method: ", method) e1 <- getEigenvalues(pca)[1] e2 <- getEigenvalues(pca)[2] k <- pca@k if(time){ xtime <- system.time(dorep(x, nrep, method))[1]/nrep xres <- sprintf("%3d %3d %3d %12.6f %12.6f %10.3f\n", dim(x)[1], dim(x)[2], k, e1, e2, xtime) } else{ xres <- sprintf("%3d %3d %3d %12.6f %12.6f\n", dim(x)[1], dim(x)[2], k, e1, e2) } lpad<-lname-nchar(xname) cat(pad.right(xname, lpad), xres) if(!short){ cat("Scores: \n") print(getScores(pca)) if(full){ cat("-------------\n") show(pca) } cat("----------------------------------------------------------\n") } } stopifnot(length(nrep) == 1, nrep >= 1) method <- match.arg(method) options(digits = 5) set.seed(101) # <<-- sub-sampling algorithm now based on R's RNG and seed lname <- 20 ## VT::15.09.2013 - this will render the output independent ## from the version of the package suppressPackageStartupMessages(library(rrcov)) data(Animals, package = "MASS") brain <- Animals[c(1:24, 26:25, 27:28),] tmp <- sys.call() cat("\nCall: ", deparse(substitute(tmp)),"\n") cat("Data Set n p k e1 e2\n") cat("==========================================================\n") dopca(heart[, 1:2], data(heart), nrep) dopca(starsCYG, data(starsCYG), nrep) dopca(data.matrix(subset(phosphor, select = -plant)), data(phosphor), nrep) dopca(stack.x, data(stackloss), nrep) ## dopca(data.matrix(subset(coleman, select = -Y)), data(coleman), nrep) # differences between the architectures dopca(data.matrix(subset(salinity, select = -Y)), data(salinity), nrep) ## dopca(data.matrix(subset(wood, select = -y)), data(wood), nrep) # differences between the architectures dopca(data.matrix(subset(hbk, select = -Y)),data(hbk), nrep) ## dopca(brain, "Animals", nrep) dopca(milk, data(milk), nrep) dopca(bushfire, data(bushfire), nrep) cat("==========================================================\n") } dogen <- function(nrep=1, eps=0.49, method=c("hubert", "hubert.mcd", "locantore", "cov")){ dopca <- function(x, nrep=1){ gc() xtime <- system.time(dorep(x, nrep, method))[1]/nrep cat(sprintf("%6d %3d %10.2f\n", dim(x)[1], dim(x)[2], xtime)) xtime } set.seed(1234) ## VT::15.09.2013 - this will render the output independent ## from the version of the package suppressPackageStartupMessages(library(rrcov)) library(MASS) method <- match.arg(method) ap <- c(2, 5, 10, 20, 30) an <- c(100, 500, 1000, 10000, 50000) tottime <- 0 cat(" n p Time\n") cat("=====================\n") for(i in 1:length(an)) { for(j in 1:length(ap)) { n <- an[i] p <- ap[j] if(5*p <= n){ xx <- gendata(n, p, eps) X <- xx$X ## print(dimnames(X)) tottime <- tottime + dopca(X, nrep) } } } cat("=====================\n") cat("Total time: ", tottime*nrep, "\n") } dorep <- function(x, nrep=1, method=c("hubert", "hubert.mcd", "locantore", "cov")){ method <- match.arg(method) for(i in 1:nrep) if(method == "hubert.mcd") PcaHubert(x) else if(method == "hubert") PcaHubert(x, mcd=FALSE) else if(method == "locantore") PcaLocantore(x) else if(method == "cov") PcaCov(x) else stop("Undefined PCA method: ", method) } #### gendata() #### # Generates a location contaminated multivariate # normal sample of n observations in p dimensions # (1-eps)*Np(0,Ip) + eps*Np(m,Ip) # where # m = (b,b,...,b) # Defaults: eps=0 and b=10 # gendata <- function(n,p,eps=0,b=10){ if(missing(n) || missing(p)) stop("Please specify (n,p)") if(eps < 0 || eps >= 0.5) stop(message="eps must be in [0,0.5)") X <- mvrnorm(n,rep(0,p),diag(1,nrow=p,ncol=p)) nbad <- as.integer(eps * n) xind <- vector("numeric") if(nbad > 0){ Xbad <- mvrnorm(nbad,rep(b,p),diag(1,nrow=p,ncol=p)) xind <- sample(n,nbad) X[xind,] <- Xbad } list(X=X, xind=xind) } pad.right <- function(z, pads) { ### Pads spaces to right of text padding <- paste(rep(" ", pads), collapse = "") paste(z, padding, sep = "") } whatis <- function(x){ if(is.data.frame(x)) cat("Type: data.frame\n") else if(is.matrix(x)) cat("Type: matrix\n") else if(is.vector(x)) cat("Type: vector\n") else cat("Type: don't know\n") } ################################################################# ## VT::27.08.2010 ## bug report from Stephen Milborrow ## test.case.1 <- function() { X <- matrix(c( -0.79984, -1.00103, 0.899794, 0.00000, 0.34279, 0.52832, -1.303783, -1.17670, -0.79984, -1.00103, 0.899794, 0.00000, 0.34279, 0.52832, -1.303783, -1.17670, 0.34279, 0.52832, -1.303783, -1.17670, 1.48542, 0.66735, 0.716162, 1.17670, -0.79984, -1.00103, 0.899794, 0.00000, 1.69317, 1.91864, -0.018363, 1.76505, -1.00759, -0.16684, -0.385626, 0.58835, -0.79984, -1.00103, 0.899794, 0.00000), ncol=4, byrow=TRUE) cc1 <- PcaHubert(X, k=3) cc2 <- PcaLocantore(X, k=3) cc3 <- PcaCov(X, k=3, cov.control=CovControlSest()) cc4 <- PcaProj(X, k=2) # with k=3 will produce warnings in .distances - too small eignevalues cc5 <- PcaGrid(X, k=2) # dito list(cc1, cc2, cc3, cc4, cc5) } ################################################################# ## VT::05.08.2016 ## bug report from Matthieu Lesnoff ## test.case.2 <- function() { do.test.case.2 <- function(z) { if(missing(z)) { set.seed(12345678) n <- 5 z <- data.frame(v1 = rnorm(n), v2 = rnorm(n), v3 = rnorm(n)) z } fm <- PcaLocantore(z, k = 2, scale = TRUE) fm@scale apply(z, MARGIN = 2, FUN = mad) scale(z, center = fm@center, scale = fm@scale) T <- fm@scores P <- fm@loadings E <- scale(z, center = fm@center, scale = fm@scale) - T %*% t(P) d2 <- apply(E^2, MARGIN = 1, FUN = sum) ## print(sqrt(d2)); print(fm@od) print(ret <- all.equal(sqrt(d2), fm@od)) ret } do.test.case.2() do.test.case.2(phosphor) do.test.case.2(stackloss) do.test.case.2(salinity) do.test.case.2(hbk) do.test.case.2(milk) do.test.case.2(bushfire) data(rice); do.test.case.2(rice) data(un86); do.test.case.2(un86) } ## VT::15.09.2013 - this will render the output independent ## from the version of the package suppressPackageStartupMessages(library(rrcov)) dodata(method="classic") dodata(method="hubert.mcd") dodata(method="hubert") dodata(method="locantore") dodata(method="cov") dodata(method="grid") ## IGNORE_RDIFF_BEGIN dodata(method="proj") ## IGNORE_RDIFF_END ## VT::14.11.2018 - commented out - on some platforms PcaHubert will choose only 1 PC ## and will show difference ## test.case.1() test.case.2() rrcov/tests/togk4.R0000644000176200001440000000531214443667016013736 0ustar liggesusers## VT::15.09.2013 - this will render the output independent ## from the version of the package suppressPackageStartupMessages(library(rrcov)) ## VT::14.01.2020 ## On some platforms minor differences are shown - use ## IGNORE_RDIFF_BEGIN ## IGNORE_RDIFF_END dodata <- function(nrep=1, time=FALSE, short=FALSE, full=TRUE, method = c("FASTMCD","MASS")){ domcd <- function(x, xname, nrep=1){ n <- dim(x)[1] p <- dim(x)[2] mcd<-CovOgk(x) xres <- sprintf("%3d %3d\n", dim(x)[1], dim(x)[2]) lpad<-lname-nchar(xname) cat(pad.right(xname,lpad), xres) dist <- getDistance(mcd) quantiel <- qchisq(0.975, p) ibad <- which(dist >= quantiel) names(ibad) <- NULL nbad <- length(ibad) cat("Outliers: ",nbad,"\n") if(nbad > 0) print(ibad) cat("-------------\n") show(mcd) cat("--------------------------------------------------------\n") } lname <- 20 ## VT::15.09.2013 - this will render the output independent ## from the version of the package suppressPackageStartupMessages(library(rrcov)) method <- match.arg(method) data(heart) data(starsCYG) data(phosphor) data(stackloss) data(coleman) data(salinity) data(wood) data(hbk) data(Animals, package = "MASS") brain <- Animals[c(1:24, 26:25, 27:28),] data(milk) data(bushfire) tmp <- sys.call() cat("\nCall: ", deparse(substitute(tmp)),"\n") cat("Data Set n p Half LOG(obj) Time\n") cat("========================================================\n") domcd(heart[, 1:2], data(heart), nrep) ## This will not work within the function, of course ## - comment it out ## IGNORE_RDIFF_BEGIN ## domcd(starsCYG,data(starsCYG), nrep) ## IGNORE_RDIFF_END domcd(data.matrix(subset(phosphor, select = -plant)), data(phosphor), nrep) domcd(stack.x,data(stackloss), nrep) domcd(data.matrix(subset(coleman, select = -Y)), data(coleman), nrep) domcd(data.matrix(subset(salinity, select = -Y)), data(salinity), nrep) ## IGNORE_RDIFF_BEGIN ## domcd(data.matrix(subset(wood, select = -y)), data(wood), nrep) ## IGNORE_RDIFF_END domcd(data.matrix(subset(hbk, select = -Y)), data(hbk), nrep) domcd(brain, "Animals", nrep) domcd(milk, data(milk), nrep) domcd(bushfire, data(bushfire), nrep) cat("========================================================\n") } pad.right <- function(z, pads) { ### Pads spaces to right of text padding <- paste(rep(" ", pads), collapse = "") paste(z, padding, sep = "") } dodata() rrcov/tests/tlda.Rout.save0000644000176200001440000014767514443667016015342 0ustar liggesusers R Under development (unstable) (2023-03-23 r84036 ucrt) -- "Unsuffered Consequences" Copyright (C) 2023 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > ## VT::15.09.2013 - this will render the output independent > ## from the version of the package > suppressPackageStartupMessages(library(rrcov)) > library(MASS) > > ## VT::14.01.2020 > ## On some platforms minor differences are shown - use > ## IGNORE_RDIFF_BEGIN > ## IGNORE_RDIFF_END > > dodata <- function(method) { + + options(digits = 5) + set.seed(101) # <<-- sub-sampling algorithm now based on R's RNG and seed + + tmp <- sys.call() + cat("\nCall: ", deparse(substitute(tmp)),"\n") + cat("===================================================\n") + + cat("\nData: ", "hemophilia\n") + data(hemophilia) + show(rlda <- Linda(as.factor(gr)~., data=hemophilia, method=method)) + show(predict(rlda)) + + cat("\nData: ", "anorexia\n") + data(anorexia) + show(rlda <- Linda(Treat~., data=anorexia, method=method)) + show(predict(rlda)) + + cat("\nData: ", "Pima\n") + data(Pima.tr) + show(rlda <- Linda(type~., data=Pima.tr, method=method)) + show(predict(rlda)) + + cat("\nData: ", "Forest soils\n") + data(soil) + soil1983 <- soil[soil$D == 0, -2] # only 1983, remove column D (always 0) + + ## This will not work within the function, of course + ## - comment it out + ## IGNORE_RDIFF_BEGIN + rlda <- Linda(F~., data=soil1983, method=method) + ## show(rlda) + ## IGNORE_RDIFF_END + show(predict(rlda)) + + cat("\nData: ", "Raven and Miller diabetes data\n") + data(diabetes) + show(rlda <- Linda(group~insulin+glucose+sspg, data=diabetes, method=method)) + show(predict(rlda)) + + cat("\nData: ", "iris\n") + data(iris) + if(method != "mcdA") + { + show(rlda <- Linda(Species~., data=iris, method=method, l1med=TRUE)) + show(predict(rlda)) + } + + cat("\nData: ", "crabs\n") + data(crabs) + show(rlda <- Linda(sp~., data=crabs, method=method)) + show(predict(rlda)) + + cat("\nData: ", "fish\n") + data(fish) + fish <- fish[-14,] # remove observation #14 containing missing value + + # The height and width are calculated as percentages + # of the third length variable + fish[,5] <- fish[,5]*fish[,4]/100 + fish[,6] <- fish[,6]*fish[,4]/100 + + ## There is one class with only 6 observations (p=6). Normally + ## Linda will fail, therefore use l1med=TRUE. + ## This works only for methods mcdB and mcdC + + table(fish$Species) + if(method != "mcdA") + { + ## IGNORE_RDIFF_BEGIN + rlda <- Linda(Species~., data=fish, method=method, l1med=TRUE) + ## show(rlda) + ## IGNORE_RDIFF_END + show(predict(rlda)) + } + + cat("\nData: ", "pottery\n") + data(pottery) + show(rlda <- Linda(origin~., data=pottery, method=method)) + show(predict(rlda)) + + cat("\nData: ", "olitos\n") + data(olitos) + if(method != "mcdA") + { + ## IGNORE_RDIFF_BEGIN + rlda <- Linda(grp~., data=olitos, method=method, l1med=TRUE) + ## show(rlda) + ## IGNORE_RDIFF_END + show(predict(rlda)) + } + + cat("===================================================\n") + } > > > ## -- now do it: > dodata(method="mcdA") Call: dodata(method = "mcdA") =================================================== Data: hemophilia Call: Linda(as.factor(gr) ~ ., data = hemophilia, method = method) Prior Probabilities of Groups: carrier normal 0.6 0.4 Group means: AHFactivity AHFantigen carrier -0.30795 -0.0059911 normal -0.12920 -0.0603000 Within-groups Covariance Matrix: AHFactivity AHFantigen AHFactivity 0.018036 0.011853 AHFantigen 0.011853 0.019185 Linear Coeficients: AHFactivity AHFantigen carrier -28.4029 17.2368 normal -8.5834 2.1602 Constants: carrier normal -4.8325 -1.4056 Apparent error rate 0.1333 Classification table Predicted Actual carrier normal carrier 39 6 normal 4 26 Confusion matrix Predicted Actual carrier normal carrier 0.867 0.133 normal 0.133 0.867 Data: anorexia Call: Linda(Treat ~ ., data = anorexia, method = method) Prior Probabilities of Groups: CBT Cont FT 0.40278 0.36111 0.23611 Group means: Prewt Postwt CBT 82.633 82.950 Cont 81.558 81.108 FT 84.331 94.762 Within-groups Covariance Matrix: Prewt Postwt Prewt 26.9291 3.3862 Postwt 3.3862 18.2368 Linear Coeficients: Prewt Postwt CBT 2.5563 4.0738 Cont 2.5284 3.9780 FT 2.5374 4.7250 Constants: CBT Cont FT -275.49 -265.45 -332.31 Apparent error rate 0.3889 Classification table Predicted Actual CBT Cont FT CBT 16 5 8 Cont 11 15 0 FT 0 4 13 Confusion matrix Predicted Actual CBT Cont FT CBT 0.552 0.172 0.276 Cont 0.423 0.577 0.000 FT 0.000 0.235 0.765 Data: Pima Call: Linda(type ~ ., data = Pima.tr, method = method) Prior Probabilities of Groups: No Yes 0.66 0.34 Group means: npreg glu bp skin bmi ped age No 1.8602 107.69 67.344 25.29 30.642 0.40777 24.667 Yes 5.3167 145.85 74.283 31.80 34.095 0.49533 37.883 Within-groups Covariance Matrix: npreg glu bp skin bmi ped age npreg 8.51105 -5.61029 4.756672 1.52732 0.82066 -0.010070 12.382693 glu -5.61029 656.11894 49.855724 16.67486 23.07833 -0.352475 17.724967 bp 4.75667 49.85572 119.426757 29.64563 12.90698 -0.049538 21.287178 skin 1.52732 16.67486 29.645632 113.19900 44.15972 -0.157594 6.741105 bmi 0.82066 23.07833 12.906985 44.15972 35.54164 0.038640 1.481520 ped -0.01007 -0.35247 -0.049538 -0.15759 0.03864 0.062664 -0.069636 age 12.38269 17.72497 21.287178 6.74110 1.48152 -0.069636 64.887154 Linear Coeficients: npreg glu bp skin bmi ped age No -0.45855 0.092789 0.45848 -0.30675 1.0075 6.2670 0.30749 Yes -0.22400 0.150013 0.44787 -0.26148 1.0015 8.2935 0.45187 Constants: No Yes -37.050 -51.586 Apparent error rate 0.22 Classification table Predicted Actual No Yes No 107 25 Yes 19 49 Confusion matrix Predicted Actual No Yes No 0.811 0.189 Yes 0.279 0.721 Data: Forest soils Apparent error rate 0.3103 Classification table Predicted Actual 1 2 3 1 7 2 2 2 3 13 7 3 1 3 20 Confusion matrix Predicted Actual 1 2 3 1 0.636 0.182 0.182 2 0.130 0.565 0.304 3 0.042 0.125 0.833 Data: Raven and Miller diabetes data Call: Linda(group ~ insulin + glucose + sspg, data = diabetes, method = method) Prior Probabilities of Groups: normal chemical overt 0.52414 0.24828 0.22759 Group means: insulin glucose sspg normal 163.939 345.8 99.076 chemical 299.448 476.9 223.621 overt 95.958 1026.4 343.000 Within-groups Covariance Matrix: insulin glucose sspg insulin 7582.0 -1263.1 1095.8 glucose -1263.1 18952.4 4919.3 sspg 1095.8 4919.3 3351.2 Linear Coeficients: insulin glucose sspg normal 0.027694 0.023859 -0.014514 chemical 0.040288 0.022532 0.020479 overt 0.017144 0.048768 0.025158 Constants: normal chemical overt -6.3223 -15.0879 -31.6445 Apparent error rate 0.1862 Classification table Predicted Actual normal chemical overt normal 69 7 0 chemical 13 23 0 overt 2 5 26 Confusion matrix Predicted Actual normal chemical overt normal 0.908 0.092 0.000 chemical 0.361 0.639 0.000 overt 0.061 0.152 0.788 Data: iris Data: crabs Call: Linda(sp ~ ., data = crabs, method = method) Prior Probabilities of Groups: B O 0.5 0.5 Group means: sexM index FL RW CL CW BD B 0.34722 27.333 14.211 12.253 30.397 35.117 12.765 O 0.56627 25.554 17.131 13.405 34.247 38.155 15.525 Within-groups Covariance Matrix: sexM index FL RW CL CW BD sexM 0.26391 0.76754 0.18606 -0.33763 0.65944 0.59857 0.28932 index 0.76754 191.38080 38.42685 26.32923 82.43953 91.89091 38.13688 FL 0.18606 38.42685 8.50147 5.68789 18.13749 20.30739 8.30920 RW -0.33763 26.32923 5.68789 4.95782 11.90225 13.61117 5.45814 CL 0.65944 82.43953 18.13749 11.90225 39.60115 44.10886 18.09504 CW 0.59857 91.89091 20.30739 13.61117 44.10886 49.42616 20.17554 BD 0.28932 38.13688 8.30920 5.45814 18.09504 20.17554 8.39525 Linear Coeficients: sexM index FL RW CL CW BD B 29.104 -2.4938 10.809 15.613 0.8320 -4.2978 -0.46788 O 42.470 -3.9361 26.427 22.857 2.8582 -17.1526 12.31048 Constants: B O -78.317 -159.259 Apparent error rate 0 Classification table Predicted Actual B O B 100 0 O 0 100 Confusion matrix Predicted Actual B O B 1 0 O 0 1 Data: fish Data: pottery Call: Linda(origin ~ ., data = pottery, method = method) Prior Probabilities of Groups: Attic Eritrean 0.48148 0.51852 Group means: SI AL FE MG CA TI Attic 55.36 13.73 9.82 5.45 6.03 0.863 Eritrean 52.52 16.23 9.13 3.09 6.26 0.814 Within-groups Covariance Matrix: SI AL FE MG CA TI SI 13.5941404 2.986675 -0.651132 0.173577 -0.350984 -0.0051996 AL 2.9866747 1.622412 0.485167 0.712400 0.077443 0.0133306 FE -0.6511317 0.485167 1.065427 -0.403601 -1.936552 0.0576472 MG 0.1735766 0.712400 -0.403601 2.814948 3.262786 -0.0427129 CA -0.3509837 0.077443 -1.936552 3.262786 7.720320 -0.1454065 TI -0.0051996 0.013331 0.057647 -0.042713 -0.145406 0.0044093 Linear Coeficients: SI AL FE MG CA TI Attic 63.235 -196.99 312.92 7.28960 57.082 -1272.23 Eritrean 41.554 -123.49 201.47 -0.95431 43.616 -597.91 Constants: Attic Eritrean -1578.14 -901.13 Apparent error rate 0.1111 Classification table Predicted Actual Attic Eritrean Attic 12 1 Eritrean 2 12 Confusion matrix Predicted Actual Attic Eritrean Attic 0.923 0.077 Eritrean 0.143 0.857 Data: olitos =================================================== > dodata(method="mcdB") Call: dodata(method = "mcdB") =================================================== Data: hemophilia Call: Linda(as.factor(gr) ~ ., data = hemophilia, method = method) Prior Probabilities of Groups: carrier normal 0.6 0.4 Group means: AHFactivity AHFantigen carrier -0.31456 -0.014775 normal -0.13582 -0.069084 Within-groups Covariance Matrix: AHFactivity AHFantigen AHFactivity 0.0125319 0.0086509 AHFantigen 0.0086509 0.0182424 Linear Coeficients: AHFactivity AHFantigen carrier -36.486 16.4923 normal -12.226 2.0107 Constants: carrier normal -6.1276 -1.6771 Apparent error rate 0.16 Classification table Predicted Actual carrier normal carrier 38 7 normal 5 25 Confusion matrix Predicted Actual carrier normal carrier 0.844 0.156 normal 0.167 0.833 Data: anorexia Call: Linda(Treat ~ ., data = anorexia, method = method) Prior Probabilities of Groups: CBT Cont FT 0.40278 0.36111 0.23611 Group means: Prewt Postwt CBT 83.254 82.381 Cont 82.178 80.539 FT 84.951 94.193 Within-groups Covariance Matrix: Prewt Postwt Prewt 19.1751 8.8546 Postwt 8.8546 25.2326 Linear Coeficients: Prewt Postwt CBT 3.3822 2.0780 Cont 3.3555 2.0144 FT 3.2299 2.5996 Constants: CBT Cont FT -227.29 -220.01 -261.06 Apparent error rate 0.4444 Classification table Predicted Actual CBT Cont FT CBT 16 5 8 Cont 12 11 3 FT 0 4 13 Confusion matrix Predicted Actual CBT Cont FT CBT 0.552 0.172 0.276 Cont 0.462 0.423 0.115 FT 0.000 0.235 0.765 Data: Pima Call: Linda(type ~ ., data = Pima.tr, method = method) Prior Probabilities of Groups: No Yes 0.66 0.34 Group means: npreg glu bp skin bmi ped age No 2.0767 109.45 67.790 26.158 30.930 0.41455 24.695 Yes 5.5938 145.40 74.748 33.754 34.501 0.49898 37.821 Within-groups Covariance Matrix: npreg glu bp skin bmi ped age npreg 6.601330 9.54054 7.33480 3.5803 1.66539 -0.019992 10.661763 glu 9.540535 573.03642 60.57124 28.3698 30.28444 -0.436611 28.318034 bp 7.334803 60.57124 112.03792 27.7566 13.54085 -0.040510 24.692240 skin 3.580339 28.36976 27.75661 112.0036 47.22411 0.100399 13.408195 bmi 1.665393 30.28444 13.54085 47.2241 38.37753 0.175891 6.640765 ped -0.019992 -0.43661 -0.04051 0.1004 0.17589 0.062551 -0.070673 age 10.661763 28.31803 24.69224 13.4082 6.64077 -0.070673 40.492363 Linear Coeficients: npreg glu bp skin bmi ped age No -1.3073 0.10851 0.48404 -0.30638 0.86002 5.9796 0.55388 Yes -1.3136 0.16260 0.44480 -0.25518 0.79826 8.1199 0.86269 Constants: No Yes -38.774 -53.654 Apparent error rate 0.25 Classification table Predicted Actual No Yes No 104 28 Yes 22 46 Confusion matrix Predicted Actual No Yes No 0.788 0.212 Yes 0.324 0.676 Data: Forest soils Apparent error rate 0.3448 Classification table Predicted Actual 1 2 3 1 4 3 4 2 2 14 7 3 2 2 20 Confusion matrix Predicted Actual 1 2 3 1 0.364 0.273 0.364 2 0.087 0.609 0.304 3 0.083 0.083 0.833 Data: Raven and Miller diabetes data Call: Linda(group ~ insulin + glucose + sspg, data = diabetes, method = method) Prior Probabilities of Groups: normal chemical overt 0.52414 0.24828 0.22759 Group means: insulin glucose sspg normal 152.405 346.55 99.387 chemical 288.244 478.80 226.226 overt 84.754 1028.28 345.605 Within-groups Covariance Matrix: insulin glucose sspg insulin 5061.46 289.69 2071.71 glucose 289.69 1983.07 385.31 sspg 2071.71 385.31 3000.17 Linear Coeficients: insulin glucose sspg normal 0.021952 0.17236 -0.0041671 chemical 0.034852 0.23217 0.0215200 overt -0.045700 0.50940 0.0813292 Constants: normal chemical overt -31.976 -64.433 -275.502 Apparent error rate 0.0966 Classification table Predicted Actual normal chemical overt normal 73 3 0 chemical 4 32 0 overt 0 7 26 Confusion matrix Predicted Actual normal chemical overt normal 0.961 0.039 0.000 chemical 0.111 0.889 0.000 overt 0.000 0.212 0.788 Data: iris Call: Linda(Species ~ ., data = iris, method = method, l1med = TRUE) Prior Probabilities of Groups: setosa versicolor virginica 0.33333 0.33333 0.33333 Group means: Sepal.Length Sepal.Width Petal.Length Petal.Width setosa 4.9834 3.4153 1.4532 0.22474 versicolor 5.8947 2.8149 4.2263 1.35024 virginica 6.5255 3.0017 5.4485 2.06756 Within-groups Covariance Matrix: Sepal.Length Sepal.Width Petal.Length Petal.Width Sepal.Length 0.201176 0.084299 0.102984 0.037019 Sepal.Width 0.084299 0.108394 0.050253 0.031757 Petal.Length 0.102984 0.050253 0.120215 0.045016 Petal.Width 0.037019 0.031757 0.045016 0.032825 Linear Coeficients: Sepal.Length Sepal.Width Petal.Length Petal.Width setosa 22.536 27.422168 -3.6855 -40.0445 versicolor 17.559 6.374082 24.1965 -18.0178 virginica 16.488 0.015576 29.9586 3.2926 Constants: setosa versicolor virginica -96.901 -100.790 -139.937 Apparent error rate 0.0267 Classification table Predicted Actual setosa versicolor virginica setosa 50 0 0 versicolor 0 48 2 virginica 0 2 48 Confusion matrix Predicted Actual setosa versicolor virginica setosa 1 0.00 0.00 versicolor 0 0.96 0.04 virginica 0 0.04 0.96 Data: crabs Call: Linda(sp ~ ., data = crabs, method = method) Prior Probabilities of Groups: B O 0.5 0.5 Group means: sexM index FL RW CL CW BD B 0.41060 25.420 13.947 11.922 29.783 34.404 12.470 O 0.60279 23.202 16.782 13.086 33.401 37.230 15.131 Within-groups Covariance Matrix: sexM index FL RW CL CW BD sexM 0.27470 0.24656 0.12787 -0.34713 0.48937 0.41525 0.20253 index 0.24656 204.06823 42.17347 28.25816 89.28109 100.21077 40.74069 FL 0.12787 42.17347 9.45366 6.24808 19.97936 22.49310 9.03804 RW -0.34713 28.25816 6.24808 5.12921 13.01576 14.90535 5.89729 CL 0.48937 89.28109 19.97936 13.01576 43.06030 48.30814 19.44568 CW 0.41525 100.21077 22.49310 14.90535 48.30814 54.45265 21.82356 BD 0.20253 40.74069 9.03804 5.89729 19.44568 21.82356 8.89498 Linear Coeficients: sexM index FL RW CL CW BD B 12.295 -2.3199 7.2512 9.4085 2.2846 -2.6196 -0.42557 O 13.138 -3.7530 21.1374 11.5680 5.0125 -13.9120 12.61928 Constants: B O -66.688 -134.375 Apparent error rate 0 Classification table Predicted Actual B O B 100 0 O 0 100 Confusion matrix Predicted Actual B O B 1 0 O 0 1 Data: fish Apparent error rate 0.0949 Classification table Predicted Actual 1 2 3 4 5 6 7 1 34 0 0 0 0 0 0 2 0 6 0 0 0 0 0 3 0 0 20 0 0 0 0 4 0 0 0 11 0 0 0 5 0 0 0 0 13 0 1 6 0 0 0 0 0 17 0 7 0 13 0 0 1 0 42 Confusion matrix Predicted Actual 1 2 3 4 5 6 7 1 1 0.000 0 0 0.000 0 0.000 2 0 1.000 0 0 0.000 0 0.000 3 0 0.000 1 0 0.000 0 0.000 4 0 0.000 0 1 0.000 0 0.000 5 0 0.000 0 0 0.929 0 0.071 6 0 0.000 0 0 0.000 1 0.000 7 0 0.232 0 0 0.018 0 0.750 Data: pottery Call: Linda(origin ~ ., data = pottery, method = method) Prior Probabilities of Groups: Attic Eritrean 0.48148 0.51852 Group means: SI AL FE MG CA TI Attic 55.362 13.847 10.0065 5.3141 5.5371 0.87124 Eritrean 52.522 16.347 9.3165 2.9541 5.7671 0.82224 Within-groups Covariance Matrix: SI AL FE MG CA TI SI 9.708953 2.3634831 -0.112005 0.514666 -0.591122 0.0253885 AL 2.363483 0.8510105 0.044491 0.485132 0.241384 0.0023349 FE -0.112005 0.0444910 0.247768 -0.263894 -0.503218 0.0163218 MG 0.514666 0.4851316 -0.263894 1.608899 1.516228 -0.0292787 CA -0.591122 0.2413842 -0.503218 1.516228 2.455516 -0.0531548 TI 0.025389 0.0023349 0.016322 -0.029279 -0.053155 0.0017412 Linear Coeficients: SI AL FE MG CA TI Attic 112.705 -368.69 530.54 7.5837 149.60 -927.45 Eritrean 77.198 -244.65 366.95 -3.7987 116.88 -260.83 Constants: Attic Eritrean -3252.6 -1961.9 Apparent error rate 0.1111 Classification table Predicted Actual Attic Eritrean Attic 12 1 Eritrean 2 12 Confusion matrix Predicted Actual Attic Eritrean Attic 0.923 0.077 Eritrean 0.143 0.857 Data: olitos Apparent error rate 0.15 Classification table Predicted Actual 1 2 3 4 1 44 1 4 1 2 2 23 0 0 3 6 1 26 1 4 1 1 0 9 Confusion matrix Predicted Actual 1 2 3 4 1 0.880 0.020 0.080 0.020 2 0.080 0.920 0.000 0.000 3 0.176 0.029 0.765 0.029 4 0.091 0.091 0.000 0.818 =================================================== > dodata(method="mcdC") Call: dodata(method = "mcdC") =================================================== Data: hemophilia Call: Linda(as.factor(gr) ~ ., data = hemophilia, method = method) Prior Probabilities of Groups: carrier normal 0.6 0.4 Group means: AHFactivity AHFantigen carrier -0.32583 -0.011545 normal -0.12783 -0.071377 Within-groups Covariance Matrix: AHFactivity AHFantigen AHFactivity 0.0120964 0.0075536 AHFantigen 0.0075536 0.0164883 Linear Coeficients: AHFactivity AHFantigen carrier -37.117 16.30377 normal -11.015 0.71742 Constants: carrier normal -6.4636 -1.5947 Apparent error rate 0.16 Classification table Predicted Actual carrier normal carrier 38 7 normal 5 25 Confusion matrix Predicted Actual carrier normal carrier 0.844 0.156 normal 0.167 0.833 Data: anorexia Call: Linda(Treat ~ ., data = anorexia, method = method) Prior Probabilities of Groups: CBT Cont FT 0.40278 0.36111 0.23611 Group means: Prewt Postwt CBT 82.477 82.073 Cont 82.039 80.835 FT 85.242 94.750 Within-groups Covariance Matrix: Prewt Postwt Prewt 19.6589 8.3891 Postwt 8.3891 22.8805 Linear Coeficients: Prewt Postwt CBT 3.1590 2.4288 Cont 3.1599 2.3743 FT 3.0454 3.0245 Constants: CBT Cont FT -230.85 -226.60 -274.53 Apparent error rate 0.4583 Classification table Predicted Actual CBT Cont FT CBT 16 5 8 Cont 14 10 2 FT 0 4 13 Confusion matrix Predicted Actual CBT Cont FT CBT 0.552 0.172 0.276 Cont 0.538 0.385 0.077 FT 0.000 0.235 0.765 Data: Pima Call: Linda(type ~ ., data = Pima.tr, method = method) Prior Probabilities of Groups: No Yes 0.66 0.34 Group means: npreg glu bp skin bmi ped age No 2.3056 110.63 67.991 26.444 31.010 0.41653 25.806 Yes 5.0444 142.58 74.267 33.067 34.309 0.49422 35.156 Within-groups Covariance Matrix: npreg glu bp skin bmi ped age npreg 6.164422 8.43753 6.879286 3.252980 1.54269 -0.020158 9.543745 glu 8.437528 542.79578 57.156929 26.218837 28.63494 -0.421819 23.809124 bp 6.879286 57.15693 106.687356 26.315526 12.86691 -0.039577 22.992973 skin 3.252980 26.21884 26.315526 106.552759 44.95420 0.094311 12.005740 bmi 1.542689 28.63494 12.866911 44.954202 36.56262 0.167258 6.112925 ped -0.020158 -0.42182 -0.039577 0.094311 0.16726 0.059609 -0.072712 age 9.543745 23.80912 22.992973 12.005740 6.11292 -0.072712 35.594886 Linear Coeficients: npreg glu bp skin bmi ped age No -1.4165 0.11776 0.49336 -0.31564 0.88761 6.5013 0.67462 Yes -1.3784 0.17062 0.46662 -0.26771 0.83745 8.5204 0.90557 Constants: No Yes -41.716 -55.056 Apparent error rate 0.235 Classification table Predicted Actual No Yes No 107 25 Yes 22 46 Confusion matrix Predicted Actual No Yes No 0.811 0.189 Yes 0.324 0.676 Data: Forest soils Apparent error rate 0.3276 Classification table Predicted Actual 1 2 3 1 5 2 4 2 2 13 8 3 1 2 21 Confusion matrix Predicted Actual 1 2 3 1 0.455 0.182 0.364 2 0.087 0.565 0.348 3 0.042 0.083 0.875 Data: Raven and Miller diabetes data Call: Linda(group ~ insulin + glucose + sspg, data = diabetes, method = method) Prior Probabilities of Groups: normal chemical overt 0.52414 0.24828 0.22759 Group means: insulin glucose sspg normal 167.31 348.69 106.44 chemical 247.18 478.18 213.36 overt 101.83 932.92 322.42 Within-groups Covariance Matrix: insulin glucose sspg insulin 4070.84 118.89 1701.54 glucose 118.89 2195.95 426.95 sspg 1701.54 426.95 2664.49 Linear Coeficients: insulin glucose sspg normal 0.041471 0.15888 -0.011992 chemical 0.048103 0.21216 0.015359 overt -0.013579 0.41323 0.063462 Constants: normal chemical overt -31.177 -59.703 -203.775 Apparent error rate 0.0828 Classification table Predicted Actual normal chemical overt normal 72 4 0 chemical 2 34 0 overt 0 6 27 Confusion matrix Predicted Actual normal chemical overt normal 0.947 0.053 0.000 chemical 0.056 0.944 0.000 overt 0.000 0.182 0.818 Data: iris Call: Linda(Species ~ ., data = iris, method = method, l1med = TRUE) Prior Probabilities of Groups: setosa versicolor virginica 0.33333 0.33333 0.33333 Group means: Sepal.Length Sepal.Width Petal.Length Petal.Width setosa 5.0163 3.4510 1.4653 0.2449 versicolor 5.9435 2.7891 4.2543 1.3239 virginica 6.3867 3.0033 5.3767 2.0700 Within-groups Covariance Matrix: Sepal.Length Sepal.Width Petal.Length Petal.Width Sepal.Length 0.186186 0.082478 0.094998 0.035445 Sepal.Width 0.082478 0.100137 0.049723 0.030678 Petal.Length 0.094998 0.049723 0.113105 0.043078 Petal.Width 0.035445 0.030678 0.043078 0.030885 Linear Coeficients: Sepal.Length Sepal.Width Petal.Length Petal.Width setosa 23.678 30.2896 -3.1124 -44.9900 versicolor 20.342 4.6372 27.3265 -23.2006 virginica 18.377 -2.0004 31.4235 4.0906 Constants: setosa versicolor virginica -104.96 -110.79 -145.49 Apparent error rate 0.0333 Classification table Predicted Actual setosa versicolor virginica setosa 50 0 0 versicolor 0 48 2 virginica 0 3 47 Confusion matrix Predicted Actual setosa versicolor virginica setosa 1 0.00 0.00 versicolor 0 0.96 0.04 virginica 0 0.06 0.94 Data: crabs Call: Linda(sp ~ ., data = crabs, method = method) Prior Probabilities of Groups: B O 0.5 0.5 Group means: sexM index FL RW CL CW BD B 0.50000 23.956 13.790 11.649 29.390 33.934 12.274 O 0.51087 24.478 16.903 13.330 33.707 37.595 15.276 Within-groups Covariance Matrix: sexM index FL RW CL CW BD sexM 0.25272 0.39179 0.14054 -0.30017 0.51191 0.45114 0.21708 index 0.39179 192.47099 39.97343 26.56698 84.63152 94.99987 38.67917 FL 0.14054 39.97343 8.97950 5.91408 18.98672 21.38046 8.60313 RW -0.30017 26.56698 5.91408 4.81389 12.31798 14.10613 5.58933 CL 0.51191 84.63152 18.98672 12.31798 40.94109 45.94330 18.52367 CW 0.45114 94.99987 21.38046 14.10613 45.94330 51.80106 20.79704 BD 0.21708 38.67917 8.60313 5.58933 18.52367 20.79704 8.49355 Linear Coeficients: sexM index FL RW CL CW BD B 13.993 -2.5515 9.152 9.9187 2.2321 -2.9774 -0.66797 O 14.362 -4.0280 23.369 12.1556 5.3672 -14.9236 12.94057 Constants: B O -72.687 -142.365 Apparent error rate 0 Classification table Predicted Actual B O B 100 0 O 0 100 Confusion matrix Predicted Actual B O B 1 0 O 0 1 Data: fish Apparent error rate 0.0316 Classification table Predicted Actual 1 2 3 4 5 6 7 1 34 0 0 0 0 0 0 2 0 5 0 0 1 0 0 3 0 0 20 0 0 0 0 4 0 0 0 11 0 0 0 5 0 0 0 0 13 0 1 6 0 0 0 0 0 17 0 7 0 0 0 0 3 0 53 Confusion matrix Predicted Actual 1 2 3 4 5 6 7 1 1 0.000 0 0 0.000 0 0.000 2 0 0.833 0 0 0.167 0 0.000 3 0 0.000 1 0 0.000 0 0.000 4 0 0.000 0 1 0.000 0 0.000 5 0 0.000 0 0 0.929 0 0.071 6 0 0.000 0 0 0.000 1 0.000 7 0 0.000 0 0 0.054 0 0.946 Data: pottery Call: Linda(origin ~ ., data = pottery, method = method) Prior Probabilities of Groups: Attic Eritrean 0.48148 0.51852 Group means: SI AL FE MG CA TI Attic 55.450 13.738 10.0000 5.0750 5.0750 0.87375 Eritrean 52.444 16.444 9.3222 3.1667 6.1778 0.82000 Within-groups Covariance Matrix: SI AL FE MG CA TI SI 6.565481 1.6098148 -0.075259 0.369556 -0.359407 0.0169667 AL 1.609815 0.5640648 0.029407 0.302056 0.112426 0.0018583 FE -0.075259 0.0294074 0.167704 -0.180222 -0.343704 0.0110667 MG 0.369556 0.3020556 -0.180222 1.031667 0.915222 -0.0192167 CA -0.359407 0.1124259 -0.343704 0.915222 1.447370 -0.0348167 TI 0.016967 0.0018583 0.011067 -0.019217 -0.034817 0.0011725 Linear Coeficients: SI AL FE MG CA TI Attic 190.17 -622.48 922.21 1.5045 293.30 -990.323 Eritrean 135.34 -431.40 666.59 -14.3288 237.68 -44.025 Constants: Attic Eritrean -5924.2 -3802.9 Apparent error rate 0.1111 Classification table Predicted Actual Attic Eritrean Attic 12 1 Eritrean 2 12 Confusion matrix Predicted Actual Attic Eritrean Attic 0.923 0.077 Eritrean 0.143 0.857 Data: olitos Apparent error rate 0.1667 Classification table Predicted Actual 1 2 3 4 1 44 1 2 3 2 2 22 0 1 3 5 2 25 2 4 1 1 0 9 Confusion matrix Predicted Actual 1 2 3 4 1 0.880 0.020 0.040 0.060 2 0.080 0.880 0.000 0.040 3 0.147 0.059 0.735 0.059 4 0.091 0.091 0.000 0.818 =================================================== > dodata(method="mrcd") Call: dodata(method = "mrcd") =================================================== Data: hemophilia Call: Linda(as.factor(gr) ~ ., data = hemophilia, method = method) Prior Probabilities of Groups: carrier normal 0.6 0.4 Group means: AHFactivity AHFantigen carrier -0.34048 -0.055943 normal -0.13566 -0.081191 Within-groups Covariance Matrix: AHFactivity AHFantigen AHFactivity 0.0133676 0.0088055 AHFantigen 0.0088055 0.0221225 Linear Coeficients: AHFactivity AHFantigen carrier -32.264 10.31334 normal -10.478 0.50044 Constants: carrier normal -5.7149 -1.6067 Apparent error rate 0.16 Classification table Predicted Actual carrier normal carrier 38 7 normal 5 25 Confusion matrix Predicted Actual carrier normal carrier 0.844 0.156 normal 0.167 0.833 Data: anorexia Call: Linda(Treat ~ ., data = anorexia, method = method) Prior Probabilities of Groups: CBT Cont FT 0.40278 0.36111 0.23611 Group means: Prewt Postwt CBT 83.114 84.009 Cont 80.327 80.125 FT 85.161 94.371 Within-groups Covariance Matrix: Prewt Postwt Prewt 22.498 11.860 Postwt 11.860 20.426 Linear Coeficients: Prewt Postwt CBT 2.1994 2.8357 Cont 2.1653 2.6654 FT 1.9451 3.4907 Constants: CBT Cont FT -211.42 -194.77 -248.97 Apparent error rate 0.3889 Classification table Predicted Actual CBT Cont FT CBT 15 6 8 Cont 6 16 4 FT 0 4 13 Confusion matrix Predicted Actual CBT Cont FT CBT 0.517 0.207 0.276 Cont 0.231 0.615 0.154 FT 0.000 0.235 0.765 Data: Pima Call: Linda(type ~ ., data = Pima.tr, method = method) Prior Probabilities of Groups: No Yes 0.66 0.34 Group means: npreg glu bp skin bmi ped age No 1.9925 108.32 66.240 24.856 30.310 0.37382 24.747 Yes 5.8855 145.88 75.715 32.541 33.915 0.39281 38.857 Within-groups Covariance Matrix: npreg glu bp skin bmi ped age npreg 4.090330 7.9547 3.818380 3.35899 2.470242 0.032557 9.5929 glu 7.954730 770.4187 76.377665 53.32216 54.100400 -1.139087 28.5677 bp 3.818380 76.3777 108.201622 42.61184 18.574983 -0.089151 20.3558 skin 3.358992 53.3222 42.611844 146.81170 65.210794 -0.277335 15.0162 bmi 2.470242 54.1004 18.574983 65.21079 52.871847 0.062145 9.0741 ped 0.032557 -1.1391 -0.089151 -0.27733 0.062145 0.063490 0.1762 age 9.592948 28.5677 20.355803 15.01616 9.074109 0.176201 53.5163 Linear Coeficients: npreg glu bp skin bmi ped age No -1.30832 0.065773 0.54772 -0.32738 0.70207 5.2556 0.40900 Yes -0.76566 0.106435 0.55777 -0.28044 0.61709 5.9199 0.54892 Constants: No Yes -33.429 -45.434 Apparent error rate 0.28 Classification table Predicted Actual No Yes No 105 27 Yes 29 39 Confusion matrix Predicted Actual No Yes No 0.795 0.205 Yes 0.426 0.574 Data: Forest soils Apparent error rate 0.3448 Classification table Predicted Actual 1 2 3 1 7 2 2 2 4 14 5 3 3 4 17 Confusion matrix Predicted Actual 1 2 3 1 0.636 0.182 0.182 2 0.174 0.609 0.217 3 0.125 0.167 0.708 Data: Raven and Miller diabetes data Call: Linda(group ~ insulin + glucose + sspg, data = diabetes, method = method) Prior Probabilities of Groups: normal chemical overt 0.52414 0.24828 0.22759 Group means: insulin glucose sspg normal 154.014 346.07 91.606 chemical 248.841 451.10 221.936 overt 89.766 1064.16 335.100 Within-groups Covariance Matrix: insulin glucose sspg insulin 4948.1 1007.61 1471.12 glucose 1007.6 2597.38 358.57 sspg 1471.1 358.57 3180.04 Linear Coeficients: insulin glucose sspg normal 0.00027839 0.13121 0.013882 chemical 0.00148074 0.16615 0.050371 overt -0.10102404 0.43466 0.103100 Constants: normal chemical overt -24.008 -44.642 -245.497 Apparent error rate 0.0966 Classification table Predicted Actual normal chemical overt normal 71 5 0 chemical 2 34 0 overt 0 7 26 Confusion matrix Predicted Actual normal chemical overt normal 0.934 0.066 0.000 chemical 0.056 0.944 0.000 overt 0.000 0.212 0.788 Data: iris Call: Linda(Species ~ ., data = iris, method = method, l1med = TRUE) Prior Probabilities of Groups: setosa versicolor virginica 0.33333 0.33333 0.33333 Group means: Sepal.Length Sepal.Width Petal.Length Petal.Width setosa 4.9755 3.3826 1.4608 0.22053 versicolor 5.8868 2.7823 4.2339 1.34603 virginica 6.5176 2.9691 5.4560 2.06335 Within-groups Covariance Matrix: Sepal.Length Sepal.Width Petal.Length Petal.Width Sepal.Length 0.238417 0.136325 0.086377 0.036955 Sepal.Width 0.136325 0.148452 0.067500 0.034804 Petal.Length 0.086377 0.067500 0.100934 0.035968 Petal.Width 0.036955 0.034804 0.035968 0.023856 Linear Coeficients: Sepal.Length Sepal.Width Petal.Length Petal.Width setosa 17.106 15.693 7.8806 -52.031 versicolor 21.744 -15.813 38.0139 -11.505 virginica 23.032 -26.567 43.6391 23.777 Constants: setosa versicolor virginica -70.214 -115.832 -180.294 Apparent error rate 0.02 Classification table Predicted Actual setosa versicolor virginica setosa 50 0 0 versicolor 0 49 1 virginica 0 2 48 Confusion matrix Predicted Actual setosa versicolor virginica setosa 1 0.00 0.00 versicolor 0 0.98 0.02 virginica 0 0.04 0.96 Data: crabs Call: Linda(sp ~ ., data = crabs, method = method) Prior Probabilities of Groups: B O 0.5 0.5 Group means: sexM index FL RW CL CW BD B 0 25.5 13.270 12.138 28.102 32.624 11.816 O 1 25.5 16.626 12.262 33.688 37.188 15.324 Within-groups Covariance Matrix: sexM index FL RW CL CW BD sexM 1.5255e-07 0.000 0.0000 0.0000 0.000 0.000 0.000 index 0.0000e+00 337.501 62.8107 46.5073 137.713 154.451 63.514 FL 0.0000e+00 62.811 15.3164 9.8612 29.911 33.479 13.805 RW 0.0000e+00 46.507 9.8612 8.6949 21.878 24.604 10.092 CL 0.0000e+00 137.713 29.9112 21.8779 73.888 73.891 30.486 CW 0.0000e+00 154.451 33.4788 24.6038 73.891 92.801 34.122 BD 0.0000e+00 63.514 13.8053 10.0923 30.486 34.122 15.854 Linear Coeficients: sexM index FL RW CL CW BD B 0 -0.64890 0.95529 2.7299 0.20747 0.28549 -0.23815 O 6555120 -0.83294 1.67920 1.8896 0.32330 0.23479 0.51136 Constants: B O -2.1491e+01 -3.2776e+06 Apparent error rate 0.5 Classification table Predicted Actual B O B 50 50 O 50 50 Confusion matrix Predicted Actual B O B 0.5 0.5 O 0.5 0.5 Data: fish Apparent error rate 0.2532 Classification table Predicted Actual 1 2 3 4 5 6 7 1 33 0 0 1 0 0 0 2 0 3 0 0 0 0 3 3 0 2 5 0 0 0 13 4 0 0 0 11 0 0 0 5 0 0 0 0 14 0 0 6 0 0 0 0 0 17 0 7 0 19 0 0 2 0 35 Confusion matrix Predicted Actual 1 2 3 4 5 6 7 1 0.971 0.000 0.00 0.029 0.000 0 0.000 2 0.000 0.500 0.00 0.000 0.000 0 0.500 3 0.000 0.100 0.25 0.000 0.000 0 0.650 4 0.000 0.000 0.00 1.000 0.000 0 0.000 5 0.000 0.000 0.00 0.000 1.000 0 0.000 6 0.000 0.000 0.00 0.000 0.000 1 0.000 7 0.000 0.339 0.00 0.000 0.036 0 0.625 Data: pottery Call: Linda(origin ~ ., data = pottery, method = method) Prior Probabilities of Groups: Attic Eritrean 0.48148 0.51852 Group means: SI AL FE MG CA TI Attic 55.872 13.986 10.113 5.0235 4.7316 0.88531 Eritrean 52.487 16.286 9.499 2.4520 5.3745 0.83959 Within-groups Covariance Matrix: SI AL FE MG CA TI SI 12.795913 3.2987125 -0.35496855 0.9399999 -0.0143514 0.01132392 AL 3.298713 1.0829436 -0.03394751 0.2838724 0.0501000 0.00117721 FE -0.354969 -0.0339475 0.08078156 0.0341568 -0.0457411 0.00043177 MG 0.940000 0.2838724 0.03415675 0.4350013 0.1417876 0.00396576 CA -0.014351 0.0501000 -0.04574114 0.1417876 0.4196628 -0.00104893 TI 0.011324 0.0011772 0.00043177 0.0039658 -0.0010489 0.00026205 Linear Coeficients: SI AL FE MG CA TI Attic 36.451 -63.784 352.90 -124.07 110.08 3826.6 Eritrean 29.763 -41.039 325.12 -128.32 107.36 3938.1 Constants: Attic Eritrean -4000.1 -3776.1 Apparent error rate 0.1111 Classification table Predicted Actual Attic Eritrean Attic 12 1 Eritrean 2 12 Confusion matrix Predicted Actual Attic Eritrean Attic 0.923 0.077 Eritrean 0.143 0.857 Data: olitos Apparent error rate 0.125 Classification table Predicted Actual 1 2 3 4 1 44 2 3 1 2 1 23 1 0 3 4 1 27 2 4 0 0 0 11 Confusion matrix Predicted Actual 1 2 3 4 1 0.880 0.040 0.060 0.020 2 0.040 0.920 0.040 0.000 3 0.118 0.029 0.794 0.059 4 0.000 0.000 0.000 1.000 =================================================== > dodata(method="ogk") Call: dodata(method = "ogk") =================================================== Data: hemophilia Call: Linda(as.factor(gr) ~ ., data = hemophilia, method = method) Prior Probabilities of Groups: carrier normal 0.6 0.4 Group means: AHFactivity AHFantigen carrier -0.29043 -0.00052902 normal -0.12463 -0.06715037 Within-groups Covariance Matrix: AHFactivity AHFantigen AHFactivity 0.015688 0.010544 AHFantigen 0.010544 0.016633 Linear Coeficients: AHFactivity AHFantigen carrier -32.2203 20.3935 normal -9.1149 1.7409 Constants: carrier normal -5.1843 -1.4259 Apparent error rate 0.1467 Classification table Predicted Actual carrier normal carrier 38 7 normal 4 26 Confusion matrix Predicted Actual carrier normal carrier 0.844 0.156 normal 0.133 0.867 Data: anorexia Call: Linda(Treat ~ ., data = anorexia, method = method) Prior Probabilities of Groups: CBT Cont FT 0.40278 0.36111 0.23611 Group means: Prewt Postwt CBT 82.634 82.060 Cont 81.605 80.459 FT 85.157 93.822 Within-groups Covariance Matrix: Prewt Postwt Prewt 15.8294 4.4663 Postwt 4.4663 19.6356 Linear Coeficients: Prewt Postwt CBT 4.3183 3.1970 Cont 4.2734 3.1256 FT 4.3080 3.7983 Constants: CBT Cont FT -310.50 -301.12 -363.05 Apparent error rate 0.4583 Classification table Predicted Actual CBT Cont FT CBT 15 5 9 Cont 14 11 1 FT 0 4 13 Confusion matrix Predicted Actual CBT Cont FT CBT 0.517 0.172 0.310 Cont 0.538 0.423 0.038 FT 0.000 0.235 0.765 Data: Pima Call: Linda(type ~ ., data = Pima.tr, method = method) Prior Probabilities of Groups: No Yes 0.66 0.34 Group means: npreg glu bp skin bmi ped age No 2.4175 109.93 67.332 26.324 30.344 0.38740 26.267 Yes 5.1853 142.29 75.194 33.151 34.878 0.47977 37.626 Within-groups Covariance Matrix: npreg glu bp skin bmi ped age npreg 7.218576 7.52457 6.96595 4.86613 0.45567 -0.054245 14.42648 glu 7.524571 517.38370 58.53812 31.57321 22.68396 -0.200222 22.88780 bp 6.965950 58.53812 101.50317 27.86784 10.89215 -0.152784 25.41819 skin 4.866127 31.57321 27.86784 95.16949 37.45066 -0.117375 14.60676 bmi 0.455675 22.68396 10.89215 37.45066 30.89491 0.043400 4.05584 ped -0.054245 -0.20022 -0.15278 -0.11737 0.04340 0.051268 -0.18131 age 14.426479 22.88780 25.41819 14.60676 4.05584 -0.181311 57.89570 Linear Coeficients: npreg glu bp skin bmi ped age No -0.99043 0.12339 0.54101 -0.35335 1.0721 8.4945 0.45482 Yes -1.01369 0.17577 0.53898 -0.35554 1.1563 11.0474 0.63966 Constants: No Yes -43.449 -60.176 Apparent error rate 0.23 Classification table Predicted Actual No Yes No 108 24 Yes 22 46 Confusion matrix Predicted Actual No Yes No 0.818 0.182 Yes 0.324 0.676 Data: Forest soils Apparent error rate 0.3621 Classification table Predicted Actual 1 2 3 1 7 3 1 2 4 13 6 3 3 4 17 Confusion matrix Predicted Actual 1 2 3 1 0.636 0.273 0.091 2 0.174 0.565 0.261 3 0.125 0.167 0.708 Data: Raven and Miller diabetes data Call: Linda(group ~ insulin + glucose + sspg, data = diabetes, method = method) Prior Probabilities of Groups: normal chemical overt 0.52414 0.24828 0.22759 Group means: insulin glucose sspg normal 159.540 344.06 99.486 chemical 252.992 478.16 219.442 overt 79.635 1094.96 338.517 Within-groups Covariance Matrix: insulin glucose sspg insulin 3844.877 67.238 1456.55 glucose 67.238 2228.396 324.21 sspg 1456.548 324.205 2181.73 Linear Coeficients: insulin glucose sspg normal 0.040407 0.15379 -0.0042303 chemical 0.047858 0.20764 0.0377766 overt -0.026158 0.47736 0.1016873 Constants: normal chemical overt -30.115 -61.233 -278.996 Apparent error rate 0.0966 Classification table Predicted Actual normal chemical overt normal 71 5 0 chemical 2 34 0 overt 0 7 26 Confusion matrix Predicted Actual normal chemical overt normal 0.934 0.066 0.000 chemical 0.056 0.944 0.000 overt 0.000 0.212 0.788 Data: iris Call: Linda(Species ~ ., data = iris, method = method, l1med = TRUE) Prior Probabilities of Groups: setosa versicolor virginica 0.33333 0.33333 0.33333 Group means: Sepal.Length Sepal.Width Petal.Length Petal.Width setosa 4.9654 3.3913 1.4507 0.21639 versicolor 5.8767 2.7909 4.2238 1.34189 virginica 6.5075 2.9777 5.4459 2.05921 Within-groups Covariance Matrix: Sepal.Length Sepal.Width Petal.Length Petal.Width Sepal.Length 0.180280 0.068876 0.101512 0.036096 Sepal.Width 0.068876 0.079556 0.047722 0.029409 Petal.Length 0.101512 0.047722 0.111492 0.038658 Petal.Width 0.036096 0.029409 0.038658 0.029965 Linear Coeficients: Sepal.Length Sepal.Width Petal.Length Petal.Width setosa 28.582 46.5236 -13.859 -54.9877 versicolor 19.837 11.9601 20.865 -17.7704 virginica 16.999 1.9046 29.808 7.9189 Constants: setosa versicolor virginica -134.94 -108.22 -148.56 Apparent error rate 0.0133 Classification table Predicted Actual setosa versicolor virginica setosa 50 0 0 versicolor 0 49 1 virginica 0 1 49 Confusion matrix Predicted Actual setosa versicolor virginica setosa 1 0.00 0.00 versicolor 0 0.98 0.02 virginica 0 0.02 0.98 Data: crabs Call: Linda(sp ~ ., data = crabs, method = method) Prior Probabilities of Groups: B O 0.5 0.5 Group means: sexM index FL RW CL CW BD B 0.48948 24.060 13.801 11.738 29.491 34.062 12.329 O 0.56236 24.043 16.825 13.158 33.574 37.418 15.223 Within-groups Covariance Matrix: sexM index FL RW CL CW BD sexM 0.24961 0.50421 0.16645 -0.28574 0.54159 0.48449 0.22563 index 0.50421 186.86616 38.46284 25.26749 82.29121 92.11253 37.67723 FL 0.16645 38.46284 8.58830 5.56769 18.33015 20.58235 8.32030 RW -0.28574 25.26749 5.56769 4.52038 11.70881 13.37643 5.32779 CL 0.54159 82.29121 18.33015 11.70881 39.78186 44.52112 18.01179 CW 0.48449 92.11253 20.58235 13.37643 44.52112 50.06150 20.16852 BD 0.22563 37.67723 8.32030 5.32779 18.01179 20.16852 8.25884 Linear Coeficients: sexM index FL RW CL CW BD B 16.497 -2.5896 8.3966 11.518 1.7536 -2.5325 -0.67361 O 17.010 -4.0452 23.5400 13.702 4.7871 -14.8264 13.04556 Constants: B O -77.695 -147.287 Apparent error rate 0 Classification table Predicted Actual B O B 100 0 O 0 100 Confusion matrix Predicted Actual B O B 1 0 O 0 1 Data: fish Apparent error rate 0.0063 Classification table Predicted Actual 1 2 3 4 5 6 7 1 34 0 0 0 0 0 0 2 0 6 0 0 0 0 0 3 0 0 20 0 0 0 0 4 0 0 0 11 0 0 0 5 0 0 0 0 14 0 0 6 0 0 0 0 0 17 0 7 0 0 0 0 1 0 55 Confusion matrix Predicted Actual 1 2 3 4 5 6 7 1 1 0 0 0 0.000 0 0.000 2 0 1 0 0 0.000 0 0.000 3 0 0 1 0 0.000 0 0.000 4 0 0 0 1 0.000 0 0.000 5 0 0 0 0 1.000 0 0.000 6 0 0 0 0 0.000 1 0.000 7 0 0 0 0 0.018 0 0.982 Data: pottery Call: Linda(origin ~ ., data = pottery, method = method) Prior Probabilities of Groups: Attic Eritrean 0.48148 0.51852 Group means: SI AL FE MG CA TI Attic 55.381 14.088 10.1316 4.9588 4.7684 0.88444 Eritrean 53.559 16.251 9.1145 2.6213 5.8980 0.82501 Within-groups Covariance Matrix: SI AL FE MG CA TI SI 7.878378 1.9064112 -0.545403 0.4167407 -0.11589 0.01850748 AL 1.906411 0.6678763 -0.037744 0.1120891 -0.10733 0.00805556 FE -0.545403 -0.0377438 0.213914 -0.0192356 -0.23121 0.00582800 MG 0.416741 0.1120891 -0.019236 0.2336721 0.17284 -0.00183128 CA -0.115888 -0.1073297 -0.231213 0.1728385 0.71388 -0.01895968 TI 0.018507 0.0080556 0.005828 -0.0018313 -0.01896 0.00081815 Linear Coeficients: SI AL FE MG CA TI Attic 57.784 -107.297 319.31 -152.94 241.66 3813.6 Eritrean 52.523 -86.545 306.58 -165.71 242.36 3734.1 Constants: Attic Eritrean -4346 -4139 Apparent error rate 0.1111 Classification table Predicted Actual Attic Eritrean Attic 12 1 Eritrean 2 12 Confusion matrix Predicted Actual Attic Eritrean Attic 0.923 0.077 Eritrean 0.143 0.857 Data: olitos Apparent error rate 0.1 Classification table Predicted Actual 1 2 3 4 1 45 2 2 1 2 0 25 0 0 3 4 1 27 2 4 0 0 0 11 Confusion matrix Predicted Actual 1 2 3 4 1 0.900 0.040 0.040 0.020 2 0.000 1.000 0.000 0.000 3 0.118 0.029 0.794 0.059 4 0.000 0.000 0.000 1.000 =================================================== > #dodata(method="fsa") > > proc.time() user system elapsed 6.78 1.20 8.89 rrcov/tests/tqda.R0000644000176200001440000000241514443667016013640 0ustar liggesusers## VT::15.09.2013 - this will render the output independent ## from the version of the package suppressPackageStartupMessages(library(rrcov)) dodata <- function(method) { options(digits = 5) set.seed(101) # <<-- sub-sampling algorithm now based on R's RNG and seed tmp <- sys.call() cat("\nCall: ", deparse(substitute(tmp)),"\n") cat("===================================================\n") data(hemophilia); show(QdaCov(as.factor(gr)~., data=hemophilia, method=method)) data(anorexia, package="MASS"); show(QdaCov(Treat~., data=anorexia, method=method)) data(Pima.tr, package="MASS"); show(QdaCov(type~., data=Pima.tr, method=method)) data(iris); # show(QdaCov(Species~., data=iris, method=method)) data(crabs, package="MASS"); # show(QdaCov(sp~., data=crabs, method=method)) show(QdaClassic(as.factor(gr)~., data=hemophilia)) show(QdaClassic(Treat~., data=anorexia)) show(QdaClassic(type~., data=Pima.tr)) show(QdaClassic(Species~., data=iris)) ## show(QdaClassic(sp~., data=crabs)) cat("===================================================\n") } ## -- now do it: dodata(method="mcd") dodata(method="m") dodata(method="ogk") dodata(method="sde") rrcov/tests/tmve4.Rout.save0000644000176200001440000003754514443667016015447 0ustar liggesusers R Under development (unstable) (2013-08-17 r63608) -- "Unsuffered Consequences" Copyright (C) 2013 The R Foundation for Statistical Computing Platform: i386-w64-mingw32/i386 (32-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > dodata <- function(nrep=1, time=FALSE, short=FALSE, full=TRUE, method = c("FASTMVE","MASS")){ + ##@bdescr + ## Test the function covMve() on the literature datasets: + ## + ## Call covMve() for all regression datasets available in rrco/robustbasev and print: + ## - execution time (if time == TRUE) + ## - objective fucntion + ## - best subsample found (if short == false) + ## - outliers identified (with cutoff 0.975) (if short == false) + ## - estimated center and covarinance matrix if full == TRUE) + ## + ##@edescr + ## + ##@in nrep : [integer] number of repetitions to use for estimating the + ## (average) execution time + ##@in time : [boolean] whether to evaluate the execution time + ##@in short : [boolean] whether to do short output (i.e. only the + ## objective function value). If short == FALSE, + ## the best subsample and the identified outliers are + ## printed. See also the parameter full below + ##@in full : [boolean] whether to print the estimated cente and covariance matrix + ##@in method : [character] select a method: one of (FASTMCD, MASS) + + domve <- function(x, xname, nrep=1){ + n <- dim(x)[1] + p <- dim(x)[2] + alpha <- 0.5 + h <- h.alpha.n(alpha, n, p) + if(method == "MASS"){ + mve <- cov.mve(x, quantile.used=h) + quan <- h #default: floor((n+p+1)/2) + crit <- mve$crit + best <- mve$best + mah <- mahalanobis(x, mve$center, mve$cov) + quantiel <- qchisq(0.975, p) + wt <- as.numeric(mah < quantiel) + } + else{ + mve <- CovMve(x, trace=FALSE) + quan <- as.integer(mve@quan) + crit <- log(mve@crit) + best <- mve@best + wt <- mve@wt + } + + + if(time){ + xtime <- system.time(dorep(x, nrep, method))[1]/nrep + xres <- sprintf("%3d %3d %3d %12.6f %10.3f\n", dim(x)[1], dim(x)[2], quan, crit, xtime) + } + else{ + xres <- sprintf("%3d %3d %3d %12.6f\n", dim(x)[1], dim(x)[2], quan, crit) + } + + lpad<-lname-nchar(xname) + cat(pad.right(xname,lpad), xres) + + if(!short){ + cat("Best subsample: \n") + print(best) + + ibad <- which(wt == 0) + names(ibad) <- NULL + nbad <- length(ibad) + cat("Outliers: ", nbad, "\n") + if(nbad > 0) + print(ibad) + if(full){ + cat("-------------\n") + show(mve) + } + cat("--------------------------------------------------------\n") + } + } + + options(digits = 5) + set.seed(101) # <<-- sub-sampling algorithm now based on R's RNG and seed + + lname <- 20 + + ## VT::15.09.2013 - this will render the output independent + ## from the version of the package + suppressPackageStartupMessages(library(rrcov)) + + method <- match.arg(method) + if(method == "MASS") + library(MASS) + + + data(heart) + data(starsCYG) + data(phosphor) + data(stackloss) + data(coleman) + data(salinity) + data(wood) + + data(hbk) + + data(Animals, package = "MASS") + brain <- Animals[c(1:24, 26:25, 27:28),] + data(milk) + data(bushfire) + + tmp <- sys.call() + cat("\nCall: ", deparse(substitute(tmp)),"\n") + + cat("Data Set n p Half LOG(obj) Time\n") + cat("========================================================\n") + domve(heart[, 1:2], data(heart), nrep) + domve(starsCYG, data(starsCYG), nrep) + domve(data.matrix(subset(phosphor, select = -plant)), data(phosphor), nrep) + domve(stack.x, data(stackloss), nrep) + domve(data.matrix(subset(coleman, select = -Y)), data(coleman), nrep) + domve(data.matrix(subset(salinity, select = -Y)), data(salinity), nrep) + domve(data.matrix(subset(wood, select = -y)), data(wood), nrep) + domve(data.matrix(subset(hbk, select = -Y)),data(hbk), nrep) + + domve(brain, "Animals", nrep) + domve(milk, data(milk), nrep) + domve(bushfire, data(bushfire), nrep) + cat("========================================================\n") + } > > dogen <- function(nrep=1, eps=0.49, method=c("FASTMVE", "MASS")){ + + domve <- function(x, nrep=1){ + gc() + xtime <- system.time(dorep(x, nrep, method))[1]/nrep + cat(sprintf("%6d %3d %10.2f\n", dim(x)[1], dim(x)[2], xtime)) + xtime + } + + set.seed(1234) + + ## VT::15.09.2013 - this will render the output independent + ## from the version of the package + suppressPackageStartupMessages(library(rrcov)) + library(MASS) + + method <- match.arg(method) + + ap <- c(2, 5, 10, 20, 30) + an <- c(100, 500, 1000, 10000, 50000) + + tottime <- 0 + cat(" n p Time\n") + cat("=====================\n") + for(i in 1:length(an)) { + for(j in 1:length(ap)) { + n <- an[i] + p <- ap[j] + if(5*p <= n){ + xx <- gendata(n, p, eps) + X <- xx$X + tottime <- tottime + domve(X, nrep) + } + } + } + + cat("=====================\n") + cat("Total time: ", tottime*nrep, "\n") + } > > docheck <- function(n, p, eps){ + xx <- gendata(n,p,eps) + mve <- CovMve(xx$X) + check(mve, xx$xind) + } > > check <- function(mcd, xind){ + ## check if mcd is robust w.r.t xind, i.e. check how many of xind + ## did not get zero weight + mymatch <- xind %in% which(mcd@wt == 0) + length(xind) - length(which(mymatch)) + } > > dorep <- function(x, nrep=1, method=c("FASTMVE","MASS")){ + + method <- match.arg(method) + for(i in 1:nrep) + if(method == "MASS") + cov.mve(x) + else + CovMve(x) + } > > #### gendata() #### > # Generates a location contaminated multivariate > # normal sample of n observations in p dimensions > # (1-eps)*Np(0,Ip) + eps*Np(m,Ip) > # where > # m = (b,b,...,b) > # Defaults: eps=0 and b=10 > # > gendata <- function(n,p,eps=0,b=10){ + + if(missing(n) || missing(p)) + stop("Please specify (n,p)") + if(eps < 0 || eps >= 0.5) + stop(message="eps must be in [0,0.5)") + X <- mvrnorm(n,rep(0,p),diag(1,nrow=p,ncol=p)) + nbad <- as.integer(eps * n) + if(nbad > 0){ + Xbad <- mvrnorm(nbad,rep(b,p),diag(1,nrow=p,ncol=p)) + xind <- sample(n,nbad) + X[xind,] <- Xbad + } + list(X=X, xind=xind) + } > > pad.right <- function(z, pads) + { + ### Pads spaces to right of text + padding <- paste(rep(" ", pads), collapse = "") + paste(z, padding, sep = "") + } > > whatis<-function(x){ + if(is.data.frame(x)) + cat("Type: data.frame\n") + else if(is.matrix(x)) + cat("Type: matrix\n") + else if(is.vector(x)) + cat("Type: vector\n") + else + cat("Type: don't know\n") + } > > ## VT::15.09.2013 - this will render the output independent > ## from the version of the package > suppressPackageStartupMessages(library(rrcov)) > > dodata() Call: dodata() Data Set n p Half LOG(obj) Time ======================================================== heart 12 2 7 3.827606 Best subsample: [1] 1 4 7 8 9 10 11 Outliers: 3 [1] 2 6 12 ------------- Call: CovMve(x = x, trace = FALSE) -> Method: Minimum volume ellipsoid estimator Robust Estimate of Location: height weight 34.9 27.0 Robust Estimate of Covariance: height weight height 142 217 weight 217 350 -------------------------------------------------------- starsCYG 47 2 25 -2.742997 Best subsample: [1] 2 4 6 8 12 13 16 23 24 25 26 28 31 32 33 37 38 39 41 42 43 44 45 46 47 Outliers: 7 [1] 7 9 11 14 20 30 34 ------------- Call: CovMve(x = x, trace = FALSE) -> Method: Minimum volume ellipsoid estimator Robust Estimate of Location: log.Te log.light 4.41 4.93 Robust Estimate of Covariance: log.Te log.light log.Te 0.0173 0.0578 log.light 0.0578 0.3615 -------------------------------------------------------- phosphor 18 2 10 4.443101 Best subsample: [1] 3 5 8 9 11 12 13 14 15 17 Outliers: 3 [1] 1 6 10 ------------- Call: CovMve(x = x, trace = FALSE) -> Method: Minimum volume ellipsoid estimator Robust Estimate of Location: inorg organic 15.2 39.4 Robust Estimate of Covariance: inorg organic inorg 188 230 organic 230 339 -------------------------------------------------------- stackloss 21 3 12 3.327582 Best subsample: [1] 4 5 6 7 8 9 10 11 12 13 14 20 Outliers: 3 [1] 1 2 3 ------------- Call: CovMve(x = x, trace = FALSE) -> Method: Minimum volume ellipsoid estimator Robust Estimate of Location: Air.Flow Water.Temp Acid.Conc. 56.7 20.2 85.5 Robust Estimate of Covariance: Air.Flow Water.Temp Acid.Conc. Air.Flow 34.31 11.07 23.54 Water.Temp 11.07 9.23 7.85 Acid.Conc. 23.54 7.85 47.35 -------------------------------------------------------- coleman 20 5 13 2.065143 Best subsample: [1] 1 3 4 5 7 8 11 14 16 17 18 19 20 Outliers: 5 [1] 2 6 9 10 13 ------------- Call: CovMve(x = x, trace = FALSE) -> Method: Minimum volume ellipsoid estimator Robust Estimate of Location: salaryP fatherWc sstatus teacherSc motherLev 2.79 44.26 3.59 25.08 6.38 Robust Estimate of Covariance: salaryP fatherWc sstatus teacherSc motherLev salaryP 0.2920 1.1188 2.0421 0.3487 0.0748 fatherWc 1.1188 996.7540 338.6587 7.1673 23.1783 sstatus 2.0421 338.6587 148.2501 4.4894 7.8135 teacherSc 0.3487 7.1673 4.4894 0.9082 0.3204 motherLev 0.0748 23.1783 7.8135 0.3204 0.6024 -------------------------------------------------------- salinity 28 3 16 2.002555 Best subsample: [1] 1 7 8 9 12 13 14 18 19 20 21 22 25 26 27 28 Outliers: 5 [1] 5 11 16 23 24 ------------- Call: CovMve(x = x, trace = FALSE) -> Method: Minimum volume ellipsoid estimator Robust Estimate of Location: X1 X2 X3 10.2 3.1 22.4 Robust Estimate of Covariance: X1 X2 X3 X1 14.387 1.153 -4.072 X2 1.153 5.005 -0.954 X3 -4.072 -0.954 2.222 -------------------------------------------------------- wood 20 5 13 -5.471407 Best subsample: [1] 1 2 3 5 9 10 12 13 14 15 17 18 20 Outliers: 5 [1] 4 6 8 11 19 ------------- Call: CovMve(x = x, trace = FALSE) -> Method: Minimum volume ellipsoid estimator Robust Estimate of Location: x1 x2 x3 x4 x5 0.576 0.123 0.531 0.538 0.889 Robust Estimate of Covariance: x1 x2 x3 x4 x5 x1 7.45e-03 1.11e-03 1.83e-03 -2.90e-05 -5.65e-04 x2 1.11e-03 3.11e-04 7.68e-04 3.37e-05 3.85e-05 x3 1.83e-03 7.68e-04 4.30e-03 -9.96e-04 -6.27e-05 x4 -2.90e-05 3.37e-05 -9.96e-04 3.02e-03 1.91e-03 x5 -5.65e-04 3.85e-05 -6.27e-05 1.91e-03 2.25e-03 -------------------------------------------------------- hbk 75 3 39 1.096831 Best subsample: [1] 15 17 18 19 20 21 24 27 28 30 32 33 35 36 40 41 42 43 44 46 48 49 50 53 54 [26] 55 56 58 59 64 65 66 67 70 71 72 73 74 75 Outliers: 14 [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ------------- Call: CovMve(x = x, trace = FALSE) -> Method: Minimum volume ellipsoid estimator Robust Estimate of Location: X1 X2 X3 1.48 1.86 1.73 Robust Estimate of Covariance: X1 X2 X3 X1 1.695 0.230 0.265 X2 0.230 1.679 0.119 X3 0.265 0.119 1.683 -------------------------------------------------------- Animals 28 2 15 8.945423 Best subsample: [1] 1 3 4 5 10 11 17 18 21 22 23 24 26 27 28 Outliers: 9 [1] 2 6 7 9 12 14 15 16 25 ------------- Call: CovMve(x = x, trace = FALSE) -> Method: Minimum volume ellipsoid estimator Robust Estimate of Location: body brain 48.3 127.3 Robust Estimate of Covariance: body brain body 10767 16872 brain 16872 46918 -------------------------------------------------------- milk 86 8 47 -1.160085 Best subsample: [1] 4 5 7 8 9 10 11 19 21 22 23 24 26 30 31 33 34 35 36 37 38 39 42 43 45 [26] 46 54 56 57 59 60 61 62 63 64 65 66 67 69 72 76 78 79 81 82 83 85 Outliers: 18 [1] 1 2 3 12 13 14 15 16 17 18 20 27 41 44 47 70 74 75 ------------- Call: CovMve(x = x, trace = FALSE) -> Method: Minimum volume ellipsoid estimator Robust Estimate of Location: X1 X2 X3 X4 X5 X6 X7 X8 1.03 35.91 33.02 26.08 25.06 24.99 122.93 14.38 Robust Estimate of Covariance: X1 X2 X3 X4 X5 X6 X7 X1 6.00e-07 1.51e-04 3.34e-04 3.09e-04 2.82e-04 2.77e-04 1.09e-03 X2 1.51e-04 2.03e+00 3.83e-01 3.04e-01 2.20e-01 3.51e-01 2.18e+00 X3 3.34e-04 3.83e-01 1.58e+00 1.21e+00 1.18e+00 1.20e+00 1.60e+00 X4 3.09e-04 3.04e-01 1.21e+00 9.82e-01 9.39e-01 9.53e-01 1.36e+00 X5 2.82e-04 2.20e-01 1.18e+00 9.39e-01 9.67e-01 9.52e-01 1.34e+00 X6 2.77e-04 3.51e-01 1.20e+00 9.53e-01 9.52e-01 9.92e-01 1.38e+00 X7 1.09e-03 2.18e+00 1.60e+00 1.36e+00 1.34e+00 1.38e+00 6.73e+00 X8 3.33e-05 2.92e-01 2.65e-01 1.83e-01 1.65e-01 1.76e-01 5.64e-01 X8 X1 3.33e-05 X2 2.92e-01 X3 2.65e-01 X4 1.83e-01 X5 1.65e-01 X6 1.76e-01 X7 5.64e-01 X8 1.80e-01 -------------------------------------------------------- bushfire 38 5 22 5.644315 Best subsample: [1] 1 2 3 4 5 6 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 Outliers: 15 [1] 7 8 9 10 11 29 30 31 32 33 34 35 36 37 38 ------------- Call: CovMve(x = x, trace = FALSE) -> Method: Minimum volume ellipsoid estimator Robust Estimate of Location: V1 V2 V3 V4 V5 107 147 263 215 277 Robust Estimate of Covariance: V1 V2 V3 V4 V5 V1 519 375 -2799 -619 -509 V2 375 320 -1671 -342 -289 V3 -2799 -1671 18373 4314 3480 V4 -619 -342 4314 1076 854 V5 -509 -289 3480 854 683 -------------------------------------------------------- ======================================================== > > proc.time() user system elapsed 0.48 0.07 0.56 rrcov/tests/tsest.R0000644000176200001440000001266414443667016014060 0ustar liggesusers## VT::15.09.2013 - this will render the output independent ## from the version of the package suppressPackageStartupMessages(library(rrcov)) library(MASS) dodata <- function(nrep = 1, time = FALSE, full = TRUE, method) { doest <- function(x, xname, nrep = 1, method=c("sfast", "surreal", "bisquare", "rocke", "suser", "MM", "sdet")) { method <- match.arg(method) lname <- 20 n <- dim(x)[1] p <- dim(x)[2] mm <- if(method == "MM") CovMMest(x) else CovSest(x, method=method) crit <- log(mm@crit) xres <- sprintf("%3d %3d %12.6f\n", dim(x)[1], dim(x)[2], crit) lpad <- lname-nchar(xname) cat(pad.right(xname,lpad), xres) dist <- getDistance(mm) quantiel <- qchisq(0.975, p) ibad <- which(dist >= quantiel) names(ibad) <- NULL nbad <- length(ibad) cat("Outliers: ",nbad,"\n") if(nbad > 0) print(ibad) cat("-------------\n") show(mm) cat("--------------------------------------------------------\n") } options(digits = 5) set.seed(101) # <<-- sub-sampling algorithm now based on R's RNG and seed data(heart) data(starsCYG) data(phosphor) data(stackloss) data(coleman) data(salinity) data(wood) data(hbk) data(Animals, package = "MASS") brain <- Animals[c(1:24, 26:25, 27:28),] data(milk) data(bushfire) ### data(rice) data(hemophilia) data(fish) tmp <- sys.call() cat("\nCall: ", deparse(substitute(tmp)),"\n") cat("Data Set n p LOG(det) Time\n") cat("===================================================\n") doest(heart[, 1:2], data(heart), nrep, method=method) doest(starsCYG, data(starsCYG), nrep, method=method) doest(data.matrix(subset(phosphor, select = -plant)), data(phosphor), nrep, method=method) doest(stack.x, data(stackloss), nrep, method=method) doest(data.matrix(subset(coleman, select = -Y)), data(coleman), nrep, method=method) doest(data.matrix(subset(salinity, select = -Y)), data(salinity), nrep, method=method) doest(data.matrix(subset(wood, select = -y)), data(wood), nrep, method=method) doest(data.matrix(subset(hbk, select = -Y)), data(hbk), nrep, method=method) doest(brain, "Animals", nrep, method=method) doest(milk, data(milk), nrep, method=method) doest(bushfire, data(bushfire), nrep, method=method) doest(data.matrix(subset(rice, select = -Overall_evaluation)), data(rice), nrep, method=method) doest(data.matrix(subset(hemophilia, select = -gr)), data(hemophilia), nrep, method=method) doest(data.matrix(subset(fish, select = -Species)), data(fish), nrep, method=method) ## from package 'datasets' doest(airquality[,1:4], data(airquality), nrep, method=method) doest(attitude, data(attitude), nrep, method=method) doest(attenu, data(attenu), nrep, method=method) doest(USJudgeRatings, data(USJudgeRatings), nrep, method=method) doest(USArrests, data(USArrests), nrep, method=method) doest(longley, data(longley), nrep, method=method) doest(Loblolly, data(Loblolly), nrep, method=method) doest(quakes[,1:4], data(quakes), nrep, method=method) cat("===================================================\n") } # generate contaminated data using the function gendata with different # number of outliers and check if the M-estimate breaks - i.e. the # largest eigenvalue is larger than e.g. 5. # For n=50 and p=10 and d=5 the M-estimate can break for number of # outliers grater than 20. dogen <- function(){ eig <- vector("numeric",26) for(i in 0:25) { gg <- gendata(eps=i) mm <- CovSRocke(gg$x, t0=gg$tgood, S0=gg$sgood) eig[i+1] <- ev <- getEvals(mm)[1] cat(i, ev, "\n") ## stopifnot(ev < 5 || i > 20) } plot(0:25, eig, type="l", xlab="Number of outliers", ylab="Largest Eigenvalue") } # # generate data 50x10 as multivariate normal N(0,I) and add # eps % outliers by adding d=5.0 to each component. # - if eps <0 and eps <=0.5, the number of outliers is eps*n # - if eps >= 1, it is the number of outliers # - use the center and cov of the good data as good start # - use the center and the cov of all data as a bad start # If using a good start, the M-estimate must iterate to # the good solution: the largest eigenvalue is less then e.g. 5 # gendata <- function(n=50, p=10, eps=0, d=5.0){ if(eps < 0 || eps > 0.5 && eps < 1.0 || eps > 0.5*n) stop("eps is out of range") library(MASS) x <- mvrnorm(n, rep(0,p), diag(p)) bad <- vector("numeric") nbad = if(eps < 1) eps*n else eps if(nbad > 0){ bad <- sample(n, nbad) x[bad,] <- x[bad,] + d } cov1 <- cov.wt(x) cov2 <- if(nbad <= 0) cov1 else cov.wt(x[-bad,]) list(x=x, bad=sort(bad), tgood=cov2$center, sgood=cov2$cov, tbad=cov1$center, sbad=cov1$cov) } pad.right <- function(z, pads) { ## Pads spaces to right of text padding <- paste(rep(" ", pads), collapse = "") paste(z, padding, sep = "") } ## -- now do it: dodata(method="sfast") dodata(method="sdet") ##dodata(method="suser") ##dodata(method="surreal") dodata(method="bisquare") dodata(method="rocke") dodata(method="MM") ##dogen() ##cat('Time elapsed: ', proc.time(),'\n') # for ``statistical reasons'' rrcov/tests/tsest.Rout.save0000644000176200001440000026726714443667016015560 0ustar liggesusers R Under development (unstable) (2014-06-23 r66008) -- "Unsuffered Consequences" Copyright (C) 2014 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > ## VT::15.09.2013 - this will render the output independent > ## from the version of the package > suppressPackageStartupMessages(library(rrcov)) > > library(MASS) > > dodata <- function(nrep = 1, time = FALSE, full = TRUE, method) { + doest <- function(x, xname, nrep = 1, method=c("sfast", "surreal", "bisquare", "rocke", "suser", "MM", "sdet")) { + + method <- match.arg(method) + + lname <- 20 + n <- dim(x)[1] + p <- dim(x)[2] + + mm <- if(method == "MM") CovMMest(x) else CovSest(x, method=method) + + crit <- log(mm@crit) + + xres <- sprintf("%3d %3d %12.6f\n", dim(x)[1], dim(x)[2], crit) + lpad <- lname-nchar(xname) + cat(pad.right(xname,lpad), xres) + + dist <- getDistance(mm) + quantiel <- qchisq(0.975, p) + ibad <- which(dist >= quantiel) + names(ibad) <- NULL + nbad <- length(ibad) + cat("Outliers: ",nbad,"\n") + if(nbad > 0) + print(ibad) + cat("-------------\n") + show(mm) + cat("--------------------------------------------------------\n") + } + + options(digits = 5) + set.seed(101) # <<-- sub-sampling algorithm now based on R's RNG and seed + + data(heart) + data(starsCYG) + data(phosphor) + data(stackloss) + data(coleman) + data(salinity) + data(wood) + data(hbk) + + data(Animals, package = "MASS") + brain <- Animals[c(1:24, 26:25, 27:28),] + data(milk) + data(bushfire) + ### + data(rice) + data(hemophilia) + data(fish) + + tmp <- sys.call() + cat("\nCall: ", deparse(substitute(tmp)),"\n") + + cat("Data Set n p LOG(det) Time\n") + cat("===================================================\n") + doest(heart[, 1:2], data(heart), nrep, method=method) + doest(starsCYG, data(starsCYG), nrep, method=method) + doest(data.matrix(subset(phosphor, select = -plant)), data(phosphor), nrep, method=method) + doest(stack.x, data(stackloss), nrep, method=method) + doest(data.matrix(subset(coleman, select = -Y)), data(coleman), nrep, method=method) + doest(data.matrix(subset(salinity, select = -Y)), data(salinity), nrep, method=method) + doest(data.matrix(subset(wood, select = -y)), data(wood), nrep, method=method) + doest(data.matrix(subset(hbk, select = -Y)), data(hbk), nrep, method=method) + + + doest(brain, "Animals", nrep, method=method) + doest(milk, data(milk), nrep, method=method) + doest(bushfire, data(bushfire), nrep, method=method) + + doest(data.matrix(subset(rice, select = -Overall_evaluation)), data(rice), nrep, method=method) + doest(data.matrix(subset(hemophilia, select = -gr)), data(hemophilia), nrep, method=method) + doest(data.matrix(subset(fish, select = -Species)), data(fish), nrep, method=method) + + ## from package 'datasets' + doest(airquality[,1:4], data(airquality), nrep, method=method) + doest(attitude, data(attitude), nrep, method=method) + doest(attenu, data(attenu), nrep, method=method) + doest(USJudgeRatings, data(USJudgeRatings), nrep, method=method) + doest(USArrests, data(USArrests), nrep, method=method) + doest(longley, data(longley), nrep, method=method) + doest(Loblolly, data(Loblolly), nrep, method=method) + doest(quakes[,1:4], data(quakes), nrep, method=method) + + cat("===================================================\n") + } > > # generate contaminated data using the function gendata with different > # number of outliers and check if the M-estimate breaks - i.e. the > # largest eigenvalue is larger than e.g. 5. > # For n=50 and p=10 and d=5 the M-estimate can break for number of > # outliers grater than 20. > dogen <- function(){ + eig <- vector("numeric",26) + for(i in 0:25) { + gg <- gendata(eps=i) + mm <- CovSRocke(gg$x, t0=gg$tgood, S0=gg$sgood) + eig[i+1] <- ev <- getEvals(mm)[1] + cat(i, ev, "\n") + + ## stopifnot(ev < 5 || i > 20) + } + plot(0:25, eig, type="l", xlab="Number of outliers", ylab="Largest Eigenvalue") + } > > # > # generate data 50x10 as multivariate normal N(0,I) and add > # eps % outliers by adding d=5.0 to each component. > # - if eps <0 and eps <=0.5, the number of outliers is eps*n > # - if eps >= 1, it is the number of outliers > # - use the center and cov of the good data as good start > # - use the center and the cov of all data as a bad start > # If using a good start, the M-estimate must iterate to > # the good solution: the largest eigenvalue is less then e.g. 5 > # > gendata <- function(n=50, p=10, eps=0, d=5.0){ + + if(eps < 0 || eps > 0.5 && eps < 1.0 || eps > 0.5*n) + stop("eps is out of range") + + library(MASS) + + x <- mvrnorm(n, rep(0,p), diag(p)) + bad <- vector("numeric") + nbad = if(eps < 1) eps*n else eps + if(nbad > 0){ + bad <- sample(n, nbad) + x[bad,] <- x[bad,] + d + } + cov1 <- cov.wt(x) + cov2 <- if(nbad <= 0) cov1 else cov.wt(x[-bad,]) + + list(x=x, bad=sort(bad), tgood=cov2$center, sgood=cov2$cov, tbad=cov1$center, sbad=cov1$cov) + } > > pad.right <- function(z, pads) + { + ## Pads spaces to right of text + padding <- paste(rep(" ", pads), collapse = "") + paste(z, padding, sep = "") + } > > > ## -- now do it: > dodata(method="sfast") Call: dodata(method = "sfast") Data Set n p LOG(det) Time =================================================== heart 12 2 2.017701 Outliers: 3 [1] 2 6 12 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: S-FAST Robust Estimate of Location: [1] 36.1 29.5 Robust Estimate of Covariance: height weight height 129 210 weight 210 365 -------------------------------------------------------- starsCYG 47 2 -1.450032 Outliers: 7 [1] 7 9 11 14 20 30 34 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: S-FAST Robust Estimate of Location: [1] 4.42 4.97 Robust Estimate of Covariance: log.Te log.light log.Te 0.0176 0.0617 log.light 0.0617 0.3880 -------------------------------------------------------- phosphor 18 2 2.320721 Outliers: 2 [1] 1 6 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: S-FAST Robust Estimate of Location: [1] 14.1 38.8 Robust Estimate of Covariance: inorg organic inorg 174 190 organic 190 268 -------------------------------------------------------- stackloss 21 3 1.470031 Outliers: 3 [1] 1 2 3 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: S-FAST Robust Estimate of Location: [1] 57.5 20.5 86.0 Robust Estimate of Covariance: Air.Flow Water.Temp Acid.Conc. Air.Flow 38.94 11.66 22.89 Water.Temp 11.66 9.96 7.81 Acid.Conc. 22.89 7.81 40.48 -------------------------------------------------------- coleman 20 5 0.491419 Outliers: 2 [1] 6 10 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: S-FAST Robust Estimate of Location: [1] 2.77 45.58 4.13 25.13 6.39 Robust Estimate of Covariance: salaryP fatherWc sstatus teacherSc motherLev salaryP 0.2209 1.9568 1.4389 0.2638 0.0674 fatherWc 1.9568 940.7409 307.8297 8.3290 21.9143 sstatus 1.4389 307.8297 134.0540 4.1808 7.4799 teacherSc 0.2638 8.3290 4.1808 0.7604 0.2917 motherLev 0.0674 21.9143 7.4799 0.2917 0.5817 -------------------------------------------------------- salinity 28 3 0.734619 Outliers: 4 [1] 5 16 23 24 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: S-FAST Robust Estimate of Location: [1] 10.31 3.07 22.60 Robust Estimate of Covariance: X1 X2 X3 X1 13.200 0.784 -3.611 X2 0.784 4.441 -1.658 X3 -3.611 -1.658 2.877 -------------------------------------------------------- wood 20 5 -3.202636 Outliers: 2 [1] 7 9 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: S-FAST Robust Estimate of Location: [1] 0.551 0.135 0.496 0.511 0.916 Robust Estimate of Covariance: x1 x2 x3 x4 x5 x1 0.011361 -0.000791 0.005473 0.004204 -0.004747 x2 -0.000791 0.000701 -0.000534 -0.001452 0.000864 x3 0.005473 -0.000534 0.004905 0.002960 -0.001914 x4 0.004204 -0.001452 0.002960 0.005154 -0.002187 x5 -0.004747 0.000864 -0.001914 -0.002187 0.003214 -------------------------------------------------------- hbk 75 3 0.283145 Outliers: 14 [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: S-FAST Robust Estimate of Location: [1] 1.53 1.83 1.66 Robust Estimate of Covariance: X1 X2 X3 X1 1.8091 0.0479 0.2446 X2 0.0479 1.8190 0.2513 X3 0.2446 0.2513 1.7288 -------------------------------------------------------- Animals 28 2 4.685129 Outliers: 10 [1] 2 6 7 9 12 14 15 16 24 25 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: S-FAST Robust Estimate of Location: [1] 30.8 84.2 Robust Estimate of Covariance: body brain body 14806 28767 brain 28767 65195 -------------------------------------------------------- milk 86 8 -1.437863 Outliers: 15 [1] 1 2 3 12 13 14 15 16 17 41 44 47 70 74 75 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: S-FAST Robust Estimate of Location: [1] 1.03 35.81 32.97 26.04 25.02 24.94 122.81 14.36 Robust Estimate of Covariance: X1 X2 X3 X4 X5 X6 X7 X1 8.30e-07 2.53e-04 4.43e-04 4.02e-04 3.92e-04 3.96e-04 1.44e-03 X2 2.53e-04 2.24e+00 4.77e-01 3.63e-01 2.91e-01 3.94e-01 2.44e+00 X3 4.43e-04 4.77e-01 1.58e+00 1.20e+00 1.18e+00 1.19e+00 1.65e+00 X4 4.02e-04 3.63e-01 1.20e+00 9.74e-01 9.37e-01 9.39e-01 1.39e+00 X5 3.92e-04 2.91e-01 1.18e+00 9.37e-01 9.78e-01 9.44e-01 1.37e+00 X6 3.96e-04 3.94e-01 1.19e+00 9.39e-01 9.44e-01 9.82e-01 1.41e+00 X7 1.44e-03 2.44e+00 1.65e+00 1.39e+00 1.37e+00 1.41e+00 6.96e+00 X8 7.45e-05 3.33e-01 2.82e-01 2.01e-01 1.80e-01 1.91e-01 6.38e-01 X8 X1 7.45e-05 X2 3.33e-01 X3 2.82e-01 X4 2.01e-01 X5 1.80e-01 X6 1.91e-01 X7 6.38e-01 X8 2.01e-01 -------------------------------------------------------- bushfire 38 5 2.443148 Outliers: 13 [1] 7 8 9 10 11 31 32 33 34 35 36 37 38 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: S-FAST Robust Estimate of Location: [1] 108 149 266 216 278 Robust Estimate of Covariance: V1 V2 V3 V4 V5 V1 911 688 -3961 -856 -707 V2 688 587 -2493 -492 -420 V3 -3961 -2493 24146 5765 4627 V4 -856 -492 5765 1477 1164 V5 -707 -420 4627 1164 925 -------------------------------------------------------- rice 105 5 -0.724874 Outliers: 7 [1] 9 40 42 49 57 58 71 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: S-FAST Robust Estimate of Location: [1] -0.2472 0.1211 -0.1207 0.0715 0.0640 Robust Estimate of Covariance: Favor Appearance Taste Stickiness Toughness Favor 0.423 0.345 0.427 0.405 -0.202 Appearance 0.345 0.592 0.570 0.549 -0.316 Taste 0.427 0.570 0.739 0.706 -0.393 Stickiness 0.405 0.549 0.706 0.876 -0.497 Toughness -0.202 -0.316 -0.393 -0.497 0.467 -------------------------------------------------------- hemophilia 75 2 -1.868949 Outliers: 2 [1] 11 36 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: S-FAST Robust Estimate of Location: [1] -0.2126 -0.0357 Robust Estimate of Covariance: AHFactivity AHFantigen AHFactivity 0.0317 0.0112 AHFantigen 0.0112 0.0218 -------------------------------------------------------- fish 159 6 1.285876 Outliers: 21 [1] 61 62 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 [20] 103 142 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: S-FAST Robust Estimate of Location: [1] 358.3 24.7 26.9 29.7 30.0 14.7 Robust Estimate of Covariance: Weight Length1 Length2 Length3 Height Width Weight 1.33e+05 3.09e+03 3.34e+03 3.78e+03 1.72e+03 2.24e+02 Length1 3.09e+03 7.92e+01 8.54e+01 9.55e+01 4.04e+01 7.43e+00 Length2 3.34e+03 8.54e+01 9.22e+01 1.03e+02 4.49e+01 8.07e+00 Length3 3.78e+03 9.55e+01 1.03e+02 1.18e+02 5.92e+01 7.65e+00 Height 1.72e+03 4.04e+01 4.49e+01 5.92e+01 7.12e+01 8.51e-01 Width 2.24e+02 7.43e+00 8.07e+00 7.65e+00 8.51e-01 3.57e+00 -------------------------------------------------------- airquality 153 4 2.684374 Outliers: 7 [1] 7 14 23 30 34 77 107 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: S-FAST Robust Estimate of Location: [1] 39.34 192.12 9.67 78.71 Robust Estimate of Covariance: Ozone Solar.R Wind Temp Ozone 973.104 894.011 -61.856 243.560 Solar.R 894.011 9677.269 0.388 179.429 Wind -61.856 0.388 11.287 -14.310 Temp 243.560 179.429 -14.310 96.714 -------------------------------------------------------- attitude 30 7 2.091968 Outliers: 4 [1] 14 16 18 24 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: S-FAST Robust Estimate of Location: [1] 65.7 66.8 51.9 56.1 66.4 76.7 43.0 Robust Estimate of Covariance: rating complaints privileges learning raises critical advance rating 170.59 136.40 77.41 125.46 99.72 8.01 49.52 complaints 136.40 170.94 94.62 136.73 120.76 23.52 78.52 privileges 77.41 94.62 150.49 112.77 87.92 6.43 72.33 learning 125.46 136.73 112.77 173.77 131.46 25.81 81.38 raises 99.72 120.76 87.92 131.46 136.76 29.50 91.70 critical 8.01 23.52 6.43 25.81 29.50 84.75 30.59 advance 49.52 78.52 72.33 81.38 91.70 30.59 116.28 -------------------------------------------------------- attenu 182 5 1.148032 Outliers: 31 [1] 2 5 6 7 8 9 10 11 15 16 19 20 21 22 23 24 25 27 28 [20] 29 30 31 32 64 65 80 94 95 96 97 100 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: S-FAST Robust Estimate of Location: [1] 16.432 5.849 60.297 27.144 0.134 Robust Estimate of Covariance: event mag station dist accel event 54.9236 -3.0733 181.0954 -49.4194 -0.0628 mag -3.0733 0.6530 -8.4388 6.7388 0.0161 station 181.0954 -8.4388 1689.7161 -114.6319 0.7285 dist -49.4194 6.7388 -114.6319 597.3606 -1.7988 accel -0.0628 0.0161 0.7285 -1.7988 0.0152 -------------------------------------------------------- USJudgeRatings 43 12 -1.683847 Outliers: 7 [1] 5 7 12 13 14 23 31 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: S-FAST Robust Estimate of Location: [1] 7.43 8.16 7.75 7.89 7.68 7.76 7.67 7.67 7.51 7.58 8.19 7.86 Robust Estimate of Covariance: CONT INTG DMNR DILG CFMG DECI PREP FAMI CONT 0.8710 -0.3019 -0.4682 -0.1893 -0.0569 -0.0992 -0.1771 -0.1975 INTG -0.3019 0.6401 0.8598 0.6955 0.5732 0.5439 0.7091 0.7084 DMNR -0.4682 0.8598 1.2412 0.9107 0.7668 0.7305 0.9292 0.9158 DILG -0.1893 0.6955 0.9107 0.8554 0.7408 0.7036 0.8865 0.8791 CFMG -0.0569 0.5732 0.7668 0.7408 0.6994 0.6545 0.7788 0.7721 DECI -0.0992 0.5439 0.7305 0.7036 0.6545 0.6342 0.7492 0.7511 PREP -0.1771 0.7091 0.9292 0.8865 0.7788 0.7492 0.9541 0.9556 FAMI -0.1975 0.7084 0.9158 0.8791 0.7721 0.7511 0.9556 0.9785 ORAL -0.2444 0.7453 0.9939 0.8917 0.7842 0.7551 0.9554 0.9680 WRIT -0.2344 0.7319 0.9649 0.8853 0.7781 0.7511 0.9498 0.9668 PHYS -0.1983 0.4676 0.6263 0.5629 0.5073 0.5039 0.5990 0.6140 RTEN -0.3152 0.8000 1.0798 0.9234 0.7952 0.7663 0.9637 0.9693 ORAL WRIT PHYS RTEN CONT -0.2444 -0.2344 -0.1983 -0.3152 INTG 0.7453 0.7319 0.4676 0.8000 DMNR 0.9939 0.9649 0.6263 1.0798 DILG 0.8917 0.8853 0.5629 0.9234 CFMG 0.7842 0.7781 0.5073 0.7952 DECI 0.7551 0.7511 0.5039 0.7663 PREP 0.9554 0.9498 0.5990 0.9637 FAMI 0.9680 0.9668 0.6140 0.9693 ORAL 0.9853 0.9744 0.6280 1.0032 WRIT 0.9744 0.9711 0.6184 0.9870 PHYS 0.6280 0.6184 0.4716 0.6520 RTEN 1.0032 0.9870 0.6520 1.0622 -------------------------------------------------------- USArrests 50 4 2.411726 Outliers: 4 [1] 2 28 33 39 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: S-FAST Robust Estimate of Location: [1] 7.05 150.66 64.66 19.37 Robust Estimate of Covariance: Murder Assault UrbanPop Rape Murder 23.8 380.8 19.2 29.7 Assault 380.8 8436.2 605.6 645.3 UrbanPop 19.2 605.6 246.5 78.8 Rape 29.7 645.3 78.8 77.3 -------------------------------------------------------- longley 16 7 1.038316 Outliers: 5 [1] 1 2 3 4 5 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: S-FAST Robust Estimate of Location: [1] 107.6 440.8 339.7 292.5 121.0 1957.1 67.2 Robust Estimate of Covariance: GNP.deflator GNP Unemployed Armed.Forces Population GNP.deflator 100.6 954.7 1147.1 -507.6 74.2 GNP 954.7 9430.9 10115.8 -4616.5 730.1 Unemployed 1147.1 10115.8 19838.3 -6376.9 850.6 Armed.Forces -507.6 -4616.5 -6376.9 3240.2 -351.3 Population 74.2 730.1 850.6 -351.3 57.5 Year 46.4 450.8 539.5 -233.0 35.3 Employed 30.8 310.5 274.0 -160.8 23.3 Year Employed GNP.deflator 46.4 30.8 GNP 450.8 310.5 Unemployed 539.5 274.0 Armed.Forces -233.0 -160.8 Population 35.3 23.3 Year 21.9 14.6 Employed 14.6 11.2 -------------------------------------------------------- Loblolly 84 3 1.481317 Outliers: 14 [1] 6 12 18 24 30 36 42 48 54 60 66 72 78 84 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: S-FAST Robust Estimate of Location: [1] 24.22 9.65 7.50 Robust Estimate of Covariance: height age Seed height 525.08 179.21 14.27 age 179.21 61.85 2.94 Seed 14.27 2.94 25.86 -------------------------------------------------------- quakes 1000 4 1.576855 Outliers: 223 [1] 7 12 15 17 22 25 27 28 32 37 40 41 45 48 53 [16] 63 64 73 78 87 91 92 94 99 108 110 117 118 119 120 [31] 121 122 126 133 136 141 143 145 148 152 154 155 157 159 160 [46] 163 170 192 205 222 226 230 239 243 250 251 252 254 258 263 [61] 267 268 271 283 292 300 301 305 311 312 318 320 321 325 328 [76] 330 334 352 357 360 365 381 382 384 389 400 402 408 413 416 [91] 417 419 426 429 437 441 443 453 456 467 474 477 490 492 496 [106] 504 507 508 509 517 524 527 528 531 532 534 536 538 539 541 [121] 542 543 544 545 546 547 552 553 560 571 581 583 587 593 594 [136] 596 597 605 612 613 618 620 625 629 638 642 647 649 653 655 [151] 656 672 675 681 686 699 701 702 712 714 716 721 725 726 735 [166] 744 754 756 759 765 766 769 779 781 782 785 787 797 804 813 [181] 825 827 837 840 844 852 853 857 860 865 866 869 870 872 873 [196] 883 884 887 888 890 891 893 908 909 912 915 916 921 927 930 [211] 952 962 963 969 974 980 982 986 987 988 992 997 1000 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: S-FAST Robust Estimate of Location: [1] -21.54 182.35 369.21 4.54 Robust Estimate of Covariance: lat long depth mag lat 2.81e+01 6.19e+00 3.27e+02 -4.56e-01 long 6.19e+00 7.54e+00 -5.95e+02 9.56e-02 depth 3.27e+02 -5.95e+02 8.36e+04 -2.70e+01 mag -4.56e-01 9.56e-02 -2.70e+01 2.35e-01 -------------------------------------------------------- =================================================== > dodata(method="sdet") Call: dodata(method = "sdet") Data Set n p LOG(det) Time =================================================== heart 12 2 2.017701 Outliers: 3 [1] 2 6 12 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: DET-S Robust Estimate of Location: [1] 36.1 29.5 Robust Estimate of Covariance: height weight height 129 210 weight 210 365 -------------------------------------------------------- starsCYG 47 2 -1.450032 Outliers: 7 [1] 7 9 11 14 20 30 34 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: DET-S Robust Estimate of Location: [1] 4.42 4.97 Robust Estimate of Covariance: log.Te log.light log.Te 0.0176 0.0617 log.light 0.0617 0.3880 -------------------------------------------------------- phosphor 18 2 2.320721 Outliers: 2 [1] 1 6 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: DET-S Robust Estimate of Location: [1] 14.1 38.8 Robust Estimate of Covariance: inorg organic inorg 174 190 organic 190 268 -------------------------------------------------------- stackloss 21 3 1.470031 Outliers: 3 [1] 1 2 3 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: DET-S Robust Estimate of Location: [1] 57.5 20.5 86.0 Robust Estimate of Covariance: Air.Flow Water.Temp Acid.Conc. Air.Flow 38.94 11.66 22.89 Water.Temp 11.66 9.96 7.81 Acid.Conc. 22.89 7.81 40.48 -------------------------------------------------------- coleman 20 5 0.491419 Outliers: 2 [1] 6 10 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: DET-S Robust Estimate of Location: [1] 2.77 45.58 4.13 25.13 6.39 Robust Estimate of Covariance: salaryP fatherWc sstatus teacherSc motherLev salaryP 0.2209 1.9568 1.4389 0.2638 0.0674 fatherWc 1.9568 940.7409 307.8297 8.3290 21.9143 sstatus 1.4389 307.8297 134.0540 4.1808 7.4799 teacherSc 0.2638 8.3290 4.1808 0.7604 0.2917 motherLev 0.0674 21.9143 7.4799 0.2917 0.5817 -------------------------------------------------------- salinity 28 3 0.734619 Outliers: 4 [1] 5 16 23 24 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: DET-S Robust Estimate of Location: [1] 10.31 3.07 22.60 Robust Estimate of Covariance: X1 X2 X3 X1 13.200 0.784 -3.611 X2 0.784 4.441 -1.658 X3 -3.611 -1.658 2.877 -------------------------------------------------------- wood 20 5 -3.220754 Outliers: 4 [1] 4 6 8 19 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: DET-S Robust Estimate of Location: [1] 0.580 0.123 0.530 0.538 0.890 Robust Estimate of Covariance: x1 x2 x3 x4 x5 x1 8.16e-03 1.39e-03 1.97e-03 -2.82e-04 -7.61e-04 x2 1.39e-03 4.00e-04 8.14e-04 -8.51e-05 -5.07e-06 x3 1.97e-03 8.14e-04 4.74e-03 -9.59e-04 2.06e-05 x4 -2.82e-04 -8.51e-05 -9.59e-04 3.09e-03 1.87e-03 x5 -7.61e-04 -5.07e-06 2.06e-05 1.87e-03 2.28e-03 -------------------------------------------------------- hbk 75 3 0.283145 Outliers: 14 [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: DET-S Robust Estimate of Location: [1] 1.53 1.83 1.66 Robust Estimate of Covariance: X1 X2 X3 X1 1.8091 0.0479 0.2446 X2 0.0479 1.8190 0.2513 X3 0.2446 0.2513 1.7288 -------------------------------------------------------- Animals 28 2 4.685129 Outliers: 10 [1] 2 6 7 9 12 14 15 16 24 25 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: DET-S Robust Estimate of Location: [1] 30.8 84.2 Robust Estimate of Covariance: body brain body 14806 28767 brain 28767 65194 -------------------------------------------------------- milk 86 8 -1.437863 Outliers: 15 [1] 1 2 3 12 13 14 15 16 17 41 44 47 70 74 75 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: DET-S Robust Estimate of Location: [1] 1.03 35.81 32.97 26.04 25.02 24.94 122.81 14.36 Robust Estimate of Covariance: X1 X2 X3 X4 X5 X6 X7 X1 8.30e-07 2.53e-04 4.43e-04 4.02e-04 3.92e-04 3.96e-04 1.44e-03 X2 2.53e-04 2.24e+00 4.77e-01 3.63e-01 2.91e-01 3.94e-01 2.44e+00 X3 4.43e-04 4.77e-01 1.58e+00 1.20e+00 1.18e+00 1.19e+00 1.65e+00 X4 4.02e-04 3.63e-01 1.20e+00 9.74e-01 9.37e-01 9.39e-01 1.39e+00 X5 3.92e-04 2.91e-01 1.18e+00 9.37e-01 9.78e-01 9.44e-01 1.37e+00 X6 3.96e-04 3.94e-01 1.19e+00 9.39e-01 9.44e-01 9.82e-01 1.41e+00 X7 1.44e-03 2.44e+00 1.65e+00 1.39e+00 1.37e+00 1.41e+00 6.96e+00 X8 7.45e-05 3.33e-01 2.82e-01 2.01e-01 1.80e-01 1.91e-01 6.38e-01 X8 X1 7.45e-05 X2 3.33e-01 X3 2.82e-01 X4 2.01e-01 X5 1.80e-01 X6 1.91e-01 X7 6.38e-01 X8 2.01e-01 -------------------------------------------------------- bushfire 38 5 2.443148 Outliers: 13 [1] 7 8 9 10 11 31 32 33 34 35 36 37 38 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: DET-S Robust Estimate of Location: [1] 108 149 266 216 278 Robust Estimate of Covariance: V1 V2 V3 V4 V5 V1 911 688 -3961 -856 -707 V2 688 587 -2493 -492 -420 V3 -3961 -2493 24146 5765 4627 V4 -856 -492 5765 1477 1164 V5 -707 -420 4627 1164 925 -------------------------------------------------------- rice 105 5 -0.724874 Outliers: 7 [1] 9 40 42 49 57 58 71 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: DET-S Robust Estimate of Location: [1] -0.2472 0.1211 -0.1207 0.0715 0.0640 Robust Estimate of Covariance: Favor Appearance Taste Stickiness Toughness Favor 0.423 0.345 0.427 0.405 -0.202 Appearance 0.345 0.592 0.570 0.549 -0.316 Taste 0.427 0.570 0.739 0.706 -0.393 Stickiness 0.405 0.549 0.706 0.876 -0.497 Toughness -0.202 -0.316 -0.393 -0.497 0.467 -------------------------------------------------------- hemophilia 75 2 -1.868949 Outliers: 2 [1] 11 36 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: DET-S Robust Estimate of Location: [1] -0.2126 -0.0357 Robust Estimate of Covariance: AHFactivity AHFantigen AHFactivity 0.0317 0.0112 AHFantigen 0.0112 0.0218 -------------------------------------------------------- fish 159 6 1.267294 Outliers: 33 [1] 61 72 73 74 75 76 77 78 79 80 81 82 83 85 86 87 88 89 90 [20] 91 92 93 94 95 96 97 98 99 100 101 102 103 142 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: DET-S Robust Estimate of Location: [1] 381.2 25.6 27.8 30.8 31.0 14.9 Robust Estimate of Covariance: Weight Length1 Length2 Length3 Height Width Weight 148372.04 3260.48 3508.71 3976.93 1507.43 127.94 Length1 3260.48 77.00 82.52 92.18 27.56 3.29 Length2 3508.71 82.52 88.57 99.20 30.83 3.43 Length3 3976.93 92.18 99.20 113.97 45.50 2.21 Height 1507.43 27.56 30.83 45.50 70.54 -4.95 Width 127.94 3.29 3.43 2.21 -4.95 2.28 -------------------------------------------------------- airquality 153 4 2.684374 Outliers: 7 [1] 7 14 23 30 34 77 107 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: DET-S Robust Estimate of Location: [1] 39.34 192.12 9.67 78.71 Robust Estimate of Covariance: Ozone Solar.R Wind Temp Ozone 973.104 894.011 -61.856 243.560 Solar.R 894.011 9677.269 0.388 179.429 Wind -61.856 0.388 11.287 -14.310 Temp 243.560 179.429 -14.310 96.714 -------------------------------------------------------- attitude 30 7 2.091968 Outliers: 4 [1] 14 16 18 24 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: DET-S Robust Estimate of Location: [1] 65.7 66.8 51.9 56.1 66.4 76.7 43.0 Robust Estimate of Covariance: rating complaints privileges learning raises critical advance rating 170.59 136.40 77.41 125.46 99.72 8.01 49.52 complaints 136.40 170.94 94.62 136.73 120.76 23.52 78.52 privileges 77.41 94.62 150.49 112.77 87.92 6.43 72.33 learning 125.46 136.73 112.77 173.77 131.46 25.81 81.38 raises 99.72 120.76 87.92 131.46 136.76 29.50 91.70 critical 8.01 23.52 6.43 25.81 29.50 84.75 30.59 advance 49.52 78.52 72.33 81.38 91.70 30.59 116.28 -------------------------------------------------------- attenu 182 5 1.148032 Outliers: 31 [1] 2 5 6 7 8 9 10 11 15 16 19 20 21 22 23 24 25 27 28 [20] 29 30 31 32 64 65 80 94 95 96 97 100 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: DET-S Robust Estimate of Location: [1] 16.432 5.849 60.297 27.144 0.134 Robust Estimate of Covariance: event mag station dist accel event 54.9236 -3.0733 181.0954 -49.4195 -0.0628 mag -3.0733 0.6530 -8.4388 6.7388 0.0161 station 181.0954 -8.4388 1689.7161 -114.6321 0.7285 dist -49.4195 6.7388 -114.6321 597.3609 -1.7988 accel -0.0628 0.0161 0.7285 -1.7988 0.0152 -------------------------------------------------------- USJudgeRatings 43 12 -1.683847 Outliers: 7 [1] 5 7 12 13 14 23 31 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: DET-S Robust Estimate of Location: [1] 7.43 8.16 7.75 7.89 7.68 7.76 7.67 7.67 7.51 7.58 8.19 7.86 Robust Estimate of Covariance: CONT INTG DMNR DILG CFMG DECI PREP FAMI CONT 0.8715 -0.3020 -0.4683 -0.1894 -0.0569 -0.0993 -0.1772 -0.1976 INTG -0.3020 0.6403 0.8600 0.6956 0.5733 0.5440 0.7093 0.7086 DMNR -0.4683 0.8600 1.2416 0.9109 0.7669 0.7307 0.9295 0.9161 DILG -0.1894 0.6956 0.9109 0.8555 0.7410 0.7037 0.8867 0.8793 CFMG -0.0569 0.5733 0.7669 0.7410 0.6995 0.6546 0.7789 0.7723 DECI -0.0993 0.5440 0.7307 0.7037 0.6546 0.6343 0.7493 0.7513 PREP -0.1772 0.7093 0.9295 0.8867 0.7789 0.7493 0.9543 0.9559 FAMI -0.1976 0.7086 0.9161 0.8793 0.7723 0.7513 0.9559 0.9788 ORAL -0.2445 0.7456 0.9942 0.8919 0.7844 0.7553 0.9557 0.9683 WRIT -0.2345 0.7321 0.9652 0.8856 0.7783 0.7513 0.9501 0.9671 PHYS -0.1986 0.4676 0.6264 0.5628 0.5072 0.5038 0.5990 0.6140 RTEN -0.3154 0.8002 1.0801 0.9236 0.7954 0.7665 0.9639 0.9695 ORAL WRIT PHYS RTEN CONT -0.2445 -0.2345 -0.1986 -0.3154 INTG 0.7456 0.7321 0.4676 0.8002 DMNR 0.9942 0.9652 0.6264 1.0801 DILG 0.8919 0.8856 0.5628 0.9236 CFMG 0.7844 0.7783 0.5072 0.7954 DECI 0.7553 0.7513 0.5038 0.7665 PREP 0.9557 0.9501 0.5990 0.9639 FAMI 0.9683 0.9671 0.6140 0.9695 ORAL 0.9856 0.9748 0.6281 1.0035 WRIT 0.9748 0.9714 0.6184 0.9873 PHYS 0.6281 0.6184 0.4713 0.6520 RTEN 1.0035 0.9873 0.6520 1.0624 -------------------------------------------------------- USArrests 50 4 2.411726 Outliers: 4 [1] 2 28 33 39 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: DET-S Robust Estimate of Location: [1] 7.05 150.66 64.66 19.37 Robust Estimate of Covariance: Murder Assault UrbanPop Rape Murder 23.8 380.8 19.2 29.7 Assault 380.8 8436.2 605.6 645.3 UrbanPop 19.2 605.6 246.5 78.8 Rape 29.7 645.3 78.8 77.3 -------------------------------------------------------- longley 16 7 1.143113 Outliers: 4 [1] 1 2 3 4 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: DET-S Robust Estimate of Location: [1] 107 435 334 293 120 1957 67 Robust Estimate of Covariance: GNP.deflator GNP Unemployed Armed.Forces Population GNP.deflator 89.2 850.1 1007.4 -404.4 66.2 GNP 850.1 8384.4 9020.8 -3692.0 650.5 Unemployed 1007.4 9020.8 16585.4 -4990.7 752.5 Armed.Forces -404.4 -3692.0 -4990.7 2474.2 -280.9 Population 66.2 650.5 752.5 -280.9 51.2 Year 41.9 407.6 481.9 -186.4 31.9 Employed 27.9 279.7 255.6 -128.8 21.1 Year Employed GNP.deflator 41.9 27.9 GNP 407.6 279.7 Unemployed 481.9 255.6 Armed.Forces -186.4 -128.8 Population 31.9 21.1 Year 20.2 13.4 Employed 13.4 10.1 -------------------------------------------------------- Loblolly 84 3 1.481317 Outliers: 14 [1] 6 12 18 24 30 36 42 48 54 60 66 72 78 84 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: DET-S Robust Estimate of Location: [1] 24.22 9.65 7.50 Robust Estimate of Covariance: height age Seed height 525.08 179.21 14.27 age 179.21 61.85 2.94 Seed 14.27 2.94 25.86 -------------------------------------------------------- quakes 1000 4 1.576855 Outliers: 223 [1] 7 12 15 17 22 25 27 28 32 37 40 41 45 48 53 [16] 63 64 73 78 87 91 92 94 99 108 110 117 118 119 120 [31] 121 122 126 133 136 141 143 145 148 152 154 155 157 159 160 [46] 163 170 192 205 222 226 230 239 243 250 251 252 254 258 263 [61] 267 268 271 283 292 300 301 305 311 312 318 320 321 325 328 [76] 330 334 352 357 360 365 381 382 384 389 400 402 408 413 416 [91] 417 419 426 429 437 441 443 453 456 467 474 477 490 492 496 [106] 504 507 508 509 517 524 527 528 531 532 534 536 538 539 541 [121] 542 543 544 545 546 547 552 553 560 571 581 583 587 593 594 [136] 596 597 605 612 613 618 620 625 629 638 642 647 649 653 655 [151] 656 672 675 681 686 699 701 702 712 714 716 721 725 726 735 [166] 744 754 756 759 765 766 769 779 781 782 785 787 797 804 813 [181] 825 827 837 840 844 852 853 857 860 865 866 869 870 872 873 [196] 883 884 887 888 890 891 893 908 909 912 915 916 921 927 930 [211] 952 962 963 969 974 980 982 986 987 988 992 997 1000 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: DET-S Robust Estimate of Location: [1] -21.54 182.35 369.21 4.54 Robust Estimate of Covariance: lat long depth mag lat 2.81e+01 6.19e+00 3.27e+02 -4.56e-01 long 6.19e+00 7.54e+00 -5.95e+02 9.56e-02 depth 3.27e+02 -5.95e+02 8.36e+04 -2.70e+01 mag -4.56e-01 9.56e-02 -2.70e+01 2.35e-01 -------------------------------------------------------- =================================================== > ##dodata(method="suser") > ##dodata(method="surreal") > dodata(method="bisquare") Call: dodata(method = "bisquare") Data Set n p LOG(det) Time =================================================== heart 12 2 7.721793 Outliers: 3 [1] 2 6 12 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: bisquare Robust Estimate of Location: height weight 36.1 29.4 Robust Estimate of Covariance: height weight height 109 177 weight 177 307 -------------------------------------------------------- starsCYG 47 2 -5.942108 Outliers: 7 [1] 7 9 11 14 20 30 34 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: bisquare Robust Estimate of Location: log.Te log.light 4.42 4.97 Robust Estimate of Covariance: log.Te log.light log.Te 0.0164 0.0574 log.light 0.0574 0.3613 -------------------------------------------------------- phosphor 18 2 9.269096 Outliers: 2 [1] 1 6 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: bisquare Robust Estimate of Location: inorg organic 14.1 38.7 Robust Estimate of Covariance: inorg organic inorg 173 189 organic 189 268 -------------------------------------------------------- stackloss 21 3 8.411100 Outliers: 3 [1] 1 2 3 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: bisquare Robust Estimate of Location: Air.Flow Water.Temp Acid.Conc. 57.5 20.5 86.0 Robust Estimate of Covariance: Air.Flow Water.Temp Acid.Conc. Air.Flow 33.82 10.17 20.02 Water.Temp 10.17 8.70 6.84 Acid.Conc. 20.02 6.84 35.51 -------------------------------------------------------- coleman 20 5 4.722046 Outliers: 2 [1] 6 10 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: bisquare Robust Estimate of Location: salaryP fatherWc sstatus teacherSc motherLev 2.77 45.59 4.14 25.13 6.39 Robust Estimate of Covariance: salaryP fatherWc sstatus teacherSc motherLev salaryP 0.2135 1.8732 1.3883 0.2547 0.0648 fatherWc 1.8732 905.6704 296.1916 7.9820 21.0848 sstatus 1.3883 296.1916 128.9536 4.0196 7.1917 teacherSc 0.2547 7.9820 4.0196 0.7321 0.2799 motherLev 0.0648 21.0848 7.1917 0.2799 0.5592 -------------------------------------------------------- salinity 28 3 4.169963 Outliers: 4 [1] 5 16 23 24 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: bisquare Robust Estimate of Location: X1 X2 X3 10.30 3.07 22.59 Robust Estimate of Covariance: X1 X2 X3 X1 12.234 0.748 -3.369 X2 0.748 4.115 -1.524 X3 -3.369 -1.524 2.655 -------------------------------------------------------- wood 20 5 -33.862485 Outliers: 5 [1] 4 6 8 11 19 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: bisquare Robust Estimate of Location: x1 x2 x3 x4 x5 0.580 0.123 0.530 0.538 0.890 Robust Estimate of Covariance: x1 x2 x3 x4 x5 x1 5.88e-03 9.96e-04 1.43e-03 -1.96e-04 -5.46e-04 x2 9.96e-04 2.86e-04 5.89e-04 -5.78e-05 -2.24e-06 x3 1.43e-03 5.89e-04 3.42e-03 -6.95e-04 1.43e-05 x4 -1.96e-04 -5.78e-05 -6.95e-04 2.23e-03 1.35e-03 x5 -5.46e-04 -2.24e-06 1.43e-05 1.35e-03 1.65e-03 -------------------------------------------------------- hbk 75 3 1.472421 Outliers: 14 [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: bisquare Robust Estimate of Location: X1 X2 X3 1.53 1.83 1.66 Robust Estimate of Covariance: X1 X2 X3 X1 1.6775 0.0447 0.2268 X2 0.0447 1.6865 0.2325 X3 0.2268 0.2325 1.6032 -------------------------------------------------------- Animals 28 2 18.528307 Outliers: 11 [1] 2 6 7 9 12 14 15 16 24 25 28 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: bisquare Robust Estimate of Location: body brain 30.7 84.1 Robust Estimate of Covariance: body brain body 13278 25795 brain 25795 58499 -------------------------------------------------------- milk 86 8 -24.816943 Outliers: 19 [1] 1 2 3 11 12 13 14 15 16 17 20 27 41 44 47 70 74 75 77 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: bisquare Robust Estimate of Location: X1 X2 X3 X4 X5 X6 X7 X8 1.03 35.81 32.96 26.04 25.02 24.94 122.79 14.35 Robust Estimate of Covariance: X1 X2 X3 X4 X5 X6 X7 X1 6.80e-07 2.20e-04 3.70e-04 3.35e-04 3.27e-04 3.30e-04 1.21e-03 X2 2.20e-04 1.80e+00 3.96e-01 3.03e-01 2.45e-01 3.27e-01 2.00e+00 X3 3.70e-04 3.96e-01 1.27e+00 9.68e-01 9.49e-01 9.56e-01 1.37e+00 X4 3.35e-04 3.03e-01 9.68e-01 7.86e-01 7.55e-01 7.57e-01 1.15e+00 X5 3.27e-04 2.45e-01 9.49e-01 7.55e-01 7.88e-01 7.61e-01 1.14e+00 X6 3.30e-04 3.27e-01 9.56e-01 7.57e-01 7.61e-01 7.90e-01 1.17e+00 X7 1.21e-03 2.00e+00 1.37e+00 1.15e+00 1.14e+00 1.17e+00 5.71e+00 X8 6.57e-05 2.71e-01 2.30e-01 1.64e-01 1.48e-01 1.57e-01 5.27e-01 X8 X1 6.57e-05 X2 2.71e-01 X3 2.30e-01 X4 1.64e-01 X5 1.48e-01 X6 1.57e-01 X7 5.27e-01 X8 1.62e-01 -------------------------------------------------------- bushfire 38 5 21.704243 Outliers: 13 [1] 7 8 9 10 11 31 32 33 34 35 36 37 38 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: bisquare Robust Estimate of Location: V1 V2 V3 V4 V5 108 149 266 216 278 Robust Estimate of Covariance: V1 V2 V3 V4 V5 V1 528 398 -2298 -497 -410 V2 398 340 -1445 -285 -244 V3 -2298 -1445 14026 3348 2687 V4 -497 -285 3348 857 676 V5 -410 -244 2687 676 537 -------------------------------------------------------- rice 105 5 -7.346939 Outliers: 8 [1] 9 14 40 42 49 57 58 71 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: bisquare Robust Estimate of Location: Favor Appearance Taste Stickiness Toughness -0.2480 0.1203 -0.1213 0.0710 0.0644 Robust Estimate of Covariance: Favor Appearance Taste Stickiness Toughness Favor 0.415 0.338 0.419 0.398 -0.198 Appearance 0.338 0.580 0.559 0.539 -0.310 Taste 0.419 0.559 0.725 0.693 -0.386 Stickiness 0.398 0.539 0.693 0.859 -0.487 Toughness -0.198 -0.310 -0.386 -0.487 0.457 -------------------------------------------------------- hemophilia 75 2 -7.465173 Outliers: 2 [1] 11 36 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: bisquare Robust Estimate of Location: AHFactivity AHFantigen -0.2128 -0.0366 Robust Estimate of Covariance: AHFactivity AHFantigen AHFactivity 0.0321 0.0115 AHFantigen 0.0115 0.0220 -------------------------------------------------------- fish 159 6 13.465134 Outliers: 35 [1] 38 61 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 [20] 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 142 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: bisquare Robust Estimate of Location: Weight Length1 Length2 Length3 Height Width 381.4 25.6 27.8 30.8 31.0 14.9 Robust Estimate of Covariance: Weight Length1 Length2 Length3 Height Width Weight 111094.92 2440.81 2626.59 2976.92 1129.78 95.85 Length1 2440.81 57.63 61.75 68.98 20.67 2.46 Length2 2626.59 61.75 66.28 74.24 23.13 2.57 Length3 2976.92 68.98 74.24 85.29 34.11 1.65 Height 1129.78 20.67 23.13 34.11 52.75 -3.70 Width 95.85 2.46 2.57 1.65 -3.70 1.71 -------------------------------------------------------- airquality 153 4 21.282926 Outliers: 8 [1] 7 11 14 23 30 34 77 107 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: bisquare Robust Estimate of Location: Ozone Solar.R Wind Temp 39.40 192.29 9.66 78.74 Robust Estimate of Covariance: Ozone Solar.R Wind Temp Ozone 930.566 849.644 -59.157 232.459 Solar.R 849.644 9207.569 0.594 168.122 Wind -59.157 0.594 10.783 -13.645 Temp 232.459 168.122 -13.645 92.048 -------------------------------------------------------- attitude 30 7 28.084183 Outliers: 6 [1] 6 9 14 16 18 24 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: bisquare Robust Estimate of Location: rating complaints privileges learning raises critical 65.7 66.8 51.9 56.1 66.4 76.7 advance 43.0 Robust Estimate of Covariance: rating complaints privileges learning raises critical advance rating 143.88 114.95 64.97 105.69 83.95 6.96 41.78 complaints 114.95 143.84 79.28 115.00 101.48 19.69 66.13 privileges 64.97 79.28 126.38 94.70 73.87 5.37 61.07 learning 105.69 115.00 94.70 146.14 110.50 21.67 68.49 raises 83.95 101.48 73.87 110.50 115.01 24.91 77.16 critical 6.96 19.69 5.37 21.67 24.91 71.74 25.88 advance 41.78 66.13 61.07 68.49 77.16 25.88 97.71 -------------------------------------------------------- attenu 182 5 10.109049 Outliers: 35 [1] 2 4 5 6 7 8 9 10 11 15 16 19 20 21 22 23 24 25 27 [20] 28 29 30 31 32 64 65 80 93 94 95 96 97 98 99 100 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: bisquare Robust Estimate of Location: event mag station dist accel 16.418 5.850 60.243 27.307 0.134 Robust Estimate of Covariance: event mag station dist accel event 41.9000 -2.3543 137.8110 -39.0321 -0.0447 mag -2.3543 0.4978 -6.4461 5.2644 0.0118 station 137.8110 -6.4461 1283.9675 -90.1657 0.5554 dist -39.0321 5.2644 -90.1657 462.3898 -1.3672 accel -0.0447 0.0118 0.5554 -1.3672 0.0114 -------------------------------------------------------- USJudgeRatings 43 12 -43.367499 Outliers: 10 [1] 5 7 8 12 13 14 20 23 31 35 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: bisquare Robust Estimate of Location: CONT INTG DMNR DILG CFMG DECI PREP FAMI ORAL WRIT PHYS RTEN 7.43 8.16 7.75 7.89 7.69 7.76 7.68 7.67 7.52 7.59 8.19 7.87 Robust Estimate of Covariance: CONT INTG DMNR DILG CFMG DECI PREP FAMI CONT 0.6895 -0.2399 -0.3728 -0.1514 -0.0461 -0.0801 -0.1419 -0.1577 INTG -0.2399 0.5021 0.6746 0.5446 0.4479 0.4254 0.5564 0.5558 DMNR -0.3728 0.6746 0.9753 0.7128 0.5992 0.5715 0.7289 0.7181 DILG -0.1514 0.5446 0.7128 0.6691 0.5789 0.5501 0.6949 0.6892 CFMG -0.0461 0.4479 0.5992 0.5789 0.5468 0.5118 0.6100 0.6049 DECI -0.0801 0.4254 0.5715 0.5501 0.5118 0.4965 0.5872 0.5890 PREP -0.1419 0.5564 0.7289 0.6949 0.6100 0.5872 0.7497 0.7511 FAMI -0.1577 0.5558 0.7181 0.6892 0.6049 0.5890 0.7511 0.7696 ORAL -0.1950 0.5848 0.7798 0.6990 0.6143 0.5921 0.7508 0.7610 WRIT -0.1866 0.5747 0.7575 0.6946 0.6101 0.5895 0.7470 0.7607 PHYS -0.1620 0.3640 0.4878 0.4361 0.3927 0.3910 0.4655 0.4779 RTEN -0.2522 0.6268 0.8462 0.7220 0.6210 0.5991 0.7553 0.7599 ORAL WRIT PHYS RTEN CONT -0.1950 -0.1866 -0.1620 -0.2522 INTG 0.5848 0.5747 0.3640 0.6268 DMNR 0.7798 0.7575 0.4878 0.8462 DILG 0.6990 0.6946 0.4361 0.7220 CFMG 0.6143 0.6101 0.3927 0.6210 DECI 0.5921 0.5895 0.3910 0.5991 PREP 0.7508 0.7470 0.4655 0.7553 FAMI 0.7610 0.7607 0.4779 0.7599 ORAL 0.7745 0.7665 0.4893 0.7866 WRIT 0.7665 0.7645 0.4823 0.7745 PHYS 0.4893 0.4823 0.3620 0.5062 RTEN 0.7866 0.7745 0.5062 0.8313 -------------------------------------------------------- USArrests 50 4 19.266763 Outliers: 4 [1] 2 28 33 39 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: bisquare Robust Estimate of Location: Murder Assault UrbanPop Rape 7.04 150.55 64.64 19.34 Robust Estimate of Covariance: Murder Assault UrbanPop Rape Murder 23.7 378.9 19.1 29.5 Assault 378.9 8388.2 601.3 639.7 UrbanPop 19.1 601.3 245.3 77.9 Rape 29.5 639.7 77.9 76.3 -------------------------------------------------------- longley 16 7 13.789499 Outliers: 4 [1] 1 2 3 4 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: bisquare Robust Estimate of Location: GNP.deflator GNP Unemployed Armed.Forces Population 107 435 333 293 120 Year Employed 1957 67 Robust Estimate of Covariance: GNP.deflator GNP Unemployed Armed.Forces Population GNP.deflator 65.05 619.75 734.33 -294.02 48.27 GNP 619.75 6112.14 6578.12 -2684.52 474.26 Unemployed 734.33 6578.12 12075.90 -3627.79 548.58 Armed.Forces -294.02 -2684.52 -3627.79 1797.05 -204.25 Population 48.27 474.26 548.58 -204.25 37.36 Year 30.58 297.29 351.44 -135.53 23.29 Employed 20.36 203.96 186.62 -93.64 15.42 Year Employed GNP.deflator 30.58 20.36 GNP 297.29 203.96 Unemployed 351.44 186.62 Armed.Forces -135.53 -93.64 Population 23.29 15.42 Year 14.70 9.80 Employed 9.80 7.36 -------------------------------------------------------- Loblolly 84 3 8.518440 Outliers: 14 [1] 6 12 18 24 30 36 42 48 54 60 66 72 78 84 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: bisquare Robust Estimate of Location: height age Seed 24.14 9.62 7.51 Robust Estimate of Covariance: height age Seed height 464.64 158.43 12.83 age 158.43 54.62 2.67 Seed 12.83 2.67 22.98 -------------------------------------------------------- quakes 1000 4 11.611413 Outliers: 234 [1] 7 12 15 17 22 25 27 28 32 37 40 41 45 48 53 [16] 63 64 73 78 87 91 92 94 99 108 110 117 118 119 120 [31] 121 122 126 133 136 141 143 145 148 152 154 155 157 159 160 [46] 163 166 170 174 192 205 222 226 230 239 243 250 251 252 254 [61] 258 263 267 268 271 283 292 297 300 301 305 311 312 318 320 [76] 321 325 328 330 331 334 352 357 360 365 368 376 381 382 384 [91] 389 399 400 402 408 413 416 417 418 419 426 429 437 441 443 [106] 453 456 467 474 477 490 492 496 504 507 508 509 517 524 527 [121] 528 531 532 534 536 538 539 541 542 543 544 545 546 547 552 [136] 553 558 560 570 571 581 583 587 593 594 596 597 605 612 613 [151] 618 620 625 629 638 642 647 649 653 655 656 672 675 681 686 [166] 699 701 702 712 714 716 721 725 726 735 744 753 754 756 759 [181] 765 766 769 779 781 782 785 787 797 804 813 825 827 837 840 [196] 844 852 853 857 860 865 866 869 870 872 873 883 884 887 888 [211] 890 891 893 908 909 912 915 916 921 927 930 952 962 963 969 [226] 974 980 982 986 987 988 992 997 1000 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: bisquare Robust Estimate of Location: lat long depth mag -21.54 182.35 369.29 4.54 Robust Estimate of Covariance: lat long depth mag lat 2.18e+01 4.82e+00 2.53e+02 -3.54e-01 long 4.82e+00 5.87e+00 -4.63e+02 7.45e-02 depth 2.53e+02 -4.63e+02 6.51e+04 -2.10e+01 mag -3.54e-01 7.45e-02 -2.10e+01 1.83e-01 -------------------------------------------------------- =================================================== > dodata(method="rocke") Call: dodata(method = "rocke") Data Set n p LOG(det) Time =================================================== heart 12 2 7.285196 Outliers: 3 [1] 2 6 12 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: Rocke type Robust Estimate of Location: height weight 34.3 26.1 Robust Estimate of Covariance: height weight height 105 159 weight 159 256 -------------------------------------------------------- starsCYG 47 2 -5.929361 Outliers: 7 [1] 7 9 11 14 20 30 34 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: Rocke type Robust Estimate of Location: log.Te log.light 4.42 4.93 Robust Estimate of Covariance: log.Te log.light log.Te 0.0193 0.0709 log.light 0.0709 0.3987 -------------------------------------------------------- phosphor 18 2 8.907518 Outliers: 3 [1] 1 6 10 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: Rocke type Robust Estimate of Location: inorg organic 15.8 39.4 Robust Estimate of Covariance: inorg organic inorg 196 252 organic 252 360 -------------------------------------------------------- stackloss 21 3 8.143313 Outliers: 4 [1] 1 2 3 21 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: Rocke type Robust Estimate of Location: Air.Flow Water.Temp Acid.Conc. 56.8 20.2 86.4 Robust Estimate of Covariance: Air.Flow Water.Temp Acid.Conc. Air.Flow 29.26 9.62 14.78 Water.Temp 9.62 8.54 6.25 Acid.Conc. 14.78 6.25 29.70 -------------------------------------------------------- coleman 20 5 4.001659 Outliers: 5 [1] 2 6 9 10 13 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: Rocke type Robust Estimate of Location: salaryP fatherWc sstatus teacherSc motherLev 2.81 40.27 2.11 25.01 6.27 Robust Estimate of Covariance: salaryP fatherWc sstatus teacherSc motherLev salaryP 0.2850 1.1473 2.0254 0.3536 0.0737 fatherWc 1.1473 798.0714 278.0145 6.4590 18.6357 sstatus 2.0254 278.0145 128.7601 4.0666 6.3845 teacherSc 0.3536 6.4590 4.0666 0.8749 0.2980 motherLev 0.0737 18.6357 6.3845 0.2980 0.4948 -------------------------------------------------------- salinity 28 3 3.455146 Outliers: 9 [1] 3 5 10 11 15 16 17 23 24 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: Rocke type Robust Estimate of Location: X1 X2 X3 9.89 3.10 22.46 Robust Estimate of Covariance: X1 X2 X3 X1 12.710 1.868 -4.135 X2 1.868 4.710 -0.663 X3 -4.135 -0.663 1.907 -------------------------------------------------------- wood 20 5 -35.020244 Outliers: 7 [1] 4 6 7 8 11 16 19 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: Rocke type Robust Estimate of Location: x1 x2 x3 x4 x5 0.588 0.123 0.534 0.535 0.891 Robust Estimate of Covariance: x1 x2 x3 x4 x5 x1 6.60e-03 1.25e-03 2.16e-03 -3.73e-04 -1.10e-03 x2 1.25e-03 3.30e-04 8.91e-04 -1.23e-05 2.62e-05 x3 2.16e-03 8.91e-04 4.55e-03 -4.90e-04 1.93e-04 x4 -3.73e-04 -1.23e-05 -4.90e-04 2.01e-03 1.36e-03 x5 -1.10e-03 2.62e-05 1.93e-04 1.36e-03 1.95e-03 -------------------------------------------------------- hbk 75 3 1.413303 Outliers: 14 [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: Rocke type Robust Estimate of Location: X1 X2 X3 1.56 1.77 1.68 Robust Estimate of Covariance: X1 X2 X3 X1 1.6483 0.0825 0.2133 X2 0.0825 1.6928 0.2334 X3 0.2133 0.2334 1.5334 -------------------------------------------------------- Animals 28 2 17.787210 Outliers: 11 [1] 2 6 7 9 12 14 15 16 24 25 28 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: Rocke type Robust Estimate of Location: body brain 60.6 150.2 Robust Estimate of Covariance: body brain body 10670 19646 brain 19646 41147 -------------------------------------------------------- milk 86 8 -25.169970 Outliers: 22 [1] 1 2 3 11 12 13 14 15 16 17 18 20 27 28 41 44 47 70 73 74 75 77 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: Rocke type Robust Estimate of Location: X1 X2 X3 X4 X5 X6 X7 X8 1.03 35.87 33.14 26.19 25.17 25.11 123.16 14.41 Robust Estimate of Covariance: X1 X2 X3 X4 X5 X6 X7 X1 4.47e-07 1.77e-04 1.94e-04 1.79e-04 1.60e-04 1.45e-04 6.45e-04 X2 1.77e-04 2.36e+00 4.03e-01 3.08e-01 2.08e-01 3.45e-01 2.18e+00 X3 1.94e-04 4.03e-01 1.13e+00 8.31e-01 8.08e-01 7.79e-01 9.83e-01 X4 1.79e-04 3.08e-01 8.31e-01 6.62e-01 6.22e-01 5.95e-01 7.82e-01 X5 1.60e-04 2.08e-01 8.08e-01 6.22e-01 6.51e-01 5.93e-01 7.60e-01 X6 1.45e-04 3.45e-01 7.79e-01 5.95e-01 5.93e-01 5.88e-01 7.81e-01 X7 6.45e-04 2.18e+00 9.83e-01 7.82e-01 7.60e-01 7.81e-01 4.81e+00 X8 2.47e-05 2.57e-01 2.00e-01 1.37e-01 1.13e-01 1.28e-01 4.38e-01 X8 X1 2.47e-05 X2 2.57e-01 X3 2.00e-01 X4 1.37e-01 X5 1.13e-01 X6 1.28e-01 X7 4.38e-01 X8 1.61e-01 -------------------------------------------------------- bushfire 38 5 21.641566 Outliers: 13 [1] 7 8 9 10 11 31 32 33 34 35 36 37 38 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: Rocke type Robust Estimate of Location: V1 V2 V3 V4 V5 111 150 256 214 276 Robust Estimate of Covariance: V1 V2 V3 V4 V5 V1 554 408 -2321 -464 -393 V2 408 343 -1361 -244 -215 V3 -2321 -1361 14690 3277 2684 V4 -464 -244 3277 783 629 V5 -393 -215 2684 629 509 -------------------------------------------------------- rice 105 5 -7.208835 Outliers: 8 [1] 9 14 40 42 49 57 58 71 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: Rocke type Robust Estimate of Location: Favor Appearance Taste Stickiness Toughness -0.21721 0.20948 -0.04581 0.15355 -0.00254 Robust Estimate of Covariance: Favor Appearance Taste Stickiness Toughness Favor 0.432 0.337 0.417 0.382 -0.201 Appearance 0.337 0.591 0.553 0.510 -0.295 Taste 0.417 0.553 0.735 0.683 -0.385 Stickiness 0.382 0.510 0.683 0.834 -0.462 Toughness -0.201 -0.295 -0.385 -0.462 0.408 -------------------------------------------------------- hemophilia 75 2 -7.453807 Outliers: 2 [1] 46 53 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: Rocke type Robust Estimate of Location: AHFactivity AHFantigen -0.2276 -0.0637 Robust Estimate of Covariance: AHFactivity AHFantigen AHFactivity 0.0405 0.0221 AHFantigen 0.0221 0.0263 -------------------------------------------------------- fish 159 6 13.110263 Outliers: 47 [1] 38 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 [20] 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 [39] 98 99 100 101 102 103 104 140 142 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: Rocke type Robust Estimate of Location: Weight Length1 Length2 Length3 Height Width 452.1 27.2 29.5 32.6 30.8 15.0 Robust Estimate of Covariance: Weight Length1 Length2 Length3 Height Width Weight 132559.85 2817.97 3035.69 3369.07 1231.68 112.19 Length1 2817.97 64.16 68.74 75.36 22.52 2.37 Length2 3035.69 68.74 73.77 81.12 25.57 2.47 Length3 3369.07 75.36 81.12 91.65 37.39 1.40 Height 1231.68 22.52 25.57 37.39 50.91 -3.92 Width 112.19 2.37 2.47 1.40 -3.92 1.87 -------------------------------------------------------- airquality 153 4 21.181656 Outliers: 13 [1] 6 7 11 14 17 20 23 30 34 53 63 77 107 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: Rocke type Robust Estimate of Location: Ozone Solar.R Wind Temp 40.21 198.33 9.76 79.35 Robust Estimate of Covariance: Ozone Solar.R Wind Temp Ozone 885.7 581.1 -57.3 226.4 Solar.R 581.1 8870.9 26.2 -15.1 Wind -57.3 26.2 11.8 -13.4 Temp 226.4 -15.1 -13.4 89.4 -------------------------------------------------------- attitude 30 7 27.836398 Outliers: 8 [1] 1 9 13 14 17 18 24 26 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: Rocke type Robust Estimate of Location: rating complaints privileges learning raises critical 64.0 65.4 50.5 54.9 63.1 72.6 advance 40.5 Robust Estimate of Covariance: rating complaints privileges learning raises critical advance rating 180.10 153.16 42.04 128.90 90.25 18.75 39.81 complaints 153.16 192.38 58.32 142.48 94.29 8.13 45.33 privileges 42.04 58.32 113.65 82.31 69.53 23.13 61.96 learning 128.90 142.48 82.31 156.99 101.74 13.22 49.64 raises 90.25 94.29 69.53 101.74 110.85 47.84 55.76 critical 18.75 8.13 23.13 13.22 47.84 123.00 36.97 advance 39.81 45.33 61.96 49.64 55.76 36.97 53.59 -------------------------------------------------------- attenu 182 5 9.726797 Outliers: 44 [1] 1 2 4 5 6 7 8 9 10 11 13 15 16 19 20 21 22 23 24 [20] 25 27 28 29 30 31 32 40 45 60 61 64 65 78 80 81 93 94 95 [39] 96 97 98 99 100 108 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: Rocke type Robust Estimate of Location: event mag station dist accel 16.39 5.82 60.89 27.97 0.12 Robust Estimate of Covariance: event mag station dist accel event 4.20e+01 -1.97e+00 1.44e+02 -3.50e+01 4.05e-02 mag -1.97e+00 5.05e-01 -4.78e+00 4.63e+00 4.19e-03 station 1.44e+02 -4.78e+00 1.47e+03 -5.74e+01 7.88e-01 dist -3.50e+01 4.63e+00 -5.74e+01 3.99e+02 -1.18e+00 accel 4.05e-02 4.19e-03 7.88e-01 -1.18e+00 7.71e-03 -------------------------------------------------------- USJudgeRatings 43 12 -46.356873 Outliers: 15 [1] 1 5 7 8 12 13 14 17 20 21 23 30 31 35 42 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: Rocke type Robust Estimate of Location: CONT INTG DMNR DILG CFMG DECI PREP FAMI ORAL WRIT PHYS RTEN 7.56 8.12 7.70 7.91 7.74 7.82 7.66 7.66 7.50 7.58 8.22 7.86 Robust Estimate of Covariance: CONT INTG DMNR DILG CFMG DECI PREP CONT 0.63426 -0.20121 -0.31858 -0.09578 0.00521 -0.00436 -0.07140 INTG -0.20121 0.28326 0.37540 0.27103 0.20362 0.19838 0.25706 DMNR -0.31858 0.37540 0.58265 0.33615 0.25649 0.24804 0.31696 DILG -0.09578 0.27103 0.33615 0.32588 0.27022 0.26302 0.32236 CFMG 0.00521 0.20362 0.25649 0.27022 0.25929 0.24217 0.27784 DECI -0.00436 0.19838 0.24804 0.26302 0.24217 0.23830 0.27284 PREP -0.07140 0.25706 0.31696 0.32236 0.27784 0.27284 0.35071 FAMI -0.07118 0.25858 0.29511 0.32582 0.27863 0.27657 0.35941 ORAL -0.11149 0.27055 0.33919 0.31768 0.27339 0.26739 0.34200 WRIT -0.10050 0.26857 0.32570 0.32327 0.27860 0.27201 0.34399 PHYS -0.09693 0.15339 0.18416 0.17089 0.13837 0.14895 0.18472 RTEN -0.15643 0.31793 0.40884 0.33863 0.27073 0.26854 0.34049 FAMI ORAL WRIT PHYS RTEN CONT -0.07118 -0.11149 -0.10050 -0.09693 -0.15643 INTG 0.25858 0.27055 0.26857 0.15339 0.31793 DMNR 0.29511 0.33919 0.32570 0.18416 0.40884 DILG 0.32582 0.31768 0.32327 0.17089 0.33863 CFMG 0.27863 0.27339 0.27860 0.13837 0.27073 DECI 0.27657 0.26739 0.27201 0.14895 0.26854 PREP 0.35941 0.34200 0.34399 0.18472 0.34049 FAMI 0.38378 0.35617 0.36094 0.19998 0.35048 ORAL 0.35617 0.34918 0.34808 0.19759 0.35217 WRIT 0.36094 0.34808 0.35242 0.19666 0.35090 PHYS 0.19998 0.19759 0.19666 0.14770 0.20304 RTEN 0.35048 0.35217 0.35090 0.20304 0.39451 -------------------------------------------------------- USArrests 50 4 19.206310 Outliers: 4 [1] 2 28 33 39 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: Rocke type Robust Estimate of Location: Murder Assault UrbanPop Rape 7.55 160.94 65.10 19.97 Robust Estimate of Covariance: Murder Assault UrbanPop Rape Murder 25.6 409.5 23.4 32.1 Assault 409.5 8530.9 676.9 669.4 UrbanPop 23.4 676.9 269.9 76.6 Rape 32.1 669.4 76.6 76.6 -------------------------------------------------------- longley 16 7 13.387132 Outliers: 4 [1] 1 2 3 4 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: Rocke type Robust Estimate of Location: GNP.deflator GNP Unemployed Armed.Forces Population 105.5 422.4 318.3 299.7 119.5 Year Employed 1956.1 66.5 Robust Estimate of Covariance: GNP.deflator GNP Unemployed Armed.Forces Population GNP.deflator 59.97 582.66 694.99 -237.75 46.12 GNP 582.66 5849.82 6383.68 -2207.26 461.15 Unemployed 694.99 6383.68 11155.03 -3104.18 534.25 Armed.Forces -237.75 -2207.26 -3104.18 1429.11 -171.28 Population 46.12 461.15 534.25 -171.28 36.79 Year 29.01 287.48 340.95 -112.61 22.85 Employed 18.99 193.66 186.31 -76.88 14.94 Year Employed GNP.deflator 29.01 18.99 GNP 287.48 193.66 Unemployed 340.95 186.31 Armed.Forces -112.61 -76.88 Population 22.85 14.94 Year 14.36 9.45 Employed 9.45 6.90 -------------------------------------------------------- Loblolly 84 3 7.757906 Outliers: 27 [1] 5 6 11 12 18 23 24 29 30 35 36 41 42 47 48 53 54 59 60 65 66 71 72 77 78 [26] 83 84 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: Rocke type Robust Estimate of Location: height age Seed 21.72 8.60 7.58 Robust Estimate of Covariance: height age Seed height 316.590 102.273 5.939 age 102.273 33.465 -0.121 Seed 5.939 -0.121 27.203 -------------------------------------------------------- quakes 1000 4 11.473431 Outliers: 237 [1] 7 12 15 17 22 25 27 28 32 37 40 41 45 48 53 [16] 63 64 73 78 87 91 92 94 99 108 110 117 118 119 120 [31] 121 122 126 133 136 141 143 145 148 152 154 155 157 159 160 [46] 163 166 170 174 176 192 205 222 226 230 239 243 244 250 251 [61] 252 254 258 263 267 268 271 283 292 297 300 301 305 311 312 [76] 318 320 321 325 328 330 331 334 352 357 360 365 368 376 381 [91] 382 384 389 399 400 402 408 410 413 416 417 418 419 426 429 [106] 437 441 443 453 456 467 474 477 490 492 496 504 507 508 509 [121] 517 524 527 528 531 532 534 536 538 539 541 542 543 544 545 [136] 546 547 552 553 558 560 570 571 581 583 587 593 594 596 597 [151] 605 612 613 618 620 625 629 638 642 647 649 653 655 656 672 [166] 675 681 686 699 701 702 712 714 716 721 725 726 735 744 753 [181] 754 756 759 765 766 769 779 781 782 785 787 797 804 813 825 [196] 827 837 840 844 852 853 857 860 865 866 869 870 872 873 883 [211] 884 887 888 890 891 893 908 909 912 915 916 921 927 930 952 [226] 962 963 969 974 980 982 986 987 988 992 997 1000 ------------- Call: CovSest(x = x, method = method) -> Method: S-estimates: Rocke type Robust Estimate of Location: lat long depth mag -21.45 182.54 351.18 4.55 Robust Estimate of Covariance: lat long depth mag lat 2.10e+01 4.66e+00 2.45e+02 -3.38e-01 long 4.66e+00 5.88e+00 -4.63e+02 9.36e-02 depth 2.45e+02 -4.63e+02 6.38e+04 -2.02e+01 mag -3.38e-01 9.36e-02 -2.02e+01 1.78e-01 -------------------------------------------------------- =================================================== > dodata(method="MM") Call: dodata(method = "MM") Data Set n p LOG(det) Time =================================================== heart 12 2 2.017701 Outliers: 1 [1] 6 ------------- Call: CovMMest(x = x) -> Method: MM-estimates Robust Estimate of Location: height weight 40.0 37.7 Robust Estimate of Covariance: height weight height 99.2 205.7 weight 205.7 458.9 -------------------------------------------------------- starsCYG 47 2 -1.450032 Outliers: 7 [1] 7 9 11 14 20 30 34 ------------- Call: CovMMest(x = x) -> Method: MM-estimates Robust Estimate of Location: log.Te log.light 4.41 4.94 Robust Estimate of Covariance: log.Te log.light log.Te 0.0180 0.0526 log.light 0.0526 0.3217 -------------------------------------------------------- phosphor 18 2 2.320721 Outliers: 1 [1] 6 ------------- Call: CovMMest(x = x) -> Method: MM-estimates Robust Estimate of Location: inorg organic 12.3 41.4 Robust Estimate of Covariance: inorg organic inorg 94.2 67.2 organic 67.2 162.1 -------------------------------------------------------- stackloss 21 3 1.470031 Outliers: 0 ------------- Call: CovMMest(x = x) -> Method: MM-estimates Robust Estimate of Location: Air.Flow Water.Temp Acid.Conc. 60.2 21.0 86.4 Robust Estimate of Covariance: Air.Flow Water.Temp Acid.Conc. Air.Flow 81.13 21.99 23.15 Water.Temp 21.99 10.01 6.43 Acid.Conc. 23.15 6.43 27.22 -------------------------------------------------------- coleman 20 5 0.491419 Outliers: 1 [1] 10 ------------- Call: CovMMest(x = x) -> Method: MM-estimates Robust Estimate of Location: salaryP fatherWc sstatus teacherSc motherLev 2.74 43.14 3.65 25.07 6.32 Robust Estimate of Covariance: salaryP fatherWc sstatus teacherSc motherLev salaryP 0.1878 2.0635 1.0433 0.2721 0.0582 fatherWc 2.0635 670.2232 211.0609 4.3625 15.6083 sstatus 1.0433 211.0609 92.8743 2.6532 5.1816 teacherSc 0.2721 4.3625 2.6532 1.2757 0.1613 motherLev 0.0582 15.6083 5.1816 0.1613 0.4192 -------------------------------------------------------- salinity 28 3 0.734619 Outliers: 2 [1] 5 16 ------------- Call: CovMMest(x = x) -> Method: MM-estimates Robust Estimate of Location: X1 X2 X3 10.46 2.66 23.15 Robust Estimate of Covariance: X1 X2 X3 X1 10.079 -0.024 -1.899 X2 -0.024 3.466 -1.817 X3 -1.899 -1.817 3.665 -------------------------------------------------------- wood 20 5 -3.202636 Outliers: 0 ------------- Call: CovMMest(x = x) -> Method: MM-estimates Robust Estimate of Location: x1 x2 x3 x4 x5 0.550 0.133 0.506 0.511 0.909 Robust Estimate of Covariance: x1 x2 x3 x4 x5 x1 0.008454 -0.000377 0.003720 0.002874 -0.003065 x2 -0.000377 0.000516 -0.000399 -0.000933 0.000645 x3 0.003720 -0.000399 0.004186 0.001720 -0.001714 x4 0.002874 -0.000933 0.001720 0.003993 -0.001028 x5 -0.003065 0.000645 -0.001714 -0.001028 0.002744 -------------------------------------------------------- hbk 75 3 0.283145 Outliers: 14 [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ------------- Call: CovMMest(x = x) -> Method: MM-estimates Robust Estimate of Location: X1 X2 X3 1.54 1.79 1.68 Robust Estimate of Covariance: X1 X2 X3 X1 1.8016 0.0739 0.2000 X2 0.0739 1.8301 0.2295 X3 0.2000 0.2295 1.7101 -------------------------------------------------------- Animals 28 2 4.685129 Outliers: 10 [1] 2 6 7 9 12 14 15 16 24 25 ------------- Call: CovMMest(x = x) -> Method: MM-estimates Robust Estimate of Location: body brain 82 148 Robust Estimate of Covariance: body brain body 21050 24534 brain 24534 35135 -------------------------------------------------------- milk 86 8 -1.437863 Outliers: 12 [1] 1 2 3 12 13 17 41 44 47 70 74 75 ------------- Call: CovMMest(x = x) -> Method: MM-estimates Robust Estimate of Location: X1 X2 X3 X4 X5 X6 X7 X8 1.03 35.73 32.87 25.96 24.94 24.85 122.55 14.33 Robust Estimate of Covariance: X1 X2 X3 X4 X5 X6 X7 X1 1.08e-06 5.36e-04 6.80e-04 5.96e-04 5.87e-04 5.91e-04 2.22e-03 X2 5.36e-04 2.42e+00 7.07e-01 5.51e-01 4.89e-01 5.70e-01 3.08e+00 X3 6.80e-04 7.07e-01 1.64e+00 1.28e+00 1.25e+00 1.26e+00 2.38e+00 X4 5.96e-04 5.51e-01 1.28e+00 1.05e+00 1.01e+00 1.02e+00 2.01e+00 X5 5.87e-04 4.89e-01 1.25e+00 1.01e+00 1.05e+00 1.02e+00 1.96e+00 X6 5.91e-04 5.70e-01 1.26e+00 1.02e+00 1.02e+00 1.05e+00 2.01e+00 X7 2.22e-03 3.08e+00 2.38e+00 2.01e+00 1.96e+00 2.01e+00 9.22e+00 X8 1.68e-04 4.13e-01 3.37e-01 2.53e-01 2.34e-01 2.43e-01 8.81e-01 X8 X1 1.68e-04 X2 4.13e-01 X3 3.37e-01 X4 2.53e-01 X5 2.34e-01 X6 2.43e-01 X7 8.81e-01 X8 2.11e-01 -------------------------------------------------------- bushfire 38 5 2.443148 Outliers: 12 [1] 8 9 10 11 31 32 33 34 35 36 37 38 ------------- Call: CovMMest(x = x) -> Method: MM-estimates Robust Estimate of Location: V1 V2 V3 V4 V5 109 149 258 215 276 Robust Estimate of Covariance: V1 V2 V3 V4 V5 V1 708 538 -2705 -558 -464 V2 538 497 -1376 -248 -216 V3 -2705 -1376 20521 4833 3914 V4 -558 -248 4833 1217 969 V5 -464 -216 3914 969 778 -------------------------------------------------------- rice 105 5 -0.724874 Outliers: 5 [1] 9 42 49 58 71 ------------- Call: CovMMest(x = x) -> Method: MM-estimates Robust Estimate of Location: Favor Appearance Taste Stickiness Toughness -0.2653 0.0969 -0.1371 0.0483 0.0731 Robust Estimate of Covariance: Favor Appearance Taste Stickiness Toughness Favor 0.421 0.349 0.427 0.405 -0.191 Appearance 0.349 0.605 0.565 0.553 -0.316 Taste 0.427 0.565 0.725 0.701 -0.378 Stickiness 0.405 0.553 0.701 0.868 -0.484 Toughness -0.191 -0.316 -0.378 -0.484 0.464 -------------------------------------------------------- hemophilia 75 2 -1.868949 Outliers: 2 [1] 11 36 ------------- Call: CovMMest(x = x) -> Method: MM-estimates Robust Estimate of Location: AHFactivity AHFantigen -0.2342 -0.0333 Robust Estimate of Covariance: AHFactivity AHFantigen AHFactivity 0.0309 0.0122 AHFantigen 0.0122 0.0231 -------------------------------------------------------- fish 159 6 1.285876 Outliers: 20 [1] 61 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 [20] 142 ------------- Call: CovMMest(x = x) -> Method: MM-estimates Robust Estimate of Location: Weight Length1 Length2 Length3 Height Width 352.7 24.3 26.4 29.2 29.7 14.6 Robust Estimate of Covariance: Weight Length1 Length2 Length3 Height Width Weight 1.20e+05 2.89e+03 3.12e+03 3.51e+03 1.49e+03 2.83e+02 Length1 2.89e+03 7.73e+01 8.35e+01 9.28e+01 3.73e+01 9.26e+00 Length2 3.12e+03 8.35e+01 9.04e+01 1.01e+02 4.16e+01 1.01e+01 Length3 3.51e+03 9.28e+01 1.01e+02 1.14e+02 5.37e+01 1.01e+01 Height 1.49e+03 3.73e+01 4.16e+01 5.37e+01 6.75e+01 3.22e+00 Width 2.83e+02 9.26e+00 1.01e+01 1.01e+01 3.22e+00 4.18e+00 -------------------------------------------------------- airquality 153 4 2.684374 Outliers: 6 [1] 7 14 23 30 34 77 ------------- Call: CovMMest(x = x) -> Method: MM-estimates Robust Estimate of Location: Ozone Solar.R Wind Temp 40.35 186.21 9.86 78.09 Robust Estimate of Covariance: Ozone Solar.R Wind Temp Ozone 951.0 959.9 -62.5 224.6 Solar.R 959.9 8629.9 -28.1 244.9 Wind -62.5 -28.1 11.6 -15.8 Temp 224.6 244.9 -15.8 93.1 -------------------------------------------------------- attitude 30 7 2.091968 Outliers: 4 [1] 14 16 18 24 ------------- Call: CovMMest(x = x) -> Method: MM-estimates Robust Estimate of Location: rating complaints privileges learning raises critical 65.0 66.5 52.4 56.2 65.3 75.6 advance 42.7 Robust Estimate of Covariance: rating complaints privileges learning raises critical advance rating 143.5 123.4 62.4 92.5 79.2 17.7 28.2 complaints 123.4 159.8 83.9 99.7 96.0 27.3 44.0 privileges 62.4 83.9 133.5 78.6 62.0 13.4 46.4 learning 92.5 99.7 78.6 136.0 90.9 18.9 62.6 raises 79.2 96.0 62.0 90.9 107.6 34.6 63.3 critical 17.7 27.3 13.4 18.9 34.6 84.9 25.9 advance 28.2 44.0 46.4 62.6 63.3 25.9 94.4 -------------------------------------------------------- attenu 182 5 1.148032 Outliers: 21 [1] 2 7 8 9 10 11 15 16 24 25 28 29 30 31 32 64 65 94 95 [20] 96 100 ------------- Call: CovMMest(x = x) -> Method: MM-estimates Robust Estimate of Location: event mag station dist accel 15.36 5.95 58.11 33.56 0.14 Robust Estimate of Covariance: event mag station dist accel event 4.88e+01 -2.74e+00 1.53e+02 -1.14e+02 5.95e-02 mag -2.74e+00 5.32e-01 -6.29e+00 1.10e+01 9.37e-03 station 1.53e+02 -6.29e+00 1.29e+03 -2.95e+02 1.04e+00 dist -1.14e+02 1.10e+01 -2.95e+02 1.13e+03 -2.41e+00 accel 5.95e-02 9.37e-03 1.04e+00 -2.41e+00 1.70e-02 -------------------------------------------------------- USJudgeRatings 43 12 -1.683847 Outliers: 7 [1] 5 7 12 13 14 23 31 ------------- Call: CovMMest(x = x) -> Method: MM-estimates Robust Estimate of Location: CONT INTG DMNR DILG CFMG DECI PREP FAMI ORAL WRIT PHYS RTEN 7.45 8.15 7.74 7.87 7.67 7.74 7.65 7.65 7.50 7.57 8.17 7.85 Robust Estimate of Covariance: CONT INTG DMNR DILG CFMG DECI PREP FAMI CONT 0.9403 -0.2500 -0.3953 -0.1418 -0.0176 -0.0620 -0.1304 -0.1517 INTG -0.2500 0.6314 0.8479 0.6889 0.5697 0.5386 0.7007 0.6985 DMNR -0.3953 0.8479 1.2186 0.9027 0.7613 0.7232 0.9191 0.9055 DILG -0.1418 0.6889 0.9027 0.8474 0.7344 0.6949 0.8751 0.8655 CFMG -0.0176 0.5697 0.7613 0.7344 0.6904 0.6442 0.7683 0.7594 DECI -0.0620 0.5386 0.7232 0.6949 0.6442 0.6219 0.7362 0.7360 PREP -0.1304 0.7007 0.9191 0.8751 0.7683 0.7362 0.9370 0.9357 FAMI -0.1517 0.6985 0.9055 0.8655 0.7594 0.7360 0.9357 0.9547 ORAL -0.1866 0.7375 0.9841 0.8816 0.7747 0.7433 0.9400 0.9496 WRIT -0.1881 0.7208 0.9516 0.8711 0.7646 0.7357 0.9302 0.9439 PHYS -0.1407 0.4673 0.6261 0.5661 0.5105 0.5039 0.5996 0.6112 RTEN -0.2494 0.7921 1.0688 0.9167 0.7902 0.7585 0.9533 0.9561 ORAL WRIT PHYS RTEN CONT -0.1866 -0.1881 -0.1407 -0.2494 INTG 0.7375 0.7208 0.4673 0.7921 DMNR 0.9841 0.9516 0.6261 1.0688 DILG 0.8816 0.8711 0.5661 0.9167 CFMG 0.7747 0.7646 0.5105 0.7902 DECI 0.7433 0.7357 0.5039 0.7585 PREP 0.9400 0.9302 0.5996 0.9533 FAMI 0.9496 0.9439 0.6112 0.9561 ORAL 0.9712 0.9558 0.6271 0.9933 WRIT 0.9558 0.9483 0.6135 0.9725 PHYS 0.6271 0.6135 0.4816 0.6549 RTEN 0.9933 0.9725 0.6549 1.0540 -------------------------------------------------------- USArrests 50 4 2.411726 Outliers: 3 [1] 2 33 39 ------------- Call: CovMMest(x = x) -> Method: MM-estimates Robust Estimate of Location: Murder Assault UrbanPop Rape 7.52 163.86 65.66 20.64 Robust Estimate of Covariance: Murder Assault UrbanPop Rape Murder 19.05 295.96 8.32 23.40 Assault 295.96 6905.03 396.53 523.49 UrbanPop 8.32 396.53 202.98 62.81 Rape 23.40 523.49 62.81 79.10 -------------------------------------------------------- longley 16 7 1.038316 Outliers: 5 [1] 1 2 3 4 5 ------------- Call: CovMMest(x = x) -> Method: MM-estimates Robust Estimate of Location: GNP.deflator GNP Unemployed Armed.Forces Population 107.5 440.4 339.4 293.0 120.9 Year Employed 1957.0 67.2 Robust Estimate of Covariance: GNP.deflator GNP Unemployed Armed.Forces Population GNP.deflator 100.4 953.8 1140.8 -501.8 74.3 GNP 953.8 9434.3 10084.3 -4573.8 731.3 Unemployed 1140.8 10084.3 19644.6 -6296.3 848.4 Armed.Forces -501.8 -4573.8 -6296.3 3192.3 -348.5 Population 74.3 731.3 848.4 -348.5 57.7 Year 46.3 450.7 537.0 -230.7 35.3 Employed 30.8 310.2 273.8 -159.4 23.3 Year Employed GNP.deflator 46.3 30.8 GNP 450.7 310.2 Unemployed 537.0 273.8 Armed.Forces -230.7 -159.4 Population 35.3 23.3 Year 21.9 14.6 Employed 14.6 11.2 -------------------------------------------------------- Loblolly 84 3 1.481317 Outliers: 0 ------------- Call: CovMMest(x = x) -> Method: MM-estimates Robust Estimate of Location: height age Seed 31.93 12.79 7.48 Robust Estimate of Covariance: height age Seed height 440.644 165.652 6.958 age 165.652 63.500 0.681 Seed 6.958 0.681 16.564 -------------------------------------------------------- quakes 1000 4 1.576855 Outliers: 218 [1] 7 12 15 17 22 27 32 37 40 41 45 48 53 63 64 [16] 73 78 87 91 92 94 99 108 110 117 118 119 120 121 122 [31] 126 133 136 141 143 145 148 152 154 155 157 159 160 163 170 [46] 192 205 222 226 230 239 243 250 251 252 254 258 263 267 268 [61] 271 283 292 300 301 305 311 312 318 320 321 325 328 330 334 [76] 352 357 360 365 381 382 384 389 400 402 408 413 416 417 419 [91] 429 437 441 443 453 456 467 474 477 490 492 496 504 507 508 [106] 509 517 524 527 528 531 532 534 536 538 539 541 542 543 544 [121] 545 546 547 552 553 560 571 581 583 587 593 594 596 597 605 [136] 612 613 618 620 625 629 638 642 647 649 653 655 656 672 675 [151] 681 686 699 701 702 712 714 716 721 725 726 735 744 754 756 [166] 759 765 766 769 779 781 782 785 787 797 804 813 825 827 837 [181] 840 844 852 853 857 860 865 866 869 870 872 873 883 884 887 [196] 888 890 891 893 908 909 912 915 916 921 927 930 962 963 969 [211] 974 980 982 986 987 988 997 1000 ------------- Call: CovMMest(x = x) -> Method: MM-estimates Robust Estimate of Location: lat long depth mag -21.74 182.37 356.37 4.56 Robust Estimate of Covariance: lat long depth mag lat 2.97e+01 6.53e+00 3.46e+02 -4.66e-01 long 6.53e+00 6.92e+00 -5.05e+02 5.62e-02 depth 3.46e+02 -5.05e+02 7.39e+04 -2.51e+01 mag -4.66e-01 5.62e-02 -2.51e+01 2.32e-01 -------------------------------------------------------- =================================================== > ##dogen() > ##cat('Time elapsed: ', proc.time(),'\n') # for ``statistical reasons'' > > proc.time() user system elapsed 24.41 0.71 25.36 rrcov/tests/tsde.R0000644000176200001440000001306214443667016013646 0ustar liggesusers## Test for singularity doexact <- function(){ exact <-function(){ n1 <- 45 p <- 2 x1 <- matrix(rnorm(p*n1),nrow=n1, ncol=p) x1[,p] <- x1[,p] + 3 ## library(MASS) ## x1 <- mvrnorm(n=n1, mu=c(0,3), Sigma=diag(1,nrow=p)) n2 <- 55 m1 <- 0 m2 <- 3 x2 <- cbind(rnorm(n2),rep(m2,n2)) x<-rbind(x1,x2) colnames(x) <- c("X1","X2") x } print(CovSde(exact())) } dodata <- function(nrep=1, time=FALSE, short=FALSE, full=TRUE){ domcd <- function(x, xname, nrep=1){ n <- dim(x)[1] p <- dim(x)[2] mcd<-CovSde(x) if(time){ xtime <- system.time(dorep(x, nrep))[1]/nrep xres <- sprintf("%3d %3d %3d\n", dim(x)[1], dim(x)[2], xtime) } else{ xres <- sprintf("%3d %3d\n", dim(x)[1], dim(x)[2]) } lpad<-lname-nchar(xname) cat(pad.right(xname,lpad), xres) if(!short){ ibad <- which(mcd@wt==0) names(ibad) <- NULL nbad <- length(ibad) cat("Outliers: ",nbad,"\n") if(nbad > 0) print(ibad) if(full){ cat("-------------\n") show(mcd) } cat("--------------------------------------------------------\n") } } options(digits = 5) set.seed(101) # <<-- sub-sampling algorithm now based on R's RNG and seed lname <- 20 ## VT::15.09.2013 - this will render the output independent ## from the version of the package suppressPackageStartupMessages(library(rrcov)) data(heart) data(starsCYG) data(phosphor) data(stackloss) data(coleman) data(salinity) data(wood) data(hbk) data(Animals, package = "MASS") brain <- Animals[c(1:24, 26:25, 27:28),] data(milk) data(bushfire) tmp <- sys.call() cat("\nCall: ", deparse(substitute(tmp)),"\n") cat("Data Set n p Half LOG(obj) Time\n") cat("========================================================\n") domcd(heart[, 1:2], data(heart), nrep) domcd(starsCYG, data(starsCYG), nrep) domcd(data.matrix(subset(phosphor, select = -plant)), data(phosphor), nrep) domcd(stack.x, data(stackloss), nrep) domcd(data.matrix(subset(coleman, select = -Y)), data(coleman), nrep) domcd(data.matrix(subset(salinity, select = -Y)), data(salinity), nrep) domcd(data.matrix(subset(wood, select = -y)), data(wood), nrep) domcd(data.matrix(subset(hbk, select = -Y)),data(hbk), nrep) domcd(brain, "Animals", nrep) domcd(milk, data(milk), nrep) domcd(bushfire, data(bushfire), nrep) ## VT::19.07.2010: test the univariate SDE for(i in 1:ncol(bushfire)) domcd(bushfire[i], data(bushfire), nrep) cat("========================================================\n") } dogen <- function(nrep=1, eps=0.49){ library(MASS) domcd <- function(x, nrep=1){ gc() xtime <- system.time(dorep(x, nrep))[1]/nrep cat(sprintf("%6d %3d %10.2f\n", dim(x)[1], dim(x)[2], xtime)) xtime } set.seed(1234) ## VT::15.09.2013 - this will render the output independent ## from the version of the package suppressPackageStartupMessages(library(rrcov)) ap <- c(2, 5, 10, 20, 30) an <- c(100, 500, 1000, 10000, 50000) tottime <- 0 cat(" n p Time\n") cat("=====================\n") for(i in 1:length(an)) { for(j in 1:length(ap)) { n <- an[i] p <- ap[j] if(5*p <= n){ xx <- gendata(n, p, eps) X <- xx$X tottime <- tottime + domcd(X, nrep) } } } cat("=====================\n") cat("Total time: ", tottime*nrep, "\n") } docheck <- function(n, p, eps){ xx <- gendata(n,p,eps) mcd <- CovSde(xx$X) check(mcd, xx$xind) } check <- function(mcd, xind){ ## check if mcd is robust w.r.t xind, i.e. check how many of xind ## did not get zero weight mymatch <- xind %in% which(mcd@wt == 0) length(xind) - length(which(mymatch)) } dorep <- function(x, nrep=1){ for(i in 1:nrep) CovSde(x) } #### gendata() #### # Generates a location contaminated multivariate # normal sample of n observations in p dimensions # (1-eps)*Np(0,Ip) + eps*Np(m,Ip) # where # m = (b,b,...,b) # Defaults: eps=0 and b=10 # gendata <- function(n,p,eps=0,b=10){ if(missing(n) || missing(p)) stop("Please specify (n,p)") if(eps < 0 || eps >= 0.5) stop(message="eps must be in [0,0.5)") X <- mvrnorm(n,rep(0,p),diag(1,nrow=p,ncol=p)) nbad <- as.integer(eps * n) if(nbad > 0){ Xbad <- mvrnorm(nbad,rep(b,p),diag(1,nrow=p,ncol=p)) xind <- sample(n,nbad) X[xind,] <- Xbad } list(X=X, xind=xind) } pad.right <- function(z, pads) { ### Pads spaces to right of text padding <- paste(rep(" ", pads), collapse = "") paste(z, padding, sep = "") } whatis<-function(x){ if(is.data.frame(x)) cat("Type: data.frame\n") else if(is.matrix(x)) cat("Type: matrix\n") else if(is.vector(x)) cat("Type: vector\n") else cat("Type: don't know\n") } ## VT::15.09.2013 - this will render the output independent ## from the version of the package suppressPackageStartupMessages(library(rrcov)) dodata() ##doexact() rrcov/MD50000644000176200001440000002727514660625142011740 0ustar liggesusers31cbf27f648609ee69754231f7463b81 *ChangeLog b8e56dc98573fef3255bb9fc693aeb1c *DESCRIPTION 84dca738d8b4ed74142a7351ff9a1626 *NAMESPACE a5da21cf03d6ad22f67d4fb0261f41c7 *R/AllClasses.R 2621b703a070a9cd1b9ca2b755e763d4 *R/AllGenerics.R 89ef1ac3a66741a805398b182367e500 *R/Cov.R 60b5c1fc509c2a1b3dc42703a58f22e9 *R/CovClassic.R a251d2fd0a1a2832a49eb128ae24783f *R/CovControl.R d5213b624b9c2424aa706d1600a87c34 *R/CovMMest.R f67189295e5bc982dc78ccfa6655e443 *R/CovMcd.R 7e71f38495389ced9e788151c196fe4a *R/CovMest.R 524ab2b39522a8c529215f4bd462d1e0 *R/CovMrcd.R e77a9543db99d9d22930bafdee807235 *R/CovMve.R e37a6bf70cfc6570731adafd7a6e8105 *R/CovOgk.R 2139b223e12ac1c84b817ebef15d4aa9 *R/CovRobust.R 574a90e594f83533862c70c3fb1e1ff9 *R/CovSde.R bdaacc4aee99b9de04d745d9359ac0e7 *R/CovSest.R 68c34b29dbfcf037efb45906f24b0f2c *R/Lda.R 6e9c08123c0cfb08471de32222065527 *R/LdaClassic.R 79e8c4f4ace04e529a247dc34aaa8178 *R/LdaPP.R 4a0e6f8505ec511da801a64a7de59a92 *R/Linda.R 505c0ff8f9ce2e59fc216412e7fcd2d1 *R/Pca.R 61ab1768a8c05b26331fa0275028cd8b *R/PcaClassic.R 5e6c080f92f1dc6776e3825b45b0f846 *R/PcaCov.R 6d7929072127af0b91bca0ecf37481dd *R/PcaGrid.R b11bd75e18dd1f83a1053adf633bb043 *R/PcaHubert.R 51a5a540d995230f6b40c95be7c252ca *R/PcaLocantore.R f98340cf3d6c182d9ccd27def303fca3 *R/PcaProj.R 16c1b7d22de82739325c854e1237a0b4 *R/Qda.R 182e11977a3de4ea9a69183eee31a082 *R/QdaClassic.R a1959e4b3c1dfe604f6af39d6aed6da5 *R/QdaCov.R 87c98f445f110cee96b8a72ea2a86d78 *R/T2.test.R 8d653e5da779ecacdd895945c377abf1 *R/Wilks.test.R d4a01f4cc961a3b9d004e33ce30278bb *R/adjoutlyingness.R 2dc89d15454adf96bdf3091bc436bf17 *R/covMest3.R 64fe6f0d948e281b7047b4921786b59c *R/da-utils.R bccda258b67c27e57829dc96cca292b7 *R/datadoc.R ee34aa24acbea965c1571f08b648e2e6 *R/detmrcd.R 447228792a324ed98198acf3d8f2bffb *R/dets.R 649f519e49932382f68de71ef9cbe6ba *R/donostah.R 02614a247ed49457e323f03094f6373c *R/plot-utils.R 6731799ffde9689f52b53bd45a8273c2 *R/psibwt.R dcebffecd8cbf489cede75c6813eabed *R/psifun.R 3762b8071c38856c5fba22f1f17797f3 *R/transform.R bd6c4b899751d5a2e3c456fec562af91 *R/utils.R 5752f99eceda48e21d5743fe05c7c9b6 *R/zzz.R 733dbfee701f19827e32d56dfc2208b8 *README.md cb3b20077bebc5da31fc1b46c657c0ff *build/partial.rdb e0604113e9d6082e28996f35d18ecefd *build/vignette.rds 11df09622a811061110e06fdbae10695 *data/Appalachia.rda 4b13b4fdf7a4a23b513ca5305525ff43 *data/Cars.rda 8c246f3899660e4325a87a0930eaa945 *data/Cascades.rda 89a6dd24fb38afb81513838e7bb699d8 *data/OsloTransect.rda 19eedd54c5bc72050f3f161f95dc7396 *data/bus.rda f3398148d037adb103013afd928b6841 *data/bushmiss.rda 263e4b4aa99f9f9d125ff83f76b4819f *data/diabetes.rda 9b5651cc1ce784c32be6834fdba31191 *data/fish.rda 9000c246e75372d68855cd7dc8b4f2d9 *data/fruit.rda 4dda34ab5343a13a648df7f7a52ea425 *data/hemophilia.rda 627b381749bfa3f8aefe9e7a04f08f97 *data/ionosphere.rda 3e28dbdb57e214e8cbae777ffdc19b9f *data/lmom32.rda fc1b51452a42678da5f7e40d5dcf7be0 *data/lmom33.rda ddaa4c4dbe26410fa033aff68d16c624 *data/machines.rda 89666d6fe7e5c71edc6da922265204ce *data/maryo.rda 89beeaf4e2a2a22f6985adb9e660156b *data/octane.rda 7e4e587a9ed68df4d156ebfac2d29165 *data/olitos.rda d512a26d67dcffffb4b3fa23cf4053c8 *data/pottery.rda 52fddb9ebbe2f10c93c61c1f195636ab *data/rice.rda 3cda54f932aa5ef75c2c3607a4ce3054 *data/salmon.rda 1e676b03eb007cd8985953b26d3a6e3c *data/soil.rda f49f0e64e6a5ecb1be1d509ed23c6be4 *data/un86.rda 0e4793936896cb07df22884d8c78ab5d *data/wages.rda 387eaac32785eb14dda7cb1d1a7b39be *data/wolves.rda 278f3e507b3bdf4849f2a0cde6289d5d *inst/Citation 858b7ddaf587d95744f1e9788c930ca4 *inst/NEWS.Rd 0cd7cf2b0f3e787248341b7eb7415973 *inst/doc/rrcov.R 58ccdfd29ee1d1c42b759226e480a68c *inst/doc/rrcov.Rnw e5356f10a079d8fb8777d7c165d6551c *inst/doc/rrcov.pdf 0f5844b638361c83e2a90f4605d3c0a9 *inst/examples/bm/bm_lts.m ce8cc65f5ce8e9aedf1ac45c3f408022 *inst/examples/bm/bm_mcd.m 1cb5f88839eb05cd065e67c2c3415252 *inst/examples/bm/bmlts.S d5434aafe6a71ce65a76e5918a93a285 *inst/examples/bm/bmmcd.S 4ee881c81dccd445a43467f85790c906 *inst/examples/ex-pca-explained-variance.R d04da52fb42f9911ff7d5c7f71ce9f01 *inst/examples/ex-pca-skew.R bca57369758f8b9957e41b4114c5797b *inst/examples/test-ellipse.R a0901c5ebf120b3a340374f70481839d *man/Appalachia.Rd 86e971b493f5a520073d6cfe2740849e *man/Cars.Rd 5c54f00c5b70324f7f27d5aee624b7db *man/Cascades.Rd 26b00a9b7a386bc688562ab2dc63517a *man/Cov-class.Rd 2c6ec3817bf5cf49ba984f482e2f5b05 *man/CovClassic-class.Rd 2fbba55dc7a7682451710d3f69681523 *man/CovClassic.Rd 429c1fdc1769f9ee28692af1f8ad48a2 *man/CovControl-class.Rd 43064a6f0260995adec31e2c65d75d14 *man/CovControlMMest-class.Rd 7238d4aa6dcec991ec881dccf364076f *man/CovControlMMest.Rd d5952a72857cf767dbeb20c83668cfbe *man/CovControlMcd-class.Rd cec3a3366b8ce51355ab8aaf645f0a42 *man/CovControlMcd.Rd 57e624447287efb5387c5a735234532d *man/CovControlMest-class.Rd 6aa4679f43cfb04ca51c9acb27b1bc38 *man/CovControlMest.Rd 733f884242529aef0ccfd7018721d42f *man/CovControlMrcd-class.Rd 6899febf6f31e87585ca389e82dfeddb *man/CovControlMrcd.Rd 748196583b06f335bc5584c7f020cb51 *man/CovControlMve-class.Rd 1115fe6eefd3e3aca66015605884a763 *man/CovControlMve.Rd 041c1f542eb533c83fbe46c4be82c096 *man/CovControlOgk-class.Rd ccab5b63f96d3b24e6b51ca249e6921f *man/CovControlOgk.Rd 07f8cc0161d6dd11278a569ed34304a0 *man/CovControlSde-class.Rd 10b884b9a6513ba39fb4a016883e41ca *man/CovControlSde.Rd c548e437eac0d0051fa5fa61d201d817 *man/CovControlSest-class.Rd 1aa13a5f84f59fa3d9561c825ac9daa4 *man/CovControlSest.Rd b48acaa1ed622f4357037d5bd0a4fc3b *man/CovMMest-class.Rd dbc90d791abd2e2a16a082298c67ae1e *man/CovMMest.Rd 5c80439cfef1d73a76e7b24034aabd38 *man/CovMcd-class.Rd 954c37ca6d0dca0345c14a82dc24e910 *man/CovMcd.Rd 2e28e365c4458ee542464332218c9888 *man/CovMest-class.Rd 12a1bf2929d5c6bfbb0be9165ead3239 *man/CovMest.Rd 9272f3a1749cceb86e9564bdf9198bb1 *man/CovMrcd-class.Rd c24bed4d64080da408cf15aae3bdba71 *man/CovMrcd.Rd f8c07601d416cb832593ff23fdbb4f0e *man/CovMve-class.Rd 3d08cc01b0b33f2a2cf2e2d60a9fe330 *man/CovMve.Rd 74fa12162b533780e3154c77c81c52d6 *man/CovOgk-class.Rd 8f5a453fe912bdececab170e27ac3ae1 *man/CovOgk.Rd b7da10d9e64be0cc29cbcd1482b2f806 *man/CovRobust-class.Rd 97eda3cdd83e164e5bc3d8656a79a922 *man/CovRobust.Rd 8a384ccbb3920cb0bdcd19979fca9ec6 *man/CovSde-class.Rd a47ead98ae36d58e7d8ca00f84a96eeb *man/CovSde.Rd 2ccd127b573af20f90e38ef4e2004b59 *man/CovSest-class.Rd 7e05932e96ab650ca9aa90a66ab07823 *man/CovSest.Rd 682dafabcec98f9a0d83949ce4e332c6 *man/Lda-class.Rd 4444f314c0d926abe5294035b7bf2de7 *man/LdaClassic-class.Rd 2e4f11920d2b078bdbe09fc89f3df3e5 *man/LdaClassic.Rd e7e7949e84ce2b718c1a388c43e71a84 *man/LdaPP-class.Rd a580ee89d6a94fe35e8e245f4517a1f0 *man/LdaPP.Rd a1268d13054a2eb7534b5ba01b3ddfeb *man/LdaRobust-class.Rd d3ed47c0d5dec427747aba885242ccb1 *man/Linda-class.Rd 8baf836e402eb9b9028e77066d4e08a6 *man/Linda.Rd cc67d7827bb2fba6f87b8efa284a8712 *man/OsloTransect.Rd 419fee71254ba407377eaca1f8d295cd *man/Pca-class.Rd 2bc816a47c54ab6db7e78b3e2b5c6fd0 *man/PcaClassic-class.Rd 52de3a6af8374d6287099ef2a020027f *man/PcaClassic.Rd 0beef1d6c57adf87713c187ce16e97da *man/PcaCov-class.Rd c39efdd75a3a88862c732ea05804d44a *man/PcaCov.Rd e4eb620d45a17cd84f9cc68b4ddd3b8d *man/PcaGrid-class.Rd 411b1bf34738638be025872a9d0307c3 *man/PcaGrid.Rd ccafc00dc22f7b56f2d976a9d87dd788 *man/PcaHubert-class.Rd 1c27285a11374f85a15263e9f2994803 *man/PcaHubert.Rd 4419fe72923a2533ef9855706e89dd2c *man/PcaLocantore-class.Rd bef33fe1ed5ffab3e392d26c45fe7fc7 *man/PcaLocantore.Rd 2559c419e5edc2e8afc3eb458fc3e0b5 *man/PcaProj-class.Rd 0cea932b8e67a76ff27d0bac4ea1e4c3 *man/PcaProj.Rd 69c2ab10267dc5c9ba0fb66a07bebbda *man/PcaRobust-class.Rd 88ad4a913a98b02d05df2a6d7a4432d8 *man/PredictLda-class.Rd b37f0453a63c415f6bdb346d38b03773 *man/PredictQda-class.Rd 9f0861dda60db7308ac41e507070f15e *man/Qda-class.Rd 771e1fb4759ef485fa3282ebb39d9158 *man/QdaClassic-class.Rd 86849e391240672ee22c81d495d50f80 *man/QdaClassic.Rd 4d0114ce3ffb691d4cd5b44b215cc4c8 *man/QdaCov-class.Rd 5f02d6bc6345a1a18b952d4a4f8c3089 *man/QdaCov.Rd caad07b8b56b194b74692f73150dcaa6 *man/QdaRobust-class.Rd f1fa16b7e25b22fea689a00258057bde *man/SummaryCov-class.Rd f721cf742f5af844c528a0cb9c2f10e5 *man/SummaryCovRobust-class.Rd e0dda2f5d225820e17678da9beca765b *man/SummaryLda-class.Rd cf3b12405c88509bc308ca5b5943d6f6 *man/SummaryPca-class.Rd ea1311f4926327d815c960bffc08483d *man/SummaryQda-class.Rd bae130fddaf77578da28c08bfdcbd7f3 *man/T2.test.Rd abdc9ad43607a75f9920dff95f553aea *man/Wilks.test.Rd 09f7148f83b100570fb857fcb555b90f *man/biplot.Rd a758ab85fb1d78002f8d73e1c9cf7b55 *man/bus.Rd d58dc6ce4cedaf8b7d01e975f31c2c17 *man/bushmiss.Rd e173a1c4b9a309cd285ddab43d056067 *man/covMest-deprecated.Rd 91d4309d9e5dea44a745e12c508c3e0b *man/diabetes.Rd 7d2eb1cde344729acf65313b4c7825f8 *man/estimate-methods.Rd ecc669659029d7112a7faa0d98c35565 *man/fish.Rd 046b6360e3f3e898093523bf259f8f0a *man/fruit.Rd 88285f8bf5c759de3cb014ee5ca89a45 *man/getCenter-methods.Rd 002c9b22248244f92d7cc3b0cc7d720e *man/getEllipse.Rd cd32b6c3686ec967354fc017a406626b *man/getLoadings-methods.Rd 19c9220469d7db644eb7f885179cdb41 *man/hemophilia.Rd 46d47cf91c356726633175b2b9edfc54 *man/ionosphere.Rd fc36c74e0a3682b4afe2840be79979b8 *man/isSingular.Rd db0e5e9ff9798192bf162c122f29ef33 *man/lmom32.Rd e95c14bf85f44bfb576e46b9f9a27a44 *man/lmom33.Rd 691462e2c566bef6c4bded7e0230340e *man/machines.Rd deb2edecbfed78502752bbf1dcd6bb5a *man/maryo.Rd 45853d13f16564752a3f1bb0c3c95c9a *man/octane.Rd 50f17a4ec856128af441627ea1661fc5 *man/olitos.Rd 74108a3ecbc7c30ee05cdb9daa0b83e2 *man/pca.distances.Rd b75f05115c5aac9d9c4cd6c10ee5dc4b *man/pca.scoreplot.Rd aac6d52c9f15aa0bce14fe38eaa2a95b *man/plot-methods.Rd 151be8e11289e21dcfd0a4f1b74800b6 *man/pottery.Rd 3f586ec9a2ad87757bd9ef8d0399303d *man/rice.Rd 91ba7fb3f3ff22dd0e655789f65ef6ca *man/rrcov-utils.Rd fe6e17df1f5d0e88e34643a97ed36809 *man/salmon.Rd 6d71ebe0454733f9a4d833f0493909b8 *man/scorePlot.Rd 7444d705777158155f3388c7d0e99bf1 *man/soil.Rd 8bd94e84fd2ff99d7d4f158feab1b324 *man/un86.Rd 4aba21bade7daced3ed3e4825cd6dc6d *man/wages.Rd 2c634fe5754b0a3d3a459edfe2a8ace1 *man/wolves.Rd 74b17745ec11d7cf47a08e77b52e9101 *src/Makevars eac4382f7dd2ec1ccf389af98314f557 *src/R-rng4ftn.c 46b3fa031d3b2d9a2df4fd3a87777443 *src/covOPW.c b2cae38d6ec19ed5dd70463c95f24712 *src/ds11.f c1e732bb49768c40a41f3d196ed921d2 *src/fast-mve.c e16860df529a72e3c8352fc335aec3b7 *src/fsada.f a3fdb50ee8aedfd14275e1cc871cf36a *src/rrcov_init.c 9a81eaafd146f04f3e4132ab3687c5a1 *src/sest.c 2b6ccf6cdeb6c31ab10e8da35b06c5bd *tests/thubert.R cdc1ecebd022c8e55233cd5a2a976af8 *tests/thubert.Rout.save d15b8520f3b8e1e2d220e1d87815d138 *tests/tlda.R 5c3f1deca87d3ad6f03e309428987cb4 *tests/tlda.Rout.save b438bcce32bc72667d5f353a77e32655 *tests/tldapp.R 439f62ef842f1025f2b8f1f98bb1be9d *tests/tldapp.Rout.save 81f8599fa2320b93acc1e48740f26f8b *tests/tmcd4.R 0c190e4e04ff9ff9f809e94551223552 *tests/tmcd4.Rout.save fd5a16efc040e56acd8fd8f6773d1c0f *tests/tmest4.R d5ff4f4b4772061f3ca09d7b8d38161b *tests/tmest4.Rout.save 543589de1df4a8c5b354ea5d5ee2e24e *tests/tmve4.R dc6c9dd3fd406040a54a837b446079b0 *tests/tmve4.Rout.save 40ae348baf8b55ebcf802ece9a489b59 *tests/togk4.R 3234b08fe1a41dee866b18f991bef344 *tests/togk4.Rout.save 7ed52ca35c24fabd3aca1bac54afcc21 *tests/tqda.R 4d3cc1e7da9d5d47005a56c0e952bec1 *tests/tqda.Rout.save 0c3037618a637218348efe2ee6c03a3c *tests/tsde.R 9aca13b7c175ce86211515f3e335e521 *tests/tsde.Rout.save daa61a69be367325ffaa0571f087e489 *tests/tsest.R acbd791215a22638c46e97fb453af143 *tests/tsest.Rout.save 61b47716bbd35dcb43bf00439b6fdd4a *vignettes/AModel.pdf 6c269eb8f8375446b5f07ff3bafa6a4f *vignettes/CovControl.pdf d61b698be02405589908a619da0d94fa *vignettes/CovModel.pdf e1819cded497f38e9876caa0459050e6 *vignettes/DAModel.pdf dec446e0ee4dd1b225ed4acdde0db212 *vignettes/PcaModel.pdf d946e97b6973ed43e19342116c303508 *vignettes/Structure.pdf 9f51caeed9fa7242aa7295d356c8c3da *vignettes/mybiblio.bib 58ccdfd29ee1d1c42b759226e480a68c *vignettes/rrcov.Rnw rrcov/R/0000755000176200001440000000000014443667016011621 5ustar liggesusersrrcov/R/CovSde.R0000644000176200001440000001266114443667016013135 0ustar liggesusersCovSde <- function(x, nsamp, maxres, tune=0.95, eps=0.5, prob=0.99, seed=NULL, trace=FALSE, control) { ## Analize and validate the input parameters ... ## if a control object was supplied, take the option parameters from it, ## but if single parameters were passed (not defaults) they will override the ## control object. if(!missing(control)){ defcontrol <- CovControlSde() # default control ## no default if(nsamp == defcontrol@nsamp) nsamp <- control@nsamp ## no default if(maxres == defcontrol@maxres) maxres <- control@maxres if(tune == defcontrol@tune) tune <- control@tune if(eps == defcontrol@eps) eps <- control@eps if(prob == defcontrol@prob) prob <- control@prob if(is.null(seed) || seed == defcontrol@seed) seed <- control@seed if(trace == defcontrol@trace) trace <- control@trace } if(length(seed) > 0) { if(exists(".Random.seed", envir=.GlobalEnv, inherits=FALSE)) { seed.keep <- get(".Random.seed", envir=.GlobalEnv, inherits=FALSE) on.exit(assign(".Random.seed", seed.keep, envir=.GlobalEnv)) } assign(".Random.seed", seed, envir=.GlobalEnv) } if(is.data.frame(x)) x <- data.matrix(x) else if (!is.matrix(x)) x <- matrix(x, length(x), 1, dimnames = list(names(x), deparse(substitute(x)))) xcall <- match.call() ## drop all rows with missing values (!!) : na.x <- !is.finite(x %*% rep(1, ncol(x))) ok <- !na.x x <- x[ok, , drop = FALSE] dx <- dim(x) if(!length(dx)) stop("All observations have missing values!") dimn <- dimnames(x) n <- dx[1] p <- dx[2] if(missing(nsamp)) nsamp <- ceiling(log(1 - prob)/log(1 - (1 - eps)^(p+1))) else if(!is.numeric(nsamp)) stop("If present, nsamp must be a nonnegative integer or") if(nsamp != 0) nsamp <- max(1000, nsamp) nsamp <- min(nsamp, .Machine$integer.max) if(missing(maxres)) maxres <- 2 * nsamp else if(!is.numeric(maxres)) stop(sQuote("maxres"), " is not a positive integer") maxres <- min(maxres, .Machine$integer.max) tune <- sqrt(qchisq(tune, p)) if(n <= p + 1) stop(if (n <= p) "n <= p -- you can't be serious!" else "n == p+1 is too small sample size") if(n < 2 * p) { ## p+1 < n < 2p warning("n < 2 * p, i.e., possibly too small sample size") } ## Prepare for calling the Fortran function icent <- 1 locat <- double(p) covmat <- matrix(0.0, p, p) storage.mode(covmat) <- "double" wk <- double(4*n+p) iwork <- integer(4*n+p) nresper <- 0 w <- double(n) z <- double(n) ## We are ignoring the 'center' parameter in the original function in 'robust'- ## center = TRUE - estimate center simultaneously with cov ## center = FALSE - assume the data are centered, i.e. center = rep(0,p) ## center = vector of length p - sweep center from the data ## ## if(length(center) == 1 && !center) ## center <- rep(0, p) ## ## if(length(center) > 1) ## { ## if(length(center) != p) ## stop("the dimension of ", sQuote("center"), " does not match the ", "dimension of ", sQuote("x")) ## x <- sweep(x, 2, center) ## icent <- 0 ## } ## sdlist <- .Fortran("rlds", n = as.integer(n), p = as.integer(p), nsamp = as.integer(nsamp), x = as.double(x), tune = as.double(tune), wk = as.double(wk), center = as.double(locat), cov = covmat, maxres = as.integer(maxres), nresper = as.integer(nresper), weights = as.double(w), outlyingness = as.double(z), icent = as.integer(icent), iwork = as.integer(iwork), PACKAGE = "rrcov") ## again skipping the predefined center ## ## dist <- mahalanobis(x, ## center = if(length(center) > 1) rep(0, p) else sdlist$center, ## cov = sdlist$cov) center <- sdlist$center cov <- sdlist$cov mah <- mahalanobis(x, center=center, cov=cov) consistency.correction <- median(mah) / qchisq(.5, p) ## cat("\nconsistency correction factor: ", consistency.correction, "\n") cov <- cov * consistency.correction mah <- mah / consistency.correction ## if(length(center) > 1) ## sdlist$center <- center ## sdlist[c("cov", "center", "dist")] nms <- dimn[[2]] if(is.null(nms)) nms <- paste("V", 1:p, sep = "") names(center) <- nms dimnames(cov) <- list(nms,nms) ans <- new("CovSde", call = xcall, iter=sdlist$nresper, # actual subsamples performed crit=0, cov=cov, center=center, mah=mah, n.obs=n, wt=sdlist$weights, X = as.matrix(x), method="Stahel-Donoho estimator") ans } rrcov/R/Cov.R0000644000176200001440000001331314443667016012474 0ustar liggesuserssetMethod("names", "Cov", function(x) slotNames(x)) setMethod("$", "Cov", function(x, name) slot(x, name)) ## setMethod("$<-", "Cov", function(x, name, value) {slot(x, name) <- value; slot(x, name)} ) setMethod("isClassic", "Cov", function(obj) TRUE) setMethod("isSingular", "Cov", function(obj) .isSingular(getCov(obj))) ## Here we want to add some getters/setters (i.e. accessor methods). ## The first problem is a name clash: in R the accessors are usually ## named as the member variables(slots); ## we need a generic with this name; if there is a function with ## this name, it will not work (other signature for example) - ## like in the example below with cov ## slot: cov ## generic: cov(object), method: cov(object) ## x <- cov(object) ## cov(object) <- x ## An alternative would be the way it is done in Java: ## getCov(object), setCov(object, matrix) ## ## setMethod("getCenter", "Cov", function(obj) obj@center) setMethod("getCov", "Cov", function(obj) obj@cov) setMethod("getCorr", "Cov", function(obj) cov2cor(obj@cov)) setMethod("getData", "Cov", function(obj) obj@X) setMethod("getEvals", "Cov", function(obj) eigen(getCov(obj), symmetric=TRUE, only.values=TRUE)$values) setMethod("getDistance", "Cov", function(obj){ if(!is(obj@mah,"NULL")) return(obj@mah) if(is(getData(obj), "NULL")) stop("Cannot compute distances: no data provided") dd <- mahalanobis(obj@X, obj@center, obj@cov) ## check if the method is called on an object - i.e. cc=CovMcd(xxx); getDistance(cc) ## or on the constructor call - i.e. getDistance(CovMcd(xxx)) ## Do nothing in the second case ## Our expression is 'obj@mah <- dd' and the parse tree is ## (as a string array) will be c("<-", "obj@mah", "dd") ## We are interested if there are () in the second element ## expr <- substitute(obj@mah <- dd) ss <- as.character(expr) if(length(grep(pattern="(", x=ss[2], fixed=TRUE)) == 0) eval.parent(expr) return(dd) }) setMethod("getDet", "Cov", function(obj){ if(obj@det > 0) return(obj@det) dd <- if(isSingular(obj)) 0 else det(obj@cov) ## check if the method is called on an object - i.e. cc=CovMcd(xxx); getDet(cc) ## or on the constructor call - i.e. getDet(CovMcd(xxx)) ## Do nothing in the second case ## Our expression is 'obj@det <- dd' and the parse tree is ## (as a string array) will be c("<-", "obj@det", "dd") ## We are interested if there are () in the second element ## expr <- substitute(obj@det <- dd) ss <- as.character(expr) if(length(grep(pattern="(", x=ss[2], fixed=TRUE)) == 0) eval.parent(expr) return(dd) }) setMethod("getShape", "Cov", function(obj){ p <- ncol(getCov(obj)) return(if((dd <- getDet(obj)) > 0) dd^(-1/p)*getCov(obj) else getCov(obj)) }) setMethod("getFlag", "Cov", function(obj, prob=0.975){ if(!is(obj@flag,"NULL") && missing(prob)) return(obj@flag) p <- ncol(getCov(obj)) ## dd <- getDistance(obj) if(!is(obj@mah,"NULL")) dd <- obj@mah else if(is(getData(obj), "NULL")) stop("Cannot compute distances: no data provided") else dd <- mahalanobis(obj@X, obj@center, obj@cov) chi <- qchisq(prob, p) fl <- sqrt(dd) < sqrt(chi) ## check if the method is called on an object - i.e. cc=CovMcd(xxx); getFlag(cc) ## or on the constructor call - i.e. getFlag(CovMcd(xxx)) ## Do nothing in the second case ## Our expression is 'obj@flag <- fl' and the parse tree is ## (as a string array) will be c("<-", "obj@flag", "fl") ## We are interested if there are () in the second element ## expr <- substitute(obj@flag <- fl) ss <- as.character(expr) if(length(grep(pattern="(", x=ss[2], fixed=TRUE)) == 0) eval.parent(expr) return(fl) }) ## ## Follow the standard methods: show, summary, plot ## setMethod("show", "Cov", function(object){ cat("\nCall:\n") print(object@call) cat("-> Method: ", object@method, "\n") if(is.list(object@singularity)) cat(strwrap(.MCDsingularityMsg(object@singularity, object@n.obs)), sep ="\n") digits = max(3, getOption("digits") - 3) cat("\nEstimate of Location: \n") print.default(format(object@center, digits = digits), print.gap = 2, quote = FALSE) cat("\nEstimate of Covariance: \n") print.default(format(object@cov, digits = digits), print.gap = 2, quote = FALSE) invisible(object) }) setMethod("summary", "Cov", function(object, ...){ new("SummaryCov", covobj=object, evals=eigen(object@cov)$values) }) setMethod("isClassic", "SummaryCov", function(obj) TRUE) setMethod("getCenter", "SummaryCov", function(obj) getCenter(obj@covobj)) setMethod("getCov", "SummaryCov", function(obj) getCov(obj@covobj)) setMethod("getDistance", "SummaryCov", function(obj) getDistance(obj@covobj)) setMethod("getEvals", "SummaryCov", function(obj) obj@evals) setMethod("show", "SummaryCov", function(object){ cat("\nCall:\n") print(object@covobj@call) digits = max(3, getOption("digits") - 3) cat("\nEstimate of Location: \n") print.default(format(getCenter(object), digits = digits), print.gap = 2, quote = FALSE) cat("\nEstimate of Covariance: \n") print.default(format(getCov(object), digits = digits), print.gap = 2, quote = FALSE) cat("\nEigenvalues of covariance matrix: \n") print.default(format(getEvals(object), digits = digits), print.gap = 2, quote = FALSE) cat("\nMahalanobis Distances: \n") print.default(format(as.vector(getDistance(object)), digits = digits), print.gap = 2, quote = FALSE) }) rrcov/R/LdaClassic.R0000644000176200001440000001143714443667016013754 0ustar liggesusers## The S3 version LdaClassic <- function (x, ...) UseMethod("LdaClassic") LdaClassic.formula <- function(formula, data, ..., subset, na.action) { m <- match.call(expand.dots = FALSE) m$... <- NULL m[[1]] <- as.name("model.frame") m <- eval.parent(m) Terms <- attr(m, "terms") grouping <- model.response(m) x <- model.matrix(Terms, m) xint <- match("(Intercept)", colnames(x), nomatch=0) if(xint > 0) x <- x[, -xint, drop=FALSE] res <- LdaClassic.default(x, grouping, ...) ## res$terms <- Terms ## fix up call to refer to the generic, but leave arg name as `formula' cl <- match.call() cl[[1]] <- as.name("LdaClassic") res@call <- cl ## res$contrasts <- attr(x, "contrasts") ## res$xlevels <- .getXlevels(Terms, m) ## res$na.action <- attr(m, "na.action") res } LdaClassic.default <- function(x, grouping, prior = proportions, tol = 1.0e-4, ...) { if(is.null(dim(x))) stop("x is not a matrix") xcall <- match.call() x <- as.matrix(x) n <- nrow(x) p <- ncol(x) if(length(grouping) == 1) { # this is the number of groups and the groups are of equal size ng = grouping ni = n/ng if(ng*ni < n) stop("nrow(x) is not divisible by the number of groups") grouping <- rep(0,0) for(i in 1:ng) grouping <- c(grouping, rep(i,ni)) }else if(length(grouping) > 1 && length(grouping) < n) { # grouping contains a vector with the group sizes ng <- length(grouping) if(sum(grouping) != n) stop("nrow(x) is not equal to n1+n2+...+nn") gx <- rep(0,0) for(i in 1:ng) gx <- c(gx, rep(i,grouping[i])) grouping <- gx } if(n != length(grouping)) stop("nrow(x) and length(grouping) are different") g <- as.factor(grouping) lev <- lev1 <- levels(g) counts <- as.vector(table(g)) if(!missing(prior)) { if(any(prior < 0) || round(sum(prior), 5) != 1) stop("invalid prior") if(length(prior) != nlevels(g)) stop("prior is of incorrect length") prior <- prior[counts > 0] } if(any(counts == 0)) { warning(paste("group(s)", paste(lev[counts == 0], collapse=" "),"are empty")) lev1 <- lev[counts > 0] g <- factor(g, levels=lev1) counts <- as.vector(table(g)) } proportions <- counts/n ng <- length(proportions) names(g) <- NULL names(prior) <- levels(g) xcov <- .wcovClass(x, grouping) ## VT::27.11.2019 ## inv <- solve(xcov$wcov) inv <- if(!.isSingular(xcov$wcov)) solve(xcov$wcov) else .pinv(xcov$wcov) ldf <- xcov$means %*% inv ldfconst <- diag(log(prior) - ldf %*% t(xcov$means)/2) return (new("LdaClassic", call=xcall, prior=prior, counts=counts, center=xcov$means, cov=xcov$wcov, ldf = ldf, ldfconst = ldfconst, method="Linear Discriminant Analysis (LDA)", X=x, grp=g)) } .wcovClass <- function(x, grouping, method = c("A", "B")){ xcall <- match.call() method <- match.arg(method) x <- as.matrix(x) n <- nrow(x) p <- ncol(x) dimn <- dimnames(x) if(!is.factor(g <- grouping)) g <- as.factor(grouping) lev <- levels(g) counts <- as.vector(table(g)) if(any(counts == 0)) { stop(paste("group(s)", paste(lev[counts == 0], collapse=" "),"are empty")) } ng <- length(counts/n) # compute group means and covariance matrices for each group mX <- matrix(0,ng,p) covX <- array(0,c(p,p,ng)) for(i in 1:ng){ tmpc <- cov.wt(as.matrix(x[which(g == lev[i]),])) mX[i,] <- tmpc$center covX[,,i] <- tmpc$cov } if(method == "A"){ #Method A: pool the covariance matrices wcov <- matrix(0,p,p) for(i in 1:ng){ wcov <- wcov + (counts[i]-1)*covX[,,i] } wcov <- wcov/(n-ng) }else if(method == "B"){ #Method B: center the data and compute the covariance matrix #of the centered data tmpc <- cov.wt(x - mX[g,]) tmpc$cov <- tmpc$cov*(n-1)/(n-ng) # Add tmpc$center to mX ->mB wcov <- tmpc$cov }else if(method == "C"){ stop("Method C not defined for classical estimates") }else{ stop("Unknown method specified: ", method) } dimnames(wcov) <- list(dimn[[2]], dimn[[2]]) dimnames(mX) <- list(levels(g), dimn[[2]]) ans <- list(call=xcall, means=mX, wcov=wcov, method="MLE") class(ans) <- "wcov" return(ans) } rrcov/R/Wilks.test.R0000644000176200001440000003034614443667016014021 0ustar liggesusersWilks.test <- function(x, ...) UseMethod("Wilks.test") Wilks.test.formula <- function(formula, data, ..., subset, na.action) { m <- match.call(expand.dots = FALSE) m$... <- NULL m[[1]] <- as.name("model.frame") m <- eval.parent(m) if (.check_vars_numeric(m)) stop("Wilks test applies only to numerical variables") Terms <- attr(m, "terms") grouping <- model.response(m) x <- model.matrix(Terms, m) xint <- match("(Intercept)", colnames(x), nomatch=0) if(xint > 0) x <- x[, -xint, drop=FALSE] res <- Wilks.test.default(x, grouping, ...) res$terms <- Terms ## fix up call to refer to the generic, but leave arg name as `formula' cl <- match.call() cl[[1]] <- as.name("Wilks.test") res$call <- cl res$contrasts <- attr(x, "contrasts") res$xlevels <- .getXlevels(Terms, m) res$na.action <- attr(m, "na.action") res } Wilks.test.data.frame <- function(x, ...) { res <- Wilks.test(structure(data.matrix(x), class="matrix"), ...) cl <- match.call() cl[[1]] <- as.name("Wilks.test") res$call <- cl res } Wilks.test.matrix <- function(x, grouping, ..., subset, na.action) { if(!missing(subset)) { x <- x[subset, , drop = FALSE] grouping <- grouping[subset] } if(!missing(na.action)) { dfr <- na.action(structure(list(g = grouping, x = x), class = "data.frame")) grouping <- dfr$g x <- dfr$x } res <- Wilks.test.default(x, grouping, ...) cl <- match.call() cl[[1]] <- as.name("Wilks.test") res$call <- cl res } ## ## Default S3 method for Wilks.test ## ## x - matrix or data frame ## grp - grouping variable - factor specifying the class for each observation ## approximation - ## method - "c" for standard estimators of the mean and variance, "mcd" for robust estimates based on MCD. ## xq - used only when method="mcd". Multiplication factor for the approximate Chi2 distribution. If NULL ## simulation will be performed to determine xq and xd (default is NULL) ## xd - used only when method="mcd". Degrees of freedom for the approximate Chi2 distribution. If NULL ## simulation will be performed to determine xq and xd (default is NULL) ## nrep - number of trials for the simulation for estimating xq and xd (default is 3000) ## trace - whether to provide trace output (default is FALSE) ## Wilks.test.default <- function(x, grouping, method=c("c", "mcd", "rank"), approximation=c("Bartlett", "Rao", "empirical"), xd=NULL, xq=NULL, xfn = NULL, xwl=NULL, nrep=3000, trace=FALSE, ...){ alpha <- 0.5 ## approximation <- "Bartlett" ## approximation <- "empirical" cl <- match.call() method <- match.arg(method) approximation <- match.arg(approximation) dname <- deparse(substitute(x)) if(is.data.frame(x)) x <- data.matrix(x) else if (!is.matrix(x)) x <- matrix(x, length(x), 1, dimnames = list(names(x), deparse(substitute(x)))) ## drop all rows with missing values (!!) : na.x <- !is.finite(x %*% rep(1, ncol(x))) ok <- !na.x x <- x[ok, , drop = FALSE] dx <- dim(x) if(!length(dx)) stop("All observations have missing values!") grouping <- grouping[ok] n <- nrow(x) p <- ncol(x) if(method == "rank") x <- apply(x, 2, rank) ww <- .wilks(x, grouping, method, alpha=alpha) nk <- ww$nk ng <- length(nk) wilks <- ww$wilks METHOD = NULL PARAMETER = NULL if(approximation == "Bartlett") { ## Bartlett's ChiSq approximation Y <- log(wilks) if(method == "mcd"){ if(missing(xd) || is.null(xd) || missing(xq) || is.null(xq)){ xqd <- simulateChi2(nrep=nrep, nk, p, trace=trace, alpha=alpha) xd <- xqd$xd xq <- xqd$xq xfn <- xqd$xfn xwl <- xqd$xwl } STATISTIC <- wilks chi2.value <- Y/xd df <- xq names(STATISTIC) <- "Wilks' Lambda" # "Chi2-approximation (simulated)" METHOD <- "Robust One-way MANOVA (Bartlett Chi2)" }else{ STATISTIC <- wilks chi2.value <- -(n - 1 - (p+ng)/2)*Y df <- p*(ng-1) names(STATISTIC) <- "Wilks' Lambda" # "Chi2-approximation" METHOD <- "One-way MANOVA (Bartlett Chi2)" } PVAL <- 1-pchisq(chi2.value, df) PARAMETER <- c(chi2.value, df) names(PARAMETER) <- c("Chi2-Value", "DF") }else if(approximation == "Rao"){ ## Rao's F approximation t1 <- p*p*(ng-1)*(ng-1) - 4 t2 <- p*p + (ng-1)*(ng-1) - 5 t <- if(t1==0 | t2 == 0) 1 else sqrt(t1/t2) ## t <- sqrt((p*p*(ng-1)*(ng-1) - 4)/(p*p + (ng-1)*(ng-1) - 5)) df1 <- p*(ng-1) df2 <- t*((n-1) - (p + ng)/2) - (p*(ng-1) - 2)/2 # instead of n - the total number of observations - use # the sum of weights ? Y <- wilks^(1/t) STATISTIC <- df2*(1-Y)/(df1*Y) PVAL <- 1-pf(STATISTIC, df1, df2) PARAMETER <- c(df1,df2) names(STATISTIC) <- "F-approximation" names(PARAMETER) <- c("DF1", "DF2") }else if(approximation == "empirical") { Y <- log(wilks) if(method == "mcd"){ if(missing(xd) || is.null(xd) || missing(xq) || is.null(xq)){ xqd <- simulateChi2(nrep=nrep, nk, p, trace=trace, alpha=alpha) xd <- xqd$xd xq <- xqd$xq xfn <- xqd$xfn xwl <- xqd$xwl } STATISTIC <- wilks METHOD <- "Robust One-way MANOVA (empirical distribution)" PVAL <- xfn(wilks) }else{ STATISTIC <- wilks chi2.value <- -(n - 1 - (p+ng)/2)*Y df <- p*(ng-1) names(STATISTIC) <- "Wilks' Lambda" # "Chi2-approximation" METHOD <- "One-way MANOVA (Bartlett Chi2)" PVAL <- 1-pchisq(chi2.value, df) PARAMETER <- c(chi2.value, df) names(PARAMETER) <- c("Chi2-Value", "DF") } } ans <- list(statistic=STATISTIC, parameter=PARAMETER, p.value=PVAL, estimate=ww$group.means, method=METHOD, data.name=dname, W=ww$W, T=ww$T, wilks=wilks, xd=xd, xq=xq, xfn=xfn, xwl=xwl) cl[[1]] <- as.name("Wilks.test") ans$call <- cl class(ans) <- "htest" ans } covMWcd <-function(x, grouping, alpha=0.75){ ## compute group means, pool the observations and compute the common ## covariance matrix covMWcd.B <- function(){ group.means <- matrix(0, ng, p) for(i in 1:ng){ mcd <- CovMcd(x[which(grouping == lev[i]),], alpha=alpha) group.means[i,] <- getCenter(mcd) } mcd <- CovMcd(x - group.means[g,], alpha=alpha) ans <- list(center=group.means, wcov=getCov(mcd), mah=getDistance(mcd), wt=mcd@wt) class(ans) <- "mwcd" attr(ans, "call") <- sys.call() return(ans) } x <-as.matrix(x) p <- ncol(x) n <- nrow(x) g <- as.factor(grouping) lev <- levels(g) ng <- length(lev) covMWcd.B() } ## ## Find by simulation the parameters 'd' and 'q' of the approximate Chi2 distribution ## for the robust Wilks Lambda test based on MCD ## for a given p, g and n=\sum ni ## ## nrep - number of trials (3000) ## nk - array of integers giving the group sizes, e.g. nk=c(20, 20) ## p - dimension ## simulateChi2 <- function(nrep=3000, nk, p, trace=FALSE, alpha=0.75){ if(missing(nk)) stop("The number and size of groups must be provided!") if(missing (p)) stop("The dimensipon 'p' must be provided") if(trace) cat("\nFind approximate distribution...\n") ptm <- proc.time() n <- sum(nk) ng <- length(nk) grp <- as.factor(rep(1:ng, nk)) wl <- rwl <- vector(mode = "numeric", length = nrep) for(i in 1:nrep){ # x <- as.matrix(mvrnorm(n=n, mu=rep(0,p), Sigma=diag(rep(1,p)))) x <- matrix(rnorm(n*p), ncol=p) tt <- .wilks(x, grp, method="c", alpha=alpha) rtt <- .wilks(x, grp, method="mcd", alpha=alpha) wl[i] <- tt$wilks rwl[i] <- rtt$wilks } Y <- log(wl) RY <- log(rwl) xmean <- mean(Y) xvar <- var(Y) xq <- 2*xmean*xmean/xvar xd <- xmean/xq rxmean <- mean(RY) rxvar <- var(RY) rxq <- 2*rxmean*rxmean/rxvar rxd <- rxmean/rxq rxfn <- ecdf(rwl) if(trace){ cat(sprintf('\n nrep=%5.0f p=%4.0f ng=%2.0f n=%5.0f', nrep,p,ng,n)) cat(sprintf('\n alpha=%5.2f', alpha)) cat(sprintf('\n mean var d q')) cat(sprintf('\n %5.3f %5.3f', -1/(n-1-(p*ng)/2), p*(ng-1))) cat(sprintf('\n WILKS: %5.3f %5.3f %5.3f %5.3f', xmean, xvar, xd, xq)) cat(sprintf('\nR WILKS: %5.3f %5.3f %5.3f %5.3f', rxmean, rxvar, rxd, rxq)) cat("\n") cat(" Elapsed time: ", (proc.time() - ptm)[1],"\n") } invisible(list(xd=rxd, xq=rxq, xfn=rxfn, xwl=rwl)) } .wilks <- function(x, grouping, method, alpha=0.75){ n <- nrow(x) p <- ncol(x) if(!is.factor(g <- grouping)) g <- as.factor(grouping) ## get rid of empty groups grouping <- g <- as.factor(as.character(g)) lev <- levels(g) counts <- as.vector(table(g)) if(any(counts == 0)) { stop(paste("group(s)", paste(lev[counts == 0], collapse=" "),"are empty")) } ng <- length(counts) if(method == "c" | method == "rank"){ wts <- rep(1, n) }else if(method == "mcd"){ mcd <- covMWcd(x, grouping=grouping, alpha=alpha) wts <- mcd$wt }else stop("Undefined method: ", method) group.means <- matrix(0,ng,p) for(i in 1:ng){ group.means[i,] <- cov.wt(x[which(grouping == lev[i]),], wt=wts[which(grouping == lev[i])])$center } wcross <- cov.wt((x - group.means[g, ]), wt=wts) wcross <- (sum(wts)-1) * wcross$cov tcross <- cov.wt(x, wt=wts) tcross <- (sum(wts)-1) * tcross$cov wilks <- det(wcross)/det(tcross) names(wilks) <- "Wilks' Lambda" names(group.means) <- names(x) dimnames(group.means) <- list(lev, dimnames(x)[[2]]) list(nk=counts, wilks=wilks, W=wcross, T=tcross, group.means=group.means) } .wilksx <- function(x, grouping, method, alpha=0.75){ n <- nrow(x) p <- ncol(x) if(!is.factor(g <- grouping)) g <- as.factor(grouping) ## get rid of empty groups g <- as.factor(as.character(g)) lev <- levels(g) counts <- as.vector(table(g)) if(any(counts == 0)) { stop(paste("group(s)", paste(lev[counts == 0], collapse=" "),"are empty")) } ng <- length(counts) if(method == "c" | method == "rank"){ wts <- rep(1, n) }else if(method == "mcd"){ mcd <- covMWcd(x, grouping=grouping, alpha=alpha) wts <- mcd$wt }else stop("Undefined method: ", method) group.means <- matrix(0,ng,p) for(i in 1:ng){ group.means[i,] <- cov.wt(x[which(grouping == lev[i]),], wt=wts[which(grouping == lev[i])])$center } wcross <-cov.wt((x - group.means[g, ]), wt=wts) wcross <- (sum(wts)-1) * wcross$cov tcross <- cov.wt(x, wt=wts) tcross <- (sum(wts)-1) * tcross$cov wilks <- det(wcross)/det(tcross) names(wilks) <- "Wilks' Lambda" names(group.means) <- names(x) dimnames(group.means) <- list(lev, dimnames(x)[[2]]) list(nk=counts, wilks=wilks, W=wcross, T=tcross, group.means=group.means) } rrcov/R/Pca.R0000644000176200001440000005273114576421115012452 0ustar liggesuserssetMethod("names", "Pca", function(x) slotNames(x)) setMethod("$", c("Pca"), function(x, name) slot(x, name)) setMethod("getCenter", "Pca", function(obj) obj@center) setMethod("getScale", "Pca", function(obj) obj@scale) setMethod("getLoadings", "Pca", function(obj) obj@loadings) setMethod("getEigenvalues", "Pca", function(obj) obj@eigenvalues) setMethod("getSdev", "Pca", function(obj) sqrt(obj@eigenvalues)) setMethod("getScores", "Pca", function(obj) obj@scores) setMethod("getPrcomp", "Pca", function(obj) { ret <- list(sdev=sqrt(obj@eigenvalues), rotation=obj@loadings, center=obj@center, scale=obj@scale, x=obj@scores) class(ret) <- "prcomp" ret }) ## ## Follow the standard methods: show, print, plot ## setMethod("show", "Pca", function(object) myPcaPrint(object)) setMethod("summary", "Pca", function(object, ...){ vars <- getEigenvalues(object) vars <- vars/sum(vars) ## If k < p, use the stored initial eigenvalues and total explained variance, if any if(length(vars) < object@rank) { if(length(object@eig0) > 0 && length(object@totvar0) > 0) { vars <- object$eig0/object$totvar0 vars <- vars[1:object$k] } else vars <- NULL } importance <- if(is.null(vars)) rbind("Standard deviation" = getSdev(object)) else rbind("Standard deviation" = getSdev(object), "Proportion of Variance" = round(vars,5), "Cumulative Proportion" = round(cumsum(vars), 5)) colnames(importance) <- colnames(getLoadings(object)) new("SummaryPca", pcaobj=object, importance=importance) }) setMethod("show", "SummaryPca", function(object){ cat("\nCall:\n") print(object@pcaobj@call) digits = max(3, getOption("digits") - 3) cat("Importance of components:\n") print(object@importance, digits = digits) if(nrow(object@importance) == 1) cat("\nNOTE: Proportion of Variance and Cumulative Proportion are not shown", "\nbecause the chosen number of components k =", object@pcaobj@k, "\nis smaller than the rank of the data matrix =", object@pcaobj@rank, "\n") invisible(object) }) ## setMethod("print", "Pca", function(x, ...) myPcaPrint(x, ...)) setMethod("predict", "Pca", function(object, ...){ predict(getPrcomp(object), ...) }) setMethod("screeplot", "Pca", function(x, ...){ pca.screeplot(x, ...) }) setMethod("biplot", "Pca", function(x, choices=1L:2L, scale=1, ...){ if(length(getEigenvalues(x)) < 2) stop("Need at least two components for biplot.") lam <- sqrt(getEigenvalues(x)[choices]) scores <- getScores(x) n <- NROW(scores) lam <- lam * sqrt(n) if(scale < 0 || scale > 1) warning("'scale' is outside [0, 1]") if(scale != 0) lam <- lam^scale else lam <- 1 xx <- t(t(scores[, choices]) / lam) yy <- t(t(getLoadings(x)[, choices]) * lam) .biplot(xx, yy, ...) invisible() }) setMethod("scorePlot", "Pca", function(x, i=1, j=2, ...){ pca.scoreplot(obj=x, i=i, j=j, ...) }) ## The __outlier map__ (diagnostic plot, distance-distance plot) ## visualizes the observations by plotting their orthogonal ## distance to the robust PCA subspace versus their robust ## distances within the PCA subspace. This allows to classify ## the data points into 4 types: regular observations, good ## leverage points, bad leverage points and orthogonal outliers. ## The outlier plot is only possible when k < r (the number of ## selected components is less than the rank of the matrix). ## Otherwise a __distance plot__ will be shown (distances against ## index). ## ## The __screeplot__ shows the eigenvalues and is helpful to select ## the number of principal components. ## ## The __biplot__ is plot which aims to represent both the ## observations and variables of a matrix of multivariate data ## on the same plot. ## ## The __scoreplot__ shows a scatterplot of i-th against j-th score ## of the Pca object with superimposed tollerance (0.975) ellipse ## ## VT::17.06.2008 ##setMethod("plot", "Pca", function(x, y="missing", setMethod("plot", signature(x="Pca", y="missing"), function(x, y="missing", id.n.sd=3, id.n.od=3, ...){ if(all(x@od > 1.E-06)) pca.ddplot(x, id.n.sd, id.n.od, ...) else pca.distplot(x, id.n.sd, ...) }) myPcaPrint <- function(x, print.x=FALSE, print.loadings=FALSE, ...) { if(!is.null(cl <- x@call)) { cat("Call:\n") dput(cl) cat("\n") } cat("Standard deviations:\n"); print(sqrt(getEigenvalues(x)), ...) if(print.loadings) { cat("\nLoadings:\n"); print(getLoadings(x), ...) } if (print.x) { cat("\nRotated variables:\n"); print(getScores(x), ...) } invisible(x) } ## Internal function to calculate the score and orthogonal distances and the ## appropriate cutoff values for identifying outlying observations ## ## obj - the Pca object. From this object will be used: ## - k, eigenvalues, scores ## - center and scale ## data - the original data (not centered and scaled) ## r - rank ## crit - criterion for computing cutoff for SD and OD ## ## - cutoff for score distances: sqrt(qchisq(crit, k)) ## - cutoff for orthogonal distances: Box (1954) ## pca.distances <- function(obj, data, r, crit=0.975) { .distances(data, r, obj, crit) } .distances <- function(data, r, obj, crit=0.975) { ## VT::28.07.2020 - - add adjusted for skewed data mode. The 'skew' ## parameter will be used only in PcaHubert() to control how to ## calculate the distances and their cutoffs. skew <- inherits(obj,"PcaHubert") && obj$skew ## remember the criterion, could be changed by the user obj@crit.pca.distances <- crit ## compute the score distances and the corresponding cutoff value n <- nrow(data) smat <- diag(obj@eigenvalues, ncol=ncol(obj@scores)) ## VT::02.06.2010: it can happen that the rank of the matrix ## is nk=ncol(scores), but the rank of the diagonal matrix of ## eigenvalues is lower: for example if the last singular ## value was 1E-7, the last eigenvalue will be sv^2=1E-14 ## nk <- min(ncol(obj@scores), rankMM(smat)) if(nk < ncol(obj@scores)) warning(paste("Too small eigenvalue(s): ", obj@eigenvalues[ncol(obj@scores)], "- the diagonal matrix of the eigenvalues cannot be inverted!")) obj@sd <- sqrt(mahalanobis(as.matrix(obj@scores[,1:nk]), rep(0, nk), diag(obj@eigenvalues[1:nk], ncol=nk))) obj@cutoff.sd <- sqrt(qchisq(crit, obj@k)) if(skew) { ## In this case (only valid when called from PcaHubert) the ## SD are the observations' adjusted outlyingness, and the corresponding ## cutoff value is derived in the same way as for the orthogonal distances. obj@sd <- obj@ao obj@cutoff.sd <- .crit.od(obj@sd, crit=crit, method="skewed") } ## Compute the orthogonal distances and the corresponding cutoff value ## For each point this is the norm of the difference between the ## centered data and the back-transformed scores ## obj@od <- apply(data - repmat(obj@center, n, 1) - obj@scores %*% t(obj@loadings), 1, vecnorm) ## VT::21.06.2016 - the data we get here is the original data - neither centered nor scaled. ## - center and scale the data ## obj@od <- apply(data - matrix(rep(obj@center, times=n), nrow=n, byrow=TRUE) - obj@scores %*% t(obj@loadings), 1, vecnorm) obj@od <- apply(scale(data, obj@center, obj@scale) - obj@scores %*% t(obj@loadings), 1, vecnorm) if(is.list(dimnames(obj@scores))) { names(obj@od) <- dimnames(obj@scores)[[1]] } ## The orthogonal distances make sence only if the number of PCs is less than ## the rank of the data matrix - otherwise set it to 0 obj@cutoff.od <- 0 if(obj@k != r) { ## the method used for computing the cutoff depends on (a) classic/robust and (b) skew mx <- if(inherits(obj,"PcaClassic")) "classic" else if(skew) "skewed" else "medmad" obj@cutoff.od <- .crit.od(obj@od, crit=crit, method=mx) } ## flag the observations with 1/0 if the distances are less or equal the ## corresponding cutoff values obj@flag <- obj@sd <= obj@cutoff.sd if(obj@cutoff.od > 0) obj@flag <- (obj@flag & obj@od <= obj@cutoff.od) return(obj) } ## Adjusted for skewness cutoff of the orthogonal distances: ## - cutoff = the largest od_i smaller than Q3({od}) + 1.5 * exp(3 * medcouple({od})) * IQR({od}) ## .crit.od <- function(od, crit=0.975, method=c("medmad", "classic", "umcd", "skewed"), quan) { method <- match.arg(method) if(method == "skewed") { mc <- robustbase::mc(od, maxit=1000) e3mc <- if(mc < 0) 1 else exp(3*mc) cx <- quantile(od, 0.75) + 1.5 * e3mc * IQR(od) cv <- max(od[which(od < cx)]) # take the largest od, smaller than cx } else { od <- od^(2/3) if(method == "classic") { t <- mean(od) s <- sd(od) }else if(method == "umcd") { ms <- unimcd(od, quan=quan) t <- ms$tmcd s <- ms$smcd }else { t <- median(od) s <- mad(od) } cv <- (t + s * qnorm(crit))^(3/2) } cv } ## Flip the signs of the loadings ## - comment from Stephan Milborrow ## .signflip <- function(loadings) { if(!is.matrix(loadings)) loadings <- as.matrix(loadings) apply(loadings, 2, function(x) if(x[which.max(abs(x))] < 0) -x else x) } ## This is from MM in robustbase, but I want to change it and ## therefore took a copy. Later will update in 'robustbase' ## I want to use not 'scale()', but doScale to which I can pass also ## a function. .classPC <- function(x, scale=FALSE, center=TRUE, signflip=TRUE, via.svd = n > p, scores=FALSE) { if(!is.numeric(x) || !is.matrix(x)) stop("'x' must be a numeric matrix") else if((n <- nrow(x)) <= 1) stop("The sample size must be greater than 1 for svd") p <- ncol(x) if(is.logical(scale)) scale <- if(scale) sd else vector('numeric', p) + 1 else if(is.null(scale)) scale <- vector('numeric', p) + 1 if(is.logical(center)) center <- if(center) mean else vector('numeric', p) else if(is.null(center)) center <- vector('numeric', p) x.scaled <- doScale(x, center=center, scale=scale) x <- x.scaled$x center <- x.scaled$center scale <- x.scaled$scale if(via.svd) { svd <- svd(x, nu=0) rank <- rankMM(x, sv=svd$d) loadings <- svd$v[,1:rank] eigenvalues <- (svd$d[1:rank])^2 /(n-1) ## FIXME: here .^2; later sqrt(.) } else { ## n <= p; was "kernelEVD" e <- eigen(tcrossprod(x), symmetric=TRUE) evs <- e$values tolerance <- n * max(evs) * .Machine$double.eps rank <- sum(evs > tolerance) evs <- evs[ii <- seq_len(rank)] eigenvalues <- evs / (n-1) ## MM speedup, was: crossprod(..) %*% diag(1/sqrt(evs)) loadings <- crossprod(x, e$vectors[,ii]) * rep(1/sqrt(evs), each=p) } ## VT::15.06.2010 - signflip: flip the sign of the loadings if(signflip) loadings <- .signflip(loadings) list(rank=rank, eigenvalues=eigenvalues, loadings=loadings, scores = if(scores) x %*% loadings, center=center, scale=scale) } ## VT::19.08.2016 ## classSVD and kernelEVD are no more used - see .classPC ## ## VT::15.06.2010 - Added scaling and flipping of the loadings ## classSVD <- function(x, scale=FALSE, signflip=TRUE){ if(!is.numeric(x) || !is.matrix(x)) stop("'x' must be a numeric matrix") else if(nrow(x) <= 1) stop("The sample size must be greater than 1 for svd") n <- nrow(x) p <- ncol(x) center <- apply(x, 2, mean) x <- scale(x, center=TRUE, scale=scale) if(scale) scale <- attr(x, "scaled:scale") svd <- svd(x/sqrt(n-1)) rank <- rankMM(x, sv=svd$d) eigenvalues <- (svd$d[1:rank])^2 loadings <- svd$v[,1:rank] ## VT::15.06.2010 - signflip: flip the sign of the loadings if(!is.matrix(loadings)) loadings <- data.matrix(loadings) if(signflip) loadings <- .signflip(loadings) scores <- x %*% loadings list(loadings=loadings, scores=scores, eigenvalues=eigenvalues, rank=rank, center=center, scale=scale) } ## VT::15.06.2010 - Added scaling and flipping of the loadings ## kernelEVD <- function(x, scale=FALSE, signflip=TRUE){ if(!is.numeric(x) || !is.matrix(x)) stop("'x' must be a numeric matrix") else if(nrow(x) <= 1) stop("The sample size must be greater than 1 for svd") n <- nrow(x) p <- ncol(x) if(n > p) classSVD(x, scale=scale, signflip=signflip) else { center <- apply(x, 2, mean) x <- scale(x, center=TRUE, scale=scale) if(scale) scale <- attr(x, "scaled:scale") e <- eigen(x %*% t(x)/(n-1)) tolerance <- n * max(e$values) * .Machine$double.eps rank <- sum(e$values > tolerance) eigenvalues <- e$values[1:rank] loadings <- t((x/sqrt(n-1))) %*% e$vectors[,1:rank] %*% diag(1/sqrt(eigenvalues)) ## VT::15.06.2010 - signflip: flip the sign of the loadings if(signflip) loadings <- .signflip(loadings) scores <- x %*% loadings ret <- list(loadings=loadings, scores=scores, eigenvalues=eigenvalues, rank=rank, center=center, scale=scale) } } pca.screeplot <- function (obj, k, type = c("barplot", "lines"), main = deparse1(substitute(obj)), ...) { type <- match.arg(type) pcs <- if(is.null(obj@eig0) || length(obj@eig0) == 0) obj@eigenvalues else obj@eig0 k <- if(missing(k)) min(10, length(pcs)) else min(k, length(pcs)) xp <- seq_len(k) dev.hold() on.exit(dev.flush()) if (type == "barplot") barplot(pcs[xp], names.arg = names(pcs[xp]), main = main, ylab = "Variances", ...) else { plot(xp, pcs[xp], type = "b", axes = FALSE, main = main, xlab = "", ylab = "Variances", ...) axis(2) axis(1, at = xp, labels = names(pcs[xp])) } invisible() } ## Score plot of the Pca object 'obj' - scatterplot of ith against jth score ## with superimposed tollerance (0.975) ellipse pca.scoreplot <- function(obj, i=1, j=2, main, id.n, ...) { if(missing(main)) { main <- if(inherits(obj,"PcaClassic")) "Classical PCA" else "Robust PCA" } x <- cbind(getScores(obj)[,i], getScores(obj)[,j]) rownames(x) <- rownames(getScores(obj)) ## VT::11.06.2012 ## Here we assumed that the scores are not correlated and ## used a diagonal matrix with the eigenvalues on the diagonal to draw the ellipse ## This is not the case with PP methods, therefore we compute the covariance of ## the scores, considering only the non-outliers ## (based on score and orthogonal distances) ## ## ev <- c(getEigenvalues(obj)[i], getEigenvalues(obj)[j]) ## cpc <- list(center=c(0,0), cov=diag(ev), n.obs=obj@n.obs) flag <- obj@flag cpc <- cov.wt(x, wt=flag) ## We need to inflate the covariance matrix with the proper size: ## see Maronna et al. (2006), 6.3.2, page 186 ## ## - multiply the covariance by quantile(di, alpha)/qchisq(alpha, 2) ## where alpha = h/n ## ## mdx <- mahalanobis(x, cpc$center, cpc$cov) ## alpha <- length(flag[which(flag != 0)])/length(flag) ## cx <- quantile(mdx, probs=alpha)/qchisq(p=alpha, df=2) ## cpc$cov <- cx * cpc$cov .myellipse(x, xcov=cpc, xlab=paste("PC",i,sep=""), ylab=paste("PC",j, sep=""), main=main, id.n=id.n, ...) abline(v=0) abline(h=0) } ## Distance-distance plot (or diagnostic plot, or outlier map) ## Plots score distances against orthogonal distances pca.ddplot <- function(obj, id.n.sd=3, id.n.od=3, main, xlim, ylim, off=0.02, ...) { if(missing(main)) { main <- if(inherits(obj,"PcaClassic")) "Classical PCA" else "Robust PCA" } if(all(obj@od <= 1.E-06)) warning("PCA diagnostic plot is not defined") else { if(missing(xlim)) xlim <- c(0, max(max(obj@sd), obj@cutoff.sd)) if(missing(ylim)) ylim <- c(0, max(max(obj@od), obj@cutoff.od)) plot(obj@sd, obj@od, xlab="Score distance", ylab="Orthogonal distance", main=main, xlim=xlim, ylim=ylim, type="p", ...) abline(v=obj@cutoff.sd) abline(h=obj@cutoff.od) label.dd(obj@sd, obj@od, id.n.sd, id.n.od, off=off) } invisible(obj) } ## Distance plot, plots score distances against index pca.distplot <- function(obj, id.n=3, title, off=0.02, ...) { if(missing(title)) { title <- if(inherits(obj,"PcaClassic")) "Classical PCA" else "Robust PCA" } ymax <- max(max(obj@sd), obj@cutoff.sd) plot(obj@sd, xlab="Index", ylab="Score distance", ylim=c(0,ymax), type="p", ...) abline(h=obj@cutoff.sd) label(1:length(obj@sd), obj@sd, id.n, off=off) title(title) invisible(obj) } label <- function(x, y, id.n=3, off=0.02){ xrange <- par("usr") xrange <- xrange[2] - xrange[1] if(id.n > 0) { n <- length(y) ind <- sort(y, index.return=TRUE)$ix ind <- ind[(n-id.n+1):n] if(is.character(names(y))) lab <- names(y[ind]) else lab <- ind text(x[ind] - off*xrange, y[ind], lab) } } label.dd <- function(x, y, id.n.sd=3, id.n.od=3, off=0.02){ xrange <- par("usr") xrange <- xrange[2] - xrange[1] if(id.n.sd > 0 && id.n.od > 0) { n <- length(x) ind.sd <- sort(x, index.return=TRUE)$ix ind.sd <- ind.sd[(n - id.n.sd + 1):n] ind.od <- sort(y, index.return=TRUE)$ix ind.od <- ind.od[(n - id.n.od + 1):n] lab <- ind.od if(is.character(names(y))) lab <- names(y[ind.od]) text(x[ind.od] - off*xrange, y[ind.od], lab) lab <- ind.sd if(is.character(names(x))) lab <- names(x[ind.sd]) text(x[ind.sd] - off*xrange, y[ind.sd], lab) } } ## VT::30.09.2009 - add a parameter 'classic' to generate a default caption ## "Robust biplot" or "Classical biplot" for a robust/classical ## PCA object, resp. ## --- do not use it for now --- ## .biplot <- function(x, y, classic, var.axes = TRUE, col, cex = rep(par("cex"), 2), xlabs = NULL, ylabs = NULL, expand=1, xlim = NULL, ylim = NULL, arrow.len = 0.1, main = NULL, sub = NULL, xlab = NULL, ylab = NULL, ...) { n <- nrow(x) p <- nrow(y) ## if(is.null(main)) ## main <- if(classic) "Classical biplot" else "Robust biplot" if(missing(xlabs)) { xlabs <- dimnames(x)[[1L]] if(is.null(xlabs)) xlabs <- 1L:n } xlabs <- as.character(xlabs) dimnames(x) <- list(xlabs, dimnames(x)[[2L]]) if(missing(ylabs)) { ylabs <- dimnames(y)[[1L]] if(is.null(ylabs)) ylabs <- paste("Var", 1L:p) } ylabs <- as.character(ylabs) dimnames(y) <- list(ylabs, dimnames(y)[[2L]]) if(length(cex) == 1L) cex <- c(cex, cex) pcol <- par("col") if(missing(col)) { col <- par("col") if(!is.numeric(col)) col <- match(col, palette(), nomatch=1L) col <- c(col, col + 1L) } else if(length(col) == 1L) col <- c(col, col) unsigned.range <- function(x) c(-abs(min(x, na.rm=TRUE)), abs(max(x, na.rm=TRUE))) rangx1 <- unsigned.range(x[, 1L]) rangx2 <- unsigned.range(x[, 2L]) rangy1 <- unsigned.range(y[, 1L]) rangy2 <- unsigned.range(y[, 2L]) if(missing(xlim) && missing(ylim)) xlim <- ylim <- rangx1 <- rangx2 <- range(rangx1, rangx2) else if(missing(xlim)) xlim <- rangx1 else if(missing(ylim)) ylim <- rangx2 ratio <- max(rangy1/rangx1, rangy2/rangx2)/expand on.exit(par(op)) op <- par(pty = "s") if(!is.null(main)) op <- c(op, par(mar = par("mar")+c(0,0,1,0))) plot(x, type = "n", xlim = xlim, ylim = ylim, col = col[[1L]], xlab = xlab, ylab = ylab, sub = sub, main = main, ...) text(x, xlabs, cex = cex[1L], col = col[[1L]], ...) par(new = TRUE) plot(y, axes = FALSE, type = "n", xlim = xlim*ratio, ylim = ylim*ratio, xlab = "", ylab = "", col = col[[1L]], ...) ## axis(3, col = col[2L], ...) ## axis(4, col = col[2L], ...) ## box(col = col[1L]) axis(3, col = pcol, ...) axis(4, col = pcol, ...) box(col = pcol) text(y, labels=ylabs, cex = cex[2L], col = col[[2L]], ...) if(var.axes) arrows(0, 0, y[,1L] * 0.8, y[,2L] * 0.8, col = col[[2L]], length=arrow.len) invisible() } rrcov/R/detmrcd.R0000644000176200001440000006000114443667016013363 0ustar liggesusers## @title Compute the Minimum Regularized Covariance Determinant (MRCD) estimator ## @references Paper available at: http://dx.doi.org/10.2139/ssrn.2905259. ## @param x a numerical matrix. The columns represent variables, and rows represent observations. ## @param alpha the proportion of the contamination (between 0.5 and 1) ## @param h the size of the subset (between ceiling(n/2) and n) ## @param initHsets NULL or a K x h integer matrix of initial subsets of observations ## of size h (specified by the indices in 1:n). If provided, then the initial ## shape estimates are not calculated. ## @param save.hsets ## @param maxcsteps maximum number of generalized C-steps for each initial subset (default 200) ## @param maxcond maximum condition number allowed (see step 3.4 in algorithm 1) (default 50) ## @param minscale minimum scale allowed (default 0.001) ## @param target = c("identity", "equicorrelation"). Structure of the robust ## positive definite target matrix: (default) "identity": target matrix is ## diagonal matrix with robustly estimated univariate scales on the diagonal or ## "equicorrelation": non-diagonal target matrix that incorporates an ## equicorrelation structure (see (17) in paper) ## @param trace ## @return A list with the following elements: ## \describe{ ## \item{icov}{inverse of the covariance matrix} ## \item{rho}{regularization parameter} ## \item{target}{the target matrix used} ## } ## .detmrcd <- function(x, h=NULL, alpha=.75, rho=NULL, maxcond=50, minscale=0.001, target=0, maxcsteps = 200, hsets.init=NULL, save.hsets=missing(hsets.init), full.h = save.hsets, trace=FALSE) { ## NOTES: VT ## ## - use r6pack from robustbase ## - X check subset #5 - something is wrong there ## - X mX is not back transformed to compensate the SVD rescaling ## ==> the distances returned by MWRCD are different from ## the distances computed outside of MWRCD. ## ## - X MRCD works with the transposed matrix X - it shoould be transposed inside the function ## - Help of CovMcd - remove data.matrix from the example ## - X What is doing the parameter 'bc'? Can be omitted - bc removed ## - X parameter 'initrho' is never used: remove it ## - X scfactor(alpha, p) is equivalent to robustbase:::.MCDcons(p, alpha) - replaced ## - X condnumber () is never used - remove it - removed ## - X robustbase:::r6pack() will not work for p > n, because there is a check svd$rank < p - comment out the check ## - X using kendal's tau cor.fk from pcaPP - replace by spearman. Later we could move cor.fk() from pcaPP into robustbase ## - X No SVD if the target matrix is the Identity; if equicorrelation, the eigenvectors are a helmert matrix ##---------------------------------------------------------------- ## @title Robust Distance based observation orderings based on robust "Six pack" ## @param x n x p data matrix ## @param h integer ## @param full.h full (length n) ordering or only the first h? ## @param scaled is 'x' is already scaled? otherwise, apply doScale(x, median, scalefn) ## @param scalefn function to compute a robust univariate scale. ## @return a h' x 6 matrix of indices from 1:n; if(full.h) h' = n else h' = h r6pack <- function(x, h, full.h, adjust.eignevalues=TRUE, scaled=TRUE, scalefn=Qn) { ## As the considered initial estimators Sk may have very ## inaccurate eigenvalues, we try to 'improve' them by applying ## a transformation similar to that used in the OGK algorithm. ## ## After that compute the corresponding distances, order them and ## return the indices initset <- function(data, scalefn, P, h) { stopifnot(length(d <- dim(data)) == 2, length(h) == 1, h >= 1) n <- d[1] stopifnot(h <= n) lambda <- doScale(data %*% P, center=median, scale=scalefn)$scale sqrtcov <- P %*% (lambda * t(P)) ## == P %*% diag(lambda) %*% t(P) sqrtinvcov <- P %*% (t(P) / lambda) ## == P %*% diag(1/lambda) %*% t(P) estloc <- colMedians(data %*% sqrtinvcov) %*% sqrtcov centeredx <- (data - rep(estloc, each=n)) %*% P sort.list(mahalanobisD(centeredx, FALSE, lambda))[1:h]# , partial = 1:h } ## ## Compute the raw OGK estimator. For m(.) and s(.) (robust ## univariate estimators of location and scale) use the median ## and Qn for reasons of simplicity (no choice of tuning parameters) ## and to be consistent with the other components of DetMCD. ## ogkscatter <- function(Y, scalefn, only.P = TRUE) { stopifnot(length(p <- ncol(Y)) == 1, p >= 1) U <- diag(p) for(i in seq_len(p)[-1L]) {# i = 2:p sYi <- Y[,i] ii <- seq_len(i - 1L) for(j in ii) { sYj <- Y[,j] U[i,j] <- (scalefn(sYi + sYj)^2 - scalefn(sYi - sYj)^2) / 4 } ## also set the upper triangle U[ii,i] <- U[i,ii] } ## now done above: U <- lower.tri(U) * U + t(U) # U <- tril(U, -1) + t(U) P <- eigen(U, symmetric=TRUE)$vectors if(only.P) return(P) ## else : Z <- Y %*% t(P) sigz <- apply(Z, 2, scalefn) lambda <- diag(sigz^2) list(P=P, lambda=lambda) } stopifnot(length(dx <- dim(x)) == 2) n <- dx[1] p <- dx[2] ## If scalefn is missing or is NULL, use Qn for smaller data sets (n < 1000) ## and tau-scale of Yohai and Zamar (1988) otherwise. ## scalefn <- robustbase:::robScalefn(scalefn, n) ## If the data was not scaled already (scaled=FALSE), center and scale using ## the median and the provided function 'scalefn'. if(!scaled) { ## Center and scale the data to (0, 1) - robustly x <- doScale(x, center=median, scale=scalefn)$x } nsets <- 6 hsets <- matrix(integer(), h, nsets) ## Determine 6 initial estimates (ordering of obs) ## 1. Hyperbolic tangent of standardized data y1 <- tanh(x) R1 <- cor(y1) P <- eigen(R1, symmetric=TRUE)$vectors hsets[,1] <- initset(x, scalefn=scalefn, P=P, h=h) ## 2. Spearmann correlation matrix R2 <- cor(x, method="spearman") P <- eigen(R2, symmetric=TRUE)$vectors hsets[,2] <- initset(x, scalefn=scalefn, P=P, h=h) ## 3. Tukey normal scores y3 <- qnorm((apply(x, 2L, rank) - 1/3)/(n + 1/3)) R3 <- cor(y3, use = "complete.obs") P <- eigen(R3, symmetric=TRUE)$vectors hsets[,3] <- initset(x, scalefn=scalefn, P=P, h=h) ## 4. Spatial sign covariance matrix znorm <- sqrt(rowSums(x^2)) ii <- znorm > .Machine$double.eps x.nrmd <- x x.nrmd[ii,] <- x[ii, ] / znorm[ii] SCM <- crossprod(x.nrmd)# / (n-1) not needed for e.vectors P <- eigen(SCM, symmetric=TRUE)$vectors hsets[,4] <- initset(x, scalefn=scalefn, P=P, h=h) ## 5. BACON ind5 <- order(znorm) half <- ceiling(n/2) Hinit <- ind5[1:half] covx <- cov(x[Hinit, , drop=FALSE]) P <- eigen(covx, symmetric=TRUE)$vectors hsets[,5] <- initset(x, scalefn=scalefn, P=P, h=h) ## 6. Raw OGK estimate for scatter P <- ogkscatter(x, scalefn, only.P=TRUE) hsets[,6] <- initset(x, scalefn=scalefn, P=P, h=h) ## VT::15.11.2019 ## No need of the code below in MRCD. ## Instead of computing md and sorting, just return hsets. ## if(!adjust.eignevalues) return (hsets) ## Now combine the six pack : if(full.h) hsetsN <- matrix(integer(), n, nsets) for(k in 1:nsets) ## sort each of the h-subsets in *increasing* Mah.distances { xk <- x[hsets[,k], , drop=FALSE] svd <- classPC(xk, signflip=FALSE) # [P,T,L,r,centerX,meanvct] = classSVD(xk) ## VT::15.10.2018 - we do not need this check, because we are using r6pack ## also for MRCD. Comment it out , maybe should move it to detmcd: FIXME ## if(svd$rank < p) ## FIXME: " return("exactfit") " ## stop('More than half of the observations lie on a hyperplane.') score <- (x - rep(svd$center, each=n)) %*% svd$loadings ord <- order(mahalanobisD(score, FALSE, sqrt(abs(svd$eigenvalues)))) if(full.h) hsetsN[,k] <- ord else hsets[,k] <- ord[1:h] } ## return if(full.h) hsetsN else hsets } # Return target correlation matrix with given structure # input: # mX: the p by n matrix of the data # target: structure of the robust positive definite target matrix (default=1) # 0: identity matrix # 1: non-diagonal matrix with an equicorrelation structure (see (17) in paper) # output: # the target correlation matrix .TargetCorr <- function(mX, target=1, mindet=0) { p <- dim(mX)[1] I <- diag(1, p) if(target == 0){ R <- I } else if(target == 1) { ## cortmp <- cor.fk(t(mX)) # from pcaPP ## cortmp <- cor(t(mX), method="kendal") # very slow cortmp <- cor(t(mX), method="spearman") cortmp <- sin(1/2 * pi * cortmp) constcor <- mean(cortmp[upper.tri(cortmp, diag=FALSE)]) # KB: add bound to ensure positive definiteness; see paper page 7, below (17) if(constcor <= min(c(0, (-1/(p-1) + 0.01)))){ constcor <- min(c(0,(-1/(p-1) + 0.01))) } J <- matrix(1, p, p) R <- constcor * J + (1-constcor) * I } return(R) } eigenEQ <- function(T) { rho <- T[1,2] d <- ncol(T) helmert <- matrix(0, nrow=d, ncol=d) helmert[, 1] <- rep(1/sqrt(d), d) for(j in 2:ncol(helmert)) { helmert[1:(j-1), j] <- 1/sqrt(j*(j-1)) helmert[j, j] <- -(j-1)/sqrt(j*(j-1)) } out <- NULL out$values <- c(1 + (d-1)*rho, rep(1-rho, d-1)) out$vectors <- helmert out } # compute the regularized covariance # input: # XX, the p by n (or h) matrix of the data (not necessarily demeaned) # vMu: the initial mean (p-vector) # rho: the regularization parameter # mT: the target matrix # scfac: the scaling factor # bcd: diagonal matrix used for rescaling (ratio of scales of target and mcd component) # target: structure of the robust positive definite target matrix (default=1) # 0: identity matrix # 1: non-diagonal matrix with an equicorrelation structure (see (17) in paper) # invert: if true, gives also inverted regularized covariance # # output (a list): # rho: the regularization parameter # mT: the target matrix # cov: the covariance matrix based on subset (without regularization step) # rcov: the regularized covariance matrix # inv_rcov: the inverse of the regularized covariance matrix (if invert=True) .RCOV <- function(XX, vMu, rho=NULL, mT, scfac, target=1, invert=FALSE) { mE <- XX-vMu n <- dim(mE)[2] p <- dim(mE)[1] mS <- mE %*% t(mE)/n rcov <- rho * mT + (1-rho) * scfac * mS if(invert) { if(p > n) { nu <- (1-rho) * scfac mU <- mE/sqrt(n) inv_rcov <- .InvSMW(rho=rho, mT=mT, nu=nu, mU=mU) }else { inv_rcov = chol2inv(chol(rcov)) } return(list(rho=rho, mT=mT, cov=mS, rcov=rcov, inv_rcov=inv_rcov)) } else return(list(rho=rho, mT=mT, cov=mS, rcov=rcov)) } ## Compute inverse of covariance matrix using Sherman-Morrison-Woodbury ## identity when dimension is larger than sample size # # input: # rho: the regularization parameter # mT: the target matrix # nu: the scaling factor multiplied with (1-rho) # mU: the scaled data # output: # the inverse of the covariance matrix .InvSMW <- function(rho, mT, nu, mU) { p = dim(mT)[1] pp = dim(mU) vD = sqrt(diag(mT)) imD = diag(vD^(-1)) R = imD %*% mT %*% imD constcor = R[2, 1] I = diag(1, p) J = matrix(1, p, p) imR = 1/(1-constcor) * (I - constcor/(1 + (p-1) * constcor) * J) imB = (rho)^(-1) * imD %*% imR %*% imD Temp <- base::chol2inv(base::chol(diag(pp[2]) + nu * (t(mU) %*% (imB %*% mU)))) return(imB - (imB%*%mU) %*% (nu * Temp) %*% (t(mU)%*%imB)) } # Apply generalized C-steps to obtain optimal subset # input: # mX: the p by T matrix of the residuals or data, not necessarily demeaned # rho: the regularization parameter # mT: the target matrix # target: structure of the robust positive definite target matrix (default=1) # 0: identity matrix # 1: non-diagonal matrix with an equicorrelation structure (see (17) in paper) # vMu: the initial mean (as vector) # mIS: the p by p matrix of the initial inverted covariance # h: the size of the subset OR alpha: the proportion of the contamination # maxcsteps: the maximal number of iteration of the C-step algorithm # index: the initial subset H_0 # output (a list) # index: the optimal h-subset # numit: the number of iterations # mu: the vector with means # cov: the regularized covariance estimate # icov: the inverse of the regularized covariance matrix # rho: the regularization parameter # mT: the target matrix # dist: the Mahalanobis distances using the MRCD estimates # scfac: the scaling factor .cstep_mrcd <- function(mX, rho=NULL, mT=NULL, target=1, vMu=NULL, mIS=NULL, h, scfac, index=NULL, maxcsteps=50) { n <- dim(mX)[2] p <- dim(mX)[1] # random choice if(is.null(index)) index <- sample(1:n, h) # if no index is given we sample one... XX <- mX[, index] # p x h if(is.null(vMu)) vMu = rowMeans(XX) if(is.null(mIS)){ ret = .RCOV(XX=XX, vMu=vMu, rho=rho, mT=mT, scfac=scfac, target=target, invert=T) mIS = ret$inv_rcov } vdst = diag(t(mX-vMu) %*% (mIS %*% (mX-vMu))) #vdst = apply(mX-vMu,2,ftmp) index = sort(sort.int(vdst, index.return=T)$ix[1:h]) iter = 1 while(iter < maxcsteps){ XX <- mX[,index] vMu <- rowMeans(XX) ret <- .RCOV(XX=XX, vMu=vMu, rho=rho, mT=mT, target=target, scfac=scfac, invert=T) mIS <- ret$inv_rcov vdst <- diag(t(mX-vMu) %*% (mIS %*% (mX-vMu))) nndex <- sort(sort.int(vdst,index.return=T)$ix[1:h]) if(all(nndex == index)) break index <- nndex iter <- iter+1 } return(list(index=index, numit=iter, mu=vMu, cov=ret$rcov, icov=ret$inv_rcov, rho=ret$rho, mT=ret$mT, dist=vdst, scfac=scfac)) } mX <- t(x) # we want the transposed data matrix ## several parametrs which we do not want toexpose to the user. mindet <- 0 # minimum determinant allowed for target matrix objective <- "geom" # objective function to determine optimal subset, see (3) in paper # 'det': typically one minimizes the determinant of the sample covariance based on the subset # 'geom': p-th root of determinant or standardized generalized variance (for numerical reasons) n <- dim(mX)[2] p <- dim(mX)[1] if(!is.null(h)) alpha <- h/n else if(!is.null(alpha)) h <- ceiling(alpha*n) else stop("Either 'h' (number of observations in a subset) or 'alpha' (proportion of observations) has to be supplied!") if(alpha < 1/2 | alpha > 1) stop("'alpha' must be between 0.5 and 1.0!") ## VT::21.04.2021 - h has to be an integer (a non-integer h will break the sprintf at the end). h <- as.integer(h) # choose objective function to determine optimal subset if (objective == 'det'){ obj <- function(x) det(x) }else if (objective == 'geom'){ obj <- function(x) { det(x)^(1/p) } #geometric mean of eigenvalues } ## 1. Standardize the p variables: compute standardized observations u_i, see (6) in paper, using median and Qn estimator vmx <- apply(mX, 1, median) vsd <- apply(mX, 1, Qn) vsd[vsd < minscale] <- minscale Dx <- diag(vsd) mU <- scale(t(mX), center=vmx, scale=vsd) mX <- t(mU) mT <- .TargetCorr(mX, target=target, mindet=mindet) ## 2. Perform singular value decomposition of target matrix and compute observations w_i if(target == 1){ mTeigen <- eigenEQ(mT) mQ <- mTeigen$vectors mL <- diag(mTeigen$values) msqL <- diag(sqrt(mTeigen$values)) misqL <- diag(sqrt(mTeigen$values)^(-1)) mW <- mU %*% mQ %*% misqL mX <- t(mW) } mT = diag(p) ## 3.1-3.2 Follow Hubert et al. (2012) to obtain 6 initial ## scatter matrices (if scatter matrix is not invertible, ## use its regularized version) ## 3.3 Determine subsets with lowest Mahalanobis distance ## Assume that 'hsets.init' already contains h-subsets: the first h observations each ## VT::15.11.2019 - added adjust.eignevalues=FALSE, this will set automatically full.h=FALSE if(is.null(hsets.init)) { hsets.init <- r6pack(x=t(mX), h=h, full.h=FALSE, adjust.eignevalues=FALSE, scaled=FALSE, scalefn=Qn) dh <- dim(hsets.init) } else { ## user specified, (even just *one* vector): if(is.vector(hsets.init)) hsets.init <- as.matrix(hsets.init) dh <- dim(hsets.init) if(dh[1] < h || dh[2] < 1) stop("'hsets.init' must be a h' x L matrix (h' >= h) of observation indices") if(full.h && dh[1] != n) warning("'full.h' is true, but 'hsets.init' has less than n rows") if(min(hsets.init) < 1 || max(hsets.init) > n) stop("'hsets.init' must be in {1,2,...,n}; n = ", n) } hsets.init <- hsets.init[1:h, ] scfac <- .MCDcons(p, h/n) # for consistency with MCD ## 3.4 Determine smallest value of rho_i for each subset rho6pack <- condnr <- c() nsets <- ncol(hsets.init) if(is.null(rho)) { for(k in 1:nsets){ mXsubset <- mX[ , hsets.init[, k]] vMusubset <- rowMeans(mXsubset) mE <- mXsubset-vMusubset mS <- mE%*%t(mE)/(h-1) if(all(mT == diag(p))) { veigen <- eigen(scfac * mS)$values e1 <- min(veigen) ep <- max(veigen) ## cat("\ncase T=I: ", k, e1, ep) fncond <- function(rho) { condnr <- (rho + (1-rho) * ep) / (rho + (1-rho) * e1) ## cat("\n ...... condnr: ", condnr, condnr-maxcond, "\n") return(condnr - maxcond) } } else { fncond <- function(rho) { rcov <- rho*mT + (1-rho) * scfac * mS temp <- eigen(rcov)$values condnr <- max(temp) / min(temp) return(condnr - maxcond) } } out <- try(uniroot(f=fncond, lower=0.00001, upper=0.99), silent=TRUE) ## VT::11.08.2022: fix error "Found if() conditions comparing class() to string" ## if(class(out) != "try-error") { if(!is(out, "try-error")) { rho6pack[k] <- out$root ## cat("\nOK: ", k, out$root, "\n") }else { grid <- c(0.000001, seq(0.001, 0.99, by=0.001), 0.999999) if(all(mT == diag(p))) { objgrid <- abs(fncond(grid)) irho <- min(grid[objgrid == min(objgrid)]) }else { objgrid <- abs(apply(as.matrix(grid), 1, "fncond")) irho <- min(grid[objgrid == min(objgrid)]) } rho6pack[k] <- irho ## cat("\nNOT OK: ", k, irho, "\n") } } ## 3.5 Set rho as max of the rho_i's obtained for each subset in previous step cutoffrho <- max(c(0.1, median(rho6pack))) rho <- max(rho6pack[rho6pack <= cutoffrho]) if(trace) { cat("\nSet rho as max of the rho_i obtained for each subset in previous step.") cat("\nrho, cutoffrho=", rho, cutoffrho, "\n") print(rho6pack) } Vselection <- seq(1, nsets) Vselection[rho6pack > cutoffrho] = NA if(sum(!is.na(Vselection)) == 0){ stop("None of the initial subsets is well-conditioned") } initV <- min(Vselection, na.rm=TRUE) setsV <- Vselection[!is.na(Vselection)] setsV <- setsV[-1] }else{ setsV <- 1:ncol(hsets.init) initV <- 1 } ## 3.6 For each of the six initial subsets, repeat the generalized ## C-steps (from Theorem 1) until convergence ## ## 3.7 Choose final subset that has lowest determinant among the ## ones obtained from the six initial subsets hset.csteps <- integer(nsets) ret <- .cstep_mrcd(mX=mX, rho=rho, mT=mT, target=target, h=h, scfac=scfac, index=hsets.init[, initV], maxcsteps=maxcsteps) objret <- obj(ret$cov) hindex <- ret$index best6pack <- initV for(k in setsV){ if(trace) { if(trace >= 2) cat(sprintf("H-subset %d = observations c(%s):\n-----------\n", k, paste(hsets.init[1:h, k], collapse=", "))) else cat(sprintf("H-subset %d: ", k)) } tmp <- .cstep_mrcd(mX=mX, rho=rho, mT=mT, target=target, h=h, scfac=scfac, index=hsets.init[,k], maxcsteps=maxcsteps) objtmp <- obj(tmp$cov) hset.csteps[k] <- tmp$numit if(trace) cat(sprintf("%3d csteps, obj=log(det|.|)=%g", k, objtmp)) if(objtmp < objret){ if(trace) cat(" = new optim.\n") ret <- tmp objret <- objtmp hindex <- tmp$index best6pack <- k } else if(objtmp == objret) # store as well best6pack <- c(best6pack, k) else if(trace) cat("\n") } c_alpha <- ret$scfac #scaling factor mE <- mX[, hindex] - ret$mu weightedScov <- mE %*% t(mE)/(h-1) D <- c_alpha * diag(1, p) ## MRCD estimates of the standardized data W (inner part of (12) in paper) MRCDmu = rowMeans(mX[,hindex]) MRCDcov = rho*mT + (1-rho) * c_alpha * weightedScov ## Computing inverse of scaled covariance matrix, using SMW identity ## if data is fat (inner part of (14) and (15) in paper). if(p > n & target <= 1){ # !!!! formula InvSMW is used when T is equicorrelation nu <- (1-rho) * c_alpha mU <- mE/sqrt(h-1) iMRCDcov <- .InvSMW(rho=rho, mT=mT, nu=nu, mU=mU) }else iMRCDcov <- chol2inv(chol(MRCDcov)) ## Backtransforming the rescaling steps that we applied in ## the beginning (outer part of (11) and (12) in paper) # transformations due to SVD on target matrix if(target == 1) { ##VT::12.12 - corrected the restoration of X after SVD transformation mX <- t(t(mX) %*% msqL %*% t(mQ)) ## mX <- t(t(mX) %*% mQ %*% msqL) MRCDmu <- mQ %*% msqL %*% MRCDmu MRCDcov <- mQ %*% msqL %*% MRCDcov %*% msqL %*% t(mQ) iMRCDcov <- mQ %*% misqL %*% iMRCDcov %*% misqL %*% t(mQ) mT <- mQ %*% msqL %*% mT %*% msqL %*% t(mQ) } # transformations due to rescaling median and Qn mX <- t(t(mX) %*% Dx) + vmx MRCDmu <- Dx %*% MRCDmu + vmx MRCDcov <- Dx %*% MRCDcov %*% Dx mT <- Dx %*% mT %*% Dx iDx <- diag(1/diag(Dx)) iMRCDcov <- iDx %*% iMRCDcov %*% iDx ## Compute the Mahalanobis distances based on MRCD estimates dist <- mahalanobis(t(mX), center=MRCDmu, cov=iMRCDcov, inverted=TRUE) objret <- determinant(MRCDcov)$modulus[1] ret <- list(alpha=alpha, h=h, initmean=as.numeric(MRCDmu), initcovariance=MRCDcov, icov=iMRCDcov, rho=rho, best=hindex, mcdestimate=objret, mah=dist, target=mT, iBest = best6pack, n.csteps=hset.csteps, initHsets=if(save.hsets) hsets.init, calpha=c_alpha ) return (ret) } rrcov/R/PcaCov.R0000644000176200001440000001627314443667016013130 0ustar liggesuserssetMethod("getQuan", "PcaCov", function(obj) obj@n.obs) ## The S3 version PcaCov <- function (x, ...) UseMethod("PcaCov") PcaCov.formula <- function (formula, data = NULL, subset, na.action, ...) { cl <- match.call() mt <- terms(formula, data = data) if (attr(mt, "response") > 0) stop("response not allowed in formula") mf <- match.call(expand.dots = FALSE) mf$... <- NULL mf[[1]] <- as.name("model.frame") mf <- eval.parent(mf) ## this is not a 'standard' model-fitting function, ## so no need to consider contrasts or levels if (.check_vars_numeric(mf)) stop("PCA applies only to numerical variables") na.act <- attr(mf, "na.action") mt <- attr(mf, "terms") attr(mt, "intercept") <- 0 x <- model.matrix(mt, mf) res <- PcaCov.default(x, ...) ## fix up call to refer to the generic, but leave arg name as `formula' cl[[1]] <- as.name("PcaCov") res@call <- cl # if (!is.null(na.act)) { # res$na.action <- na.act # if (!is.null(sc <- res$x)) # res$x <- napredict(na.act, sc) # } res } PcaCov.default <- function(x, k=ncol(x), kmax=ncol(x), cov.control = CovControlMcd(), scale=FALSE, signflip=TRUE, crit.pca.distances=0.975, trace=FALSE, ...) { cl <- match.call() if(missing(x)){ stop("You have to provide at least some data") } data <- as.matrix(x) n <- nrow(data) p <- ncol(data) if(n < p) stop("'PcaCov' can only be used with more units than variables") ## verify and set the input parameters: k and kmax myrank <- rankMM(x) kmax <- max(min(floor(kmax), myrank),1) if((k <- floor(k)) < 0) k <- 0 else if(k > kmax) { warning(paste("The number of principal components k = ", k, " is larger then kmax = ", kmax, "; k is set to ", kmax,".", sep="")) k <- kmax } ###################################################################### ## ## VT::05.08.2016 ## If scale is TRUE/FALSE, this will be handled by .xpc() ## otherwise call the undocumented function doScale() from robustbase - ## it will behave properly and scale can be a vector or a function if(is.null(scale)) scale <- vector('numeric', p) + 1 else if(!is.logical(scale)) { data <- doScale(data, center=NULL, scale=scale) scale <- data$scale data=data$x } ## VT::30.09.2009 - add the option for classic covariance estimates - if cov.control = NULL covx <- if(!is.null(cov.control)) restimate(cov.control, data) else Cov(data) covmat <- list(cov=getCov(covx), center=getCenter(covx), n.obs=covx@n.obs) ## VT::05.06.2016 - the call to princomp() replaced by an internal function ## it will handle the case scale=TRUE and will return also the proper scores out <- .xpc(x, covmat=covmat, scale=scale, signflip=signflip) ## VT::11.28.2015: Choose the number of components k (if not specified) ## (see mail of Klaus Nordhausen from 19.11.2015: the help says that the algorithm defines k) ## before it was just k <- min(kmax, p), i.e. k=rank(X) if(k != 0) k <- min(k, p) else { # k <- min(kmax, p) ## ## Find the number of PC 'k' ## Use the test l_k/l_1 >= 10.E-3, i.e. the ratio of ## the k-th eigenvalue to the first eigenvalue (sorted decreasingly) is larger than ## 10.E/3 and the fraction of the cumulative dispersion is larger or equal 80% ## rk <- min(n, p) ev <- out$sdev^2 test <- which(ev/ev[1] <= 1.E-3) k <- if(length(test) != 0) min(min(rk, test[1]), kmax) else min(rk, kmax) cumulative <- cumsum(ev[1:k])/sum(ev) if(cumulative[k] > 0.8) { k <- which(cumulative >= 0.8)[1] } if(trace) cat("\n k, kmax, rank, p: ", k, kmax, rk, p, "\n") if(trace) cat("The number of principal components is defined by the algorithm. It is set to ", k,".\n", sep="") } center <- getCenter(covx) scale <- out$scale sdev <- out$sdev loadings <- out$loadings[, 1:k, drop=FALSE] eigenvalues <- (sdev^2)[1:k] scores <- out$scores[, 1:k, drop=FALSE] eig0 <- sdev^2 totvar0 <- sum(eig0) ###################################################################### names(eigenvalues) <- NULL if(is.list(dimnames(x))) { rownames(scores) <- rownames(x) # dimnames(scores)[[1]] <- dimnames(data)[[1]] }else dimnames(scores)[[1]] <- 1:n dimnames(scores)[[2]] <- paste("PC", seq_len(ncol(scores)), sep = "") dimnames(loadings) <- list(colnames(data), paste("PC", seq_len(ncol(loadings)), sep = "")) ## fix up call to refer to the generic, but leave arg name as 'formula' cl[[1]] <- as.name("PcaCov") res <- new("PcaCov", call=cl, rank=myrank, loadings=loadings, eigenvalues=eigenvalues, center=center, scale=scale, scores=scores, k=k, n.obs=n, eig0=eig0, totvar0=totvar0) ## Compute distances and flags res <- pca.distances(res, x, p, crit.pca.distances) return(res) } ## A simplified version of princomp() .xpc <- function (x, covmat, scale=FALSE, signflip=FALSE) { ## x is always available and covmat is always a list ## scores is always TRUE (therefore we need x) ## if (any(is.na(match(c("cov", "n.obs"), names(covmat))))) stop("'covmat' is not a valid covariance list") cv <- covmat$cov n.obs <- covmat$n.obs cen <- covmat$center if(!is.numeric(cv)) stop("PCA applies only to numerical variables") cor <- FALSE if(is.logical(scale)) { if(scale) { cor <- TRUE sds <- sqrt(diag(cv)) if(any(sds == 0)) stop("cannot use 'cor = TRUE' with a constant variable") cv <- cv/(sds %o% sds) } } edc <- eigen(cv, symmetric = TRUE) ev <- edc$values if(any(neg <- ev < 0)) { if(any(ev[neg] < -9 * .Machine$double.eps * ev[1L])) stop("covariance matrix is not non-negative definite") else ev[neg] <- 0 } if(signflip) edc$vectors <- .signflip(edc$vectors) cn <- paste0("PC", 1L:ncol(cv)) names(ev) <- cn dimnames(edc$vectors) <- list(dimnames(x)[[2L]], cn) sdev <- sqrt(ev) sc <- setNames(if(cor) sds else if(!is.logical(scale)) scale else rep.int(1, ncol(cv)), colnames(cv)) scr <- as.matrix(doScale(x, center=cen, scale=sc)$x) %*% edc$vectors dimnames(scr) <- list(dimnames(x)[[1L]], cn) edc <- list(sdev=sdev, loadings=structure(edc$vectors, class="loadings"), center=cen, scale=sc, n.obs=n.obs, scores=scr) class(edc) <- "princomp" edc } rrcov/R/transform.R0000644000176200001440000000067614443667016013770 0ustar liggesuserstransform.ilr <- function(x) { x.ilr <- x[, -ncol(x), drop=FALSE] colnames(x.ilr) <- paste("X", 1:ncol(x.ilr), sep="") rownames(x.ilr) <- NULL D <- ncol(x) for (i in 1:ncol(x.ilr)){ x.ilr[,i]=sqrt((D-i)/(D-i+1))*log(((apply(as.matrix(x[,(i+1):D,drop=FALSE]),1,prod))^(1/(D-i)))/(x[,i])) ##x.ilr[,i]=sqrt((D-i)/(D-i+1))*log(apply(as.matrix(x[,(i+1):D]), 1, gm)/(x[,i])) } return(-x.ilr) } rrcov/R/PcaClassic.R0000644000176200001440000001201214443667016013745 0ustar liggesusers##setGeneric("PcaClassic", function(x, ...) standardGeneric("PcaClassic")) ##setMethod("PcaClassic", "formula", PcaClassic.formula) ##setMethod("PcaClassic", "ANY", PcaClassic.default) setMethod("getQuan", "PcaClassic", function(obj) obj@n.obs) ## The S3 version PcaClassic <- function (x, ...) UseMethod("PcaClassic") PcaClassic.formula <- function (formula, data = NULL, subset, na.action, ...) { cl <- match.call() mt <- terms(formula, data = data) if (attr(mt, "response") > 0) stop("response not allowed in formula") mf <- match.call(expand.dots = FALSE) mf$... <- NULL mf[[1]] <- as.name("model.frame") mf <- eval.parent(mf) ## this is not a `standard' model-fitting function, ## so no need to consider contrasts or levels if (.check_vars_numeric(mf)) stop("PCA applies only to numerical variables") na.act <- attr(mf, "na.action") mt <- attr(mf, "terms") attr(mt, "intercept") <- 0 x <- model.matrix(mt, mf) res <- PcaClassic.default(x, ...) ## fix up call to refer to the generic, but leave arg name as `formula' cl[[1]] <- as.name("PcaClassic") res@call <- cl # if (!is.null(na.act)) { # res$na.action <- na.act # if (!is.null(sc <- res$x)) # res$x <- napredict(na.act, sc) # } res } PcaClassic.default <- function(x, k=ncol(x), kmax=ncol(x), scale=FALSE, signflip=TRUE, crit.pca.distances=0.975, trace=FALSE, ...) { cl <- match.call() if(missing(x)){ stop("You have to provide at least some data") } data <- as.matrix(x) n <- nrow(data) p <- ncol(data) Xsvd <- .classPC(data, scale=scale, signflip=signflip, scores=TRUE) if(Xsvd$rank == 0) { stop("All data points collapse!") } myrank <- Xsvd$rank if(is.logical(scale) && !scale) # no scaling, the defult Xsvd$scale <- vector('numeric', p) + 1 if(trace) { cat("\nDimension of the input matrix x:\n", dim(x)) cat("\nInput parameters [k, kmax, rank(x)]: ", k, kmax, Xsvd$rank, "\n") } ## ## verify and set the input parameters: k and kmax ## kmax <- max(min(kmax, Xsvd$rank),1) if((k <- floor(k)) < 0) k <- 0 else if(k > kmax) { warning(paste("The number of principal components k = ", k, " is larger then kmax = ", kmax, "; k is set to ", kmax,".", sep="")) k <- kmax } if(k != 0) k <- min(k, ncol(data)) else { ## k <- min(kmax, ncol(data)) ## if(trace) ## cat("The number of principal components is set to ", k, ".\n", sep="") ## Find the number of PC 'k' ## Use the test l_k/l_1 >= 10.E-3, i.e. the ratio of ## the k-th eigenvalue to the first eigenvalue (sorted decreasingly) is larger than ## 10.E/3 and the fraction of the cumulative dispersion is larger or equal 80% ## test <- which(Xsvd$eigenvalues/Xsvd$eigenvalues[1] <= 1.E-3) k <- if(length(test) != 0) min(min(Xsvd$rank, test[1]), kmax) else min(Xsvd$rank, kmax) cumulative <- cumsum(Xsvd$eigenvalues[1:k])/sum(Xsvd$eigenvalues) if(cumulative[k] > 0.8) { k <- which(cumulative >= 0.8)[1] } if(trace) cat("\n k, kmax, rank, p: ", k, kmax, Xsvd$rank, ncol(data), "\n") if(trace) cat("The number of principal components is defined by the algorithm. It is set to ", k,".\n", sep="") } if(trace) cat("\nTo be used [k, kmax, ncol(data), rank(data)]=",k, kmax, ncol(data), Xsvd$rank, "\n") loadings <- Xsvd$loadings[, 1:k, drop=FALSE] eigenvalues <- as.vector(Xsvd$eigenvalues[1:k]) center <- as.vector(Xsvd$center) scores <- Xsvd$scores[, 1:k, drop=FALSE] scale <- Xsvd$scale eig0 <- as.vector(Xsvd$eigenvalues) totvar0 <- sum(eig0) if(is.list(dimnames(data)) && !is.null(dimnames(data)[[1]])) { dimnames(scores)[[1]] <- dimnames(data)[[1]] } else { dimnames(scores)[[1]] <- 1:n } dimnames(scores)[[2]] <- as.list(paste("PC", seq_len(ncol(scores)), sep = "")) dimnames(loadings) <- list(colnames(data), paste("PC", seq_len(ncol(loadings)), sep = "")) ## fix up call to refer to the generic, but leave arg name as 'formula' cl[[1]] <- as.name("PcaClassic") res <- new("PcaClassic", call=cl, rank=myrank, loadings=loadings, eigenvalues=eigenvalues, center=center, scale=scale, scores=scores, k=k, n.obs=n, eig0=eig0, totvar0=totvar0) ## Compute distances and flags res <- pca.distances(res, data, Xsvd$rank, crit.pca.distances) return(res) } rrcov/R/psifun.R0000644000176200001440000000413714443667016013255 0ustar liggesusers## Internal functions, used for ## computing expectations ## .chiInt <- function(p,a,c1) ## partial expectation d in (0,c1) of d^a under chi-squared p return(exp(lgamma((p+a)/2)-lgamma(p/2))*2^{a/2}*pchisq(c1^2,p+a)) .chiInt2 <- function(p,a,c1) ## partial expectation d in (c1,\infty) of d^a under chi-squared p return(exp(lgamma((p+a)/2)-lgamma(p/2))*2^{a/2}*(1-pchisq(c1^2,p+a)) ) ## ## derivatives of the above functions wrt c1 ## .chiIntD <- function(p,a,c1) return(exp(lgamma((p+a)/2)-lgamma(p/2))*2^{a/2}*dchisq(c1^2,p+a)*2*c1) .chiInt2D <- function(p,a,c1) return(-exp(lgamma((p+a)/2)-lgamma(p/2))*2^{a/2}*dchisq(c1^2,p+a)*2*c1) setMethod("iterM", "PsiFun", function(obj, x, t1, s, eps=1e-3, maxiter=20){ ## M-estimation from starting point (t1, s) for translated ## biweight with median scaling (Rocke & Woodruf (1993)) ## - obj contains the weight function parameters, e.g. ## obj@c1 and obj@M are the constans for the translated ## biweight ## - eps - precision for the convergence algorithm ## - maxiter - maximal number of iterations # x <- as.matrix(x) n <- nrow(x) p <- ncol(x) crit <- 100 iter <- 1 w1d <- w2d <- rep(1,n) while(crit > eps & iter <= maxiter) { t.old <- t1 s.old <- s wt.old <- w1d v.old <- w2d ## compute the mahalanobis distances with the current estimates t1 and s d <- sqrt(mahalanobis(x, t1, s)) # Compute k = sqrt(d[(n+p+1)/2])/M # and ajust the distances d = sqrt(d)/k h <- (n+p+1)%/%2 d <- d*sqrt(qchisq(h/(n+1), p))/(sort(d)[h]) # compute the weights w1d <- wt(obj, d) w2d <- vt(obj, d) ## compute reweighted mean and covariance matrix t1 <- colSums(w1d*x)/sum(w1d) xx <- sqrt(w1d)*sweep(x, 2, t1) s <- p*(t(xx) %*% xx)/sum(w2d) ## check convergence crit <- max(abs(w1d-wt.old))/max(w1d) iter <- iter+1 } return(list(t1=t1, s=s, iter=iter, wt=w1d, vt=w2d)) }) rrcov/R/CovOgk.R0000644000176200001440000001213114443667016013132 0ustar liggesusersCovOgk <- function(x, niter = 2, beta = 0.9, control) { metodo2 <- function(XX) { n <- nrow(XX) p <- ncol(XX) sigma <- apply(XX, 2, mrob)[2,] Y <- XX %*% diag(1/sigma) U <- matrix(1, p, p) for(i in 1:p) for(j in i:p) { U[j, i] <- U[i, j] <- vrob(Y[,i], Y[,j]) } diag(U) <- 1 E <- eigen(U)$vectors A <- diag(sigma) %*% E Z <- Y %*% E restau <- apply(Z, 2, mrob) sigma <- as.vector(restau[2,]) cov <- A %*% diag(sigma^2) %*% t(A) loc <- A %*% restau[1,] list(cov = cov, center = loc, AA = A, ZZ = Z) } ## Analize and validate the input parameters ... ## If a control object was supplied, take the option parameters from it, ## but if single parameters were passed (not defaults) they will override the ## control object. ## The functions 'mrob()' and 'vrob()' can be supplied only via the control ## object. If no control object is passed these function will be taken ## from the default one defcontrol <- CovControlOgk() # default control mrob <- defcontrol@mrob vrob <- defcontrol@vrob smrob <- defcontrol@smrob svrob <- defcontrol@svrob if(!missing(control)){ # a control object was supplied if(niter == defcontrol@niter) niter <- control@niter if(beta == defcontrol@beta) beta <- control@beta mrob <- control@mrob vrob <- control@vrob smrob <- control@smrob svrob <- control@svrob } if(is.data.frame(x)) x <- data.matrix(x) else if (!is.matrix(x)) x <- matrix(x, length(x), 1, dimnames = list(names(x), deparse(substitute(x)))) ## drop all rows with missing values (!!) : na.x <- !is.finite(x %*% rep(1, ncol(x))) ok <- !na.x x <- x[ok, , drop = FALSE] dx <- dim(x) if(!length(dx)) stop("All observations have missing values!") dimn <- dimnames(x) n <- dx[1] p <- dx[2] if(p < 2) stop("Need at least 2 columns ") if(n <= 0) stop("All observations have missing values!") call <- match.call() ## If the user has supplied own mrob and vrob use the pure R version ## with this functions. Otherwise call the C implementation if(!is.null(mrob)){ ## iterate two times to obtain OGK2 first <- metodo2(x) cov <- first$cov center <- as.vector(first$center) ZZ <- first$ZZ if(niter >= 2){ second <- metodo2(first$ZZ) cov <- first$AA %*% second$cov %*% t(first$AA) center <- as.vector(first$AA %*% as.vector(second$center)) ZZ <- second$ZZ } dimnames(cov) <- list(dimn[[2]], dimn[[2]]) names(center) <- dimn[[2]] ## compute distances and weights ## do not invert cov to compute the distances, use the transformed data ## ## dist2 <- mahalanobis(X, center, cov) ## musigma <- apply(ZZ,2,mrob) ZZ <- sweep(ZZ, 2, musigma[1,]) ZZ <- sweep(ZZ, 2, musigma[2,], '/') dist2 <- rowSums(ZZ^2) cdelta <- median(dist2)/qchisq(0.5, p) cov <- cdelta * cov quantiel <- qchisq(beta, p) qq <- (quantiel * median(dist2))/qchisq(0.5, p) wt <- ifelse(dist2 < qq, 1, 0) sum.wt <- sum(wt) } else { if(!(smrob %in% c("scaleTau2", "s_mad"))) stop(paste("Scale function not defined: ", smrob)) if(!(svrob %in% c("gk", "qc"))) stop(paste("Bivariate covariance function not defined: ", svrob)) storage.mode(x) <- "double" opw <- .Call("covOPW", x, as.integer(niter), smrob, svrob) dimnames(opw$cov) <- list(dimn[[2]], dimn[[2]]) names(opw$center) <- dimn[[2]] dist2 <- opw$distances cdelta <- median(dist2)/qchisq(0.5, p) cov <- opw$cov <- cdelta * opw$cov center <- opw$center quantiel <- qchisq(beta, p) qq <- (quantiel * median(dist2))/qchisq(0.5, p) wt <- ifelse(dist2 < qq, 1, 0) sum.wt <- sum(wt) } ## compute the reweighted estimates: OGK2(0.9) wcenter <- colSums(x*wt)/sum.wt X <- sqrt(wt) * sweep(x, 2, wcenter) wcov <- (t(X) %*% X)/sum.wt ## Compute consistency correction factor for the reweighted cov qdelta.rew <- qchisq(sum(wt)/n, p) cdeltainvers.rew <- pgamma(qdelta.rew/2, p/2 + 1)/(sum(wt)/n) cnp2 <- 1/cdeltainvers.rew ## wcov <- cnp2 * wcov method="Orthogonalized Gnanadesikan-Kettenring Estimator" ans <- new("CovOgk", call = call, iter=niter, crit=1, cov=wcov, center=wcenter, n.obs=n, raw.cov=cov, raw.center=center, raw.mah = dist2, raw.wt = wt, X = x, method=method) ans } rrcov/R/Linda.R0000644000176200001440000003213714443667016013001 0ustar liggesusers## The S3 version Linda <- function (x, ...) UseMethod("Linda") Linda.formula <- function(formula, data, ..., subset, na.action) { m <- match.call(expand.dots = FALSE) m$... <- NULL m[[1]] <- as.name("model.frame") m <- eval.parent(m) Terms <- attr(m, "terms") grouping <- model.response(m) x <- model.matrix(Terms, m) xint <- match("(Intercept)", colnames(x), nomatch=0) if(xint > 0) x <- x[, -xint, drop=FALSE] res <- Linda.default(x, grouping, ...) ## res$terms <- Terms ## fix up call to refer to the generic, but leave arg name as 'formula' cl <- match.call() cl[[1]] <- as.name("Linda") res@call <- cl ## res$contrasts <- attr(x, "contrasts") ## res$xlevels <- .getXlevels(Terms, m) ## res$na.action <- attr(m, "na.action") res } Linda.default <- function(x, grouping, prior = proportions, tol = 1.0e-4, method = c("mcd", "mcdA", "mcdB", "mcdC", "fsa", "mrcd", "ogk"), alpha=0.5, l1med=FALSE, cov.control, trace=FALSE, ...) { if(is.null(dim(x))) stop("x is not a matrix") method <- match.arg(method) xcall <- match.call() x <- as.matrix(x) n <- nrow(x) p <- ncol(x) if(length(grouping) == 1) { ## this is the number of groups and the groups are of equal size ng = grouping ni = n/ng if(ng*ni < n) stop("nrow(x) is not divisible by the number of groups") grouping <- rep(0,0) for(i in 1:ng) grouping <- c(grouping, rep(i,ni)) }else if(length(grouping) > 1 && length(grouping) < n) { ## grouping contains a vector with the group sizes ng <- length(grouping) if(sum(grouping) != n) stop("nrow(x) is not equal to n1+n2+...+nn") gx <- rep(0,0) for(i in 1:ng) gx <- c(gx, rep(i,grouping[i])) grouping <- gx } if(n != length(grouping)) stop("nrow(x) and length(grouping) are different") g <- as.factor(grouping) lev <- lev1 <- levels(g) counts <- as.vector(table(g)) if(!missing(prior)) { if(any(prior < 0) || round(sum(prior), 5) != 1) stop("invalid prior") if(length(prior) != nlevels(g)) stop("prior is of incorrect length") prior <- prior[counts > 0] } if(any(counts == 0)) { warning(paste("group(s)", paste(lev[counts == 0], collapse=" "),"are empty")) lev1 <- lev[counts > 0] g <- factor(g, levels=lev1) counts <- as.vector(table(g)) } proportions <- counts/n ng <- length(proportions) names(g) <- NULL names(prior) <- levels(g) if(missing(cov.control)) cov.control <- if(method == "mrcd") CovControlMrcd(alpha=alpha) else if(method == "ogk") CovControlOgk() else if(method %in% c("mcd", "mcdA", "mcdB", "mcdC")) CovControlMcd(alpha=alpha) else NULL if(method == "mcdC" && !inherits(cov.control, "CovControlMcd")) stop("Method 'C' is defined only for MCD estimates!") if(method == "mcdA" && !inherits(cov.control, "CovControlMcd")) stop("Method 'A' is defined only for MCD estimates!") if(method == "mrcd" && !inherits(cov.control, "CovControlMrcd")) stop("Method 'mrcd' is defined only for MRCD estimates!") if(method == "ogk" && !inherits(cov.control, "CovControlOgk")) stop("Method 'ogk' is defined only for OGK estimates!") if(inherits(cov.control, "CovControlMrcd")) method <- "mrcd" if(inherits(cov.control, "CovControlOgk")) method <- "ogk" if(method == "fsa"){ if(nrow(x) > 5000 | ncol(x) > 100) stop("Method 'fsa' can handle at most 5000 cases and 100 variables!") xcov <- .wcovMwcd(x, grouping, alpha=alpha, trace=trace) } else if(method == "mcdA"){ xcov <- .wcovMcd(x, grouping, method="A", cov.control=cov.control) } else if(method == "mcd" || method == "mrcd" || method == "mcdB" || method == "ogk"){ xcov <- .wcovMcd(x, grouping, method="B", l1med=l1med, cov.control=cov.control) } else if(method == "mcdC"){ xcov <- .wcovMcd(x, grouping, method="C", l1med=l1med, cov.control=cov.control) } else { stop(paste("Unknown method called: ", method)) } ## VT::27.11.2019 ## inv <- solve(xcov$wcov) inv <- if(!is.null(xcov$winv)) xcov$winv else if(!.isSingular(xcov$wcov)) solve(xcov$wcov) else .pinv(xcov$wcov) ldf <- xcov$means %*% inv ldfconst <- diag(log(prior) - ldf %*% t(xcov$means)/2) if(!is.null(xcov$raw.means) && !is.null(xcov$raw.wcov)){ raw.means <- xcov$raw.means raw.wcov <- xcov$raw.wcov ## inv <- solve(raw.wcov) inv <- if(!.isSingular(raw.wcov)) solve(raw.wcov) else .pinv(raw.wcov) raw.ldf <- raw.means %*% inv raw.ldfconst <- diag(log(prior) - raw.ldf %*% t(raw.means)/2) }else{ raw.means <- xcov$means raw.wcov <- xcov$wcov raw.ldf <- ldf raw.ldfconst <- ldfconst } return (new("Linda", call=xcall, prior=prior, counts=counts, center=xcov$means, cov=xcov$wcov, ldf = ldf, ldfconst = ldfconst, method=method, l1med=l1med, X=x, grp=g, covobj=xcov$covobj, control=cov.control)) } .wcovMcd <- function(x, grouping, method = c("A", "B", "C"), alpha=0.5, l1med=FALSE, cov.control){ xcall <- match.call() method <- match.arg(method) x <- as.matrix(x) n <- nrow(x) p <- ncol(x) dimn <- dimnames(x) if(!is.factor(g <- grouping)) g <- as.factor(grouping) lev <- levels(g) counts <- as.vector(table(g)) if(any(counts == 0)) { stop(paste("group(s)", paste(lev[counts == 0], collapse=" "),"are empty")) } ng <- length(counts/n) # compute group means and covariance matrices for each group mX <- matrix(0,ng,p) covX <- array(0,c(p,p,ng)) sumwt <- array(0,ng) raw.mX <- matrix(0,ng,p) raw.covX <- array(0,c(p,p,ng)) raw.sumwt <- array(0,ng) if(method == "A" | !l1med) { for(i in 1:ng){ mcd <- if(!is.null(cov.control)) restimate(cov.control, x[which(g == lev[i]),]) else Cov(x[which(g == lev[i]),]) mX[i,] <- getCenter(mcd) if(inherits(mcd, "CovMcd")) { sumwt[i] <- sum(mcd@wt) covX[,,i] <- getCov(mcd) * sumwt[i] raw.mX[i,] <- mcd@raw.center raw.sumwt[i] <- length(mcd@best) raw.covX[,,i] <- mcd@raw.cov * raw.sumwt[i] } } } else { for(i in 1:ng){ mX[i,] <- l1median(x[which(g == lev[i]),]) } } if(method == "A"){ #Method A: pool the covariance matrices wcov <- matrix(0,p,p) for(i in 1:ng){ wcov <- wcov + covX[,,i] } wcov <- wcov/(sum(sumwt)-ng) final.xcov <- list(wcov=wcov, means=mX, covobj=NULL) ## pool the raw estimates wcov <- matrix(0,p,p) for(i in 1:ng){ wcov <- wcov + raw.covX[,,i] } wcov <- wcov/(sum(raw.sumwt)-ng) mX <- raw.mX mah <- mahalanobis(x-mX[g,], rep(0,p), wcov) weights <- ifelse(mah< qchisq(0.975, p), 1, 0) method <- "mcd-A" }else if(method == "B"){ #Method B: center the data and compute the covariance matrix #of the centered data mcd <- if(!is.null(cov.control)) restimate(cov.control, x - mX[g,]) else Cov(x - mX[g,]) winv <- if("icov" %in% slotNames(mcd)) mcd@icov else NULL final.xcov <- list(wcov=getCov(mcd), winv=winv, means=t(t(mX)+getCenter(mcd)), covobj=mcd) if(inherits(mcd, "CovMcd")) { wcov <- mcd@raw.cov mX <- t(t(mX)+mcd@raw.center) mah <- mcd@raw.mah weights <- mcd@raw.wt }else { wcov <- getCov(mcd) mX <- t(t(mX)+getCenter(mcd)) mah <- weights <- NULL } method <- "mcd-B" }else if(method == "C"){ ## Method C is more or less the same as Method B, but the means ## are computed as the means of the Hi observations from mcd$best ## and the covariance matrix is the raw.cov ## ## Center the data and compute the means and covariance matrix ## of the centered data as in Method B mcd <- restimate(cov.control, x - mX[g,]) ## compute the group means as the means of these observations which are in ## mcd@best, i.e. in case of two groups, if H=best ## partition H in H1 and H2 and compute mi as the mean of the Hi observations ## respectively. ## Take the raw covariance matrix as within group cov for(i in 1:ng){ tmpc <- cov.wt(as.matrix(x[mcd@best[which(mcd@best%in% which(g == lev[i]))],])) mX[i,] <- tmpc$center } wcov <- mcd@raw.cov mah <- mahalanobis(x-mX[g,], rep(0,p), wcov) weights <- ifelse(mah< qchisq(0.975, p), 1, 0) final.xcov <- .wcov.wt(x, g, weights) method <- "mcd-C" }else{ stop("Unknown method specified: ", method) } dimnames(wcov) <- list(dimn[[2]], dimn[[2]]) dimnames(mX) <- list(levels(g), dimn[[2]]) dimnames(final.xcov$wcov) <- list(dimn[[2]], dimn[[2]]) dimnames(final.xcov$means) <- list(levels(g), dimn[[2]]) ans <- list(call=xcall, means=final.xcov$means, wcov=final.xcov$wcov, winv=final.xcov$winv, method=method, raw.means=mX, raw.wcov=wcov, raw.mah=mah, raw.wt=weights, covobj=final.xcov$covobj) class(ans) <- "wcov" return(ans) } .wcovMwcd <- function(x, grouping, alpha=0.5, trace=0){ quan.f <- function(alpha, n, rk) { quan <- floor(2 * floor((n+rk+1)/2) - n + 2 * (n - floor((n+rk+1)/2)) * alpha) return(quan) } xcall <- match.call() x <- as.matrix(x) n <- nrow(x) p <- ncol(x) quan <- quan.f(alpha, n, p) dimn <- dimnames(x) if(!is.factor(g <- grouping)) g <- as.factor(grouping) lev <- levels(g) counts <- as.vector(table(g)) if(any(counts == 0)) { stop(paste("group(s)", paste(lev[counts == 0], collapse=" "),"are empty")) } ng <- length(counts/n) grouping <- as.integer(g) # transpose x, as necessary for the FSADA subroutine X <- t(x) storage.mode(X) <- "double" storage.mode(n) <- "integer" storage.mode(p) <- "integer" storage.mode(ng) <- "integer" # NG storage.mode(grouping) <- "integer" # IGRP xmean <- matrix(0, nrow = p * ng, ncol = 1) # XM storage.mode(xmean) <- "double" xcov <- matrix(0, nrow = p * p, ncol = 1) # XC storage.mode(xcov) <- "double" storage.mode(counts) <- "double" # XND storage.mode(quan) <- "integer" # IHALF nsamp <- 0 storage.mode(nsamp) <- "integer" # NIT inbest <- matrix(10000, nrow = quan, ncol = 1) # IDSAV storage.mode(inbest) <- "integer" seed <- 0 storage.mode(seed) <- "integer" # MRAND deter <- 0 # DETC storage.mode(deter) <- "double" ierr <- 0 # IERR storage.mode(ierr) <- "integer" mwcd <- .Fortran("fsada", X, n, p, ng, grouping, xmean = xmean, xcov = xcov, counts, quan, nsamp, best = inbest, seed, ierr = ierr, detc = deter, itrace=as.integer(trace), PACKAGE="rrcov") xcov <- mwcd$xcov xmean <- mwcd$xmean dim(xcov) <- c(p, p) dim(xmean) <- c(p,ng) xmean <- t(xmean) dimnames(xcov) <- list(dimn[[2]], dimn[[2]]) dimnames(xmean) <- list(levels(g), dimn[[2]]) ## Compute the consistency correction factor for the raw MCD ## (see calfa in croux and haesbroeck) qalpha <- qchisq(quan/n, p) calphainvers <- pgamma(qalpha/2, p/2 + 1)/(quan/n) calpha <- 1/calphainvers correct <- 1 if(p == 1) { scale <- sqrt(calpha) * as.double(xcov) * sqrt(correct) }else { ## Apply correction factor to the raw estimates and use them to compute weights xcov <- calpha * xcov * correct mah <- mahalanobis(x-xmean[g,], rep(0,p), xcov) weights <- ifelse(mah< qchisq(0.975, p), 1, 0) final.cov <- .wcov.wt(x, g, weights) } ans <- list(call=xcall, raw.means=xmean, raw.wcov=xcov, raw.mah=mah, raw.wt=weights, means=final.cov$means, wcov=final.cov$wcov, covobj=NULL) class(ans) <- "wcov" return(ans) } rrcov/R/CovMest.R0000644000176200001440000000467514443667016013340 0ustar liggesusersCovMest <- function(x, r = 0.45, arp = 0.05, eps=1e-3, maxiter=120, control, t0, S0, initcontrol) { ## Analize and validate the input parameters ... ## if a control object was supplied, take the option parameters from it, ## but if single parameters were passed (not defaults) they will override the ## control object. if(!missing(control)){ defcontrol <- new("CovControlMest") # default control if(r == defcontrol@r) r <- control@r if(arp == defcontrol@arp) arp <- control@arp if(eps == defcontrol@eps) eps <- control@eps if(maxiter == defcontrol@maxiter) maxiter <- control@maxiter } if(is.data.frame(x)) x <- data.matrix(x) else if (!is.matrix(x)) x <- matrix(x, length(x), 1, dimnames = list(names(x), deparse(substitute(x)))) ## drop all rows with missing values (!!) : na.x <- !is.finite(x %*% rep(1, ncol(x))) ok <- !na.x x <- x[ok, , drop = FALSE] dx <- dim(x) if(!length(dx)) stop("All observations have missing values!") dimn <- dimnames(x) n <- dx[1] p <- dx[2] if(n < 2 * p) stop("Need at least 2*(number of variables) observations ") call <- match.call() method <- "M-Estimates" ## If not provided initial estimates, compute them as MVE ## Take the raw estimates and standardise the covariance ## matrix to determinant=1 if(missing(t0) || missing(S0)){ if(missing(initcontrol)) init <- CovMve(x) else init <- restimate(initcontrol, x) cl <- class(init) if(cl == "CovMve" || cl == "CovMcd" || cl == "CovOgk"){ t0 <- init@raw.center S0 <- init@raw.cov detS0 <-det(S0) detS02 <- detS0^(1.0/p) S0 <- S0/detS02 } else{ t0 <- init@center S0 <- init@cov } } ## calculate the constants M and c ## for the translated biweight function psix <- new("PsiBwt", n=n, p=p, r=r, alpha=arp) psix <- csolve(psix) mest <- iterM(psix, x, t0, S0, eps=eps, maxiter=maxiter) mah <- mahalanobis(x, mest$t1, mest$s) crit <- determinant(mest$s, logarithm = FALSE)$modulus[1] new("CovMest", call=call, cov=mest$s, center=mest$t1, n.obs=n, mah=mah, method=method, X=x, iter=mest$iter, crit=crit, wt=mest$wt, vt=mest$vt) } rrcov/R/CovClassic.R0000644000176200001440000001005314443667016013774 0ustar liggesusers## Just a shortcut and for competability with older versions ## same as CovClassic() ## Cov <- function(x, unbiased = TRUE) { return (CovClassic(x, unbiased)) } CovClassic <- function(x, unbiased = TRUE) { if(is.data.frame(x)) x <- data.matrix(x) else if(!is.matrix(x)) x <- matrix(x, length(x), 1, dimnames = list(names(x), deparse(substitute(x)))) ## drop all rows with missing values (!!) : na.x <- !is.finite(x %*% rep(1, ncol(x))) ok <- !na.x x <- x[ok, , drop = FALSE] dx <- dim(x) if(!length(dx)) stop("All observations have missing values!") dimn <- dimnames(x) n <- dx[1] p <- dx[2] ## if(n < p) ## stop("Need at least p=(number of variables) observations ") if(n <= 0) stop("All observations have missing values!") call = match.call() method = "Classical Estimator." ans <- cov.wt(x) nobs <- nrow(x) if(!unbiased) ans$cov <- (ans$cov * (nobs-1))/nobs new("CovClassic", call=call, cov=ans$cov, center=ans$center, n.obs=ans$n.obs, method=method, X=x) } ## VT::17.06.2008 ##setMethod("plot", "CovClassic", function(x, y="missing", setMethod("plot", signature(x="CovClassic", y="missing"), function(x, y="missing", which=c("all", "distance", "qqchi2", "tolEllipsePlot", "screeplot", "pairs"), ask = (which=="all" && dev.interactive(TRUE)), cutoff, id.n, tol = 1e-7, ...) { data <- getData(x) ## parameters and preconditions if(is.vector(data) || is.matrix(data)) { if(!is.numeric(data)) stop( "x is not a numeric dataframe or matrix.") } else if(is.data.frame(data)) { if(!all(sapply(data,data.class) == "numeric")) stop( "x is not a numeric dataframe or matrix.") } n <- dim(data)[1] p <- dim(data)[2] if(length(getCenter(x)) == 0 || length(getCov(x)) == 0) stop( "Invalid object: attributes center and cov missing!") if(length(getCenter(x)) != p) stop( "Data set and provided center have different dimensions!") ## Check for singularity of the cov matrix if(isSingular(x)) stop("The covariance matrix is singular!") if(missing(cutoff)) cutoff <- sqrt(qchisq(0.975, p)) if(!missing(id.n) && !is.null(id.n)) { id.n <- as.integer(id.n) if(id.n < 0 || id.n > n) stop(sQuote("id.n")," must be in {1,..,",n,"}") } ccov <- x rd <- md <- sqrt(getDistance(x)) which <- match.arg(which) op <- if (ask) par(ask = TRUE) else list() on.exit(par(op)) ## index plot of mahalanobis distances if(which == "all" || which == "distance") { .mydistplot(md, cutoff, classic=TRUE, id.n=id.n, ...) } ## qq-plot of the mahalanobis distances versus the ## quantiles of the chi-squared distribution if(which == "all" || which == "qqchi2") { .qqplot(md, p, cutoff=cutoff, classic=TRUE, id.n=id.n, ...) } if(which == "all" || which == "tolEllipsePlot") { if(p == 2) .tolellipse(ccov = x, cutoff=cutoff, id.n=id.n, tol=tol, ...) else if(which != "all") warning("Warning: For tolerance ellipses the dimension must be 2!") } if(which == "tolEllipsePlot" || which == "pairs") { if(which == "tolEllipsePlot" & length(dim(data)) >= 2 && dim(data)[2] == 2){ if(!is.null(rd)){ .tolellipse(rcov=x, cutoff=cutoff, id.n=id.n, tol=tol, ...) } }else if(length(dim(data)) >= 2 && dim(data)[2] <= 10) { .rrpairs(x, ...) }else if(which != "all") warning("Warning: For tolerance ellipses the dimension must be less than 10!") } if(which == "all" || which == "screeplot") { myscreeplot(ccov=x) } }) ## end { plot("CovClassic") } rrcov/R/CovControl.R0000644000176200001440000001070014443667016014032 0ustar liggesusersCovControlMcd <- function (alpha=0.5, nsamp=500, scalefn=NULL, maxcsteps=200, seed=NULL, trace=FALSE, use.correction=TRUE) { new("CovControlMcd", alpha = alpha, nsamp = nsamp, scalefn=scalefn, maxcsteps=maxcsteps, seed = seed, trace = trace, use.correction = use.correction) } setMethod("restimate", "CovControlMcd", function(obj, x, ...) CovMcd(x, control = obj, ...) ) CovControlMrcd <- function (alpha=0.5, h=NULL, maxcsteps=200, rho=NULL, target=c("identity", "equicorrelation"), maxcond=50, trace=FALSE) { new("CovControlMrcd", alpha = alpha, h=h, maxcsteps=maxcsteps, rho=rho, target=match.arg(target), maxcond=maxcond, trace = trace) } setMethod("restimate", "CovControlMrcd", function(obj, x, ...) CovMrcd(x, control = obj, ...) ) CovControlMest <- function (r = 0.45, arp = 0.05, eps=1e-3, maxiter=120 ) { new("CovControlMest", r = r, arp = arp, eps=eps, maxiter=maxiter) } setMethod("restimate", "CovControlMest", function(obj, x, ...) CovMest(x, control = obj, ...) ) CovControlOgk <- function (niter=2, beta=0.90, mrob=NULL, vrob=.vrobGK, smrob="scaleTau2", svrob="gk" ) { new("CovControlOgk", niter=niter, beta=beta, mrob=mrob, vrob=vrob, smrob=smrob, svrob=svrob) } setMethod("restimate", "CovControlOgk", function(obj, x, ...) CovOgk(x, control = obj, ...) ) CovControlMve <- function (alpha=0.5, nsamp=500, seed=NULL, trace=FALSE) { new("CovControlMve", alpha = alpha, nsamp = nsamp, seed = seed, trace = trace) } setMethod("restimate", "CovControlMve", function(obj, x, ...) CovMve(x, control = obj, ...) ) ## Moved to AllClassess - should precede the definition of class CovMMest, ## since used in the prototype ## ##CovControlSest <- function (bdp=0.5, ## arp=0.1, ## eps=1e-5, ## maxiter=120, ## nsamp=500, ## seed=NULL, ## trace=FALSE, ## tolSolve=1e-14, ## method="sfast") ##{ ## new("CovControlSest", bdp=bdp, arp=arp, eps=eps, maxiter=maxiter, ## nsamp=nsamp, seed=seed, trace=trace, tolSolve=tolSolve, method=method) ##} ## setMethod("restimate", "CovControlSest", function(obj, x, ...) CovSest(x, control = obj, ...) ) CovControlSde <- function (nsamp=0, maxres=0, tune=0.95, eps=0.5, prob=0.99, seed=NULL, trace=FALSE, tolSolve=1e-14) { new("CovControlSde", nsamp=nsamp, maxres=maxres, tune=tune, eps=eps, prob=prob, seed=seed, trace=trace, tolSolve=tolSolve) } setMethod("restimate", "CovControlSde", function(obj, x, ...) CovSde(x, control = obj, ...) ) CovControlMMest <- function (bdp=0.5, eff=0.95, maxiter=50, sest=CovControlSest(), trace=FALSE, tolSolve=1e-7) { new("CovControlMMest", bdp=bdp, eff=eff, maxiter=maxiter, sest=sest, trace=trace, tolSolve=tolSolve) } setMethod("restimate", "CovControlMMest", function(obj, x, ...) CovMMest(x, control = obj, ...) ) rrcov/R/datadoc.R0000644000176200001440000002154314443667016013350 0ustar liggesusers###### ## VT::03.08.2019 ## ## ## roxygen2::roxygenise("c:/Users/valen/OneDrive/MyRepo/R/rrcov", load_code=roxygen2:::load_installed, clean=TRUE) ## #' #' #' #' Computer Hardware #' #' A data set containing relative CPU performance data of 209 machines on 8 variables. #; The \code{rownames} are the vendor and model descriptions. Six of the variables #' are predictive, one (\code{PRP}) is the goal field and one (\code{ERP}) is the #' linear regression's guess. The estimated relative performance values were #' estimated by the authors using a linear regression method. See their article #' (Ein-Dor and Feldmesser, CACM 4/87, pp 308-317) for more details on how the #' relative performance values were set. #' #' @name machines #' @docType data #' @usage data(machines) #' @format A data frame with 209 rows and 8 variables #' The variables are as follows: #' #' \itemize{ #' \item MMIN: minimum main memory in kilobytes (integer) #' \item MMAX: maximum main memory in kilobytes (integer) #' \item CACH: cache memory in kilobytes (integer) #' \item CHMIN: minimum channels in units (integer) #' \item CHMAX: maximum channels in units (integer) #' \item PRP: published relative performance (integer) #' \item ERP: estimated relative performance from the original article (integer) #' } #' #' @source \href{http://archive.ics.uci.edu/ml/datasets/Computer+Hardware?ref=datanews.io}{UCI Archive} #' #' @references #' Phillip Ein-Dor and Jacob Feldmesser (1987), Attributes of the performance #' of central processing units: A relative performance prediction model, #' \emph{Communications of the ACM}, \bold{30}, 4, pp 308-317. #' #' M. Hubert, P. J. Rousseeuw and T. Verdonck (2009), Robust PCA for skewed data and #' its outlier map, \emph{Computational Statistics & Data Analysis}, \bold{53}, 2264--2274. #' #' #' @examples #' #' data(machines) #' #' ## Compute the medcouple of each variable of the Computer hardware data #' data.frame(MC=round(apply(machines, 2, mc),2)) #' #' ## Plot a pairwise scaterplot matrix #' pairs(machines[,1:6]) #' #' mcd <- CovMcd(machines[,1:6]) #' plot(mcd, which="pairs") #' #' ## Remove the rownames (too long) #' rownames(machines) <- NULL #' #' ## Start with robust PCA based on MCD (P << n) #' (pca1 <- PcaHubert(machines, k=3)) #' plot(pca1, main="ROBPCA-MCD", off=0.03) #' #' ## PCA with the projection algoritm of Hubert #' (pca2 <- PcaHubert(machines, k=3, mcd=FALSE)) #' plot(pca2, main="ROBPCA-SD", off=0.03) #' #' ## PCA with the adjusted for skewness algorithm of Hubert et al (2009) #' (pca3 <- PcaHubert(machines, k=3, mcd=FALSE, skew=TRUE)) #' plot(pca3, main="ROBPCA-AO", off=0.03) #' #' @keywords datasets NULL #' #' Skull dimensions of the wolf \emph{Canis lupus} L. #' #' A data set containing skull morphometric measurements on Rocky Mountain #' and Arctic wolves (\emph{Canis Lupus L.}). The tdata are published in Morrison (1990), #' originally from Jolicoeur (1959). #' #' @name wolves #' @docType data #' @usage data(wolves) #' @format A data frame with 25 rows and 12 variables. #' The variables are as follows (all measurements are in milimeters): #' #' \itemize{ #' \item \code{class}: a factor presenting the combinations of \code{location} #' and \code{sex}. The levels are \code{arf} \code{arm} \code{rmf} and \code{rmm} #' \item \code{location}: a factor with levels \code{ar}=Arctic, \code{rm}=Rocky Mountain #' \item \code{sex}: a factor with levels \code{f}=female, \code{m}=male #' \item \code{x1}: palatal length #' \item \code{x2}: postpalatal length #' \item \code{x3}: zygomatic width #' \item \code{x4}: palatal width outside first upper molars #' \item \code{x5}: palatal width inside second upper molars #' \item \code{x6}: postglenoid foramina width #' \item \code{x7}: interorbital width #' \item \code{x8}: braincase width #' \item \code{x9}: crown length #' } #' #' @source #' Jolicoeur, P. Multivariate geographical variation in the wolf \emph{Canis lupis L.}, #' \emph{Evolution}, XIII, 283--299. #' #' Morrison, D. F. \emph{Multivariate Statistical Methods}, (3rd ed.), 1990. #' New York: McGraw-Hill, p. 288--289. #' #' @examples #' #' data(wolves) #' #' ## Remove the factors location and sex which we will not use for now #' x <- wolves[,-c(2:3)] #' #' ## Plot a pairwise scaterplot matrix #' pairs(x[,2:10]) #' #' mcd <- CovMcd(x[, 2:10]) #' plot(mcd, which="pairs") #' #' lda <- LdaClassic(class~., data=x) #' lda@center #' lda@cov #' #' predict(lda) #' #' @keywords datasets NULL #' #' Fruit data set #' #' A data set that contains the spectra of six different cultivars of #' the same fruit (cantaloupe - \emph{Cucumis melo} L. Cantaloupensis #' group) obtained from Colin Greensill (Faculty of Engineering and Physical Systems, Central Queensland #' University, Rockhampton, Australia). The total data set contained 2818 spectra measured in 256 wavelengths. #' For illustrative purposes are considered only three cultivars out of it, named D, M and #' HA with sizes 490, 106 and 500, respectively. Thus the data set thus contains 1096 observations. #' For more details about this data set see the references below. #' @name fruit #' @docType data #' @usage data(fruit) #' @format A data frame with 1096 rows and 257 variables (one grouping variable -- \code{cultivar} -- and 256 measurement variables). #' @source #' Colin Greensill (Faculty of Engineering and Physical Systems, Central Queensland #' University, Rockhampton, Australia). #' #' @references #' Hubert, M. and Van Driessen, K., (2004). Fast and robust discriminant analysis. #' \emph{Computational Statistics and Data Analysis}, \bold{45}(2):301--320. #' \doi{10.1016/S0167-9473(02)00299-2}. #' #' Vanden Branden, K and Hubert, M, (2005). Robust classification in high dimensions based on the SIMCA Method. #' \emph{Chemometrics and Intelligent Laboratory Systems}, \bold{79}(1-2), pp. 10--21. #' \doi{10.1016/j.chemolab.2005.03.002}. #' #' Hubert, M, Rousseeuw, PJ and Verdonck, T, (2012). A Deterministic Algorithm for Robust Location and Scatter. #' \emph{Journal of Computational and Graphical Statistics}, \bold{21}(3), pp 618--637. #' \doi{10.1080/10618600.2012.672100}. #' #' @examples #' #' data(fruit) #' table(fruit$cultivar) #' #' @keywords datasets NULL #' Johns Hopkins University Ionosphere database. #' #' ''This radar data was collected by a system in Goose Bay, Labrador. This #' system consists of a phased array of 16 high-frequency antennas with a #' total transmitted power on the order of 6.4 kilowatts. The targets #' were free electrons in the ionosphere. #' "good" radar returns are those showing evidence of some type of structure #' in the ionosphere. "bad" returns are those that do not; their signals pass #' through the ionosphere. #' Received signals were processed using an autocorrelation function whose #' arguments are the time of a pulse and the pulse number. There were 17 #" pulse numbers for the Goose Bay system. Instances in this databse are #' described by 2 attributes per pulse number, corresponding to the complex #' values returned by the function resulting from the complex electromagnetic #' signal.'' [UCI archive] #' #' @name ionosphere #' @docType data #' @usage data(ionosphere) #' @format A data frame with 351 rows and 33 variables: 32 measurements and one #' (the last, \code{Class}) grouping variable: 225 \code{'good'} and 126 \code{'bad'}. #' #' The original dataset at UCI contains 351 rows and 35 columns. The first 34 #' columns are features, the last column contains the classification label of #' 'g' and 'b'. The first feature is binary and the second one is only 0s, #; therefore these two features were removed. We remain with 32 featres and #' one grouping variable - factor with labels 'good' and 'bad'. #' #' @source #' Source: Space Physics Group; Applied Physics Laboratory; Johns Hopkins University; Johns Hopkins Road; Laurel; MD 20723 #' #' Donor: Vince Sigillito (vgs@aplcen.apl.jhu.edu) #' #' The data have been taken from the UCI Repository Of Machine Learning Databases at #' \url{https://archive.ics.uci.edu/ml/datasets/ionosphere} #' #' This data set, with the original 34 features is available in the package \pkg{mlbench} #' and a different data set (refering to the same UCI repository) is available in #' the package \code{dprep} (archived on CRAN). #' @references #' Sigillito, V. G., Wing, S. P., Hutton, L. V., and Baker, K. B. (1989). #' Classification of radar returns from the ionosphere using neural #' networks. Johns Hopkins APL Technical Digest, 10, 262-266. #' @examples #' data(ionosphere) #' ionosphere[, 1:6] |> pairs() NULL rrcov/R/covMest3.R0000644000176200001440000000510714443667016013452 0ustar liggesuserscovMest <- function(x, cor=FALSE, r = 0.45, arp = 0.05, eps=1e-3, maxiter=120, control, t0, S0) { .Deprecated(new="CovMest") ## Analize and validate the input parameters ... ## if a control object was supplied, take the option parameters from it, ## but if single parameters were passed (not defaults) they will override the ## control object. if(!missing(control)){ defcontrol <- rrcov.control() # default control # if(r == defcontrol$r) r <- control$r # if(arp == defcontrol$arp) arp <- control$arp # if(eps == defcontrol$eps) eps <- control$eps # if(maxiter == defcontrol$maxiter) maxiter <- control$maxiter } if(is.data.frame(x)) x <- data.matrix(x) else if (!is.matrix(x)) x <- matrix(x, length(x), 1, dimnames = list(names(x), deparse(substitute(x)))) ## drop all rows with missing values (!!) : na.x <- !is.finite(x %*% rep(1, ncol(x))) ok <- !na.x x <- x[ok, , drop = FALSE] dx <- dim(x) if(!length(dx)) stop("All observations have missing values!") dimn <- dimnames(x) n <- dx[1] p <- dx[2] if(n < 2 * p) stop("Need at least 2*(number of variables) observations ") ans <- list(method = "M-Estimates", call = match.call()) ## If not provided initial estimates, compute them as MVE ## Take the raw estimates and standardise the covariance ## matrix to determinant=1 if(missing(t0) || missing(S0)){ mcd <- CovMve(x) t0 <- mcd@raw.center S0 <- mcd@raw.cov detS0 <-det(S0) detS02 <- detS0^(1.0/p) S0 <- S0/detS02 } ## calculate the constants M and c ## for the translated biweight function psix <- new("PsiBwt", n=n, p=p, r=r, alpha=arp) psix <- csolve(psix) mest <- iterM(psix, x, t0, S0, eps=1e-3, maxiter=maxiter) ## this was the version without OO ##const <- csolve.bt(n, p, r, arp) ##mest <- .iterM(x, t0, S0, const$c1, const$M, eps, maxiter) ans$n.obs <- n ##ans$c1 <- const$c1 ##ans$M <- const$M ans$c1 <- psix@c1 ans$M <- psix@M ans$iter <- mest$iter ans$cov <- mest$s ans$center <- mest$t1 ans$mah <- mahalanobis(x, mest$t1, mest$s) ans$crit <- determinant(mest$s, logarithm = TRUE)$modulus[1] if(cor && !is.null(ans$cov)) cor <- cov2cor(ans$cov) class(ans) <- c("mest", "mcd") attr(ans, "call") <- sys.call() ans$method <- paste("M-Estimator.") ans$X <- x return(ans) } rrcov/R/zzz.R0000644000176200001440000000057314443667016012606 0ustar liggesusers.onAttach <- function(lib, pkg) { where <- match(paste("package:", pkg, sep = ""), search()) ver <- read.dcf(file.path(lib, pkg, "DESCRIPTION"), "Version") ver <- as.character(ver) title <- read.dcf(file.path(lib, pkg, "DESCRIPTION"), "Title") title <- as.character(title) packageStartupMessage(paste(title, " (version ", ver, ")\n", sep = "")) } rrcov/R/adjoutlyingness.R0000644000176200001440000001627714443667016015203 0ustar liggesusers#### -*- mode: R; kept-new-versions: 30; kept-old-versions: 20 -*- #### MC-adjusted Outlyingness #### ------------------------ ### ### Original code from the web site from the Antwerpen Statistics Group : ### http://www.agoras.ua.ac.be/Robustn.htm ### which has a "MC" section and for the software links to ### ftp://ftp.win.ua.ac.be/pub/software/agoras/newfiles/mc.tar.gz ### and that contains mcrsoft/adjoutlyingness.R ##_NEW_ (2014): moved from Antwerpen to Leuwen, ## ===> http://wis.kuleuven.be/stat/robust/software ## has several links to 'robustbase', and S-plus code ## http://wis.kuleuven.be/stat/robust/Programs/adjusted-boxplot/adjusted-boxplot.ssc ## (copy in ../misc/Adjusted-boxplot.ssc ## MM [ FIXME ]: ## ----------- ## 1) Use *transposed* B[] and A[] (now called 'E') matrices -- DONE ## 2) use IQR() instead of quantile(., .75) - quantile(., .25) ##--> but only *after* testing original code ## ^^^^^^^^^^^^^^^^^^^^^^^^ ## VT::02.08.2020 - mc() will not converge in some cases, particularly in ## the new version of PcaHubert() in rrcov, with option for adjustment ## for skewed data. Add a parameter mcfun which defaults to mc, ## but can be replaced by another function, e.g. the mcVT(), given below ## which is secured to non-convergence by tryCatch(). mcVT <- function(x) { result = tryCatch({ suppressWarnings(mc(x)) }, error = function(e) { mc(x, doScale=FALSE) }) result } adjOutlyingness <- function(x, ndir = 250, p.samp = p, clower=4, cupper=3, alpha.cutoff = 0.75, coef = 1.5, qr.tol = 1e-12, keep.tol = 1e-12, only.outlyingness = FALSE, maxit.mult = max(100, p), mcfun=mc, trace.lev = 0) ## Skewness-Adjusted Outlyingness { x <- data.matrix(x) n <- nrow(x) p <- ncol(x) stopifnot(n >= 1, p >= 1, p.samp >= p, is.numeric(x)) if (p <= n) { B <- matrix(0, p, ndir) E <- matrix(1, p, 1) x. <- unname(x) # for speed in subsequent subsetting and solve maxit <- as.integer(maxit.mult * ndir) ## ^^ original code had 'Inf', i.e. no iter.count check; ## often, maxit == ndir would suffice if(trace.lev >= 2) p10 <- 10 ^ max(0, min(6 - trace.lev, floor(log10(maxit)))) i <- 1L it <- 0L while (i <= ndir && (it <- it+1L) < maxit) { P <- x.[sample.int(n, p.samp), , drop=FALSE] if ((qrP <- qr(P, tol = qr.tol))$rank == p) { B[,i] <- solve(qrP, E, tol = qr.tol) if(trace.lev) cat(" it=",it,"; found direction # ", i,"\n", sep="") i <- i+1L } else if(trace.lev >= 2) { if(it %% p10 == 0) cat(" it=",it,": rank(qr(P ..)) = ", qrP$rank, " < p = ",p,"\n", sep="") } } if(it == maxit) { rnk.x <- qr(x, tol = qr.tol)$rank if(rnk.x < p) stop("Matrix 'x' is not of full rank: rankM(x) = ",rnk.x," < p = ",p, "\n Use fullRank(x) instead") ## else stop("** direction sampling iterations were not sufficient. Maybe try increasing 'maxit.mult'") } Bnorm <- sqrt(colSums(B^2)) Nx <- mean(abs(x.)) ## so the comparison is scale-equivariant: keep <- Bnorm*Nx > keep.tol Bnormr <- Bnorm[ keep ] B <- B[, keep , drop=FALSE] A <- B / rep(Bnormr, each = nrow(B)) } else { stop('More dimensions than observations: not yet implemented') ## MM: In LIBRA(matlab) they have it implemented: ## seed=0; ## nrich1=n*(n-1)/2; ## ndirect=min(250,nrich1); ## true = (ndirect == nrich1); ## B=extradir(x,ndir,seed,true); % n*ri ## ======== % Calculates ndirect directions through ## % two random choosen data points from data ## for i=1:size(B,1) ## Bnorm(i)=norm(B(i,:),2); ## end ## Bnormr=Bnorm(Bnorm > 1.e-12); %ndirect*1 ## B=B(Bnorm > 1.e-12,:); %ndirect*n ## A=diag(1./Bnormr)*B; %ndirect*n } Y <- x %*% A # (n x p) %*% (p, nd') == (n x nd'); ## nd' = ndir.final := ndir - {those not in 'keep'} ## Compute and sweep out the median med <- colMedians(Y) Y <- Y - rep(med, each=n) ## central :<==> non-adjusted <==> "classical" outlyingness central <- clower == 0 && cupper == 0 if(!central) ## MM: mc() could be made faster if we could tell it that med(..) = 0 ## VT::02.08.2020 - mc() will not converge in some cases, ## e.g. generate a matrix a <- matrix(rnorm(50*30), nrow=50, ncol=30) ## replace the function mc() by, say mcfun() which will do tryCatch() ## and if it did not converge will retry with doScale=FALSE, this ## works always. ## tmc <- apply(Y, 2, mc) ## original Antwerpen *wrongly*: tmc <- mc(Y) tmc <- apply(Y, 2, mcfun) ## now we can replace the call to the medcouple function mc() ## == Q13 <- apply(Y, 2, quantile, c(.25, .75), names=FALSE) Q1 <- Q13[1L,]; Q3 <- Q13[2L,] IQR <- Q3 - Q1 ## NOTA BENE(MM): simplified definition of tup/tlo here and below ## 2014-10-18: "flipped" sign (which Pieter Setaert (c/o Mia H) proposed, Jul.30,2014: tup <- Q3 + coef* (if(central) IQR else IQR*exp( cupper*tmc*(tmc >= 0) + clower*tmc*(tmc < 0))) tlo <- Q1 - coef* (if(central) IQR else IQR*exp(-clower*tmc*(tmc >= 0) - cupper*tmc*(tmc < 0))) ## Note: all(tlo < med & med < tup) # where med = 0 ## Instead of the loop: ## for (i in 1:ndir) { ## tup[i] <- max(Y[Y[,i] < tup[i], i]) ## tlo[i] <- -min(Y[Y[,i] > tlo[i], i]) ## ## MM: FIXED typo-bug : ^^^ this was missing! ## ## But after the fix, the function stops "working" for longley.. ## ## because tlo[] becomes 0 too often, YZ[.,.] = c / 0 = Inf ! ## } Yup <- Ylo <- Y Yup[!(Y < rep(tup, each=n))] <- -Inf Ylo[!(Y > rep(tlo, each=n))] <- Inf tup <- apply(Yup, 2, max) # = max{ Y[i,] ; Y[i,] < tup[i] } tlo <- -apply(Ylo, 2, min) # = -min{ Y[i,] ; Y[i,] > tlo[i] } tY <- t(Y) ## Note: column-wise medians are all 0 : "x_i > m" <==> y > 0 ## Note: this loop is pretty fast for (j in 1:n) { # when y = (X-med) = 0 ==> adjout = 0 rather than ## 0 / 0 --> NaN; e.g, in set.seed(3); adjOutlyingness(longley) non0 <- 0 != (y <- tY[,j]); y <- y[non0]; I <- (y > 0) tY[non0, j] <- abs(y) / (I*tup[non0] + (1 - I)*tlo[non0]) } ## We get +Inf above for "small n"; e.g. set.seed(11); adjOutlyingness(longley) adjout <- apply(tY, 2, function(x) max(x[is.finite(x)])) if(only.outlyingness) adjout else { Qadj <- quantile(adjout, probs = c(1 - alpha.cutoff, alpha.cutoff)) mcadjout <- if(cupper != 0) mc(adjout) else 0 ## === cutoff <- Qadj[2] + coef * (Qadj[2] - Qadj[1]) * (if(mcadjout > 0) exp(cupper*mcadjout) else 1) list(adjout = adjout, iter = it, ndir.final = sum(keep), MCadjout = mcadjout, Qalph.adjout = Qadj, cutoff = cutoff, nonOut = (adjout <= cutoff)) } } rrcov/R/CovMve.R0000644000176200001440000001636014443667016013151 0ustar liggesusersCovMve <- function(x, alpha=1/2, nsamp=500, seed=NULL, trace=FALSE, control) { use.correction <- FALSE ## Analize and validate the input parameters ... ## if a control object was supplied, take the option parameters from it, ## but if single parameters were passed (not defaults) they will override the ## control object. defcontrol <- CovControlMcd() # default control if(!missing(control)){ if(alpha == defcontrol@alpha) alpha <- control@alpha if(nsamp == defcontrol@nsamp) nsamp <- control@nsamp if(is.null(seed) || seed == defcontrol@seed) seed <- control@seed if(trace == defcontrol@trace) trace <- control@trace } tolSolve <- defcontrol@tolSolve xcall <- match.call() if(length(seed) > 0) { if(exists(".Random.seed", envir=.GlobalEnv, inherits=FALSE)) { seed.keep <- get(".Random.seed", envir=.GlobalEnv, inherits=FALSE) on.exit(assign(".Random.seed", seed.keep, envir=.GlobalEnv)) } assign(".Random.seed", seed, envir=.GlobalEnv) } ## Options "best" and "exact" for nsamp ## nsamp will be further analized in the wrapper .fastmcd() ## VT::31.07.2020 - fix an old bug - MVA cannot handle nsamp="best" or "exact" if(!missing(nsamp) && !is.numeric(nsamp)) stop("Number of trials nsamp must be a positive number!") if(!missing(nsamp) && is.numeric(nsamp) && nsamp <= 0) stop("Invalid number of trials nsamp = ",nsamp, "!") if(is.data.frame(x)) x <- data.matrix(x) else if (!is.matrix(x)) x <- matrix(x, length(x), 1, dimnames = list(names(x), deparse(substitute(x)))) ## drop all rows with missing values (!!) : na.x <- !is.finite(x %*% rep(1, ncol(x))) ok <- !na.x x <- x[ok, , drop = FALSE] dx <- dim(x) if(!length(dx)) stop("All observations have missing values!") dimn <- dimnames(x) n <- dx[1] p <- dx[2] h <- h.alpha.n(alpha, n, p) # h(alpha) , the size of the subsamples ######## h <- floor(n/2) if(n <= p + 1) # ==> floor((n+p+1)/2) > n - 1 -- not Ok stop(if (n <= p) # absolute barrier! "n <= p -- you can't be serious!" else "n == p+1 is too small sample size for MCD") ## else if(n < 2 * p) { ## p+1 < n < 2p warning("n < 2 * p, i.e., possibly too small sample size") } if(h > n) stop("Sample size n < h(alpha; n,p) := size of \"good\" subsample") else if(alpha > 1) stop("alpha must be <= 1") ## VT::29.07.2008 - raw.cnp2 and cnp2 are vectors of size 2 and will ## contain the correction factors (concistency and finite sample) ## for the raw and reweighted estimates respectively. Set them ## initially to 1. If use.correction is set to FALSE ## (default=FALSE), the finite sample correction factor will not ## be used (neither for the raw estimates nor for the reweighted) ## ## The finite sample correction factors for MVE are not known, except ## for the very old cnp2=(1 + 15/(n - p))^2 (Rousseeuw&van Zomeren, 1988) ## therefore will remain always 1. ## ## The consistancy factor for the raw covariance is ## cf <- median(dist)/qchisq(0.5, p) ## ## FIXME: should be ## cf <- quantile(dist, alpha)/qchisq(alpha, p) ## raw.cnp2 <- cnp2 <- c(1,1) ## Case: alpha==1 ## ... ## ... ## Case p == 1 method <- "Minimum volume ellipsoid estimator" mve <- .fastmve(x, h, nsamp) ## Compute the consistency correction factor for the raw MCD ## (see calfa in Croux and Haesbroeck) ## calpha <- .MCDcons(p, h/n) ## VT::19.3.2007 mvecov <- cov.wt(x[mve$best,]) rcenter <- mvecov$center rcov <- mvecov$cov mah <- mahalanobis(x, rcenter, rcov, tol = tolSolve) calpha <- quantile(mah, h/n)/qchisq(h/n, p) # as in MASS names(calpha) <- NULL correct <- if(use.correction) (1 + 15/(n - p))^2 else 1. raw.cnp2 <- c(calpha, correct) rcov <- calpha * correct * rcov ## Again consider p == 1 ## else, i.e. p >= 2 ## handle exact fit, i.e. not general position situtations ## ## OK, in general position and mve$cov is not singular ## do reweighting ## FIXME: here we assume that mve$cov is not singular ## ----- but it could be! quantiel <- qchisq(0.975, p) mah <- mahalanobis(x, rcenter, rcov, tol = tolSolve) weights <- as.numeric(mah < quantiel) sum.w <- sum(weights) ## Compute and apply the consistency correction factor for ## the reweighted cov if(sum.w == n) { cdelta.rew <- 1 correct.rew <- 1 }else { cdelta.rew <- .MCDcons(p, sum.w/n) ## VT::: 19.07.2008 correct.rew <- if(use.correction) 1 else 1. cnp2 <- c(cdelta.rew, correct.rew) } xcov <- cov.wt(x, wt = weights) xcov$cov <- cdelta.rew * correct.rew * xcov$cov raw.mah <- mah raw.weights <- weights ## Check if the reweighted scatter matrix is singular and ## compute distances and weights based on it if( - (determinant(xcov$cov, logarithm = TRUE)$modulus[1] - 0)/p > 50) { ## ans$singularity <- list(kind = "reweighted.MCD") if(trace) cat("The reweighted MCD scatter matrix is singular.\n") mah <- raw.mah } else { mah <- mahalanobis(x, xcov$center, xcov$cov, tol = tolSolve) weights <- as.numeric(mah < quantiel) } ## ans <- new("CovMve", call=xcall, iter=nsamp, crit=mve$scale, cov=xcov$cov, center=xcov$center, mah=mah, wt=weights, n.obs=n, X=x, method=method, best=mve$best, alpha=alpha, quan=h, raw.center=rcenter, raw.cov=rcov, raw.mah=raw.mah, raw.wt=raw.weights, raw.cnp2=raw.cnp2, cnp2=cnp2 ) ans } .fastmve <- function(x, h, nsamp) { dx <- dim(x) n <- dx[1] p <- dx[2] nind <- p+1 tmp <- .C('r_fast_mve', x = if(is.double(x)) x else as.double(x), as.integer(n), as.integer(p), as.integer(nsamp), nsing = as.integer(0), ctr = as.double(rep(0,p)), cov = as.double(rep(0,p*p)), scale = as.double(0), best=as.integer(rep(0,n)), as.integer(nind), as.integer(h), as.double(qchisq(0.5, p)), PACKAGE="rrcov") mve.cov <- matrix(tmp$cov, p, p) return(list(center= tmp$ctr, cov=mve.cov, scale=tmp$scale, best=tmp$best[1:h], nsamp=nsamp, nsing = tmp$nsing)) } rrcov/R/AllClasses.R0000644000176200001440000004247114443667016014002 0ustar liggesuserssetClass("PsiFun", representation(n = "numeric", p = "numeric", r = "numeric", alpha = "numeric", c1 = "numeric")) setClass("PsiBwt", representation(M = "numeric"), contains="PsiFun") ## Define class unions for optional slots, e.g. for definition ## of slots which will be computed on demand, like the ## mahalanobis/robust distances setClassUnion("Uvector", c("vector", "NULL")) setClassUnion("Unumeric", c("numeric", "NULL")) setClassUnion("Cnumeric", c("numeric", "character")) setClassUnion("Umatrix", c("matrix", "NULL")) setClassUnion("Ulist", c("list", "NULL")) setClassUnion("Ufunction", c("function", "character", "NULL")) setClassUnion("Utable", c("table", "NULL")) ## This is a virtual base class for control objects. Each robust ## method like CovMest, CovOgk, etc. will derive a subclass with ## the necessary control parameters, e.g. CovControlMest will ## contain the control parameters for CovMest. setClass("CovControl", representation(trace="logical", tolSolve="numeric", "VIRTUAL")) setClassUnion("UCovControl", c("CovControl", "NULL")) setClass("Cov", representation(call = "language", cov = "matrix", center = "vector", det = "numeric", n.obs = "numeric", mah = "Uvector", flag = "Uvector", method = "character", singularity = "Ulist", X = "Umatrix", "VIRTUAL"), prototype=list(det=-1)) setClassUnion("UCov", c("Cov", "NULL")) setClass("SummaryCov", representation(covobj = "Cov", evals = "vector")) setClass("CovClassic", contains="Cov") setClass("CovRobust", representation(iter="numeric", crit="numeric", wt="Uvector", "VIRTUAL"), contains="Cov") setClass("SummaryCovRobust", representation(), contains="SummaryCov") setClass("CovMest", representation(vt="vector"), contains="CovRobust") setClass("CovMcd", representation(alpha = "numeric", quan = "numeric", best = "Uvector", raw.cov = "matrix", raw.center = "vector", raw.mah = "Uvector", raw.wt = "Uvector", raw.cnp2 = "numeric", cnp2 = "numeric"), contains="CovRobust") setClass("CovMrcd", representation(alpha = "numeric", quan = "numeric", best = "Uvector", cnp2 = "numeric", icov = "matrix", rho = "numeric", target="matrix"), contains="CovRobust") setClass("CovOgk", representation(raw.cov = "matrix", raw.center = "vector", raw.mah = "Uvector", raw.wt = "Uvector"), contains="CovRobust") setClass("CovMve", representation(alpha = "numeric", quan = "numeric", best = "Uvector", raw.cov = "matrix", raw.center = "vector", raw.mah = "Uvector", raw.wt = "Uvector", raw.cnp2 = "numeric", cnp2 = "numeric"), contains="CovRobust") setClass("CovSest", representation(iBest = "numeric", nsteps = "Uvector", initHsets = "Umatrix", cc = "numeric", kp = "numeric"), contains="CovRobust") setClass("CovSde", representation(), contains="CovRobust") setClass("CovMMest", representation(c1 ="numeric", sest = "CovSest"), contains="CovRobust") ## Control parameters for CovMcd setClass("CovControlMcd", representation(alpha="numeric", nsamp="Cnumeric", scalefn="Ufunction", maxcsteps="numeric", seed="Uvector", use.correction="logical"), prototype = list(alpha=0.5, nsamp=500, scalefn=NULL, maxcsteps=200, seed=NULL, trace=FALSE, tolSolve=1e-14, use.correction=TRUE), contains="CovControl") ## Control parameters for CovMrcd setClass("CovControlMrcd", representation(alpha="numeric", h="Unumeric", maxcsteps="numeric", rho="Unumeric", target = "character", maxcond = "numeric"), prototype = list(alpha=0.5, h=NULL, maxcsteps=200, rho=NULL, target="identity", maxcond=50, trace=FALSE, tolSolve=1e-14), contains="CovControl") ## Control parameters for CovMest setClass("CovControlMest", representation(r="numeric", arp="numeric", eps="numeric", maxiter="numeric"), prototype = list(r=0.45, arp=0.05, eps=1e-3, maxiter=120, trace=FALSE, tolSolve=1e-14), contains="CovControl" ) ## Control parameters for CovOgk ## ## Computes robust univariate mu and sigmma of the vector x ## - sigma: tau scale Yohai and Zamar (1988) - a truncated ## standard deviation ## - mu: weighted mean ## ## Returns a vector of length two with the calculated mu and sigma ## .mrobTau <- function(x, c1 = 4.5, c2 = 3.0, ...) #c2=2.36075 { return(scaleTau2(x, mu.too=TRUE)) # use scaleTau2 from package robustbase if(FALSE) { m0 <- median(x) # MED s0 <- median(abs(x - m0)) # MAD r <- abs(x-m0)/s0 wt <- (1 - (r/c1)^2)^2 wt <- ifelse(r <= c1, wt, 0) # wt = weigths w(x,c1) m <- sum(x*wt)/sum(wt) # mu = weighted mean r <- (x-m)/s0 r <- r^2 r[r > c2^2] <- c2^2 # rho(x,c2) s2 <- s0^2 / length(x) * sum(r) # sigma = tau scale (Yohai&Zamar 1988) # truncated standard deviation c(m, sqrt(s2)) } } ## ## Compute a robust estimate of the covariance of two random ## variables x1 and x2. ## Use the estimate defined by Gnanadesikan and Kettenring (1972): ## cov(X,Y)=1/4 * (sigma(X+Y)^2 - sigma(X-Y)^2) ## where sigma is a robust univariate scale. ## As sigma is used the tau scale estimate defined above - mrobTau() ## .vrobGK <- function(x1, x2, ...) { (.mrobTau(x1+x2, ...)[2]^2 - .mrobTau(x1-x2, ...)[2]^2)/4.0 } setClass("CovControlOgk", representation(niter="numeric", beta="numeric", mrob="Ufunction", # mrob=.mrobTau vrob="Ufunction", # vrob=.vrobGK smrob="character", svrob="character"), prototype = list(niter=2, beta=0.90, mrob=NULL, vrob=.vrobGK, smrob="scaleTau2", svrob="gk", trace=FALSE, tolSolve=1e-14), contains="CovControl" ) ## Control parameters for CovMve setClass("CovControlMve", representation(alpha="numeric", nsamp="numeric", seed="Uvector"), prototype = list(alpha=0.5, nsamp=500, seed=NULL, trace=FALSE, tolSolve=1e-14), contains="CovControl") ## Control parameters for CovSest setClass("CovControlSest", representation(bdp="numeric", arp="numeric", eps="numeric", maxiter="numeric", nsamp="numeric", seed="Uvector", method="character"), prototype = list(bdp=0.5, arp=0.1, eps=1e-5, maxiter=120, nsamp=500, seed=NULL, trace=FALSE, tolSolve=1e-14, method="sfast"), contains="CovControl") CovControlSest <- function (bdp=0.5, arp=0.1, eps=1e-5, maxiter=120, nsamp=500, seed=NULL, trace=FALSE, tolSolve=1e-14, method="sfast") { new("CovControlSest", bdp=bdp, arp=arp, eps=eps, maxiter=maxiter, nsamp=nsamp, seed=seed, trace=trace, tolSolve=tolSolve, method=method) } ## Control parameters for CovSde setClass("CovControlSde", representation(nsamp="numeric", maxres="numeric", tune="numeric", eps="numeric", prob="numeric", seed="Uvector"), prototype = list(tune=0.95, eps=0.5, prob=0.99, seed=NULL, trace=FALSE, tolSolve=1e-14), contains="CovControl") ## Control parameters for CovMMest setClass("CovControlMMest", representation(bdp="numeric", eff="numeric", maxiter="numeric", sest="CovControlSest"), prototype = list(bdp=0.5, eff=0.95, maxiter=50, sest=CovControlSest(), trace=FALSE, tolSolve=10e-14), contains="CovControl" ) ###################### PCA #################################### setClass("Pca", representation(call = "language", center = "vector", scale = "Uvector", rank = "numeric", loadings = "matrix", eigenvalues = "vector", scores = "matrix", k = "numeric", sd = "Uvector", od = "Uvector", cutoff.sd = "numeric", cutoff.od = "numeric", crit.pca.distances = "numeric", flag = "Uvector", n.obs = "numeric", eig0 = "vector", totvar0 = "numeric", "VIRTUAL")) setClass("SummaryPca", representation(pcaobj = "Pca", importance ="matrix")) setClass("PcaClassic", contains="Pca") setClass("PcaRobust", representation("VIRTUAL"), contains="Pca") setClass("PcaHubert", representation(alpha = "numeric", quan = "numeric", skew = "logical", ao = "Uvector"), contains="PcaRobust") setClass("PcaLocantore", representation(), contains="PcaRobust") setClass("PcaCov", representation(quan = "numeric"), contains="PcaRobust") setClass("PcaProj", representation(), contains="PcaRobust") setClass("PcaGrid", representation(), contains="PcaRobust") ###################### LDA #################################### setClass("Lda", representation(call = "language", prior = "vector", counts = "vector", center = "matrix", cov = "matrix", ldf = "matrix", ldfconst = "vector", method = "character", X = "Umatrix", grp = "factor", covobj = "UCov", control = "UCovControl", "VIRTUAL")) setClass("SummaryLda", representation(ldaobj = "Lda")) setClass("LdaClassic", contains="Lda") setClass("LdaRobust", representation("VIRTUAL"), contains="Lda") setClass("PredictLda", representation(classification = "factor", posterior = "matrix", x = "matrix", ct="Utable")) setClass("Linda", representation( l1med = "logical"), contains="LdaRobust") setClass("LdaPP", representation( raw.ldf = "matrix", raw.ldfconst = "vector"), contains="LdaRobust") ###################### QDA #################################### setClass("Qda", representation(call = "language", prior = "vector", counts = "vector", center = "matrix", cov = "array", covinv = "array", covdet = "vector", method = "character", X = "Umatrix", grp = "factor", control = "UCovControl", "VIRTUAL")) setClass("SummaryQda", representation(qdaobj = "Qda")) setClass("QdaClassic", contains="Qda") setClass("QdaRobust", representation("VIRTUAL"), contains="Qda") setClass("PredictQda", representation(classification = "factor", posterior = "matrix", x = "matrix", ct="Utable")) setClass("QdaCov", contains="QdaRobust") rrcov/R/psibwt.R0000644000176200001440000000767214443667016013270 0ustar liggesuserssetMethod("psi", "PsiBwt", function(obj, x) { if(obj@c1 == 0){ x1 <- x - obj@M ivec1 <- (x1 <= 0) ivec2 <- (x1 > 0) } else { x1 <- (x-obj@M)/obj@c1 ivec1 <- (x1 < 0) ivec2 <- (x1 > 1) } return(ivec1*x+(1-ivec1-ivec2)*x*(1-x1^2)^2) }) setMethod("wt", "PsiBwt", function(obj, x) { if(obj@c1 == 0){ x1 <- x - obj@M ivec1 <- (x1 <= 0) ivec2 <- (x1 > 0) } else { x1 <- (x-obj@M)/obj@c1 ivec1 <- (x1 < 0) ivec2 <- (x1 > 1) } return(ivec1+(1-ivec1-ivec2)*(1-x1^2)^2) }) setMethod("vt", "PsiBwt", function(obj, x) { return(x*psi(obj,x)) }) setMethod("erho", "PsiBwt", function(obj) { # expectation of rho(d) under chi-squared p c1<-obj@c1 M<-obj@M p<-obj@p if (c1 == 0) return(.chiInt(p,2,M)/2 + M^2/2*.chiInt2(p,0,M)) return(.chiInt(p,2,M)/2 +(M^2/2+c1*(5*c1+16*M)/30)*.chiInt2(p,0,M+c1) +(M^2/2-M^2*(M^4-5*M^2*c1^2+15*c1^4)/(30*c1^4))*(.chiInt(p,0,M+c1)-.chiInt(p,0,M)) +(1/2+M^4/(2*c1^4)-M^2/c1^2)*(.chiInt(p,2,M+c1)-.chiInt(p,2,M)) +(4*M/(3*c1^2)-4*M^3/(3*c1^4))*(.chiInt(p,3,M+c1)-.chiInt(p,3,M)) +(3*M^2/(2*c1^4)-1/(2*c1^2))*(.chiInt(p,4,M+c1)-.chiInt(p,4,M)) -(4*M/(5*c1^4))*(.chiInt(p,5,M+c1)-.chiInt(p,5,M)) +(1/(6*c1^4))*(.chiInt(p,6,M+c1)-.chiInt(p,6,M))) }) setMethod("erhoLim", "PsiBwt", function(obj) { p<-obj@p c1<-obj@c1 return(.chiInt(p,2,c1) + c1^2*.chiInt2(p,0,c1)) }) setMethod("erhoLimD", "PsiBwt", function(obj) { p<-obj@p c1<-obj@c1 return(.chiIntD(p,2,c1) + 2*c1*.chiInt2(p,0,c1) + c1^2*.chiInt2D(p,0,c1)) }) setMethod("arpLim", "PsiBwt", function(obj) { p<-obj@p r<-obj@r obj@c1 <- c1 <- 2*p iter <- 1 crit <- 100 eps <- 1e-5 while(crit>eps & iter<100) { c1.old <- c1 fc <- erhoLim(obj) - c1^2*r fcp <- erhoLimD(obj) - 2*c1*r obj@c1 <- c1 <- c1 - fc/fcp if(c1 < 0) obj@c1 <- c1 <- c1.old/2 crit <- abs(fc) ## print(c(iter,c1.old,crit)) iter <- iter+1 } # print(c(iter,c1,crit)) return(c(c1, pchisq(c1^2,p), log10(1-pchisq(c1^2,p)))) }) setMethod("csolve", "PsiBwt", function(obj) { ## find constants c1 and M that give a specified breakdown r ## and rejection point alpha n<-obj@n p<-obj@p r<-obj@r alpha<-obj@alpha if(r > (n-p)/(2*n)) obj@r <- r <- (n-p)/(2*n) # maximum achievable breakdown ## print(c(n,p,r,alpha)) ## ## if rejection is not achievable, use c1=0 and best rejection ## limvec <- arpLim(obj) if(1-limvec[2] <= alpha) { obj@c1 <- c1 <- 0 obj@M <- M <- sqrt(qchisq(1-alpha, p)) ## print("adjusting alpha") ## print(c(alpha, M, c1)) } else { c1.plus.M <- sqrt(qchisq(1-alpha,p)) obj@M <- M <- sqrt(p) obj@c1 <- c1 <- c1.plus.M - M iter <- 1 crit <- 100 eps <- 1e-5 while(crit > eps & iter<100){ deps <- 1e-4 M.old <- M c1.old <- c1 er <- erho(obj) fc <- er - r*(M^2/2+c1*(5*c1+16*M)/30) obj1 <- obj; obj1@c1 <- c1+deps obj2 <- obj; obj2@M <- M+deps fcc1 <- (erho(obj1) - er)/deps fcM <- (erho(obj2) - er)/deps ## fcp <- fcM - fcc1 - r*(M-(5*c1+16*M)/30+c1*9/30) fcp <- fcM - fcc1 - r*(M-(5*c1+16*M)/30+c1*11/30) # changed according to CB obj@M <- M <- M - fc/fcp if(M >= c1.plus.M ){ obj@M <- M <- (M.old + c1.plus.M)/2 } obj@c1 <- c1 <- c1.plus.M - M crit <- abs(fc) ## print(c(iter, M.old, c1.old, crit)) iter <- iter+1 } } return(obj) }) rrcov/R/CovRobust.R0000644000176200001440000002416514443667016013702 0ustar liggesusers## control can be a character specifying the name of the estimate, one of: ## auto, mcd, ogk, m, mve, sfast, surreal, bisquare, rocke ## If no control object is given or 'auto' is selected, the choice of the ## estimator will depend on the size of the data: ## - Stahel-Donoho: n < 1000 and p < 10 or n < 5000 and p < 5 ## - MCD: n < 50000 and p < 20 ## - OGK: otherwise ## CovRobust <- function(x, control, na.action = na.fail) { x <- na.action(x) if(is.data.frame(x)) x <- data.matrix(x) else if (!is.matrix(x)) x <- matrix(x, length(x), 1, dimnames = list(names(x), deparse(substitute(x)))) n <- nrow(x) p <- ncol(x) control <- .covRobustControl(control, n, p) restimate(control, x) } .covRobustControl <- function(method, n, p) { mm <- NULL if(missing(method)) mm <- "auto" else if(is.character(method)) mm <- casefold(method) ## either no control specified or the estimator is given by a character name - ## create the necessary control object. if(!is.null(mm)){ control <- switch(mm, auto = { if(missing(n) || missing(p)) CovControlMcd() else if(n < 1000 && p < 10 || n < 5000 && p < 5) CovControlSde() else if(n < 50000 && p < 10) CovControlSest(method="bisquare") else if(n < 50000 && p < 20) CovControlSest(method="rocke") else CovControlOgk(smrob="s_mad", svrob="qc") }, sde = CovControlSde(), mcd = CovControlMcd(), ogk = CovControlOgk(), m = CovControlMest(), mve = CovControlMve(), sfast = CovControlSest(method="sfast"), surreal = CovControlSest(method="surreal"), bisquare = CovControlSest(method="bisquare"), rocke = CovControlSest(method="rocke")) ## this is the 'default' option of the switch if(is.null(control)) stop(paste("Undefined estimator: ", method)) } else control <- method control } setMethod("isClassic", "CovRobust", function(obj) FALSE) setMethod("isClassic", "SummaryCovRobust", function(obj) FALSE) setMethod("getMeth", "CovRobust", function(obj) obj@method) setMethod("getRaw", "CovRobust", function(obj){ if(is(obj, "CovMcd") | is(obj, "CovMve") | is(obj, "CovOgk")) { obj@center <- obj@raw.center obj@cov <- obj@raw.cov obj@mah <- obj@raw.mah obj@wt <- obj@raw.wt } if(is(obj, "CovMcd") | is(obj, "CovMve")) { obj@cnp2 <- obj@raw.cnp2 } invisible(obj) }) ## ## Follow the standard methods: show, summary, plot ## setMethod("show", "CovRobust", function(object){ cat("\nCall:\n") print(object@call) cat("-> Method: ", object@method, "\n") if(is.list(object@singularity)) cat(strwrap(.MCDsingularityMsg(object@singularity, object@n.obs)), sep ="\n") digits = max(3, getOption("digits") - 3) cat("\nRobust Estimate of Location: \n") print.default(format(getCenter(object), digits = digits), print.gap = 2, quote = FALSE) cat("\nRobust Estimate of Covariance: \n") print.default(format(getCov(object), digits = digits), print.gap = 2, quote = FALSE) invisible(object) }) setMethod("summary", "CovRobust", function(object, ...){ new("SummaryCovRobust", covobj=object, evals=eigen(object@cov)$values) }) setMethod("show", "SummaryCovRobust", function(object){ cat("\nCall:\n") print(object@covobj@call) digits = max(3, getOption("digits") - 3) cat("\nRobust Estimate of Location: \n") print.default(format(getCenter(object), digits = digits), print.gap = 2, quote = FALSE) cat("\nRobust Estimate of Covariance: \n") print.default(format(getCov(object), digits = digits), print.gap = 2, quote = FALSE) cat("\nEigenvalues of covariance matrix: \n") print.default(format(getEvals(object), digits = digits), print.gap = 2, quote = FALSE) cat("\nRobust Distances: \n") print.default(format(as.vector(getDistance(object)), digits = digits), print.gap = 2, quote = FALSE) }) ## VT::17.06.2008 ##setMethod("plot", "CovRobust", function(x, y="missing", setMethod("plot", signature(x="CovRobust", y="missing"), function(x, y="missing", which=c("dd", "all", "distance", "qqchi2", "tolEllipsePlot", "pairs", "screeplot", "xydistance", "xyqqchi2"), classic= FALSE, ask = (which=="all" && dev.interactive(TRUE)), cutoff, id.n, labels.id = rownames(x$X), tol = 1e-7, ...) { which <- match.arg(which) data <- getData(x) ## parameters and preconditions if(is.vector(data) || is.matrix(data)) { if(!is.numeric(data)) stop( "x is not a numeric dataframe or matrix.") } else if(is.data.frame(data)) { if(!all(sapply(data,data.class) == "numeric")) stop( "x is not a numeric dataframe or matrix.") } n <- dim(data)[1] p <- dim(data)[2] if(length(getCenter(x)) == 0 || length(getCov(x)) == 0) stop( "Invalid object: attributes center and cov missing!") if(length(getCenter(x)) != p) stop( "Data set and provided center have different dimensions!") ## Check for singularity of the cov matrix if(isSingular(x)) stop("The covariance matrix is singular!") if(missing(cutoff)) cutoff <- sqrt(qchisq(0.975, p)) if(!missing(id.n) && !is.null(id.n)) { id.n <- as.integer(id.n) if(id.n < 0 || id.n > n) stop(sQuote("id.n")," must be in {1,..,",n,"}") } ## VT::12.11.2018 - In case of MRCD we can use also classic regularized estimate ## VT::04.05.2023: no need to do this if the plot is one of the "xy" (lattice) ones - ## in these cases the computation of the classical distances will be done within ## the respective function md <- rd <- NULL if(!(which %in% c("xydistance", "xyqqchi2"))) { if(inherits(x, "CovMrcd")) { ccov <- CovMrcd(data, alpha=1) md <- sqrt(getDistance(ccov)) rd <- sqrt(getDistance(x)) } else { ccov <- CovClassic(data) if(!isSingular(ccov)) md <- sqrt(getDistance(ccov)) if(!isSingular(x)) rd <- sqrt(getDistance(x)) } } ## if(missing(id.n)) ## id.n <- if(is.null(rd)) 0 else length(which(rd > cutoff)) op <- if (ask) par(ask = TRUE) else list() on.exit(par(op)) ## distance-distance plot: here we need both robust and mahalanobis distances if((which == "all" || which == "dd") && !is.null(md) && !is.null(rd)) { .myddplot(md, rd, cutoff=cutoff, id.n=id.n, ...) # distance-distance plot } ## index plot of mahalanobis distances if((which == "all" || which == "distance") && !is.null(rd)) { ylim <- NULL if(classic && !is.null(md)) { opr <- if(prod(par("mfrow")) == 1) par(mfrow=c(1,2), pty="m") else list() ##VT::10.11.2007 - set same scale on both plots ylim <- c(min(rd,md), max(md,rd)) } .mydistplot(rd, cutoff=cutoff, id.n=id.n, ...) # index plot of robust distances if(classic && !is.null(md)) { .mydistplot(md, cutoff=cutoff, classic=TRUE, id.n=id.n, ylim=ylim, ...) # index plot of mahalanobis distances par(opr) } } ## lattice: index plot of mahalanobis distances if(which == "xydistance") { if(missing(id.n)) print(.xydistplot(x, cutoff=cutoff, ...)) # lattice: index plot of robust distances else print(.xydistplot(x, cutoff=cutoff, id.n=id.n, ...)) # lattice: index plot of robust distances } ## qq-plot of the mahalanobis distances versus the ## quantiles of the chi-squared distribution if((which == "all" || which == "qqchi2") && !is.null(rd)) { if(classic && !is.null(md)) { opr <- if(prod(par("mfrow")) == 1) par(mfrow=c(1,2), pty="m") else list() } .qqplot(rd, p, cutoff=cutoff, id.n=id.n, ...) # qq-plot of the robust distances versus the # quantiles of the chi-squared distribution if(classic && !is.null(md)) { .qqplot(md, p, cutoff=cutoff, classic=TRUE, id.n=id.n, ...) # qq-plot of the mahalanobis distances par(opr) } } ## lattice: qq-plot of the mahalanobis distances versus the ## quantiles of the chi-squared distribution if(which == "xyqqchi2") { if(missing(id.n)) print(.xyqqchi2(x, cutoff=cutoff, ...)) # lattice: qq-plot of the distances versus else print(.xyqqchi2(x, cutoff=cutoff, id.n=id.n, ...)) # lattice: qq-plot of the distances versus } if(which == "tolEllipsePlot" || which == "pairs") { if(which == "tolEllipsePlot" & length(dim(data)) >= 2 && dim(data)[2] == 2){ if(!is.null(rd)){ if(classic && !is.null(md)) .tolellipse(rcov=x, ccov = ccov, cutoff=cutoff, id.n=id.n, tol=tol, ...) else .tolellipse(rcov=x, cutoff=cutoff, id.n=id.n, tol=tol, ...) } }else if(length(dim(data)) >= 2 && dim(data)[2] <= 10) { .rrpairs(x, ...) }else if(which != "all") warning("Warning: For tolerance ellipses the dimension must be less than 10!") } if(which == "all" || which == "screeplot") { myscreeplot(ccov=ccov, rcov=x) } }) ## end { plot("CovRobust") } rrcov/R/CovMMest.R0000644000176200001440000002022214443667016013437 0ustar liggesusersCovMMest <- function(x, bdp=0.5, eff=0.95, eff.shape=TRUE, maxiter=50, trace=FALSE, tolSolve=1e-7, control ) { ## NOTES: ## - in the functions rho, psi, and scaledpsi=psi/u (i.e. the weight function) ## is used |x| <= c1 ## ## The bisquare rho function: ## ## | x^2/2 - x^4/2*c1^2 + x^6/6*c1^4 |x| <= c1 ## rho(x) = | ## | c1^2/6 |x| > c1 ## rho <- function(u, cc) { w <- abs(u) <= cc v <- (u^2/2 * (1 - u^2/cc^2 + u^4/(3*cc^4))) * w + (1-w) * (cc^2/6) v } ## The corresponding psi function: psi = rho' ## ## | x - 2x^3/c1^2 + x^5/c1^4 |x| <= c1 ## psi(x) = | ## | 0 |x| > c1 ## ## using ifelse is 3 times slower psi <- function(u, c1) { ##ifelse(abs(u) < c1, u - 2 * u^3/c1^2 + u^5/c1^4, 0) pp <- u - 2 * u^3/c1^2 + u^5/c1^4 pp*(abs(u) <= c1) } ## weight function = psi(u)/u scaledpsi <- function(u, cc) { ##ifelse(abs(xx) < c1, xx - 2 * xx^3/c1^2 + xx^5/c1^4, 0) pp <- (1 - (u/cc)^2)^2 pp <- pp * cc^2/6 pp*(abs(u) <= cc) } ## the objective function, we solve loss.S(u, s, cc) = b for "s" loss <- function(u, s, cc) mean(rho(u/s, cc)) ## Returns square root of the mahalanobis distances of x with respect to mu and sigma ## Seems to be somewhat more efficient than sqrt(mahalanobis()) - by factor 1.4! resdis <- function(x, mu, sigma) { central <- t(x) - mu sqdis <- colSums(solve(sigma, central) * central) dis <- sqdis^(0.5) dis } ## ## Compute weighted mean and covariance matrix ## The covariance is scaled to have det=1 ## covw <- function(x, wt=rep(1, nrow(x))) { if (is.data.frame(x)) x <- as.matrix(x) else if (!is.matrix(x)) stop("'x' must be a matrix or a data frame") if (!all(is.finite(x))) stop("'x' must contain finite values only") n <- nrow(x) p <- ncol(x) if(with.wt <- !missing(wt)) { if(length(wt) != n) stop("length of 'wt' must equal the number of rows in 'x'") if(any(wt < 0) || (s <- sum(wt)) == 0) stop("weights must be non-negative and not all zero") } center <- colSums(wt * x)/s x <- sqrt(wt) * sweep(x, 2, center, check.margin = FALSE) cov <- crossprod(x) cov <- det(cov)^(-1/p) * cov ret <- list(cov = cov, center = center, n.obs = n) ret } ## Analize and validate the input parameters ... ## if a control object was supplied, take the option parameters from it, ## but if single parameters were passed (not defaults) they will override the ## control object. scontrol <- CovControlSest() if(!missing(control)){ defcontrol <- CovControlMMest() # default control if(bdp == defcontrol@bdp) bdp <- control@bdp # if(eff == defcontrol@eff) eff <- control@eff # if(maxiter == defcontrol@maxiter) maxiter <- control@maxiter # for bisquare and rocke if(trace == defcontrol@trace) trace <- control@trace if(tolSolve == defcontrol@tolSolve) tolSolve <- control@tolSolve scontrol <- control@sest scontrol@bdp = bdp } if(is.data.frame(x)) x <- data.matrix(x) else if (!is.matrix(x)) x <- matrix(x, length(x), 1, dimnames = list(names(x), deparse(substitute(x)))) xcall <- match.call() ## drop all rows with missing values (!!) : na.x <- !is.finite(x %*% rep(1, ncol(x))) ok <- !na.x x <- x[ok, , drop = FALSE] dx <- dim(x) if(!length(dx)) stop("All observations have missing values!") dimn <- dimnames(x) n <- dx[1] p <- dx[2] ## compute the constant c1 for the rho function of the MM-estimates c1 <- .csolve.bw.MM(p, eff, eff.shape=eff.shape) if(trace) cat("\nMM-EST...: bdp, eff, eff.shape, p, c1=", bdp, eff, eff.shape, p, c1, "\n") ## Compute the initial S-estimate ss <- CovSest(x, control=scontrol, trace=trace) if(trace) { cat("\nInitial S-estimates. Scale=", ss@crit, "\n") print(ss) } scale <- ss@crit cova <- getShape(ss) center <- getCenter(ss) rdis <- resdis(x, center, cova) keep <- ocrit <- crit <- loss(rdis, scale, c1) if(trace) { cat("\nInitial robust distances:\n") print(rdis) } ## Compute M-estimate with auxiliary scale. ## Start from an S-estimate and perform reweighted ## location/covariance steps for(iter in 1:maxiter) { if(trace) cat("\nITER=", iter,"\n") w <- scaledpsi(rdis/scale, c1) center <- as.vector(crossprod(w, x) / sum(w)) ccc <- covw(x, w) center <- ccc$center cova <- ccc$cov rdis <- resdis(x, center, cova) crit <- loss(rdis, scale, c1) ## cat("\noldobj, newobj, iter:",oldobj, newobj, oldobj-newobj, oldobj - newobj > tolSolve, iter,"\n") if(ocrit - crit <= tolSolve) break ocrit <- crit } cova <- cova*scale^2 ## Check if the loss function was at all reduced by ## the M-iterations. If not (which should never happen) ## simply return the S-estimate if(crit > keep) { center <- ss@center cova <- ss@cov } ans <- new("CovMMest", call = xcall, iter=iter, crit=ss@crit, cov=cova, center=center, c1=c1, n.obs=n, X = as.matrix(x), sest=ss, method="MM-estimates") ans } ## ## Compute the constant for the second Tukey Biweight rho-function for MM ## with for fixed shape-efficiency ## ## Adapted from Gert Willems: ## http://users.ugent.be/~svaelst/software/MMPCAboot.html ## .csolve.bw.MM <- function(p, eff, eff.shape=TRUE) { ## (taken from Claudia Becker's Sstart0 program) chi.int <- function(p, a, c1) { ## partial expectation d in (0,c1) of d^a under chi-squared p return(exp(lgamma((p + a) /2) - lgamma(p/2)) * 2^{a/2} * pchisq(c1^2, p + a)) } loceff.bw <- function(p, c1) { # called by csolve.bw.MM(); computes location efficiency corresponding to c1 alpha1 <- 1/p * (chi.int(p,2,c1) - 4*chi.int(p,4,c1)/(c1^2) + 6*chi.int(p,6,c1)/(c1^4) - 4*chi.int(p,8,c1)/(c1^6) + chi.int(p,10,c1)/(c1^8)) beta1.1 <- chi.int(p,0,c1) - 2*chi.int(p,2,c1)/(c1^2) + chi.int(p,4,c1)/(c1^4) beta1.2 <- chi.int(p,0,c1) - 6*chi.int(p,2,c1)/(c1^2) + 5*chi.int(p,4,c1)/(c1^4) beta1 <- (1-1/p)*beta1.1 + 1/p*beta1.2 return( beta1^2 / alpha1 ) } sigma1.bw <- function(p, c1) { gamma1.1 <- chi.int(p,2,c1) - 6*chi.int(p,4,c1)/(c1^2) + 5*chi.int(p,6,c1)/(c1^4) gamma1.2 <- chi.int(p,2,c1) - 2*chi.int(p,4,c1)/(c1^2) + chi.int(p,6,c1)/(c1^4) gamma1 <- (gamma1.1 + (p+1)*gamma1.2) / (p+2) sigma1.0 <- chi.int(p,4,c1) - 4*chi.int(p,6,c1)/(c1^2) + 6*chi.int(p,8,c1)/(c1^4) - 4*chi.int(p,10,c1)/(c1^6) + chi.int(p,12,c1)/(c1^8) return(sigma1.0 / (gamma1^2) * p/(p+2)) } maxit <- 1000 eps <- 1e-8 ## ctest <- csolve.bw.asymp(p,.5) cold <- ctest <- -.4024 + 2.2539 * sqrt(p) # very precise approximation for c corresponding to 50% bdp for(iter in 1:maxit) { ctest <- if(eff.shape) ctest * eff * sigma1.bw(p, ctest) else ctest * eff / loceff.bw(p, ctest) if(abs(cold-ctest) <= eps) break cold <- ctest } return(ctest) } rrcov/R/utils.R0000644000176200001440000000404314443667016013105 0ustar liggesusers## Moore-Penrose pseudoinverse .pinv <- function(X, tol=.Machine$double.eps) { X <- as.matrix(X) xsvd <- svd(X) nze <- sum( xsvd$d > (tol*xsvd$d[1]) ) return (if(nze > 1L) xsvd$v[,1:nze] %*% diag(1/xsvd$d[1:nze]) %*% t(xsvd$u[,1:nze]) else outer(xsvd$v[,1],xsvd$u[,1]) / xsvd$d[1] ) } .isSingular <- function(mat) { ## return( - (determinant(mat, logarithm = TRUE)$modulus[1] - 0)/ncol(mat) > 50) p <- ncol(mat) if(!is.qr(mat)) mat <- qr(mat) return(mat$rank < p) } .check_vars_numeric <- function(mf) { ## we need to test just the columns which are actually used. mt <- attr(mf, "terms") mterms <- attr(mt, "factors") mterms <- rownames(mterms)[apply(mterms, 1, any)] any(sapply(mterms, function(x) is.factor(mf[,x]) || !is.numeric(mf[,x]))) } vecnorm <- function(x, p=2) sum(x^p)^(1/p) ## ## Several Matlab-like utility functions ====================================================== ## ## ## Return the square root of a symetric positive definite matrix sqrtm <- function(A){ ## ## [E D] = eig(A); sqrtm(A) = E * sqrt(D) * E' ## if(!is.matrix(A) || ncol(A) != nrow(A)) stop("The matrix A must be a square matrix\n") ee <- eigen(A) if(any(ee$values < 0)) { stop("The matrix A must be positive definite.") } ee$vectors %*% diag(sqrt(ee$values)) %*% t(ee$vectors) } ## Return an n by p matrix of ones ##ones <- function(n=1, p=1){ ## matrix(1, nrow=n, ncol=p) ##} ## Return an n by p matrix of zeros ##zeros <- function(n=1, p=1){ ## matrix(0, nrow=n, ncol=p) ##} ## ## a=[1 2 ; 3 4]; ## repmat(a,2,3) ## ## ## a <- matrix(1:4,2,byrow=T) ## repmat(a,2,3) ## ## ## a <- 1:4; n=10 ## matrix(rep(a, times=n), nrow=n, byrow=TRUE) ## ##repmat <- function(A, n, p) { ## ## if(is.vector(A)) # we need a column matrix, not a vector, speaking in R terms ## A <- t(A) ## kronecker(matrix(1,n,p), A) ##} rrcov/R/CovSest.R0000644000176200001440000011373014443667016013337 0ustar liggesusers## TO DO ## ## - 'best', 'exact' and 'deterministic' options for nsamp, as in CovMcd ## CovSest <- function(x, bdp=0.5, arp=0.1, eps=1e-5, maxiter=120, nsamp=500, seed=NULL, trace=FALSE, tolSolve=1e-14, scalefn, maxisteps=200, initHsets = NULL, save.hsets = missing(initHsets) || is.null(initHsets), method=c("sfast", "surreal", "bisquare", "rocke", "suser", "sdet"), control, t0, S0, initcontrol ) { ## Analize and validate the input parameters ... ## if a control object was supplied, take the option parameters from it, ## but if single parameters were passed (not defaults) they will override the ## control object. method <- match.arg(method) if(!missing(control)){ defcontrol <- CovControlSest() # default control if(bdp == defcontrol@bdp) bdp <- control@bdp # for s-fast and surreal if(arp == defcontrol@arp) arp <- control@arp # for rocke type if(eps == defcontrol@eps) eps <- control@eps # for bisquare and rocke if(maxiter == defcontrol@maxiter) maxiter <- control@maxiter # for bisquare and rocke if(nsamp == defcontrol@nsamp) nsamp <- control@nsamp if(is.null(seed) || seed == defcontrol@seed) seed <- control@seed if(trace == defcontrol@trace) trace <- control@trace if(tolSolve == defcontrol@tolSolve) tolSolve <- control@tolSolve if(method == defcontrol@method) method <- control@method } if(length(seed) > 0) { if(exists(".Random.seed", envir=.GlobalEnv, inherits=FALSE)) { seed.keep <- get(".Random.seed", envir=.GlobalEnv, inherits=FALSE) on.exit(assign(".Random.seed", seed.keep, envir=.GlobalEnv)) } assign(".Random.seed", seed, envir=.GlobalEnv) } if(!missing(nsamp) && !is.numeric(nsamp)) stop("Number of trials nsamp must be a positive number!") if(!missing(nsamp) && is.numeric(nsamp) && nsamp <= 0) stop("Invalid number of trials nsamp = ",nsamp, "!") if(is.data.frame(x)) x <- data.matrix(x) else if (!is.matrix(x)) x <- matrix(x, length(x), 1, dimnames = list(names(x), deparse(substitute(x)))) xcall <- match.call() ## drop all rows with missing values (!!) : na.x <- !is.finite(x %*% rep(1, ncol(x))) ok <- !na.x x <- x[ok, , drop = FALSE] dx <- dim(x) if(!length(dx)) stop("All observations have missing values!") dimn <- dimnames(x) n <- dx[1] p <- dx[2] if(n <= p + 1) stop(if (n <= p) "n <= p -- you can't be serious!" else "n == p+1 is too small sample size") if(n < 2 * p) { ## p+1 < n < 2p warning("n < 2 * p, i.e., possibly too small sample size") } if(method == "surreal" && nsamp == 500) # default nsamp = 600*p ## compute the constants c1 and kp ## c1 = Tbsc(bdp, p) ## kp = (c1/6) * Tbsb(c1, p) cobj <- .csolve.bw.S(bdp, p) cc <- cobj$cc kp <- cobj$kp if(trace) cat("\nFAST-S...: bdp, p, cc, kp=", bdp, p, cc, kp, "\n") if(missing(scalefn) || is.null(scalefn)) { scalefn <- if(n <= 1000) Qn else scaleTau2 } mm <- if(method == "sfast") ..CSloc(x, nsamp=nsamp, kp=kp, cc=cc, trace=trace) else if(method == "suser") ..fastSloc(x, nsamp=nsamp, kp=kp, cc=cc, trace=trace) else if(method == "surreal") ..covSURREAL(x, nsamp=nsamp, kp=kp, c1=cc, trace=trace, tol.inv=tolSolve) else if(method == "bisquare") ..covSBic(x, arp, eps, maxiter, t0, S0, nsamp, seed, initcontrol, trace=trace) else if(method == "rocke") ..covSRocke(x, arp, eps, maxiter, t0, S0, nsamp, seed, initcontrol, trace=trace) else ..detSloc(x, hsets.init=initHsets, save.hsets=save.hsets, scalefn=scalefn, kp=kp, cc=cc, trace=trace) ans <- new("CovSest", call = xcall, iter=mm$iter, crit=mm$crit, cov=mm$cov, center=mm$center, n.obs=n, iBest=0, cc=mm$cc, kp=mm$kp, X = as.matrix(x), method=mm$method) if(method == "sdet") { ans@iBest <- mm$iBest ans@nsteps <- mm$hset.csteps if(save.hsets) ans@initHsets <- mm$initHsets } ans } ## ## Compute the constants kp and c1 for the Tukey Biweight rho-function for S ## .csolve.bw.S <- function(bdp, p) { ## Compute the constant kp (used in Tbsc) Tbsb <- function(c, p) { ksiint <- function(c, s, p) { (2^s) * gamma(s + p/2) * pgamma(c^2/2, s + p/2)/gamma(p/2) } y1 = ksiint(c,1,p)*3/c - ksiint(c,2,p)*3/(c^3) + ksiint(c,3,p)/(c^5) y2 = c*(1-pchisq(c^2,p)) return(y1 + y2) } ## Compute the tunning constant c1 for the S-estimator with ## Tukey's biweight function given the breakdown point (bdp) ## and the dimension p Tbsc <- function(bdp, p) { eps = 1e-8 maxit = 1e3 cnew <- cold <- sqrt(qchisq(1 - bdp, p)) ## iterate until the change is less than the tollerance or ## max number of iterations reached for(iter in 1:maxit) { cnew <- Tbsb(cold, p)/bdp if(abs(cold - cnew) <= eps) break cold <- cnew } return(cnew) } cc = Tbsc(bdp, p) kp = (cc/6) * Tbsb(cc, p) return(list(cc=cc, kp=kp)) } ## ## A fast procedure to compute an S-estimator similar to the one proposed ## for regression by Salibian-Barrera, M. and Yohai, V.J. (2005), ## "A fast algorithm for S-regression estimates". This current C implemention ## is by Valentin Todorov. ## ## Input: ## x - a data matrix of size (n,p) ## nsamp - number of sub-samples (default=20) ## k - number of refining iterations in each subsample (default=2) ## best.r - number of "best betas" to remember from the subsamples. ## These will be later iterated until convergence (default=5) ## kp, cc - tunning constants for the S-estimator with Tukey's biweight ## function given the breakdown point (bdp) and the dimension p ## ## Output: a list with components ## center - robust estimate of location (vector: length) ## cov - robust estimate of scatter (matrix: p,p) ## crit - value of the objective function (number) ## ..CSloc <- function(x, nsamp=500, kstep=2, best.r=5, kp, cc, trace=FALSE) { dimn <- dimnames(x) if(!is.matrix(x)) x = as.matrix(x) n <- nrow(x) p <- ncol(x) maxit <- 200 # max number of iterations rtol <- 1e-7 # convergence tolerance b <- .C("sest", as.double(x), as.integer(n), as.integer(p), as.integer(nsamp), center = as.double(rep(0,p)), cov = as.double(rep(0,p*p)), scale = as.double(0), as.double(cc), as.double(kp), as.integer(best.r), # number of (refined) to be retained for full iteration as.integer(kstep), # number of refining steps for each candidate as.integer(maxit), # number of (refined) to be retained for full iteration as.double(rtol), converged = logical(1) ) scale <- b$scale center <- b$center cov <- matrix(b$cov, nrow=p) if(scale < 0) cat("\nC function sest() exited prematurely!\n") ## names(b)[names(b) == "k.max"] <- "k.iter" # maximal #{refinement iter.} ## FIXME: get 'res'iduals from C if(!is.null(nms <- dimn[[2]])) { names(center) <- nms dimnames(cov) <- list(nms,nms) } return(list( center=as.vector(center), cov=cov, crit=scale, iter=nsamp, kp=kp, cc=cc, method="S-estimates: S-FAST")) } ## ## A fast procedure to compute an S-estimator similar to the one proposed ## for regression by Salibian-Barrera, M. and Yohai, V.J. (2005), ## "A fast algorithm for S-regression estimates". This version for ## multivariate location/scatter is adapted from the one implemented ## by Kristel Joossens, K.U. Leuven, Belgium ## and Ella Roelant, Ghent University, Belgium. ## ## Input: ## x - a data matrix of size (n,p) ## nsamp - number of sub-samples (default=20) ## k - number of refining iterations in each subsample (default=2) ## best.r - number of "best betas" to remember from the subsamples. ## These will be later iterated until convergence (default=5) ## kp, cc - tunning constants for the S-estimator with Tukey's biweight ## function given the breakdown point (bdp) and the dimension p ## ## Output: a list with components ## center - robust estimate of location (vector: length) ## cov - robust estimate of scatter (matrix: p,p) ## crit - value of the objective function (number) ## ..fastSloc <- function(x, nsamp, k=2, best.r=5, kp, cc, trace=FALSE) { ## NOTES: ## - in the functions rho, psi, and scaledpsi=psi/u (i.e. the weight function) ## is used |x| <= c1 ## ## - function resdis() to compute the distances is used instead of ## mahalanobis() - slightly faster ## The bisquare rho function: ## ## | x^2/2 - x^4/2*c1^2 + x^6/6*c1^4 |x| <= c1 ## rho(x) = | ## | c1^2/6 |x| > c1 ## rho <- function(u, cc) { w <- abs(u) <= cc v <- (u^2/2 * (1 - u^2/cc^2 + u^4/(3*cc^4))) * w + (1-w) * (cc^2/6) v } ## The corresponding psi function: psi = rho' ## ## | x - 2x^3/c1^2 + x^5/c1^4 |x| <= c1 ## psi(x) = | ## | 0 |x| > c1 ## ## using ifelse is 3 times slower psi <- function(u, c1) { ##ifelse(abs(u) < c1, u - 2 * u^3/c1^2 + u^5/c1^4, 0) pp <- u - 2 * u^3/c1^2 + u^5/c1^4 pp*(abs(u) <= c1) } ## weight function = psi(u)/u scaledpsi <- function(u, cc) { ##ifelse(abs(xx) < c1, xx - 2 * xx^3/c1^2 + xx^5/c1^4, 0) pp <- (1 - (u/cc)^2)^2 pp <- pp * cc^2/6 pp*(abs(u) <= cc) } ## the objective function, we solve loss.S(u, s, cc) = b for "s" loss.S <- function(u, s, cc) mean(rho(u/s, cc)) norm <- function(x) sqrt(sum(x^2)) ## Returns square root of the mahalanobis distances of x with respect to mu and sigma ## Seems to be somewhat more efficient than sqrt(mahalanobis()) - by factor 1.4! resdis <- function(x, mu, sigma) { central <- t(x) - mu sqdis <- colSums(solve(sigma, central) * central) dis <- sqdis^(0.5) dis } ## Computes Tukey's biweight objective function (scale) ## (respective to the mahalanobis distances u) using the ## rho() function and the konstants kp and c1 scaleS <- function(u, kp, c1, initial.sc=median(abs(u))/.6745) { ## find the scale, full iterations maxit <- 200 eps <- 1e-20 sc <- initial.sc for(i in 1:maxit) { sc2 <- sqrt(sc^2 * mean(rho(u/sc, c1)) / kp) if(abs(sc2/sc - 1) <= eps) break sc <- sc2 } return(sc) } ## ## Do "k" iterative reweighting refining steps from "initial.mu, initial.sigma" ## ## If "initial.scale" is present, it's used, o/w the MAD is used ## ## k = number of refining steps ## conv = 0 means "do k steps and don't check for convergence" ## conv = 1 means "stop when convergence is detected, or the ## maximum number of iterations is achieved" ## kp and cc = tuning constants of the equation ## re.s <- function(x, initial.mu, initial.sigma, initial.scale, k, conv, kp, cc) { n <- nrow(x) p <- ncol(x) rdis <- resdis(x, initial.mu, initial.sigma) if(missing(initial.scale)) { initial.scale <- scale <- median(abs(rdis))/.6745 } else { scale <- initial.scale } ## if conv == 1 then set the max no. of iterations to 50 magic number alert!!! if(conv == 1) k <- 50 mu <- initial.mu sigma <- initial.sigma for(i in 1:k) { ## do one step of the iterations to solve for the scale scale.super.old <- scale scale <- sqrt(scale^2 * mean(rho(rdis/scale, cc)) / kp) ## now do one step of reweighting with the "improved scale" weights <- scaledpsi(rdis/scale, cc) W <- weights %*% matrix(rep(1,p), ncol=p) xw <- x * W/mean(weights) mu.1 <- apply(xw,2,mean) res <- x - matrix(rep(1,n),ncol=1) %*% mu.1 sigma.1 <- t(res) %*% ((weights %*% matrix(rep(1,p), ncol=p)) * res) sigma.1 <- (det(sigma.1))^(-1/p) * sigma.1 if(.isSingular(sigma.1)) { mu.1 <- initial.mu sigma.1 <- initial.sigma scale <- initial.scale break } if(conv == 1) { ## check for convergence if(norm(mu - mu.1) / norm(mu) < 1e-20) break ## magic number alert!!! } rdis <- resdis(x,mu.1,sigma.1) mu <- mu.1 sigma <- sigma.1 } rdis <- resdis(x,mu,sigma) ## get the residuals from the last beta return(list(mu.rw = mu.1, sigma.rw=sigma.1, scale.rw = scale)) } ################################################################################################ n <- nrow(x) p <- ncol(x) best.mus <- matrix(0, best.r, p) best.sigmas <- matrix(0,best.r*p,p) best.scales <- rep(1e20, best.r) s.worst <- 1e20 n.ref <- 1 for(i in 1:nsamp) { ## Generate a p+1 subsample in general position and compute ## its mu and sigma. If sigma is singular, generate another ## subsample. ## FIXME ---> the singularity check 'det(sigma) < 1e-7' can ## in some cases give TRUE, e.g. milk although ## .isSingular(sigma) which uses qr(mat)$rank returns ## FALSE. This can result in many retrials and thus ## speeding down! ## singular <- TRUE iii <- 0 while(singular) { iii <- iii + 1 if(iii > 10000) { cat("\nToo many singular resamples: ", iii, "\n") iii <- 0 } indices <- sample(n, p+1) xs <- x[indices,] mu <- colMeans(xs) sigma <- cov(xs) ##singular <- det(sigma) < 1e-7 singular <- .isSingular(sigma) } sigma <- det(sigma)^(-1/p) * sigma ## Perform k steps of iterative reweighting on the elemental set if(k > 0) { ## do the refining tmp <- re.s(x=x, initial.mu=mu, initial.sigma=sigma, k=k, conv=0, kp=kp, cc=cc) mu.rw <- tmp$mu.rw sigma.rw <- tmp$sigma.rw scale.rw <- tmp$scale.rw rdis.rw <- resdis(x, mu.rw, sigma.rw) } else { ## k = 0 means "no refining" mu.rw <- mu sigma.rw <- sigma rdis.rw <- resdis(x, mu.rw, sigma.rw) scale.rw <- median(abs(rdis.rw))/.6745 } if(i > 1) { ## if this isn't the first iteration.... ## check whether new mu/sigma belong to the top best results; if so keep ## mu and sigma with corresponding scale. scale.test <- loss.S(rdis.rw, s.worst, cc) if(scale.test < kp) { s.best <- scaleS(rdis.rw, kp, cc, scale.rw) ind <- order(best.scales)[best.r] best.scales[ind] <- s.best best.mus[ind,] <- mu.rw bm1 <- (ind-1)*p; best.sigmas[(bm1+1):(bm1+p),] <- sigma.rw s.worst <- max(best.scales) } } else { ## if this is the first iteration, then this is the best solution anyway... best.scales[best.r] <- scaleS(rdis.rw, kp, cc, scale.rw) best.mus[best.r,] <- mu.rw bm1 <- (best.r-1)*p; best.sigmas[(bm1+1):(bm1+p),] <- sigma.rw } } ## do the complete refining step until convergence (conv=1) starting ## from the best subsampling candidate (possibly refined) super.best.scale <- 1e20 for(i in best.r:1) { index <- (i-1)*p tmp <- re.s(x=x, initial.mu=best.mus[i,], initial.sigma=best.sigmas[(index+1):(index+p),], initial.scale=best.scales[i], k=0, conv=1, kp=kp, cc=cc) if(tmp$scale.rw < super.best.scale) { super.best.scale <- tmp$scale.rw super.best.mu <- tmp$mu.rw super.best.sigma <- tmp$sigma.rw } } super.best.sigma <- super.best.scale^2*super.best.sigma return(list( center=as.vector(super.best.mu), cov=super.best.sigma, crit=super.best.scale, iter=nsamp, kp=kp, cc=cc, method="S-estimates: S-FAST")) } ## ## Computes S-estimates of multivariate location and scatter by the Ruppert's ## SURREAL algorithm using Tukey's biweight function ## data - the data: a matrix or a data.frame ## nsamp - number of random (p+1)-subsamples to be drawn, defaults to 600*p ## kp, c1 - tunning constants for the S-estimator with Tukey's biweight ## function given the breakdown point (bdp) and the dimension p ## ..covSURREAL <- function(data, nsamp, kp, c1, trace=FALSE, tol.inv) { ## --- now suspended --- ## ## Compute the tunning constant c1 for the S-estimator with ## Tukey's biweight function given the breakdown point (bdp) ## and the dimension p vcTukey<-function(bdp, p) { cnew <- sqrt(qchisq(1 - bdp, p)) maxit <- 1000 epsilon <- 10^(-8) error <- 10^6 contit <- 1 while(error > epsilon & contit < maxit) { cold <- cnew kp <- vkpTukey(cold,p) cnew <- sqrt(6*kp/bdp) error <- abs(cold-cnew) contit <- contit+1 } if(contit == maxit) warning(" Maximum iterations, the last values for c1 and kp are:") return (list(c1 = cnew, kp = kp)) } ## Compute the constant kp (used in vcTukey) vkpTukey<-function(c0, p) { c2 <- c0^2 intg1 <- (p/2)*pchisq(c2, (p+2)) intg2 <- (p+2)*p/(2*c2)*pchisq(c2, (p+4)) intg3 <- ((p+4)*(p+2)*p)/(6*c2^2)*pchisq(c2, (p+6)) intg4 <- (c2/6)*(1-pchisq(c2, p)) kp <- intg1-intg2+intg3+intg4 return(kp) } ## Computes Tukey's biweight objective function (scale) ## (respective to the mahalanobis distances dx) scaleS <- function(dx, S0, c1, kp, tol) { S <- if(S0 > 0) S0 else median(dx)/qnorm(3/4) test <- 2*tol rhonew <- NA rhoold <- mean(rhobiweight(dx/S,c1)) - kp while(test >= tol) { delta <- rhoold/mean(psibiweight(dx/S,c1)*(dx/(S^2))) mmin <- 1 control <- 0 while(mmin < 10 & control != 1) { rhonew <- mean(rhobiweight(dx/(S+delta),c1))-kp if(abs(rhonew) < abs(rhoold)) { S <- S+delta control <- 1 }else { delta <- delta/2 mmin <- mmin+1 } } test <- if(mmin == 10) 0 else (abs(rhoold)-abs(rhonew))/abs(rhonew) rhoold <- rhonew } return(abs(S)) } rhobiweight <- function(xx, c1) { lessc1 <- (xx^2)/2-(xx^4)/(2*(c1^2))+(xx^6)/(6*c1^4) greatc1 <- (c1^2)/6 lessc1 * abs(xx=c1) } psibiweight <- function(xx, c1) { (xx - (2*(xx^3))/(c1^2)+(xx^5)/(c1^4))*(abs(xx) ceiling(nsamp*0.2)) { if(l == ceiling(nsamp*(0.5))) laux <- 2 if(l == ceiling(nsamp*(0.8))) laux <- 4 epsilon <- runif(1) epsilon <- epsilon^laux muJ <- epsilon*muJ + (1-epsilon)*mutil covJ <- epsilon*covJ + (1-epsilon)*covtil } covJ <- det(covJ) ^ -mb * covJ md<-sqrt(mahalanobis(data, muJ, covJ, tol.inv=tol.inv)) if(mean(rhobiweight(md/Stil, c1)) < kp) { if(Stil < 5e10) Stil <- scaleS(md, Stil, c1, kp, tol) else Stil <- scaleS(md, 0, c1, kp, tol) mutil <- muJ covtil <- covJ psi <- psibiweight(md, c1*Stil) u <- psi/md ubig <- diag(u) ux <- ubig%*%data muJ <- apply(ux, 2, mean)/mean(u) xcenter <- scale(data, center=muJ,scale=FALSE) covJ <- t(ubig%*%xcenter)%*%xcenter covJ <- det(covJ) ^ -mb * covJ control <- 0 cont <- 1 while(cont < 3 && control != 1) { cont <- cont + 1 md <- sqrt(mahalanobis(data, muJ, covJ, tol.inv=tol.inv)) if(mean(rhobiweight(md/Stil, c1)) < kp) { mutil <- muJ covtil <- covJ control <- 1 if(Stil < 5e10) Stil<-scaleS(md, Stil, c1, kp, tol) else Stil<-scaleS(md, 0, c1, kp, tol) }else { muJ <- (muJ + mutil)/2 covJ <- (covJ + covtil)/2 covJ <- det(covJ) ^ -mb * covJ } } } } covtil <- Stil^2 * covtil return (list(center = mutil, cov = covtil, crit = Stil, iter = nsamp, kp=kp, cc=c1, method="S-estimates: SURREAL") ) } ## ## Compute the S-estimate of location and scatter using the bisquare function ## ## NOTE: this function is equivalent to the function ..covSRocke() for computing ## the rocke type estimates with the following diferences: ## - the call to .iter.rocke() instead of iter.bic() ## - the mahalanobis distance returned by iter.bic() is sqrt(mah) ## ## arp - not used, i.e. used only in the Rocke type estimates ## eps - Iteration convergence criterion ## maxiter - maximum number of iterations ## t0, S0 - initial HBDM estimates of center and location ## nsamp, seed - if not provided T0 and S0, these will be used for CovMve() ## to compute them ## initcontrol - if not provided t0 and S0, initcontrol will be used to compute ## them ## ..covSBic <- function(x, arp, eps, maxiter, t0, S0, nsamp, seed, initcontrol, trace=FALSE){ dimn <- dimnames(x) dx <- dim(x) n <- dx[1] p <- dx[2] method <- "S-estimates: bisquare" ## standarization mu <- apply(x, 2, median) devin <- apply(x, 2, mad) x <- scale(x, center = mu, scale=devin) ## If not provided initial estimates, compute them as MVE ## Take the raw estimates and standardise the covariance ## matrix to determinant=1 if(missing(t0) || missing(S0)){ if(missing(initcontrol)) init <- CovMve(x, nsamp=nsamp, seed=seed) else init <- restimate(initcontrol, x) cl <- class(init) if(cl == "CovMve" || cl == "CovMcd" || cl == "CovOgk"){ t0 <- init@raw.center S0 <- init@raw.cov ## xinit <- cov.wt(x[init@best,]) ## t0 <- xinit$center ## S0 <- xinit$cov detS0 <-det(S0) detS02 <- detS0^(1.0/p) S0 <- S0/detS02 } else{ t0 <- init@center S0 <- init@cov } } ## initial solution center <- t0 cov <- S0 out <- .iter.bic(x, center, cov, maxiter, eps, trace=trace) center <- out$center cov <- out$cov mah <- out$mah iter <- out$iter kp <- out$kp cc <- out$cc mah <- mah^2 med0 <- median(mah) qchis5 <- qchisq(.5,p) cov <- (med0/qchis5)*cov mah <- (qchis5/med0)*mah DEV1 <- diag(devin) center <- DEV1%*%center+mu cov <- DEV1%*%cov%*%DEV1 center <- as.vector(center) crit <- determinant(cov, logarithm = FALSE)$modulus[1] if(!is.null(nms <- dimn[[2]])) { names(center) <- nms dimnames(cov) <- list(nms,nms) } return (list(center=center, cov=cov, crit=crit, method=method, iter=iter, kp=kp, cc=cc, mah=mah) ) } ## ## Compute the S-estimate of location and scatter using Rocke type estimator ## ## see the notes to ..covSBic() ## ..covSRocke <- function(x, arp, eps, maxiter, t0, S0, nsamp, seed, initcontrol, trace=FALSE){ dimn <- dimnames(x) dx <- dim(x) n <- dx[1] p <- dx[2] method <- "S-estimates: Rocke type" ## standarization mu <- apply(x, 2, median) devin <- apply(x, 2, mad) x <- scale(x, center = mu, scale=devin) ## If not provided initial estimates, compute them as MVE ## Take the raw estimates and standardise the covariance ## matrix to determinant=1 if(missing(t0) || missing(S0)){ if(missing(initcontrol)) init <- CovMve(x, nsamp=nsamp, seed=seed) else init <- restimate(initcontrol, x) cl <- class(init) if(cl == "CovMve" || cl == "CovMcd" || cl == "CovOgk"){ t0 <- init@raw.center S0 <- init@raw.cov ## xinit <- cov.wt(x[init@best,]) ## t0 <- xinit$center ## S0 <- xinit$cov detS0 <-det(S0) detS02 <- detS0^(1.0/p) S0 <- S0/detS02 } else{ t0 <- init@center S0 <- init@cov } } ## initial solution center <- t0 cov <- S0 out <- .iter.rocke(x, center, cov, maxiter, eps, alpha=arp, trace=trace) center <- out$center cov <- out$cov mah <- out$mah iter <- out$iter # mah <- mah^2 med0 <- median(mah) qchis5 <- qchisq(.5,p) cov <- (med0/qchis5)*cov mah <- (qchis5/med0)*mah DEV1 <- diag(devin) center <- DEV1%*%center+mu cov <- DEV1%*%cov%*%DEV1 center <- as.vector(center) crit <- determinant(cov, logarithm = FALSE)$modulus[1] if(!is.null(nms <- dimn[[2]])) { names(center) <- nms dimnames(cov) <- list(nms,nms) } return (list(center=center, cov=cov, crit=crit, method=method, iter=iter, kp=0, cc=0, mah=mah) ) } .iter.bic <- function(x, center, cov, maxiter, eps, trace) { stepS <- function(x, b, cc, mah, n, p) { p2 <- (-1/p) w <- w.bi(mah,cc) w.v <- matrix(w,n,p) tn <- colSums(w.v*x)/sum(w) xc <- x-t(matrix(tn,p,n)) vn <- t(xc)%*%(xc*w.v) eii <- eigen(vn, symmetric=TRUE, only.values = TRUE) eii <- eii$values aa <- min(eii) bb <- max(eii) condn <- bb/aa cn <- NULL fg <- TRUE if(condn > 1.e-12) { fg <- FALSE cn <- (det(vn)^p2)*vn } out1 <- list(tn, cn, fg) names(out1) <- c("center", "cov", "flag") return(out1) } scale.full <- function(u, b, cc) { #find the scale - full iterations max.it <- 200 s0 <- median(abs(u))/.6745 s.old <- s0 it <- 0 eps <- 1e-4 err <- eps + 1 while(it < max.it && err > eps) { it <- it+1 s.new <- s.iter(u,b,cc,s.old) err <- abs(s.new/s.old-1) s.old <- s.new } return(s.old) } rho.bi <- function(x, cc) { ## bisquared rho function dif <- abs(x) - cc < 0 ro1 <- (x^2)/2 - (x^4)/(2*(cc^2)) + (x^6)/(6*(cc^4)) ro1[!dif] <- cc^2/6 return(ro1) } psi.bi <- function(x, cc) { ## bisquared psi function dif <- abs(x) - cc < 0 psi1 <- x - (2*(x^3))/(cc^2) + (x^5)/(cc^4) psi1[!dif] <- 0 return(psi1) } w.bi <- function(x, cc) { ## bicuadratic w function dif <- abs(x) - cc < 0 w1 <- 1 - (2*(x^2))/(cc^2) + (x^4)/(cc^4) w1[!dif] <- 0 w1 } s.iter <- function(u, b, cc, s0) { # does one step for the scale ds <- u/s0 ro <- rho.bi(ds, cc) snew <- sqrt(((s0^2)/b) * mean(ro)) return(snew) } ################################################################################## ## main routine for .iter.bic() cc <- 1.56 b <- cc^2/12 dimx <- dim(x) n <- dimx[1] p <- dimx[2] if(trace) cat("\nbisquare.: bdp, p, c1, kp=", 0.5, p, cc, b, "\n") mah <- sqrt(mahalanobis(x, center, cov)) s0 <- scale.full(mah, b, cc) mahst <- mah/s0 ## main loop u <- eps + 1 fg <- FALSE it <- 0 while(u > eps & !fg & it < maxiter) { it <- it + 1 out <- stepS(x, b, cc, mahst, n, p) fg <- out$flag if(!fg) { center <- out$center cov <- out$cov mah <- sqrt(mahalanobis(x, center, cov)) s <- scale.full(mah, b, cc) mahst <- mah/s u <- abs(s-s0)/s0 s0 <- s } } list(center=center, cov=cov, mah=mah, iter=it, kp=b, cc=cc) } .iter.rocke <- function(x, mu, v, maxit, tol, alpha, trace) { rho.rk2 <- function(t, p, alpha) { x <- t z <- qchisq(1-alpha, p) g <- min(z/p - 1, 1) uu1 <- (x <= 1-g) uu2 <- (x > 1-g & x <= 1+g) uu3 <- (x > 1+g) zz <- x x1 <- x[uu2] dd <- ((x1-1)/(4*g))*(3-((x1-1)/g)^2)+.5 zz[uu1] <- 0 zz[uu2] <- dd zz[uu3] <- 1 return(zz) } w.rk2 <- function(t, p, alpha) { x <- t z <- qchisq(1-alpha, p) g <- min(z/p - 1, 1) uu1 <- (x <= (1-g) ) uu2 <- (x > 1-g & x <= 1+g) uu3 <- (x > (1+g)) zz <- x x1 <- x[uu2] dd <- (3/(4*g))*(1-((x1-1)/g)^2) zz[uu1] <- 0 zz[uu2] <- dd zz[uu3] <- 0 return(zz) } disesca <- function(x, mu, v, alpha, delta) { ## calculate square roots of Mahalanobis distances and scale dimx <- dim(x) n <- dimx[1] p <- dimx[2] p2 <- (1/p) p3 <- -p2 maha <- mahalanobisfl(x,mu,v) dis <- maha$dist fg <- maha$flag detv <- maha$det sig <- NULL v1 <- NULL dis1 <- NULL if(!fg) { dis1 <- dis*(detv^p2) v1 <- v*(detv^p3) sig <- escala(p, dis1, alpha, delta)$sig } out <- list(dis=dis1, sig=sig, flag=fg, v=v1) return(out) } fespro <- function(sig, fp, fdis, falpha, fdelta) { z <- fdis/sig sfun <- mean(rho.rk2(z, fp, falpha)) - fdelta return(sfun) } escala <- function(p, dis, alpha, delta) { ## find initial interval for scale sig <- median(dis) a <- sig/100 ff <- fespro(a, p, dis, alpha, delta) while(ff < 0) { a <- a/10 ff <- fespro(a, p, dis, alpha, delta) } b <- sig*10 ff <- fespro(b, p, dis, alpha, delta) while(ff>0) { b <- b*10 ff <- fespro(b, p, dis, alpha, delta) } ## find scale (root of fespro) sig.res <- uniroot(fespro, lower=a, upper=b, fp=p, fdis=dis, falpha=alpha, fdelta=delta) sig <- sig.res$root mens <- sig.res$message ans <- list(sig=sig, message=mens) return(ans) } gradien <- function(x, mu1, v1, mu0, v0, sig0, dis0, sig1, dis1, alpha) { dimx <- dim(x) n <- dimx[1] p <- dimx[2] delta <- 0.5*(1-p/n) decre <- 0. mumin <- mu0 vmin <- v0 dismin <- dis0 sigmin <- sig0 for(i in 1:10) { gamma <- i/10 mu <- (1-gamma)*mu0+gamma*mu1 v <- (1-gamma)*v0+gamma*v1 dis.res <- disesca(x,mu,v,alpha,delta) if(!dis.res$flag) { sigma <- dis.res$sig decre <- (sig0-sigma)/sig0 if(sigma < sigmin) { mumin <- mu vmin <- dis.res$v sigmin <- dis.res$sig dismin <- dis.res$dis } } } ans <- list(mu=mumin, v=vmin, sig=sigmin, dis=dismin) return(ans) } descen1 <- function(x, mu, v, alpha, sig0, dis0) { ## one step of reweighted dimx <- dim(x) n <- dimx[1] p <- dimx[2] p2 <- -(1/p) delta <- 0.5*(1-p/n) daux <- dis0/sig0 w <- w.rk2(daux, p, alpha) w.v <- w %*% matrix(1,1,p) mui <- colSums(w.v * x)/sum(w) xc <- x- (matrix(1,n,1) %*% mui) va <- t(xc) %*% (xc*w.v) disi.res <- disesca(x,mui,va,alpha,delta) if(disi.res$flag) { disi.res$sig <- sig0+1 disi.res$v <- va } disi <- disi.res$dis sigi <- disi.res$sig flagi <- disi.res$flag deti<-disi.res$det vi <- disi.res$v ans <- list(mui=mui, vi=vi, sig=sigi, dis=disi, flag=flagi) return(ans) } invfg <- function(x, tol=1.e-12) { dm <- dim(x) p <- dm[1] y <- svd(x) u <- y$u v <- y$v d <- y$d cond <- min(d)/max(d) fl <- FALSE if(cond < tol) fl <- TRUE det <- prod(d) invx <- NULL if(!fl) invx <- v%*%diag(1/d)%*%t(u) out <- list(inv=invx, flag=fl, det=det) return(out) } mahalanobisfl <- function(x, center, cov, tol=1.e-12) { invcov <- invfg(cov,tol) covinv <- invcov$inv fg <- invcov$flag det1 <- invcov$det dist <- NULL if(!fg) dist <- mahalanobis(x, center, covinv, inverted=TRUE) out <- list(dist=dist, flag=fg, det=det1) return(out) } ################################################################################## ## main routine for .iter.rocke() if(trace) { cat("\nWhich initial t0 and S0 are we using: \n") print(mu) print(v) } dimx <- dim(x) n <- dimx[1] p <- dimx[2] delta <- 0.5*(1-p/n) dis.res <- disesca (x, mu, v, alpha, delta) vmin <- v mumin <- mu sigmin <- dis.res$sig dismin <- dis.res$dis it <- 1 decre <- tol+1 while(decre > tol && it <= maxit) { ## do reweighting des1 <- descen1(x, mumin, vmin, alpha, sigmin, dismin) mu1 <- des1$mui v1 <- des1$vi dis1 <- des1$dis sig1 <- des1$sig decre1 <- (sigmin-sig1)/sigmin if(trace) { cat("\nit, decre1:",it,decre1, "\n") print(des1) } if(decre1 <= tol) { grad <- gradien(x, mu1, v1, mumin, vmin, sigmin, dismin, sig1, dis1, alpha) mu2 <- grad$mu v2 <- grad$v sig2 <- grad$sig dis2<-grad$dis decre2 <- (sigmin-sig2)/sigmin decre <- max(decre1,decre2) if(decre1 >= decre2) { mumin <- mu1 vmin <- v1 dismin <- dis1 sigmin <- sig1 } if(decre1 < decre2) { mumin <- mu2 vmin <- v2 dismin <- dis2 sigmin <- sig2 } } if(decre1 > tol) { decre <- decre1 mumin <- mu1 vmin <- v1 dismin <- dis1 sigmin <- sig1 } it <- it+1 } ans <- list(center=mumin, cov=vmin, scale=sigmin, mah=dismin, iter=it) return(ans) } rrcov/R/T2.test.R0000644000176200001440000002236014443667016013212 0ustar liggesusersT2.test <- function(x, ...) UseMethod("T2.test") T2.test.default <- function(x, y = NULL, mu = 0, conf.level = 0.95, method=c("c", "mcd"), ...) { xcall <- match.call() method <- match.arg(method) if(!is.null(y)){ dname <- paste(deparse(substitute(x)),"and", deparse(substitute(y))) } else dname <- deparse(substitute(x)) ## Validate that x is a numerical matrix or a dataframe, ## convert to a matrix and drop all rows with missing values x <- .tomatrix(x) dx <- dim(x) n <- n1 <- dx[1] p <- dx[2] if(!is.null(y)) { ## Validate that y is a numerical matrix or a dataframe, ## convert to a matrix and drop all rows with missing values y <- .tomatrix(y) dy <- dim(y) n2 <- dy[1] py <- dy[2] if(p != py) stop("'x' and 'y' must have the same dimension!") } if(!is.numeric(mu) || ((lmu <- length(mu)) > 1 & lmu != p)) stop("'mu' must be a numeric vector of length ", p) if(lmu == 1) mu <- rep(mu, p) if(!missing(conf.level) && (length(conf.level) != 1 || !is.finite(conf.level) || conf.level < 0 || conf.level > 1)) stop("'conf.level' must be a single number between 0 and 1") alpha <- 1 - conf.level ## One sample test - y == NULL if(is.null(y)) { alternative <- paste("true mean vector is not equal to", paste("(", paste(round(mu, digits=3), collapse = ", "), ")'", sep = ""), "\n") null.value <- mu METHOD = "One-sample Hotelling test" if(method == "c"){ xbar <- colMeans(x) xdiff <- xbar - mu V <- var(x) d <- p * (n-1)/(n-p) q <- n-p T2 <- STATISTIC <- n * crossprod(xdiff, solve(V, xdiff))[1, ] F <- STATISTIC <- STATISTIC/d PVALUE <- 1 - pf(STATISTIC, p, n - p) PARAMETER <- c(p, n - p) ESTIMATE = t(as.matrix(xbar)) rownames(ESTIMATE) <- "mean x-vector" }else if(method == "mcd"){ mcd <- CovMcd(x, trace=FALSE, alpha=0.75) xbar <- getCenter(mcd) xdiff <- xbar - mu V <- getCov(mcd) xdq <- .getApprox(p, n) d <- xdq$d q <- xdq$q T2 <- STATISTIC <- n * crossprod(xdiff, solve(V, xdiff))[1, ] F <- STATISTIC <- STATISTIC/d PVALUE <- 1 - pf(STATISTIC, p, q) PARAMETER <- c(p, q) ESTIMATE = t(as.matrix(xbar)) rownames(ESTIMATE) <- "MCD x-vector" METHOD <- paste(METHOD, " (Reweighted MCD Location)") } else stop(paste("Invalid method=",method)) cutoff.alpha <- qf(1-alpha, p, q) ## simultaneous confidence intervals for the components of mu conf.int <- matrix(1:(2*p), nrow=p) for(i in 1:p) { conf.int[i,1] <- xbar[i] - sqrt(1/n*d*qf(1-alpha, p, q) * V[i,i]) conf.int[i,2] <- xbar[i] + sqrt(1/n*d*qf(1-alpha, p, q) * V[i,i]) } dimnames(conf.int) <- list(dimnames(x)[[2]], c("Lower bound","Upper bound")) attr(conf.int,"conf.level") <- conf.level ## switch off the confidence intervals, since 'htest' ## does not know how to print them conf.int <- NULL } else { if(method != "c") stop("Robust two-sample test not yet implemeted!") xbar <- colMeans(x) ybar <- colMeans(y) xdiff <- xbar - ybar # the difference between the two means Vx <- var(x) Vy <- var(y) V <- ((n1 - 1) * Vx + (n2 - 1) * Vy) / (n1+ n2 - 2) # the pooled covariance matrix df1 <- p df2 <- n1 + n2 - p - 1 T2 <- STATISTIC <- crossprod(xdiff, solve(V, xdiff))[1,] * n1 * n2 / (n1+n2) F <- STATISTIC <- STATISTIC * (n1 + n2 - p - 1) / (n1 + n2 - 2) / p PVALUE <- 1 - pf(STATISTIC, df1, df2) PARAMETER = c(df1, df2) null.value <- NULL METHOD = "Two-sample Hotelling test" ESTIMATE = rbind(xbar, ybar) rownames(ESTIMATE) <- c("mean x-vector", "mean y-vector") alternative <- paste("true difference in mean vectors is not equal to (", paste(rep(0,p), collapse=","),")", sep="") conf.int <- NULL } names(PARAMETER) <- c("df1", "df2") ## names(STATISTIC) <- "T^2" STATISTIC <- c(T2, F) names(STATISTIC) <- c("T2", "F") rval <- list(statistic = STATISTIC, parameter = PARAMETER, p.value = PVALUE, conf.int=conf.int, estimate=ESTIMATE, null.value = NULL, alternative = alternative, method=METHOD, data.name=dname) class(rval) <- "htest" return(rval) } T2.test.formula <- function(formula, data, subset, na.action, ...) { if(missing(formula) || (length(formula) != 3) || (length(attr(terms(formula[-2]), "term.labels")) != 1)) stop("'formula' missing or incorrect") m <- match.call(expand.dots = FALSE) if(is.matrix(eval(m$data, parent.frame()))) m$data <- as.data.frame(data) m[[1]] <- as.name("model.frame") m$... <- NULL mf <- eval(m, parent.frame()) DNAME <- paste(names(mf), collapse = " by ") names(mf) <- NULL response <- attr(attr(mf, "terms"), "response") g <- factor(mf[[-response]]) if(nlevels(g) != 2) stop("grouping factor must have exactly 2 levels") xind <- which(g==levels(g)[1]) yind <- which(g==levels(g)[2]) y <- T2.test(x=mf[[response]][xind,], y=mf[[response]][yind,], ...) y$data.name <- DNAME y } ## ## Validate that 'x' is a numeric data frame or matrix. ## Convert 'x' to a matrix ## Optionally drop all rows with missing values ## .tomatrix <- function(x, drop.missing=TRUE){ x.name <- deparse(substitute(x)) msg <- paste(x.name, " is not a numeric dataframe or matrix.") if(is.vector(x) || (is.matrix(x) && !is.data.frame(x))) { if(!is.numeric(x)) stop(msg) } if(!is.vector(x) && !is.matrix(x) || is.data.frame(x)) { if((!is.data.frame(x) && !is.numeric(x)) || (!all(sapply(x, data.class) == "numeric"))) stop(msg) } x <- as.matrix(x) if(drop.missing){ ## drop all rows with missing values na.x <- !is.finite(x %*% rep(1, ncol(x))) xok <- !na.x x <- x[xok, , drop = FALSE] dx <- dim(x) if(!length(dx)) stop("All observations have missing values!") } x } .kappa.s <- function(alfa, p) { ## Computes the asymptotic variance for the reweighted ## MCD location estimator ## - p is the dimension ## - alfa, between 1/2 and 1 is the percentage of the observations ## that are used to determine the raw MCD. alfa <- 1 - alfa qalfa <- qchisq(1 - alfa, p) calfainvers <- pgamma(qalfa/2, p/2 + 1) c2 <- -1/2 * pgamma(qalfa/2, p/2 + 1) effrr <- (4 * c2^2)/calfainvers delta <- 0.025 qdelta <- qchisq(1 - delta, p) c1invers <- pgamma(qdelta/2, p/2 + 1) c2delta <- -1/2 * pgamma(qdelta/2, p/2 + 1) c1tilde <- pgamma(qdelta/2, p/2) asvar <- (1 + (2 * c2delta)/c1tilde)^2/effrr asvar <- asvar - (calfainvers * (c1tilde + 2 * c2delta))/(c1tilde^2 * c2) asvar <- asvar + c1invers/c1tilde^2 return(asvar) } ## ## F approximation for the robust Hotelling test - Willems et al ## Calculate the factor d and the degrees of freedom q for a given n and p ## .getApprox <- function(p, n) { ## determining the estimates for E[X] and Var[X] coeffpqp2varx <- matrix(c(7,4.829586,2.868279,10,4.261745,3.023672),ncol=2) coeffpqp2ex <- matrix(c(7,1.050505,1.360808,10,0.7280273,1.4685161),ncol=2) limvarx <- .kappa.s(0.75, p)^2*2*p limex <- .kappa.s(0.75, p)*p vb1 <- exp(coeffpqp2varx[2,1])/p^(coeffpqp2varx[3,1]) vb2 <- exp(coeffpqp2varx[2,2])/p^(coeffpqp2varx[3,2]) vb <- c(log(vb1),log(vb2)) va12 <- log(7*p^2) va22 <- log(10*p^2) vA <- matrix(c(1,va12,1,va22), ncol=2, byrow=TRUE) vy <- if(p == 2) c(8.518773,-1.851881) else if(p == 1) c(6.202284,-1.731468) else solve(vA,vb) varx <- limvarx+exp(vy[1])/(n^(-vy[2])) eb1 <- exp(coeffpqp2ex[2,1])/p^(coeffpqp2ex[3,1]) eb2 <- exp(coeffpqp2ex[2,2])/p^(coeffpqp2ex[3,2]) eb <- c(log(eb1),log(eb2)) ea12 <- log(7*p^2) ea22 <- log(10*p^2) eA <- matrix(c(1,ea12,1,ea22), ncol=2, byrow=TRUE) ey <- if(p == 2) c(3.383723,-1.081893) else if(p == 1) c(2.741737,-1.403526) else solve(eA, eb) ex <- limex + exp(ey[1])/(n^(-ey[2])) ## matching the moments q <- (varx/ex^2*p/2-1)^(-1)*(p+2) + 4 ## When n gets large, the expression for q goes to infinity, ## but is very sensitive; no harm is done by setting q equal ## to n when the expression yields negative or extremely large values if(q > n || q < 0) q <- n d <- ex*(q-2)/q list(d=d, q=q) } rrcov/R/CovMrcd.R0000644000176200001440000000510614443667016013303 0ustar liggesusersCovMrcd <- function(x, alpha=control@alpha, h=control@h, maxcsteps=control@maxcsteps, initHsets=NULL, save.hsets=FALSE, rho=control@rho, target=control@target, maxcond=control@maxcond, trace=control@trace, control=CovControlMrcd()) { if(is.data.frame(x)) x <- data.matrix(x, rownames.force=FALSE) else if (!is.matrix(x)) x <- matrix(x, length(x), 1, dimnames = list(names(x), deparse(substitute(x)))) ## drop all rows with missing values (!!) : ok <- is.finite(x %*% rep.int(1, ncol(x))) x <- x[ok, , drop = FALSE] if(!length(dx <- dim(x))) stop("All observations have missing values!") n <- dx[1]; p <- dx[2] dimn <- dimnames(x) ## VT::18.07.2022 - maxcond passed to the lowlevel function mcd <- .detmrcd (x, alpha=alpha, h=h, hsets.init = initHsets, save.hsets=save.hsets, # full.h=full.h, rho=rho, maxcond=maxcond, target=if(target=="identity") 0 else 1, maxcsteps=maxcsteps, trace=as.integer(trace)) alpha <- mcd$alpha h <- mcd$h ans <- list(call = match.call(), method = sprintf("MRCD(alpha=%g ==> h=%d)", alpha, h)) ans$method <- paste("Minimum Regularized Covariance Determinant", ans$method) ans$cov <- mcd$initcovariance ans$center <- as.vector(mcd$initmean) ans$n.obs <- n ans$best <- sort(as.vector(mcd$best)) ans$alpha <- alpha ans$quan <- h ans$crit <- mcd$mcdestimate ans$mah <- mahalanobis(x, mcd$initmean, mcd$icov, inverted=TRUE) if(length(dimn[[1]])) dimnames(x)[[1]] <- dimn[[1]][ok] else dimnames(x) <- list(seq(along = ok)[ok], NULL) ans$X <- x if(trace) cat(ans$method, "\n") ans <- c(ans, mcd[c("calpha", "iBest","n.csteps", if(save.hsets) "initHsets", "icov","rho", "target")]) class(ans) <- "mcd" if(!is.null(nms <- dimn[[2]])) { dimnames(ans$cov) <- list(nms, nms) dimnames(ans$icov) <- list(nms, nms) names(ans$center) <- nms } new("CovMrcd", call= ans$call, crit=ans$crit, cov=ans$cov, icov=ans$icov, rho=ans$rho, target=ans$target, center=ans$center, n.obs=ans$n.obs, mah = ans$mah, X = ans$X, method=ans$method, best=ans$best, alpha=ans$alpha, quan=ans$quan, cnp2 = ans$calpha) } rrcov/R/plot-utils.R0000644000176200001440000005546614660213661014072 0ustar liggesusers###### ## VT::14.01.2020 ## ## ## roxygen2::roxygenise("C:/users/valen/onedrive/myrepo/R/rrcov", load_code=roxygen2:::load_installed) ## #' Calculates the points for drawing a confidence ellipsoid #' #' @description A simple function to calculate the points of #' a confidence ellipsoid, by default \code{dist=qchisq(0.975, 2)} #' @param loc location vector #' @param cov a \code{pXp} covariance matrix #' @param crit the confidence level, default is \code{crit=0.975} #' @return A matrix with two columns containing the calculated points. #' #' @examples #' #' data(hbk) #' cc <- cov.wt(hbk) #' e1 <- getEllipse(loc=cc$center[1:2], cov=cc$cov[1:2,1:2]) #' e2 <- getEllipse(loc=cc$center[1:2], cov=cc$cov[1:2,1:2], crit=0.99) #' plot(X2~X1, data=hbk, #' xlim=c(min(X1, e1[,1], e2[,1]), max(X1,e1[,1], e2[,1])), #' ylim=c(min(X2, e1[,2], e2[,2]), max(X2,e1[,2], e2[,2]))) #' lines(e1, type="l", lty=1, col="red") #' lines(e2, type="l", lty=2, col="blue") #' legend("topleft", legend=c(0.975, 0.99), lty=1:2, col=c("red", "blue")) #' #' @export #' @author Valentin Todorov, \email{valentin.todorov@@chello.at} #' getEllipse <- function(loc=c(0, 0), cov=matrix(c(1,0,0,1), ncol=2), crit=0.975) { ## A simple function to calculate the points of a confidence ellipsoid, ## by default \code{dist=qchisq(0.975, 2)} ## input: data set location and covariance estimate, cutoff if (length(d <- dim(cov)) != 2 || (p <- d[1]) != d[2]) stop("'cov' must be p x p cov-matrix defining an ellipsoid") dist <- sqrt(qchisq(crit, p)) A <- solve(cov) eA <- eigen(A) ev <- eA$values lambda1 <- max(ev) lambda2 <- min(ev) eigvect <- eA$vectors[, order(ev)[2]] z <- seq(0, 2 * pi, by = 0.01) z1 <- dist/sqrt(lambda1) * cos(z) z2 <- dist/sqrt(lambda2) * sin(z) alfa <- atan(eigvect[2]/eigvect[1]) r <- matrix(c(cos(alfa), - sin(alfa), sin(alfa), cos(alfa)), ncol = 2) z <- t(t(cbind(z1, z2) %*% r) + loc) # xmin <- min(x, z[, 1]) z } ## Internal class defining a default legend parameters to be used ## in plots with both robust and classical lines in the same panel ## (e.g. scree plot, tolerance ellipses) setClass(".Legend", representation( leg = "logical", # whether to draw a legend pos = "character", # position of the legend txt = "vector", # texts col = "vector", # colors lty = "vector", # line styles pch = "vector"), # characters prototype = list(leg = TRUE, pos = "topright", txt = c("robust", "classical"), col = c("red", "blue"), lty = c("solid", "solid"), pch = c(1,24))) myscreeplot <- function(rcov, ccov) { .myscreeplot(rcov, ccov) } .myscreeplot <- function(rcov, ccov) { er <- NULL ec <- NULL ee <- NULL if(!missing(ccov)) ee <- ec <- getEvals(ccov) if(!missing(rcov)) ee <- er <- getEvals(rcov) if(is.null(ee)) stop("Both parameters are NULL") leg <- new(".Legend") eall <- if(!is.null(ec) && !is.null(er)) c(er, ec) else if(!is.null(ec)) ec else er ylim <- c(min(eall), max(eall)) plot(ee, ylim=ylim, ylab="Eigenvalues", xlab="Index", type="n") if(!is.null(ec) && !is.null(er)) legend(leg@pos, leg@txt, pch = leg@pch, lty = leg@lty, col = leg@col) if(!is.null(er)) lines(er, type="o", pch = leg@pch[1], lty = leg@lty[1], col=leg@col[1]) if(!is.null(ec)) lines(ec, type="o", pch = leg@pch[2], lty = leg@lty[2], col=leg@col[2]) title(main="Scree plot") } .myddplot <- function(md, rd, cutoff, id.n, main="Distance-Distance Plot", xlab="Mahalanobis distance", ylab="Robust distance", labs=1:length(md), ...) { ## Distance-Distance Plot: ## Plot the vector y=rd (robust distances) against ## x=md (mahalanobis distances). Identify by a label the id.n ## observations with largest rd. If id.n is not supplied, calculate ## it as the number of observations larger than cutoff. Use cutoff ## to draw a horisontal and a vertical line. Draw also a dotted line ## with a slope 1. n <- length(md) if(missing(id.n)) id.n <- length(which(rd>cutoff)) plot(md, rd, xlab=xlab, ylab=ylab, type="p", ...) .label(md, rd, id.n, labs=labs) abline(0, 1, lty=2) abline(v=cutoff) abline(h=cutoff) title(main=main) } .mydistplot <- function(x, cutoff, classic = FALSE, id.n, ylim=NULL, main="Distance Plot", xlab="Index", ylab=paste(if(classic) "Mahalanobis" else "Robust", "distance"), labs=1:length(x), ...) { ## VT::10.11.2007 - change "Squared Robust distance" to "Robust distance" ## VT::10.11.2007 - Add parameter ylim to make possible robust and ## classical plot to use the same y-scale ## Index Plot: ## Plot the vector x (robust or mahalanobis distances) against ## the observation indexes. Identify by a label the id.n ## observations with largest value of x. If id.n is not supplied, ## calculate it as the number of observations larger than cutoff. ## Use cutoff to draw a horisontal line. ## Use classic=FALSE/TRUE to choose the label of the vertical axes n <- length(x) if(missing(id.n)) id.n <- length(which(x>cutoff)) plot(x, ylab=ylab, xlab=xlab, type="p", ylim=ylim, ...) .label(1:n, x, id.n, labs=labs) abline(h=cutoff) title(main=main) } .qqplot <- function(x, p, cutoff, classic=FALSE, id.n, main=eval(substitute(expression(paste(chi^2, " QQ-Plot")))), xlab=eval(substitute(expression(paste("Sqrt of the quantiles of the ", chi[p]^2, " distribution")), list(p=p))), ylab=paste(if(classic) "Mahalanobis" else "Robust", "distance"), labs=1:length(x), ...) { ## Chisquare QQ-Plot: ## Plot the vector x (robust or mahalanobis distances) against ## the square root of the quantiles of the chi-squared distribution ## with p degrees of freedom. ## Identify by a label the id.n observations with largest value of x. ## If id.n is not supplied, calculate it as the number of observations ## larger than cutoff. ## Use classic=FALSE/TRUE to choose the label of the vertical axes ## parameters and preconditions n <- length(x) if(missing(cutoff)) cutoff <- sqrt(qchisq(0.975, p)) if(missing(id.n)) id.n <- length(which(x>cutoff)) qq <- sqrt(qchisq(((1:n)-1/3)/(n+1/3), p)) x <- sort(x, index.return=TRUE) ix <- x$ix x <- x$x ## xlab <- "Square root of the quantiles of the chi-squared distribution" plot(qq, x, xlab=xlab, ylab=ylab, type="p", ...) if(id.n > 0) { ind <- (n-id.n+1):n xrange <- par("usr") xrange <- xrange[2] - xrange[1] text(qq[ind] + xrange/50, x[ind], labs[ix[ind]]) } abline(0, 1, lty=2) title(main=main) } .label <- function(x, y, id.n=3, labs=1:length(x)) { if(id.n > 0) { xrange <- par("usr") xrange <- xrange[2] - xrange[1] n <- length(y) ind <- sort(y, index.return=TRUE)$ix ind <- ind[(n-id.n+1):n] text(x[ind] + xrange/40, y[ind], labs[ind], cex=0.9) } } .tolellipse <- function(rcov, ccov, cutoff = NULL, id.n = NULL, tol = 1e-07, main = "Tolerance ellipse (97.5%)", xlab = "", ylab = "", labs, legend.position="bottomright", ...) { leg <- new(".Legend") if(missing(rcov) || is.null(rcov)){ if(missing(ccov) || is.null(ccov)) stop("Location and scatter matrix must be provided!") ## there is no robust location/scatter object rcov <- ccov leg@leg <- FALSE } if(is.null(data <- getData(rcov))) stop("No data provided!") n <- dim(data)[1] p <- dim(data)[2] if(p != 2) stop("Dimension must be 2!") r.cov <- getCov(rcov) r.loc <- getCenter(rcov) if(length(r.loc) == 0 || length(r.cov) == 0) stop("Invalid 'rcov' object: attributes center and cov missing!") z1 <- getEllipse(loc = r.loc, cov = r.cov) rd <- sqrt(getDistance(rcov)) x1 <- c(min(data[, 1], z1[, 1]), max(data[,1],z1[,1])) y1 <- c(min(data[, 2], z1[, 2]), max(data[,2],z1[,2])) classic <- FALSE if(!missing(ccov) && !is.null(ccov)){ c.cov <- getCov(ccov) c.loc <- getCenter(ccov) if(length(c.loc) == 0 || length(c.cov) == 0) stop("Invalid 'ccov' object: attributes center and cov missing!") classic <- TRUE z2 <- getEllipse(loc=c.loc, cov=c.cov) md <- sqrt(getDistance(ccov)) x1 <- c(min(data[, 1], z1[, 1], z2[, 1]), max(data[,1],z1[,1], z2[,1])) y1 <- c(min(data[, 2], z1[, 2], z2[, 2]), max(data[,2],z1[,2], z2[,2])) } ## Note: the *calling* function may pass a 'missing' value if(missing(cutoff) || is.null(cutoff)) cutoff <- sqrt(qchisq(0.975, df = 2)) if(missing(id.n) || is.null(id.n)) id.n <- sum(rd > cutoff) if(missing(labs) || is.null(labs)) labs <- 1:length(rd) ind <- sort(rd, index.return=TRUE)$ix ind <- ind[(n-id.n+1):n] ## 1. Robust tolerance ## define the plot, plot a box, plot the "good" points, ## plot the outliers either as points or as numbers depending on outflag, ## plot the ellipse, write a title of the plot plot(data, xlim = x1, ylim = y1, xlab = xlab, ylab = ylab, ...) box() ## VT:::03.08.2008 if(id.n > 0){ xrange <- par("usr") xrange <- xrange[2] - xrange[1] text(data[ind, 1] + xrange/50, data[ind, 2], labs[ind]) } if(leg@leg) points(z1, type = "l", lty=leg@lty[1], col=leg@col[1]) title(main) ## 2. Classical tolerance ellipse and legend if(classic){ points(z2, type = "l", lty=leg@lty[2], col=leg@col[2]) if(leg@leg) legend(legend.position, leg@txt, pch=leg@pch, lty=leg@lty, col=leg@col) } invisible() } ## Plot a scatter plot of the data 'x' and superimpose a ## (cutoff-)tollernce ellipse. ## The differences to tolEllipsePlot() in robustbase are: ## - customizable (titles, limits, labels, etc) ## - can take either a Cov object or a list (aka cov.wt or covMcd) ## - .myellipse <- function (x, xcov, cutoff = NULL, id.n = NULL, classic = FALSE, tol = 1e-07, xlab = "", ylab = "", main="Tolerance ellipse (97.5%)", sub="", leg.txt=c("robust", "classical"), leg.col=c("red", "blue"), leg.lty=c("solid", "dashed"), xlim, ylim, off.x, off.y, ...) { if (is.data.frame(x)) x <- data.matrix(x) if (!is.matrix(x) || !is.numeric(x)) stop("x is not a numeric dataframe or matrix.") n <- dim(x)[1] p <- dim(x)[2] if (p != 2) stop("Dimension {= ncol(x)} must be 2!") if(missing(xcov)) xcov <- CovMcd(x) if(is(xcov, "Cov")) { x.loc <- getCenter(xcov) x.cov <- getCov(xcov) } else { if (!is.numeric(xcov$center) || !is.numeric(xcov$cov)) stop("argument 'xcov' must have numeric components 'center' and 'cov'") x.loc <- xcov$center ## x.cov <- n/(n - 1) * xcov$cov x.cov <- xcov$cov } xM <- colMeans(x) z1 <- getEllipse(loc=xM, cov=n/(n - 1) * cov.wt(x)$cov) z2 <- getEllipse(loc=x.loc, cov=x.cov) ## VT::09.06.200 ## if no need of the classic ellipse - set it to the robust one ## otherwise the xlim and ylim will be set to fit both ellipses ## if(classic == FALSE) ## z1 <- z2 x1 <- c(min(x[, 1], z1[, 1], z2[, 1]), max(x[, 1], z1[, 1], z2[, 1])) y1 <- c(min(x[, 2], z1[, 2], z2[, 2]), max(x[, 2], z1[, 2], z2[, 2])) md <- sqrt(mahalanobis(x, xM, cov(x), tol = tol)) rd <- sqrt(mahalanobis(x, x.loc, x.cov, tol = tol)) if (missing(cutoff) || is.null(cutoff)) cutoff <- sqrt(qchisq(0.975, df = 2)) if (missing(id.n) || is.null(id.n)) { id.n <- sum(rd > cutoff) if(n <= 10) # if less than 10 observations, show all id.n <- n } ind <- sort(rd, index.return = TRUE)$ix ind <- ind[(n - id.n + 1):n] if(missing(xlim)) xlim <- x1 if(missing(ylim)) ylim <- y1 plot(x, xlim = xlim, ylim = ylim, xlab = xlab, ylab = ylab, main = main, sub=sub, ...) box() ## Add the labels if(id.n > 0) { if(missing(off.x)) { xrange <- par("usr") xrange <- xrange[2] - xrange[1] off.x <- xrange/50 } if(missing(off.y)) { xrange <- par("usr") xrange <- xrange[4] - xrange[3] off.y <- xrange/50 } labels <- if(!is.null(rownames(x))) rownames(x)[ind] else ind text(x[ind, 1] + off.x, x[ind, 2] + off.y, labels) } ## Draw the ellipse(s) points(z2, type="l", lty=leg.lty[1], col=leg.col[1]) if(classic) { points(z1, type="l", lty=leg.lty[2], col=leg.col[2]) legend("bottomright", leg.txt, lty=leg.lty, col=leg.col) } invisible() } ## Draw pairwise scatter plots for the data set 'x' ## - upper triangle - scatter plot with classical and robust 0.975-ellipses ## - histograms on the diagonal ## - lower triangle - robust (MCD) and classical correlations ## ## - x - data ## - main - caption of the plot ## .rrpairs <- function(obj, main="", sub="", xlab="", ylab="", ...){ hcol <- "#377eb8" # colour for histogram - dark blue dcol <- "red" # color of the density line ecol.class <- "blue" # colour for classical ellipse ecol.rob <- "red" # colour for robust ellipse ## quick and dirty simulation of panel.number() which seems not to work ## in the panel functions of pairs() ## Retursns list of the corresponding i and j ## ## Example call: which.ij(hbk[,1], hbk[,3], getData(CovMcd(hbk))) ## which.ij <-function(x, y, data) { i <- j <- 0 for(k in 1:ncol(data)) { ifi <- all.equal(x, data[,k], check.attributes=FALSE) ifj <- all.equal(y, data[,k], check.attributes=FALSE) if(i == 0 && !is.character(ifi) && ifi) i <- k if(j == 0 && !is.character(ifj) && ifj) j <- k if(i != 0 & j != 0) break } list(i=i, j=j) } panel.hist <- function(x, ...) { usr <- par("usr"); on.exit(par(usr=usr)) par(usr = c(usr[1:2], 0, 1.5) ) h <- hist(x, plot = FALSE) breaks <- h$breaks; nB <- length(breaks) y <- h$counts; y <- y/max(y) rect(breaks[-nB], 0, breaks[-1], y, col=hcol, ...) } panel.hist.density <- function(x,...) { usr <- par("usr"); on.exit(par(usr=usr)) par(usr = c(usr[1:2], 0, 1.5) ) h <- hist(x, plot = FALSE) breaks <- h$breaks; nB <- length(breaks) y <- h$counts; y <- y/max(y) rect(breaks[-nB], 0, breaks[-1], y, col=hcol) tryd <- try( d <- density(x, na.rm=TRUE, bw="nrd", adjust=1.2), silent=TRUE) ## VT::11.08.2022: fix error "Found if() conditions comparing class() to string" ## if(class(tryd) != "try-error") if(!is(tryd, "try-error")) { d$y <- d$y/max(d$y) lines(d, col=dcol) } } panel.cor <- function(x, y, digits=2, ...) { ix <- which.ij(x, y, getData(obj)) usr <- par("usr"); on.exit(par(usr=usr)) par(usr = c(0, 1, 0, 1)) r <- cor(x, y) rr <- getCorr(obj)[ix$i,ix$j] prefix <- "" rprefix <- "" ff <- 0.35 txt <- format(c(r, 0.123456789), digits=digits)[1] txt <- paste(prefix, txt, sep="") rtxt <- format(c(rr, 0.123456789), digits=digits)[1] rtxt <- paste(rprefix, rtxt, sep="") txt <- if(isClassic(obj)) txt else paste0("(", txt, ")") # parentheses around the classical correlation # only if the object is a robust one cex <- ff/strwidth(txt) text(0.5, 0.3, txt, cex = cex, col=ecol.class) if(!isClassic(obj)) text(0.5, 0.5, rtxt, cex = cex, col=ecol.rob) } panel.ellipse <- function(x, y, ...) { usr <- par("usr"); on.exit(par(usr=usr)) X <- cbind(x,y) C.ls <- cov(X) m.ls <- colMeans(X) ix <- which.ij(x, y, getData(obj)) ## cat("\npanel.ellipse: ", ix$i, ix$j,"\n") C.rr <- getCov(obj)[c(ix$i,ix$j), c(ix$i,ix$j)] m.rr <- getCenter(obj)[c(ix$i,ix$j)] e.class <- getEllipse(loc=m.ls, cov=C.ls, crit=0.975) e.rob <- getEllipse(loc=m.rr, cov=C.rr, crit=0.975) xmin <- min(c(min(x), min(e.class[,1]), min(e.rob[,1]))) xmax <- max(c(max(x), max(e.class[,1]), max(e.rob[,1]))) ymin <- min(c(min(y), min(e.class[,2]), min(e.rob[,2]))) ymax <- max(c(max(y), max(e.class[,2]), max(e.rob[,2]))) ff <- 0.1 xmin <- xmin - ff*(xmax-xmin); #print(ff*(xmax-xmin)) xmax <- xmax + ff*(xmax-xmin); #print(ff*(xmax-xmin)) ymin <- ymin - ff*(ymax-ymin); #print(ff*(ymax-ymin)) ymax <- ymax + ff*(ymax-ymin); #print(ff*(ymax-ymin)) par(usr = c(xmin, xmax, ymin, ymax)) points(x,y, ...) lines(e.class, col=ecol.class, lty="dashed") if(!isClassic(obj)) lines(e.rob, col=ecol.rob) } ## get the data x <- getData(obj) ## VT::27.04.2011 - fix the names of the variables on the ## diagonal - labels= in the call to pairs(). ## Plot also density line ## pairs(x, main = main, sub=sub, lower.panel=panel.cor, diag.panel=panel.hist.density, upper.panel=panel.ellipse, labels=names(getCenter(obj)), ...) } ## Distance plot: ## Plot the robust and classical distances against the the index ## obj - A CovRobust object, ## getData(obj) - data frame or matrix ## .xydistplot <- function(obj, cutoff, main="Distance Plot", xlab="Index", ylab="Mahalanobis distance", col="darkred", labs, ...) { myPanel <- function(x, y, subscripts, cutoff, id.n, ...) { panel.xyplot(x, y, ...) panel.abline(h=cutoff,lty="dashed") n <- length(y) if(missing(id.n)) id.n <- length(which(y > cutoff)) if(id.n > 0){ ind <- sort(y, index.return=TRUE)$ix ind <- ind[(n-id.n+1):n] xrange<-range(y) adj <- (xrange[2]-xrange[1])/20 ltext(x[ind] + adj, y[ind] + adj, ind, cex=0.85) } } X <- getData(obj) n <- nrow(X) p <- ncol(X) if(missing(cutoff)) cutoff <- sqrt(qchisq(0.975, p)) if(missing(labs) || is.null(labs)) labs <- 1:length(getDistance(obj)) ## VT::12.11.2018 - In case of MRCD we can use also classic regularized estimate dd1 <- sqrt(getDistance(obj)) # robust distances if(inherits(obj, "CovMrcd")) { vv <- CovMrcd(X, alpha=1) # classical REGULARIZED center and covariance dd2 <- sqrt(getDistance(vv)) # classical distances } else { vv <- cov.wt(X) dd2 <- sqrt(mahalanobis(X,vv$center,vv$cov)) # classical distances } dd <- c(dd1, dd2) # a vector with both robust and classical distances ind <- c(1:n, 1:n) # 1, 2, ..., n, 1, 2, ...n - gr <- as.factor(c(rep(1,n), rep(2,n))) # 1, 1, ..., 1, 2, 2, ...2 - n x 1, n x 2 levels(gr)[1] <- "Robust" levels(gr)[2] <- "Classical" xyplot(dd~ind|gr, cutoff=cutoff, panel = myPanel, xlab=xlab, ylab=ylab, main=main, col=col, ...) } ## QQ-Chi plot: ## Plot QQ plot of the robust and classical distances against the ## quantiles of the Chi2 distr ## X - data frame or matrix ## .xyqqchi2 <- function(obj, cutoff, main=eval(substitute(expression(paste(chi^2, " QQ-Plot")))), xlab=eval(substitute(expression(paste("Sqrt of the quantiles of the ", chi[p]^2, " distribution")), list(p=p))), ylab="Mahalanobis distance", col="darkred", labs, ...) { myPanel <- function(x, y, subscripts, cutoff, id.n, ...) { y <- sort(y, index.return=TRUE) iy <- y$ix y <- y$x panel.xyplot(x, y, ...) panel.abline(0,1,lty="dashed") n <- length(y) if(missing(id.n)) id.n <- length(which(y > cutoff)) if(id.n > 0){ ind <- (n-id.n+1):n xrange<-range(y) adj <- (xrange[2]-xrange[1])/50 ltext(x[ind] + adj, y[ind] + adj, iy[ind], cex=0.85) } } X <- getData(obj) n <- nrow(X) p <- ncol(X) if(missing(cutoff)) cutoff <- sqrt(qchisq(0.975, p)) if(missing(labs) || is.null(labs)) labs <- 1:length(getDistance(obj)) ## VT::12.11.2018 - In case of MRCD we can use also classic regularized estimate dd1 <- sqrt(getDistance(obj)) # robust distances if(inherits(obj, "CovMrcd")) { vv <- CovMrcd(X, alpha=1) # classical REGULARIZED center and covariance dd2 <- sqrt(getDistance(vv)) # classical Mahalanobis distances } else { vv <- cov.wt(X) # classical center and covariance dd2 <- sqrt(mahalanobis(X,vv$center,vv$cov)) # classical Mahalanobis distances } dd <- c(dd1, dd2) # a vector with both robust and classical distances qq <- sqrt(qchisq(((1:n)-1/3)/(n+1/3), p)) ind<-c(qq, qq) gr<-as.factor(c(rep(1,n), rep(2,n))) # 1, 1, ...., 1, 2, 2, ..., 2 - n x 1, n x 2 levels(gr)[1]<-"Robust" levels(gr)[2]<-"Classical" xyplot(dd~ind|gr, cutoff=cutoff, panel = myPanel, xlab=xlab, ylab=ylab, main=main, col=col, ...) } rrcov/R/QdaCov.R0000644000176200001440000001052314443667016013122 0ustar liggesusers## The S3 version QdaCov <- function (x, ...) UseMethod("QdaCov") QdaCov.formula <- function(formula, data, ..., subset, na.action) { m <- match.call(expand.dots = FALSE) m$... <- NULL m[[1]] <- as.name("model.frame") m <- eval.parent(m) Terms <- attr(m, "terms") grouping <- model.response(m) x <- model.matrix(Terms, m) xint <- match("(Intercept)", colnames(x), nomatch=0) if(xint > 0) x <- x[, -xint, drop=FALSE] res <- QdaCov.default(x, grouping, ...) ## res$terms <- Terms ## fix up call to refer to the generic, but leave arg name as 'formula' cl <- match.call() cl[[1]] <- as.name("QdaCov") res@call <- cl ## res$contrasts <- attr(x, "contrasts") ## res$xlevels <- .getXlevels(Terms, m) ## res$na.action <- attr(m, "na.action") res } QdaCov.default <- function(x, grouping, prior = proportions, tol = 1.0e-4, method=CovControlMcd(), ...) { if(is.null(dim(x))) stop("x is not a matrix") ## method <- match.arg(method) xcall <- match.call() x <- as.matrix(x) n <- nrow(x) p <- ncol(x) if(length(grouping) == 1) { ## this is the number of groups and the groups are of equal size ng = grouping ni = n/ng if(ng*ni < n) stop("nrow(x) is not divisible by the number of groups") grouping <- rep(0,0) for(i in 1:ng) grouping <- c(grouping, rep(i,ni)) }else if(length(grouping) > 1 && length(grouping) < n) { ## grouping contains a vector with the group sizes ng <- length(grouping) if(sum(grouping) != n) stop("nrow(x) is not equal to n1+n2+...+nn") gx <- rep(0,0) for(i in 1:ng) gx <- c(gx, rep(i,grouping[i])) grouping <- gx } if(n != length(grouping)) stop("nrow(x) and length(grouping) are different") g <- as.factor(grouping) lev <- lev1 <- levels(g) counts <- as.vector(table(g)) if(!missing(prior)) { if(any(prior < 0) || round(sum(prior), 5) != 1) stop("invalid prior") if(length(prior) != nlevels(g)) stop("prior is of incorrect length") prior <- prior[counts > 0] } if(any(counts == 0)) { warning(paste("group(s)", paste(lev[counts == 0], collapse=" "),"are empty")) lev1 <- lev[counts > 0] g <- factor(g, levels=lev1) counts <- as.vector(table(g)) } proportions <- counts/n ng <- length(proportions) names(g) <- NULL names(prior) <- levels(g) if(missing(method)) method <- "mcd" xcov <- .allcovMcd(x, grouping, method, ...) return (new("QdaCov", call=xcall, prior=prior, counts=counts, center=xcov$means, cov=xcov$cov, covinv=xcov$covinv, covdet=xcov$covdet, method=xcov$method, control=xcov$control, X=x, grp=g)) } .allcovMcd <- function(x, grouping, method=CovControlMcd(), ...){ xcall <- match.call() x <- as.matrix(x) n <- nrow(x) p <- ncol(x) dimn <- dimnames(x) if(!is.factor(g <- grouping)) g <- as.factor(grouping) lev <- levels(g) counts <- as.vector(table(g)) if(any(counts == 0)) { stop(paste("group(s)", paste(lev[counts == 0], collapse=" "),"are empty")) } ng <- length(counts/n) # compute group means and covariance matrices for each group mX <- matrix(0,ng,p) covX <- array(0,c(p,p,ng)) covInv <- array(0,c(p,p,ng)) covdet <- vector(mode="numeric", length=ng) for(i in 1:ng){ mcdControl <- .covRobustControl(method) mcd <- CovRobust(x[which(g == lev[i]),], control=mcdControl) mX[i,] <- getCenter(mcd) covX[,,i] <- getCov(mcd) covInv[,,i] <- solve(getCov(mcd)) covdet[i] <- det(getCov(mcd)) } dimnames(mX) <- list(levels(g), dimn[[2]]) dimnames(covX) <- list(dimn[[2]], dimn[[2]], levels(g)) dimnames(covInv) <- list(dimn[[2]], dimn[[2]], levels(g)) names(covdet) <- levels(g) ans <- list(call=xcall, means=mX, cov=covX, covinv=covInv, covdet=covdet, method=getMeth(mcd), control=mcdControl) class(ans) <- "allcov" return(ans) } rrcov/R/QdaClassic.R0000644000176200001440000001046614443667016013762 0ustar liggesusers## The S3 version QdaClassic <- function (x, ...) UseMethod("QdaClassic") QdaClassic.formula <- function(formula, data, ..., subset, na.action) { m <- match.call(expand.dots = FALSE) m$... <- NULL m[[1]] <- as.name("model.frame") m <- eval.parent(m) Terms <- attr(m, "terms") grouping <- model.response(m) x <- model.matrix(Terms, m) xint <- match("(Intercept)", colnames(x), nomatch=0) if(xint > 0) x <- x[, -xint, drop=FALSE] res <- QdaClassic.default(x, grouping, ...) ## res$terms <- Terms ## fix up call to refer to the generic, but leave arg name as formula cl <- match.call() cl[[1]] <- as.name("QdaClassic") res@call <- cl ## res$contrasts <- attr(x, "contrasts") ## res$xlevels <- .getXlevels(Terms, m) ## res$na.action <- attr(m, "na.action") res } QdaClassic.default <- function(x, grouping, prior = proportions, tol = 1.0e-4, ...) { if(is.null(dim(x))) stop("x is not a matrix") xcall <- match.call() x <- as.matrix(x) n <- nrow(x) p <- ncol(x) if(length(grouping) == 1) { # this is the number of groups and the groups are of equal size ng = grouping ni = n/ng if(ng*ni < n) stop("nrow(x) is not divisible by the number of groups") grouping <- rep(0,0) for(i in 1:ng) grouping <- c(grouping, rep(i,ni)) }else if(length(grouping) > 1 && length(grouping) < n) { # grouping contains a vector with the group sizes ng <- length(grouping) if(sum(grouping) != n) stop("nrow(x) is not equal to n1+n2+...+nn") gx <- rep(0,0) for(i in 1:ng) gx <- c(gx, rep(i,grouping[i])) grouping <- gx } if(n != length(grouping)) stop("nrow(x) and length(grouping) are different") g <- as.factor(grouping) lev <- lev1 <- levels(g) counts <- as.vector(table(g)) if(!missing(prior)) { if(any(prior < 0) || round(sum(prior), 5) != 1) stop("invalid prior") if(length(prior) != nlevels(g)) stop("prior is of incorrect length") prior <- prior[counts > 0] } if(any(counts == 0)) { warning(paste("group(s)", paste(lev[counts == 0], collapse=" "),"are empty")) lev1 <- lev[counts > 0] g <- factor(g, levels=lev1) counts <- as.vector(table(g)) } proportions <- counts/n ng <- length(proportions) names(g) <- NULL names(prior) <- levels(g) xcov <- .allcovClass(x, grouping) ## inv <- solve(xcov$wcov) ## ldf <- xcov$means %*% inv ## ldfconst <- diag(log(prior) - ldf %*% t(xcov$means)/2) return (new("QdaClassic", call=xcall, prior=prior, counts=counts, center=xcov$means, cov=xcov$cov, covinv=xcov$covinv, covdet=xcov$covdet, method="Quadratic Discriminant Analysis (QDA)", control=NULL, X=x, grp=g)) } .allcovClass <- function(x, grouping){ xcall <- match.call() x <- as.matrix(x) n <- nrow(x) p <- ncol(x) dimn <- dimnames(x) if(!is.factor(g <- grouping)) g <- as.factor(grouping) lev <- levels(g) counts <- as.vector(table(g)) if(any(counts == 0)) { stop(paste("group(s)", paste(lev[counts == 0], collapse=" "),"are empty")) } ng <- length(counts/n) # compute group means and covariance matrices for each group mX <- matrix(0,ng,p) covX <- array(0,c(p,p,ng)) covInv <- array(0,c(p,p,ng)) covdet <- vector(mode="numeric", length=ng) for(i in 1:ng){ tmpc <- cov.wt(as.matrix(x[which(g == lev[i]),])) mX[i,] <- tmpc$center covX[,,i] <- tmpc$cov covInv[,,i] <- solve(tmpc$cov) covdet[i] <- det(tmpc$cov) } dimnames(mX) <- list(levels(g), dimn[[2]]) dimnames(covX) <- list(dimn[[2]], dimn[[2]], levels(g)) dimnames(covInv) <- list(dimn[[2]], dimn[[2]], levels(g)) names(covdet) <- levels(g) ans <- list(call=xcall, means=mX, cov=covX, covinv=covInv, covdet=covdet) class(ans) <- "allcov" return(ans) } rrcov/R/da-utils.R0000644000176200001440000000540014443667016013465 0ustar liggesusers.AER <- function(tab) { 1 - sum(tab[row(tab) == col(tab)])/sum(tab) } mtxconfusion <- function(actual, predicted, prior = NULL, printit=FALSE) { .confusion(actual, predicted, prior, printit) } .confusion <- function(actual, predicted, prior = NULL, printit=FALSE) { names <- levels(actual) tab <- table(actual, predicted) acctab <- t(apply(tab, 1, function(x) x/sum(x))) dimnames(acctab) <- list(Actual = names, "Predicted" = names) dimnames(tab) <- list(Actual = names, "Predicted" = names) if(is.null(prior)) { cnt <- table(actual) prior <- cnt/sum(cnt) } else names(prior) <- names AER <- 1 - sum(tab[row(tab) == col(tab)])/sum(tab) if(printit) { prt <- as.matrix(round(c("Apparent error rate" = AER, "Prior frequency" = prior),4)) colnames(prt) <- "" print(prt) cat("\nClassification table", "\n") print(tab) cat("\nConfusion matrix", "\n") print(round(acctab, 3)) } invisible(tab) } ## Internal function to perform leaving-one-out cross validation by brute force - ## recalculates the estimator n times, excluding each observation in turn. ## ## - The discriminantion method (QDA or LDA) is selected according to the type of ## the object. ## - The method for computing the covariance matrices (or the common ## cov matrix in LDA) is selected according the slot methodID. ## .CV <- function(obj){ if(!is(obj, "Lda") && !is(obj, "Qda")) stop("The object must be an Lda or Qda object") classic <- is(obj, "LdaClassic") || is(obj, "QdaClassic") ret <- predict(obj) X <- obj@X grp <- obj@grp ng <- length(levels(grp)) method <- obj@method ptm <- proc.time() n <- nrow(X) p <- ncol(X) if(!classic && n*p > 500) warning("This could take some time!") for(i in 1:n) { cat("i=",i,"\n") ll <- if(is(obj, "LdaClassic")) { LdaClassic(X[-i,], grouping=grp[-i]) } else if(is(obj, "Linda")){ Linda(X[-i,], grouping=grp[-i], method=method, l1med=obj@l1med) } else if(is(obj, "QdaClassic")){ QdaClassic(X[-i,], grouping=grp[-i]) } else if(is(obj, "QdaCov")){ QdaCov(X[-i,], grouping=grp[-i], method=obj@control) } else { stop("ERROR: unknown class") } pp <- predict(ll, newdata=t(X[i,])) ret@classification[i] <- pp@classification[1] ret@posterior[i,] <- pp@posterior[1,] } ret@ct <- mtxconfusion(grp, ret@classification) ## cat("\nElapsed time (loo): ",(proc.time() - ptm)[1],"\n") ret } rrcov/R/dets.R0000644000176200001440000002621414443667016012710 0ustar liggesusers## ## Input: ## x - a data matrix of size (n,p) ## hsets.init ## scalefn ## k - number of refining iterations in each subsample (default=2) ## best.r - number of "best betas" to remember from the subsamples. ## These will be later iterated until convergence (default=5) ## kp, cc - tunning constants for the S-estimator with Tukey's biweight ## function given the breakdown point (bdp) and the dimension p ## ## Output: a list with components ## center - robust estimate of location (vector: length) ## cov - robust estimate of scatter (matrix: p,p) ## crit - value of the objective function (number) ## ..detSloc <- function(x, hsets.init=NULL, save.hsets=missing(hsets.init) || is.null(hsets.init), full.h=save.hsets, scalefn, maxisteps = 200, warn.nonconv.csteps = FALSE, ## k=0, # no need of preliminary refinement ## best.r=6, # iterate till convergence on all 6 sets kp, cc, trace=as.integer(trace)) { ## NOTES: ## - in the functions rho, psi, and scaledpsi=psi/u (i.e. the weight function) ## is used |x| <= c1 ## ## - function resdis() to compute the distances is used instead of ## mahalanobis() - slightly faster ## The bisquare rho function: ## ## | x^2/2 - x^4/2*c1^2 + x^6/6*c1^4 |x| <= c1 ## rho(x) = | ## | c1^2/6 |x| > c1 ## rho <- function(u, cc) { w <- abs(u) <= cc v <- (u^2/2 * (1 - u^2/cc^2 + u^4/(3*cc^4))) * w + (1-w) * (cc^2/6) v } ## The corresponding psi function: psi = rho' ## ## | x - 2x^3/c1^2 + x^5/c1^4 |x| <= c1 ## psi(x) = | ## | 0 |x| > c1 ## ## using ifelse is 3 times slower psi <- function(u, c1) { ##ifelse(abs(u) < c1, u - 2 * u^3/c1^2 + u^5/c1^4, 0) pp <- u - 2 * u^3/c1^2 + u^5/c1^4 pp*(abs(u) <= c1) } ## weight function = psi(u)/u scaledpsi <- function(u, cc) { ##ifelse(abs(xx) < c1, xx - 2 * xx^3/c1^2 + xx^5/c1^4, 0) pp <- (1 - (u/cc)^2)^2 pp <- pp * cc^2/6 pp*(abs(u) <= cc) } ## the objective function, we solve loss.S(u, s, cc) = b for "s" loss.S <- function(u, s, cc) mean(rho(u/s, cc)) norm <- function(x) sqrt(sum(x^2)) ## Returns square root of the mahalanobis distances of x with respect to mu and sigma ## Seems to be somewhat more efficient than sqrt(mahalanobis()) - by factor 1.4! resdis <- function(x, mu, sigma) { central <- t(x) - mu sqdis <- colSums(solve(sigma, central) * central) dis <- sqdis^(0.5) dis } ## Computes Tukey's biweight objective function (scale) ## (respective to the mahalanobis distances u) using the ## rho() function and the konstants kp and c1 scaleS <- function(u, kp, c1, initial.sc=median(abs(u))/.6745) { ## find the scale, full iterations maxit <- 200 eps <- 1e-20 sc <- initial.sc for(i in 1:maxit) { sc2 <- sqrt(sc^2 * mean(rho(u/sc, c1)) / kp) if(abs(sc2/sc - 1) <= eps) break sc <- sc2 } return(sc) } ## ## Do "k" iterative reweighting refining steps from "initial.mu, initial.sigma" ## ## If "initial.scale" is present, it's used, o/w the MAD is used ## ## k = number of refining steps ## conv = 0 means "do k steps and don't check for convergence" ## conv = 1 means "stop when convergence is detected, or the ## maximum number of iterations is achieved" ## kp and cc = tuning constants of the equation ## re.s <- function(x, initial.mu, initial.sigma, initial.scale, k, conv, maxisteps=200, kp, cc) { n <- nrow(x) p <- ncol(x) rdis <- resdis(x, initial.mu, initial.sigma) if(missing(initial.scale)) { initial.scale <- scale <- median(abs(rdis))/.6745 } else { scale <- initial.scale } ## if conv == 1 then set the max no. of iterations to 50 magic number alert!!! if(conv == 1) k <- maxisteps mu <- initial.mu sigma <- initial.sigma for(i in 1:k) { ## do one step of the iterations to solve for the scale scale.super.old <- scale scale <- sqrt(scale^2 * mean(rho(rdis/scale, cc)) / kp) ## now do one step of reweighting with the "improved scale" weights <- scaledpsi(rdis/scale, cc) W <- weights %*% matrix(rep(1,p), ncol=p) xw <- x * W/mean(weights) mu.1 <- apply(xw,2,mean) res <- x - matrix(rep(1,n),ncol=1) %*% mu.1 sigma.1 <- t(res) %*% ((weights %*% matrix(rep(1,p), ncol=p)) * res) sigma.1 <- (det(sigma.1))^(-1/p) * sigma.1 if(.isSingular(sigma.1)) { mu.1 <- initial.mu sigma.1 <- initial.sigma scale <- initial.scale break } if(conv == 1) { ## check for convergence if(norm(mu - mu.1) / norm(mu) < 1e-20) break ## magic number alert!!! } rdis <- resdis(x,mu.1,sigma.1) mu <- mu.1 sigma <- sigma.1 if(i >= k & warn.nonconv.csteps) warning("Convergence not reached up to max.number of iterations: ", k) } iter <- i rdis <- resdis(x,mu,sigma) ## get the residuals from the last beta ## return the number of iterations return(list(mu.rw = mu.1, sigma.rw=sigma.1, scale.rw = scale, iter=iter)) } ################################################################################################ n <- nrow(x) p <- ncol(x) h <- h.alpha.n(0.5, n, p) ## Center and scale the data z <- doScale(x, center=median, scale=scalefn) z.center <- z$center z.scale <- z$scale z <- z$x ## Assume that 'hsets.init' already contains h-subsets: the first h observations each if(is.null(hsets.init)) { hsets.init <- r6pack(z, h=h, full.h=full.h, scaled=TRUE, scalefn=scalefn) dh <- dim(hsets.init) } else { ## user specified, (even just *one* vector): if(is.vector(hsets.init)) hsets.init <- as.matrix(hsets.init) dh <- dim(hsets.init) if(!is.matrix(hsets.init) || dh[1] < h || dh[2] < 1) stop("'hsets.init' must be a h' x L matrix (h' >= h) of observation indices") if(full.h && dh[1] != n) stop("When 'full.h' is true, user specified 'hsets.init' must have n rows") } ## Construction of h-subset: take the first h observations hsets <- hsets.init[1:h, , drop=FALSE] ## select the first h ranked observations nsets <- NCOL(hsets) hset.csteps <- integer(nsets) best.r <- nsets k <- 0 best.mus <- matrix(0, best.r, p) best.sigmas <- matrix(0,best.r*p,p) best.scales <- rep(1e20, best.r) s.worst <- 1e20 n.ref <- 1 ## Iterate now through the initial h-subsets for(i in 1:nsets) { if(trace) { if(trace >= 2) cat(sprintf("H-subset %d = observations c(%s):\n-----------\n", i, paste(hsets.init[1:h,i], collapse=", "))) else cat(sprintf("H-subset %d: ", i)) } indices <- hsets[, i] # start with the i-th initial set xs <- x[indices,] mu <- colMeans(xs) sigma <- cov(xs) singular <- .isSingular(sigma) sigma <- det(sigma)^(-1/p) * sigma ## Perform k steps of iterative reweighting on the elemental set if(k > 0) { ## do the refining tmp <- re.s(x=x, initial.mu=mu, initial.sigma=sigma, k=k, conv=0, kp=kp, cc=cc) mu.rw <- tmp$mu.rw sigma.rw <- tmp$sigma.rw scale.rw <- tmp$scale.rw rdis.rw <- resdis(x, mu.rw, sigma.rw) } else { ## k = 0 means "no refining" mu.rw <- mu sigma.rw <- sigma rdis.rw <- resdis(x, mu.rw, sigma.rw) scale.rw <- median(abs(rdis.rw))/.6745 } if(i > 1) { ## if this isn't the first iteration.... ## check whether new mu/sigma belong to the top best results; if so keep ## mu and sigma with corresponding scale. scale.test <- loss.S(rdis.rw, s.worst, cc) if(scale.test < kp) { s.best <- scaleS(rdis.rw, kp, cc, scale.rw) ind <- order(best.scales)[best.r] best.scales[ind] <- s.best best.mus[ind,] <- mu.rw bm1 <- (ind-1)*p; best.sigmas[(bm1+1):(bm1+p),] <- sigma.rw s.worst <- max(best.scales) } } else { ## if this is the first iteration, then this is the best solution anyway... best.scales[best.r] <- scaleS(rdis.rw, kp, cc, scale.rw) best.mus[best.r,] <- mu.rw bm1 <- (best.r-1)*p; best.sigmas[(bm1+1):(bm1+p),] <- sigma.rw } } ## do the complete refining step until convergence (conv=1) starting ## from the best subsampling candidate (possibly refined) super.best.scale <- 1e20 for(i in best.r:1) { index <- (i-1)*p tmp <- re.s(x=x, initial.mu=best.mus[i,], initial.sigma=best.sigmas[(index+1):(index+p),], initial.scale=best.scales[i], k=0, conv=1, maxisteps=maxisteps, kp=kp, cc=cc) if(tmp$scale.rw < super.best.scale) { super.best.scale <- tmp$scale.rw super.best.mu <- tmp$mu.rw super.best.sigma <- tmp$sigma.rw ind.best <- i # to determine which subset gives best results. } hset.csteps[i] <- tmp$iter # how many I-steps necessary to converge. if(trace) cat(sprintf("%3d csteps, scale=%g", tmp$iter, tmp$scale.rw)) } super.best.sigma <- super.best.scale^2*super.best.sigma return(list( center=as.vector(super.best.mu), cov=super.best.sigma, crit=super.best.scale, iter=hset.csteps[ind.best], iBest = ind.best, hset.csteps = hset.csteps, initHsets=if(save.hsets) hsets.init, kp=kp, cc=cc, method="S-estimates: DET-S")) } rrcov/R/donostah.R0000644000176200001440000001341314443667016013565 0ustar liggesusersdonostah <- function(x, control) { if(missing(control)) control <- covRob.control(estim="donostah") n <- nrow(x) p <- ncol(x) center <- control$center nresamp <- control$nresamp maxres <- control$maxres prob <- control$prob eps <- control$eps if(!control$random.sample) { if(exists(".Random.seed", where = 1)) { random.seed <- get(".Random.seed", pos = 1) on.exit(assign(".Random.seed", random.seed, pos = 1)) } set.seed(21) } if(casefold(nresamp) == "auto") nresamp <- ceiling(log(1 - control$prob)/log(1 - (1 - control$eps)^(p+1))) else if(!is.integer(nresamp)) stop("nresamp must be a nonnegative integer or ", dQuote("auto")) if(nresamp != 0) nresamp <- max(1000, nresamp) if(casefold(maxres) == "auto") maxres <- 2 * nresamp else if(!is.integer(maxres)) stop(sQuote("maxres"), " is not a positive integer") tune <- sqrt(qchisq(control$tune, p)) icent <- 1 locat <- double(p) covmat <- matrix(0.0, p, p) storage.mode(covmat) <- "double" wk <- double(4*n+p) iwork <- integer(4*n+p) nresper <- 0 w <- double(n) z <- double(n) if(length(center) == 1 && !center) center <- rep(0, p) if(length(center) > 1) { if(length(center) != p) stop("the dimension of ", sQuote("center"), " does not match the ", "dimension of ", sQuote("x")) x <- sweep(x, 2, center) icent <- 0 } sdlist <- .Fortran("rlds", n = as.integer(n), p = as.integer(p), nresamp = as.integer(nresamp), x = as.double(x), tune = as.double(tune), wk = as.double(wk), center = as.double(locat), cov = covmat, maxres = as.integer(maxres), nresper = as.integer(nresper), weights = as.double(w), outlyingness = as.double(z), icent = as.integer(icent), iwork = as.integer(iwork), PACKAGE = "rrcov") dist <- mahalanobis(x, center = if(length(center) > 1) rep(0, p) else sdlist$center, cov = sdlist$cov) consistency.correction <- median(dist) / qchisq(.5, p) sdlist$cov <- sdlist$cov * consistency.correction sdlist$dist <- dist / consistency.correction if(length(center) > 1) sdlist$center <- center sdlist[c("cov", "center", "dist")] } covRob.control <- function(estim, ...) { estim <- casefold(estim) control <- list(...) control$estim <- estim if(estim == "donostah") { if(is.null(control$nresamp)) control$nresamp <- "auto" if(is.null(control$maxres)) control$maxres <- "auto" if(is.null(control$random.sample)) control$random.sample <- FALSE if(is.null(control$center)) control$center <- TRUE if(is.null(control$tune)) control$tune <- 0.95 if(is.null(control$prob)) control$prob <- 0.99 if(is.null(control$eps)) control$eps <- 0.5 control <- control[c("estim", "nresamp", "maxres", "random.sample", "center", "tune", "prob", "eps")] } else if(estim == "mcd" || estim == "weighted") { ## For backwards compatibility we support the use of quan and ntrial ## ## to specify alpha and nsamp for estim = "mcd", estim = "weighted" ## ## and estim = "M". Providing both quan and alpha or both ntrial and ## ## nsamp will result in an error. ## if(is.null(control$alpha)) control$alpha <- ifelse(is.null(control$quan), 0.5, control$quan) if(is.null(control$nsamp)) control$nsamp <- ifelse(is.null(control$ntrial), 500, control$ntrial) if(is.null(control$trace)) control$trace <- FALSE if(is.null(control$use.correction)) control$use.correction <- TRUE if(is.null(control$tolSolve)) control$tolSolve <- 1e-14 if(is.null(control$seed)) control <- control[c("estim", "alpha", "nsamp", "trace", "use.correction", "tolSolve")] else control <- control[c("estim", "alpha", "nsamp", "seed", "trace", "use.correction", "tolSolve")] } else if(estim == "m") { if(is.null(control$alpha)) control$alpha <- ifelse(is.null(control$quan), 0.5, control$quan) if(is.null(control$nsamp)) control$nsamp <- ifelse(is.null(control$ntrial), 500, control$ntrial) if(is.null(control$trace)) control$trace <- FALSE if(is.null(control$use.correction)) control$use.correction <- TRUE if(is.null(control$tolSolve)) control$tolSolve <- 1e-14 if(is.null(control$seed)) init.control <- control[c("estim", "alpha", "nsamp", "trace", "use.correction", "tolSolve")] else init.control <- control[c("estim", "alpha", "nsamp", "seed", "trace", "use.correction", "tolSolve")] init.control$estim = "mcd" control$init.control <- init.control if(is.null(control$r)) control$r <- 0.45 if(is.null(control$arp)) control$arp <- 0.05 if(is.null(control$eps)) control$eps <- 1e-03 if(is.null(control$maxiter)) control$maxiter <- 120 control <- control[c("estim", "r", "arp", "eps", "maxiter", "init.control")] } else control <- control["estim"] control } rrcov/R/Lda.R0000644000176200001440000001015614443667016012447 0ustar liggesuserssetMethod("show", "Lda", function(object){ if(!is.null(cl <- object@call)) { names(cl)[2] <- "" cat("Call:\n") dput(cl) } digits = max(3, getOption("digits") - 3) cat("\nPrior Probabilities of Groups:\n") print(object@prior) if(length(object@center) > 0) { cat("\nGroup means:\n") print(object@center) cat("\nWithin-groups Covariance Matrix:\n") print(object@cov) } cat("\nLinear Coeficients:\n") print(object@ldf) cat("\nConstants:\n") print(object@ldfconst) # svd <- x$svd # names(svd) <- dimnames(x$scaling)[[2]] # if(length(svd) > 1) { # cat("\nProportion of trace:\n") # print(round(svd^2/sum(svd^2), 4), ...) # } invisible(object) }) setMethod("predict", "Lda", function(object, newdata){ ct <- FALSE if(missing(newdata)) { newdata <- object@X # use the training sample ct <- TRUE # perform cross-validation } x <- as.matrix(newdata) if(length(object@center)>0 & ncol(x) != ncol(object@center) | ncol(x) != ncol(object@ldf)) stop("wrong number of variables") ldf <- object@ldf ldfconst <- object@ldfconst ret <- .mypredictLda(object@prior, levels(object@grp), ldf, ldfconst, x) if(ct) ret@ct <- mtxconfusion(object@grp, ret@classification) ret }) .mypredictLda <- function(prior, lev, ldf, ldfconst, x){ ng <- length(prior) nm <- names(prior) if(is.null(nm)) nm <- lev xx <- x %*% t(ldf) xx <- t(t(xx) + ldfconst) posterior <- xx for(i in 1:nrow(xx)){ tmp <- sum(exp(xx[i,])) for(j in 1:ncol(xx)) posterior[i,j] <- exp(xx[i,j])/tmp } cl <- factor(nm[max.col(xx, "first")], levels = lev) new("PredictLda", classification=cl, posterior=posterior, x = xx) } setMethod("show", "PredictLda", function(object){ if(!is.null(object@ct)) { tab <- object@ct acctab <- t(apply(tab, 1, function(x) x/sum(x))) dimnames(acctab) <- dimnames(tab) AER <- 1 - sum(diag(tab))/sum(tab) prt <- as.matrix(round(c("Apparent error rate" = AER),4)) colnames(prt) <- "" print(prt) cat("\nClassification table", "\n") print(tab) cat("\nConfusion matrix", "\n") print(round(acctab, 3)) } else print(object@classification) ## print(object@posterior) ## print(object@x) invisible(object) }) setMethod("summary", "Lda", function(object, ...){ new("SummaryLda", ldaobj=object) }) setMethod("show", "SummaryLda", function(object){ show(object@ldaobj) invisible(object) }) .wcov.wt <- function (x, gr, wt = rep(1, nrow(x))) { xcall <- match.call() if (is.data.frame(x)) x <- as.matrix(x) else if (!is.matrix(x)) stop("'x' must be a matrix or a data frame") if (!all(is.finite(x))) stop("'x' must contain finite values only") n <- nrow(x) p <- ncol(x) lev <- levels(as.factor(gr)) ng <- length(lev) dimn <- dimnames(x) if(with.wt <- !missing(wt)) { if(length(wt) != n) stop("length of 'wt' must equal the number of rows in 'x'") if(any(wt < 0) || (s <- sum(wt)) == 0) stop("weights must be non-negative and not all zero") } sqrtwt <- sqrt(wt) means <- tapply(sqrtwt*x, list(rep(gr, p), col(x)), sum) /rep(tapply(sqrtwt, gr, sum), p) wcov <- crossprod(sqrtwt*(x-means[gr,]))/(sum(sqrtwt)-ng) dimnames(wcov) <- list(dimn[[2]], dimn[[2]]) dimnames(means) <- list(lev, dimn[[2]]) ans <- list(call=xcall, means=means, wcov=wcov, method="Reweighted") class(ans) <- "wcov" ans } print.wcov <- function(x, ...) { if(!is.null(cl <- x$call)) { names(cl)[2] <- "" cat("Call:\n") dput(cl) } cat("\nGroup means:\n") print(x$means, ...) cat("\nWithin-groups Covariance Matrix:\n") print(x$wcov, ...) invisible(x) } rrcov/R/PcaHubert.R0000644000176200001440000006775314443667016013643 0ustar liggesusers##setGeneric("PcaHubert", function(x, ...) standardGeneric("PcaHubert")) ##setMethod("PcaHubert", "formula", PcaHubert.formula) ##setMethod("PcaHubert", "ANY", PcaHubert.default) setMethod("getQuan", "PcaHubert", function(obj) obj@quan) ## The S3 version PcaHubert <- function (x, ...) UseMethod("PcaHubert") PcaHubert.formula <- function (formula, data = NULL, subset, na.action, ...) { cl <- match.call() mt <- terms(formula, data = data) if (attr(mt, "response") > 0) stop("response not allowed in formula") mf <- match.call(expand.dots = FALSE) mf$... <- NULL mf[[1]] <- as.name("model.frame") mf <- eval.parent(mf) ## this is not a `standard' model-fitting function, ## so no need to consider contrasts or levels if (.check_vars_numeric(mf)) stop("PCA applies only to numerical variables") na.act <- attr(mf, "na.action") mt <- attr(mf, "terms") attr(mt, "intercept") <- 0 x <- model.matrix(mt, mf) res <- PcaHubert.default(x, ...) ## fix up call to refer to the generic, but leave arg name as `formula' cl[[1]] <- as.name("PcaHubert") res@call <- cl # if (!is.null(na.act)) { # res$na.action <- na.act # if (!is.null(sc <- res$x)) # res$x <- napredict(na.act, sc) # } res } PcaHubert.default <- function(x, k=0, kmax=10, alpha=0.75, mcd=TRUE, skew=FALSE, maxdir=250, scale=FALSE, signflip=TRUE, crit.pca.distances=0.975, trace=FALSE, ...) { ## k - Number of principal components to compute. If \code{k} is missing, ## or \code{k = 0}, the algorithm itself will determine the number of ## components by finding such \code{k} that \code{l_k/l_1 >= 10.E-3} and ## \code{sum_1:k l_j/sum_1:r l_j >= 0.8}. It is preferable to ## investigate the scree plot in order to choose the number ## of components and the run again. Default is \code{k=0}. ## ## kmax - Maximal number of principal components to compute Default is \code{kmax=10}. ## If \code{k} is provided, \code{kmax} does not need to be specified, ## unless \code{k} is larger than 10. ## alpha This parameter measures the fraction of outliers the algorithm should ## resist. In MCD alpha controls the size of the subsets over which the determinant ## is minimized, i.e. alpha*n observations are used for computing the determinant. ## Allowed values are between 0.5 and 1 and the default is 0.5. ## mcd - Logical - when the number of variables is sufficiently small, ## the loadings are computed as the eigenvectors of the MCD covariance matrix, ## hence the function \code{\link{CovMcd}()} is automatically called. The number of ## principal components is then taken as k = rank(x). Default is \code{mcd=TRUE}. ## If \code{mcd=FALSE}, the ROBPCA algorithm is always applied. ## trace whether to print intermediate results. Default is \code{trace = FALSE}} ## Example: ## data(hbk) ## pca <- PcaHubert(hbk) ## ## The value returned by 'PcaHubert' is an S4 object containing the following slots: ## ## loadings - Robust loadings (eigenvectors) ## eigenvalues - Robust eigenvalues ## center - Robust center of the data ## scores - Robust scores ## k - Number of (chosen) principal components ## ## quan - The quantile h used throughout the algorithm ## sd - Robust score distances within the robust PCA subspace ## od - Orthogonal distances to the robust PCA subspace ## cutoff - Cutoff values for the robust score and orthogonal distances ## flag - The observations whose score distance is larger than result.cutoff.sd ## or whose orthogonal distance is larger than result$cutoff$od ## can be considered as outliers and receive a flag equal to zero. ## The regular observations receive a flag 1. ## This implementation followes closely the Matlab implementation, available as part of 'LIBRA, ## a Matlab Library for Robust Analysis': ## www.wis.kuleuven.ac.be/stat/robust.html cl <- match.call() if(missing(x)) stop("You have to provide at least some data") data <- as.matrix(x) n <- nrow(data) p <- ncol(data) ## ___Step 1___: Reduce the data space to the affine subspace spanned by the n observations ## Apply svd() to the mean-centered data matrix. If n > p we use the kernel approach - ## the decomposition is based on computing the eignevalues and eigenvectors of(X-m)(X-m)' Xsvd <- .classPC(data, scale=scale, signflip=signflip, scores=TRUE) if(Xsvd$rank == 0) stop("All data points collapse!") myrank <- Xsvd$rank ## VT::27.08.2010: introduce 'scale' parameter; return the scale in the value object ## myscale = if(is.logical(scale) && !scale) vector('numeric', p) + 1 else Xsvd$scale ## ## verify and set the input parameters: alpha, k and kmax ## determine h based on alpha and kmax, using the function h.alpha.n() ## ## VT::06.11.2012 - kmax <= floor(n/2) is too restrictive ## kmax <- max(min(floor(kmax), floor(n/2), Xsvd$rank),1) kmax <- max(min(floor(kmax), Xsvd$rank),1) if((k <- floor(k)) < 0) k <- 0 else if(k > kmax) { warning(paste("The number of principal components k = ", k, " is larger then kmax = ", kmax, "; k is set to ", kmax,".", sep="")) k <- kmax } if(missing(alpha)) { default.alpha <- alpha h <- min(h.alpha.n(alpha, n, kmax), n) alpha <- h/n if(k == 0) { if(h < floor((n+kmax+1)/2)) { h <- floor((n+kmax+1)/2) alpha <- h/n warning(paste("h should be larger than (n+kmax+1)/2. It is set to its minimum value ", h, ".", sep="")) } } else { if(h < floor((n+k+1)/2)) { h <- floor((n+k+1)/2) alpha <- h/n warning(paste("h should be larger than (n+k+1)/2. It is set to its minimum value ", h, ".", sep="")) } } if(h > n) { alpha <- default.alpha if(k == 0) h <- h.alpha.n(alpha, n, kmax) else h <- h.alpha.n(alpha, n, k) warning(paste("h should be smaller than n = ", n, ". It is set to its default value ", h, ".", sep="")) } }else { if(alpha < 0.5 | alpha > 1) stop("Alpha is out of range: should be between 1/2 and 1") if(k == 0) h <- h.alpha.n(alpha, n, kmax) else h <- h.alpha.n(alpha, n, k) } X <- Xsvd$scores center <- Xsvd$center rot <- Xsvd$loadings ## ## ___Step 2___: Either calculate the standard PCA on the MCD covariance matrix (p< apply MCD { if(trace) cat("\nApplying MCD.\n") X.mcd <- CovMcd(as.data.frame(X), alpha=alpha) X.mcd.svd <- svd(getCov(X.mcd)) rank <- ncol(X) ## The covariance matrix is not singular ev <- X.mcd.svd$d if(trace) cat("\nEigenvalues of S0: ", ev, "\nTotal variance: ", sum(ev), "\nExplained variance: ", cumsum(ev)/sum(ev), "\n") ## VT::08.10.2021 - fix the explained variance in case when k < p. ## these will be shown in summary() eig0 <- ev totvar0 <- sum(ev) Hsubsets0 <- c() ## VT::11.28.2015: Choose the number of components k (if not specified) ## ## Use the test l_k/l_1 >= 10.E-3, i.e. the ratio of ## the k-th eigenvalue to the first eigenvalue (sorted decreasingly) is larger than ## 10.E/3 and the fraction of the cumulative dispersion is larger or equal 80% ## if(k != 0) k <- min(k, ncol(X)) else { test <- which(ev/ev[1] <= 1.E-3) k <- if(length(test) != 0) min(min(rank, test[1]), kmax) else min(rank, kmax) cumulative <- cumsum(ev[1:k])/sum(ev) if(cumulative[k] > 0.8) { k <- which(cumulative >= 0.8)[1] } if(trace) cat("\n k, kmax, rank, p: ", k, kmax, rank, p, "\n") if(trace) cat("The number of principal components is defined by the algorithm. It is set to ", k,".\n", sep="") } scores <- (X - matrix(rep(getCenter(X.mcd), times=nrow(X)), nrow=nrow(X), byrow=TRUE)) %*% X.mcd.svd$u ## VT::19.08.2016: we need also to rescale back the MCD center, ## before adding it to the original center ## center <- as.vector(center + getCenter(X.mcd) %*% t(rot)) center <- as.vector(center + sweep(getCenter(X.mcd) %*% t(rot), 2, myscale, "*")) eigenvalues <- X.mcd.svd$d[1:k] loadings <- Xsvd$loadings %*% X.mcd.svd$u[,1:k] scores <- as.matrix(scores[,1:k]) if(is.list(dimnames(data)) && !is.null(dimnames(data)[[1]])) { dimnames(scores)[[1]] <- dimnames(data)[[1]] } else { dimnames(scores)[[1]] <- 1:n } dimnames(loadings) <- list(colnames(data), paste("PC", seq_len(ncol(loadings)), sep = "")) dimnames(scores)[[2]] <- as.list(paste("PC", seq_len(ncol(scores)), sep = "")) res <- new("PcaHubert",call=cl, loadings=loadings, eigenvalues=eigenvalues, center=center, scale=myscale, rank=myrank, scores=scores, k=k, quan=X.mcd@quan, alpha=alpha, skew=FALSE, ao=NULL, eig0=eig0, totvar0=totvar0, n.obs=n) } else # p > n or mcd=FALSE => apply the ROBPCA algorithm { if(trace) cat("\nApplying the projection method of Hubert: skew=", skew, "\n") ## VT::28.07.2020 - add adjusted for skewed data mode ## 1) in 'skew' mode instead of the SD outlyingness, calculated ## the adjusted outlyingness, using robustbase ## function adjOutlyingness() outl <- if(skew) adjOutlyingness(X, ndir=maxdir, alpha.cutoff=alpha, mcfun=mcVT)$adjout else outl(X, maxdir=maxdir, h=h) ## We could use adjOutlyingness() with clower=0 and cupper=0 to compute ## the SD outlyingness, will be a bit faster. But the result is slightly ## different, I have not invetigate further - adjOutlyingness() generates ## maxdir p-samples while outl() gets all directions through two points. ## ## else adjOutlyingness(X, ndir=maxdir, alpha.cutoff=alpha, clower=0, cupper=0)$adjout H0 <- order(outl) # index of the observations ordered by (increasing) outlyingness Xh <- X[H0[1:h],,drop=FALSE] # the h data points with smallest outlyingness. # VT::24.04.2020 Keep Xh as a matrix (drop=FALSE), otherwise .classPC will not work. Xh.svd <- .classPC(Xh) kmax <- min(Xh.svd$rank, kmax) if(trace){ cat("\nEigenvalues of S0: ", Xh.svd$eigenvalues, "\nTotal variance: ", sum(Xh.svd$eigenvalues), "\nExplained variance: ", cumsum(Xh.svd$eigenvalues)/sum(Xh.svd$eigenvalues), "\n") } ## VT::08.10.2021 - fix the explained variance in case when k < p. ## these will be shown in summary() eig0 <- Xh.svd$eigenvalues totvar0 <- sum(Xh.svd$eigenvalues) Hsubsets0 <- H0[1:h] ## ## Find the number of PC 'k' ## Use the test l_k/l_1 >= 10.E-3, i.e. the ratio of ## the k-th eigenvalue to the first eigenvalue (sorted decreasingly) is larger than ## 10.E/3 and the fraction of the cumulative dispersion is larger or equal 80% ## if(k == 0) { test <- which(Xh.svd$eigenvalues/Xh.svd$eigenvalues[1] <= 1.E-3) k <- if(length(test) != 0) min(min(Xh.svd$rank, test[1]), kmax) else min(Xh.svd$rank, kmax) cumulative <- cumsum(Xh.svd$eigenvalues[1:k])/sum(Xh.svd$eigenvalues) if(cumulative[k] > 0.8) { k <- which(cumulative >= 0.8)[1] } if(trace) cat(paste("The number of principal components is set by the algorithm. It is set to ", k, ".\n", sep="")) } if(trace) cat("\nXsvd$rank, Xh.svd$rank, k and kmax: ", Xsvd$rank, Xh.svd$rank, k, kmax,"\n") ## perform extra reweighting step if(k != Xsvd$rank) { if(trace) cat("\nPerform extra reweighting step (k != rank)", k) ## VT::27.08.2010 - bug report from Stephen Milborrow: if n is small relative to p ## k can be < Xsvd$rank but larger than Xh.svd$rank - the number of observations in ## Xh.svd is roughly half of these in Xsvd k <- min(Xh.svd$rank, k) XRc <- X - matrix(rep(Xh.svd$center, times=n), nrow=n, byrow=TRUE) Xtilde <- XRc %*% Xh.svd$loadings[,1:k] %*% t(Xh.svd$loadings[,1:k]) Rdiff <- XRc - Xtilde odh <- apply(Rdiff, 1, vecnorm) ## ## VT::28.07.2020 - replace the calculation of the cutoff for od ## by a call to .crit.od(). ## 2) In adjusted for skewed data mode replace the cutoff for ## the orthogonal distances. ## ## umcd <- unimcd(odh^(2/3), h) ## cutoffodh <- sqrt(qnorm(0.975, umcd$tmcd, umcd$smcd)^3) ## cutoffodh <- .crit.od(odh, crit=0.975, method=ifelse(skew, "skewed", "umcd"), quan=h) indexset <- (odh <= cutoffodh) if(trace) { cat("\nCutoff for the orthogonal distances:\n.........: ", cutoffodh) cat("\numcd.....: ", .crit.od(odh, method="umcd", quan=h), "\n") cat("\nmedmad...: ", .crit.od(odh), "\n") cat("\nskewed...: ", .crit.od(odh, method="skewed"), "\n") cat("\nclassic..: ", .crit.od(odh, method="classic"), "\n") } Xh.svd <- .classPC(X[indexset,]) k <- min(Xh.svd$rank, k) if(trace) cat("\nPerform extra reweighting step (k != rank)", k, "...Ready.") } ## Project the data points on the subspace spanned by the first k0 eigenvectors ## VT::19.08.2016: we need also to rescale back the MCD center, ## before adding it to the original center ## center <- center + Xh.svd$center %*% t(rot) center <- center + sweep(Xh.svd$center %*% t(rot), 2, myscale, "*") rot <- rot %*% Xh.svd$loadings X2 <- (X - matrix(rep(Xh.svd$center, times=n), nrow=n, byrow=TRUE)) %*% Xh.svd$loadings X2 <- as.matrix(X2[ ,1:k]) rot <- as.matrix(rot[ ,1:k]) ## VT::28.07.2020 - - add adjusted for skewed data mode ## 3) Adjusted mode for skewed data: Instead of applying the reweighted ## MCD estimator, we calculate the adjusted outlyingness in the ## k-dimensional subspace V_1 and compute the mean and covariance ## matrix of the h points with the lowest adjusted outlyingness. outproj <- if(skew) projectAO(X2, k=k, alpha=alpha, h=h, rot=rot, center=center, scale=myscale, maxdir=maxdir, trace=trace) else projectMCD(X2, ev=Xh.svd$eigenvalues, k=k, alpha=alpha, h=h, niter=100, rot=rot, center=center, scale=myscale, trace=trace) center <- outproj$center eigenvalues <- outproj$eigenvalues loadings <- outproj$loadings scores <- outproj$scores if(is.list(dimnames(data)) && !is.null(dimnames(data)[[1]])) { dimnames(scores)[[1]] <- dimnames(data)[[1]] } else { dimnames(scores)[[1]] <- 1:n } dimnames(loadings) <- list(colnames(data), paste("PC", seq_len(ncol(loadings)), sep = "")) dimnames(scores)[[2]] <- as.list(paste("PC", seq_len(ncol(scores)), sep = "")) res <- new("PcaHubert",call=cl, loadings=loadings, eigenvalues=eigenvalues, center=center, scale=myscale, rank=myrank, scores=scores, k=k, quan=h, alpha=alpha, skew=skew, ao=outproj$ao, eig0=eig0, totvar0=totvar0, n.obs=n) } cl[[1]] <- as.name("PcaHubert") res@call <- cl ## Compute distances and flags res <- pca.distances(res, data, Xsvd$rank, crit.pca.distances) return(res) } ## ## Returns 'ndirect' (random) directions through the data - ## each through a pair of (randomly choosen) data points. ## If all=TRUE all possible directions (all possible pairs of points) ## are returned. ## extradir <- function(data, ndirect, all=TRUE){ if(all) # generate all possible directions (all pairs of n points) { cc <- combn(nrow(data), 2) B2 <- data[cc[1,],] - data[cc[2,],] } else { # generate 'ndirect' random directions if(TRUE){ uniran <- function(seed = 0){ seed<-floor(seed*5761)+999 quot<-floor(seed/65536) seed<-floor(seed)-floor(quot*65536) random<-seed/65536 list(seed=seed, random=random) } ## ## Draws a random subsubsample of k objects out of n. ## This function is called if not all (p+1)-subsets ## out of n will be considered. ## randomset <- function(n, k, seed){ ranset <- vector(mode="numeric", length=k) for(j in 1:k){ r <- uniran(seed) seed <- r$seed num <- floor(r$random * n) + 1 if(j > 1){ while(any(ranset == num)){ r <- uniran(seed) seed <- r$seed num <- floor(r$random * n) + 1 } } ranset[j] <- num } ans<-list() ans$seed <- seed ans$ranset <- ranset ans } n <- nrow(data) p <- ncol(data) r <- 1 B2 <- matrix(0,ndirect, p) seed <- 0 while(r <= ndirect) { sseed <- randomset(n, 2, seed) seed <- sseed$seed B2[r,] <- data[sseed$ranset[1], ] - data[sseed$ranset[2],] r <- r + 1 } } else { B2 <- matrix(0,ndirect, ncol(data)) for(r in 1:ndirect) { smpl <- sample(1:nrow(data), 2) # choose a random pair of points B2[r,] <- data[smpl[1], ] - data[smpl[2], ] # calculate the random direction based on these points } } } return(B2) } outl <- function(X, maxdir=250, h) { if(!is.matrix(X)) X <- as.matrix(X) n <- nrow(X) p <- ncol(X) ## For each direction 'v' through 2 data points we project the n data points xi on v ## and compute their robustly standardized absolute residual ## |xi'v - tmcd(xj'v|/smcd(xj'v) ## alldir <- choose(n, 2) # all possible directions through two data points - n*(n-1)/2 ndir <- min(maxdir, alldir) # not more than maxdir (250) all <- (ndir == alldir) # all directions if n small enough (say n < 25) B <- extradir(X, ndir, all=all) # the rows of B[ndir, ncol(X)] are the (random) directions Bnorm <- vector(mode="numeric", length=nrow(B)) # ndir x 1 Bnorm <- apply(B, 1, vecnorm) # Bnormr <- Bnorm[Bnorm > 1.E-12] # choose only the nonzero length vectors m <- length(Bnormr) # the number of directions that will be used B <- B[Bnorm > 1.E-12,] # B[m x ncol(X)] A <- diag(1/Bnormr) %*% B # A[m x ncol(X)] Y <- X %*% t(A) # n x m - projections of the n points on each of the m directions Z <- matrix(0,n, m) # n x m - to collect the outlyingness of each point on each direction for(i in 1:m) { umcd <- unimcd(Y[,i], quan=h) # one-dimensional MCD: tmcd and smcd if(umcd$smcd < 1.E-12) { ## exact fit situation: will not be handled if((r2 <- rankMM(X[umcd$weights==1,])) == 1) stop("At least ", sum(umcd$weights), " observations are identical.") } else Z[,i] <- abs(Y[,i] - umcd$tmcd) / umcd$smcd } outl <- apply(Z, 1, max) # n x 1 - the outlyingnesses of all n points outl } unimcd <- function(y, quan){ out <- list() ncas <- length(y) len <- ncas-quan+1 if(len == 1){ out$tmcd <- mean(y) out$smcd <- sqrt(var(y)) } else { ay <- c() I <- order(y) y <- y[I] ay[1] <- sum(y[1:quan]) for(samp in 2:len){ ay[samp]<-ay[samp-1]-y[samp-1]+y[samp+quan-1] } ay2<-ay^2/quan sq<-c() sq[1]<-sum(y[1:quan]^2)-ay2[1] for(samp in 2:len){ sq[samp]<-sq[samp-1]-y[samp-1]^2+y[samp+quan-1]^2-ay2[samp]+ay2[samp-1] } sqmin<-min(sq) Isq<-order(sq) ndup<-sum(sq == sqmin) ii<-Isq[1:ndup] slutn<-c() slutn[1:ndup]<-ay[ii] initmean<-slutn[floor((ndup+1)/2)]/quan initcov<-sqmin/(quan-1) res<-(y-initmean)^2/initcov sortres<-sort(res) factor<-sortres[quan]/qchisq(quan/ncas,1) initcov<-factor*initcov res<-(y-initmean)^2/initcov quantile<-qchisq(0.975,1) out$weights<-(res 0) stop("response not allowed in formula") mf <- match.call(expand.dots = FALSE) mf$... <- NULL mf[[1]] <- as.name("model.frame") mf <- eval.parent(mf) ## this is not a `standard' model-fitting function, ## so no need to consider contrasts or levels if (.check_vars_numeric(mf)) stop("PCA applies only to numerical variables") na.act <- attr(mf, "na.action") mt <- attr(mf, "terms") attr(mt, "intercept") <- 0 x <- model.matrix(mt, mf) res <- PcaLocantore.default(x, ...) ## fix up call to refer to the generic, but leave arg name as `formula' cl[[1]] <- as.name("PcaLocantore") res@call <- cl # if (!is.null(na.act)) { # res$na.action <- na.act # if (!is.null(sc <- res$x)) # res$x <- napredict(na.act, sc) # } res } PcaLocantore.default <- function(x, k=ncol(x), kmax=ncol(x), delta = 0.001, na.action = na.fail, scale=FALSE, signflip=TRUE, crit.pca.distances=0.975, trace=FALSE, ...) { cl <- match.call() if(missing(x)){ stop("You have to provide at least some data") } y <- data <- x <- as.matrix(x) n <- nrow(y) p <- ncol(y) ## ## verify and set the input parameters: k and kmax ## myrank <- rankMM(x) kmax <- max(min(floor(kmax), myrank),1) if((k <- floor(k)) < 0) k <- 0 else if(k > kmax) { warning(paste("The number of principal components k = ", k, " is larger then kmax = ", kmax, "; k is set to ", kmax,".", sep="")) k <- kmax } if(k != 0) k <- min(k, ncol(data)) ###################################################################### ## VT::4.08.2016 ## if scale = TRUE, scale with mad, otherwise scale can be a vector ## of length p, or a function ## use the undocumented function doScale() from robustbase ## if(is.logical(scale)) scale <- if(scale) mad else NULL if(!is.null(scale)) { x.scaled <- doScale(x, center=NULL, scale=scale) sc <- x.scaled$scale data <- x.scaled$x }else { sc <- vector('numeric', p) + 1 data <- x } ## if(is.logical(scale)) ## { ## if(scale) ## { ## sc <- apply(x, 2L, sd) ## data <- sweep(data, 2L, sc, "/", check.margin=FALSE) ## } ## } ## else if(is.numeric(scale) && length(scale) == p) ## { ## data <- sweep(data, 2L, scale, "/", check.margin = FALSE) ## sc <- scale ## } ## else stop("length of 'scale' must equal the number of columns of 'x'") ## attr(data, "scaled:scale") <- sc ## Center with the spatial median and project on the sphere spa = spatial.median(data, delta) mu = spa$mu ep = spa$ep tt = matrix(mu, n, p, byrow=TRUE) data = data-tt for(i in 1:n) { z = sqrt(sum((data[i, ])^2)) y[i, ] = 0 * data[i, ] if(z > ep) { y[i, ] = (data[i, ] )/z } } ## no scaling - we have already scaled with MAD if(k == 0) # let PcaClassic guess the number of components to select { out = PcaClassic(y, k=k, kmax=kmax, scale=FALSE, signflip=signflip, ...) k <- out@k } ## This will return all components, later we will select the first k out = PcaClassic(y, scale=FALSE, signflip=signflip, ...) scores = y %*% out@loadings # these are (slightly) diferent from the scores returned by PcaClassic # because PcaClassic will center by the mean the already centered data # use these scores to compute the standard deviations (mad) sdev = apply(scores, 2, "mad") names2 = names(sdev) orsdev = order(sdev) # sort the sdevs (although almost always they will be sorted) orsdev = rev(orsdev) # use them to sort the loadings, etc. sdev = sdev[orsdev] scores = scores[,orsdev, drop=FALSE] loadings = out@loadings[,orsdev, drop=FALSE] names(sdev)=names2 dimnames(scores)[[2]]=names2 dimnames(loadings)[[2]]=names2 ## scale is a vector of 1s with length p (if FALSE), a vector with column mad (if TRUE) or ## any other vector with length p (posibly computed by doScale()) scale <- sc center <- doScale(t(as.vector(mu)), center=NULL, scale=1/scale)$x # rescale back to the original data scores <- doScale(x, center, scale)$x %*% loadings # compute the scores scores <- scores[, 1:k, drop=FALSE] # select only fist k loadings <- loadings[, 1:k, drop=FALSE] eigenvalues <- (sdev^2)[1:k] eig0 <- sdev^2 totvar0 <- sum(eig0) ###################################################################### names(eigenvalues) <- NULL if(is.list(dimnames(data))) { ##dimnames(scores)[[1]] <- dimnames(data)[[1]] rownames(scores) <- rownames(data) } dimnames(scores)[[2]] <- as.list(paste("PC", seq_len(ncol(scores)), sep = "")) dimnames(loadings) <- list(colnames(data), paste("PC", seq_len(ncol(loadings)), sep = "")) ## fix up call to refer to the generic, but leave arg name as cl[[1]] <- as.name("PcaLocantore") res <- new("PcaLocantore", call=cl, rank=myrank, loadings=loadings, eigenvalues=eigenvalues, center=center, scale=scale, scores=scores, k=k, n.obs=n, eig0=eig0, totvar0=totvar0) ## Compute distances and flags res <- pca.distances(res, x, p, crit.pca.distances) return(res) } ## computes the spatial median spatial.median <- function(x, delta) { dime = dim(x) n=dime[1] p=dime[2] delta1=delta*sqrt(p) mu0=apply(x,2,median) h=delta1+1 tt=0 while(h>delta1) { tt=tt+1 TT=matrix(mu0,n,p,byrow=TRUE) U=(x-TT)^2 w=sqrt(apply(U,1,sum)) w0=median(w) ep=delta*w0 z=(w<=ep) w[z]=ep w[!z]=1/w[!z] w=w/sum(w) x1=x for(i in 1:n) x1[i,]=w[i]*x[i,] mu=apply(x1,2,sum) h=sqrt(sum((mu-mu0)^2)) mu0=mu } out=list(mu=mu0,ep=ep) out } rrcov/R/LdaPP.R0000644000176200001440000002422514443667016012711 0ustar liggesusers## The S3 version LdaPP <- function (x, ...) UseMethod("LdaPP") LdaPP.formula <- function(formula, data, subset, na.action, ...) { m <- match.call(expand.dots = FALSE) m$... <- NULL m[[1]] <- as.name("model.frame") m <- eval.parent(m) Terms <- attr(m, "terms") grouping <- model.response(m) x <- model.matrix(Terms, m) xint <- match("(Intercept)", colnames(x), nomatch=0) if(xint > 0) x <- x[, -xint, drop=FALSE] res <- LdaPP.default(x, grouping, ...) ## res$terms <- Terms ## fix up call to refer to the generic, but leave arg name as 'formula' cl <- match.call() cl[[1]] <- as.name("LdaPP") res@call <- cl ## res$contrasts <- attr(x, "contrasts") ## res$xlevels <- .getXlevels(Terms, m) ## res$na.action <- attr(m, "na.action") res } LdaPP.default <- function(x, grouping, prior = proportions, tol = 1.0e-4, method = c("huber", "mad", "sest", "class"), optim = FALSE, trace=FALSE, ...) { if(is.null(dim(x))) stop("x is not a matrix") method <- match.arg(method) xcall <- match.call() x <- as.matrix(x) n <- nrow(x) p <- ncol(x) if(length(grouping) == 1) { ## this is the number of groups and the groups are of equal size ng = grouping ni = n/ng if(ng*ni < n) stop("nrow(x) is not divisible by the number of groups") grouping <- rep(0,0) for(i in 1:ng) grouping <- c(grouping, rep(i,ni)) }else if(length(grouping) > 1 && length(grouping) < n) { ## grouping contains a vector with the group sizes ng <- length(grouping) if(sum(grouping) != n) stop("nrow(x) is not equal to n1+n2+...+nn") gx <- rep(0,0) for(i in 1:ng) gx <- c(gx, rep(i,grouping[i])) grouping <- gx } if(n != length(grouping)) stop("nrow(x) and length(grouping) are different") g <- as.factor(grouping) lev <- lev1 <- levels(g) counts <- as.vector(table(g)) if(!missing(prior)) { if(any(prior < 0) || round(sum(prior), 5) != 1) stop("invalid prior") if(length(prior) != nlevels(g)) stop("prior is of incorrect length") prior <- prior[counts > 0] } if(any(counts == 0)) { warning(paste("group(s)", paste(lev[counts == 0], collapse=" "),"are empty")) lev1 <- lev[counts > 0] g <- factor(g, levels=lev1) counts <- as.vector(table(g)) } proportions <- counts/n ng <- length(proportions) names(g) <- NULL names(prior) <- levels(g) ############################################################# mrob <- if(method == "huber") .mrob.huber else if(method == "mad") .mrob.mad else if(method == "sest") .mrob.s else if(method == "class") .mrob.sd ## We have only two groups! n1 <- counts[1] n2 <- counts[2] ## a1 <- (n1-1)/(n-2) a1 <- n1/n a2 <- 1 - a1 raw.ldf <- ldf <- matrix(0, nrow=2, ncol=p) raw.ldfconst <- ldfconst <- rep(0,2) alpha <- .projpp(x, grp=g, a1, a2, mrob) dx <- .det.a0(alpha, x, grp=g, a1=a1, a2=a2, mrob=mrob, prior=prior) raw.ldf[1,] <- dx$alpha raw.ldfconst[1] <- dx$alpha0 ldf <- raw.ldf ldfconst <- raw.ldfconst if(optim) { sol.1 <- optim(dx$alpha, .auxPP, x=x, grp=g, a1=a1, a2=a2, mrob=mrob) if(sol.1$convergence != 0) sol.1 <- optim(sol.1$par, .auxPP, x=x, grp=g, a1=a1, a2=a2, mrob=mrob) dx <- .det.a0(sol.1$par, x, grp=g, a1=a1, a2=a2, mrob=mrob, prior=prior) ldf[1,] <- dx$alpha ldfconst[1] <- dx$alpha0 } return (new("LdaPP", call=xcall, prior=prior, counts=counts, raw.ldf=raw.ldf, raw.ldfconst=raw.ldfconst, ldf=ldf, ldfconst=ldfconst, method=method, X=x, grp=g)) } .projpp <- function(x, grp, a1, a2, mrob) { lev <- levels(grp) counts <- as.vector(table(grp)) p <- ncol(x) n1 <- counts[1] n2 <- counts[2] X1 <- x[grp == lev[1],] X2 <- x[grp == lev[2],] inull <- 0 dmax <- 0 alpha <- NULL imax <- 0 jmax <- 0 for(i in 1:n1) { for(j in 1:n2) { aux <- sqrt(sum((X1[i,] - X2[j,])**2)) dx <- (X1[i,] - X2[j,])/aux px1 <- as.vector(t(X1%*%dx)) px2 <- as.vector(t(X2%*%dx)) m1 <- mrob(px1) m2 <- mrob(px2) if(is.null(m1$mu) | is.null(m1$s) | is.null(m2$mu) | is.null(m2$s)) { inull <- inull + 1 if(inull > 10) stop("Too many unsuccessful S-estimations!") }else { xdist <- (m1$mu - m2$mu)**2/(m1$s**2*a1 + m2$s**2*a2) if(xdist > dmax) { dmax <- xdist alpha <- dx imax <- i jmax <- j } } } } alpha } .det.a0 <- function(alpha, x, grp, a1, a2, mrob, prior) { lev <- levels(grp) counts <- as.vector(table(grp)) p <- ncol(x) n1 <- counts[1] n2 <- counts[2] n <- n1 + n2 alpha <- alpha/sqrt(sum(alpha**2)) px <- as.vector(t(x%*%alpha)) m1 <- mrob(px[grp == lev[1]]) m2 <- mrob(px[grp == lev[2]]) if(m1$mu < m2$mu) { alpha <- -1*alpha m1$mu <- -1*m1$mu m2$mu <- -1*m2$mu } alpha0 <- -((m1$mu + m2$mu)/2 + log(prior[2]/prior[1])/(m1$mu - m2$mu)*(a1*m1$s**2 + a2*m2$s**2)) names(alpha0) <- NULL list(alpha=alpha, alpha0=alpha0) } ## ## A function to be maximized by Nelder and Mead algorithm in optim(), ## with first argument the vector of parameters over which ## maximization is to take place. It returns a scalar result. ## ## The initial values are from the projection algorithm ## .auxPP <- function(alpha, x, grp, a1, a2, mrob) { lev <- levels(grp) counts <- as.vector(table(grp)) p <- ncol(x) n1 <- counts[1] n2 <- counts[2] n <- n1 + n2 px <- as.vector(t(x%*%alpha)) m1 <- mrob(px[grp == lev[1]]) m2 <- mrob(px[grp == lev[2]]) ret <- -(m1$mu - m2$mu)**2/(m1$s**2*a1 + m2$s**2*a2) if(is.null(ret)) ret <- NA if(length(ret) == 0) { cat("\nERROR: length of distance for 'optim' equal to 0: ", ret, "\n") ret <- NA } ret } .mrob.sd <- function(y) { list(mu=mean(y, na.rm=TRUE), s=sd(y, na.rm=TRUE)) } .mrob.mad <- function(y) { list(mu=median(y, na.rm=TRUE), s=mad(y, na.rm=TRUE)) } .mrob.s <- function(y) { aux <- lmrob(y ~ 1) mu <- aux$init.S$coef names(mu) <- NULL s <- aux$init.S$scale ## mm=CovSest(as.matrix(y)) ## list(mu=mm@center, s=mm@cov[1,1]) list(mu=mu, s=s) } .mrob.huber <- function(y, k1=1.5, k2=2, tol=1e-06, iter=8) { if(any(i <- is.na(y))) y <- y[!i] n <- length(y) ## replicate the huberM() function from robustbase and add an ## iter parameter to be able to reproduce Ana's results # mx1 <- huberM(y, k=k1, tol=tol) mx1 <- .huberM(y, k=k1, tol=tol, iter=iter) k <- k2 mu <- median(y) s0 <- mx1$s th <- 2 * pnorm(k) - 1 beta <- th + k^2 * (1 - th) - 2 * k * dnorm(k) it <- 0:0 repeat { it <- it + 1:1 yy <- pmin(pmax(mu - k * s0, y), mu + k * s0) ss <- sum((yy - mu)^2)/n s1 <- sqrt(ss/beta) ## if(abs(s0-s1) < tol || (iter > 0 & it > iter)) if(it > iter) break s0 <- s1 } list(mu=mx1$mu, s=s0, it1=mx1$it, it2=it) } ## ## This is from robustbase - I added 'iter' parameter, ## only to be able to reproduce exactly na Pires' LdaPP ## FIXME: remove later ## .huberM <- function (x, k = 1.5, weights = NULL, tol = 1e-06, mu = if (is.null(weights)) median(x) else wgt.himedian(x, weights), s = if (is.null(weights)) mad(x, center = mu) else wgt.himedian(abs(x - mu), weights), warn0scale = getOption("verbose"), iter=8) { if (any(i <- is.na(x))) { x <- x[!i] if (!is.null(weights)) weights <- weights[!i] } n <- length(x) sum.w <- if (!is.null(weights)) { stopifnot(is.numeric(weights), weights >= 0, length(weights) == n) sum(weights) } else n it <- 0:0 if (sum.w == 0) return(list(mu = NA, s = NA, it = it)) if (s <= 0) { if (s < 0) stop("negative scale 's'") if (warn0scale && n > 1) warning("scale 's' is zero -- returning initial 'mu'") } else { wsum <- if (is.null(weights)) sum else function(u) sum(u * weights) repeat { it <- it + 1:1 y <- pmin(pmax(mu - k * s, x), mu + k * s) mu1 <- wsum(y)/sum.w ## if (abs(mu - mu1) < tol * s) if (it > iter) break mu <- mu1 } } list(mu = mu, s = s, it = it) } ## ## Predict method for LdaPP - additional parameter raw=FALSE. ## If set to TRUE, the prediction will be done using the raw estimates ## (obtained by the first approximation algorithm). ## setMethod("predict", "LdaPP", function(object, newdata, raw=FALSE){ ct <- FALSE if(missing(newdata)) { newdata <- object@X # use the training sample ct <- TRUE # perform cross-validation } x <- as.matrix(newdata) if(length(object@center)>0 & ncol(x) != ncol(object@center) | ncol(x) != ncol(object@ldf)) stop("wrong number of variables") ldf <- if(raw) object@raw.ldf else object@ldf ldfconst <- if(raw) object@raw.ldfconst else object@ldfconst ret <- .mypredictLda(object@prior, levels(object@grp), ldf, ldfconst, x) if(ct) ret@ct <- mtxconfusion(object@grp, ret@classification) ret }) rrcov/R/CovMcd.R0000644000176200001440000000351114443667016013117 0ustar liggesusersCovMcd <- function(x, raw.only = FALSE, alpha=control@alpha, nsamp = control@nsamp, scalefn=control@scalefn, maxcsteps=control@maxcsteps, initHsets=NULL, save.hsets=FALSE, seed=control@seed, trace=control@trace, use.correction=control@use.correction, control=CovControlMcd(), ...) { ## MM 2014-11-04: add '...' so we are compatible to covMcd() extensions in robustbase ## Analize and validate the input parameters ... ## if a control object was supplied, take the option parameters from it, ## but if single parameters were passed (not defaults) they will override the ## control object. ## prepare the call to covMcd() which will return an S3 object ## handle the case of nsamp="best" or "exact" iter <- if(is.numeric(nsamp)) nsamp else 0 xcall <- match.call() mcd <- covMcd(x=x, raw.only=raw.only, alpha=alpha, nsamp=nsamp, scalefn=control@scalefn, maxcsteps=control@maxcsteps, initHsets = NULL, save.hsets = FALSE, seed=seed, trace=trace, use.correction=use.correction, ...) new("CovMcd", call= xcall, iter=iter, crit=mcd$crit, cov=mcd$cov, center=mcd$center, n.obs=mcd$n.obs, mah = mcd$mah, wt = mcd$mcd.wt, X = mcd$X, method=mcd$method, best=mcd$best, alpha=mcd$alpha, quan=mcd$quan, raw.cov = mcd$raw.cov, raw.center = mcd$raw.center, raw.mah = mcd$raw.mah, raw.wt = mcd$raw.weights, raw.cnp2 = mcd$raw.cnp2, cnp2 = mcd$cnp2, singularity = mcd$singularity) } rrcov/R/PcaGrid.R0000644000176200001440000000710514443667016013260 0ustar liggesuserssetMethod("getQuan", "PcaGrid", function(obj) obj@n.obs) ## The S3 version PcaGrid <- function (x, ...) UseMethod("PcaGrid") PcaGrid.formula <- function (formula, data = NULL, subset, na.action, ...) { cl <- match.call() mt <- terms(formula, data = data) if (attr(mt, "response") > 0) stop("response not allowed in formula") mf <- match.call(expand.dots = FALSE) mf$... <- NULL mf[[1]] <- as.name("model.frame") mf <- eval.parent(mf) ## this is not a 'standard' model-fitting function, ## so no need to consider contrasts or levels if (.check_vars_numeric(mf)) stop("PCA applies only to numerical variables") na.act <- attr(mf, "na.action") mt <- attr(mf, "terms") attr(mt, "intercept") <- 0 x <- model.matrix(mt, mf) res <- PcaGrid.default(x, ...) ## fix up call to refer to the generic, but leave arg name as `formula' cl[[1]] <- as.name("PcaGrid") res@call <- cl # if (!is.null(na.act)) { # res$na.action <- na.act # if (!is.null(sc <- res$x)) # res$x <- napredict(na.act, sc) # } res } PcaGrid.default <- function(x, k=0, kmax=ncol(x), scale=FALSE, na.action = na.fail, crit.pca.distances=0.975, trace=FALSE, ...) { cl <- match.call() if(missing(x)){ stop("You have to provide at least some data") } data <- as.matrix(x) n <- nrow(data) p <- ncol(data) ## ## verify and set the input parameters: k and kmax ## myrank <- rankMM(data) kmax <- max(min(floor(kmax), myrank),1) if(trace) cat("k=", k, ", kmax=", kmax, ".\n", sep="") if((k <- floor(k)) < 0) k <- 0 else if(k > kmax) { warning(paste("The number of principal components k = ", k, " is larger then kmax = ", kmax, "; k is set to ", kmax,".", sep="")) k <- kmax } if(k != 0) k <- min(k, ncol(data)) else { k <- min(kmax, ncol(data)) if(trace) cat("The number of principal components is defined by the algorithm. It is set to ", k,".\n", sep="") } ###################################################################### if(is.logical(scale)) { scale <- if(scale) sd else NULL } out <- PCAgrid(data, k, scale=scale, trace=-1, ...) scores <- predict(out) center <- out$center scale <- out$scale sdev <- out$sdev scores <- as.matrix(scores[, 1:k]) loadings <- as.matrix(out$loadings[, 1:k]) eigenvalues <- (sdev^2)[1:k] ###################################################################### names(eigenvalues) <- NULL if(is.list(dimnames(data))) rownames(scores) <- rownames(data) # dimnames(scores)[[1]] <- dimnames(data)[[1]] dimnames(scores)[[2]] <- paste("PC", seq_len(ncol(scores)), sep = "") dimnames(loadings) <- list(colnames(data), paste("PC", seq_len(ncol(loadings)), sep = "")) ## fix up call to refer to the generic, but leave arg name as `formula' cl[[1]] <- as.name("PcaGrid") res <- new("PcaGrid", call=cl, rank=myrank, loadings=loadings, eigenvalues=eigenvalues, center=center, scale=scale, scores=scores, k=k, n.obs=n) ## Compute distances and flags res <- pca.distances(res, data, p, crit.pca.distances) return(res) } rrcov/R/PcaProj.R0000644000176200001440000000704714443667016013312 0ustar liggesuserssetMethod("getQuan", "PcaProj", function(obj) obj@n.obs) ## The S3 version PcaProj <- function (x, ...) UseMethod("PcaProj") PcaProj.formula <- function (formula, data = NULL, subset, na.action, ...) { cl <- match.call() mt <- terms(formula, data = data) if (attr(mt, "response") > 0) stop("response not allowed in formula") mf <- match.call(expand.dots = FALSE) mf$... <- NULL mf[[1]] <- as.name("model.frame") mf <- eval.parent(mf) ## this is not a 'standard' model-fitting function, ## so no need to consider contrasts or levels if (.check_vars_numeric(mf)) stop("PCA applies only to numerical variables") na.act <- attr(mf, "na.action") mt <- attr(mf, "terms") attr(mt, "intercept") <- 0 x <- model.matrix(mt, mf) res <- PcaProj.default(x, ...) ## fix up call to refer to the generic, but leave arg name as `formula' cl[[1]] <- as.name("PcaProj") res@call <- cl # if (!is.null(na.act)) { # res$na.action <- na.act # if (!is.null(sc <- res$x)) # res$x <- napredict(na.act, sc) # } res } PcaProj.default <- function(x, k=0, kmax=ncol(x), scale=FALSE, na.action = na.fail, crit.pca.distances=0.975, trace=FALSE, ...) { cl <- match.call() if(missing(x)){ stop("You have to provide at least some data") } data <- as.matrix(x) n <- nrow(data) p <- ncol(data) ## ## verify and set the input parameters: k and kmax ## myrank <- rankMM(data) kmax <- max(min(floor(kmax), myrank),1) if((k <- floor(k)) < 0) k <- 0 else if(k > kmax) { warning(paste("The number of principal components k = ", k, " is larger then kmax = ", kmax, "; k is set to ", kmax,".", sep="")) k <- kmax } if(k != 0) k <- min(k, ncol(data)) else { k <- min(kmax, ncol(data)) if(trace) cat("The number of principal components is defined by the algorithm. It is set to ", k,".\n", sep="") } if(is.logical(scale)) { scale <- if(scale) sd else NULL } out <- PCAproj(data, k, scale=scale, ...) center <- out$center scale <- out$scale sdev <- out$sdev loadings <- as.matrix(out$loadings[, 1:k]) ## VT::31.07.2020 ## scores <- predict(out) ## scores <- as.matrix(scores[, 1:k]) scores <- (data - matrix(rep(center, nrow(data)), nrow = nrow(data), byrow = TRUE)) %*% loadings eigenvalues <- (sdev^2)[1:k] ###################################################################### names(eigenvalues) <- NULL if(is.list(dimnames(data))) rownames(scores) <- rownames(data) # dimnames(scores)[[1]] <- dimnames(data)[[1]] dimnames(scores)[[2]] <- paste("PC", seq_len(ncol(scores)), sep = "") dimnames(loadings) <- list(colnames(data), paste("PC", seq_len(ncol(loadings)), sep = "")) ## fix up call to refer to the generic, but leave arg name as `formula' cl[[1]] <- as.name("PcaProj") res <- new("PcaProj", call=cl, rank=myrank, loadings=loadings, eigenvalues=eigenvalues, center=center, scale=scale, scores=scores, k=k, n.obs=n) ## Compute distances and flags res <- pca.distances(res, data, p, crit.pca.distances) return(res) } rrcov/R/AllGenerics.R0000644000176200001440000000622514443667016014141 0ustar liggesuserssetGeneric("plot") setGeneric("summary") setGeneric("psi", function(obj, x) standardGeneric("psi")) setGeneric("wt", function(obj, x) standardGeneric("wt")) setGeneric("vt", function(obj, x) standardGeneric("vt")) setGeneric("erho", function(obj) standardGeneric("erho")) setGeneric("erhoLim", function(obj) standardGeneric("erhoLim")) setGeneric("erhoLimD", function(obj) standardGeneric("erhoLimD")) setGeneric("arpLim", function(obj) standardGeneric("arpLim")) setGeneric("csolve", function(obj) standardGeneric("csolve")) setGeneric("iterM", function(obj, x, t1, s, eps, maxiter) standardGeneric("iterM")) setGeneric("isClassic", function(obj) standardGeneric("isClassic")) setGeneric("isSingular", function(obj) standardGeneric("isSingular")) setGeneric("getMeth", function(obj) standardGeneric("getMeth")) if(!isGeneric("getCenter")) setGeneric("getCenter", function(obj) standardGeneric("getCenter")) if(!isGeneric("getScale")) setGeneric("getScale", function(obj) standardGeneric("getScale")) setGeneric("getCov", function(obj) standardGeneric("getCov")) setGeneric("getCorr", function(obj) standardGeneric("getCorr")) setGeneric("getData", function(obj) standardGeneric("getData")) setGeneric("getDistance", function(obj) standardGeneric("getDistance")) setGeneric("getEvals", function(obj) standardGeneric("getEvals")) setGeneric("getDet", function(obj) standardGeneric("getDet")) setGeneric("getShape", function(obj) standardGeneric("getShape")) setGeneric("getFlag", function(obj, prob=0.975) standardGeneric("getFlag")) setGeneric("getRaw", function(obj) standardGeneric("getRaw")) setGeneric("restimate", function(obj, x, ...) standardGeneric("restimate")) if(!isGeneric("predict")) setGeneric("predict", function(object, ...) standardGeneric("predict")) if(!isGeneric("screeplot")) setGeneric("screeplot", function(x, ...) standardGeneric("screeplot")) if(!isGeneric("biplot")) setGeneric("biplot", function(x, ...) standardGeneric("biplot")) if(!isGeneric("scorePlot")) setGeneric("scorePlot", function(x, ...) standardGeneric("scorePlot")) if(!isGeneric("getQuan")) setGeneric("getQuan", function(obj) standardGeneric("getQuan")) # returns the number of observations used # in the computation of the PCA (n for classic) if(!isGeneric("getLoadings")) setGeneric("getLoadings", function(obj) standardGeneric("getLoadings")) if(!isGeneric("getEigenvalues")) setGeneric("getEigenvalues", function(obj) standardGeneric("getEigenvalues")) if(!isGeneric("getSdev")) setGeneric("getSdev", function(obj) standardGeneric("getSdev")) if(!isGeneric("getScores")) setGeneric("getScores", function(obj) standardGeneric("getScores")) if(!isGeneric("getPrcomp")) setGeneric("getPrcomp", function(obj) standardGeneric("getPrcomp")) # return a prcomp() compatible object to use the # available standard plots (i.e. a list with # with sdev, scale, scores, rotation) rrcov/R/Qda.R0000644000176200001440000000564214443667016012460 0ustar liggesuserssetMethod("show", "Qda", function(object){ if(!is.null(cl <- object@call)) { names(cl)[2] <- "" cat("Call:\n") dput(cl) } digits = max(3, getOption("digits") - 3) cat("\nPrior Probabilities of Groups:\n") print(object@prior) cat("\nGroup means:\n") print(object@center) ng <- length(object@prior) for(i in 1:ng){ cat("\nGroup: ",levels(object@grp)[i], "\n") print(object@cov[,,i]) } # cat("\nLinear Coeficients:\n") # print(object@ldf) # cat("\nConstants:\n") # print(object@ldfconst) # svd <- x$svd # names(svd) <- dimnames(x$scaling)[[2]] # if(length(svd) > 1) { # cat("\nProportion of trace:\n") # print(round(svd^2/sum(svd^2), 4), ...) # } invisible(object) }) setMethod("predict", "Qda", function(object, newdata){ ct <- FALSE if(missing(newdata)) { newdata <- object@X # use the training sample ct <- TRUE # perform cross-validation } x <- as.matrix(newdata) if(ncol(x) != ncol(object@center)) stop("wrong number of variables") ret <- .mypredictQda(object@prior, levels(object@grp), object@center, object@covinv, object@covdet, x) if(ct) ret@ct <- mtxconfusion(object@grp, ret@classification) ret }) .mypredictQda <- function(prior, lev, center, covinv, covdet, x){ ng <- length(prior) nm <- names(prior) if(is.null(nm)) nm <- lev xx <- matrix(0, nrow=nrow(x), ncol=ng) posterior <- xx for(j in 1:nrow(x)){ for(i in 1:ng){ xx[j,i] <- (x[j,]-center[i,]) %*% covinv[,,i] %*% (x[j,]-center[i,]) + log(covdet[i]) - 2*log(prior[i]) xx[j,i] <- -0.5*xx[j,i] } } for(i in 1:nrow(xx)){ tmp <- sum(exp(xx[i,])) for(j in 1:ncol(xx)) posterior[i,j] <- exp(xx[i,j])/tmp } cl <- factor(nm[max.col(xx)], levels = lev) new("PredictQda", classification=cl, posterior=posterior, x = xx) } setMethod("show", "PredictQda", function(object){ if(!is.null(object@ct)) { tab <- object@ct acctab <- t(apply(tab, 1, function(x) x/sum(x))) dimnames(acctab) <- dimnames(tab) AER <- 1 - sum(diag(tab))/sum(tab) prt <- as.matrix(round(c("Apparent error rate" = AER),4)) colnames(prt) <- "" print(prt) cat("\nClassification table", "\n") print(tab) cat("\nConfusion matrix", "\n") print(round(acctab, 3)) } else print(object@classification) ## print(object@posterior) ## print(object@x) invisible(object) }) setMethod("summary", "Qda", function(object, ...){ new("SummaryQda", qdaobj=object) }) setMethod("show", "SummaryQda", function(object){ show(object@qdaobj) invisible(object) }) rrcov/vignettes/0000755000176200001440000000000014660616376013434 5ustar liggesusersrrcov/vignettes/mybiblio.bib0000644000176200001440000020364714443667016015730 0ustar liggesusers @STRING(AJS = "Austrian Journal of Statistics") @STRING(JASA = "Journal of the American Statistical Association") @STRING(JCGS = "Journal of Computational and Graphical Statistics") @STRING(JMA = "Journal of Multivariate Analysis") @STRING(CSDA = "Computational Statistics \& Data Analysis") @STRING(SMA-JISS = "Statistical Methods and Applications") @STRING(JSS = "Journal of Statistical Software") @STRING(WRR = "Water Resource Research") @STRING(JRSS-A = "Journal of the Royal Statistical Society: Series A (Statistics in Society)") @STRING(JRSS-B = "Journal of the Royal Statistical Society: Series B (Statistical Methodology)") @STRING(JRSS-C = "Journal of the Royal Statistical Society: Series C (Applied Statistics)") @STRING(JRSS-D = "Journal of the Royal Statistical Society: Series D (The Statistican)") @STRING(WILEY = "{John Wiley \& Sons}") %% The Annals of Mathematical Statistics was published between 1930 and 1972 %% by the Institute of Mathematical Statistics. The journal was superseded in %% 1973 by The Annals of Probability and The Annals of Statistics. @incollection{ agullo:96, author = {J. J. Agull\'o }, title = {Exact Iterative Computation of the Multivariate {M}inimum {V}olume {E}llipsoid Estimator with a Branch and Bound Algorithm}, booktitle = {Proceedings in Computational Statistics, COMPSTAT`96}, publisher = {Physica Verlag}, year = {1996}, address = {Heidelberg}, editor = {A. Prat}, pages = {175--180}, } @book{ alexander, author = {Alexander, Christopher and Ishikawa, Sara and Silverstein, Murray}, title = {A Pattern Language: Towns, Buildings, Construction (Center for Environmental Structure Series)}, year = {1977}, publisher = {Oxford University Press}, month = {August} } @BOOK{ anderson:58, AUTHOR = {T. W. Anderson}, TITLE = {An Introduction to Multivariate Statistical Analysis}, PUBLISHER= WILEY, ADDRESS = {New York}, YEAR = {1958} } @incollection{ atkinson:91, author = {Atkinson, A.C. and Weisberg, S.}, title = {Simulated Annealing for the Detection of Multiple Outliers Using Least Squares and Least Median of Squares Fitting}, booktitle = {Directions in Robust Statistics and Diagnostics, Part 1}, publisher = {Springer-Verlag}, pages = {7--20}, editor = {Stahel, W. and Weisberg, S.}, year = {1991}, } @BOOK{ atkinson:2000, AUTHOR = {Atkinson, A. C. and Riani, M.}, TITLE = {Robust Diagnostic Regression Analysis}, PUBLISHER = {Springer-Verlag}, YEAR = {2000}, ADDRESS = {New York }, } @ARTICLE{ blount:99, author = {Brian Blount and Siddhartha Chatterjee}, title = {An Evaluation of {J}ava for Numerical Computing}, journal = {Scientific Programing}, volume = {7}, number = {2}, year = {1999}, issn = {1058-9244}, pages = {97--110}, publisher = {IOS Press}, address = {Amsterdam, The Netherlands, The Netherlands}, } @incollection{ boisvert:98, author = "Ronald F. Boisvert and Jack J. Dongarra and Roldan Pozo and Karin A. Remington and G. W. Stewart", title = "Developing Numerical Libraries in {Java}", booktitle = "ACM 1998 Workshop on Java for High-Performance Network Computing", publisher = {ACM SIGPLAN}, pages = "??--??", year = "1998", url = "citeseer.ist.psu.edu/article/boisvert98developing.html" } @ARTICLE{ boisvert:2001, author = {Ronald F. Boisvert and Jos\'{e} Moreira and Michael Philippsen and Roldan Pozo}, title = {Java and Numerical Computing}, journal = {Computing in Science and Engineering}, volume = {3}, number = {2}, year = {2001}, pages = {18--24}, doi = {http://doi.ieeecomputersociety.org/10.1109/5992.908997}, url = "citeseer.ist.psu.edu/499657.html" } @ARTICLE{ brien:92, AUTHOR = "Peter C. O'Brien", TITLE = "Robust Procedures for Testing Equality of Covariance Matrices", JOURNAL = "Biometrics", PAGES = "819--827", YEAR = "1992", VOLUME = "48", NUMBER = "3" } @ARTICLE{ butler:1993, AUTHOR = "Butler, R.W. and Davies, P.L. and Jhun, M.", TITLE = "Asympthotic for the Minimum Covariance Determinant Estimator", JOURNAL = "The Annals of Statistics", PAGES = "1385-1401", YEAR = "1993", VOLUME = "21", } @ARTICLE{ campbell:80, AUTHOR = "Campbell, N. A.", TITLE = "Procedures in Multivariate Analysis {I}: Robust Covariance Estimation", JOURNAL = "Applied Statistics", PAGES = "231--237", YEAR = "1980", VOLUME = "29", } @ARTICLE{ campbell:82, AUTHOR = "Campbell, N. A.", TITLE = "Robust Procedures in Multivariate Analysis II: Robust Canonical Variate Analysis", JOURNAL = "Applied Statistics", PAGES = "1--8", YEAR = "1982", VOLUME = "31", NUMBER = "1", } @BOOK{ chambers:98, AUTHOR = {J. M. Chambers}, TITLE = {Programming with Data: A Guide to the S Language}, PUBLISHER= {Springer-Verlag}, YEAR = {1998}, ADDRESS = {New York} } @ARTICLE{ Chakraborty-Chaudhuri, AUTHOR = "Chakraborty, B. and Chaudhuri, P.", TITLE = "On the Use of Genetic Algorithm with Elitism in Robust and Nonparametric Multivariate Estimation", JOURNAL = "Austrian Journal of Statistics", PAGES = "13--27", YEAR = "2003", VOLUME = "30", } @ARTICLE{ chork, AUTHOR = "Chork, C. Y. and Rousseeuw, P. J. ", TITLE = "Integrating a High Beakdown Option into Discriminant Analysis in Exploration Geochemistry", JOURNAL = "Journal of Geochemical Exploration", PAGES = "191--203", YEAR = "1992", VOLUME = "43", } @ARTICLE{ croux-dehon:01, AUTHOR = "C. Croux and C. Dehon", TITLE = "Robust Linear Discriminant Analysis Using {S}-Estimators", JOURNAL = "The Canadian Journal of Statistics", PAGES = "473-492", YEAR = "2001", VOLUME = "29", } @ARTICLE{ croux-haesbroeck:99, AUTHOR = "Croux, C. and Haesbroeck, G.", TITLE = "Influence Function and Efficiency of the Minimum Covariance Determinant Scatter Matrix Estimator", JOURNAL = JMA, PAGES = "161-190", YEAR = "1999", VOLUME = "71", } @ARTICLE{ croux-Haesbroeck:2000, AUTHOR = {Croux, C. and Haesbroeck, G.}, TITLE = {Principal Components Analysis Based on Robust Estimators of the Covariance or Correlation Matrix: Influence Functions and Efficiencies}, JOURNAL = {Biometrika}, PAGES = {603--618}, YEAR = {2000}, VOLUME = {87}, NUMBER = {}, } @incollection{ croux-Ruiz-Gazen:1996, author = {Croux, C. and Ruiz-Gazen, A.}, title = {A Fast Algorithm for Robust Principal Components Based on Projection Pursuit}, booktitle = {Proceedings in Computational Statistics, COMPSTAT`96}, publisher = {Physica Verlag}, year = {1996}, address = {Heidelberg }, editor = {A. Prat}, pages = {211--216}, } @ARTICLE{ croux-Ruiz-Gazen:2005, AUTHOR = {Croux, C. and Ruiz-Gazen, A.}, TITLE = {High Breakdown Estimators for Principal Components: The Projection-pursuit Approach Revisited}, JOURNAL = JMA, PAGES = {206--226}, YEAR = {2005}, VOLUME = {95}, NUMBER = {}, } @ARTICLE{ croux-filzmoser-oliveira-pppca, AUTHOR = {Croux, C. and Filzmoser, P. and Oliveira, M.R.}, TITLE = {Algorithms for Projection-pursuit Robust Principal Component Analysis}, JOURNAL = {Chemometrics and Intelligent Laboratory Systems}, PAGES = {218--225}, YEAR = {2007}, VOLUME = {87}, NUMBER = {218}, } @ARTICLE{ croux-joossens:05, AUTHOR = "Croux, C. and Joossens, K.", TITLE = "Influence of Observations on the Misclassification Probability in Quadratic Discriminant Analysis", JOURNAL = JMA, PAGES = "384--403", YEAR = "2005", VOLUME = "96", } @ARTICLE{ Daigle:1992, AUTHOR = {G. Daigle and L. Rivest}, TITLE = {A Robust Biplot}, JOURNAL = {The Canadian Journal of Statistics}, PAGES = {241--255}, YEAR = {1992}, VOLUME = {20}, NUMBER = {3}, } @ARTICLE{ davidson:1998, author = {Russell Davidson and James G. Mackinnon}, title = {Graphical Methods for Investigating the Size and Power of Hypothesis Tests}, journal = {The Manchester School of Economic \& Social Studies}, year = {1998}, volume = {66}, NUMBER = {1}, pages = {1--26}, MONTH = {January}, NOTE = {available at http://ideas.repec.org/a/bla/manch2/v66y1998i1p1-26.html} } @ARTICLE{ davies:87, AUTHOR = "Davies, P.L.", TITLE = "Asymptotic Behavior of {S}-Estimators of Multivariate Location Parameters and Dispersion Matrices", JOURNAL = "The Annals of Statistics", PAGES = "1269--1292", YEAR = "1987", VOLUME = "15", } @ARTICLE{ dempster:1977, author = {A. P. Dempster and M. N. Laird and D. B. Rubin}, title = {Maximum Likelihood from Incomplete Data via the {EM} Algorithm}, journal = JRSS-B, volume = {39}, number = {}, year = {1977}, pages = {1--22}, } @ARTICLE{ devlin:81, author = {Devlin, S. J. and Gnanadesikan, R. and Kettenring, J. R.}, title = {Robust Estimation of Dispersion Matrices and Principal Components}, journal = JASA, volume = {76}, number = {}, year = {1981}, pages = {354--362}, } @ARTICLE{ filzmoser:2005, author = {Peter Filzmoser and Robert G. Garrett and Clemens Reimann}, title = {Multivariate Outlier Detection in Explortion Geochemistry}, journal = {Computers \& Geosciences}, volume = {31}, number = {}, year = {2005}, pages = {579--587}, } @incollection{ filzmoser:2008, author = {Peter Filzmoser and Sven Serneels and Ricardo Maronna and P. J. van Espen}, title = {Robust Multivariate Methods in Chemometrics}, booktitle = {Comprehensive Chemometrics}, publisher = {}, year = {2008}, address = {}, editor = {B. Walczak and R. T. Ferre and S. Brown}, pages = {}, NOTE = {to appear} } @ARTICLE{ friedman:89, AUTHOR = "Friedman, J. H. ", TITLE = "Regularized Discriminant Analysis", JOURNAL = "Journal of the American Statistical Association", PAGES = "165-175", YEAR = "1989", VOLUME = "84", } @ARTICLE{ gabriel, AUTHOR = {K. R. Gabriel}, TITLE = {The Biplot Graphical Display of Matrices with Application to Principal Component Analysis}, JOURNAL = {Biometrika}, PAGES = {453--467}, YEAR = {1971}, VOLUME = {58}, NUMBER = {}, } @ARTICLE{ Gelper-Croux, AUTHOR = {Sarah Gelper and Christophe Croux}, TITLE = {Multivariate Out-of-sample Tests for {G}ranger Causality}, JOURNAL = CSDA, PAGES = {3319-3329}, YEAR = {2007}, VOLUME = {51}, } @ARTICLE{ Gnanadesikan-Kettenring:1972, AUTHOR = "R. Gnanadesikan and J. R. Kettenring", TITLE = "Robust Estimates, Residuals, and Outlier Detection with Multiresponse Data", JOURNAL = "Biometrics", PAGES = "81--124", YEAR = "1972", VOLUME = "28", NUMBER = {} } %\bibitem[Van Gelder and Neykov (1998)]{GelderNeykov98} %Van Gelder, P. H. A. J. M. and Neykov, N. M. (1998), Regional %Frequency Analysis of Extreme Water Levels Along the Dutch Coast Using %L-moments: Some Preliminary Results. In: \textit{Stochastic Models of %Hydrological Processes and their Applications to Problems of %Environmental Preservation}, NATO Advanced Workshop, Moskow, Russia, %23-27 November 1998, 14--20. %\bibitem[Van Gelder et al. (2000)]{VanGelder00} %Van Gelder, P. H. A. J. M., Neykov, N. M., Neytchev, P. N., Vrijling, %J. K. and Chbab, H. (2000), Probability Distributions of Annual %Maximum River Discharges in North-western and Central Europe. In: %\textit{Foresight and Precaution}, Cottam, M. P., D.V. Harvey, R.P. %Pape and J. Tait (eds.), A. A. Balkema publishing, 899--903. @incollection{ habemma:74, author = {Habemma, J.D.F, Hermans, J. and van den Broek, K.}, title = {Stepwise Discriminant Analysis Program Using Density Estimation}, booktitle = {Proceedings in Computational Statistics, COMPSTAT`1974}, publisher = {Physica Verlag}, year = {1974}, address = {Heidelberg }, editor = {}, pages = {101-110}, } @ARTICLE{ hadi:94, author = {Hadi, A.S. and Simonoff, J.F.}, title = {Procedures for Identification of Multiple Outliers in Linear Models}, journal = JASA, volume = {88}, number = {}, year = {1994}, pages = {1264--1272}, } @BOOK{ hampel:1986, AUTHOR = {Hampel,F.R. and Ronchetti, E.M. and Rousseeuw P. J. and Stahel, W. A.}, TITLE = {Robust Statistics. The Approach Based on Infuence Functions}, PUBLISHER= WILEY, YEAR = 1986 } @ARTICLE{ hardin:2005, AUTHOR = {Hardin, J. and Rocke, D.M.}, TITLE = {The Distribution of Robust Distances}, JOURNAL = JCGS, PAGES = {910--927}, YEAR = {2005}, VOLUME = {14}, } @ARTICLE{ hawkins:94, author = {Douglas M. Hawkins}, title = {The Feasible Solution Algorithm for the Minimum Covariance Determinant Estimator in Multivariate Data}, journal = CSDA, volume = {17}, number = {2}, year = {1994}, issn = {0167-9473}, pages = {197--210}, publisher = {Elsevier Science Publishers B. V.}, address = {Amsterdam, The Netherlands, The Netherlands}, } @ARTICLE{ hawkins:97, AUTHOR = "Hawkins, D. M. and McLachlan, G. J.", TITLE = "High Breakdown Linear Discriminant Analysis", JOURNAL = "Journal of the American Statistical Association", PAGES = "136-143", YEAR = "1997", VOLUME = "92", } @ARTICLE{ hawkins:99, author = {Douglas M. Hawkins and David J. Olive}, title = {Improved Feasible Solution Algorithms for High Breakdown Estimation}, journal = CSDA, volume = {30}, number = {1}, year = {1999}, issn = {0167-9473}, pages = {1--11}, publisher = {Elsevier Science Publishers B. V.}, address = {Amsterdam, The Netherlands, The Netherlands}, } @ARTICLE{ he:2000, AUTHOR = "He, X. and Fung, W.K.", TITLE = "High Breakdown Estimation for Multiple Populations with Applications to Discriminant Analysis", JOURNAL = JMA, PAGES = "151-162", YEAR = "2000", VOLUME = "72", } @ARTICLE{ he:1996, AUTHOR = "Xuming He and Gang Wang", TITLE = "Cross-checking using the Minimum Volume Ellipsoid Estimator", JOURNAL = "Statistica Sinica", PAGES = "367--374", YEAR = "1996", VOLUME = "6", } @ARTICLE{ hubert-ROBPCA:2005, AUTHOR = "M. Hubert and P. J. Rousseeuw and Karlien {Vanden Branden}", TITLE = "ROBPCA: A New Approach to Robust Principal Component Analysis", JOURNAL = "Technometrics", PAGES = "64-79", YEAR = "2005", VOLUME = "47", } @ARTICLE{ hubert:04, AUTHOR = "Hubert, M. and Van Driessen, K.", TITLE = "Fast and Robust Discriminant Analysis", JOURNAL = CSDA, PAGES = "301-320", YEAR = "2004", VOLUME = "45", } @ARTICLE{ hubert:2007-CV, AUTHOR = {Mia Hubert and Sanne Engelen}, TITLE = {Fast Cross-Validation of High Breakdown Resampling Methods for {PCA}}, JOURNAL = CSDA, PAGES = {5013-5024}, YEAR = {2007}, VOLUME = {51}, } @incollection{ hubert-actuar, author = {M. Hubert and P. J. Rousseeuw and S. van Aelst}, title = {Robustness}, booktitle = {Encyclopedia of Actuarial Sciences}, publisher = WILEY, ADDRESS = {New York}, year = {2004}, editor = {J. Teugels and B. Sundt}, pages = {1515--1529} } @incollection{ hubert:2005, author = {M. Hubert and P. J. Rousseeuw and S. van Aelst}, title = {Multivariate Outlier Detection and Robustness}, booktitle = {Data Mining and Data Visualization, Handbook of Statistics, vol. 24}, publisher = {Elsevier, North-Holland}, year = {2005}, editor = {C. R. Rao and E. J. Wegman and J. L. Solka}, pages = {263--302} } @ARTICLE{ hubert:2006, AUTHOR = {Rousseeuw, P. J. and Debruyne, M. and Engelen, S. and Hubert, M}, TITLE = {Robustness and Outlier Detection in Chemometrics}, JOURNAL = {CRITICAL REVIEWS IN ANALYTICAL CHEMISTRY}, PAGES = {221--242}, YEAR = {2006}, VOLUME = {36}, } @TECHREPORT{ hubert:2007TR-PCA, AUTHOR = {M. Hubert and P. J. Rousseeuw and T. Verdonck}, TITLE = {Robust {PCA} for Skewed Data}, INSTITUTION = {Katholieke Universitet Leuven}, TYPE = {Technical Report}, NUMBER = {TR-07-03}, YEAR = {2007}, NOTE = {Department of Mathematics}, } @ARTICLE{ hubert:2008-PCA, AUTHOR = {M. Hubert and P. J. Rousseeuw and T. Verdonck}, TITLE = {Robust {PCA} for Skewed Data and its Outlier Map}, JOURNAL = CSDA, PAGES = {2264--2274}, YEAR = {2009}, VOLUME = {53}, NUMBER = {6}, } @ARTICLE{ hubert:2008-outlier, AUTHOR = {Mia Hubert and Stephan {Van der Veeken}}, TITLE = {Outlier Detection for Skewed Data}, JOURNAL = {Journal of Chemometrics}, PAGES = {235--246}, YEAR = {2008}, VOLUME = {22}, NUMBER = {3--4}, } @ARTICLE{ hubert:2008, AUTHOR = {Mia Hubert and P. J. Rousseeuw and S. van Aelst}, TITLE = {High-Breakdown Robust Multivariate Methods}, JOURNAL = {Statistical Science}, PAGES = {92--119}, YEAR = {2008}, VOLUME = {23}, NOTE = {} } @MISC{ hubert-debruyne:2008, AUTHOR = {M. Debruyne and M. Hubert}, TITLE = {The Influence Function of the {S}tahel-{D}onoho Covariance Estimator of Smallest Outlyingness}, JOURNAL = {Statistics and Probability Letters}, PAGES = {}, YEAR = {}, VOLUME = {}, NOTE = {in press}, doi = {http://dx.doi.org/doi:10.1016/j.spl.2008.08.006} } @ARTICLE{ hubert-engelen:2004, AUTHOR = {S. Engelen and M. Hubert}, TITLE = {Robust {PCA} and Classification in Biosciences}, JOURNAL = {Bioinformatics}, PAGES = {1728--1736}, YEAR = {2004}, VOLUME = {20}, NOTE = {}, } @ARTICLE{ H90, AUTHOR = {Hosking, J. R. M.}, TITLE = {L-moments: Analysis and estimation of distributions using linear combinations of order statistics}, JOURNAL = JRSS-B, PAGES = {105--124}, YEAR = {1990}, VOLUME = {52}, } @ARTICLE{ HW93, AUTHOR = "Hosking, J. R. M. and J. R. Wallis", TITLE = "Some statistics useful in {R}egional {F}requency {A}nalysis", JOURNAL = WRR, PAGES = "271--281", YEAR = "1993", VOLUME = "29", } @BOOK{ HW97, AUTHOR = "Hosking, J. R. M. and J. R. Wallis", TITLE = "Regional Frequency Analysis: An Approach Based on L-moments", PUBLISHER = "Cambridge University Press", YEAR = "1997", } @incollection{ jennrich:77, author = {Jennrich, R. I.}, title = {Stepwise Discriminant Analysis}, booktitle = {Statistical Methods for Digital Computers}, publisher = WILEY, year = {1977}, address = {New York}, editor = {K. Enslein, A. Ralston and H.S.Wilf}, pages = {76--95}, } @BOOK{ johnson-wichern, AUTHOR = "R. A. Johnson and D. W. Wichern", TITLE = "Applied Multivariate Statistical Analysis", PUBLISHER = "Prentice Hall", YEAR = "2002", ADDRESS = "International", NOTE = "fifth edition" } @inproceedings{ karnel:1991, author = {Gerald Karnel}, title = {Robust canonical correlation and correspondence analysis}, booktitle = {ICOSCO-I: conference proceedings on The frontiers of statistical scientific theory \& industrial applications (Vol. II)}, year = {1991}, isbn = {0-935950-28-1}, pages = {335--354}, location = {Cesme, Izmir, Turkey}, publisher = {American Sciences Press}, address = {Syracuse, NY, USA}, } @ARTICLE{ krusinska:88, AUTHOR = "Krusinska, E. and Liebhart, J.", TITLE = "Robust Selection of the most Discriminative Variables in the Dichotomous Problem with Application to some Respiratory Desease Data", JOURNAL = "Biometrical Journal", PAGES = "295--304", YEAR = "1988", VOLUME = "30", } @ARTICLE{ krusinska:88a, AUTHOR = "Krusinska, E.", TITLE = "Robust methods in discriminant analysis", JOURNAL = "Rivista di Statistica Applicada", PAGES = "239--253", YEAR = "1988", VOLUME = "21", NUMBER = "3" } @ARTICLE{ krusinska:89, AUTHOR = "Krusinska, E. and Liebhart, J.", TITLE = "Some Further Remarks on the Robust Selection of Variables in Discriminant Analysis", JOURNAL = "Biometrical Journal", PAGES = "227--233", YEAR = "1989", VOLUME = "31", } @ARTICLE{ kumar:2005, AUTHOR = "Kumar, R. and Chatterjee, C.", TITLE = "Regional flood frequency analysis using L-moments for North Brahmaputra region of India", JOURNAL = "Journal of Hydrologic Engineering, American Society of Civil Engineers", PAGES = "1--7", YEAR = "2005", VOLUME = "10", } @ARTICLE{ lachenbruch-michey:68, AUTHOR = "Lachenbruch, P. A. and Michey, M. R.", TITLE = "Estimation of Error Rates in Discriminant Analysis", JOURNAL = "Technometrics", PAGES = "1--11", YEAR = "1968", VOLUME = "10", } @BOOK{ lachenbruch:1975, AUTHOR = "Lachenbruch, P. A.", TITLE = "Discriminant Analysis", PUBLISHER = "Hafner", YEAR = "1975", ADDRESS = "New York", } @ARTICLE{ li:1985, author = {G. Li and Z. Chen}, title = {Projection-Pursuit Approach to Robust Dispersion Matrices and Principal Components: Primary Theory and {M}onte {C}arlo}, journal = JASA, volume = {80}, number = {}, year = {1985}, pages = {759--766}, } @ARTICLE{ LittleAndSmith:87, AUTHOR = "Little, R. J. A. and Smith, P. J.", TITLE = "Editing and imputation for quantitative data", JOURNAL = "Journal of the American Statistical Association", PAGES = "58--69", YEAR = "1987", VOLUME = "82", } @BOOK{ LittleAndRubin:1987, AUTHOR = {R. J. A. Little and D. B. Rubin}, TITLE = {Statistical Analysis with Missing Data}, publisher = WILEY, YEAR = "1987", ADDRESS = "New York", } @ARTICLE{ Little:88, AUTHOR = "Little, R. J. A.", TITLE = "Robust estimation of the mean and covariance matrix from data with missing values", JOURNAL = "Applied Statistics", PAGES = "23--38", YEAR = "1988", VOLUME = "37", } @ARTICLE{ boente-fraiman:1999, AUTHOR = "Boente, G. and Fraiman, R.", TITLE = "Discussion of 'Robust principal components for functional data' by Locantore et al.", JOURNAL = "Test", PAGES = "1--28", YEAR = "1999", VOLUME = "8", } @ARTICLE{ locantore:1999, AUTHOR = "Locantore, N. and Marron, J.S. and Simpson, D.G. and Tripoli, N. and Zhang, J.T. and Cohen, K.L.", TITLE = "Robust Principal Components for Functional Data", JOURNAL = "Test", PAGES = "1--28", YEAR = "1999", VOLUME = "8", } @ARTICLE{ lopuhaa:1989, AUTHOR = "H. P. {Lopuha\"a}", TITLE = "On the Relation Between {S}-Estimators and {M}-estimators of Multivariate Location and Covariance", JOURNAL = "The Annals of Statistics", PAGES = "1662--1683", YEAR = "1989", VOLUME = "17", } @ARTICLE{ lopuhaa-rousseeuw, AUTHOR = "{Lopuha\"a}, H. P. and Rousseeuw, P. J.", TITLE = "Breakdown Points of Affine Equivariant Estimators of Multivariate Location and Covariance Matrices", JOURNAL = "The Annals of Statistics", PAGES = "229--248", YEAR = "1991", VOLUME = "19", } @BOOK{ Marazzi:1993, AUTHOR = "A. Marazzi", TITLE = "Algorithms, Routines and S Functions for Robust Statistics", PUBLISHER = "Wadsworth and Brooks/Cole", YEAR = "1993", ADDRESS = "", } @ARTICLE{ Marazzi:2006, AUTHOR={ Alfio Marazzi and Voctor Yohai}, TITLE={Robust Box-Cox transformations based on minimum residual autocorrelation}, JOURNAL=CSDA, YEAR=2006, VOLUME={50}, NUMBER={10}, PAGES={2752--2768}, MONTH={June}, NOTE={available at http://ideas.repec.org/a/eee/csdana/v50y2006i10p2752-2768.html} } @BOOK{ mardia, AUTHOR = {K. V. Mardia and J. T. Kent and J. M. Bibby}, TITLE = {Multivariate Analysis}, PUBLISHER= {Academic Press}, ADDRESS = {London}, YEAR = 1979 } @ARTICLE{ maronna:95, AUTHOR = "Maronna, R. A. and Yohai, V. J.", TITLE = "The Behavoiur of the {S}tahel-{D}onoho Robust Multivariate Estimator", JOURNAL = "Journal of the American Statistical Association", PAGES = "330--341", YEAR = "1995", VOLUME = "90", } @incollection{ maronna:98, author = {Maronna, R. A. and Yohai, V. J.}, title = {Robust Estimation of Multivariate Location and Scatter}, booktitle = {Encyclopedia of Statistical Sciences, Updated volume 2}, publisher = WILEY, year = {1998}, address = {New York}, editor = {S. Kotz, C. Read and D. Banks}, pages = {589--596}, } @ARTICLE{ maronna:2002, AUTHOR = "R. A. Maronna and R. H. Zamar", TITLE = "Robust Estimation of Location and Dispersion for High-Dimensional Datasets", JOURNAL = "Technometrics", PAGES = "307--317", YEAR = "2002", VOLUME = "44", } @ARTICLE{ maronna:2005, AUTHOR = "Maronna, R. A.", TITLE = "Principal Components and Orthogonal Regression Based on Robust Scales", JOURNAL = "Technometrics", PAGES = "264--273", YEAR = "2005", VOLUME = "47", } @BOOK{ maronna:2006, AUTHOR = "R. A. Maronna and D. Martin and V. Yohai", TITLE = "Robust Statistics: Theory and Methods", PUBLISHER = WILEY, YEAR = "2006", ADDRESS = "New York", } @BOOK{ mclachlan:1992, AUTHOR = "MacLachlan, Geoffrey J.", TITLE = "Discriminant analysis and statistical pattern recognition", PUBLISHER = WILEY, YEAR = "1992", ADDRESS = "New York", } @ARTICLE{ moller, author = {S. Frosch Moller and J. von Frese and R. Bro}, title = {Robust methods for multivariate data analysis}, journal = {JOURNAL OF CHEMOMETRICS}, volume = {19}, number = {}, year = {2005}, pages = {549--563}, publisher = {}, address = {}, } @article{ morgenthaler:2007, author = {Stephan Morgenthaler}, title = {A Survey of Robust Statistics}, journal = SMA-JISS, month = {February}, number = {3}, pages = {271--293}, publisher = {Springer-Verlag}, volume = {15}, year = {2007} } @ARTICLE{ moreira:2000, author = {J. E. Moreira and S. P. Midkiff and M. Gupta and P. V. Artigas and M. Snir and R. D. Lawrence}, title = {Java programming for high-performance numerical computing}, journal = {IBM Systems Journal}, volume = {39}, number = {1}, year = {2000}, issn = {0018-8670}, pages = {21--56}, publisher = {IBM Corp.}, address = {Riverton, NJ, USA}, } @ARTICLE{ naga:1990, AUTHOR = {R. Naga and G. Antille}, TITLE = {Stability of Robust and Non-robust Principal Component Analysis}, JOURNAL = CSDA, PAGES = {169--174}, YEAR = {1990}, VOLUME = {10}, } @ARTICLE{ Nath-Pavur, AUTHOR = "Nath, R. and Pavur, R.", TITLE = "A new Statistic in the One Way Multivariate Analysis of Variance", JOURNAL = CSDA, PAGES = "297--315", YEAR = "1985", VOLUME = "2", } @ARTICLE{ neyko:2003, AUTHOR = "Mueller, Ch. and Neykov, N.M.", TITLE = "Breakdown Points of the Trimmed Likelihood and Related Estimators in Generalized Linear Models", JOURNAL = "Journal of Statistical Planning and Inference", PAGES = "503--519", YEAR = "2003", VOLUME = "116", } @ARTICLE{ pardoe-yin-cook, AUTHOR = "Iain Pardoe and Xiangrong Yin and Dennis R. Cook", TITLE = "Graphical Tools for Quadratic Discriminant Analysis", JOURNAL = "Technometrics", PAGES = "172--183", YEAR = "2007", VOLUME = "49", } @ARTICLE{ pena:01, AUTHOR = "Pe\~{n}a, D. and Prieto, F.J.", TITLE = "Multivariate Outlier Detection and Robust Covariance Matrix Estimation", JOURNAL = "Technometrics", PAGES = "286--301", YEAR = "2001", VOLUME = "43", } @ARTICLE{ pison:2002, AUTHOR = "Pison, G. and Van Aelst, S. and Willems, G.", TITLE = "Small Sample Corrections for {LTS} and {MCD}", JOURNAL = "Metrika", PAGES = "111--123", YEAR = "2002", VOLUME = "55", } @BOOK{ Puri-Sen, AUTHOR ="Puri, M.L. and Sen, P.K.", TITLE ="Nonparametric Methods in Multivariate Analysis", PUBLISHER=WILEY, YEAR = "1971", PAGES = "184--186", } @ARTICLE { rao:59, author = {Rao, C.R.}, title = {Some Problems Involving Linear Hypotheses in Multivariate Analysis}, year = {1959}, volume = {46}, pages = {49--58}, journal = {Biometrika} } @Book{ Sarkar:2008, title = {\pkg{lattice}: Multivariate Data Visualization with \proglang{R}}, author = {Deepayan Sarkar}, address = {New York}, publisher = {Springer-Verlag}, year = {2008} } @ARTICLE{ reaven-miller, AUTHOR = "Reaven, G. M. and Miller, R. G.", TITLE = "An Attempt to Define the Nature of Chemical Diabetes Using a Multidimensional Analysis", JOURNAL = "Diabetologia", PAGES = "17--24", YEAR = "1979", VOLUME = "16" } @ARTICLE{ reimann:2007, AUTHOR = "Reimann, C. and Arnoldussen, A. and Boyd, R. and Finne, Tor Erik and Koller, F and Nordgullen, O and Englmair, P.", TITLE = "Element contents in leaves of four plant species (birch, mountain ash, fern and spruce) along anthropogenic and geogenic concentration gradients", JOURNAL = "Science of the Total Environment", PAGES = "416--433", YEAR = "2007", VOLUME = "377", } @MISC{ riani:2008, title = {Controlling the Size of Multivariate Outlier Tests with the {MCD} Estimator of Scatter}, author = {Andrea Cerioli and Marco Riani and Anthony C. Atkinson}, abstract = {Abstract\ \ Multivariate outlier detection requires computation of robust distances to be compared with appropriate cut-off points. In this paper we propose a new calibration method for obtaining reliable cut-off points of distances derived from the MCD estimator of scatter. These cut-off points are based on a more accurate estimate of the extreme tail of the distribution of robust distances. We show that our procedure gives reliable tests of outlyingness in almost all situations of practical interest, provided that the sample size is not much smaller than 50. Therefore, it is a considerable improvement over all the available MCD procedures, which are unable to provide good control over the size of multiple outlier tests for the data structures considered in this paper.}, journal = {Statistics and Computing}, volume = {}, number = {}, year = {2008}, pages = {}, doi = {http://dx.doi.org/10.1007/s11222-008-9096-5}, posted-at = {2008-11-21 04:06:43}, url = {http://dx.doi.org/10.1007/s11222-008-9096-5} } @ARTICLE{ ronchetti:85, AUTHOR = "Ronchetti, E.", TITLE = "Robust Model Selection in Regression", JOURNAL = "Statistics and Probability Letters", PAGES = "21--23", YEAR = "1985", VOLUME = "3", } @ARTICLE{ rousseeuw:84, AUTHOR = "Rousseeuw, P. J.", TITLE = "Least Median of Squares Regression", JOURNAL = "Journal of the American Statistical Association", PAGES = "851--857", YEAR = "1984", VOLUME = "79", } @incollection{ rousseeuw:85, author = {Rousseeuw, P. J.}, title = {Multivariate Estimation with High Breakdown Point}, booktitle = {Mathematical Statistics and Applications Vol. B}, publisher = {Reidel Publishing}, year = {1985}, address = {Dordrecht}, editor = {W. Grossmann and G. Pflug and I. Vincze and W. Wertz}, pages = {283--297}, } @BOOK{ rousseeuw-leroy, AUTHOR = "Rousseeuw, P. J. and Leroy, A. M.", TITLE = "Robust Regression and Outlier Detection", PUBLISHER = WILEY, YEAR = "1987", ADDRESS = "New York", } @incollection{ Rousseeuw-van-Zomeren, author = {Rousseeuw, P. J. and van Zomeren, B. C.}, title = {Robust Distances: Simulation and Cutoff Values}, booktitle = {Directions in Robust Statistics and Diagnostics, Part II}, publisher = {Springer-Verlag}, year = {1991}, address = {New York}, editor = {W. Stahel and S. Weisberg}, pages = {}, } @ARTICLE{ rousseeuw-vandriessen, AUTHOR = "Rousseeuw, P. J. and Van Driessen, K", TITLE = "A Fast Algorithm for the Minimum Covariance Determinant Estimator", JOURNAL = "Technometrics", PAGES = "212--223", YEAR = "1999", VOLUME = "41", } @ARTICLE{ rousseeuw-vandriessen:LTS, AUTHOR = {Rousseeuw, P. J. and Van Driessen, K.}, TITLE = {Computing {LTS} Regression for Large Data Sets}, JOURNAL = {Data Mining and Knowledge Discovery}, month = {January}, number = {1}, PAGES = {29--45}, YEAR = {2006}, VOLUME = {12}, publisher = {Springer-Verlag}, } @ARTICLE{ rousseeuw-willems:2002, AUTHOR = "Willems, G. and Pison, G. and Rousseeuw, P. J. and Van Aelst, S.", TITLE = "A Robust {Hotelling} Test", JOURNAL = "Metrika", PAGES = "125--138", YEAR = "2002", VOLUME = "55", } @ARTICLE{ rocke:93, AUTHOR = "Woodruff, D. L. and Rocke, D. M. ", TITLE = "Heuristic Search Algorithms for the Minimum Volume Ellipsoid", JOURNAL = JCGS, PAGES = "69--95", YEAR = "1993", VOLUME = "2", } @ARTICLE{ rocke:94, AUTHOR = "Woodruff, D. L. and Rocke, D. M.", TITLE = "Computable Robust Estimation of Multivariate Location and Shape in High Dimension Using Compound Estimators", JOURNAL = "Journal of the American Statistical Association", PAGES = "888--896", YEAR = "1994", VOLUME = "89", } @ARTICLE{ rocke:96, AUTHOR = "Rocke, D. M. and Woodruff, D. L.", TITLE = "Identification of Outliers in Multivariate Data", JOURNAL = "Journal of the American Statistical Association", PAGES = "1047--1061", YEAR = "1996", VOLUME = "91", } @ARTICLE{ rocke:96a, AUTHOR = "Rocke, D. M.", TITLE = "Robustness Properties of {S}-Estimators of Multivariate Location and Shape in High Dimension", JOURNAL = "The Annals of Statistics", PAGES = "1327--1345", YEAR = "1996", VOLUME = "24", } @ARTICLE{ rocke:97, AUTHOR = "Rocke, D. M. and Woodruff, D. L.", TITLE = "Robust Estimation of Multivariate Location and shape", JOURNAL = "Journal of Statistical Planning and Inference", PAGES = "245--255", YEAR = "1997", VOLUME = "57", } @ARTICLE{ rocke:2005, AUTHOR = "Shagufta Aslam and David M. Rocke", TITLE = "A Robust Testing Procedure for the Equality of Covariance Matrices", JOURNAL = CSDA, PAGES = "863--874", YEAR = "2005", VOLUME = "49", } @article{ rubin:76, author = {Rubin, D. B.}, title = {Inference and Missing Data}, year = {1976}, volume = {63}, pages = {581--592}, journal = {Biometrika} } @ARTICLE{ ruppert:1992, AUTHOR = {D. Ruppert}, TITLE = {Computing {S}-Estimators for Regression and Multivariate Location/Dispersion}, JOURNAL = JCGS, PAGES = {253--270}, YEAR = {1992}, VOLUME = {1}, } @BOOK{ friendly-categorical, AUTHOR = {Michael Friendly}, TITLE = {Visualizing Categorical Data}, YEAR = {2000}, PUBLISHER = {SAS Insitute}, ADDRESS = {Carey, NC} } @MISC{ sas-robcov, AUTHOR = "Michael Friendly", TITLE = "SAS Graphic Programs and Macros", JOURNAL = "", YEAR = "2007", HOWPUBLISHED = "http://www.math.yorku.ca/SCS/sasmac/", } @ARTICLE{ salibian:2005, AUTHOR = "Salibian-Barrera, M. and Yohai, V. J.", TITLE = "A Fast Algorithm for {S}-regression Estimates", JOURNAL = JCGS, PAGES = "414--427", YEAR = "2006", VOLUME = "15", } @ARTICLE{ serneels-pca-missing:2008, author ={Serneels, Sven and Verdonck, Tim}, title ={Principal Component Analysis for Data Containing Outliers and Missing Elements}, journal =CSDA, year =2008, volume ={52}, number ={3}, pages ={1712--1727}, month ={January}, url ={http://ideas.repec.org/a/eee/csdana/v52y2008i3p1712-1727.html} } @ARTICLE{ Siani-Peretti, AUTHOR = "Siani, C. and de Peretti, C.", TITLE = "Analysing the Performance of Bootstrap Neural Tests for Conditional Heteroskedasticity in {ARCH-M} Models", JOURNAL = CSDA, PAGES = "2442--2460", YEAR = "2006", VOLUME = "51", } @ARTICLE{ song:2000, AUTHOR = "Moon Sup Song and Young Joo Yoon and Youngjo Lee", TITLE = "A Study on High Breakdown Discriminant Analysis: A Monte Carlo Simulation", JOURNAL = "The Korean Communications in Statistics", PAGES = "225--232", YEAR = "2000", VOLUME = "7", } @misc{ song-study-discrimination, author = "Moon Sup Song", title = "A Study on Robust Two-Group Discrimination Based on GM-Estimators", url = "citeseer.ist.psu.edu/418237.html" } @article{ jain-statistical-pattern-recognition, author = "Anil K. Jain and Robert P. W. Duin and Jianchang Mao", title = "Statistical Pattern Recognition: A Review", journal = "IEEE Transactions on Pattern Analysis and Machine Intelligence", volume = "22", number = "1", pages = "4--37", year = "2000", url = "citeseer.ist.psu.edu/jain00statistical.html" } @TECHREPORT{ stahel-phd:81, AUTHOR = {Stahel, W. A.}, TITLE = {Robuste Sch\"atzungen: {I}nfinitesimale Optimalit\"at und Sch\"atzungen von Kovarianzmatrizen}, TYPE = {Ph.D. thesis no. 6881}, INSTITUTION = {Swiss Federal Institute of Technology ({ETH})}, ADDRESS = {Z\"urich}, YEAR = {1981}, URL = {http://e-collection.ethbib.ethz.ch/view/eth:21890}, } @TECHREPORT{ stahel:81, AUTHOR = {Stahel, W. A.}, TITLE = {Breakdown of Covariance Estimators}, INSTITUTION = {ETH Zurich}, TYPE = {Research Report}, NUMBER = {31}, YEAR = {1981}, NOTE = {{F}achgruppe f{\"u}r {S}tatistik}, } @TECHREPORT{ donoho:82, AUTHOR = {D. L. Donoho}, TITLE = {Breakdown Properties of Multivariate Location Estimators}, INSTITUTION = {Harvard University}, ADDRESS = {Boston}, NUMBER = {}, YEAR = {1982}, URL = {http://www-stat.stanford.edu/~donoho/Reports/Oldies/BPMLE.pdf}, } @incollection{ donoho-huber, AUTHOR = {D. L. Donoho and P. J. Huber}, TITLE = {The Notion of Breakdown Point}, BOOKTITLE = {A Festschrift for Erich Lehmann}, ADDRESS = {Wadsworth, Belmont, CA}, YEAR = {1983}, EDITOR = {P. Bikel and K. Doksum and J. L. Hodges} } @article{ stromberg:2004, author = {Arnold Stromberg}, title = {Why Write Statistical Software? {T}he Case of Robust Statistical Methods}, journal = JSS, volume = {10}, number = {5}, pages = {1--8}, day = {26}, month = {4}, year = {2004}, URL = {http://www.jstatsoft.org/v10/i05}, } @incollection{ todorov:90, author = {Todorov, V. and Neykov, N.M. and Neytchev, P.N.}, title = {Robust Selection of Variables in the Discriminant Analysis Based on {MVE} and {MCD} Estimators}, booktitle = {Proceedings in Computational Statistics, COMPSTAT 1990}, publisher = {Physica Verlag}, year = {1990}, address = {Heidelberg}, editor = {Konstantin Momirovic and Vesna Mildner}, pages = {193--198}, } @ARTICLE{ todorov:92, AUTHOR = "Todorov, V.", TITLE = "Computing the Minimum Covariance Determinant Estimator ({MCD}) by Simulated Annealing", JOURNAL = CSDA, PAGES = "515--525", YEAR = "1992", VOLUME = "14", } @ARTICLE{ todorov:94, AUTHOR = "Todorov, V. and Neykov, N.M. and Neytchev, P.N.", TITLE = "Robust Two-group Discrimination by Bounded Influence Regression", JOURNAL = CSDA, PAGES = "289--302", YEAR = "1994", VOLUME = "17", } @incollection{ todorov-compstat:94, author = {Todorov, V. and Neykov, N.M. and Neytchev, P.N.}, title = {Stability of (High-breakdown Point) Robust Principal Components Analysis}, booktitle = {Short Communications in Computational Statistics, COMPSTAT 1994}, publisher = {Physica Verlag}, year = {1994}, address = {Heidelberg}, editor = {R. Dutter and W. Grossmann}, pages = {90--92}, } @incollection{ todorov:02, author = {Todorov, Valentin}, title = {Java and Computing for Robust Statistics}, booktitle = {Developments in Robust Statistics}, publisher = {Physica Verlag}, year = {2003}, address = {Heidelberg}, editor = {R. Dutter and P. Filzmoser and U. Gather and P. J. Rousseeuw}, pages = {404--416}, } @ARTICLE{ todorov-ldastp, AUTHOR = {Todorov, Valentin}, TITLE = {Robust Selection of Variables in Linear Discriminant Analysis}, JOURNAL = SMA-JISS, PAGES = {395--407}, YEAR = {2007}, VOLUME = {15}, } @ARTICLE{ todorov-roblda, AUTHOR = "Valentin Todorov and Ana M. Pires", TITLE = "Comparative Performance of Several Robust Linear Discriminant Analysis Methods", JOURNAL = "REVSTAT Statistical Journal", PAGES = "63--83", YEAR = "2007", VOLUME = "5", } @ARTICLE{ todorov-neyko-etal, AUTHOR = "Neykov, N. M. and Neytchev, P. N. and Van Gelder, P. H. A. J. M. and Todorov, V.", TITLE = "Robust Detection of Discordant Sites in Regional Frequency Analysis", JOURNAL = WRR, PAGES = "W06417", YEAR = "2007", VOLUME = "43", } @ARTICLE{ todorov-manova, AUTHOR = {Valentin Todorov and Peter Filzmoser}, TITLE = {Robust Statistic for the One-way {MANOVA}}, JOURNAL = CSDA, PAGES = {37--48}, YEAR = {2010}, VOLUME = {54}, } @MISC{ todorov-cf, AUTHOR = "Valentin Todorov", TITLE = "A Note on the {MCD} Consistency and Small Sample Correction Factors", JOURNAL = "", PAGES = "", YEAR = "2008", VOLUME = "", NOTE = "Unpublished manuscript, in preparation", } @MISC{ todorov-constructors, AUTHOR = "Peter Ruckdeschel and Matthias Kohl and Valentin Todorov", TITLE = "Structured User Interfaces via Generating Functions ", JOURNAL = "", PAGES = "", YEAR = "2009", VOLUME = "", NOTE = "Unpublished manuscript, in preparation", } @MANUAL{ todorov-rrcov, AUTHOR = {Valentin Todorov}, TITLE = {\pkg{rrcov}: {S}calable Robust Estimators with High Breakdown Point}, YEAR = {2009}, NOTE = {\proglang{R}~package version~0.5-03}, URL = {http://CRAN.R-project.org/package=rrcov}, } @ARTICLE{ todorov-oof, AUTHOR = {Valentin Todorov and Peter Filzmoser}, TITLE = {An Object Oriented Framework for Robust Multivariate Analysis}, JOURNAL = JSS, PAGES = {1--47}, YEAR = {2009}, VOLUME = {32}, NUMBER = {3}, URL = {https://www.jstatsoft.org/article/view/v032i03}, } @MANUAL{ robustbase, title = {\pkg{robustbase}: {B}asic Robust Statistics}, author = {Peter J. Rousseeuw and Christophe Croux and Valentin Todorov and Andreas Ruckstuhl and Matias Salibian-Barrera and Tobias Verbeke and Martin Maechler}, year = {2009}, note = {\proglang{R}~package version~0.4-5}, URL = {http://CRAN.R-project.org/package=robustbase}, } @MANUAL{ filzmoser-mvoutlier, AUTHOR = {Moritz Gschwandtner and Peter Filzmoser}, TITLE = {\pkg{mvoutlier}: {M}ultivariate Outlier Detection Based on Robust Methods}, YEAR = {2007}, NOTE = {\proglang{R}~package version~1.3}, URL = {http://CRAN.R-project.org/package=mvoutlier}, } @MANUAL{ Asquith, AUTHOR = {Asquith, W. H.}, TITLE = {The lmomco Package: Reference manual}, YEAR = {2006}, URL={http://cran.R-project.org/packages=lmomco.pdf}, } @Manual{ RLanguage, title = {\proglang{R}: {A} Language and Environment for Statistical Computing}, author = {{\proglang{R} Development Core Team}}, organization = {\proglang{R} Foundation for Statistical Computing}, address = {Vienna, Austria}, year = {2009}, note = {{ISBN} 3-900051-07-0}, url = {http://www.R-project.org/} } @Manual{ filzmoser-pcaPP, title = {\pkg{pcaPP}: {R}obust {PCA} by Projection Pursuit}, author = {Peter Filzmoser and Heinrich Fritz and Klaudius Kalcher}, year = {2009}, note = {\proglang{R}~package version~1.7}, url = {http://CRAN.R-project.org/package=pcaPP}, } @Manual{ konis-robust, title = {\pkg{robust}: {I}nsightful Robust Library}, author = {Jiahui Wang and Ruben Zamar and Alfio Marazzi and Victor Yohai and Matias Salibian-Barrera and Ricardo Maronna and Eric Zivot and David Rocke and Doug Martin and Kjell Konis}, year = {2008}, note = {\proglang{R}~package version~0.3-4}, url = {http://CRAN.R-project.org/package=robust}, } @Manual{ locfit, title = {\pkg{locfit}: {L}ocal Regression, Likelihood and Density Estimation.}, author = {Catherine Loader}, year = {2007}, note = {\proglang{R}~package version~1.5-4}, url = {http://CRAN.R-project.org/package=locfit}, } @Manual{ mclust, title = {\pkg{mclust}: {M}odel-Based Clustering / Normal Mixture Modeling}, author = {Chris Fraley and Adrian Raftery}, year = {2009}, note = {\proglang{R}~package version~3.2}, url = {http://CRAN.R-project.org/package=mclust}, } @Manual{ Rfwdmv, title = {\pkg{Rfwdmv}: {F}orward Search for Multivariate Data}, author = {Anthony Atkinson and Andrea Cerioli and Marco Riani}, year = {2005}, note = {\proglang{R}~package version~0.72-2}, url = {http://CRAN.R-project.org/package=Rfwdmv}, } @incollection{ Tukey:89, author = {Tukey, John}, title = {Robust Statistics: From an Intelectual Game to Every Day Use}, booktitle = {Directions in Robust Statistics and Diagnostics, Part II}, publisher = {Springer-Verlag}, year = {1989}, address = {New York}, editor = {W.Stahel and S.Weisberg}, pages = {}, } @ARTICLE{ tyler:1996, AUTHOR = "J. T. Kent and D. E. Tyler", TITLE = "Constrained {M}~estimation of Multivariate Location and Scatter", JOURNAL = "The Annals of Statistics", PAGES = "1346--1370", YEAR = "1996", VOLUME = "24", } @ARTICLE{ vandev:93, AUTHOR = "Vandev, D.L.", TITLE = "A Note on Breakdown Point of the Least Median Squares and Least Trimmed Squares", JOURNAL = "Statistics and Probability Letters", PAGES = "117--119", YEAR = "1993", VOLUME = "16", } @incollection{ vandev-neykov, author = {Vandev, D. L. and Neykov, N. M.}, title = {Robust maximum likelihood in the Gaussian case, In New Directions in Data Analysis and Robustness}, booktitle = {New Directions in Data Analysis and Robustness}, publisher = {Birkhauser Verlag}, year = {1993}, address = {Basel}, editor = {Morgenthaler, S. and Ronchetti, E. and Stahel, W. A.}, pages = {259--264}, } @ARTICLE{ verboon:1994, AUTHOR={Peter Verboon and Ivo Lans}, TITLE={Robust Canonical Discriminant Analysis}, JOURNAL={Psychometrika}, YEAR=1994, VOLUME={59}, NUMBER={4}, PAGES={485-507}, MONTH={December}, NOTE={available at http://ideas.repec.org/a/spr/psycho/v59y1994i4p485-507.html} } @TECHREPORT{ Victoria-Feser:2003.04, AUTHOR={Samuel Copt and Maria-Pia Victoria-Feser}, TITLE={Variable Fast Algorithms for Computing High Breakdown Covariance Matrices with Missing Data}, YEAR=2003, MONTH=Aug, INSTITUTION={D{\'e}partement d'Econom{\'e}trie, Universit{\'e} de Gen{\'e}ve}, TYPE={Cahiers du D{\'e}partement d'Econom{\'e}trie}, NOTE={available at http://ideas.repec.org/p/gen/geneem/2003.04.html}, NUMBER={2003.04} } @incollection{ Victoria-Feser:2004, AUTHOR = {Samuel Copt and Maria-Pia Victoria-Feser}, TITLE = {Fast Algorithms for Computing High Breakdown Covariance Matrices with Missing Data}, BOOKTITLE = {Theory and Applications of Recent Robust Methods, Statistics for Industry and Technology Series}, YEAR = {2004}, EDITOR = {Hubert, M. and Pison, G. and Struyf, A. and Van Aelst, S.}, PAGES = {}, PUBLISHER = {Birkhauser Verlag}, ADDRESS = {Basel} } @ARTICLE{ Victoria-Feser:2002, AUTHOR = {Cheng, T. C. and Maria-Pia Victoria-Feser}, TITLE = {High Breakdown Estimation of Multivariate Location and Scale With Missing Observations}, JOURNAL = {British Journal of Mathematical and Statistical Psychology }, YEAR = {2002}, VOLUME = {55}, PAGES = {317--335} } @BOOK{ webb, abstract = {{Statistical pattern recognition is a very active area of study and research, which has seen many advances in recent years. New and emerging applications - such as data mining, web searching, multimedia data retrieval, face recognition, and cursive handwriting recognition - require robust and efficient pattern recognition techniques. Statistical decision making and estimation are regarded as fundamental to the study of pattern recognition.


Statistical Pattern Recognition, Second Edition has been fully updated with new methods, applications and references. It provides a comprehensive introduction to this vibrant area - with material drawn from engineering, statistics, computer science and the social sciences - and covers many application areas, such as database design, artificial neural networks, and decision support systems.


* Provides a self-contained introduction to statistical pattern recognition.
* Each technique described is illustrated by real examples.
* Covers Bayesian methods, neural networks, support vector machines, and unsupervised classification.
* Each section concludes with a description of the applications that have been addressed and with further developments of the theory.
* Includes background material on dissimilarity, parameter estimation, data, linear algebra and probability.
* Features a variety of exercises, from 'open-book' questions to more lengthy projects.


The book is aimed primarily at senior undergraduate and graduate students studying statistical pattern recognition, pattern processing, neural networks, and data mining, in both statistics and engineering departments. It is also an excellent source of reference for technical professionals working in advanced information development environments.

For further information on the techniques and applications discussed in this book please visit\&\#160;www.statistical-pattern-recognition.net } {"Statistical pattern recognition is a very active area of study and research, which has seen many advances in recent years. New and emerging applications - such as data mining, web searching, multimedia data retrieval, face recognition, and cursive handwriting recognition - require robust and efficient pattern recognition techniques. Statistical decision making and estimation are regarded as fundamental to the study of pattern recognition. Statistical Pattern Recognition, Second Edition has been fully updated with new methods, applications and references. It provides a comprehensive introduction to this vibrant area - with material drawn from engineering, statistics, computer science and the social sciences - and covers many application areas, such as database design, artificial neural networks, and decision support systems. Provides a self-contained introduction to statistical pattern recognition. Each technique described is illustrated by real examples. Covers Bayesian methods, neural networks, support vector machines, and unsupervised classification. Each section concludes with a description of the applications that have been addressed and with further developments of the theory. Includes background material on dissimilarity, parameter estimation, data, linear algebra and probability. Features a variety of exercises, from 'open-book' questions to more lengthy projects. The book is aimed primarily at senior undergraduate and graduate students studying statistical pattern recognition, pattern processing, neural networks, and data mining, in both statistics and engineering departments. It is also an excellent source of reference for technical professionals working in advanced information development environments."}}, author = {Webb, Andrew R. }, isbn = {0470845147}, keywords = {pattern-recognition}, month = {October}, publisher = WILEY, title = {Statistical Pattern Recognition, 2nd Edition}, url = {http://www.amazon.ca/exec/obidos/redirect?tag=citeulike09-20\&path=ASIN/0470845147}, year = {2002} } %========================================================================== %========================================================================= @BOOK{ cookwisb, AUTHOR = "Cook, R. D. and Weisberg, S.", TITLE = "Residuals and Influence in Regression", PUBLISHER = "Chapman and Hall", YEAR = "1982", } @ARTICLE{ bartlett, AUTHOR = "Bartlett, M.", TITLE = "An inverse matrix adjustment arising in disccriminant analysis", JOURNAL = "Annals of Mathematical Statistics", PAGES = "107-111", YEAR = "1951", VOLUME = "22", } @ARTICLE{ willems-zamar, AUTHOR = "Willems, G. and Joe H. and Zamar R.H.", TITLE = "Diagnosing Multivariate Outliers Detected by Robust Estimators", JOURNAL = "", PAGES = "", YEAR = "2008", VOLUME = "", } @TECHREPORT{ wood, AUTHOR = "Woodbury, M.", TITLE = "Inverting modified matrices", INSTITUTION = "Princeton University", TYPE = "Technical Report", NUMBER = "42", YEAR = "1950", NOTE = "Statistical Techniques Research Group", } @incollection{ acd+j:91, author = {Davison, A. C. and Snell, E. J. }, title = {Residuals and Diagnostics}, booktitle = {Statistical Theory and Modelling }, publisher = {Chapman and Hall }, year = {1991}, address = {London }, editor = {Hinkley, D. V. and Reid, N. and Snell, E. J. }, pages = {83--106}, } @article{ cook:77, author = {Cook, R. D. }, title = {Detection of influential observations in linear regression}, journal = {Technometrics }, year = {1977}, volume = {19}, pages = {15--18} } @article{ aca:82, author = {Atkinson, A. C. }, title = {Optimum biased coin designs for sequential clinical trials with prognostic factors}, year = {1982}, volume = {69}, pages = {61--67}, journal = {Biometrika} } @book{ mcc+n:89, author = {McCullagh, P. and Nelder, J. A. }, title = {Generalized Linear Models (2nd edition)}, publisher = {Chapman and Hall }, year = {1989}, address = {London } } @article{ efr:78, author = {Efron, B. }, title = {Regression and {ANOVA} with Zero--One data: measures of residual variation}, year = {1978}, volume = {73}, pages = {113--121}, journal = {Journal of the American Statistical Association } } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Outliers, Sampling Serveys %%% @BOOK{ barnett:1994, AUTHOR = {Barnett, V. and Lewis, T.}, TITLE = {Outliers in Statistical Data}, PUBLISHER = WILEY, YEAR = {1994}, ADDRESS = {}, } @Article{ Beguin:2004, author={C\`{e}dric B\`{e}guin and Beat Hulliger}, title={Multivariate Outlier Detection in Incomplete Survey Data: the Epidemic Algorithm and Transformed Rank Correlations}, journal=JRSS-B, year=2004, volume={127}, number={2}, pages={275-294}, month={}, url={http://ideas.repec.org/a/bla/jorssa/v167y2004i2p275-294.html} } @ARTICLE{ chambers:2004, author={Ray Chambers and Adandatilde;o Hentges and Xinqiang Zhao}, title={Robust Automatic Methods for Outlier and Error Detection}, journal=JRSS-A, year=2004, volume={127}, number={2}, pages={323-339}, month={}, url={http://ideas.repec.org/a/bla/jorssa/v167y2004i2p323-339.html} } @incollection{ franklin:1997, author = {Sarah Franklin and Marie Brodeur}, title = {A Practical Application of A Robust Multivariate Outlier Detection Method}, booktitle = {Proceedings of the Survey Research Methods Section, ASA (1997)}, publisher = {}, pages = {186--197}, editor = {}, year = {1997}, url={http://www.amstat.org/sections/srms/proceedings} } @incollection{ franklin:2000, author = {Sarah Franklin and Marie Brodeur and Steven Thomas}, title = {Robust Multivariate Outlier Detection Using Mahalanobis' Distance and Stahel-Donoho Estimators}, booktitle = {ICES - II, International Conference on Establishment Surveys - II}, publisher = {}, pages = {}, editor = {}, year = {2000}, url={} } @incollection{ hulliger:2007, author = {Beat Hulliger}, title = {Multivariate Outlier Detection and Treatment in Business Surveys}, booktitle = {ICES - III, International Conference on Establishment Surveys - III}, publisher = {}, pages = {}, editor = {}, year = {2007}, url={} } @ARTICLE{ Ghosh-Dastidar:2006, AUTHOR = {Bonnie Ghosh-Dastidar and J. L. Schafer}, TITLE = {Outlier Detection and Editing Procedures for Continuous Multivariate Data}, JOURNAL = {Journal of Official Statistics}, PAGES = {487-506}, YEAR = {2006}, VOLUME = {22}, NUMBER = {3} } @incollection{ santos-pereira-detection:2002, author = {Carla M. Santos-Pereira and Ana M. Pires}, title = {Detection of Outliers in Multivariate Data: A Method Based on Clustering and Robust Estimators}, booktitle = {Proceedings in Computational Statistics, COMPSTAT`2002}, publisher = {Physica Verlag}, year = {2002}, address = {Heidelberg }, editor = {H{\"a}rdle, W. and R{\"o}nz, B.}, pages = {291--296}, url = {citeseer.ist.psu.edu/545222.html} } @BOOK{ Schafer:1997, AUTHOR = {J.L. Schafer}, TITLE = {Analysis of Incomplete Multivariate Data}, PUBLISHER = {Chapman and Hall}, YEAR = {1997}, ADDRESS = {London}, } @ARTICLE{ smith:1987, AUTHOR = {Smith, T.M.F.}, TITLE = {Influential observations in survey sampling}, JOURNAL = {Applied Statistics}, PAGES = {143--152}, YEAR = {1987}, VOLUME = {}, } @ARTICLE{ Ton-de-Waal:2005, author={Ton de Waal and Wieger Coutinho}, title={Automatic Editing for Business Surveys: An Assessment of Selected Algorithms}, journal={International Statistical Review}, year=2005, volume={73}, number={1}, pages={73--102}, month={}, url={} } @ARTICLE{ Zijlstra:2007, AUTHOR = {Wobbe P. Zijlstra and L. Andries van der Ark and Klaas Sijtsma}, TITLE = {Outlier Detection in Test and Questionnaire Data}, JOURNAL = {Multivariate Behavioral Research}, PAGES = {531--555}, YEAR = {2007}, VOLUME = {4}, ISSUE = {3}, } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Software development references %% @BOOK{ gamma, AUTHOR = "Gamma, E. and Helm, R. and Johnson, R. and Vlissides, J.", TITLE = "Design Patterns: Elements of Reusable Object-oriented Software", PUBLISHER = "Addison-Wesley", ADDRESS = "Reading", YEAR = "1995" } @BOOK{ grand, AUTHOR = "Grand, M.", TITLE = "Patterns in Java, Volume 1.", PUBLISHER = WILEY, ADDRESS = "New York", YEAR = "1998" } @misc{ manolescu:why-java, author = "Dragos Manolescu and Adrian Kunzle", title = "Why Java is Not Suitable for Object-Oriented Frameworks", howpublished = {OOPSLA 2001 Proceedings Companion}, month = oct, year = 2001, note = "Available on the Web from \url{http://micro-workflow.com/}", url = {citeseer.ist.psu.edu/465868.html} } @article{ meusel:documentation-oo-framework, author = "Matthias Meusel and Krzysztof Czarnecki and Wolfgang K{\"o}pf", title = "A Model for Structuring User Documentation of Object- Oriented Frameworks Using Patterns and Hypertext", journal = "Lecture Notes in Computer Science", volume = "1241", pages = "496--??", year = "1997", url = "citeseer.ist.psu.edu/meusel97model.html" } @TECHREPORT{ argo:phd, AUTHOR = {Jason Elliot Robbins}, TITLE = {Cognitive Support Features for Software Development Tools}, INSTITUTION = {University of California}, ADDRESS = {Irvine}, TYPE = {Ph.D. thesis}, NUMBER = {}, YEAR = {1999}, NOTE = {}, URL = {http://argouml.tigris.org/docs/robbins_dissertation/}, } @ARTICLE{ argo:2000, AUTHOR = {Jason Elliot Robbins and D. F. Redmiles}, TITLE = {Cognitive Support, {UML} Adherence, and {XMI} Interchange in {A}rgo/{UML}}, JOURNAL = {Information and Software Technology}, VOLUME = {42}, PAGES = {79--89}, YEAR = {2000}, } @ARTICLE{ argo:2006, AUTHOR = {Mei Zhang}, TITLE = {Argo{UML}}, JOURNAL = {Journal of Computing Sciences in Colleges}, VOLUME = {21}, NUMBER = {5}, PAGES = {6--7}, YEAR = {2006}, } @TECHREPORT{ umlInfra, AUTHOR = {OMG}, TITLE = {{OMG} Unified Modeling Language ({OMG UML}), {I}nfrastructure, {V}2.2}, YEAR = {2009}, MONTH = {February}, TYPE = {Current formally adopted specification}, INSTITUTION = {Object Management Group}, URL = {http://www.omg.org/spec/UML/2.2/Infrastructure/PDF}, } @TECHREPORT{ umlSuper, AUTHOR = {OMG}, TITLE = {{OMG} Unified Modeling Language ({OMG UML}), {S}uperstructure, {V}2.2}, YEAR = {2009}, MONTH = {February}, TYPE = {Current formally adopted specification}, INSTITUTION = {Object Management Group}, URL = {http://www.omg.org/spec/UML/2.2/Superstructure/PDF}, } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% DATA SET REFERENCES %% @MISC{ fish-catch-data:2006, AUTHOR = "Juha Puranen", TITLE = "Fish Catch Data Set", JOURNAL = "Journal of Statistical Education", YEAR = "2006", HOWPUBLISHED = "http://www.amstat.org/publications/jse/datasets/fishcatch.txt", } @MISC{ UCI-KDD-1999, AUTHOR = {S. Hettich and S. D. Bay}, TITLE = {The UCI KDD Archive}, JOURNAL = {}, YEAR = {1999}, PUBLISHER = {University of California, Department of Information and Computer Science}, ADDRESS = {Irvine, CA}, HOWPUBLISHED = {http://kdd.ics.uci.edu}, URL = {http://kdd.ics.uci.edu}, } @misc{ UCI:2007, author = "A. Asuncion and D.J. Newman", year = "2007", title = "{UCI} Machine Learning Repository", url = "http://www.ics.uci.edu/$\sim$mlearn/{MLR}epository.html", institution = "University of California, Irvine, School of Information and Computer Sciences" } rrcov/vignettes/PcaModel.pdf0000644000176200001440000003022512763517421015606 0ustar liggesusers%PDF-1.4 %Çì¢ 5 0 obj <> stream xœ½YKsÛ6¾óWðV§‡–xì±™NzHgœÄ·¤†f,¥¢èP²“þûb‘qjÒ‘Ç^í‚Ü» øS^ü"ò>ü·é²__—ùÝ!9|†»L9]äÊÙ"—Âø_ÆùÐf~&‹Õš-bÔ{ás†oÍ_¿HFYÐùAoX+Â[ÃKé9ï÷¼>ü§éòßo<:— —ß|ȰÈuis+e~ÓeW×MýìæcöÇMöj6r„)m2#T‘w™©*–wÞ7Qø¯) ï ×þã°é?¿»z÷,ÿ-ì·· ¾Ì®î‡íþ85ýäu»þTuxèºzø—µoèL†íí¶Ÿèêã°ýâõ s6"¦F¤I%Ïåõs6…¾i÷Çv€9´Í±&sÞõõívw˜¢½j·wíþ±Þ=´‡ø ̼é‡ö0›çÐ0‰¤©˜GaÆV{ ©³\øY™qÂd(%Ä’^^’–ØZ|/…<‰NYØ\™b$æó]}8l›9?¹c—ê¹Fz:3ÊëReO—<Ã$Z@Ç ,GÇÚÓx+‘S^ïù«ª ‹2Á²¤'-ÄG_PPDéqНû÷‡ãB9 à%;4e‚OV­í(¯\Â䲈å®=>ïÓõW‡·^MßÝó€ÝÖƒž-g‚f3$rSYÌ(¯Ç¬ Šß?Éþ¡k‡ %8p†ó'¤8å„€²Xè„h.X–ô&P‚´FòèKÖ °•“9ñçÃûvXàì0®@ÔW¢« î€¸.¸Â·T)ޏúžÄU•ŒËè4n†òzdBRˆêÝý¦NSÏ4ýôPï'†‘ €j1¦oXFpÉ9…°ImP}ɲ¤WiUP•qô%Œ°•E4fâÅ@ûóBI†Ê€î”JÐUd¨Õ ®¯Ç¶œ¢ˆlxS%“‘iÄx—Àî²]Bð.ѵÇMë5›z¨¿¹OèÐÕ_¶Ç9(n†“'DyÊ'q¿]‰Ê;Z–ô.ð´z|Ï%|pÎMùp=ôç±'؆ÝE> Þ:½o± ÉëBï”oeÍF$Ä lÅ J†ŒA¨.`ÀZɈ«¦Þ5ÍŸa®PL'V¨YGj£°¸päùÁ´¡ñ@½XPÇÂJl­Š ë†Ð~yˆÐ]<ï÷Ç¡ß-dÅa¡fq+A}‰m·¬ –×å¤~Q×í{åãÖ÷m$Ë×ú0†M¥q+Ê åõÀ…èè“ÝB;Óßm=Jªã,Uî4é%nûVS˶¨?ã¬+76‡ @Þû¥u=ù‚â%`õè2qjx“I`˜¦¦HOÏh0¸AËiß3ÕǾ‡^ƒ«A^Ø÷H¯Ñ¥br|œM•‘Kv©RäÚ!-ô›(¯£…?AäÚê¯)8"á¼Oi]æ;K>î’#¨ý8À+WÁ[Tð(¶l°Ož1lã߫ѣÁ¦äÑcüæ-°Ë©ëªÖ"ÈÞÑ9Ã6xò)¹ùíHÆÞz7Zð›· $>¥ðH*GGç Û„î‰b¨acŽâ7oÁÚ pÓx,–fœÑÃ6a[>Ï‘.è  §3Ë¢£ù0pô6÷CüÏßž_·™¨¸ íHäSÛ(w´í¬d‘tFñvýv|%#ílPeIŸ)%·?‰ìs”ÿ? ½v(Ž>Yþ‘@¸ÕromPN G2D£Œ™UF…á¤w#1¾÷\_%–-3GB–ªš[Nòi#ŸQÆË§ixJØÅñpv:¢ ÇÉù³S»XòáÂ-éÔ‡3ñMé§Ê¯XâÍÖv,p|´¡u%½ÍtkšêãÖDZÜþÌ…[“É‘üeßÔûc?´ 75„ݱSu‚Ž¿¶¸ìø«L<þNáĆjŽYŽ‘Õ%,_\ÑÓúæ”V¸X§5l8±´Ÿ3l^5¬DÄÕ‘ÌK\'küǬûùŠnÖÀÎÒî\hŒñ©ðì‚O³´û†|ty ¼J8zXߨ ê*2\Ž70ö‚«RçVƃÂã³°dg*Lˆ†ÿ¸˜õWó î{' &W½D¤àP"+8G9MÍŸ]âqTsA{Y%-ÊÃx\0ªŽÄ‘ÆÅßG_eÿ†&¯gendstream endobj 6 0 obj 1621 endobj 4 0 obj <> /Contents 5 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 4 0 R ] /Count 1 >> endobj 1 0 obj <> endobj 7 0 obj <>endobj 14 0 obj <> endobj 15 0 obj <> endobj 8 0 obj <> endobj 10 0 obj <> endobj 12 0 obj <> endobj 9 0 obj <> endobj 16 0 obj <>stream xœSkPWÞÙ®QH£‚BnµVQÄAûò]D[Šˆ5$XÙdCvDy+>¸DʳÁ”·ƒø‚ú¢Z!õØi­S«µ:ã£vœÎØ2ÓΜeÖÎt#­Ø¿ýwïùî9ßù¾s®‚ðò  …ß* £eç¯æX}l:Ëd[iwt8M!N÷=±0Ò>bTÑŽß&ˆAÞööÄÞ^ÍÓÉ¿ÂW|:Q|8i´–]Ñ¡èUü1'1>9xÞ¼pÎl³0™ [¼x1J·¡AóL† ½)rh–3i“Šh ™420,ÂcãRÖÅD¡9Q1‰(Š6Ñ-‹â¬r‡:ÍèhO#gAìèé8“žÎć¢U<Ò"ÞLëdeˆÎÓÑf7‚Ì´ÅÈð¼|F 2,Z“@ë‘À!Ƥc­z7½7p&™-œŒeD.Çñ¯³0fÉŒqkF{2µ‚›—gdqù¥žÓYÝj^`‚–1ñH ó7O:ô ofµ6™W.e¶0Ï[°òŒ)cŒ=Yè ­EÏÒüóºnWÆô¡—TkÍfÖö<—{þê?#ð4kaŒéV%hå´hä2Z'håìÿc“ú³#bœŽ‹ãã«6 "ˆ8"ŒØ@,"‰$b5NŒ—׃ð"xâ†b¾ÂåÁz\ðïyÕktùˆýxÁ0x)nÃLOñ1ü¢Þ×Zñ ®Á'·õ²]ô‰4ÇZ<¯ÊJŽŽ‹ÔJãpNiÚx8óXº+÷&5~zë$PRÉFl5'b*ÖtäzýåÖ/4—·»p7n+ªÏ©Î·Uè)þ¥»3á ›2L<«~‡}·,5šß¦$ŸûËa*OÞ ê:ü;~@Á¤woIAVÉK=Ø“±± ‰×jØ„46YfÔŸ¹ª[>ÖøŒ,ÀNØ ¾À¯Bü‚=áÔ«!–¼ƒ/µö_¸xô>¾/}é]éµk1% ’Ò‚¿ŒJ˜KÞÕê³À)!”8–µÉT¬ÏÏÑð™Ìö$Lå*†i0AàÕñ®è¡®l’-«¥¯tI~ËÖæÐ[‚¶Ð\‘Ý‘ìèoow´¶QªŸ{zÛ†¾’ƒÛ{ÌY‡u ë1õl Û‰ Õ½¯„eäYÜRv0¿¡°zÎÃ\kËÍ6±E)²}ð@pŠ>Q ÃlOq¡Ø®^NvÁ,¥„HVš¥\Cæ†*¯“‘Òý={ p¡ÿ†^öûîÖ}ÕAΧ{w”c!¿¦q¿½®Ò¡¹ }ÊÉÑ]ÊG0×S<1^» FI7¶-INþû§d·ŸkSZ4ßÁOnhé3ïÝy{mØæ¿ôRò£›×‚ò£”/ ÷¼¼–+`f$̘¢º.¶:Ôù޲zÜ(Te¯‚þ©ª'•Möƺ|ÈvT8˜Õ¾±.KaxI<'M¦` épu9¯aêËæBcN5·D“[ŒqxÉúÒ©©; ¬5‰Þƒc1ÝDâÛrŽ”œÂ—ð¹–+”jxO>Þµ3—ØËöS0Ÿ”&‚Qm[œš…©T‹£»ïx÷×µšó՟WUTVø×Ú÷UÔU½ô«à-§B,“l1ªG„È:WsÒ)Ë7ØBeuáîeYsïõ¨$Kâf ê”.éŒzàÈæÕ’ÏJ‰x')óÌ·àûx<Ðø-âq',w¦¶ ³^eƒ·7Aü ®ôp endstream endobj 11 0 obj <> endobj 17 0 obj <>stream xœUV TSW}Ï÷žÊ§’>‘±&PAäãˆòQùȧù ~Ÿ@Õú« këÈ”¡– "µBµ¨£¨ êX,2 &  –™Új缬ÖÌ N[g­¬•û^rï9gï³÷¹4e2¢išYž•Ÿn\9 Óiá½ Â QVé?ÖˆgPŠãÏÌ©™šT½7Ya g¦@‚x¿C‰hzyL‚_FfAVjrJŽÜ>:rµÃ¼yŽ¿¿qY¼x±|sÁ¯¿Èý“²S“UòÙd‘—”ž‘©LRå„¥*7çfË£âUÙr…<2)97=>ëÿ^Re§(P%„f$úe&m ÏJÎN‰ ÌI ÊÝš—¶==>_¹Y¾ÄÞ¢æSqÔJÊŸr¢Â©ÊŽŠ VP‘” EQ«¨`ʲ§¢©Êr b¨÷©Õ”‚ZC…R¾T,FùQ45šHM¢fX(JJ%Q5ÔOôl:¾6Ánž ‘‹(OtÁd©I½É q„øªøßŒ5sœébÍX?v û{—䲸º‰ìÄØ‰ë&æOl˜ø êÍ…¤Ñ³jú‘NËõJÞiL)Äj°1a•Fÿ®š¦ •<žepÄÅ® ªÒ¯©(?ñyìÔ›O3P ‘=)jËî>ŸøXk%ù¦›(9c¨€&VÒóï¶î'M )þV³C!m³½c•¾ë¥’o†Y’FNŸàØG׉„4xɼ¶ûÌöºäfE/âðLgl‚}±÷S9ØÀ”‡½ðn©l³sѦxÄ9¯ê…wÀªµÿY÷Å;¥2sý¤Ö¨éÞaáè°HH™ ñˆ 0¬WbžÅ)c8]o!Æü˜rX &¼I aZ†DpRhàñWìý‡mÀæ<} Ë Øýž'+ñ៷ùà©Ø"ÂÛÙ)²$`y³_'3Ò/Ìí5]3×µ"aÛW3)-Q§H%ï¹b{â€!LÃÌï®Ö¶_’­xÀâB!žzÓOÁfžnÎaÁÌï<~FŠÙ’£F5ôH?W@¼ Üû±;r@^éÑ+ƒý’mž„°i£]—[Äw™/¬@?þp¢¹y̾Ø=©;TÊ•¡©Þ$ö,gà V 3oß(È8-«Í*Oÿs4GÇ*5ø“·l5xmÈJ2ÚŠUüÔ0£›³;ÓG€Oð_°L&yí"ÓC¹‡>,*øïÿ¶„ä?9lÉ™dÔ-âX€Å­GÃã¨ôAP'¸÷ÑB)ìâÑ£®ì8—úÄóºÉjö|Âí2¼ìÙL˜¦ÚN`* ·9+Ö%¡´¡:ãâöÓûO_çwòGGoß@œænàÂ"TT\${;ñß 'Yë —°‰7ÂO¯ ¤.XLºÇç‰ H{®ÖÜ<'Ãõ,ž­÷äGä–Øô7ÈÍîh¾';#54ià˜†~¦ƒ‘Q(à[ ˜›èÒñsg/ž¯¸Œîq0cI¶“âÖ1¥Ž¦›À1ˆaGZÖzzƬu•™Ã"ˆ|õµeÁÓJÒÕeTãN²¨·¢ù|]MÅÉOo•pƒ¬¤ñðÎý%»§G£Íik½9I× v¼°n˜2Þ“uCÐÜ'–²ñß®© "UY»`û,¬ ¸+;·±mÛ Ôþzêr—É"ÿ½›òT¹é› Ö $”ZšóE~ù¾¿¨çþÈ³ï  Ôîüªéü•òœÂâüPþiËRl…§D/u[°j¼§ÛúGd¿)óòì%â ÌùâŸoa3’ƒ¹—bîâ¦DxG)ëÏ¿µ³*%YÇÅmõÝTv"Oº«ü£òœs›uFÀ ÒAÓÚ_öo¼`{RæYø¹êj´¾r¡¾ó^ƒjÕaé¯&b”O·–xˆ¨›¨gL©%þatÚÚ½;ÔÒêÂÒ,´…{ã"ʳ–oÈy?N §Y¢BÜe ÑÐ:`Bˆ ƒ{<ìg´ .²â´áOË”Ö ®bRª÷׃i~ƒ×Wšóg®!-–^]ØVŠGÆ•›ÀÈe¯£Óûª¶ŸÌ+ÛŠ6r 7&ÚKÍõ98¤Z }Q'ìÒˆô±Ï㛋!k;ƒ§Î›­—Õ^Þ$]{]5„žrøL'=Šœ¯–¾`¶=6ÄžÈùåD®[°‹¶âpÌÀ ö_Þ—VÍßfÌ¡>§G˜ÛIjEp”ð¿ì<°à}ƒœ‰iP¶«Õ‡?9%ífwÚUüâ’÷”6Ê?aÍ!‹`ùòµeÇ€ñâ.˜K6{*µŒdP¯4Yd3À>'Öò²ŸîÖ ´N$è„Ïøb°uÐb/B­»ýb<ÍõrÔY2^û}vÓióÒsUÛ×ïG^(º"¥)óËÏ–\"—•m¬K¸8 "4„î«/74Ÿ«oGwÑÓ¨ûZü~ó4·ê´S¨{ÐÞüOàÚcK¤ok×Àµ¥Vçô\˜¤#¶#\AêôJ'ÜÉJ^&C§#S>‡A£2$qjËv-Ñ.뵒脼©’—B¥¾ÊÊ£܃ãÏß• ¬‡ÁžuoúI*Ñõ¡æÚæ.Î× VõèK_“ç“a”]]X¸æB%…R¶´è“â2Ä=oþú¾LoÆB¼‰‡Ö8$ÇÅLÃ×Sa½P)žÏ`{ƒ7– Þd C¥xü/Æ¡s‹5ÓhúƾÝÄ<~¸Qü3ƒ·ÂÄ|ƒÅrgá,ñxéÆ3…kSÁiüL[ƒ£½³˜9G9Y83àHŽ~μœ18‹Ç95Æè#‰±hLIhÇcAÝ4eÄþ¾læ÷D§ú ¼FwX]àUÌ/Uä&¦H³3÷(‹VsÌÑ¿]׸ަŒXY.‹RòvïÓvLÛ–•¾rŽ+éh©j½-ý4¦&»Ge‡k¿†@eì+ÌÊIMßüAâB’ê[n4ž)“ öÅ‘SeÜïp]‚jüáS#`–8[B¤Ø‘?\ŠC±Zü‚kXVx½x”Ûo]!2+É…ñ[ÄY£ojXIï?nÜéüölR_ï4$…ìóèëñyáqÒô¶øê@€ÖoÛ à$°oÏæV-\µŽ›Kï=ö|X‹ª‡˜“ô)ˆÁ|¾ÆR¿5™á‰2¨ca6®äuoF[è’oÏ5r¯‚zô º^Ñ0á•¶¾âmm_1B¥‰ñ‹L}¬šîy,‚Ý$Òl¥À!» ìz‡üHô~ƒqÛ8ðBàŽÀ­¼‡Á†ûß6ð{,ÒáþG°º !\¸* dXq«˜alÛLDJnØ-{»a²-§J¨TC¨ZQÅôOœÜÿ‰©éà1S3Šú/1ʨé endstream endobj 13 0 obj <> endobj 18 0 obj <>stream xœUkTSW¾ÈM䥣øÊ½ " ¢.U[A" X@t4$7!6/“ðˆu\€õyñ…(¬B "¾@‘¨ (‚ZYÕÊ£«V;êXÛkí –Q÷ÍìšsƒÕúw~ܵÎ9{Ÿ½¿ýíïìKnI’^‘R?9ʤW Û©üh’ãÆuçÉù•Ó.K,®xäÃ˽ ÎÛóö8:fPÿP'ãÇ?Ìß2e'é O’ÿNý0-dÒ¤°&³Ý¢ÓfÙ˜isæÌa2íÌk ÍZuZ#„9¬Þd6°F[8“̲Œ-‹e4:=Ë,HLZ—ËÇ&¤2±¬‘µ(õLRv¦^§bëT¬Ñʆ0“…Ñl•ɨÖÙt&£5œ‰´2JÆjfU¸&†ÍS±fÁƘY‹Agµâ5£³2Z‹ÒhcÕŒÍÄèŒ*}¶ZHÏ5&£1[LØnÀ*ÉdµYUÙÆàŒIÑŠŒ¶,¥MÈkÕa3cÒ`OµI•-TóÆfSêŒVÆÆæÙ„<™,£ÖYÍz¥çÅ¡Ì B¶UgÔ¾ÍÆXX­Ò¢Ö³VW\•·õ1¨Zi6ëí®»&—×›ü:›•ÕkÂt†Ìl+“¬Ä×3B{ß9yÛ¢ÿ¯iAø/¶U&õ3›d±ÆÚtÉ ³×æè•†L‚˜L¤‰D4‘DÄ㉥„‚˜F$)D0‘J,"f!Ä2"žH#–QD±€‰EDx„Ž8IüFÆ’•äon+ÜZÝI÷÷Ý/z„yh=8!ŠÙDõ¢›¢'Tõ½8j|yàÀ¿ë ï@¨;¬wd(ô•ß ~èWÊ—oC¦>çÉËùzò苼ø±"NÁªþ«¢âmâå¬:=SÑ»¼ÿ¯åUU×Áâ”ú I|8xC¯«!mº†#ö×ãím±ôöõ¦3]'ÖÆËÑ|ò›¼âº8*Ýœ¨’Kg'ÆHl ‚' "Oã΄‡²ðŸþw4š“ ™“Ðb¤x4fÀˆ‡wAVF£Q”=ÆdNå$Ñk®?oÝßRQK—Ÿ¨)oà®pGÍåÑ ê÷ˆu8e1Ž íüßdhN"Q R !âƒ_¢ytÉn_P¥ÅÌÿ`yO__kÏ-Úh<Äß yÇʆ Æi@ *¥²ÚWV/Ä0e!hz/êPäé4º>í†î×É5W×µI'ï#ûºY1>$#6&&£ûÉÓ–žÚש±ÁP¾†‘çpsœïó9²-×66è“oNkD$Ž˜‰†¡‰(m)šˆyŸç0·„FATaxÒ²pì"‰ý¦Ã̯Ï‹gíYÇèòÜ}y%j¡~dt@†ý "¿xÒ…F3¯và}u*±ÅÔÅI`ø/à ³oeßÒ^ µ­ O-âb¹ £.Qž¦àé ELF׳g-Ý8nÖK|ƒ_’|%äÈŠJ¹=\1×¾éÂÆÏµ½3®º°O C(Eþ“Á§·ûE äÔú5jËrNÅ}T‘{b£cËáí­’d%÷ê¿Äª]ï0•åîÍÙ¥‘ø:§pøüÀ~ä-…ý‚‚s L‰Œzð‚!höF£o_ ”âeØ—ߩϚ©Éš‹qŽÄºô€.GHëßh²A,Mº×ØxïÓý;¶”C xSÑn+Ï%+ QéÔŠtƒçàF¶à )BÏwòn²í@MïFpcg)»ö€þ`}0¯¢ðâz˜›æ_—_šÏeKÖªsiÅ¥vù†›l>޽©ÝÈó‡%0›û–»RÞPÛP{øׯõd5EW¢˜VuiÁ>îäD­ã|çIkz‘Ü×yÐÃ`f`–ÈA"üjB~AmÍ,°d¯Ó®NY·cñ™ñ34íöc^<·Áx’®´X_ÆJ €²C(ò}Œ¢±—CSP.ZãÑLXÑ{£îÞeú³I¢Q¾ðÀö^<"ÿ1ðNŽÈæÁ,î Šðnô=5«IùSMõ®}Õò^ñ_¶oÚQÀI4…ZhhÆOj0Ëwq“:…»*—¾’)§Á‡ðÃ+ÜLxc­x“M0Úa¼;ÿ~·ŒëÜpNÛÞq<Ã[4"Ñ•6Ñ¿æ>Í«7qI#’5S'|xö»-r¬ú4õå,HÀ’M÷±ÄK;Ðè#4¢1•úJ®mä¥óu··©"÷`5XA×1{C»0=0 …Bèé?ùÝp_†î‹¥<„âG< ApD˜ŒØí>åzò^üŸ®g³ZhýçÃùz\ÌCqüŸ•±‰†Ú¯äð—é-F^7bAüÍù£ òx üêœg1=š6žRúü|Cáæ¢]rä!>¶­n»ƒ“üpúô´óú’ø6Lä6 }Ã!¯¡` ‘ý4ÄÓ–ö׋\l;c¯Éæ9ƒQ»nÿ>ïŽaЉ0Ö¯¬Yª>ù”;&61¸Í¿Œ‚PÐK_¡FSÅ—«>ëæ$íGíZ{áÇ6Ñy§ÈO.ðgìi)\(·ªŒ­6×|Ôœ×Âup—ŽœoåL» Ê>–@…æA¡Z½ÒXÝpæã‹RyKI}ñÞåûFúþ×çÍï hDc8ó¾ÒºŽ?ü:oœnèh>n^#Gý®“wöüPñóø/›aMVÊ×µ¦ÇCV:u §ÊY•"é¿;˜¯¾pW1%!—ħ–5[„á&ë…ÁðÞ7Ù7µiM[Ü©8n!—aÑ¥J T žè‚¬û|ÌÄôEôÊ®¾^×€³Uñõ˜çȨ¢ÀÓ¼À³ÄÛö{ûÄÿ3ñÀR endstream endobj 19 0 obj <>stream UnknownApplication Untitled endstream endobj 2 0 obj <>endobj xref 0 20 0000000000 65535 f 0000001937 00000 n 0000011765 00000 n 0000001878 00000 n 0000001726 00000 n 0000000015 00000 n 0000001706 00000 n 0000002002 00000 n 0000002125 00000 n 0000003097 00000 n 0000002380 00000 n 0000004895 00000 n 0000002783 00000 n 0000007890 00000 n 0000002043 00000 n 0000002073 00000 n 0000003333 00000 n 0000005203 00000 n 0000008152 00000 n 0000010404 00000 n trailer << /Size 20 /Root 1 0 R /Info 2 0 R /ID [<826AC04CA3F96390DE3A0845DCD8C470><826AC04CA3F96390DE3A0845DCD8C470>] >> startxref 11883 %%EOF rrcov/vignettes/Structure.pdf0000644000176200001440000001141612763517421016123 0ustar liggesusers%PDF-1.4 %Çì¢ 5 0 obj <> stream xœRËNÃ0¼ïWì8€×Nûâ†Ú&7Ä¡ m%DTšðø}ÖŽ‹êؽDŽâdv²3ïÅ-¡p+ìmw« ÷ºÕïÁ+-H”F`¿…Ý À_ðŸâê)KªC™{Ý­°µ>4¬d 6;Å A#±éàª?l¾‡¯ÍzØ^7ïðØÀ2vT2½´,J'C´iåhÌFæsð »Òê“ßÏv½X¤V½s¥"¯9¸Òü ’äÔmŸa—´á6fÌ·o?©_/E%Žó…^ÜoðõÊ o@•g±Ë.< ¾}x^`èÊM‰NdèB%ÖðÙñyª!Mùß)fHk/TxS®gœ|3ÕÜDŸMu»;_m“ÐspyáYÆÇæÅŽ"/É¡:eædY¤UpC¥’QÌâ3"Q¥ä6g£ø|Ÿ¦âŤN‡1_˜&X~P”;g)'É(áªHŠ*÷¦ÒÊþŸ£ oendstream endobj 6 0 obj 365 endobj 4 0 obj <> /Contents 5 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 4 0 R ] /Count 1 >> endobj 1 0 obj <> endobj 7 0 obj <>endobj 10 0 obj <> endobj 11 0 obj <> endobj 8 0 obj <> endobj 9 0 obj <> endobj 12 0 obj <>stream xœSPTU~o—}» bè<5•Ý‹%""Úd¥–“(»DH˜f¹ì¾]^í¾·³ï-²fŽ(šzÑ D˜ Ÿ™?‚Y1ù¡–âd?Ä&£2›j&£Œr˜ô<æâLw×Jû·?Þ̽÷œó}ç;ç{,g`X–‘¾ eŸ;z¥OdõI=ň‰4T4ä7¥0KšúGêÖD'qbÜÁIÜ¥ÑC†dý§Qú¥{n£ì`5ö=ö·ôâ¥%Ó¦OÏ\$ÂAÑ[¦¢æÎ‹JÃèïÊÑ+¡4z(|rÀ/Hj*¤– È#ú´¨ ðÙ¼ü\”ž›_ŒrI:}¨0Tê]h‰è$E˜†O榖؉ã:a`̲aqúM2ßVMLüW]ŽÔ´û‚Ç—_ì¾Øg‹É²kìÈ€÷!è׎…Œ!?É®âÈ1½ÊD²nù!C¯æ('‘4Xñð3ijg)ï†(ï =Âtk;½·q­òl±× æô…ú¼]6o÷­Oâ\¼R , óŸŸpÜ?m…Ãa_yáúõŽÞ‹¶è€nÂä~u“Õ÷B9_]_Ç5øô¦®õG¼³{K53“Ä‘<’ýK*Ì€‘½7šmÄÊ­]í.Ç.üRÓšÃëµ-ïlë¶ìèçw]i;únÃ-k5¹aÍå;=–¤¡™tƒUtƒ2$³}ToÕ åÐÀC~øÒ!mÎe’i#_F5s:Gs‘ùr¤lA¶§ìQÚç½XÓ'€MÒFŸ4nLä<?¡ÒÛÍc ¯=zåͺí[÷Xa²ySõü*^Œ‹œþ…–1³n˜c.0ÀŸ``;hÁ²¨vè~pö’)T`ÊÃbôîöí)·í©hÚxr-±Â 'šÉˆOsÁüEçÁsíÖÅQÕtd[5ÇB¾1‘tްÃ6¯Û¢gxz8r÷rˆâ@ŠQßÛÄ÷U½‰Yà” >$i$íñ§HòF+Läj>Ü÷V/¶œ>ö†7¾¼n“­¢cdž¢Êñ(\² gàU Âþ@óK'*:ð9üÁÎn,ï¬lxÙ™™~~žkUÎsÒþöcokgë­»"5oìh¬½7&4®Òo¶Æöüíñž!?O>0·>s"õ7?£à‘/B—¼'mžSy­yø ¼2([ Þ ¤‹ïí´O¶ÂîÈyîÂà@Ìãê>=¢Á|må> u$ìJL„Ժđ ólÉ @ endstream endobj 13 0 obj <>stream UnknownApplication Untitled endstream endobj 2 0 obj <>endobj xref 0 14 0000000000 65535 f 0000000679 00000 n 0000004327 00000 n 0000000620 00000 n 0000000469 00000 n 0000000015 00000 n 0000000450 00000 n 0000000744 00000 n 0000000845 00000 n 0000001135 00000 n 0000000785 00000 n 0000000815 00000 n 0000001376 00000 n 0000002966 00000 n trailer << /Size 14 /Root 1 0 R /Info 2 0 R /ID [] >> startxref 4445 %%EOF rrcov/vignettes/DAModel.pdf0000644000176200001440000003005212763517421015365 0ustar liggesusers%PDF-1.4 %Çì¢ 5 0 obj <> stream xœµY»v7íùÛÅN±Áû‘2>9i\D¶Šnв”CŠ6EÛñßç€Á.–«Ø$å£Bf€Çô±½ìý”ß«íâ—7¾{ÿ¸ýìß/”Õ¶w2Áõº“ÁÇ^u*ÓÇn¿^ÜþÌVk RὋQ©Âzß}Y¤/uoþ8:<.Äû¶Ò6]ýžÑ½¡Ü–ïl2ÿ]~­¶Ýo×Ð tw¸îúv‘õ’Öšn•ºÇ5×ÛÅ‹×7Ë—×ÿ,~¿^\Í(-Jô2NtÕFzж c¤é¯7ÿ›Âay$²®—¾ÓJö^&ñïv_Þ½x÷²ûµû¼»¿!Qe쥪»~½xña³;ŒÉ?áħív¹ÿZvßæi Ú‡ýúæ~Å'þÌ«L›5€6ÊÂ%ÅÒY=ñµðôªY_ª¿ÏCvχýýnOÚ­W‡Ý~ªþj÷éáð8¡âjýpXÓ‰íò°¿ÿ7mí>7ëÍÍít½Ú=<š{þÂêfyXö·ûåvM;ï÷°w»,É`(>£4!XK K0®Õ¢ÓQ'C|üò'GÈÆ ²a!·ÓÃ%´oœn¥ný¶Ô±lì­íŒ•½6É# EJRË$­³R¶j«z Œ(鉡¬ÏÆÖRH×4ÕTÀcÔÄh ÷×ÇñTü˜½# W±¯÷¦×B–\$¬Q®7¤IözYoæ8”³iíbŠ¥¡tN0]•èR^qGb˜”IÉÎ Z8(Äô,Ç /µ”@|+»=l3J‚Ä „Ln1Û#nçÌžî ’>XžˆÚ™¼®<2öQ‚ãÄþf÷÷§ÇÃLzÏš)ò7K B²¿YtiUL6ÒÁ9°”õ¦ª`u5Œ‚“\k„e8ž×ççFƒä¾—5Ü®w» yu·Ü#-­÷UÕ¢¡Ð(èÅú¹5äÚ9v²£Ž¼Lp—": ℟¢Læ0p8&®žðHaF•<*/a§\ð ‰JEÓÛ¹Ð[ÍÕüþa¶ž-•àÏkH8ÑÐ)“‚F{!a¯¼<ß]êjd©Þ4•äÓ Êò •lRìg‘ƒJ´!ÓK7x›—ÅÁMÔŽ `Sвƒ”1$ìi¤N‚¯)EŸt€²ŒRȃÚÛºÊ%p3¢çâpè:¥½NÍ‘V¨zX“'IbÄHÍÇqP¾Á-“Cp™8©¨ IÐךZ(Ž|—>X)A!Q˜š ^m–÷«™²ZuKÉ0Fl1E)Æ€µ®ÏÆ,Úª^£¹‡¶z*#ãöXè*k®Ù– v6–m½åÕ0Uí–Dm¥pc äœz$!½ ¥B€Þ$#AºiCÆLÚÓ@û©œÇãǤ­ªI«Ú(› j2ù´S£­’Lhà9&¯7sÊú´†÷ej³Œè›J7èÎdíÔ.ºbÔ©iCå|^ÐÂØ÷r#ŽêfOÙ9ÔÙ³Ø(Sêq]ƒáõù̓CÂñ˜=©œÇað}¿jƒ®É³½›„?(=åEô«†ß«&®- FµùçÉ)Ëø=’iN5¯‘—:C¦[lj\&çË:J•ê_’¢}p©bÊ<ß»€¾3ðú|çF8ÀSfíýTÎã<ö}o.,ªˆ6½('k7ÎuÁÐ`¨°R¡-¡^Ö›Ñ0EL¥£œè›J·TGr5¿ô ªæ^Ð(J=¾I!u,(s>©šÏ©Bo¨ïQ¦bÆÉ?¯ç8\4t™vÔd%IÈv8Átnä’²—]1RV[-ÄŽegU*9*¤aMJ—1Èü8 M q\=¼Æé)‚2C·-Cj¶JÔ2Å8Jùåðå¯MžŒô"Ô ÇíËS¯MUŘºWeBŠ©2ÒH” yÙñ•JC8_à¦öAOèããy}vÌÃ÷Tx$5ß|pb%=5«Å^Ç<±ŽÆlòÏ6ÿ=7ý `ó€^7ï”vÔtà.‡PJ‡Š\A&C8†æÙ p \ö”¿ ì.´ÔOñh;ôü kò[X¾àÄ–y®Vxr , r¯vŸgð–@ªvôN^?°ˆ°A“lÈçC†fB^ïF"–Ü?‘·¡Ò;b#6ïÞ7²ó–72ÊZìŒ)„±ôØY!oõÐÃÁçÔ3„ €1ŽþÈÑ¢£‘z„ Â!­µiöO -€&,QØáí€iüœ’Ž?|†C²³¦ vÎSïO¬%,Ÿ$³c U1ËÃ!,ÃøMò,íÓ”¤âÒŠ9ÂÑDîê”RE²A,E!R È&ßòz.µ$buqü„è^¶ÉD§!$]-þ‹Šª™endstream endobj 6 0 obj 2025 endobj 4 0 obj <> /Contents 5 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 4 0 R ] /Count 1 >> endobj 1 0 obj <> endobj 7 0 obj <>endobj 14 0 obj <> endobj 15 0 obj <> endobj 8 0 obj <> endobj 10 0 obj <> endobj 12 0 obj <> endobj 9 0 obj <> endobj 16 0 obj <>stream xœS}PeÞå¸m3D¹óÔ£¸{ËHðÍ ò#A¼LDQ»=XÙ»=v÷„+>„À¯—•ðDÑKtüÅüm€25-LËšaš©(ù-³5Ó:™ÿößîû¼¿çù=ïï÷DhA’¤n–ÀZ¹‰I¦ÿúx©`õ@žl8™Z˜FÆ-µ»Êš*>À¥˜¯ä¼%Å.®r1¦Ãážçõ‘ý0V#O–Û Ó©ýÜN‰ÖΡJâ´W©åîºòõå¸Â¸ð÷ÍÁ=öš¿–¯ÿhÃjl”Ê·oòùë›ÍáŒö»'K,'È0N# ÏÉG‚„åÚ‰99ïaãââ¶³MjI‹ùkø>½ýWØÚÒõ^ì5¾}>çÁ·]í—ºLeí†{NÍà “¯ŒÒ_•÷4Êšk·áíêmñ5ôBçh}_ýNßv$Þç=,í*j[âOÁJ€éÜ ´C úÐ6……Ä?8ºT endstream endobj 11 0 obj <> endobj 17 0 obj <>stream xœUU TGíf˜îŽAP&#²Ę̀ è(à "¨|ä“á/(("*?aä'1~htŰˆ   ’DQƒºŠ ¢FYˆJ˜( ƒšÑ#Y̾æÔ¸»5lNN÷9ýêuU½÷î»u‹¦Œ(š¦™å™)ñiË‘·¢ùiF¼µaÕèÑ|¡5¥(9™‰qõ´÷úÌ¡r2Ä™Ç$J@ÓË£6z§gäg¦$%gËì#ÃW9Ì™ãø‡g›››lCþïd> Y)I*ÙLbä&¤¥g(TÙÁ)Ê 9Y²ˆxU–L! OHÊI‹Ïü““¢(™"_µquú&ÄÐ̤°¬ä씈œÜ­iñyJÙ¼Åö5—Š¡B(Ê ¥|);*ŒZAùQ ¨ÊŸr¢VRT$H¹PQÔ*j5DyQÑT0ESf”õ5šN  Œ) •@ÕP¿Ðsè ºÕÈÁh¯‘V0M/¨2žmü7ãÿ=…[…eŒ5Ã0 Ìv5{€ý™æhΚ[É!¨7å›Qß(«¦ë°|T)ž÷NÉG÷a=cʆU}£¨i~*_)Æ3ôŽø/¼£Ð‰_}uªëŽÄ¼‚ddù1*(Î?È-cËw—ï«Bµ¨îHÕ±šŠ²ªcP0j:Õ@͇?LV›w÷zÀ~ Ñ7ÝdCÑWúÊhdEÿÝÚý¬£q£B‚ÿÛÏËXm`ëLh¥W¬DôÍ KÒÈîå{éz­€O…añ¾ë;¿ÚZ—Ô¤¨óBž.ÇÆØ {¼ Lþ¡>(‘.b ­÷Aœ|eL‹ÍËîK¼J¤¦£r¤õ%YñÄP ćâó8Î ±½ðQý!{-Ü‚5ø–XFóxgµÐ¬ÀIþ¬Ïr²Á>ØgÐ`Ö‹·° \Fði‘§øU«'ž‚ÍÂ<äóÂ{Aæ·4:©a ?[žjºF 7úü‚¸+>Á$7Gœò%åLsÂ4vǾZLÃô×jÛ/KW^üâ–;žŒ'†¹;˃Ÿ€)˜Þ}ò’T”˜ÝÇõÑWu‚ÑÙ<«ÀE®Á.È-I‹ ðN²ExÂ& v]>­a2^#XÞüT‘ÜfOô®”í*eHPЉ=CBÈ °0ýÎÍüôÓÒÚ̲´£‘I«ÔàmHÞ¼ÅÐÅëZ ÑP V‰ †¹Ù”Õ‰8°z4¸ƒÏB0ÂR©è­ OÝÄýàÉÂ6…øÇo“üß^<_*r{ f`vûñà*½àß .½4_;Äèñ§W·ŸOyæ~Ãd5s.ið2¼ìåt˜&ýÀT’g¯X›ä¢Ðºé—¶žþätá ®¸S|xèNÛâúÚüîGû ÷KM¡žìmõìÀQÂ;—>æŒúø¹ÃPa…¤‹Í;¸³hâ$ÜC>s ].?æÒ…Š+è>Ö‹{±·¼SêÞÊŽ@û¼y»{Ô'þ Ÿ§Þ«6ï"¨Yˆºº Ä¿k þIõT4]¨«©8yèv÷”5|R´Ó*mH]ãÁ‰º^³c¸wÃä1æÕi¡©WÀÏ';,eãï­®ó'èX.Àö\Xí{1Zz>®uËMÔþqêJ—Á"ŸÝësU9iëóW£”R’}<¯lÏß÷ÖseŽØ÷†‚Ò û'¿n¼pµ¬Ç²8/Hü¢y)¶À“#—:Ï_9ÆÜVÍsB³ŠqšÓñe„i[ Ås{»¾ÿúÖr± ÌÉä±ÁópÎò…Äß;sGòÖEˆã¡\ñ(hýÖÍ{â%–Û øƒÿùÈA>‚M°ßÜL¯È`éÿOû-ì&>7þËï6žHŠ5]¢˜íÖ¸ &)¥š¼ÛÕ¹(Á2&f³×º„Òª\ÉŽ²OËö6pÎÌA<±3 ¬ !§´kâ.Úž”ºWøSU¡Ë«ë;ïŸU­,–ü.L†ÓØÝOtIÐMã;e?Ñ$ƒ"ÕÖîÞ®–œØV’‰¹qeTÜœ±|]ö‡18Íne?ägwÒO ±“®,;Wlçã÷^ÆDU¶«ÕÅŸŸ’t³;?ÛQøâ’v•4H?# 3Iàá·æ®D »`6Y쪯ìgDOG•Æ‹lÂ>‚÷°†îÖñ´NÀëø/Ä…`ëЗ\ìÝðT§+?eJ!`ÍY‰(ÜmÊݘ–£Ú»3-A‘É_~|¦è2¤È¿4®nã5¿$ -úN}ålÓùúvÔ†^DtØ×⛦:ŸH=…Z¹GíM?×åXd€‡”£6oýËz,D:>wŠh˜¯tÅ×XY„¯K@ü…6 ϺêíY—öˆ_$"]/jªmêâ¼ ¢=F|ÎMX¾R8—Áöz,ã=ˆ }¥(×øþú˜76ÅVïhG.˜Ì,½£ŒrÉÌWÌ0/ÿU/ŽgïÎ8’f-z§`ÆßK7j¡”Hê—MâÝû÷¡½ˆS}TV#…»¬Îï/UälJ–deìRî_Å 0‡ÿy®Nƒ¸žÆôhi‹’s·ìÁ¶çïKÝœ™¶ùqŽ!¿v4W·Ü‘ŠªÉjA娴¸ö0$ð£ô=Û2³SÒ6|ƒ¸À„úæ› §ž—J¿8~ðT)÷Gõ—á„|à¡~sŽÍ!\èÈ€7.ÁAX-|Í€%Ăޑž?úÓE™ax-DÇîÊ3ÉècE=ßß¼ÛyïL‚¿¿38 ûg7†¼5û*ò†ƒo|nhŒ$­5þ„òE±[Ö)8ÑÅGºÔp„ÖŽ bDlk;ÂŒ9 k„#âÜ<îä+Çÿ=VÓŸ`'z¶Pà@„ ìÔ†ß` î&ã ¶1° ç&ðî·eàýD ÃÉâ7`Ñ pR@à,°àV2ƒØ¶‰™ÜRØ9{8c²,»š¯TCZQÍh&<}_ó¹‰ÉÓ#&)ê ãó endstream endobj 13 0 obj <> endobj 18 0 obj <>stream xœTmTמa?ÃWD ;WTD¨ÕXÁZa· ,ÆÆuw€ÑÝíI-¨1êõ+ˆââ"âX\‹+J j8ш˜ÓD5§6çXMj4T}g{‰§w!Qó·?æœ{ï{çyž÷}Ÿû²Œ:ˆaY6$Õ%šm‰i’ÍØNTF²ÊKAJ´ Éÿ©ß£‰f²êî„)†P‡ªp¨zÿKú®Áþ!Êw/*Ÿ@ÙÄzÙÃì¿ãò_+ÿòË ³%§Ç%—ÈhRrr2ZâA?EPºà‹(–.Ê›ä´ 9 å ’KT$Ú4;'÷÷s²M(ΔL‚Cp™m(·t‰M´ ,Ñ"8ÜÂxT$¹m`ƒ,’Ã*Ê¢äp'¡T72#·S°ÐœPnœ@r .»èvÓ5ݨØevÈ‚É[©5@OÏ‹$‡Œœ.‰Æí4B¡r%·ì¶¸D§Œ(cnºq@£\b–¼n‘†‘TDoZ%Ki ›§1Ù,:ÜHÊåÏYE·ÓföP^ åt‰ýJÝ¢£ø{r Åf—Õ&¸ûqUy–z.k³Óióôÿ+õßzÊ/ÊnÁV””-Ú—”ºQž™þ–…íýÅɳýMcfH–Ça‘¬³…\×<·,æ•–ÙÌv†Id ™&Ée2˜1Œ‘™Ää1¿bæ3ùÌ«Ìæu¦€™Ë¤1Ù Gè™Fd3OX[Ï> ²íúFU¨º®ªNQQßÕ„kÆiŽj£ )\ Ê /{âU°ÂoçHüvå]ˆ ?hÕ"õúyYÅ ø8¢î‹&!J´†$iaQßÇš ºuº‚µ°bõÆ­CŒ®~]͆:Ü‚WíÝþ×Úº††‹àòGx•$qx_oyòEìóÑí5]䵋'_î:´4Ó@nÑ“':™s™èÒ 9Cä´/uT‰ ø4ì_©”Ýp›«„á“¿"#±ž¼’8ŠdãÑ0†Ý¾ÜNžŒÐz2$g>Ö§/¾ø°}{[]3_{¨©¶ŸÃûµéz*êgÄJYEQ¡SùG’c K2ˆña ¦õ ©÷˜Ìà7 wíŒqTlAƬ™ ®ôö¶_¹Ê÷½·é7ÅˤX…ã‡òÛ "5Ú’Î7GerãÉ òë´=©G x_Á%ñîÆ§[:ô$X ã>;e3~¡)#caÏ÷÷Û®\áÃýE2 Vª`ûmŽÿ·J·öÂÊVÛ±¼Ï'#,E\B†q¤‚¬„H2ŽÖu„=„éÕ<‰Õ®JÊ}=‰^Ñ›îÂdxå³ï øÃž’|íòmåÕV} ¢!æ¼ø˜UꡌÛXƒ·â*ܹúÌÊ£Å÷¦|ÜO0!¨É’zw$BؽžGM<1hW,¶º` ^V·üÐJïÚ½ëÛõ›îpÕ7[Ž}B»ß¼Â+í\þ^Ùæ"}¸öˆ "Ø«Û6+ƒähaÄ­o!b§]' <ùâG;ÄkNMï"Ýu_ɬԢ’é´¼QÔ<#€0ϰHßSã´ê"so;vs×ö ëv F·zãZü.ÎÄyf{š>râ#]¸· C”­´„' ^‰ ”1±—;ÝÕtßÃ…ÞÌž¬ËɇGãÑ8yi–)Ó(ŒÁ4oÂsÑxÁôõÒ^ü>»ë|‹þVÊÕò>láf¦\K“ÿ¼tÍ2EB§? uI¼þ ü«qdBNE~é›|¿[ƒà!±mTçü€6)AÜzÐNî!ci]£§‰ªx‡mw¿»¼nÕ‡+`zÁð–Šš \ª_j]þj±£ªÆcx{Ç;;Þ9Hok·àÎ…iT͹ÚÖæÖæ½gp¾Rr2½žd´·ÖTnÃ{ô‡š½§»» 7Âá–üÝa¿°õ>nŒ¥^kLê!ÿÐN=iþWSãæm†{º?­_½¡ë‹Víhãá}iÐDë}ƒ¶«;ð¯%ðîQ ÜZ¿]M!"芶U†PêšPö$Œ†N£Rþ£láp÷Û·v¦Œ¡9ÎŽM&1Dsn>ÄIüËï—û$œ•W4qìk'¾\k &­&O…l¬‡\P}C½ ›×EFîã‰vª·Õ㎨N·\û¶Ã’ºÕÐÿÎB”ßxÙó3D¥ªø¨¤ÛºÌ?˜M9öæO pŸŠ Õ‘K&Ðýýôþ®VCf`xДÖyYè ÙŠOCâ´„íãÉ Xü>Ÿ¦?o†÷§´ƒQG"ís£ç%Îh•R_ǹÖìÂôСƒ YgI,‰9—D¬2ÀHmÕÙ†÷{°¾s¿§Ø³ê­·Wóå•+ò*‡#OÁ|íMËN•·á.üѾÓíXÚ\¹ó-=$hÉ °s)–Eéo8[ïñž¯1´UûªÞÛT»-*ü¿aOçhð„§rf |Ã"[ºž›§Ý—Ž´v:è\l }ý'¿Ø+ƒu3?!Œi¡;Ïløc{þA:"'ÎÅ–²Eóõݺp¹Añya†waƒ‚ƒaTW‡†Â¨í¡a ó?ÐÚ endstream endobj 19 0 obj <>stream UnknownApplication Untitled endstream endobj 2 0 obj <>endobj xref 0 20 0000000000 65535 f 0000002341 00000 n 0000011658 00000 n 0000002282 00000 n 0000002130 00000 n 0000000015 00000 n 0000002110 00000 n 0000002406 00000 n 0000002529 00000 n 0000003495 00000 n 0000002794 00000 n 0000005340 00000 n 0000003189 00000 n 0000008024 00000 n 0000002447 00000 n 0000002477 00000 n 0000003733 00000 n 0000005643 00000 n 0000008278 00000 n 0000010297 00000 n trailer << /Size 20 /Root 1 0 R /Info 2 0 R /ID [<5F375D9D567AAD1A41382AB0E466AC53><5F375D9D567AAD1A41382AB0E466AC53>] >> startxref 11776 %%EOF rrcov/vignettes/CovControl.pdf0000644000176200001440000002140412763517421016211 0ustar liggesusers%PDF-1.4 %Çì¢ 5 0 obj <> stream xœ¥XM“Ú8½ûWè¶dëÓrŽImå’­­Ìpœ‹ ŘÃæç¯ZjK¶1‰cŠ*FêÖkõë§ö|'é%)|ðïºLÞ?gd{N(O½MdJ˜²_<Õ)¡*MIm’·?Á.X°·V;ø/qO$ÏŸ;kr°Ø%/`ãy†¿cºý¡ÿÝï;<>øg]’K‹JªÉò-ñ@)É)'Ë2Y|ª®ŸªcSW‡¿×›wËoÉ_Ëäë …;rÞ €åW™pÊq|°‰ÄNûP4a™rHjsnöeј×Ŧh òÀŸ§·º(Íë;;µPïaäiŠsÕÁÈa†Ýx.FžùÓ*§ ;^JSï×€…1²ü’,Žç¢Jä‰çô÷äç>T¯@5*žœ PÐ €ÚªP=ª@E=Ðs:CÕeu00/‹ûÆÀ÷ÇÆlMÝr ÏZ`ÞG”Ç‚»xìKCExý =tÌ®#“œ6iÞ>ç&ñÌZò“þÙþ;’ØTã–YÖCÂhSJÙ™‘œ(6™C“VÖÕêuá|1Q×ãXP £ê0Ο0 a¹ñü¸¨ôg|DâܲnešbpíALÖ´ÞV×G³ÅùzkôÜÄmƒÁR9d^F]‹Ô´>*‚x‡ä­gÌ®õ¼ÕK›|ˆzšÚc±Å8±«¹¥žß”âž\õ Š ’DSˆÆó’”1«`bº€Ý…)4ÂÌú0)§›ÌJSÚë¢Ü·MTÔ§›&ÊAwÈrÌ0¢Õ*ðþ*q¬o,œ`¶K@­…tâêÇPG–í`GPõvG7nwŒ3ë6¡}‚`½&,ƒ„Ö(¨%Ž…ë“ü•ÜGaVâÅŽOv¡E–íBAYÁ]Ö=Û8Í6KçQB“7š²ÌmÄáêp·%”}§mq‘Ϙ=6¹ÎÊ5ÅÕU¼²Êÿ2Ú xô®Çu¢Å{ ™æXLídf1ÙÆ¨?µì†U Äo<º4bu“ùX¹ô§·Úœf–ý¢4Í®ÚŒÝ HéÝKäŲáú¤ÌÂŒE2e™«Rxo°ª¯Äöí SÀ,C;½µŠÀY‡—·Oxàý>'4—CÂnF´_øËöãYšà^2?œ™z{¡OçèxB´''D D„n<"Uþ †/ð­øaè79ÍåhƺíŽáä;žŸüCÀÅ !" åá‹!=J?¹É‚–äá–}}ÿõ2 î×äД2#endstream endobj 6 0 obj 1147 endobj 4 0 obj <> /Contents 5 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 4 0 R ] /Count 1 >> endobj 1 0 obj <> endobj 7 0 obj <>endobj 12 0 obj <> endobj 13 0 obj <> endobj 8 0 obj <> endobj 10 0 obj <> endobj 9 0 obj <> endobj 14 0 obj <>stream xœTmPT×¾—ý .ø7ŠÆ½EBªQÀÚdQÀMÐ`´i]vï.×ì×ì½|¬“2¨£9˜EI Ãj4‰‚%›B Ѩ:Ú""8¥Å¶8IÓlk¢(¼wçÐNÏB«íßþ¸3çœ÷ãyŸó<粌:ŠaYvZŽ_´º–åz]öÈ6C™Ç*ÏD)óU˜xÂMá€f>SØ4£ 6¨°Aýþ3ºƒ³Âú™ÊWÓ•ÁS]°Aö û÷”Í/–¦.]š¶Öë øEg¹ŒžËÊÊBeôïÊ$ÑéAÉtQ)¸¼>·à‘ÓQ‰ ¹\@Ñ% µ-/磔üâÍ(_ð~« Y*Ê\¢ Š6Á# ©Èáõ#×ÔÙ¼»(‹^”Žr$dE’O°QNH¨¶ ¾H ù¿[”$ºF¢„œ~«GìHö"ÑcsUØ#ðôÜáõÈÈç÷Ò¸›Fh+‹W’%›_ôɈ"ZòÌS3ÊåV9‚+‰4Œ¼ši÷Ú*"lÇd«è‘,TËœ2ÙEÉç²(.måó‹“#TH¢Çù= ù§Õow ÒdßÈ­<á‡þ‹µÕçs&k½“YñEY\ŽôbÑ]V!¡+-+Dyÿçä‰DÿŸh ÃÌðØŠ¼öµÂF¿S’K*_u1ÌF&Ig,Œ‰YĘ™ ¦„YÇlb63+˜R¦)bfR³0j&Ÿù 3ÈÙ*v0*;êDÔçªMªAõ õ^u‹zX=-± à ’Ó<ÁY=€à‡€fÇuö(!n"D·Cº¸¡k¿¸qõôŽ Fò=ù§¦Ü ºÜ­¾6c\æ-]¬Ò%ƒ¾ û3@*¥îp»`Îòß“yXOž_–H ‰yd!¬€ÙwþÜ;<™« ˜¼¾ÍXŸ·ýÚ£‹GÎ7µò§[Ûñeü¾¯1OÄÁ°)È^‡%t¶%*p)½ÌžèÕÀ-pJ¯f¢–„ݤRGâ'†ÈeHCä¸i”úÏ4mtÜCt"èV>áHV2a‰‰˜ï²!sXÈ )ãd _G4ÜÐsbr©é{ßÝ20:zqàwüd£§àýVÙS´Wm„]êÓ€(0" ÚòîïŸ\G)r©dY•{<çÃR>Tz]¼Žûð¹“m]z­Äp7Ï™¥nË7™¶õýÍù>6ìa–râÙ)·ðw”Jn_OM»«£dð¹ÂÒŽe$ž,&µ¤âÈbªIÄ<‚Õõˆáî=j>rÞ[qeàÙ4¢&$çn",ƒ˜{ýc-<1jwn·û·`~µ©êtMp߉ýõF¸úá¶Ž_ã6ܺ3è}§êíÊ7T f╃”B;•(™ÒPæ†\^%­[or$a CØÐ¢^sOþðŽ‡ø!>Ós£§ïçcxƒÖñ`ýÀ†þìÖX_Gâ9˜~k1ùIÍN&³ú>jÙîC !Ús.ðSöœzlÍv]œe¸£cø§GÞx½Ù t{êöáã ¸ÄêÎÕÇeŒQcñüåÑ”ˆoB $¨”4Ú!Sg½öÊEô&â—’™d5ùö—D =5_¹ÄçêÖoýé¥òãµF’¤­³6z>tŸ-¿ºó6Ö껿8^ùLGÞ& 7p)wqê–u¹¯ôÝ{ðÉÍüäcˆ‚GÅž§€›"–9 DqûA»¼Ÿ$QÀù+ÍDå<êj®ä›«›v_Ú «Kç´Õ6Ôâ ý{Õz§çPCÀøÚѽG÷ž¢ÙÚ·HôŸŠ ÿ_nlomo=qwáòμcÄtq޽a×a|\º5øißik1¾Ç`l„½=åü÷¸5DíšdNï'ŸkWvZ¿j9ùæá“Æ{ºíßóÆ.¬wì>zž‡sô!‡Ÿ•Á@Mc`;a!tÃ"•òPy‹Ã}¯}ìlßÚ}ŠÊEÖ&g‘Dsy¤xùUßT‡¼Ø’P\âÈHzñì­}FêÑz’1¾ŠémY@õ%¤€î…«dÞ{<ÑGÇ\ÇpWÂgŸ¶ ýµË–sÐH/Œ*üz…ѧ¡X iHŠ–°> endobj 15 0 obj <>stream xœUU TW­¢»«*Š ô”ÈQ»ZpEAÀqTYÒ €¸Pº!Í"¸ÅÝÀÇuBB˜h#("1‚ÔAT–è‰Z¥Ñn5eFœyÅùx2¿a2qΩsþÿ¯êýzï¾ûî£)©EÓ4³H›ŸfÙ¹Šciqœ•8^‚°¦ÿ`žl<¥úâùd-AÖÒ²qïuÚÁ±Q°Æ|FRš^´<Á?=#O›šœ’¥tŽŽ\á2mšë–™sçÎU®Ëûý2 )35Y£œL69Iiéê$MVxªz]v¦2*^“©T)#“’³Óâµÿg¤(JÐ$„¥'úg$-Y¯MÎL‰ÌJÊÎÙ˜Ÿ«^§œ1ÏÙ…¢–PÔ j)HM¤"¨Å”;DEQÁÔ2*„ò¤¢©PÊ‹ZN­ TTåG­¢Â)Цl©±Ô{Ô0JIp ¤äŠÃÔMzK7[)­¶Zý(%‰<J÷J{e“dÁ²ïŽ™Æ¬f´¬”Ç~ξdÿÉþÆå"¹|¨²NŒ¼—¢³ëèòíƒ{ù×b)/?;PÚµ¬üÞ¿›;ž´Ö&¨ø7ƒ¨d¡Í“}V©ýbò¯M¬øqV—èÚEW%âFxÍ￾ãì¦ÊäzU¥âð7,Å~Øç™aÔƒNøS‘0›Ù6{m|âÜ–uÂH°oÔ?︼ίH°é¿tý:ºÓ$5IÄ”Ñ/‚lLýj̳8å­-Në·•aþ­Ú$  # Pm„£NŠÕ<žâáˆp€É\`ʳ7°B¼úð4¡Ð—ÿ¹Ùƶ>n3"»@vßèÍ‚å½8U¾:ú”n$âî~5?—3) Q§I&ã<0çã@#¦aÂ×*Z®‹ï³x³Ï?ûf>…GDÌ÷t 6`sûÑs’Ìú¬n±·›¾j–ôO¯/7=öB.È;-zIˆ²Âö®™ØÐñCÆ ‹Ñ«—' š›Æì^µ3u«F½$,Õ‡ü{’p KLÀ„[Myég„ mIÚ§Ñ ktào Þ®ÑRÀëF{yo#Öð=pй]ŸÙ†8ûh˜³À ‚üMŠÜ˜Æ=ðea³ŠÿéïóHüÃÃç¹ ò^ψ‡` ¶7šQé‚à6ðê¢Å"ØÎ£‡{¯n½údþ Õä餶 ñÂç` XÚ€)%µÍZ¼:9-GkÊÓ/o:³çLÁ î@´÷ÖÄuß š•ò ò <LJà9oKÌÑ¡?ÇIØÏÀ¹8È ëM*®ÝÜ­‚á|„˜Ž7(æJÁãlU8À‘,3°›XC0÷‘e†`U„Ò$ì±÷h“AŸ6{u3çtÇÎ=ˆ Ž+ÚÙÜC; 7#Î76n¡àÔ1°Ú ®6²6ð„xæêöéìÚ –öòövK'ܶtÂIu¯¿XyêøÉ#7 ¹Ç¬¼æÀ¶=…;ÆF£u?ðáäí/ØÁjtÀ¨A>V¡¾K"º“°ñß®¬ &˜9ÌÄöUxi•p!®ùÃ&ÔŠþvº®•Ë`QÀ®µ9šì´µy+QJ-Ê:–[²ûó}UÜŸ™Oœ»–‚-Ò£»'¿ª½xµ¤-'†²87ŒÖ°ÛãQÑ <Ý— ò¹YÿTø_WÖaiÌPц/ø5è&Ab°ñVM[›#Õ‚>÷æ¶²”ä³ÁoMRñ‰Åö’½%ûj8OæÑã {Æô´¼ÖÇ]r:)Ì?ôWÍ TãpõRUÛÝjͲŠßÄÒ:¢’Ò9oÕ¢娨صU§(ß\¤Eë¹!1©š&-Z“õ~Œΰ¤OêºáP7m6‹Ò^ „Ã]ö0†š„™BA(Zó—¸bµÈʘ”ò=§ò{ À:·Úû«î‹g¯#vÞíØIŸ¾U›Q)…CÍÞ@gv—m:™S¼Åq³â„Y÷Ä©môcˆ£¤&³`â<1 èû%³¼ZÝ¢Ó8|ZÑÁîøx{ÁÄ%ï,ª?!œÐ’ü^¿±kí™C´±¦ç9¥Fþ¸_-íØÃØô».¿ÖÓf‘&\6‹ŸñàäbÀÞn/ç¹xŒG]ÔK­!ü”Y»E: Äœ„´lͦØK‘7Š>žR›ñåGç ¯Ü ƒ‹ã*®õ$ƒÑ÷ººêú U-èzÕê\߯ãY¾ñ4jæî·Ôÿ¸–å®…–*ôbtv-8dXØi/7‹9£å¯ÅÒ9ø«Œ ô ‰¿xG!²sœY¯–¨_rsª¯¨oçü,>H{ΆX±T6ÁÎ>X)ú-¨JeƒŸX¤ù&o‚E-^Ëž˜¸e•‰¥:Ó©Êý°ÇÃõ‡­­b=‚¢þ=xèÀ endstream endobj 16 0 obj <>stream UnknownApplication Untitled endstream endobj 2 0 obj <>endobj xref 0 17 0000000000 65535 f 0000001463 00000 n 0000008353 00000 n 0000001404 00000 n 0000001252 00000 n 0000000015 00000 n 0000001232 00000 n 0000001528 00000 n 0000001640 00000 n 0000002321 00000 n 0000001930 00000 n 0000004331 00000 n 0000001569 00000 n 0000001599 00000 n 0000002566 00000 n 0000004632 00000 n 0000006992 00000 n trailer << /Size 17 /Root 1 0 R /Info 2 0 R /ID [] >> startxref 8471 %%EOF rrcov/vignettes/rrcov.Rnw0000644000176200001440000033555714443667016015275 0ustar liggesusers% -*- TeX -*- -*- Soft -*- \documentclass[article,shortnames,nojss]{jss} %\VignetteIndexEntry{An Object-Oriented Framework for Robust Multivariate Analysis} %\VignetteKeywords{robustness, multivariate analysis, MCD, R, statistical design patterns} %\VignettePackage{rrcov} \usepackage{amsmath} %% need for subequations \usepackage{amssymb} \usepackage{amsfonts} \usepackage[english]{babel} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% declarations for jss.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\vv}[1]{\mbox{\boldmath$#1$}} \newcommand{\xv}{\mbox{\boldmath$x$}} \newcommand{\yv}{\mbox{\boldmath$y$}} \newcommand{\zv}{\mbox{\boldmath$z$}} \newcommand{\mv}{\mbox{\boldmath$m$}} \newcommand{\tv}{\mbox{\boldmath$t$}} \newcommand{\xbarv}{\mbox{\boldmath$\bar x$}} \newcommand{\uv}{\mbox{\boldmath$u$}} \newcommand{\muv}{\mbox{\boldmath$\mu$}} \newcommand{\nuv}{\mbox{\boldmath$\nu$}} \newcommand{\deltav}{\mbox{\boldmath$\delta$}} \newcommand{\chiv}{\mbox{\boldmath$\chi$}} \newcommand{\ov}{\mbox{\boldmath$0$}} \newcommand\MCD{\mathit{MCD}} \newcommand\MVE{\mathit{MVE}} \newcommand\OGK{\mathit{OGK}} \newcommand\diag{\mathrm{diag}} %\newcommand\det{\mathrm{det}} \newcommand{\class}[1]{``\code{#1}''} \newcommand{\fct}[1]{\code{#1()}} %% almost as usual \author{Valentin Todorov\\UNIDO \And Peter Filzmoser\\Vienna University of Technology} \title{An Object Oriented Framework for Robust Multivariate Analysis} %% for pretty printing and a nice hypersummary also set: \Plainauthor{Valentin Todorov, Peter Filzmoser} %% comma-separated \Plaintitle{Object Oriented Framework for Robust Multivariate Analysis} %% without formatting \Shorttitle{OOF for Robust Multivariate Analysis} %% a short title (if necessary) %% an abstract and keywords \Abstract{ \noindent This introduction to the \proglang{R} package \pkg{rrcov} is a (slightly) modified version of \cite{todorov-oof}, published in the \emph{Journal of Statistical Software}. \noindent Taking advantage of the \proglang{S}4 class system of the programming environment \proglang{R}, which facilitates the creation and maintenance of reusable and modular components, an object oriented framework for robust multivariate analysis was developed. The framework resides in the packages \pkg{robustbase} and \pkg{rrcov} and includes an almost complete set of algorithms for computing robust multivariate location and scatter, various robust methods for principal component analysis as well as robust linear and quadratic discriminant analysis. The design of these methods follows common patterns which we call statistical design patterns in analogy to the design patterns widely used in software engineering. The application of the framework to data analysis as well as possible extensions by the development of new methods is demonstrated on examples which themselves are part of the package \pkg{rrcov}. } \Keywords{robustness, multivariate analysis, MCD, \proglang{R}, statistical design patterns} \Plainkeywords{robustness, multivariate analysis, MCD, R, statistical design patterns} %% without formatting %% at least one keyword must be supplied %% publication information %% NOTE: Typically, this can be left commented and will be filled out by the technical editor %% \Volume{13} %% \Issue{9} %% \Month{September} %% \Year{2004} %% \Submitdate{2004-09-29} %% \Acceptdate{2004-09-29} %% The address of (at least) one author should be given %% in the following format: \Address{ Valentin Todorov\\ Research and Statistics Branch\\ United Nations Industrial Development Organization (UNIDO)\\ Vienna International Centre\\ P.O.Box 300, 1400, Vienna, Austria\\ E-mail: \email{valentin.todorov@chello.at}\\ % URL: \url{http://statmath.wu-wien.ac.at/~zeileis/} } %% It is also possible to add a telephone and fax number %% before the e-mail in the following format: %% Telephone: +43/1/31336-5053 %% Fax: +43/1/31336-734 %% for those who use Sweave please include the following line (with % symbols): %% need no \usepackage{Sweave.sty} %% end of declarations %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\bi}{\begin{itemize}} \newcommand{\ei}{\end{itemize}} \newcommand{\be}{\begin{enumerate}} \newcommand{\ee}{\end{enumerate}} \renewcommand{\v}[1]{\mathbf{#1}} %% Sweave options for the complete document %%\SweaveOpts{keep.source=TRUE} %%\SweaveOpts{prefix.string=images/oofgen/oof} \SweaveOpts{prefix.string=ooframework} \begin{document} %% include your article here, just as usual %% Note that you should use the \pkg{}, \proglang{} and \code{} commands. %\section[About Java]{About \proglang{Java}} \section[Introduction]{Introduction} %% Note: If there is markup in \(sub)section, then it has to be escape as above. Outliers are present in virtually every data set in any application domain, and the identification of outliers has a hundred years long history. Many researchers in science, industry and economics work with huge amounts of data and this even increases the possibility of anomalous data and makes their (visual) detection more difficult. Taking into account the multivariate aspect of the data, the outlyingness of the observations can be measured by the Mahalanobis distance which is based on location and scatter estimates of the data set. In order to avoid the masking effect, robust estimates of these parameters are called for, even more, they must possess a positive breakdown point. The estimates of the multivariate location vector $\muv$ and the scatter matrix $\v{\Sigma}$ are also a cornerstone in the analysis of multidimensional data, since they form the input to many classical multivariate methods. The most common estimators of multivariate location and scatter are the sample mean $\xbarv$ and the sample covariance matrix $\v{S}$, i.e., the corresponding MLE estimates. These estimates are optimal if the data come from a multivariate normal distribution but are extremely sensitive to the presence of even a few outliers (atypical values, anomalous observations, gross errors) in the data. If outliers are present in the input data they will influence the estimates $\xbarv$ and $\v{S}$ and subsequently worsen the performance of the classical multivariate procedure based on these estimates. Therefore it is important to consider robust alternatives to these estimators and actually in the last two decades much effort was devoted to the development of affine equivariant estimators possessing a high breakdown point. The most widely used estimators of this type are the minimum covariance determinant (MCD) estimator of \citet{rousseeuw:85} for which also a fast computing algorithm was constructed---\citet{rousseeuw-vandriessen}, the S~estimators \citep{davies:87} and the Stahel-Donoho estimator introduced by \citet{stahel:81, stahel-phd:81} and \citet{donoho:82} and studied by \citet{maronna:95}. If we give up the requirement for affine equivariance, estimators like the one of \citet{maronna:2002} are available and the reward is an extreme gain in speed. Substituting the classical location and scatter estimates by their robust analogues is the most straightforward method for robustifying many multivariate procedures like principal components, discriminant and cluster analysis, canonical correlation, etc. The reliable identification of multivariate outliers which is an important task in itself, is another approach to robustifying many classical multivariate methods. Some of these estimates and procedures became available in the popular statistical packages like \proglang{S-PLUS}, \proglang{SAS}, \proglang{MATLAB} as well as in \proglang{R} but nevertheless it is recognized that the robust methods have not yet replaced the ordinary least square techniques as it could be expected \citep{morgenthaler:2007, stromberg:2004}. One reason is the lack of easily accessible and easy to use software, that is software which presents the robust procedures as extensions to the classical ones---similar input and output, reasonable defaults for most of the estimation options and visualization tools. As far as the easiness of access is concerned, the robust statistical methods should be implemented in the freely available statistical software package \proglang{R}, \citep{RLanguage}, which provides a powerful platform for the development of statistical software. These requirements have been defined in the project ``Robust Statistics and \proglang{R}'', see \url{http://www.statistik.tuwien.ac.at/rsr/}, and a first step in this direction was the initial development of the collaborative package \pkg{robustbase}, \citep{robustbase}, with the intention that it becomes the \textit{essential robust statistics} \proglang{R} package covering the methods described in the recent book \citet{maronna:2006}. During the last decades the object oriented programming paradigm has revolutionized the style of software system design and development. A further step in the software reuse are the object oriented frameworks \citep[see][]{gamma} which provide technology for reusing both the architecture and the functionality of software components. Taking advantage of the new \proglang{S}4 class system \citep{chambers:98} of \proglang{R} which facilitate the creation of reusable and modular components an object oriented framework for robust multivariate analysis was implemented. The goal of the framework is manyfold: \be \item{to provide the end-user with a flexible and easy access to newly developed robust methods for multivariate data analysis;} \item{to allow the programming statisticians an extension by developing, implementing and testing new methods with minimum effort, and } \item{to guarantee the original developers and maintainer of the packages a high level of maintainability.} \ee The framework includes an almost complete set of algorithms for computing robust multivariate location and scatter, such as minimum covariance determinant, different S~estimators (SURREAL, FAST-S, Bisquare, Rocke-type), orthogonalized Gnanadesikan--Kettenring (OGK) estimator of \citet{maronna:2002}. The next large group of classes are the methods for robust principal component analysis (PCA) including ROBPCA of \citet{hubert-ROBPCA:2005}, spherical principal components (SPC) of \citet{locantore:1999}, the projection pursuit algorithms of \citet{croux-Ruiz-Gazen:2005} and \citet{croux-filzmoser-oliveira-pppca}. Further applications implemented in the framework are linear and quadratic discriminant analysis \citep[see][for a review]{todorov-roblda}, multivariate tests \citep{rousseeuw-willems:2002, todorov-manova} and outlier detection tools. The application of the framework to data analysis as well as the development of new methods is illustrated on examples, which themselves are part of the package. Some issues of the object oriented paradigm as applied to the \proglang{R} object model (naming conventions, access methods, coexistence of \proglang{S}3 and \proglang{S}4 classes, usage of UML, etc.) are discussed. The framework is implemented in the \proglang{R} packages \pkg{robustbase} and \pkg{rrcov}, \citep{todorov-rrcov}, which are available from Comprehensive \proglang{R} Archive Network (CRAN) at \url{http://CRAN.R-project.org} under the GNU General Public License. The rest of the paper is organized as follows. In the next Section~\ref{oof-sec:objmodel} the design principles and the structure of the framework is presented as well as some related object oriented concepts are discussed. As a main tool for modeling of the robust estimation methods a statistical design pattern is proposed. Section~\ref{oof-sec:ex-intro} facilitates the quick start by an example session giving a brief overview of the framework. Section~\ref{oof-sec:multi} describes the robust multivariate methods, their computation and implementation. The Sections~\ref{oof-sec:cov}, \ref{oof-sec:pca} and \ref{oof-sec:lda} are dedicated to the estimation of multivariate location and scatter, principal component analysis and discriminant analysis, respectively. For each domain the object model, the available visualization tools, an example, and other relevant information are presented. We conclude in Section~\ref{oof-sec:conclusions} with discussion and outline of the future work. \section{Design approach and structure of the framework} \label{oof-sec:objmodel} In classical multivariate statistics we rely on parametric models based on assumptions about the structural and the stochastic parts of the model for which optimal procedures are derived, like the least squares estimators and the maximum likelihood estimators. The corresponding robust methods can be seen as extensions to the classical ones which can cope with deviations from the stochastic assumptions thus mitigating the dangers for classical estimators. The developed statistical procedures will remain reliable and reasonably efficient even when such deviations are present. For example in the case of location and covariance estimation the classical theory yields the sample mean $\xbarv$ and the sample covariance matrix $\v{S}$, i.e., the corresponding MLE estimates as an optimal solution. One (out of many) robust alternatives is the minimum covariance determinant estimator. When we consider this situation from an object oriented design point of view we can think of an abstract base class representing the estimation problem, a concrete realization of this object---the classical estimates, and a second concrete derivative of the base class representing the MCD estimates. Since there exist many other robust estimators of multivariate location and covariance which share common characteristics we would prefer to add one more level of abstraction by defining an abstract ``robust'' object from which all other robust estimators are derived. We encounter a similar pattern in most of the other multivariate statistical methods like principal component analysis, linear and quadratic discriminant analysis, etc. and we will call it a \textit{statistical design pattern}. A schematic representation as an \textit{UML diagram} is shown in Figure~\ref{oof-fig:objmodel}. \begin{figure}[h!] \begin{center} \includegraphics[width=1.0\textwidth]{AModel} \label{oof-fig:objmodel} \caption{Class diagram of the statistical design pattern for robust estimation methods.} \end{center} \end{figure} The following simple example demonstrates the functionality. We start with a generic object model of a robust and the corresponding classical multivariate method with all the necessary interfaces and functionalities and then concretize it to represent the desired class hierarchy. The basic idea is to define an abstract \proglang{S}4 class which has as slots the common data elements of the result of the classical method and its robust counterparts (e.g., \code{Pca}). For this abstract class we can implement the standard in \proglang{R} generic functions like \code{print()}, \code{summary()}, \code{plot()} and maybe also \code{predict()}. Now we can derive and implement a concrete class which will represent the classical method, say \code{PcaClassic}. Further we derive another abstract class which represents a potential robust method we are going to implement, e.g., \code{PcaRobust}---it is abstract because we want to have a ``placeholder'' for the robust methods we are going to develop next. The generic functions that we implemented for the class \code{Pca} are still valid for \code{PcaRobust} but whenever necessary we can override them with new functionality. Now we have the necessary platform and of course we have had diligently documented everything we have implemented so far---this is our investment in the future development of robust methods from this family. The framework at its current expansion stage provides such platform for several important families of multivariate methods. It is time to dedicate our effort to the development and implementation of our new robust method/class, say \code{PcaHubert} and only to this---here comes the first obvious benefit from the framework---we do not need to care for the implementation of \code{print()}, \code{summary()}, \code{plot()} and \code{predict()} neither for their documentation or testing. In contrast to the \proglang{S}3 class system the \proglang{S}4 system requires the creation of objects to be done by the \code{new()} function which will perform the necessary validity checks. We go one step further and require that the \code{new()} function is not used directly but only through special functions known in \proglang{R} as \textit{generating functions} or as \textit{constructors} in the conventional object oriented programming languages. A constructor function has the same name as the corresponding class, takes the estimation options as parameters, organizes the necessary computations and returns an object of the class containing the results of the computation. It can take as a parameter also a \textit{control object} which itself is an \proglang{S}4 object and contains the estimation options. More details on the generating functions and their application for structuring the user interface can be found in \citet{todorov-constructors}. The main part of the framework is implemented in the package \pkg{rrcov} but it relies on code in the packages \pkg{robustbase} and \pkg{pcaPP} \citep{filzmoser-pcaPP}. The structure of the framework and its relation to other \proglang{R} packages is shown in Figure~\ref{oof-fig:structure}. \begin{figure}[h!] \begin{center} \includegraphics[width=0.8\textwidth]{Structure} \label{oof-fig:structure} \caption{Class diagram: structure of the framework and relation to other \proglang{R} packages.} \end{center} \end{figure} The framework can be used by other packages, like for example by \pkg{robust} \citep[see][]{konis-robust} or can be further extended. In Figure~\ref{oof-fig:structure} a hypothetical package \pkg{rrcovNA} is shown, which could extend the available robust multivariate methods with options for dealing with missing values. In the rest of this section some object-oriented programming (OOP) concepts will be discussed which are essential for understanding the framework. \newpage \subsection{UML diagrams} \label{oof-sec:UML} Throughout this paper we exploit UML class diagrams to give a clear picture of the framework and its components. UML stands for \textit{Unified Modeling Language}---an object-oriented system of notation which has evolved from previous works of Grady Booch, James Rumbaugh and Ivar Jacobson to become a tool accepted by the Object Management Group (OMG) as the standard for modeling object oriented programs \citep[see][]{umlInfra, umlSuper}. A class diagram models the structure and contents of a system by depicting classes, packages, objects and the relations among them with the aim to increase the ease of understanding the considered application. A class is denoted by a box with three compartments which contain the name, the attributes (slots) and operations (methods) of the class, respectively. The class name in italics indicates that the class is abstract. The bottom two compartments could be omitted or they can contain only the key attributes and operations which are useful for understanding the particular diagram. Each attribute is followed by its type and each operation---by the type of its return value. We use the \proglang{R} types like \code{numeric}, \code{logical}, \code{vector}, \code{matrix}, etc. but the type can be also a name of an \proglang{S}4 class. Relationships between classes are denoted by lines or arrows with different form. The inheritance relationship is depicted by a large empty triangular arrowhead pointing to the base class. Composition means that one class contains another one as a slot (not to be mistaken with the keyword ``contains'' signalling inheritance in \proglang{R}). This relation is represented by an arrow with a solid diamond on the side of the composed class. If a class ``uses'' another one or depends on it, the classes are connected by a dashed arrow (dependence relation). Packages can also be present in a class diagram---in our case they correspond more or less to \proglang{R} packages---and are shown as tabbed boxes with the name of the package written in the tab (see Figure~\ref{oof-fig:structure}). All UML diagrams of the framework were created with the open source UML tool \pkg{ArgoUML} \citep{argo:phd, argo:2000} which is available for download from \url{http://argouml.tigris.org/}. \subsection{Design patterns} \label{oof-sec:patterns} Design patterns are usually defined as general solutions to recurring design problems and refer to both the description of a solution and an instance of that solution solving a particular problem. The current use of the term design patterns originates in the writings of the architect Christopher Alexander devoted to urban planning and building architecture \citep{alexander} but it was brought to the software development community by the seminal book of \citet{gamma}. A design pattern can be seen as a template for how to solve a problem which can be used in many different situations. Object-Oriented design patterns are about classes and the relationships between classes or objects at abstract level, without defining the final classes or objects of the particular application. In order to be usable, design patterns must be defined formally and the documentation, including a preferably evocative name, describes the context in which the pattern is used, the pattern structure, the participants and collaboration, thus presenting the suggested solution. Design patterns are not limited to architecture or software development but can be applied in any domain where solutions are searched for. During the development of the here presented framework several design patterns were identified, which we prefer to call \textit{statistical design patterns}. The first one was already described earlier in this section and captures the relations among a classical and one or more alternative robust multivariate estimators. Another candidate is the control object encapsulating the estimation parameters and a third one is the factory-like construct which suggests selection of a robust estimation method and creation of the corresponding objects based on the data set characteristics (see Section~\ref{oof-sec:cov}). The formal description of these design patterns is beyond the scope of this work and we will limit the discussion to several examples. \subsection{Accessor methods} \label{oof-sec:accessors} One of the major characteristics and advantages of object oriented programming is the encapsulation. Unfortunately real encapsulation (information hiding) is missing in \proglang{R}, but as far as the access to the member variables is concerned this could be mitigated by defining accessor methods (i.e., methods used to examine or modify the slots (member variables) of a class) and ``advising'' the users to use them instead of directly accessing the slots. The usual way of defining accessor functions in \proglang{R} is to use the same name as the name of the corresponding slot. For example for the slot \code{a} these are: \begin{Scode} R> cc <- a(obj) R> a(obj) <- cc \end{Scode} In many cases this is not possible, because of conflicts with other existing functions. For example it is not possible to define an accessor function \code{cov()} for the slot \code{cov} of class \code{Cov}, since the function \code{cov()} already exists in the \code{base} \proglang{R}. Also it is not immediately seen if a slot is ``read only'' or can be modified by the user (unfortunately, as already mentioned, every slot in \proglang{R} can be modified by simply using \code{obj@a <- cc}). In \pkg{rrcov} a notation was adopted, which is usual in \proglang{Java}: the accessors are defined as \code{getXxx()} and \code{setXxx()} (if a \code{setXxx()} method is missing, we are ``not allowed'' to change the slot). The use of accessor methods allows to perform computations on demand (\code{getMah(mcd)} computes the Mahalanobis distances, stores them into the object and returns them) or even have ``virtual'' slots which are not at all stored in the object (e.g., \code{getCorr(mcd)} computes each time and returns the correlation matrix without storing it). \subsection{Naming conventions} \label{oof-sec:naming} %% %From Sun: "Class names should be nouns, in mixed case with the first letter of each %internal word capitalized. Methods should be verbs, in mixed case with the first %letter lowercase, with the first letter of each internal word capitalized." %% %No coding rules in R: the R Internals manual that is shipped with R %also has a section on coding standards: %http://cran.r-project.org/doc/manuals/R-ints.html#R-coding-standards %though this is quite short and does not go much beyond the basic indentation %% There is no agreed naming convention (coding rules) in \proglang{R} but to facilitate the framework usage several simple rules are in order, following the recommended Sun's \proglang{Java} coding style (see \url{http://java.sun.com/docs/codeconv/}): \bi \item{Class, function, method and variable names are alphanumeric, do not contain ``-'' or ``.'' but rather use interchanging lower and upper case.} \item{Class names start with an uppercase letter.} \item{Methods, functions, and variables start with a lowercase letter.} \item{Exceptions are functions returning an object of a given class (i.e., generating functions or constructors)---they have the same name as the class.} \item{Variables and methods which are not intended to be seen by the user---i.e., private members---start with ``.''.} \item{Violate these rules whenever necessary to maintain compatibility.} \ei \section{Example session} \label{oof-sec:ex-intro} In this section we will introduce the base functionalities of the framework by an example session. First of all we have to load the package \pkg{rrcov} which will cause all necessary packages to be loaded too. The framework includes many example data sets but here we will load only those which will be used throughout the following examples. For the rest of the paper it will be assumed that the package has been loaded already. <>= ## set the prompt to "R> " and the continuation to "+ " options(prompt="R> ", continue="+ ") @ <>= ## ## Load the 'rrcov' package and the first two data sets to be ## used throughout the examples ## library("rrcov") data("delivery") delivery.x <- delivery[,1:2] # take only the X part data("hbk") hbk.x <- hbk[,1:3] # take only the X part @ Most of the multivariate statistical methods are based on estimates of multivariate location and covariance, therefore these estimates play a central role in the framework. We will start with computing the robust \textit{minimum covariance determinant} estimate for the data set \code{delivery} from the package \pkg{robustbase}. The data set \citep[see][Table~23, p.~155]{rousseeuw-leroy} contains delivery time data in 25 observations with 3 variables. The aim is to explain the time required to service a vending machine \code{(Y)} by means of the number of products stocked \code{(X1)} and the distance walked by the route driver \code{(X2)}. For this example we will consider only the $\v{X}$ part of the data set. After computing its robust location and covariance matrix using the MCD method implemented in the function \code{CovMcd()} we can print the results by calling the default \code{show()} method on the returned object \code{mcd} as well as summary information by the \code{summary()} method. The standard output contains the robust estimates of location and covariance. The summary output contains additionally the eigenvalues of the covariance matrix and the robust distances of the data items (Mahalanobis type distances computed with the robust location and covariance instead of the sample ones). <>= ## ## Compute MCD estimates for the delivery data set ## - show() and summary() examples ## mcd <- CovMcd(delivery.x) mcd summary(mcd) @ <>= ## ## Example plot of the robust against classical ## distances for the delivery data set ## plot(mcd, which="dd") @ \begin{center} \begin{figure}[h!] \setkeys{Gin}{width=0.8\textwidth} \includegraphics{ooframework-intro-plot} \caption{Example plot of the robust against classical distances for the \code{delivery} data set.} \label{oof-fig:intro} \end{figure} \end{center} Now we will show one of the available plots by calling the \code{plot()} method---in Figure~\ref{oof-fig:intro} the Distance-Distance plot introduced by \citet{Rousseeuw-van-Zomeren} is presented, which plots the robust distances versus the classical Mahalanobis distances and allows to classify the observations and identify the potential outliers. The description of this plot as well as examples of more graphical displays based on the covariance structure will be shown in Section~\ref{oof-sec:cov}. Apart from the demonstrated MCD method the framework provides many other robust estimators of multivariate location and covariance, actually almost all of the well established estimates in the contemporary robustness literature. The most fascinating feature of the framework is that one will get the output and the graphs in the same format, whatever estimation method was used. For example the following code lines will compute the S~estimates for the same data set and provide the standard and extended output (not shown here). <>= ## ## Compute the S-estimates for the delivery data set ## and provide the standard and extended output ## est <- CovSest(delivery.x, method="bisquare") est summary(est) @ Nevertheless, this variety of methods could pose a serious hurdle for the novice and could be quite tedious even for the experienced user. Therefore a shortcut is provided too---the function \code{CovRobust()} can be called with a parameter set specifying any of the available estimation methods, but if this parameter set is omitted the function will decide on the basis of the data size which method to use. As we see in the example below, in this case it selects the Stahel-Donoho estimates. For details and further examples see Section~\ref{oof-sec:cov}. <>= ## ## Automatically select the appropriate estimator according ## to the problem size - in this example the Stahel-Donoho estimates ## will be selected. ## est <- CovRobust(delivery.x) est @ \section{Robust multivariate methods} \label{oof-sec:multi} \subsection{Multivariate location and scatter} \label{oof-sec:cov} The framework provides an almost complete set of estimators for multivariate location and scatter with high breakdown point. The first such estimator was proposed by \citet{stahel:81, stahel-phd:81} and \citet{donoho:82} and it is recommended for small data sets, but the most widely used high breakdown estimator is the minimum covariance determinant estimate \citep{rousseeuw:85}. Several algorithms for computing the S~estimators \citep{davies:87} are provided \citep{ruppert:1992, rocke:94, rocke:96a, salibian:2005}. The minimum volume ellipsoid (MVE) estimator \citep{rousseeuw:85} is also included since it has some desirable properties when used as initial estimator for computing the S~estimates \citep[see][p. 198]{maronna:2006}. In the rest of this section the definitions of the different estimators of location and scatter will be briefly reviewed and the algorithms for their computation will be discussed. Further details can be found in the relevant references. The object model is presented and examples of its usage, as well as further examples of the graphical displays are given. \subsubsection{The Minimum covariance determinant estimator and its computation} \label{oof-sec:cov-mcd} The MCD estimator for a data set $\{\xv_1, \ldots, \xv_n\}$ in $\Re^p$ is defined by that subset $\{\xv_{i_1}, \ldots, \xv_{i_h}\}$ of $h$ observations whose covariance matrix has the smallest determinant among all possible subsets of size $h$. The MCD location and scatter estimate $\v{T}_{\MCD}$ and $\v{C}_{\MCD}$ are then given as the arithmetic mean and a multiple of the sample covariance matrix of that subset \begin{eqnarray} \label{oof-eq:mcd} \v{T}_{\MCD} &=& \frac{1}{h}\sum^{h}_{j=1} \xv_{i_j} \nonumber\\ \v{C}_{MCD} &=& c_{ccf}c_{sscf}\frac{1}{h-1}\sum^{h}_{j=1} (\xv_{i_j}-\v{T}_{\MCD})(\xv_{i_j}-\v{T}_{\MCD})^{\top}. \end{eqnarray} The multiplication factors $c_{ccf}$ (consistency correction factor) and $c_{sscf}$ (small sample correction factor) are selected so that $\v{C}$ is consistent at the multivariate normal model and unbiased at small samples \citep[see][]{butler:1993, croux-haesbroeck:99, pison:2002, todorov-cf}. A recommendable choice for $h$ is $\lfloor(n+p+1)/2\rfloor$ because then the BP of the MCD is maximized, but any integer $h$ within the interval $[(n + p + 1)/2,n]$ can be chosen, see \citet{rousseeuw-leroy}. Here $\lfloor z\rfloor$ denotes the integer part of $z$ which is not less than $z$. If $h = n$ then the MCD location and scatter estimate $\v{T}_{\MCD}$ and $\v{C}_{\MCD}$ reduce to the sample mean and covariance matrix of the full data set. The computation of the MCD estimator is far from being trivial. The naive algorithm would proceed by exhaustively investigating all subsets of size $h$ out of $n$ to find the subset with the smallest determinant of its covariance matrix, but this will be feasible only for very small data sets. Initially MCD was neglected in favor of MVE because the simple resampling algorithm was more efficient for MVE. Meanwhile several heuristic search algorithms \citep[see][]{todorov:92, rocke:94, hawkins:94} and exact algorithms \citep[][]{agullo:96} were proposed but now a very fast algorithm due to \citet{rousseeuw-vandriessen} exists and this algorithm is usually used in practice. The algorithm is based on the C-step which moves from one approximation $(\v{T}_1, \v{C}_1)$ of the MCD estimate of a data set $\v{X}=\{\xv_1, \ldots, \xv_n\}$ to the next one $(\v{T}_2, \v{C}_2)$ with possibly lower determinant $\det(\v{C}_2) \le \det(\v{C}_1)$ by computing the distances $d_1, \ldots, d_n$ relative to $(\v{T}_1, \v{C}_1)$, i.e., \begin{equation} \label{oof-eq:mah} d_i=\sqrt{(\xv_i-\v{T}_1)^{\top}\v{C}_1^{-1}(\xv_i-\v{T}_1)} \end{equation} and then computing $(\v{T}_2, \v{C}_2)$ for those $h$ observations which have smallest distances. ``C'' in C-step stands for ``concentration'' since we are looking for a more ``concentrated'' covariance matrix with lower determinant. \citet{rousseeuw-vandriessen} have proven a theorem stating that the iteration process given by the C-step converges in a finite number of steps to a (local) minimum. Since there is no guarantee that the global minimum of the MCD objective function will be reached, the iteration must be started many times from different initial subsets, to obtain an approximate solution. The procedure is very fast for small data sets but to make it really ``fast'' also for large data sets several computational improvements are used. \bi \item{\textit{initial subsets}: It is possible to restart the iterations from randomly generated subsets of size $h$, but in order to increase the probability of drawing subsets without outliers, $p+1$ points are selected randomly. These $p+1$ points are used to compute ($\v{T}_0,\v{C}_0)$. Then the distances $d_1,\ldots, d_n$ are computed and sorted in increasing order. Finally the first $h$ are selected to form the initial $h-$subset $H_0$.} \item{\textit{reduced number of C-steps}: The C-step involving the computation of the covariance matrix, its determinant and the relative distances, is the most computationally intensive part of the algorithm. Therefore instead of iterating to convergence for each initial subset only two C-steps are performed and the 10 subsets with lowest determinant are kept. Only these subsets are iterated to convergence. } \item{\textit{partitioning}: For large $n$ the computation time of the algorithm increases mainly because all $n$ distances given by Equation~(\ref{oof-eq:mah}) have to be computed at each iteration. An improvement is to partition the data set into a maximum of say five subsets of approximately equal size (but not larger than say 300) and iterate in each subset separately. The ten best solutions for each data set are kept and finally only those are iterated on the complete data set. } \item{\textit{nesting}: Further decrease of the computational time can be achieved for data sets with $n$ larger than say 1500 by drawing 1500 observations without replacement and performing the computations (including the partitioning) on this subset. Only the final iterations are carried out on the complete data set. The number of these iterations depends on the actual size of the data set at hand.} \ei The MCD estimator is not very efficient at normal models, especially if $h$ is selected so that maximal BP is achieved. To overcome the low efficiency of the MCD estimator, a reweighed version can be used. For this purpose a weight $w_i$ is assigned to each observation $\xv_i$, defined as $w_i=1$ if $(\xv_i-\v{T}_{\MCD})^{\top}\v{C}_{\MCD}^{-1}(\xv_i-\v{T}_{\MCD}) \le \chi^2_{p,0.975}$ and $w_i=0$ otherwise, relative to the raw MCD estimates $(\v{T}_{\MCD}, \v{C}_{\MCD})$. Then the reweighted estimates are computed as \begin{eqnarray} \label{oof-eq:mcd-rew} \v{T}_R &=& \frac{1}{\nu}\sum^{n}_{i=1}{w_i\xv_i},\nonumber\\ \v{C}_R &=& c_{r.ccf}c_{r.sscf}\frac{1}{\nu-1}\sum^n_{i=1}{w_i(\xv_i-\v{T}_R)(\xv_i-\v{T}_R)^{\top}}, \end{eqnarray} where $\nu$ is the sum of the weights, $\nu =\sum^n_{i=1}{w_i}$. Again, the multiplication factors $c_{r.ccf}$ and $c_{r.sscf}$ are selected so that $\v{C}_R$ is consistent at the multivariate normal model and unbiased at small samples \citep[see][and the references therein]{pison:2002, todorov-cf}. These reweighted estimates $(\v{T}_R,\v{C}_R)$ which have the same breakdown point as the initial (raw) estimates but better statistical efficiency are computed and used by default. \subsubsection{The Minimum volume ellipsoid estimates} \label{oof-sec:cov-mve} The minimum volume ellipsoid estimator searches for the ellipsoid of minimal volume containing at least half of the points in the data set $\v{X}$. Then the location estimate is defined as the center of this ellipsoid and the covariance estimate is provided by its shape. Formally the estimate is defined as these $\v{T}_{\MVE},\v{C}_{\MVE}$ that minimize $\det(\v{C})$ subject to \begin{equation} \label{oof-eq:mve} \#\{i:(\xv_i - \v{T})^{\top}\v{C}^{-1}(\xv_i - \v{T}) \le c^2\} \ge \left \lfloor \frac{n+p+1}{2} \right \rfloor, \end{equation} where \# denotes the cardinality. The constant $c$ is chosen as $\chi^2_{p,0.5}$. The search for the approximate solution is made over ellipsoids determined by the covariance matrix of $p+1$ of the data points and by applying a simple but effective improvement of the sub-sampling procedure as described in \citet{maronna:2006}, p. 198. Although there exists no formal proof of this improvement (as for MCD and LTS), simulations show that it can be recommended as an approximation of the MVE. The MVE was the first popular high breakdown point estimator of location and scatter but later it was replaced by the MCD, mainly because of the availability of an efficient algorithm for its computation \citep{rousseeuw-vandriessen}. Recently the MVE gained importance as initial estimator for S~estimation because of its small maximum bias \citep[see][Table~6.2, p.~196]{maronna:2006}. \subsubsection{The Stahel-Donoho estimator} \label{oof-sec:cov-sde} The first multivariate equivariant estimator of location and scatter with high breakdown point was proposed by \citet{stahel:81, stahel-phd:81} and \citet{donoho:82} but became better known after the analysis of \citet{maronna:95}. For a data set $\v{X}=\{\xv_1,\ldots,\xv_n\}$ in $\Re^p$ it is defined as a weighted mean and covariance matrix of the form given by Equation~(\ref{oof-eq:mcd-rew}) where the weight $w_i$ of each observation is inverse proportional to the ``outlyingness'' of the observation. Let the univariate outlyingness of a point $\xv_i$ with respect to the data set $\v{X}$ along a vector $\v{a} \in \Re^p, ||\v{a}|| \ne \v{0}$ be given by \begin{equation} \label{oof-eq:sde1} r(\xv_i,\v{a}) = \frac{|\xv^{\top}\v{a}-m(\v{a}^{\top}\v{X})|}{s(\v{a}^{\top}\v{X})}~~~i=1,\ldots,n \end{equation} where $(\v{a}^{\top}\v{X})$ is the projection of the data set $\v{X}$ on $\v{a}$ and the functions $m()$ and $s()$ are robust univariate location and scale statistics, for example the median and MAD, respectively. Then the multivariate outlyingness of $\xv_i$ is defined by \begin{equation} \label{oof-eq:sde2} r_i=r(\xv_i) = \max_{\v{a}} r(\xv_i,\v{a}). \end{equation} The weights are computed by $w_i=w(r_i)$ where $w(r)$ is a nonincreasing function of $r$ and $w(r)$ and $w(r)r^2$ are bounded. \citet{maronna:95} use the weights \begin{equation} \label{oof-eq:sde-weight} w(r)=\min \left ( 1,\left (\frac{c}{t} \right )^2 \right ) \end{equation} with $c=\sqrt{\chi^2_{p,\beta}}$ and $\beta=0.95$, that are known in the literature as ``Huber weights''. Exact computation of the estimator is not possible and an approximate solution is found by subsampling a large number of directions $\v{a}$ and computing the outlyingness measures $r_i, i=1,\ldots,n$ for them. For each subsample of $p$ points the vector $\v{a}$ is taken as the norm 1 vector orthogonal to the hyperplane spanned by these points. It has been shown by simulations \citep{maronna:2006} that one step reweighting does not improve the estimator. \subsubsection{Orthogonalized Gnanadesikan/Kettenring} \label{oof-sec:cov-ogk} The MCD estimator and all other known affine equivariant high-breakdown point estimates are solutions to a highly non-convex optimization problem and as such pose a serious computational challenge. Much faster estimates with high breakdown point can be computed if one gives up the requirements of affine equivariance of the covariance matrix. Such an algorithm was proposed by \citet{maronna:2002} which is based on the very simple robust bivariate covariance estimator $s_{jk}$ proposed by \citet{Gnanadesikan-Kettenring:1972} and studied by \citet{devlin:81}. For a pair of random variables $Y_j$ and $Y_k$ and a standard deviation function $\sigma()$, $s_{jk}$ is defined as \begin{equation} \label{oof-eq:GK} s_{jk}=\frac{1}{4}\left(\sigma \left(\frac{Y_j}{\sigma(Y_j)}+\frac{Y_k}{\sigma(Y_k)}\right)^2 - \sigma \left(\frac{Y_j}{\sigma(Y_j)}-\frac{Y_k}{\sigma(Y_k)}\right)^2\right). \end{equation} If a robust function is chosen for $\sigma()$ then $s_{jk}$ is also robust and an estimate of the covariance matrix can be obtained by computing each of its elements $s_{jk}$ for each $j=1,\ldots,p$ and $k=1,\ldots,p$ using Equation~(\ref{oof-eq:GK}). This estimator does not necessarily produce a positive definite matrix (although symmetric) and it is not affine equivariant. \citet{maronna:2002} overcome the lack of positive definiteness by the following steps: \bi \item{Define $\yv_i=\vv{D}^{-1}\xv_i, i=1,\ldots,n$ with $\v{D}=\diag(\sigma(X_1),\ldots,\sigma(X_p))$ where $X_l, l=1,\ldots,p$ are the columns of the data matrix $\vv{X}=\{\xv_1, \ldots, \xv_n\}$. Thus a normalized data matrix $\vv{Y}=\{\yv_1, \ldots, \yv_n\}$ is computed.} \item{Compute the matrix $\vv{U}=(u_{jk})$ as $u_{jk}= s_{jk}=s(Y_j, Y_k)$ if $j \ne k$ or $u_{jk}= 1$ otherwise. Here $Y_l, l=1,\ldots,p$ are the columns of the transformed data matrix $\vv{Y}$ and $s(.,.)$ is a robust estimate of the covariance of two random variables like the one in Equation~(\ref{oof-eq:GK}).} \item{Obtain the ``principal component decomposition'' of $\vv{Y}$ by decomposing $\vv{U}=\vv{E}\vv{\Lambda}\vv{E}^{\top}$ where $\vv{\Lambda}$ is a diagonal matrix $\vv{\Lambda}=\diag(\lambda_1,\ldots,\lambda_p)$ with the eigenvalues $\lambda_j$ of $\vv{U}$ and $\vv{E}$ is a matrix with columns the eigenvalues $\vv{e}_j$ of $\vv{U}$.} \item{Define $\zv_i=\vv{E}^{\top}\yv_i=\vv{E}^{\top}\vv{D}^{-1}\xv_i$ and $\vv{A}=\vv{D}\vv{E}$. Then the estimator of $\vv{\Sigma}$ is $\vv{C}_{\OGK}=\vv{A}\vv{\Gamma}\vv{A}^{\top}$ where $\vv{\Gamma}=\diag(\sigma(Z_j)^2), j=1,\ldots,p$} and the location estimator is $\vv{T}_{\OGK}=\vv{A}\mv$ where $\mv=m(\zv_i) = (m(Z_1),\ldots,m(Z_p))$ is a robust mean function. \ei This can be iterated by computing $\vv{C}_{\OGK}$ and $\vv{T}_{\OGK}$ for $\vv{Z}=\{\zv_1, \ldots, \zv_n\}$ obtained in the last step of the procedure and then transforming back to the original coordinate system. Simulations \citep{maronna:2002} show that iterations beyond the second did not lead to improvement. Similarly as for the MCD estimator a one-step reweighting can be performed using Equations~(\ref{oof-eq:mcd-rew}) but the weights $w_i$ are based on the 0.9 quantile of the $\chi^2_p$ distribution (instead of 0.975) and the correction factors $c_r.ccf$ and $c_r.sscf$ are not used. In order to complete the algorithm we need a robust and efficient location function $m()$ and scale function $\sigma()$, and one proposal is given in \citet{maronna:2002}. Further, the robust estimate of covariance between two random vectors $s()$ given by Equation~(\ref{oof-eq:GK}) can be replaced by another one. In the framework two such functions are predefined but the user can provide as a parameter an own function. \subsubsection{S estimates} \label{oof-sec:cov-s} S~estimators of $\muv$ and $\v{\Sigma}$ were introduced by \citet{davies:87} and further studied by \citet{lopuhaa:1989} \citep[see also][p. 263]{rousseeuw-leroy}. For a data set of $p$-variate observations $\{\xv_1, \ldots, \xv_n\}$ an S~estimate $(\v{T},\v{C})$ is defined as the solution of $\sigma(d_1,\ldots,d_n)= \min$ where $d_i=(\xv-\v{T})^{\top}\v{C}^{-1}(\xv-\v{T})$ and $\det(\v{C})=1$. Here $\sigma=\sigma(\zv)$ is the M-scale estimate of a data set $\zv=\{z_1,\ldots,z_n\}$ defined as the solution of $\frac{1}{n}\Sigma\rho(z/\sigma)=\delta$ where $\rho$ is nondecreasing, $\rho(0)=0$ and $\rho(\infty)=1$ and $\delta \in(0,1)$. An equivalent definition is to find the vector $\v{T}$ and a positive definite symmetric matrix $\v{C}$ that minimize $\det(\v{C})$ subject to \begin{equation} \label{oof-eq:s-def} \frac{1}{n}\sum_{i=1}^{n}\rho(d_i)=b_0 \end{equation} with the above $d_i$ and $\rho$. As shown by \citet{lopuhaa:1989} S~estimators have a close connection to the M~estimators and the solution $(\v{T},\v{C})$ is also a solution to an equation defining an M~estimator as well as a weighted sample mean and covariance matrix: \begin{eqnarray} \label{oof-eq:s-iter} d_i^{j}&=&[(\xv_i-\v{T}^{(j-1)})^{\top}\v{(C}^{(j-1)})^{-1}(\xv-\v{T}^{(j-1)})]^{1/2} \nonumber\\ \v{T}^{(j)} &=& \frac{\Sigma w(d_i^{(j)})\xv_i}{\Sigma w(d_i^{(j)})} \nonumber\\ \v{C}^{(j)} &=& \frac{\Sigma w(d_i^{(j)})(\xv_i-\v{T}^{(j)})(\xv_i-\v{T}^{(j)})^{\top}}{\Sigma w(d_i^{(j)})} \end{eqnarray} The framework implements the S~estimates in the class \code{CovSest} and provides four different algorithms for their computation. \be \item{\emph{SURREAL}: This algorithm was proposed by \citet{ruppert:1992} as an analog to the algorithm proposed by the same author for computing S~estimators of regression.} \item{\emph{Bisquare S~estimation with HBDP start}: S~estimates with the biweight $\rho$ function can be obtained using the Equations~(\ref{oof-eq:s-iter}) by a reweighted sample covariance and reweighted sample mean algorithm as described in \citet{maronna:2006}. The preferred approach is to start the iteration from a bias-robust but possibly inefficient estimate which is computed by some form of sub-sampling. Since \citet{maronna:2006} have shown that the MVE has smallest maximum bias (Table~6.2, p.~196) it is recommended to use it as initial estimate.} \item{\emph{Rocke type S~estimates}: In \citet{rocke:96a} it is shown that S~estimators in high dimensions can be sensitive to outliers even if the breakdown point is set to 50\%. Therefore they propose a modified $\rho$ function called translated biweight (or t-biweight) and replace the standardization step given in Equation~(\ref{oof-eq:s-def}) with a standardization step consisting of equating the median of $\rho(d_i)$ with the median under normality. The estimator is shown to be more outlier resistant in high dimensions than the typical S~estimators. The specifics of the iteration are given in \citet{rocke:96}, see also \citet{maronna:2006}. As starting values for the iteration any of the available methods in the framework can be used. The recommended (and consequently the default) one is the MVE estimator computed by \code{CovMve()}.} \item{\emph{Fast~S~estimates}: \citet{salibian:2005} proposed a fast algorithm for regression S~estimates similar to the FAST-LTS algorithm of \citet{rousseeuw-vandriessen:LTS} and borrowing ideas from the SURREAL algorithm of \citet{ruppert:1992}. Similarly, the FAST-S algorithm for multivariate location and scatter is based on modifying each candidate to improve the S-optimality criterion thus reducing the number of the necessary sub-samples required to achieve desired high breakdown point with high probability.} \ee \subsubsection{Object model for robust location and scatter estimation} \label{oof-sec:cov-objmodel} The object model for the \proglang{S}4 classes and methods implementing the different multivariate location and scatter estimators follows the proposed class hierarchy given in Section~\ref{oof-sec:objmodel} and is presented in Figure~\ref{fig:uml-cov}. \begin{figure}[h!] \begin{center} \includegraphics[width=\textwidth]{CovModel} \caption{Object model for robust location and scatter estimation.} \label{fig:uml-cov} \end{center} \end{figure} The abstract class \code{Cov} serves as a base class for deriving all classes representing classical and robust location and scatter estimation methods. It defines the common slots and the corresponding accessor methods, provides implementation for the general methods like \code{show()}, \code{plot()} and \code{summary()}. The slots of \code{Cov} hold some input or default parameters as well as the results of the computations: the location, the covariance matrix and the distances. The \code{show()} method presents brief results of the computations and the \code{summary()} method returns an object of class \code{SummaryCov} which has its own \code{show()} method. As in the other sections of the framework these slots and methods are defined and documented only once in this base class and can be used by all derived classes. Whenever new data (slots) or functionality (methods) are necessary, they can be defined or redefined in the particular class. The classical location and scatter estimates are represented by the class \code{CovClassic} which inherits directly from \code{Cov} (and uses all slots and methods defined there). The function \code{CovClassic()} serves as a constructor (generating function) of the class. It can be called by providing a data frame or matrix. As already demonstrated in Section~\ref{oof-sec:ex-intro} the methods \code{show()} and \code{summary()} present the results of the computations. The \code{plot()} method draws different diagnostic plots which are shown in one of the next sections. The accessor functions like \code{getCenter()}, \code{getCov()}, etc. are used to access the corresponding slots. Another abstract class, \code{CovRobust} is derived from \code{Cov}, which serves as a base class for all robust location and scatter estimators. The classes representing robust estimators like \code{CovMcd}, \code{CovMve}, etc. are derived from \code{CovRobust} and provide implementation for the corresponding methods. Each of the constructor functions \code{CovMcd()}, \code{CovMve()},\code{CovOgk()}, \code{CovMest()} and \code{CovSest()} performs the necessary computations and returns an object of the class containing the results. Similarly as the \code{CovClassic()} function, these functions can be called either with a data frame or a numeric matrix. \subsubsection{Controlling the estimation options} \label{oof-sec:cov-control} Although the different robust estimators of multivariate location and scatter have some controlling options in common, like the tracing flag \code{trace} or the numeric tolerance \code{tolSolve} to be used for inversion (\code{solve}) of the covariance matrix in \code{mahalanobis()}, each of them has more specific options. For example, the MCD and MVE estimators (\code{CovMcd()} and \code{CovMve()}) can specify \code{alpha} which controls the size of the subsets over which the determinant (the volume of the ellipsoid) is minimized. The allowed values are between 0.5 and 1 and the default is 0.5. Similarly, these estimators have parameters \code{nsamp} for the number of subsets used for initial estimates and \code{seed} for the initial seed for \proglang{R}'s random number generator while the M and S~estimators (\code{CovMest} and \code{CovSest}) have to specify the required breakdown point (allowed values between $(n - p)/(2*n)$ and 1 with default 0.5) as well as the asymptotic rejection point, i.e., the fraction of points receiving zero weight \citep{rocke:96}. These parameters can be passed directly to the corresponding constructor function but additionally there exists the possibility to use a control object serving as a container for the parameters. The object model for the control objects shown in Figure~\ref{oof-fig:cov-control} follows the proposed class hierarchy---there is a base class \code{CovControl} which holds the common parameters and from this class all control classes holding the specific parameters of their estimators are derived. These classes have only a constructor function for creating new objects and a method \code{restimate()} which takes a data frame or a matrix, calls the corresponding estimator to perform the calculations and returns the created class with the results. \begin{figure}[h!] \begin{center} \includegraphics[width=\textwidth]{CovControl} \caption{Object model of the control classes for robust location and scatter estimation.} \label{oof-fig:cov-control} \end{center} \end{figure} Apart from providing a structured container for the estimation parameters this class hierarchy has the following additional benefits: \bi \item{the parameters can be passed easily to another multivariate method, for example the principal components analysis based on a covariance matrix \code{PcaCov()} (see Section~\ref{oof-sec:pca}) can take a control object which will be used to estimate the desired covariance (or correlation) matrix. In the following example a control object holding the parameters for S~estimation will be created and then \code{PcaCov()} will be called with this object.} <>= set.seed(1234) @ <>= ## ## Controlling the estimation options with a control object ## control <- CovControlSest(method="biweight") PcaCov(hbk.x, cov.control=control) @ \item{the class hierarchy of the control objects allows to handle different estimator objects using a uniform interface thus leveraging one of the most important features of the object oriented programming, the polymorphism. In the following example we create a list containing different control objects and then via \code{sapply} we call the generic function \code{restimate()} on each of the objects in the list. The outcome will be a list containing the objects resulting from these calls (all are derived from \code{CovRobust}). This looping over the different estimation methods is very useful for implementing simulation studies.} <>= ## ## Controlling the estimation options: example ## of looping through several estimators ## cc <- list(CovControlMcd(), CovControlMest(), CovControlOgk(), CovControlSest(), CovControlSest(method="rocke")) clist <- sapply(cc, restimate, x=delivery.x) sapply(clist, data.class) sapply(clist, getMeth) @ \ei \subsubsection[A generalized function for robust location and covariance estimation: CovRobust()]{A generalized function for robust location and covariance estimation: \code{CovRobust()}} \label{oof-sec:cov-covrobust} The provided variety of estimation methods, each of them with different parameters as well as the object models described in the previous sections can be overwhelming for the user, especially for the novice who does not care much about the technical implementation of the framework. Therefore a function is provided which gives a quick access to the robust estimates of location and covariance matrix. This function is loosely modeled around the \textit{abstract factory design pattern} \citep[see][page 87]{gamma} in the sense that it creates concrete objects of derived classes and returns the result over a base class interface. The class \code{CovRobust} is abstract (defined as \textit{VIRTUAL}) and no objects of it can be created but any of the classes derived from \code{CovRobust}, such as \code{CovMcd} or \code{CovOgk}, can act as an object of class \code{CovRobust}. The function \code{CovRobust()} which is technically not a constructor function can return an object of any of the classes derived from \code{CovRobust} according to the user request. This request can be specified in one of three forms: \bi \item{If only a data frame or matrix is provided and the control parameter is omitted, the function decides which estimate to apply according to the size of the problem at hand. If there are less than 1000 observations and less than 10 variables or less than 5000 observations and less than 5 variables, Stahel-Donoho estimator will be used. Otherwise, if there are less than 50000 observations, either bisquare S~estimates (in case of less than 10 variables) or Rocke type S~estimates (for 10 to 20 variables) will be used. In both cases the S iteration starts at the initial MVE estimate. And finally, if there are more than 50000 observations and/or more than 20 variables the Orthogonalized Quadrant Correlation estimator (\code{CovOgk} with the corresponding parameters) is used. This is illustrated by the following example.} <>= ## ## Automatically select the appropriate estimator according ## to the problem size. ## getMeth(CovRobust(matrix(rnorm(40), ncol=2))) # 20x2 - SDE getMeth(CovRobust(matrix(rnorm(16000), ncol=8))) # 2000x8 - bisquare S getMeth(CovRobust(matrix(rnorm(20000), ncol=10))) # 2000x10 - Rocke S getMeth(CovRobust(matrix(rnorm(200000), ncol=2))) # 100000x2 - OGK @ \item{The simplest way to choose an estimator is to provide a character string with the name of the estimator---one of \code{"mcd"}, \code{"ogk"}, \code{"m"}, \code{"s-fast"}, \code{"s-rocke"}, etc.} <>= ## ## Rocke-type S-estimates ## getMeth(CovRobust(matrix(rnorm(40), ncol=2), control="rocke")) @ \item{If it is necessary to specify also some estimation parameters, the user can create a control object (derived from \code{CovControl}) and pass it to the function together with the data. For example to compute the OGK estimator using the median absolute deviation (MAD) as a scale estimate and the quadrant correlation (QC) as a pairwise correlation estimate we create a control object \code{ctrl} passing the parameters \code{s_mad} and \code{s_qc} to the constructor function and then call \code{CovRobust} with this object. The last command line illustrates the accessor method for getting the correlation matrix of the estimate as well as a nice formatting method for covariance matrices.} <>= ## ## Specify some estimation parameters through a control object. ## The last command line illustrates the accessor method ## for getting the correlation matrix of the estimate ## as well as a nice formatting method for covariance ## matrices. ## data("toxicity") ctrl <- CovControlOgk(smrob = "s_mad", svrob = "qc") est <- CovRobust(toxicity, ctrl) round(getCenter(est),2) as.dist(round(getCorr(est), 2)) @ \ei \subsubsection{Visualization of the results} \label{oof-sec:cov-vis} The default plot accessed through the method \code{plot()} of class \code{CovRobust} is the Distance-Distance plot introduced by \citet{Rousseeuw-van-Zomeren}. An example of this graph, which plots the robust distances versus the classical Mahalanobis distances is shown in Figure~\ref{oof-fig:intro}. The dashed line represents the points for which the robust and classical distances are equal. The horizontal and vertical lines are drawn at values $x=y=\sqrt{\chi_{p,0.975}^2}$. Points beyond these lines can be considered as outliers and are identified by their labels. The other available plots are accessible either interactively or through the \code{which} parameter of the \code{plot()} method. The left panel of Figure~\ref{oof-fig:cov-lattice} shows an example of the distance plot in which robust and classical Mahalanobis distances are shown in parallel panels. The outliers have large robust distances and are identified by their labels. The right panel of Figure~\ref{oof-fig:cov-lattice} shows a Quantile-Quantile comparison plot of the robust and the classical Mahalanobis distances versus the square root of the quantiles of the chi-squared distribution. <>= ## ## Distance plot and Chi-square Q-Q plot of the robust and classical distances ## Lattice plots (currently not available in rrcov) ## library("lattice") library("grid") library("rrcov") data("delivery") X <- delivery[,1:2] myPanel.dd <- function(x, y, subscripts, cutoff, ...) { panel.xyplot(x, y, ...) panel.abline(h=cutoff,lty="dashed") n <- length(y) id.n <- length(which(y>cutoff)) if(id.n > 0){ ind <- sort(y, index.return=TRUE)$ix ind <- ind[(n-id.n+1):n] xrange<-range(y) adj <- (xrange[2]-xrange[1])/20 ltext(x[ind] + adj, y[ind] + adj, ind, cex=1.0) } } myPanel.qchi <- function(x, y, subscripts, cutoff, ...) { y <- sort(y, index.return=TRUE) iy <- y$ix y <- y$x panel.xyplot(x, y, ...) panel.abline(0,1,lty="dashed") n <- length(y) id.n <- length(which(y>cutoff)) if(id.n > 0){ ind <- (n-id.n+1):n xrange<-range(y) adj <- (xrange[2]-xrange[1])/50 ltext(x[ind] + adj, y[ind] + adj, iy[ind], cex=1.0) } } n<-nrow(X) p <- ncol(X) cutoff <- sqrt(qchisq(0.975, p)) mm <- covMcd(X) dd1 <- sqrt(mm$mah) # robust distances vv<-cov.wt(X) dd2 <- sqrt(mahalanobis(X,vv$center,vv$cov)) # classical distances dd<-c(dd1,dd2) # both robust and classical distances gr <- as.factor(c(rep(1,n), rep(2,n))) levels(gr)[1] <- "Robust" levels(gr)[2] <- "Classical" qq <- sqrt(qchisq(((1:n)-1/3)/(n+1/3), p)) ind.dd <- c(1:n, 1:n) ind.qchi <- c(qq, qq) dplot <- xyplot(dd~ind.dd|gr, cutoff=cutoff, panel = myPanel.dd, xlab="Index", ylab="Mahalanobis distance", main="Distance Plot", col = "darkred", scales=list(cex=1.0)) qplot <- xyplot(dd~ind.qchi|gr, cutoff=cutoff, panel = myPanel.qchi, xlab="Quantiles of the chi-squared distribution", ylab="Mahalanobis distance", main="Chi-Square QQ-Plot", col = "darkred", scales=list(cex=1.0)) plot(dplot, split = c(1, 1, 2, 1), more = TRUE) plot(qplot, split = c(2, 1, 2, 1), more = FALSE) @ \begin{center} \begin{figure}[h!] \setkeys{Gin}{width=1.0\textwidth} \includegraphics{ooframework-ex-cov-plot-lattice} \caption{Distance plot and Chi-square Q-Q plot of the robust and classical distances.} \label{oof-fig:cov-lattice} \end{figure} \end{center} The next plot shown in Figure~\ref{oof-fig:cov-ellipse} presents a scatter plot of the data on which the 97.5\% robust and classical confidence ellipses are superimposed. Currently this plot is available only for bivariate data. The observations with distances larger than $\sqrt{\chi_{p,0.975}^2}$ are identified by their subscript. In the right panel of Figure~\ref{oof-fig:cov-ellipse} a \code{screeplot} of the \code{milk} data set is shown, presenting the robust and classical eigenvalues. <>= ## ## a) scatter plot of the data with robust and classical confidence ellipses. ## b) screeplot presenting the robust and classical eigenvalues ## data("milk") usr<-par(mfrow=c(1,2)) plot(CovMcd(delivery[,1:2]), which="tolEllipsePlot", classic=TRUE) plot(CovMcd(milk), which="screeplot", classic=TRUE) par(usr) @ \begin{center} \begin{figure}[h!] \setkeys{Gin}{width=1.0\textwidth} \includegraphics{ooframework-ex-cov-plot-ellipse} \caption{Robust and classical tolerance ellipse for the \code{delivery} data and robust and classical screeplot for the \code{milk} data.} \label{oof-fig:cov-ellipse} \end{figure} \end{center} \subsection{Principal component analysis} \label{oof-sec:pca} Principal component analysis is a widely used technique for dimension reduction achieved by finding a smaller number $q$ of linear combinations of the originally observed $p$ variables and retaining most of the variability of the data. Thus PCA is usually aiming at a graphical representation of the data in a lower dimensional space. The classical approach to PCA measures the variability through the empirical variance and is essentially based on computation of eigenvalues and eigenvectors of the sample covariance or correlation matrix. Therefore the results may be extremely sensitive to the presence of even a few atypical observations in the data. These discrepancies will carry over to any subsequent analysis and to any graphical display related to the principal components such as the biplot. %%% Example - hbk data The following example in Figure~\ref{oof-fig:pca-hbk} illustrates the effect of outliers on the classical PCA. The data set \code{hbk} from the package \pkg{robustbase} consists of 75 observations in 4 dimensions (one response and three explanatory variables) and was constructed by Hawkins, Bradu and Kass in 1984 for illustrating some of the merits of a robust technique \citep[see][]{rousseeuw-leroy}. The first 10 observations are bad leverage points, and the next four points are good leverage points (i.e., their $\xv$ are outlying, but the corresponding $y$ fit the model quite well). We will consider only the X-part of the data. The left panel shows the plot of the scores on the first two classical principal components (the first two components account for more than 98\% of the total variation). The outliers are identified as separate groups, but the regular points are far from the origin (where the mean of the scores should be located). Furthermore, the ten bad leverage points 1--10 lie within the 97.5\% tolerance ellipse and influence the classical estimates of location and scatter. The right panel shows the same plot based on robust estimates. We see that the estimate of the center is not shifted by the outliers and these outliers are clearly separated by the 97.5\% tolerance ellipse. \begin{center} \begin{figure}[h!] \setkeys{Gin}{width=1.0\textwidth} <>= ## ## Principal Component Analysis example: ## Plot of the first two principal components of the ## Hawkins, Bradu and Kass data set: classical and robust ## par(mfrow=c(1,2)) pca <- PcaClassic(hbk.x, k=2) cpca <- list(center=c(0,0), cov=diag(pca@eigenvalues), n.obs=pca@n.obs) rrcov:::.myellipse(pca@scores, xcov=cpca, main="Classical", xlab="PC1", ylab="PC2", ylim=c(-30,30), id.n=0) abline(v=0) abline(h=0) text(-29,6,labels="1-10", cex=0.8) text(-37,-13,labels="14", cex=0.8) text(-31,-5,labels="11-13", cex=0.8) hub <- PcaHubert(hbk.x, k=2, mcd=TRUE) chub <- list(center=c(0,0), cov=diag(hub@eigenvalues), n.obs=hub@n.obs) rrcov:::.myellipse(hub@scores, xcov=chub, main="Robust (MCD)", xlab="PC1", ylab="PC2", xlim=c(-10,45), ylim=c(-25,15), id.n=0) abline(v=0) abline(h=0) text(30,-9,labels="1-10", cex=0.8) text(36,-11,labels="11", cex=0.8) text(42,-4,labels="12", cex=0.8) text(41,-11,labels="13", cex=0.8) text(44,-15,labels="14", cex=0.8) @ \caption{Plot of the first two principal components of the Hawkins, Bradu and Kass data set: classical and robust.} \label{oof-fig:pca-hbk} \end{figure} \end{center} PCA was probably the first multivariate technique subjected to robustification, either by simply computing the eigenvalues and eigenvectors of a robust estimate of the covariance matrix or directly by estimating each principal component in a robust manner. Different approaches to robust PCA are briefly presented in the next subsections with the emphasis on those methods which are available in the framework. Details about the methods and algorithms can be found in the corresponding references. The object model is described and examples are given. \subsubsection{PCA based on robust covariance matrix (MCD, OGK, MVE, etc.)} The most straightforward and intuitive method to obtain robust PCA is to replace the classical estimates of location and covariance by their robust analogues. In the earlier works M~estimators of location and scatter were used for this purpose \citep[see][]{devlin:81, campbell:80} but these estimators have the disadvantage of low breakdown point in high dimensions. To cope with this problem \citet{naga:1990} used the MVE estimator and \citet{todorov-compstat:94} used the MCD estimator. \citet{croux-Haesbroeck:2000} investigated the properties of the MCD estimator and computed its influence function and efficiency. The package \pkg{stats} in base \proglang{R} contains the function \code{princomp()} which performs a principal components analysis on a given numeric data matrix and returns the results as an object of \proglang{S}3 class \code{princomp}. This function has a parameter \code{covmat} which can take a covariance matrix, or a covariance list as returned by \code{cov.wt}, and if supplied, it is used rather than the covariance matrix of the input data. This allows to obtain robust principal components by supplying the covariance matrix computed by \code{cov.mve} or \code{cov.mcd} from the package \pkg{MASS}. One could ask why is it then necessary to include such type of function in the framework (since it already exists in the base package). The essential value added of the framework, apart from implementing many new robust multivariate methods is the unification of the interfaces by leveraging the object orientation provided by the \proglang{S}4 classes and methods. The function \code{PcaCov()} computes robust PCA by replacing the classical covariance matrix with one of the robust covariance estimators available in the framework---MCD, OGK, MVE, M, S or Stahel-Donoho, i.e., the parameter \code{cov.control} can be any object of a class derived from the base class \code{CovControl}. This control class will be used to compute a robust estimate of the covariance matrix. If this parameter is omitted, MCD will be used by default. Of course any newly developed estimator following the concepts of the framework can be used as input to the function \code{PcaCov()}. \subsubsection{Projection pursuit methods} The second approach to robust PCA uses \textit{projection pursuit} (PP) and calculates directly the robust estimates of the eigenvalues and eigenvectors. Directions are seeked for, which maximize the variance (classical PCA) of the data projected onto them. Replacing the variance with a robust measure of spread yields robust PCA. Such a method was first introduced by \citet{li:1985} using an M~estimator of scale $S_n$ as a \textit{projection index (PI)}. They showed that the PCA estimates inherit the robustness properties of the scale estimator $S_n$. Unfortunately, in spite of the good statistical properties of the method, the algorithm they proposed was too complicated to be used in practice. A more tractable algorithm in these lines was first proposed by \citet{croux-Ruiz-Gazen:1996} and later improved by \citet{croux-Ruiz-Gazen:2005}. To improve the performance of the algorithm for high dimensional data a new improved version was proposed by \citet{croux-filzmoser-oliveira-pppca}. The latter two algorithms are available in the package \pkg{pcaPP} \citep[see][]{filzmoser-pcaPP} as functions \code{PCAproj()} and \code{PCAgrid()}. In the framework these methods are represented by the classes \code{PcaProj} and \code{PcaGrid}. Their generating functions provide simple wrappers around the original functions from \pkg{pcaPP} and return objects of the corresponding class, derived from \code{PcaRobust}. A major advantage of the PP-approach is that it searches for the eigenvectors consecutively and in case of high dimensional data when we are interested in only the first one or two principal components this results in reduced computational time. Even more, the PP-estimates cope with the main drawback of the covariance-based estimates---they can be computed for data matrices with more variables than observations. \subsubsection{Hubert method (ROBPCA)} The PCA method proposed by \citet{hubert-ROBPCA:2005} tries to combine the advantages of both approaches---the PCA based on a robust covariance matrix and PCA based on projection pursuit. A brief description of the algorithm follows, for details see the relevant references \citep{hubert:2008}. Let $n$ denote the number of observations, and $p$ the number of original variables in the input data matrix $\v{X}$. The ROBPCA algorithm finds a robust center $\mv$ of the data and a loading matrix $\v{P}$ of dimension $p \times k$. Its columns are orthogonal and define a new coordinate system. The scores $\v{T}$, an $n \times k$ matrix, are the coordinates of the centered observations with respect to the loadings: \begin{equation} \label{oof-eq:pca-scores} \v{T}=(\v{X}-\v{1}\mv^{\top})\v{P} \end{equation} where $\v{1}$ is a column vector with all $n$ components equal to 1. The ROBPCA algorithm yields also a robust covariance matrix (often singular) which can be computed as \begin{equation} \label{oof-eq:pca-S} \v{S}=\v{PLP}^{\top} \end{equation} where $\v{L}$ is the diagonal matrix with the eigenvalues $l_1, \dots, l_k$. This is done in the following three main steps: \paragraph{Step 1:} The data are preprocessed by reducing their data space to the subspace spanned by the $n$ observations. This is done by singular value decomposition of the input data matrix. As a result the data are represented in a space whose dimension is $rank(\v{X})$, being at most $n-1$ without loss of information. \paragraph{Step 2:} In this step a measure of outlyingness is computed for each data point. For this purpose the data points are projected on the $n(n-1)/2$ univariate directions through each two points. If $n$ is too large, \code{maxdir} directions are chosen at random (\code{maxdir} defaults to 250 but can be changed by the user). On every direction the univariate MCD estimator of location and scale is computed and the standardized distance to the center is measured. The largest of these distances (over all considered directions) is the outlyingness measure of the data point. The $h$ data points with smallest outlyingness measure are used to compute the covariance matrix $\v{\Sigma}_h$ and to select the number $k$ of principal components to retain. This is done by finding $k$ such that $l_k/l_1 \ge 10^{-3}$ and $\Sigma_{j=1}^k l_j/\Sigma_{j=1}^r l_j \ge 0.8$. Alternatively the number of principal components $k$ can be specified by the user after inspecting the scree plot. \paragraph{Step 3:} The data points are projected on the $k$-dimensional subspace spanned by the $k$ eigenvectors corresponding to the largest $k$ eigenvalues of the matrix $\v{\Sigma}_h$. The location and scatter of the projected data are computed using the reweighted MCD estimator, and the eigenvectors of this scatter matrix yield the robust principal components. \subsubsection{Spherical principal components (SPC)} The spherical principal components procedure was first proposed by \cite{locantore:1999} as a method for functional data analysis. The idea is to perform classical PCA on the data, projected onto a unit sphere. The estimates of the eigenvectors are consistent if the data are elliptically distributed \cite[see][]{boente-fraiman:1999} and the procedure is extremely fast. Although not much is known about the efficiency of this method, the simulations of \cite{maronna:2005} show that it has very good performance. If each coordinate of the data is normalized using some kind of robust scale, like for example the MAD, and then SPC is applied, we obtain ``elliptical PCA'', but unfortunately this procedure is not consistent. \subsubsection{Object model for robust PCA and examples} \label{oof-sec:pca-objmodel} The object model for the \proglang{S}4 classes and methods implementing the principal component analysis methods follows the proposed class hierarchy given in Section~\ref{oof-sec:objmodel} and is presented in Figure~\ref{fig:uml-pca}. \begin{figure}[h!] \begin{center} \includegraphics[width=\textwidth]{PcaModel} \caption{Object model for robust Principal Component Analysis.} \label{fig:uml-pca} \end{center} \end{figure} The abstract class \code{Pca} serves as a base class for deriving all classes representing classical and robust principal components analysis methods. It defines the common slots and the corresponding accessor methods, provides implementation for the general methods like \code{show()}, \code{plot()}, \code{summary()} and \code{predict()}. The slots of \code{Pca} hold some input or default parameters like the requested number of components as well as the results of the computations: the eigenvalues, the loadings and the scores. The \code{show()} method presents brief results of the computations, and the \code{predict()} method projects the original or new data to the space spanned by the principal components. It can be used either with new observations or with the scores (if no new data are provided). The \code{summary()} method returns an object of class \code{SummaryPca} which has its own \code{show()} method. As in the other sections of the framework these slots and methods are defined and documented only once in this base class and can be used by all derived classes. Whenever new information (slots) or functionality (methods) are necessary, they can be defined or redefined in the particular class. Classical principal component analysis is represented by the class \code{PcaClassic} which inherits directly from \code{Pca} (and uses all slots and methods defined there). The function \code{PcaClassic()} serves as a constructor (generating function) of the class. It can be called either by providing a data frame or matrix or a formula with no response variable, referring only to numeric variables. Let us consider the following simple example with the data set \code{hbk} from the package \pkg{robustbase}. The code line \begin{Scode} R> PcaClassic(hbk.x) \end{Scode} can be rewritten as (and is equivalent to) the following code line using the formula interface \begin{Scode} R> PcaClassic(~ ., data = hbk.x) \end{Scode} The function \code{PcaClassic()} performs the standard principal components analysis and returns an object of the class \code{PcaClassic}. <>= ## ## Classical PCA ## pca <- PcaClassic(~., data=hbk.x) pca summary(pca) plot(pca) getLoadings(pca) @ The \code{show()} method displays the standard deviations of the resulting principal components, the loadings and the original call. The \code{summary()} method presents the importance of the calculated components. The \code{plot()} draws a PCA diagnostic plot which is shown and described later. The accessor functions like \code{getLoadings()}, \code{getEigenvalues()}, etc. are used to access the corresponding slots, and \code{predict()} is used to rotate the original or new data to the space of the principle components. Another abstract class, \code{PcaRobust} is derived from \code{Pca}, which serves as a base class for all robust principal components methods. The classes representing robust PCA methods like \code{PcaHubert}, \code{PcaLocantore}, etc. are derived from \code{PcaRobust} and provide implementation for the corresponding methods. Each of the constructor functions \code{PcaCov()}, \code{PcaHubert()}, \code{PcaLocantore()}, \code{PcaGrid()} and \code{PcaProj()} performs the necessary computations and returns an object of the class containing the results. In the following example the same data are analyzed using the projection pursuit method \code{PcaGrid()}. <>= ## ## Robust PCA ## rpca <- PcaGrid(~., data=hbk.x) rpca summary(rpca) @ Similar to the function \code{PcaClassic()}, these functions can be called either with a data frame or matrix or by a formula interface. \subsubsection{Visualization of PCA results} \label{oof-sec:pca-vis} One of the most important applications of PCA, besides dimensionality reduction is data visualization. In the framework several plots for visualizing the results of the analysis are available. The \code{plot()} methods are implemented in the base class \code{Pca} and thus they are available for all objects derived from the class \code{Pca} no matter if classical and robust. The most straightforward plot is the \textit{screeplot} which plots the variances against the number of principal components (similar to the screeplot for the standard \code{prcomp()} and \code{princomp()} functions). It is a useful tool for determining the number of relevant principal components. An example of the classical and robust screeplot for the \code{milk} data from \pkg{robustbase} is shown in Figure~\ref{oof-fig:pca-screeplot}. <>= ## ## Screeplot for classical and robust PCA of the milk data set. ## usr <- par(mfrow=c(1,2)) screeplot(PcaClassic(milk), type="lines", main="Screeplot: classical PCA", sub="milk data") screeplot(PcaHubert(milk), type="lines", main="Screeplot: robust PCA", sub="milk data") par(usr) @ \begin{center} \begin{figure}[h!] \setkeys{Gin}{width=1.0\textwidth} \includegraphics{ooframework-ex-pca-plot-screeplot} \caption{Screeplot for classical and robust PCA of the \code{milk} data set.} \label{oof-fig:pca-screeplot} \end{figure} \end{center} Another plot borrowed from standard \proglang{R} is the \textit{biplot}. The biplot \citep{gabriel} represents both the observations and variables in the plane of (the first) two principal components allowing the visualization of the magnitude and sign of each variable's contribution to these principal components. Each observation (row of scores) is represented as a point in the biplot and each variable is represented as an arrow. The arrows graphically indicate the proportion of the original variance explained by the (first) two principal components and their direction indicates the relative loadings on these components. Figure~\ref{oof-fig:pca-biplot} shows an example of the robust biplot of the \code{un86} data set which contains seven socioeconomic variables observed for 73 countries. The data set is from World Statistics in Brief, Number 10, a 1986 UN publication. It was used in \citet{Daigle:1992} to illustrate a robust biplot method. <>= ## ## Robust biplot for the UN86 data ## data("un86") set.seed(9) usr<-par(mfrow=c(1,2)) biplot(PcaCov(un86, corr=TRUE, cov.control=NULL), main="Classical biplot", col=c("gray55", "red")) biplot(PcaCov(un86, corr=TRUE), main="Robust biplot", col=c("gray55", "red")) par(usr) @ \begin{center} \begin{figure}[h!] \setkeys{Gin}{width=1.0\textwidth} \includegraphics{ooframework-ex-pca-plot-biplot} \caption{Classical (left panel) and robust (right panel) biplot for the \code{UN86} data.} \label{oof-fig:pca-biplot} \end{figure} \end{center} %% diagnostic plot (outlier map) In the context of PCA \citet{hubert-ROBPCA:2005} defined a \textit{diagnostic plot} or \textit{outlier map} which helps to distinguish between the regular observations and the different types of outliers. This plot is based on the \textit{score distances} and \textit{orthogonal distances} computed for each observation. The score distances are given by \begin{equation} \label{oof-eq:pca-SD} SD_i=\sqrt{\sum_{j=1}^k{\frac{t_{ij}^2}{l_j}}},~~~~ i=1,\ldots,n \end{equation} where $t_{ij}$ are the elements of the scores from (\ref{oof-eq:pca-scores}) and $l_j$ are the eignevalues (the diagonal elements of the matrix $\v{L}$ in (\ref{oof-eq:pca-S})). The orthogonal distances $OD_i$ of each observation to the subspace spanned by the first $k$ ($1\le k \le r$, $r$ is the rank of the data) principal components are defined by \begin{equation} \label{oof-eq:pca-OD} OD_i=||\xv_i - \hat{\muv} - \v{P}^{(k)}\tv_i^{(k)}||,~~~~ i=1,\ldots,n \end{equation} where $\xv_i$ denotes the $i$th observation, $\hat{\muv}$ is the estimated center of the data, $\tv_i^{(k)}$ is the $i$th score vector in the space of the first $k$ principal components and the matrix $\v{P}^{(k)}$ contains the first $k$ estimated eigenvectors in its columns. The diagnostic plot is constructed by plotting the score distances on the horizontal axis, the orthogonal distances on the vertical axis and drawing two cutoff lines which will help to classify the observations. The cutoff value on the horizontal axis (for the score distances) is taken as the 97.5\% quantile of $\chi_k^2$ distribution, i.e., $c_h=\sqrt{\chi^2_{k,0.975}}$. For the cutoff value on the vertical axis (for the orthogonal distances) the Wilson-Hilferty transformation for a $\chi^2$ distribution is used (which assumes that the $OD_i$ to the power of 2/3 are approximately normally distributed). The parameters $\mu$ and $\sigma$ of the normal distribution can be estimated by the median and MAD of the values $OD_i^{2/3}$, and the critical value can be taken as $c_v=(\hat{\mu} + \hat{\sigma}z_{0.975})^{3/2}$ where $z_{0.975}$ is the the 97.5\% quantile of the standard normal distribution. An example of the classical and robust diagnostic plot for the \code{hbk} data set from \pkg{robustbase} is shown in Figure~\ref{oof-fig:pca-diagplot}. <>= ## ## An example of the classical and robust diagnostic ## plot for the hbk data set ## usr<-par(mfrow=c(1,2)) plot(PcaClassic(hbk.x, k=2), sub="data set: hbk, k=2") plot(PcaHubert(hbk.x, k=2), sub="data set: hbk, k=2") par(usr) @ \begin{center} \begin{figure}[h!] \setkeys{Gin}{width=1.0\textwidth} \includegraphics{ooframework-ex-pca-plot-diagplot} \caption{Classical and robust diagnostic plot for the \code{hbk} data with $k=2$.} \label{oof-fig:pca-diagplot} \end{figure} \end{center} If $k=p$ the orthogonal distances are not meaningful and the diagnostic plot shows a simple distance plot of the score distances (distances vs index). An example is shown in Figure~\ref{oof-fig:pca-distplot}. <>= ## ## If k=p the orthogonal distances are not meaningful and ## simple distance plot of the score distances will be shown ## usr<-par(mfrow=c(1,2)) plot(PcaClassic(hbk.x, k=3), sub="data set: hbk.x, k=3") plot(PcaHubert(hbk.x, k=3), sub="data set: hbk.x, k=3") par(usr) @ \begin{center} \begin{figure}[h!] \setkeys{Gin}{width=1.0\textwidth} \includegraphics{ooframework-ex-pca-plot-distplot} \caption{Classical and robust diagnostic plot for the x-part of the \code{hbk} data set with $k=3=p$.} \label{oof-fig:pca-distplot} \end{figure} \end{center} \subsection{Linear and quadratic discriminant analysis} \label{oof-sec:lda} The problem of discriminant analysis arises when one wants to assign an individual to one of $g$ populations at the basis of a $p$-dimensional feature vector $\xv$. Let the $p$-dimensional random variable $\xv_k$ come from a population $\pi_k$ with underlying density $\v{f}_k$. Further let the prior probability of group $k$, i.e., the probability that an individual comes from population $\pi_k$ be $\alpha_k$, $\Sigma_{k=1}^g \alpha_k = 1$. The prior probabilities $\alpha_k$ are usually estimated by the empirical frequencies $n_k$ in the $k$-th group of the training set, i.e., $\hat{\alpha}_k=n_k/\Sigma_{j=1}^gn_j$. Then the Bayesian discriminant rule assigns an observation $\xv$ to that population $\pi_k$ for which the expression $\ln(\alpha_k \v{f}_k(\xv))$ is maximal over all groups $k=1,\ldots,g$. Usually it is assumed that the $k$ populations $\pi_k$ are $p$-dimensional normally distributed, \begin{equation} \label{oof-eq:discrim-distr} \pi_k \sim N({\muv}_k,\v{\Sigma}_k)~~~~~k=1,\ldots,g. \end{equation} With this assumption the discriminant rule is equivalent to maximizing the discriminant scores $D_k(\xv)$ given by \begin{equation} \label{oof-eq:QDA} D_k(\xv) = -\frac{1}{2}\ln|\v{\Sigma}_k| - \frac{1}{2}(\xv-\muv_k)^{\top}\v{\Sigma}_k^{-1}(\xv-\muv_k) + \ln(\alpha_k)~~~~~(k=1,\ldots,g), \end{equation} and individual $\xv$ is assigned to $\pi_k$ if \begin{equation} \label{oof-eq:QDA-rule} D_k(\xv)=\arg\max_j D_j(\xv). \end{equation} The application of the discrimination rule given by Equations~(\ref{oof-eq:QDA}) and (\ref{oof-eq:QDA-rule}) is referred to as quadratic discriminant analysis (QDA), since the groups are separated by quadratic boundaries. If it is further assumed that all group covariance matrices are equal $(\v{\Sigma}_{1}= \ldots= \v{\Sigma}_g=\v{\Sigma})$, then the overall probability of misclassification is minimized by assigning a new observation $\xv$ to population $\pi_k$ which maximizes \begin{equation} \label{oof-eq:LDA} %%%%%%%%d_k(\xv)=\frac{1}{2}(\xv-\muv_k)^{\top}\v{\Sigma}^{-1}(\xv-\muv_k) + \ln(\alpha_k)~~~~~(k=1,\ldots,g). d_k(\xv)=\xv^{\top}\v{\Sigma}^{-1}\muv_k - \frac{1}{2}\muv_k^{\top}\v{\Sigma}^{-1}\muv_k + \ln(\alpha_k)~~~~~(k=1,\ldots,g). \end{equation} The application of the discriminant rule given by Equation~(\ref{oof-eq:LDA}) is referred to as linear discriminant analysis (LDA), since the scores $d_k(\xv)$ are linear in $\xv$. If the means $\muv_k, k=1,\ldots,g$, and the common covariance matrix $\v{\Sigma}$ are unknown, which is usually the case, a training set consisting of samples drawn from each of the populations is required. In classical QDA and LDA the sample group means and sample covariance matrices are used to estimate $\muv_k$, $\v{\Sigma}_k$ and $\v{\Sigma}$. The prior probabilities can be estimated by the relative frequencies of observations in each particular group. Both QDA and LDA using the classical estimates in (\ref{oof-eq:QDA}) and (\ref{oof-eq:LDA}) are vulnerable to the presence of outliers. The problem of the non-robustness of the classical estimates in the setting of the quadratic and linear discriminant analysis has been addressed by many authors: \citet*{todorov:90, todorov:94} replaced the classical estimates by MCD estimates; \citet*{chork} used MVE instead; \citet*{hawkins:97} defined the minimum within-group covariance determinant estimator (MWCD) especially for the case of linear discriminant analysis; \citet*{he:2000} and \citet*{croux-dehon:01} used S~estimates; \citet*{hubert:04} applied the MCD estimates computed by the FAST-MCD algorithm. For a recent review and comparison of these methods see \citet{todorov-roblda}. A robust version of quadratic discriminant analysis can be obtained by substituting the parameters $\muv_k$, $\v{\Sigma}_k$ by their robust estimates. For this purpose the reweighted MCD estimates, S~estimates or OGK can be used. In the case of linear discriminant analysis a robust version of the common covariance matrix $\v{\Sigma}$ is necessary. There are several methods for estimating the common covariance matrix based on a high breakdown point estimator which are considered in one of the next subsections. \subsubsection{Object model for robust LDA and QDA} The object model for the \proglang{S}4 classes and methods implementing the linear and quadratic discriminant analysis methods follows the proposed class hierarchy given in Section~\ref{oof-sec:objmodel} and is presented in Figure~\ref{fig:uml-lda-qda}. \begin{figure}[h!] \begin{center} \includegraphics[width=\textwidth]{DAModel} \caption{Object models for robust linear discriminant analysis and quadratic discriminant analysis.} \label{fig:uml-lda-qda} \end{center} \end{figure} The abstract classes \code{Lda} and \code{Qda} serve as base classes for deriving all classes representing classical and robust methods for linear and quadratic discriminant analysis methods. They define the common slots and the corresponding accessor methods, provide implementation for the general methods like \code{show()}, \code{plot()}, \code{summary()} and \code{predict()}. This base classes also host several utility functions which are not directly exported but are documented and can be used by quoting the namespace. The slots of \code{Lda} hold some input or default parameters like the prior probabilities, the original data matrix and the grouping variable as well as the results of the computations: the group means and the common covariance matrix, the linear discriminant functions and the corresponding constants. The \code{show()} method presents brief results of the computations, and \code{predict()} can be used either for classifying new observations or for the evaluation of the discriminant rules on the basis of the training sample. The method \code{predict()} returns an object of class \code{PredictLda} which has its own \code{show()} method to print the results of the classification or evaluation. The \code{summary()} method returns an object of class \code{SummaryLda} which has its own \code{show()} method. As in the other sections of the framework these slots and methods are defined and documented only once in this base class and can be used by all derived classes. Whenever new data (slots) or functionality (methods) are necessary, they can be defined or redefined in the particular class. Classical linear discriminant analysis is represented by the class \code{LdaClassic} which inherits directly from \code{Lda} (and uses all slots and methods defined there). The function \code{LdaClassic()} serves as a constructor (generating function) of the class. It can be called either by providing a data frame or matrix and a grouping variable (factor) or a formula specifying the model to be used. Let us consider the following simple example with the data set \code{diabetes}: the grouping variable is \code{diabetes$group} and the three explanatory variables are \code{glucose}, \code{insulin} and \code{sspg}. The code \begin{Scode} R> x <- diabetes[, c("glucose", "insulin", "sspg")] R> grpvar <- diabetes$group R> LdaClassic(x, grpvar) \end{Scode} can be rewritten as (and is equivalent to) the following code using the formula interface: \begin{Scode} R> LdaClassic(group ~ ., data = diabetes) \end{Scode} The function \code{LdaClassic()} performs standard linear discriminant analysis and returns an object of class \code{LdaClassic}. Another abstract class, \code{LdaRobust} is derived from \code{Lda}, which serves as a base class for all robust linear discriminant analysis methods. The only slot added in this class is a character variable specifying the robust method to be used. The class \code{Linda} is derived from \code{LdaRobust} and provides implementation for all methods for robust LDA currently available in the framework. If we wanted to be precisely object oriented, we should define a separate class for each robust method---for example \code{LdaRobustMcd}, \code{LdaRobustFsa}, etc. but this would lead to explosion of the necessary code and documentation. The constructor function \code{Linda()} takes a character parameter \code{method} specifying which robust location and scatter estimator to use and how to compute the common covariance matrix and returns an object of class \code{Linda}. Similarly as the function \code{LdaClassic()}, \code{Linda()} can be called either with a data matrix and grouping variable or by a formula interface. \subsubsection{Computing the common covariance matrix} \label{oof-sec:common-cov} The easiest way to estimate the common covariance matrix $\v{\Sigma}$ is to obtain the estimates of the group means $\muv_k$ and group covariance matrices $\v{\Sigma}_k$ from the individual groups as $(\mv_k,\v{C}_k), k=1,\ldots,g$, and then pool the estimates $\v{C}_k, k=1,\ldots,g$ to yield the common covariance matrix \begin{equation} \v{C} = {\sum_{k=1}^g{n_k\v{C}_k} \over \sum_{k=1}^g{n_k-g}}. \end{equation} This method, using MVE and MCD estimates, was proposed by \citet{todorov:90, todorov:94} and was also used, based on the MVE estimator by \citet*{chork}. \newline \citet*{croux-dehon:01} applied this procedure for robustifying linear discriminant analysis based on S~estimates. A drawback of this method is that the same trimming proportions are applied to all groups which could lead to a loss of efficiency if some groups are outlier free. We will denote this method as ``$A$'' and the corresponding estimator as XXX-A. For example, in the case of the MCD estimator this will be MCD-A. Another method was proposed by \citet*{he:2000} for the S~estimates and was later adapted by \citet*{hubert:04} for the MCD estimates. Instead of pooling the group covariance matrices, the observations are centered and pooled to obtain a single sample for which the covariance matrix is estimated. It starts by obtaining the individual group location estimates $\tv_k, k=1,\ldots,g$, as the reweighted MCD location estimates of each group. These group means are swept from the original observations $\xv_{ik}~(i=1,\ldots,n_k;~k=1,\ldots,g)$ to obtain the centered observations \begin{eqnarray} \v{Z} = \{\zv_{ik}\}, ~~~~~\zv_{ik} = \xv_{ik} - \tv_k. \end{eqnarray} The common covariance matrix $\v{C}$ is estimated as the reweighted MCD covariance matrix of the centered observations $\v{Z}$. The location estimate $\deltav$ of $\v{Z}$ is used to adjust the group means $\mv_k$ and thus the final group means are \begin{equation} \mv_k = {\tv_k + \deltav}. \end{equation} This process could be iterated until convergence, but since the improvements from such iterations are negligible \citep[see][]{ he:2000, hubert:04} we are not going to use it. This method will be denoted by ``$B$'' and as already mentioned, the corresponding estimator as XXX-B, for example MCD-B. The third approach is to modify the algorithm for high breakdown point estimation itself in order to accommodate the pooled sample. \citet*{he:2000} modified Ruperts's SURREAL algorithm for S~estimation in case of two groups. \citet*{hawkins:97} defined the minimum within-group covariance determinant estimator which does not apply the same trimming proportion to each group but minimizes directly the determinant of the common within groups covariance matrix by pairwise swaps of observations. Unfortunately their estimator is based on the Feasible Solution Algorithm \citep[see][and the references therein]{hawkins:97}, which is extremely time consuming as compared to the FAST-MCD algorithm. \citet*{hubert:04} proposed a modification of this algorithm taking advantage of the FAST-MCD, but it is still necessary to compute the MCD for each individual group. This method will be denoted by MCD-C. Using the estimates $\mv^0_k$ and $\v{C}_0$ obtained by one of the methods, we can calculate the initial robust distances \citep{Rousseeuw-van-Zomeren} \begin{equation} RD^0_{ik}= \sqrt{(\xv_{ik}-\mv^0_k)^{\top}\v{C}_0^{-1}(\xv_{ik}-\mv^0_k)}. \end{equation} With these initial robust distances we can define a weight for each observation $\xv_{ik}, ~ i=1, \ldots , n_k$ and $k=1, \ldots, g$, by setting the weight to $1$ if the corresponding robust distance is less or equal to a suitable cut-off, usually $\sqrt{\chi^2_{p,0.975}}$, and to 0 otherwise, i.e., \begin{equation} \label{oof-eq:mdiv} w_{ik} = \begin{cases} 1&RD^0_{ik} \leq \sqrt{\chi^2_{p,0.975}} \\ 0&\text{otherwise}.\\ \end{cases} \end{equation} With these weights we can calculate the final reweighted estimates of the group means, $\mv_k$, and the common within-groups covariance matrix, $\v{C}$, which are necessary for constructing the robust classification rules, \begin{eqnarray} \mv_k &=& (\sum^{n_k}_{i=1}{w_{ik}\xv_{ik}})/\nu_k, \nonumber\\ \v{C} &=& \frac{1}{\nu-g}\sum^g_{k=1}\sum^{n_k}_{i=1}{w_{ik}(\xv_{ik}-\mv_k)(\xv_{ik}-\mv_k)^{\top}}, \end{eqnarray} where $\nu_k$ are the sums of the weights within group $k$, for $k=1,\ldots,g$, and $\nu$ is the total sum of weights, \begin{equation} \nu_k =\sum^{n_k}_{i=1}{w_{ik}}, ~~~~\nu = \sum^{g}_{k=1}{\nu_k}. \nonumber \end{equation} \subsubsection{Evaluation of the discriminant rules} In order to evaluate and compare different discriminant rules, their discriminating power has to be determined in the classification of future observations, i.e., we need an estimate of the overall probability of misclassification. A number of methods to estimate this probability exists in the literature---see for example \citet{lachenbruch:1975}. The \textit{apparent error rate} (known also as resubstitution error rate or reclassification error rate) is the most straightforward estimator of the actual error rate in discriminant analysis and is calculated by applying the classification criterion to the same data set from which it was derived. The number of misclassified observations for each group is divided by the group sample size. An estimate of the apparent error rate is calculated by the method \code{predict()} of the class \code{Lda}. Examples are given in the next section. It is well known that this method is too optimistic (the true error is likely to be higher). If there are plenty of observations in each class, the error rate can be estimated by splitting the data into training and validation set. The first one is used to estimate the discriminant rules and the second to estimate the misclassification error. This method is fast and easy to apply but it is wasteful of data. Another method is the \textit{leave-one-out} \textit{cross-validation} \citep{lachenbruch-michey:68} which proceeds by removing one observation from the data set, estimating the discriminant rule, using the remaining $n-1$ observations and then classifying this observation with the estimated discriminant rule. For the classical discriminant analysis there exist updating formulas which avoid the re-computation of the discriminant rule at each step, but no such formulas are available for the robust methods. Thus the estimation of the error rate by this method can be very time consuming depending on the size of the data set. Nevertheless, \pkg{rrcov} provides an (internal, not exported) function \code{rrcov:::.CV()} which calculates the leave-one-out cross-validation error rate by ``brute force'', but the user should be aware that its usage is appropriate only for moderate data sets. An improvement will be the implementation of a cross-validation technique similar to the one proposed by \citet{hubert:2007-CV}. \subsubsection{Example: Diabetes data} \label{oof:sec-diabetes} As an example for demonstrating the usage of the robust discriminant analysis classes and methods we use the \code{diabetes} data set, which was analyzed by \citet*{reaven-miller} in an attempt to examine the relationship between chemical diabetes and overt diabetes in 145 nonobese adult subjects. Their analysis was focused on three primary variables and the 145 individuals were classified initially on the basis of their plasma glucose levels into three groups: normal subjects, chemical diabetes and overt diabetes. This data set was also analyzed by \citet*{hawkins:97} in the context of robust linear discriminant analysis. The data set is available in several \proglang{R} packages: \code{diabetes} in package \pkg{mclust} \citep{mclust}, \code{chemdiab} in package \pkg{locfit} \citep{locfit} and \code{diabetes.dat} in \pkg{Rfwdmv} \citep{Rfwdmv}. We are going to use the one from \pkg{mclust} in which the value of the second variable, $insulin$, on the 104th observation, is 45 while for the other data sets this value is 455 (note that 45 is more likely to be an outlier in this variable than 455). We start with bringing the data set \code{diabetes} from package \pkg{mclust} into the workspace by typing <>= data("diabetes") @ Using the package \pkg{lattice} \citep{Sarkar:2008} we produce a three dimensional cloud plot of the data (Figure~\ref{lda-cloud}). << lda-cloud, fig=FALSE>>= library("lattice") # load the graphical library ## set different plot symbols - important for black-and-white print sup.sym <- trellis.par.get("superpose.symbol") sup.sym$pch <- c(1,2,3,4,5) trellis.par.set("superpose.symbol", sup.sym) cloud.plt <- cloud(insulin ~ glucose + sspg, groups = group, data = diabetes, auto.key=TRUE) @ \begin{center} \begin{figure}[h!] << lda-cloud-fig, fig=TRUE>>= print(cloud.plt) @ \caption{Three dimensional scatter plot of the \code{diabetes} data.} \label{lda-cloud} \end{figure} \end{center} We will first apply the classical linear discriminant analysis as implemented in \code{LdaClassic()} by the formula interface of the function---the grouping variable is \code{class} and all the remaining variables in \code{diabetes} are used as predictor variables. The \code{show()} method will present the results of the computations: the group means, the (common) within group covariance matrix, the linear discriminant functions together with the corresponding constants. The prior probabilities (either provided by the user or estimated as a proportion of the groups) are also presented. << lda-classic>>= lda <- LdaClassic(group~glucose+insulin+sspg, data=diabetes) lda @ Now the \code{predict()} method can be used on the \code{Lda} object (\code{Lda} is the base class for both \code{LdaClassic} and \code{LdaRobust}) in order to classify new observations. The method returns an object of class \code{PredictLda} which has its own \code{show()} method. If no new data are supplied, the training sample will be reclassified and a classification table will be produced to estimate the apparent error rate of the classification rules. << lda-classic-predict>>= predict(lda) @ Robust linear discriminant analysis can be performed in a similar way but using the function \code{Linda} (which will create an object of class \code{Linda}). As before the \code{predict()} method called without new data returns a classification table of the training subsample. Using the internal convenience function \code{rrcov:::.AER()} we can calculate and print the apparent error rate (which now is equal to 0.1103 and is lower than the obtained with the classical LDA 0.1310). << lda-robust>>= rlda <- Linda(group~glucose+insulin+sspg, data=diabetes) rlda rlda.predict <- predict(rlda) cat("\nApparent error rate: ", round(rrcov:::.AER(rlda.predict@ct),4)) @ In the above example we did not specify which method for computing the common covariance matrix should be used (thus using the default method ``MCD-B'' described above). We could choose the method by providing the \code{method} parameter to the function \code{Linda()}. For example the following call \begin{Scode} R> rlda <- Linda(group~glucose+insulin+sspg, data = diabetes, method = "fsa") \end{Scode} will use the \citet*{hawkins:97} \textit{feasible solution algorithm} method. The variance-covariance structures of the three classes in the \code{diabetes} data set differ substantially and we can expect improved results if quadratic discriminant analysis is used. Robust quadratic discriminant analysis is performed by the function \code{QdaCov()} which will return an object of class \code{QdaCov}. << qda-robust>>= rqda <- QdaCov(group~glucose+insulin+sspg, data=diabetes) rqda rqda.predict <- predict(rqda) cat("\nApparent error rate: ", round(rrcov:::.AER(rqda.predict@ct),4)) @ The accuracy of the prediction improves compared to the linear discriminant analysis. \section{Conclusions} \label{oof-sec:conclusions} In this paper we presented an object oriented framework for robust multivariate analysis developed in the \proglang{S}4 class system of the programming environment \proglang{R}. The main goal of the framework is to support the usage, experimentation, development and testing of robust multivariate methods as well as simplifying comparisons with related methods. It minimizes the effort for performing any of the following tasks: \bi \item{application of the already existing robust multivariate methods for practical data analysis;} \item{implementation of new robust multivariate methods or variants of the existing ones;} \item{evaluation of existing and new methods by carrying out comparison studies.} \ei A major design goal was the openness to extensions by the development of new robust methods in the package \pkg{rrcov} or in other packages depending on \pkg{rrcov}. Further classes implementing robust multivariate methods like principal component regression and partial least squares will follow but the user is encouraged to develop own methods using the proposed reusable statistical design patterns. \section*{Acknowledgements} We wish to express our thanks to the organizers of and participants in the ``Robust Statistics and \proglang{R}'' workshops for the valuable comments and suggestions which were a major input for the development of this framework. We are also grateful to many people, notably Matias Salibian-Barrera, Victor Yohai, Kjell Konis, and Christophe Croux for the provided code. The careful review and constructive comments of the editor and the anonymous reviewers helped us to substantially improve the manuscript. The views expressed herein are those of the authors and do not necessarily reflect the views of the United Nations Industrial Development Organization (UNIDO). \bibliography{mybiblio} \end{document} rrcov/vignettes/AModel.pdf0000644000176200001440000002672412763517421015274 0ustar liggesusers%PDF-1.4 %Çì¢ 5 0 obj <> stream xœ­VYoÜF ~ׯà["qçÒÕ·ÔúÒí·¤(dí¬W…ޤë_’3ÒHk¶×Á^.ßüâ\‚ ÿ.›è—Ën‡H}úÛH¥Z€–R€ÌRú— èm´ýÙIb!&ÉÄGâ.âSáò÷•VF?BÍ®êUFÆšÈ$ÂÓ5ºø¬'œ’¥+*M@çŠ]vÝÝ׳¯ïàWøÞUì’BÉÑÙ¾îÆ¥ä'T>4MÑß{î•ûE‚}o7U9©ÿå~¡à‘èŒL|tq¼.•!8¢OΗçb{IþÛrìúEl$P(hб¯þ›õÙŸ sáQ0G«Ø UndÉ Tj¼@>ÆgT9.Fê´_*©ŽÂM„»Z~¼¨‹a¨Ê§Ðå½ÏýµÚ¬½TšòŸÉÜÓ§å?Fœ+LÜC‡<:^ä¥RS*ÕQ.M¼4þ øÀRŸe"y¦ì®¤/.Y„_(!î5ò¹¶9ÑxåKÔvtÑIRŠÙgh1 a«€ :“[ 龡Õ$9žã;ÍewsÆ'sÍ~ËéÊx韢‡ÚDŠ3Mt=ù(So›•{ÀÎàôœàöï·ÿgzÁí¡±}U.ž°“©…Ì¿bމ@ι•RN­œPÉIo/½^>ïÀF²Ö‚ÃPqNüØ£â%j„ ê¨Ä*¡UP{HÏ–¹zñtæ5ßÒ$RÒ˜ ò!Èaéï ÝÜpƒG‘‡òôÁ“‚Ÿ: /¦®ðŒ_RN)S«œé48Ftíò–æ>•s/Bú7žÎr_þùI=)ÄÜ‘¼-<«µ›wûªêÌ—I|\÷%?TÞq)ž7×^Å×GiWOì3^Cù/’›h¬cOŸ>œsù,žòŽ¡wŸª$¸§}¯r¥ÈŽ2Þ¸ž0!üB‰Ö¾5â»V\îlzþ/PãçÏKŽk8™È=]»Ùeò@kÍÓ–õ—´×'¤ÿ £®ÖÍÚZÑáòךœ “å¸ô%7ÃØå7Å`¡¤m¶] c1VÃX•E½˜Ð0hàTçöœUK·b5ÜÙº¦%ÉMµÝÚÞ¶#ô<Áâi¸Úá®w–µÊÒžáN è-´Ý´)·ç@:ŸŠrÝÆ… Ξïvã®´”EË:½­š}mºŒônmKS ¶‡¶«®Xk^¿§mû=,—ì¢ÝÀb·žFÜL5ýý¹Û¸còæ-‡éÕ`“U*cÄšÜÓ~`™,ÐÚ52R_^¡ðÅ_ùCλZØ6k[sLϼÖä¤.E)4k,^®ðÒõ„€À‹¢%„ÜX¨ZÄh;V©Í{®ða@ptm}ÏÀÜwõ}Óõû"¤co‹‘1âáÔ῞Ee×–½í¨>ŽžÚ¡ÀÑâx½‘µ]§Ô¬Á0цÇÌLòtgÕ@9Í%ÞxÔU0kVfzMοFý”šK‘‚tËÉÅ”øãšóXZ§ûlH†p3‡|f2õsæsô?ϸ> /Contents 5 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 4 0 R ] /Count 1 >> endobj 1 0 obj <> endobj 7 0 obj <>endobj 14 0 obj <> endobj 15 0 obj <> endobj 8 0 obj <> endobj 10 0 obj <> endobj 12 0 obj <> endobj 9 0 obj <> endobj 16 0 obj <>stream xœSkPTe>˲§U…mÍUÙýÒ Åñ–á%E.«IŠ (ê²{Nö,眕"…O¼!"nrÓó™È4N^JÓ2Ë´Íþ”ÌØÌ{èPöqDÿöïûÞç}Ÿç½j(?J£ÑG ¬›¼çËÒ96ÛèÖ)òh<ÆOÑbéïY½Yº*¾úÏ¡²9€ÂZàx }1¸—’ “ïïç*Ó4jZ4'¬LL ŸÍ»½›‘)¡©‘‘‘(Ý‹ž!(†Ù z“<62ïÎb\RJb$e2ÈÉr Š^–°jñR+š`]ºY#Ø8”à!ÚQˆðiä£j¬QBu0™žH6P‰¢ûÂÿÉR¿w€X÷CQYNCœÔöÞľÞXT<ËO”‘}Ot0–†)j O+{ûÎçÈçuJ­LQ94R~²—xÊ ?ô€¿æ.ŒƒC0N+O•ÏßÀS×%Ì]Ï…â™z%ðÞ< Ôý3w.šÛ.7=Â]z>ë–bö(þÆ‹Íi1©É¢ÍÂ%¥q)X¿ÌÑz ·þzh ‡>Ím•=l g™!z…R)uØê­Ø4G¦¥,HqMÅ‘z%øZäã«íõíçÌN9ØØñÙºX%8J¡ÞJf[€¡?ßo„º]¥é†Á$ù+$ùb•þ:l4V¶î9ƒOãsymüÉŒÖåu ñ<<‡[“ºdQš2‡ê•á]³H£‡ö\m§Y1Ó9Ì:a5Ö'2§:÷áòG,PÔmTÜô¾¦òšÕuM-‡Zð |4ï¿7¿l Þ &Nê &3 ƒÑ0AÈk†nùŽìgÜU³cÞ¯8¿S ž»h#³Þ¼žáñ*œô¹ãë¶0ÒÐs9ç@‘4jÃzii&W^•k.¨,Þ_Z«WBèíù¥Å¸¯=ºæ¬Ð,µm½„õðPwáÕoÍo×[¼° ûLM'>m7.vÏÙP\º­¤Hm6öÉ3û{-‹0Q Bo–±äˆþÎWßiÿê 6µ5¸S K ¶m´,R¾S¡Ÿáß]‡Êjpéöòö1I||²ùÔéú—ò0éU"Ë{aŠ2&,ƒ0R)œ…3FX@Ÿ?âunÞ^X”a1ôäÆ}äÌ…7—mÝ“«‡éôžÆÂŠ+p• ïÙQQV¡7t×°Ý'êGáÓÙ)Õí ÕuõzÃïÍ-õ—¿&ÆMÍîÆ MöªåXß7ôÙ®N¤ÈÓŒ-¨ƒ¹ô9\[|(¿ª°<çb~3çÍÉvq›Wa} tI>yI·¦Bµò4¹Á8>ãÕã”ñº8:'B÷=«ÜÛ^PR€ M+Z¸×í,?böýQPòaél’ò+î.«ÜUm¹mº_èþÝ•£}š¤•òéðŠ|J%´*7òf§¤¼‹M«²¾¬"!µ–ëð« Íé Ø–[âÅ^Óœ )nv4^é0ç[u/Ÿ¬.*|ðÂh*;'!\Å&rÎã ZívÜÝ×­ÉÂʵ–N¨Ôu*­äÖ.Tç«GÙz ‚ÈtY¥Zù”æùV×Ò  ㇀®* €¢þcX endstream endobj 11 0 obj <> endobj 17 0 obj <>stream xœUV{X×ß%dwU%]‘‹&Q|€Ryz} ˆ<ið‚‚DA@I ¼«`µpD«ÅJ©DA´­¢µŠ R­µ Ð"%ÕLÄÆ–[½WÛÙ|'|÷ž`_÷ûòÇÙ“™Ù™ùÍï7KSÖVMÓÌ‚ÌÔ„4ËÉMp¢…qVÂxQV™ö™òÅã)Å‘§#‘ÙXWQ`WFC²ø¢D4½ fCPzF~fjrJ¶Ü%:r…ëôénÝxΙ3G¾>ÿäÁIY©É*ùrÈMJKÏP&©²§*×çdÉ£TYr…<2)9'-!óÿ.)ŠrY¯Ú‘ž”‘´qiHfrVJdvjTÎòÜ-i yÊõr·7gÄÏõôrq¥¨‰Tµ„ ¦fPK©jµŒZH…RžÔ*Š £–S‹(o*š §|¨j&µ‚ZIEPT,µ˜ ¢hj$eKÙQ”eOI¨aÔpÊ•´ˆ²¦æR;©fz$Hï¡° °:jey‹òDU¢>ëTë.ñâmâÏÅß3qÌa¦éaG°Ø‹ì3.Œ«äŽr׸NNϽ6j˜ç°òaß ·‚3¶&w¤†UÁCM *Hç»qºø%ƒËMJ1¶apÅ Rü Óébø@Ããl Ol+¼‡UZÓÄg¬PÅãÉf7üÁMìÅ@ˆ¹zóìíó Sã;¨°,?À):²ç8ªEuåÇ?®9Vyüã(4ÙŽµšZˆìJQÛwöø÷Â>ƒäóNPò©¹ªXI×o-Û6(¤ø¿:AÎêÃ[¦øÅ*×H%ŸX’FvàÖCŸÑ‹„Íð‚ßscǧ[ê’uˆÃܱ5Ä~ýr˜£è†7Éf1…³Ö%#Î}y7Œ‡fÍÓÎËëÉlMÚ¢¦» ÂAƒHH ˆÍ`0)1Ïâ”A;œf²c~Pi€ f }hzÀ9=4éEpR8Çã©^q06LW˜Úÿ `‘ÏK<]¶×ŸÖâÇ`»e~î3"{@ö_jŒ2K0MþjºF7u"¡Ø¤ägãLJSÔ©RÉ8/Lc_¢Ç4LøîzmëÙÂ,Þ*$ðý_úâÑxä2_o÷ÅÀlï>zJŠÙ˜­´ô5£È4M@¼ |Ü5ع¢yiÑK%;#<a›úIÁ-Ë¾Ëø ÁBôüçãÍMgŠcw¦¨”K"RýÈ»'»á°Ä,L¸s+?ý´¬6³2íÃhŽ$ŽUj²$oßlð†ÞA2ÐŒU|/Ô0—£³ÚNO€_ž VX&“¼ F‘›#¸üYتàüj.ÉÄâ¹2É€÷²‡`v·†ºÒaíàÓC ‡`;¾{­àBêcß›®$«)olpÀÓ 0ltíÀTl³®NC1hí‰ôË[Nï:]z“+kçܹ׋8í½Ð™%¨¤´Df gÈÜ‘ØN]´A'‚ÉÈùh™³ê£çîC¥Ç¤lÞþ{·"ÎM|€Ì+$´Ó¼Z'¬Ö³¯éÒ …r-ýÔOD €¯yÈg¾DWŽ\8{ùⱫè>ãçöàIRÜ<¨42‚“5”C û¤i•¯oÌ*/™%ˆöi¡PK÷Eðôñ­y ZsÙ RPkÍŒ-<&iæ©w«í;Hw$nܵpã$‹º5^¬«9vòÀí½\+©/+ܵw‡S4Z¿y•'éø‰§FMh{D‚‰0ŸMøze]颣'æ°ÿÌêK±² ñ-oßBmè‹SWÛ¸ ­ËU夭Ë_‰’Pê¡ì£y•Åí>Ãý“)wéY vHƒîŸü¬áâµÊ6vœÎâ¼¾¿i>vÀ££ç{{,šðÍÙŸ<½ª‡"BÕpÁ–/ýOèm<’ä`;O1mNC"ŒRÊ4y· «sQ’c\ܦÀµIÇs¥Û+ß­Ü]Ïy3ûñÈöe0žÌÓØÞÖšøKÎ'e¾ÇB?VGõŽ×.i¿Nµ¼Lú‡¤XÈÔ©#Š"ê$\TꈚX´¤¶¶¨@-=±õP&ÚȽÖƒâÖäk³ßŠ“ÂiðFðU-ì×ÒF£`M^ ÷yØÅèê7xÊJÃÑÚâ+”Ž ®fRNìª)(›¼só>Ó^üôÒq`?¯;Kñ“!äåÖ°rØ›ètqõ–“¹›P<73>ÑEJ&0»K˜ÖN÷‘ñ;H0™ “fãIÁ¡ßšåLÌ9e«Z]öþ)i'»ã½í¥Û—¼óP½ ðcÖ2I}/^Ù·õÎ&jÙÓˆóls•Ž‘ô™”Ö³&ö2d¼ù_hèN£@E‚Q8Ì—‚³«Ï#íöq™ƒÇz]ú9S‹Vý˜Õ°E:¢ÄÜ i9ª-kv,EóPô±”†ŒOÞ9»÷ éûÞ°Šøº ×C{“A„ôè[õÕsδ¢{¨?ªÍ¥¿Õ8ÖûÄæS¨…{ÐÚø/àZcÜöZP åÅ©í[u°_Ðí 1 ¹c$/„ªÙø:+ ñY”pñžT`g›]XŸÖ¨K%ÆÔXÛØÁ’±¢Ä¬–†9~39ñP¬5wÌ]ƒNF†ÌÒ)h8?ÖUâ7ìböÃrÁAa®ah1nŒC&Îf·Id?Mf¦šÝääà΀±|ƼÜ5»‹‡ÚjQÿö^¸‘‰™5¨$*ã‡nÐC‘åOù¢’=h7âTÛ*kdp—5†^Çü|ENbŠ4+c§²d×Ëüæ|qÝ é±²¥ä,*ÆÃ ò÷lÞ¾83m5 åÜÚ–üÚÖTÝ|Gz ¦&«Aeµ‰¨A(Ò‹·ff§¦­ß‡¸ð¤3M·êO=©Ýª‚û«ú+p‚‡`8`©ßGb{ˆ»1„á¬ÿÄ€#¬¼F<À í¶¿íÙ ËÏArihÕžµÈ‰–•tënû×g“¤xÐray¼{.q‘åQÏ>‹¾é’»4NšÖ’p"… 5o¯Up’KØ¿/°fÜÔ‹š‡8×}Ÿ½¸¸IÕE8+í1‚ÿÌWX´2ci¢ êX˜‚«xãký˜ëñwñ'&D£_Òú—¼óWù,Z¸}Ëê.‰í<{å± l îïè/ HõÐÊ㢠(bþðAñs~i_§…nlÏ›b…×&Ðñ’+b¶éµ™Peý»5"=lÁa¡Œ7—L±ËØ4Lo)Àã¶r K¡H/4…4§_$ìÓóæaLùíOêõ7ž7ý¥ùF!Ȭ[ çί8†> endobj 18 0 obj <>stream xœT}TןaÙÙ)u* }¤„À¦ÁQv )ŽŠÄ¨)Ëî,;q¿º; ,‡ GŸ ¢p\AԱĀ"äÃ$›&i›¶†4%í±êí#=} 6&ÿö9ç½{ïûýîÇïË„†0,ËÎËtKF[ê§Í¼>¢Ä°Ê!J¬ ˶€OËä¶ME(qá WáðГhþ½ ¥|9_ùè¾9}¬Ÿ}•ýûÒ‚õ…I?œ²Öéò¹¥«Œ–¥§§£bºëAY¢G*q z(mN—]tÈ:´A‘l‘E²‰hí3ù›sÖe£¥Ùë P¶èÝFÊ÷Û$Ê•L¢Ã#&!‹Ólsdr:Ì’,9Êô #ò¸D- ‰å&Ñt¤ —è¶K=#ɃJÜF‡,š‘ìD’ÃdóšƒôÔnq:där;©ßN=*ßé‘=&·ä’eÌÏ2Ìå([r×#Q7rZh¤Ùiò«ùÎ'%‡Éb¹ä)‘Yò¸lFå¥P.·4›‚×#9Jî±§ ·Xbt›m¢g7Ø•{õ¡ïUmt¹l¾Ù·ÎÙ¨ïø%Ù#Ú,ºu’½ØëAŒôY. N÷–{#úÿ†Æ0LT¦)Ïi^+z¬ëeÉf,^ö(Ã<Èd1:&ŸÑ31f#“ä1ÌÓL³†YË,`2 ¨^˜Pf5ÓÈŒ³‹Y;’2  QÕ«†U_¨HhCèÔ¬z+tG,Ø ! Úýâg•Ý( ‘D5è8òRÀ®&«8Òü­] ©Ü æJˆÈzîopN©ŒÈ †o@Íž¤RŽÂ ¡¢Ó>!1˜'+RãI.1Lý–Ã⟂Т%÷s>½ÓU€ù¬¢÷o jëѶžîníÇïà“®Ö,>2p ûz?{’$«À¦Œ °xfL Éʘzf ’vRª!‹f®“h庚ÈßÚ©7RÿeÓ iF0ª¼)ôÂ=1ü“0° ¿ ,dÂ/–Þ!Ú½D-\¿hˆO(Ô¯~òÙÉ›7‡'?ÖÎýnÐo¹Ÿ}…bÕ«Kú1 JŒH3gÝÚõ-QH"÷‘•k:2Ïjû ¯JWñ8ìêáI˜!|8hx(iK¶^¿eâ› MNji¯eX 4Â"ö Z[àçJ©°ó½ê~ÛÀ†kËK‹É"’HjH5,$‰ðKȈ[ðD“–$puºüM:Âgi°âï!ìÒë>ë)mkÙÁò&3œÆxp æßa•cP*ìmÆ/áF>stream UnknownApplication Untitled endstream endobj 2 0 obj <>endobj xref 0 20 0000000000 65535 f 0000001508 00000 n 0000011060 00000 n 0000001449 00000 n 0000001298 00000 n 0000000015 00000 n 0000001278 00000 n 0000001573 00000 n 0000001696 00000 n 0000002722 00000 n 0000001985 00000 n 0000004520 00000 n 0000002396 00000 n 0000007605 00000 n 0000001614 00000 n 0000001644 00000 n 0000002962 00000 n 0000004863 00000 n 0000007855 00000 n 0000009699 00000 n trailer << /Size 20 /Root 1 0 R /Info 2 0 R /ID [] >> startxref 11178 %%EOF rrcov/vignettes/CovModel.pdf0000644000176200001440000003044512763517421015636 0ustar liggesusers%PDF-1.4 %Çì¢ 5 0 obj <> stream xœÍZKs¹¾óWÌm½9Lð~丮M.ÙJÖÒa«âhж”pD›¢äÍ¿Ï×h3RZ‰ÔAå*Ó@÷`úñ¡_ãoèe'èOþ] ‹?ðÝ—»…ìèÏîËBE{Óíd¯:iŒèm'V®Û­ŸÿT8œPª…Ãõ.F¥2‹ë}÷}‘ÞÔ}øÛáG â½(4´¼/øÜù4>²}[HþwþY ÝO—Ðgª^¸îòó‚õ’¶¡ÇúÞšîrX¼{¿}øñò?‹Ÿ/¿ÓÖ÷±¼ÝJÛÇúö‚†ðÃÂÁ›×¨ð‡òay  Š8ÅvÆ«>ú$àÝõöûÇwìþÒ=lo®HXiz¯cè.ÿ¾x÷u³ÝOÉ?à‰ûaXîþ—w/xEzþðˆš!&벚Q‡VETÀ~U1¯ÏUѶ†}°Zßî×;Ò`½ÚowsWÛІå~wó;éwÛo?Ýaçö~XïnV´õ–WËý²ÿ¼[kÚ–×ã´^ﯷWØZ]/wËÞWÌQm [`h‡^3«½‚ Òy(¡6T³Á ] ûÊÒÞ9oͨ¯/Ná.Öw­1<öRÚ\bGC98Zé‚û_VW‡Ð¯"xMrnºr¦l\àTÏ<°b ×Z"ß«ˆÆ$/À9•W©ü"ƒµ´Jœ×g -="'›u¹ùz½œ`3CÙàíåo÷ËÛ¹ŸÖwû¨»å÷~~!Êöì"ÐÞç´÷ýȉ·_U³9ßHV.’·3:rº!íePA‚¹S&Ò â°¨’™“âsh/C¡·waÆSúáðŸ)V‹ä'>üeáÿØ=ÐqAá\Ÿ ²ÛO÷wû#Y kha]„ ,êe,r Ei!ÒYV§HJ!?È—ò©PPõ‚u=ÈU”ðXU¡j½óÕ%Š.VQ•W窪µë#ûã†ÿÈýYínöíýi±Î½"S²2,©”ëå ÃZ ªI¤² _‰@uAg²Ödì-õ#,5Bq9=¸‘øñWæÚ˜^úÌc ”ëcõK&` ”Fž›ë(MD¼'·ª¤B^ŸìX¥µ¦\?rΟÙ A—ŽE¦ªsDâhWJ’£È¼>[dsÎ?ûGK’¯w7¿ƒøÏ»›¿ÞßÜUk›2{’*H‘òR <Qýø.’'SÒ 6Á"”ø–Y ²˜£ßœ%ª1‚fZ_~ÁùàSŠŽhÁ÷/ÿ=tdQÑŠ/³ iZ‰™RFö¤V' Æ³<)‘’<½R÷a"ã½§–2N,朞Ô=£Q[yÏD^‘·"ïX 0Càéõk½£=åwFà‡îhŽTã)˜oHÓ½i DRæ±ÒQ³VxÚ\?ça °æ—D _xºG¡Ñ³B’É´“vèU×G1²ù®•.À°PéÅ–õé Wz´b’bÐ#9Ÿ¥-Bjºôň%BN‡«©´À±p³r1•|'kUX¬ xŸYf®›±x]ý–)ZÖG_¡H“¨)¶wjæ´ÇjµQÓ@I–e!ÏjªE ž3p™*ëÓ=—j%²Ðª§WDô†â ™ñ¸×LàêÛR"q¤]U»!9‘@™Â“‡'™§õÛ24»®¾„',ù€Wñ²ŸXÞoo÷»íæÐo£®(Át£½r•˜Oí›r åÕÉ~ÃíL­F•ÈÍÛÉ Âéúã;&43…’:à(d 1ZVD›ÐëCEÊD…9sžR*ûÝrµ†¼›í—›Õr3Ïûíæb»yX7•tRgt‡¦T!ãQ¥çÉצQÍ M0MM”àYÙDN­gàœ’ýX·ð~îûøÁW¥ENçNû¾÷›åÝ÷3_fÍR½Î2¤¢¹½ôAŽ€9»2HÁQN;¡Q±p™‹œ%õ¶¯v4F•81u–Ö)M¹Àù>•8ÖO”b%Œ>>¸jš©U¦äiÊdhu¦ÓÐaöžbN¯&ùåa}ÄaY;ØANfVÖLDÈ<Þ¢;,¬Ñ4â+§{ ‡Ë(S¡?Ê9iužšòøè’iPíŠ âGóú\y¥lÝs†VL¤ž;Ë:½H­ åî¯L£l}F†JVÃqd(«<ÉÝ4øoHÄêlª…pÈ÷Fx*‘êšÌÿÂG®S×%i‘‡»Ãl±'[yÞYêŠBš)¯LBn9m&s—g>@B ÌSÔÎmáP×£íTCSIÙ*'Ãiî êššî>r=ѵò kg§§(ûF—>’¡°ªèC‡OcºñÇŸêX¡(­#2]º\5ÖG =8ÿ$á™G°é"}L²‚KÕy™žæÇ鯻¾&±jú¼>Êð’Êc¥XJ'ÅHßTº²¶*zæIQ¯ ÉZŪ š9Ȫò8‡P¡´'¯r{ÔÄ€)ØpoaCgiÌ…\RòäéölfÒâ_hKý@ºBµŸzÙ2IêFDN’rü"š ©Á-EÄP6¦Îšm½RA™>®éôJêØ´X™¬T&r[³ÏžsÕ^h"PòI¿BÍŽÇ{ì+úÞ\»ÿ‹£“þªœÉ¯ŸöXU:ïØ8A‡q}z¯ŒÚ Ò§TÙxc­Þ[eTé#'°é°Z§Ïbi‚1"¬AX½æÚMñWhã©ê]Ë>g¡—>BWÀzç’°š{=¯ZÐd2š?&Î Ó’Ã0™Â·0=ú*€A IÍkïj“wqu¤_ªz™tWéý bŠxžK¼>18ŧ)ŸÊ7ÌDØÑö2}CHökñ2±/Z:ëÒˆO•þ×Ð èáïïôh4 ¹3x==r<€º`(ú(´_dÖhÓGDZ¥¨8YWj6Û­7[(šÆØìº!¯åLú¿.þ`ldˆendstream endobj 6 0 obj 2389 endobj 4 0 obj <> /Contents 5 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 4 0 R ] /Count 1 >> endobj 1 0 obj <> endobj 7 0 obj <>endobj 14 0 obj <> endobj 15 0 obj <> endobj 8 0 obj <> endobj 10 0 obj <> endobj 12 0 obj <> endobj 9 0 obj <> endobj 16 0 obj <>stream xœQ]HQžiwe©m5ÓˆÌÝCšiš"a$b.‰±è’¨™ˆÌÎÜ]/ÌÎLsïÚîCïÁô÷$‘%TTÒ™Oúf¾ˆ%hQo–¤tï2>4£¡õÚÛ¹ç;çû¹G¼ÛQ ›M,©GNëªÒWñÅ4r»µ¼Däû·ñREsÏrY_©½ó}'+à±Þû¹ÅB¾´‹Ëç‹T×ćâKq¥²ë\OUuuM‹ndMœ¤PßÐÐñ,üA ‚NjPáCHÕÒh-t"tA«Z:b½mí­PÙÚÞ­HC¦¤B,í”!Še¤T Ýuã²®)˜b]#µÐL@b Ù (##ÃjÀ@f âÔ€ $MI£HªÖd5­¸òN?¡k Swð”ƒ8T1P"›Ø à(Æ"g6<ÒA‰ºº;0è gRÑå´›f£ÖP”¡®N‚‰¡JYGס2L¼n!M°–ÜR¯%%SQYçue+ü•Z2 5»¾«¯OmêcJš¨mÇ©xš@§ä¬EÁ½1´QÉÙþغÔÿÝNÞ2$1¡\è¼¢è•g–Ø“ g”yÙ2óŠó¬ŒÝee^Ïß—[õ±S}QõuÜoÙ^&|~ýi:41óô‡µèg'æìÒPÚöO¿è\¸ÜM¤°ÚÙ¯öXþeüÛ=·ú5Ì%(+â7Y‘ø‹UyrùPñõGW‡­a‡àÀ‚]gçCwÅÉPäè€]bÙÅ~ûØJkbgÙ¾eÖô&d—åiu‘žj˸wjuþÁ—ñ÷á‰ÙwÏ?Z“Ö«Ì=|ëÒŒ¥øƒ|ÒáWFDös›âc>»2Ï>¿Nñ°[ήù‚t”°Æ‘¾Ñ<æÛÎî`¾Û€ üÊýR endstream endobj 11 0 obj <> endobj 17 0 obj <>stream xœUV TSG~Ï÷ˆPI#²Ö$‚ *ùqTþÁ ‚Š"" $Rþ+ÖŠÕÊ VW[–*AD´‚XÔ"*?j­ -RP4›¶îJ«Ýûr&žÝIܶî99çÍ›—™¹÷ûî÷Ý¡)‹1MÓÌ’œŒ¤,ÓÈ•ŸDóïŒá' VöŠ„“)ùѧãµY[T¿3¶ÛšÆCª-ø¾E hzI\rÀæì¢œŒ´ô<™Klôʳf¹þ9ãîíí-ÛPôûY`jnFšR6 R³6g+R•yË2òse1IÊ\™\š–Ÿ•”ó“EM/R&¯ŠØœùÞÆ¨œ´àÜô輌˜ü‚Ì-YI…Š ²Ù <\fPT<IRÞÔl*Š ¢¦RË©`jM…PîT J9S+¨0Ê“Š¥Â)/*ŽZIÉ©UTåO­¦–QMÙR“(eIYQÎÊ‚ZJ!ê{z<L#Z3&pÌñ1¯«gO-fYdZ¼N–;™™L2³›µdƒÙ ¶‚ífu\>wÆÒÊr­e¢e¶e™ås«éV PoÃŒ•jÃÛ*šŸÈW‰ñ4£+þ ï*ô` ÈX9ûÆÂâtäð*ÞWt€[ÌÝytÏqT‹êÿ¼¦²âøçÍPl°™h÷!ÝŸ®²ëô†ý{Ñ—}dCÑYcÕ04³¢þwö=înN–Kð4¼ŒÕ†wN÷]­ðOˆ¾Ô±$Œ¼AÞu®× øLï¹¶ãì–º´Vy?âð7lý±ïˆ aüýxûˆtSô´ïÒÿ#RƒR‚HF“x+1”±€ÁQ¸ GB“ Øj´¯…°ßËØî½^9 ãé|úHâAhAÅ,Ne‹³ ¶B,~¥ÐñÀ@²„$õס7h¡M+€“|ƒ;{8â@¨s„à<òC˜× ×g¨¦¿Kªb1^üt 8ƒµ¦˜*RyÁkÓBQZwbó¥-§w.½ÎíëzvëÎ0âÔwBæîE{K÷x*_Ãs^ÏW較¡HŒS±#ž q!'lÔݯ½zKzÿn Œåà,…wñ&‰·xü‚­±:’ÇlìæÖ ¡/Èc¶ôMLþ`“bغ$ˆMéˆ:L‚—¸c!)i¿ÇŽ é¿Zs£IŠëY<Ýà#~BØ´ÃÖ°9î¶ú© Ô(&õÓ:>%ÚòR3çTÇÎÚJ+%½láe[ç—¸XêÒg\«á×jY³ Y ‡ÕôS=É¢ÊÖ u5•'Þ,ã±¢Æ}Å»ÊvLŠE2×ør¢ÞŸX3$}0Þ,”:-´ ø9d‡ElÒ7«êB î˜Ã~s«ƒ.®–6%v¾×ºÑW§Zº¹lî\_ ÌÏZ_´ ¥¢Œ#yÇ +Jþ¾»žû+sØe0 lѺ{ò‹æ W*ºØr|8‹ #Ä#m‹°=»ÈsÎ ³Ð:‡žn€ Ñ¥†b5=¢ÀRx$†Q5…b^¦6›²ÿÃŒZ´°“øQ8o#.ý5ä&Gâ´Y(ŸéÝœo)¤C…7‹« PªC|ü&ÿu©åÇ $Û+>ªØÝÈy2ð¸žå0™”þÄá®Ñ¡Ä‹N'¥>•!Ÿ+£F‡+ë{î6(Wì“üî›&Ý÷iˆm úˆì_)4Ä2M†Y[»s›Jrbë‘´‘{mœ:yÇ´%ëò–ÆKà4!w#I§E Ô´^Ï[r—Á]1ìb4ÉîÒÒp´îo‰å V3é'vÕì}V Ö… ¿P_8{ i8°[Ø‹$ø‰™u™€|ö::]R½ådAù&”ÈÍMLq‘êËëçgöÐHé"¼Í…©óñÔÀo2&®AÑ¥Ríû䔤ÝññöÒ÷—öá‘F)àǬ äüF_ÚuÏ'-¡f’ÅóUFôÈ °˜ç8LL×qtˆîÓó4¢žÿL\ N34x!ÛËÅOôh‰ù9G ak~ÈmÞˆ¢PJArV¾rKÂŽ(´ÅV¦7gŸùà\Ùe‚{Yhyb]òÕá4 -úVÕÒÐÚTß…î ‘˜n—Z¼´u¢ç‰ÌS¨“»×ÕúOàºâ\ËL,ôâUv]8 Y<`/ÒóD£|Õ||••Åy…%]¸#áÙùFÖ«+æ‰H?ˆZk[{9Së2Kƒ†ó ¯¾Ë`£/–ñ¾drc•ÐüS_¹Ià›bòuÃ뙇 7 eð&ø™øk˜PÆàœ#4ÓjÚ“¿6f›÷t2ºN%}yãlt•‘®dë™QÞí7£›ÐŒ´éŒža¸’3æ½Rp͙ͤ›µPNlèL«xçÞ=h7â”ïWÔHá6«¹ŠÅ‹äù)é’Üì{WrÃÌ¡œ¯BÜ@óæÕÒ|¥l +ÁVÛŠödn_–“µ…p®Ý‘¿u·U·ß’Œ«ÉmGGQù¾ÚCÄ’!DŒ6—lÍÉËÈÚð~<âÂSëÛ:O=)—ê>;vàT9÷'\—á„á  0;í ZèÊ@>‚#°Jøö8Aøìug~ã~‘múÙ‹.š¯çL.¤fEßwÜîùæ\j¨¿2M˜^o7¤„™^ùÉì±×g%DÅK²:“N„  ”ðÞ:9'ºx}³ý¶kàºVÐn–áÀ]ö²6e?‘±d„à~s_bIÀªì¨)Ô±0W‰õ¯»WÄ‚9o¶.rµ"–ý‚Ö¾@Ì ±“Ó Æ<½/hC&7½žä«,Ì߈hùfÒç¼Gü~­Øhɾy¦Q{íyûĵ_ë'Å|+·#é|Òù•ÇB‘; ÍL‰ÌIÝ‘¸7€Ó1û¯¬û¬ºúâW5mˆ{ðuô¢˜MkäiR·•ØeÞúÐ<ÇÏ"Ç?6¬VÑý°ƒdçŒíå8aw„=îàðçØžë`<Á)"ðBàÙ ¾:päþ·  ô8]üìï@8wrw{n£ÃN­D®är=㱯'&Ëòªù*D¨äÕÌÕ£±CŸX[?:l=Ž¢þ ¶î» endstream endobj 13 0 obj <> endobj 18 0 obj <>stream xœUiTW®¢éª› ”âBw¹€‚JLÜ5Ni‘%"bP2¶Ý´öfw³4!Àqãá†(AZqE h (‚ L<:ƒ“èI&G3ã†Ë­žÇÌ™×qù;?êœ÷Þ}ïÞï»ß½·hÊÕ…¢iÚ=ĬUé&…uçv²8‚Gºˆ~„Žv‡MêG-*{è)Ê=(ä!A®GGºùvø Ÿ ï ì÷²•¶Ó'éŽOXœ8aÂÄùF“ͬMM³òÍš5‹_eã³ða‚E›jàÈ"CÐMzÁ` æã·¦ |ŠV'ðócã>Œ‰àÇGÄ$ð‚A0«t|\ú*VÍ/ÒªƒEäSŒf^׿áÕFƒFkÕ –`>Ä«x‹IPN¼¥LNÃDÞ$˜õZ‹…¬y­…O5« VAÃ[¼Ö Ö¥kœáÉyŠÑ`åMf#±ë‰…¸Š3Z¬µYk²ò$b\Xx?FkšÊêŒkÑ3oL!75Fuº“Í›U¥5Xx«euÆY%ð­Å¤SÙH\âÊdÖöAH·h ©o£OäÍBªÊ¬Ñ –>¿Î¬¼åÇ¿ÃZe2él}o}·ÞÄ×Z-‚.%8F«_•náãUäÙ"Þ)ï{'o%úÿD£(j¨Í Ž6jæ ±æTËb«6>=cN¥_EQIT,FSq”’K…S“©xjµ„šB%P ©©ÔR*‘ZDES¡T 5Ÿò%D¹RQÔ6êGz$-Ð.#]ò\~•Œ“”ºŽtÝïÚíÚ+]+­’v2f$s”õbÓ ÒKlÂÆÇ@;-ÊÅ»öúawÑOŠƒHîm‘°›Ùe‚&)w}á›|4{`sIAªFg‹íþº´¬¢â:˜Þ¾^" » îûà6àá÷Àõ>ßF<öÖm7ëÝ}ýüÙ›­'VGÉñOää?,¸GÞÄlh’)V-÷žy—%H¬ …' ¥O/Ëá—¾Sþ‚G ž6i^„ÃŽ©0ôÁÀíUàáŒMi4% YØÊë/w7”U)JOT–Ö¢«è¨©4Læå¸ƒì¥¾A[tb;C{Û¥Ä'¶K{Û!È¡Ç,öéíÆ¾b·[ÿ­'VBèhª Ü"‚šÅo9<+ÓX‰ÃŸa fÃÌ !¢Æ¿Æs…XÊu_ ¨œ÷é²®žžÆ®?+ú}È7ÕN'¾rì‡Oó¸„Ik^qx¡ÈâxFèÁÓ‰ŠšÄÚ¨Õ®n’a7Ñ“»U>6py„R¹¼óÉÓ†®.…—#Å ƒÅ"ð¡¿!Ü¿3¸mëjuuñw>ªÃ4ñ¸ ûàq8¯o<Žh ž/aN±0ùÁqKƒÉYÄ#˜ÓnýÜ.³¥S”fîÊ*ÖÈœj¼†ÑaÀkZ<\a ÚŠPóú‹ëΤ>žÚÒàÉØGâG£`x>î|U©Àr&{¥Æ¼ ©Ñš²Ìëìmi”m}Èß«®ûŽTNU¶Ý¸7sgƶ"P¹|Ä„B-‘(€Ð‡;lœ?š¡^°P™âHL׌mo‹¸·úzîl»ÙÖñõ+Ôƒ€Iy¾°+ªsvÕh$+Ä> ¸;Œg`ì9ç5éûgàIDFÊs8(úËs¨w͛Ҭe½ãîÕÕÝÛ·»`s¹F³ë 7¢M( Å«ô¡2ïɯHa6üíe¿ˆÎÚ„u0L"N$f²ªëÉÇ¢I&|&àAxþägì ÃÚΔ·\R„² “¾P.M;X—+ÇþL¡ªÔpZ.­5û>’ÁŒG·Á[!^fñNLq]—BÇ.[™Üñøù··n*úšÁ^‚ Ý@.q–ÌVÑ…ÛÌ”NìOúMÇ’Ô=ºò EyVYþ¥l˜“è[[’‹Òe«5™ S E%6yΞ {6'·™íØí¯Ñ0ý ]-­­ª­:t5¡®´óa°²ÑWS’· ”¨²_è8iI*”“êBv8ƒ`1 ¢¿‡ ¨u6P6œå`Ó~lmÌ”W°NQ…l(ElO/O“Á´£Œuoþ>Tµ ÖlÚ\{¯ª®ý‚®e6¥^}*¹”dªwD_‰»Ï‘ì9´Óþœý9Åf¤EiyÆìœ/¿Êܸɼà'ë+xõ¾ßßzG¸¹àOúÅ?<¸ÿÈL?¯ú{åám»Ë³_mY_‡d)ù{PO& Tµ ¸;œoÕιÆ;ÅfzWâbYy9>´‚©lú<Œf+_ˆÛ9Ô‘óMjmRóì㤦ðü€Yx4–^]ãŠç™O³jŒ(nXL|ÊdÿÅçîn”“F*Æ“_O‡"iH~†ñÀ~ÖŠGQ`æ @w5 »|¡ºû×&uÈyß,p?±Ó×úg¤D<3D¬!°Q_¨"bõUírxJÀz°ØýF°·/m­•G9‡#¡´ÙNCψk¤x<ƒé^þ@T8×ðYo´ï’sÞµ8i/‡ûœ8ó$Ý<(Ù+çKa&ƒ?‡_`¬”â)L_ªœOú3åÐsý˜w¦ñ1ò>ü$â2Î\ñ‡}è˜ šXp™wà€O£ñ |9Œ`Š®TìïD²æ£¶T[þ—9ëYy…çÆçùò¶Ä%(%ï›*×Ôg5 VtùÈ…FdÜ–·÷KLdð\Ðs³ÕÉa+ ‡kÏ´_+‘7×íÜZºk˜×¿<ßüZZAμþo¨wuë;¿˜Ž§k[ë›VÊqoßÉ{{q0û2ê;LE,·Ä«äkŽ“¡ë=9©3’—È:Ø÷uËoƒº…¤Ä™Ëì©¥õæ›Dfî1 €·Óï¤^R¤4EžŠD Ðr³6A%,¸á‹\çå¸À$exØŠ›=:ɤ¶Vˆ5v˜k_^Á€›Œr·bµÛÓ¢þ ´Ð` endstream endobj 19 0 obj <>stream UnknownApplication Untitled endstream endobj 2 0 obj <>endobj xref 0 20 0000000000 65535 f 0000002704 00000 n 0000011909 00000 n 0000002645 00000 n 0000002494 00000 n 0000000015 00000 n 0000002474 00000 n 0000002769 00000 n 0000002892 00000 n 0000003882 00000 n 0000003163 00000 n 0000004876 00000 n 0000003570 00000 n 0000007977 00000 n 0000002810 00000 n 0000002840 00000 n 0000004106 00000 n 0000005193 00000 n 0000008237 00000 n 0000010548 00000 n trailer << /Size 20 /Root 1 0 R /Info 2 0 R /ID [<8698D7B42896D1E67705F281C74286BB><8698D7B42896D1E67705F281C74286BB>] >> startxref 12027 %%EOF rrcov/data/0000755000176200001440000000000014556261354012331 5ustar liggesusersrrcov/data/machines.rda0000644000176200001440000000567214660616401014613 0ustar liggesusers‹¥Y[ŒG­™µ÷ýôÆø±‰c‚{w¦_Ó³³Æ$q;r,ƒÌ#Ù™±wÈÎ#3»k[JÐ ’(²xDâõRþx(|„—(_‰Ÿ!¾ò‘ˆŸ€„”>‚ˆ{§ïí¾]]m+¢åãª:uëÖ½·nU÷Ô^üäe{ìò˜R*¯ ÃðÿT yø/§ jÊ‘Vµ¶Þl7úJ Íc0 ¸xpHÃÀÞ$r/‡Pl¨Ê7?|“ÐujçVÍPû 6!¬Šv^1ô@ˆ.°#ÿ›êkdW›ðÈ-¦1ðû1Ϛ̿ sœ0C½åYÁ 1°áv¨$‘{Ê?` çBä/DZz> õlQ¿¦òßÙÃo…øžÛº€ä¿Ú4Àç£|` ìÂqÂQÀ1@‘ÊÀ.à­¹ Ç xCà߯ðA®§ xðQ‚Œý¦!‡ ¯ix°¦ùƒë5X3ÚK9(ެ¦qr'¦Ýл¸U•Úý¦RÓhïjØÎO„%öÏ¿®×ÄAØ®ÿ Kµöç\>bìÁ{®‡Èý3Ô…ó`ÉusyaÓ@çN¨—û%r* ö…Á¼œoüWÄiÀ¹ÔëÔ6Ì'õš€ñCp|9æê©¤O<‘~ßnÙÇs iútàüY>è±ÒuË:·õ\Bžë¦yäxgßY>ŠÏ»ÉºÞo²Uêe˜üâ¾Ü.ʯ]æy°Î{io7Ü+ Þ; Þþ˜W“?‰ã¡¨D¸‡¸Ü÷}@õc–¨e¼‡Ž¿≿‡¾Èø3–Þ9ôõè1áÜı,kÆ@êæøèñæ=…@}³ßKÌI,‘ç}aÊ Œ!êáx²ì“¯§ãÎë±Â3I_[^Ǭ¼c_Øw„+2¶Yg©¾&]žGÒ_kô•õ±½R?Ž“±e;8Žr/˵ÕõsîðÒ¹>zÞgío¹Ïå{I-jXÕ°£Â§8EàgDÔ¿¡ÌOA”Œ¯k¹F #B§´aF”3¢mztÿ¤O ~vd}—&¯?È-j@.§’ñÕŸÛÙŒôYÚ:CÈ‹6Û`² ±P$žÛ¢Î6å…âU:_t~'nçîàÚàá9pì+*¹>«¢ÎÒßEeŽ ó¬—K¶cÐ%<¥Òy!í“%ÿ^šQæœQI;LJ¼/v†iÜ0sÍ41‘)£\%>´þOŒ|€¹äÞay®óÇX^ÓS¸ÍÜ»ÈW=öÔ‡¬x ‰Rîy~²b¨\òØ;Ù6,0"ÆÈ\’õ;ù5Càü2‘ñÍÊöõ°?d Ÿœ¯øÛÉ%˜òQ?¼—vTòÜœQæ÷T^‹Qú¦Å¸UªïQñ™4!|vïË@A%×Fß›º¼~2~y ÐFùÛvŒ€6Ì«øœÊ²q„t¡Ÿ]#ŽÓ‚/°GÅûHêšþdAº_»nŽ#ÇK>&ù1­=#°£’k§ƒsbLÅûFú·¨Òk¬•XTÉ÷Ë¢Š×mØMà³Ë)¤°•í˜Réýþ¡nü]Ïûhð3‚~®²MS"ž¼—~Ë„uø>Wð{H=í“€àoà³àÂuæÛqÞßܤ¸áÍ<Ù‚y…røvàc€s*¼|ˆ¸»çÃ27è’/| ð¦ s ï!ÿî£yÑO¼+:C˜#Yì;)Öé&9@òPü¦Hãwɼ"‡1š¥1¼Ž¨sUÈâ½ÞïX¸K¤÷#ë>¤â;¬Ÿ|ð[êÇû·À¼· *¼ƒã3çØMk4#l'Ì‘žûiž{ɶs4ê(Qïä^ pÌî¦9Þm]¼Dsq °÷þ)ZS[ÄšïìPÿ§xwù$rfp‹÷f ýÊõïSûaªsNcÌÈ^ôáÀÀQáÝÚŽ÷žVá$Úña•¼ÿ=Lö#»ZÇqŠæÝ à+*¼w|€÷½?ü ìùÅìÄüËÁÜ9X«¡oAÞYŹ3G¶²˜§)N¼—þø¯î%ð+÷\ˆ<¬yâ0ØûhÞ-¾V‰?Dvã}!æÏ‡(î8ÏA²á ɤµ¼B8K¸IëÉúNˆØð‰›#]÷Qq-p_Ÿ!Çäû½Ì‹Øþ@Åyv⿬â÷È^Z?—l·IÞ£>œëQ’ÝO:Ñ¿ªÂûø1Ärnð·…·ÈŽiŠÕQaÛdÇ{þ ŠÏ°#äç9öã½/ óRê;Lñ=A¶ vT¸7—— ÷wˆ|öh p}ð´ sâš ÏÓ"ò0çmò0÷#hJÈïüç(ö dçQÒ…ñÆ}ú8Í€ßß9ŒçïH똿|n®ÇçïGÈ6ÔÅ…u×hìÜ?¿Ý —Ãý‚yò À_¡ý)¼—†ÀÞ¡?©ô·Èý´þ¬w¿ö÷§ávµ…|¢tHÎæô¥¨~þÑÇãú©Ë\?}êôVrúL,„HjèÂÅ \}ªÚäµjŸ'gr¬^ݬ.]é]šøh¯smIÚ{‹:&«õíf¿Ñ³{Ù/Fd«^]ß°Ürq{¹LäT‚¬Ù5#[3©eÑi"½ p‹FÚ3Ó¾™˜ž¨v;«Þvì4çFÜèZµÅ*/ûžNü·ÆµÍ¦å‹EÙâöôÚV¯×ÙººÞ·ÖJÏ3ÐvÅ(mWl“´kV♕xÛDûfi?žrª¶Ô[ª[~°\*ZQÜö„ìV»¹Ýèõ+¶]t6©oVë‹B¤Ežf!ÝWrÊÙ£¾ÙZ½fÕn¬5z+¥rq¹%‚Þágt%/£ÃÎêp²:ÜhE°£Ój\­®¸qM¢g4º)õHž;&kÕÖZãºUòß*EK"ÉbJÔ-D‘,¥D½Xt®Þ¨Y€þþJ©ÿ*¦»ÿ¢PNaO«Yëu¶«×ãI‘b¥TZ.;EëÙ(½fêW­Fm£Ù…Å®-;ž‰oÁiÄü¼ä·!Sã}7—ìr3{ü̱‹Ò=ñ*Î_éôZÕÍf§m]ÁyÐŽ¬.;Vièªv³Æ9Ùãœä¸­žÕ]¯ö–=P­ÙÂÕÎÖFݪuÚµFwsNõ oCC§w»‘Ñ’­w-'4CgÜ4㦘@gü”LÀ2ãÌÄel½Úë5ûVrfœã¥?Å”#f”˜@ â|Yï´7®566¬z·¿â/GDª§bgöøæžr¦¶ò²›Ùãeöø=A¼*éžJV—èÉð4Xö3{¢wÔXs­+ç8+ý³ÅoØ JI‰ ´R×ge-Å4ø,0px—lÏbÃÆ#2ÊËXÎ ,'a¼´¶«µ=­]ÖÚl»ŽpÉuœø”™´TãjnJ 2Å4e²SªÒL%Éø%ËM1^’ b“b&¡9(9E«šbÖ¤«A):bFš]ø|„©’m×ÑÚžÖÖä}M_´ù§[Õ«í­>º­@œu]2Ó¶‘v3hÇLsLï]üž·úg–Z}ÐHãíjߪöñ}Êjkr^Z)«a"õÁ~ÉÑçõK^Šòí4•è§–Ó¶•MfEWSÚ‚øëeš¨ j«wkÚ$Ó$•ô$•XãD»Ö³¶ÏñV¢7s®ó œ/¸)ÉE‹Á’eÃèÀÀU7r~ôNa" TDè¾N”ã@6¯×;½+VTä¦HО™Ž”Ìv½§›m«±ÑüØŒ¾IôŽRÖˆhâÉn¯ÙjÀ{Þ²íxÚ˜ôÄG[L{fºl¦IOö›V£ Ÿ K^txKÒ1’¾tM’ž‰ô£S&&aÙ¢ãSÒ墙¶Í´YI`V"NìÙ>,Iï¼Að®d­G? dG`fm#ëY×ÄVŒ²–'Oâ4eòÒ”Ÿ¦¢_·DANC Zzc#úNí÷ª›[ð-}`\«¶¯ZÛ‰ïU¦*Ehá5óûÿ¶yÙ5â,rrcov/data/bus.rda0000644000176200001440000000766614660616400013621 0ustar liggesusersBZh91AY&SY$[‘ç2Ôÿÿþ{\DUUÿÿÿÿÿÿÿÿÿÿÀ@@@@@@@@P@@@Aà<`)  øún™†Å:ÃRm”*†§¡2 ¦ôjM¦FLL(õ<“Ê4ôžFM'”Äi´ž 4ÚƒF€4hõ4Ð5OÁ"‚„i 2d  CÒ h&b`˜0dÁ2`FF&# $õJªSL0FF˜M`i*þ¥†‡©ê4Ó@4#@L  4ôa2 ™14’I z ªÔLi=A‰“ÊzÕÈ€h` é¢2a ëÛU¿k^‡·7:œ× ÎîÓœÝÜt»Žç.îäkˆ!Ó—"éIÝÒ']Îî]ιÜ7]ÝÓ¦':89Ä—u×.åÐÁ×%ܺíÝÓ®Pwnºsœ¹—pdeÓ˜—w%Çn‹—»›Ž®çYÎ.s2»¹ºî¹ÎîÉÝvs».ãŽîuÝÎá̸çWvë¹+•ÜîËMw;»»we:wqÓ§.rë»wst¸Æè‘À ‚(ð(ùüŽõ|ŒD¢ÍVÀåÇUpA‹8l&š¸TÉaeå&ñ’à2 j%:™qb®( b¤PîS¦f'‡,·Œ%Id•"+ ,®ášHË(Š,‘>ñ-©‚è4ÂJF+f¦m ’¸RBója©«Lx^ f8P:ÖTa¸t3.Œá–Lå6:IÎ0‚Q‹,÷H7wÝ%¼™ Á[Y€<’˜íjÄ÷@šˆi ñ  ˜dL„ò¨z*zMQMÔ ½ºÀžf ¾1 š•Ü¢› U¤`,Cu±!ª *Ñ£¼pG–q¯îÙܬ…!$)X.ĤKUæòq”÷eÚÁ±#š9†š#“ŒRc¹I¸ÿ­X¡MÕÆ-K¡XL­Úp¦±Ò&U›ÓÑÐFŒ„í¥‘Ô”. y‰¬x«H:$ËÄN)†›7˜ ”fX’¬Åy"áæ(ئñ*1«˜aqʃ…eÄV& Ta¸-©TàT  Ã *<±L&B”!Eh)ÕbɈn™PÁB–„W ¤6#E8q73ieá§ÆÔ­5’±˜±GY"$ŠëT"º <(Hœ––ÞC:ðZ€¨”°‚UK”IŸÙÂY¨ä Õ†ð¨pK#…—1ز–ó™& ÓP†·±škE£ÏWK4 /HÏöU+܈隺ÄÈ'0ØåˆVæˆ,J+eE˜´&-ïçò_åÏM_òÍœfØ |ý|¼|aw/qJ®ŸŽªû™¦Ûföarve¢ä¹EØ.6màË¥ß/&ßÝqŠá¶·ýÏJkÑ·÷6ìÙŠVkä[%žÄ¦0Ÿ)Áû^ÉáN´9;dÔŒ–ÚSdÜOr«œZbã_7ÍžûsF®"íïZ¹¶ËÐn§ ‰No; ›V9ê]!‹4p½kÔ%úSê/\ã囦hÆæyÍ:eÍxu7¡ˆ H©Ñ›ÐºÜ²Ã9[D&fkeºÞµ jWÎ>¤Ó*I®wA0Al ÍBƒºUMWn-ZÎÑ~³ÎÝg£höŠì@è¢ !ͰB ªc Ú0³Se !ÈD‰É1WwÚÔ:î»wt޽jj¶à™6ebÎU@ $‚"©$y¤HeDDhÂ̳ɆÅî¨íé^óÛÎ\¹­"9ßx_šª‰›µu¼BàH&ûîûZïg,[£mô·g+q&®VÙ»ã=‘âS±©wÃ.g\kÞÛM5¾5Ƭò®ÎÁŒ¡W­ï–äb{Ï–y[fs ¹;mÜÅެڌ֦«mRà3ŠO<Ùĵñª¥w”)bËga'¾fªxÆ„]öSUE$©„‚Æ„T©¬ÐJp’ã ÕRˆÆ U$$ƦÅ—Þ Ö¢Â¡‹,µu¯ã{éA!¸©¨‚DjÂZh£QÝ ª ;}ÎÞš£HÎ穔ŪEx]³Û‡o`u$’D‡bÕ>»z³G—¬·¿*ªJ‡(å(c*îgëW>tAïUÙ¯=Š;ˆQeÁÖé®ú3fúß;ЛÂæÕ*fN4PrLilV•Ú”ÅU´›¤Äå©Rå3IMë9G¯N‹5PC­ýžg™œâËKiì{ LòxDfYë¤ñZÅ MÅíw@x,0²TEj›µæg¿íA¤Ã2{GÁÄ|EšMë:ÈÏ¡ìq3±µØ‚ôo–úQ\iò+YÍ[Q!*pþ­”®™-GÐÍ2¢@š*tÌ¢,‡¾ÙBé`èwäÞpMcÔÜÎG9mf©$hFj†×u&+ù:þ/Ãé{¾-߯ùNûµRG‰'R¾òM‘–d)”^ÈÌ# ¾ò ñSߊwÞ!2NŸÆ(–ÕD?ž³:¿FJ15b˱Z Ôˆ)FT$¢±RvA•ÒAŒæq­€cð:…¸©Xˆ\’U1µÑѾÊ6Ú)uÙOÙãý¿ýêÊAðuD„½¯…ƒ/¹÷~†щôñ/Uªù¸zºJ®¯¶æ¹j tbªŠtPéРФ b¤_ö†–5ÚBL«TÒ‚ ©ÓÖ¥EiÕUãÅl^¤÷œÌÌÌà¨+$ˆ‚ˆ€¢ •]tFÐ÷)€~(©ª‰{‘’¨¦CD3³¿;×w-N¤ÇM]*;è %/K„z~Ë7hŸ«è¢í!Y1‘ ’%ŒÅgÛ¯iÃûmš§\CÑ Ö5Ì §£puç×y°Ÿ¦ö›ð+"¨…Š +Aš£«kˆVARª”*‰ “«4ÌÊå ¨Äb.µ²4ÒÆYžgâ2Ýôÿ²îJR|¹´¢_î|§§lcûËñù./ÍBçD?:ˆRÊÛÙD Z…*¨ZªPª¤*¨eRH€wp‚@ÊùÞJW’Â|.6»Šw/qãHi°ÔÆ‹MdQÉå:j˜¡$-­2bP"C¢”hUº#{‰wqžëcy¬Ýg¤mº1üó]^{-ë6ºêlǤ@œ³s©Ådþw¹Ïîo)z+.GB|Õg! Mœ’ ñô0Ý—†+4Ïç ¬ò[^PjÑ8Í­iÌ#`Š ‚r£¢àÁ»EûÈ1•kP¢¦…˜DtÕ‰šDÒJI¡e{i%tš* BÒéblÙ6½CbççôL¹cÆ~Cçô~o«ÏçKÿ° ÒÛÒæÆéQ*è…£hA¨§-r¹W5¹ljܶæ­xÚ¢ðrÜÛ–®Zºm¹m¹k•µËø5à5¯UΔZ¹«ëU ]nª/ED´.Šh² I¬À"ÓC&dÐÑ&ŠS$@’“ÈH†”R"0…™QAŒ˜˜H…& M Üë1$K™&LîåXÑBH J"Í0 €‘’ÓMa"$£I»ºŠ N\Ä b)!4”Rb ˆBر“D"h$“BHRV6M‹Q™)ÎHÅ h-¢5Œ$±£Á±E#hB-’‚Œ¥9E‚66MFŒE¤ÆÆf“Q£HQ°hÆ’ÆÆÑP¦ÉŠÆ$"²lQ$¶£`ÆÔm%E¢‚¹Ä( Ø£œÑb(1¶¤±PˆÛ¨™­‚1hÖî隊¢«Ѷ¹[„”j-cLÕC¡6Š ƒj1¢Ü¹Qb(ÉcF±`ª5F$Ôh²jÑ6±»º-(ÛmŠÆÔÎír*#Qh¢M‹¨ÛjHÔQ­I¨©6³hª#PQ€ÚƒFÑD[Q‹bÑ´cW75jJµ’6ÞM\Ö)‘ ø £˜&OŸA2wrõ›¦(¨‡Ï5¤ ë`™:E3m—³óJO’ß:f|sÎ2BL2.êU¨¡Ó•»¼<Ú9&)rò(¹,<цf¶A€… J²),Å5Ü•Gfô¤öݧ½ø˜÷l‘¶r(P M'xLèí\3S+®ƒ€u·¸£„޹ŸgÈK9—Í^Mˆe@8QÊ€®Â($ Џª‰‘5k.Å¥51pxp_̘!¸ðë-æ*ï¾¶ÓÉ~"’ »)èÅñÅ=2v¿zÛG³ôd$ª*bQu´áiiØ+öoô¬äF¼´ÚùNÕÒ˜òôp•qN^ýp’á: î‚Ï'r=åö±äâöf­y)wa× SW»Lø«ä$s*FÕì$#³Ì–<ís?y»“à–·—kÂÞ¢áˆ:ÿÇžßÛ-{†^Æy¸(ß#Šf»œmð¢a8h¨S‡‚jC'µ&ËK(ƒ¯%¢ /BçCw€¢ã¤0j30D0í+r1&À¢®þc´FœA=ïbbð»3ÙK;‰”â Ãí¦ê¦780>·³NíWÓªqË÷|îo?ªˆP õmŠCÅyŠ*Àø֡§Øß ÄÜ!' š:©D|w­sz€QëùxÜógXÚ5ÓžÑ̤—©ˆÎ‡^\³–î­ÛÛ¯Re^Ž GcÿË ^'oÎØ1ç™BΡ§ûw …N[P»ÿÁò`–ß+쯳Ný²o×þjädW îœÎÍݲqÿ ±®°n­½û­¼ö?EÛÝþfÃ|Ù'VûO¶ß«¾«¿ÍþŒ³†Åʆýo®]ñ_ùsÿ‡ûa¾›gÚíô'1ú……¶ý‡Ö>¦gvû?fUþU”]·e²Ên©<öŸûx7.›¾ÿ{㚘۫ïØO2Û¦{ÀX}ÿ·Ôé“¶‡rí?ñwß*7mûŸ«Þh—lþaÍRÿüß'ö‡ù?õ銉ížöIø¹™æþÇ/ŸkÝ ÷ßÿ}©U”n²ýý‹ûóù ÙŸ¸Nù§ÕŽýgޏ_{z}ÿ³³ûdO>?¸ÿ^PcÆÑSÇ÷_¶¶(Òí±ÿv%xšÐ6ûÓñzW«n²¿ÞQôeËT^ûoRÏ”Âïÿ½~ŸïùÎ ´ÀeNÉÌR¼àðg`Ð(J8€JòsS‹la¨º@,‰3°¦0C8Ë*ÿÃÍéÛrrcov/data/lmom33.rda0000644000176200001440000000112614660616401014124 0ustar liggesusers‹ r‰0âŠàb```b`a’Ì@& `d`aàÒl9¹ù¹ÆÆ ÌÂ@Hšˆí/çémoË/¨Ú]ƒë¥×I'ß…‡9íñxYXKáâûz£OÖØ=£ le4Ñ¿amÀ@ŽótiþÍ)8Îm%¹«nåã6O!ós½_+OÕ½þœ“JzÞj`‡yýÓÍqsFÀËÒ g€ ïÔz-ø³z?o£…þÁÅûâx?Ù|sß#ø—^ú¢k8zwúvá‚ xô~2fƒ ®w¶ÒJÃm}|ûhß]Ëì®;ŸÀ²:&«0£¼¯žV:,Q^Ûµ´¾ýEÛ—_n‡ [ ù¶~Rdã2œ»gÄÿxNgl£ò“–Ѱ2ÚFB>àüíÍ^£!Wñ•ÇS•ÏÚ¶£!ïMê²|Ñ@8ç®kóÕ°ÿÀÎÏwQ¶ ö¡hEr®_ì~®#FÇY(£ášŽÁB«el†²#4`%§ñ`þÞ’¤ûýÙýÉ–(=Îùvò´Æ­#p>Îûr&‚¤ í×^E°ã´«¶I%pïŸxæ^¯  ‚Ÿ÷»‚çWyèØµ—îÃÇëZ0¨[‘œ+T÷v¬Gïg°~Š’Øø¯šë`_Ùê—¡¿¯Dà FP8™L› HËÜöPîBŽøÄk°ËC©áãy˜YyûC&Y7}4®Ó’b&€êçv~/øîë |G Ë­ËëVÏò¢”óÃõó.Ͷz¹0sþÉ­Ïç8/u´'ðð¾¸_Xc—ä&.-„ÇÎ +³Ÿdˆ«•ì/†›–%kÜ¥ì@äo¤…}€àÍ}‰Ôaã>r™ëËÑÙ_·Å¬y¼¼*Áµ¯$e«×X&8\&b>‹™‘Á7gøºÛäìÜïœi©báøûÌçcÚWÂËןÑ0a Õ”F„µßÃOáçqVù®_;ý<‘lµnüô´iáçú*µŒZ¹j£nÎùaU(üLVƒà&fBB‚mq Ú1\±njÚákU5/Ê©loBæú¹J]!þ0‚ëY!à¼/ãýµQwˆ™×Å]ƒ nÎã !“” ®ð¾Û¸o—‘ìI S;¾¾VÞ×3žUëÈ6}ÌBa”pߺÄÚÒ¥œ/¾ßÙYT˜ÃaÞ=¼]“38<êÆ„WWÇÀÌýGn÷á¿ ]Ž"vm%ÃxQÖj¸ø~njwwK`#âî®{2ßÇÆ}=Àdß®žÍ•Óaù6€‹$¹fi`å~™GLzüþ4¸4ì?ÛN +¥aR6ܬË0q~½ôÂè†3ÌFº¡”ÙF]˜y¼çÚRîD1]v¥æó´ 2r¾:‘}1ø ù}QÊï—*É'l!ù Œ`°ï¸“~|-òˆª?ûåŠÙu3N&ïW«ïo•wãUÈå~å(XùWæÔ>0¥Ô'мÿO“ÉN0qŸÎÏaòޱ‚@æ÷Ÿ™4'uqKø9‹÷|wzDÁÇÕºwò{Óf¦Â›Ž.«=ÎÒíÓEËÉïkuÃyãa¯¤†7EÔý"sPLeQ±®£}wþ7o9.qŸò<ócx¿Ý\7ÌÍ—Œ„i(ml&®çøžŸ&¼}ÅÌ8Íìª5L3wÛk÷˜3³Ëààú²Ñ×™%¹°ÛwО}ÎÎi}në^XÇS#ÖÃOo‹×º‚M÷d#È×» [ˆTûØiîÃù¼ï¥¼Ÿ…܇ øûL•N|ü}¤ˆeâ¨Xr½•î`ÅiÛ^bØ›_ôŒÔéiFò¥>{é{ö0*©sï‘U¯†Iéióg¤ÏŸ¤Ï='Ó8Õ¶YÌìÌùñ¡NáµTR‚^R*ŸC½R)@µ5aP\«¡¤¡Z„jE(n¥ÏMGõâ¨A<×  ƒjµ!. …B‚:•Æ @I)@!HZ)¬U«ÄQ•Z€jqT­ V#B½Å0Ôaa$ˆaèEhƒ­ôjĘ5ê0¨¡! &„B¸V,¬F£“B¡Vœ¬'K"¤¥ zRP(NóÕ l'PÓתÄQ1#­&l4A€bFZ) dЊÔê¤ÐâhÅ$1fI-B1HI C+)‰çJ:µÅÉ âd±Î:‘*„vk¥£ÒIáP ¸VŒJ'F¥ɯ 5 µR…zêÅQ}‚ êP¨Q*E(¬Õ¨D¨¶ØN¡8Y'B½> J¡Ð neÖjÅ zSH'‡ÝB2RU—Fõ?%&¦ÎIŸ4›Ü'=¡?ÿ©Êrrcov/data/olitos.rda0000644000176200001440000001626614660616401014336 0ustar liggesusersBZh91AY&SY1 éÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïÿÿÿÿÿÿÿÿÿÿÿÿÿàü¾ôéÐÛ1¶Ë]5R'0ïII†€/¯¾î.tÎík·g;¬ä‡ ÝŠí…·]‘²µuÓY»rÇs "D#CQíIµ<5==SÊzG´"iáM©èОÈÕ6“ôÔôÕ?TöƒMÓ2(<ˆ~‰é0ÔôSmI£ÔòM&P.à>½Ý5¹)qÀpröÎ[/vR•›Åq±ß_-kZÖµ­kZÖ¸qàr!p€–`ÅzêßG:Ò ,ÂóÜü€P…Òs£J 85¨3)A·HPˆ9aGôzd1¶4Øä€þ«±M1À‘dëlHH\´æ‚†ÚdH1R2BÀ ¥ƒQZÈŽÜNßwÎF+ý2~Ší Õ–õü¦e”ÈH 3 nöYÞYBQûp Êy$< CÌg Îvµ€S®üänzž\V vnn(!ÁCˆD 40z^t„Q›Ûc! Tè´yù-–¢¶ÎgiˆÃä&…V$š‡t¾*H9#!„SñºuŸ§åh¬$H£‘ØŽ)‰¦˜$ÚívK^k¢°o×W4µ€1aÙÎFްD nuÜ4òQ‚2¶wXÙšu:ÇkŠg(-´y§´\<áY§ ÷D«Y[&xZL$|Ñ—%¶˜>G%±Ži(¹tJâU92 ‚ ÀnXÛM“* ‚XÁÐW’ ãûAé¤'†×Öê|yÖô…h¡“´ 30œ^;Yc]X2øήh\ç y¤Ý=ÓåIÄœLü×øÏïĉ€‘gÉÊ]Jh‚ú"W.W„‘~Måå›5€¬¡ç¥tÚjÞ‡WIš« uÛŒñýÜÉû«Š¹A"D%vÍC+Ó †œŸoÓ÷̶Û–B²Fò}ÅúÊÌ7 \×¹¹˜Z1¥)4Æ‚sœæa$ ãzØß%fÚCM¶¦$"¢µƒ9Öi¤­­ 1­/?Ø@~Jª’ÿˆPÉ¡¿ÎFß×ð]]ü‹Tä2×KpÜÜʘêR‰æ‚ö®ê"$Wøãe‰"€•ß±È1“ÏQ=ùu ¥»ŒÃöu jä’‘{{ý½£‰¨î²rËn Ì"e¼Ì\â{,öç7þ9:¶AlBCÎ>ËŒÿÑÆ&çw¡Ù¹¥ ªRD^hì$#áý1ƒ|£ n`%fX¯ëÊÒséË_ÛIä:çg‹uج·ÙÈ’=¾ŠúYŸûìÌd¹ ®co±¦™åÙÁe¶æï…XKg­UÐIà›ÛûÍÝõÒÊȵ‚>Z§‡­?>»€fýûD33 öî¤&,lT èœ0Ɇ£…D© iø6{ysͰ “§qŠmõK`èS™ £¬iŒ|ŒÒì<¦†mš!¢l~¯(y ? P¸"uãäM:ktH0rÐs˜+emÙ¸ÎÔ¥h5±¨/ ÒR îH«ü»<Ëyçê¢yŠäYÀä v# í‹ 4[µÆžÍF×}rô€íP¹F„ò,A˜¢ÞÌÕÛ2`‡µ=ÃQµ†««eô;RËÜáâ/‹^…’o&Œ®i‰ÁR%Èé¤;ä±`€ðÍ"Øz°`æžl.Éìc}I[<I›Ý'òf2”JB a¶:@!8‚# ´ Q y5tÃõBG|ZÝ ë 7¢`€Ai鬣zÉÑ€ D¼Ô‰8¶™PD…pÁÔD ¢“F¤¡¡àe§3ãèÉ;:ùLÒå¡Ö©mãäŸ;/k–ÀušzØ,\ÈÍb™Ú42c©u>WÒIsvˆ±¶Â$Åɶªæª@{7ßX¶mPÃw–²cÈ™OFè0wËÀP ¶s¯²} †½—Žc,0”Q‘ê§§ ¼‘5GD*Š3×G±¨`œ)¬Ëâ -r„€î`ù)mHöÒó% ±±ž©rdxÙØXìFBªJˆAŒˆŒ"‡#U= ŠÄü ƒ飹­ÂK,8ˆ›|b[ ‘‚¢¦†ÖæÚP9x•Îo‚4Ü}}×Bà‰¢DøÃò¶·y‘ÇÏŒž™osü£H. œoYÆ'ApÔÙÄ\Ȇ Î½ž£ª;ð"\Ö–²Á=©Ü‚ĆŽdH¶sm y52v53Ç~¬Yó.®ZúÝw˜ÚÍ*O3!ž-e$†…FÊASr•ŒL]&¢ÑéAÊR]BD20š‘’Ô )«Œº(&•æTÚ#„JXÒ‰JôŠk;yã qEœÁÖ…-øD¢írçÉB9úŒQG7…—Å –8ê'4Ás|ª{ë—QÖâgŽ¼ÑÆú…‹â%Æ2tÆ“Z$ß1€Íq+VÃuWãBKÄbrW4l1ç®Fä 33Q;môÂú/TõØÆèÄE]Jƒ+Yó7SN¸e­©ÅN™AV0i áÆÚ)®ƒµÒK ’ÔÃ,n˜¡RZÖ’ãágÛÄ9ŠB4²RF ݹ±Na…T”ÑEºž·dk•éÛxû»¥»jùð© {$¨f àp81€€ “r“›‚S‰ÈœÛS‰ÊDá8†äÜäN g bDa6À .¼¤«6™¬Û]š”ÎYÂÑñ9äÜÀþ ˜Vm…¦ãýúò+†æÊ±Cw 9èÞ!£¨-†#7>{:5L~»QÔA„ôò=³˜—×klæ– ÓDì¦h±‰]MZ¥,é “%k›¥3®Çu4/ª!ÐLHªÐ©‰ (4ÂÄŒ¬õPõFÂ×+=¨ÊSã<ç\e~“¥5F´ÆÉž‚™èEÚÉ Fª v‚ÒˆØû(¬Í,JKH/¾‘˜³!†9T±’LF<´L£Ê£Â¢­z9ßbd„€‚¤©–W@EùƆÊ)SEBëîÄt‘².’È£E(¢GèJ–¨¢ ’i(ã ]i IŒ”•°:S Å¿Bãa¨ŠzPº“¤xɈ€€‹‚Òm `1Œ`ÛÚclbc`âH‚!"!'‰‘j{>û¹œj%í‘’­é…¹~/*îßOÑçµ¹ZõV¥Qj+q-ÓÙ1Í*Ïêäê ¸ëºbêartzEJ§aH˜ù2М>Ýó‘2 ù½àó];7…¾\¶gûò?CÁõøý|„!âB¬Æf¿I8þmû¼œrû”ŒÅlŽË„`Y _!qù“#xÄQ®ÔHà±JÛNyü»ºÐN#·:;7Wx⢔‚qZUU7S‚ Ä¢RU©(q:AZz ¤Ä6ì$% ù±³„!¤½h#J3cÛê91¼æ|yôrŒÌQ–r"ÿJÖz…»™H’­]âºv¶¶F»š3¢±HéÎÃ=]"*,O¿ÆÐ¨BÌ-´$š¤=n_}t˜~&”š¦º:sÑê;Ú¯ïàX9K€í¢ñ$& ÅÎõ¼ž1»ˆÔí©¼ütk‰Üº1 ©È.˜H!vÆÄ2ðDvÂáÃÒ‘D®=ög¾© ï Bêäa˜é-C™”ô!njîî¼^ûkÎX¦§£ŒšëvuT!JYÉøV5Ù"ûAAÁÀŠæàs"†õž3ñ6p3AöÍ"a e7<Žíír¢Ow„«1¸¬ÆÁú‚Ì×kž¾(€á.î“m¶ÒLïÒB:Ãè\v½uÆnã7pcsT•µ7å¶#}²‡Gì‚" ~OnH+ÎsÆ»· *†)XëK#éç^RXý{;o!žÊ`r|ÉFÅÛÌ¢ÎxºØ5¦§'áé' y<‘ta[aù›jCátŒf¾(®#"$¤ךÇ|D„”õùAܬ·Ÿ\Þì`j¸¼‘Ïßßã* ^ÿŒü …Ž&}¼Ã DD x‡|ØÚp’HÈ_^àÙÝ]|ífF’@6€ô¢iMÇaÂÔÆãB^&ê]¤µÅv¿g=ìÆ^¦ÒRMV•Öwoý¡R›jÛ<…")R ²À¼¬Pdù¹útˆVŠŽØ™Ý‹Øàéòá°#äy¸yž<@’˜™£q!Æ 3˜Z‚£7ùð-½]œ3“¨Öá§`ŠOq©®ìr0mÍK2äN ÇXͤ³½N ªaC*FE5ϱˆû>øÀliªo—>ÇIop<äü/A+ŠÔÚ39¾§>Ö©qP·‚]"Öi‹,\Ôe¥3wA'{Éüú F¿E{._† núV÷på ¤v¿eþQÿiDM«ñ.€˜µ÷zèb…#ñ!¢óžUÚÅÍá,c{r¡Ä–!%>ÂBßgÌõ-îz"?;KM˜Æa'ôzsÆd:;zÆ8;§Úlƈ"!¢˜mˆ‚`%GOº›Ë]×ó„?HŸÕ'лßuÎèëgβ•Id@K«Üyaº‹lQd¶—^çhª[u>gÌ8ž‘EþÒ'öuH£ò] ò%¤ÅÌå’ë{Oüð¯‡îÏÈ$IZk‰Y±Ø4m‹kh œ/ÃÛÍõîkî_cWßôØ®×2&ƒÜê­@〪e3wP$ %÷{ykj.Q@ðÌâ€Jn©äoœ=E0r÷þM¦æÔ²–ÿ#p'T Å÷û-œÔÛEŸ˜=Fi@¥ß°:›qõ@Péw=n û•¼Ñ½g)ó4»ÙÅB‹YÉmõµ†c'¡‚*¶X[ŽÁ[s×F°Ú=6•++»_M‘£Ø[*4nL 2™¨ñ"!ˆ ‰¹Zì®eÀÝõÅQ¤è¾8Xˆ"…á’t K´ÜØâ»K 4=ì]ÉäM*}®j…ýSWWWgŸéj—,’oîó±N¬j¸ñ$–Vëj5Ûš~ž˜¶vP†œm=U³ÌHJx®töÖÙ¾kWžëß°æâó@ñæ8Ì\| žìÅÊ!´ÛdŠg¢%TÀçç©qJ¡æ£ °¾£ª¿Ó„™ã²}“Ê—g;覡 'CCCE%uÐÑW]>e(Çì‰%ª>ì¡}æx’Ayˆ°‚B ¦«kÅ17nýf,¥Æäl亮ñaçëƒÄÜäT†´ÖñØÖÂ`$. w×V¶_¡½ç²';ÆÓj–ö©H§H’÷ EÓ[E2g­ËŽÒ².}?R2ÄÙÁ¬å¤€&ÍÐñ{nÞ-pä8Û ÎçI¢Ø¶h µp…E¥Åu-LSîÎuÓÄ¿QZìDA„j <:ŠP& # ?‡LF2P=—gÖj2ä5pÌíñûŒ¥ycGG„°fàx›ŽÞÕn Œ§¨ 35b8щœGÀBÍI×SàõÜÄU¡½¹Ëޝ‚yòxuÕµßÎv3e&‚H»Å|Žf†‚€Ár ¯ÛÀgmÜZÍù¿gßÄ’EJ1RéÊd%ÛKÓ;@ß-;Q<‘ëêéw/ÜÀkùB©qœép¯¯²+ ]æNjÍž,}×½ÐUVÖ8TŽÏkÀ˜""""u0Ð$,(¶–¸2è§!C-¼fÑC¦!Š }{Ò°wœ{8®¤Iâœ@‘=¼/­r±`\pˆ‰Dƒ¢õëÃq²_”²/±ò$®1|Ö:¢•#-©µ»Û]Àkô$eõ[˜ýSêæ) ºTÛž“2̸<Ÿ(° ÞZ¡‘ÅÔ)DÔê¯m{ZÀæu&kS©¬lõÚ¶õ7ôm"ù‘!Ó£Â3]èBŒllšGx¿£4á$‹Ù«5hzÌ.ÊÚÞ ® 1éÂô^M¸÷™_wiŸÜj°"ȈÛ/±0¤¢! ‹â1%Hjñ4¦ÜʽŠò~uzꥉ‘HH8«y7„!ás¥ÓA±ä¬ AºÕNÃê+"›µ´ ›.—©á´¹‡’J7Ùz<±ßäù¾^‡+¬¡›=’Çi{”FFH÷^“ ™†nAõ<¶Únx~g+AÖ\ZÚ˜mD¶½ÍWáBÀ4¡q‰ †—‘yO{Ý-‚ÀГŽõ’öÙÛšÀ®¹´Ò«’ï£ý_d¤„¨pÓG¬v‡#Œìg7²¥å!-Õ®™ƒêÛsgûgºìÛrÚÍþz„’.m•Ô#+ñµo+š½Øô“^ÑCy¶ÈÛt÷•Ð4ò F½Ñ¯¢4-dOƒÛm6¾X—ºÚ±Œlj$l—³Ïy‹ë ¢?o)ƒŠã‚ãõÀ<´mˆoé´Îð1¿áûETñbȈÒùÆØWØTïôÊšqw@” C—J‹5n’ÏèòÙ^'º'|ACÐ4y^ÃÜv[ÞuvzÝÎÃ=$£ƒ`Üj¸ ãg6ükËÇfª„/% ÂMK«jó+Ù‘½ÌƯ½Ï_×/[jjâ³zy¬.äÀ|Dñ!‚ˆý7´ QJânÜžcR¶ÛÁ ¦ÚA€@â`’HÐiõHÃñ_¦Ÿ=àcI„§).ñy˜®ŽªTïA^ŠuІ¥XXÿs”x5A±'Á<)¨B¦´›fÈOÏ À-~ƒIÝ÷’¤€U¤}+\ÚóЄOrï"JFòÇÄö [Bö@$‚y#0uC ¥8—†Œ»ôø\tFÍAj:úSÖe128(ÝQî¼V,ëm¶1ƒd…ëšI“ IQ¾FA4„Â"sYSËÒô+¬l¢nŒv‘Ê´œ•hý¸™O %ÀcnI«šÇ”¨qj‚QLÞBA2¶YGÊWe²ÙæèM)J‡Y¡ð®"f(T Ú‡O|o\•ÅÁ\K2tÈ)û Ë™0HóP—G`µåÃ=Ì`w};}}}üDê‘6Cb¬„+P`Ž{H»À(q3þÿ½ê ´õ–[ {×yx–+¨©g½åÝ‹Úz¨Qu{!DBL⦛Îy#ñ¶!@òЯúi‰*õÊ6*>"ž«ˆÄi³ú øJäáÐ.ª#Og%Rõ_;fA‡†ûy—òP<=®×‘+&®kèiÑÄ ¸hööqKç"é¬ýÓaÁ‰ÌEjW¯:ýÖŸWƒ€G7bPBnÿ#s0¬<ÖkÙu7²SÖÕƒ˜ûQå,AÿÅÜ‘N$'LC:@rrcov/data/diabetes.rda0000644000176200001440000000325314660616400014574 0ustar liggesusers‹åXilTU¾÷ÍL*‹ƒYMÀDÅjµà‚-h•¡)Õi§vZªE *Tâ£Q5ŠÄ‰+.¸•€Q m¡"ê©ßy÷;:êÿè›|=w9÷œï,÷¾ÂÔ‚’±ù%ùÆÏDcøÁ0êá—5QÓ ²gEU|^¢>‘1&r<æy@àëÒ!›‹ÛüƒÉàÇ?Ø¿iOáÆþ~ÇS;ó'Ô>íw˜àÇßW,ŠSýÐn]:ÔÏ®‘ŸÇüöÁßá­+KGüì·m—ŸýæÒ²âÜô[ÄjÓ¿™úíÜW;­g?~ËÊ`Ã? æo yé9·ƒ(úÍ”Yê¢NCù“ŸÎUî%?¯-8¶Ðo èô;¹¯üÔo®=§q©?å­y óLÙÁs­;áT¿š–Àí?(WëR¿ƒü”ç>òÐzdY×lpì&¿ƒñRþä§ùê`Ý:Y'µ¯¼µO´^Ê[ó¡uÖý¬öI`nÒŸê¨ý y ëG{!ò óŹ湓ùQ}Gý*åæƒñæÆò×{Á¸´Ÿ²9ý¯÷EõµÚ¿ÊOõ”OØçä£uͽ:׸Uê¹?ï«úËÍ»Ú×û©u õµ¾ä§üÕ¿Ö_ó®ýö“¾Ê“ùÖ¼jÜê_ëÍ~@ëö–÷(â@0›˜TÓ¹'˜Ì¦tÓ)⸜ºz¾¸žãRà `mÎàørž»’zÓ9¯ ¨—äþuôWF¢?—¾fr_÷fpOä,`Z7ÿ5 ,î6Ow0Fáõ°ŽçSÔ­ MÑyŽÜvà‹Ñ¿@ž)9ß‹1òåõbþ9$úß~Gÿïcãüb¿åú{À¬  Üš'1> ¹@~b¨sìSŒ?„DEQƒÈvw †;™ÀNd5tÐ×ìÇŸ(ê)†\‰|{ƒ ÑW±ŒQw±zè/ïG¬Ãn =m‡\…ùZŒ-€œæ ;ÚKA?¢Žf%Ÿ¶ òh§A¹2‹9X vóþÍ›@=ûYöQ³xq€ü¾^^vQG|J z@näÚë@XD½g°?ˆïÁ-ÀdãÞ¬¼£RóSÉ 50÷Õîþ™uÔ/漉± ÷zȬâ=”žht÷Ô–8þ&ãî´=èî£yœù|I϶0ñuùoÃÚDwŸ=éã‘ã/»s¼;v(ïr/{o´7r5ïÚ&w÷ír‹Ü³=eî¾ÖòÝ@¿šξ9‡±Ît¼Ì鯽{ò¶l`¼R‡QÌßzr–·`;õ{3òÞùqï³ð•÷]bÁ4ƒÙ;}ÍÑ^:—~åýM1'¨ŸiäÚ<ÖñlàãzKÞÚò”³§¸3f åú’7³•u]AŸòÆÏ¦ýaô'ßµ"æã%Ž·°ö’‡Bò—xdz/&S.2î­^¼Ms5¾ãxFô^f¶š ï-î—Á=7k€_1?Îù¶}\=ƒo—ôîædk ߪ \άü#Gj!½œ¦¯ß€/°××­ÛþŽ£í Ù y¬Ë™íÇü|bÜ÷jÆßxL§qw}ôŽp~׸^–ú.ãÛUèï8b”o˜|‚wZú9Áø èG€\[¼Á÷k"ûZê·š9‘xvðüV¾Õ»±ö×·¸8#ÚKö/gìýÅøïôÿɺ÷/#òßãÿW—J,H¤ä5ïìrµ&]WOéÿ'”ÏOTW•‡óXzA¢®>ÇP¬<ϨÐz2^^Ÿ–¿äª×Ä«ªžÇE¯®‘£H²¶’Õ©†òt&¡ÓªšLCªª†Óh&jÆ*ëÒ µ9ŽzÕ¥G«3¹EÞ"üêêêJ;ÅHWçüŠx}|t²Gosäw¬=-srrcov/data/un86.rda0000644000176200001440000000422614660616401013616 0ustar liggesusers‹eX{l[Õwv§´A êC4mBKÉÒ¬¯ Üc;Nâ´I“8iC)d'ö­sû^÷Ú·i3MÚÄ"öÏT4&Øþ™†¦¡I•¦ ­“`c0´ ic¬iY©–•Aº µhçúû}Çn°ôõÜsÎ÷ø}ó“ŽõNîŒLF@m >¨þ­SŸõµêŸš@} ÑŸxö÷ukÕwƒ¢ÕŠ’âó?^h=3zYÜ·á õ{Rìh™_ì?Ý"Zw•b²ûÌèÒÂfãOòOt¼pêȶåÅ—¿McÛÉ·_ùÁÙȽÇÄ]mJz~Qlý)É?j—Gã½?ø¿WDKøÖ-ÿDû½åÑ÷Ù½ÅWûÂ)}Æ7tU¬õÕ/-ˆ}'F}K¢zZ!ß<ÍÀÑy(âk4þx†ø™ð‡1‘¾Fr‰Ÿ‘îQZ_…±zö•ð·ÛèNÒñ…=DŸÂ[¸Š8ý ù»DvŒ÷‘w¶Û£;lì×ÁÞGàûçù[F^Öaÿeà}wpq ÷GäU¬…_x³¢n¯!N°'긮àÇ;8_› ß‚:ã7ÑÖçHÇ-}Wà7Ÿ§eÔQ3êª ö:g)n87Ƴ°Ço—vØÙF}Åx uûŒ‡ËºŸÜðëQ‡Kè;wâ­úµˆÓ?á/ü0Þ&½\OâKÝ$×ù#Â΃xÛ-tPœþ&Ù-.QAÀú¼=£ÆV߃xCN½D85fýÖ,D(ß÷|Ÿäº¨®Åä"Åuì{ôµI_öN꯱óTwGN“|-ê1÷(áž@Ü醴¨ˆÎј ¼3À›}šê±4Nv¢O’_¥e¼'œ½LyãmšDÌø¶¢ïOÒw`ÿÜO÷àümA}?øÅáï’\ú$ùo¿A~®Gÿ›È^ê µŽpì|„Æôv¼}ŸÉ‡IïÀ%ò³ñ†¿º¨çE|;Ç»öß6z[‹81¶áý²›öuÂ}n¼‡º?‡óŽóf¼ŠþÆ}ýÝ}šå™ýãúÛ»¸'øówzkóÛ_÷qü­a¼ƒ>ÌçðÎ/ëáû‚q²^Þçužãa\Àùc\¯£0~íäø>ÄûRãþ+ô¼óÊýô,Æ•öù^>óÌr¿])?/Ï/Ç•ýçøq¼>oä ýCÛáQÛY!Çyåwï_\áÏûˆü]ñwrЖy³ ?8°X7r`„?‡Œñg<ÊŸµ½z±X³ö&†y<¶ÒN:'‹l‡#Y’ÝG]a{£ëÌuWCK²HôhVÚV±$mfºYÓ.Y¶Ô ^±äʜŠå=ĤÍÉŒYœÁJ8&Ýi™qŠ,3sYËËcй²hå4³—ËÊŠºp\Át‡ñ„âÒ–Þ Æg¬œY5Ñ0Cñ“×Ó&{¥—î,¦«{¼e[iiO™…nfJ¤=Óeu‰ìÉB “¦Dn*%sÇ«öÉҌå*qè³ìœ´3  Ï•vš±…ú]ÓÔ³Æ~O–̼Ìi?¤U²Xñ€cg<V<àÙ*$'yšL›Uv‚I;£14ª‰c›E½PŸtu*ýïcZ‰[­$”,ºÒÌi•%™csÁAYÐ*BƒŽ›Ñ³à>Ç5uÞ‡TZ²²8+u‡d®¤ó1dž°Ò›r\'­§MÃfiÆt}@ìtdØœ›:\±aØÊš• ;îœd”á9[]¶¡U&yYÙueÖÓÜ¡§JqxÄqK^V²û«²Xšê7ݼ´YbÕ!ó³k)ée¬©¨+§+E2m³¢ª!å䫎J0U–†˜š33&ÏšRsVižbÀ¸Æ¥=¯N£öb|FZUûõãNVtÜSǶœqÏ5µ»êPë3³z¶JffjŸeg3Ž>…® KÔM¤¢le"•âvÔxPy7n#÷{Y§˜“Ç+–Ë|%áÃV~ZNÏùÿWñ©OÿU:ÒÄ[rrcov/data/octane.rda0000644000176200001440000011722014660616401014266 0ustar liggesusersý7zXZi"Þ6!ÏXÌá&¢žR])TW"änRÊŸ’Ù$ï‘ö¡¸¤w“TXšm…ï)žq¯3àÍhöùÌÖY–!½`1ŽšаJš³¹6Í©©ÔH]¾ˆŸ'~M' úwýîCã“Ê©þŸqû ªžÑ£)¶Þ?»¢FVÌë@!c‹¶ b½ Hêm*Ù I&péP3ÆÆßÖÉãÉ’ÙñWV„áN~þä!¬U¢>3¶zmV7 }VQêö‡%+°Åÿ©% h9³ 5-M7(éÀ¥Öïé>€¶œ‡m@u„º`ÿ>í¨ãŽÒtß¶Ƭçù2"ûÙãkn/bÞ!à´<ÛTµ‹R\¢|‹VS\æe{¬ˆ‘àŸ[:nÀ‰Íbœ }ë(²óÈË3e8½±Õ¾‡zì ”×cE½é§ äG+¹š,*žÿûÈK™‡Þ ß ÇÒ…ð„ÚîD&¶\~;\…e/Ÿ¬Ÿr=›`¬}æý“II‡™ùAä?ùä<¢³ †‘‘úJ&àŒvtzm£œ¾ÅBêzg¶»ß‘ð.—zÛƒ·Ò¢&ã‘‚RÈÔr`µÖ-«5ÍJ ÇåÙ1 ®åUûRú?²)%Íá¥Ea¿á©B=½âL9è¤&Í&RÚ-¬p60“¦tn8㬓KšÇË¡FW!V¨h®¼Ò·þW·"çÚ§ƒ‘¿©jw´•)ÅHÄ5ùéB þk9 Œ?ë&­éø æœdE}NÙ••{¤ËNÛNùØÕ? :8Âß÷ñLž½ºYÓߪmùø5ÎÏ䀤L|çD’-Na—„ådˆѧÇÇ ì9­ƒýOåSÚàxªdåûs¿¿;Yš‹Æ-}ßÑÂÿH•QýûÁ Ú™äꈛñÓ}àtµCæÉN\L·y[ÔdßtíbÔ8b­…É6Û}˜Ú]6É5؉Lº——< BCø­¹½Ïõ”$‚«Òà ³Œ$_™Áí`1Y…ÎP´§ùçj‰& f— š Yx¨»ÛðŽq‰ÅÎ%EPÂ!ÏEô¶TÊ úZ>jðmg¹e¿ù6‘‡ìH`]Ù¼¬–sÐÉŠe}Rw;kîñÔ+§];Šw\¹ ˪˜Öï¹‰ÕØ¡Ì%»U´¯fç®Éh†Ÿ £˜Œì\56‡Ây1ç ×Ú´ÍçU«¬Ò^”Lã~¿Êä®ß€ 64’sŸ¥zK ^›sÎ`>9Ñðž`È ò¤®þÚÂqìuÃh8Úõ1i2Ö•éJUšñk¹=Xt~ÉölÒÝDðL=…&¢;ü`ž0õ‘üÈÄ,çîá‚lø_àY žøˆœqû™p© ) 5æ»í[O˜<¡‘ªTRmí…¼RŽÅ÷óY0d2KËÞÙIŠäÈðÊ-ý'&þ\¤š, dd‡iHùÞûa-߇ä®R”fDÃÐÑçôÔÃ>§Oùp~™‹@ÄŸù³Wܘ^ì7þ £·|Ô™{pß«n†{è¬G‚ЯABo¶$‘Hí‚&á<øEù‚ §¸ë‡Aá`óµÁ´zr6ík”øsêár?Þ™ë …šT=ú>ô>ÓfßÅUl¡ˆ×XA<À$ÿSžápè÷ ¥£µ\Ú&uß™¤ R‹9qèhs2Rth;áÈ:äay‰.°8_e\PþJ뻎üÀâ«õÎТÜÓgÔìæ}“ç ÈB3-¸úT&~©Q5=(1Œa&}i\ :sN'8ÃÖ‘HZ :,H_V,ÜR=Ï3(XdèÖº­§Ï¨ËÜÄ›§1‡Û½üvAp¥¤Š¼ÅŒ{(âëúOc[µ¥„Uª\°Õ¶~psý÷eMÊ–Bï¼íoÊ*È+#Ú¬£B/ÀÁß¿ó·ŒBO†«Î8hX𢠑\ ÜaŒ£ÓHS eÔëäÒùT¹ ²ÀÜ_³Båù&Þ8g sô]3!Gv!µ–›o¿A3‰ §ó¶ÑÇçÇ™G\²@‡óPûº‚~`çø›ÍŸSi°;XT—=àCKpî/ŽÅÓ@}¥ # 00[78fQêíDè2àLà*[Éa½Ý2ám©*yª2(X’S ̺ÅlΛê*wÇÝ}ŸÏÒ“át¡_+õ·²o<:yž½ ÎP¦ò–9  0en Fžšèb7yÀFµ´(U¼m@Ò¼Eãæ!h´1û³I{ün?7Rº<2!”‘‚nS1 ‡gzF!PFj_ªÇ,ï2…Ê’ÔŸÓ3sFiŸŠÏ' Íðœ ð'ˆ| q)| ¬ßêÛü-íi;­õ—UµßûÏý'ÚíÌ…×m ¦åM—•3á#IŸñ—6à4Lãõ“ऺ8Œ•œU–›P\Ï,[Öh ¬ã¥^{‡ö2†f`a¬“ÿ[“…æ#¨?ûpúíVL]Ưd€ætlo¡ Ð:òÁœCÄ-ÇÃäp” <€—‰ñ—®T6R·ø¤°O6*Yxz¡”Y¼äJÏÒnF¯ð¿8¢ZRýÿZÈ1²ÐL…¡Ã¶Ò&tèdõ´j/}Bĵ’j2 'ëµü,i˜C¥KOùfµDúÀ¡.Ã}‚â ov“¥(ïŽÆ…×Ka¶º325-²}µ‹² X<ú`2ëò‹WT¡l•:™³ pôŽ‹€U6[‘¬»åpR¦ ETú×”¤ ËèèG¹¶Kì#ìT¿".à¡ò·¿Jî£IR½ïü¥k¹lëÃ⌚yæ¿´½øHªj…)?ºhù²­…ˆÉ•š]¾·õ4ë÷xP¶a^·¦?põ¯O­ò\ëjGFÛ¤\Þ$g0€EV ÁC¼¦©æ[ä‡ßûe5GµOng#ÂeGT,“ùøª£zwns¹6:ÌÏ’x^àúʼnփgÁ£±ýØ÷mJºO赫8†Î„^\½omÀÅr^˜«":YÙ§¡[%~ø/Á⟀§HÅž¿ci24• C)3SÍf¡Üµ¸4ÅÌ·x¨ýóuoäÏ&ÿW­6Ò,åw°‡@Ž|-?O¶~&ýŽÁ&ãLOûiîÕ¤ÙÙ¥Ö·GGVTŠ%@kól¨ŒT/±1Ôh¨ ¿BPB"ü5ÝÀšß|1ÖÑ‘ äd~½ó¯;_äR!êáF¼ÞŒ&VR Ì»|ê ½” Z¶……ÈOÓK$„$>¡#@´Æ96r'õhÇØÝO%¤< @6øJæå{_"¸›fì%Õ>¾Ž(¯ÀU°ŒúKû¸Õ@qÖ4+N§ŽÆ½D8oû ?¥ú”‘¯,¦¯æ µ¬Èßßrhû—ß:÷™§Üÿߤ٪I¤/)Í×åò'Tyii;nœe¾“ù¦ºTÖÉ¥vð”7`w†$/öt³W‚\~•&vè¯wÙÞáÞˆ%[›¥9f¯ªƒnä¿fuß—`(naEòŽ”V'MˆæT[ -æ<ù±-h©–OU0­ô`]…5ô¢*mÕtsö÷alÓ/lœ4ø…6©Ú¥Løìz €‚ï’["¯Q=Êæ~‚ОւÑ-g8×rÖ'8ÀÚ>ÂL¡q°'“Š]îOI@þ¯M=0³w¼XÁ«¶ ¾L€û9Ò‘+§y®<Úö*f° Ö…dµ¿œÊÌ>‡„q,GMéý§ŸèW€1¦Ä¶-´B¡RnQ˜sgÌzFæ²B p&ÝåŒò¢- •@}ú®DݧÀò//OïVZY"—(}»-¢'ºñ`'‘1œ-NçgµfJldPIç]ènwÔÐäT˜õT_L0uQÐüy÷AúãiAÅ]ÉÆï¹ÖB7í<²àË]gs'­½,Y˜Ñ!Œ:—X5jT ‚Ò/Mðqýë»+± byЛ'÷«Ï}nb]Bc:5>»~¯-ÅIÇÏ62´î›ÜÆÑŒa×d„ }kNêëfAþ¬©@[r_Ý£Äõ„l„ü¼GTt7tŽÙ|?:¿ÇÙ§z5œj¢Ò8hbGã}`dÞÈ‚ ï¨Õ!o´± uÌ Š’ ZZ” ®oðC¾îµo¨ãD¸¯ëâ¼Á´:˜¾#NÚJ“Œãí $ãùètƒ¦˜ˆzÔ¾(­§s²ú¼!ȆóÝãæE*雿‡qËxÛÐ:8"<Íûv·ô½lÅß‚ª_´–<‘D:ö™ã:¦ï®>áLU—}^ÿ~‰n^NP¬(®Ð`Àæ³|ÇSöét½] ë÷<…®Óœ> ãd`¯¹ÛàFƒ@œÜ)QךA¡`BsŒqîüNbãO%UZÇÏò×ôÑ#:Üþ6(v$GºtEæø-ò@ÌÎölº™gV[ç}?¤¶o­ œ\Ç>T\ <)ùda «I1ï¾éA/hÀQAWõŒ0l{%8rIG7Óbm ùWÆJÆÀH9"xvé6eù¥ì@¸yüë—¤…#üÏçv´Xðª6,gûTÛÔšñµ–¢oôÊ[(¤5ÃSŸûê)a‹Ý?G³q‡­åÑ*üw qÖµâÖŽ½—̾)tG"Uq+R®Úîh0³-™™À¡Æ­l9Ãóxv …ß´‚Äï>¿ñç’'yŽ×d."J÷Èœ—iܶE,Øs‘ î™Ú®ðI:f‰HüÍù"ê ?n(OZSc›È–ÕPêJa—¯#jy´/Rö8¨Ž|}5Á¶ñ¬Ýg ÄÓoìé­¬~~ùP%¼z[±we 3t>Åcf–ÖVJW,Ÿ£Ñ­øÈ”¤D’ZQ†þ8()®[Ñ*2àC&ëµÁJüQðî¯ñ§­ÿÔüÝ ºÁy)G«©xÈ„¼ÓB8`»гDK#ð}7ëj9‰ÝAÚø°¦­¸Íž”½=„b"\"óÀe€!û¼¯ÿ7²4ej=hòè¢`üò€¢x3/_ï­X‚:ö¨IêÆáC?GbFE¨†SíBA%JZw `’{× ¤«`©ÿèQå[õÞ¼ä²zÅJN5Á€Xmš !/'kÝûïÎV/cÕœ¯ÈCwB%eâ…ÍŽ51Çí oÓŸ;¥ƒ`ñÑž/ª!¾²áøŽ>Äoæâ5ÜÙÉ:G[ê ² »WÕð^è{—CWØ:™ƒ·ó‘ROÞêâk,d¬M¢Ñ„qîµÍú‚ÐÇ…/L½^!c ×M£-•1ËãJ†ª&šX%–PÔ–Äï")‚ê;Û8SË'Å4+ø ·i‚Vïó9ò3w¼Èç”DP\¤_¢'u/QuX$y…£ž\áøv0%ÄOh€Þ­x¿)Æïm`«ƒr°š <›q­,౟œHX²s„¤°xÚ5|(œ.lÌㄜzPv ÓÝÀ$2·b—ƒx ‚zI`¶u¥C?ÉG iÛ1‰J–š÷WÓ„;æ#yñ~Aµ-¼Õ,/ú„zîI÷ß‹BK|p[oïi/Ê‚lôT0üÃïk;dÕ)†ÞÑJÀ”ºÓÐ/øèÞÛlÒO pyõŽVããÔY‡ôo{ûR=ÕÒ«8 NÍ… øí¡Á÷9‰"*Ï47?Æ WZýÝç·ÿ§mÐ’Æe *PZNÈo\Æmgc'êìu¥€3HÐ걞£{&¥ˆ`齆•ÓvÓÅïÌŽ8š"¾'#«Hˆ¹½/Œ ŠÐì›Daü2 rsC~H¡åÀÏÝÛ¬ 0go0û!ÂÂæÈé€þ÷’&*ÝÅ O%6Ö¯/MÇxm`_`bäVx‚WtøMv@ Íf"aâ•‘&“3„ê/„ëŸçP‹/-÷Ëøf•‹[ JÍíwZÀ| ½AÝå@Šu·¥,fœáFÖ²ïŠuæ§ð§6°Lðañá5Tc ¾)¶} ×ߨßÒJ®¯üñ‚ó‰_xûz–®°éÕÄIø4+…ê‚­ÁŽÐN9)9–6ª…A¡Š™åŽe’Ê>®êääjLò{é"65] w¥RðÉ!&Ê—ÆètïqØ9ìã3hiëÃÓÛ¥eô»í©”1¤±OûŸµ[’ÕO.Ô½Æ]q2,q‹sÓi{clæN…¬~Âù71>N'€“YuB Q…Ö#Œ,Ö‹÷2ÏX@M%cu³ïOM¤†Dü8ÊBú‡•ARÌO»®Y88á¼+ŽYé˜Æ“`?c #ú ’M„BFbª~|0LK, ÎаÊÊÔä—"DôA0}a ŽÈBÏ!âµ?ªÓœ¿ÍÐØÝξ–PK°Ì .Ìúf·dDŽ@ïÇú–•ů~{3eQ.— rF«ùWfBb,—XÑCB„E*mèX€ægôåWŠc•l—S›wàl$\ÐñãB`ä}¼EBßuÛ†Qpƒ6À&6Qí†~©a˜€Øçè\ÿuB.Ñ ˆYS5;‹@OḮâÄ)z†“n?æÈ£ ï”KS‡$v茗)7_>Uën«Ïε’Òò2; ~|¼È‹G~žá„Tæ2câÉ‘»Ö;P£®uÃîÚàÄ,:^dßj% –ýGÓ„ÉR7xÖUTHý†PȰ0ú4×8÷æq°µ/%ä¥>Ù¨¹U7Tʤr¦8³.ӠƳ59h~|ÁK2l ^#XF…ïsI~aêg¨ºáŸºˆ#ñ^¡Öw2SßÑ/ì‚F_tÐØxˆ}+âøäìˆVœZ…^×ÕžP‹Êä«8/‘õzt}]†8UÄNžÞŸìi =0ă ×KÏLt‹c€î{‘ùÌR3^Š{㨉1 “ÍK–®Æ}gˆähEÂ¥I°÷ˆä5q4#¡íÈßûñÜFr¥,Úý Û@ f%Þ%Áw ñPï´OñËA`ä¢Û€j„! ’^¬'Â^ÅïcUékC—ã»ä›§0/ .xÙ)¾f~@Ü!H:_„¢n-Y\¢®’û'ùèEô7ŒëQl¶·eŒkÍzLõÃóȼ^öùr£–6Zå•PßÓK_¤ üèZÉGØñNI nÄF’Ú²,y{Ø[U¢s¿ñIÄ`Ÿ»Z k¨JÈîNÍ#ßÀs°ø–9ˆN“ù¬ÜèÂV¾«'[¿_")<^Ê8é5DëYÛ<6Ý«À!¶½ˆÅëã=¡`³—_Ø`»Sîì”›ýMïnI­„Êd€HÔ}qý#ëÌm7ÓК¨“C1ño§`âanÊesìF$LN¬Ÿf SJ'ë‹ ÃÌjN;`¨O/}ä $?[G)ÖÈãkàà0ª XBÊ(³Xx¶ù([.ÖõDÝZˆîUÃG~º³KZ—¹gú@Ž_g ñ“ôFàž«VEq‘ÎAé,Þó¤kPî—Åø•ªv¯ÚøeHëØJ4CŠÉ⦤òpSñZ Kä,=׃Ø/qóÝ9¾œ®VŠ+¨ä~’H¯R¯´rÝÙûü5^%±øÓ TxQ~'äá¼),ŽÙÆÉÆJsÊrÂö^Ÿddo*ù 6Rȃô7ÜÊ2Ö–«®-Ÿi¹Ü?R'ïøEçµÂnmP‚³Y+vkÊgRGýõ‹>g`šÁSr6´o3¹Û¼š’H¨xÉàLëNà®ã¥Ž%é·l¤,kÇ ]Ñö (»ŽÜšp%¼/>óýÂ`–Ä¥àAòî¶À(›ßN´œUÞoê(oA«U>áv57îýœ¤9#¦„@Z’%b‰§¥,¬SÓœñUHµòE–«Ó®ÜJ¹QOÙâ¤ùP¶[·eÏ´Á–û½¶Q_.Y<…àÄ{µÛ~¹ªâq²U®|%À÷> Ð)Ñ­^òfoÈɘf !¢…8·eE =Lʯ¶¼´FV°:o#’•þÂA¾'2¬Úh®}ô™4â8"¯šå)#†%¯@ì¿Ï-d)h|iôty\,žZ±;rÅB_@j’¾uÏòà]2 LZ¬_°vRŶ{ æà#o9®~$?_–CVö^: ™v’‹mÄêÃIÝ%ù¼Rû¡ÀæÛWÀ3‡SkðNs;÷t|7½¾íß'NÒ„}·q®4Ê•ÁBlñ5D±i£Áp7â›—xÌ-ÕNi^:9‘/ èë¼î:¡{kÞl ðκÂ9Ûœt.Ó—ô‘p.ò]E<×6V‡®Àð1Ó˜@ýRXì @ª1àë™ü)H——¢ö­ßG â¸{€,à͹,yB:žÍñ,Ž ÎA ˜5.ÓÃ@Ê 4á~§IXì N†ehY5=UZrÀùãÚ¿h)¼ýÁx¾¶X”…ÁûÉ“-‡®má¾ ;” z$äµr“ìZ@áG…®x~ÔÌŽZôcŽÌèÇåw½2ÈÖ³¡Á8}êè¢H*Éš¤/{àœJ`qÐ] ŠŬì©oÒè-˜)-¿âwŠÏùWòM î‡9|W#ûO=DÀö¨?@XŽˆÒÑ»?sPpÝàNä¡—T&ÖD4±ü‡~G÷sHN%æ'9àk[Y¨¾¿7Ô%í»mªa4k]% óâÅ ‹”/U"VË¿pÈåé`79F–ŸÐFR|²*‹¢Â õæ|_k¹…lñ-¹E-¡å7“Šø“( Ž‹ÜOO¶Ë‰1sè*CŸOR ÊÒýˆ–Mî1BÝ ;üC±¾;‹<ý˜Ç§7±‡”òNémLG>O@D#Ëò†»öñXºs<W,!m‡„?ƒƯWí&®Z°ÜJ:g½nb?¬Î XäçÉ?TO7˜º{]X܈6‚ã78ò*äó£·ÒnÒö’'Åbž#t›_Ôéùÿ6©Qq÷1‘Ž·/á¦Z›ï§ÿŠIù+“_„:Æt'þ¿äå¾ ?OÇìô98ÞÉJÉ„m©MÕ53£¦–ò$Û¼Ž¿ Ä£ 83øÞËô“ÃÂoå¡%å¦ôU«MQ¥s€¨¯,¯ËXÄ Õd U ¨íÝ^6…ü:sç쨨y6ºZéÛc…h }&Ûä¿kÝj¨=T*¿>¸K¦ xuè|(·­÷Ùѧ…{¦(M¼¢díKRŸ×7­'¸°ØêrŠv³ÐòÕI 95óø¤8oЉLVv€¥­N .¾‡KÄ#½˜!Ä2XèpG œŠ£Ç‰Sz@®°WM.`m§àý;1ßPŒ¦]G3„4~ß„»ô(&X»RC’Ý”ÙDÔtpÓV¼otª• ¨f½óÃXWªöôÍŽý~ÞAMúÕ®€îû Z ³[0¸‰.è×>DUº¾º„ÂÌEºÑ}q´M[ÚvLjX…8RÅõu@?’ü_c$3—Ó”ÈV»¹RáÄ÷| è¶É›YÝ/E™XNážî€…GYŸØ‹›ê°R†!Û„vœv¹!#%Åq´ñÓçß4Ÿb-Ñ5…šAË›’y&;SÓ%ùϳ“—|¡15 AL2îKbŒÒ:uš´_P#Â~>aŠƒê’ƒ\a­IzHÕ&ú†˜R½¾±ÃÓMB‰ÌJÈ<öõÕ´‹ø‘•Ýâ3ª'w$‰26--1Ç Éœ¹#UçôÈz¼:½­o†€”@'öU½S©2ëþeÒþHk¡Ö1¶èáHP‘Çæ§«©;gbáoE]ß V¤"ŽO÷s×õèqŸö¥*œ5qæÝ¥Sg‘/ænÕÜåÈÆüÜß:ªýÌ–Kíš%è‡ûÇÎU‡™¼ð§>†”7àYfùMÑõpÏG ÓYoÎŒGsÕ.Ä_=Ïe¯ Êì%òfy)‘Æ„w%"GJLÍUýPk{XJÇ·SuëM¸‹©üA§–]šWf‹ûÈXã'ÉgpÍmiؘ2F°–oñGdÂKÂ9ÒÇ&çoxþKµápŒº-NKÙ^8™õ@ç4p€øw'xå¾üâÂî‚xÉî œ1øm»‘ \움†÷2Äɤn¸W`P öáª#ZÆMXȱW¼TFx«ÙDøa9â¨Y5ô¤ÜH‹šQB”¿&3›­¥[z¸u€<Ã4A¡Õ&}=”ßÿæ‚=åú o<þ9;; ÖGßvGÔ±@¤Ûd¦EéQ=e ˵Å›v1Õ¹JÙRX”ŽZµq³ù •%ì´(uÆáÒ1¡¢*ª©ï<7Àƒ d–×IÚ?¾îµò‰ÀxÈׯéÕË»ºáj¬aÁt¨ ’V'À_ˆD‘×äö‘—À²6É}Ò±¾b6y-ÑvçeÑúÁU;«Yø‹ó!E—Ó²L åõï]ª÷èÛ':\ûÑ4-uåÞSss`Šq"Ãnc^}Y" iøR;º{j›C¥žäèxôŒÊ(¼ÿTóêÓšê­të¼~h‡k‹L)NJ¢9œLÈ·|Ò‚Ê£”.<#øÁ·Ô›wBË Ÿ2¿«pOA¬¹^ÈÙ*š9ò_Ûè ÔRä㣠™?ÒÂft$:XƒÄ~Ï8¢>¶9)@éq9ýL™’úûXÚ´auê„ÂÛ2lw+÷ëöÞülp ?óZëˆõƒ¨éð §ööf>t·níàG9;Yk­“ù|]HW˜6ТÊÕ5fZP²°ÀøbFØÀÁKy3ó7ÙŸ”íw”‚¾ Ö~~áXö‡IÁ)D ÜKû`•]èàÙV!GwyÆoWñù=+¢Q!‰¥×:¡ÞcMü£™æ×6¯Ü±|^âH]<Ó¡dU©¹ü ÚÔšVwgÃþ½e=³ÐSN‚݈IR§í`DfKxdñUPlÛžúÏD4“üÜDøÂjôÿ¤ÞoçW\—弑pNå·8U„ ZKë˜îŸÇ èM£–Ä (cAR ÐcÖ4DÏà`•n§ÔÞáNÌyG—ÿÆ¿/,éA®é <¯³‚ÍM4[fxºW“n?F¹;IÓü®ØnWÙ<üµûŸ5\™íðÔ`ß:å+IÄγÊQ¸B•r.σ¢‹³9i ~W4ÂY8Í“¡[†»‡kêXVLÕ Ò³úv÷œ _ÇY±‡]ËŽhb¸At\_Søl~-˜p\ò[Ö÷y—ÈYF>/¹àö=z–½â¬'K”¸Á5tý¥Ã$Õ”T¯ŒOò9Ä«Öà€G¦–jÓ* „¡Î ‘DL¬—·ÓÖ¡¶üƒÁ)g zí¦v^ޱ؈÷†rç天ÝÓ+ áRaP“”èUß$Í‘…i¥ üû'FúÙû[ÇôÃÌ_Z®èÎ}Lðž6‘žy­;—: 鎳ñVé½^h=þZힺ*Ë`ýžQVêt[·‹³c¹.6V¤\ß¿ ±Ñ³£ST"Ögð”‘LyvxâìÄ$ÿ#Ðf…”¾Ìj=e,9íï]lžò¶¬pA* +cvhJ¥ø²àå!Cóº5';¶aÅ•Wµô|‹–Þk³;T‚º„7 oµŸ þ=»#Â\ä?Ü—^@onˆ‚zÉ&Ոؙ¬œ(´2Ó 0²M PvjFdÕ^ˆ~}×ösí[Eæö‚Ï]à4a»‰Vc;2;ˆ‹(>X/îê-1¾ éß3Ì)?ãùÙ¥@ŸhˆE é:9¸·ÐF¿&Lü]ü¥æK©Y¬£û_ˆ9“²ÍP‚ôý§X\!é˧²F‘äxúÃüéü¶EEQ ºÆ‡fë-FÖ²˜y<Ý’Ňs M&õfzÿ¶AY`—òuUÛPï^⟢ɩ‹HðÕd´i@^=¼©ì½3¸iž¡2*6Ášñ©×ÑâÁØÓö¿æä§QZ ­‚/þó5 MRÕbç°O°?OMÒ`ÂþøüƒRÓsüåFqL›Á4’ÎP=PÝ) GzÈj6w¤êøŒ¬»=ÝwWMQzXÈõr½¨Í¼üÕçSaˆ:šI!¬’ Å‚³4{\ ²ëš”TnÍ-­pá–Äþ¥¦ÞA>f|7Hʼ÷‡Hf;ŠS§e3cm‹ÐK5¹¼q2“cbʽŽ=KϺr]er Õ[7Ë#,{à“._žÑÙý%UîÇ–àã4Ã!Òêè³á·Ïyïãcß>’AxÔ R~ììç'º·H¹€˜ˆ`G‘6SܺñÝE®0q»¨3+/^ð=¿¦:Z*¸ ý%AQåŒ5kˆ»¨~@NùÅo17ð|ÃрŔ©õûÍíòïù]L"|µ°ÕC–ŸvPÖbS÷òó4ÙZê%¼ƒÆ.§ÌZ‚Ž]ðãE‡¶#ì(9 EeE› ’_´Í½º± pÈmõµÞßB£·¿LÏ; ÿá®Ø~:Â4²³Š÷O\Ÿm\šg?hyžóó:²ëWÐöRgGdè‹§×ÿ~Wä^'ó÷p<¡šŸWA– š­ž1±_'$Y’.`¿86¹”ˆºå%[pg%IÕitÃlÄhd½Ô9ib›6q®}¯3¿`³c5¬Ñ­؃ñ´ÙfO¡¶fŒ_›Dç9Ì^eýBWeiÌr.¨ž¤¶#,äÑÐ:¶iÊþËRA»‡@Ò<8VŽÁ[Ù^-ýSòS–4›·ôûZ2©õÔúi»ª –¥¿-Rf”I‹z“%V=qû·pAàèøàÙsî`Ë‹†¾¶#ƒ¢íLê35üä0¿†GÏÀN‰¿¤n43gÕÀzoü•ù2«Îôy"¡˜Æz–¿ü¡Ï¶í±ï§Ïû Ç„²‘Á•í_%%…É£0¯DŒX%nˆ\¶S>W‡°š1ZC½Ì°n*UÞnú©‘4Ë×ãkcŽÊfdÌ9“<™µ(§[í¥• ‹ôÓ9‰ÊSÒ‡‹_Þ{¢ÜZÇO@V[ĪR/m¬)¹óýmúL¦½§½ž²‹^ùU²¼B4PöœjÆÓ6Ÿ^ÚÅb« ýÇ:¯|„Ù‰˜¦÷E`RÒh§v\ƒÃwæÁ€ämü_™AÆ)±„¸lFÕ0U· Y]ºy˜‰;¡0]@D¹¸r-ÊcŒº¤0r4¦@ó•WÀݧ{t"áÀ¯'ëöæØ\Oa[\&—m1\n£6\öÓtÄÈŶ:Jƒoäuú¼QÑó±Ó†ZR䢮©TðlÖ[ê¹ùGÆjÜ7w^<õU‡ ÔÿÊĤé{„Ø!T‚÷j#NEB±#®|ÿo¿JH`¸·è1èoÅ)øº‹|ÃXÐ ¨à3¯€<©ì±D~Gƒ:›âèYÜŒ:uð–A3¼*M[„fîÚT»¡Úž}nFéWC?mYøW7/Õ(Qš5 uGï-{ùß&d5£ƒ§x2o5EÏv=Úî4×)}ºR¥Û΢N»¯-"ó“ jTšMù hÉËäd¨Öñö-)‚bâUœ*ùâ‚b&„bœ„X5Û¶ó7Õ¹¼ŒYJcqËÿÄN(+ôn%uLØUá®ÅÔ%ÒÍý˜&Æ8ú](éý†ú§LýB¬€Äà^+à<³<ãR'Òè"»ÖÚø´úÊ(†—¤:r 'ômb¼äªÒ*ø_  wtô‘ï.F㨨&µ=†Šë±t÷Be¸†>ïÒèÃñòXºgˆLO¤N4´ãƒÑH޳߾±iO;¯œ‚HmHå(ti1©ñ'a²”Ik0"–(ˆ¿Úˆ«ªÜD¾E {öùËúÅ:ÄÄ oÒ¿0êâCZ²äÛßN¥}:¸ÁA /ÁœÖ/~•ß´k½?òò >mÜ(´ y1Ó a1®Hbd£·<ä¹µ •˜2ÄaáOnUìêýÌb3J®Å3¯Ýö‡ÈíUk¯Bù #^„ ýÿ^ƒ©ÎrLdB¾õñTšËUˆp0õÖ”V¯ÆÂ‰Xqàí Y"ôÎРfîƒO#„×é11ó‡¯+€DAVé-Øx_Z'} ôŒF”¦ˆªû9ZoGFÅA§¤¿"œÅh$ä©lb¸{@@&ÜÌÏJ¯ÙJ‰é÷ŒçM”"…[TMà\½AÒ×TÁ]]éÕC9|\B]ÓeÁÝàêê9¿šzÍ!ƒß¹gu-©J·y›ÛŽ¿B3Ž\6Tw‘…‹òvóቺ±­é|‘à œ›èm+ç“+Îzœä@t ?‡#îö$L|+:´GÒfo}zß”‰kWUG¬Ñ2<ÞñË|@Y¤Î÷~¤+3ïp¸¿‚O%ÚØ[Ï4óý¨ 0¿5~¹Öƃ"ïK2[RŽè=ò¬û›Ä™`š‡è•s ¹ÕžÇìjëpÍãÒYМIZ %Q‰«£Ø4XÂæ>€»·š‰•™ý»íA¸irÙ@OÉ­ì˯!‹ßC8ö"ŠÔg+œ‘ãWÅw:c¡©uˆÙŸ ’€,ªÝ!îñõë¤Òi>B¯²ZúÞ²J™µÃ@d­K`â£_•yÑcê´ÀÞv uóœzæCHusÀ)6ò¸´ûË­”°­½¦ü·÷ÎëdiñÇÚóƒÉ‡ðS´¶à·a¬ð­Ø& l3œ’ =5 )" ú}Ã4¼±P¹L/;Û1cà•#!ìÆ«eº9SaM§ó7žÿ5gÙaÈUÁÑ-#ñHõNåèÑí#ÇâŒÜå@YÝõu\²wÒTðÅ(ë›Íj*|;½$ëŒý ÊWu—¤Nk ¬™SÅEœ#ÎܘQ¶žc+qëu[`tOzóùåpËöŸê¾ò‡3Jú„Nî±Ùd F麢ü¸û~Á° ­‚3~@Þ×løn(´Æm^ÝJ,ÑóA·ë[Á‡‘ñúQÆ}!½çÔ‰J=¾M…Û^5ÌB•-57äèæc¡/ƒ£$¶z Áû†N Z$¿‹¯luè'•e Ýnƒ…‚PéÇ)®f¥OõNžj.JáŒyåÊ)¹öñš”×-•m×§ŸÍ4è6À$äÙ©‹WÖßBö랎¬dùiòÄ•¸xk8Í{Ž£Óõ1YÄTQníñSÅަ¹´^‡Ö'"FË™ºÈ‰2·u£ß\gÐÀm†·ÃrÄù{Þì­m¢¡cLŽ»U Bœ³(1„/¡ýùP)¦¼±ÍÈZ¤ìz÷øƒLç>33W5ç/kõ1¦ÍÂõë]=”½Ÿåöko‰šŒ‚[rÚê:Íëý"›NƒÜÁÊ:ü˧Ö–­ócâ*1ºv‰Ší~[xù ´hÔIëêÄÊm0V„Ê÷P¾ÚŽRegOö^=~ÞçvXÛAÈ4ÚŸÝÇ.°äç ˜sšoWÂX²ìßQ^”4­Ft¥,ÌícZ.»¬Ì ¿OÐ\C°f—S¿4Ê5ûî<ºb~pÆVj‹ªÁ< 4ýrsåqu2 o00EZUµùª`LøS»eÅÓ<;ÿ/+ŸL"š[UÓkêãx\–Ez ýkd"¶Q·­/îd!9ˆL•CâSw˜ÃzíS0)bðçÔâ[꘿ï¢U)LùjtJf‹`•l1ùKÌC 5ÐÌ Àé’êÝwª‚÷pgbh‚‚úè神'åe„ÌÄæÂÇÞ4JôºoD?7™ìK­utʰöÂR›Ú&Òm Žý×± ‹ÊJÅÓͨ,|Ò6ÁU<ŸÈÊÌ©ân5 Æ©s† åTÚ¤@‚nf-?Ç€Ý(Ê’üW'­ o*6¥·pd§‹á!KÃî®Kh61è; N߸J’ŽÔr2¢ö â‡à™pó¢4Xž½­1ˆ‚ì­°ëxÔÞC‚š†€|%ÕíÁ= |±\{ÚæÉ9?ŒÖ±]z#)L‚Èär=kí¾ÄG\²vXø€²ÃD™eóôJ¿"£§#ÕSœ44Fdƒ#«K¸P ÔoM½4žÏû II“S'5Ç.1$´uòë%a’ä Ùj?™;ª#q[Œ èá#qè §^±mš}Pf±±µ<ñ–K•Ãè©à·}¥Z&™…yßÓØŸ»ÚÞ°"¿mk­ñwÄcùμ«i`c³UŸXF±tòçÏ16{²2Á‚«O½ÒûNG.è›bÍÅÙ¤ž\îk+,=‡[Xï¬2õ6è””°VgŒˆd*IÄË © ©îèfákódô'ÑÔ„úi‹Èiq˱'6îl±åru¨aï:>sÆÖ‹h‰%E%\ÙWòóœì<Å“5К$PWg‹!Þn{:ÐeT«2ÕpÂý[—ãè®Àü“:BƸ¹XìÜ(Ñ d¾0õ«ªñ¨G¿óÝQ Î9 Ì¥j9¬P89·2Ný.Îf˜?ñ'ƒ¬¬b¯W®ÉIж*•~‡¾ùæµ§Ù}ÒúL ø\üuÂþ×vAÊš Ž÷gíƒå8%;uT¢[’¿—ÖÂ|v•õ‰Ú¬6-BiuèèÜЯŸmE¸Š}Õ ª@uÎý½Eôp®ôòw™5¥è†óXav ) ´æ?k»*‰_HCË™bHmÏì}ÜmÆ-úßJÚù²ëf_Þû [[Ž×0w­ÜþGÓ=òp®'][,qÛÅ"i+Œ¶gTޱvPJ¦„89ÅKܤ®»MuqHŸÏÄžÿ‰åOŶôÕàmÒ0 Cýê–~ëÉjž‚)€£°j4Ä7jÆÏlË8¶•âÅ:pá©odÖÓÁͳn‚úF(£œÅ5r¸%†¿¨ç¼5[GÄÛx¸Ÿ?ªÑ‹/:èJ?[Ž2w—Ù¦ ~iÞ<ÈŠÙàÇ›gÁ"Ê‹`¥@wdr¸e¤™Ýqääí•8Ix„ûóø=MÁÈ‚GâÿãÜzp3Cü˜©]¬,áß§a’®˜µwåýöäZ#»úû·œJëùá•ñ^ÑY§ –ª½>])ä5P6 í&²~X¿D×"-½‰og:™…á°/k”Í=JX×Õ.@b¹¨?8·FÆ®|ÉþåKÖÑ”vÙÚ 4Å£JÌMöTù+ HŠû6mìfìT¨:å±Ý+C8vªþ»˜Áˆ$}ò*ÀxzÄGŠ/†Î•% `çóS9{'C_™l FU¡¢å#_Z2×-¡£3þed'ø©=J§Ö\¯iÄ[ew^ú›†4Š Nðüwh–eöÉ&Ü4ƒ¾Q§›ŽÁ€PÏ&”ÁìF+ŸwHkÉëÛ]4swgOn¬Zë¨ÝñS7)­¤à8>¹¿ï‘qQš)Ýò5µ´ž/…ÔQ;6˜œ™•27Hð)KÍ®2 K÷™¿×˜3jö?PCäß9GY˜“«tä튷͙Õ¥^\È­¨×áé _œdíjÈ뀒¨'̵86ÂÉM¿ñ­Õ±™Õßý*VÎÑtdžNÙxw@_Mþr<¤ƒÚ¬Ô]âÁyo€¨ hˆÒëëîe?‰O†‡ƒ6´l—c×ÏqƒâƒVæÈ)ß3w¹˜Û3½‡ÛžßóÛß…·&.9ŽDž(<Õ«BNö’PFÖ’PÙ§ËVþoÏaÖÆ#»TOŸÄ`ƒ·ÄpN” “(ÔÿC\yù‚£'2ÞèÍÍ¿ÇhG-ékiÿ+t3ŸüGu"uö³ÆL$1Êí›ÝgËY8µÍœÐ·†úÙ\u†xÁÒcwëZÞøuý߈Ýììö¯½·¬’Ú;Ý_ÈfhÜyj¨×ÃŒZ‹²î'Þæ2o‘úÐðÍ4¯\nجD‹Ô…2TvNíM‚øîʃȰ§'Œ-¦zk6Ý^Hml¡$µOÑjd}¦Œ.O˜X’K¸ÚÛœEÜ4Úd¦‹F…‘EØgeUŒ7|M4Ébnàû‘’5#}£)ýk¬„"øê°–6È)¼óLÀUÖ£ %°¸Å:@­‚C o<`NUÙŠ®æ¯Ö${[ôÏÞ ƒÿ¤µzðÑ­¼Æ¢A%ãÖ䜯F˜^á3(æH,¡r"ÖÞN€hsS”5ûД«ýå5JÎ>(RÔ¼Á¯ƒ‚}BbÔ€ù:Þi¸/ó‡mŠà>7?òpãï'Ö ®Õú?nP'†Eç Ü-s³ØJ–”–~Åa±·Š%%ÇG‰w·äCü?U·ˆG¨þ[” ‡8NÑÝéxHü ›˜~™½—­¨Kw”Æ ë6 UiµÃ…}c±ÒƒF/}‡bmNJÄ>ÍMF½ÒŸ‚*­Ì†³‡¿Úaÿ:8—ôû¬²ÊV‰Á¶:× Õëí¼¾YAs °_x) Áºæ#Z¤‡9¾j!™Ê[FPTm;“¿¬wñ/ Pr±½ WŠßæ$ Kk©“[¹ÆÕŸ°ã€uÝ/‘SŠxsï½€%x”£‹‘ïøÎ‚ÉnÎ=Ëpá×°”¸ ë±·þ[¬YqoÇÒz2nÉ9Üï·x:•œw@"Ù„§N^+]P)€åPÄñæŸîL¹Zz•éÍQåQÑ©ósCÂ¯Š¯YD [ôÝÓ¹ ®¡‡·$ªw>B$¸Š7_1xê·8“Ë`½_³üí3½¦¾9ÿ´/ ®­ËãŒéû_’{ßÞš¤˜¬š*Ö%ÁLÚNV÷ Âo{œI‰Y—$µd¿LÒ¨ff¿‹„V C6;d³ÖÞÒíØ+wØ’Vn°`ÄÜÃkM-´5[jÖ×6"Ýüäæfðcø…t=œ¢†¢2ELÈ?ª ‚VÖu•>šÅÄ!üe8©ôÝ6'ã8®š 1ê²¶&@)^²Lw%p©WÆb†Ó«ÔN†U!ËZF— I¼–!3ÌË£¥”8kq¤ƒƒ0®#oý”Æ{¼êpÿ}Ûã4ˆâßùSËdmZ×.¾l u_Á“ý½Ý%áŠ5gH G'Ìê-› e¶þT«[¿Æ8õãªõ¿û;<™E}ısAœ, TvŽÒŠº28¸B½‰ÿ_£ÔbBf¼5Õ›´Ãå#¡(uQIJÒÂRð j2ñ 3åS_Ùså %éA¢•KÍ÷CÑSb'³5׋è‹ÝŠuY¿¿ƒ]i¨eVÌ œeªFvÌôC/P¯1yxàéN~±ÎgÙð›Ç‹.j­Co·ðý ¹®"ÀØ“js@Îü÷‡v‰Å‰IÂô¤Îáuy«µÞšŸÿGZƒVèf4c ç¼s{;HZe—‘LíÅ>YÔLø±"¡ ”hk>Ž!öîŠeqc’=§ÏÆbó[’0©N]4+Mï¯ÉâsAFØj}Ï™fn»’«P½ÐÀ$‚©üûW¿Mr hUê ¦¼Yãlí±gqìéå ÌrH LÔ“Þþ‹íÃf3®wï?cšM\9òš†JÇç±³Pd7ƒN;«PœìŽóóá“lJìmÀ±¦0mmnûmjµHÍBÚ|«é[[žò‘–6Gæ‚;¸"ÊE¨]Ä,>UdˆmoÀF¦udd Î'EZ¨üÖ½Ñ&süCä¢[¤òãlû•¡3ag }7Ç>S3Y§ÀA^ô…hã,ðÿÑ-Ò’Çï>sÞ®(m9Õ±×ýC,'ßç&-o6)+=Ý¥¼¸7¿PKçêt×Xíºö»ˆ³4EÏ ñVS0Ø$¤(¡.b6*'™r:¿äR[²³( MÖÏà«lïž)=¹ØåkN×!Å$?0VLô ÊwËK1w a&¼°¶˜«rÿn×uy{dᯌs-dª~*›t”ö¸ðö£Ì§l Ûâ|Ž€/‰–Óv†…“'Vá]ç°DÓ©Â\<ôÛ÷49Xo±ÍH¹|sÌõHÃâ&Š­æu”“m(®ŽÏ•‘¸Ç‡åOV¡Ïå.IëÓ6¯ 3`‚ꑎPyìë¾ßç¿&$År„E$5}MU«c¨ç1 ¬¹~Õ³g‘t¢@‡J Å‚QPgüC—ù¦IŽ) ïšôPQ[,»FŽîJ½ºˆßkîòîí¯aÒ²>¹Þ¶ã$—.9&Ö°ÒN#ªŸfð$GÓ{¡ä+E(#¦n%rxC®îŒ8¾³bÀE)O£›vDš–«–þ+Çþ£[e5œ…£½£ý]^‰¤ = à è(™Ùw ®±ðAâ.ã12Žóµ%ÙVŽ –NÚãQØ€7üÞó8hÿÖ\ݹ†œ:¿$ÓÈÞòú±s(ÙKc¦'…æÝÚ8By÷hÄ]ézÀv¯փp>³‘ï]Ø}ÑæâÒ:¯ÓPiHNãÆ›ªºMV‡_®ß\ŸúKÚžŽZ vÉ»ªMA® •;ˆãéçf!ð÷±ù±YòåÝŒÂõ“pôí?(gÙó$8¢¡{˱àîO¥nV^nê]:QÂ:VE¹l@gä0C̾j[÷dC<ü‚︢Öì9ßC]f­à‹”(³‘ÃŽ¼C=’õ¥¨÷3šSEœbï ƒˆKU¤1· Hp¢_7CÓ¹‚Y0FÚ‹9V5øÃòÆ:ïÉ ô÷°îŸw«5 ¶O?hõKjâ¥Öáh¥ñžŸIzõˆ¹ÆÜ,›µm=Þ_(ij”ÐdU‰Ÿ÷ÄêdÌ|N+¼aï~[‚Ëù¯¦üçÝ¢ƒÒ_91æ+N±ZæbU-žáø*FǬ¼Í锲©HÂ-@åÐ÷Aúr´/"C'-Ñ-«Â[éNV³Bc{WúGñÚ ÑÇßñBð"ÌÂët±ór7Œ–<üno`÷ £C°ð|° †éØ%ÁÊÇ.·42÷„B6X·¢mnU‚!'TíÀÇ»m0°{Ù»B}ÞáenÊÐr™%éê¡<gSœod–Ƴ½xü,70”tÄîý3 Oìî®>’:äô „'–ʽK±Ê¼ï8¶‰wú/³2¡í?ª$X. ЕÚ!­m*H'* C;h›óÚÝù5Ú¾eàÿš}6Ç›b©×¹ÄŽoßÛI›·êÚñnøZ†×E$»>ÐIÝ´¶ù[ÿmÝ.©ÆÞÏש׋F^ªµyûa$œð®0™72ΑÀ’RtH‹ËÜ*,¯G;Wsyv·z'xÚôÞBQ\¥û¹n”Ø9ëˆ àrŽ€3ëÅ]‰z<)ÑzÔÔ.zö.À¹ÞùXpUø%áHøÿ^ôÕ |%Ueì×(%I• zWºFµœ-dÞ,‘ œ+éÉδFsUµ3ÑÐÀ`‚:ŽQƒïlÆÏh[¦ª¹–Zµç›ª¦£¢ÝNzê‰jžy¤$ÕðNñAİvI)mä>°éç#ðaJë”ÔÄ¡½£ž(Ç™@aY‹bhq²5xyÅþÒ –%ƒAüsâ¤uÔûdPL[\5¹}­T]«.O‚~bcy–k.ä¹k[Œ]%•É0&WnÿÙZŸ>ïZýßÄ\(F±#ød èãmäc¦Ÿ†‰üsx˿ьgË€kNä(Fx‹×hõ­½t~G‚:Î1‹ù–ÓrIoånÂÓèÝ÷H•ž³ùŸØqº"â§tüjÉálEã£)–taÜ*fõ©Ö„¯Y6Œ/ëR62Ç)v…Ô|0Ó7Ÿ}$ö4fÔ?ö-ªÃëÅÉêÌQªIªT¶F _¤Â5Å~º¥g» vF·‚§w¾€æX^Bz¢Í3FP–ÿù­0¿M‡$×»¢nîæÌyȲò¿l·NôÝr§²øÈ« ¿;ßm? Áw½¦ñû®ÍQ‡$fk÷¶øÌ׿¬£iÆA΄¸ˆ}Ô@º'ÌÿʦCQ®Ïõ¶–ƒé]”-I´êê®i50Í($IÜs†¼îkv¢%æ½|ãçjë¼j¿Œ²d‘WI8\84j(2Á1Ø6¿¯“c¾p±Vqžl˜{bHŒ©Ñ´ÿY“9¡Ñ"Š|´ƒ¹!˜ÕEuò–®‹šâ¶©æ5dJ8¾ÏÇVóŽ€ Ž Žÿ¼Yœ;‹¦ÂeR7j²˜™$4¸|Vÿ×9TSc ‚0˜Üæ1]1@÷ž¡:ÙȺ¸´ ky„7p6¼£*‹¹ÁÆP <ý b0beKO7¯ CÕul‰þ­€Ã½|ðv±Â¸ý“êùPCýxâПtÅ8p~““¹ºhvýVÒi3ÿêZO¯[µº &>ܘ®Ê¾ÙMB§óÅj™€+ššt´@:Ç£%-Ös0þmôÝG¨¿6‹ožò /(2I+'HëèïìG P%Èì­4·!`ŠAå‰ÐlŒ©£±¶$° R€éë:­} N1+8ˆºgÊÿ'69ϱœ?Éyº/*ä;l!p¦®–ý 5—N» )KÊ*&{-ãImw Q<‘°´¼-ÅúÓÈq>it)Úå{q¤ÓÞÄS}ÌO(òzdEù•p¹V¹[½iÀè§µfŽPu„£B:_à!{d·k–nl`ʽâ1A) ’‚å¯Z? ˜®J‚…{Õœž}üÐ&ªêHÑ<ƒ “Ó~3ÙϨ7´Ýp”»sô€ßÊí§7žämá+ÒÜ9IÖ’·ˆ¨Êp]µv`Ú A˜úT]ì¹×Åìη ®¹ì±jžÉxÙ_­ývÞƒ6Êž!ÀÆP~ο*´@ ši:ovÖÁ³­jóŽQv1ÁÝ—ÿñ6ßÍÒß¹· ¡ä\hày[rª«ÛÁmëŠ*JHòð¾#;#AN)㬅‡ïf¸éºdè£C=PÔ¦”éä\ Ú$a›¯¿´J“ƒ¥<ÙT0÷ÊÖµ¦º¤ódÉ£;…–ø1–£Ã9TZåá ÷ó6(JgàP_`æ—”ø2¨n(þÒ+U¸QÒäA”m7Sß &ïüˆCE=ÈÓç†BÒ&Ö“MÖyšÄ#=…{tè5#(Tgûžb¡.²pë‹ø¿!LRoæ+~ªJ¼ÑfªÒÑp{†-5åˆêÀ‡ù8§4ù ÏÌ¡–´Ë ™ýÿlYD_v!E|Âܾ›O¨<ò2ÆX?I‡õí›-¼dÁò¶b¼È %ÖlÈ#å.†{æ³ÛÁ׊wå„¥…4òžÍ(Ê¿JóÜ€+iÇG¹Á‘R‡>é ×,¸z B€âo;eSH‡µR¿¥öùg‡ï¶"RFñ¾3Ù}ª¥¤áÛvÄ/º®ÿ¾HC·iÄìuûß;w%®†ÔÍ_ ÷yN2ŒtõÓé›ßi:9m÷høÚºÁu\Cšƒ”™GŠ_EKrš¤ôµk+·—ÿÒxC‹Íàiïjhô)2Xác ÷:mídâŸÕZð†J63e_6$E# €‘ø,x¾­ ú«n\…ôäÎbÀ@5ZNHß)ÏJÓ@æ¢;äЗƒgn´<ÈÃ`©F|ÚS©éšxˆDðf+‹² hA Õ¸Of,(êÇ_!cרO[¡é]ŒA°ÉŽ Ô%yÇEbÉQÜ>6ôÏ‹‹Ð޽C’kT*’dz¡ïéú*'–saó ìïOœO¤¾qûw/yrß’TÛò:S¾§¦À¦§øk8eÞÀR«¥-N"|{\{DOøŠàHMÑSÚEù×Rû1¹Íµ¸âiÍï!ù0ûa-h"r( øá\¯'×€ƒötꈌoÿ†Ë ¿ÞeŽþÀ¡ö‡÷tÓÓ Þ'ÈÙœ_£žRáÄ®¸/ïð…‹zqS¢†+ÍTÑyŒÊ*»GÞ?‡ÝÂû«ý o¼èmƒ°ô)ü&æ:q›%öb†¡éŠ‚¨Í«Gaøq6#t’ùE; qt8­,¿¹hÙÔò4`óŸ™yO·4ôQ­§Aíº%plêl,j¤,Aõ†D<ŽIr”UÎZ³eÍF$Cü”²ÛÌí‘D$h©Iœ¯«Þ·ƒ*6 CÒ(pÐñ5Ø<:E7¡ôõ”ÓLúu–!P±Øç„”ˆ1”®]‡ð¢!¼ ¬i÷òãÒ´U„n£»E!>ë€TãÑ»扌-eþ”Ù[Vén“Çø”7™ß¹yš*„¦ÛòÑÔzk\•ˆ·}4¢ âI)ædhG“Íü$£“ѤKj.­€@ÿ‹×šæ2(ɤ·íTeus ãwG¸ŠäV³¾VNš}BÓ8Ø·°!c k¡LÅ+‰Zµ ¢š2Õ·zº¸;W‘Uò‘RL0¿,2Þ`Û>cµîW2ЧúÚìPÎ÷ÓÝ¥wC™G¹<Ñ”ÀZ~Êéá¿*f•ÐWÃPÂK]ƒòú˜›:z–Û”Ò³AG• ­;î˃×ÛôŒÐ<^†UÅ÷±g­=.!àÝž°îˆ~×íáŸÿ{®yW/…”Í ?(—Ƕ½_îGrû&¹Ë~.r O0^¬YQ;/7$„RCx}g‡j„Þõ91k&°>h¢îÉ$4Õ™Úþ–·éþÿ—b_´v3¶XebÖq“ˆàÝ=É|²æëßþÆ–ÃÔ ¿9{QX í:V}cYðdY Ëœ­Ž‹b]ƒH UÂMšèW‡=’t\¯2gâcà<ÉvêD1­sU}H_@V?u]”s„X^œ…ƶ† Xÿ½Q ¿‰)Ì•Ø0LWnwC Ͼ”ŸgÅu‡G*h{d÷.ÓD`€*ñÎù–ÅÓÛgL"PÐãñ¡)–³±²J5µ2ÎoÞ„‚zxÅF©DBÙˆE½=¼óÜ Ñì&¯¼/z9§[cã5>§ØlŠ;;?óJxsDÅ„ËižÞb{É\’›óùµT\I…v¤qqõDÜä“CèéðnÉ®Ï[?ï:šQÓ¥ÒøÁ‹«øÏ÷L֛ќN9ßGpTH!”³ã\·A|ÀBâZ âW°Û)~ÕtÃýEMÇî¿P˜¡Ù:‘l£ð*.Ý2é-†¥4,#ƒ ún#5RŠÇaÒÙ>$®—jÁ¤¼¸NI¥~µõOJh¾p¸2»–Q) {Ò~þæb½ûnÿ¨ZÚç˜%#Æ`Ä'¹~.•ÎÇåéq¹ãtÊR\…k€Bõ†oÆÀ+W(›“IÔæ 4B¡Ž!GíÁXœC¦’ÞgPÏl¤³¦®È÷\IÖ:xÜÐ<89öœ ëè-¶á(CvžešŸ xS¹AÛyôZ„Ý]îcÄü?ûy[hqÓ¯´‚I.º.:®qÅçÎæCéùWÚ`,è>^0àë 7Z¥>÷™Þ«K‹óÃr®êLf( &LÊoþޤ¼Û2ú+R¢¹–ì 5ØMZ/²k6lekÖ×eB:Ñ¡+qo á‹ß1™7¼LëYu ‰œmé²õQ¤ÌÜÛX¾3$Ì|ôɾxŠVɺ  =shÚaŠî X^®¦7H«‘5Ü‚O ‰&Ÿ ™îˆ}dÊÖ~g5…ÆKNňäf3ƒeÌ:]w+!î­·(Ì ,×G„CÈ›Žr¸hµÔ¼OVŠÞƬHÑO@¶?lK•Èß\öDRöÇÌ”†y™¹ÄîØ† ;¥²WE3Ì 5Ę5ßz4næ„è÷—«qÙÒJÖh×&à¿K?† ëŽs±àˆ‹ÍÖ!P—ˆhø×݆¸1h¨™íÆcÞnTÌ•yÿx@ö½_ŽY%;æê÷‰¨â´N^Ì ¼ãóÅsÁ¸¬dÁ/5aTÏñ¥4$1 ¿@pž7‹]‘‘Ögf¦Úñ -„"u«½·Ý5Â8 õµÍ´¿¹¶ÌÜÚQc™Fþ̆#ã%hIÊF€†h™³ÕQ2Ú•ÿr’ TbÃ6µ‡ë/8x¬+'2nѼîzy,Ëa ½žKñ1Ot¥œ²êtsÀ[ºâŽ9GFàé¶€§’ºÞn(¼º¹]Ÿ²° Q¯2Žôçg^sn˜,™·I’²wÐ*›ÎÑטc˜b“ú.9Ì Þ&Sx´ô&a!{–¢-Øq‹€ÿ—â4óçdž‡$›—¼‡Iથ’¤k’€Ùx.h@°ëlRw8VG‘c9’â£zEâ‘l±EÁýDµA‘“¥ÀÌÚ˜Oà„óü‰ÇŠi*ø—[Öù@<ù#û<~êÓÍÈý«ó‰|m´¤Xk W¯¾îþtkTô“] »U®©îY¿CW÷Ò„Ç|‡j#¡ö“ãˆ×9\:¼CBøç cná+»)Š;SÿVÖ3_ø9)K÷™µY„EA€ý…’3šeâøP‹¬`;Î˸?­Qéýî%WU„¢:Uü’Ðé`B€-±»µ‚/ ƒ#žÉUSLgBÿ€_”c4\7®¾+¦ xŠÚUoqÌ+¢°‡¬Áˆ¦„Ô‡¹x‘šW¯1Š“ê¾Á'µUЉé¹üâÑ<µ!óÍ[”}!¡ýgD°ŸÀà8C=ê·9Œ2¡¤ Ù竪¤­‚4};½ñ<\ŸUÂ^*í¾4W›èìáÀ»‰sQMZ–º –W_êÐÂ#Pò®ðeè‚4M7!õÕ&_¹Hä°Óx£¢5ËÍïC‡àqû‘`SŽs…qȯ©™`ù¡H¢*ô"¡5‰ûÂÙN¬œ#¦¯˜¤YÿYÐ<^Ñàµ{È8–þ|‰ ƒ-B÷…¥ ãW¸Ã4ê$ô]õ†‹â”ÐG sºq8÷[ ø„ÂVTãçM9‹Óp^,æZlï‰\b~9NgCÖyE ]JyvØÈ¹œ¾Èy'¢ÐÙŽg)î1¸»{þš87¦Ao—ø¸Ø™§rà†AõƒÖ•–·|GhO ñ;—‚#ú÷ГFÀÔU(öØÃ(‚ËÌîD¦êx4ýjx¼ë~zšgÕ³•‰—í¦h½]ÌÁt‘õ—<…þœO=×­~ Ó S@I¸Ð b¢ÈLÚpD sÆÒüÏÝ£cW¢;^ÈrbÆ ±Ë^M—“®”YÅ#"YÔš»»+ä¹Zm õØ}³“"’5ti/?>¿¼»O¯ÿäïw&í9‹‡àL$ä„h_£¢êÝWE`°€R"øÿY¢ Ž…½õSa¼ŽÔa×½ ìæu_¶®('åÆkAê1þÀ¹©‚fÈ:ý—8!vȚ؎ÐÓZi„ˆ²k¨¤_¯ …[†ú¥ò}ñ×.# î½qBØ’<“è…­®åHyÄ›äî•toŒ€1&þ‚˨åa|íÅ•T¯uÇlCè2 µÍ>&F6b§° ÞÊw:ç(öŒNµBX¾þw_Në4–Ì„¼}t_?pØÓZMl÷§d†CZ¼Nb(ÞØú6¿05éîÛ¼ßqÕyE#þÄÌ)^}Ì)š¶p XH¡®}j…,2#Íõ#G*zðå@ïqI<ÿ0ßÞÏOÍ™KXô½½&[z9C‰–IYR©­‹£|ꨫꌤ„]gw5È:‘‹¦X=Éþ+&ýk³TRè4?B¤)Üag9s¥ô£™‹èWAŠò“â:Õ*^”VeЩ’ R"à8|c¶Ú€ç•sýèÍ_±¾›D½!|eò‚Nš/Ãö”7ÿ;0ž!üå•G8 …±O@ßÛćÀµJÙ#x,ÀŠ ö˜ZùÂ+'Z ,O˜e3éÚýð™õošÆ4Ɔèó(ê›-"¦j¬*Ê ’ÓxÉCJú¬Ö @qNž ™Û‹è¡œØ]Î3¥¬ƒÝBÝá焘o©u<‡,ÿsƘ˜âÄ(+œvÛzWã9Y_Ù„3ˆïÜÖ¾XáøfÉÏykú¼99kaì³5 ~1Ž.}àË(KP€@²høØµü©›±C 2*M9ƯózéVæt2g)ø#ôFÙÞÀsÛ?Z Å0NÏœàý""CDlÕ$ªNB,¿&¦h®%‡¹ÛmeKNÄ‹Çkð„„RuºÈ¹D"³ˆâØØ^t™Ð¶¤Ì RGŒŽ º<ßZ­%m*š?›Å¬†|ŽàaIœ–ð·^Á=˜Ã.ÃZڻƀxCæÏ üføéß|9 €\T% ÐöÁÃÂ3©TRJÊæO–t¨wPs·\»!hÓóp®Ü‡1å 䙥„(cyk§¸:{4ÄjTž¥—Ûo-ÎÈP ñûN¡«v"üèÖà.|¾ãþs»U¬}K«áŠ#×Óò¯Îi™CÎÍkçÇ>AèÉ_á[ y>óø×N%,¢X‹!ÅÿW¢ ‹2ôƒÇÓKÇ+dØ(òU[D ¥!™à­ÑZ¨…cpø´Ê÷/I™žü§,3Í“÷Ñ“ãžØNÍó…EóØõ_Ù.aÂHKz[»út³ÊA¬fßubì­”³‡Ž©ø.ŽåtŒË¯wLȘeòµùÓ°FáÜÚfidKtð`Ðß+á¥$ð¨Rp/ö_(ýió+¨M¸†Gò®@SkI†5…pRPx¿…£¬#à€€zº>¢UèºÊxçæJ†Ö˜ñw‚e›+5Ôht“»É0J‹xH-% ª®—áê;º¿ÀõÅLSk.ù£V릔]¡¾Qƒ¢úž¦rÔiòtOzØtžŒ öbK.„`mðÊiïñŽ–Ã¥=ˆa–*Ë«÷xTù¶Ùl1îÐ^q“çº9\Ë0¥ÀsÖ¶ÿ§ê2q”Nù8Óuøî˜~T¹âêŸÚ{ðŒZ•Gó¥ÎiË0Rb|", ¢õÒ¼‚ˆDì¬ÇE@1¡ö¾T V˜Ñmè¥ [AÎkxW[‰Eß4DÚ2âtÏu»-Å~…Š:C¿ó¶Û] ["h©`'™B£¼AYga@êÔL” ¨, g’¤Ó·%%ׯð”aé–é -€-}Óeꇣ5²2¸iÌ€yTÐóìîªNgñÒm>‰ªªúC‡[Ègýa ¸Õ€3y&ëÓ93h}4ýÞçúmdQzXOS_ÁFîu‹ò¥ŽŠ ®&gVæòªäˆüôëA±™^î/õ´ºîûq¬)ÇyÖÇëhðWr^éê½6Úv{äz©Ìë2F],œ+tT#[ Ø­îåÝB>îðËIè'hµåè?KÙ½£lDÐ* y"à# ¤³ˆ“¦Ft¢»;``Ã'DìÍc´óûP9¤©ñÛ£¸œO’d>ãƒÐs ŸÁé²±©¸º&ÎÛ^4_ðvÀWó‰÷]¢\=›´ûäÇ;½VmˆŸÐuhCö;«„)²mˆ­ñPɵåÊBɽê$/[÷&.E‚-k6ÈÙªä?×W†²ŠpǾЙØ)J]Øí_šêPÜôîýÞ£d.mŽš´?RÛBßw{2c4<dOe¡”@Ì!±WÆ=»?[r•Àý½IÔ• ^¿‰ãò>ME¼†¡…Wë+ajRtЩÁqÕ³‡Ñ“~ýqsã€2½lmdôZÃù³M[»_Ù#‹`(x„ž¤ñn+œ¾e'zîÌ*h@gÚÏÂqoUºz*‹”¾“˱ ðð¯dx'³¦¼ÿ-ÈX.·»Ì:,‰e]ÅB+´­ÿ?¡'cô+nì8îÿðر/чïI©¾òLEäjªÚxnëc\)‹ÀÿÍIö‡_Nh,6ÿLâl¢Ág[*»ðÔ¾œ wäW‰ò™Tßf´òqÙýÁÓð¢sƒ3+ºú§QýÁ jÜÔ™‚Ę-›Ò y/Êv°T ²eùAH§‹kxÆ,²{:ÑÆA[á”|¼K›¦ØnéúÊš¨$u P½W×IÝ:_ˆ5ĪðmŸâ+Pßï”:ßÉ"!9¯'ú+v5‡OÛò·Äö€ÉcŽÈYª ®k-C´áÒ2Pû‹#¡Y\dãÌÁmÌÙ·bµ‰q=*˜Íâ S¨ðlŸï¶¨ za/Ó9 ƒ¢óÌ1€cúQWÒóƒ¿Âó&A›'¿<®vÎcN GEzÖüŽíÅ‹/à€*X¿ÓÇ ¦qDŸµÈòò}‡ørcN“î¿ÛZǵ‘Àö­Péó/Üãëêy?ð˃â±Â´*L+&âþð ðâ,¥áp6fGlŸ„ƒ2ŸTûf›#¼*æTž#€—q€·Éá…®‰ÙHsy¼¶ï=Ÿ°AÝ1›ÝézÈ ?(Fçô” `%ÍG5~OPŠ«`ñ£‡çÚó^D\VPS%8°ÆÊ,ê4u4„Õ‡„Z`ææÑÍ#ÇníÏ“Üȇ†.”ôþj¥‘UìU<äÿ!ÂÙ#Ø)¬ †Ú‚Y) N_WÅ'‚¸üMŸÙí’Û7öǯ¾Þ³4", ˜sºsW1Kçµ ••[EM’›P¤Q.L(¿smu+db£;:•÷ÄÞ¬]Å+ªA éÔ(ÂxˆLB¼ÍÑvÌAxÒ¬çËlðü$j)G¨™oÉátÄ9µE…‡¼$,܆¡;¬Âº³Bãí ¢eÁÓ C¨’:÷´³ºZÖð„À0I¸û>rçvÄ‘‰–]l´Ê ˆ)¸ª2Ä,£Ð_Ï–¾^ƒ³D ”µöB-K<önóíŠÕbP°SÅ…¢ò´ýÃw!»@Ù¯W}éçu‰S:ŠGS‰5~‘ ¢'ª·M£‰›ôcp 0¯îÆCôFÍ!ŠØ;ƒ˜3a/eúÓ®\;Èê\ŸOða>¥Þ‘s+g¾jbµ`ò¥€‘Ý3 2mÞç MšaD[Ë!pv·l!%ü>)B&óOƒe.qÙò*§6Ú3zÈn³~t×`¥Í‘SÁI;@östFXð¼x$®‰^áž,£²ýÍ ,ÕÆÚßLŽjGj˜ŸZ8««K$û YP:R2©!»OüyÓìÚíÕ@CyNØY¶GZ}6b˜òâX"@¢‘H?Ij¢®æì¾+}صÔåÕ~nÎ)ÐLÛd¡E:Ö%¸ÆM¨ÃueÌ%_ón¥Ì&û°ùâ‘Ý’Í¿ó»è±Åf§um4ññ|Þ¯îÁãž‘áAZŠ˜=^Ét·0}Giþ@{§¾óYÛú`„ËZ¬Œ»÷ë¯Þ~SʽŠÂ\×YBÚg0Z~ƒAm®&„oÖfrExX'ÌFÌcN˜átfpÙOÌÄ«UiX¨œšÈtò¾œPÓ=OèëvOƒ®rƒ8Äû +ˆ>µèp¤$i‚Íû˜ÞZÖDù¦E>+“ü{™}ú_F. à =Ëþ&€kKyrXÞÑAÕùܱà3€`"w­$&Ú–®¦xÂ"} YMQü\¡í?ßB›\?ÅéÆ]°vóyÄv]È:PÒ‚¼~ð86ÊólBž2,R‰µ,Ùɚ̈¦VÖõÓócÏ{e'oÓÊE<ãü‰!ùæW¯ó%%]xC¦èåÏ‹N»µ¡i¹§ôŸÙ'˜sfÓªàŒbϘq_i¯ÙÌ— âY0±²ôŽx)a*vµá£F|qíã9´.BTð 3^Öë%ùLQÅx(ž£~5B#UÎUê@(¼Ú¯8LêÚ£e0¶»HZ90°á¹”nøkù®‚á¤]¹ézu÷ÉŒ[ I--°éb‘1*^Ô¿gnç’ý{.š NÆî¶½ý.ojÕñ6Ý-à‚{>£] „”ÅÐÝ&R½øP}ˆò ƒÿj&ô©F'tSV 5Ò ‹EÜGdT`Þ–JWOÔñÐB ¬òY—Œ€ØÁþ²~Mç]Û~@âö‹|1Ý(D€åÞל}í‡â¾fèè/EëÝQØŠ–ßVÐa­‚šÀUz0óÅ¿®W’âÐ;KÁX³kÇ»6“Í”s$éˆÖPpRµéÃá&#÷ÞŒ*êdZ˜·û±¿6ƒxç0\Ñ]|`”ÖH>â±r¤®~Â0%´í„¿Õ=ylçzùYçÍ­æqã]ˆÇ­Ð/ X uºÍU™ˆý©·°>9°gúŽ"ÁªXîŸ-ıì5ö½=ïñ2Ôžy>=GÇ_¹òÝ÷ß%2Ø ó÷hL<Q§ž£8»$PÙe JàC2 Àï_úÙ¯SìÆÂ-d‘È>²ÏŒÛÞÅæ¶ ´ %ËÇ P‚Ý…js*ö_qu€j"£4¥5ª, -……×Ç|ï]ñXÓâÏöwrëªf¿Â$­D­u|ÖR®ßKd:¾©S#‘›ÜÂm9qêy,Ô¼bòt°µH0ûñ—KŽ6MA>séѽ6¦x!j¯RcÇÙ5r¼p »Ú]È p3 w,¼ÿîà‡ÑÍ:ºä©rºò´ÿÝçÊt¥n0Ú 0¿¥n§éï5ð“E ½°UÅdðVï´•MuÌò#–ÅÜŒqX‰‡~Ù´Çp ?R|»=½t­å@éè^Hòªb»õ«8Ÿ6»ÞBo±kü8ûÞÅ»xÎÝ"n»$Õ ýºüxѨ¾G{q²ÀlíÈ7û¬¨yqèR+ú%0N½‚}ÖLÀßU _à‚~)iÌi1¢ÂÉåPÔ s³ŸhÓ. jš(€r‘Pá(@ö¸ëxTkÊÏ=ؽ¦h’J‹Í.†0l•ÕËJº“É*ÅUÌ’óì*4co¬°íæN7Ø>êoó“'UŒ–Å‘™°ÍÅQî*ãáŠlgF©i“Ü4óóî™·4n¶«Ötz¦ëÍy+ö”G×oÏ*;m³f륲˜æ€=vBìD™5ªü`†£ß †@Üz.n}˜ÉAQë4tÚ´“Ôe8RÇ43 ZpB²<Õà´ç=³Bõ'$cæËß$§ËkHÄÌ8®üYT44.};Øéð®9—¡= 7N©(<Œ|ui…wù¿Y4‡…uÿ¢vª‚nZ_ßœÿ˜Ì˜Çý‡ÉŸ§´+QetTa9È!í"äòK™Å #Xûg¶,Du~þ+¸ºT¿óZÊÊãÛøEò•ø`ä­›: òRüäíùd¿y“+U#uðó¯ËÖUIKw §RÁ=Å{Ìøç#èè³2øÊP»*‘³o)|S¦é†ñÒ‹Wgh" ƒW"®qâDþ¾&Í`ºVóU p‘)N\©/ßxæ.ãŽæ5 ;Llíƒw‡úYï„ÿ{„þ@œÐ?G?6LÔ$ÒðËqÿ!ˆr}ëÞïþ°‘LtïVz»DZhöŒëä}ªÌe`Ó¨S4î¿ ¼*ÈíÎïøÛPYF¿üšÞ›¼ý]ŒT4ʤ@øfSß­7Ýã–@@Zo‰$$gSûÝxú$‰åÀé–'Ÿu¼ë§£—1“&ImíÛ•Z©U ι\‹ŒÌ›6%ß•ÑÓH^:‡ðù›#£0B!B7:g¿¹¹ɨ©„ìÿDq„=°i?Õ¯ÞËÓF«b•+äq‹ý*qûæ™]ž×ZàgeKi|PÀ›ifÕ‚4ÀpiÝiC9¸‡ìÙ3ÜóH³vY&bªŽ˜¹'Ôœ±Æ«Ã mR(—füK—¹9ú x3‹itÅXQÔÓ—•°²?>N‚5Ä“Úx}¥Ðºø ý„YìÖ£"L¶ZWbψ=ë`˜þp¾'…’è € ®ý÷§cŠ$gIºéÎÊ’€2e£j3ê l]ܵÕãNÛýÕÖ ø )iRäúgy›s›¤‡-èæbÚέzßàÕd­£­2M.vU·ÀqÅ0@—_@/Z_Ã’ÈÕšD/ª«vê°íßõˆÒÄ,}ì…j™bÚ`’}üsùso£R5@.bâUƒzÛÍÄS. ¹(V·ŒñðȥNj<±—5òj5të·Ûª}·LÉ&€5‘rKœµ/èy¨âæ@ Ý Ö.¤DŠá³t²d§ÿ®ªt[†½~¿ÛƦ¼æ´ zë‰<¶5®Õ“=âF-f0ë½P–‰ìÓ_îÿ­tbòÄaÁPÓaÝ;Ô’-=!´võî$3g˜ÅÕ bëU.3îGhµkÎNÕ÷ì/·6ÁØ;´Ÿª™Gs÷f9Zû@é€dâ…³¸’¥WÓÉpèÚŸF¼‹i}¡sÓzúÁ\ò°¢ßPµàjß„÷L&¯-‘ü"h=ÈŒ8û•[óß®þ…QÄÖË…° [|äðßæì×:.Ú{Ôêî×ã”°­Æ–F#`Ýär k¿Ýuâe}‘n!=:ða_¬3øoœ„ Ci¼_·Žž‹¼où›ø£V´/ “•ºÜbÉSxÈìÕÿ€×F@© È¥'Oàs³V€[¾*/sùG’áycŃ8*-2 Ô6(mÄ:JB‹Å¡‹hD•vÏ©B>'Iµ¦ÝGq2²A¥zNÅñ†c^â~½qãÐÔÓká•߈¹ŠÐèµ¶s<;{¤µC0ÓB ÿ2pgôûéf g;ߩηT.nXzkÖ,{½KøäÏŽÍ5ö¤2S YaŽW[&àþKþt_½PúŒ´5”J&8+Áº^ÂIз+öÖ×p¯pÁ‹“Î ŸJËÌy¬Ø;CoÒÅ ÔšDaÔKW?JfP¨OúE•éüÊìæäV è@È!LºŠÜ…Ùœj9 Þ,v*(“ô;˜z{½µ’ÄŽ²©³RyV+x«Ç›C El¥þ?—5´Y[E4–XŒý'.!ÞÕmѨ ¤jˆeHJÞ¹9ÿûëÚ~a²I˜Ž‰t‚ ¿{žTô.µX˜¦•Û³„” „=ßz,±A ªR4´÷Å«çáÚž=F’Þ tõà[?Ã`çvæf¥á¤È¿÷PŽJø&ºy~̉'…U,ioÞoEQª]µÆ†¾¦è¾¯¤Â&Ö ¾Á‘Ÿ ô£WÄÜ;¢¹{:±œi‡že²ZÏ¥˜ËÙ Q.¥:SQÏ¢ ÂX!ÙvÕÕˆ…úæaý yuéQ›!¶–‹Ëàì&ó ˆT Ö !_ç8µ%¤]þ›´LM ¦´rÒK“ðaâ >…’@ú£Ê€onm2zxbë_œ £müîòÔÙéqãƪ*û½ÔœŠ³ÍQE£æhˆî<õðÜ:Ð'\êh[çTóœ„=gZ‡¬î:œŽê݉AaÎ ¹“ÈÚÑßxÿÌ"g«{$'8!ÓCF.ªˆ¡¨Ó“ØÒLLG¡BÜù3¡±oJny†°ð8™*í΀?``Ú¢û||‚ »ÅÝÑÍ©œn²ÌzUˆÜ軤ô)Ï ÚrsòÝ,s#wˆ‘A ¯m1Ö æó9 —ˆ·6¥^P“·ºäE ô]¡Ñ¯[<”ÆÚCÒØ¹?ÔyÌìa6xÛùõ%U5§fãGyÁAyzøÔ‹ñ+^’´û?d¯˜ÛÎ}» QÇãIïŒ_EèÄŠ-ì0392%w€,}ôäbA¥¾Pnó/©ð{†ûL(¼ñ!A¡nj%c.ÍO¢ê^ V Ô¿HUÉgiÊÚ›Í ŠŽ+­Š¾1`óJÚdªé9©Ž;‹7ýì¢Êå%íXf#°.½öÙPšuE1– ~ ê^w„iÎAúü4A(m“‡ô\œîPÊD$}û@'Zü¤ÅJ7“«h¥8Ä }´lþ ü?+¸P,(ïa†ö·>ï@ñÎ>DvôJ&ÀBtÛÈž6VÈvoÁ⨜C{X ZHÛÔ‰uƒ»£U÷f^9@²Â*ê¾ .š&XEÿ©_Å& î!´ÏfÖëö‚7Ö''òUHÛšf¬ÅÄ {ÃQ¥*è²zÂð0fOŸ )†Hq„EðÍ‚GÞd˜èÄ’À è¬Îáïà“KÿæŒ-únyE8#qêAå¬bÙ/•šH&”†2S´è‹ê#‰ÈÀ (OµjWDVA¤»Ö‰š+\³ƒcÙÅø…¦)/lÕÖ‹Ø’¹øIžÿÏ`óËü©†ªÝ/Ó0ç Á–w¹¨ç*vþKøsI¡në—[Œ2éDÙaH (:pVöªY¸S)"ì{·ö ËuAh‚/R³ûäb¹Ó¯fö÷±W aÕL˜™V4\‹ŸÎK^I5SeÔ€m5¥%@KËFùPVÀ„ÑÙ­Â:¤Q•‡Wt˜šì GYû €hAœVhWÏ—æ§ß›yK–C q™°”ßýyÛL¼îk\Ü[8ì„Ñ^„²—u[ôÓí"’Ñ4O Ã>‰6ÚÂÊaöD{dé£ë&i´Yâ逨»Oj³àL#j|4\7¾%tû³BYœÇ;¢î¾%ÿp" 9{Îsš ¯eò_CÚÖ²‰Š |B烕^²˶¢KZL°pèÆé-JÄrJq[9TÚ:[·!N Ä>ÙÁí†+ä=y¨C†îuBìÓ¼Z¤qíÑ–ó’é„*zùÜ*$Øuÿ’=Cuš ùÁ—ÐY£¯Tháây)ߨW D+ÝY_]ý|œ# aã¤Ó÷Ò¸ ·s¢ò!€N1ö.Ó’ NÐûMÒLnê}>6/IÀ7D| C•5Ô_AµEu·tzúÆk߇‰ê‘ëÎ^9‰Ú=g4 Öµ‘Þ úÛ¼^ãÈ…Ahk'èád‚í^EájÇY9!ç“R•*=EqbþâóºÊ¿ª+Ë¥‰åÃoÈÓ$éôU1]ôm”¶W}œ`Aà;-˾ê·Oííì–1ï{ÍþÀ+yòJÞ+ J2zØŸÉÞ I ê¡ðªÜ耇ðæšC~HÄâ"ÀZ)\¼e–þ1ÿ²¹¤§tÈ6ëÁœË3î.bNãšàÂÁ¨~N:u”hd>ø©•®âZB€-«5p~"!aæ‹ß>ŸE4R|?Žlyúý å‹+´XÉo&j¯bRçé3ó…IsÁ‚†Ðv?R¯À—FPÓ€(­TÁ^QÌŒ(‘ ¶7­R@/œö»T‚ú[!\[þ¾,ï2ØäÝ2Ï|YšÌÆIÈñ'Æ*Þ$™²·nìª{øù6$vÒ ‚}æää› ÿáå*¾"½_|­ŠŒßš@¡ÝþÏ:ätA£Rm@UºÈ ‚º@›9nx¥“SÀöž6‰úX+÷$KìÈžsëábÙþÏÙÜá¨ß×ÜUÊwO)Á½Çê„Mºöû®'üÐéïÓEJBÔ!ŠÅ§½Él=I5™€”üצûšBYÕÜxFP¨ûª-4l¬¬KkJÀó½ ʘº®{ÛçÒ7ß‘ÈNa‡LRîÀBbŠSœ®32¦2¶ù£‰ööyðögÅZ¾»c×¥ŒÓ,Ñ\íV§~Š7u}ÿW’$'ÝV·Aë7¤$?ÇJðœg†ªbÅû©èv”Pöø¡+ø+»×Å|ñ Tl¹#ãBƒ»@eÎlE¾Té#¤6hîmóGe”ö$4ºasùf ]1—êçR#Ü8¾¹Ô‚u4@PN Á~lªjzïÁ”ÿîTÂbö“™q£$¶½‚#òˆ-fÝ-™Lýó$.IM, ÓîÒ#ÿ(ÊBBTžb̆å‹J˜¿3½È¿”ä2‡unÄ<«çN[X  ¢<ðo^Wó(ʃ9OŒnh#æòäŽh¼1ðŠ3w †®P¡#¿Q÷úDµ²¼U~iž~YR8âð÷»MB û½ÓA®8k´8I»f9Àn¨¶Ï…`“e žF£+ȧöMB—×ï$ï,ËI†¥¨—c¥DæÃ‡ñVù-èš$ ÉwÁÈ,B¼àËFM¤ž×9݇³*0ø½™V^<È›yó«c4Ë]4‹_<öÔ?(ÂÈB5’?“©òWãÝÞê·_¥v–iñ|?å•‘ÏGw,C ,$­\F'YE¢·öû‚ËJíß²F%ÓïÊŠ0MYS”ð»È äÛ8,OÌþ¨ÎyŠ©¦o-HPGµboùÔ¿$súA'h=´vìv¶äóëÒ¸£5vR§ŠLãóbM6êÚ ™,²EC`ã?Öå˜ãÜ.q¦Å4¤¤¿Ï9Ÿ|@C0ç q>›&¦0ãÔJÅ ‰¿iÇîÚgÚáÔˆœ‰…ú%ãÓõ©:e ˆIž¥ÿîGå¬ÞôèïÝÃͤÓ(ÒÔp¼R·×Î8™‰s¾ú8WkÚÃ/¢G ¥-Š v[ݢ㹖(³ªð@3øŸŸW’šëX1uÈâ¬},ª·N­5½ŒI÷°›‰âD̰WX2"ŠXg¢³hrÇwÇÁHNÈ ç°ëætßYˆû¹Ìd8WïFìÀ X^°“ýJ`l!˜˜÷ý¯Jìaùµ@©ÖN2ùɉEéhWNÙa„í4”ƯÄ[|·Y‡¨lY Ž/ÞE9¹hÈãau; ò]d€¦=¦é^Ÿ¢ñ“³):ÅalwLÈj:~KÔ1˜ÐÐ þa„ºÿï÷§ï£^XßËWnóë½=ë6õ@~¾Œ°$éÃ2S‘Û°!Nä´"}õ½ ï ^zèñŸ’ë¼`ƒ£Û ™•´!:cž‚;ê7?ýê怳çÈWÍáä¬5.IK™‘g½T Ê£”1£o @ÈÃV4 zÿÛ¸CP¤ 2»d;»K²È-ÐvJO/éÕX^‹×ÇEÓ_ ?%¢c1w"Éëb’ymèŒ@ÇL6æÆqÜ·ºDà ù°ˆ òäYPó…¸ßJ¿ºÓ%Ûs=Þ^×ߥv¾6ü„¾ZbÄk; (¸=Lã)´âE¯ÓÁ?Cújá±r‚'”üŸÏÎGõŸ½ùwÄh_>¤R¾]ë84a6•í0ã̽Ê,å»m(0Fðqi§Ä©@G)úò¯}ò®Ûnù«h³Ò¼Ç§LG·J§\Ὁ¢m )P´\õetIdKíVF †…À"’™\l˜ÚéØŸøMÆÄ_\ƒÖk~¸m¹e%3k:f<Ï®ð-ÛKÕ¢ ‘³·-¦cÔhãдqôIç(¬xÈQU…,~ªéÎØ£VjûqÒ™}‡ãS9¨äÊ3í•5mÕS…SÈÔ`„Ÿ‘5AQcc{\AˆNý«ç~»ö}ð]ëw9ê1ôK!?mP´ñ=gŠYbÆË!xuuäŸuÇmhÁ“ɦ?ëßsìZ´-\¥¶©çõ;ôIšÊ\¹ÚôÅì¦í,‹>£ÜvDýÉ„Çw¹„i_éÉÅCß V}+KÝ­@~¦ÊnVÕvÓT……èß´(sù¡µn¹æÕ[%¤‹š³}­&ë&.{ žõ‰§Ð¨OSÐË<Âá´^a¬ê+5 2ÄÞ›ëje8»ùâB_´ŒmŠ©¬ÉGmß9ÿ/™x` °b_ö‚^Ù½„é IV?ŒßŒ¦Hü;¯¶i~R͘½o^Šó_=†E¬¥s¯÷Œà¾"0ìU¹<¹žXT×mH°]™ëYà¬ü!‡d”68*«L ê·°™|‰¹éRA˜Pº–„^M€ôíÿçðy‡ð­Š°o#•®eÊy &÷Ó`kòîò@Ñ#-–e²IªóýÛ”ÿX:8éž›ýÃ\xµ}u4¡ yüc=j×ïY ­?ô§%ŸõïD÷Y\質‹±slMÈÄÝô*Â%r/JD£¼€¤â0„ñ>ë û áB³Ú‰‰ (Vµí†~ƬÄôá*Íh}åÅžP×›ÆÑ %•wùƒ²¥Ö`4WOÜ>lùöœt6|°—7Ø0¶ èD}ß&$o3-™˜±?íq¨¥\{7Øž¼Ÿ¢G^v•ñJ…DŽôÎ|ÁõÕ?™Îü%j.‹\ *²1t÷¬2•9Ö¨ò§‡IRYîZ.²óåÿþV«w,€›©*ÙE]ËßðyJîþè‹â µÂËR?©^ø |z+£ø{žIBWì¡yÇ™§4A¹užÎxǺl:,qŠ=¤Öü›s£¦ŠxöÙÌû}Ù¹ÿxôÁ£ñˆ ¤à¿Ê-éÄYgÔæ=E2<@ `7³ÙUO¼½IˆœÂâ„@úT¤›AÀÐ鼸mVS“ç•Ç4·Y‡ö‹”ŽÜ;\2TcÝ}Šø`òƒÃ#¸]ô\àd†‰™à…-.SJ¼ð8w~l² *ÌLx†zì<*)¾gþ–1ÆNë7Â?è#:ú«ã6ŒåóÃ<ö5Ä$žÍnÐûò&"WF›7ï©ÔÒÆ¼ô<îÁA×`&óñÞ¶s­g¿&eô·œ…´%ÌyÙ¥3/¢¸ 0`íV[)©©*o¤"ŠØºF¹øÀÒ ÿÜ.ˆ…2Å0ÃÖŠC’JyÛ"÷œ“U ðµchýà×V•ÞŒŠ‡Êý+Þ;2LDnÄRg¾ï^σšîç;„ vU@U!Ôè݆‡3XÐKÝ'ö¾ÁÏm„À©4)º\J¬áÂI c{$¥âÓÑ)êY8Ä0?ª±å<£‘ t‰yªÓ@•ñmÄÓû?w€R–ø‰ÜŽ©Šü¸àVÑ¡¤¥úôªØý>ójQg3žÄr5Ù/;1,R¾z ª®\ûî$ÜôqES¤j§kÒ/ t^‹lf×[àB¤=_ÌØ›äúýshV_@¦sÔw ÀÓÑ Õx%{¿öãââ<±b¥}ÒÀ¢æ4‹Úµ¹øýuŠ´Žû®ì¢ÿ+ʵ{6Pä˜Ó0Æþ3ð÷ ­"px°3jvqK¢|j0nlØC‹àîñc! ·#ܨwyãp¢;1… £•V}€ØÐqqBY óô•è.](§S¥qí,6y Ã?+œx•Î RUf¯ÞÊq#ß‘¦*Ù­Q­Š³²?ñÏ•/l–^½¸›SŒ£[Žº)Gèeì!À‰Ë ˆcs‘LumÆúž¥HöÕi2owðøýÙú¶¿¯†ßF[A,8À#uS‹O#»V <  .&Kãl©âBuiXO/TµW诞'S‰ßÒîG3öÐÿÿCê¿×ô‰Fxݪ¥ÂŸâÔ å×FÆÈrÂ|‹–]°üæX@úù±ÁƾV*D -É2gIƒ=7Q£±ÏxŒÕhÑ<";L<ÝF´ŽÚ.Ý)°P!DjR¼~̱ކÂÖ‹DQÆ0Åþ A¯¢u÷l/±Å[Ø``_©ˆÙªp |7E/)ìóCäœ,Fæu ¯G‘Ü‚€ºB`8á÷ôÒ=ßÊfþŠåéywóÉ„© ¨›AO­ÉlîY'oìC ú½ïþ¶s úñkåõ=ì¢Ù:TýšÏ/'w,Ÿ­…ØÚø^4‰Û©àx$¶¼‚¸;ý…“bæ“:Ü@)~죜ÿYaaí)÷…€H±Q™ŸSPèB²-%ú¬pŸ¼†U6§*Íß§µ§Ý¥&·éã)”¸÷—}üpõwT:¿—Ç`c>çÈ5ÕmilŠîéˆsUå û‘x™®×´)}x?ãã¹%§Ä|ÏÍ6€ÅpjøtË©w1 jÎ Êž@ò97:6ê]òhíßúÊÛ·+Õ¦ìùÿž bÍɳ³f%i¤þôúgšWÙO¦àL(÷Òf…;+¯¤+ðûgÕ·Éy¹üÓÕ4r˜LÆÊ¤éL`³ó¾Óäã!{ßPŠ\÷SÐmf·@Á5E›|w%WÆR…nò’´ðÀ1}¶Ú;}ß$ÐÑ.S‚xâ“û¬;ú=†p_…Ø–ÃÖïbiì’÷(®Ö¤'$ó³v¬JŠm½mòÒšKòñȰÕspeÓšM™¼Ä÷ñúü‘{9óžJ6‰â¼HÑb2ØÃ±•‰ pøºÞü»ÑüDTqÜÄ9Í]ª²í íy+H–=Ãod«Ü]4øãTtóÑÅ[8â¨EEíx"¸€'TâÊ¿i׆'6Ä%ñ$MéǾ<_ÓÞk'Gæ)áèÐÁo+Ï5lÍ»ƒšB‚ò?€ŽÓdš?ü“× ÑœXâ)ÄòþjÀÊg€ðÅIP­„ØXîßË9Š´–·P”´IC_ØÿÍëB¯]<ÕÁª˜kõïI§ª Öö.wBkÈQ{©±³µ:Üu}b#µ Wx"¨QQ¯æ½Ë¡…²áòŸX¸ÿ£fÝey­æ]_zb'é´_•«$g?ˆýðÖÕáe»çòŽy°k)|#PQýwn‹hî*L3úšß!ÏsìîíLUV¾“0膺Ãr±#eèŒ,”•ÇØ—@•Ö½dg‚D§˜’–ZµhG˜fqb äãy˜­µ¼ÿAHý=/2dñÿü¤¬röJÔ|„6 )žqÜù<&c…ØÒµq&LHíòý> ?T㢣onÝ‘€U´ÉOM«çáXØ7íI´ÅSˆ©A\–]²NÓ<趨F™Ví4·&K’ºIø©ê‚ò˜mfÝû‘p?ú,¸n’5f9³ôúÛ&æ9Tƒ[|W‘ª±W{Ÿï“{V¯åtàÍf,‰×V«“ý8Ø5ý±BLŸ&¼  ÀWŠ·@dºjz»$ÒÆXÎÍ­'†ÐÜ>òíç•þ ùŒ¿¤¡`XB«~zaáW-ÈRÔ'-ÊŒAçÜr2ìì‚R æâÃý’]ÞIis‘‘´ÝÛQ±æ}c&È:ÀËn×>#øbaâÕ€‚pÂy]'*òÁxžÏçºz¼å¡F›¸ÍÁܹêþà€É¨E°ÈQHÄ"ÓØ(::ÂÈ»ÍÂ¥7e:è¦C9DÌ^« TÞ‰‚ùº²œ<];÷Ùºš™3 ¼® 7ãKã«óÀvàÆ¾».¿Ñ’ þCÿ+sFúÛ×à/üc2 TVù¨yÅÁPG©hZcؤèÒŠ)(_„wÌ+”*ç2ç D'ñ6@tïWàWÄN ÉE‹Ë9qÞ€õþ•”è‰S¤ƒm-Ä`ÙºÌ: H¼0b(B íhŽÚΕë*ˆp0Là 7 ÷Üp#s³ v‚=‚ÓtµAÝk¡ž¿œ!j\eÃeÀË¥ö<ý¡Svz ›â¸‡C#|„¿ÃJO¬{%°8®GL?Ièºìöri¶5ÔÖb5–­®Œ–‡P\¡ñl@UµåÍ•ýõ¿ãšÊ,ÈááÁ8›ó6* –)°Hø²`V85¾EéÂö7«$Û*?M±ñ G¼8ê¶Ãw”¯,&ïúK×(@ô⋘£|hkÌf\!!ªpÐpÐÀ^‡£jK^·¢EÃ=”zŽƒ9õý0YJúŸØ®iŒ&'4°‰Çdq%¡ßgð×ÅVLK#hó™wó·ë‚LæÉ@Щ'£C‹6)~ø‹L¾¾ÁR‚g椦õ‚¦€¡>*},2#ÊÈ`™ö0YÛ ›°Úy¡"ÙPÆ>9±J(ÈØnŒü³¨‚à[.ÜzdÌ!L µÆ- §,}‘ ŒÌ*:[²ñØEU[]l˜§Êœ¬ J¡G@iÇË¿ ³–A¿ºT¨x1G?'/šGrS­ªë £²Ç‡§äUµë-=·Ó’Bò@¶jïDƒš¸–“Rf¨,³¨%+W43Ìïfo}nÐ6éfàr)Rî°…ù%@ ‹÷´œOeýÈesSZ0—$¨ˆQ¡ýJž×‘•o2tÙ2p+ëzÕX“/O äN²à¹Ú‚Ò%°™ï_¡#"qRÇ^Èy:|¦L¦<¯²Æð ñ¥êpR)û¥Q§…i•ª°ËmÎŽÂ4æSw Gà=Hh°ZôŸz‡­hƒŸ•ÄPgNÓø!NÕ¦³Úq³žÛž4¡;uÏ©Ëë¥,˜Õtë æ›ò"z³ê"®…E {½„|­k7z$"òÕEËk!¬Ì+ž¥¢ÎHIÔÆ2ë ^FüD|﹫Ž8Hý²ŽRµ{ë º|˜ƒNAz? ³³R^¯APp¨Ÿå¢ÔÊ«#h,Ȉ-Ì“x©¨EªÒöl„ »íâ¢Iêȶx§âª¤tÃÛ‹gè—èÒ㉳ÓÒ“Ó»C‹ÆPü7è{‹Çn± Xñ+_1-Ù@޶X QóC<$æ4/ÍiÅz?tM•.¢)î#}q‚莗SfxÍ^º@‘‰¬ËEGö -n!Y¥~õ[º¹'¨¡¯'n¦ÅwŸ–>é´[ zv2“Ër8rþlÖRÜï¦3ÂöMŽIÁ¡÷na\ïB¸( bå‰.mËNÞŸ‹=@v‹ói¼§Ëë”<˜”'e‚ÐÇZæ&ó&ÔFíR|jÙE½vˆ–£Ãí“j,C–x6í»ßÿx¦ý£,¦¨ælÔ³•NAçû®üôµš#îlÒ¹U‹[>f¸‘8ÿ!«H‹(ÿ‰¹Tí H>OêYç꼣̈́O³©>0 ‹YZrrcov/data/soil.rda0000644000176200001440000000452714660616401013770 0ustar liggesusers‹í™Yhœ×ÇG›eIŽK‰#GÖjÉZíÑ|£o4²äïÊRâÐ$µ%gQˆP4Ú,»Š÷RHúPhÒ¾ø!¥%¥„–”RhÉK¡ ] $]Hq tSpÓ–B„kG–kyí̜ߙxto°chiK¤;÷ÜsÏùŸÿ9÷Ü+4:<)+…B¹¡ü‚äï¼ä×üÜ䯜P~¨(59vhÿB(”W™ü^˜ü)MþÎ…ÒŸÛMÈ=~Øú­ä·kÿ?6®ýß?Îçªñ¿$/w:†8§¡?ÿWŸzNo÷<Þé¾[ÿ¨ýâßÏú½•ýÕvoåµ<Ä95 C^êcž^w*ùyÓìý¹ì;'ò™'_L~¾n/ÈúüçE>½Çÿ6—ú˜¹c"?:(ú3WE¿Úù£Ï§õ‚ó/Êú¾ÏÊzã)µ,,Ê|‚ñ@§Œ‡[eý1ðM׈|hîKío3]ÉÕ÷NÔ™¾ß ¤6š†3iS‘4’˜ú¯¤ÌV¿M™[~Ýt~Yôîe½|@üyäµ65;ümÓŽßø§dÜŒÞç{û·Ä÷]ÁÑMÖ‹}¯& Ðì˜|mø}‚õ´¹#¦ ?­ìëøµÄ·û‹2ì”}¦TøÙ…óËtàÆƒ‡í—Sa>gv0ƒ§›¼tÏ‹ÞÖ'$îüw_“¸¶À‹G}F,vL¡àØþpË’ŸÁ±‘T¦ ª©‡RÖ=ú@y$Wì” ?½é°ªL?ãæW±Ž&p5c¯üaú^yÙƒý#‹b?|¿È£}O?y߆¡·Sê£&Lž<ðE©§mçÒ<?…g#ç'sN÷á±úmìÿÍä)J½ÎÌ ŽaêkÇ×Ä¿–ý”ó0ð’à¨yVðú»E®õ%¯æï‚§ï¬øõ{„Ÿ8õ“£ç‚úÚE=ösgLüwÁkÿ7d=ҔƗ9§ÅðK¼Á uS]/¤ÝÅy.£N NHÜÅèWŽßE‚/x—õ|á7øûòåK’¯à ö«¨›\x\KÝÃwˆ±œeð_ q×ð{<9Ø+Á |G¡î“ú.‘÷qßKžÐ3ì[¯%Ô[>zâ/¸N+?y‚3¸‚/‡yĬh<ð¡ñâ‡1¸¡<á§üWˆó|ÿUyB-ù)”<+ÔQ1}µTüeø[£þ‰;„¿bx*"®EÍ 8+È[£œ¿à2öJˆ«ˆ<(%2®ÁÃ5xÈ¡^ÈGðxÎ?™sÊý\{Áyø¸ÊzŽÞðA}š2ðà§œù‚?8>yÐú2yŒ¥Ø/#9Ä—+v‚7Ù¿~׃#Ã+ñ^T¾éC…ÂG朶¿JÆ òØÀ¾&öur¿¶€§žëÀÙ@¿mel¤^.°sÌß"/ÕÈ È³ò¡ýô>ÎÞ/õðyù#ÿ¦…û½%!<ÔÀ‡ž¯ØÙ|ZâÓ{¦ž›¸gîÆþݬoÒ¸à³þºe«ÄùžÄߢõˆßAîË&Îg¼nbÔ÷J=u_K}Ô³¿†õ&]Gq4ÃSëúŽNkÚ‰³NÏ5yê,à>Ã΃¯KÚ¸wúxWy¼Ãz•¸šÏqOñ®ÚoâÛF½4S/]ðÓÉ}r?<…;dŒ°¿™x;À׼\Cدy'/±^7—ýîoxk¹×c#¸ªÉ£'ï:ÓÂyÑ÷B;vº4ŸÔ{uTG½†¿#öú¹‡wóÞó¾Õwf;ù.Åû·Ÿvp6Sߌ5ä­Gê-sNëå=\ü}ðw-ýä"¼lþދ78‡‹øxEâm”¸3}ím=‡ôK幜{ï÷8ï™ ÞÇÁõX¿ozohÿ Nƒ£Vã`^Äýs‘~ü öÿƒûdfý8äÏ7/¸ŠÒ?ä™™Ìo?¸Öð.¸‚Ÿw°ÿŽö}p+_ïãç:㲜»Ì»Bíœ'ßð¦ï½í‚û’ÔÖiæ=¢|,‚ãO·¾L¡øËì{ügéÿËय़7ˆ3^Os¯\ÿ î1}?¬aŸÞ;åu»^òÑqžJx‡h^K©cÞ]Úo2÷i¹ô‡Ì9Õû¥„¼]ÑwΪ÷X÷Ä=ðQ½\ôîÒ{žx5¾%ð­À¯òR}¯ýSß‚gõ{%8«q_æ]ƒÝ%}' žUÿ³)8˜xföXòKy(õOæ< _†ù’;¸ ß†úí‘}ªöŠ>™Xe¿èè¡Ïl½ÙÇqJºã½^מýÇë»»mQ-ò-Q$b‹ìѰ%ê‰Ú¢˜-Š["ßöèÛý^K³=Æl½6½ºqÝL„#™K/æÅmY†Ú›džÃ‡çØuø:ôzöz{}‡žïˆ#æÐ‹9âˆ9°Ä»²^Ké¶õ"Ý6–H¦èn–ÙX"žo$êðuØ‹:ü:xŽ8ø‹Ä™KÌáÃQ^ØÆì9êÏsÔ•±yöµæy=G­y^¼‡ß¬ÃìÛ}Ç·ûŽo÷ßî;¾Ýw|»ïøvßñí¾ãÛ}Ç·ûŽo÷ßî;¾Ýw|»ïøvßñí¾ã;úŽÊ\z1‡,n˲êÃwô•9öF~£½‡½Ç^ß¡ç;âˆ9ôbŽ8b,Y}Ge½–,»ï¨ÌÆ’ÝwTfcÉî;¾£ï¨Ìa/êðëà9âà/»ï¨Ì%æðᨿ쾣2‡ž£®²ûŽïè;*sè9jÍsð’ÝwT_ýàš^HÓÇ ‹gÇ[çŽ&ßIÉÙõÔÏ¿µ“èÏo#rrcov/data/fruit.rda0000644000176200001440000175106014660616401014155 0ustar liggesusersý7zXZi"Þ6!ÏXÌå¨ïþ])TW"änRÊŸ’Ù$ï‘ö¡¸¤w“TXšm…çü,Ïî¼(ÐEÉ”¶ Ë)<Š6yZozŸ a ™ÖC,FO<ÝXH2ä¯õ ¹îaT¯œuPö ßÛ#ä30òÜr7·¢Oì²6¢¹> ás)'cÍo€_(MvfjÚCIÄ'‰¡ä×öì,NB~ç]Ù QÀh«eÔ_~^ÍdCĽA!eË R¾®Í",ÖµÕiÑ'üP”ž¬3Üç¢#ؘµ#‹¿,Oɱ—IèßλÏ€D: ‚ Š?Ñò ~dRÌ_„®¯<ýÌÁn›Ò弫áåá€0• ÿÄ»‡ç,<ç§’Ü_wi‘äôœ”ß½ŠNt¶'›I¡æ ^*EévžÊ›‰p´ ‹8ú lÍ$TšÙÜHW Ñ~ô¶Yo ³õñÊ}fQlzþ“X„ßÓøÞoùV²o_w÷F$*ÞÙöý–ç#Íþ‹±ÿ ËòDù>÷Ã\Ǜ̷FŒ·ƒl c6žÝ°SÊkä³l&‡ æšÓE1z¸äå¶”Ã~‘$ö¤H”f¾M¬¤×t›rdzåè^ SY¿&R—34·?ïwÓ“¤mzÔ¹M­ð™Z…'m‡`ó¿2|ˆlùn¾O}Óƒ÷šÅß1vÙ >¯AºØÀÂѬ'Q¬UÙYNPŽ„³òäõÀj…7kRboÍäMyäðy6}PÒ›+’XïiËÙºØ6ìA€Q*žÐqËôS£r äh‹çÚ‚×Òd{Lµà­ÞˆB[P\Ÿj§¦ :"%M¼÷‡_Ç™XLká'zUÌ•åþOIVn·5 ý+SŒÞ;DZ›}8.ã6+zÝ’ ñϿݚú.%I%7 Ë%Ê€”§»"–kEí:åÑMz%«~íèŸÐCÊ‘ûİFÐM 9E•g§ë £€mIðNÝ4»â/€#IÂM¸XW`Î%Â?â'Ö_s—!«0=‹Õ "à£yƒ*Ÿµ7ù(¿ƒ5 ÌSvúŒŠ,„ʸô­äИŒ\Álœ! jP4ókÆv„,BcvÁŽlà Û®hƒð9\¬7?ÞÚÁêKÅËie“qëD½Ò^Õea[~ˆŠÁ½¨Cý¿ô§lö¢É)TeD×G_KèiW ;v Cv1;òäÿ<\`oº÷åìÅ×\lùvÑŠrÛû’{>›~Y94ŽKnN>fA<”W–*â1¡²²€§[¤@á O¤Çý—îjO±¿ÑbÁ£û§Ö•·¨˜âOXKt`~=uµ‡\ôµ]öó]w)Aï-&¶Œ`e¸d™ç /S6Äa?¹”Š!cÇÌ™Eœ®Ð=,;µ ýgw(¿O¹àu(«K@Ëô É~×”âB§¼A±;àâ–ñgî­8éZÝ®É>2™¸ÏšºRÅn–{Íð‚ÐÏ=¸¼ŽÞAº'i‰»þwËE¯4©±TsX™Ñ¨ÚwFŠè¸±ëèÒÃ.¦Boæíñ—fÌ…¸*r›°ûÙMUwÁ›Þ’a÷-å.zEö0ÁQ'W$7 œòÈ..!ÓçÀ[n6ì†t)YZ>ÕwB=¢™# O0c~NY£ìú*äcRo•q:i•;ˆdþ}üËDìw6çdþ?’Rì)²}'‚— —7“™-&£§>+-! Ìi…$LEÇ ru¡pûö®žH֔܎DSDå~Ê ‚D¸„™HŽÛSṇ"DØ@ÁµÉUŒ qÙvþz=V@:–ïsÌáÈî¥ WAiåJÙi~ˆ·‡ågþFc]ßj…®´G… ¦t" ™¢)~G5&G…\ûG·vP5¾‚·gNûB4ë]û±­² ùw¦ÄËŽ³øpÄu|œÁDóyfæTó??X“<`•£Ãâ‹Ñ§ÖXzmãY”ð»Á?˜G… ÿ*/…,! lÌ&Nôp¤fa‘Ãbê€=B”ýhO诣Rï)Ð.mù´]ZÒ×*×QÄ”Õ'§Z%/($Š{);™-·+ ¦ ûèÙ|ƒHOXÈÿÜtØc”FR'¥¥(¬Rí§[¦ZO¯˜Ë«ƒÐÚÃh,µfUÛ§r¶úiò­ãFïjž{N_ÁX¢.œ´3 áh*.+=e®œI<°É-e‚¿ŠmdMÝCßF ÃìáHt!U¼]Ë……zMß~Ãc¾a-h…Æ æÓÉt‚ è‚$º{ŸFáezÃfâ¡Å·A. M7ÙŒ¿D‚ZáüŸ;á¶O÷P¸8?;Áddë Σ”·Ï‚Î@´‰Hqƒˆßçg" ƒëåßüøU…[ðÏŸ6AÁǘtA˜¾âÀüTÑsÕ‰ÔÔÞ8Ô}ÅÔøˆ…fȦAÜﱫåa® 4sƒxVF4¶¿RÛµÐëG4)3ŠWu¥‹ÅàlwlåÑÇ’É™S°Æ…3\óÕ3@ÿáŠÁã™V€ÐÜó¢¬dud~.¼Ò—± ¼Ò%N+R}X(cüT1·½6"  |ZQmźÉC·ýÁ_sL!xÁ\öŒÝÇdýõcûO'ªþâ¥TîÑËWÖ¢ÿCe7× ß^)“N°ÙE¡<(ØígkĘƒ>Þ¼²ˆø·Ñ E •þ¶©=6¹ñÉ'`=ïÕ†î>ßOW8üÉ¢›xEŠ6îØ‹Í—CØïGó† $ k!’Ä™ÅÞ|‰\­×ö¶V"‘”çÜ€ËÂ…,bÖ‰Ê"}ùÜ&]w؃xæÝ½W]ËD;Îná½"XÇ 5Å@CöÂt–Ô@ìØFò­ÒÀ(b`K•«C8”·hr C4%RиŸ®ýgÜ£t°2úJ½Ç?Ä’Pû.TzúÕŒ¼þT]E‘e¤;ðhêk޾CDÐlÔ¨ß$¨ïœÈ…ʤ­f35—"ÕA À µÀš xûk*¦¯b7^âÒ/ d® Þ?+^ËÀ©ÈÊ%¢PPp€·u°V*åWöè¨Yó>Š!ål­’í6‡Ëm4ßx\ݤgcð JrM]*·q˜ïŽ`r V\ÅÐÔÞ6.{+[ì¦Dý»Fhà‹±ýÀdñàpá§«µ®+ ;V¡P- †2$-ù9̬'µbįd¹@µ¾ˆ‡QL—ÖÇÆµ†|Y“Å —ÉŒ6à‘0ñ1[6:°¼öQÃÏ^öÒ¡¢6u¥ ¸ ”4ÈXën÷¼Š(C«Dëu!¹Ù…›j#¥é*‰cφ’ï\O&BS{€m…^€ÐkFFq-ð“2ÈlZõå’à îiM³µ+°Ÿl­d?¼TÎ4!»NrW˜MF?½… ]²qã ÏŠúG=œ ¬\e>ÍsÔ‘Pø6Dùú0ÖF¾±¹Æãÿ(?é£gj“¶¬.»ÈçáIå¼°#lø"`ñÜì\Ùú÷ƒÌ¾óoŠ=éokßvr»f‚œÛˆIP:Õž³ÝÖºoŒôßÎ7ûÀ&h8·Õ+¿×–é•5ÍAm³IJ~ñü›®jÃÅPàA8^5sÒ ÷p‰&¿M]y¸¤v²ƒg…K¡3ÔnLÏUÕH“L‚R 'òZÈáùÏOmBÔ õcsD f€?4råF]5O³îÏ#r1":näÚÕòšï&ë†@©ŽX øj%üÂÕfÈ‹ˆ;lÛ‹Û«¡±g?P ¿ž]1†ë—bœÈÖ_Á¥c4ç9(—µ‘W¸hT`²ýÜúå½·%ot·œŒ9+ç5ÛluB.VkN² ´T2ãÅX·ª¯$=OôX£ÁÍÃß©—ä.¬Éô½•v#ò&Ï,¤¿òÃò §°ãhÈ@‹è ÛÜ™À§Rü5€žÈ´2ÖºÛX|d÷¬s°•cœ6‹ù½³A½ý†UP™š>©N ß.WÇ'ÁÖêë F4‰?ö‘™“–&X¡¬×_¹ñF÷O¬3˜Ã—íÿczØGv;o瞈æþé‚/p]2ƒ]PJÓ}ý‘G6A}B§×ÄÝÁÄ/v]èy)†åäÒLÕ/–4ƒèIv™¼,brinž^:¶¡÷Ü̧iÝ®×ÅZ´•¯…{u‡Qoãö5Ø"Œó_ÇÉÇ—•±ø´3_‰Œ¢úEí¥ž{½•Û/Ô•+e(q´¬³ÊÄæå  Èë , -ôç£ø ½Qö‘°Ý 0«…ÃVì3\‡ ÑF Ânµú¤(o•¹¯¬¹•w¥bóKµîÜ4áAï£ô¶£Õ­Š©ÂK׈‰CÏ…Xœ“l?Žéf¤Òì baöS…®PHmÎÂ5Ñ—‰žé–w‘k­a®\óÅ"îÕ:¢¹ÉnFVl ‚’©•êI6UhæÏñ*Q˜M1f‰HLùL¢V0²)kª6[á«h}“œÌ™ Áþ³®Ÿ˜¹ ¯¨mïCâŒð uf ×aOoMfÐÓămeT^1w.hF¬Ä»†¥‹îÂ>–¾q ׯÝ^Ë—%’¤dåÊ®ÛFWË âwm\‹£ûvë¾êó{*8±àBœùmîcbMœGU¡Ã›ïUʱ0-¥œ»P’ß̨léu¿½ªqóš2±ôÝP›ú}*éï8÷QôZn®3›ÑȰ¢£þøõœ‡w0&ëwI&~/œ,Ù8úh¨ãæY9¹]¼¡ïd{}Ó³0íÔ¦OkhSåžadŸRi× ûïr4„•€D¯ ²öN³•%vÚx¡™êzÆQ0½½=‹B÷Ü™‘°lVrå!œuf(‡=¤úJñÎP›á„r¯£mVØðc«Ö¹Üf"€'T3ñJÜùó²ï‚Xø$¡Óü™¿áh¬hS¤Bƒ\ÿÁ ̵âþÂ/çyï7IÜ µ‰ÌÄ…GNðÆ-C½'”œJ=Y_cŠ\çìÿíîtu„²Jfñ=HªËþk÷½Ï±¹ì$ŸÚÛ&XŸÝN=êm3‹l;`—áŸ[¤()·|PuM.¢œçö‰#p£ߌ1ðOC›ãö•DèñUQk}éŒíB;úx˲träÆp"œ?z´Û kˆ ï;­4Ó¢Õ9d äI&j±ý Tai ”Ý1Åoö‹Ûÿþ{™Å§#Ø óç,Ôë–1à&ÁÐÛ.ätUxÊeû ~R»Jy§ªTXŽGl˜dÝZbðĘèox?(i¤Ó}rB:IJÇÜgY8´ÍÆ])Œ[-|}Ÿø8ŸŒÎ¤ÐC#=ü¥ŸØø/ƒACbi¬ˆB/(Gî «î;HÔŽ¹Â>l'Ôž1©p­†Én«Âá`á7Û,°ûõ‰®€©ÓñÑÕiesº•xÀ Ÿ’3²io´‹Óá’úDªRVî1Ò;úÐôêtÛÔèÒøá{š¯ãÏ`×IMÒ¶Zúô¬ŽFiq\[PöèuÃ^Íüt1ÆŽâlõË<4K™p}?"›Ëeh–hMsk!„ìÒë<ÜiÎÿj­€Í>“ŸNÀþ”1"ïèàÚûBÚ2˜VMS (œàÛÒƒçÊTÆi ³Þ'"OéÕÑÿ>e÷î±Ñ×ó/4”PR…D”“òhôHðt?üï+€_|q«µ7,z®Q  Íßà …ÔcÙR "ŽÞˆ´ñónÂ=€(êWk!´¿lD¢«À#dmÞCUWQú•í21ôΔœŽ¹wÁ”\fœy%Am»Ý±Ìmßö:;Ã)?ò¶ÈÝ’CØ5r]77í)I0«¬B/­óRJê¼óg“kÓ“1æÍ ‚8ù:‰§j@tuïl'¡…óÍ­3%‰ŽœÍw=Óf¿/N+Þ6ùÍkÁz×%ßÐÂÉ3,5–F`Å)èyså~[#”qB>heLTàel<üšÒF›™7 }Ì÷FåõC¦ÒÅ'Ž„/X•DºŽM¦ý2D[ËäíB›v8×äѾò?—B®ÁR¾ˆêCgûՙѯ7 “Öq„$ör7(œ y;{t½2x ¼mB¹w|—DÁEƒž GœƒU˜Sä Õ¶µGa,\œJM_‚~h&òU{9<­?qóLÁ&–Eü+;¹äTkRK˰¢ü#5óŒR¸“…›Zæô}›ØÞ+êét3kfÚØÖ¶jÑ“ÙsB‰(%ãU(q•-ïÌÊZý€´ "gŒAüyN¡F øƒÁPˆ–š#hì Ö bL2÷³íï}jÊþ <© Ç«'-K0¼ãþ¨!+ûÃ\£2ý]\ ÛUEªóÈ·ˆIZúÀÛ²”ÐîÒss- #³gùÛÖ€\(î#ÍQN딾P¸OÀmJ4ååÎ2½j]XË v„BŸ±iãb<™M.#³ÿ:Ë+¦fs;†kjfž °ôÂÉGúÁ|¼4$ãp›3M-¦`µ£NŸ¹ÉQ½(h aa-æ,Ï÷€àëÎ ©R†¤ªC°ã#O’ÇûãÔ^ÌnBx¿bßáÜgþq¸z[þ/mØÇkq2x]ìÆ5°ä¿¼²k¨…ê:x%úSeƒÊþ決¿¿\QÂ{1ƒÕkºÔó”Nàˆ–>l¸QJ Zaì˜l< þM`¨Öªz^èp™l §hb'9?î¤<߹ћ,Ia°{ä/ÍÐôÛ‡™£Gõ*´8‚®dp ´"Iï»G"ùÕr1ú?¾·ÿ_ã kîSdß稘Y™Í3 €3ŠIü6—Ý_òå¢*C÷%2XŸ+òh"n D—š1|bjñ¸~䊉~=ì I´0¸ÓŠ ú]š Š9m,‘OEôHîzzo7}[à7âa=ûFûdmr£»[ÙG¥O©r´•Õc:”=¿²ÜËÑ „VÞ ÷þï)ð×ðühŠXhêÄã+(ùÇÖ*O;]°µðšQO”Áž˜®võùä‡ì\讫yêÒ¼¢V“V½5xyÑU‚ãÒäŽ$c§©+Öû‚(Ù;ö5ǪÃ4Ðç³”`¶YM¤á(Mœ1´Ž¦0þ LäÒ·ìãŽü~_  ‹€ˆ¼ ¥=åºÏÁóxo|ð ñÞè`~¹}ו5@ޤ$'_‘"C.g'Š»Ý§Ä2©Ÿúº612¦€ü(,Åö7"¤ÉEHÍœg e«`Žƒ_Ç)†?ê¹ gÍKz°SްdR ;¡.Þô§'» ×$ù“à ÝÌõ”›Âɱ‘àÒjéÑ>Ðî"LWiØNѳð°8oö7|ì ðzÇ:û@ÕÕ±Û¡:|'Ré%½ãzîjøvøææƒÚ!zO>”†œ³€]#àvÅGø¿ŸMG£¯1@AŒ ã7…Vð€×gÕ8'ÔŸ.Id`D·˜?ª–y«¶¾Œæ±¾µY‚,5ì‡j‚ÂëÚh;!<‘Q²Âª:jrõHïq– ùÊnmi<"kkpæ½W“ü.y”„ÂqtÊ?Òª óÎicä“ò!5ôÄÁûxOÝK“•Ë;¸#™Î{o¸Šh¤²¿ý†S ëwp#\ ’¯„¥ÊÂ;bÉï-ýÁ =|äZdWöÛž ÞyõTi9pjj\ƒv_!ºòãcÅ%Æ{›Cé1{ª(Ô,Ô(™²6:Ù£iLǼ¯ìÅ&Þ1³cPF%!·'_Me,×_çJਪ±êÊÆýè±äMîw€aâÂî™$|ë“zX޻Ĵjû³6Àº½tæÁßÏÜwîÕK%ü°3—1lµrh56õRú<¤I–µa)ˆ³qCY¹gâ)€œßФÅ·š®xµÁá@L̓ᣜj˜ßY¾-È[˜>é€(yô>UB “9Z(6K¸‡;Ÿ²pí 2°€P.ç2}Fö@ÍŸ #äôu/ÔDã.ÚÝ«® y™Ó•„’¡ïTıµ‰]†órŸ…úò_ë;½ÉNê•‚7ù8iµƒ ÷oˆ@Ö!¿\á}šËÜ£¼MÖôu%4+5pM¿þ û­)à M© Wä•fwG2ÍKU–ÉöXZýo.ý3Ã^Ä—éç(ÈÕíS-r£¸×Þc¥Í쌸øë´LžK¶VÖÓ¡/Fyß]ñhÁè–l-U¼×)Þƒ¯ùµÂíu’tÇ_¹+HIˆÈ֔؈p¨õ´õèÅbh=ÿI˜ÍåšÖÍçI-pòÄ UZŠ„Ï?ï¾Èšÿçeôü?¶­µó ¿ÒQbôé,S[jÙä{®±ÕÝÀïy·-8%š,0 u\«”‚Uöܼ/¼…’ô®Ró jÏ=gü8‰T£ŽYÆïÙÄÞjcg•üfîñ©p)¾”5>¸øNI«ëHöÏáü”ÇU]iæþ²pe)Û©\ëšN œ77”à¡qün-¥uÚWšçËuDæe_©4Ú͘;ÅŽô3U&ØRÊ»:dÅ D\2±¡ª»1NqÏ£Ž Y\‡Cöà†Æ®ÅÔì§ä Ü·T5¼Œ@¢ÆE€é/ˆeŸ’7uŒ`xVp9U¤ic:heР+îåE€/V0 jÙ' £ukêq1c‚R ½®Êñ¤’ø%Ë÷ðCŒ–¬Ék¼í‰%Hé~yù~'‚•zéÏ3”¸­Ø>%l6R¡äÐÔ…0$’ Ôç¢~üš£ZUÅtfÂ]÷I´T–ÈÐ=oÆe‰Ã~•ô7üZãüÌ Ç”†P ¹Häqnìaê=:œcç‡á®œ21RÒÍì Ý%Mbqc̾ ±AlÕ¡Ãe×…Û*ÞMä󪿥Cz˜&ž ¿w_¦£Fß ñü§ ‰5­bÎkÙ×Ca„žtxD„”HIW$#®ˆe¼Ôröí9÷¼¨ºbÂåìÓIÀxÊØ¤qWµ‹âÛ0p—#™W¹¸L‰I˜[÷ô.#9Ê «[ˆñzÌúY‘yÜNë:Ńs +ŠG–c" Åv8ÖS¬$dXìö‘ŸDÂ;œš´h”o™/îóh$Í7pa~)Lø u LÒGn¡¢ZÈàNï´)°œpuŠge\W"Ûí+d=\% ‹>d™Eƒ2ÃlN;`6ŸÌΠºd–|ŒGzÍücþ­Æ§hù6ÅÏcÿçù¦bçl¡½ìÛÂC(O%†)xòútÃÅÐ[“¥÷QRÆ!ÕeЬÑÿ‰—¹×«×¡ÇûOÒ„@MçõÔð€aº{d^Øù'­ãe\w‚êÁ[Ê Ä홾hû¿DZ_*!˜¹¦Ù]Åu‚:º±ÃRšè0 ?:ôó‚ÊK §£æ÷£ò['9¹Ô`BF°çâ'즎l¢ë@Î3€§×x}ÑV9á:×°¢c·4p-DêEÕŽ@©Áßc²èÖ|ï!ß[-|·ùÓßÔÛ‚J0/5yŒè5µ¥‚Oyߢ1d‘ưí½Î Öê…LØÛBºƒÜ-fûâ(^POmévà"U÷àxsÙ#ë€8 „{ãç_3l×ÁG°ƒÄø•¬š„3qm…¬n† Çã[×Lž¡¯M¢œ#¯x°çèEðšÿ!sÖ”Ñ'V.L¡”WZtg^ò€}düM„í8#Wºm×VK¡\«-òËÈmññL1ÅKŒq¬ ³í¬snøAù I§5ç$^bRXüîZÞß›àÚ±Ýý”ûóœZ1ˆ·údFëòÎß!ƒãÀŸúA,›g 澃-ˆXמ|ÆMÍÖHpï*dEŽ»“!ÃF•DËýfG¹»ã‰8fáþ¡šø¬ÅÆû‰ÓÖ“÷ìóè­ÔÚñxÈ&¸@K¾;¶]„0¥îŠTz°qsŒ¸«nܽ‘Î/å\!G,nÄÝw&e’˜¥•24»ÁUNQ»ÿZ;#!ÆîÊy”iÃ㈘<£¼²õ(a[z›§2‡j`½á·Éú1:]×ÉçÁÔœûæbÅ9Ù•< š}9|Øó㇈°ˆĆjŽ¥êa, P¸š6!†/ô¹«4’  RëûìZË7Ÿ‰ª/¡9¢Æ;ñ^ÚÁ$@ŸÏºB„·hÅ+÷KUY¬“#&²Ù—äA…„XhS!DvXÓÈ¢þ8už*aϺLÓ&ÝÝèʰË‘µüóGÔAÎQóÎ`6C€¸'䯻Kå7€ç0çF;“ä û/ö<›Ëçð¥làxàd3µJ[2$|¾÷°ú 7ÒyW Q|HKiœ*¾Êc÷Á<Æ‰Ç ÖexFñ’ Û‹¤¸>?.œÍhfÊÁãÏ ç­‰H½ •»tÒí/*"î…ì?‚皆süÔN””ƒR {ˆCé ³²ìÿR lRr»ô ÛĸöYëQZøæ·¢v·Õ¢5K®ó}ã*óµyåÌoÁ]±q1ûËyl¡8s´Ú?03í‹% |cOßsí+01Z©õ<• UÌžvG©nø6iöÕ†`qÁ ¼Kh#ý82Ô#Ž=ø¢´÷}zs+“,Çþžú³85uËݲ$¹ÌÒï–óú™óY"4 ³H aÐS š2±Ú†t=ð…°GZü@4$tbyëòU„Æ¿'O“ÀªÌôBRÊ"C…v˜‹¸k-gV.S’§ˆBïuŽ9sdª8ƒûPóäeíM‰në¯@A±4´«#¥hÞhO‹íT—xÇ-·÷Ý g•Ö€ÃÅ ¥0¨å•V°:c0C>5Ë¡C¹6F' ›Ä—‚L·ÝJW1Qþ{óÈÈçsV+ñíPg]zbçÏ{Þd|V§ ”{Ä¢ˆ!¦…å "÷J¼`ûê5YïÙv—Îo_6Í‘5޳¢\{±QyWž´6³‰;ssd´?¶€¥í®Ã¤ê®ýè"~ñ;*‹Êï÷™ ÌÙ³„^—Œžqi$±…(äÆâF6ž7nS‹î_n8fãÑÁ¢â´àµBQ £´q ”@bNÞ;ÿœDEî+F\ËÚ‚_àlØú§ –_”?tÿw=7µJݘ‚»Õy!>I^_8Rü8¤ª*ôÛWµ)¦¼›Uõø ŒË  Ïœì%ÿß è&E¿m9Kƒ…h}êô×Wµê†å¦ùñ4@ÁVðñAÖ Žk^–eñ²Ü(N=S¸WP?£L1g0 QœÅ©ÕÙ<¬$d˜qÔVe ›f~Šá¹P¯ÑÇ: å†:|B­eÍï±tù$*¦ùç­¦ræøüÃ-´#ÖÂ}h÷틌â;pW)«3 è𙸧;%©´Éo œIêqÀ¯D-ow…7 b\ÁÔJœ¶cA†(C½ˆÞ=ͳ>…Æ\EuxÐOƦ#tf~C8Þ'Ò(ÿ8sÁ¼¶!ߥiª­ºh6peþyDQ‡Øû €xÐg^lü ƒÞ³íÁR˼ø0ÛwÑqª[ßh¬d½¡u††™øÞÏ)¶Û›‹æzË'ñ9Ú½tžUWI˜VûÖÌ]Dë¶.q%ÉfâêU¶Qš*'”ø±ö*+ÊúÖåÉOâ€é±èç'–hÏ1Ï´:\\‡™Ž·?ls½ØY›p6‹|]ñ ¸ÔFÛ$Ë~¿ÆW‡ƒ6"à§C»`Ãw(§®4íkÖ+6foãGéï¿ûp†·’‘hŠ!±'"Ñ íÅIkÆÒL@AQ‚²´â¯!hmÑVÿ€"÷2‘µ$Â5df°ØÌ3݃²\˜äHP܂Ө%hÅïž±ohÁk~;¢%¨ÏÀàÀ“xk#è¯t2Qz;™‹u¤Œz´œK<®=å:ÚË=’Э)hŸþnlòŒè(¾›Ëü¶ós!Ë«fþ‘»g'iY¢†Yº Çe—5™‚v&4BXŸ`þ»\dO[Éÿ9àF$q›ÈrïL*ÉÝ9KCÖƒžÿ]Ã\|3B}Rìu›¨÷Väš[·±ðpu.JÇá¶>^¢î·+?õÃ3€!Kq£®Cs¡ä þÖgé ø7ß@ÑÒWàî•”DøÄ;ð†m|pzϤgùµÜ°ªÙªh'.vNC¶žãœ0óÁSo™K³™sÁæNÞï ó?ì’å”})ó®)®ÍóšnHr‘L‡ÍŒv’oNÒð°¶W>»î£¨ kkóêØNÞÌÝðÅÌðŠà°QïšfêG†À°r€© Ì€A…cÌJ>£Årô€ø¶C;¦a—©"ŽÚÇ7Æ8ÅÜ!ž½ì{6Äï«cOqë`BüNñ~ [.%}ÇÝùÂrç[Çç˜"ŸR²¬.õTA.-- (¹ÊŒ†´:›fâʳ(z“\ë3@Äm´sÄIë)‡J‚‰ª‡»²|vËÝLe±ý¬0ÉT · ajTga€ôó¶œmѨl€F’/&ÄÐÑÕŽ®Ý#ZÔmú‘]@DÊ㘢J!î¶sŸÇêò"¥½/,//ôk½€É¿4ç·AáËko`ºƒŠËðwþ¾÷¬`)¬N«V¦W!‡NhA¨X9c…$¾Ä‘ýΊ}ÀË/wå‘‘¥à§EoGÛHij¸~j}5IåãXq‹£ÝÐNVÔ19ïeÃ' |Ý€Úau‘øWvJ^+VGèÌþ9(’k _'m¦z©Íe‹æ4{JÿÓ˜xü¿³DÖAд*z¹e{ì;ªÏj ÃM$é ¢CVWXæGîò¨ < —öïòÕ× ÛÃŒöðÞφŘOÛ9¡Ès>wL>ì½éÁ˜¾¹Üyޛŭ1…‡ØìIæ Ú(²íåŸÜ•6™³“éÄg¹l÷ åbˆµª$øƒŽ!jÈX¦Î|"ÇêYøÃò´E7st1),F ž@ÂÆFT†¯R‘êC&nåiQ_c&;,…@»ÒÛ~tO7ÈKÉâxÒyåX‚ˆ¸ã Ì?5ળñQZmÞ¤ÀàG#%fo-º šöD”'žç}áç ×…ÝʧˆÙgÖÊÉðÁ*\‡tŠåø9AŸeü§ÈH©þ[U¡SR|x-æq/@ × œ·ÅÂn×g„Ū$t žN¹Ü$üüYómþ›Å~gˆöT,Ún'wb7îO‡ ˜xÙ·QU@ËlY)ô©¯Ÿ›‹«Àja´ÚäAI¹ÇUó1ò’HößwZ=eÊ" –TP(íøŠåð§ æ¡ä°rï[!åwEJ>Æ ïEJ¯ƒ_«vW@}E¦ÈÆêL%|~B8›¿|¶?pK'eì"ª®•ò S2Ç7êNGÆŽ»nOSUQûù]ƒ=§›ЦÄùáßãªtªö¸¡˜¬â ÁóÖ×oH¦‰ûCøXg…\ÆÑC®ü±?t—G~ñÒ \ûWÖ‹˜Jõ4€;9Ò™. ±Ü>–ì½ó=”eqj©“ÍàZ}Öo8µDT2@Ö¢T.üWºBdƒkH›×ÅË·¼}úÆ)ú³çFç¶üÓcôòh^þŽ¥‰9þ¤§ÈÖ,áw¬¯ŒBããU¢âs9äZi~ÁÝ‹²}ÎóîÅàN’×6hµ¸ÀNmƒD &,;X9Båüÿ²¡´R®üüï͘ÉpO¾ÅÕųakÏŒ–³„™zG5ýñ¡ O&Ê™‰ÜwŽÜ]·1£¬ ±È‘?åX¶š º~ÿç]êßqS°[Fs¡•L‹äË$¬ÉØî|É6ÒÌTˆô0|OeÄOW…inh²g£F$&cN ÷0h<ª.yæS…"K æ:UB¡:ŒíÄ~ÅrA*ß½¨Z+ïdg®¢ƒã” ‡¢ùY@âUÒWl%îãiE‘@4Kýébðfv-{ž¤÷ù‚&˜u\ÈÏåSvÇ™Ì~£=ÊúÉC4.T™[¢ìâ`P»K¾±u$¢²aŠ0ÉÙtª÷âµVMQç«d7J‚¹û.†•Ìzyñ¶æ%Þ>½Æ_€8So*‹øZ,]Â4P$y ‚h—8X¢?ø[ü©êG7TKö®’Å⣳HØüAT]+ÈÉß/jbœ3š$@Xu{yü’BÀ£oÙ!rzNYüÞŠaÉMÚTÏ~¨cËM098ß;…cèÿ§àÞq‡Ãè§ ©ìÎÝõÍ7ZŽÀô =M'é˯¬›¬R¦›Å^ëÝöµ/É9~H]Ǔ냯ÛäMÎNÜ5³Õ@HŒwgjŒq ̵­Ñ11ÓHº{-S{ÚSænu C64{† JQ® uÐ>^dûlˆþî€kòj¶â#å¹¶ÌŸ /!Ä8w唵­‡â_ŒžÀ«VDm*u {ذšbªÝ#øó¶  8™–‚‚$¹Ÿú‹†>¨2M,ZÌ-H`EÓ ¾úö‡CrîAà÷ŠÃIGL·¿Èý48|©ÿ ktþ»bbd;/ˆ&ˆ€q*!Ü2ð ¾DŒr+˜ººáûj¸g˜ÿuRb( ¹lI$f|B*{QQWEPQ-èµöQɬn·±,×T*:Q ’5þ½xùoõ¨zÛê•5|ågÑŒxÖQ\ét)q fí—Nd¼æ§dFp+wJÓlÕA-’YÛlKÍL’;ïAº3ÿ HÏÛÒˆÎrœ£Bi–ÃåKÎ&’–Lk:-J7c<³vV5VYˆª ê›rëÖÒF¨üºî„glc÷öÎ|Gp\·VƒûÆmÝóØ Í:]cà •—âÛs9PðbíT”2±1ݯh?–½ò¬iWê˜?2 ÂëºOUaRgº4¯æ'‹ìáãëç"±Ñ¯’%s'pSPÍ©®Ñ̼ú/oãO„R²´5PT÷ŒŸ'³z¨yì‰ÈA5Ó"4H1”Ì¿å߯™ôQ-澔ČÛÏqºéüö€³W¿áÄ„¯ÓY v ‹ªö†eCÍ <`®°Ž;x%_CéTFóß’ÕCžw>t¼[TíŽÍÅTÔî·Ym®ÓÚwÝçXtžÇ.¯çÙâÀ Ì1HGâ}ùìœÚµ ˆ­(èa2©Ž‚hù±>@Zxo"—¦aµËfU ½¤v”ãò» ºáÝ?ã5¬bÝVóPÊ„Ç|Ø4z·†øÁ€hÈñìg 6àsŒ(HØaɬËp0Òµ/„x?6CjÙ É\OÝkúéKe@) ÑÎJú‰- n×8SßN9å€ÀìGßO-xåÿ‹¹î¨æHp2#Ð.Üz7â)±ÉJosiB[ôc¿rØ´G³Ø•-Ê=¦¶B°’ÚW-‘±:«™}ÆJ&F ÌfÏ4¼k¹)̧[§÷˜ëÜI å`¬¼Í¬‹¤ÎÉð”3{GÌ'L÷ÊB¢ë˜ª™Ý°-Oõ)X{u ¿úƪ “æm›î70R.ïÇQ"èvSÍÑ4VáwCÕéß’t}±«JÛ ÅßaË¢ Ó'¹K(}ÉŸ7üŠýXŠßtVôá­püðgGéáQØ©öÊ"ú8­Í ÃÃ*; ¨PI¾,±æüd€ˆ ‰í¹z!âiC«FÙ´¶ôÿB¦ÍXíÅŠâú bÝcOµ3¤XŽÿ¿@î­ûÖ«Ù5Ì1Õ^‘#xuÖB…!,»X±gü6)PhþN¿ I×½|üSkh²h3‹d…ù¹SÕÛÐõ ¬æHEeâ4v`„Ëø›KÛƒ+„#³Œeé›u²Ãr_(§°Á;GKÿ DÓÆñѬ1ÖºH@´8ðF­–K´ ÂÀÌí-jÚN¦¾tœ ¢êw[€Ñ䨦±–ò¡igÞ¯n¶9b1O'cDOÈ6q÷L¾xÆÅÓ=5Ô å@—>Ì'Ð(àÅ]Û`àz¿U4Á«Îxag±…Ú^=˜jÇðe¶(À($F–Ãeˆÿ·ð” ²^¯ìñÐäL®“ ¼ì}´Õ6¤ñn§LhRÛBìÇMä]ï< ô†ßëžMÁînß]±:l²¯ò…’>e[DO^G=š8Ór¢sÜ„Gz^PʿͨдcòUƒq ù¼·¿\^"D]¿Ò •θ“j2ãö׋‘£49÷i Ä[ Ó©k¦À‘¯xœöm†Ï€{朦îθ7ª4?ÜŒ9(0”gegÀ¸:>OÂ(8 NA‘vòÎ1š¸&ƒ†êª*{ª˜ñ·ƒcO š1 g2è$'­òÅÞ¢iåƒJ\ŠeEÊóçç¿ZÓÎXßrÓzÊN0Œ‘Œe,j )±Ò`Lá>5]¡ó4,£c2­¼i›êw°ðÜØ²þɶS‰1ÐB+PÀÓQ%Æs¢óëH,·FtOæA½üÂ} è”C |Í  ïÿ:"†ÇKªê£ÓnCo^t;á62¦Ó::Âÿ·„ÆI™mQ÷’ÏlJªÝ:÷Ld$¢ðwmE×'€é—áNZlóÚL ¾ù[(çn‘3`Ñf®Ÿl{Â:%R9í? k‹Ðò0‚'Öº ÊÆ¼xÞ¯×ÝBò3(N}’ºŸ9Üœ€ˆêZ]€¡5þ½&%áÿ‘eqHG\e™ÅÚøòª²ªFCxò~;±ø¦}´ÿ4tå°ø¿=8Ê {{ˆoà R"ݳ4pݘ”úóêc Â“-ôš7E .ô¬òßònTg4} KßÌ™©ÁéÎìæëØž“rvOé)¹µ~œI果Ӻ‰Òæ1Ê£¢Ï9ï'&­[щTÒGÊ‹oÞ uà­ œ+•5Gé— ÀÓaÀðFkšó{¹ýõÑ䥱j©ê1>Q‡|0ñŒòJD_JZ>Ô|{´‹<ß=ÒÙb€”ZÏ¡3ÍévpÅÀ1aE°‘X<ô˜Ãy[¦·zxh!”¦ç¨ûQ³!ã¬ÁãŽ\?ø>ûN*%rRGÜÕî=Ïôà´Líùæ¹` E²µÚÕ3¸'Ý#âkKŠIZ°æ¢"–j‚+Ž1ʼnW>¦[Ý¢z^f„aÇSÕVŽ]cɘ†Ê¼§I•!.±Üª4º"¾åžþ;§í¿ù#OØË@b˜€Éï¤Im¨#¼b äë9ô,Ò5Ü2z ª fÀZR·Z¨³€_||YÐ9Îü³ozJj”Âfù·Ý&(j{»W•‹– U(Ü”“lÖFN¬#Õi±wÅé„°²šk‡Ã®‹ÍwD{XŒß½HGËRˆ3ýàtû?:Æ dù;æºÍ2K^¾³FWý޾2’ä„äCé^}#Ñ‚NVÅBS^F»SAUÞ¯²Nº¡üÇô\<—ì4½sJ¤2§”¶cþ›0—vþG³ßªh^WëYó~·óUðöe>iÚ•PÒvxûÉ ‚­6Ú[ëÛ±˜ñG…q¼÷Ø$dW¬Bu0E+ÆôæÜ¸{rL°8÷ýfÖdàÚRnAçKàÝÇ#éXœ’XSGæÇÁFN™ºÖîK§ùb¬/‹7¤ ¯e—UâTñ¸W†¹7òfµÿÄ™-]ÎvRT×Øë´°(Ê’t¬»‡­&Õ‹½ªc/u@3+ß'èáXC€‘xÅ€Š¿ÇjȶÙ!’ÍC¦:Ü"«±—´öÿgÌÎ9‚Uø=0cîŒdvÈÒr_{hZ *"ìÄÏÀ°;dX˜D¥0ÅìÈñZ÷žÁÉjê'&Æ¡Ù÷Ä$nc½ÜF&DjF¹ Í’æÿ­&´Q€\I 7ž¢¨SÎl]ƒ Ô™t©V¡1†c2Šx=Ó¡Y%SD2# !x“åPž£pVFB± ·Ý Y)¾x&û<&‘¿±edK/k°‡µÐ¹¶šiÊ+’ÊŒÍo§Íò£h%ÝŒó¶@IÑœ¹dŒ”Ì|ÄïÄ›{'°|Ó=e>Œ¯†ú z3E/’Áû£sà Æ¦\C’^¸XfpCÜ5*š÷«BÌÀÓFˆÅëåL}c7oÃæíÑÆtø|ôi Ðrø§Q­˜^‡]ª Æ6Þ‡2aWÇooÿÿûŒ‚—òÙNÙ×ëO¡ìäžñ‰V»*º*æ“Ö‹ƒyê(ÐÁókI&‰‘›ƒN˜·hkûËùz Æ € •˜÷¾Ãs-à[ù+V^ûÏ‹nÿd ä 5ùò-)L‹0X@wQÕ}k_ɽf'C›¼%òAWpx®ÿD¼h)øÇ—þ?Qe”¸iû¶TŸãq‚Qów2‚Êyüaã$•á|Ó@µjeIUÏÃ@|Z.ÿçÒ1´xBiÄ®ž¼¾H~êæ/÷/Í#È,ïé+ ‹öývh˜êýŸ6å”@¸¡ [é¾nœ÷]Ð’nÎf¦•cÆ`#?<`ÜKBÞÎhÜ%­2é*ç_9!:ê$DùÝ»kãL…ÿ^´7×]€'­iñÏt‹Ñ9¿è!y˜Â‘ûfRæ…5­;ǰ®£uiÍ|:iäâûfD¯BX6-Ã’ó,æB!0ŠœA*Î…e8®ÙSGwžú S Í\Ö¥:6ó»/Âb+@uà•þF·Ù;2%‚îQÿ<‰È°:!‚HøÂ~fÝ\+œM¨DÆŽ&uÙF0hï¸>åé&xÑö¯¨ÁÝÒ“’´¼e®Es€fÿü[E+Ï¢÷ ÞPù =qL`”Á.RûÛ¢¥´PËCQå…;pËS9Ú,©~°¼='ÿX3‚·ýƒQ”0+ý!auXÆežEw~Ruv¸ÔTHÿ-½Î[g46Rä…€5}2:Ü!7¶ñ‰ãƒ${Z˜%õ,ÌÆà£pº2xï¸ e× Å šHQ¨¿£ OKø+4®Q ~Z*ÂH…ÿTû Ò˜5A ¾¤°Û¶(õ€ú?0ë·ŠÈ%û­ Ø¢íŸ'ítâ†Üa™hõ˜“h·\@Xí×Þ ?jXÚSÐ¥Ùû©g,È;€0I‹l„IÅÖÏl¾©ò:ñ`5 0 ÉHKÄ+Ó>Ô5»Edl‹öÔX¨¾m``•˜ºa§M1ì£u„†|$®è;JM`Ö%M…“Zœf:,'àÝiú¶ý­5ŠÁz!¢`´§+ðÂõ6³i@ÄØ*¦…i$ýú 8tEÙ$ø”Ý×¼å\æÉ÷ÒUCž!uœMä ‘qeÚT«5GßuGÈNB@+ÝôÀúU±ÈË0QWåþÏ?êãÆÒÊÎ"eäÕÁáú÷ð(Ï5„®õ¢¬«gíÈÍ,é–m]}}ò¿õ*º¤ï’oø(PG‰gáå¾A"~ ¾i“(2ýÖÏéÝ%l¢|Ò}vª–¥ r(RuÎêÝ6<‚þ€ZÐÞ†¼ÖÏ܃ tiæÂÐQ˜­0DÿgMõaä‚¥ëæú U†üúƾhU :-úvôiA^€ÔKS÷žøa‚Íjb”faüfö×”nÜc·b^CœÇ., Â~9LcÑ$ïØqƒ3)»6–ùÜf;J2'SÅÔÜÆÜh K/E*hvPC ‰•³Ôø PíF-GÒp—OÕvÔá•¥(šó6ö±lö‰Ý…NÍ]I-=äZ®V4 PÝÕZÞ!¥óì¨ß×0ø\Ÿ }µòC—:$.k ˆK•G-þY¸ÆÈ¤zÒWíµµâ ë‹8,üå+æVhT2fø®?oÖñ Að±´‡T÷7ÿS69:‰ÑY±Âd ŸopåGÅ€_@KÈä1{eZÀ9tŽDJ5AȯÙ6¢h¾ðÍŠ•ñtÄ f'Æ,cÂT‘Nä§p„‰PÔ'mO%9ŒK‚#!çé°Á„ýµ©ÿKÕÕ“MMÝ&"F|ºïÈ€&Qw&™¬&G¾¨Z1²¿ÿâm˜éb€CŒáPšÚ‚å¬x6­> ‚”,ö8³pvDÏ„'êA¤u]¡³R³GtXÎÄ:|îPín…žÔ&flÂ~És÷‘H¾(PævZÔùA 8qf·ƒ´J‰Ùw~±ö$Jµüƒä**Ô–Û¸t%`¿8èÔËk¯ú^Gf‡P`·k9%gÅ2ÛrmJ Ñ¤nø³µ?°Yd.ˆ¾ºµßaañ$¶7ú¸Ž'öìs‡‘þ0cÕd¥eýü¹šˆíyÎï:¯Ðys=?|:ñ½P5’‡-Êæ%ô È BÖ8'Nw×·ÊÙµ!§Õ}·ìZ™âx{dr:wø×ÏwäAßÞ-ã¿éâVwÊS²Gèh¸¤wí½©™J‚CcwØîé/vÍ„´²æ0ëçù\EÐ|µ¡ö w˜ØÊ×·¡ä bm¿~Lÿú³'„³.»,µ'é>ñ¶õâN¸ 3Vc+=>ÓAb=nbΖö*%b¼Ü‚è3þ):Üyq߈#}ÈñJÿaÖÞB—Ž^«=We»s;¢Hü6ňqN+s9ðºkþæ }j6™™mIÊÎúÛ =3!«¨63Cà/qxÖ†Î4ø}5ø)Íô›´ÿ™yxüM”Aw¾ àÉÕû({Ähãs¡ÞÄ.7Ƹ¥›8ÊFÏìÄÍÞ¡^ÃwüÞ y|ßëݼêI ‚ðBu›wêq™‡ ñ)ÿÕS^]w¶übõ¾ûæB¾= G³â¨TrŸQwÛ1`®‹Àª©—Œ¢HŠeØ<®oº–«= ’?®z0ês 7-bkê u:v×Ñ%Ü[²àC¿³@© 15«Kß¾Ò5Äÿíù¨UzV ±ñös`8woX€swfÐÔ2=#ÉëùH~1#©pã¸}.Ôq¸¿ÖX>Ö[ 1jÅ»1%üÊ—¶Ä^–öŽ”¸é Å}H"Þ‚¾B—Žö.i¾ñ1˜M ïÿ=«˜f¢ž'—ïX¡±ãÏ-”=¹Ež¼ú²i¸[VÌåYfÝ>Ãði¿·¨ûhâ}(‘U–šÿ IÅÞifdzh6A57…ŠƒñMɈ]‰]QÇ^0–„󱛋ªR"?$Ô(yäòo+"ÏÏ;ËpYÏjs\_r΋XãCkY ms$¸”¢KüoÎÚxI<'›éÀbɳìúJdC?Í@ïÚñxbÔ࢒Q¦s‰ƒŸ/¢ˆžž÷½{dÆ ãÎObÏÕ«9GJ[†Ó‹ÉÚ}M¾ýïeLFÇ_ha(¿Ðɱ¥åÒ ô#\Ñâ˜Y,g-àO"´®okÓÖÑë<жxt*1Nô¿ÌsÿçÈÚFAxÉS³X9F @ÉÑgq&£]¶r&¬I)VzeF§iTš-ãÿ*èü1úµVFÞqæ¼l*Õqë¢o‚Ú_BÀù1 Á…ërÑðÂ7!©1øÒ«FƒÖ-wv7&‡¤qYÇU ‚\hb yÖ}Oà"õ–"è/eøF üÛÕÀíK U½ÖëvªÍJäµá|לA“J~#ëáeÚWßo¯¶ÈâÙºÔêÏÜ8.ßs@(CcÊÜtë¹ôð‚ïŸZx% Ñ;jŠåªr, ï -Žãn¤¡kÖPàòy©ö&ÊôÍáw¬[…)ÀrØ^µi”çDnáJZ%µÀÕî ãß½w”ª½íá:ÅÌ¥×;Æ?l[=“N~ìpNÕs\XbÅû„¤Tñ¹ªµ×Ê×Aûa¶˜L_]Ww 9. «ìê»þ [»àÎûjbÆ€¹ /íbJ8PåÛÞŒ!Ü…{i‚üû¹rv hE°túÿ¨šaz“ËBt”‰ ÒËÆà9Øu|Òz;‘Ø ýw3nñKê `và& 8cïàô\ß9¦áq*\›Nj)'™- …ÛôÌëª>4âaF/M¾ú28ìÞøÚó>`±¢ Ǽ«†}–¨×¡­CÏ.Ÿ‰GˆýןGw{äJcÿ†$¾ôÁÎ_ÿSÝ3á9—W¦-Ô|Èi\C*M¡lá¶ ›B+çR÷ì<¢ßF¼)/ŠR™èö¹gx•”D€°nÐ'ƒâ3¦‘‚ÔQà wŠ ÜÏ»ú%Œ#°:Ó¿²ö„7f?7ۅɹóÛå´¯^Ph¡QÕYÁ‰v? Sò…Zµ@ sü‚ó)£Ẕf®ÝHŠÑ¥>ß@K üå-ÓÚè-rZ’²½œ‡gÍnøuÚÕ‚Žsì{/Ú_íadzÉmvxõRœ6 ‘‚kÁµ6©N`ôVb ¤.ûŽbš}³J¹*1XkϘ.32Q1ÆWyŽ’)”š ÔÇ¢ýÕ­i€»g+¬å“ËÇpUïÚm>,pRÅÉ?gëNzÒð¢Šñ¾¦ì' ~êy²¸*Õ•Ñ÷´ß(+ü¯ t€iDÆXÁ} öVI)qE6îCj#Gýؘú¡/@Õ•n7m<¸µÂp–ôbÀj µxË{”,\åÖgÌ)ÓÅzŽ]”çÔ,G‰TzasFƒ¸BåKäðÞÚQ¶Ráõ ±ÿ®Ï6‘B" ©ÏIc”•f‡õò= z˜*ËúqíoHh¯=k‹¶ ”Ÿö:êÂPIãòÏ; ftÝùê)¶‡Š|fAóµ” 4Òœ¹ëÈ€)|¾,pátÈ8C†^ÇûMµô"d^²£Œ2«1Ôk[5Â`<2…¾|†éË¥L£˜»lߥÀÇ5 1õl´K)fóï˜n»© RN†BƒœÄx¸+=9ß0³ ©ÝC(mùÃŒy°æ ;¼›’¿‹SGÈ»ƒŽ²·ù×ä!Vß„w³g°g!|#ÃëlãWë îýKæ -,«ñÝlnOæù`ÑÑ!h/y3ßYºÿîYBhañ£Uº %0ÈÐ¥øfß 6ˆ1Kf‚ÀÙ^ú}‘Êt~ÄŒvxNÊx…1µ)¼Qó•»—g–ˆø ½öÏ[7K2h˜,á˯JÊGâ½JLlÏ™®é–vtÆ—#؉‹’д@™ÍY3X¯›Ò/£¢zEßÙÚLàˆ(,e€”0,Ð3ŠÎ £–ì»ûVÐ7‹%w:¿ºFkUƒE*ÒÓ’÷Çì_®P}.l¦·{Ó…·¾påJ¶j*l#n¨OnŽ³Ç +÷>}unÎýSø‹!Íõ“¤žTð‹”­VÐ6þÈë„Ã"• û›IúÍ[zøoˆ´¼¹Àíì«ÏO6oÙ:*j­; ñìÄ$–ª¿8>QJJ©„ˆB"|8öC Iܳ¾éY.—Üɨ«KºP gPæÿÍ3שæ2@ ŠD HàmM½0âhN“§7±Gjce–Òü±¬tg/Ji¥{øGs/ ±×–xêEÚ}q'ó€\$1qßqWð‡Ô½É¥˜õ–¨fhÉkY2õ`i2ŒlF Òœˆå`¯ˆtþTZiÐèˆXÉM;t ¨„ :wé:C‰‡*ô™^ÀÈÁ×ÊéÒ¡ÐÆ-Ïà:àb‹;–n«ÑÖ7¬oètGòš³ý1üüú?s³ÞvÕš¼­!³ÍUÒ1€ç´¸)8_c!Œ—UóTÈï/Ùu¤rˆÁ5ö}°9N"¯¯–ƒº^Q÷ÌB•µ¿ÁÞ¢rVk(§f¢n¶—Úc³P"á’z²b™"â2n†Žkļ¡ç´&q~žä˸CïÚó®ý¼Ha].š‰Ý–šû&;=ùÂ!ˆuB4·­EtÇYI-øÇ v—Gã䋆GŽ‹e øÈ~ ‰w´¤Œ±Èr쟳l®ðWø#áÓˆ[C~·N (­Œ¿3¨àÒþOs'€Þ1sYv”®‹É5¹;O-FL醿Ü;†F=&3VQ…E' à,=‡U¬:(  ™Ô@«¯çê„:¯c :Ùxî2…¡¹ÉÅ¢–QðO0ø—•ûkÍDßæIÖœ|æŠò²zW’Ç_œÀh29~‹|$JÂÛB“f€\#_™Ö*‚¾ä_JmØrhw€åZî›á¯qpP°-½Øüè6ªæ5aéø4ØÐ4d££ÍÀÈ>Á&3f`QG.DøLÃÜrÙÊw–¾vØ dú’EfGˆu1E@rG²„hS 'šïÎÏÏ„gòͱÊlˆ Q‘Ë[èÒ±“j3lµp\€öºªî^.YšÄ}ð º2¦ì²7*jà¥r=7#2D õˆïçM>‚ή&`"ëñ|PZ…,<í²4“˜=žðët¥S/ãôž¨$ ùnùv3S ¨4Ñš›+ÚsÀ멇[„Ãu¹¡Ý”¤Á7´@‚‹ÍœýŽ`~HÅö¼áb/Íq'R±Cg¶2¼?°%#ê Åö‘Î&=ϸpËئ$ŸLú–0ª?vo¶´Ý¸Œg¾îˆ³Ô‚Œ³KaÎ÷Êlð=²6¤Sâ¢uð£ô ¶M*Ü^á ò‰9zŠ«Ð1·ýqÈ#̃¸÷Ê×(wë¹ü'õ·Ê€eè¯Ìf7qÒ ÙæÁ“×=N:œƒ%ÜAÅ,FD£ÂŠ ñšžé euSŠ%Ì©°¾¤Úuãͽ^£’¢Y¨ì<û;ê{„*š„Á¬‹ˆ–Û³o®ðXh-Nšæ¢h5£ÒÿV\oàðÝ‚}è¼ûïÞH §µ}‘7?ÚÝÜýõlˆÌ0 RUÆŸÛ_@ÆŠäkåâðÕP.Ý}ÄÒ£»6drH„—4V%ÔhwØÝž À èÝÀ½È¡¨A_Gi @ÌwH0?.á=ª|ø}«77«áº†¨V,óš&K;¹ÐAâ·Ö=—º$\ÂyŸÑhºrÅ^ ² (Nż|Àó iþ÷I1è ?‹qH:B_T™mX 5JYuš{Q$ ïÀ‰"u@ãÂ_мŽ`æ V ;·ƒØINŒ9·IM¸,›ô$vf³]ñ20¾€ˆo5h¤b›.Þ‰0ü²¶'ûÆ)ìFÏ/ÍéUæYn$Tøsd‚Ðyg3³íx3÷Ap„°Öñ²lü¿ÎãzÙ¤êŠQZø“3óô oÉ•ïYª»ÕÇ"ј½Š€½T… R•¯qÄÉ’¿Ø)v\Ò)YëþjÝ1n0ÔCbß'L§%áé^æQ^ð2¬BM÷ݵG5¸‘ÅŸ÷¸ŽD‚Êv+óEß%¯ãžûbÎÙái‹ ¥[€÷ýo»ptÕ…oƒB'T †­Û¦ûHù7ø9ô¼[fþ¢¥ÈÍá6Bˆ·w ³8Œ\Á©*’Å-?¬Š¥[™°Ðùº!á…5EIRp™»BGƒ¯-)Ù#³ÖB¨•õaž•‰â”±I7X„®\ü úå2ßÅãÔIײÑÜvFd§*ܾ„‘¥ y}ì>«³Xœ`V"Nl†2n –85þ%c1•Ñ[¾N4Ô}¨_/µ3˜ˆf``6K6ú59J/rm`‚l!g óFµËB »)>ã‡&û ^Ò©ed“õs ǘܭ<<[†Iò½œ^¸CrÇ. D»ë&ˆuнH§}vþø{鉕}˜‡…ö)''@bç‘86h3X¥Lë‡V¬¥¹2¢dƒÚ»Ê*\ƒˆ[àå$âqµ9´É°¢ìÙž¡Ì›|Šö'8ˆo±aOãTÀv_¦6î2õÞ©pZê0  ±#ÝV„+W¼JüðZ:s ›9\¦è*¯Ô‰¦¢ÇÜÁÖFˆ2ÓvdÇ’úÙÍ!ç[UT(e‚·¯ãàWÖc!w‰À`нAÕ>I Efi_œd¤Ÿ Mcƒo:baÍŸ_9)ÔXC†Î7*¼¡„êúþ…<Ï0Aó %©y|*V‰ÙGÄÆ— |GLøqkŽ˜’äœɸxM¶ÞT rhb“e†«æŒŠ‰-æ%ÄçæÞ#Í´‡š=Ϭp:𭝍=¿„κíŠË¼½© ÆœòF€¢÷Û–öež¾ô¤ß-ŠõÒàO—Im”ŸBGš1·,Žkà¾C8hšå†ÕŸ}sÖÝÖàÆºn[¯·[ËzʃDç_¶™æ†¥ÑHèqaiÝý€¡Ã‡LWÀ”'‹v4õƥÁMcÇÆ±éÈÎÒìî’R3 FE6ºÜØ –´’íFT$`®AëË–4ëîÓ ì"Û,pÙ›àlv 3ÁWWŒL ãxÊ8u±Ó‚hËyúºÙröB‚ÎúL»-DL]ËÔòJµ+èÑ à„i=à?Xþ‹w¡ÜBйZJ{Ýs’Ü>~+/ú ÂL[Éÿ²ÿ  ä-5"¦Ü»ñÊ‹Jð;²–0\®=zdk¸RVtÃŽÎ.Õª´®“{¶ÛIQ{˜•Æ"*ÆŸJ ç;¢ÓzíëpŸ‹ê‰†èÍ/9ª›§…ª4:t\se;ÞJSÖ“æ!4UÔMq4ðyàµt騹µù‰¡9–¬CïrŒ-­œ›ÓdѳXÃä—î‘D›¼ë„¹yN‰Á×Z Å7¦5…ž¡ðÒ²25£ÜÏÕ~ëûÁVà4¿šüƒFïguVlÝäî*³?»ZòX$RO¾Eb-" Iñtð“­h#¢F ”1¿ˆ­ÞâZ-3Ww2|r¡ Ì7ç€1¿­ÌõîÇÐÛ’ê ãFíôPr€|{ì¨·ÅæûþhÛ®|3Ôsz»XwRQ`|ôöÌà7¦F7Xˆ Š•ˆ1nÓa6ÚcVêó9€b ª(±:¯œúª±ñR‡µªÞ(-Ñ—ÇÍ_Va·2 oô•^ù´þ7Pú®ÉðÇ]0 ˜šÃxí}Ûó½“`#«\è`Æ£ÈtLòö(ÿ³ÖL #Nˆömº¾š ïš)‡ú´­ÒÎäÐWh4WQ&K{Ý$„ÜØuÕˆ–ڤӵϗëu4²Tw9üô†W~ÂÕ*̓’h øøÛwûUuŠœ\Géåâ\apÇsØF/vè×9#æ{{$-èSö\.-á’ Û†kÉÇ¥(wÄ[ç<¶5i*DåÀ°iNåº!l¾‹ÃðÁF‡ê1f„ذt­–/3Mêó³ç%Áõ@kâ&†¡€#w{YìËõnå>àó/‰Û«Ûf8á÷­{‰m3oŒ}ýEÞg·)A R¾Âï®^´0`œßþµrO ñRf`ñ+ãÜ)ƶLÎ<ûߪgÿDÙ|€¦veO¦a¼ÇÿÑg»…¡©HŠüt®ýÕÉó#kQûR¶V(ê}ц'Øìe]‹ç¤Ë,Í<¥ÔpfKßs%Áv^êú2¢C-ðà‚•ö£( h¥gm^(Grð¨M)}H^rx—Ô:Ú¬©ãtô™d&¢ÑN¼²H³šoÂÈ èŠMŒâ»±×È4RH‹úwµsWYé£ä6ðÀ’è”Ytr‚,jÛ^õüº}áíç".2ÀÒVOœõË"!I§Ä¨ G;*éÐ >üò·×ïQã«@¦éuR-¸0UaA’¼xf®+ÁãLw¤§9ÁÇ1fípYÇŽäv’KžêjiáD U38ÿër…Ù‡§Úèrª/U¬†¹9Æ÷ÁÞÝÙ÷¯©ËÏ#E&d)èÂiÃ!wí†Þa¤@~÷Çûûˆ9™-Ž& áõš@ãX3B?tG¹´‘9þ¿¿€èŽ/$°G”vê=¤Ÿ‰ÎjájX°é‰£·4'ÈÞÝäM† ±ä¥Òíi!η(á=óÉÔТw\OëS [lx•䑺äö©*|ÆòÑ£]J[á„B` ?«Ÿ¯µÖI§Üií÷Þ~dÁ¶_>z² âe‚²’Ž+¬ˆoPHp¯#žŒÒm@d÷Kë·c^C€ú]eGõޱ[÷€¶”`}è³û¯$áØ×@î b™8ÀbLàÜÔœ»—cŒ‰¡ªFÑõÍŒš½Ë·²^j·ù{—.XäwÉ l0þz?+±$<ø:A_î0Kå7¤°´~W™Fã‹M29v§£¶‘fû:ŸÌâË8Ð`ø*=„Mçńӽ^r‰ u—F4 )hbb3¦I¥º’ïT#š‡WÊÜ P£I?+OœiƒÔPZ#tÑ¢K¼×K,DØ%]i®"ìèVC‹ÅHÀë¯ß$j05EÉkÕ¢ÝOÝÍ£Yæ$¶>ò ÕUKÄZ6ü”ò'éÍ‘áÎÿ®"¡#XÅ8†ŸÑF;$¥Á£5»àVÃvKÚ ÎÍ¥ÈÞV¢·HûÉ2âÕÇ¡ˆÉ5þÛS¼:¦ë“Ùò±o·;é›5î¶ðN/Õl¹s„DÌio:ªž'qÐ <±ò@0.ÎñUíÞ(ý¥8†=ÑQ9#'Ì$qÔÕvÏBkG ‘ݘÀ¢ÿ²¡Ó¨ªî–åH'©å¼Å©J:ìרNžà¤£9ýJW n; ƒöÂßò]±|l>îâã ¢(êƒÃ0ôý&R(v-væ‹)bù ‚2Ôù–æ¢<§ –£(~œ‘(Ï]GØÜMÖWŒœÑI?¨K+w«½Õºpˆ#Q=¡5§-x„‰¿#hxNÀl–oÓº5¬&×tgS×'ð^m‡§Ê3ú݉…·áÓ„wÑ&&ä55eÛuØ»C^F«±^`ô[É2Góْ݇­}Ê̓Ãáo€f…Æ"YîÎéóœ½F‚ü”·Ç†wE’ éŸé‰òíu–Ÿ[ôJ‚.æ4Ž­àœÜ#Èhú¢ç)‡œÉ¸ý§ ÓqõÕ ›‹S»ÊH¿Éû’it b}þš%RÅò×7b¾ƒ5ꨓÎ~]Ì¡_•9ÔT =:VwGÁÂ-yÊ•·Ëº™¿š0‰ÂQœãáý­8}vú8¯©ê¤i¹Ä˜{ÌA@º"ņóÏ:þYÈ«üº„$“‚'fy©¤{0Ò“®·]fzTòÛ…Ræ×±*¡í§ì«õZQÃhñȲCûr9¾h>›jÒ;1Ø„ º¨\†¸›”JNâp¼ÈúXPš£”ˆiA š=Ԋؾòï¤ù¨À(R”(ŒŒãž¤\Ceék%wõ:¬bƒ½ÁÄ<ı}y*< Ê’1{AjaÓ³N0ø01·p y;R߉ãcçß[&:^g6Ù„íó °­ükh--±úMÄI4ÏRÑ86%ù'L•Íú÷‚ïÓuËä|b°Çñ>©½–Þé¬IjíÇ„Äø1LiK®Ûæx]îÁÀ O#젋ˆÿágtØž ’³"¢q‹qifšì“†nRªÁ=<`%Ö»|+*ú Ámìø‘@¬Ëm͵HÄ#Ð÷-ÅdÍfæ{kV(§¥ì‡´îßqë‰Ëð ]2`Èãš-ÀúØÆú¨:*ÓÌ™ãŠèBOÒåå.µ‹8<ÈÞ7u‘a‡äcC¦{앬”[–°"aÿ–ú™¬HçÚv¿ç—àÔ .¸ÿdÈ£“Ùï>fžj¦~áW¦®S˜º¹lΑG‘§DÞDVmoøa~tÉÁ†ÓQ^Ó>Y{¸8±õ)‚ÙsúÞLÃBl1‚¦äC§„¦vŽ2Ñåpª¶&€Œ«WõvHGW:›¾Èä4‹ÎÌj‚óP«y¬Þ‰A²FRêiybKþCHœž¶Óÿz©S;~¬NâÿµÏŸÞ¨L $"œf¯0'VSžÌÅu˜J‡Qüx|>Ë)08U ’'‡ “ìëaì «4y‚—õeKª–6Šû˜o4&V1Ö.Q?~GcOKB\Ü%þÇ7\-Ô©D°ˆUÔ«ÇN[ 3A§ Ú;äÃå‚®¥äZ4Ž;zÑzjÇ~²Š.íÛ1ú‡‹…éû©©Iª;.báƒùÂÙ ¢ª\…l„‘™ó‘ÉÅ™cÇ© 54K›­º4Áf€bÛöPm~×À¦ÊÜXo©'“kðó‡ÅÍœ ”!èyñR€äJ®ø'¤–:dÈâÑkÁ¢ålxÔÝw!žÆ¦˜dÎÝdµ2µ‹rÑ#cœ½„2fsdŒÙVº>ía3qÕ‰DŸ±´}¯Éõã>³+VDõARMÑúµ5VÖM²šJ:¸à×CMÈ?S¸«)ÅfÑ–YÜEÙŒ’¢ß YD2Ó‚-À•C©ÂVbú-(Í|‚dzgYìÂé>Aßÿ¬ ݪÍ^4±\ÃqTmx=¿Œ—fû·´š²‡«£Ò\dÌBù´œ©ª_]0\fœ«ü¦ü kbýÉ»¹¤påX¸™ôàX\ÞWh™SãZHŸXŽa™Õ„gÑ>Î øÌ&á]øÜWëZ1øf¿¨`¾§œI(Wgk"& ‰ŠÖ-ÑÇ,Örø—»Æá߃Uo§Æi&5ú\‡©~à=vØ ESŒÓú®^#ßÖrpäŒ]˜×™ÞwÜRŒ4Û“áÈ…ž¾^(bV–Ñ®L*â>^t²“z8Y­i!ÕCÓX¼Çž1¤¤hh7c´÷d€å&:ït¾€„)‹Ür Š@üÁ Ë$7–HÜíÕhyÀÉhÐôSPÍÀÃw÷3Åäk1˜ñ…Ì4ô#oÆÈ^";Døñ üÝýCªÅœ•Xvt'˪›0—Nž‹|j؆ä„K Qti‘òKôi>žýôçÚÈ9£©”{EVÇö§5ÁEÖÓÑ'R 3“—;˜üoð^®ë55ȘÛm˜}=“ øÈ}Èø†µØãYÙ­ßÚsÿ¶¹“俦ðÒÜ(¿¼YY£?\£4—K9‰Ñ)Îá«ÆÊJ¢?îB¯m‰ÌÕü+.ý73§Á#[u˜É‚€_s‰Í±–HŽ©Ã3Ù—d%Kâ¶•ø ÒŽZ¡æj&z»îܨð`´@æþ¾ …žŒrBª€½gHøöbRiFÖ"49åc’{ÁËó$mFSËÎ’M|ÒM”‚8uÅî°z½ÞµÂW ˆÃCï²p€î–âýç<$5îtÔ‰ãy˜Äɜ • éc86&füpmmjã•çjVU`ÿ0õ×iü¶éKõbÂEO¥aå Ã\‚^=Wä&ÿ¸nx½CB̰òÅcŒmJ³4äÔš>uÇîéEû<ä®’ì —8Kr†½‹Mà¼_ž«(‡—ô¬öŒÛª8gQ»>+ÝèÈ3r ƒúûuJÁ~YyõKCÝ%m+’Ù³Ñ|Í‹nÝ ^Ê•ÐézÑ9â.Ðán/ H"Õ}n•éR¹sŸ[b=í½ãÕ‹m‚Mû¥,:ïbÍ÷­WN5ú+˜°F€ŒHó¶ÌwÿèÉÝ©|ò6®FcÇ3ëvÍÛsµ8"OÃZ2ñ·ËæŸ6”UÞ¤©ôKªÅªË²}g½©ž]…{—ÂÄ‚0E#G³,‡hœÙÖJ·Sd "Ò”°Ðô@ÅÃû-—6A£—<ŒŸVÿ°®ä&Dã÷׬N{ˆïˈRœ‹¹î\ ³¾9²c l,n«ô¹†/¢‰ÇÙË?Áhnj U·câŸ7}Þ}Ûö-ÒÏå%j j‰Í¦¤¢ Áø•FrCNÔNJê•Ù²M¬Ý3\ÄxúŸ‚s«ü³íZi×KÍ?`%„W$=ú©¿°)§4~&@zå úØ|-/zÏé½cÖ¼‚ÜÑ3|B$vÔ?5ÀŽË\Qý,,F–éît€q6"¹Fü­5Û4—ÊìbT@7-¬‡ ^™ÿœ6_t ç%vªO€K±² ®a­ °@ê&’•½§ûl°íüÚåW¯Ò¬ÀþRfm‡â‚9·(ò“ˆ¬›RBÜǧüèg|¸a­‹-…³þíÞn½Ý×¥‡ !c0Âצz´ wŸ_óìòÉûê¶ŠÛt†x÷›ª¶hDÑ@5ž´u­Üt;ÚƒÀº¨€ä!€t4çx“EÛ.èŠF㢿es§Œ9 w©j«MóŒùˆ8(;˜ðz–]aÊóåH½©ÑÇ„–do÷¡-åÞÔy€"‡¬˜O!jèUg9DCMÔ|æaPXŒQ…“@Xmr¾d|ª3sË(µô€‚1‰Ìo}±Á4€=úKnËP˜•ltSSW­âºµ€·±q£]å†ñ óòºa·¨»Á:”…W¨oWÖ^5ähyÎNû}Û¶Ð™š³«©sÒ¿! ß̵ì~†Îø{ŽÜù-|XÔk ~G,M¨hÙ<áyÜÕŒjØŸOÙá «s°Ø)d3½ÿ(ôþ1ñ± Ö7@#½}=¦}“=*[êéÁÅ/„^.ŧ¶¹mÄ‹ ]}½"p´Ì»ž,}Tç)\C ÊÛº E×3,Æüò‘¹@ÿJ³*wXTÙÜ­K‘,žV—ðýp-·YÒE÷$ Cåø¦6|ð$ÛžLË{¢Ûn IãîxÇ%VJÍéÍÁéŠ"2†‚MxÚ{maà½väÜn/ û#]‘¯òÑ=Üó=.ÍX‹ £”p¨.Ž Ûw Fs5êrÕ .°xâ%Ø¡Ì2Ýp‹',o'GÌðmd-S×Ò~0ÀˆyÂuÖo9ÂÛf;±qI¡ÄŽçŒàÞ/IÑ›ÿ)³?4£»œ¢ )yUÈ…øš«÷úRcÚÔl%§A”ÈI,;°Ñ6ù/…D®œÕÛ&Áœ„ýWûÔ¬vŠì-™îFËÀxo¨—5c»—pd~ðƒÅ°ñìëÿ°$Ôºÿï"Å^ÈŒ¸VïB1Ç[ÚS”Íjó¡q¼¡ó;Ú‡׿/J.jõHU÷Ž o%I3KôrÎa (\¯ ýÛfô’×1|?;Â1G@:ŠþÃ¥sÆÓëøì¤uZiÎAÁ%l@ ”«òYd‹·#\äCÌçò‚-CdØðÁ³r»€IÄPágâ$$ŽUÚÆPú–w†¥%'+ÑWp>ÀåKÍ“Ö8ºÛŸbðÎ\¥€]*ùŽ<ñm×Û¼¿ Gm6ÑM#–n%|8ªÕRñyɯ¢ÿ=A+–Œž˜>Wá”Gàˆ­ !RðÂs4²/›zÕ æ NnO \+œÎ‡0IR~U¶¿UøÍAöÿ‰OPü.C8KL‡9Y˜KœÁùßÉ]‹¾µ(DÔK=µÎׯN[_XïˆQ™}f9nŽÝ2~îˆu8HŠ$Pø´Ø\­H¾û9÷½%õ§DþíÖ`?“ÔËS>p «é(¢F¢l˜AòÇ"®@Mš‹DHšõòCS/yæ?—xB½TŽ«ÅT\…"#þcrYšœÊ(ÃWD&ñÑàþÌ•qkð­òûzè*íÐtW1ÃôlâGrŸÑ2zÓÍ$i#â1ËNSy™—C~xµ±¬ÿ¡_„óõƒ£±ÒÀäÁ¼WhOC¦N¡x,ù°.¼èklvJ‹•™©gŠAÖˆ—ɵлºŸü¸ë,´”N[žÁIý0Clí>(ذ€w%ÞÇ“ÙxÇ" qüfS ²¥IË4%.¸(=ÅšWà-È9}Þ 5·>MÜú·Æ| r„I8 ?§S·öVáEæ±ãrZqÑ›º#„?† éåìòÇÛg±šõüY`]ô„iб\ Ÿ³ŠsN¾ «N'Qaw?D·éEB!óS*p™Â6fÕo·ˆˆÝ¸ŽÇöŒ^¨mÚ¤cvGÛ1 z¾P+£onKiéE8ßÐ3pAŠäÿåXãJ–B…}ïöYuÖXKùþogtñ)E`Z ñ÷¯@Þ *›#'šˆMD~…h¸ŽÒ&þ¼>+éƒQ³3çÖd6ê¦wG!…ÁCºÊ60´åERŒ§}^¿ê”}×»iä±qƒÏSN?ôÙæ5딘å©6Ùý @.Ù4ÿÿ[þêÌ{YŽ#Ÿ}ÛlbAÞˆ·×« ½ÎÙ€±¼ª?°=ö‚y'eyæä{L ¸ôñ© ¾äÀ¤†Ò“wðÏ (‡B‰§­Õxš¤ÛCêa…px ý-gBY¢c£á?xnE›@ê)eÂŽv¶ ïhd¼S»KÝp¦Àß8—-ö0$‚(Άmåî² , Ù·ýO«oX% ‚¼¼dq=¸ãÁ$ÃÀ5ºp;ŸâpæB‰ô³,l`ÛÍ‘‰{J5M‘ùW¦ŒÂÁ>äáÏ%[dð± Kù)V\ÀÖ©TßDXÿû‘ƒ5¬ ¤[)’(üì»,ãæ"v³ÙàîF¬² Ä€en8׀ĂòøßÛ->³Âÿi^vU$.Eu`j—Çôª=oøTc{5 s’öLEÌ8aï~v¿ NÆŽ'[ÉÍf éï]æo}V½~*} áúAENÐæ~ÆåySÛZÇšmxþ"]qú`mÅ4ßdF”x罿‡¿]vE‹¯-—Å f|$Ÿd5 ,Ðh>ÃÌÖ1ŸìäWT묞q2rL$PUÇnŽ6t“$nªÇ¨m1J1 »Ë\ õ–µg24[-Ä"àd̓ڇ¥M†ýXÒf^¹‚77¿õ€äº Ó@¨õ}£ñÀQ·PF×!æŠñyêj ¹Ã¼4!›ÐRU“…ð%Ešn»Ï€¡AÖñ~8K`xWòIfL:¢[çž ½bY+ì"Ž/â.1ï:ç…ê¯Q¿ #a|•¨ OJ}PÂMT–J¸ íîÁO‚N‘RµBHÐ1¡˜Nõ€çZ9O$_­–õÉQŠEˆyÅ^‘ BZÜ(wìB eÌÿufœeyµù®Áùa! t’Ö± 0¨¬[±Ô©ë…âF%Ë\gX¡b3i­„¹£;§4r[Ç}~&cç‘À¦F#šòtw­ÜšHÇwÜŽ M%Œ>ËZNUšHñÁ ŨЬ ™ÊÍâÑͪ(XÆkÞœÖ;èèz¦ý 6Têã,pÓ n¬Áñw¥¹´™ðÛ´ÑŠÌØ„P:JîÉæ8Àçž%y}GdUV¬üè¬æZét 64Rq¾œœ)#+RUþMH.óho…›*xwÝÅ#jc1b'5ÖXr­_9c0ô Ò~»Ö0mb\³#‚¤¸F•‘ØnD˦þæ zÒ"˜Km­Í6fh*[']ê ˜A¸.pqœnÊ^®Sx»ðG ÆÚ£{°£—©…tê“%>i|ýU-c‚Õ~3ö.‹i–%cÐÛ hŸCSËï¤è¬NÒ?PºÉ—ƒ¼þ}™ %f6"WzuˆÎ"J£\*UH6-YiÚ—ðéd§c _ài;ê°Úƒr_~ªgqwdªH…•-U ])%ƒ ¯ÄñMâê­ Zf0y!ìÚ‚Ä8©á˜*3×f»ÎÉ­ª.to4L]Mƒ]ö5 òÛîÅ+$ç…‘¡D$©û+d|õBEYzÏ@¦¢•b’Ä"ÐÀÖ•G;þ4Mš&À°¿ëtçÔ*;±û¦x½Ÿn¶e!)~¸Ò± âàŠÉçæK? ÿôˆ×ðTDjè‚”¢’ø tµtr+™mU'ë@o¯àäa¤«rlè+ç ¹¾úb>zb¤‹÷¶—Ïb49‘Åå˜è¤u[à ÷_ŸgV†TßøH»ªÊ¶Ña財I®ŸwȰÈ€_N½êfÒäãݧòݪf Mló*oárp¢f¤7?®N8PÃvöÄpéyàÃTøJª¤ÅlÉqO—ÿœ.mñ6?,…B—ò ‘ “µ,§b^þ€ïÛñMZw‡ÇH,yp9r½y¶/ûµrWM‘¦° ›G’™(ÓvuZÛÄ{&D¥0W{ÍPM™\“Å]+èY™Ý5×Lh•Á¦nQäýËGÖbéÏ '52/ ŸµiœÅ°Ürmû0£u>ŒÜP¨¯á$•ÿ+Ör°Ìú††MµCôØåÚ=›ý^Zû½DBŒ‡d;F]ºú*¬÷364<×–2§ŽätÔ®>¨’´¤¯;Ä®Îd¦£tlPÚÚx@OEÑ‹µ vE‡Ã92UÜ_Q£†÷aÉ‚&ã´¬ !|<Ä­8çaŽåx±¨Ø` 0I(å Ë Ym_ —šynZ”wÍãn»'¥[³®ò Û™*GæÜðc¿1½¡këLC …1bšÜ  Ô³E¾eŸO$/~€ÿäö¢´:gžG@ Ÿ³=—œŽÍA^2på Ò¿ó9@†y¥-RcóJV½{ÒÉ–ñÀЀ/»Ý é¤aÁ„ÛóA°´ Ãò“V6P ?ô¯¹yé%í•ðˆ‚­íÝ«£\ŽÒ@¦ÿûrüˆÌ÷P릸·;½µµÑI„ÀT©”¹«ji£a'S1”«ê/êµL ÍŒŠ*[[5`v¢ *‡´èy”ÔL¤v²£U—n’×× èçÓFofÙ(ÞíZ‚6™çYï¢71ë>ë÷7¥ Î-r$G³ò%£ Æ×.mÀ=ŠÁª÷KMàSó_rƒøZÈåž!y—I•½O°äaVe¨õÉ xx_¼¬î?¡ãîß/ŒÍâ= ˈÉþ•0ò=.nk;{{Ë•ª,ƒsó×d_|‹×gz¶úzô„×ùp‹‘´u6å ×)ûÍ÷Xþn^˜né­vQørM]ˆ3Pj†T×x²L>ÏmÏ©¿fòœÎB¡j‡^ÿ´«B­“æïÖág.õj¸ñÀ¹äD qAù¦Q‰¬¹í½øÅ®óé{FSÑÄ©Œ—¬4ù¬ nÑË(©®0Ÿßðv­Cö\_ëaÕh§'Þ&BÀgÛV:ZÐf(bÓæc×}¡ðºÆp`­p ´åäQÅu(xÒ$Ä©¬p1LOÄ#hÌÄ:•@m|‘èUu"W{Ö»¯¶F¶r›icGÓÇð—wÚ2‡Oñ±ùSäèÔHœÝ[ØÓï^l‡UWxàgë„ÆãêÖE ydH7éžT9"°ý¶¬\¹þ¶NæÕ›I²8 §á}%ÍÜVJé1¹åã´ ·éÊiâ° ó혴C#öùm»)‡§ É×úl«PtM +IoøTL5ðÞeVdßÈ…`do|𔡀ëêa‰¸™TÓ2R-$9ÁÚ¢¡6 :õ_&ÿë¸1öÆ­“´Ô”}ÔÆ0Æa²e3%›Ÿ&&€©~ùÔàK_į"Ø~$œ€j•0]ü>Ô‰¹ .yï3XDêxÈšÑM/ü._Ñš9ºÖ­[þµ™݆µsŒNHÕ{lÎXRš|Œ#€†uœŠBúøœôICð¯$1˜¢Ô5Ïön²g˜%Š¥4‘3óehÞöa’F[4æ|3©~g×e@C¿ï‰ :\iõ qÖ¡*Ù&.‚Ê£pI,?ÀvÖ'— âEUzƒ¬ºµTÆîÒ¨æŠÛÏŸë©{£VÿÛ‰æU¡îãÜQÇ;Tm;PµGÔŠ ´ý7æJºn´ &X2Æ8ug…íýSÂèT$.2VÚúM#ýÔ-Q ÷ÔÀþU·÷e¨büÑ?eO/Ç‹8äáÒ£(£F?¥W³—‰¥PˆD²!'¡»½ý\ÉÏýáç?ˆFœëì½5°ÞœƒG®ŠxHFfŽûqé`Oßo34ž«´ ‚W•î œFŒñ–´¨;xaïx^BU± ÌäiŽ*âxìÉã•ÉØÉ: ’{ ŒÇÿ„G<?3qÆüV"¼Úrr߯"wU©5 Ÿ¦eUêˆD̈‚fTìemÏy ‰x@A¤ï-¸˜—‡D*(82þ ìÉs·Ï:ÐðFŸ¯óê›ÂšC·bó0±©¹o×\éudß,4èP¾Ôb ƒ?úgj\žhm ;¥jën–JùCY£Ï’ÍÊ6‹OíÏ-GÂqŸ¾¤4•¤É6Y#쮣ԊÓy¾ã»B *9äj@Êòí4PdêÓ¦ÀýÒùDf°Ag»½xÃØÜÿB*¬P5ð¾Hu­ŽêÖ¦ñv€®LÒã“Ζ\è™Xæ5V¾\XÌygë*ÏwQ‡O/¢gc«‰®>¥‰<.¶uð®õñÿOo•jÅ„Sÿ`Àì¹VüQWÉâf6´løy|ÏË{ê X’Ê6ø^cÛ©—ízL#oŸFê¢&?Ï+ ¤ŒZ>àߎ*¡?1‰½ÅôF^ÏÞ'úž~È…>ÑŸ /˜r§ï#%ƒé8c<¾yèG=¨Ep˜µ–®{}§ÇŽ—úéŸe»ÆA]Š M¡C#š¶žÄ± ¦BoŠ!´hÈP_2¼EŽÆ²—ª­ó‘´sÚ5@ù²ÀjÆ<²—<¯b+¸öVªGˆB¢'oj™mÃeÛ%ÆôñÜuÛ þ¤ÊnvX€–-’dž *õÍoâ-@‚“ˆí©®oÓõIJ/^÷7‡®ÃNˆ*×ö{ûÓƒ“ ºÝ©´¼×BüïœF[VUàX!A¼½"†fì ñsý€ÎcÝÓßÜÖ­“Ä2˜‚Žëù« ª:õÚpç¡W½µÓ?B³Btæd¶Uå¿× G<ÈhV6UÅ@µ¦>ä¾ws[‡@ÆkÜŠ±5ûÿÆ«V¡üüè”»'ºçã]hñÉR/ÞJ㈠4g˜cJ9ýIu¾ò½×tö;ܺ]þ'v7ëü¿í®¥¢wÂFW‡Ñ{µš!„õh«W”\ÞyËìåÓww[Ñ0 £S¯i&Péà.H,6­ÈýÂË”xF䣸œi°/´n&Í=tÉY‚“q6ÅÍw‹:~rvÑL«Ÿ÷Ÿ÷î…™®ÂÎež÷ë]D7Ï;¿>jsðÖ ‹Ü\}÷ü ™”ØzfŠÆ¶ ž 6oß´o1Œrü.‘ʺßIUÑçó)/¬³ç½ xº,ÊûnŒC׎>.M±Ûñç…Á… âìáwŠžÙjW=£Ïºt.ݪð<ÎÖ_ÅZ&ÆGýfšó«f–ýt~ë—b§èÆ—}ž FüwíâÑ Ñ;!b/¦]s¡–sœshÙØ˜–V8fGvÞo¥ø²ðذ>Í–ÑÃ+†ºÊr™– åÂoŠáŸ°x£Õ¨1Š÷ Ô¯‹#fLÔ6ãçì;5¡rw 6 é¢O.’ý.,E.tÖ‘,à/Ä¡¢îë`ªcuò6%öÖ8›G0d½¥T"2RULØ ©kr8M—‚ÿìó©;‹Ëè»"$Å]EÆ¥Ù`¦AՊ׾è¦H‡¶j†¹Ò`×@âSL-–·x_H…jÂ{ÖÖœÖý?ªÒð¹˜Ï„~x§Ç(sò_•òKnÈ ¿ÔAÚqë‘+‹ÒÛ"¶ö%Ã4FYs똤½}§o–„¸*Ùv#ìAB4Ρö­à2ëÅÐ]AkI–þ³6Œ«¶ª¤Ø+òÛæ˜@¸l{‡Ü ÚœUúÕü¼U•·ç†‰ ?éH¾œl”@°HNµ¼fm=–i¿$? èµK_؈Ìã&³odE„ï7$„´¯/Ú î÷›ÎŠÐë5ÞÎçd$†vPô²6üÙä\H.:ã×dK’m,ãfí¨AÏÊ…¯Î-™a±}ÿY½¼ rÖãÁÞkŒÜa\4ixþøá¨ù ûˈfK¾^Úò‹a)Î\ØîK,n™3Nµw_vŽzÝÖ&^!au剸rÌyzáòQ8>gߥœ‰Æ mæF䀦Á›Õ_ïÕi¸¨æå³DËP¢5iŒt?xt5D¯¶»²V6¯ØJ]7vµÀÎKÑyŒcZeá¨ÕŽÏ8ƒŽDJíNnùYòŽ|½¿XœT¸˜>L±½ëyp+£ÏîÁÕ®3Qž_3D?„©…À} >(bÃEl¿Êël7TˆM£k÷žw¤-\ÿ`vñfÆœN¡ÓƒÔÖ=ˆ{Ú®‘J¨ÎžÑË0öžvð+é®)½³!ó[€€vrO«k^ßÍÉ×s€Ïv[3ÅHAéX:×ÜL¤^«AÛ‚13*o1ÄÖù#t4tŸ‡6 %,9 ”úbøÊWfФ[7³«GÍÑ.ªÆÁ0“³€Øàù€ÏÑPòVlŽêLÉ`J[«§SÒy@K]'¶0dÖèŠ`à_±p¡<ÑøÕ‹N‡ø Ëp53’ÖÛ š¤$kÙ¬ jÓ$íì2Œ ñ´uQ3€HdÔï¹y¨ªoŠ£ªÊ/eç÷Õ%t¾ÆÍÛq¯1tÚª±à ›øp]6ßB8<ƒ>xáo‰üúŸÔ˜ÑöNyîy?5™ï­q*Ç`“†7Ú·²œ’ xX)P =j©sšˆ­Ø6©†É(Q¬ðíb ‹(!¾âa{ä>¸·Âª$ìÖ2}ôñ©²«ké\À<ž†Ýé T½s¯‰1ä¡éRP©#q.SO…³m³HÎY0V¾ÿ“˜6Ìó œËÎV骾“õrÃàèÕ´°Ã–4tIoG!\þ{0‡·p V1a7Ü—ÝšËÊè8¬å"³(h_ä4™6ZEÿÂãÈ»bPƒ%T8}ÿFiXÄ$"ˆˆ´ ÔÓb^?Â@yî­Ù …âÐßΛ­´7c”×ûʦYó}¦²&–ä G°¬¡…— ñál‘ïÇè>QÒŸ•øÕ^è#Ù«¦ÒÌå·KS.Äþâã­7Êl6æÇ^M2kú~w³¦8Nô VgŠ ÆÏ-WâºÍrý_p5üÈAÊ·ÛY“é=uÐEq•Hû*p®jýÍ5Jž¡¹©Bó[j¹Ó[R’ÅZ}—ñúg¹˜mª=£HŠ![w½»f†4-*?Œ­¨Àq’&šm¹-±Û–Ôë=û¢ø¦ox5{»b£Ò£ŠýÝ|àš?à~þ”%¶ =GG0èàŠc—je{R ì¯/JMJ]NÓKßÌúa Ȳeô/ÒV0foYäÏÃTSi+2 ¡ó"8ëé!"y]Ïä§ ]Ä•ûÙ¹…b!¹Û ^((ê¯`aÏ6€“®üä¨ûá[Š1,bòŒs–j¤¸C\š'ÍäjÄqö›àØùC!(×0³É²6–T"p?D¸`:PòîIF6òЧÖ(-Òß@úÀ„Ãqj§pPU¨R·€C̭糜€žf×ï÷Eî6’0¼*-(qw÷"œl«w-D™… 5E¸&V AŒ,|\dz’šü¼Ã´¯†? 9\æ‚'’®@qŠ/-ý>Ûå@@à°£=“óôX—é â­üõ‹!ÂõQŸ_}yýEØrzù3„Ö8Ö¶ÿ|[è.G-Eþ &õˆ‚®P‰Ž–]ð.CxǸI%üæjÓ6j)6®‘ÒŽcfÏ]ãjâûƒ¿lÁAˆá¯Ùx@æ[j`Göò€/±ëL '_ÕòÝÈBIÐÜòHдñ§Ä [ðÍãÑE`ëö`Ê­-¦…o'¢1(iêfý¥)ƒË(„L†Ž]¾>5š­\Cïi[¿=LòÆ"˜†H”ÔâòRÝ u"ñ ׋rî©oNšZYî¾ñáuÈr^DpÍ °´_4d׽ĜJ×Ü@‡H‰`Qób‰ëàáh¦ƒ© ä ßj€¸¹ÅV±"œÐaîØA7~aEŸƒeA µÖúnu ôti(ü…'ÉŠG7–¯1H=”äµ*¨ó{ÐD&ºRqŽÖ]š«³ìÿÙ'È-±³h5+¾Â=ÍŒ~n+Nc\-÷ Ã'ç-¤;«Ë/[½ÑÏæ¸®¡4«¦O髊`ŵÍÔ~n’‘ ‹2×tpO‰/: @]|ëcBhúÐøø×Ñ´G‰º4 ÷]…sß—R·nê&§Jðöð-·iÃÓº(0òúÑ–&nÀè0/1@¼QØ®ø§ì ãjõ¶lŒùèªK÷·Êýì<à –æ ò 9#hFh_ àÔiQ !8eií»æáõ´§/ëÞ,éÎo.Þˆ¸›Lómıø‚|¿ò2Œ M,p‰~õöx¢àw¯€z®0u3s€Ú£7C¶V¹óíI¢ÅÕóáÌqX]HÚF§·o.cæÌ¼ðÀo–F¦?2Æ{&|WmM0О!~sW{ЪÁXé*áQœ •úOgZÛŠµu|> ]{\¨ÏA8JhrSYÂsÉ\  ì˜Bc™[®ÎìžÔ¢0ò4Ù¶¸|QWZù•}šÅóGˆŸþ~î‚PÓÛÊþ¡fƒ¶«áOBÙ˜û±É¯¯Š)8ê¶ ½÷"HÖ³bØßSV뼦ƒ9åØêÒ%eÞ\·³ ªb¥Ækñ 83Th§¤6éoß-ÚÃù&qn0ydÒSУ¼Y”?äÄ]‚hH¡wó ›¶0XXÏÿIÒ;Ö#TM;¡,0ÐAâÃÛµœ¾aœúzÞõÓ=7Ád»µUœ}Õ ƶçˆy˜íßF¨ÊÐê ¦5#ñR©lÛW)ò€b³c3 ,aJýµ!j*EL™ôC³4§FútË ûŒFšƒñžF4Ø3€§kÁ¼.O±Pî ˜î^W¾p$¡öEÙJ@ü¡ ‹= Õ1NÄí½„Ñ‚ô=—2rÙ}a°,t[=By€ov²Vä‡ü—»à„û§jÐÛ5J"DÝgImüÝËK[P±Ö w½k›)MÙа±6í³[2×€*d˜¹¼…’Ñídž‚Ï]¶£™` œ1Ivë !Nºƒœ¤)ÖLÅÜÞË< ·gÅc*Ô_ã#_Þß§LEg@ ¼^Z@ûµd¡,~þ'ŸvœÈͬcÄ>m}íäËžŸ3tåÍev&’÷#{?Ó©Ö_‰2bs†>o‘·u²$úÝÄF¡2Öxh¾Éø2}¯‘ÁVu#‹£Æ±ýºßNÓ£{Çaº¢”j4dÍ\š">X Q?6—ú¶@ ßèA÷%sƒJ†ƒÁ†cÆô´~¬ÅˆF\åæ3;?¤² ¤­‘1S™Ñ~§²UEP‹ 6[RáîNës½ûz±«zuwfºnî îÙw•þÔ€û9èRâ>„³?Æÿ]è7ô•'¢)šl²Fï¯×—è“AŠœÏYj<2a2îTQæe'z{ÕBÑ712SD³ò²7ñ-Âô„à!äšú62he.ò–™Qô†×â.áµôªï¯Wgô¹T¤ûƒ–³–y¶"I¡Ø!ôNfߦç5“£,%ÑY¬eÛ÷&xÖ*z9rÐ6®7̪\z2#­fç;3Ò,E_yqf^ýƒ¦ñÔµÑÂ?‚Í ¶#|ßGzí|äd0 Ûúÿl²ÌiU]¶Â‘¨¶{ƒJØ]Ü¥5¯°J™!.8Ð=ÍaäNدý+­æë¯4€·WP\%–kM ë. ZhÄ¿e–BPŠ‹—T€X¿ãì`)×AfuE`,…Ûy¸#§½ßMüÌâ2®t.©!®¼@¤l¿ÖùÇ,¦:ÔÛÛN„œ˜Ú>­Š\‡w›P @·wÃißa}/ý‚J$Hˆ3®# éjÒÝÝœÿî¶o‹ÎO6qÄú ¤Ocã6\t(Vø&Rkn&¦»H’Z4ØÜ±.Àc+ÈÐgB8Èõ*4yB%>àØð'}=]」˫zb+ö<&íËÞ‰J=²»H¥R»ô›#œñ´|²rÚà$ÔjKhCjz¿+ÙØýÝþÍß }ËT!¸_Aí [i­¹"i÷TÈá²i”£$¤ˆãœäû¯‹|šV:Hþ-ì®àÿþÌ…et5øv#¦¶H© g›å‘H¥_$ÎLr,Z¿ªó½=Àà:„%M¢œ¨è<_3F ³Ví.ïÓS»gň“Úçz¸}wcµáåz¨Ÿ9¯ÝùVè"¦è“‡hUϳÍXȸöåNTtô"fЫeÔÈ©€­“k3ióíÊxôyf×OH•5o&Z„H§=²@x@s¢GvÙy•KÒ7na?›“Œ#´Ö©e ˜ŽRe²aU¼ Xwö ’Qܦ†#¸mºäØ=uÖlüíiµgg^ÂydãÔ(œ"E(ÿËqj"{Lo, k"Vß2õwöϪèçÉS£±uFû/Hße²ê4O¤Àz½™‹$CZ¸Äêvõw½Égã˜A#ƒ”iWÂtÝ: Ì”âÚ„‚Îù¹iA¯²àä©‚¥ëHçÈ ¯=@rX˜(Pî¦ñj-×},!§„è¯ ‡‰©N×&Ìeã‰Tøpg¸ñ ,m ³àÎV²¨YÝ)ó'…k`Q ÄÆß…• –žªø>¨~´·&ê©Â?*ç÷ ™‘9ø]èË´ÖGôUFw>p4í¸ˆ«zp×>œ í Ë:9µçG$yÏÓxEX¬òjKÐ1žt’» eôf[Y*&G~ë&Â\[#/%"óÈB[Ñ–ŠØ¯v;/ƒOjƒQ]ÆÌIinðôxE?çgŸƒ S&Œ‹'î/*«[égf›¸¯>ºÇtß'R} 88Ã{ÅÆB‚ó³½—²È"‡#<цDYóŽå)Ã%üÞ|Û›D{y@J´Y*§0¨ÓqL,¯ãÌ~m‰)yO€Ø¬¢½,ŠuàÇ@‚Eº¹$ý?ٽΗfê’¢+d$‡z ö'Ò!&óa¤böZkœ¨a|^Æ`ô˜•·-ævº:@µ ­âï³$Yæ¨tUbÛª_36š™f–êÀD7/08ù_Z‘ÚUÇ,@ú²—ð˜鋼!E¹Ê_•ë—/i|þñ Mko‘nJw‰Ørprá‚áCy(ã¡@är}rrºÎ´î:’&ÛQ@ìôLqàçk¶ð÷PŽã›nø¨•Œ°0 ŽD}+è ÐuôÔµ3IººØã­—I¼Ÿ±]Îq”[ߘsUû‘š€ºVhœymñ_=²…Ï+¦ýøt@ßßÂãÝ®"uà)í}vüàêKékíOEµn+wŽæLS÷‰R£ZLgê™þ“PR¿§jQ¾x#Í7'ÏJj¸@À–vÙY^2Cíö}<|mw\X?:©.þÑ}uŒSNsDßdIô†1Þ ¯¹‹¯A‚ Þ;³Hcj1bÈ>yW;=ñNCÄ;à Gý4ëÛeNQâÇ?e½Œª¤=»ÍoÉe¿‘ò÷·Õ$Y—ó1Vq@­ÕŒüî |›2(A•N ¦ÜÜÑ „‘jCæ›+ÔÀã(œo[5%KçÂ}Üx?¶ ê0 yÁpÇÙÙ¿®gŒ5âK¯7ÔBÏW/l_$†åW’wl#>&ÆÒ;Þa6u*‘8È}Õ'2ˆòho °@Ï®¢æÏö]e vïƒ"ŒÚÞ·ŽúIz'²ÖŸÂC‹[Êšˆ´tu1/¬ú&{;yÝÌx˵Âxã]×¼Ò__õ‘€àG*¨&®hÕŽ=`\tœ2Š{‡‹òXE hú^žÍ–…úÈÓw&^W8£N¯¸œ …p¡£F1ùµQµö–€=HIï™8KÙëçïÜ-ë>§¨Ü€ûW…´W#¢ûLËô.6Í{r3ª\§‘=Äèk&^Ìg´ÖKõ·²­îQjd†—¹×ûÒï*AŸœœiÂEL-™ó÷Sxù ÅH7;ó<[M¿ëVrYHïæZÙÄåX6ã—·ß|Økœ$WÚA'‰pN â¬hß¿7,ƒÉ@t4D‰V+©0p‰èõî2±X L‹7¨”`÷ñÞjþ&8q—¨.cºÐ‚.|s]üä‘gR«‚:›¡{ί‚ª'2+4z{䕯¼”p'¬ÿˆV«ôÌ«­Y·…MSDɬÄkŸ¾´^§Uä¥çuó<ÙÈÒ{‚_ߟ£·£Z¶·¿Ã’Â^ǘžaÆá÷fC¢Ç‡_¤¥Gh ®ÌÔq-©]ÆÜïý‚ŸERJK»„ÚÇÞ×3Jœ4„:óÉ÷ά+'¨ò²J‹&=.|ɧ킑©OÎttþÄÂ?Æø;ްå©V¾j`ÄE¿»lY^ììig>÷Ž™³Â¢>›Ï ù»¨ƒhÁ;ÊO®4®êæ¾ÍàL»º™½Â%ÛƒÒhRŸl½.DS}ìœ%¦;é&%æ3N»s}ç’#>äß³guã4ÇnL’—oRÓšºGiª²ã ðîgê)C4ü‘G²:þ»K)àÆNz–¯‡.Ð׳WÖ¿P³c_ÐÙÛXÓä±ÿôèó|ÖÒûváÔVK˜<ŢÿÖqØ^· Ú7òÀñìWø$Ò¹>· ¨HãyQ} 4×.ôÚ:Ö2Å6ÅOÑ1û+µµ<ÄeD®ÕDÚŸFYCæÞ°,Dĵ¥Dޏ”æßF!ãªbN!µ˜‹ ø¼k¸˜t“ K“".L‘­“­R™+„ñç›S…­¸¬mÌÊ¿àÀƒY8˜<*öÍs.†4úü@D vÑ·º4ŒïÝ-&þ£!^€ AuÞ¤ÜJ ¶hÔMWºÖ`~ _¸¬}ÐpH ÙÎÞ¯ƒ(rà1Êó&økÉzÏ xš³¹}€Ý®Ú{þÀ'#ña°!RÒ7a{Ó‘ÞXÁ°ç½­¢¦5fʃþ·ÜKCßtZ’>*BtðŠWvpÑxÏ¥„• [:™„M~e,w\‡ýªAD´Y€º÷DÚ ?ýŒœØUêÝö¾W9´hÐFIJI*7˜W K=²Šz7œI]óTlºÏÃûÆ_'rU´ôB‘.¡Ûi8Ûë^u¥ Ñ" yû£î]ÄjˆL‹¦_ ×¾È8¦??•kDööø¥õ^ß'ìEoî~k=/±?.š_¸ùG.«åûÎñšî1ÿ àµpèPË‘ºË而h/ÒÞÚÚìº)y| E€)Ä $Wkåý•UcTUäo¼¾V(„yYØøW’‚U1A²ãxÒÜúÜ1‡Aˆ‘óªÍë§+”ÌvûsÏ Q÷fÃkµŽÏ@˜C›Cz_dÅ Õìf忬¦{DOqf)ÒEºÅσš¯‡ÐCàbÒv?摾Ê,õËm êvdBy'`UBAŽ0h@PmÔË}z[“†ŒúÝ3ÓW‹é†åë`Ãñó0KàôþyÛ™ã{>æI_ÂAÁ6x´‘ÞŠ”¤ŒÎ¾ˆè$ •Sï"£¼+·ü’-×’ÜB6xà&KâWYS¨3‘?ý$û¬n ºa ˆžîr4äâ"¹ƒ¿»…ÛÃ̬Â{î/ááN€WjÏ›‡ˆÈê qî„MY_ã°AX}z>X‘«¹>ˆ©ë¿^ª+'’'*è”™‚æ{á§Æ~ÿ¨È=Ù—"5®Ú.µiúÓX¯=¥#F“®Ã¹s¡5}RbBÌ ¼:Dî;¨Œ¬ítçÓíˆQÅ”ðd¦ï@:ŠìÅ©}þm~gÖ­ú»®ÝsÔÅj[ êõU…WÝæ™h w*ZhÜ~mØ%`Ò;Cij"¿2qnúÐlþùo´¢65ŸèlÝBoîþô´>G8¹ðÞ&z¶|´åC!—óÉ– ŠJú± n//¾TÍõ*©oER¯Á×êT»5i©Æ\x5VØ€ÈÓø¢Š’˜í‚¿éhú^Ìmô@º)=¬žkh²¥MlÚ†ü‚¡lÕÄÆUΑ?嬙QfÆïÂ9MÖœIÏ“ò ÓKGç¸(!}ˆLÃÿ›(µp7±Mx ·H7çáY­Ý‡ó}ç0>SPÕ’ÿ‹¾Æò<:Èèn ·±Ðs•5IByöÒˆPΡ3Ê9ýSÉ4é/»,ûR¤»U`YI?½‹ïXÈËrÌ]ĵƒ€¸4¹ò΂V›%%–'Négœ‚IºÖ¼{…بÍ`ý'Ü–µ¼®Þï]t ¸w>f-\¶°ìŽ?®x~ä×±?Ñ1ÐVd´Vb‰ ¨*ˆÝ Fh×x õR„¨zݸw¨-”§ñË”Žå=½‚puV¤<S& á­í_ë íµÊ—S:€ÑEÆÛí謚ÿ3›0LY¬Ä‹f‚{gž#£±”AáÞœò( â’„ª_&­\°5T§ ¤ÈÙá7ÿÏüSåÈR»&Ï´+Á$¸Þݸƒ…$ð1µV@ %–uFbDR†ÀtëÒð&n‡à%w¼Ája뚘½dI* KäÍIæ’(±ã›B„ aÁ1¼w„n Õ$…ìÀ·Êwª4¿@d¦Øq1õ,ꬿ~´^ÍBΟMü¬Æ{ ówcWRÝÚ< 8IÍ^´O$6r1?!7r)YjÒÌ+œ@I”ž}cÜòg49 Ï=²ÃY’>̼…ó‰`sÎÞ*=Åf¹xÔÚQ=0æ¶=lu1?nú“/ëÄcuÂõ¨¡üS¥LiýÝ1Û‹QvOò²6Òd¹úþVÑ4'Иî²ÑA8£—"ç1\%ô):¡n‡/“ÙìŸ#Q}eã™Ç¿»,ƒ¢ÒÊšºÃEº¹É4§‰­TÅþñSßðÈŽÔx–¢ŠAbz´Ú%—1¢“ÅÝ(‚1iÄU×®èãˆÇölL€›sû×å/o·,JÊöo¡P·ÃhX*yx‹a‚‚.í2;™ËE(EÍr´ÂثwìK-ðs`ˆº*t®›¸b±[” †5x;1¹ÊœìEž[ÔÓndŒ:àbƒ­/n(A|ß}ŸÀ·÷ª w¬C\?z +šÙBã¤-{°Ý2>Õè%Î<ŽàÏጹóôtS7cqæèêB W€ –z$žÛ7çþLï $øƒ&z \=MÙã^¡±ÆiL’©Vm:0×êì&-ÓD¶8ÌÑ ÓùÅ^7•KýËž/óû@7ä7ÁP©&Z(,¼hXÿµ¿ó¸k3þ‰£mªÀÃì†I×¶ AJ+†)®«Äßæýœí MàÉ;EcÖK5œrjR­ƶ¸Ôºåa1йR&êܧNb¶` ã{}Ù’ZUñ6/埞ˠ-Iˆˆ&µ À›ÊNVЍ ¶ûNjÖ&ä}icwþ”<®7õÏx³Uò^ã•ð¤eîðÔQK ó~ÜVćJ &ܘû$û…ë–áFÄZ£rFh @–“M™‹ŠÅÝøó•›–º$šÃ»Maø¤©Qù©ã0¥Ÿ¨ ’PjzW(œŸF|zýí’fd'Àó{½8M=L‡u;ÌŸ*Ò±äÊLD~Ê0yÉ*ñöµ¬ L¤1»uëîë×ÛÑ´Ay³#ÉtKåÉwÉg•·äv%õbÍ7ŒêÊ™q}£PTþp@%0 – Á&¦ü=³xFW«h’gÆïQ-ÇÆ+î§^X J­KtnU00‰³Z±ÈÌÊ»ØìIfã#WN=K;Çÿó*Êÿsc.ꜪjŒ’µbÍ*;)tm+3Ђ›!K7`ùðQ‡UÇÉ*ͺá_ò­¤Y݃ó{Ûmøžu*N}àòÓ›ÑïáA f ¿Ç.¨¯øí/z¡ëG*rBòÒ/‰LÈDZ.ŽóªK­gÕªí_@oêû !IÒ`ZŒ\:þÙ×»îXSºO7õ˜OcJ¸8V§wÿd®%e!®ž—–<ªðµA2ª»7Ž: îáÏPsœKŽx³û3²-ì.ÒJÞ%ãMKì žÝcЖïðHÏ"fØ'?I©ýnëÀºô ÎÅIf·³>ÃÃãÄÙpÊNÅíX9Ä^s$h²y‚›T<($Ü É×'ÂGÍLüD&^Ÿ }¼ÄÎ* H¦r4=Zl‘ÚoÆ,:¬y°ˆx› ÅôÔ'Kéh uý@ä²AŸÌ ï‘M!6ŸM«%ÂÚhÇ!ΨèèÙa'‚ÜtçøŽÌZ%&4rÑ2† ¸i³M¡ô%7¦])x«+3ì›q+žCé·y]‚…)ŒÃè·¶~³¥û–ÂþR5úÞiœ)” cºÿ€Jé¿i?‡9³IiÊX<æa7·÷wmÚ_IjGq;æ53é)Ó×—Ÿ[Ö“Üî¬úùÁ„…v,Ž|¸ŸìqdO™ÝTÎsÄ\.o[k ׆ï¦å Â×ÕÞ$Ÿ‚ŠÚË cà £;JmÛv³Ô¼Wàƒ ‡ ´%ĶZ.lEìÃI§‚̵…ÆyCªûG½©‡ÿä‰:œü?W³m”°£hÞXP5;9wwÀk¿•<.šŠ«/¶ú‘ {+§j±-HiÉ¢‘Ôm¢G=“?3£|<|”“ïí;%mæ¯J@Rt}ôap@mLÈûIV<º5ÇŒ—¸ëUƦ¼ª—zì’¢þϨòJh¸³ ;Íf‡@R¼ÁP¦ÈP!2¿17/†Eöšw Ë#/*j¶ÃÏXšíúùfžµ‡ðtçL b=ÿÔ$4úÀ¬êÂã]BueOá|"[ô²a\˜níZyXY’¡}¬ŸˆA)»ªUÅ•ÈCò,þ¥ÜAm¨§«æéÌ,O:rðüù+n Í@¸I®¹©f]¬œUs*PöÕJ’JŠbq´Û‹toÍqtê½t€Æ’¦hììLͶ樰ë™_M(ÚO{Þb¥N(]f€Æxu¯‚Õ$sÔo™·ïÂŒ:$l¹ýydvÚ‘, z×ìv@¼mB˜3øz;œavÅ”e©uB9pP·ËjG‚ºÄ÷Ÿd›kã¸%ÆëŽÈ‰>z¾>j{³»úé½êsbÌú±àY ÄXf²¡é…û^Ì4çDhÜ—?ìÙ€õŠ.+Ï.²"Äó –‚H¼sÚü&9Œ€šM/¾•ɯyÍõ)mæÓ1Ëe·áß}•ÃãmqC«Sày]Ö÷¦¡f†¯ÿŠI¿0Mì-šV!dÜ‘þE²¶I¹ÔéÙ|hd´>ØBå´E-Än*U»qVÛo…ûL#麛©=XŒ·Êh§ËXåf=B¡Ú·>eXc¶+UœÊàƒl3':ñ6û/0 [[Gœq÷ÍyÈ£ÆIùí”ûjbìù›3fñŠ–Al1™­6(Ë=‚ãjë¥Ç8u—É«žh_ã[˜Üœ1{‚HmøãF€unä!G÷UÉÁq„’šñj[6Ñ=P&ÏôØÏð¡\AÒ‡ó‡AþŠ65NôÕü¥7ž£Hœ[Ì}Ûk³±6d¹’|ËLaÈh0¼^%Ž«þܤ -ÿ¿×8þ*Úí\F®i“–Ú¹‰Dws _gq¼¡Ž5YS¢jÏ,8†LókÂâÔPú_Ê«T¢Æ¼TÅ’œx&µœc¿€ïÂ8{r»·òq*Üß“Ç,¾Cþ\ç'Áª;HźŸ¯6[IšL^ÑàìÂ<ìݵÌQ51×,ê5çW§‹Yk?ž´­LœxaÃ0M¶Ú§ÿÖXª~ÃåÖq_s¢%äÕ`<ö§âë`O~…ËßçúÒažªÀh¤K®úè—©?ûügCUbB§™}ëœà#Ž›Ý½SrT¯%/ÖfÖgèWm®7ÞI,üÏÅ ð(QÇ«ºð^dHÉJ1ç0ý¼ÈïfÆ Á+²^2íBWmY­W»ÎJ}Ä{šÒ`r_è-et¹#Ê}ªs—¨b´ùÏlS ÄF|Äfx´ï‘ðéÈc³gêÿÝ·ôLYÀûN£d&ÐÁJ–)½Öˆ•µÝAšãð\Mêf7‰ZÀ'””¥Ã¨öŽj‘ÅUßÓÜæNLnÇY“ßRh¢ã0Œ÷(j‰ ‰ÝTNŸ"•ÜÞ .@1·JÃêÀ—NQQÚæèö0'ýÛbNŽˆÿqJËæFl[Þß圶¾‡w£<‹u7]÷Ú‹ÝöïÑÁ7U8¸b¿Wë->`M ùÌ ûâ>'F?[-0²4Ž+8Ô«ÒN`^ª‘Îi…9h4“-èkļ~(ñmZoÓÿz8Jp§=/ÖRvßo軤z#eP¾R½I¬'"þ•È«áœP(–¤ªØ¥÷®{ȨJMz~‚½íô:hM$Ï)Ì$cü_±M¥~RðgÖ¸7’B Z0a!·Ôjí W3žC\Œ7ŸhiµÇ$_ô¼GÁ_v 7i@mߘKbl<Ìl2&öq5ãr&48ºiß’úÕŒmhyFF¶S„(~1“ãÈÜ‘Èh›]Ø@¯+cÞ?™‡Ð€o3«p„QäxŒ:Q¨*ðHý¦Úû)ÖØ.]Š×=qBfV8­T`§t½¿ضludOƒ…ûÎWµà'‡±•M¹ÚqqIU[˜2þÈ Ï+«/aû™*P˜kŸ/ˉaÀ ÎÖ¶+Th>w`V¤t F£XëY”ã…ŸyÂæøyr”¸ÓJ¤ÊÝž>é1æE8öTpJåÌî:â²9E“üMüÕ „Q=yV 1ôÇþfšHPæç¾ÆoÅÂ$ç°‹@ëT©ïe~d^B~¯$ݾ‚áëÓÿj¶;4¾Lñ“Ðë,ß±s%D ¦vÁ e\E›§¿#¦íã»ð-Õ<£ó¿Üe—f—dËA¹ˆ®‚Žž®Ò•¨ÒOîˆr_rÔå­Õî§ŸókÉGnsMÝVà&·« ª£‡'FÎB‘瑌èXÓè"óæ|¥9ç/8‰D¹^Úªò^F=;Ûç6*eÏ¢žÝ£™*ïôK|–2«ÎÁ6†—ªBÜ'YkBý{ ¢°kWÜiŸ|c7îÁŠÔ´ù:6N/À‚ýÿQ™:“1}pKwÇJÍË<¦Ê©ÄÁlÈÓ‡ò'ýêØ+tk´X2@­ÍˆöVí{štË?˜Xm2U8ÇCK'(röpÔ»^*Hˆ€j˜IÙk\ÏºŠ½{b&äqÇFçåø±”wíG Éoÿ3;wÞ}²ï¡ù~>OÙ_Ë««z¥›tzKT£›;ebŽ4±¨oÂqûƒÂúi1BbXBS¼,´ý~/…ãì±Æ™àƒíÞ‚ q£KjŽŒÉ[°”ǼΥ~&iFqÅRî€Æú`R±°v#š!Skױτ2%wÈá²¼Ëç{"7Ó5ô© ƒ\ , ÕCpã—~TÇäep lÖ_0ùÚÜ®?“W®Û$Ð~ßÚú1ºµ ÞX¹Ã D1kN}Ò®0<¤7s^³"»ˆ wN·ÚxßãÀU \Ò Áë|p~HmgÊPŽú­#ò öVñõüÚ3M€?W>Iö8oy#+m–;L07s '‹Š4,, õ—"—¶¯y¡ñð±šÉdòW9C³#êÎóí܈V¦-ºlð™:híÞKf‡ÅÛ±.ÒéωƗYºƒÇîáNq·©*NÕôŸëúâW2Búà:(¸$Â£á °uàrKq0ݰGím•ÌÓÚ"~Cl!%ÖAíp‚Ì`ÐÂÂæÏE cnY–QߤJ$ lß²<§ÎЭÉY?võwÔøŸðPv«°í÷“nmŒ‰– P=iX˜ÓíæÂD¡uY÷v#iì©bY6ˆ{î7^âË(D´ö‰ð팛\Z3Üž]¾ßñ|‘–çÖä±´ÿ^ª}f=T²*T¿!PìPƒR¾ NßÏqì*l Žï–ë]?):Ï«j¦åÚ—A<2}bºWêþ@ãa¯Iwb®Ã¥–¹Ì5þÛ»õµšœ®:ã+$XwTwt]ËQºßazê”ÑkX6:üçY¼wwt—{BåLG-÷¼Ÿn辊G>Btû-0Ê—´o6ñeVÛš@YSÆDþN@™ùÑÌöaÔ ‹9Å[ÄŽµ™£ý= 7€FâZˆZN4d(á›2aôŒ.J¾¹yý®o°ë´Hjì$³é$KFBV¨á[T»ˆ†hXm¯6ºEAíg·SüQ¯‹§øé_ëL[&ê1•XAl @àà5r®°ßîŽîu7%˜¢¿ÿ‘iÙ“p>ÚÀa¼×}GUþëF ñÙ’ÀÉ ”5ظÑ‚GF‰Äó?Cr6“Ô¦Á’üÄ店è”^ˆa{£ö˰‹KÍ–â¬Ú÷2m¦6¾AˆŸ¤<¾ÙØi#Ê$!®Œˆd þHï¿N!Æ+‘=².`ë!”c6Y®;ó4Þ&.Õ>’¹{á˜Öþ«! ãÊP™¯xfG½ø½(Ý1ŸN·&˜C2Ѻæ÷¼æØÌ5A¼P#Õknê~Ò$‰`Œåó¹¼NN>œþ"’„j+6þ}£åo`¶ß¯zœfO’zÍký°SWN–`®pN.´ÙDÕOq¥n ­9ý¬É¸§l·áâíJ$bDèVЬ}áH/âÒ™°äÐùW DHb.¼íIô_ôçÜÿ:Qh€ÝöäØà°aóÎ ºäpçȱO…ÕÉÕ᪭IS€4*cXaæÁ$š©ÃòÈø]UÎeC$ª4'-‰91ËId_hhY±t(0AíŠ{ÆPÊžyÍûƒy¤ÊŸjêZ8ïçÚTaX‹½%êdÛ Ì„×ú­õÒHN#«úç™+EÒæ“dF> Åq°Fß`HnÝn•ã+Îë®DwÁ!`Pp¬M†)Öï:7ÅMMˆ¸ Êüuá`^B®ú¿ö1Q¹Ž–^Á%¼*­©{­<®ß ÒzgÖð?• >aëj«r@9>¤—u y½ù¥6(ª³Ü*à^œ³ÑCçÛ=Û5‘¯¨fòCáýÖø## áºÜ6ÆY?(«:œáòøÿ¾ËéI¬‡†ñ0A9Bë³Î `mb,lóoM¿®>Ýk*) eS+ÿNRÖÃ!ˆÆu9ÑJIRäÊE!Î*y±˜Ö)@âi¸#ÖÝK<ñ AyÊßÜu|³Žõb¶ ùñýÝà}ü¹'3ªµu£/…¾§oÄš@J£à¿*–ÂPÑRøó‘W®úÇ{ºFèaÆ{û+CQ±%ä—“‚~­‹­Î“Ç¿÷7@k”-‰ÖÕ/Ëœ +fÒQq‰ÿÄ‘”&Ùq¯/´×‚ËØ²íÀÜ®û$‘¶¬Ï’Rx°¡¨$™ŽH¤&þ*ìD6†¤î!§ó&2ãâ†+=²5!Ï@¢CØ’¿›àž#ûÙf& õaŸé{hºjÍ>´á“é>%ú„ÝÈÓ‡&[ò€¸±T8å—.,Â[†Œ_.oÐ#ÑØUJÀ¹k7¿†>‡£w¦qñïÉWšñ׫³Å“h :V3ÆpM¥”Q\ÄNÀ8ˆ)Úd ŸNõ$­ó÷ã“M>‹]+- ^WñYXSu½A°¾åëoå QOØÏÎö‹c÷P‹Àlz°M_ 6`×NœÎÅíÌDŸB fQÔ»>!Ïc-„]F=¸QCÿž0åÒÆ™úùß9¾Ÿi—†nV\[IÚÒiöâ›”DXÐt·˜| $^7£ëï-¦è~dô²‹•G»óKî>'¶ë}/ HØþqÛçnù'W1¨ ½¡VP¯‹Æøòå†ß*&mÖ¼Cx™·÷|€Ö+¾0—þQ4Ï^Âù8N-´óqb­þ–Ÿ‰Ä±Óô¯òO)Û4p[ÇÚß·òßêã}Á+”½ð`cîܪѦ *íÑ!AV¢Ìp–¡7¸²T‘’,’ר»‰{÷Í€ ©Ÿê„|æñsÔG.ñxÊÓŠ¦6=‘=¤äjléˆ(tAÍ !AÉ òL÷¸ÒÙ—OÁ%»,Bi2ã.Ž 5gÇ{DçõÏtIÔTb\æ%uÚ6èct¾UpzÀ» ±ü-=fÑÈ YK²éV˜Ú~tsöï ,Æñª™Áêo_<4, Evp=0TˆÔM£­üæQ8i«)Ô˜8ÀÎã¬]„„Ä^áI¢øCK°Úܯ¸6˜?ðÒE½[u÷dÓ°‘²Rðÿèse´,_Ij™!=DE²•<öøp|qÜîèl#}²=¤Ü5³úŠ|¼ä„þ’_ Ã?d8êŒÞžv‡xXÂS_Ÿt)úÙÃÀ¥oájõd`Õ ÙM\Ž/B%ÒÌÁ¹ÅM1eÖònÑ¿Ä_ ² VdŒs¶ß¬œÊVRvø½Ñqž«zYš€ã ÝŒòÜ(Çvú?û7Ã.c®¾Š¢ËfÉÒ‚ç§GKî¯÷Ù†}d›N™ØP/ÇκM-][1ª<¬C`ÖbPüUUénø×ðÆ^IØ· VžÃCÜ?MI¡˜ŽÕ…kû ™8}X]ס£°aðìpíÀô¬¬¹¼ÝZVOºlèI8cGÿuM±î§giì¤A@_:uºŒÈŸ0Î$c?‹¸ªdˆ÷ã[K×— úù¨Žq±«Û»a|÷ó¿yÅ8’Óz>~ÖòÄJk¢J­HyaÌ=%Ø$—f€ŒFú ›SœËf¬°Šó‹õì‘€¶7Å bam±Ì £Û˜»-z¨ vfìú%øºaÅ|²#̘d¼o\¡Ù¡/iqA¸mПs'¡®©NÌ®ÎÌÖT“e©»…¥•$ˆö «à¨I‘WŠ Õ†=D‹”Â._F$úF—º‹þ/ëÏ”ç4±Róïö%‰>PW˜!ºcÁ·“¿ ¼@>Nc<-ò„Ý·ˆúYå³ä¥j¶à¯EÙ‰_9ÆÄÂñqm©ÞŒd•s¤*éÔ¾€[—gÂOœ„'¼dbý’ÇUíhUPÌ*ìt›>¢|>¿?ýW†Žðq:÷,P:cPóVYÛV¿£Âáü3ª'D*·à™^°h8bbO„ë¢\Lï<Æ!ñËS#¥F| mj{ir^=HÆœÅ';íÅåÐ}Ô„; „Ýâ~3üüù*öœ¼²°¡HPÿ÷¤J? Ò/)ÎXx3þÎîAê–äû-’…9çC¾DJV“FW¯1 ád—3}áF¸cú¼»g¡GŠ7³:Ö×*u:XA&k÷ÿŽã,ËQ3CÀ Õ( %î-’Œ’¼Øl˜ÂX¾«€L¤ÿ)Áœ•Ê©¾´%kŽW0´ÚÆkâ!þ]h!Æt’ÌzÀV>ÓqXßm —!°`ÖÅö™p¸CÈÒF]æìÌök¯<%m1!ÒWðâ­(3Ì-È4Õ7Þ Ð2ÿ¼wCÆ+½6šåÇH Sk,ç©õÆ„~@×à3äù]ûšÏK¼:¹O÷G_BC wÙsÊíÎòô ‰†àGìË–àËew™¢ç³LºðŸD 0ÙÅÈm…q˜XÃYt–Àˆ&†ÞV¡Ç~ '0² \ppº¸÷81•Ycoʽàß6@£óç¡¢ F‡ Þ}w¡EQ,r=´_f w¸ÄŸ•îãÉNG4 ã@A}üG cÜõTU/A©+ÔÄø‚j,MUÅär®¶½GF„´Ò½F'N¬(8—®û1û9“>HH…X‚hŽ@"`»ˆHª?‹ þ¢Xßb}_Á \–_QÕÊ]5n‹¦Û‹5üY…iõm•jª²´åJîs|ú‹­…ô·Vã˜Éš ¹ÑµÇ_ðä(­JýÅZ@NÙd:BdªÚ¾zEUi@HK¨¨^ïr †yD#â¤~¦ ƒìøzò&¿šà—2¤ý· ™OÀïYˆ¢BTq[|£ŸÌxª MCÝQ¯`¯="iéBùÙD„ídô_ÎæÀ73úÂLáKHKÛTßÛur‚Å­§‹„s6&_Ï!¿$Iz†„oD-hø°ó(n¥_™„t˜ ª!\¤mc«}6Y¨ÞaG³§k=t¬o »v(Qñ± h œ››Bùr4GŽàqÀõÝSš°á0]}Cë ÆTïÄN*â`±w\s"Ø 9¯”˜“lÃÐOoºøÇIë¤ÕÅ$õó£ûwºå‘Çes¤¦à<‘ÿÑ…u;règÇä?ÑÜdd£[™kcs¦‹ÎÌT.æ//P¤Å0ËGQHÕ7â-•3'JK´° Õy^éuÃ`=¸‚[[«Ò¥"Ê6ÿ€<¾ùˆüÕǯãøý ³ì—±R=ÍÀ! tÙ¨êšù4Ò–°oVp¶ji)ø‹ˆx²‘Ïkij´@ ‘ÌÀô¡=bçTÞîf¸†xûïò)ÝK3€¸uÞLÌÌ•–¨¶¢w+ÆãuÚ4gçXæbPaêŠaˆßÊõ³;£x0ÌJÜ>ÙÍ?^7õqùWÙN)'a^ï5ÁJ3Çóý0°€‹FÙ6,-kÒ‹Ð??g!W§³ó,e ¾ÌmΩ߾C,45¤ÃÙäÈÃöe¿÷ª³Ã¬?€16¤H‘¡8|LüaޒשJ[Q‡p)5šÖPU|+”‘œ‰ÍÁýmªÂJóÀ-iŒÞÿhrR#uÙÓÌáµ?vŠ­ž!º4ÿ£hÍÛ.exËéìJ¹¤u áÐwLVG'Üò6ØŽÿþ±DÀ¸·|ÛÔ9¼oÃ¥+ XoNøÕß1!Û=#ã¸×ì'AZó]%w»Ò'€Òͦ¦Añ»£VB £YmÚ— ¤Pâ1õ†×_Þðd‹ RNÀ[†Û¹^ܸËÔZ~`ÓÜP¥õs*"À:ù þA„/÷&¦>›Óá]‘×:—GèCï W»¥zÊ¡*NvùˆL:£þ¶‚—µî2QO$g•·€ºÌN®|h/¹>+B{Æ[ª÷§hûæB]aê2•ñh¡Eb‚‰ŸÕjZðmœß÷9i:_üç4_‚Œ¼"?;Ï{ÞÓ:Êh(÷ ºW]P‚І ™AãÅ=ˆj,écþ¶B²De•yÛZ3QT)†Üבd8Žó¤ÐɱÂâ2ÛñÞôñÑxªµÅ’XÕ¶|\xqÔÕÆï=ÈbÕÆRN‡ò¬/o;!°=qOØ)"áûf5[÷Ø"³‡mïø­T%9dáfŸÊ«'ûzÏ>®ûú\ç0¾i!¥dÉZƒ¦…LÒQ’ð\g6’x\ŽÚüÀ^4ú¡Šj?…–>C ½ÈOñ˜ßÝ„^ñÿÌ^^³ÏȈÑÙ—»È5í$™»2y‘Dú …®µÊ÷GnwŦ*Í2©_i0¿ê§"þUbÙ´n+ëö}¶Oƒ†yBB†Á6…=% J-#ˆ½üc‹š—ÊRdv}:Z^f„\M·caÿL”ÿU oû9Aê$ˆT1E›oTžÌ8ራ'´jôÉBTúš9ù}w¤Œj&L ¹9b9‹kgç?}³¬_Mò¶wÖ­]Ç`±Î¯%ÙoÝ3ý À»ªtå²}; *-õM`c¢¶ŠYfµa?$€g¹)O–sœ8ÙßBBó¯{¥&8S+(GÚIÙp>J–ýƒWœ`³q§tÔ!¡¤z×`„ x àým5åý;<©"õœ8ŒûBÛ ¬–!W—øc `àúü ·d^±c#J#U蘙°ƒÙªr.˜AôfXþrJÙt£±r9™q÷¤.W˜•A ¨f~Õ„êA„aüvk"ÚùUò®T¸P9m|xÑ€ Oà1‹2¯sp0Ìô$7äVœSQ9b,|¹VIéÈ6ç« ôQµ£dŽ"õ]©iñ˸Síl¼»ÍR+:èc4âÏ\ˆ¨=îi‹Ò–áúM\I‰ý£½„‹—á ÉYÚ2ÓCœP¬#,ÖÖ—ªA’xÏ›À;¯d#§&RimÖˆIIØ2Sí@@ÖªôA×À“Å8e ‹n!¥º¡˜t£ðŒj‚#úgºú€;üêÁÁöج´ñÁÁ€2´ø®B¿Sá#-£¾@F!ý£y‰ã»»«’¤Î‹>ÜÙüš±nùRf¢1! ŒoOš¦¼×%ƒ J2Ÿà.·p7?‰½'ó Ue f;}¯exò^2ÚMM¿üž¶âôz7ç^ @›Ì‡'ùBNÏY;Eüm—]ÉÜ|ó@€6ó‰~t0åî’’Ô Æ€¤€:çöÄýãí¸f™ü$çÂoÚ!c˜t°Ñ¥¶¾ëFdˆBë-G­h$oš›Ü¤6)wEŠ[+‡t›}ëòdeÄ~H¸æÛ•ÍUwä  ÑàIÆ[FÓOÏŸ¾°ê!åXÄWBÎl"k£ŸsÞÙïo@`wù6»F?…¿Y¨œÙËP} Ôá‘’b;ïý›¸y[à©vìýÐÌ%Ü×á¶Ò¨ƒÕÍ4*âéØ9ƒXµÐö÷‘O$¨9cÜ Ÿ^.4¥¡7Þ‰gžËÔŽnfˆ­h¾•Ù™7²Ðêh¿]ðøÍF¡‡h;‹ÐüG¢·¹›Ä·| ÿ—GÈ kèbþUû¶Þ{vÛž2¸fZ±¥‰ëÉ"Iuž+C6Dq€Н£íB/0WæËkyFê}úÃú$3püÀÜËF^3B:ª£ÊºVrŠ,˜ò½~Е`C4¸JÑE C éÊíØãF¢[ĺ@G-Ý+žÐUÔ–ôyQÌírÌ·ÚÂ]f·9ØVÝ79.²‡•ïÚ˜ÃX&¹gÇ›¯Vœ¯ÈÐ~ðt­ª°L7¦vª=¶+JFBkPdP³mù7ùý/>´ª ~ŸX…MÁ]*#XÌu¥zîäÇîl„θðwÍ^'bþ%û~~Éú˜Alï!ÊgL¸øóšË4Í$üòR¼Î6 òà¿F«Ü’!0_O!nÇBKhÐYïìoª”"Q‚3qÝ¡6È­n^p¼©ü?L׎ÜKf%ö‡Çîÿbw¶á“F VÚˆÖdA€ˆ­‘j3ÂئkØ Ú¦VÈîËÿÔ‡-$÷—fwç‰UÏMp Çðˆ`ˆª1fƒ³/¥=eTTæûÖø³ò¤åžÜ©º®“÷i–*tÉm÷(G~‘ù±Yê…øï I– –Õ¡ö¶Gãbõttõ·Ý2Žy}qÔ„i²»ž× Ú4’ë-™ÏÏWëH½{ƒG1dIš×u§ 2Q4¦–ê…<)4M¹§Cv°nõðJÆ@Â8ϳn½9ÞoD^͔ʬ¦˜moã{HÒœ¬Ô:”q7ýáÙoþp°ž&ë~G²´DhùCd¦èJÔGƒz–[ œ„ˆíI5Ô‘ ÝJ½‚óm£»`Å?DN•£µmƒÁB^•®-À%/ioƒÓ?þozmœ§a—é$‰Ÿ{ÛÎÔg@µœõì‹–iccL•‘2˜Wì–‰P´¾'t¤?¹zêêz'¥ùßKÒ *]æGÚÈá8oí{ñgêb–ùÀ’ñFx› ãü©pJ¡ð™ö¡S°ÇrãW"e(m\:Ò^evd7‹ÕŸmÑ®D(ª@|ÚEFÏ-ÒÁu}<ˆô&Òûð¹(«:j]ÊŸ®%œàJ_æ£QJÔÃqäÊtÝ$ßCR “梂þ:Š}®äm£¬÷ >‚™²PQrÏ#<…lføû‡6ÚYX#lÑKAŠu j9‹ê9¤.l¥ŽîøØIÚ™Á¥ºfî7NñçÖKŸ9¢¡ó&ëáÏx§‚g…ƒïö5B òÒ©ê÷vo[Fíõ*‹õ(+ÑÅ@Q@²çó“àªBi’A}5%nÂIJD¨©{OÄ3›Pš_á`‰1:wp™ií­·QøÁ ZWp¿P†ö¢ÎáÞ±‡¿ÚÏ ¢øDhŒK¤÷ÿT'ÉF$Ÿ”ƒ”ºß: §K¶ÑéYšB“ÁÉøµC™Oç-|ï )äÄ€ÒW[´Ñ³ï¬ÞFúÈËiKüã‹ Ÿ¾œM'Úg—CB™!®Œª;r£ !»gÏeôÂxÁ#y0u°Áýûg?=`=÷UÄßZ´rÎ1?¿q¼ÕÒGCå¤Ì ·ÈZ Ö'S3øPbR)S‚Ûôm+™ÄÞüùÏ#,tèêôa©¨Uš’{¨V–È£µ¤êA¶¬¤—m?ž(€Bí»7”ÜÀégc €«CoR9½lz(X¢ñùÿŒã †‚ƒî}N÷ “¼xG‘ººþŸôÓ(5ÄŒÀzóo>ðÁSÔAZ\áq ¢­KÑi»‘¼ÄþW'–ô˯"Þ\¹F% 㱯,ÓˆµVÝ»9ZÅ0HØý^Iì6_+tgmžU¨*´ü#ü!Žª‰spÐYÊ]}Ø5ÆY¿¦0Š™Äo%dkeãª"4e8 xÒžÜEßq‘‰”.AYœ â,’ª¯¸h‹î9Ödpš…X†µôe«Ñèh®“ìÑ„üq‰É}¼áªC$v’D¯å>¥ÎEè†M“;ñõfVû¶:ò¤*Ë ë2~û»‰ÊXác3c÷©l,&P¾ˆE">†”IƒsbcÂûF*˨O)zŒòú‰[€m äÁí¡ …âÁ³²§ÍËŠ1Rjìã¾eèü˃ýt%;¤ŒD78Þ‹ÅÌ$Ók d²6¤Þ2à­P³WŠ%……3’Uc:¿Ùæ[䱨˜Ž+ÃÿK.,z=qÕLNpaJZ¤S1$F³‚#•§+Þº’Q6ø„^ÒÇ Ù›€ ÙÑìJs,«tÓßÉæh‹»--ƒî0RRè÷“aƒJªiÛ­çŸ ó(Å›ìDÝþ³³ôþ·Éò°§p+ZÎí9gÙüWsåDÙÈüÜäµW9áó? A>**VóÀ¾½ø†¯.¾âˆ²ë( ÒñäCtoX™J; ±)¬–÷õ–Ù‡pÝžén¢òÉÇVðx„ÑØ9ÔºÒÑýa¤³€öáÑû/}Ñ–Wÿ8üjíê”[¯9 K ´«Sg]vÂ|ªlý΢nœÂ³Ø;‘ !íkeŽùåñVñWR5 ËȲDÀFóâ¥õ@«ìæíÕÛtvŸãÑöë…‚!<ìú#9®WÚôS•Ê8@öÅ#`騞;é‚%X·e2ößÞÎs@"ìîY¤Y(yîöfºÇQ1› ÚuÀ¦;“»UÞ@°àúX óh&µ’6ÜÈöq^%W½X®¶O5wwRrê,뀳j8T0Þ·²Óv`*¬4í-3r¦öq9@½rÖAÍ,FO è.lcØFò«5gª?ÂzQ²wÉ5rPªø£Ö ª‰Uk‘ÅÂÖî*ÔVúÍp+ [d5K–¨ä¶ü}1HÀPˆ‡Æ6 ‰çC гªöiU¬°\ì§i#“°{_~Æ;w+•°J¥c!¼~k)5 Œƒ¡I³L2"øTÍ]Ïí*< ΢Òg»7K|æ$î-лüsšÇÈãùY¯Êzæ´©„ñ+@þåûÖ¦’ob~óùh'yö9Jæe™øÜÂÛÏy;7`¬çÛä•ÕÑÓ„" $¿J¸´5tÎDÇqИ²Âlbì5Ù= °À×{3/ U éÚ+»Çibÿ| åR×Ë™HÉÝ n¾¿næƒ$£Á„ÉÆÑ`Ôîiá,öݯ‡±~ý‘øÍ?dc3q}Hk™˜|Àÿ#ø!±Ê›ý£8t¾P¹ÿœç‹È‘ãï5`YDµ< q=¾×X•‹w8#ðn»¨àU1oª·»d4‚‘5tJÇŸS;5\u®?!Š"j ²‡õ Kš‹jé‘êW>ê+³L}Gªb’^‹ÒÝ.=“I´e&˜‰(ÜW꽸Á¾©eM]ÙJ£ã¨¾ËØÂÐéTL4içzÂÂ]iIZ'Ú\»|ÚŠýN‡hödè¯Û?Õ D¯ûœe·«i­– +åˆ ª.‘­œÖ̱}„3›ofºmÙzûĶ=‘‹2\<ýÜd£Í)Ž?UÕº¡# c æ>#—[A×7Ü20÷ˆ=Òïì¥}ŒÚ ü«)ô[}rÍtÇ i£—á&{Ùœ2ïúŒª‰î}iV·D.¸;²©Ñ UÅÜúì'Jó–h{Î#e‘OÔ]äìR”òŒöIëÍæ$ÎdCZÀä1|Š5êâáü_ƒ`0o{ušN(ÈF2ÖmÌîUK–ƒ( !Ä …¥4r$É †Z_›ž”š#e¾x15ph›jš'BúxÙ^€…ß]q|›òg\|[è'̦OéÏí Ì¸©»µ<¿# ð¿Ñ2lÀVR¯ƒ%°;Û¾)ƒ+jþ=]NtÈq®Bns+V5@a÷nßCsÙŒ þ6ÚóÁ7ùJìé!:§0ÿ/¼‹;>è&õjמ»Ñj€–[>_ë=ÚlÉ{… ‚Û3• ¤„\±¦7§½Ðït㫺3nD%æ.}½.åÀFÃüpãäðЦ|&Ÿ@C@T˜¥M}¤‡2u‰à¤CH)†@‚ë¤H1î¤IømbUF¶Y½T“=µÃ2þi…ºæŠ·]g°zu\ÿø­Š~ÁΗ«‹Só°MÑ4#+Å￵tÿ>)¸6 ÀßžåÁé0S½Bà%  iNºWÝC+) Ùaö/Kí=H{b{æ¤s*½ÿúîNQ+ræ”*>’ÎÿKø€½³ÙNòñO³Ý(‡¨µ¹Óпª«c˜}Vòºò54ƒÌRé5èýj9é{Ão¦Ìr³Ü´2ÛFè‹ZsO*<ÿ§ê=÷ËÌ™6lƒ÷{ŒÔñb¹ÀÁ×)Œ2¢)ú ÌåÜŽe\Q‡oBnL~ìçã#Ý››ß…üÖ6¿Fûî"~éÞd Äž‚@ݲ˸óK‚Ò‚Yÿ¼uÙDBò(ͱD=âEdJm L »†l¢Â <éHÝ#Œï¢ÔÓç'YƒÚ×_ýsé;+2ÿ=žêOc–¬··NÅAšö bÎÅN M.уôaTæ.Þ~_í'Ã+Zv€2(žaÄ…âÍ÷+!7gÆäcÊP‹µ¤³¯Ù…ÿØ9ê× é¦Ï¢¡ßÊ„¥Vêñ³mwÁfÓr¸Ö]w'õ±`ýÒrjÎ÷;¡üKp9äÝêŒàw2#Äa‹Ãz P7:Ö[ í\G‚=2‹{®@y.+›ä[€¹—ÓFZ¹o³¢Èwóh¼Â=;k ¹|LPfç5¾¥¥áOÅGĽòˆŠ[*^˜ø ¾C&ý@çEïó6î»,‚¦É¬MìIˆ÷ȼ2‰ÃpfJ fžßsÁa–¿™]øz4éAe%‘ʓ֓ñGØ‹œDŽZ’Ðò%s)'Â*j™] \¹¸ ðá{¡&ç·)ךµŒ´,{c™SªŠPe & `=¯IŸÔÒNüßÄ á}Àyß3;N0Âßî†ë2ße®f¸¶QÀÄ(ª=O$€”º=ÛÌ€¡&ˆ˜Ñ]×*€yq^¼€Æ¥A7Lf¨*2k\°c‚æ,º2 ´fNý&BÆ‘²†š8nlä¾qs!Ì„"—üôÞÞ„œÖö›O[Âkf#ÝA*p„ Ò p³@dQUúeÇØÊ£e®Œ_?eÞGinìÌêÃhyÒ°3¾4˜ú´JbKÔ{RHK™ÀõLä~mhˆìo@϶øEn–Ï_’ÔÒQ»Baû4aͼåÀ´ú&«<‰LUMR¦—Ë£Q¤'´+L¹ÛŠÌóS^}Ïôzè?T÷vÆûjžSÑ¢úã`,ö%ëÉ[ù˜,|3½Ž” ö¢Qþ­HiŒe_‚\N[ ƒ-?$fX vÜ¿cÓü²å.J„k~ùèòºr•7´X%å(œá 9X¼(åä½j}7§˜æ&0à/dÁˆ9ÇÙ=]ó‹ô™Õ‚CGbL/Þ Oo¬¶‘7­ SƒãÂ鲿ú]Í.ÒbV;º-cö¾@·_6,©:¯}¼ì%ßë[ºçI+On— î¾Èy{Ÿût. ]8:Û3Ñ.Ãý ƒQwvä’™%[¹áì‡Þtl¤tðGNù(â°C…K‘±‚ÔVWÊØ¾ðÅåLìS¾bzß(dG7'AK1ƒ)ïqTÐWEß„ ( uÑoìßX¸<úŽøÐ¹Y˜ÍïQ.—ë%w@G¼—ã%Xÿ ¸Ý¶Ó¼Kýæ#P=ò¿5ŽY%èTî#$p€K¥a;rEß§°ý®ºoZ•ÞMä!*OùœWÖx°²øO<$Eq°u›ÍóסŒ ®ò”1°³Xf—ŽŸdê/“ˆNõÍŒéïz]lÖ™=-8-•eæ[‘"G—‹ËÑ«6Ë—>:HawpÌ|†÷(V»÷(vîÖÿk¦®P ì ¶{@\  /"»EùÇ@Š!·àkÞM M5çéÞó\çAë¡>Ø©†ãëoJÇÙ/ÚbØ8€äGï[¼œdRÄYÛÚ¹«ƒó£€ÞR¬)®œ˜rÒ‰žW!Å¥dÍ{þÍ»œM6²v/^0;¯ûk‘nOZƤÊ«¯KðO ¶w‹Â\:Øs2[(‹±ùxÕœ­[ãKE“—PèÒrÈñÈZhØa–j:ZB[p:h~‚YÎûÊNm@»Ìq0вVLlhD‹$"Em'bÛÅrUe0*Õ’Šøàg5¬7E bY8¶æ -ÅSÇT ùþþ Ç{rÖz”Üe9™äAñB 9*¶”¬Â#3Ò÷.“, ®ü•61Ë‚X· Î>á;aÃEð–ÝmOâF¦”êÚx6äÆï’Ü.Ùº!ì>÷GoŠ=@Ej©ÿìkFRjëËYíüÛ“NfÀ׎.͈pš[sÇ:&õŸ•[æ¾îrö¾s¡M€¶Ù‰Ü®ÅÉ„4ÓûêóÚñÞ9â ¦ßÈlV—G™Ù? _”>û™ŸUeb9ÙxèïBÜc ¼„ÇïþèH3r¡Ýs\Äæ Ñf鶦ôfÒfû¢¦EËzçïÑžF:ô®–ÞÊÃÚs•{cO¾Fh”ÖËßÔÒæôëÓ?u\,ãÇ/Å-mþØÐ‘xóç öyúÔšcAï¿®¯ ·ÿ[1ß»GZð%”vš>…h@È1ãÅnDuë!Ľ"NЕø¢IgDIO•ÿÞÙÖ¨ÇR©]-Fuņ‚ÚÑ÷ùSÙ·: ípÜÓ?b„Øx…"éx$'׸=7æÏ·ç—@wPÅËïÏn©óßr•ŸMÀeƒ·5}°dô“.\v¥òù¥™òGÐDžÇÂ&‚6jÓ):ü'å(f®ÙFOW%ÈK¹¾ÙE<3ŸzóXVŸÈ4œç׿éù£*q¸@è &ÑÊ'š³q©SxÙ2ê¬'ƨ|<Ñ)Ü òWY³1É :Á-ÙeD~Yö6­­ößÖ±¹‚h¤gtr®ã¶MΠ߇#.qðH£( §Œ­Eßm-þ\¨“¯fŸðô‚ z×òe€h(â峯¯°MpLÐÞñÑŒh |aÉvÙü üÄâ,Él-+òT´Þå6+LYË~;M·IBJìüƒ-²x¢EàÐ%ã)ŸÞV*ôZ)›¬ öšs-#r&XZò OÖˆ_î†ûMAú‰>ßRõìÖá'V?…XN×``»Û[«²Ú:ZÅ“>ž@©õç]üoÕº|~³OF@êÈY8‰Ú = nËB/¡UòzøÎ9¹ {²Úm6[«Ø„(R bëñ±‰oÜM'(ð= 88Š=æSûIM|ëϳ!ª xý/‘FAa€؈£rÓïÏ÷}†‘~}5gþdóJ<Æx@%°ý2^ž\Ñ–Û5ic}€ÏÇ^9K3pî¦9q®tJ}AV„Á«Æñ~«E¶ßs:ácVTñ 2\FÐØ%ë/|È [Ä—av'P€V` ùöþúµf^3ì¦?¥Ç¹ö®SàV(.ôýtæÄÍ€G‹‚Ä¡_Ñ¢«Dù âjiç·—æB!D[pÖß~Ñá åÁ‰½bét¥§g„`íšÃïë&4UQ-(g>Úå!Fv-.~i½Ÿd-& ›:bY¥>ïÕräÎ h9¼ÆÜi1îDˆtK¢SEë°OV„F¥¹t…U^Y´G3>j…ãK^Üè:ôŒit Gï@œ%JvûÉ3Ù­îñvNAv-bØ*o•‘Bž–è06‘ºJa ä… ø­¿íþo×)n=Nb»ëþœ¦ïž6òȆ€–ܯYô¥¦îµÙ) ¾`¬qÏ1£ÕãzyzX…×"+ÇŒÉrŸVn(‡§óf¼Q¸XK˜tÁËTƒ©¸Ä!‚]}žWǯQòÌ—½{ï˜ Öþb(®".‹þ0ãOOÇÞ‡±SÙFQ]º)°^-Xú¹„9z5Èé[­—>“vÚ>t‹jç\>D´­µu§öѺ£Ýió…Ï0`¦•ð£%„ÅL¦g_ó ‡UäÝ{—é¹€sb«§Oú–r£ýJ:Ûö$5ÄŒ¢JuI$1C7*7–ˆÁSKT««XT ù\Äš¡_!Æ3¤·¯Ô˜)“LÒViNì@Ûšß÷‡död7½QI™M‡ …„ŸFe¯+«Ïš2ã‚Îä˜ -,]‹Ü}nlj‘)ñYôïxX#Ã_5‘ßùs|<å«‘å„ïã "NŒD¯þç‰Q5ÛįH´ ›Æ±GêN•ÚP”Eꟹ¹BW7Ú${ƒXènÌËøB„=InE¥¹¹`¨—c¡B\j:9éDRŒ´„-ÌÑI\øëOõ»ØX»ñ=UØn$hÏp‹o·ËG\Т ’¶CÉ7¡FÃG"ñzµZ$ =OqdÅ?•à˜ûVL sc×4>†6i„Û•¸Ée`ȶLÞ"¼”¦·æÎÆ”)ˆÖ\‚¸é£}1ÐÐmYëÁàw6XÉë„Ä)kmÄûáY”ȲÝg÷”ÉÀH R,:ŸÄ—-zE…Jz@AöîíA¥¯2=’ ¸>Ý·î eœŠ!b˜ zNv@wèõÿê\T%â19딨쒇d‰(aä<úçÍi+ÝÏÕ`¨TÕZ5Á•hLBƒÛ2Õ ÕâtÜSi÷Y Fæ¡BDåL¸2_®Hì瞀@yOxÂýȬÔT%/Èp¸Wß!ÞÛŸÏpÙ!u;S–š8ÓÍ^;GVI„á\¯H%tÍIï›DjMQœ&p ¦]±OhŒ÷S̉ :@Ǽèá&M™'Ðý´žÃüÒ}8Çt-´Äóú9Ÿ ç‘/`éÑç9zMµ…èTTPqq¦ÃîÌÌwøCLì|’á|+\E”÷Nu~9jÏÇQ–AZë¿çAÃ!cLž|!-ë¡(;–  Ž‹]ôJI§sþ(› ’HLÅÇrVD7†‹öÑÿ@„eq¨øm2—iY`³. !œ1ßw$xÖì_kÆX‘¡þkY°Ò.{®Yóú\°æTâHÁ0ž ôg-É4\§ám㇨8gn[Y/»•£žX¥H®¿…¼UPÜjCþU q±ƒ,ÔïB5õ"ä¸*ðG…á³[zZqe?ßñ÷)^KýòÝèéÌa N¦àøÒ;›û&FÂ=WêØ©üü¯YÙ?®w ئ—*„¸ðíj¸Ú°%WêsÉ,Û-HBÄôojÙùT_€$F¡«4ã:_ëª  ‰«è®í òKe”ïvñnqËÏhÉ ½¨a[’剸HÚŽÕéý2PËÓC‹‘&±!µ{ÓûÛ¶ˆ:â: $%ùC’~F«÷“ðâ±)»`ÔªŠ…ü¶îD©”ž7ì&èà^óÜ9ÔøiNÛ°»Ý䣡³00FàæJ®°¹O½}Ñ% 8,{BÔÔIÃ;[ϳz!®ãXSïiäIAUuÚáˆ+6¾ÇZO½ð>þt»‡Â?×±ÃnÚ4Œüje¢ò½·ÛÕPÕ¾ûq>Dt©¶«ã1{>½Oë P¤r*\LL4}îÌšŸê‘-^ѵ~t©í¾ZdƒÀ­ª$þßn d¯åtúY²¯·F2i1ÂeÌÏYõÖçO­z²å<˜¬lëuêàŽ@—⛓cÊ©Êj >fFvv˜Î¼³¡[RµòÔGóÔ)$S jDˆšq¢;ÝË#j÷¡£ÒôTƬ0eýA‹Li©©¦]¹´ç‚‚Œª–•ò2߸ɃA‰!ÛKn36ÿ@£PÜ9±¼¡1¾þ®Êb—o'û€:6!ØBBø?ï8ê ýokÅw€ÃUPÀP\ý{‚+qqƒÅãUÂ÷Èäh'ޤ°nù+!H9çàµ}«\Yªð+b¤zN”îÅ´ßnÁßþPP}…¡’+SÝö;P0FÌÊ.c0[25+g ™ÿ²ÈÕŸJ>,Ê9ËW¨¬³ÂŽC5þT;®åÚbÎËéÿõ ÷mƒ@:*ÎcΑÇÚq«å챞7oyFÅ‹hq1ãÄSûÿ‰‹`4MÛ­•ÏX,]•=ëÜ€.ÛÇ”º•ù4‹ãáÅï@NHQ2¬ºm/oÛÂbYFægŠý1,;3Ó!®Y¯5ñmé®ÀHÞ.ë¨*‘^Ñ?b ü}Ø5Š”uHÇïznÕž4Ó&c Kõ®¾ró>þ7Ø3žöZ`é;pÂrÌøŸy£÷§ùèA“n'6«¦ÄºÍjîãdÇ—Å^ï3ä¤H‰Úz=¤Ì2ÀˆÖåtÓ™9·’Ï[E¿éc pqbÛ±Tá t^ˆ‹[7Œ{ì§èüÉÄZ:,¶¾±t:/Ã!òLÇÓˆîkUŠ~x—xVB^@º¡Á‹+´®o›Doðn),‰ —eäWóÌÈn§°¬Á)H©Áƒ6\ƒ2ÈÊåžbMùÈÆ©TLväCëK¸ˆ‚j Ô7¡ø”½!‹‹×‘œ˜Y=Ä×e ‡ÛŽã—MBÙœ^‰U ·öÂiŽ‹Š+ bVçÌéô 7o$CüÏŽ«ð<¾‰ûmœ0Ö$jƒ"Ô;¿6kΑŠíj¥ú¨jN{(•ˆð/–(ÔŸ)åäúlx¨ÙþÙ0òu!ŸéÀ§ï0Ÿžãû@a.Î=—‘Y2Bv½ð6íàêø‚¶ð¦Ä-"°ƒÓì]r9œ«Q <1J׿Ÿ*ËRç]\v=`9L·ŸRQãÎ6åikÒÅ‹ì®Uh—· Ä·N³‚ wÿ_,™Ž¶ä#¡€µc¦-~ 2^ á}ž˜’ÉMÒŒÐ{Þ”ÕŽ J l’ŽÇ‰ªƒÆ0«Ä¹b™+zÃ^îvtA`D¬/BW å›VAx1î023%äèÃ2òÔƒ" ]îÝ¡1—‡Ê vˆnvßEõ=|D0¶;:â”î½,mKõÍA>†î‘eC}Îü’íô{5ÆP¦¨8_²^/kÒéß"±˜0`ÞJ¨K³ê«èj©h ~©²ínS@po"ý$2Oèz·ûÀ}µqæs"Þ˜¥¨$[ÙÁµ² ²E¢ø‡Tc-º›tV®¹}Xÿì…¡˜$o„`’ªÃu|=°¬o–ìîS™«¼°¿]ìÞŸžÒîXÔÇâ:4k »&Ëm~¾ç  ÇH;Žy"ž¤ÈBå^‹d!Ã%)ft W„¯k -ðÕDŠ€fry,¡ '—7øÐ&,#êÇkZ= íƒÛER>š=ó© k–ŠBµ " ®ŒÇ€:'âþcÈ|9eká^ Ë=ó£zÜrÇ5Qáq(i³åy`Ü`Ô^/£w‚_jŸœ[e1;¾»n°[*jDðÕêˆóŒÓÛ÷²Äí¦¶W)#Ãb+߸ˆ&è„5ñr]ì&Ž9·§ mæã^Z¦Û{ vŠn²æm¤Š›-äÀ£™³ ô+zòÒrR*§c :}ãxÂ`˜òRƒ)Ëš€P‰MÏ«ÛÜ®©öÜÈI!rVà3>»lS®„ÑÅÌ; Ç¤¾8Çi·Æ½É"ùTÌÂë:¼¸w9VqîE %Ϩ1O½ Þðô¸n e˜ºñ Œñ,(Màìè£&Ât2©+ôâZ€Ž ƆàÚ˜×ÈâåjSðý}ÇÁC£±tåbù¤f0ÇA¾iÈv ®€óHsûóØÚÌÈŽ£Î(ÊÄêHâ óÁ/·tèD2€7ý·Qº¸Ô¬Ö§S~c˜Ûej.an ÖWtq Xwµ]Ãr…„O °¯»çÚ7[ŽÞP ¬€Ò1îȃé1–f—lOóè>‚¬Ãè=\ý1V#’wÔèCð‰Ú©Q4þ  6ܵæ·ÎíÑ20–’-;N ø½_lß÷Õ®•‚Ž /ÄlfMàœñÙ ?2Y×e•³:‘ 7‹Žî}TW?~÷¶Cé ”üüRå¿'u1{m[ð’ÃèEXJžOð´ü‘;í¾u²wñÊ_ë ó>’Ç­òApò"GN|Äp¼1íÊÃñ_ůœÔ}v@k1ãf`B–y¶á/æØOÿöF˜OMšÍ%e­ïeáD£âĭŸnõl€ùAæ@6ºH÷Hâ6 MT‹!ëp´š­iµÇhŠKž÷Ï|â!ý‘æÎo¯&¦~{8ñ< ¡iËÖ¹¢ܨff }õ+@9g_!dF½Áñ9;©§¨cg˜¡ñ0“‹Ç>æ¢ð wЉžPæ] Ykûú—`x­‡…ˆ;ݶLÙ! ¦aØWæJÞ~´ Ä;T €çÂè¹î“à×o;¿Ÿ:Z¦¸µî¿=×l{=yt{›R} t¥/’Gbº,P»âfWRUyÂÐtö¨åPh:ÌØå^…dxׄVñk·°aÆŸ“Ê^Þ”,jBr5úήed$EžìFFÐÍh°kŠ  x˜$Hp3N_GéxáTÞ šÇf·lg²Ìíì“ç'DX}ëÈÿëâ“Sëßö±-bÄñ¿^éÌü(KE](#”—(¸$ïp¤yPƒF*k?ïXÅÜ—žÏ®4 Þ÷G[-Ú1PɧßÌe±¸‘ºè·ªÎã,¶¾œoÚwíŸ<ô§czþK¶ì¼i˜ÀÉMtR¾[ûdËð4™ ÌroBêñ€{õf‡ßbÖ5n8دÃd²PLÈ#¿`–1\Ëarí(JÄ&¦Ô S¿]ÂI.ý$`”‘è€xÉhnzëæ¸ rm»Ùäm—mqªHÆêË÷ÄBl”÷8Z4$:}ï•XsxkUÔÇdàG«=5Î3×ióùÝ&ÏkD­<%~Ôj¡iNûÑ5•Ã.i¿:ƒbÔþï&*.Ý]‚ ó‚Ô2…×FBYµC¶†ðÃ`uȶOÜôE(cÅçÓ¶²dÓÕ‚5|ô!ÓËcsrÒÆ–¥åÕ¼­‘§YÓkÏv<óòÂg6tàMç8T¡B†Æö=ßïºöÖÌ ÐJÿF“î`€^(94ΰmdg¿t>Ô}ý“Þ¯ÐYÓ硱v-J1({ª)‰~È5>ší™+™¤†Õ¹´SŽ…|üeIW‹,êm ¥Åw‹XëµvúMe~ÍÑ ì’X*x7H¾:šB¢˜j¬¹U7x¢,žkZ)òW§£ ~¬p²r0^v&âˆèv ×Áf‡é7Š¢÷*¸¸/ ¡è$ž«V£/ž;œâà†» š.$ p¶ò,ðø)³ýê¸c+¦ ¾ñãÎqô%^WKš‚0©,ÒåÉF„©XuÙdžã²,Æ3> 5ÛÀйk.±Ã‘$yÙ/$S·¶=Ô²}g  T·EE,5àm2N?óë–"«·d¸Ñýá­ŸÊÇÏ"¸>u½.,#¡Ç``+ ùm•æF’ý-¨À®7B[…¦]Üd]¬ ¸%H-™p›¬m+ò³|=–Í©SÅj©—j%=ËK! *ƒEHþ*¼×"†—kÊ”ì:ÍX9ËæB}NÑK›žÇ¨7´$êÐ~û—,ÿåˆr? ´gËòQnO }Uªë4¦­ØÚ¼kU¿HIôëQWRâ=øñ’(Û$\mó7â»°=ú»ø€)3C-ÝyyˆóK®K¨’Î'?{Q¬É¹¬.–·‡+«dsïq JÏ~¦özÿ{Ó³ÔÓÒ—ZÙ…¸;àqSJéù)±ŽŠÃÓë­öY\áH{~HN‡íí7z/FZ¢inÈì¨K䞎¶JÜî X¬ %Cò€Y¯KãçÅàdµ'Aö7¢[ÈÛ]X]jLÈ*ˆ¹Bë¿;ÎUïð£ëV2 iä²äE_r¢{Ä&2|VU¹[Ä(ä§ö*@ד_ÉÅ›[Ä+ÛËpXô²‹,ß~ AÔaÀ½rŠŸ+ˆ-vY öÀ\qÖåÂEkÁl.$d(Ö/B¿§ g{vy³ÓÌ›õR r1 lݸ­A݃dU;'ç8[]ÍXšÉüŸdݧˆÇÓk:‰ÝK¤y½NSG©C!›•æc8‡Ý±°4¥›L4šÉC«Üáèjo€0dÈæç¥Å׬,§¹ºKÊÄä,:O—“_!åªÀ;ìx7–¹ñyÇV¦&S‚Á#OÑ|kÎ’roÕ(£œ43_3:•P¤4]‡Ü±Ä3ða¤W¨R@ªªù¶E—?-”˜Òöø£ß›X^À$ò¾ÛîÔ=NÃ¥Dä8‚3qCriÞ-.}œ0Ÿ$¿¬Wb‡c‹jÊ®ÌÛ$aeóÎ5éåþÁÚRÌÉú£6Rö£ãÛª{Ì]ÆM­û'WyDWß‘w9Ho†@Ú|R‘Ðnü¸ŒÅwV€8Ç<=d] oyAk¶ûß—C€ô–¥¸èЊ *BS?€äLzíH1”ð‡ñ® Ž8_uRBíLçì ¢m8)õ[qW’q<›d¸ðË™j`ýƒÑv\4즽‚ª–Y ñ:fJÆ;ÔÅvm‰\ËËxºÎŸ»¶0 ü!A79TÌ"{¶cHk°ÈXÀ ³°ÒÐ3þbè^swRÉH¢}†¤¹è¡À§0 `éí«ô¯lʱ `d^E`ª)@\]ùѽcåÀë Ö鎓0küÍL" ÅsxàŒmõöݦ¾h£*ì#~ÓÐw³¤s¸ˆ'›xS([Ùzä IÁ^f¢þ7)Óö3¬òÙÝxHfç墒 0È8Å$¿'ýr¯m^ÀãØõÿÓ%îùœ¿·г=c§ÏÁ$°mFß31y™L÷øÑæk+>µùÀ¿Ú <€o÷ ²³=B%á¬Ô ¹ÉN­`®.¼Û5€}ÕLNYÒ÷ë’a‚W”qÂïv{¦úrºº÷@ó«Ø€^oz±Ô[á–[ÆÒpÜP å¢í](áøÒJ·Êá÷_VƒTBf‰ÎÕØ²§’š.Qíµ…{0W^º_é¯8ë#ýˆ]Ïš€v±6“©ð<ùXn9ËÅFžá‚PV}pû]ßð츸GmJe}—µo )6úYœEÁ!Œ—f„N 6ú_`±ÌŠ/=„Ôд«4«Ÿê¿Ai®ƒËâmÃ~1%]36ÿBíwG¦ÆCÿÙÍ«1O{ÇE<[ÒVÂŽž„î#h'°äItQ”ClqæIQ¼BЙ¬Æ©ô~³µ¥˜EB¼ê¹Ë ›W.k9èÐ. ÐáWF¥¥ÂÔ£?"Vìó '«97U á‡vçþ³ØŒzºƒ³ûøÛ8Ü^=’Åw€¢¥egk«Gð·b!<–^q ‰Ï7-»*7¥7“Õ¯¿Zðh˦‰;!A}LÿBÝ®Me̓ÆÅÍ|†‚c3¢ †Z#´–†FÅsÙþ\S=!¶Ø6Yx!ôoÛ".yœ n³WDçÀ6áÇΩ=ÁDY)S#Òí¿‰÷˜¯Þ“NM¤$¯ZÑåwâé¼ -»ãÅ_~k¦¸=í,Ìbþò¸L:‡ó,[‘‘r¦!Jl")n˜:¾Ï4m%õÞ¡äCÚôÉãðÄm¡EÆ%]ȧ8\'2Dc“GJ¿@ù%1ûãM?²¿sùüèì+_œ¾~'¦΄ã®'š€½©{yø*hrôbƒ{d&™ÜP!=Ę„þ…‚Ÿ¤­,Ë© ê”÷@†Q7`5[á.¼kG•«s¨ä„§ç0*“á¿§æUüïÃ9oRÙÊ.ôª€¾ÈÂÑZ~ƒiOÈ`|xJ¾”ºÔsÉßqkkZŠ‹(E‘ˆÄJ#¸Q0К+CKU‚ÑÁµœ63âd¿kèpìæë:·Ñó(/š(p^S1Î4»‹E1òh3àõ»é!ê2RM®÷ Gû‰ŸÌšÎ´6:IÔùÞ‚©Ü„\.Ã͸häÓ[Ë ’ÁÕ˜þ1+K<œ’_S­È‡m?š™TòvX"³¢y:¢@û'oËaŽ~éí Ú(nJ€§ãŒ51$í¥¢/›4¢$Fç°s,1Å™Y§zé¡ò„xºlî·_¹<¸xm…gdÕ`lLœþGd`ÐÆ3§ÚhDÐâú®úµ ™_,‡Ý#½¹/o¢ت­CÈsßbP-‡{‡|ÁTTgS‡{dœCŒœÐ„’à¦v¿ðŠýú >-íxÊà°XoùÅ»¯$­1ÓZÔ#„Qº4K˜ºŸ§ß|Û—í êž†õèXc·$‰ ÏJiPóŸ‚dã³  1£@Ïiz~Ž3½‚ò_nNmÚѱ.鉣&ü…Šò÷BéC†-dÀ¸)®ºçÎ9=¼a ØÃ¤¼yõäU×6UÐ=äý_Al™›ÈãOŒƒz^W2ˆ³5qð-Ç‹]Õíþ yñÚNÃ_ÃOƒíˆ‚*š…»£lRWSj3¤(ëæJÅÕ=&-ÇCS„i°Ý1»±¶÷ϾcXu]̱8eÝ`l« ÊÄ(7<ÐNŽ«EC›¶oˆúÙ3êÂóñeŽÉ ÒÏm Ô©É ïŸüî|Ñ^íÈî´T›†@’­ÎÒ‰ua´Œ M«šæWeúí6ÓS> Ð\ó—*Ê"çø—©8»ê@¨^eÖ‰ï²vi>xJÜÂËŸ£ß¤}Vq#Ømîòvm½Z+3@VõÙe*0J)-±=¬ˆ»“ìý ôÊÞ÷›ÔÒò4) 4Їç%¨ ‹Pøœ2faÑ×–Ù\3Óú PÌâÝr&çaÉ–«tg”›À¶ÏN¡ ¦yµÐ€£ŽúµMãǺêk‡ªÁÐÀÃèHËÅ-Œ)ìG®–ýc*uúä]•:—±Aì ûç:.+3â(|³Áé™4{qžB­OJEx·0 a;³ÅaZˆ@8„oð*:ScäñÊ<‡èÀäšÓ& Aü­uq~õÕ]éø]>§Á®Æ°möª_S-àzpÁv¦ÇœúÔ³]pm‚­²a‰óåäIy5Æ›DS×J'€Kd»Ið¹Y˜,¡˜c>N‡|ú«—(\6: xØê£¯|ùBêü˜$鿚ÙÖÛÇÃo6€‰í]Íù_+,ƒ”H¦¯­hnÑÊè¯W¯Šzè&¨­ƒûér>1‚j¡óÝ%êú|´™e 6!5kËýëêÕ¦ôÓTÞÊߢLù"möU+yе%1ìfªò‚78ß´ë²î]BÇDg‘G§|ï{,‹; ¾EÉ0ë»Iý¢Pè/ ?äîþïëçä·5‰H5(š`Ðç-tØlöûÁS°¨O}°äزEùØkȲÈZëãlÊÍ3ò~x”IDèpMhumf9#¬×18C‚rÖõ³X»¶·qXm‚¥ñ»Æ­ÄÖå˜\¬òqñŸÝúN]Õ EÜ/k—8ÚLB”^§vݱ¥?ÑÆ@™Þg†…5Yk””“õpÄl‹Ä()¤ü˜8ϱ^ëEEÏÀ¯SÚC.!mv¸ˆ­P×㠬â9ÞXdaùÚJŸŠLæn[r$¦”“èc“sŒÈz`p" &×ò\½ËE£+Ô9¸ÂHI£ÏÓu/äÙr r,Ø7Á@ï-¬69®–ÖÐS€ÒÐj3c/1¸?µê Ò4 ö‰uŠY±v$4*ªÑK¹ÝG¦F²Ãì,;;UòÅö•„©'ÝüÝÖ8ÛØü™<¸ŽaÞC[Ó¼qÜñ)½‰èZ·ç^E+Zéÿ‹]•_fâ,pª=\Šþ€ÏµSÇ×&âüùWä%÷ üÀÍߘð$s¢O$=RÂÀ°ÿïyK§*ù$ ý{y‚Vµ£µ¦Ѱ׳DU¢ôÇ¿E¬lt¢°C8O ŽK0e@Ë•g ;ž l³©êÉohCžìF†—¸d­bÎ êjá²Ü›­[rÒ,Õ :~çdR-0Ë^fïýý›^øc¾Ï‹LòÀÕº@Òð¦›ã„u Ž×ÂöÈ1¥‡Á¹3-ö@EáE_Íc ¥:‰Ks™ uûÛï?i?6>É ŽÝ'tܰ†_ý»·¢º™X¯éªÍs°6F4]$#îF^?«Û[–ÞÃÄæ>»€Ía.…üܵ‘UY¼Ÿ`€q/$˜,bT¡ª”|W´è—“Ð™Š½Ëº³†GÔVO¶Úª¼ðGkŒ5@ãßäŠÑú6„ÿ\“^@§3ä¿%¶r/éö/–èÑyÏÅêKÏã2 é=´ûaÜï6€›ËÂw¬]ì—..ÉCÊzrØ8à¶sÃÛœª¹†=X’ci Ç‚ùHV–ÕlŽFIyQF.¼i=v`›¿DÁ­-¹‚þ%~f ó…ÿÞxô? D£ñV™Ò!J—#6Örã€Òk@s"ðË{àF=­[× g‰ûòDZ¤õI8–XÁŽ•aoÓ„ *0GÌ”×iŸÃ4çïDU=y®Ò¬}v?9S&‹ŽLJš^l Cw'.5´;±F,UQS'ù%Ї¤!«ï1Ð2I’­ô+“õ¾Õå™#dˆ „MHk±þãÀ#GCú;3ÏUB„ø?Xo;“Sèƒ}ZäRÒGÒ.¡óýF¿óÈ"Áù·à¡tC£àd'.t<» ¯¨Ïò¨ ;FÍgÏiµÑàæô:8D§‡ ­-ó¥ò~bjÔáÅ Kóû¢þ…Ë€Iq ×è6)k?HœMx¤’r^ý=WTH@¿Ã¥«íۻ룔ô%âÒð]bzÝ8—ɶÌÏåì´jÑnˆ½O@˜¿šKYzC‚9ÑF¤‹Zÿ¿•”b7F#ðh;ûÆjdÓyøÁ·”¸°þœ‡yTG“äÂz"ÃìŸg5î0~.®¢Wˆ.žœÊzÑ”ŠÈÌU@ðö°DÆÍÝ<]àËæ‘;' ÙˆœÌïí6ÔáLuJ皊åð"ØŒ‚pzy¿¶ëqg{ß‘ép£ Þ5øóõÿé†á‹žn¼)Í2_÷ øj–V+$½L±=õ/ãX„‡kž í¼ët}:÷ÍRà‡á§›Ë#ÄŠˆ6‹& zŒ‰ïd´Ê^Ö ·Žºxæ\Ц•zlHýÅà+ºh.MŽj±œÿ¯Òed´î´VÒ°²Æ }#ö¥Îjá®ÚˆFñÃú‰!›ƒ/Sp&@ôX•w"E$L>†Tÿ$8½ï©Ön¿–|WÁƒ.™Cñ,9ìÍÀ4¼7ûGsÀYøaí7ÞoaD¦;Û”¹†ñwÚêý¿¬é¦“½oCY¿!pÿ†ñ{b1˜Tk(ÊfÔ®bq@LµîJ‡éwœÍͳ¶ff¼Ì6ó£­\5욺Š.Jï›ÇÇ1cm>8kbuSÓV \× 8Ãж+uë}7Ó£¬¶P—ª$ngR3Ú áü,Rv² âÉ Ž“WA1m­dŽ44²S HozâˆîNí6„6—³lÖŽˆk{^ÎÙžáÈ”3¿æëe¯ÿÊ[,.n–dEíšÚ´½l±`m*yhft7ퟮIuì@Ð¡ß ï€„ ‹ RŒªs„\Âs CÐhfÆ}©Ã Ôרô›BêXwX’x꡹<þm²eÔãó##7vñ8À a½`iÏhcº9ë ±;âqÑ~#š½z|/N€/ߟé2s¤wÛ?WI¢üp•Œš[n‚[%¤Ë€M]` wÜóB '‡z;EMÀцˆ½éáÕësÜ&¡Sß”zù“$M‘E¾ßÇðÝÕÓŠs(n¢¤‚F±7Š‚hkDBgUKÞÕšU{þ7ZÌÍ€WW¹óÖ¯3H»|(6›i,®3§–­ úL‰gm† ñ¬Æ°ã8j×~M&’p´ÞÎyþúœ‘¥ïîfý(°Üû™£-›ü“o€g‡w§¹ ‡¢€‰µ¦6 ¥M®•ÏcØ‚À†ö”üe¢5íå°:Mh÷ØCŒôÎÛ1ˆÈþïƈZËxö´œM'ýÒ¢xà O`ï .ü+àˆ#l½ŠM(j³Â¬h5**°"MÚ€³EÆNŒÍ(Ú3UBÑÖ/e°Ru–q¾÷Š[Ô‡”!–,½ÿ¨]/D÷|ù ˆJÞvdÓÝéæüй²ÕTïQÓ·aF‡ƒt⮆ø™CekûAä(.Í›9r,Q3F羨0»óÏŒßB4_û%>*—_¦OE™¡êëhçYQeÅà^+ñ:g¡µäÒz$WRè2>Ó¿k%7 öî“*½œØÞÖË ¢i¨Ùïa2 ó>=Çxö¬"oÍ¡SÏo#^ÛžI-ƒ£j•8ñ8ðt.%104•™á:#6ƪAwd˜S~}sœ‚õ"~ã>’žÀ`wy£›Jæl“øKÆá~9ìOJ‘gBŒgÚ¼‚¿óÛ­Ž+HÀ{SÕ•º¥ãg~8ÞªDs œ€ÌˆÕEG¾ólëôEêÂ*FÉ*ÓÈÇr´µ²R]V/6»eÚ—í)|[ ™Á±Š.ž þ 2òŽg¤µ6ÏÉ,¯-JÕ@Gë…¹ÈSˆž—HZw†½Õç?ÓÏ¡Pf† éw ÍÒÆןú{ÈÞA´ghraã¸û¡õèèE†áïÙ1Þ¤§’Þn^o#–†ð7Ù‹÷)öù1ŒQ7ý7 …-)Š˜Û5ì †âA46¾ž¡QYië}+gE)´.o4й'?~WÄÙĨ0‹Ô‘DtÒÓÖWçÃï{“d¨º-³¿Šïí–}@ØÔ»I'P:.¡‘¦j¢«ž¢‹0‡-W¨}¥8 õVæ7ZQK ;p°óâ-ƒc—;hI:À>ì@)g:¾ÐæïÃÍ+HKeN2VÐêµÇr·,!¡üôõV§JãÜ(Œ‹ .ȶ¦¤Ü“ Óìî'`Ž[$Îrx‚źhœÅÑåãíꌴ^¼Úç G‡–$.¹Óâbm,çƒ2ï²R Ôo¦ò³ãïLc“ £J¾þC훟ùŠ{.Ÿž qWn*q¡ItÒ¢õeK‹2ƒe»ô&µÎ}GšÇ™£:JRò ¹†é¿•kxpðr¯eý™‚eyN~Ð·å Ÿ Œðb‘h©¥ñ•üû>P­–2‡›¤Lí„©+¢ Ñ!=<~rYaË‘°ª²®·ûD"›V¬ç‹¤ö?ÇPÞѹ¾å¯+Ž‚ ~´% ÂÏ)D×{—ŽzX0›ã-°O´”Ø£Îç.he÷CYB'3핞d‹ÍÆ‘ä„Ñ™ÎÛgíóXä3÷èj<%ô‚ÏͪzS¿ÈÁ¿/ñH¼ßŽ!ütgý$ឦ•„• êíެtßËv%oŽÆŒ~£÷ßI.ŠEg¡ÓG/€9zœ·m`¹uN!Pc?1sbôax"wGa:B32­0$hmÿ$- Ûðƒt³©ë7»‘!9*vÈÂÔ¾é“Ý/ž/ä§Láy›ÅÛZíÌXüÕ®Öy!R˜¡°úU4PÜÇÍ_Ÿ©iŒm}~¸‹‡/YÙÉ7öšœ~ÃXMÓOì§Á)fñmÅ/ÿún³SðŸì„ VnЈj—P’_{Áx¯s ‰ [?'çÝIhE øåÔ7¶òGɈa•…BTDTÏ{”›a_‹¬(šÐ—b¡0¶|úq<úŠö,òÐí¢{šN\0Ú´Ä÷Ì+úÞ¾¸,þ17'«h–УJýPÃÀ¥e­IH*P5¼ÍImÏqþD¹¸€ƒ‚Z'n‹Ó]!Jo(]\G8éBÊläX’N§8$ctú˜ikúd¢Ÿk2ÕíD–ö*cÇ?Ñ)9L™áqÃý™ð¦Ô”NT†œÿÒÓØù¸v¶Nç|Ö§,i ½•îƒOº›‡dQjƦ8™Å½†KoÂ>œÚ{ƱÑÙ*/µ;šê­ú‡ZÑ!Xõý™_ „#H |RZBxÎØ%àIÓ)_«í¯<åS¸{aQjÑ"î¹Îa>²¶&Í]!èÛ%ùùÆ3Õê‹îCÃRWn¢^'¯ ó±‹/ *C‡Žý 06sÆc)`¢SËZSE·à5OAîÜçS¡¬ pnkMŠF¢Ðæ )jóÝKaæ_uÀØ1ÿ-ëÉ%(]¸oø¿‚M^T›éhSN—û7$>¹|¯qb”øÚV–çÕcò€Ýsô£OðEî„tÔ»[Ò©@L¾ÖBÇr•„Ûãy;.Ý1މ^³]'nÐ!Nc}BÒQD•vɼ¸s(>lÝÓ»Y¿wšÏÏš_1êÒèBÆ^Œ#¾ÙƒM² b®l¹ü!°TöÇ¿u&¯’ƒ³+u¾/˜®*F»þþL׫ÙhBq@²¾™³éÁó|˜ülq ˜Þ¬”Ћ•R1Ê5¯cËc;G Õô”•6Ξ˜ê¿èÎÐ 0EA‡‚•uÑmù[(ª‰™iˆWie¬|ÇÊÅž6Q^QZ,Ò¾×Ý%– ¨ìoÄ®cú#îé¤9ãþ"ìÓRö—É9#Ã2N1q©‹3g%îÏW8±n!}M3\5•4ƒÍÇf€žý´¾Ñÿo ƒkÃxhŒëMùPêy`îP­BÙŽ¯6?B«àÅ×@pS¯Ñ_¤Ï˜}ÍdU’¼…ôÉ÷ìóþ½¨ý[D‰-Èàs S¿L —aÇ®.Ïå7»º°ã%ˆÕ‚y2°AT°pʈPlÃX>мfpÉ LCùaþ}'Å2"W»‡hÿkǹ¬G²í5'¤²W(ÊÝ4z,¯˜âû;bWÒûÏ¥½BòïR,¦oÞ9VÖ:÷µ¶xÒ“ UH¾gcs#5Mkp”:ð 8Ñö‘KœñÁö¯û°ÒDâf.¶Ë¾ž v Ëm°b¬u¨Íí{>2WéNÜ€êÔŠèøâcjöoøô5XIxõ‡l$7@ vì[_V#? ¯‚Q|Šˆ;Álì:Chíá#Ħ>rlo0ƒEÍõÓÌ1.½P¦ïú`s^“ûœÇ~AV§ŠÂgôLºó?¬›ÀÌœK¯¼n~P:ÊϾð‡¸÷IÓDBÒp¼¬Tðºß6—«Kìq³veÜßn›€ÅÀËׯä鈎JƒìêÕ²Žaj·î ¼±r½å Fe:6y€-`c„{ùjÁš&ˆój{®õ²UÏÿãk'Xæ? øŠ=àÅgГSè‰ÉÒŽÊýžOÀï½wf\]Áþžý"”I<…øJdí1 ÔZéžÎl¿üqÌzÓ }WÓ"ÒŒèUcøkçøéò¾€°d6Ã¥ViKW1„Ôbû|wþØFE.ϦŒ6¤Ð¹ºé)Dóv»,°×hÅ\ø7Vή] #R±ddºÞ5¡íf¢»xÕckX¶ûÝ<^³iÅ©|ßþKn3ÐLQ# äÊíép&utG4Ÿ^DËDÙôf^ße°#q÷¡]`ƒ"aëœ!^´¬Ý¡ñ«þÞO+Ú§^ˆ»žÜ,LJ÷x qÈtF*.¤à ý¯#N ¢¢ÌÅl™õ>p×Û×hèßs¯úvŽ…D¦qJê6Ñ,3 µZ@ÀŒ„”³5A¶Å\jâ-6£¿!϶)´¿­mBQ¾K'Û«£è‹‚X‚I#K¡»m³®eäZ„q-y]з°=dQîv< gâЋ‹H]ö.`Xí ×Áï!²ýÌ$3ãhàINÑ•NÜ(öëAåí ÇنٱƒòË8w=¼7‡Â¡ø‰­Ãj<:4¹ÿb…a}êuZ ªÄ"ú7 F“^éi_“$Wgååœ4Õåé+jñœI ,9I0 ´˜^ØnZšù]míÆÙ·ŸÓ<{ñæ‘ìËŒò´=Èpñ©ZŸ›UÀ£vPîÐèîæRDˆøRlÀE„¤ɇ‡[‹±ûp7›‘?&mÜím¯1A¤By`5Íû½üTàåC ¨jYóšCÜ1ÉwÕßÊ!›Î@í¸!-õÀnÏÿd]ß÷ª7n]ßS—&ñò2óSS\¤ÌžffŒîHà³Ãé’5,ÊÌYm¤òÍÁØÁl]yÆ[›^†62`YcJlÊ©ß7Jwhˆg!‡# g+ü©îZ§ÖÁúïÔfÙøv %ÐùYI€¹™óÎÛÉ÷ÙÆhº±GŠŽˆI‚ ¿ÄOºÊËÂhÐÛ/¤õ#&§7Xˆyh “+¡6åÕýZx¥ db†»­ÂêÏ}F¤Œ¯ü§:ß°œªÅf¬Z2­Ïs3v±pé©èœ>ŸÙD>iM"²c'wQ×ͧmf‚œ JŒç“½9/IÎãÔ8M∼;k„dœ¬Y35›³k-¨§ßzcvÌ,DÁ³9XðÃN‰ØãÅþJ¯ÜüQF’?ZMÕ2Þ~a÷¤6¸ëh1ô¹æÊmˆ(ð¸ƒy€uf'®LxŽ™‡’-—‹q¾ ʧ Gÿ>™ö¦bå.ˆ #·%¦y¸\[êËÖÞªLHž¡ Qpí¬–¹iˆF@GÖ™fæ@ƒÀ,¤{M=1Áœ…3X*vTëõ6&@Ò`!6¾Ä­ƒÆ¸“{ê3±&x›—áÿ÷7ªfªb[ &´üÿ6´ã¨…±*ÊY‰úÒÚAeÛÑUºÿ R˜ê’tÏrÏwq9z¸'[_8­JšWÞÅöȯ%ÍØ˜ ¦ŽOV/)S.=WSX5 9/˜T*ý|¼×ØC}ðé0ÛתÏs)¹^À1˜¬ãn:xUÔE×½ÊëÝq&âãcœýúÎö7Ë[#Šs4B_ÿ”çÔÉÀQœ!£0F4à…Ä·DÏìíŒùªo2é-ê#§"úc)%ž”ïˆSðùp‹Á£ÝÉÉݵ5•úŒýZrе\¹¬ã{™©c\8œ×G)XK(ƒŠXê‰ö+Ë:µÏù®\;Du2vÞ•\Eƒ@¿>bz»ŽÁ‹N2ã¦O¿]è5æ'E}œBJ¼Ä²àlNÂm]C†ì¬ç)¥5n‹+2B ®IE‚Ê1†ç}›V¢+ÃñîÕ“‘U(çUm¯%Š@iM K¬áRªaJy/ÛÉ$²1ãev§@‘€ï7ºÂ[I®Çr.Újù“T„=²àj % es–YõÚ·Ÿö²ÈÖ6uvSšæ48A๺´Š"2=Ű Døì'Þý¨ÄïÒÿ¸F‡µÖžƒ8PcFÞׯح{üæTͳ_éÓoÄáЩŸŠ’m|ŠDçÙÒë¢ªŽ¶º#Å€v0ÎáüNÁwâVê·;0P¸$­CÝ8ŒSŸ1Í3qµ-Vn®7ºfúö¹“ÐgšÖ ædí˜~‚;¨®~'‰$s<8{;©cÜŸšl¿¥Ý §[0ž{M Í…Ý\ o Ž®lF‰bso€ä†ŽÒÐýS£Àžõ‰DæU=‘t÷ärŒ *Ú¡ ßmèUüëJR¨Ô Ðx$mnÜáâÒcjä<Ÿcsy‘À×ñË“ µžmH»M¬Ì7»÷,>qrã´v²§Èn’Âÿà½G>`võb%p#C•ÓÓVVZÏcõ %ÃÿYˆz.²s©ÒùÈM|ÿ{ïSËpûªù¦>¶ëA[5¼Áî|4ÀA³²h—’R;[%ìÓ4Ó]PnçÃv–MÖM̆3àj! õBt'L›)6Ùï˜ f^† mf¡Må ^<À,ë= å%sá ™Ui׆ùÄÞœQ{B,¹’37)Ì&‹{lì`),¶ï e ‘›Cùþ»z‘]7§¹ù§³:µOMsü]fLˆ¼~F‰'=¡ÈNòpsñAQ¹Â>þöºV¢ãÚC<žFe`ÚÏ<-DiêîTÆÑ_¿~ždÿòÁTïÿ”ŒmÐ[ÃjÇU&Cðñ¡…»¿‡•Sd¿…«[4õô» ½Ò ÞDak|WÁÝÖöÕ¡ï…˜o{Ã)Ê{ à(5àåS mè³TÅ6^1#FÿZP'œka˜ãÁšzœÄöpP¡ZÚlÀyeŽø…ÇV‰#T Ék ý6`ž1¹c¶ÚF÷b-=©t-d»žwÄ.èτŲ"G(ëoÖÎÆ™Ãªs‘f„m®7fpÐÚe…šÆ 7áפ@ôlïáRÒµ0Þº×q»‰¯úµ]À ¹'+"öh·vwÙŽ„æZC²•Nö;ºMÚæI¨½Q D“É?U±†\4”^eo€oëÊý¾d|ùù9ÚvȉZzHOͶý uàã~ºAž¡Âòe]q—+U3Ég5!;–yÔW€S}À©þshÓ`Ïc# Ü,z¹±Ëu§g%:çËo0Œ:«P$XÃ#m¸<­ÙLi€~¦ï1‹ixæû ¯¥XU†¾iÝ”òŠJ­ø¡-pî¬ð€KWIa­y»,ta6[Ký8;ÖÇo´J™Ã ¥‹{¹KNá̳ù"F –Ò½JOÖMÏW1Žqb*.U^Û KÊ¢a·{ª÷3Z6gZ& _†!)|g~!¬ŽÊx„˜ž X$²Wy$ÎUмß5~ôÁñÑÉsôøJ Î:?>ow‡5bõèQ)Nç½81ZÒÀ°ñàÀðbŸ«eFÊ4©+çž(#Ðóù w)ó-§£².Ù"êíj'µÍoùnÙ2ŒîI¢ÚD;ÁkFô[ÍŠÿ Ið†ŽWW‰ã_ÛÐ_W2?³Ñ=‹U0JݰQZ—,æÃ7êÁ+pü&â¿r‡&Ru<‹Q0Ó·Ä8ïØ Š^¼ˆ%Ñ÷”q©»ì’ÿ[kœ‚-/¼ÎÉÀZÉtbâ\ž†SM6À–ÊEbz°Šy‰\¨Öh•ŽÛWŠb\ßÙÄz7¨0O0i”ˆz,¤Xøyy¬·êŸœ÷ùÔóWòGG~?›è Ý+oòºç$…C¬r”8dÐ-}E› ó4M£4µM‡Í«3S|;F*•fZ3I!ƒÙ£óqW,¼asP}Ê|'ÀøNÁU›*¾šBËj,ƒpþd^œ_FÅÇSé9v‰´gÌŽ7Aìé¸Ea}«cï¿8Åâªd!ÂꀮÞêhÄÅ„D´-Ú4ËáRmò Ý¡¥Á%œÂƒÁºKʽJ®ì¸ML(›_e[h©=““ÂÞ²õÂbâºBq(ÁAo#ÚUÜ£ ogä0 »Q®”º`~ÑY`ä-ôÉUY±é½1Ž›;ª7¡ {1AÁ\-žŸ×(S|‘êÔC’ [¸©èV¦¹G±b¦j®, ‰8‰“çqÅ!ãW=ª·«E*æ2FŽä M3æ7É’™)ÛBîãFÄÅÞ±ŸêÆ4D‡Šä»€ºa‡šß%‹ks%/$±Ø;¤:ÍH[·|ººy·ÿ/ Ž®­s&à ràîçi&¹8°]ÿ~7LŸ1|dZtâ¬;·õï‡/ÌL1w‘s"z–Ù\Sâß̵ó0”ý<÷a² BDße`bœwÜI(†œ7xéjkEhÕ(¸ÔÈÃZZ»§¦òqÿgÚx aƒûcvRÝá€>; ¾Jȵ³\Ð_¥¢ªç”âƒU¨ÊX{•(ªkÀK½½[/3[F²#⻄‘O˜Ý³Ã’œ³Çò? 2f²7ÀÉ.8º CºQL–âÊ;–¥ûR¿£æÜÒ , ÷’Qû@mn2y}~Á ™=º;“‚]3ZºëÄĨ]Úë•4rÆq&O^ØÒˈ=B–NùVU–MZNËbj•ý$*sí"¤1@Þb£ÍV,¯™EøÉCv} ýNVXã=Âçöí' !YÐwC³áŒi^n[EtÔþì´¼C“CAØC~¾?³‚IRœÄ"v<¡÷«F³«f*¨ânüñçZxåìG–)^Ä?íèëŒC1²¶U`?†L¢1ÊšL¥ñ²ˆß¥Ý}µfñÃ|‡HMªŽóW/ÞÀ]0êij:aК;ÕþÙz¸P=ádìÁ·JRD"””%¢Ô$Q ¹Ä!!lôºÿOgX½AO}XßV- Ü"Û=â â E3è4[‹‡VÚóbGzo3N Fí¹Ö퀾ø­à7êG³$'V×SÓ¬ AyH(&‚êƒ\©Ù®èA'cœ+P¸fE¶  a7É,©¬A;œ\§Êãp‹ù^fÁV‚ÔÙÚR»IÏJwÝSÑ+(󖱬•µb"ŠhjÑ}ñÉì<›ÁŠ×Ï$¦ê4ÒÈJGð|äøEÿMí8§Æ|â …&§ŸYáZ.<'ÂR·ÑV ßpUö3ýmx$µÇ+HÐþ J ¤ ÉšKeWÓ/½1ü{Ó¤³Ì•ŽËUÃÛàeÕg’÷Na ŠÉñÊû¯N{œšrUê†zgu+7y¾Änws*ÈÍœÿ“V Vz+qê¿ï“¶±æíó£1a®·è ¨Tô(£hÔñ—çåðO0ÔãS(QÌ®ÿ‘|7´ÒKê/¥C•KAìó’ZXclrV€fÌ^w–6ÜEÅZŽáf,œ+&´âƒšÈ^w‘À÷æô ê`·a¶ù?8w§™Çb‹éØ<-\e—àÓ&þð$_ûž³åÁy†•-Õ…¨§ÈÖNC“+nwáHů§H¶’Ù™éVdC…C$븖Ξ¿ñÞ4Dù}rzâ4fy Í ps>ËW­ÿqmX£×ª§{NÑ¿%‹ǺöÈçiÂs4žÃd{PÆÂƒä¬ü@Õ±lØ›[×¼Ê>'ÛJ_R½¢®¤SsÀAV?í§Ðb-áÙ˜çÙ€Dg Bx0’j¤­gt3üPÝÙ_N‡Ç[_]Ðû\˜O*À·=ÿp“µÑ°.ص¦0Nö<̽¢ÈØàßž‡Z÷.à†å~Ùçl‹DÀ”Ôš]6Ýèñ믹ó!{ðN±ƒç‚b]3ëƒGÊOb¦#&§'9üú©6Á4›†ÖeFmè$få;nZjÞ%y4;oÕ9×O²¾¦Ì·¹á½©ýliÊE\ß¿;RÒc:—†{E M+­N3—˜ÿ2Ö &͉×v#:)?Ûu8ÙÎøÜ"‘ñØÃÒWÈ; C÷ÃaQš<í¹×›Žøµ| £ÐŽM|tW»^Kþ^ùíØ}¾:⋽åŠñññå™Pï¶F‹“ÐË–âA¦L«J.úž!ýÙP”<­Çnl~ânÈ}ëx·« 4ÏYl'÷N¤òø^Ó¾D˜˜øgë(&§õæèÊŸÆÿþÙ2|´ èo"MÕ)ÒD 3zß=5õÆl¡Ç\åºçuªNßõmõuÉv Iã&ñ«®Âؼ<0ëu”nÞÀ¤DY|J4FÕÚ,쀽c² ¶27¦Š¿—ÞÖ=Ç—&M¡”‹AÆ;‰(óÑÉo3ÓÄ–ÔíŠ~CËHs8ñ9ÏYO± ù”G—°‹²oz^M`Ÿ?a€n„S³½Ò1]¹ZD¡³¤*ø ¹÷ëvSä¹ÐžJaqr¯}O2èç1TBL"l1ã|ErœQ€{S¶,Så ^(õ²/wÄøÚ4gñŒðµîáx•‹L ˜äí-úô ôHè˜Ó4üúåA±\N;Sò™dv@ ‘Éû2ú)k˜Eì-y¾DTÆeçÐߊ¿VŸ|/\þÓñ9ùåË6­ßév¸œÝ_># Y/ƒzéôtÀ‹ªƒº­Sp«%ð{aÐR»Žå~¶ ¬5sX(xsÉoÎ,g«&zùP¾ï Q‰äçN¼ö¯»Z‰v‚âp tÖœµùjéÂÔËe-æ@'c:å-Œ„c:í”%w™o€Qô r=ÑØçæà+°Š!{ƒÇ§u¡ýy¸\ÕúYaʽȶFo«®öÏ×\Tıë+¾|¡Ô@ÕZ˜0 ‘gås·ZøäYrmîáÌwG‹"F}±9‘í&V’šI¨x¾®¹AT}ô¿ü,ã9­Á©oÞo–ˆsÅ«=uYî ôuÔ#B,ýÉÁ‘­\.;SE?DÓ¥J˜V…§ý1gé=½|ÑÞ2 6ÃÈo´}§k’˜±ñ öf*¼Aì”üeIí¯£ „ŸâÈ„½G,tÁô¾˜þüãÍás^³f‘Ô³qô<þ”Í[M²}þóLžéB÷Ä(»ýÀ³S„ÕoøÈV¹€7ÖúÇÈ^ßÞÆaæS!ÒFÂ,ô· UOz4·„0b©DC4FéY[Œòà æoþYY7òë0i (Õ15•òÇg,ÌšýÂÏò&ï’×xŸX}³%ý›2¦~˜9¨ÅŸHÓèޣ݇¸~ô’]Ãæ›·õ±Eb¶Aò´?*0HÌ#ƒî‡‡&O—–×·Jnßç/8çØ‡½l#6¼4z!lvÔ)å•7˜÷⮤,tþ¬ojã º /R!9›¯D*§–*E•l›åÝø*)fÂB Ĥƒ>`G1@ÌU†“Ñ%ʉÊÊ€Çf«=a[ ½õb¸M¯ ¸ kk;¢×BóÏìdLc`žp¢DDé u¾@,´«ˆŽ7E¢q>k:6²òÛ [ù«É<¯€;“Mûž¼¬N+h—Ëô_§…|^ºO4Çñ´-#úh¨ Ë DÙgo2\Tbç[9Î(•~¡LP#ñšîÙìˆì:WO_ÁÚ£)ÌÎ\sc‰ˆÊÓ€”y>»¹6RÌ*f‚rp ©((ãül± o$Ü ¸ÙËןh#O‘¢IÆ2•Úû õš€æ1ІV ‹²4·Æž³m±þãØb1ìVÚF§ŒØÙpEaÙékƒ|Ú[0öŽx‹ (åFé?6㦠þ´¾’-©ÿÆr@–[ZË»ªÞÎréÒóî=vöð¤ä"ŠXësxnÀÀ’°ª 6Ï«HØå é8}­Ð Œ€5hõŠ+ÔöNÓÁn· ÑÊ›÷ìcá[£@6ŠMpÖ“™tâWÿѨ/¸¶Ã*yAìÝ’·¥Y»=¢¯žÔ0é©g^‘/È ÷:Á‰tã"ŠW°’×lm=ýócNû£•þW ÿ\ ´Ä uP{ÿð$צý8—>I’ì“:ÂÌÕò|ý×[)¬ƒvV0~û:X¢HPŠÆÀñ©Q: á ^Ÿ6 ¼ÌTç–Ó!Þ{d1Õ:UÆ‘î>Ï. !“…=ïÝ,á°¨ò¥Ð8ü–eè[òú)¹½Ã•F¢hXtëɸsÄ Òò˜4MŒ‚й‚fé“ìwÂ@æÁQ$öÀ¢¹ŸËÆø×ç€þ…öžAdlÂj" ®,BZGÉx åwµÈ„1qƒžåÄ%+‚8ñ¯<“ëJ¶ð—è’)”#¹D+ú©Bu†š(–g»3R³jtãl ”?ucõÈ‹ÙVØ¿ž5?ÒL’FdÍawµÆê@Óßìa뎢³/…ùÐÅççgÜÞŠG’„™æû‘Iý´2TLÐãÕ–+¯·|µ„2P÷˜ÿöý˜ àJ°ÒQFjHlsHÓöÉ3¨NQ¿Š?qq¹ íF8¿ë¤U±¿]·=â¬gÓR§x!!“|ü3¶£Í¼KZåZšg±L†ºlÉ}Œ ¤4}Y-ùN`!E®^ Ñ´“}mo?+ĬÊqç,ÐDûòNˆDìŽ!Ì·Á蔈a‘·ÉI ï±þ`}«pÞîO•Ѧ¡ûQ“ÙŽð~ÀœïÇ?.½»Ösej·y¼É;vVÖų•ÕˆÆ=D¼K (·ºjÇ ‚Sëø}Â*è& „9½O2iOšpñé¥H±®âåù±vSD`RUØ‹„w guư/CîlÎ5‰Oy2äaòê¢8¿‚%´¨rCÔfÁVf äJ§w`h£aœq„…~Ѩ‚kŠ5 ~M~»^H 'î–UÆ7FQ ØG>HßÉÆÞÐØ[MK@ÝÁƒ ø>~ÄöÇ= ƒßëž½଄ŒÕ¥8ùçïˆ$ãß÷à#œÙ 2|À^èrW8ƒ&Ž®•+^j+ñí/z µ+N•(±AÞÌõzO™7ƒï›“"çÔÔ˜ÄÈ,"Àý9(ð£PþIÊ ¯(r4¶„oûHqç œ£¸g]qÚ;:4•«Ë6Δî1ºž"åoÍúsþ¨•KïT¬QÅMqÑs¥%˜Ÿ³(§ ç-»­õõÙãßòçÐö%£×_«ÑÇ)_†rtç?öÙÛ£¨}Âv‰¨¶ˆáôÂú™yVZ•ÖoêÜ(üò§ú鑿âõVO)#ah’x.dä$P7þ¤0Ô:¥…†¯?‡åäyq3Õ‹Ôt6(Lbh/'E{áÚ¡1ªó\Ô8œ¥ÿ[FX¨Ë|þÄÖÈ7nLȉv”¿G®hÂ)u¦Ï)wU&/h#LKh<³Jcº"ó:˜ðs¸h‡aO@ô"EñSOà ֛¼®Æž«jŽD×(9’÷köÃÉ3¬üÞ;–cjVð«°U¦~9À²–q†Œ¯y™ãº|,FTK-u†»ÎÓÛïM:zÆÙµ¤éÉ^AXkR¾>€ê¶Ÿ<ìŠÜdl)]Acq)ƒo‰ƒ †ñÈ1—ìàëv…žð£'æØòðÓjnõ§ÔÙ :„Ï f¦™ù@ M/a2ÎUöÄĶzÇnÔÉ¿æÇdO„®E©™xü¬@è&P ë þ@߯ð¹ N 0ÐÒR÷Óºñ#J¿BE­þ´S1|¼rD6ˆ¥}ìa¦Î1ÝVL/í(ÿ; }È5¸¸ÏN’5æõè.fPBµ 袷è¶_'Îì|Ä%ñrö¡ïÑWYšzµvnÛ;‹“ þ-‰Þ}²8-U8Eï÷§F¿…zýü–?¤Tù:,xaËQ]xPHÚ‚Hï×8ÿ[Õ²nl0.fmb„õÊgð+ã%ÊÑa7@ä…œí…f˜µû÷Ò‘ Nÿ Øì¨™ÚõAv`D6:e@¼ß!EBÿúPGÑ´{K§?Cú¨±*ŒrÃH@Å"¶W ñV‰d}ò)ôcE Q”¯^Ám úæp)Q968¡î˺ù”èÖÞ‰žIçÔ6®G̬Ô ÇêH;Tš„þ4«ٗ†þ´t¾.ô@¸%Ò½.q€*S\@€ƒ8"ȃy"ÁRtc*Ô½§S‘ÿÆP®{Vº ,í ™ˆ1PAx‹EhF' ¶+YšiîŽÃì¸DtPóI:¿M2z‰Þ ±À“.‚î.˜ˆƤ+XJ'BÌ òØ›Ê7¹V¹©š"®äŠ9¾|.²x& ïϲx¹±| âŪ^Ÿº±CrzÁÜÔGÿ{z¿ÜqÿîÚ½b@!K Lïa¿è•AׂæÅº&œU%|AxìÓ`òTUÕÀiô¤À¤Þ°¥Óðœ/¥ù“öR$hmãÿhÎí)I` rvRC×Ûó¿j¡éÕ>î3ÉÄ×HmëqÞƒ]ØíøÏáóé¿@Ý î0Jú@ÿ0èº&²eW Ñ}¢? Lwº]sò­TêT²ç󅳊?T#¢rwaÝOÝaj€øÄ‘¦(»j€V/›‘Zöó!°¶OÊ/,Õ½C±¬Û®wØ62H Kµ²=;çáàä3ßÄöu¨š.áýn!¹¦µ]ð(3ŠF<Â@_àœuù%Êøèµ/ûˆ.ÌÍFsâå›ÛúÎQn·«àí„Õ«Og” ‰.¯½•Š<Ž”ùƈÕ|§Ì”œÏ%Æ:þ¶/8rÎÕ %ÜØ@ëÅW3‡«³þ‡ø,ù„2ñ·‚²ŒÊÊ•Ò×3Ûµ>f[¾Øæ¨»0Ï]¶u “YûªóHa²»ñ8N ˆ ¢ÿrE†'vè‡@k¤×b='ûäÓ4r×O´É¸Ï+d»y¤ ùÚ÷¥ÊXWŸãÿÔ>‰Æ€q´xñ˜¡¨½{ßà+ˆXóš@Q×ÂL³s&øÒPÀCg2¼p²Fy7¡ÃÞmF(V°?l&!þ£:ŒbÕᛇ̗ßüje`E¬&Y© ÛÑ£šÌ×(”Ôr4q/¾7϶u«¨?½!5=ò†’Áka«RpFÄßâ¡Â­|5'?ƒµÜïNW­MÃ"½yÀ‡xQ8cÿZˆ(‹Ì¡{Ò§S9ñWš¨8Vv]k²ibÕÏrè mO¡~½鉽!ǃfo“[ʾµ~v,é*"Ä4LDû&pf9¬BuvÚàšðó⤛…@6÷ÎÖ¡ºá( €øß¬`b¬IîvÊOµ¾}ß ÷ ä’åf»©Ï ¥ ¶¼Þ6ÁöêΞøø~x«1´UKм—H›+•ÓùhÈpœx!áµhé9ø¥•gK÷-µÖžÝŠÈ\k²Ÿ¾üýÝö»˜Œ÷¡G ´¶Kޱt¶y¢(-ås¾D=álI•|Øë§:žaɲYÿÊìŽâÒ ¼2½èrîiËâ|œŽ¥K ½3E-LJO*gþËGàQMD>ëmý¬é„@{(/ßÑæÜ#’´ÌoÐÛ›1¾Q„ô Kâ°*ýqò3ŒZ¬À$–!¥¶· -ð4„ÃÇÃåm$7>.Hè®a~ÍI…R «¿‡áe^ "tÈe1w²_UpŸ‡¨|GñξÁHTœOã#vrn ¢•xXDFƒårÚ7µl„çlSµ Ì¢8’ «ÚŒEwðè'†%w6/“Gà_T8ÏþOZ§V!ÆZËí_fÎ.öŸ50¨„^îêRB^¿8…tâö탅Üüà•4T1N+0¯°&9- I­oDñ4/T@zD®ë/ò2õ^öÊívJÛg<¡BÖÁ¿ÔªHóhò=üÓ)‹(*:Ú{öã0¥Qd°û¨îʳEîäªØÅJÝêÆ2GÆt]}’>—‹èæ%"­”nÖJOd»âh"»>Ý?ÉÚnŒ«X#hF|Û<Kë¨B¢g· JÔØ‚f…çù¹(~•QqŽQt\wÝÁ,â‚߯1ÀѲ\ÝÜf‰ÆŠ= f‘™fÍ=oDõÊщá ÿ;ì9ü¥r°©•}ÍÆì'Ž›ƒÏ»‚¶Íß‹1¦ß x{ ¡› 4ñÕÏûwè?gzÇKÎTf¶õñ¦ã»Óo’Ü'FFÇBö¹¯Êo#šæ¥Ì¾Zo UÚ¢n,… ý¦œã³‡Ã˜ÂV™?îèˆg)£ŠXR9ôá)}y ë­6ô2=ü4MVyîG¡áÿ¤R`??qº9€ µæmKM°ôÙèjBàL……¶Ëbf?ÅÄy‚×¢`è«2þ«Ä´¹š~×äĬ‚ÝOÊÞæŸ0ïõÏ´¦Þî5§I>õÚ%º™+tÞ’o–°«JÌ÷’”9Ýï*TF÷™”cä&óܼ'ª'oTÑ0ñ2¨›`á´§¾ëÙâèræ.ÁÃæÚÂK-qøÿÅ=vþÙç „›½ûñS€öhd ²%îVTd5±I|s]*ž(íHAk®j{ºœ9®¢7ˆzÝN4"9ŠÐ`,Я@_^Ø“½1Œ|ë°n›âÑ™™ÀT`Pv6<P# ŠþûòC+…pžÉãyCFMòÑrª’–â» „œ`: í¯®`e¯çtà¦ešãyà80¹ÈUxÃAÓã©*ºƒî…‰VM§Mò~<í0ö™³@‹¨ÝfÁn/Ø© Ñ,d’ÀòÁŒ˜4¦´ã¤uàNÇT| áŸ,"{ê / ŽÄ̹[(æ¬nÂ?Ëvÿþ‚Ó«Ê›{¡ûmm‚~‰nž ë&Aмòws­¿Ü Gñ\ƒ4ZËÂ{úr»ìmÛǯßK¿ÐœAFÑ—Å}í²§\ù³¦M¤ž-Mà ^4DHUiR [ç¡noåŠ>+ᑊ¦RÒ“4bÔ  #(k/ºþ­|³æˆéc¼%‰§Ìk}ÓËwÌÀðåÕÄÉk·•_Ó"¤ÿ-¨⹥ͷ×=[‹Í¸1HXϲÈ-P›ñ›ÏpEå wsÃüu{t|~ª¥xµf’Š éwÙ(±ÒoT™eä…¼­^ð ÿS`m)uWX? óš;Fv¾3`œ¾h¦EŠhÍe/ÆÆc1öïô1ÄE‰Œ“QÒEG“[Eú¹ C呂~¦¤Ò£=p ¬37xFÝÒÿá›Hr·îƒlÄlfa‘QDþsQ˜‚•QúÂø8Vû;õª>óà ”çà?Û¹KZû} ™C€2 F:_ë‹:Íöo¸•AY¼›só“Hµyÿº,U'ñè¶ò!8Êň]7xˆ’‡‘ΙìÄu…yœÎ<¢ZÛ Ö wTnÅU™³:ì´Öù*¶öjæìì¸Ã_ac*ñbq¦•Gü,=u¦é†¤QÉs{Ù@.îtú4i¿ó˜Ýr—ý*uÕnŸ4šdÌ–A vÇʈ%ÝÔ ¾]TÖGVðel$9r|ÞçaÓ„>Ì^¯j‰FöÅ µ†Ô‘»ŠN.Â^“S©¤¦@$5û‡8Ц+Ò¿ˆÖ¥³ˆc_Ýg‡¸§_ÌÂ4[3U« F¶G+k>Þsê!×ÌvnSâÉOÚ*x®~™  ¼SR3þŸüG÷¼šÆÒÁ2op ¶ÌŠÍZráòT\ÿ<„‹PïšoºB*ï§kÉ4/á‚(¾øk>£´>²½’8E8åàÎÃï! +_¸«ë˜ýH¿¹+S¾åg]ȯ•þ$`мÝqZ)è¥P¯o¦‚uì컋–šJÞo’,h gdzÌeË%Ý1€ƒ´å0õ*Š]Ç@¯•«Ú¶„H s¸DãA,Žeg¯'6æ°ïK{œOqâ妚*  ×ÅûÂ#¸Zþ“©2íîî7`@¹Lß#ÛL<³kùD”Û_Še¿NÍ%X-ÑPLVrM­¯= 4}p´Ç«¦ªbÙÊ "FFÂfÍ`©þ®?ýOâGïHJæ>?1йè>l FÖß{hdM$eö•µòÑ¥,‰»À(H9ò•m>gDBÃŽm±`î·?Éx¯<­æ!âÃà­%µ~Ç«h­kb Ä¸'Ÿ©?0wûèÜ}×w—:éø÷.&Ì2É‹þžÂ^/ññ‘ LÂÕBK³m´ÉÖ8 H׊á¯ÿñ6ÃtÕ @tþ;Û8X³±ƒ¯ý¹ùžòäv¶ôIh@ò tWì½ælØŠoéྔ›ÀNÀA­U®šžT!"ìýK'´)†‹ª6p~ÜúçÆü½óo…º}Ífa·ÁLò9´u7˜.̉Q†a~ƒ vá«^ü¡¦ÂPABAjG—–CÔ\àVA¼œ–¦~È{Úà¯C{ ®Ü«þŸ¦ Öú€Úºl¤„µ1mØŸÍL Ãsgä˜w©Í¸,üxÜM9ЉwcÆ$ÄÎÅÇû§Îy"=ǤóM[-¯U“j“Ä:n†çè¿îP´pDŒ0EY’üdÃÌÀžp‡œ7wü¬­aϰ¢— ͇‚`ÞÀRXͳiöÛ–û’JÌ’æ9`><_ÛåÄ¥—0‹x Ý‹ ” eЙº„(ë¡¢RvÕ—?.'„Ï“SÃ,Óχ1! ŸPGKF§À1Z’ü;]Âõü$À2Ïz¦°o;¢üF põXzî§‹vÒ`€…7X·ÍîÊŒ$×Ùn êF‡~ ›×쇯b^>ŽÄ±‰àAa‚_J¬×åkuYaÿmú2òwS2“ᣜÊQÑYâÜxo"\%àVÿ(Û}€?.5¬>APLQ›ÅèpCå×—1Ñc˜ŸÎÅ7AÝY¢Ü³q«Jk–0 &“B¤f¢hЈ][{;c´H>k3…›ŒÎµÚ܈¤4 A#Qà¡¿£qöÙÐ6ý)Çûè|{!ì ʳšx·ÝiÈ7ç&ݰ½îIÎàw̽9ºÚ¨Ä!ž7€‹îš‚YŽÌtÉÏÊ>ѱÒÀl€™é!O(ýÃ,t èV;#|¶öo¿mÇ1Üø×¤Âžãfë’µ…“øK¿Iâo”w\èu2ŒRmT×€÷¥’åæË;šûûNÍãPß{é/›Ÿ(ßR)ï\ƒ*Mz[÷©(ãÝ$hÂÁãÓ)ŬÁ(~'nÏ–¦Ó*6«*êi,Êmåb"‡|½o÷,ÜÉ"EœsÜúzľD&OÉ-Ñ©ËÇã–y[ñÑŸpÑâX=n:0@ú­){£Ç­¹ƒem¼ó}‰™NqŸ˜#î°zÕ作ÖÞBŸ¥ø‡Eêè³+>•š¬2AQZ/úžÃ*ÿ'œ›’z]7£®ûXתNØaÈìmö¥ˆG$Îø'r¦ú€ô"ûÓ3 $À Ë«noótqq¨_—³06ØÊí†À6M´ æëyÅ–AWÒMtÆ¥ßÔ¢«·io«±³A‘Ê–qU\‰ÞxÝú³Õ!WŠP$¤´„¾ŸT› ?–e“­@Øf ‹³G÷ÃÞ±põÚXNÌ0G Ø®†T€ã3­:9˜›ðÄ‘oÌJðTžRüÌÊœ»ƒ÷…®˜`+ ß Uoè^q?öyQúeÓ1{ŠÖýîr"€înïð°~f­=˜Ú÷92«”žî¤ï›1?,uF¯¿AÙVïæáËÔº#’žÿ¤¹TÀïÖ¥# IRšü­8\ ™T}G/ŽÚ¢ÌõfDoJ+[•÷£÷‰ ç9m˜YÚg‰òÕe[ªnlBUþf† vS¢=­´¼Á8=Ì2ãí¤´<,·è©ÌéA½ªûw²OoYM&¿Ì.½orï$6ñ&\lxùwÊl ‚C\ƒoÞZ?RšÃª&r"^ª`žuÿ‚ÙÀp²·cnÉON‘] ™H7ÐEOÿFÇNµÀ¸u$·[O!+V”oeÞ=Æ­¶ß8š×B÷ S‡“whXºPxù1‡"æÕ¿ó>Ð|^§1L\ªÿ5o‡‹•ã6¢`f™)Ûh}“e[ÑJ‰hñZ–§(XŽúí¸ê<žWÝú~Ö¹]Z© \³ä4—9C+ZzaãYM±Mh(‘‘V½ƒ"%¶ßÜq›î[ ˜h§û›…æäE(ÇFßÃxÎðSÆiê×ÂØ >?ûñîg´ QGÀ]‚µì@¢0¬bÐáS¿‘A#s‡Ì½£«ËûL¨mU÷j‡ø§ñMëݺ´ñ}#¶L@ýúOÙò܉1 Q°B%ü@„jümYJB7xlhVœgŠÆ=˜%ýîl>Ùr[U+Ûˆ å°%Î0Vâô’޽:¸N,žÏ«^щ—K¯YÓÚ ™º‰&6ÒÅÕÞk]òw 0h¥)7²OˆR¶ÍëÏð¸«ìm­l¸Xþ‰ïˆåð•ôö` Óä+IÇÐìûÝAd—Œ2 ¬vt°;Œ’?K¬æütGiY7¹fL™Ö¬˜t) ^“ÖÛzÁéKh̆ǔÍM+ ÑwõÀ3Æ²æ ø£“®?Ô@Ô¡ø¸«êÊlzt]WBäÎß øîl °E¶rÝMÚ‘ÆÕ¤ø8H>9cЉ擖rKÑÀ ¤÷*hÞóŸ#àÇ£úZÿe0v¶ ìý˜ÞfÝYØüžðk™¾\áaÇzUÓ½½AõÛâýð™~Ò­€˜g¼Ça_l¢Ë ÇçÞžò@ey„՞ʹ¬‡·£J³MP>ld±ªšžÀó‰¶BÈTšÁžiKy™rŽœ8p´‰|CSÂ8S].fþÏbéj£™y» )²&– ø´AI¥Øøì(Mò}?‚ñQ‰vRãßXA*¸›¹5å}yûÓ =pçØFÜÇþYà¾2ì\ó£Æ|Ì%ŸÝšå_÷O{’؃dfõà±]•Ň,¿ˆÞ#3§µòn¡kïìÝÍ|q {€Üï8³ŠÆ ¤lÀ5…žÁLžËRì!2hÞ˜IlsW6^… f[…cÒJÇŸÛ¡0KwÑV¤–eÈE"=¢]¡Ã¨$B8'›ÚßÔM”÷®Š—+Ñi2~6+²®VÙd,”Æ“L7‘ ,ºŠûn=Dîu›"`%'þ0ÚjÞÅ\ñ¶TNò´Ø@þZ“éd´•ïaôñe¡"çwu mF?ˆ˜“Ä:­ ºÞ ‘õšN|Çq èGPû‘ ýà€È÷¼ö”‚RšuE»hKp^[þ¦¢yyçîŽ „ ±ì#9ÿ?É”ÀÏØ GÎGT%•Õ Yq "&Çñ ¾ÁåÕm¼SÌš34‘½ðf!ðäE'\÷*ækøp¦@Ì€ëh\ýxÍâÁÀrQyEÃÞ,än)°ÛÒ"Ma…½gÿs—¨Õ…!…ï?ºðÒˆpþëÆ “ð<Ÿò]BLÁšŽcœM_þŠÎØ'Òâåj‚uJxcïÓy6¾Òd(ÿñ~ûhœÐ+4ó_.ܳç#©Ÿ!@5}“\jš]Ïg6~Ð’\q’ˆ€à-ýD“æÂ5wJ®vxö|µª®! þÌïI°ËxUQÒ0¥ÁRÉâü÷ö¿šù-_BrW¦%‹éãÞ¸E÷u'z|àçíqi:´·Ô¶|øSbþ/JK1”Ä ÛÈ„ÙF¯Õ+t0-eJNt¦ÑÀ9 œ50ÎN —`Í‚¶n1›Ê ܱ©©¼¯³å…ÕG›z©!^Æ}N¦X 4¨s=aÁ]Ы®]²‡­8*‚Çá%s}…f\\Ì6.øë˜–´ìžsiR˜I;#îä—.¶¾3³rK¼¸„f !°ýL ýãÔ ‹—ë2Ôµ»<¶Òy@ e.÷„ÛT¸à}™c û ðÊ$X¶Dîâ0¯Ë×öˆ®#|i’Ž8¶¥‘/Rs97`x’nC{O0ÌÂT– ¥Ú“\óøÜŸŽò(«±rÊENUèÍå^N%M¨&@ÈßÂü+¿­BVÔ€Y{õŒ°ÙE·HÅÿ#jžkÕHH+j3AYfOd5=[9pè&Ç~„uF1IÈ«¦ôçûT»vDŒÂçÜwAZ@µ@±Õc†M¯6>Ü1RxQzöóx J}‘Ây»´á–:6ÙÈ{³ä៿SMïW5r± ‚G®Ñîç¦7ž)å®ì®À´^–>úb ¾Þù+\‘‘¡7£&ÉXr¾Ð…ÿÁ}ç´c)¢/óSÌòÑaÍ;*d›ä¾ уª)O ê#ÄÁÄ»"‚ýÃÇI Ø6†Ë3y]RªRÀ´ZøùÝ€½û@sjO,¥í$Œ¢ÍZR°)%¥ç‰Â6YrÚ&¤øe–†«ŠçšÅ“  ¦#ôÔ¹–š±Eqº„kÇWÒJ‚Ýž¾Çfí¦‡h¾%=­HDhòüÉÉ©áÆ(+ÈŽÚjÙJá‘S×±[æË“* æ#ƒä̋ʀúlŠu×¹¹j%iFûµÿ ¼Œ‘Hº÷Ö“TS¹³ã}%¥„\–÷¤;—iA›BÎ\Õx/ÝW¢FZ€£d2Sn²R( ŒË¤…f-—r6üü$çRÄ/RÈâ‘ÐØ¬jýtIm0Lîû\ºCô™-Ã:]¤qÍÚ,ØB-̰‹ãœ¤’ÚÂ÷!ê · Ä-áB¨¾ëJE,ÿÖF%ïqÅ8.ñŽ4Cí4¤Rã–F[¿5IŽ[+§2Á‚G{Î&"ª5qŠb¼´/õæBa‘ëí?> S7+\p‡K [f¥ý¯ öç¸8Cç| ð¯‘2>¸§ÁŒH`o£¥±,¸v±…n,èäÛmNï<Ê,¶˜zö›.bàvy´Â×’ôN Ýôµå‡Ø™…€$†ŸJâ®4'¥ÉU,…2¨÷™ÎÉ–C©p|½GêÀ›F®™—ÍI­`“V^ó²gˬ+Ñ¿Š2—QwMUÑyDý×ïú×4‘þ+ú-L©ºyÑW‹•Ï!~?ªÊdlÝîúœß[^Pqò™Gs¼:no¸[¢³B’ÇCá¤>ÐPBý\a9ƒP#ñã6¬úÎé\ÎRŠŒ‰ùð#€v¿7¿˜¤‹- å\ÞÕÌzÊVßç1’©¥Íëµ O“üø…Ñ]"XBAÜ®Ôêuh¦€8Šhqºûýc…œâá~kå1“ÖÎIüý\¾¸ßoûÖ¥4âX©·üLbÍôJòÖ:1Ëý VTä“¶Ù›õÝ@Ðyп¿jæ(QÊ 5p*›¥#zÐ¥GKèÇRÞÛò#ðäA^“8ñ]Ž"Ñ/ Œ5§p”þ5'²ÐÂ’.c…ç>˜«‹Žô›7óÝw‰Æ™Tµª–¬1¹Ó²x¸Ú ÓüsúWM$Ø·Á¤ghy7Á•¦ðh@ÍâQjfWiG‡ö`¾mÍ„T ÔkRéX^aÿOÒÓEVçsgì‚4bz÷‰ÿtßÉTT@±Ú¬Giâ¸Ì™ì%•U9˜\h—XLi} ˆº]ì)>÷Nþ‘F½:¬‡?3,;ÕHÓYªC“ —Uxo£=”›Îí‹{åpà¶Ã\‹Ã_(3 FŠ£éUJ¹“2è#áV¸”#‹±>»/ç»QL_[#,&>.Ãnÿï×’N‡è p¢Â<àµfEá°J8¾êzêB7´‹ Œó¾c¦£ m·µù_ðP œlÜ&]@n¿c´è&Ø=y?>5P[“(©òVT¿| ª2a÷­ôüWy«†Œd ëdº—K™`î›b4 Ohí¸¿ì{—Jºí«Ç–ô`"àí¢à¹v×i¼›\j°µâî‹ÂJaì&HmúתàŸ+3é$ éJ7žè£-IH] jy1ÏÜ- QdiÛ×Õt6^„?"ÙŽYð•MœÅ-°C1€8ÕüºÂ9ð¸ø²ÔÇžyÕì¥.õO œ:Íú ®º.”£Îî{Épn»¿fBPÈ„,îíâõ»~nò[a©&7ŠoCDbÄ©ÀPÚÒ „êÈ1Šz¿˜÷/²z^åá¾U›,…ü¬îÅ%©Ïƒ"a´Øôü-‰«ÿZ*™FÜNv..Ëpcþƒ‘s—ñcãšÕø˜EÀ¢rñÄ›}ÉÂK‘ž ú%Gâl&¡Ÿd:c÷S‘Ê®ˆþÇNAi+ƒ!«.ZäU‹ þRþ¾›H»C µ^©lùLrôh¨EͶ$$÷8ƒùá‡ß§ŸoCÚ¥pä ýÃAц¾à4 º¶¿©óŠÐ¨Bú\_ó~nÄšjÃ÷¤)Ü~×ë¤.ä¸<¸{{ ©âùÎn–•”8ƒ_9ݽLê`à…¶ Ŧ»UýEøØÎY8£Òz“Ô8´TtÛ¾1¢Û“YTJpõƤ÷é”BëÑïTkŸ45Ìm ÞOÃI¦³0@¯ßÎöºðöOÐÒÊ(Ï-` '¡Ò¾¨8+ûMë)ÈQù·õ?Ù·WÝGaÜÕà9?®¼Æî½Êg/Ðï ½âéyª\E¹_ã‰3üñ¬_ƒsÁ¨u"—0#3ïCèΆ÷ßH9Óåy`¤4zC®<®ýí‚|°Óȶ×ä.h±->cÔС õlP±ÚB:Ç $ì9LÝb÷džj¼Õ”O6¦DâÝQQ`WÔ¾D«®OæÜ3ßSÓC %æ}g»öŒ'Ô%ß/™F݉[é¾5±R¼†HèÖeâî¶?{)®ŽvÂò^:ï7‰»ˆé,Šä-š5kõ^úâ-é²ÐÆNðåNéàˆŸÄ'…1víÓ^O5|û”õ¿0€ä¾ ä7-µŠ£a|\K¡­œÆçnbíZ 9+¢ñ çHç,vo´/ôüˆŽ6w8Ù¢…Ã}±y"o¡iܾtÁEº»ü”Vü7Zv)~÷àgmŸì&6áM‹z`Äñß]Ç‘Ho©Høg’Ѷê&{V¶š ÐÇQ¥Èû$M«yi+4—åë¤&ÈRýLÍë "¨ƒw«íÝZ-Uàúܰ¡—ó{1þHNz9áTg(R’œÆÖ/½¯ŒâÒLÆL7¹7óGž—á:¬Yüt|r”KEID¸Úeô2(©ïË~L´?X² _öÅÆÌŽØUÏ,4è"‡’Í 7&nXXᮆC×€,)A¤9µï;€Íu~KìþåÐT^yKEÃ3óŠÄ†í/?*hÍ4Ý¢s¾¥+²xè|Û9@Ú'µ?©úÓA8—"?Åè(o4ÂK^ErãǯÀóLºý–7â(¥•ës&³ÀÀ{¡ EYÞ{XzÍŠ„OeÙŠT”öE«GyŽ ?®<~Ö Æ÷ s.Í#d¾D+1±õ‰Vþá„Rü²~ž #&/ÌTÆ×Œ~toþ¯f*|q(Lö—Ñ,a°hÓ\d‡qøú¡e,¡@ZÓ`Õpif®ùj¦~7û4'DÙV;8WûI+„¿‡£%Ãæ€Y;]»M$jÊBKŸ¬ËôªÌŒY­@þ±wœëŸ¾ä§)Š>˜zÿ ³ôÒ~†@vÙ¥]©‡±Åÿ˜ ¯zfŠ@¡Y¥]±JÍéËp}ŠÝóˆ£ÖOz ÿ’QŽôÜxð$.·ú•—jήZ/g×j }¾’ÄýÍgÔŽ(=±I%uU[e}„÷ fr™KÀ'”=ìŠà / ØÍjúª[ièÒ®‰y² þôÉ6bRΘÆöÃNWd` ±Ä1ô]¥·:0½Ø3@z˜k£íužâÇdI´ #=ãÆ@u§€T?w`ù­hÞ³ñ…âéŒÑå«ÍD˜ãx§{#Ó¨ûÀ4W¢8› ç Û’Ûs6‰qx9ÎízŸ$×,rö®f 6ÚáLiAêÞP¡«ãGšFöFÄüŠþ¸ÚÀ1zÄ'Ä\Ú² ƒAY6$Á¯Z#Zmé–·:«rÒüÖI—l”:Bbßɉq`‡ ¸´õË®«UÌ?º˜+FpOÂûÏØ…×N ]L¸Pr;o¾ô þ€®©ž‹©Ò.N´ýòÞm@ ­>¼+ì­à0 “Çd»j‚5b^ñEqÂ,LÓ©«·&R˜Ûà2¦9ü„¶NÌu¦ŸA,•2SEæèœ#žßTr‹%2Fݲ4ŒŸSò#ßϧzY © »f÷!ÜO&üù² EÒ¥‚Câóø–ô’;Æ-oÛ+¸Ré“Ö±EF¿ÃÇŠ@˜ ¥Ç(¬«ü 0‡Æ¶6ÜiÁ¸ãÒ¤þGÇeüÅòÜìåNqÓûÛr[qÀÉ„ÐÙg¸wV1âV‡¥¦a)aMŠUˆ´7xdý»äóª©`Ý…‡b„ó±vQâ2"•4CßHQ̈ìô9«ý’Wø¯`pÏònŠ£D€/– ‚Œ¦É²·9´:l$ÐbWÔuKŒðÔ8˹ •Ljÿåά»è!U:ëƒpb8â2Ðn…\æá“¢À¦"g˜áèÿ ÞdÞÈâ#ðù¹þqÁ-ßàéÐ{y$²\+pzæûÔ@V%œVÖDvçèféùðËEe˜ÆyD84©šÎ|‡\¨Tåê‘æoõ\ói££¸Aƒ=›?†þÖˆPv&eÀ@2L%Pa‘‘6¢;:Áª˜šˆýH>'¹ši³IiƒW-½Yoîºî¶¿!0ßý4ŽænU«æ‘úC×ú2†Þ,¤<\ä߉:ˆ 6z4G×Ïî»,0G éâ›§ýK”YØ ãµû«¥*8Že&ÝÆùº bqFÄH’WØ)ÒÈ$q³–@è<0Êë~ñ»•‘6¯À©ÊK_3Ѐ}ÌM9ô»ò›Spù¾Ùâ¤Ú*Ùš·ÿ»ZBþ8¶eu_€~Mµ[…PÍË‘Ð)òo–z»½y©Ï gzYŒ213ŽéóEZe0WaÉŸ4Ó±\L‚M¤…ëÿCd­Ùm4^¤¨yäâ¦8} àÕÔ ²2¬Œ÷`×BHŸºå…•N!G̾J›ea,7J »ªðHW¸àÏí+¢b"ÑŒG7î½¢;§†Å„H²œx8ž²÷ÂD€ÞM&_és–LH.1ïÌæÕ ±êçœ%"¾['—ìäŽî„lÔãàu±\ÜÚ¸MpÝÐ doÐ0z‹µœo–Jÿ5žÕÓ4ßâZoܸ@ãŒ,L&“ߊA´dkþ܈à rzH«J,ôCkÙT¿œ5 !KͶUmÞuf€¾6‚@ÿm0Nõ7k„ ô¶sç£þJ5<È£ånà’Ø44aÂÁ´*ÿö!­6{!¢J;LË ',:Æóoæz”+4“áEØožbJ?ÍêvfCŒ\4í*°‹²Qüˆºˆp_†\R.ÕÁªT™þøÌÊÁ.ƒÕT<±\ƒDh+Ñàf=äñ²ÚÇÙ»”†¿ÆÍÙ±s>ƒŠ.xl¾*÷<4!|RpÃ/ê/æ1ðÏ5Úèžñ—¨ HZòÄ îL¬….‚-ÓQáða,oìö%¾ìÇù¡Ôý*Ïsáܱ3ù¯¶•¤ê€ÙE¹Xlã¥=ƒp4p:u–F‰&uêcþ„¿…3O²x â~y¥í7áð>4Âñ¾óÌ?`~¢#ºpôýæusïM5(2–Qœá>Kán<–6!€÷œ{  Œ†áM_ºàl®‰Àþ±Òr?êŽá‹âpòÓ>ßٱݷÏ.³¢FÉÝeHÞ$¹8~g^.ÖEüy/Ö]œ"&`#Šö¶úÍ›–2—å[Ê *—`GºåWö¨°÷4H‡j^¶=rž »ŒÐ шfàoû(r1ÍZ©©ø‚”~ÎÀ«ì㢻{©¯ÝÜ=/ÙQ£öôµÌX®‰tzµ9H¯i 2ÐkûþrästÇó¦€ 9Ã![$“ñ…Äøë;…{˜áí5ÖÿÅ]Ð=àhmW4ÑkJA˜D=ʾ°kÚ åóà#´K~Sù{|HÛtDëdƒ¦»çNô¶F“ÝBÑSÅà!N!^#×_0NªxaÌüŠv¬ ¹Ô!y…>\l±n!Ÿ.'ä –/óEú£2MùÁÀ†•‘¹Ô££t‹Ô/û2ÐéúÝ hèc<|©ogu8)jWk0Ç YjL¿ˆ;Ëø5”`d-kSŸÄMœë%ž2*Ñü©­F„åß® ¢ÿûlö¶"pö4´éËDÚŒðrʳÄj6mÿ½ötœqÕ9«¡s{ºkxv'¢èIaz· ã¦ÆMÄZüEž6p\ FF‘ c-eõéB ¼¹ùÑPþø+¼´mî¤&$£*>Á1À‚nØ™c²dÃQž‡þ—DäïóßcÉ3³¢~4TjŽ8^ä$ãy„:’î¬aŒÄ[áZ€Þ ÀIh\ÕwGÊVÄ]tWÃøðÊ240!c<49Ø‘E9ofÑôɇԔÃ&W3÷6[mAÿà(¦¸H`?RÎ!ÇäƒBc¡ '¾‘ÌéËÁýrÙY¸ Aæk„=ÎY ÕéúWß–ôÕÕ*ÙϘ½Ìa»ŒC”›ªLû|çÑÃcÆ=kH²ïËXDiÕ7m…V¾ûàô‹{ŸÇq·(®‘ÛÄ ‰£Èÿ6þpç„c¥DÄ Ä¡>²¡Á:zêúĆ×âhä€Ë m]7;P,`×5ÙSαr3/&]¸VéòÂéë$ûµ[þ( ´» Š^³XúªL¹sB.« ò7‚Nr{°ÇµbêÔÿ‚ŸUÕpV€íè:ýWzmM9?°­w4èØfŠ ú²ÔM¥°LM™=&›©­efì nŒ~¯ëscÖy6ÝäqÕsPÏiLkM£Mjð⦂d-dœx|{3˜h]DKµ]¶5ÎÇ*†ìdÕ ÂþÆìQßnnLª€†ØÅK˜Œ¸¦éCJ%ä.Bö=uyx¡G"‰۷Ȉb”d¨êñ£òù1ìŠo~b¯'ãI¸/Ü €{©çxaèé¨%ÑιÄbà2ß2HHÊÔc,Ö¾£Eá‰ÂbYâ7[²?Ü[]xøÍûgq®Ò[,õ¹!Çv,-õÿýüè+Aš è§_ë@Õ— Ä[)öê‚ ùjâ î¿ëÙ?Š Qp®Z"c÷ÁŽÿ ¯ôþÃHÛØŸ ëŽÿ ¸Ñ?}uÅц3´Öâò<gzy3}W1Ѿ–6ýò½ìØ`ª²n p#pÐ{Qr…DE¡X&jo˰&…&ƒ‘ª#Ši ½xfíÔÕØ6u€–0!ÐøB[QzJÎ’…àÿÛä´¥_„TxÁÔ‡j–Ê-•š$¶7/ *¨8…sl\¨sN¿´Gïîü‹—PìÑ3=ú™’y,0ò•ò†m¬»"½;1ÿaæî%½Ô<'à[w2y ^‹HÀ½hV6C¡T“Õ×›<ÿ‚áà d§¡lo,ó4 "Ñf¡¾›Åèß6¼q½c¶ÅãÖOÎ TÙw%õŒ/é&;aö}(ÅÑ æ5á²fû_°â3ëa§D×úʪ­Â/ˆ¥¥pn¾8òÂ?þdÈ4óD2 9¾? E?ï\jÕÏüNÂ>¾Íô:J†TÈæ-\9Tî†: o¿(tǞNj#ÂFØ¥7é€%zGØ?B “”%‰$bón¾TàAóAý£Ø:@§”_g°íîj;„ºˆ©BÏ$b_3>Ø/³Ùªi‘¥3rŸ¸dže!÷çð¯E!¸mî-}mQ;¢Ûë¯N ûìO.fÇÿù^Þ°=óGuÇФœ~Vi¥62 .0í:`r؃ \ a ›ø4”ba{Ëø0 ¨Fuîäi(j(înËã#˜2ˆ¨ ßh@±ñ¦KTÿ²¸æcOZB·Ë°MÿŸJ£q_ AÂð6}`oo†]¸æ­pFÛ£ -L¬?âÒüq›ÁÇàÌ–«)ìn%Æû†é œB |ã9ÛGÕ°z?:…è±>™AP`®\¦ö°æNø$“N>)n8/tì~”8ã–Lõ¬¬#€û:–.R¬(Ú’„â!:uôY.¨`•öá×nÀbÙ°•‚u¥,2¼Ï•ô†*×¢˜§0g?œ€ "Áà£-жù\k&˜3F€åùÝ t]-=¯äFä{¢~#âÑS6ÖÏ’vÖfƒEÇIN¿§¨É6ÈO`ÓÑtÕ¶®~ÄóFZªöÂ.ôQ“(¾Š,³ã7•tà[3`£$ó±ÛûÿOÄ#üqtಶÙŸ»xèö逴e‹ÈXZô#©‘± #àª:\ö€²ópìúpÇÙ¬/[ö>ß'Õ–5~»@Î7]fîÀmlTI‰Yý>û_AXþýÍå–GFÿ]G?’þêt)Ý 'pàÊ»)óe®“ë›i%¡i0•%½à»„›&šñÈ]J/±ÐdTi[ïzSVsŸÃúà»yZŒ€"o[(ftŸ$Ñ“¢˜rtôG¡tY%,2·“žÉÏ~ûøCÐÙ#ÇyüvŒž©seÅá|ßä$Ž™9¹ïŒãÂW…åSzìÚK¦4S8£TÎÛoÇ(ËúÎx"xÚ £.¥f…i{X5ß4íh 7I;Oá º¢×uø,\­3 ƒ˜#*…< áÜýÛXBÑVNL²ƒžÅ˜[€øûëÖNnIÐÚu‰¯lØ? üZfÀÖ`Uaž¸ç4_!œ{)8(ùÚ¶{; ,ÂfûWQ…,JöÀoûªoé± 4â”þD¸ã ¼Ï¯õÉi摺,*¢kèOú_µÒ.7{ò^ÆÓÞèð_Ÿ]Ì„ñ½ƒQ©j€Ûü}Wœ:¿±Ä“6F½ø%+UBþ5cªA£#Úc!æO˜J›ëì4óñye e¬Æï“p=7¡Qmb€ 1u@0EþìN,ëm/å¡3gvSR‹à^¥¾_Zû”TãrÏ ˆ*738¹×=wUn»&`ý‹°|åí ÁFÕ5½0MM‰ÛP°âOŒçhÙ'vÔe`‚Coâmt4 ²å˜êPž[˜\@-0¨´T:Cym*ðB4,ÙùŠRæy\téH†4…Ž;ÿºØLûmûž„<ÓÜÀêþFzÊ‹ÚS†n‰»éЈ“0Ca%Ðû#nLà¿ñüH A¤hh±R2øÒf"¦o'<ñÙÆµº'‘› Ž÷«!ÍR¥6°Ë:wŒÞýq1)²˜…®5§iµD(tqzòRqº4êŸ/MëVâ¸5¼i £ð¦d-ժ”#å’‘Ê>®r7¼áÖñ¬¡Š ^Å’)#€b¿T-VÝ–,o½?ð®ÝR‚áÑ᥹£žý÷^Fí¹³ ÁêÒb]°Ñxwþ‚ɼœÀ~ö279ëÔÊ#ë€%]û; —·³ùÃÂT$7X¹‰OˆRžQ™„d¿XWE(ß‚ó°-$NɺZï·©ÛQè!(®•¢‡è]|t5dÐôg:-‡Õªýˆqs7¯‡ÊâŒBo'q‚¤¬q•¤ÚÍeËB#à`ÿl|HV_ù´º'Ýý¯VÎÔÑ8Ki¾æ~@©Î¿I®8U•–^pê(˜(=D 3U{V‡¸<ï’Ô-cý'40õuä íIGFtÚ¬ž½žùÙÈ;4ì1¡ê6=g—|÷â¡Yƒ<#ÒS"ñü¿\YÒ¬‹±Sß{¹L!JoÙ•|d@¨° Ñwœ39ŠÜn‡¾ú2ñ}ËãFnOþ%¡Žç2!•P;V­«6pä£éÖêÕ-¡yd¸'_{›{Û/IÅLæÀ° ùK_rðÂBú;,zÌòÔ·›kßLC±‘='y8“ãͶú?j§èmëj|¥À/¼àÈV€ï*q´’•µ™bÇž’†ÿÉùåt9·ûuRÄ,خԿ†êê1€­¸4¸ó»q*û¸&å7P„ï.æß÷\™¯:G:&f{x«#Ó*ýʃ'€Ð`?w¢¦B#Æ?F²‹lã:œ†â¨ŠSÀž`“µzÜ8€ã˜ð˜#ÁŽž¾H'-f¸©:Ã2{NFB|¯ÒB«»`béIj¿àWH »˜oeÙ0òr(rú‰FVcJî=Ö`š>áÑ>%€WuÛv]ÍŽà¥0µƒY×(EÔÒ‚.8ùóÚƒ î.¼÷l!1óÉ-¹j»ËÕV‰ÝÁÍCý¹²5±–ÖWpDÿ¯¨cÇ,–!ÏEò=Mz)ÿ+÷Ÿ‹vùꜷ£L Ääö¼vyEéµ26ö¢k_zÕ¿5ý‘¡1ºèòØmìv}_'03L¹_›uÂÜœ®<”Ä8R{¡ %Ф;*þ·«“ëµq.̛͜¬÷ÕI>»„Eü¦F¯ó2Í\øˆÍm Æ‘ˆð¸”ˆª¸L¶õÉù•VIÜ$ˆÖ*[®\7ºVMz¯“Œ¹…Bq„p’@VWH"Ò3šcV«ÇÇA©÷;]ÑÞû÷hK²böK‹WÅÂR’¡¦ pÛlù+£]` ðp0/ˆ‘H'àÒ3zjˆ†ÅÕÑ·²¦Ãÿ+˜MuÔ÷6Îj¦ÒOÀµì›T.Ît‚¥Ã3¶ý‡¦l oöqÞµvU`qô˜ª€Q€m@­:É8 o OÄÁîÉÎB2EŽb`•Fi® 5áI¹¹¹è8Ü´¹$!¤o“† >)-&– ìÜ£‘9—×½nW•DA  ˆ$¡>±¦Ëüéž4ÈA㜌ïGÁÏCó8Éë‹ù®?zS y8‚[…ÃÂJüòF³–Ö²3þ·A .ÑÀ0ÔÌÜîC¾57Guõ o;øˆkÀßÃ) >Ϙ¤Âؽx¤#qÑwíVbß09ЮûZ‘g¥Ir*Ȥ1ö <]®Irƒ)Pç¶ß£ñaŽ|è‘Â};-ðÞEe˺,âQ†M)ÙÍm6@$Ç–\Bþt³tÁ¥†£\WÜ2\‚î°j–œÆxܶò¬ðî9µÏž¯Ÿ¥[[äF:*·×ÛÓÒ¢5 €½Í¼ ºñÕM‘Ïø¼‰$Œ‰£ 3ŸNÜåmiÁî21 °X²—¡W-ó‹„Ö³´¾üø<%#è?ûá´ÃzÌUüÔRÔ©ÿä^+å±ðr>¼”8ô.6÷÷„.‹´XÊ#ÄAO"wkrÛ'«Öcd5aé3!¶P7)·¹óŠÇœMËZ ]½vƒ.ËÈDþýƒ¤—ît~íê.æRèÈçÊ#.±Ã4ŠCx¢—…ð!0æ9ƒG\Ó´>¶³ûv…¸Cø£üê/]@&“Wë¦g‡%eüç ]¢w¥ÓžÞO8q‚Eú{Å…È¥ž ‘uŸÞªQ+í?kmÕl1If« váê´N‡lj}ú‚T¾=ÿ¾Ý(éï±·äPòRëK&Áî~ù?Ãè$>^#k ËıNk#ý͇ªX'5Ym[øïx2¦7˜Ò*ö®UÏç=ÀÙ&¨éù<}wª#T`;Á“™|h­ÑÄ Hd°OZö ˆðú¿”Ð6 —ìÛ–âž>›¡ÈœõÃk(úÇ8Í2æ§R[Y–½9)tù<~ÎþÛU]ç!Fº-¼uÉãŠî„h:Ñ@hžäúSú¶ë¼þ“ÑQ'ùn—è€YE0xè¤éɦbéÅ.ÿ|„£ªŸ“5WUß?ZævÞþP¥Á£ùžãQì+k7ó°µòÞaÌ`‰\Z8äFe|”Eñ ; €=ÑmK¬“YB¯=KjìÿÎÀh€%Á/†.5Ù‚á2YÙ[ ˆ—í…ÂÐö]ÊÍœ^ )7~ÓÛU=Å>žBÞS¥½lÀ륑àºb‰ŸªqT‘›se¬i0_ À(ÙKN,x'Vû¶ÄMp›íyËÏúhJL##lŸtËb¼É†mê¤ .g7~ Ža¡­ÖäÜŽŒƒ/[±+~n(ý;"g¨¤tÙwÑÅØ±u…&Új24‡JgfIrˆ£nNsñKB³¥ –/[;™‡Ž ÿ=åï^í7òìçl½†ôE#D6€»îoºï¿"WpÏ»s¨‰m°½7Ÿž\9f÷á“ߊ* QýéÊøx*Ó|¯„*¸võ¸*VFëç¶8”A‘hΚ¦{ÓH` ŽŠ.‹ íYßÔì¾Fb, a#¶Å!93°/¤‡S‹G†5qìʼj–¢ãOqB‡Ïªô«ŠNéš'QøO¥®XÆ‚„¹£ÛÒšKGWu`¸gV7]vЧ#Cí eôì bB[p?ÚHú7NÇü6J’“`ÓP!Mº/üŒAD¨îBðŽ}Bl‹}Ò ·‰“‘Ôáw*.€Þˆ§ÖßrCXêË~Þ÷iµ r–ÐL“&õ¶[T ÖªjÁ­XIkƒ¢„õ’Ó= Ïëû£ÎÏÊDõu´õ¿¼Ó¢xq¯«&Ã>¯9÷X;z•¯Â¬uKŠÝßQäÑp6ªŸ‡·é¯¿™ÀìVÆ^ï8 ¤CÚzœý7ÛCu«ê|£¹* ¾UŸY$²ÅV€×Uz‰n½@Y{œ“—Á‘¥?ánè–1mè¡¶˜¡N&1Š9ób~˜ÍÛKjBïÞz ³L¯CXÖ›¢´D’Ö[6‰m J{IÕ×ú0hæà`™/8z1ˆ0êWžL 6¥O™…hºF¼½§âz­ûÿᜋÚFÐ"ØDtp ·$óŽü½ž¨ PC‘g3Lu+xBx£Ï•ËTcSA>‰4q«z«–ƒcW!dþð»2WÎëÝ^‘Ã!\J¹ ÒÛÊî*|/ Þ¶þ´Î¦s³Š¼Ýð*‡ÕQñú-b[B@ÏÑ&FÕŒ«Éè´Ô ÎÆtÌ‚-¯x] «‹tµ§uªÞ’1£’gÀ–A¸W©‰ó­Ì¯Q“o“&ªá?ŸEÔÿÜ€QÅn7XìÃA,àÎ[Ë× õÛðÊÄêºb£*ë,·\æSF:ïUKñ#'HM’«ÍgšÏæÂ馈NŽÀ`« üØ®Ú VYKtRϳLÒô~|m™^„…¾¹¯S:úßåƒÚÎß3ˈQЪP=på0+ŒL)0†E!ÿ4`Ûv*ûM€|â. åüt¢BŽ^Ä™ ñ*»6èFNd(¾ eˆ˜}phã¢h‘c¹/%î&ÑÚÚ ~ÌàÙÝ•ÿ$:zH½ ©Ú'A/]8²Þò’<;ßöâ·ýLmÎS©I:ÏûEU¯ÅãV«xÈÃð{éßDõgÝ×%=}ç(u”g…\ë-X_­Gÿq#àêË¥²OˆÝxpNê0¤Ørkx /¢>Ã7ÌÄUã÷uAººKE(cã~â»ÁÊÿG‰0¾ÎwÙ}F&¼ƒÉ©[GXÁß^Ì«Q$ºQ‰?T]4 ?ãû –¤¾tøÁÛÎ {ˆfÜí’Mr¢ô¹1i;Sð^ÚAøšãÀ•kSbd”01ÄñŸô)PœåUí ‹E Åô$Jý§ˆÅœ6&l] ¿ Z¶ˆv”N»Ž-ÿöæS›mo6¹¤?Ë&ì‰Nü3Øη¼[°À:z [Daòâ~&Ü«bç*㪄OýTŒ®òÖŒúåÞ=(i¾}Ëùa„ Š‘˜Ër}áòÅ,Œ^û¯‰-DÉmaê†tˆ™çìãZ‚Ä“‡jav>ÁºÎÓ2’ö.üß9 ×즠Ç=NL‰¡A“ï‘-…vdÓÅðs,šˆÎÉœØYÑI77›¾ˆÒ¥‡6H2Ðþf¡ÏÏ*«:ã‹öú¼¹€ÃõuB$H¶µ€þ8Ú*8#K`zzmî1ãŠôÌ2Ô4å¡mÆXü‚A¥œ˜EÁh0µ1üÑPJÔ´Vü¹¾öø¡n¨ýáÌ›™€󌟚p[^‹¾Ô>ЮþR¾ÚŽ‚Ú]±Ü‡– Z@Ufª0k«iþõ«{?ÖòéqîjƒñÖ‚&‡&S€T\°Xá²õ1’Rv`,!?UÜeHí*!ÃìOʼYý»ÁPUyœìB¿.S¿\ic>.s2㉡çÊ{»)Ù*Ö*¹%㑨xýˆ/ìzƒ61+‰•ý8Ši-Æavd—× sñðyÓd•NÁ£³Üœ”›×ȺG, ‡ZŽ¡zQrAföGi*½P¥é´'ÇÅh'ß.˃‡™T®ÿVq¿¨Dvb'” BjïóˆäB˜}i£ê:ªU„–!­ŒcØEdmlb†¹èâµ³þ|Õ…®-ëC†çB"hå<{“ƒS)ç~ø2ó±]⻉ØYÒÆ“äAA-écg™Víûî l$Þ'ÔWÓžïÁš@ä|²z°œý¨ ×½ã&p굕­Y\½ÉUc>÷˜çh¦c‹QömŠ¥<²®æÄm õÀ¨*^! ×ÍõnÀI¥Ó—MogÙ9ª÷^w-ÏÃD½:Ö#𢠀sÈÖ1JN¦ùª®ëanZù°uò MÊ~³œä#©ønä/£À#ºþx 24ž× :ÒÌVFgÎón|msŸ½¼Ø)ÀðÛ¡c¿²ñhÅDnnêVÔŒŽ)ר£6Ê3¬ºà ivœ3yê§ØsXCòÆ@áÚbÝÃRaf…¿8D7ˆf?y]­(ÒsÚù ãvïå–ŸÌ“¬Ö±¿F>N(Td¯‹i@îtÕ¬b-pÎt\cFmݨj„áØ#q\jðKÖßPy½x~ÞÁ”Zkâä”è1½ã Æÿìа”µ¿2u›¢¼‰äùáû Zb]#<Þ$Â\E1ª™Ïy·r×àw³²äRKºº„9ÿ›(”p ä†$\7o¿¹qÙÆZæn•ô:ÏË\ñ8Ûjá|²"ZïS¸¯Ì›Ö(©_‚%0ÊþCÀƒ¢æ«^8a.éðJE¼:I†Ýþ$ÃX¡ì¢[£&¤“É ÃQq2PoÉÖJ=­3bžËÛiÖî-P»ip;’`'™bKðOùP¯×ÖS‚©ÚW¹«å¸{¨m¢¯„-æ>Øê 6Ë·âÎ5QGmLr®+K@rT|Ž¥«rÖf³oqÎóãiËôµ)nŽs[¦Mr‰‰’@ ‹iD°UŽD¶Bj›3p¯×Ùf/”ƒ¥˜ ݰÆq9ÝÁÚ*j5„¯$~  ’ÙȪqHŠ+C7¼¹šî”½ÈXÓó%à\qâf¶ÅÛ?áRêBeq Ðà‹M‡}’‹X‹µF5ã‘6àË2#OÍf@\òûf±d[kdÚœ©©”ð³|ye1øæb¢%õ† €2ª‚$7IpÖ‚(,19¾@OµP`ê„D¶ZªD¤À>01×€;V}ÌtœoÐ+}e$³kç<Þ0Ê7$Ù¤ “ØÙn¶‡Z˜²Ø™ÎkŒ™€œh!b²›Ê{ž]œ<ÃÂ4íÌw]`Ê. \wÍ ÍFë'yužxOù¸¨ß›€ð³¿š]ƒFêàlq‡‡ˆ’CžL¥Iˆ‡+¢ícT¾á@ð”g«b*#m3´¸j½\K7È)“ñP¾Äû ÂõÖµ &Îíaï1 Òà|†ÆÜµ¼°\P]›~œ^I~û&7ÜÛ|ª†´Ph¢ñkˆþ¶EØWƒ”âaðqxüø×'ãÀ‡\—´Q? ýàýõmù_3¶CeD{Î)œÁ&ãRáFÛb\|¸3;EZׇõIF …yÕ1WkRriðWŒÉé·8>9ú ‡sf½•!ISo@áùŽ@ÃÏž>¤Ò.OÐãuw»R“‘8Á9W‡™ÛëFK.Ž|¸|=~ª"ºé1 z“}•BDOÎ⚌J2“[°*™´+¤e¨hõE‹·¿-x¶+Žìë{›kˆ®0`|Âûk]‘š¾mé:ÖòT#U(à©ÙÉι:öÆn aèf@}G†Ä‹I$”}±ƒhÄ®·ñA/ûÑêälDöÖ7ƒ‰Ü¸BAÅù±‚©gæìS¢ñ°‰GÖr‘ŽM`%vèàl{ÒkìkÇ|˜>ê`TJ4.$<.žã¶~¶3¬hB»˜«Ö¤’Šÿ½9©QÑ‹«,jzû6¡ç„Vƒ$Ùr©àIaªïP=}Ý0úz·£äq.ö[^kºÿbPw#"ƒ˜ÂÃ.á1”›×pÁ´òe…R} igV¯*44l ÷ïðÝÞ`t›+¢”^æù@¿çXý´À¹8/£!‡P`ÿ™¾h©äÔ$?®ëláDÞlô Ü(ÊŽçûQdx€À݃+ÞëöN¼r¾Þø·\aKØS\Þœøc¤WšÅ{ójSt7qŸ›ÿ-CÐ0ÁÐÆ°YE™Â´p]¼æTN@Ñ5Òr˜ÿsðJ4¦çýFQ>Qwv™Wx ¬f1ÄÝé`ï§;ð3ÛÆ¯¡§¼¶è[Ÿ<Ó( xŽëñ_Ç&Çq;òŸ/BÝ£MÀ(Ÿ¤*¹ MÎ/ìàà])Ø{kqšO#ELtrJŽñlÀºE§"«E “Vž7ͨïFïÌ…'WoZ2È2°ÅƘ:‘zÁ¦ÿ|+:)-/Ùm[”ʪzj¹u–Ó¶™xè Î{Ã!@îPæëç5v W Š¿ n)hÈI }}Cü 4$ÌÒî~þ?~Br3Ir:·ÁÇëÞ Y Þ:[†Á–ÒëÔUq24¢Æ_$ö‘…g ¼5}TDcÌù,º+ë±?ÅLM´Ð=Ò/JEv ±N(2§f÷Á^ vٛѠ]´*˜ß]Ñëë¤ê:¦3ÁÂwRç‘2kâÆ{…e·x^¿ñ¬è²öçÄïG¿Oíà$áÑ”aÓ=ý.: -g¯ÿ6ó‘Ô ¶`2Ûkª8'èÊ䓳…'­7ÐÐÖÉÚX Ïaí¯P6—BÐ m@¡Ñ³¸\K±¶?£XÁ‹ú\S¹‡ ºå'.+àqšÜ…‹4SG¤áÛƒŸ­):‡”ï—vê|{qÑK€«©GÚ´’Ø5áÈ]©gïMbb¿äDåÚºcš°Æ„t5vâÚd¡ÛßõyY ëæþ#:Q¥ôvq ¨åwKxËÊûz—†½øæL9­¼N~{×Vâ¸rÖý¢yý–†¹¤±#u­â^ù6By2c+= tÀ3Á”ï´Ò4…Ü¥øô¿a a÷ë«3¹ :°“‹ÂL3=«Ž}ºÜÜÂ#¶§ùKé·ÀlÎôô¿­½äƧ¬©’†QáÉ/ 0xfÈà)³Ë¨_“ƒH_J¾L ÷8Ò² QùÆ|ÏŸê^ÀÄH¸dL8§I즙­wŸÞ(ø§åQ¢jQ°d‹+…!|Ì: EPÍèÅÈ~Ç€ìËØžüÜÕ ]³.ÛÁ?û-ÈDI°÷oPºb¥ZÁa6%Ü!«wn9ΰ9;‚z¹ÚS²n=UÉòk™“CþS]¥ÂØÏÌŠDQ‚pöDiÊ+‹kð™ÊÙF SÉ6šT‘8Ø,š¼^s  ›s}K–òƒ¦´peÒ× ÄPHÌ#Õ»M¶QSf£éîÈjÜ(ÜòÂÉ/Ê{¶3 ñÖôM­3c`xUD†¿Ÿ[ ÷äò懬–®Vàe`)ì¼ç»8_è¥1 æ5‹8WÞÓ ñÛuÓŠÊý&ý7!“ ºcÌXêµW”þÖ¶©xî#—)%0 C:(彯˜kÉï~ ´ž…[!ô݌˄„>CÉ^ÌÆvö‹³¸6ßô³ár¢ {:ª¾p8öºaیӊŒfùä훿i¡f2ðnî»l—v¢27$Åo¯¾'cZÎÐ×Cºýq7÷¹ûÐB>Œ¨[\õe J;X4p¶Ìm`´³Ê©í„ÇÍ2±í ù7èc8÷š9ëÞÕ)©HUÇ ‚ œ´ã¾g“ЋFg½ôj;ã?`„U%ÐÇŠø*2ÿ¬€-Q2‰J%Qƒã'̱›÷â²Û ´o¡]?0|€é ö23òC„ƒÉ®àyqt Ù³›õéz˜TìAX±ñ T> Q¦ƒYFüåSd®öu\¢Bâ×\ðá$gõ`0T8×å¼ÒÞ}w“¬½£c‡G༊9ÇlL9” ý몇Áo‹RµÉK7õP'@nK›•8•‹]ׂ’TØ£ÎéÛb<ú謭g40oD.ÛÁ¦§8"þ9)p“>ÎÜ71`ÛòV‹Æ£»ygWÑ ;Ýzè’GE¡ÿI Ã˰PiîzüâÝÊJÚ’—¼U]®¾n/l‡‹¶¸ðuõ3Ó?Ù7nø6ˆóÏ”’&«gó†cÄjU›;…ßD£êð¡´[èK(‚1ºf%bD#!2X+.Í  TDÁ¨‡©äí0„ýBêǺâ©h}k:çŠeýÂJ6YÎô)†@‘âMåîEo“Ÿû‚T€ó‘¸´g~¥r™Î'-œì­‡ò>ø¯ßåLç¬ 0ªAÕšívNrvÐo¿ÎõRããb"hõçD©Ga_…?Æ Êþ{&È©Š¼H‹Ò¤Ð¸ ¦dFÀFa)vŸù7¹]÷~•ɬÿ·…™—unÒETÁN/JÈ^Øe9ÿbÃ, 1yÿºÕÇתÜ+’ƒê2ý ‡úAÀ§Æç{Öó7ë‡ú†Ëû©@JH@è”àé#”Œ¶|ÑQÝB«m£’\KšµqS"eÚèÊýˆàd-’ŸÜ易ñ/È/¤Ï–N‡ïŽÌ[‰õ8йH°w8]‡¤æ‘7öB:CÔ‚}7C„YãêÞø‹ .hœ³(ä>rD|’VºbEÜ0Ë×A ´XµèCäe(B=•mO$D¼)ªT$8òîté™) ÌJLõ4\çþ]ˆ}ÝÍa†ivÕC NB,5>|sÁ¾ƒÍÖ¾BÀV£!üÁJ¹Æ4½U:ÍjA¥T&7»8òL(É·|ÛÌ›”‹Cüœ Ñá’¿úQÉ¥ Z†u¨z@kÚ°±ŒŒ,‡‰:4V<æT`‘Ì`­g׎t;ÈÒ Ö…2Gü÷Ž%B™÷Ůآ¨`§.÷sÒ¨à”Z±‰ãS»&FRšïó9ºÆiR•SíTòÅœúžÍÓþûýõMòê#ô/­ÚÐõ†ú•‘]&Œ.ÀýƧôäÀÂD /ÒFÉá•÷QÛkØÂ‡5nMa -ëuUê#ÄÒ‚ËäµËl8 O¡â%m8ÏÏÃ[½ÜÛý“Íç>¬:§±œ, h¦¼òÍOp¸^swÂ>9ÏKj`p-¬Vþ:ŸÎ“X4³þŒs%PŸòO,ðî¸78œ¯þ<Æp“6ªÿ9´KÙbiÛû–8ÒÜëH²I¼?ç‹»Þþ…¢IýAÎK¯ãcêÒ“Ay6#D[Í[Sô¾®"r¼ÏÕ.åÁJÆ&ZIÃ4®¾²$ÍPr8˜¹7ÔŽ Фë‹èS÷ƒ75„!ÎÙͧʳôx-vŸ…<zÿ=Å|>{L:¸å1Ç<6ñ³7®Ê­½ø±Üî¶§C· 8Gn?¥Ó}\¸·‰'5Ìò2­¬Bþĵˆ¨.øƒßžŠVϽxŒ†ôb·q“u“áiocûÓøæž‡ Ô4YÖ"Ô*mœ%YÌT w“qR°õžõàŒ/¹ÈG¸¹9Í‹#Oàå †”÷ ÚrßÔºÚI€ö’³{ˆrß1'O¦SÓ/$Š"²|þ¾3Ñ;È^¢1÷­zͬóïuÖì@O1ZƒªÔ3¯ Îo.qË©¿°xD†SÿÎêµ<ŽÚ¾F–SÐ’âÏ“OØcûÝ+>¨PŒ•Æ N(÷«n—*n Ë™µ÷áâÃdè–Ä’½SW†BŸh&{‹wm·D0:ð„+n ¯YĶ(ý²ó^v ÏW¦ë—âÌ:EÊp†ƒÆçí© ê²iÜêXµ<[d ¥|–CßË-\B|ÏjÏÌ޲à ¾ü¹Ë@Q!+WÞ!r³¬¬?Ö–H¤uÅÛ'W0Þþ˜^L‚ºéðè’¿¿MÖé*;Š‘ÏÉuúOC{™ùÕ!MÈäÛ§%‚u2Fiÿ|(gÏœ‡#ší­™ ¹ˆüŒŽ!굊®´÷bÞ: РÏìûÏœ0£™Ç ýØu*ƒ›Â¾Td³[c›¤Á6¬¥,¶-µ²½T½VN¨t IŠc²1öÁý ʉ……(JÉàܯ½‡(;1Ì ꡪäo —,ov$+£N˜9vx>ÉÞë@hKƒÈ*JÜÞ‰Þ+*É æ,€—€•TôCÿ#¼”¢¾»iÅ,ØŠäâÍØ̉Ÿ×R;ûÁ6ëLDJz â|2?¹~5Yßvnïä¨BÂTÏ ¡ïËÐGD¯#’9ẑh pCÚ«/ba™-…þ.¶!b_?–‰Š~VPaŽ8ä­kÕˆþÜÝÒ裴øYÚìï$¿PY1ºÌ˜ 릉vØoÖr›€ ‘ó (¾Œa¤- vPš~«:o¢`oL°&å\éM8R;ªvï@}Y^N­5p¿ ¤ #Y²ÓnuÈ÷<¯Š?ò_ÿTD8FE˜e˜ÂoeªË$ø¡XÌmµ4™W"öTáãL‚ø™ÈTF¸š)MZGì|XÅÏùæv1ŸôZiAûãf¥¯œ P%èÔrDAqþ?œ«˜õ³NS^z@_³Æ…ÜöœäœOqOq4ÖÓø›Xè'è¶Æ£æ4ò „çVvÞ £°#Iâa˜·V}3ŠÕ÷H‡ç3oOb¹Ê˜UB3ûVÌaBKJ‘0ŒªÉð vY {ŸhÔÉð‡æ¾e>4Ûý/÷É®·¼rƒM;zÅÅéeF-b¸¯è8ôÉ£”pRf„F€ŒYŒqë}õ²W¾\¦«‡•µx)z̹l 9·ý3Ü*âp3¥›"üò5Ürcqt£ŽtÈ¢¡ß+&•^;8œ>•ï‚Ī.¢ÅŒîðùf«?¡ì8ÁBü¤ÂÅE³m nËì½ã;ÿt‡1¼®Ý {‰Ó=²‹ÓÈüd¡1z 6Ý%;èXtcBvÖ€X¦âªŸ³ý|(àˆ¤ y‡ZXT¼hÿáaÁØáƒgRY‚š¤›ýÙÈÓã9ŒsżcÌùòƧ<’ .fc.V¨üiS °D$ü1[tùöÝ+í`Ä3´”·¨ét5åpPY±ݲhxŒ³îH —`%'áÏhwƒâE[:…yH ÍáHLâƒnr0ºÕ~=ÿí=ñÿŽªfÓRýg Þ=CŠû¦¸Ê‘ʶU´xÈ?b||K›Üz—ó×Ã/dêÂä>û¡µw}QÙé¹°?ÞMßè[®¿’Am\(‰»eœÈWû9ZsŠé•*Ë6ÂöÚ”m.kB?Ê$""FyŠx½žkˆqßåÃYø£(ÜEâ Èo¦ýl.òCuûZêôrÁýõ-E.lÜþŠŒ‹¯”Â¥3|^?/zè–hb&ö’—ʨc]úê¹Ì–¬>ö©Ák=Xúì¿§¿n—ád.þ Ìê5 ‚càÄØp°òŠ4‚¨¦—Õç„Öƒ18'¥ÄNž­<¸lPBqñÝâ.u³ êú‡ê|bØî ½o0FŸ©ì›hmФq2Ó>-öŠÓ9ºpJiŸ«Ìb´–’jkäsNò’5ëñ14®$lð׳HéÖi|°©ð+ëR0½Ö÷BrFr[ˆ°+³gW]B"â28}žñrágèiñà8ñ³ò‘‰|‹Ñ@ðºR¢-„Z^‹÷†<ìÉcÙtT”Þ†8œŒ^˜ÇÇmÑ#U_Ù•é§³vC'‚=QW¹ÆÛ:Ç‹?Å]·Í0 é"å2h!4?n1:DLÿ¯òOhâ%%áaÄÎÒû…îµóØ9dðwÍß–Ù«òN¶ÕøÄÐ×Ë”M¥íÖîÀ*g• ë’iF¶Ý®„hò™#°ZvJšû;‚qlÕêMü„u$¬8|ãŠÚØ›¢„ùk™(F4EI¬­oGÆ‚äÛõèSb°(éÒë¥Z«ÂÉÃ@cD3—Pz:lŽÀ¹z1°H*Hnзêƒ#p Sçö Toà©Ä Œwn*‡Ú_¯À í‚àà>鲯êòô‘ !kr6 çé ˜¶)M7ŸŸG£!ÜQy┘yÓŬšZì-á±5¼Ç·ƒQÍrb`GØÂæ±mˆGsÆŒ>Òm/; ÜsiU%É7~ÊÇ. ‘D™Þ†¨ÛÁŽ–èK<꺈Z;OxUÕ#7ÐÀ¬•ÞDz¦»™d—ʸD/Dl(lZGÂêõ^mOgMŒ÷û0ãºâ‹’—ùšýç«.9Ÿ5HÎ\ªØße*çB‘}­i±~C·òs)ºüÄ'¸qÚµ0ØÑ}¿¼w™O3-ªÍ7 â¿= Š«ËÁluDï<ÊE}¨®õ³‘…'…Æ®ðv`BÇámîí³‹±CŠWà®ì:B¦ÙU†V«9Ô`1mSÙ²ÒW²;€×ë £Å€(Ž–´/üªKã"¯H©Ì7€HtA¢&°e©9Ÿdñ‘K"ùhAoWv9¹«Ê¹½ç¥€«W_˜%ˆŸ÷Ñ5j×ïìÔ í¾eÝ/¬;¨_ú2½iæ Sqÿ׋V®YæW A$Ì ­vŒîmÃnº‚­=QüË»ÂÙCÅÑZ©á.ûOÛ¹}EÅ·ƒºš CeÞÚ:šíS:GŸ©1SJÄÉOôã&êô+"×D æÝ-€IKºÝ ¯±>Éõë9A}F³¯õZLìfO¦äO˜ò(ìŠW?ª5çÞH ¶¤z4›NWžã.É $C¼+ã˜3dÈñdaut€¤þW>.ÈÀ*pÅT<›Ñ£ N۬ͅڙrßhH”½pˆÁv\RisëœÆ²¦ÍA†)™ùLF¨1VÑ#ïŸ[Á$y<$=@Ø5ð[ÝDëéóK[Q3ä®×£QÀäTöV åHJÅÓX>/Ö®efõqPðmùw+ Ÿé²ªCÛ±k^Nìþ…R¥¹«{­€W‰q•áæ—Ùñ_£mhƒLD¤åŒhÓò8øƒGt¥ cƒ‚¨PÔ 0¼†Á X}”Jt Ÿ48wÜ„uæ±¢¸&'iûWªæìC++Hh ГÃy§CÜã"…Ñ;M–‰e!÷LbX@²P—FöÖ[Oƒè„Ú%”7™!Úç2r3Et²ì?ŠÁ6 áa"Y²áÇè­7ÉAï?4õP[o¾Ž¥—Ûë²ï”´ ®jgÍ‘8àÕ´õ6^еŒoéÅ…=)ó9‘Ø¢xÇBHX±·sÓ_ù‡¹\B?=ªûa»M¨o Çé9c—ý¨÷ ‡ÖgœõhD—Ìʋω3w>„7óW=4®¯.p3ò{·ÄíG`LË”–©±0·c6žý~ØÕÃ…²AÉ©ðÄ+³þ}‡W!#'\w”åbÂúӲØçê½™h ¯È©°Ï÷­#ùè@¡A머Ýÿ¡ãÅØ§™²!ïbÚJlÕQM`æ)ÜšíÜâj®Y8]¦sNïñç´g¹³&tÑ=–ç‚1¸€RyNI6¦D¸Ÿ˜ + OWMý¨a‡ŸƒDEV Gä¬X(¬G)eÕlÇ%¿÷#HŠÜ«És*Vî&ß굕˜»T†h4‚‰T/ž_™Ì2ÚVO[’ˑװãiBÃi¯£»7çJ®¼Ñ/âÜv‘6½#bÞAìʼnâ9ê 3ÕÍ'y^x‰Š]Q?¡z]ÙEóâQ{(€&C$;dTŠåä)ñ0Káý’Y$®úˆÓÃøTíäYvBºÉå*ÁÓØl,ùW'ø dÄñ*A|•áÑe}¢›–™WHØ Pu0•5VËm´Â‹…Ô4¥³ –ÊeÛÕ²Œ­’Ú’x{ü…ž$1’áÖËÍÓ´óÂ_h~¡o®Í¨O,EgÀ›¡L |Èæœ€ªï|;—â„Ég&F“c„~Þ'$xƒfš!ƒ*WE¯º·×™ŠEß`†EÛüíÜÂ!ºµ…-¥¸3Â,óD ù/ÅøQ¬^s†’lNújçÕæŒÇÈ­õA9mÒ0ðøD¢ÕXN«ùà“ß`â šu  ·ªkRljº‹‚@ T \ ØƒÚÄC \ñïƒñZâÍ4^LÌÿ^HÕœ'o ¥v*xŠ*M˜ÏKúŸ“—ñy q¤1Š-j>tµ˜ƒ*O)‡ÏášpåÞy)ª0$xQ~®ê˜ƒÙ ‘ï¹Q î¼Á=ëuR{NÅÎЊÐß`€Ît•Ò¡Prš+FOˆð…l)™Mzðüd[éÛP•Ænñ¯‚2“Eâuºƒ»/9ϲVT]›§@IÕ¡¼h˜ÜFÓ2wlÚãQÌb(fFÏO§+ªÏרæÅŒyJ³/;m¬ÙÒ»9ò/yvùq-ñ…ÅagÑ>.ÌÜöÓ²gI¨[ÝC`Âv×½ò± {Wf"xžyU9âê;Úcÿw³ÂÆÆ*¹›;b`K[²ßä:6Àéù€½UÅ/‘ƒ&`u®3·¨N9Â#òµ"†µý¯‹™êi[ø!ìœl…úZä Â9/g#°KBAÚ­-t'ÊÝœ·yG w±NÛ|• 'Uô¸º%hM¯Líws±! °Iì+ ?†½¯¹",“œÚ¬Ãä!~††©ýƒTæžÚœ¢9^ÌŒgu„óC«&˜Ø6ï™Ü‰Jí›pØ’stPþl\¯Ô»Ú&¨dñ¼zÚF¿6`AÙïV>!‡ç˜aûÌ ÔB÷úh.Fš9}äîÓõËKH`¿ ®lákGü+Awÿ ö–áX°êÍ•+òFÏŒv¥Üæ‘r ¤fc]k ¤+håü'{3U¤ãÖ?¹í_%”¾“)ìr¿QÐÞÍÉý¾˜~B).ïò¶Pl“f-ñžÚ„èÐhw &mX«rh£$üéãÐ’&pÒmÉß:g€6(ŸÆ] ë/’v;2,ÒÇ ~~¸=6â˃nª‡Áîe´›mþl*ŒºmÇÑF•Ø›Hê;B+úÈGôBxªïÝϼ¢BýðÝR)ôsì·›0þ[ŠLÀþ:;ÿ¡A¸(ÇÏ¿©PwßÈ%ÿ¯ô&)[àÿ¬…èÙß–&¥g×ó $Š—¥RÌcï\Þ”0<ÁÀ¶FÄoipoÝl‹Ë¢eÃ÷çü;åû|âK2/ˆ ·á ÊV•ê?~µÉe5?Ÿú5½±®H ¼lë¥1J–j*.UÝ&iÛ‚r´WÆtM¸Žš\Øüd±Ð”ä9ÙeKr6Zo+Ÿª¸´xb« ¤0 2Z– X‰êEõ¶w1žd{+„Ϧ-ÉnnØœ8Úþ ™ºañ÷ZYØ @Zâ9Ö'6ƒ1gÊÛõI`ìΨ0üF:Ì2z˜.Öfˆ$ªwm©: ›Tõcç<˜¯0Žö§Yò§’YÈ‚¼º˜ó”žÒ}dóZhžæÖnD*€Ä`hWQ bÛí]¿KëAa-(+‹±tx(ébÚðP•B`œuÌ<(‚:gê¢"Õ[kkŸ˜LÔ+“²ìeÏÌ/ÁЫ“'ïºÉ-¨ÇÞì}ý²•1u­nYÒøÔ-%OÔ'² ¬ËÑÿl˜fA±oÝeïNƒnGæpxy6ŠNrG[:—ËbÆE¡²Iµ‚O…('/:q;¹·Æš•i Ügº©fõ"xEÙß(ˆŸñ Ì$5ÍiËwÜ5ß_ÄþÚ.©Œ¤“Ëð>óO½¼«=‘øGç5>tÄø™•œ÷ „Ý3;9÷Vp B aåWfȱà¬ÅóN ²HAH @û+¥DT›4)é5=äõµ g±V^QÞ@ïÕuœ4%;àŠÝÀ]4𯔋–tä³>•ƒï­ð2\›ÈFíºmëG¨«ô$'…Ϊڈ\µ®^Mñb: sãk@Y• G2å¹RAú\Ì ë±P.ÁѹoŠ#Î:°¬y ¦™y`ÖÌsÁc¸32ä€Wß.Fº­*€g’„m±¿Õ,: ½«@{Ú˃”7€ •ùôMüIU ŠAelÓèÏÉËu†tÁÚ&vo 6J‹£‹ÆÁ_Ĥb¼þ\‡@_-Âa&ï||k®ð¬çaþ¡hä$ÿœ qJ’4ÇÜ‘måŬ—ÖŸÕþ‹tÇ®%½I‚¿¾£]DeS-‡YzálkVùêgG¢‹'µÜâDùÄäŸü›ne£}§6|ŸÉËçÎ=wŒŒÝó—Êׯü@—O•<¥¾ÐŒ&ŸÝߥ˜Ü@ZÚ燲ºýy\bjÀ• &Ÿ¯-l®µ%&ìtI!¦²N>si£µû¡§´x•ÁÄd2²%…klÅx—é$ÎÙžyð0Cúé8þ‹wBkðôÏ?¹® O)Û Á¹¿ÿ ãÿ,ÀƒÒ¹PišlfçÛQˆšð¢!ßOC62Cp2‹èóhÛ#„Ƀ‘m1cH’pâ¤^Dþr©üìûN §òˆ:ÆÈ4$çÙdŽÚÝÇ”œÞ\V«é`š÷xzŒÈ!Ëè/X€B®)6¢ÚJLÐpèêÓ>Ø•ZŒYàå·kWç’ …Ï•†<ÜÛÿ qzPެwîç)¯)¼¤2Þ£¥•ÿÀŸbXÕÏ€©} ¿µÎð=jzÜ;/:‡ËŠN7—aK_‡=V¬Üg™þ¡T–ƒû:UÞjÙ~6¨o¤{V]V—ðƽ>xÀÅeô£]жÏ9êYw;îÞqa¢ dv¶(g›Œb4S6±éœ †4¿øüçˆFAoYZÊæ\G 7·2áÓp‰¯[Q ìéþ ŽäÎGc¯x7;=àxÊW\‹ÂFf½u6÷voF3WMˆ†a÷>’òÃû0·šÁ6vHyø:Ášœ7¢ƒ ד84;¿þdè.Ž/Ìb3Õ¤¤}]F–‚ÆN0åæ1¼Ü›Þ¾GÔ)îú¸µ1LôLrý ~\à_™¢/wovS€Ñzc¬SâÙ}Œ àÁI!$—©¨ýÚh°ò«Ð·ƒòå ‚àò ÅÓÍai'u€wÕ‰#ÿõÒâš&><|ÒÎÛgúº¤yÅî˜pÝñ8H ٲʫ,¾øŸµÁ…ŒQ5žõ÷.4^¼<»7FR’5Ÿv«2’S² äöÖ\¯*p÷–Ó:Ÿè/‹s©‡uªseŸ„(‰S0’j;`5rÇ‘*’P;„Îë¡íËüH á„!Œ­Í:’%Á©„n¦É»{{wæŸáïë5aþa†Â(ê¥Ê%®c÷.r&kÁðô Ø  $ßu$cÙ¶Nož$¤:<Óì¡€ó¥%¾¢Hü7\«ŠCñæô¥Fÿ®:àn™‡-‰°Ã¦c‘õÂË"Â)Ü›éR$Ç“»†¢!FÖ2²ÒÒä•¿¿Öfï£\‰á>ÅzpբƷ*n3èu!¯7³ì Qò'í¤cÆ™YËx5þß4+§†7°xöœWEðüø¹j»öÌòù›ï*4ÖZ#“ H¾h¹P\aUtri¯%¸Œ8èŸ"¹T‰¢¨^xšžèªvÍéå'}Uk)Ÿ_$‰Õwa|#Ò¸ë¦àqåúëHAÕâ ¨9 v÷ÛÂ'R‘’¹9“ÖBáôRSld ÍÏÒ å® HU’7Z›2àˆvþÓÂâÀ”fyò¼.Ölжӿ“$‰šÑH…³Ù»,Åiñ][£v`Cõâ€8—jsýûüW*• *à †µ9û²\O’ v  Óô3ÕØë4¦gåÖôj­P'‰ëïh| -iXô½ ôR^€y»Æ8°fÔ÷ü,XP$FPÍ:€fb6Ñ©õo~Óí’”¯©eE 1¯í;üp9ÜîÇe.uôH’=Ú´Ë+:t*7¬ÚLÁiBíÝß8hÞ MžÝìæú¦:`4cçÖ‰*•÷*Æ&Û±ð¿¾ÎK#ö†–·Šë£ÙÊCtì°ï.-Y”8ü›^~ñk¶AíÖÒmx.§ktÊ|!!·T(i}â¬cGO]®Ÿ«lÝAoœ0¯lúh¶ÇêÑ> .þ ìZ dÅ‘ôá‡Ó`•ÛÚáV]<ÁýUe=5Zïdý~oè-¢ÓkÛ€º'¸¤'Þ´h©ü^)ߣ…Ý»-}EHËͥiÍív'.]Qõ Ѳ¤lPø—Ê4&íóNI¥ öÞZjX¸¬ìæ»@ûöå3§ÊåZ·E§É VŸ·5¯Î*(ºVÛåM¾6®ÉæM¡;yY”%ÖuNâ”äŒèÎ'¢T8‡³¿›Vÿ¼æ|±âoÿƒŠþk_Ê ~!RW÷;ÙÏ(rö¾4çéÀšG—‡õ¡Á5¦¤Ì@+T*CØF›²Ks¹‚…‡©ÐIpql/ÎIKmü»Htz~sËyÖ»i¿¡Æª Ø’ŽÞ××T·àŽ3ä›Sûk“ãžóÆ;è§A¼=æÇýÇ–ÅÚPÊÆ |æ¶j»†u„º@üÎÙ7†‹^ùà›?C2kuÿâ=ÞfË3¥;ãhN¸¹tAƒÆïÏÂu,rås 1*¢xž¤…îAaðF²éø»ÌŸ –íæ›V?õ¢%J89t¡¨r6Ìn¶d*÷GVmåˆ/d©¿¡;Y|åH@E•⊆¤5¢‰œ¦ OµûC|W<Ñ "ˆ„nš†¸…-á¿É®Ë†öobVZ‘n|Ñ`ˆ‘&l›v±ý^Ô[íIÈÛÃ}UÏ2[¢ƒ¸Ãч7d5©€}Pc+R¯=8oãÔn¬D·¹D38€«3¨G„NÿœÄ–j»C|ÇËE¥[{p=›'~y?â†É=§iè‘ìSp1ÑùˆbhÙÞÐÁ©;¶¥‘‡qˆ}”6·¡ÇÃóq·¨òtf÷½÷Jä×ëEqÐÚ“ÑÕGj–ÄC*¬o³^—P¼åñZ$¡šŒN¬ÃÝ>I½ö´ uc$oPŒ-¼$YFåÊ0p„3ÜD*€Ëû«ÿB¸Á\À@à“ú¢$ŽFçóXþ…ËA0¦ò±"O­4ä÷X‹k&_Ý" »~xM|ä] ·© Òwdw‘æYÂý¼ô-"U›Å‰ÆÒX¿úÞg…õ»A„óéT•œy“DO©”=dø£úã2iR›öE”æ¼ ÁoDÎ-˜~¹ôé~šÐt?û¦f ¦2e“ì:‚5èåÏø«aç mÐ!fd¸îoXOÐîh¸'¾? ùÄ ¥é/ZßÚEN$>áÅLðDC´jʇ± ¸‚jxZW=÷ùˆÚºä‚Ѥ0ÅQ"þ’õSsÄš©êzÀ=íNŸ†þ 7R.ʾ!ê .˜â;cûé‰D¿nyÍLÍMM,:]ñ64}¼NúÔZ9<|oËém!ÇÝ–åÓ—È‚Q´Ö°+ÒÈdUJRWŽá^ |¸sŸwµYÙ—¿%  OÃÏG$tçÕí¹Ÿˆ¥™js µÕxc0€]ª6ºŠö±v×+éKdšN}%¢ÎBÛ˜` t{â¶p\¬#4v&Q§ŒäL¯Æ!P×™5[‰´Êyy›aRÜv}â‘Û\bÌÃÃXá`&&O˜o\…¸7‹$@±r&ùÙ±n2–D¦Ø7ƒ^JxKËXâs—çÍî{‚ÌÈò»²˜å8È’©PÞ‡–gÉá&;´1/$èl¶ bsûÏ"éSÂ4Tú‰ŠËø˜19YXaqWßÑm19õÖ1AÁ ƒ ËX©£³Qï XÔ~EõX#”5¢¹;žÈ¡ åj—oP™âZÜYgåগ&ªL( ãÁÎqµ×Ã$ù£)Æ›gøÖ´ï Œ¿ûdcÑQ?ªt•t• œÕ“ÅÚ‰  gô+pvÓyöpNöC]BÔ8Š ‚…и€Ò‘IÊZ^(šó(ÔÒi9VÿR ‰>Ñú»M[29¾£Ý¿µÂïç9QcmÌ¡‚j ž 8¤n3“ê,¸ÃdbÞjV‰¹Ö\Cu¾–·r3ÆR„ds g ±,&©bÐé’uY”ÛL¤›l y¸üÝ2ÎÛJ4UÇK^뮓B“oðì‚ “Vëé|FqÇ5Gn`Ö/I|³"F26E_ŸÚÃt€z_à“QèH“àí¯ãüÛÖ@Òcº™µ¸t¤Þ<õàà›KümÖ„R­â_¢87Ç™¦‚×SéVÎ5BˆCZ Oî»MÝif¤dtŠ':fÉ„ùkt~ ö÷“ƒÈ¶¦Ç'VÐxxÓÔÐH¸©TgÑߊÖTFŒ½dàQ;OußɳdZÕµp!LŒŸbÔï6›£/ õ”ö±²x‡u/Q•/ù¤+‡à˘ˆ0ù†+‰ªixú€¹ÓÑï¶ž˜!µó· äŽìuÕÔŒ;î-@°¾„6çÛÿF¼L@)\’苸PmßÍ+´§ W‚KT9ÿ Ëœ¯>;ìJ4´ûrã¥2"O¢9n`(/}Â}Š%‚nëUæS®ÖñK—(|L“‡0Àù|ú’™í^fM´í´ã‹ôHÖ–Ù^MÈdÕöÁ„—¡Z A"æšÈ¿ H壿Í‹æURÿKš"éO6˜ò®ä›„ؽ9D(|-pÚ`euÒˆNOØ ±®ÁžãÞØ“\E»ªuîKyGמÛÒf¿èêsêƒdÕÁ¨>!â@œPg|ä—z«#ð½ØeD)²Ì¼'<Ùùh§Á[ ê–i0ýÅìå_sS¨¢Å.jPx@Œ\|D ×ê Ú…†º‰ÉìŸI¶Â–TèÐâ ðRUÛù®ØÞî—ÿùÿSkç8…Ú,ÕEH“­3¿ÃìNœ1¤ÂÑÉÉyÛ6]Êðp@¼ .sË ¸MÔÿŽÔ}ô´ƒÉ)t*Г^L¥ýcìÆßôC¡ˆìéû-Àa¬BŒÝ'!Þ¯Gt³ÓOêL.…”ºÖr%ÄA–…«rõÒ¦/"*%1#qô-Z¯Fòíçªå-y;;•V,8ZêYÝ jÔ@ñþE Yî4$@ô=^5ÍZD\3볦"ü#w_Ñ&Š»Êwôï@%¡€g°Ä·™~oT®ƒÝ)v4 ÐkÀ;¿¨˜|¸Áé¬à mÓl›.3Oð›¬ë—`Þ<³ÿÌ£ÃeÈ©1eˆæ5Û)‚¹f°³zO %=Üž Ÿëü°s!øÄß_3 àœz #£¤ ×…NÈúþº8iE ;.Ëúª*Þþ½k­&èâíÉÙ‰àØŒ­xQw͆a6UF™“€ñrä I޾kO<œv¾f"FÓ\<_ǹª©¬‘•tš§»ƒKX‡7&Œ·pqrjw³åì´ÂÁËê}B‹—V&,à\ô óîÖ5<õ›¼›-޵ְև¥Ožox™T‘ž°]³`Ì,࣢<EònGúéaõ‘í#opðá}äEÇþÎèé4¥:seŽ­gµ \ƒógïÿÔkíà݉Ÿ¹pùªB_,)¤Ù~kÔö“cE87ðHÌU9çùM7æikÜÃßË@îØ¡¯Êè˜'fJnìVˆuʀⴺ)µo†ÂL7ŠðúTX«®’.PÉ,»“gI@w<à…¥ÜäÜ5K1WfwM鬨Åi@³­õ‰ Bu¸ ÅjA[1-¤¤F”Á,+@B#p[L÷5·`éê€øš;ç2’Î:óýn ú5 5€ÖA(ß•) r¡@¿ Bž S7a4y=$¤éÈ+·òôØfY '¦ÛÕPÁ·rýB·N9ËÉÚ$§èÃ-›?±¸ØÃ£`|“ðJcL<ÆŒÔVNxÄÄ3Çq8ÏÿcЖ¶þÛU•ÒtëºþãàaEWŒ'Áµ¸’â ]o&ÀRB²qÒ½Áí£shH…Få‹ÁOï¥Æ šÁ ´»#Ðü;të´6Ëü²{ž?ó#n@m(³?JÅTŠø\LÛ®†•~ÿH ŠZR_ £ JÕaâOx}XÏKÓƒf\^j98Pç³·À%ìLZÊ<1lJâB®Í!`)°…&‚2Ø–ö'ÒŽù[ã±ô“ l`yöRú}w®–Š”a­5&*ö„]ò§ÉÉufEmúÄÔ¥–”Í  (• hã—)ãôº E5œQH²T‘ ÐØ“Eõå'_±à©f™ø£Ê|¿mó¤{òæÈè­”ÛpÞ,xÃRÞ–=ú0wðt Z¶î¦W5% CÜ`-\LÆ{!t+Âr{0;¶iËzÔÍ A¼LÈNÔ,¢_ÛD’ç,õ¦~UÔ]ñFž Eõ28ZKñž!$‘tPJ3äÔ$ŠŠÉšt¥&Õ]ÓÉÿ#ÇLøÍ×9«ž§ÚôR”Ç9¿üÀt$™Ð¿{IKi`Y°ZéX· BÃý•Ñž¿© ­A #Nù×7û­® à­Â¢æ¹*õL÷—HòÅÕ‹’’ŽVw»« ½ÆÐj׬ԕ æï(ݺ1ΫiÕ?«?ÿ>àØØP„w9çÅ"!ÎG§êêêp «8©ñ-ú]{BòUù PHü2H¹kæ± `þ"i˜ýð¦–*x&7Qhq÷ïrÐqÿõ¸XʳV¥'wGç×{è^Ôpˆ/tFÃ…Ü7Ê Iâ±q„×rT†´mW×cü᡾ÒËËXȽé‡tÅ<šà^›ÐKFÒ„myz˜™ÖD‚¸q‚0·‰¹j:ž¥ »š7•N%†‹\¡LO³=d#\g±AÓ´¯òI·M'Y  ×hEs¤a%Ç1¨¹ ^Nøhðí¶ ?©ï„…w°›æ’ɨƒãhßÞv)ž.ÖGX\C 0Ö>H©9ïbßút+ÒýÙ·;1…éÌ,\PÆ<T„±üÂokøgNóøñ´àRÀÉX[(ݬd¤ðŸT‘°Êç{°Aš"˜mDìHdâÝûâ1üc0Dï#u.âzžë2e“ _›ê¤§v§Ï‘3‚\d·›ÄÀ³íF7Âзcª°ŠùSÊ@‹­I˜# BR(Æe,_µ¼”FH Ç’ÄI\þÔÕ'f³ å`L,¦¿Ë™¯¥lV4úi¢%€ÎV;yÿmÌ—~û\Äæog»Ñ ÁÓø­~T'È”AH<0xð-Y“wsk²ïZàˆ(³¥øïÒJè9(Q]¶M Bí?—z¤ÛO ód­+êžœ"î™[Þ€3ÛæÖù[uöpõ\þ@¿T£Ó®¹ö`çÝ|¨¼eÐ7‚øcÒ®_î„ûæ4œþ«&‰0„7@ãÍøÇ<ºeáóµ*u6ÞlûŒs£ßfÒâšF±¨c32m¶‚zÐ[µ@++¨1»ºJQ+k.Ѹe™$þ¢ú/EEõE_/¢ã‰Ýiç¡:+Q8 ¢@XÇ8ÖhEm€:Þùôþ¶(1§ÓH·” Á>å¦ÌŠZ§]g®Xi¥CÛóÊr'2£WÍý»ê| Þd ×KXÏPGdFM¡…×_µGZ( Øœ‡Ý«°áâ{¹h²Ýýv€™Wzበªkkþ›q²Ûz'ùo*ÔÃK4²@RŸU?¡#q^Ó1ʇR±¬ÆŠ~~à÷Öhx Á­ÔnÐ')Õx*1Âô1ÚmJœÆ›6‹)A¹çxì\.°©¯¡¶O tj–m}M';EG[“ ™¬þ5A¿z\ê]V¬æmý3ÀA.êk™*é‰)ò:²vÆ×]h)ײÑR”_›ùêÑê~HQôEƒ.›ä0 )<ºCyM}Gi’w«è%d-åöä1©ÞJÉ9,ê–$¶ß 9qWY¿Èà~¬ûéÈx GS¾]z9ÉõóÆG mK$þØ­ó`5}ÿ¯*(àœbƒ„; ©î—t*ˆ#Ý×eFƒÅ,á”öGãÒ1 ”ö…Ï8ܕ዇¨ ]=ž÷2yôÂ7M=׳+ÞrgƒpŸÛš=ÈÑü·g°mE A¸¬´â· ÌÓ’ÕŠIê>&™¦Ù`YFÀÿê_%)8YR@°FЇ•›®§P¤f¼“[r,³ìÝ9tB1zÜE4ò9w2ETZ3¦fp€Ø·«i¼ÎÊŠŸxX¶•§^Ob(pñ ÏûÂãK„aê'uláþ05m-$šm6gáqpWP3Mñ*uèa~šC»Ù³U<‹ï@ÂØ_F}n=»¡0%È}úF6ÈYQ9pÿý\¯®·0‘€ãõûƒÌŽö‚àA¥04ƒ¤KŸæñ”²ü’Ý“¶¦Nÿ´‹Ôùñ£÷#'«V ×-aŽMæ‚Ìõæ¿LË8Ì2w^õÿDÐ^Aî—üç·ðydrIuçæÐù³ÇÀB'†cåÝ&W†NáÚ ²'wþ6xáÑÁ5/ý×°)ß/8=d9Jé‡Ç2e»yŸmØLâöÌ´›<²´S¦OVø Œ[†2¿ðÿÇ/ífüY…´–,Òäý—úcÍæ„ûÞ°”ä=)/÷muã䨴vź)¹&8 ÌúdË0ÈÁ’¶®Æ9½÷ºéÆ5XTóoK^‡è"^¶nâ½Çîµzÿ ìþ/ ê '{#FDŽw« $;ó%8áUgIó j8.¾KÀ{?^<ðˆ+µ{ •lT}yJò'÷²åà´°#x¥CiâçÀñÉí c‘Ð>öÇ¥Þíaˆ€ÍʽVÖæ_(êCªtÓáfßË´I­z,=ìIàØ+9àÀ§mŸh¯XPG«ºñt¯&qî%<ƒb9ß(–[~€ œ‰2W¢UÞaiWe”]H…ÊWn®â"Û•Z Ãr’»è¼íÍOÙóO 5ÊCï‰x§ZqQÕbѲµ±1}—탫0ç 1£sÅ-0Jx6ð¶¹¥ëÀ=l„€å~Np¯Å׿P“›@\Gzg—Þ0ÓŸ¾ ï\tyÙ^“ö§Ñåh€Ž¬IŠÉuÉbJUGq£Æ‰v¢Èlø5Å‹ñ•îÞþBÌ×8ë ŵ?l÷V¹º‰™j‘Ö5èÉÄ!kÁÁs.ÜCq4ËU)uä¤g±6sÃÚÜW“0„†VA'±ÿIòAúàÁÁ/NUgh ‹Ó`hx‘n.¡¹¿ë­™ —‰FäºÃ:5þB.i9N~¯Ù0üãXO:@®ùÐSÀá˜CøMÈé& Ãѽ† bQÄÊÐ@Õ±tßbv*3^ ì(}A²—^ÑÁ-Á&Ó/vù¬¸ /$«'·÷Œf¤7ø@dk”!2ôU¶Í ü¬u$Ÿ¡Á E3–ÎM•nߟ•DB± À}žYç^ëòÆÏÕ4E_˽£‹u1(ÀfNÔ¹H£/tc²iѧ˵R ÒPú8zGó‡èe¸,)–×eãöÎ[7Fåà {BMstW!w1 ~ö½„Z$$A¹¬¨] W=Ê1 …SS…oîÖs•·}óo‘Ïüª±ì·ÈzõžŠ„›#À‚¶±Í”wßZº,ZMäþæìÚNK½k¢¨ó©N·ƒŸÁÌ•‹ìÜ h 3Qnú2óôøu½\é{¢.OŠŸG†ÓL[ö­"bó1:v„Ém³\›DÕ‚‚10ÿZªl4—bÖÌŸ,J+½cD©¥~yÐô ^‘­UG¼|Q¶®ÄF=AÍ\…°Ò¸²—˜~hÇ{Ñ€;aÎ>¿ðUåwJ¯‚Ù)Ì”TfÁv¯Ö‚5ø "†(qÌò¾¡–ƒ0Yè¿Ëàj “Ý0Æa…º`T\†N+ ¿ð¤aqO|¤eéhÑsðM޽ûšvâ7§D¯ú·)SwbÐ[¾C%A£àfØÂ"ÇÚ3Îâ;C@¸õŽþ~-X ¿7UI¤q=•˜;¨q ÊíæO€û8Rd!ôñ>òqݰúKÆ­š“RÁ†zª:ÎsXt=`díJ&Ÿ/C€•űTøüz‡ñ snœ}»«é ­ „ €³ ˜¹È¹o;Ì$Ç줈ì¿äÙk7°Â tct”ˆº§™E[šXgèά 8·Ž ΑïÿãîJîTÂ>bYïÚ.ÎÁ[ðÕBj÷"J%‡§é܃Âv'RthPoqT¡/)°íw¤}Ê›yÅky÷ßÏî1è¼!ºãþ¥Ï›ë±(¥ fr  }’3ñübB£9+Kª—vhp=Áµ>¤gdSR¼KU¯l§Â½n³åKŒÞ©]6_xžäŘá>M$ä,þ³Ùœn„;Ÿ}ؿ嘄ÏÛmæE쿦è‘/Za:Šß£ÝúÏÀ3Ž,û¹›hmï–·"wˆAœÊê«ÓncRÛÏór 1‚ «_v}å„ìøjVú–ã\ÖÌ„éqß —¡§Sùêúxé~˜§ëæj]µd¾(ËŠl„:A™’¤±žWuÕ`øóÕí¡ùÿ¹áîÃs.}ƒ}‰£,¹aoåäÎF"DûJ{:z@Vý°w]8róp°d§´CN)¬auKÿµ,~öv]Æ>µoëü̲`¥¹<,䔳Õùuëm@C…'u-” L$OùÜŒ}úÕØ´äžˆ±$a94O«Ôâ…ÉÎ8Á áÈ ýñ.,ƒÎ£ v©nºX>‚W¡¬”8Ê X1åsSö ¨ÒFÎöh÷Í>œÁt!*P°Æ°“”E‚‹S¿¼ß¸Zcú%b‰à>NE>¤h׌€Ð&"ÒÕ°ñóÖé$JMìï ÀÖöŽïœÿþÛŽÿ áĸù,8^G°Ï ï,E<†Z¯’s¼¦¦âð¢¹d´TïbÚQŒöP ˜’mì]j/—5a,gÿqÊÅ% `›”n ñ/9öjš6ê¼êøVßܸQS¿ÄŒcš˜€K èð4ôÞ²®ƒÿ0d¾y%#80@@@h™õu:ð[_qà4‚@7¥ÂïøÍ%"ÁÍ×Îê1²|”§šZGx$áøle&ÐiÉØ!¨FÙwåÓMŽÞáNá_ÿÓ>nTvJŒâ60Às[ˆ •œöÀZ*>“y—ž¼(­À1#ƒ:Û‹/¶ýA×…:dËð©uWU;=O‰Â²•·”Ïëgš 7Z‹Ó¶o“³æ¼GE’sé ?Á§BS$úÓ…ðD$J”©X<5ˆV‚ñt\ðÊžÆsíS7,­l_„= Žvs‚…»«/þ ðÚéNÃ0¸wa=]G¸aˆ*†•ÆåÛ;a6W]ŸØí°¤v[¨Âò\téZgÁ¬›Ž­éêOFÍ~ŸpÁ\­s[¦ó½§—`(ѧº'o4ºúç/™˜¤ñK¥ß6Dr\ÜÏ<½ŽþNÀŸ¯&-^ÎBYž2m8µÁ%M4U"rå#k|íÕ↢ŽÛ¸0xØ¥Çñ](9ŒzþáÇV[Žb’~RUÈ–#s} „’GÕ° j+Wag?{— ÒQÇ!ÓVãG‚…î ªE rCEê Æ\Çëps–Vy[GìŠåÀi ¶…œ¹ør•?€O åPÍ4öÍÕ*‘7–]GÍhl45Ž…ø~&ÐO¥º¼\‘èh­r½FAqôn§[‰ê£qã2Þtä6ÃLTõºí&æK–}ÆUš a;‡…§… ©DIýŸ6)ïÅ¥«ÁàΨuç'm\œˆùb…ì§Ÿn`0+cµ-z¤·dµÌÆÌq«ÂXèŠVI·Û)9ªsJOG6n3ž?ÔŸç‘ïV˜›EäS¸s—¡#ôTsÌåF³¶¥R=êÅ®QÒî»Î¤9 }¥e&œêïW`ÖUÀmª¾ Їu—tEÄ ^‰ò¨L¬iâHé–Ú#]]ô‹þWoi9€>GA’s·Åä§cßàa¿Ñ.XLÞ0É­G°°ÊMsÜ˳Y’‚¶Ö/õ×>êfH ·kAJ–Ö®4hJ[Õ‚µWoÇÁVëÅlK– ° õxå²lëlŒ¼¸.¹tž•ñé´¢jñRdÅÿ±÷¨ð’0¸ìOýYeŠFy E¯\ˆÜv¼lBƒm×XÏï×ÄWòÄaàµZúïM&ç²$mÀP„é(ôžë( “­V}ÖŠ™j õÎë},¢?Þ§©ŽXÏ¢*d‚ é\7—¸É ˆ†3ìôì)œy“âBÇ7r}Ïï_vðæ -îNd0Y×ÐZÝ@éc¤8X¸^„Š-jø(¦ßࣧbì†ø”}m[Ëä§µî~³ø•¢*\æBì¶)­è~w=-³.¹+UÓOìô8#C‘QÂëN‰NQª\nð9uöÞÖ"[Ëé.²8Þì{.C†Ã5Rfå³r&©°Ç¤&¢·ŸÇñ"öÚ Ý¯©iý­àrh‘ÙrN2n>$‚ÏW sNK×£±U.«ûDZ%B7 ùÆÞ «b±,ÌéÙr•u¼C€TÃê ½‚­°Œñ(9"¬m£¡3‡cœì "µÊ1¢Tváu¹1Àú ÕË4…©ÐBuëð2ÍÚ €™Ê{»#ÚuÒ{úcä’”a]WÈ&Û<^Ýž‚½¯°Kùf=.ê»!sXãGµv°qQì0±œëdV¯+¹òI?r_´÷™œ GŽë–ñP2øš #'Ös Ÿ"² ç×õYËêâªcÁUi ‚ED#œ3R’m ·úé¼<”k$ ïÙÓ2®•m²1#R ¶( }(O‰¯xÏ”)ù¸d9z'çÞΉÞxãž„X7«ŒXîƒïÀ-6_=(÷+&ÛWø£ÌŸ»ÅSú©Ø*+bÁþ¦%½r¸àŲ/ˆÕ§Š–;N`iÁµ&µ¼Aç㤾º£"KsKØ¢×c‘‡8l~cù.‘Jê¶p`À·¤ X7fC@ž3Þc×Ï!÷çÛ‚ØVS¬äû™¾“áú>¿È ¥IÐ5c(•§üÄg¾vñOõþç z-¦üf:'£Dñw%íüÚ‘WIJ j:Òëp^.Û@Ì< _‡ä3øo å?Åwähq@÷g& ÂgñlP.‹’¤L”˜åFØ3çìÕü—n~¡i3Çúu÷Õ2¨½Úìk²J¢9°¦ ”xª[^<¨Hã½9XbIÏ ªíy††¬àÀ¤TÚL[è«gÁ÷Ç7q,åMI›ïüg³©£‚¯ƒ-®d»à¸×;s“uk+Þèvi”x¨ç9-Ǫÿ{¼È®29_u„IОi‰·iôHª)Òø“aÿ? ŒïÓÑ '})7çJOz’V‹2hŒ^SudS”r0ì Gw-6×efèòÿ¥ÿ½üwx&ÔÜÙc‰hûjÉö‘`}E5·ÌûÎx=fOh.æe:ñC^ózB«kV\ÐA‰ðPÆ©+Èð'ò.),ˆ…Ð~ÔÒÜ0ò!€Ê>úÉ9’b˜Ü_wwûöЫ!¿‡Ð;ç*K=MíÑæí|øZp\=±©û*¤ÝI|#ˆ+ï@tINÛ•’÷ëáYL=‘LC¨X¤Br¹Û01ÍÐì—t7Dg“¨S:¢Æ^¦®$ “~²‹Oe×ï†OI9Jie(å窅±-Yƒ|ºÅüpHîAy‡×Zðê{¨ã[“2¸vA„%·,~[b>¯fgú bFMMâ·l £fK÷Þ²£ÇRã6ÎbtÎÔȘõvͽ¥8®Ïº"5~o¾›®Ä+P‡ÑFŽýQçÎ# Ž¿Š75w¥üâöœ)¡ž*–Œ$ôZ½DžÉ:NÉÂ0?ï™±Ì3í'¡c,Q»#ÚÙÚ;€¦·c95Xo<¡¤X®é#†D/ ˆrÏrAÒÍÿ¥Out¤K(ÄŽûeÖƒüu¦ »Ü„óН*§@öO+ä‚Ô|7‘]ÀY±"ض˜ÑH¥FÒ‚£ó“žpÁ3{\>Ý&É4ÆØ*‚)ihMÖ/•hñ“$šÙM­m I6Å™2žu’o†ó²» øJ¡‹WŠPêÊéV6Ð é꨻ëœ33¬KµGú6wÊ׊ýÀS`mU¨„tË Í¢¼>|C‚ç$B£ÞED‰d/QƒýÑ,Õ5fû¬‹Z°ÿ^%L¸Šüjrþd@~p¯ÐHÌü‘GIÉÏ/Øìûh×JI@1ó kS¢×>Ò?vÇ® =l¼ø9yÜfþÖSñµ c7i¨‘®ÙÈß5õ|ÈpBÑRä®ú(Ù:ik=Ä·áÖÍ¢ÒòAoë½ ¥\Ž! ¢å€*>­>a«WùÝ,.Å|ó&“$L©d‡å±Ý²%}̉ 3Ö+ù° gí§ÈŒjºš)¸BÀfÍ ÜÖ^Ï”#4±ÕôV™9I¡ãWÅäB¼wÂŒpS9÷Ò%^H…Ãóf¸3â(5Ÿ˜1à±rÆ)ü€ÿõ¶dzp32ì+4 6”¦É㦫Us š†ª•áâ•vèeÂ4ÒÚ©¶é–o¬ j…âÐx ¤¥ö‡`nä >Ð÷Ù(=K?ûP£lT…[ ûYЧq£î—óS*R` Ç ŠçÕ8ÛÎ0åB¡:p¹ ª5F3m¾§)üiŠòÀi¯GkˆÕÎA+nrPj¸JLv7ÙƒZˆ8Y9èqø±2Ê`f› Uq1ãTõ‡xQlSÔBÌ£rôŸq ÃèCù˜áBó®èŠaÉEÄ}ª“ÒŒ÷ËÏ¥”¼e‚׊?Ï””©„¶ñ¦ßG¾G'mç‹$JßFßê•è´}¸5¿Öçc3íAëbÆù!ü†$ûïU$dòÉö"»Ê)…>ó²éÃì¨Ñ¼þðÙacQ˜LÍnÍaø"³à˜dÞe†ñ}~A¤DµÚ‚QtDÊjìØL­¿šgPò~ž (¦ éx•UǪžmlÜ9œæbKmÞ7Óa-Ü–¾ÁÆm3© gΉg4MÁ÷T^‚ﮩÜvÇbÒ£lù·zpëÕ k¶1õQ\“%!„]c…é4ñ"µ£2äÿòÍÁðõá°6‘6Eú¹C»–ƒoASÜWuÆ»<KnïZ@ÂCÛ‚wSáqÏü$~EI±jhKJ0[˜$my_{Ïàv\<Õã!\°mGÙ£ÿ=fÍoúþp&G] ÓLB=¹=uEÖ(\Š«* Äe™‘’ˆ¥»_šPxòA<ŸjG¢‰E˜ÊÆ>…XŠ×˜¦4‘¯®ØaàÖþ&³@Î8§ø¼3ùÝöçÔÚíã²=èz</lýÓ"‹æçFZqA\Õ³œ…ƒ§—rƒß³i-…¦íŸ=)`n¥¤Š$ÚÚçg¨^ê2<7‰eދɶ{ÝòšW3ÞùþcÿlÍÚºúîèÖí©’²9Cÿ ÝmõejR#>®]¼®ç ‘×èlÝŠ>He^žh²ó·Ùõ§.Ȝ餡¼E?jû¾$>&}s×ìcy wVDä„”—·E¡0·¦¸ß,Te¹?“Õa–ÿ@0p®INQy 5µ®Êøkã4iþné¡ b¦u¤OÞ·~jæÁgÓ@­WN™L­©õõµSÝûÛt›ð]³NFxˆŸò]™µ[ àÌ~xh¶ ‹¿fQwY;ó"õ¤ ¢¦¤j¬tÉôÅ¿ñ>!Mx›oÍ4qŠ»—BÍ`õÞ±×Øµ —Hìrv1Í¥Xß1'Èò{GÁ…wˆŒrmƒ\îÛÎ JÆeàÕ«~‡ìޣȋà f³ZIkÈ¥Ø Ðæ~rŸ¹tx>ǿؔî._íì²§¥–Ïù§A‚_ç4k1À'ð™i„jù$…f¬ñ nˆåó#–M9L|:eQs+;ë¡¡-H ûZÖ(>f94 ½!OÌ)²CÃÎôÄÀË­è?)êQçg}ÍjêN(}–eÜHuÍA}»õ‚q~y6 X™2Ä“‹˜l÷9ñ¡\ÈÆëiÌå†Û†éHNœ—ü©<†5vÇÇZeû1lŠQ"Þíkº •ÇVà^/Ëò'Êk³®Ý®¹¼áïØ¯`>«R±Š×Êú#éE¹غ…°•¡H\[Þ²¦)ލkøØÐZë›ÌÜÜ<ÓÔÄj¼Ï®™r&¹ÚØ_å(–~H«%AîÁËZÇ¿=CC3JÏìqÈ—;{Œaèx¹E0,)μsŸÂLjödoäÓC¹8–ŒyÂÈα>ÿ¡ 3–ñ*ϸ¯%Mߪ4Gk´Q¶Ô `´#©ËY߇‘:ÞIi–‚Ú…`²“y‘¢S÷\kÊÅé Èy-8ô¹°T¶š}ú*C;`ði)òÁ66ZpÃ¥mN¿¾´=ÓE[]þû‡ž  #É[ëð+®cêñ”Ü„hd=ÛŸ“ãyE,RŸ£jûÞ"ÓkY—÷T¼ÕÑ̓šÓž›:FñÖåwbG_h¤Ý¥(>_‰õ””†Ž°]åh—!¯ AYÖá ‚.óè‹7Š&>˜6GzK”t6D»¨ªnÜæÝig 1µjÀwOzžt+§‚¥tßÊÍ2ÕtYx9ͼæ™m{œ&$ º·ÕÓ¶¡dL÷m¿uþðEF¤¤º=‚äö&1@SC8ûÊé Ò¥KêÊ8Ö{—a\—F,)Òe«±íAÀÜ©^u«°I0®Šd˜µ¦9#^¹œF¹= 4„¯G…üü¯1ÞƒYà(En.p` d¸9“?o~Òdβ![ÞhHuÙ_œqɸRë#ÆX¶ÉÉs†Èq;pÞÍò¥Cä-U¿~¥5±KÃç¿ý‰eÍuüg¸ÈMƒ3ì€*4iÒ>~öžaÑ´œÔ»2?«^.-~ã2ô8w±§R„ae)wVLP”€ÜÂK7€g.œè€]/ò8á%üعÿoœù7ËÉÙ)‰~=…2d¼ÃÍbH.îM¼ñxbµœÓ6`²è(™-°‘«ŸŸX7Qú½8…‘ÂAí÷µŸri=9œj÷º èôZòæ|ø_‚¨tV•Õÿî³ìµ² ¯Efpò²¡Œ®[#M?È‘ I÷šŠ’¬ç~ˆ‡f̧ÝAÖÏEÇÒ¼Ó0kå4 ×P=6<è.ÎmZRlÐÏÕx×Õþ›ƒ ¨ÕwÍ’7€îÃÿ[œt¹ ø»¢{_ÅYTþ¢†ç}¿ *ò¨sSÝž¬Ú§ÀÞSJ¶ˆâÃø-z,†FOµ©‹Ç™›>úŠ+ó( ¾¢¤u6L‘L?-'ÅïX2ûW‡vN¢8Ïê ÆË™Å[“WÑž5ÕŒâø{Y^ìt‰YÉÜç’¨‡ï SF ‚‰…Ûçúk&‚Güž_h =¥ u&`U|äé×èXíµå"â˜:j·”è¶³nÙ)6n ɺÔÃÄ'5«?æ^eŽ%£ÇQŒõpæ•x‡FÝ€tžxÄØ(K¥àáwóOc’u–j2çÍŽPŠ“]Ã<Ý¥Ñovw6£„SÛ«ÞýV3~ NÄΕ²’æV-/àê.Ÿ6×N †Îß‘ ²(ãv¢è€žC‚èÂl$qØ5[ÔGÿ»!Ù|ŒÓà«3r þ¸üK‹b¢¶}j§¾ûA˜C1r³Vï¨@]”~õy-’±ÏñtüG0£*Äš˜ GK|”~•æ­t1CaÖ¥þH3Yˆ•‘1>”;ð·T³ÔÚœÚ*—5E:,Ö°"Ö£ÇO[³õ[b‚=2pÒ[v5’NÅ)¢€›7›ºÁ¸µbムªí‰È—€&*Hçxdf'?q¾q“ˆ`jüÁ] Ëtvó,7:Ü`(°û9¯r©8ó ×ëV%ýû[Qx<=¤ÖfˆÜEóF͹ óÆ„+êä…§µú.kÆ•{xÞör2G™  9p¥[fû@H¡q3=Je†¾–$ŽYvJñߗLJ¬>»±«ù þ,Õq*CžÿUïàŒÔ¸qácE‹4ª(`«)¦‘tÂ)U꺭Üz:C/ÿÑNq+Ûôuýÿa®eûÓ¬§a” AÈU@!ZÿúcV@ŸœÑ<€$i“bÓŒn«%·|æêhäºÊiúßGÄ*Bܤޢ ƒtBÜx"ò–=‡ L².¾DÙžL<‚ïPŸÔªLØ\û&Ô6Ī6NeV#Ž=ï†á¬p-z 1™µ¡X!/H8üP»•!Ñ!ݲÁ"ÈÇha—C+“fû¼›ãƒÔ û²Ònu/¬2Ž´C1ëqÐóè⢇}#r’û/`\ýÕP_s $‚`”<`ôFÐ8÷‰xmØ µáù^U6á\oo sŽ?ÁY™½/JƒØ%ÛæÀ  •ÜGŽÝ¡àQ‰¬%Œ:¡Òç™e²òŸŠ¨ÞŸ–+ƒõúѯKБ:3=ûÛ=/Ø?n’NÄC&ÈpõØ9¼Ñ›ÍAä5¿ŠHØ`vŸC>ebß§ÿ L öÔCKãt v“WŠ÷gÆay5œç<ÚhAÞXë!2§Ï;'ÿ (àˆŠäÏâìzpô…çõË}®ÔoC&Ò¼2™ÙUŽÆ¡}‚VDÊH¬ªò½ §C÷úï1T›ës®“‡nÞ'rS~W.ÏnŠÈ­Þ,„"n5/@­N|°ú]'á³àî4Îÿ=®É5³ùÕcBfàצ¬Ø| }ÿÎ× 0¶Èç‹·ó¹ïºÌÝ_¹àùB‹¤œ.ÜC¨µÌÉ[*¾/èФ‰€%,0á$Úón2=b5f#{_%ž"èþíX¦Xq@¯îl "ѳš<¶x(ß“–*ã‚«ôç®wEÙ["ˆZw[!¡€Š¾f·;+£dXÕÉÒrÈ•ÔyŠ8‘è®}öì÷ÞVZÒeU²³Î•R9¸MßS¨ :çI®:›Gh’Âü]I_³‚€™ÇmTÀžüGÕmmß¾tàÒ¾¨ÔgÓÄww1€P[…üf õ$§DÆæ>sdÂÙÏa¶8ÿW;ÕPâ¸|\²Ìá`Ob ®ä†˜j"ÕwU#iMxÑhpì“`n ãø<Ÿè9$T6sLæ@JwË{±îå¿G%&5è4h¡¶¼©°ø5 r÷ç'*Ï Ý›–-ÚͲâÎö0ù—Õ–…£FÚY¶ÑùßUumýªSY/2$#ŒVÜÓ«!YÿΣ£ €m×oƒj¦“‚¢šõ©BãÉ_mù‰TŸo˜í^—ù ž·%•w›“ý!VŠè÷çíă–và•~ºˆ§±8[V¿ÔÇdZVÔþsœ—qÉ IÄX*^œ)…^§!*&ß;ÅO󠨎,\uP¨Sª]°‡Rª¢ÐœN°®œÞ5ø;Z¶a§]ˆ^Ôi¼Jú8o‹Ý ˜“6–dÞî*’ó[ž1ŒS¯„äaµ„[ælbãhÖ}^4Q`_¿‡µ÷Á–ÁRüYÖ\P (u‹ã"?ÀðÊ·ê¦_ü¶ÀUîA˜dg —ìS¼nòà›²àÝJyçj´åà"¡ßÂgu¢”!IX%윬›s§ ·¯î!g0Ák¶òGwS?Ä1¡’B“Bý„Ó2§-D§­‹ÉU󠶯‚–©ºáE ñБ¶—Îp«¸S¼LÑþUl•ÃùÈUâ‘#Iþ/~£®ñzºê|á‰6 bB÷o«ë„pSàVØ(áÿâ¹·<¦A°w/›gSEî C˜¤ /P=ß°8ά\Ñ»ÅU¾x‚aþ:Ë “ýa‰äi¶Wlž@ê¬Î—Ì,_øÕx¯wý"Œü²øò“Q.H¾O ãï;`ÿ$¸VÃýß4ø4³ £Úùê·þÅŸ¢@P×Ô%i–Ã.VÚ⪶ûsRíœ* ­‰£Á¹ìwYm»o€ÈaT±ö¯e33†mv’«éjSšÆx¼Bæ›+«Ê#jÅÊ8Eî; ¼R¬GÁT­V- °Ô1±¸<ÌãB`[öˆÌs;^ìîTT9Ç#~Ô¨äYÔ!Äu`Lògê›:+ZôП‰¹#×·^ó< F¤}´n™¬n2‚9»GjM(dÐó%­ZMì3æŠÜõ]#Í6 >Å$a†Â,&#Ë mIo¸2Í(¦Ïd&ðÅÞ3–“;WùÔ†®÷ÚÍÉþ¡;ÉûE H–UÞ5¥×™‚ùá€ÐÈEJx› ÿ÷ž®LÍ=h-v?›ï¸CY}µj-¼FHÚ=æÈr@Tv}gcJ°è%šlvý~‡ÝÐõ£±…Bw“ô‰âJ0b!­îUg:Á>ÑTÃÐßʯ|T{<ñ‡'Þé u=ÿêÆ„w€¼ ÀŪè%.µ0c!“!„:¡=Þú<óP~b‰}ÚšÑâÌ·7RU¡ðú<Æà¯ˆ·ÿU«ÄC$.‰©+'~É‚¿š&y›©± `01MÃañFé>5&BÆÏV­¨ K® @ _Bù¼¯Æ`4N3¦9·w§Á" ®} Ôœ^ž³’¯žG…¯ýÑ%¶BÔ@‚^­}ëéù“øµÅÐu¿r'f¸"Ê®SDìQ ¼×Ûµ7-ׂóFjoùöW¬~LÒá9ÇB·4&·Îå-*m‰b(ù çצÇ] ›v] ©WÎ-^ËtDçHXš]ª@¯–y˜ÝOîbž%H ÆRúÅÃkôŧÎo]ŸðpçråÐõ>ˆuÜr=W`”LŽw~nýc‰þáX7;Š” ¤Z:onÎf.¥ j? ú¾a+±º)…Q“‹DOò+ôm-1}‰zÖê ôìéó²©x©{œ¶0h[  ¢£»ÝdîƒdÜTKÇ.2Ç;àŽÂZ¸ø\Ÿ¥Í¶5“´3·þ"ÿĹ àƒÛ^„ìÊ—±d»éÄõå©@ð àu¦†ñ öÔÚ¬{{Æ¥ÿ/¹N!|L¶ù€È[a SlUo@¹pZ+Š<δ•xÓ™eòÏÕP7MsT…œ²éŒâð ti$ʳšÚm$÷ÔZ'.ï!æA=I)ª¸Òç@0èV ¤3«&`2Â<æ¦Ü.¡w k\C5((LOÂÄ嬄h=±ÿT ™…Í-âô.!à¬p5!ø _6ºc ¾³9Ò”î*i¾šž…TgrmôÚaœO£,Žç&AáÄBÅ<.=×ô'ÞG–žU(ËÚim†ÇvÙÛ¹ê¡EzGA$XHŸ<¦û¿ä·›&Ûg•W)\`8ü½£éd=HÅ94WnØë|[þëΆ1ÇmC¥x>ëb¿ø¨ç¸PžJ¯7ÿPÜ>ßæ8p†/H¾L¸:Î# žsxeŠŒšŽ&•†=]ôèxFàV—ê&—8ŒÅQ‘#“¶{y7û*6HLÖ„'xÙd-[(WüqcÁ×Ë[ëÎ&èyØ=ë\=/1§âD>üÆ’<ˆ)¨*ÏéÙ2~ý(™|:ésVˆq[·Y½jÿ¡#~p‰DÏ ^¤¾¡€Ý?t÷¨}òîΗ¿iÚMP„¢>"æýDGþJýK‹&•Ž®f¡ó4g·®©§5í[ ª¬Ôä€ÇUÝñ»ûH$ù}@ÃÏlç/nn—˜5©»p¤ãͲ$[À™TsŸ–úM—f#ƒ¬hõ.<µw¤`}J}åN,aÞŒÜáoJ}ò?žg¹û)­£d÷­#W("pƒì{gÜWÉr4+‡;ì¯lçÓ` ¯«Àü‹c•̵õ먠‰ÈÿÆ€÷¯0…9F-A³é”™ìa®Î¿ Bü… UW8É)4Ê÷Jžþ}!*E‚ó(Ôïˆ=Nr¶ÇÃͶœ°AH£‚*Ïu2õAFvfÌ|ººÛJ= ”sŒ ×ëqÃû@¹¢ Å»Ëím ú–4µ1mZŸ¢¯ú‚2žÂu8lÚëN3b¬¹ƒK:Fm’„ûŶ™¼†”¤iÊz¿r÷ÕBÇä<ÀŒ¨Bm 3çG²ì½wdŠf¾ç½á¢R±Ëzeï\¬>ܤÕYlPÞ~²¤‘d«ß›Ëþš;öqù¨F<ÎŒ‚ElD*TL‡GË`ÒD9n-ƒºè³ïc ?¯Í³ ?ˆý+ë–ÛDLÎõÊæ¹‡ÿ:Ÿâb<_l‡•×Ö3ücŠÛ3fñgã@—äã¿bs¿öQ W¼<ë"÷±ˆ¾[h›‘Óuyù/Òd^,p8½‰!îõ®ºÚ õ˜›©äøÇ]oˆ>ö…%­oõâg õûüÊ9n+b!×cS*Œ†U@p –’ [h™­àHí`‰(@«ýß"àH7DgáêÓ¹ª*ö\ KÉóÚQX²ói‡gDP.Œ‡dAì rçú›4EÏŸÏ‹¶þ}àà«û€mJ.Bû&îÃ'Fo'‚yÝo<ÅîVCOCÉÐõà • N½£Àê©pêj/þ¥¢U¯©_Ó0á—UŠ”ÁW)”Ý£uV$Bâ”F,6«yŸ‚»àÏìbÁûqó_KTk/ëgD£LC­Øyj5T?S0™Ôwj¸Ü3Lh#ûÖ@õ ¦Že‹“¤V€,‰„_hœS\Чú' ÈÈ"MtÐb_­šÄWwªáÝ‘£”ÍA‘™'%`5#ÊíͺoŸ²…ÒTR®z-ïö({%.x…Škýój,ž\v¿7îùÐ.À˜Z¤` ˜ÀtÀF…¥þ#Á!Ô2îP+üQ°ûlõ-gSÛ/Õ÷.³æêºÄ}ÊD,‚6ú±6s¨-ÕßtbÈÒ[ˆjîa=ê†}hO³º³u¦#ÚC8ølmþGÛOÀ¶«+`U?G ЙÓâ‰n8°$‚ÒflW‹³Êœ|0«4R,ׂ¹Ö õlípAù|ซgfÚò“\»…'RÌó!=5ÿߨ‡mµ‘U—Ð- WI…yE¡lJþº=Úw¡9/¦L™îÍ㱂A jpûÝwÆÊ.%üÓ‡¼q¸ŒXÿHL]jE‹Ì›ÆÐÓ×ãêaÐÀ^þÕS)FëšðL`iT ó;›…Dͧù“°®”܆Q×–wIIÿ A:X8À‘Z¹Óô’ÿ%M>#R½Âšž²©}Ž‚ä ݸ^ŽˆSBÅ„•o¾4` EÛq&ð&Aev1¡æ-±¢aà,ö>ÝÄêWLÀ[ja~Ç%@ê X½ˆÇlUÍøùʱõSIà­² “ml¸:ÎÚŒ (¨àª'o'F•éÌ—}Þàm_ªÏ‘m÷¦àw|Ûs%¸)¹¢ñ`R˜QŸ‚ÈUn1s þ­“lU‰Úpô7ÜÆ7è^]#9ŠÍGÛü8 eå¿$YþŒ¡DÈãÜYäÝi³"Ûs=ì~½ƒ4u+¶wïô°„ŸÑÒš¥€D )¶3T )Õ7 Ùà%å`aÛùú.ÑxB²ÍòŸ8õ”±â­ûyÄù’âH_ªP”z…H9ƒô,Z£Ös–qþî‚2›Mïk]äHLñÙägÍ« í¯#à²ü7eµ^^lý‹÷vWÆ$ÈÔÓ©n6›Ò˜›­¿”uÂp¢ž’rõ«ø“×Ã'=êãØÞÜU?À—SÃéh»öD­Í&øn' ½mó.§ù‘õjpf›°$;INÒ2Ž>c—ó×ÖA©Ü{`j0CÒóý‡'¾¸ÌsÈ|¥gÈ\³ï/£…ç|ïƒÕhE9o#;Õ`ù±è †©pê_úyâŠdùÓ <`Ù¸%"Ô>™ÎiÇÜ—›¨ŠÖ«ÑL.¢‰`ÜU .dúó/©O{ñÅè.¾S8>Õ㟠i¼+á/¿G©w,Øug$4cËñ0n¯nÏ~z×-††s˜>†H¬?‚%¹ºui²ršÜ‰r?ä‘T¥j½8CáJKÀT?^â«KP›=¡8ì>•Ñ4’•c€^ΘX ËÀ2“ÂCólf™m=ˆsb‚—Ä_°vž{SBIöë±$¨ëè#ÜbƒObœj<Ù¿{¶&ÌÝâY “ ®bµ‰w>ì54«æ1±—X2Œ'G»Í7&{VÕEÉL·þ‚p'º3n“…I½{0¢lX¬"e â2ì(Ù´_•ÑÍæ ³Y¤‚C?Kûè\`?XéOj7CRÆ•¢jQ-3?ñºZøÈìŽß£%]’73v2|I‡¥¶½?Æ–ÈL¢l|Q/èŽEãH÷vЯ%ùê^§õa} WÁ¥ 6ð‘ØK|~-* >˜®Š/º4;šì«EµWç šµ„™Uq °óõ_¬Æ2.•h¸‡Q ô ]r’1)¶wžì÷ky®jðÝ«-ŸqtûéCQņ!~ÀÐïg8Mþ“ÃJ:&Ñc8Õ‚­ÃÖA’L«ÜŸ `ŽÝÂì…ŠY$¨éeIצ9Ào²u2"™ Tæ­QþG‡~—ž¾–šåý7 ÇÛz5í¦WÀC HϧàE¡è‰ÉâŠHtHí×ìÆ(y)ƒ * ÔL‰“Òõ%å\ß/‰>1tcG+àV›v?3±Š§ß|mwÏù$Æ[S+P‰ŒÆ°`”7¥Ì/=©6úǨ‘lâT]ÂÄi5îtÑq®éo:\+ûñÌ,ë} ¶.±Tîòúr5ºÑä·p{ŸÎ&CÌÕàw¶"¬„Vï~¯oÖ¤9»ä³c®ñ2ÎÏ3§HÀö à ßô»Úk÷:DX.ŽLçšÛ%ÉèÀ’;qõ÷ÓhÊê¨Oœ.”ry¼ŒÅúTi˜÷eµ >S,ª%DÕP£_}:¤\/@—•кk‡.Oµ ëÉž—ÉøruÚz!ÝBŸß„L‘aÁýªÇ@2—¾æÆÿRØcó?¥V2ª^ЃþAR‚¸iu›ò=nâ8ŠñuÇ÷“C ÁèPmµOnÿäP›w!VÕ6<ú?ÍeÞÊõ2UœJ¡\àöµ5x|HòVI^›—¹ë]kKãºÞ³ýz*âì–b*l"•{,ƒkãU¶n¹ià¯K×B™vŠ›Bþ^_ìÖ¦B~ÕðÌÝdû¯%S—ÂV—O ©TÏË5“.‚4€®ho@¶–“¿=éoïbjFžæÇõÂ9^ßeæë¼ÿkò§»)½éÿ‚‡eÙ}8Kk®Rþ‘Oƒ… ‹#žïcGº™_Ë”ïŇOد É ½$EK£Ýæ FbÛÎðëSâÜð÷ýùð* & 剦ǎyêÎqE¶Aû·†ûÓW%X0¼ŸPÅÄ@Ï"”œöÄÝL½3ÃÄ(jz‹ùÉh¨Ïó¯nÿÿ=—Ì cÎwIÎLjÁ¢!*¤¿'d3F›‹ ¡øá„) W0t*ŠÏMÚ‡7ª¶F›Ó¡ÛýÛÍËÏ B5~)ƒóô¿3d½½ŸÖ¸Æ4¬/¿!ñ QÚÌÿïLM úâ3V¸üxè± ºÃé°[P†•¹Ð„Û1‰“-ß¾å_ºî„!²ïx‹Å>ÂHGžŸ±z‹˜eÈ“T€!”Ulý‹PÖÜ“Á£Ž&ÇQ@ qÓÞÈÂøÉtÉEÊ:¼ã€%ŽƒÛ.²½hºVÐT‘TŒÛLŒÏíî¸y´ï)À8¶|½Þ•Ò™{ÿŠ®…Ñ€6Wh}rÁe¯3ep°H’üÖÖ Õ.õÑQaj,EÙhqºÂI´ƒú® éôƒ'‘ž ›xÐõ‘ÿZÆ@ý±Dâ ?éoU6(–öêY¤”óä"7yS”¡ÏÍ‘CúC÷œââ-uÔyUPjË­ÐÊ5;{q‘XŸÒ,ɉþÓáo íÒV2Fü9Ög¿y¤K až­±%M¯ Ò– D|] xÞ‡äC˜ÄzPªøEô˜ªõäÇ@ðçI(>À»¸ò¬ô.Äu}žTuAxÑKÊ“w7êÛrÂe·×™ö,ÃVòfÓ®[äx¤ÖÄ?‚å»G–ç ÝæiS#Q¦8¸º éŠF#ü”ï¼È©žl;*ø3¨:Ük\g¦|}ÞŠ¢… ;§%Å£!(}´„ÆÜ½¢fùÖ€¾ ëûð¥³ÀœlJFï|¤ªúø¬äa‰ØøèIÀw[ùIoú­aisøÿRwa€ BsûªŠË “.4à•¿a>3ù%,ÿÎäü½FŒ8˜ZÉúH6“D×#(žJ’‹Œ9&s$2ÑÝ:åB™ä Ö_n)ñT*$VX…¡ÉÌS‹>ý“ô‘ žæìeĬ Qƒ2z«×þ-íHÅËÇîR«'T¬ö½Î¥²ÛæËôæ:›¿£KS‡]='Þ LÊév:„Ê?ÆÚù fQÊÐäŒsä™-hÖ4#Lîo–ù#M[}Qÿ˹f[&:»Õ²Hþ*¦¼>z"1y·mwz?…÷Ž¡(µ®.{§îÉÕ€“T‡Ò2˜°qæ.âjã\KqD©µýùoMËôù.Š÷”ô’Ï€F—! p}Ž_ô¯'€™£S5vÉ|~7PÝð·²j_˜™t9>¤,ž2BNHžÀ¥mˆßŽ ÇdÞ(&Y$±·;M¸úÉšzÕyÊéW*5P†÷]¥êºE"ä±è¢7/²=ùd{îJ«@Ç\¡$&¨S?ójZ9¶ÏD²tì‹ýµI7S¯c†Ø•³ì#—yL¤ÈsÀht÷¯àüq-CÇ\ ² „fä¦Bë\0öÔäÃLŒï‚>c)‰f‘Ý2‚†|~‘þO-9¼\ Èö_ZWE“Ë{©BOqóWx~YŸôÞ;±;údŒO£î¿ ÂÚÿL9*ðsâGú†lŒ<ù:Wè䃠Å9¥A7dÒÆ.læÖ­_1dØ}¿í Ê’ ¦§ðFžJÁ6e› ÒÒÐ7þ4p« .«•ãÍv[ØÇÖѺ_{™e+SùÃ’œXqöÌÛX íUrk‡6î©âü¢Ãä0ׂÉvLbŠ&h_6òÉ9ø8ÛFááÇY,d$Adó¶±ÙGÅA^ˆè´Ê\QÉ#ÉUdš.ý6ë‘°Búà`¨ý¹véTȳyEJ°Te¤¥†áÃnô;T±zNì~ —É•hÙ:QdŠ-2ÞMÕ™l´Ç" 2?Sìõ¥†…ò•ÃÍÝĺÿWÕ¼Ðk¤yL_©¹ß `Í_NE(ÎåsQû¥5¿²ª¦:m}ýê–§t PqU‘ÖÝ Š ì1SäpÑWÎ-5UòaüÔIJzqW+(M<–Ë7á• ç³ô‚÷[ æ¢c^`Çs‚£h8€ºfõ1¯O_Ð “N8 ÀÑ3!³¹V²Ÿx¯Oýv'™×å^n=³'[åx¦¤ç–!_³ç$¯æ/ûêApTfË©¦\©›)œõâÂ"×§ãáB¾aŽ á+1>rG¾éòùB’dû;h/AõÏå¿ ’Ðñ'ßw;ºÑV“­SKå®–7‹ðV2ÀrP:E81èÍ@›íÊ•‡L ´Të¾½¸·“²B³nu„€fÑ”“”gœ;9MÞÑ+?álšÕà]¤…ÒLþð„ ;˺Ê"'}§Ïƒµ kkÕ1Ùß+ûº;˜˜pÚJõ Øœvõ&AjõuÆó×Âøb‚ÏïCWéRðOÔO“8£„=Dɽfÿ+Û›•vtV&ºðmôíƒL™z–:.±ðËÒšzC[Úÿë …ò@\³]aj‡5]žýÓåñhTò¢akîØÑ¢Qpia¸‘Šš\ïOplË‘Ì|Ã4 ÞJ;ä‹È¯›…V×z—ÂocõP ãõsì•lP7€ôpDm&Û §'œ¤ÕµÜ¨söU7×R¬„©Àaôå{Aÿ.ä.¸İô8Vä’UsHãºÛ€¨Ê)wL™}U†G4çlß”L\_Û¥f3Ë/Õv`0¤6‰Ž8ä`„æ½<¡ýM„a^Aœª).Ðb‹£j’ƒ5¼b¥DÁËORš594v¬7š‡Ý •ŠR•ÁÝñ~×ÓÆdE ÇU×ÅÍX¡ûÈ i[gð<\ÕßjSMª¢t\$ ‡Vû$E.+ü3Û|u­~óÞÕœöWÍÇEz,¿N{z°¥NÎ1e©H,žº?Jògú›íŸgã9§ÞsSÒ¾…ØÆ¢;ugúB,D" ê­c¹„Wßm·¨j¡äXúwÿ~úvÜÔÖ÷¯_Þ˜°O<åžlc}›ë‘Í*Ÿ2ÕÙ\e¶t qÐi®(Si¬ƒƒ‡"$+pÈZ×"²G@Hx 4k8 #Á/ÆcX·\xƒùî)sG#µÐ¼„/‚•ëTÔÍûzÏ_åEõSÿ‹€äM¡eA-2àˆÈ<ܹJ§.ò ôùs#šLðÔO(~ÌéUÚÖµ¬ç"!8~&ï¢ò"ï–gá'Û¼nŠ·6L\¢""ºR#ûêøìÿ…"´¼CûÙüQÃÜ €d:ákñøÖ°AÖr"ßÿÕñ†%%¹Ï¯Uø0¬!?+ àHõîQíÖ̩ωé" ÚØ|áï<6%(ñ¾6^ éKCt‹ªm„¬»H¤=™‹G |N'>šz”`Î ßùò»bÓ=þg_EÀ%C¢ ÎÅ3J½\;ëp”#"˜ÜÛn!•eµÍQ((šTè€HYÌOÈw:†LG¦ð.Sßg J]|û!@9ý†·(îžœª% ’ó4‡!åí;5•ñ${µh‰€ª³Ÿvô+aò´*C_õ¢£s°†7nVy'î_Ã4Ôì<ü‹“œ¯!À¿â¨-?nêF€e¥Ö¢Öاþw <¯¼MN¾I…^P ‹“° ”˜Ndý@­„’lW¾:ÕT°H÷ ½y[n[o1 ö,{ƒqî8ÚN“=r‹ëòzu/juE-Ž1bž ßc½ë“‘”…’yòÕlØ—çEÅhµýAk¥‘œZíæ £’QLpñ ŠŽÊx¶œlI‹³}ÉëɆRÒ)%§ƒ‚mca€_R¦t1üúã*_O¥>°J$‡ëx.®Údfˆ7^í™™$à’Ãí]ÈÛkÕ^ÿ4®÷¯ ÒÐNVE~NÙv –â$¬5ê×à0–*ÚÛƒUÖïÌ$­±©àÉÀPP²ÚMÊúI 0ÐY-Ñc3¢Â½Í·~" þ¤ niÇÞíH—5› 1YáØuÐÕl½—åôVð?/¬qÕõìù lÄ›êR™[U‚x+e A"þKcÞEÍÀ–Š·Bä9fæ¸Õ’ú·ð«Í[¼WRÐÿÁgÑ«ˆACõÜâwÅ’ú£ú'ø ¹ß•ÂðËnÈðúªÝ÷ƒÀKøó®4HÍÛ1'¾ñ3¶ž~Ù63 –²öuœñ'Éõi2ÓTO±cuD‘”¼¶òµ³Ð}ç?²Õ‰Ó…,l\’‡ÉäR“]?tšèF¢÷~,¼f=MhF‡â¤m^&UÊ7/mRÅQ§q÷’2Üq²@™ã$œ™æ=ì§ã×ë;"W$ `Jüü}²ô1(w¤?í¹¨ÍâI#fuÿ.MÂVêâ¾ WÔñ«ju¡HyK²ßn˜$¨–ÂÅD$7UeÚk/’sß%‘)„‘0RKÆ_£êÆT.;:ëò>3kªq?§Ä‚ü4=Ú»Ö§Ç Ý ›fŠÔ;x° D©˜ö(C~|#g.RN¤#7pú‡æªOŒØ­DVKŽQB ´ éG®~‡í]Í…ø±ñ°Õ™-©¼”6±<¬ÙUëë"гAÊ[‡2IËŠNáDzþ}JácWô ( ¨e‡B@ð[‹ƒß"[ïPbÖ]ŸQ²RG»©rš³ŒDÃ$„“‡<{c–DåÜ«H@”ÂðpëÏÆ89 _Õ_Sçʆ01„Ò¾ñ\Q~_?xW#)góµÌIÝç^õJÆì¢,Z·9å 6’8ù„òÔ&Å­o•äß(#qPÎíª¥ŸBvgzÕÍ÷ cÄ8àåqŒTû3O´øGw™¥¸Rpÿó!Bð‡™ œ‹[ÂF=NKäÜ4+‘ ®úºñÄH4›ÉN,Žf4 +™¯þ’Úçž'ôÆþïh+ /¢Ý¨«®s ¶`¢Ä.¸”"¢píqPEÑ_eRD¹¨ÿL=Ž’ƒ(Õ¡öÿ5T›ðz@Œs¾Xã7õþñÖú º*Äp!æH·qõQ*¢ç$'Ô|$Qûfd;-ßÇK.fÏ\öØ6øñ•¼Ê¡dÏ|7Ö6]3¤h2hÌzЂЙH™.Å^@ƒ(’K[E Õ‹ ·ÅžÉ^:Rp÷JÔµLoÕþX—ž‰S[÷i½˜5g=°/´Y™›öù’ãjò¢;qâñpG½ìnë RþÐ6=çu´‘îÂì¾l°"Éñ|Sv3­EÉ/O?M¼Ô ª™×§eñp‚êèß±k‰ŠÕ×gÖ» ajtV¬OW°iøKBrb£%þs|LƒWSo§ß¤Þ ÷wîº}T úC›‰Üo9]Ùh2Ø© ÔÅ•óŒÒ&U _/îo_NÝ-õÞ)]’IfÊ0¾viUö{î€mëÍ•IƒÞ8‚ÍB äüZQãöP)5²¼ŸÅ¬«Mo³¬öºƒÚÕlŸIPµp¨‡%Ÿ >¸?Ÿæ!Ìþ4òîýÂ:â’#Кˆ*l¨ØfÎ3rv¼i—MŽÈâë'ô{W³îÑÎ@ô^Á´‡Í´þmž²‹‘B'‘R\PnÑÃǡڒ†él(ºÄô$JPAëxep¹Gs¨¾JzT -‰,L#¼+ô%… (/Ša@ô㬣] ;5¾k¥?ÕW þµð¿Ç³Œ$;Áý Šß”,õPUkþÓ‚òøÙ¦¹ÃXkö·vfymÞü¬/=êîW»:KؼƒŸ{Éã¶0Ÿ*2;NšÇSwØ2ñ}ÏÛù·ý?/‘BbJ¦äe€]?"…£Tú|Ò¨ÐàƒƒH„“«iuÞ3 ¤¥j5&u%03W¦"š-îkÞñ_çÐÕÑU·Mù,U4R"[âNÄ—ë‚0ü^ÞJç,™¤*»¿Øxaàl¥–%[ELgÛ[4®Xí ÿ…k nIã0S-oBÃÿ5œ¹¶ûÜö4ëêÚ9ãlj<ã2^v† ¶#5ÓvçÎLïȵ$Åšåx^ŒµÕÑûµ8®Ü+$:–„Û¦s¦š‘î¸QÍíU5/ç*ÛFÐNfLÎ1ü­ªéê@¦—úRÞ C#Äó°ZàüS\ íǾGñÌÁ£/dÍN…ßðêØ`”ØK|ùC8¿‰Ç3ºÇ0g\?ûÜËyir²Þþë‹zq…ŒÈN¡üVÞméÐD6ËK#Ì¢£èµfŸ3Qs©úf½CyÀZëýò…Dr”ì†ütpšªDÍyIè:‹è§sÏ ¤ŽÇëpU6&Oyeë`ŠËx¾šï{ÿõìSI»Þ÷k{èc‰†•7ªümM#™)™DRRÙP ¼v3Ôgþ¦Ä½/ž -  é†Ti¤E³¾À®L Év¶³¼46%F9žÖ×Lþƒ%6¶ˆ ¿¯ø©f3€¾éÍÜbå´‘»”îUò’(BžŒ(ˆïöR¿‰ É_‘ñäe –;0«9Wúôá_Qâù¿9Èþl>D·´qh_U ªßNÇØêF—b°ä·„ºH› ,ô1‰Ÿ ÿ'cä†+è‰ú ĦNnEø"ª…È‘Cµp§Ëœ Éuƒ•5êq Jo”hñ‚T»“f±\QO‡LI³bÁOŠKì?ÊóÍS|1†D Ð"b Tsð†,ÐÑQ>ØÔD™~lÜiñ#D{.ÙI¯bäÌ…—#‹”Y$½Z™ m{}óqü®¬•ORÞàrz{?´•4NK^îH> lHKÓ†ˆÛH[:[Gú.kœX7xK•ŸµPvóJ+%—U„˼[Q¼Âhb&ÌD”»U®.‰"6sö8r†uLSjÔÒÂP"—·‰‚¹!Y¡Q©} 3Jò’Ö¶'–²`ÿS:54‘é_ BåœHˆÃN`¸›ñ.{Zj»ÒœÚÔJ¨™t¤Ë—鉿Ôfûæã 6캚²ŽÐ#é»B·8û£ã7+GO‚8©'<'ëã­/¥\Š„Ú¬A;‹ëÙºBÕ 8t‘ټþ/4nW!DüÔÎYþsÕ[SÄ´X°Ò¤a°Ù˲he–þú°1³ašÇïë¨éÄuÝ–$@ßàùK{¾JÆm|¨I*{›L±oàuÚ°%zïØâóÑ;ç¸T“íSŽ#?js‘—0gcëá’Ѭ¿Ü>sì§ –q¢æL Œ(éKÎËô±š¬I)kWÜ-­‰R‹ ¾Ö­MðOÐLýœÖ’¬"QöŸ!Âa[x»bÿwŽõ9"• |ûÀ ­/dÓOBkÑî þ)Άñ¼äøóQp¶µr±ËI#‚«›„´£wT,‹#»P¶K,W²Ëhiû±Ìà×ÍrÞýÀEž¡Ðvˆ_@1”“Ù?± jŽO§]ôüï.w,¿±ÙG2ÛDa EFâc wÉœÔ/Ü­yâl~cÊ´\~ù6°ƒÓSæèÔ"¿ÈDÌPŽ)Z‘w Ûf¹U­PBâuVäÃ(ö¹ ´íÜ­…çÖrúùÆa“¥óÑ¡ÿ0yYK…hr˜O¶.gqD¨fÿi­\û÷3W&ð‚ûûÂB¦ÞBËûè…|à:(µ¬Ý€ƒ\ÐÞ}K\ÞD66„&—suØÉ¾Z¡‰˜¿‡á„Šc­Œç)·ÁJl •y¯á÷>eûžls4Ô»êldÂ7rØÏ;>s‰oE2ªäãˆ@o›¦ØnR»0®K/Êéþãéܲú¬Fž~ÔEgKÕ^F66]ov¸%ŸE£ŽWŠÊì_)båÊLgóЩ?{ŒÉ•*s´Ïz°Ž÷³Øf8i´˜R‚5ôÞ*ÎM\yëdœŒá{Ñ^}„SCê¶Hèdk”ÊjÙ­\:ÿ ÀFøvoŸËÕ¾þYE Ø’h “±ßËüVj£™½ùßœ–uSËÂR0ÑsT ßDœ)ÁÊŒ?•ÔpíNRßr ÈãW-æL/XzK;»¡ûß]æzY¦ld“Äð(Z™ò°sHX($“†jõ¿x M˜Òàz™f]îP Pl“G…®Šg龜Ð[ZŽt¢»§0eÿ‡›|ö)4óò‘7Æ;½üeΆïx`Ä~Vþ“9”ŠËXº2ý–Bª»u5 á€&Úý#âÜÕ™­Åpžú§«—‚·Æà‘EB ÿ*K^1ÎXòMRµ@õFJ­ïöQ%“ •^Ah*ÍÑ5X˜#ä$5ÂУãQû§‚'Ž!„”"û"¨GXÀ‚3u®ì7“'ȲŸOAª&TòÌ AíW‘a.h eTÝÿkNR"œ…g§¨¿&Ï÷[›ü¬W÷Xà{6èVTRkWÖóû ÄÇò÷Â@ìÖdHƒá®çĤÛʪ^Œ®–»j†mÌwY’˜»êˆ#JøyÞ7³Â+ªØ5=Z°•·w.lŽü¥ÇmåƒiKú7üju ›ð -u&¼Âü;ñ´£›pjžn"܃^ÙØ#%@Ã#ÂzŠ÷²ŽqLº†=ÛµÜ9€0(•ʼnú\ë QFf¥Ÿ-ˆ÷¥—¦=媿vWf›Êüò,â¡(A݆ëŠIë‘ñÀ¬ñjJD sµDvëÊú±ëf,õ+­0Ÿ• :'‹…\Ã÷=?½£@S\¥-än/J8ô—ÀFûš;ì†Â­¿ß¦½óAÐLñIŽäÁˆ Ž\õ¸*§‚_\”\‹ÓÍw¢ï£ç$£¦E;¤ùôÀlûŠÚ1©HïÔä0{Ûh-gq¬ÿ¹˜®’%˜÷¾û"Ð*Å¿âýmÔz9>dÐúŒ¸|Ã ï£ ›s'…ó76Zè å/!îç|i-ö^ùäõ’ö1È;¬Õ<^¶ ”f´spÜñ9YüŠ·Ÿ¼®q°€A²ŠÆ­L7„7`KºŸ@(Ya¥*kTh]}ýN ä±Hø€tŠ¿Ú?@"7è@á²°‚9Èu/Qöк-#IQ­ü¡ª»¦T±ë÷öewD» –ß’xTÙ‡6î <µÑK¶þ—2Bt à^bß¶¸wsk°×º`]S GÚp•ÙôÁì’á>Éü+_¢N›!kø_]û€_“’ô³¥^á™5‹ˆûÌu¾¿¥#’«ß£©8=‹ ËƒO3T%yJ™{á,#ÐÃÿJµ‡¸voƒ…8 WÊǯžVÕÇ­Ë[Véjdz ¶Tu¶ù”Žÿ¾QªëP0äF¶åsgöž¨Û¾èÃfEKU Kz:%–§§¹ˆ¹±,€û”•±Dµœö&ŒÓŽü%Á¥Wa¶{eÕeôWÊiÅIÉiŸ.¦FN‚´6w`KuEù'ßoµÌsÒg,J;luŸýÆ¥\°Ö¼]P”Á’[¼¼cìu6´Û©‹ÑîeFÆŽ›”|mtb³S‰¦féÂ)àgèN'oÉ?ÀÚv"DÏ@Édž¤Ò"΢*q©AP;3 EQoUDë~òàë7 ‘Ø|v ï·ílü.âÒ7Ñã㮚BÿQš}$´Õ7³*öβxÛfCs:røv9P–ç%™wùW™Oìâù¥Wæ2–çôp[³Êξ£]C³è€!0~½Ãù,@îê)–îLUCõË7Jf´}ÇAÂKûš¼3 0¶œ[òYôÖ¢ yöŒÓÔûôÌ œ¶¬s©)|øß˜K³-ï¶ctê90†Nq.veñ2 ê€!u,Èc<ž.¢Ð2K±©;Žª»öÊÑü¨=È99³NÔCr¼\j Y³¹dHÌÅ!ïžBM_‡#ˆg rÌè,Pz¡=q~3'{£M+—1˜&M³À§ûó Þ 10}Ý÷w,“Eö?ÂÎOØõ÷ÆyRr¡§d•à®þR 2"öV¬ù«Wµï`7 q Âu»O`á}˜]•5 #9œœEߢ$¿/$db¾]¹ù={y ëB¢ªI¡Ÿ«z‡j‰ÉL²P æN¼u wm‹þ²©ËýB܃CACTœ1éSvúáiH^¿qÞƒ‘€öð‰ÜÅmøÓÙ<¹rmâæ¸>¶<ŠóZŠát–á ç¦×I{(\a[ŽM ¶Ü‡œæc%Àô”!€öÎÅ­YEÓJî“›Õ'îÞH’ŠÍׯ$K¯4a.EŒQ­ê¬Þc h’mÈÆ]r ]Ü7Šäš1‡¯Þ¢(ÙåÑ›m]~>íU„°|½f ƒá‘ÈÁ%|@hºK|j%Džù‘<#]ÐÌŠSgÃgÌýß“}îY+ìPÖfÌr@Z8ƒp-šŠnô…%ìl -Pœæ¥Tet5RØ T1. ËÅ\³i7íÇÌ‹Ò/ï«öp±¡9&¾í;èÎ_›æ{Ñ×VM‡ÈJšTÜÚWc5³Sr®Ë`cB/K¾e&L:ˆX½/¿þ¬?oI±Ír|†´O”€ƒË5Í‘o-ÄÂp>¬™Æì]Ó…‘9¶ø.Î’0~½ ÆÜ8‘è ;_Ÿø¶hë'œ.*Ö6M¸´ØæçO˜ÄBŒ¦—ºÈa#õ¬›>^\åÅDG“qv q(žÍ¸úŽx)«#Âãöeù­¤@-?‚Rƒµ~”Tc—/^¾(tcEÕ¢ø1y˜÷à Ï~‚î›$–ѳ~(–©NZ­ÑävžÂX ȪfÙV_‚[¡4±›uò…Øjš™ÍgN’-·c#’r·ïѯè6£òÀ˜¥„æÊº9“ §êÒ/¦DÅL B´@õAü²šnÊ:H>Àì™aøoÅ/ùÃì²(8c/)€[*CÅе|O®ûä6) >k}ŽÍ½oÜUI:¥ð4¾)›*¿Lã7ÆŸrWŸ°Ow´_<ºk&ó›Ms´VÓ)Bêoa1±ó†Úж>¢À©6æzêäê³é¦ab†¾æ¯ÊÃeææ4t@>E OIlP{Ç%Jòã†+ Í1aE§LÁÎËiWë Ê ²–Ö›"‚„q¡%ÑNBi#w M»7Ì{Üà¦}:ÅiÚŸª;áÊrõÖQXhñh<å)¯yW4¾¹ˆÒÍœõÖܕʷ„ÅÔ°›pk¥FÄ6oƒ²/Ѐã^l¸µÈ9 ç£[Qƒÿñ•-W‘›& #æ6ÒQÎÉÊŽtœÏû HÕª­Ž–-jynOhåÚ5^^ªÀ‡ɬ\Ä­êí~³ó°0rh\;Å ¢ ˜xv¹p è8Áo~7¨QÙ–(ƒ¯„ÕYÅ@Œ€¸÷2gµ6"µ‘¨ÃmuÌ›/ŽEaÃ1ú};cûþ®UBð»ƒï’„µsl2 ª:½qìÄ(Oæª¥æ‚¸Ë -ÝY±r?0È%ËŽmÓš¶¨ªíÓƒ–°[7ùø'dü´÷äNVå[g«(ѰH¾uÉ4CD°ç¬ªëçün¾ß¯µå§Á 6Ôäãåo³Ô"‰ûy°«¹ýeð‘²ölpÔ†âCឨ`rwb³SÀf)³z±J¿JŽ‘QT.²îˆã 2Ïö,_ÑghÛººø¹fI6Aá‚°FÜ;ÂbyÈû‰ÏíêÛüŸLA‰þ³öP;iƒõiêE”¬ZhEh­°3óïÔuç² ÍÄ‘/´'YˆIÖtùÿМ¯}Kë¯Eo ;‚tŽ8|¯S©ªÓ-³— O.ã5Ò2ïGÖ®‡ c– ¹U/öÕ×ò¤À¦íÓ¥VHègÑ,C'SË¢Õ êª\ñ—ÿk‹ÿ¾^¡§Ö†n£m!#ì$jÎ'/h#öÇKÆÇw©ÍÃV—M‰×¹-&kK)é<íc é}Õs÷N@„H]ï®@æ äÌrº†~Š­}¹i Â7‘ðP‚€f—ñé©ËVsU¬”"5E·I›B^Èç2·˜ÕppƧ¬ªøOP£EXØïQïRßÜW¦%æÞ8iH–àn'ãØ©eeïý¡¡Ä"@­‰HQfá½½1ª¬ÞæB“Ï[¤K„ÞBdYR°.‹PÒˆâb':†Åµ¯1¥†ÿÓ6®ü«ž%žYÌ3O´Þ`·ø/Ï\Krê»V¤ÖHî"=žJŸ2îäÙÝüý™,ö›™CÐ|Úª? Ü™Y5]¡?Êaóª—eOEpqèþ(Ÿ¹šyy¹ϱ«}XX_ï½<XçZ0¡î/ \ÄX6JA%sbÎ2"#_yQ¸4ÞS‚ûFwbÁh¤óVuÂV<.ÿºÀ½½V¹p`1Î#®ÓמŒœ’‘•kÑnøQj››%Vµ‹Aí½Á ƒO‚ƒ^óÈšµ?7zÒƒ!³Ó\uõ_¨`pØ]‚R0~vFáié¸ÉVûïÍG_Èðõ°¬«Ñ•xD©ÁÃZ˜à€Š%MPq½¥œ’”bÔçSÍK¼æ®ÏÒ@+­,Fˆ¤Èuj zëš-%Ã÷Ú>La?]ã³~TŒ“JÓUϱ‘oÙg»ûxÔp…c¦ï5• vžUÝ?L?g‚BÙôPO惰¢6_ÊA÷úéö1„£›ç¸œß±¬[ç˜öMÜ~vÚ¦n¦4©J#úÃÀ±{òÑÆóÑnbÂÒ ^›ã_Œ)#k/†‚Æèùz^"¢)¹< OÏØ0ˆ¿;Ëø©ë|«u… ñT}øE'8ïH¨R–cä6³÷N£7Ð\ì5ë}²þåÚöÑÿÏ*‹BXÌsPçéÄ#›YjXaë"‹]Ò¢“™jY³ø¹]‹ÑÖD·¤Èö^¨Yã†èØŽš/ßê*Ǧ?S)ó0ý)Â3­)D„ÐÖƒC(²SOäŠÃû+~|fDc= ö±€îÛíäëÖˆ<Ë/iTWRGŸ‹|tÈ€ËZvQ²õêöÜãÒÑŒ;L¿aÍË5¹ƒaE¸e·¬x_—’³3–írâ…5¶f\>Üâ˜íúøÔýJÐcÈb3CæO‰þ!ÞîMöÆèYAÅÈÎX4Å?`ÛìYQ<÷À¤–þ8ÇLËgJ%€#³¨#d=‘û†F“ªý̓.× G ]éouìŠ2ñémáUU‘½&j†¢žŽþ‘Ò› ñýùuÁí…A8¢„08CDÿ¾J_•Z*׎ÓÒO½ÉÎ (€ã—–ÌOâ”»!> ýîFW#IJØ?euNhWb cÎøãÒuy-* ¬æ”LÕ³v9Í÷e¬gx¸PÒõ¯‘Hxr’°p¶\k-rðJ¢¬ÐG††‰MœÅ<„®pü,à4†n^ûb5½á–„ÐøFå™kí`V%ð Rý:êÍÍïÊäŒ!6"ã ÓøHÚ¶¹ÇsxT[Ògl~í±QDYë7àª-öõFŸ£vã$—”Íò,aèå‚H¤°\ˆ_,Ãl²ýš "ôêêÁšÙe þ˜áX«ùöÄø²Çœ]@KÁUо"¼€ƒº²ÞÞ>\¼àô0ø"*jG–ù!<(æCP¤½i*+Ú»$X‰À3&¸#}Œu³xºE$‚Ø1 8¾žV‘(šÉ–ôHp})à ®ƒÕ °)41 K㹌Fá_å®Z•üš}DÀâ~ÌêÑÞœYwuàÈV£Lp„²áq˜RÑ õònô™öؒДù­¿ò5 Ð=’ÔĹÍXUȺ6…Wa™Qc;*¶Zd^ÂA”E`›}´ý" ÙdÙ`ñ—ÌNTŠÑ-3’g"ÈR¾í ­³?z¢hÚYÝ"æ~bþÈ9ï1ŒòF¼mßÚÝûRW±µÑÛC«æ@†Ò¹ÕÊs"ɦ8óŒUzæ4§‘-Ø"©è˜Baß‹†°ŠÚü‹­“Ç>}(jq&s(°žŸ«>vp“Wa»„N”KÖÆÂ­~D¹Hð\é 03i0VÕ­tF9´õC3L.î/MP^˜Ã=ñŦËr î¶õ±ÊÄ´}ïùLë‡xÖLW§°ùW]ÿY¡&†ùÊo óþKâEO ïKmËûÓæo ±BÎ>nRõWÿ…fÛ´ÒÉÍu ÿç¦Äöõ"JŠ{”^‡¥~†¨ž°q-eå²—+_=~ºx0€‚î#-æGˆ|÷(Éf:V÷?Ô$T~2ps6úRæ‘ùªLXÎMzÎb72êˆ7º| ØÃö]bp½}탲…º8ô› ¡Œ‰Ç'E¯¹×QF SCÅgÚÑÔÑ»æ ÀôTcÁ$Xš­˜³Wè7/*Œ…ªnùýM̲æ³~ôiÀ['%IDJe‡³sœ¥Emt–ú¦yŒFs»7¢É?±p©ÄûQíÇ ¦>³¦»ª*wÁ}ìñöbÐÃMÞUYQS÷I|öXÉ`ZêòA‰¹ðÐKÔã"]Nœ5OuPdšßÑ ªs~ìH™Jñ9JZ/°7þ‹Ñ´ht°aBÅ‚V]¼ä5n,,=k‡/C×Yˆ€vwq\ó²08a×iHd4‰œù‰u—ž`ßu«»’Ÿ·ðÓßFÍ×s{}_WˆÇpœOŒïR3láìøüï!CÔA¯ä±ïÿZ«ˆò Þ÷[vóKO`åtW”ñ„XÉiÛù]XÊJ¤P† 3^âÝ ×®úV ÁÃ!°¶Ù…>P˜æ÷¡W,v|[(>®Äá¸ÅsH¼j–ê¢ Ë?½ôW `òD›»1g™‰%g)/Ù&ü•a´R4ó9aò½iâ𨠼‹cßÁv~ = ­~Ä>Ï3D˜L‡Å:ø=œÎ®º`òê[ “?ŠÎi6bô2×Ïù§·b8ýÓÚ}T˜¼õ),Ñ;'?ˆMS‘~p[­É²’ûPiyÊ¢•¢7ÔØ°‚*ÚÒ§×~vé—»ôwF¾ŸÄÉF\%GIã©@´Áh"ÙÜÜ]f†áªÆJ³ƒíMÒ…?4Ý÷ë×H¥ -£/«Ô©ú°tíҹŹO©)Ö€Wë'v<°ÚD÷>:ÔX5rnˆ“†‘’ꪛ HL?}vo£êÂ\ÉÕ[¿‹ÍL˜+Ÿ·Ì äe+ÚY 宫-”³}9Åå®6Í:ᤴôÜ]V‡´ \$2bÑÍS¦–M(…(ذÀa„p[ªÎÍØõ jD:µ—PË)”Û“„;öOõXg|ê”Ý7QWÌÙ ìID‘ÉùÏ>?¡cÄq“+–ú,gì½M²< C{Œõh2“ŸLáïW§3^oº„7Õ•>[ºÞŸ†1V¶Ås†v›(ȱÚýf‘g·˜Ÿ-£¼‡—‹KŸï¹‚Ä\³ÑvÏŸ¢¿4ò¯LC|!œ?´¬4Ú"fW‘HLëâW‚züU¤qÕUá"ù»Šw¾â  ”GJ1>4OBä’HßôoG‡fÀÓð‘–{C4vhk¾ä/©Æ‘€¸ú©w%[^t°ƒ–HZ†èDY‘¨˜p_Û‰hñ­´F– >Ñ ~®#Æ ”N¬P½±ÂÓÄ"Šp°õÓØ¤;ÍõŽÌÎÖô(îtÝb]P}×2ÌT]Èo ³Vo÷ANC·8÷1.Ô[:´1ÐÈýNœi ˜ÕÒìSSêk,PÐ#Ùžy½*y·)ùe*ÈáBËgƒv'¬‰ágƪ»°ÐaR•·_—š=:îÈ'“bœ':íχ̋@‡Þ¥{³ÿÃ9Ì€üJ€¤SR…’—¨õäÛ÷–»Ì‚.`fíуª_áãÖyfŠC`;6›Ï  Ó`êË0 0‚×z06€+ºnØP]gñ-ÍŒ¢cw–“5¿fæ\Ÿã ‹®~l;/á3²*÷2ùzkàþPš<^­#ÿ–<Óíöê]sqrøLºC7ÉÞö ¹þuø ðÔ#—i›‘tLÖrH;ƒ¿–Cæ¼ùåOpt%ÿÑ-Ç7Ô ¿ÅÍ»KCLùà X–ß'j¤K€ q*€Ìm€ý£Í©¿›m*ÍÔd1©£ÖbcÊ|O`¯ðg§"©HLót- 2@†³uJ¸™ŠAx"2`î›éÜÈ—]#ÿ€ã88. …ÑÜÀQàj¹ÜT_´´°|‰Ûî«H¾@¢‡¼z^´N±b›a»•Âdr åÏÚÀ QwàÂzw}ͱnGWq]›ÃqŒ3wxû~Á²8Æ6' ”òž)Žøæò°6¢åÅ]Ríj…X¤''¥5—¦Bö?rÛY¾¥‡3¥@Ÿ®Ü&G¨Ü0›ÍÝ4ëÒ»È䫘} X„6mÒ+ú;´G ˜€ð- v űf+=í:Ñ`¯ŠæNz:ÓØÂr ‡Wy‰*>"7œþ^’…Ñûa´¸ÁÁf² 5‰Ü⯙k3ppØ´òkëg§™t·o©Ù·…hë+Á؃ÝÈ-'7€ägáÃÈ{±5›=jÈ\€£=¸ ˆ•%&íLp &ä|Ým_Oú•«û:ÖôêY!BÀ†™ïÁx´¢Kôý0)׿‡r÷‰k/äx’Öƒ\5N(¾V_GÍ{çÖ/R£‰Eú áÓ-ŽÖ/̱=,éÁˆ÷KR'/+œµÀœ»ÆN“±‹®@ÊÄ\õnAÃäì¯æ»}õIÉ̲¾ê~³¨wÈ@Òh?Ë—SuÂìÍíWUùãƒø.žS²³t±}`"¹×^í]e SI¤ìžHGÇZÃàÉøK³ò-ä?¡zïs’®JNdŠ|T»ªojm¨´õ? ìÑ'Ïëõf…1Õñ•i°éyüѰÕ[Hê¦J°Zåè¶2„NéžîÛ*ó]Äm%z!{‘Ýé'ïhå&ô™ýÂÏiS+iùhGÈù•2«i¿fÜ·Q¼apðÔ¡'ÜÍñ»hÉSﯾ<¦pað'…r­¸"þ;Íkœ¾l䪄”ý¼Áý›kæwe.äìµÜ½òùPØäš=§/"7¯ÞµÂQã*“ . JÞµìûô&í>[ÍiÖVtY Fµ Ð¨T%2¬8N÷Ô¯WôQ8&g‡ò…IC\ñéŽ×F\PNCdcÐPPY¯ù—PùüõØmW¸³°Póm}ötº˜G¾†¿ÙLý®pמ³[ûñÐ 6ìqújâæŠÿÒº(ÛŒì«Vbk¿˜b»2Uôa}?óÿAV"£h^NÒ •ãR£ ÕtѶ’2>ì Áó£éøœês×âž›ç&™êOi¯¿œìûU΃¬^£.´^2ÂàÂÛˆCuìÍÉõE˜â §1̵ïîteìÜaC½ 3žúãQw†µæÐÃQ4û£F{”J¶P%<÷²6Ï|FIVJo>Ít2Þ—1tü ;¹Ô; r7Ý’éAùœ<‰¡ö®OÙÊ´ä²ïW^/²ß’*c‡Žè·ºmtÉ’­hR™¨EÐÒ#U3]Yt¹š¸d@³¾ÛÏvä@cHL2L+W‘ ©!8dÊãƒ)ÏwþäçJ=Rt„ÆæÔ œš4ûG’˜ Ù%k7¬þÉ›{YGûòs6bê¾Ü«Ë'XOש®NÞ kôn]ã9ÙvF\¼í0›‰4×'Ø‘uÆ!§ôdÇ(¼x±¡#¥³¯%ãœÚ>i ²b$öµóÃráÀZ‰¹Œ;û¦$/lД+p;jjÔo”*IÅ@fÃÅnäbF’”á}Òal¥Äsxº"ûA ø^¶:¯G'cÝg'´Z¹+ü­YrÙ7Ñ= ›î¹ÁÑÉèôQc¹sŠrqE¸¸·`‘‚úJÇïÊ?'XêöâÌw>Ó–¤ÞJÖÙÙvð‡F>sOYŸ¿ØVÊ€úd±Mðµs ß® œúÇ!³ZIÕÈ^ÃÐI—·ð´ˆL)sÝB)7˜¦Ý’º=¼VØ1ºRô5íx¶ayh¦ojuÜté?Õm¦·—q”d˜ñ6|!§ ”Ù®&•¢Û OT„„Ù¨Õëæãûªöé–É Ï™Íû’VO«o<…U­!åÈ«T Ìù4 ]ŠI¼új<¨«øHGÆÖN®6‹îr9çƒmúÉÄo7”´Ð¡.Ñî@»g–AùN"»Á\þÀ†˜- ½‡Ò‚ ÈAžâ8ð@«¡^í ^ìñ ˪Ì-ýÑEhM×<Ü ó±”ä bWÓø¸£†nÿÄ×÷`!ÚÃB©enhT 4Aªš*là\vRÊÏáS}Xõøã:b¬ó) •è«¿츰eª.é ËœàéIX pemÔž6Áª¡Þöàçãü±µùe9;ôÁ;¢¿¾˜È¤$vÃ×ëQÆ×QT{’Ú\Úðbj›мË4‚ìz ¬oÞ5F;G°Æ^DäÍ;D•’øÚ;UÍÈw“sRõ9g1@€=j<ƒá³hQ›ÔU×û=¿ËÿÌ·ååXߊ)ˆÿÚ¸Òmx#•c™0u°aNaÁÖ¦‚Feµ½÷ùÅ~9Ø).O uHë— ¨«¾í­Î’ é ôR tŒi b&Ç’X¯´Ú.Ï{oOq`¹j·ર¾¿Æa7XÖçiÌOûR(X”õ1“Zúé—Ì)h!ì3#ø+K 6d#’Ñ$ˆÚ5D°Á,«Ø%ß M™ù i·Ì%ø¹ü¿Q)ÊÙñÝÔ†‹ûŒ‘ÂäimS?+~­Ðà•XNa& E,dükG‚¹K *—ẅƒöwâc hWP¡¦òÛÂâÔ¹ïôJ„©»BÑa,A¢Kl¼1:á‹“]“¼€'Ò¦¶¡¢4uŸ¢b‡·yÀ¥ ´˜8.S·*ÂH˜ ?˜ÊõŒª{«©&F=®d”éûe×¥õnMú-dÆ)r¨&q2ë­bíLÙQe{þ_4Ì:ÐÀ`²&*Zr¼^ÀW±ßúÉX̰öW¬üNfÒ-!@þEÊüU— o3¤¶x ÔP1GËKáN©Žx æLMwÈT_}$•£¡+'жb&Xão¡0ùæ$:ÄC!ñبŽÓ„šB!ÕKÄLö£Ò&€|KŠ´°[=Ï´nžkûÌôzAJL.7@þ×¹(v?î{wØŸüž´œù[­j®ù(z}9㜠G»¨ÿ w Ãå4_jäË,€$vUaqÛ•µyS”‰žÇSÜržÌjD½¾vðíß¹ìƒqÊ4œé”H]‡–R¿\ìCÝ_a¯vïi+Sa"¡ãv;SË(±²·4*"úúíÐÕ`Ã|¹0ðlÁ]yvŸ¤ÑY^˜™[øšÄ¯&ã['sìu(!{ª‚ËJEÓ5¹0¢`”ócCЄÉë“Zbk8Z-É>Ù ÞâÇ}_yA`^…N¼FÅu YW¿eFµ1¾ªÓ_,Ä®g.Ì-Í»ÅuW4Ã+dðÒIOñÜa~,’<·£ ð²(uPñžév0ÄFbQeã»,6ÕbH˜þº‡™6ÝðŒËP¦œsÜÔ Éæ]F–‡ƒGýnbë³´|jží]-Õxgn#»aÄ/£«‹P[âÞÈ!,”xáÏ—X ½Èvqr]g ›Õ˜'LÝŒÜùP!Efkºæ SÅØÄ'"#~ñÚIÉK³¼Ýb¢}•µ{W>è__ð(ï4ØëûW_ËmXƆdpWw°Sз™<­ˆbP) é#é©+QI²¹ÝÜ÷:zÝk5÷%ËÓ;>ÉÓŸ­ðo¸Ü»¯2¯ ì$ñWçûCn‘ãa¸ÿ ½½u­bbýÊñÁ—áËoS”<½½°áB´«"ÂU´<)÷”åîÌ[ú%‹wC[’Ƽã­pÇþ4?j²9ìJØÙa´Ãz¯_»t¥”γþn:Ô`â ŸgÁ¡b½‘q½V˜ã¿\óHÑš¼4¹õå{'ËJ4H:AW×ò®µì­ZZLl-iä?kä+ÔX}›ýpzþ[àZ{Ý*ÿ?…ÏmeືSè§©›J²¹ò'¬«Y $ÀiŸ«Ýþrþà=òŽb´=^ä×ÏX±îÈ1i¢nú¾@eaèÞpÊ\—Jèù#極,ˆèÛÅýÓ”c÷º¦çUHFƒM®çmèǯRHs¤®•b Üce¤¹:Ã`QT5nH“°t’oéBbš"9uŸê>È'â_ß° ¯{›M®&vtÄòÇNPçµ\h¥Y»²è:,‘YlQÃÌ•dM«Ý¾[®¶] ?Ò*Ìp´Ì[!Ášû„ÑP…Á׳¬~Bâ‰`±Ç»^«ˆõš¾µAÌ“hŸi2ùæÄm¡‚üLl㌠Ý=ã¿û%ÙÞùAÈÊ}‘?lc£-\eËéJÓ*H’rU³ah!@­AóeŽª&u} àŽfé!‚ªçly`£ Àªù['æÕ;)—³#C)çkÓ`\ãUd[ÉÂì`‚…ÉÖ2õ5À­*Ñ¢àÎ^kDˆYcFÿúZ½ ƒP}P¢ù\62•—÷NÖÐsNnbPKOIŒ4 >7º{„MCn–`¬Ì‚˜“!ªÀ)ä4óF‹úöNy!—RÆ0njÓgí¿°'›„̱?Û¥ ŽD­êªÈáRZÓ-’¶Ô NfS$Ñã6”q)(l(Á€)¿~ëëdˆâÛ&ü²Å 1* •‰6²þ/«ê°¢Ÿ›–—Yøbàì‡/Ôu.A˧+Hú Àd­6:âïn:ÁÝaaÎ"–gÑJÖy±2_«éJÛ€i•“!Yjhˆ†-`I s°L­+/f‚ŽN­SÅKÎ6ÿuN—;˜äº€øA>gYãf¿¨8›‚›é˜¬ãnû8?\ …øWÃ̰§øL*¨BpE„‹úí_l«1àAˆVª¦Ò¦¦`ã1ÔEé¼ÛÜ)=ÍbÖÿH§Ô*ñUìz”þäˆ$ö´äÜ6WŽü¦^­Ã°ÈcKÕÖmª>E¢©nãxa̹“Ù…]ÊÓù(<©b8¦é”³|ÚÄ.wI¬ÖX…ê%Qƒsƒ†`©u¶W ´ŠxZ£”õdL b«ÝVJåi‹‡äUœAT^ƒ{A8욦Zxz².ÊîÙéõ¶"Ä•£—ªJíÔ„6wmœ[4°–yÆj€üHÓ];c6ÃæZ{ùšÜ7ýç3‘)·_Þ:iz½2(ì|?j‡É[_uo¡ã&˜Š:Ål_b‹I¡“œWª¥õ¢oöVéï#'@éRØÞ~JAd>aÕâ’?Çø˜Ì×—Ñ+rãöñ½†³´ç3iEèf6ÍÊSµsƒgÛ§k$úµüNI¨f­ìË Úmt‹Ç”(Ìa„æÒ|A>;åÞÑc+»HŸª\„ô,…aRQ¡Vňù)õNÍÀ³Žy'Éפ4Æ_®Ž.2ºö…†"ùÕþÈñïF×:7¹Ã>™‹=õGÑëP1³¬¯Ûy¯ 9oþEdõ¨á•þ?ÔêÿMå}ˆ¾ž2¼ÒÅbrŽf .î4 U„Ì¿KÐFTÀþRÕ»r¹“Có†¢^*¦Þ’›} ÚHè´‘—°1|wáÊïP‰ðI#-Ag A4˜‚ýV[€[kÍa)œ‰Ô&H$×å >\/‚$µÌߥÖ§™Ô¶,wý¾±Dûší(ùgªÊWJÞz;wçåšZý*ž wqQ,q$Z´h#Ðàù2@$ˆG“ï`W¥°~Þ†û ¢¥63ýx ä­°UrMÔ/šuœªF€ wáÆqÜoa€µ$n4‘à @öÞub»Z¼]€>˜Ø2üd´°Üqº㣄ê’ÒíÓa|äÏ–º@# ƒÂ8t,QÐãBibסÌRJiã—×6°öœ§"8Þx‰ò^ÒÇ Í &¨­dÙÌ@´Ÿ*3´QôÊùùE!E*ã ¥ŽÈIì„Xeå7ï"°ø:-ÒªN¡Hchê4³æmœë+ëŽCÄÉûv°5—<¯oŽOe9–È@’.߬õ.âO¿w×­³Z¡®Q&°97Y`öPkB²P¦SÈè¤æ®(e=øŸ,RË ËçY”Áftw¥‡YÉ…z­Ô÷g?nÖK¨øujA°XõçÁ#ÃÌê öÚ±¾¶p–ö0%E&Q+åRºJT<¨ñÐs´AŒ3-¢~€—‰÷9M‰!N¬G ÐxÒÃsÊ—›|Ñ9ɧև‰K}¼7¦®ó­Þ·q¤gÕII…{ÑöÑ6Â)Þ;ŸÐoèBQ5,ç{Ë.¼8ªÇô'­W ð±rßÅó3ÁeìäU5> ?-ã;Ô¥&ûxxõð+·Û ˜•x9A}h¬»Œ“ôXLG ¦×Áõ’ù!»ö+™€4ÊUqÎ8ŒÅ92¶æ7kj5\“_,x·¯%â•4×ñ0ád±@¼ ýÙ  Ãsw‘ð¯b@P÷æXe A`Ð"w¦ðü)–Ÿ „2£†Ò]вjJ2ዾtAâtY` 1l…ÝiïÎß=ê{°6ÿ9 'B÷jRT)óÆL•ýåó–jj¾¸Ó¬#\݆–N:ºdÓ‡Ö ”×ýO'‡`’¿ùm8鼓ÒÕ¬}é-LÁ Mtüð‹þtÆ1›ß㻬óI³ÁœW}“x”ð× ³O7¯_ßÍm\FÔf‚Æó/;^³’Ñ@¨§ÎÑø8l¼²lï  ¹täRŽš.û£L¢)D–½¬5äê]{´‡âOÃm¡†RaQy®e" ç<7qM—ë·6çDcBÊò$?Ý^º˜Ã‚ꥻ!Rþ³µ,â±Ïovå)?WG´ùŸ¡Žsÿ ñ„jF˜>js!{5AüQˆ#à1ˆwbR0 ÂÇÛ+úë ³ç*{ÈFr(=ný®1‚<íu€»€¾J —8Ë{»ŸÜ¸l¤5¿Šé/ x#@ejç} Ÿß`¼¿XœT”i8ÔDm#–r^HºT׆2hü¦þ­  ^ÍI]¾'_eu(ɲûÜ2fý‰”aß>õÿ$*«‹®W}®ší=|¡sŠž1P÷|Õõ¢W¤=\†«Ê Óú¯È‘ÌðŒ_&Ö4Q1ë!¾¯àÛ\æ~dñt1ç[{놚üÞÕ†[(mÓyqÍ`Õ<Å£iÌvï·£šlU,6Œ`vG°¼@_Ð2ËåGè‚XÇ÷º‡sÃ/Å4j´—ÉsR²ç×go2·g’PThyFЬš›ZtÑnŸ2~Rlü“¤n—QN‡ôƒ¿ÃßRKÞ0¶‰£]ÆR­ƒËãfAôã¸È¸\0°ïkqôâI$§àâT÷“ˆTžÞøªYcrµ[h¾<Ô'Túµ~½Ck3j®ÏœGEÕõ ¥eÂð  R.‹,í§±{ð8ñ_1ö6mϽìA:»[`( y}v^*»Ç^­‰ÞÙHÜÙÎ;ˆFbÖüLf^é-è© É7sTÍJ¢ºÈæã÷±P"`øöÍ·a::;5{òa#žƒu«&a~?×…DD†Ýõ£|/2õ« >&;ïy‚ )æÿ°Ër‘)­—„݇o#$¸çž˜v'ð©©Œ4K¢ýÄ`—Xp‚­VÊ*p^©Œ'ªwémDèä­uƒëò£ ŒOÙ=,mÕP„™å»i`x&ªâ3)kæà¤¡(F8 4í¡ã)ü<çH©Î݆gvÚÕ7›ûfdo5¡Ò²ðè×pì¸È‡d¾¯|*F5CM¥V~Ä!ÆRËø@ÖúÛG*+è²–a>u\ÁÚî ßÛ“éøz%`Îÿù']H(5Åë¯ç÷âcA³jôÍ96•ÔŒëÜ\dEébì¡ F» é´ñÞõ`/¡ H_/ÎpE ¿ÎˆG‹hÐo´z:3wœ·S•˜¡¤6<Ûi2§}‘;zË~âÍòÎx´ñ’%²î~+ÍŒMù“Úåqb5Tbi<Ä“vˆ‚¥¢ßOHÙßæ¹¥7pÿ¯×Öeæ—®ÿþ}1H̦ ßcó¤—²{–þƒV‘¶fIEš¬×aЀ…å¬\„q¸Âô, Õk÷5&S»eMí³±,¹$×ÉGLáü§Œs-N*ô}¯-"Çó¤ú’®ì±íDÈVRÙš„²ìšÎu˜‰ì"m¤p¥¤e ú·ÑÆŸ«²Ñ+¡ÅLnÔÑÚw ø£«è«ÿ[‡da$ø;¹´XS™Âª²/|%‹ ±‘Ä‘Þd6ËÝØþÂø´l…\b§>Ú‡Mý½uŠÑK¸=Ñl¨\Ã&nÊ(tÍ_¤­{582&K·ÔẔ̌&ñHúLÈo êlÍ}èÎd,¼ÙOÝ¢ 䯥VÑR¦^ZVž<‰AÆ*Kâ|j$îòy¤/5`¦wxø ŸÑ:~Ö  ¿¸˜6E™DåôËíðëòÏH²Ð ŽF{€S²Yer³œpÇѩ٥ÝOÁµ¨þ…6½LÔÇUtLE 9 7dcÝRÙ¹ŽBÆáæá¿>x¥¬ÿ¹÷£7h–ë­jê²­wHý­äE=/Õ²& ¼gÁŒ¥n‚g›·e8L¹ë«jfJ?¶ýĹdn¥ÝU¥µ]¨ÁÇ™ˆû_ÑÉþiï•ܦ|]7ÎÍÒ9­pg–©Î½@1d (K Ê“´3ƒŸýƒíLÇ3Çȹ¥¨6˜ƒ™CMUíW͇X«wq‚G¹¿ädJt°½õ%ò¡ë"Urdà÷¯gi ¼££7\ßth«€GСëDv÷‘°rÇê½pC€‹¨DßP’:FvUã•ã …ªI ÖÒn² ¥@B@£iTεAVË‘¡@,q»uZ ã‰nlDþêD¨Åક7šr¥Ã–Ñ>™ÌºqËâ(®hF’nÐðÊÊÝžrâÜD0écñ >¶ño>³U2בÖKGµ(?\<øp2'¬SYÙ\ åêR’I8¥Ù™n°ZáàXúI¢ý7Ø&tBK®Q¿`øÉÄyº.²TcÉ•7–ùjtÝñž,¥-°ÊÅÀ> ÃcQhäé>WÔúxÉs„6áý’… |Ò‚¼«Í…æÒTuD0žö7uD´j€£šØ Èâ¹8Ì•ÁïÀÝÿf«É_^w¢Q´s"Þ™åPE4L+F³"ʨLU»j öÞ`Ú$É9ôöÙF’Ø0†:0«‡ëþª8NÙ“Ú¸‹t‚FMX”KȘë]ˆã‘Á‰VÔwÅY¢»1­aûùóNÉ‹8‰>Óš“yOkì¿æwmÜø1)bø1èFJÛôO Œ¥,‰R–§ƒrÌpô~Ú‹ûšŽšÑ>"Éâ~¦%_µ¤y¹œ‘ÕT/˱üÚKe&ž—3MÃ`àÈÙ¹ Ý-³œ}ÝzHáõ$nN…Ú3t¤X0]$EGþ!Økœ• Þ­d)?Þ)MA“yä?œxZÚ|ìDÖ oE4ï½åœ#ƒç*ûòaÝL6k± `”Fþ†²¦F‹?ûv".âÉ  Øˆ ]¤OŒ˜Z£¾àH›Ü¿’À&bãmC#ßW:"õѵÇé(Ç팹j|þB§ØÍ-¤7`ÕÅ¡:JÝ—ãN|B1<®Zf‘~ÊWWïè¿Ö¦ÁœÆ–N2β$9QÕ𠕺¾ªÉëÄ\Ó!2ÑþSD¶ o_ZœeÌQO mCßQ\CòþЦÑK¼’„VÐ"¨6%…£ù…¾øä¶ñé,zz'i°ßæô3H‰ÁýC¤e÷N´2èÕä¿¥.£ $&WrÛciÖ´SŽíVïZØ¢È À¸zâ€ðܤ‡î (³Üí§{Weå4V¥ulùWmL‚R§p†cG˜¯ívåë§´öpA;U: !§7óZÿ $ÙY×8®ôÀ¯BK ç†1|ûPû¡ý®XN£æã‰ÕË:ƒ.BÇ‹•ü÷‡­Ê ËÝÜ4<®¾°äa,ÝŽâ5´)ã-KLë–¿íç._”«ÒËm£Ç:ÑG3Š”}_®üc<, å¤Ó^¤Úé-õòˆ0Œ‡“Ô(ðŸz%xaߊׯB Jíõö×Y`zŒ‹:’rä ¹—µÇÿMŠýtç¼ÒsZOC•FŽ+P3ZMŸMÅsI&³öˆ‘aþÃ’ þ0?YßTr¨R? )¬ï™Õ¹Êæ¸iNÀ·P*'ý<› oKôvkØTjŸQäé>ç¶ú£÷nƒ?„”;™ç±dMJÞí¡z'pµ©·È$q+éÆT\¾óuGú~\–£zi`£>ùÌu5U¹î çgÌz|ö‘åägŸƒ®8©¥G"Ÿ=|^Òø°Ãú”ÔLž¯`f¦×ç°ýizÙ 4vc¢çùœžÍmðòhÂÓVç ^{],µO7!­°,ˆ„^íXŠ˜çcNA”ý ª+¥GÚŒ'—Ûz®¬³ÃaŽT¦Ò } lÐÎh³WÝ|$ð£¿üëÌ ˜-¼ˆ9¤N X €[†¨cõ­j0Ù\ضäæ.“õs×”‹.ŸløÐ“mM=ñ8ÒÁjï´; dØÒGÄØ,ݽé_øc7 µ|wµœùä°®²D‰¢…:™Á4˲ÆÝ®j· "Îæ²±¼~ÁՙРñ@B'ßk@kùYO©ÃEÂ_]ǯ¯_Ýû‡×¯Ë sª²:r‡“àd/ê°¥†vD þ¯ë×y‘ë™"o»rw BÆ â<•4<~bAË žëé4ä ;êk[™Lž?&µ©âá+üâ¥n«øz±·¡¾Ÿ†_QÈ9¸%¡Ò¾Á… äñ±–N­²‹}+§ô?-s^r!g±ý_ÓmÍ]’Ë9ÿ·îñ›çôg¥·C0¯ž_®áðn­ÃBÇ•"x ÖmšQOs»³ªqv[ò ëÊ€+"~`[ ÑJòæKz±Šr㲚Q…ùgZžhZÒ6³û;h THòò@X×Uq¡?¸t*ŽË¾¢%‰°<ÜÝ(1âäÝ6gU‰õÙ~{1tkìñÍD‡Æw\ {Ê•¥ HŒ1œqÁ =l‡z &¯T\3kƒµð  z!¬:ÆaT¨¡ÙûW^P>ö–¼Ð*ÙÄÿã:„´èêý¸ÚürX§ypoÎòáæ–nEJ0!Áe\ÕÔmôrx²È~BС¥›—üë¹R¨ààCføÂr5kWºU\iì |0¡Õf>B3ë<ÝÌUGˆö¨óù~ò‹!â‹ä³×¸+c¥ÊÌô ÄÊAXAúçg•} ÓhÈŽó›«Ê!.˜/Šm¶c|õL²µfoޝ|ßl›ä³­¾R'¹—w-_5¦çwˆ~;‡4cŽ0‡.Mß5³CƒP¯‹Äñµóg:E*Òânˆdc=Z5JA'-{Ì;Qí€ 9&ïÖç¨u÷‘zWƒ"‰´Ú÷å{xÿ¹Žz­ë@PÑg£¢”f:Û¶ùúZôî?é-­^;Œ¸Èž[&¡ƒ“¬/Ï.5@H}woP7±1Ï›ý¨\k8)»r)i¦7GÄ—ðiˆ)l¬Tµä B/Dåp¸hLï¼,ªðt´;§_ˆVL\ëYSŽHë&7}-çþ¸(¨Ç|ð é X×Ç\Yõ•¥ß]Ô,±­BÈ^ Û®©Y‘óÁ蹩p4z—Ê £¢› oŠXsžMûô ù„‡aÙbO´Qtºw(×ĺl‰M®‰º.»é0J—RôU'å÷%’VÒh*ÂâÄÓ×?4úp°î‹EM!ÒßAÃRW¸ç鋯ÒÃÎØc†½Sä.ó?—n~Ú¸aóœ5ü¨ëKª%¹¥iíê¼|¯[Q1¨¿Àƒ²ÄcË!¾Þ¸ùέC“#ßæsÊ~ùLòæ3©.vñdšÖ}Œ¬ÙŸÒ5 ?5_£o5fè0 ¦xêty»pŽ(×äËB3ùêS¬"ö Øê›„¦)"M/ºi |>)Ai"u¨äv0yOLµR}éšÈÏò„¯4î¹ç(0Då5à > mL 1]qx#eÍ"@É  ›…aŠ ‚Ð*~^檯'­«yýÁ¨>R?…~½ÕägG’‡u¡îˆÅ=û•ã7¯Ø¦£ Í€—뀜küïãÈZ¯@·èwÿÿ˜d"á§l†»=#é•  ï|ðçªH`ô#¸ü—Ya?AÄ&¨¬»+GMmh†8: Ξɹ#¡-õ3\¸90Õš$‡·ì8Ö¶‰ÄÇèƒê#Q¬£‹©?(Ö¬ˆ«=^1Ù{ foí÷†³Öoý6À²v,? FŸ¯Õ")ïÂf?¿ÔÖÊQχçý¶|4: ÆÏ ,¬”â.:ìÛ™ÕxkgpĨàÛ¿Œè­rYhjóŽÏì#Ÿ%§å#+š«Å*AJJµ8í…n:ûô qi0\“1•Ø]@/Á ±j‡=ö ÕƒsTí&â¬?ê±a"Úë6LÂ7+—¬òDÿé†Çàr̉à°]+%Wk~@~ç› ¨KöÛ¶ºÞ„8æ=K"lð†»¸BTy³W‚zbybR¡6l¨±Ë5u}!AÒI2¶ØöÇÀ=ÉÈÛõׯy¦ nšÏZØ—M¯õžÓñÉ”!zÔ¢à¨VÆ<ŒËå÷·l8OäÑ‚¬ ˆ.(ç†&Íæù´8”þ÷ 6áC£tß[QR[J•º[ƒW_6ÈÂõ´¨À8™5š`¤=j[Ñs¹cËŠÀ8)—£×-¹P&´ÐÞ±zÁ˕Ӷ<0\ nJ úh­¤i’Œb»OèZ>Ÿ~ÈBÚŽÎ!¬éJA|ïzÞŠo f"u\Ô® 팔*îKКÆdúûQUÂ!ÉŸÎRk’ÂÀ–G6)NR5BÛ†Ó½˜k Âv3ÿò.²}eyŸ šM§èÅS=ð‚G[®ŒŠïÄnMº«”• éGc³_^ÞdÏ ð"×q¾«~Woh/Á* íXi Õ/݆B"ÿ¦ŸÉ’bt»‚Z‘Dêßë`¶ü_#UF#1}ºNï {aüͪsm‡Ò'«LÛ}Bž!ÿ@æÝVÌù+ÕWÖ$K‚Ó¦)¸­‰$—SÓ“———þñÍ*™—´ôrÁ›k¸âZ|ÅxôNßDW*ô–Î^ ¾^*0œä`)–KdyÓ­iÝŠ,«]F®Ð‹T©ýÛ»nÄ>iÎsƒT­±‚>Lœ„7u¯’“JsÍÌ]ï¹I‰´êÏ]!ëÑæ?<³nuûjÉêzNw .V*U)Á¹Žn€uÒ(¥’jÁÛæªnÇ%„Ä:'š‡r]_ÍB[WÖþ¥W}'‚+BÞòÖÏ%€–Rÿà«‹a”/P½xPHEVi÷¦t ½t†¬‰âKO¾…=i a,øèâ§`ûìÒþ§£}||Jè>¦.¨r Rw‚üRBè¬I1)_#/±­+y[`c­Ë” ?åRKIn7b&háé"²0K5‡Ã0™#0c ÷–ßú±=7­åµ–÷ÔT_ih~µÏû4~+§|z·VÈ›ëª|‹£ýѼ@é<ƒúÓsëó‘vETÞ=x2‹ÛV¡oý,™Ï`sÃÝF 3¯ ?Ý8“ Ìf´Nä˜Ù²AÌ<,|¶íæ™6þCƒ«¢î(8ݱ£"ÿ"ù6๲¶ü†'lGá¶élóJÄ5‘ž<yç°Š‘>›Mòàú?o¡ª¾z¨E¦àv7Jœzj 54‡ »k"3õÑKÕô«éÖâ~x ðêÏ l7I$dœÄ,cPj¾8VDV8=ªYìü²Rú(ûb4%¸b:N 讲r{q@ëk@;ÁäÎ&tOWBj yjŒsþ |¿„æ7ât¢OùSî?’ºË¯dÕ“lG#mwÜA„1€ƒ—nIµc¸­Í¼àfÜ>‰¸ª¿™ñž?gva‡ÜhÖ ùŠ™YrDßüf™y)–‰³`‡B£×ÞG?ëAàë5K “VBNI6I&ËØÅY2Žé÷¸#Qi[BqÿXÉŽq3WéõKê=—màj} /%] "YzOÝõÄ^[žÐ®}B§tŽ]~ ÃÊì¨ô­:ÄÀ6 s©8ÄM±mÄq¨ÁÇNg¿H´þ•ÔX•õK¤ÞÆ{‘zxçèÊ^Ì£n—–0bjÁ"|Z ?…¢{k˜y°¼¡X$O7©Ò×З“¸÷„‘V3§]f`cre/P&"JÉ5]Tö®ÿ5VCõƒ<¦€ [úð!f{ï­}=©¯_^{ü‡Q0žNÓÆ‹‹„ÌF‡LyD½°µÀ‰á_w¹l˜AnÏ׫›¹kfÙÆg[ÝØ¹‡íl…njJš‚Peú!1RÚ ‰òèõ\õ³m7ç˜fu_–ùØâ=2g º="É¢eÿv|ÞTS><àaq—[B× ³ÿ¼s>cÿ¤n\7.ýœÕÌç!Ô(øÓRå›åp¸ªÓï0²4ÊñFvhp.Ø$Õ¥ ]ã±’ÃúbMẌ¨^ãö”B•²è;K”ÄÁ‡V¡Ç]=c›çC–‡{'Fx ~úÏ¶ÛŽÞÆá´C,¢ó†bxK˜ÊŠ£:Ƴ5ÇÒ0¨£}?6vìæK¿ é9áã°ø:tÕ²Y=o à<åÅ]ÅÈ"^ÓŠ)frê$Uäòƒ… ä£4­™Ç#M[jUDiëÁóÉ¢d4¸ðýš‰ö :ò§Š–N$<Ðþyÿ _ìëc/0êóá e[³I£§x+êø"@­ìhÂ@sè|H<Ÿ/vÐÜÏœçw2Ô÷QåÖÿ¡¤é5âÝ—sâF¨nC˜“ÊKGTÚþé£Ú ¼•ø;:Gë”…¢û\TeFLíqû¢—ð¸ Þ± ׄ,éØqx#£!›ìSš×i`I¸l—\˜ôwn¨´´ºvQ^&žf€®ê4OK^=©• 0ÙèÂT&Ú4!9Tö·Ïú΢—“ä½Ï­¤H·4…9Eʘ°¢:WCºïWÕDëæ8ôv‘h<8 |~)_­¢\2+º[·ïT¸;„z_ó*߯%÷øÃ¶%\ø¢Ý^+¼¿ñѵn3 cߪÖõähPcŠI_ÅídGà{$aÞÑ6›#ï¶ŠÄbïªèꯗ _¯InM«±½øX6 j8Š‚¿âuL±ûp†øOùž&NàÒÙ1ŠDˆPÁt©%ŸmSæå@iþÚMô¹—›6¡TªfBóÒ(1áE³tŠ‚ÓA$Zü.…P5Áj»Œïñ*iýuõ¦x°Ç’áLÄ?ÆxÉm&bº&oÓ”½ô¥\FäᤆáéúšYGÐSWUj,ý‚ÜT?‘öŽCQXÝ®#'!ÓË `°"l½;Ó^ÚQ®ï=ïö Ý®õ'Ÿ{ìx­N\ýú>ÛB>¾á©¡?¦ÍCz÷hH²r¨‹ÞTl§ÿUeÚâltZO>è°>g˜Ðò~lÀ2çeä=ft•w\ÈÏØî 4.tÔYw tš18=ïvxâ”?m O`)Á¿¯ìå?1ˆ£ˆyÓ¿œÎ„Tfûu/Ap×°ö߆¢„rÒ­ÕeóØÉ{wÌànwéï–•ÍÞ™àüƒ«•U|—·±Q9sF£ãoä² lM‘óS‚†Ÿ<¸å©k66_% sÚ{šíE14RwÞʕټàH?çÌ)¶2}ÀEõ¸@1 ç$c¼ðþ\Š#ê¾ê£ñÅÊ©—wT”E®Çæµ£CŒ%g>‘~o-ñµ¢8Þiyv7+[Amíãîñ;‘ ëhQqW:WuyPŸ8 ý†§Ö«ûô9ű ÔR?´ g¢¯2^ˆ¼qQ‚‘öÅ+­Ž{tmA³Æ6\’öFÔ­u½L§ŠÚÀáZ·Cð7¯;bCêkÇëU·ˆOD„#ý,f†CH­MÉ0Ëï.¬S‘áÕ<’“ø&'ê–Ê‹>ÄÝù>ÛÒp¥ÿq-õcÀ®¿ù)r78>¸òoS6ŸžÆs›òéÆ×1Äœ!#y½g®¾)¾Ù~¤8!„ þùOc8‘hŠÏÄuÿMèzÓ¬¨¥P›B˜†§w‹/ xÿq¯ãFû>M(ÞdI–¾Ç&¦8d%©m#é2ô§ŠÞi³À;‚Ù‘Zæ7ø¸­ü™ 䌇Բ µµ'Çúj´Å¤Gw³@/­Ô•ð‡Ò ü$#%qî]X ìÕR_ ¡üÆâÕ*—/óG•È&Ãñ*Ç+M2Î`†ŸR¨Oîߤò `ÀIgç‰÷ïI á(–wwqBA+nbjí•%¾“)^·õ}C@8oÒµuŸt#¸†îïW:fR[3F=f†É )…}öÍ‘ÏáŠâ;0}¯0nt áŸÖ>`¥Ú WþA!†”¹½ù˜ëå~ÈWͳTÇ)oîðê¸Y˜Qç«“@N'r¬áš¥á»îÖ/~ FF€FvM±­ÉælÆfàEt¬æ<3ŠP-3ðºcV6¤ïXK kiì|Pu¿°ý¾ŸÜ•AÌ Ë@òhÜãóa£XPñ—„;sëצð¾%ÔÊ Äx2¡ÝW‡7•;fÕÚÏrdmÆô, e¦îI^yÆVf`y2HxWºó§S‚©í”ÀË"GDŒÉ¡Db:e¼k‘êýÚiZT´óÂßÍ ݆âW%âžp³hÄ/ž×Î×5à×Üá· ~¦”OÏâΖ°ˆ÷Û˹¤¨Óà ßAÖJT+Tz70„ù¥àwœ?¬À. =ÇkÏA—¹æ±…I¬*íJÀ½—HG ¨ô5àIq¼|Š8n;dµ)Ç*:Û½wA4]ex7ñ7³[ù¦ 8~x£Ë³¹qE¹uzéÔ¹}n÷m!_Á¶ì+¹ÝàJõàÐÏ™;ÁVÅ´¶ËbÙ}ÎÝÙ×8UXÕ­Ý„îɦ\ó.W5d«MÔûo·kæxsóuË»4eï'¾"QNK+TÔÑû‘Ž~ ÀæŸKÄ 8†ÅãüÇÍD¬  2IȆ$ÖÆ§@;Ë+ÈÛŒ2ýÙs™ÿäM—µè„¶£Õ¯íWfÕ—YiŧH SCÕnMκnÕ•§a©v&+("cÓ s’‡µÅÝ îàl™½`A¬ÒfW¢hùHÊÈñKßÓo>džez±£{*‡¯pê™ }VÒú:Miõ–èjÖå þw­Y‚´yѰ¨Û@K„hÇvc|`L³@>kýS?•0``\Π7PŠþŪAÎýÂ9{0Ïò5”tâÂ>‰#L$.¶(í©®ESˆÓîê4†¥o#¦Ÿ æ© Ûj¼ ¨ÿ’6ÛôÏf[ G]§Ž×ë΃eþ[1<Ò­‚·‰pö²ÛTk9ÜVG¤/$ï VB¡Þ콘0GÙßó‹ùeä”d¿AñVNS¤ëZ•ìÔF«Vß-EÕ{ZŠŽQnÆr [¡ì¯xøô‡`’­Ñ-U-µuØ]A”»BÜ®F•âµÍ ËZ¾]53"Ï Æm»§ÛžÓüÞ©Lv÷;­\¯Üú¦ƒJ#ÓïെåÍbÞ=2ŒÚ¯E¢~_tµÕöçw<ßÚžøfò$§ p©ëêˆ@D­ù=*ЭUãol¡Çyï–1lÚ=ôã¼(C‰ %ÉçMF’üè‘«ŸOsÃqýwBáÐOJhš2ãÂîêîÒ -`ÚäàA“ý<€ø_®A&à°w.) T ÉC þkÔâfôÃIÖ˜çÉ…& 6dý­¥ÑWú€OÝ©Åæ„'E-ò“ 5ë„W9Z‰e7ð‰Š0V@Ðö@h@§ÞêloD5 õÉâÐÖI=µÛ¦ó¸„ b”KÜ$³#ª–²«Hö«Þ¶qÔsmYê!yò3ÂÜ~ëR^°…'%GK å$ðšE ¶—îÉ+à¼Gƒ³l'¼Ò Žÿ=õ\ªv;ÈJ²þºŠdlLÀ‡»l .äh„ÎZåÍ<­$Ò~ fž #Ì*ák-ÒõŽeް©åÊè4ªÜ4UЈxƒŒ‰'¯wÑËXÕì'O¾ì«“Ôt ÝzÞBDÁñüÁ@Üò…‡€z\…ÁŒìÙÓÜÅÈ¡rJaªZóú¸uí ´¦>µî‹ÜA»£u´Â´ÖS:©}_4³/üvEËí%ECæó•pwi{ÖÝ™ö⢥H«…ËbH¦°L׌t‡C|w‰%ÃÙŸèRx`À|ň1Ž :‚•ºÐR6Æ_=ç,z:ò‰dl/Å‹¿±EœpªÐWW81]hó9Œ@¡pßòpg”Öz^HªÆMüú®M˜-礞¿HªŸ~MèJöû‡*—ó]D),w"H²ü]æÙ¶é’¦? 4WúÆnWw^ð©¢N#0”ºåý5õÊE]Q„¦õ¥EiŠiu‘‹UocXÎsv&Tœ€ëà7þ8é2«®tv.@°Éù^`ˆ¡o°ÝºnVÅZVèF™Ži¸Ë™¯8®¢_íœRÊàÜ áQL£¥îF`u Ξw3ŸQ(K«k.  Æ ZÍá¸4gHü=”•fÍ¥!>nºôRíÎ!•<¶-’’,}CÛn¬7Ú/ò0 ‰{4wMzäd®ñ ªBˆn¶*½ E˜IshEQ“3c-O PF™{N°°"ŠÉ8—‹¾¹¢#8³S0Ù&A¼=š ›8u<û /gL;,=Ò¡Ýe0í$èFU4MvÆQìQ/ e®´^èÙ„JðYøðþÜŠ‰5 OîBŽdž¹G<,Úmõº%‘–ýr¢ããæ1òÞæuQ"åI&˼"½ž ÐÇ,d1läÑŠXW×\ruÔƒ±fäb„ÞÄ Þb²<Ñ€/±‡…*1sÎSÜÑ´åVérëö Ù6Ÿ·mb1€©ÆÀ@ø;£ä•6PýÞë;bÍW*û…5w/²m†92+p@C–Sº«vaÉlWïPíþÇàæE´¶a„”Bú˹‡'`—¡G],w ˆt¾@-eXŒ”C“Õ—9ØÜä×±A°MWï…̉ ×>•ƒ Û¬ÏV•-tÅÉ«­ñ͇hÛ^B)sy¾–Mƪ_ɬ૭kÈÔÓyee&/¾Û2žõ-Ò³‚JŠpßß±ç4QíÙVuÀÀÓ1¶bò$<ÓS*ý•þ÷FŠ­§Ô. ­áS(ý."שèí¸W嘮uj¨å©j¥ì>ßr*…6ÎUvÌÅÝøVKøÀ‚Pó!YåÚ·dç!ç~–±0¯0v€(vn"˜í6©:5 §âF°‚I'.‹îó:;`í½B¦jêO å2BeˆÓŸ>Ú8'ìFºý¾vM™±®¢“½¿«öÜuôðÐUž¦?%Ò¸{âÛd`ÜÚx eü•f s#+ûãEñràm,]îz©E%eùi‹W9Œî--àŽ&k¸Éÿ篂:# ®£B{ú ÉžL\ô/ûïúØ™Rˆ¥@ÕŽ'O‡áúR¬1ÿ´ ~¹k¿ù–J—‚„†åÆG?È Xʸ*1ä³Ê9ß|•æzŸÕW›~¬`Ö¡Ó¬2–*›n%%ËÕÓF@‘å^±¢+œðO=픍îÕE(Žì ¤¥v(',ÒMò$6Û‹©tE{Ë:Q)ª´§€…NfGœN@G†2@ëP…- òxå}”f¶Bdî©F0ÑÖ›1 ÌS?%4ÇÎ;Ê-†ßD`Ø¿2;Ì€ý^ƒÎÄÕ³ !²ŽÛ´†Nä‹,“í>}ÕªK­ÎÉOαöŠÍq`¶×yèë!*µ¤sºuÅh£×æO A÷¨SÔïÙ 5÷Ò¥T3þëÐExÃ(gëRwŸô—ΰâ­ÏÆsë“NÉô@ܺ÷<›J³×+È»äâæst'Þ÷ʈ_ak磙‰‚bÌ_ÐÄ?‘>g‰öM`Á^íwŸ æ³#} ¶hØQ6{™jøZ½.x UW"1ãi^QÅÃCW•º\ Çœë2ùÞM"×?§å%N-AÚ\*wAB,W»ñx£ÿ Ä{ˆoòƧ¡êSÙ"kQ’¶£ÎgØ|ä@îÈ­wõäΔ<4ÀŠ)é!;œœ8%¢Tó°â•ÌwóhnÀÈ´Ið²_bi%ào4) }´ççÒÆ¥´câ³¢óÇ̆þ‚U¶49dwÛd{K6TOšHŽeˆíµŠ˜·+ľaú[¡xßÑèiì\N´ÉQâß?—R·LG0߀.·ÛŠÃJàaC™¥n¡¬Qú®•³‘+äß™ðœÞ«’DªI]'†æe¨Ãÿ¸Æíƒ¹ïœ“Ü’”uÔÐ],Tҩøç-ï>™{p&ìe+y¢MÝm|ÌO7D“ó"Q$³RÇâÃñ {V„) ‚Û»—x‚¤BsÌÚ¯‡.‘½RUôuüDëRØd ³0¡§µv}m:Œ´,P²qðj‰bÛ»ÒžW–(%šò<{z†~ÛŽ­©’à{ð+ÈÖ$R« ã–»@l®±ÀS¯© Ñ_…¥.´Ò#ß#º¸ ¿ÓAÃ8æÐÊÜ+åÝBݶ˜Q=Å•¼:èæ'™Ë\úQáÖ«D#g¥>‘,ííbOÉÁQy«WñEúíŽ8¶G˜^Ɉùš¶êãœÍbÏåò|àÉ5ï e~^‘á°‹†i„AʼôÒYš„‰R&<;JM{ò›•ƒiÇÇAŒøn烫¬ Žl¡›ç¬éï*ó`$‰Ñå:m(–N›Q(cciNî^{1—ÿóü´¦6!øTF¢@y?Ó Ò ÂîÚu›ä¿ÜN¡p“—õÄMïƒdþû‡/#!µ¹”£ÿùw.Eíú½Qè$åNn–•‹¾Ôú ¡ìLÜV-ž•AÍJóC4".|T–Â%×À¯ßG3X2|T~pK.‘Í¡çÐko“W˜åÄ{@Óíl]ÿ¾õeÁ¯w<¼íIê“ÉÑ*Hˆ¡ù@¾’<àÍ!ä²®^ë´ÍëÒÓC öËõDéÊ{gû>K´3¶boZŠÔL•gìa@¿Ëgô§ùžãæØ¦¯Ms)H,ï=xäj„‚xAä:–£‹ó¿Ò6¨ïÊ´rC­# ÙÚºçŒê®Í>v’•¹ÉÒC‹öIztPü:-úHt‘¦Þ ‡x‚¶ÞW¾¥5<¡UÒl&¨Ò 'ÖTM›+Ûx7-Élz%ÐM¶0d“À“£§¿Ý~\࣠pbÕ÷Ck'„J¯ÙfíK@ÂC…· •nš&ÊËœ#Ôƒu¢E>]á‰u›Ðrw¡nÊ[Su:ˆ‚zê^)%}0ªìí0IMêf75˜åØÖAQ‘d¥™® M;¬%ˆýqÑ‘Hö·U°s(¤è®£ÁD]/í*Ú.!Üñá­‡¼gžÌvO?cÿNñ½é+XÄЭ\‡N}J®ÌÍñ=Q¬žc;ç8ë)…V€¡“þ³“•¼käW¯NuyyX²Ö K8h䘖˜ýt>ƒd›»dë±øD…Må gÍ:ÐÑô;‰W/þÒ0¢¢Á°P"üv'Ö%Ë(Í?ëê©í‚Ÿø•b‹ƒ&"·ùžû’쀘¯ð.‚Íoë‚!u CùP),áÈvšú}ïÖ¹e2£·|¬-ãg6¼¨¶øÔiŒ™’þ†ƒü¶Û×FÈ‘<ðfö^_œÎ¬'^Ê5qÞúÅ—Ç ª½Q+­û§Ã-3@ó›„°yþTѨm¨0p(˜³¯¶Ç:?¸o«H5É^/|’¼Äù•p·xF~@ÝOu Òþ1L©cÏÉñcB¦f Áæ#hÖ¬¥Kawéc¤ø6òv]Ò¡»'B›cî.¸R—5³„Œ‰ÍOuà½Á°o4]̆» ôm<Ø‹¬Îß²£^5à§c+°d0RD= ØæN «­–±À¦<š€é¢[ÖQóë˜B§:u^CL§¢MC7O­®Ÿ“¾ƒ¤Z j1Ÿ>q»†õÔD<µ2>&a¯»Ëú<Ù¨ÌÂO}°\âÀÄ·ã“K=öZw­óŒðg§Áaâ|U0øÛ>>nÜÔ÷}m?-Òkj™y©á…´X-„Qv8¥£26t} k.&‹‡Ü¿’‘ê§Qû  g•½C0;nŒœÞf n<Ód}"$”ÆÜ«ãUÓ'ÜÃYŒ ëã³ådÊ8è¶ní0ž¹©f¡‚ßzaU ãuL{©?ü€²VÔÖJÚ2¤ äw .@D`K´“ž„¡ôzS ù(S!çÓ­’µrÓ˜+2*~€@i˜I°˜Ô×¢*3\ø3´¥'… ò +gä‚oRþ¥(ÛÅ6›l¹Yø:•ë[ü‚î­‚Qæg/µ+¤Ža}ó°MWêpq´"sË2/ã ù°Í¼þpBy $ËA fÉ^€®Ñy„/»)Q òF£B{_XÐû±¼,Ô´[Qdy`V©‡–n]øg\¨¿*.w!ËÏâ=düv°±1!ÒÁ<Ü¢ TÜXž¢WDã¹@ðhM¼~ü¨Á’ui¶%š-’òºXI&.žíW0º}¤èO¾Ñ Wä‘ òí¼ñA¨yÌY]6ÎÕ“7à üÏ®')áQH_ÔJw÷|-¹ñ…àþݲFf†é1àé´úO…‘Ÿé„ÄF±çÍdd–ÊÓ! áüçÍ‚'ý5œ–—ÜØìaîMU¢šä¶æZÍɹÊߦ N»ñ[JÕ™´8í¥Âo/µZwª•´XF”üí §¦Ã!‡5mA•¤~›×¥7ÁÌ!‹¿ÝQ‘n†d]GH5½‹ÿ–÷ƒ ÿ¢“g‘…Hð¤“Òbƒ/ä[{û!ß ¦ÿuY|Ãs…h4<‚C~7嶤Vc%5d;1Ø–IäÌSnˆ¢‹¦œñÝNLúé´½™ò éˆ„hËóOŠªñ`gôx Â;^¿Avõ…›è0£v_t"¨2ä Žw›»Ù|Pù¥};W7Û„¤–BŸñx *xžêýqì lfa2Cþ:žªeŠà …°h±™ÛzšˆiY¤AÙ&/y{6xw±‹™á¦.é|©¡@š°Ëï+¶ðG=Žì¡1Ì=g-!¢=ˆÁºÝ¯ÆUÞ†ñ€EÅ q¶bÀò¬*6€zrždgwµ´K©7ô!þEEÔ‡Îø§´xEŸ`)C7;íW%<>M@3éYè²æ8rù0™Aµkß »[}SæwH“Ÿß@2 ïªFÒ켟€ × iºz ëV $øp]¯ã“lei¥¢›Ö•™˜ö‘:GX¯!Ôø³nô´ÆkÅ&p¨Àu¢bt½Ì —xJ«Ï‰Ap“•§¼¼•Q?É*ãzxaÓS;H“Þrd {1xÄ+º‘ÜHĹ‹~ »«Æ²1õRrsóYYs¸Ó9ÈCò‡r©#v£€Àp#Üï|¢¦À^•ëe!îUåjˆñb> 1ûe0–CÙ<}â¡eÉãÙåWiö¶¦\±ÕšÔ_ú³*tBëÅ™1kK^?®/ 'm3¢¦5¶P(gžKm9ºP ?ô$ƒWµM\þXe„GøÅ½*Ú&eóÁÁn–lh/¸UC‡¶ðƒ“©H ÁCY!oYm#-LêÉaô/¼¾±ÇÛãÕÉzh!Wp̨¦ªl ¿?ôûù]—Ô—laá%zݸ`¨¡@c2"EE'I+Cœ\‘[þm˜0ãÙ„dÔýaú‘Íx_û¶¸Ðñ3äݾÄMÖ\Ä ÓY8ôŠFÜã!Ûþïjùn&ßkª®ìê¸63úÐ}Æ?}nø<‘½(÷º6ë#ëR&~‚Ñ’Â !jMï½™Õ¼DC…å­‹NE«ÿÙ|³ú” åîu®G4ôòTÛ¯2I[‹WÈßÉÄ…>B¾Ã㚃Z®©µ¾²à$kQææ–ÖÒ’UNÔwA8ïNr~;dðaAZ’ÅvúÁÍmäç. (_ÏáUýàVð¥ ÓÞotøÏúD ƒíê~’ôÛRq‰ÑSç6óá0½=eÁÏÖ  ±Hn²€öÀWn/¼•ð„–-lÂ…^šJ£ÑÙ’4 õeê“0‚š/§ìŠÐE’¼¤©D…º%; (CÐE F6l·ÅÍÆ;}3ÚHÀJpÙ(d‹Ç³]›g `vbw9õ¬„¹x=J¨ziö;Ë?fq>\0€¾¦*¨ãÙ±Ì\_£º©%ë–V©ÛZD½DTTöm¡Ý¡—êZ|Cóí²püer ±¨òA¿üÀͶˆR½>h»Ì«Ê¦@èâ £V-<…8Uå仪-‰$˜Æ•ÆF¡ƒ×Æ[jÒÊ~e„Á_y0?#u†#™Ñ¬Ü-^ÉW¬A ·u‚Z0ÌýÀÁÂ}ül '­NŸ<Ì´—áç&‘áí %Õž`c x%؆ /åF¬ë‰h¸×û×eÓëNA‚)~C^Å dL¨z.£$«‰Íä¸[Y'~瞸!"dXãB–³û¯¥è†ßGÝ:ŽÚîüôo}Äô :ÕpÁ†d¹€]à*ÅWÒÀb3¯Í†*K°h'½)¤€§9çX<Z[H ]GnX©褮TÄÓÃbÀ•—ÆØþ³â–qO5‘Ÿ@C)F°ƒ™Ä¡¥æ+§&r#ã*+^ŠÇîI••Â¥jøöSóNÝWÃ’óiŠÈÆ„z\nJ}Y©#šNb‡ýQº4R”\Òå,,©Ê#ާ}'Õ¾å€ÃdëW‡fÄ4’Œ*&”àû¹©B.ü©J/ì¯U¾,®³Ü3}"VÒgÓ­/â`›vãïýÇj,ˆd¾ŸNÞç²MVSRþ²[Hû0àÞ7t‰Ø1å€rË`~Ëi&ÓÑ>eÂðT«Ë \¥ÔOáûÑ62¦ºíƒƒË‹Üó6\ça6©ä´i?Øú@’ö¸·¤ý“§ÇÞ̼èØmŠhcjº'èNbº¢ÜÒp p_MgGø°,yÉøtzï³Õ(à-*EQF3VÝ×ÉI'ÉÂÀܵºjk’€¶Ü„ž¤*ÖVn j7§ naç¿ï¼ªš¶ÀRb¶ ²ï"üüvP¦±}¤“%Y›Ý?ðªmžZF8t̬u;‡Z&m>0QᘼìM­ºÚâë??qPTbÒ¾Ï" öTÙ&¼­Gò×¼`ˆ’P4h¦I‡Ž+—µ%‹r,Íë©4Ù þm5î©;1‡¥ÚoâÐDQà°µäE°…c¶3a†íú{¬½^'<œSÍæU9õи‹!¾ ^˜!½(ÉÃkëÓ¡³S‚µÿ¥X@ïîÀûbO½W¥U‹Àý¤_¸‡/ªƒ–þêãu×Ѭ ($È`GIXs×Ä\ü¢ìx(ÃÊgõ£Ø"ȾFÊ,­ês¾Q,qô@¢¯s´ÊúÛ»4Ćj87ž{†i  S‘šo¼—G*¹Çñ}T´·Úw©¤¤± »¿=(ncCŠÅùÜ츞ۖ_ði—dÊ' CõÉŒÝ/o´1§/ñjú»QûÓ»àüTç`[ñçË«3½1ć{8u¬J •ð/.¸?_À°ô¿àQà ƒ™yofˆ˜¾ˆsÐ&Oô‡g‘‘y˜Ÿdöi‰$’W6_8}Ñ×é<ú ÂÚeçÞ8™á7–%w„0 ÿQãy©Ò‡ýàÕZéVa¸]6Xĸä?!z`~ÊÖ«kÀã3'xcí^E…} v—Ý€@%yCƒ7ìñÑàÚ—?´£àÀ`fˆ]úŸË®TœÁŒžx–žœMMb€àH"¦ù¼g’>(Y‹c_ˆ¥•÷;2Ùü V,ÂÕÿ•Ó´Û4mpã3¢Î#¢mz—ÃELú–­™´­eþ Ùí‘Ö~C#òÙþÅÐW}d2¿‡K@—ÄfU÷=·˜´1ƒ¹4Ø:ž}:-#b:¶ÉãçQEKoWàíX»aìu2tù-Ö-¡v%cÀ«7ÙûÖX‚¬¤º„eFÛ“iå ©D¯wç[Ôe± _AñyO…àäÞƒíJœ8%BRä’#}„”ÚëíÌ›RunQ’È0PûAÛ ¯ éìÀ€˜Ú:ÿ¸#pÐ&ÜÿžOÅ-nƒeÛ{Z”5¸‘ÝIǺ03l¾áùø| …ºÎ9²u®¹¬xìÜ’ÌÓ ù^ 5œE@ÍW5!†WØev^ŽZ2Á¢‚ê0 ¾‰¼{Âymõ%å.GÏ“þŒB|¹6N^F0›·iF‡°-N’Fò ¬ËH=¿¿÷{½JV`·ûb]±ý¥É¨ˆopÍydŽ, oj’˜ ©‰‰ÔƒhséÂrùˆZ|G ¨D×Ïøyo³é¯ë|êíÕ‘à:e©2«&&ˆM®vè(7¶J=SF³L EykPobEבÇf!ÍôNpHkUNàíÉUÜõ€ã‘$ËÔeô,+. BÛØŠ¹Q Üdß$X D¯XC#]Strdó$òOáž×¸fÐŒ!cåúã‡P‘Ò8q¢ì—¾ë&þ(BŽJß$–mQ(õ3¡?@¨¯eø}‚ÈÙÿG6€À ”%S4s6'ÎìônìÁ|¡­ Æ(Gf¤ðßéÁÍþfÚl§:µ3ÓñsO=*x[ÝCŸïzŽ4H\4W¿‹é, nx5@Þd@.+\r¨ÚLwq_#°u¦F«H…iBŠ©A³¡-(› üýÙ[ÀâÐcpk¾É¾";eê9ˆ¨9{Ô~‘½R*ð­IˆJ\uœÜZvkzÛRw€!Æ“JÓôzȦ. š³—(pÇÎÜü+³Á3ºH Oàò$©À§< <޶^GÈÌ‹|dª†´ ØA«w Ÿ¡ Ë´6UÇæ6Úàa^œÊ"‰Ñn2¾8…< m-ÿ·°x8¸øg,Þ_ «"å¬%KÛ ó-kÕ*ïë{§ð»T›_ìäW®ë9 Ÿyªz6j`6†ð];âaj¨‘Ä–Ke¯‰!³Íþf`&Ëz ¿$“o\6‘¸á­âÔ$$ºÃe_¸Èq‚*°[ÿ•YÅi[L:Û¹NJ Zˆ¤hdÈk£î¥nP7•eÓ<9!&h¡Ðd»<¢,ÓÔÍ[ô®Ü? u1˜ÒžÆ)Üðî:ÔúàŒÅîÃxžÁw°‘J_ª §®‹PNÁÍú=fT°,WlÊë'æ{ê­ÀxÎM¸¨µT‘$©÷rHyxÀvá©lv[ óÍxÛ+–›ý ~ä/\iÍ]t‹NÆÇÃmîà"3÷#“ÉÆ$÷ó ª_à;Mü;ohèÒ+gí¢Ä&~bwecìuÉe?²‡2UËðЇ[Ïä,={±9[ `ê”| ;P2ösKn6<3бÀ?cbnUh Šî$F²3¥Æà`”üc‘6o¾2„§'âkHJƒð´™\¹ ·‡£Å<”v%¦ZïæÜ nþçï1m6Òì*Õêã’ÞöV-±Åx¶/¢Ògá]Á×n<ãäʦœüQ!þP‚utUi@€QVølrIQ×"JmdîDÒ(átµ¬"ñ{¸ŒøD;Ny3±¾œ°“Xv&<0›ŒJ¿k`~ÅPÛfi†¢Óا‹¿­_2¯•«…—oÛY‹cT{—Ò‹d ¨ª"Áw/)faµíNs›^7ALðdfçS0êóh¥eœ¤'P¢_[èÚG(·ßrPsgi9-½TÈ´½}‘MÖMØMdSàÔ»>71|X&ò¼‘è¼Ð1wûˆ÷ÉúXì*æ¼.jMË…ícR-@ _¢Ãm_LŠö@;ÊüuSÆv²o‹ÆGE1µäù}›Äüewp*_9sä5ªÈ|’  ðÒA£ÎämÅÑ$-ì´YÑz’õþ3ÕVãóü:eƒ†ÝD÷Ul±1ïÛÅO6þQÍ {Ôor¬ÓYâB© 8%ŒF,Oiî orÄwïÄ^ãÂôê¤æìþht>dÑüÔŶ´¢RËý¼5Ù‚\ÖCw€qQʉÝÁ´Ìçü¶CÀ=½Ù%yèÜ`àv?™È1¸EÖsÐ_%&¼”20¸0WÛ߈Eë¬{il$ZF¯Iûƒ×´ÏÓêR85uÓç?Ì Ê‘=öBÌ~@Ò 04íY•Câ_[¸oEa QžBM=J±¸Ç<¾1Ù´ÉÀ¦?_ÁnÔ¾Rkt?y3T6Ìeý^(â.Ĺù¸0kÆi1÷Þ~rÇógjÃäHíä¾:.>§Ži9 +¢vum¦G±²/FÉ‹“¨ ó¾­â ä…GT”C ê,ñœªù;Q¯+bßC?eÃv•2w<ÏXž¹þÄì–uìcÎjt2SsëÚ]Ûl:«ª9Ræ›uÙ…Ìì¿ÊTSg ÅĘEÊ6×<ɽ­F](ëGI¿s`Α]ÿâ…4/3'R¦Lü8;ÀDN–™pß-̉’çHe¯´ƒ ˜J‡JD~"ýXÁŒÒƒ™ñ5¾d*‰ÙCƒUKøBl|•Bš/­/„'·Œ;E‘®\@¬[ƒ ÔWëŽ4Ås"ðÓRŠ!2^ çœJ'dA˜dp…xc/˜ûܼyèPì#Uøå—[Â"èýÐa÷Ñ¥¥€–ÑN£SÔ¥’TŸ\Eäð¹½8@_?]Xü<°xj %¡Áûë¶ï`±d6¾™#p=º!'%’fs‘džŸ– ¿¨Ü*6»XðzÙÞZ5p;,é^gßtzúÅ#J`°·£óÉ,œfÄÙìy ý¿úVÆÍÈýC£ýˆŽ7a-«§@íÁèÈÐ8‰y{,Ú-‰kÝ×·Ö%T',:¾ƒ8݉ä¾äª? rR“bÄKg»ÛCX>5=+ƒä3ò¨àîJ Ä)¦##}>ˆPB'AzvŽœŸà¡Jî¦.Ê ¡°ßý™»ƒ©Y·÷hƒWSÙ:I çw Àpä>8wqqª¤õ}ÿâ¼rCUYóǧm›ÇÁ­µ{HÚ¬ÛØ 0ÈÞ(h欂8âÝÅZœïÊ,Ûlø@|/](\(qC 8g¸åï@ ­;±KHè½è9zrwßKïÈT6]ÀGpÒ55 ›¹É†aá~§âl ‘íøÈ¶áí«¢«W›”p?“SYlí ‰±âáͰ (–Õ¶µBh8&ùúîGë;5Ú~¡yfÍœ²Ï{€§ÎÓšb}6k¦ÛìÏüBX2@Ù=ÕYi4ÿ(Ì÷…ìžášëÚ¥ÙØ´‰±ý¹6ŸvYYqÓp$Ó™ÞHx«©ŠÇ! ì±“⿘òpzøä—D7Í@×l×%¢ßîþYÉ™d0£2hž<| îø?eŠiNç&×囃c.KgŸ®®±ÕIY¾€<Çx¶% ÿ^r.AŽä·& ºwñÈÇ ø®•6eÖ]Èô ½ÙK>¿(A â8‰®à%{ûgeñ·‚óüÜ+ò½ŠùËÒ™Vé²#”Êþ¿†TÃÞN‡„šH ý~—’ÑãykLwËlv7[6ëÜûS9¤9KŸ˜ÃÒ~?Ÿ“ÓÆâé“ëSÄ÷ b/I0˜ÉxMñµ½ÙF…ðø ‘9Î#ƇÓcw-*l§“³jZ™44ú¬ÏØå4€¾’æö«§¨EÚ¶žž!hp_ÑÌWDܽ–¤ÒÕS.8‡ƒ\ÍÀV‹Á]É?Oö 0ªPX“+ÍQº¾B]ÚÏxIæp!!W3Øò’ê Ô^³ïÄ¥”ó KŒ¬Ã)á©"e϶™ cõ_¡o®:½ðx*èœu¼ð ‹«¦…—$u¶ ±X9×»ƒ9ôí¬z“paºL¹5¤ú+•ßßH‘ Pê+Ñ~«U ßìØõ”dÓ´­/žÃ0-1óªíQ2dQÃíErþBm*k‚×àG+õÀaPÔ½×R?¶5™0[› ºO#ÚxÏÜkžÂ@ Žõ/*¯“Zê Újñ³“J6ÝXpëÕÍiÙÒl>“9µ­ˆ÷_Òâu#:öìéYAµ}®óg7VšùÓ¯7hlŸNdž‘âwyÂWu¨`‡C4Á.4}LŽÙRXŸVàMb‰ÿ;Ûf8(‚öÛYÂʹñ–©8@AYÇì×} É%I¯[µ.êeP–²v¬ÍùR³ ž‡ Ipµ\I]Q¯jôÑðβp½ÕÙqdIæÈi(R)9ÃAšÎ Ux‰2þ7`eªQÎ5w˜@gÀ@¼|—÷”ô³CBV÷F?bñF1ý:†Î{±áê°CÃ]» åA‡”=tt¼¶äD¬My­/h( »¹•GÙó ’g1“;)AÜYòʰb"´±~ÑG€á.+bð^TP<0…QnªKÒ¶íH9 jUàèÖu½oøºêS5€IGS⫝̸ÍÃ2K°oÆð×±àê3€ Öwle;u¶ïµM%d!×-äEYÕ="æRçAL.k<< òz[±ï!'m!õáÒVL×éK•„G|‰K÷òøý¢¬L…Q;šDeXÆ_­ž´bžçµ’]A(%Qß™Åc²/¹\;ø`5G=â2Ú¾/Ú!‘KóÖ߯†¼Оý> 2Âóà:>V2›y“Hÿ =ju±Ú°ÿÊ·~p8 dŇ^ÇÚ`Š‘_a>DªE‹Tº³'ÄË~ílÚdZ-IžÀâ’Ö´¬º©&«óQŒmùiøÚÀ{§Ò)ÿïXÂ’=à‘&œü2'Ü"C ȃÉì,éËFçI‰}t¹ÑÚS"å1<2(‚kûb²Èÿ‹Û¼ 2»] JLK”ÄöG-H ¥zù êƒƒ”8ïÃ-—<ѧ‚ÉÅ›u*ïÅ-jG#å2ïæT’éS±$ûCN¬·cµ¡·Ô”8·­$¦–VÈ}8˜4 ÕW†ny“wù4§¬fƒleÈ•eŽ:ð“³Ç»F~›&ìßVÈ¢’"Ú‡ª.„ìÔ5«¾™˜ÝÑïò<à7Çé³+" ! ÁúÄ« )@i['ÕòPxãm«ÛN,il ¢d͆ú·õìÈ9«ŸµÌë~ Ì&xisc—±Ô­dkäêàEàèБ™j¦/Rg¿µê_OÒg‰\Éå‡<’Á”…¶‡ƒœ“ép\AÔAMõ’Ñß§17!€o.ÞoGi µ¨W¤¾°h oŽÚ¾¡ù?Ë–I m4Èzkw@ªÈ©¾áà€`Rb5~KéMÍÍ }_¯1öà Ðôͺ£ƒˆˆwâ¼}¨®cáðV@Œô–° y²·åx^¼ù+«¹h%ØÈ …<‘ëµwJ¶àœ”7uµ@ ë¥þYKÄ2(÷y@ìÛ„gzâ[ôù˜œ;ºWfúF æÛ]SEjËÊe?U·,•ØïݦѤVR¼Ø†¥°1ú~–ý`LFúB‡Åp=óuÖãR0ö VÉZ¨Ô£àïúhµ¾¬ñ§øcÉi¿WÐàÜ»¢¯){<¥‹Dî+"_Ü‘\j@Ô©ÀŽE”þ–T;8/ùŸ[g׺tLü˜LÜ'š&å^ßÕ¿ ixQ”ñ²ùsç5L¼[0ÀÀ ‘ó`Q>Ešv$yX‰`ƒ¤øŒ÷£¾á£?ç’ɪ%k7Ô)ß.IËD9¯-¨‹L¸Sð*1tIŒï‘±DSÐUçx>{e²Û»ÙK¾è VуôyÐ ï‰%¯­üÙuÍÖ^–Ëp|€ë6»¹V™ßä}›ŠÄ„ý\årà}c†Ù®‚!ôÖ}í#ïˆØ\4wLgxÔŠ¨¨Ï“®+–>ˆší翳×ëBârLjß5 1kY,†NM4öÛšðÝ4´Ë°±Ãräf—à<0p±£®Ø‹¢à¾ —ü'R q)Ó0ÃUI«5Ë=¨‚ÒÝ(ÏxW°jáÜ™Ïl ¼Âèk«‡~úm ÒÚ¼MŠ |øú²¾a®&‹¹Ý¡z€Üé[“mìÌ.™“ ý®×[ç<#Õ6èÉ5e¾,‡ÿb­;=r%`1#8Qæ°8jjmêŽô¸mڤةp­}¹íQ„L¸D6YŨ”[[ S“ƒ.€o#íVß[Ї4ØZ¡ºe…zTS\kµ£N•]üÞð÷Ö¤~‹‰ÿW·››¥˜4¦èzÍS%ÇÀ}Ó™ÅAŽCtüB«Ø¶!^™gûœà¹;ö®'Ë’s½orQVq>jÔ ª¡ ýÍ6êùÝíxãWqž³²Î•b?*÷8;@Xý•*ÖtÚú5ŒïÈ·qVpXYÞDÆèÝHcŠJ\_ÕnV®éx”‡…¾U3 Øt#ÉB%§¦¹5Ù_õÙ˜ô[h¯ÅýªÅ´eº;ó8b]ßCk`øàO~Œ1®´C_Z~2>É ì{ک۸žáüAÎüâð€úâAóÁцlsÙ…šµï »î¹ª„•ÅLLÉÆ3ïåo €£®m2¯žK zÛ\±‹^SVú¶°gYlørËepŸÊÇ+ hœ±Í²Ê+ÓÔ³,Í|`€¸‘æ¾Î“ð[¼÷ŽÑ»øsò¤:²à¤v<Š(`öªZ…ƼÁʼnõ\öˆÆ‡}t1CÛÊÚÊ#€“Ä7)B<§*«:¢@Æ!Ú™`v† SD!YÈI÷°iíØÀ8rÔs¦Îdõ…‘WÕ +Z2~ñ+¯¿½É•ã ò=üKOƒ»ÙòÍ…y©7{ mÎ ž/#y\Æ~íÍÆËhYýçÿ¦° e>þmqv¯ŸY¹ƒˆØ^ÌM\@Áigá|ñ˜9f™É™´»¦«D›Õ»8[­ËµÁ½¹}ýÁ×v/°Vk¨joÄtSpñµ2¦w’׿Sò"±°çBNžæ`l„ÐùTÖªuèQXW¤Mcw]H€ÊeÓ¼XLj˜õAXw2[W•Ã/sñ„(>ˆ|˜ßÎ~¤§œ@vC«UÀ‰4–e¾¦KÜ,ò±­‡†¸™C•$¾QËvR£ F¸£Š œ)•´R {}*Ukbã†7K°«žY>ÿb‰Äv›’'ÞŽfv8«“~Ë:bã¢ã¨š¸ÑFã*¸€Áœ¢b´¶úÙ u1}•w±EÿêìðÎgQ ¢œNSΉ|0¯€ÍðŠèRðÆOšMðW¾Zðc\°Úv,]8i¯™ Ò²J÷{Ç•1V>”>Îÿ}w§€§Ø x4Ð÷OS™èâ:× PÐpþf XÙå©Tù FžèÓ8q‚L´‰(½Ej ¥µMrÝÝ:ˆS˜CX3}@K;ó¦·9Éê=AibýÀr¿g…œ*ðm¬êí0®ä¼Ì2U¸ÝãDŽs÷ ©œez‚?£‹íçÞ4 WÙB0(²ï°DWPhNúˇBIùé{–™à5gbÍl? ‘å 7ÚÞ=?eì¬Ï°†izR yÛ†¾_Cm‹MÉìƒs¡9vÇNfÍ-R޽òÑîÚ¬ç6¥²íî¡çaÀû¶M÷R‰±JÜŒI*Óüʵ.œ¹U~‹™áE‡ƒ.ìÌeÏt4¼ÏHš€8³¸ºòq¸/‹bôûö>†«§kb\€Gž··YQÅ8gJ´bé‘Í?ˆz³Ø(\ʔ֞èt«'CmþäûÕlGoåæ âåÌÌ4ÍwqmÓI"]¬ˆ«(%:Í4ºhÝêþYj™pÖHà)%˜VÔ¡Zºnc/å ²ã‚aKBeÙÎb8´‘uÔ êOÞ Ý#Ѫ,xû[®oƒØ_ïþ™z†Ò”»¤v|©vÔ[ç°ÓÖÿWµÏÍì6…xaó¨Þ“PHŒ$³6ˆÝõú~óÚ™¡×•ÆÿîsÑ­»è“üF7oÄ€éh0ýQÙ*©²3¤3…¯õ =\×Ù2­å&ìPë։瘔”ë›m?˜íñîÀ zRg §å¨åFk¤6J¿<ˆ¸@­xCÇðŒeöˆ³¡—lÔû5|Å„þ_u–µ*`´”Z³$†‡Ðß»¹°ù@*ÔÑ ¹+v8y$ß-ˆÊø«°‰“¹{Ú_Ù‰†k—\†¢û±ŒþÐ’°ì“}1sbo=ÙKgòfÓHŽ·Œ`C¨Ê.̽ç/]íÖ!e…M]˜¿2(õΧ]Ž ¢1Z’Ο_òçË™fÏ›di|+Å@ðn”.þQ‘ûb3eų¡æf±–W«°&A„äÝK ‚xb—î …“} qu÷"Ɖí×*ÇÇO|q5^øpœ¸µÿ´'(?)Öe“¨ÙdÎÅ%Öu4¢»<ÿè;8PûÇfÞ°ùc¯ct)¶áRÐS1ÌlïÖÎŒ«Ý °Sp¤”Qøm‚)8¹?šçèÂ)\‹8D¤(9­8XÈ¿×&VP¯ñrÁ?Jøüø¥dÕQ5ÙZ­'»<9Êæ}n#E²µÈ?« ûÅ;ŽIз à²máoSgF­{Ù‘M ^Ш$Ñ,á ?î·ç-þ±uÿ¯uO—¯éo·„’¾¤SiEE"/ƒªŽÁ=–1HÛƒ/”¶Ùï,.™áy†øyZO{ÒVïZ 2¥ï±À›¦¬Ü›yÍ9ìwy‡7¡êÚ³:Ûð™7­éfbïì—ÙÂér)/al©âИ |mú—ƙߢMtUƹÊ{¨“ÿNV¸¸zç4®<°!ÌeNWo¤ÇÓXæ¥××÷qÐf7QRÜ¿\TL4‘Y Û!uM}Ÿ+î$gFït16‘÷f|ð K'f‹¯”AÄ¡áçX"øœÁr2jckCÆfL-¼ÁÚΓ³Qìù,41mˆ kun;x¥~”©s¡‡–ü0¯üôí,Hër½ÒÛ+Q¨ú?˰“‰ÅHÜc“áÓ=ìÚífVœšÎOáSú=ƒýtö}æAŸrž2c>Jjîj;d¦vÌ8@á‰2íL;¨™ƒ¢Ôúy5¸¾½zr}pvCdz~Hò}¨ $,ªQ¸X#â’ÊÄñ‹Fø×+köÓ¬"ÚÄ-)°‹6QIˆ©i½O‘›PœÉH£ð‰*´¨ýS*ÇbÄàexƒld$‰~Ò­æ†é†Ü.v¢‡ qOƒl—¬í›E‡¯}ñË}ß©°€_ñᙕ–ÜüV1.LXö %¾¯“˜SB—“ÄfáœmÒ<ïæ—´ÐTÁEÐ!&n”{nRíó½AN¢›ÅÕ£ÁüÐR…d§ôB44¥BYxÀ3ÍÒB Üy·3AUêÆ&’Z˜@›ÁɡƷÎ=¼ ÑŽz§þbu©Ì‰‰&åxbºT$¯%m±ì Ö™ ¼ü½aô>í‹0œå»ôÏ0/[â´´KÀ:ÉNfMÞ}û}(}‹Wý|M ­­5ôÖÅä9- Âú¶c&-Kö#+f!óÑQs0á+&Y>/Œ#ÙÚXÁ·»Ú眀g΢/¯Ö¯HsT ø,ˆ;ÎÝ×¶¯¨Wƒµ4ÎÓJJHn48VÞ8ñ³Äó¨XöNpnôhéWì‰0¨ÃMéNð¯W1hžWã¶pì¾cÌ®C\À¥Há'! ìMyc? g.ó Ú‹AϺ¨3ž´ëöÖ_:svüS£õëô7Skwïã^_ºÒNUƒÙ¼ žé”â¶z¨³Iպݙ´8qŠ6,(n â 1ð7èx=‘.©Üô6Ž÷¶kXv‡ü´‚¿2Ë$ÍçN¡ÔÛ…ÆÙÁHøæ+Xiùp‹ÖÜñ!#cŠâ DØd`y—Ãõ!é^’¨¸7RbØE,Ø:† Pî°¬e²Œ Œ½Ü?·AÖ9yq‡ô÷LdzžKoˆ>q°GeÓ´×ë¯ÂŸT~ àyG,0Ðs""Jð!mበ+üõP¼žØ_¢ëˆ|‘ÈABνå†{íw¹7ùÑþ¦”s;Å€;Z àÀ˜-ù$ËÀ(OìqÀžgá.^-zª[^ts+­ëHwd¯ÉA2–Òv‘w<¨–.þé^±i²[¹Ÿ½Iúf¤2gžåûÆ>@Ÿ;+!ÑG>öŠr›TŒŒ ;âqo*’ž0叨<*u ÂF?ä8•eN–¼»¶zsc"0µvÁ7V0…ç$²³]rßÀ`œ}UÍq¡Ç@[vD[’Ù–&èÐ+@¦æÎm»]ïi—ÕXPû…ǃvаxë’I¤öu äÓªËØAO³¬EÅáØyü‡±È>RMFTi·h½ÿôY[´“¬šŒ¹® '¡@ަFKEuºíœÏ× <þÊ”M:ºiÔe-0·Q$K><¾xöÒ-zîYÚqFTØ]SÁtïóBØš5ËJӊﺈÄ<€>¶öªÑàAÇÍÇbÃ:§$p)êóægKËðÊ6UÆJ–‡3 žl…¾”6Dš°ñ²3;OØ¿.|}fLÝ®<Î8Ü’ZÒÆ-Üx¢:›Dß¶©¦Ì=-eŽi&žƒü¯S±™Kk[Âmg¼ˆÌÀ«‰øOç=Uš(4§ÕæÌ*VïNt)ÏUzO9äÓÏÉÌžãAlÖC'ØÌ„ª<…þ½ØA†›7fCÚ¹©Ü®ßëú#ûuÑwþsW‰jƒÅÎn8x†Öhg¼4ßœ8t{pOY×Vÿƃ2–q9pÞ:iê‚gy¹™°8ÑßËØt Š«êʤ%9YNdfvËnd¹Ï¦Ìå*–C$þ¢r(fr Ze ¨S´ _årÊÜÁò£“…€:lÅ(ËIi±Qé¶¾ ~u¯mÓAÆÜÔÁÍu‡œ:cЈ?~Á6Ñ™¥odH½ eŒ†‚%ï ªaÙ©o-!G@PaPwÙ,ãlð sÕvï•ågÕâ|¾ÈÅ£Ñò a-W´›UYðuhå‰Ö£ª^-é·»†”h^"~ ïh;¬ëm+?øÙ,ߎ ”ÙLŠ–UÄ›ÏÝŒÐEÿ¯;þÅweìIÉû\ÎÁ[kÕa7 PEoŒ„„Ì¡¬ÓŽ€É Z™w>Ñ!¹„ ´„ÙF±*8Í áéçA3,¹ÁŽ–-pÇ Pä¨Xµ2ÏL5+;)yeþ&£Ym])Ëaô$.Û‰Š¶ñìØNÿP#UbžõP¤FAà öu¼ÁˆþfP  UREø¬œ¾ˆ:ªÎû¨4-?®¼Œ†y%šùЋKÆZ·JV˜³$ÅCM9C%†sœBþòЂªxë„tÜ7ó€­Œ—UÖ'ps¯Ñß×fþbYéµ ¹";¯F^8@p]‹!êC&/jœ-Ã\•"ëèc6—"ûl.*ñ“@i’õjiuoY¯(›2¶Í*¥_‰eŠ L™^Ö\”VACßÂ'œ¹Ê×H-ù›– ¹ 3¤hrµ)‡ ^˜ÿÜ@ÒÔˆX°¯b£è*äC" ÌŸ®û³c9oÖ­‚k“m'~ýŠ“‡û+–Y§u¥å¸ììÙ|& Êk žÎb¨l‚~äó1z½X¥M6nJ;‡ª<6E²Tý 9±)â¹íár:ßs y_¡Z—ÝñÛ°÷@ŽU÷¯]×FÈeá0|eðEú Ž}G§wYhý»rÈཙê^Á_ÜíßÔ3Ët_,üú W2w5x<×i9ïÍIÓ|h½l{njŒßî¶‹h)”Éö8¡ËÚ<ø°žï*9HâÅ¡B³ƒ™ ÃßtöLJ°XZY2݃gaÎFœÜRšÜ®ùÊ–U.@(­ð"ï«XEÖNRнŸž€ƒô®:ÑhbßmÐÁŒó/lœßèzyjÊ.C+.< 8çµ3-OšýÚæúíâØl]T³Sÿ£«Çˆè3¸Xú»€2‡¢™¨õ觬ÜPb ¡7Ä¿ZÑT4gW ·4"KŠ”@i°Mܧ‡¯é¿—Ë}Ï&‹h•ÀŒ»_SZ¹t¯˜âHð8z„Áë¤P˜÷/«4u½¨ k;Qeƒ+É@利7ÜÔm²Ü5£Õèw™÷œÐæ;.mÑxËç8B¨nòŽê}]`‘ah˜ÞÁU¸&¾Tm‡rŸf§(#‹)¶NE¥ŽÕÆÇ¿Sø+}i9ð|5T Þüp4‹aÛ˜Åk²9 )HÒ/F@F=\±Ñþ [W—AæHƒ’“Ù? Dð øŠ­gÐM™c^ù )[ÓÀU›]Käj÷"+× D;v€k”áÀ½³WP|ÆëuW O¢ˆ0ºP,ÁÕà¡òµh ž#³¡ëpÞBú»õ©T¾è? ÌUè3*=xîÎ#*øiQa^0ª ¤œNVqd~ëñÒ"qZØž¨›ß%p†@L4@ŽfO¡ï`Ž bõd÷ŽŒ$‘ì*‚5XP•ïxd.'x߬UðE¸I”ÏdܨnEXþõÔ–)%ììïyä` Tb4’ì‰CÁEÂä ÄA«5‰zp•âbO +¹šTíM÷ƒo Lâ« ÚF-YxÓ³’ÉÏ eê åÙvDµÛÕùt;·nà˜)`†ãT’¸hTU¢«ÊZ!‹SÂô¤f† ÀµÏ_:q‰ç“ãÖ Ðb5·p…r¬ªŸÐ`òÒûi|ŒK°e ìÙzP¯oÊÝÏ,@³ðlÕ SÅÀ£`Õ]há·?!‡<ž‹µ¤zåšW©µüêõà%3ñd‹Þ,€gÄZm´AlÓÓGéõ]üw{zº~*ãMÐÚ1Nœ†›Ê °±Å9Û־ݔõ@d¶üuk…TÝ snF•—ŽVLÇñ*ŒêûÕ]ˆ0Gª+=è*9q²ž”i}<˜¬vÿí– (í}>R±vîU¿³œ8ÆþÍäÓÞþWV™È6¼jx$ºç5Ç“§öHSídq«äá6L7üfÑkïs¶u´"°B)ä,ÏsÔN€íùvö4È9WÍê­ÈH§ê0‡@kô!^ä¬WÆëEY¥%¿ÊŠûØuædm!Z¨Ø€è¯!“8„ËÜHÉn²þ!Û&ƒ¤³eõÐä«iõ%ÏX¢g J“ŽwÑ|ŠEÞ0—;tè…z|ì$mJD °dt¨§thlø33ÍÎ(w#»Þäï¶ fÐ ´‰RŠØÒÖ› ?ð0ß»(ò!üu’ž}–÷lWßm¯>À…(ó¤LŒÔ”3Í­º¦c§ ”×m‰…ƒ{ü·‡"Ç :áJu îÔ0FÃ._—(vÕþwh[:ü¦íÑ~O©–Žlèž™n6;V×ìÁ‹xU‚!/W d—tciÄïD¢’À/ÑŒ,×ö“ÿO3mìR‘Ü£Û¦JÃÕÿ0qMt pf¥!XåüÁË÷8´€ •y ²·*ÙL Ð$‚Ú ±v²É²¢ªæt 9Ê—‘¾ISŒ½]»áÞ"5Í"|;T‡!ºûÇu‹ÁÃðÞ¹¾1Dˆw9ôuJ£@—:ë½WØö<÷XRTP&DQ* «ï‰V`r¿%Š9ﵟpJ5ø‡ó8jÀø­ºëé驦ÁkG˜ÇIè¸íNê]jAðIÄWí½ùù__'©àm~U‰‰–;ù#𾺕Üù•hh˜Àª¦`·ì( —2ÎÝŠ,è7Á'•0å×Ê×$Ë‹œóž€YâK5F¯ÝˆÁ¶÷Ôy´kÈ;ßÛÂsR܆ÃþœÎ51QšUÅp@ iM7±º,Ó0zçøÙ]_Qkš*@®Ï<ì8ÇÇĆ¿„)ªÐ$8„.‘EXu©$ÇFP*æ×‚5úÛÚK@ÅF”Eé=z×À[¨²¾æ*rûºr? ­ÀxÁÈz;G·ÖôŒ7Ôh8'Ø’¶<¤ÌÉdZÎ<…`dŸÚäúX–ðúÒ…X"²­á Þq/ -½…Lá¾´äøOhµè €«1‹?Xïáµ3]ùgR xŸ}ìë'K—6ø1f¿g™¥¿ï—$QœÖÊóíCÜ2rßb?νcK-ÎyÓZ„©·Y/ïóNû°Ãûÿ§/Ä8Pý– Š×$Û¹ÇÂEXXwq™.Fïn¨¼ñ ÖÁ½Œ_ND‡d =’SDz‰«¢Æëcé~@*÷Ëpþ4ˆpç%zhAJJh§jÚü‡~$ýR×mbÈ„ Äš•ž ¼ØÔfÇ”™ø0÷…vÜ6ªo¼a/¸ÿM ꦧ’3ö Á ×Cž錖vR새znÍÄ›,¥ÉSÅ‹CÙ?µL¯€ðúq–¹ä²)FJ+ðFFoË3U¦E*ŠHSCÕäD´¾ WW[†Éndq/mHÐI×þÿ¡³ LIÍxž²Ûn…aDïRßnõŒNí¬´ÂG·‚Ïõ€[¿rѽaE›q§²K]Qù 7ä¡9ÃAG“з®>É^ÒŠ®÷—O9LRcÙZ ®VaÇiÏ÷|.¼8ñÖfعQU¨´IföŒœwþ+OjîúfFƒø£:¿tw~Ý)´S"•Š¥g}í;¾ì({a7bF%1|Ì€š—ÀáF²1ÿ͈‚‘0µ¥¤ílfß‘z>\O8~ùÏ.FÁ£[¡à­ßa±&qÌæ®ý”¸å¢N)êÑfê`ÄÀ Ú¯ثg^‡k|Díºów‘>ƶŽgÇ bËø‰5µ‚ºV¿›Æâƒˆµ$“g‰´–ÈÂ\Ûèq$t¸O“&.æ;}í§`oY L%!vážEút,üTÉ!K.E—Ü>êí{Mè‚þ“’`‹ôîãoSôÒUÉ‹N@Lñd~·Ldz,‰†L–yí]c¼ÔobZ ¾‚–Y¶ c›•e0ýŸ²ÒB YAýÆ¡nìýY‡‡Êµ±MV¶êïŠt‰Ðé ŽÐpéíÏ©FÉ}O«k÷ó\çÙù¾˜fÆY‘|cé–0Tw“ÆžTÙç·£Y±Y8õ6Σý»“¿œ€jã’bg®÷Ò™•7½r.~E4]f­Rnãú8}FÅäÖÖW~3ˆÎ¤A+V3öAmµv"7<*‹üä10™¬Ñú÷ÒÕ¢[h M{swž½ÝQCÆ-EItS}oU‡ì’”Ï´¿¶Ó ¿h÷ýª-SŸZô‘ß/ê~ñú£!/_ˆž¿ã‹kƒ½%õ‚ šË·>Ð“ËøYˆ~Ñl ¡Î.Ú‹<Á×íX¿ôþ(ôˆ(y(Y;Ù0y·@la!ȱÆÈ¹ $é©:ÑÕîi4ÿ¸Uš°ÄXJ1I+ÞŇkŽÕ>–ð¾ëFh[r[8uº„¸G¼¨Ê¹÷$1ÎxKŒhË7Σ"š¾º‡t&½:S$"Kìøå0¤{Èn¯V·ZÝ$§Pûžý W^lÁ7 •°ˆ‘Ù¢êyœ[5‘™GÚ*˜ˆÐì-hþÎ’?ïhìBX“ÿÿ;7=G±mu‰ð‡ÒÚ¿ô+«õ05÷÷zÆ"ÃEC¬Ü¿pKÿ^¦0-zä|Cœ{~¿Z¿ò©1‹¿öÉ•)ïŸt¹_86vó¦æä•Üú8Á`Ì*Ø>|Ø{h(MÂŽí¤ŒÄ©5É¢*šñ¹tÆGz^‘­¿1>u§Û¯—ÏTkÿùªÜDp'=±“L5Áò–ü\KpP§Œ†eû»Çì\…'øRØìœ­ɈÇÏýrT’A§ÄÐDŒã©nu6sÆ ÐîŽ"©ü~i{¿Üoß×–•h—E;ï° 8Ç|~¥Eÿä|àz`¼¢†[Sú½ßû">šÖB¬S(ü“×¶éTö&AX åÙë˜|]eÒ }¾¶®AZêXivN^q?o"žD–É}­BV5DªþàÆÞÂC™Q>ï„ @ü•(ÿŽ+Oî©]üÔÛÎc:¹¯—X\ª(P2cÑôhÔ ®ï dÿZj‡‹7ÊR‚%Œ“Ë_m8yÆÜ»*ñP—­eÉxMÀ)]Á—ƒ,תT9s½×#4ü}«Î¶uVƒÉçnv<€P Ì W·Ç9›·ìÉsÃ0ú˜Y$ð ú±e¿YÒ›éŒ*ÃÙ4¯/ÃÚ0 ¸e˜QÚšF÷54×y M›s¨Èkl¸WŒÂB h™D ¼XîDÚs‡2øý¬ ŸïÖ8»†ž6¸Æ(P{·{E3ëÅÆùÿ Ým;B²ž ¯~8°.È-h þmÿ¯!3Qé 盌²×Š)J-JïâxÃrþ#€ô {° pA½> • çö|:o]›é¶|^>ÄÃê+b¤º7–DÒôÁóØÆ<+ù\”ŸÏŸ3hLÓôY]J<⺩ô* ³kEkù Ÿ¤jŠô2ö ÚfJr˜ 9_íd×yn¶Uû*(ì¢ÊŽQM޲ʭûÔÀÆ7­o6œ"SNw¾&åc„M-²5t|oÈŒ.ÁU4ì;k´tô{fÓ>ººðçüó’ÃÈ¢âúIWì¸áPl­¯§àŒDhÛ£ˆ§Îô` ÿ(Ðܘäå˜× iI–þhe«{ÓnŠêß©€V±Ê² †E+þËIß}ÍqÚ`ãš\þHJþõµòCèÂ_²Qk#þ@:C5Â¾Ž¨É5¹Lyt8—í oä+%cl¦%­r(3La°”U!¤ §¼*”Bô>4!²~Ìjúïâi\ÄÖ?fßF !Ï6JáŠ+óâ·¾dímkZûÆò,ogäÕÁ;í©›‚°)Ü›–…oÊ^M¹Âm°0"¨hG‹Ø Ü_÷¶üË…w<©îO›Û?®:¯Àr%ÊáU£¹Çó–#,t|@—Ç®a«'\9ƒ×HåËwÍ_]à@±ÒtõU †è]½ÓÎö_“Þê ‡G°SÄ$‚9Ž£(&Ù;ÕTšCéüGþk.^eCY‹+ÎÑØQçÕ jÈQ”®‰ ¬žPESÔ2ÿ–öië\€!èù/üéVâ¶p©´x²fôHW’©ASƒð÷ð`aÑ#ßäôY¥s#Aá: ðKÒ]­¹¢·âÖ¢Äú›´lÚ>ƒÛý¯§?ÖhI°G€³ø†¥¯’%k¤/´¿o3Æw0J ™ È‹ùèüX)>Íî ‘çµ|›p5B†Œ:Œ»ñNÂ^·ßZ@­Ã*æY(7ÄgMt¼“`›Áê<=žŒPpi<àúŽºì¾½¹\ʯý§u»¸— »b…T Ú!ЇH¯ÍœÞ«t3ãïyUCA¡lŒ*œ£{7’h±éÀ]g%­`ÒMI'CFA@^‹×)Ë@£¡ Ï®L‘|<ÿyBV¤¥ 4Ê‹­}V®|IS(lÔ|!êK‘KÉ"–Ç6•â,ÜF¬žÄM`ï®,-SVôL@ÄŒ35³œhs¼ÍŸ³/ÙÿìÄXa°CIéj'1;ú®ÕÍ tÌææµ×µRxK†3¬èTó6}¦¼jï ­h!›F8LÒgç“.®ñŽ˜k½h¹¶ç  Øš¯Y´ù2G·ÓáäÃó ÆÞªÉW¥IÈT VâüÔüU£éiµOJˆGè-ø-R”‘%K‡\YqÅöH—–žú•2"©Í ñ —Á¨Ý¬†ó1‡H†1hÚå[Q6™Çû=”Ìc}n/}v,·—ÿ™ål¯^dÅjfgÕ¡Ðeëø@tH;TÕÞé¯a”µRa]`0MÉ›dꕈsÑ6‰W‰—š’I;7"tMÆ0¹T­šG®ã(mÖÙù¢å½1x`³²Ù¸Ÿ€ñž +|ÞI»AD5#5”Ë=F+O Ú)È“ –øD´¨îIÊQB=æP `Cz…`;§­2†ÄדmmÐ]¸À ØPf±g’§- Ž!ãQ£bŒ×Ù3„ãc¥^Í`ÒFÛ׈>G6ÚWVûF¨"³)œV™Fß^ßq#eªÒ=œ¨cî0 °Ó(ã:•mzˆLýb#ÄÈãOcLCŒ^©âÌ×À¬”?ªË.I3CŠ!dïƒþ0BW]0.sð~vk+}­Mzjã5ë8ñ–Ú¨kK 8®Oq9*¹ÙjjÌ[Úy‰áÍ›«¡êŸÎzxÜÕ­¢S0½'ýðýë6Ôùïkì [ Ÿw§ÛN̪ÛÈ(‡-FJ –Ø­[¦~ru?I0keé©gþKÎÆHmES—Ž{T÷²¡«õÖ» Ï&5}ë¡ág×õà†bH¡æ'6i'ëaz¿*Pe›ÂúñQ‘1Ao³1ƒ>Ì´EöŒD ×Hû¡pB†Ý©J®×WmÕèð’+õe w¹s záÊRÒuéUE§Œ<:•åæÅ—ÁlWͬMiâW˜WÁ¾lm}üÔ÷Q¹¼—óØÁÊײsg5"kˆ‰³ñ_`WàÁ‡CoBO7ŽÆwˆA‰VA«" R|Íó NÒ’Ý/9Ä'²I^>(jó»^P™öÌò>:ž.J ã  £$=Ïv’ úc4|–z—äüŒ±,óØþ9’ßîfª?ð¦Ø «ºP¿È» £õw…8š(ŸJ¸F“¶ Ì‹ò?:À$»ÍºãA@!Kއ/ÈÅžNçX“, åSÿœ´+ –>è ½.xm'¸Ø¬î‰òIöÉ&›#Äñ“:âã3làĽ¡³ä(ABŒ¿‰¯}6qh°ÐF&®R¢m©6©\­–ŒÅMY¢Ë’?›C‰g…ÔP†=ª_€‡. {5˜€Mú!ŠmwòEp»½{|¥VTA.PúïCÅÝúp÷ŠæïƒZKžQøÕ,û§êYzLq´šöäàMí áavÙ‚Ú ´ ÂöÜÀY‰-Äî·Ô[‚éäÄ×8¯7bMiûÁ“…X¶Kå‹Ó¦Ÿ ½¹›ÐY³ëa¨©Ù8=D2wCüuãº)"ž¨R^Ïb‡6J¹Žâh·/#˿Ñ ÿièÿÝôªŠ]¾Ï†d"â>]ÎÏø‹÷6½NQ(iÆ™¬5Œ†Êx=à4Ñ´kÍ÷œ >8€ê /£ÀpÁ÷JåÓ†[Œ –xµTØòœàäœ:Gwɳ*sŽ!Íôà]CÿÞûK&‘5y¨ÊE;ý?b mæ:nYÕ ¡­šÚ‘Jiè»G*XÑ\o@¸\h=L%öÖÝ¥_ç_ªsYÞÞ÷_ßâeÎÆû™oÜUÈ%…áSZõ[8“ó#t9(æ¤Ìfá(N ÑPÿ`ÞÉ nÍ,à ÈHÈ}î™Ç»V ,Î'„ßFnò_ x§¿úøŒ5J"*I‚”ß²À B8lʬ¶'Q–in'±kòH .Ô‘þfᨴB~bH^–LýÚu-nql!¡Þ\¿ëèLaÜÊÏ’»Ï»õ©MŽa¶˜€=(ÔÀ¥K¼u#iõßîœm)"¥uš²üÇ`îÈ!ݤ—íätÁ§»R. Ëý1J@zÖÀZN<H°Š>2Nž{—v¤ÞÊåjݾléîi¨}bn®cæ µsžôóßã” M²ùMïG}®jÌ0uÿÜ€X ZÙàmª['YñvU²«½„–™úº.r§ùƒó}Q«¼œ…‚Q›ÕÈ¢WŽâ-àb7­l;" ê]?êzÖi]NQ©¶_h;¥ó§!b=¡HÆX7_ÚÅbÞs[F-öÚ±27ë‚[ü-.ý ¦®MÕ^¢Ï"5 ¿¸RzA2jÊ­Šh§ªÁä× …Bá/ôÀ R&o££ßò¿ÜEò|;‹iþ$Jp_p7gÍ·_–öÅíáãY_îþ׬‡ïr¯³h.•£xŸÆÃ^¤³ÃAî”=n»uE—¨h¦(Ý‚º€D˜ÃŧmŸábÞM)øþˆ;=)=IÊèÄ‚Òú%¸†4m4³Oã»Ý Â"`ýåü:Œ€„n£ÜrTÁn ®(ûZ4ÛñAÈ I«ŽÛâÜjbhâÅ)×úî·£¾¦­ì!ˆŸ0Û`Ÿ@ée»™ÿÌôQýÞýYm5Ç%‡ºÊc“š¾±4m¼æòöS’Å;eÒ ÷Ñ[= w1'÷ -e!Bˆ´ÍÀé×ÇyÝFiRÙÜ:S}‹² ÓÑuÍiüM¯ji’zïÚŠ‹€ö¸»Aõß•»0îíør¤ù[ýmÓöê¯Z×ÔPÑv¿ ?qƾ$u–õã=òdEžÅ,EŠ0Ó¹ƒ¾‹ß)öIÞpì+­«úw@cMáž!q¢¢ÆÎV>§½Oµ0ÕÃèÈ Y «qÒd9ddÇL`£L”wZ<ËѨ|­(çbÉxIÐ3UÏ 'O7? ©OÖ3xKãÓŽï~g××ÃtНgÑ;Tisúy2¾°´4Ä«)Òïí“{hRÑY%ö±‡ûS5¾„šÎ)ë`Úc~F»ý'\âµ6;[ Œdp&Žêö²ð+UþDÿ*d‹^æ(yýxŽ,QݬL@E€/¾Oœ/«ü¯9åˆÐåj.¤ìür'çjœ°1µõ„ê^D€¡Ð>~2ú8ašÊ¹_biwZà(Në™sîm¢pÚñcäw¼M—©'å僬B ,†¬ ,±Ûø<»}I_¸8\8‡º\`6µ•5ì§•…oá‰Ø@2akt<̾¤E6=§ÇqÒÀ§ ]y~± ÏTNV: ,êVÖ†ŽÙÊcd²€$Òï‚›r‘pÇ›iF Á6é';±?ŒÏ6Ý+ 6G¹tmÁÓ¥Ikå-}©_ÞUZüp0g m©¬Î1¼×› yÑ…s]•ƒ¶š~Ÿ«ý»hªÕ*s€X¸.h¢ñ½¶‘G´}/x* ¿šFýM|N ·äÇÜ¥• Ü‰ÀSÞÝXêe×aœ¶á›Â9 bj#ò–Yx>Á«)½å顲7©ú>™Ízê5? {³Ï»S=ü¨µàë¤uùXŽÏº€|`Èðx|ñè'W,8âµ OG˜’ÖøeUkÁ¸¨ðÑ]õZÃǯµÈK©TÐ2Õ3þôÇÕÇ£ XøvxÑG5)MÆÔpm°øv_qô|¼…yd*ðÆ8É{Ãú7¹=Sþ°³Q˜¢ÃÓŠä5O¿· ¯uú‚{ø’Ú6 ÚT]hxw£ëÆ%eAÐÈþ8Ge"° ,;h&IB¿î¾ÿÿY9ÇfÊâÿ‚áŸg{ ñß–sYöÂobdÿ3§Bñ1/жþSŠ”¶à„»{=¢LrÛiv»iZ½òH|ÌÑ©zLÒ¸m± e‘c&5WX9\‰#…_›1ËþlœÙdˆô;Â×bÊn¤i"pÂChtz -æ›·Gï(gQØÇ(Oé%Ñò³P1tœÌû€Ù jÝ×ô"dEdÓ4" ‚G=¬nçÒù¾•¶–DæéCÀÀ&«Š\\HFK]³4\ƒåù¤å*Õ&Ü\±EÛ"5(§nt…M¬þô϶„ûùƒxl?L9ýž WhpÜIž)/{úPMÜ$Ø4\LY´j£pÀ‰MHs^_ä‚"ëáªc‚Ú ‰0 Zå5‚ܲmH G¤ûU+D_¾jgÅ1{ì³¼œä)­,­¾¸±RÌÌ‹eCYk+7“Ï“(0óaçf˜9œÃ5mõ4ôèƒNZÜ£6V&B¨ÍÂ8°(ºC9íÿGŒiôòOã=f­Õ¾YJ¡r+²=‰ Ì#éä¿jJ_`h2QÏÙÎbÖeq‹ÂÉDøëcßî­z„ûRä)…À7µÔçuÍc¯±€p;‡T„J¦YcÏý¾#N»i '~YëZ {ì’I~l >·«Pj¦æeåÆý€¸f£‹0&¶ÿ¾U¼ƒ+êGŒ¼r~E‘¢Ì¤Aˆ‡–:%;&ñ LkßòÑCÇ#¶.ç.†¼ !ÿ•¥¬¥5°Üé¶ ²ÏŽ+è“»àÇ=JÎEM]Ëõ Éã€~vv/£¦Ä§ ?%C/(öð¤r«=ÙO³hy^S¢òØj±Ì]“ h,™ÕTqXVX³¦Æ #º±~×)èùýI%çÊ@þ~>guK]î¨A³¬L)Õ@òm)>À*!–‘ÀÐ;†< f‡Vó:¢…¹í…öÔº9@çW'¥ï q«˜Ýœº„Æ•Ã6Ú·M‡–@VWºx«BþÙ†äÂÁä¤|lßI‘…Î…˜£»'ˆ#wu¿  rWÎAò3÷Šv]lê>Øj* ì%>‰-y°ÐÕË£ÃÏ×ðÅ+úš½Êìj‚YD¡WÐ[–É`¼t Ôò­UÌsÃÚ¯רT%$¼•û14uMÄOò¤šŠÀƈŒ¹~?ƒ¢p§³ë“âüì‡òù!Z(87b{®&º÷Àî¹®He%Ü †šðUJ«Ñ}`urYÆT™ŒvŸÉ¹„KÛ‘ÐKdöš‚ú•ƒH¯âüfd‘2sVŒü?K{gãûsª~劀#*K° v÷›¤Ãå4OzâöFœv&ºæÃ^" •€ˆå‚6? Z}®È6†ô³+'³±ý¶§Ÿô{lÈÀÂ<öy1rT"u›cÛ‹ïä X¦œ.ÀÛ}ŽPòÎÒm›¹2‡¢k·(2ÖÒoÛ‘ð;\T¯"Œ¦æî{ÞÑ&a¶Ëá­¹l <%Ç¥I½´18Ý*%OHæÿ™ð¦=û#¹j§þ¥¥ 8ѱ^âòóå]àóPþv§U£ò`3ô$·\Zñ"ÙÎÞ 8Ÿá‡õ±ò°­äXþ]iAž^~\eÉíõ`¼ÔÁ:Ѷß2×]ø],­ëAùðÈïÛpÝ™OJªû"æl(o;è ­›5v̓¼MÁ7—o¨»+_›O‡  ×b™B{¸‘@ÍŠŠ0»n^}:0{nE¿ûÙúñØÛ£ôu_fÆcW–Ž‚@Lk“TFØYÔxJ/¬Yí êÜËF^dÐ[}E÷ý„µ nÿ¾†"Õ›½8ì…ÊP%‘ø'ÇSsF5Úâ̘ êÊ9 »Ñ⋹¦Ä™Ï:½Ã ÕÜùLNà/°d Éì@¾Ò±Ø}Rªþ`É,V¥Q.ß ¾šî½d‡´%¨–Eˆ5‚Õ^¶n›+¸V¸âNöaîÐ N&W„88á”p?5?tÕXUM½|¨‚‡×$·Í+÷UQy²ix¯Fy«ùWX€¸ë!=î$£‚n³%#SaR¸s=£7S»Œ/?#ô¸tÁ:Kc]S'ËÊmÜçRËúþWæØ~³Ù¤ºÛ5™ÃuƪwÃ2añiD´*Øþ‡G’±#W<ƒ0ü· &©PˆèiQ&,Ú§˜Æ:4õã4Å5ló€ôƒ60ræ:’\å´º6ÜÔ¿æs^;IõþöÎnºÍFäê|>ZÕuŸ¬¢Šû:n—qÍŶ+ÖÌÜèÛhJ'¿„íJ§â¾„ÃSoà‹V/Ì•Õ5ÊeE·ÎU™ˆ±*mæÅŸ‹:x•_Ü“ëƒ m¸ÅB#ùo§Ф—+@XIJ¨Æ+! qV§8èÜu@ov,ÿø'ÛÜíÔ/ô«-¤´òƺð뺅ïᨽϵåh§ðCè•5{Ñ­Ûk5I¥wdš¾GsŒõ3@Ä·)Tôé'ª±âùm#¾€)áq n’×v†×ÈÐÿõÍÕgø™‹¯ée¶£'XN14HÞUñ¥`t{¹Hä1Ú&¿Œ©8-8_ôóˆo—Ôç“­IH×Lne·¤aF‰M·D•îä,Æ‘ÓRMYqïµ(É[I—ø|BHÿjU6½G‡á=—|¹øwò%2Ó¾+UŒÔ~b«9gŒÉ)L#¦‹¹sð=xœQ‘¥U]I0BÔ"V¸{ÒûÔ¾:C.?â’žš‹IÕâñ”$žäÊòµ)庱…ó ¯X_u¦«F‰_7EÅ>ÆlÛvñ ÙºY¸ûÜËì!Q ¹ßÇÖý&J×91ò¡í¥êxHPi?D6JÎ×p,±…émsÇå*Ô§ªMÀ[è8kjÍq7”ûö¶º®}nY”æË­ ÅâËÎñÏ"ïÂ|$ ¿dwC|ÅzKq|Úv ×µT Tò\qwI ²l´GB»º¢³£Aºß¤hf!«¶lú¥³stŠR„æï*F2U$Ë4_dÿ³„Óú#åû•öRÃû²¦ ~ ñ°1O•ÀA©ÚJ°` ìgö9÷óø`¤ã>X«‡ßçÉ­¾aL mÿGnGÿïß Â4Iâ!KV©{B’2q D²u¶5¾¢ÝQÉUéiåòÖÕ÷ÈáV±ËØ8—S.ê÷gWÞ£¶·7Š(nœ\üôÚ•›$7ªÉ‘hVŠ×L±¨€à&=ôSò)˘ ØR\žvo6«rÜk÷®¶ó[ŸB¡•ŠïÏ{‡ü¶S>ks¡)œ€a6“ó¨Èí¦Å/m¨§qÓf ãôcj‘"{ÑVg>.Öš¢ ±j¸¥C nU: ʈõ ýo‡­^0 *ÇÌm²G=Ž3:Í&Ÿ°¡"“§v=PDÈ.>XÕ8†³ŽeöB&[²®”áJA>x¼ß€/"3tí¤tО˜|¹Ã›Oï)éSoèÇdkE(MîBÑß-\±xîÇ]ªØè&ÚÑ÷çŽñâ”ȯ(‘Ždó3Ñèˆ*âËøÚI¡÷žuåÄ‘å8.Òà¼d±Š|'ø~2S¬¤ýnþˆPã—ù±ó*HÌ–Z·T½m—øÙŒ+1—i)Q;@Ïv /E¸±¥k‰Ž°ÎœaªhÝ"›…µ0P³‡¶°ºƒ ”<6ÿT3ÞFxJMÓš©~ š(߬żÏoWÊ1*ÐïY–,µ@×–JÚV\¼8Óå²Þte»Í÷ nU 3¿ÅÈ ÆE¼ZcÐåtp0T KôÑö˜îňDƒÃåGp÷§!ˆèóÄôkðLŒK=; Ÿo‘¹¶×fÏ ­–ðµ]¨’CÊ…?F‰'µÆûn«1mã<ªÄÕ9³Øæeä#h‚ , [è)~¸U@ NøVfþ±^(a°~6Ñš°²Âï Ž\‚ã°ŠAi&|œB¹‹‚ø<Ú!û½ñd–±îR éQON¬ÓŽŸZá†vuy.u#`oê1Rb‰æ›ˆ±: rŒ~&®1©2ðL÷>";áÁ®Ž‹YCk˜åÞ”õ¾ôL¸|ñ¶¤º»:¥²”ñWËÂNo;aÿSU‡b¡),²Mƒ¤¯”MaÎJ¼=§;ÖÒlh®¢ÕíØ·2ÑÓpÆšƒ•¬à¶Ãïè~v€ñ:™5oªZõ”W‰üÌÅÿ#íõŒDd¡âT›j¡ŸýãÊÏŹ­[+ŒnöÈà<ÓC,ÛzÐdމiÞìÐ{b©Ï$'ÀàMOÆXÒètœfŒxŠb ìÔ0q7œ1¨³‡¢ÿG®‹ƒ]ŒëXÕqwŒlµIçÏ¿àãÆ†ê™sýŒ{ïo¡Ïl°óó&±s˜ß.Xž |áuŸ¨©;mçëÒÂX ™ŽZ }/Î Ï;5üÊêŽ>™hŽüÝlfóõPUóøÒòYÇB÷1w˜š—½LãÒÖ'BEÇãà »Ð['9L’±Ÿ0Å‹ue†$ɤ‡Aº®jÅÌ»1(£§ ôX[8µ®î9™ðBœääÆýþÜ—xÈü¨`oŒdp º8ÖÁÿ@d4±„^¸;9:3TÏA(H3pyˆmFHJöéšÝáGÊèðcRÄæâuk>Ë|9äÞ¤ášmCY“Ó°í° foµ´ceÜΰ‚%Aωç¦HÇW)Qý’îºýßhP³üïZ“¯¸Øõ#ºìŒ®ˆŽ]U²ÿa%T­<Ó:ijøˆÁæ8¡ßw'©0µÌ»¨¡/ö]6eŸä9^àÐý:QKF Ãr±À•ð­‹°<— óÏduf@DËÜhÆÐ~wôá¬çu£<ô,ü”W¬p÷ÊTB0Õ‡F:·º…ô¤Uâ\`ˆJ¬Ñ{ ÁØø &¹ ;#ЩÕ 4•óVéWM›8U^ªÅQ2»îÞxy†U ÑzMùÔì`"à†Ã~cý~œÕ;sƒ]ñ1.·øJ~ ‡ŸŒmÃYðÀÌmç½ïã{¹Û’Æ&[Ug)OصPpæBH×;’¸â X5Ñn¸­"Ê´ÑTNÃ÷fñþ'x‘üéØY5ìÜ´7ãAýƒY3š¹}XÜ(Ç{›ƒ+I< »a,B$#´¨ª±Û"~” ™jÁõ1b£5›ï7Ù‡AE´—@…ƒJº•?ƒtoQL2þ³Ä?]Ì|žžf¿;yúßW—!Sh¶:;(nQ_B¸ ñCo®™ÓdáúÃ4 üõ«¯#Ô—üDÔ¿þIüèw§“ŠÀJÜ ëá#¬^|‹AGk;ýõºÕ¥B]zy]H#Èy÷#‘k[{ðœßk\Vâ•qº겤Iž·nlóp¤ÑVDj7Vm³‡ë15‘xãH˜ccõˆ±_ÖLaF ¾î¬Ú Õ}ÒÿnþÔÈ(–Ó~¡Â…›2²>b:ó䃎 Ë÷·›‘Àá€ò6ÃZÐJ¸¦Wql¶$Aö;öÿU×ѱUVtó)ŠÛ4e¸;ÆË­u Sæp™µå°+3+n²¡y›õìqfýYˆqxQžÙš‚ª°«qñ¥ÝUGë"@°®þ‰Z&n®g±£ÕìУ­ƒÏqSOömþm˦Qøn%ºm‘p_ƒPpâh“¤C.!P#Rþ"Cº4Qgy/\[N GýIŽDhØS 6Éåµ4±ƒ6a,®t˺.¬ðMg÷´-äéÈñ³ËHø—[.(Œw©0Á²Íåbêg8uO[Ö˜¥ck¼1Óù¿± ,Îïk…D šVד:qrç|0“µ$$$´'°UIúKA—„àpM³¦®–E,uÀ ]àï&pdo[ÇÈÏÿÒ1³k7»©Æ`ª¡­²Qäéç}ˆƒi=.òoÙ%ôÉG˜Ëi…òâNå‹ñ€•ÍîȲ¦€Ç^·mÓz‚鹬…íDÑ4? ™y°|+3¡¸ó›˜tã,s‹~Q#¼—A‹¿rˆ~ɇ Û¾cÑÑ(aYU¿†¹q’Üö¿!rÕàa,„—Þëz=z50Òuü#Þ„ÔóXSÛ2n‰ÇòZãÉ¡ÏñÐ`•Äõ~t¿ŽÚ¸õƒQ;é“ÞH¡Úb™î±ÆÆMÞåígŸ'Lþ/É'ø`”™aÑóè·šá`\ŠöÆü:â$–­MQÕÄ­“—Ù<›”횎íëê™jÜ`Íú Õ˜ŒGÑh@\^ˆÚ¬Ëæ|–ñçTVIY–d×ô÷ã$~çEÖÿVóØïñ¡.ug(#é?•ysôóÌS^¥L+ó›Ð#é ¹(ˆ¶ùôéVje<¸ÂZÒ:·RèÈ7R¥//&Xv ó°mŸdˆöÖ]Ò p'Û!DlŽ»™}bWH_‡"–A”fï>¦u‰­û”³:ï8ú»§~ãèJ¬@.¸ ×€˜J¢B ù:dwF°Çû±AQå$}–Ïý,„¯Ö¼ãvD«3Û¤BŽtÿ 2¨õ{žöÇÐa¸Û¦³~jÐÅb¬àвc¸Ž+Šë Ef'›(¬µ§ñÏÉþ;'hç'}H„4•Bô ìwíã22Ãsí¥ ,'OzMÔG=½1àѲuâZð_Ü Õ1óž~«> 3®³¸b¥h,Ü0{«6q¼•GfÌ+W XXkH'3rªá1ñ3­—øAõÉணÎú»„9|–ùms„pá­çܾæ¤&Øc?‚Ñþsû6~‰Kß¼"ÈyÑöWÌ0í`%@ÜS~¶Ù¹…?{¼Ä¥n×5†¬¨tå0àY» Án^`-Î;‰óºw(ïEžÌýëŠ;ÍuRì ÷,Gù.!7@ðŠ! &Äü0®'…ùWýÝêÅKê Å9yìî­Ö¤ ÁÁ€bÔl+2¢L{_³‡2ëlÿÕÄt˜ÐV- ïë q¯Ò ¶´óÈzYlïD± Ù25¿u]Z´HpÊÑÊ×h"ü˜€§A2•¾swE-4…|šUC3½¾ õÜ#]÷¢¨‹ü}yhw‘ÈóÒñ,=€Ý£Uw¤xÒTÉm?Aþ#jÛ$'3GÔÇ5C-¨Ò„ÌÞR›Bê”4Ó¨‘ŒN P"ä¤M¤¢oùä÷ ŽÇ= Üø®Tðù¸“¬ñCåøÑ)ì hÚ&=<žLÏœ–rI^òã¶Ù…‡Õ]§:»XEÖ·yBl4±p`'è_6wËüwyÌR5(Ü ~Ü™òV½­A[uº‡¿<{†“.”gÛ™ÓÀ¹c4®åÞ 8G‰é@HEC©ÛPžpÙ¸YíÎ%-È«€äÔæbH¨¶`_§–Q5õ[¹k‘Ov£ÍC#âs{<°3n5öq!£oîâ* 'Y }aDÿ! 3¿ÿ¶›BÖé j ¯F)­@ªS ÜÝÁGŒ"ˆ¶á&Ia ë¼tsÀ30°iÍòàÎ6â{—P/UJº ߣ³›4Iý‚Éù^ÁÔò'‚M ±—ž²¦©’„|QÔ“x0e o¦Q!ùÅ/b.YgÉOhO‘®’{?DÇð¦ Ý •»A‰!´ÈþîÐr=KÐi ÍZ 0}E…©ã¥ öÒ-ŒãÀó4ÍŽ„‰îÊ=(“ZiƵo‰‚­Ôs¼gH=çpÅ7Šù¶koEuØ0MpâwÉŒo¢%>dCLpüêæDÔäάœâ±ŸÔW‡¬í–ä©E*“0‰;ÎÐç@_¸ÁÞPcåÏç^ئjtõ^meÜ?Ìü˜šŒ¼kOåû±F±™´¢uW–i(”‡xñSUžÊïÞC[x·êɸÆÍš½,ÕãYð|/+Ji5Î…nILƒh~Í€ LéÎâÎþì­¬ fàé½ 5МL¬¿X`ŒÑÿ¿×“õ¡@á1 ®tF×Å"2õHtÚ>Ö ÖLŒ½!¹øoÓ»V\lÔb{§§Õ=I2Ô8qÝÆTÞôÞGtéðЯ|j”îEw‘NÅåGv‹˜¹3~aLˆËð•å’v!êÍL«û‡ÃÆš>š—ýüPòWJFÛÀ“ 5vVA­MŠ Îc¶ŒìCÍÛ󷪩ÊB.w#ÏmI_›øãëÃ=¿`,©à¦tqß75žm¸Ž”ÒNÌ)5g½,-­–€í¹¢öaiÙ—Pk)²”uªZ³oC²ïþ˜‘ßH^8`n8´²Y>£żÕQŸja§ÊiôÜ1¿4žF0à­fcå"èmùѳ™…Gˆ„¾¤“~²Å®P³¡,ª’h‡Ä‰ƒå2 Ã4„uMüªZ¿=°@ŒÐdë¦ê ´êGÇ²è¾Øì'øØÓ¦ÈÌ^Ïzšƒ—zeî|Ž)ì8ÆkˆQ =£ð´Òy¬ßV&çô ï-ؼ„õïBשá½W:’²&ˆT[¤Ý ¤Ù¥æÞNõ Õ^œY©p}ÁŠ‹w nâùÔ7:ÀÙ¤afåÊÕÅ\ñ–f²ÈX•Nž*aª’dD4v‚" ˜Þ}=²Ø_ ‹4¿k ÓŸ üï9øö±òéMváðÒP¸AèËU/{sñ俢himy‘j´& µ@–Éÿ»D‚h°£îø©¹yl 6’b³º½iWà$%]XLêÛv‰^þy5JkH~…Ϲ‹gX8¿ã•ÖR\oR7I ´8š{ ë{«¥Sñª t“ Ò¼êÔô@-,#Qé…4æý´^¸\å0&ˆ7›.7¡É‰H7ºÉù™…Í4o#ÛvðÍø2lª…¶›6Rœ¶gJtpwLÀÆ`< q7< Ïì(°MDbkütV»\yÓïܹº'[V´"2ÁLÕ"›°qާtkrfµH¸g2Úøƒ CZˆ•ü®›1+¦QÎ/M3Â鎾~ì5‡ûùK9€.º«sže#öoz El(gš¨¡!n(’Ǩ"ºš½27¤ßûô” ªÃª¨8°Ðˆa¼ª»s†æºA7)Áƒ(²µ£½“À ,?ïyÞv·6àG±ÝüUšóT‘Yë"N5çÿ‰ß¤÷xùåTj*V0%d¢Æ`9¸µ]0u^ëýC†’;k=š`<¾¦n³ÒQCˆ)¹¯ lÈiˆnIMéôÃ#5@…·ÏÒ€)MÏD›„¦Jfƒ³Ä‚?€Ì!Eð‚N†ävÖOyŽì)–‰5à0ôÁæMóˆëŒ2 ¼•ÄJ|…Ö$EÿÓTbÑ3Úâ+-°:ó1€Ð3Éëòíù÷ Ú6̹Lk\nS &$„?Þ´%[íµé›¦©Æñb„:ŠÏëL#¹Î ,Ìv¥“}íCá}Àš[”¹& ‹¿†¸xb‡'5|n̓!_ð¬'+ΘLS“{a?Ø»M©aRÒ­æ¨ñ«¢1=¢&¢Ù<åQbä³´Ø_?Ó¦¨áKÑÂÊÞ…xNQ`Äz&U§p ,¼Çf]¡u\hSÂvð®IŒBlï*Øsï¥5ð„»›”µô½_>2Û{#ðêCpsyÉ.;Y䥿­¨µ'ÿÙkx™&¾ºa­Ýé±Ãv«†–nɘ µìÏG:œôjg?ɲƒ¬ ËGd»æÙã‘”9ƒq:×y©ý蜞/e](¨¬ÓÙ‰F`#íðŶ bNa;ø‚©/(Äÿ97.}·²6ÖQØL æûúÒ€5–k•—™´$Û ú{­úÄEÑZfs˜ÚK*9H>þ‚Ë-‘ç&ßdúéCÁ&ªg93eÙT«>¼‹l‚žL[»ç£re å±Zöé,ÙÁ¹O|Ûꊰ]eY¡á𨩂(qhVºk¨QùYɋЖô©¤ô;Y̸Uö®!0Ož®U·&Ð/…ÀNíxŽŠ™é§l¨¡’AÈ[¿›ÊÐEŠé+mp‰9RÎûYý ´N‹ÒŠ,ÓNîkôdgoWÕ4ËqFP‡ Ó3‰äiêæ´CLA2ˆ+vdÎ×Ï}ÙWÿvv‚ øÌ£•ÊÇQÀäRy`¥Ø ¢y+üPȾgSU-öorÑ­rä€]5uÐTº¶Ý;ÈŒåc¥,Ë7lr÷Ô2NƒtUnŒîðÇ_ ðÚü7âÂ…Y%ÌÈóÞ«Äm*ÓÐ÷åf¢ÂÂ;jÆ×»“ÞXÞouõ7â»é@¾ÿ‘3âÏ;7£‡˜zþi‰T[N.2Shil‹gD®i8íሠ÷v?æ¬(ë »+õd < :ž†>üwCЉÙ+„ôœTÉÑê–iÃ)w@sgnAƒ7vñ‚ ÀÐÜÕ[4þ5½ é…¨¾æ#Ö6¡Wíõ¢vmÃ$eFº©Žï½&íÿOF hÅÚ!CJ‘éô)¢°ØZÍŸg´®æ.‘¯œúY(.?ÚØ;Ãm*à2|e !`¼B ¦â¦ºl&nÑÜ ·I ç(’Ñïµ;IÛ)²åí¶(gßaÕᥠÍèmYÙKI^ Ïà>Ç[8  …´³!‰Í 貸;¤D¯€±ñ^ž`vnÞû^‡d<éCl†Áʤ!0ª¨©ƒnî¦î­[¶Tãíù¼&ýF#ï1Ò:ÌŠ«o©Z5xq†úÌã! .4r¸IqñùŸªž+©@Q¾§²G›½HéìâÃV»OXD¡§­ YA‘èUœóórt5x% Þ:Ó“*~~G«›ÃË€¼³Tl§á¡("Í0ÍxgÙô€†C×A_I¬§G0Z üSƒT_B–[RükÄhÁ˜-{\"ÞÓbì^˲y\Ö˜~.•ž¸£®Zs¯d{@…ÓûÅ ÚîUn’lË׫+,õ|5óæ‘¶eë”Mm?rÄ ©™HõÐã *³³}s`‚4®ãsÉ>%VÇ´R¸÷R¶õê` ï%4Åud+Ds$Nу!ðvÜRŠ%=‚/StVøœ¼—q¹¿¡ ÂË mWsO[º¢ª¦µ•®VO¯–î¯ï|»™omöB{ò\:ÈÎ<Ž‚;PWS£1£¥¬!Ç®ˆ ,ĽA„ÞÁeöô$k6·ºƒPó»Ð?''ŒV“ rŸé€èýrqÐêÁ¦Q~¼²¤//Ž%R–@¢XÛ ¹Ü€‹ÇºNÞ!Ø•À ­m“ìÔZkLí2\wK¹à¶d’Ž6þœÀSë{·È:Ù¼cïé¤sÐò1û±ÿ“gº59·‡ú½ÿòÖtr-6ÏŸfªkäQ©,ybsóæ„ñæA„S±î¤d‘Îwõ* °ÁÔT8´mîI54¿ºÿî)>“Grq΂˜#«7=…èÞwl/7'1l\‚¿\ÉG"/Äôqöù!µ÷ C©¨’£ÑÿX.˜›ùšØÖ;f¡©Õï@A~ºŸÑptî]3CR\\F*´:ú»Ü/ÒE3Rjá buàÐOvøÛýƒÜ‹>_3oª6ÖÂ`ªúmO_Ò¼´II¯­?-Ÿ?|&É%z}&nKè–•S¶6ðC|!J.£-ÓéáÄ-ÓFH.e¢³ßú…tyÎÜ ;絆ìŸGßÿ;ç˜@ÂMug¸¿¼‘^Û™Dœwê…C=ô’½ˆX÷a—GÄy ˜Ê>„£d4Ü*9¡¯ß8i4¡‚Š©±c$˜Uû%äöò„ßÀúW†ˆQ5yÍuû“N E,¨‹‡¹’ÜM¢™ÆïküDm|ÞÁ/ÙÕ]•² bž„‚¶È/:õÖ?ðåÔ‘’3S‰{63­©@E U@ˆ ×é|ÃÑ0«H¬ÇjÅ Co{q¬d×G„)à£òú˜e8ñv"j µDâ‰åËÅÙ`ö!ŸŠ †WÿeÑó5U¡Ôžq«é*2j?ÓÐ*“—5¬Rp9o$jñ㴨˚™_1Ñwæ yÒÁeß™‘'ASïÃ0²ˆªN ÀðUŒÀ6­æbM%RAE±™r"ýÖ~ÎéÞŒ‹9“³ ¡Ùw[ÚÕJÍÆå\燉SÞpãÄWÕä}”;¿©¨mL%!¨ 71×§M3„õIƒû ù*@QÏSRÅ‚õ*áµ£`c¸%lÜþÍåu[o]Šg]˜Ø/;ü$/ödQ#X36*@|‹ßoÂd‚&RD÷†nÙÂÙÐP/¢§£Æë½èÇv[Y•ñ‘Ùê‘Á·ÀK“™wKî¹2czπܦú¬õï€{}77qbº!NH+ÕN¡êÂÿSyÖšPÔ‡̯`«-\ NV=òôÒŸYƒX/åà’nÆOsÖFBæZüÝyA(9[#Q ³ž¢$½˜ód›Õ XogKï¸tŽBí_‘ã ¤ æ·uA²äÂòó¿WËbÿ¢Q5(áäK¥‡¼“¨°’ÄÈBõY XAS‡®J2>Œ*¦µÔû$_u$`Ì­ + ±•QWŽ˜Aù%àh0–ô$‡»Ó;TašGlÏFHGk¶†ã—º±È›xZ8 ³ñ(þL+JèYu£eÚŠïìZ†ÈâåcTó’M¢A½ü„`:ûmÝçôfg!ÅŠ\7üñÂcˆìÆ@ÄFA ç O1''û]»èV•¸ú¼Â0„WðÞ[‘µf5°ÆÃ­×B"éì=éŽpN–cç8.×q´‡Ž½±WјrÒ’:ªkÅ:¶¹›sЕ ªýi­JèI‰kýs*Ö R«`8rÅëÎïSÚÙ­ŸÃ—y©‘JB]qçaær º#èûžŒ£ï›:BÌ-NÊ%OÝyzEÁ_x‰sÿc©z²ÍɆ—‘d¦˜=XòŒ#Äõ&vÚé$7‘Šå“ŸqÑA˜Âèx‡X˜üÿu;Ë1Ù£÷º[¿Bd§Ñ ¬L˜\»5Ö–QSmaUÓ"±®hûöée˜yÁ«H!%ߨ¿ˆ¥ŠÀZ€=^8ï…[O–McÑGâ 5ÑiC¹DuµzŠz&3šØðÛºÔ/À´ÆHDà„F!fJ‚ëúv;›1»UÎÏïÞ~+‚`7­……»xñe™#Wtòµk蕈f#·¤ð9Æ‚t?—|Òìn»ò†{ÛܹȺó^– Ù8¼îjÐBNÀe9Ïß•ö^²Ç*è[¤Æý»cí¤â83Ãr0À?#Û«B¼™»O®0 saÄ4—û%Â0° I.ƒÛ.¥ƒ"Á€Ð”¥ÂÌ-y Ä‹¸ÁÈx7ŒVËV4?†³8ì(Iâ9¤_19ˆTÌ9E"£yl>!îïÑ®”Ù§_(÷a§òTƒhþÖ'åL ‹MÚºÕ˜2<:ù)ª7 &ßàtÒ”¹[$j®y)tg ¤ÀAðCÔË;±|4ã¢8;›‹IæwTQÎcDö3»/ÊFp<ši×Âd°Ò_ô^Þ+\Uë pVJhwþòhTkóu¦¹NuEµ’–Ž _ŠD®ƒ² ÓžÀb\ÉcèüHÝòò› z$ªº¯-L_Šsƒ8 À NMõxØ(ð*AìÈ×jBÜÕyüùA6`•ë®c›’'¸•%ñ'>Þ\0OuèÂ*FB¹‚K¦{:"JDMóS )Š[<¶âMK&w¸WȆ;ã€ÈHkq–Ðn.*R˜jã(äCÈ =¦0_pîR¡¿åS;BVkºrŒ3ô~ÅÕå8¦Íÿù˯!Eûûï5~MÆ'Âë›wÍöV«­<<ؼmwÕܛؿ¿55ÛK]œÛT¯ên pD–uiŸ‹pÝbtª‡ÌùJRí* Š~5(܇²n­8”.ßÔ¤øé±ñ»P8tnEçÁf²® SýY‰ºŒÅà¹ÍQ“âÛ”´'™éÜÀÅ‹zé|~FÛ RÄîmÔµCH©B¶;EÕý$åE¶þ ìg{%ç©SÎ*W±Î)¥ZGˆÍŒ~ú^ž+ øI„w¦wá>޲fJö2v⸌ß-£¾ùdATëkJ’AÖ5î[Žñz ^OÑKÔ…·©1Y¿üð56ÓbËTò“ÏB”yˆoÚ™}›ÅM½‡âËXjJ"´hìr¾; Üd;ï8aB ׇ_ZS9Wž¼¹þ•š H†îªªAˆ¶ò¤ÊÚÔÁ-#­¥öWù'î ²Ÿ˜V=™UÚÞ”*eóyÁ1…«¹É }ggzËý[ò!»B‰Œã‘Áæ´8/-–þààŠõÇßN)…ŽÎÈ…ƒšÑr†wbM‰×awùJÒ†»i#ËÎ]ñá7J»{>;[ت²×û°Öq¼ðßr…Çþ—RÀc,È—\†Ö›¬âœ °x=«w.[µ K ªDû¾ÌíÇÎeÛ³¼haX`vé®<y? •~¸4çpA øŽ“´g1;B‚:jøAŠ2øVv`!û>T€ŒãÁÓÇx_Hî.‰ú•š]ö¾íYhT¬òƒ F§¸ž’éÙ·ýUÒ÷u©Éœ“;|³(A¶”IMžü*"©ÿ#Mm:—CØí?t ëÝcä¥S^À†>ËR;sN+ÂUf*†èhª=ÊòÌ,MMô ¨Ã6³Lí˜NÁ6ÇQª¨,XXwÆžBh#;öa¾U”=Ü/µêÔô†s~¡ èçæ€OÛiãc9“Wüš»—Hþ!NÙ0X ‘¨DVíÞ ùðê‚øƒ‰W*˜8׌ÒÜØÑ¾šAÍzÅ~ `û%d‡^tÓe#ƒ—¨Zâ[=2 ¿ØÎüˆQű§~“‡½âG³>Œúп–Áæ’8ÁùÉ/•QStšØ(¸…Õ­y‘ö`;,‚‹´Fbæ‘ Œ@9Áº¾;Æ÷«`%`tº$§8ÆQ« ªü.êÅ`ø×̶ öµõu¡ÉI'®Ddä=“§ ‚±I[¶—æô¥ÁÇ¿FB­F4©ƒëΚÌÿ^{‘"µîäœÒ«oûÍØý±î„™“¡~8@96¾›°ðÜ&ßòÍ!4ƒ8 ©m´&Öõgüfmä¦ð‹Žd ÚFóÞ;$#ðÈ»ôvŠv9…!qç,*Lr6¬»À}îF Kœôa ѳÁWk¢©X³ <¸…E€†RÝæ"d(x®Ç ]Íù0h9õhž9Kô.½‚&]}¤&x½F>bØ uÚžŒÿrÃÝh‚Ú̧ÚûnÂ\ñ¹ &õq»aÖÅ>AN‹ Ñ^wôgFßê‡_. ú¿üè†H£°ã“˜Œ@2¢M'=:Í8<ïÂ)Ì€#?&vãŸó’íæý”¯´{c•Šƒš”£h³yõ‰k显î]ÂL­Úa„NrB&Ed»ð}¡’Ûæ•…”\ðFl«ó7)H›¤3›¬Xvù?WÈžÓm½wšný~”J;ÔØþèà#Xƒ·š´T×±Î7F˜2U#üö˜®‚ÑЩ ¸(Ëb¢W_·6©A·Q/t8?·Ç|fé¨ËLY@Æ-rÚh+ 5ÐF / ?Á©ùΊ h§ÒÂI­E €ûISÁ3’³q0\RÚ@¶pÔ5î‚·®½!{t1ðëšB Ãïjä27­‡žú;qXÄê–5ž¯¢Üˆ RNz°Ê™FËx;£7ôåÕUR\í“jÞtæÈñŸro]TéFÞ|·-œ’̃A+%WŽr¢tÜkŽÖÑñ”þ9h[-câSiœü蕨–r ÏS×D>™D•¿‡;G¶c§§'(Ï*sÇQý•Y±P¢æ™xŸŽG±ïôhØÌaB›÷Yêïnú$Ñ _XÈFœã“q—r^)núG½uív ­]D·'V˹mËŠ•úÇò'­i/Ą̂¯™ì’ILÀ7ùêy„si:šÔ‰æeĉgfç³Èŵ{=IreI;ÓD(Áÿ ¬û¾óB#Ö-ç í±oÃ[ÿ;¼ã¢[Ræ)ù§‘.šé„ěЖh‡"J ¬ò˜ÁIêzôÕoªï›z(Ø@Q¢YÝWè;…B$»pÊ•ùGôÕ=ÓÒE+’MH}[ó$aìŒ5‡Ú]¦?J㙀9]jáÊÛ! £qzÍ¢Õ_ÊÓSGEÍ)¨˜{Þ ÇÏ@¼©D[.á¢TœIÍæÙ×ä‰5¯§MÙô“ Íóâ•©ü®8ÓWK©òŽ ‘Ä×ø„&ÎôpßÍX–P†²Çû°‘)΂-†Tê…¥”‡6̹ü_$)™IŦ #ë$RŠÅÄÕ\#O€r>í·»iÆxÀÍÝoÍSÑo¶=E¼íáb³ˆáDζâ*âš—}‹5xýD“ΰЇ b£½N?NŒ·xj'‰U¬À eÀ}*²À·Sì.0~âIb  =ˆ_Íä' §sýªPF[O‰Ï&×,¼6~ ä=Øšùé Ê—zŽ[.§#¨¼™l§’ãú Vi‰^U¼‡ôz»qר½Tn)ÞËóñF  (`ŽÁͯ+´ÂuÀ?¾mgóö7¿¾ô€Òmg„7M˜¨ìG[‰ê*ê`Ått¾IÓ Yؾ@@FÚ’´>¿"¡pïöÝÇ…ÍÙá«+‚Rä:Ö õAMª2.¨éáØÅBK×Vÿ–kÈq`P–§êŽ(AZ Ý3€æ‚ª„iݧ®þNâ~T¯,^IW{gýÅLmr&´â:ª²H€Š…/÷u6?b©WbÅÌvi•aƒ¸rH¬©küâ;uüg®+n$‘;zWŸ–ò8½4N¬‡6õÁNhhau‹ ‡áUÅWk) †9ë hº¬n=É)gú¼ëU“K».1ý1\"heÎa«>qlá¿-"»ÝvZü›eIõÄæ¬¬ÍXj”9Y­"IŽUgà`½¦nØÖ!ýÒæWcww"Ꭰd×õJ2AÔp˜©bT©®˜"?Pëú5Q®µ*’£Ë€³=8¯Ð¸7³?3¤ SË1©-N[-9&›v¤gé%íŠ..·g¦ebs ñkI*¯÷«´&ÀÛpmÍÓÜ`‡497qƒJþgÞiÑØ`lçZ©ˆ÷nˆAe|ôÞâí@µK±5,ɶ°bqúWð4SFÔÜD£¿,I/÷Æúõœ:E­±ç©Žå]^\<¥Òf½%ÓË,)”&‹EâÒh½ì]æâ¨ÊÊ›¢æêÙN{ø³•ër|ƒŠÆU]çÍ;Ö°(iùÿÏ𣽮è—ÖBi HbåÐôì#¿)®;Ó)­«p†¨´)c)©Mêÿó»kuƱk§ä@ ’· E¨ÓUv‰<¹¸gQ,ýÆ}4™þ[°á+,#HN ®w!@ñƒäˆŒØí/2ŒÏ$L\ÓIc!ÿ›g¤ øGë÷6K­RÛ.$Á& f%±Ô„±J¶ 0öÃÈk¿ïsœ8; ¯<íÇž@ü‹æè2Ï”‹uL¢sú±"$;œÛD~Ü…3 4×\þ 4Qï-RŒ™]ÜɈ§ÿfÀŠƒÏ‰ÂŸÅ‚øœ‡!qßsxv¼9é]KÉ©|Ö"¸®àßÈåë†g8±Á®ækßX÷×BîçŽM_ ¾òÕ†ÓŒNU€­ãúÞ<‘CÛ¢:À€Ê@.s4 n('.þga*1¢³8M½A¾¢œC½WÝ÷™J¯¶ÄÆ ÊzJÎ8¥]ãŽýû"V%0 0F¡l/Ã-_Ë™ç#¶É½B扳†3m+ÿo)±è1!tH/Üeƒ]ߘ« RãkûH0¸zéõ(y2%ñ3F‰] ÿÙ¤0TÄ)Q8å᫲¹PÁs8HP™óå)¨ŒR#°8ÛÐ2ˆœ¯w¹¬N^ ƒšûµÜW1fƒ^4ƒ¹³ÂBë©3%Ò·ÙøþM¾èï-ýj…~y+g8ûšb²;¯WîÉÐ7me ¹í=ne|Åð“ÚbÃ\êùûöí¦B°W¾½†aü7Bìqû°êhÚÛPyjê,¢Ç~×]ºï^—+”Ù$gÞ=i°,+ ãVO»Ô×o"?ޱʾiÜ<˜ÇÖP?ˆhKèLF‹š¢Ð„«ˆ:5¯4+þÚuz¼Y\€*{åFC ÝŒKôIl–G7 ÇK×èv¶m*í'¨cX†FM!>€_b!?¹¼¡Ó}ayt}“„÷q´"‹â®KŽŒv"ˆ>v片6”û´õú‚²\7tªC9›"sæ²¶3ÃGV™{q´ ѪǪûDI9z)úOãw)ëÍDÔ•UŒÂz}P¦ÙØ4ãIHcZbk}¬“†¡ë¡B5Å3Iúÿqü-b) æÇÂÙ³Ÿ(Àýõ¦˜H²B…Æ:û ïß‚¾÷¾ p¥ß¼«¾R;ïù|šÏ ýRGgÓâ–ÞÞ€¯¾)öyK,à  ¿kx(¢´ yaizi ?âÚ¿/ô±€¼+C·6n§Ḡ‰±¹l4²o·[ 4ùÁ—¥Á8Þ+vu’÷–|šMÚT¾ÝXs’ fqQÌxkɲšÓ›à‹ovÏ>2ãŽlÈ4¼ŠBgÏ;ÜØ®IªÂAØJf*ˆÿóg½ëKCêœOÿ1pÜØžð¢ÜgŒÔÞ Bhe|µ¹¸1$ë¨gÔЩÉöÜx–(ñW ÉêpåæKÞ™Ýü£=v„R9¶o Ýü€òVûR»ÕN cžYèt1°C %¡™e!|¥ç’‰*pºÕÏ"=³t%ÊebBÒ{ñ?Ä"ÞÞÒz4}°¥µ «Òw*@}‚ÔÑ¿¿C&A)ñ:Ý´Œ¾æia¹Çé@*È Ú±6# Ô¢I3ïuRÕ;ãa.¿¯8áüûu°On4©Éø ¥ÇÙ:Âö¯/Áè³Ý¢è×ò;˜á¿ƒжKàMî -bÔd:¥ãœ¢þ9º®[’€O;AîOîZƒj•„äÁ0¦ã“üf­(Í(!•£„™tUšÉ¾}I9 Ø@¼kš¢‰WF’²Œ˜Îq.‹–€“ÆÛ !—e(ÌEÏé*5“;Ÿùׯš–ÚI…Ї¾H²³)TÏ`X€¬v×ÞC$ÂäæñšÒŒÄÀýNAÚÄ2Ò\ùqóHCL;6×.èÔ(¹lŒ¶l„­·*fˆv55MvQ–¦ïñg?tÉûWƶ†G0Áüa‹Æž“LlvÍužf¦Q‰/Y@.vt/Ù' ã{NGž‹"kO l±6˜­(=%4)æÄP xJ8˜Ñ¤¬ZXøysB¬IOÕ ÞìTÞÕͶæ³…2Çwš¡›ÿqƒqSUͦÏUÉ_dÆ¿¦/ÿCÚâxDrâóÚ*wvW ?S9OTyceÿ!78Z5Ç«Íã–âñÑI®³šº¶qæí8šðç}J›åü$+£û!;[|†‰ø«uøIxGÅÑ0“€§f‘w qÔQÓ0 Ø,có1ë;»·Zs]φáyàÍÿ[>}ê]!éMÓƒ=û‰‹GR6'Êq&þû˜¸g“‚“t°Ž¦1ŠÂvë]™Œ<äÔ+L}·ÐOGùíbÅî½õSt^é!ÞAr$¥.ˆA&– ÅaÂH“ip.y›‹]R£ *`yn\üô‘•Í÷ Né\×þSò®Ô>͸øPK¦ºÿÝ+6ìKvαeâòŽáˆÚ4×^h°SeæðûžƒÝÐb@òt ­Ùynäž%£=T˜¨aÏÑio°º±uÓ0ß¶â! ;6mµü UâèÕ˜r‹|S£3ŸC÷­ô|M=¢ÜŒ«?90(OSpŒ 9ü2uKGJò' Þ—"ª¢£àôæÄb¨öñ0®itþÞ¿¢²<ÞFØÙm‡ö%[à þž »äŠÛ>}ðÿ‡,c³7™©Æ¿F^Žž”p~ìô+”v;‹JIÿ`vwËÄÁàžìd÷úfÌ7ly鑸i= œ£‡ ›Ï•/´¿|ˆ×ö/n@Vðˆ~Uø^—ëõ L‚Ÿý˜Êj$¥I~qò=È!ä!¹°SiÂÍxSŒ;©l5í7Ö#×z ¹ŠGìÅXÑ•Fµ[qc³Ó½%o¯kÀmõ¦àØ£ç{~8˜+êÉO‡7dWrÕI£Õx=W ~S ¸ž€ÛÔ)'j î.šÿIkÐß##9òÚ.ÉÍ=ÞÚÞöœæÝÊñ%òl|ÞÛU¶œ‘S\ R'ÿ.ÝSeôØs4;ï$d¾f³‘9›M­iwñHØ  n˜Èm”ñÚS)åk¢8¹á·Ë3 [úÛÃü ýK‘‹£ó§ …VbKlÅÐÔ¯®Åÿ€¬±R'c2M|âÊQN±äZ¤›EÄ^ö]Ê'\mØÜ(²œ±´­…àÍÊÛ|w«*cž¸ßÌq”¶7ªÓ{!']ܾޮÂ*ô ´õ‹Ái±£Lƾڱ^sF+­©¢U9 ÷¨ÜREŒg¸ïAñ‰i”ä…¬ŒÚN e—t0±Ðj)ù=b$*¯™áåM‡—·å‰EÃp|W¯åºM.ØÐ*Cºýe–éVä,mZÉ絿nA[ýüBÝÁÉAd 'ÜŽa ÿØZq§ÅclwÈÚ3R½dãœb¥ý*¹4ªJäÂìNnÖ³Sv¡œNMОÅ(ºtÃë–³vçx4ãMãI®ÃµáÞÏQûJ=„BVóë¬Y*rå¨{]#‘õZZKÙ_9Ï|VyÞe£"#õý"*ðæŠ cL&9F÷]l,ŒóLÿ¹0_Vzvè·ÃI¾ Î –ä~AƒˆLɕϊ´.Ê»?¼V‘¼¹Nl®hð A™ Ùø Z œ±Œ?–“×ÐBPƒâ`%¨™£j¼Ù DV¶Ël4ŠÚGZìã²ÒY¿Dö5ŽñËžw°çŒNWñýç¢k­±ESGäË7þÓJ4æRTÕfC,”€ÖÏUÞ]UihÐ,E ?ßÚqδàF\9ïŒr£€ã~W:¹¡`å­Ä‚ü ópBÖèóöób„ÁDÆé½=d(–<àbhÌúÏpwkHx›ŸÓbb*_ )ß ‰_‡)¯`%û Ì(J5‘h¥Ê°X=7j°(nz ä2ø¥…ZðÓì‚Ñ¡9"rÌu½;5…2ýïÒÕA WÝ€ŠKI¢’Ó*}WPš¤\ïYvå†e=Ýo}:åT‡‹<Ä5JoH3Èçóo:G¥ɖ[óÆšjš+µ±܃Wa޽øóV b¢³ d(9™¿ô ä>ZßzhÙèÊHëaE’‘ª‡ú¢BñYnRËÆ—gÙ%Aª°Æ(-ÍwGç[êrŸǦ͓«pìº~ÕK»mS´ð|œØ¦d¯fUZåÚâd¾à€ˆf•1gⱦwW)ÁS8#«úÁ›5\@C´}g¨[|‹Dªö_À@5}ã™(&pj ° “SÂt$æ"«Û Îÿƒè_Üì äi·•2¬µaO›E^ ,[@õˆ(BÉ]àŽk5Æöí€ë ³8‘lÉ¥šÃ¹"ÁèÞ«§4A‚¯]•O õÆò…H•[-Pô¼ˆsâEÎô_Îk¯EuÿzIníû*F·ƒ ×u$¬3x•Ø LH#Ï=1§Ý®–Îäè°;Rßlvû®dåöq„]FsÕí»û7…›¶‘§ ÔC\Ž”BJElu»=i·aþÿóCýÕ;¿€]wÄuN%4¼ˆ@I·E!§‡3DØÀëß½ÒdÏ^?öÚQŸš zk8²‹tŸW]Sãb©– ,ô…ˆ%Ç’mÏp͈—ÄÝQÌè#ª7{«Hn5ø˜Ï4š(æÁSò:Ç8ßEpksÔ%ÙÊ×[ ¤²µ[_hséøOšv Ü¼è‚ €–~äˆÞýÝèÞJ:“}Œ F¬ÄH‡#8Í[¯>gøÙÝG/y'»î£ðüc-Û HÙè¶laèååü2¬€ï®h‹ÿý t¨õø~CõÁ?"î]¤=‰T´¡o¾¯h_÷À_ösšÝ¤ªvKŠXO^|Gi$Ëð†wà {Ø@&2‚5Ï©CÓÖ–oJ8¯¯9‰L:nyšü>ØkÂÝçÄM¶”ÙstEsë,w<Ëe}B60Z£Ï6û¸H(˜)ÎK—Ú2Šü¶¾ûþ:Cx0ùS¹8$AÃBêPÈœ¡Ê ù´V}v²Â7²¤G¸X6 ¾ÎùË+Xø׆XŒN³tOÆÙ£/Á,F>…óþÏ=(o±æKe+îÌÂèERhñé6b£šÜ²‘I¢¨z_3À°ðpô“p¨4Êîà°P?6À•W-¹t½çŠŸã.·¡¤¦ÕÈ5×ÓÔ›hâÈ{BlÝÔYϺÁ5† §C·È¯ÉŠÃuD‡ÿµ[ÔO«Þ…`}ºƒzÓ<°™ÝVf¬Ml0p(ïÞ‹Ò7G,À}¬Î0ÇÂd,7ÝâÑW¥ÙÈÀ§bw¯çÏü‰sWòÖøo&)Bv<+™X½¶&¿ÓØh œä‘¥6ILúƒÚAuS›æÞÔš Èk$º>Pï!Ë…GЉïðf¶ñzU.ÔŒIþssØÿ,#)±Ë+¨þ³<°Y]Üo…ÕGÚ4Þb¼¢Ó‰X~ú½ˆ$}yr2ãgÍS…ovüö½óü莽[ѤdE€ ‡äP !ÆÍ‹ÙW»i¹5£2¯Fÿ8ÁŒ4B1gÞÊØÛŒžÖãM·â⃗T&iÅöòr§Ô9}’ñ Ãý1‹Û©×}]÷…íÁ›¼©1R Œc‹/Ž©ä< #;gnâYy‰¬P“QýP1°p£Ð#eÜH,ªrÒˆŽ ;ñW¯·9Fpg~HÏlIA#a qh$ÅÑ ìÂG3ÿ«Î¡€âwGÈz o6l.í»R3ývd#cÑ”Çï?gùóYhªÙ7Æ Ž¿0;!ìî“;+#‡î¾)LrE:¾R¤cÀrœŸ©OñÁ‹9ˆ§ÊmÑõKr¯ÑÇö?ñ"Ä6+2Ô ¸÷?‚²Œ‘­›¯ŠàΖ½ë™˜@Ã6 ð¾Q¥Q 7&p㫉z: â Îðî3çVZ;!^¢¶/«6~[ƒ®J\ßÑyš8û_ð{O+‹~íÍ9òâ]{\x^á>šh‚Ä`ž¶é«Ü<™ÙÔÙ6³RFlxöä¬ {ó?±ëœß]ÑÇ¥;ĹQŸUǤکhm9(7«¹5?î¦Õ`>‰ë‚6/¨Á=>“/Q7mÝk¿‘ßJ×Û|xhÍ4½Þ6*Ø$ƒ„ùˆô1;gQ˜_¹ÜŒ-áé~¸ícîõ™ÎÈO’ ‘óL1Ç«’÷u<ÈR+¬SÀáÂÙ+(ì‰[ô´SKEÅÊ|ú¹ã˜ö%V#ûÇ\©ÊÞ¶'Þh°FÀóœs‹¦|ÙÈòtкßwQ©«ÈÄÓ °=gp.x×Ùq.˜µñ[ÂM’X{K2Z†¯üŒ].Ñ/z×G­2õ³-²ïV úƒŽÜbpË`*G¾wï2è¤×c ‘1¾-lÈït•×ðe¼.Çð“{b½ HxˆEÝOžüOPoNËÌuAãæÇËê^$<˜N×!ןÖ-øÎ«æÀýJY¢Gû¤JzÖ{Îm"qd¢¨3è„É“ºþÊíǺŒx—ˆáõ30Ôñ×û 3Tʘ!o!f~Ã3ïA”›îZ‡DÚ>ýò€³œÎ¦ùÂå'S2–©= 7@*Ó9[ÁŠÛVoã´¯ãò ^O®M¿ MÇĹ}uS¾g$ J·Ó‘§£(ÖÛM[òéÌ^³H#ʤ$RéMŠ¥Ò¾ó¿ïw*Ê‹YF¬ªl•Ÿz»tI{u}IhRk׿á%ïš%þV‹.‡’DAÙWðÓš«P;Ð'Uü{ð·œÑ/¸˜8TJ±ÆAžñKû³™S1jaVyˈ¨eHŒn{×í±¯oà”W“h-`žÒ”ÙÓß8jW!R8¡_EFpY3»«ëƒnó*Œx€3Ïô3\"™qâbûÀð„ÏUR±*Cמh6êãCT[ï¿R1erëý°¨e_§ílR-Š#ì«ë0ÓªGˆâ³“ÂÇCÌÐÃ\²4Ó 0/žXsîø©mvð\ ¾6F„ßÑ'¤p/Fgc‰)˜#.¡,QèS&”Ý®-2à‹c±µq3‰zÜ3±s;i2—шܬ†»-l£Î{šCïFél rž ³¦Ö¸“"ÁF¾ºÕIö²ÿCÕo¨±+Iìà‡ÞßG iW¥¯¥Ø)”í1uþß\üÊÀíl“¶lÈO[´Ÿ—ÚFíœDAU.1ÑcÁfïd—ϽÑK¿~@™LcF7Ê O)pøß! ñ`2Éi êM¥Ô÷µÚïi6×h s®cNš’%„öÿ™¥„[Åz©mjf*Žró_‡Ów±¯¥ À©ÔõYÕºQQŽíJW'¯ô«eËÏ øÞMÉ"d+RæÉxë§Œ²´-$[H–Ýǃúê–Çí³,JIåÿGÕ É•:k?æË‰Þ<· Ä4ö€ûD _dð£<áI%¡£µçvª&û øÀ«Eë'=4¬s\–å:7‘¶eŠðÿUÈ&ÏýY4t\¬Z‘"BcæDôíÇ<áäE·f¨‰ë;7ðíeò°¡´CÊK—Ö"‹ò­wŸjKÂYÚnÞ&VÁ4³Ii–€'GÏ |<õÖÐr Ž]°åæq»¬/ƒ^wõAººNè¬Îï{´K¥P»€IR þàRÙ ÏE‰_ÜuÜ2Ì&tõY*P{ÎNE²ÏA ¨K½¹ÙWa‚$¦ÿs,U{+5OÜêäý°Þ]²GÜm®´«&Ö¢/#ã×`ë[oÿ–LÛä±¼6qe.7¢yÿ,-d‰ü§S&Y™˜n-ë·Þº°Î ¤cJwçÁü˜­ “\ËîE4W‡ÊþˆÏþ¯ÉËñRm+“p@€;à¡tóüð×Dtï·c½H ‘fÕ¢Ú¬çÛµôr¦‘AäG9gT¬¹î*…¶–Ǥ”^Gj4øS}%Éya7ÔÜ-¿o_³ßT\ŠÕº_ÅáÊÝÃDâ M¸-Æý ³è§ïL‹Å¼“L¶x:a ÎüÍý«(üšðl\”þQ‘SaÇ¡{ÿÝx3¯5ÚµlrÔŽ$yùÆ­ìa¹2¡âvê,Õb––h—…ÆöB;¨4ôooîX6&bhÍÄ:gK"/ƒˆ¸!a̽þÉ¡àSà’“BðSyg|²z!ÞçÏò—ì6ãõ†éÔ’©y'\…°y3Eo@f¤Ëtb[xXÀî…ä¾Ä…×W§eb9.õ§ÄÕbhà@~’cª)Kz¬ jJÆÜ[0ô'ä;¸è~Ô!g,É\…]µg ´ÆžXöÂl÷ºÕϸkõun-1cx9ÛÉ<¸ã=­3ÂvlQ |š#ÇbôW3¦×Û6›zE‰§W¹T¨[ŠøÈx…Ÿ”DXÂÏÍjbùœ>æ-_õ€˜< ȽüÇR]nL¾ëA݆¨q@N´_D¹¾ýbޝº¨Í5Sðx=wô:‹8—ϱç8Ê©Bšò¬áU[‡ ™/¥à•Œb€uÓÝA¸(I×x›úTûcëâdÿÖÑž­]ø Fï(é5ž& Áë4½ÙâH"k§&¹Éfk*“ç³³ûŸFÖÎÄ£ð•Š{Ó+ýyGÌ)Ò¥"öÄTøäÊvÿù·@Ô¸)ÆñiðúKoüìåS©å©Ùi¶ï H$ÿК»åI‚NÙ݂Πþ)ìµ§8L ¬A%40çJP]o˜Þ)°¯(¤,GÃko—«¼ïðqdö¯ÿ\"Û†„êõlÖ÷™~ %朋´Ðcã|1q!20075’˜…t©„]­h\%¾„£•;*»ÕޱCîdç&( %@iŽÒ̪škb7:„7êJÒ¾(M8rÃ;ô™ë=ñ·¢ÿ4Ú–Nn§Õé¡ý>ç;Ï¡þf²¾ÆÞ±6×D'’neû³éçeô†Sìq„<A¨êu}ËÉœmà Š¢j&RN3UÕKø Öµ¼KK38ŸŠ$tçÕä"ˆ‹Ç‰pf…f÷&¹´„c¸‰nÏÇšë(ÍÏü.ª^”&Îù¸™rS™¶ñXÐ2§"¨xw1Ñ)Ω ápò°Õ’.¸‚¼ïØÜ Õ(ż܂§O…æèPÇäC>€Ó$?Â#{‚'ü7ÂÙïÞ¬1ùÕ‡FV'ïŠ>iìžtÍ©55r…Ëvbp„iÀ•Ítü”4ð˜Ï¥ÿÿ?gñÊÓ”SŸ}ÛYIµO ‘®´`Åx¥§ýžæ"vz­:]E½à£èòfÞ*zgNÒ¸ä6Q¢6ÀÂUÀaÓjÓ—§Šµù€Šá ý*,‡Mq„ü~â;"s’{'åÞs  ÃM3K–=VùÚsžÑÏ"êŠ> ½fÈ44_2):£Z˜t£ ºöocÂBîÌþñ$«ÌÄÀØÿ$vÒÂaHêŸÿ¡MâÈ‹œ¦Ô¦ _°ó,®Ð‚”Oì =Û„2#…,Ù9œÍñýñÕ½‹šÓŽÁ^÷CDÔõügw¡IE¸íš½ÑG€Ÿï‘ì±?fkr»Ÿìš‰Cc. ñ…(Ò<. NUèáÖ±¥í¬¿ÀW]n¬JÇ’× ˆèãTøDjPšÇ=àbã º¦Ô!x[à(Á/,§s& Áå9¼_¡jÎ'¨Ÿ½w$mUê¢ ƒ·à¼Û‡uI›çã#(Úí·Ìñ´? ùx²¸Ìµ?›ðê+>F6V‘ÄJ04V[éžÿA7x 7”Ñ+z~&å ºk@=ì ŠžÐŽ‘—íãÎÂ…lÞáëû³JxHm–Aqœ@8$ãpI 2;ˆ6Ù®=™Tfô?ßœzÅÆwÚ –ˆ*f†éÙ=³<®-ANÁC°HmS¬Æà]SHf…ÚŽ[’žPO—oàj®#èß©¬>Ú½këÒ¨<®°wަ·ÚÛS (àâÔE…†HµƒubÏÆ§]B(›+ ´}9ä-1šFôô›€Å†‚©tý¦|‡½ NYCâ×°Ûð<ÈŽÄBýü‚$zéÔn?ÉUW3ÕÂe5 ¨àH7{N¾eÝLùÖ·æ³-"pUNÈ•YT}´ŠRî‹|ùáMïéqÉ¢%ŒÝÄ™cÝÜ"0Æ3‚õrü3x1š÷/nØîÙùjĽ:Jò˜`€p¼¦Ál]Aì΃é'Oþ1UÌ|-©ÃAêܱŸÊͺ¹úDkf|#Öïm*³b%ŒøHÇök‡œÐ\B“Unr†Žl5”3GK=¹{ÆPŽøŒâ-ŸNâÿ'X:¥žp!uMx­>¥­1Ôš”º|øÕzÞ>_c$È»C€H6#ù.Ó@Á¦7)Z=ŠÞÞ†*b]&§)«ET ŒŸ|Œ 1¼¹…_€ä‹HÿNgÊž Å<;×én¾=ÒŸ-|Ge?äC}°s÷+Øà¸êŽdZ&"]~Ý“‘·(žµ÷üÒþ±€ OPwí\ULUv0ZSôV“슰,/ÕG{ÅÿS ˆ.wéw@sèlì ç3…{ãá†ê’Ÿ á­WPc Öuä$ù¤xB­×7ÕL·×‡©jáÙ\OÄ–‡YÁÕüÎ\Æý†ÙÓAÌýøªLİ׽vìm="L!Qغ[d„4Bçî—<õê ך[N4FhOŒÙ=~Ü29·`AX)pÔ½=ÿ9²UöÀ«¸¬ éÍÌ"ó =¤Ð@d ñ¹2¡ø@Ò-¼ øs‹ÐŸ¡±ÄäD»ä¿ÈÞlóÑò¹4˜£52ÓËIÑ&W=Èâ_·Kx@«¹Pƒ´e\¸`±d[f)~Êò3|Þ ú³Ê—1÷¼P•7ru$q÷õÇkX]ìHDeߣ.\f”t¼¨L‰™høO=âïuš6 Eç}¢dy/~ÕÂúÅChAüY±y~jqÁ(êàmqõõ¡£S&3xV±‡òÑù…í}–²È_6PŠŠµÙÑÏó³®HƒiYhÒˆ;Åç=ÜèæN¦(™Ú*Ät¹Ô­^¥2 ·à –©$í2ð3Qó~Xûð+3(ocoz ¾>—§ýõ™K‘°ÃÈñÈ5Ã2NHˆá ·š‘0] üÍÑ5&æŒÑ´Hll1¶­#|«§/&Í_¢oºÐ%uµršóTYusµ›gÏgÍ?MÜã@¥Ú+ô…;Ú´å´yYˬ¸YlP"ÑÝïY ©­ŸÐ?´‘zÅŠñnyŠRo±5ɲ”šâÓ"3p¿kBÔð‘À\XŽe4žÒnÑò%À%wÒS õ€½Í«ÝVx^™¢:yš!ÁæI.¹»Y$¤ ô†\SÜJyy«§J·ïÒEÈǪzçA–œa/7)Ðf,œ/>>ݸ|D ¡cO!`'AS.dA.(5X¢Ñô&$ªQîÚ+ýYg…C#YÀ§’¶ôÚ)£ÔŸŸ•µ"Æ[ãº\1ÍQz˜‡é‹Ó705–ìÙÐ}޼¢"ŸrׂìÌ­79¿¥Á$ —¾ù'8üŸþKXÈ£ch6w 0^v+Ï=˃å ìì¤ïé~ ®^&„8¬8ü&η5¯q.†¶ ö¦‰óDÈÿøF )Áò´¢Oï ­|aÓZ§LT?P@ô7Ñîpޏ¼¼Ö€ÉŸDöæ¶ ” ¤‰cP¢ÖIã|eÜe÷W_JµõíÄz+€RÇ…öLS«`jȵÅ`}„‡Y@Q ÷¿¢%± ÷xÖ^:\USŠe •Ö‹ ¼ ¾*.ŸÙ:BÅ +ðÅu>œ~L¥Ìt/ƧËDC/c5 Ûñ€Ü¾x«»ß w1|(Ó5üš'ÓrÝ(ý³@*  íë =øÄ™Æ«’¯"•„P™ðбí熂º:]Åe’½GŸÉ ¢zvðjó/­ŽÒ™m-Ù7“CömÒ­ÎaTpm$P±Vî\‹ÿ^¡ÿØYs–§A-LùÂA;'Á޶×)$ô׫¸—ü‚m,Á“' IM e¬”’[n©…Zo[Ó‘X…iJr<êü7"¿œˆµ9x˜¶zÈîô³ÑÁg4Y=pzõI0ÖÏX|=A¾ãhẗ‚‡9‚ÒÁR °[‡HÃsø@©ÚB~“M{9ÁwR•ÔÇd9Ši4r.þþ…Ñ©ƒ*9ݸŸ]0Nüoa ìw›®«üdýÚ¢Kþ Êq(ºP&éZ“Ï@.`{~iȲ•À‡óѲ=ª ‰Ó÷ˆE%Œ"„is„¥"ñš±®Ò™ռؙOC‡Ê쬠©fï»,$•ÃŽVKWY,1†¬ 8%` É5+yEÌÞŸCôy­zEfØoo{gÁûöP:ÂLº.h^¤vœ5:;÷UQ4]N,—RÓ|¥É$·F’Ïî /GÂ¥U~ ×/<našŒß­cìûObDáÊWÏK",JÎÝöç>ñ¡ºR®Å¶üɧ‹¼¾¨¦½ªôªøÒ¾}=îÒÍcÔE&Ùñh!aKxû"2‚ €Óa?Û;²üퟴ(6®Dôv–”cÔ»`­,Â;ÜÅÿh‹ƒäþªÑ:C§êg¹Tå9ñ€šëvëPX€×Yé)¨(ËÃðôG‡l)­cŸ Ű2eš'š˜™´µ”¢è¦è€*ð{†Å Vß7SУÅﬨ0¿`3ܳô°c¥þì%Bz‡Uß“*úàPÇìÙ¯wöêB 7ò{T8ÆÞA‡\ˆé¥7ýùr>zÓt \ÛÞÏ4Lçdrœý˜Ì϶ï 553’þYƒ~M'T°ÉnPÂ:º®Ø¸è¨V0ä¤ì&RQÝ=_Œföë¾iÉ)¹Nå“$ »`ºŠµ÷4!å,dTÝW¢F­&¤¾¢l0&÷ß«û´«äáIÏ´¦Ðwº\ÖCh~7<°·Õ {ýOâE.[¹ªßR‚8&¢V¦¿í£÷?ïž·šñ‚;/š¦¬Ã4ÓêV¥ôË8ò0@y5>TÒ·;«¦ã8Ç9ƒÁdL˜ª¨Ï|áFV«0j ÒBÀ†TW†õ‚2˜€Í_ Žó_ËòTlAÆø]¼ùV˜;ã! ‰–Í:ìC©ºÁ$·æ‹Ê‰@„òŶ/;щ»‡Ï¦×yÐÆ’€\¦hÆÿÜôtŸ.ŠH«&½ ;¶ŒãžNÝKªbµeyÞKFWéÀR÷‡üeM—*¸X_òœhì3ñZ "ï]®%ë4t;y¥TÊäƒÙççñŠÜÓò#~`czDvà ¼”§’·À4“èß­¼<|àø½ôÅeÉ÷KñòxîL{×êØåì×ɨ5°dŽÇJ …e™ûïuë9ºö¹^¶¬‰Ø6OG[m(õ{ѦÊÏawÌËÏÈlc¥ÙUm/Á¨^g;¶_ åø%W/•Éžï³ÿ’ú‹®õïsO~J§éÙ÷5J+‘cTu"…ÍYAì⤉uÚ*Ñ®sšbP—Aðìs&£r°¢Žaó&ÔÌ'%"þ!£ž£‡ò§Äý*âoá¹ h ¿‰ò8n¿ÛÐÚŸŠR¶K»nOjs*'>ÃÚ@;‰u€×ɽ?d%÷jÁK†Â:j|Ëjêvi¡K ó*5èkV¬%EÉÛ@ÆHÞ^Ì9f>âS—Tþ”sƒö’PFú™tTÎx•èW¨QTñ|‹éÌ«]¤Yåø4}œ ‘œŸªZ¾£xfËl·ïªz˜”ÁH(i:eõ)BAìW¹l"˜¹±å•šš‹é¹HYcûÍœX£ªzU˜ä¿ú/ŽæìrÁ‰‘ªèj.Ž'lÉêÀ°Ò8mÿ E-·èÝÁµÝ,‰‹Ú°Ðþפ˜kª8š$ÙZAo•(a}Ç€v½7è“ñYRî©LïX‡9j>ÏŸ!© 6„Ÿ’•€’g‚8œ3Ô¿•?!±Onߨé]à§«†Í×™H=;Ü_a‚G7V´Ö%ñT@:¾*Afå¤ë¦?ÞÐØ ß,Á ´p¶"CIJë_ü3E,;Ö­é둇2‹ÖÚŸ¶N “.ÿF:ô#Ek©ÉÃÝ.–èIþÇ—9ï“6¹íy;ðç]*4ÇI`Ì#aH„:ÝeÛRRõ»çÏÓ8óU¨ÊÄó)p{]xX€RSLy>ufh‰6šJcKÿ7 J®‡kW±0~¨¨fQ uÖID8[n ëÓ¢ÛóÒ¾·Ó$Ÿ›¯3iB¢+<ÍŒJßQî¦O–χ‡GÑþjßD°Å5 úzHbæí_ˆHÌ 1aVqÙc´K–FŠÕÒí½^àÕôS‡g ]šØˆ¶1„f~ÁEç-vIW èx~ij³¼n<QØþY'"Aí0§h!Hu ¢ îƒ9H}'r<¡ÃP¶ß¾¿N7HÂ1Àj–>9µ”¤ˆÙ7ÕCýL)âLêpZ Ê8+~}f2º¨é+º±îeì÷˜‚îÆ­Mº£zxÒ)9û•›"ã(–€àýä/<©ºº™ôz88ŠàŒ—nJ€iº®îôŠêQ¼·øY§ÛDÄôqPúâèTV0»¹U_ÁLÆ‹ô•®#ÍÒÖ5ïÑ!S!Þ¨Þš) ˜i*ňÀ´(†#¨ÃÍMꩇךl„/0Iæ|Q©Bn–Ëq}ÕCíf$Hø#i!ÚÞ|¶µ£ŽQsúá¡ýhWm1&ìÙ”Qѱ»G‡dEtÛÖª`7Ê@4¸m=aøc±X"›à¨>`n`3ÁœfÏØæÀfSŸ§8:<|î±& ƒWnå£wšà¨½N¶U Ç8^ÞÔ7ÂÁ¡”!on=Àô8±Dr/Y>ˆÅýH%ý&e§ÔùoÏ LÒxŸå"vëdÀ+ 5ŠÓ˜Š)ˆb͹;mÜ—QGI#"Ny1…– DÊqJÏøŽNÃÚœÁ«Ñ\Ãï‹sQ†C:+Éj´epÜñ¡Cí‘ÂÕí–„®ñ…¥‡Y.ɧžúRP(Œ.¸vÄn"Únߣ81O€@P\uJb7§²9 MPçÁU·g³½&r‘ŒÜúG2OÆøùÁÅšÇPÄœïMiA 0´#½ñ̼¢¿FÁ†=´÷†A”›£ë ¼Né´[ù;Jd_Kçb°7~EÔ:þlrrÔND¢doÑcä‘|W⬻cÚDvp™2QL¢?¯$S;˜ g_Øýp`œ¯Þòìa^{zî‘~Œ½PRÁÔTq×íåGô“â¦ÃQ¸÷å¢W^Ï>9Ì-é«!´°z›˜ûDy×5`Í ~ÀùAËÿÕ½]RÄÏ@òíü½?@»ñ%#[¶Eü«µœ+`@J“Ti庞Ô²âý[’¾sH{ÜÌefà Ýj“1õ˜ª©8ÄÏhåh±u*.&õ"€Êjø§è§„Éïdz( O˜°ÙÔ?³Fð]f´/*‹|!r•¨ç9V,Ùðm1ah“P?L9‰òqƉI-Œõ±ÃÏÞÓ¢÷ٻѠ‰* lñ²ƒ_´ËNG˜Oeý>Û†¢•z»œÉ¢1÷ ‡ýcôjîsJà­BJ~TÔ£+Ÿ nº6ô¥:ö{ÖO‘Žéø³Râž)¸ô\8̸‘Äó¨.1sè–ë~ŠbàŽñZ†¶T†é¡Î€®kD1p°µaÎÔÙc8)89?KÚ5~gâª)¬Çšo ¢uCñ %D™G뙬q‰æ#ï9`“ŸôÜ›¢ ö¼]5 ÖW±7j#×Pºx8ÜZÇà/ ¼µì}% am+j©‰€ôÁ‚N^9 j¦VéV˜ÿE11ÐÐ"8bk“ÕÁÀs¶OÊüw®ê~_Ð\Ù3ǺDέ y‡|2RÑm9Î8MˆÜÀ ˜DÌM¿ïÒ ­õ» ØöÅÕÊ•uR¸íÇÆ¤t­Õ6ݳdoœ\ p:´ .@­ègxHëZ•¾ÌtaûW›‡*#d-x¶,[×’Šïعûþl \ èP–Ç.Þßû;èÇæœâ8u>Óuxº8;©{ „¢Î`h¦#> ÆÞ7Mœ"‡@\õMñ¥öoš…ÀÊ Ûÿ¤ã‰Z(WÎÌzp“ï&ŠyÌ£êJSœu–®Oô;_op*cX:“|曎ŒS3jœo®üoëÇHSÉ*Ç©.Ìk œ›Ø÷ ¤“¿9°æygK¥ëXõÓ˜Š;ÿ&O%bL4ý8¤6.‚ĬV/œh>åé8ʉ[—aMt[¼Úÿ˜÷+‘fÈ®XõBÉ?Í&¹›Ä…aø›Å6¥[üÆ"0ù põÄX2 ÑcÅHýœÀ”ã · èÁ_눮ÜX!‰hLþ7Åó÷räwä š–ɧžÊ&D0an¦ô ˜©ÿ%%íî38A A`¥–¥.‡*]¿u©#æS<«¯¥!VK2ÀŸgj–#¹k¨«o4|n+4]= ËnØ~Á xÊ€òÑm3>ÿ8×Á­ÃO'™†àGE¼/ñe"„òûsŒTß¹vEs{UÝÇnn¹Aú{Bæ)ö‘P2ŒpËåMEóB·YÙ(€s¿R=ž¿!Q­² £—Ñâå‰gc£^€Ôפ×Ö½Î×WCMR2§ó¯{KËK0ÖcašfÐÑ6 ÓøºE6f¦6ªÜºè¬h¹Ë»ž„¿”±ŠÓÈÔB4ÏÁ¼:úv耫)©g Üh£Óö¢Y:ô¤Ì©ÀÜÁë}+Ú¶)DgVQÿ¿øŽ ݼ¯7¹'K[¬¢Sb&º­e…f—œ&Øb}øW¿ï=X| bÜÿ™ŠÉ£•öõ¿û xƒ…²!D.¹ó¢E»îf¡È‘Coš¶¨TŸÆCd$¾Ú®\§ÜóÖx+rÜJ©uNÝÔUÒÜÞÉ‘ì5(óŸ0oŸé‰;¢œ™¤3øNü¹ë³æDý3L)öpÃCþ;Æà—¶•{Û>;#{ó±¥é>•VÄx>W4xöX`RtÆÅ|ø·‡‹ðv¹¦pNÚåðåÇã! ýhªDÝ¢pü|Âë¡· ¼–L$<fûô‰Û17P”4Ø]ÿy»‡½Ö"ó;S`NÊ´¢ê“ýq ëá6½“eùæFÝé z Dù9Åù“}oôÀ÷£¸f^Omuå{IöØjp?>ôP^s™¡ØÞ ŽÎ™_Ñü³6ÉúVj„éóž´lo4‰<Ðü*_×ÂxDˆþÆrð 3TjÅ[æÀÌaF!ñC™}dWvì¶u`xÅÐcñ|;çÜ6e¢ ¿‘÷'ôžLPNxŒöWn‹æ£OPàEè#< (&«1C…åsR†‚Ã5üXWi»J4(FQ,=Û«ÀìO2%îZvé!ßBïtõá6³zgEŸwouyŽ>zvÿ£Üv<úJÍ•ß1R0l^æüꬆ_}®¶ H.«3ëød}~÷sÏ'°½6K76éGlìåoO·ÓiÎÌ‹L±QFóìuöáq¡ÃN2ò¬ôÖG,±«×Eœªî†pÝ»®åSm©.š¤ÞuCK ”Ômr_׿ꏷľ Éñy„ÖÕó4M‰á<—¶Û}jIO.j¿«8p¼R‘z8÷á^°ûn‡Éfã^ A•kµ©óɸ7EÄèÿ„z=Ãd§‰ÕÞfý…ü@M’V>ÕOr[’ò{qà—é;Pö60Ú`M- Š@è;þü8G5ÒÇóþnœà¢?²›Û³¯®™t!áèdôAœhúùxÅÿc A".?b;æè¹šG½¿·¨>¡l£èL'“µ¡)|Iö“ *oÊN¡t ¨ €ïFeFŒ‰éÛÌAìºÄNj?d¡vàvZ«™3ò¨¾¢±M™83ô²oZ@ovñ毅¡YÂõ¤èé\ijízú¢Yã|ô™Qwlw `×6IDm½£ Æ ßä‘Oi±÷ýåîç™Æ¡&ÒX« ²®hD Lá14¡i EŒÃ.A¨5ÿ& ö·Åæ¦Ýଫ>±a%æ}/î"¾ê©ƒŽp蓯±/Ž˜mœÂúὯ•R éòW.£¤J|ç¹8ï /»6MãÇîz÷œ€©åÔ>ÿ¤}¸‡Ýh£ˆìe»Ú§²j<"H"­'EkòÀÒ!éüA‡»Dw¬@Ðk¯º¾çp=ªMù쎹תÝTƼä¹JFÂ’à8g@ÊÚÌ1C _ß$u~üV)'ì¤Ä¤ÛUõa‚Ô샌{V»rEÍå* ?AÉÚ6vvÙìAÐõi>¢ƒ--•Ƚ1`zˆÅ½J/·ö5m›Ha-³j·Ë›°”(ê …ÂµE±Ù8~Qp‹L…¶»éÀoî>Š9ÞZG¨…Âu ’“…¦–²—cJâ¼<;RµçªÔK‰D­ÿK—z·:#;×´š•¥Kn¨œ*Ótržð „ë¦ÁC«¢WVP$nPÂã¢b}ÿ«ÿ Âd²Ò£ð^Eð¿EJIœ¨¯GïQ Ú[7)g hË4âBMØŽ€åײ¶~äÁ­K‹é?(º`.¯0Js¶žÑq£Ã L4·mÀiëAWƒÉõ ÏÌHBÄî¾¾Cµh”öˆÅ%ñuŸÙç„å¬QÿpõÕ««Ãù´½)Ù7=Lô/ã×r¡ ꥃæNœŒŒq"/§&¹Cȸ£ª±õþ?'µœ‹`"APðòµ.~>ìmëî˜ÂR(UÞ0`sÇ3FL.\±?@-g&`êÀÊA;§÷íME±æÃ­œ|vº@¾?'¼`ŒàÎÎ1½•Ët!w`«^m}ï5Ü·†£]Ù/þÁš°Uÿ²Hùä™ÉÖ僿FC6-{`Gl:¡‹ ºW€1葇‘†õþú>'XSЕôê IëëîÊ9{¹¹õ3¶VvU?‰.sÂ"g?IÚÞˆ©+À²/ß Ý“‹_É"Š^¡vÃ|"—@ÉÉ­¦Lhú*ëAªzNâÈ3Áh0Ž`ÿøšÜ2ÔT˜â—â«ÔÉ‚ÄmVC²É<¨&η1À@|%ŠŠ|Z}ì}FóM±>UMÁ–Ãt¨Y!?¨2¾ûw2$12Yhšª>(xŽ5Mè…,š ²›¦/0dûö“ùí¦@¹ýh?cÐf’`s¾yôÌë6ÍþßCÀ‚²c ñ ØÃ¨È¹Ë›t§Hç÷8]„îô„›+HlzÀ'ã•×i­µÓ}Ÿ©ãMñK,þ+(bM!ä(Q+]WNúM¬ÙÌ¥¹pèÖëe5$Iú|׊ T5˜™Ó´°Ád8‘üî RÏžü Þ0qyìô2Á V_Ôýà®—ÍôѪ’CJÚi:žó:hŒø¿v?R׉Җ:#{ÛÕB #9A2ˆÖXZJ£nÔgÝ:>*`Û!ó´¿ÆÎcO q¹ -D¢QK<Ÿ ´ÝãÖѤåïû9ØÙ³š™#“IÞñ.>†‚| €óž9ËXp{Ãv†a_áÈKIø’YyºfD×4ö#ibÆh‚$N%˜%¥òY{»a'îB×£°ž7®¾HÉžw_MÄ]qºŒžS{—eñ–åJ²5¿>¦>¦tÒôÑ*UD°%ec.S ¤šÛ’Pê'º…};ÀPÒÃΪ%µâÄôüå± ”0c±=j«õ`¢mìäç%óµÕ{‰J:p΋ZYZÚÉÞåš¡@0æN›%ÃÁ>–^mªªƒ§Ñïªõp! F½^§n÷,}‡YRX1r*º/ìeìBwÁ‹£ Én" ¾laIšÁÄM+³PñN€oÀÅgJ+CûÒ¸“Œh§3æ×·ÏÛt7è\ønâÈØ-–!ÍíìË 6fÁ%¿i¢*›–©ÅV>Á@Ÿ=® ‰êü!4FÃè8Z¦|ÔçÄ®HÛÍï†)©™†¨Ûd›¡ÁÅÝìö6¨L‘MÞʃ™ÅíQ‘¹f úN‘âbh%Z‚ÿ¤#8æÇ¦f‘YYKÆÏs¼üHpÈîY2ƒY«5Ô¡õÈm—£^íZÏ»µ ÙÑ2yöÍäckµÆ IûÇ`îèÃ}~¸R´‚)±ÃTÄ"_~ÜM¢ÔË“/5(¹ÕÍú¹™|÷^ eU=l¨I%É€:ϸÕt-r2(}%©ašû3÷*î•úDp( Ä­Ì$KYZ†×’§²+=|Ä=b:›Ö4ñY’fˆHÒŽùΆ­k:ªµ8 ©„­Dè;ÝãdÏg&g¯Ÿ@A¿6„ž/eð@I‘Üoݦyy¹èzá*Ã/í͌ٵ4úí;K¿oQ–èw®þ¶ §ú3BÎæÍ“Wý„ -ËqlËWSPt$ø›wt_mfßÙO} Äeã£"Dw”Æ; Ç‹“ÓWl5ý7ºÇ¨EÅwðŠIEwi¬ꌓÅKÖ¢d°/¿qÓXYKJ"¦»óûâèQS’6vIôwÄ0—Ž~hýò³úÒe|¢ gÄŠ Ä©" ü„EÏrTPIgÈ­¤âˆ×º™#0PŒÁ=S˜Z·ƒ”tîoÓõ¬™€“;Ûb°¨›yÖUQfŘ3 B»'DrmOD¨æ¬©½Fƒ|^GâVÀìøXß3£›(¬t ^%B‘äuÓ(i䮲䲔õYÆs¶ç…¬±~ ÐíGQD V­EÖÝ­x¦­QEê#n,T÷‘o·+Ç|Ru[¢²¸ »F¶ÓR½{À:“‚B>è'[07ÓÎ5cÞéì\CÁÏRèh½r"/Ú%0¨52?4ÐÖQ¬„y,ieÝiÞü³k㼯í )ÁÃñ”vØQÅЬWQ·­,¸` òåãÑÚRåz„©-x äCO(g À™Ì[…Ø *­Ó7ÿ;FßVÝ™}íq"•j)C˜èp5$"·¼†2y7*÷.†8Eé ¥0zp›óhdí‘×pkßx?›zô¶Â*‰ÿã oÆ×§y½8ì#;Ñ$mœ@ß6ä_ÛZ²ìàX@fˆŒZOÛcʨ‡`]<}v?©ÖïN´4;Ñxu¤œ²×!º…ÆžÏã½§Ý?šÚ¼ñLËxŒ„ÄaÖÂ\v%R¸ ƒãdswycw–]†¦vX÷`rö£KÒF­àøNQƒë0€ÈIÅlýPê´z71’±ÀzGmv–+LìTÓ17³³®›LܽLZ˜²…,WJœ,ÅÕnç»uúê׉*ŽÈ(éÐýð Ž1é4§äZ` bnRɸ† ßUOrù¾ô]w_ý¹ƒò|´5¨õ1µ ^#.ô2„T;.LèãßßuKüŒ ç·²}ä â8eۃ܆ìˆ.߇¢Š_ЖLŒuÙ Ú1£ólnëGçÏ·Édø=cý¡RýɺLú0ŸésN“ô©ß<ô7ß?0 ßõæ9ÊiŸÂŠÅÒœ÷)^?ö´KƒÀ3ü“oé–_¢ŠB0-P©»YAŒŽ•“ ¬ì;ìlsÎæÕÛf\Í%Ʌι–åÕ –Œaì1 ûÈ'È+ë#ÒÔ=aª÷M="Ÿ|]#LvÉæ‰Åß?¯ÀÿPÞTa!¤=Ìf⡃=m"nPÑ!?®³ZîÈVvñÁýσԭÙg‡WÔ¬| I‹‚ì(`– ŒüG_0þî`ly½L|^ÚºwGØ;cA!Bˆ¶.D[‘^7VfãDßÒÕ…/WïnÖïvR® DÕ ÝÏÉ“RŽTYÙKÔZHÖ¯«œ3UÅ ›Ù(…ÞŸçõ¶ò2:x¥%ŒéÐGçìXÇ¢\bÿ6Œ[6¿í¯®žÉ1$x矜§W\rÂ4^Bhvç%‡GƽíYÿù‰ñìð¼A3¸ËÒðS{FÙlÈA\ŸçSÔS‚6ÅÅÛ[«”äèËŠ…(âÁÆõÑŽØ.~‘¶Ï|ªSñ|Qor¹‡™Ö œU¬ÎnÑ_ ªâ^P´ßhRxŽ_JFôû]Ýß‘²QP^-À©¨¤5váyÒDÐf¸¸DŽüó@xyL¸%o¦ù+ïÃJA ÔFÝÔS¾”F‘.5š5Jóð%ãåwÕÉ*vÙ‹¿Bæ–Ùèö­ð ”[H~N–õÚtº T|úÜ‘ ®s€ù5Yp“Q©”ÖMé Cê|Çœêo‚ŠÚ´²ŠñÔ3ƒkÔ«÷îð`DµÝùxkߊÌ`Ý„kjd#-®ðô9±`OpXehí÷ â&s¥-ž*Q·VP">ÉʱsHLp9.Õñ€‹Ü@(×ꇙí_Ïf‚þ(½SNÂý#L(EÎàœMPdjù9þœê¨Hvî#MŽ–pʘSHlšü•eË woöÒ7ëàþš§è¿Þ›^ìªø+b©èbë§|þ}ªô0sÀ}N±¼Õl´Ùðhqã2FÜžƒB/Ô‹<»ys÷˜MÙiØ—Ê‘¶*ïAõä%5·`"hP;Éj# Ã×ýoŒt!tÿrß òó2܉×+§0©3jxÛØRç<™}Ã,V†ÍóþQYÞ ò…­¹™…SØÞÕe98.3ÆlIî×ð ­)_RzÅ ìá!ΣñÌɳÄJs ¶8;{RUíUOëóV±®¾`]ú¿0ÏpndKT"WЮH/­vî~IÍã×,}ö!'“ò ÁæF¸'¶áwúj»!cÝÒ‚I±6%vAr»ú8N+l&c¦º‹Kf¡iËcô»t³1´ÉðºÀb‡HzeÍqö¶ ~3´ Wª/ €Þ’lÉŠ‹Ó‹c|ëĨ5ê˸РfuÉ–xm’ú>vާÓÍR>$?ÚE*lÃr —ÒôâÐ`GÔ,~±NZï‚T܆=•1&!£´éàc ¼-ÞtfÄåœá N|„v’¡6ŽP²”˜Ü.‘õ¶Óö(Ñ>wž÷-enñ*lÕ£ëͰCÒטµx«7=æí$1ð\¨eÛeèOö-¾‚_–~el5/WÉýÀh!RŒGíp¨ÉV*‹Ò*=€¢nÖ4oÆï…´v`­¤m½Ë›ËÁªÅ¬‘R Jµ\ààö»šKGs1¤æƒˆÑµŸÞš—Ay §çCù¤1™„ÙŽt^FƒÉZà¼ú=¤Ÿn€l¼nÙ–°ÚØ›¢)þÌÞ´¹Vð3"ø$[é¦Á®ÉsNñí1îïß±öC|b,¶ånμsLÿY0>?Z‰ ¹‚ÅUQÞæ]9ï‡Õ¾’‚zi{¼ÂËH%ÔÂ+ýøÌ*•KkÙ£a,Keû(õ]ï¨QŽõ¼[ï¨óKô\Mˆ8E(k`ó°Õ©£Y}Ñøz ¹’Ñ”ˆŒ‚03ÆRëQº03U˺É=½|‘qûFùà©— ñÇY'c2ã†ÇžÅÇÝHu^-4ŒÓ™¥o*m¥†S\¯Î$Ùæã´éRüÓáÄBtÅZ劈0ÃcõÁ·'´B:rx8où)£ÿòç"R§LÆ^îdg;Qè’æfR¬8[CWêÒÓ2ÓÃ7ÄÀ¦y–ë®>ÓÞý!4’…ýu©3Kà“º½QÂÀáT•ýÁ çEv^+ÕŠÞ¢ýùÝHG2¼ŽY{À¼SwR¼Ùpˆ[,„_A-P²P7xq„v^OZ†79íl0 kñãÁ!C†v”¬S6al†7㜘hGX7]‘-œ†–¡½irºsu€^•9¨®-µpM=³Ôj§ðSH°ÝÅVó›=„a¼Í¾ìNßêt°½j´Bläü€™®PÉó 2’Ø\}s%Í(²ôšÎXÿ{ {Ó+é$ ^‹M‹ýEFüËS·wÇGØn4ß”q ©ÜaíÂÁ¨†ÃïÂAàdô¢siá6¥Â<* dB>ZÒæ¹Î¾ML›Üe¾n㸠€ìõ8|¨éÕÒ?ê#µm7*¹Ü». Á¢€áÚ#®ú™‘ŽnDx$Ͱ÷}ߊ gé˜6MFÎ,­ðª«ûÈW«(Yd`7Δi\7kLÿ& -º¥ˆ%™£ÿQ-@9—Š˜ße¸ÿBVÙ¯QE“fþJW³R5 ¬”Ë<Ó;‘(µi¤b0)I]t7}îp¦Ü¡Íyl!yI)Ñ…GzÈ©¸rÂ&S{^·(NŸ°|]nð»È`®ò¬$òŸž¥è»]Üî°ög¡Ó=—/ƒL:¾±©=&ôÊT×£”"§Zší:Îgî‹­‡Š“kÙÕL%†$u|vF{23U‹ôgy)ôöXQò·-DÄu<]4©"LåœþFõtxnºÛp§b§Y•oñ©‹ö2ªž¯¼ö2wˆª§;;´âksóÒü°†ñI‰y¹BúCê1íØÊdBŽÚo>Õ{{tF¿@è‘ë=ÍíVÆ ¿¡Á#+ÄÍ8úºñHÊ${y៾-q>¿k’rmbÖâ³îgPjaŸé($uó_kU¿JÃ\-ZÎ.°¹gÅ.+‹ò¾ÇÁ=Îê^BC< ‰ æg¿Åñ*±9fa’´™é-ö‚â–±Â(½aV›ŽoŸ×÷ÊÓI©(j;RÇ'øغÁTƒ"ßÌŒv˜¼TÃÄa«ÑËáµ!£í·zï;–™ã’%p¼—wçÌxóW̵„1ö\˜üy`óâûÐ]wžÊ¤h1ÔvL ž_¨‘xYKžh3 ¿×&œÆô¸óý˜G×lòž­H”ÝÀ „yØÌ‡«)Ó%AkÄÀWÍà5pkö0Ï?¬,Ì?¬²Ë`[q´ãákíF ºåÑìÒ{”Dh´œªaõzw|7(³[_bJUQ©(]ÑÒ›'kxµI{ŸSãO…uòµIó¥2xocضÕJ$c´ë¦Öç€,˜þƒH]qââålt[ÏL!3 o:*´ÓýµþÅägU"‘P')7=´¤ ¼'­ìi®Iº¹ÒD´„I»_ŽØ1¾¿*Ü÷â§‹°!M<Œ¶½"{£ئ!\ãe*F7–mJóhIoÂU;ËU\¡ð~ >V¡O‘ß,}«¯o´³¬ ÙÈÚù#¨k¿H”Dòn%3àý¿—ËcPüá–QO ]Âø &ÛXf l—­?°a 3ª™â™™J_öü°h”÷ÈCKŽ%äÚÓ¸ R.Â0Ç94˜ÈèMI]1¼)±¢oéÐáÔ-8²:{k›%P½ °-Ú†.µÞÖ·åÚÙÿ╯Ö-tx ¬¶žÉv>.[ðw¸ð£R^áP‹Øæm‰XÃF¬Îó| Vˆøº¸V% yÁ È†iâÐ÷œåuj ñÓÇ4«¤*Óé~Ä âŽ8Í9y  ÔFk~,åÑ!µ–=/†Š‘ÚL€(À²vÝ0±x—ÿcËzGN)Ð mÂlޤ¹aYDd);«›èÍY4Ï„85#)«mÃßÙ.(Q TùøÝTá|E5wü:€s¥EtZÒTßÍŠ‚Ï¢"·SæZuÒ ;Ý·ç/ã~È|ù¤J.MAJÃj£Eû^X¶KÓ«Å~+38j.5J&‚þaõ¬o$œÖ:Ó“ 7§ÉñÈA«\};΃ÃÍ)šêê¸Æ{†[3¶Mt$0dšÅÑÉ££lI4œ<ºE õc—‚¿UCÛ“ ræ;[øIÈÐa6²hÂ}ï “ä@÷ÚæDW®‚·_ʤŒFh¡ë±`ÓÙ%9 ê»`[å;ÝH㊾g3Äêwq2pªx*𣢠ì¾zÇq€Í­N8ùF+:Zêu²hf‡ý¡¨SMå º¶Ìàηå.ßÁ4O¥B$¿0:…G5Õc}t Ÿ[uO´¯¼7”ñϱCQŒd2³äÂbÿ¨Î:`Fz9èÏ(»Ðr8k*FÏñv(ü­oë Ø‡ŠT4ÓžKº® Ò7ó6z*OðºK‚„O›ëÖ'Xq¯¢¾Ì$MƒˆTˆ7þv`Ñ@üs.( ká‡m oÄèxÐ ‡ÐÉߨù8¼"QaÇÌ‹/¢I±fËcQœéh¨fðW ý÷–ËÉ ³;Ú›XóZ-׎#²9$ÿ:Ä–ë˧³ƒjž$P´áô1øÌ±=ÞrÝØ gß7ø Á¼¤ÖÂ勺Ícÿ[𠸶%å‚äOΆ££X{‰zh;ÏZºÔƒ.ÃgNmâÇ¥/òqóÔ¾»îÜ 1™¯{8ä|;u@íóŠA‹ÐA²=½Kî×ÜOÛ0д@æø¢Æ«W­Ê§Ö S\ÉÔ lX‡ôTI!סÀvà-éíŠ n( ƒ‚×EÇ3ÙW±1Û8xÈBw§ÄÖ7)RÊÊ5!˜ƒ)”ÀÖXâÊ©Kö’8þf×½->Ê8ÓÚ—/X.8nã¿ Kì}æuű²CŽè¡—~Å€¾ŽIaœiŽ­ñĆËFù¬ƒhŸ«AÁìI–6Õx(pدµ8jËÇx£ò[zP1æfÀZÊ…âR ¹#ÿBo™¹/9 ¿ÉŠ()(ììQÄ•zÃLÕа¸û5̇f_P°åŠg,Xù&9{'ÎÐÐ+ÊaK»Õ0d‰Q!ˆ© ˆ„q-Äëî¾]!‡[0 9Ìmð¹Ý”ë@Óeù ŒVYkç[œw]¶àDzÝ8b3áùr—WÿŽý/-qæç6epç¿Ýžütíße±ÒB¢ˆ¼î2žÄö³·0õÖº¢ø—,¢ÝE×aµcyÙYõÂÐÅÎû€9}F®"V½q{Zì)<—»[ «í)y TdŸ‰<*J+‰h¸jf¦âdN%™ÐàG(ÇwCà˜—á©N}a`üâ÷)(ž2y¬€ñ#|¼‡ƒ¡‹§C Ü|kÕvσynö‹tƵ6AÊdcªJâ)~ý]Ü{ÝqýŸãçNþ†¡l”¢‰¯› ˜êÉ&,JãÞÞÖÁ0”‡·¹;Ü7H‡h&îH•óÎZÍܵêEÒCiC<þ,²‹TDiYŒ™“‹GIF¹¤ÁÄ$¹Ù:Œá7©§x¥x+5¯ú¬LVÑ{+N¤auOã–N†›ª@\ÛÜ£— Wɉjeƒ66·ü°Z8[JL~bE(à™dUh!‚W×H}ô^oI¨ã úîf¼ÞÔ¤P`SÐI5å¤xˆCqíº˜´Í”¾3wbŽŽ–FiS²i/ò~; Í>^ð8\âÁUë©“¤WÍE×¾šLÍäðÅ­ÓL½sÒ•ß3Å;Zæbñ1W/ó߸‰·ëºœ O‘“™¥5­~¶­¤bÄï „²¸¯š£”½jü%«¢Ÿè„AÉ­Oˆï+Œ‚5>˜Á·´ƒž¯ø¬h³}Ü ¹®¸ª Ò¢±;ßýuœ›€ç>õ‡Ù×6åžÎ0úâ\Yü°ÄTÿŽÒ.‹]ÔûÁ§Ñ°øT»èhí1u¶—³A•V {Q:œ9L¡ï2Úú{ð=3'f…Bqc[_ðÎLŸ‰å0Ú©ñÀÏû«ˆ6Šo:B‹®©­K¼A4?‘XŒIù›’Ó+Ê„9[Äxµr‚eê1pΈBâÈNiüà傃vë›êU×›ç/¯úTü°HzTΔ£`vfi8«0§WÓþzÚÏi*LRŠÖÿü›Ñã&´R]¸E5•ÝKso–“ÛÆý-Ô >gÚð±wVàúE&R<öb¢Ð¦*Ú FsKr"¬¨¶Y ®X™ˆx eædDÏÏê'Ðvº8réZ&ĽVLÊzÇ‚é3EyxžðNÆ%Ï ó(‰Ìýùá£h¸¢¼yy*ŠFFÙ1Bd±x©ÄA)g/M.|ÇôÞ u“îl¼%.kƒ˜ÙKr šFu¡#kT¤Ë6¨ŠF±ŒË‘™¤˜Å?[c›J´ŸdŽïÜA ú|‚:Ú­³X>\¥W½K!„4pg+pÒHf£‡²½oƯ2ìtB†*°½{éItB‰Œ’Bw}ayÀ¯‘@ópèmjòÔ» Ð+ëî/þŒ+¢LÓ z7dé}QÁkÕ¢¢lSKÓR*»Çö^˜/²Â9Ök¢°]‹rn ƒá–2O`Øè´!‹¼ûò‹kTL#ÖU¥w)¶½a;]8e,²Ç®ôiy-Œ+©jÀ\ú…}²þèZ \˜CÜæ –ÏZ¨í©ï<̉‚ëíâÛ³¶[g+îDnkÎÙ´ÿ…Z÷LeìæýÃ*“ŽSfmDîWEz¼»¸â¿~®Û×LŸêÁ­8ÆÌ1ÊPŸM0áQßê?ëxÑi\F’^óöÅ€tÖÔ+ÜÐa–ÄŠJ(£¿=7·dWƒ9 F2Aûà‰Ñʦ’ž[rôg‡6„™úp –EÌ[ñžæ€ªÇèn²Ì*»áwVå•›‘9ßwªñ/¦Xþ^¬–@R¬¤<ƒ ’‚5NT”Ždh¢œvÌè¿¡d…Y‘Ó­(Ð8QØæ>,E ˜J?r¯=ö?LlÐÔ¬óq_zðKT‹}X—`©~ÖRϤ&Œ_õ¢ét¨ˆU}µ§.¥klÍ8ˆ ’šì߸f±=ײ6û»›ÐÎ.$}b#÷’¯ì€_ÍG<ôƒaÄÆÄ% •ó—éÉ¿³w®õÍHäòT©Û>:…ne‡Ø¶ ¶‚…úµl옌*DÒÌn‰È´¾í¢¼ÎYžU[¹›ÂYAz¹(-M®Hÿ%/aWGeÜpF±†s äàsß-öÊ9lh‚7WqØäŽ?=I~;اX'n5ºÇ§5eq{£žï˜fÕðyo^Ö˜^5nRf¸íºðø6âœ%ÌЄ2dˆŒeúÝf¨±à9uï!‘é@Cêô0 nY& Ü:=’M,ô2»køka°ÕÛêEð/4øR“âÓ) e>‘á žÝþN@h—U£Øë“`¶´z+¬°¹i&žáô¾‚Èg¨Ö÷iN3×yÌýú§ v‘¼$Ok™å‰†¸x¯ü6@¼e7ƒ°ÂXÿ?F }é çàðóV#K÷\pÃ8sÑöˆaϪhOKhJ£]ÒC…ýÿËiÈæH! ¸ßµ †ÁÍPæ‚Mt+¨XA±Âb§'¾Žyñtu亯ÔMÈ(¨GÙ²½)Õܼãƒ:SǧèÏ“ʯø\†Kd([‰Fà5!NϺÎ&?nRÂ5gÄ) ‚BŠNNf‘¾ï[40”2&˜,*5âa¥a6-À•^jâ9’ úN9q›½›Ç”hlS˜+pryç—_]l7_0›ßxÓ>—5ÆÏøŸý[Ã_ …pÀ.Le|Ð#ß%È„£yJÐ_^q8Q%³ÕH«¢oKí eÓÝÖâf&|ND M“x¯é¬é¿mÀeCÌ;ÁÈ3ôc &6‰&Ý¢ï‡ð/N© Ys;-[¨,:Aè²®½1™- ÿY¢p©°qmF…‰œYºáŒF©ÿ‡šªA)5l¾ÑhØa¥L÷ÇQ±Gì|ãÐäŒ)½˧y$HàlÒÆÊ80ú™‚Ôßþ#ã8Ê/u›G)Fî3kHÉLuÍ’=Oõ-YS˜¼ðD7LÞØòàÉÜAVSɃí§8¨y[:?ý—ý;@ª Uþ»x•¸,7¶ñpBÝýׄ×ê7ŒM¨Úäl¿¼®AÀ.)Š#m~”çƒZШº±¾+µLC>é×Ì[Ž3àß8JVÄ4hÿ ”è?NHO:ù“ÝlòŸóèÕïö~>T8Wœôá`òE¤,‡á¼Ÿ#Ee÷™ñ20dzj•o\½¢Àïxƒ.±ó -ÞÊàöŽàJ¤À ìt¼ŽeÉ>Pÿ;©`Ä´¦ üDűÃ]ˆtÔÌY:2§ªâuL‡8¹Tk™‰…¨ìì³ ý.Åÿס&6°o(Å4kÈÇ¡ôSàªþÑ!è˜5•ÂB7áŸáŸ-^Ø Emì‹}ƒÏ )³¼Ñš¾ NñËÝŽÐ îŠjå)×``ðÔMüP,ýpHZæxÉñmìÕ¤·lÃì`PéŠêYÛÑ¸Š’HmßÛLáMä²b{qú³Û¤[ØCtS¹Þ'MöÈ–qrÖ¹ÝuÂÈ'0ÈT@²Tbdz­1/ÕÔ:ËŒ³÷

§¸æ÷˜^Šæsvó0»(tíljdÜß÷ÃÛtùb‚Ô¸BùUx‚_èú¯æ¢w4yüÇ»ê˜Ö¾|Z 2êOš¶yØ!Eûø£˜¹:äÍ.áÚŠŒ€à“-FÞ¡>„³·ªõè†ë<œ- KÕKF¤pà^×6GjÛ´Zº¥º#Y$#ûe9!%6ý¨c`¥i=EúºL½ÅP´¥¶í*"“0üNTYzdP@nƒ'µµÌN’»õˆçìÕØŠÈ=’«©¸o-¸¶Ã_aŠ<Ù•CÁž:£4~x02ÈV×o=Ó—êÁºI6*i¢Âÿ%L/hWmŠ iè%䟙½¯íåŠ3wÓ„£A£ËÝÒþÒ*œÏ%©p“^=k½ú ‡D¬ú]Ð:^G•îbª0½Uü]’öGhVO²­SrEsX)Oå2´‚"üBy§Ÿ‰˜©TGÍÅï= —½Ɔ½R'–l¥E½ú4Áº>i!{r2xVj Ÿ,á¶ïV3ð?q'(rþÿ½TSƒ#×…½‘?®:F?M¬­ðU ohŽÃÌ—ëêèþªÊÎ rª³µm s™RñãçºÜË4¼ËV_ÁÍKaËþÏñäWð-7ÌzHb/Vj à˜i…¶¼JÓB ƒø‚×nhˆñÙó„ W6­‚G°mp'œ/+<YEidÌÄú…!Šk:!LõÁÔ)8Ø-Uã€r®)ËhGàÚ($‚¿SSÀóØè_ªá/¿zLÇñ…mO ­Á×؊靈-%†là\‚žGiå®Rn+sÈ&“óDneÄ ÿÀèÝþ—£XPM!ªË»IVxf®'Ã7ÂÃ0Épj»Œ˜ý|ÿm‚–Gn†MCwˆx K6±Utû¶âØî^a;_ªôò¢jHåÇïãQ[lKúÁšø±­<гJéúcÍçÉ¢sÚì­t+EU‚®9ÜÍŠ ®£`æÊÀÈHú)ØhULe(ðÐØaåýb`ÂDnIØ0<6\#”fÚ6òÿÛ{ŸV”=ÑvjA´C–)"Õ«òV° øÃÔöîã0 ¿ûÏw¾“Ãc³eÞd' ’¬úû¨ï9×ïÿg™vzƒ#ׂý•!7*Þ=$tŨ µdØú¡çp®;ºøÏ,¶¤ )é/m¶½[Äî`A‹ò܆‡uNÔÉEõÉ–áÑbKI‚zïÑ óðýΟ͆š é»û´²Túà¤@>R›î>>~ÕDÁ¬öm˜d$IÆÆ;¾ß?Mˤ#Ê:€9 ”I]ïòb5H®¢c µkÊŸnRYuúPˆ4¨×ލ»‘j>í¬JlK€ŽìBÎ0»ýöêJû#mޝ]ˆÊb]µîe“¶Ðò>X—J÷É]â”Ô=„Ò› (¹—yW•1ꉛ ëoè+™ÇØ£jé³þNfb"“½ø!«­¸FJÏ­bb{’a¢=É&©V¹x)*Le’‰³y$ÊÈ“ÂÙ: ó7 å“ÌÏ‘cmO‹–ø/i=Ñì;mFÆÞ •ë ÿf˜*´›»;Ë©mrX›€ÍÎ8t´AÜàÆµ×²!IÆY4w¨AÑ[â¬U}˜`g{_O#’W×ÊÍßÙ¡ÙÆ4ãp´³sùÝ`¤làuã˨->EÏl¿Ï"þP.®»B§Á²¸aÈyðç}ÉZû÷+˜IIn5p!Tà89ÆŽŸ<ï^ï÷OÐÛÀÎÀƒbT×¥Ò¶I1÷93Zp>ùCWÄgÖw‚îZÓ’B1<µ…, BÌ{³^@ NOlc9Å[K%£Àh¤:ØÇÊœMŸä¥¶‚þ·êÞQ·Ê}¥Éþõ’©!ð÷¥ÿˆl‚Ïf—€¡JQ°š7Ï|ÂÁàáM¬ÍºÍ^Ò“Qx±ÇKõ×âÜêíMz…x—wÇ”ªqĤ/aÁ)bDPVUs}ª3¿” £NÏtga^ý}¾æ ü—ÐBPÿËHyAì!÷9ø|ÍÜ»S9à·¥CÞÎú­ô€Ì•˜åÏt¿ ŠýYZ—ÄN(ïÛèTå>X¬:jaº"°{̵}œŒdåôj Fðúø‚3Ì3ûGsUÿHyk²‚¿{Þ¥Îlà¬x6î‰ Ð‚³',^Üÿ‹´Æ4H,{ÅAí¤¥“=Ê=àˆ®VØŒ—$#Y9þï; ¡z¡[ÃJ ù Íœ áJhG©å¨«0‹—Vó~Ñ77˜©ïˆÝEÕb¹kË-É õVŒ74)(/ë?¯xŠ˜KÁ_x:Ë—»m0`t2C ]©Šíãû`:1å2¸^JQÈ»…ïªæP>N¼Úˆ¸*ä5„>³ÏJ¾fïÚá5š;ãæ¡ç¸¯ùy`±T>ßûÄÍÏ/ú3LØaK÷˜@8ãŒVG¶Fäô·_•0Ó'­«ãU<Úö@V…0˜,)T"gå(„]–sÌOÌ“Úû‹5ˆäм…g¬–LÈ)kùùäiêþÊ L‡cO›=öÙ阎”1o l1&ÅaÇR?gÐ>­ZWù#ù,¶8ªýSÁß9`'E%ßÞ—£y²³¾•²5Ë[äª<¦¡ &ÈÇ'¹.!¢¼Ú‘6£xíoÿ©µN!*7Ušù—#6ÂeßÖU¬Ëà"eD÷×l6ïqaÔúañù;ä—Ã< VüÈÕD<‡HÕú£ ¤€: G‚·ž1\c\k”—Ñ7§Î‰f×µ¦5’;ˆ¤X)á(”ÕàG/_­h]†€lßdâpš¾àëJ«§B:þXEÜ#K5¼:úYùO»vê%ÄYˆßøýF—ëΧ†Ù¹{ŒýH±†Ô «]Φ§=&¿ë¾ìlÌ—£Ø|,KPOò{x§Ê4*‘¢W<½‰¹®£ù‘[߸¤„Æ[ØÞ²÷ÕŠ(šÀW¹O¸g b˜B!°°l‘,ƒêJ…w× ÎìöøZŽq¾•?ñ¥¼fÜG(vï-­ÐZÑ*¿¦ ÔM¯<8$êŒõHÖßÕçƒðïþÉ(‰] ÝKLVQúØXJ<¨1€÷ çÁª•Ÿ×?€/vƪÕ$!ä0m’¸·üÖîT§7¤U+Ê ‹ÒÙ}¡Æ(¥·%œð=¨7÷s'ö^¼ü&’ÙLbïs™2èDiËJ»w7ñè%¡kÃúQw¿cÕ¡y›ê,ùM 2sOBªÃ²Õh:`ј£ö`èjõO³`Ë¢fQEà]‹¨×Ž(Ü0ã çMlþ…fþLhcxŨlÛA¼’úRM2«H"Jޱ—fy×û2"+ÐqA^‹ú»i8@—o²7ߟ‘¤Ü|z?é´°¡Àê2Ü]cðA,åí¤(QþùÔõqû"Mûÿ/ÿ¬w²LN˜–‰Ôö¤ nC€‰¦õð@—bð’}Çè yy·Í‚[š_DZ}Z÷À5ʉì ™Þ±–AéÓpMŽÀ  ']Ë1F=,ß4ÐåEàbbGÕq>äðåPþk Ö'-g¥N}ý¢Ñ»78rE^;åü®¨>ÇÖ»iYR+ïÈÑS›KQñÖK(Ý¥“¾åír Vm.ZBæµ^Sø`s`.ŽŽ;S#‰uúêW¤bPJáG®2¶¡ÕºvÆ—ª[Þm=Zó~ßG¢–•¤£ð*­6¤¡ Eu§á‘£›‘Z‘^­’°ÌÜïPB¢7™«͵|¸å{´8ã²vo1GQj[PHµŠÙü·É>L ’BL©“ƒÛMéîëÐâjÛ®0[GQ£ZA¾`úÉ ­ t?¡½æ1 ék®R7ô2 µâ¿d”ž÷bsˆo ÊplâØs“QM3ý\ή«y’8î5Me›8tKÓÑëd­¯{t·FdßUúç<pÉ×B€]$X?—ÁÄäÜÜ\œ-ƒiFfÚ€›”žð&å½À…•frËáÜu•ÁÑ8xLéFE拸бödÞÛøPa»…zS^ÓïGêõèjK…·§ÃRUãЮ&öÁÍÙ%U³Ÿ—Ä×Þz ä²kýE'ìŽ 8 òíÑ<¼‡§®á6CTIMR± .E{`’µŽa.¶žË~‡BJÓÀá^ÕÁá²#:ÆkßwfqC) dï=S´  „¿ß×h]+ážD.X^ôv>õ©ä˜1¿XX¬;bJÜÎf<Ÿþ/€#0oÂãa!ýÃW‰ âut]ê7R:‚bþjp…„– ]ÁqÁgnh¢Ö”¥I3)«ûê¯ãuè¢EþµtôúcŒYÓ®(óOx ¢º2rcˆéåîÕDl§q@ÄŽü”´êN/îvukã[†‰2R»{Á „aT`LÁ´‰Š—‚¡a%@.­¤ÆO>£*\…Eï´'.Â]NÉꢴOàe¬yø÷(Gz±|0é©©üjÏY)t±~Ä*"éÇØ0øËn³ã^ΆºŸýs8™ÂJFÑë7ê“Â/Ó)ïxd#zqU'=wtզ廿ßNŽeerHV—l/2µßœ–”¤ gŸç~n½û. h|}*аé±ÉBb¬ô}Í™;»üEÃÁƒ½-%ñ§”Ý`+:NLFû™ëˆ³¿G*Å©´CŠ©¹,"ÂV-eKùarc³l«ž&!m-àõÌÇq™DƧXÐr<†ÎÂwýSüö8œÔ]Íó#541ÿ*”»UÁ,ባ㼪÷Žô4d§ =jØG"´Hc­=÷ÚA[!ÿU—c_’+ô2@ÍCbÛ3à/É• Õ?#¨×‹æŠvŒQ$OÏCœÉOj'˜F\<¦±ÜdÜ ¯¤8ˆ ¦v安ONü ŽG¹TW •ÂýæY¼‹çÉÇŽ åê£BÎï3ÀbК×c·Ü‘s"Êໞ¥kê›õ±#- ÝœèÁ 'È×Ãȼ:Ùi›_Ãx°#ÕéK·ö3ˆê¹£nõÚ8™$<ÿÇã+ ìœÚ‘*ËÉûCÒ9ê_y‚-Ó3•:9ƒ„¤ÕÛ4`Ñ1•X#FŸ+rHoí?››#ÒÀW-$_\½|.9 Ø!MW=À:CƽdÑ'Äú‰£Ý¡,,­°'Lo\Ë.F üÜ­ÛpeÂF"“aóŒuµw”Ïüã½TÆúY·‡o%á¼MpŽ­OÚ œ$¨|ö¨Ï‹„=DRwÏ;|æwÐnÀ±œâ·¤¼ ݉_TkGBd] ŸåF^¨&8‹ÅØðIów¬-þ å{çý)VW'4]S Thg“]‰ÆX¤4&óË Â§„n XMòÀ%kq§¤®½küÝЄ–|"˜xe*•·|B¸\ÍÌê}ˆ$Þ™ ·³€7R‹´Së mÑ^š“ËdÖ×ÇV•Ê ̀²DëòrwÉò eÄÐÏkM¤øò™Qo2í+ëìïGnq°û– KôôyläGe­%ÄRi˜Ã$+Ó‚QMhÜäìœhZä¢Î<¿££wë9B²ìÄâË쌉ñ4‘i"£";øß< Ív§TSpõ±iùÑUú¥Ü°tÍë° Ê˜L¹ ¸Ü¸›þ÷ ³F—Uÿ?Á1ì>8r€8MÓÉN3ìòÌË]+¶ÿt@ب÷¹U­¾­[Jnß©Ë;¤?~d¸îfA5nÍÑPâÜÃÊTC}¢ëÄÃp¹™•ÊÓØ‘k±z-ya2 Jõ h¶/jy’%ù¦*%+¡­AeŠ Sât'®LÛoøUÒ‹y—戋x~ï‚Åw‘‘Z‹øücÍåÙ$õ:ñqBÃíJmÁ^'†ÜÜ Š=HŒêü#:>8èv†ˆPΚU°Ò-W&ÕÆ1T÷êµÁÌô˜xÇ-”žª[+anlÕ‚å¦'ƒ…Éà,ûƒÖ¥²À€€ÔVŽª‹ªGš“r³ð¨£®D(zè£ÛlÜa‹8 ZQnY×Q¬±åþP¯MB^}‰’‡KÊÎC¶T\Y廵ïZêæ VŒã ˆgè êF€½]©=»¾ˆÚÊO’Cg9ȆÒçe)’^ÙG9Ò IyáÛ5øO42nU–ú¢†y³Dô£ƒýмL°\푊7‚Ã;¶£ylÉòFÕëÂEèIcöì2 Âñv<…g^Ì«)aØžAŠ[Û¡vµßkÓüÚFß;–~÷1 =§¹ø…,¯/A¿¥¸°¹ƒû„þµ«µŸTŒ q+'ÎÐÚÇë+HÉDÙÞg@MP׳ Â=9—·ó@s†C%#‘…%ëD’ë!‰²çÕ>IF*÷Yà I€@bàcfÿ8ÍËÞÛS¦XI)Õ¯vú¥ƒ È’‰$æz~Ox+P¼`ˆå’žÖe!—ï"É÷!²$Ë¡‚ã%.òôn²LÎ"^_ÿGpé0svGí3¡myW¸há–[ö¸5Å·÷%ŹÕc”£›bzS@ Ú4Ý´´¢D7æÔg]³òzX+‰4áÎM\¬a¢.à®! Ñc{ÛÐݪI1«î‰Rùm×а&‘'îýÝ´Ö‘¾(¿Ú5ˆæe‡×ÎÐahÊ \kÔŠ[×Ù\²ü1nœ¦¯C5Yܲ2òˆFŒÜ°],Òʹ­DÓ ÿ)FvZŸ¼56RI¯m{UòoÈâVi®žÙ±…ô}äص¥L«<ôéèñ3ɺø¸tú@ÄE !õ6Ë;ŒæìQm*,) (ýxûrºœÊ9‘·O‰q<´°“0Âß¼±à‰Nrä´¯‹¥yéB! ÜE­†„Ï[žG™Òþ#ï#‹ž†LžýHCœ-²jõ³o«)÷ /ú$ ŽûwáY…dP …6` Œ°ô›\¨´Ý1®ÛG6ª2Ûvû»)ó79>@ù×ñ–ìQ¡v{Ùþ/¡iM³úéÒISꈂn{mfþâkŒÊð„ÈFݨAí¶–f¸=ÔïrZÜY·îó±»QưÆ/ÖŽsÒÇ0€OYk‘4N,ÊÃyÃ1㟬œ5Fà€"{Ê:ÞiGaøÃâÔKü9†6ã¯D3æßF É•!7¤60ØÂôóÂTIÀއwâDÜËeËϵKÞ„½ÙQ˜þŒã¦H+×”¡Aù(ð¤p#–À-÷\†ácz¹7"TG+HúÕ»Mq”}…LJ:ë×5ÂR˜à¼0¿ˆÖB ^‘Rù°$øOŸÊY쳄 Š=òØ‰È Èʱ­É$@•J‚ÔX›G;vYõeeÈÕ:™cü,jú¾,x ½ª©zDs3F0²‹ñ¦[~iõݱÑã§lm ñæ‘mÔHx…¼pQ‰ÛWÜ*¸cÉ(Sý÷†ÛJF’ ÷oÞZ»V E´g {jH,¶ØÕ¼,rÔO‚4¼ ¼1~ÄòØ;yüh°À?.þßk èÅ)‡ ;Óu:ïÒ¦îæ±“6¢(”àîtæìý„ÞeH3oÀPy4ظ’Hx m!{ «„R-ó\ à˜Mű³· [JŽ"qõ µ´ô?276E=ÆÞ¡á nžÍ9ùeSíš‘E·¾„Dg·»öÑ|ãWOÔ[n³»kÒ¼°J¯.nîî”y6‹|)ë{³ zÄÎî>+¤M‹]ÛùdÛÂÙÏÀ䙞Ӊ#o¢7í–1ðÂñþügó Äþ¬–ªáà÷õv»†]òе>%Å;š“Ž²víÉqöèóY;( 9‡*»xy¬ƒZŽdR ¢ˆ›3ÖVzEûFïˆoâ$5öõî>ˆFÁß:¢Ãdª|kKã’Ú[Ìaµ!§ºxɵpÜm ç'AoƒOYÍu­ á·E«¿€[ùåØ3˜CHŽàˆÌÏié¦e^Š…/ú®ÌAV€v׆ñ¥£)gÑðvØÞÔÛÁj··>ûO—Èk>qì8™Ä~czÚó*‘;F†BÏ3t%`M{ñ^’(Óúm Í»ÌDŸRAw ˜b»‰gÑʼ lwëCU'µG² ãúPÍ{¯ÅÖ'É+»±Éz-…xµÉcŒáû•²,˜¨ˆ·ã,¹8-^…Ñ8Óô~Ë.9^V½òçÈó•´ Ú¯ˆ7IWÑ9@Þ,ò9ècµôi©Ôu!h'KùÛ[9b~Õ»Mçðþéc!Ãó®ùɹõ îFxF® 'Â&|áñðµÑZžyA¯«DSy€°qû·ïŠÊ4<$~¾P"Ê–ký1'G¢áõìâXñûÆHò¦tzÕ‘®`m? ])¾‘ªŒ <‘—Ð…üM7fãIÎs?Q¦z;Â~í‹'Pà¾3EïlûÛ4ùµ+r TµXØÄq7šŒÆü¥ns)k'òf”Ç›¶f¶¾ gÜÜ(Òo“cKH×ß³ Æìsˆ¿¥& oYh˜54l^ ~w×úVæ“¡Û-Ø‚c5}Uˆ0LB¿¾*%ÚêœT±ÔçÝ_U4ë«lÏwä~÷»vªƒß‹ ú¹yKØÿv«{)“w±ä¼ÂÖQ>ÅB0ñIÕaZ>Ë€‘H"J˜V„!”ĽžÎ QÔXìÆ”h2½[(ÉÄéV{çJ2Ü®YæÖ™7ã­céõæ{x®C¡)O¢ròØðSÅÖkÎÞèp¥ëy&’•íǸG:#¶#=^Kªø“(ªÃ8,â YT7¯ ‰/™™ŠÀbºÍ"id`¿î¼ÖH‰þkšâ‰Fm[(\5Mö6_FÓYã|ÇCœÎÀ}‹rQ#¦ˆz„©±Ù)2, nýFaò:u[eý¹M„¥*¬o4¿Ú®4àÍó¯)DDKˆÁVç0àT·c7ÅB¦7Æ#ùeTÐ\þCUA/àêÔõ_±ªc˜Ñ2ÎïDkÊRæ#éK‰æ¾2\R:ÉCžÊì>hŽP°‡Fp--" Jd):“Ò'ÛÂ,1k?ýúD-œmšÛêÈ7‚P•j‡×;.ÃÅ,:Š•Öâ‹fC”l˜€WÿÔ¢¡ZfHÙÀ8éF`ÇÊ·æÿŒWüý˜8pƒ£V“[_*ãÍ=‡ûPž~ŠÆ \fI¨ú´l9WI)A³¹$N,.,vÓö5]‘¢_ÈÈì®F¹³¿3kSj».–éI.Îò"]Å6"zOÖwDލ«©_1g›ê ¸ÁêÚÑÂöõ$Ù9‚jËyÆ|Ã9ª9Y§_À¶Í&£«gâ «ÁqÝvØÒÙn÷"䌤Óz˜ ÓñâŠAýHEì *|$TšUü½uÝ‚(}EGËÅ]ڷп+—«9oYÔ[ &„_ëÂÍ_ ÕP!#MWƒ÷'-¨ 9VÝß<|ácƒIŒ$+í<ŠUÒËÏ™E>ãðqfþ±‹Ì ,êçôM0Ýö@Së2%í×_tfÔÆ+}{êPQIØædq adY,Ënªb%ú*,‘×Ñ¡CÊ#sV!Id#s6Ý{L†q;áðhœë¸_ ţϺä;¹©#¹"2x¢ã ¼T}Õøj*½ÇÀÙ> {®R3Ý•½K ýHPª(Àq±žé#1xÊËij¾S¹ŒšÓ‹^‰!Õã^q®6ËÑS]wó¢îb~ §)‚ÕM®7² ‰öžÇ@UºÊgÐ7Žjª† ¡±¿ÃÿgÖO9ƒa„l´V³Q\Ú6›î,àm<¬~jx¨ý-WAàŽc gœ”«Èü¸XÆÖ°%É/ÙË:9€ºíŠ‘Øa·f ÷Ô4…é=·6„¸?>¥×Ÿ®|rÆ´6dº²]ÅÓtOñŠÖ§cváö¡¡!`Šß•j5ýŒs^¯SÂ\‡ùìûÇñÓƒ÷7GŽ(>Y7ú†²ÜŒíR*´ZÖ8Цu\ÅPÂÞ½Šj6 äD¾34²ña;×eLºÔ/ªޏô­¦ÁXuú×ôXÀSƒPfH‘DA߆𽩧QÄÜÔ9RÊ·Xœ+þ§sÇ1¢­Ö“‰¤_³xcTmOkÐ&íuÞù©·s>²ê–mAþˆé.Ø,tDdçN™ æ‹¤2†Ðc ¯upìFIwé×ÔòN3‡-žN{$ç¾’ÐTôþC}8áü½Ö”ÀtåÐût @,žÆÛ#±mæEar‹ÌFAx®ðŒÃAPPw ’copϳ¹³d-ãGž?’Ã}{¢!Êm›¾•4œ‘|ök±Ñ¸dª1ÊHPx!zåW4@TG ¦‡1n ô¸Xª,,•“ÝýsÇçI\7,IèCóú$Y[¥ȉ£çZZýÁå¨6 KÝà“wZNÅ!¿à+D2$ªYZx¤2ÒÞo@v€Åµ‡þ9|êðgõ.:Y™ç¤Ûð™S‹À™øïù HyÒþQ Ú7 w¯ŠËmÒòÝ_Shcµ™¤!ÆDº'Ô‡ë I…Êh5ÂÃq ­îh¤.§áÊ•úï½]ÀËœ\Á¼$ÝŠãQáQ¬¯³¿ÑNÀS׳Œ¹ñÚSd~^—„‘5:~v˲èB{«e-ýáè¬ÑrÅ«¦`i%Ðäïàp„'©žm4?#ô=$ü9DD˜g]êʳ<mwUÛéFcÃÙWM/R+Ù†óúL¿š‹þ¼æd”Š°Æ¶ qY„A[Å’;q#Š=Fö°ãq±¯Œ"Ò®å˜{ɲ;E Oq`šîÕRºèë=ìѳÒùžÅ“2“ލ-m÷–™‹e:Yt] zòý™‡È¯¢«  Ìõ(wÔîçKͨ(×2UKlkh7ìdêËb¿² íyî¤-b£›ýÇÿU¸HŸÝ'Ó€LšŸ«bPŒxÏ8ø1W0å•¿;µ]èèêMÇG§Öâ@œ—¬fÐõJ×BŽzÂÞAf‚5æÁ"±¡­ÑG${ÃÕœcð¤#•ÐýP T!SܘîJ°È0‰‚ñ¼7‡“‘x½nþ¿jɃ°Ñ¯Uè&ƒ%©”iO×§d»Ê°Ñ“¸&xÀ‘§–PÓÅ X¥¥É öŽsXeAaû* h41>·^x²Šgsljf?«Ò‡JŽ—ìÏ寡"—mH[®©9q ‹³k Ê ÌþÛœ4'à„íA%·‚ØQPÿôˆ ÎÞvùl&:k#~­Aèì‹m]Œˆ®'Ê´A!ÙUÍ\ÏïóWÐ OÆqYf€ï~• zä ˆ„ûŸ€!Uí§Y‚ Á¼µ­aõ»Q-DC“³!‹æ”ºóˆñ¤ûÑßq®´ÌΖhP—ah–*):¼ã<á• ãj¦°¥¬(ÔµZ潫xD94:è XÎË!àÖ¢§bˆ§öFûŸ§ÊHy©ô]å‘j|ìâ”ß®Ô ûœQ`a?:öú&Þ̶Düðx xµsázžoéè+V[Þh$a8¬?Ý·‚.ÌÝ–òDZ¥’ä‚&/éTk½ Ó{k éž Zc, 7©Äù ãK ï@¹LM´(Q—0ümÍI^=ÂK¹ËAµ¼˜Lj›Œ÷>ÑÃèKP¢‹' Vç]¡u÷E‹C4„ÒlíÉœn¹¤ƒÞçK¢x®~I^)Œ¢×³`±c_ÒVú)WÆ»áÉÍîîêÈ@ä·1³C‡hjüýÓÎBSìWÿu>z|ÒVïÞ±z[ä½@6ªZ)ÂRl»ÑhÕOž+X)|‹¶sœrúøOãÅÞV"C@Í*ê ÷LööÔ?Y±¤:ÂïÏ–ùã…UðñL¹žÂv†¯so‘|UÎaÅ%ã”²Šžøˆ&j/xºWd›nY¦E¼ÚÌUÓßHÊ>)é'R(tÀ·?ÚµH7‰ªíçÉÙz«9<Àla*±“Ÿ¼ÔgÛú–à•eÚ&Ũ'TæÀ¬ˆöÙ] Ý¡BˆxC·B^+ÎÕ-…@±TyHQGA)!6»‰ó²7,f(¯<0ú"F<3ÅüSJÍŸø¨†9ÙwT©_Æÿ…yrlKÏãR$ÅA*z|Û±¹¸MpgéÍõ3Ž‚ÌŠ ï<+'"ã%· Å!{ïá“¡Re£WɹŽOñëó%NYÌöè—&½-á°MÎ(‚ñÐa…°?lC”»hò]Xþ}Òž¿·âÞäÒØþÄóVà#Ó¹6 V½ûZ$ïâ`¤à§ÙøYRZI ­]¶uN”µNs(—Px<"y >*·€Þ‘fëeîŠf6 "T”Õ_%WL~Âû·Î_Bg,9 ÚÍɑ孾ùÐnÈ!,4Á!¼]øçTN÷ä®7ëZ[:2ÿ9oWFþ`¶²PDûÉeÆ¡·¬¸>úFÕ²„æQ±V††!ÿG'»T±ü×a¿$ÈÊ‹wà sùﳨcƒ¸<†ÂáwN{r×¾’Àë6Ž«Íã·8bMŠÑcdÕ)ô<1 ±Ê%˜ôÂkÇÐ0-ãož^ÁyI¬JV2µoUŸ®¨ùšá2y{`¸'VÙ4Ò"LK¡½W`~[M†—iƒín­ß¾ŽQ/ì†È rÊ× ±C‰u¦6§®ö«Ü{ÆKç‰4Dä­ÃL m-Bvj@yË4²áçÛð‹u[òfh®æƒÛ*ŽHñf~¾Ô•‘sѪT"õñ­<º•ò˜¿Û‹çœ×Ùðl—öûÉNIÆy`€ïïÍ]Á&ÆB˜ qˆÉPytÕ7dɱ²ß¬s¹òæ’]8zѪsn „×ï’÷ôúgD)x0ý*tþ¡]ÈHAŬZ!Vnvøÿ´Éh«OH$æ/òþzˆÃg#+)Û 6éÒìeW”6NÄ_£?÷1ÓOÝ0Á ý¡¼Óª¼È€½Hê$ècD²Ê¤iò‘Æ|^ω-ÎlT©²g»Äß}†JcöçœidF(”5Üv.pßaBßu+n€wgz(LªQöZÿ,Ûõ.š0>¹¶y„ ÍâÅ6Iþ…û x–AýÅl­Éß© «õlZ ÆfŒ}ôËZO8MiÙÓ‘ÿ’X$ì\0«[ŽÓ•ðv'êË)+×…D1²Ý1ocÜĹt¡WÄ€MÓ?ÜãSÂ+w±:ÕHª£Oœnü/ÞÈ|¦s” X&ªGné,é3Ý——qO3òbŠ·£Ì?\“fn®¸ˆ-¼|©ç.€7•Ã|Òeóe¥}Ý]îë;hFÖ£¹ÒwÛ–žBZè^}¥­EÌ<ä¿âž«Ô–›˜:ôªÜ™Z(Ú=˜à­¬ Ó/XkíRéÕÎ]KKv3¡“¢]oiƒírt8ÞïfV¨0f¢‰çYÀð ûP=B[fð`üÃ7€4'›2K0|4å#·1Í´ÊR>òëd¦çˆ(1ÓQŽwFuÔ¼zMHFžFGª©-âIµ¸H) ˜’<<<Š(º^X%/ü˜6.͇Üó`«Î›kçýµ æãÇn4øxœZ0ÍÞßz” nÆÎ4 Ÿ->|\Uâ¡‹xL#¬G*µ­™z­ÔÜO{!"ÂÉ© ~Ž£‘ ~=ê^² LP»g€u–—¿TµÒ¾D­4ð²³x «ÚvÎÈ-‚y=Óý5è(|RЦ9;Ñ–6ÌV̧WŒõ8ýŠü3l\ .Oô¨¡…²æqw\yÛ`‡i×>é+×^ [ûÓ'PЩ("'Ô=\0“Ù •€8]_Ås?Ýúîí*k,CÐ29ôÛàŽÒ}’‘ýÔ›&¡ â®¸¨¦SÈ5q¹ï9f'ïáliŒ]ΰ¥$mÒ±(¨FÃ69®KãvVs ôþ yÀLj-u†` .M|»YFwÿ'DÁgó°`sÓò,¶C–Uü•\À¦¯OéypËB=¿Lÿrå¯ …5.qºÔ3a 'Ñô€Ö_Î µï;\õˆ‰ÉQlLAÔê5d‡ªÿƒÄêþ¤Û YÀ ,Z¿_x­’&ê" %NÏöÖ«,抃÷J>Úè…9…»ÌqR´g tzȾ¼é’"ǨÿJ›÷:àhaæähÃf Dõk¸ŽvYOòy8ì$ã`ö§ FúÂÖÖ"’†ëóž ÚS¹YŠ+ñ=6»ù;ºVCüÔ^%90³†T½ì¶8ƒ¬ÖÝõÂ2U|émn1:l[»Kû5™1°ä¦§µS²hW:n ñŒçFqo$¢È¥.CÊJ’ËE§ ·â Ö–ÿh8ñ—be ùE7ÛfŸqBͶG¹6¾2Æ9݈Or¯`1L~->J ¢*bŸ;DOIŠçB!…u±A=º9„šÆ;ûVñÍÙlF€7ºòmD*l3RaP–½1÷wk„/éIs@šÄþ:ûäÿÛlb¤¼Þ€èÙÅP)WÒBÛÍsŸãg8hþ _s!ñHHЩ_æ€YBÛÒÛòa.ü¦8OZÝú¹¤2¿àc¼ Ю_@°£}kÜNq½¯Ï4¶±ì©¡|ÔL·×ú±Äº‹Hå“ÖÞC’5Mª¦ñãUt·1µÓ—V(&¥ÑTÝg|aó¡ä±ôiüÙ8‘Â|¹£%sšµôóFTšãM|ÕYÙ¤Þ#xÅðY«´À Ô9ó%[ÑLšÆ½î‡ÏÑ{zŠdõÜß7b:3‘SOIÁP>ÓL™% ÿ6=~H´ÎMPÝW3’è.)——[_)‚ í$uçáÐt‘rªŸQJá;ç‘Kâë6õÝHáŠïÐh·N0r"LÄ›öñz¼r£’R·tÝ!ü ‡§ÿvNýáý&¨8tùyóÔ_½’â}‚S²âãRLp/Ά£å:ùoÖ‚b,ˆz(ÛT¡|‰-çÖ“˜Ï`A]ÚÊWæØéÕU|Å|W–ãÉí­apålÈ}SÕ´âjšæ'ü˜Ü±;7KH&‹˜.Ã’[Ñ:&Ëq)‰úg8¯¸ÂÝcµ›Lç½õ±œÖ¿ ³â/É¢-½­…ÀèòlnÍnS‚ÊQ¾ ƒ7AšÜ—òi£8¨‘=mQÍ;“§~SG&¸Ü}ô“”½cÇD«„Ô]·ü´hDçÁ-ñÿ+_Ót/ ~óF壳†’-ikY ª‘nÀda¾‰"B»­WÙSUSXAKÛÛ“ˆƒ÷Ò“¨·¾¬Ç;=Ã&N%p¨]²²ª±4XÝ=#/c­ÊlÖM×;m®õO°ê=ü8)w _Ãà ìØb¬ñ™qD™.¦GÖj+ÿǼð-ŠÑq KÒºÕq›–o[ظ{®EîC†d†ÿeØéÒUçÎóâ®Æ)€”9è)ˆòÊþÓ«ëó1Lðºßq­OxüyðW!‘lì¦OM_L`T œy½Œ1¼&æk"¥Ð‘¹ËÀƒ²KHßm®ðñyFó•ëͮܡ=%Ä!âôÔæ˜| tRQ*ÿÙ¨ËV~,ú¨Ïèt?} Ê{¾<ò‰[z†6ö %B~p-/rU«IqaUA%z dj‹ãõî2ªñ³(à˜­nÅØ 6z/\}¸ŽÖãWÖ1þ é<¼ËmÍPO¶6›ÓžúyQi4šµÂIÇm»„i—G 1GôooR—Œ"˜œu©ÎûÛBàõ]c6y{Ï\.¾³•(··'I <·‚È;;Åñ0”5׿C ૢحÆl™,̤ïH»‹¿jàÁÿAŸIß‘¦¯ëÂã§HÚ ›ô6óïÀwk_Í ä¨-¨ F4²Þ8þÆ~KI?ÄÓx1Τ*Ï”Õã|¸IúÕš"J̸rf’6^~‚µ7’!“[ó=Ͱß4ÑNÿ-vëR< »ok˜å6ÒìÆ½H“ Õç½ß®zí…p8öZèø˜?À¶e’r1L‹ã[‡Ow$_Ÿ²¤6:cE5Ïàm#ŒÖÑõÅ¿¶`ŸûmVm)¯<Î÷ôYTÄGW‚ ï%¯Ä©o²r'h†ê¡ãÄPüþ'%¨æ_ÿv¡ƒ­—R6‰˜ÿJð–†·Ñ-ûîfÄŸM—‹Ó¡ñFÛôÕ¼?z¤~]9q»YŠ.~fHNãª"å Â%]¤iP¡6Z gTcܵa¿Q6ug3âCe4¢`ãbZzÔ«Æ6uorMòM .]2ÊRîAÝ)õÃK1û|¿UKŸ0ÝÛÈkp§["D‡¢bà­½iÆ>~ùà/"ÎÝßè ’°êýÁ†žO§pw-"yïQ]x퀨­©àíîñW©è,Ÿi÷§ûW—îƒÈòhBÔƒFôùáñ´lv$1ŒJOòÝ ¹ñÄ; ÁÉQq‰9¹D¼ç¾mqäðKL tާýYLO¹@1ÿÍ®ƒx.ø©—xçMãOH-à"ެvÿ%(û@òö|Ú©ØbyÕ¼„c†@È‚€s”UÏ… àCLw°xä{ç&HY°çÙ§GêiSJ¼ Ÿö!Ôï&Ô[…ö8÷F…ïI ‡šÏ~ØfÒß Ö5’þÁj&Âîê(ªŒÐjOÃáù™Û‹'¬€EL3t)4—)Xj–‡»7šÛå+@Ä}˜ˆA®>¬R‘,Ñúð þ¯2.¥àΑå÷Ü:Z÷8iC‡þêǯªÂ\lŽÌšx­ðÌλ3â"I±¸PXBßÔ{&r{ûÙÀK`¶òýìö°DªdcSÑ#i¾vg;d$§Âz„y|×EæÞõ…¤oå5 òC“Ê¢qÝñ/ï ËX%„vG Ò|F¾àËÍ»#­ÜeŠþ¯›ÿ­„„…ÇÀÙÄ6m·Póàq§{" ’MfAž“Ÿ·dJô ©aë[¯IxPób¿Bÿöžä$fï#@â|øõ9†óñ¿ =F³¶ÎûŒVF“À@‘†ðÖfd´2âà î÷uò¨Êxßî'ŽÁÔÅ*×´Ò¿Réåv]÷-X«V4¾-Ï÷ ^þS/ŽU$êŒ )õZù ãŰ½|cÊçna<``BŒ¹þUØo]ŠŠÏ÷s~(¯rÿ¬¡A—â~e¯¸µCÝÂl&†á=À)“w¢*ž ¶-¡4ï›i×neƒø£†ì-[Ÿ†°énLAª†Ðœz †ßàÇ/ù(}¥ò^ŦX4Õ­MPZ 2J›¯‹/çAiÊa÷ý.hn]bŽ SÚ'åg&ÖËm±[qˆe1•×E;6wMò¶È•˜ P¬F÷½çVL‹^÷R®3søˆfùþ»^¥¥šriH»Y¾aÿëõæÎÎ3mñÚ?yM&·zŸÜÅÑ(¹Š/¯âW]ùr®ÄT 2 ,†%GÒ“o‘n¢=r¡˜°ô]«àòmÒÌ3dþî:˜f^ö0»$eÄ^Ö‰(”<™á’ `0]a;4çäŒD6$EIF’«ë[‰@µö ü 1Ù3BÃLDïLÍi”6¦ÎçE× í6-;SEhˆ8~Þí/ ÄäSVLçÜëÛNôÕû7XÏÛýe·_-ÉÉÇ÷±"ç¬/çRð›– Ãâ«|ÌÓ° %³ ?–#—$=‚˜¯Æ´îOÃo^ç›b)œ5…º·rMP[Ÿôpý{w*A1t,§Õ\ͶÔ|'¨º¨ý¬Â=u’߯Eå/«x+W }Ïr*åujäïæÕ5·Mñ³{~œ"¸@¼(ü5æbŸ` ¨òÅôI©UµûØvö½¡HW6’ðá;”¾ß©³®R㎦Šè`ïÔ°$:7â’vçå›k¯ ìkÕ!€£“™Ì\ÅHˆÀ£…"•Z¥aø ³Ôz"Ùâ…÷ò\ã“cw¯˜þè…ÅZó¶7œÌ9hH žÄ^ø 7 @¢\"ù<Âê1ÂJÎ zp[$×·äWxuJ/™j“.ºÝnÎÝ8¶¥¸ÌõSõöÛ²Wú–µþ´ì¸÷Ô÷!pÂeÉÖ[r¼ê¤ý<¹ jÁž¡%=ÙÈ{zÕ\)¤Ý Ýû ¯°sÎ$7w\ø¬¢•·÷ôèb½ï<6ó4—škÊ-³äÄ6yÊá茠dEQ \ÕQ5CÙ— n>{jbÉßùyâ9³€ô“Y_ÁK©\³ý~UTŠä-$=©²ý;áQC5 ÊZ2¿ê»;ÇÏê[èq´ d‘ã™Ñºø9.ZÍõ4Íß?Šc/lQJ „þü$UòA:Ú+þCm¨!aK¬“ sõŒw݇ ±6Z±@Ð ÷Äåù9ÿƒÑÏ`Œ‰M5Ž¡žâ ÙÑn±ïg>zH!«•ÍUκC”¾î²p&æK‘8øèÑ-ú• J0Uf * žÖë i´We›BÉrõ{Êú|<8hñûm&g•¿º&Ð-ê<˜¬ì ·HØ"$—F,–6ήø˜@>ׇ€BcÇ—‹ÀÃd¡0yñ©×såYm=<+b<‰xŵ_{“8÷jÚÿ+‚?JÇU® ÚZ‚nsóQ!h3`SX?AÖ#Ÿ·²¦=€3gjåÌñƒ•ÞÓò/4pðÐöM»tû.ý¡Z‚.«ÞFó®J-Ôƒ1ˆE¾5¹“éË3ÔÍ €sõt`”)€/xÎò?b/»À~y6¹”4Ÿ "™xªgÄ<æ«„\Ž‘_¯àˆ´*°°-ªÆÁаpý+r-·0äz«‡¨Ä×y!ó§í!PúˆÒ•]]<° ‹ªÖÙ£RS$\ÎZ‡ö·úûAÓìéÇ'c‰Úeá(x*­z ©ÓØF\QÐtRÍðåäâN+‰“›”—› Q‚œüT3¿ª¶ƒPN…«†…\Bzàé(ÀÈìMu¨Éìà¬I?1Ôã bù¤ï»ç‹r ÞNù^sq 2SGji¹Îrá–fãÁp&³ÝŽp›:ä——ðOë ßn,Ø5ÑÔPÒ³¦ÜšTP=ŸŽ) "òY…8VôÉz†y0ª%¥Üà…Ë©|òG”{ >Wä™B«û“yÅùªÓsÊÌ ¼gĈ¤²ä¶¬+-&ÜÆÄÐ b^[ÍõwÈtíGõÑÿk5tá ô×ff ÇÓUCsT{@õ6ˆ|S­LŸµ­¼{EÔ"MÛéŠÜ!Í]zkÁF”ܵaé$‹¢#Øç\`™™‡œm•r)¾è(ñ$SfúÓóè>8z§"°`>?ði ~"SUÖÓ·n©ó¡<šÛu2À­ó4uå+ië¿Ì`÷Û‡fÅT0C z»Z²“hŸ²Ñƒ—ð)Àö¶QŽê-/jÂÝ÷;ûQã0ë¼­FRR<÷mÈ£A&D%¥Õ_ýÇE .êpeÌ`žÓ>˜q¥£pCRq¤?A·Ÿ7»æ­Ë²‰‹Ã!Ù‰Cß½UôL¯/YŠ‚q5Fúeñ\Ù÷¤/¦ëÒE~ÁEßD."LèŒË‚Gþƒ9AÁUZzƒ_<òQU¡²jBúWé4¥òÛN´ªé>t/" Vh©ê5]8Õ{÷×Áv(+û+åúar{ýܸÆ>¼!MßèÝ…zµ³¦u"kÈHž0?ΉTM{,~ 53”’ž½ôæ\åÖ0,¤ÿTVy«¹íã˘ã,úÉ· G¥Â:ì@DÀQ§{BHÏÙõ‡ƒ1Ur?Q—¶5ržè%3G–;rk}yá zM‰'–¢ïMhÿ¯àã³…Í>ÓN\ íûÈ’{›j×sÌ™Åä?rpÿ*¦ñq‹Þ².²Te2ïÓAèËE‘ߦA»ôe×Þ½i½ÙpI àVò/xc¬Ð„ûnq"Cî)ãl6¬º Só——Xk&8è1*(ŠHä6ì—@ßËH_@bä_dI“ìŸnTS‚¼ó§îN1ø×ntʳ™ø9¾«19(TÆs©\ÔQ0}ØÞ¢f4ÙxãE×gǵ­*¶ó¤¬iæéÖ•çFú@wh“å¡ðóÎþo–õ©ˆ<dÛ£”ÿLé„„fd|æ7êC“:T‚,CÌMFð·…Î¥’îPíû‚Í %Î ?ž&Ì¥·@Nµ‹QYá/k“m¢ ¨øu _¤ö™@ÁÈ\# ÝÀÁü¥¤­½qk…£¡]=Åíè£YjØbŠ‹dYðeÛv剱۾ñ.ˆ%5OE'¤i¼KÝ}ü?ˆÈrŠˆÅ5“¼N9'11¢þ]Ÿ ìËÑ<`w;0ÔÞ5Øq”É­4šc>”Ðj ÿD°ï0*ˆÿ¸I´x9€_ù{¬Ú“é:ÃG§™K‰ãgâK3€o¬_ªåx,t•ö¨ø@ G«=µ²fðV¨SÚ/ŒD+’ÑBД+´œ™øÝ#\žpmzEÄolÝtpFgü7MÓ(eŒHi‘m‹ ráÞæ¸ê˜Åu™Cl9 t 95%00¼±ß\dÊ­Yÿ0•Õ°êr/±.yëZà3GöÑhçŒÈ*щO9Ùm{`<(9oí¬çõuBhð™Ë=YÂ¥ZºÝ¾n!‚Á½$ó¿Jês$Yå2IâÞeQÞ{™!i%ŠŸ‚gä·¦chrwרs`¯£ú¦ ÔmÐìÆÓq€‹Dw×ßÝô€bé(ôSÀé ”œl)TDÞ†_`¦yqŽÇĈúB©Ã¯aÁO:KIjÏL]·!ŸÓ‹I?ÉVøtã›? Zi‘ßHÀ ©´ÆùqEAÛv'èó§YÜ!)çðf õÛEr@–Hg(Þþ¤ì:§áùü1=2~þ²mËNEʳαš»@9qÞ½vçÐÙ›œ!òWʘ /}<¡¹RÕÙÇÊkóD"´½†œ»õYßÍë)Þ½Vý]õOðM§Ít0ôíqí´Ë3RßµšK1Åîüžc7l·×Emä-«f0ú'ožÁJ““]ü(Ùc9&7¤L$à\ægA[)Üy„ƒé7hiæ3 ù¼àkœnäïàÙˆäâüNL¾ØªFæÑs.º6<û£ª0RœR34†Uyø+áG~ƒaÎ.e+¯vª!«Î.»s/•ï°Ý©6 ›ÜĬ÷áßò¦øŽœ˜Ѫ“’afdÓ8.ÿ'Û)Ñ`ðˆÛrÐä" 5‡‹{㨰.ü²›ÏQW8$ZÒ‡3ÍVMUæÀÁ|a%çóY@‚6\Ah}0¥›gü)êÕHµäž¡¥ýç·t =Õì‘Ðê°mb㹡QÜüÁ% õì]hdŒ¢–Y…2/{X1.÷ç!·Éó–\œˆØõ½Ž€jî.uúÒ–e«âV[4*ÿé`Ny¢#3P½…CýQ@åZ.)µçøq6Ï117ø[¬NhÒ 7OAÂm@áŒI.%!9ßHV]6A¶ÔÌ@Ú€þ‡ñ¹ìTm`8XjÍù(˳KŽ$C°~€¬ ¹&/•¯Ò ã)ãŠöp¡¥þ4ÞpÃj핇ü›Ã´–p—|ÄÖñ*XUûfÞF yþH™J±I“]µ2Þô‚ÚkPItï¥ð‘H1'òÛ¸âµwœÑÿ¨ÓÞ*(‡RÈ8óD† ‚Ã[ÿ€Š—û0xÒ,¹4%îµ a*À:7ýÔ½sé;•wÓÐdKr3†LÖ¡àëeòé©°v`–ipolù0>É =&¶HTKç.–Â]Ÿ¢"×e¦Þ™X¥0`‚­—bìiÙ EŠ ÊÀú3 |bO­teý¾¹}*_6RàÒ°_h]¯íBæ™<èãôXÆñt‹ŸÈ]À£2xïA~t±Ö²‡3e®ñ]sUœ+dˆþ…ÞÒ0ë±ÉÅÓ=ç\œ:C0;V¨—¿ MH#Ô¾Òáž½<Švù,Ö«&šrÔ6-nã¶m.\ö:è]bæbj±²Œ&fn^¢­Ò{>'„#ò1ñÙV\˜±ñ„><üÊØÛõˆU >ç5¢°¨¾uØÀ<õbê~8}ažÚ HYiÛ¶K[:¿ˆ)ݤôBkÊ’í¸_'ÝoN^ »pÙÞN‡wá/ìÝ·þþÈpAþY±ùWqdºýiXWãïÁüÞWeMê;—âÒ{§j&’cRq¾Cª j†[HY­;ŠÎdXÀ%.¬¥\Fo%´a÷`çÌfeå7ÔN¢^‚# ĸ )ñcjSñŽÛ'ƒ„o ù (ÇσˆÙÖâ7iöÄ,vçë ±êÿ™8]Yï¾;2{ Øjã8üà“¶×S–ZÅ¡¯w’cvn-yœݴ<ˆ (;²((KI+'2}é¤ huS¥“áâÖ 7Ò9x«²ða‡ÌV»9¸ûezP»uP€ùgÆ1´ëÁ’û_ oÖ¥Ùïƒ%é³}XX˜CßÍÒ #\«–(™ÝèSÛ²×25!Wñ3ÔŽÓ í–Ñk‡(¬¥4Gû‹áÆ1!iŠÄ%S÷=n¬¨¿Ò™™zøNjUå•ëÆ1S'Fˆþ¼sÿ¶öùQ‚¯o%–å° ~á]“ÇV÷×í:ªlÉ£¡‘F £Û¤Úâ+=´TG:€oýÊåOeñù»¡BQD¢³ Äq™U’ÈJk0Ìüì9 Û($ØÙ;ÜæCøZ MâX®L½æa¤xÛ+„­¨°ZÉ%w÷,$»Hò¹§‘"u-[VéŽAëƒt¯z¹o²òýÀo좣1ÝŽW®ø¿+‚)>ŒLîÒ&p:SÛ.( úS%À©_7—eƒ±¦Ó¿tOcE‹Òî>”wý´þÑ€Y¿—¡>éfÁï?r¯`IÓ¡Ò–ôȳ¡ “ågX(„Â>x Ékx rBŽÅ@½¤F=~O')2X â0Bô~NŒ™ðk‰ÿÝ·G²5âÙª0Œ @Â’óµW¹œÅ %‚>snÂæÁTªòô$–É\)Í£´¤;4¨TÓQgÿ·ooÎt$»/†Âz:;°—&cm.EI…q5É6ÆÌ•±u%X‡-q‘YÓ'Åòýý…‰ ÷Y:TƒŸDäÎd2=Ê|ØæBΦ¼S'É›ïˆ.ìÒ¿ò[e­ #òp¡5„b¹ê©©-ލ¥ââ ýñË-kOÝü?D>ÏôT1…—#öìÃæf¹àmoº—¸„½cN¡ãI­ÔÃqûæõ£æx[ô*;on$Oç“xk Ñ­Dó— ð4À}ŒÁ@[`}ZIÞHÚ ñ³ÛNƒ…[d(wc[i@â‚оr #M2ZÀy¹vGÍ`#w¿;ÞÔá«-§ º‚läw{Xü/…b|clšaÂ6%)T :ɱT1u(;Laîb‰½F†(·T/]¦#þ BÖL‚UÔpPœèȽìNàG¶<ßlÚbFŽÏ|"sìæôZˆ´`]ßôRH¢6ê÷aC–ã³y 6–~µ1ÜõÊ­%â“…Åjêøânf8ƒm!ØÐÛ¾ýHqŠE‹4H¿ÌÐÆT×·ÖY¤Íä.K<ž:ƒ:Ö¸IÏjJ lÕsoVˆD=Ê(ǽðXA”|qª/æÍ¶ZúQx#Uoý#¤:ur˜Åtµ(Y*¤ÆuX)¼køa‡ÝÈÉ[塾ŽniMOÞXbzˆzÞ™‰¶I¦ÇJጌRø_o“d €Mîßœ!U@tU—E$%éŸ{ käH ðÑÖý§Š°N¤Rþä;¬ãÝûüòN©MÉÓDEõ£[wwÐŽ'^ø¯Ÿ\Á fP’#òöï9'*0~v–Ö€ì3£Oß•ø<šÝGkÀDYÆ eükŒž}T”á06v½MÅŒ w^÷­†}ËØãFý¸6‹[w¤í¹ï™?~-AICïQ€(ÊF´•_‘*yi!gv褼±Cd™3Q¶÷W·”À°¬Ûl f¸ÁÏ,óÈv÷õÏq –œŽ @€¼¥݈n­–hç¤x¼jþG4*‘ñ|‘‹íôp+G¾>ÙáèÆçÞË„=$ÈÀà}îO3V¤M_¨ÈEä·­TG-i'¶ ´×`XFìYe´IûÝ¢s… !Rc›D´„× Þk?ﳊNøêàd!ÀsyPí~èŒø©%°CwZ¼åæ•R÷iuS•‹p­‚VLÓº"~xèw s'›GFÈʳ/}aQé µ¼Ë¥ .à|4’÷%¼”{.œ®ÍXé€åEþã+¡ú5—®7má¾qY.L]’xíý¤r[9J_¤óé¤ º}¥™ý¥­Éáƒ|ߨÜWÀ‡«ª¨Ús´žcMƒ®Ã(Ê}0(Äà&¯;ôïϲº­mÛËK!—ºÙ=T¤€…Ÿ<r1uç çËØç’¨DŽEcÏ”,(¥xÆ'iºæ¶Ägþѵ¸KFÎp2é* ½ö¥š`ôKaB¨Gö™tÚ»@Õz`¿ÿf«°DJÅ^ØmMhº¸ÁÍFÉpȪ³ð[çP‰ªù¦ü´Ð=w_Â@Ðc¶ÝÇ‹üw5µE멸uîgßù¸|Òú¼ˆÄªeL¶—±µncvüÝ ÷a¹ ²Å±Û«ÆöìŒh=GqrRSÜRò°k^¤ÀЕ¨¨%1Ð]§äéâ'psȲà•ì€뺋U>=}›ÔñHçBAÃ~s¥ªXá¢ËoúŠÞÛoå½"sá$2ÅŽ¾©:µV@Š„*~ W« '×w³u¿â¢ð\áÞË:¶ì­ÿ×=º'H{Æ€—ÙþEòŽABƒ ÿY¤º¨¥ÕÊõËzµ@ú<û­”Ê-G7Gµ"ƒ½“/7ÒÃ/Yrâô€m-Ùqt è-…w™§Î,Êr$…âvd´`]'¡;ýoþŸø+ªêj„B1›©ÃP¶ðî²ûÉФþ"wÿUå |,’èà-,ÈZ­Þtj¬PåÌ=Hu˜À)׸ З&ü}ÚtaÐÀÂ(d¾Snôíð´sîü ÏX ‚ÿ:òóSÊAûø ß‰©·­½Ô†€™îáEÛsØô’mãT¥§-¼«g¦Vl¸«'9[2g±·&céïÑÜí´‡iè)AëØþ¢ï¼0|Ê+¨ŒQV¸ÃT±ñQ…^÷ží.ÀĤDb;º™Î›mz$7)Ì7G§å%„gY[SáT]0°}®OÚØ+f%—úTͤH¼š¤§Ò’IÜnÉÇÒè Á:’²KÓì!¼Ä9LNþ¶Ú-ú´Ü÷Çù£ÌÈý§Ê䀩tá–”Y}é¥ ÎU Æ¢ Tã³Mª@ÕÖ˜ŒzGg¨Ê]EÚ%WÜZ挸Ç_Œ|à+Pôâ†ù‘0§jŠJR3Ëû¯O½Çè€õÙïînE´Õ•F!r‡Ë¯ã³:ÂhŽÏ°ÅJ.Û‰þï\ž üR̈ZÁQ¶`ÃÓˆžÌÓZJ‘†a„Ó1ØX#·z‘äºÖ !˜“@AT§X’(¼IYYËÙ¢ (5øÆãoýiš¨pb™Z;€¥âMèy¹+Y‹eb —ÆhàËÃJ®2麭; ÎŒðUd·2w&0'3†'ͬ»Q’#”aõ4ë<œ•›gÚó˰ÿÅ^Èoz‰üÿvê«Ù>í•S8ûÏkg̯mŽ5väàc¥ÌVxk•G1çƒç,1?d-ŒT1JyÝ,ŸLŒÈ…¦WÌ¡íŽ=¥îàgÜ8‹`)á´M¹¼±´h²ˆùðgÙ=¨õètöŸgsi¡ú\H aÈÉv€ò¨|ãJJ}M¶E¤)ÿP¤v¦“Bl}›€f'ðRÄ”oAå}¨B¢†E@·™¿±9¬¨£ñ-Ú‘z5ÞóšfAÔ™”o¼/v§Ç,{Û?Ä8ÜK§=*™“ìS’𹡳z´`ÑžÛç©w $ôXÚÃÖr,J¤Õ ØÛ÷£¿£®H‰>z’òuÛ2=;ÆÓí% }³MÊÔZ>‹ÐÍn-Á!s§ñÃꂚ}?Ñû¥{UØIO§Ù)WOEÐ]‘@-´Á"ø(w†8xVÖ¶5†d-M™]Æ/Ž˜Ý}ú]zËN¡Tü6P)D.ˆ Ñ[×&Çð¼“óu‰óÓ4sºýeÎ^m>ÈÚiØÂ¬ƒå•s ë·‰ n s1(.Zƒ>Õx øÏãÁ糟ºi­4sÿ6g}G‚¯,’ 2îZ~·îÜÕâë?EZõ¥zóŒÊçRébߨñJgŸçö\Û5« 1©ñ$æO\è¤oBTI±»t`p9,ä›wf¯‹IæN¶ÞQÓBáÙ`Íƒ× Ù ää ï…˜÷õ²¦’qT^!•À¦“ŸåÓYô.”:çé-þ t×ÄÚ"G5~O¸¸ù¿ÍzµÑÉ5v€ËÌ”¥]>g<ÿÀê`wH:ðý¢ìdž| M/ÍÖp10´ŸÃV €ŸÛç¬ú±theØÎžqb?|ߥÊOáaÐæÚE|€‡Uxíêâ|Kç,Nö ?v‰¥gÓ¯×eÿC]‰—iºjVËLVɬû‰Ü ÕLßm¤Õ©qŽ”±"Ì`( Ã$†1 T4^fJÄÝbŽ<3ÎÒše`ãA°Wœ¸ìöZÑ?– 4uß›æ{À›vÛ¡2u³¤¨päR†­ÁýËÈQ/CåÐH•Y„!>,Ðb8sÛIdƱÉ'Á/y8WoÌA¾[Êww‘7DKþœðýCvü±×~ÎÏ+¯¡|¿ÖJ#ß–ø2#6ÈÉ›ãU²:]’‹¥d³°´y¢"ßVVaõUó?’ü\ÄŽàgßËUÛN½Z÷(VÓr:èÙoDö8v@ê@#ø½„åLÈ663PšCþ•7Ôí½/$uó¾$þhú"’­B~rØ8áúœ²îxWø/Ë›»èà‹EÂk(¹­­ÿ8Žeüþ¨•qïÉ%ñïØðDxw}ÿr ï½!Õ®ÊëÀÿ‹¨yö‚H[Žûô¯vbeÝôd®\Âl䜙jÊž(øt=ЮûÈÂÖ3ÉîÊW{t£-µˆp1¼½èBxÝT¿'ê´®ßÊMÈtÇ‘Ú%91Z¼ò˜B#HwQ d³Ë)Ðè7ô: ï†'iÐÄPµ™¢dmà&Íw?æ­«wl³A‹šY c­éÇ@Š;J/ŸÊ§éj7øš’Ïã&Š–«Pƒ*QGÚ©)åhÖP8°·–)P•Ëœ‹¯E‹3U¿F}37¶îÜ¥nÐQ Îi·¢ù¿­˜Ððq+ Œ+«`䢫çÒ%|ý4TiãWԜɘ{d˺Jïó2ìQÿøP†¤ØÍ+±V1ÆQ2|g°4ÓVIz¶SΞõk¦ ¾\OïÞ[Œ‚á¾ÏÚ lºï£IbV}@ãøš?ƒŒÄðê=%‰‚Õ_óS­c±E¾µ÷H”%A©³S«Â&"S ™ÑyJ¡#2ê÷c¨%ϧ}l›º$¿Ž’Ÿd­…Ô³\ høÞÈ=ɤ¢øÛT`„âïúqÝâÄ t0ø˜þ¨ [ì¡¶…©í#šù'Xïã›—þQeW=L·V;ž¨švÓΰÁ¡;Ôýc€5­,ò¿a±!õÂݼôtûzÄÆd!ÕfÕñ–ažhÃ>Ä×k™QƒHSð»î¡„Û¶ôL§7åò0òõó>–K£Á$Ää”sæ¾²@ Ô ÆRR}• ý+ZÒzCìiý“—Q}jÔ(SÑYÇü‘ÿ+î*ÝÚóm÷…0ÃAXÒùÀGMº¦:6@Ö-ôá’^Fee¼š«+§%cœUozQIþ§ º2œü(€Mœ*®6ì1ÖØêÕÏalÆ@˜±^ ¬KQPAªÁ"š9ìΉªíâjʲ²æþ”m/* ê>´‚cS¶pü#`Ú¶øhË—u |Ù^Ãfrê0TÃù«y  'cÑ+sÿ·Ç¿aÍŸÉ£P ŠÞAB+$Là-"ÈGÀz#«¿þê&.é|Áp¬Ú·?ñç¾B½ ¨ß Kx^sǤg6à æ‰Ôbþd ÝÃ`¿$ŽŠgçà¿z T|¿ δGp›!•³Kƒ¥Ö‡½,ï&%›iñúG­{«¾–ÞŽé.š'’vrÞÝ–ææì[wg~Ó‡h@/üeÇ‘ºg^;Õ)Âû<ßÀB‰D1½+*£ñ¾¨ØäL%¿Õd¢ƒÐÉŽvèô܈U’'M4µÊÝûnyR­å½+ä†)ÐN„Êþ­»oÓ”ëuõ JŒ;óð}ëÏZ€Ü:hSˆXÑ.1e@`: R$óZ´€È)ûÀ¾ø€ºÁ±¶hcë@¢æDÙgü•Š/SfRœõø•-ÚÅo³V¾tËnÖÕH㲆{^ ‘C½³™ñû)!X>Y× Oç^e*ðãK_¾YY£Ÿö$78|¤®¡GÛ\±ˆ(>Þ;›Z#[mûÛ¦±›E’1ÅÙ R¿7û‰ÎýÊåØï(áÙߥ“a>YI9;ôî‹ÔJæ“JÜsyMÁ3=ôjΓ]\¢OÉ^2_#ÉmŠþ³N3%´\ pª'@Ë/ÛYXÿÀ%% ÞB Üù[DÀ“þXs/Ç·H¬PúÍãá§¶O¿ q]ð3>柞" œj"S•™biK☢¯ÍiRk»(eˆl΀ÚGo›0eM±‡u ”¡íïŽHÚâ.¢õѲͭÉcqWV#Ö³‘±ðˆ¡Q›Bþ§¾™(#¿æ½(Ém[.ÂÞ#þ«‰þC~Ò“ªœ¸¿ÏÏ}¡åCr·ŠuàœK`9¡vƒõe1ÁÂ*ZÔnsÜyQ…{þ5U*°TVJpY!_f‘R»FÆEgør°àÊi2‘g ˆ1ã?½øÆT4àpÅ<¥fwA•9µJuVff½X‚fø‹<º.±>\‰EdÖzœ¾]FÁäG”vÝ~ †“Z"±(Ûà2ƒÌ g‚…‘‚Hö.0´ t³Á×eŸ]— ÿ¹"ŸÌˆ¹.ÔÒCFÈГ‹¥¶F®*ä´á±¡55Lȯ l#¬ÉŠ0l(Œ Ûæ¶'NûØf“û(:è«Ø` «z3d©Rû“;ó´Ü(˜¢üà?9;·ÕÏLÖÀÿ)9Úl”_X |ƒ%¦ŸZ“;aoô=]æO·Plr“ýÞ"ùž7¸àQ¼©×«¯·>á"Л ½¿^°ü0{Ú(´M{ëÖ¨{6eUË-mP|“àƒG„ô‘¢=äar*zº0oø†Fò µÄU‚öԬׇqyvOxÚaFËP“´VuÍ¿æ q{68zj¦xBÛç¡X†1n Ãx˜EÁÏ2/áJíu÷Ãj c„íà“kX ÓÝ¢’%Ñb}ä;]Ûawµp[í˜097hƒƒM”IÝÙnv$=kÕQZÝD@ÙóÚ ѵûÕœ/¤õXŠQs×á‘ÏÁ#†]{¢•_=LÇY³Û»§„°] £ôùá(oh %mn|I‡Bi§˜¯jU:…kQ®½ˆ÷°q`½;ÙºxÖ¦;Yæø„“Ú¯¨±7¬ 70;0ÿå 4À]´¿T‡KPÏàLÞK™›’>åÞlŒO¼Í™Ä 4±¯[“+ÿ8ÀÑw½‚ L÷&13ëœxp•Âdk]Îò?.·/ÞmwŠâÇÊ&© ‡T¾% NX†‰ëž’ÊTQCz1l¸¢r›`– 4ÚÎÀ×ù™ÖÛì–G —ðœq›Pö©÷»Z%¹F·²8 O«e÷ÂIÒ!ªSfY‘$㥱º™=v ëŽéÅ[mÃ`†b„ÔQõåïŽðø¢pDn1ÄÔBUñK”r†aØw½YÿÖŒ˜IÓß,ÓƒÃRÆçDÍc¡K·á˜wž±ëÆdê cXà¡ø*âSº/Š`¡¤˜X0ŽÝdÞˆ—æ:Q(#±UËa²¶M=&vX_  £á²M?í!㥙9a06-Ô¿­xwy6]‹Ï ÚÆjM9zAÝ!¿öÍ% €4éFQ™y{a•¥c‘äd(ÑV“Û~—ªµF¾ÖDÙLiÎÄ5Æ”ÁÀbiä“Ò+…E?4÷!”†æÞýÓVÏÏjº„›×3¥"-"Cº_>„_p`ämZPž3jCêÎÈÑ¥¥³çZ–aÁÓŠfrr„ââe¬ÏžZÚ'ñÄÔnô¸âÇù’÷þŸ8÷߈ŸŠ`ìA¹î~ðmÜæ•R¹üðB¡a)©ÀÉO%j$\ö!Vö$ú˼Mb«I›8F3®™Í¹Òû Û¥Š?qäaQЬù3»R²–ÒIÂ,ù§ÏKÅ>vÿZ"àoæ3Ô³ª“5 ÕÀ@’/ì¨X/óÑr1‡ð9ü¾©L?‰ÁÂÄÇ2Ø#œT``å2t³JÔÀ ª6”¡ZíâD±Æq26-ýQUÛαàÄ·¦Õû]3­E´˜ÚD÷Î(§†£^³;,®Ó—•7WüyÛü`l®¿A6k¿¨–£åuz&~m#Æ»'m»±„ΞºÔ*“#’¼z¦P,AP÷_ßCB»ªRýZ& µ_f¥¶]ãóA/¥2þK„SkAV‰dî÷öò|wo½®¾n¹–°!:±`´…Ð ÀF¦áiyô…šq‘¾H˜71:Æ |jÙŸ5¯ž‘Têÿ‚¿@gy>(´P,ý"„± (…!÷™4s»¤‡Ë|ohUTDÓéò.´Eջ̫÷ూK ¦½'{ãmƒ¹‰Êÿ(1¾o·«AõF»"S¾Ãsºz]ÛSyì»\›H}‡!ÔõZ·®Žà‡`7*ïX2NL°yZÝXƒQÑ^“ä¨`KVâ„ëýFB…);¿„âigŒu®’ R ã"¡­Ý]”…íê9Oª}üÔÇùo0(2)+V:<@T¤«KŸô?4¸]Õ¡+¬sߥ·ñ_+¨ÌüýÆÀÈ„ðB“#’Û¡‘n9y^OõN™;jéôˆçÈ  d¿›ÏÊ€ãñëþQÄHDŸ-ÚÃkØÒ ús2‚&È ðÌ©N†ŠÖ—mHbsx€?\¦û.•*HUB1lŽÈŠ7xõ–’dÁ/ð§CáûƒbØX@½ØP™CK0v»eÏ1Äݬ›Òμ,Kf}¼Í%ñÓºÛ“5Åa §ØIsÈ—ÄËòžÂºÁü.Å”Ïnaiñ7ܵùõDÆ&d£ W;EB?H"î‡2@~5ùr»IN…ÓÙÒùV±¦'ÉJ*Spö § ùª²^žø¼}KT|qZG¼ßTì€4‡bPÛ-FÇ9à ² Ý2D(Ó¼í(4Ïî%Ig?Ko\£ÝÒ@((NÇÞ¥ÀE¹úAÜT;g;½³ k±ˤÊ#j¦ybµŠQ'Ô.“/¿½·f Tzeƒµ”Bªl­ýª‹4껎C=Å`RÆÖ"\ú#»&ê3T°“^j:ºÑ×DŒ§ž~µC1=SQ™–p€‘Ü”Áò)ˆ®¤ÕÓãGØÛf绎Ìû`ÂÉþÜVs.`¸DœÅEQ‹%vûWLÎ]ŸUv¬Ðøzç_9+w@ÚDFNòpÑ(€Åj²ŒCÓÔ6s±ù¹¯GN² _åá>ñT»ôLTèðž}°ò Û“J×>à2Ãì5&L:˜PÏÚ¨óbn5qç¶2oó@@wð[yZë¡=Èçã¡Iù¾ú2¥H×ìFg¼ÈH"#ÓçZBí„)OxZ&´Ô}l™@½´y`®1ÄUiizÄ»WÁó3„(­¡QÞÛ><»Jõ¶fý·x˜t+„8ªbŠ™BÔþã$qrØ¥F†™²ùŠƒ0Åi/‡èÿ|ãfd Ár h…¯Ý»;›'Á•—¬ãôåDİ}mDާ¶è)ÏòK²¢d*œ§wc1£CH’K¬Vr•OƒöôÓjÊE 7—d²eÿsÄþÓìÐŽR£O8äeñ°ä†¬ ¼£\~Á’:'¡PB~ÄPt18 Ç(uÚ¬ˆ¶:öˆÒO[ ƒZ¬G²–5îbT‰ËtïŽüç†ÖRHÕÁb£ÒšÃóÇì*yÚgŽÚbuÐâÖñ 1Íõ<ùù e`?ªXÅÈø@SB¡D‡Î óQ¹éˆKxÿîmƒVªK£JÍvS•¥`¢É÷C¬µýÛVƒ`S– øù«–´¡oÒÕâÁ½Ž0¥CO…]ÀÑ'#£QñüxV“aÐè{Å –®¨Ú‰YªG!ç æ%Â4’]dz„_òº`,ŽÒ8F;·¾,׈eTeÉÞúYõ>”AEÉ»^à›"CÒÙa昂Â;:pAkrÙå*kJ@Wó­>f0h]‹pUÌ„L“ìÒ:H¾ fîÓ0ž€d¥K}ä÷&Ë´]Ñ΂6î Û‚Y˜ DŒ%èâò«6wéKóÔ­ ¼›Z[zÆvàfeï›Ð8V+¬WH¨Þ]Cs ø×²ÆS05¡÷HÊi‘æ·iwÉZ*cÀ¦61'ÿMekúÓYÊr­Ý‚r;ª\ñ=‡Ê¤º{UÅF¬#l=õ-“FäW…îG1ŠgÍ âÎÔ]qt[“ü05Uø >Wg¡fTÍõ:ö‹Üë­&™ÿ}Gf°r?Rzß5ź[1y“Ð}Ó˜ w1š+Ø)nî_GQ7µ í9è§/áD!Ê" €OtPÔû‰À¼…^~q6—iׯeL;&H•l—šœ>tKŠ÷îãø˜YYŸî‰V£Ž¥ Q{¥éŸü¾¬2$ó\㎸#5§Ì¶à\½3?D!ùÕF@Ùů©æÞjSš8¨|òÃrtµƒø**¾ÌŽëî0®¸Ž¨u±Õ„î+EN׌ž×êV!ýŒ<‹ƒLí…ˆ*bÿ¦°â=]¶žUJ‡ò†õõS#Û¦mLÇY&C7s´Q¦f˜šã,Â…Þkg“\hñ7_7 ³®”`>"f®ÏíQ’hˆ€)‹’Z‘bGÝP ¹V¦³$ÐÌJý!>zFœ?·>´/øù@Ì—Y‹bK8ur½~ˆÊzîûJÒ,,ë˜Ë¦§Íd¸Hôù״׿>ÛÇa./ßwbÔ'†$i$_)cl¨Zì4qÎßò,í–û ïN!>£Æ€ÃrÛ‚$ ©ÌÀ.qè Ñs±ip#Mâ8ƒÞ+¸s½¿=|Ù–* 7äšF¡L®B¸.ÓÀ\#X‘o£J½Wæ-÷ ƒ“'·ÍÔn™ÿ¡msàf<5ºÆ'€F’]ê“>ËÆ0?ë!píÑšQ±ÕvPÜâ»î‡ÎýÇúx­MÞÝ—­+꟢±ÓÜY€§xe¨d´ëf:b¦ÛöbÐmLÄÁJBþJ1ÓËKñ”Þ”Ò¨æ3Á”þž´,–­`Aþ~ š¨¿¼í™ ; cP¸yžð­Í|$Õ—Q©™©d[6lýé&¸ÖSxÈÇpïDà~#F8Ö9@ìrë‰ ËBzf'›%®2~¤ËóIÅQ,¥õöòÞAìéŸNv: ReVw¤ZbóÎH‹_ˆ«v24¼W_*ۺΔ!À´.äU#‚5¤f•Ô™-ÍQSêR’q|ôFú¬6µI)÷°VÓLºÐ€~gd<¢¦§©„³¾õÕqE{ÿ{á‚ÕzCã1GÝ!Ún‹½fªHZùÓª£ùøá²÷·Æ”Œˆ¼Sxç”o—ÁŒ:•ÿËÍhÇW¢Õ%Ouzð”S(#¥ƒæw£zHyyÄh0›”8°Á‹¡Í–?5Y»¶¿Ép¤Vœã¤ÊF]¶1ŒæOÊ<°c…mx±µn]ô”0Y ævÚ‘gji¶8¸éiTPr^I f4ù=£e” »fej±¶(þ< à1·óÕ†Šh}¨jWnYñ?p*̃é 24Ï¡•ÔT);Î׉¡”JQvE¢ðGuC£¿žó®Ÿ{›'UþŽ2}¿³´2EÛvˆþ׫¼«+;ž…á›Àåo›ÜZêÆ‹Q5¢Tøw”áÒ>ÙñJÃö¦¦WlP+Îd Ü 3%@»&5Ó„`»©ÛTð§“Ã6E‘‘œ¨©>Ó‘·<“dÅ îd¿œ*šN§LT/‘Éò` /Õq}šÜž|‘zü f]q ,ŸŸ§K;ãì•Éí•H‘h0,Cø°p"Uê7Š‹U—Ì‘¤©u‚gÏ]+Që+^1kÝÁÂh°Ëô|_9^öØÓlB '™g¢ù«Öiyãž°eh®ü Lç.Lú¯@T§H/ZYgTÚI#9¢˜µÞøßlˆdwiw¶¸¤fL%Wº¬ºá>ã@ç=Üp?ŒpV^Ï ¶^ËÀ8•ÞH¸•Ô¥O¶,qŠ˜ugÏù†»öýv?@XAê5\ªáqí®Û&~ê¢d÷ÜüápvöÓóÉ—ÛÈSEÚÕ4sM(Ê{."·F¢·~Ö¤+@˜ß öî,çúžRÝ”ŸHˆ•Î¥œŽ¼ ôÈ)¢LÚF·Þ¶|¸YD¡ôì­4.)ÄI¶p-»*¾!:£õ$ǤՔ^*cÐì¡ZŠf Ï ¡²ÄM0¾}Æ&á[(—´„GWšù¸wŽ{ßq¾2÷cÄuêÍ ±›¼©‡îZzm'sAr醡ÒÂõðƒuÃQL¼ ¿ƒÏ^eŸŠ3`ÍÄp#-´­6EÊ 2ËÃk&÷ó ‘ò³GÅ‹µB¤y J0¦Ã²_„¡×WAÆ'ðý‘9uÏ"ÕÒr¶«xž~RÀX¶Ü{××ý 1›²àv‚lÙ¦­!Úlvm~Vï+ý¯/0ˆ,öŸµÐŒµÞ5ƒ`Hôù’.«$4’UªË9ú3îº#`ÇõS‘6ơڙ˜$VÅn&ò?IÞàÇÚÜìÑSñÝDñ¸L,«*JöóÐ~Îñ>I_SI#$ÚW¼ê j›X~DpÇ c#&¼õ‹¯Øû2 !%e”<~@Äp¸öÊþÊÿV~#væØÉÒçzÄht‡^¥;z¯ê²âeÖ€3ÞAPO£Õ”x5ûeä1öøCÑó .áB²Æ+°{Žžµ¹yÚöýä²{ >Õä’{ïâ=<9¼ø¬á-/ô.÷<¦ÍͧÅÖ<,½­j1hkyõf6¥ Ö©TV26Sðãâj·*µBáì ˦ÇeJ\!ÄÀ%e¢õ>'þ¦Eh N½óãG†µ j&4>=d~ ÂÞ§ë鬯:ºò£΄¦‡q}ˆ•|#ÔÞm]Bµ.J³` "h9ÅsNî^Ý]P×Xœ…-ž¡ø5³D±¨Ü]°¿Òž©õ‹ g•ùÉ ²ï®­$ 6›d­8'ð6S¼7T€Í¼åóMiDr±É}’Ƀ³+òFèÔõü¼Ž Ű1ýaÇlàÝÒ9!ŠHË7/53‹Vé§q'ùÞ%CBT•³?­8(?„—ÉxF€œÍ¡%°ƒµ~KœVïx”ò¸Ä§ýˆ‡óî´òJçž{µj#¿&ý9¨¢þË8:“ðöÞ¨Î)Xïâ׬¥$‚h"kxi°'Ö(¹ÿ¯ ¯_‰¹VrŸ}hZ„žb…TY+L î’5ÈX8 •ä;^Ô ÎM¾0Zˆ…¦$£Ù19|ù¤UöÚ/ÆûY!úq¶q.J(¯9ÆÉÍ Tƒ=z¥]y®5\* ±üÉ|ÂùUj¸’(½CŒ½AYÙÕS rŽXâ¾Õ[5Nª5F<¶ Ò€;ý©·`ÅiúàºËõ¢¦ÿúkC5„®&"hæ9?Pµª~)³GØ0¿èý3Q®'Ø­!{]©̶ÎKÆ‚~¶óð*¾ðzº&†#•²M3^*OYk–ìI'¡F‚(ïHžÂ΃z7Õ¬ù裮³¡^Ñ+0ÙÂëSR è#éã–°bÔ‡}Œ°£’Š´×Õm^Íkb‰S¾øJ2õ:üÅÙ}'8ŒcQNš`sŠÓ„ÍìÏç¬?VR4[&ˆZŽñ ¦¢n!¦¢mg̼ º’~G­X¢MZ¡€Å…óˆîZ®Ä+3“hÓnÑÚÉ<ÍJÒ[íºVŸº>›¾Õð+ÅÈý[Õ h^“¿©º7´lϳq9»g@§Ö,ìÉzšS­ñïÃ¦Ž‹EñJ4í}&t]š Âc["øˆŒ,n5ŸVÀ-¥5Ä»ø÷‰¦üÌ=Ý5È_ù¬›ÑUj}Êb [v@€’Aü¹ì°nª¹P¼–È«{zac*röƒ‰Ä•öï[©JDé9iðM¶ŸÝrßFöžZi$e% ÖOùqŒÄܨͮnÏ*nìèö@²Bµžä…cp…n,ö‚<®—ž;ÏbC5åû–=ïgÖ,),uÕE³Ì‡ÌvjþæÀĹ©Öþ~E©£«ôt­ì-ie/Y¾3ÏlñDÞæ}<Â~ÓË•:ÇßÿÚNcßI.TýF‹ µ#ëßñKPö¶!?û u¡“Ô|Jæ_ƒ4üÓóäßëŸÏLZe‹¿hœ‰&U2¤Œ––#5­Ysc€åT?ŽÆÿùEµp~ñWEÊaƒJÝó ûÓfÉŸ’¼…]¢´Îh¦Q1dA)ÕŠ >ÿò~Už ¼è÷Ìpc—M(í‰w/fépÙ¸®{l{Læ}•«ß5VQ¼M$«(|™ÿúkÛÙÒ€wA/¦6ùÄû”`ÁŽ—åI°ß*NÚzNÒ7ûÛ`J­åŸnX«5X3¬Æ¤P沇D ÷è^}èûÇàq¶-Ãy±1CTjø!P9bC»ù©,Spf®h_á 6ÝáÔ”'ߘ/ô½ûjQ½M‚](ƒ}¹€½0 j0]J^¤ÆH䢛ôÎíìåý¯™v¡ó»ºWͪ=­ýZWÊÊöRâ) BN]–â‡lÍ¡EN³®BTÒà9̞ϟTWoP£¿{ÄèØ¸}\ƈ¡ÈÆ©Vvéí“€k@,î‡@?êæÙ½}²«G¨˜þçLŸh7ŸUã5ïCJXçÁ늸ãò@q=Ä÷AßѼ‘Çk‘5›ÎOÕÍÀZéóî÷´6|ÄÓáW~ªdÂâÒyÑjiWÌëÆßv}P½_®JŸ¡Î?gØìÒWżã¯v8]MáZÄ}J\$,\àºÇ…aè7±Jº¯3ÉÝùÄ´Æ%cîwuè£UGY6ÓÌÙ+·ÝcˆþÅ1&o/óIµ»[‘3¯«º•„F‹›X¤õ‹Ö ðyÇÉN¦ÚËÁ¿Áº&hí¡Ú¶€f çÂëV­TaCAžM©èÖ)1Zæ{§H\žÜYú˜Ú%þúüý)U…éÈÆ/]hNÅ‘:ÅxòÚ†µ,‰xT&×yäHÈî’9é'²B@À†×å}Š!L»C¶,s~õžÓ¾²ôÇú Š"O :FH ÷S'dDòGÀ}ýœq,(­8°ó“2¨„_Ž-ÔˆŽô+lc:»0©Ô}€1ÿ‚‡ÜÈ{®@¬½jû€µòò©õvúç&œÓŒœ?ÛzäA¤QÚF‚ ·ÔvìaGfFìÂ#‹¶,—Xyé?±;´tŸÃôù? –óíAƒ©„eDÄ·T)sœM[Ês}wÅ©š8Râ_>àÏJ²b_qìÂ%! I¢uZ~»=ÒÆdÖ?Lþ’*¤1ýÅ/å!!mØõør'¡žžTAÇîº[Ss ¨±o)Ô[8DèÑü¦EÙ`\3U‚½RuÔR SLQQ¡ÍènŸ±°õdaèµ8MÁ5Wüò_¦g.Ü_UHÅŠh˜¦Ê?áD¥ü~ÃZ¼ •¶ôͦ<˜¨Ý5Ÿ 7¬7J¨l•ºðD±”Hô"ž:÷DÂlÁwãò7¸ëÞ(PºS(STº8¤I’ï Ä!”fžlÜb %? P-\ueôÊÈEQ=>çQý«ö£Æ¡ŒÃkBë„[ùPu$åH¸‡äÉNÈYP#7…Û–¼Š”0øsë½[LA¤H”ÖyMêÌ|s>’—ÅH*¹Ì„ÑôaW²oÈç;¾áyom£‘ÊÚ-„AÌ)Ê¥VCðK]5ç8Fçv ð,Mè¨Ü…!€0qÕÑÜk¬…Çøz9D?ü÷‚¾´[@<ÔÙ:HoŠM÷ðä†ÄíUžm}¹6°'Of&¶…¦ÉàƒRRÐg¥dNà°=ú ·”EËÅ`´¸WŸ‘f ÞOJÌ?Ÿ±¼…/!Û’®‚ G0$2’jà£ÀùpFë3¯–ÊzQÞãäZŠóŒdíheë…É(Q¥Ô «·¯¡±°*•G`\¢ŽŽ3”sŸ~ŸlÖŽf¼Ze‚¬÷ácTrz…?ˆµc³™u›š©É)Ó߀¼>Å$~K˜½<ÑDBhæ0YãèŽã!ùàï3[ZÌÿ[¼ƒr%hZkLˆƒî²i¿*6[É·òö¶U¢ tl»oj‡öÊyÉñ{ZðáÍ4ŒZÑéŒÎ^—wcP*9ŽepNYÞž¿Qò6²çœÍíÉŒñ˵­n9¯0RLÊþª¶5‘ËAžÅС֡þZ8öYúëB5 Þúíãç!eûÎDÀ|V„j5jíù+ÜÛÊGàó¬¿w‡}\¢×äœåiˆ€²5µ‘\múÑX–7ý³¨zN6?4’²©O¸°Id!+=M6è£GÓ‹¦É¾ý÷“†ŠõÏàÖ—‘|¡cHÅ}ç­Õ½23 ˆ{©ÆëscgÖ™-èè’¼[¨ÛEî@ÝžfA^ˆX‰¡L^âµ/ØÑ]??bÜ*Ù]÷&š¶$'þ̋ƩQÃd~+ºiór?H(‚Ìzì WY¬@n.¨£oì™;Có¹*ꎢ}å“¿ÇœÒv0Ï¢'÷5‚‚r$D]HÉ3”–+ÌVÔtºÎ3|Á{6ÎhvSµïä|`1nr>²âWìœäx;+?5euê2D;€ùåÁl¦ÿKBýkŸêz^»EŠúëÛ5ñçš{µ0½ ê… u¼8î&\ño®‚¼×U ›˜ê´)d™¼IŽ´îi˜ uÞßÓZÉM#H:Êë\ñ16D¨ÿVŒ€PÆ«I¿—ÕŽ´W§5Çó’9¥Tÿ( ŸiäpëoàŸÀ d kèü·Ô†êæÞo\J4½·ÌæTà­ë‹Ù)(öáÎ7f/Š3BX«)fÀô¦ˆCtuܰrûþ„¨,ijð®°°e¶‰õðÉB9ÍàZ­žÆrHœ"ãIC=ÀÛBI.gPþâã´lx!Gs0‚'p< ü’K9n篤ée6½%Ó-Có¤/¥˜e½ÂÄ9$‹òÓ¯¸+ªi0L¸°òkqÂh™+‚Ô¨ÃtÓ`ƒK‘éM ·i=>œrg/D Îåo!é]³GóóƒÚF¯ÐóޠήN%YU%SÄ#ªl*BpÔ9Öd÷»B©*H$]eŠ8²ñrßyóçåìM‘¶ ®ƒùõaƒòo¨ðöÎv ôÙ)3'â"´Ïâ)gkáÞÊ,âî7åÆjÿ×_V»ÛB 8ásÖ·‡­ì¡…ŠCù‘ À¾$d® M%è}·mÖ ¾ù:Óñ ‹'Š ÔËì ËÇ€1%°cf.;^·ê Ä–kÉkðع;ÞÊ›2G®kÙú[ÀÃZ0¿Â-‡ÈMH±l$Z¹Ž¿¹¬³€%¿(¤mº1÷ª¿·[Yçë¾qí®.þvתÉÞ(XMÊlZÏ“êrï±…ÿ(Y‰R»}õž§U)µM íÌÓþm+]þ]4¬?9;L½ÞéüòG !Yðgí&bB@"]m Š2…ww*?%ó-¬pEz^vë¡qJCKÍ‹‹§0=Z)Ì[æ=Þ cÜ\ˆÙ/Lvs@M‚hÝ£önt,KÎ0Ap˜Ã4äæÀzÏiÚ)ï¢$¾–ã,¼jÍqY¡ô ¬ƒ ¡O\–!‹² •W[‹èÔ­è§í9ì*]·S 'µœ&Jàt²Ô‰8œó²é>‘°l*o‹Ix‹„À¢ZWÖMÍ}Ïs¯Ñ7‹g kÄÍ“nUAšmK#Ôýˆ‚¤Üx†srPw\*ÛrT1M3Í)‘2^꣌dÝ<äËûÿNÞf !Q﬎]dX„×e¡ËÖyï^-þZ’߸‹¦À¡¹úpz¶ûÎù'‰±—Ð6–~«#{Þá½Õ?SŠ3ËJ&Æ7Ué+í>êSv‘°&ú2áÊóⵦOÖ` ~Ö–j.0â¯öðX(uć,¹‘®3l Ax©àahו]èÔ¯¤Êß?eB :íˆmI”€†‡tFSÝ•˜£„,fx¶Ó:Œ€Íy)dzĜ¢Ýx¾}n¿öù‘ZP€ä™ ¬ŽwÄL*¼ó¯ÿb/•» t^GPO©ÜVˆ%Ï\µ §Ãµ»`«z=ý¹w¬®Ë0¹A‹ÑAkmdZ/ï3)PÆ÷þ·‡Ús7}Æ£.ƒ\ íœs-××Y¡ËïèòÉþ®‹AÂ.QÑ8,Qûm_b ÈËsÔü(%¥ŒOX…T˜ãY\QÎsþQþ”‚÷9ïtsþ–Túâ­Ò®Òáa¢žßϱîzoŒàš€Ññ."¸ñ[e®±¦wovx@ÏøÏ«±Š›Ï¶ž}:ü/õ²µxç«3“w{6ÆFŠq ·PT ÿ.¶H[ÿy꧸Jÿ@UíC Þ/žØÆ!+Š´¯vþ)~v½Ä~›ùëå<ðåݕϟÕô±ŸÚc#ñ²¥Q5ܯ½ªšxñ,vk…ä–™e¾&²Â©“y˜‰Ø;ë¡ÞÉ.ƒ[_mB³‰èDÒZù~ †ÏC´/„1óx¯kKÉþ”¿ÜgÂ#ÜKáŽÞI^ÊþT•¶çß £†Á3$. *gÅIqVh¸à3–*˜|—‘¢3.øl£ŒAÉ€=cøÀe½²çüÔëTÐADäD‰Êˆ)ªân‡W†F/’%¤5†_æYRÈ~ëÂîä²íóU¨ì?óï+ÖŠ Ü+ï]«Ü»¯È q¬;Þåù „r\+a¸MØÇØ2ÇþFøƒü—H—.8ËÓt "k—^‘5ût™³ocWt_ífò\AóS°)[\ØfR,Ù5êÝ;±ðÜ Ì*å"ïrQšYãb™ƒy·JFÁ¤Þæ˜|eÙWË/8j¬‘Ž4¿GaxN¦û½ÖÄ] Å[ »æ ã$•4Ãl¢&ÕWoŸcÌ×§õIn·‚† œ»rÊ”H@¨-•Œc s„Eñö¸Ð¤á5õ 9Q’÷Ê6ö_‡£%þ1ä!„M[µSçx²Í<èôŠ€…dçöØGØÕt0k } ¶@'Þfð§ H’˼Wßzð£F_Jøˆ÷ñ!”ŒÒ)[‚˜E¥S"ÿ=©˜—Ú3ëA›Ê#œ¬'Œ}„£Z7:]Êd® d'¢tCj Pð¥×o{3EÏŸ«Ý!†:¨›œ)‹òÚ…i'N0¸u óƒ'ùÈ1é‡ï˜2Ñ<Ó¸‚ö·œdYí–«}`è©Å‚Oä‹[T¾×Jlwk sQwúây5Z¦õvå£5‘ExÔ£k€KÀÝÐ쮚ñCjЭÄÄD?—t É{…imOJ€a »?w“3W¶¡c sΓþ)åßÞZÿ‡Ìy¡~½èmÑ®H‡]'5ßû+œêWC‰9µe+Ðcå÷¿ÿ“à‹Ÿ…QÔS[!i~µE| ,)§‘Õî—Ìñim¡K4Ài øãP4`Y‚ý\­¶ú,F/8dUÅl%ÌñXA(«4ëË ø]„ðx>úa¿%+RF’É BÇå]³ä{ KƲ‡NèsG< mÅÎXýB£tÜL5¦Š€‘âIJ G€>tʔ⽠~#܃‡^æE›çrúÕIKa†Ieîy¬üÝF+ÎËÃÎÑÄÑ)þˆ ÅÀRsâòòc$H»vœQ†Æ­¿R×Öç?‰ðûbÝ;Q—#Œ/.5 Ê ©êW·"Ý¢Â5OÉib{·=Üì6õF%î>Mï»–û"[ )8wâ2£ݰY0 s"À£wßꕦí¦:Š”iœý2˜CçyÛG:…e]* çÀ™:‹zà'ýtûêÌÒÍŠ;Q6‰ä_©fÞÏøéZÂý.N híA¹Áüc9üý T¦bùqlI¢VñƒdN´»ÏL¦RMºòBÝÖ›ÌáùhžM!Ó7FLJC‘©^³8•v}"úàY ¤G$QäÌ4„nT‰´Ä–ÀxÈÅ1—ñò…; zq…º«m#ˆ|`È_05Šé¹(>8Ï»Õ@x}©ÙJ^³ÃÇÆuªBŠ:•%q»]( ½Bª÷£À¦ì =”ÅÒqd^P!6ÁR’<.=6ïâjó·aX«U= ¶m±Â*]™Û5®KKVæBÑc:%ÛÛ=l…”‚ðI·k¬6v^“__dÈy:'tΩF±£“‘¯ÁóêMó€$Í“-YQ–•y»Š{Ö„$g„À= Ѳø>“0Bm(ÑÌk¡ ÅÛµ67:aÇ¢|ŽÂ ¼u3Ô°0i$Ìè4)`‘£°Ã¸8„ª1Ìè¤i– L²NäÉc P¬‘;cヺŽÊ—¸­eëØÃ/o/¦ YqÌç¦Ý¸·ô¡­á›By¨‚,ì£*²i®$&hõ°«¥È?Àf‡Õ!’iüÍU|?Ú6¸/y±0¸‰v‰rZ‹Dÿ_ÈL©V éïóÃåE/Yñ+<1ŖѱlTe‚àÕžÒ¸ c´ƒ|9 ùÖî#GQ±À];}¹òòHÑ&v2ÆB$I‹Qýþî̂ͥj°-áìWøYÚ`03f´.Ñ/ŠŽ VZNñxY¡ø ÛO“Pw\Vò†‡*©Ù*ÑänÌǨడÝe! Ó+åªÂ¸¾ÔÜ—§E$à’Õ.ÇÅÉ8ùÃFè¥G-5&$ɹ£¥Óˆ9>Á¢ùWÜ"!O>Ü  ÄH u¥°4tá0¦¯Ê ¥zÿ{.;gQùh®ÍR.,õçNo\ï23Šº™æä´ 0[J¡4´ #í´í!tñ0„A 7N_^Ê7#HÔ ².r$±yÿN·' •¤ÙÞ¡:v1hjÇT ñÈÃw!U-~ÉLAGwU…<¹ì4rѯ»D˜ÇE+Ü(¥xŪYÓŸô\#(-hxÑ=n3÷{“[ö:îJ ˜… ëcÕ¶üwÇ!ÀÎΡ€ÎÅeP²œ¦³ýyã+Þc.O§Ì|·ÙxŒZ×Þ S;£àŠq·f§²….ÍEY~Kéó¥qbÙá}hðlkЫ£=tûr=,½c`ˆ¨RÓ΀1Åöuç˜cG‡ ‰a8mä¢ÏíùÙÓybHQ¶+ù.Ñ N‡ Fv¬@¾¤‡Y)¡;åÞ_’Ý…ší§\òØé­¶ÂÜs Ý‘We³fÍv»µ7övE@¿]C1‡L¸"Tñs²{2"ª™‰ùšIQ_sÅ겺%H† ¨¥òwÑ[0"œ¼¿Î6ËV[‡„­Ü™Þ]­¾#[VçBʈnŒ¡Ü}:Uvë å”l‡aL£‹ò›RGÈaàH™Ñ–²Ë*7ȉIIuåxÀIä†Êâ¢D‰é$£ 6ø¨ Çôw‘j%&#ò%Ž7ïŽþÔZº&<!û²aùÇ©ò/0ÍÏÎïèIx?Î0'ñçh–fq9 {‰ÝÏð¹ £“±©¼åwEØ@§8Cçv#ü­g…ÈÔò¸òþ‹ã× _4DR’õR•+Ü‹TU"ӪƌyÅÇmÀGØóSZä·ƒôO¼ðòɸQG­×¬–§AÌðz÷Y†7Îu΢,EyäðÆ;’‘S8µ3€‚ð#\³{ü¢CÜØÁÊÙí;úç–î((ü -&ÑØûá,©äÜšP~ÞÙ €.‡²«þ$ÁE‹îü®J!–•^Eõ¿†*Dç qSæõ:™d–Ò™Ç?™†KrP“‚G5¹ß« !ýÇ ƒ´A%0ºZF|Xç ˽þ×weÈà >y €LoÃ*wÐ(#‹ç¾}̯B×À³3À@úö“Þœ¥D{Ï*iÉ91<†œ×ð¶AÖ™dÕB¥ø"o}¼®(™oqû~Ú£ÿ~‡<( xø-½ª–ÍPѵb¿©ÝÁˆ›w‡d4ó<“äÜ[ן0mj†_»ü¿§!¹9Û(:ÉZñ;ñõh\Q…±»YejÊZŠðžÃK2ípÀ°÷b¾êe.±Ãq²ZØ®`ÉÓWǵ”¹«&ÿ)¼i®V^¼¿\†L[4]ýÒ˜Dï¦Ìu¯îäFCŸgÇer¡áEx*=+*ÐwT ÕØä ´TDCªŒh)ùÛ£®·ŒZ cÁ(¯­MBýûæ™™‰*yHPyT¯*@øÏ~ Ý ‹Z+èÀõ½¬)qÙsb9Rf¯–ÞŽç”{F·m ¥A½ —ÕÒ9H7‰’¢v-d‘(â  …0#a†Šªçšo¨Ì¯ Þ=£Z <ûr‘”¦& ª¯x¥Ø·ÒAèØÇ#øÿçÑLØÑxh!Ê[÷S ŸÌ'Þ–%G³n;ö@,s|”(>d"®vjFÛcõ_®ô©m†Ò˜îpjH|ù üÙ„,·²¿í}Gk­Üo…í¥@ý("¬ýR Þ²‡RCØE_(…Àï—à¾aQÑ·q*\×<„2¿ëùw„Í›mžbreÍCcCþí³_Û· 1å±êÿ°˜}î§r=Oû-ÕrÑzÁƒÇ3•e¨yxðÑa~¼ØL‹Ê>HMpá²q±” ËÓúÿï±ÒÄáŽÑ5–G°º7ă«¿·Èèm*ýr‚³•q[ïvÇŸ­uù.-ÁÕû°7çþä0y› ðG½¬³ Kª»1#l’Wº¦³A1ôÒ‚‚qR1‚|Äjýò•öóÔ³ö=$Tö?Ìj 3ðè,pkº)‹'ª ÖL@’îYgˆ0©fhá¥2äËtY.YîPCaKü<”ù…d¶Fas)“ü`‰J§ïÃ8Ìý ñ‘éw°žû 6ÿVªÖb—õìÌyvH¬/q^Áé{Ø3¹N†ó-aQ눔›¤+÷:‡š`}¤áá AÐáOÊoÑ|/Ám•'µv³Wµ•TÁTq3Yš .7qÀk.©GÃX„–_oäш‡:ºúgV‹-m-ô¦c˜LÛí ¾;ã ˆI›°x‹# ÿöä´ìÎ ²Ùâ0Õèµøc>„’h* B8aóØHºh)‰ñm;"ô ò-Ó«Zàý‡Òö¶Úvéòë]ˆ©JKnsس š7`ýSåÇYÀ°Ñ Òۼذ©¾ñØqFéâ™ëâ›ìiÈ9n‰{šŒáš!:½¸€Q!Ú–£«PŽïå¬0C´FãkàŒI.ÔìÆÈå¬ÿò€Q»Ÿ(PYOkÇJ’<ê°XL°ÓúH¥)+šeµ‹‰?ùMœ‡Ž‰pßÝs ’å7wzÏš–-È·gF¨½vRʯ‰;æÔ‚ã—gÿnNå÷àÑ&Ò=w÷‹×†ñ€¶^¬w£ùÙ[ß<é5“ ¿™ÿ5 O•SÖ„Þƒ€Ç3=ÞЧïƒáøsâÈS¨ÓGþ€–‘?¶«*ÐPÄp¿wR¥"}ùc ‹½û0zvñì Z.÷ÍsN¯JP9óSVT|¦ždŠà¿[Oæ§Òåë>^£ÞîKöo³¨x.ºU# ¸óþRbt°€±0M¹Ûßn•åœâSgM”ðˆ&'.©1{-þœïŠìªß¥iFÔ.…z÷ïí$Jcç¶8Xû§:ïzŸÅ’·k }Æã&¶wÎÒ}^¼\z¼F¿‰n]yÄÜ<5Ä·ÜcŠFÍÈ‹s.Ö@VMï «Ô°Å+—ÖkùžÆÀ­Ó›[_1-;~L[_è3ì·& P|öQÝž $9%/l«â6ihÃ4 Y JÅñs:8ÔÍN'ãÇì£ÙÅqŒ\aL×¼¢û¼O½Æà°NËE¦è2'\z2ø6™žúÏW2ãÎѶà3(†ÄÈ*#è9û½ß»;çÚ ‚ÙD‰öbÖw±x('ÁD‚(¼£’¿ˆØØZ•¢t™Ÿõ$Db:C“vâÜ¡hæzc=ÀÕw³b§øýíûŒ àbJpÏÝEà´ Ð0s´±]_E†çå„—"Ãþ‚½úw‘Õa#PGS^2#L{GìEåEvÄ…Ìþ«øç¾‡ÃŒŽ.$ª«ÿ2bÌ´c†’ß¾$ž”­œLƒ–aNÐî² Ù«€ûxpLùóîu%Æ™ÞIJiJ91XÎwPžà 6Ø’×8 ä*Q(t÷–IV¡˜”#Õ$´ ê¨ÎG‹Aó›Ôr0ø6L+ùœŽv·­M¾T%ê¸Ô±éä@Y"û—`¥ÆWë¼S]æâ­}w†€þÈÞÜïÎ.Cà”ISlNÄ$O´9\õVÜ¿T;y¯ ;É’>hr—¤ l£žY‰ÉmFÙªˆâŒl^vIÐôpEŽÙtnåë;M¼I˺„-‡ù7ó_tìO’ÿ.OQVóôÃ]€lúd7 ê›|Å8˜’DÍÓÔÌÀ´dìçæJ°íÍ3ÆLDê•k,¬ÏÑ4îþ¸¯ÕÖN‘®·3‡¡þ¤›ª‘#|J’Ö•¸ž>¢··-~¯—ø]ìxc } aðë!.<‘[u$M²µ´xo§¨’\ >ÎÃôeIøbŸiõ¹…ÅD<ªAêó@)Aø;hw9|…òØvÓVªßÏͳ—}G´O—Û±’Ì76x¥’_Š¿Y}%‹‰ƒºü‰‰†ÃL{ßsð¹Fé:M3† \OeÄdÔ}Wj,ÜÝ¿²¼eÂ]â6r+ ÷?öxøçÝä¡È­Ž÷cþ§îa¨»[—?^+ï\弟±±0ÛŠ ¶G¿É4¿®yÔÀŽZßÔ¢b]~ÈÞ]Ô–σ ö‚î*€+Lƒ]o®;TØÆqÀO¶ÄÊÕ[ÝVjóè785ÓÙÃÛ—e—‡ÃKúU¿‰@ÞֽבäƒãL1ô#W(Ë1³‡Ô©Å—‘åÑ¿šmó3ÑEÜÄ=¸Ct—ۨנë5å1ÿq5ñ K”ÝÅÿÁélñø _¹øÓOŸ(QP¹¡÷·µºÝ2´Ø`î • ¡d?yëŽË©ÖÆ”âòAæºÃ5ÚÖÎ^ÀùE•KÑLhãÞ—«P¾ÆvñÍ_‡ØÇ¾Ï.)Žï ¤?FO/H|þE®fÁXÂÑë¿Í„ÆCóáx ‚Ytý¦§“1 «£OÉ)÷y‚¦Ðq*E >šÜKqY²€Þç{)(uçᘰ $^»¸¹'oGl 5¾m¢\M`Òžì’ÝÌÿ겨‘C®˜ÈÍw V}Öv ^’3+U[`qÊÛl!ŸžU0è ÷ªK/fl/ïõ³—ù×äC’XvÄa¡G@¥kdC£}˜¥Týj²[½³¥¡dßcßA»{ÁSØÙPY^Žã.n*yrÕ¶h!í®ñŸhlåZ…oר·M©EÖÍš…ÁÐ;ÀÖÕµ‰‰0‹$€˜(-\ǽڎÁÿˆìdr­0ÝÕ¿š¯9{Õáy†l›Ä<›„ùÍ… ;¶% n¼7Qز0ò>T΄ÇÓ9gŽô Ä3›ÔóùÏŽœRÈû¯û&ÈQÎMüšÆ¶s"”æ6é(p´§‘[Šï8WØ ñBŽ/n@”ƒ®¶‘o)%œ~]ñó=ñ^™eüîÜ õ™ã@¢„5>MÑ}—B:àPpÅ—Ýß—ýÙàˆÏ ñóFdxzû#YÃñ&z+P{.®&—zù$™!¿%€’BJOÛ¯`ÉvÝšÑ r&í[û)’æ×õÏëQÍ“â$<¸™…†¥ ž4ž–Ä£?ãÙ£ŒlœXíàV÷>>H61Œ}Û˜ÃÄ'ÝèjP<¶põöjÑúø!„ÕåÂúûœI Î]U­êZ85]‰‰&ãûYçÞå\l6» ':×-™a6šhªd vDü>>qÜ_0Em³L’…0Úœ…Uê†g{ùp/úŒRâ‡^}e€ki’†G7ÔÁ¯¼òŸô× w÷7KÕ u ƒ=ÖpÝŽ¾¨´ˆj&ñ%ÿ@iEÝyoþMmuµº~FÇ+æÐzM ÄYÄܦػÜ(¹vÌQh.]sM°nà‘ "pŒ›`…°û™Y¯èwÏ¿¼6"³h¤óᦎ*Ì#ÜH_ãâVW-×,Øõª“?cËݶh‡U’Ôœ‹Œ®d-ú%¾]8-u;ïŒƒÍ Þ@)’/k½Tt t/{þëŸêÃLiܪµ…k¦[ÿ»6Lá]·DÄÅ‚6yÈ8lv›³Á*dú;Íö‡jÒÌ߆¬Äw†Iój†«#>Äçt:bO8…bqj&o¯ëva§‘—z¦¨h±VÙD^®8„Mä d×k¸†Ó¦äQwé:îWCA>g?&’Êùò´ò ¤¿rŸ‚KTM´6»w±M ûñªz± ‰n>á•h4¥-DsÒTÌÍ2ü’qÙW¡Xo[ÛÏoü÷ò€=«ãš(HcþžX/Ö\¨Í¡>><0M­Ê¦vyq_¥dâ¤ØÃ_ÈœØðÄj¼ü&r jì>Û±ÁÐ /—4ß_Áì7HÏäv&Ò/ÖÄóç`ÔËSÂëúÝgŠðOØÝÛ_Û˜h?r–øñÂ< ”›Îv#$é-£ ¦ËRŽB–§ðËYBú}‚Ï[XU R€z½%ŠôŽT¡àBÐ ÔP?¹ÞÓØI6jä="6[?hI†î{s;ÂX«ým¡ËbB´kXM‚y…ꈸ1÷î%¾Ÿ´÷¯^¬C3"¾ 1²æ}Éa°hBA|‡¦ÔÀNýgÁRÙ¶=h6NJªñ’çÇ’E|¶„Þœ5‹]ÂfðùÂLõ“9Ã/&Tý¹Æ‡þ‹Ô’[Ñ/#qÐS¡ª’‘ÔžñŹ“pýžà§¿Âà°›âf‰¿§‘4Hap0³;f~Øçuæšì†K’çVÃò³ml>Cñv¯uà‡EŽL&¦þŽ›>NÅ´}}Yrð1BKò³(½Gž»®jªSz´– ø\ÃÔÀ”¤™…wø†‚©X²õ&üûk+Q”Ø~Z¸ È…ªó™âz%ðQ*Щ÷¼ß26þÔ´F •ÐüÙªJ7Õ˜ˆžéìÚ&¹X~\ñ!ǰÁ£¿8µ[²‘ ‡ß»]EL¨KkmÏcÎo¶£ˆù³¦6tvΗ'¤Öù¦é3±9d˜.£ëâìØ›T¹rZšb Ѽ¹Ej§è*.å™FÔÎÏqg‘ÃÚ'k>QÄÝD,;º–Þ»Ž¿e¿Ñc#yü¶ÃTmxf#¹ îH˜¦úafJFpñHy6˜¯?¯ §É<jðê±(Ùù ÂC¥Ÿç„ö)êæ _áÈ„ÚÀ#™¯ò&réÎq]ï¾1’®ˆk0` %oö*Þv&ÂÛIÈ îð`}Akй4ÆÒ¦¿ƒºaÿ•…ÙŒ õäüøíW‰”ö‰¡è ®’A…ùºÚ4Ò)s¯.›¥¥FAñmÕN â”êî«d1†Êi4—šƒ{!‹ÞúŠÿ':³¡;ŸÔÈK?¿,{@ß%ØÜ¸ g[Q›²|×ÚVí ‡É§1¼+•Õ~.ð4¸¦ hTN€5‰X;„ }ž°X\˜zK—kƒ;š¦A(íÜ–±–üAîW «'Ã$xÅÜ>îÇÛÀ±¹aEŸSbhª[d¨9„7XöS™YÂÉmEc„å—y³pTì‹ø¬WáôOô7=ÀŽšDfRÐÈØ/ë£)¿(Ïðò™xöV€ÝîióS#&½Ý¢gö+n)òA„vßhÓj–4Ï»&PÆúÈ'JžÜ—7Å64ÏuKl:©ÔhÂÜ"g* ¸«8Q–EТ´ŒÞ‚@TFþ+É0Å$?"QûÀlRAæ˜Ý' ssv–ÞÅó´õ8/¼›BïÅwÜk =óKî}óS@ß9 bïè„Û¬ÍhžHKÖ÷œÝœYVÅ(XbYZHoý…ÿ©(0ýq`­ÿ’`œ}Éþ‚ò>ðoÐÌÒ&q`QGnÁÔ'_¯„˜¯fŸ—m9檠?|7áŒOÀÍ¿±ß{wû^‡xféDå@¸ÔœÃjh).-÷KÄ.ϧá~ÈuÁ;´¾ØŠFå’ `¾çŸŽ ¡-6G"»·ZÄvÐrª{7#ÇË’HG:͇€ÜŒ³bþVÝ‹[Ü—z†Õæ7:fã‹Æ6½˜òâM‹Ž–l£q†Äz'"¹Ÿ0ºí‚z>j¼ÕFýå(?8¿±\FÓ±Q‰D‹¥KÚáӉ߼AËQê©„ ¿¦„LtáïSéP¥ÄÒú*ôØÀ€UP„"ÿ²P™]ÝçtÃ8½¡ÝZ: ‰n™ÝÕþ‰¶15O³ŸîÓW„m“å-ˆwmƒ*<`…ØÞìùûT!ˆá7ÿ­´<5Ç¼íŸØ×X³ ­ó¥õ Ħ{ÿÝöÇ:Á)VV)Z×Oï%hUpœâ¤S¾¯gèì½s] 4ÒLKbDgZ`¸eîÍÞ7K+Áø\̳Ì¿]&AOd€á¼ï¤ôêü’CÐ Òl=ÿl¦û†Q.~›ºó/[/›ê+SSó–»ôJúÿdLaIÓçsǤmút?•T „ +èÕ3k³\÷ó/f¶`6q,µŽ¯D< ‚´•–‹3':jý·á; ‹ÌQÜŽ»®ù]&‘µRWÀ X‰âpsÕ™ÚI¼#ßÌ%¶Ž?2÷"êÍûb­çXæÈ40 vó\281ï‘â¾4+ØàXlï8Ia C¦Y:¶Ëf«ëäܺÝ&èGà>}ÙóòØTbGìwâö•šJÈþ«Õ»»±?UÆÊüÒšÄÛŠN*‚“FÒ,ãu¿6}&ñt!šP|Ö¼ZŽÂäÙ43\ "ýüÍõNþÆ0/•=5»ÿÎdé$.ý¤©â(Láâ Ñ¤–ãƒziëÓPI³í+³*Ê7b¹çÞN-ÿ>bÄåôÃa`®m% áNž>#¨>ëáK Ub¢,¼¡™Àª@¾: ×¢‰–^kÌâ.ÀD#}þ¾¼•üð­@k>G‰>¹Çì6‘K=Ü“{ce€i]«§åJAUüÃžÇÆnF%©¯£œ,}g·Ó[æø‹ÈYþÊT;&œ}ÆÑ¡ÿ›.Ybå¡¶ú´þ#W ¼eõŽ…m¼ÍMBFa#0 #¹Sp[Ђȃ`¦TäŠVsúfÍÛ.Oÿج\”ÏV½€ó.LzaevÐ^á8ÚÔ— 7m³C(#Ü8®v[´õ®Sž÷2‡–X‡ŽÂ_4­¶Í§Fÿ…Žb‰¹ôR.]Ïó„i3Ž9êVt‹Iö¦›†8SÀÕT‚RR›>ê¶µxÕ#`„Iyª­…6Ú/NÞ.Ö2ƒbeoqc # ïè¡P6© ”;#³˜ÂÇi 6¶»ˆüú^¦0h%àüëNLÂï´AV#Jü[ôæÊgÛáí‰2³åpKrÆ)T›É&9Þî=ÐT&†Jƒêüºûœ¥–nv«A×ÖU›纓ÍU PF^žÒÇ›¬6/2Çœ_3{ç.äp~Yä¥ "L¹å97Ú›Èc0zYEZ'ñE'·)”Ëvy•NÀìò¸™‘Ÿ.›éý6|$œkÝ‘<ªzrU8Ú(5ÂIóqTLTµz‘ÌÙöÇ®ã dÆIé\~Öú™}ZT©·w€EÇÀ#u–Ðgw$ü·¢ Æ7Q-ç’kt9i8\ÿ•i¥ò‰¦QõZR«´…<ù¸?ã̤âðÚPo³Ûü:#kf&Ì&¨œÊ…‹ÞDˆtÏÌÏEäÀXúBpršv©O’tù\Gùõ?›ÚÞ,ßà·Ïo`p»¼:NÐlß²Ö¡~--¨~,^£Ý¯3‹d ˆoÔ½Ýî§—-Ó§ÄÄØCÀ¿¡ÏÐZÏ´Ç墤·mÛš¶´C|ém¤^äˆ8ùÎÉ®bâ3Ð nõ‡þTˆù±rk0’ƒdÊzzU:qÄêÃgÝo–ÖÞ¡Ø¡{Ù£½›“ÎÆ›ëva¨ù‹³»ÈQ 󎥌ƒôÛ5«$Ö5ƒÛnU#žÖR·ãΛTq>JFtG*¯eÓzyH*àä ×Ï1·—‹=ÉŽZà–˜ŠÆù¤\:«,Îyž°¿¡€²ÏõOV>¸ ¤DÔ*iS’paÞᳩ<_ ~Ρ¤Ðv/<âªý=•–ã–ò¯2»:×+ïi¡&vçÑ©ïè!Âl9¼ë…üÔ[äC( œ‹›;n§·Щˆþ®{€;ÊdØN1Iâ × L¥^8Wâ÷çuv.æÏ­°öõØüñ­øc_3.bо-zúM~ëGf¾Ës÷ú{÷ÇÁCºöμ›WAÃIJ_££ýbÅz=H|z¦õá¨ø†2=gqº-èò©´|ü1»Ø3¦×-šú€>ýÜÕ ²>`°@[,©ÇTÆ®rç8*"ÎÈË;±¹ÿp‘P´0ýsÒ!Ó| Ya$ÌE6$@­¡Wï´ ÓHs#0bá`6Ÿ²½ï=?iáúÝ%ký$¿™å‹‡Óv5Ôó¬bC‡"¯G^‹Åɶþ‹úƒZì#þb èjLË{RåGr‡L[¢—°aI*²çy8[°m,¢žˆÇ—˜¸.Á;îSeÏP0J«{ø†¦È+¹\žm 1 ÕÐ ½)äŸÞ1Pç:²3 c9¸Ž8½îyLÄ ½žrùGt„,ó c%A) ?-û ú8‡à¢~ê^¨è?ò¥>—‰Ë“Š.F^Ø»YŰI&'…ÆF×ãÚ2æâ3[[Ñ·nçZHÙ:lÍ烘‚Ïb3¦—Á-¹ßÅð†JhdéDm.]ᦉ9„J ½ìƒ¼vN3TÌ<ïL}î1ÓÒ¦Ò¦ˆ%W-Û5¬,Õ+6ñλƒûdëØ­àyé[ô¯ ¡×RHÖ#L¢8_Ð¥G­Þ† Wl« â4,oþ‡ØPï&¿›ÎFkÜuw°“ýSH 7 /û žÉÎâPÐF“¨ê"X(oKú¾€4ÅÀ°^¶µ}{D9ŽvÍj«ë¼S_Û¥Œâ5Siùvr¸cQôËaQéÛ“q¯mªë0€Ìš”9çž5¥t]Àîa9ì$ËfÔ> —B¥·×Á{ÐKnÍâ‹-†¢êË Ÿ=Ÿ©ÄªÙ`Ãk©Ï &kB.([½&¼Ñ)‹¶d"&Ý …HûJ:m}öB²öùÀqoëˆÿ‚eø¹÷€¹²‰BcÕŸ;Þ­72=¨ÑmV^ÞF0+,C°íëHU…Gf "…YmÌ„è¡OIöF2+¬;¸Ok¦âëˆ×Ù˜±EkêË„º‘ß&€¥ÛIÛN¿÷òû¶w=SûëÕÔ÷–âk` 1s[Z¾ N@egv±b~,P¢Ô4Ó©¿ÙËQXƒ¹À§ƒDŽ{ô=ªRæ‘2å¾ÿµv“Õ¤&ªqý™²ÅnlÍ”Òt_µ”Ü´´~ì `ØÏúÁ•ì ýéĘ4Œ g@Ñ}¿uD±Öý²‡RÊöSytO§ë«Íc–Ù9Û¾½ F›DØÿcÒ0¦h­àR‘hÄwZôðB¡úʇK"‚L*xªQ:­¥ì ArG¾ç “œ:ì¥`½%$„þ¾`.§]ä:ÎãcÖþ}<%ef® sœÀ6PU t»47_âæ 6.„˜)mT'«Ð26ƒxàï PÄ<ªåÒäƒQiHéW„ÔucÈzCðV Šçoˆ¬± Í„æÉ&Ìj§’"k€»[†‹ü‰[¡›‰Fº8†?s0Yé%D@¨¥Ò7IýŠáZÀ¦éE ¹Î =xFWUAûû+)ÉLÏÅõèCV.—KYèö |:†05@›`X!öV¶<*’úZuéÒöã¹5¿à€›=Ä8æø±"Ä_“*,ª3Î⻫Q^r W 5ÀeÜŒæè(ªlšµñ¤o(cÅû æsõ ñÍ&_¼§[c;ßKKÉgØV†-£|ºF­í«kZÒƒ l¥ƒÐ°·‹"¼ž%ü2Ð|¬àãX‘^Œ¤ºØ d•lt¿êx óA@5=r+¢h ¦F[ÜæuÃl2žª×'n&ÊŒÕnªžt„bÏáM¢±wIC¥Ä}Öf\øRõ8Ñã|î})³>ÈYø‘÷rƒƒÏ\²kSTW{`3°2«áÙÎ¥‡G÷åk±º› ­@½Ów€WÜöAžÝEïŠ%P(¡ê`ôKœ­S£±Te†¯ºg'Dcfâ‰ý«Øà6&¢H‰jq1žÊS7Èì2ŒÎ{¹`R/rg|€â½ˆ´¥“ô”s4Û¿žøLúºÃd3S±°V4’ˆ¼íаR•ûŒv›Ü7•@¸–Ü꫺éÙ@ŒD+?ŠðòŠ4¨e}G(ÔñêHÏЍÄÀÅ6hž1'£1˜jüß{O–ªò2pM3d¦‡bGÑN†–]èƒÓ,í;Ó¸1Ãcf¬D¸‘‚Z×¥@ø; }¥(±ªVø|%ÉÔg07¼eU0€òkùmÁŸnÇ¢ìW«´•%šÎl¾$ Ú†ò¸tÏûÎ岌߲õÉO™à}ã0e7ö 0ö\“z SÒ4rveLŸ4G½O?1Éð]³u7ËÉ—JÆÉJžL–ESTh3V«Œ-½?9.‹˜H†—œÖ¶Ð:fPì_¼™INÁ¯N+•¡ «±mÓ—ÛÓA¤Ôá)Ꮃü1iI%`Zƒž bÙ–²QР茒ÔNžžwò7sðßtðËÿrÓª 2BrŒA ae·Gª–câj×kaRw‘POG}g<Š‚¨~7w›=0´yŒ%Jr{¹æb/-V.c¥ð?-œ|ߟiZŸ ©.¡XKdw‚ø!Nø°P’.ŦRÔºqÜAö²8ãóýÝtq¯NÖ¶À©$ ó£.ï¨9ótø¸¹÷_u»žNÉÕ±“Ûá›5¶Ž`‚c¹ q¶8Ô HŸL%ýPšú(TÔøà¬<ë¼0¢"Åë½í÷…uðøšG’ pü  ì•>ZJfƒ¯ör*[¬„Âì¦Í?_Ñû$ÄæÆ¨§]-«å¦8ªŠÑÊ4üiwÚRÂs³z®J•#ª H“£iÆÌR%R…5•È@:ñÞr'w‰87@ÏúŽãœÄ=@§Z\o ‹ÓçDX÷@F{M„y€íñ=ðXÔ€ùq¢¤iÜ.•~­¿úý e‡™´å¾”"TœI"D¼»e¢Üê—$…æÛòM8nÉw/Ä2V³lñ±ÅLZå7¾úŽqD:ŽAoR¾8– 1Vm—3rçí‰èw¢(6,1}¹Õ¨ìq§ï¾Ü‰£Ð;Ðä]ËœG+` ,ôͲ¹Ü­`,29Óy¨ƒ™‰=GFZÞ6‰Š‰Ç*>Ü´Õ¶š±+Ç™ãm&uhÚq"~³ÖÏŒJý&Ž #6~0ôP~›ízÆ–±+Žfж€Ä ³£#™¡í[³0›]h“’]ŸTŸžÃRƒüdl„çØUã4Õ»â˜2}hjP:î·#ÑUº ¿ö¿ÃmíE8£«‡Á¿câ—Zàó„@Œô†hmA·ßë"¡kÅ´à„ÊíN&²ùÕ>¤¾FÄ©€‹ç4(•¨F‚T ž`¦ Ì·³ë/Îø—PÖ' +÷ðÐŽÙ ÎÜ1M \˜±þ}µæ2ù$ºÛ¿<“(a¯ð )ØÔ/$Z"ÀÞ½R]3çWâsÑf;€®‡6¢‡á8»šUyIt^åÇ()¿ÈS›;â‘ *qŽ®¹¤”>ºwÐÍßÐüT·N·ÊÞ ®|(Ÿ¥ ~4%‡¸öP/õe’ø™’Œ•g.ŒÒ%]j|EãJ‘ø j†Ú¾)ÿ1XÅqSƒ¾õ"¯ @Îü vÚüçºïnsjÒNgM“?–ˆrz»N£€Ô_¿$2Á×ìt‰®ßyÆë~Œ¬ÅðXáõw Ÿx鯎ɌÉòÈ(ÌB_…-÷Ëä 9ƒ7'v8¢Ïž¥¼+­Ç@•­|!Éi{.ÜÛÁ 7PéÌ"øuØHú¥W$ƒ˜b“2go©¾ ü×^döí%«dM+³Ô®À½š SB))}@ø\{ù¡3o°¶Ö¾½ºküU;R¾U<”iK¶{·+1®i{ÒY¾G3/u§¯Ö&´«‘t„FGrôÕ·ÊŒï/›e…2_lM–rèïOä·ÄcÿËΣ›$>HÐE÷„æ) ”P“©I8l€¥,g¢®Tú7¶ÃþÝÊ”9e—ŠI#.h¶éÙGq»½eEð\¿ˆ,¥×åž–—ÛXbúd&×£5ÁLÖí|XX^Œ§Ä-VïÂ:"Bå\Ì•è²þb÷èTX_«ŒY‚»xÑ9ËJkÃîöoÛz@A®‰^ ĨZ³nåRùGݨk­y#¿;a|hYW–Ô×ÈŽ§éQuo3eö^´”„°Ð=Ö ÃXS$ Å ˜¢‹OÇ“{‡~üE7ü‘ù¨ @Ȭ•÷¼mûð„kÍŠ—x4<µø<­¬³ã¢ÝüÓ—½ù4Ëž¼UÌëÝF[ePæB<7GŠ0n]Ïk¸¡•Œ õ/†Âºs —ÇFû±u ÿÀWƒ¤=Ip¦ p>f„Ãþ±nâ07e°%Üi_Y~¤4c$0Þ´§ÜiWaö®S£øvÿ°2Õ ×ð؆ä$iΩ ó<„AA2XE¥ì¥}{±y¢£%ïE ?JB.N¤ËaÀXxˆBoz¶ÇžŽ§ÇFñÅx"VNðJ‡ëj—â…&fì$LÂ?ÅþrQ–c†NϽ ±¬ŠwGe4)._9ú0ºÿ£Ã0„½.L2•ÙcöÀk6b×>aft:ðRß*' åb€9ý¾·¦(ŸZÖpV V}4¼O¨T¨Ä@ÂG\Õà‚!ôñ¸x‡bíENÉ/‡$™ -[î’þq!¬žo-ˆ9¦”÷P¼BT „Ú“»§¨ÍÝ$¹¬iÞVÂ\ǘŒŽg’´ùG£;àål¼ñ>vÖxêà¡”ô¼Ü¬‹DAÉà2Øàµg§˜üÀþ'AÿÚT,ѰÃ=ÀJþ´§ÎyÖÂß™¿X9b-±ø@¤ŸÈtF ÙœDU`…뻲 ‰¡›Û:‹PˆŸ FÒ›dd†_ÎUR›¯ÃÉÞ‚L)ùlH ”]fbG›Òt,wP@ Å w¨ìÇ­È—giÈÁNDð¦Þm&¦-ÿ…b¸WÖ^ôÂÒöÔ?¸âÍZüÕsk¼Ñ¦¾6`âëÄ$3Æ—eh¯b”ßteÏ}^ØK¼Ôó@A¸µý·õâ|¯|t?´y°#ì¼vÖÕø>7Æw}îeT…ÿ@@qμíûINC\¡qyÂk!´»W‰ M±óã?² Ïì£×£žlÝuATK a(ÅŸ1ßIbQ_â×®Q?à¡àÐÏ.3T鱪ëÍ%^yûMÐw%“üßèöÄ÷jYl–{C0VL;¹ˆ“ÍC?é+SèLÉj·SJÓ.<÷-N>£&dµ˜z:M¸=ÚvFKQl…û>@QôÑ>–pê¤1¦UšÏõ¥| Q]Û_2ΟéýêcFä´HS4þæ*W¹'bRl¼®«%I…¨Ïö6lq÷`ê\# ¹vu'4ïÎy¤ÄÔïx*ŠB~Fq'ù:dœçÛ.¤E˜ѶÝîxÉ )Ìh(Ú,ç™LÆ4"ò;_¡;AS,7Çâuo„Þ¨:daè{ óLV¶!VÞu' xETe3%}„-g߈ÊÌ.VO%í“õzÞÕŽÄ4µêO×a0êÔ–ã±"ž¹Ú¨kü¢Ü€hÖ.|Ù<‘äa«ýoºÃ ÒÝgòSÞÎ^6L9ãd%Mí%‡L5ÀlHÇ»gΟÿ‹ÊÒï.Q²;c„µõÜÊ8¥™B!÷Åœ.़™ú*2:ãËiÒ«êgGkV¡M™@°…Û—ÞÇö&Þ‘ *Õ>ɚͥŸ#Õ÷Ø æiY*ÚÞNÀÆÅew M†ÝeVÛLq#Ýèôžˆ´¶¹bÇúø¬ˆMjÉð×…ÈÑÐR0“Zâ (_“TPšžÔÌ]cÍG²¿v3‘+øð8Ô¹ÃdBŽ€”Ôo?¼ üÖÔGùµSw4ø#)|ä0AW† ‚ÿË÷‹— µsµ›†º¦)VÓ¤²øé“À~¶++…z’ÑY 7bTFé_)&Ýz¯Ü\¢â#áÆ5ò†8{t„?÷Œµ€¿ùï¬Ùª@ÃiÔ¥"p,׺ºg$‡ÀMŸ!Œ ô•ÄŠ¢€½íÅ2nSjÛmV`Òm$ñÐHºÜYP}9èiÉaг<ÖýãÅ'¶üLVTÝĈ·²XYó …ß3Zw­ t ÜÝþI)XÇ©eâvšd§XD`¹ëW®L_ð'å{rëPº)6Ô–¿IF¢¨Ê‡Œ5¸d®J²7š>ƒ¹ËǼ–¼ê¼ æ¦ÏEW*Ñh#–O,,³I{¿zÃÐÖÊ­ ¸`üNÄ‹†Þ–¹ü¡9Jì ÖôJ;¯«£ùxM•ÅA ÀßkYa?nBªC74÷÷e‚eЧ=Æwy1ös+E¥K]ù‰iy€ $A†·š%9㣿Šçýï’Nc§I°€æ4êm°,*fL ‘}(ø›a©4L–®îÂÕ€ÃÙnðdûZe¦PÀôÎDo-|¹AË …yûïä*¦÷C–ç7æÕ [ûg8XJ§¬yWQRãŒþ3$Çy©[IhDÿ÷çâ'Ø[ËC™6¬pÍLâT°àªAÞK>†³A0bAÅšŒÄOJPç°ÇÜ×Û´+ —*B¯¤á"`–ej•5$”¨Y°Æ.‘— vu]vÿ LÊVÚtæfî¦=êˤèoCa9—\¬NˆËX¨(¼H ·ÜqEŠïrw‘žOní;2ê†[î¯- xÙÚ˜[[˜¹ÅÌx}äñv€è*ÆÚ­›š¼ýbJkuÝp×?»ò†l宨M´ŒâV×6ØôïaY¸,Ó„9ØÍ¦„„yà! ÷¡)«¥÷gaN-5Ew£ðZ¹wžïê웡kæ©ïÙ&D¼ZÉaµ§«Û@™B,þ ’ªç/Í%;üâjc$†ATm@ÈÜÔ¡ÓÉM&œçÒÕê[uÚÀ'¢b9—@©È²<(=èi¶¶w ¯#v_Ô vev‹¸ð 1ÞÓ>µüõ¥™r‘p¶ͽÆÔ0øñöÒŽÙÈÌ0†»øHéác]kÊ`#{Žê‡X^éõ‰Ý^ÃÞåÁ§£¶q¢›Vb ˜½!øm £Î2ÿÅ»ÏAºä MúgŠ7(“DXµ… 7¾tÃõZsµƒüOºk¢Þ55¥St5·áÆv/0〰‰W€~Õ×G 8[œ*9.æ™WËÿBj¯DBѦüÒ¡§üì/b´ÙN5 ¦uNz®Õw€úÚó+]‡í÷e+(³ñÆŒ½è¦Û {zL¬‰ía¥§@¢¥î‰GHèÞÈ(Œ;|ZÒ4Ï<躮§Ä¯þg5ùÉ 8–3º¡kJÏ9¬J Ö’¿$zÎH ieûV•Í‹¤G€¡—mÕ%q»ÿ³7>…‘>¾•×,èñýºzÚeí|ä¨üL¶ù `üö8F•ljÉj»ÚÑØÐ¼èÕù,?â ¾yTðØ'{uâ -À ˆôâ¯%W.Ó3äåû¥ ¬Å§ðWûq«dÜTcÓƒlYÛ"Ë¥<æ¨Ìðìž² ±È6Ã×Àl¼æ$†õßë³Íxl½CÌ Hè&€Uü—ÒMȵƒ“ø©Äy²ÙÚ{B«XýÛXQ¹®A¿¼^û ?*z×Ô×ì[áYÍ©>W”¡3ìM/ ÐÆt2¯¯~#ÈFÅ=Vb¸žóƒª—ȪJ[9Õ†P9™W‹qäñëšÇpˆ&ºØÚó9IÞËšè~ñ¢Ì©oëÌ­w ¿u}6/3É5A¤Ó0;½Ä!Cro­ï£h€äOØ]êRx“Ü€6.ôU?‚6Ùž|1Hœ£åÞÆVö((° rF7‘c‚b ¯Ü Öª´>+/Jˆf±E0MâÌ,vOª$ŠÉm"ü¯¡ˆ{êHëpsqô÷>ð'h€´;”ÇæËŃíëDnf³®òÏ4Nɬçe¦¶JM!ƒäJ£×¶¡‹Sú7XK”OÔ c¹Ô'Í…‘ƒ/E8(= ìd½Þ?|Å-pI“Í81„Ák<ÙÒµ·€ˆ ¬?Cë°Œ¥Ò™Êïét}>ö€$œ%Üð±’µ­×1m¥o’FØu†E“MFkÜÚ³5hø&•ê•ÉÕG|È[`¹ §§Ÿž.«¶d¦±9£GÉÍÖÔ7¦t v|$ÝEà ùš¥À húÓÌ—·êÃntÊ tj¸¯JD­Ã"”ñß–a²FkŸ×&³¯;+/SŽ÷‹ü•¾‹?Gâèìq±@Ž›ÂÕ oEÊ­…R…ß#¯%è¤û Á yG•ª®'Z°^QRxY-BÙ˜ú3d#i1wX¸Ùt>àIþïJ8A¨Š:3ÐŽ€hœ]>£H…ûèüÔDÄG“¥XAß(¬h8øZ1z騇C,> z”A…ïý‰›Kâ=LZ,PG*§T>×ÃMOAoNSìãkv–¹!-•û±Ç¸õ"ÝΠ+xÃG–Øœõõäƒ\é¾uÛýAL¡*Ū«+ ×䣥ùþÏ ?ò­¬¢ò’WPÝò®aÃ"oýâÄ41«»É¨2Ⱥ[|¨ïBAí®nƒ<âCB‘Þ_L0yà”'-ˆ l{áu¼7k¾_¼Ü?ºŽ÷¬Ê Uþ…*k.’¤È€¿ãÞšë¥Îƒ×欆ÜÅ>̹ɧ¼¤§lÜ3€r;t<Ê¡ï>¾È¨ޣôfùB,P»HÖGî¯;Ñh<=œ³òÈ®Æo­E3ä†À-¶PÍ>Í]Ñ—&$,fš=K创=fÁðŒ‘‡/"+š% ý÷ÑC2ÅSŽöóyÑÇMŽ5¤’w¦AÈe>[›(¦¦^=¬FxTvù_ÇDo6¿Å- §æ8jVÆLÇ*•}¤“…Q¶nk= ðÚŸÚ¸Hä(! =Éâ‡;IènõƒˆÌ¡…dëhè3"vÈ$×ã̱ÞÍ‘„Âc# ¼ß-Bv’~MhÛà)£ r‚øDOúU¨\Z‚_¥)ÝâmûRÏüûÖ_bhšz1+=3#Üùìw舰՘xTiË_pªæWÓ‚à±ô02¥G¶W&ƒÑ˜ô&âÄSƒM1“UÝ8 ±n?WW—¦Jý9’ ÃÃht[‹û†Í=ß]î÷xfæøáad³¶îj—É©\ål_ ¨Ša0Û² Ù­Üg’YÑq^÷Âsu?ôñ¾¤QÌšP~SeÝÞ!*4‡¦ê®Ê§ë»4÷†–e’M q§ãWJV²zžêÀïzŒnIC4æz¹4WÿÂ=—ë76µœÔ«[œ°Æ°9ɨw6°ÉÔÂáìÚh¤I Gïä'èôÿNåB„Mê”Ý 'pÙÆëû1T-àK¢¾n…D‡¨=‹™5jsxÃEÜ€‰=‰^nzÝ%‘à¨þ€!Cÿ:·¶õþ¯óæX_‰ê:q‹SnÍZØy¿XïIV®å|’•5I§°Ä@09´s¶sùCdV>.ïe(ÚÄ¡f›ÓËÞ9àyìS›j² H³zç.Kuض޼‘SöØ`©c¢¼| éŽ}|KR”(-×´>áo,ñ¯n†b€Þ] ~…UýeïV’IŒîb(:nœƒìhïáÚCu 5Eê7àÓ4iÄÑü¥Çõ©*ôs|³z$쿃üŃõl‹7xH)B²1•Âó¥]o|ÀíÚyOÒ¦¾¦rn²}ñæÈð?-ìâ+ã6ƒ*‰ÅÊ#ŽŠgÒ‰›©=Ⱦ¯üæ…7A¯jc{´ä«Ci3rÆù®cAùïšñr¶ð”–tk1˜{p7Å£ #Qv¥}M1:¹pãºe¨¿« QaêüxǺN@|›Þ¼ô2°|} ö1B·D ò:…N7ÿBCI#Ú)—?ö‡¢µ$ÝlÿèbÏi;XÔŒ6äe%þä£Ëô}N ®T²À=oÚ3ºúÄüþ(Zß*+ÖBžÄõt£kl4>óòöŸÉ~D’†äèsx§Œ©É#vG)?½RnO²¥¼oÁ…ÙZ£2þ­{HYÏ.ŒåGŠÌ+'œýÿn¯h—ïa]oA’Õ6Q¥áÀÔ5¹6üq-™gºí1Õ°e ïrN6çÎÂLè±ÜíL&¸ x°°êa|qî7-ÎÉY•ùð:ÌFíÑêÕ1ÀH„òÉF« “ÿðb¬sdbÄ3²cp×lIȪËOÁM3ìf0êÆPåÕ} žŠ¶]ÿG¢Z÷³_uÌÑUnд)Ýâpï. ¨#†f°d†VÍÓ²N  yR{òÙl/J” =ƒÿ4ÕnÏŽ +)xX}•?s@…ÕH+`*oßÍš¬DznœYÇÈK .pq¬36¢¼@ fï¯i6@Óî_•îy0mÓiFTΤ٠²"éÅóh4®X¶Üd&iH´é|ç1ƒ¿îxR+C)’2…àQÉ:„šA@á#{q¶B ´R©6Ïí*¨«ÞciÚ¸oË·Z ˆ74à½Ý"ÐàXžŽ"<|ò¶ÄEFÍ"rP^8¾!Ï<Ò¾Oÿ¯wÒ ³ gª™-Øó™”ÙsQ—ù!",û¼Êªoj³¶u!ØOFç8&(-û•’kV°#r%St¶AW”d3Û³A?#A%M“ïîü>(“²ðÁpGhë,$N•ƒ.ˆ—{‘&a t­B–,mSݱËbZ"Ä4Y³pù³÷„Xel…Õ¤t„ÆY€¤*y„}‘‚ô‚ ºc°œçfš€Ï˜C»•ÇèÍ€è)`¥©CŠ7s)NV’í÷¥çÛ—‹ê@öê®ÄòbðÍ‹ÏÍa°dÆšiÖ-„€t{ŸÐe>Þ§öP:ae>à@˜Î*ž[«<Æ’1-£_èÎRkÇœ+}Íí+z$ÿâ ]ýcÝÖO^Ñ#°JĆB-”9…(ìL†äDÏa×s˜XLÀB¡d‡œÂY€Þ®ÐD1dÎs§¦ØúPZ‰ÉBõ(b|åŽÙàwq¯Ð5'sx¨ ÇPé\‚üãk•L‘Æ´9 œî ï=Îëañ‡"O2ëøDûts¢bþø›{誦>מGÂSqŒm ½ç¾Ã`IP‘GlÀ«û)BWo{ £—.3~BGû«sââ—TŸ¶¦|\ÔjbQ)½G­ÄdXhÁtòX[ÎØ–0£ƒÊ>Ïœ$²R>I5ÂXÁ2äEè>»G×OÀd‚…œµPJß}º C•]ÒeÜéüÍlë Ü–ÞÜ­¥‰Ü÷br;Í«’“ù&K{.†„j€Œ4ƒdØ»_Œ«Óq lFИÏz¸‚ #Ÿ*nø‹ˆ5ØDÆÝï*¡·ï©1[i‡¿ìšQ§vHÓRÿ»)Ÿë80*ûºžQ[§ž½ ªÆ»¸V­A¸ÒÊÀéyEêÈyUÁ+U.qLœìÔšì•Ô(Åo !®<Žf÷çÏ z„búOý ¢?Õþ˜Lg5âÇ$"b½VP ;AÇ}Z·²ñîð«Ûk¥ê‰¹Ù$vï„ñ“æ¶½àÑ[‹‚añ¨$å_™b6Â_lD¦p¢&%Ï(1ûc¢ŠÃ=-`¹€ÏÙ7Á|H úŸ²\ä ¼ÿ“—Ü«?Xk”µ¸ÀG䰸Ϧ9ÎxC?rn¬Ö³Â §Y ]ñéHÓ²pKµA (Æý¸u„&A?àJÛ"^è2"3sÏk&]löþ½‡²¢FV1P„ED>Ǻ×*ãm¨¿êvÒ“*·>­’5 !…­‡I$-Â}ÒØ7O”œUì„“ ÇKUðT)¾£ Ø1X{CÖJ{mÄÜòUWV¡EÆôÎ…èLá¿B|L6ÿ°°'LÄ¿§¢åiôIƒI·ª6úlO%Œ¯†NÂ\|˜³¨f cÁ$ý³&PéBŒQ™N«Îˆs(} ¤¢qW‹æM]­4¥ðgÖ{váñÙ÷>ó‡6ÕOò°{¨ðýme‚J1ÇÔësõ†Q¨äÄÜsಲ˜Ró©a’M…L«#›*c͹iÁîQ”ךwLz{Ï'q8ÅÅÕ‘Eû÷$YïÔíx³-ޏ7ÐÉ•Kh9«Á„C²d}a¯)d]}â å«H7 !~î'ŒÎ3Fc[b<ÓÉ­Þn7¿­ÃîÊÑFß™4 agâ¿c+Õ¥bª=æµáà ù1†ûK ân¼EùÕÔ_, °s,äç*Br=Æ0¼WêÜÿ]V¤[ Ȧ•€Géæ¾[òTf$#±p¥¿ãý‡!kU]ªA]C¾þÎû´kÿ”t@–ê—j‘-ñhãªí’<îíòð¾öÝXæwöCçPy1?@æ¢ÆyãÔ ²ÔªšïçþuÔõý(£ºk^Ò9¥+›ÁÃoâïè âÔnÓVuXº<~¾ ®ë;å6«Ñ1%±•pã‚ð#ÓP<Ÿ&N%"ñãŽí—JÄé‡ÚrÝÎìãiGë°dç¶Ö4ÆxmõÀ³‡·Âï^2†X ‰°þ:a§‡ó°ŠÙË(ø¥'×΋ßAö$-`l«{»–&XhÇ·A; CFr´Ý(Kœ°ZÓ½ ê_ƒ¹T° <Cöw$/g/’$ŸfÄ—Sð©iÁ÷šî¯D½wX.|rÇ7K²ûLz,WC>†G1N´nÖ»è­Èé‘Ó I2¿DdGÆþ<ÁGq¨–‚XÈ/ ÚÓ–øH×UJ'^ön £Lçºj^T^Sß…Í‚´ÂÃ"*‰´Üâ¦ÇX|›çW™x2A¼–x*ÅÉð*v0{ÚÜI†Ôý¢ÜÔoÏ’D„³kÆì–Åz ¬bºê9K—Ò…Mox×vÔ IµðšB&/e™J%Û¶Úз@b'ò ‘ö0æ}@L#…”©0ª7¤6([-+;FgÝê…é.ú«õoóf%Bä ‹U³éTŸA†®Î§vŒÂ Xp™œ2i[…S¼lz¶¶“Iä»Ú¨’{Oh·»‚#Žgçï—y¹tÒCÕ4,é‰I{L~^&*øžÖD”±âïsdgüצ¿c5¢þíƒJGeRÑqxìüfO¯DgŸXs±Už»r²F¦D›Š’ß¿z‘f‚ÖÝAIµÍ+€Ä².H’e±Èvd{ÌøCL䣌ý¦ˆ€Fϧ¹CävˆDƒE3\¤ *ë ›œ/v p(7;èßÖ±ÀÒR~ß$yTføñéiÌ|ÞZx;û7Qþ“¼[‰ ZîZL ˜õÊS ÐûÙRñujmŒ1Éc¾w™4 üç@j)¢ÎÎû!ÀÀRG‚D±Î=Q§b€ È´3âh‰ 2Æ ³p¦Üv®÷Í•ÙíBn]…-p*œPµú:/Ž Ig.E÷$9EÃ>b  Pj`\eÂ=Dõ”ùR=j\å]éƒM3ŠÄ§eù@€a5Ù¦àš]©‡SB‡Ñ›KÙ>aÞ¦ËõAûÆÃ›’`…´ê]ë ¹`‚,×¾–ƒuØ]ô¿ÒÆ8-ëïöèáXVwC1©‹Ù¥6)4h‚VûôŠkè8|Æ]¬Þ‚}­9é—RJEãY÷(Poy7¿©'æûTúâon¯’>OŠ¡ZW~EípDšø¸eúlŽ”æ’ª­9Y|ÃÐ ê¬¡Ñæ^Y)~úd~R5i”÷C¶®Êú*£Aˆýâ#˜ÕZ^1Fdoðg%82 Š›Ô$©Ã~“°©ý¿ÇÇÒžO‚ Ï·s{Ö¬•©þ]·Wê ²á™½¼5êq/;¢÷Ì-„åïþû‹uu–Ð{”uC‘ãu:¢‹³àI¾ý,øÍü8CÜq·1¸žnù(×fÂa<× ÈAäÙXBDzQ‰×ô ã ל}^™j°6>1µVQ/;›œÈ1Rºš†Ü¿Ë[0éÕsyj†èÓLÎÖ±Ùd8RPÞ-¡íþq<åÇÎÛß§¢ÏëEkŸ'åž Z(Æ š§ö!ñòWÞÅy\:Úž(󨂵˜Žó=#Ãý@ÄSTÏ%"ú`…4¹4ªö)/_Æ $Z©>ì¦ø¨“ÅÚsÞ jç2ŦDn1Wu¤à^‹¸!ºÛd½T•)c^A1Ö>Äh㨧˜¿)$,¦Ç©vòÿa¶²K ‰¡RÂ?A*‰¡üTWÇÜËR~Ã4Ô>k88L† ."—Y¶è$𤿰+”bx/µÍÎzá’õ ‘ ¦ýÿٴ;76µ&˜¬²dƒÙ‚Íõ‘©yoÐÔÈ“4ØWšãëz€ò¡l~ðòÐ7–¨XŸ³ríõ:gº‚ bíOÊx>âÝîYe¹.N•‡ô·‡:²ßh††¬öâË>“Í›ºˆt1×Á6ºá[Ö7¢î vÜ)â7¹w'šèŠñþßYÀ+Û¶ ¦éB€ÐîØq#O÷e4ÛŌý>¡o9KaèëC”ₘ ƒŒ—½ˆØa½3e7gõç¡=´®±¦ªTêÖ ¯È}´=LÛ׊c¥ÇNÕæ„¶eO'_߉ùP±a聾“-x]:×aúmÅ9”vocžŠ0Oh¤ÃZÆûÊO„єЧXÁ­²kc½^Táö îñeÀK}Ëøˆ/d¡Zf)˳ƒ:Ù¨ ³CÉýÇwý ìÓMã’÷Ÿ:Žh,ÚÌò Ås|ǰŒM\´¤q¢öoyXj[²ºäŠÕx ÁA'è»2ׄÜÔ¼ü*¾›þñÃ$6Ÿß»ûrDÏËŽŒØþ‘RJõgd8³54~q„jQ7a#ÝvÔg‚¼÷.n¤—í`$d܃eµrÒN¨Õü>m÷n<¶Sr®gºt”‚žù\L{(#rÉÑÅWÈnÂ'ì‰wÅéb`(}ª=–kZ3YmR¡Œm)ÌúîüNó·3V°¼ÄBÛ'?“»U.|@*Ÿ·xg:Ý’lOôñ1Á0è°y+£QßÑ}Åœ¿°@~·Å3К§¥Iþm¶°¬*ñdW÷ù„òbñ¨¿Ql·¿#< ­6ˆxª½Ùnàjß¹V†gK…ž¼Vv°K<{tRæö‘°æ"ÝÓl¯0ÐŽ )’¹òDÊš}~)CÌìG«Z¯ªUå€~ÿ2ØÊ¥vBãY¡¼Xê[giuEÄQt‡UÜf)H·mâÕ…O`Æ.«Ò8^´ž½ôW{ /6’»~ÎvvÄ{ñ¶Mî«Ö-äÁM(n–s¨¿ûèÑ:Â+„’ª`½luÓAØÁYfॹ7®èI„¦ám¸«%’ÿoïBi'|¤}–ÛL[îsl¥Qóàe¡ÌQ)F#Jj½_° ¿Z»£¬S‡¶Æýô4½øß x˜Ò2G³FE¶FjÚïÖèG¯B,ÇFt ¶NÅkMhÂA!÷*co¯Ç,>¥Q)N×f<¶å ‚dØT±4²!ƒý½ßxG«ä9qÚg‹åþëÚ442z ’⢦`×I+ o~b˜çfoï^^^Öã±òºì›aäÀ˜O Ó±Cü†_WÆQmñÉ”º·ºr ùÅ®R+Û,ãm"0w!„¶É›ÞYnãÍ3Ç©9Gž)¡b×§K¯Õ1ñGò˜ë&€pèç +»X–æÞŒB©% ¤O$¸µ„{jÚ¯¢NÓ¾8½TéD+ºB´¼ÀôÛñ.I]ˆL²@òoR[hM-±Ê[JµÑ±0,F pÕþ€­µäöJÊL8õÚUïʈ™_Â#ž£c$ÃÄÑ>@¨æp³Vþº9@ú[’\¹bÐ1iµü)Ô6c²¬y7U-ÀíÐÖ^ ã‰õf]›oG"Íí!‘‘y Uxi°Å”·oÎ^ÖLÎpjz8»ªÎ¶õ“ûJÑúµdRËiàûÑH=#wšýG…ä(ß›ÕB”ÖéæUíÖÅè ¡"­‰Î€À*à[œu‰]!û÷Þ!Ã6/Èö¶ÑËýTþuÛa†Îé¥îqgÃQ¶{¬fG‘îíJ[W‚÷*›í†×{?G[ÒMüÿãGÑšün~÷dLšL!†‹Hw|Ç®©0ôñ«2²ïsÏäÉKyM¶ð§UÊØ†Šý´^|*™Ÿ@{h#sËûERŒýÃŽ ´“<'öõ„…ímÀ2«ª%:Vˆý>7$¿&“Úù¨~-3ju í%Ø´iÂùúŠ.rKƒó(Ê‹€(D•õ}¶'ëû¸öjÁ¢!t)·ŸoKhru&xzºED¥K’Ø 5§ öS9|cQòµ¸èÌnÓ>”dª8 îŠ>xx8:ßJðG¢mD}]É?Ûšµ„i“XÅ~êd° 2ѳ®i_ڡ­"!C^mðÚ×,ì¸Öè~ºñ˜*\ªÔįqxhÙ*ø¾Ï¿siR<“›eÊÞi°ëüj4>C–ùØZ:x†YÊhÜû~€K”7|Í¥#Lôßeæ~%ÿcÊ2”ÿµÚê ¤t”9:à ì( ½f„’3æ„PÀ ¼9~U’ß!+Ò€eàð kåô$Y͹mÞ ;ÑyWøl†qÅÈâ”æ°ÃèhêLŸŽ1¸ÁN‰ßÈ-’4Z>ÅÈI¬Ú>ü§üÑgÒ¥¥©¸e5(t€b0³?UéíöaŠ8ÙX¤™OÛïáøTŒèÅc K¦ùíý‘;’\³ /$ãÁ:@ËëÙ™X>Øîs*,px%õHýëko+xÏ=C¤.EïŸP,$å¬sWÔwÉÐw¡\Ø'Ú 9¨EŒr0›þ.ÌLšÖe!Ø1iw»L>buØÌÝËQŒêš÷MŸ>ÕdÙð+"ê­›ƒ  NÛ<:iwæüËöd›øù0¶g²Èæ(¬Ù²&µ½Z˜åGìR\´ÉÃNLØ~ü+ÝŒçRÍ]·šç%tdî^óŒ„3aœWoTDu¦Ñœ™ê¤ë½t⇠=ħ#Öu;þ×"¢ß ÑrùàÉdÌ;ï>ƒ–w¿{ù;Ôµ }¨“ì™»…ÿM~ð2*™^\ë‹yõ¿^—¾’û·ZwA›Ž™ÞÃüÉ þ{•+Ô¥ûxiÔK{èwþ nªšóšF†+ä@„­Ûdð ¦D1I…fá Ÿ†TH?DRáoǰ“¹GÞœ‹ó€$µ É ÕÛKÒ\H6'”ùB&²ˆäë°Ù&u œú¾H[;±]ˆL."ôé<*;ÙvFLþÔ͉ùÙ[w¬JãµÍ.{ä=d—¼…ñåUB®¶9“>]Ù,*R§ dèZµF6{ἣ͖”ò+"ÖaöŽ¡5åÒInÓ‹¾êðÁVÀ2’ú€½&غŸæ&æ•`.ö¾˜:%—1_ε1uØyáW[¨JšYʨÍïõEŒP¥±!<çdùiøj9BhÔÅäÉhC¹Dòsª”ˆ<ÕèÐ9ßÁ«M/ââ1Žþ€Ó6'ŒéâjËFæk2­®ˆG[…:EZÌ>‰WžÁo‚µ¨ LRLICåÐI/`³fDßSí9àLIÅdÉšÔ,OÁ-ı¡úµnò»½ÐcÛ@xí5*‚áEJâšFžJÝ7.r0-˜£éAµð¬þÓï}óA¢cšç”´èšúå*XëwˆÿS„¹c8„Õ‘î~áêI Ù„¤¾·÷ XùIy³ýÝPãï+,cІÑýÖÜØ¾ôìƒ2Ø”¥úVÏr¤1JJñ›¶ êï®Ûš_næHÓâíg-;p 2踀ªGþì(p ÀP$ ^Vñ漦[Iºœ'úÇåý à näJ 9|꟤}¥byE¥ÍÆ ÍU–O¤j{VÛoÓêM'¦§ð»cØ";-½ì Švè1Ô'7€uòÃFŽ{èøP°àó*PZØzfÃÓ´KKÔ»…¢ZÉõ¹"éñEMØ!57†:œB Vhlœœ–HÎ:.…àÏzÜ/ô«’jš«°_ÄSb5jL—]DÆý]‘ „V¥b7óE饋à(g@ÊêFë?C`±ßH®)‡ª…òP߉Šu§îæ×q‡ü¨eÒR^Gžº%É(¯Ñe dLá´‡î÷µVvjY®jèé@œLø J«6š¦(¡;Ë/ï›OB*VpûP{úJÉæ½üÁœ‡òw’§é­|Ü _0_ ø_@|Äç0{£ð,aE÷t"}ÿü«š¨Ðq º—4þ§´`¯šÄÐJ´Ð¬ˆqäÖÍ×C³é)½ ç²HK]+]\€ßí{³,ïTH`í °® }ïæzÂDPµ©ŽeïbîKçTù,J´nl4Q×PÚð“D »Þ.@CZ Àmy‡Sè¦Ñ”ûÚ¨ |Üã,7R8~ßøì!úd((7à>AlÇÓ:…7Ë4O' ÙY«;ö™Žj­žVKež«Ö6*ºÌKS°ƒ†ê»øÔðêXÈþh¥\+n:&3„>â}›N?‰&ÝH³LÁ1÷þÁÌúâTv3{„øÆìKõi´Å×àã¤qpB‡ÍÝ=ðu-bDð9¤uÑ0. ‡×bk*1 ÊW œác*ð Ï4§Éœ¤9ÊZT©µÐëJ·DÉ”¼­^ER´pfxs¨(ð8±LQ°7œ W.¼‡yŠj±KÏ Gœt„Tµ)ÀÕ ÈˬϼuË“ P+¢Æ×*y¥)mBdU¤Ö3émüþPt+ƒ¹ýÉXɺ[ÎáŒRxd‰CB'*ãz›ŽãjŒ).t `ߎ'ßáA9*J¿%̓nX.nët‚1ØŒlë5 ´Ð'¢ÏŒSH¸Ÿ.FW7cÐL|RÉ…òŸ™¥~×÷düåD8X‘?OBˆò‘;e&‚?ñq 0!#¹ãE5(p ˆ„ÿ¿rÌ ÁjOŽŸÔ¦ ÂÅb—D£Ä䌵˜m;EN M ²äEÀc_ü²¯¯’Z–äšFÆÔ³»!V$ö]*­Ð…tGãÍä’önïÑô¬÷Ðç©´ih¨Å•®ÿ0Ųé‘ò fW¶S¼ j¤ùxñz¯]ps~u›ZØ%¨ÂÝlq³XC-~Ø.޳Hñ¬ÆšŸÃ¥´vu*7r`…ÓOÏ  G+êo(#·N+Žžäc*ª›u©ÑYl‡[ËJÄ«½‘îò [C½›Ãñ2Çú'¥b=Ð\€ái•¨6,“v2£|2ûÝ‚rsá‡'˜‰Íüÿ+²"Ng‰¤YÂæíÄ£xTt<| çX& À ´½Ø\ñ>Ò‡ƒÄ'uX¯;£Q_õéËÖqnr.õ©èúès‰–ì×-ÉnW•Îù±\Ñ%§uñËMœ€ô¸ìÉJ$ HiHžvFAl2ˆ0KÙ?¦ÖÛ8J¢áKVJj@ãeðGÈpô?ÊC­Œçå Jøxå®5VºA™-“¿ïÞc]ˆ£0 dy¯÷Â…è즗¿.@Ôá Á®°Ù'€à òA?\¹°±Î…ðÚäÝh"Á•¤U!űF¼)Øv©!kœV¿Ù>¼—òñÕúð:Å3­²fµ—ÜÑ~¨ô¶1[-°K ÛZS÷|âk"FÒÑQ׋7õÍ•Ì["lbC&´Í_åÐÙ‡F êré`WÖ3—í…·i¢’5š-eâF¯MÀL.·–Ni¾MiøO–ú[HðöÄ».´á…ÒcbÀMëâ~ Ûníÿ–âÃn Ó¤Ûï „¦Ï!™A´½RŸy‹0üåÞÄìÊ: „ÏåèC“`ºH3jWˆÿpÉz ³êäí†bíÇZD×nÆ5\iGäû=OjÙFòõ4ûÙ+$ö¼T=}q™¹ HÌ«—O’e°C+ºÚ‹Ÿ«yf!-6¬(}‘b8ó¿B0.ǯ"0næ¦âQÀ:Æ¿í>å²£ •w)n¸±6¯â7°LbDØbi]ž¤ç ƒçn®¯ÒùÒ‰*¼á³™ä‹u“.£Tw©*š? ¼í“©ý£W‚WFÄE3K'Ü”ÇB}µA†6ΰ€«çŽ9%uÇæØ8]sý-ÅÁÀÎ_ëYŒàèÍOytÿèËìü˜|ÆH>çÎÛ˜äƒi‚ÃQà8^‡­¡©ÕSª‚4ч³ì(ÊVŠ‹ÿóWÙ (c£ÖsÀʨé—m0_å†Tñ|ùðUº …^©7¹°V÷v@AÇU€¶ê€zC M~B‹«¹‚ÿ§« Øÿ%޾×.FdÅ3v´án…VÛs>•Èês³Ýø%ù xävf³ª ±‡Ö|xÄIŸNŠñ‡Kx ûöš)‹êŒ:{àHÝäZá1?ïF}÷&ÂWUa¬œ«?93ºúñWÖpݶÉäº2€ª#G½aS‡Æeãwۥ¼øSùžÓ¹•\%¸Ùˆ GYô1ÂÝ ÖagZþn"M{DGzÚk¹0[¯«ílÙŽšäy$¡;Ãh=zá‰MswkayŠßÁš{ 8â…¸?3œŸPŽc ˆê÷Fµ3æS€9Í=w<}!ßÙy5+²m¹‘ÿY&{?6%›/u¡/– åušé§GØUKøV©’HálIFÐbõðõâ±…mìê?¿؉¦]x(¬_ RÿýWu=kØnÐVÓ²ê1d{B ¸äȳäßu:͙ߺt}™L⩊S¸œ‚†'ïÿ” ¬ø†²©²Ú9wLfD®£°çÔ­=û<ÜRŠ)¹Fp©Œ° GB-Ä¡6¹t”JÜgÁŠæãtašé×'2AS,Ƥ¨Šœ/²ú 3uïl“Zñ1Ç/q¶þ¨’ÊØÐÏ—À‚5ö22†ARDëý°h]|¹†¸]½9XÌ´¦å»‹¼ý’³4L3«ûl-œ_Ž»1°ê)ý5p$I–匨Ìë®Ì¡(6A.ÙäÏÿž·v¸ç•¯³&yv*ìý“võßø"M÷‡R™€ Šéu_‹ŒaØ h„ldD3¤h¦hédD²´« ÛrSÉÙã^­eW~!ï©Àµ÷@çP‘)1 CË;¬V3¢ yÝ)§£$!}‡Ôygã,ê†U$øœ¦£û'^w[,ù”/ŒSMMèœaŸqã¿7pµ|fëñ¶â”ýC$`w!4qÏ¿›üy°.JÐyؤ[/•4½¯P¯¨8èô€Ât«ðÍšþ‘ ºvAïßk°pú©®uü%Õ‘„…âïŒA‡k¶_±¢c,›t”ÕÁÑ^JZ%IÀíWÿ„½Ìí‡ó½‘Èb÷á ÿ¥wD iPC #,CçéîKÓã3f‡§Ž¢ µé¢ÔbÛ¼„`ýÒøkvIÛxù° ¹çK.£®pbM¨Æ“”UóÇKÁ½X^Wqæã%ýNLü¶‘ÙøL6 !ö‚¬¿×%nÿŽî¹¼…–i¯ò)[ÅÕVh¡ç/ýÁ$l=Æ`gú”iÁ4Œ§ÜÌœ…™@ý¶†íøsªT¾±Ï (bÑ£šð!Qø|¼eäJ^C'Ò-ãÌî°bLÔǧûåYeÛ’Ö= ˜õ¼)~uð)ÛáßlË&Ç+ÉnÊ YÄé W­ÿàâ#ãçÌ9m/PŽ–ßJ“rƘg3>ñ§œÔ¹T ö2+­H2¦€=Úds,LÞ_‘_–ÌîÅXÉäKscº/㜘,þ¨Ï§f×§™iñ4l_Qh:ÅQvØÑ·+B¿ë`‘j;p\ _àš%£À¦Í?‡¯'re£±DÁä‹^„äš@NÁ_ø£-Û>_HtutŸ´ö Ý¥cÿ•T0a^á·©b+Ф8’ #$Âb/3¥µ74BÔr¥ÝHÕ$bâ·Xû%0 ´CXûD(‹ÿ™ZÛRì6„h4‚Ó®VÛXM&ѶƒhFZœ&Ÿp”S¸{'­¦`´£–óXª§VzŠpÃä½®<}€™A©qY¥yu’ Ig,çóCÖÅ;nÀÃ<Ïo©Y[§ 8+ν’î@Ö^“—êö}ÈËqâvAoZ×–Úbð¿éÕ…âÃé`‹ & ¥Ž!qun$ÂÙy‚ýrÞ ·éë.Ž2K7ýEî%´sÛÝH8Ê®dý»ojz€„ÚLÏîtäYñõ0ý¹›ïᡲ‚ø´Ì´ Y:¾¿>”8K®µTϹm~.›ûç7ž ­[ß!`«%¤ s¦‘·˜Ê…]Z®Ù‡‡³HBã¤û†dvÅ’П{‚+ ñß'DµOÌð†«-D.C¡_Ñzt¬­]|žåÁâÔUßÞÿqÝæÓL’_éØ $Ñ–Öó—}aÑíºêN´¹bW’‹þUßZ`ú+ð4¸{ ,E€“»kÁü(Q — ¤4)òÌÃ9øžuÄ>ýç /jØÄ$*²¡†¤“¼«àÐyˆŠ@ÙÂq˜?òtÒ?yeÿ"H EÇ=mõìâXÛVªˆ{óÜP1rñNx”(á¯jÅ]ˆu·kÁP‘@à6íèFuðXÏAEu—èöIÓÞ²6ç1 A“ÉQ}:?„ÜJÔ3Áò)¨F=Ø8P¹RyÚªMI"®—‰^ÉèBt`¦¬z0¢½ÈßÌ}Ž8€èÇjZ®ös%Ã…”×Ë ¼È£'^÷švX+‚A/ÍrËÀêµÚA@Éy"mdî8ÍøpÂô‹DîÊ—Š”ÀÅ—u½F•n6`ÙuÐm! Óx%hi¼9aAÛî)ã¡Rˆ‡šø#læ¥béE8KE‘Eå8>H¹ÎøZŠIÊ'=5"hâü©ér…Ãó·þÙ\mH«œ˜Gš? 8§ŽÊË'Ým‹uÜf*^nJºlÎF­³'5Z7¢Ôâ™Ö´£›7îß³~µ!6ŠÊ,²Õ´ZlÃ'Y‘pü2ÃëãþÒëóÜ>”õÂëó 6¬ùi‚¬R2"n+MÌͲÿ¬¿±.ð„ Å}gëÓŸò?3˜µ¹×öÿµ]W¢ÏÙ\׉>iôe<æ5æD >(ä,ãn.uiƒT²q© `W´$RH+{æqÑŠfTTQ’Õ2eKiCú“‰7¤ä{Oè+Þ¤Û˜?}ZxB¼x••sÈ[ø¤¦î9E^¾O—~ya&õŽ)j˜K‡U5Õ àolÓÔfh¦f&Ø’g†æ?Äz¿Ÿ²¶ì(V,GšMöGÌ”itáF]”©vƧ\.w"(…ˆW­àªÈ;ô@ëb ¾¹4NŸ9ö%ÉÕÝòˆ­loEÇ[<@::#ëJ?ÖqÅ¿0s^Iƒc¢ã´Äújy[™«nÞùÝ^¯ûrI-Úhb6ÉTäóvì÷ ÏÎcU[ÈûÃç¿,ן-])±Ö2ë"|ÅM³=–Ö–k^‘à¦\»øœ'5¸ù3Åœ \ Õñß¶ePåºPE"·‚d{îE P¸ŒëÂ!r‡£¯\¨¸Ë¡Mwv²„ž›ïÖ%g+±,7 ãoÇö³Î‘±ÝŠŒ^ÞÍ…\èURÿxü¥¦Ùˆ ½×˜2K õ‰&’ÇYôÏyK¦O~4ÅPƒØm¿X‡·Ö«}¨»Ä§Éx…¼>.°IT¬ðù=ÌüÉÔµy«éð>HôΨ;,%á {µ¦—° ]F7Ón©sú¾GäÜëÕ0ÜMÁ}âÙ80X\%: ÌÊP«š†4ª°®Ïîi)˜âêVw?òaÈÚ7—é½"°ÊXjü9ˆ20×Ù¹ÓAíÈö;»M#Œ²¡VŒ»–™:¾Õ)†y(@R;ì/Qð@Ã-}©»M$(z'ì4êýþÉÙè[ú=Cuçâ'¯žqÉßyg§¥!ˆ}‹¾t_üÃLÅ.78Ñ|»íÓ…‚ÜÔAújÌ«†™Y¬t„{Ã1SOlÍUÌŸ1‰E 5;ÙyûJÏ ÌY¨ôëŠÛò”µ²jÇ•¼’‹f~†£Õˆ#7šUÌÂNÉ(mmßéž]ôž ¾Ï®éV —7²rP¤N-O×Ú\úv`šª ­7ˆþ Ýô¬ÜµMº–Õ’fQÒ]oo×bJtsì¦ÂÈŠ+ŠT#%²Hvb¨,ĪùÙæÌ™B¥ÐÇ€]<¸/¤‡•<“S»ÂªÅ)Ja.Ä»g„k^ÙXº»E(ã‰ÄsúÛ2ͼ7†ï;féHÊÞ¼(½i§O>È)V}–¸†d%lEŽ>ºmωEؽˆÆùƒÉòHº GÐ2g£°ÊÉÙÝ”`ð!ÛkÆe§ñÓ˜œ† W&´Q¼å°y+óéå:$¼ÁÇ÷b£ÕÅ×}¡+Ò}‘|œ(K÷Ãrƒ&ǪK• ²>»3‘Á'Ó§Ûv=ù ’Ç0JÂ4i¹Ý¨SgoZÒ²U;L²‘Cïuä›r{˜©wfqÎý5Ïéáv8åŽä^ê]×Ôð[g_ÛÚ•Pî/?¹/Ïh>ÍÁÃCFÙêl[1“z=’½ÝÝn& •‹½RRKh“«dØ‘EâSVÅx[ ªžú(Uí/ZA¨6 G6ª+™¨ üvŠØzlÿÜžâë¥gA1ƃ⇞ÑWÍ5^1ZË,ŒdÇJÒ<0ÉL%Žÿ÷œmçÍOýmmí EÇ|Ÿvö¦"Zb®?":%Eùà(’ÉǼ„!A‚‡85’ÏÚ«Äï\~° ɱ¨sPÎ…R„GðZmp [Š %n=ðõW.° ??N¬ ÝЙÚ?3/ŒÐ‘ÝŠ÷þg×¶xŶÜwôöÞ¾ É2¥…KFL6u€´`Ô32'“º‡™Šãa8ËX¶jèwþ‚ÅëksÐÓ±ªR½I®Û‚ë&Ôu*Š“x*Ò,ä GÑÀyóMxs°ó%èp–ž-ð, XîÇzzÅ w}m3Z2Ç&»¿¬IVq"ýÕˆ$ÞµcšÔI¸hاwZÅým•Ï|ãâ ÐGó·P»Ö_KZi˜"ý[ Ê°Ž³òÆuw&gèwô"Aá-EjkÁ)å,^nÕ½ÏP V7  zÏKB}ýBøFÑše Œ‡F$0q»MŒ¾`šá^ i(¡áݰŸWf(ü¦x^žŸã̳ס œ o뀂;ß3ª~ƒ‚‘1AòªLøµºvʧq(e½~=+×Ú—ú0y–£Ò§ ÀÚ–ŸëTöqC]¨‡2öÁ¶yÌîáMxç̼`­~sÓˆª¤Ý°6•7í²Vîf;ýH ÅÓàV¾ÅøÚÕ³>@2ëÂ/Lò— ›Š€à¸káC“&0Â’xNÄÅ­ÓìóÛ”¼û´ &­…P@~sKl —Êg)]вØê@À° êgÜ’¦ØŽó-Š7Ãö„Nÿ°­)©Î7ƒ,=ß'‰Íp¯žÒÿUþtþ¥[®œªµ©©%ððt/ìÔ†ߤ ¿Qˆiü%å~te¨¬äyStÞ!÷“Œan?dcS ‹ŠN%ÚÍÙ0“LX'Â6¡© #“yÝY7ÕîòV‚U>çF1Uxšt9WSEŒ[Ù¼zµ-Úâ±wóWÿu•‡°®†ÛäB>¨D U©Þn:ôÉ·ï—©:æk‹ÎáÉ¿Rep‘4Ï-¢)— %àh;uøŒeFCR#ŒM©JÈf´›S’¬Ž %â~X{ao%q³ÔW´M(|à­ó¸Ôwî»Ë2/šná|Ðôo˜?¼xGyÓº|w åœF¹É<%«[/ÂôøiC(’ç;35ˆI[M‘¯ -‘y †`gÙQÙ®"G»èŒ@ãì3ÁýxO•mÛ>B šß‘ÃQo:&Èó}^&Ù†ÃÔxém<½ieaý½WtY„ø‹äíÓ  å¼÷éÛ†ÀpRÕï’~öúJ_Slðûû‚!Fµ\üñŸEžOœF¶#XH‰ç ׺Uf•}ü^Tœ$¦»Éôñ‹SÚv;Ü^ Úc$!ü,,7fN Áò˜Noâ¸ÍìÈ)ÎX0°B!hY8¶ ÛÃVµñ¥u—¶ÞtçbÆíë;QxxLCvT¿me!ÙIí{伨GŸ/qòËk³P;¦4\ŽxMHXAÂs¾òæFîäùzyÇ#ér°œÒÖ#Í›ÅÏÊG¾Ê˜e0½òP€ Ù}¸BeË+7^q&6bŠ©{H+#|4а$Ó{<7ªš¡÷tQ]xôtéÝG+‰¾g>rÜó`3Ø46פôãÛ€ŠÖÔå¿Ã-P`ù¥û¤ûÚDHùŠ‹ð#^¼![€toXþÚu¤ˆ°¹Ã¬ÙCï¾×¹txÍN.u‡\Bt`ö¼|Dp^wqe«—äìh)• ´hatµÃ[kŠQ¦báS§^ŸÄ«´ìß5ì¾/ÙSÚºAïm-KЕnèg…¿ß˜àóÌÞ?â45§ÌÓ/J­‹€?]ÌRë[ r¿ aìyxÔuƒ9®èþ¦­¾ÕÁ3?²]ÙäŒðváÕjSg¸ÌÊ0>&•pN\ÜQQ™(Nж?)ìÛºx]ŒÈ5A©g 38èT÷ìÖä•à“–0#˜Ùwrù­[#ò2¼$3‚´¶Ü®¼iA´aô©â’Ä0I>¦çS)¨³ávŒ‡¹²ØôýF1"ˆ8¸b ç`߯ýÞÂUy›ÇG\9ŽÎ[T5õÔf-9§èÓ¹ÔÈÂúqìË1rJÜ^áSÕ|uó E ¢É•ã¸äš.rÙxÜ íÛRƵ–#¾!µŒ]ì'µýl'Ê÷%ën³sNÃ~FË@–ôÁ09î­‚ŽTß{mþa›¯ù…s“Ñÿ¹oò—ß—7ÁxlÐbÔ(yØ~'+äÃ(bÿ ·þ`¢üU çê8ÏDÒÓ`S½üWê¯ÙüggÉQW£¸›R5›¾ö/Ÿ2$ÿn6>î°ôšÏa#ºëÌà\›F‚-¦…“¼a’D7¸>ù¸°–Fó}¾ ×7´¦Lû+£º!tÃ76h›Í) ەk'æ²£&äÿûÍöjÛ¤¯{|ÃHEƒmí÷¨~à1Fl_ÿ8ÜÓ\_ÝÝŸß&~íô[®ˆ(ÁôúÜý…ç²ß/§Íp× Ga^u\ºÚÅ`‰wç<°ûbaîÇ"Ã0=••Ów׬ú$ÁªôççJO%]Z+#Ê}÷Å€¢Àíg™ªî ¥\«_fy>~cÜ…ÛŸ î R¥Í·kµHòTIË?Éq\çòÊr¬“Éþ«g‚¢±d¶!aÀÕé5¿‡¯;Æ4§™ÀëϧvR3Ó˜pS°ðRy“›žFSwÚ£GAl7¼ >_ùE¶ ·ü0.Ú—ºš6_»G)y¢O'iåÝ \C×õ°éR œ7r¯ö3§íZcºN%Îk„_áö›0œù6,Å Ø—*Á1×N#Ne«9ÂË{½ÏÏÒú¢ȇ•\d¯ÊCA"ã*?_QͶ՜ée˜uéœ0l¥ÿχ~Í3¤<4/æ)gËõ¡]¼{|aÙt踀Ïk~èËïQÇ¡-]³ëNÝŒ¸¨&¯k+ãÔ<2 ‰@çn€ž=¶=Üg–õ~q—xì/<ÁR|ØÓ.ᥠt4 Åܾ,"zp!ü¡Y–ªoOQÃx‚b<¦oì]42xÒk[å‘w¦Ô“Ú°z¨sí s9+¤äi^gCÕ:Tå âÔ"áÙýA Ä|<‡¬þàË–?/@•)m³;9Y}²y£C‡k¸X«ÖÆJ¼¹ìÌk¨a9`•‘ÁmÕiq;Úæ‰óuùëéú˜¥Ž‚d%âÕªâ}ú2pz™L’JÝ"¸ ÆMf CÞÓ6j¯£’ô1#É\€ã†%Þ¾¡Ißwbðp5€ ©A'E«°a?«E._ÏÄÖJH¯ „ˆ¨Ë¯±1ÜA¼qÐÿŸî }M‘BfTD¡?Š«þZz#Â#ÿZøìâæ‹ö’8èË´S°¥=߬¸k[³¶Àî2Æ€¼ß>^°Ïý6Ø£æÄ^\0ôpª‘IÀæÒQwBà£<>E’ÂYUó•p§Á¹·S× L´Ð«õo¸ú(ˆ Á[#–%Zm´¨/æ“·é~ŸeÑQ+qo‹u†ró‰¶ý˜‘¹f¨˜ G½6Ú,,*)ÏŠ´éÍÿÖfWÏú7ñnhŒçöf›\OèVå…üRZÝ ¨Ó¢Ããg Š­3EKC‘ Ÿ€ÄÙ¼¨faYº® ˆ’Æ1?íñQ[ÍÊï‹©¡²|H8E@Fc/î´³ &†xCY¾›ˆ”s¹ôG¨Rýœ=Õ©„WúÇ:$JtA@‹žc¹ö3›MüÀÕ©)§Ömì(É=ñjA ¨šæ›YêÞÎo ´8h±A—#‰C¯á""ó_ÐcR]ïî Lp<«š/ ~Ó¾ÒîCv#ÂþÈм1œžˆ³H°`ËÓd…½ÑALA%Ú¶ûëAÉEŸ×j =½ó{œO8_´ùÓûå$ºn.=âKUŠ~‚M/>"ûBƇ¥Ö(ÔóÙö[PzóÙȳñÏâ$õ9°†Î³(eÍCÀßðI”v£çù÷d”ÉÙX,7èú´Å(°áh^uᛟ–íùjÔpNH»*®hˆÔ­ÜfºÛæ^ï J6›Á~0­'eÐ*©æ¿"sjDŒ³’Ò¨;SVUÙù_Qr+¥ šRÉ aö†D>µœ ‹­[l< ^få¦ÇLŸá ´„õçå–ê:•$qå*ŠGS²ås«?Hgï@˜ã¨øfÚúÐÒ:XÿÈaþw!í|i¡áf$XŸÛv™ÿV£ÂNªï⥫I¶¨ôË{ÕpÆŸðÐË•ú €"Ÿšå^I›•eKúH‚)Û’¥td[p¢\a%±³•Õp^DŠnÓ˽÷§ÛéSÆ%9ü2t{Ë'@Í)d²„ÇAD ãõ<½²ä:ÞGo-ÞZzTS!Ö¶_ÇÈç"Âp²{W¼±†•‹žS“H™à™þ*°çÇûúvwxÓ_‹™ÆåtcÆz;Úã=5Hª;Ö-G; àÌ FÑ*v2ÂW{Þz®•¨«Tç¹îu’'>üá ¤Ü#÷²hXÁæ)’I¨ÃœPèdô54Q,¬†Ÿ>L£º’íÿ5[(Œ†wÓ™ƒîÉMŠ"¶WtñŒå’ŽpfL|–$Ä^!² ^C XŽ?$z¹ÔŸ½›Ì±ñ1D5‹ÓÐgê<gy,´³#ÍGåÇoÛB¸s§‘€…\EI™ #¦~b¹ˆMäæ0Á’, ‰1á&ÄX¥¨sÈáΠRÏ~ac#«A®Õ,~!Ùcèa,¸IÞÙv–Ú=#«#¨Õº,ÜjèSA)&°{@Ϧ™æ¾´Å„œ×¡½ÓAðA{WXgâZ`ù0ùû{ïö ?²7µaÅݘ<®e~‡gÇ42mù—ƒoN-õ(ÌišsÖRùz‚¡äRn,`H×Âtr7%iAKÝΘ“L?#’¢jût‰o'¾|NRâEM§gS¾kšnü­#Áå¯å±ª®ïWA¯Â8kòDÌç¯z^ùääež’p´¸ðäÅMGpî®åÒçÁT3<!Ÿf¼ïމó0ËWçëÉËšÿ[XwoóÅkø|·ïÉ |D(|HëYl·™^1µh¤ ö I~4úâž´§Û:XØc—e§úô¸fç×÷å^¯[ªN!Éï°é”Ýq™´Â¢ÈÖ“®7`M†5¸CeïFo "¨Öæ}0¨xÚ)k,zUçkM?——;stä«QÌœþA±räž \q†ÔÄK¿D }óç˜Ôe'·uFIE˜Zb^’}ZþÍX"†¹] p¯¬á9É)o/uÒûªLÉ…¢×Ü\}ÌòH¸ß!;Ô¬þÛ@ê°1੸óÏ=2fœ' &AsÆ^߃ÒÕü-ÙZ•ØÞª¯iE  ë$:š¬"K¥-“ih6ï?€·H3#+›Óòlúƒa‘µüÑd\&l}SØßÈôK\eFÉ¥wÖ¶É›~#/`‹ñå(LùNø=|ò¶sÒuª°9Sû€<ññÆ–Öã—ÓÆe&D&žÐ«G7¨ Ÿx"õR’FI"äZŠFÒ?ÎjÔŽðföP«îÈt†±RÇ7 î¨ÒHGýþhQ?Ž™ñå|¾âÖ*ë²½3ó˜JëâPí-‘zj®€|¯xȃâõ}ò€f(a§¹¯J ›ÆÝ¯Ã0YŽå¬þhK[VZ¡{zªñTè–è³âø?ö50!¡ð–†’jæ¤m¢½vIZò×v«Êk¿šòï&=y7wÇÛ©Ò}k‰ˆŸÿÊ>,‹ÁœÐ·œäét)ÜPË&kkÂñjKºcÔÙ»xsÐu~CؘK÷õÃEÅæ°‡[`ȇa!pÞöû©;&ÒeSÆ­N‡Ѫe¦ÿœ`a«‹)±ªhš*Æiòó BÀ45ñ™ÍòêkAGÓ}«4³ûUCOѦüoÛÍÞÉÎNò‰Ïé¦b&Ÿ«© ¶“v¾ù(Vƒ‚Çú—º}qž õ<.f¬šÔ¢1ag1‹Õw³Üdl¢Êà!ÍÜkÀW/;ÿ<Ï÷i‚*fhõiTN_©OÊ@mÚš”vJE;ˆ6px§[f‘i1û@õN)̓¡¶|ù­š4´‚¿"°å¸áv©•“wbâ îÑÚêÑ&ï-úsaKÒV›H·bnßV³†ó&éýÐdàBñ05築+iŒ³àÜA aÞÞePïÖŸ\»C´[ÊתsFÆÕþ¿™z¨Þ‰” ÷õJãÉmïÊxJ®ß˜æ¨.ª£-é+jN ŠP4ÆKØø—¡yû:¬(žùW9ïî ¡Û‡@‹cÄRtHþÿOþÚReü•ß/œQP—ÖÆ§•¼<ÒŠb­¸šw9¥(©êÂIЗñ`P«'ïU[)YÑSì.pMf¥Ù¯SJ Ù‘ÒU…þW$›yZ}‘¥cé_–ö_(<Š2M6˜qb_¸È„}¤qÐ> PMD µ:Õ@œ ŸL*Æ —fí]:ñ –Ïç1ÊulU.ìphΈWDVžÑV³uÊÍß-j3n­Â*ëGkþ]0yâtè:¡?aE¼Ð(š³—Õ~–‚Χ\èUOA¬{ÿMFæÁj©ÀÓIöà`äf Ñq–Óp"7zƬÅEfPÿTê$(­¨Ä1Àù®&­£ZW±\^¬=ÁE8s$ åg3lÈŽÛÑÄ&6åŸ\¦Þ”h|ƒþÂì{X·€öÒ&«ÙGžA‘Êø uûã"SZ£œmàxä9̲™¹.½C—Ô9Ðý=÷AZý6¹€Kòìã›=\' æQžXÇ•z°-²$fÒ¸K7(z$z[#Qž{F²ÍÓ^šŠU`ö'n®©â5@GÔ©dqn8 #ÏiTÚ“ÃÐìLî÷HrIç®7Ö»²>¤¸UEÒæ‘c¤xYS®?W¶0ó\Y­¡õƒðxjZšz°”x¤4Å–µÛé,„&4[®ÚОO'Ì]œCÐÎPÞ Qñ”ýÉ.YµOÌ­Üü–ñ“Iö)r‰ýᆠ5ǽ¶ˆFjÃW)ªr/ ¯ê1Q+O^ Pó~*Ÿ÷™BÌd "ž#†­2 ƒjoH®صÔþ"ÅsûúŸ ç³ 9*T7õƘ‡Æ%§-v ¥žÙÐ,ÅÕÅÛ²2†ŽÕššÒ’YÖ=“ÝkûWàûߤ×Ë¿§Þü7^ÿ'˜äCÑ€³!eitwtž’,Zk¯§€RJ R  Ñ^}ÍbÏŒsYò¡-á½cã§KÖÆKu ZãªÒÝ,ëýXr` ©ÜÏhŽˆZ]ÖäÃË»‚ƒt ÷‡\'Õ–¼š/Q(äˆqXÓñ4 ­­²|dhh-™ð¹H!¢DZ€ø¨ìÜ5°–ïî%òj¨‘Ð#å°q8<¦o¢jI1ìÃg_SSt7<ùXRÊÖRλÚa¿iqyká4¼˜ÿ«7JbUË i­0,Ú×(ŠÌ²6Ñ>×§£ÚðœÈ³³lžË„ÓVŸ€Ju &!ÈC÷¨Gƒ„Nü®Æm êìñˆZ³‡^" @UDþ3@ÌÿÙ¸mïÆ\ ¨ð‡ÜúöÍKkBBþÈ™+Uã¯Ø±ð¥çVÌ*’‹3ÙÓ‹Z>Ë~OªIF|!»¹ñðÞ†+ýl¬ÅqÞÆÚŽä&Ý@lq·ÓûÈæ>U»rù™Šú~Û(«Wü%’E›^·Ñ”­[- ±-üž VAâã úªa6Bʳ/Ù¤³ââzU §øiùúØ~ÒÔdÇçÅÈFUŠá“ç–Ê5‹J¡>°'¢“o¹‚,ù ß¡½2“Å÷°fàÆàrÒ¬~¹»Í¬ÓktŽo Å#~#H(*ß¡QdÄH¹ë䩆d%ˆõ˜†áÎÙ¾¦VžFè§®ÜTd³f '(° ±E¤É„ã™'Pœ…äÎ>/ívìîsŒBõ¡´Ñälm°: í—ä!²H¼ÁÕuG@ØÙ-Žu‚+DcH?Õ5nÚA¿ƒ€i3ñ²‡Ý«‡±–î¤Ë£ßr`¹è¤KaÅÈÌã»'ER~¯c.’‡¦öQ”bTú»í&Vh;äÝ•ÉêG“{èR&ïh¦™YL‰dÌè¤H%C[È>$¦üæî€Û êp¥ìwÜx|ƒcc;1­êeÕǰfW–ß&6™$c›mSCÎ!ˆöåI]‚_lÚÆ°å ¤;Ä ¶Ñ¨Õþ)æà$ƒDÒ< vâQfî ¨Î1}„Õè*»»¿ûSLäc¥pxœÝ¶rÌËcâë)$u¦îa=<ƒ&øYá¹=§ïPÍTÿB5ˆt§¡Ä8€JG×·ù7*}h)¬³ŒÃã³*‚°‡PC2÷óâK‘ Ä‘?Œ ;A(¦Q~¡¼KÈ ³ÈÛÒcyPŽ®4@¬™d¥ÎR×î«ðh¦t§J~iTÇ fw¨sg%BGè%ÿ˜±<ë—‘9 ?׀à +X¹RAòflÅ>fË4¦>ÌŠÝVŠU<™x™"‡ÒféJBÞi‘C>yªLŽÂÛ‘^(p#S”ìQ²äCŒw4e9jß|]%`œɈ¡î2Dœû(¾Cèæ®ë+ë®Å¤ùÁün£Ã„åwŒAÌ âz‘¥t|»0üœ†€õWbû¶tsVh‡žv›Ò~ 5×ëFáBE”†]x«yNóMýKftŒFªŒ>ÅãŸxºb>\Bˆg[ÃÒ´$¬&ÏÌVÝ €ÌHHßha*.m´äk9Eà#UµöEL𓋜˃˜X§ÛLÁï‘›öï ÈùgLt68ŽõÛã:=Ø÷¿:{ŽxV¤õÑ^tñÐ×äåN)uS»Êdý³¸Áp¤½”) Á~ÚúŠ6>Oñ3--oOÈ«-Ë .{Õ—/]kί‘³_ U<•C†5atšÂ °/rvªtòëéQ&)‰û¸~ó5RlÂBD[,ð“»â”ú˧u[œÑ‚™Í51Ç;Ãd»Û÷µÒÈõs²ÉÓÙÎ3¾ÍÆÑš¨Æ`„ú§â·+ÜÒžö'Î %¾ÊGeKüð ‹LSkowJ©@Á{&þU{WšNÄÚKÝ'¶f<ûX´ç>+®g Ï·ðKø¦éL½.¦|…çW1h& Yüw‡ œ/í½¿Ùxäýdÿ>ž;²º›hòƷÄxY©ŒÙ:5ÅÔÐÎRÚ I7ºy¾÷-#ò&rÏdå§›cµæ ‚à-•T k ½2öì¶|‰)ÒRë7Fû‹ÁR8üD\u+Ѓ¬3?£l€oÊÕÐ1¯v‹I¿û;–57%ôkÔ¸mçñç+ ÔëÞ·â¨Àpß´QŠÖlbÿï<¾ÂV XwŽÄ+üKzÿf0ÇÉ@¢Ïœj¾Ð5ƒÃ£Íp+PØ» ú‘Mœœª¢!ºMuг#„†º…˜ƒ$™ï'áþâÐÏ“]v>+B"5~×,×ÝJÅÌXƒ¬x®BÆæ’¯,œb‘bxµóZEë!]ÏÕ½·™îµTòƕڅK+x­<¢æf¶UrG/‹ñ´ù.áRÆî.Æž5yZ‚O‹M§øB8Ù‘¼ ö]¼j£³ Æý±]‚:»\·ÒPÖ<Óþ'©û=Pj|P3šM»¥*áðl³|ÂGæå½ë ENB/møÄ6–(KJê­®wž‡4À„üå 8p‚Ñ6xÈåÅ‘Üõ`Œ9|7ò ©»Ÿô­`£@ b,:Ýaq®×ògÿ  Õ·M#Њ0Øݵ±lòæh†OŒc ‚§šoöT),±1–Äj–\[ïð¥, $¹q°š™ðƦ™ºã/æÅŽÕ8…oSeóÜe-é]sš˜žXéjFú|Âv93†¿^6˜¨þ(L0˜š) DŠãHÜ$$+é¾{‚"tŠ0æbϲ`ªKæX{ÜÇ7H &ùWc€”¼“[€p@ÈLçJ#áã=jˆÀ³48 †8ÎQiL¾ënE“1¯íã¹²6ï«Þ“T" 9#ÔÁ6â 1,J¢¥L¶pÖTàÝDÃ#@oÅFí®´ÏôE‹jWÏ%†¸œb7x¢„xlX5†põªzÓUìèß;˜´ó—4N¥QÖAQ'']{°¤~s-o`š5úï_@%_™ã#ÁËÌüã¦õ7ê $"esV:ñrºêŠÈ¡,K’®ÁÃÐ}{ôF¨Ÿ¦ÎЮt‘®ƒÔ…~O%Ñû%?PËê21ˆïâ¡’÷“ݲOZï΋àF~÷jAÝXa<ç&i£Pâ?Ïœ=Q”S§ºd×.€¸=®?CŒaZ rí.8[t½SäÉÑÆjÂ1l~á|^[‰/o®PÍÆ¤¤ùg5H­§ËãÅed˜@õ~u›AƒgÖh?ã„'è$B€ÐGé‰6pÆ‹ÃÅtbG&€-ô6˜Í¬9n·ŒD‘œ™·r–Éã’Ô­¿H&<7˜4Šƒüi–8 Y6Ô¶@ ÷nÁÓ)}­ÿFW^xÑc…S­:ôÔc°ÿ5Ù‚ã!ôeJ)ÙÐCGÑÏeDõ-ÐÁ±ÒŠ˜Üt¼®<¿q°§¥ž†µ(ã5ffìì7 Ñ俹G´‰Ü•~Z‚W—køSØÓ „¢æ• ì7$]°ôÙZ øÝ銬CÀ Ê• ùkÁT*äžÒ·k‚jšRáÂs’«F+oÃ{Æti£š8ã³E›úCdÿìÝÜM®Žr6E/2¦|\gþDZ¨@ž¶øZ121Ô5$ÚWô¸¾\\a“Y7qgÞCbV¤»yaŠ$#j.Ë3Ùœ5÷š%*¨b·›ã‘7ë;´¿9(¦’9[ãøp¸>yó¼xDühFñNyôÖ[¡Ù˜mŽ$kÞ(°½U¶RkWš˜*b¿&â)†=àpÊ÷Û}&7œ|ïÂ77ª®œy,0Ô“£Ð‘£Æ=ƒ}ùCç|?òxÈr{Y–¦0'Û† `1÷n&ñª¤&|ˆà°Nx,’½²cý¿\e¼vê,)(¯¿Ô¦P~‡Á% }7”xsÉ©±ÖË&ÀHMrƒFô—¼4ŠÿuR«þq©Þ£¡+•§à%ê›ÿ8ï¶£·êŽšŸÏv‡ÆãcòžÄ-§‘EO/Htí¡©wdzf*Žï e»Ÿ:w òÃ6ËíÐj`@©¼\æ(5ò¯„À-½T£ôËÇÚ˜ì¹ú“,NðɦWmBI·G¢$ 8î€ *F½äÒkw™làˆ-µé†÷oEqèùÔ¶=Db}–è±Y-O{’gƒ«ËçiõußG2 3ÍåØû0o²¯;c?u1F<ÀŠçúÈÁìÝÁQôV0Âd«®ÛJA\¯õž¾KZ˜ùº%½Äâ2þ|'ù}ƒX·o ð>ƃô\g`— ¦ó˜+ŽÞV1Õtmé²Ôõz¥¾Ãˆ[kÕVÒ_¯5í'dÀ®Qu¾ %ÁWÖg{S¥òñÀ@4úM€½I¿¡g5½Õ—?´@ŽÙ1lÆ,§‘(æÁAdN£€2ÚõBÌ‘b½ž&·Ÿ/]1"‰Ú¹§‘‰sŽÔѦšMºðT+Ó$j…Ó\m³ØýÄ«¢ä$"qÇÏKp«®êm0Ü[n=îÌ Xp=þ²ãRÏä¯ år¢o™wbS4Ádq’C“מë†Ö´<€è|äp~Ó¥I@ŒÍÓüýœ°ÿÃ2Ùþ—i ƒÿ¸ ®h0@L]yüåU˜žµ3NÃMžN•tT“ÿ…%éu4¢“ÂËf¯S§À÷§rÆüÁ$zˆ¼†‚]Q|e<Ÿ?‹\ ƒ>4nË:¢w#Q˜ïLJ`9íj…=–%†¿ÎÇã~DÉçZX«l:‡·NWÇ·9ƒˆ*7»ô¿ÑJ»ä=¾­î1±)t!aMuò0ÿ‹Ýíô¾’‘2ñil=ibŽH—4žò)2#ìT(÷“2Iá mßÚœÑ ÓÈšàè¤i]X¬óuzûPK[qѺb[tsWMA”óÕXÇ™åDH³yî¯˜àø¦¬OI‚üó¬ye1çžpX'»Ôr$gh°—Oþ‡.òoíXÆÅ²Ó^–Gzy·V°Šz­7ᦨ\\àMɪvªº"Ó/Þ,jJ¹ óª½+iC•&Ó †lÐ qYçõ‹GlE³ï:Iæ ¼ } ´7ñ˜›BéD¤°xTìüÉ?€ú×ÕvXî’¾0⥀TëÎ6eòçÇE«ñÍ¢/÷¨Ä¡•˜îz;-›W{…·è !7˜•¼Eëjj&] XQÙ 6Ñ`Î¥6©2Ó «\ÁqWÇÚÏñÈØ[˜jèaä‡L¥|žº¾`R©CYIs¾#lÀ,{;½UWÚŒä7°újó7ª¾g32*¶ÓxU$žXžÕ•N®åŸL@–Ê‹T‰î1qÑ—zœ_%,]=›è&O÷,\I”ÿ…3>¨ÁƒÝ.½;LevÈÓuîa­796©1Ó®õxùì÷ˆH´ç)³þ\eÄ)шþC˜å‚Qv=ú©‰¨Cæï¢Å ŵ˜SMóihˆ KUj^ÄÍ´&]ŸGXÛ£¤Ç‹!”œˆw“ìKįG`hZCž iÿ*#Œ²²C„Ç=&1?¿Y- yJÂØ&©—5A–]ÀÆš>  £©Þ©€N–=íGÃ×Nd´Ú4¦tg>ÊF9š/Ém†’3 º 6»º“C­#_dÄw?¼ç§ /Øû y%Â&ÓÈäði1’\€ðº \õXzEÖú“wµ{]ðPT ×9Ìê&ynŽfãËm2×ë•/7eŒ¼¦3}Í}DiŠýÍYqø·på6^xÆt'í‚Y{:ÍB‡SlÑ¢¿Ä÷™’Èd3´à#£öï…¶ §êdE«ê.ò-8 ûÀ½g©€||ƒ‚(ì§è<9`½»lÿ‚æH—9ÍOú˜Ró;ÁMû+µûÆ#%µlB9žì¯ TÄjLâ%ÒVÏOwo&f(½"_ÇrPcðÃ~5c…†éÍ=œŠšuŠÌ–Z¿•ƒU5qåÊÙyaiƒfä¡;gžV?‰ò&º±|RN­¨]Zòe¡åJÎÓcä³bUÖKwÖ€T6¹ÇðéÂ_„iTȆ­ ÐWÛ¹çøg œ6F€6Ü=ŠãÃìÆÿqëZd¬šüZà “Qƒv'ë+“r ÷i>€‹„€%¹oÇa‚nbºÇ³â™Å -îÁí¾ÝÕS,ÅMWœxƒ³…±"Éå€K#”e>¿4‹0]Šo¾HkŒhaÊ–† ,VE²AîøÏQtGx?4žJÁ»È;U88ßÒŠ!öof·p$¨|çú‰šâ7LÕ<·<ÇÝQ\BÓ˜^S1]®VtBI uøã›Y³ÙLcYF rS%¢¤ÞQÒÌü‚•²Ä/üŽh©¤ö¶ë²Ò¬(]KX0ðåHÁÐâët`ÈR.*€,²uÎ]¶Za‹ë9àå ùìf;Ä j½×ªñŽ"õC yúuñ“Øà•Ÿ’É;Õ½Ä ¾àäpŸÏ”90®¢Ã1æ:âEµÓ7,.nH{p켆]€êvj¹ÿœª©†iª£é“›úÎî[LúÈ3[]êÌ¿ïÆnÆx[>àþ…,xF¾%‰i¸‹û-¬åsÚ:´à‡JÖi¦­¼Aζ·=N£²gb-®.:˜g°¿ãDt‘3 »ÎãËî€}K·®ø(BóKäpðÉÇ£j¨—²(‡AEtÂRS˜Ê=|£m*$““ü©z3F¸¥6 ™kÒpœº+Q¥Wñ=&m0#æ ›ü¤—<¾œg>³µ×É¥›W,4¨ÃöOý$ö1G ¶ú)Z/4«qJ á@/íh%v üe5üo€9Çy?Ò3æ‘` “OQNC!„ÈkŽç.帞 D)¨:´'ßP­©‰Ë=Yþªw¾Ï·ÑEûàd )°Ô 9höý ·£ª'5ÓBg„X+©ºùăÂÝŠçòëp‹†Ó5„A£Ä ŒcSÐ"~RXÿd_tŽaWŸéræ'½²V»Ô”†\J©]y:é…Ø­h‹õ«(jº™ã^ŒÚìþH2‚Év¦ŸbïóDÕó+¦¢.ë~«NGWÐþKxˆÄ]«æVÆQD=@ÜËS—ó˜³êEQ¦YLž Ì¡03BeÌG¿Ü陕Q-Ãç<ˆ÷/ïâ4Ï›°ú…öûÛîF±Ú/iaI r>Ý>U‹ê=bÿŸÔ­«˜ ²êùo `¢®‰Ù$öh12èìlÝðz˜¸\\>²ÌËZ›æ7ЛN|©-Ú‡¨·LÉ÷1]æ[Àïjè€&4òoÀª«ÀUà†éµRùL`=-¬Ÿ°°«9² ƒÀ6kÍVNç9…ï5 ŠáMšHø9ÁÐ FŠÇâF0~ݨUaÃÉPT7éYâò2Þ¢Ìú‘ O–²d],æ9Dì™®AÃ4Ï¡i€AzÓ‹T•y`Ç+ú=zÂ5&MMø|Λ+qèó¨_ùK;ð„Ç¢nw‹–;.zŽXãÝ5{«}§høM9¿ê̓ü•n—0~0–5dÝﲘ!ï{·ñŒ¦d8à ¯`¿Èu^¾Bº€¼ägþüîæNÞÜÉÞX ™-Ì1ÝwmõÇõg?ÂõÕ¥óµXÌ‹•ê!Cÿp¸ÀQ-C‚{|5[®ïQvÞʉÑþdÛ-Lcá_»¶òàrM²–ßßPYˆì廸M(‡²GYlóÄȨƒ¼ÔTÂÿÿ ›q•7™>þÝÞ=·Äý×Ô(û&0=7ÝŸF‰þõê £^Ûá.) NP½—Èë€"WñlÍ“ÌI fki‹2h FTUü;­ä„¼'5§aõ—»ê¯313·C:( sº|¿b§& ÈŒdSÌÌdý!}0ÑpfÉù†`n®JÌ:ïYãĦ2ÄÜ@q€a8Îkù+"’üÇkø;N\Ôç6΢ Õ#Öö«ÆzÚÓ*΂5|iÁ ¶Ž#i¯m°]á²% Å ©g¹‚'ùuö0±Øz‡ûØ øà[ŠàXDö+>ˆi$îVOp‡‘"hÈËÝ´Arø[òõ©Œ4‹C¾j"û\n4‰µÔøµ›Âïݼðý‘Éœî +b+7éVµÙòÿ®¢Uú% .æŠ=áaßÐQe·…C|‰nA™~“Tz¤“›ÜmYjõ…þ 7Ϊ•ŠçDºùJ¶+(í­\ÛlÆy^<»øÅo3¯~Á­³Ö‘ì€òëU ~–L4·þý_“—·0'‰O(õ,σSU¬tZY,7ZF,ö´úžyû®ã_戰mX×rÕ¬lál"”1\ÏШùquCˆŸ²Ž¶¬Šœ#z „gòe È[¤¶“”ÝÀ#"š/í¿ùšC¾Áœ¯T¢öÌK‰wò´Y0ýSÃ-å­dãÛ¬5‡:ûÞf:Æz-4âÖˆŠoØœãN+\ÂÍƉß;p i?Ÿéøéþ°/xí²`,»šwrqE.¤wë]×ÄrOפÖÝûœ.²šËù¾”À{iã‘fNI^/ÐßôF…ÉÈfü+Ïvw9ˆ{”«ï9‰T¬j8éüñÊÓ mÐ @I€»@UªgîYC?eÔÔé®U g9ºüϦu͵4 GÚŸŽ[.hY'›ó_ç©}3<æR¿Ôô7¾Q!ÑÝ©ãOˆE¤„¬ÂÀ[aÂü®wJóH«ÔuÀÿïâãö¹X9~6¼tÛØáw£Ýþa1.ȶ³/¨{ªõ´?²ìÊû^ßlª¿ž.÷Ú R{Àí¹ŸYÈ Á­[¶©¥QÁuƒë}`T Qq-áûäã)Ù»ÀÕ¾Åv²TÖ”6¬¬EámË϶ýþ1b]EJ­FxÚOs»º÷³=–‡]2-u·:éƒÝÞ)bøuŸJ†½8°´‚U3¦}q>º}|{Rj÷rÿ$ÿ¿ž«]ÝMÚñ½çù¾[‚–â§äx ˜¬÷¿vÑæ ßR>)4¾ž”—ëò.¸@D>P—÷ßâ覺ÇÅ[–þ®k&Ìy£Q6•Å\h™´‡úƒVVnÈ$b_›VÈœà8Ô7‡À D÷nÃÉõnŠ·Ä UÛ[é/ÔpGÀþ›Âxõ{l¶‰X¶(‡­û”æ!)ò¦~úmÄ Ô›%ã7u¨«l: @áüÍ­­£™@4mwÜvÃO¸ï=ž 0ÜJÃÓeKÌàÅôßGõ¹oÍ©³Ù† 9§QÜT¹,'ì&•à÷MËmt«Yż´Ý< `>CÝ#m3ö7Ã-Ñ7jûššUζΰ_8Yè– üŒ,^ £ÀQê±<Æ0Vg×Ð[jÕ-sžãéjP±vð¢D›]æ3uY;#qÕ©غåÒ2íx¦Ä||?’Õɽ–-‹eŒÏ&›‘õJ/–•¢ÉDZ?ÒæYe$!óuZSº5cbe[ûìVÀàDù3•²0ü5ƒ‰× 0ÖÕ.ØÔÀéc„œ§\ÆÙØÓIòJIÌ|y¦(0Œª²Nž6²ðÕ&!¼Fú1ë’˜O¥6a¡f˜m,^ï{óiÒ¡{ú|b‚)~‰®é!¼t¡ÊA,<×ÅÃqò»Dd<ðYd.3_²ó$˼œ”¯Â„r·Ëo•<øƒ_Ѿ,So¼³%C2»6j|½ìx Úo‚jkZˆ:²õ_­h‚L0ÊÔ»ˆâ:“2ÏÀE ,Õ|£s$ÿ„îí[¯1ÖêØ÷õŒíøïùàuqÐŒ6F‹À5YÌå‘üÒÞ¶’`«<—ã4Š«NW#d`ÞŸÛïr@Ç¡ AÍzÜÂQ~b²‡*CêfIf>3Ô BMRˆ`ã3ýØ€dS™éØÿ‹„¿:`Ú<-‹Ûj“Âï“éÐq¼­kA\Ïõ%ÃH ²Ý1-O6{‡©+‡ðÁÏìAéPbæãŽ‚’Rê1WîPëV /T)jazr?Ïçá~ê2pj¢¬ncZñR’Y& Å\`ÓØ¶Ô׺¥±\ˆgï¯*~šPŠå|˜[ Ü=ôx·E!EB ²³ ZZ»?Œ59Œ OÀP/ê˜ë·¬±l,~#¾‰ë:«³ ]‘ûhÓ¥ô•Uð©¬8iYÔ¢d_ËxîŒÄ¤ÏV´ÛB±°anüúæ°È+ªîE…‚é>›îU ~tÛ3t}†>j#èG&9œ vG¨ÓdH&Xܘ=xm*µZø.DÌÔRý^·%Å/>Ê‘Q‰=-¶]-DÏ}wžRµÿ 9°©ÊȈ\ÁÑÔö¹dÉy¥¬Ò©ˆŽãb‡ €ü ªáß#2, g?P„g߬ÉÝá,~Ûlã*È#/0®¤š^h’ ÀÂ’JiGŸªê‡¤éå3âÈšñ£>aºµë†¿‡%ã`ék,]Š\Yuháxâ>ú$89•¾Ñ&Æ|~rÇOÆy53ˆ±WTèÈ›¢7jtÇKâº|_Ó.›däê)kÿ¨&ÎuKû # Z8—ßÉÕ~X-Þ{û./C™%7Á|ö¬â‰¹=J8ªEógy°›wDþ(Ì"gy>{v™¬Ô¢óˆÍÿ|ñO«àê²X!­'úhꃼiŽø€A¶û‚­¶Á3‡ü„óþÖª´§õµ8{›çZOW?ê}-äÊÂz î׬ïÄjN´@¤_Y 9ˆ>Ó!SŠÍ)½C×½‹Ì ȼbææS— ¡.Wn+0D-t`õÍ͈¾~ͺRx.>¬#-€È×%™ƒ*¥ g¼zúÉÌÁO[e—Ññ½:­P'4e›={=µ}ÉÀ#·“n'>æëCNß6ÜNuºÌßMµL…IzöÔ¾­ ¼.~¤pXxd–™ n%o–Çæ‰ÔúøExfgïÊ¢e¥Lýõ,¯Õ%YŸ7ï>|ÖA,ïÏzÕ'¦Ó»}FðË<#†@¿‘QJöÂ×>7Ó?½8¨§t Õ0î¨RW_Ç}µŸ"°4ý'u–ò†šØ-… 7q ôBϹØ#{Ên±¾Ä*üìH”ä.H]´úTÖÄô_ÁÄž7>ëDÝ1vB«ƒWˆ¾*˜(Ãí+øk¾¸ŠÈ>wà·ê|èõ«¶¤£6ÃéAë—îTvÄymäm^ó¸7ìw¸=‹m­ö,þÔ䬸-ÏùÖµeÚœ½>¾„󤛅×Ö‡ô·…:¡ou$€Qån‹Ý1nâ)ï~ÞkéÃç«¥ÇBá]ŒÌb† ªlªˆ“©-Û1í:N‰žýd5‚“£ÈBü"›Ý‚èlßÒ€µÖú¿F‹ tÌOý Þo‚¾L°†ÙM¦$œÇYhÐr—©ÑÁ0©bŽ]³$U‹Ìü@,:ÆQÉ®ÄçüŸ¼¬é'£¹qf‘šzŒÜŒ!U”³BûzŠZÀ#Æ" Áu?V?tñp*»Yô®Aæ aL†ˆlWs´ºË5e÷S-åHÙôž¾,ý7òÃ\W Ûp½j2¯Ò¹¥J¤iCb;ÏÙ¼“5}p@pù¾¯ \ÈÔeÒǨ±KE_WqbzO‹ÿטŸ1ÎCW$ÜÐî³Ê*˜?߯)¤ž\+Áé7A)H°Ê¸†…N÷4x˜?Êî áÖ'óQS1ü¾<ì"ÌÏ5{¢âU…‰ô“ßê–”+5$y‹8÷;¾°0[s‘U)í¯Ý†j¨WÖt.ÁþîF¨,Ù8lƒ[/£ä¯«Ä[¦cWí*±ƒã ,¬»ÆXm&[M©§|®¯Ÿ þá3˜èÕenü^P%·;Åœy›íä™í7X¤!ET[8ô˜êæ.ÿ¤vìrR©Ó²4Ù¼^ZâU~NÑŠÿx™ðxœT•Ãÿ·*¬„N™ ½ó8 ‰è2t9ÿ½:ùj-i@üÎ`ªÖé‚eY¾݃ò莚$ܲì±ó߬Z±q«5ÓßÕeM}Á_2x— ’uhãåìèRσ+iK¨ýÊÅQû…ôÊW*½ŠK` @ztm "Ç£¦Ú#A›pJíÒâ9¹.ïRPz´ÐÙ&fò‰ãò™4ˆ3âôsBˆw'‹}ºo{_ßx¸xlúZñOæR<|{ž6R¬÷uÌ&¢ñÝ.tÕkfé÷f«R°Zƒ»_ÑäJ¸Ô>”‡c×&‰PʵiÔDÁµ(ŠEI²ç“}ޙ֠Mà¦×°)„·0"eä#4OLµí‰[úWð–ϲƒG³ê"ÊÕèaý­‚yZ%•þôÕ5W*`Ê5=(mÿTýkËzûEÍÏíš´S€¨Ôo|*ª£¹˜-Øþ¿'{?azPM¤R0v™ñöÓDúg#öØÃ]‰¨þ—Ž[JŒ~þ }‘9n5ŠÀmúÉ¿tËú[`.„3É$ö/À?/ö¾è`f÷œ¿õ¶§øY]\(Ë}¿õ}ï8òu¯é¹áÓµ |äGŽ®WT:SÝÓ ÏǧÊ̯kSLÛäÙºhí D‘ú™É&½‘IÞ‰vò?Ï*æ$ÃÖî ‚ª'€1üí¦iÂïJ»Äf÷›nÀúÐU L£â^ö]œ¹m™hCD(úúI°[v¤¥ØÎûÞß@å_r…—{RãU*®x@¦í›éH´»×­·¹„t~ì_ -Ö•ŸòV~^uçðëx-ÆrÄ«¥æå”“rcÀ\äëTYC¢±B´,IØQã‡S̸l>‘~”¸.™õ‰¢±Ï­%ì µÄÛ@|ÆÈŸ.GõŒÆñj>¶§5/óÕ±\êÙƒÂÀ->ø‚ÚY£5*Ò€UJú*Ô«µ”#´Zæ&e”iïŸà6 ®ws”Ûqoî3é‹Zcÿñ)‰Çª3”!½ë2v/ǯÅÁ,°ÅÏnr*|CØ}¹zÀúÑÆy7Qn¿Æ,uÕ%ñGsqqFAçâûè -:ÕÀdºÝèqQA>Ô£¶Ïò¦yìTª4‰õcæ åݤ *O›,]¢Œ™V>+W±Õ@76xkÐmÆ1’žˆ(}ó—ƒ–éEFÇÿj½æ®Ÿ\xìlfr¾ŸÜÂ|cÇ„+û£ƒ«N*m®#p.„óØ}ÖØšÂÊŒô“úbôU>/àÒðgÀ|—ƆáØç×>]™µ2m¢"Së¬g‚ò"{?÷ŠVMãØà± ”AÌZÍ€mFÉP×íæ o&ìaª«{ÖÛñ6-§Ç¿-€=ZßÒÉ-Bå%É ‘ÑןК:|†/ú¸µ˜ÙØUÛv¾_ÓClô:;v+!6¨˜„¢žÀóöJ¯¿ýG)E´?m¥på(X€Òò¸ÐÒO@Üh]Íù'M$gÜ ð]ä)`ã^?™’lûsب¨¡ï9ˆØÛüþßJWÜëÓ`'Íœts°†ZíüT”à$î¤`^ÏS×o`ÂÈS¸ÜïbTÜ~á9¾Ó+wüèÏ¢¶§åDq÷h‡/ý´ûê·lrÔ±æ “¢§ØmaÄî)ÔÜ­!£¦öÜ@ØÁ®f´-…ó™)¢@8ôuHÒÚèŸ#pv‚›aŒF¿¾Ð”vñÎø_[7Á‰\󪄦4 «¤p¦Ÿþ”KÖBÖNÉ|ÁÝ;…‡O"Øm+ÏÅØ¨´ê7†âþ¶í³m`F¸Ì!ÑÆ4:‘Lò*ƒ*€Í §Šc|9SrÙï 2É3(¡ ƒœ¢á“†¥ùŽÝäó¼9¯±/Ã=Rx:8)¯&÷¡«™è7öÉ$Å‹5¹AüAÊÍ߃-tÀB&0³©­Ç›‚”’û¢ˆÄ¢½XaEßy·‘ÕÉúòCѧŠUÇäã^‘ŸL¹ç˜9§­Ÿ}m‘1¢^òÙ:ý8üÐGèÀ+Ì’áo„ž’§ø»ÛqT7G'@D,b‡=_ÎS=5vÙà=ºõyíoߪ\›ŽÞígOŠAÂmº™Ïºíú û†"qKwv¿C@áú`ÚåÑC.JÖ û¶1&¢Ñ'š£L:çÍ2Épö˜B ïªì®&ˆƒ¬ºŽ ’Y ÔÚîøÈî+ëá2dÔè°#b£Å,MÜ–ÚKF”| (eJweðAû&¢L‚BÜ‹Šw‚«˜ŒzˆÂý!ÊzŸ“]4&^!È‘Æò¦ûãP½ÈÂlˆ-Vœ-BüZIc•ʳ³hŠLË%3Ÿ>AÑXRŠò>×MÔ'Ýbk$µ@Äø 7f1Ÿ‚N0ƒ­Ø[w>\ÓU@È`wk™nš;ge›tÆÏäñ«5µh•21®CC¸âphk‡o¦ˆôv{äÝÅJSĉ% ¢ï#±¬)í¢ê4Ë<2š-™†‰LGhÜûêBŒ Êàã嶺1ñÊ“}o©òMºPéVܽz_ Ò†—$uîÅö»¯Ú-–˜Ê†TâìµÙï¤{:ô[¼Fª¢mú E—8›Ý5Ñ©Â}uÕèå.sRÃx>'a«õZ›‹$#øRW£?ûš-ÿUÆø€pˆMɬ}N°¶ƒ˜¬ºä–íYUkp"ÖõÐÿTJSÐ׿›ÒãîƒX n2f–^Òw*YCE¬k´É°=ÃÄÝŒ¦Ö JcÛ€ŒVˆÿ­c¸ëÊÑŠTX7r%’’Àà{ÆEíÃ{ðæÿõµšfÁ³¯$ZšâôµØÖv!æmòÉ-pÅþó- µ®úÒSÓvv¦D<’r²$åÃÑRÖ›Á"$…J,Ê(/³Œ^þ†Âfs¦êLë ƒ˜ÈÀ=CC¾!÷¿]ÄŽ ‚kô‡Ä¥Zos#Þb¬ðëyáÛ…O ‹„Øægã´õâëù̃ç \1‚Ö/'1‚œGÁg´´¤5ÌÓ¢9!ÄðäŸ ý8!/ÝÈì׉B¶e" ô-o¦ˆY5ûßµ>À«*"VåÉÆ„;t¥%þµôI‚:í0ªf­¿Zk‰„L¨Î2ŒÞy`¡Ïà"_dm€ {%¨}Û3 Òm{3Ö=-Ä+Òÿ8?\m>B®D* Âæ×yR°ÿªUT¥r˜j¦>L¶ùqõ©*|Qg3wƒø‘$’9étWÆI·åt pv­» ^÷<´ƒ4e.Nœ-ˆo÷ÌkrÕX¸Ó¨ËQ o³JÁcžž=oïô'\šÚŸó·êqµn> ¨[æ@éš[ÁM½î£n'õú‘Ý“,¹Wu}ªKû7h»Ló¸Ò:¯ \Ý^FDÜkÂ~’Hš`­ýʈ4:Ö¹„tæ›xĉÕñ°¼ešÌÕo11Æ¥Ò°\h3°Ã ©ÔƒG€nX±Ë ÷‚L| =üu¶¼²s’æ OVwÓ˜âÜb9=þúWÖ?E5hLè!¸sÆŽÉÏÍgAƒùã|œ/¥E–â“óÎ~«¯b)û{gžÝó ˆüI˜[}Þfس5˜‰é>¤­ÌãVÚ”^먬o"GèÄ$—‚¡cÖ¸ÞöÂBûN~Ýnñk ºÅŽÅÙzQÝ;¼Ý‚˜ˆ÷θhB·±ˆ â›Æ ãNèÀWÅ5ÈÏMï¥Ø¹ýy4ó#A&Ä2pôYÖÓ}Sbý5·.`]¾iÑ·¨¿Ä½Dv"2HnÝ’ožÈË’æl5Þ§ðØc6įüâܵý£h!eØ邲“<6bs£ÇýPU¨“¼9qôVWÅ´<áĪ=Æ‚þöZø ýx4ƒäî-XÖ öø¶¾ ¯hÍDõïM°‰Ó€ŠoÙW Ë#XGEqŸNÏ?SqâEž'ø}Õp5äê^k’œw6‰ÍU Ü‹‘à\y~3…±:ðÔ\uµ ÜUkˆiw¶ßBÓvwj©ýu^PKü!;?^=}’ûUTiÖD.ñ­×Hè21K¢Œõ¦ž· Ñaüo†çSòf†°Rœ°\´T_ VP Áé+©Ú&!'¶ý§½_&8³´ÿ÷NA”3}ü¶:]ÈKÀ¡eäí£… ¹Ø²¿†¯ç@Òb!µÄqJ&\ª—ðh‚†m3ˆÏ+JiŒÖH/E8Ù/û¶ß«r;~ •"MÅÁJôeû‡×ä>Qʨ¾•›5ÚU5Fxê¾z½ý·¨2JÆ âÕNÌrüFØ=²±2GÊ%Ý®$zÍÚ<'Ö¥š„ÝˆŠ–ºØž˜ˆ' ôÃ>Ú_V+†!ï’ˆ®ÄÔz™ ºF î4¿þW¡.× ý˜]ÉBzèÂt‡8H³sn8ÀB^n܉cñHJ§¾®4!†FW«ÐÆ+M·‰ôø¿n?ƒñkVF6\©ƒïó*©››Ò‘S£g¿Z“:ãâæ…«©1Ái©i—¶ÁW!3¥ÔÉxþ>#fÊ,–[º¦ö]0|”6ðÐñÁ¿f¼I¸MzT`,UÉ?c®x1¯ äOxý/ÀˆÆÐØ%ìã<šïÏt+¸óˆ·~¿†©ëµ('ÐÈ5„Ò/=† Å@ùÎß›îÃUÓ¹mò÷W¾þÝSœ ‘ 1†Ì·çL¾KNFë­h¤Œ—°p11mãþ‚†F~ ‘Zo²híÏC,µ¼mŒëì•FI×UK¸âeùdÉfq¢ †ð4žj©ç”]ÍïJºØŸ-5º)vhÝ­`Òp·{¾©ÙÛ?/ùcù*‘!F.6ÙoŽw6 6”,pæ°µüœ­ÍúÛÛ—š Šýq.lÓ|k»W¥ÿmJÑ?}ÿ×Àío±%oaüÆ›´Ù^ÿøbivÉìŠ'«¦] „ 9£@êÅ«qAq©Rnw—vÁŽb)¢Ilk$î•͈ÁÀ9bjmÄ¢ÊÎ’Q‡M ò˜U×c͈óÏ/¶×¢ôJØ·¦¾ë¯* ©5]˜‚‚LÂ= mͺeÃoÌ']I5z¾‡ð­©}˜š/®Ð¥¾¾óôÍe±I8šô+kù½ø§°Î¥Ü fÍÆW_¢y¦%æó‚2±qç«„'¶Ö’$ÈzwκÉ$ëÀ» ·4`I-ˆµë qÈY:ÃEºšüEtéšóÔ~Â5˜k˜èXnßU/áËÀ"O$çRÂe¶­ž¸DNÅAä§”3 CÂëp¨O“믹 ;2…tò¹˜/¶ºÂôäáíûdzšI|LtŠG˜€¹îM‡O)®Ëøë0ä)\òôls#XBÊnúÂìâÚ¸\Jw®pxöá´jïg®F.o–*7h'-Êæ+É"Ž÷týb" ´â} t>ß4{­¨Ã¨œ¶ìxßxÝ{.`P˜dlÙŽÔµ§ª‘r¬_¢ÄRaåGØÕaZEÖ£2~Nê‘àw^öOÓ/ð¼>ò|U‘½`ZhˆÁÔ™¤wÙaGß–÷• W>¿>£ÏéΓ m¶ôß»¦“¶*°è¿¼É¶ö Ù@Q{&$@=Ôå#¿´ŽY”AP·æ0±ñ“—¨b¢WªÊ‹oŸÎjddy'fÜX½Ww<@•S æ‚®õŠuP{¶¾¹× á ÎgQ¤&¶3s…¦}ÎÓé¦9¸Þ¤{Õ !X3rºg¹2P¸‚Jÿ_âª(*5¸×§³`¸UƒÐæbÀbŠjžGÌAY¤—PYߺ»½ì«XÎÃÀ?RF(&îs&xûàª/é˜ÊvÔôÕÄô7)4ò à|ñ‹! d»‚´âÂ…>ôQToiGœj["¨ÖR“÷S¨â¤ˆá''Gé´P¡…H0:âóÑöÛÿ„™°tÒIö«O§‚Òwºe䳿÷eœý™-ô· 48ߪ¨åWµqR€¤_t­Ì_ºÖªÑã•–R„¯GGŸJļCïéúÔ§dÎÙXÍí¯\o’·tÁ®0qòÑíØnŽÒ{©*d%Y`ŸÀ`V‚”p‚ð¾Ãì¾Ú7Æ%§¸¶ô…í÷ŽLò‚óYKUgÆòBL©`‘„0:o\è(É5NZDÌá"ãøÇ>Ï$N÷YãZƒ™nfÕ5Y=„ú©ú”ÿÃÀwÄ¡·bñðÎÕ?¦ð‹]ùÿE>×ôà %*æQ¬.[‘Èžo™®5HNÕÚoºí¯",ôò+ð™YWÒ,Æ XT:Úϱ1)%]ýP¡OXnöþ«]„­fÜS»](9–[J  è#rÓ53ßiÿ„"žNáÊVÀ0­¯ÿýR=å—DL2 °žØFÄðÇ 6ËþF=¦yÂ"U)ÆØXV¯Ôû$þŽÇÇ5ÕŸIîˆp“±4¸Rgk­Êe9hýÒó¾«Jw‹ÅI—ÅÈ.ÁóD—…-§v÷`•ƒì)ù†â’ ÖÀÝÏbj#åf·Yŵ°á;ª©cRwÿ Šá¿ŸDÌïj Bé”’ßL´›ä#GŸ …¼ó®ÅÝ¡ÀpjÚóu¬ ìµÙ‡Óuúuà²ÌŸ1 àŠ^½^pÎ’™»f…¢zæ¡=ß4Ðû^,³'¬Ò•woL(ˆ'Ku2ò/ö´ô0·²\Q¸C\O|~ç­ï.s˜V\Ë1·»ûQjóõÖŠ"Åx ˆ½qÁ†h'ÉS§Yaâ*+­sÑp V&fFX¥ø -4Lh¨À^`‘j…X'ïë×ÛýpÿÉ!ÞòpÕÚE¤o\I±/»o™XNWÞ¼úÜc¼ ½ŽCÂY¤ÙwÛ%zÕ~ ÷R§L!ùz¨ÔØÍ³û¨AÜ"NÍ–jær ˜I§èû¼{+¨ªÖJ®ZòÇO¿óZ\ÍïŒãÿ X(íðÞSTK½T@³‘1èèÎóèïíxv½¦Ø.yÞR›ëäjš§Ž~ûÅ2 Å à©ÔW Ýã³ñb "Òœ`UnåfÐHÝ’žèÇ`µ4ûdŽ÷Y)s=²låÁÛ.4Èã&‹½àià´bšCW ëódÙZ^š–!nâ/V9U¦s_=¢‡1EƒZo¿ÖÉ%(ÖC*Ø®5þ{¤ì¨Ý"i†8ÅU*û6þ»Ë~KôÑ4fB)µj„°X/ÜÖè¢_n>“0æVò;ß$IHŸÜGOR$iÄʪÀÞàu³«CB°rÆuÊ+¿`®9†wúÊyçšç¢v§LçƒÃÈÌ2„ûõ”º–“n'É;…d•'!å+x¹GLûß±§¡ÞpUG¸Ûôs¾ÄLt~HÇß6ShùI,°W~ ìá+¶MJ9,}Î5¨ž ¢Ž ú«ÂÚ(нÞzgÖ‚Qßkãrú]³!b-÷K4ìqLÜ_CštïR[ÆŒ¢ùžºÙЫ|…S3½á eÜ',Up¤ àÚ§8ºrBq$ Ÿ³âóhzâFéýè¶S—StÎ= ß=ûj܃0{¸@.Ýh‡Ùã p°ß· ÃoíMÕfnKâR´Æ©ÍîžV‘ µô4 ÑnÁ9÷Õ½=y® ’¯· ¨–X¤äFv˜†^º(Iê$ðë7ß *Hl³^ºœ6sP7Ä~‚Ò}ôF; m•¹Î‰ÓbdÃ)^÷hkM]=Ð^ó‰GГ6-‡.êûºÛƒÙp¦éBŠãêæ'#ìF%–v©ÇÂýh;*¡^ªg$™²_Hµ¼Á›:¾”ó…Ê¥rú³·üûqö‚ÉÁemŒùì8qMt w»¿Ðî]pÚÍ '¤ü^5´(©wŠNCckæ—‘'†=U&â-†Â''#üÖåNVxªU,,Ì÷—¼:çžG¦ ªœîVnùÒ鸉‚PPD¢ÓxáóÂï6°˜¸ÄSâ½rò˜ =t„±×À°?‹Ï8ÒùÄÕ8m¶Ë\‰þæ_oY>ÿG­¨Ÿ¨UÍ>Z]çíh(€à>™I¦ªc^\`Á›üo%^¯'¥)àXÆŸ“ÐÆ{wjd%¦0~¨mkÔèÊʤx¥Ð¥ôÌ<œÿ¨ü±ÖÓ4a Šþ`FúkOãm„•­¾ô—IŽw/̧0†FMOÜõa¨³gè¥ÃŒ³ƒa_©£îÍiIUr;êÐ] -x7C`,Ô¯e87góZ­öÆ?a÷ö %îrù?YÝhÌ÷•×X^Ý›U“!™˜QÓ÷¢`m½žxÜži®øZX·‡J}¶‰á¦œ`,‡öl ž"߀¥Ä,élò½z½ìÐRmlécÞw¥3ÅøT6½O¬q¬~¶zAªÅyÚ©ñù®Š Î7ËÚÖô¬ø¯×õš‡“Nk/iaYå™Òë²Bòè.ókT¼gãè‚$lS¡¶¼¥~/I—}¦ˆ¸1ùLÊ…Rt3…y‰h,&KÄþOM@´d§ú?àXâµÁ¶V4Ès_nM»î}>-/šy/ç¥øýBµ;Íɽ35Š«…}tJd Ôžú"Ñt‰ÚÀÕË:Š[Óq“#èªj>·®,± ðÕº%„W—™©rãzà oé›^Oß6ñª+- â%ÔÇgø)OÙ²ÙÑÛíÈómgô»·/DV1ßN[“5I1s˜‰ÇØ+º]tùÍG’ Šê,¿º¾Áó÷o;“7ÉÆ!7ªž[IͲf4Ø®D‚9ô ®Ã娸k™Ôô¯äÀ©9ÁWÛ‚r =Hì• Æ^üÙüè(Þ¼ýXÇŠU€13SáðÂW.ÁI½ËE-¢úÂÂSîÎ?:Û_ì-tF¿ßĉem¶"ÊÖR×¥íè†máÛaŠÂ¹‡W5^uRiþÏx-ÄöK-Z†¯»iú(šY†´Ì-8!tçFhG‡Ë‚œ„°L¸Ù$@O™ [õ8õLÇ;§õšåOû¡Gwµùsñ¤Kœ]‰ÕÕâ®z]X´Dò;gò“­”|W).Eî–Ì_Âf+ð°B’É xQä³Û•š·u —¶\QRkmæùÙêÀKèÅxµ–óP:>ûCÇ‹²§,¢˜[y2î¸ÇaìsÛºT0žØéY´(—èÞSsÓ*¹§\HªÁ?! +ßÍÇšôÙÙ65‹T Ô¤´Õ•ÌU–0L_²J!qíeg’nØšq2Û'©GgåCeo^”þ6°|` þ›e­ãÍlÚžêpUÖ©šÃžã3e¡!wN¬ÊÊrsøE(ðÕ÷JÏ­#»fœ¬Ÿ-ÙP$ªpQ˜¿1=ÊÝ{¾þKî‡eœàK›‰½ËƪínÑumÐÕUgCHÑ@«°5Uä¿Ö"‰§ +|y|Ô0ðÖJ>Úi”ˆ¹ÓØÐ˜'?çx6¹HÜ–m ½£rH‹Êõuƒîõ»;«ªŸ%ãõ´püqo̪•ª’”‡ZÑuëÊ*‰$óû̹û±6„Ø!/cüjÜ< N\ü5õͨõêÂRÀv*T(ƒyü¯n é¸ñdËÌd Òë%ZeqÞÔ6Üøï'5•!w2µ>?ôaÄÅ)z”²pwÃ*³¹O˜Œ$ª†Ò<íUfÿT.xßc{âÑá7«Bÿõ‘5€ÚMÒDK¥¤TÙKן9dA×»%Y« òl»é]¾Pò;pá·´û?ÙâSw„ήœ™­hñ´«‹¢toHð\µ\€ Të3 -À¢ãÖ'£ÐòLÇò<–™Œ}Ô¢C7%›8¼&8¦KªB?ÏhЯ„Pƒl7pbSm„ñ3Í_kq~í x¹ñðOøOf¿+zg¾[7e&¯sÅvìɸ2=àéÿÂØ‰1ƒZ±8 _±Cï$V¯^ÁòñÊ23Ò™'‰qJàþÛðËÿYÄ™$lmø P-x#6àPÔz5Ÿë¦Ç…‘ Cš30Æ@„”¼{‹Q×Jã\ ² q Á|š(&Àë‡v‡Š;ô‰}Nòpxx(¯×>7hP!£Žu‚(Ó¥[ òÄÛ?ȼ50S@c ;³ä7ìC$“¡™¯uh08È7ÑÙkä¡9Ëq çÑ_ÒÕ/ÅýbPàÓ˜¾@ :ÍMa“¾ïû Ÿ~¬n \îrÙØ«Ï“+± r}|÷¿k-þ9̲ôušú`ñ~{_¤h8U«àÔ…L0¸Û½-SdøÇÕÉ0ãʳ¢éŸ‘˜€—¦>ȧr_k@¶ÀGÀ‹eÍÁÖ‹€;ïó.dëˆÕ³E˜7ýNq[‡ÔŠþ´(:'¼í¹Æ²?ºi]€+¡•³ƒÑÕ™6”¯œFGÂן¾õ hJÆ}j&û¾ijÙgŸ¨Y—0÷÷ͶSøq‚¥ ?ÇÐq;ÄöØÎ9u.pâ6AJðÙ‡GÓJÜ´qWZ¯ð#)BÏ'yG³Š9á=U(äù¡0îÊÊ‹S$!$¦¶ÇuŽNÕ©ß$¸u*žÃ>t-…@b£âç„‘”q›¢ïLžÎ¨¿Úv„€"‹m³÷ÓÒ­B#Ý1„?Þ zt I¢¸ËVjX”'³–Ë[↠0ooD7™™·ÁD5Ç#?†IA##4f[*þ®Y wêg@w¸u‰v”ýæD¹U £¯<Ó8—.u‡yÌLu9Oà “úçç€ P¿×®èî’2¡µävÖ9ôðÒD„óà·ð饳GÛq<Ʀ$7šËœ/s¢hÔn4¦êeF\gÖõ2¸;¾á-Wät¤n½Ù"Dð­zJ››´K%ccd•Eß®GLuR4M÷RÔ¯!¹î•fðZíkË‹T„>ðWQv·Ð!­ˆ§¸ÎK¯­­¾¼Rº,­P{’™´m²qè%]ªwp,ý€<Éúš5‚äÊ2:jUú«’õçÇŽ;n6Û8$ÍïÍÃc§\”=8™¢öƒêßlõUµû½D$yí¾ÜÆO×w.(HIÈÛ˜L6ŠËR¬2Tl¦ÌÓv~¯¾P]]AõÐ3,kN–<¬§#¹I›5¦ªi\Мëõ¾<ôiÔs¡üî2Kð Æ VA¨yÁ†'ˆ°Ez‚VnLÝ„ôNvÆ¥°ÅÅ4 ñƒ,ªQŸ¹^"ßDi=’|Ÿm¡5ÙckÝ5Šü ¸8òã6Š’Š³Ö¿,¾ò@‘ÌÇ«­Á¾Y3çBx8YQà-Ĩ{é<äL>#Ââ}ù—{’3Ãhœ Œ\/]ÖçþÜiá:(ðÃÍ!´‰2ÿiÉÖ9c<<ð¦­øÉ äŠ8—ât±é÷71•ȉم[8,…ÜŠ$ÏŸi¼¼m V=žq.°YiúŸÁU¾-eÂqì½®†m \¢œèIK"¸ oOKs3Õ*›4•×à}åyŒV?AGƒS\ýî ÐÕ¢;CDâñ’œ"ÊÇÏŸ³_hÓ.TT]O][õX2ùbQG†›º<’¹¦¯\”ű¤Yç~—RUÁî0©Ñ±NksÉtp¯ôÏ»%¶˜^çUY{ÏS±wµFá9GÜìYâïö‡½c_¥ÑúêóÎX YAzšŸÐ ㎔¹oüwFS4s„&)PÓ{ìtQL]ÃdŒÐ˜2Cœd8ÁmcÙÔÑ/:^Òl‚ÃŽpñb_'ì}»ÕZÿ^[ï†n°´VäÿÝ,p«Mõ¯ÛÕ. 6DØ¥¿+Ÿäø01bªn½¨JQYzZý ßo {xRœ¼£iÞ£‰ÂQ͎Ň‹èFÊ†à‚¯ú½›.\äø1] ô÷Ÿx¹9»ZQú+×ÓÊi÷RNFj_ئyV}yÐËÏGødAu{B¢xçØç¹q]xS,'ò¡qWÃÇ N‚^Y#ÙA8.5N áà°ÓÅã I¢€x[/Í4æ!„éñMP²i„6Š\fÿ¬×Z’4¬iõ~)¡?ΖR8ý(E*¢,Ÿáobpq°«œ_mzce‚´¼)óñ¬D·ˆÛ#»x äuKGϳ»âšojf &‰³s×þ(~ÄÒµ¦`°eÉ®u°á¶¿"ɘ]·‡âNvÐ/ÉDˆÞF^±‘¥óêŒ1tžÄsÄæœÃ"S颵›[íÔã1É\Rnš×¨c ¡p½±ËøŽ‹(ê*€œœ…æ=ÍàQœ`o¥¿äEyQåÜÍ׿›‡eƒ:朼¦‹½¤Žj®—²‘o¶råõA¹¹;ÂI»ž²’Gs´´LÞ–½y¬6þ@ ~ï‚°®´ù‡Í]ÀSƒXU=å"dÖdên},`K|Ø”±oàÂtôÈ¡ï.N»ãMkÌd&w Y…>´='¶'ù`òÀLmJz™öR $*ˆe€ë…'ôÜDêŽrµ™°=(_™L‡X³ªÏÙ-H ‹i;Üçñ¼VûvrŸtkãv¡Žq‘óß%³­ óõS:¨G1Oyá:Ë• yþXß=¡áU>‰øÈN—úp Â4’54ÛÚRg/̱§ê*Së6‹÷‘³äæÓUSÅ¢, Üágðõ#AˆnVé›&žŸ=÷&ئa´¢t©Åìw.‹ªïðû9Ý`l¸üyBjYë„9C!~ZªP·é2½—¼ª-êà°5¢¼Bµ!Ø*vž3/Ê uN7¹‹º‚ª;Íf‹¦~˜XI¤å³=êu "Tˆ\æx~ºó´€‚ào>KG]åÕK~˜B$ÎÜ] ¢ºõýoÈÊÈ‘–ÚDÞ+†"A·ãnJ÷…nvé„çµðÝõD½ÄKÛa‚][7tr„€_õï·­][š»U~6oÒ² ¬<—@ 2+[|wWcrœ|,ÎÝ&¢&'Ñzß—Ø·¯~YYÕ˜ â–³øo'æé‡js6 Ù­=÷ž )cµ¤Œ!X´Ûò´Až,ývfÛDhVd¼ZA²£¡ø†€ƒPœºkÏ™¦Y%KΜ%mp8—šëòîö™û¯P+áLþ­‚Ø!B㸤OäËgà!zÑÃ&%ð‡`=ð›@®‰’õÎ)pÒ÷`7>Ÿïj·ªiô=\„…†Üu^×=Þ‡²ÖE‡¦~ß±©“º©xãÒ2N38yéHö%ÈØ}†b›Çɯ+M$ qw˜‚ ÜÓ)اíöàGîéè¾lB}ˆÀ)ËÉüH+otnF‚)?³ËúúÐô=$§é2hLl1íogÏs3RGk¤?F¤ö䝸 ·:æj¹sjVê(® E4b…l¬,Ï˽ˆM}ïÉuïëwv,Ê$ý!z°þî’u&Ä8jX^‡2÷/!-‘¾¼âå]ÚX²1öZ0ªe41É&!û‹È3Ú߸4}Á®ÜVÎCiHرbÒmp¸èÿž ËŶôú¼¹Ïóè¹({Sا(Z|kêÔxkˆÈŠ»0w-ïÀ˜¹³ôª€»±1H àâGÔZÀ ‡øúüq».D2€zÚßù.„z{€pl¥fɬ¸ùâä—âÎNw–å'#}6¿–×m(2¹­Û!Y/C®þ‘[úÇ"9Y­|’é€Ï'šFÛ%£×Ù«Lf¿TE%"ïÌïÚ̽‹%‹–öYHY¿Û®` ¢h¤VôÙHm|ƒÃ °W¡Fu ´BdUY*‰ŠW]“5‡$×åñ•éjÑÓwaÐ?Y²Säô€”ÔHº„´{±'gb¶åÇp›H+Éë&)òS½òËø68?mÂÿX<Ó)ºw7è`è/‚ƒEà+—_뢃l·GM£Ë3‘>ÊE3Z‹\2 Êùšh ù÷zB4n–C]LMž7§ /~ØÑBøU7Û]}E˜ê|Ô\¥Üc%2™RîÆNô›ü>–ßšL¶øeÌÝðkæW$ñÃG¯ý#DÚÓ*¢nÌ­qªÔEš¿°d[“ÛØ†׳{øÁ)§¨ o)Ÿ/yïqfî¹€*Ãèð̈c‡’ à³µA'“ ÝA¦'¾„0PDG%»þ˜‡mD9wŽÃaÀ0ˆï˜µÛ[ÝØ”áBhRï=ÿ°2Äš`]—Ç´³Ý8 OXjNfVÎ(²BñŒ*°kïJ̆ì(îìýÅP`Ãc5ù¡ËµÃ¸çS¥ïc¬4º‹ˆ|û×Âñ1a’¿©I¸Fšu/®>S2ì¾§e“žôÔ=,ÞºŸ>V»T´¬ßßTk+è›ó4ùk¢Žs…pg ø‘HÉ×§•ÒëÐÊØéî€ä+]ô‡ ®­â>A¾i¸ÅÀ²©“¾'‡ÀŒO˜—Îë çby­}ÓË;«$ÀOl1á«íúùS‘ CCñÒ¸lú2E¡öyüKŽjêKÎaÍF‰Ã†ãúâºÕÁ$‰„+9G:¤úcQ… Û\Ú‰¥âÛàÆ›úñÈ#é6ò›Z!-uAYJQEwe®ò¾ºRÿGÀ¥´ÂºBʃýÈŠÖ·Èã¿Lq¼,‹ÌÎóCPïà ÞÜ]¢¤8 †Pçr)Íy ˜³5:ƒÿl M†`A’ó´TÚŸsèZd¢Š™:ÇW<÷&lÞ!?zèx eÉ­ìÖgµ‹ µUöλc¼­v!_µŸQj¯ÏE‡êÉ”Yc³Õ¬¹•(ófIÿ¸¼Rm¨-ˆ^¨–P„Øöjk²=T¦Åm*šˆî­¦¿Ð6í&¾ GôB°» Î_“ejòZsXÖŠŠ5ÌUmƒ¡xÏ,jGññY6 ߃¯AîôäÚ¢ ìœISÏÆÉÀˆû-Åšîés•¿Å¨Ý¹Þ'kö‰pŒ98ˆ'Xî#ÒŽU—g^}P‘Ø9îÌ¢Y„àzpz»ÎYZˆr÷}£æz ¨È„pà5¡ñ—‰³ ÿù©cÕ„—ìÚˆÉûݯ/ÚYž·æ“Ž›Ð…ú:2ø?¦Uਂõ*Rϰ™}ÕS=»µo}²ù_ø?T4{o ÷äóñÞ”µ-NÄœŠ5®ñ¥ésšnöƒï[£_ég僵DCÐÉÆ@¨M]YÎÛ´\‘ÑžEÙg cí‹qØj^§Ö»>èÓNÑööWøÏ ™Ëèlh{«G¶@f»aù(ó:mØs±ªcG·,ÔcÅFNHD-YÈŠ’ Iiùqn„dá$f¥Br4Lž97õ¦ä=aÚꃡe4ÈÅ_Éc7tØO÷€qžÅm²ãŸ1äøÚá߯Ð^nè@ˆ§ï?´ÙR«yÍuýTFÁFŸlÍÍiÁw¶qOøšÂøßZ:¿ccŽ0ø¨„Qšd9pÉ]Y°C„k „Q°ÝÈk¯¯ÅP|Ÿ4žKÃþO®ÒÎâ{=P…l¯&6í{ÝØíV„G/ =½Òv©ÏTŸIa–ÙøðšZ™µLhã3!Öè¶óãI' ø¯' (>ýkïßßTž,YÕ¯d.žG“ö+â;À¥t¬gc¤:Sƒ¸R&ójŠÞNôwZ–"4Psâ#/Ý þ¿ i¦U…­ºg®îígä—˜€cbm± -:n¨ÙATìGxqÅ ܽ7áŽòkJøÃ4 ;ÆÇcÜ8YS€Ìîp—OA¾<“ Cl¥,aºTLçN° +ñµä~n5êÈà4·‹½ò»‡Dê&™F‘ôÛB°TÏ_t8+°ÒÜùÍ¢¦’+…z#×ÇWb^ík7»FÓ´¦Fl£^{Œi;H4r¡ÀD[7ƒ=ƒŠ›[ò"¯å@ÝT{XãÝäô¯§»½û¹w{—›õ<¼çÆqGQí‘6åYd»®(ÁæysäªÇ óG îÈ=š§º´ì›ðQn¦“}«Ò»Ó=âµ㩎ºø¨ß¡"ª Ï]*l€Yƒjé¨<‰C#w®˜Š‘ Äœ>Æ컈 ä .••Èl¬‡?rdJ€kéI¥¿¤L‹âðlðøÕ›­"7†"Ìd{M#xð†p $!0¥½xy¡²ëÑsÉ/Aøæå»345vr)GÂ2Ffã]Ê(ÕrÜØãLÅŽâí³XŸÉË{€H?ZRtƒåöÝúLE¢TO«È@„w¹×UËÎ|)>Yë—xŠ}Î!^%Ý(yùYN®I Lá?Ö¯}uñ§Ö/•ÔœOSEhì8¦qÙ'îÓϳÝÏæjÇ ìûÑù¹ß‡ðèÅUB·ÏkqÝJeCˆ“½#°) WQ []Ö»—â=Ê–nŽ=²cˆ™Èo}œÄ÷°o°æ´ýeÈfeè¡5ž¨È!S•M‹À¯µÿ¨a‚"ÜŒåQþ=Ú®5yjÃ¥›kž[kîO°öZ'h˨Žüˆä´ŸÈù04Õ¿®cRÚ—MTžH2aÛUm;Kæ f3åBO2T‡Q0<"(HêÄ@à«:Rl³÷’ûmkÿ˵ n*·à–ëûŽÕ>µûÇw¿OÎó÷wph4xÚú6úºrBÞš^Â9í á0'¸¹Ò½À£ãD‚~z7úd ø¶™uM ýÊõ0ÃK#å¢ þñsJ—ÿ]Á™)d:UÿhŠe‘B©ÕÜõ;—äß9K )/¡‡(€ûëdîBäp$=ÀT_®ýý`c#‰“¥&µ¤n¼.Pãh¤å yUÝÁ´é[EàË;¼ÍÀ„PBÁ‡Zq.Ùc0Ídúè°¤ŠpÒö€÷5Úù[Ö•¬®ˆSNÿRêWvàR®I/pÞïáR“­w^Ó…Ü/î·ª†ÐS(¿ŒÍ«¸0Û Њ&FPæ+‡7‹LßiÁ°°‰ýÄ´ôúè±…^ “Ï*ýª B.ïæcøÛ³U1àjƘ©W¥+ÙüU_­ñj½Î#¢Ìxä’›¯!vOµß9 ¿iU2Q^|ô´À_ÃÐ_1{ŒpŠÞó!¯?‰³€Ng¼‚Ѧ²–-±œÂbýMÏ™ÃÛ˜0š9´fu²ITÒ‘ ¿ÌÆ K‡%ݪßiúÞVñaAë9•Xùƒ$•)ˈÎä}ÌÆ¦Kä ÄE11„»Ýè:”äϘPä²ÆÌŽßVˆ>Œ8b—å\í¦ÏqÄÑxÑìÜn«ïa¶£L hr1ü þ¡[L){“ðôA‘õÊ1ýM!óڛ½ÂÎÈäõ~ôŸáúÉR?›à,SU›«Ñ+ ’2Ïpd™GþDÛc“-s â[é®f¼ÉÄà…Ê+),fЂüóþJÈB>fG"¨ƒ­ÛAÀÛô%·¿Ls¹«fV¥ØÁÆÀŠÃ©ã ~M{¿„s h¥ 5w0æ?:·Íj¦Fó‹Êf·ÆOÓŒÛ` ú»ì\¿ŠÅ(U¿Î6®i ¸Ù£B›˜‰ø!PZºFÞ¦ ŠÓï3j;"šYi åÊYð>䈚à$°™—wk÷uè1ð.^TÝÇ*s^?°„òñütÐÊÖ “­¶*¡ -à®¶dŒ.º¼q8äºÕyBÒ:£ë›¨ôuy9¶ÊWOt³¨xƒJˆ~“÷h¥ÍÊŒ•{·ÑònSÔžò¤/ã¨t½!~²‘ÐmA.uÓf;P‹àª ì_å­Xw,¥• ÃÐ-ÝÓ6åoÊ¹Õ í(U2*‹ãËö–¹²iÉ÷žAÉÊÆ­èÄãdås,Á ÆT¬3|ÃŒ£ô²dòÀxySí†Â|H²šÌq^°Oz 4æöPNf–Veéðz& Ñ&Ó;šˆUÛa¬Ü¥…¼Î‚%JV±ÿG¬cçÈÌëÀ„|¤­ ÞàþɆ>kù«:°Õ$7Ê9èü~ù²"õYû<±ÏI‡!DVÝM>SJT]Æ4Œ¯±1¦`ªúÅR”Y«*"eΫqQãäràç°» }ü^0Ζ¦%£³ÅÖ½ž‹uÚ^Ä]ŠfU‚‡Õ`ŠÄ¤cVs¶Ì1L²c¢ü[r²cG9Æsõ®}´ô´ƒgLG6>Ý9€qšþZ“}Ò¨ðП1‡½#/Õ*â©uÑ/±n­;\££"@y{]ä2 ™Êå|,2™çn "DmáØâ> ª—ªåð\kF‰ÌŽušKzÄ´ïæ¦(º\Ï:ÜÖÑÎ3“~¦­Ø•†1H¥Öu‹gŠÌ“Fdê]›8‡þW/ݘ٬¶u EÞ·ßàò>—’¼[C·Ë‹çà¡ýªÆ_™a³és±$–fäˆk·4þ k_:m[@OÄ~8ò*òu_sÿ{ž|ŠX¡Ip¹ìx·’ü9™R£VÕH‡Iµ+·)“Ôz¾×J§/ö® K·ü䘅Q›þ*d±ÜnП÷JæŒ ¤²Áy(ë´ÄÂ![õ2Ô[ÎK á*É1¬Ê97;YìÕà»àk·®á줴½¿7n¼b—oR€#ø†éhûÞq•U/‰¢D×X@·nvbbv³»å~¯„„¸ÚÕ< ×?ÎÊÊö¦² O‹öEf‡wû#plþ^ÉxøgŸvR?M*h¾Ã0;ü¦Û¸Þ Öw¥8“!î×Ö`žóˆÓy1!!A ò÷3â6éPwQ4àè68ÊQã-#ι’4¡¿®s€y`¾¶íàvÉÎjK†ÃÓ57‚¢Õ*ƒàÐŽ»ö2‘á%ÀB©+V¹†©Œ¬œQ>œ‚$xÏ_u²ÈAñŽÏŒ2]°ëÏ)J-JŒÓW„“Fäc¦¢”—µbä:W³; ÿ3Š%z²éNQ©¹çª~®ó“´‚ëŒ$ïÉ·Ö¹¥Juœž— –ýß l ËÊ‹ÁUèË‘Q|9aI†•±èAb ÅU—ôp]š×b“£­„$ÑzÊ£ÜÔ–dR¾ëK+Eúú0¬èë©ÿ¢ÔŠ 2VÏRv<»(쪋jÚHrCp}àèÀ$'¶àÿ%/JDØBnª]6Š<:‰1¡Â¬šˆã&üò„³mrÅD*ÖF[`nFpÃæMnÑ1eì)TæË‰ì ÄIÇ68Ý\M¬­ ¬Ñ©A‹‹Q> ï¶¾B,ZcáMyèR%’R èðí¹€(R>X—Ç­np 3\«œ-T˜Dõ²§:ZìÎSÜ¡¬n£¿q)\…ð·‘w Pì£Û2@½ŒÅ#Ú†e'=|Šs˜ßÐ#а†0ˆ4öswãó¨lF j²VR ¾u}¡‘izÖGÿv\à’-Bj)t/c'_ñjEÎ4sg¢xÆÅHè$55}Snñ{±“ƒ)… ÕX®Ä ÖDކõ”î@¾ìJ¼2t°9µ¸GvÓÖNo³é‘,ˆuCó,dw/Gu.„{N°÷AWŠÃä#‰\˜c€IÚ¨RãÁ·?v…våÛJç5ŒÙš@Ø;^pQ‡JÔN–örzòò°> Æôõí–)¬*[ú þnºðОo#\L”‡}BX}·T%ùHŠZ×F=o·CY#.3Í_UàšÕ_IË÷ÉTFB¾`¥f}q€õ‡Ùi!‹ÞÏ»ìåÊOÓjÑ®*É“².¢¾Þxs,?ârí‹UÂ%ù~ÞIŸÚ©w8šØÃsôí×™$¬ü¼‚¸T°ìô¨Ôœ›SâùÍ–THà#ÝÅ’< ixN^L ئ²B99$u9‡XŸ·Å²Î50S™[3Ú™UÅÅú´-oîTCN‚Õ¥b3Åo qIL8}íw\Ö“éB\´ =Æ“í)Ø&ö~61úÒ«Ô³Ãó‰U™”Fåª DÏxqîÐß¡:؃¢ÎÅþežè#¡'Ù®5ö>ƒ’æ«”è¶bÛ÷@!o+Žñ1 ¼ªB‹§LÃ@ášp-ê¤îˆ;¶Ó¶Ra1w–B‹Šå#Š å×;#\Ý ZýÝ´ 1dc·°J‚%¤œ>!]ó5»yW¿{YLÜ$ü1‚šîúPc¯LøZ4:9šË®ûˆ“–´xq\IXâ—$8pe|ÑSX´½g·›LçOr¤è®#%6üzÞÕ:klz߆‚^ȯÝj0 êþ0Õ¿A3³ßL»´^Ö­&E÷l²ªEä$ÇßÎ=WµÐདྷ@'[²•0_ â:Õfä<Ø]"^Q$<\YÕ4G¸öê‚û.þ¬ŽžŠ÷€–ômjóài#Üë ¸Áý<}^†˜aÏy à}¨G3çêˆ`ylz{»‚í¹¸À¯õã–Å|Ù·–ÄL(>ãò–¿m?Ó’"µ ÈŠñÀ¨+È%Kù>ŸUb{ã Â!ïï8.™Ð™–MÅ÷'aÆ93´öwn˜\æ±Ävk™cËÆFe«4åTA se×~â]Ffµ”ÔW½ðÞ¬§î9D—°Êl^Å¿Ö^˜UëÉ+žsÀʵJo/ÝIh7ˆÈ/¸DRÉ(w¿´ôsÎ< ê,‰Íô—N SxŒ$Rj;Q»šq ã³yß?ŠìÍUÚ6WnA²»Ùùð]ÉÅÓz ®Õì Ì9J½‰¬WŒ…‰oF=¢ÛÕX¢ÒÌ_L¢SŒ‰Êa^êÐk×Ð^–Œ…£ž‹ušbÊ4Û¢CÑqk6]\[VÈh?¥< Jd‡´þã#…DCG|4ê(sÀÃrÏ~y|,i÷v•ÝB‚ÒjW„ÐûYÿ¯È€ÌÃDtU¥Ìe§«üÃ4 ¹[D²]U°ãô:e1Ö3F¼KKŽs‚ïÀÑŸ‘>œW † m7k-ÁÉýÛ/··ÑûôbÙÌ5Ò; oˆ£¢ðs‚æª=&Ü߃œVrQ8YÿWìýI€Á|?Ž/ijöï‚lR=¸Æê*}Ðú¤ .óôÜï—#Àh´'N ßÛtiñ¬¨Æâ~½%VKk5Áøy¶ª½*¶ˆ¡²ì•µ´€&R„Ô°§ÒÈ@v©«ƒdè¥Î¶5Xxt¦÷¶oŸ;à®GrÖþ¦lÓÎ\bÃ碂ŠõÔgÓaÓ¹€!‹Éš™è–‚êÞ~”K÷É7§u'úa|…`=ÆqÚÄzžûÎÕ”Eª„ÕÙ°m$Îå  }õ¤`ö'Õäõ– ¾ú°Lÿ!+]6ûKõÔG ÞÈ Ebâ¸2ÝáÊ]ÈÿþcßWëâpIÈÎ"'VaAŠH½¡Ë“Ãw>bB…yÙçܧ–+:ËÑΤ-*pÖÀ2´ë¡µ.ƒIµÀ”Î;Z¡šV4rà·ø/”w‘x|¥MGó4 )[[Ä€ B§ lqyGeü$*Ä]zëTÝ¿uܸŽ&Uû‘¹Ÿ²¯1|Ä;Ú27FQï¬í0Ñ–¤ M­Ë ,³R^›µ¬ÝÆ<óïÜ_™6ý(ÄœsÚ‘Põ€†Õû$(kâÏ1„&žïr?b²Mòñ¡1{õ€{ÿÜüÁÖØ§íìžëZ ­,<¡ìM7Ô*¦=êÃÎ"SZ²×ÀŒüX›#o?¸¯Í,ôÑ..ïògöö„eû‚bS2±U·V(Û4.áÈÌÿœ %á¯_JýV^fÌÌÇHAŒÜ–ØÕäïÛQnç*'ìêë/ûLH§pU‘Ê1 ¬?ÉN“^å•’Ý ¨€Uþ´Ö½vL Ók•äÒXÃê»P€î‚`¢2xÄkÕ¢."ä |tTYŠO#í1‚ô†Û¯/ìH51ÅÙA¿ùäsgD`Eä:ÌF)6#Þ­~AoöŠ Õ@‚p¾0ð›2aËD€n0Ÿãë T|~‘ˆË«ƒw¡Ž‘vW䂨Fh,cáJ,#o'ñD;i‹ ^‚Üq«jýE¯ú€X“7(¸ˆô‰Û>ÚÓè³¹¿6~¦UAz_ݰz,ê}×ÒKˆSðY»Œ¶¹0’L ñÁG•¥òûëìq7?›âFl¢kƒÌËÇ{{Ožè!X½‡L. 9ä†#»Ò!qsÕ¿o„¥0óBø¢±½Vš¯fq¼$ý¤Š°E"¥Ê51xýò¾”zCÐ ´.ÖMÅ=+7HþÍRˆÒ¨ tªìKΡœÏ`æÁ°:ì·)Æ1 I¿Õ3ò´3x¿ð¦0ûÒµ¬ôæÝ/¸]I>ÔïG•çÿn÷k •$±Æò˜I:€­ C'JFÄ.Wƒ-µ‡ÄSp(x'Öaðæï™}Qž<þdB•ËÓ$EŸ¥8‚?E¹ lci¨rY[÷…óf¢³ŒÖ7u÷jâ‡.‰N)L7u“%•t€·@w§s‡?Ä @—>¼ðF“7¸6 ª«®o5T‡oZ…F@ô/a¨¤oâºFÕ1¾º„YmŒŠ˜•Û†˜pÔÂGÇ’%]:q¶FÁWWòu4 —·I}¿c𑱗ֽ{{ñjm:]É–˜>§Ûš¨ZÇîýëà)lÜç4ñ¶b¸2‰?7¨QóÂ:€EïZ¥¡BMf~ âD4¡îK½„LÓ…T!›2H.“”¢"9ƒŒ¤ÇþC( õ þç€×£­²%aÍÕéRŸ¢ Ç#%¤öçàú†488r[®g>Ï©ÚDKhMRî¾»2ppîi?}z>¾ç;þž6/V´±Yî^T²{+>ÿ^ñýj¶¨k>f&™Ki¤b¡_3K±Ý{ÿ¶âû_]ñ¹÷4çÞÑ9¤¼d˜Ùë“I%¿ªzßYÒŸ#ðêO@¯lMˆjÇæU „Ó‘tµ¦Ô~Bt›ÆéƒÃFuýTÂ~n+rÄ9M |òÑžR¸¾ay˜°ÉVâOÌOG˜ê‘Öè£N Ïb|…“þˆ›HzÆš!¨ht&CDå3¿¸Z sŸHîÑêÈ&ëJÊxÜXTUwG¿"LL=(@[ÇËŒ¨ñAœAAÿªJ3ð° rû±Ð寥GœVÓ{g/ ð„Ë«€‹Ö¡ºÛ‡Å]96Tbìº ’î|¤tÒ-!*»ßvaMiH§ü‚¸ñMOóë©qccA»@\ÂååuËpbÊççÅÙ¤úŠXÃ~1†,AmnÌÎï¨; dIJ¥ÝÕ3àŽÌõ¢’¨åû?ÔNaœèΗÈ1ZñTsIzÕ(™óß–¦Ë a Ü,jâo"ЭNž gùãúÖŒ¦y즋…ÔÙH<ûY_ ºbù¯‰žiéã•PýonXù½WÀJÛs+¯ˆÙÒS”! ;D~™î¦ûšP2åÅÏÝ6r¾¿·Rg¬¼£"´\7Ƨq3h œ=Éûç>б!' Ìî‡ÙsT°>oém³w¬ƒèL¹´¥Í1iÞÌô;(`¦éhÑv*ÞTKôàñ ¨PT"Äg h’õh÷= ©S¸á¶>䣹‹ ¼S¢OZ×—±ŽüÀÐ2SOoð2^9@Üx$èÊá¸É€B@¨¸N4¢£iY—eòø¸MÆL,fì›Ñ+X¡[:N碻G„Z¨1Ä(T÷z|1õóT¡ 7g¹Ì©óRE.SÇ>¾xÂéIjH€²+„Ü—¬)8êÿüµ‰çÎË †ƒ±a‹íkþ=Ktp~ÍútØácð ýCñ§8²"¹è /GNþaIQ!2}eC†Š¶¼ÈVØå­ÒÍÄ•òÅqÀÍä ×}›°ëf’²;ƒ§2D˜¾á±ù:8…_ŠD×C8Á>rè0LŞŻŸ æ”"f#¶±æ©°Qùqqv8‘ÞóÖ¹„ €ç‰Cô[ë,ùxíõRpþ$òMu–õœ1O(ªø€“SŒxÍ;;°Z¾ÌB¶˜PÏ6•`ñš†#1ÏÃm}¯ûw…rð,‰ú@µ’êEɨ'Úk¥#]uÑY8 ·µŸøA³ÐF«5²—Þ ½Á öÇ4–ynÆ7¤$é›’}¬ðÿ?Z1@dyFeó­Õ²È5d>8²Î“<7ðãÀÈàÝpÛŠ¢~”Pýqg?ÉÿxŸ^MðO2n4'!l˜íÿ9~)ÆÈ'5õVG·äÊçEn•!ŠÜðoÑLz}c0Mk}NFËÝF$ÞS‰·²æQHxýÆúÀ2 {ª¦ŽêagÈ5*F©::ãÐw„•Æ¡)”mÀ­k´ñBx螆Ø êH}^F-Ú÷±ª?žåøe½2Ùí 8³ØýP¦ ¨¢.y~ŸŽÂt2ù`¶bžd±´½Ý,ý<ýòZCNN»§(~rýN‹h=”‡{7¼`®0‡2üt_Ê-jÏgëêˆòJ†Î˸Üä–çt2êþ1·>Âsÿ§1›Š,þao~ôŸŒH^™@àÊh¡ÙI0Þˆ—`>`…÷c»ß¯ŽÝ6ÝíêÔˆ./H“/݉FoŸ¢?ðØÌöunr ÖKÆ@û*"÷ÌÔ»+íâ¼EøJX€z»OµïõÈ9þVY6bmH7 ®}fMM‡Ws‰Ñw[,,´ñ·Züb0qß-½¦oÏÑm:"m §CQePQC?œS/ºß“*ÂÉ7Þ‡Úª»ºý9åÒ€8ÌNK±ª}þèK‡´Z1KMÝŒêE¨ "Q?D´õ­ÝSp,øŠÝQnÍ仃hY²™•ÿ;¨¶Ï·|&½Ü…×€pÌ (¼?ØY9aêÚ51ýƒàÑIÞ›Œ'ôÕ4ǦÝÝ»+ÒŽ®€è>Q<¾ 1…7WÙŒ;v&ææúÄN'0ÅqÒʆi››îào˜8ÿØ›QåÏ,~š ?wtLNoÒ°«?wäòaõÍ´‡y­r‚òå§âL3|1ýF¨M|Š"“](™o—ì~fä%W(ú‰ oþ—˜‘¾yy‚,Äëè9 úlôä\Ç« VéXF:ùVÅ)<Ⱦ~X×1•ú'—A•Jøì°Z”,¾>C uÛ½£ü)ëŒÃqÀ• |ú ¸ZK~0niUɤšñ›"À6û¾^!ècŸ¢ã¢Õ™\Ýn¤«+/©Ÿ±"ð¦d¹øÈR啚›xW ó ½Ï$ª²¨•)—Õ¿#Ûí´…}ø¶¡d…:‰Ëg÷–¬gÉ¢¬]F`ÅiŠ;î®B¥ý»Àø|ÎëIW:†Áb\Wï!uŠüxÆ@Íä#%@ŒÇíeÎÌÆ¶­wj’ªÖ™Œ˜þË;b%aJ‘ºä•$cVú&â+Ù² † [ôù¶ ®Óس}d Xg‰S‰‹é’´z̶âvsšd×FwÕµ/Ž|Yh¸Y¾´î¾]õ—¬m"ߺV³ªèí5Eð߃õFG‘Eâ{ÁLÕßúÃÂ(¿T…³~E”2Ôýô’eÛyXð-¿v“äxQG èáÃ÷Eô:1ALvÍæTD&ðù#ýTý>íC7°5¿¢é†çé9&:yg^¶x„@nÃ߲튠õ´¶´PºŠS—¯ yWÐ@U‚ÄÍ p“#4qœäF±i¶<´Ñ¢,4,Á¾ÃGv˜W°YEš£™y˜YCü¤…(Õõg³Íc®›(Fj?Si›½ïµá4c“í›üÎîN:é¡ë‚2­]íVCñÞñ)5-¢g Õò}»úÕnt…Y)u*‚“ btKžq åÊMµ·ùÃNª8ç*2d—üÏ™wè½fó£ôN®Ñù;§Z\¢?ui' ›'EÝ +7}´þ·É"‘] ¿po‚-ºb1ºר ¬š±bkÛH·Ël¢bÂÜM†ÝÑ‚¹µ3˨ô|r$ý2Bæ# Þ¶’r¨S}t©êbn¥r5„VGZ5ÚþÔ‚ý`ÿ,ÕUuæÐí¡$|¢Ó9¦7PÚoCîš 9åƒE¼vL±3~Чìk¢LÖòI}.““ÖZÝt#sjYLJ*Úäm ´<ØêÎo ˆ‰;e7Ø[†\Vð-eÓg2õ–õ¥ã«8‰V ~unLùÿ,]µ>uÏ·RwÙ@;\Ç8`˜#[x[Æ>i]³_RØäUÂ+öYé£rD}_K)uÀ}yB/ Þ‘©óÂU—+ªÎ6xÅ‘Çò½ÛžU.ÙLòƒõ0×+°…­É  ‰—ø-ÂòQù#«åÞð^,@ÿ=|ÊÁWyÏ—'ÃÑ( í;ϱ¹±÷YÖû!{<„$4¡oºëlz…«áC_ìéHR­r0Ì®Ûë´)‰åØ™¹¯ÔRì?ƒ¦kv‹Q?¬Sµ2Ò÷í+ãÄ×H,¢ejOîd‹kèJm”LA‰ÝR•Àà:â$)l'”B$|ؽ°DŸ[à¨IŽ0plª3ã¹1¡Þ`_÷IGam¦98SÎ>Þï‹.í’µœ• ™E²„¦ e/åq©]"z©ˆ9X>!^ïL "~È€ÛŦb?ºöCwÚXò%|*-6&4•ÊÕ©–1T nòeôtÔšÒpå ÓéQvæìÉsþ†å€à¤%{ò1Z„Ó+,ŠÔ–Õ¾êVeZcdûú'A'yâmL±J—ÈSdVHñÏИÎy\{½îFÃò•×T=—Àªí^^Tù-ìzWëÕ–á$ÓÌÚo’ëG„OÇFH%Œh+T#݉že‡¡§à'ØvYì(IK —üß÷³©Ch¦÷ù„@pçØi™4ÏÓ²¼ëivDbÛC¼]z©HâXÝUÔ @ÃH*a{4ÂqóY­ZZâvŒÿIQ»¶2V¶Á°÷Ðôý.È‚íd`‚TÃ!—å,à8×ÈãµF Z´¦ÉJ ½æRÙ«U|h±Ì&ØgþŰw5ü ;¼Ï¤ÁP¥ÌÅ”±NthfõÃ,² a…˜+;1S"E(t&P×7VD~5³ 6¡K£ƒ‰?ÕŽ’ý%ÍØ´äBÖtüôÓ–¨¨ïò¶ÚÌi¤óP_XAÒCB±8O .~/ð§ ’ÍŽeKŸ¸—ͬ¬“Þá¤9›‹;ÚbŽåÏò1H€Hœfq¼¶[+%i=ŠJø”ãaÑQtב h?B_’kJl*Æ Ð -K-mƒ¬Væ„| „s;†:8þ WäEu;_@o´3Wh§º¬®ÖK}ï]Ãct…MY7ïEtˆÐnuøº l!É»ïÚ¶ª@5臗«Fæí ë<¾ÐcMà„Xê1€ÍØC…©ÌU=Ÿ‹’€5ÖªK0v»¸nL/,°:U¯ÞŠ2e»E˜JHôÁ¼0µÖ.\ŽüPñ™Ý_¥ S%Þ5'SäÉðÄ´L¥5 ØW›ºûpÀ¢á®o?ý;Œònì47ì~€Ü£hֱآSòçCxÙÄB1öêë5ÛÍaäþkÞfxŸ)õíJ»Ôk1§pu:—ö›^pri·9掲ÿ×ieÇ0ï¯$gÌä?èÕÚuBŽ­}q­;H¯.úTM‹LœZ&ÀcUW¦O㼺CÂÊ„¶5×Ìjkîsn–tHúìêñËŸ´çîåwßMðû›[3FÓ割‚|€OÛe!;€Ä²#¶‡àÞg1?Άσ¹àvñHyH^CæÅ|ØäJÄʦQò5θÞ\9H3wÙáBGE5;"k/M8ÐÆ4ôœ÷™ï IÊÌF·´Ž(MóÎ Ø„aÎxÞ»Ù/9ÎW²~Në›äú† $(°ÿÃUöQ²õK?T&‰—2M„ ºRBAÏø ðxu…ÖÍîÔ6ñ3V¿ò`ãÛᕹcfšö²ËåÄbywÈôÀÐøãﮢ(ßb,Ùb2žy”JâFn9§Þªvq´ìqnGEÐy3sÌKóz“vFK-ຶÑÚû#†WØÿÙ™‹X¡ÍPV ܉^»¥t$NÖ…ÃA+(ŸÃéXàjO”.½®ùà'Ž'tÓ©ôtTpFõKf Pkd¥%c bPÝ6°ýÎôZ{ʦúRÙ ²| ¹6j7®™‡Pžwæ]Q y{ÜšçðЋÔn£®á).æ_‚Zî÷9Ã3]M··KFtÒÖ¤«»'ŒÒšîy¤È€0î;_4o$¯û–/Fƒ,P.cÆx‰­F ×[¾“KÉÚƒÒ\Ï»Ž¤š4-@E,ô“„ùÊŽŠ®Á™£µ SB?79yu*p¥»bÔ]„º›ƒzøZÉo-ûg×_Õ6ÑB̆ ’û³éé`:C£GS›˜øËv~²^ ?qÅ4ÎðX‡y¶ãáA™VŽk¿Z÷xøb~QßÑ€[×-Áë4±²õL h<¯ %lPð¹`oêfrt§ÒO³Ú^[kÿ3wåU½«¹©ÑˆöìÍ|ÆÇwãf¾è|¥ˆfª¡}ig™ä³ò'Dƒ´ÔÓoa)Ö­]E%pÞB5 —âûšvÙz˜«Ô1nôÀŽbÜ ÝÈN—ž.DÆÄ滣bÒâØ}o~tïdòÙ9 žÌÎÚQ1HpϪ-Z,gm[a†Â\›Ã*yk ñ˜ñ³ †‹•NÁB¹£ Àd¢¨œe,Œðüë>£\í²Ã¿¥v` “‚“I8ƒÖ¦P&+ 0÷ 20 :ɤºƒãJm’"fJÃEfë¢Ï5“û—Ù »4Ò¹E÷¾ú„»„‡-Wk© ã‡Ïm”Ë@v ÆÍåiñ2/4Ã"4A°Mó¡žd¹ÅNwçë@ˆÕ~~"ו#A)k4½iñ"Æ 7ËJ8ÝvJ«¨dQLnÝz×l¥NE#צ*Vôöûù/ÕPJç6ƒXñë :íþð×tŤÿoÆœ aû³gÆÓý¾Ÿ*C[—ð­²çƒ)@Vîf£ÅézÑLŇ4Â-e$تŽf|YF¬Ìjžb_Ê´°R±"•—‹—ÙQÒ–kŒ²Ë›E[÷Öàðy‡ˆç`jx¡QÍYÐ-:ꑽXÆ»Ó õù6€ækŠ&½ ý¨XʯÂ.ÞZHn:y¤'vÖUºª1;ccƒbò_Š"ÇŠúܸÜÒÜZeTÈoºRxÄ‚™±Aßu•DŸ[£¡Rú^Χ¼”Z˜0Íyðhì>øxà'ȱäÀÒt ávøWømè;†)ª[Öçµm n¿8wö‡ÁÛ…Xµà"{”0¢Dâ9ž4âOZ]L£3k!È1% Ù ¯£—Lv|ƒ¹¤ä€qNéxæŠ~š†´u¼Éb ÅOH Ã8áêóu$YýËs‡à€ìC®/}pùŠiX¶¦¨ù’Ü9# ¶Ö«9­½lÅ%uÒ}£€ÓÆ œ÷ÑgLº%— S‡¾þpFßcS­“ÔÔ2¸CÊïY @†·+þ󬜡cL :½¢HlŽ É ¤lÜ勾çÏè#^ÀZóÙÆ÷6bðvI– &è½´ <ðÏãæëJ{÷¶,N&£ãÌ®í®³`>õ´y^¹nY횣ð"°8lI\íóËrÒyªøÇ#S±ÜçOÍ6§Ä&ÚM»:qµ¾8“?¬ökGÑ~ ‡.¤pwYhS$ê,=‹Q¡jM+®ãH迺¯I¨ªÝlOKjà1·ãOWÞûDNëÙ®?˜¤¼8ãLØ ²AlX‹þ*ôTH0ä‰@l¬E»½µÌ’oÏ–Ùôt>6è^W‰(Hb¹¢wÉŸaÁ‰ð+ž³ijr®W/ÀÌðU N›ðäü¢Z*u*î²ç¡Ìûe4"Ëy°AÀ]‹ ÛpßcÔü'(™J¬°«CE»@o8Ƚßc‹…ç`í’Àå†\.Žê—Û«³¥Eï/¼Àwi™ôѯžm¥|̇¿VÑa&¨hdhg†Å §?Ïai õKYG’b±‘ò¶ÞxÂ.*9ŠÀ(ñ™sÈ단RÒäþŸ¯çû…}öîŠì\’+lØÒ¿D& еp¸õ]g$Ol3 }:Ь¤’Þ´¦Ú³b¢ Ýó(äÛœYšøl<Òª§%M‹ŽÚJzt»ñUAŽØDN¼ g{Éáù URÅ©0t¤~{¶1úÖ3¢#Ä©ÈÖÄRS®t„P‘õ–«¼ÕYf#ð¢$*MbóF’I~z-Hòý+Qy8£ÐÈågW‡8û¯œ'GfËuƒ{EÆôHƒ—® +R–†ƒ¤gó/ZÏ >äm;~Iò&12¿Y†OõÅT03¬ÉÉm¸wdÛsþã%Âî&Ít! Zßå&à "4¯t±2$tNMÑJlµñ¶U0J©]ß`þÃs¥Uó[;6? €°ˆè%,Bb5í-”ÇAÍ£ËÝrÅ@ ©H¶a]GI½¸P, ‚[q„ÙOöÔ9¯•·¦1™(½=«SoôƒÔº˜Ã)\Ù @8•Ÿ‘‹M›v%vh'yóÓ pwõf?ªÂ¨Ôq%üÝ¿5±ë?e ( dzþÏãµÑ§ìyáÿÍYíÁS¢NÖPò¤L9ºÛ$ŒŒhès–v…tÑåK{ X7*'EÚuÑa«UrïC/f Qr`ëÓáDO3¼€ô¿Y†ß¦Pûbj2é›Cõv¹|¯Ž¶%†ÒéHíßc»¬Yß#'n²wA#¸L¿Eg€žâ{â ?ázÜT«Ë´¤èÆ®¯–©ñ5 ô5' ³ý±‡z]=ê— ð¿Å0Ú+¢¼¥ñd«ªþD3!)© q‚Šj–B" ®Åß¶½¤†¡Û$ÃÛW{2÷ÃÈÖ[xæ‹ò ÿ‹JŽÇ0Ö`Vþ9f5¹a% 3Qø‹¤·ðœ4¥ƒÔwïþ|~C2Ûmn÷G.ÙñÚ}á—‚Åö?ï´d»ýaK!þßF¬8’¬Š‘%ƒŒÕ‚X9°,ÄbŒ)²e©Lg‘˜Úú~ÂÿA€˜n)l/xm‚Ã÷^Šƒ# #Ñãs¿ìà›°WvîûÏý×)êÞGCšOC&|èýIH» Å» Æåª¸ó’)å8ôIÿ¾áé1`U]oszˆlˆApª¦EÊyËè_‰Â)7bÌÍâ¦CløÀRË6³wÏSà,mlûó&> Ž æ¿–‡ýΣx@ñ¨ò@¯!5Àåpü$Ø  ª xdy®f‚ÿ¢˜Œ÷7Bø~RÈgØúÌK‚ßyêY$¯+éMàÿ¥²Š×„ÈÓ¿"¬û„ƒ kðàŸ1)”n$â BDк°þAÕ+%OŠ ‡u.%Ÿò ù;¶Å”ÜÔ¡¿ì34>“¶f52_Cå¢Ê—,»ˆ°Õ//ûH~M*•W“$ûͯ—1aôÕÊ®<¬VO×ãÎÈ–c·HÇ † ©šÈAŒa`ÈdìQ:Yéd‘¦ÉzÐaG}â½£~$•º£lC$ͤ·ª¬‰ê ‘#ðóô†—$k¿ß•ç±\O Œ€oèU;×fbE iÆ;äéØÕס¡[Ò ý ÅÆsLäWÆ“úðϨ¨ý!ò¡6h^psM™‹Ænµ<Š•D¥†ë^üi@ nÁæ@×KƒÁ‚ërù_YVk=,eÜ¥ÒçH0ŽxÉxò#÷±¡l†ˆÇp—i;’Qµß7ðË*‚nú½xÏ0çÂ4ÊfxFhÊ2®ç ‰OLEuuµp½JÙC`,ŽáÝt¤¾Ÿó`©B¤È?10 RDWÌ®·¶ömÝœI¡¨á6à)Fdû{·pk,=—=´îHÎåûòú»S¤?ÛZRtl‡p–~.ÆÄ:uj!P{ªùó&£ò‹s‹££ÛòÏ8%ÈÇÍ!þÆ2ŒÚÙü#Ñ­°}Vk º ¥à¬ÈÞûˆgòb²’;ÑÌ„o¾µÐêÜÉVQ.âÄËëkœ6æíìŸ`Ç!:‘V}Öc}–Vz׸š¸Í#{ÉÚJ‰örRl*þ–Pcœ¤€ÁQ¬®pLú3[ºkÁÊccç£Ù,Ì}¶4´»ü…§½³G«™A•UdvYø æˆ }Ž·á&‰b±LyÆK}ìQ ý5’ñý·0üwòB¼ü1–˜†¼‡p£{~Öm|î4›—¹í”®­ÁPl…ryÝóö‘I‚‡m[H$°òY´­Ì•û©F=k ë0°£Ýý œ®·×ð·,4wg»ÉîØ#bH|;oµ ~M5Zu—(RÜgøè†áÜŒurlÇi‹غÞ‘êY†='+„Ľo­!ÌJP>Uäѧ˜³Ø†ÿCSú˜ÔzÚÍOýK¸<ádÁ¨œÄ¤­ýü䦠í†X’üŠm„Xtr8ávÛ³ñ!­égÊàËðH#Zä‚{Pf.V í_Q B4¾EŽ´Ü5èk±ø˜É“Š]}ŽP*ÅÝ5˜÷`2Qâ0#Çùüx“þ’þmrúG´þåÏȺÑíw´…¸vƒÍG"ZÁ Í܆Au%ˆ !ÌÇöY(s;EÀçß& ”¦Tñ® à¬/i#«·Ã,švâJ4\<Ç”ØÝ¡-¡&Ôx.ýÃ<ÑR#4­wQó`΢¸ÅÅ÷•©Z‘tïøÐpe‚{EöY=(NÕàôÉïÐÀ ^ð{ÊÝýÆ•Jw§gÞpúíŒáeOC=ÊÀ»@|¦ ãÍ**¾g›'Ng¸Õjk‚ ú ¿‹É †9\VX=¢7z&&ä ipØØÇXê¾m¡Ýô¿!™Ÿeš_N6å:e µ®”wkKN™Û"³ú ¿ýYF³í  \—©ü^_¾À®ƒW;hE†@TCUì1UÞ]×÷깺ùÖTåê#^‘w <ç•ÓµP›¤¼Æ,ùRÌ)§f1 „…´3Ø·b; ûŠvð‡?¬{a ûÌvÕ§0< ¼£´¯iÉÒå„Q´üŒ¸\7=gVÇåó¶/1‘±I}ƒ€=Íü³z­ÙšD”œü‰®†áÏ# µ»6 áce(ûá§Ü½à ÖÓ)>$®úu€íÄ£ÊxL¬<±V\NoA lô3qŸ’¼ð’t¢‡}Âà„#®§ûY¼¿õ>aKϸ¸’ÒÑq;Øû-U×ù§÷†ËBÌLø$å;L:'˜ž… Kl³c<>IarãªklBô½,OT–½tzªq¼ë=9ÒR$þ[ É£œÏ£µ+rýoK·´€Ë—ók°p—ù‘dˆÿ>ˆÍ ’Ö±q¨âLO¶¶p«8‹T$»P¼°èøÁ6}ØZ|ÀµÔtòÃØ9%Ub‡’w_TÂ/Ε^ne,–3šÈ•ØA'ŸÀưanJ6Nï•ÆnY™¯u©¼fR¢Ôªª(Pp)„(ÈèŒS“%¼)$E'Û¾-À‚»me=²ÁžXßYPÃ\ÅamM¿…ˇ+K:·4tû̸×{[˜Ú/=˙҂o¯åÝ,¿|’TORD¬|Ñû~»þÞ´ê”-’ÖÑC7thÞ·õ9ªËÇ4aŸ;—`‹˜®Bi‚l–®‡`ˆá¬H·Ì]†eÞÉúÞ¾Â,;çÎ\/ÌwŽ`Ö=X hòÔ ¦á$qWríû¯u]ˆÂ¦0D»)\{c¸> ·e êDzh {‚lXîtôG=½À–¹j¦ÿŠg†âÛXuýÇ-ÑJ ÍM,>Þ~\<ËÁnpBé[‹”`3ùƒyF‘\ï턲IÔX_)‘QQ LŽÏgjë*¼×_ÛŸÜ!¯GÁªåˆKi0B¹ÈïéK“eݦ†ÒÉqO·ýB ±NÐÑíP¢Fúˆ— çy[;°ˆ<õb¸ÏÝ˪~iñ ÇÎúŒgŸpEg¥èo²¶¨aSòùÏYq1ãÊR«”Ál§™ëδ—MbøXÍ9ÐDYÚ› Ñy‰€§áŸ7§ x¥_rO ?™T¶-K±Îžu‡’­Äç1ÿQNU”àÏþr^£ûZº¶æ ˆ ùˆQºÎúA#V&µbw„óØŠP†÷`™Ð6¿å ßápgâæÉŒøw±Ámoá)Ì× »¨`È{†åžeÔfÞÒ}ãUWC½¾£=É»žèʶ¤Q±«ÙAmº[N3ÑÀc­á½„a.?iyNAžc²³7ÄVW“võ`†ó”þóÃE›60”Ù¥ˆ;»^×ó x‰‹TJ’X²‚bœ6¢€ç[ÄNç–…€9±D™©»Õ ›î¯«&’Ð{ZÅë,= "û|dKÏ‘ŠŸ´î Qç9ä+Y–{ùˆˆíñ‡­‹°ëƒ«Œ^¤iM´¬“ôM¸CÜ–ñ+¨áVtŠXaøcä~a¸²ÂWÀí;à¸l &Ô.¸òŸ1XZŽzÿ9JL÷Ô¦U¼“|FO/רÁ*æ;VÓƒpÍ,5ŠOÝ@ý”‡zzŽñ‚Á¡ùNhâ pS³½¥ÈUÈãahƺUFÖ@ОÜ:0Žz"†"sRí«]·uÌU ¬±Ä`´—V<6ÜEâ5 xbfã#<6‚2R˶EjK‡úˆ’3.—)àôò†Žã¾áÂ9¤ÈŽdíp_Q†È)qDІkžõ=“ÝÄÙž,˜‘TŒÐÔ†Zæåb§Ú!ÄZœdxʪZFåÿŠ“úØŒeÒkÝWñ©äõ´$Fu\§!œoWÔàis’ ž5¨´·‘mlÁ2™ÿNßBþg5]1Eà jÜb¡ZYÈØ0m§†zùÐû(üÖ’¹~šÅ3E ú´ÎaîD)_“ÛHÉÛ\ÕB.Ç+ Âä}Uzc!úºQ ¦X°¹>W¦ ÛÍéׯa×/ ˆùÑ÷լױ‡¢þßå{¼H'rTDÔùÔD†ºÍþ¦V(+Ç(b¢9ßÕšÀ¥™¼+kþ¯]¬>íì¥Ùa‹o 6"ï*¯5 WU@™ {Vv7iÊ÷͸ö³;ÕkKÕ¨>¯?;ÇlS'·ÙŒ¦¯pW\;8K€Í¤¶ i„¦MT9ûE“¿6´G*9~ž·ºBCäÇ+©_ûÏ_xJ®Y³ˆ\«&éVQ‹§,ÚÉÖG„ ÙਠŸ$à'网=&ÚºùÉWbd`ó5m}AX]ÍßW¢¼¿%Úà°ë›- ¡óK0ÇÊ3O*6¸µI†‘å¦v=uMf‘YþÿXL•E¢_ ÜÞèÂsÀ”j'.D~ó hqG–Ë:|*Íè#t´¢6ÐBœ”S/Ôí=ªíq»±‹Ï *à¿4£‡Rê3»E9Ú8¦-œËŠUÏ’cL´„ߨ*Åge¤ÁRöåÛÊOŒ¡L]ígÙ<ãá1èø’ZFXÂG[!QŸM#»›ùÌ.Z Ê2²QtI9º»ãEÔQ5xIÙø|”¢_v~}{eúŽËUËæ !®>+\è64H7¹UYÄ‘Y­¹zé÷ôÞ¢üY¤8e¨pž¹›Ð Lò¦yYÆè NnóÚ¾ó³4-rsŽUV‹ñ¿ 2I¼ìªq oX‹‰Â÷›a>[U†ÁÏ;(Ǽó ‡é©¡®*C¥Rï} o4B¢à—[‘ÑöFaY%§ÈÛÅýRJ.äÓÆ,*ÕZzƒÉ(U_u²Ï>d-æÎ <öŽ’¼-Éžól³ï\¸ó4Åûvø˜c.F@G}ÎʴЛZj/ 7ôDCƒØ~Oƒ²g¯Ðp÷kÙ+¨Æ%¸ÂýßdVót.Çõ¨Z·&' ¤âÔ-jÝåã¯MiF­ÿ;ï€eì¹þße«Vø5‰ñêÿ*5ÆAùÚÚÍÔûÓ%¨TðÆÐ…²žvI# ½^òJdþ>_ pú¢éhk‹]Zž×|}Pà~»D”ç¢å]Ò tøâ}Õ¢#ø›ƒM€3´¥õ<ÉBØ¿lÛuÌÓ•§1×q ×lÛIM›…æ…9<(ëÙñh„¶CŽò‰µ ãë&™mÔ}0Ê®–?1´¢³ÀT1bÊ:ýQ·q}Ç —ì@ãøVUŒ¶h¢ãuŠrÖâÄhï†ç8° ]/R‹ìMêògËÑ g‡©_Gœ›v±Ü]ðìß`$?ø©„/Ã}oüã_ƒèj#x÷“ðÆÞ"øÇè$m)§ä#°’ #‰±Êúp“h–h“ýÇdº}Ç,~ Ê‚ugytBÌù¿PÛX/ÏU€SÇ¥úÑ9(;0W(ª­®äª¬îã 9³ù*Á§ˉ}ØËÞå_L-0 3ó”¤cÒñlùϤ22Éç:ÿ¤ºm=CY(›äsáCêñFó@PÆLÝSÌéÀa7 ‰8ªä×DO_´FÀ Pí±-Çó¡N—ª…*^¹Ähe<7á11w8þ×öÀös_±œ`ÈŽŒ˜ã¢ÛéTÈgú7#†eUði€\ž£B˪ i€Ÿ+Ãá’ ·ÊÙцWÉ”FÏ„øÇhÒeºÊ}B+P_>žZqU [Eçì×+÷Z3ŸÄQî ƒÝžZÝ ‚ösP9¶9î=Û’Ðe–`Ý éXÑ ?_?k;39Øtò„ĵøŒØCá)MMà\ô@æ@퇄áŒ5jG*'r©g²øÈ¾‰#„›¼•M)ž®ÿ&™!ÔZHÖWö‰WHÜœ<Å·óA©¹%°G~¨S„]_É4ZÖ¨c©¸ÞAoŸ ñs¶¹´ú¼<˜*Y(¨,Šb¡äÃ@ù9«ªû›þ¶5x# £Ì!îk'ˆ-ú‚tRÊæIOš$öXy{I»Ï‡g–ý³P™Çå2íúN¡1¼Éexî°"™‰+4Bp~ÔW/[œHï@º.«¡^ðþ×ÝB>çzžŠ©¾`+_”¹¹R¾x çT/`ûQï„Ü¢L\Ç*–Ðû¡”×– ˆê}žü¨[¿ £cx½æýæiMƒldTÒÀˆ|D:tWKá2™QqŠ˜ UëÂ/0e¯ö1^ßG9ª;ö4Z¥‘—T¦I DÒ V„£ØÎüq0&D™ñ¢õœH1Hl§"ïÉ](åeåiÝ7ÈÂ>l\º¢Ù·ÎÕH †“ûjÇ~dYÉbWC:p`שIZá',cñísœaõb@"Û/&RŸö¡·dØx¬´ãc˜ŠÆ è¸h5 Ü5ÿÈ^Ô••ô\(yf³#’¼æt$ 5 AŽu\Va,ðz1„7]…U{µê²" ±u³Ò׸'@Ø~Ì=iâþmúõ»7\èNË•?(@äu-Õ¬ëüÇ+¥ðZ‘Ê$L1ùYçDwÒ/Ī•ìi9çê-H2¥ãeÔ±ù¾ï<rT¦^þ`­ üe¦²ñ‘»`^‚Š> ¦b@%‘¿ŽšŠß5ée,¬8¬…¥“ºÞ»ÐË©pÓ¡-Ñ»Çá±1KvÿA~U—&­;S«¢+2æöÖÔÚ+‰ÀËQHð3£å©b@C€#AC΃¡¢_îðh6Þ½Œï:¿Èp>…Þ¨½•’´P•§xt9ûqˆt™Ëäuo@9Mð<‚ a¤–pwoøÀ‹/4•aiäÕ7á=[·A•TŠ&ø¶Ý†~Ð2Ø¡•øh^øL†µÑ?bfÃzäÕ£FF±A>}‹7€ ÿÔ…ëÁÙf»”üø Tö*~…ÒT÷~Ÿ‚?M­(^!iY ÀyÇר8_íÔG|ìÔD>Ë98k„FN Ž_Ú[ò `³Æÿ‡k(±×žÎøàÔ( ©è\J7d~£Ý$S¨(ÿ¤çÝ N|™]÷÷Êß[Vo€KÛH"¯òÆ´È~ÖÏQóò‘“E%×ÿ»ŸÍAˆÏ‚•VÀ eª¹¿¤ w—ç>$`è÷Tý!W·‹SVpgè_Xï4îµ73oø.ó³±?«›rãnM¶MWp,/9.vqè2ØÀ«³öå¾-Jð®¿é4©ã¦ ²Ú#Æ~xÇᨪllÅW8Õ·3»5cwÆG‰Æ+p‘òík͈åâ%› Ú|·¼>¢j8)¡µþJ¡þû:x6Ø«Ñ}^æ{ÖØDÞøŒ¦m?§á-‚ÊÂÝ )íkäšiº"N`'>¢ôëν÷,¹,qè¡ÜÏ>“ÑjyN$²ºnK›Ь¨Ã¹Ü÷‹%¢ò™&øL;$ ž8ªO5‰ú¢ܱÃù…—-°îˆ"ã‚Ü„z†–=>£D¶<¹¶5Ž¡mŽnþTCù°‡6²JÍ$"ØŸPA)w¦ÎLïæSçžó uÆ`òhhêwÎ,„¥?rXñ]*¢@xã= }°ßPTäX胮ÉßXoŠuôRIy·W¨ÚXoš¯&Í3‰£ãQýj½ùˆÕq=&¡ÿœ\QƒWùÊé´K4 l>û w2 á—ìOO±Á QI| ¦9BZ…,AØ‹‰2~qaÿ%ði°¤B-¢+’¸8z=ÚT ”ÄÌDãÉëÑî•ÈÈÀ®¼ý‹ÌV|q.j÷rNÖÁK{¬çkè n¹qíð»#½® ´¦töLàM’êäÏb¬ÕsÝÂ¥M²1 25ÑŽÝ1˜ÎÁm£2J¡‘ËÊ”À‹ §î˜ñyƒ.y ÆÖmÏ’ &_\“Ÿ9\Á gŠw×Ã"`ŽQµG÷Ñ1vb}{³W˜]j]ÄÇ ¹™ogƒþŒ°RŠIÇ okäJ‚³mF^Až¯%±"Ž_¡²JxeüåÍú†vò))qNI99ÉÕf´/jPBsy¹MFŠ ê¤Àf|SÕœÛFî׋юêÚQ8'CÉÃH0µ¡3†ÕÝöáÊêœúÍ3ÎÇHA–˜P‡Ãâ…º@íåRº4f]Ï¥½_iÀþÙ,G4©ƒVÐðܽ®Åj]·åÊœ‘ý…ˆÜø,ËÍŸUülž³ý¡ÃþlËôË"õõÀ­Æq×ù¦ ñ0×íUIõéá/N ñÃ4©&ÚÈnç!|p¶WUŸûËû$Ïs„#r=ÞÂU¥C¢³—ÎÔêë÷ëæÏ9ðì½ÀýMJö<‹îÜ× –VÅaRÎg'H°ÐNÈ'c^]v±zMLF舘hEün¶WGÍã A.4"Þ­;*R*É2¤.ð¢ù ê/,Üx?!üy6àø!Ùö?rÿTBf'é‹#†Wö]yl}í‹0ÒŒ††áK¢œ»ûhn ƒ NÄÓn¢€ãRi'8ØSfÓÒLøeD’¾ç‰ãñ^‘«$’uðy‘vp÷f[ìÕjQJ ±ŒÜE*™Ê‚댣ŠSºÔÍ`û´È–UDÌvh‚$…ýÒ.òH Kür€-ìyL°¹ÖÎꣽg”•IádyEÒâ,‘÷&ˆï8+$zÔI½ý@ÔÆÒu– øÿ=ŽçÑz£³ðË×-üM'P’lÚêQÓQ´tm7.Œð„ü ‡Æ‚DúŽD®×t+Üþ5w*_í„t@$åĨ®‰[^â6•‘ÄùvÇM¨œ–ñºSB½²8 ¤«Eù7ösð%ÅžèÇv¢ø ¥¥[.Ž5 ¦ÑdWëüiñOFÅ‘ù.‚‹0¯®$0úŸ(-¼áËw:Fñ•¥„ "âópWÍOë>—ÉdP™Î%ù“ç‡g›p1¢tL›ŸvrPó_sÉøaEPS¡bY VHIJ 9iÀWÍ9T#1Œ&ØŸô%—Pþ‰ÒË>\ÁYУ×[('y¡Xø—KÖÉê0[1¯™=âu÷qÆ! ¼õ!‘àBñæê'¯ñK4RbPAp–`È‚ËÂýoéú®0æûºÞ…2äî.œ·!´¤—Íܦéé÷õòùTµ??ZäÖµd¢ö¼I ¥dj€Ýï1Æ÷Âq Á}âqáé¢d‚1ˆA2‹T´¬‹×†Ð„ ÒÏ®z3ð´ƒç<Ô¥“¡ âï6Q†íáäü‡àêÑ-=nÿËÆðZ6®Ù#…lúM¦:‚eKžWª0OœÃ~¼¿ð[ÚŒ?–ÉpÄs¢Š0‚hÑfÆÑ âv­«ŒQΩ©Õÿòƒè~Sè^CDó!e«"°% îL€ÖТ(UΪ>õY4 P+ ÕêÆŽ S6Ó-™³hÇW®æ¥`ª¤Y%0þ eY· $;Ûaj{3¤ÕP 3q=†¸¡-¹”ÐwÓv¥m鹦×{Fþ‰,ö-Xœ΂âjp1%E–JÝcã=T]Ïò·Niì–˜ùv¦û´s´Hä)ª“¡r¼ ½^Áõ¯ˆØõ Ót ÿŸF;¼3B?Iðý O§ÿ¥ž3¯u1D3° =i”3ü×Lì*½pOM#´¶?²ï´Jq>йs8C j ¦‚¹˜y7¼.{9ýodô÷—’-Ù¢óµâ¯t½ì[< äu¯Mù4lþ¨ã/Ûê×Åüû|¢ÑجþD<ÉÊßáQ™¾¤‘œGM!bÃÖ?y7ê´Å°Ùa’ìKþ_üž9Mg:A›øÄ4˜0k­q²ä:ˆÐìƒÈm}ö?.~ºG@¬g7³šv”Te'ÚS$¦L_¾ù’€_YØ¢ÁaEô ¥éø¿¹ß;¿Ô‡ÅaÝÕFŸ€ÜäjxÁ=³eE¾«'nxØ£¬3çžÚpÛì §L<ZŸ“2ù#Èô¢ä[OÀ{ÒPæ3³k‡þÐî¯&èš$‚Ôïðn¯hov JØÅ.þûw×/¢|Ø$Œç±¥y‰ü…îQÒ^ ª-rÇ ´Ž´ñøø)dR¨6Ç=ªâ֢ݷêó¬ãý]“íÞðxŸSd€¹àk#r`b»4µ@ˆ¡ï`ïËêМEšñ—£òMg:µ5I°ÞBŒ;—%üÜqå¢Jö"¡^×1ÊAfìF:Çdyþ´ÙrþD\@ª¯¬‡œMƒüh…’, "IT¥g1ÚS³8^#`«Ç›níœ:éŸkP-G[Ö2z:<‘Þ? ï7¦¬û"Ű7ðÓ¶,Ä lY¤àsÑ Ãaab÷Í=ìŠ_UÈ:)aŒ›N"¾÷Õr¿÷nA#TÐäùîH ¶‹*Z0îæ>Öñ˜x„*LeTBW¸yô^˜û„{<ÝDæXªãF9°(< ÀŽÊA.FZšLè7[{]O»ÚGÓvÀ$5°3-f‹7"‰p“C6öåÿœ²ñ¿¶„G0Â]væ;Z³9gÓ†y•SïÕ"jh_GðSÁkì¾ð.P l2¾ùíïÎú¥Žz!/V1 ™MP¿ÏÔÀ‚LÃ>ö™/N‚÷ÝH>ßµ9ŠE("BõÌ:ç¤Fݯժà m™Åµ·ßïy@»ú6ŽÖ>#ƒ/VO<•¿ò(H©LæfºSEŠd L?¼v."ÛMÇU"ñ§ú/%+ ñÓrçÑJ|!?e@ñ¿•êö5üØž¼§"±ªå.M¯EUéõˆ—®ŠŽÐi}ÈòߤI ­¨ÃäîkoxšŠ@ÊáäÓÔVWÒob¹4»©ãžB!5v"àÒÞܓȞÒó]FËå6ñwúú% ðüÅ]œÍážDÛôÎMOÿÃÙEEÂFbºÓ¿&xž¤~ê—F«@ü‰tÛ_zc²¹q"E¢ãm'·5"NY{°lyöïüšœ±¸LI¼ÆKM7%´Â‡RyXz³í"0ŠB_¨JYæke«ñí`€xsbáYÖfqÜGháòfÁ‹¬¢T&i<XÓŸºK–Ö‹þ ß¡h°êËþ®ÍsÂKºÏúìùpS·ife³yë÷GáÁMà»ð©÷2G ð~äÎéÏFËè|;=™~ Džõ‹Ï®óYÏéyÛPQˆéÞÅ´¨;ðŒèÙaaïD*e¤KÞYÇöǬá¼Å#£ÜŽ`ŸC({â`}ˆ²®”!>ïîEáù=fR( ’3¾ã¹ç&>u õÇgÊÀAÔúå{q²uùk?fø> ösA­— úàV†Îß(¥0&1¥ ¨4Ò¯mÊ|.Eß¡ÖTe”…hÆ0±6¶‘¨èaqc¥|r\¶yìiÙôÃ{¢Ôïw‚C¦ŒÚµñ“»&»¦˜iïcÈh VÑGäŒY¦´P`ßN¾÷Cò÷‡M²Õ€Èet™ûÊX€Œ1 3QÌ]Úå´ô^ýª1\I»»¨-œ&®†Œ ÕáÎqy‘hRÌ4ïb©Ì©IWñ½ ç&­°¡i¢ÇJ;¾[“žÙKmñÑYäoIXc61«üuÓUvOdy‹æº“ý:8Xz96 ƒo¯P"¥/:æd@4¼=YjÈÞŒIÑ@æG›2©‡À{÷ßó=šÓA%$ÁKÜ“s!Œã§{¬[¯ñ$ÍM«Æ‰õ®”˜¯51ˆq²‚²(Xð¡œ+8”C®? KÅœ£Ïòp -Ðüðj9ð3ÞèY¦¾eÛÍÕ&eƃøÏŽí×§¶t1è§Bwã÷TäÒÖµDûJGµ öþVbüQr¤U”étʽ¥wÅŠ­Šíϯ!Q­ڈM*àÀ|¯hÉ6Õ …`ã…< çº8GL.µ[¶&k cÆ•9¬,ò®s =¡®Éb@=âýÏD|ÍRÖÁ©sD¸»±§"¤ y¸¥¾Ž¾YòH^·P~¶F;ÀÏJªpsýùŸ!¯‰0£|ÄìªÄžãü´Mó|WMRÖpæã­x65tµð8˘.½k FŒM™sƒªì^¸ßËÚŒ7µìž9¾Î7ò¢¸› ³ë¬ìüx€Ë†#Ÿ¢¶9ÿ+rò…vóáØ|ï¾ûÿ ý€ýÞl£`Rk³% Â\×&i:òKT ìù}"Ô¬¾j‚.i³TÀž7A<æ€Z?’ìÜeoy/x[fò 2v÷J@O‡Jë)©tÊA%µ¯—†÷ŸS~Úi0åÂUïe7 9‡êO¸¦®øIžâ™êb])ñÝy# À-ìã±"ž@û&YVrÛ-¾Y¦ï©»¬•×WR@ê›L*·^–¾wÚáêu7•$|щÄG-pÇ-Ð Í:»R[7²ýF})zz„7ä„)O”2åÙ·Æãë!æXpŒûû¦wísÓAð#NÁ U8d‡ñ d37¬—âAfÝSNh÷Å) >•ó ìÒÏ[›YÿäÚG÷p ÜhXÝOaü2ŒNô#¼¯({ãÑ«&ÛeãM¢,ö=eÒšuÙ^™XYOå¶ü(qÅ’jè¨ÓÁ÷½b4Þ]L´õN.^º“ç”sug U܈”Z¶ñ!Wbî¿å:8Dß9iXlE¼g’›gÝcò>ýZÌ÷04ÂÛwzù˜å¦ œžÎHˆMù[^"'Ýî_Tõ\H«¦ê•DTÛtÕ•ÓÈ´ÆÉlÑÇÓêHX[0Ûoƒy¨\ó8L@,P [Á e3! ¼L–î0 ð d„kîÀ‡u)f„à]}8 þÆi4ùà:S -n³†ÝT͘úN°rÇþEÝAIh’ŒA*8”-Ó¢â?3k~¨<•e­÷'hð›¾$³{¿Hލ•)^h’‰Ê¾áõ|†Ÿ›ê+œºaø¯•ùí8&ç÷âÁó#áâÐõûÌ,ôu<ÕD¸EK 9‡.Økò¸yYð+ÅÅ] óTQíP¹û’$êj6YOÞ$! A!W|ÈÖ ãŒTy­œ=MÌ.#}£ÖX“CŽÇŽܱÕoÜŽJïÛÜ­ÁÙsKÒŸ0ÑÌá*8Ü‹dÒk`Á´t°q­Ø;©ZmŸ¯gÐ5Fêé0’ÑæH8Z¥xPê·1+ôÌþèS^e¾Þ—ßÅ;‹ªÔ²lØž}fõºKŸ-_e Ú¤Ö%Z™£Ûºÿ³L— 4”ûök–fÓûm€)@ÍÇØUß•©J7ýÜ`Z_i47¸yfé ¤"¤:ÜUØøÁ‡ÏÖr¿8Œ:9x¥¡ ¡åŒ¾P(6êHH•Yƒ±FKÇñh}âBpù”ÔeQ‘`h\#VI茛ààø;}¿zG³ê7}þÀ<«ØŒwê¶AÍp™c wýãgñöpt‚ãþcøáÜü±K1O(š ƒ*5Œm n”¢R5‹$]ÿg:Ñï}ø—…ž,kN|Í5j—Ë–SÀ‹±U0 —9}`qYh»”¯"D ^m³šWß¶^µs°ùJHåÓlnÿ%R¶æ¤X—ª5Ÿ–çŽàtî€  Ü´~ˆ3xØ6Âz˜¼;œð/BRÂ’)Bù9ÿãééâÄMTÖ¥0Á‘þ[úÅ«„¤¾šò]@AÇßݹ¼ù®˜ìPúqB£Ö’ü- œ`Ê‘3=\u(Ž+GüHxÉÃ?Ü®9ðŸnÝdãdT)DP‡††§«Å{½”‹hñY54æÍSus¶¨[T&Zol³4¿OÛT:UÈyéØ<;òcÒ'¯Ò<üù‹Þ&¼«°¹™róuvdEAªø—-äMyXaôXm7X Ú=$ÈTuƒBß$ÄýÈw¡sõè-ðu8¤CA^…ŽäèùΊÈ\BÀï OµÀÞOýSæì×àä€N?ù™—AÄ`×YŒ$cÅ×g©ü§,Î G¦nùÐ9Vf`cùŒjØó·õT#%ÿR¹Ó¥äfq­¸À;ÀµoA®py[aì¬Øù÷ÿs› &¼ýËiì}óƒáꮲ +˜ÞNà¥`\ÜÛÝ—&Þ»ÎbÕ 7|¼ÉT>J™È@UË~Wa—;2X[/ßÝw§±a ð¶ùÓüÅ?ò³‹ Ä„¿Œ DŸµ•mdUÄXPºOìJáF,òbûX e~.o ã±+~ëî]ÍümØ®L`šÂ})O«ŸÉ1±D¿ôD‡@°-ZòU!Ö\»Ô¹¶b&7Ù6þ¯]'•³MÓòQG´X¹0£+ö€G êݦÊTþ´Ð?ÕÆ÷‹Ý .MÚ05ñÇ£ «¥º`ˆKØ…ØwÞrHkÓ Ù’z6SU^¿²gC‰Áâ(%¾‚Œx µ›¢3‰tƒ‹ìMM¾èLçþ?±ë’n­m­Ã[».MkV>Ó¿Œ²¸µÍvŒÍLÿÙ‚2žÛ„ò×´9¯¤Êk"â•cÂÙÙžš‘&’ø=¶;ÁÐ+ rä0un,Þeg##=ü—bJfíuÌÿ¬Òj½P×5»ŸqÊ–Mq„%r Å¥ Œ þÊ]9=õ^ Á3ç øßt' í ô¤˜6©­­ -Û˜;®¡¥|›§ª]uH§>G‘*o€=ÊߞȥI¹ºTÖ´¡Á9ŽŸ–÷Va4±ùLDŠ3/rCìX:þ§†|>ücÛkýLöCtë¹Ê ó=3YßyqÖâÇ46¿±DÓeÚSïûÉF¯_²žè™×ÎSñ5PÃvYàBÉú!°vEk'ìup1Ÿ8)Nw¶¶âjzÚ[¦…©i‚q•g§Å¢P—ön¦¥â̪çÒFÒ¾”üLe]-w R†lºÎeŸˆ¸ghŠ}RSh-Ê—<’¼ýT]r†(û=yú «Mö³%„±"¹pøØÕ¹ˆ8=‹q.×¥û@ˆ„ͯ|Y¨­||OÓj#&ÙîuWÑî‡öþóåÑSÕ?Ä%w£Ï¶ì2(\ƒ5EMÃoà¤ÿOåÆÌwK)LGy?X¯ÓH·Q¸“e¥¬ˆkÌGK½·“¾á§âKd&£I?Vöú·SÆü‘Ïv-^X7¶øò^¿˜|HÇ=ؼڤ^’ýsm<ÝŠ7ÿÂ}Ü) =¾7<\M¿¾þp„N– -µ²&ílK|L2Z6§i[rð(æí$f[0_½Ä‹$ÿc^Ç,k¨ DR+[ó&(˜GoÛG(höm€iBUœñfòX'ÑàÛÑO”öºŒÊUðÅOaÍáÇIè{É>Û74‰§›IÂlâd"BüÒr¦o…" ]Õ{ê2É!ì^©Õ'€_d¿jÒ¸Ô3:Vì„=%¡ìN×nçº[ãg~¤(½«#¹¬˜5u§$•®¼g>úZ0°9€úœ¸¤•œ`m?¸Ò¼¡Äw-;%ýŽúñÍgÆX#‹Š~Nƒ²N‘Ôàèé]Te™Wd¬õ ê¥p×Û5)"­jR Í1>d4óhgܲ¹Þ8Ó4zc™8%ÝÔ$å"þjÞà?¶7V0Û]z™Z5Ñ;Þsw  ¡ã÷ÁáˆaQpãù™9hÕöÎu‡œÄ™/Œœ”ád§‘=W¤Ýh )*¼•_ÕÊG£4àWE%[Ú ‚™ÇOšÃLJ œÏn¶Wu‹Žµ×ÎÙä.DÙ=8¿í"b‰ó¾ŒM<¥fu|† ÝWí«ºÎ*„Ы4~=ÚAò\…öþ7ÿ°Ä]/_]7›Ÿ/¸thÓBÛ¨'ò<=åV·mö–-€½(*bÌm¼GPŸÒû›†87õyÈȸI²?Rq |èé¹Ä¼©åMB9“ÝgŸf¦û,ójÌáå„  íeâëg …ö5é¨t"ˆšZ†¢·°â+†=á•Í}èKwÒSöF;ÛhXyU•pnźn {Ü{¹ÊÞä²Y l^þlø Κéé$2Ó¢)­™æÿ d÷·PçÁ/U(¹Auæ âß(Çí>ã!£’ú‚»Rps´;ºŠYÊX¨ðïz‚¡G˜â¤äˆØY1¥®M³æùiI![»t(í¦ÉÔ­Ý…n ’§úÎb<ÊQáeM±ª¬Ïϼ€g€8¾œŠy–ŒE¯^éuA<"Šo¢’‹ˆ-ûÛ–¢øã3’9¯¦R»^¯°˜Á;¿#4hçÅqüpF½Ç=‡>Œþ^3ü]Wò¸ÂÄùCN¥Õhö#~Ž^JuƒÆOy¬ê¥Í›FJý…ÊœqW¹Š„6`«"qÀ¡âNÔÂ90;:)þ¬Íüb'=„5zÇKÉFí}PysR™Fü¼è=÷»DZmé‹ï_Ô\Dˆv­›`%ƒëHJs!½ŸãqÀ­+ŨìWZ-²jŸCóèž­m#:J±¶«”ë9=‹úG˜C:ƒÌ­Á õÌX¾Õ ÄÌ ì¦Y¶¤o†:èóyšGzNðžT6¸!ñ«ëß~Œ¾ôGXâ 8E¨G-—œ9½œÀ¼ì°ýdlcÐÖÍT®~vÌ13EY? kÁ­ßlOLÔ˜*×rxà.Èf¿ ”ÈT ¥ëÏ ‡tG’ÏbKú²A‚½ÞJÔ© ì÷¶±SÆNyžÓe*7 ; 3¾Ô(îqÌLÀИú=L#s¬3ݾž„ 1¡?¢3³¸t£¼ÁJýÁš8&®;,òWéøh ¹ c—~ò³cpAXW×{bŒüIy®¥u¥zÕÄX4‰´Ü0e¿/#ÙG†W“S§æ’Oâ9yÉtž/å?ÏN€¦R›øc˱HkÝ¡J¢£¬âÏìrèzššÉqðœ: î–kYd€Ò :nacÔ„sSø<ž0“ »6lÛr-ÛO7e8 _+==¶løí>%Üd¡“Åv5ìž³ea”å|®{îùãó?vìQœó´C? Ž¿°Þ¿r@t µE汯 vqé)p¦kI‚n‚cè©4ÿ»qa×~3µIŸKº*¢ví¼]†Tç…t¢3'›»øëøàFÖÆ€ÚfËŽ¥ê9?§Ã7ÃíÆFE ê=—€[ÿ›Ì ‚€…©îb<¬#ß=ßNßÒ|Ú£­U –¶·#¿)„Sö=9g~G9ÊjÒýšxA~ ¾¢cH瑉¸~¶}XüJÒÇ´«Ãx :fÀ¿ÆW"{ v»Ÿuzµ8ެYïà ‡ot¹}¡žŸqb,5j‰@NÂA߉Y`sj®*çLÑÂ0?ó¦[h€˜xðâßF ¾¥1ØÝ(ª&@'Ÿž¿/r"Â]ŽÝŘ:tahñº©ú™ÙÊ´žŒmì{±$]ýöISL˜ÁšÊi˜ ,4É»xÊ×BCWãƒNÇÊ-°T3­á^̾Z‡9îQÕ¤7oVX  V_ˆË‹Âr±§9™ú@sJl¡õCJ|öàqº\øÃ§=Fʾ?ÛYª¬“.FKîJÀ°8íøL œ;0Ûq1OE‘Ž’A ¥ÅÖ§xLN¸®à¦ô¼7H„æÄD $$bž::%^7-ùºãß1ó»[3Ô$1?9‡Ï,²0zÖºÏO@•e–q,H=A &3á¶!ÊSŒ†Û$ Oíþðˆõ_*ó7‹ì[¢õBùTÂ:óNäB§¬äèÅoÁN“åËã⊗™f¶—“S* }·²ƒxãÒ©¦œŒÍþqÔqÎV—’‘í¯ÚÝyü1l×9c·-ÚÚÁ ²_á|ö÷ÃÚé;Tn)fo‰³´ÕÙqUÈT¬:ªY Q“†+bœ…ë¸J·Ž~s"~ªHýHDð’Fò NðÜjL8¼¶sç¯k¦>€Ï¼æºp|l2¤/@D[Àn*¤èdÕnnëbÌE«V&ÿ˜“«â)6F-¶ÓÄFTxh»ÙŸJ‚= îKtŒ/öxœ{êJÕB9StáF?‘ ­gÓG¦î0Ž|+ìõ¬Èü£_I³‰V(SáaÊ!eÕ š“×®œ #{–o8¥ßB¢¸R6¤!ï÷ã`­ÏHª8 Û”g:¬Åê 0Ú¤9DbßáÚI¡{…! Î.— Gík=Äëõ5#{ùÉ3¡±[N¡?ú"[‹j)™àóŒ:£ÎŽ÷¢n6.ˆ›¼7 yi²ß¹”KÍ}ƒ †ÙÚ›—vFU½V½Hÿ]QF‰B /s1\+ìÕߺun ¬k:›sz:K@Üò<áêËjáÂ4•µZ3Ò1»Û…`«WÈt¼éèaÂ39˜ÐEZn3óíž xM²as„õsÓcÍ€ô,[=…-ñXRјNÐ’¶– r,3koÜÖ ÛÏùÅ>ÈÌå¨ ^óu­ŸìtÇ4_9Š 6ôþsØyð˜>9]O(ç»d.ÄIvxݪ1\…õ\mQZÑ-}Ÿ~†GY€hÙJZ9™=hRUþäБ)¾¶>“cýáÑ5&înïµÎÉ„õL¹äy&~è}7kKêPY­"È€Ízge«5É)ÈÜrÙAù¯h%µ˜‚0ä]‡î¼¦Ÿ¶ÀåôuNm‚btÓ5I¶gVûS¿2–¾Ìý¼þQ£«fÓ¿×[ÔÆaÿ|î?uŽœí¤%Üø?ð$YC<ŽSH¤ç¡Ì4ÓM\P-,„vDd pixk½Î»€Ð%±’”ÚølñiyF«ÖÏøW…¸ýŠ C‡gô³úÜÇG¦«É¿î ;4¶øKb€kû~ÚQ¬i©®é)V(ßäé8c/xÊ‹…YaÊðÿ›•‚®ïwƒßµ¼¼KÂL¼µ„“£jÛãJ PZAë%ü ëÞ£F­&„a¡C…RSð_paãÅáÊ4þ5é‚ð–ÿFbÊ?*(àÌvÁ.Í‹ðú¯çQ;@… ]]´þÝÍ7w¸·ÞµNXåÖXPj8+`¥þÏÀìÁ Ì8ŠÍô,4†â‚eîÚEf«‘#þ‡æ˜ê?ñÔ°ñ4´:žÔnÂ/reX¥½AâÏÅ?ùR12%UrÙŸGT©~ûd0u4B “¿ô´'í,!ôFxd°¤t ý{Až—t;Þ0GOµ|7h@cmwI¾•ò NG÷ØœO-rÁsÆ’2bÑH@h‘3ƒþøšÓÙÔJx#]Ç(ËÜ#c…uOe‡N2w¿â  Ïˆ²´yáÓIWØ!¬Sê¸õ5ÄHöœ ލ•®xA»&ƒÃgœ”\ x_¨1-äE+:PÜm(b½4*?ÿH8±8‰ ;>ñB­‘v¨&ô(·«%æl»-Tƒd½)\z­Ïh^l ø—×ë¼»î#¤´¼´ò kY(f,§£EÁNm^F 5”Åѱ™Yck§Ü¾]nZ?ûvLaW~\·âbïÍF4»ží=»Ò ‰æ&è‰ F…Aà‰‘#ж¥{,AÅ@V7imö3jFwµžÑ™€™µtÎãù9õV‹__îñáÓ˜¡2oŠ ]J•ö’•ÔõèM”æÚÛK_>?JuÅýy¬”²fP”éÍÞ¬@uüò¹vh¢)á¾âÚ>H!¨Ê`{¼,fº|¨ø:SÜ…8¡m Êa¤Í ç9Ïã3GDm[þ0;ô pëÊ•p ¶ª8‰#?Èiõ¿'s`« ½çz‰¹{ƒýP` †ðêœ̯5ЪO©JCHI]¶óV¹ëõ™õìû¶±I%½{¬úÒQ ÷éÊ9³]ɸ±Ç¾S#æP¥C°ûKïÀM1)>ä!GPÐf±ÇØÄRð&ä¡LéŠd&0ŸJy»d±)¿5É3£3ôªæ±{åálsâà0s´ïíÌUMQ<ªžb˜ÙÞ‹ëÁx—íñóÌøÔ”0å ßÖ(?†£ñðEmªrO¡ºÆu§±°)'fz¸ø_¤™½Ö ‡B3;nVD 8ƒ·¯âO¾ëÕ=8Mã3µ÷½ašjÞ1&b¿¾:°aO€T„ç/×o@Û…6d‰ÔΑ]Å)ØUV?çÍû)Ùä"Z[ø{=Ûúj‚6Ót6æ«yÉÌ)„0ɨuà`5u Ãg’F)ÃCàïVPŒÂT iH£ÍZêý s‡§ò"ÂÃ’’ # (sÖGó#.ý9>¡¬ÙP¾§ßÛèð´-EF-‡7©m2¹q·gzÚô/¹vr¼“&§L³Ý\á¥áQ…U£'¥ è×Ú•†ûÁ Á l!Ìó´œHòßõ0FÚ'yèî‡÷´ …—š ÁÉ Ãù8ŸýÇ1¹›ö#¥¸·Ák¤Oc90Éõ—xöz&쬵̕—ýó):xÉ5pbèÇî• _+IúN„ÆiS yÎSÓja˜Q1}D©?—0 œüÿ¨³ƒx€g!RŒ (aø&JÐ ùi *‘ˆ%H¿oº¬S‰øåºÎ²]Cëæ±ý°C{¡ÖýÍ¥ÝÎHÏߣ±Gb®:o…¸®ZwÂÍ ¡«K‹¦â"êP,A4ÎÐçˆÿ#¬©z—ˆðÖn8¾a”õ‹ç¦³îãáŸél$]x@íü 4]›t@ˆ+¾ !>H<Îóô˜yž “Œ·Ã÷ÈSLrºìg`Ìz«gv2• WÂä¼úkO°Ÿú[ô 㛤ËΖ(¨‚ÕUXt†ˆÃ{0#/š©ÐÞyî \ÿù½¾šÜŠ L3Ã¥(h•‹ÙP“/W Ù’“ƾGõëùƒëÙ‘èqMÇœJ”ö¢õ õ zÇN%ìÎM·ßY»Å–'ÈãÅ`0Á4Ó%ÌL¾4L›EŸ8‘áØÞí÷f®T«ÊLMWM¹ø”wså˜ ÕW©9Ú”ÞäîþìJsqZ8jøïβkž}1Ó¹ü4ì“já‘P3Œ+ø|Åiá)x—Ç:—î 3 .Ž<–2ÌšKqŸ@b瀟·gÝÇÙôžUrR©4Ã6îÔœÙvÂuJá‘M½"*ª–Ù £!×r§˜¤_£D7À~ÀƼíe“.—îKãħùFÈG@€qà)¼»>ïôGvµº¼åã´È©Z.Cm¾1½%Dx±a€Å¼;ó6†¯Äðææ’Ö¤k²M "O©Ô2ÞvŒÇšÒœ(Åޯݲ·Î™_;_MUeuÉ2{à‰H.o)§e°¥ÆÏ§Y h´²QñÎU¢·*g$yÌï.=ºj}”…­ÿûÔºø¬Ò+¤àQE6aö%LÐQ¡„§DeÀÉh‰oT‘ÁÄ!­‘÷·}Æ ÿ¤²º¥ÝÕ¯ÿ&¦J+ÛÍP{Ê…ÜRÎåÁm˜éGN)¶Åø\DÞ-UÜí(·“ß:÷¤à¥V΃w]˜¦ÇA¨s>p Ü` 6n2Quðltõñ!¢$Ü_ßÏR@±öR©±žN°Â3Uœ€5~à–gëeÅÆ0ËnbÜWê *_ÚÉл ­0¹Ánš°içQAî8™ÁúF1Í"¨ÚŠÜ‰:)ßMyW:ætªƒys« Ü0[Áý¥Eë“ò¹êà!iö˜wǾena+ìŽ;oÚª}¬¢‡© bë‡óóqø<^fðJ\AZ(gX‘óèÏh¯úÒæ–…w¹|áBPS×¥äq¢”%õ++׸ì E`³ É«HÝSk4#/ø@‹Êâ+Ö>N„' —òFfLuÜá2qï- *‚¹¢þï†}4³·rO†xKh£šÚŽ¿2ªÞü9'Ã6ÙzðoÇ»âDÊ‹¦l%ÐAiÞ“SÛ­ç˜oµ‚KÑÕ;ù£|zÉìï‹$!çXÈ“nY,ÐYüš®Šá²z¹#¤œ]¢.¤’¸5.Ϻ¹O…í¼ƒé(Kß.Zgý±`¦/Çžë}[µˆÿE,Ó ƒÍÇv7Å3¹ÅÛÎÕý#¢G³Osö¥Ï;Ĩ` ‹Ç[p¶6*s¸Ü#?…"Ùš/‡m¨m’ >pUéþ¸å©Y¯BˆdÆrŠ¥©~‡!üGü[À§²dä/qƒ·‡PüÕs˜Â€Nu¨Û}¾'Iün]LRwqÈ]¥Cjÿ£°aªµk¸Ù›Z±ÛÃ!E!ö•ÚÊ/ÜK¯Öž™ ¶xd UBe^”ˆæ¾|<›^èMé%„ps:õÍ‘„õUe  íKò›³  .ÍVÍ©çòhkŒ„„ðÞqµ@9 o«M…" Un˜xÄà¦KÌöšñÓ-HàÍ…TÑ_š8ìÑ•]\—|[¤‚ÎØôcƒ‚o²ø±Y‰=€ñÿÝÀ)Ëï&4Ò‡ª) Lcïoû³­-áMÙHT3Gìb¤÷|{=¿Óî’7c"©ðê(ºÊòY§Û¡¼ê¢¨—­Õôw êùÓSë;È>Ö÷C~Þ,"‰*Ub;bP·ÔŽþ­ëY<äK£šŒ¡U®V3J:fŠ~‹Ç ªeª»Ù¬Izì.Œª·¿¦‘ú„òFzˆL,]Žo.€H2rËï ³>D©UÈñd/É$?ìýæ„û‹EX¥2¹s™øHÌݦ_• Y²ž vªÔ}_mWN“ li…@ ÉüœïCŸÂún~ßü²ù¾ £Ü1È?Tãžà0bÃo â ŽÃã†]£ÿ3éÞ][[—:-X%*Ì®üFM‹L?R'W®Sx½¿K÷[Ðþ І2¢0•àÃo¯Z#.|K31Ñ©C‰³o¸ñ“|ñ,FR=Ë3»N:­]¾ZÒÒPBF=1‘j0ëøº_.ÅTµ L”x?l™y%²(É2&d™:«‹bÊ}”-òûM•Øp:ìéÝçß5‰f€¨Iuny^õŸIZ§XIW’œFùè2€'E]&œ2Î'àš,Ö•LéTøº»ÕqUÒq[3Å4©fÉoI—j–ŸætÒÔˆ 5ˆG#Ȇ÷ÄÙóâ¤Ê«ÚáÄkÂF½‚w+Û#¶¨2 ább¥öñ»¼ûB€åÿ WM­U{ϦçU, ·Í?¬aú ¼¡ñæK®±t)„h¤¡¦úÿX7.~?q9‚Üúò3oúx¶æµ©Æ4±=žÆ¢µ9þs°Ìíéþù¥;›Ø¡Ÿñµ¸Î*<;Á¨hÔ˜h/ÿ6vG¤Àr¯Å1t©Á“}”K昹¯°à+q4½Ì}¬ -›Z( eo?á ì2ú_Šgä)OiÒ<}p"ÎÐzD..|ËF丳¸:Ò$µcÓöÚÛ”þsu¦XðtÉíÌô(ÕgK—¬§“‡â¥ÈjŸ-óGSQc ;+`2¢âBÛë9Ð+£‘tÇ ´Ò¯ØÙr çŠMvH¶hl±Üé×&ÌG|! pc8gT;Y“#NsÆ-„W-Ž˜NµèŽé2”^ÓÖnEÞg”×–ï~×MjN^¬é²ìNýàÚ\S Ú0Xw“zã(ØÇ•ÉÖ’¨Lo´<À0š#«Eã±ÁÍ”¥)0-pèºÌR6eD,ðØ Ìù2㷰͇vªøiì¬ÌU‰¥D€ýÖ"†-p 4ÓbGû$k¹SÜŽèTýÜãþ„$NÞbØðH¶e ;¸+ÿíEŒ§¥¯y+qc!ùnÚ2àæŒÖ­{V Ú‘6=(ËqÓ2à÷p‰½5Ê÷¥äpë MÈ¿Š%!ŒY×yËWlî(åi'ë ·£î‚H’ §dàtÚ’kà­oY›¼·%t±.WÍXQ¯Ú±w~ 9.ˆE“³Õ@«õ£©?uÊÕ¹•}.o1 2tXd× ðõ‘Föî‰Ï’õN¬ݤN¯§3²« n!£´"8—( Â{'+ëXB^e pÍæî_i»ße“ÑPµ–ï þ²€©Û'J¸D¯ühd¾. *QÓÞœî®ªŠ±”ði…KǬc¦R+,9„ÊŒ–sF¼l—ˆpÁÔÀ0èÙyÐο(:ˆ«õÚÊ6>pEÅ/ê2|ìÿoDg¯€jµTš@ÜJ+:ü½+š¦³1WÖw*Þ÷êוVkæ3»ï…‘ýpΈ Ë8•aMdB7*EÑŠÞÿ[—¥^uë ÉêØ×1ÄÕAò‚LŸˆ¼÷Å©alI'ok÷äË6¹Ãɼ£%šÞq5‡¯FÍ ‘*Ó`{N9/u'I׺BâqPïªÄêd?¶%c3sP2áŽ/€âQM7Ý\~šð"ÏO‚9ÈÄí;’œ3ßW(«:2¡¹ke»O¼Ô]K1€eë:Óªy¿¸¼*»w©¯\RZ‹ð+q öœ¹¤ŒÍ8꿜Ý Í<¤Ìri2±D߸Ž>¯³è˜˜þk¥ƒ1Y•ðÛ3ÍÞ•÷n†VR$8h?ÚÙ6ÂK›Lò4%§Œ ØÙ «Ìê^ý3kN«oð3ÐøRšB0„Š•H«®mcú©4¦F€‡T%ñ“xób)nïÙM´UfÕ‹‘Þb t ßP„"Ù}³QMÅ=EÜ’Mþ=õ^f© ¹*´£cUò”’^`5ý^¦±»^äˆ0-ð<³ß<Â…€¡ÀI ÏÖVúØØH\ÕzÎ+7¶þ°2®‹™äÂ’‚­ÝÔ죬yü/Î5Ìv'‘{,ðïÃÝï°i˜*ïý3•dê&©ÓøQ|p³ÃFR†ÃÁÏ"¤ë«EœÕUJ¾Ëšž8°hšØ…tD±5œåkÑ"1¸ÐÙpm©r÷œòxÜæebÐÌ»G®°×–lôµo5ʼnÅG­œÐaŸ'ö{Câ3¡3Í.«ÇoÔtæÌø#hsta®ûFWeu èl˜¿ŒUͧ-u¥C“©˜;¸è~ìø:€ ·7Í®$ÚBS6 ¾xö} zOC„ùæ{•ƒ¥8[z»Lºâ[èw,[øÀ·&;ˆÌ„?Š1†Ñ\ÎÐÀj¢ bîY¼eƒ/ÚèÞþ'#nhûÍ56d¨¼}•q¦+À •BB›öVÕwXŒã]“Î\Ý ø„¹ª^­ÎÊ íjx:kŠh­ `^|zŽN‘À·íL™—T¶;¬Æßó_×F&GMÞ~V#0¡ˆÎÓ›`@C=l™Ñ?Š. ˆ+ £+/”ºv?®ò2b,½µ#-›•¹ý“·SÉʼ‡Þ~Â_ª¿Ï?HE! c<|Æï$9VðÎþƒgB»w¹¿ÓÛ™»+{NåPÜ+9èd»~õ–Cß)M@tþ zX¥=Í“RG”Œ'Ù°¾ojªÄêSô!ß2QÕƒ±vxèGþ°Õ¾ŠOx^š ðU)¬>•À2îcn¦´U° |§êÞìÍÿò²€9~4m¢Ûj |RW€°,ózdL‚ë v^è}-ø½/Þ9døcà°cв º»aW5‰½ó ;Å õè}þ:~! Ó þ"‘*-³Cå)C_Šê:h²üCµ5 ²°,fZ¨kí!•li…8Ì$¬Ú.•o|§c'\=šˆ@©Ú†A"ÞH!vÎòS®¸h‡Êâì_}IZ½dέ:Ù¼Xòêtu|1µ ¨¨ç:ìe¦ÀUŒEdê" þzdôzqÝ• »oÄ:°ÑÍ>Êwæ8§Ù²¹ï‘^ìT¡À[>ÿ}()¹]b²Rˆ˜EG{ë£)é¡ç´ ò.Áû žZUîCp}óf Ü?· ljI‡–Ù¾ÛóŽx#QøÑšŸá7j¾Èà+tãŠý,©øD¦`Oq‹LL$ë4ÑdUf%¢…ÂCZ`3µ5ÄA_,M7j·¥Tßy(fÙOÇÒ¶Y ó 6Í3Ø)D[â±ÚDŸm&a@ÀDÕù0Šö1û@ïœXHjêEÏœ”Ñ«i׫®ó.ß •*™TMÝP1ÖUè'y° ·`HcêÅ-"ÚYì2Ñ1½ojî®®Nûq×]|O…½¯½æôþ•CW‹T†ìÄú”nªºsß:Q†Û%o/Ý£ÐÀÛþ®q±>rx䬴ÀRs¨ÝFÄ>7ñw¨:uâ%åË%VXí£¯×‚m'R˜É,Kào÷ï^’oÃ9®´ªkÓ=²†…èÂw ¿þQèà!0òé/ɶ˜ì¸zŒC‘VÂY‡üΙ¯ö\ŸfK&cûIŠ»·2—oFLë(ZzÕAô¢ãc]îTeô¾b¡€ÜS‰·‘ Pdÿßððk܇ÉþÒ5níÉÛ)\FN© · î5WxtZ5Æ£u û ó̆6w8dÎðz€6ÜŽ£I]M8‹é–M˜Ò•Xã]{ꑳaXÛ€;ELÉÏÓèî$8à¯ÍÍÓÄðÌãµ·r˜Z4S–0×"ÙÌ—¨’©O(ìÅç|2öª º"èä˜ëó~$ðWy|¾ÞjವýÉz0E$yj-4¢wñ6ª‚F ZçR¼­24øµûaafë®Öã_ËÖšXzqNíÝØÒéenD6ѽcæ(Í‘üFODã…*ðÃH¡ Znã,‡~'ˆ ë`ü¾Úo˜¥¬eÌ£“:燚ìAŒ_½ccØØ£ ?V`X+ ïMÒæ¦ÂðZWÓë7yþš sÜ*QÑÝÖõù}{dñCp!ïÙÊG+|w›ã^¶þ"Û2ceŒÚ¦ A¡MIïKZ¤a±mË/£µÉ¡OëK-ç±¹£Ù–SØèjÚÓ2³Oò­Kupm B_ÖêÍ×=^UùŃ~7¦–öþ2(ÝzÛq¢\*®„0z‘œº à'å|Ê«"f^®;Фæ½?@÷íêVÁœ÷J„Œ@4ô µÃ\±­IܱØ(“LÜN8)í9‘¤3¼×rgîVPœÊ;Žgù\šç%¦:àÙŸkí²M ú¸aɬ̀S¦Ð0Èzë,7“85ªZ¨ C¬˜-WL´¾ä‘}xG…äFí{űfò,÷…Þ/ÙM0o¡ð‚û §ÎÕÕÐ><7ÇêÀkìTÛ™ˆ@)‚®ÐMU ŒÍÏ~}/'Åî(º&ÿ2àÅ÷ >ì$©X‹ó& )ñÎ÷ѶU_)í³îÊ[þyVö¦, =¶;… ‹õØÝÜ– ’ˆV÷%Ûk)NÎìOÇQôÌuÆÇÞCZÚ:ÎRè µ¯%Šs• —ä[FчV†ŽDÍaºs¬ã”:À–íu&7*WÁ8•i$Y £V´3Wœ*_cGÍÌúâ4þ›‡>—0±—v]RaDÌ>/÷'^þpóÀÉ–MèÕŽ;úSì c¾´IPзɃ¼e}bì´Ób_XŒýŒï’ýo£M¥í| ´ …‚ Èi:ɉìàƒè™§i7ðvÅbÁÿ­ù{ MÂF‚&ç}›)Nì÷šFòí˜ÙjÝHÎó ¶´5惩b VÈYóî¯ûé’[<ŠÚ¾ÿ\P)*W7GYâz¤«\«/ÄûòGÐ¥‰¯`׃ßq`¡jb(Õ°Ë+¤š‰’¸Ø\‚³È2ñxÑþÌnV÷7Žî7ßùúß Öýn=–ì7Tlÿ„G[5Ò™È\µô™j±Þ홂+B†•h6Q)Oë8cZ`ɨòü,A (/óðJ‡åðjž€DÆÊ¸Æºáÿý£E‰Žáõ.—É»3ÅÖ!8%ñ_=š¶7‚²”8²™F¾9¹ô£iW³ãX\°±‘BçøÎ¡—#R¹ïjØ$ÏOBîp`LÙ½Œ £:®7:Ôš|±Uøà{ Èx¿•ˆ¿"L+™‚Q-P´,Öèºüà V ýÐ`Q‚,*ÿ]vÑ LÓ†š5íU™×å@Cº¸>‰¿ÅÕôzS²u‚ß»)^a`+¸áˆ§Z|ãªó1tî×î%õ:²Æ,§[ÈoŶyÓûî•Ü %lÿ'¯“Ú‹lŸ‹»_Sí×W¨›:ø¬ZµASù褶†œ¯ h—)8ƪ!~5ÀJéî4ã xì« µ[àëõîH²ÏfO w¸<­µl«$Ó^ÌK–ˆ~É Vœž(bÔ ¬22àpã¡è×Àèy·ÒEÏò8uqa© Ðüþ“ŸÇKWY¨í˜ €\%¿”²ê ä¯- êš.)“Šà™3H¾þrÌItó¥Ã¢Y}9È„Ÿ¤gY¨e}Š\–’b†åâ?~F ¦vtTX›O ,Ãj¹Û~ï_û‡Ê¢Z4ËÐÁ·"ØYÈÓ¤ŸUmufûþW´ä Wºe$Ø/¬Y¥Ö0ÏC?ºŽÒ\ØsÀÜžbÛL†4ðD½nû¹[] zÔêÅ¥LwyHM&‰«i_'$ÅÄ»m-]×Ók9àJEеÆC`z`5ný:qò*å¸ p§¤¢W?ÎfäãÝò¼âà€VFJ‰ã°Î §`ݺ`c›ÒØç+Æ ØM|©Â¤ÐŒö:Øè8óuß9³²Ž\”Ñ+KOËê©W‰¹„IÐpü¯ÿÄ¡Ò(ë÷wVRw¤2Å…bGîé³õLØ$ãnÞÔ:2枃©CWºÉ޼|"»/73V¿Ã`“ @€Q‰tdÑÑ»¼–¦X3vG|à¾ÝP¼è±¡|{$Z·ÍʣݾÔ\2¹\¥½÷ÝžØð«¶^ýöRâz-Ä|4[­œ°è[æI&Fóäo|¿ñÊ1^؈còYécáåJžI&H´<£B`ì? …Ž.ƨ‘S"`}ÈËxW»˜ãx¹¸ûF¢Z^æï¨*ÚSÍ:¡òC†8Ø*,^3dû0ìŹ®#‘¬4¤}“2ȃ«ñªÝÓ“s¹(ïšpG§g6›¬ô‚ MÇÔêVí²,ÙˆÎHåUü>®—@ãùOÕÆE%Kâj¨6›âÁ6tñ3Ì® £qõLmŠÜ‰åii@V 8zvä…:HEÁßaݺÓt>¸Ó’˜ïk$tyÊ€¸C¼É\}§k¨Í¥RÕ<¨ZDü۹¦ú7QùÜd̯?µT°t=(ªd‹gë&; ü‹ Vé°ožŒ I.G²¸‰cŠøZªQ¦*ÑGÅb÷|Í‚¹Q 1]bi´ámmߦßû2W’K¹’,¹mTÅšzÎJ]úû–‘B;?JF;ÒªàÅVŒgÓΑ†l¡ô—f­2í„£ãÁÞ ­ ¤ü^•¡¡„lqLšÈ¬ýá_2ÔMá<½ámA(ãQ¹-X¤ãâ ê¹~ï3õvE÷:23§1*‘¤z~’ª3r9vÿ»£G§Ì¾è#\üxTE AKÿ~” EÇtŠ—ê“ôã.r˜ð¢;fޱêµâæ«\3U‰€ý ÙÎð+ÕœŠ‹x÷±˜"ùÿÞÐ9pj«•¾€W°_ÝKæåàÏ«\ã‰_‚·åÛͮƫÏlç¥Ë&8áSk£dð†B– m­èb}F 2ðg»ÝÜaã­rm°‘]ì<ÂÑ•‡î.á¥ãTœðS,äXgËB:‚c‚××™þAšeåH†°ñ‰ 7®ÒVv';lyDM°ÉÖ¸Ü×12n‰.è\™fR‚,Ë}¼·), £Äd(š¸ì#u»y ™µçu2#E·>ú¾’¿Â-Ü–´…l‡èèêšïjÔ¡Px‰®cp¨‘Öwúð™>¨75§L´•W&[´ÚK9r(v3„K,®übùbòæ øÁÇ¥%ô:‘P×£Ãr×Ç­Ê}*~e€XßX1Ë"³„í7ƒûÿÓàBÜä;LBUŵoT[ÎTfŰÂ^ª]/þ®Ø yôt³iIù*aè–ë}Da9†³*ûãQ¾×ƒÞ¾"T•M¦C›¡:òw­O˜d0°? kÖåÜ%06>h¾»­?X¨ Ó!u®î ./T7`|/h-c«%¡l²c4`u (÷Fµ"t8ÿpÇ…¶ß´ÿ;y¡¤RŒFdUÏ/×íãMÄå™§øsó εöÞ…÷”Ç—{ 7]x¡XÐ!w¼qcÞCE=¼¡€Ž:€ˆØû” ';òÕáßR·1SDž4¶JYÎÁ¬X—˜ >}6Bͦ–TÛsE£z{«– È× ‰½ØNH]û ½`’íÖseo° vªF’q`ÙÏ.]¢ Ì5Æ/G Áˆ#È‘O»«ò=~;(dƒÕÆÐo¦þ/8¦¼ãR`Šç¸Pc^½ 8SI8­º™Gë°ÝP% PÏÅÝœû+KOe†±Ïxú»VÝmÚ8ñ$ChMwBò#©Q'(67YQBðcBXò©k‚_#è/¬ nÅÏÝ唿´ÒœéŸøÙ†OZZ4.¥:Ô:õdN£;÷c&sŽpc5zù)þ¶X£¶)¿;ËNÌVaõÄ!amhʇÆ-Ý1qêÜ\[²%«‚ת] %YZʹÙH…´~þËLyS8mG™ÆmqE!â#ìç\7dµ+Q.ªÏÔÔ´åѦbyGL=Ù–PI"V:çÐ÷2‘¿a ÏïKG-† ³³öVu¹¬ëycìíÕ`(™Ö¸ÄꃚÁK_V¿¼°“p 7»KiûI¬¶íÓCDÜnçLgJqX‹lL­aoí"-ï%Ûéù¿€rnD »…'M`ZBàzÍ0Ï12ü¶’/Rah±Mš³¾êmh7„‰›'Ò¹a{Ö(êÞÑì?”ùÙŸD̴Ę\E6GÇÝüMˆ¨wÙ>/°PLvÓ±ÿ{¬`€ ídxÉÍ/’|í±¹ú )Ü´~!YÞŸbÌO^Fv¡öÎÞÚbo^òÀ—‘k.Í0öxmO,ûº2«wÖQ2‹o©å›¸æ§VàEõÞ>µAè`§ÔÓSnG¡÷YnŸÔ.Ï¥U@¬[Øõ̰¯¯¬‡W¸(Í%r{:Úm£®7^»ß—^Îá Ípan.ì"\Q’Ú× ‹»o›g  {SS1îEuŒ‡²„ç‚Ühæ)n:y{|˜¹gµdeU® ïídWÛázñ5:‡ ¾¶žÚØ™¯L|í_¼Ñ"s%JhV“¹LC$ÿêÊÌ>×úýÜc—G"—QöÒÉ–QZÙ·±öxŸ9r[ôj𲯃<Ö®iñ³*¹ÆÂ›P½BF<ô&í‘/‚@ÕÓÁ  szIõÃpÅO¸DÌçÏÊ˃’ y9'‘¢ê9xkVäýÁØGìþžþO°&ºW»c¾õ[Ør’×-4Ûª™‹lòMJh‚+3½ú‡)@‘‰ˆbüEøpuõ*p­üm·E‚3デ»3÷“1¯:4‘ë8Wžjh÷pJl¤d…;² Ÿâ>Ã[©Ó¬òŠçe‘ѨCòÖ÷pÉQ£’¢ªÙÛüÒ[áó'$dkÂHú˜Äw÷Ž àŸ sh­ÐUÃÇ:œ»#UŽYA¸tó][ùY[Pã4Bé›tº&óäíþ±…]÷ S÷ïB‘ÞI8Tïo”äL]ñ°»8–e!wëvh‘§Ýšqzõ5™¤"5þo„Å—»Ù©Jñeêh‰géω܋•¡elgw¢Û¿s/m8Š‚BÇw%¡nØHj´Þ¾š/©FffüÕv°ºƒÉ <ÅÕ³D8_AB¿„6ÇFøSdA?á’òz˜eñºµô*o¥üjb¸Eb¥“œÆ$ä‘Ã@ x#ô=PH‚- 5‡8>ªu4ï¾H[nZ‡ šÕ}úJD9 üZœV®ó ú<Ã8¤®Á=C×ñB Å@¿Lm}~z0 ¯Ü<Z…§Lïrq½Àùè[çqã’t^¬©ÿÂ$è Ž€¬ ý¥ê­žt@2BÚÀÁŽË˜h»RUèÌ}ISª>2æn «2]–—×Íz$И̨ÊQr:ôýÈFDì]ê4)3a$¥É=[?;Ý–:¢ŽœP{ðZƒ£ð¿ú•$xÔWÊõ•êÒlM²?…¯Ö(ƒ.¼–NW(ï9Tj+Y.Gb¶TYÒ o™ãÃ\s]/–.Müó@±âÍ ˆê-…Ó¾ôíx@ßvË>ŒÍ“ŸFàIø­6©w\ÊQ›”äóæ¾W½÷©´ùê«7ìÃl€øØ„ý|Ý36! ­…¬Ó‘„6 S´äˆè×NKôv;o!G©ÂTýbþOÁäcžƒ`ˆÂOr\Œ™Ü6wÀ3¼yì´˜6_)ÊA4K9.ð£Qâ„zöÖ­?–Û®ÛCå¼Mõ¦öñ+¥t5¯ÒôÉL®:‘ú¶òf#Si\¾*âò5WuÓÐ*×öñ|{ú³6}ëö"HÖ5·RàÈ”´@Tõ*±ƒUàg[ïùÄvñ>™NJc Lv„˜­¬&&„j4¥´Ýšó…Õ´Ãýkh”ÐIíPGsÐí¹Qê!M^š‚ÄÕBî<Œ’Á3þùhó?¯@,åm÷z-x×Ìe‹•X80u·1\ K`u­uà,¼¼ßþ'®½;€?ä¢oÿŸºûvÝÓ®U[~F-m'HÕòoSb8dŸ f‘yáü£mæöÃ¥CšX’kl'}z9Äàß4€£vÛf«"6j —º‹cÃGZ©óLú$Ë_éâ}:BŽ/˜‹!c8Sÿºéeq›!—ŒåàÏMþ{ÍSRfýYƒÈb¤/¨øx~|œ‹¨ºd¶«@ ›ªôox|R_Ì7€+yU-QÊÚÃ(gx; Š.¥€ñqà•rãCê ^"ޭϘƒi… Æ÷ƒñæu³‰ #µp£ âZ•†‡Ìüó¸Að¼väT,sàÕÚwPz¬V¶½ò‚%]`ù¶O(gF¡ÙìÓ¤SL߉øP)³}eûÞëyÙÇœ§ˆ/Q¢êÞBr—–#~b¼‚»·tšÀ¹B®ž°ñÌÏ¿ÄJ¨7uÅ6CÇÊü{QzÇUEjÊ03¬`aÌd¶^ÑX¾£CÃɦž>ãý±B¹@_¸èÿm¾ã’”€Ë!ÚñÍ5€)DR £ÐxÍ P<,A–Ը壊Q‰´6¯\fÌQNk95×›'ÿwQ>zGV—ÌRÀ¬q~É÷¼[˜YKY‚úOK{‰“Ðq¤?¬³òz¼]™W|©˜"h;±}Ó«"Ñp^öq—†®Ý„­_Ø7rúqÞ—.óûÚ©gäÔhú740x®pæ×ç_ZÒ,G¡ÚÁäânÆ:6¡µÖ#6;`O³[§ÅCäÂüä“{b‰1»Íú h‚]Æoí´=³E2ó¢|ÓÉb…eËØ{ˆ3W࿞¼”UÇö~Ž"®… ¸4ù"_ëÜSÐaF‚Kê5 ŸkÔ)“²1DJd«^ƒÌ:HÉÍÄ5ž³†¸Ë8á…¬î!™=*”pÞqå™f, ¼d°w`-V8iãíÃö& ªàtØ£ jXë»F¬ô1¬®^¾5hâMÆW ˜ÁËÞ8œ¯N…+£ŽÌ×%æÚð6_”œKÒi"œ±îD@ëÌEÍû‹Ät‘(œâNŸâ”À›4ÅšOkFFýuàbkE­0*¨ô†œ._öÁó°ôäEÊ4ÂùD+ùQÿãüæó@•þù{ÔbªœcûŽVððX¨—MãVB.h"Ÿb"¦*þ`±w®×Ò:ß:ô-ˆŒZí5HÓBO×¶—®¯ÐÆ›žÈ|Á¨0!€iÉ~é¹ Ò±ŒM¥û1«&-XDÛÅ¡æðTÛ-5X~mÃKȹaD‡=ÚÐ?øí h8§gëòº?ÊnfW’-cû$ÎèC ÇT¯EYžÓ»•üçÇa#jÿ˜¨|cÂ3*Fp=]€ƒó:¯[Rn‰ Ò6$UÞ)ßÍ¥Tu¦ bÈsë¹¹½¢9¬·1¤‡vvû±Æ‰/ÈûÙ*-® CCÍ-–­*÷ýˆ%ݫ㚆&DbV6µtSÆö£ £Ù-ŒŸŽ!ÞØ‰ÖÜ„0Â@L_BÑ—þ¢†ÕvÑçÈXCNÁWåáát¾ BŸ5g„àõ&Èm¡NpKn³ÿÁ`v.ëÃÓܸÈǾ¶ÔhdYÒ ;ºÉ—ñUÂ,Ö>÷ ßŠ“ ÖçÈzú«ôlþáqÀb_7c‰ƒ,g.ÅþÈŒïÔ€r­¨¼¾YRôf¥¯Ñsöí]ŸIšNã|e ¤ûsÚÌɼ?õÀ[;wséé1½‹y]Gƒp–WwÀ^ŸõÙ¼$ÅÑçu’Ñ’wµînmÌÇôÍ“:*?’Н[y@ºþ;DȈ òImºÔLT'ìÒ„„è·ªÄܺ&¨Çrªp /Aþ¬Î\n2ÅìõÀˆÆª¯Õ©‘|Ê4¹F?>½€r:Ð!òõ¬`µ¬»)IŸjáÑ6cñâ$] ´A,‹)çkóÝ&á¹uðÈX„ºz­ÎesaÐSˉ¥ß)Çgz›n0œ[ýfŠãûv%ÒˆØOï.ûêqξR´Û½ÞqW'¿E¯ÇITqOŸ°f|T R…*•¹õ˜- ïKx¡þôÈèíL’en%b\Kä¤ß+~ñ*«©È}à›eðO@QUbÊÖn„ê½oﳋߨ,ޱáÛs(IqöYÅ$†âkùÙa¬#µtÍus0œJãUNÇñj¿Á샟Πz4£‹7„YôQ}]]ÿpþnj• êDdêvôh=,Ù,éYxE[Ë_-¨ÌÈùëQõ^ôI«ÍêO“N<æ:ýÖsÒDÝËçM¶Ÿ›œj7;ÌÂî~q¨€‡}ÌwJ¿cÈ‘GV‹—"QçT_—ˆÝÔ$T›XÀS“½û¹?¤DÁµ6’°p§'’vu.šœ/ û_¨ëÍŠ2+:‹Ž…àÓZc׿¥n¸ƒ¶é$µ4æu©‚O…ŒïÿB$ÑK”D_é’ù¨”\®øá½åñäÑ!õÆ-;ÓEW-#‹Höu…?ò—’o½Þ?úM¯Rí£=xÉûT“½oñŸc`„ œ9§N¡¢çpø2á{ø;<°7 3pýU?ul ·ù®²öòÉé-ä¸o 2!œ™ÛCá»fžÅâ=?³ßúQ¡yy“ð¤€`D7ý^ù¶^²ÓP˘ÖtØÈ*õ7_Ù"HÒ ©=D{ê_k%.¯nêž£ãø‘ÜH?x!–6bQ‘m6|§£}¥{ô)ÜYÓX+únŠ»î=OòÓô …%U}ìϵc|3ûQ柮Nú“ ÖtјªÜƒ ¢h N‹ˆbídÄü/ uØšà«vY=@ÏoAìíñð}©¿²¹­.,jC»Ý"*DÔÿý1eØ|`ß/膕bez ~_“Çæ-bø2ÞL©ñÞâ¬ÿ¹Ÿ€½öKW–=7ý„ÂÊš£!*c­š$ÜŠƒ®Ï,zãX<ÀûÆê}¸žMüÇ…´¶ MŒ *ÌÄõæe·ÿðèIr-ÁúMø×&c*áŠDZ_g–ÖJ–ɶSghD#¨n o83GÀÊB¯t­mZ»GÒ±¿YöP…=O¨GA%9m@ ›ˆ 3!½w"Z‘»lå|rb´‡Ý¦Ëï Ü5-œBÆh\¿‹4Ÿg9‹r<Ø':Œ-†Êç\ ° ¾ \禄^w"k{Áð®êP—è°öZüjÀpnZsY;eÇ™¶¦æ? ¦?F!¼OE[ÚÎÙÓMWòK y5ÀM_TºÁ³?qHxìPè0 +L3ó<¤¡ÙEg© d7…xÆ;­¤…K$šñµÏA\ei˵¬PfÑ%Ü0»g60Ü´S¢¹ùñÐ"ÑIÝU̱¹É–R|rÈwj;bP9ÃdH§™è¥ØÀ4c|ÏAŸ?]€åoª8 Ë×Z»†êÃ| Ô ìæÿÊqðöÕ|aàD]°»Û+ΦýŽëùY4 ¶¤ëo™ÏÖ“òõð¢SѶ3<ù¤„EÚ>š€ÚÖá ±‰ø”°tP Š©>@ÿ#n:w­(ÔDDo]ëXÞ΋„âl±˜.rÌøÿ²Fçða^_•z<§kÖ¡™ N8 #ŽS˜À`•»[€€/~L)Ó ~YE\<ê;Æ7Žs:úÏî)i‚ÍœƒqŒ´H‰&1l/ñŸC[œF«òí¼nnArÌ+Âþì¡AOɰÈѺuP¡ ‰Æ©®y¦îWå6‹ÉZ(Wµ²ß¢ØZüDÖ¥1.RI«6+«“ô,C3«.¥2hÝù(ÄÃíˆJH´h¬-4Ê™4šŽfM9n „Q´¥ª¨ÒÐé‘äPâWb#ÖN•J˜æ]Ö”nÇ‚/§@²ø¬­šCO7×lö¤(‚.§ÑgÔJ—¨…lË€êòMŽ©1£‰8Ó­e¤ã‘+IVŠãt U³5Šº‚;|ŠêÒLø\|Àè÷?™lbÿ8š4EŽ•l^À”ºü‹²!_·Èíùgp¶ºDH`sWÃ&Ƕ´Á°¡ö¯VZ;¸J ki ŒÂÖmV@jàvñtÀ®q†…§ïåÒÕÁ~D½øašOÊšZYY‘nå·KX+'e6ƒ #T4$M7¼ü«¢S{MÚð=7ùœî±Í0¶ ?èTúÍŠyè€È9´î2,JýlÙhµ˜3îÂÉÓ«p—Òµ2EïÒs%ï|>5ûFœãÚ†•È4L¦€ÎàIÜ$¯Uƒ¯)erx:@»2®LÅɧ¼ü7ùwÌvn¾˜©S÷óvÎ!&v~ÎÉÁ=gœæEgà÷š­:0J”7«KI¦W|ç eãºvÉ—)2-êQ»M„–߀W˜oöN<ý¼Øª-ÑcÒœõBߥí)Àqxœb8^ðîÉ§Îø×Êleóô¹Ž·©ýÕ(9L÷•¢ô™ô‰QÑúŒ\r´µ›0ç°4ï’ÖKÓAèÍ }4úìu CKƒžl§=¸O©r‘=òT”Gç=¦ùM->öÊ͌ÊÖ°ÙQàW1LVê  X°mŽáš‹+G.9ãP"qÆR‰¸qëä–µ5\w{ïµÏs®RÜH8C%Pdó¶Tƒ'¸Äp±ø§ð¨±Hðp9¶PtˆøhoŃ4¡^˜Â]YT€9ºr½±‹žë¶S´ß²%ë8·œ–Œ OyÓzT ©q¶~Ô?€õÙãÖDxYòO„6‡6h~âKÇúUyù¹lµÉͯ­´1c]»Uä¿: 1”ôâDzG_Ò.»«%Ø^¨Aâ(äÑ6¼Õ ÂâcéF«+Kè·O®›Ø¢Ý•heÊ‘K@§4™¸K!´†½Û«^ÿbH‘[‰ +?”kee©FT8ï[ûÇ= qä@.´i~ÿSs„DzÛ_æ´üø²?Ÿ„— VL-ÀæîSj0½z¿:;Ga8®^[àûö5Ønç´OõTø®!¤ì¬£õë6õVþN¹ÿGk!¦5ÝMˆÛrx—ójAªÀh¤ŒƒG”ù”±ä¹D׆îAßµ»ËƧà¦R<ÂV­DÒZú_ÎÏ, ÞMcÈ&òy1Á…£Øe\HJBŹCuë)¸D´m°BâgíÙb´Ì_ñîÙ©¼T2‚ž:_ݽ“Ëæ»Uå Íû(E_=Øe jäÊpâº:ë¢JúR _ÓBLøKÙáUfkj`úAãåÆ4žƒMºÖºÈÊ“”‡jƒwQŒæœn¦«U òì볞£G V\kpIÁý✺í¶àH­X»Søæq2ë’ËHD&ÄËðèÎøz§G–C${d;!ólåíÿCÞ«Ä>6¼ÖAöšg«¨z9žNÅ&&AîdÛ%åŒ$&¯@oUz†¶¨G¤¢WšŠ‡4Ê[·²ú ¾VÉàÖiŽìv:Où."™ÖláwÙ•}h£™¦àöÜ“²DTâ^ðD r!@²T1@6<èº5`¯L‡ìí‘CUÉjñ©ò¬%€ÞÝÐ ƒL(e'ÀÍÙƒú}‚‚lõñ™ðB82–þþ&5eÛ $¦÷grŽ-†S,y”!©­¿»¿×*ç¼–„¾e; ç\>lÐóf«…YXŒ+›©…æøw }C;ú¬¯œªvúuݪåQ}ë»GÃ…s±ZÄíUi¤–ˆºÆ›äË’1ñ:Ã0Ûæ#è–,rô˜ðÏ]C<Æ~–ÀV5y:Gsw¨mtúHíÞ /¶û›‚~.>ª!ðf/1T2½¡ä‰N³ƒ²8½ŸXD2hÆt/\WÎã¶ë³&ßÙ,yÔÐXËŽ sg.О‘eè°F›Ã5r!ÛÈõ ¾ȉIk)ZÁ«ü¥Ñêtãát‡ëÝ öYÍÎX¶SÌ3oÝÿ𖜔–-•Á}§™©ã²#;âÆÍ^=äw‡AY¸`¨FK!}I÷ o$s|]pƒ,ŸSÊžE¹[ûdÖÂ×![ǺÕGñSAëELà4Á6 ¢Ë™¡*æ‚ÂÉ=9’¿L¤hú*µ¹Ï…^¿£6ª ó¢-S«ûâéS"5ª'TÓö‰nb4ÆÂø͇­Eí°e±|‘=Œ®~~Ý‹­ðô®/1ÆyD“_AÁoz¼øÉ óuh=i3B#˜O‘îܘË|E-TP¯õ„­Z=¬&þ"Sƒþôé#gݘù¾%Y˜Èá GìPFÝ“5‡X?K&köžâœl˜²RÃøm$©åŠ(Û…t—¢2 ŸØ'Ï8ËŸ‘"²&~‡iHGdVõ Bÿó"ûõ+ljasÝŠ‰ºt¼gŸ½Ê•¬RŸs¶:ñõ Êéf¡a³†¯=±ÃšÏï!1PO“™BÇÚi–ªæíQ´ ½‰ù°ß§<ûP8²ßÙôXùüV"S°¬öàZ™™ô­”¿¨ýw•@¾Ã våô-Mú»ø›Àxæ~“öqÔÖúóÛ\®Ë–Ê;¡†òîdœ%Â\ ƒKÒëö½ê§nU6<]G-ÇßtjLÎ„Š‘>‘=ý` ©ÿxßߌ-­(öÓÉK½ZgÎr㚘Ͼ·êyU1²šÚº Æ"¥› ¢Î-–á6û4¼çäuP‹yP¹›Úø&='ŠJÍ·Ý”z!!ºåM¨zÈLŸd;Bç\è{†ÌfÖönÕôØ_Œ‰O£ÛTƛ۠f£Ùþ.èv«d6n]0±AãÈÖ:Ó›­ÎÑ-CJûw|ceNò`Þ…Knw¤‡JÝéc•”¨Ç¸pXíZÒ¦v_õÜË„s hZL5ŽzF[pÒËš´¢Zz^Øy€‚rGȵ—`^ÏjÀ8Q6vÕÈ\GòT«nR=µl2Dº—m¾Ú{)'䉰 OBdÞ9 ½:Z¢ºÀiqOl%-Všº‚”áé j¦õÙâ:­Ì·wõSb±¤‘÷žÁ•‘&gJbƒà6ÿÛlï)ô†¿m;y™vùª•¤.’Q­ÎDŸ¸'ÖßWÆnÏ[A«‚)k“è;Rªœ)T®(ÔG»I6]ìÀ¨Gµv&|š ‘ì…ËŽ“â0YŠ{” S§Ÿjš@ü6™ âˆ…´7e·ÒoÚjʹºÖ™s1ù €[/}O¨® mzFT·?Ÿúhë_2= Þ%ßøèÌÅÕéEx»ÓÑþN‹8¨BO˜•*²RÖÛr-ÍÃ¥(´=>˜Þê9a›”‚ )Þ¼Ež;œþG„-¤búÊ ¼¨*u¢]ûûšçbm¤*ÑׇÍB×üš ØbtºItdƒ6÷Xtk>­¨U“ûøÒ!Ó¨¼HÂÔ!€¾Ãóz3þè<Ïl³VQ^T_–.õN™ìÿíØ×[¢Þ`E‹]ÊvÌ€¹æXì@*ñá ¢¹È.Þ‡èP2·“½ÿR¦ŠY—Ÿ2e—ÂVûm… ËÍZYƒ†6Éû˯obrs™Dp4×?‰ÃY1Þî qulAéêL”JŸZ‚«WшYOÒ÷kê½ãÃa¨`uð¨¡êb•ŽÎª„̘5¢Ä6˜Žl'8çV¡ß€t1ü#5ƒÆM …';Oñõ1ù,¤×PsÞôÛò’´Ý ˜>O€va×', ),Èy$&HíŠÀ6ÌTà1º+MÁ­-éÙï5M¢u¨µYÞ–¼†”ó‹’&¯-ÛûI‘ ®ד ‘rc8Kc;yT,lv,¢Ÿ—dìlóÿÐMO†#@܇fS^Ê\™‹ ßƒ6<]{!;Z4 f=Ø–…ØMOù,éÈâ7'Æ7ìƒï︎ÕQª‹‘p~‘æšÎ ü´› Ç[Qû¶6øm…\@[h„#t=_¤t{1 Z{˜ŸŒôÚOtÀü˜që‡EÓõ4X1!îÌŽüKf üºwoÖ/?(®C ²ÓéYZ”³‡¡4Ã#boQMçµ1™”ó‡ ¬–žÙ¡!” ÑŒH`;=7>l˜5§Š‹£p_I.PÙ³Hzý¦¤æ,Þ„u±¡xãÎCé›þóAy­ÚŽ |ÜuŽ®u¦$·ððÜ:I_ì¼3‚D;ÈNGƒÏXó¿?·°|â…‹N^‹x”Ä uºW®¨~׺ IÓöò¬ý‚¾ýk~¡”ôá©—¨n2GWjï›RP#:Ý)-ëÛ©+ywéI·ïu='˜yŠJ+ÌÄOÈMG”K4“PÑ"Él®|ÙAìCÉô»íXÅ–²>2פTµ¦ÁÓ¡KM.ƒªYëGéö+"º´hžiZCM9ätâ@ùa“µ„•rIÓ£"iS¼Ø!DIáWÆÂ¶^þ†ldh™ÆÑòúµlÇ„ÐB+“¢„[ÁŶ@fVZžàÆF±s‡þ{må5è1}ÙðJ+å剧бÁgöØ2§¼ðêñSJkW ËON4âpn>ê¡€Á zx¸w’™>ó-(3'tðQŠÂIGádaH†39ñ6OñfO¨µ»Ý—É0!UˆŸ#P &Ίeg‰Hp@(NÀ•/{iñ«pÛî…oª m3Nm£IB!‚¼²Šäó£h2%:lúÊÍE©×õlÊ‘uI-å"¹sBç§@&7¨Í@.s‚xaøÕÅ‹‚ ‘«–È.?ÞRŽ5è˜kû*^fT[”èòjÏccWÊLüìLšJk›×Bž+cç6ÒRnãwá?ù3†Ææ—€ú~L³k?jÇ,R²CÝ4ÉÙ¶>¯£¨²q²m1ÚôøëYAƒƒÎ|oÚOŸ€ØÉ •ö0býó94)O [ˆÈh—røMu ü«‡;­Ÿ«ó‚7¹èªÄO…ëP$ÅâeJ~EmY6Q~ì>äô§µYmˆœpLjÉ•Zƒ8O’éú–wÑŠó£Ìå˜÷s”{2¡¼‰CÜZ•‹êä”zž:LjŸÊWev~o†ÑÂn,AÝ¿¼h¦="DÀåo€`q#±è-‚ÏÐ3v U§kx$¦j ÖSBË,õE±ó ¾aÖdQzÁèïU~žlÎdnañHýø´†@gj;ûU®28êvBž„(ú¾ìO’oKåáw°©aÄvÌ€õ—áÞôâuËðrÛŽU=3âIåÅÿoam9°èTÂðyN2Ü·Ö*¥‘BAqW7g}a\ |0™ÿHãtÄTTQ%öë®¶6[lm×ÃÏ¥]\To µ‘,'êµq“j]jš.`ØÆx8Ô@ÓŸmÔt•c3yÒŸ‹u^UD½³—A&á…Jô÷Ö‰„ŸÚܾ಄\otï Ò½Çÿ@ q¸p™wÌsòúi! @¨lebMê ØSzï¹ì嘲IU¦±>ï– ùhhÏ Çh(xOÄ›À*V||ö#pZ~VÌ) ëóñ YC¾—J˜%á>Ñ£¿aíÒ.¹·tÅräR6I.nü5dIVLhÄÝoý?¦]ç‚@ÿyÍ’—ÑIQ&{KùqWÿLÕú; æ’é\ömv#¯Ï‰l Ëï§0o¥Þøî÷À…<"äå?;‡³3;N{d|àÿÒ¥w6º–¡ïe´;˜%Òm hY?WˆïL[<!×(â ¡ÒåzIfèZÚW¤îlF# uà½ocú{ê~£îÂïž™Pvo S¼‰VfÝ%8û=ÅÑûLžy·Öx@é#šOãV@¢êÅc9VhÆa@´­a— Øgæ&â<¶x·ð:˜3çõmØWŧx36çŸÏ–ÛÍ?jç{_|ÙÊßüÒ|ðÿ–”ô£ùpf¿sÖݶ¿€Œ¨~'/é6µ7îA—ä?ÈD(Ùw|I±Œär ¹:^—3âÅ,À~ºVÖ?àƒÊTH!–b…Ø® —&Ζ¸ág-ö>ÑÒ§1›´§š þ±3ŘÎá©—€ñ»¾zC¼…T1üJæÌE­/ˆÏÈ]ºï%au¾:A2©óôn̉ 3(Ljqwz ¥‘W~¼ÇZ=JÒ˜´úßÕ} ôßZã Ž:Z0Þá Öóóœ_$Ñ‹¢°@~`†´T+aß–:Î|¥,ò´_¿†šUñ—Óʵlw³ ]ÅÉ·î±ú:Yv!p-û S\„B!±$) ÊÝé5&e¾]Ð}`QÁ*ÏÃé•à~‹jRšøe?ýiYQò8–ºŽ‹–¯ýhiË¿ÕH'ò'ˆbRŠú­2ÁâVú(ˆÅ.hHUÈôúí|˜ß\FÁx~§¸ŽúFU/ÚÂ[þ0žY¢Z¸F®$°¦±$]Õ¨ºW¡u ÉgÚ|¹’²:²à‚éŠ/\q1~ø½[—œJÿ¿‰®yíüë5g«oEHÈ?:@¹H_ï ÙÿŒÇÏ?›RHü`v왂Ú_~ÙªÖ´„ æ <7I¬®8fý5+?$BªÂ-Ug|Ÿ 쨔¿È Î'ïôÈõ9{ã>ï}˜§u…Õ¨NᢶÒñWÚ5)ŒLø3îÏF¥ÅæêlU~CðÆ°ˆ4ƒÔ‰P­=²Sd$(ë ÙˆjZšëdœY*6„8ІÄC¼ÜC¢³ý‹s<+$ûÆV(h%„ 9îØ§jß•·ûÙôîòÅö¾j©öõÛùæÑ<Qè‹y¯Ý«ÈÍj-|ÝáèݪÅìÐ$ˆúJ“á)ˆXŠ"%º's?×½ÛFï‡?q°9—*0‚§¸ÊÆ=«¸Z’f£øŠêâØèмœék"·Y‹èy€ÄZún‹ôM‚øTG¿ýbºU§«ª¸À†2áûJ“E'?ÝqíÝÎÙ¡|> üœ·cIQ„ëþ4¼ ;ü¯^çSÿZÌZ¢y&œÈgÝÏ}FJ‚§„ý ‰Ä½T3DI’Oo LïMï¢Æ²1›#ˆ')ƒäÊ1/^Xþ†7Û’À*ÚÎN½8B®Ãƒ=Sm©g´;[ç'¾ìÉ vËW5Œa(!h屡ßu[êÇQŽß¾¹ŒT2 ôÐÚq‰}.°If$¢aÚ}øU²™LĽ$¢¥‰óÓ°2øÀæÔRÂdy‘)C —ŽÚ+ÕžŸê%-b p¦º¿‰ªxA櫘êW‰’Œ¦Ší·{¥,«L×ÐD…¿öÂþ¨I]dáµR¿‘þ3``e¿¼ý> «€pËüáºÂÖ¯¸;vË Aß±3¨Å€ËML«pæ#&ÒÕ™œÏ°EáÜ38È¡>Ì57€²:Hè¦Îá˜N¬ðdÛ‚?œ-ÿ—7ÈèSTÔ@‹úiן©µ&·’ ’m'o6Ÿjý÷×_¤D¹ø )À>Î"nŒ@§L½§¹v¨æx¯1{= |ÝþО÷k–ä9³6|SÛu_v¿P¯èÊåîcZ“\©=¶¿ÍÈØP.ö!§–l–Aiƒ_ X R^¹Ä"ŒyŽ.ÞŠ‘ÑÑÔ„c¯”[‘#Ó Y›¨R,Èëd銴Kû©ñ€²1f¯hÜuèªÀ©GÞ˜ Ìn¢…)Œ‹°žö8–èJ½‚'¯Í3›X”K]‘ÃÀüˆTz<3Ño'ƒp¹ÒõÁ¯'xºÿŠÂ Êg[å«3%—ñ–D‘¹~’쪗s%['TÅJ6 Òñ‚®9žÍé°Kâ‘Þ«….”È.1üL¾ŒtMhœ(³Œ¥×ë¯}X5Û[cÛRJÚ³âqÐ9µ“] !ÖeNuk |•ËÍbk‡ œ:îÕÑL ÔB%ÇŠ{~ÛtT™oÃ3”"3û¤“½kÜHö ƒ…¤OÃHúô Ó€Çð¤B` ¤cNkVÁÜÐf\gØœKÈø­ k{}Ú6ÞÇ7o«i]2Š– Y»¹üG}V¦ô”Äo+±ñY€­X…Äs†_"mÌù|Ž×9n ÖÆêlî–dG½rN8¶1Ôh…O‘{KJ^çš)þtªÏóµ‘Au×qÍ®¬DšÍh];ÅÀ&?Ûêfγ´¬T Öît%k±~£Ð=Rýu òÓ’ç³–±SRë$â|Ùëka¬H(òqË‘œüÇ(‘^6íˆ µ›ZPº»y‡Ë„ày°›b¯ð8v»+K¤ÿ¥Á·p£§YÎÎñ®É÷ ²?ÎŽáÈ5ØÎ–´L»Ú 2Œ³ƒ×vëKH¦ꙫ»í“?”îˆà#2Þ8<øÔkÌ6²õ§†î5K;@yZï³z±…Ñ[!qS#»×¢ãŒ±¡ £>g?ÑŒ°ÒMƒ  1δÖ|¤rmJvyû¾a!é©f³õ¡`6ñÌö«4àFú…«ýF! D•O&Ðm¦9ß Þ©„\—òеÎÒ«£©ðè¹ó ñlfCGÍ'¤$a謬A/‹˜£‘§ÝKÊžÝ֦Ĭd 3Í»nú·¾—#VŽ6¶2wÑk’+ ˜ÎiI;¤)Tc‰^”ÒþdÄÅuw.Uõí…¢%µáMþîl”p•uúŸ´ÂS¼ ñ÷Iêr7õÅí/ü°÷?EJBÁC?âN…¯£2S4cրЎ­ ^\BÍX›,Ñ#jŧ¼,y0åúd2-({SO¼Îçå@¿çJÛ•|_ Ð\”dI"¹´b¾–»ÿöP¢¡ ¼ó³Gs¦ûÓ;4P©Ðo žHÝ‘[(à ÛòÃ%±Gm-ˆƒ§ƒ†°8­ƒ¿>p$žÇ¦R(Y½‡¤§üm!xs½ hD (½ƒ™Çr×Ïè6qrİèó³b}ë‚c«^öƒˆ7ËAU›CšbîIã};‘4â¶Ð‹O¬iÍ× ¯L­b9/ù&Fïì=n…3d Ý©©Œ8Ÿ5º…ÙÔkŒ48§¡-3ó©4e¶ÔÕ\laìHwŽ·®2wR~+ˆ—É$ÚxxC±ZoŒÏ÷fÂÙuèÙ0bVü~´ÃhªÉ^¿ Iq‡ËïA2 Ûyqxö–,¿ÈüY›\$³i]à´ûÑE|ÔL¬ ¨¾®Ì»‹®®@»›J>&VÚ¤7  8"¿=ñúµðËBóºè:¹ùÇ=*9RM³­8Sc!mj¶"0?æ­§ °¤!JO-á€$zbqÂ\› ɰ÷#lÎØ5öüÙ‹°ÔÂm˜|"1ð¶&ñn€%  Ë>SÝÒÜ'P¼WVA6ÿŸ ÿ;0[›ZŒwxË!ÿÓ‹Ë_AWYRô µ×Jÿk¾É‹L£€Y—ÞC¸p¤œgç“ÚµNIÿ¾¾{÷?È›ŸÐLߕ̈iiýq Š÷.Mó¶^¤ëhðuÿ(ƒêr/K×#ö¡5¯âGÒ¹9ê-ÝGÑùòDL¤YeÇî%èfеl¢+¤õ¦ñ“âÿݘŌ÷à‘BÑh;=,‰u¶ÛlHœqYÔØáOGðuÄöBÄïÄË” ˜n^ž ùW‘v§F™Aêá™ëàNçtW4H^-Bßm¿›¥¢5C¼_ý%öC“䣗:^Zj’wºÉy`9|T.º;ïH!þro(i®0û0Ãkv…¶sI6j/»bò½³>”uã–á=è]”…ƒ[Ùp){oél‡­ìra`O»½Jµþ£‡—g˺¬gv8,±’¬ç“ML¥7i’.WÝèh¡ƒÉïò¡WÍÝ·êÉLqYQæ¨j^~¦]‡,ÕËVç”è'ËiÔ#·CkEžxܨÎ7›à}N„êÎzþ ©§@?ˆHöŽ1? }Z,¢ÁD´žŽVS ÞLáâ™.5¡©Xk¶oÉ3WÀªò/Ä’Y°~Z¡{vA‰ŒžT†-CtïfJWÆ3¼*1p4D }®Q O3#ÁÖüiĈ~@f‰QêûÎ4Üü]9JSØ—Õ£ílu£‡†l 7ÖÒâ¶5¹ˆÔ˜,ÅÝÁ3y_­Í ØÊaFuïÏWpT°­ºt¦£·¬“\¥VuW]ño2йPŠœ›6üj‹¹¶°ˆ ÝÄ·úãÊýoô –Ì78îÉrKýËfG€4(EBq÷Û!¡ŒNŒOûyÞê$6^&„‘^p6éeNº› Æ®rmüh¦ßR¾¡ú ÂûúºãU"7þò9šØ½šÔ±/$ôÌe§ˆôÎ ŽÏª0`ÞiÒ‘Fä8æ¿&´ÐBþ²S„¿it’)Ëb±Ì–@ð›2[0\0©o€ûge$Êž(eYÛåÎî³.œ¢!¾4öß1Â?Žm~ÄÍVœNª‘?()”/ŠÓŽ-¬AÆ!vUc®.-î +÷'‚›A²éqìê#ÿ¸#k°s“ëwFd€r&ã;ý Ô²Èn p`mß_ÒLÈb  ¨7Ȫ˜zñs6„¯ìo€;ÊÐ8¬þs7ˆYHûï±*« wñ7ݧ2¾º,Ó'fÉLäÓÌ D±Bˆ|Ò»ˆ±ìÙü~ ¨~r†Éh¥8>7ê°±f)àÞ²Ì0 Šì2N¯W ù(U üöªÓÍ‚H‡›ç<ØæšlT~–€!ˆØóÛí u3G‰5¬ž¸×°Í=5crj+¾žClÈcç(ó&)NKÙ"¾Œ,}Ð&´ú\8‰“Õ %jùIôç—l9ôLÍûÚa¤éÒ5Sœ«Òæ'Ì{OŒè!¾XEmÛ°lý.É`Oà­cŒpد@u`„©&)TœHt MðGsÅ]Óv ¸Æ’¾©×“Ù—ü†SjPs޾[ñ®Åý6Rz[p÷TàŒÀ¦ÇÿV6"Œ š€7e{hÕ“­%lž‘ ¸%-<ûŽÎÕÛøˆUÝ$——Kª™RÿáÏ’ó2ß­uµ6hŽÆ¬Öhºý…M;Òáà½iüìË܈Ї]vÜEý qkOûë}\ؔΨü(~)ÈaC„Ýe«9‡ñöGúÂF%eŸ¯*“¸Á.Ð鎴9±ˆ³«m˜gŒBµdÚøpÍ·¥^íW˜,Æ‚ š=x\•O„G…¤ C4[WÚ¥"Þí2ŒâŸ"9R…æø+fÎÄ’Žo:MOªÂºS†‹ Œµ¦œÂ\À]M<Š\ã7ii“MY(q­x?Æ~0õvMmª8ÂÞ>;—…MÙת£šq½g ÚÍPèÙ8ÿR_XˆX=8°Ô¦G\äsá6¸  q–È’ÚËÊ+åä^`©Ïb \úŒå#‹ç’Õ@Ðh—S}k[SÉíÔX}1º|¸bz$Ïjó*YbféÉ™ýøJŸ¨cÁô2-Ët“FÐ-›Ø †á—_À58ÙmÜÕ…#4rçô¯ÝÀ[ñãô™Â[ËV4 82.ÃR"ù:&9|ļ¾…$üâ;ÌÅ€iö6_ù @DœòÙpB°®ˆ`Î,Ô³٢€?ŒZ–k e¿ÇZŸ¼ÅÁ¬–:·È ñ ï²gÿŸ¡æ('8¼aYgᱩ/z}›8¹¤Ù‡ÌÙ›Æ<ê@Û $Ø9¾x49/T{œÌ·ýŸ¤]G¶Ö‰£)¥“«°ôà‡Q”øÒ¶Æl)ý1æ/XÔº'bµ–ׇTÖ,EK'»^ÞžÎ]÷Hƒ Y²JJ?€=47dh6«èÅ!ã5›§ÿt¼$ïÓ7 è²–5‡ª‹Ä’7ò+2ø`_[æ`ìL!Y¯Ó‹—ÞÈý¯DÞ@öC’`Êg«¶ŠWâ¤à*nL>ø¹öR4ªWÇÎè) lRÝdó²_Ë[ãonHµDô>d7o|&ÏÒÐ$Õœ©}&Ÿ—åªÉ›2[Ê£Gn4¦#*Že7ÓŒ¦3OÍ ¬xÚ°4O¹X¸ÞÕçMc­sY¾ŸÕë•öïŸÑ]ÐæVT¯ XAÌNÞa'¼ð;mônoßÙ”ø"°à=Nè0´…"îí„*™*\h«” ØY§]wñ ¿h˳˜©Kæ]M#¯˜‡Ú¹<›ÌX0@¢ƒb@ïÜÇrâß#¹ÞÙ9#ˆ`ªP©¤—L6Ézþ•šû­ÕŽÃ9ñ&OkO±äžmLo5™œe¥@ãt«Zî3žlVxo)“T‘Ç*u9„…œ7ÖKMã¹VC*DB¯Kì4³¶7¬ŒÄã6» =šÓ®Ȯ´ž&O8°ñyLÇv á¹ÓFRËO³lÉ#N8üc² @Qy cüíôÈÖG÷F-r%ýèô¼E€Xô‰Û¹Sð wÔn>'–æòÈ:&&ØA\ÔØPÄSÕ%ìå!Þé&—5ðöêxæÌ¬ Œá–é7\ä2½›Ë–wßå|Ý¡»ó¿×2·¨\ä^C:AÜ_wü‚_¡É©û:û–YÓ=^fN2Øx„×!„pH}n¤Ôyuï¼ëŠð–N¶Yi|—×Mºú}"\N\à׫ÜI•¥ÞÏ‘$àð£,׬ÀÅpÍùâ5 ÂLu`pŠ€|•fCÂ3aÔ¦Ù—îä¹…|¢Õn"n ¶ ~樖)rfhÉ ò®pÕ£IÜèÇiMGE ®éaOåGÆ=Ü ãñœ>åoUã©YÐv€0¥Ô3 jŸÞtžWKÊMeò®S+u~ò=ÒR±‡N\ô¬è¾šv¬TåfvÀºÿÎű&G¹þï¨UÝ´ð xŒä·Ÿ¡Ç¾OÄÿÀôŹ‘äJ[f–¼\ n–+Ò–æÔB/l’ZÆxUjGÆWCt+fA0ÎŽÉ‚ÑG+itBÞß.EŠ|?"ú8Ë„2wHÆ]Ý«¼\^$Â*—‚;»><ÅNtÊÏe¶M.ê‚gh´ê~¹ßë› † ßib–g6Ð Ý=‡ÁiDw'Î>pÞEJä»_†þwa”ÑÃ21ÿøX4û,M‡4ƧÝßDz9ýúïÙ¡sPH>>¤4Óû拟ÕJ9„Þ`A…’Ò«W|\ärÎ~çáÖÞåP±¸é’3xoÀ =_aA)¼vîB˜+X‹àv À®.[q½ßyˆÍJ¾¶’£&Õè˜RÓPmlÀAùÕ²U]b•VÿàÜ\r®k¸äŠð:-š·ÇеpzŽÿâ ]ÒŠ ;Ø’‹ifUDœG¹&µ¸À+ ὬƒôþÛÀ›ƒÛ"rÇnâ9Y\•Úµí¾ããö•²éÝq˜MA©¼ÖêK>Å^ (XD±ÉeÓòôޏDw¬=çø*0÷ìªÔöÌŠÙæ¯pAPeë½ÌãD…À|ÏbÁ„ÖöÓýˆÕº6~òcM2œI¬(DÎOÁCüÔ·4ÿ39RÖÑyk¾Éºóûæ'Âp*ôà!9®F×â'vÞ&åk8”è¤}m'auˆúA·ïOê'ŒÜ€öþOy)KU¿«‡ªÖ¬÷[Y¾3Uè°\¦Ë}(s“ºWÜ™¨e¼_‘ÄÁ·KJoâ[õ¸þL·O¤‹ Üç¬Å%FQÞÆSøP›k-æg2’TInD§ T?¶—eûÐ\5X]kr"ÙÃoËhh*œ“Ù‹ÆJ·Ð°ø0Ÿ±½;d)¥µÈ&ŽÆ“©8mâñ _ µY“ÓÏ.wÊ /àîï¥tuÃDŽÍó·ñslg%>DóÑ:]C'çÌùÉ_d<#í½áª3¸(Ê›{ËD©øö¡ùvFþ:˜ß!ã^ˆXC» –©á÷R7_yßKQø¯åˆ*àsø 4°þ^X/øyÁùp Æ„•ÎSu̘mÙl)̾ P_:"ÐöN!ÎÞj«7Tª~÷uG.«W*rƒßQ=ô§ÒÅ—ž“Ë&+âékó?F«¼$µm‹×`Ø@ˆ$jŠ2V±Ã©ÄŸör[C”´,íÝçtYŠpGÕ,ÓÈøyóÜ'‘Èy/Õ‡sÿÛh¨Çì]9Ó]ÀpÁ¤¤œøAcJP³Ah?÷kŸ¹élÆ µ¯¥/„¬ëÐ}Ô[TÀÇ(e{1ýòÊM…æôz® ülìžeD×nnT£gÚª_­à¢¶®*ZtŸÁQžAi؉rVî=‡’=·{D£Ž¼¾Á5Ú1’½Wì§—Xœðàô8Μ؈Þ5‡JÜJ¸#ó‰nîýÊ]ßÊN͇–`žEQ<ÍάǙL€ø+ò®“ükZõ¤1¢Kêâ «j ºSéÿ±ýóܱ¥2xcv+^f Ë…Õ„26K}&›n«À´%´RL}{ÁÐ8Sª,˜JÿÏVŒ`è¯ë·`S2"ºòhA •ž3àfÅ]9^Ý`ÄR^(Ã-r;ÁYcü ¸Œçý8ç¶5âèqÑ”p]BêͧoQÔQ£!½SÉJó=8¿¡&EmLG ‘>ë…IéôTø ÜC’[UݤLf±Ø‘&Ðç‰íßA­B:Û#z]’Þ£cwY9¡JÏíPä!f{Ýó:_JŭƒÖ5zÆJ"o–ò ¢Fœxš;-dí çSrÇô0'CŸ¦$6êV-ã?*ÑäëCòÔ+[Ñ©Œ<ôð\ëvñøöáù)‡ LP(i…IÚëÀMŸÓÂÌÈí^AV M}Æ­±íxÂíèL‡±Ôô/ÿÎ/ pLß_žcChrnAä Ñû8jñ§ñ¼îdãÚM‘š¶-Ÿ ¶Ç1]Ë"ŽRåN à²[¨A'Öê<³X+ÖWSñé~Ο¡åñr!=>ðÇT˜ô¾(iïßc;‡dF”HŠªê‹H8;™?Ôùà‡ë!ªÑ¼–²f-_¸çÐ.ÃéäYÚªßÔ6ËoŽƒë¦Ì‚™ K•˜ò´#AŽÎõÄô˜àáŠ|®.¯]:äÊ\lïÞ“|cÑk í3¯ÓJˆr‘äfK—br{ÅðÄŒ”èy‘IHok-·i ™Çì/+@¡Ôý¸*fÜÕhU[d Qí‚¶¨Ý‚Í” ˜£¾Û BüºM™,®ÕV(¨M5zWVCá†[¿îSwàû°{öAÆØ{xÈn¾AdåmÏcÔ6‡š§÷^u_¥ÛäáUa]Ä:€²¹'N»­szÕKBÜ0“ëÞ A=Ð|þ–ØŸƒ\5ì90>/:e ^¬ÑÔ"ÇæžsCAÛÞt*†CöŒ÷uú†Y$Ld8ìŽÕ_BêÕÉ´/a%“=fJÏfÊ _]UaÊâ_ŽÜ: ¥= #áVþŒ@ô]Œ$V`ºOE~öUY>á,†LEtZV~$(וSÐü‹oòÛõ^œ:*af>#œÖ<ìi{L°uàuã¼JkÍxº¿ËÕ‹ocÑ9*ݘCœE@p©õôõ~ÓŽ €E˜1 Ï!…MíøqEN@›S˜]/°ßïÎTáœM/? ›†Ý=Ù0Ú@¸ÿÑå9®6[†·ÒK¼D2é×6B"QP¶C5°²Ú)ðKþûð[Ùz3‹¬ÝÄŠ[—«.îw9¿pÀº Á7˜ÿO Å‹Ü§4‡"åúl¼ˆ.~~9qöÓhC9²kÕuãVkàr|Dƒ¡àá¦.óÛšD;‘Ó/¿õ;·¼Øp*ÙöÏ:/éÏçÚ;M,²Æ=&%æéƒ³8’‹9K,{(³ÇaÎ)ñ{V[tŒ³‚±ÆjåûÆ€û¾ÒF…-%GpkêJQ¯¹ƒÑ£:•ÇÆXfl:ÓŸ=ï%¢ÓÃy¼ä¿[·tþoäíVw4Õ#ôÍ02/¢m_ú^ƒ`I±üjŠçUš¢Cè¼TГšD=aºí ‡WßÀà×î¡Ö=¬2E‰:ð} Â´;4*}Ôãd/PteÑ•N¶@Åd²m˜i¸ÏïüUkÀ…Z2°ñÎ…¼°$ ü|íä)[ªäóhá:°rùcH©ª=Š,Ù3*¿(¼¶`Vl­ƒ‘MŽÚ"i‚ ö±#¨ ˜È«x÷I¬ø÷°r.(UmQŽÍ5ÅÞɺº]•Æìôeºâ§û2”L=†ÓC¼AYŸpQr?ΨTÙƒ«X±·èû5iS] »þ¡(š ±u b.+ÑKÌ[‡Ö"x0&GäþBÔ¥à[_5Ž[%õµN" Ø¢©Âw¦öÆDÐJY íkÿ(Õ|i¸]/W…‚Íñ0OdzËÀ!q­èöüE ã9C炟Ä( ¬—Ñßz]y6;j¢SÚϸÒê½ÿl ´9sa~à»ÇËtë~)÷Q£åŸÛÃtšóïJ3’ëD׸#Üì´úáëµí´=·ÂíRºÏ?ºžŽü¢³(wC õ“ߨ4Oÿ¯€Û‡Ú3Òܪï-Uæ•}á@]¼—'ÉDhjĠ׳†—ÑÙ¦´våx×ÝMiÌn©xžn±¨ze7zk\’K ïæ³~è5°ÁadæJ¼Ô½ .V˜ÝÍ[I²:¿ž9gçìºÔÊóŒê©ýFñQå°ÕdGÜ;ƒFÉæÕNg84îNÖ¥"-Þpæ…´µRseª’x½UX¼xÒŠ³î0i”qC÷šÕ¥'ö³N0ª ñwF«õÓèÇ6Çqe¬4>÷gKÉ™²'ˆ¶ ¹"gÆgaãN}–ÀŽ6fñºGA4pÏ×’‹¨hüKÁ2`j÷WÙ*Qkvs©«¾ß«êžïË<Ý èœÅ[ê*'i€ê…4ò"0¥gñý1+ÞaP°ÿ* Á´Å–ì}Œ$ “-®p+Šðl5/ ¯ žÀðœ_wu}W½W )mP§›&^÷0¿At˜Ó#O9èL)_žúˆÓ+õäèÙ.ìÜÊŒë5¾.…­oÔ‰§u&@„gÅsY÷¾ÕÖm×Ó3íPÍðÈHµ>´`žÓ‡Xºº­øsíP™)W Aݦ{pÌQ“MvÁÍ—x'oXåª>£‡¥¯Qö¦„äÚëž*…)Þ?óž¶Ð[§Ðœ»tÓ[ž `<>h,”ôLãI€`pÕ)ñÕXa-ÆJýCõ«DÃdw:x¸w5©óäË<›Ku^áÞ3”hIoˆÿyçæ¥žyaB/@<%S=|0áé—òmB„&‰YíœÆÌê½7©[3ó8ÜÎÂÏŠ2è8¼5ˆt­ºh,°µôY¿aRrÄ ,’Úõ"$´ø=²ab>{Úo_Ö«Äl?ñ—9òŸ®ƒ„Šm–É)ɬ'ìFÕ’õôo<ú _žšPîø9¼¾y£ßèxeu úÜê•hS>EÁù°&«¥dÁNšN†4>æQ,¿:ήdxþÍê¶ýŒ¡A~ƒoó-k#{õOCï1ZN9]•²Êh9HCÖ›V…€Gʽ¤;XúþÛÊVÂoØ V¤K’ñÞG\mÈå6È@„_]Ÿ2ηúÇIGj]ü`ÏGú°ˆ,n L°$ù§,/8àbÇð¨¢ï'í°,ÁÈ$U,ë×ùÕ]莲 Ü¥™Nâ6S?@#w\;Ö¹zÙ¬î”?!†Dñå"EÒ|“(ú>'zû‚ÄŽ¤;’phRÎeõn]›¹ŠÍý7f?XÕÓçl®¼ :0 ;1ø°4¸Y±ž,žñwptí¹n…¹½)z!R¶Íh¥3ÔšêÈ+§\@­o»rÎtX;"²ã9\ÂdŠÃÇ3}º«]â[÷uÓ!옒\ýÆ:/ŽLTÏ÷ãQ ó ÙpõÅ Kp6ÖÒnÐ^@?Tø^«²ŽbR{;MNWî,¯âÈ2Œ,ét?²™›?¬œ>†I;+oåx±¦¨3ÑZMå=冱øÙé†>˼R ÿˆ>ÝÏ/§„{f0.ZœŒ=‡²Ùt¬Š^#Œ2å ¡l®Ì7MGÒJ î*x˃Ö}‚&K•÷UǦ7YîiaT]ò¿°lFs HUì”ÛPÆÄÑ>¤ ì¾ËÉ÷*¿¦K¼O­”8c B¤zQ)úˆªÏ@÷³]N|Áeõ4 $ásFö# ·z_øS­¤hn’EœWmhÓ_";º šÅÁ¨àùOie r°u4Jó9"Ûb ÈGYQÐW¢µ«W7Ž‚OL“~âbúÄÚ6 íÁLF*é…:© ϥƟOæS‚"˜ßQ¥K­CãtZBJnvdÉò—:?"ÁGuÐï#â{þÎ’Ôj¦7.ãÈþ=¼ûïWŒ±ï ™M’=êõZ“ŠÐ îj\-,ï°[c3DŠzû’Ÿÿœhh>ô²ÝÑ­ë]ã³®X¹ptn^ĵ°9N¶ñ“5ÖegOôý4O&y˲| H«ƒäàû?égü%÷$Q”6”‹þP$ Qñ´û²¼Ò–éÀííK¶¸9äãÏñ¶1œ²—VCá Z<<ŠÁ’éX²bÍ^±„~±û'$„ì’e²æÎÑþ6-­ø1;ÎÝèðèëèjC²š÷_žB”;Cq¥YJ¿_€¡´ßèÐ@Tü²”X¼gÒò ”=~Ž,!¥•*Úà3Á>Ñs‡N¿UH oš“”«bŽB s"vÖAɹFÁ'f+_ñ ÇSp™iEÙJ_÷hF±zÃ'4¶DÎO3Biœ§Ãœþ‰n5\«5ºÀ„£ú¬a\b¥t—ÔÌŒ´X@Õ¬Ìå´F×ÌøÞÿÔà+ït̽GëkL!˜Ì0Z(—Ê?8uáÊ·H[è?÷~¤“@(»n,MsÝp’ÃÙý Ä š‹"‹µÎ°”äùÛt]Y°}ö›d×®‡qçp:†ÃüÚm|ÄtOµFÎ ÈDÅ!2ª¥ä¨ÖµRaž‰»»ŽPÇÂ`mLІ`gÄÁìþ5œaaòˆM=Uð.Ù$Ñ¿žÁ—n¥/KîÐÔ ¡ëq'7L6Ò¶¢Õ5® œÎ½‚ÑkaP¸U†½ÙeʪØäµ;i±ÉP;ë7¶æ}Úæ£bž8qö©FsF×A%Oùjév¢‚Ê–šYK7*9&1’Þ¿A¼ ?¥õkÒ–ÑöǧЄí<ôÉ™ Úv¸I°Õ†X/ ¨ƒ~ŒBpÌN`_[(Ý·%úyíC’‹ç®ß7OLéŸ`¤Hî¼I|žvìöD<•r’ù¥[ ¨uÈ„|¤Ê¶3t•¼àäóºNt×è"uBäYŽóÇUËvÕc\XùyÚÃø›Ä—f þ •7¤êN}êR­G„yr»3AVÐSKˆ<¯}' ˆçìýšNšFÉX1(¦Q•åרw3©ÃÉ qª3*0Ù&×bÖvó_™ìVj°?vbôÓ[!‰Dÿ£qƒìwnÄ1@Î|Mâ¸ÝW´úG$*K2lC°0[;:m #ä&ÏÞ&æãáïeÅæ‹á0p@ª>É{{"XÁN×ÌÙ÷ÕÆC 2órñ‡RòûhÔ ì7H‰ñ¾)ª±®²ÜV¨FjÇ” ™WžÄn.ø3ß¿Kâ¥Þ³ò£ÂÙ§µp,€…L 9‹‚)%¤j¡?¸ÚxV½p¿Wº°óbm6Óf¯ã¯‹dËÜã“㨀 q÷ß¶>|WôoI:kï$˜~® B^ùŽ˜—œKÃa&…Dz%àÕ×?©YÌÚ£:X:Pç§^RÿUvù Ú$É(×ù®/àK|5‚ q h\Lý÷‡çAkB7Î2YOfÎÄ7œ‡ œŽW’íÓK£ù€¿RM(Ö˜‡Ò Žv#vyä9Ý R]jßøé2W´ƒXè„ÕêéØÞu8îÌVÿ*ƒýÒQñÃÛÌö•Zö?t# b<"!€J}ÓÈâW~˜Æ7ܦ *ߎˆ|ÄËĦ˜{Ñ»¼@‡É6iªÅ2زªÛýT ›>,Gù†Ù"u¢–B¾.•bƒšpä­_=­½½ÒðHê¯d„äd/Ä¡q ÁµBEµüe È|¯íx‰A2·T4u¢þ¿ÀŸ›à{.qdØ ]ÓšƒbూWx|S¥×öB¡ê÷@nóMùõB œðç&Y68·¢u#c-ùgà( “7E+n¬TÑôR­‹˜Û\*;:’ªë×,Œ™:*Eɉ$¥ÒïZÔAߘ£¯À«™Š[ñƒ{JF„Ìî*DÆÊsßÿ W»dbh†+”¸g´:–Äà,YøýÛ EÉM0E½ílN‰Z¸™^2³i¥®EÅŽ±øU²êué‘ #]ÓÃÈD“NŠ ËSuó‚Jèì9éÿߩڧCDmqT6LN6©GõùÕWÛW\+õj….ŸF:Q¿y£Ù:²inxçmñîµØ”F', Ñø2ˆ`â*/ºSÈ€Ôc{åW˜œÊU{î3aó|°ñeÆÖJ×48èºÕ¯o¶ÏcÛÍ/,§Ö5¨%÷÷tDák¯ú¤ôÚYˆ »ÙøÈ2Ó æq’?5Î)$û¾î`Wµ(Þ•ÑÛ<©pÕROÍK°>v‚Á_^Oý›ÝÞ—âNHo¹Dñ:6›œ­º¬{"aÌ(“Á|ì°Ÿj.Ú—¸µÆàvÆDÑ•jyoõL®L…b¢"zA¯·\u{¯¦(‹dîØw'ÇXx@#ʸ©[É_(H¬ú·úèU«óª%ÊævtšÏêG‡úiʳ± /½?ÞÈ8©KNÝÊ›Rµ_+ÃWe¾QЕhôúðÚ@ÝE7ÝäNIÙ­,î |+<ßM+­^ 0Èÿ&;O}&CªKÙÓŒîvaæ}n~ëŸã¶Mä M}§VräÍtà>½Ýrþ"öŸ¤v<ˆÈc—l7ÿ†VÏ‹iÀU¢‚¬Óª/ŸgJºøn­Ì‰X†·…œ?g9Ä ÅØM,®DMýaöHE™ñ—áék-àæôÖØ8áÉÞC 3]³#Ú­/¦³SLvç ÍÒE 2Ž9½YTM¥5Ï^Ónq¤n‡ Ú3#ÜÕ¬ÿf"£•¤;N­1ìÿÊ‹•OÜÈÒÆ1\GX%5†sü½zä,Xަal%ÒS®È8Ö3–nI »d'ôé5ÓºV÷To&¥r[^ZŒé>„o-Õíø‚{“­'óƪҘÁCHZ9ÔÐü,{´Iœ‡FœÀúž¢OsȦv¶ç HõX¨`z ßùð1fŸsÿÐSÎrw¯ŒXö9;3^@DAîˆbn´5äÈSÞe´\ÓÊ_Ù”—ñ|•¹ÈkÚ+›»™à@¬£O™8؇˜XÎÚ›¦Ü,YWwøM\cNöf} ¢6¨SyÑûvðœWomfÛÕ²_¦8‘TtÔ´•ä´GœÅã*3£‚Ž®ÃbšatxD²‰]Cd–ò&ÞìŸêó(Ææµ§sö$¶Î e Žª­åt7°Aö2ÄÌâÓ(ë'¢¬¹µ­§nhž­ØJT_—,>’ut '6– ¯þ£¶Ûõ(ê¶óØüI4cB¢SçLöyô‰_î ±Ly&Ç0½÷é]¡HªŸ~B-*¡é+N¯˜wÞ÷æ–·09BÖ¤Uª=¼U„ZÙKÕ‹jо'VYÛEHz‚ý@_ yýFÀ;±ÔdF×Àf7Ϋ…^èlyD×FÌ],E\¹Üƒ@-¿!LÒ zˆ†»®8Tvo÷ŠU‘ë šNH…_ú›ýªÌ‹Vvø@¾L“toaÜ;NTMa *õ¡‡¯3Jö9… ¹ ¾@)?NA5³6áûå8,ú‹³q°ß¡!OG9þÞÊÐæóþ޶Zf`Eóüußñ Ÿº’»“©ˆ&¦wQ¨‚KìÅh¢f·1U‰7N¢¶hl«3ƒIøšô‡èÖc¹uÏ”˜þ5DK Û’$.®êÒžÕ%Z‡¿ÜÃoëÃ’ø½­b1µX ñŸF oŠCÿ.2ÓµÍê¦öÅÕ½È:xœþN7 ;:ªz=Igxlõ§£_–ñšÜ„{h»‡ˆÇ‰ûѺk™ïÖu5ePÔ„¬ñgçl'‚*0wvvÌŽf·aô¤F}Œkïî¦Mçó*š½]JMÕ«Òĸ®%zÏN  žÍ._xl™;Zà;`£ª°ZMò¨n~XYB¹KøðÀÿçcý¶£'HÁéð:³­×?8Ôӓłɑ e¸"½»úŽGCH"˜×üµä½Pʧ%[ºLâÄlÎ%2ÏñO6â™4$j¤šR|B»kÞ÷‹,Ýè~þµ%Ug2ónwEÌEp7Z<±#@åj´s¼xW r ¹vÌÏ+{¢o“wßçT‰c¨©`®.ºEÛtd õ;@pO‘†QVWÁÔ»MH¦ˆ’> n%mcâ¡­þ¹Yºf lÝ|TSŠ6«Ù·¯.h¹õý)F´‚«ŸÌÂ2p7aïŽûs¦´$”ƒŠk_›àÄ’ƒÉhuþ¥ÁyoæŒ<€Å#ô%9O}ͧ„Z§ojàú!kAÐpA+kò(É„]ëi鬙S˜áÁØ?\̬õŸ‹ÂÅ÷HY_ƒU𻢔’@zVë@gÅs è'ñÉ5½nïQG¨sÂï¥M €Î aä1Ja*4}Iœó-3K¤RÚ§<bû9KSççˉy¼ˆ8¦^UCì"aUéî©Ù3m.íÞè¢p|?ÞafŒf lSÂDö·K¿Ûƒ(—MZ*G‚ÑöîNƒß”Ý[ìmSö늪YM𜒠Z…á >Œ„ŠìýȱfãÈwwfò‰ÍÒ¤`˜?S&§Þ6Ø ^Q3‘µ#€–ã"#8vŽÔ¸`PÜk‘dŽ…|ä¯.[Œ¦‚7xîr~Á~Å”âþãj”§@)0J»7Ä:?IÚø‘ÛÎC‡—³&gK8@[— ^äŽéueI]‡áXg¥†·äšöRµW‘]k”1f°9–á+ŠN“zB_ݼHõàº8åo±*0/¾ÿ®Þ {bœ³ùvÉÓH}ó=;m„é žd’ž—T)9óâJÊÍSàìuä)ˆŠÌ…'y$v‚3 —ÒhÍJúRx_É)k‹ Ou¦+::©y ›Žò•ÇhüîAv‘á,S:‹Ê½lÜçh&¹Â¤¯ì+{M¸E‘”@Ÿ†ù×?XPá³ZæÏ±Ä€ÕNGAó5¼wUŽùµ ÉK´ðÞBöh=ãWHšøœóÓ§á­„“HXOc‹˜ñJ©ev¾:Lž ½ˆÊä7]š#§ú hPÆ¿*Ÿ3ð%É!D"642¾ªdãY=?ìá üdRyÈìpcñá'ÿ¨Wkô•ï…[þo!+<`u æˆÛ¼I"/©ô÷¯Q:1šÕ¥ô×ð"KÌ#™vm€ÃTÞ¹ xþÃk ªW8Pÿ÷y/wÔ.“º§Õ Ö^—àZü\Ç}ÒêxÞ±°ÛFÓWÈÀXŒöÑqÆO¶Øš¿w6bÓÞ8ükµ©{o—Xà\6¥VÔ9IÆíèW‹¬Ë’vçXVCËÊŽtß‘Oîú&cÑ À$K¤s@$oúw ,ð§i4`¦K$_̽ŸN–D¶s@{Am‘ ùœo£W—-ÅØ×ƒj#ŽŠ–ï¸<•`ZϾÌKƦ ¸4ˆñÜ?w÷04½½‚˜Bˇ ÔœΔ=#œ¸Ï¶oaæêÑXýÊÁ¥Øþe¯:2S ‹cÚ¢Ö‘n•õ 'f4 ¤…çŒ5åTŽ­ K4¢#%Á‘2.†z=†QtÂÔe}ùKRXÛUWž\ÌB׳IÜžÚ‡Éqš´TUÈÙš„pà“ÅD«?’z²þ­pòW6OàQ —Ê-©c­Ðw¥„¬ðƒJSÈ,)ž ÞØÿíX)ŒÒK!.L*^HùM9ÇÌÈuWUcÿ4ížÑ¯ÂÛ é5qÓ«ÂÀA"6ÌæÖðG¶u!{~}­mâå`ÈKî©à6ó[•¾S‹œŒÌ@¾†Ø Væl£¥ý÷{±,S¯Ø+•ª£|nÒåàÖ(ó©ã⟪¯™}gªÌfœ%¼zßç=ÀÛÒ'4…î~ 7_ߪ†WãþTI¸”U‘×$”)o;cŒƒ°GhhC~ÕQ™p~AÞþw:”ÐGl¿«ËTeªÐ¤Žð+¿{´W–üZXb•ò ˆ©aBýñLØO¡+%Ÿ¡ASìã$ÕoA|¯‘[“@Ñ¡„õ\¼gÛÎ1|îa*onFA?‡Þ%¿ÐSß“SÅÖ8Ñky6–naÔ8Í f­3Õºíú[ Ì%MÉyœB¾û€‚tyƒÀ.N…bnÓ*ữkÛ#lE—ç¥:øÏ4# ‰¿·vT1!Üxך|h7–A+©ú™á¶³—Ï_D¢㪠²Y¢X ‚ »Ål…è¤{8¼r¾Ídôzç)4~56  Fº úžÕÆۑ˜zlÕr×èÈ´ë[§Ý/þº²Ã…+H fH^æ=ösÏôm7¡WÌÒ‚UŠÕÚmýòëe§cFÅm÷,jÄei#ÇJ!*ÜÛÔè3\©ì&¸u'ÍV(.½wb¨Àé,vò}éºö}¸¸kxÏ ×¥ìøì•‚†1ívúúf ×§Öé|\›¼ŸÊÃhES*Jz9NùS“ìÉn ‘ƒt±D옆Ƥ|‰óâÌóUì0)†¥±OlÃø¬O냡¬ŠÂa|®CþäîëD`A<@„5bÇt¥•è~UbŽ}Õ# O›Ó5ËU;ýQÍŸ?dÉd¼„÷Pã_JH}͇g_-c‰£ÌwþPà{hY#r‡«C”S÷i¾–?À.‹ßA/MÓ k«J zr¡êòvúº&;:O‡ëA š›p“»–”râ`ݦSú!ÿ‰á—ŠEÛµÖÍ$„žÁç߯~Dš¦Ñßuü*Í—jß46qX!1£Õ©€‹ÐÚUƒ©oÝ[7Pæmí˜dÛ5&+Ê—{õÌ4ð‹[R¤ER­Hâ ¦IÊ(lÓ,a }ms÷ Z+þ½~›óž´þÙ¦=­)6À<}¸Ô²‰‰s]5Ëõl¸ÔžkNÓÙ4*mÉb–xú*ã'JPdï¬ Ob¾üóŠhSwÁK©+ÄîjëÇþHð$Â_[uø‰CñeÆØ¼¤"˜Œ[.%!”9aø×¢Iÿ¥ÙäàŒa9¿k€ÍJ´ï“c;z³Æõî º¤ýOÒ)ÆI=5ÜFEô›Ÿ LÏrª$ü‘’e¡Ú€.³â‚ÝØ 2ˆ­ÇîDÃt²š?Õm­±Ý³ò`å' §Kâ^N×Ô.ëÚ†ÓÞšŽ3gÉO›ÑrS#iV1ˆC;ȧâÕ¶ÔÖÁ¡‘Á¿z»…½ ·m¢U¾h(ÇÆb·Ôµ¬¿OÊbàÐ`RÆ€ËÄ÷JàXßNtmR_ŠíÝbÎé8‘Eßeas&õxÿ,·>›4JT]æ ¥¥<|Ãq#eç(o¯§ÌƒñƒêÈz‚™&Ö' óò hüó6Pñ«·]düºÊ![1BÇ:&Jê«•qûóï5]pé5²t ’µóbZd 9^ÖLUWì¶2ÞÛœÿ§ÖÄã»$u‘Rñì±²@Ÿ–žuÅž€B„ ý-{ætLöKHÎzÍÛ3]ˆ¶)¡à-:Íÿ+Ó GÐóê]´ÄlÆQi°o¯oã04ظ¹&ÈdüNv*s!ЛH¢6ì¡„¦'€ibûÇâ\é¿ KÉ(ùö»D¦ÿL¹.…Àt¸ý$ãÑòÞŠÑ‚¤†6bð …0µ×à*í(-ôç]A›aÙ‘—ë¡XviÔ›ôCÆ–.i·Vè(q_rìD¯”M¹Q×b;Á¥.;6¯:yT©QíËB[Fú«ñYœH€¥!“×hÂØOø›éΓð^*™€5XΰvUßDLß©5„»ÔU1Ä6@â1³`KíFs™Ç‡pè M ²§´Ö‰‰ ’-™ð=¿\[LŠ ÿaíéaE:_r¥ŸP}&ðH™>A™Íù„¸÷úM*!ñf®H/±âlwvÏÑ´r£&è$þ°ßŽ„¤X¹’§By£}àÎOµè‡§÷͉,dy1œDsD±Q‹ÜÕ£ýYËg?õØùpãiðØ²®Q¹²Ñý®wT#…ù¾‹zAugü7Ñ»Ýó¯@Åá¾áeOÖ¸á¿0Á4ËÚ™Kïãõ]s¢íÂ~Æ ÈC.›u†‹”w®)åR“fåÒj,þ™òyËå,E0NP'štv!ðr–ILkÛv ßù° ¯:þšÀ‘¢TT 91¿T ?•i–(,«%6ŠûtœÐï—{Ñk@5né°…à2܆cÎÃDl?š+†D«”÷ 9Jnw«^Žþ.U" ³§Eç? U{ó®å.Ä|öGØÂþ|¡ž©'¥k³ð§°a³ÔX{{õ)ª#úÛùÃ+»: yææeÂÅúàÖ“ g9Á½’”çÀµ]o±·R‹¡«úï Åz]Uµíˆlú§$ÿ4ôâõÚz¤ó-@@Ž¥‘{ë°ƒ¢a¤’ð¶[ÁFQyìêôš™ãÄ¡¿›97‘Ev’õÀÎ9‹ì…ÛË‹¦gægÔAêía¡Pð¢m,4Öô]ÝäÕ¢b9w4†›¨î—cHL2Kqεg_ÅQA³61®Þ[5éAûŠ|Ø$Bá5àØ°…ÚË‹j(BóŸÿ(mèê­õ·lõÁðC«>y:m4X;^µNyÂÜÍ2„gs*ȉü×톺k|¿UGÛxŸÍyÃ.ö7¡«i38â6Ï’KÂxEþöꑼ^°pÌÌÇüŽäÿ¸õ=©‚ǰê ·Dâ4{äZv†ƒFôØN§Â! #•Ô?oÒEÅédQónJg‚þ¥íò›Îœ€Â}ÑËë^GçÝ‚¥ód‰¶ë|È÷u÷øÊ`0òÂpÔÛŽìÇÑG¤Œ÷¶üç¯ÐZPH¥‚‚Ô®ÑÿhèšÊU{ ÷ÏEDX1"8OŽiç™þé]ËŒŽŠ²ú.-Fétµù¥†•–1þlŸ3öŸ2 ©6›RtáÚJÒlv%ùA¾þ&ÝÖŠåò1 ,‘ø&eR¼«’¯EYóö£ÅRÜ”s_ +5x2è8 zþ1JŠibßDý‹èÙ~tÐb{þcŸ4µX¯W»ï®b]ùÈc;÷Mebïïû²š©tŪү;ð¬m1–¼O)ù±Édb÷î$ˆ¥¯aµ«¯ bk–æ¡’+ æV0"ÂD]’Ñט㖺 ¨Ö¾Ý+‘ÁÔ>Y{£ëáæHS·qÎÅ Hð‚lQ\+T5pƒQRLÐ{…VyÁ¦¥`#mÅ䮯›jëÈ~ШÒ.Lï~ÞÚ‡ÅíÜ¿oÄY´Ú^Z¤Ôz²m«è¶“ËT4²y!7ÄÞݸy=¯Üe¶Ø‚ÇûF\Ç*­çãÿ‰cæÙø—“»$c{ÖU¶Å€ÖŒé—ÚÞ•Ñ"/!ñw´Lû°Ù-É‚1Ó‹e¸•›­Ÿˆ9÷×â¯î…120(^åL‡?êÂî½Ý/–ÙX¥¨¤H-/“ ú!Ô¤%ÒÕù©}·ç~ät‹Z¹‘×[ë·d£~>íaï_4JÎFJ'ÌÛkP„'¶×ÁOU›žþžÛœ:HšçÄW Ü‚HY¢­e®Y¢8ùv³Ÿ~ÂØÛ­®¹ÀKƒÌ·86¥–ù|Ÿü,!\7­ê}ôqË sUS?XÞÀSú©Áâ óaaé¾SöõÜëĨ#¼FÂÑ7"Øû¡eŽƒ ˃sÒ Û6ýzp|‰Öš•jg5Úù=™°Ïl=›‚]¦õ!Å‘‡!ÔëÆ3…|³Â¤^Ê€k2ClÚ'ƒ •»ç4~¸i”ÃeiyŒ õß0…‰{h¹Sµd°&¦‡‡[³d¿ƒ‹Òˆt†YRøà»·ú4¡x¼(†9Çã›Ý]•FÞ‘¸íH›ëÅ0„ϽŽx{YüF¼í®RYÔ9i#øeQÚ›d¬ªíé›Kí·þd{(ƒ8¿ƒÞr¶$# ƒðÛ•£Æœéÿ'¾ÝåXE}ã¿1F2à#§N#Ic;l¹«ÔÜ!FÀî%’Û~Vø½J?oâCÚó£÷ö¸ÿí0¶«Û¿‰­&¨0}?Aˆç0ŠÛÃ'¯º™´rÏ%¢*åS 5¶Ì\–M¼û4~ƒ/&H 3˜:Ü “ Ø×]yW±„ð³ÃµÉ©ytÔ)æ•â8f _µŽ_!CPlÿúÂÚÉÿç<í¥gŸìV™v˜’O¨¢§4Áq?¨mvïtÎö£|ÕgGÓ%£Ø›õõ½u#ínÓÛ Úaœm½a·Òn¸ÀL¦r‘!âí{àØ¾"ÐãQ‰yÞJè×Üš‡ªºQC]àl®$A+ž´·«‹®I¬9õZ÷dbKZBˆD øäÁøy–nžžEœ¾j;ð.•E>i#œI“žPâ5a•ÛÁâÆ¦½Ê4ïû,BK«Üø·QœõÀe²Q¥K<±œlx¶¡uûà†ˆ¬§ˆ"ìI€*yT–~Fî©S€xŒvF ËžhW¾Ä@²·…üÒ«${¥ô„!ý¿Û@*YÅ5•Ç\xÀÄl,D€Ú*í¤aÃVKÃvñÕÛ"àPflýÎü›EH?‰³xN&›æxûͪÉ›„/7 1Y¹9 iªåK¸²z¡/ûÿ¯ØGM°ÅªxŒlÁÕ&½»BëCÕ õ@d×KU;*™/#“ò¥t©c²3àyï@¤Ï”=a¤‰¢¨fkÁ´y R'SÎÖEò ˆ8Ù¶8R¬È¹ø`sã‘w;E”ìpîUcºê<±2M®äJÐ8:äe¶aª¦ÒZt Ñó§Ë}Û–N@Ô—ÈÇRUQwõ¦H5t)@‚ÿ…Ÿ wBoL¯ïY@!𺦥 VÔKY‹²¦“©@Ìb“)àйÇCWåWâzà Æ=ì²8ð®À›¶<úlã± ûkc$á%L„³é\\<¾ª‹"®9«@=ÝÀÃPÚþT€–—üCr—iˆ²1?û¤À{ÛÀ.3&„Q#ÊçÒ&ItÛq­U\>ÓjòÄz½\|¡¸o^V¸C‰fóGQîÒŒ%ܸ͑‰)¤@Ìõph‡a7ÿ…øÌ>õ¡p°Äž–ìÍnÏÃiÊ6Etò~öƒÄÏhHî/tÛ"¼íÂ"›:z´xˆB!i‹éeô¤P/-¿ÿžyÝ|8§ªw7¨…Ý1È›Nº¹K°ã€8¦Œ bb ÅP|9 j±s«O7û¨¬ÕÄÒÛË„$'ïþžãê˜eð4ê¯Ýö’œHúÕ:Ç’.o½5â‰hÎú÷4ŸÿK?ûQž¾ž‹ŠåB›Å@»j;ÝÖ¤ì|øÜÌ]PȤBø~••#@$g£ílB³ö0qÅ\•t°Y¥2Ç‚¢_­t.y³p ¾gAßqÿÝ0ÚYWìwÕ]²‘†þ´N’£+y‘·óy¬>U‡ä‡Ì8ÇùõÜôò9[ãœË@2dR¥)#óè`&r2FQÊ¢(è°±¡›¯¸³ ÄÝ÷Ø\D)üX(Õ»z?7a©#ø1+ÑÊ×~Ç÷kZ(úÙ¹5ê¢zì&\m(Òˆ\%¯ÉXýó«Hb½§ò<½G|pótÛåÃL­æý·ÃÞ\¨6 ;«´{F#“æ<"TGàîþ”“ß,~P«WÅp2x>Ò(9ßì¼²’imè=¼|ÂèUµ¸n{ý¥›•£ÜÕpó’Ðbç5Uöÿê‹” cR–í»e¶4ý_'óø˜¾ê„$Äå„Î6yåýY1­¯wqÆ]ý°a 1.å&EFÒX´˜–©( ó¶—ì÷®±Xî«!y¢»³qËY²¢,Œ!­LGX‰´í츾q±h4³:pº°)–dÙ¯ÃÉL‰Eò8q²£#]Œ\®–±E›¼VLaÀ÷ìh’„JöÓ#K-ò?qX£‰%Dó~G,E&£L[tžŒO((’¯Sp:Þ´/ªºì¼.= $ë4 —ÈØ(Ö/ð?fô)]û*fºwpRšòÂìJw!Ì\ë²›]ø$â‰8‰ážse!Â[b'="¦q 0wƒTW·Ô¨Ë± pUÎÁ™Û";½NÍ>bg× é MÁ•Tܤ{ѧ=º‹ï|Ö ]ÐÎØ{XÃHÌô‹¼<æuƒ¥v³ó4¿¬Àíú2AJ4(thî ²@© —¿´pÍ酟Úd~»±Nü0k¬4ô›s«wo·üE:¥Pj&GkÍýÊvÀ‚o¿ãUšš i5†IüR‰°¦[½2~Kå½gAh(Çá1š ”p¬¶åî#éÂeéÅ5¼`r‰–¸· ?g®ïžâ*áåú—þÉp?}Íøø5ë&ü'ð‹ÞŠšš ê§ß½Ù·4q…™¾6 Ú^‚åÒ_Ù=ÁªKèrš—ïMxÛ–yÆœ·Ó¼ CñÆH4лm»úÖ­×Ϫ-å*¨4š•‡a›¤°_òÅÏö"§‹ «‰— k-Ô ÚwoÂú÷µnÄpÜüòÒÛ8™wĺڽ§§„tи›MžD“{tkgO÷%ë…–ß M‚½p&tý/•þÎyàÑ.é V7ô½ŸBb&iò*Ƈ(¹}@Û6@¸/xáž°<Í‚¿Æ¸§åbøô¤Ø[ð´!‘’A¨3Ã_ÇËa2”M’1PC\øU¿«žJÿ¾íÿ6µo냑–B0÷ª¨HR±.3þâUM”Ú½…cSÕŠõU$½;t?#!•Øj ”³ Q·p%·baþøÉÕ—:ø¿-Y¨-Šˆ.ÅÏП–ù[ü.ià’ ¤{ä+~2ÖE¢1D:aw×'-'šÀ®·WÚØÙ'7¿æB’FA-O”¥äò6R¯IL½EÀó©Íн›™i@ Z np©ŽÁWû)玓ï¾J(mˆROh!ö@°¨Ã\—Œ+jÖ•çò¬®€…’ÛöªG3à+(€'§©FÊm¶›4x(!°ß;§½c1Íþóô½¯®,[`µ—¨ ·g_V…çÜwj`¡ëF›e†ƒèSҋѦ™f´^4æBmi½Îá©ùŒ¨kð²bÔ}5»íä’K~† ^Ðp=Úp›C¾‹1œÏ°«Kj'*p±ÒÆažÒ5¦d·Hïä` sÝx¥çM÷kƒt8c¿{ ”Ðö—]ù œ$ºØNmÂÊ̇Š)§4·ƒ `:0­®»Ï_P¦eQ\™V©*‹™’NÃH&¨â'Õì,SãÄßKô°$;K•ËjO}¿,6ƒ`uÞäj=À\äZDöSÕ,žŽhÌsžö0/ðib™·ûÞU“Ô„?ådú?¬>xϬÞCü¶bECs8DºàN‘#=øe±ÐG%îMŽZxâ›N†¯‹›Õ]R¶äãÉ8,qé™nJÿø?×SõN ’÷æÿh„vŠ H|z”ëA}rªDLmÁKvª}SC-e„V7ødÎd_»YÏCÆ×ø†S¹,¤Á4Džf5pÙ‹Îûàn™æª'È&Û ’yè3Ësp¡®ÿŠñc#Ç’…=ûMÍl­)^Û#{®ƒiSá¾ ÔOmä|u“!üßqAêÈe%í$:ui 䔼Ġ£\ñ¦âð׺¢²q5þ$cƒYšˆ®ñSàsRÆüx)®€Às6ë“ùŸtíÈ Þ[` HSlèj¼ÚxÑ+7)¾öÌ:Û”̈́ч8¥´ãt±(]ãÞ‚Ó^”k=þ&½Ñ,·:xQ¸ôÑ™¹¡Ô°®‡l¬Æ5ï¯íÍYá gË}IMy9¿1øî-רQ£ƒIe Ù9Œ—ü¯ ô\F´ý®b™ íÚ-›ÖÖêqßÒ!«½Gˆv†C¯>„31‹g×VàÂZyâÌF‡á¹M‚Ô çk‰¿ÇOBi—ªá/´K¥ ¡$+2i î_iQç2¹(«î¬)Ê ¨(e(*Þ“‰oCÈ‹´åÆ—¤eªÞÉXjiMëuïŽyä—øU é³ÞYµlþëê²UŒžC¦(Ü’ üý(Ĉ<‹v?`ª•î1û’éAè¢àèfÓ|² Á.ù*³ÿø`Uë+Ù!^ûX·f%½  Y¤0.üBTq·h?ÀT¤=’õ)­æ‚sk•¾ ýþ1Dý‚ù7[ó¶ïâL±: iº–ûTÉ%åñÁ«ÿ1ו˫a&>ƸçñG Ó/¼¡lê¿2/.‡)—hä=1ßF˜B;’ð@,Cþ(Á;~¥°œž 'ã0™ë³äÓ;ãïA…ïx[9W±‹”§&¢c)MáÔB‚=3ù“\\Bý£²ãw8½cEìQ›äˆúÇãw¢M(±®„6Ä èÂÅöóe¢¸w.l y§«eaÔÉ„h·ô«R†þãömÝÞN‘#gi $L÷êO/=aÝ©ÙßnØcI;wû"½ìÕÉZÔƒ N¦K]=w¼†Û¡OjáÁ邸k-”6ЩX0¾·Hyxs#X·ÜÆ@?†S”á¶FëžV*òÇ숬xºå‰Sî~ÿ2Çr¹Ãmk|~°_H„ÄÊ}ž–n¢¸Ò¢Â|i´m8¬š®—Ô0âÛê/ªÑŠ‚ÎÖ‘*ý5DÎ*TÊá53;¾Ü‚EŃ,¹:›Õ ðÔ¤ÍØ`ÁÍÙZÂõ£@º;MÏ¥ˆ1˜±³±*µu•Ò½0×öÜ?»ò¢+DÄ’Û-B®R4UÞ^ÏÇxG»‹ ±ºÍÒY7›² kÁ3I<Ú»Ma7ÇÌ.àôÛ²Wк܆ê¦S=üÙí—'œQÄ œÕÏv¹é„—ÖÉ^ :1m¡+’@¿} ø·K Wà#1ŒJ©ah}#/pE—5ëHJ°R©4²È]2+Ϫý×%²¬Üü>Ã)9•Ý\[]Öݳ¡óLF¬» …MÏÆú•cäÕ¶\r²d‘øsc8Åø÷çZÅ¥¬ƒ˜8öúñláP:%C*NTbŒBTt _~VÉkº8üu…Τë}­ˆÎ€‘×BA·èßVx‡õ@:¡IßjP(²höNÆ´…v†xŽ!vàðvÏäʱ„ÀSôT4.qñ>õ3Bä4„(ð¸¶èO2¤+Kæ;ñ_Z X=«¡îi¢ ¶-id.å·r›H©Fé³3Ý\-ó†ìíâⳆ£Ö${ÍϪ±Ñ—§îC·Ne„ ¬äTª»œ–ˆÏi¡ÐÑ1ìòÌ•m‡`Eìÿ}Tü¡q?Ê4r Á@‹Íh­iÀÐ(LÿÂ/8ÃMæÌ0ý÷wuÈa·/ÅèÚ2?;24x=ôs—/’NF·ÄVÁaaOgž¦bgˆ˜£5Ü[TÔ Œ$Ór¯œ£INõÃñ®>œÍ½`Pá°‡6rJ›‚Å_Šì¶ò¸µ[~ªb¥^KjQXì9ïL.à^Dzmx‚±^Ê=gÚxj}„W"jÜht?'Wª½i}’¤ïÙ«¹G˜’,Až¥¾ÕÅᣦxO[¶[>µâD0W.·” UµÙñí=ͳì¦'·º:Êó†S½ ]ad1µõ̉ª1ŠÅZÜ–_”OZ¿‹'ã+ÒœÝ$žœm{YNt{ÍCÒhoIbaaè~ƒú§3QK®ìµúûjÞ#W·øy¡Ñ-m˜íXÚ¤ÒV})<‡¸w¥<Ú²¨X»Dn×Áôá·ÑTj¯ÿºß1$ô€1šE8!0éût½/*£Œ¼~ù²Ù‘w«O¢a$_S6Á£|½Q‘;µ¨%_JL* è!g¯ê¦vñZÈÜN”Kº?¤«0–#öR*°Ã6óOª]Ž™¢Ê¶ "† +˜Û[äR5ãI–µÏå£ôj‘{»éTÙ2…éü±bS© D±(å„€i°@ç:#^ÄU³¾á”žª[¤©wSÎ?¤åQê»^£!)I `ƒÁýs_õ„ôƒ“·]p£ lÞQVCAÒ<„áà%â`ƲI<¢=r+};£ñcŸà¸¥1Ti•ZÅQÉ—ÉÍžeDÊë”=óûò¯öù{áìIø´‹~԰ܧcá®ÁçÞÌ| rIC®n‘9PÜ 2Ù0Ó9Ké‚Ô"'†C_¯$Ñoƒ*î"¡è~ðáAë×eo¯2²d)Á à`ßÚa˜ 𖏾¦¡‰ët°ùÃvl¤BäR3nŸòäW²2;ä17*бí)ÞÅ郢y€€²È™íøï"ôüE¸]Cÿ›3 ˜`79æQõ<:‰èÈ@ùÝ-¤ÛJ95ø_º²Õ^§¼Új3²C§3Cº2\û£ þÑkÏ×^û¸eó²ì±ÄBUž·áýÔQðv—BHPÖÚÏ‘ A4ýQë¹[žGÜI†U.ðHX[·Vj~@3Â,€ébACªô†æ¢Çõù«¸ÌóLCQ>©ÆÛ´µtŠs±,‰ƒ÷³£×O”« 0ëÊegDqz˜.*9½Ê¤VaCÂ''bm­/G¸D˜ß4d¬qF°fìƒ?O„¡ tÝH©—TM$sm艦a~÷¶k_g´ |âSŽ×0.Ûàël¨"¾¡™€lqQòæH¨Ð΀ón32}©L¤8>Àg¢Pp-õ‰ŒŒï–¨ã_…iMGÓ%u»<Ú QìÎÇN¿þêu TuSkAr˜Æ—˜´X÷‚Ø Ž©§)ÏèûË1tÎ87$€‘ÃpTœa}ý—žÒ}Ç¬Øæf™¢À¥+uVïq…‘¥r#öG»]ä²{”ƒ3d¢œ¥;jÌ»i9öˆi@ê+ñ#vÔRlLÈÊ¡M*:«™#åa_F™ÂN]–ÓõfêÞõ"] /vL+c:ïkÛ¬à’â²(ÈxšÒdv 9è·ƒgZ‚¦'¹Í’±=íÚ³¯[þº-¯h2¨z:su»c8‘—ݽGy­ôËæ»„Þ_Pd÷UÇžaЍÆ22ÓÂûýš€[qÓ ~™€D1}‚¤–÷´/3ÝW7ý×@Kˆ­üˆëÅ8pUC˜=â©ÑÙA·h/‘K÷}K';ús–ŠAßœŸ*È“‚ºe§çÓvæNÈÆi›ñÑ£qC‰ÉÁÕ‹ñÀ÷îìÜ-Šè,f)"Ä–¶Åº;ã ÁŸ)BÑMÂ1¿@î—û‰Ó´Z†"ÂÇt¡Rt‹èèóACöRý¦—º§¼¬>æ}nøJžÇ:BÁAÚcìó‡(S/’”{ì-ûC:˃„¥øš±!.1úš)ð6“¿¡_ôf×êg'iÏþ”Ï5‹ÑbQãS(­êÜÖWNï°ºTè衲ŽBOö›&Âó$iÀmê€\a‹t P[JÝ+m¤k]D_ ¦ùßìåªcÖ¯¾æÁ,𾄢†kTEûúž+À—uéd~ö—]窫ÆAáyÅZÈfD0ó ETĦ;tƒ›8`I6Ê«4‡xâ†O)KPYüt0„x¹dý%Ì] N0Vžæ)­o¹è3Cpç»ÁíE6YˆC‰Øxð˜w…Ü3Dòi¬žš7ÙTŽ7xO‡9ŸMb+åHÜÞŽqüG¤Mð"þÖÄwmCR·¢i°©Lx@Éü_%l|˜úØÄw$ÿÿ·[¿ï3YbE…wWÓôõpë ‡q98(ad)³UJ9ô&Ì0ÆTOµ›Z†¢ K½§çÑÏWû21þîœàÑ ?–÷K}͈•ˆ¢ë¾dT‰y™2ÏNÌ~¢¾(auh³µÅ00bûlìnúwßÁÜ"Ùd‰-‚ëIð–aku8 æ9µ„""Kg@ íˆÖq‡ýð„,·‡°~¤Å*Î.ú½”(¯(ã`pƒ£…ø¾O¶M,¶ÊóõñÜsöª²nf7ÆÜžfr"#h½ðìÇ>Ú¬-Z’ ¢Ü-Ûç>©h"@Ï­ä£LGã Æ3 õE“ÔdUoã#\|é4z¾ ºà-Ì»Î_—Üáí¥Õ¨„±—1&×h1R1é H§§¤äA….ym¤PI|CÏZ€†*­ •#ÙXZ¨þ¯Úy|/MU(Ò†oòD8η º„ôóc„¦ä"¨êù„›bžû†Wz'[ù{+ÄŒbF±&x8µ3,ç ÃmXÇòß2{KÕÎ%ì”·Ò5>³´ý«ÅTú2©"ݬœú ½‚BÉ ÛrÌÕLFh&¶îãÓÌ}žQôѽÈ ûçÄ69áj™ÉäÕ  QÊêÆæû¡¨ž[Ä*Ú>£vN¥P?&Q°‰‡E°rõÀ*Üý=NnõóUDç]=ƙě£ÀS½ø›{ávßM Hz\å÷Ó9C†ýµ}ò•L8 dh˜ÏüýV¨·d‘ q}i-ˆy¨ÜW­µ£æã—B9óëc D¬RQ%Ì™Ëécî®ró.ãjRpxè„2ãZ<ì‡Ö:|\:—°uß@)qL–LÇ ìΉUß¿D85_øó—“83H¸Ó‡z‡®Îé$ià¸PÖ¹ƒY°‚Èo÷Õ¶µÏƉ¨Xš}y5ÀVWÒþÜârÁžg«øm )r¯ç¡—¾Øâ2#WÖ(D1 Ks}ÚéÂæ/¤Çs¤@Õ=þ^…o‚_V:©ËØl8X·ÆÃú'€µLìØ ÆÒ (yó7íHµÙî¹½Y/ùù½üs˜%BUÚ5¥Ô1ê ç.'M9$ Ýx,ôqt®«çŸÓõ,Š Ÿ:J©Šƒ¦Êd'=Ç._ÚWk[JƒÛs¶Ú™µ´uŠFõÖ¹žäŠüsCà]û>eàýÜCä9]'‚•=¢r\|võÑÜ¡yäÇæš†%²’3rÁ¿ÀÄ9hv­ª`7B·D&…‰¾qŽæ£µ¤‚–røRà§j}L¢+¤än/„AÿZ‹P­ »!ÇÀ(y’¶Š”ô$Jà8ÿ€*ê‘-CÔûH¤8Øs^À¡ Øüº@1&ꉛ[ˆ¥Ñ“™<Ê„€3Ÿºþˆ‚3ñb†"ˆ I µ ø1Ù©¡¯H±²sfÙnÍèô¼œºÇàÅŒ!›Y”5­qb4Ã㕨ç•DMR²-aˆëÒðkB/Ìàðï‰j'ÌÜEhY‚$¤a z›é•yQ¿4\ìÜ.‰_öô J ¡Ù½äô98ìÒ”?–ÆÈO¦Î~`;Z­™\ÐôeìÉeÓ{­¼Ñ’ÑGµv‘Pj.?3×ÂG79O¸Oy}—{üÆ,¶ir3Å$ågd+á°nf ú€ï†ˆrh=†3° +iûÐßvŒ<'°ßii+KÕ&/ÆÔë-Aì·­ìb“¢løF]DaAª¥)‡N:IVØÜ‹cf÷O‡voo* ¯z ܬMnnraxdPFZ‰tR5„ÓðêS n8DKØw˜ KùŽW0Ø8„¿ù;(±°ù}ÅØM‡ìZÿÕuÆ]6=O Ve®®ªK0ÿèè¾Ðû5d•CÙ¿z.aôÁ¸ôÁx‡9T ’=^ú0*ˉUÎCA1¡/û²ƒÀê…#ˆoÕ•´4^~$=‚0}£çµe)l9º%FnWuœ‰6î<“;1Ú°L¾èÕS`£Ÿ]„mñÄêo’5át¥âÜïp›×n(žåø)? „^ÉlÌ|–CsGz©&ò´Ï÷ßgõ@òG­Î–ÇÙ79Îèq;Ôƒé´r@ÿ³U!ãhÖÜA»65èÎBuª¹…QcI­Q\cû 5ß0šBF6Wùã'?åzƒ­Ut¥GVF&WÆ<€âªÿzL‹#îÖ˜~ry´•C“½fβXùEÃŠÂÆ˜Η؟áäœ ÃV%µˆÖ«¢au»i»36‘auwå£ð~ð”ŠÃjaàÄ+~p™äeJO§¸xX)/ŽñÝÝ‘7g'“Í\+¢.¢\¶V¥üÕ¤¹jIi$ß1i%bž_ÍÐ?xïí¦Ç/@N‚¾ëtk[óöôÉ; –Žvq]3õZ˜uG[)ÊÆDY6¨|èU‹ƒš…(‘ÿZº|PívðE[ªåïñHÖœ'O€þc4Ñ"Ž],)ï‹{¿”C‰©_GüW¶kvÈõ YÉùc¶Ó Ìß­ƒ¹Ñ |‡Ô%Ò¹H²¶¤5SÝù«Bõ¼–'ù"¡ ñ¦ €××{R}JüŒW{ÐNÇÓ)z鈭¯î< ¢‡/NÔ92fQµÊ†t$‹ºõB¦sšôÛ9É —è’†G§ÿX;2)WÜõàÝâªj‚"Áa:ä¾%­`cÊ«iw|œ¾˜üp`Á»‚t6áS<‰›Ä ÈóÚKž¨OÝú•¶l jƒ·¶Ûsx†æÈ:lyKÂ2…r?J'hð€*È™FlˆQÃ1\f4vý¤DlÔâTÁ#[¯ËÚHNöÝ¢¼ 4è* Ûš–€Œ3ô~„´ÚotíY)_ržÌU‡*/qÀ³Ok>¨3Þ~oe”t0=Ù"S»² %ÿܳK»š#6G­V{ªÂøUÖ·È!¼¤­Ñ'Ç£ž1}ð|Ï®0Ü:¶o|R8ZÊìò[Ìýtú~ÞÑ{²Óx¹xI}Ìávvo=^r}8xm®zgœìÝ|!hU>¯Ž+€ S#6ÆØ}SAuK žƒÔ)F×}‡±©>“àBßÔEÇ5”[Ú'> Ë£_i¡ì¿±Ul6¿þq&͸¼HË׸/Ii‘1¶Q¶êÿÂÝý±ï€vi„åLýx^L_ÐO;è8¬z‚éÄ‹Y8¥wЮüOž ´¤«Ÿ‚¬ªÐPÞóµƒF¼ÔŒ–¸É£Mvƒ¥–¥D›/ˆžÚZ[ ž–õižÅ“Öà³vª ¼kÈ8*»]·@š9‰( C˜~ߟQðÇ?ÝK¤kjÔäü˜ºeE¬ìBè`…>ØxÄJÉx£ª3þ^¸ûÊÏ{9¥Ž0r0SæùDdp õ£bŒˆèC‚•,U± ùç½´eÛmú+ë,}DÇÕRá'âŸÃ)oÆëQ—¿o`!ðEòÙC®üè{Gªñ½ñƒé%þ¿2Á—|lóV•EŸøÂ¢3 éï4n¡mip%l_žÅ¿žöý~Ô„J'æ“,Þ ¸ 4µ…‚j‚ æÚ9’ýûPd1l,ej#‰ÐIÚ쇱;ÄJŸd¬ÂOï>Ú$—=yøŒ½»ÞV¡‡¶xào§ƒ±óæœ}‚‚’Ÿ¤Mâ\C8É@¨=¥ã¹jfêóUÿ#•£ùê Ócve ‡-d»>îS&øužÜVÏu·Ì8æQü+:˜ìê†Ù $ ôÆ…88P¤Û ž¢hÛºf?&J!vxÌ#â¦WqËTúSìÈI`Ñ (\¿Oû¥iì¿Õ Øî†¯š0ù+¦¸¼”a¹Î»æ Ûø|¹@\vŠ`ÁˆÅQד ³4ÑÙ°à¼Úòv‘ƒUÙ@–¿„­­Y¨‘ÌíCáO#ÛËi‚éKŒšù/¤àõY%™P®@ÎÉVeÉÖ¥r¼¹i•ú ]/mgÿ¾n%"”ß+*&ŽÉ&Ì0cÖ:«ea£Déõ–­ÞM¡rïàaE$¯ÀªuìÞ£ÕñIí›k2|§ÒàäK /@‚Ó¶¾ƒ4Ê‚L!§Ô£5§IÆLÍ´SBJI~þpÕ$µç.ó>‘þ¿û|$(øR¦wŸ*ÝFÅž'çE÷zfL¨ƒ­¾?NÐ|=~ú_î¥C*ˉ¹v JÚ¼(}=œkhPªd}f ¦EUžä嘣Ÿ"öâôëœÙT!Vº5]úN,û Bx͉i7ì‡1÷IôaÛ-hâ6×&… '¬–ª¼‡Ò{äû¨~iÿ «ª°§Ó–õáŠk‘÷S8×/K+qÒR¾8‚m¼ÕÐÁ©-¤“äêÇ3Šš„sàþ¾:êê’Žµ{?÷ñI@wk?§©e‡}Ëú/J1ˆ·[¹¦¿Î”•uU%ÞáÕ¶?ѸZ *ZR0BRè­Ã]Ý;i• v ›Ñ3$î?Iÿ•ò+ý"ãq1D¥œØPýÒÒ[¨¤ß¤ß`¼™ÉGY‘[Ê„óžßjã@g­;“lû Š=óŸò$1¿ìÛŠ3®1b–ŽÒrµVw»´´Èï ±uz`ªŽJÑ ´†ñy?/S; lémû4ëVbvÏΞµr¬—˜£y.Ûw–¯èŽŸç€|©NÕ…\ü•ÀHèP­Ç,Ž#T™:kXŒGÓ±ÖY§,qÀÍ{ñ½ò?y6—ëˆ'µ\S¶Ôw±d–ÊÏpÜ»’zVod÷t“¤•ÛsRN¢ñ£´¼npXuh·±4•M(eMÔ`¹Ê¡‚œ€zÝÐô™.n7$‹?OÜîå ÇŒVpjãÙÜv¤˜‚ªPÀ€x{âé,o¿I°w2®,@züÌ ö8ïk+7`?÷ýf+ƒ@ìËäçº"~~°”rôœF3ä -mÏÈâ>÷ޏPî(–´G¬÷ Š,í˜ìlNÇÕ«ÝÚWhä8_Åe.·Þ]¿Æ8aÆKù™Ú†ŸQA”†áåai=c;»}†²RRã“þ3G–ký'º¢­Ï~"î Û#7Ç}Ê{ü£ÿ0ÙJ㯀®SªÁLɶý³Ø«%„­*“»Ýu¿‘Ö’f~Ô‡‡ë%ÒaL-Áô/ÓtÄpÒ\ȶÑ0P¢Çˆ'Ÿ°'‰;ÃMVœ˜‘s@P=v€MY?z BíTLôG‚”™2Öd]ã)*…D Ûj„Ö­þþo Oýo´Ï7(ƒ]Nx[HLã‰U8#S3ýçŸiÉÜTì½­+%Âq×+ ‚ò›H²R9Kƒ¾bõ]´”!—LÒÞÒ”ÏòY–Ç†Êf:A°âª™¤ ±f' wV轄V˵ªIÀ¤_ ‹Q <"®?uªH˜_qµò“YLdìÓ7eëæÌ~htOAžŠÅcVN+¥sD÷çýŒrhÑC,ôó¿A†ÇƨþŠÛU ˜AIõw¥üóV¸ "gK÷]`¯ŠkˆƒL6¢4ìp53퉊l=Oy^M“íhW`dÕ6xMYºNlýø'£òx`¨ØE‰Ÿ6ÂéÏ}/j#Aäp…ôu>A°‘Œ¸öÓü.$NܶsIø+"­Ú[ÖIjʈa L<3”ˆ¬@pbü¸r…+Žp¬…5åïÑí÷NÙ6¼ßdl;wä 'û1Ä/ØYeþ³´ñþ¡HÅ;³Â­s”÷Ú¥¤Ž{@ÒXGè¶¹É>™Ek,P`Ž3Õ„UØ 8ƒ!òqq›p·@HŪ<–gF„Ý´ü†]}9Tù#¹&r9Ðù?äR4‡FßM™ê¼®ú‘“n:K}X VÆŸQo·h ‰wÍEžÎÛS–CÕ. îÃÍ9ë"GÇ›’ìZøô˜Ž‹À:ÏÚò¶kx™’}ÞÑ|>óV½ë*ç„Ë`DÚ5HDS‡“ÌQ`)ÿ…œÙ×bær†“ÒA˜/öO »ëV¼ïSùv5޾`‰w•Ã5iÈ]Ö êuòl;êrC |†œ°ïºÌ¸ŒˆrhW9ÞáÔút4*õŒ¢çwÀŒÒ¼¬c»qöU´ÅöçÇû:JO"ªrÕTÜÊäcÓ*?Fƒå+„^|Úœœ°Kõ·~ ài¹Äz§Çâ¿I’‡ DóŠ=¢+;ª¾ ²K·Ñ¯ ç8X'Æ“7˱ I¶å(YP9Þû@@PÆÜü·÷“)$rdg€Ø-)Ռ㩯†êž:ò›Þ,&FœêXgg·2!/#1J»_Ñ®Áæbã¡M4©òU»µ†êÐ¥UÇ‹äß²±rnŒ<¾àªˆÒŠSP¤`½æHª’hÜ{áðz¦G]ž¸F³€¦û½1CÚq(Êíl  9É}M]Éa¢qLðÛ+c 8¡wYM%‹šÍiL¨‚5Ð~íÑkæf_®–ÀuȾjJ¨KDVSp5ýîLšãçE¾R2ù” » &¶¡6ˆI³#²§~ïšêå?=V˜·øÃü˜ï§5›6„mR¥xÇŠ¤cJ=yD†ÂÅ©Ð\²ðŒƒ@h^jŠ|À2“âAGG£#¦×”PÛiïͻцþ°Ð›¹“ ¬À<•âRœ‡–‡R‡Ý-~ÁöU ZµteÙ ×ã»e ÜŠç¿ÓÉç™åa4ÝSqÍø¢õ¹mÿ%äÒz¡NJµîa—tÿ:¿õ—_e†üŸ‹;¸~Wùò^W8Üò½‹ *¤–ø–/×".2e„ÐPŸpÁs…LÒG3c.Òö8ùñS»¸1ƒiÝFNiÖà´€æ\Pt öµìÕ`ññ7Yyj4Ý©å›%-y¾Ä ju_T_RVã!$éÃâ@H°[\®­3sŽÖâV¦mkx/–Gë&†oåæUÄ7l3I~«· ƒŽ¼6Ÿ =¤ÿT݌׈PŸP&0àL‚õ×%Ó…2¦U &vžhmÑy+OGí8| ŸÝ A¿$ôt3Áo^~?5vƒÂ4ÿ»,Òuö î’Þ@ˆõù…¡siÞh¨yì½EÑ~»m‹Í9,âó†PM– úá'þ“üZ«¶2å*|–çZ‚[S(¦¢~ô¯­˜€“‘/-Œt.à¤ߪ gçÖmÜ0¦¡‚©V?÷ç§9÷}àÆU.-Uƒ5ð¦˜ú·züÂÁ\Ѧz…± ¸Š˜Ôg%:T|PkNÒ…lC"C÷À u’_=÷²í"|^¶j»›ƒŒ˜º¨‘y`¦YØ#-zwÐÀ2„Ý„£€#O|wÎ TIñ;4 @Ó¢Â#áàÔhíÎêz-A+e‡­á¯*É |ÌXúù¤ë$DÌñk‰7Ÿë6òÊr8ß½onñû„iE»ÜâÞX…È |þ¼Ï!ʃüá3óëx³È·¶+q²¨á·mznÄ÷+‚¥ØôŒ xfíßMV`˸byÚË xíc#HAþÔì3•½ˆÆo$ ".­%è÷ÍI™ 1a)ËÞš\DÇ<¤½K?åºÝ†[G} ›/i]-žïû|0’3‘·sî«FÏ«¼?l6ô¢ù¼¸‰.@LêþQ—X„áù¨’uü C¢1ÛLg…n-Á?ÜRUrZ7è£RXJc8íÉíÛŠf2´ Ei+cØÖoÌŠ+YÞ„ÙêÉa¤ ŠAÛÁ$ ?Ô.­vœg÷ÇœzVè¡<§.zš]K¹ÙFWÁê¬à.›œC­8Ð8Æ 4‘¿Òbj•§3Jëlf­“Ö gÄèt`fÛãk Ù[ó-ØåmÀ<„0ƒIaåÕSJk_GŽÏVEÇÜÇ´¶2š¯LzF8µÐhHSGgˆå$‡çµm¸¥ö›†“ƒ¼ùã!R*“:¹ÒS”4mñ±Föb™J±¢ú˜_°‹¯Ú|¨N˜ydzÝ€d'ED?á'©·ÅØDjY5mxLkÅ]°b Ç!ÐÛ*ò7*Œ‘\芋gÿj]ˆ~ÛåÉ‚|8)%_rŽ}äÔp9üÖTšZåˆK#EijÌòõrº¯ßÑÎI‰QÖ7^pÙ“Ë)Jqó õq-ӆà f¿µç’ÃôˆÞ²Ý Ÿn?3ÏW*ù|wÏ"[F9HðäGiËë­ ãëü÷u÷™äÐ6³xÂŒ>®Ú¢+%г{EÄÝ}ÓâßlL|ãŪPfPá×À¢¶DHœTñ¤ð;_u8X£=nhú\$®ASÕT5/ˆÆ­g’Ké¾ÓI£ÖÔ¶ç•‹W€¬¾Å¡ãŒÓ²Š3=Ý‹eX‹P/Œ¸ûø·c ”ƒ²qš¥²t¸ÂWE·LqÍ”, '3¶Ã†‡¦€á-.Ï¢²s¬pÛmZî®»¯õïÅ”ÑI17jy¯ó^ƒ‚ã:Q|åöñÈxR‹ãÁÐSß·.ÆÈÒƒ­úgYS²‘_Ž •½C¢ì›bïɃ…‡iq¿‰J4žJØémÇj×RAëxOATq³DÊk©ŸÐIj9ßF\É0sÐcïÖÈáðBA4ÀóªñzáÕ) Üæ{.IìTÎäÀé³sÉùYæÃýTú"Uö1@\|'Ò®-8žbH##qúòû­vj…Ù‹†ÿ‡d†)Næ2aŒ`ß'©l™ýJýwŸ†ù:ø<½•¢ñÛ|ìD˜—íäo5P#é$pÃÜVñÃ^Ë5n´Ó‹¤:ÅV—Ïk]MFÞ˜‡£ùZyˆ©Ä¦ž•#±÷[Á.©n_%z–°MÀH˜¼qâe–Ǽ\Á‘9¿xÑǤ›¶Á©ˆ4Z.“<¾Ó±Î88Yï¶ËK Î[„5ñßCµ;øú¯¹UQ˜C%ÄzCldsó¬úcâNÜT›Œ²W ¤®Ÿ×¦ÇÛä‡ï¾%úØ:z,a.Ì9„/Ñ0Ú'«oSsÚì½æ éD`ÝêNQ¼È7˘ú#ýsKN þdöÁ«úýØš{%KMîzkxž£ù9]›µ7b*&SÃ}wOÚŽ¸‰f“iC΢HÖ9eõ}5•Õ`À;aŒzdèi@jPmü”ÿ >mãÿ|,EPœó¬"œñì˜@—9–ÿ•`ï|S5\]òÂûŒ€‹×x2ð|S¢u…hc¹­w%Á¢(¡ÙuÒÎÁŰâ3')üúñ\ò/,|ÜE²#ˆ–e§ØZ{Ôs"\ˆ*æïl @ô!øå¨§Õáµ ”Kά(•O€”5DFM7Æ¿ÄÆº²·h,U*’ÖFŠB“ª)4«Ëži&ñ û©>O4-ò‘dÀ¿uÝ5ïïcm6ªÙ)H©G¬X2é°xºü–»s†~È•òµg,Âç–ƒËA›n®Žïz?F™ÓÿSí›´‹Ð­4ÉKÜøpŒéÆqÎþîZOÛ‰‹|¿—¦Šf=z1áì¿äžn'Z6~C„èe ºÌ7¸ÈŠ—Á/Ë«—Ðø(KrQl@µŸŠ ¿Gj¸J˜ Êéi@+¤hGÝ[%±ºý¶ 6,²ÕÊOÂ?Üþ'FUNÑàÞdï-áÈÀvÑLJXæÀ"›®¡&ôÊj†œ,£!1Fòk:È5YÍJõÂ4æÁY’ #Ð9mx±Ê#ŒùIÌ:Ç®·úYøõûÐÌ M\œâ¬0ÍSUZÆÄFŒòüŠ'LZ]'B(˜š/‹H³ a㯠ÜnyÁŸ±TÏèPç’y;nøÛ:(dÅjð.6ˆòœK”(=ˆƒ2@fBíUʺ2ëÈTŠA#LOn÷Èua2uœˆ ÀÅ á0JcöÁÊ.uõa‹r O]ƒôëöo„¶yáG€£?ÛÁ†³Þ2Di©»?|%sͱ˺[P~½ÜW~™¸”„892Šò¶ x¡ƒú8g{©Séθ0xVHÁÔè'÷ÞúÕÙ…lóÛSFM4½‡å´©w*ÍÑGtõÖ„C! XûAê/̇ÚdU›ˆE‹1!%bdN¬mô¦¤ú7³Y?Èm²û’ì‘R]Ä|%*D‚.òŒä‰•BNêÉ!55$­!™ÞÛÀºÞ)\Š«¾±°ñ”ûGR‚j VF cÒÖõ¬rsuFvûÇN‡¤Ûeçò§I.&°MËDK[ļ]†  ÿH3€9éªR*>9…׎”Þ/Ò…x;=•— ±xêxŸ-2®j M‡›ý3İnªcÅÞŽ%Êó^ÎÄqá`ЖQKR×…qËू!“2—Áeþˆ¸K Ó(Œ@q*ð©A†—aL“ü‘)±‘J™3ÑÚüƒìY pÎÍGCê}`-$í–½|_¢€tí4Q»ˆ^Ò%KÈ»’™. ÝðºŸiÔt±2¤µæ¾ûÞøÎ Jãç¨hr¤Ý›Aø¨á ¦^ÐZùyª­ƒò}TÒ{é;Êd+DøÏ9M/WÀžEPÙB‡Ü ±çh„Ó{ßåN̬Å(ÅÍøoDqðŸJ{qüƒ€j–v¨|"£·ØÃ !h=ƒ;[*lªåÛ⊠Íqj=$~³`þrìÝš 7•¡äOG ìá¿D#°ïµ×ëüŠ ÒÒ?ßJž“i¬îÙ2¶uðÇÿì´ãX,VgÒ’zT¬sŸ¦|LŒÿó `Φoꄾ3ÃJBL8æË´ÏXI ‚·¿¨wl¯¤ÞI^±ÖƒFceo¥î«'[kÄøç\½zéP„»˜r|jÚn«–ÂãäO5z‹ ‡;2%Ìçu2°øOkÌ‹^w|+cK7oT³Þæ,B©ýR™@Y ;„䩦µ„.wÔÍN|‚ðe Í%Û^]3U‹ˆè‰Õò]îÉ'µÔP±\ç¤ÌC¯|Á¯_OµÓj›jJ7šÝU¼m÷©GA3hS Ò#`•‹›oÞTæµ#o99(béÆ<Íã[€ÙQa65»}ó„Uü<¥‹ÿj5ü>’ìbzHxŒ$d©„ ²;uñ±KyjĘ:á^RÙþW؃ðX-ïÒ—W)ꯣ—'«U=A#1ô9•ÅôLòìe ñËdI™ò:nH• GS²t¸pP ÌÊÀ%ìªÝ°Žr|&b²¾QÀ®Áýn|Ûy„úlh–˜©®%Uºy|¡ÌZœ«+@×d§H“ä #æ?@]Ĩ ím €¤{8qï·Ùµ[Xh&mµK£ÏL¶)ë8›±$¯ð½±ÆÖYìtL+r9xrñ!|ÍåC ÙéòÖ©Ÿ¦ø â·©]£ò2S¥È¡¤qt!¹‰ÇÏŒIþ§®¶Q´ 2±¹‡Ød¬¯h›KC3(ˆ@éáÄtÝVOŠf?±/°YLô¯Xy$Ü0 VíXàEvœÔ,‰g ŸÇO|¸™ÔÚ,ëT}{ðcÁ>AKµñÚ ùtÉî…àà…/jN%J©pY…SY¯D[S\Á,6Îvß—Çç®’’&A‚¢Î­Â Àü±ºxågXŠjØñ,µÉgpüã¿?ù`o¿^ìV…,ë³\Íe/±–°{Eªxÿ‰ß̸ÔÖ•äCÌâ°‡àW>¥’÷›N7GàS–rÿQä!/¨DoïÌÈ?úW»>üªy9ùc„ü¹ó†þ~<ù5™#~j+o–Íi‚¯\ô HÊW€]ï,k™¾qŽ·[ñuƺT©=Q«øœñ k"É/ulØ¿Gü3ÌÕL‘WÁ½¦Q­A—|Nô…ì‡î»ûÎh}Vs¨+(ÿÛž‚t(âøõá8’3ȶ”Iv«xí˜ii_Ô<<|8—K'ÒcÐú®¿Aøi!Ö&p6~ÿ‰r':ƒ×6\?íôºÖªo,ÈÚÍ=u&¢ç—©nh28äèÇ ð£õ;_=Üèè'‘‘¡§?²$);½mG¢zšca¦¶|Y±Ðn‘I¨/¶ÖE4¦7}'þ‚—ØV¹îÚ·8„ìÝçÙg»EÔqLKÊ`¡Ë‚2ÃØuŽ®;¢ÔÉâþ‘‹Ë~f9oQAmœAáѪ¬èk[«­mÚŠ`Ö`‡í«Á\½}½\ø–’˜­·SøÖÛÎDix np¶¡Ç+ÄN1¿f[oØû¦H%¶ya©#ùy–ÿ˜Xs0ú¯¡Ç£‘ç!l»týÝAO/DÕ7­$ Ó¼à7‡#G£nEvå K2ÿýE&zÈunÇÏ4ý-iŸ„`tg‡ÂÚ“·?0fÒ´ÿu¯as!®ªHÓ_1q\q¡?hžõØÆç ²}, œË(ÚtŽhχÚJ;–Ñf,É+ÿ²^ÅÐt:%cÊÏ(mQsºŸÈ6-r&Ý82°œÊ¿)v ´6°§ÇuY­3€Elq°³)·QbÒHþ‚vü9†Œ§¦Œ½ÓàÀíÆMdÖiˆ'¦"$O¢Ä&\šöÒKuÔ4õʾ.¼¨âÿa²ÓúŠ Äþ'§O˜åœ[¤ÐGÿS¡ìbÖˆµ¡óehÒ]£8Pàp1yŸwÏø|Íw2SRÖ¨N€æ:j­`»TDïõ¾Å‰áP`îí¸²‚{rV—Ž=X5{fSO™„¼ï†”rR¤ÓâÀÏe”q%kgwó)çˆ@[”)v[K®Çm%¾4©ôÌY¬/TÑí CèŽÞÖ¨¨ gÙ.ÜWùÂÑi´:âÌ–…ª˜ua‹BD&–ƒLq ]Ÿ uöƒ=>Ž­±Ë“ÿCnxH"“±¦¢q/ÓÒ„–X_üÏÆ ­iß ü;Ŧ(Dñ{"fìF´!®s }Â(i {ï=Œ®šTfÃýP¦–’–1¾¤£ì`RtàbÑ¡d>ÍíÍIT>À˜&Û·ðZZ&ŸÖijj•“Px<ÞÙ`1‰M{â§8œ¿Â#XIl¡"”¦ñ,£_ZGÜý Ÿ½•Íž¤™'Rò¶™ãCW©™ý­+˜Òfõ)Qbq3Ü6_ ßZ„TáOF/Þ~%¹;¾×rFNš¸¨þ„éÇ?çRö;íȲuÅ3.­}PÉѯ‘l:pª|,/5ûÜG’ #Àmca¸§ó¾;€«vUÏšõ'Êsù’»ú쉓 Kªx0¬¢*å +¹1¿ÕÒÈØmç ¡ƒ`ÿC|a`9Å}ÙÂŽðiÐU!:‡Û`v¢ÜæwÙœ+™þ6U´ß™ÔLõ¦½p©ðÿUƒ[@'pÚð½BmÌRI[A6ïl)؃„a®É±lÀÌÔ¼'š¯à 7·í±¼áuC9µp¥Œ¢@¼Õle¬Ò”ŽSyò F%¦ÎFœàÍýZº²“ÆYw[x#Ç W™[˜¬)À¡å‡„Å^–|ÓN»dÇ™(®V™q9*¤¿q-e³\›µŒådÇÕ-t–c»œ¬„3׫‚bmXJ ÷bê¾~°ßºÓÑ<U³U9—u4bpxfÄþÆ$=KÙiƤ\!Ì®¨+u ;&Éús«qáý8ë&í`TÏ (’Pv,`çì¾Ö–HõºÃzrdVHͤ˜ ºZM)kýe)`¯~—??5hãåQ$¥Î|2®ctØ¢¿TŸÑÀº +Š©s€—ŸÊLb\þnC qÅöHÆnÒÇíŽê~~‚ü ™p`Ì9  ­0àñ F6.¬>¥ììt8<ÜKJÒG ÙÍò~F¹XV¾QÂýª¾jÿ½•$ ÌÒäcÄ0¼ªÙ¢tWË1DMÔë_KJšá˜Ô9Iª }@ nOÖÆ(Öu)xsºwìž&mÁ¨âbjUvѲwJ» Íy>$·±¸h2nšª O´VQ<úkúqçâ2z€$ËŽÂk¿}àÉŽ[ë‡j¤˜¾ÆöûœƒÍ6²€{¿Lš3Ò´Íö¤Mr‰Âi1 TT…“šn‹«°`_Ý–»‚ôZü”]džM‘™…ð1 »ICy, Ø Ôµ9 ,œP¨3a@¸¥cn…îØI×éòé/q¾Î #ºÚØ Ú¢_¾[ LÊ‚´å.üT+¸!$Á‡+ Æ‚—½Ø9 1Å‘2Q9&+Ö1ƒÏ4…Ķ@:ÐŒïõIݶµr #`b «ûhÉ8ŸéöWCê\æt­}\voFÛÊ£¦Î¢qв:r`L~Yù†ò8‰á˜`ª)ÛÙËU{ÿâü5?æA¯8„K¯g6wJôR˜¸°Õd‹–AøÙ •鎞×`=6)š[. É^úw;óÐ@Æòs m9xÒÀaý\];–FbX²IYÀ¿þ¯¹î:zzxˆA£y/‡ÎB]§=6U¾Ë³{[§¸3ìˆg_ [Ñÿ9¬ìNÖ(¡›ú–-µ‰*d´œ‘ƒ9M<(º¾{ŠËÚ¤iöA,|¡t†2Ã8åeÁo<¯¼¡y]KÑ~Ž¿>˜ we˜ýãéžôYï™Hš¼?ÿv = SV‚”ÃTüÂÙ¢"kaö×Ð$‰^ô̾Íbµ›èµ^»A¼È“RabQ<ÏQ™Ìif·ÿš}OêA£«ñáï`±_8v°iÚzG1 Ö)biöÓϤÛ~wXê„¶;CN¨ÞëÄïYK g‡š˜Ö–²Ô¼ã<Æ%—Zu®ÅîÎþv¶ûS1$×ËM— ³ þÅ]³èñ™\]Ü3Ñ i.3¼…š6»¦<á4m¶·„ðñz°ËñLUÑ"‹‹ˆ8Ç!*ÛÄ>­¶ü­,ôß[Ó†6ŽÊïäg8ÅO®oá ÎÅ©Pï6l âl6èû ST¿+é¦B%T=•QÂyÕq„ŒÌup"ëΔðHk\{-½w6¦ì"ùÅõ{£‘>I6œœäô¨Ïzióu/TÅÔEÁEV4±‹HšµÔnMÄ*ª:‡pè»GïEõ.o˜{Ó‘,r” …íþmõëu%} ™U—$j^LŠáCÙXW‡qÙÃúÐuÄóiïùáÑ}3ørxØÂ¿ %ëŒÕ€&ým9.Ø!ssCl_É3Ôs°zh Ã)ɯ3yAÊè›Yp® Q'.CW:¤É)ÞrLj\·Ã™ t]69ZÆ,a æv€x.hÅ?)wÞ4ô;´çJ`tefÄʽàdrtÅÑC¹JGCš´Å02­Ù]ЗEŠÔé°H0¿{N"4Á(‹]7œò˸Ðc”Ðu»} ¸Ï8Ó#'E6«É½^+ƒêBŒ¬?®”·Ï.‚ÄmJØAÆì[±ýó‰ïÓkÐï iÁè¬Îú¹>ç¸Æ0Ú3HËË·¤’ 'äÞ&Ñ|øU‰d>XPuÃð7) –Î[ ß#d WœR^ê1ˆû 8ÉA%QùF‡G¾Ú„OÛK{ÿI» úž“¥Å*hN>>¢ï­õÍÌԤȺ3••¬—š%€’ƒe˜PÁI)µkÄ @ T,Sªèws/’ÙЇÁ;¢·…¶æûOÓåóRú (D,¼‘þ#¡ Â*ˆÇƒ¤0åü(–þjÏœö´³fLæhkâë€rˆyƉ×7¨# r܃¤˜ÁáÑóÏ…^}>‰÷2!­®õC£Þ*B@¸JjãÊf@·æºúSºå ƒŒ.L.Þ%ž$C›Žùow>8ñ!†xàô¾]ò[<ºõùþ/mc²®¦«ÒêΖaÇ”º¦U-]k<½z«gøhAõüÚ 2Ÿy4¬ˆ8tjQoÛå™kø‰xq?“?¶Qrè!€ìɥ˗@]Ûõª$©E*â%uH^gÄyZ¢ýŒ×aˆí-ùæ!³}¥>=ñ)Ã1]Éîlhs¸Ð=ãayEn@Ýü´Éçd‚†3òÁÞN×®ˆH'ªžÍïÜîÄ#çþpÔÆ%å2ñìû¾0õßæÄœãúnm‰XõÜ}Þ¥¼&Õr} (Ùý‡Û`Nñ Ρ ï¦2Jù?×$ Çз{MeÞýØ· »ë0D±‘½ƒÀ 'á]V1v#f)a¿ñÀBë<ë¤à‰:tÊTÈP–"+_I7åh^znÓV!gªçeœÇ^2‚¿ :òobC»æiÒäÊÁÃP%{` Ø¢7Ÿ‹%ÎP *s$í%Ǿ^íhIë+1Õ²¢¼rð+*Æá³«ß”…óª¼A#DiÀ¼µ£Í¾s{ 1YÚWDùϱ ÀÍ]ãtÔÐ÷Ç›hKi½e¬ÊáV¸}Ø¥nSçE?Sb í_bÎÖÍQ^ÚêA—•‡b3ö©Tø4‰&G¸^ÒfœœN|$ú-ò€Ýwêʇð€Ì¯¤¶ëø R>¯šÕ®>j>ƒ™ ÀàÉáXoÐjeçNÃ,ßYíœ$¨îÒDÊ;KN.dL±¢¨šëGòw—§áÈ öyöÌñËá‘ITlt«~K†¼ZI¶†=§í)|6­"£ÐŸÕCŸRXj‚½Æ^ í^ŸˆækÆXÈù“æÁrß>²mÕWvÂYLé“RÆc_œ„yè­†¿ûý\}oµt¤øŸ´*Kå~‘.â²]µ%S^êE‹•ÕiÜ®Þ~+õœYð·‡ièkOtÕÈj¸E&ƒ¨ÞtŠýäaZªŠ<=`"JÂOÒÀ>Qþ»(Øs¡ÞÚ<ÌŠ¨?5U"ÈH8%êuÁIä!ÕC{šü{ ˜]£!À a%¾¯Èß>7sOšJ÷Kk p­íÓò:èg äTY-|ïŠgéJÀÊSõ%lÛ+4ZDLMÞñGUDz|jH_Œp~‹»d ŽÖ±|ö±ÃÔÌ ¹ëS ‚{'eÛ½#1a¤……ºÓ¢ê.ÂhéCwIæ7SCÍÍBüvzÞ­dAÿ6Õq­G!‘‰¿ö#“ó`ÐüÇ6Ý—o©‰Ê’rˈôø Š'têô^+gߘˆØ8ÀC¥ªˆÕr¸) ¡ÂÂEskqLßtEìÿpïþáÀéœ µ©k ¨èÂ_Æ¥C;Ewwþ°Œµ ‹áD“t—1¹ s¨ÞùÜÖäe—wãÀXf H+¡kwY%`Ö´p€ëyËnsæJ!Ëp½>Ü:1Üp/ô/$^º³_Bâ2X+1ߢ¬²(#™Ý¥|iQÆ‚açÖ¸Á‡*ÒÝï÷ðí¯ïüDd5(daê)L­™¿ªÏº9ÌS×îZ÷¢U•þ„äTÌÓoŽéJÆBŽ>1žxó™2<ݼ, ÓQšÅ&)¾ oC­ÛQ¶vÿ´ÅÔÏ^¤Mý¯¾A?.dÎÃõBþBG/›![@õ] ÖüÎÝ‹…û°Ú>,œa?)UÉÛ³ÚÈüV)‹4¼×À"[|z÷­t‘ fP}cK´;¬pIËÝ$ [ŒžV^•<+©n»=Šfzæ¼bÝ´L ÆE‰h˜®@žúOžC}Ä©x= :ùì3,ÕuÁl“5ºÊƒ”yÒðoÞrÙàÈÍœ¾¹¿î­KENv´{&îÀ§ö×Y ó2´'Ö5˜Sm†z¨#¬²ó w\”½SJ æÝ"îâq¯ýdÄüqg묵î²Î7ï«Ó¯ýÝ’üñžujßõ…§ C„<ÙFÃû[Ip³/Ý…5b…ßAÜNÇáD¶hÎÊYŸ7sì)ŸÝT:ëœëú»UR&tKÒõ£ðßõÏuĤ–•T¯x(®s£e!1&³æ[½<§9±ËïÓ‡K$ԇΞöB²ó"jÏ”5Ž6¯±¦³-®µYãl%Ú.Óág :Ö9fJçLþÛÜ Çã$Š=d]Ÿïõ««ŠTLüü°+D’€˜v>„ÎS´ì‡ªH?~‹ 4ϼœhI×lóáóÏ“"ÔÀ·aL+¦“r $Á•Èv$‚ƒcî‚7BSPš?_¡·ÛpºÎ ÷°À‡jÃØYôjA–t‘ª[(Ñ"¯•‚‡’0†vwÑ.¤ÇE“+Vݵ÷c/‰÷rkM5J¤ÜþºÓ7ÿï’v˜u¼ùÙmDu"X b»y ÄÈý—»OýU J¯ð=°&»2±ã†Ud²ÒêÓ'PêSb# )‰£;äê }þ²–èW¥¹‹¾hrÀu}ñ¢ÿQEì/½À»<Ìú¹¡t†‡ŸO>ä\¶ÍÅ'v}øu$%Élìt±zÊÍHoû„KŠžxîè<ÙŃRüùqÊ“ŒøW–W¼ø¦Š&?Àÿz÷aà…ïÙxog÷ox¯$»¿øfú4P®A©ÚÇE)c‰uÄ8$£|ŒÒ†T° ®ôKk8ߣòaÛ»HÖ¥÷¼Èô·¡—WwῨf>ÃÎS 7C{ƒT…«¿E©©PƒË‡ ÖÉÁxØ[YðÅßál˜Ð–ý©e)¬fÏhþÚŸìÛèê^$/¿šiJ'@evãˆb-¾æ<6Ò·öWiЧ€êÀ)™Ò¥ù¹ÀÀ? …™ÿÁêãÀ \ô?R²0â& 8K¬Õ ¡¾œ‹”9úO¦rø¥Ô}^'^QWdm5Û³©Fuêþºš©³ÂÕ³>d]9ÐÈ—P­®”½}a40æ/ÓáÑ&ø%/åCM(ˆªé0ÒcOƉ`AäÕx|ö \§Imµ^t¶¤6£«éÇï=ãˆxÓOAù 6ÊäPޏ\ÕbH3‹E\,]DÄÉñ2 *¾aÕ\Ék-yŒ•ÁŸ‹ô¼±!ókÏÐ4ýNÆÚÈ^Xåý›qqf @Ó;î~€»‹ÿ®”P ]rŠ´áq½ŽÂ‘S_H%hÛ,?ñ$î_ëœ5EVöË „Þýçó%™~x¹Ø¿ÒÀuOô×¢C?†È†¹ÍÜíô+2œ¢5LlGnfÇ´‡¸Ê*v³½µÜbÛ(‰ÊžÎRt‹O3œ{’ÉKùêÝ[fN-ÈÊÿ”óm˜"ž )š~–ÿ€ðIš±°ÞGìy ¨ÑpJ¯(˜oŽ Zù ƒæ]w¯Tfû…À™ÜÀû¬C©&ÃæOÔ@eŽÛ›Üã~ˆã,bÑ=Ó/5/^&t­Hºø2O‹¸¿™ôãÖêG(‹«ëšßy·®à²|7ab «Xž›Ùç ÊN€„^#¹¤±icE¦ú\Ò ÛŸœ„j ƒ‰+º¶ð˜êâ c7%k¬nΖ¸ºôjXÍ*™IÝŸhYH`›Uƒót.íÄÃ49õ3cðú=>›RŽ¡M0.ïeQgóÌ—¹4e']wÞc tQ½Œo‰ú„´žúÈÃc­:rwUañÓú@ÿAßcWþóžê$™³Šƒ–6…e© rc½ƒCSêàÉPjCqÃþè`.O•_°¦¯óž41JEH¨ßs<‚©4Êì¿Æ<Ök¬Du¯þ\S¼Wu~üútL¿¨%¡„b`Dà*ûb¯¾‡U¹3Ó¯¿¼aðÖ%à‹¢6û.Ý'7=§ºŽl0ÎòPy –ô8Ü^TþJ²ÙÏDh Nô…ÿp¬·Ùjñ¥7âk•ÎÏX§VòbÖ„ œKùk…'h‹<%wQ=©å܉TóùçË»!Þ’€ræS€.MO%¶ +}ŽÐÁ™÷¼[Ì>Fmv%kFFµàì$·¾ ‚á‰Þì$AyØ`©4xHd5¦¾zóD/ñº€TÖŒgáæF÷.2ÖkÑb"˜oÙ†ùz í-SØÀR¸+³¶>êLo3ø0ý§š×:„Iφ–Þ1àAðçu0Që{ð¿øN h?Â(íÙ’°¸Õš˜ +0£†|õSê€ìÒT2ã Äe.É»E™ø¨L@œ~E§Û•KzŒ´JuË~µu†²›.J¿¯ V0QÄà¦5 L§: ÔØÊÁ³ª½_+€ew××ì^±¸«Š¿ [®ªX6_¡òÍÔ! âc–ŽP¯³ÜÄX/W–ÏYh˹;êd_:{ÉZ¼A2"áǧâþ€›vŒ<÷Ò°Ñ !ÎÆn7c³¸ïþL›"õLOò½Ë %£ÝKøêVÌi›[ ‚ÇùÏÚ§ÎÀL¾l!8—Ä]oÁÏâÈ¡ÛÏâ°½¿‹«d/êÇj àR«n§?\_VÖÇ»–Â$QPÇ¢w|:^ÑÓ$ð­ÉãT«ë@ˆ&¨±Œ¨u€š !k.4•€# H»=±ïv·Nlò§øm1Kz k%y?†¹Üæ‚0Ç™Òñ*ÒZžÏ©#±âí ªú9E®.ã¾dÍ-•ô|ߦÛЄ\äF²ŽÁÛLa† µP«>Q¾ózº5—©L·ODÈé£e!—é‰]!g€ Î]àj*•™ÅÄ\œTêX²ceËÚ2pÈK1á>Û¬Ý)&÷¹ÌTÈø€Á¾­ý"*hKa'x?Â!(Æ£( z’¿ÛÌ:Yš¬êSG™Q@ žSëÄ£UϹB4Çh`‡ì¼¹HN›yÔÉ…vªqÔ­9Ú ùÞÁ `<µÓ×Ý—šYÍÕ‰é躨£Ô…R“bö#‚ë…ÊÕHEi°h¼¸;&ø‡éÝ¥yÉÐhŠÔ÷‰¹Ï Œ¬$ c±·òà¿¡¿6…¹91gÐxzÑ‹öЇ¨+!ˆžKfC&M„Óµ_+Âm¸«’iQ„·úô ;´'€©$Ñ—c³–)N{½¤X„j3ÿ=òÞ.MG()FM@Æ0«Çµ¢ç¢0zn\[Ûœá¸g»3Ú»úµDOȵóSÐkQ2ûÁ¦PgDC>‚)Tñǰî÷ x•²ÿ=#ÐXd1n©/4\]bDÞÆLwYH¨§þ:ö¬ÔÀÿå:dTó¶N»ÄÂéšÞ½“¾ŽdìNW‚Ò¯ÓãÆpÞ¦Áà«;!'ò1˜ÑUJs2§Nö‚æ‘€œ¥ÌxhþÊ7ÅqêDµ¶ÂäUáÉ+0êù–Ÿ°1S`sSÁ0Ç)öéíô³Ó–W‰JÙ[þ½›@ô€ïwúZTp4h Öà‡&7tLöølH÷+Þ'°-ÁÍho5x‡ÍYÔí ¼wq؇ÕûÚ–OƒPÊD„¹ýÃÂj'Qá×nDœÿ ÞÜÎܦ`ÃÙïŠtæÂîu}}Ãæ©Í[¼Å ÿÖcYJW}îj<–@4›ÕÊ8rÖ…šÐ,0]ª}Äüï}åV|ÁÞŠ@)í·¶»9£1p©ðŽ/¤¨>7øûÒ‚fÖlé½ðæµáñö9µ= w]ÙƒöڔᑃәôÈ Ma®)k¾PSN̵€BŠü(ëxœ~ìÄ Pz£†fò3Âx/f@ô„J'hZ ~ÐŸÎÆ/à$`—®™§Ç'>†AIv“n&ë[ÐtúRÑB¸ònL5ßùïs§ú>ÀÆkw'UÈ©'ýH‹."¼×îT½mÑ—†Õ»Jk¶²@ãu%.:úE6”PÅÈÿOB \ê9‘•ThÊÌ\Eúï»&zŠbr2T.V±#¼LÙ5×b¸€Ÿ(…|› ƒµÅ ­¶1¬(*ê"¤Ð„ñè^¸$U@hdwÜ9 37ΦrÖ®çN»¨Ò„„cAAÊ`id]Ñ`ªþ›ÿˆ—A!S™èyÓ¬iÄ;žã¼¥zê#ýMß á Ð¥oJcÕ>ÁR³AŽ[3{‰“EV´–#?š(ÖJŒ*mž̦_²ÚÑ` ÞÑ3ø9Wy’ßÀƒš7A&"ÈX–Dðl<¼Wc•¯…Üà6¹ÐI2“·ò–ÓÂâÓ2ø g_’ïójÓ[H¼a\P¦«áÑû­o˜Dv‡Ö#O»/“Š×?×.T1.Ýþ.î âîsô^ìæ…ôþ!—ð~ÈŸv@PÃϨÚSsRIº7ëÓü"bÍ@ñj¯=H‡ÙEè¸F¯‰?Ú§xŠ¡©mÆd'à»?„ÖüT$q%ç0¼|(QEïÄA«¾‹´•äúþr£ïUp.r*o‰èÜà”C0÷=?J©•lœâ‘läO é$»ëQ $ïbÊ¡¤[œä—ö›³¸Åÿ!ZvÎ÷cî·ç|¹JV÷3‰Ç>iŸÁ’0îÓÍ%qüõ™瀲@…[ŒßIt¾Ñ±=|uø}õ#œ&Ü\f/iXnø’Ž®9Eˆã((˯hcÊÎ\¤}ÞÿÙÝÈü”ùÛD9¸8!q¸©5¢¢âP™ÑDp8)ÄÿH…VAM©ø|ÆÍgˆÒ¹ü8ÜÏ MwÊÀÒš*¸u­ß¸çÜòAè7MndPÇãlcüšêè̈́¬ J’B޼^T¿ò9›úå¨ÉHyî ×fOx¢¾?—þÄvd•jéQP/ÜÚ¯²Ãò™Ù¬2¾€ÿ;«=œ"=½²˜»p(çØ¥OÜçF¡ajÿ1ä£ÜE/Áâl§!æ·˜nÇïÈ(iüýº(é§fN‡V‚"-ÔÎÅ9 £zÉÌ/ó–Τ*•¤ 9}چ빃$ü“ð¶¢qåÝàµoË8d'´XN;~.­‘³I"î]¨Iù’˜ËÀý}P˜”a[-Ú½:ÔÁàë;µÂ·¡'ãgºJ¬áä;¸“b¸S/¢2b/–m‚'½+®€Èm=c5˜¬Fg6Y™Ž‘éŸÞøæúèÔçíÓéz.úˆ˜P÷ñŸÅ<ºêzðµþBàÌÜ¥hV¶8O³’Pý ã^A”›¡A#%r—žïféclìÐ1Jœ#¸Ml‡áhÑå×ÿ'«n zï»ÉUtļW‡v¢Š’÷ÎMh<ÙGí¥Utu¼å8ŽY±²çÃfç‰Çr#ÓF<Œymè:./¹4®$ò V) CýaðIœEX ÿjó…t,‰ô¸º¨¼® —Åþgn¡ÚG+d™e×€Èé4x êpwù›J5´‘ÆKßb)¼=aå5„+/­[Ò]· “5C6?”íR¼±ˆÙ @ö–Än)ó¼»!ß¼ «y6¸Vöàb‰ ?-.eà¬zQTÛ‚ºìèšG~7Iá¨Ø"/(ößø¯D¤%5§Îq˜‰ƒT\”Âd£Žsoã'©Ûì]þ;Ÿó.Èá€Àìû¹vHDtO€Ä}¥‰%‘sù7Åt F`ÔµZ «#ó–ã£Öö6µ ÖGçÖ³x¦sÕµšÑ Câ ‚7c(t`/;í`qŒ®ÚÐçiáâ+&œ#¡E ‰wûòä¬^¥­D¥íðUþZ–üë6ÙQŸuéÅJ¥Kñ{­Í1L Æ´(j°£Ê$|]v-­»ãs(Ü7ß--5 ¼$Õ¤ ©×Њf`?;Û$ÎôG?4Šs¨”‚ó¬I°saUòùÅ +KÛÛb¼ô"7yòœ'Ò'M½%‚žañ—˜zuEø{»Ýäê$_‰VCÁ7Û®p)ã•F$µ–'ùãM£y»¡_ñx„%J·cs“óZÇ£F¶.9¡ð±a–¾vþ¶ˆÉ4n*Ea 5„Ì64•üOóŸÇÖçTW\BÀ2SVFžÁÇw¾ª±×U0š‡‚Î#´“Ë!5b<´Õ]S;/§›øß†h÷-Œ1óÒ—jfd-·p±” JTæ<ž3nM$ 7)­Wà¢ItŒÛ5òʽþ ËÏSÁ,˜OÉÞÍM_å=‹h ÒË»Ã9> ‘Õ^bâ-ïLOQ«Ï 1½p¶Ž L·û¾žôe IÊÁ{* “ÓÞ•¯}2æûs`„ßo¶Í‘ZYK™ÿngürWÓâ·Î–ÿÀ“Üùõ©ŠP®î¿^U7ߌR7¤ø™Ã›ÀBè‹@ô­-žH°-÷.a¾vU#òoxUbð,aµyÂxÎ@¹®`¼®ˆVj±¬wžÕÈw÷tùg#Ó‘§P÷–‡“Ï…¯àŸ(XðHµQŒß½0~å ‰jF‡«O†Ä0¿mí…"+¼…ôk¶þgç7~£“?©nˆÀP¯¹Ž\K9?ÿM¿ã 3 ¦6¹·væl@Û‡ºý ·,¸²‘WìÿÌ€Ôü Z¦é,`Œ‹/ ¼À±I @rÍû×Z»9²?KŠïMƒM N)I:SÖ,O6_áy^Ud`IaÉÐD í‘¹•‡ è84³z+Ä÷X>òÜ07W‡ºíðƵã¸hÂf×ç9S¯Ìÿ¤œÐU«œ‹––"„¸¾˜>ol€É;z$OƒÛ’1ÙEp‘vÄC¢ñ¹Î=þNòHËF«L"ë-jF½®€`¶#€ß×~;¥Ù¸p€4CE>ânâ«8vµåñŸ¿)g® "ãàñ>DÎæèí‹ÝãëŸÎ~sÆ ƒ-w‹§2†>~tüj’1g »Å €†lHÅ ŒüÜõŠýØãFûðã ÓnSÄOâf€itþkcƒ¨æ÷àX¨Á‰¼Ù<ÄqH^Ànó¬X´á+aŠó:8¦S¾Ç•kaÞ$s|¤elKù>+é.…eB5Ü: “·žIÏþNhŸF5¦cîÄ=§r²·øo!4ÌS½…F7«¥ÊG ~fYó8ËÂ!«kUp`×BZ°A'¯Ùàá¶´»«tof4T=ú–ªölͯŽb÷ $´UG`‰ƒŸë’-(k)Ðì±NËÀñg’‚sÚôNL©ØrÐ@Â'¡Ë~~œ{ŒF”dêKÇd4tl¨†|²gBW9¼<Ô@pU%àà×TCa¾Æ0Ú®û¥àu ÇÑZ©ùðrQ «½ÈríMAµñÀMdY]—©©Ó°mê¬0àw«ÜjÍ ^B/Ú¸«ñ^EiLϰwU»Ö`#îàû› !\uf1ûc™öë ežÎLw9xkMk)ìªFAž£ôv!™šãÚÜ8ìâ7O';ÈæD‘‹­Ñ¯÷RÇÑ:1,ÀŽ´B£˜e3:²×ŸÞ¶…a|Kòq‚ŸhÐRƒÿ΀.AÇàÛd»ð÷Ÿùói»+£?ÞûA ËûßÌ#¡©âÐ1B<›Ÿ€'J|ëȱÄBáiMÓ‡ÿƒøÆnö<Þ•ä‘gÖ.‰„w »Ì A@“}Ò¸7•rì"ø%{¡˜"_ýÇVmzG¹HÑ &¶S¬Ñe³ãÌ T†„ *É3§ƒîÖ ¤;ë‰î0Ýá”*öuT‹CqYøð}u›EqæóUK‡·‡™ âþ,~°_n™Vt‘û^`U¦Ä'¨ò/|¨|Úñí¨`ñÛö•ÛÓ Me™i{ƒtô@éJÍ£•ÝëÓgœ¾¶Ç'çµÉsÝy^Ñ4â¼Pé˜#çÖkº5¼5è/£”¯ÙHnù1ò§Ã>=÷Ž—O£œÅ1Ëxàô ïQ@ÒˆyÒž|ýà,vɪ_—y­ªIÄÞ„µ§L…i“i&5߃f(|éúmV>7pw‘)ÐØðÙA„9Ê¢æUeˆÎ]¡1šºèâÜܺµ>ì!MeiŽB@í{4Ñ€j94O´ß´€AÖÂ)Ñ;mA{ÄUºÊ!c8É‚…ÆPt…iQÑ‚5΃vRÆÞ«Y稶K£ #Yj¢?Ÿµª´ï]ÃÒ²r=#ûö’ä¤ñG>Y‚ ]jQ¯®‡ÿ”°êœr}µ[°ôÎ\ÓÅ­þ»EbkÊx.z[št•ò~“»Î•Ƴô}u€?Ðý\ó–h–;S¯7YÒjh?ÄÞ/­SnŸÃÍ:zÂ"V_¤KˆÝ3Z3‘œà”¦©‹GÚý†óö ²Á~@MW×W&š½f&¶÷ð¼†WÉPxpHaýUmßrb{¼íRgü(ûs6b»Ä‘ö½’ÕGWâájKùâ˜ëíHéY¥º§ê:á*ü3W´ËÓj52ó. ëMŸ œ‘ùcÈ»' ¦>4A¥µj[êf÷_Ý ÈRka(<—¯[ÞÏ€žßÁÊp­³¿¸ŸÊ(tæŒë@ÈÕ׋XØíošú'W_H;ð IÃç‘ËWªR d)N Y®[o¼vŒÅ’º¥æ…è”_ȤªDÿÇ;b;Äô‰ ÄQZjBh5hòÕ@/c¶])¹ÜŠRi,%@²”qáèÐñÎ!JmFàJAô6äæg¡¬VâH0;$p¶;gÑX¥¶wÚ79’D(ìnzÙ`ûQî³Wn•~ÒÑXÈÛÝòf=?£Z~Mó}¯•å§ß`i+8 ²£oÁÂIl g%&›r—X.}0èyïöžå§i@èU|#*ŸóðüáµÔ ·Þ‚8$ ü«çF}¸ÿB»Úœ~—¥2q„4UrˆÈ8MÙ ²‡6Ψ>ËtHgØÈ6¸™ÿ,!5k‘,Ç×~¢è•AËÜ]ð_–ßý•¶ÌGh]äç~ÚÇGN.á¯É¡|9b0txÈvvûWHª[Ïc‘Õ§O-}|ƒÑW²Ìw¸—!¢ùÜ"ý‹ÊáËJÍŠ‹¬Ðê²[ /uÇ|&‹•ÚzŒÃ½?ÿdÄÃUµEŽx”­Ôn6á·4[xÈ|9™uV([Õ´.Ö®….ňœ8p|LjPÊV ôOâgà£ëQÓåÇÌ;k¶•†?ƒ ŽX—ðV8‰¨kb'œ=K.ž{K|ÎΘoÈ?pÙZo܇PçG{âÝñ™,Z_(¥¡ˆ}tºŠµzŸå”ß{ıªXòCÊ>k!áɧÎgµ”+bñâLaM‘'“9îè@ùE.W”-Ù8¸EQ ¢÷ܶߙ)ÒLñù%*¾@ Ò‘ÕèûÀš‘Ó ¬û†á¡tÓý¯_LÑ ¼¡wwÁÑHÜ¿D²àÞ›Axÿ)|’^‰“&.¡ÎZ>mÄm$ºá±"mK-ÆQ]EVÇ*{䜔ûÖ‚æÅ>d—½dZ7šà™€)Ì}nÝä–‡@]ýÙ°U“ë¾ j®ØæÝÇðwµ‡¹×ÚB`B1Uwd)B>X>ñЄžÃ’žÇÁeoZˆWh Á:ÂI4*jWÅÈúÎþD%ölVWÎ.¿\n B`„Q‚‘ûKF$ ÇÔ“?E…ªÞ¡KÞòæ"ÐoüIY¥’ì¶5OñÍQëÖ–ÈÓC§hà½8Q^©;!›)i&7a:MJÆ äqãÖ6_t Xï­£–¥Lÿ‰ýáÎÚQ%‡;V„ƒQm­ÒŠ%§m1‚Ed$!)zSÎS½z&ÑlѨY—±'y£Ÿï’¦—Ü©Çæ^žÇÚXËÓÖ7ij@äûöV¤Áäy§ÒŒ‡s¢»«Šõ3ï¾ U/„Lºø¢Ÿ Îÿ^ÔµÓÓ­„Œ1KJ͉³©’}›gBoËôV9m!nó3Ò‘MÉÑ|3·‚Ø+ñ¡ÀöóèÏH( QÙZ 5i†å2%zàq bì._ëw„‘=GÛÉA‚ûœ¯hÚîkV}ÑH«ñÖE?|gÊ7qmÓèjƒù½•+q)i‘<é,âú°%\)áÌ—®2ÃJ¦ï]­uUçø’Ž¡7L0½¿È‰_jýý±O˜¡¢uÇ,—„áNï–?¸9aoÐtv¼ÂÜ긘I·‚‚tÙÖ¬Û6µòW=ΤU[Ù(ÙýïÞ%ù£gþηÉeVâ]N²”L‹q@ËZï6cóI0žã¢˜g÷x_GSÊ6²R Ìp[H×wvX8™üɺGt9\Õád(¤ž!õ#Ã#ˆnI‹+ãËfü”N|À¸ê£é$è–¹©0‚7ðw6·ûàú tw¿Ü»$¹¾&Kpô-³s&’â$*NÙêÒ« ¦}VxI4ìÑÓwXøª õ¡Z³VHAEÕ2 ˆ€ÖKšÆytúòL«"Н#®˜mÖŠë¨LîÓ&Z¡Ú²p{yëí»N:ñÀ^Pm…Ær}ëüQ×€·C¡z²dvö`o‡‘V‚2Ðu%£ØÀæ+ÊkKµµC)Ñ@jënç”Pˆ}`5»j`Ëþ`éy=/ÞçúVÒjp¾¹YÃæ÷¹hvh—>Ý·!þZ‚û–š:¶ã†2ý²6]e´`®k]ô HsÞéh zK#޽Æ´Œµ¥h¬Ë+6,è’à /ÖqÞRÉAv`@Œ“ÞÐt[BKM6‘‹Ô=ú*eßÌ®Òذ'‰üú¤}¿›WŠR}÷ô½$~¯qË(y É ìwFý…Ÿ¿Ú)—ôPû×n(²½²ƒ„íöb»8åÿ½l‹–BÆà<þ–÷„Ï è‘ à Ã^pg®Q½Û`»°ÀjØ£6¬¾Îc5ج`”ß‘POúwzòÈØŽähdæù¢«káâéÂõ*.sÊcY޵ã;-$Q­DÀ:zM3Þ7 |½¸r*¾OZ8 %׋ý)Wñ°ÝIÅ•j"Gp'ÀÚQ©¢õ–·7¡û“9Ágj)Ú_¶(Û-L2nÜ1\Å ÍÕšÈQûD+ì Îô ±m”™LhTxȉ#w&ª¶_UéL>¯¥‰ÐŒ¡)Cók;Y¨f¸Gh¥”!P¬×ÕÕÒ×5ï¦4þ}æ%–ÀÌ!Fͯ¥aÆý »Ã<ëúõf)Žt|\Ä•nËi\E/°Ø|Nt û)̲^@æ„•Mˆ¨c ³D(f!ÑÃûöi¿nñœV«„pL·Ž+n*<‰ŽŽ”±§°û¢ÖëC˜‡À’L2m$KA,0øˆ´ê}5õ4;a*Ùäõ/¿øBÓ€„Õy- å^ëÜ&)ÐÏ –à†Æ££ù_üÍý¡ÜFë²U}ͳ3§pöÄ"C!/þ:@'ÜÀ¹œ¬?”sòýØ“)×ÅËëÛ.NWïNYס±m¶zß=v.^)×pq ÓÌt2ýýìO±Õ?þÞ¤ö8Ñ2Û—³Ÿ>ȉ šA5ª-A‹-b-jrY+Úv§,@Ïñø®œ… '”£ËPþ4DAftŸÐ4Å ÿòP“¯íT6åJžƒ8Y0Ký„^òx\ós3˜ÀøÐÚŽö««Áˆ½„ãzº/.LJëŠ'½!ÜþRÛOê.lH*=,ñ¢J ð̼þuªgÐçFï¸Çã:ú{©·NÊ‹[¿¨˜fÑQ}nó2Éd—<ëUcMÛDã3â(ƒ·©.ðìWý$6ÊräÄ)ÁJÐY}Òõìv"!K6o‰cK ÷^Ú§´ ê3×O¯´/†ä§aPRòK®2YеÁ‹Ñ^øˆšmôäT¾„P¼à LF!t^Q÷ññ„çØ3aoJ3mC*ÚAAË?î6AìºÍÌEìñ¹±®qÐŒ„om<³[`69y²°†jª_šÝßxÚy 0&› ‡§«‡‘óŒ{ÙÁÛ¦\(8k ÐaR‡œpœ€¿èª;l.\ZŸCêÏf•ÞFH۞̀Œó$Ïò+:¸êAª{´*Ü7Å“ú !‰K8"±Þ‰£µ%RåC€4Ó~_Ê9û;oÅF®qiuPwg ‚b™È9Ïp+´KJÐ{.¸ÉDÍÔñ‘œ¿äëšø‘Ä­¼Át6j™n¢G”Z)fQˆõ6}áJÑ'*®Çèaä¯XH2fâ9qKY{À;Òÿ(H{C¿~7l•àg ‰Kúñ¾ÁëS${S¿ç6–7’´›¬ C Ê­¦ÛGãú¼•6ë—iŽXçŸ80›éV”œ1?MÒÓZ¦CG"x Œ£NФíìg |tó«ðwë[Óa»ä'°!ç1ÐÚÁ})–dµ%Í~í³.‹ èu·ýHÿG>yÌ1ò7_ .œ4 Ýd+IY„"WÆ| µ7‡CÕ4¥G_)¥´/%Q´üßJž©ã” ¯&ŒÏ"wƒàS9=Ô •‚ëJEž.W9Wa“*ydaW?`d+'^Úr:ˆ+ço¬Ë…9ûN9Ö¡z6ú]ÊmxLJ&äC²jÞ¿ºÌ`éŒ5â»’ê9¢N?«p‘ù/ær;_± q­ïa¿Af' s€äO¹uÚž¶eÕ\ÿß½Zæeµ½yÅï Á š(H-Y¯£ÿ†fÏ´¦cÈ=ËÓp¾­i“™ÎšÞ\‰¡Ž­L@Õ´ " 9Ìó5‘Ov,+âGgö qÄàd†n€W&’—ä[õ¿ÕE}ÙíU¥wüQå7=°Ô$N ¡Y”ƒ ÜMT•^8%5¾Ì™ˆÿu¶É*|8øìÙ„P†ZQTÛ”`¨¸£‡Ã—õ:íŬ¡ç€ÐQ”ë £"ôøŸÜ»ÿSrÔg¶[5)â‹oáº5Ïhì¤ÖàöTjÙ¬ÈûsDޤ=1§”–#kØe ¤å78…â€R¼2œøöŒö‡òf;"z9–ËAôϯ ±Ý…A„òûo!q?Æ5O @½Èê^éì­=â²Ø)w±õ5kÕO¶´ ua🠔%ZÑò9ÏOAS*äIaLsIéê eøYªå îÇßúyˆy]ÝH†}°×u4K³cà»áôfD(©» ÔÜ›Ö÷­çꉶù>=^¨‚ï'ÂNä^móBFãšÌð‰:‰g{ÀÈHè¼Ýî…ábh Ü‹ e¦ ™ÁòDáÑsìë<>Je§pè/ËýèÇ ±øýôâ3äç ñÂâð‡[CLuEÇñ ·Yi,æÓ®îr%M%ˆí–üIže/e§ „Žr›„D/c?àņ4¢µoý'}ñQÜÃ;ò¨Iápã¨@p(’'DQ=êÔÛïŸQÚrŽhE âèÕj™ˆ³U^ÌË••Ù |ðíÌ‚æÌœEn—Yô×sey†`~D⨊0uI(=\å½t&îòQ;¥]ýXUä,f©håSã ç*'‚$+ ^)š§ÇuH`xN(T_S·ñ „­ý»'2å³ ë3ˆ%Z_Äxôk * ¾›I—Îý"„¹'qHª†){˜T4÷éÛPÙcmÒ »éæ¸=“WÑJÚzê_K¡ÕI÷9Ê–ìE^ol^û¯)Ôsfë‘Mîå«» ñ•pò;‹§‘D)-T(€½ZÜ‘þm=0 à3ñuêî”%«V®®›cGÔÜ¥‡s.dðÛ<~Q³¾ÓF‡¯ä Ðø ÆÝkšû^DooRWžJzÚÍRÙ›{`|òeÝø a}™©t’Yÿ\d¦ý¦’`@ Øœ•4ƒm”•©#¸Ï©b¸¥—€P ºgüª ObýEk7ksZ!”R²¤§Ï=H:!$*¦ãÙ¼ù£«[ùÓ)©Ü.VJB£â+Üh 7 Ñ7_$i`Þs†Ãb¹õ¼¡Ÿeñ7ƒP-Ù†wWAõôg6û¾4%­/Ý4mß íì+ìˆ*ÖOÍÛBFa¤c¶ƒlâ@ñ"öaÁP´¦§"éÉ.z ܇‰¨¹§\à ®,ݪ¥sÿíò$ØUè¯ÈN|‡»ÔS=YÛ‘·úˆÐg5f4 /m9ß.\Ö)?:FTÊ«¤RÀn1®þ¢†…˜oü ùO;"‰î¾2_±ŒÄ²J-XC«²4ÉkîP[l¶}¨Š°ôM[:?rÎmFí36ËÛ¨ Üå1è3]H¥~Z‡©ÿØ-+€§èdMóâ%J¢,z@È ¥2]°Ès…Ä ëÄóc“ žƒ>Ó¼áî#¯Ÿ09ùõuÉ1DsÝIRC ïy[‹A¤kgº‡=}=&dQhÍ,"V².j Eg§KÝ:¬§Ê ãÍdάá»5ÿ/KL]¢þØÞãvвÎü4´Ì“n:­T&‡›‚d¶çÖ&Œÿ÷ ÁÊÒúóÖÀ[‘£Uµ®k{‡[®|Îo\à]ãÈ €Ñf—äË‚¥“c){¦yM;f<ÞŸ2‰ËbÎ8Q´1£+ZB[ Î ÄÖ»v§çA1ààœGc$pŠ.VÂoW%BPq¼T9^‹Ù8_wLÞ»ÀM鑸Üгo~õ0UŸÆP¡ü+ûëÇéÎS99J<¹—ßìòÒ¹ë!\NL9®ãæqÎŽ·&àk’~@í 7ö~äs›F0 `–O>žSÎä°>{6U‘PAÏ,œ# b JÙ_¦vˆæøü "ùc–gxß=Àä6» ¤ôGÅq÷>’•Ö†&áF.àßbÍ Y(„’^ì_ò,¬ÍÚã?W^óxî‚hYD,üQ)_ûÈ HÒŽMŸ#¦ÐrúãnÈÖ#wò-!D —#‹18õ»ÌÙ\ìû‹:7R]±Ý?^Û¡l⹓ê]SÊfz’óãËŽÐý1œÑcågÁWä.¯í0™†þ¯KzÓ Ô÷ðE^»)â,Â/,ÛÏn€æûD¿eQÁñšòÌv…5H×ÐØ|WÕÈÒÓúzAcÏÿbZ§V5S¡Ä•€ƒ-x.ˆÃ†9ô:CëoŒ>Þˆ‚¾Ixdxz_ WA²Œ—›é=MiSÍ%{Ð0Ÿ¿¸…ÛÑèMì’!jßâп6±Tu÷ë¬5·(ºEA,•O­ëb¼¹Åí#ùš)Do#G5Ûuð¡~ÀSSþôMQ]úmñl˜ ì.R¦hXJ¦•W®mY±Œ"½Â¦ìÚü š…·^bpHý›}x½CÂ=¾=]1 464Z;“¤=FŽnÖ:{l ¦ð_ª[óîÂ)˲0Hj@@ä=ü²+äL(,~k—@ᦃY‘õÆ`¥ƒ‘/þžèÇ«?õ:ä·;ÃLê®;ü•»rbx$ø£ôBÃg®OeÊêÜ%«ó¾ ÐZcí%ÀóU(bò½hv±ž¥Ç% Kì†ImŽ,‚hçÚÄâ¨ð±ë]’; ü‰#Q=ºbr6·±·‘&…JÿªáÌzÇ F« 2MîÉFßí…x‰o¦*}ó]f¤ø}MgôBç·(4árTމ¶LXùtäWÝ¥™ûñ]yŒýÐKÿÿç ñ^ UYÒ‹Óq†/Î âìˆ|y¸)Úá2’4²kÛö0GÄ ¾¢0¼4 žJ­*Rãð1ùIº¿âC ‰¿ZŸ=#È«”â cm<ÝöÈHOâćBuŸJ…§ò=5ÅHapYèŽS6•°Dnñ$/9^ãÛ+/{³™s*?B¢¥jRÁ½ÖVyù[÷6ÙItÕîßîäÚý³qézs_avƒÏß”WõW¦¼> Œðeæµ>¾–ÐÌ/HFƒ±¯@ˆCªY>2—â صژKØŒáj„~ì(ð t¿18ã2Çžßl¼sÌ­]z%¯F%vàQŠX¹mµþ9¥¢JìÁÐP-âhoð¬äþ¤…Õ굈Ùåå$/$Õe(’MÎRímÃÞ4Ì ùÉœ} “ñ³O6µWæÂ$j»º3$V®½ö7åE °R|·5v´…ÞÒÑ0èË#Éûúy˜ÿÂð‡"}!kD)ªøÕ¯ LEÔ_ —i˜Êž|4QDQWW—ü^ígiš…\àÃTÒóç›ÀÏ´Á€Ï@ØÎr6Õø*LÁCåNºn`±'üϺ=îèPÀÔœ§é!4üc«kž•F³9±È=úÇÉÖ>Öµë†Ê¸²BÛ¤#Y%È–lÊE…R ߉ޅ)JÚ'$þdæ?eu7Ç3¢6éjØ×Ó@ÿp²iÃ¥d­<óWÒE·ºMùfÓ›ócë‘rþˆn´àò:ðt@âr(jv§¢*pXSaæ…tJ®{$`*ä‚×X¤û›|†eªÐá8k8xa¥-ž:L% áØË‡wd#Õ´æ„ûoØTròìÙŠÜaµB°©»É… PPOï·ÄI¹pñ¨<‹Q&p>tñæ1º ¹ðê(ƒ/—Ú£®o€׫Ç ï!ròIÅ7 ý]Ϲ!KàîŸh xýmÔ—ZdJ¼}TÔß¿%øì~%S²\Y-%.ÕÕï÷½¥,2Pào†Âì˜Áã5hMªï´ê3ýgh¯Z)u¼G"Êfý(yÀcQoúVu@9•6BÀÀi-=ÄŸÆB)@¾‡ú)ƒk¬‚ù ÈäF\Š’œ¢îw‰æLfO$²Õé¦Uż³»´dAý^âÊщè#lå,Rjn6^±ÓœÀdÍüÙ0Ké&)äòüe8‹ Ng½æzÂööXm%z¨Ã¾ÚCŸGW(Û+þq¾E*éòêÇXOp·¼€L®ª8©BEœ¤d­_¢B„¶žb—þì¤Í\˜kâz±¬$ &Ì•Q®ï‡ÌÏOÓÙ9›îéšns-à}·òŽ_2óܳ¾Gz¤}ÌF!OßÞBÇž./]ž]|VTCx… Ç¢îÿÕíÛþýÊ´2ãWK˸™p0I=³Ò¬øÚÛë*Ò\È šµe NͰ‚yáim7f¢%™œìÌÖåÑ„ì!&«ó¨ë2߈Œp|ÈhÊõ¦.ÈÙm¨ºè=v û¾?LW¿£œa‹0eÙ ˜ó¤6_sÄ Ö&ºÒR¥ÅÉZx¡îZ`°J æ#;3Ä7Cý,þ%Œ·9^6lÍy­f1@±˜ B*»`ÖôŸ¸?·ßùú¡[Cÿãì¨ûÔ­•ÎlXß„As %,Îe¨]© ¤N …“i5S­Y5ÊÐ#${’¶ÈZe bÇó“,ÐðÖ~8n@ t\ÿ4Cä¬ü£tщìѰŽò—ï}E³á³lÌ •ŒNÿm•QŽåÒÝçÙló‘#j‘g‹}P‘.^öÚ68ËI Ãm¯`eƒ„^¶x.'£ï™1@ƒS0JùÈ’!Òºéš|¼›b•27ÆX‹þAÅùÜd.²†Êf„gƒ ˆQ¢Íž[±å F:ÃÊP@ ¡N@òMæK¨ÔºH·ÂhF²*¶ôƒÂ‡·ÃVá˜4ñ8Nõxv +Ĺ"o00Øv²k87Јܚr ¡ðfPŽôñŠÞàOÏÎ8oâ©ïâG‰å7‚Ô0]êN¢*æ+æV}PÞõ™MšB_>ï2¸s¢B¼&ˆIù  L(ÍÑßz4T.Cÿ–æQD9¥¿±+]­ˆQ6¿SêQ“Ât–ȶ€Ü_BÄ"Lÿ—@éjÉTIÇËguÊ•‚ÙrÅÞ¸LÂÏÌçÓÞ-á½®·×\mIÏe®ÅåI˜±QZŽôTœÈ9I9¾¹lÑ5†€UÊÇøÿÇ/buý‚ì”Æý–®'ÐúVx¿çjtp!Kü ¼Ý8_Ó2• âqiüÛ»r3%Q­7'€ÊSv\‡mÕ£ìoøø÷1’rl!—kwhï¹×œŸÎ5p˜-ÜÁQ>²~`вž-E ¸¸E©lÈ`XH>Ö„q5tÀt‘âíQí'ï|S€{ ´ÚGä+–º¢ö>³\¯åzôz:u™úbkú|9j½ÓK@zG7Î;QÖK¼5z,pÑÎþºõéBPbS'F B±H`‡)_"öQÎ-wö;ÞÀ9x9°5Ú®€ÛÁÌL^ª‰ÄRÔ6ÚýÜû„ø¿"e(‹À`VÈ¥›‚^%&V-p†RóâJuØR彡ìÔ¸@ x±.8?¿Æ×ì¨:Õ’rwžmó ‰‰T¯·vÜÃÏ›Háñh<ô¢`ÝS´’Hóe@ W™o¸©Ÿf–ÛO[g08.9²WmÌWT”í?õ|Qºb‡Œð6ôäóKÅìÚl%§1e™©ôúªñÇMºÅ¤è¤è ‰Ÿ¾f8ôH«ÁN‡Lí¸xcûvöÉO}Œqƒœ|ãæ¹¦äŸÁµZ’s×óZKÛ#ÿå@%B«YO«wMSl:£CÉ+w÷\o;þ VÐPf*°"c—–ÝP(H‡›F¼¶ª…‚ŠÌˆŠÅ8v ý!WްÜÕü‹–ƒŒ"ïè«.§í»äÑ)1Ô¹Ûv\¾<o«G_ËÛú7Oi+<´;-?ýk=†žXe/+÷¸rêmkI+¢×ŸlÐ噪Ԕ «®´ÀÔ%åW1`Z­±sW«‹8[’ö.Íþ[õ‚¶|ˆÓc¡Ë ‰é°ªØPàŒ5è}›+?Ø·¡ò-Ò~`†&u rš;ðÓ"—vzûv+yïÉP[«÷øŽë¹>ܲäS ©¬R§ÉÜ»åÝ.2¶ÅsMa€åãì/Œ”àڴ螺›Æ\ÿ)¨u®î :{鯮‹!€ÞA¬ùOÐHC/zuf”(S{a.’𘞠7 t•ZKûÝ™÷ÌpÈ?øEK•^Œ.Ý]骚µ£ŽîÖÝÏ ï¶í{,”2€™4Þ\…q®`"™'ém­t-–ˆk¥qˆ`¹D$$0„¶®Ž2â Ǹ‹k*'ë²{Bä( Gr%Ô¼CY+òÉ_Œx5qWYÙ<¶•býºÉeˆ¸ø¸Ž‰u"I 'Y‘3J xŒŒ0œ°•‚U­!§—IOb;Û´Æ1æ§TþÇi«²k^¥ÌT¬dõuqƒé¾Ýù*òQ#?F©àÀ{)Ñ€Ïr¥%WWŒA‡˜gÑr%´9ônXÆ÷' ó>|ðkýÒ§]ÙUAÙt"znޱåS;êOƒ\x×@Ô-‹/ »Î,³K4VsD/ÎÌ}bLYËãùØõœáNnŸŽL5bj?»LªŒãØó5Þ¾g‡œnö-(D½/•e 2ú¢ØÞ¶"Zp«ìaüh:øj¾'ú…´«·{×Pö`ýÛ/K®®#çÒt“ƒnt®®:R>Ëß—ë½-L/3ЇûiãÏÉÍËÇÞÖäé»sýU·b}Ö/]£óaJ¯G¾RämÃ…ý¡¾ºß½!¡‹1¸@ÃæAÝ(ëI…+pÑuM1¼K‘GUbLí¶´Bq§Ù†âtVú—”œÄh>R"MÍÔD@8Ïi§ôÁ€¬vú¹ã#3'#ªáÒ6<¡€M¼¹[„¯²ÝËଡ5qK*Ö4X¯{°/£-6<.Ëx f­riÑn¢ ~ZÂÀù?ÇØÂ ß§C<ÙäªZGÛñ"à½T¹H|Ó†Ä+ntæ™”2„¯âÒ-ügµq[Ì´B³oÜI9t¡Ü´}V¦™Qu&MúkÕ5;)Q!¾+„!¼¾»žä´¥ Üi,Œ‚¶4sµWM¨UóocF=Q×­ô¡÷»“S33p¼²‘éÿ˜RBý;¿Í¹—*—³g*•ÎØÓ±xZ·ÌÇÆö‘Ô–dásQ:Ô¶WA,ìâ.îÜ$ÑöQ¹¥1¯¬ìIìÞö„…¥DC—´Àú~A3)«õ×+—ƒ6¢% /ÿ„…âFè%“…¡7ÿ¸ÔÄww¥ ûÃÒô¸lG%œñÙ}kší>¬)JÙû r9‘Gÿ)%]í”éºØ)Ùi¿ úËKŨÚþnûü¶-öøŒk‰aM•58ë n µM-ÉY™ïAô&4:Ã6õ™á9È€)åçm-¸,”GX¬i6þNLAüM€(eœõˆ¬=??'ƒ ×̇}¢^ìµ/ƒ·ªMÚyz΋և&Ý… -ª¹a,Séó“§û FûoM ó’ ÓÃ|¥I&Èʆ˜3J„ÛsÃC×S—ˆ¨N¤t­Áô êo×ORˆ¡†üRn•`Ï*ÊmÛ{++Ô¯ƒ%Y}i¼ívü¹5õGp»„.vPu¥ÑAqÝF䣻 D ¹S8òÜ‘µÛÌï°öA(]7è°.¤ÉH¨¨¤ ˆÂ`*SÂQÆ}{p07JWdw€-œÛ*ü¥lnª¶Xü/‡Þóõ'8„r±´©wlˆvñkzO?ŠE0‚ ÖA˜M†®¢[+–^X®L$õ¬=̵ñn)Ø+Èz¥aäN͈XP\¨E9€Q§CßÂuk[çhtq>³¥‚iFig AJß¡sɨ„õAŸ%#Œé~îù›¾HO£teÜ@jøý‰Ó?£ÃõW)!"T"ïËøØÁ?[` uãqBÕf~aÓÞ;U8®ZŒç(}šÇ@þõü(Ó=Ä08s³6§cS6Ççç$uËíxB{!ÌÍšîåËGøsïÑú£è­(ª£²kZôÁ!SE?\3ñ¨$›”¤ù/A$ÀYŸÛF\ÛÂ3"‚£-”/쩞!÷Ô^kq×® 6Bpî"A¾.Èðl›tAKµ.2ExöN|TŸ5ïÖ|é xÃ(˜¦Jδ"• ãA{õZ‹%æf‘Ì܇Â]Ï ÞGâ‘3þµƒ7ãL+ÛuqTØ·ÎëBÚßß×hYì<9=EPËûÌ>$ó ¿Ê#©'X6z²\Dn¹,údºS²2B»?0œÆa‘´‘LmhgÒ˜)HsÛ)°jïï|“ª |@…"òÓì]ÁÏ-˜¾ÎËSŸ7%§öõ¥½b×$ÞB­ucuKjÜy*ïîK2×=9EõDªPó/º£ˆk6„=>‘çî@ìÄ^ì|“˜Í û6|-)°b¥WÔÎÕ «/í§`¼9¸ªgDa.B `åXÄ•6?Ü•PÅ\QNé4 Åä̱¼n=n°#J¨ù†Sk(úgüÖmlŽ šr0­¤\ƒ€ÑÆà@{+Ð[Q  „…ÊÜõË ¾fLMw—ÉÄ2ê>)§sŸòÌe0:+Qá&šµ¯P'ÉÓ(_ôØôbÿ020aW> šEË›_4¿Ð«­7²#ƒþõÓ¸Rlº›lrX€Áõò}Ÿ…pýaÄ ˜ (Öì /ûé;‹NÁ51ØÅãrÉçx]£í…}¦Ówpß‚¨¥ß\rØ;…ê´…Ø;;@²f×UUùùÇÙd §fÚ42çœÕ õχ×kœo\Ô¤[¿ßÇ>7¢w JG­ÊwÚ~jƒä¤2§å·ÀùèTï_¦[fƒÂâÀ1¬£Y4ÌPÛ.ucûÿ ÓŠn¸f~†éŸ:rý"­»í° þ|$ŠtÝ®öãyâ=Ç®Ð3Õ}êÐe¨ó”Ö:·ïùW2þ+/q¶5^XƒH$–×W+wD—±´ø£Û<:EÐ ^gE im†zÜìš!ÓíÒŽ 72{T'‹HN 1r÷uåäù«Cª¤C„7­¦Ÿ×ÂcL1¨Ý¯Çº“aƒÜ[yê"æ*’ÞÚA³ÕI NIüÁMÙ%*yNW7U£CrQíø{C%Ÿ±pyUE²GŽR¶Nþ7Z¨‚ ^*Ù]ƒLÕ³á%ØŽ‹bµ‡¸ÐÁXlבŸHKYë¾Ì+l….,‰-üòФ ›vMñ%f"LëF¶I‡ö/)”ê½Hßßë/cVÓõ¤“Éy_*ç+Ý7¯éá%-.è€1Ljiî+¹’tzíÊG^§vcU.(dl¿»Tm2Á Ü1t¶ ‰o¿çw6“u<%ù—)K±¡§¯¥ÙßœV¾}³"t¾œëŸù†ZTda4?Ynzs7¶ë,»’:[Þ:>²Ô(o5¯Ùuêéqǹš>¿ëc½˜7)9?“ü+y FÆa{ÞíñPä¡.˜\*‘÷YZ˜öjqÑÆßËÃ;YÇ‚*¡ÔÙ§‘üEn[…*î‡M›,’ v•r½ˆPDë±@DƹÕËõt³8}B) ¼±ƒª^9³€}ÐÿB=É1o¿sŽUW¡¢$âù^“¦¡zž PÿžÕ’á3”…Ç@I+d@˜Ý^O]åAq‹&3ev.w|@XêGÝL×ÿðv”ö0Lv«Ñ³AΖ§0ïÜJczØWO‚Y'†ñÍSuÓiþ¹°O•OÈàl.ÿSu-ÐAÞ5*pÙËô¿]±ìÕ›r}‰Ï¯+fkƒ“ü;—3j9²Ÿ£åÅ{!fN„F¤ïßPê:[‰&ô©/Híx+Y çÖ0Ð-ã««ûW%W*xÁHT•JáèÄHÆ5[ ™Ìjô–ª#_kgnyRFd¦þê ÛÿŒ´~õN¬ âÄKæýŸ­÷àO4šìy™®É©Çûu0xönBØòþY-?¨.*“©BˆÙÞ3|vÿ©© ´ 1Qý5”´qéž…åñôy>UþîFЩ÷îKÆ”@RøvO«ŠvFrb+áÕ7AƒšŽ!ß©T˜R³D#6ˆa“ùU[ äД:V¿x5/l@CnÞ5JÛþþÊ‹’Ýw½ 6ôݼëÄïÒ¡™k y.Û©u‚Mõ&§–Dðž²"økzÂGµPGBΠ꘹“[ema9QÝüäÐËdð_‰µ&¼®ÖÊ|,ÆýVìj±’k‡9¬Þqž/9ñ¡Þªú]z­Ï€cÿ¨¯––AG‡ éôf£"= š/Ÿñ˜†4_ŒY—æ'ÜkýʤUx7ä¡…ðeµ1¢Ü€ôŽ%ì=V!õw ‰Ð_(8Ÿ8­¿òPð|7{yÑQÛ,9ž·Ü!,×ÔZ}Ãðd9¡’¼$H5ßà"‰Ü0Óðî ëv)Æ%êý¥G ýfªÆä¡APñà„©âZ&|šo­¬çΖÒ*ÁßRäå¬ ?4»Ô8¯›ù"{‡©ªúF5 +ªB‡TþOéÓØkF±Ë$CÓP] …­Â<.«&%˜‹zÊ‘¥>3ìüxúc‹. ÅHcø\øuYIøZVåïßr?y¾ËÅz5wËWrÉ„•¿´'ærá:é%â¡BqµL¯¨‹3 ‚kQ\ ¢¸IÅë±6òæ E÷IîWìž çëêÓjg\2jå›Q[•èÀ™ÛRJ:r*)ûq•¨]"`»Ò_7ËGl ñµ®`g8ò𾚌z¡€6²~ƒ÷rAà¬ñ™ÊéÙ÷L}ÌØ‰‰ñã¹·¸<Я¯…Gç/ŠW¨‡?°žmäfóFmܳtÈ:íJ›'‡Êa>?’ŒIj}¦tž?Í̵‘Hkk}Læ3JŸyø+G²~ãp>íý¢ßaIôÓ±=Ÿê#TXÉe¯jg`ôenrAò–Ü5L?[­ÇYy£nöʰ_à(XœÓ—E% `†QI/û†>a«!°(o»§ˆlöÉ  Hs÷g¥\] Ãï'oøIÞ dn¢›YoU­ñ)ÑGEÜ*n^n ÓI²wƒ u/"{*õ‘û|ºQI¤˜¡ô;écüIÖÒ2ãóÔÿå¸ (aîe4Ú%7ÖhÝ#©«úT,[Bªrø ˜Ú OÔ ¯LÀ‘äŽÙrVöu&žå˜ß7ÛᥚPÔ’‡k’µêîµëÿ3àJqfê=õv‡t,{êË?9¹­^7¿†©P"Ê¡Ø1ìùk¯æ%q&Ó²EÇVO|æ´µ»“ÑÚͬLW‡¸Zþ""È¥/æ z-Ƭ3<ð²Â½’Êìí¡?Řtô àl°¡.~?8¶†õ°ögqJ¢rÙ‚D»‚>&bã 8ZXöñÁ/{n3OmÓ5pz‰ÁáAÄiT²)jú¢ PòŽ'HQÞ¢œ2[»GÕ²ÿl5®,&ê= ŒØ?Þ'|Ê¢ªþŽ‹+ªrÊ]Â}Ç¢8…r}œF’~‹Y@mSKp auФÇB.CŽ€öX€I‚ó,&±%4?ÌKº&rIcýó¿r¶ró®ÂG´éŽvü;XÒF4ö)4ø ‹[(ʨêp+¾ÊÒçÙ˿ҜL$Öþ²„Ѿ_¤àä[…nz&ò“Ëâ|¯À58`$ý@N@}³Ó± US¦/ŠóÙ±Bwee>Ý6¼Ð‹›ÔFT6õæ•e>fA¬;Q¼šZÿ…ÔíyþÍ"[xõƒ‡$}â_àçR5CÁÇqôtm¿jF‘ †D«u_7£1|l64!/fYQ–Ô„ÛJðñ]»êÏx1Kš¨Ø9¬"ˆëƪ“]E6±Å¢øs2èÝ«°.@F)0¹*Ð6mKk¯º;d:ŸZ­»ó‰˜ó¥È²wi©ñá¥?¼P×|jM¼h% r‡{'¤¹ ãÛ:7ZfÃÏŠ¯q"µE§âŽŽ=CŒß)¹/´ê¿3ÿŽŸ×£e2"p ¹õò-Î~ãë¹CïBCßÍ=_%'2H=!hs¦üŒ¯•‘–R¹UäWÿ‚ÐSƒñfrR…•AôqD²ÿ™íµFÌõpªl¿xè;s×Kúý2Ãd= ƒ!¼¨ uºoSX„¤A—ðs’÷&²]®£sƒCêÖ&}ãÄî± 5ç† ˜(Ä’P>_Žûž)ï6µz_—èh®~1"äüü¼†…øó’¬,9do¸¸iT—ÒOv¦Õûƒ¼«wälB½ø…ö«Þød¸ Xši˜¥fœÉBÓ7!w =@wx}»4±¼¦ø Ÿ$ŽHaògî<ÉÙÚ"ÿ¦Êl/_{Ȭcá3•*è„Õ˜†FÑêöÝ ÛtW`'`^ͪæu¢L@s41o6àiñUo op‚ rŽ7Ò{;H|®ò-W +«¨Õ“o¥²@éȤª +KL­'ñ SGîõæs"¥±)ž¹QuèA 0 Ó« ¥´˜G\Zl'MàØì»qÛ¹œÎÆÝr}Ë)`A×]ÐØ~òYùâuŸ—öD"*Å×è5TÕ1jÝ4Ç|Ë`Ühœ|àmf70ÿv)Ò Ïþ‚öæa'a›ñS±Q@ ±s¹Tˆ{ÎÕ2$¦`Z1E!êpE„ÄýB¨Åf«=†ZÈ1BAãæ“ÿ¡!W*Ÿ(ZItbŒÃ?!Ð^·œ †Gï¤a—w?sôÏ+}ÝÃÀšWª'*á`‰´Ó¹TEjºÙ¼Âý…ÚrïZ»0o#|N`žY`C.Dî–Úà„ŠÏûƒPà:}ðoõ˜« ú¢•Óµ¨ûfqÅnÇޱ—ú‹+ Ò¬ž8Ì~C¶,UÝáF{ìC{ž[«;ö•FMCé ŒRlˆÜy`Þ¼ücùå\¾¥'÷Û™.”û˜ò_É÷“K›õÏþ-‡aM±Cîs ‚£ÕÙTÛk÷Jm?ZºÝ+FoJ|»ˆ‰DÚÆWÜ™Z:I —‰&KhšˆÌ³¼Q” gâœÌoÄól€Úµµên—glr©7SeŽîÉõÖó;ÞL\10¿n§Ãõ`w8æÇÇjx~.¨Q ›á}>§#]U‹»jYÅÅ3R¼.djs²·4„5Û\®ˆ{»›2¶ŒyÝ•ÓxÃ&qÐxo׃8 2m«{' •ÍÎ!ëù°¸ˆ«0R‡R, Ý©G?!<Ç„³!]3 ÖëjÜÕÈ™äUya çÜ8®ãÞݺ;âT¬c¾ÈMKœH¯„En莒ZT¥³¨ÁÏjg£‹Õ²KÍ#ÆÇŽ Ž£ïbý#‹^yæZó,yzð¨ UÙ3©3JJœŸÃÛòD°ÿÒb?ê¿ÿ€^µ•ø€&ž†òT™‚’ÏÄ­”bnõ¼®t?–cSØ<-‰‚ücà˜´±ÏÙk‡&yœ&\2QìÕ_§š€ׂÀ˜ì î6Tï@¾-‡ðPaÆ §^ý0§—e.\±ïÝ:ËýábÀsÈø…/¥öª#é\æUh ¬²‘­ö|åÞ±µ‚ü— ž¥]ùTTòTþeç:õîLÂzŸ9p)Ëtgù÷pÜêõvø&^Dšù z¾Ë›Â@¥‰Fϕޯ0ç°7{:wOb¢Ç9Üx©Ú2jbg¥Á2”zð6ÂRt!eãßPM˜`g¯-*€#H,p.lTŒhÞXj›DuÒïƒèngˆ×¨mÊ2¿ÁÀ[FR'×ZT¾qpê§Û î‰K¥ÆúÀ‘성cjÚ=IäÔ´µ—…`¹Ü‰Ó·ÕféOüU“¯e{)Ý…¬ï"—‰‘[)C/–„³Ç:ª¯ï‡¦²ëÙIÅ,OÏA¡y"Þû aÇ.·þ¢ Òƒ®Ú†(:1‡C$)H×â»Ïi]’Ú¯j¬g)û_­q-(I,××—¶På#•hmÎ}îWS;*½Ä‹tŒE6Žèku º<»v'ø–Ð`O!ió¿‘£NåÕŒ¥ÈÍÍq–²EdßXà3Œe¬™ACý”6¨-YoìÄe$ƒá~@‹A"(… ªPA&mÁ¤2Lçeä]’YöaOÌòU'{yè]¡½—Sm )é1ÒèL¥?#½œ¶ ’»ÐæÖ©¦˜¦š+؆±_ à½}Tj µ6N&Rl3J(‚;±4ó¯>yëŽcÓÙ„ØAŒ_Á‰‡. yFBŒXÎãáÄ˰ %µb³¦9óÒÉ=E7wƒ¯Dk]˜°_Òôô•™º¨Ç1 ƒÓ3aŒ¤r1ÞÄ àF„.Ù<Õ4½á7j+éA‰ˆêü±ÄÚ½ ¦™ÿ¥±ÿ:—ýèO¼tF£¤´TX½ûž†áЫ+  OŸ…ßà_tì·VìUðQ¢3ý†jTö?·½µ7L‰#îü^­u?›ŒT7ƒjØÖ{6s„ÿ/wøoTBÀ² ™¯ '‰±ì5šû§6µ¬ÄËïîf8 .úħ™KMhJߥI1Ît(jž'•u!š§Õáº%N“\ÔF_?Æò¢¤©'ÔÔ=ší\ð'ø¸èN©ÁB­Û×7X±äqÊova¦:ˆ†S iÇ!¥ ¾a œ¹=lUâTßµ`<6‹ùˆFCMte‹Dæ)ÈOyݺŠj›¢Œ5dZ÷<» -vöæŠö壦»ùOû2Âïûí¢ð"ùŠQ½xay Ƈ¡*ŒüÆð’ÛZ”IÜ'xÅL=zÔ#vl5› M†‚à»Ý_K8= džž;,‹“aÙáøUƒ²å8)dçªÔ«z«PEkAH‹ý‰jïzÓºW3s½V®‰CS§„hFJ}Gã Ç_Z3¾„hÝ;Q ‹{üKÉTU0„½Â>¥KX˜ZCÄ™p ë‚ÀéÀ/2}g¨•´*‹j«õ »~6vù )dSK?•ÒÉ–}3\¯>é¬H9û¼Áü:4rv hq·zGSî×È›4Çõ¤k4o0%÷»‘Ô K°!¿c Š;÷M^×ýóÌÊ-ŒµÿRJ‹½Ë¢¡Y¬ÂNJ·'hfCjL&¦f¤ê0`óÚÑ…­æÜÃo1ž9A y~oÃ@:*’Æ›ì´Aª2H‡Ç…uQNh#DHúØÛé‡kyi’nN’Yøry8›²œYcѨŸñçqÌ’s¤J¦x,;*{¨qͲu—uý·9ìÅðs¹G„‘š•*ï[¸TSpÀøÁÃÕ® %p’ísÏNà}0[_ù~1ÿ/äq< 9á;ñw~HU–#8qHU!J*Q<—®ÐwãªY”ÜÖ‘5ót>é¦V2SÂ¥¤èa_Pð±Ù€Êšïgj#ø×G‡ŸþgQp2$Êü¯:ög?D‘÷Q`‹ái\ón‰2Y [¹onÌJž”cV³>í7¢h)Ï;EŒ øÝ!½Ì7y„š‘¹G©1þ)€’â¤ÿƾ@óÌB´&k‘WñòàkŒ Ãí>‹¤Ã½œ¢Sì+êó!ä "‚ !H·®¦r&üÚÍûéf?¤¾Á }|A– ‡`@ìîž< 7ô((RsRñ>curT¸<èÖÇpÏFãv`ˆÌ–šj„³’Ñ…r¢çîÆ_¯„ì :ž>ÈGíJ­T)·Nj-ÉP^ÀýÛuê® `Õ-â‹Fíp˜M0%NýjäJÿ1í°;fÅ\Y$䢩ÜÏb.o?È" ˜ŠŒ>ƨP°~DŠZ@Ï´-bw‹|+µ*:±næ…œäøÆ-‘±'ÃVŸq´,C%ŸU#-&Á¯‰îT •+4ÀªŸ8ŒÇ×l>Óxà•UN¼˜áà:θٗŒ‘u\ãa¢ß ÙK­Åí’Á'€¾ú)Ä ÒªÆ²Ä¸Í윌;ÑÒ„L©SÁtå"CÄktêÍuovÃ_&ÔéAu x?å_Ï9¶eU¾½s´Íj_Jg¸.жu|©)î_AñžŸé^Ï(8 {#·¾b¿˜½žÈ«€:#ý3n-#VRzÃAÁT« ‰²©æ8dà-–|—ž¡Š¹¿e"äë,ýûÏhdõ,x4o€œ÷·%¢Ðæ„!Ê¢C{uP'ß¹iu¼óBÒÞý.‚w‚Îùš—$W9³—jeà %2Rå|`U4ÐL=§EÅÍóçsMUæ;·QVf€Ï&Ï“ DLéÃXè‘ô4Y…‰–­7>§‰©¢º¿®ÎJPâÙgþC_vHìOÓnÏM3Ì}j]`]¥¯Á»øJKîŠ8ë –$žÎ¢%ûY­nRãF §Ê|«Ò~W¬S¦Íæë°iH©SAƱh^6½]vº€¶+y¶¢%vtõé_fòwÅpÁò‰FåéHÃ.èdëôbS‡d ª·—¯.´mLkžzž:xíi'÷4ûÐ"Ø@¿ ~\TxçýD˜Fx¡îå!ëO'ßòÀsY«Q²³¸'p]¿£Ê“ÃÄœV®Î~se”õ•y§Ÿ®´–ªA»VB²fƒØã ú³{Êz$£Ö#tÞrq=EF2þ†Û¬-6vy*±ÚtàZýì—¨?rÄCh+ÕlUædÈØsq(3[6š§AE¼½F^òT?O n¦P²í øòæjÎŒÐÁc»ÈÖ)<Ú V¡¬%äËUipö7©W_ýÈàÝNºæïìÍM´QÂrT¨hÝûÛfí¬À:›{t–ešêŽÒ»»;2N|Ç G#ín!Vp ”*8úL~Oˆf¡Ûfaáxà<’-þ»,ðþ·½¦`XBúKòË%µ,‚Wü#Ûf`"ºáU½ZéþÚ ž4Uú!S³:`˜x$Ñ‘ÐÔ:Wn;³Ýy„ùÄ"nëŠãòÅÔàfng à0§åè#$l˜{Z3ÖLÀ“kõ¿œZüTìSêFÑ î{ˆ¼c×ó!ï(håÐfj¨ø±&’¸! E½ÆS³¯t  h$™rñDD'Œcä¾YûY®âßD—ÅÑï®B“Õž¸pÂ~Ù¶4lÅ.í‡,ݵã¯74Ä5(¼è¾ü¾êì›M¾&Ô†ò›ƒ¡ sh{´Í‘ÌaRufuØ«¼TIŒ‰V¼‡¨'c¤èÓd £$?î"ãNÝU4ži´ò¡Š æâ׬ᨾ¢>Ànhfjï0)“w»ÊŽÀU#„öÚÎ׸ôç#^S"E/†ùÀÛÃØU³JÊMöü3ry4‚d—î•Â¥‡Ôé‹[oòwx½n¼+¼Ên‹³Iþ†Ð¢NpD#5‡/Uâ Ú†M°ýÌ-à±Cekapš„ƒyÓ`£ùÖ[D¾/ýØh‰¿ÁN4½}GïKX 0kÿ.æÂYÙòd¥gt¶ÃOdÆ¿&d8ªnÔ_˰.¸Àhp÷¿üÀ²œx 5Ý´oØ€òzúî¿ÑI3¬n|f¬§\±ÁÑ[c0›ÓúQŸ_MGö´I¿'J\àê8F nìGrm¼ý¨’ x ’H³† p8ŠÂºê f9cØÁÑTQ%– 1ŒMóBËÅ„Ãf’kX+ÇôkÚ£U‡žçŠìoßN’ß¼%÷ÄrØ×keaM¾œ´{ð4;h¡„‘íôv›ã 0ƒ+e¡d¦‡ä–1γ¢r§xzôëÖ8r®§§l` 4Jø0Ç5ü0Å%Çhíö5ll¹5Ã'̲7%SD#‰ƒWRMsM‚&p7vçÌfJ‡¥Ó«6S/`jädMè7¦/›W¢óÓ¦zTdQû´&éö÷gÐ÷ˆu_.eÈŸ§ýºWœ¡ %ƒÊ<Êiün—j¿h²_"º3a`j™|¸¼åµäÈò[³ê_9% i ‚ñæµ×GÊO¾ëÃTñ5?™qIt¢vºç[½6ÙýcŒ·1{·¸{HØq1_Üê„Lœ©2ÄÚ±].ÿnð`DXèeZd®>j‡eúq:?«½0jÚ`z³˜¤ÃÂyÝ£m‹i…þ@H…¬–H'CóTøxUþ >ßäKfÃÐ÷$™RŠs¥?aÊ Wö‚¥9Cô“ðâRI¸°o¤s£uqzË=z¶•\ŽÒÑi ¨å´€ÞÔŸ8=FlÐ ñµÕwl¸Ò«™ —Ë.ÝÀgºè2r˜¶JaÃNã8„Ï‚;»Ô&ÞÎÖ~ºòÄ©” /lÒo?}Ä[¾2ª×è}2*ÖÔ¨³Žû)¨Š{¢ UÎf•)ØÇT|× P­™átÔ[=øiûØ…âœA«ï¸]”õÿ&ˆ}]ÎÆÝBE%¬ ’a¡@QTž¿±$ Ì%DábQø¡Ð¸ç´t['eUCyýV§I»x\û™W¥aJ¼ dÕ®Uf›¹òÄëïSŽü0ÙA`œ­ ãVØ»Q¶d›2)ò~I½éo¹@«XyÔ$RžýBgÔ᲎=—«V©F,qÇBÿÍM†¡IÙ)’ç—Þ[ Œ¨@¡‘à•ö©¢Íj›½ñÒÄ2Þ:ï1†·”ä'•î•[Á#Û™ú²¶}‡‘fçç§÷/à€Ö­8ÏÑœþñ×S†›Ù¿3¶ËéõÒO!V¥ÍÌ T-YP´ Q<ìÄr àù«)@—KºeY tÑ…ŽÝ„ÔCÏ©¡tœ‹Å4ƒ^[ȵáé/îQ‘eä1ùÚySÇ›ž˜•Nvü8¡`·5¦Þðƒ§9ÏàeF¹*¢úÃß9àŸBUÝ5—ï¯ ¢úñ N!’ô×SŒ–Õž¤JZ@(ˆµk¢þ±WkzMxÄæÀOãé&´«é~N•ñSæ‚3õQr­—Ç×Âlì7¢/4…ƒ)ÛÃÀ½è°uãˆWpÍ5ûj–ˆòß¹07 vüÑôE8a­Oíà”úö);CµDÌA› èªáG~z£ønÐt€Üˆ_3&‘s,ÝÖ‘ž$Õ²õå5WîVÐĦtg±Ì)‰xØ?•†+ØÀ BuƒY##ù–ÆO·´Â­ |LjvMm…mËš ÈìêVi.M/'áÁæëü3‰ÿ'½ˆØT:[[óWHR§Ëî­âMrR‡`¦ò°¡¤"Oyà!õ¦ö1q^«`m œ¦'zV9+Htl¬ 9¤7OÒþ³Šû”ÕïoZ¨·w7ú«”E´öN»†7½´Ëpɶ¿D$e½µ¶k±v’)T^°ð=:œ¨gCk©²\]¸ÚÀ 3Ñ£,íª@d‹cu®èK}õjòÈ« `ž8híƒøS ûïÈ_„zIʧS÷Ö3-?Dm)Y)縱ø±2dE‰3Y4ÿ³¨Dë‡q”ØšEaÝÃÃìÉ ÒBóoߟáæöÅÐ- nÏ3½¹‹ª ¾Ú˜ÑTW"Âç:zQpE[eºcütQê÷0è[_fA-†£Um5ÿ8‹Yý‡‚¨Ûo*æ™(֢ޤMœÛÒ¹þ|W•‡ðÃT¼‰(–²²[69]¯– ÊŸaoIúRw,¥ó@ó„i¥î ¸,XP˜PÂ0då=¹L:¯nûŸµsB§•¿µHèŠäA¯ƒätß‘7wÒ«ÎðhêXYõë—™nEóêÐ/?ÚªÑÄ&êƒlw=ȵæüòéòÄÌ¡S2 ÏìË“c7ƒ]óâxá=»í 2Ôyiá!ßLpDÏqEÊLѦ‡Ôr¬:-÷—x\µð9&Û„ýR¯+€Ü¹Ê&MÒößï¶`6oSÃù´[ÓmÓ9ðÑŽ™ ›ÎøÃ'KŸë>‡m°cçŽÏCl4;ve:‚Ç ¿zâG~×§ö Ï:qvNVû||œ@­eSuÖQ †ã@¡º3Ùæƒ,¶ñäáj-^…0ÿU«b}”BÑêW3Ά۫sšˆ:ï†94ÕŇà‰Bn^°"cË–¼k•ŒÝÅC«wv"u&=xNùVÆQ;ýà-zÑ´–ËïÙ'q¯r è…}z½¹O‹lÈ Á¯Ýo°6u-Ôt±êFÛ°lÙ®Ëãc˜7 ôŽë7yPÅØž)'zTîŽl7Îú#«Î?éI‘ô'Õ•VÅfžGòÝ[€Qçë3\n0AK(CŠ]fsÃù;±»‚m¡¨ÔÂÚØd×+ZäM¿iCÿÁ‹\3,]jGaçÀÂ%UªÖ‡‘àdLé.à–…iÊÚø&¡y±vŠKöÛ¦ŽDØÁ¨=Ldר³òéŠ8z!¨©­kUäáÙdô‹î~W606CAÞ“`˜´2ÝWWô, 0]Œ´Fø«8zK½$ðpùö>_ oËõ)AG´pON'Ú$Ÿá~¹dÚï9´ÕS\'n5KÛFe«6ûôcßÁö£‰¢.RYüÅ::üõ-¡Ñ8ìâÝÕq#ÁœNù}Í,'ãÐ^®+[ª`ûÉ´‹CN˜ egepEÓ^dǬ>تê˜äU1Rœ>:wVšjn™X;ä?pâ ±˜,Qˆ3VÎùg‡0kOï±ßЦ÷©p¦wdCˆkŽ»±â[J2¦Ø(QAš® lïÆ¸l0‹•Î ¤ÚùSšÖ¯†Gëèæ>¡3iŸÈf*Sø»*ÀɃ Üp9úùu›Üm”uJ,Ïø3§L{!À~/”—xÇœl˜gjÓN¦Äò“YÌ>z&w"9^VÿxhØb€xÞ%Â|±©Ûö™”)ç¯å»£kj† ÅOFù¹a»ÄÄ7(N6±¢_¯ã#ádf­éü-\ÄÙ•}óäp’kIû޹4ë9à|d×ú 7uG÷ 2ì¥@1†9Ä1i¨ÞaåÃ)ï’ÓôP°‘«óÎJ]Q×Fs˜ó³ÀgÈ£|ãñ—¾Š‘S°`¹•ŒÁ‡!ý¦©‚.b Ú_¶#µºïߤ []VN‚Ì ,º¿|(#õžGYM2³°ïCê,Ê)iQh†“¬†‹k¾ÿ×Ü—·Õ &¾nÊ´‘AÅS#Hlÿ7V¥EO¬ Ó3õ! ÐŒr/½´W´ }íq`§çòa7˜¢º„1úƒ@fmÌ_ÍÍEȲ»uLFF­É6ž¤¤µ‰/­ã?8ô:»¿8„ΑAP- Ì=A· AèÎ[¦›]IèH¯¤ðQo³^ÿo~¢³fþöCl(|(»Ê””‰Ü´Íëÿ@­#µŸë ß±vK* ê•Çôº9fÛ¢A)RæÓiÿkéÉgVÄrI+ÓyyüÊ„$?¢Ù»:cnþÆ*sõð*ôz¯ƒzM#]L¤~ÄSE˜g b†Ih:U¼[/ò«06F÷r%›ÍÏ=ØÆÏxU£9¤Þ”ð¨ìwGۤ|)©‰x~ìKÛ»W pç´/m\:¦DDÉÆÚ/ÚÀmLb ™X§.m'’±¡-ù´%õ´°2MÚ‰´‰p!ËJÐõ—¶'J‰Óám`†ŽBm¼Ã½Ñˆª§R¿G:êa§ƒRo;˜?xùÛFù#ñg´[¶v/wHØ]ùgXþÑÅøÖÙGïl´Ž=ç¥WiçXòŽ6]h¿.qü!U·'£ò‚nŸt´óÓ·mó£} õB¯Iya$;ú†Ÿê¬ªÿ|ŒÝ÷¦§òt,¼:ØýÐS¸!8§/}Û'±è5öSý=£‹ÄÏ„­)å@ Ò\×ÁQ¥çÉ,1îÆù´´fÖH}Ýe+TBZÒü×jÞÀæÙ 8`–î–“~†B‰,¼›º[1Ú½Àè $5ÁÖšŸG"å5 ¶Ôø´z‡ÛëÛø*ÓÑØx€õMGö'gQYC»‚²u9@/s÷nšPp€Õ…†YY É’È mv†–',õ‡Ç.ßœÚoÙ+þQ´ÆŠ´Æ!†¿ëîÔ0g/E—+ 5ã}ª ¦¦FºñçëÂþXÇÆ¼uìŽõl~ ZÐ-UIZÄ’Är[kˆ&YÔaiZ¡jE :wÛØÊ¦Þëe×±I…ï* W‚jÉFü›ôG1 ¡x'쾌'[ý§³+ &@ó—°*áéµ&Ûƒ¿M#ÞQPò|Ö·y@P©­¥S„â*aÕN]Æ¢Õ½Ãáìdz˜ŽUäD¬úL>¹„ 5”o²‹ ÒÒïº8_'æ;h¶¦K—(Ÿ„Öå| Cø%‘N™oh²Ãq†Öm9E¯«ü]eú;êg,QÛó) Ä-y°,[ÊW .)n üû܆F³ºNsü ¤8bœé·[s'ŒøP|wÛðÏ7ádoiãÑÎᨖÈf€.ÏÈÆÒD ©Áj@ñ²þUùÊGÔŒx¼ë»f@,&5YϤ—=¦ô¥E‚¶b@š£çÜm½~M±³ë£À,ðä Ž¼™Æ·ZR±ÉÚ&©¢_# O»8+Ò¨Zƒ³¼]‰ñ=Î,-sA#C¬Û)Yƒÿ¤ÈR—¥.beNGÁN ±†Þ ÚvJkå¦xŒ…dll=£¸üàn¯Ç|ž«]cKAƒØ?¹åxLÎioi+DÅ:jxp‚9'ÿÅJ·cA}ªyˆvõÛŽ±×qf½ÆV^›<$9|ÁýùW8:æ›ú¶I†¿YõN´–.ÂÚÿ£Ç¹Kލðóy—Ñ$S*g€û ¥ÎÃ…Å^¼¡ßC"âÜ–u×̹PÕR%8:@¤š;!'«ÇAíãò r‚u:ëLå¼J>FÃp ëkK-³ºQ3ÈÁ¦y8Ñ‚+Ø6Úç9XdµŠ‚õ0|rW²d1Ž*Û3<à ;à¦ÍÁÂÆ9¢¥!¨ˆó-Gëá“ÙŽz¥¥[û®³ ˜V4¸Š!îFwµ»vÂæÝ‚oá~úv\“Á¯²üÌCväø¼ ÖcV†¥Ð‚g›‹ æL¾tÄ¿pá=°±“í&¨þ‘€Ï² oì¿3r%2ÀßÂjˆÉ>GϯǿŒœs#ˆ]]°šyµÀâûð:ˆ0 ŸêÒü D‘@'-çFËœ¯íì†Ñ_}þtÚÓJûd ʪslC#t¡rþœÈ|Abí÷‡]Yyx­Òªq4/Âu~-ì'¾ÒÛü’'Ë¢júEDzz´!ü¿\Fí0挔îXH6tw*y+u¼ç…Z…cZó>7(U$» ömEE-‚±mMÞ4gý=ÑŒ·j_ë¥ Ø$ÏæqÊ¢)njêëd¼í½bvlfa&;’¥Âê)×Ì#`+UVXYSsܯdŠÇÕD-"3HÊ-V£à}ÝÚÝm7HêÝFмˆ*+=rv”úøm\*20NàvÉê‡: F¬¥qGºz\?*‡m“&ò1Ñã÷JŸ@…ùxOçê83¬þP3J!†ó}Ÿ.£´ˆ°hKSɨƗÐ"îÛomè¬âÕh>ýnA膖&N8̓B‹åG‹ gûŒ5,g!ž(ï:.%J…¨ŠÒ×£ýwéß߉è·Äë`)Ò½öDë«Ãµc(6´¸‚6Þr.a%QìÔ<Ò~Ìûò;J½&6tÈ×a;Ƈ”Š{ ö#®±>H¾Ü=Hóå  ¬†ƒ:àxN@Òó :« ¼(Ì·ƒ¦ø96™·-çõÞk?¤©¼˜- ß×1¦Å»%ÏN¸£~8¥ÙÎõÈo¼”°K¨«b÷“Ÿ‚Z®?ÿ”Xâ™×½|ÆPDx[¬ùä\ï[ $Ù&uoã hPòNT)j¡µ0“™!ù `Eaðˆ/-‰;_üœxºø#ZÝ7Ž*ÔÍ}CÖ@o^¤Ë5â’Å@Hü§³a½xŠeÛ4/ûQÿf|r5ï}W£†×f4Ïkajðÿ:S©S‚‹ÄÆÁEÑíM/HŸÑ79 ðžs5°ˆž^XóÜ8Võò¿CÓW”CëVÁ×õz€‚…£¨ÆF,%ЦhäÁÙïõ|…xÛ¸)ãL£YG"9ÃÜ[ù“™0ãŵ+ÝVØkËÌN$@¼½‡}Æ„×î.´E{íåµ³Ká|¼—ÈbÂZˆq¹‘¬g~ÞäJèFv¸XÒ›œî¤©`íq!ëÆCl‘r½̰“Ï•è}G 솨~Ù×¹X¥¶™! Þ’ êÜ‚6мxâ„'€ox=K÷/¾Òì+Ó;mO,¦/­EUë®Õó¹ÄÚ·„ðÞD~èìe!ó¼2à6•Ó1åHc¬ž÷Æ 'É<ó}(ÑÓpä3¥g)}$Ü]ˆÖ‰^p©Ñ3 ‡c¾iÚC½¸uÏǪõ¿+n÷F0à·®ã2—ì=häžTÓOKçpúxœ»ç… %QJ,~SSyƹ·ØX&Ëfù¨‡ïwŽdŒÑqF õA:5àMÁ4bˆ^í¼KȤës´–ð.rïr¤ Y ¼r\Z1!¾´Œ@@ä÷œÂóÂÃЯd¼òÛÁñå>Ñd7À¡ãó8¡ì;e‹x}—#G$²…c ñ¬ÅZ‘û kJcÞ|5€x«¶î?Û ý®œ Ð[ïw)ãÐEP¡Ôñ.hæ#~v\l`K{E¥(z¹wϾäO‰¯x+¯ ˆo“DŽS<}©#ñzœ¹(Qüì ŠÀ8ËPð  îûx\ W‘à^%‹®Û»òô-uŸyô©fäÒܰäã÷yüjOÙ‚RwPʳ¸YÀyí?¨Ô+pqÇšY¬tVÞ>x h±‚4ÆÅ€¾4>$ö~ég³EÛ±]´¨¤"móîÚ¥¿ë¼:Ô3³D}²¡Ã[³Û¸àéLo¥â—Có‡‡p`N‡dã’@”øÚžÐ“@D†˜’Ô¶<šb'./[ó±1\€î©m’K}][i ^:ìºÁØ6ùë•8 ;ŸF(PØÞ®û2ÿ¼(ªëR Òj5ŠÒ¤Lœ~Ÿ7ý݆Wõ¢Ýv')±!ð±Ù‰4ð›ñTC¥\ Ðu|sOë?¢¬}”õ­ArO…=½eZÃÖû@ƒYá “C ­´rÖ«­ýó~^¿MnA׫CÇ5=ಜ_¬¼8ͰÇAøˆ·Ú8~vS}¯ò$â¦Hy*÷}°³d9BÆð?öìøò ¯óR}E@~õ)¨ÒÿYcƒ‰MöˆÐÊ‘5µ`‰.‘QLÒ ú`Ç?ý hdœ  0\ã™m~¡ýàˆÚÝ£ZC&_ÜûAi)û#ÀŸ]´#>í.‰¾º¦ŒË´3ã:§CY ²&Ò³r>Œ6#¿§» ™o†{Ú¥‘é}œÁ¤Ð58:½Rlj—QÉAŸ’w­ë¢žă8æüö)7âÙBqA€!%Ê!²dƒú”ç2›î4³ƒl¿æIÙÞi¼V(SëŠûnÔÿ ƒÃ­·Ûbflè¦Ò|Ñä¤)Á3Ò³V^¯BÒaØÀŸX&_°ˆ/¡‰püZR$ôý*Þr”£èÈš{YôSt&:ËïŽOžJÝ|ØÚ9þË–G»\ÃEÚd*ÜßHÝrQŠgîX &Ìó‰õV½. —Þ²ö…vßѬœ9\ ï—™:sÒÙ¹­™ÕÞË›k~Mǵà ü˳’6VÚÏ‚¡‚ÿ(EÓáñÞLÐ"þ\¶\ñÉØëVEC—†A ˆù‡'H{Ê™hܘp‹>äàƒR‹k#¢»Œ¬tÎÄÙ–§^Äç Á®"a\xfÔs,¯»Ø NL¤eVémÂj#œoº$$&"Nz˜<¢†lTÇòùºž Ñÿ„(à¡$Ÿl˜7¹ÛUotÏ¤Ï åf-¼ ¾½ŒKïÔi„,Ñ––[Ž>*¿Öì‘C xÆþÉk3Ä;îRaë|¹Ö÷y¢ˆ~1i+îc¯9ÃûuNÇÁ7röøÜÈÚ+Û°ÃÎTÈ•Ezžr;U‚·{ù'r¾w ˜f§"v‘²Æ£¤öÒ–÷{íøCZ< ÒÔ'kˆÁÌ–U+™"T, ™­Œ³8…nEÁ‹^9€RÆå W¾R5JAkzn×ìXƒÇ*µdôu{c¹ÉkŒ>‰ïi–­Óê·4¬Y›S_ü3àò·ÀTyõ<7Z¹}VË4ÏÂ2•׿ÛbKŸ¸¶6¦ÍÃò°¥Ð5ÿ#Èí?vkÚR/–\ø[`¸¬ Ðt:×»Aâʽ˜3¯,e0N.&Þ\6=“Øð FkŠb-"C¥ëH¢1€&Óßÿv]ÏëU R´1çH)ÃêúBB49w­È®5Õ"Ð\TÉ.›ž»´;NÓP¼&EÃb[S.­—¼+dÝ´Ëë3dV‚ôV71áá‘ú¿ƒn ‡©°Všã˜.á+Ú[¯+Œ_¾hßÎStB:;,•98βÙS׆˪š¯õ ¹beW6(6ªg#J£wék¹Z’b´ëØÖÑãÈ1M˜ ®[/W—놿¿³“‹¡”—¤†î1ÇìcŽB²¸à|Y*ÃvÞ fh·vSÀ#ÏácpÙË„CG Z«¬”wÓû;[S¡ðªüjË&¹Y–Tþ±Âz»ŽÖÝ:L¹v…uOþUX"ÂNñi”¿˜×С ºC1c<©Ú®„ÕôMÿx¿÷Œ§§z»ø‘â2ph ™.nî©w»ÖÏ®6 ž,¿FîT&æìÖÆ @Ãbw'^F|=R9U´¡(YE®1^ÍóàC6²ø(ñXÅùW÷/4\=äÚß8ˬòRðìs ­”—Fï‚ÊfQ虸• Aèïùö¬Œ®ÿˆ­¨()Oöy@õOx§cUDh£õãï.HNš$g^Qi»AñÉ.e¨Ù‰³ë N†®Õ‹ !¥ !ïáql;1‹QÏp©&©÷Ù˜A£$?ÿáè°yN6ËÊe\Ù hº¡;x±}¢öG3r:»Ûû(}ÜÏÄI4³çï/‰oIØø,HÓ¡º«jœ…E‚šž(i¬+†ç“Gð¥P¬Ð•J¡D– 1îGrùÿLqùS“ ­ûAH*½ÓýÖÆqÚ³U!zyŠ"[ø}¬#ÃÉÌ8¢¸ ßA*ኛçÝ&ƒsS`®Åc¦bØG&ÿÕ¼€ù«ñâXoW^´\ó»ç4×ÄQÁ‘œ×fÖ¿6^DIg·0ø¤oÆÑŠ“ ÌY‹ÚßÌ#Ÿõw"ÐE {7ú/#$®Vs­›H.¢,V(±ck›§Íߨc…X Ù‹lŽuyÈBgûMfèÔS¦¥J;px¹¶ ãˈ\W­àEüNiçd²X²È¤\ ÀËž›ÃŸß±^T;·åì'ih÷WGóm<¬Ùªt Ö[Y+R–ýAŠaL(#Èûy!]±Žšwvª‡z‹øXaçC¿&¸ú¥Rš\â®å½Jj~Ã2SÄS´ ]ÅäE3#ÐÝ™“Šì‰·|çTË¿d-ª›¼Î5k<1¼&õÙî"‚éd ,úU+îHðï/oœ‰‹Ôv7¾Ac°ž7ÈœÞãæï×°ëŽ>B€P¨v' º‚Qhìa»Ud8gß,‡:ûM6WL Û ëI­¿é Q{0Ö\TÚÁñæ–ùY¬i_‚‡fEó8×$y˜Ç Bü¹®LdžÎ”då<npÓžWÛ”7o?Æ,l¯Kw*f·ù‹Š =‘¤šPÝ—nÊb†Aá ’ôì‹ùË©;J»Ãâ߇L³Z5žyÍâ$z“éî‹«efóì‹;Æ›"_únöÀ/jN]Èm{]­ø´°>È;4ñ‰³2X#±ü‚(K•· vŽ«¢ ¿&»Â«|”Ì!³x½ouž¨p²¾ãú¥O«Y[—ý~jk£À2c—rCt‚ÒÃIuv€úÚóõX³ŽðôÄhñž•è&AªÂ_R:.º–êÖeýJàýC¹¼êÇ?äáãQ`i[‡ÔÈNSd±þò>oa[ÚýB@·ñ1‹áIŒ1œ–wbc`]¾‹Œa6ôÝ>ÿ²6E5Àxîð‰ß‚DúÖ¸Y( ùlû³Ÿ)'Y¦„saa×N¥zVÏiÙ¼‚Ôté¬@‚ß‘ËSÑU×vu<Á{Ä?ð…Æ^T¼Û>ÎëU!“4F“"‘zXZ§·oÑ”9¼?¯|é¹g`9Cù.vY!¡iJ¯i=‚T.ÑAiÊû…*ÿ«Öué$qý'اÐ& ÍGút² Ÿ¡ìù³ÔËo Ë]œ5ùîäêÌò9ºõ´,Ä5ØÂÝ÷-FPÆÈ{ÍÙ£Rã¦ñ¨ÛÎÅ6'õÃͯêá÷oJÀ£¹À‚zJ:;Šži à ð(n‰x0–@Uñjr[œõ™Ãd?ÃRûO€÷‹7{àý*ôö<(LÃ<“nºZ’ˆOEt ß­ä{kÀ%ÜS’6ëÕ`éÜml\Œ3 ëâÐ:½‰g¤ž[  Ðy±Z3ÌÝ xÌÎíÌ-êw§ÖPf‘o÷™u/'±‘¾’íÅwÖwòAtû˸š(Aà$ºØƒºÎÃÎeä‹ay‹ý›m8¦(  hþ3jµhòl¼(ÐþÕã.ëÈûÏ‚]òßøväl²oùVÊ‚tS3)tTÑù‰¹?ÿœlûQNE×ÜùFðãÖK0À4=Ç•-…î ì`>ø‹ôº¡xŽûk*þ_ÓDN)CZ›+ÞéÄÛ8áã·>±*­Ö5bØ=¹Žâ–H;ÏV³i³Ñ·1ß?V•ë´î½V{¤T†,ÐÔƒh£p±Œ(œ{ _ KcoѶúùù©Ee8bYJÉÖMeÏ­ñbŠ.åÃ,¹“.W=æõ£–^Vî÷¬57í”? üI˜UÙ_”r#*Ä_4C0‹É$T™3µÀL6lØém™ùç¢Y°ŸMz„ÿxwYPê6ÆúœUZÌ͵֜ý’LŽ+òËDå阢ßÀWce¦¯*ÈøŒìôHÐíw]¯" <Ù}Ìa@NùVæ >V ß?SIp™(M²Z¨ÖÃpéÍè²g¡Z­s‰¯ŒN_:wø}s~˜?¬Q_¬~j/€˜ÄÚ×ôøZ'ã%«u$rØÉ”@íŸ;ëÎ7œp‡Bó¸Yê±°­W¡wÙËÑL¿ÝA_¢)§®õƒ‚ÿ]Ð|õ‘ì ¢°äáÜ0ºh;2œ ªÇ›}â=îcø(2ì´?H¥²¢`å e¯ë†Ñå¡Mu);ƒŠTÜŠòô¼¯L`]l/‰ìÒ©Œz›\ò¹Ù;}|cÐT•‡è´>WïFtTŸðûÂ/!ÇnŒfá2K_»:Pêy›¨ÜŒ€k–”­ 0Á˜}S〢 >G1-ª#»ÜIõ%a Õ5š7ÿfWîð ²F  €=|AƒÕùVãEþj¥fJl<?6q&1ÊSø]AŒrÉþ` ÒúaÂål¹·Îx¹`L/:^å‚ d¹_CR .N½X"È^b„crkÿúîN¹æR€™XhG‡ŠÜ¸4Â]P“á‚Är]·lLëËóDzh}[ðCU)ÎÜ!9I$†c)ÔÇçëSRù$ÏGv§ŽD;Ì…ÿQì†öÑÇÆïSág¸N±»™hhC¾\´ŽgÿfƒxˆÝõÄILÅf,¥,ņ´Ø²ª‘GMKrùk…„_m_™ýM¬O¦€©Öl7ü ÜpÅÍI‚7k›†¢t‚ºËG™›r)Ý2KaãøEûôRL©ð>êpÜ9 ÖŽ({¸‡ãr²z6 ¦jK‡´ªqQ]ÁÌÉòf¾Ý_{–öè ’&êñž"Ê1áû`§s<£nWe¿_ìôdÙáOó0#­vÓë/3G¹§TJedž´œŒt„`º”h>ŒÕ‡úîL¤®‰Ý‘l߃­Z!)5òvc(Ó€îë!eÀ~»Ùzãña'ï½¹â~ƒŽ,ޏ$Ãî3“¥H$÷‚õòö“‹ÒlUíÝ¿V³Ç2@lÐNž°=ÄXÝRW©Ê¿³/9õ^¬â±J.ö—®D²ÆbRàš“®ñhÎW9P¾DÚ *'™I3rÞ%IE“Èœbvµw€kÙìܯÉO,Frÿ¯Ôô[`ƒþ¾Ä–Ù+à7ÂÐñ;&Î"ë_µÑk&| ;OÆè²U÷^9$z@O82?¾9wC©õÿÑ7x-ØK£Vbò;ÅWÜxIb#,W±×<ÂVé³G-!=[¾æNÄnœ}¢WïË++ªl¾ùY£§X)Ÿz2Úþ^<Ö 2àW$œ0”4Kò§mwdL‚ཙ¸N‰Q±r/3óÁ»ÒZ)äý±ŒÍéô’²OlF+«“™™0} ·SÈ6Ðð‘ 3?G)r{ÔiVà‰P ªÂÉ;ã8JK 5(2†QùçS@ß>¦ŸMÚĨ²°(³Óì­f‹@ÎÄÙpKYÞ£ƒª#nU³¦Kµys4æó´ŸT‘B|$a¬Îí-Övâ‚a¯ÈNþ>—ñYýôwQÎH뿨‹xCúé#-ÆM0bøÝ=ÔÈ¥¤MÖnÎ$Af–¶¾ŽZÙƒn´†’­–͇™‚¿I³þÙß3Öë sòÀò ú„9úh¸ ØnÒ‘Óºö¹ñQ[ûŠB½3>—móQþÂm2Ùí:2T“†‹¬œCc¥˜< åo{ Ìèüó4‰á—‡úÝÕ…š¾N"ULè“'¥(óœ6wQ,¾gD(äUq¤×ü~µ¥uü _£ïÃàÓÎ ©šf¶3ïYkײ‘—YR»¹«HóÚç G™8±ûÑç|P·°ÂWTÄO:G8îÊ@3 6¡0þ©º¿³ ä<¯ø¢”ˆ=Ï;ü­”+¤ûkÆÚ÷šm“f¬.Œêp¨‚aL{«Ÿû0¬&§Ò4Öµœœð˜ç.“Ê“´÷Ï*JÆŽªŠYºrÖAOœýÜ1Åà5ã—±ûœ´°_W´0ä¸[+WKÉܺÈÀæÀ<9»íe˜mj"•ƒ#ÔhuÏôòjßÞ€-pý1ÐÙejÀÈ÷Q¢‡­c€Êo(Û ´¯ð¤‰Á=çB¯˜ùdwB¦‰…dyö›·R7iåBØ‘½ü}¿.:QyÒsShhùµÙðN ©Fk£ÁlUC„× ØŒ)ƒ2¸¿ÖSAË\ãˆ}ãç£ ?‘oƒmJEp‘û;ؘå>åQî¯îûÞb–üƒµ¨xÛxyeùX÷w bÏj÷¤OÚßô9¤ÆÌÿ"HE ޹ýŠ$_‚UÝ[DËXÏÓŠz©Ûìå_ö1÷©¬ñaƒÉd±Ä¾ïbïù%÷{TePKn=uš°ú¸÷xÍ™âGW»Å®VNÞ_áýQºŽEüüÖ„ãå¸käFßóÄ’Ka,/›Cá×éXZJDpƒÛz.IpsÇÎF7ð*+nQWZŒöØAž˜ž{“w‘ÇÄhL€ÄÊŠ¡lƒÝð-{ص‰ZˆO`ôP5ÀVb7¾²rÙi¯q†–›½ºHH|âà—†Æý÷f¥ jøÉ^Ç>!ÃîÎxmy¥eFÍ&4yÈw0z{3œ²Âxé/°)dof>P¯Î'[—UL„Ñ…Ö¥ïë)åÂʧ¼2"iE÷.wß*ÏsºA|“.ÕKJÊ>Ž ©ãuŽv¢9’èý·èy,*J/kWêzŽøÿlj·ãñTA사â’@Lb3—V±9DGå8iãâŒ<7OÇsŸ†Ô25\cMÝVÿf©mf×ß×ÔÂaKÿÞ¤±Ý‰Zoѹ×*Ë|®+êãຠ~Òo-0±càb÷ôsçç’ýÄÓf„_ µüƒIwJ…ØÉPŒKF¸:S{ :P~u‰¦ŸÁžH W¤Ç… ë¯Ó–J2µðü)ù;&šxyZGwVÚ›RòE8´L>QÕ¾¤@Õ×.Ù´aŽb¬cÃÆÌ-š´bzO±‘…gI}κY5ûV«i$,i x#éEjcô²«Ð⳪Ùíwe ÷µí²lVëîª_×ÁþÓ>;aKÐ,O¡QœY@Œk„B˜^«¸¡™RB5NeÉñÄ«¡éŠã­Ü(üîAGwzsL-Q (5_ý#¾õÜe”Æ6Âî å§J¡X íÕ(*a" ô"“(FÞC¼`ÿ÷;³â¥nDÙ«î¡ ´Üé]Ïgð[××8?.”mrƳ—1Hþ[X{®™æúBÄEÇu¦D¶+Ÿˆ‚’Ou½²9ù/ÿ¥Aò«+iŠ=f¨HI´й|a+¬z.žìåT=Ò<¡ÛåöéÐ&®µ¦u©³Êgb4ø!7&ÂD,†%~ÿÇ{>ÙÓëƒV§KŽ‹RCæÛïþÓ€KÁ:*Àåÿ]´á­Ê[6è&K)šâ3âÃ!ºA€$¾hªcEñjßýËõ(<7ÚOÅ µ›p@IO7í"¥ŠEËno>ËØ¤ÎwÄÚXWsÍÁÒKQ?ð ‰õ-Ùý=;Â’yÜgcÀÎáã!kðuKÓ†u?•LŸÖï¦Üq¿iÒ|e6ã–Özì2Yú°Úy)ÁIù6·etZÞ@·Gy¦…±½'‰q"O'HvÝ:2H’R.? P Ú¾”z€¨»6³W݀Ǿ•z{í¦np8ÖŊмõ¦'¿—¬4´»‘:€`& 8Z¥˜ ß7…á88ì• ùÖ2ìÚcN©ó*ÉÊuY* ¿^xÍânó}Ûy×3ز ±jMŸ–ÎG·WgØvºF2í@»…È;–•»EBx,lqgªIÅkN¬yàû ¢!y=]pÆç‹a[~¬gr>§–åd·!´ º&·Ùa”‘p¸ ž¾ØqC°®‹q:qcÒSt5[.T‚D»ýŸQÁ†„"'iÄ×çå?SÓ¯óïq_ˆÙÜ qÕé„:DƒIA#>êÚ(ÚØOHýûݲ{Q?g—‡ý„Å‚úuB#‚EVRîûËB²¾MX½³ÒøBÏRC…3¿™i¦Z«3?’*¯`VŒ|enE1g×jZáZY²«‚¹°3ŽÇÈ´—‚vüzQX¯± {xÊþTÀg­ÖÄ sçÓå¨h[ÉÓÔQÒûEMÅ(ø6TD“»?ú™j!ÅKÚP>½lë0ÚÙùÄoSUc@•<¦DR€·¦IœÒf(ú•.2ÆMY9Þì¢f˜*U’†} Sf"Z êûU3ðbXªµ¯»ð ãâHä <8cpNÑÐW}Ja„dW— 1ÎéÛ5ž1„Ä^i| $ç;º‰$°…×Ì4˜VoÒ•©]8©|ÂJ Ó”a¥@‰N´õ¥¢?Á“Å}5ýÐÈ‘Œä8PP? r ãP"¡oWÕû rÖè,F#ÚÒþ\z–(ÛÌ'øÚœ·æjׄBƒ®¸ ýµÂߢÿäÏøðÉÇhì™%JbšÄ6·½‚©¯‹ús•~ùG©Ã¡ã®^ðÉI†üÕ=ŽEM[±?ô9 ž¡uÓÔeÙ²Ó£ÂÀ𡘾î?I@מP5ŠEœx69»?Pà/rvˆ‰ióÆÁ,½‰'s7èÜ­¯q÷zºÝ-ºžQ¤if/BI4§uF0+D~xé–DÚ|vSLx'fB!ü¦é9¿áÃ}*SÝž eÒ²úÙDÜÜdëíùÃXd]ÂSñ0À9w xaÓòª:˜7 ¥Lˆc ŽÕî?O˲£ìkXLTG1 kØõ~IN`ÔoÂCšþ1ïïˆ÷ Gê_X€ ƒ^uM¹F«Kø£cñȤۅRAAfåmQÀÁ|] Û¶ùêh³¸iò`ܽKë†L8\B1ŽðÚ0VçJ®—SB¯Ï؇xá|c >ld–ÍX‡2v_º©©‘Ò#¤]- ì&–¬^Ú¾>…#œ¯úõ~­±¸t$N§® ßøŠˆÂ¶n䉌h•|‹º^ØùJM¦*ê͉¥×>æVê·š-AõSÕ‡}ÞBuÃð1q¶k°Dáô‘åÅÊԦ=xÎMC¦?/Y`3w¨ipløì52ô’~º_Æ"S$ZºX5ªÉ "“†ÌœVçw7]V¾H¢¸³;NúA?ÏØ|¦þ¬vìì~k#€SkM çQÉjô[ÂÑ,Û˜Œ¶ÏêÙ±1åÞÍ'ª-~N)ŠòúAq‹Æ˜B¶Z»ÀvObYSµóÄW(ähdãi‘r '”nX¯ážÙEãOÖ°ùy:`üN[¯!p †$U½c~Ab*]i˜L»ý¹ò’ŒnžQ¥ôõ«/!sOÒÑŒv;wÞ`³šW(Î7$ŹvB§^ѯ´å%›:)‹q[Ù&¬µ—l`´\‰¶/cƒ¯Ãª¥ù@Ú‡©3¬±øþVpPšûÛ%nïÓ· yV6öÿA¶Sï`mø¬±80G¹dy“uéékÜžÕPUÏC¹ðmY”[‚ Ûè-eš{ÑÔX‰bvÂ=J¢£ë˜v"le›PyíýCwHb[§2ò³ÃÈ´ÆP4ÐãܧœŒzÖ¨ŒýÒ‡Gg•Ò@»’?Õgå¢Nö¸ ˜^„.öV¦…“Ÿ´7Qý͈k×+¼%i ¥È“‰´…5ZtÍÕø§MZ­{*Y™ËƒÕ¶”ô†FkQQ2iA@_¹~¬˜4{Æ) ’¥Ëü©oØ»à âgêÄ cðT_½¡È=ü,‘ŠA¬™w-ñÉæí·N=ËÉ~'aø÷&”úîïùòH¢è˜ã4æûãni’J Ð{O–³Ý)±hbÒÛ6ù©ó'\š)ÌQ’ºù†OSàKM:ס{¡Ÿ]ªnˆÎʾ)Ko€šâ®S–Œ3Ml¹ „&&j2UÀVéÞ‘ OôÖ² zˆ¦üðc~Ù`4ä5³Œm@³ ›¬¸W¥»çÃÎ ó¯°òbsÞö·ÚéiüßÞ†íø½;×´ŽN]Þ³:ÉðUÚÉG©kÎl^A¤rcm§P±WÊ„Ôu-Hñ:LB¥?c“ä:syê ׇŠõ„H ßwܙʣ_³5Y]n<œØr·#Î}Q8ûìÒXżê¤ÌÓï̆ﵻƒu ‰\øÎ‚}ÕxÁÊéÏûW£‘wÂg«4K~—ŽÉ±àËe—F—ŽÐ¿á~oD¨ÞïÍv$áŽÐÃÿ»ªö¨1bœ³W©ÖÁLÅ šdDÆÆc7¾uÆ K9Jv,*&Õ>Êx+Ps²p)ï¢ß%}¼ñ²‹øé÷Kò–öÏçï¾ÅuùHÂ-üʇ¶ê»äü]îäü:ÍÓbÖçcFlË=Nͨ4_g†ésôÐè(ÃrÁ®N‚' ÄfW¡‘•‘º3¿È£gÊ4È}#tW¡9õλŠY÷7ÝðÁ ¹ꇣMã|q‹ œ7¤ö°—3o¨ Ù <_?{GŽøêâ^kGw¯K[CrÇŒ"êŒÔ(‰æÝ~ýêŠ/æïšÌfÈ`zålñÇ®£êl-Í •áX9%VóQŒÆ! Ú7J›ØÆ´ýPÞ³>X{âÖeÍDóò›*TKÀ2½ÕGkMqŇsêL!^µ4±á’‘†nj³¼Å ¯¨öšÂ™V­8ýëYš÷Aá9¹á½›ã£Gè4úÖ5M~QcFû˜Ž`¾,>C‚õÀ¦¡Ä€•Ö…ÐçBqóƒÊÉÃhí³‹{RßM´¾ÇªW<Æ—Ú‰¼nta¤‹<¥ÛVŽ~±k;¿1\U3`©Ñ2rÓy;jW·„~´­¸¥ïÒŽg¥”ûqŠs¶•Ôn²·]¿‘Á÷¹•„›ñ³Ÿ·›Ü`¸Âߪ¦æ¥M[«ø™/"JÚF|â»4øk4¿¬Üß‚Ÿö‚̽Î8¸‚Ì&o–+ÒŒ0".Ü–9,ÕÝ|'Úõ ӾПÔñÃw[y‰Ìδ‚#ñõݦè¯×¿ñ#œpˆ+& ƒR‰½œŸó’t_Z˜Fc¦q£”è]±9ÇÀÅ2NKÙ"6ãGw5Šh@pÚØ+=IhB2o{}À2JÁÞmážx™Ù„½û@ˆ¦]cÑR¯÷"ùþ_:|;è¼gÔÜKǨÅÃ'²§ÃpþÆt¢ÿŸI²`Õ“7ìQÙ…8ƒÛÀ)!Ôžþò:‘FY‰y ÚFš“ƒÉr?õÏU媕X¬þ†™Ê£ ^:½ñªm@ávî?;]‹ÚVébÚ6Ä©0OË»éx½ü¬"ájÃðÛSÆ’¼ÍÁ/ѽ`Õ>ÈqĘ¿Ôfvm{¸š`Ö¾[’Tt‚ ¾‡¥÷# p¶F&.·µÈíÓÁ¾L·ï”–9®x5—StwÓXöêÕéøËÜMxè›°m܃˜3µùÒsT‘ºþù@â †’-7øë Û^æyÍá÷hŸ°pçï״ J@1Óý‹Ê8‚5o:lè¸{R’¿—’YuîÜ=²ôü/þÛÿá¾®€¬]¤Â•mßï¥zòYrþ!žÐ<·å&”é‚é(ïÜMgN„æb¥»nës,»¾œ Of}Rd‘$·¨è{J¢@TM»V8Ê%'ë‡lðƒ<ƒ)"n\Ú³y#N kqøÅoÁ^¼*¿ÑMCDH?•yV£qdÃy˜“–’™Ï œ¡eÌ^<–—2BKÖ‘·2Ô˜Æ÷QéÛ†ŸÚÆ/¶þÞ÷ÌóÈ?wÀ˜€‡á /Q'w@îîÆ‰5¿öÓ†|H°Ské Õ²_•ؘ¡ º½>Ü-y^ƒ¯ë‹óÍG7'*Ë=ª÷H–T‘lœ Æ Å†ÀYÁÜà ʤªýÔ$Û×9%¹·æHä~P„ÆÛ.uN"ªHŽ:±»ê§ä oÑ›s‘ÚŠ½TiãYÁ* …†KS‡ß—§örÐ:‡›MÜñS~ù;‡éyyÔM} ¯÷s‹àæ‡ Mò|ɨUü^¬½ñÎ-"» ÚàfT›¹æºÔmä$ÓÛºH™š¶.Œ1¯3ï9€ vž”³Jù®Oä8ʽëˆþ8¹ENêúÖoV“JÅ]­)~1‹¥Ã˜²bxå¥ Í]åQ–+‘ݾ==8\mil¥ˆ¾~Nͧœh"·ËÛ€^ó4ùÆ{нÈp¯Õx‹(Ǻu0ŽøàaÖ  ¦Àt¥Hâ?ÈhN…3K.;%“x§¿T‡ç"EvÎ@ËaøaX„/ÉÍMñnÛ¬wòh!pƒÃ¹„€q¸Š:T2J*3þöˆ-ãhÓ±¹°©x3­u&$ êË1S:‚ÄØ³¢CG4“Qž ƒry‹kÇc+ã_ªtÅ15¡ÉÅ0¸\hp4È—yï`W"ºžˆªu-.¾ú.)Fùe%öÐÖ®@þÙغ¾]‡¸Ót½LF®²s›)êguj<œ…48í½Ö!89a㊉©lóÊÙŠ±ÄÂOÀ‰Ø¬ôõÁÓ¨eâ)ãb˜bà°)¹É°ŠL›tiH¢ïD )8[£àöа¢Ã™½I¾2´[ž {ÀÕ õ®ÈØ~‡©­ë@,U±nó•kO òCnÛâlãÆ&¼O¹tJ™k}*LÃüwÃW:mÛЇث?Pæq~Â…Ç¿¬eKO[]¹cKýû'ä=áà/u¿.àGñ7 sÿ¸þÔÿ|º‚œK2 ,îŒa¸B¡÷1Ì|zn|úˆI×[@QqqZAWG[V)ÕS[9ÄÉW `aIâ öðMC¿ï­kÇ:E°f"4n•³ÙÁ–Evˆ–]ýtÒÎ'~Î>—Ô»‰UÇ”¼e³C ×øõçºA!S‘UÔR«—û¶çÃaU#ôP™ê‰°¦?H釲ÒØ.+)®²åD’ŠzOnÌ/ 9I§’GÚ1zû+ˆ¼R'˨HÔ…—eNX¯óÁ£­—«”Ö^ê€Sý¹^à¬Ä-—êKp!½°E¨v>ë(å>)› ź¿9)õrdã_ å…iÙ¤[Í+áЇª^¿2Ø–aó×=Ø*ÊçБœß÷oø^à!õS#ÛL±Ù1}*W̳g·Ä}‰÷—º!1µîÑ1*œÇŽÐl ¶d@k¹vö€b“ó‘пÖ/‘lˆÔü§L ßå…ô ȃ5¾ËsýBûî×å,ÙÚPñ`€3?Þ—ûÖí ¯/W…ôHšä–©WL,“˜4óùM..È Ê Ã#š>ä®b{Ÿ WÏ÷ÕÞ‘ ¤õb4üÔ¡°¹8aeb6N×)4±†8‚¬újº Ä)à¶yH÷‘ÈåôÚŸ_oZm oYÝð--)ü[šÝ²çÇQhD.ò6þóTnþá€Ó-MÀœhwë<¾bk= @ß› q™6Ϥ¶â¸ÑÊ‚,‹WæÛ§ôaZ…šÅºÅ_íìšÈžLVf÷·X©cÅ8"GQ; HÔ³vÍ}ÜU"ãÀ«òω„8îsž-…%0Hõ6¨–7Z†ÍŽ }ýâ&qRªÚº»A礇Ü™ï8¡* »‰êi“˜;é!iŠJiŒç­tÍàjDCIŠEBe€°` 9ÃeÇf¤÷ÍðªûU5Ѱ$ƒÒöëŽɧ—ñGâ©Næ¥Òu¯¡û±‘f 0›Éµ@ƒÇè˜ä‡gm{‰ê¶üsˆÌ°ºµ¯.A(q>€ªpóÚµmÂôð •W³q ó<‡Wi®ªƒõ£%ÎÁ1N¬owžŸ ‚Îöóó†ÞÆ;ñmÿe©yèF¹c ¤Þi]‘ËüÃ<ø¸¬ _o•<‚ •¸|¢”¿åWuë ;øš_îåvÖdÂËi¼TU Úý;˜Ž}Z Ò‰Ÿ¬¯ªÑÚÛ³¬ÆKÁ ¤ EØt9?n\ôÅ‹‡­û£™T†¤Ï7BM#Z ¹SdÝädaP]U##×–µÅ¨Og#êõ`\HµBò½’qæ–L'¡L,Šø{b¾¢ØZ’9 `W‘i!ÉÄVîJë×£ÓY0š$\ PvW8æz0kˆ“sý|æß8¬ÉŹKü(³šHÃâ?©Z­.ß]?è@²Z74_ÑwOáÐa[É|ØutôtASކ †êQ{KRϲƒPÔ}êioˆÓVg¡%EñOêè›ÞõxE‰ìê5RxHHPÅÕn"Ÿó;?¾Gü-q­ë?•Åïì†g‹ý3xâz9ô/F\‡& t¯_Ê©à(J§ýTq¸‰¥ÜV±B*›ê˜7-þ‘iKSů—í½*n£A«Ç?óÎŒ¾U‘3™ ¶ŒTé kVÃø”Âÿ™-.!-Å-{‚™ÿsß„EË@¿ÏNÛXÒ8®&9è6cŒåYíÕÞ.Ãñ_/ø–—•¬fîpOê²Mäf/WØ€ æÃ S’uW[ñ<[yCËÝòƒ£ÊÎ&{Ó]úãƒa K³íyÿãÓ`vÔ[v|Õuû‹–¿¨&0î…Aº€J¡íºéÆ%-: Ö`º{ÝÍÀ]Dö.T)õ°^ª—±}]ÈMÙP2‰sòݽ.Ôm;X<Ù‡Ú?F–ûH8¶#¢1 ߨç´9?â{ ݾN§%Û~Pu6à6 v^çÐàå<^™b6ìÇ:ûê<èÀxÅ”GxùDXÆ ~£BIYl©˜ã}"®õ`­)/|ÒpΟ®õRM Ô"Dž>t¯úYă‘å¼|$"œ-ŠŠár÷6LÝÌD8 3|릉oRq݇%/Õs$ΊŠ[Ow¹–¼ÚOÄFîhë²ËÉqROðÞGò‰[[ðšRÍüñ¢äW9EáfÖ?Çæ¹5ÔyµÙÑ´ˆ<#1¦ˆ¦p´ëód¼•^y%Â)m#cÓ9Ã?Íö„4¤ƒ¸Ä ÿPÏ`!ýD³"qÛ"ú ÛäØ.9Ï,B(YSçÑ2§=Õ7O+¿?OúµÂ{«ü”++ñ“ʼTût¶]aÁMl³½Ê ­œœªØ¤–˜L$q tXÐͺ¦û€ zvÏ)æØjµDCG ™K*'ž³-Ò~b½¾â É´ñ¨ßõ÷+}‹Ž â\¿/ºûÜÙÙˆ…%]ñ€vÆÉ'µOÆåaŹ‚\ûÇ+1,0} r©ä”Þ4¥;÷Ë"ˆ®J¿%Gb»XÓvè€N]WïbZ¨‘ý¤‰N÷×>g…Ç”û;œÎèQ¹p5Toª%^Ù©v ý7L9쯅b $k…ÅÍéŽÚt`p¯(“NaŒ8sàñfþŠwdF6‚kËå·ñÓå@”§p9+:®Ä†j/\:†˜ý¤ kŠ“²i׫çÜã‹Ìð€[8»/ðˆ1n‚|îX êžO¬ö )ÚEü³½ÇŸ=$äg ”†Ê»Ý!!u*×Í\̪ÁËü«·ÙÙ%º·ÐI2B°#Å,­œø'”‘·ÆpàW¾Æ4‘¥GÚІlÀ¹c7ß„¿Y®Fø¯ƒ‹Å?üG ýmb'\,ëـγüµç„„':•¡‚€Ä5>ì3gy㛸ÅvåÓÜ$8YŒÄ°²ÐÜï#¡¢P¢°uÕ±m^{ˆrsôD£Š dznÏÃTá y˰¬:” jÀ-êq÷ãês…gqɾÍžÔA-÷p­Ç¿ÚÆÔˆo&:kg`ÔU/²#/ÔÓ>O;›,=† /‡™ÖÐÁ’ÁúŸîO™|ë&µM÷®Æ:ëËI•Óç£áõ£©ô DHÖÚ?ÎËíaõÅÅ2ºýE .ÄÖ­¯«Ô.O¶ÌnŠÖ¿Û¼C0†¥ún°R¦'k6±îu`"DÁž“Œ¥‘É«;}â=Þ(6;ñi7•r¸± B))•”±”ä+ßËz´€?¬ñæmÜËšèù&Áí;6§"˜^Šô=ºÿ1˘'$GK6u#öÃȃùcãá΂PSq©÷~SÚäérg¸sY}ø9ﶦ8Aˆr„~â§zÚ-”ÅwçKŸ²€‰ï«¿Åp÷ Ã_;¿n0šôÅå6è8»Ž7H:«SÓ£[Þí†^9áF_ j {h¥››M8ØpØlÉ[É»æå)nm„”µˆÉͶòy®naW'AGm Hÿgˆzó,j±»‹c'vWvˆ%ꬃÎä.Ö yr•0˜8¡Ià:Jh*bCþ]Ê€ø…ˆ,wPb.µ)‚) rÝ—é¸s)Kü‡ e6¡úŠ1ŸH =k›Ø˜½bLžE ¶l#÷k§Æº–YÝÐ9ßû\DïHÚÑ„¼{“…„†ö>gÈÞ°VýW„I·Dbo6DQDZ4FJ0[/Ëk”_KÂtô€„½#Ò”\–jveÙ qâ|ÆÜŸuR•ÔÞÖèÐÝ+hL$lž š®e«•Ñ÷M§ò›…<‚Á éTõöé)qI·õ.pím{?·Ç…޽«w¼S+ÍŒ.Ô+ú°'CÌaÖÁÛFãÜnêø"ßÜþ§´ÒXã㡟×<…‚_Ø£ý#®w™ìNAŠAeø(Š äBe3Û ³—jÇus¦MBCƒ< ›GF,ã=XˆgøÑáÆÚïã¶­˜k¢Šè¦JØØ¦\÷3%µ  ç†þ'Yž:™CcÚ¢…à¢ú»a7Ë&Úvÿ2ôȉþ§DM Å÷‹ûñ~:âD"K™°ÎOS ……ê8eÙ¤vùb“HZFxoÀùý žãüý\ÂŒ²= Q»œòGŠ8Ø5._2šÖ`=4d§éÂNªQ)é$Û €4ÛØµÓí]¾´}°@âóšÔ¹b Ín«ÝÃI+¸|ÖËœ7 ä>Ú7DvèòçM倗­˜•ÆÇyð‚êÏTüþxiÕùTŸÿ8u€«^Š\t¾@ŒcóWP^ñ2RaŽ—…Ž|§.B¨õ¤]ûL"e3›Dб#¡4§²+´©¤amî©G·l³ ÷ûs‹ m×j(ÉŒñ(¯¥‡5*™™éúŽŸ¤mnÄdsû"rvä‡Öõ§Š+þ§™ð2Á°öVeãÄ0\äÊ(P6ÃÆ ¶…+Û?z-wxDŸy¢Be¢´ì‚å…¥ÆÛE©±Gs'Câh³¼=:H®isƒÚò@uñB¼ð'ÚâVÑo>÷æN˜“¯ÎÃ{·½ÉŸI|(T2®yæ÷kH*†ãÄîi.â$ñõÔ–ëfd•eIAÛ£ª•` Ä8°O¸N¿~W.wCF«$†2]Ïo¥—ææÃõ.îÀ¨¨Çoâ4½>tÍ×I‰P…{_©}â ^1Ÿ” |-ÔpM!`J<Ý$?EX@ð8Éõ <à6û^a¼•jÿä õHÌ5o!—[î‘×Cí&ëö•µ±²oü3áü9¼»ImiK1ÿ“ûåû<È9©j0%jËy¨A¶f-€ #_ƒVqRÆçG^ž(‰.k&šŒ—±1Š\¤·¨ýë0ÑD¾‡©YV‰O~Îßíq[UËè¿Õd@/ß:W4 KØ6dGç^s=Ñ:‰4Œ&$2]ܰ _| ìM;ÅÉÞìYÀ«w0xZö:Ñ<®Ì%ú쉾jÄ­Åà{SHƒJ‰,÷ ½ø~»ÿ>ó‚‹‚§H4¯)‘#ª‘oOÖ’ep«¹Ãƒ+Å ¥$PÁ‚‚å zºéN·-uñTà ô¹0²³5å;Klÿ‹)XÆ÷žs,Õ¼/<Šš5'º»'%Òï·ÁYô{y,÷c×uþ¦ò9ü@Ïàzþ/_”€4àÒ‘?b‘ýçÕX;&0m· ]"Ë 1#Yï!X#é)”ƒË!÷晾Wþ˜˷%ĪԄ!šØ¼û«OŒ‹±‡$ߊ6b—´°ÅÅ@¼‚ž´ƒÔüôy2™º¼§,L±`",y±Ì±jL8ANñÒWÇÃ]gçun"\¸tÙŠÖÙð$޹ •;u6âXŠ$ªïa×ò0Â$X Ô§;X™ãœ›³!FÂbó¨Ò†žÌüþUHáZ5Ûøs„Qö„œfEDúÖ˜þl´?T"]Ü;ÝÓ̉žõáP<m®Ü†‰jöyø‰ÕZ!´Å}¢ÓÝÿxÓs}7=rQ1[À™A–ƒ\¨hÒ'd²Ý™RdÊó£¾Ԗ¯j Š‹MÒÍ›ÎùÝ!?EÛ }cëjRáP÷ ’œgˆÆ}Ðß–¦Y&ÃZæÕê0ºá¢ì•ÇÓ{çN3|{ã;* oI§ëËõW¿’³¤€?”ÈÃbMV³>Z®sy÷k\Y˙IJ-KR~p2Ñ™'ë™>FÐp.^m.¿ W|[¥Û𬯙+{ÆÁMÞ(à2¼o˜ò¬ÜÿÿòèòŸÁW‚1Ííòý1’¹ýžK|L3·ÃP< Q < ©áÐR:ŽB[ɾæ%”À/!.Л -¡­;¿¡ð«i66ÐUˆ[Nbà­Ž0ô{0¿p:sGHã¹8ù¦mYô À,@–š¡[;ç˜?ÜMÏ|Í=]CéÌjíñµc^y´|=‚°+,º0¬ï`%.áÙ*°¹ˆÞ‹Æ ¡&ÅAi Á**­mŒ»’dƒe‘åVVᜰû–PT]"Y'õØfõfÓ<޽ÕÅî­M”Ýi´ÐøKG€—œæ!Â²Ø *ªýïØn±ø”¾žå´…?,ú·Ý7e·«S9˯±å'æ.tBÞF3bÂç˜ì­EI²öïJÕ¦ÚÑÐ4–íß¿V±yZZ¦ÚΧûmL$ŒžýÍ.ÐÄOu\º7Ðú‰XwàE‰äWîæ=%r½Bç)-*|dêæK ì¸9Ë_*€ÿi¬“WÂTöfŒZO>,G:…´Ü.™ZäÉrÜ;´ÈF}1ÏH¢^Á©Ùj€ÝŸ‹"¤"MPžqÛÑMˆuô(YÑŠx–é$ˆF¿·åðcuh 5]®Wöò9}2~ô-ÿ¯ùÂü8&Söˆ¯Pfù,ÁCì ÏžJÒ’Þ­*”x²:§Xb¼Š…Š“&‡æݯë *?ÐNrœ•0¤Nùð; * õ¥±~|Å£Ð]‹AgÁݽ¡ü½¿¥ÝÉÖ|»—‹âĆÿÕ÷ þ)æ¸Ü„"~-|ä—ñZCŸ”§­AdÙÈ.h ãÄ.tePGcòúÛÄzØéüÕ÷tŠ"O¬7óõbn“þO½e¿Êý‘ÚËf°U#‚îÊ€úü.ªƒÄo-PwNvzv¿Øt`$±>óÒ·òÏK*’{E~ Z+ì« ì `Ž÷”H§1…‹È2"ƒ³Í/±nÒC%ô.a‚9v Ê– ’Í-±çµQTˆfæ$9 _ßn2 ,¨½øl«S\… É‹¿Ö²Ðƒ¦ÀAù¯ƒ% ¥ü¾M?[}Z”åÑiÑ:ïXAŸfã\šÿÍ{-²GbêíÓq½õ4 RUŒ €gÕ,ÿ4Ú¤eN² CùAv¦ÐI ƒNÇn©âËÇ÷Rò,а™ÿ\£ZM‹ ;yk¸j>:€åŸ»ñüŒÏ=߯RVÉÛ¡ÉC}œ â5inWº¶!¬5 ûÆx}¦î À†¢FµB?mý³8qÔF¶>¢5.uÿÅŽü5S>W;2N·/,vO)Ÿ±mÚýÖ3Åé[1¦žšè·³Í£¾>74ú•¶@x²‰»ÞïkTûß)”hAM *òÈêáv.ÚM!(ýÇ£ 9fë Žñ6›FšM‹&?èÜÃøcv‚˜íÙÔÃPÿâY ¨gÝX‹®²¹…4Z#!´Y…Åòô€¸XE‚Ž#0|g³1L(Å€Q tÇW1ÅLËNÅâãÓw€»J~ð$g_øëˆTD™êÖ Ô%âÞ­ —‚—=E¸2_ðù³cØå}âÉúèÔG{‡Yk8RHdWà?xÿT5ÅõöÖìoŠÉ¡gÁìöÔ׋Ôrºw¯¾•$zõ9–սȗj޾bämi: jJêù5®´¶Üú`ú`¦¢ H(DUP¤@xà0D Å( Ì€êEJ€²›” Db¡€ýq(„!ì[ü¼˜yùÄ¥·h{%˜¡¯/äX/££;Á·AÕ"û $HÊ© ¨Ï¿›obž¤Ei¥¡M7ƒZ[t–/ :Ø"Ö+„„–2Ú—•¹yÊgž’‚¶qpLÏ~}CR^H ÷ÞÄŽ(zåI“ypŽ…·M?‰ §V¡[ð“ &›¯DNÙ¬U‡\Ê‹2|ÚYª@Q4™øL÷WPSç¶J¦{Zþ®UÀcÌ´± ïÒ•Še<Þg8~ô¬QX±çÒ€‰Š,bÁHhP*E"+Þ£ZÅŠ"-¸ÁEUPTU*ŒV «cbÑ€±Q""£V*¸²¢¬X Šˆ ª(¢‹°U- ¤YC%ª°R *…VE#UÅ*ÁH¨á¨ a+#0ʪ¢(  °APX±bЬb0Š(H,£ÑÿãG›Ê¥¢Ô¡žFãL»Ê6þoÅAÛÇ“e“•%4ês®S!2ð(/>ÃU©]3K.Kâõ” ý׋u,ÅnªdV`ºøßXR‚UH¯bÉ3mP.:ð²reT¢´ #H*Ñ œÌ²­‚–‘iùÜC]‡qës/$ ‹·… «’4ÊGëÇ„[uV%Â&×6£ƒB˜ÐVáB d¶¢A¼ … ¡#/q48挫sŠé‘ !›Æãxœ®:r”Á„¦2q@h €PTäŽÄ$¦P$v¸ (íáÙƒ¦-î.ušY]u[Lù ,Em i›2’‚ïi„ñˆiC-L]“ž$Ä` #ÚÝ™@pnPˆBwhÙ7œŽë Äìô@Ì¥”…í¬d!Õjð•Ê0a”6ËùC¯èðggýÏC™…rr3DAeP»øDØ!%}+ÆFlÆu¤×/xb{³©RBJLñº™í¼3èýä "ïàßh‹·k /Ú %æìòðØ xL§ˆê(·ÀZ€Ì#…<2Œ93b 12f(€È «9íÀ,|ˆi%Í6ºÞh4a'ˆyxúÜ †¹ u™À¢ ©A *¬3AèÖg<ð†~~qÔRvÀœD¡±¯Q£|>‚•­õ¶ òvÚ܇¦ðTB1å; À"+5¡¸¹Uw2ˆ€–εà#ydÁ :€ Bâ õÆ 1ˆºÀ jc¬òÐA~À„\røŸ/ΊPæÐÐ@ð çuÊþ¦1"òÜ]Btß%¨$ñW$¹!ËE=¦÷¯½yý’)'^‡ÞõäÛ,îð nÐmILhhäWÚã‹II’«9)Q¢¦C• ÕQnp¸ÕÁ¹ß@9i.¨>vMNMUm|âaþÕ÷Lëõ¥Úì_¿ôS9PRÛØ}˜á¦Šâ4bþ2‡hñÛ=ȯv‹Ÿª%Ç:º-’XýW>,è~‘ Û×h!EÖAóå@m®ˆ´øWºw`E'¦DÉu.–õØÀÒfÁªã Ln2Q¡Râ³àÅrK¶ˆ—ÄdqDuˆMá3zôý:”Òi´oÉûpÇÂH à5hëô¯ÛC~Ru@‰ë$ê[ÕÛßÙ´F°q¯òˆ~ÿº§I†ϧæx»OTvã™;6~r“H©í ^²¸HxP[ûÍßîȽõºÖÛYíâÝu¶£ºá  —n€ã9s.ˆÞóÚšf,\òGb©t^²é«­ ¥1ô9lß— ‹mqÔƒ÷fp ªÑ‘øàÓt¾“ª ÙlØ„”„²ÑÛíjÞ Hëk5๠ü® ›Ås¼ôóGDú£ÍVú·¼sׄ· ‹ˆyÈû·–ñìµL૟>a4¥ƒ®¶w aE®¨ô­(R^?Ÿ;È“ŠŒølŇ‘zW­mÄÇâdÛ­²-}F¡#°úâ.ån]E{#ów‡Ê|ëÞlÞ¾÷шs%UWá®=ÈM0¥XX«kÙy‰¾8¼U©°{Ÿ‘ÐR5N,ç¹õJÌb§ÿƒ2ÿ±Û+x—d² Ê¥] îyíÜoÏë©2Ôàu™("fIöz?'/`$ƺ½W‡PËj”Ä`¥nCÖe¢ä§ImÛjóî™±õy¶ï²P„½Ì™ÿ«ivÒ>(wòe2²žäÉNèEYvYô\)(TcrdVY|¤H0-©{ÖŠ-ÞçÇoaOtlÁÎ[…•Ϲ׮,`3 HÿTÑ*w!Ž ÎælíñP€ÓDÀ9MOäÔ›Ôbu°GÍ_ÿÄ ¶W1Þõ ¬^wÍ=e{¯I=]H0¹ƒXf„9Øc—'ì¸"ñB¿~yÖ¦™ð«ŒC»ìÚ’Á“@®‹L,Â'ëÔcs›+p ÿ#í4€œME’kÁR›D\O–Yô ¼U +‰˜GRÒò1/JI’Ÿ@¥¿?j­‚Ãd1¨4‘nK–Oª×T»ïÂîÁ$Z×;tm„““§±‰5šh;倢‡T)¼êÞ34M¢}¸Fx:è°h@ÿjüMÞ¹¿¤’jr{jX vØ{@ üÆIÅÀ†é¿†GÊ59°À »ÜŒÉÄ"²ÅI` ×R>$§M/wÒÚß-D‡ã%ƒ—?»”N‚Z”è3ĉŽ#‚„žc¡âŽAÌfPº§ƒB‹@:‘O0ˆYgL/[µ‚ö©5R’(– IZàîÈmà•ì˜+¦gª^s]üäÅUÓÒË#oM!nì¡DµÚjkm{§y²;uðg,z¸O}ë™ mGˆýUêÓb4(ˆ5—\n¢yµ«Íëùˆþ œB[´+¦˜õê‡Ê&kèÂ"dSÁ¦Žy#˜žº½µ\TL?qmû"QïR%2ÛņZ}‹<4¶RÒ¬R”é«m8-=€ŠÃfu=­>5gØJt´=t!^çfs0­Ž]¦@ÊÜnImüŠ&£‹ûÏa‚B߈¦q2·ÈíF6K«†O®8P™n÷!`µª-—£É‰×åÎk†7{,[ͯ™…ôY·ÃøSw‡î\yìÑï&F1“ 5fôIe.ƒøBûzôáW#6=äí‚­=6í‚W¾Ë0Úàï&"~žþš‡1åîù.ŽÌÇGl×A>]u±›®ÖX8#‹å¿®)>}qÜÖœ•´(†ð2ŽBehjó1ï¢m>IÉT럟%þ%)Ú.1ßübÌ1=¥+Ub­yȃâx•k̆yîÈQ~ä­âîH"=ð_•®£Ç¬†%‹[¶bFŒS÷–æ+ [çO}? ïž €ã@p:XúöÍȃˑ òÝ7% ~ŽóùW#6%ÍÞÂ1T¥×ÚÓ÷ª¨‹äýJT~M?§X,”)í©oïâ/ãÃ! ê¹Déhx‚ÎžÑÆÓI.ÕÆTɨø–ûû‡>½~Fîï8î†Ð¯9l¿BC¥¬¾™7®@æ½™âðŒw[Øò5ýfœÿD2 0Žºl&L‡q]ïûGÚ²¥è^°å,±úGîþe³>¹Èàe>`e%ä™]çµRk± HuèÀƒÐ–|TåjeW‚ÁTÅu6gJà»ÆÏ âûc.5"í·­i!Å}³ËVª¬½ÅFnýýÒ¬Éï\½LoDÝω…ËÅ#ZRnÚM¸qfx ¿hjõ+QxÕÍ.~Zû ô|òýÆÁ¯È;¢N¿ûu/CR)6„~ìj¦TðhæÃ" \;6‚d€q.éÿ<Ú$[®tf€ê!×T›¤_¡€Ú}ÍÂNò­Ñ«&a@“àìyåu›PÕýÃ/$JžÃ悆ÿaz2ޝk,• QËx»¨"ûî·¥®}?«r+ÛµJa(§€GCgF¶ÛP©«£YÓ‚éÂû•&G®è“¦ëmú¨’¸"~üOa;Ðhy IœßÊ¥?CTôéÂöêªï99Ô˾Tf—‰>ªè2¨Öi?¯‡ðÁè+õh¹Te ²öF·£=AàœG‚ÝŽ­fLÇ’ õåM]yî®JKÚ¹ôôþÜOÆh‘5ú sFȉ¡XtQD4šDÈ›k¸U±Îé œTxY_¥ëx¡K¬°r—ŒR·= D¢93?¾S>û™Î0·Ð}9.X²³Ñ/Ñ“©%/n ß˜Ì…%ðŒÌEª2@©|Òœ%ÃÐ&d6y;bB·…ûé§Ò/™&SÔõZØ`™ãcyPûö|v ‹NòîåŽfã¼óÙjGZ¢ÍxA.N:,.4â,.t3îN‰¢Ÿb’Pëu?v™4"‘ÄóÉ îDTI]%;<¤)!®áF꼿éàvhRÉ“. ªSëù›V“hÍ4è<ÌBÂù cId3òúPíµ„Ÿ •DªJH"‡WÀD¿ðUÆ Ê¸ëó8¯¨a! k/ÙÄ?ðhlÁŸÃ¤ùû¹e!±Ñüíÿ*òMte§ZFg–ÛOìÓÆ½”˜nú(·]v5'Ûòk©÷ÉæEÝÖîÆÀ…y|b a7dLʾ–Íb²X^æI¼³‚«)pÊÈÍ~^ÃlüWšŒZ³ ïA•yÇÃ/ˆ8o}ªÁ5rJ˜!]ÉoPGÌTsà ŠÞh-¥·ñnÁ)\ƒ”kç[€~ôNÞ•¶Ð?tcúm>‘ Ö¬^†åIQˆ5ƒícl°']gCàŽávÆ æ{RÀ;|Ú¥zJýäY^Ê(ÝJ“_¦ggœsÜÎM…9§í°Ç7yšžÅXÊ7®ÔNÉÉÇ‹%ž_À|ÖR£döµö¤Å*LÁ%/è¤ Û#éž3öy„ýà§¥ÕŽfQ­ý€Coíƒè*R±+Àf44æ.mgKž!ôÑäüâeCü)ù0ƒ_£E¦¦Fw„Œ,Ðèž?ð;8‹ÄÀ<Ìég< ?æ€pµ¼vמ»¶(¬wû¢>^† ½‚~Ó”ÛûqÇ‚²O¥_ò‹˜õšèlüJh’8Ã^bÛ…ÕB ‚ÅFQÅuÚt–! …+,ß׺þÅâBéÙ¢O=ûz> ï·I <{BeËdt r°;Àï©ÕÏsÂÖÕ]Ô餸vômÐ@õ“qÀUÒoBSfÆz=‚²Y¹iϨ”ý—7+f0ÛJ÷HÓµ&®|䵌D!ç,îŒ:kæ<¹PÕ“;D £˜Šÿžìc­lù~ÌšØi$`‰`W¬¶—uò&.X#L\Hc¢å£{Ý'ÒU»~ã0ŠšÞ·&^ݾ À×?q™”íò¥P7lQ`‘Ç̵&^­ÿî¡ê 6z'QköÖŸ£Øp;©Þç ߎõÛH”»=Þ¡AJè…t¦¶ÛÀ‚ï˜;ö>ôl ŒO°tFm‰hjƒµ7W³]ïâÿ$V…ÓS‘atÄë± ~ §9×çksÎ`ìNõÉ¥G@££ŒÆê‡]‘PÈ¥`ù‘ K¯ûT˵S[žºcù_ 0´4ÒPûlž+'­ldÕÜ ÐÖ¯Žg‚Ó˜Oþ¬\*³…Tº@U‚Ågzrìœ\o=‰=m¦ý,1¾ ^ûó„kŠd©§©§C&'ãUe³›û~¬18þ#hãf08J`HÜY>îÛZ÷ê}¤ø÷ẗl`~U¡Ì§Nuè¡«ÏÚÄê šùz/Á¤6ø4axèÌMÓcÒ蘟²} ]c{+¨ujˆ?›_p™$Úï…@ÌþÀþuËR×äøoDÛB]·À»™$Ì~>ùÎøÜ;‚K"IêÕ}júXG›9dF ›®êŽùÙŒ¦m5eWÊ 3š¡e ‹+ÈGÄ­ÚþÃâ!ÐŽ\ä~úÊðyî’œ„:\4›r×c<"‹¼½|Ví«`ñd¡æ®ª¦UÐÖú¹[9f…+óÝÆo`‚¥ù™È5ZÏ/nÔ‹t2mº-ÈK{W[è_ª5‹7¢ºmûm¾B£¦67Ø¥#K×87ù„c8¦˜¾OõŸçÞB²’_~Å!÷¾ãŽNHö AÁØ‘–¯z<¢‘ÐûîÑS©‚êØUÙ›äùùº¨lë©:Åcˆ`w° Zž¦ü€„šÏFçh¢exû=Î-xHfõ‰³ü6ösõôàý¹yp¢ÐS$i*açDÚÆ¹QpÿZW‚ ó¾ÏmõhܤM&voóïã^²æPÝOý­ G)zh¼ìBàH1O輫Ø^‰þ•¢XF³êäÞéã{*¢ºéÂ-Jƒš‡ó!úůª~¢‰×ÕÁΓ:x|2‹ÊAÀÞš®6w®áZçÙР†‹kmÓ} ŒX»ÈÂg8'nå5>·[A–]UŽ‹ÇT8*;ʼnÆ0ˆìñÁ;p !¤¾Aâ™Ã—ÈuTRÄý]ƒ·IŸ¤ÏVbx©ôN…êàØ¬î,÷ï+àk,'šC‚NlfÒÇ÷T]éÚì”Ðñ/JWÖýP>L¿iɹj1È»;/êQ5ÌçXñ¦ I£ ý­ a·Ž½1Î_´Æ÷*Ô——|ÿè&‘¥¨ÛÑäªAåu¸p÷"mô=D65zpÇ‹ëæp…P;pY½™‰Ø ¾QÇ]¿œáW`\1RÊ[*Ëqä·ð®R"=rùÕÕЭš1×é`£Æ&xÖÚªÿÏKüÍìdïU*7g¯ô¼þ)v:L[ÄX@¶^ z¢h>±Ã¿J¢À\­ÅëÅÞ7WM|ª ·qß±±ˆÈ#T´¹¨¸Å㇒‰éóű›å, ÏM .Ž£)®ZCÞpÛ7¦SûŸK ÿU{û>°ö•÷1Îþ„«‚F¨‹a¸ ¦ñd‡¹™L*ÚùaÃÏütüìƒÊ  ¯¨©TFȇ½]>E°9Ëmb‰'Âé?¨ð ;ìˆ3že³m…aЇ›.>dº ¶£Wu|ÞM1îr?ZÉâã‰c¼G8™løÿXVx}ã•uD®_jŠ™jÉíT sw8×kC_‹³9û¹ÍÛE>úÄè³æòÏ©ÝùUfb¸^ #eùö‰’ùún>ô¡Z›sQà‘Wbf†ÊÇ¡BLˆ!¹Á:ª§må½VÖ(>?Ü©êý1g¼ÙBï„wýƒ§~­¼5íÌ"Úˆ ^sÕ0Ì÷ì QÁˆ/éôY‚Y.4ÿÕÞj»ŒDÌY®–RÈð¬qœt{ ¶ad »ž[ˆzÑ–80´xD¼¹È=™×¾€ šIÆ—'EwúŠÖ¼FÀ«×þÐH›åšKg=%k+º%Ë øB¹û&sú\íë§ÛõÕM¥)'öMÁÙ[h¼j“¦ãc Ø§z× &°ì´O3#Ï=…Öõ±bFºex¼E‰žu«À”û»Eº-ªòÔâʯG²×—?‰ Ý-@0ÛM±âag…zŸ¼ý—-Y)|VÑX}¯÷ï¸ ž|‚Z—h°ÔI’=®m‘È“[‹È1hGDEÙ#y/¸ñ×ú›ÚGÀš^æö V…5Ê}¸‚m‡„`ly—oµPõÇÜ]¿ôÌfàh³ˆquñç?¼ÐMôúudÈ“¢P„îÿßS¶¥´iAú81« SaÅ»’x6;ÿËà|£Gþ» ÎÌ`ši)¦aÊ#[¹Ó—ûã<±?íãÇh-0à®âº4mIZc遼@™Â©A°‡17þŽŽŠ†Œf೑ú8%ÿu™Û\̺Œb(/2G‚Ì›¤™Náœ]s=Ø´§è®ý¥§Z§R3ì}¢`Twù†¡¸ø¡Dûþù%÷[Âè€.;Lãð dРÎéX{ÿ‡$"ài%2ÇÂY!%B¸Ôrn`@/€¯–oNòÏ%Þ‹úh᣾Ãá³æl³c5ñ‡GñAƒêÞ»ø…-ù*ÅT´èÖ:’-¢Mãž­Å‹º«Ç\O•B5šŒt\.7ý_Å<>ì‘\DÖܘ~q÷›²cNÛxuÈlجº zøFM×AüE´ÎОtTVN|´#Jwœ_I˜ulc$I’e(°ßòSp5Þø8úez {“GÝsôÍÌ7ë^ë)– w_ާ ðÎêÈÀww–aÖ½vÄ+xaÂ7U‹Ù§p?‹lm¹ø‚0õùRÃÂA송^§OL©¡ž%ÎAö¡‹¯µ4ÏOé!jéZ–$³r–Yš=hk4Œkª F¸¦ö¡Ž0öe´Rƒyj³Fv+¹}çz‡®œ;Í A¬”̲œîÅðdé<~Ø/èÏÆZ”püþ@QPCö4Ã,a=±Í9d}Ó ‡zýöVÈ¢U~[LÑrC±Å ’íä­y¸kI)†·vá—@åQ‰ø¤¥†D81ÐÞzˆÉ¸æd9-×IâCm®qä"ßH€-}áØ‚ÞHý‘ëiö”–ŽKûÓ…£Øé44·Å5vÕÎ|ðke³ ÞJv€F8¬À„…T-ø»N¬’°ã¼ç_¤*é™eC¾3rñ­ð{º¥´30ÈE7¥@fjÉUØQ£Š¾q}7qy ¶B¸¹Î~¹Þ¶ÍÜ*l;eTúÈŸ—ß‘¡•H— šÂ-¦ .A.v¹l[]¢&¦JÜß=Ã1ó׃dÈ“ÕÀÍ'Ö,È]µ: Ÿ ÚÎå|Åcx%‘oZò ”Ü“¯5çtzÐWÿÃÒÓ¸Êæ(ö<´â¦rÀË•G¢â7èò­A^L$¨ZÍS=`Ù~(ÿŸ‰ˆ‡‹1_øÑånöÐW(3¦Žà®Ø`ãÅ;îeG[ahLÍämRd¤4æEî~ÔsÜ¡ Yû<Ú€o@*zœÖo1}â eÉç[§hÌ1[€çÉ¹ÏØì ó(äJïV-^Ÿ4@Ó»jƒ­Ä€Ð>É#owié–ÀA£˜¬ˆ?£ý€H¿.Šé’í|3bNU€Êlƒ¤5ðêsÞ­À–Ð ò<•˜k)O°Óz›ªø/º©cEöÙ:‘j=#OxskÆ`Ï»‚ $ð‚ʰ–³¦ø¬3¦š¾ [Àœ¹ÄŠÓm†‹³á‡Êªó&í<Úb6‹ rs›±”`lÛȱ™ì¤{m¯¼ð°—Bãà°U☨VV ‹Îªa¾„¬rR¦C=eNµP‰½Ö”WÅå³’I³æy”BéYàFݬԿN/”±Ööž—”zzÖ­À‚tÄ´žíÑÆ+$ÓN^û?ró†-éJ—+Ï<¹²ž2­¾ëÑ­ØùÀ¥| »g¦s:óŒi«êƯ¾¹ÂIƒ¼ÝYÓ+kæIÉÄ?9âÞÔ}:¥ @ÞÕ2£ZvLu¥aølÌrŸmxëI“ƒÄ²B'üæ‡;•dM—,ij+RÅÀÚB¿ OE·€ ØåQÁÉüŠçÌ2âŠQ#{sœ±ˆ Ž´)¤ô(±ò9°Rµ}QuÃ\‡È^ø{tÅ.¢Égç÷’ó•5šÀŸÒø®X´rTzÒd<Ÿ ðØÊZl_u£7Áˆ°Ø/`„%Z÷‡÷\å·\LGïà ·¾®AÂ0’˜²§š;95'Wý&³­¶-Wß(Wqè 27Ì\7Ã2¶ÊÜóo'Ĉ@;sÂÃzõatóúŽ0ãÈ®àìØÆx\/¤4¾ü.öâ½ôJ´1Ù ‘mKb,Gó² —}‘N­ B …dïý)7ºoGq'/ÁzRŽÅ .Ò‰8äo¤„‡/ `RÙö´iП¨€h™ßùN©Èïiè)0ò$ãG@±ÚƒûÕ˜Ýz;wéø†Ž Ü0cïJÊÊë׫™ØÍ‹Nb$j„½¬ŽU¾ÐXAƒ8ûµ™ä‰„]ÑV¥[0ê-Q¦M”±x›†ê;š'íëEØ»WÆ "®#Ë;¦þ ñ@(ÆÆ;$KæZ“8¥ñÇŸ˜%-Ç&”ûÌzY¦ÁCƒI†@HËr`l2.:w ÑM kñëÿpwLJ«ë(¡ʵÞw?È×Q¹ Ã+aÿé8ßÔnÆ(yeOBcŽ\yc”b¶+*´ }{žï¨=QÑ/×­%Y¯&ÔJ¢ÙÈ{@”ŽÏë±×(XÑ øÌ«|… ¯½µ¸§!—¯Ih5:±·ôJ턃‡kL â(‹{#ª^†Xc­Š˜À> ö" óG·²¡%â¦ó¸âÿVú‘Ð× ŒfЫœª!Fú¢0¾Ø,^°Äœ««î~ŧÓ/*õ5äJ«>ö}S|¨ ÉÉîÒ¸3þòµ3ûìÍ}¶|"ÃxátðÈ·jËls¯³ê…£k馞 ™cä¥ ïZ]ä4óâoý"ãœÛärºÑ>êŠ s‡•ÿU)ÙéÛ8£Æô°ŽÞhýÊÈš F0J\åô‚ n¦a1-Í“µ«|¤êNܘ‘+¼"K/°Ÿ¤Í»W±±™I£&Vž‚Ç¢µ#™ÙCxë³¼>˜D\à_+ÅäßþwC(G:09 ÕÎUó%;ÄqŸH89e†ÞOâ1Ì)Á‘2Ú‰tþôMÒd¼RêCÄk‚ü즞ü×vTæU1°xÁ cò3¾žŸ<3,TÄWêêlü¡[=ò%+&æ-¨ˆ–æaá€H_ªÏœÝÔZS?Y žžAa»ÿ L›´»£3EÍÏW[÷b·ï8ÂÿL^,µ $Ól):ÕA­„·Æi-h—-ã°}9®eM‘èUkl$õ¦ÃÞùA1ÎE³«Ì%“I¨íL¨ Ö¢.¦tƒ5rKס¡(ûO!,«¢àò¶ºi“Ã\æÕ» 1OÇV)†³©‹ô ÔUžs-÷qxOÝßþ{uw ŽÅ’€sNƒ.Ǻ‹³!èö`àÙÎHï (Ñ\--˜ïŒÃÔX†Ž Æ¥îLºxqm—×E˜ª°“nªX"hª1Ïïö Å8¬æ: O¾Þ8#uK÷kj_l÷Ó{ÀcT­[µ ö[_“hoúÕ®`»øõ¤'¶ŒlS¶ öþ(8J®„×cì›cGE£AnaÑq5P–ÂjYEÄR?Ie’p)ä @õ6¯çžèÏ·mc¶f=ÍRßøIÒ7w¿ç¼w°+Ž­Ç^=$B:¹B«Çí7.,kV-Ã/{f‰Žu‹f[÷_周~!|¯1VXõc&‰µÏš£»l€à÷+ºŠn) IJéÌÛT =ìçù[ÉÊÆœä±pqÏŸtDÅ—^õ6ó÷ót‡¯~âÄš!>œ_µiËþ`¿–ˆÕ!\ö:‘É—uç:¦_â|«‹ÙÀ1Éw» ÝÒ=Ù¶òŽÝ}ïqªáÑ NËž_ áÐ~iŸ§ús)ü]ݧÞ$Sf}ݦv…ï Êqƒ|f¢d pëÅÑ,0f•GΕä-#’—ðלÇíSûnKÏr«óðZy§úÏ×n«¥ó'Dh†‘-;¢Š·\ÕFÁtž!"§·úÉb]Ƨ|Û¿‹“«üÖó÷Ž&Ÿoó‘Gàuz–0ÂQe…«hk´oÒZ“³&äÞó!€1’xðΗ ¯KèÖy)L²01‘å%tZ ³aÒ±:þ8†ã/rñ¶ð»uuZÝýQW¿K$±õÔèuÕ“dz¥™¦x}RT­L.Ú¡|¯ß· ]úf¸¥.G¤ Ž04LñS9ÏÙæ—ø'n݇ € <05÷DÚ»ÕlÏG.·¯³5PD´že§eØ>!àχÕ>‚ò»÷mQK2¸t[9FÅ̾æÛåƒ Xn””žJà86(HÂ>˜ ¯ÎQûiz^GNOlk„BЩÐgOÏ:›«˜y&4Uû:ÖL‡~px›(ß@$Èðð:uvˆ±_?ä^o¨½4Ù¹4É0»¯j7KA÷d..ÂühzGbWHõ׎Àfd3Ín=ñ6µœS”ÄÄw ê×ï$äG wº÷f¾è„ó²b¦,Ÿ’k/œ™bD¨ ÙFáøMJÜöïum>ÿzSô¼:Ûi‰°O8ÉUS[ªÖ AÉÇ2ÖÞè¦y ø,rÉ/0kÄÕ¬©énh*¼HÒsDáC‰c+ÊU.é6} ~$Ë´£…Ç4ã˜c[Þ(J4ÛI˜úÑ4-änó» !·ÜŒŠJ,Àäv!c·lžœœÇ~¡ànÆÈ,ƲòÛÓ£Ù,ᎋ—뤆 ¡mÆ¿ Cdº‘ô†C1Ë?‚—Mkõû–é. ¤¸¯ ´(1b¿œÆÜc­]Ç{ù‹Ó&t(y=ÀVâ&‹€J×$(îìθ¹Ošæ••´¡2Æév£žœY÷Šxû71ò&¹Üx·æò\#°èi{׈i>WGšüÖNLe:ç,õVSE“Œðá-×KY©Soƒì 3Ÿh€¬¯“ΊÙh˜O òtÌ2¹ôÔæì×7­’ËW±“ƒ=ò)'‡à`{ŸhrôuXåå¨g¨äIV90kZÜ;ëÒŒ'±÷åðg )¤ùãBtø#b:Hxä3lDŬW¸rM´#"­iãQÊn.$´?Tw´*8š7“Æ™Ž³C‘®hE—× ôIëy£.xÂFÑ nÐÃÎåŒÃrc¹ŒôP“O±Ùçc¢+Û}œß®Õ1‹ÀªãÌ¥@-"áNCH‡p0ÌÒTP>ÏI’ Ÿ¦na žm˜‡1[¨JšTx zš…(ÈܪLGp®I~Ôw ÀöÆØýøë\£¹,Øyôk@s͈W>+ ýìÌ0NGXœ€Ñb¥î¼AÖjQts‰QẔæR"F¢=Ú¥ú]nýˆgt'CÉCQøŒ8oge`ñˆRcñ Ä+&Œ :ˆÈnŒÚOÔ¦§îü³ãG®˜eÌ‹¢‹f,(™™¬PÒÀÅ.š‡ÂÐDÂÐÕóöTðŠ‹6d‹NdZ©ËR7•¶ïÕæ,ÒW¥Wý¾4=óZ6~)Ãq´B×c2xcsšþ2fãya7‡›eù™ÁkcpP©ð£é8…O%ÛÕ®–{%»ï¹à[å[ê„ñ`žbo†f2Ëó#ùp÷Õý¿6ýF-Ã.Yaý–€u`¬B/s#PÛéÊ1MZÝ×’ƒÞ ùê_4%²eÜm1]<Ò{®TgCÆ«^(0gIçø 8¸ýõO€\K»*`ÕdE§†»¬Ú§ü‹'ršİ}Z…Œ­7mÊÎ ¸Q«;“ëc’Ö‰?Ò2§“Ôú0Dpi·®Ç}邎ž÷ª-U–äôT6쾕¶–É 0†Ÿ{¿«JwD2‹- ª2ª¾ó,ÃLÃ*"ú+}yf·P_2šÔÿ»|ETVVã¶mÀâÖטæOÉ}Teܽ:‚O‰U‘¾ö°#mø»Ä8Ÿ2"¥÷Ò„ܘèWþQ¶Vn§'5ë:Aþ^È{û9ÏL»üŽ= T¼sÞJÌðæ!ÀF]s“CQ€O“žÔ‘4w~†ÃPM“!öäù{}Ž„º€º ³Õ”õÉ!èS` õÖjuòJg_˾)ùõÍr—¿Iè|nc±Iá,¼ŠñÔà¥Õ'Li $¼Gš1yëÍí_ÒÈþ®©(u{EÅKÄq!KRÁ eÌù@À!zd‡s2#’Îô>ž%ïòt¬©Œ)žf‰éÁÆ…6oe§ZCÀI uæ†$CçëÖ€e§“ü›I©^ëãiuޱ®¬Ö,÷€2N¿ø¾¿¢¹L¢êâ¬ãq÷ P…³®×º}~õ\&—”ÑÐóEögÔd1WºD$²+¾–Cï8‘‹@` /K[±Y.Ê®çâR*‰M{|u>°Mkk7¡{‘Ò.¨Û[Æ$Œ: .Ov§EÒª™ŒzŸ@#ŠG­-,ÁfüüëÌ#)Æ­þD~mó ½d4ö?^r£z#FtÉÙr¶™y*IG•#PÅ0éÉ×YnO²L‡ P;B>nq¯ 'sie£l´á}…<)þÂê#)ó8ÿÞ=H{ÿІ²ÈUÃs'b{_šc;.iw÷ãDtA’™Ùl0ÂÙ°dVÏ1¡L‡Éƒì^~õérÖs•°„!UQªÈÄo厒`Ç·qF½.3!Bä••bWÌ‹«O¢µ‰gê‰ õ^ÉtíA®ËIÓ. õÅ?øª€ ‘ÁP#ýf 'ŠÖn|9»Úãè1Ÿ'@yQkz²MÍ(@̶¡áw æãN%„ÙJóÏ%HõôÚJã@7µû$ð!gÔ'àó÷¤c3õ¹/ì-ÒæéþÓüG:³Ãküñ’‰`WkEµY¯/¾Ù^“ùÎÇÀê… ¡Ófql}ß… ez]gÏ̲ÐÙíx?”·î&£þ¯¬ xˆcZ;¿íg1%—ª¯ýeÏ™áÂ5¾Î©)ä„Ñ`L¥˜ˆ%ÃÂŽˆ» ø”Mtéàš]Ñaª+¡ ]õœV7ê6lÿ'yÀÁ¡b¥rV¼®³vP,²4L}W_,_ áê1¼~6Ÿê/ïŒ{'äW.‡¾ù—ÖðÑûîò¢]0[v‹8C­ûs/þy5þÚ¿‡A6z_q‚¹®•xOü¾‘#&mþó׋Q¥4ŠäoiÕØ$)hq¨ùØõz5Ìäùä'ª—&?ÖP”r¬ÞǃøÔ:Â2¥dhΦ(‰º£Fk辆Y¢Âh†Ñj†N–/³>2kOíŒÆ€Ùª늬ÐtÐȾÈNb¤'ŒDM‹Q‰¥¶Ã/¤-D}[¿éD%Yå·Q.›ÃöØé¯Gö^ë`lß¹—‘)e¹.XOÜŒ0NÀU nºØ*kÈi(·æT´¹HÐßœÆøÖˆÔ5éRHT'>ìã+·@¡Ÿ°±X´jZ¤ãV<¥Uâõ å4¨Ò]ðR€RÅííõŠ/7üüöÁ~g霙‚8£„$kÖí®)$¸ÎyPšÄ.cÖŠï§õt^B’jÂ|ëÐgí¸¢_"vÐ÷ò>!½ÀóŒä t:ò”P—ýàìæË3+$‰PáQ…yü‚Q(ú‘‹âjŽ¡”ÞV7K×xÌŸ5ƒš€K±ÈW5’m#tqGèR¯Z³ñ„râÑû‚ÏÇOÖ®a“ZÕD}v#ëCåOå{cû{fEh¶—èÓœ]_ó6KÑöùU´~ ¯Ÿ+}Iº7ÞWDá’}sæµ88¬ ë‡RÕÌÎ鯂;¸|QÅúãŠGÑÊ÷d“ší8@~çU Ë›S*ÌúýsؘqFà%C  ‚C[¶EÆ…îuÄ5 ª|*ùb¡Îeî¿zGŠ}áš6êÅE0„~¸7›‘OŽç¯óc¬»XÀ?~ ÷~.–´)†íK¨²¸¢uÈdŒUãßîjYVÃë÷îÆÅ§Šš¾—Õòf¸aæL”AÅ7z6£©‹ §Ë¬á$õïíDÅ­6´îŽÇÞø‘Lˆ—¨Aáã ü`Ïç)ðŽkjî‚íéfvF¾j=ßZÏ£jg…qMS‡ce”m‰¦Û=Ô Ïs–(lÛÊ®²×¦É6 hoé&í&²`Œnò…f ²™ C&S%mâÌÚ¼'Ñ £ÉÁz‘@r™*¦Åq%K”¬Ÿ?󃻻.Z‰Ï›Œ,(¡³£ñ›X3ˆäÓªÆU"Чœ³7QP+‘ ¢çÃ@¦tp B5í¹–5iþyέ/|•òuY™¥»¢xâÏ"“X¥ÑuŸ Ø^Ï'…) |ÔCIô§;+©Ã0rôQuÝÎÓº^–õˆÊ¿|N„/o xrèºEÊä/åH†4çfsHš9•¦DlŽŒ4ÉN%ª0˜:ºŽÂ ”tÑŒ ª¢îO£0«Ò1 ¶Ì]•N¹ÎVuÅFAñ’ràX"î—wÙVÔü˜3hâÒ%B:Úº†ŠÓX'vÔ­µäˆß×é:$·£k¾zç!’j(0J1U]òkp„Y›Æs þ€]D¤2¥– ¤Üç(øAPÐÌZÛª€Õ3+ÿÚÛK9¡ðežºà"¨ã•Mjy3rFÊoùÿìfÅÚ¬´.Ëjuç„‚C ¸7ùÍNíã CµFÔÕ“2¨+«?â´Ó;Åœú³Dõãp ~ˆðo[zR §ž}zg©ò.nž·há—ÑàtùÌ;=Á!Ô’2,ñ¹ýV9‚ŠKòá®Zg'D_7öŒð@}´úwâ „ýz‚ ß܇AáwÎÈûëòåó÷:p3Ÿ™ÛšpÙ µ ð3™y$c|ñ2}SŒ7'©D(άÃ"€¢{³žÒæC~‡Q?ŠÁa5m¯ÆaþË p#ÿä«çÿIt‰iÜ„9Å5Z_‰”»ÆŽúP^3oFCnð}†±¶Œ(ífì·îû42pÉÊÏÓÎɃ®{…¯\ ÿ¡Ü½´ mZT茉nYæ—üÞ”»ÜæÆ›*ú)*ý4_GÚUÆ4{ÄsÕÚ›ýPÔ§-.i’®ˆX*øæ ¸¨‘4 ú}äb:7pº&z,ÃLìûõù6ÍPøJ[^kàò ‚K¥‡xD(´m"µ(ùOŸÝ‰÷\·´aý ê7×°&ðòt ’¸àÃSQ`×y íâÄJèa¨ ÅÐé*ÆÞªÝ›Hb£¼Ô“ Þ( k:ί\æn|¡Ü~“à Zɨ ˜{Q¹ã³ÑaÞð= U¢†wµ.B³ Ñ17ÏtúüÞOÂ@hBñŽàȳî_Oáè“Ù$9÷þ1¿Û‹&Ö·W³½è(@Æ>èÞÚ!Y*¼5SöÃà*¬ÿØ Ç¤>Ý/„Mð.àöhÆû|fh2 ùûîæÑ‚gkÒÇíW…,Syi¾È7[<®ÕÉowà¾îSæ†éòt Ävª*Š¢ u™ ïïIü„¿ÁÄøO•_zHÌÜ-KѱëÅ¿0tÕ?ÄÔ8ýE0âWyá†òt4ÜBM=S‘¨Ä@_£ŽlÄZ2ߢ=kT,ûlÎìÒ 87OÉÁ­°ÖÓ ¸·öA¨šßŽ>~"ϳ±Žÿº|^ëDï Ë´‡kÑ:øJ¯CˆÌ8™‚3 ýä¢Ñ Áv ó;„ˆy6r©òàS¬òùDrÝØ‡É f¡Ñf/øðœF@.1-ç7H·F½^¯g¹4ÿÑr1Á^ò¼´Êy?á×·ö%Ó$RMÔÅìŽx37)´"³ôEò? Oz}Ï_ëcÛS]•¶`ë÷i”4¬XœÉÖ¹€¾6©Š£k©™Q“Ššå]: DÔŽý߆IMO!½?XJÃz>Èî,Â…=¡†M‹x7©Í¤3 LPx*uéHd¦$‰ïý(ù `gfµ±áÔÐÚÍÛÎÄIÙè @æ™ü|ˆ¯@¦¹ü+gæákúòJ'ѵtƒZ2$U="úó¯Ê…ô#OTú\Ò÷›ýòq?€3PâQ}wâv ãÎgšÎ ‹ÚÕW;‰;Kžɩ«b„fF±8h.þ”©__‹Áû†ÉþØ,ü‡Å޶·¸žÉN|6j 4£!ºåo e;àÕá6®àG5Ї×ýüš—ÊD½°«mܶ>l¿KŒ `s_P*ýÿ³ÃmPãA«¤ã´oãqš¢KV$|}¶I¡°Þ4DöüäI¾t§èТ# ¦ÿ8-XÙMCÚM­è~®E&›Õ׵Ś‚4eˆX«‹±‡Ñ'Àóµ>øW˜oy¯U62¬pXÔI±ˆvÕj£Ü2ÍÇüHçÇ“½„qmôƒéÑ êÄÉ´%IÅ!¹ªtÔı)lÒ×áÌ ¯»rŸÃSYpT®këtò~!´¬ã°ë𱩋t[{| A-Ø·i#ï1ôý™ÔKmY½ºÉ)žgq; î7•>Pºê,°Ï[Ûd_ó¼í³û¬¡Æò«âêåøådéíàV†­„éZr= _>¿„ì¨é.—8±¯ì)ÚÛ þ~÷|l~^Ç!l£ñyiO—Ü•E]"Þpˆ°Rl:?] ãPƒ•ÃG+›ºb—frñ낆‰µñwû;]‚*–£UŰöÍèRr¦5¯3&¡klnNYЈ ¬º •5lкt¸ ¦‘>.uànŒ7l_æðq]ò^£Ô°ÀֻÊ*(ë•‚¾êmê´y&b›õ_Ä\@iYò44IjÌ­˜Ž§½ÞêÌnôlЏ_ ÃÞLÔ¤Næ¿ ÜÌÇÐìs˜ZjUnö&¼@é Ô²Ôtº‹Q{§ÄÒèe¢ 4›^Š<µr?ÓYŒ–À¸:r4´M Ð)ÛhR í§«÷ÇX3ðð‹Àv5 Žõ©ØøVqCJ'{f©¨­3àà˜ÖââY½A†%÷á:¦îC—H}kØGŠ$ÆJâߘJ-ZœWsY{Æ@,œ&ÜδL&ÕŠD…Ýýj¾ó£6§2  ¾„¼-ÐÙÌ;º¦¶Á°è˜Â•FnSr÷ª¶ehÍ6Méß­Ç”\ÚÁ€%¸M¸StÛÓ‡ocuÌ)Z´-Zž€Þã'‰çÙmëú¿È~O*hü2þËMRàÀûgW ^~gåËbœ@!­¥IJÖØ:¼šÔSàÓ93®²ÇT¨W=¶ÌÚ°é ÿa(á9ß xò5d‡³}T€þäÇf'ÿ‡[Ðôé£úè@i«*ÉÙHýmVNƒæ¨‡Ç 5µ3 ‚Èê’R|{wæ-'3 ùÜ"Ú9*ñÖG‹IªþQ vª.‰x™:ˆBxâ›ì$ïÚÄ:™­ jŠ ~k¶KÚÄgñ)é[_·²]ÿª*!ñ3x%FPÿn4¥¼Ë‚ì·ïkô‘JÆ+CƦú?£xêY‡¥«›©ì.€)¬ýè£åwñbe¡zˆÒ: –NçÉu;¥h$0VosŒgìt%ßá§çÎvàÑ7Šyv‹µÌC"Pþ_¦’×Ã'™¯¡ Tþ²?2܈þÙ°‰—Œ\¥HÎ:Q˜ÛJѤ8߯£Õ\/T’eÖͯ¶¬"ª«½¡ßŽ€ÊÒz†ó0;Çú £¶a{=±^Ýy~×_ #A‡ÔÑá—µ<Ù)mFKA¤ï ðìqòmÂ0­D´&ªÆü Üô1ˆY¢8³˜ú›¤DyDi^«ñ?ÿAÚ:qü¥lÝŽ«÷wMyʾ-4sÀÊ¡aŽn -ynsròùt7Œæ\ {¡y@½¼nÔÀ@÷¼T¤…Ùsàâ+VÙG&HóêM]ØŒ{{‹×ãKãÂÎÚ;Qµ•þÍOzJ•¦bDô¼½NeD´ûZ:Ïôᶆ²z… †W­Ø+‘èTÓ¨Pã(éýž~ cv#B5EÁR¶Þ×B?QÍ…¿6Àؽ¡-Ë(‘Ù0ÓX±±¿­š`’ÝòÍdÓ*?øÝh  ShÂ÷lÁ7ßVTÙ› ü¦ýÐäqù\k·èð2{Zq–»œLZØ W¤*ƒïPƒ&^a”ïš]Òåþ5y®†ˆïq®!èٞɶÝð3 NqžÜ´#…Fë‚{ç ‘„‹ ›ÎÓ¥7Ý„ñ¨/œA¢8i‘£º¡×¯„¢t€‡:ÎQÓwá@k|ê‚õ\8úq~ m”,‰²¶4ÚÉäÙëLhø——±0ZU{Ñ”ÐǯBõ­§@-º€ÜJn=Rhû’¥¡šVàÏÐ¥Ú³õV ™‡qÉDGÕ‰@Ä£Y]ÜÌ$rEñÉüÓpÉ—¹i>®Þ?àgcN-k—ë%§ûËayø±”5O¶)«uE„ºÓÄ¡êÂP˜dkntJU¼|¿Ã"DW¶ö/OÒ“JÚñz)êºn¶`LZÒ âÔ¤`Ð7ÜILîIÔl ¨DŒ…}Ž ¼è´7ÝŽÔqPˆseˆæ|Lm:ÔåÍÒ „ç à¿¶ä’ÓVŒTm¹q–4C ZÇ{ûw² ‚Ù`ª_¢j­ð<Ÿuìò:•ˆ{:ŠUQ|§Ùd€7âB‡lݯTïƒHÿCœI\C#*Šxâå'¿¿^—$“0ýp#§ .0k£ÏÃæO&•0Q;ÉÈD^;…Ûòôõçšæ‚iý)|¢ÆDîuCE>äJu×)ño_¨çø'‘CF¿©%ÓÁЖ•ß pq×8„h\9//Ñ”/êÜ!_æav\BÿË£Z[l–+àÆP{ò uÈ4ìFÒ_Á¾gÈV¼jâ3î}³Ðă™Ûj =y¶ ´·œ]ÚÎÒ"XÓH¬lø4©xFŒÀû3ìlùEÇkHª|›¥»+׳ÉÜ‘ÿ”¾‡eåÅàÍă+/?‰l EÂyëH¨)- ͯíùþñ (ì¥úZªzŸ€T:sCÇœ¹»šuŽw[Ç÷îèMLu®-ï©u*1j{ëS·—ïBaκÅÑô|ÝúG!µÅàƒÝE˜Ëé&æ{7èoŒx¾Ì åÌÝý’7:¼ƒ-Š—Î÷.¥B¼_€±¸-ù°ÿH…ûhÏÜ™ß-`ˆ9ZœY³ï¥ú²°õ>FOLüô·èyŸ\SC‘ ìq’O ¡ìBn²Ü¶T‘ ÕŒk«EÍ,œa³ž°!qs|Bç’®›}ùÜy#>[ûõÐ MoeKƒíþî°Ó·ó:-¦Å¶™(2¶Öc3}§Ö/«N)+ÚƒWì2aÊízÈ4åLñ®Œj©ÞÁµjAÏ‘Dˆmfà”‚Kêò£1†Z9ä`ÒH»…ëø’RAdMq:îÊJÕ©h´›&ŸdM&&9»OýKûQ·Ñž×;äÄp9·4V]¼ªv1r(' Ê,üµxü26K¼-}Ï÷{!#?Ú¼}0Ž)ïfEÓè{ûA ÞÀj¦ªJ—oÖWܵmP§™Ö/k"Ï«ÑݯÿÇ(&u»ù^{Qz²0¯Ë‡$ÐRLiÖ(dLzìz™ªØý©¼ôC˜Ý¾Mq°TÄ‘=^‡œA½ÒºÒúˆðÅUtÆ ãÜ|M±†J„tî·„wGxõúüÎbòyø*K…Œe¢Ü°æÈP[i=^S 1}Š8LÙ­ËsÔæÇ`OõÏŒ;Ò4ÏH—Š a±jà^Ü«,UoßæSr8O²µcˆ-íAóZ8ëQûáÜ@)hWb,ƒÜgÜmÓC€ü¥ÓA4v;&¤ìG¸)Ø NX=ñ¤¦ðÏíÅ&ØÀMr»éXAá%êsä|Í}œ8›Âe“OT5z9…nxé§a˜øØ›C)[@šzÕªËñ)G¸©žBå8žycC¯˲<×ZÎŒB@Úñs1C a'FÑü¥¦*·£î j^32 À µˆ>Ò-]};“ÅbÕU¶iöÅ}ׯhÙòåÈ6ˆ1ï9ÌMÑ—¬Ú®¡>o•ì)€ak_k£§êç(TȇÃîW`×ìæÏÐK(%¶G2î´æCžmª}I¼}|úDú.*Ph†4§ ®âö1@0ezzÌùcHëQnØÞËlÐ,ä ëº2+6@ :ü¥6¦¡z#Ž’qõÌzÁ§0XÊ,CóÔ^ÁÙÁã>èr’+Y¯×©à’ a{B!M¥µ‡bX$j~‡ºö§w!ÐÓ{°%ý˜.‰HËb³[D}%ÐgJ:ÒBUx¬P[Ö€îéÞ›°Ã3*“fšF‡w Ui1Љ`Nn4èÎ]ʬÇ`)œ2#vÑSÉÕT ¨©@`Ÿ ]n¢uË;ƒûžîù'-TÛ;Ò²vHýj'Š·áˆXÇ—ÃübóBüŠ­)~ŸŠ¢WÏ âפ±u¶G&9\çÍÈ2~ZR¢ÊpĸEîÁ;3?ÉÕGc‘X)qpì:/ËçsãšU(<´Õ…XÓWº>F?Ã:ù£ŠØW†º»µö=OpJ"a<çß2ábÏ0Â"?Ú4Mw»ÈCõT˜²·7N?Ù‘HøŒõÔ¤*ld¾ö$f%®\|ã/Wi Y×I%ÔÙu+¨“-{•X€Ìßdê3ÁLçÇqÄB‘”»×óדòºE~ñ¡[±‘sÕ,Åù£têªÆZ±Í4Þ¥f.¢Ûò®ü®¨Þw¿%§tJʇ8}2€Þx€‰Šò`ªGŒùµÛJ3¯?†˜b„Îø½³pï˘—6»$ºÍíÅL&û‹°Ô— ¸‘¶B.9ãÿFI}Ô ûô}±ß÷n?ÃH†ü¹ó“Ž”˜ïa ÛÁ2¤[ö¤AÛ'V!ñ°J{6}ªëÚ ¯š+µm‹·êšÖø%¨yçd2b4Ì)1N8hÛÿâ|Q­å..$µ® Žé{>hùòÜyáy)`;-“(u;ñVð10bJÆ]P¹M5iãdà02œÓxÓúO‘Ý›«ûù¥–ʯeÝIiëÌfHŒc3mL¤*i“H—ÁMú5àpΔ¨v`Ütø¯¼uH»ÃJϵïmo} 2A¸<Ézf£3ÓÄ1¬wܱöGØ—¢]Hr+[G¼{ÄIaLMÊÍ2{Jõ¾‡²l7+„߯>O0¥ú·¦­ú\÷V½›Ò$ÚsÚ㎿ˆ,µ•Xi‘Ŷ4Âø.&s>w}p+ã½5QïÔ:bþkÔ[ðæ‚¡¦tÁ5²ÑhŠ&GçP@à BEºo®6YW¸ºûz·«­¡8a)/ù%ͧëôºçØ’"=% ,ѦƒŒS‹ÇLi±ùdO³ ¶âá!Ó«uÈÂψíT¦lÊa³jÁ:Ø6ŠÜwåÜQP$ç¯BøbÙõûצЙ¢é¾R¸uƒrÑ—U %Õƒ˜fltm&³·^¥'‘ïÏzùÝœÔ_ÂÓŠJþ[›ço<.ƒš‹ôîߺœuλv5t³_Š8t9ê ´‰(è÷`’±_ÙÀ¤ÔÔä5óK)¾õš³ßú'¥2„ò`_NmxA·òáukX/;‘nÊ÷¨N¹¹{¡ >æ…Î~bäÂØºGºÎÀ#ø§srÀާý Ì…„Úœƒ0ú­8ŠèuåÏ7xŒ˜“©f,»ø4>ÞèɉhÑ3-£óL0x¿ |ÛfÉ{[§Éh!öñÀNÕu«np¢z2Ýåà½à>WùƒÀO!ä¦ËåΰèR³øœµðÏý³{ û¨ÀÂâ©óbød 6,ºDOqfºac…eÛn±×­»,üÜ*‚=ÿÂ%X³»C>Y®DdF#܈ÂýñÑ‘S¯-=Îï"pÀA;ŽyÍ(è6æyÎ"ZΰNí®Í°âuæé{£f¯Íj.½È¡¯ N•ÇšA 1/}®Ê»:×Zz…‰½˜Žë¤[bˆÝ%ã¸QÏE·Iö®C8ÉU:šOôÁš!<â« ñKŒ“y¼Ì,à1Q©´B‘±›4j áŽÓ èÞû#©¡Úvü`J5T ÊÌú¼ýåDEêÑ¡°»j94gÜÖ5PÉØÿ4§Qņ9Ùˆ ÏLÞŽgÖùÖ&’Ë®ójÙKJÓv´~y(\hŸ³¤V©À"2ü»ì¶Y‰.nA´ =’ž°Ùd¤jÜ·†V¶*t° Ãò•¸Vd•0t$ ú%¯=‰âéŒÝ& ž\ZŸ 2îéÏõ¿Yæ]½+‰Ã~ÉÜ‘ ÿIlÑ…Uæ­2ãZ™o’¬Ý“Ä—ðéò\%ÕV³ÚIÎÀSÖP„ø÷!TQ@÷rÎŒâ ózC¿—HºlölCxHþßüÍuI㟱ž–pùô9'³¡êp£ÿç²·3KŠ wÞ8|`±–òâ§,Ž îߌ÷ÑSüÇÒpx—&žyÔiÊýÏЙ˜Ô#kTÌd8óåR®À‘ðè4H›“.4à%Ñ þ ÖwÆáïg¤x åÆ ;=++OÅ{€Ì›)ž1ÅçãVgü@ÂŒíC¹gRa꓾v:˜KÚ ¸lcÉÜWž’QÖÒ”gÑBÝû°7ŸÜé—DN£üÉ—`Ð$~½è):9p‚—ÚæQÉ¥!zÜÇ9vŸàI_þ#TŽd‹—žÊ¸¢³/ƒs§[ýÏÕ£3+»æ±ge+$ú>=¤Vðöà¥ÕÐ&Ùó·Ú‘ÚŸéîº÷ËÇ—!Cw2^WP‰Ø°Ã8ÎÞëlÙ Pô«µKÓ î>‚YWEÓõüaR÷åª1©¼`µV¿‹ƒ¶ÎxTß’6F†Š×1—ž{+{E*Y»ö|¥27¹A¿®{ÎdœÖ9g¸±TÞÚ˜3È?a–„ŒIJY”å$z*¾â*°É¶¦‡Ã¿ï¿‰Î‹HŽ ì!Ø„¡M%Oûq >Q4¿:(”ì4iÞ%ÙcáÎ’P˜Ùèû W/†Š DÊE8¢¸«Ë¡_xÚ"údx“™‘i HÅÒ".)hŠ0ë{ÅÊ5åÊòÜHSÔ,jü &-‚”ÉA/ñhMÛ›Iú÷™e0©s·‹Êº2Oƒ/Sñ€]á³2**©«²œj!rZµ¿èAÀ ¼»ð3$dÇ÷È`P„ ž‚OÃûá[Å·Ð\/ºi8£ˆ´ ‰>f¼5r‰}ª¯·G¡3­x+;…€h= ;áª:$aåxŠM]å)žN ·ª›ø8ýOO£?SÈJä°s¢“%öÑošŽ<8mF’Õ®Çæéo¶ëÈ&´;7–ý³n›3˜o<й<ÜHq¶½|ö°µFˆëȘcq|Âû†ú#l+Üì=<ðõæ,ë* —òØt³ƒŽ†”òjÝkü™]rÔOô×ÈÎëœöžgí‰Æ¢;O¨¢‘#|Ì|j±Þ¦^$ ‹H™vêtÍ,æÎF~_u»ëöúg©Ú%ºV>˜4 ÖæÚ‡C¶¼_†Áü9ÈÞ_Ý‹D2º‚,åˆpuF VÁ_rå}º}¼ò#•ÓpÈ“Æp dg.]@‚º×äÿÿ¥ÂÎîÑÿØò[P6`îÝ3@ÀÄôøŠ‘®þ𳲇ù">UtýWÖŸ6š•ZyÑcwœh†òÌ™|AÄÞö«w$÷À.}ô"¹:îì]—4Y>œØE4À©¹§:›´ð.ÿnÌ+O `avóÞ‡5Ñ[¯m¤ì>c}JvK}QåmÏT©™;ë¤XÇ©2¢!s}&‘‘ûÍ£ó±ˆé ’„úð $ab­y ™ÏÜ·8[ëà(#k¯\c­ ™¨®0’µ½†¼*¬]Ê®:€eê3‹Äd´2PY›¤(&Ÿþ?l3ÄßG.¯Üg÷ÖyWŽ4*óVŠúº×ׂúu…z&µrï;—=öã5Y½cü‚"Ó+uçõæ„Iù¿Ž¥¢'¬ù×wfdÌkn÷CýG ¸¥Õ1œáÄzª9ôêN?ë©,v™P[atîïÑ•åÀ 3‘ݨCRjóYâW Âær¼üê¹1JçJQ öSrúôš¹Ã*‘YUÕ¶?œS8{×úç»mj·³" HËþ§FÀ¾˜Jñ¼|‚D¿>E yè*ú•”åÖýíˤ€nYzŒÿ x JZâ²Hò¹ SL ÔBkv½Fëﱅ؆ñŒk¹c¶þ>¿ÛÆF×¥ƒ—z¿Í•¸‹Ï%€iróé.úÝóx 'y“kìiµ ø¶ì\NÔVh(.V¾3a,~‰p¡Ž ýUˆRE¶ÕähÊ»÷,?͵ #O˜DQú‰ž³WÊøÇÖÒðò{øì† «·Lü÷Œ‰9cYg:ƒ~=“làø…̾~Ëÿ½¢ o—Ùéõ!Æ£Êøïä€ì`cy€4Bà–æXØÌµm”ídàF»}>U:’¼K#j`S‚åîÈJøâÕeý;Ë#ý7ÓˆbŒ¦ÒÝ@ð;­a¬vI(ІÛã´æ3ÍZN]õ^i݂ɠwŒ+Òk%>õ$vMè;é@'Ûßp–àòwˆ) ­l]Ôüäø›dq¶4w(A(*”î* ‚ÑË»ެz¤¬¬|Y³Ïu‰Ÿì¦ÏqBÙèh?ºèä!ÃW “ÍecNÁVAË<áæ³‘—ˆrJ ŠÍHA©¥f‰†§8$`rD‰ÉîIQÞŒï=i ÈÂæ(ÚKW´9ÖkïªÒbéã5ñàˆm;áAx´ÒŽÜg­„|~‡®àrf) Â3¨Üa昊|§¿fv¨e•F <\‚SÇ”ÇPwJS¶ƒÿÿYRŽn–k¿ÜMóêz)©á}¼´U¹0æv•(‹/JÁ:î¸/7¤1—ùvbS<4Ë6¹lñïG˜ƒkÙ=ç¶« òâ·×ƒá@n´ Ù™LØ0ñòy_+U8oQ 9kÆë¤ŸjÛë>\qZË ÎÝKµl·aï£(.ž¬?›ƒ‡= -`íSCþÂX¦ }ê=uƒÍÛ±ý›¦È°`aÌUžª’<ÝW¦–vøX0"m÷Y3oŠF(²ƒ°5«GÍsÿfsFY='©õ¾eJ‘/³…$p`X6YåÚöé#&6‡ùÊ*¢§ƒ5ú |ØßÚZ§ÖmýcG¡‘³ê{CO{ó‚T—ìMÒnj ÔV¶=ÅX§Ø†<Ó´úQìò¢Õä´nÖ¸qhÿše"bû¿|í„Y2âÊCG*Q”BF>V÷Ö®Ñ5½0Ê[ÛñAâ ý•ÜGÙà Ëtkó+-: ð.Œ;ñèÁ4^Ó¹"®oÆç”—u, xÌJÌ ®ûÐÞ‘v^gÒ~9 “ûq±0/Ø#% ªúɦž>Ûà‡1Íö‹>ÉÖz5ìCìèãÌ ò©nº—‘ O¾ÌsÿRKN]×ÿeRý«•#‹¾‚…èøW°už>¹vcúÒ1BÁa6 0cÅ) 0K›ÓÉ@:| ògÖ†¢vÕƒ~ëV„…†ê]‘DQ?;@õ?<RÄZ¼ÛÀñƒÆþúõçßÕÞ/ ç™Jó8DB© ®PY#C÷€QÉãÃB«7‡Z€F}Ȩ—¼-_.žéJÄmz©¡3)øPšäñõéí½'¥ÂÖ‹p›j‰,Пmíqéw:Zdñà#Ú· ÖFÑÿ?øìIj¡N~šV q î#9wG¿ÑVÿÕ’.s`04ýŸÍ-{eÊ|#rNøeâ#òˆ~ˆ™:èÛ%v¤Ò§åÐBëSG‘š ȹR‚g9ÿPÊý^îbÅWš ý' ò£ ¿_Ù³Ó¦ä cá2@3øV+[ìcãú|NÆS¹1õÑÛ“¯ È«·=ËÍ„\ÃÓóhmÞA~p›w1ÑX Ùè‰KK¼ª:ú˜¨®,i¬ Pâúaü¿©‹½¾Í®„ˆvüñ›Z½´@ÊÃáV'ø®VÛ–÷7­b»é в]¢ƒ`ºlÛ ­Áô©EJÀ³ýµÐ¼|䳯l÷]`­|H1Õ©Z+ßÿÀ?‹sö1'ßc´6?l06…cÊViŒ ÄŒ:­”\ µL?K3Š 7À†´Ä }Z—Êâ_P]àßRã\Höó‡Kg£á´VŒ»¥J½b¨ËÎx±ç…ÓVÌ7všaŠ—Ã†TL8Ò{ÝMãï⺡.uŽ ìäFAùËàòÚ¸¦××3¦Bu}»óˆ+ÕEîºuLâ €ý¸­¦ŸÁ%“⛪øµ#‚¢Ä'—¦ƒ1ø?Jã-BÏŸ*J*«!Y»1±’.Yò²ŠQÅû¦jeøÛVߟØ"T"Aßž¨éÒÿ,þâ‚Ea¾=«S’\V°AÖGb•k䂌ŸGI,î¨Úß¶NìÃEHÎxvP^ï.3Z+)Aa«°FÙgÁPÔçÏÇq•‡ô‚m1f¸663\UÔ—xs9äVs.ï#öÊ{X'ãá\ä·uL&gßes‚¥˜X±CaÑ5~:Ù:éÄ^T𜢅`[ʹ!}ݨȄS±=¸éêŒ"ÊnÖ@›¢åï<üÛü! €m!˜äZð¨”|ó*ð\ò–‘Ž¡ù·’€RGò¨K¢›ìaá!vjœµÓ¼[tÁ$QœÏËÒBô9:2’S§'!¢ ÇŠïù~UYp(Ê Ò¼#®èrhQ‘ÁUò»Š i¸%ÆnZòì³ýÖ¦i÷ž†luI%tצ¼¬if ôÄ´ÞtÅÖÃXûdŠ3¼œE¿”(§€"$Ö‹§&“ek$€»(k°”´ê\öëjV—Ììšå’¶”þ²Ü“Ÿ¢§ô‡Ýž³•˜¤d[itý—Õ€£ÑÌHBw4Áj 1ØÑœoY7$êˬ}¿ï_ŒÊžE†ÚŽ)ßœ6~R¡æ‰wÒ­1']*¶a„k +ÐI$”™P;Mß°|©zµŽ0”9ŸŠrSŒ=6ê¤}\÷Z“Öʹ¥G@^éÈŽÜŽw÷ ŽWò~ÒzÙný{bobŠ=£Ú{DÝ74D鹊ŸJ“ÃFU•:«løì帹¥òÃhFV±¨ (5öaÆ~³G„œk«îr¸Bá‰#"9ÎüÙõ^Dø½ÙA¢³#"oÜ‚¤8—-SïZÚI¼bµ•Šmö×'a¥Ç5ÏåxìÜ[¼·V—žð¨Ñ¤bЕL’£3 ¨°•âi[¨á%¢æw‹l'·…`«ÊWoó¶îFÆÈu¼è ïÔ”=«ÉõxAA¾¨¡c‹ñ?íÀÀû4ј+e¶Oú˜—<+áÑHY£‚.Òi*lðé°ËÚP[²Lmzœk ›Þ0ì0{»ü±Ê`’”Ù«Q¤hm„/E‡]j¡6=·ÞënQõ¼5Ò$í®qí‚–¤.µ”kª*úfþer>*bÿvç¨!ïVQn]·DMÌH‚dLÁ è%Q÷Ë›O@øœ3íýÁó}RŸU¬xz\,žõÁÅߥˆå OìùVÝ´¹ã¹¸X¸´JŸSÃDþY/6w‡Lyå…gÂwXþW쉶ñYþ^Èä‚Ã<ìƒ6-šä”VEIC4Ìvp1«ruæ r\þãc¥nòÈ­mœ:äxÂxº#ýnȨÑÀÊL´L÷S-·¦¨YCá äŒóù’ =9Â"úkb®}Zlbå`#+êx¿Ìz\uéð{.O67?™½è7¨pÙ_UP`—ÞWNÛ¥S®ˆÀñÅ ÷¤MùTWø§ÿ—Í« »Ågbâ :‡ç=ƒ+â¥Ïµ(†¬ÇÎÑ{r'Kk7§Û~Ó„j]iy†è¢0ùºplÏ´è{^”5“òª;5o Ýõ^†Ô›ÝÉFeŸup­•lv}uW,–8ƒ«QÅXKåλÐeÅìêÂ"XCKh“¶…w6f*TsEuÁn ;÷>a.©qlV¦•\6ÌJ+¦‘—R¤T~m[7WØ™…ÿ Nÿ¢ tz«©1ó·#ÙW“1£©ÃÏ>õ÷ðcÍ…Y-` 9=nLƒtʼÈwn½W“µ›ÄõÚ£Z¿½&EïäÝ6ÝïÏ®®µö0C”DuN¡š×kA e´£.Ô§>>ÇŲNjÐ]šSfzR½»Á×–ôsV>ðã`ó†‚Ð`.Ñì#ßó? ºû¦†„ç4ž7T0ÛokÍéê×?>ý“) lƘ^zE:ù±ñ5–¤ÏîX(åß õAsÊÿXfeÌY „¤HfŽªD9+S3 †>ñðð9ÇeL¶ÓÇ>š_ºR^´­z4¾,7XÛPÛè¤ähâYáÿèbÙ2±à4ÇA—7X[þKBã`.­Xû[)ísà út›M·á*´÷e¶šÊ2ËÁ$M{Åç‚6mN5É¡3É"DfüaeÅfJ¸3g‘{‘Ǧêùàóˆ§|Íœx$÷dá’2Šô2×ä2,Då:•I_Ù7 ènÈP1¦bÏæ$Eî_å[¶zx,ïœ]·Ž{É}Môö·Y\˜Þ:~–Õh%Ï3[ÙÖÀÛ›¬/»rÿ¯6”É¡—G/@.rP‘O½˜‹Ñë d’¯NVÑ á…Ž¾O[= × *Λ<­/‰[Ú)ŸXEä ‘Xþ£.ßYÚ¼kq‹eÄ’~–W±7PÒW·Žâô~A«ÐTç£D¬K Ël×-ëz`º0Øqàžä"¹yƒtº9™¶±  ?—e‡gf§UgÞù®ÁøbAçˆÙü@c¼!³MM ?Øw«¤Sî/t»™­ª“wöùº ÚÃF)${þÄ ¥L —Âé@šÔ`J)® AްŸó#·ÒX÷ -£¥?X¦…¿£ú¸=LÓÔº¡<Šqž¤PiE1ïì–†…z—²7oø(|fžÚU~ÉL…ðÒ;ÿyñ*ø<ÕZá+þ°lSVëÝàUR&ÆU"ÜzÅy6u¡Þ*SSRHt› ~«$MçÏØ7ª6Æ/]0–…‚¯% yÉO øAo‹© [ø÷°y£EC#!ùSB­Qry¡¤nÂT±'.*?ßíL@N(ñYab–aËV¾GQñcDÈ1ô­âÒ’PDvè§‘Ž`¦?ilÔÝÒ`ÄÅŽU1 oÃSê~èÌOj5,E4 .‘úàžñê©Q·-ʇÍ<Ò†g(j©"#þë[Þåí£†ß‚÷I9ÝäGKïHKVÄê%çʹ¾=‚ާ¡N퀙lÝÓhF¢ŽV¹–…æ·¶¡8Í×mŸdû+3n©Áü9uò¦,tcœu•ÁšuUó7{ÕÀ ù!ömfˆë1¿½®6×qtåæËÔÑÔ4†-k?änì×|Ï?ËÀÏa*Åæ†z- #±w¦Eq¦ô(¶ów^hZ_Æ¢yÛ.ZŠÄ—û*0ûÄZ»(Cœzè•HÅå!aeÒIÈ€ü0èÀHøRš=; ÀmD.1žCƒï¹d=µÆ§Ð”2…0^Uö¢’ÄÈlM«o|å-ó ©Ø0R¤ïÞ_Z T‰rÏÊÆz‹† s·ÿz6íÌ¿ÉPƒ0ÔV#½ðPôSfVÕí³B‡³éð°Z^™qÓu¤ÕÚ®1~9YþP 5Ÿ€¶‰«9ÓÜÒˆp˜ûQ\uœ|rÐßÅ Òœþ£’7P­Gå8}“‹ƒ`Ï„ë4eHâÿÑ (´ ~¢+h1ªælêêT–Á*æ/Á'âUo‰É`ÞÑäÈòf“ _‰ËôæÆC› žhËjn"‚¹*¢'O1yÃ_6cÊ­¦ÔØ&Ý%êÇO,'ÿ÷)&çÕ!£–ÁnOÙ¨šjú‡©ä>d±ú…²Ûê dÌÕéÓp4HËdN··~`ï$ᓦ¬Qí,xÖ÷p¸F±ç¬Ë]îIGP,$‰¦ÚlƒbǵŒ¡)×íÀ<ôDM™è´dyŽ.³þ®œ« búâ6˜Ž4£ÕhÕm­%G:²`:$Ùc€Q9\{$×ó×Ò *¦ÁOR YÕ½*äÀo•ªOL4„~³RVþ<[wmßj=L›ÖlJ JÙXs$bb]]ãÕkwjñ‘SÌ'í X^T0Ã_»ÊÔˆq£ÅYÔtš%-ƪù_þmÄÙDm‡½Tá3a^6œÔr= ˆ 1w¤:„.[•È­s««O ^ ²åƈÿ¢_HýqñR…­9w™p'7¿µ}v˜ÍÚ•9Ƹü:[È•™VT±ôñÅšÍí.ú„S¿ûÛì` CÓ£swÍRt+…çÐïÒßhIÜKÛ.$™LˆVjý@b¶Œæ>ØðëÔtS,ÄåF2<öü€XŠÙ@ ŒÉ¢nlqû&•½<½„¿òàÐ^ÎâŽ6 ½r½²i>þ5Ì@zË1ÜK/®§*`¤ë¶Pp­O]¸!§‰é߃“ê.-8ߎ8³â)uEÔ'vÅåÀ]ø c‘§;Â:-N“yø¡‡sá DÙä0ƒEæŠñM”¸(En¦¤"ÑrŠ M’0× ¼¸ ·gY’(ÀÀ¬gÆ_©SM dÄIfµ’W"âÌÇx¨·–©8Òw×<êëpòm57²öÅld¹´WÙçƒ*·÷Å6ˆw_àg†GsÐZÇÁ±óTeûŒ»µ]¨Ì=®¨h†ãöŒÛÐ}/M[~`|™iÇ_%Hh„¾¡(\Ì&æQßÊ/fòIgí£L>ç飨zG³è¡\ë3Ãà á[`Ú|n˜ÙþÌMÕÈ„${},ù…®~¸È3þ- w¶¢«%‹©Â<á_µoŸÄmè¬G‚ú0h@[^Þ/è“Úml; ðÑ€<Æ’©m†o¾@uUøE\;:Ä—©-Lж2G¤yW)œ<¢½þzq’æNµo檳g –½óHš;r°lÉýôåŠþ$fž¾Z1‘Þãá²ÕâÜÆ–4ƈÀ{×QÂv³í°m1n #`„Æ·ð0’d¶Ç¢“ËѰ b•Âé.jﺈob@Lf³m~פêM>ZrþøŽ`µŽdSÏnüÙ­ìÍ&ÕvŽbñÉßssy&Œ×<ùM9Ð~ÚP*û3¶ÊB³{:ö¡–権Çb×"mi8½¨ßBýɈPNÓ³>!õŠx{ýjŸ^Üɪù©NÑ– Êô§¹¬Ö(h^“è?ãB»£–‹oËLD™d×ÃKk=¸íTòCz“¡§Ë™Y-”A΂E2<ØÍĶé ûê>‘>T»ÎȪÿ¾ •ùõi3ðWëÌ=_ÔTLžÛ-Je!a¸Êù¼νRNû¢¬/³ 9=ût|\¾Zxkˆ“Ìæ½¿Uf‘² -aUîožc©ź'Ê}Ð¥I8àn #EýE³H§)ÿ“µ×} øÙ@[ÒöR_ôí}…®5~·Á9š²OÑ`ÅþŽø(´©þ–|¤U‹Ÿ/Ö§ØðVË»ëw‚È}R¡ɾØ1—®^L öùÿ-=ÂÝ %vRRÈÖ~þ ”_HNÞ1ÜjcÄYyèîyì[ÔOLø…FÒ#~T˜±6ÚÑu5‹)™l màžú7‘q ½uã¿â{ò”P°™²”ÿÝ<«¶4ŠÇcg7WP@Ö:BgìÈjØœ—ÙÔôYNl .Ê„Å$4¥d¢«n15‡Ž¿uS/ÆÊWXáó¢ý$*¢´ÿ¯òBÍ€,¯­XB®Ñ*HÚB[EOõŽD¾Q=.ÞûZ³`Û :l>%ÿP}wàw7RÇÏ}M”\—Fϯü˜šØçŽ˜ƒð–{Ç}TÃÖïQ]üÍv×xã‘ÿU a¶нlΊû®€7½ïGQÓ'ë¹BG°ÀÄLÛ2NÕËõ/¡It¯w_GœEL; ±€ Ê¢gÝç ‡÷~ÍîÃÉ!GË÷óÓÄ ë;-åé”e̼•¥‹´ë»*•¢L7#ÆÍD);å°çH´#K¦„§¤yË9r“µþ;û®åJ¢yÁ÷t†šº4ÿ)™0š0`ŠŸwrr ?øEdM>{ìÏd²ßdßÃ-œ”álC||Ò–‹…`æÅÒðã@ò»šà›MëEÕœžƒÀ(,ê…HúÞ³ÛÛ>2(ÍTÑ®èï#ܧt\šs©ƒ­N÷UëQŒ5¹n³X½ŒýC "ÍÇ£Àqê«x12—ÏGÈöpÒùn T—s4&šñ~yÕ˜â5EnÂZ–M w¥s+|ÎUçnVgÙ½&üýï*þÞÂ;%W¬ÙéÍøåCóNY¤°IQ\u˜,…‹i‡]tp€Š“> òÔ.m¶K;Z³êÖÛën®=@ àn;¯n‡ÂÎðÀ7¥ÊÑg¿Í5úEynš­9²~ãj‡†þ ¶gÊÉ»à @ÞM*øá6xº0–˜Gp$kÓöIå7¾¢®ÆR¨5 $éÀç2,á`jÌ®nV‘_Ç-¸÷òšÉ†-RI•2œg’Ûøq7õµá£©åaçÐÓHN&œ‘œë%û|•¾X(”ó´Ñƒ£jqŸï™äº)`â—òMtX³˜PéÅ@wä–é^›h†ù'·+Å'ÞëÜ«Gez¹8N ´Züb:تVôؤNÝ׌ #ý:0$S¾¶Ø"IE)áx ”–€ô!Ò@æì~÷Ýá¼”¸Os?`¦*JÆþYfÿ&b8”ê&ÿ»Ñ väŠòWýHW¢¾ÙÙ;Ä[¸øªR=>R\UôŒf?Fã<âÀÚžzPºr4=6¶…*½øsÉmbþou?ò<Ü‹ßÇïòa¤[ D³Í< ÄÔHfñAÖ~YŠÝ¢8Ú¤)Â7â¥vB¬Ç¨è`áDõ·péÈ$<Àðˆªg1é„KK³¾Ó©ôFÿf3qmtÜlµéP°*ͽJoiQŽÿZÎÛÏïVP{:kL`×÷U µ³ºKvO½± Žôæ^|+cÛýe×p )uíkï50’ <厲Ãqâ§Qr#eà$rAÎÕJÏ×d²`}0FÁüëËÔÔ[¼<^+#¤s¾™NÏ VÇ2T`7MÁúÅ<÷ˆ4_[nçáþË^õùY™mƒmšø5á{âј>}Ÿ¿–çÁJþ®4’>ô6Þ IØ~ƒ¢z­;øWCÐ_×_ÃJÃ¥S#ïü|¬z\Ø»Þ+z³rÔ`ÀúóÈãºA™¯ÕW5÷ÉȰx[EHGâ<¢bÚÿó!1Ø Æ¶h9BƒRlBÒ ¨cÃ+-×þцdïQ²«1IëÈ!T^©ÒfÖ—DëjÚÎz¿k!H½ð(—´Ãi¨G°$.Íú–k¸}/· m)‡”ûç7€ÿDcIòêàk =Ó›ÀÊÜMýbÏŒN`”w)~LìcÈ‹æSÅ 8°gÊûbÚ-„×Úñÿ)Ñ«ûe5Šh„ALü2=¤7÷éD%4G¯ýÛzDY|G wÕXéiUtÄ®ÏíÞàJ×Û °ÛÚ­Ä«®@§ÊÖÁ‹é;ºÇ)ylu‘j~Ê,,®‰‹pPdiîèrLæ$=Lkˆ{·>½Fˆî2š: $ßKÓÇç#·4`ž:’»t|E \øiõ7nò†wž™® ÜSy.cÇô»Ü’̆^<¯'ta ÜH%È­7'YÊ/0ï¹_)$Ûþ˜¼uÌÍpS4é—tšÆÄ"Ùý‡!+fQ‰XÞ«OIáÖ†2 qæot¥mx°ña&ÚCù vGÙ =ì;Ú¸Ç7yäB.Ú)_Ž%üCµï“éhëÚ¤†TÁüø*+ðFáÒú@×Y æ :×8‰]@âEŠüžæÆÂ=é~l˜­‘Ìô-‹’ì~ÀZ`n!5¯F¯*B /½{X a`öÓ±Ôfú:õ†°Ç,ñenù‡{µ À?ìé7´0UâuÂí¬ÝÒ­df‡Ãð_$f_ ÷„´#¼~ ÚÆÈè¾Ñ‚œŽ8·8QN,wx–|þ<ÍÓÀW®,.ãÏ¥„n4+Q=áÖûäõ¾v´Ú,ØÍ ¾>Œuá\ÅKàÍh_²å¯Äa2U½a»`´N‚ä´ãéõnKØ \¤&%Dqëô:,þ—_ªÝ>«L߬¯3_\î×¢“Î $5BO>ÜfU0à¼% ï8é{s={ Þu‰-¼ÇË%“eýWÜÕ&ëzEEÄ$Ó¿×D“XNé” » µ±)îÆÍ€³—+Ž·¾ €cš19îªEwŒHðÛ¦BFk÷…ˆ²v¸»Ö$ánî¯íYNÇAŒh"þëLî®­:$A¬wiŽöøù÷0W¸„Sûfè+Ps„¬‘wC&7E:àô(’n‰{O C›› Ö·ïvì`gZïÙÏÖ×1© j—ª~…1ÞêN7*ÃP¨Ô±5 ^/KÀPÖéÜL;;âˆ# ´Y^>q„㛈©Úv´OZÛÃ9„åÎÙŠSngêØ;ÇíÑ +YuwþLa`cÎNh^b€+±éê—Êê­ÿLíU eÁã#ˆRèMùY½d ¡¨Ø,¿ºZ¸ð§F{0¬ÝØŒ¾2ÀLZÞW::2¹àPøæP°£¿Ü#@ÂÏ.C¿CjT=j X@^³úªù>Z¾x6bšõ ¨>ôš´øßÀ8c›ðï5´¿ÅhÁÁ…{ ‚{“{¯BU€¥¿æy•ÝÀ°¼G0AýûvM\>5 è£XD«è™ÄSÅ—¥ CYlGW) ^\KRÍ,-!ÝEZ–Š\²¢Íf[&EŒ¡>Ÿ%¯¼¾Äá]eõ¼‚èÚJ½™~Š2!ÐŽÞvs?›þlnG J!IÛ,¡Qœ*Ê ¶ñ–°dzÛ¦Ìá„é¬(¾…Ì®koóu¥,‚[Š£H©²-ש‹ðËßZþ†÷Ñ&u™ô:ç4!õqžV϶N•ÒÏçZ^vZ°¸ß\­ž…t´ôv¬cõ"šÕuX¥Ík Á²ðïçô&!mÉ·qÀ?ݾ,{æxƒ.;)>ÑÃ_cí ‘Ìԃ̩7äƒ]º-…$çÌ/s]ÂÊ$¶)’+ƒ Þ(ñU–r‹]òçÕȶ3‹$$Œ±9ãR·ÍY 8YÊ\ȵÕÞb7¡]ù]©7V$*"Oy&ÖCà‘Â[n~þŠæT0µ/>0 ‹YZrrcov/data/wolves.rda0000644000176200001440000000176014660616401014335 0ustar liggesusers‹­V=SA>’ȃ£6tTVêp>¤ \p¸ ¨Ù„;ÌÌ%Ç\2"V©¬ì¬°²²²óPYá°³òØ«öy—݃0Œz3—÷cß}ßçyw÷²«îº3¼>lYVÊÊ\¿i¡fRâgÀÊXCBîEáK¿mYé›ÂòŠ£½°>oZ{S|Î~M$¡ÿÒëúq%éMó88Q›¤ÆÍàDm&2]ª‡¼M‰Tú€×;Q,´_ÉÑ·-õhR@“â1i1à§)æïëUÿòœB<@ ¸ÞÔÕ^ö¼kõVµ¤$û93m ù,a?EüÖ¡iŸ’‡gÇm¡Î&äòn2ÓVþ ™'¹ÁB^óÃý«»<䎅~k§óÂhÕ¬ÍDù òÞ’‡¦\'ó7(Ž%âÉîšñd?NÈG‰üJ2CÊ6d’ c7jwÎaÏ?È,µïRÖ†üü»)«UHT§ÍRªÍ#ÛJø‘§ÆÌqªWíšùª4¯jÚ4ŸÇþÚëý¨É;úØ^c;A½‚•Ññ¼gká‘x¾²Ê— ÷°Ê¾ôWnK»|Gޝb|õâ¿!ŽòBåþÏÙÞÃ* PyYúבFúËhQõËe2¨¯À~s<¯uZôcâwmƒúÜ‘LÁ~ÈÒ9@Êa5H2P™ƒœÍJÈs – ä|öù•ÁŸƒ?È ­šÇ|Â1‹%`ˆ›Å8.†ÖæÐÊY)/FÝ1¨{XåR[¦*$Ô({²«ÌCI’+hÕ Z â± <´ÈÃê•Þ™ù=Pò@Áû)å (¯|”qËð{h•‡]SÂî[–-ëCýVï¸ïŒQÌ›?c×/÷´vu±‹àQÏð`»ˆw1¿^ä-P>œš%ð+‚‹|Eô3>ªùÈW$¸–ºF\¿Ï]£Õñã(®5Ôúì ¨–'ÔØ€yBC,QuU]ldB3ÛÅîX€ß=D~b‹8b9zó¨ç¢^ÝtË{:8yš÷ñÜ3_‹y£Uçmÿ êJ9 d‚ƒ³ªlÄ£ä8ü6(Ø·±Ÿ¥qÌsãOó´Lùa;ø†Ø]³Þ¸´ûP©ÇÑ^Ëø‡3¯-ÞôéÞ9b^F¥q9ŒêâŸ"jÑåµí¿¢{à+[iŽÒ²J›PÚ¤Ò¦”6­´ûJ›ésOÞ®{8½~‚ÀàwO'1ŠŒ¸dÛšîhzVÓ'4}RÓ§Nô@Ëhy•G\ómMw4]™ÐôIMŸÒôiM¿¯é3´8½Zã'V8Ð ëà­p ¦ä–°~ý Éè™v rrcov/data/bushmiss.rda0000644000176200001440000000217014660616400014646 0ustar liggesusers‹íšÍNSAÇG>H4M|.\AXjn ‰+#"ò!Dî-¥´…–ÒMÜXx¡ñ xs¥Ë>B—®ÄÛÜÿœÉœq¼sK[\´Iûï9sæÌ™g†«amekqnkN1!¦¦£ÏÉèëÔDôñ@L‰ÙHgrçb¥Ôh1ù4²Fï'Ñû‡·ŠÞËÛõtÝiź {Sª€¶t݆ê#o®­ûבç#æmÀÞL-ëí"¯/Xݰ?ÃÞC|ÎÓímäY‡ý!dÚú»Ž˜××_½ÏG߇ŋò÷ɋ惷9/9Î5-/šçØ_Ïx©õoáEq÷Ü_®¼(®ÏóhãÅ×£8_hõÞ•—ê#øSöWÒyä?wk_Zx)>ÜFœcÑ8;äX\¯¤ó(ä½ŸËÆós>4Ôm¹Îž‡ý£þMÄÉý|ú¾öá/´ac~€õfûˆó}ݦx_Ï›ïèö>ÆóÈ›GÐBVÛBÜj+2^ª?÷žy©þðõ¼Ž¼hþx¹ö—q^ÀËèïß7Ö oÀýEëXú‹ÆSò2ïÔÓçyT÷I¨ïÃÂËàÇxYã|)oÊþRÜBÍVÏ5¨#¡¿’x™÷2öá'ÅùúºŒ—ßgy˜_È{ÿó㺼"´ ­‚G öØ/™.C Ï ï¡L¬_b>^ó ûšY(ö{!ÇŸÇzŒ8y?V±ÿ öqŒõNdݘWBýgȉyWˆ»DÞ«Ø]èO}|À¼èçÓ'/š?"^´^J^4/ÅÙŽý¥xÜÄþ;öåc¼ÈïØ_oáe½/ŠŒ‹…—•›ãyTÜ$ó»ñâýeÔçØ_wå%ûËw¼¿(>áäŸG|ãGÈ5dЏ*—~ä-wPö_Æxv©­ûXœÌ{†|çÓU(ê8¯AãùÄõ?ã¥îéGÞñ¢ü)y º¿Ôóâ/Å!ÔêUçñR~ŸÙ–ù^F܈Σñû¼ÈÏxþ”ýeò¬a¼¥ÏÒy4Ö?Ñý¼~³ÿX¬¿¬÷6㕸^/ãy¿†ýËßäàTZ7Ö ütžQ_¼ä¾*YìöéM¬ øë˜_‡¿ÞfÚaq×È#ëý;£×W uÿ)ê=úzˆk"Oûh^3¿´Ÿ’—Ñ—÷Ä‹ê0/õ<(ýX—ñ2ž÷/õ\ ÿxÑ:Žý¥êîê¶#/ÅûåǺ)y¥=êÞÀ¾x)NXñJznµÞg^fé¼ÒžÇÄ:õ}H^ªÁ¥Úùg>[©qÔ‰þ2ydPwשnk^nooyàôþqÐEHç\>8 æ õh~dýî½ÿñ棿$rrcov/data/fish.rda0000644000176200001440000000375214660616400013751 0ustar liggesusersBZh91AY&SY„kÿÿÿ·HµÿÿÿÿÿÿíÿïÿÖÿwèpÑ@H@@F`A@A` ]Û¡ß8³ÔU½Y³ÂãÀÊ ^f‚SHŠmTýOS25Oi<¨b~”ÚlTöŒ‰âBz½L“OiÂ@hhÓ h= ÑèÑ ©ê’žzª¦õ(€ @ <•)A 2šC@@4 ˆh € €d&””Qÿª¡¿U 4m@€4¢ FÀL#À!€À ‰¡„ÐÉ‚F‚22`)=GúSQ £G§¤@£@~¤Ð‰ ÔzŸöïwî :„ Ú%-¢¥KJW„‚† ¬pó¡"’Åæ˜J Ò;±ÚR.ö$¸‘¨¥JE#À„°št’’I ÏÑæMg›fÕºéµ)ÎÁõ³÷uP\X¸TÞ÷®kþZÑ)ß»ÿ«S|Êð,eµ™¬Ü³Êߣ ê7 úOIïé=èÚx$~‹†í0 ðÄ7qr’\I$â³zj1Æ&Êãò´MUO "˜ä¼G‡%ÂX,'*.ä¿2ëTmi^„õH&‘7,ôù‡©±Ínq¤IÓö#íT/ºý­ºTySwõ†–m– Y‚I¦ï´!!¤ Žò@ÀIÉLcjPà€@|!!Xw…&ßð%ÃVia µn)AM X4“M @²:Ê(¢Š(¢ž¶1ŒcÆ1 VA©ÜØ·nûi\…V$ .„4‹Ô0-Çv€Õ¢ZYEbÄ@PÚPDµµ± –2£KJÛb´R²V\H±DÂ1‚BäqEd´¡HÒ@†€°„ ¤ÔHÆC"Œ‚¬&EaDˆ©1‰‹10@X¸,aq’$ Á­R²DA+B¡PEd´J˜ÄD"`a"¤H“"‚Ö¤¶¢4¤RaP ²ÂI†JÄw3Ñ–fä);¦g¸Þíü«; §Tl¹­ZµcS‡½†¦¤x¼F*j,`ìýE…Â_yù–¿’s0Æüò#ªÜh¾žîþyç«wZ1Œc0b‰‰ˆ3žYe–|ùóçÍ4ÓMnÔµÆÜaÝÆÜ7bq‹i UW·9Îu×]uÎsœëÎíwµU²ÕUU²Mnsœë®ºëœç9×oÛméUd´[bºd 2pkÙ³,8r•ë–1V!ÙqçJä‚=ÝÊ„)<°¨Ð©R°«5Zº®»Û.Æ*äû…‹6k×ÇI$’IÆ9ò2éäS§Nž4ÓM4Û©I8¢†Ûm¶èJJ(œç8ˆˆ*‹M¶Ý Šm¶Ó¡$¢Äç9ÄD@T$ÓRrIDç9Î"" ¡'&¤ÒJõÊJºi¦šk®ºë*•i4Ôœ”•9Îvb" ¨I¤Ôš’”’à¾XRÇo šŠœSt»GÁø-4¶»Í¨~½ÐÜïÑhd ûã' çøð{VVJ…DAJÃcpZÆ*6ÇF’cÀLi¤1Š*‹Z©b£QK†X¨˜¥05‘3µ"Œµ BÁÆ¡ch‘IK±Û%,,Y(€iY¡4Y™(± VÖRS2˜ä•k¨FÈÈè†RV2ŽX(ÀYr­(C4ÑÐÇFÕ0km+D¦ Ì1dW KjÈ‚’ÔK”0TLŒpa¥²É¡*ØdHÖ2ñM+¡•cŠáÛˆ2DÅm¢ÚX¸áY¨f†„LEC&ƒYT$”ˆª¡RHB$bÕÈ£k)‘ HÅIJeQEؘ`¢ÁTÀÖM–J‚€°˜-‡ø€L@>´žK×l½ò˯—òóLÌî !œ(9lrÝ»V¬Ùw,«TÆðc£QÙ²¹ûÙ¢PT5œc°zÞOg<çs¤ÑÅvÅê÷ Ü,^ïZl>T€ÿw„‡·lmµmKEµÚÜ»_u»æÆ›:úﱡ°îúð€ûñŒŠH;ß¿м^××½¤`B½©$p¨˜+™æ~‚0_÷©âe¶}S¡t7…­Ë…¨ê3Ý¡+@á-´Í;¬ãP•Ÿ™Ku˜÷è´[Õñ8Í­·æyZ¦h¬æ„­†e`fSY¶¡aÝóKä(U•‡nµYYÛ®tw7¾7¼áæQ¼hb…Eñdhv›®tih’´ò(Íà¶ÖZn Ç öØ0ÀK éGO òpás”òË4^Qd÷g$õT%£†åÛƒùú.‰$+˜Ý÷»À)nø+ànºI†I™&BЉX¢ˆˆ¢Š bˆÛ°ò˜SÍßMn×ú±ù›Âw>ÉVž«­9=hCc"cŸP¨ÙQqzx7·HÄŽZ«1Øþø‚d[0ð<À’É‘2$—ˆ§>WGONòX/ô…¥ÞröžGNïœñígDƒËnݱËx–ó²]”‘-ÌÌWð!É2ÄA±DAY"¬F#`Bbì-#7gëÂÇåÙÕa÷…S+y‘€ÉÉJ|tù5/™ 6—f1+õOü]ÉáBBI¬rrcov/data/pottery.rda0000644000176200001440000000155114660616401014522 0ustar liggesusers‹­UKLSA}ôçRåSÑ‚*ùCaMÞ#ŠôºÀÄMƒ­i‚”´/tƉkÝb\²aÃÒ¸Æ5qéBÊŽè’ú¦sÎ`Iø’×;÷̽çÞ™¾93aÜ·à3 Ãex¼Î¯Ûz\ÎOá1[·’·íLaÕ0Ü­ÂuÞ«ÎÛa%ö²â±bïÄóÞJ¾Ùqž/VxjkB¡Ö7dÈù~Xú2ÎFñAô1°#ù#À‡Ó2Ÿvø(â#À‡ÀÁ>Ž¡ßñ¤¬3  þ ùÉ|LÖQë £nñ]à¹ÛM‹õ„5_ W>êwk–y·a»P_ŸïÖløÒâCÒªõµo† ÂoC>ý x;×ÁoÁ>]‡ß¬ñzïBy݈ç<­—yX<€|ò6ažñ>íÿ °ÔéE~;ûE-ù¹oð·hui¯÷,÷)„ø[ài#,ûVûŒøNàýüÎàkó\ŸyÔ÷óóÛ'ýfi½s{®´nîËzæA82^}›Ù ¼>ßJ>³´ë›\ÙØU|zùKræ¾ëûeîω™ù3óä£èD;)*~o»2PVÍoˆÄŽŽúÅú !±ÿþº.÷VIzíRæEf©èŒš*³õNÙvnNýt!g2ée-Õ»¸”.2SñeÓ‹v¾àŒNôðåôó ÃëºÆ8šJrô`š£Ô G÷¦8zÄŒÚ|!÷,§wÕPÈ¿a)±»®5ç§\.—î²Ö±ïiÚNd NÊ_ºnÄ•7bgжvïù­¾ß(ÎEô+ü¸‡ð=ÏB·SøÎgq^x1?Æ<øñ­?ï!¿Õ¾Ôíß]༨ûãA7N݇?„<Þ+¼oz«tůÎ7uVé3pêèœûBÝ'Oˆú­Õ£^Rtª¡Ž‡zHK½Û¾új}<]ûd߈£ÎQ÷ØùÈO]kç>¿ ¿£ºžy(ÔÂ7©ô‹–¸Ò'è•®Sœ§¾üØ ˆó@öaÌ ]ñ_N3Ä÷ïâ)¹ˆ"œ9RgDÀÈÿ~î½eí˜_ô˜'¿hRÂÇñ rrcov/data/salmon.rda0000644000176200001440000000114514660616401014304 0ustar liggesusers‹ÕÕËNQÇñ9mAibbâsÈ‚Ä0*&Dƒâ­ÞбJqÚê´PE¼_‚Š÷ ì4˜ Æ[bŒqG|]¸Ò¥ñ \P¿‡þe2­kŸžž9ÿÿÿ\f:í[ŸéJgÒŽã$œTŸI¾¦|'åtжW\¿X.9Nr• äæ3lTC"¦m6ý‹Š«ßJ³¹š­5šÛlÞ¸Ѽ¸¹Zí#.¶U¿Ù¹™î‹ó(`'²Ø…~ ¡W׌HG1€2F•_Sœ­»yxØ¡œAôaXñ'4¶ kp›ÔÚ5t«Î^ô¨ÖïÓºú{wñ1S˜ÒþÆ1{ÚóeÌ(ö‘Ú+8©:{pKûµm—t&£ÚÃqåÞÇcLjŸ6fLó=QþE]ÑõqåÙ5žVÿï}1œ¯aæ ~ã6žá~â5îàªò×ðÓŠ‹o`>ó7ñRu?á:>âX‡¹ º³øŒç˜TÌŒÖasêª1«ú7ðœù_ø®5U´&[Ÿ{n8 ù˜ÝT{=Úó9¬Ö<¶}.œ÷Ùlge8sH׳ªÃùšcڃ㞙ýØ€ &4(§¦|3¤ýó<žKÃ3`6úÉð÷ò¿÷ÉR÷î\‚ÿûøÞ°çÛ_êÊùÑÆÕek}·rÄ-©»|[rsú‹“Û²„…¹ ón¶Z¶ï´¹hxÉ-zax* ßè•r^ ^º;ð*5·ºp¥}³J^Øë ‡ ÑutåZgXÜ>u‰1>êõúT#0Y¬1s«ng> ¥±Ngî(¡œÌ©rrcov/data/OsloTransect.rda0000644000176200001440000002776014660616400015445 0ustar liggesusersý7zXZi"Þ6!ÏXÌáB /³])TW"änRÊŸ’Ù$ï‘ö¡¸¤w“TXšm†äG'RØcÖ7 ‹ýýõœtÓ°ï|k~tgۚϣ‹m8ø ‡õÁiÃ¥šŒ®Žtfù±Ûz^’Á‚6ËøÝÅÅÂ^mŒß“ÀáõI=.–#E¢-œ[¼Þå= v•mž55d¨@µ#U”¢û'@¡Ké6yØRLÓ0ü/]ŠÝHÒ—wóVàçéûزˆ>K 3mMHÀ³TxŽSd;ͼÀoëÏoÛÈò·†0æÖ-Þt˜Q¶g=Ó“ß!lQ+½Íá¨X‘ žêkøÚ(Ž_È —Ý°ÞÆñ½˜9é)j áû!*ÁNiÍNmŠÍXNµ™C§Oïâhpà$ nìÑzy’ã)r톳}Vüñ]1êF-màG,f{hÇ0OýF1 ðÃaTÄ*‚{é-KÝP‹–{ˆ[|ýoµÃ¹³µ O”Íî¹Óµ+ÌÖ¢¥•ýÚùN¯:„˜IGNXë!î# žwq²½ðA¤XIžsŒbP 5½M·¥€B–Ç{LÅ£ ®ôƒpõmÖÛ[ßàQÞICØæS¬õ‚…^ öA|•µ*¶3•”À¸¾ºþüPiª$•*†ñv–¯ýãF‹:É o *‹ræëÍ ê~½|¹.±?k‰ õ\;$ÁäIpêbû½iÁÇ]È4uA Ì1W¢iBº•m #Fr¼»=”È<ÏÏ’âü•$ŸŸ¤¶¬Fšé1$ž÷N¿*Ãô?)ÃÞ3c$,`%‚'Ã9âÜßÈV™ P=%>;¬¢_¯õ§oÎ ]ù4%æÕFV®ÿ¶L­ãŠ7¶Õ–ÁáÒ­UÿA7ÂÙ-¼w£ß(tÀ–| 7¨Œå.i.‡%lMŠ’•þ¶óßpGiâò¨|@(¶žßc³Ò”QýÂy£K¼{“ê~D¬¼Lš‹ 3/£Ö¢áé ˆÉ´w_ÆíìûFÌ>å"Iûj€“¨xé°¸.é”b‹Y‚a„j½¯nÀ*ÞQð{äÄÝÀÀêî,~C‚@}Éþµ7IJÛí[jkG»l;èH¾Ä/ìXb%ÁÙ},’õ8ëµ.)qU>´¤Ø3`·àe¦Ój4øÙ %Q5Ôsè*<`gߘ¯ʻ¼‘”F?•C:Ÿ •©?Éô—Œ‹„Lòøbżտüö/÷Ç”¯<LPn:¸ TW„ÌþG[ÀRúNÛÔ\Ëq6å* üjú¶9š0~ÛtãN¨¹é”,ò·Íà¼.¿¦Ý\ÆË†"õi\µ…±.­)®æ4k§ 2áØk¥kfâÛLçÎ6÷1‡äBK]G¿>À—» ^H8Jjçõ¿kܤ~3Â{ÛUçµ÷v?ÿÃ}ÖÐÁ:…mØZ© -ë¶ …æîeJc¨‘£!oV?4^½Qìà(õú¿2é=|B‹Ç¢ ÀÈJÅ¥1W¤{¿¯»szþæÙ[àu»e'æ’CQdšQ{”Ì^Ügð~Çðrà~›à2úí³¨*”Õ‹|ûÎèìóN#¼¬¶^£Õ%éÌß•åÿ‹†5<»"¥Ö]dÅö`à8ÇJ!æÎ†Ê%´ÏïAI¯ßùÛ4¥Y7z-[±K3éäxU+ÏQ÷®xŠ©Žã£Ä´™it¡DSyÕ Û\_óÈ¾í« ìÃÎZ—Æ\¢² q~XÈÏtȶvÅSÂzë4=u«¥àÃõjÙÿ̇3Ìp²CÈÒ/‰Šã "Ã¥ Lv=xXi^†MvìOûÓ¿|À=H’)DX¤˜QCgU­é»/±Žm{3º€»ùE¼n@ÚÏ£ßв›2;ãÐ;¨cÑù¥a”IŸ#‹æ"‘]x>5~(Sóòv¾lͼÍá+·9r«ªà!wyÅdUÌK ¿‘‡$xYÙâJÄM Y¬Ÿ%’jy¸µ“+PÍF‚ ¬-ÕÏZ'c SD©Rû[‰2º4Òm…?¡0QÊàá€äƒ(ŒH²¢{nÜÝ•ïÉfm(\ðn×À>lÚ]’ɲ'R~,Xs~z/ˆ!.Åð¬s‡;‘UŒ”È!‰ÕP͘è»´EZÓè¼PòºO²ÎIƒÎxÓ–VóºÓo·WðɤUüq\#B ñÌ‹ØóI#RNr­f¯àÿËþ©-Ù¶Êñ੺G:Á¯0·x.Ä,¹8wïž<†´;} z=«¾t»3FÎÒ0~4u¯ü­”ÇêâÃá9Ý"ZعôUÕ¥Qu†¸'­AgMè7Âî—êpÈðW §Î »% ÃÛí¬,MBúÛî?Fæë0 jÑÿ®KXê°“×k€ã´`ä ^á‰ß­»Ç8“Ìy˜„ F­¿~´Ôʘ,v¨©^Q9áËo†{ugÎfÒøD®‡Ævœn Eø|l^¹„¸ô;ŽÆ^ð‹’6$I¿.ªÊ†r ¥‹zDeC ﺥ²à»N æ` Ò­RTäí¬8Y¸çÒãˆI)P! 2‹©9qo6E¼h/âEr.>syiPfÀ¿ûÿ§ûz5ì:W™î”ѧ„º¥Õ‚¾B5yX^ëåÿ5cé¥Òz#`ç*ܽ/G ÎÆJ…°Ö…þ O9«;ÜÓ([`xÞÙ‚\ž®BlU Iü”å ãúú#O’Èîô7ˆM=$œÎYvazýÚ‹ç †¥•[§D™ó¡ªŽpNª77ˆ1`¦SÉÚW`ª.¤Ô4øŽš©<¹¼¹oËù«Ò˜$رz•(ŠMáódˆÄp²Ò„Õ?Oš”Ç9ñ“cŠ{¶d©WhËtæýP‹Gí¬4p#éOXŠéÚ>(“‰ÅÝ™·y¨Ñò-1 AÞ‰D2ÉëÖÚpðCiÀËùâ¼nì °¹rs¡N÷¢/ü«’Yøè®„ÇŠ¬µs®ÿàà×A „× wïäÍ zxËÀS4ˆP;Žy‹ã»àâGÖ€),ýX“‡ª‡|†í uÏžë»bœ¬•Øs«ù+2ƒ%Ÿê•“0fuG èƒíŒÆ¬jü„´ˆW›Bà¸àbÂqÌÛjʼn÷‰Ým<ãÂ9ðÇÒã\°Íÿ€7§ «tŒm(xR•]¼êÖ…òd| °|Wöª¬zL€f@÷ ¸Û#Hß—?°DÀD  ø ,Z!Äë>«$úwªÆÈÐ)z lÙ%­]©·Ð®öôþO>=>{³\±¬Ðœ9˜ôÈÛ.7´þCɃh€> l4÷áù?Ì-|éåpŽTÄ襖˜DRÐ;÷@Ô¾1ÅCºÜÞ:ðåé!z\§µè|®zÜ^ò­Ž‹ž¼©Ø.‚Ï‹âeL%™dó{+S¥y(‘ˆöЉF¹õz0ˆ1#½W?Ó‘GÐF ýùa Ô5W@maMØ"¬×-›øp>_z¬Spk°VpCY¸æ¢Kg‡œ]‰]KU'oGK£éGW~;庱cqÉËÝñ=¤Þ>çð@Jˆ˜h‡šÍ•Ú`4y êò^²f¯ho•éÙI¤.ÜéáŠÊ7š¾\§²ålú†™ÐšY†[^ïåL—aZ7ýâßÍîîÙìË-á<ªhÆðb_B‹ÀðvïSj©ý‚Äg Ô½ëX'ÊÖ!r1Hf)ÀKöùáÙÆ¹™n¤¥°ˆæ í*_^‡ÄçôÓí÷ÈûN* …E7U‹gÄ’Ó€„ G<œõHŽð7íÜšâ~Î öPzîbñ»/u„¶„Î1º‹Ï-½5 ò_a«+Y­¦yûË‚JqNR\@NÂ;ë)ì¹ôÑEñ÷ž1ËúÑHÆõÎŽ ÝŠÓ–7îúi4œeÌŸ7º¡ËFgNô3î¿vC¶aéJ2dw Õô2 µðÝ5Wu®x¥mV/<¹ËK1Ã%»…þ=Áûš¸å]½ðîÀlÅSBè¿‹\õúy¤|ßšÒºò½ò1 ­bÔ®ètdÂh~·ëIåX¬>7é ÿ»|€C,.ëínŽÁäàˆÝó=ë]{\hÌP»¹,?Õ^YOS¨Ù5o’U¬”\“yö·¦6ï«[]TÆ‹Çв÷ײ4Кh¦?’õ¿3„ðÙq¸í‰R­ßí?öÓX(â-ƒh6Á£°oñÿ¬\èÔ±´âÇ‚ tp &J>:*G< ; íåøýÛc²‚Íf5 B(t;¦âhi&Å¿ù@˜g*¹n?X}]ÖŸpè=ZñâÇ!ØÃOÞ&l´ÌCÀ:‰öá„<ub]–R >š³EâLyiž’Ž˜0YŒ”H¼4MõŽØÃ‘r=H 9c2ß'"ðõ‰êv_­ /è¦õhš™ïyÏs„BÓi3 3x¤ÈêÂì¡Ù¥–¼_ 3øžÕ¹x/ƒ+½È<ÈäWk¥8ob±÷— ÔG&€˜Þ­ø/S¾]¹iæIèuºÍUÑ/àØµ(Pî‰ðî)sbdjˆ]ñøåO|$éD U)Щ1 ŠÑdÀœµÐ”ƒ"Éö:xmú<1J'’GëÅ©´–À)›ŠYJ”äíý† ›œ’÷æjº?äÅ"ø»®ÞåßY&žàÅt¥¯µŽ';ðΜúF_çónŠåªP:ºø—k[ùT Ñm¸QÙ^göûÕ@ʧ]e^ôØíZPµ~7oòL­Æ 4…N èGÔm{f8wE™\BXõ@ú‹—í0k.Xæ8ãÒ¥ñÝì  _H£Â+Oî²ÒoUHˆ<3ÚxùT‡Ûþ ñKZƒ 2F^¹ƒž5p¢ˆj¾%E5§$&™jÓsŠÁ;f‡£¡L3oðE’M•uC ý‹<&x–tØÂÅëÈ!ü]ÇB›º¾³—¨²­ <¶Ðat‘÷²æ+_¼)Î-÷«+CÕ-}ønöΓneúUY]‡¥Æ`³în±™R» ›òŽÄãÁ) ‹¢u7€~ª×Ù¬VSÐyjÛ9˜ŠÕiI'¬Q«¦¦/˜Œír¥ÑY4~&þû/ßu2$7²ûïÏÆN!‹ÊàdÒÐ3Þ’§"jøqúôQ©ûÕàªÐФˆúæö9f¡±ãJ/tÝ@ý{Ï)­öSÉ<%HZ_s$S`®¯9™š@1d ¦ÖÖ¾~ÍŠsqÜ­S!‰?fxiaEk$œéâᛊÓÒŸ6Æ<¹\YÃWž¼än?ψԓ&”åÍŸ½&1 _æQúÈÚ pÆÔiøC™Eÿ¶!ð™ E›OHÕÜö@åI«¡˜"eô£Fâ|—C¤|‡YÑ¡B†~­Ç,óòï ¾Ô0ÿN7Ø=—þ…DÎü‘±ú#Ù¢9âšÛ3ÔLÈòÝοQiu SVUÑ}¹öt(EBf¹¿|K²ÈÆëqµ¨(Ã¥Šú1ý î>M–1åûѹnÜEmÍ€YÓŽVŸJi€(#Éç’lÑAÆa¸¨¥ÑLʶ Œ¿½k@2à†m?ãU÷ÖÙz)óY‹irgi8è[Âncr±\Ôúß»LJ¼É¦ÍPÕØéÔãA r´­'º¥R²Î%«ÐCõióöˆ–)»š+MZôè(ïûðמ¸%1¹à¿N~äHÅ7ì ¯v4_Ú q]>}«ØÿpàiíJ #ƒÔùÞÄ[Áœb{ºt•R>¤‘÷vÊL÷þáÏ“ï‘x‹;†”fï2l¸ê+§‰¥“aÏ‘Åu•¯Þâײ”ò¾Y¥%Ïuz·(1/¾»u©=Ú2£Ç‚ ¨¦uÙ~¡¤8Ä*Þ<Åu1e¬È '¦»ÂW¾=ôÆhQ„E ÚšKŠ0гñÒgê¨dï ùäü>@îâ?A7˜žÒˆŽ£T˜ÄÜÊÙâ/»úbPk¿Ïcÿ8Ó¤Í& ÚkÙZy¡º?²óã>Ä¡ŠmP|ŽνGжg„¯½h9 3ž¿¶ïWÊtä˜ÚœL‡HO,¢x¬þá Ò±Lå?V ¾ãßz·ËeWã3é‹1Vž!+øåÍŽËŸ3b5vнf>ÿe¹ýˆÜÖ÷Bªun[ümJ…þë»;‚‰ÿšŒÂÁÏiŸÞˆÓW·|c Ú°ÄÄÆcK@4e»»¬Á‚W¨%z¹ FŠ„ 7êW@ y£|W»ü+T³ÄKºmüò•‚¡2,,>+&j‚çàé¼q ,Þ‹°Aš˜Ì=ïj\o¬Ø[v<¡á/þ3BÄŒD žìኮžôìîµóÈ•hñ[Ûþ Óè­¯ ;¥i$áËÞ¿¸Ï´Â¶9µpo|ìΓ%Ê»…ÐLaüfËC ¥?‹9G-€ÒÝs–k|p­@)ÝM¬´šù2H0§4]Ä?ר"µ­¹Å²Œ?¼sò_Ø´³Gœ ø¶µ˜ø{æÃ*ít¹*ÁÞÀê×ã-i^§„Ç8¡ ŸÑ•?°Ô%0ìùnu <s;«&ƒUÎha—¸è­vÆtòE“†V~±à{6ý‹5UÊV-'qôÅ_ ÚC*0y¨8ÐãÿÊnº£±¾µÔ~…€SÆ…“ºöö…-An›áÕªÿèÃý/´ƒÒ¼Ú}çrù Þ7Ã÷!ê¤-êj9O@ÉŽ u¬Ò3ÐU  {}c<òFÁRÖœˆþ0Ë# 1¬xaŸÝÿQé(œî#Ÿ™]ÉÚ^)tßÃ.À˜ÔQH…Oõ™\Lö)ÞNÒ×>ˆaä+­‰Lú>µ"êãPqjHØD ÕþiiË\´TÓo¢ÙÞô’Ì“®urH½_f(X£"op契Mr&%†^íp\æ6€´‚ùãàý¾E›Þײ'24-úš¬Û4ŠêT hÝ(¡—e•™b 磜ë~°¼’º ŒøÏñðBáßD%É£qýˆ0Ùª0âz(f`ýÚ%þ% ®Ä®ä†qɱl11êàŠ½N|ã‰À›‘Ìh“LÍß4DaÈùSÀ§Â˜t;®<†Mü׈Àåý*®¡ißZ¸Ð>'ΰx[¦x°€ÅÞÁQv›¯ïP8w¯¬»¨â·4vZ±ôË5èEˆuë©FLpûtN àÔú¤|‘`ö§å}o‡BmƒG§á–f‚°ÞœÖéZFd¯¯¤v—cˆ€ãÑï²8±SƒDQÛ»Ù'òp¥0’dz4Ö:ÖòŠ·ë{ª<ûÀÁ ê„x–SCm–VâžFx2©þãn»ŽZE&ùŨ·ÕƒÁîFþ‰ Úhd‰ábgí`ç¯.0Hvȱ•Üö—uŠŒ—FlñØù·=*"©=C§”Æîmwåþ”ª»BIN®ZPC6Øµî ¸pïUï@&ž0¢åw ÅHú¢õ°|¹tW‡é忘xÀã#Ù#ëíc­4š“0.»¦xªh¦ëÈÅ·¾)Æ®Æ\H˧F Wña?sÅ'{.èñ°za²‹:C¨øwŸ¿ßHÌ~ÝªËÆÉ~'é fºâ0U.z¬Î™ eêoò ã™|ìy¶y¦7ôZÆ„~† ÿ{Ôè+KxÎ.ÂbÑ v0§ ‰m !`H†ê; è=Å89»öœ’àö ¬ìÓçûK÷!òf=®þpÙÔ·F©"¾ŸhZC²Xe+Æä‡–Tº0ìå³Ò§HºÃI§ŠÄ;„uÄ'Ž°Ì€sïñ|ÙåÒ‹ÉÀL'Óü!7ÉŽþ5Ì  +ûU#`“Í–óI ¸hV R¨`ˆ_n3Ä‚‚·Íª|™s¹€ƒ´Ü•„êC—ŠÙû}D8ɨwt nÝ&/©sý?îgÚÞd–)k€H»†÷‘Ÿ=æãëòò4Ç*ÐÑìúHiRêÇÔ” «Ý¡oFk¹³Í%¸vêîÂgŠêµ=ðŽì•É…N©€ë/æò¡lÁz’¦ì꯮¶2‰oœ½ÙÄÄÔ~î”Ó„] ‚<;óJŽÑqÏ pÔïO>m~½‡ØƒXñ¤†éó;€\Ûw¡„•Vì$"ÖÄ«&ÓfhŒ‚/}l¢¸•¶«¹ dZeþm¢}¤c;Y |Q|-‡®*¸É«Wò¨€|ŽRôBa°ÿy {-œ¥< 6ÂÀQ´|e6ÒSÏcu/fªðÔ1 Mþ‹¹œœY0Ë1ÞHÂÏx[Ú Š@Êh¼ HùöSo­ Ëb…"§üPˆi};)ã÷¼ÐΘ‡œ > mÃ,uýB]GŒ¥¼;ðèq“[ º¥ŒÄøñå—v‘aÌ8«×'ÁP/cèsÄáÞ$óèVܵVŠ!ÝÇýekcv1¯F.8‹ÇãüDEçX!LÎ|"Ûûl ßÚžŠ¹F£ºŽøÝªÍ‡glÂãÑìç+mŧ€î$qc3à‹Ie"´ÛA+̼[ÁÓ8dv\8Ti9TÄP”#hDx`›¯CéIEø“\IX»LsûxÉvöÙuÀk‰¸]AÁÒqÓÅñ7‹SJDWDËf)¦3Dx3o§SD¡ÕN37:¥GþÇ)úùLs\uÂøæï€ñIÊá/lTûÄ9OB„L\£v<š‰—¶DFuÄ{Íò$$NÕ¢º¯—ÖŸÖ‡£ßlJûɰ"9Ï྾· sÑÊ6O<Øê@GþÚÄÍàNÓ¬4=j“¤ë¬{M‘ÚT,ü +¢¾…¦§¢Êh…œ³ÍÙ¶wMí6oµ¼=ƒ:X]i6õ­±±±K,,±‚*Žò„æ·„5Ö6™ÅÈ𒑪® ЊFß"&uÐ{„P˜§æŸ<ñƒpß±cÐ/{±’†V­ —6Õ”À8v6 TPO¯+7Ä=…E ÍÒ qÂ÷ çoº­&·§Ó‚Ì 9ü_¶ˆE؈²6?YZÊÆÁ\UëCYð @€büû3@{µJ^°ÚƒÄxžò=´SlÏÇÆ“Á÷£Scˆ"X´X;ó‚à¡„U0Ö¶K§Ò‰]Ý{ÌBf5Kì‘aŸ¤²„‹˜¹Ÿ®bîÑÖSiÓ¶):\>x•›EÅWyjiñϪ3ûB{®æ8M‚ü(Qů~½'‡ˆ0Œh¢g¶¼Ê°®H-&ɱo6Ü™àEâB˜Ó8ûÌY¹´'½½¾(¢yµù!± wR¾¼ $ ¡ÒÿkIC+í>™[pËôä=¯WC÷;œ©#&H-«ZøV0HÞ”¼»ßƒ—L72¬´A¾JÜã– ŠZº„Þå“-^ Vg_>Úˆc«;tº >å܈:á"aΠ⽋Һ­JlQE7pßG^$aŸà'^vÕ¶ñ¤ÿö­,&ß«Ûç¹´?ù˜«wÂrNcY5b½_vãÑ9ÒaS«´îü’R@ù“^£tº@ tVò"¬£Û³Š›þ‡ܱæÐ£Aìbì NO\Þ÷>‹˜ÀÈW€æžòg‹hn ÔógÓVYZ”ƒ…ߎ„ã)¡dÍwÆ€¼ªmO?ªl%•×>Mï~@‰ªç¾5ð9ÿ5æÏ­æg»®ªV,–ê,½åüzÃ1¤¥<†R¥Çp”=><è1ùhœ?žC#ª¦öd¤çš 2B±¨¯~õ´EL™¸@œþP›,oNωCÊœ:FªÉ­™S D"%,\4e¢+A–¬Sæ=ÃʬõHø«ÿˆtM z°[‰4¿D²ã³$Þ+Çtž¹$ÜîB5ó“)ªè¬Ì~ÒÞ¦þ@+.í°‰1˘&aËÊÁ]?ö¯÷I®‡å.N™‹}ƒèyL–a€M öœÞh-š¾D€Ä“Ûò`˜T"aġ蓜¡“³)¿E€ˆìÁS<³”èS­Ñ›JJ5ƒ£²œÑfñ©¾…ëQ½–¿¬„gPÝ ’K$[Ï€¸Þÿ €ýÃ× VT³«úžš ž°5VOµÜ^#ÔÇä-ÕöÆ ¶ûˆ¶‚€Uƒ;-ùʈ7äþ%LÌÛdÅÿ¬6kÇyÖE¤c\ç¥ÅÛ¹Äò*ciÿ`p< ûÆj­MUª*êÙÇpi-·”nOÿbŒfT0Ö7˜H¹‡IùÄŸ¦Š5–•s›(”e3­Ÿà§ö~òÒ³ÉWn$?NZÜoå¯Ùž]ÄËײ¼ÙžG;øwæ‘¶ñÌz,ÂjâÕ4ŽWSe2­%"¨F>…)!*¬ê,E‘NK&ïlýת걽{wÇ(ÛÉu©°¹úÐ)®b…éî»b~¹èãlå´4A,ÿ•+lûß5z ÏŽj·1yÛ«¼YåYs4ò;ço/XÓ ZÃ÷ñ’•çÒXOA­ræ- Ûãì#Qÿôú3‘-ˆF_Ú Œù‡‹c§²n½d…ÀuK«ÉvT³•Q1 =Lç5Û=‡Ï$UþGŸó}ß¾9§J/@úš­Æaàl„Ù‰´Ñ+f:¤X1yû˜æö:ú%pAËuX¢„PFÈ Z”¯Gt2u™ØãËx*¼{Ð`®¡E{ØpÐíYGÒ¦L<á… Ê ¶Eˆ¾XÊ šáb=ÐU LÔÙƒa&¡#>¨ë€jüüT]ŸsTK¥N™…ç+?ºgYñê›q ¿JVñtšwƒ$/ø×åÇ^„#öƒu^Ö)Z÷aɇ¥#ÞNPæÆ"ìÃ) W2c’y¯¡{罕hÒ,µ¶}Jœ¿M¨ùë„kd´8ñõs_ø%[‡ 3±¨ÜÊ&þ§CB^«z¬’62׎0­¦øÐÇ{8ƒ9“ùgõ¤yÚ‹ ‹Ɖ²sÿ&©·hèš ejÍ;'Œ…øÍ^–¼Lö zVúÇ[¢ñœ$ «ÉËXΜ‡Ž˜D^a"1RBX¤,\<—'¹ýê¢÷’>©I;÷ë™Þ!@®!z"Xð—ûÄÕr`71ó,“O&>"Éd[›&»Î&ÏÃc_.suRŠ&qó_ãpI/  ÂZý€YŒé’ÕÊíâù=ØxØÃÀÉÐ$ª­êõwï'qéÿæ)Có•0…=òÃæ¡{St}!ÜnñH¿GÒõñ±5oµ¡{CØ­âÛÚÓ>ŠŠÇÜ‚)ª5@6؈‹h7V Öf„yp‡àŒ¹”Zª¹PYÁ?Ákz7ÙÒS¼±%^ˆ½æ$“Z+µd2Ò‚“ß)ÓFµ^Ø%Û,ÉsÀ`nÐø9»¯;»£Ú‚a(Éc]Ôà©ÊXS€/Ùâyb®]S“…ÑýQîÜaËqÕ²¯Èæ$†Uо,Üó¹Äµ1ìq~ôÀèÀˆ{ ÷o]X›þwåsÿX`_¾Ø/}cMmÏØêZ—篨vd.†…«à˜OÞô 9þK]RãÅþª030ºYx¹¶I±Âaƒt/ÖyÍ번1ñšÑ\âI×ñI  '’Es)2àD@“`vÊRýœI2–tÏNi{”·R õꡎK~5JÓƒÿ÷éç_YO®¾oL´¹”\dF§îž3יѭŚÐx…“6æבÅ[âøÈUó ë‘Å©î‰2…Âȯä]„ÍA}ôT¨Ä×ÑË R!R=þQú>N„8‹.ñjËîÐiÌ7o«{&¥-#†4R R²/w`Sáw» ‡O›V°4äÕÐ+‚MØÚ;`90 ²k÷ùw’½¡L«)™ï½+OçÿúŸíD„Å™êÝt;Я·ÔDæYV3I»ˆ½áÉ?¬ÝfëñàÈœ†vØ8)îóJ˜Ä(µ!°Iœ-݈٦ö‰ýSòÏŸç‰ÀÚøòÇzãI§¤¾"YÙ¨[¾fÌUÔ<FqqÒ¸)Ø!ÚbvÐvêBžnêÜ‘ŸŽòÍ¥:¥>$3X‹¬­åšJ©æ=ËRæŸ×ÖÀü%Þ•s¼6önì‰+Am—>9p‘ºØeõ„¬§KŒÎF·´Ê7¤õTŸwqKQ¸¯Ø7ÁQb¶eH‹„eF7s½:#ú)O¹øa, ©ƒ-£Ówhzüžkt˸ˡ‹Ø€UÄΪ±Ìö\Ú³È0 €L0‘¹íº/‡åŸÂ’x’…Iv»áõ&æ5lÍ »XP†ß>²Eô#R’8*?æÎ¦ŽÖõ´fõ9B#¾™mû›S[ÖUó…ùT42…V¹MŽ,¾û/-µâ·v… ­‹ögƒØ}u‚¤_™Àl±Ù|ìëdÙ9dnh¯3~!ü $R€îSþ–$Pð¥pˆÝøo¬„JpaíýQÓNºf²hÌÔSØl¯­$–&;uÁÑfçÝChæ­¿$ÎE--)OÉ9Ìר- 6Yï“LáuÝ6äã<N€(,lÙõ¼h눿’ðôð‰/ð.ß WÂ[;‡Ëþ2w`,}14¬Í—7Ö&tR†ý8Œ „)³²©¿ù€î´£Ñy¨am\†+b`âÃQJàP7D³ÂÕˆ@Õ&Œ¸ïç1k.¿„¨²«Ë_Ž„¡äô”>0 ‹YZrrcov/data/rice.rda0000644000176200001440000000456714660616401013750 0ustar liggesusers‹]˜ l•åÇ×@ÃA³ s›sα5ÛbˆYÌ3†º nN!†èX[-¬-蜻˜ÅfŒ[ˆc:§ S”Æ rx´\äZJï]Ëi{Noœ¶çœžÞ[ºï{Ÿß{\8I{.ßy¿÷yÿÏÿù?ÿçU«,ò²ñ%w-×›‰û‚Kÿ,}/ütÎ5^¼;@êyËâ=¬;H¾š9_“Å«MÁ. Ê$jçõùÐAG÷µÚû’F+\:òçÔ?ÃÃ6ê •Gg:?¡ðe2dWÑߤ:DwéIÙF\)ø]Îóx}1„sÁ69aqz>éeò’eÿCàïëúLH·+ÏI]Ȫ{ßÔ«+i3~ɘåOºÂ(o<.-áSùkÚiu$í¦¹Z ~Õîv_Ò^âJ±ßxÐé÷ci+uÐd¸íö3Zf¼’nêê°ƒý—ÚÖá—ãK·»í£rÄêPúЗvÛOSv]“àsÒÁ¼Ê׿zÞ¿ o>2¼£pË 'à#ÔOë N´Íö“}¦—rΕóçä4ú0~ë©j©ßmøgÏ.ê?ay–ÖåO·h…ñZÁG2èÖÉ]®¤ Üûˆãƒpyá ÒÎ9kàQ|¯¿µp0—ÏKKrêùVï–ß#qò3}‘~;‡ž²uÒ>Õ¡ª­ü‚žâ¾ÑŽ'Þ•õ}½È<ìÓã¡ð>añk#|FO³Ö?‘´ñ*WO#ÔÁ8º?Òí™^íDߎ£»èI.îÓÏè,úOÌú˜Œ˜¾ˆ¢+ÝèÖ¨ûx޶pÎ.òE½ÊEøž ÓZuU;É먓©_kïãî‘Ó­„Õ­zFÈK/çíõ}ƒzMp.î/Ft­Wx ƒN¾¾*=äÏëe’x൶ë8õÞ¦wè‚Ö›>iÂΧôA¶õRL¥|³–WM’wß³VÇ9þ~DfÁcÂú·´XËëÔk¿éVâúk]!iœüÕÃ1xÑmþDRCVÏ’Â·ÄØÿ0úÓßÇá_8Íú²ù(¯#ZÞtìu ’Z|Æ¿àáám3ëšÐëýÔÙ^té4y®åüàtÂü„Äèë¾Ù1ï—ø˜$_iâˆYÞµƒþ»ÃÙŒ•rÀú¢dÙ?ž>Þ´ñç“zz%|¼*“Ö·u‚ø{É':(’w¯ 㯎ÓG;,_–aë¿ÚNõx S圳Ñò+)|Ç>‹_ÉÛ0çÍâk:,RIßmáœe†‡X|¹zJ ¿Ãô›*óï4æëßêûc |¾j||¥TÙ¹4eú­—¬ïè ë>ï_¤îÇKø¡Vò›¦ogé­ðw^¦ñqúàQô¥Õú¨Ãû[M™Þë0ºžJ ~qßÙi¾KÓøÇSèפé‹ÔƒC ¿L_eß>êp/}½×óà•Âo¥™ÈþZFyŒþêý†ï·>_Ì9¿ÒDÿ¿Bß%mº,C–üUÐm¡î¤ŸºMXž¤ ŸÐIüÇ™Kzø¼ž|ú<&¬N¤7Áõ!÷z­7<%ayóõá¡IxÝO«Â7œ3=’í–_ÁÅíúw¦Qo; ÍÀçvó§Rƒ¯jB?ÛЃ(ý¯…|zŸ’AÇÇ­/‰ï¯ôc+ºÑ‹Î4XŸcÔ¯÷ƒ^Ï}ߨ!žé—éGôC¯ïøsõ}äó”¯Ã:ø>JôÂÛ øäõ³QG_k¦Ÿ0Wøºñs…ŒÒ/üœæqoD/èžo1êÝû–CÜ7Š¿®en{ßÐK¢Ìaø$©Eç8¯ÖSgƒ~ÞXêmÄ_ïDo˜sórÒtRZ˜êè¯Ùyä$øœ÷y`ï³ '~ÿ ꢜ+MNµÒˆ£YüN]ú}÷s{œ}½Ïöy1gú¸è~ÇK=™ërº8`8h¼:êè÷ý\‡'c†[tŠõí\}AãÔµç]Êô*: ?D}É0}±úêbŽ#o1ôŸ$iü¶¯‡«ð}‰FÈgxàëµ ¿†/ÖIó—’Á/¡×);·ÄÐEî#IøSNß*C‡ÇÑát¯dÁÙ÷ÛQôÙÏ)1âè`Þê£ß&п4} Å÷µfúï úÒo=fó¬Ðãðs ó[†yw }:në…üÊq{ÿgnHãÃbàâç˜næ›ÿ€ï0¼K’Oï»ÒÌSqp»j÷•üÎ0ÿžƒ'cøÃº”dnèµïËûðºÜæQñõÛB?è§ŸEOñÓÒBÿ€ŸÒh¿èü£ïCÌ9ÿ†)ó®Ð™ÿs¿«ù~âç`×ãÅ'>Çâ¹æ·¿EùO”/æ¹ÿøð¾üMë‹y“·xÆ‚üâü¢5þòòü’Rÿ&oYéº5¿XWTPRÂ'³—¯ßø³µÿ÷Áü6çþ´`S~áÆüÒuë‹®bMa~‰Â˜÷X~iþí^óõÙÅ럼Ýþ©ð—Íßÿ&''·OWÿÿÚlï}õrrcov/data/wages.rda0000644000176200001440000000260014660616401014116 0ustar liggesusers‹…V lSU¾ïõµ¯+cŽC–1º¿ÃÏøÑᜣgk lŒm¬Ë\&A6æ$†°a€!ÐL%ÊŸT †L"D‘ A!(03É$f4&øl~÷½s;mL|É×ïžóÎ_ï=÷´ÁꉞjB†Ÿ, š0D ØÙRûÂóK„p † YB¸«8ÀT½@.pØùÀÓB˜}ìƒXîÅÀ%辿 dÈî.r€‰x÷x=ðŠíïÞ ìFocV`ð6`[Q_œ¬‘ÌüßýÖ“Oæ—¯Íu÷$éò9OFâ†Ñzl1¹Â¿_èLÜ@îY?¯O9RA1§?¸µëã±ä¸½ÿþ…›Èu8·:¾®”ôNË̹'ÏøŠ{> í9G®9OøWÝl#ÇîãÍ_Î¥XË=ŽÌО³'Ö%DòÞS;Þï®ôß“þƒ²ÞìÊNÚ}¼…Œ­/¹2º²ÉóèK-XC1Wóêk’Îõëom)»šGæ «@r§AÅ#ÉUt´’{Èʦµ! ×|Æß»`õŸWÒ.‘;Árô÷Öͼ|{ÿ2¸'ø~ZA&×a"82Ó" f÷oôŸ±Q ÌŽ‡ÐwÁ87£؉ÞH€nÖÝÀ§@,ð9‰Æ$ „®z €}6øCà,ð|σÑÆx NWt߯òÑæ`œúʘÍu4ØïŒœþµt} M…<¹*° ÈwÒîØ LžƨG{HRasÜʱfÀ§Øf!û¢F‘µ5Ú,пš˜ Œž„®ƒmÆü£ÆUÀ«X`oôï ãh`;¡},³ýµGy 7ï€opGÄëðoçÀèym.wC[Ã2îÖ ´Cÿœ½‡b9÷DÛàžŠíòÎ÷טŒ}K!!`¿\ˆ1aä$!2V ‘x±?I¸‹ÃpwãÜ\8ã“pEýƒžb(z#6f±£"q(ÆÅ=!F.bü¡n×9Ø îdìGæQ0æƒwÙYƒØðq¶Áö òÎc öaÔåÈ}µ³Ø×  ÆÚ÷9§Á–K:·áÙN[XËö=“äC%Ìl¸Î¬ü†Ûôq|Áþ›9ç-äxA•G½¿åw‚YéÙ>¨òr}…Û켡C\ß$f®§õ…Oq€ýÊå ý«îÈþéG¬AGz»50ÈuÁlþ;›˜@™þkìɸxMN:Òä¹xŒ›m󛦒ÀôXþM/9yéÌ1¶? ž£¦-F.‰ur•“oï©äè–w‰*CN:Šã|:ÏOMÉVúÒíùEB¦}ø9yÞ9ä4¬¯!öÊNžÃk~•ßÚÜK.žãº56ë)ÞÇ‹ÉÍó;!Ö Dú19(ÓI—Òª_Gâè¶}dÿˆûÍoŸOÄ.Ï‘xßýÜ_|޳NÛr:ësY_dŸŠóL¡Žÿ´§Ño&sx÷÷C>ÿî3Wr=SØ>_ÕÏý9…û3‡û¯”ûÞÏþeü=üÜç¼y*ûg õØû—Éï§r¼,%s½™ßÇœÆzçIgû Ö«8iÊží²XVù"~ü>‰ßg±œåŸU—óxÕùªø¬Èìïã|Þ(½WÅÚõ^}/ŸÍÑÈkÉ?d"^È?d¶Ò1½"ÌK£¢ 2¤Ö¡Špyÿº´L­KCE¥*^A8ªTq ¦)_G0TÞ2 Ô®p`zYYItQóÖ.QE)¥§¾vií¸†&ÔeÓ´¸eœúòH—-Ø××× ê•øÂp‹™ rrcov/data/lmom32.rda0000644000176200001440000000117014660616401014122 0ustar liggesusers‹ r‰0âŠàb```b`a’Ì@& `d`aàÒl9¹ù¹ÆF ÌÂ@Hšˆ…ì¯rfïì©Ó°ÀTªêƵÌþÚÊÉÜî]¶¿|ÖtED¥ýù¹›tùÂXìo–öei´¿£”Áyeª„ýõÞ±g’?Ú_µš´˜5XÍþºþ›°«çWÛß–øà!öÁþö¬ì€ Ÿjìïh|=Ô£i(»êì|û+g@à¬ýÅíâ$Sí¯êKÍßWvÒþæôoÚYϯÂÝuNο,þÆ:ûÇPù6óÞìßmÓ(±FúV ý5þ ÓvÏ8a+s­Óá“ïí¯3ñxîŠ3µ¿ÔüDuÝ3#û s=›VN¶¿Áa¨ö²âªý-¨ÿî;ø-Yq0ÔþæÍú¤mëjíoíü¹ùB­ý%ùOOúºŠìémºÅÙ©åy©ÅÅ‘ìÒ¢’üâÌb4Ã8‹òËõ ‚J0ÂF0†1Œac˜Âf0†9ŒacXBL†p–!œegÃY&p–)œeg™ÃY蓜“X óL+%±$Q/­èE ïpoIrrcov/data/hemophilia.rda0000644000176200001440000000263214660616401015134 0ustar liggesusers‹í—ùSSWÇ"XÁwEÜZ¶—÷^–¹R7*ÒÖ¢ÕbD6Ë"aQ\j—)µhuŠK] ‚(ÒÊEÄƤ( ˜DŠ,"¥*Žu­£bß}&gZÿ 3/ùÞ›¼û9÷œï¹ó2ozcd'‘H,%V=…÷‚´²Þ,$V[áÓ."4:vUDdT¤\"éÑ_˜¡?é#\þôÀú‡³ç4 >o‘ãVé>Z²@ÙÖ9|Úäc Þ~«vAqXï£~FÐ-Ðmy …)ÆÆ'Û^výæâ•JŸl{Y2&Z¿Ï‹ë]Åé.óÊ>‚=v>«2v$…µº;{»h–+ó7F8qåPjûxhTQv¬ïAPÅ% wÌ'Ór'z,dä û½<µ_Ì^ОÓ8VM&ªÙc¦”wÞ‡ò4 Ë úcîj›`оüÜoàrðrÈCßQKàŠûÐÃ’tPB£œ:Ÿ†”žÿÙéÚ †ßqNãû¥î÷ ÐrÇá¹bÖ híýɹ¯8åÏm¿.Ùþ t˜8ÆAAmCB'C“õØ&÷¡GÀ0­kÉW?Cö÷Ôu³¡Ù”/#Åj‹àÚ±µk¢FG@cùS7 ®n7 7õ4ýáz/ÏñwÖè¡%ÀÚ›³ò¡õ‹œ­ǧ€zÜL»ì9P3oÁ²+TÐèT·0ªÃÄ\žä¸< ªvyOÐ$ç€ÁagFé^-Ôú~'ó¯<×][ß— íÏB_¥5Âo_–åÛ:A/lÎëoÒSÛÇåw0pøQ{zZ\3TÎ8J3 é„T+Žü, Ξ:yxáÏ>P{;gDÇþk°ç餕éÃA/D~ä9hm¯ý4xâ>¨ŠË÷e¡á±RX©j¨K¼'Bó¡a½ö[&¢¿ÔÜñ dŸ¸$¦wh…(ÓG“µ<5˜+)˜zæ[6º’l¡Û ? S—Ô=Ì}I²úõ¤Ž„ªÉbB&WH4owš³7؆ì T¯’÷‡S®}­†"Ñ^PæòÚÍïv©Z±xx^/O¨7åýôµUJ¬Ê6XxïÊ„\S]®,*¬]¿YIδm¢‘ÀéQ4q·Òl-›%uP¢IÎ.¶w ÙGåBf»@}kþ³ê†AP Òݯz1~  yy´°É¤lµ'%Ž.[ÜJ«Á»ί„úÁ¢QIjÍèmЛâ6÷zÛnú TÚÇÖ9?&ë ºÔÑK¡”VÃF YÑjƒ×ÖED½Œ\§3ÄÀ2S¾ò¨ IhZ>¤;‡âmþP£õ_*´©2õO–n$ 0Ö~ ©‹ DÆx!dD=qvq]qž 'àªØ–ë¡L<¼É%ZëgP±)w·}k QÑp—¼ [Fž{ ßÜOĬGÜ eÃÄ''…®Óל$¦~$EÔMˆòÏI­#ÝÐ ¢•ý"=àÕEc’KÇ+èÉC´&>}åòZð–#õ—鄳މUDË£ºGïðÈ&D®PD†*º‡ÝÃwnøÿ¦ž1òèÐxÓÓÃ4iïë7S’™™l~°¢S1 ‘á¡1¦Ëð·×²UÄ®vûïzæ3ËÂÓ,³škœYðf!3 /³˜bf{z òDÅ ’¢bQq¨xT2T^¨Á ƒAƒ  2d0È`Á ƒA†RdH‘!E†RdH‘!E†Rd°È`‘Á"ƒE‹ ,2Xd°È`‘Á!ƒC‡ 28dpÈàÁ!ƒC <2xdðÈà‘Á#ƒG 2dÈ!C† 2dȸ·;*$Joîü_²Bž w SÍ!Œºèõ/ï…ËÍ rrcov/data/Cascades.rda0000644000176200001440000000126514660616400014523 0ustar liggesusers‹ r‰0âŠàb```b`a’Ì@& `d`aàÒΉÅɉ)©Å ÌÂ@>H Ûïûì›%&ço¿=§Ûyj#›ýžcö"B¬{ìweløT½Ù~ÇÁ“­òíüŸ®RÜo¿ó{|þ%û½N‡O¾;ýÛ~OØÕó«Îηߧ·ñˆÑ©ûûxßjô<·ß³´ª"G)Ã~ÿ„i»gœ°ße[°ø:—­ý®ßu€FÙC”±Øï[«j¿s-ÈÀ3ö»Ž œÖŒ›wߊ?bØí[ÙTîêKۯϿ$ÿéI¿ýÒÈÍjZ¶íï.,íSœ¼ëÆÅyúö;T¸+˜ÝîØ¯Éªûy[é¢ýŠJÛ›õIÛíW€lìµß!ä{éãªýK¿ýUü¯çi¿Ìuá©ÍBö“³«‰Ú?í[ïŽ]Çí;Sµ/NÞ¿p»xÄ#ÉTûe oÎk±ï2{ôZÆYî¾CáËÛ©5Úõ™ÏöÝþðΞ: nûC^= û#B`‡ÙÄþéIYû“ºå†ýGYí÷]wái‚ýA°ò ûí\à²?à{&ù££ýöÝúo®^°?Ôä°½Á$Ï~×ÙyÍOT×ÛYómŠýÛÝk y6ÃãéPŒÆ×CýöGœu@!ÿ¬y‰¹ ÈgG>DÅG×9 ÊæòÑ-ÎN-ÏK-.Fˆd—•äg£ÆY”_®‡l 0T‚ÍØÔÀØÀÁ3416FâY˜!ó,Í<#Kdž±‰‰)ÏÜÜÁ3³4@Rinhf‰Ä366Dæ™"¹ÅÂÄÌ Æ315°DØ`bjh„p§‰©±‘… ‚gbn†Ê³DðÌÍÍ‘ôY€xhážœ“X &˜ WJbI¢^Z0¼ bq›ÙÂrrcov/src/0000755000176200001440000000000014660616377012214 5ustar liggesusersrrcov/src/rrcov_init.c0000644000176200001440000000357714443667016014545 0ustar liggesusers// VT::21.05.2018 - this file was added to fix the warning // "Found no calls to: 'R_registerRoutines', 'R_useDynamicSymbols'" // // About registration of native symbols see for example: https://www.r-bloggers.com/1-easy-package-registration/ // also here http://r.789695.n4.nabble.com/Registration-of-native-routines-td4728874.html // // There is a new function in 'tools' package: // package_native_routine_registration_skeleton() // // - about Windows - take the 64 bit version of mingw! // #include #include #include // for NULL #include /* FIXME: Check these declarations against the C/Fortran source code. */ /* .C calls */ extern void r_fast_mve(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); extern void sest(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); /* .Call calls */ extern SEXP covOPW(SEXP, SEXP, SEXP, SEXP); /* .Fortran calls */ extern void F77_NAME(fsada)(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); extern void F77_NAME(rlds)(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); static const R_CMethodDef CEntries[] = { {"r_fast_mve", (DL_FUNC) &r_fast_mve, 12}, {"sest", (DL_FUNC) &sest, 14}, {NULL, NULL, 0} }; static const R_CallMethodDef CallEntries[] = { {"covOPW", (DL_FUNC) &covOPW, 4}, {NULL, NULL, 0} }; static const R_FortranMethodDef FortranEntries[] = { {"fsada", (DL_FUNC) &F77_NAME(fsada), 15}, {"rlds", (DL_FUNC) &F77_NAME(rlds), 14}, {NULL, NULL, 0} }; void R_init_rrcov(DllInfo *dll) { R_registerRoutines(dll, CEntries, CallEntries, FortranEntries, NULL); R_useDynamicSymbols(dll, FALSE); } rrcov/src/fsada.f0000644000176200001440000003653414443667016013447 0ustar liggesusers SUBROUTINE FSADA(X,NE,NV,NG,IGRP,XM,XC,XND, 1 IHALF,NIT,IDSAV,MRAND,IERR,DETC,ITRACE) IMPLICIT DOUBLEPRECISION (A-H,O-Z) C...Default number of iterations to be performed(if NIT=0) PARAMETER (ITK0=500) DIMENSION X(NV,NE), IGRP(NE) DIMENSION XM(NV,NG), XC(NV,NV), XND(NG) DIMENSION ave(NV,NG),cov(NV,NV), 1 datimg(NV,NE),ustu(NE),ibasis(NE), 3 isin(NE),wtv(NG),cinv(NV,NV), 4 IDSAV(NE) C...Set the default number of iterations if not supplied IF(NIT.EQ.0) NIT=ITK0 if(ITRACE .ge. 2) then CALL INTPR('Entering FSADA - NIT: ',-1,NIT,1) endif C...Set the coverage for max breakdown point, if not supplied IF(IHALF.LE.0) IHALF = (NE+NV+1)/2 call reader(X,NE,NV,NG,ave,cov,cinv,datimg,wtv,ustu,DETC, 2 IGRP,ibasis,isin,IHALF, 3 XC,XM,XND,IDSAV,NIT,MRAND,ITRACE) C...the cross-product matrix is returned - scale it DO I=1,NV DO J=1,NV XC(I,J) = XC(I,J)/(IHALF-NG) ENDDO ENDDO END subroutine reader(data,ncas,nord,npop, 1ave,cov,cinv,datimg,wtv,ustu,deter, 2igp,ibasis,isin,ncover, 3bescov,besave,beswtv,ibsbes,nsim,iseed,ITRACE) implicit doubleprecision (a-h,o-z) dimension data(nord,ncas),ave(nord,npop),cov(nord,nord), 1 datimg(nord,ncas), 2 ustu(ncas),igp(ncas),ibasis(ncas), 3 isin(ncas),wtv(npop),cinv(nord,nord), 4 bescov(nord,nord),besave(nord,npop),ibsbes(ncas), 5 beswtv(npop), 6 index(5000),devi(100), 7 detrtb(100),icount(100),isgntb(100) data xix, xia, xic /.31415925d0,17119.d0,0.1221d0/, 1 one /1.d0/ xix = xix * iseed CCC WRITE(*,*) ncas,' cases' c ncover = cover * ncas + 0.5 if(ITRACE .ge. 2) then CALL INTPR('Entering READER - ncas: ',-1,ncas,1) CALL INTPR('Entering READER - ncover: ',-1,ncover,1) endif do j = 1, ncas index(j) = j enddo do j = 1, npop wtv(j) = 0 do i = 1, nord ave(i,j) = 0 enddo enddo do j = 1, nord do i = 1, nord cov(i,j) = 0 enddo enddo do icas = 1, ncas ngp = igp(icas) wold = wtv(ngp) wnew = wold + one wtv(ngp) = wnew rati = wold / wnew do i = 1, nord devi(i) = data(i,icas) - ave(i,ngp) ave(i,ngp) = ave(i,ngp) + devi(i) / wnew do j = 1, i cov(i,j) = cov(i,j) + devi(i) * devi(j) * rati enddo enddo enddo edf = ncas - npop do i = 1, nord do j = 1, i cov(i,j) = cov(i,j) / edf cov(j,i) = cov(i,j) enddo enddo CCC WRITE(*,'('' Full data set''/'' Grp size averages'')') CCC WRITE(8,'('' Full data set''/'' Grp size averages'')') CCC do j = 1, npop CCC WRITE(*,101) j,int(wtv(j)),(ave(i,j),i=1,nord) CCC WRITE(8,101) j,int(wtv(j)),(ave(i,j),i=1,nord) CCC 101 format(/i4,i5,(t12,6g11.4)) CCC enddo CCC WRITE(*,*) ' Covariance matrix' CCC WRITE(8,'(/'' Covariance matrix'')') CCC do j = 1, nord CCC WRITE(*,102) j,(cov(i,j),i=1,nord) CCC WRITE(8,102) j,(cov(i,j),i=1,nord) CCC 102 format(/i5,(t12,6g11.4)) CCC enddo deter = 1 ixlo = 1 do i = 1, nord CCC WRITE(*,'('' Sweeping pivot, deter'',2g15.7)') cov(i,i),deter call zsweep(cov,nord,i,deter) enddo CCC WRITE(*,'(/'' Log10 determinant of overall covariance matrix'', CCC 1 f10.4)') log10(deter) CCC WRITE(8,'(/'' Log10 determinant of overall covariance matrix'', CCC 1 f10.4)') log10(deter) if(ITRACE .ge. 2) then xdet = log10(deter) CALL DBLEPR('Initialization ready - log det: ',-1,xdet,1) endif verbes = 1.d30 if (ncover .ge. ncas) return cover = 1.0*ncover/ncas CCC WRITE(*,'(//'' Start search for high breakdown estimators'' CCC 1 '' of coverage'',f7.3)') cover CCC WRITE(8,'(//'' Start search for high breakdown estimators'' CCC 1 '' of coverage'',f7.3)') cover edf = ncover - npop corter = nord * log10(edf) nsol = 0 do 80 loopo = 1, nsim do i = ncas, 1, -1 fi = i xix = mod(xix * xia + xic, one) inx = xix * fi + one if(inx .ne. i) then itemp = index (i) index (i) = index (inx) index (inx) = itemp endif ibasis(i) = index(i) enddo if(ITRACE .ge. 2) then CALL INTPR('Entering iteration: ',-1,loopo,1) endif call itera(data,ave,cov,cinv,datimg,wtv,ustu,deter, 1 igp,ibasis,isin,nord,ncas,npop,ncover) isgn = isigna(ibasis,ncover) do i = 1, nsol if(isgn.eq.isgntb(i).and.abs(deter/detrtb(i)-one) 1 .lt. .001) then icount(i) = icount(i) + 1 go to 135 endif enddo do i = 1, ncover do j = 1, i if (ibasis(j) .gt. ibasis(i)) then itemp = ibasis(i) ibasis(i) = ibasis(j) ibasis(j) = itemp endif enddo enddo CCC WRITE(*,'(/''Loop'',i6,'' New feasible solution. Retained '', CCC 1 ''cases''/(20i4))') loopo,(ibasis(i),i=1,ncover) CCC detlog = log10(deter) - corter CCC WRITE(*,'('' log10 determinant'', CCC 1 g15.7/'' Grp size averages'')') detlog CCC do 145 j = 1, npop CCC 145 WRITE(*,'(i4,i5,(t12,6g11.4))') j,int(wtv(j)),(ave(i,j),i=1,nord) CCC WRITE(*,*) ' Covariance matrix' CCC do j = 1, nord CCC WRITE(*,'(t12,6g11.4)') (cov(i,j)/edf,i=1,nord) CCC enddo nsol = nsol + 1 isgntb(nsol) = isgn detrtb(nsol) = deter icount(nsol) = 1 135 continue if (deter .lt. 0.999999d0 * verbes) then CCC WRITE(*,'(//'' New optimum'')') CCC WRITE(8,'(/''Loop'',i6,'' New feasible solution. Retained '', CCC 1 ''cases''/(20i4))') loopo,(ibasis(i),i=1,ncover) CCC WRITE(8,'('' log10 determinant'',g15.7)') detlog verbes = deter do i = 1, nord do j = 1, npop beswtv(j) = wtv(j) besave(i,j) = ave(i,j) enddo do j = 1, nord bescov(i,j) = cov(i,j) enddo enddo do i = 1, ncover ibsbes(i) = ibasis(i) enddo endif 80 continue CCC WRITE(*,'('' Criterion and count of different feasible '', CCC 1 ''solutions'')') CCC WRITE(*,'(5(f7.3,i5))') (log10(detrtb(i))-corter, CCC 1 icount(i), i=1,nsol) CCC WRITE(8,'('' Criterion and count of different feasible '', CCC 1 ''solutions'')') CCC WRITE(8,'(5(f7.3,i5))') (log10(detrtb(i))-corter, CCC 1 icount(i), i=1,nsol) CCC write(*,103) (ibsbes(i),i=1,ncover) CCC write(8,103) (ibsbes(i),i=1,ncover) CCC 103 format(/' Best feasible solution. Cases covered are'/(15i5)) CCC WRITE(*,'(/'' Grp size averages'')') CCC WRITE(8,'(/'' Grp size averages'')') CCC do j = 1, npop CCC WRITE(*,101) j,int(beswtv(j)),(besave(i,j),i=1,nord) CCC WRITE(8,101) j,int(beswtv(j)),(besave(i,j),i=1,nord) CCC enddo CCC WRITE(*,*) ' Covariance matrix' CCC WRITE(8,'(/'' Covariance matrix'')') CCC do j = 1, nord CCC WRITE(*,102) j,(bescov(i,j)/edf,i=1,nord) CCC WRITE(8,102) j,(bescov(i,j)/edf,i=1,nord) CCC enddo end subroutine itera(data,ave,cov,cinv,datimg,wtv,ustu,deter, 1 igp,ibasis,isin,nord,ncas,npop,ncover) implicit double precision (a-h,o-z) dimension data(nord,ncas),ave(nord,npop),cov(nord,nord), 1 cinv(nord,nord),datimg(nord,ncas),ustu(ncas), 2 ibasis(ncover),isin(ncas),igp(ncas),devi(200),devj(200), 3 upfac(100), dnfac(100),wtv(npop) data one /1.d0/, big /1.d10/ C Initialize to avoid warnings iout = 0 icasot = 0 jin = 0 do j = 1, npop wtv(j) = 0 do i = 1, nord ave(i,j) = 0 enddo enddo do j = 1, nord do i = 1, nord cov(i,j) = 0 enddo enddo do i = 1, ncas isin(i) = 0 enddo c Get initial covariance matrix do inx = 1, ncover icas = ibasis(inx) isin(icas) = 1 ngp = igp(icas) wold = wtv(ngp) wnew = wold + one wtv(ngp) = wnew rati = wold / wnew do i = 1, nord devi(i) = data(i,icas) - ave(i,ngp) ave(i,ngp) = ave(i,ngp) + devi(i) / wnew do j = 1, i cov(i,j) = cov(i,j) + devi(i) * devi(j) * rati enddo enddo enddo do i = 1, nord do j = 1, i cov(j,i) = cov(i,j) cinv(i,j) = cov(i,j) cinv(j,i) = cov(i,j) enddo enddo deter = 1 ixlo = 1 do i = 1, nord call zsweep(cinv,nord,i,deter) enddo do i = 1, nord do j = 1, nord cinv(i,j) = -cinv(i,j) enddo enddo call verify1(cov,cinv,nord) c Major loop point 30 continue do i = 1, npop wtvi = wtv(i) upfac(i) = sqrt(wtvi / (wtvi + one)) dnfac(i) = big if (wtvi .gt. one) dnfac(i) = sqrt(wtvi / (wtvi - one)) enddo c Get images of cases do 41 j = 1, ncas ngp = igp(j) ustu(j) = 0 do 40 i = 1, nord sum = 0 do 45 k = 1, nord sum = sum + cinv(i,k) * (data(k,j) - ave(k,ngp)) 45 continue datimg(i,j) = sum ustu(j) = ustu(j) + sum * (data(i,j) - ave(i,ngp)) 40 continue 41 continue c Consider possible case swaps best = one do 50 i = 1, ncover icas = ibasis(i) ngp = igp(icas) if(wtv(ngp) .eq. one) go to 50 c c dont remove the only case in a group c firfac = one - dnfac(ngp) ** 2 * ustu(icas) if (firfac .gt. best) go to 50 do 55 j = 1, ncas if (isin(j) .eq. 1) go to 55 c c do pretest c jgp = igp(j) if(jgp .ne. ngp) then c c (we need special codes when the two are in the same group) c factor=firfac*(one+upfac(jgp)**2*ustu(j)) if (factor .ge. best) go to 55 c (cannot beat what we have already) c sum = 0 do 60 k = 1, nord sum=sum+(data(k,icas)-ave(k,ngp))*datimg(k,j) 60 continue factor=factor+(sum*upfac(jgp)*dnfac(ngp))**2 if(factor.lt.0) then CCC WRITE(*,*) 'Impossible factor. dnfac,ustu(icas),firfac', CCC 1 dnfac(ngp),ustu(icas),firfac,' upfac,ustu(j)', CCC 2 upfac(jgp),ustu(j),' sum', sum CCC WRITE(*,*) ' wtv(ngp)', wtv(ngp) do 155 ik = 1, ncover ikk = ibasis(ik) CCC if(igp(ikk).eq.ngp) WRITE(*,*) 'hit',ik,ikk 155 continue endif if(factor .lt. best) then best = factor iout = i icasot = icas jin = j endif else sum1 = 0 sum2 = 0 divis = wtv(ngp) - one do 61 k = 1, nord ui = data(k,icas) - ave(k,ngp) vi = data(k,j) - ave(k,ngp) + ui / divis vimg = datimg(k,j) + datimg(k,icas) / divis sum1 = sum1 + vi * vimg sum2 = sum2 + ui * vimg 61 continue factor = firfac * (one + divis * sum1 / wtv(ngp)) + 1 sum2 ** 2 if (factor .lt. best) then best = factor iout = i icasot = icas jin = j endif endif 55 continue 50 continue if(best .eq. one) go to 90 c c There is a swap that improves things. Make it c isin(icasot) = 0 ibasis(iout) = jin isin(jin) = 1 deter = deter * best c c Do the downdate, removing case icasot c ngp = igp(icasot) jgp = igp(jin) wold = wtv(ngp) wnew = wold - one rati = wold / wnew wtv(ngp) = wnew fact = rati / (one - rati * ustu(icasot)) do 70 i = 1, nord devi(i) = data(i,icasot) - ave(i,ngp) ave(i,ngp) = ave(i,ngp) - devi(i) / wnew devj(i) = data(i,jin) - ave(i,jgp) do 71 j = 1, i cov(i,j) = cov(i,j) - devi(i) * devi(j) * rati cov(j,i) = cov(i,j) cinv(i,j) = cinv(i,j) + datimg(i,icasot) * 1 datimg(j,icasot) * fact cinv(j,i) = cinv(i,j) 71 continue 70 continue call verify1(cov,cinv,nord) c c Now do the update, adding case jin c wold = wtv(jgp) wnew = wold + one wtv(jgp) = wnew rati = wold / wnew sum2 = 0 do 80 i = 1, nord ave(i,jgp) = ave(i,jgp) + devj(i) / wnew sum = 0 do 81 j = 1, nord cov(i,j) = cov(i,j) + rati * devj(i) * devj(j) sum = sum + cinv(i,j) * devj(j) 81 continue devi(i) = sum sum2 = sum2 + devi(i) * devj(i) 80 continue factor = rati / (one + rati * sum2) do 85 i = 1, nord do 86 j = 1, nord cinv(i,j) = cinv(i,j) - devi(i) * devi(j) * factor 86 continue 85 continue call verify1(cov,cinv,nord) go to 30 90 return end subroutine verify1(cov,cinv,nord) implicit double precision (a-h,o-z) dimension cov(nord,nord),cinv(nord,nord) data one /1.d0/ biger = 0 do 5 i = 1, nord do 10 j = 1, nord sum = 0 do 15 k = 1, nord sum = sum + cov(i,k) * cinv(k,j) 15 continue if (i .eq. j) then biger = max(biger,abs(sum-one)) else biger = max(biger,abs(sum)) endif 10 continue 5 continue if (biger .gt. 0.001) then CCC WRITE(*,*) 'Inversion error, departure from I is',biger return endif return end SUBROUTINE ZSWEEP (COV,NORD,NEL,DETER) IMPLICIT DOUBLE PRECISION (A-H,O-Z) DIMENSION COV(NORD,NORD) DATA ONE/1.D0/ TEMP=COV(NEL,NEL) DETER=DETER*TEMP IF (NORD.GT.1) GO TO 10 COV(1,1)=ONE/TEMP RETURN 10 DO 30 I=1,NORD IF (I.EQ.NEL) GO TO 30 DO 20 J=1,I IF (J.EQ.NEL) GO TO 20 COV(J,I)=COV(I,J)-COV(I,NEL)*COV(NEL,J)/TEMP COV(I,J)=COV(J,I) 20 CONTINUE 30 CONTINUE COV(NEL,NEL)=ONE DO 40 I=1,NORD COV(NEL,I)=-COV(I,NEL)/TEMP COV(I,NEL)=COV(NEL,I) 40 CONTINUE RETURN END FUNCTION ISIGNA (LIST,NROW) DIMENSION LIST(NROW) DATA NPRIM1/30931/, NPRIM2/59473/ ISIG1 = 43 ISIG2 = 23 DO 10 I=1,NROW ITEMP=LIST(I)+1000 ISIG1 = MOD(ISIG1*ITEMP,NPRIM1) ISIG2 = MOD(ISIG2*ITEMP,NPRIM2) 10 CONTINUE ISIGNA = ISIG1 * ISIG2 RETURN END rrcov/src/Makevars0000644000176200001440000000012214443667016013676 0ustar liggesusersPKG_CPPFLAGS=$(DEFS=-DUSE_FC_LEN_T) PKG_LIBS=$(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS) rrcov/src/ds11.f0000644000176200001440000003036214443667016013132 0ustar liggesusers subroutine rlds(n,np,nresamp,x,tune,wk,locat,cov,maxres, 1 nresper,w,z,icent,iwork) c c c INPUT: 'n' = number observations (integer); c 'np' = number of indepent variables (integer); c 'nresamp' = mumber of resamples required (integer), may not be reached c if too many of the subsamples of size 'np', chosen out of c the observed vectors, are in a hyperplane; c if nresamp=0, ALL subsamples are taken; c 'x' = real (n*np) matrix of observed values; c 'tune' = tuning constant used in calculation of weights; c by default should be equal to the square root of the c 95-percentile of the chi-square distribution with 'np' c degrees of freedom (real). c 'seed' = seed for calculating random numbers (real); c 'wk' = real work vector of length (4*n+np). On output, c wk(1),..,wk(n) contain the weights assigned to c each observation; c 'maxres' = maximum nunber of resamples to be performed (integer), c including those which are discarded due to linearly c dependent subsamples. c 'icent'= if 0 the observations are centered with 0 c c OUTPUT: 'locat' = real vector of location parameters, of length c 'np'; c 'cov' = real (np*np) Donoho-Stahel covariance matrix; c 'nresper' = number of valid resamples performed (integer). c 'w' = weights c 'z' = outlyigness c c NOTE: all real variables are double precision. c implicit double precision (a-h,o-z) double precision locat(np) dimension x(n,np),wk(4*n+np),cov(np,np),w(n),z(n), iwork(4*n+np) nr=1 nind=nr+n naux=nind+np C CALL INTPR('ENTER rlds. nresamp=',-1,nresamp,1) C CALL INTPR('maxres=',-1,maxres,1) C CALL INTPR('icent=',-1,icent,1) call rndstart() call rlweights(n,np,nresamp,x,tune,w,z,locat,wk(nr),iwork(nind), 1 cov,wk(naux),maxres,nresper,icent) call rldonostah(n,np,x,w,locat,cov,icent) call rndend() return end subroutine rlweights(n,np,nresamp,x,c,w,z,a,b,ind,wk, 1 u,maxres,nresper,icent) implicit double precision (a-h,o-z) dimension x(n,np),z(n),a(np),b(n),w(n),ind(np),u(n) dimension wk(np,np) C CALL INTPR('ENTER rlweights',-1,0,0) k1=(np-1)+(n+1)/2 k2=(np-1)+(n+2)/2 z1=dble(k1) zn=dble(n) z3=(1+(z1/zn))/2 call rlquntbi(z3, cc) do i=1,n z(i)=-1. enddo nresper=0 if(np.eq.1) then call rlprocess(n,np,nresper,x,a,b,w,z,ind,wk,u,k1, + k2,cc,icent) elseif (nresamp.eq.0) then call rlall(n,np,nresper,x,a,b,w,z,ind,wk,u,k1,k2,cc,icent) else k=0 do while (k.lt.maxres.and.nresper.lt.nresamp) k=k+1 call rlsubsamp(n,np,ind) call rlprocess(n,np,nresper,x,a,b,w,z,ind,wk,u,k1, + k2,cc,icent) enddo endif C CALL DBLEPR('zi',-1,z,n) do i=1,n call rlrwetml(z(i)/c,w(i)) enddo C CALL DBLEPR('EXIT rlweights: wi=',-1,w,n) return end subroutine rlall(n,np,nresper,x,a,b,w,z,ind,wk,u,k1,k2,cc,icent) implicit double precision (a-h,o-z) dimension x(n,np),z(n),a(np),b(n),w(n),ind(np),u(n) dimension wk(np,np) do j=1,np ind(j)=j enddo call rlprocess(n,np,nresper,x,a,b,w,z,ind,wk,u,k1,k2,cc,icent) j=0 do while (np-j.ge.1) if (ind(np-j).eq.n-j) then j=j+1 else ind(np-j)=ind(np-j)+1 do k=np-j+1,np ind(k)=ind(k-1)+1 enddo call rlprocess(n,np,nresper,x,a,b,w,z,ind, + wk,u,k1,k2,cc,icent) j=0 endif enddo return end subroutine rlprocess(n,np,nresper,x,a,b,w,z,ind,wk, + u,k1,k2,cc,icent) implicit double precision (a-h,o-z) dimension x(n,np),z(n),a(np),b(n),w(n),ind(np),u(n) dimension wk(np,np) data tola,tolr,big1,big2 /1.d-15, 1.d-8,1.d+2,1.d+15/ C CALL INTPR('ENTER rlprocess',-1,0,0) CALL RCHKUSR() ierr=0 if(np.gt.1) then call rlvectora(n,np,x,a,ind,wk,icent,ierr) endif C CALL INTPR('IERR',-1,ierr,1) C CALL DBLEPR('A',-1,a,np) if (ierr.eq.0) then nresper=nresper+1 C VT::19.07.2010 C Handle the univariate case if(np.eq.1) then do i=1,n b(i)=x(i,1) enddo else do i=1,n b(i)=0. do j=1,np b(i)=b(i)+x(i,j)*a(j) enddo enddo endif bmed=0.0d0 if(icent.ne.0) bmed=rlamed(b,n,u) do i=1,n w(i)=abs(b(i)-bmed) enddo ww=0 do i=1,n ww=ww+w(i) enddo ww=ww/n if(ww.ge.tola) then call rlsort(w,n,1) bmad=(w(k1)+w(k2))/2 bmad=bmad/cc if(bmad.ge.tolr *ww) then do i=1,n aux=abs(b(i)-bmed)/bmad if (aux.gt.z(i)) z(i)=aux enddo else do i=1,n if(abs(b(i)-bmed).gt. big1*bmad) z(i)=big2 enddo endif endif endif return end subroutine rlvectora(n,np,x,a,ind,wk,icent,ierr) implicit double precision (a-h,o-z) dimension x(n,np),a(np),ind(np),wk(np,np) do k=1,np do j=1,np wk(j,k)=x(ind(k),j) enddo enddo call rldirec(wk,np,np,icent,ierr,a) return end subroutine rldonostah(n,np,x,w,locat,cov,icent) implicit double precision (a-h,o-z) double precision locat(np) dimension x(n,np),w(n),cov(np,np) sumw=0. sumw2=0. do i=1,n sumw=sumw+w(i) sumw2=sumw2+w(i)*w(i) enddo do j=1,np locat(j)=.0 enddo if(icent.eq.1)then do j=1,np locat(j)=0. do i=1,n locat(j)=locat(j)+w(i)*x(i,j) enddo locat(j)=locat(j)/sumw enddo endif do j=1,np do k=1,np cov(j,k)=0. do i=1,n cov(j,k)=cov(j,k)+w(i)*(x(i,j)-locat(j))* 1 w(i)*(x(i,k)-locat(k)) enddo cov(j,k)=cov(j,k)/sumw2 enddo enddo return end subroutine rlsubsamp(n,np,ind) implicit double precision (a-h,o-z) dimension ind(np) en=dble(n) C call roblibrunif(RND) RND = unifrnd() ind(1)=int(en*RND+1.) if (np.eq.1) return k=2 c 10 call roblibrunif(RND) 10 RND = unifrnd() ind(k)=int(en*RND+1.) do i=1,k-1 if (ind(i).eq.ind(k)) go to 10 enddo if (k.eq.np) return k=k+1 go to 10 end double precision function rlamed(z,n,aux) implicit double precision (a-h,o-z) DIMENSION Z(n),aux(n) DO 100 I=1,N AUX(I)=Z(I) 100 CONTINUE CALL rlSORT (AUX,N,1) I=N/2 K=I*2 rlamed=AUX(I+1) IF (k.GE.N) rlamed=(rlamed+AUX(I))/2. RETURN END SUBROUTINE RLSORT (A,N,SWITCH) implicit double precision (a-h,o-z) DIMENSION A(n) INTEGER SWITCH IF (N.LE.1) GO TO 999 M=1 106 M=M+M IF(M.LE.N) GO TO 106 M=M-1 994 M=M/2 IF (M.EQ.0) GO TO 999 KK=N-M J=1 992 I=J 996 IM=I+M CCCC VT::18.07.2022 CCCC IF(SWITCH) 810,810,800 IF(SWITCH.LE.0) GO TO 810 800 IF (A(I).GT.A(IM)) GO TO 110 GO TO 995 810 IF(A(I).LT.A(IM)) GO TO 110 995 J=J+1 IF(J.GT.KK) GO TO 994 GO TO 992 110 TEMP=A(I) A(I)=A(IM) A(IM)=TEMP I=I-M IF (I.LT.1) GO TO 995 GO TO 996 999 RETURN END double precision function rldprodd(x,y,nn) implicit double precision (a-h,o-z) dimension x(nn), y(nn) rldprodd=0. do i=1,nn rldprodd=rldprodd+x(i)*y(i) enddo return end double precision function rlrobustdnorm(x,nn) implicit double precision (a-h,o-z) dimension x(nn) rlrobustdnorm=rldprodd(x,x,nn) rlrobustdnorm=dsqrt(rlrobustdnorm) return end subroutine rlxnorma(x,nn,ierr,tol) implicit double precision (a-h,o-z) dimension x(nn) ierr=1 dn=rlrobustdnorm(x,nn) if (dn.le.tol) then ierr=1 return else ierr=0 endif do i=1,nn x(i)=x(i)/dn enddo return end subroutine rlorthog(xx,nn,mm,nmain,ierr) implicit double precision (a-h,o-z) dimension xx(nmain,mm) data tola,tolr /1.d-15, 1.d-8/ C In original code tolb was never initialized (was 0 on Solaris, random on HP) tolb = tola do j=1,mm call rlxnorma(xx(1,j),nn,ierr,tola) if (ierr.gt.0) return enddo mm1=mm-1 do j=1,mm1 call rlxnorma(xx(1,j),nn,ierr,tolr) if (ierr.ne.0) return j1=j+1 do k=j1,mm dp=rldprodd(xx(1,j),xx(1,k),nn) do i=1,nn xx(i,k)=xx(i,k)-xx(i,j)*dp enddo enddo enddo call rlxnorma(xx(1,mm),nn,ierr,tolb) C if (ierr .ne. 0) write(*,*) 'rlxnorma(...,tolb) failed!' return end subroutine rlortdir(xx,mm,nmain,dire) implicit double precision (a-h,o-z) dimension xx(nmain,mm), dire(mm) tol=1./dsqrt(dble(mm)) mm1=mm-1 do k=1,mm do i=1,mm dire(i)=0 do j=1,mm1 dire(i)=dire(i)-xx(i,j)*xx(k,j) enddo enddo dire(k)=dire(k)+1 dn=rlrobustdnorm(dire,mm) if (dn.ge.tol) goto 40 enddo 40 do i=1,mm dire(i)=dire(i)/dn enddo return end subroutine rldirec(xx,mm,nmain,icent,ierr,dire) implicit double precision (a-h,o-z) dimension xx(nmain,mm), dire(mm) mm1=mm if (icent.ne.0)then mm1=mm-1 do k=1,mm1 do i=1,mm xx(i,k)=xx(i,k)-xx(i,mm) enddo enddo endif call rlorthog(xx,mm,mm1,nmain,ierr) if (ierr.eq.0) call rlortdir(xx,mm,nmain,dire) return end SUBROUTINE RLRWETML(X,P) C....................................................................... DOUBLE PRECISION X,AX,P,COEF,ZERO DIMENSION COEF(4) DATA ZERO/0.D0/ DATA COEF/-19.7187928669416D0, + 82.3045267489739D0, + -105.4526748971229D0, + 42.8669410150906D0/ C----------------------------------------------------------------------- C CALCULATE WEIGHT FUNCTION FOR REWEIGHTING C NOTE: X >= 0 C----------------------------------------------------------------------- AX = DABS(X) IF (AX .GE. 1.D0) THEN P = ZERO ELSE IF (AX .LE. 0.8D0) THEN P = 1.D0 ELSE P = COEF(1)+COEF(2)*AX**2+COEF(3)*AX**4+COEF(4)*AX**6 ENDIF C CALL DBLEPR('IN RLRWETML',-1,p,1) RETURN END C======================================================================= SUBROUTINE RLQUNTBI(P,X) C....................................................................... DOUBLE PRECISION C(6),P,P1,T,X,XN,XZ DATA C(1),C(2),C(3),C(4),C(5),C(6)/ + 2.515517D0,0.802853D0,0.010328D0, + 1.432788D0,0.189269D0,0.001308D0/ C----------------------------------------------------------------------- C INVERSE OF GAUSSIAN DISTRIBUTION FUNCTION C----------------------------------------------------------------------- C P: I, PROBABILITY, C X: O, QUANTILE. C----------------------------------------------------------------------- P1=P IF (P .GT. 0.5D0) P1=1.D0-P T=DSQRT(-2.D0*DLOG(P1)) XZ=(C(3)*T+C(2))*T+C(1) XN=((C(6)*T+C(5))*T+C(4))*T+1.D0 X=T-XZ/XN IF (P .LT. 0.5D0) X=-X RETURN END rrcov/src/covOPW.c0000644000176200001440000002244314443667016013535 0ustar liggesusers#define USE_FC_LEN_T #include "R.h" #include "Rinternals.h" #include "Rmath.h" #include "R_ext/BLAS.h" #include "R_ext/Lapack.h" typedef double (scaleFnPtr)(int, double*, double*, double*, double*); typedef double (rcovFnPtr)(int, double*, double*, scaleFnPtr*, double*, double*, double*); double my_mad(int n, double *x, double *dwork1, double *dwork2, double *mu); double my_median(int n, double *x); double gk(int n, double *x, double *y, scaleFnPtr *scalefn, double *dwork1, double *dwork2, double *dwork3); double qc(int n, double *x, double *y, scaleFnPtr *scalefn, double *dwork1, double *dwork2, double *dwork3); double dsum(int n, double* x, int incx, double* wrkn); double scaleTau2(int n, double *x, double *dwork1, double *dwork2, double *mu); SEXP covOPW(SEXP SX, SEXP Siter, SEXP SscaleFun, SEXP SrcovFun) { char CHARA = 'A', CHARL = 'L', CHARN = 'N', CHART = 'T', CHARV = 'V'; double *X = NULL, *Z = NULL, *ZCOPY = NULL, *U = NULL, **A = NULL, *d = NULL; double *dwork1 = NULL, *dwork2 = NULL, *dwork3 = NULL, *diagT = NULL, *offdiagT = NULL; double *tau = NULL, *gamma = NULL, *cov = NULL, *covcopy = NULL, *center = NULL, *dist = NULL; double mu = 0.0, alpha = 0.0, DZERO = 0.0, DONE = 1.0; int n = 0, p = 0, np = 0, pp = 0, iter = -1, i = 0, j = 0, k = 0, info = 0, lwork = 0; int liwork = 0, IONE = 1; int *isuppz = NULL, *iwork = NULL; SEXP Sans = R_NilValue, Scov = R_NilValue, Scenter = R_NilValue; SEXP Sdist = R_NilValue, Sdim = R_NilValue, Snames = R_NilValue; scaleFnPtr *scalefn = NULL; rcovFnPtr *rcovfn = NULL; if(strncmp(CHAR(asChar(SscaleFun)), "s_mad", 5) == 0) scalefn = &my_mad; else if(strncmp(CHAR(asChar(SscaleFun)), "scaleTau2", 9) == 0) scalefn = &scaleTau2; else error("unable to set scale function pointer in C function covOPW"); if(strncmp(CHAR(asChar(SrcovFun)), "gk", 2) == 0) rcovfn = &gk; else if(strncmp(CHAR(asChar(SrcovFun)), "qc", 2) == 0) rcovfn = &qc; else error("unable to set rcov function pointer in C function covOPW"); if(!isMatrix(SX)) error("first argument to C function covOPW is not a matrix"); PROTECT(Sdim = getAttrib(SX, R_DimSymbol)); n = INTEGER(Sdim)[0]; p = INTEGER(Sdim)[1]; Sdim = R_NilValue; UNPROTECT(1); np = n*p; pp = p*p; lwork = 18*p; liwork = 10*p; iter = INTEGER(Siter)[0]; X = REAL(SX); Z = (double*) R_alloc((size_t) np, sizeof(double)); F77_CALL(dcopy)(&np, X, &IONE, Z, &IONE); ZCOPY = (double*) R_alloc((size_t) np, sizeof(double)); U = (double*) R_alloc((size_t) (p*(p+1))/2, sizeof(double)); covcopy = (double*) R_alloc((size_t) pp, sizeof(double)); A = (double**) R_alloc((size_t) iter, sizeof(double*)); for(k = 0; k < iter; k++) A[k] = (double*) R_alloc((size_t) pp, sizeof(double)); d = (double*) R_alloc((size_t) p, sizeof(double)); dwork1 = (double*) R_alloc((size_t) n, sizeof(double)); dwork2 = (double*) R_alloc((size_t) n, sizeof(double)); dwork3 = (double*) R_alloc((size_t) imax2(n, lwork), sizeof(double)); diagT = (double*) R_alloc((size_t) p, sizeof(double)); offdiagT = (double*) R_alloc((size_t) p, sizeof(double)); tau = (double*) R_alloc((size_t) (p-1), sizeof(double)); gamma = (double*) R_alloc((size_t) p, sizeof(double)); isuppz = (int*) R_alloc((size_t) (2*p), sizeof(int)); iwork = (int*) R_alloc((size_t) liwork, sizeof(int)); for(k = 0; k < iter; k++) { for(j = 0; j < p; j++) { d[j] = scalefn(n, Z+j*n, dwork1, dwork2, &mu); //this can be handled better if(fabs(d[j]) < 1e-12) error("column with zero scale encountered in C function covOPW"); alpha = 1.0 / d[j]; F77_CALL(dscal)(&n, &alpha, Z+j*n, &IONE); } for(i = 0; i < p; i++) U[i+((2*p-i-1)*i)/2] = 1.0; for(i = 1; i < p; i++) for(j = 0; j < i; j++) U[i+((2*p-j-1)*j)/2] = rcovfn(n, Z+i*n, Z+j*n, scalefn, dwork1, dwork2, dwork3); /* Rprintf("\n %d (%d): %d, %d, %d, %d %d %d \n", k, iter, n, p, np, pp, lwork, liwork); */ F77_CALL(dsptrd)(&CHARL, &p, U, diagT, offdiagT, tau, &info FCONE); F77_CALL(dstegr)(&CHARV, &CHARA, &p, diagT, offdiagT, &mu, &mu, &i, &i, &DZERO, &j, gamma, A[k], &p, isuppz, dwork3, &lwork, iwork, &liwork, &info FCONE FCONE); F77_CALL(dopmtr)(&CHARL, &CHARL, &CHARN, &p, &p, U, tau, A[k], &p, dwork2, &info FCONE FCONE FCONE); for(j = 0; j < p/2; j++) F77_CALL(dswap)(&p, A[k]+j*p, &IONE, A[k]+p*(p-j-1), &IONE); F77_CALL(dcopy)(&np, Z, &IONE, ZCOPY, &IONE); F77_CALL(dgemm)(&CHARN, &CHARN, &n, &p, &p, &DONE, ZCOPY, &n, A[k], &p, &DZERO, Z, &n FCONE FCONE); for(i = 0; i < p; i++) for(j = 0; j < p; j++) A[k][i+j*p] = d[i] * A[k][i+j*p]; } PROTECT(Scov = allocMatrix(REALSXP, p, p)); PROTECT(Scenter = allocVector(REALSXP, p)); PROTECT(Sdist = allocVector(REALSXP, n)); cov = REAL(Scov); center = REAL(Scenter); dist = REAL(Sdist); for(j = 0; j < p; j++) { gamma[j] = scalefn(n, Z+j*n, dwork1, dwork2, &mu); for(i = 0; i < p; i++) cov[i+j*p] = i == j ? gamma[j] * gamma[j] : 0.0; center[j] = mu; } for(i = 0; i < n; i++) { for(j = 0; j < p; j++) Z[i+j*n] = R_pow_di(((Z[i+j*n] - center[j]) / gamma[j]), 2); dist[i] = F77_CALL(dasum)(&p, Z+i, &n); } for(k = iter-1; k >= 0; k--) { F77_CALL(dcopy)(&pp, cov, &IONE, covcopy, &IONE); F77_CALL(dgemm)(&CHARN, &CHARN, &p, &p, &p, &DONE, A[k], &p, covcopy, &p, &DZERO, cov, &p FCONE FCONE); F77_CALL(dcopy)(&pp, cov, &IONE, covcopy, &IONE); F77_CALL(dgemm)(&CHARN, &CHART, &p, &p, &p, &DONE, covcopy, &p, A[k], &p, &DZERO, cov, &p FCONE FCONE); F77_CALL(dcopy)(&p, center, &IONE, gamma, &IONE); F77_CALL(dgemv)(&CHARN, &p, &p, &DONE, A[k], &p, gamma, &IONE, &DZERO, center, &IONE FCONE); } PROTECT(Sans = allocVector(VECSXP, 3)); SET_VECTOR_ELT(Sans, 0, Scenter); SET_VECTOR_ELT(Sans, 1, Scov); SET_VECTOR_ELT(Sans, 2, Sdist); PROTECT(Snames = allocVector(STRSXP, 3)); SET_STRING_ELT(Snames, 0, mkChar("center")); SET_STRING_ELT(Snames, 1, mkChar("cov")); SET_STRING_ELT(Snames, 2, mkChar("distances")); setAttrib(Sans, R_NamesSymbol, Snames); UNPROTECT(5); return Sans; } double my_median(int n, double *x) { int k = -1; if(n%2) { k = (n-1)/2; rPsort(x, n, k); return(x[k]); } k = n/2; rPsort(x, n, k); rPsort(x, k, k-1); return((x[k-1] + x[k]) / 2.0); } double my_mad(int n, double *x, double *dwork1, double *dwork2, double *mu) { const int IONE = 1; int i = 0; F77_CALL(dcopy)(&n, x, &IONE, dwork1, &IONE); *mu = my_median(n, dwork1); for(i = 0; i < n; i++) dwork1[i] = fabs(dwork1[i] - *mu); return my_median(n, dwork1) * 1.4826; } double gk(int n, double *x, double *y, scaleFnPtr *scalefn, double *dwork1, double *dwork2, double *dwork3) { const int IONE = 1; double plus = 0.0, minus = 0.0, mu = 0.0; const double DONE = 1.0, DNEGONE = -1.0; F77_CALL(dcopy)(&n, x, &IONE, dwork1, &IONE); F77_CALL(daxpy)(&n, &DONE, y, &IONE, dwork1, &IONE); plus = scalefn(n, dwork1, dwork2, dwork3, &mu); F77_CALL(dcopy)(&n, x, &IONE, dwork1, &IONE); F77_CALL(daxpy)(&n, &DNEGONE, y, &IONE, dwork1, &IONE); minus = scalefn(n, dwork1, dwork2, dwork3, &mu); return (R_pow_di(plus, 2) - R_pow_di(minus, 2)) / 4.0; } double scaleTau2(int n, double *x, double *dwork1, double *dwork2, double *mu) { const double C1 = 4.5, C2squared = 9.0; // const double C2 = 3.0; const double Es2c = 0.9247153921761315; double medx = 0.0, sigma0 = 0.0, tmpsum = 0.0; int i = 0, IONE = 1; F77_CALL(dcopy)(&n, x, &IONE, dwork1, &IONE); medx = my_median(n, dwork1); for(i = 0; i < n; i++) dwork1[i] = fabs(dwork1[i] - medx); sigma0 = my_median(n, dwork1); F77_CALL(dcopy)(&n, x, &IONE, dwork1, &IONE); for(i = 0; i < n; i++) { dwork1[i] = fabs(dwork1[i] - medx); dwork1[i] = dwork1[i] / (C1 * sigma0); dwork2[i] = 1.0 - R_pow_di(dwork1[i], 2); dwork2[i] = R_pow_di(((fabs(dwork2[i]) + dwork2[i])/2.0), 2); } tmpsum = dsum(n, dwork2, 1, dwork1); for(i = 0; i < n; i++) dwork1[i] = x[i] * dwork2[i]; *mu = dsum(n, dwork1, 1, dwork2) / tmpsum; F77_CALL(dcopy)(&n, x, &IONE, dwork1, &IONE); for(i = 0; i < n; i++) { dwork2[i] = R_pow_di((dwork1[i] - *mu) / sigma0, 2); dwork2[i] = dwork2[i] > C2squared ? C2squared : dwork2[i]; } return sigma0 * sqrt(dsum(n, dwork2, 1, dwork1) / (n*Es2c)); } double qc(int n, double *x, double *y, scaleFnPtr *scalefn, double *dwork1, double *dwork2, double *dwork3) { double medx = 0.0, medy = 0.0, r = 0.0; int IONE = 1, i = 0, onethree = 0, twofour = 0; F77_CALL(dcopy)(&n, x, &IONE, dwork1, &IONE); medx = my_median(n, dwork1); F77_CALL(dcopy)(&n, y, &IONE, dwork1, &IONE); medy = my_median(n, dwork1); for(i = 0; i < n; i++) { if((x[i] > medx && y[i] > medy) || (x[i] < medx && y[i] < medy)) onethree++; else if((x[i] > medx && y[i] < medy) || (x[i] < medx && y[i] > medy)) twofour++; } r = ((double) (onethree - twofour)) / ((double) (onethree + twofour)); return sin(M_PI_2*r); } double dsum(int n, double* x, int incx, double* wrkn) { int i = 0; if(n == 1) return x[0]; while(i < n/2) { wrkn[i] = x[2*incx*i] + x[(2*i+1)*incx]; i++; } if(2*i < n) wrkn[i-1] = wrkn[i-1] + x[2*incx*i]; return dsum(i, wrkn, 1, wrkn+i); } rrcov/src/fast-mve.c0000644000176200001440000001453314443667016014103 0ustar liggesusers /* FILE: fast-mve.c // */ #include #include #include #include "R.h" #include "R_ext/Linpack.h" #include #define INFI 1e+20 #define EPS_DET 1e-5 void r_fast_mve(double *xx, int *nn, int *pp, int *nnsamp, int *nsingular, double *ctr, double *ccov, double *scale, int *best_ind, int *nnind, int *nn2, double *pchimed) { void r_find_k_smallest(double *a, int n, int k, int *ind, double *tmp); void r_mean_cov_mah_sample(double *x, int *n, int *p, int *indices, int *nind, double *xw, double *mean, double *cov, double *mah_d, double *det, int *pivot, double *qraux, double *work, int *rank, int *compute_cov, int *compute_distances, int *compute_det); double median(double *x, int n, double *aux); void sample_noreplace(int *x, int n, int k, int *all_ind); int *indi, iter, *pivot, rank, *all_ind; int compute_cov, compute_det, compute_distances; register int i, j; int n = *nn, p = *pp, nsamp = *nnsamp, n2 = *nn2, nind = *nnind; double s0 = INFI, s, *best_ctr, det1, det2; double *di, *tmp, *qraux, *tmp2, dn3; double *cov_vec; double xmed, calpha; double chimed = *pchimed; /* qchisq(0.5, p) */ all_ind = (int *) malloc( n * sizeof(int) ); cov_vec = (double*) calloc( p * p, sizeof(double) ); qraux = (double *) malloc( p * sizeof(double) ); tmp2 = (double *) malloc( 2 * p * sizeof(double) ); /* work */ pivot = (int *) malloc( p * sizeof(int) ); indi = (int *) calloc( n , sizeof(int) ); best_ctr = (double *) malloc( p * sizeof(double) ); di = (double *) malloc( n * sizeof(double) ); tmp = (double *) malloc( n * p * sizeof(double) ); GetRNGstate(); /* set the seed from R? */ dn3 = pow( (double) n2 - 1.0, (double) p); for(iter=0; iter < nsamp; iter++) { compute_distances = 1; compute_det = 1; compute_cov = 0; R_CheckUserInterrupt(); rank = 0; sample_noreplace(indi, n, nind, all_ind); r_mean_cov_mah_sample(xx, nn, pp, indi, &nind, tmp, ctr, cov_vec, di, &det1, pivot, qraux, tmp2, &rank, &compute_cov, &compute_distances, &compute_det); if( rank == p ) { r_find_k_smallest(di, n, n2, indi, tmp); compute_distances = 1; compute_det = 1; compute_cov = 1; r_mean_cov_mah_sample(xx, nn, pp, indi, &n2, tmp, ctr, cov_vec, di, &det1, pivot, qraux, tmp2, &rank, &compute_cov, &compute_distances, &compute_det); if( rank == p ) { det1 = det1 * det1 / dn3; /* det1 = |cov matrix| */ det2 = pow(det1, 1.0 / (double) p ); xmed = median(di, n, tmp); s = xmed * det2; calpha = xmed/chimed; /* Rprintf("calpha=%lf, chimed=%lf\n",calpha, chimed); */ if(s < s0){ s0 = s; for(i=0; i ax) j--; if (jnc <= j) { w=a[jnc]; a[jnc]=a[j]; a[j]=w; jnc++; j--; }; }; if (j 0) for(i = 0; i < j; i++) s -= work[i] * xr[i + nnew*j]; work[j] = s / xr[j + nnew*j]; ss += work[j] * work[j]; } return(ss*(nnew-1)); } /* Sampling k from 0:n-1 without replacement. (c) B. Ripley */ void sample_noreplace(int *x, int n, int k, int *ind) { int i, j, nn=n; for (i = 0; i < n; i++) ind[i] = i; for (i = 0; i < k; i++) { j = nn * unif_rand(); x[i] = ind[j]; ind[j] = ind[--nn]; } } rrcov/src/R-rng4ftn.c0000644000176200001440000000034214443667016014133 0ustar liggesusers#include void F77_SUB(rndstart)(void){ GetRNGstate(); } void F77_SUB(rndend)(void){ PutRNGstate(); } double F77_SUB(normrnd)(void){ return norm_rand(); } double F77_SUB(unifrnd)(void){ return unif_rand(); } rrcov/src/sest.c0000644000176200001440000005531114660221545013330 0ustar liggesusers#define STRICT_R_HEADERS 1 /* TO DO - FIXME * - Fix the parameters maxit, rtol and converged * - Fix "if(ires > 0) ... else" -there is no need of such distinction * - Use QR to compute the inverse of the cov matrix - see mtxdet(). */ #include #include #include #include /* for the QR routines */ #define MAX_NTRY 1000 /* was 500 */ #define ZERO 1e-10 #define INFI 1e+20 void r_sample(int *x, int *n, int *k); void selectwr(int *array, int size, int nchoices); void reverse(int *a, int n); void resample(int *array, int n, int k); void covp(double **x, int *n, int *p, int *indices, int *nind, double *mean, double **cov, double *det, int *rank); void covpold(double **a, int n, int p, int *id, int np, double *t, double ** cov); void covar(double **a, int n, int p, double *t, double ** cov); void covwt(double **a, int n, int p, double *wts, double *t, double **cov); double mymed(int n, double *x); double mymedabs(int n, double *x); double mad(int n, double *x, double *dwork1, double *dwork2, double *mu); int maxind(double *a, double *maxval, int n); double norm (double *x, int n); double norm1(double *x, int n); double norm_diff (double *x, double *y, int n); double norm1_diff(double *x, double *y, int n); int mtxdet(double **c, int p, double *det); void mtxswp(double **a, int p, int k); void mtxinv(double **a, int p, double *det); void mtxtra(double **a, double **b, int n, int p); void vectra(double *a, double *b, int n); void mtxmsc(double **a, double s, int n, int p); double **mtxalloc(int n, int p); void mtxfree(double **a, int n, int p); void resdis(double **x, int n, int p, double *mu, double **sigma, double *d); double rhobw(double u, double cc); double mean_rhobw(double *u, double scale, int n, double cc); double lossS(double *u, double scale, int n, double cc); double scaleS(double *u, double kp, double cc, double initial_sc, int n); void scaledpsi(double *u, double scale, int n, double cc, double *w); int refine_s(double **x, int n, int p, double *init_mu, double **init_sigma, double init_scale, int k, int conv, double kp, double cc, double *mu, double **sigma, double *scale, double *rdis, double *weights); /* * Compute FAST-S estimates of location and covariance matrix - * similar to the one proposed for regression by * Salibian-Barrera, M. and Yohai, V.J. (2005), * "A fast algorithm for S-regression estimates". * This current C implemention is by Valentin Todorov. * * INPUT: * X - input data matrix - linear (FORTRAN) nn by pp * nsamp - number of initial samples to generate * cc1 - constant for the biweight function * kkp - constant (b) for the S-equation * bbest_r - number of 'best' solution to keep and iterate to convergence later * kstep * maxit * rtol * * OUTPUT: * ctr - location vector * ccov - covariance matrix (linear, p by p) * scale - scale * converged * */ void sest(double *X, int *nn, int *pp, int *nsamp, double *ctr, double *ccov, double *scale, double *cc1, double *kkp, int *bbest_r, int *kstep, int *maxit, double *rtol, int *converged); /* for "tracing" only : */ void disp_mat(double **a, int n, int m); void disp_dble(double *a, int n); void disp_int(int *a, int n); void disp_lmat(double *a, int n, int p); #define _use_blas_ /* ||x||_2 */ double norm(double *x, int n) { #ifdef _use_blas_ int one = 1; return(F77_CALL(dnrm2)(&n, x, &one)); #else int i; double s = 0.; for(i=0; i < n; i++) s += x[i] * x[i]; return(sqrt(s)); #endif } double norm1(double *x, int n) { #ifdef _USE_BLAS_ int one = 1; return(F77_CALL(dasum)(&n, x, &one)); #else int i; double s = 0.; for(i=0; i < n; i++) s += fabs(x[i]); return(s); #endif } /* ||x-y||_2 */ double norm_diff(double *x, double *y, int n) { int i; double s = 0; for(i=0; i < n; i++) s += (x[i]-y[i])*(x[i]-y[i]); return( sqrt(s) ); } /* ||x-y||_1 */ double norm1_diff(double *x, double *y, int n) { int i; double s = 0; for(i=0; i < n; i++) s += fabs(x[i]-y[i]); return(s); } /* * Resample without replacement: * Interface to R - call it from R instead of sample() for tests * when you want to have exactly the same sequence. * */ void r_sample(int *x, int *n, int *k) { int i; resample(x, *n, *k); for(i=0; i<*k; i++) x[i] += 1; } /* * Resample without replacement - k out of n elements of the array 'array' * */ void resample(int *array, int n, int k) { int i; for(i=0; i MAX_NTRY) { REprintf("\nToo many singular resamples\nAborting sest()\n\n"); *sscale = -1.0; goto cleanup_and_return; } resample(b_i, n, p+1); //covp(x, n, p, b_i, p+1, tmp, tmp_mat); //singular = mtxdet(tmp_mat, p, &det); covp(x, &n, &p, b_i, &nind, tmp, tmp_mat, &det, &rank); singular = rank < p; // REprintf("\n%d: Singular=%d, LOGDET= %lf\n", ires, singular, det); } mtxmsc(tmp_mat, pow(exp(det), -1.0/p), p, p); // Perform k steps of iterative reweighting on the elemental set if(*kstep > 0) { // do the refining: no convergence, only several (kstep) iterations refine_s(x, n, p, tmp, tmp_mat, -1, *kstep, conv, kp, c1, mu, sigma, &scale, rdis, weights); } else { // k = 0 means "no refining" vectra(tmp, mu, p); mtxtra(tmp_mat, sigma, p, p); resdis(x, n, p, mu, sigma, rdis); scale = mymedabs(n, rdis)/.6745; } if(ires > 0) { /* * if this isn't the first iteration.... * check whether new mu/sigma belong to the top best results; if so keep * mu and sigma with corresponding scale. */ s_test = lossS(rdis, s_worst, n, c1); if(s_test < kp) { s_best = scaleS(rdis, kp, c1, scale, n); ind = maxind(best_scales, &s_worst, best_r); best_scales[ind] = s_best; for(i=0; i= 0), it's used, o/w the MAD is used * k = number of refining steps * conv = 0 means "do k steps and don't check for convergence" * conv = 1 means "stop when convergence is detected, or the * maximum number of iterations is achieved" * kp and cc = tuning constants of the equation */ int refine_s(double **x, int n, int p, double *init_mu, double **init_sigma, double init_scale, int k, int conv, double kp, double cc, double *mu, double **sigma, double *scale, double *rdis, double *weights) { double convtol = 1e-20; double *mu_1 = (double *)R_Calloc(p, double); double **sigma_1 = mtxalloc(p,p); double **tmp_mat = mtxalloc(p,p); double sc, det; int i, singular; resdis(x, n, p, init_mu, init_sigma, rdis); if(init_scale < 0.0) init_scale = sc = mymedabs(n, rdis)/.6745; else sc = init_scale; // if conv == 1 then set the max no. of iterations to 50 // magic number alert!!! if(conv == 1) k = 50; // copy the initial estimates mu and sigma to work storage vectra(init_mu, mu, p); mtxtra(init_sigma, sigma, p, p); for(i=0; i= 0) // not singular { for(l=0; l 5 && p < 8) eps = 1.0E-14; else eps = 1.0E-16; *det = 1.0; for(j=0; j c1 */ double rhobw(double u, double cc) { double t2, c2 = cc*cc; double ret = c2/6; if(fabs(u) <= cc) { t2 = u*u; ret = t2*(1.0 - t2/c2 + t2*t2/(3*c2*c2))/2; } return ret; } /* * Return the mean of the rho(u/scale) for the Tukey's * biweight function rho() * 1/n * sum(rho(u/s)) */ double mean_rhobw(double *u, double scale, int n, double cc) { int i; double s = 0; for(i=0; i < n; i++) s += rhobw(u[i]/scale, cc); return (s/n); } /* * The objective function: * we solve loss.S(u, s, cc) = b for "s" */ double lossS(double *u, double scale, int n, double cc) { return mean_rhobw(u, scale, n, cc); } /* * Scaled psi function for Tukey's biweight to comute the weights: * Weight function = psi(u)/u */ void scaledpsi(double *u, double scale, int n, double cc, double *w) { int i=0; double t; // ##ifelse(abs(xx) < c1, xx - 2 * xx^3/c1^2 + xx^5/c1^4, 0) for(i=0; i eps) { sc2 = sqrt(sc*sc * mean_rhobw(u, sc, n, cc) / kp); err = fabs(sc2/sc - 1.0); sc = sc2; } return(sc); } void disp_dble(double *a, int n) { int i; for(i=0; i < n; i++) Rprintf("%lf ",a[i]); Rprintf("\n"); } void disp_int(int *a, int n) { int i; for(i=0; i < n; i++) Rprintf("%d ", a[i]); Rprintf("\n"); } void disp_mat(double **a, int n, int m) { int i,j; for(i=0; i < n; i++) { Rprintf("\n"); for(j=0; j < m; j++) Rprintf("%10.8f ",a[i][j]); } Rprintf("\n"); } /* * Display an nxp matrix stored in linear array in * row major order (C) */ void disp_lmat(double *a, int n, int p) { int i,j; for(i=0; i < n; i++) { Rprintf("\n"); for(j=0; j < p; j++) Rprintf("%10.8f ", a[i*p+j]); } Rprintf("\n"); } /* Compute the determinant and check if the matrix 'c' is singular using QR decomposition */ int mtxdet(double **c, int p, double *det) { int i, j, k; int rank; double sum, tol = 1.0e-7; double *cx = (double *) R_alloc(p*p, sizeof(double)); double *qraux = (double *) R_alloc(p, sizeof(double)); double *work = (double *) R_alloc(2*p, sizeof(double)); int *pivot = (int *) R_alloc(p, sizeof(int)); for(i=0; i * * DESCRIPTION (Version): 1.7-6 * * R/plot-utils - a bug fixed in function .rrpairs() * man/*: Correct Rd file(s) with Rd \link{} targets missing package anchors * src/sest.cpp: Calloc() and Free() replaced by R_Calloc() and R_Free() 2024-01-30 Valentin Todorov * * DESCRIPTION (Version): 1.7-5 * * data/Cars.rda - data set added * man/rrcov-utils.Rd: (mail from Kurt Hornik from 22.01.2024) * man/fish.Rd: URL corrected * 2023-18-06 Valentin Todorov * * DESCRIPTION (Version): 1.7-4 * * DESCRIPTION: ISBN changed to * (mail from Kurt Hornik from 06.06.2023) * tests/thubert.Rout.save, tlda.Rout.save, tmcd4.Rout.save, tqda.Rout.save: * Follow up to changes in robustbase 0.99-0 * 2023-03-23 Valentin Todorov * * DESCRIPTION (Version): 1.7-3 * * data/ionosphere.rda - data set added * R/CovRobust, plot_utils: 'xyqqchi2' and 'xydistance' plots, fixed to use of parameter id.n * 2022-10-22 Valentin Todorov * * DESCRIPTION (Version): 1.7-2 * * src/rrcov_init.c: Fixed - warning: invalid UTF-8 in comment [-Winvalid-utf8] * see mail of K.Hornik from 17.10.2022 * 2022-07-18 Valentin Todorov * * DESCRIPTION (Version): 1.7-1 * * R/CovMrcd.R: Fixed - maxcond passed to the low level functions * R/detmrcd.R, plot_utils.R: Fixed errors "Found if() conditions comparing class() to string" * man/PcaHubert.Rd: Fixed NOTE "Found the following math rendering problems", see * mail from Kurt Hornik from 11 August 2022 * 2022-04-25 Valentin Todorov * * DESCRIPTION (Version): 1.7-0 * * src/covOPW.c - Fix for USE_FC_LEN_T becoming the default in 4.2.0 * src/ds11.f, fsada.f - fixed several Fortran warnings * 2022-02-08 Valentin Todorov * * DESCRIPTION (Version): 1.6-2 * * tests/thubert.R - minor differences in tests for PcaProj() on some platforms fixed * Examples for PCA/adjustment for skewed data and PCA/percentage of explained * variance added * R/Pca.R: scorePlot() improved to show the labels of the samples * 2022-01-28 Valentin Todorov * * DESCRIPTION (Version): 1.6-1 * * data/fruit.rda - data set added * * man/*.Rd - URLs replaced by DOI to fix for the migration of the www.jstatsoft.org * to a new editorial system (see mail from Achim Zeileis from 06.10.2021) * * R/Pca*.R - fixed a problem when showing the percentage of explained variance in * summary() of all PCA functions when k is chosen to be less than the number of variables in the * input data matrix (k < p). The returned object contains now additionally * the rank of the input matrix, the original eigenvalues (of all variables) * and the original total variance, if available. 2021-09-15 Valentin Todorov * * DESCRIPTION (Version): 1.6-0 * * R/PcaHubert.R - option for adjusted outlyingness for skewed data added * data/machines.rda - data set Computer Hardware added * data/wolves.rda - data set 'wolves' added * Fixed some URLs, particularly the reference to javasoft.org 2020-08-03 Valentin Todorov * * DESCRIPTION (Version): 1.5-5 * * R/PcaHubert.R - PcaHubert will crash if X is 1-dimensional and mcd=FALSE: fixed * R/PcaProj.R - fixed a problem with wrong scores (reported by Matthieu Lesnoff ) * R/CovMve.R, CovSest.R - fixed a problem with nsamp="exact" or nsamp="best" * (reported by Claudio Agostinelli) - these functions, differently from CovMcd, * should not take non-numeric 'nsamp' * tests/tlda.R, togk4.R: fixed 'noLD' issues in tlda.R and okg4.R * 2020-01-14 Valentin Todorov * * DESCRIPTION (Version): 1.5-2 * * R/getEllipse.R - Removed the dependence on packages 'cluster' and 'ellipse' * R/Linda - added parameter 'control' to select the robust location and * covariance estimator to use in LDA. Now any estimator derived from class 'Cov' * can be used, even such that are not in 'rrcov'. Return this parameter in the * returned S4 object. * * R/Linda - return the location and covariance estimator used as 'covobj'. This * is useful for controlling cross-validation, for example. * * R/Lda.R - fixed an issue in predict function * * R/LdaClassic, R/Linda - use generalized inverse if the common covariance * matrix is singular. * 2019-11-25 Valentin Todorov * * DESCRIPTION (Version): 1.4-9 * DESCRIPTION (Version): 1.4-8 * * - Added data set \code{diabetes}; data set \code{soil} from package \code{rrcovHD} moved here. * - Linear and quadratic discriminant analysis can use the MRCD estimates. * - Fixed an issue with CovControlMcd(nsamp="deterministic") - this would not work, * because nsamp was defined in the class definition as "numeric". Now it is * "Cnumeric" - union of "character" and "numeric'. * - Corrected the code for Minimum Regularized Covariance Determinant estimator (MRCD) - * \code{CovMrcd()} - the step of adjusting the eignevalues in r6pack() is excluded * now because it has no effect when n > p. * 2018-11-14 Valentin Todorov * * DESCRIPTION (Version): 1.4-7 * DESCRIPTION (Version): 1.4-6 * * R/CovMrcd.R, CovControlMrcd.R: added Minimum Regularized Covariance * Determinant estimator (MRCD) (Boudt et al. 2018) * * data/octane.rda, man/octane.Rd - octane data set added * data/olitos.rda, man/olitos.Rd - olitos data set moved from package rrcovHD * * R/CovClassic.R, plot-utils.R: make the 'pairs' plot also * available for classical covariance matrix * 2018-05-20 Valentin Todorov * * DESCRIPTION (Version): 1.4-4 * * vignettes/mybiblio.bib: Fixed issue with building * the vignette: non-ascii symbols in .bib * (see mail from K. Hornik from 14.05.2018) * src/rrcov_init.c: Registration of native routines * 2016-09-03 Valentin Todorov * * DESCRIPTION (Version): 1.4-3 * DESCRIPTION (Version): 1.4-2 * * src/sest.c: Warning reported by Duncan Murdoch: if(fabs(t <= cc)) * 2016-08-19 Valentin Todorov * * DESCRIPTION (Version): 1.4-1 * * R/Pca.R, PcaCov.R, PcaHubert.R, PcaLocantore.R, PcaClasic.R: * fixed a bug when scale != FALSE. * Now scale can be also a function or a vector with length p. * 2016-08-05 Valentin Todorov * * DESCRIPTION (Version): 1.4-0 * * R/PcaCov.R, Pca.R: fixed a bug when scale != FALSE; the call to princomp() * replaced by an internal function (simplified princomp()) * * R/Pca.R: fixed a bug when scale != FALSE - computing OD .distances() * * R/Linda.R: added argument l1med=FALSE - if set to TRUE, the L1 median * will be used for centering the data in mcdB and mcdC methods * 2016-02-10 Valentin Todorov * * DESCRIPTION (Version): 1.3-10 * * R/CovSest.r: additional trace for Rocke S-estimates * R/Pca.R, Allclasses.R, etc.: Add the quantile cut-off for computing the OD and SD distances in PCA as a parameter * R/PcaCov.R, etc.: Automatic selection of components with k=0 * * 2015-11-28 Valentin Todorov * * DESCRIPTION (Version): 1.3-9 * * 2015-07-07 * R/Pca.R, man/biplot.rd: The missing parameter choices= added to biplot() * * R/PcaXxx.R, man/PcaXxx.rd: added a parameter crit.pca.distances to be used * for computing the score and orthogonal distances. This parameter is stored * in the Pca-class object * * R/PcaXxx.R, man/PcaXxx.rd (except Grid and Proj): selection of number of * components fixed, see Help. * 2014-11-23 Valentin Todorov * * DESCRIPTION (Version): 1.3-7 * * src/sest.c: fixed an issue (reported by Stefan van Aelst) * in computing S-estimates, related to improper * calculation of the rank of a matrix with q() * 2014-11-05 Valentin Todorov * * DESCRIPTION (Version): 1.3-6 * * R/CovSest.R, dets.R, AllClasses.R, CovControl.R: added Deterministic S as * an option to CovSest (method="sdet"), function ..detSloc(), * new parameters and new slots in class CovSest. * * R/Pca.R, PcaClassic.R, pcaHubert.R: the internal functions classSVD() * and kernelEVD() are replaced by function classPC() which is moved * to robustbase * * R/CovMcd.R, AllClasses.R, CovControl.R - deterministic MCD, with nsamp="deterministic", * new parameters and new slots in class CovMcd * * tests/tsest.R: added tests method="sdet" * * R/CovSde, man/CovSde.Rd: a bug, when number of variables * too large, fixed. The number of variables is used to calculate * the necessary number of samples. If this number is large than * .Machine$integer.max an error message, saying NAs passed to * an external function was issued. Now the nsamp <= .Machine$integer.max * and in the documentation is explained that CovSde() can be used only * with relatively small data sets. * * R/CovMest3.R, man/CovMest3.Rd - function deprecated, * replaced by the one return ing an S4 class, CovMest(). * tests/tmest.R removed. * * TODO: fix a bug in C version of sfast * TODO fix a crash in CovOgk with a singular matrix * * 2013-09-01 Valentin Todorov * 1.3-5 * * R/Pca.R - definition of a print() method removed * Use suppressPackageStartupMessages(library(rrcov)) in the tests * * R/CovOgk.R - bug fixed (Chris Green): a data set with 0 (complete) rows * (n=0) would crash R with access violation * * R/CovClassic.R - the restriction "Need at least p=(number of variables) * observations" removed * * man/PcaHubert.Rd - % signs in the examples were not escaped and part of the * statements was missing * 2013-08-19 Valentin Todorov * 1.3-4 * * Changes, mainly to fix warnings in packages rrcovNA and rrcovHD * * Generic and method scoreplot changed to scorePlot to avoid * conflict with package pls * * Vignette moved to directory .\vignettes, as recommended in * the 'Writing R Extensions' manual * * NOTE "Namespace imported from by a ':::' call: ..." fixed for all * but two robustbase calls. * * Packages 'mvtnorm' and 'pcaPP' moved from Depends to Import and the particular * functions used are only imported (rmvnorm from 'mvtnorm' and PCAgrid * and PCAproj from 'pcaPP') * 2013-04-28 Valentin Todorov * 1.3-3 * * SRC/ds11.f: Fortran array bound check error fixed * * R/zzz.R: on.Load() replaced by on.Attach() to suppress a NOTE * * R/Pca.R: Fixed a problem in pca.scoreplot() - the ellipse was not * properly shown in case for example of PP PCA, when the scores can be correlated. 2012-06-10 Valentin Todorov * 1.3-02 * * R/Linda.R: Fixed a problem with array over-run in .Fortran("fsada") in integer argument 14 * * Method getRaw() for CovMcd, CovMve and CovOgk added * Union S4 classes Uvector, Umatrix, Ulist, Ufunction, Utable exported * in the name space * T2.test() fixed - the F statistic was shown but titled as "T^2". Now both * T2 and F are shown * 2011-06-26 Valentin Todorov * 1.3-01 * * Fix for LdaPP() * 2011-05-05 Valentin Todorov * 1.3-00 * * Added LdaPP() and the related classes - see Pires and Branco (2010) * 2011-04-30 Valentin Todorov * 1.2-02 * * R/plot-methods.R: fixed the pairs-plot for Cov objects - on the diagonal * were shown not the variable names but Var1, var2, etc. * * R/Pca.R, AllGenerics.R, Man/scoreplot.rda, pca.scoreplot.rda: * the internal function pca.scoreplot()is defined now in the namespace, * help is added and corresponding method/generic scoreplot() function * is defined too. * * Data/pottery.rda, Man/pottery.rd: added the pottery data set - * see Pires and Branco (2010) * * 2011-04-04 Valentin Todorov * 1.2-00 * R/CovSest.R, CovMMest.R, man/* - added slots for the tuning constants of * the S- and MM-loss functions. The functions for calculating these * constants (.csolve.bw.S() and .csolve.bw.MM() are not exported but the * user could access them using rrcov:::.csolve.bw.S() call * data/wages.rda - Added data set Wages and Hours * R/Pca.R - fixed the cutoff for the orthogonal distances (diagnostic plot)- * univariate MCD replaced by median and MAD 2010-08-30 Valentin Todorov * 1.1-00 * src/ds11.f - fixed a problem with CovSde for p=1 (i.e. option p=1 implemented) * R/CovSest.R, man/CovSest.Rd - default number of samples 'nsamp' for method='sfast' * changed to nsamp=20 * Added MM-estimates of location and scatter * Added methods getDet(), getShape() and getDflag() for objects of class 'Cov' * C implementation of the FAST-S estimates * signflip and scale parameters added to PcaHubert() and PcaCov() 2010-06-20 Valentin Todorov * 1.0-01 * data/rice.Rda, man/rice.Rd: Rice data set added * * R/PcaHubert.R - fixed a minor problem - see VT::14.12.2009 * * src/fsada.f: fixed a problem in Linda with method 'fsa' - * number of cases was limited to 500 and number of * variables to 100 without error message * R/Linda.R, man/Linda.Rd, src/fsada.f - added 'trace' parameter * * R/Allclasses.R, AllGenerics.R, PcaClassic.R, PcaLocantore.R, * RcaHubert.R, Pca.R, man/PcaClassic.Rd, PcaLocantore.Rd, * PcaClassic-class.Rd, PcaLocantore-class.Rd, Pca-class.Rd: * - added sign flipping for the loadings, controlled by a * signflip=TRUE parameter * - added a scale slot in Pca class and scale=FALSE parameter in * PcaClassic() and PcaLocantore() * * R/plot-utils.R, CovRobust.R, CovClassic: * - additional graphics parameters for the plot methods are available now, e.g. * different colors or different symbols for the different groups * - it is possible to provide custom labels for the id.n observations * - pairs-plot for more than 2 variables * 2009-10-10 Valentin Todorov * 1.0-00 * CITATION to the JSS paper added * Rd files updated to refer to the JSS paper * vignette added * ********************************************************** 2009-09-29 Valentin Todorov * 0.5-03 * citation file added * PcaCov can compute the classical estimates (cov.control=NULL) * 2009-07-21 Valentin Todorov * 0.5-02 * Defaults of CovRobust() changed * Corrections in some help pages * Biplot implemented as a method of class PCA (generic function biplot) * 2009-02-20 Valentin Todorov * 0.5-01 * * Added Quadratic Discriminant Abalyis: Qda, SummaryQda, * PredictQda, QdaClassic, QdaRobust and QdaCov * 2009-02-14 Valentin Todorov * 0.5-00 * * Added Stahel-Donoho estimator of multivariate location and scatter * CovSde 2009-01-14 Valentin Todorov * 0.4-08 * * data/salmon - data set added * Added Robust Linear Discriminant Analysis: * R/AllClasses, R/Lda.R, R/LdaClassic.R, R/Linda.R * and the corresponding manual pages: man/Lda*.Rd * * Added PP-approach PCA methods PcaProj and PcaGrid (see package pcaPP): * R/AllClasses, R/PcaProj.R, R/PcaGrid.R * and the corresponding manual pages: man/PcaProj*.Rd, man/PcaGrid*.Rd * 2008-07-04 Valentin Todorov * 0.4-07 * * data/un86 - data set added * * R/CovRobust.R - function to select a robust estimator added * * R/CovSest.R, man/CovSest.Rd, R/CovControlSest.R, man/CovControlSest.Rd - * added two more estimation methods for the S estimates: bisqauare and * Rocke type, as described in Maronna et al. (2006) - thanks to Matias * Salibian-Barrera for the provided code. * * R/CovMve.R, man/CovMve.Rd - now the raw cov matrix is properly scaled by * a factor median(dist)/qchisq(0.5, p) and the reweighted cov matrix is * multiplied by a consistency corretcion factor, similarly as in CovMcd(). * No finite sample correction factors are used. For details see ?CovMve. * * man/CovMve.Rd - the search for the approximate solution is explained * (fast MVE) and the corresponding referecne (Maronna et al., 2006) is given. * * R/CovMest.R, man/CovMest.Rd - the default initial value now is the raw * (not reweighted) MVE estimate with the covariance matrix standardised * to det(cov)=1 * * R/CovOgk.R, man/CovOgk.RD, src/covOPW.c, R/CovControlOgk.R, man/CovControlOgk.R * Added a C implementation for OGK - thanks to Kjell Konis. * See ?CovOgk for details * * R/plot-utils.R - fixed a bug in plot(CovMcd(x), which="tolEllipsePlot", id.n=0) - * even if id.n was set to 0, at least one observation was plotted with a label * 2008-06-02 Valentin Todorov * 0.4-06 * Added the 'bushmiss' - a group of data sets based on 'bushfire' * with added incompliteness (MCAR) with probability 0.1, * 0.2, 0.3 and 0.4 * Fixed minor errors in the documentation * Added PCA based on robust cov matrix - PcaCov * Added Spherical PCA algorithm - PcaLocantore * Added 'bus' data set - Automatic vehicle recognition data * as an illustration for the PCA methods. The examples reproduce * the corresponding examples from Maronna et al. (2006), page 213 2007-02-12 Valentin Todorov * 0.4-05 * Added the OsloTransect data set * Fixed minor errors in the documentation * Fixed two serious problems in .fastMve() - there was a * hard-coded seed setting and the half-sample was hardcoded too * Added S-estimates computed by either the FAST-S algorithm or * Ruppert's SURREAL 2007-11-10 Valentin Todorov * 0.4-03 * R/plot-utils.R - "Squared Robust distance" changed to "Robust distance", * added ylim parameter so that two parallel distance plots * (robust and classic) will have the same scale * man/getCenter-methods.Rd - there was an 'unmatched right brace' in line 34 - * shown as 'Note' in "R CMD install" but not in "R CMD check" * R/CovRobust.R - method 'plot' - make robust and classic distance * plot same scale * Added function Cov() as an alias to CovClassic() for compatibility with * previous versions * Function and class Robpca changed to PcaHubert - Robpca was too general * Added methods predict, screeplot and biplot for Pca 2007-10-24 Valentin Todorov * 0.4-02 * Fixed the OO-hierarchy for robust location and scatter: now * Cov is a VIRTUAL class and CovClassic added for representing * the classic estimates * CovMve added, to be used as initial solution for CovMest 2007-09-28 Valentin Todorov * 0.4-01 * Removed covMcd, ltsReg and all datasets which were already moved to * package robustbase. Now package robustbase is required and these * functions are used from there. This could cause some minor * incompatibilities because of changed parameters in covMcd(), like: * - trace=FALSE instead of print.it=FALSE * - seed=NULL instead of seed=0 * - changed structure and names of datasets 2007-09-24 Valentin Todorov * 0.3-08 * Added ROBPCA - Robust Principal Component Analysis - with an * S4 object model R/Pca.R, R/PcaClassic, R/Robpca and * man/Pca-class.RD, man/PcaRobust-class.Rd, man/PcaClassic-class.RD * man/Robpca-class.RD, man/PcaClassic.RD, man/Robpca.RD 2007-09-20 Valentin Todorov * 0.3-07 * Added classical and robust Wilks Lambda test - R/Wilks.test.R and * man/Wilks.test.RD 2007-07-05 Valentin Todorov * 0.3-06 * Added one- and two-sample T2 Hotelling test and one-sample * robust T2 Hotelling test (Willems et al. 2002) - R/T2.test.R and * man/T2.test.RD * R/covMcd.R: usage of simulated finite sample correction factors fixed: * - case p=1 fixed * - simulated corrections used only when the Pison et.al. * formula is definitely wrong (negative or very large) * Added the L-moments data sets from Hosking and Wallis (1997): * Appalachia, Cascades, lmom32 and lmom33 * Fixed print.mcd() to avoid conflict with package 'robust' * (same class "mcd") * R/covMcd.R - the calculation of the consistency correction factor * for the raw and reweighted MCD covariance replaced by a call to * a function MCDcons() * R/CovRobust.R, Cov.R, AllGenerics.R, utils.R - fixed the plot * method of CovRobust in case of singular covariance matrix 2006-12-21 Valentin Todorov * 0.3-05 * fixed a bug in ltsReg (in the QQ-plot were plotted the residuals instead * of the standardized reisuals) * added dataset 'Fish Catch Data' * added dataset 'Hemophilia' 2006-09-07 Valentin Todorov * 0.3-04 * name the partial= argument of the sort function in covMcd3.R - * necessary for the coming R 2.4.0 2006-07-08 Valentin Todorov * 0.3-03 * Remove CRLF line endings of the files *.Rout.save in rrcov/tests directory 2006-06-01 Valentin Todorov * 0.3-02 * add CovControlMcd function and CovControlMcd-class * add CovMcd function and CovMcd-class * add CovControlOgk function and CovControlOgk-class * add CovOgk function and CovOgk-class 2006-05-21 Valentin Todorov * 0.3-01 * NAMESPACE: add importFrom(stats4, plot, summary) * add Marona and Yohai data set * add Cov function and Cov-class * add CovControl-class * add CovControlMest function and CovControlMest-class * add CovRobust-class * add CovMest function and CovMest-class 2006-03-13 Valentin Todorov * 0.2-13 * defined package namespace * added constrained M-estimates (Rocke (1994,1996)) 2006-02-10 Valentin Todorov * 0.2-12 * FIXED - .fastmcd and fastlts does not return everything * fixed problems in ltsReg in case of location model Y~1 (or x is missing in ltsReg.default()) 2006-02-06 Valentin Todorov * 0.2-11 * added more data sets from Rousseeuw & Leroy: telef, lactic, pension, pilot, cloud, education, airmay * fixed codoc discrepancies in the data sets stars and wood * ltsReg & covMcd - added options 'best' and 'exact' for nsamp * ltsReg & covMcd - added parameter for controlling the small sample correction factors - use.correction * rrcov.control - added parameter for controlling the small sample correction factors - use.correction * ltsReg & covMcd - output of the consistency and the small sample correction factors 2005-10-24 Valentin Todorov * 0.2-10 * minor corrections in the help of covPlot * fixed bug in covPlot in case of class=TRUE * tolellipse - both robust and classical ellipse are superimposed * added directory inst/bm containing benchmarks comparing covMcd and ltsReg to the corresponding functions in MASS, S-PLUS and Matlab 2005-10-17 Valentin Todorov * 0.2-9 * minor corrections in the help of covMcd * minor correction in ltsReg (false corrected to FALSE) * covMcd - fixed the limitation on the number of variables <= 50 * ltsReg - fixed the limitation on the number of variables <= 50 * added function summary.mcd which prints (additionally to the output of print.mcd) the correlation matrix (if requested), the eigenvalues of the covariance or correlation matrix and the robust distances. * added control object for the estimation options rrcov.control and used in covMcd and ltsReg 2005-09-20 Valentin Todorov * 0.2-8 * ltsReg: added formula interface * ltsReg: adde generic functions summary.lts and print.summary.lts * ltsReg: fixed a problem with reordering of the coeficients even in case without intercept 2005-04-16 Valentin Todorov * 0.2-7 * ltsReg: fixed a bug related to nsamp -> it was hard-coded = 500 in Fortran * ltsPlot: default for id.n changed - instead of 3, now it is the number of identified outliers * ltsPlot: help enhanced * covMcd, covPlot, tolellipse: tol.inv parameter changed to tol, according the change in mahalanobis() in 2.1.0 2004-12-26 Valentin Todorov * 0.2-6 * a bug in ltsReg (rsquared) fixed * fixed CRLF line endings in FORTRAN sources * fixed a problem in covMcd: in case of p=1 and cov=[0], the cov matrix was a double instead of a matrix, which resulted in errors in subsequent calls (e.g. determinant(mcd$cov) expects a matrix) * fixed a problem in ltsReg when p==1 and Intercept==FALSE - the vectors of coefficients ans$coefficients and ans$raw.coefficients were of size 2 * error handling added in ltsReg in case of scale=0 2004-09-16 Valentin Todorov * 0.2-5 * several errors in doc fixed (ltsPlot.Rd, covPlot.Rd, aircraft.Rd) 2004-09-16 Valentin Todorov * 0.2-4 * added Regression Diagnostic Plots - function ltsPlot() * ...added Normal QQ Plot of the residuals * ...added Standardized Residuals versus index plot * ...added Standardized Residuals versus fitted values plot * ...added Regression diagnostic plot * ltsReg: the responce variable Y added to the result object * covMcd: fixed a bug related to nsamp -> it was hard-coded = 500 in Fortran * covMcd: fixed a bug - in case of alpha=1 * added S3 methods plot.mcd and plot.lts * the S3 methods print.mcd and print.lts moved to separate R files * added the stars data set (Hertzsprung-Russell diagram) 2004-07-13 Valentin Todorov * 0.2-3 * improved documentation of the datasets * added datasets aircraft and delivery * added Covariance Plots - function covPlot() * ...added Distance Plot - function distplot() * ...added Distance-Distance Plot - function ddplot() * ...added Chisquare QQ-Plot - function chi2qqplot() * ...added Tolerance Ellipse Plot - function tolellipse() * added function print.lts (for ltsReg result); included in the test tlts.R * added function print.mcd (for covMcd result); included in the test tmcd.R 2004-06-26 Valentin Todorov * 0.2-2 * fixed bug in Fortran: rfltsreg.f, xrfnbreak() * Depends >= 1.8 (it was >= 1.9, because of the bug above) * Parameter, controlling whether to perform intercept adjustment at each step added to ltsReg and its default value set to FALSE rrcov/NAMESPACE0000644000176200001440000001160614443667016012643 0ustar liggesusersuseDynLib(rrcov, .registration=TRUE) importFrom(stats4, plot, summary) importFrom(methods, show) importFrom("methods", "slot", "slotNames") importFrom("methods", "is", "new") importFrom(lattice, xyplot, panel.xyplot, panel.abline, ltext) importFrom(mvtnorm, rmvnorm) importFrom("grDevices", "dev.interactive", "palette", "dev.flush", "dev.hold") importFrom("graphics", "abline", "arrows", "axis", "box", "hist", "legend", "lines", "pairs", "par", "points", "rect", "strwidth", "text", "title", "barplot") importFrom("stats", ".getXlevels", "cor", "cov", "cov.wt", "cov2cor", "IQR", "dchisq", "density", "dnorm", "ecdf", "mad", "mahalanobis", "median", "model.matrix", "model.response", "na.fail", "pchisq", "pf", "pgamma", "pnorm", "princomp", "qchisq", "qf", "qnorm", "quantile", "rnorm", "runif", "sd", "terms", "uniroot", "var", "setNames") importFrom("utils", "combn") import(robustbase, pcaPP) export(CovClassic, Cov, CovRobust, CovMcd, CovMrcd, CovMrcd, CovMest, CovOgk, CovMve, CovSest, CovSde, CovMMest, CovControlMcd, CovControlMrcd, CovControlMest, CovControlOgk, CovControlMve, CovControlSest, CovControlSde, CovControlMMest, covMest, T2.test, Wilks.test, PcaClassic, PcaHubert, PcaLocantore, PcaCov, PcaProj, PcaGrid, LdaClassic, Linda, LdaPP, QdaClassic, QdaCov, pca.scoreplot, pca.distances, myscreeplot, mtxconfusion, sqrtm, vecnorm, getEllipse ) ##S3 generics S3method(T2.test, default) S3method(T2.test, formula) S3method(Wilks.test, default) S3method(Wilks.test, formula) S3method(Wilks.test, data.frame) S3method(Wilks.test, matrix) S3method(PcaClassic, default) S3method(PcaClassic, formula) S3method(PcaHubert, default) S3method(PcaHubert, formula) S3method(PcaLocantore, default) S3method(PcaLocantore, formula) S3method(PcaCov, default) S3method(PcaCov, formula) S3method(PcaProj, default) S3method(PcaProj, formula) S3method(PcaGrid, default) S3method(PcaGrid, formula) S3method(LdaClassic, default) S3method(LdaClassic, formula) S3method(Linda, default) S3method(Linda, formula) S3method(LdaPP, default) S3method(LdaPP, formula) S3method(QdaClassic, default) S3method(QdaClassic, formula) S3method(QdaCov, default) S3method(QdaCov, formula) ## S4 generics export(isClassic, getCenter, getScale, getCov, getCorr, getData, getDistance, getEvals, getMeth, getDet, getShape, getFlag, restimate, getQuan, getLoadings, getEigenvalues, getSdev, getScores, getPrcomp, scorePlot, getRaw, isSingular ) exportClasses(Cov, CovClassic, CovRobust, CovMcd, CovMest, CovOgk, CovMve, CovSest, CovSde, CovMMest, CovControl, CovControlMcd, CovControlMrcd, CovControlMest, CovControlOgk, CovControlMve, CovControlSest, CovControlSde, CovControlMMest, SummaryCov, SummaryCovRobust, Pca, PcaClassic, PcaRobust, PcaHubert, PcaLocantore, PcaCov, PcaProj, PcaGrid, SummaryPca, Lda, LdaClassic, LdaRobust, Linda, LdaPP, PredictLda, SummaryLda, Qda, QdaClassic, QdaRobust, QdaCov, PredictQda, SummaryQda, Ulist, Uvector, Utable, Umatrix, Ufunction ) exportMethods(isClassic, getCenter, getScale, getCov, getCorr, getData, getDistance, getEvals, getMeth, getDet, getFlag, getShape, plot, show, summary, restimate, getQuan, getLoadings, getEigenvalues, getSdev, getScores, getPrcomp, predict, screeplot, biplot, scorePlot, getRaw, isSingular, names ) rrcov/inst/0000755000176200001440000000000014660616376012401 5ustar liggesusersrrcov/inst/examples/0000755000176200001440000000000014443667016014213 5ustar liggesusersrrcov/inst/examples/ex-pca-skew.R0000644000176200001440000000356114443667016016467 0ustar liggesusers## PCA for skewed data ## ## The present robust PCA methods like ROBPCA work best if the ## non-outlying data have an approximately symmetric distribution. ## When the original variables are skewed, too many points tend ## to be flagged as outlying. Hubert et al. (2009) developed a ## robust method which is also suitable for skewed data. Also, the ## outlier map is modified to present adequately the PCA outliers. ## ## In PcaHubert() the version for skewed data is invoked using the ## argument skew=TRUE. Example with the computer hardware data ## follows library(rrcov) data(machines) ## The data set contains 209 observations, and 8 variables. ## First we robustly center and scale the variables by subtracting ## the median and dividing by the median absolute deviation (MAD). ## Of course, this could be done also later, when calling the PCA ## function, by setting the arguments 'center' and 'sacle' to TRUE. data <- robustbase::doScale(machines, center=median, scale=mad) X <- data$x ## Each of the variables is significantly skewed as measured by ## its medcouple. The corresponding p-values can be computed using ## the formulas in using the formulas in Brys et al. (2004). These ## show the variables are all significantly asymmetric. data.frame(MC=round(apply(X, 2, mc),2)) ## Plot a pairwise scaterplot matrix mcd <- CovMcd(X[,1:6]) plot(mcd, which="pairs") ## Remove the rownames (too long) rownames(X) <- NULL ## Start with robust PCA based on MCD (P << n) (pca1 <- PcaHubert(X, k=3)) plot(pca1, main="ROBPCA-MCD", off=0.03) ## PCA with the projection algoritm of Hubert (pca2 <- PcaHubert(X, k=3, mcd=FALSE)) plot(pca2, main="ROBPCA-SD", off=0.03) ## PCA with the adjusted for skewness algorithm of Hubert et al (2009) (pca3 <- PcaHubert(X, k=3, mcd=FALSE, skew=TRUE)) plot(pca3, main="ROBPCA-AO", off=0.03) rrcov/inst/examples/bm/0000755000176200001440000000000014443667016014611 5ustar liggesusersrrcov/inst/examples/bm/bm_mcd.m0000644000176200001440000000435614443667016016220 0ustar liggesusers%%%%% bm_mcd %%%%% % Benchmark for LIBRA::mcdcov() on several n and p. % % V.Todorov: 16.08.2004 % % For each n and p (specified by the arrays and ) a data set % is generated (see the function gendata() for description of the model) % and MCD is computed by calling mcdcov(). All defaults are accepted. % % Each test (for given n and p) is performed several times (specified % by the parameter ) and the result is averaged. % % Required input argument: % nrep : Number of times the tests are executed % function bm_mcd(nrep) if(nrep <= 0) nrep = 1; end disp('*** Benchmark for LIBRA: mcdcov() ***') disp(sprintf('\nThe results are averaged on nrep = %d runs.\n', nrep)) disp(' N P TIME (sec.)') eps = 0.4; b = 10; an = [ 100 500 1000 10000 50000]; ap = [2 5 10 20 30]; ttime = 0; for(i = 1:length(an)) n = an(i); for(j = 1:length(ap)) p = ap(j); if(5*p <= n) x = gendata(n, p, eps, b); tic; for(k = 1:nrep) mcdcov(x, 'plots', 0); end tt = toc; ttime = ttime + tt; tt=tt/nrep; disp(sprintf('%8d %4d %10.2f', n, p, tt)) end end end disp(sprintf('\nTotal elapsed time (nrep=%d): %8.0f sec.\n', nrep, ttime)) %-------------------------------------------------- % gendata() % Generates a location contaminated multivariate % normal sample of n observations in p dimensions % (1-eps)*Np(0,Ip) + eps*Np(m,Ip) % where % m = (b,b,...,b) % Defaults: eps=0 and b=10 % function result = gendata(n, p, eps, b) if(eps < 0 | eps >= 0.5) error('eps must be in [0,0.5)') end mu = zeros(p,1); sigma = diag(ones(p,1)); x = mvnrnd(mu, sigma, n); % generate now the outliers if(eps > 0) mubad = b + mu; nbad = floor(eps * n); xind = randperm(n); xind = sort(xind(1:nbad)); xbad = mvnrnd(mubad, sigma, nbad); for(i = 1:nbad) x(xind(i),:) = xbad(i,:); end end result = x; rrcov/inst/examples/bm/bmmcd.S0000644000176200001440000000636114443667016016025 0ustar liggesusers##### bmmcd ##### # Benchmark for rrcov::covMcd() and MASS::cov.mcd() on several n and p. # # V.Todorov: 16.08.2004 # # For each n and p (specified by the arrays and ) a data set # is generated (see the function gendata() for description of the model) # and MCD is computed by calling covMcd(). All defaults are accepted # # Each test (for given n and p) is performed several times (specified # by the parameter ) and the result is averaged. # # Input argument: # nrep: Number of times the tests are executed (defaults to 3) # eps: contamination proportion - see function gendata() (defaults to 0.4) # method: "rrcov" or "MASS" # bmmcd <- function(nrep=1, eps=0.40, method=c("rrcov", "MASS", "S", "Smcd", "mrcd", "detmcd")){ method <- match.arg(method) if(method == "rrcov"){ library(rrcov) } if(method == "S" || method == "Smcd"){ library(Robust) } library(MASS) ap <- c(2, 5, 10, 20, 30) an <- c(100, 500, 1000, 10000, 50000) set.seed(0) btime <- proc.time() cat("\n*** Benchmark for R/S MCD estimators ***") cat("\nImplementation=",method) cat("\nThe results are averaged on nrep = ",nrep," runs.\n") tmp <- sys.call() cat("\nCall: ", deparse(substitute(tmp)),"\n") cat(" n p Time\n") cat("=====================\n") for(i in 1:length(an)) { for(j in 1:length(ap)) { n <- as.integer(an[i]) p <- as.integer(ap[j]) if(5*p <= n){ xx <- gendataMCD(n, p, eps) X <- as.data.frame(xx$X) ptm <- proc.time() for(k in 1:nrep){ if(method == "MASS") cov.mcd(X) else if(method == "rrcov") covMcd(X) else if(method == "S") covRob(X) else if(method == "Smcd") covRob(X,estim="mcd") else if(method == "detmcd") CovMcd(X, nsamp="deterministic") else if(method == "mrcd") CovMrcd(X) else stop("No method specified") } xtime <- proc.time() - ptm xtime <- xtime[1]/nrep # cat(sprintf("%6d %3d %10.2f\n", n, p, xtime)) cat(format(n), format(p), format(xtime, nsmall=2),"\n") } } } tottime <- proc.time() - btime cat("=====================\n") cat("Total time: ", tottime[1], "\n") } #### gendata() #### # Generates a location contaminated multivariate # normal sample of n observations in p dimensions # (1-eps)*Np(0,Ip) + eps*Np(m,Ip) # where # m = (b,b,...,b) # Defaults: eps=0 and b=10 # gendataMCD <- function(n,p,eps=0,b=10){ if(missing(n) || missing(p)) stop("Please specify (n,p)") if(eps < 0 || eps >= 0.5) stop(message="eps must be in [0,0.5)") X <- mvrnorm(n,rep(0,p),diag(1,nrow=p,ncol=p)) nbad <- as.integer(eps * n) if(nbad > 0){ Xbad <- mvrnorm(nbad,rep(b,p),diag(1,nrow=p,ncol=p)) xind <- sample(n,nbad) X[xind,] <- Xbad } list(X=X, xind=xind) } rrcov/inst/examples/bm/bm_lts.m0000644000176200001440000000507314443667016016254 0ustar liggesusers%%%%% bm_lts %%%%% % Benchmark for LIBRA::ltsreg() on several n and p. % % V.Todorov: 16.08.2004 % % For each n and p (specified by the arrays and ) a data set % is generated (see the function gendata() for description of the model) % and LTS is computed by calling ltsregress(). All defaults are accepted, % except the trimming proportion alpha - it is set to 0,5 % % Each test (for given n and p) is performed several times (specified % by the parameter ) and the result is averaged. % % Required input argument: % nrep : Number of times the tests are executed % function bm_lts(nrep) if(nrep <= 0) nrep = 1; end disp('*** Benchmark for LIBRA: ltsreg() ***') disp(sprintf('\nThe results are averaged on nrep = %d runs.\n', nrep)) disp(' N P TIME (sec.)') eps = 0.4; an = [ 100 500 1000 10000 50000]; ap = [2 3 5 10]; ttime = 0; for(i = 1:length(an)) n = an(i); for(j = 1:length(ap)) p = ap(j); [x, y] = gendata(n, p, eps); tic; for(k = 1:nrep) ltsregres(x, y, 'alpha', 0.50, 'plots', 0); end tt=toc; ttime = ttime + tt; tt=tt/nrep; disp(sprintf('%8d %4d %10.2f', n, p, tt)) end end disp(sprintf('\nTotal elapsed time (nrep=%d): %8.0f sec.\n', nrep, ttime)) %-------------------------------------------------- % gendata() % Generates a data set with bad leverage points (outliers in x-space), % n observations in p dimensions acording to the model: % % yi = Xi1 + Xi2 + ... + ei % % where ei - N(0,1) is the error term, Xi,j for j=1...p-1 - N(0,100) are % the non-trivial explanatory variables and Xip is the intercept term. % The outliers in the x-space are introduced by replacing eps percent of % Xi1 by values distributed as N(100,100). % % Defaults: eps=0 % function [x, y] = gendata(n, p, eps); if(eps < 0 | eps >= 0.5) error('eps must be in [0,0.5)') end p = p-1; x = randn(n,p); y = zeros(n,1); for(i = 1:n) y(i) = sum(x(i,:)) + 1 + rand(1); end if(eps > 0) nbad = floor(eps * n); xind = randperm(n); xind = sort(xind(1:nbad)); % generate nbad observations distributed as % N(m, s^2) = N(100,100) => = m + s*rand(nbad) xbad = 100 + 10*randn(nbad,1); for(i = 1:nbad) x(xind(i),1) = xbad(i,1); end end result = [x, y]; rrcov/inst/examples/bm/bmlts.S0000644000176200001440000000612314443667016016060 0ustar liggesusers##### bm_lts ##### # Benchmark for rrcov::ltsReg() and MASS::ltsreg() on several n and p. # # V.Todorov: 16.08.2004 # # For each n and p (specified by the arrays and ) a data set # is generated (see the function gendata() for description of the model) # and LTS is computed by calling ltsReg(). All defaults are accepted. # # Each test (for given n and p) is performed several times (specified # by the parameter ) and the result is averaged. # # Input argument: # nrep: Number of times the tests are executed (defaults to 3) # eps: contamination proportion - see function gendata() (defaults to 0.4) # method: "rrcov" or "MASS" # bmlts <- function(nrep=1, eps=0.4, method=c("rrcov","MASS", "S")){ method <- match.arg(method) if(method == "rrcov") library(rrcov) library(MASS) ap <- c(2, 3, 5, 10) an <- c(100, 500, 1000, 10000, 50000) set.seed(0) btime <- proc.time() cat("*** Benchmark for R/S: LTS ***") cat("\nThe results are averaged on nrep = ", nrep, "\n") tmp <- sys.call() cat("\nCall: ", deparse(substitute(tmp)),"\n") cat(" n p Time\n") cat("=====================\n") for(i in 1:length(an)) { for(j in 1:length(ap)) { n <- as.integer(an[i]) p <- as.integer(ap[j]) if(5*p <= n){ a <- gendataLTS(n, p, eps) X <- a$x Y <- a$y # set mcd=FALSE - we want to time only the LTS algorithm ptm <- proc.time() for(k in 1:nrep){ if(method == "MASS") ltsreg(X,Y) else if(method == "rrcov") ltsReg(X, Y, mcd = FALSE) else ltsreg(X, Y, mcd = FALSE) } xtime <- proc.time() - ptm xtime <- xtime[1]/nrep # cat(sprintf("%6d %3d %10.2f\n", n, p, xtime)) cat(n, p, format(xtime, nsmall=2), "\n") } } } tottime <- proc.time() - btime cat("=====================\n") cat("Total time: ", tottime[1], "\n") } #### gendata() #### # Generates a data set with bad leverage points (outliers in x-space) # n observations in p dimensions acording to the model: # yi = Xi1+Xi2+...+ei # where ei - N(0,1) is the error term, Xi,j for j=1...p-1 - N(0,100) are # the non-trivial explanatory variables and xip is the intercept term. # The outliers in the x-space are introduced by replacing eps. percent of # xi1 by values distributed as N(100,100). # # Defaults: eps=0 # gendataLTS <- function(n, p, eps=0){ if(eps < 0 || eps >= 0.5) stop(message="eps must be in [0,0.5)") p <- p-1 x <- matrix(data=rnorm(n*p,0,100), nrow=n, ncol=p) y <-rowSums(x) + 1 + rnorm(n, 0, 1) nbad <- as.integer(eps * n) xind <- sort(sample(n,nbad)) xbad <- rnorm(nbad,100,100) for(i in 1:nbad){ x[xind[i],1] <- xbad[i] } list(x=x, y=y, xind=xind) } rrcov/inst/examples/test-ellipse.R0000644000176200001440000000311214443667016016745 0ustar liggesuserslibrary(rrcov) data(pottery) x <- pottery[,c("MG", "CA")] grp <- pottery$origin ## ## Compute robust location and covariance matrix and ## plot the tolerance ellipses library(rrcov) (mcd <- CovMcd(x)) col <- c(3,4) gcol <- ifelse(grp == "Attic", col[1], col[2]) gpch <- ifelse(grp == "Attic", 16, 1) plot(mcd, which="tolEllipsePlot", class=TRUE, col=gcol, pch=gpch) ## ## Perform classical LDA and plot the data, 0.975 tolerance ellipses ## and LDA separation line ## x <- pottery[,c("MG", "CA")] grp <- pottery$origin lda <- LdaClassic(x, grp) lda ## Calculate the ellipses using the package 'ellipse' require(ellipse) e1 <- ellipse(x=lda@cov, centre=lda@center[1,], level=0.975) e2 <- ellipse(x=lda@cov, centre=lda@center[2,], level=0.975) ## Calculate the ellipses using the package 'rrcov' e3 <- getEllipse(loc=lda@center[1,], cov=lda@cov) e4 <- getEllipse(loc=lda@center[2,], cov=lda@cov) ## Calculate the ellipses using the package 'cluster' require(cluster) e5 <- ellipsoidPoints(lda@cov, qchisq(0.975, 2), lda@center[1,]) e6 <- ellipsoidPoints(lda@cov, qchisq(0.975, 2), lda@center[2,]) plot(CA~MG, data=pottery, col=gcol, pch=gpch, xlim=c(min(MG,e1[,1], e2[,1]), max(MG,e1[,1], e2[,1])), ylim=c(min(CA,e1[,2], e2[,2]), max(CA,e1[,2], e2[,2]))) ab <- lda@ldf[1,] - lda@ldf[2,] cc <- lda@ldfconst[1] - lda@ldfconst[2] abline(a=-cc/ab[2], b=-ab[1]/ab[2], col=2, lwd=2) lines(e1, type="l", col=1) lines(e2, type="l", col=1) lines(e3, type="l", col=2) lines(e4, type="l", col=2) lines(e5, type="l", col=3) lines(e6, type="l", col=3) rrcov/inst/examples/ex-pca-explained-variance.R0000644000176200001440000000430214443667016021247 0ustar liggesusers## Showing correctly the percentage explained variance in PCA ## ## If not all PCA were extracted, which is a great advantage in ## the case in high dimensional data, the PCA methods in rrcov ## could not show correctly the percentage of variance explained, ## Because the total variance explained, i.e. the sum of _all_ ## eigenvalues was not known. Now this is fixed, differently in ## the different methods. ## In PcaClassic, PcaCov and PcaLocantore, this is nt a problem ## because always all eigenvalues are computed. ## ## In PcaHubert there is a preliminary step in which the classical ## PCA are computed on the data set without outliers identified by ## the Stahel-Donoho Outlyingness. All eigenvalues are calculated ## and used for selecting the number of components and for ## presenting the percentage of explaned variance. ## ## In the pure projection purcuit methods PcaGrid() and PcaProj() ## this cannot be done and a note is written that the proportion ## of variance and cumulative proportion are not shown because the ## chosen number of components is smaller than the rank of the data ## matrix. library(rrcov) data(hbk) ## PCA with all variables (pca1 <- PcaHubert(hbk, k=ncol(hbk), trace=TRUE, mcd=TRUE, skew=FALSE)) summary(pca1) ## PCA with number of components selected by the algorithm (pca2 <- PcaHubert(hbk, trace=TRUE, mcd=TRUE, skew=FALSE)) summary(pca2) ## PCA with number of components selected by the user (pca3 <- PcaHubert(hbk, k=2, trace=TRUE, mcd=TRUE, skew=FALSE)) summary(pca3) ## PCA by the projection algorithm with number of components selected by the user. ## Here we cannot show the proportion of variance and the cumulative proportion (pca4 <- PcaGrid(hbk, k=2, trace=TRUE)) summary(pca4) ## The other PCA methods available in rrcov summary(PcaClassic(hbk, k=2)) summary(PcaCov(hbk, k=2)) summary(PcaLocantore(hbk, k=2)) summary(PcaProj(hbk, k=2)) ## Example with the newly added to 'rrcov' data set fruit ======== data(fruit) # Remove the first variable, the grouping one (pca <- PcaHubert(fruit[,-1], trace=TRUE)) summary(pca) screeplot(pca) (pca <- PcaHubert(fruit[,-1], k=4) summapry(pca) plot(pca) rrcov/inst/doc/0000755000176200001440000000000014660616376013146 5ustar liggesusersrrcov/inst/doc/rrcov.pdf0000644000176200001440000146360414660616377015013 0ustar liggesusers%PDF-1.5 %¿÷¢þ 1 0 obj << /Type /ObjStm /Length 4864 /Filter /FlateDecode /N 91 /First 774 >> stream xœÝ\Ys·–~Ÿ_Ño7·n¹±o©Œ«¼&N䨑ì8É-×E6¥N(¶B6í$÷·Ïw4wʤLÙ™)¹^ÐÀÁY? ) ^¨B_è"X_˜B¨ [ãeá É…)|!½E(”ò¼xÃKÔ…&x¢ux±ÐÎà¾.Œ”hÔÆZ][/PÏ–ã?ôe5G ëЉä…ãÎRθPHYxFЄ—NR „X…ú¶ðΣž+|Ð ´ÐŠ ./‚Æ…E0^x%8å@|<èT ‰sí …ÁrÉñˆæÊb\ Š®† €|„UN-[ K´løìHôNвÃi†§Ð»CË΀-;‡ñ:Ò.‘‚y¡Ip"ÁR¨ˆðšNв·7ä"Äê—“f0ëWàõ×/OН/›i;íOêë>©ä²¨s6;ÿµê·Å8U·£ªc¼ÎL·½¬Ty ‘Ã%f.+œIƒê”&ÖYahnIùÎ3ìâ^ÇÐmïp¨põ½ßYÔ£f6nÉ»²ïjh_gºð±€[¡RÂÏÄ2äk§r©s=K%»²»ßÕKÍ*Û•6—©­riºÒ§î(]§ÒðÔ˜œ¯CîGçû"—2—©¾±:—©_r¦±Ìã0yœÂ›|ú7&÷cÒs«r½n|&µGî:±MåÒäqçþlfcu¤Ìuó3š|Û¹¾ä ;Ç77-‰Gdù䦸º·5ã¶£41¹ÐçÕ î=lþÀktÇSÆp J°õ-õ0©Hø©öi5mf“>ú¤ŸüÑ~}Ö’¡!¤foŽp%²Ÿ4ý³ªEÛìåã§ ºúƒœýýûËôwä?ìM«ø:{ôäÇ'üëäùisÕ yïa3 »q¿Ôã‹"3¡c2m]ö&Pb׫dÄð¡ˆk©ÖI/W¢(K6ÝÆ®‰ÑÑ‘ú}SÚKb`P>rc÷Ÿ*ñ‹ÀÁÚ±^§ûóQQ<î"ä"¨{iñ‰!––Â9\FˆŠÕ£ÎX €ýxØFjfóÏ Ô[ :Øv*Ñ‘Ò:’Dת»â¢sd¬—ŸÓ}²Âº{†{D0•ñ@Ûo7öíÙÓ/ã÷N«‹Ù,_’YX—tz]f~MbÒì+1íd<2+8AK¾Äø£Ã«…XÒ9ý$B•Oâˆ×xF%5¹ï!s[©D\3Ä ‘Ôƒ§±ð&`ÔÁ›Ð3¯dщâ|€wïÐ5êRéTAlä6·ýü ±ªD^ ‘v%Àïü~ ]ËD01"²)?§ûŠð=© Áé| ’}Òÿ·?ÃNÜ™ǃiŸü&Iõú›ª¾¸ì.¡Úä¿`ØCöˆ=fOØSö5û†=cß²ïØ {ξg/ØKö;egì{Í~doØOìgö ë±Þ ®&Õ´ž²Þ°á´7°sÖgýfÔŒñÿÕU XÅb—¬ºô¦—¬ÇbȆô¯fñ߻РGl—Î.Ø%Ô¼¬Æ¬f¿²ß؈]±1u³ñìêýÔcÖ°¦×Ÿµkpÿš]StUÃ6Mb ‰ÆNeÝ Øïì÷Y5%ø‹“¦­ç£øFw‘^ŠWét¦lZ]Õi<ÓêhšÖ°éˆFвörRU¬}ß°›Íyñ޽g°?Ù_ì¯jÒ±‘_!Ü“Äô§£ÞÍ¢ãx˜Þ=Áø¾"DÙ¼MÏŸÖ£ NQç0F·¾ï]U79ºg˜ƒÔýã  Dt÷¼žNáö¢ŠÈˆµÕÕÍ+lÉ÷m8ÕŸŸ=}øÃÏK}­EÁÀ‹5º%æ:‹H^w/jCò¦žÛT*q£EдÙÜÆÒðÖ>‡Ê1²ûó94b¦êåZ›í4õ!ÔóÕw_Ï’ê™èEt…2ÛÆlc8Ö€µÚà@ØÝ°z¾jõ|ÍêÉæ¿î‘ž@4W烌ýŒÕ¸õ †Nf¾0éΔ‡ÙdÉ^¯zýI“í3Ùb2›ÎX–ÍdÝ DÐÛ ‚§g^™Hóš5ÈukØ¡¡ûš¢Üž¦ðÝÉ«o_½FGg½ñt+¼€ÞŽŒ§õâÆÂ,€£6ìBnØ…ßÓ.”R[tbÛŸ³Ö­ÝMpÀP:&ÛKÒ'«SpÀÀïŸÚÈ —êRlh&Ùÿ’fÆË•xômŒ?/ç‘§×……w+>Uv°/ø†BPûkZ¤Öµh§p÷Õ#ÃV=b?åa'6”êÙϯ޼z±¤½©¿eÛùÿ¹*ïl¨’^W¥½§Æ®;®è²¢ÊhâAw'WäcIΩ;øÚÙâZñUµs`»ãIÎÊ'ôI2Â3å Ø¥ù†Y`—Þ!ŽHÖaIôÆè‰Þf…qaùüœîw×q4ùZ‡éQËíñ]ðF¯î«T—ßšÐJÏ>µ6Uû&¨µZ½½`Õ0"¨!§æ8©ÃGÀ>ñiôáPg¶¸q|ÝÀ‹wèFnC7zÝwZIJ%ÞƒÂï¶EÈåC¶Ï×Ùb3T“œyˆä=Š"]àmJäÜûéç_  ¥“Žæ¨¼”¤ãÙhDu¿‘”žèÓ˜½–¡Û8YŠ‚ÁK˜Øx]zèþÛ%ë<©Ç¿uÇôÉF.%'}rî*§ªr&)'‚r¢Á§ŒÍj–%'³?&Ë’R*.ÏŸJ©ÌG‘Sn9#%sâ)'•r¦)u99ƒ£rª. [¥×U—ŸKEÎWå$\z=#ç ²ÏÏ —y¢Óë:'ór.¯Ká¥"µbR+&§ár–.縂ÌeN”…y†lI öXR˜/NÜ.±õô›“¯ßüÒØÙ¨7nG3z3…[‡ EšâÃn)ñdͪû1Ü%+xLUð˜'X}où¯Ë2ð•Ü=é¨ZÏIij%[˹ˆCÏS„€^Eç¾äê‡ðèÉ›7Ñ5·Ñà ¯x`n:¬äªéi€rnABnÝÿ~@=öÅC°¥ú`¿©œ'¯OxLhþy3nVKµ©–Rl¨å¾“O]TúŸç³Å½cû·øq}óÿŠcÁÃuã°4\‡E˜¼3Ýœœršö뺭GƒŠõZ˜Òù¤×ÿ­j#¶Éç û¬ÃªA3‚®-’V¿Ïz£•ùî» ÅÑj²‰¶FÕtzäºͦîœË8Y¦ýfRÝ„ÊM;Ÿ°žsJO Õ÷×|‚_÷ ;­ò£gÙ·GdyQj‘ U ív"2`0DnÌAJ,­Ù•RÑ^WÚàÄd.Åü¼Ž–—ójZ^LsɹºÄO·m, äeÏ1Á]1:è2¤É^d´>1þFßž8(^©¬ÙAœr¡ä”Þ`.„‘Àç ÒqUj ìÏJf˜Q`¶›%¸/ãfžÀK{TÊü&eFèR‰]”I°G‘»È¤Ie£L mn:yí;/}ç•o»3gþñæao™ïŠ•˜·²´²¤ÜÇÑ¥¼mÒjlQȤ.JH§£¬³¿e0Î5å_JÚ¤ *±ï9›¾+Ê—%ìŽ4¡D©Ý§"M“×Ò»HS²4Ü/HÓ¼4Y¾Ç¥m› ¤—´[hmÖ—X¼£Mr‡h||;œ6‰ðfømÊÁžï‚¶¼Ãf-D€3agü¡TKmZئzi Gœ4*ïm²~‹ÇòÀ·IݵT¥\X¬ÖàݘÅVÒŒ€¢ï/@it¹†\.ATÚf-)¤ø¼¤u°.‘ÖºOEL2¸]Ž.ã&#¾h{³1<©áïŽ 8§M€©ZÈq¶÷®¸mÂ@jŽï‚êhØÑ&šLœŒÁËÿ=ˆ“_ zGœæ´ú.ˆÛÕáü†Ô.k²6ŽÂ}•0)*•»óiÄÍ´e°¤‚€0O;léåg¦MÐ,˜Nœ‹Ã,ú âÄÀrV°×§ÏæÒžþxë‹Ë¶½þ’±÷ïß—Ó¶×ÖÓ¶þ­lgïëj\öúe¯e“é„ý3ÆÝ#;9‹™,%5d%}¡e(iõþŽ9«°mŠØ:0¯i˜¨Ñ®g ÿ¬€ýÐ.ßÏJšh¡U’9q>çê.ˆÛæ •¤ÌÏ®¸&`²×”KÄHg|Lî—ôÓg%N"”i'Ä9pЋ» nN–žB›ßé 1Ÿ€Í*8jެ ¶ä°i¥üqÍápâ@ŒœëˆS’#Û» Îl m(Éø]Ä +J#B¡x"F"ÄѶÌ22¢>Æ›-™Å¼^yà~«Ìâ|AçÇ—ž¾yÓ-'=®®jÁï½8տϪå].ݾ®›v¹˜õ­ÙÜs-ÇØbß%Æû³qyÞÙ›kÑþ‘•MÑÖí\x\^¤Ôq34}¿ÈW6B`óŸõ+ Ž´Ð˜öö¥Æa×›¼…/­1¾ßk¿Þ=ØTÞ±ç·ìØ3{­nV‰#.) ëñ£Óß—§÷®' }sU6“ vÝëÿÍþïÓáûÁջĩђ–²s€N§zÚ=²Ÿ¥ŸZÌ÷³…ÿºî“j3¿pEèNC!ò¼ý”>ÛÌ8¥¯)}wîé]:?RÝ#HE¸j<#Êj0cÿ4ãæ²Á ¯›I;e/Fƒºš²‡/ŸŸ<)¯ÃÃùìRš~Á3µÈÓÓÜÝÈ}SγA^z/¼¾ŽñSO;ÉÈÜqÇtƒ._÷{/_N=Í\é6eÓÒ‰æ¢ä0z•öúÈ"¹ü«þh6moaŠÒ3ù„¸hsŸÁÎÐ?W:±·-~f¼1£¦?¬oÁAù€KD#”ds¶qN&¬–4%k®."ÝÓëªÏ^??a²”ìÙx8A`ŸÌúílRÈ8| ´Ä˃‰ gA™¹ÓÀ~áÿÔH²§\SX#hú‡YÖžØõÎ4uî¾?yòË‹oÛ¦7ÝMÛu¼ÜÞn}»Žßw™Õ›>­ï,‰—stºoæûW­¡ÌÒêFrÀ9úq‹fcóêN~ì‹j¸»ùs„Öͳm+þH+ƒß¤,ˆãdma±„ŽÉ w¹³‘d+£½†¾î»ãi+€ÑêøãXõÚ·`|%}‰n%oЋõY¥0Ž÷ö±wü…Û2ÚÄ5>:­Àtûî¸Ù“ÞÞ䢙]ʶ¾˜ÔÓHð éOÙ¤9?¯ÇÓÿÀæªIãCû-éc<°ÀýBé¦ý$GVú;K‹âô«2ÖEj= j*‡ÑÇ#šÜÞ”"[]lUPÚ–zßuÐÏ;„n2l¢¸ŒÞÇå|• {a¯ïi^þ) iu¯ßŒFU|RVíåy}NÅ_eÿ’½««÷ _Já¿F5”[,L1‹§U(m•¢Ä?²+!×÷+ͧÍ0Éûà¬ææÓXçⲆ±˜#ù"5ÒöÇŸÆ‹îÎEYŠøST ›~ÔÊÊ’~[ä“ÙפßÜ"é+ã2ƒ.;Ígè×h>ô1ãät+×{“¶îª¤ó︒5W·P€ÿ¸ØÄ¡òR/e@àúä1}Ü]Žbžò õ ¿”òð¸þÄ~úŠHkèÇí@¶¿]‚hO;35ì€ï»ü‚ðpÄèq=V“jLi÷Ç_‘kj955¯x›ÖèC“å<(Vñ€>È¿ÊPäi O±@ŽÇ(£B±ôãG¢ ߟªÈ ôi}Nߊå¯ËÔ-'` ¡ãGdÆQ›ÞÚØÿ€â·±endstream endobj 93 0 obj << /Subtype /XML /Type /Metadata /Length 1549 >> stream GPL Ghostscript 10.02.1 robustness, multivariate analysis, MCD, R, statistical design patterns 2024-08-19T12:22:54+02:00 2024-08-19T12:22:54+02:00 LaTeX with hyperref Object Oriented Framework for Robust Multivariate AnalysisValentin Todorov, Peter Filzmoser endstream endobj 94 0 obj << /Type /ObjStm /Length 3062 /Filter /FlateDecode /N 85 /First 783 >> stream xœÍ[Ýnܺ¾ïSðJ“3$‡‚==M[à´ œsqÚ"޽)‚vaoŠÓ·ï EJ”D­wuœ G?+Qß|óO2É+£RP>©DÊ&T)*oI¥¤‚GeQÑz>ZþÅò”µŽÿ1ü#Ç'ü罜ðcóA ò0)p<˜5QA€Ä'IAŒüŒ5 òÖ*DÏÏXPè„Eå È3N9¹ã•sQ¾”‹<˜åA½á+k.ä;Iyçùå‰ÿ±`Y,à·ø/ÿnUpNNœ $xù3!‰œ¿Ä˜ù{„$ÏDEÞÊëIQ$â*Š2 Z>qü0‚¢Ä·-K¸ä§"8f½ŠNÄ ¢÷ŒIE~0ªÈg|¬þŽu¬ù-4¡ŒÌ'—ä'V‰(Äò )¹ãY ¬&¡Å Å2¬uQTÄj´"¦qrí¨D¤õY'¢/LB Ï7ùZtÈ\%Q§œåw…bDÅ¢2ò«°ƒŒ'4a$d¾‰Ÿ‘ÑQî w.ò!,V##‰\ò>$Á‚0jä]!ä‘kІ$\FŸ„gb:mæ.Êx‚£|“ij.Hx42 I¢~KA(Q¦R4D™K6t+êv!„ß¼z¥.~÷åv¯¼ºxóéþa/ÎaÔ¥ºøéŠ/Ä:òÕÏÿûÏN]üíËþó§Û݃zý:¿ú㎟ù§òÃ3¿üýì; i#¾ýòù³z¯.þºûu/Þ–z{u¿ãÏ¥òÎÏŸöŸwêÕÇÝÇÆ¸dLØCŽÿ€Ïù^sÏGî‡Tîï^Wƒ¿u#öÊ9¢„ÄO*¢"il%5åŒVܾ÷íýî¿#Csì‚qŒ4ÈÂb˜ÀQ…/‡¿*—d qzFžyåšpâ¡•_Îó¾¼'c…òŽÆ åYû¦à£á|ÿÃë…&­ªeŽ5;ìR—iNuøðü-Çßt×KÕ¸iq>†ƒC„1,pH°î´OÔUM¹Âdez×Gèf8MŽVí„©‡°ÚNH3Ú¢³ÌeÕeÕwõ“GQrDО‡Qöp´ÎíC*Ž*ôe@X’A„\uäÉa{m„9uÄ5xÀ{æç„žØ˜˜ ¼ž\ƒ–ôn†l°.ŒöüÞ"¬HÐFÐY\~,¼CÏ‘jÀ( †j98\O\gþm1Ý4™ô7ž"yÚ”RÒ üZrßJn±•ܺ™ä£Jçj{Š@×El~kŒn+º¶ÏOþ¾ö DD”p.ë©rŸ]ëJ©QçÍÜ­z äw°a¡JÐF®v|;¹d~¾1¥ú푽6Ö,˜Ëqû3×/NFÃJKf1Ì™“4Á:ÆSŸÙâ2½:âTž3¿‹ÕùÉE*OÙ®‹ìÕz>–±ŽáÓ÷B†0“ßGÔh×–Êß«E–ò{œtRï‹ËJàÃô;È÷>LþTu˜ý§ú`Nkùi.¿#Ó²–fðü½ÊÅãSíÌù9¦À˜l‚&{S·V)i)T¾©©¦–ÑÞJMÚÆ—±³Fö#øÛŒUÎLJÎ&î(VeŠ…CÚnYÕ–NmßÓÄœ¶ÔZÕøGÉ3õ dÖ¿õl&Íåå¬âÊ-”×nÔ· M>5æ«>œ{™úüªü6¶uR>>R/xUbT3öfÉ'½bZé*˜¹®’Ñ¡íD6´Ó-6Ca ÛK°¬­.´v«ã˜×µ‚Xœ¡)8ç}˪ê*§œ`f¥ö2 á, u 4cæ¾$‡ÚŽAlQôŒI¨é{fTÞ¥4%œŽÓ…ù´E€ [DvQjÚ-IĤFw+îUûžÑ¤%t—SL¿1õú•i1á<-€Cé…QI%’¦%íŽ÷nƒ”^®ÞK\I‡»¾;ÌYŸ4ºu ¦>‹Å9ºeeËÑ"å-b,…¡1ü´HGµð.Ì;d’Žm _ä‰åéNYÅ‚«:(<ޝêPBTÖ,l­£yïBÔ¬£þtwŠ ‹÷Å&…¤)¤Wo¥3zum{28Éþ¸Üž½Ù®Û0åîNb=sÙµŠË4x`nem¿Þ¥Ã¡|Cò^ÁyŽô´”îøôÔN0Ï[WÎ5Û2¿¤'€YzZÎÌR7Œ»¶ôSèíV¾¶!¥†Þ–ÚA¸‰Äl:Õ5Íœ”ȼŸW$Á¡vq‚aQ=B·^|fc†%m»·õ÷µ”‹D“¢6iØÀ÷¥´½*Ì-Ñ8§òX/м7r³›ÿöô>Êÿ»ÛÛ»ýƒ¸lVVè†c(G*ÇXŽƒ3Ûb¶0'«rÃq°„÷âj·{¦éA_xûËîæÓÕw¿ò÷ämŸ¼†¨¢³ÜX7á£xÏåîáîËýõîA Ò?üºÿã»ýÕ~—ûòoîD ~œw½»~·m^¼ýñ «ATöž­+^o¯þµ[NYü6õ¸ÀXõ‚Ko_è½;ûé'ýŒsQO¨¸Ÿâáã:Óf _Êm uj½zCÒîJß2vDíŠQ ÒͬÍ(iehå¡@óÙ(ϩ֫óYø®jš6=»ÊõJ6Zéîîov÷ÅlM6î|a‡‹ÊjÑ£&`CbÉ5´…ÿŸÔşŶ¯ó†4±Ý\^åæë(›töˆw_>ì³ñþôéößÕ³Ó>;48ÐÛ E΋éh—²:‡ø1ÞU \§¨ž’Jõ4©:Ùp)kå1Ö Y$¯çŒ'™vàãh€¸¦­Z'ã6h`›Ð$»:€K] …ÁéDŽÉã2‡;£ŽžŽ¬–­ #¸$àà›ãhipË€0pËËYÁYÇM)IG™ÓÒDgµîÓÁ9aÊáÎۨɻ̜c¹Ý`—KÕÚGxYpÑh¡ eæeOêh¬²'êŒØÖØ,Ö”ç1+ q A‰_8‰eîeÁ¡LqÁ¹¤“}l€kl²"—LÚ".p6 ^VHu`›@Ãî^ö»içu‡“Á¡ Ú³OŽàÐhŒé4p½\,1k£äÝÓxÅð5Ug"¶ã•h±V© ÕïE6¿ºgi#Å5ÙëâRö˜ÅÓ3YÏþ|¢¶ìŸÈžë¢÷f 'x—ˆu}Ödq:8DŽ»y‡d,ë–¾8y1lÆcŽmÞ¦ÌX qŠÇÎs²xYl5Û¤Q¶‰¢,b† gͧC³³ßŽØ¤¹Jß!‹v~¡QŽo²óRÌ‹cqÕ¨¢Àåç‹‚+*µ‘³IÞA,{)0'7:oQw:6©G…·Šs˜le=?´^š†Ím»Þä#X•²iÔ§[¡å1ñ¬…ÉéØ\ä’*ï$Àyãeâÿ4pý&¾>&¦''4~¯nŽúúôvD×Öæ=> fÝÜ4-U6<زhoËb¶- ¥¶¬Ù²²bËL½lÖŽe:«lf±eS‡lÒ^OSv¾fšj˜“¢ºpÊœÔ3Wì!Yn÷‰™æ¦‘ OâOfó^´›#ù&ph5q_öÀ¡ç˜áì–×r¡éMPH‡4åý «ò/ ­ê4 4Õ.LÿÜ)‘Ӕ6Uê¹®d¶*6Ù§ü ‹ÒfLÈÐòk\˜œ›ïL·aŠš¶kLЏ®ØF[û°Ucóbö–S—³žrkÎZ*ŽÌrk(+°~e‚ñüÐzó§d¸m÷ŒÏͲ¸ <§ ùÿ_ Í—–Þ;î^ÏÚï?œ‹ÉMàHêp¶^Œàš5cȳ©œëeú’ßR«ÃÜpqÈÙ‡¹hù/qÎp‘u¤74y¾>¯7ËOµl*©¾î<%Õ_û4Ôý‹Ú¬­ªŽ™ ?XIu‹ÆùÇ?iýñƒã6ìÆ³UMîë©<ÿTa–…%ùÏuëŠ0M¶øÙž«ê’Î86!ûZvO¹ÅDY²çí•N/ 9z;a“òNƒ¶m'øMã…A–½êE³TÅoÑø‘ÖUùÊÿzMaendstream endobj 180 0 obj << /Type /ObjStm /Length 3796 /Filter /FlateDecode /N 91 /First 851 >> stream xœÍ[YsÇ~ϯ˜G§RšûL¥\‘Dëˆ%Û!åK)?,É%¹1ˆ¥¥,ç×çëÙY\ P, Ük¶ç›îžžîž^“LEÍŒ 8æ´ÆÑ²èŽøIKŒ @åЇ!®hRGc"½>Œ…¢‘&(“ =EVCŸ4()kñÈãÌ+RFôaƒ* Å”KcôÊ&â†GN’özôáþC}qFãÒžpFo‰§Påé0*—y@3Àkÿò0ñx žGš£>ÿ'?ªï;ø´žÅÊMm,||Äêl²ŸGOûEª?Æl^é~OÓ‚K†¼ÏÔßq¸XÕÙ®ÿëõ’þ÷ZO:ï5¾èzo²j·Pê^—³碌²–ÔZÅ„>SÜí겫þbY¯¿â§ÂòwïèêÛç/ß½A篫îªï ½÷Sg®©a0˜3MUö®¦&µª©ÊŽšªõª¾É¸7Ý]ü‹Y##œ¤„å8ªí­=Øe—!dÌÚ¶./³‹JšåaÙì«eÂXî\V`wWqU\2Ü*®3Üd¨?‹·â¼u÷Z\ßBQïYµEQñ,afP'+ŠVu›®ìª¦pY¶šÙ'í伞”54ϧùBõxAW&ÑO?¿EȃΆä¡ߎFÔöPÑB{FoÀkæäGiy¢`Ì.tÊú<ÓÓWÍø×dvS8{+؇W¸â-žÒqЬu´ÜRt# ÚO‹ Q·ˆd 6£àÕ ¹¶c¸H¥ãcŠ·Š™8¦8+Æá‚ÅrNƒá>ÉJæó—i“†X—xD™À“’Iâ 1_0à¦þŰT‚´7@{C¢à?fí Ð^Z׌Íb²8òL×b3Êrƒ5zg 2!ªÏ\ hæfà¬VÔúà† rœ‹ž»6M|ï¸B¤ëS¯b:$– K–ò“‚C$Ï"Êœ‘†;pë̹2‰[g7‰UGž Ö8Š÷Ÿ 8€rq«>§éÀ©u ¡L¤6{„ˆŸ¶h Ó96+!Sý'A£ihýÆy hrÎÍæÁgm˜ަ$b8‡æQå‘ÙภåI¾¢bKecMÒÜcýr8ÒÒði±‘‹ OsgáÇÅ`ïîqNÇ0ñýñËYƒ³®iÇý­/®ºîæïB<=~ü ?~t3iÿ‹Þy;¹ükNÆmœZ¿†yƒÆs¥4†g¹7.@Â~7Õp1p3ª9;# ÑÒ9‰§ ÀŒçVÃg’’#-9šwqé%\¢Žf£Gí °&’¶™W”B0båƒ<ô»ÀÌ2ÃŒå×71 Òhe£F(…Kò9#pb4îA>æ‡pé”ÈÚ„Ën úÖGî#fo‚\-`Jnäƒü»¸ì®``øõ¦hÆÀè» ¬Hê¥Ë-ÁRðþMÚdA,å¬pY-9í¢Þ×,³öôí·GoO([ÒŽÛ“Q5îÖfÅÍøñxÚÌoÌ“læn’ö W“l~ç$››ýJÊjvµølýÍO7]íÖj—߀U®¥r?Zù͹¶š³ó˜W‹Éf˜59»çâ…x)¾^ØpùwN?÷¹¼JTÓ³¦éšÑy-ªNœŠÓêì×騚^‰Ó NënT_tÃù„zšíÒœµ×ו8çí &j‘ˆú·Ûj”SÚó­›ËI]uõD\‰«?n®êñl'gTO§y;gÜŒk1¾½>­'Óæra{‡ö°2†|Ö#({>7£Û©øMüvÛvõùé(gͧÍû•] Û1¦íô¬Ôó !ñ¿zÒ.%,u–).o õù±×:ó|%gY¢Ü…]¡­³p1kùHmM¯Ç¦×aÂî—GÏž¼ùz¶)µv(H¶š\7~ÍÄ7«ßì:ñ© dUaMp‹ Û_Îöö±îd"xGqïrSÁ‘XGZÇf~ì˜@ÊÏXÿæåóWÏ?hõLgæf7­á¾[á¾Y· ×~?n@·FQ„ºÑß1 ´W²h@ô¢<ò¬"†ŒjÞMÕ:Á¬¦ö%E[™Î²Pf{93¡lçÔŽ‚ñr‰}½àÞÌ‚%åà{™!&6 {=VkÕ;]®½¾×Ú½±ÙÏó€Í)xkÞß Û1Õ é’§«ËÏÊ•X顤žžN2î•iø± ÷Ù”zQÞÕ]sV-ÍŸ23¶X¢Í„îì4&cjp˜­I<$³‚³‘e ‚çf¿[1ë\"Ã2 oÞSÍšµ\i›Ãasí—úà9‹€#'9Å8') 78ðÆÆM޽Sˆ0¨&s§0ª+Ü?¸uyvxœ7qN!xÌ£FrlÎ-{*2¥!…½æd?œ¥}?;‡Ð(RmæÀ­1¯V®ì¦|€5Ž[£¨â1‹ÑÆÈÕòjšã{ݱûpIñ”«{pN‘)1·no‡6åÔÆÄ€6y‹NË^ŒêYµ‚ ‡ßÛÎEN•Á3pJ¿·F¬Û3ÚÍœN3p”‹’ésWüÜàoœµwÑLH¯6îa÷imû   VCDjõŽé•yÙh) ýe±3ì­¦u(ê¼WÝåÁ8§"Ya?c–d…ýýX÷CáxÈMN.|P¸%iK†É_o|àläj-MV‡€¶Î)Ù.Tü)3g•æôÀgÎB¨)Ì5ÎxL1üiBݺ´R¥ÕëªÐ›5ªLð=#éóƒOŠÍHÇÁî4Úã ‡€¶®Æ`u@زI¦pàóW=¾—á°å©G„m7=Û°6ØžOJzN%½•ö®>)6*¶¢}€8£¹§oæîn%Œ_ªDHþãO?ÿü¯×«5™ëÒ\C9ç<˨\iõ%¼ÞÒx¹@Û.Â:Äàô˜Mtße00TyîõÇ•©Sqx_(îäp/P)zþ”$ê¡€8µðV’àMi˜Wór^zÇÑ>d\.ñ%ÏÒÏÐW•9·–h?šFA=:²ÞxBù8Àä3"G£Æ”³Žv»RþžÃe/%ÀHÐY¦ã×Ô»å7ÜÊÇOÄ‘x‘÷hÿ ¯®D5º¹¢BöÓº«hgઙï ä"á‹¥/7FÕõéyÕ× ÅøvþÇM“¿á˜\µ9‹ ý>ÕÁ¯ûŽÃmÈC>2ºiWЭVÇ¢îódäzçrxý1éÈ­ÛšŠb`ŠZ”Ý– ÑX*éÃC §ÍÈ¢xÞEË£;xÈüŒ$"ªawžíé—5ÀY€;|<¿\Y(;cµ›U¾V£wÄvLŸ{ưh,i¿ˆ~%gjdþð¶\Ñ÷Ánf‹×›å¥´©ËŸGï`¤?XKr]5£®ýû»j„9ÔŒyמ·“öÝ?Ï®êѨåUwÿš…ˆÏQ9úD+NÖÉùÀí®%%;ä‘ï³NmÙé>j..j„b{QhÍÄu3¾Ì׬éÇУ©.š=£Å2[W–kþþ%›TÄ?¬RÀ¿e0£P( ÊÈ|²ÞzBó™cXVl,ëM3ÖÖÛÖ=!¥©•í¢=QÞ·€òf¿Ó¸/Šs©è,µdÿíþa]endstream endobj 272 0 obj << /Type /ObjStm /Length 3672 /Filter /FlateDecode /N 91 /First 844 >> stream xœÍ[ÛrÛF}߯Àã¦Ržûu+•*ß”¤"Å2;ɦü@S°Ä„"’rìýú==€ H¤EÆ.–„0œé>ÓÓÓ=P^¢PÞÊIma”ÃÑÞÓu_Dáq …Ž.ÄB*© D!5U ²&(T!­¤‚.dh- Uañx°…2Ž*ÓŸB;ÁZÜ¡ÐFD" …(P ŠQÚ¢yU¡½4êÂHASm©[Iu\7à]Ñ€ƒ–c(LLÇÂJƒV…(,UÔgE«BÖáqF­³À"La½¦‚-l@óZ¸Â‰TÙNª¡pÚQX8‹wi) çð.¶\ Ç!éqàöRFw ¯-`H[x+H²sô”/|t%>zj0A8<a…'´’E0®•*‚EE­t B0¦,Ô¥¨²+¢$< Ô„G"5‹h „  •µ,¢3¨£¡A!¨c*FS-ƒR°TÍR&ñẔÜÐÚ£P›Þ!e t7QÄ(Ò+J¤m@e,:†ëR9‘”’'àFµÁ; gz¿4ÝÅ;Ð(ÝÅ;´Å¹Fg¥öP Tê@B´DDA‚²¤‘ಶx‡¡~á1” ‘ }‘ƺ눺$STšHúÇXL·‘Jè¿ñ¥Õ —Æ{P¢^:b»4´$A"ý¯o¾)øãét¶\¿'"‰bxT]>ú| ù«#(Te>ª|Ôù˜Û“¹=™Û“U{o þt6]–S¼Ýùª.?)ÏÇÃ'³ÀC­ÛhxŒdž8Îñ@‘kÊÅìf>*õä­%B¦{§óÙè¬\¢!~úì¨à?—–háÛoQüx]RS%Nׄ sç”èi÷RÉÔY’:kFgÍè Þd͘¬“5c²fL֌ɚ1¹=“Û3¹=“Û³¹=›Û³¹=›Û³¹=›Û³¹=Û¥i÷p!>ÿ°üîl9\–‰ý©B%W?A®-l~_ vê€<™ÍÏËy~©HbɬOž• jHÕüõ·ÿÉbZ&ø:½™L¨Þ÷ÿP¨6 ó4ç¨ÀÌž‰ž)ð#KŽúg7o— Ëñxúg+‘m7`d¾o‹š)Ù LfX)"S °‘†yIV°€ë[@ÎY‡Ùª.b©‹°‰ÖÀÆPŸàUº.ÃÀF‘O`+k2@íl6¹öÉcr&Vã ¾ä7_¥!ž~‡M† °KÂ#©úû¤&Ýp_¨Ù7Õ½£ñ¤ß"ÀOëò.=ý°NÆ£ÇÓ‹I‰‡øÉx±€’’H“çËÏ–åÕk ˆm¡·ÆÍݳ0ñ9{öêèøEõâ-I‡e“v˜ö¶#…J£«ýÓÉe«Aw©\×"uÖJ_ýÖÛ _»&RUî"Ûª•Ö)Tÿª·ÕïµbU¦·6åLZ:RûMýô4õ€žlžÕ{SkBl³y›˜é´Ȩü9Èy zžñŸù$ñÑl2›âÿÕÕ0Qö¿m/?^_–S>æ~ŧ`ñlZòk~M–jR¾[V¥9½†_—óñìœÏÁôÅõpT‚ïË¿gü†ßL1%,F³yÉßó¿ùþñÖ0€ Íã ¦FÐÅtÛÃvS'nƒ Ö‡Ám6nK}8Ÿ÷Q_wPÿèåñ`pÚs[òÃh“ÿ~Ã(º-ùßÍèÛ¿ŠÉ݆qÓIï©Íæºù¬ÇP}Ü4¡»³” hÅÎʈ + .*ríhN=-ý7y$×yÔ¡Ú­Éäv°£4 ‹Þix )jQ£ÃYH…ì¬ëQ±fU½ TÔÕM RÔgU€bÓÿi9=wº3Í’‚âtÂÕÑå£ÏÇyI ò’@Tï¹åâ×p÷äâ µReŠ{|‚gÝ ðÓÁëãŸï>À»¼ž¸éõ„{=ýSÔÝCWô º_ [ ©·=*ïêýü„ ¦¼%íušàñ÷Û‘M?”¸éÕNäjÈv(kÛ!+ì.®OçúF¤Nká•ñÑòÆjæ•G '™Ô}k…¥™…cç´g"EÖ˜²…3‘E,¡°ôz84-#îúšQ,bùla›ŽŠiß+6‹µ©2…kÔÈc:Q=2‹añYÁiíEþpN0šïÜÆJ¿v†œyf<Ì.­Ü½·wÀ£à¢Ô i–¿Â2#´Þ_—t¤ó†¹Ð«Ø ˜1pÜ­d¨ÓF0)’o˜Ú+évÇF#ÀX¹ÂæS4ù>Û>Ô –YÊNènZŠR3¡ ­`ûÝ.Z²«ïAI–Xû=þEoPeåx줹Ó¼­9’5½”,À™w º¤<ÌGð°e¦ÍìÕ\|8Xa±4à"(¯Ã!ÀuM¦ÓÉÐ.‚ëpŸWàÐ÷n/¤‡-£ìƒŽ°(E‚^YC5F)¤ËÖœ9Ñ'»³@"C%ÊýILõÆÔØÂÁõz76©34«×à¬b &ñŸ'¤ìgV¢‡'˜Åúí‹§<ª¥YêYw÷8­`Î þjðCSa´Ϧե_.—×ÿá|8¿˜Ý\MØr|1/Øl~Á¿J ˜þÞÉÍ8:y+)ÓW!¶˜bÜQ×ÿ(bXÉk‹DésrbFI®Þ«`;¼‹dŸþ½ÄšW9Í(ýUKSy€³{uŸv—§à£Óîªä;)0v¯Èºœb4‹¾×fdº’’45˜+ ©<üjânlÕŒjó<3»ëK4íæuD`¶M­µ,YµC‹¾yÓÀ•½v4­ÇÂ`:1R~“Öz{µ ßÙâfÊF³+~>-øhv^ŽfÓ÷Ÿ`¤, «JÁ/ iG f9øà¦"l›Tè£ÊR¦3Ÿñƒªq•›Ïsíl©ŽÕûnÈö¶ÛAå. ÏLVËcSЄÃâ³µ‚ïÖüèXÚãR²ÙÂFÑn,ijKýµD:D·‡=­Ø¢j§]iƒÑ¾¤¹+¢F±ˆwDAm\”vFQæ>í'b"èC»Iwc3˜³-mAÊØŒ‚§îv·6P[ãñ·˜N¡¤MRXYXIÛ·`9i{›ÂĦ¶]^w,¡×lè¦jÊ è¦ôÎÝoBÙ?¼øéå“£¯O³«áTªGUltÛŒ•ØÒ¶³õŒ­Ú2 mh5'*•Pr í̙̮Ÿ^»ÒapSh˜­X;ÒŸǼªáÞRM!íÒ¡E#Õ¡#m±tuKÁrBh«¿º¬Åê\‹Õ9%¤¬®hò±¸ƒ÷Pɶ[eSMQÿïÊØâN;˜N9Év0ý ÊŸñçü;þ=ÿ‘óþ‚Ÿò—9ƒûz»îüÏ&»Ew2\\V{þÿïVÔ¾QŽÚÃὕ²…J·#DOZ‹Û»• ­âö½ÌlGïI»¿‡ WÇïͽ)7ƒ5ãÆ˜xþúìõϯðæ“áòòìãÕÛÙd!Å£Ayq3ŸWCÃØ:«ÔŒˆŽáÂú€])ÜÙ«é˜ÜÈ"áî¤OÊ¢Òÿ¾QqkD žÏyW¿±âþŸ¢/‹tÿnš]~ƘôW²ºs”Žy³©¢ßŽ_7äèRŽvu*h•ë°V›ûKÄÒo÷ýÚ¹uJ©é´u«­¡Zëí{$ÕðáÓ…_µ¡ZœjŽX`Vj©®´sùõn”Ü‹ã­ú‘žTá^[–N6¾€u‚½šG–Ëd€r¹2A£ñ|tsõnR~ÈöŒ,YjŠ—Ý 'üÝø=Lœ4X·zcÊt<-ùôæêm9_Œ/¦Õ6•N7¹Yy+¯ÆUëK¾¼œ—eÚª3WÎoo* ð•¥ÛÜP@–_ê.3×ÚiZ™¹~&ß™¥lY9%{¬Üƒ# ðÞ™ó}~ºÒä'ƒ3Šu ò³Ëfu`´;íÀQŽ{°EC>|†¦á™ùCë $Ü-WUÄ%#3ð#ý°JãzÕ`s"-¤­c±€aéÕ‡ÍY£¯±Õ!µ/[\Y©˜YÅÔàÜ1ž´XmxÑ—”"0eƒ2ó"|!جÄúo%7Lî rëR©––Ù¨{³FÞy¨À(J2 IŸV1Ú;õYÁ)ƒ1¯²ç(W®S«C‘9Ý•ªyòh|ÊQšh™¤ÏÔÅ|>3¶è˜¤º26+1Ü!°)c6ÁÝm}ëŒ%0#HѰ<ôµÛçņŒ¶HÖà” þ èºbóR2/]ßp€‹V¯ÀÑæ úÔî‹gK_ÝÕà¼c†öÏí\g.¯1¢w_Aˆ0 +É̪Rëîà <¥¨ZàŒg^fDtÅ.)õéúb}ÊféóV—,‡‘´ÛË'¬ô ègÅf`Õh·oÍh&¢þ2°)˜úöL)LUôù*†}I¨Œd´Kù³‚Ã\ÊèsÈœ˜.Œß \w·>Rô³–Í™ÍߤTg”„o‚»Ž¬YkRžäÕ<ç“J›321¶9#*úæ,¦šóe|óýÍf®î¯ß¶øÈm/ÁëõÞ¶Qw§ÜîŒqï3…wo0ýŽhù³ñ»w弜Râèw A¥8GMÑ h·òfÿúA´þö.ÏAendstream endobj 364 0 obj << /Type /ObjStm /Length 3761 /Filter /FlateDecode /N 91 /First 854 >> stream xœÝ\[sÛ6~ß_ÇÝÙ)‰ûe¦Ó™ú’4Ó8iì&ív'²MÛÜÊ’W¢³ÉþúýФLÉR"Å™­Æ!HÀ‡s? Pe ãLYË$÷¸:f$]=óNâ˜Z0å8ÚjN;$“¢­SLj­PÐLZnQ0LzI/ã†s* TèСs­é@£ gÏ™Ô 7Úx¼ƒ?í==Q̉!¼,já 3Z,3&Ps Žx¼g&pÀð‰~gVHTá=+=$³F ç ˜µ®‚fÖ+  ³ –9¡©¹cN ¡ƒ¡ZŒa„ ZŒa$¤_kŒaˆÚ` c uÚ` ã€M#ˆ¨cXA½€µÂÌZŒa­Ôùþ{–ÿ8™L«9ûgcÎN£×W“®6]]¼¾gùátR´²bz–Ÿ—åè`úýpüL0hîµÈðZü2š¡«{ÎO‹ùô~vQÌ!8þX=?«FU•#¾ð D ‰w¿Ì¦gE…¾ó_Žž±ü×âc…NøÅOwõ~]àvi>Тˆ;¤y…4¯æÒ¼‚KWŸ®õ°¤=õU¤«LW•®:]MºÚtuéêÓ5õ'øCú¾Kú‘6¶ô#•üú‘"׸Óåãb>¯Ý–“ûy~{?®Ê»ñ§|R\ªr:™Gó›|^Þ–ãÑìo,?*jàßI‚úl<ºžƒ\‘ ac]€9£é¼¯+Ÿ•ãÞ+)a|ôjt ¢¿;{÷ëÛ¿¿<9ÁÜÎ>ÝžOÇsÁ¿;-®ï1"Ë_T£qyñãäz\ i~RÎçåäú·ò²º»Æ“³ª¸}GÖ´!3õM0gå]55?͋ȯüøèäõéoñtz;šøv¨ãÉÅô³ü·ròãd^¶ž•³yEŒþ>ÂŒ8«—£ô’˜³ûó*â!T=pÔ?à7ZUkVû3ìîø—~šò~+yª9}U~(òI9)ò)þîH䣰ÄR-,óâC1É«›YQäÕ¦ù‹Ùtó­1»À!:õ@V±cSÎà mÊù·ÇgÏ“¬ÕݱŸÏk³õa#ƒõ¿GŒA Ðe9¿>µP[õt/˜°:¢J—û„aYõWˆ •E7 -^½ýãðY?ýމ›(h¡‰_‰®Ñ?—ÖT†õÏË}Éý†²+ {žµgŸÇ£ª*/ŠjzW'ÓCAϲ€PšäbG=áp¼³r“žõŒÚ8Yz,î™Î.‹YÂEö7¢¹AZà.d¿ÿã&¥É„2”wØŒÓ*òä~<¦·.ZF¹ 6Š«L;(‚÷™<%xà -™ Æ´’ò²œüÙàŒ+Pëáñ°OµèŒÊà–‘x›yZt'J*ͤ¶™Vñ" ´Ò„L!*zRlRûŒ¤¤Áædf«ì[ZÊëaCŽ—9J‡±9Bù›!³ˆà¿ lJJ`3 lÚd´n¿¶S ·˜Vº›GqºL«˜¸C§ÒZ$ݦÒJ$ݹø1ª¹ Ü6wNÄÏRÍ‹Ÿ›š;¨‡jV!%}or‹^¼Šê;„æM#ŒÕ¼ã hªh–•O=ͦ;™N4öúÅÑ›ŸÛ¸ï`:¾Ü0˜Át³âºðaÓä†ÖF– /­Èt o}»0¼£®;v©J,ò®Ö!“ý ±ƒ%ƒû`ar˜ ÚY¿Êç¿wæ°•(÷PL¯3f•r•IZžq:Ó†DfÙz—)ãw©ÛƒSà`Æà‚Ëhýeà†L.x•)» œÖ!“È£¬ä¸2KB¦Ã*• »wWµ*éã´å6£Ï²B«Œ>Z2½bï®j=6ãa}à¬Ë¬×û÷êàDæ‘ ›PsQiH©ÀrXñ§UŠ8 « p6d>oà†<©…wb•'Ödž+ZNÎ裵€®ê€{P;ý´à$'¢à$”Ô‰ðÕÀAäµ_ô"¦Óm NË Î{ØÒgÒ6ѸY»Q­[`£€ÜÃè}à”pPÖЂÓ"³j/\RV‰|@‡•f\•hfÒÂJJ€ô”ã+žižœTÉaÖà¬È‚S»·œ*ÛIÁ¥Ì9(‚¢ÛØU®Õ8À1Ìðš‘¶…öañÜ>1íd¨Z$B²Ùô![I€õ;uüÛƒS$e2´àŒÉhoÛ×Á¶Þ}y(íPr2GûŽlTádî‰ý¾0>£¡ p^fж]mn0ÜQê·i²§hSá"—ûâÔïóÅÔ˜¿•:$ –ôí N;×¢%Ç<Ù£°÷¬c=8RËC NCãä>° ¹<©A íV†€ñ¨§]`ÐkG»I3Ú¹DX…O N-aÎÄdˆº¾8×™VEY¯C‰®ï¡jiò¶öi¡Id> ñüÂEŠg¾ÚC_ÜQ Ø9íd°š"÷ÕîÎgÁ µ6£}{RÙŒö=Ð{·Úë5UKÔRh1Ã|69¸ÁÔœ{ZlÉÛÉ$¸¯ãh •ò‹ñ.˜jGÆÈ8äàöØÕ;ƒ3!öžæ®§-r†Þd&¸¨’v+Qà³S+òŽ ©m=Y`³BîÜ.g!D¦ÀO©y$¡ˆ˜¾.b¾*DïŠ6¡‡¹ÐÖ~ø..±ªý ó#¦)Â¥8ZÝ£Ó_n ƒ9A¬Ffzа”öÉZ¡v»Ø8ྌЫÕKÈŒâÖð“N ácÂ:µS¡Ûœ" G§0pÈt9r÷à†„NsN†v%Weg ¶Æ}}Ø’ÿ Oæÿ™¹ßíºÏÀ 2ø óªV†r.££ ›´ˆ‰…ü6°!ßË‚m±y2'z;lÿïÛó"*ÛPé܆æéšÎmètnC§s:ÑéˆNç@t:¢S:õgR&õgSûäZµMí“E¦Ìª¾Öíßw·¸t†gWçCšóõù†'[Ù—ê ¸"Aç%½„‡¸ñÁ@ åw{ÀÁ WƒM"ˆÐ´¬ºslCº/h­¯Ü½"uFǰ(â·TIË—œ¢ì'Ɔ’ÖhÁfbÀ–cÝå(l¢NrÑ›  “iÁÒxz.f^1«‚•ßñªÁç|·íéTŠÇÅúä&臜Äì_û<™7-¶@{€Ä7‚M!œ¥óȼ£)€ ³ÇH â•h-èóŸlÁ!H$·pCš£w¾2‚PT«áµRZ]o;£µw÷8’ÿZpAe ذ­µ$D­c–„´Ì¯rJªŒòII®˜ÔÂ9!Q{ßô€Ø#Sn¥:p„öt€Ì04ç" 10‚«Õ{Y׃#7@ÑÝ}O bKp£y±f'ØQyuU 0¢Hˆ0×Û_™d‹ã¤¬w‚•I¼³8yÊzGS™Ô¬9n%5GUYs¼‡õ§2ÈÌâ¬,ƒµl÷œ³Î†s:çÆÚ­é¬st–þGŒÖ=j,¦÷94 c½Íìli›:$—õwƳ¥­ññ0No{<[ÚùufÝñ¬·Ý˺ûðU±î†ýH´î¦}è_tÕƒ\1ÚÛÖÛ÷¸-o“g´ÂØÙi{ËÚíö¬¿ËžµÛïwDø…ðÑÆóvCö®ØJòST£HËú´!«O#Æ¿µ0õ?‰”Ž4endstream endobj 456 0 obj << /Type /ObjStm /Length 3234 /Filter /FlateDecode /N 91 /First 849 >> stream xœÍ[kÛ¶ý~?Þ‹¢‡oE<ºmѤ 6E’{/úÁÝu7F]{k;iúï{†¢l­-íú!'Á"e‰äáp†s†Y„ÖE¡UÄ5 “°^ ç,®$BÀï^ RÞ `éàQ°‚WñNÇÖ{AQ AP ´J†k%¡uB?A m-ªBk-´·üÈÕƒ†œ0Îñ˨"àp£”¸€Žëê –;Üÿq“ E-1Âi‹ªhÂi®pVXô'wƒpø—(\L 1x¥Ñ èÍ 1tFF:A4‹ ZD }ÍãÀÄCãXLh‰0H´lЇ ,(ÈLd‰ôa‹ºG–XV}ØŒc!Ëóí,ú€®³EP%ÖôIä§èBDËxƒ×þ뫯Dõh6›¯–âÿYO•¸Ìjš¯ÐÒúJåªóõQ=™ÏVãjÌ8ÿV=_OFçÐ×rÉIÈ(Z’PMÔx1Z ‚(o_Ž—ów‹«ñR0‚o>¬¾}¹­ÆYûó s~9–×_,æW/Ç+´]½xz!ªŸÇVhôë¯Qüûv̭ߌq»5LwÛ—k(ר1wú8jÐIšÍŒ«³•í‚ôdÓ= ¤+ }¹†r­%Ë]_©\»4' ©9¼l4‡×ŠSÆGe<ÔŒ§¶^Fêk—ÖåjÊÕ–k‘.òÑ¥=]ÚÓ¥=SÚ3¥=SÚ3¦C^q¨É7§ Ç”Á™28SgÊàLœ-ƒ³ep¶K ÒPƒ²æ¤AÙ2s¶ ΖÁÙ28WçÊà|œï0Ó¢ýCi¶×mÍöÇŒóñ|q=^*£Í7Tß</¹¡2‘Õ›ÿþ³(ƒ³0ÚÉà@fï¦S~÷;Q}Ï`¯VµËšýJи2sÑ2%¦VNÂ'ñû/ßýºÊxžMf¿7زÜÏ $@êÀ®.JŸØýZ‰Eî]b*>16«$øÆš·Ò@•΀ü.¶`œôû°% PL±+¸Jƪ Ó'Åf ^cúÒ`sŒ-ž\YÓï€Óz vÖ.Z :z+}Lc€x”½°]æÀ¤Ö§æ' hŠKà» ŒOë;D+Î7wˆTL õ¤f±¿Ô‘Ÿ­ëi™Ø¼ :š"ð—b`›iÊP€†Ù\FÆØ”9kÃ}žO¯úu:ùó†üÍìj~=™Ýˆêõdöh¶œl~¸˜,–«'oG $yÍÃ|\-&·«ù"Ç]¹Ûg£ò3êXY Ôȵñzr½zËK|ÈÎú>ÓœÍÇh¿¬]ÌòŠù/X=Ý~7žÜ¼mn1^Âÿ]=©æÕûÿdÕËo å«.¦£›e@²óh7΄Ÿ¬ÜÌ/õ³‹ÉtŒ ãÊ?ý8úc|ß,|¿M'Wf7Ó1*UÏ'Ë%¦ LèÀr]ÿxU‹x#ÒÖtToÊp¢žé¿|ñúÛWßÕï9å°èÝ)wÛSöµß”ëÑ´ÿØŒjSªÿ6o¸lDí¿ÝÚj­DÛSs›Ò{Ê{u©¨H«ÜV“üOmÊÜ纜ûâ§\âÖ5Ê?I~ÞÔRuϹE¥V‹êyõSõ¢º¬^VoªQõkuU]ͧóYu]«ßª›êm5©~¯¦ÕÕ *{[Ý2…™Ž[Õ¥·[ÝŽ“ùuõgµ¨–Õòvt5®VÕê¯yõ®z_ýU}¨þ¾£ê¬^µ®7ÓßÒs< @ŠÞbEµ¢ßÕ·½•Û>¨Ü¦C¹Ÿ¾yöã³g-«:eQ Gkx÷¢¶ÑFÕ¡‹»¬;¬Ñík£ãµ4ºy£ ¿7úÏûo&nj·²î±æÕzÇwsGÛX›VY‡¶ô'ݧ?IDDeúÓŠkýé˜Ò}•ˆ—ëýWÈ3Ñ"p Œ7P”Ææ %‰i †$o(ž™ønR¶/P`l  6‹j‘|à\’Ñ´ÀE#=¢ÕÀQsÓ0Þ†r1:&dÉHMºÁŒæÈ1ïÓ’T ˆ^y„4$0ëZ1 ˜‡s[H˜¶>¹QðR_bb%Û.o: ÊØ=á]â½f¢ÄÛð±!—d˜=xóºI>ïÊ7w1ïÈ×wV©¼¿Kq“hhÒTvÏ9ÕwæÔCëb¯•Z‚Ðæ¡³áC ¡±ï†Ì•;{c-º }a©‰«òi‡’Áó!D”¼E¯QÝûôiÁYHÈTΑ•„Exp;ÖSËL”IçS˜!ØxßÄâ)ŸpøÇG1ÿ<ñ6BÔ½àm6¯SM{ïn, »ÙžüÆ棟Ã7–¶Ìq;R½›¶£Ñ£ÌqY¾|®7 ûJz›}RÞe_ÝÜ¿Ÿµc‹†u©^Îu<Óz¹æX̰6üêýaÜëk·rÛܪcÂö&èþ¨èóñ«Ëo/Þœ}&»­ÐÉá£Ïí¿ûbÏÓ¹þñQ§êŒ9‹6ïòýããÌv”ÉÑÁ‡!¢ËÖÒXkð]}:Ot¹'ݰ¢M7‚1Ré¾ S§´Œ˜H“’Ìgípèœ+A‘„>ESÊ£šu_…¢T™”Qʹ åNçü‡]Ÿ°§¸|ýÃÓž|ñìùóùlNúËËñÍ»)Œt?{‡Kßµ÷t´7p9ùÀ=°ÖwÚäµnõ¾76τͿm‹õXíZë9¬m[ì%,uÞm‹%4o›^|`“3]HçN·Œ/l_ï<ßk‡Q5vô!Êpb‡¿j@)ô™¢v$ Ä`´—ˆ0°Å”˜0Á4iXæ08£AªakpÖJ>–>ܽ–—)Zs’ÑŽå·î]Z´x°“quÌÉø½£Þ{M;~SH%™TêS:„›œdƒøÀÌKÏ{µBô„öppÆkɉkpʧíà¶½¦Ñ-¯ Ï'½ò 37:úBõó.‹Å8õ Ø ”V»Û!±9ÕŽ6-Üyâ 4xnçûö^t‚_u0U4F 3^Áßï ·Lh€<Œv2N+ÈIzC¥, !º¼«?o +KyWlާ†ÞG¸ Oi9#€œƒ#èÓ:Í{•ÖäÍ^ƒú° Ò:{RjÀ è _–Q)’¼e }‘Ã2Òî«w{Æ­m…!޼÷]Š÷@§sŠpsg°Îu`/Ç;rNº¡ÞMY8VéGm˜˜¬Ý:/K]°{2þ³K^çÙpŽà î3€s¹%:Îé•T ÌG'ÊŠ ) JÏÇF:áiØ€C5Ë©¼ÃƒëJfâþ@½¾k€ œí\Ï¢±I:NVæc”³'ÝÍ8+cplÐOŸ3êוͤ9Á+ö-¦ÆQ=‰¹ÙZŒêüI`÷Cc/`u [HîຖL‘L¦7XA䤸#ˆŽ×¸.sp ™ÛvSZ/ŸÔùÚ)CtÇ_À'ÃÙW‘û¡‘glzƒ-¦¼s5<¶Î95žOiz£(°ÝJ;Ôàd&œ%íð`p¾3ï79‘ÇŸ¾|pA› ½Çðì*š5¸uRä箬¿r2DÃnLç|͇ †Æ± ñÇSŒ#åOœÀ¶Ã¢ûysÏqžÓz§wï™ãIx@×Ë3@‘økƒ&Oƒy[v†$’ÃÁñÆŠI›$ø©Õ I$ûh“Í7¡>jp$øzþ\KX/<<ÀGùtÒfÆéà ¨FdlÀpÝpp]^É{‚_î]ùóôñ— ˜|p\Í;"ù ;Ò'g„k¦s ø”ç#KPõ^·mþ4„SH".iÁÙ,Jj܉v°fƒ-É_‚í̇c7,öÈÊï[“HÑ?Z®ÖðÜGá8ËOt /}uöPD è³/4{èlÉæmµ\szp]ÎÃÀƒîË‚K>|p༜ÙA´Üò'Ý’¿jÿ¤Ø !Ìš×Øø@(¥ý±ýÞáHendstream endobj 548 0 obj << /Type /ObjStm /Length 3227 /Filter /FlateDecode /N 91 /First 842 >> stream xœÍ[ÛrÛF}߯˜ÇÝÚ 0÷KU*U¾çb'¶ä½ÙÊ#167 ¥tÖùû=g0 A ) ”\*jƒ9è>ÓÓÝÓt6 )œ“B%V Iá#Á£g–ƒÄƒVa2"d¹'+‚3蕜žC$/B´¼D”„š¢ˆ*wO"e³¦¢…H¼T"z(Åã>È›— Àd¬H]W$õëE²Àì¡×Dñ{è5ÍKI¤!y^H Ùy¥xÄ~P±’Н¹+iÁ  ú{‚€*Q!ÊâÜã• Š="ŽáL7Yn8Òxa¯1†6VS„8²Cc í-ïÃ:â…<(¥t»¼ÆF)^ÅlÃÆÀC€EcŒÌ o0†¡ ¼ÁàžMžäUŒÎày½²x½Á–òÀ¨l@?o0†Ô¬‰œ–}1†ÓRÿíË/Eý`>?_-Å2e¥8ÊŒÍ-´ÃögQ?:Ÿ¯¦sÜtó]ýbz:›<<ÿˆ~üº¯€>ZUAèñr²@a›»¦Ëó‹“éRpÄ'WÏŽW“Õ4O…|ÃS çC>{¹8?9ž®ðìúåã§¢~=ý¸ÂC¿ú ‡]LùôwSœnã§¢ØjºŠ[‰Û·bȸ}ûð=qëæµI›¦µ¥u¥õ¥ ¥=ï§Ç}¿Ô}?#÷x¿‡“å4w¯úþÅñwOþù`1›œ}ñðüìô‡_Îf|ÀýOæ'ç§³ù;Q¿™ÍÌ—³ÍOg‹åêÑûɤÁñxº©Ïëe½ª?üCÔ|Möüt¨ŸžMÞ-³¹€Èoò°U.¯Ø >òçæÚÓÙÙ_対Ÿü>½N߬&g³“ówgStª_Ì–Kˆ? KpI©WÓßlÄ»gGõÛòj«òÕ?{òàÛGß6ï¨n˜¸«êv—Õ)·›ºùÛŠ£ªø¹Nýü»Ú³K›€«›3R –gnÖ]G±ü‘›ãÍ‘F~x•-Ÿ¾îQ>|‹|=Äõ“BéÃÏ2bQí’1Ÿ®Éø¨~V]?¯_dZbžœŸÏëÓzZ¿«ß׳ú¿õoõYý{=e/ê š“³é¯«æhÁçÖÔ °yy19™’ÓõŸõÿêõ_[܆­.änõ]ˆý®äË~^â¶½ÌímŠíÌgûI>›>½zxüì‡ÎDÚ‘Ô ÂUR‡½I=DÃMj©÷i ¶VnÛÚQVÍàÿ˜='µþ`Ñ%íØ½¶'Ûýh÷rM9’DÛÐlÑXG0é‹Ò‹ds1‚.=r—9Ô£Ö]‰D+½»a<_œNem–yÏ'ª9Ao.®¦ãí¿ « 9xSI¸obþáìŒ÷~ ˆ\ÀOØB¥ép_ÑsuZW ^8ˆ·ª„EîweàLÛè+†#C(·¦’ªœa”âá•!:臧”«$¢Ȭ¢ë•¢ÐBÖ2í†îHå(¶Hg˜Ô1–3Ïh¸Ñf{»fˆkÚÛµÏAq{g·×l29ânÏšx»= Åäa0ÛCmí!BöYˆSU‘ÏQ$¨öhe_ÇÝ-O¿»Ûľƒù¶G!˜nƒ€î+B@j-á]_&Œö2aÔ—¹ÿnÌw6u˜S`­dÞÆUÖ ML¥C¥˜Á‰©rŒÜ­ÌÃKU©ÆšeÍJ(µmÍ`àoY i*f^8ioð>œÄ Ú+&‡îœ¥!VpÞœº¸^ðE k©ÛñH#<Ôf}mË„t'wÆwgÉÎÓ“©Í`–¬i}iCiû"äxûYÖÍ\t#dfàöˆw›A¡»v¸X…ˆÑ Ê3Àu¥9càDŽ/Éô›ÇŒJæà$uNbžûpZ©Š)(oBEZ¥X9fû,°aE¹WlV•Óp 6—@›xl}~”ÇR/Ó CèHéõäÖ.шÂòÜœ†¥‘̨¶àÀ´ÈœçÝYžî*|s“_† ó¦-&&ºS’F5%Ño™’}Öð]ÝP½Ñ+ìb+á÷/³ý3·1õŒ¥E;“ ¦ü½c¨1ªû¾ ^ytð’MÀ€~ÈÒ°pÌsc]DmSê W‚£F®cˆá†Û¼E"á—û!é©  L޲â = æÒ b€}0x˜v^yzZ˜¾qHzæ.H.Æ¡Šh‚²¥Á$‘ø~G{·Ã¬Íûdf}†÷÷ë9|M¡±È2"+gŒèÂ:€è +¶ ˜ŸÔbØÕ ”½Òû^M[ÌC*æ!óŠ’Š’Š’Ê^JjžÇí®¦U¥-9Yrþ²äüeÉùË’ó—%ç/ËÞ†ìÙÛh-àH¹%;æÈ«}ö6vôlbg}V3ƒ!3˜PnÐE†ôNXƒÕÈгñyBÑóMÆ9¡¶ài<ßÁåTK a0§*î%·ð0éqhxô ÂâllÀr=(=X­„U³ p¢Md|ó¤,¼É[副P®bºÊYLNWsáÊW&Œš‘ÙGz\[à·®ÑY_iØ…Ð]ö¿”¿ê,¸Úª!ÍzÆG_q¯ºÍR¤Üý¾Wp%ˆõlKë   ® £ú­}Ð4VÀ¤)æ[Ø0Q=å6:6ׇMÁªØ¡ÕÙ"PŠ6¬±­uú`kUŠÀˆ«ôZ¥¾qÿÄqi†L¹­±aƒíçÍX Üçtéî œÆðrp2à*½¯6ˆƒ÷„eâ†é£ƒK°p:n"L„-ƤC€ë›4¬v8üu?:YAr.Yóy€#çšgVõβÚTÑ ºKÞVÉm·¶pŸ8„lRÚlÚšº+W±ÄOinßÜ36åte¼Þ€³ãƒë]SeÂLMC|£3)5J´ð“˜¶’!{&÷ ÍRnr-4Ñðõoœá¸ä}¹óN„ÛÔ^©Tøñɫ׿ٻè 껼¡íÕ-Юօ —KúÿÚ‚¹Õ³û·cùÕµ¥ÏëW¥ë´¯ËÙë °p=Âu¼Z`Ðnl †µ±sÁ§ Vú °Þ|÷æùã··-Àb…ì%ÕX€ÕWh5|¥:›ºÖ»„Ü«[ùÒWSÊ­:ÅWë2ªR~•ô”^ÉÑ ¯Xýòª>®ß‚ŒÝ’«_KÑÕ' ®.¦‹Ùùémª®äu5WF_¦ó6«\sõ¯‡¯¿}òj”š+ÖÆìËã>Þm×[]å]¿aë«.m™~¹Ú*Ï—k­Z¦MÖuV-·Æ­±2WjP{Ôx‡5V·,Š&û ¬H°XÎ-#grA‚L£fñù«–NßVN2/…ÈÈGFðb˜ldEUâobÌÉF1ÙS·,Úòj¸/ϤS{ò-Ú³”fq³U*°sÿ`©µÈ½àÆÇfžÏ:„S ZbÂßkj-W‡±Â£]¥Ì»>¹f9] §œS’³‡wó –Ñ)G)mvÍrË_Ù5k³ò©Åæ}Ųþ»Áv}6¡ ‹ÛÌŸ‡ØâA27Ǧrqd\òUT7Lýí²Ÿ¹]&yg»›²†=67}qä|ëËàüÝXÓ–MÇ’à/Æš¶ JUú«Ò_•þªôW¥¿*ýUÛßÊÒ6"ØÞÄ,‚gSÙŽÏʤ¾kóö‰L혣I"ÀËÍ·PE0ó·ò%nÍh[%P ÍÂ`§ƒ€Û#çÍŸŽ-$„h,H‚ÓX´FÝ»98LûœIZƒƒ‡˜ €€ÛƒqP«v.W¶3¿¤“Ê;"6ÁLÞw^_'[Eæâ 8î±àèàn®V:Þ´%-8ËnRà¬çàû­ÁaiNü‰À®àþ•a¸endstream endobj 640 0 obj << /Filter /FlateDecode /Length 5093 >> stream xœ¥[M{ܸ‘¾íA?`/Éæé#{‹K|Ø[vóñL6“ÙÌ(¹Ø{ ,Yf¦[ô´5Ú_Ÿª@¢@¶l'n±  P¨zë­*ôO‡¦‡ÿÅÿßž¯šÃÃÕOW‚žâoχÿº¹úï­<ˆ¶–ÂèÃÍ»«0D„pucÜ¡•¢–ðÿÍùêuõëcS7J·Z·ÕãñZµºö¾­¾»…Ï¢n­«¿á+^‚Ï÷og|ÉTßýýã‘^i}5ßßÑ㺢úÝÑ+˜¤ñÕØïŸÂKÊVÃøc|IWïpNí­2 ž§umõýñ¾h­q¬†Û½ç¤he5ÿïæW^ÖÂXu¸†]xá`‡w°oiœµÖ(Y}<Íý§£•µ×ÂWÝØwó}ZBÆm”«»Ó3Œ¢L™X}ö.Ô ‹#Q­×F×­qòp­e ëú É_^ƒ`Ý)jHhWÍý¢]QÝ ‰j€g ~ÒÕÝ0GüÃyU}"¡Œh`;qm ‡\ƒR®­d­\Z¨Úhçpéê/úæ7ßoþ¶‘TXS;aÙ˯«ÿ ¢îçûtÎU¿ëOÿhïF5ÞÀ™Ç=Ð>|¼fÓþµ¿²;á,(8ÌÓ °†ðÙxx·ê`A¥ª¿äÏàÌd ¦â}Åæ¨"㜇ó¹F ­öóQ‚9Ã;Õ3ÍŸ]5¼ÃÏpð`n7G‡MËg{‹‹x#«÷ÑÂçá4<<ÓŽ{sõgܶ=¾ñºúÍÝų²ú±{+YøBGlE6jëVK™æÇ·™dàh´sÙ‚k-Ƽ–¶VjbÑ Ód©=ÚVoªéÔ?¼§©¬Ô;=¿9ƯÁßϨ_ ƒ‚rýö¿¼ ¯ê..£ ˆ%ÿrœ²hÚLÑdœ!&˜ÃøB,Ð;V§•¯¥ÓÂÆ]B9 á6n¤Åšm*=ÿ´ª¥{ÌÞÉÞG)ÁÁ ¬{%<ŠöŠ ö êPuÓ}þ÷x̶ø•{FÕÃX]k%É£ÞThyÿ”Ê„ikÝ6­°Ê&þÚ[˜‘ úºzs|á 4ûá‚—ÞfÏOýtÉɾ ¯(ü(´5ù9[…“°jñª? Gˆ™0•AÇTp#ûÿaîæ~šû·Ggí][-o—ûù)—­†°\€;.) ¼!"rÔ¨f@/]ËV$cŠ7=¼_u?ö¹-> ‡1èU—Ûñ§£Á§:Àt1ä@Ê™F ¾­Ã¾p,¸æ×áè*HýÃÞÀà j4®ƒQOìÕ ‹¨NÝ4¥/\5=O3;×sÄ» ´¡KAi3†YÑ8<);oÕdÉàØ*!t€í|êÇ!pŽP ñRûøšö‰ ‘@œÒ/D ÖŸiäU:5Y=å»BtU¶…Ч­2TÄx‘ÉÕŸ® y( ¨Ÿ;®ÔˆùhÉE"Òi[±2²Ñ`úx|´Z`[¹á9²U»š[0zÏB`þ[>‹lçµI¨%#fXeÁ7¦Ž¡Æ}Ü-Pù‹"&¾ Û¾çéÆ5f<œ?„ì¹bƳcbd;ž»6”t™‡ÛU•p1Yö¿ž5ÓÌœ$1Æ>Árô¼ºù÷×{Bئ<T…3UÑÈ¢ugªž³:òÛ`JĆP‚ƒ3¿Ž°rÃ9Íq,˜Ã™¢¬ƒCcªÆ¤Æ`°$5–¢?C€]¤öˆôóD\†&vIV8Ï.{zwét>Ñë‚?< édElÖiê㵑šf¿)}‰$vÌqW†¿£œFä:õ…ÇMGQõeŸèØñ¬)ò=@±ãØZ³Ë:¥^Yg<ëé¸C<Û¦¶ˆ.Ä“²ÖlÐ|ÛMÜqw¢„BXp‰³/Qªbyá!€Pøó^Ó¸ ˵ôQèôq#h€›{Ä% qÀ zn’cãY 9Ö}ÁžË}þP Õú×¼\5Ýï9¾H˜z`G'y-,FU„†Òwe‹ÈÞ¾$áGrj Ì.c+Fhn3 Wú>Кº‘/º>†h©äú4€?wtŽË×…üMZOGX-Iäf*q_a´ûÀš¼±(ÁÀ䀷§Mn#EØdSqO§’Œõ:Î]99jP3ÈHç‚q‡œË¶CbÂŽ–iònN˜T«Úv7†ÿÎùO bN•xa8ò¹.~öÎfÌQ6ª[†ÚÏè7Œú•\1£¯E,2…¢»(0ªŸòYo;$÷aË¿çv4öœbv1Æ‚‘.J{J‚À¡•#Í”ƒÑnòW«R<ß ±ût‚Ö!9BP-U.“z¬Ê`XÝ5Ö ‘µvk®hÄ’ÃÈéD¹s#`í§)ÊáKƒ;‹´‚irÌxŒãc¹¦'Ú±a̸[˜ë}œVinq4NÐÖ¡õ –¬Ž½çS¿‚WÝCèÝÝM22D­| ±]£.0yÕ¥Ñ`­¾Óä)T¥Šh› Á;EåkÇThÀ˯Q>- àýt™ŽœžãÔ¾å^»aœ´M•mŽ`ÈMi^Î/£sã²CS’Û,õ[‹[âÇA©Œoœ.½zÃêpm#W‹àý^pJ›-k[xæ›óS–,õ3\‘Tx#8$³Pè|¼žÕÍ]|©¹„Ø8 ‚,A° ¥„¸„ú-b«”wËP4¤ë”¶ÓÔo’0|M{>×ÏÜÞr0§¢ ·>Ú¥ªnC: ßÃCïw¼ jñë9FžÊì w€u’¤€T‡·äø“¿§%ÿC0K•-8ôpN!q¿èÜ稵@¾°¼¾Íõp>-Cö«füTº]RºVThê¼€Á4ïN¥fçÌáη¿].ì?ø>* •¶F:Í;#v[ÿ£Á`ŸŸ«½³"!«½Yké^ÎA{÷sJh—ú¨™·št#k+ìáZšÚ5*òôÿ9œ÷ϱ¬è¦•À ä§Ý–$ ÚJ‘äüÏЄJœJ;ébN­ iÎC÷ù:XŸÔçÓU¨ØFîîµesînx!¨*kdsw<³"½çU:Þ¶úö¿ój­«e›‘¥›Ma-{…Ó˼²r–ÚbĂɀ/Ê7^Š!’eIšƒØkD=»|OÀê–r>öÎtãMmlê¥?_ìÉD§Çšgº­%¤¯Ê(8X*è‹Mƒ öÍ#uT½t¡û:ž²ºûø–Ðn[SXK“^KXPŠXdþ.œ©†œÜ÷Ô3cÁ´ ܌Ǭۖ0”ž¼çº¹NÙLks)Mi‰ häÌ’j±óGf/H-Ò›læO±Y#øã‘ÞoóÒO<Â.|áYy Yda¢t«°‹z¡4gþùT\ 4™AI°³Kôpîz*` È5×ç¯}„¬‰¹Ì]DšßsÓ¥}Z³Ô‰¶&ÆÒ¢M `k†Ø×ï‰$ô—H¤´Úª…Ìx̨}@Z/(—Šir´g54HE.7±œÀSóÑ“Ã(¨âÅÕ@ŽZéÜÄîâ,€5Ï‹…âZèÆ´¦“íóiÂ8$dK¢»2Xð³`Øþ6Ù…L„› VŸ–ÑDé¤rû¤o• L,á¨áøW¾f|ì-´«ÆFë.õÞçAa|^˜K4Ä hˆXÁ–E¬xËÔcfùg_Nq¿{ïÍÐcOXÈ áPéAðˆƒÑZk‹×hªîMPèV¦^Ū$-rbšMÛ4 EwÜ-,?sƒˆ«66ÿ”¤²£´¡X¸]˜\“¼Îƒg®þv€ÛMÇ '­)ÄÖõñ¹õÕZ­Îèwø”.‘EF3™%ÁvÏê40“@k ´•”¸ËÏý.>רú1ÖütUîÞý—{[_êǸ4 Ö t=¸Ôg:--E[8I‚5 ŸÃÖÌiR­™'|æÇÜB¥DH€Š´g%óÒLu°«C‡è¦ô.Å+Á/9+¾HO\pk7ôŽÕ)TRŒ_¨Ú)äMïOÄBGß1ÃIG½ “}!R&óÇbë.%·†U<ðz•‰ê_÷Š"‚ØHÙóÎxYSïX¥1¶ý¤Ú9àÄ<ö?§CË%Pµ3m’à_hmaÔ^A^VÒ-E«PîCiðþÚiÖkÉ ·Æ‹d`„4îqša§Y޵EoA¡s§r¿ld„¢jÉí´,KcñŠ–ºnË«ä9 ÷gf Œbô,¥ÂB––~Œ#êI§3õ/l߾Ļ1]Žˆý»ÜÇsúb«5šÕXže~¸€þþª¡>"-œÓ¡UÅ[y;Ÿã”MË/¦´2Þ¶?%©ìWW)ƒÔ%!c{K}{Íi6s[äþ˜%B±‹Ñ´p)DS#A©sèje·9v@·b5j"ëÆÏæó»Ž{ÅîH«?Ç£hRØì&-¦çÙ²4v)4µ¤lŒ§¸ôªØ¥LDe.͇ ùòUÉ”3™ö°G YKW$ÇP˜ÍÁtéNQõó%Õ›‹CYád‘,HÕZê»7KAF¬‰ØÎda !Vªx·ÁžcŽ"NñؽˆÍ„uns7{¬¯ÅD^U×ÔëëkvõÂNä~L5¾ê¢J–. @v;\PqµI¥iEÈkþøÛ°Œ/“˜–[§s‹­×"ÎE—%öäÿ†Ñ±´-\¿2M­‹–Ä›±ÔSbkB *ÐÑmgO.u0dª®5”9*ÙÙÚ¦²É/˜%,¹³‚ns‡s\/¢ÆÑþ „d0Åï‰Æ|EÞ8ö—èäD¸:˜þÅ·âÄt%t ¨$ý<óŒ™#]Mˆsð¬‹GÙÄm½T»NžSmj¸{ò‰­Ÿ{ºuüå‘Mœ^À‘æ²ñ<^2ŠG…(±U1' EJMLÞ3 `Â<­;)ê-ü‡nTF|õÌnÉžó}îµÜ©Dâ|¢Øë„ls‚ZV?}wàŠöáni2¬Á 9<³ µ.gͶ€“V‚=ŒÃ”æ+}!ö¾9·n]Þ•YM@cz“ü#öP;ÄUßÐõÍ–R¾Ï÷P4î/]‚Ñd}Þ¼–þÏÚp#Á„Z…WÛº2-`Õ³¸ Ý^a˜s/“L 0øÔÓý” ˜ÍnÍüß.ÈPlwýÌŠªéXÚ¶O;¾CÖïUËå€ÿá 6Øæ†ôã(Eà Ä\ŽìðÑ /.¦†L!žr‹Üñªh›?}äfŸãqx¬TŸ–â„Á–OR§±ÄÀ˜›o«´xã})¿”¿f‹Üd¯J™)Îd×J€Þ1þ¸Ú䉆ìV\– Í ÝSÉîCXÍ]7Ýn.›E xßôÇ$2Õ†3ÿ›ŠáAZ#Ë %šÄËä•ä¢Zq#©(,…“¢q ¹H_eì‹Xkþݰó”ú\æ_¼ö./WËòø iø(‰6Má#%ÒY9iœS:)ÃÅ\z½ ñ[†L™TN vzJ±ÿ¥À¾ïÒUÇ_ò,ÍšMý––`:/\$鈃ì5°§¸`ã¢ðâåîOvN»ÕUL$/öxO»ŽW¤öneP<—&hÝV•…  yàDs| «¿N¿,2˜`Ó{Í m> stream xœ­zw\T×¶ÿæ»2Ž jÎØ{/±D£¨±+ˆb)R¤÷"Cf˜53ô^†â€€öÞKLÔ˜ÄÞ‚š›kILÌ>¸y÷½}4&1¹÷÷~OüðÇi{¯ï^뻾k-”YJ X,[nççãä;aü;W÷o§@þj?¬{£h‰3‡.BèbV×oŒµú¶'ÙýBŠÿ·ÆÚwÝ\¿õóü7Ìø,pAÐÂàE!‹C—„9- w^á²|ûÖ®6n¶î+=ì¶­ò\íeï½ÆgíÄI“§ôüxê´Ÿ§šñÉ¡Ãz Ÿ=¢µ¹ßèÆHÆŽ?¡w_–¢R6ÔtjeKÍ S+©O¨!”5”ZE £VSÃ){jµ†I­¥FQ먹Ôhj=5Cm æSc©ÔgÔ8j5žZHM Q©ÅÔ$j 5™ZJM¡–QSË©©Ô j%¦zQª7FYRRÊŠºAõ¡Ì¨¾T?JDÑCm£:Rý©NÔê"åCu¥|©n”ÕêAõ¤,¨$A'Agj-A¼A½Ôv˜Ù¡H8XX`6Ô,Ö앹“ùmÑÑ:‚鯏ttÜÚq_§‘J:Ûvþ®KJ×µ]t³îöm÷iݯöÕã@Ïi=Ëz" '‹[âK½R%=$Wzéý½¥­å9©§´Ùª¿UZë¾Â¾‘ýº÷sÿhÒG»Ù™l™l”¬©¿í€a˜>ÈÐÁÁ3ç 1$qhÿ¡ÿ7ìøpÛáㆠ¿=Â~DñˆÆ‘þ£–¡šn-q`DëÜæ0A‹SocmQiòìÝb.MÌIJ‹„HP)£°KëÒˆu.;ìÕŒ7ý“Ñ*s#½>ÐP®Ódj´²ÈÒè8£Qj ´òYþ¬7]§» »Á½P†‡ˆºiÞí¿;ŒÒQ`äÌr½êp¹^±WqÕ½ôZõN­¢á!½ë¢ <‹WÂ\Øäè·œù…_ÁäæÞôÕô„ 2\B;ÈaY™ë¿¡ErØ/CËhqÕÏ×N]º˜eoÇâ¨÷ž27Ü"0 ÊZì„-ž½ádÉДP#vG_IÑGh³¾zWu³ÆÊHc¡Ê6‚‹Îʛޣև@0Ä&%%ȱÏ’b ²OÒ%¦C²dë öj#í¡š ®€{ë¤ÞEôI(J(òC˰QЧáĨ0ŸÍC| uõpêTd…ÍšíPºä´,4¹IÑD¯Uê” ²‚˜íŽ<Öµºë<‚´Óö4tYŒHvy6÷¥¥x‹ -•À£éß`aö³¢+—àkæÑ¸»¸7ÛÚÁ»LtC+w—µ–ÑîIòOÙ o®ŸHŒ¬7ÿC†{ û’¥¦b!‹‡ µ¨F›vE=DâÏj?^#+Ã÷$ó×NÌ➢MIi52TŽli±Ù‹¦±‹dÝ8•ÜÀ× *ï¡÷„œò” ^Ã^㮸çH,À=±äçQ¨#êúãs$f§¥KÀìC¶„8lñ]ް¥Äÿ@à>8uÐ'ÊöU8X²öÁÞrÇrGX ®Ì»ƒB÷ [B[úKŒ´w’‹Ú0M¦óÃÃäŠh¥B†§ã¼JÈ-¤X•’÷³FÚÆÖ¶Ã(¤¿„ty~rÃ?HñÚ·Pˆêt×Èò pœc ¦?Ue6È=ìÑõçÏ&WƒAýÚ4*ÄØ2Æ(8õŠóß)lƒ¢$™-E¬šÇƒúOÇ`Vàu»ÐQt ­Ýu šÇã¡Å2m¨rÉ]‰ ÅÒ&W*!&ž]oíV·îÈ(°Â6x ž„± úO@+ÐÔçH†Y[ˆà5F4ZÏY£ ¯¯ ü{–â\!ò– ñÈØl–Ó–0ö2-~†óAq-M±EÖêñÎÝÍtÈü· ˜IgÐ)‘Mö߃:ÿüIdÓz㮟Mµvq-nôg£J@Å ¢Å½ŽV®:Ú÷úùI؜߉K? vqÿ"p!wKEñX>/'‘=MÄI¹7iYäõ4«|„±­«Erbn¥!ówÐ4²àQ«U+Nƒâ­¶§@ Ë9‰È§ñwTû)³¿DÑ/…-kQ³Ùá¾hžýaî B3‹†#[Ù°Þ€…á6îÂüíVfh›«r»i“7¿]€+!GçïµÍ˜³øê~î-ª# ‚]÷Pþ!W†×HÚQâN‡Ð®ã£+/~B‡8÷Æ=Ÿ EÌÕÆ½Uz^ø¸æÞè¶¼"üB‚¢£¼ü73wE3¢Qç«÷¾¾Ý4y ]Ïsèœñ¡M%FökF h”Ag¶ôGYÇ@<6x.žCp´j²âÇô³,¯eT(š"÷ÉN@ íÁ)¡1P±:˃ȅ˜·ž{‡OÉ;|¾&È ”Æw ûúò뇖âþÅõ”T{W9Îu_äÅ¢<›Ê>Ħ"Ý8{E…ÒÖIYu24–ÑÔümšÔZV¥‹Æ¯d‡¾Ð]ÍC5çxCÑÂMýš]šo5Ð ƒ¥¸žû•Û(1möÀŸ7+ktµ7¡¡o#<1…¡'-¶ 9µ2¤~Hÿ3ó-Sc=G±SPªH<¢ Š."4 «ò1KŽU  äzm7 È¢ær>|ÈR< µ¢^8î³3&Û³zkºSúª¬E9p†©-o|ˆ:¤LðÖ²š¸,`r ¥Hö£)@“ &šU)cã”*×JgØAަ›ë¢Uù~!²ê€JÅWQŒøº^y7r^Ÿu.³¦ºŸ~ΪrÔɱÀDCB„ Ké핢ѱZ-h ‹ö9íW—8 |ññ aƒ„TP”‘bâ•›…-A(‘x!îF’ÎÇàN’N5ýX'w“-¥±Çù-ÁjM³¾æÜ¯O&àaÅìßð‹Wµý‰áÄ…WàñDì„Ðd< Ù]¿]~v—,'dK0ž'Csé†ä”ÏÉ ¾£äôIŠ7¢ea?_!'؇œàôõœ\M[û¸º-‚',2¢AF<ˆÏ´“Eêé>ýG(™Zl|€«D¸û÷1u×*¯]bÛäÅ#ÚÕæüÇˆŽ½Aô§¼Wqet6ë[fy¨¬Iêt…9à¡c¼Ëh“—àh| Eÿý3¿Ñ‚¨V÷5I”»á¨%~Ô¾ÊCÇpÞ‡Ÿi#Y¹^ní° !Z¼û-LГ7.œ;Uyð+î‚ÐâÆ¶»7A5Q†GÒ³`<}j_å…*vMPÝÖï-Åõk¢‡½ôLU»õº¬[l9oÙLb×V˜i²¬œ¾¥k·L%ŸÉð»¾EöÜ·ÚwMH,3”gqQB.…L'8ÉW “ùÔX¯Î †pˆKR*åCpº›¡jE$X•7@!IŽX ò–’‹¬ÈñFƒ1’¦Fis€<™‘œ‰,ÑMiFiÁÞË~IÁwTˆ™=2 Ñs¡F‹Fd¶™ýHˆe=çjÊÎX¢r‚IàJ\·Ž~ѲÖMô¸õ«Ö°â XîgñàcÙ;ËëüŠýdâù!Û¢¶ÈÄ`}ͦù§ëW¿Éb5é$ïb8[º1.²m¹—*0æ…-Ö–U&SCˆ©!0–7µN­_P@Rbôxœ!Žª•Ùj^T4@1±tÊ|Û ­‡ü¤ÌèE–OZøœ(Š³ÉŠÉoŸ%¨Œ%¬NlU¶²À¿JS¢tñ<"ÚÔ”ÜQô'\Ÿ,ç/Y倎G©#º#-ûp$ú^Š!ëôôãGïðz7@åþD§ÙÁ6â…Dò¦CDÆÆÆ'àËø˜]ûÿ Åy4bP´—¤ÆeDCŒ•ÏV¢x…{µ]ávç7kJ˜`´Èæ4–b—C¶,¶µ‡mp¥;wï>\Vn¬kÌ;È«î€$uøÀm´†l[Ü¿$)=:²Ùxt¢bù,é¬ãxa˜jyyÅFœCNšR…Â&?ïWA£>hóK¤›l i“ÝÆ•¶I¡@¾T®5jÊá•”¬?'D—“×ôU5ç¿úv˜4]žI¼..n‡¿š«HΤtРޙdõ–UÎ7¡³zäÖDÒïâ{HK´ÛÁví6âÍrÜÉ¢«t›t3QKë÷ºîB^pÓú¯Áê­FÓHÀ-ÉÆ×!ÔÛÕÓ±›¸—Õ¹¦ƒB9ÓPš¬ü†S'ÓË`?Ô”¹–;ëìÀ™(hseX7±=%£:âŸs·LÂC>$ЍôùÄýDâñm¢i'½ r`kŒ"ñp•ûxpî»fµŸ°øúUX¡¨]N9é Ûb´(ºOÊ‘?ó‘Q¿”u±ê¤Ä˜¡X-ÅB¤Wf&%“È+¯‡¢?ðÑ!bP®Ù*Ú†¬ö[°¬Ä7Iõ^hLN×C>SžíãÐä~äbãéÓe,šÏÍ.¿xT“ÏKvÁá>‘Õ<­7I¼µO…Ü$ÔY’ *‰Š$Öwì’7`ÖLÚ‹¦ ©w›Žg\T»×ÊœU ˆf Ã*Ë‹ v~9»áSÜs¦pÜëÅpâ»}ªQ—L>¨2Œoƒª%Ê«D±w„o„Èkx–(@ýZÏI±w:N¯"–XáY金ö‡MƒyÙÕQ‡:òz}0¬qu)þ«CJt ñ_«,Ð¥'g!uKW©¦õšèm Õë¾4•0_@=ŸxËÁÀõ"u×QÈ A6ä¤ãp§Ð-˜!:¦“¹.Y&Òˉ‡_'R} ‘ê©?Õ£D¡ˆD¸ºµkœ’ Ñ**º'ú-Sž2¢“Ä«ùdI -ºl)våÊÞæJîgZœÿžCcoڷαܞ_zà,ÁâçÑèÒþ]ÕÙbTHb$ßΈ6ú8„8ö%Î]´; Qu¡^{®j‰qwÍ ¨…¦F‡¬ídWý*¹é•DR´åŸŽ*Ü‘çïW°É_Ö:›Æ¯¹ü¸lµ&œàý©w•(ŠÕyêR•F áLkÑ_à^@§$jÔÉ ntë3iFŒFL.¤ɸÃt|žs0Ÿ4×TÇ]n÷°xmb\’">‰õ<ba=¸ì ®÷9—¡ŽAÕ"½J^Ø?#qÇŒL~÷ùe$©ºíGÂ"Ùbd%Á±¢T4â¾a0¯2qß­²6þ)o™fàeâ–WÂWôT‚ñ(R/.Á ñ<;u7G Ð4 MBìà\ .ÄM7 ÷ùå¢l4ôË{Рù8ƒßþ„öî š|?]/@f—Ÿ>¢––î’z·š5Ÿ}¼f‹é™Þ·ð¿©¾A"#îˆú»C‡öéò !QFDC œVQ•W\ƾ«v—£‹F‹ÚWðP÷ ­ze)þµÅŒSHžÿÄâ×.ñþ"Ä¡Y4ꂨ;/eƒ{o™“X±'fQi[}Ô,B“`À¾;K‘Ý™ý¥ù¥JcJ-ФoÈǾ±Ór.‚.)ˆ©Þ¶EáìÄŠ±¼ÆÉIÒw삟nÑ»BeÑ;"<Á¼s\a6Û½Á…™÷b5ê†:ý|ôfmÔÑu•ìšÊ•°‚š#$h¼’CPMôUiAqƒ_£ª˜ï¯\¹QYX*«ÛU—RHxÛR:µ\™(‡f{NL~fQZ)‹çcJþj¯ñ1Á~.ÀL†—¥šê<ƒL|Iž^Z¹§ï#,CZ;Kìç¯1tÁÑãv×ïÓ±gE‘Li÷¼æÕCƒþ‚ž«2XœzIŠ\´ïe¤ÞR,—·xÅJ2!K§ŽU³ {'GØ»‚.1âËêtüê…Fõù“c9 Q¤lXb¬MͨbóFçŽûž˜ò©ü§"duT6ý$Y1xÀ€Y!§¼ŽØ³ÎÛÑÙ?'\“$³/Æf×mgPêç)+¢ž¡~Spº Æ—%Û½”!äùøyU%5 'ôN+³dïú‚Ví óVŽ_ÿ›ÖàTØbéΨѢ·}¶dZð—ÍÁ¿j þw‡ýx•kDÇõèX›ÃñÖ¢ÿï$©-‡¸‚Þ|ˆ@ØñG£¾¾-¸´¡fuѳ²›çá&óO,º‡±ø‹÷|Zìûá†Ó[¯NE4Oaí¶Ýîà ‹` ¸4º2â£î';ûÞ,¸[)Ã!Ü$É‚ x8K²g¶J![¯ËÔVA10‘™!ð $çÚÛ» ^[<øuágÞbeJƒŒÒâÓ¸?Ñç ÂÏúwöwÐÕBmÒ.µ•XºšûQR\î³-Ì/п4`ç®âJÛv6¤fý̈fÏÑŒJÁ©K_\BË. 9%Z!—‹ïN-ƽŒÒåy[O*ûê‰ó7Ñ'z<Í!•Õ(@‘Õ^f£Í¦B5A­ŽI`=ì|ªœ'‚N4`Úñ¹7ýeYÊ£1W·W$ìL¨t+ ÈôOfþúyS}g§^î<¡º¤®Sgƃêmµ½ÉTm§i´Yi,€.¹æ¸qÛ%÷f’Ë:Þ~Ž:ÈÚÈ”üï¸ 0.Oþº˜@ór[/áä4ÍCr#ƒw›þ´CÜ”¥‰ÁÀæ%çBSQìç°ö”ßéo.\zŠ{µ 4ûD¤^!ø¯EkŒ‚:JoFéa‹5·NÎ÷?(ÜÔËESòjÐ((„rÈL*Q‚‚â)Û j ëâ-jÔýÈÏ+h$~âB„Ü]¼ª ‡[˜œ¥­ ‰¼žç™‹§¼“Í<ŸðQóúò7—ˆu÷¸trðn®Ç±-”ªµ‰©D5&_;—™~ñh“¶„—Ͼªhð#ª¹6Š—ÏEêL9DCXT Qýp7)L‹k?Wêð.®^Ñ—NÞд "¬Â·+ÃY“$®‚*u‘Ä-q!Fî‚ñ`[`zó+㻤ÝI…;¿KÚø%Žüdô&ÜÉ€ìX®ç¿©8ºÒxb0ù*¢D¬®2`ƒ®Ó5°ß”«%íÏ'BK=âaiëöý‹o}Ð6¡iT mù˜TÙ-…-¾ï:ЀE¼¬=¦. Z.^¥HR७¡R¼ŠÓ*rMuvÕi0˜šÐ ø‰€˜üs^׺¢­o¤iá)ª(mJJ. âHsë+ª¾äël¡µý#&<Ürâo p»kÔ#ë,‡÷æ$wþÃ9Éá“áH˜fÂs”:”{n 4Ö- ßYŠ×½Q˜òIòVû9[búêbO…*ž 5²ÕYŠ'sÑêä¤TR§ï<å&¤òHuãO; %í®ÿLŠe­Öx 'Wëˆ Ó}ðáãß@rb¶ÚÔÚ"ÕÅébs ´iÉ9h:—"E3ZSÛ.Zµ]eÄÓÐ*î~áé½™ ¤VàTpãÙ ´à—G~yþ <±¿áìÑ\¢›}¶ÄîHˆ_L"ˆÁ‹D¯_¡ñˆ=w^Z!ф۸6·7qÕÐÔf7–G”{Ä'ZÅ–~~¢þ 0OöΘ.Ÿ¬Ÿ¹z9^=¥r^T1-"ë†T^#ÅàRÔéÇ ûÈÛŒfKàî²›ƒJîVœ¹ ·˜»“N:Ûf¶§>¼ÊX¬¯:² v°ÆÃ—sê€i<2!&ieÀ™ÏÆmª@u¼:()âÕ jˆeäiPÀîÝ­_8÷[à»ÅqNÁYYm¢Q»™:ÿbß ¯¨-ã¿_Œ¨Û“'?±<FÔÇÈ…„ ÐñküLgºÄ8ŒÛHCjdœŠï+âs­Û̽QÑd^¨Y³¡¢ç%X%B*®£¹ÉVÔáù¨{h½YÞûì¹_e¨^fqäEhóÇ/¤ÙRÜ«Á|³užþS#=ÜY´–3%Šâš„꾨ûÕ'9©ª”™¸#„ùUaqÂ-ÒrÍi›JâuJ¾‘+Þ=<â#eø0ñ¹iZ]j2›•_âÃæôˆ|7íV¢Ë=À&È)h«[Àf3vÇ·ŸeÄsæ¨u:uVßšCYÙvƒg”GÂf™¸D:åÊHd†˜Ÿþ‰Ä#oîÁkZ¦GsôBäÌ=”œ ÚïèáPà_Wœ›™J’V«![m”Ò+a޲岘rî*&!E™’uï[Ô‰Ekzÿo^3!É ,½÷dÁ¢é1²~ì÷ØRÜJ|ÆQ‚Äÿ‰… ÝÖm cËh¢)zÔ-kRlÓ³;\ÀÁ»l‡>gFù-‡¦á^¸/)Åp1bæ/ŸDÂþ¤²  l„õÛÝ}l6“ô· |Î)ò"Âm(dnV¿|œ–ÙB7Xø^‰û‡7ª‰¯Ì'nÑ"•`¥wƒ¤e(òÄÎ$Ñéò3.æd§¥Þ„’Ž]DØ Oœ€ûzb ±Š‡`&{”†“º“é'’Ksú";iߘ+aL·t7šŽ”Aª#||Ì”@|¿kSxIdæÒ=_Õ>—™§O6Ãzl„Ö¡i›ShؾÒwÊ*Î øiÑ/Èü‡{¿²óy½j·u£îq[ºy§r0ç?oºvýÒÚylI«Db=gíô)ó.Ü;S}éÁAuŸU~ÐVX½wÞ E¶a¦™'ßIù¿ŸzŠÇGqË$……;är…’Å]ð˜‚4uËHKÏ‚l+"uOï—^4ÀS4Á°›÷„’Ǩñ„—Ç q[p~€$¤Ê釼dãžJ¦mIÊ+Ky$lï‹õpà 8XR_qdwN-Ñ'5Û 1Ce{%/Ûܧ-{aëPt{»ÝœjÙ*l)@c$Åᄵ°»ˆÜ0G³EyEPL.EÉðdÑMÔ¤Ñê²!Ù*+.C©Š–«Øø”9¶ýë[Á¢¨p +‚<r¹à±æx¶hGÛ¥\š,š…›ÔIªPZÉ3â²òu9Y:ö:eŽlÿúV°(—lK†Õ„ýMŸ´5m·]B¼F~¯_ Ñj®›¤*¨Ì×7(È×·,¨ªª¬¬ŠÅ7Íþt­íE<'ÙÿýË:R×U%}mÿ–Rt`Ó4YÚô4"Íf-µNˆÿ ¾º¶ êUz„õ G:ý#½Å© ç ?ÐŒ ÈÎ`)>v¼eq‹¯„‡-61!AÁ®_¸È.|Ë «…„æy3{þTÜwýjÆ7×O7#³\8zLö¹Û‘Ä:øŽS“5ji«ýMˆ#2›Hyf\f¦69+åt-ŠÔ ­R­îµ£mÍÿÃÇØVRdcjí¼µa‹sÐ ôÉç9%ÇZd9›ÖaïÝ` ïþv³½ßaDMÆkÆ=Ê×[4ÝÛ}1Åð‹]$f½8Þâeê.ŽTÉaj[ÿö€!<بVÉVtXè¸&:èÁ¶ úĹ/¿%Ôp òÞüåÖ«8¥Î«ÈŽé°9Àì­&ß]öâÁÙ½5õ웳‘‡ˆÉOkæRÍ\êéö°ö¨×îÇ÷|yàVÃå’Úf ÓÚÙJÄ÷å°xÆä ÿÛª3`dîï©®=€-kÍ–,µ[žàÌ´àg'îìª;qL¦ß”ç³wy‘_ÝÚz7¦Í¸É¼?ð)äŸ?ø4ľFöa‚¯ÚÑjn•¤|{…{XT¬BÁª“’Ôü’r“«Ó¾ºxA–ͳ©ŽIKLN”O›;Ù”9ì­-¬(çÑÿæµ¶Y!Ž}³#LðâŒÝÇ RYh·àžÈ ­4ÐÜÝh.êŽzæ´G©SÄNXˆÅ¶ì:Ü! ‰t•…»žÄæçp÷‡K2IMÖ¥ñõÚ RG½þ)|²ñÉ—Ä·Ÿ–¼ÞðÚî©aÝ17‰ûBrÆå©å —°â~s¶•F•òã“ýNÅŸÉk"éF ·ÊÄŽr°ŒˆˆXg.Š$ö6!nÊQ×ÕÈÜuŸòy,0 ¥R¡‚¤¢Ùóá§ñ$ÀD¡ÎvÃóqlÝv‚Šdejæã/‘ø,{uÈFB¸ÿç!$¢ॿë³;Ïüˆô_4ç÷³È†95ŒìDñÓÈêoÆ‘bs9õJÊBKý½#CK‚+Œ…†R-èý§kïϳà‹êÉdOóLS­Ðãÿ×c-ê½¹Öœ9l%Èÿ0Ùw¦p‚ÿÐßþÞ ‰›ëø?ˆ@C.©Ošz×mµ Æq‘j>¬’ÔIÅw­‘¹HÜúâáž ;ëbƒ‹Yç$…D2žåÑE¥¥ù;Ï®n²‹;¯Ã‹~ß0êð·êšHH‹v–áÒßU˜ïeZLy‹Fr)¨Ñå-!äå¦ff±Ú™~+¶lR(ÔjPšX ûÖ-DÿÎ,%aKÞ,wbÔ³÷Œúí®P‚Z£ÔZyå:ƒ˜X°jìßm×ýw÷Ì=¹9ìɃÑãûo|ÍŠ·f@TÆÅ)#c!"Òw(x~[nO!›3‚,T(DUÈFr®¤‰¡t½8%ß)J—è[•!ôÛ¬Ú– è8U{Äâ,…œM{6‹RÆÆªXüÍMŒ†D>-‘$ž›œ™©cÑ?ÞÌMÉ0Õu!ú©^Ðp¥ßrŽèºn'Þöøzó?§ç; Ì pëµ q|s’'4ÎÞ;ãz¯n¾-Ù÷Cõ•”›¤òš–-9°P¾tÇh;Ø ¶†ˆÊÏ‘:í,\‚Ëé'ŠPço2 P—#Іg®‚Ù°Œ1UQ\½ña ÿ¯…ÜÔÞF/z‚*«^Æ¡Ë@Ì._: ¼øùb1ùαr¦5Ô³1X/¾ëýöŸG¦9ÿ›&ØÞD ßDò°ý+’‡­ÃÂöJÑ Ž¸1\¶0-Ý%u»VÙnqU&²¾õ«Rü™µ˜ú·gíöoúü´‘ÄC7:¸ÿÃ}~S%‰T…ñ}$…&°"N qÃ`oCæô³»MŸ® ö½î?­Ñ LþJþ [ö¿…[UãÛâÏÊ}“ì\vD°ÁµNÅëƒ;’Püôíÿ Lñþ–¾’­IqA!Ù‘…‰ îÍGýòQÃÙ²ÚD¿ ¶[ˆž›W€|³Rõ"c§+ÙNf«ýºtÔk´|6OÓjuç»t¡¨ÿlõendstream endobj 642 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3568 >> stream xœeW TW—®¶éªr²eÓjÜpÅÝ5Ü Qã¾b+´¢b‘M𥱻oÓ츱゠´,"–¨q‹{&FÆåhô7êÿ'ŽFcÆÿyÌq^£þ3gæô9]çT½óî}ßý¾ïÞ§`:1 …¢ûìolŽÐm5Òwêæ¡öW½€,i»Û6OÝ”ÐÍáX¯îe®8ӹBÁvuY¸a}„.P¡›­‹Xªc¦Ï”eÓ"ƒ¦o‰Þª[={ÍÚuó.bG;î³ñŸO˜ÈôTŽÅ0}™ Lf>3‰À,d1‹™©Ì4Æ—™Î0Ì(f,3N±“˜Œšéɸ1îŒãÉx)ŒŒ^ab\W¦/Mšq`¶*¦(.wZÙé”ÒS™à :D8´©bT'ÙAl)ûžÓñNüjþVçyÿê2³Ëo]“º¾éÛퟎ£ÍŽÿéäTGœÞ+×F2 ¡$¯ŠS´ý[OiGòÛTúɰ <6ÃδôbiÿÝݰݘæ|¬–ÅÎÖz¸ÇŒ£a·&k×itTa{™ø¨†iÙ:ë h‚x µFžÜÃt5‰g‘ÅjÕ§xÁ’üˆþ¹m;î&TµÝí) æH¾Å/0ªpÅRkõœ­•9pÈ«Jbo£.B¼çPøÖ[y-W õP«7›2 &#q'ÓÜI?\®zÔ±võ0Xå%Ì[c!Œ®}Åár™¬"Å©É&S¸ÑC0šâbÍq^›´¬ào=ÞM^‚¾îÍÈK\„BX¡%3;'ÓŠp³;N%Õçk_@³—`l€_ì'£‡ùÒÊè%ù/Iq}ec‹²-ãÔ¥é–mI©°Í,¦Oâ8Ç&ÃøÊ¥W´“ïÀs¸`EæÚÍ7)< ÈÀ ¿r"Xã-¦ àX2h0œ+ü„T“)=MüzÞ7§¿*’I|É`¢#:¤OÌŨÂîÈiœÞwJzÊ%ö±ái»ÞàúYÀDE1ïŽ=Üž‘_b´=FþFúû/Ù˜°Ulá„|†ÌHSi¹«¹°VÓn ÐrèjEW£J À9œ0UÖt"¥Ñ ‡üñ5Ò£'é3céÌZ8·JÔï ”ðÆ }ôPb±ìÙÓÐx6§ø.Ì!®ö¬Î\bàŒü7Iñ@’Ã%e›SkÙ4¢ÜAœˆxâÍÊýäGy»èN…ûõ+¶²Él‰ÍC® 7ðØ“mïßþ8-Œ ÷ˆ*€rQ>ÄRä£ÞPÉÏ$Ä^²T¶]ÂçjŒ$CPM‚Äö©ZdÚŸF+Ocq9¡H|«!-j Šä%á«VŽIœC³ð‘Ÿ¡{ŷ̨]–Ãia÷‹ìªx#iÏS0@§DtrÉsdõw‹«–ÎX³|öVUœÐJ&~1TC®~±®S2yHcqwk?:½†øm›V×ÄUUÕ”5ˆtûKûCM¸Möªq­û “râå1è­†¦¸Ú°C¡Uá9“w¯ËYõW(¹S·iQ¶hÙnÉ(¾²+4:8²Óñ¡bÔî°œ5ÀGá@ÜÖ”F–nÓ4„Õîí°î$Á<ÞÄô‰jmJ3ödÀà£Á°UC\<¤çfÂÞ2Q0(:~JÁ£‡úÐ*Î~Î𽄠ã\ß"«•°‹ä&¼”]ÑYýv½y>\¯±ŠúñÁ…ZÎ<0hÐ #¿žâò39ÈzÿóÓÝæ‹­¢“|Á`‹pîaôµ¹ÄÎЬ› •OWª+’ IœcÝPÁSò?›~ƒ ^@œvŽ ®?X]Svüp|‘1S<”ScÙüZŸf7ÝHrS àýPtNøñÔx¼\ü7ÂÊ?ÅSlé.¨Ô•È©…#CG$mY¶¦ö28zÏi«øA1›ÜÆóÏ :Û…ùQ'¾¿‘S—oŠ‹ñ$÷/•„jÚ_Jܾ’¢â}%¼p#-¯eñ3/üö£<@ ‹¢B7­^©‡z.e/YÜÁÚSUç)‘€8ΰ뢡ú˜Û/Se¸áA»2¶‘Ñ$øþ”‘^l$ ‚`ðµÔÆ>±ùGKó¾-ܽÁµ{ºìA—Qèâ&ü*oÁÎê=; %ÁlJÊ£f¯ˆ_F9®xò`OT×»5¢„DSlªç'„Ÿ>g¾(”‘À)„#<ñømÇÏ#ŸkO¹»Ú΄ÙGp¢MQƒ=*_`·J9•Æ*އŒm¦ŒDƒ»bAøL«=Îhð<[^« ­ËOkÖÙ–ÐOcÇö'.Äóõ‡£›Þi†¡§š¤±™õ–ãeG44ìªì ™ÄÍfað»ßJiSPÆ0ϰ»RþZnS_ß-âùÚø‡kÊ) ”®žöýó±åƒ`ú*ÛÖÊÉjì4èod¢Ø>îì´§½¢=­ ^Aí„Á<œÁ¡ùÛØYC|{N‡/ÉP‘xb z±8ü¦}tf½„!M2פ¸þ|©”Â`5 râÑ%d@µûšü…Gá ßtèêëo6^bV4˜>Éguè<ÍlNÑ‹«‚矜™¿‚ö‚aÓ†öydeYŒ¦%èh:*¢ŸR…”Çîݾ? Vò+¢úù‘a¥88M4CvÌ'ÅÏìP|~ffnžxòäÍ _ à®¢êÆ©­‘²ò¾¤8.a:åeå¥IPÇ¢Aõ_ãØØ[ÎGUÁCìü½öûÄWËž³¢¾§?ú8g‡ÅW¾—Ã~P0©€°$Ü”oIж5’½;î¦D%SÆjÅX˜““ ù³3Û˜Eâñ¨;†°8žF–“I¼Än´§ °qɦ½ëÈŸÄF² † HõH(‚½b›À:É·©ð"ö©“\/¢˜ƒ¢û{£è&É{p mŒKµ#]oð‡D~ +ÕŸmj> !ûøºô¹~ÿNúGßoFÍ;µ½²¦¡üôYݾíYbUe]¡ ø''ýÖΘN½…è’’Áq œ.O±‡×7Õ ¯_=©¿½ëê] Æ5Áذ·› úËø•ÎozB+ÿcYëExÂßó»JvQCšéT–T¾;3+/W¬?y® øg0fÒTHºEÏξ¨Ó—l™U•žß…ìÞ¾4uÎg÷?£Ž>öÕst;ÒÃkè<Þv Ô»žBçØýÒ›D§FoŸVâ( _ÅÀBÐùñ% [Ö”»·R:g»¼p¦Ž+¶®ÏHˆ„~CÅæúúÊuWu×ú^dÂ8’ýEþ¤ÆQò»}‹žJó?£§†ôÊTûÀŸ¥‘õûÒÄÄh…b]ÎIç_€ÿ@{R±òAt©¡5XŒ.Jù|›»š„°[ ÌÞ‘›eÎ7ðZ6ŒäRåÜݽ;+³0ç!ѓل˜øØ„˜¡Äañ2ˆŸqröIÙ7Å“œ²žÊ•ò(û¾¶GàWî… µüFÔËžõŠSOn<ÁO”ôüs©1㥠C·lÕ'àÿÇÈfÂÍŒ/†Ͼ,Ž_¼¦ðÄ™e¨Æ±Ÿb'Ñ[Õµ!xòØ=1såo=Ïmx|zu XÖÞU=Þ7qÁàgîßÿ®©¶TÄÞ~'¶‹…Y”¡K‹ ßÕ+îQ½ÎÅÞö<~Vÿ¸‹¤¾ƒ&Ò±YüÝ»×J¹·êĦ¦ÎÛ¾a[hȪH€õ™¥»¬Çö@3të¡ÐÐ訵g ’¶·Q1_$½WÏŽ0~Üyý üóûŠ%)Yâ®oa>l°·¿(:ÐDw©xˆ#•˜"wR7…Õ†„„……„Ô†55ÕÖ6‰¤Ñáÿ½ûWó~ô¿›·Û>z)mèʺo›&NÑжAÙ–ÓSÇ‘´6ÖP´3/Ò~ 3¦¥o#‰í¯ÝÓÍæ;L±vÓr5–c™õPçéuŒ^^`TÇu ÇË~èß¾L5TË6ZÿÍô¶ôsÇ•…¢o“Ól×lŠf:óÄc¥|o«_š1ˆÁLR²D4`z&n{-’»ÔT#Ó—î>{G¬‡…åI­©gáOò6ÜÈ;»ëÙ­‚J8ñ%ÁEë Là;üE6H×)µ“±+zJÄ[nåÊ¡ Jo‚ôTñËý!ø8m)»Î[¾/áÛ÷–;a}Gkwväœô…ò¼|\UVPÈJ]í*vqX´¹[ç#V«Å’™eÉÍ=z¹[7†ùoiþ³#endstream endobj 643 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1075 >> stream xœ%R{PTuþݽ{ï®D„ìÜuWën<,AžB¢Î Ãäì¶à“1Ì.e¡Ͳ¦8E)? aâ± ¯Ñœc6šÀʶ%†À4‰72Vš9ʹ·;t·Îœ9|3çûæ;ç£\†(ŠZŸš¶Ïrø½è¨ˆŒ­–B/¨ÁVÑ!šìKc_y×?Wî¯êGä­'w',©iÆŒ}¦Ì„‚P0ÊBá(E ­(Å¢8´ Å#?ä') 9Ê@nD¨(ªŽrÊT²Weçéçi3ÝL÷ÂE¿5™ãj)³KxÑFVh1@M좉e‰Ýc`n°·ÀÌ@/{“˜™0hàHû-¿$– ³5ÝÊ ¶²¸¦°M¯üŸ » c°+àÏiØ:½0‘9µAÕ/¬€‘ÃóqcwÚ~uã›Êåg#A<9é1@#«*„GK÷tA0ýœ²‡ð6êî"-|¢QæÓÌ~Ñ'Æc`ýĵ–"Ñ`£þš´èP‹Â*ˆš,¿•MüK½Ž?n)é>á$ÑBŒ&ož!ŒÇ0!¢ ¶úíBÝ¡«ZÍu´ð TµãgÚ´åŒ)$ñ¼qpº¡×Eý1ãS´0)”r+¡¿{ŸRé1,‚v°àÿøÈu‰ê©z¢àI ôB ²_öÆ{-”Ýð²ŒBÃ,“‹GMöÃäÃóWÇð”ö>¡æI0OÊ<†9…Œd”± g¸”—ŒÄ‡'!Ð!,(GŒ)^¾ð*d½_Œ@Ýåš„K“Òa ÃÃ}ÖöìËùŸE¶¥ÛzèìGÕG:q¯ràÊOË3}ùݼã¶é¢©1k‰..,Ôl·ôXtΜޒâÙ¢ÚSç ›µæc³RoÒGåF׎%ð'L·‹‡°4Ë@æU﬒܈ôpô/âÅ ªYQ#ÒÜðê#lTÔãúŠz¬\òÈE9«2.²R.!ÒbW)²ºÄPï'aV Ës‚e×j®‚hô Û·Á&^ÈYµ(Ès°ŽP° 62ØÌKqKËDé¦ê ‰†NÈäܤ)]ágmŒÕúy+;è3ñï#7ñ]×㨪²JêZ__„þ|%×endstream endobj 644 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 7506 >> stream xœµzw|Óåþï·„†/Ci¿_™‚‚"(‚ˆ²ÊƲKKÝ›î4iÒì|’4»{¤»é …Ò”!–€ (¨ *‚ãxã<Éyz÷I[„ãKÏÁß½^üS2žçóy¯Ïç[jàÊÃÃcäÚuãbc_ž5sUR`tD°û‡ãñþŸ"W¶' ãÀ°{ÇOãŽB–‘hôˆÓORî?‹Ç.‰[¿,Á;qùžI+“W¥¬N \“´6=x]FÈÛ»}Bׇ…oŒØ¹9jKôÖ˜9¯Ì7ÿõ©Ó¦Ÿ1óÅ—f½LQ)jµžšLm ¦P©©Ô&ê9j35ÚBM§¶RÏS¾Ô Ô6j 5ƒò£–R3©íÔ2êEjåM½D-§fQ+¨—©•Ô*jµšz…ZC½J­¥æRë¨×¨·©1Kñ©qÔÓÔ j05„Š¡ž †S#¨'©ÅÔHjµ˜\ŸHUz¼ãñëß×8¹yyVq§sÑ =ôºcpåÍC. ]>´{˜á‰©ÃùÃ?2âû'‹žü×ÈGåÞ<æÉ1¢1·x‚§F?U76Èkµ× ~øמöxúÆxÙøžg€‘³³ÙŸŸUL7¡rÂ×ïNZ4©`rÊäöÉ¿Lñš²mJÁTÎT1jþ뀯·Pà@ÛΩ']Op\+‹yyRøªÌUj&ÀÅÕØ5zð ”ÉÅøvϧ^o(ÃÕb&€Vi³m•µz¨bP¯ªÚ%6)Hµ¬\¦X ¹–¢+h”JãÚðëž©{²ÄY–• úæýzhaš`¯ªhc.³xRððn.zÝô$ç›=Û3íÎÑ'ŠOsœŸ¡I<«d"Pg*i|üô @§h ò+­Uæ ¶ôX+Ýô§›íÛçïðI1²Ãu©I‚˜´`ÑÛäÌ+ò´Z»)¾\rØtÄŠª4¥€]„©å¨øbsfin‘©ÄÄìG¯ìÆ2ƒŸw´Eµù׮ݮóOY· ³¢U6¤Ð»jÂÝkDÓ 9øÑ/Ü…½`Gû®q_p\óQ>[Ù¹Ô‚†Wø9|D_Y{0øW &å0C‰£2T V YütÏ~i„\º‚TÞýŸ(dÑg\4 Bƒ~b£ÑÞÜ7§`.ƒ½¸gÞ²× ÀGC¸·¬+¢Ù øCÞó &á ~’ z“QoÕÙ˨Ñ-âÞ3¾šÀÿÕã×ñý¥E.£Ü˧9x߬¿ô ~óðD$OŽò‰Ý¼Í;Ð!¡Ž+]UˆSœm>}¨nЇkv­'Ÿ;àœžJv¸f:<Ðów8®#®…sŸÛ¾qYà '?Ä8»,M&-ÎwÜOnøã±ìpgÀÃÚ!ê"2^ä8㥼W4é Z#ƒžq¶‘+Xø©N% 0Yµ M;€Æ<ÏÀSçvz_km®ª®aSj!õ q€F¹FC‹È1³*S}“ØÂüú¾"²‹QOýö‚Í@¬ër ÁÅØÊÓ]­`†rMqœU`…4Pi”j9M€VÝ«]§Ÿ;Ðk3®·8®¥x¶,PuJÊf6`&|5žC5ü‘{_B5žw¸M‚x™&SË‚ZªÊ²‚Ѧ×ç°ï¢øþ«åfRª9“¶,-ùu _çžFsCoÅÐH.¢*c–Å«Eª=¬F¡Éeƒœ|mN±Ž)GÞú*9¤¿'Œ›!t‘ J»Aš Uf²x\OÃïûæÜÃ-­ÖTð%ŠóÒêôää’UÊš‚¾ºQ@À<ýÇ)tŽà]m‹\æ—,`ÄÇBJ"ÿ‡êVgª5ë˜ó¨@«ï@¼Ïo€(†‹UQ  E–´ªbGþ>·–i»Ý…>è@î2Ïá¸| ¼G®¸ã1®hýþzØÏvÂAUЖ\Bœl°î0çå€.§€=‹ žŸqÏ[2ã3”r`µL£ì¯+áw‰qw'GkßÝe‘F•®`Ò— ‰D,äžC¹º3˜û{ôò=ª4U«x>l ©hÞD÷Þ»‰^¼ØE@þâ 4ê=Žóô2î,,²ÄÃÌÐFW”]¼YÝ, ±1QJiv?´ªˆ)šH¨yp67ÆóÙ÷Q¥'ªæ®Â¥ÿí}n3õr<0é—Nœà8»ÔY£I–3ÂMik#€N€êü¾:_A­:#ᇞo“¤ÆÈb¥jf îP¤ƒ:[ÄO‹‹Ù´v{Ã醯*/²æ2C>”Ð]‘Ž€Ãñ4yŸvèòs³£ú›n m6UÂI¼0„MðNX ¾ô+ݱÇ5ÖÕU0Å[Úä%Ð e•Žâ–ÜS}r%ÑQ}þõžs=Ý-áåJ!u˜l¦¾Æ4›ë–K¤ÀÖ^çTª ˆ ‚}Ð?½:ÒXK ¬&üfñøžVid¶t%ðS²!]lR›Ü:ÒʶB›j?)”Û;ˆoõWiÖéühð—§Ä9Œ×”åˆMJLJ™dFS‘ ")-n'ÎÁƒ¶ˆ»ºëïT_a …ƂǬAôÜTØIÏ:{½Ñ‰þw3ÜiO¶ŸÿÞ)txÜÿ‘ãàšÃ³ÈõÒÈ0D0þ°SOÊíÎ ½€ÎåáÚîfs¦›ÍJ!¦{B½ÒmôÞ A^)mÕit„vt‹½±²*5/EµÞ\q<øÜý¯¯Ýµ³h°3ÚTc2w¿Àæ¾÷¯òäåÓy'nŸFK¿ä¸ÖýÉå!8jbFP²oTÐ;@û ZX´¶vözÃh·î'êàFM¬,ž f#N“ÅiR÷ÄÑó¶zÇyÇ«>t|ʘJ [.?< "ÌU{êã:TEPMyuG B÷ÇŸ„Sp µîƒº‹ûЋpŒ~4~OR‡ý?ý"ª|D?¢d “ÖUõï do{Ùáý¬m{sJÓ¿C¯HãI£Ö½þGiƒn¯ô L-'æPŸ÷#úŒ«…ãò#ˆÎ†l&L›eÊrà±è/´Í,/¹øÞ#߬µj¡ˆ6) ²”D$1á°[ѧb‹ÆÀækrDÈÓ32"ü3îôº®üÿ£¹ÞPÌ6¡Éˆ%S®7f‚š˜ÔnÈM47—öîÓC3SGf·ZâÉD;Ýê~Ñí…£‹vc·PI™»!P0ñ¯ú…Ÿ{´ÂÖfndÑ3ùG«ß=|=TB¡0X»I‘dˆ#rc7GnO“0ɧ¶›~n ›Ô‹ÐØêÏî#T®-I Þ“µ=;”Mš%X²Àø*ØùufK%ÐU)FQbbJdȤÎC -uELéÆÃâ* <‚Æ•þ&(ô€ôŠ'ÑWôß‘Á\F b+!©J¢Ñ¨˜iÒ,Xi|±òéd•JÌ´V£’ÁnþkV\EÑ`ô<‚ ò‰‘e×Ú-MµˆËš*@WPZ»¿¥±èGÃü¯ö¼ö=Γ×@¤á‘X©ÊÒ¨ÒdLÔìLãYî`ùH*ïlµ4­ŸßÚg˜bPúïTÁ;D#õÁƒ‰Þ8¹ˆk'qÒXtEy‘ž~¥§p -rWhÔßNq“±£¿sÎQñ¾w2Z£î÷žqPì³øÿ·fÑé¨ÈËcvãù‹wù½CØb­Î¤e†Üj(¤Ë¶tf´!+D¾É·5âÝŸîþø·Ê¾N¢–}³iàmŽ3ü'žAj“*5‰”YæÿÑl6¦'W¸iw–¿š/kÒÝCO]£drlê QseÚ,v£N] cN!â;k¼´ÜÓ=?ê2@Vü<0˜Œ6ç`—ù1žÐsöwÜo&üma[÷› ½ ÷œÍŽrí¶sxS9No7û€'R2é~;" ¦TKL^VN*(@ É\VYSƒ¦ I^'»] M8/'œÏ’3‘E ¤ƒÄšV•U˜QN„vqÀÌÔl“Úœ«ÕåX³½¶²J¡Xj—4d’ô ™ÙbÏïymÚ¼c1ÉÐ ³Hûs˜ü²êްƒY\œX˜ZF òÝqôTÅ£‹‰^"SÄ êÿÜ Œ,šä¼ø˜¼Þ€E™Žøê@Ò³Çr‰•)q&íͦ}nA‚é=×ì¾téN÷Q¡ZÑgö¨ÚœJ<9[-SKñ€ž5^ØÇY$/ÔhÉL…Gþ)ÓqÒP©$,öê©n½ó— Åsæz¡¨žû†L­:ødÒJгÎÓ^…çNèkµ´>W[ÔϹx;Z@Hǽ„-LºÕâöµX;LÕì>n¼¯?Tr£΃‰î Ý·f"ž4{¿|hî7}4 @fÞ<"™nš÷#jéýåñneü—ƒJ®rÍ«ô@Ó¾rî¾ÍqÕ:×óм)ßáQ8c ÎÄ/ÜG;Q(JFrfîÌ Ãü­³VcÎìõ‹€žµéS4´3={ gÝ¿{õÐ_ñÁãÜ0šíp+^ÉMgšÍü¸Ìî‘x !^¶Í5š×T4=?!cRðÏUîb§¤°g¸Kzg­“ÉSøÒ‘oH M/.¨3äW@)mO· SÃýÛRšjE¡{MÄU°ç§Ü"k¿H,äÖ£¹æfÛ±½À7C™:O£îT:¹XRXYYÚÄü¶ºh©Bg®§¾à¸bõ¼[+z÷ÇcÑóßÇŒÓHë‰^â¢Qèé¿£Áìœj¤fNß½+<Ä/͇ {÷"ªîß~ν|$aMïö‡XÄ»s¢[x ñ†¬å!ç꜒´rz“VV’4VÉkãkÈœŠâAxž0÷àŠkGÚZssٔײüä)qüàÁ$⊠âm¥æÜ2’Šò²KÒ£…!ÁÍé·~¾~áz #@¾$„½½Ðk‹úºíP\v­<ÞÞA®tÊòš”U =/·{÷Àõ¿^Í\E©xZÏZ#&/[2KÊòŠlz¦ -î_[öjuÅõ¥õmg/ÿ×%ðÇ T²4ú˜uŒr¦#ƯƎ.r…}Í3©"‘F‘¥b26ÅDYˆQU×Wé+ôU¬¾ÜÐep"üÀ¶b4qïÅ;p•¾ñÖ%<’ÁE‚ ÏÑáR§C‡{³Îîû3tœG…žˆâ8*X*Te 7±âJ!¤Ñ£[ŸŽ:{«î33ÃʹòÅ-[bbý’V=•KÞeª3ëL:¾IW%@ŸûföS­·A¿ü2 9qðݱ£?B·þ½C±ñ/I…Úꪼ†¼fözËZ«#á¿»»2tfž®x(, U÷z…"i8V–ÆÆÌ &Ü­$$å‡T½ß€žÏaF?[í ç•eÚc¢¢¢£’ SjëëõLßSƒd‡kVÚqí"@nBÙ<¨•µ&Ô':²ô3jÒ Ñ….¢ £ZéO?úòöýš‹42e2£z>Ü›EÁìM8›ñßòþ2m*Ñè؃üäkßÚÏUvyò°Ðëh¦YU”nÚ’!Œžµð¹Ù‹íý©ÜP­·‘œåiË&Žªv—ÄïVË4*Èå¥Ñ¤ÕYÍŒ-·ªÞš×¼å\æQ  w9hõPÌœ?¸K~ …Ÿr—xÏfÞ=ç­>§òùcÚ6MÛŠŸ“=ÈÕF¦òìþ3äs*uÉé} Àzxy4~b ðéÖ&›v/ñ975Sc3Âý÷~véÚµR[ô´ëÅ?,î9=Ñ.'vx ¥®¡îu ¯­Ð怔ɽÞaz¬ÜT’“äéëñ /bwJòâ\Ðçä€^ÏètZ­µê šPS†x@7rËA)“©³É¸…Çõ4f‡gKæ™ë[å‚áÈ1=aÂqÕ‘Þµa©M™l&WÑ:Äé9O¬ŽÀs6y¹jÖšuÕPôOåÂudü–¬gÕâÞcˆÜÅÑé‹õLŸá]ü$¯OVž;IbfÚ¿% Ѷ´d€W——–›j´ÖPZȃ‹ÞÕk-åùeeÕŽ£'÷uv]bÎ6P¦iïÔc¯)n©JoôßÁl\%„güÝ9ëO‚è¿(Au¦‹Ž9‚v5+Î¥À>È@©7–‘Lµô`bs»½¡ÄÆØ[òOƒ¾?…ü%-ò¿ö0…ÄMRHäŸ¦ÙØé…yfÍÚwsã]»¡Þ`gpNýk3ê =OI£ $|<ìÖŠûh4ÁñSh@5s×9 /sðû2ǯԯz¢.Þû§8¨¡¿ú 9(TŒ,1Ã;-0øÿ£¤‡GöP¦H…LþÖ½¡‡ZJ«+󘢦üs¿UH“âšK*´ÛõÇåt½ÂµM¼'^‰L )Q,¹AŽØ f [¨©‘ /§*eø@Oª×6g™gÝ1­5¿o@S…«`7áúȾÒf‘³té²u쩞]šVQ|‚e­­}ëüÀkÿûM¶f½Yk2Q‘aäåSý«WïcN×c>æ¼µ¡t§·ß®]1Œô’o‰?øÀöȈwþŸ>ò< ºÜ²Ú®¶îK@w¶ÌxY¬:›]óþÊ›þÜ"ÝÞžlGWg í£ÐŽºÃ§’헯؉ÀeˆIhJ”Wßjú©©û.\§o¯>¼:qnxIlssgSW‰Ø‘%W(ä*­Z/gÀ,ÌŒˆŠ‹M•—߸{ÿ»æCéK¼Ïg“¸£»© òý3±5Ü’nõëéÙÓ|}ظˆwýÁüêÔ¶)óš¡€.&mSû¤¯8äs›Èð¨ŸÑ°Ï§ ŽR‡óÛTvçŽ36ŸgÙS‚R¤Ë{i©…¶-÷êMNzºjV#OÈP2øõ%U­¢X+?Ô–A(’jiP9Òw£H£Ü+Vž/c"ñÈ]xØ2L¿ÇÌöVªdª¨ ÐJ“Èl,È5Û‹Ùb: ÅdäjŸLò ÅÓ•îýŽ’ŸR¤°–äÙÊL3šjÔ˜Áüšóy…ý³Ur ÉwßÜÜO’÷°óH…ãÌAå¼®ø_°çÛ»–Ê¿ª¸ÐyÒ±ïØ¡ÓdBkPZÃèŠ ™Ðœ^ÕX\ÓÒZë3ÿåS–²sñ°d<¼éxÀ3ÝNE˜>=ÏàÑx /ag`À& ×g©½Ñ‰Ò?ß{ŠXK–%•¤ÂwÂñøÔúÁ‰\#*=¾ë:û.zódAÇ™BxPŸ]ŸZ-7…4&•þíP÷ø¾¾æ€7ðÜäçÂòã¬"Æ(Õj:‚ñ›o¤MúµË[Ý­¢ÝOÈ™ô o"¹BN b’1oK/Ø¡‚áÚ…Ží‹ÜÀ,îÃ[0gÁKkvµ»zò‹¿d>]^™\žþügj¾ù­Ý9™Tiþ”sžãìrfòª½€ŸÂcÉ 'âiþ•x tª}ÿA“0!Ñgצ”„¾ë "L¢ÚC9úý` ó¥Å é±a[;ãÏ|{ë“÷2?  ùÈÚéÕgxKÈ óÌ2¸šßR‡ž®ébrím?úHᎀ~߇_PÉUžÈ#yŒ}%žåÙeqQ‘1‘ ÅUކ:æô1¯\PÇŒ^T˜ZÓè¨w<´ìHñ±ÄþûéOî’ºŽ¶×r UõcG/»Ñ9œJî ïüö’ Q½,Ã*HIȈIËÛ5Lø+ËwíˆÙ³2´zWM|SmIyEy†93%C˜.cF=¦"3ƒîæò¯ß;°Åº éq.xcJzâDÍ—å­Œ^åˆ=ôÑöŽÎ–x{XLxVr$«ÿñ$šwê =]»„ÞÛÁíž]úÓŧC/v‡G5µÄ±:i%¨ä^K¦¼¡ô¤»3Ñ|äø `ðoxañ»CcRK«%Œ5¯å`Ð…EÒÄþeNOùgfªšÑÅAXÆ€™u˧ÒÛpÐø“ÎAH†òóµZÂU“R/ãA¯ã‰¯0x^7ó°Þ²¶Ø¯reÛ†|2fçä÷É·»8ÎQN?œÌ>›Þ•ø~@·ø‡R)Pš$ìñùæ¹à xüúžAX†„BT´,Ge´¡AŸ ‰w4­r Íðº/¿öŽ®W{Ÿ±MºYÛ;¼Þ;uôöÃ߀ù“ÅøuôžÖ¨3‡´É ƒÁRnñ½Òoó΢áDà ª2qW6÷/gÝ1剘^‚'Ä3é3=W?|w†»»"I¤Lm >@ˆŠ7ïlOkúªMESj˜Sè}O´ó‘Çvnçm.«t0Ÿ¹“좴åi%ä5«¢‚Ãc£Ê%e¥…¶“ù¦ßšÁY䎠¤Uz™©@O ¡nÞ}ŠB>'<>GF2vðtF£rèÞä‰}Iò$(RËiî§Øf(fÐfn §ú\ú¡Ü_íÁùC"õ«|__K÷8ÎW,Ï–m‘HåªÌl¦§ý_K‰-Ë{£Y¶ÕlÔXgû?—šòˆÎ¿ï+œÌ/h ÁE0òä «N^}’5%#=["al§Z>¸p‡ÎŸá8ãÑ<^ë½4>¡÷+ÐS˜·tÁNÌõa¶¿€—Âl:0‹Æ]¸ßЦœg^XÅKÞé·Í言Ò?½†5]a›¯·7ݺ7fÍbo¼7`F¿€Ã5"ÕÃùj‰û—<Œ”+‚ ­H›¬—kI®6ê,Úwìz]Íò¹\£ÉÌbÞœì-‹U)ÜÙ+ƒ&A=§à°±é ƒ‡ôÄJ£¤’…À—öAÉ9mzhcÛ¡SÕþà‘]²Ý¹Ô†öè í\ûC™!7Ç lדy‹üÝW”c6Œ¢þ• .endstream endobj 645 0 obj << /Filter /FlateDecode /Length 4449 >> stream xœÍ[KsG’¾ódxÛài£°A´ºÞUŽØØÐò,›’†âб¶öÐ$!²MÍi€bP¿w~Æ63«ªQ4¨—<°®wå—™_fâ{uÅ÷jü‹ÿO¯vê½óìpúv/þ;½Ú{r´óèÐ(ø¦òµç{GïwB¾çøžÕ¶òRï]í0å&GBcgŠÆÒW5WÐáèlçöúõóÉTJQy§ÙûI]ÕZZ^{Öõø½¬¼g‡Ý ½àÊ ÏnéY{å[,Wn³Þóeûa¢ô¶–5}Û,ga¸Z[öø:¢™ß/ÚÅä^nìkšÖ:•ºrÆ„¿¥ÎÊ XY3oO²ms­aú¤é{˜¿ñ²ÖŽõÍd*Œƒ1;ØÇg[ÕÐò&÷ ë.òÑÛÔ\²ã—ñ¹6ìðïݤÂ-iØ£dß=NM9{>q ÚqÚÎî½vγeœÃÌÏ»¾]^d‹½ o¡íÆ-„ïmÜxÜ[Ú˜ãÎ8v^~\,Úî:vT†ý˜u\,Û+º øÊc„e‹jB]+ö}¼+ó{Pµª¬2Id^v·ýu3Ÿ óaŸ©ô²rÞïÁ¥UZyÚvïáŒ4›dOiR¥uœuW7·Ëf ë„‘  ¬TKÖ\Ÿáûuì§~¢9ô´Š57í)}â>¥J³·8lêt\„à¢*édX:Û€06ob*cL-b®c›aödx:}’e¦¸ÚUÂV4óTȺRJìM¯Œu~DZûËïÓÕ$FÏàÑz;$Ê¡DÅMŸOÒ)µOÓÏ›%l8ìÙè½ _Áý¤^?L¦ ¤%ôàvž‰@u@hràØ³fÙà'«sìx"á°<µ‹Û&ïÚ~¤+ MQâïr1D ûq®8NHº“ñó˜(”¡¸tšÖtR9n²ç¾Í¡^x?=ž8P=¼¬ÀI?oÎQ øšöùªxy—nJ¡~¨ã—ñº%€¢FyßzÝË&x16°iöβß&7î9C¢AýãÞñ&¨ÎIa}÷¤ysy–+Љ ½¦ÙÝuG‚M¤{ M N©¨f†Ts~p§ù ³0P­lT!Ié£ ézÒÚãzC8›šÃ‰†wv:[Ì´=‡áñô/JÅÆžf7ôˆ&¦ëQ‰º`o$E<Ü%<‡ª0ž¤>WƒG/âÞjË~¿-äèt"І:ÃòëK·nT@XÓrÏ›ÐI‹¢Ïy»!­A4nú0 l:ÙE¸¡÷Y‹åkJ–˜â5_H8§LHk¿X Aå–ÂèOÆ“L‚\ºhú’{&)Ý!ǯJäÆãR²8¯.?ækÊoܱUþUÊ8¬êçüûËÖ”ß.K³ r=ŸÅ[É^ßdýPèçíòŸ(Þ’¾Ø¶À³0„W|lÓbtÏQU}îžÃ¤(#îÑCé²ö(ƒ< ¨ê ¿Ð<ø`=B] qžé‚p“s ˆïÛ¥ÍÉ>äý‚Z@56®@ WÜÈ„Ð7aÿNh «ÎP´<'!\^ÌÐ7 ŸAW^wÃKÉÀ¦Œk^C.rcz¬S~wíGÝàaÍÏÉôk¨8Û—ž\Ø·5ä2¿D²ª–ãg;ÎŽÈ"¡7\ <*#ùøÝ¼;¿Ç!Ñd¡+JZ 4‘Ô ÔÞMö£3‚ÖÉê5=õû¿²kJšN‰5E7UJ‘›ú÷Ã_i´vþ¶SWšhF¿•¬ùÈJ¸F§×ìU9išüÁ.–Ë›=šMa6T#J±Ón>Ÿ¢;QÍ–'í þûX^<úÐÎîÁ‡w¾Î–ôÅ I`r/ö þ¹“ðâcÞwWj í'A}Ã5–ôâvã5Y§Ç«GrîéLOÚ‰³ï~»À³¯µPìžZ‚ê% „kA‘Q ´‘cú¾0Ñ(‡aU´ír±tÄ]xYiJgâ¿amR°£5AËóÿ´Y ‹Ò$Ç4©ä7 ]n $ÄkÀÛ² •5HíA±ÒeÎÐ:tÈcÍ¡š L<®Àð«×ù  8ÒÂIÇü¼64‚£zÛ½_Þnrdäà¯É ‚$Ý'¨·Þ&*Ro¥"jàï˜FÐO¥ž;ßuˆ`‰Ö‚¥u@$üž>ijG°‰¾»»«þ\À-à8ª®?DpäÜŠx‘0*î篵5ñ«¯„/—=³=­‚.Ã/9‹vÝJ(pGˆ+§£¤DùéÑ‚ w­ ®Cž} eÜ{|ô¶O¶nˆ{ò {GÌ-×0EßkÊíyç^ºŠ«•ñ4XlËø|÷]Öˆ_ÍžEÅ¥–¶ìª Ü*P!ׯ0äÆEhI‘‹°>J 8­Q‰<}önšã¢Oh @¼๞Ås@ÇÄ–ÊdžbQÕžE—úøzÃT†¡Šà»åïÎIElsPp™~à-OÇb"<ćcÿ^£ˆ:¾x¸zkì D¯²Î~B[ä µU[h[.‚££¹ÞÕB'^£êʪoŹ|y«˜À§&ÑÆ(YhÉ^u!Þma!„€à RP‡¢…("wr…$á—[IA‰û´>Åš5—æWe˜ \þyêQZ±¦PóY\šEžÝ÷k>]æà§p GúC¡BÖ” bçùý°ù{¾œ]æÀÉ­ó¼]ŒÀP]ý}ídiЋSßæS.÷#債×q,ð_ŠMq*9·júFÚ Û%§ý ¹^ÑšŽñ1ºb~kœ ˜…à%´ô}±c ±À˜£‘ÐŽ~ˆ9 UHRÀ';‚ùš” AAÁU¤;¹¥ðº¤[ Bb9F&†Lêè6#oá ìýEÞ³=¿Hcjö„\°u¸„! syÖÝ­±Mê½ßäCuíõr<è GÚ¤˜ª¨—|àã®væ¡ <ŠA½ýQHR³ŠÑ\6E¬/†¢AëY[x$¦ w’C«@Bû+O NÒ´–IškñW‘ ЀV˜=¥.HÐÓÃǯªÃÄ„ØMßý <ˆœ©›æ7ø_ ‰Ý‡o">\U°á|þÄ|`Ÿø&BŒ1Äú ï÷Ã3ÿçí¼Œt‹’)aÓÐ}{)›¡s w ƒ:°×±©4ìuä]føs5?-<88h²×}»f"P`€5wè,vU®9}sµ¦h+¬¹ë/Ó¶S/4éhÁøI"gÉlK i=$Ð 1‹ï¾PȬE[â¶ia#Wј )%Ð dO¡fßäBÔF2•õú!ïñ½ÒR|FZæ“Ä…PÈ1Äw•Y²ÜÓþÿ"2äÅpäpùZl0¡-p‹¹–…Ùf릇CœÏB`ãC-E[Ëo E¸x°4_iï2ps„;¼ùzû)ƒç†àV@&ê3À-$G` äk:›×lamöÃIeê¹ÓXðmmÔf¦WÈù† Iß+Å^ç‰çÐÓ¢›€ÜÇu€¥¡B°Žg«xËõ61èãÌ`ÐÞ±â˘gŠýoD3ÒEüºsôŸCºÅ¸N5†Hn¨º‚#_NL`–?—€·×ç$<‚Ì{ž>¨¾›€6_fõ0ðr8ÄCŠA…o%èßÓ!ÕÒ±=}}P°·GkAåYP'†8г Ý÷1K°ALPä] 19»ÈŸ« kq{ÜË]î}ã©Ó›¬aŒç é”±í¤®y†Î‘2„·‰+,™þ‹BúÛ‘´Tx328N뙉¿ŠPK2þ¤}y(úø<í˨^tüBíË-1â7ñQå«B¹„¢y>­}ã qëRg¹‘nzÞweê>ΤA.Šp j¾BuEÕŒÍ5@á8%ÙàptŠ=é¶'Ž×w] }(¶ýœkÙß #AÑ‘0ÙÛ%þk4;,zœ—u¡Ð,‡KÐnkê×UÊŽ»Cÿ¿«+G‡ÛÏutB`U8¿‹ÃX÷Próõ€S­1*ÑD8{QªU§i>B_c´ ,1AÑxZÁÂÓïÚà{àŠ—˜§€&‘s2Jd –87oФúVLµE nTˆÂQR‰ô¶Â=lMaĈ(­å{+ò`GŠiåÇzΩðfð`hF0ö‡©»cÏŠÖZfˆŠ§‚ý†]$û©ï‹«¦L¹àRŽïJ]ýyþ‰X®1ø·¡ÊËÒÁ\Ý^ÇÂO*EU±ˆÀŠÝJHþˆ~؉µ¦+5³ŸjNÕ¨—ABìÊB< Mù@DÁ¸£ljU0YÐC>•w)æë]/ª¤KD­p9Ám†»ó00á Öõx¨T+t ÃîDŒo­r™gñ¶r¸ó¡æÕT²¶ßàNPLAwB†4KާvÍÞ¤’=>Àg¾*ŸµÁü+‚ìFª–R !ÌM 78Ôƒ_wÊÞggßõWçYi¬@Ä(Gm¶ÓºäÔ„îAφ‚"Úš&4¸Õz¸0µúµÝJš>5ócËCL­£jNU“!—2NÕ@ÀŠ»ú’B ½Í_ª ®*H³M ‘ãðذ@«ÁííHE‡¡²¼®®}> stream xœ½\Í“Ü6v¿ë”²—ͦæ¶ì”†&>»'ÙÞu%k—³òlª9J²FôtOËÝ”F“¿>ï ñ@²GrϦt‡ Àûø½à—‹ªTþ ÿ¿Ú=©.®ŸüòDÑÛ‹ðß«ÝÅ—WO¾xî,¼)}åÕÅÕ›'ü‰ºhÕES7¥7õÅÕîI¡7W?CÛÖ‰¶Æ”µƒæW¯Ÿ¼(¾ÿþÏ›KctéÛºx³©Êª6ª|±?à{Sz_<ß¿¤”m´/ÞÓsímÛÇaúø»÷É×Û¡ÿ°©-|Ý4Ewè»á'›âÙmÒE·½?öÇÍÿ\ýûlV—ÔKS—­sL0ôƒ·u¦ø…Ç´º©l#Ö@Šó4âíF7eå”)ˆH¿Øøµ7ÐPßïºa8âïÐVµÅ»Í%|å*öÇcJµûÛd‚×üoa°Ð½wÅÛ¤Eý6´quñ2ùá úín^§«¾Ñ-¢ëâî6tkS¢€l€û0”›K ›]ÁÔ¯Ò ÓõÙíy‡˜Ð»þµl8íœnŠí}\£¦H÷ñ(Z½}Y_ȵ·QÁ¦Y¯/®¾}rõ¯/ŠýøJA×FÓi[ lÕãº+èÎ×°Eº-îÃDkÏ“€ß`¦°™ôLÛ6²‡Ø¨†™†Ý ]ïpóa2^Ìf„µx¯=°.Ì Ö'^ëÈÁzjhúòU:Ý‘6SÌ4´Â_Ìä‡H^àyæM ä ¡/ØÄ‹ï¾úúÇMx¡šå5ŽSp¸°ãϸîºzò×'¬Bê‹Ãçª »ßÔMÕ–µFíñä^°‚”Áï‰+­rÅÝ&!å³iðªl*•‹‚:ìÌ©yP Ö¤Ý*Øï¤ãÏí±†-hœ„n°¿KZFøå’¤ mYi½Ix·ÐjÏ)Æ+bZÝXÐ#ÜÄÐÇ=üe ]Õ¢®ÁGü6í³C1§6ÊF^e·ß½K†H÷sÈõ…#^ïýðV ÷ŽŒ[]™t)û´ããpx¿&Hƒà¨×‰„üfs>G›ú–vìP£$O³-{€§A lRœf]ð:,™+þsÓÔ ðŠüú€:Æš¥ÏlÉæRA‡À>0&*¢ w4éü ! àZUZýxÔÖ¥¶Ú‰~•÷þ Rç´Ë COA½Õ†ÔÛLÓ[_ÔÅüèOóšY¦~>éÊ–`%¡_w£þm- ú¥9Gj§Jãë|yÂ*ÀÜrN¤%1ªr$€kA«–H~÷vÍlm/¿Ò»O[îq˜XZ­š&¤Â·E€)5ˆÌp€Ïh±l#ÌåªV˜AìLüËÑÈÜ?¾֕.ÊP®Ò% B®¨%©ôšzÆ›"Ýž³ë·Cå\S¶ÍãɯªL©|#úUÝ9 ZÎÊ.Ÿ>¥ˆøÓN_¤ÐùŒ¥UÆ£+!z&yr-!÷.…¯‡üµSr¾´ª‘C£”×øZ²O¹i–Ú€wÚ=:ÿheK—œôì£'­ÜIÁ9t<4(›÷â‡?eh‚»2­8Œ®À dLú]wz3}î%í?ÄIýצE'Ú©p»þ,4­ 3>:7XmK]gÌàÏÓÖ‚Ûå|Î ààÖdotñooÂ"‚Š ´fGÌ1*¸ïѳþ´E8å•wRª¡MM£J¨žÃÝ"ïL^;£x`oSzô;Ñ’-¡ñ†€Î·“à×®rä ÐðÜýËíÂÈÎI[ûK:£YÄã¤E ÄÒÞѪ®8ñ0²/¶ý c—ÓÌð/O#1|þÇ›ÇÔ¥Æ#¢–®”i3ÊÞ´ƒ^5Þ[•K¡nCÀ&“Bz[üßݺ:ÓuˆÚ&òÏ5bÚ…®ªsô/y°hSRÃnc å‚£0£- SóRV•‚Wý¶{™0ð66w*7®ðÞa”gâcûLÔîX®äñø-ì-Eð¹¥þÃûLZ>sÑäAÀãíúøY]Œ@í1„¡¬Épî‚·Ê<„‘¸Ö‘‡øÃ Â})¢¦ýFQgž8Q‚Q±ÌéZ ÷¶;ûW)fî¶SÛ€¾q%ÅgÝÐï3‡sÔƒ¸‹»FÁU\ùõoqñ…nN<:(N~É;“¯°%:3Zh~YùÙä§1úC ´òþåÊ‚Sà“(ÑRà»íþúýZב¨*0ŽÒšùF``à_E]§0ÒÑaЗB{0«A†ÓïÆ$ó1)ÑX„€HænM~“bl‘ý8Fß²…<ìÙ]ÁKå05T° iÔè^ÄL¯C€¾ÒÅ® þLýž#ü ä * Ù{R²N‘þB*Á+L´Áò×8@j{ rÃR¬›©¹«B©³ý"ê6X8µ¦ˆ#7ÙÈýª‰ìß ‰Ýf­0šÆ!j€¹É›š%6ÿøtʰzú -l€3!Æ}QzBR2} ¥ “Î(çõ¢”s2Iv ÅKŠzÊ-bò½l‡«‡¸Ä·Y,ò 5û¶ ¼£`Âp ¥|ˆ™">T-ÿ<‚üLÉfг¥kÔwiJk¿°` VCú´¯†NÿyX­òüASSò#<§â3}Í™²$í0Db€ÃD¼v+Žt¹å2 ¡äõ‚r'íV¡¶l>ñf¿Kr0ûÃAàÃ*¨Ãîxឌ_ƒ¹ìPݾI$7UªiôF2õ~]룮«<ƒÆ=e2úTeß‹œÍuœ°gõXá>¾¶Ÿd•øÝè§ÌÙ 9`ü.êôÑPP˜i!ƒËL™÷X²´#FòãÆÿ~¸e`UÔTfžeK¬vüÂ~š…'Í÷˜W2Q\ÿfáå˜<-¤ÐŽë  [JŽà6ìÖhÚó?®›[ˆ¾ŽæoÌ஥c¶ÝaRôÇô¬¨¤r¬½°VÌò¦uÅMw-¢§IBvý̳™*¤à}ê.èªÔÊ£Ó@NÀÔÜB{@Ý—ÿñíß ø|)ƒž„2µçÏ9>˜àʶµM³8³ô¯¥þ•/ Ø‹‡ú¯ÕXïðݳ1Ôrõí³/ëe;kF’º#'%0%‹ .3%dí4¥,Ò–}®gté²nãÊÏérvUÙÂfG:ÖÔÖ0åL$"à ˆ¥QÙJØ•%HÎj–¯¢9‚æât-kqàîúdí¯Nøß“q~ìÖf ¸KÆ›ç6,0ÇiÎ!|Œ‹ºZe.í¯P©ˆK¸’DÉò6àǦ´å TC^‚4pá½jÁv$'µ[T&ó„ߥîuwJG2•NÏ— ;T¼?0* çmš£¸RÆ”f怵¡(8ò߇ŒO*OilñËIŒV+WXü~˜ž%¿QO°Ã\߸À" àË>œ¾üt´±‹–"°é1í b®Æ Ïï)çZ«t\ˆtí× ÁEkZɽÝV´Š5#€Ç5˜Äs"\ª±¥T|„¬O[•M6W‘Š;ìwcÐwÅ ®§â˜¥=+ˆ½i” ‡ÂѰÒän|+'U'Õ9 éŽä (Žñs¹ꉅx}oIª#~¿ ¯Á-ã*ªë+²zªÜ UTàÕLAŒeGr´ÀèÇ~j¨œj!Q#Ô³Ñï#!6©Zä\;UQ 7†TãqŸ$¶S°X!Æo+–iLŒ^·5y†’å1ºÞ°‰:†þÁƒšõ 7c°êžZ7fÙ•ò zÔwȪj!@þ;‘c Ì¢ç8ðCŒ[©úyéR²ôœ‚RóÝ&Q¨c/ ~"ÁšÜ®ñù-û÷Ä‚qê.] ×t¹TEø*5Õˆ„5asK®Êo˜ÓAšíõ;Ž5àrÖÆ|fûæà<2Nlž‡²QU Ç$]õÕš«§¼¼èÄ.èŠÄœæ‚©kŽZ¯F'RO»Kkœ¶Ä€œ'šUøêP@ÊLnEIžo=AÓÍÌ49ù >œ•ŽÎ0g‘š­w¦h„=Å}ÿÐÓè¶CÆðsT3±·a´i{D­ØëFcrÔEåÜßÌmªIE¬™'ã:Y<ÃÌÐYXKD¶£~^ÊKߎʌðos¢Èn½«Ã*i¹²¥›‡Üã¤POä¸u§•ºQ} Ö0O« oG>8 t.g4OVxfξ©)×~'€ób®6ð¡Îžáé0»êel]1¬Le, ù’‹uÏŸ wvcnà˜qb¥¹?7š½è &f/oFŠÕ,š€ÅÚ­É£ K^,–—^9åÅb6ÄN^ìSö³kóürÝ€OÝ^X§Jå-ÁÑ5OÚ´1ñ¢øZØ2öÙ0Í"÷Gh°£ŒÑy®%h<0Ž(ûj?Õ­›â KD ÐÕÅ’tO¨ÕŸ…Í붬«ÒЪ$%•Z‘É9QnLDè6ÇQ(?ô©º˜¹h„5UºÂ)FÞž¸Oª¨Ôt Éž}JÖ¶Ë2k´†\9;ÁBß/„à^5§ÆÏ_Å#,fèÞt_[â•‹m¨?lØÖ6¯SYEÈ`ô\;ψH j1ßÔQÕ‚UàŠ\ 1‘JËèLŠñE›‰lA¹ç¬pT´I1·k,ú:tÞßNÏ9Smë0ûç5^¥:~ýà þÃéƒSÜLgE§s‰ ™ŸåWßñ˜ã#o£ÂCO·ÓKÁqÑOõ­tÔ¢à-¹ñîâWu“TÂu±/?.Ðj%=~è»m Ž6´˜_.DÈËáBš_YBM³P&º·P y=\2_gǵfT%¤zçXÚ2ˆCM;»Kò~i,&…tqØ? ‡/ßSTß* Œe<’+‘7 ÉVÄû όɳ“ÂhT]â`éØNGkX½%ª&ÔÊäår¸Àm»òP!äNÞzUêwŽ»¶Š<òž°½/\‹Á±º—Éjé+Œ9䥢Hc©èï°Î5 0¤~ªJX/N´îþætj€ìú?Td ‹áy² w‰_­Kò¸¬bLM{¿¤b~- €Q´´>ÎéÜP׈~AϹsK£K@'’ÔMIå¹Ê+úír,ì —6…î3 ¡(X;W"V‘aƸ+ROØo•åe™×ºdİÛ\$y@SìGbÑÂgàjR `úc%ÿ”8^sØy •aúëC·ÛÍ׈Ïhu³ì¯wŠ*svâ”ÁÉ‘nÓt*a/ ó²ˆhˆj.Àíqn¶˜U™ÉŠ<Ž«Qðñî)~ì±b•«|43s§’#©kIŸ:PŠ÷GYß³ã®ððÂ:/ô×·aD7‹öò{«þ^n8eì !•ga•1‘9Y{zìðâ§Ip!?®åˆ¶hïÍs2ß…buˆÍ]žaÊ/fàÑÉ.5ó$Á$tC=`Ÿ×@¾t|†¢’‰èÍ }δÚÔ´):‰o´knŽ< ê‹u¼úGzÂSû¯¡cáÅ7 :3™aªÐd¸Ô0iGrE<èí\m×°/ P»à_Ÿ{H C\6¥šÏËñάÄöBîÒðíyl/ŸYlº´Ÿ_DZßî¯ïÃÆrÊ+ÕysOñt®’cO |I‹á”iqYNââûP(Ûƒ AÀ§ªà8·nµ¼µEª8é|§ÄRpªž'é&37·ÔÞ5B$R ´šÒɬE·í‡1–z¿o¯áNG‡™>5`8iñ+ËÜ1]‚§Â(Õ†ie1Ô.>žû¹Yº3‡ÇTãsÎC©Z”½³‡€í­Of67ƒ¼ª¾X¥ónÙ•™ÌÅ›ßÏä;­ü °è#±×+rј²æŸ<°Ò’4ÖÐoâë+¬T  ª¶lT8*ù•À";®m°f!Ê ‚"Å [ •Ú³P5­¾–ñMœõËOÎJLUi«6*ÉÕBÈÊŒîÁ UG³‚]Iy_f]{®±· ˜²Âp™ˆ,WœË(æMÜc}R¹Í“y¶NOÇMµ6ØXÔ]Œ=»PÈs!‡PvÓb´Wz•‚O'™sµ^4!û†ó?|B€ÕåCøaÁ=ÂÇ­Oðà ¬ÍR®4ž„k~ˆ’aà‡ð‰÷ó, DûÐi±0ÙSç4¦}ÃǼò³et™YèÊfZ^„fLHO¬0Íh ËâÁ¸ÕÂÃ=2ø5³<†àÿõž«È-¹0§Jþù ÿ| š†—ßp}E?þ7ÓQ²F÷âèó–Lq«¸ø7'ûCœ tVRÑuˆ¹)<ðSUdê¸ÒÓb]Â5@݇ü(öåbçG¼Ù7Ê!5éS?— ×£¥^B•†!‘@p´º0¬ÍïÖŒÔÇY-õµ ¸×,qFµx4Hõ™u&8J¬Õjù¨uKº½Ÿ¦’ìZR]¸RkŽí¦­ê™Kã>XGÄÕ§¢ycå˜7¾Í aøÊ#}têÑÌ.é ·>tl VB^p(ù¥º pªYR ú;­MÙj0ðD´Î8Þ4éì¶[N«{…¾#¼¯É Ÿ qÃ&æÂ&dº“Ôònc$„ﻢç¼zâã)²æïãWTΛžý¥yœ¨rû¤x€œÖ?´Üíg)ÞP 4_'ŽÇŸJÅ.s \‘ã¼g:&zÇžl²ÛR)U•é­cTû.(§xfIr‰›ièLíüvÆ®ÍÉEYaq“±¸¥«RÀR‰²¿Cô °î* X¼¤^ˆnÒûAǵ<Ⱐ㜊ïŸ`µåëUÇ^gÅ9ºÚ Ìaî%Å´g×oÆ‹+nsmJwShd¨q6‰¡žBªaöŸ|$,,1™%úX5ó‹K©­3!w¬$k:ªÚÙ¥”RÆ“7]ŸDŽ:q]àä~ôtñ¸ •PémÁ] ÈK Á)Ë‘¥‹æÜ§‡¡ðG"¾tZ<œ\^»ƒ(ÏÞÑè¬ø¹[:ÍÕ¶6ÿÍ\ï55Äé4ð¦ˆSh ½x‘c¤©jg(™ß«Sôœ¾?2Ìç´çQÌú1Øéƒ``Ítƒ°%(é¦[-\~F]3Kno3 ÌXv€ºÃë`ê•×Ô‘T¹pA'WÌQì_óm'té(Ý;þw`5ïüŒS%¾ÔÇY7ÐÆ8Ͷš—¡üVèÂ} ØòtžÝŒ‹’›º]7UõWÄÛM¸­1=šü·çÏÿ”üùìÛ§±¥)þ¼QЇNÄ^]¦=å3ƒ;ìΩM¤=‰FS<7¥ÐF+_Ü,ç /C@M›ñÖâü@R¸Ì’u×^&ö×Áçꌩª]€ôé¸4VXù&=v!±äêÍÎÇþF´ü§¿H.Y¯ȳˆ næÅ÷ßüƒ=|AjVÜ:Ý I÷¤z]¤ §Gˆ…µšŠ|[¶0æ'ÝÄ„®ÝâzöõOxç•:z'Áìui+-ú=óú'¬nÐZ®pk —gå壴Á`VÁéG¾#R×c{W\D±þ»ébc²Tôœ)BŒ¨ÎòɆ"‰o¤ådª‹æ¯OþÖ¢qendstream endobj 647 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3081 >> stream xœWiXTç¾Ã8—+âÆu½¥õQcM«Qcbkª&A´‰hDD쀀 ² 0ë=³² `˜‘ÁeXÅ}‰ÑB£ÕÛ¦1±*fé’¦¦öÜÉG—o$‰&}Úg~Ý{f¾÷œóž÷¼Ÿ‚Æ(Šèç_Xµ##9sµ&93wÖÌÇV¥¦i5É9¡W1e$ù m0I‘JˆÑùÝ1»£ðáñŸŒíÇ„>ßY”¹#'vg®6/ysþ [RWl]¹*}fmÆ †™Â¬`V2«™‡™5L<³–YÇ,fža˜0˜ç˜Xf&³„™ÅÌf–1s™˜yÌrf4C1#˜b«Ð(> s*ŸU¶F¸UóU¯³éábøN.гp4FŒ‹øxTü¨›‘“#›FoÝŠmc‚eÀõùå]Š`ò΀*Ÿ]ÅÆ62"¨̵RÅØ&ƒ¾ˆ\úƒýRRa¼dÔ·íÈšõçw¶ˆ`·W[mW0Z@`÷“ÇÀd5H&ј±²€FwÙ߆CÀÍÅ*5Ѳ8¯©Æü+lº€¬ è|Q8ö-úæ½r+±rÀqPlÅÕuý®@N§XÒÙô",†ø¤-/4þMàß"ꌚ·¡B_– n"ÞòDÄhÔ kG%Å:¨2hœ3ˆãýà7øq’?šŸÆËÔU¨U dU3û.€ÎÆñNfÎ×fÒ= âNúªÓ~ ºA<B­¶À›™í,¿J7lµ®Ž#( ýìÁù³¢'8?{U9lѼ=Û§S °üC ¡ËÙf¯8"F²ø(Ô¯Ö“‰¡IÙŒÎgóÈ“= |ùôû§•òxœ ®:—s°´&«5µrse¼{Ymõ/\mGúàt–IÕ¹j­N}bÃgök…Ž2,PXb2éÊŒæíû7C!1WºÚ°­fÇ^íþì}†·Š|¦÷ö”µaÒ4“Y+Üb_&òÈØK:A¼ ‡¯º/sÃã¢óé§x, 9ÅÇÝ•ç@_QuF|QÅw‘Gî'“ÄÎY¹d1ˆóÀqªò5ŽçzðÖWA×@2>.æG‹ÎÄ öÀ™ýÝ¿,œ%УÆ^`ªóä¢ú墡ÝrQ4¿Rþ•K6ª«zhuÊV—¾˜m ­ÝŽVgn*Žºº3»¶wo¬ßOÁÓuK -°¼MÎ[ ´½lmë8ën…3pvKáãœaë:ósæ%âüôôuúM¯›_ôqÎ¥˜>8wxß)Ž_˜bnJ>ã…Kuu×92û¬š×Í(\ž“Û:*_­úyÏ œïúºâë>ÜzTÉ7pù ¥|5TBøùŸÀKwçŸÃ·òý{]™6ô±ÊÏžüeMnÛúßPþ¢ÂBUEÍ=iU¶–¬HKÌÒ$m‡DøYs~W©—*kc;n°ÖÖŸéé©l†КÝÚ´Y¿J¿™îIö5ÞŸ¼)e¹i¼ÍùÏ~¤ÚSŽh)•,ú2…HBú,Õ’´_]àùf¿ŒšÓôQå6qpH±m¥fMJìOAä㌠{[5>[½³¥ >vÁÎbcGEJß™ö*ÕÙW{Û{äŸ]—ÎZëBTV…Ä/¨(ðñý²çzÝuåÊжÙÉ>}WÀäfÁÕép¿ \óÝ¡XÀfH¥ù¤oè‚@ÆÉ½FŸ™ž,Ò÷)Ó“CfÁ˜U¾qê]5°#GÕh*TžrîåN••ʼnÿ³Û˪Atƒ£ÒåÆ¿G VvúÐÕûôìýJHϺáMè4‡†úL6~yÝ Ïâ u»ƒDdn"p$‚ÅOäH·lV‡h«-‡|úð×l*™Kûº÷¯þ.ªJ²,ùÃÐèRd‘Œ¢¥¨‚V’Ãì½)î àÏ)uBƒüö Œ½qåF4¿E'7ß›èÏäÏU|½î~ò¤MngjK<-C´Gòˆ:ð×§! —álûÁVÝR_ÈøP­6çK–âŽ?ÌlHMÐ&ÅP>µÚu¤¢·âˆ««æBç‰}cmç¡îM¬,‹9ÿËÄ©šexq1Í=¦O)/ÁQj[u¹Íe`6˜Ë×N¥°¶ÜÓ¥=íîsurØÊúÀvoç© mNˆb*ݹä;ƒR©Ä1p•v· E5)¥z÷È€¿nC ‰Ño ñcäFÛ|Ò¯zð#u;&‘qøYd 82'lÞF’q™‰±€Ëcqv;&r߯So"dú¼Ât ‘DZîÖà¬+7à@áÙ$RJjÖ—FçܬôEµ÷-ïkê+é[ú†}ͯaä”àXµ«KÓ¶žƒÇÖæOÞMÂ…³üR†Rí=–72ñäÝ/-/1ÿ±…‡w0Ç/bÎã;*ÚûG²üÌsä^è9}D;¼uúbÓ®bSŽ)·v×>8MŽæÐüÁÃC-x‰Î‡¾·•Áu²A]ÿçyä{”^wîçüì¡fa˜ºÜð*þ µVâ!xÚC«ø«‰:Œe.`1’ Ìõ†¿pS(ߘO2›þßDöîu oàAgCþäò„’[ße´>Šåœ_£azÿÕ~¸ýÉíh¾.X2 ¶ºlîbj¬,e}þ³©ù9Ö³Ö¹÷Ãõ—“ÚÖy>k¸X{­þß$ÓcÞü6l^“f ÀcB¸»ìW‡Gîê°…ø ÷Qt ÎÖÃQ8˜NùÛšfÐèâtË )í©iç á~çÜÏ‘™òluIìÖùd=KÉÒÆ;öÚj|vÑm;Mð{@¥i'y(Dõ…ahŽ¢âNÔ!Ú~Óߣy?·¥`vVt‹e¥ŠƒL¡ÓöTÊÄDâ»ç+•öh·´K"uRþLíØ—ß’é³Ã”cÌòd„vðïwøCE¼údè°åy¸––PéÇøAi°ÙqÔä­òKjOÈa!»Šh©dÁ¹Þ6œN·e TY¼&‹Î”Ëñ-—1Ý\4ÄZ¬£ö¿ÂIOÒ‘9*V ;ìuÎvŽO£Êio²×5:ÄÛ>*3ô¯ª¶“¹_§MU—Š Žë‹æ»°ò¯½ñmùŸ*j¤ï“—¹C ÷A­q°LÊ >A³˜ÜðµÁ ÔßN¢kEcÙ,eSRѽòšTŸmÊ¥r“Ál õCyÂ$Ùfª³ÞõzÁÚ+[ͱ $Ê.„|ÀhEªˆ }áØí0S#ÐvgE¾#ßšºZ\±†TaQü·. _Þ‚çÿû-aįؙjýàwâÿ{cèø_7†oE7~NCAüo·‹»M ó0þŽ—ú”¸Éªv_.8’Û 7Ë”mÊ®Éê¤ÚðŠ«¶ºäÇ©Ë×mÔ$ L½Ó䄸è=†sc´>ù™Ìt»|l bpÔĈkvDŽôZ­6«Íf­²Ù/FF2Ì¿Žendstream endobj 648 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 6758 >> stream xœyXW÷þPvvDca2jfí&¶Ø£Ø€( ‚QlHYÊÒ–Þ/½÷ÞQÄØ+–%š¸ÖOcL¢bÔ˜hò%ùŸI.ßÿùÝÝvó¥<m¹3wï=÷œ÷œ÷=³z”¡>¥§§7ÂÎÞÞßÏö¬nîÁ>»¤ª‹c’q˜pð7[b€†3á–1\ã‡)†Sª¯u–~[¬ü·~¼EÀJ©uઠÕÁ6!²]kBwÛ…í±ß»Ömݾõî<<7z9zoòÙìë4gnÔ¼ù >Z8~‘ùÄÅK–.{ÿ‹mÓ¦ï˜1ÓõÃY³)j<µŽZDM ÖSæÔDj5‰r &S©)”#õ>µ‰ú€ÚLM¥œ¨-”5ÚJ}LÍ œ©ÔLjµ’ú²¦fQ«¨ÙÔjjeCÍ¥l©yÔj>eG- ì©¨µÔBŠ¥Þ¥\)ŽI™P¦”e@¢FS"j õÅSjeD£–PC¨w¨eÔPjeA §FPÆÔzâ+ÊŠ¢½ ý÷ô]ôoXœ741L‰EA¢çtýñ6ñSfS5ˆTmôÑÉÁŸb4äð;ô;‡NZ=lä0ٰׯQl¼Èø0»=û®û»O¹¥Üg#g ùI®©¥éY³õf­£ÌFeŽ:Ú}tϘYcZÇô¼WðÞ3~:ïÏŸàÿ¿ÄZ¢K]76e앱ß¾u¨Bò]Þ€Z$x)lá°)ý|.Rï Ý G…ñ÷JpTš°'…ü®UŠ"xWˆ¤Ür|ÉjÏÐPžU¶¡Ò=¼!%Ë5 ÉIÜíªÁ\º„¬®z§ÄVÒlóÛ{‡Ï](ñ_ÇcÙ^±z^£jÞ õ<‰zgA®0n{löN`oIþ›ö&ì]!Ø€"ù ƒ A¨†.U­O®J&БRäëS‹j%+ðäe0YTU‹Z[¤š[äV*•ÔÒ0c3\. ¦Ùêˆ@bA=¹Î¦üL†êÅQäl±)o0ùÜ7çgõf#!D. ão•©Ü¦öP,ærÛ óÊë5'ΣnæîÚÇØ€Ç!´\µy=*“4öÊ÷ë8'fƒ@t­ç¡d6åv{ÛLå'‚ Œ ÙßÔØ{Iªñ'œóÞõóxÌBð4køM‹•‹jÿD0ܘYó…©ðÁÓ_{®]Úa^"É ÏˆhAL;ª®’€D\†ê}Ã’b’øÔd”%õjÚQµ1˜#Ç…mñ ¯0˜'=ÏUb©>TÀM ŠO(a,‰’©©rÖ°9?ŒÛææãɳošSKÜþàÞ¦¿ðnúè®ãqmˆ½ï¿Vb=rÚJÛ•K=žáïŠYã«W.|zïŠÕ<­ƒ+¡‚œ7 .r0o>LÅf<ÞÝ¿z©¤¦W¬‘åÁ䌅ùdagá"]‰j<=P¸¿¿ywƒñŽá¤é˜ÅÃ_Mý›§:j«%ØÛY'f‹5ñÁs„‘œƒó¢E–¶·ž¿¸¥|tÿä2Í) X®ê:`¢<©ÜN|ø»v”ëk¶ ‘ñÖ¸ ‚ÁD¼E´D5•ü˾{»yl®4{R7Ó¡(ø *–ÄS­‰ž|ï mR¶ôÊ}µ~$4« 7¿M¢Sˆ`† ”èv–! 檢-ܲ&ÌΑ?(f¨WÄúZ„~‰»Íµ#(Ñ– l J°‰¯®¾†wøôÀrY=bjªÊû6óRýèý¤„1ä¸B”Èõ‡˜± Œ¹ Tíá•ΧÙ;Ä!f:_/8X(p=^ø˜@å¢yvQÕíg8…žvÓýî½/÷ð:Õ[ï©<Èúi-š ’ òzm$uÏ\]°¸üñîwÔ÷Ê¥ÚÑ axà)ýßeRsHG¸¡fZ+­a¦ )ä·ª<.ç]à1­†Ý¸Õ“f;g›G{/AÚx¨ÿyF>=Mx÷èÑ‚¦žÝî^*FߥËê5~Õ)û}dŠ)A”N~Öæ%P½rLéŒ0`yˆ`¤Ð«ƒ­a«"LÔ¸Òµ‰Æzø>Öƒû¢&Ç Òºª…1~YäY…ª‘Y%ªE…@ ¯L[|”ü/8§Ð+ƒm¯`›-LâZQÅtX šì+%ôV|N”F'7DŠ>öiJ¡Š%œ’°óÉ2&v‚s¢N B¡’þ·W“M®áž¬ ÌÈ#ÈìÊ̯PÔ?K/ɬaÒél§<(+¾(¼¡”Y–Us zL[ªû!J¢w[a|V ¤*† e$r„'wÅfgÆóà#¾½éko{hü.Ì¢ DGè’Æ~Ô êËÉË5ôËÆžQûÃ|ÌÒè¤Ê¸ê„Ê™`Zÿ×9ØJÃxü[V,JAÈ !éGQR†MðstOLcPv~±„µ¨«òìñýáa»îé|{L ³$ð¡°MÔ¢SÎT\vW =Â>ÐãšüPbDlª,OŒ Ýn‰˜ßúöLÉðÑÕŸ 8IºG¥¼1uÕåÍw' l±™‹‡¼šÆ 9øCyš) La|¹kg×£.C^LØZ!‹ )yó‚\ܦJHv¾ ,üF¼Éò¸€ÕØÅ4Ú=Î/Ñ$ìé¹P”š['ErÄlT{JÂ6“ìoã{åbojØl•3øÇšÓ°ŸkH³¢ò‚ŠÝ²r⋊P1*ÉË+ÉÌùrŠ.0é½´j MûxÀêDÐëTÂQÿ£Ü­drÃ5b¸ÕU陨Üì`0 åñKÚ+>ÞK²C<  CŒoàÎYZ 7ó¬A•¼0Œ®ÉAU¨”é¯A7UÖ%‘(-‰9A"sh¯æÝe; ëM#êPÂfâáϧþÚu¬±¹‰g׺#ù¾2ðLøˆcÛ7º,\¶bÝíž×·nܺ޹ÑQ ó—]ÒE„B1N—ýÓhl'¤DˆÌÜÌVéЩŠ0F¿êð¥àŸNƒ]oJ±GYZ2k)Ê<,rêÅZ¡kÿºï*ŒÙýÂÞ>…ŧ„&ðÁ[6Åù# dq6â çèêJÔôšðHd?>ŽUï{°«i„c¼u>‡ìÑŠ˜M1Bæ ¹HZ}6úzŠ.¡nt³ðTñÕÖ¢Çè>j+u,ÚN,[ËôÃF a§üþ©`#\ä®-F‹—í˜Çož¢U-?âîÉ:Ô[§¥èÉÐ Cu²yèiúá稅OÎßÛ^U[ÖÔ§q좮u©ä(A‚÷Òò9ó8èï„7pÚ=|ÁŽèd`î>IJÝæÖÓøqò+ýú¸õfuQ »–—/]ƒå×|¯7_ U:(aµ2àJ²rÃv8%ä¦\mhë¦ç4ÏQQÑžÿeÎEô9:ÅX§s»ÉäÁ‘ÛžšÆ•¦¥ËCËÃPhRzJf’äÔ‘7=Éšb/ÆC7ÑEÔ…œ)¾TSõõ ¦ðBÛü-hÚÔ°›ý,çH,üë'7°ö/ÈNþnþ‡7šæÉ˜¨jå.eQEß •/¹6ÒéÉî›ÆÇ§î ÷G§.|Šòâjùèæ jy!ÃþòYG¥âè¨'Ëc#¯üßtµ×C¢õ[P›?Ãþ^‚‚wB¶È·Ò»Ü·)â b>­ûì0ikáßœ³Ë†YüÇàu‡f{^œX¿m 4ß{k žo­ˆ•„YûÄÉø~ÕÇ뤞wãwtÒäŒFì°³ðx¡†k ®ñ÷ö÷¯ njª©QgŸ$ÆçoØ*O+A¢t»aÂú>`ΡëîÇ¢‹wÙŸ»´Â¼ÂtW‘[;:Íœëѳ®§¸Œ”{ˆ ~BXqèöö«6-]‡š.£‹Ì=«Ï±Y¹ÍÚ«^^¥Ú°$± %“om½­ê‘ožuwñôØ,ñ¦º§:$G"äǨ²?E³oέްv£Ý¬=Ë OH²³s‰4fêB«¤AÁ‘Þs¾ß@²Üä›/U%A°…§\YdYDLbRbïë!'‰Ï*Š*–U{¢ýÈ?"(\éŒÂ˜ˆÒˆ²Âœìœ\¾¥©¡¬Æ*Ž.Žª 9ˆQSYmyUis ªè#\J!¼'Óƒ{]ÝD ÇÃ6Mþ-…_è yž¼?ˆ’Ò¢d8ÿn…R‘ŒñÊOhå!Sö:·Z { ö=µjå°”)ü$Òø¶UózÏ”F²Ý¸—ý€<\‚wóà :ÏÄjh¯„8o ®‡¡ ¶Š¬ì‚<¾±íhÅÍ“V¶‹W¬ûÈMÞ%â¼¼\â¼æ ²H߸½ ¿^ †0âÍs0Ðèwƒa7éÆŒ/Ü^ñ$áD"zZð†MÐs{°¾“Søn¾ƽzü De1ÙIä+‘83°BÖP_UÞÒé~q*E¾ßÁ.8 ­ÞðìsÐûákB4æ|‡m÷v*d|l]F*aº¯ý×—V[ªö/®(ôN(/«¥l_³¿¢ËÂPZbîpjë<{Û"dÍz‹QS_Î…`üâÙ÷üB8Â9Ø»Zñì+û“]ç»Î|ñðò6'I þ„³¶Ù¸gÚt)W>ýöÅe»µª4/á´ž ®s™§=ó¢P(ò‹Ét-Æ®¦é‘™!M¨eW¤—3x!ìü皃,ê†%Ô=\qÛ„ý…ç‰Ø@9L^HÜN?›úçÏ—=ÉÇâáKߟFŠ’{zHYVvv*gꪤ²p_ïŠD€›’ìÎüÒœã&‡…æ›?¿÷ôv×ãMA2’ðLÛÞüУTø'³l`„l‡ðP0ä:|¼Ý¤>>ûZÚ×·¶òøªáŸ®‘w^¹ú л®z^°œCþoð¤FöŠ$Ÿ•—m‰OŠFQ ‘ÕuEï`£¾C-Š|4‚wcý¨5Ë‘% ÌÁ,ñap¤Ø%gwM乜¬‚Ñ!¥ü¢2 ïxîqvó]‹®@ÄHeñ‘… Ù)XˆõJñ|"ú§ìéz”ŪU°é?®"ìûm WY. NˆŒJ$Üð너4„âÍÂJëjrK‹sxøê7ëܲt„òÌ:ù³Jø„ÄÆOÕǯ&XNQ¢¼ö'lú`øF-o]Èá÷m±ÑÒ¥¶`ïÃdå›{wo}€§ôµ2C0”H€$²ÖÚ>ý=K(§Uµ*41::‰w[àš‘’ŠüiERiåÑœÃ'ø^óYb­Èê‹|L¡ðq!,-Ì*¤FÊÁ¼‘¡£ÿA‡ËrÒU_ÙUY9C†PÔÿ¹6ÃSendstream endobj 649 0 obj << /Filter /FlateDecode /Length 4532 >> stream xœµ[Ksܸ¾ëä|ʦJ§¦JCO[•ƒ,y{­]Ç–½I¼©-É#®g†Z’²ãýõén$À™‘ì¬S>˜C‚ €îþúë‡~ÝÏ3¾Ÿã?ÿÿÅj/ß_ìýºÇéî¾ÿïbµÿè|ïðEiàNfsË÷Ïßí¹Wø¾à6“¹Ü/t‘Y©÷ÏW{oØëY)2[JɪåÕlžg¹.yiJ¶ž‰2Ë /X_¯gs)a˜‘ì|VÊ,Ï¥fÍlŽ#¸*Øå ß“Ï-kÚ†Þ̹dü‹Ö²çtWZÉ’ÏôɯÇK¯Øwõò·øÑªé&CÿuþöjT¼W™‹ÌØö{~¹ÇT1;ÿeo®ߟK•Æàí7ìdzÓÙ\•6nÙÏLä¹}K[ÐV•%ûy–Íæei`†=ðƒ{µŽÆÔßD?’…]ú©ggጌMÎ(¿¬×Ñ£} ¾¬Ø³*ypý¨W~œõÛÓ}uöìçÙAø]°—Ñkñ7°4Ð-ÒÕ´]߯Ã.aÅOÚä=ø¢æ%¨`¯E&²—vQ²?x92ÑÉ<+•±ûs.3­¬pr9¾mÛ™ÎqÝŠ]­{ØE‘ãñ±wM»ª–³yaPu%[F ùä‡á¹\67 Qšã¯‚Da,,J±îÆM ó/êo.Âݪ¯›õV•⥳1N¥Þ0:ZT Í~|ëÎPÀ\¿ì¯?@§(¸#­ÙY"Y&ü4¹ }›áÞ5t¦§mã$áÆÜD“¡ææ†$ÿêÅ3ÚÐãó½¿íå™&hï@rj(m÷‹¼Ì´@À`×}óíááÇ3²-iŠŒké S Ý5«EÖ´‹Ãîæêâò4âðåíÍi×EÛ^>?ù'p‹»Ë&Âð«’\g‚ï«2[pZ™[ ÌÏLa¥“Ùs: °À¡º9Ï,×JÎNQœ\eˆV¯Ú@WJV…ŠÍPÂ¥`ËJ8v¶ìz?ÄòÄĆùØOõ2 ªþª ¯vê.s€WÂA˜c[9{Ïz¿ /¦æ\­bÉãÇèÓJ°ã¦m·i¡7cTõñEZ– e½‹´ªiýWKÞ ^âü¥¿«-K´øÒÏ€rv|‚ö_Ђ?Çþ½Úœ]õmý¾B9nà:¨´QÜãúRÄCLfLÁ­¢õ¶i`Z)Ù2¸Æ9È…Ì‚ùÛø•9(x.¤×¨ÒÒì/¶Mn3=.à ;IæÃ,8ËTšX„«ä™7}ÍÑô…tp’½r¿r‘÷ÆÊÀ¬°)8 CµÂà¸öÎ •ËïmbäZeþÌü®RIÁî´ßÕ·0·AU4`p úV€z Š–VƒJ,n Ï„A—~Œ{ìp®àtjý¡nKÖ¬W÷n F¸÷?8˜WàÜõõEŽ€¡,œÇêæÊb+v Z¡³Jð"uî}Ê)†:Ì×õĽŒÃbzSÑ+’¾ã!P*ø~΀r1òºÈ’*'™<‰Wþè‡qGrns˜…Ïóbž‡YÁ£%ïde&AJF¨Ls=º(Gürw‹eÞ0ç½^Ìџ¾`·7móËÕEO>+ZÔ{%žÂà#䚃WâBãƒÔ+½’(ëÊr!=TäB± Ì•t{z†n†nÆCØ–„  Å:\‘¿¡ñ Û‚ a^GSìÁÑÚ?É’¸AB†õ=¡Š( À ¯k@çEA\„.›qê“Äß}³¡[=¢â®§÷‘Ò*öCµA5Ý+‚5ïü÷”dÇ×»X×Ê›€õ¢ÙÐáîœÔò6p( ”ûŽ`¤#UØæ©Þ°WÝ”µ»8‡ƒ]Sì,Þò¯/c2ÅúñQ—ºg\;M^Jv”ØèòSWwèiK¢¸;·û=8nñ›u_{들4 ¨Âî j‡¨$GDïÃF/‘èÖ¦~Çzç–<ð±X‡9u²ž&Ô±÷ÇaUv’MMôƒ³uÁ'!)š½-9XNãÍÞb<»rx”D";)0žga«9%Ѓ¢FÉftÔîPQd¾ÐeP‡ç1K¸Î.½J¨¸>穟À¶é,I•ZD:&îmˆã½Ä=1:EÛ¶«{w8¯A„)„¢áG Ž«e (™¸>)Ø“öC½Þ…UÙŒÔuäë8EaËÌÈb_ƒoÖ<ÛªvÑÜ®–Y_/Z€ôw—ÍEwØ6oßÖëîß.„/VL¨ùeÝuWmO$æðwÄmàV ˜æûñ×ÄEÙy9õ‘ŸmñŽñJ²xTX%xâ R‘ˆ7†âU:Ð.°mÍ Fõ;&zˆ·ŒÐô\l¢½iô=FsºI„\’4¸l4Éb:g\ÎÈÄbf¹Ó ¶;©^Â)¯bOIŸvÎfÞÑ*àPÿ~öd\Ò‡ÚØà=ýDí-VÃþã¦9­øÝÎvÈ?BÌyŒ)…)»Üˆ(\Ìú*ÈE±5å’—˜ œ¥(Ej‚Nö²y×LÀâLÉi ³Ü0p-ç³QC Á.®×àQ‰“—%ÌÛ¸'J³Å§íÉ%X§”ݵ M±ÓŸj9ñ§…}XÚàOK“iÍ7ü©ƒé”щK‚½ù'(6$;9Ãë1Gj\–T#Àiö jì#éú˜´¤ž®'} j›]ÙɾÞp•¸@ˆ-‰â\*¢æcœèk}ÓFßuï‘M"a›Û éÉ‘’kô£uÕ‡#µ~Ö8›Å/¦AšS.úðŽjGH¸©ð!ú2B§ë躺ŽWŽg¢Owö!)?ÿ×zq¬ðëói¦ÏØBˆ¸ƒG€ú;¿¦ÇsDñ?„¶l½®–).«Âss£ùn»Ap••¥úüDP_è‘¢xÈ%8eo`}~©QÈ‚ Åÿ‡ð“#zõA('qá™ÆxÝÆé‚?Â>E}ò,\'&¦ ŽÁÄž\î²#—)ÒÇ}ýÍ.˜‡_E!yøëc{í—©¡±Ð@ë5 ¯•݈nÀFº„ÑPèd@ «¾º¯€ä®PC’ýisÛM¢U¸$û¥z§XNûA+9i%G[ÑÀ[[ÊQb—0ö§•\…”Ž´¹ëš¨Xpw‰s„Ÿ­´–Òæ ”67<(-°å¼Dé6"J]—˜}òã–”Bس Uã ùSw;wS©bš`‹È‰RóQäøb!]¦ÏgèzëëþÚ\©€YøLìQJ[ª÷IuÑgI,û¸˜P[,ejg HÇúXéhOÂÐZáJQöã´mºn~G°¿ªbÜŒAEçt vn]ø䟢ëøäî5<á'áMÁ^×ñW.b‘ý– 3Gl7¹qŸ§Ì+î‡&‚)ÑÄsþæFY¹N*– bSr¸N†uÄmÆ D8Sfpg˜Jøb02'Œ±oE€?—"÷ÔòÒý€#8ša¥@`}ûŽ0]á‹sîuözV€Î L/÷å>h {´= ®Úè„imMý¾ñ´Ü‰!¾ÎB’G0QÊ‡à„³ë‘“ð¢ÞRíõ ÿÌQ‰ªÄ.!&R˺‹ÙóFZ—(g'M›x˜I퇂-ЗkgúÜ m˜ ?qÿ˜ä–€7ÒÑÒÕ.Ú$SþŸðIJãÿv^|a‡AøjÁ^_!ñ™ –Ö²ñ 4Œ}ßõ±Ë‹xég{͘ÔÝ–uÜ.P'oþ¨šÔÞÚ*,R°³ƒñÚ×õÔR}UYªIVæ=aŸu¥Hšô|8¹ q*wœ“(cÞ~9 æ½¥›b;ü!ó·®¹`£œ”ÖRÀñ\ AW»%&ðܳŸT `ÛpÌ_©D*=ÚU&x! #ïõÂyl€ßæí-Vfé-ï%›BfE­¶V‡°F+ËàÙ·V…ÀkƒE Ù«8¨¯œ\¾w-À`@mBŠŸOšaÚÎxÚ ô€²s˜GÈ¿vÉDìŠBÜY2 xxxüâ臡f‚$/®™ÜT¸¿¿´tüoƒ<Gm¿ÈË}‰ÒtN‹ûÅ#ú½hU¶¸t£§*„Vtß°gi>°€O㘣3 HCd©mc>°1 ¿¡±Ò:PŒ}*‹vð„WSi]òÃ9R°¨oûÄy^µaÄîW¾'sþ»Y¬Õ é°D$}Ønäâi#$~¾(ˆ«ýT§McŸü#Ëþìü ñA)îˆoÓV„Ð0 õCrþ(0©(’üÇЧѴïÿ~L™|«Sº$ô=sB¸F¼ QN['3vÝ$Dƒm ö½§qI¢äÎI>8r#ѵƒŠÚMhY@˜\zž+PÞEÓÖImÆ™Íâ_þFÑ ÇÍÎvQ¯ws;™_cÙ|i † ó`ÂPðYYÆÝ¾&mš˜4®†\ù¨×• H9À~'^Æe{B‰lg3šY)Û<ŸE¨ ÑßõºYa{ÊO‚Ö-ø½ý)caLíŽ7 c‚‹‡"ô§Ìª8W_)þ³:ʾE”ͺN³TÕi4DV÷ë:É|ï/­ïsr) #s×[I- 1E äxŽ+rÙ·àç ôe–F=I`EØ“D_ÑcM²˜ÖvºµM›hbΞU-ºjúee/ÆM¼LMgœ ÷E.¨Ïoyz¦§üE&ˆ­,CÒÌç¥ ‘™ï1Q±n>b§%|ð2YMèÁ¹\ IvRw>Œ®Ø|¸jw¤¡K•å½ Œ! Íw§¡Çü€u¢†âµ°ÇÌøx«ÄWòäÒµm(1}˜JãqúüÞUŠý³I;-§ÕÚÖ=:öq¨"6'%VJº*PH}»"Pšú!#¶tý}èôô[œ]¹,Õ&$—“fŸeH®P x#ßì“Á%;N:„š?Ž5nK¿Q·ë.#»ìèn ô4dŒ¥Wøí¹lʹ”Äi(éBÍÍrÒè´³„µ$,„QhåØÔ šüÙ¾“nººó±“2“æ™vá^Æî]Ù9ö¤Æ.à“±w-r>M¡r×ÀÙRw]"¯£j@mÌÄéÌ}Ó\xó¤®ë†FøËR¦EòŠú rW¥R?Ðãåöæ8 ׊8ü™dDHÅ|-Έ´‰C^¤'>§ø–‚ðôÁ²Z °å9ÊóA'ïeyC—Sbúò#(ïû¸Ø›ú-Ÿ1ìÖ@L›¹†Çç´!ü¬’ZMÚô½£I—j†× Šùi4Ÿä6|ëÅåhgà†Ðü¤A´v ®>àû¡G™.ÑŒ±8ÚWÚ3ü¿õð_úÉ{5ý[ ·™R õ^P&ìì]|ÕEÜÑutãú?Ô•ÿQjvšÔŽw¶J´U?í»r§<ôÙ˜2ÁÆ€»-ß kèö42É#;Ø×iIlñçïHåMÚüØJ6‡jNÄ–å1qõ·½ÿo°[endstream endobj 650 0 obj << /Filter /FlateDecode /Length 4259 >> stream xœ­[MsÜ6Ò¾ëä=è¸[:maª4ñ ¦ê=Ø–cǶ¯¢ÍnUüV--É2㙡vHÙqûÛ·»pg¤xS©Š8$‚èî§Ÿþð¿Ê‚•ø_ø{¹<(nþ}ÀéîQøs¹§N'\…ûÒ°gÉŽÿ’-Ô„úg;ß÷%ž³`íû°®ªXÿ!ÿdc5;kÒ•š%r%dvDË(GÇž¶sÒP §Lu4ç²Ðª^þŸfÚ ¸-«×MøD¯ —©,ñýÊáOvš y¤´Ë&]¢ö–£%| .`H~Üuu¿eJYÒ•³º_ôÊUÜÖü¶G–×7˺o×ÅŒKƒûS0 +SÓ0WXíMãgö²½[¯ê…?²Jñ`…³»Å,ÕOxN=ɬŸköx¦aea*†k$bíšnÒ0¹†; óí†ØtlOÀñ„!–‡1ù2ĨmºÌ\.p!ƒŒ£GÜðC^•´@Àt'v€Ðœ A@h„9õ;@6)aÿ sáB€Ð¨äˆ~u ʲ$µU°Goy®›FÓÜ&OPvÃŽÛå-üµQÁ«Ý¸A¸ïüÞPϧøS/H†~ã¥fOêw¯Â[•"  54gçí»ÀÕõa†«‚Þ†û³9ǯ7,(0׆u{LµT8ÿÎ^~×x_X\"û.ÁŸ“ãý*H§½‰~KκÊÏw¤gŠÐ…ƒ«ÄªûÏp™x¦Q}×^0\G~uIÕ8’VJC~Ò´Ëk8Âõ”уŠÙRØ}Ø‘ƒ€¦ÎîDÃ# C‘Ì”òÐpWÐVçB`#÷Á…ž/À_PËÎQëÀùØL<Ío©¢ÍŸ×¿„»yˆ4 ^YÁ~ûå‰- ElA³GÃy¢5™¿ s7íºÉ<é2¬ :ý>ãjx_ Æ \NDåŠÎe3s ¤ü¯ý åç§%ùF­ñ¥€· Fá)ƒ©‡çiK„“„wn#†w?JIUbˆð ^‚„ÞÏ¿ä@’Ò¹Ôí7ÃZ*_+ÕŒu—‰¿~PúO ÅÊóÌï†M’5^gG\ãÙƒ›-a™·l›7ogÇ“Æ+Sðjpøoü![Ø–þÛ 4^î¢%ãUYá'WDÒ$»jV7(ë ÅÖûH”ì]OHò¶Ïšýˆ·€\vh$Õ—=ýá,Û‡gió¸Õ뼘Yð¤ÚâY >µÄ§+í¬ãì_•™d ¢ œyª˜·‰ÄŠMÔ!8?Ü„;%D?©H>xf¶>2gq8Aõü #¤Ê龯õͱKn®¶½‚²xç•T,ÒånVOш{¹áô9Äm ‘J¬À^¾°h-ðÅã²Âí ŽÀzÑÜ|ˆ+öd}Gý1 ‰:9°ÔÏÃÚv’ívá“@ýƈæ?u¯Dªh]Ë ©Ò#<råƒV„úHö;ôÿ%…¾ìâöDéu»qêÀ¦ÍÀùí:ÎÚ¥ŠÑôQ#ÁÄv™Çº­=¥•p¨Â€ðóLŸš®éwƒ2’Ê4ãGÌØ N$æ* ˜FÚ'1„8»‹œláEÆú e6x ®Ä)_®¨Â(·r˜ÂSFS釒 ï±Eiª7béJXmdħusƒ9ÀIb¦ÏÃ5xþóæq\'GùrØN“7y.É&H²ISr:"4ÒÜGè¥XÚmòdÑ®Mî 9CœHøü‹A–¸#àÖõª¾BJwÐæe‘âé…î‡ËÄ™LËË–…zŸ¼l_[…ÍÀùï”—Š!è[&Ñ·RŒ ¦ÊÝ(Æ œ…Ö{bÌÓ:@lö‘Ë ¼BmE¿LWÒKÉYœ@+pw_–©5öm®GT E2ÉL.EÚA0æSC°ˆ3Jã#¨ Ó8U–•˜gÁY³¸9€ŸWúx'…”˜„Y,ær#ØëÖ£'’¥QÊÃO¸˜á˜µ ’õº^îÍɉQû#Ï‚¼«`ppà§Mé§5¹Í¬;Oì郹QxHN¸µ'¢NÙÑø.DƒWI©þE8B4?†À³÷ê=W…sê>œÒ&p!ÆŒS’qØâ!Gq†°ˆÇE13欂³û´@b(ªl~“x|‰¼CrØÏGé²äÇ ö±áÊ/Š{~ÞÑÖ«\eú¡jNnÂjðÚ—çtíí“ý Jt9öh?4Ò€7nS¯âø‚à¾ü¡HTD¯D¤Èah§Fü®Û,0ÒÉ”ˆÅH{OÆdË èG±Ð=ò?ι”ID‡@œƒsôôˆÜrB¢·Øe0ðPÇÔ}J0Š Zå?%ëÉœðldcNËk<$`£õ*<® ¢qAæ0».‰‚/»)kXÁ^'c má8bÓ<ÐØ„¦¬‘ÔêPšhn²’…àjdn‘æ –Ô¦€ß¢·”„Õ§¯ñZÞ“Rׯ%¹ûG÷‘pÊ2k"á´¤±é6@©#­íóDQ·Qg.)q¸×}ÐPùבƒ›r~c’Mº­€Î¥Ú¡lH+2ð<£ð>9„¾V±Ë«f%¡ «ìˆ°oâeõÂv4Ö”êøº%ýBëm×ýt˜ ËZ—i‚önÿE½ö©KÀ`8™+Ÿ €õÿžÕA> ¢ƒGrñ;.ÒõŸ´]Ÿ¥`0Ã_‰!âßÏ_ÓnŸ]üí ,4•×{ªnªÚÑœ°:²ÇXXåG 2èî˜n°ƒO2KL ”äú6ÊÀ*@}20LL+ôZÊ, ¹»uÓÿæo£Ö¿8ŽÓ4{U/6åÄ]¥/ü¼ ëÕCNuÆ xàÒov¶PnÛ`Î@ÆrK{óf:w $¤‹³¿Á rI•ŒótzûîŽ|¤­ÏÝä}ž>s´dトkÎw&©~ ‰(vëÄšwÛ6 pàþE@å*GniÊaÈùpW…Õ‰¹fŽÑ ·ñ±¾I}sP;o½¥Ø¸~R¤å…q# ûcœÀ< œ9’FÂæ¶ùôüñ÷Å9š'††ìv gÙíúæä¶¾Äû¿Û˨_iiªÄžHß,MbýDá© = Þ݈Ì5ÕW©p×0ì¼~ŸL¹µÄ9•Àœ•â†rÛ÷™‹’…‘ƒ¹,3+YŒª];,F»*µÃ%ùųֻ àšW×i00§Êi½/»)ðÂOÓ`]@xV7øHR~/-û>5v½¤ÀZz_~ÖüÚßyëªHùå.EÜŒƒ‰› I2xË$#¶b•ÜgXS¥™Ió‚KãÄëÂÚ¦·.J΃dwÄr‚à Ôn<­´V‚¿à «¿Óz–—‹» %_k>ÚBL'Ó D󱆞dæó¼~—PÆuž‡@æ!é«süëc$ŒÖGA€™ìÑŨ̊=6¥žHùGxÐÏ×u*¿Ôwòæ‹øÞ Ã×Âj`œ Jòa RIá/qpˆJɤÁ‘ß̘„Â'¢óøŒU1¿¦¬·ž‘6S|“ÞŸÝ·q½*â©èroŠywx²?‘ûM ù±TËøñ-_6¹Šf8ËpOÂÆîÏ`Àµú1P¢•{Û;P3-ËiwoþmÈC(-•±E¬É‚[>Öñåk0–SrñYrnÇþ6bí‹\õ—a&@7“_¶©Âg%tÒ&‡ȘZ4]hgPà‹¦Ê9U´œ½ôE2,2PbVoÏ(ŠÝrSN¯»æ·Pù”}F°‘h½Â"„–¾€ñ,}œ¢ùõòzEÅU\¾˜Œ)\Ÿ“ØÒr×ÕïÙ§x>®`ëÎŽÒ ?¼CކmÞƬúMñÊçñ1ù±}ߦ“2VC`ãý%±§Ó[PË¡Ž‡AŠÂüÕÂÿÓƒN¯›. næÿð½p†Äé„G)i/¯p„ä”O婤¨š˜ós#Íü’]¦ô…–P³Ãü«là슨°/ÙEˆ>×¥+"@„ôbS©»'×Eõ=7‘ëÊw Âͯˌâ.Cª8c«-…êì‡tt¿È{LÖñhb"2Üï³_{úbvcqð”?®¶rë\b1!›¡vw*ÃèœÖ}fg¬,„ƒîe7 ºH*mõpпt?äBÅÌ/§¶Ï\³_øâöš~þØŒZ$‚€ÈéY¸¦&À:å»YLEê¼M.p¬NZ[rìš´Íl'˜¼”Ñf”<¶mpLEïêŽ [ÜêŽQ¾xÜ—J÷1“õÀ¾T¿Ž£Ö4$3€Š¡5M˜¤5mºý‹&Ûý¾žêwš<Ý Š6X…Q$‰ÔeÆ4š¯å («×†²wH"„³ §Eh–¶Â/ÒI)úÃt»?6ÑÕ¸D”'•xæ_ñÒû`|Q|À¿¢à[9*ðíµ%ÉíÐ[Îww—%D1Y@ ¥*ßC“É«‘¾Kµ8½þ>ö—pãì¼RVF§3UxÜk›@õôìØË+(gYÆÿu·€|dÌ}A> §`1ú%­Cõ,²ëP¶tåÐð#Õ½ý˜ÃÝù×–°f»9,N_{ÍÂ?/¤\njëf™­Pû"„ár£ðÔõJцRœ2¸Cë@Jœ÷¶0b!’3ªW̽¨KU¨JŽøÑÎv_Ë ~ÄwÖ2´/ul×2ðÚªe„ž­½µ a”¸GáSçQ‰‡;.Í!æLb;%¼Ê’:ÈÅ%`a©û'Õ@̾þVL7¾V‚Qê?ü”¤›ZIß`ôªûŽ”ÔìSíªæÑŠÒL´Pj•S„Û±«Âq6Ö»pµéˆlr½Ý¼ëß"#-¡¯{x »Ï=Œz‡ºQrëbÒÈQ|žÁÄ”•a|ìVLš¶–ǧ°«4ÃÁ-Z;Ä<;Zìðo¢“þ ¤ôÞØø¡÷4ýìí3ÎMÂ>Ø$¼Zs ¤*Ö÷(ùó·ƒÿ pendstream endobj 651 0 obj << /Filter /FlateDecode /Length 3775 >> stream xœÍ[KsÜ6¾ë¤=è–ƒN)L•†"žRµYrì8–íŒomâ=ŒG/ÚҌ¡¢òÿÍÙîÀ8C=\›ª­LqˆÆë믿n ì–ß-ñ¿ðïìz«Ü½Øúc‹ÓÛÝðÏìz÷ÙÉÖþÄ(xS¸ÒñÝ“ó-ß„ïZ¾[éªpRïž\o1eF'Ÿáck²¥+J® ÁÉéÖïìíÛGc)Eá¬f磲(µ¬x騢Á÷²pŽMŸè®*áØ-=k§¬eËvÕøø6i}ÕÖŽ´‚ÖUŦM=mϼ¹RWì`ž˜˜^}]ÖËÑN^­ÍkÇ:–º°Æø¿ôý(+`hŸFc3Ö•aоw²Ô–500¡qôœïá³FKìyÒvž<_d­¯²¿æØ¦"9{¬*Î>2Q–ÕÇQóâhœmÿ8²¸LjÙÆ>5;lËåøÃÈBCk̸>M–jÚÖ‹ØØ]œ‡gÍ^Ö—¡CX÷gM•åÖ@_R#‹‘0¸ ‚ÝÍCiØÄ·0ÂQ±åôú&Ý¢zžüuÇËŽ³nÚˬ—±°ðM)XÚ¹ß=Ø8«ŒÛ…]+´rÂïÖy²ÈR´Dì]òþð q‰†9ûG@B%S$h^+"fi€JÃJÃz]ßܶ´†Ó+0ø‡Ux¯–m=[â;0]Zö½ÿ¹,%;š¶ÓÕ# ] «y “;WT¶òãa{ÞÍL•~b cŒ _h>É­X'-ã¬öÈA˜.¹ÜÑ¥Pu Î -ìîXÈGõD':´†œŸËR?§­—ˬQöÇí —}››lë^³Î ¯Ùt^(ëŠÃ²R± RWÄ‚¼IrH•Þ›,y“‚‰–¥fÛÿÕnŒÀÓ8HUä4©:æòR‚ZƵqCÄ…“‰Ä…37ò>×oðkýfE·ïÎÜQgP«g„èÒazîP–¨#"^iö~VŸÍÃOÐÑÙFàZ]hkn| 9ˆ\Ã{Èub‡ÃvzØr% a"l¹|*wKEt@Ü-)Ž< ¶°Þ  ~‡Í%5ïÖÌZÉ1k‡Ø]íÎ)tZJƒÆNR‰ÎCC@ó&4ðq1Ec†“yƒb?ã“&Î!Àkk ›ÜÈXÀ´sæU=Þ‹ŒÚ©¢ m`ÆßÎý%'Â&î/‰ë>x‰"„'j|);jê¬qÏ·â—œŸÉªG¯òâÇ¡aIê!NGê;w€ù¾SyKÕC¢’†îØQ½œ¥Hoêë:Ûr #¡‚&i#*"ÖV¨@9¶ðmQ ÝIŒLVtÆhW¤•^ÙÉ*|¬:ÅQQ^W~7¿zec¯Å‡Ðøüø }z}ÊõÐ뾃Ñ.8(Bgúø{‰dE{¤‡û¢!¶¥”ҤБfUê/ƒ.…ýQD^~^:„w‘åF‡†ñÑe4‚ÉtÞ†ð„ùtW ‰Î* %ÙËiš#͇(¿Ù‹É“è¨ÚvgåØ¿½/ª/š/ÑãaIlÕ›ÓŠsÊ+`ÅKȉƒ=?8T$ÇuèÒ¨á.¿+àæÇ“ølh»LsŠ“¹í癃××!ë‘VÜPÒC­!iI¿lŸ3pÚà ‰±U÷Ë0\ôõ<|tÕqFÈ{Vœ!ç ²à†9ÃÙ¡¬d³Ú E>1žÎOxùø|‚ƒ( àrÐ-yßk” %{±Ÿ;¼ið0,àoá{àUÜuë4šxx;ÓA—R³ÏC¦g©¯DV1bün@œ4Ëô¯º ÃÔ7·®† R95€¼‘Ô-€} Bù¯ ¢-Ê—U ,°ô™=ÚV–Oéyz¾Zú~Ìô$K —ZÒ Ïb‡•±D˜ßaðï·Š°% dk€•ؘ¶LšzrðzÚ|½pv2©Eü kkÓà¢ø8†qa>ª!$ YH6W‹LÁê $SFR™è¯·¯%jOAZ²ÛKJú*ÊCW‘ãú ÷O#_Àd|¦[ÑòõR3ÉÖDCì>¯Ž¬l/— jËx³Ú³ã&ª€Ô”?%øÛaªX þ•v;•1- *ðõØ¿˜ž®ïaœEÕ†ÃðèdR' Ó|&#q¼ÀÌ?Žä*’„é¥ß%°j7o0„[­:úHʺ Ú/-G›‘“qï1:a¡bâ·Áñ„³/ÿX)v¶DG†E"fx]9»Jø ¾ô=”À «¾N±A‰Õt~b!àóèl¾¬Û¯ô+D»1¼­(ò.,vKåòj€ä=îëdã¶b™¬ì2Š,ãZ)ˆ/Ó‹”x¼¦u€ˆªê…²?ÉÛK±*à‹^#òBÕ^Ô5ì×Ékÿó“­_¶ÊBSqº®eCgjÙ(OT|W©ª0ÎbAûwvÙ¶7?ìïNÞ“1, º+»iŸÏfm±h.öo¦3œÞ?¯³óºMÆñäbºâª°&í4 ¬9M~èû…gOPBá­¡Qk,bI¥¤7T8ãTš‚Ì!2õÓ±¦&I7½O[V¾]vM@¡í…gØÞÒs¥á@¿‘Ó!/®êhV‡Þ9èo—¹6ÊjÂÑè«ÐÝépq™Äž2 0ÝŸWQ8Š{†ll?T™óŽ6ð²8Ú¯- —£¿-Îyd vîkBÚ@Üç#¸œ¾ðïòy¤¶3*ëdM¯êÒ1 U”]b’Ô/–íÆÅËJ>¾æg7Q $CŒ~M\Â2…ÌbJ%äš_¤Š#]žËT‰üê–—ï³R^Rº¤ÌÀy;¿£Kõô„,¡ ´&y½9æTíÐìY^ÅíŠÔwð”Ãy ÛT»™WŽŸg'!c 4D=¢ð(V_4Ë0<¾¡"â£Ðñ8Ïn(„†>É"RRÆtoÑzX fçpiI•#´KÎü4…òi$~ÎDkç„ÄÚ?JWéû5›`H¯ Ö]YLH9!QF噦óy>ßU_üI¤ÿiefc¢DoÕ㓯ábÞš¢â`wÀaet' \”; €Œ‰2vC¶"r™øgœIùȈ^m?XˆÝL–Á~¤F̉¬dEõë x&d*OÏ×kçd ô¶ÉO/²”Îw*­ç³ùYÏ2(Ž`ôÙt™ý|Æ™H÷Hú§•³»ñ~¸Ã‰S~.ÜÕì€ÕòxÂÔ0FSUceàžJó8!%ÙRµ>˜Š}]ó4Q“bÅg‚¥#ËÍÓ¦Åz ý(½8ñ¿QÍ+¶,2ÙQÓ'ìChI !Ü Öü\ÙIg´ð‹O·¾~ì +ßÇ• 41 ~o+éO‰.TV^¦cSšÆY{™ˆùò€Àom·²¨¨ä——™ðó2ì_õU¯„jÊò ~)éû(1dr²YÆR#8á› Ÿë¥FH2V¥ÆüOâ"£|m„j…»©õ,ª×á{Ð{^Ŷ¾Pä^±ºá"ÇÚùš”åŽT±$*!ø GÞ ¤ø ™ü6½žä|V5y±à™L¼‡» œ~Ÿ ÍO¼=¬-ò*5½ •´‘v=Nc{áQƤ/aýH,ÛÅY:Ö¿®qÏ…ˆ£úº—m%ÈŽ€˜å'“-Å`Ò C"’îf™ ÙÒ߃Õã«ó²¬v$¯º PèÖbð¢¹Øœ*Ù]A‰õÜ~9|5x¬Ö®­ICTµ}~¹Y05v÷kú'@dÙy4 X+îÿ@éœZèåòHU_¼ 3Äbhˆ›.ú®1po¯…rÿ‹U>âû?ð~BIàQÁMšSIJn¥¼7 H °^Þ “±ã˜$'Îøðù슽>2ùq‹l ÏE¹·ëò YH×ϽßL/¬”¢ÉM°1Ì,uQU ì´õ±±ôaºôU›Ê‘>ÚÎw,U×õUÝv%•òÇ#ÄQh1¹5@zŠ> stream xœ­Z[sܸ±~דóàÇTé-˜”†KÜÁ­Êƒ-ïnìø²‘µI¥âSZis† IIVþöù§»pÎŒíTÒƒ8$.F÷×_7ðïÓ²à§%þ…ÿW›“òt}òïNoOÿ«ÍéÓË“.Œ‚7EUVüôòÉïÂO?µÚ•Ô§—›¦Ôâò4v&k,«¢ä :\^Ÿü“½yóób)¥(*§Ù‡EY”ZZ^V¬ëñ½,ªŠ]tïéWVTì–žu¥œcøëüê6éÝŽÍÝB+èm-«û¦W~¸R[öd› Q·C3,þçòÅÞº–QÖ¥Ô…3ÆK|ß´-Œea¡•"+'@ήm»…°ÐÅvmvgïÁn“öcl"Øø1y¢Z˜Ùr–®i€÷ø«’¥v¬28Å@|¨ª$ mwƱmÒû*ýÐ¥ãöõz?+­MiØuK)6vq^ï:dsÜÑŠKÝ–µÝMFsF:©œ­Øý6.Ø†š £¹ÄÕ/ñ‡³Ô|I:<›tJá:WJ“.rÖQ£“Ä^£ŠÝ¤+G1Q8e ë‚~0FX¯üdXŸ-8›½N÷¶M@ƒâ²Ðª§—/O.ÿøO°Özl†±¹J÷±nƒ ÃæUòЬ·Á”ΖPcÖ²OÕ1Ñ®Å)W…Tð]PËÂZfí p*çíúÉBrP¯`*ðTU0ÚçÅ’£§p¶í d &ÊîÛÕõzµYm6ÍU`(ƒ÷O˜Wv¤8£€ÿ¥Àÿ¾p躰Y¸?% SÞ7ÃGÿ«QÈK‰.Å2óÿr“8LŸ}†Ð$ëRëÃ{ðúÌßêTgŸ‡¤Uä'Þ³'”JL­CwNÍÒÝÈ·f½À˺»5fÓ_‡÷ZäÛÜOfãk¸Y¦”Ð }Ç?’<1²Â- ËЬAÛ)aKU]M– ÷Ií–=Š›¢T0¢1ªS°·Éûܘƒ.¢ÙëhôauJØR'­;©R;¼Ðàø>6° >rSdPèR!|üd30&·¸¸öüµë?énu©­ ±‡É±CW /³ƆVP§ Ì 8m…ê4<µ±ƒ3ÌÝlfàœíÎ]ñ}cÀ÷³†tKÖë€40‰Â(ØtÛT†¥Ü§z€½B°çCÕ¦çÆ:­dŠã)¶©=`:©Ø§E²¸I}Žeˆ|“4J—0†á˸ Ó8hKI+ÃO—¡.@Ô|c ýܼ£Åq¡sðh»Ô·6Ù·°-°ì1Lv‹îª„}ñ\ ½ô4™šS_盽Ó2g±XZÜ„›¸ˆùu@ ®Û¡£)غ¯s¨ÿpÄaÛÐ"åØÅg [ç—¦­`qiˆ2´¡†çšóO“:kì ú*4ÖŒ^t£÷‚Ðãa'Ã+À‰z I<|›bpÛ¼OõšùÁòiÝçß×(†Ñ´²¿å 4¢1*éˆüƒ4ì4H˜ºBÝ„þˆù”8s¦dz8R 8ûrŒŠàl„¡`8X¤h¶¹÷’à¡çéÜ=Àff€³ÈBjvÞ‡àåqå ~ðügæ0Óûyˆ¢÷`È9åñ.¡,»kŽúM]Îy£7Øãã>ç9îïåž»BÌ2–åü'ߨ}£öÝɨKRrÞá®É~ÞÇvrŠ<Ôÿ:¼—³ésàûÔ‘r«jL¦ehýMtó7Hn‡Ð%„}C‹ýÝÂ6–Ï7"ooØØŒ0µ°º0ìÄ?ü°&oßy(€ìa“%$¬ dÈiï1 ~s`3Èáì׉V03jc•‘¬ä{Ï×+Éf¢I©HDÌ(ï312ú Þg»ÏrܾºETò#ÖlŽy…GjN©eŒŠï“?0%ÅÔLÔÌ6ú&kô ZA„¹«H…£š=ëü'¤¶ßO‡ç®-j};yìßõ'öˆ=tåÕË6ÏÚ†øÅJÏni’ªƒØ¬‡ÕÈèZVY–Õ>ÂaÈ£ £B ÎCR&Ÿ­5Û¨<çê¾!“Á1¸žùÃï÷F ñ1G°_ÎPñŒÝ‡JB%òo¤Q4xéöé)#¨ä·m] bóëz¢‹;F,}ZòÜG6%E•cOžôÏZ%Õ.ž…™|ü¼›<)¤)׫QßL‰UXP–Xù5ø5uyÇ~{ýüÙ›w‹# /ä™VÚðê~^ЀV9ëÀÙ?ìRX¶êWÛ«Õ7“ÚiTSÃmH£×·IÂÓ¶ÿ RVŽ´ûâE|®@b\^Xqå{ôS²)_ê,L¡'d-ÏÇLßÀ ›€YÒ'ÒØ¢ìy—A\š°ŒQ}ºuðW|nßLq8ØÍå5³«¬ÅF÷o6‹ÈÒΛ0¤ó "´·3ûðë`?¥Ó.½o”…S9.'>‰Šo3”ºmÞ!ʲT±,mjФô3 ‘Ì7µ”ìÀ#júiŸ¥öWêP3j® ‡öð‰†¾yK ޱxò“vÝõM¦ñM±àà×*hòIêÙÀ“ðpòë"³ ,ç]G©ïgÁA¬LmY^GŽYõ¯~Ëa2Ö/4–y¨2§‘{pT>a9m•>a¥„]7Û5²ˆÒP˜‹ Œ.N‘gth¤·Þ R´7È·±¸€äš^Á8ó*ìíåÂZP‰…‰ÀÄ.©VÅ9(ÿ_T‘¶b•9XÙeYH3­÷ŒÀ,ãÉés+ÑŠq«sWýò}øèÉXÜÃç$udm>d$yÐmëõYœH°?Sy…g´däŒRRŒšÊ7í{O €LæC­‹Es^îËn ú„j3öefÂ{lmª7+[‘ÎÏÂ3lÂó¬ÒÒ|®=”I9Ö®@eˆziýè,¾–Ùë¦ÅŠòœMæ™/RVþ*Êå1ÕÚ]Èm\( ÁÆ=WR•?Ȭ ªý6|„ízéÍŸ’»õm½^ýˆÙ{E‰# //t÷©ÏmÑlµ? `Oo›6U0ºÇYØ_Ú{„Žþ°Å$ä*à³ö‡ ïØ9 ¯`Ëd[1|ýÐ…¨ÊŸÒµlïšÞû'ìvý&'Sèd8Ñ­÷ïÊx«YõÛU߬†w‹ÃÞc‰ƒEMXìÍ—üøæ:³ž3“# ¡šÑ©¨@á9‰ xzmÃíܹ•U°sUŦJ@Ãø9‹KêVIj€Ô3zfç¹µ7]ÛàM*ö¼†/òÚDlUq2EéQïˆÑ ™:KQ(Í£/>$ rÅJŠ «wZ•/wF ¶i¨6ãØÏ]Ÿ!·x¦l±råwŒ94(i¯>ú¸(².…ŽvÛ&™%€ü©%Àѳz¬Ú ¯t¡â‘˜‹/ëf ¡j2 ‡+ÀðhÜd|Y‘Ü×7VññLË›1,E”°¿CÆËŠ¥aà·‹—´ŒŸ.OþzR‚ƒâéfü0„=p*”(ÀG@2 ‡D!Ç›øáüâÉëâb‰šÃ2ÚMß}Z]Eׯ¸©¯Pô?]|¸¿ÞÜ%büׇ±À; QºT¯z Vœ¾xo1Ü+ò)ÖvÈùuž¦v\‡6l3ß_È#$1ŽŸ‰ÅQÕ³ÁŒØ.yÚsáùnE|×*ENõèY“çÉY’á7H!7–ÖNMؾ~TA=ª<˜÷ÍѓЌ4Öm˜Å¹yu'Ô*4$lÝ~2qŸT¥ô©èƒK/•ëöß§«Ø—5 ?+óƒ´ÇÙpÇÁ/ÿ°ËñÞSe 8æÃîÝËX؃ä'¯Î…úæf]?¡ËÜ›ÆõŽ„"<á /RYGþ»ƒàÅ*89]ØEÓläaچ兀#glÚ31˱cî~˜BXzÆýøcX§&ÜÂTjMžf'÷mº@{UIWˆy Cerÿq:†˜Õs†©ã¯È aW$utˆá0~œêW¹ø^t_ùG4'ò0I&­ôödxÈ’À¼ÎB‡w¢âäÐó»$ƒ“{ù o¯¤z@÷f©^Xßy7å‚É1ZŸÇÒy1†æ‚!Ÿe^6f¿úM&H4XÍÆ}ï$ëP:èm«Ã¶ª±Änv¦šÐ±‘7•8‡¦[ °IÛºY¨ ÷Ù6ÐÎ]’s8jrU8§¾eí¦Œç¥‚ —Ÿ¤Í̲ÅÇ\•<2¨±uΠÎëMZWŒé†žñ”D(:Ðzý514HWzƒ,9áÀ£_Ó2%ÎW*pû¨îæuºÝŒ˜гª¾^¯Êàö¼ äG({þ£Æ}ýú$®œ¹þ¶}ãè`+iÃdŽôTÀŒöf!Àí.tPIDZ››4iVÑ»‰èoX#Dx€ôï‡^Q5F5Ï»…ôYüB#PÐŒžœg66>¹4“MîŽ/#¿CôPäo/$)çö 鎥ˆ¼´@Ëå¬ â„¶SD¸¤ ²î§êG½ÂëGÂ[zƽ}‰nˆ%ÿˆ“ jžµXË~¹m®FèèÊoຶ{ÿ6<ÁBöÒÒÃ’)d’©ù;Tïú¾ðƒb4$û„iš¬À°GÏCÈœ—)ðÄ~ÿzŠZQAˆÙŸ›õÇ0-ØÄÓl„ús~Î1].܆š³7Y€÷i J ùu“HÖíÔ4ñÍÁê òûs—œŒzðDnâ]5#³X›Rµ]ŸñAÚ_ò >Áýñiä{'å»Ö€®þ!æ!/ù1¼¬’Àè/ºÛ>)?ª¡ý±ÿ/„–ÀÆLZÿü¸Ú4WŒîª*:/À|¹Isæ®ß9--ý`؇MSLÿް¯ä÷†}¯^ÚB¸^ ªÐRÍÑ¶Ïœç žVza邞eN”1K:2Ä:%®¨=U±À1ùŽ2>è<šÇÕ]“®Ñ¤’½lŽžßÕ=5có\rgÓ!¸'òA¸êHü÷ësì·x·4xs”Ggà¹ÜÞ]? úªõa Ä3öÀ&Ù% <æåŠóÂj9¯×ÛúiD¨º¹¹êï&”È.rØÿﮬ| ?¥P0•Õ³Âó¾U Ê%™•þÒåÏMûŸÔ°6ÝÞÅgA¥t,Ü:…ù6“E(Ñ¿ic…q¦š¾}_Qo”T3¸ñ÷F:–â¬û·Ô¨üD&¹)óégÏáL.R>ï Ëý³»X&M‰m3F%ZöõºH\wVNýþºÈ±\ê|*(ïø»ý=p­ó[¬Ñp”y ‚Ä<ì(Õ…¬¨´Sö~@ÜmVcFj?x×å:ÖnÆãþZÚv\Ûày‘‘@UR=®WÛX<U&ìêýTïvRôñ‡XÜ2ìíÃ0®6‡½Nfˆ¯Ö,,x¥­"·vö;œ¬–;<Ì ÷Ü,þ~| ~Y%UMÅ?*&þõäÿcðBˆendstream endobj 653 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2382 >> stream xœ…V PSg¾î5ZäI„]Áêj×e[W»vÊN[‹@WÅb±€PyøBž‘‡< NrÓ$ˆD*‰¼Ô^µÓ—ˆ]]«³ãv[·õÕŽíØ®¥Ý9—ù™Ùý/¸ÖétfïLîL&Î÷Ç÷_Áøx1 …bþ†˜×r²vd¯ÍÈڳ♰WS÷íÉ+È *%['>ˆea¶7Ìö9¾#»´}ºÐà,ÀÿèÄåJ0? Ù¸5R ïXy÷)t©»{:OÃ;н¾øRbŠÞ ˆxÉbŽÇÿ2ÝÈÎ äc¥’ÊùÁ–®DØÛµ{_QÖqÍ_±| §¤.‚ éšmä"…×'!/ À_ ß¤qˆì*®£YÞÿzãqdï”TgSƒcàqÛ†dܺ<ÆèÁ¦Þïz˜pÍ[âq¡Ê9š×£kÊíÛmOs$;㎳α«æCpª××Ö•™kÚ ÌoYÛ›>S ‡,õ@å†Rgž#"à÷ù%¡ú„ÃyNÝ‘ÌúSUƒúQ]ELUlbY2(# P4^®=B1h¡ÎX³ÿQ¨MŵU.šŒÚmÖæz›ÐŸ3Í€¾pîjãu™ju4cÂ'‹Ð âæ"\†œA<(òßà¿q®Êù>›ÄUÅUÅìÎM24\½½jœÃÑb9¿ª7Ó3e«“·¤Æ¸KÍûˆK&Gæ“ÂK ù; ]q^x8&FO–8èÁ.1é}~·tn¾CŒØ5cÃòo‘ ?•?“Äé"’7®Í׿«ä•â·,âñCéäÍÒ¥s Þƒ³W”f®"š¥`¾˜ÖBi‰¨®H¡*‡˜_›]—šLH±”›õIj;œª«­€Zc%ñ#…ê-(°Ò¤ˆ¯‰øú$ö"wcr¦-ÏYÛšN°5Ô·`<þ¨v´Xmc çsí9 _ˆí¢bÂ>¢¥ ZÐ,§wÜ•Cñ%• ØÌŽÊ±}LYeβhhü·¹¦H€êʺZM8y:+ÙùˆÂ*£Ÿç>žœ%”X*;¦ÐŽfœƒ:õIò¦U;E©„Ævü3¥Tß"ØÏË”_˃—ÒƒaTóÅ*¡­ÊRaN„&ÁíÁ}ê–oÖŸ'¾°ˆº¶l…!¥·øô@¿Û>bë-r¸­õ–n¸®D]4m%Yl" ,*înæu±ÿèiSaÕÖ¯@9µA#X;”„j]UþlTA6¤Bé°màzá‚Æ.Ë£–KÜô¾?j0àEäÒ#>0"{C*õ†|U†­ºN©eé¹gpPM¢õ†$–WN7yéä}5o;Ã} º´ýÙ£Ôæ²7:p)u³ŠºPBa†’7í)ܩݴ²ÛŠ•|äit>Øtim¶½U› ir•ÎRyI¾C LÄ€Fœç-EãL•å`9TBÔÔuE™ë×À.È9\1¨´Ÿvœq^t£ß=pQ·j6UêËKkö+¯_Ã娮?Ѳ’g¨/å“e_„Ëf çÐÇÒðØøSCú­‡¬€«p¹@~­äùIßK?²|ËTÎø>›ÞŸ*ÐÁ"OaÃið|ò»›/¢7 ÃpÓàQCªš©õ_*~pWöŽœdZ‚üNã€ñ¸sÔÖor¼ëê?_Æi‡³=oÐÄÒ3Œi†ÇvìCâKweAŒËû™‘ƒwÊÁ£8d&‚XþãÇÕðôä¹éè~õyï5S=må›Çäpõô'ÿ|âÚtSØÜxýÍËÄ4k!.}W|Íp!“nÔM©é¯ÒÅßú€å¿#k~qñã<ÓTŒ~Ìp¡÷Mñœl¼‡ªËWn'GÔë¦i ßÿ?ÃNÀ” œ¨Z‡ªÖ©ÉëS‡"ò0u·{Ê h¸+Òridù5Lm Ëo«åZ¿küdôÔMиiøV’a «÷SS㓘tcGž'¨ú;NÛÅÜ+Ë€p@‚ÓŠ‰²déCE½ÌPI^z¤)Ê}î4wþ½YP¸ëwÇ“+êGU®hbë1ÙílàÄY¸è‰_ÏòÙ’3{fŸ`5[¬f»ÍÜtcöl†ù/n«Iqendstream endobj 654 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 217 >> stream xœcd`ab`ddôñ NÌ+64ÐõOÊÉ,,M JtwÿLúéÅÚÍÃÜÍòþ»½Ð)ÁãüG@€1ˆÁ˜‰‘‘%ýû¾ÿL­W”}¿xâûŒÃŒ¯~/½ó]äó¿b¿E¿ßúδòî¥9w$¼3|ô[¹›ãw+Ûo¿^¬ÙÎ}¿Èú݈í;ïL­q± øÍT¡Âvøû Öï*lß9ºÔ¸pð•.ü0ç{øÂÙ ÙNp=á–ãb Éçá<Ô½}@4µ‡‡¯¡Wendstream endobj 655 0 obj << /Filter /FlateDecode /Length 5480 >> stream xœÕ\M$7rÝsŸì‹}°uÌ2Téä79‚ 쮵ö’+7 RÝ==¹êêUÕôhö×;"Hf1˜¬ê.Æb1Õ™ü’Áˆ/"õÓjèÅjÀÿ¥o¶WÃêþê§+AOW韛íêw×WÿüÕð¤C«ë7W±‹Xy±rÆõA™ÕõöªS~}ýhì-k¬B? ®o¯¾ïþô§?¬7JÉ>xÓ½Yý`”Cèv{|®úºïv?Ð ¡ Ý{úm‚ö¾;O¿}_ô~8NOk£¡·sݸŸÆã]n0®ûíc1Äøðñ0Öÿ{ý‹um²¬ezom”øø–zk/A´yTßí“”ñE)L”—¢»›õ_…]ÆÃaúÇ¢%{;§ÝcZŸÝž­ï.¶ôÂ[؆/’üΰ­†^rµ‘¡·Näï¶ñP¤ƒÃêƒbKÑK+Ãj#zçl0ÔòÇÜ2°AM?x¹*~ß}µÞ§ »×]…O ¡—‚ŸBõä§ñóøfe ¡³ØÐôB9O’hXže’ÀB¬¤–×k眂åõbPADYþ'mŒ‡qZ’ ½Ò ¦ÜHÑ{èãOi|ëJ‘{zÚ}%r¾´èü#œˆ«úÐÚ_×ûVÈ÷wJËâ‡æûaPB•ÜýÜSø0Øö˜Õ¡µ}½n.I÷RËàòºÿ¾©.Cïµjk  ŽS„ÀÔ¥û2¶„Ífwmpôx×4ZIMßVA¸•Rù,"¶ ×R*Qùaðô‚Žìëë«?ãdvu¸‚+èWÀ²ýÛ•”þZY;€¨Õ4Tj¸ì󓇫ÿ:kþj-HöÆìŒ©AIQ³Àæí³Õ¼CQþß´5‹~¦&÷ÍCШt0+Ö_¼{Ør£zkP ^tQà­‘V8´ ßé‚ι¼+º·V__–Z^¸n¦ÀjÙxé_j@üd„|¹ÐB‹d´¼lpÎuшA¼ü¾‚‚òûڵ̿®¿ÀPØÊeÀ=rlÞß´¦eêyÞ¥¨3FÂ-Œ„Çñ™uj¯×÷ÚØÅçÖëõÿ·õf Wì^ÅÓÕ`0tÔ­iê §ŒÛ²)Zf;Ë0×h òJ^wRÇ™7.ƒE-QÐXúïÒ‡ ìÐÅrÚªnW`•t͸L .ðÉL7‰s½PÍ›r÷°¹`½îQÖ QÝ—ásk»Ãûâùö€/T·{ƒÿ V:wŒÀjî¨áKò›¦c`kºK/L0Ý1‡·µû0±¦Ç4ƒ²Ýý~W‚·w§ßÍÁ÷*«xs7,:ÀÁdýN…ÞKÕº9>,ô|0m 8Šy@xÒÁ¢…·ÚÚ‚]!wør½߽Ÿ`߃?‹§ñç—§÷M Þ\\½\ÑÅzoŸÙWpÏàÝ%WH>SèMð§é!Ph« <ßLJ¬:«[l¶¥ål,tEŠèãःî•G]s¤Eå­šU î%¨Úg6ÞØÞôfk]¼mÞ&ê#8sü¾Ñ>åf_5mžê=NQ½|!ª·’Ç ¨^º‚ŽêŸséŸë/{ôªÏ5µp‰À}†`¨øfà´òš¸¾"Nt%Ì]( î+€2*<‡ñ>š ýe(fy~[-ÂHøWg8ù銺0$l,ÓÕW¹%l7Ü]ƒÁ¬v¤×¥«ë‡.~ý4>¼Ï‘6w°êt1é7\»·xÕÍ@¦ïv:Üì§íô8>é)åwmòn£ñé~suýOßwÄñᘂ糿]zÕxã‘ô‘Ï8îð7˜¹Áó6OkƒÆRšD/ŒMä8°¸çdã·iT-9ð۾+ûïsmJ[ÚMÿÀàžýõ¡C˜V»ÆznXoØ¿µ€í´ƒ‚ÎðtTI˜L q ItÉeÒšÒ±°Í…·ÞG©†Á='Õ#ÛKöç}^šç ždÝmvð.d¤`<Ÿ{ŸPu¥|cTòh®£‚àqk‹­m÷Ì®Ñ8žÂ|·çÖxä*ÄWÂÞÝâhŠ<âmQ)Ä:ÑŒ'e‰³dUdÎØÛt…hįh"Àe%")¹»cy´û<+jå%w–ä}öQ÷=yœðD ¢:è` L=ÛŸž^a?­’q ¶klWìÿj¥›÷ΠªÆ…¡p•²kG.0œ~äºÑƒé½U5>ÈqBnàZÉöb¼Æ/c˜ƒ9NÌe?fH7¹ÞãRñzûdéÁåèîôBVøè“ml\€–•…Ls[rqîÓÛ×ë¼nI,¶3Ù¶ÌFDÔ®Ûî0'¥‘9îÇf¢Ý>r{ñaÆ8ã¾ ¯ñLF/ÌØE Kò‚×D4ê:€|à¨`Û ¦1hÊÎãë8TsSèÈ‚iñ N ¶áS€ß#9+ ò˜$§RÆ0ŽîmÍA¤Yã9Pÿú˜nJ\Ánu®§Ñ~˜OècÂ9(Vi´™ÿXÁ×à¬qHP„YZJt°`ƒ³¼YãOˆõNùÉ O°~û©¥©©Dç}sˆÈxA«ÝaÜÞ¥F†#÷ñ8¦‘{p·wLÒx΃íwÛ4. üyûè?$8î·©/ÜŽ)1 áE2+ñ>Â÷ÓÓ|YªCd°ÉJM¬Wm i­³×k`(4Œ Ýs²€P!M-Ôù,ګ㤷 tîÀ<ðC)voMSÃ4@pˤ~zΤ“#=z›š@\²àM‰eCΖBÈ!$È'#ªb×üijœTŒ"òê¿UÄà × ú0Jp¤9,áSìâM=Q ·Ö–$¤çÐjðE!…‡?Êö!>_„ú- …šïˆ†ëSΓ›––fÁû:Á¡Fó+q³™Ks”¡_ÃÌѶ:’¤q ´<ù\x@tµY²ÂJžTXg²ýÝþîvº9¾žÓ1»@ìi½›9n UPF£žŸN/Ýÿº%„ñ=lsÎ3~s;¶f˜ØšyPãyù¯£}ðÔ–H_¼M‡DF{X…25ŽÚÏ¥,Ý}²dÁVÌÓcªcÑ&¦7TŒÛ1¡dwîNnãgª†ÑD¨q{Âöjo’ ³€SÝÌ©áHv X”ƒíOtŒ®àÅÐVЖýX«:Á¸xL£Ô8e<澚¿ˆóŠ—‡ª4¼R…À’ü!‰`©u| Àº¦±D ¯M ¤Í…ƒÅ%(tbÇžÇb;«kôIœX”ÀÙ>˜…6{ ;(מê!°ÞU$‰ŠL—’Vʱàaq (J¸)ñš_;¡ÎÈ¥*Ñ”âS#¥’°1kö îfj,ï»tƒŽò*q\8Ìos½à&vUðEC™¬– ;'N[a)P<Æ£’Þ™¨þøFþ%ühš¾¶qp%I7ÁÔë߈@…_ŠgæYbçh´ XHñ ú*iãÑXò[uœG©ŒÒáã©CV§Ë‘æ|ªËò×øû˜j÷œG(Ú}sJ7¾YŒ™¦Å¾–V )e{ƒ.{fyqs´x–æÌEš[¦¦y) Â§*š­ ÌÈ»~›~Æû¬ÁÛŒAP]'²ÿ˜DÅLñ´Û« A9/ˆ^@I—++®˜¼Ë»u3×u¦è{ˆhé0ø.¯¶UíïbuÝ2QC µ‰ÄÞªá\®Í›ÅP”–åk,Ú¯™óÿdf?í{å¬÷­h2‘ÚÜ«Ÿ¾ì{Û‹0×Ïï÷¼ éϧv+òaù»®ïëP„ŒÒe‰#k„Óä±Ä¤røÛ"w™;ÛUUNüÛ\ï†P}‘LØQñm¼…²ü\”fîkªò$8…_(GPgkK=º•hæ“DüŽ1¢[ØêÝÓ«W¯úßÿ÷¹¤’ó½Ê4}ßÁV¾MB›º– HÌý‚ìU|SêVé$N¸¤8H)¤dD áùà\¥icŒáyRYYñl›:8,¼ý®vo45Ç•»C"±{l# Gv†‘Å*.+1á(þ0ÛY-(väv6%aÿ¦Á?$Ü‘»‚îr/WEá:ÎòoQsuüç¼Ü¼òÆÇ%´éØ|ÖznJòÊ0‰Æl?óè·iu¦j B“¿÷ºH£¥ï¬(Œ\¦ÅèSÓMÇ9鯹·ïsw—u2XžÍOïYê+¾/c½&S¬‡˜¸?[e°ÍŒ‰áx™kÊi|#¼Žå}M÷(OìËßOÛ–Ô®€È<jã=ìHŒ7¥NÓZˆî(sI ªœ5Iü‚J)]þzúG•`¹ ³O¸íXÃ%¨lbŒ¿¾pʃ8ÈHðùn]UÏÔv?Z:£y©<£(~ªÒš$–°Š± ëüEL§Fù–îžžk¿ ®è¹Yj!í¶v°|~ÿnÓfÈÀlÉçËRå¡q+9ˆ^DÂðßË…'0¶¶vÇ´ÐÆK_Åm…$®¢¾.ô£$Oï/ ÊþRŽ[Ù•ðŽ>cûµJnÜ5üدWÂæ|FͭоëÎE]÷í¯¬ƒ¶l3œÔq—±<ãáýëá}^çvw¼#G(ƒw‹ÆçŸý–ÂAF˜@V(ôfgÕ¨ðÆvX ú&†û¿2$Óé}€tÖ\nw%Hà Òej—äiø5|ªÛðø&~2WPW潟 /ç1‰Ñp€±'dêʦ;VF´Éž04*{6ù³¦»£tH#…Ë·²*t˜m27ærÛ•MÀ9JÛ±ò¥=…ñuþ˜;½@{³Æ´°-~—<äw šK ÛÀ´ Áv˜Ã†¥CÕ1íW9TûâÙ*MMôFñyö8/ž¸¹Í\ñÇõ×u™Û-#‚8¶¿²ýV`¤ÅGÁŽ&Zðï8E¿Qç¢ìǘßCÙ9[”ÙÊî[Àü ¬!ñ"”2ÿ:9AOY6®.|† 6ƒîQ)ËÝ¥ˆŽTJ1 ~6ÉûºÚàZ ÿñÈC!•¨Vmˆe¡»ü[/LkýŵsËÒ|lCE~B,6­)±øX©À ÚOï’ÐÚŸ+>ÖŸ$Öÿñ‚…žÑx6“†"œO‹n§*òLëxM4ú³Mþ(‡ ·`¨{CÉQ("øèžÀ¦œ££òñÔ<Ð,ƒª7¨-ƒNÿ¹†8¯ÐfÉÓ°‚Á!íò\•Ç=dë‹…¸eÿï”EK«>Q™aÞ_ÎXh޽c8â#ª8ûñOüHýáÂìÚtX˜Ö@6™…X§¨ªQåËuÜà‚VÄ€ÝÓ^3ŸïÅ©¢÷ÏV¨|ÚŽÄCêXŒœ¨ié¿óVsÓCQ~”º,ÓÙª.£ðXˆ•‚lÖŸ¯þSI‚endstream endobj 656 0 obj << /Filter /FlateDecode /Length 3495 >> stream xœ­ZKo䯾ëä”ÃÀN¬aØïn#¶ƒ`Ø9>H9P3#‰^Ž8&©•åƒ{ªúAv“)k-ö°§»ºÞõU5Z9YøÏÿ¿=œ«Û³ŸÎˆ}»òÿm«¿_œýù­–ð&7…!«‹›3·…¬(19+ØJ •&V‡³Ëì?kMs£ËÊz¿Þy!4ÑRg÷kªóB•õÕýzÃ,“,»Xk–Y³Þà ÂU¶[ã>¦Ha²¦mì΂°ìý¹ßhLö­}Ë Ë’cúä¯×3Xϳ¯«ú—ø§CÓM–þ÷⟠«ä±¬¬ ¹4 佨e̬/~<ÛpNV&r-%¾¾Ì@ $Ä5ÆvÑsõ¾Šÿ|ˆä*ëæ$Ùãš*‘Y ¶²vïW(–mãê²ëªßGÄ’m;Ü%r#h`Ì-ªúª¬ë'ÿ«VYsïŸÁZý]JŽr`ˆëì:f¹«žyÖÜøÝ’Îvj­Ú°ƒfÇhˆ°Þ”Yf‡2¬‘Ùmí”$ ×:HíHYƒÙu‚g©s½GýOÉëQÅU:æÊd}3J‘p޺ݒJIUvÛ6±íbAºÏ­ã– nèêâÍÙÅŸ.³Ø!šöPÖàˆ†Ø»‡è·k88Rd?F¯{&¦ï;ˆ^pkÀ­›:;©ÿC•l·Œh»IeUé9áâÙ€êP-³2ö­Ï Œ‘Œ5¿â6 ´>Ðп…|½‘üÎÐì"–»²Ì¥r•}9rÜ%æõl =~Œfe7¾…m‚ÙD*nY?ý2q•‘Á  ¡À¼¨~ýd½ä«‹³ïÎ\â«ötÂM“PH¸š¬¤Ë+ârí?J§aôÇwI¨ƒœPà[¾Cn‚÷Tl²%~ñ¦t¾DÖ]¦ÑöH‚e‚ÇJ³Ÿ]e˜L_§Zhð9šÐ%ƨˆò“dE®ÄDÓWkT,66‘8% 2Ë{Vé|š·\étêÉ?÷ÁL.›Ú ›¶Mœup fCð÷®wgc¦¬‹'„Ë6–iˆu cmuHh”¾F3“Î 6s|( ’„ûũ̃β!ÜXen†ôˆå2.‰.@4¤:üA#˜p¡Í‹¬tÉs‹ÈøwU—×A, °ÌÀ24€Ÿv©‰Œ×+Ò£G&ñ (Šyðkæ=à4\»—I}ðÅáñ]yë3PÁ)x‰/€¯tL t¦ ñIJäÅ}¿ï–N…•‚RŽÄ=Z§‘Sšc@€>& ¸ÃÁÇ#’‚Ü *<$S?tI^^†L"§†ÏþLjrÎH. ˆrMrN© ɯ-Ð4Îj‰Ÿ¬CÍë:'ÙÛò&ú¡OjBëÒ4€»ÂžhýVXAhQ˜W¤ðµØ[I©r­¨Ë€ësgÕÔþ˜[´^Û»ý}`ÉþÀ%#†ÄöǨ[¿è‚cÎ<@äRŽDkË‹IVûý²õa)ðö­OË9¨#ÒÜeö¦)w§²ŸO~ˆÀhjýвŀޢ:=Û:u°áy)¦¡¨h"è$¦ó]Ù/ÙU±œRÛuB<µ:é0.³·7;«H¸ÐW†\÷~Ñb*3äü¯P(¡©ÖþæR7È=Á*Í\<“4¥-=WE@±VÌ}ŽéÁYU€|Ù1eNB†F¿¯ fШæOB¶d½[äè$Uö¶µà®‹€8-”ª6üøë¶I´p‹¿‹Ø\{b,d»Žn 5ö½Ys¿ð^ª,NymsX/º˜ :‹S©ß¹”t•ý?U€ÏR“•I˜ì1íwÕ;¿d¡EÍØ²m«>´Œeý°$¨oJ‘ˆXÖÑ´ ˜"µ¤dà#y|n[•18«bç^4…–#©ÍU÷¥T0È×ИQì;U‚²NVÎâ(DÚÚöñ@µ„ÚHé¼à"#‡ŸìŸ´š1Mæ ,Ž ‘*ûÊk„p´Ý‘Œ!Y8š OºÑÔ®u8ì{_Ó†Ýff!†jf›Óó„Ö‹ ^2ïó„˜Ówžèô0'vÑü9¯²{ÅDbXÐ-ciúö6K3Wb£²w3ª¢àN›v^å9Ä÷gU˜9ì_ÐTÖÕ;—ÒådPP[äÃÝ\£ñ£2H"¾¯Ó*ƒÊ{WY2Üèëj>C£v†6îÈ‚:ñ䂼,öøéöÉP¿˜IíLEæš)f*?¸Ñ¢¶Ó*Ð2 :¢ ¼P¶Ûy¬ÐËy!lˆoÓt›Œìn=´è¬£Ãs¤ž;›=C— Á0Óã„Q;[XêbaÌêe`y‡´p9KÞŽ)ðËߌò¥Ä ØGJõÀ e:Jõ¶ÝþÐ ­eŠyN·2(г;ÀìÛ¾ëlõ]ìv2b±¤ìL2ª8ßQ“ôÚ»™ ÙÓ1ɦU×'ìB$XAZ“ÁïÞþu½”ÛF[y•}l÷ `Á%•à¶ï»™A~¦9šãô |ù·cv抲—}ŸŽýö§j4WÁp«ƒ0ß M`!0úw,VûÎ'PÈ€Ãôkð9U$G”‘œgñ¹èñà]L zðtLâ ’£5 Mb<ΈIt tXVúG"ÇÈ~†6LF1‡ÉíH„óª&¹8}Í:°:IÛ;¯U(Éœ½éƒãi7dÂçy8ææ6¦°zMëÖÂ܆Ùbs•}]ÝÆcí6®K¯|èQ  Fr)”›ò½ ¿C-çÔ$±èØL<ÉQBµXmBV°=V”êêº-Û'H .ðö˜ÌjeŸâB€bÓê¶t™} ¡³Û¶<ÞU[´uxåÉ.Ý.ħúéøÜaOö瀞›}»¿^™ìh½!0Ð=®¼" ümÆÇêplÚ¾¼èÝ r \×åöݦ¼ßmïª>äu¶xKwÇÎûËfü±o÷u]uù±lóÛ}J…åûöØtûÜ1rîàš'OøÃq{çOàŸ²½ÊÈ9=gçü\xrS1#Ý2#ç8'ž µ…PÝåÇ:2E þ|…ýÀu½ü:>ÞÖ[{ÿ^|6>vÝñö|”搜Áªu¾ˆ¨àOçãO;ÅÎظ Øä|4lùÐ7ù»ýÓo¿ÿêDÙãE®”^lÔ0‹í«ºv¡âĶÛv(´Œkv’ÐðÓ ÈÕQ»WÒ…»ÒmœËÚSe½0D§†ÎZ¢;NåÒÝþh/œ‚ÌtóÖ2Üã-\¦#Jç—;¯Y×D>?‘R4§ÃPûÍ®üÒiê ëç$Ý„ )ÊòXŒ»b96fÁ0ŠÚyüMz+joÝlëX]úõ„(É1Óžä&…Ji}¶Û¥+w–%!çÃËI°u|ó|ªþ÷iuþÝ"aù앱7;è6¨ '±Ø39^%vY˳Eù·E3.k]ÁL‰Óñ¸e‚ãguàh~¯8iSß,Óï æÛÞÈ1áE·8ƒØã-ÎÃØ]*i]ë%· ‹‚…Û‡.O -†›;œÃSÀ0³±Û(+^$(á4åÙrØþ… £­«Ô“ì(‰=cûq9Þº Emé~öÖmÞvê\ëpŸÐÝ5§bœéœK9triÎI|!ùXÇ Á¤Ïíö/ýœNº…dæ¦U(AŸÅ§ §¹JF÷3—Ó#b8Z㈨;‡ñ‘Ïû°C7-Í!.DÉœd9ëvŸƒ4ŸVH4ŸeÇ ŽéÓâ“4øÉ‡.Ü8Xó§ƒÌÃ!ÉR¶%•ðlG$I´z™#x¿>!î¾–Pr2ê9™2›P•åf Ðömõ³.‹õ# 1_¨Öv¡ËÕÚR5Tk߯¸¯‚$€£>ŒõÄ«‹B‹SáŽn côÖúå ‡ÅCø,.G¬ÒÏ~éfÛZ¯Pw—…›¤q_J-š7§¸d“o0¢´¿P0Ý‘ù‡Îçê]9¶,q\Ûýê[ªÏ|ÛõÙÐFq+ öF_üðrˉ/_Q¶#ʾhõùúÓÜ7ã,tdrlé³ à¬q<ÝÆŸˆ[ɤ˜RÇomãbxl®ËkœÑì}Ëé‚dߨÔ©r¢é¤i¸÷ŸD’¯äˆýÆÁ ?¨´ô²æý¾uc„MLÁ—zÀ’”¦ÌØO9—S"}/´¤ƒk~Ô‹å¶¼÷,J6¥ƒ®Ia¯aG#{V¥Ž59톂`aøÃp¿bjôNr>¼á!ØŠÅ|h2ªÅ1b2ŽÍç|¤Gµv»zö›8Eé’Ç:µzö4^ ²\ %G¥{µÓc\XéhNûÝÙÿèq€8endstream endobj 657 0 obj << /Filter /FlateDecode /Length 8340 >> stream xœ\[Çq~?¿â¼y€'Ó÷n?H‚Ø€aÃBÀ²è%­Á%e’R’Ÿú¾ªêž9ÚM@–U§ºªº§»n}ùûu»…ë†ÿìïþtÙ®ß_þ~ Ä^íÏþtý—7—üºfÁÜÆ6ÂõÍwm®=\[i·‘ÊõÍÓå!o¯ÞüMˆ{=§qÛB–o¾½|óðÇ?þæÕë”âmôòðÝ«í¶•ÔÂ6>~>ÝÆxøúã_ùCÈ-އŸøï2r¬ÆøéÐúý—ÇŸ_•,­[{xûéñí—wÊn+íáŸ?X¼}ÿ_Ÿ?¿ú˛߉ªq+G]_»²¯EFî)ªÎ_ÿÓ«×% óž~üôøáËŸö÷úööãû/~EVÿöæòÆ©^¿ÿ,£8dX¶­_ó–ÓM±&i^æßO﮺~¸|s ý–Z½¦íV£ÐýE†éÛK½…XRºþ‡Œôïäÿ¿É·ùí%m¥Þâ5„øút‰)Êp¥kIU„¤ëûË¿_Bîù–êµlÛv‹íª{©Æ­–kM[¼É÷Õ7¦f‰Ün¹„ë׿½Äh¤u¾ÅŽÖ±ö›ÌÇPFÌAú!¸ToÒðé€á6ªQµtËT2b]5é·'Fõݤ%$nã–©#{1^!Þ⸖ØxR¯†áwŒRÉ7]p%Ýšjop>B]ôjÀEíœºŽ™bH•C¸Å,¼µxZ˜$ŸÔXmƒ?–$[Õ ?:‚D!’k‰c»5~7Ǥ\§V¹5™—B%-+Y¬†41¤*[¹E„Wçh9& /ûº¢DÕqîñV(ã—ÚÄ(•̧*cšdq)/ÇdY8)ûÈ‹ÖèuØl´d6ßâDØÀKw¡ª°×ÁrL’¿)˜ò²BÐÅ0Ø1(ßåóä‰Qªµ‹µÜ‚„ab\“|– ÃË­èG”i^òÄè ÊTê®vë”èL™P¤ª²’·‰›Mç:ºjª¥j228A>‹ ÈÓÓûÍ–Àn‡Þn©ë÷©·Þ'ƾõ¸YS¡Èʤ@Çȧ»mþ}ªÎÊ(¶®òûÈ2»-„ %n:ý¬aJÛd¾®ƒ°q¨` sže$³»6tYÖ!‡Ê1Ú\œ¬#¬Ðe¶)/Y¥˜k†Q*YßXÁ¡ô[)*Q11d_öòM©·˜ªžŠ-hŘ1Óåd‘‡æÆŒK\L›<™£ìÎÖ ªULiǘÑ”»=Ô„8fH§æ0d˜òoü4A¾rL£T9ê\“á°!uLå×—9Ê —‘uáË­cC*3’Ã<ÌäNŒ,Çæ–Fi”–!ûªÀ§habìSø BÃgz:`š¬Ììz‘¤ßÔ‰9ƒ™V„©iÄwŠÏTaŠ ber]ó*Ø\0•d±×416 >'炪äøš1—sÿóÙ—Õ$'L`CØb.˜Ûyˆ¯ÑO312Cs“<`»+0”lËt­ÀÛZjû ƒ܎œa‚ÈmÝÍZè3-d[ŽæÀ!¹5÷&>_b<6ŽBóÖÂÄ(•pß’à¶ £ùtÀˆž­®©0ùj÷©€q7Ìœ wL€áSã.k1[·T¸ž·àþdÏ«c¥’XB<_–(éÆÙn†>Ý Ö­ØòÜ%鿢e-L„9 ."1wõ¶é`¦‹å,ª¢¶Èȱ¥„%A‹½ XdP=µåб(ß×ãó8ÝÇ7˜œ¡pj*`üûÄØ-™ÿ ñiaBaÇŸÕ2n²ê0ƒ0(TRX»¿ãD!@<` dY§Þ&‹‹VNìr¸2Ô£/“lÁÂx÷²¸QBFÕÅdHà+k¤Àh=0bwB¹«*c°$Š` ëð.rÄþå| Ç‰‹æPî w \»ܳ¹Œ¦Œó °´˜*ÅÔÏ8Üõ`v¤ƒÌ5Äࣉç5—–15¸œh9ÝÛ¡CÝ &Ò&–_C±MlmÁ‚–%·%ŽtîœH£ ±àÁ?é|Ëô´& µ¯ 󃮊kÀ¨–+ŒÖQu;œ(œoŽ™ºBdD¼š\Ùu3 ²˜(ó´h4[¹‹bœº0b„#‡½a¥ÒÉ7jp‚ã;oôä“bÚÒÙ|Â*€I1M֬ؤɡÁ¦Ö%Ã`Ì ¨06ý¼ù]žž±Ö&LÂàW’o·¹‰•¡Í½ ³#t¨EÙAtAƒ†9i 7˜–¼ÇÄÝ4@rÌs&t1ò% ò]ÊÚoÇ0“ë}£ƒGFWº®RÅä+/XÁ«Ñ¹˜$LÏj–˜ÖdŒÎ€Ñ“p¬Â /ŒöOtp#Ò«®æfW"]µŸ Ô¶ÏšÏmhJ‡4kDƒÕ’&Æœ«LuFGââ4üsŒ„¥1¼`ä{g4\àó8Gñ©düx]üSCljP…'œ#ãc–¢ŸƒùCR5f„¹ ùGìëg$0‡Æ’9gŽÂÞÂKÌ$‹Çyêb‘¾ýìšyë“êÏ;¶Žj‚nE2Ngî_«ÚƬ¡íÄhøèç$œVÜd t¦ZEm¡D×̩Ɨ›Gðr#ª]vµfýÂ+ -Y“Y „¿²ïʘ٣}Vé,ÂÙ‰Ñ Q­›ihÝŠ3í‘̱¡~J"RŠDå«‹¾Z9a0Žì裬$k †æÙ©$Nk0ÙéÉ‚ˆ…‘‘“ñáÈlUS1}’OwxU‡±áÊâõ¤#‡UZ8µŒp]d,ËQ†Âûeiᮥs8÷C ³D±¬? §¹N ƒiÀÌ—¡O(˜JD4 –ÁªÁ˜Îu£Ùœ•©éâ`°É` ÃHò%šNQúÔ2 F ÓbR¸ÞÎáÜömt (1ABæäqLfq!p93•AOŒF¨Ó†v(²(ÄÈŽÅ`Á*-#Ň,28å(Ca¸)SBKGepß u:2©9•ÛfU°‰‘°{›\$Upi ó »u»®ÔœE “ƒÃ*-ShsÁ—£ …9|¦…S¸–Îáܼ,‘ µ'Y­¼a¢Ô Õrú:µ¨†Q³“Yø›,@R`^µÍLX)^|t v 8M›M2V¹¥]{ ð®ŽBCw£€S;rpXepœ “¹w±8¤‚ŒjÉPx¿,-œÂµtç~¼PÀ(Á™ˆgÖ: CGŸ•:OæùaÃfr³:詟¦‰ñÀÜA…v u_.ë'b‚·4áOd67)Pþ?r0Ød …c:ÃÌÉ¡6†™S†Áûej1)\oçpîÇ®™ «H¹É(%Ûú2Lg™U¸&~¾wÞ 7s̾¡d³#8¬"öË u×É™ÃQ‚Âì™éண38÷â»%jA­•ñµÂ›0Ï.uáļ° ¯¢‹,g<0QaÏ) “„˜=däåÓšõþNA9rpXe0ž0ŒM(eÐ*ƒ¸)Â`®UUbR¸’ÆàÜ‹F-è– í1<ÕÝnXxÚ™‡MŒÆŠ]Sñ$Ó)h*žÄƒ2+ËÆñÂpk107±$›é`TðZu®íV¹»Æš^jfÀ·a6. Ñy98¬2ØÂ0©ªƒp±©ƒp ó“šNáZ:‡s?,t` Äzûо¦oM­]VÉã^>ýL¨Þõ‹`ÖN “39¸\•±Æy53&‰R:È0ØBV Âõvç~h0;¸óÍè¬i•Á1¥kp….jÀµip%³­ç ³hÀ*ô¢Ð*ôâà°Ê@ Ç$F~‹Cdä·d(Ì*iaSKãp× f‘`K÷-<-ÄŸŽH6ÐÖöÍ\¿¬ò&¼kVÇB²z2X  `4a˜Êha2h¬÷°DÌHV•0ÌTQÜuAgc š²Èü(šZ9Fx$•BVì1ÈT˜f*pü'E³ª…spXe …cRמ8l%e(LËfZ8…kéÎýÐ/¦9ƒ¤ñAwCgb0—$ï,v~§a¦ˆ#ÅN¥Á»&,!(´¸¸88¬2öËÂHS¿:FÆeÉp-T‹EáZ:‡s?¬êŪ?#"‹‡S«Ú"Ý-dÜF[ƒV“[ñxû0å@!FÍbüðÊÄ4†Ø A™÷4‰vÊá]ê,„€Ãr-e0aÁ†‘%‹™`íÅ.棅- ¦ Ná*jû»>ì~,Uè–6?{å¤:a9ú™%TNè'Ì)/¶tˆœÊðöLLML`Iu¶¬Ø, C€«à®¡38÷aŸ4ÉÔÅï›í¨³VaX!ŽcŠX¯- œ’èÇå°ŠØ/ ƒ}|/ç`³}ÊP˜Á”iᦤ18wb÷½gìo8ßfE}Ãd°Xpáæ &íºªt ÓþÕ‹"ñHìâà°Ê°B1¡ëÄrzphÉPx¿,-³´T÷ý0«†} 1„›Ÿ™TDÛ¸uÈc £'ñÍØ\w&­«pÉCÚ¡½‚ÆŸM(2 øaÍyuñ7p¿L&)ìíOúï¾ay.#Ïb³a†t‡3dà‘¬Ö\4XV˜›o iG««VÓ’Õš•CþÒA†Áæ‘ÃÀutç^¼Pû¬z®Åä»j2Ø\ª­Ù®êðØÞž˜Šx8 ™´b{§ŽiÜn‹AOƳ"OlJT ð®gï¹´œ"F5"ÆaÂ*-S*š‹CfÁvÉP˜–Ï´0Š©¥q¸ëÇtÝÛТdwÝÄÈtKÑ\wÐjGÈêV™;ß'ãÍí@Q“çàp²}’…‰•AÚä€m§t¡°»îp p-ùft©T²˜DAŸS’©¨»´9Õ¹sc Cr;âdaã-oï r§µUNÂtzó”5“5þ î—¥€P;o}ÐÜ’ëέ(l߇軮ĸ+VÊ™ZÓ™Ír’Áûe–œ&Î\ÕÞA`΀˜Dw·D:‰%Ba«Ö÷kè Î}xaÙŠ“’9\jï~Ê+²y©9Ú)/-Ë/Ä «V†/uÃv’Ö1™·JdF†í ›aŒ-’Î!…w]ç<¸æÃê&ÎÁa•±_Ûeãº8`{¬d(̵`Z8…kéÎý°œ=è6?Î?=HLnºaŒ Yw;uOK7ø ¶œ›“BúÄÓÈÎÁa•a9;1Ñ2pç4™2‚',S §p-ùj‘6Þ[Èväáé€Á)s8ÎPt»¼ÚˆpãvºÂ渊sdà°Š@Ç@‘r "Oh/ 36œÂutç^X ˆò\®8«¦Ö#«©›Æ×·,x9¡Op·Slý@ -Ú¨ü9Ñ’Ùm^kVÿ ü äTT&éçíOú›û°ÁÈZæçƒ‘”ŒdÑ 71'Û8Œ½ÂtíðsU³8›;¬¨¤aPQÕÕŠwGî s*˜|§pý¼ù¹º¼:óiZª¤e#ÇHÒ²š÷hSn°¤Ó'ÀÙÑõŒ­ÿ,6¬®Ö*ûý2p^LŬ¹n.wÌ5ù^p³T/ÕüNý™€°t²Wg­ì!AP¯GeÙÛrYžáŒxà0a•a)12a)"&ìèK„Át:ªÄ¤p%Á¹f mG·yÐL1ð%[];Ó8­ÛûÚ56ø°3=)lßyrð}h•qÜ™FÊtؘ®–mûÆtõl{nL;…«m ν°o–õ;&šO 36-ôÙØ).ît=k𮧺ê"2ŒyµwÐðƒ¦ñŸ·Ç¡Ž~`0?X²]~£pÁ¹¶¼ŠFò›Þ3›› *6p#i´·eKv“ǃAOPNŠ˜™›UÂ~™q¦,Úzóœ M ÛÈQ£˜*‡»N˜5LZ¦íÅOP;fÐ.E¤¼Äãÿ¼YÆmd…÷¤L &‡UÆ!€@XTë p®dL›¨ZL ×Ò9œûan¹²RqâL½²!2ï|ðr®U‹Â²Š‚Ê““þs.š»zk‡ÉžÙTh¢Íq îÀà~YÒíwWÎ[Ÿ´·RSb‹‚£ÿêº S±­ÎX-òd <ìÍX®ä ÓÁfUÒ(ÄðX¥spØd°ÚdVg W9”Ôÿ™ ƒYnR-&…ëíÎý˜‘Fb&Xì # ÓÓóF-,åµM3G‚i´²~<ôµš;Lþi‘xatµ8L»ø´HƒòíwWÏ›Ÿôßý +6Œp°ø ÖÈkT]#œ”Bá×=0NIÏÌ)ÅÜ{Q½99(l"¸ Ñ«Æ Ê x©%ÂaÛ,ÚÆÂµv§^˜Ñ(DŽlLL¶|:ñŽ#w¶Mà,\›0åýðEëÕíÀÁa•aQ1Øüà!㪆.Cáý²´p ×Ò9œû1?Z±#åváÖ1FJ÷Ƹ³E#FÓĬSaûj£(Êfz‡U†}¶Æâi°j‚r€¯û_8P˜–“ùêÅ ·ÀûVoºkjpàó܈Q‡‡ù5N+ÄÚ¸žiöŸ‡ÞWñÆnzÊÜá6ŠfÖÖ(Úä­í¢³dm?;]`zïz¹3rK§à"‘wSDݸU¥ÿº'Ä[ĬLqÓˆ ŒZÒ ÀÏAƒ8on°òß/ ѵ@äíaÒÊ⯠‹g*ßw}½ùI3€ùfõ·Qýž0!j¹¨&;c´œÓ’±Vƒ´çÅHvÆÂ88¬"öËÂàˆ„q@¹Ç&Ã`+ƒyAަ¤38uÂ6´‹FÐHlCÛ0]«åˆd"³ÀnÛ8Es:…w5/ý@ ëº8¬"låS´Üî ²VÛ§„ìÕö©ƒQLÁ]/ÌëAê €‹.kд֊[.2šƒ…ÍqÒÚïcèœõæg»S3¸£mÙ3ÛãÖë?A~,“o¿»zÞü¤ÿ>o˜y¨òé€Ñ›Ê¬Ø"4³c•œÉÝÖQNT}ÉÖ)bT-ŒÃ„çQΉÁ5¶v] ·z— …­nL-Œbjiîú¡}Ãþ%YP{:`:C­ˆwzÀªddñl¨Á»^*GEÑ)"®X8LXep4 S¹Õ»8”¢; .Ca.cÓÂ)\Kãp×ýø. ³í†Ñ³é¼*…{å8Y’&bŒ5¦}Ïk8…]®œV´ñÉ¢¬%åÀ«C)NÓÎ'½(íªåâpîÇ ‡4õ&@AxÙ4Ã¥¿(˜ÈûZ8ÚŠKþý€y¾âŠ™ÆÜ=èõtG4œÌ :W³m¥b?f»^×ý@P¢À¬½‚Æô†À)4Ìk^[е¡ü ´¥‘ãÀöö'ýwß²gÈ/ÓÅŠÈŽ‘ ã%àTµ*vJ¶%<Ò"ÒƒLV¦'1…cq l;ÊPØÊÎÔÂ(¦–Æá®sþV:ßà$ÑùÐ*(ωÃô1þízŽ\a†Zº‡<)*ó.«Œý²0úœÈâ€=Ü£ …­˜K-œÂµtç~ènÍ®pT{ÔµZé©èKlÃ\ym¿fw­9óBŒþŽË’±¬æ&柆ÈEx{ëÿ‘ؤ¯ç4­Kaj½ì€ëK|ËE´bô»0šCüV+-0zYŸßzº1¯µüâÕ²¾™…§¤†¿MÓôtx)]_q|žê^Þ}; ¼kùôìS«¿”(͸ƒVqÒp´$Þ?÷ªOÀž[>/ñ—Å>+ç`’dš  ÌéùߊL*<Ÿ¸Å,øU›^Áå-B %²ÜyŒKt(¹éÅ²Ì Žš¢§W<‚¬¿¤ .™gÛ¥Á\¥ Ø|@)%î¬í͸§ÊǾšîH>GRàt,ˆv£½»ô?<–,Fù*zm›|ªÃkɰî8®ˆ +’mãÅäïßÿ´üüÏ&¿ا“ G·ÜðòðÃçÏ?~ϱ×%ŸâŠg—$úà>ÿôþñ~çëÃ_‰B]TI¥Ñ¥yôÉÿÚ›ÃÏ?.ü¿?XüÿëtÂ[H¸oŸùÀ tú›‡xê™Ï)÷øðôö=PÆå11×7¿¿<ì?¼{zÜå‡_Ý“| A¿ù‡o>¾BP¾ìÃϯ"þÕÃÃ;á–·‡/ëæ_Tr *¹¦'\õÄ(,V_Fˆ/ |ïáÐ~É1òëü9akp56¼AmpÖ ¹Ù8áјÉ;é›2K´þìŠYã“ÞÏÚLgˆ7•ùžAÆ»(0 G&kFéªÄ…xî9,!*Ø.x19òA´1&³Þ…ͧW&b#ö«ÿã#âÇÄ®xª[R ¿yüþø¶÷§ù”÷xå×òµ½Žòðæ‡;*@ˆM¾==>¨>~úüøñÃáÕq™}Ê!´‡Ïû±ÑÛ/_NLæ»åñáÇã‹äý­ò‘>~gÿNýáËQë#'}’\¦Ôa”¢,¿$Vˆ¯§?|ûøö¯ï¾¼û¬ï¬ŸÇE ™þÎú±×o¿¼½½zŽûë„¢|É×8"® ÿôøå‡Ç¯¿ÿôñ§?ãÝs.¸‡ýø3žUÿ°¿³·Ðeüÿðö˧Çÿü5Y£ä+âu`ÒLNnÝ^‡ÒÐ`Z¬×±Æ¢Æ M_ÛŠg¾kíHp€œ1WŒ}<¼N8€"tTs ×È™ û´S¾³üE{™`[åýÀ¶X†Œcli#Kð¡æè~_Å„g\] ŒE~Èx‹.ŽAð+ÝT­~ÿøáÝÛO¦ÔVe¤ß}÷¸?¾ûðå³-îÉo{={s\ÇX=ËØ¥ÖàžZûàŠ †áµ/Ó6˜ÒRFIëëâ¤O¬]|ì ·Å‘ƒ¸çxîù\>˜HßK?1Iykâ–O8ñáYô©s˜?þü!žöR3Vît”P0œÙÇÖ[qVnÕQÆöÃç/o9²¿’P án\ïGfu)a;x ¦Öt6_]þ¢­ endstream endobj 658 0 obj << /Filter /FlateDecode /Length 2364 >> stream xœµXKo#¹¾û7ä [¨Ì¨Ã÷ÃÈp&»‹ƒ`b8¹xrhK²Ý Iíé–íLûÛSÅG7Ùjy6 >È¢XÅzñ«úøeA+¶ ø?×û ºx¸ørÁüê"~¬÷‹?Ý\üþÚjX©ulqsDØ‚3W *F™Ê µ¸Ù_Ü’.-¯œ‚Ô»írE+ª,³Ú’Ã’ÛŠjfȱ9,WBÀ6-ÈÍÒŠŠR¡H»\á& Ù,QNFi»ÖKR&ÈËû(èùäW…¤8æX|ëp¿€ý’üÐìþ“ÿ´oûÉÖÝü|Õ2÷UP^igÀߛ͑lyóÆÃæ{VR¨Š±XÁ§Õ·Þ’•_œ•b¹R\BHY1 [­L\sЬ­¤äZÓÙóWª2\;µð±Q&èþ[ ‰âä~&Ÿ—ÁÁÒnÆÂæ[²Ïu§Sc²b¹‚‚aªr`ã:s}ˆKIî`;ÔŽfh..RÍÉs¦¯LÑ&J¦6i¼´ ˜ó› S)!¢ã7õœÃœUŠZžn£:òÓ™³’“ÊI A‰Î;ò™,çÌ+´rö2£éQ«¼ËŸ}𤆈ŽËu¿F—9ØÕ}e¨&÷Ëñ—¶‹"pÛÆì´ñ¸³Q] ÀêôbÅD¥¤ãÉ­xT³žóN³J&× (ÆÒÍnÿÜY÷~ Ýu{÷Üg (¥K§@u¯„—¬$ƒŒ…¤pzs.«]ØE#Ç6J;sÍæW× ÷5 r8§ø5î\¶w3ê¨{Y*Ä­H}lÚ  ’ÃÆ @Ä8¼läfZ ¸2ûçnªGÛà—d¤+ò«Øå®ô)*¥nHT€¬4=”䮼CFÅ;Tà”5šÁº8C¡÷ø‰‰šüî‹x®@ dݤþ)@Û™5Èlº†·ä5T-Ì!ÝÑ0ñ±¸`°®©¿,ͱ÷öú¬·^ÒG^o³u•ŽíÛ×s ,lÅ-uS~#µ„Çe¬αk¿ 1ÕE…¶qÒúfáú=…òúX§X@I`ùXHKú¼ˆžÎü¿kÂ!/ûÿ{ŸãÝÆ˜`nOZž` ÐNcW79¤_pÅü¾Þ?e¿ì’ Hôk³ÛÅPe§Â-JMnË)&üæ\ 7Qqy{Â2ƒ¬@<ý¿gut(ûªÇ‡ WCƒ¨sT“üÛŽÙ"5]v`5çyÉÓZ2ÉdôÔüÄòŠhôÇf_§ó 3åÇ‹›ßÍä†:4´Î³—[]—¹9à…¤Š2*(ÌŠ ‰tï|ÂÏ®¤óæ„CD@ œ"gÚ®ß2×¾™'ìÇIà®õØŒzjÊù¶+TèHp©©6!·ÀÊq&þuäw:×§\ØCQ!‡ œ­™Á޶ú@ÌW[i˜ÿFÞ…³'>~€]W}:Þ–u9Z{_<ÿlc|Ôi’ß䤖U0z¸_üÄ!3‹9qÂ,¨ ½®w»É­)’0bf–}mŠ)§Þîü»×ÁM͇`Æ —„©\P¿át,ÔOýeAÍ‘»ˆk(Â<‘IÒLüª‡úWž™QuªX~è—À{m (…[´Ë&ùˆšÓûïã%Í(µ× L.^šöK0~‰/¨”X Œü#aLpæ!š8‡1%p£ P­ ÆÇbúíJ´ž-rþÛFE€ù/6¹,çÔ‚Ôœý¥ÀØ%v/VØsІ3²ßFC8ËÙîºuûryyY]}}î¦YدÝpÓÆö섊ɠ¡NⳜٮµbŒö`‰RÈÒ¦Kzè-éB׆#Þ5/ÊNò헱ݣ±‰uÄôGÖ9tN^«Ã¬í-²,ÎÛ¨­˜£•˜ ÅÛ¤´^ï!‹IžûŠðœˆ›'¯ÅäK>äøyYðúÀàð AàXŨHŒÎž%²áêÄìOÕEÖ³p¤½¢Œ½ïwÞ¯Ó×Þ@ùYùŠvL Šã”|3ÿðç!7‰cÖ‰fpÕÈä+&†!B…‘@ºJ±2+8»ày>Ççè\4n$`X¿øÖû™É‘ 4ï6M}·=nûH ' træÛÄ‘|€w ÐP•AMnÔ8qÿÿeœDCÓ‚ ïÆ£ñ³¿ ßÖRX¾÷M¼,iê§®IÄöS×ÞÕwÍ®96Û~ÇvÂÀÈèD¢e|‚rršhÀ¶Ç†8§U.?P1à6\2aÜÈïhÅáÒU.Á‚Õ| M?Ñ…)¥>Dõ”é ¡ÔÊŽñõ4#ŒÓSt™2:!M%À¬±D˜’À-‘d%–t Õ§äì”ãIc+i4õq|µÒú8|`ÎsÅšè^äwp×ü”Ô!ÄêŠ;EǬ èëL±@ú¾¿¹ø;üý~½¸endstream endobj 659 0 obj << /Filter /FlateDecode /Length 2207 >> stream xœµYKoÜF¾Ïi÷¼—/Û³öpûý6Ao’ÍÂFbc€¬=P3#‰Ù™á˜¤$û’ßžêÙMR~  XÙU]õÕëëÖ»%.ÈÛáçö¸À˛Żqo—áÇö¸üv³øçÉáMa°!ËÍõ‹¥&K%Ta˜XnŽ Äéjó+,Ö2[ÌL ÍnñýôÓ÷«5c´0Z ë.°`Š`ƒêƾg…1èM}å>®¨AwîY®5j»AøÕ]"}èªû•à ­*›ªìö^ =?%*ÊǶjWÿÛüךªSS×ÑÖ57'‚z“©ºÛê´¾iê»s»Z *`C/ê{»Ñi»·ïìÖ`SÙ5Õû §¡Š-Ai!`c¯ëæp·­[ BYTÚ»Cuc‰# jÛó“_g )ˆfÀ¢ †pЉFL‚3îWp¶`JF«Õ*ƒp½\lþñvØÜ/Õ‰°óH3øRÀ*¾ÒˆbN J¸è:÷¼JgþšJ·vغ×7úŒ ¦;}TØôê^V§}Ùo±Ð÷×Õ¶ÚŸºÖ£,Elƒ‡JïÞ()¼Ü©nŽå!F#¨ E4f$àjƒ#5D‰á†w3i$•jÆÊ[¿½Ý«­ÕÝÇ/– 'Z©RðFdZ©TJ<$VU}¿o ù)6Æ['Ö\³¨Ú µÍqŠ5å:âE­.­8Ö’a3‚°<µ]éüû‚R[Edð&æª7Ê¡ITA4%+,,B‰ƒ·€y!µì!´VSHÍ4S¡$)YMŠBQiÄZ(¯øÍפÍaWçf¿«¶]t\¡­‡áã¥[z¹šÖAªn[ÂÂ'——§ççsÙ@¢ ¶î›¦nlh2ïOžÅ•A«8í`¿f[ß_\\Ï¿{s™ú ˜³zÆ/WÁœq+ŠÎzûƦ°Ä”h†ØÆþ3R¥yßöJûÚúÊ’¯0\¡îÖµH®)ÔÈÞ¿ÇB¢òÊ>C‹WÕ+û8ܯ¨¶.s¿ž9µVƒaXhô¾<žÓ{ðÂ\öÛ€ê]²¸Ú³˜F§t@tN j϶¶Áj,⦚h ù™þR¥³åCÐh8z¸M·Ú:—¨Qè6nJÐ1ÓÚ¥5¬ë µ&»ÔáÉsŠ´Ê ª3DÒÙÕU©›7*¢ò­û ˜±ÞcÝRŒ¾9¬ $' GiC&ÝpL÷˼çÐÎ$U3ýìèÆÔ?¦®ÈÚ4kêlïì*b…’Īw¢2 Ír'J°—Û±¤¡¹DXÍ^‘t»>AÒ½ç:Ë»,ê×)c¸KØÈ¡‹Zåç'г\ûË«ÿ^û×ÁøG÷o³°4UÀÐfj¶®‡9)U-c©ª¾V(dr—«f¢£[ ý²Ò–R)ÝC3Î]‡$6²½Íq8ù2b°I–ÞB~ kÉi«±¯¡³,øXÙi(;! ¯lj0_ÞöšÖXÒ´ÝW»$ “z³Âzš%=sšX^D™çµ`|w[ï<ÿÍ›.S7ÒDþ›X6etÚÖe1j¢e€Yp"dÚ~<ëB)g~´Ø»ª>屜øè8¦>ƒñ ©3ç&·s‡D/mröXÃ÷.¹ŒÍ¢&‹yžŒ3Ó"ƒ~ Ó§ TŽ˜Þ8‘<ݵrðppµå*Ñä=¸£DŸì>óÊÃažŠxÂÍæHƒíK¹GÍ~ Üôi`¥O-¬Á ]Ù%J¾(þ®*¯öݾ}6pæo=/îWôäº-Ÿô´bÄìN¢ ÕáQ “–̇N0-Ø*»Ãw›Åë…?IŠeó¥'H{࢜-Eì‘oÑJß³ ÿÏBÖÆ#"Ca†y£vÁ x•¥øË2LxAQZ6‡r”ùÁ/µŸJ\ÿO퇡eëãáB%/$!™^gÛDó«„V’#ÝW22 ‰ŠñþÀ~½_±„C&Ae[]FƒTØH1ÔÖé‡;×Zà£t|±L¿ÝÔ œ§³éI î÷]ä3æ+Ìt†þ0Â8)†s<‘…’¡]lÆsaÉ,5²5•3P#¿(k ÙtZgŸêžÒšÅÔ'u¹ÝP¨®¹{´A§m¼Éù×`G^}mŸDn¦³Áù8®ÉfN\¥F3ÿP¶íü–ÔP¿%“_64©qhƾ6;O l§©ÙµI·=˜Ò¦”Ù#§ŽPb:ÍžSXÍG ÷þÈ`ù‡L¼‹6 ê8Ç„ Z€Z¦¤gx¤•‚7J´ü–­ †û…V°U¡wéª2…N§pÊòBœäQ“ÜcÖì k´‚׸Ç6,ñwyî£u:Z‡gÏ!úÞ¿§å)0áâ…ãôl‰õvîænx‚ã>Ô³ŽÛ»-ùˆã>jƒãAMî8(°?KªÞq«ÎÁþÙWÄ9=n%ð¦Gšº9NÂoŹ=­ÙÍ9øCÐO¦}… wHø('5.QB‡x½+_Ô÷rNSȤGÌíÝàαHxRy¦wiÜ›S@fÌ\ÖK3jurSòë”0iÅaÖLªÕRVì{¸c0lDFmž½ R¸PTe0Íž>8ð“ÎÂ/_±,y_;zHÍÌÛ»ÇømŒÐg\åîW±ëê"Îíùñ»1ô¯½½UefÔp'ø[$ÉtzþtxìïŒg¾õù;¿ORöिuíoÞ~nªx{÷sS_•WÕ¡êª}òÇ›ñ2ñ÷‡Ý={ÍÚ_Ô†+Àá¢ÖÞì¢6&/T˜íL™á²1×T‰ü¼Ð’ö·Ò?ôY+Oã;ùÉ->ýWÇn_/~Œ tendstream endobj 660 0 obj << /Filter /FlateDecode /Length 6329 >> stream xœÅ\K“ÜFr¾ód_öäpÌãà`QOTÙ'­v¥µƒÒj%Ê:P>€j©›M5š/ÿzç£ ]Y@÷ 9ãØàÓ@½++óË/³ðûEת‹ÿ¥ÿ_lu7~¤èéEúïÅöâOOýñûàáI»¨.žþòˆ«¨ ­bk:sÑ»¾Æ]<Ý>zÖü÷eÐm Æ4ÃæååU×v.¨àCóúR‡¶óªoãëË+c ˜7ÍÓË`Ú®3®Ù]^a eûæúë™^u±ÙíwT³S¦y÷8UŒ±ùŽžšhÑÍAüÚcyåmóÕ¸ùßòÕv7UEÿçéÁ\½-çj:ÝúØÃ|Ÿ^?jÌåÓ_]Y«.®Œkƒ÷øôY³Í õftxE£·AÃ(ó¤´“š`\ôUóKYÇÛ),ßìwÏ‹7oËʇ\Ê7oŠç{X×ã¯å䯲ܰAŽYj·}o`3‡í(«w²‡•÷°“¹!× ¯E§qÊ£ Íϰ[øÖEBóå?_æùÃÐNzSNº\=Q忨Í÷$ªÓÍßþô]QäË/¨L³ãµ¦Öq³ÿòôÑßñ1pûÓâ/E"‹¿õ]T¼èµ¹Ž,þ-Çüü¸šRÔIÖz#d­oµÓ†eíYó·ëãênŠfÛËbðŸ:ê .ú.´NãxacP¢ï·ÁµÚj_6«»Î j‹ªëQS->k~¾¤³Â\3½)ŽÆ«¥œFK çáEùÅÞ85ð:HÙÖÄXoa{yeÙï´Go¡jÝtT6û|Òš¡T.åß›d}STR‰€“ê144Ö=Qó~ÛÒÀK?b»bP- a üáÈ›èàÈ«†¼ üŒšÐZ¨m£oQ” |?È.Þ³ûb·ÿª4Ã>×íLô¤¹ö©˜ªOI‘i~/W|(Qî–ìEªï+< m¿·b ÉZ{¡SO±?ÐitWzCån?Tñr=è Z«“LžŸëïäù±¸X@ú؉‹caIó²ºëƒ+ÛÖÿó»Ò~í2ĉÃ0;pFéhÝC (;à ]xß·¡OSCû®HÝ,¼;Õ5C#’Ö»Q e¨èö!@”†ksß]:ØÂN£TŽžšHŒ<Óg:ê!Уm=îh9íŸÆM>«lx·Óªv¶ Ôzß „hXWÔs=¨¶3Škãþéû¨Æüxð¹Šy4ÿqn•nu-Rà{ôò lv:@>Ð%6 Ûî2¾wIZ––6IújcÖÖI×*T‰ó`ýTw/WMƒ Ö ÐŸuœÑ*ö£Úãpدš]‰.›Q:n™å1B¬ò<\C8züB ΂¿’´ œˆÝfb™ºÒ ‡ŠÄ`ÒÉî<­Ìb†õxiŽÖŒ\v1¹kÖÔ †?a¾Î, >ïzý)†‡šŠyBri†Ãp,°ªèi*°Sê¼±Ô¾©Ø‰Í&5ÞIY¼FÔ"Láä½»ÌÔ—lW®àš9O†‹ç£Ó:Â’ÚØœ4µïç)ÊŨOÖRó©xòèé¿!ŸÆ3GµÙ”ò oÐÿP¹"u¤H’Ó¾´Õ É6‚/Ê|¶Bš¤Â~ŒZÂÍ÷¾œÈ:élú«Ô‰S‹í)Ô4í›wT=€âýq[H¤¾Ñ–J:¢Ãþ %ñ¦ÎÃR6°Loeå¤Ó ˆîoÃÍKÔuV«ÕüzÉHz–<Èn›‚u§éí©ù¥ÇЧ1ùòÈcB¤èšÝsö¦gš¨0>ˆxÐìÌsu(àõ ¢7 +®}=-if]-ž€wãÍ6• šÎ™EõÏéšÕ^œ#€µ;(uR ’)B‹÷±7&™ÒïÑ,=.p¥²­Þ%NÓŸ¨ˆ• yQb€Cg„“™è¥zRklÒ\”¤"4Ù¶æ}¹œ©˜¸#Uõn†+üµÏ–¢ÐQ‘“Ó(­§Èa[§)¯½þÍó˜Í‘Џâ}EÁ¼(¥-¯]<ªSzþaœÕôŽí ë¥l:Û-HšZ0@í1Ö38–ØŒ…ƒZƒdû8:Ã!j­ì¿ êNÑ .~B§^™™.·¹Ój·6Ã4-ôª£32¬‚J)­k7jÏ5?~ó£w¤¢ä‹®Z>Áã.%J•¼>缉!HÜVÖj±åÊ|n¸ƒìÀ&wð<ŽàUÒ ßhÄ’/®ThaiKßêAqÄØP/:âô·Y:â³”® F ­5}¼EMÁ¼t†Úî †?ÉîÌÞìž(ážøÖtýLa Ž$Ñ£l½Äþ—¯†Ij‰5¡uè‹wó8Ïqgõ°0ÌÔ¹ùLî÷RíÑ$#Á®U¯ ä$v>×&MgÈf>Œ?èÀáéì… xˆ­pxîÛEá@'0¢Oïã“[^Wc!_š§×áøZ¯’€fãã‹;0b¬Þ6 âq3PpÖF “ÛÔd y³0Ij ¨¿Û¢:çHï—;qÊ$'p2ºU*Öi|7ð¶Ã¤º®Õþìa¢Ðp7Gp¾Øó ÑëÆ}"­ö2MÆÅæ[Afãèl°3Ówd~n¾üþ‹o‰NÆ'è䊭oméq„e>Ń)q>¶!§&¼:Þüûÿˆ¶ß_ÁîâYlÞìw¿¾|qhwû›{É2ú°Õ¢ÇR·Ÿ8éUd8-d·„¯•„EGÝIÀðõ·?f×¹ùú$(¾6‡4ÙÓ*)³Òáy^»¼ä݃Ïód¬F- É°‰Á°>{ÞìoÕ¾·ÑH¯V§RðØ´ÐF;FÀ«•+ç%GhKÚ‰žœ>¨ 2z“T3Gd€hÁ4cmKúŸþ)þ¥Ôr› kç˜öý„îŽÕtòÿóuª¡—À§`O{¼еøáT¡eTPؘûF*l«ƒ¿p?´ª¸gZðjËöžåu™Wž×å̚ƛ×\,zwk‚L‚Z#z¡ÓÚ–Év AÇ)⌉´;k´¡Œ¦9ȃ¹O‡]ƒ÷pØ¿] )ÓX"ƒ•lD·…þŽvEðS™[x¥UŒN ‹é–e› ÒïÜËÕ=Å×,6nøšÅÐ1öœmX§ž¨&ZŠ.•sìÄNäûS-ÛWØ ë]µâœÞ'Ïc‹¥w¿>µ”ÏS«ýά¸‹éG¹°‡‚wгdà¡"YÓU¿ÅCR“Ph×Å+Ð6=eZéæ‹)ü,Æ ðO¤X·sŹ’.ÅçýR¡ísmGŸ~é¹j•¼,ìEž½#šŒ† ='Â-óÐÀJUÇÿ0nËs²ŸÅò€ŽÒa§4<F™³™ ¢ky»ÙGÏ*É(ŒÒ¡JXÌå`+²1’© o˜½²DnmÛxÍFæeN·=8œ·=ÙsÛ ½j{åÊöž ¡dÂãf<ÌŠ‚—dJ¶c…$˶Vc ¿à·lØQæˆÅŸÈ”>ç\ÈØ|<hÁÉö•Á^²½Ô1ˆ„ôû§‰#+\s3¾«Î»ë˜ë+"½ מãeþè^FX~I¥lŸÇ3[¦m…ŽÞɪïSÕĶr3K‡Ÿ’!"‚ƒI£šéT«{°àZc{’X{ŸÄ¥à™*Û{vµTýlÊê-QTKŸWܜӗ¤`ƒ¥Ä]*œâÊöeæÆnS§ËÀff9µéhEÎc££Ú÷œ½€ÐAØ>é0—ã>$ÕÐtI?òcs㙸˂×â~¨3X@`½fèT³r4èþ³ä8qR÷ek[ã@ù‚/ÙÇÀ¢Üªû³ khññä:y׆®¯zÂ`Ðù²Åó4Û=ýDU㿳`8TˆÕø÷G¡:©A®¥í*!ÊJn1Ûöø€-Cx䬡aIc#AÎxiãÙ¶`8Î ãënË_ALšÔŒ6ži6I™Àñ­’‘‹N–Iô óTÕ©pW'F}ö ÊYy€+ØNNÄíq:õýŠbšŸ›¶ñ‰TÜ ˆa<£"bÒ4mè%\¨21/i,µùȇýõ½£+=) 1;Õĺ¥2œ:æjÙ”rvgºÕÀ´£<ÿã˜óÚ-“¼ó(¯œm&— ãÄå¡Ô(¢àÃ&ñR"Ç’çn»rh½ÇÌ—Çóž»bÇ¡4£LT<—˜€Ã;1.ì+5½­E¡g²Í*FáR¢d°Å.TÉŒTW)yHú¦GïÏSbDr¨1F©€Ø`öO,µMîÅê5b`M£¬\pš)nÊqÐ g¢oÅÅI Û~$C·:ÐÂÝ'ÜuØš-š{Ö¼?†"KÁáŒOpñ¼4<¥§½OͼHJ3, ‹d4MJ¢NF+‹½Ìd·bÞ ›ZæBQ× I|[¸ãK.Úẗ‘÷“b5ú“µ-üñÐ!YíÍ›ýô%bnÔ³¯ðG~‡××¹±ƒƒiíß¾8¼¥ñ¥¢4g ƒ£.}™ª©tmÑöüqòëÞ_Œ[xˤâür-y5ÏK›Öj•æÅl8æÊÌŒà¯\åÒ–´ÈvŽBÝ ,¨ lä*3¥÷*ÈÄ8zF¦b!?¦±N]-5û»I èFíîJœM¹+‚0Ã$¾Î '3䤩äØò±ö:¸ìæP˜Æð­ÖèÊEb#ʯ;3Û¥z·8Ån…YÀçh §C¾­ÖcûÙ[~%–‰6™ÇêT¶‰û%*û:挥šÛ|ëLFjšFM”â³sé{©çÜœm^•Å=°Ng$]/tЪ¹K Ù¥P·^ÉT‘ˆyc^šÄÇ3º»Ì<2"D0+00ñÏ«Ùú§óÍq¾Ž4Íô;ßñâdÁ“¤mßW¹”S꤫ø+vKvû)·¸L£Ö]E_²‚ÔJ³>Œ¤eI•KºÅŒúHd[5ßB,Æ%A#ÞF.©gnÇT™jóØ‘Î5 >\NÚUqݾÚíÄUy%ÌÒpäÑ 7ao–¨ñüÍt$$·bVI÷å¥xÝWL"TjÑåÛÔœC‹è0MK2à„ãš&e=÷œË[ÅP)Å—{‹YO íÈÓJÙר¹ZÉzí1YÕ¦ÛÃáéU¶v¤W¼=Í.$ÖÀ9é)NÇ=«E<‘ëK»iíêPUöQõq)- °Ã«c…ÓYÝãúU®Ê.,²],‘¸$Š7lXSç]XSçTí[:‹ç­w½gÏûm]@‘¾ãÍpXD¬ §§,\9¾’Ùø¢®Ô¢¹'Õ/Cj†ãt‹ôÅê&Ýæ¸˜'µEoˆ†]h‹¹ô­1«”½oäÓM–«¥š%8¦,Ôðª¼}_³’UµJžú“ö¥ÄÔ {fi‚ƒõ~¤¸²±‚·HhàXH¦“ãÍ9ŸAjÆ/-Ö™•õ‡Iôâ?æUA¡•“°äÌYæ<;”šÊM¦£ÎiŠRg,Ë8ÂŒ“Djtô`K*Wì¼´Za¾$a5«\öÀi.öxNš=p”gŠ­¤ˆ´`úÏ>µ©T¥Ó—Ü•ëù*( Ê­„›)Wqó„³yäí¢µq·r“ÜI\?¯ ƒEÁËr’7˜gÖÀqö–,2ÜÑ;xZ6ªòÐ2göâ#ëh‹>ÊxáæºŠÈ_®YØ|Ž6reûð•wUdf¨Xð2{‘ñÚéÖä,ÆæœèØ;áˆv}8^&ü°šZ¬Á°ù9ïv±¥8í%#ÀÓ±ç¦S A‚DœbÊß%!Q`\ÂYH -è–ÊÜ’­®e¾ /WAõ¦Õ>eÉ7?¬M¥@‡©ÁÎP[¡ŽZzÃû¶ìDÛâÏ2•\^fXç=àt ÄSõ‡¢uóÍ“¿0 Æ·ý…§ÞnäF‰Í=sD‘š4fq]ž[Áñ¥ùÆ WætßçâØí!§ó˜Í’¸£aÙ•{J©ŸP³+˜)§ ­D-ܬ$ ­±uÄæú5­ÉÄyψ^‚öÒû—¼ÍöqÞO_9Àꡦ&NÂ9çÃ<€“r“úT§ùÍ—N?Ô6—î8³ÛÿÃRå¬Dñæ%[½ÙME^›:ÓÜï%o7£ Ð/èŽ&X>X‹¥ÐHÞò9ÊX³±ëJý¤´uË^mf#¾!¨…צYl¼I¨y“ØÃ®vÕrâ"~y„èùm˜û¬ÏE#p'.ãóí1îÖDÐVû¢r•-²­cµUNFŽk˜¦ÔÜC66Å1-vmA¾Pj} ò!á>”ÆE¦þæ‡"º¹NõlæDý"n©¨v‡¹Š»<#?r”{€Us 48€[úà µäYºês“êt¼aÛæV[Í’Ce1£7]dý˜Û²§uß¿/^/öÑYI ~ ïå†SƒÊöoVöÿtîìý3´‡7ŽÁj|¤Kו|-¾@ º*í 3¯R]Œ«ßæ ò¯«“£@ÐXÕmŒg˜»No[á“……ý™Ä¸;E®0¦nézçs&W¸ñõ×:"©cáÑ%] 2[;bWlò,1ذ7Ã~Þï2·uí~€æÄ+b³4f â¡Ð þˆìBR¡åý Ÿ7@3|v—4¦ÏÆÖÝ1_púÉÛü¾«é›»F„4k*¾Fm:ûù¹{´T5wKòÞ‘–ÍWÝóRŵä½2úzy®á'âðÊ+ßJ¢O+ÛùVBˆ•OÄQýSŸˆË6áÜ'âÎ|ÄQiÇ~Ü>ùå I¬äb¦ç˜G›XzúÑÕéÌp7ôéÑÈÆk8ñ±GüÕ|µý(‡®ãï!oÑÀë—Åõ@«7—Ž‚ž|Òàt­å«(åZålâÐZþ8¦äH† ¿2í-ä”nLwvíwEð÷ý¿•Àûô…ð5–œl@8Ïì–§O¬0¥rM£l^ÀYØ{…Ò7OÐ-± º‡›=¯*~$h»ºX½jíñ{1ätáˆð«ÍòÄgÚé}4Иÿ¯ÿ«ñædúÂC$n‡Vã+¥[ãÜýﮂ ô*”í=#£ÂTê"jO»îUs¼'l0[#-‹Öâdjfúø€¦‘È[B鬅Hº¸ˆcJq•Ñ€+uÎßÁY~ìŒÚ¶údvÜIµ]ѪàøÙùÈA 8yX“Ñ+Ó0i.ùªc)¦ø6î;ª¤!ƒzsÒºW0âEš¢_#V2qꫦÔw(R¿Ìd¹Éd$˹Î}9î³j>!ôÝã¿qendstream endobj 661 0 obj << /Filter /FlateDecode /Length 3741 >> stream xœ­ZKÜÆ¾ï)¹ø<°æ†ý&$€#Û@ †E¢ÀòÚ™•hÍìÈ$w¥ýùÙ©ªî&»øXí&Úiö£ºž_Uõo›"›ÿ…ÿ¯NÅæÍÅo‚F7á¿«Óæ¯—üÉjÉ«¢›Ëë ¿DlJ±qÆå•2›ËÓEVn/…¹¥es•Ê…é—û‹Ÿ³~øn»SJæUi²ëm‘F9QTÙ¹Åq•WUöÓù5}ÚÉ*»¥¿M¥Ë2ëúqñ‹Ûdõ±oî¶FÃj粺mêþà·+ŒË¾¾I¶¨÷]Óm¹ü;P* —’º²È¥t›2yi-’œýÛ_j T2ÞêÛ‰’’ÎöÔëRÂ]Ž@þªTa€þíNKä×7ɬ}7Uvb ú·)‹¶;Y慌ô©Ë‹BgÒéÍÕV‚ldå²·~ È <„ùFd7éî}ÜGdÍÍOÒ¥Êú@O)J[²û„«lÒ>œf`õ9Þ¸Ì^ù0jE)Ð2ëØÊÉY~©²°”È6»ÇAd‚༉[Z™¥z¶·ÒZé²ö³&gù3XV:Tº÷ɪ•É'¤ÍjÆT½Ñ•Ü\~qù‡Ÿ';m£ˆØuÇ m÷Y××mÔS¸ìC7ñº“·ª‚T–Ã_Ýô÷ÉØŠâ}ÜIÆVU×Üæ|Å™ÈU¯—\yi–ÆYËŒï?@ÏJ‡ºèXp]\U"öᎶ*n#¯ôúÒ«U5꺺½dIÒHïB\vªƒ¢ƒ2d=þðÓ´âûO©vÔ}ó:QýæØôDwé*PÏT¨r”•¡s¥áä¾´¸Ïf§5(‘ð2Pùvg ØQdß~¤s5X*({}zþC9tlhèäa½Îéôïæ|OÖ\EŒÊ•´ "*V—þì¿¡•i˜¶ÈDßtáh]Çô€±¦ÇóüDªLÜ,´%{Ô4J~á—P̵´+-U®©`ñ¨Â‘õïPëJgÄ0n«ìu*©.’½žàåw³v]-Ù äÜpÍ /uv¾ŽLPs¿„‘)m}b[ÆwÏí»È,1ñ{8XHŒAd\Ñ?ÖLMS¿…Ϊ›˜¿"è¡Vx²É¾kZ ¶²Rä»ñ~ô70²FqÊJ…Lâ4¨Ë,e@í"ØîŸ :0LudŽ´1¨Ùñ\ïÃ/ˆÚS6Ò «˜£®}ˆÓðç»úMpíVtéMÀ‰Ô$œo¤Ž®¯m¹‘{çCnhÉ€`1„RW?jéh ç²p¢[õ4HùÛ¹È\E̽!·RÉŒ\¬*f±p\íh`Sª´ §Â*ºîNBÄ+¥Øì(¾•Á?xùˆ‡ˆVh/ÄÖKmÅ+ïý´ ¦õÑÖQÇIѼ¾œ‰¹$;¾N|Y *¼µ{@åœ7YYòég”1¶°À2C€qÙ1åòžæø‡qNïg!Ü “àT²7ÚÚ§ŒŒ–ƒÂîYŒ¨ÃÕ+31º~8Q0g•ÒÚ‡ÅàYV£hjG÷1ppÐ>d‘l u cF¼ßFTc"¦a‘àL_¢~šeµwH&L‰jVRÑå ÂÁÂ,B´\öa¥™à»öœ®yÃ`ñ„sDj1w t8˜Ë:ŽGo÷%ú²&åËÚéñ.6ëòªì;JªÖ cªz4izËw饅÷ºÄ ].¯v#Ìyëihh£< þÆýEˆÌ –:a/€u×¥œ>ÍäFÐIpå©#Ð-Ô Zúü¬šù)Äü¼Ÿ¢IÖò˜Òˆp³—3 ‚|FÞÊ'—SoïP£TBÖ˜. ¢òÇ &wjàæOxÒªàN_|1ò]ìâŒáïïÉhéW…Èü,2•ÿô)ûÒƒþ E@´• s òïÂ<1 rV™‡÷"ׯˆß×W^R®ZUßD¢Ë’ˆ~\{PAÈôÎã·=¹Ìx×î€nÒÿòY¤ŸòöL€(%àN.„+Ô]$f“·ÝqÜÉ›·çÛžsw æð‘ w7÷ŒOæ±yÝBH~•}N,ÿüÕv‘X: ïsö‡cswhïW§…ïùÇ‘ì?íæß~&¾’¿€]ˆ¢È¾Ó×ïãÊó xþåë¿×¼ÇTõšß¾~É]åÌñ$sra)U@©SæÿGé ¸1k|q&kÑ{Hïa­˜û­C˜žçä!„ÙyÅ ‹à„†ŠSX~ßt}Ã1ß1œUÙŒ£ÿGVy”•ب„CGê˜å;£ÓÚ‡ó ²Ð/¯ÌÄO‘§¡ÄŠl‘=6aOä,™sÁ$ Žá³|±æYÕBð‰…1é ü`)©÷˜Áã:Ði‚êÍ,æ$å‹~iIí*N,T=Q–ßz±£e¿R0z¦Yú,*'Œ¥YpŒ6á8m>‘Á‹;ÙŠÒ¿Êúô/LꢇO²A0}‹jç×:@QÇHanÇ8N"=¯Áí.:HïÒ@gIKb ;57Íéö„Wr=®¶3rHúÎw¤~4 ‰/H„ôaè-¬­o–݈7·c8]Ö â DG)LXÛ0.ì¼æ€œ…dyš“PèTÊÀ‰ÓÐ9ÉR­×RZ]îªáf©ÊhŠ\ 7TY2wF‰Ý\V…O3þû$¿,±ŒYI>*j»íØÓOuÇiIT‹«cíTòQ²Äi« EÉñ,'Äc¦Üö+À%½z $Ž4}{yñã…oܘMûÔ†Böh³Që»6«CåÑm·t~(Üõ¨AVx/Þð²µ2ûž×ÞÏCùç>ÜR.nb›\ë©÷1¢„³lzðï ;­}ÙX‚»Ü–Ê«b†‚ %ñÆ.©žaUÍœqŽs6y2a @¿D؉¿ %1Mº¸‚ÇuÆl0(f¥š$p÷~5:ð ‘`½Tu CJòî´D‰Lš0Yó‚0´¾‡VÆ8´"\ ûä­ãÖ*ò¥Ê$žpäµ&Ì‘…#¾Í*?H ØLÝœÂöXÚ‰ãÅÏKx;òÉiðwß§r¥Š¾D¨hª™«‘ˆBvJ_äqÿ·Û´"Îõ}Ü:1C®Â­§½k¦AšÎu ã¸_à £i OÍ*©ºLâl˜¢“tVJ8›r?û°_åpU[ï¼pÇJR¬— е$ UåÎVbÅK±, 8Ec/'ÈbÖTT•ž‡Y4Á <€|¥^í…Ð’CD}ØJ>¾’‚©iÐɺšt0 mŽVpÈáE¾>Ê6ge9•ö¢>ƒ¦VjÔç—r…‰r¬Ÿø¨NÏñ*ݨœ”©K†4ò“•Bº¥áµÚ8ÁñN]…s“*üUêãÎ,ª4 Á$¤0Xè#€Ê—`2­dAeáÕ(ÀÖe¬Yêˆþ^.ºÂý+Š£–7@c_Ô,¨•4/j½`ʳ †Ж'°‰úU¾¾NzzýÔÐÆB>ÔÖ}0· ‚!5X–òÌ{8ŸÀ¢¯Ï‚Q9”\Ê‚ýFJÎÝvÚƒöô,y›0ä¼Ë&;Ä]R-PêRžs·ùEÛ|ÄŒ¡¢Ê»0˜bUõ-æ)VEIÞ‹çßÄÜ£k~€²æâzhi0¶ÌC,UMÄL;•)³¥]羯àäÿÚ^tÚ…ÍMœqöü|÷âjÿ*[ö9iD’Jp§PÑ©•‰WRnòVÅGH…=ñÈüy8媠ŒË­-'^fÒˆH±ÏÑë½ }Àħ«e ®Ç¹ϳ*Á!ÚsI¯“*=×Ic¯NÅt\IPÁhëÜÝÛó‡5`z ÆÈùhe¥û‚²zû5”éÌݘ¥;µþ&Îaóã6y¯ÐnÑ/»¢œ·x©)¹{C=€ƒÛ_×ò†«ůpSr.;]í#a‘;54È©ÍBb›D­$a9F l:ï°-íO—¹<+cNæ:Áïçö¥¥H>Ñ<ëßD}"†q6T¸ ¢v·DÛª‘šÜ8+Ÿª#,i4Æ÷©¦Ù^ ud‚ºXäk÷áêFOºœ«+l,&Þã ‚œü;'T5£!ÑëâŠ5Æq=/œábP4Èκ~\½^䌯e|ßFW9 L¢‚¢"jÇvR ŒÊ€óT5»~\Oòq6•¥ìƒ—xB©˜ð…¡¸8“5H4¿=(¯ñ!BÈè²¼XúW°w ÊÏž.ïÅÅ<4xÈ9I>þF$PÕ'ùìeÅDÌž>¬ŠB·¯Y<Â4žCÜ µ'M ¬ÈëÏoæ)úì…ŒÈäKEb®ëZhŠ®OÉ›kèt|qþVó¸·|LÓÚ¡ðÉuà ëÔ…5à2_e/jÖ)?2ÚØå|¸û÷쉮ðÝ‹O_6(É‚¹Ï%»^ÏŸ¿'ôž.}»€Â#‚(¸ùÆ]_êìH1wôØÚ-Cs\°ÍéÁÔ»~‡ØCáT(^œé¸Pëx–vÄWŒÆÞ¸wó|Ó’üµ¯Æ½Ú®½`P¹„0ýpÓ{­)>üý¤}Û'O(?šì!HtãÐ5&Ú‹O†fÃð`ö``é%Ëe»H“Abx—`ù†",¿XáÐt!×°AÚ‰ÂØÞ_éÿãËu;@m¾Ã=_ÿÕöËi‘4žñqÜíÏ# f'S5þÇ‹ÿxZðendstream endobj 662 0 obj << /Filter /FlateDecode /Length 3638 >> stream xœ­ZÝoÜÆ×З¤Àyè^ác¹ßË´)¤ Ð"[HQØ} tg™ñ¨O’¿¾3³»äîòNŽ#Aâ‘û1ßó›ÙýeQW|Qã_ø¹;«Wg¿œqz»ÿ.w‹oÎÏþòÂxS5uÃçoÎü¾¼©d-VÛª‘zq¾;{Å~Z:Q5NJÖn7ËU]ÕÚqg»^ WÕ†[vè®—+)a˜‘ì|édU×R³~¹Â\Y¶^âEcdWvˆ¶ÝÖÿápŠ-4@.+­±8ÿáìüϯ2õƒÌì:yY± üéÐõ‰6¼I;—š´Rox°èoû»ýÅípxÍ^/ѸK0® c_żµhdŒ¤€öoªF;oÿ0,,“p»Ý΄c`Šì¾C[¤¥´"•Ác &Š¼Ý·»°€n”;âç´È77§CØ´9cV²°òŒÐ.5¦]jÙW5°¦6D3 câŽõo`ᥒ‰)&‰’rðt·Ô†µÝ¶½Àá x„ARF#,jpʍècEÖê$ulR½‡n×’òW²FQJ¶ËbBFP´G¡³ 3`|ç«9êtzŸ†¢n€R YùÍLN¦X7øÁ¯?M›~ =צ¬2Žn{;Ëú]w(#©ÿª.A “ ÏŸ'åd,K…ëÀj·Û‰‚µôBb †'ØÄÓË@Atíãš'HÍ5ÑÀ8Ú´7 y¨Q:Îõ:Úø÷5„ít×öІ $ÛýššÇ8¥a÷)Ý%¥a{&ƒÑÿVÓ‚ Ê¥¥H“!¬Ÿþû•®É¿FýJp®Ù½à‘Jeд`¤ƒèã%.…°þ»AGbd ¹r.XâTɮݥ6ºMÖÊãÛ4eÛ£pjætÿ, ¯MØZ¡;ä[wÃ4(C¤ ü¶;DÖy”yd(¬Ó›“ÇÜ&$Žg/ÓtמL²ÛÕ?Ò\Âút¹> «‘ø8”9÷€jUЏþžàaÀ"DÏá^îï/KצԬÔî¤+ïOfZ6îþq#˜>FRävek3ÑI2Asó$ýÝùÙg‘ëÅþ4Ï“sDâJÕ•uva É8+‰3Èò˜Ïß¼¢V•ùŠ•Ç¢Ö錕´’†¢Û[nBrzñ÷åJv‚R€}ñÅÜ6‹ïãó×·‡Ù% †ø|‚£¼·›ËCø]c¾ÙÄ9à=77ûþfß‘Ýù Vo‰hgã¸ËË~¿î®¯–GVIǯ0ßõÓûlWØób»Ù%4v¿ÆÏåVÓŒ~Æx qÐím»™†f;¼çÜöoû8FGÎ6S"8E»ORq³‹Í4ÊËs³®N­qì5l<÷·Õô!A‘ëͶ»Ûì?TïO>¨u\í>§ÖÊpœÂ¾+ørù§³÷øe`¿—ëÍkö~Zí«(ÁÞ?›^_öׇ}¿üÕôØ_ühÄ5W iÏ7‡·ýúË(Èš‰á*˜ š‰H/‘Éd¿CcÜów|þ¡¿$øö¥¯”Öð¡‘¢O]W`sk¤ ’$Ô”ën8´×—š¢Á M£ ŒEª0C[¤˜ ø§j½ô¨ÒV܉ÅÊÓÜö“ˆ=´àv@‚'[ÛJXéIÐ9ÍÂæ4¯Ò #ÍqŠ5±ÙT X¡nHRYxÑóáqñ•àu=ŽÕ¨ €¨çëXë‹ ]©à?Æ>€aR@´®`/O‚ì¥=!/(†[å,ÊE1´!AS’1g»¥$ü uåöÐÝ-À"‰³6D¨qZü¯ÖÉjuœ&êV#yÒÁ©ã‘>Xã¹O2V6¢Âæ;êŽ& È*¥*É-‘À.cñ`QµP‡]¯#¥l¢ŒÆ6Ç{%‚C‘bš¨Œó}XÞ:+i§:À£‡€ô âƒw8Å>ÇF–_FÇ"9í²'‚ù¬M[ŽçS¾¡-!˜ »kHÜÔo›µ‹”§”ö}Æ#]:oÁÏé,Ÿž÷†5ö’Ù.ë6w»±Sœ u—Ô…},c×-é+#6àh†öUõ_²>Î>膸«Á.»F dÒfÜÔ¡‹5„gT¡7?AÒƒ¨$„$QWryß‹>ë.ÎÚ4“±ÜŽø>*€p º4ǶI“Ò¡ ![Ò·<2HÔ†µ9M“Pü-zFËzÿwîBõ¥ 'ޏk{›ir::>F…€‘ÝC‘ØŒ‡’ÄrÞèi'ê†~—L8™à†n¿òÆ&  CÖ‹"ö"±1:…mj:±?Þf™®&y³Ù#“v̬'ØÔùñvQS­¤ÃÔ{ü‚’_e×·C Οù&>vè§á¸úd;‰Viô¼èšõ&„i4ÿL#jÇB©Yw T:¯Vè"5biŸ_ŠšôÜ%ú­Á2UŒäãÈtv›_èŨR—÷ssÝe—uË„‘œ•Q5•‰ß/^%×K > stream xœµ½M“]9r%¸ç~V£1‹M›=¶‰1ßÀìZšQ·u«­õ‘f=fªYD1«²Bb$«H–Rú÷?ç8.î 2«JšÉ\0Ü®Ãñåpw8¿{8ÃÃaÿëß÷/oއÞüîMöAÿ¼yø‹ïÞüïWóÄ<Žc„‡ï~ý†Ÿ„‡Zi#•‡ï^ÞÜb~ûÝ?ν^ §ñx„Ž^n¿~{<%µpŒÛÇO†OcÜþîã/ñCÈ-ŽÛïñw¹÷Ûç/çÇÿý÷Û×¾<ÿóÛ’ç×­Ýž>=?}ùÉ¥ÝþÓ‰§ÿúùùóÛÿç»ÿjíŠ!<ŽR¢±úÎy}—Êc¯•çÇøøö]9&‰#ÞþæÓóïŸûôa’oV_¹½ÿøòÛ …ùûh·?þêÇ·B½»­Ì¿ëíéÇYóÛw“JGáö™mœ-ˆ·ç g—ÇcMÇüó¯ß|÷ÿáö7({œ5ùÙ ÷¨¡Œt”~{þíÖCÆqF×õk)p›õBžÜoÄ~µûñmìGÉEBy6j+®ž?În?òÍÿó›'}3»ë§çï7¶TÇÆ:ÈyÜG÷³JõÐk¿}¯B¹ß¾\~xÿÍÈéö›íã·¿Ÿ÷ûkÝà5W3‘̶ÛÎêóË¥¶îççÙqühŽæ§;vÏr{í„kíöå$PfOΖÔÙÀ‘/-y¾Ðýg´¶§|ûVu6“Bz,yDŸ9¿Ä(æn³«Óhh䟽ê-è¥ñ{sз½ÙÀÚŸÇÑæ„žlL†&#·—9Ý&0Ž8GüÃe"}òŠ}Nå¹PöŽy±†Íe˜&·ï¬J¿kã'-ßXÇEÔäðXŽAQsû¥Ñu!Ç2FŒ.>þZÌÄ9ù.M¼Ô÷$ž|íð‡äõ˜ƒþËouÖÆv›+F«b)ìÕù͵ö4¬k¦<ùôüÕއÿz²óñ—¯×‰æÔ§Æ,ê%þì yÕ1õÇ\¼ûõnìó£âÝ8Eo5éX!zwŽ>\8¢Ø¼Ç4¦˜ÅäìD\–Ä6eÇ\ã)–¹šÆZMœ=_ž.òîü€n/±MØçSò ã”Ô³ÔÇKº¥Ù?ÇÜ0¾Íÿó‡ç/Xg#&,£Ú‡¨Î¿K}=r´xY>O_žæ&’s´Érûî7œøéNÌ9ý" O©ø—ÿéÄ?VkÆuÍ|þý나2úùåÕâ5 =N®Ô$´uÞŸžö]ã7XÓ5ÚõÞVô»l3±‘4‰rv¿ÝÆð:pŸ¿²›”ÙK_¸>ÞÅ9ßÇìëYü}öì¯ù ¯ûžµÚúì„r¾=©üääÃGŽa®·ŸPñ‘ʽDáw¢È?µÛ^ËÏ—=÷",.¤Ï}ò»»ùcŒu\%͇§ÏŸŸßjœR Ü.c¶ÿýéãwÅÔ« &{ööå£wÎÐTcq›j(2K_›þôî­o'Å7M:é!—â6MmMMÞ^-º2—G.¶èL3ššÐ¹è´¨ï»»åûéã>åø O]ôõz4F² ¸Íß§ 2•gÏŸÞ“¥mÜž/}%’¡Ü‰ˆ}"Ü1¾¨ív)ô½Z‘©9ÕkŸ}¾›lk‰]—Õ Kò;µ¬/Ÿžÿ¢¤b…Ü‹’MÀ]¦ Õ]¯cµ¦½ê€õÉ×ÅýE|øb½š¸ë¼<±+:5Íd² C¡›ëº´Þå:Nÿòåºk¼\ ‹Ôí~­ì‚ÙlAh>­¬z¦ŽoBì}EFX™Z®²óÚÔoVøjTÑ®À‰eõÍmç+šû´ow4Y¼`/NT_~ý­ýélÌÜÆÑÜ),wþ¿"ÌRå”ÿY¥Rf„¯*®¨±aŸÅ߯—Ì«óýn"B ªýÀÎðíÙj<å_©QÏŸ/¦ë×t‰ÅoÅ÷rõf—~0R¡]õéÓ§UÁoT&úÜ.8ÍL$ß+YÂÅæ¿ƒ±lÆB ØÔ2Ö{½jn¿¼v·•H’víVÓ‚]*Ù†&í©.A…×ÝgYææì˜ZäýÖ^¦­qr[¿ÁíϨ‡ØDÃÔÚî§Ý×&³ô$Iާ¥Ÿa…g(&WIðÁ\:Ò‰>8‹¦õËe¡³¼Ò5ŒÔÒ—eýüÍÅûÊaR¸òËaRËíã7ÆÍaòYN ýùê°ù“¦Öû•HsÙ¡ôWö"kK¹Î‘ Ã>~y¤’VÛäÚ·ìï^uʧ"òë ýñƒtdó'üôÊ^H\°œo1SP?I‡Ê9‡vûðî/ÌI—ˆë_=ÿ°7ü²påÿë»7û†ÉòðéOuDÆ4Cé¥ÕÇ”éìf·ŠìŸL/÷ÇÒNï¦VzQ_>ùôtu?}>;êµIh†ËÝ6ð¿Þ9¯v E¤\=™3iÔ|»¨¼_>\ýAŸ>oy×§×[:x™ÛÓ·Ì m˜þFb.««‰ð¨æñM ;?Ô†n¼Úùwû¹2lSwâùxægÛåô}¿ùå?}Í;Í ”‚{'öyþéã Ý/_µL ?Æ ‡5:7×z’ÒY§ š;Ùka¯¹·Çž“Wüiî³pøVÛ3ÿù2ÂûOO—Ÿ~õök.à¹+÷¾WWtU>‘‹ÉÜÎt1¸[‘ëié×T–@@çqqÝœnÙ}€ã«Æ³&Ô›Îùù[dñ5zêïâÑskšRæ×DG_סÄsîíêÏþ E—nµ×V<à6'LªÅ©;† ãýª¤‚Œ-¢t§¼^÷´«ð£©³ö?ì,ófüâ-Ù…›õÞ˜»§;ÛF _õgf}´Õ<-_ؼÜómÓ)ÞŸ:ÅU¼}/nrv/ràvm=zäÛyZ¾ÐŸþ‰Ú@=’iµNúóŸ›ä8 ‚üŧ§«c|5éuSÍeÑoÿmЍ·_±H1»Íð| £Ûdì6—Úuƒû¤R=~U’¿ÚòŒÆøÏmjÆ6õ+¹je¦®võ›|zÆjìòrÿþÉ­{_ì¼9Û÷ÃA¹Tf3ÿèÃTWÇ\dWcæ~•ýû6ã©<ÖÚÊ´êèÜ<ÿîãï_ÍÂуù„/BâW§ñ÷®Ñþ¤.8}çÜÀ¸§Û__mšáTWzœ§ác<½“ÿjîsª´‡ŠŽø8{ï¡Äø²Zù‹·vRX2ì‰û½15“÷árÚò ã[m3½…CÎÕññ—wbk³y¾&éƒü¬JLýÿä5Nøâ/ú^µLx•7æ9¹³c°áJµ]Ñm÷ÏÔm­Î/XÔ®ÓWãŠ^-tE½}Swþï–~竸(‘Þuñ›¼y‡ä½CÚí‡òìX€¯w!Ld³»àÓš_ºå”ÓõÝésŸÌy(E ­F,‰»Ó%Þk°´ÃÅóbÃÓÈû…w›Õýg» cEž ÿ7s´»€x6à§‚Ù+Ý]@èh®¼/²Ú§eõÜŸD_èÆGÓîäÕÓÝ ±i1ú˜ ê8döÍ“»¦J>Þ¾|ü‚a´ùe¿$ÅY¹ Âî…TsÄÎý܃³ûè²Çö‡½¨ø(Ú•pæ›n_Qû¸—©Ø~yþ³oú^Í´ƒáÏÞ˜z§_åÜ;ग़ãóÂö^Ò4 èŠÿ¹-U~-Ðc ›¯+œî²¹§i÷áéÓëÃW×)L,‡-BPªÿ´«·ÏâYX(¼öŽð‡þúðÝðg@Ê„«Ùusýô³§Nüîµ #>ߟ3;eJI¯ä[¾S$î¥$¾·ÀÁ‹¿D~¯R)]§PÅ&¤!¾:F|º·O¢XÙ¼vsßý+lÍ£^ƒ=>}óàäöi.fÛø§Žßî|†þöñ¹eæÝ/M+·÷AnæJ¿‹Óz¥ÙJ!€f‹*ædøí¡…Yhsíà,Des¾‡ÿÅ,TazÃó¯LAðÓó¥žtN^/6©ÞF{,ÿA,¾òãuÓÿô³Ç­$rgä|øpÙ€>/öâëc0¯ªçÿ¶ ä×ÇÛß×ÏpU^Oñãþ Í?„ñõ­7#LèÎ]õùËóËš«ç±â~¨‹á³88Õ¡V¤ëF¯c笈§WüÝb|úrŸæ’h1àTó^…3s9OÑò›Kœ©˜ü£µ6~p¿ÞW0ÉOÞð𺿟jä秇Zx­Ã±‹ëÂ@©;óe¡_¬ûWÞ8BÓBÛhÓ-™Ê¿v“2ù¸Äbn§6îä®wî+‚ Î×ûS…1±6ŠºYöÏËEJYº_üί)ø%¾¥-=æ;†8Ì Aò¼œÜá²¼>®¦Ôë,x¾X÷²8]“×é_½ªotHý#NcFùš[äÕ„øš}ÏU5¢ØƒWÇRgu’Ê8üÉ›«_Ý©ë—Ož>1œ‚ºÚT„Nï{}5Åô¥·Îö•ù£(|‰nrÿDÑM"÷ëÝE·.\(o—+sÚüõá‡Ïæá›ÿ=¦òæÿXBËã1…‡P¦ÌéááÓ¯þçÃoÒc=”‡ŸÞ„‡¹Ù>üã›ãá?¿‰v`bãdð1燗còåaÂõ1¥ Çü㄃m ~?¿˜0­Äì¿6 FøBs8æ‡E¡sižu¶/ÄÅ*á\:…k;Þ¿ùûùM°]ÜøJ¹¢mޱ» ÁêM!Ü£Q™²§¥[½©?ƾ•Èù±„‚ìþpÌÔž{y8)ã±ö­Âè qá%œK§pmÛVæÜ±›Z^BÓ1?*ã1V#:§­õ±·[µsÎq+ÑÇZ6 £ ûÀ­?VW¨S)*ñ¬B°}!&V gÒ)\ZÁ†Ùtˆ½l˜ÀêæZx Ö²HvJïí„­Ú9IR),˜uÌ/Sv ÖÆ ×!A.V q¹(\ÛÁ¶Õ9Y1ôÙºãeÄø’uáÀ´j¡?Øæl_ jÍ¡¿ã1ís‡Yº‚[7ÃØ:ñ-Ÿ5¶/ÄÂ*!…k#Ø0Ó—àcæˆÁ!›’.@fY>0ÓcÕÌU2¶%Û\?),8hÈfòÛâP-ÒxœuÆZ&«„˜t—F¨]³ö"ɦ† 3׿õ„ 1Ì­aµ¦ÇxÂàsöãØJ”¹»Ä‚ì_3×}5Æœ‚ɶ±ÕA-^¹t ×v°mÇ”hÖúò:?s.Ym&ƒsâTøãsÁ[ý±Œ­Äܱ‚ì|f-£~BSþŸU´òâÁ'‡ëëK –Xì…2­f—‹ÄÌéaÝ_§´K›4©M]rqÒWy“ÃFaÁ¨C² ‡]‚‰µ^Ï:c‘‘‹UB\. ×v¬ÉXÔÅçb¡Ä9ª¦bgØôÀ4 ÖTìy+a­mŒ*|*¦§Çñ°ÔÖ8¯T…`Ÿ‰}+!õý¥ hUJKÐäN±Ó»Ÿ½—'oÀv3%ë ›ôž–BI[ “Öe£°`Ô/„™r¿aHÁ„\)g‚í q±J8—NáÚ¶Í\0¿Íiþ²cÔï€-©s¼[Yð¬×f]Ú ÌI FEà„Q…}à˜’ }9ÜLbª·UŠÌ9XâYAûÀYð΢¸´Íj¥bÂŒ)ÑlaææŒXMXÓö|,6 wÁÖÿ³Z[\«Dç>µ(8Ì:ì‹…Ñr s™Bð:ÛÎ…—X|‹ÂµÖ¶i?Ì·m§˜{9yî窫{§d Ý”»~?ËÏ5rä­Ä\CÐ0EÀAV€„™Ú¾P.¦í×­ Âö…3á%Ä¢¸4­ŠÔ,[f›,ÑÆ~Â_”ùñ˜LÏtÐ*œsÃäï*P¨ ¯ïÎl‘ƒÓ˜ZÕùùÜËc8é´T¿ÿîìù÷÷hN3ísv*Ȧ!ž˜9¤Sq }9´ö©†Y—ÌÛ@Ôx<–~þ>g]Ûç³|à˜`ZÇI`îÕ}¯°}á,¨ÄÉ4)Ü5‚㔆õ€i$'§ISl s1³mÂÃ&ììèHáEø=gkÝ Ì™ÒÚFÀá°&@ ­{XOYãF0æê÷Ο¾ß¸gs²Ï“DÅðÄ̪ºQÈœ Õ|>V¥f a°¨¿z‰ŠI~p˜Uà a&³m…É]î[„Ñ,ÍGÈk6“Àµ•ƒ;ËDŠ !f§YDFŸb“|ÙI€­êZA,û¹l¿O9=úö½Ã¨ÀÊ;b.ŠbC«ïçšÉñ¤OÐÊ;^Àôï/-ÐpŒûðB˜$±Ž Ô(æN¶H¦ÙŠ%@X]ÆK´ô˜êIÀAV&c'^'¹šzت Ù"&¼„ó,—&¨U’f܃Ï)‡³ZwX,‚cl{0'ÔØJL¦á#p k‡<ÜBOÜbÏ*|>™ðâÑ ìM@×6ií ”éÂÌYŠñN.ãÇ{Îbt-aLûFMØK˜&6 ³°)L–uR˜ua¯ó:ÛÎ…—p.µlÛÜŽÉé\ hš#f¿%왳Ʀ0ö«@¶¿§àDµ^b’o¨@r­‘‰Pί'“#nô c7^Â9t —&pÏêCNˆƒ–ä†iæB˜B¡*4…õ°¾9’•tت rŠy‰@gƒS8ჶމ1Ïu„(˜~žÏ*¾³xÐï‹E}~×WK’ØpÌœ¯«Z½Ÿ–T€ÂC²ðØW ñnÎkî.LXâµKÒ@,xiÍ]1á×"pm…„|·]Ó=´/Æü/TÍè´Ô‹¦ê–ò‚ÁçX®T”˜ý '¦8È æíIÀÜ/a«‚0¤˜ð‹kQ¸¶Bâ£Qƒä¸¾l˜€%<ç|†Æ|# K=À£,‹fíö,Q¤8…r* …!L033ûYA¬bòà¿‹Åõùµl˜ùá¼yÙ1C+À5M$ع̔©Â<ð“ x2œÂ‚O)' }!'úBÎ:c]Š /á\:…k;ö \Þv2˜xÛNf&àHç6#xÛÉV mT‹‚ìbÛÊ`%n[¬ÂºÕAxÛÊV 1é.Ðd̦Êa§¼_uÎ: ISÞwè©¥ÀÁÌ÷“¸œÀ‚ |G8’N³Û)ñYAŒ°Xð΢¸´AÛXäú0sLû˜c:Åœ¹§¡Xd™a…•FµIþ•˜;v§°`Ô¡SV1yE‹[„ß¿9¹ðÎ¥S¸¶CS1?”qõ×Óžj•!¼jUêm¡I°ä1œ­^bjWµm.®;Â”Ž‡óû,ýÖkÈKv¼„ó(—6È® ëŠöÊÂL!×a´µusÄ\ uÁï9ȵm%f÷›( fbí Q¨s/ÆlV‚±K“ /qòM wíX›™ÎÛZñ½L-‘#Ÿ˜ƒÛ"ÈÇX[™Ÿ(1 wp`+fʸ ­,«ß^ame±o%Ä¢¸4AÊG‘M¾l˜©qÆÄyQt°çMÈ –¥ÔÊV¢A©;)8Ì:ð…0~ß“ÂÜú`x„1Å…—p.µj› Õ •àeÃÌÛnHLåÅ…sv|yEø{²Qõ¹Ã¬c,Lêô8­ã¬°`ÁK,ëZ®Ð&*’õዃ¶HḡWÏ)Dd1½I 6ç$iÅßm2Öís‡Ic–ö{˜’“Êk ÇXðn$¬A°ô ãa•p®ÀµËiÔ·½»ß˜AÕrV e´ÈS‚ –ç°læ‡-mŒ*¤U6ùÑ"”B0j« zèwgп¾6AËŠçpò”¿œ˜6;·úÑV"×ky'oÖ47RÙJLuö»S¬:ð…càN_L‚¡:kƒôã1”X|‹ÂµòjO›¶€tÇÌM%ÉD:ŸÄDÈÚ6 oZú*Qµï:‡Y‡|tܰ½§KχҴêüþÍâb•—‹ÂµšŽƒBׂKåòfö%’7{¬qê4‡ä:Jáü¹4Z|þµÃ¤/¡ Ì ¬}'0Å),U@ËR xgÐ \› U*=v.ÌA§¯#†íñX<í-´ñµ“ö‰’·-ð Î),8¸Á1s¿MÛ~Umƒí[„µ,Á…—“NàÒéR‡/vŠJ·À„$¹š¹¹„!u8Èî°°†°•ˆ~€/ ³Èb*rT>, v– [Nu†´'^¹t wíX~môO‡Ý÷²aF g&Ó³nA‹7ë\°ÍH[ ëÙ²Qp˜u¼sbZåQ”4—g„eµ¶•p&EàÚŠe?—3<äåÄXûá‹´°Œ"@`ÛÒ”R@ìr„¾y [Ìu£ x…œl˜Ãâ‹ã,U”ކé÷Å´>¿6by©‚v%÷RÓØ;¶HóÃéYFÄü‚%õËVÀäHÚ,øXgUÞ¶HC&Ñc9k¬¥œòVB<.×V,¸œ§k/;¦[7a97žˆlÍÔYñà?µ!÷­¾[ð:¨sÌT¢ª÷µØ|éBÀ¡-o%œ5'pe~­ù[R÷Ã`’LÔ&'Ø;¡’Ñ>,ÿ`Ù ŒÄ=Ë 8Ì*t¼BL ™&¡Ðmá5„%iœ/±¸k+–Kò,AmxÙ0SA‰r ððª=bH¦Ú(@ß~OCÇDúÞá´TÇÄ*å’´†UAXŠŠsàœCÿþÚm͇dd°Q}Ù1CGºU²¾ðH7)r‡0„•â…¼DVÄ‘SX0êðó‹D ,mQ0¶§³Á:Äe+!.…k;¤R1̬öâ¦c,"DÇÛQQ‘°-ügï©_î¿×ŒC­õ½Ã¬b@˜Öyj"-Èxd¥eǽ€sèß_Û 1 ˜u3GŒpkd"M;Jrzn„U)Œ\/‘œ‚èA:D’‡'Ji»T·*ûNÒ·γìM¸4Š'X[«¦•J—qW@{Ükèmçï‹ãc9¬S[ô÷6eùŠÀ\uˆÅðËb9ÒVB:K .3ÐNGBÛg …¼À×ø·†hŸ ϸ~×üZß;̶h†Íxȃ‹SÜfà*àú÷×6H×(:r¨f{¾l˜˜iXÀ.dÍA5sÊ$x”k†Ä¶•˜kžN*Qp˜uH€fYã‡&z”µŽ ¯ƒ°´¶Î¥S¸¶cmÊð—êGGޱž…ïиqÖÊïK ´A-Ë¿v˜ôµ5§¾€SÈr㪠‚œÛ¯ÎÝà ÿj“Ì!K2'”0 ˜u¤5>…†‡Nq¿¨ê÷)ŽŽ²}î0+À6.Œ{FœÀal5ÆÄMkø†Ì¥Ü7 ×FH q;š/0Ç„¬€§¢»‡P¢ïôðÖC¿ 4…h9‡Y¾¨:Ͳ<‹‚í V!Ðíò±‹ÀµK•Šry7פ¢;½¥‚ÂfA2ójœ°kRe+agEm£àðòÐ-ÄA¿… Óì¬âtÑ9^bq- —Vè4½+ì:)þaa"´€i·åÇ3ÖÄüv ¥Z±'sF´½DÐɈ,øÔÿsH;w ÔÆÏ:–àL¨ÀâQîZ!±ê,¼<* Ì1æ"’;ˆy¡±ÇÔØCÆõ"‰YwXœ‚ìò[˜ÒtÐ$ æòè[„åˆ^¹t ×v°ms¹Ò¹w¸u¹0tç¶F›+'šŽsý—°`Í®¶E7N <ܶtLŒ”œN È¡ëUÆt^Âyt ×Vhvg\ð–-L§3ª0˜ãÈT«-2$/Xžô”·sÖ# W–ƒPSÀ¾—vNw«¬8—зΣS¸¶bÙ,8áš3$&·Y€±="ÓfA—®µð<‹ð¾çz‰‘uRp˜uÈjƲwõmŸ}žËVaÙ->ò(á\:…k;VD–YØ“‡AcëA6„ÝAsÕ̬²`ti×´W ¤¸ß8Ì*$Ç£a×s ~`èuœGŠb 8NàÚ yßêºÕPå}&ð¸nʪusª–LÂèÐÆ!ðÑM6p5H"з¦ã:€G+œU†&^Âyt w­X±¿t½wÙš +uóÔéü.éüÅ£Ò´•ÆcÅ­1À¸2ÀË)8Ì:d9–¥X}9Ç­Âïßœ\¨ÄÉ7)ܵCVVtP作3g5mEi§ª¨Îöx‚:òãÍ+èAM‡Y…Îü€ …!”NáÀ¼\U” Šc+à<:k+ÖYf•&Ÿý(“_ᲜÉwVÉC¾ìþg<¸µ•°{…Í?_Àñ¸šDŒ”/þµ]ôŠ}Âïßœx gÏ)\ø¿ÍOÔ—ð(’Ð ÍÇ•váüH=w…«Ä$°dGó#õ…ÑѤð€ÀMvÈÕïLx‰Åµ(\[¡Í ×¶3u!ær {€´˜¯0Ðu¤nÊaÞJ¬lQpøcpóƒLKÎò{þÍ_+¼:¯ÏÍ"À6š7í#û7WÒß§Hùãzìßšq„}ówÿy h¶4n£"pWˆo@ÚŒC„ŒîDo˜L‘ ¶×7"‰ôdL Áðˆß‹zÂâ\º0˜Ãæ1 ˜>˜­Ä0•˜Î+¤†)ÂÐt6LNÀ´$^xd˜Š+<†Àšgdg&fÚ¸ ³²9Œ>ðôh4bË(xÜ0…u"£ùš‰‰Â öŒ™(­J”ºðét"ÐY­7B ]Õìˆt„ ðò˜ ±Ì ^1m4oÚ¨Äd´È®ÆBLhÄàzž…0 pÛð*1•˜XÔ"Ì<Ħ¦9ƒ»WAˆ±6Fb8*J„ Ätsðy5bÚ†ýi!ßM˜@Œƒ‹ä†±Wƒ…a‡U³œÁaarÒW8à3Lâaªa8RÕ‘uáQ)a'†QH†A³j@êh–Ø`UGãH˜mƪúLúá³­ ^Ö·¸ÂiW€3Å<íûŒ(G¢†a›J-ªÚ‡¼”Îtøs~ "hD†ÉE=Š‹ÿ†1ýtì¹bóácUb¡£ -†:õÇá#SÌùa:ç4¬¹¢ËÁã€%0y(´ÀöµH T&‚Á<{Jú°* 8— HÆåïâ<-転˜@›d®$~T O›,§1v §1‰'i“Õ0©ÑÕ?±4 Ì×f˜Ã8æàµ ‰ ü*d&¹±`) ŽÎè•Þ—C—{×±'/àû0×v%F.l˲O„ •޹a˜VE8›FI{,ÿ *OháÜ%3k¶k¯¨'jZºmxÂìÚx!ÆËxG¤,ǵ¥&âWS^âìÕœñ˜"–'? Cî’F©u¯<êx—ë"EEˆ»_'sÕ¥Q·ZlGfºá@yŽÌØJ$‰$æ ãÄ®pá«8”[«Á]L¤kwðUì¾÷v˜* LfïÄPEÚ¬p ¦UÝìf€£XÏêÍŒ–é‡À8<Ư.TIǨX,úÆLáþÎvjŒl÷š$ôã”M—Ô9þöúP!‚Â:Úí\ÇpîÅŒ»×¼ËÈì $¸ ‡¶Ù˜mA¡LR¤nóªÒÁ‰Ï>ÃÄF/Á#§u)}1*[ƒebUñ Í8Õn³14]܈ãh{»»{Y•]›éÄP&Äp(‘Å!µÅÞ{i:RŽlÄQyM³K¬ÅC©sr{Ô7Q7o«vŽi`¬ËÜ îxËYÜi.0u1U÷9“æN°“|Í/LâÙ£]vŽÄÙþ‡ä÷T“wäC gàáJ ~D 0M6US9ôÊ…”жŠ`‘‘˜ƒèÌb¡Ï¡;&èX“20TÃýžÂJ½ÅO\ž®êˆ¨ tU„ô ºnÍ1«Ø¼O{ ¸FÖô…É2ÁêµL‘Œ4L•×&.Êf1I£?ðÌåîð4aÜêVy-ÞÌ,ïv[s(î¹WÇx:œ1¼“ËyÍC‘ä& ÕË›âðżˆÇÔ˜{dášEI¤¸IÚÔaœ\رéuè"h÷˜uN"X’I…H©GçLÎç•Ív´óhêÑ8åk×!¤/# ùázº-¬¬[§Ülmíñ&pòU}øaf\«úP|\«:RÂÍU¨U”–è8|UÏÞõslñc£x PŠË¨øp ´˜`[] Å•zÈå›_šž³ÞïJH§Â²‘\œ%d"±xKÉÄKüˆ&7’b×%¤™ÁÑ0ªªÝlk?È:¬ëk?ð´K«M•—€”î ˜¬2Õ7Û©C¹âÚ±B_a¼ÀVر-±©ðèú¼?Ø gzÔ܉:§· nJ¸8ÛÌÀ´CK-Zˆ¹QnÃwG»} LFcíèž½Pê’éú:v$‡Éx-¯^qíkE2/Ñ555{­œY´¤5Ú‹w €öf&%x3C„K$e…·(ÃÁt¡˜+·Ô¥ 8jÊ„锜âFL+ê®N=š½ D!bŠE[ ‰˜Ae-!ÏßÄÌîb|K’{!š²Û%°«Å•A9 hõ12.¡sÉ00ð£9²0ØË§]ž8x6ÐàXéE5yÆÁ3MцáÀ˜^Ø„éd§'í+ñ‘d†¶ê©kLL§ê“夘.¬¬ý3š:×…aÙ[ŸAìÞÑ^XâW™R0Z:ø& LŠ˜˜Œ[ ô‰Ñ¨,R´gÓ’0lzª‰ƒž}–š*V„á|K–h•{#¿éš9¹q[‰Ð»´é–ÍT´!Ï–³îAuéh Ž`F $ÍÉ0I×}úúˆ—.Êã¢Ò|äGéÁ¯Yü†];EãÂð€7aŠßôrDxð{Âj¤§¢9ºcx³.yOájo•¨«\äZÚ]1r©ÐæÃ0 ž—æC© yø`w…;¦êB^þ(Ve<´ñòX ´ùÔë M=À™¦U| wL4Mjå„¤æ Œž•1 ‰‹EC›«wæÜvº®èH@UyŽMÙa»kÒêîÓ³*ÔÔ퀩z¬#¿*:ª(A*‡1«V¤1És åKl„%æ ‡L7oÑ]ˆgìj<"¥Xá­q¨“a‹ˆÇá=áa´ ²ÞI“ñ÷ŒüýVx2ŸI¾‹+_Áç±Ë9·EŸÿ¡ÐýÙýÇÜÓöPiKn‹°È9Xs‚YLs°ÀïïþñÍ;³;Ž9ÏßY‡5EE‡l¿Ùþ×qÁyª7³ýøe~˜.ÑÐ ëºý›žGLÕƒáe{ÙN¥T#cúÀeá # FàûùA¤!¶ $Ea:‡Qƒ}°ØkN;ͪ }à,xų\Ú`÷NÜfE"šµP*RÕÛÞáåLæßÁ”&lµÚðV@wíäÒ¦h>¬Ï < 'ý¢ë~'^Â9Ô÷— Q°H'‘±ü^vŒ ½df£éôÃ\„Ý`(&ÏJÍZ*m+a1å$°@Ô`8†Qh'ÚYaû™ðΣS¸¶‚ÕygÝ’D„€ñrLÇa&ºÃLB›eÝ.TEFÒ׳J´ÂÊ)8Ì:4ÂĦʞLQN[„ß¿9¹ð‹oQ¸¶cMEÓð­‹³OE x» RaÐcª´£6UV‰4Š¢à0ªÐ\$*ÑI€×ÓÎ*k6†±•X\‹Â¥h˜Q›ÛØn`Ìa‡~µr]‚ &;±6ÛK0dß4X%"íšEA0«ÀB o}o‹4ųÁïß,¼Äbš®màxYÒÊ/ e‡cL“„CåÎ4 °í¾ñ‘ÌŒªùü½Ò•¿>w¸ë ‘Óp x¨Ð ÏÛ΂—pµZdL¨8ª6·ÓpEõšÞ9Úà [LÊ1ù¶Ú*Ðß²8Ì*ð…0f×Ûˆ9…‚ Í« ‚ê<ðàœG'pm[Vù*äÀÅ+´laàLæÍ®˜ŠÈÈšÌ;OXK¦§­Dçk–‹Â‚#S2,LŸ:r{XìX¼¤³ Áf2±JˆI'pm[ÖøL«]ëI” ÓµöyR?˜W8!’mVë ‰ìÌYk*Ÿ8áÀÄÐ'Æ4[ë §p f~UA=!¼€óè®­àfù²›í§xÚìÄtã*®äCфĆcÁØ™ès[%tþÏÏhʾwb*|bçç¼ÐsV@{¥XðΟS¸¶€ãe‘¶Ú‘ëĸìN ú·P„d}•™ÔZ0V@Ø~¶0«¾}î0+@qa2ÜçúÜŶS' íKõ{ çÏ?¿¶€­:^féS[µ0ˆsJæ‡ÁÐeNÊy1ˆ0w”@R ñȦ@:1'Ó'…‚ g„!ëÉ„pÀµZ_Œ™²»l/ÇôÀoÌÄj¹Ö¶~‡±Àxƒ`•š›Sp˜uà ajeŸ;…"±êu”SðŠ /á\:…k;ضY ìçó•—ßSBŽf[¶¸”ìP$–Û<@Y%"ƒ'ë ‘ÃìEÁÆÙÁë i&¼ÀâQîZ!•ªQQ³ƒ<ªTB ,Iì* "ʑ韣Cy m•èˆÆ?)8Œ* ã„hpÔ.ÖãP˜T…`ˆ{2±J8“NáÒ 5¬R(ˆ¦xÙ1p˜ƒ(U\ŠÀÀתaqûݦRß¾_pp;Ç19Ó~8˜}@jê×ÏΞ|m€æ!·‹Œ‡—ÁG SÕSäƒrÏí‡0¦!˜%Ϝ‚³R’ž˜ßêI!á¾åYGRºÐ“ •Xû( \!}J—Б®âeCd$ÄH¡b<˜ªM8aôf„Ûq•¨Œ YFø@{ÓàáüžWyÎCQ^ÂyK´13Þ Éà7fb=ª°CÓvo™.›-½Ó«„‚:Áª_Ó+µQ@ʹrÖ!X¦lh[ çÛ)\Û¡,kgW§Óe5†cimè¯À8ÁØ— o¢z ]¶[fØr…©U{(Tí³Âðxˆ /á\:…k;4µÕÛNG!¼¥Ðœkä”»*A³‹a]«Ä\ü0Çœ‚èBödz'pȧіÅ'¯‡3á%œI§pi…FkhÐ<Ù0­Qç-¼ãºT²“- 댖1‰é*ÑdÙˆ€À:\UwDXÞ!|^ 7%¯ è=›“/±˜…k#Ö]åÃ8ºoÐÄtsjbo”Am6ˆmž¹,XΖ£n%¢ÎN`ÁzóÄð^Õ¢`Zl:« ¨íy¬Ÿƒúú® j_=¶Œ2™‹Ì1%S^º7>;'Fƒ»¦{àsµÉ+°x‰ik9‡YÚ%L’ø¢Àd×gžüúäB%—¢p×¶­óÌÊ⑹Èg`FðÁaÈ ì°Œ«ÔÎQ‹ÀQÊ q¤x~#×@Xvi [ gQ®m`³ƒ ,Xü€1¶0|þÚwСs¢ŽCCÊñ2Ø*Áç_¬áý›qÀ“ã_'XÍ'}² À—X<“Àµ Òîy‚¼^;?1|¼4Y€Ù€LŒÒ>y…g½vž,jêèg dJᤰ`‰|Ãàôö¤pHµô:üµó“ /±ø…k;äó`ÎX `—å☞¥ôÂ=ÆAK²3{¦à÷Ôà$y‰¡GՀí®ÎÆââÃI¡F.ª£Æe¸ /à<:k+¤óI2¥ ÓÄX 2/ÅxÚ´WÓšôÐ~6þ(‡Y‡Æ€Fœ9;ÙÚª(ŸÍOþî,úç×FP³: ýÉzzïDTЀmdP§d°PIJ`ȸÆì^"%9¬ù½ƒzïDäFÙáß3ÝþYaÈ]²àœA'piF‹©5´rwvÌ->Qƒ$˜ÝTZ£ïA» Ø5¡¶–`V„ñÞe›©Â-ñà%œÇ5\—VHÖæD‰¸ü²aÎQi·kÇ8WzÉ †,h¬W%3žÌ:0š‹‚‚oUtïC?wõù]#$íåê*•½NLEÌ4Ôƒ'l&šÝ—v¸ë9tÿ-+¤À?t˜¤Q\˜ÜiWùçS¡Ïi£NX 6*÷ΜS¸²/¿ã:-57–…éP‘qʈ~ånxÈÇ ƒÓ(OƒJd\(^²†÷oÂ⾡áéóéáò ë¤4Å­„³è®ÐX%Zxáp1¿0_¹†[£–Ü,—´W/¡T“‹Â‚—óŽ9—‡(Ø/: ›ºªºœw?—p.µk{¦XÇͦ— cWœÅ4´€.—ÉôÃöà½+/aê('…³mχÄ*ll§`!ðc«ƒ°¶†¶Î¥S¸¶CÛ³ÜE–ð‘•c’íÜad0ÓÃéP"¼K9/aWÛËFÁaÖÞpŒœ»N™´Î:Âò;^bñ- ×vhÜx‘ÝÔÖ:†ïŸÂ§äs6ñ@Ï9,µ nh•@ì~;),˜u`܈é|AuQ@ÜA:ë,ÏV[ q¹(\Û±Ô*8†2ò{½l¾I Å:N©ýžäŒ,‘ŒÃ%/1Í6§à0ëÐMÞÎh<yVPê xÐï΢~m„mðÈ7—u’$L‰$¥¬ƒ— Ê]Ò)óë¹ N ö¦TN fÚÿè_BìûI!:6¼ŽÜõá\x çRîÚ±<QŽ iÇ06æy–c §yeè8;È’Æ}—¶•hQõŠ‚Ã¬ƒà˜CÇy¢`¡][!û±°xÐï‹i}~mÄ2¥›NErwSš0b‡‡ëÈÌ-' …¢ÂüX%"‚@õjÄBTØ$çç–`£_ø ÃÉ_üéó»h³fx«ù|"§¢c"­èÈ„ð#kû° ,ã‘ F%Ü­$ËË„v¿Ó!#Ø 0ùYa?ű•pµŠ `eÕÇ„Âf)1Û<êKØh c–$mç*Q™Þrp˜U(tƒ< ´(ر2Vê …€š‹X\‹ÀµKÍ«¿_6D3ûž?xÄäiÔJ ¾§°)ýü]jéú|Ák„ã^ 'Àî>k8‡ØYðâÐ \Z ‰ÈXÇÑ#-D“Ç—2–Eœù–†`)a·™‹˜p >tŽä·ˆ@©<%ò*Jõs$gÂK8“NáÒ ùð«¢\â:\ff(F†HŽÊ£sÓÉÛ‚q¸ÞRç%JR౤ï½0-S óÏkçnî†i*¼„óç®-XúbPïËä}“7'áhP ±'œ‚`ÕñþœêÈ⓬ÃÓYA®+/&_Lëó»F¬cZcó,òeÃ481qšÈckNÚÑ|X°Ž3[ØJt^,X>@S:ãOB‘'Þë8O@ /á\:…k;´3Ó,i0õ‰É¸-:j ¬‡d×áä#Œ™·ÔW‰¨É(Yvf!pâü<úñ½*ˆëø~ùŠYâdšî± —ˆ°º×Ã1!)°Rz Ÿ\„d¦yyÈÄ2ŽA¢*aqç¬Af b} ¢ÏíÈŸzúõu¾è,¬bqQ¸6bÉĪSÌî"±*F,S(¢û2šBfáȘ0„"ó)¬…AvN`{ž#lŸ9êÒÄ:”¯A°¤"µ9•‹‹Â¥ r*2ÜÁÑ^Eax] †SQär-g®`L¬ %M%Ô»(8\õ–Ó‰1 Ä·(dr?ë(zhéäÂK8—NáÚŽuÂ.gý~­/¯v„æCZ>Sn Ö{[ e]fïßœ˹õpà+1g„uÂÎV•úþÒi|¡'òU9¦¯hÎPh)Œ@"Ð…KMa+Qp㤰ààl cÇáE*2 ZR[\“¸X%Äå¢pm‡¶h4N~ö瘬ßuúa7Záº+(‚gvÈPûY‚Yæ–0±HÀˆ„<ë %.¼„sé®íPÛå^Ê|DñÄäÈ#©†»èMD+:ÿ½Œ·-\ÿàu1ÿ|Á¬À«-Ú~ˆ¸6uÖ@XzvM[ gÑ)\±\‡.Äæ®`*Nµ¡ŒÑÚ9†^t‡Åh®g [í`C\ü8oaråæç(Ï:Ë"H[çQîZ±B`äwt Á$†˜(\»ƒÚ—¶ñA+p¯u÷TkLÊÚÌÝ=…#}nΧœNê‚5Ï[:Kˆ7'påýßýšJJL}°.@e<ŒTö×T^•9çË%Xçw/b+dÆHØÞ@9g¡l÷ëö.Ë‰Ø Ù Ú ß ±º¶eoÜ¿ëÉ•„ýøîÍ{™$<Ø1ÌdÉ7¢-w:Ÿ\QD™½Ø±þÞŸ_ñk[¸}ȨZaR,Õ(ùJ)»pi® a.¥J:À÷RÂ\J™Kc\h ³—r.ÎR;_ê›(–q¼› hίÔ•ÖOù0‹"³_3œdÍú5[Š·#Y¿¾ê³?ô~G:x-òúêIøÿàÕ“d£á(_¯žüÃíï>þòm°ë¯£ß~ÿùËÃ/nÿý/ÿÏ_¼߯ç–åÔïéç_A±¼«i¥þxåîÅãÅÂõ ŠK†dÙñ’¶L^<;åD 5_1È JL$Æn²X¤2Fad$0‡0tÁ‡òÇÁC;1Ý1›@$z¦ “a—a-•ÉD04ßQE@˜@Äýý8”4Þa3Á ƒ+´ðO¥BL¦!¨Ö0¸®‹ðÚ\‰  Î`b”A¦ÒˆiÂØ{'@öL‰e~€oš]Ξþ‡ò»A]ì˜Lîx5˜°0ì½Ä‹ÕÐÙ{Ê.gd(Äh´é÷ž˜èÔ‘å˜Êþ£·uqF"¶‰Qbz(°5ƒ¤yt¥ bÔ[Ú…¯”ãÐ%` ؈ƒ`SÔŒò¦ª ý† ¬'1ÐJú ÕÊÌXs:1íð÷'ˆˆT=†r¾"L>ÙcÁÖ†ÑHt¤¡z”JD¨±ó2Žå+ ‚ï¿" Sa€3µY “&à£è3 fV}¸cRE7ëáÇ-«¡T98ÒF‘ƒÉB€8à/ÞÈÈXWÃD6’€í"w%•Àì †98EôbÅèJ¶Œ L»ÖÝÉM  Ñ0’Y¤FgÂÜ!A—÷Ì ˜pzxaú´Á«tÀDÇueûá e"Bv_»’ó#¤Nõ~¸°ÑÔ†9²cÝ¿KlƒòoÖ™Q—\ª\ÔªŠèò{ðb“…T%V}‹IcGàhª­f™çt-ûÈÌBmWû´äx”?1ÑEÀu0øHÌý`ÚÞŽAO4½ñ†{8ð1¤êýCÖòÈñ^&Âe•zjb˜+Àîýµæ¬…ª§R¡ê Ì1ƒ[{–"ÃFÕ«S8—ªž%^ܘ½$!1 èZ†‡eHØÙóC¸AXúâ'éfCç>`‰g¬É¸haäÛú&ð ª­ÖÂãk6Y-?lœ´)•á7¿õ,A²ä†g³A[™a°^ËjCWdbÖÛ Óe{ëm`¢î‡qÁ–ÞÓZµå”îÚÕAˆ-K•ˆq“>k&êWŽŒ-QaRºÇè[ôyÑ|kEép¹5˜bOo7ß #Ê4ï<ÞFâx(yU®ÞÊ‘6­‡ƒ¨0€rf†>`x12Iq+TâÍW‡c†Â¯{tuƒ™ÅÜŠyÃÐs„iWŸ¢îdæâî&WŸªÜ«=¹úTõ¼–¢ …©ŠP”{0(å¥Jê€*¹æaZ!&SŠnÈê°Ü$=”:ÍS€ž§Éé\¯ÊE×ý­*`yèªd£ü°È":'ATö[`ð®fT¢4èÔ ‰”áp0ƒKô±3Uý³Û¨©ßbr/Aˆ–˜Üö I5»Îh,¡¨Üd0%zíê‹Ùhu<\ƒ|§‡á¦Xhzütx_¦µ7OÕç¹-È{ÈÖáËh/2} Y…‹°z"ëÚe‹5%ö’m«GâÖë¬0ò0k=_ì@eFcÃ=\Ûº$;¦+Áš†22}ëzF)¬·ñ£?éÜPˆƒ5>‰»Œ¬”¤LdÇp2)¬uA½‘z()#ŒqHÚ£/Ç@^ï–¶eÔc>úë[0ü™/¯ú¼HÊF£wKá-ðä~C,w±£G5áƒàc§®kšŸGsv‰½žƒòýe·êsä¼=”0>æ9d>B¸M¢&²“yØ0‡\"•³ëˆn±eoCô5ž½Ñ­m˜ÈŸxzƒßãÏÂc„”5Gð%RŸßõPávÂ.}>/JR;_À 2ŒfJáQI¦2åpKzn7QYÉ öj|é½´8†/F= Õ4PUIV‡«¹æ×CZ屿M|Œst_0¶Çbä[ñ ÃuOs*vQ–èVåÔì>.JÈdù2‡¾b{<ê* $ãùÌ+/çbÚròýXWÍͽZDY#Þ4{nN8e‘÷uÃàÚÖŽ`$ùŽiÌ~ºaø Ì^ÕP Ò…ñ‡s‘Tx w6¢gq•mçFØ]Ãý܃ÙW #Iï2̯ÂîR±·êìt•òÍ…«Eb{RTáCPI@?0|È5¦CÃ1=qªÝ¦ X¤~à¯'㜛'REL8ßšN’ëT\%§†ªK$ò£ ýåP_°&ÉZn+·ˆ§VÅeª Y«ŽÊѩԪ@H¨s›\‡=µ*B ™¶y3ƒ4‘ÃgŸÿò}jŸGv¹.j“Q£âݳÛ›9•jV>µ e¯xT. œMÚþ QZ³6WK È£¡åYýN©^š†ðš•òq˜óD¹úÝÊᛊ†èð‘©½aÏ×0³G3e“M.!§;ä:J¾¨§«ÉJªá]!¹õÕ]CÜ ÍìÆ×L{÷ÃÉÖ-ʼÖ\içÍà¼Êž”5ßàüçµ5ax‚V¿ÊY}é©;ð~?tÝm)tM÷˜bÙ–H×¹Gs„gnk¥%]\ßðjäðUT;yÓ±¤Y<Ó ‘¯ET™rÕN{\J6%GRv`²®]J»¬M×ÝE`¢«Ÿ‰È„Á8¤¾(WÞLKü^r4 ƒªòɲ'‹:»3ùÛt™¥Çð>ŒÉ†çrÚ½L0ó$OcP“BVÛ‘‘ÍÎî}2Œg°Ñ\ão‹{ó £ÃÇTþ,Ñõ½Îi‡˜š³•Ð:5Ó }%v*³Evü87[¿-%ÑVü>Uó¾+‡¥û /Š(Ãå‚Ý­ <ß-ŽÀQ|]-Ðã(vL¬UWt¯¾òÝ%¨"Œ‚M¾ý¼@dÇϧ>Ãíâ;CQ H=u'fº±Ão­ÔÂ7,í€Üu§ƒõÔŽ•ZE³13‡Î@?!t\ïZ¤bEÚjS¦n<ÚÁJóPS*‹"4CrQš˜¢ó7ÃDeuq’ϵFòÒ.*‡—6Ö¬ôЭ{—gš ƒ¡½À„=±0˜XÝG.«zð-')¥i®¥®L7KUIs €áI†‘üNôbZlˆ„XbÒ¡Ñu–±Rãõ¥€%<ËbA(uY:¼C¨'` u³H"$&³Â[j–ÝO_ÌÊÊŠ›Ñj6‘÷Àt>„ÕJ¾ )Ì¡mš±)š)nV!DõpÈä1Bü‘ 1ÒëbR‘‡Íà12EÉŠJ/j¯mÈl ªª,ëR±!£úà5ªºÄa£IÇ|‡eŒ¥l$‚£o<6›±ôE½Ñh˜!_ótž£Ëécø¸( ‹Ë Ñ@æ~ g êL+3eмy}K«;p€†ð6múŒ%F<Ù„Æò@Ä"éÂòÎ00)P¤1îmGTDfÞA-#eë8%çó\¹€qW·™ÏÂà˜#㮦P:?±6wVˆŠV”óª(°º×ndÅV‚2åQQr»2×£'… Z6ŒâÊì8›1˜r˜ÛÁcRœ&]Ñ”+¯ã5yF{QÕÍÏzQ˜á íZߣJ™¯‘§úÊÞ1ÙƒSM¥WHë±<£×׿~†ÁvM­Ó¾xÆÎVˉ)ŠÓÔÑýßëåo„ñŽ/ŸOÝ#ÆÿôQr1OØ\~ö Ü.¢˜è÷ΜEeÎH¾zb?YN£fòËù/~APô;óÛä9¥ÞÙoQO¥à“e.w¦ÛC+çû*+”úë¼Ï¹o>·cáÆ{·÷\,BD÷þêù‡ß¿µ@[çãöéWoßÙËPG©·þ¼}Wæf~„Ûß HîS˜Ü>|übeìÈ=ß>þZ§|ûò›­ÔFçÏvúŸ×Çýöåmì·ŸÞšT?R¹}Ô'¡ß~»òüã½û΀¦ñ|{ÞË=}Ð÷÷¥>¾üöí;sN•:+Ù‰ýj/ö#I#ݾ|}¨fywoàú– Ì·ÿòÄ6”ÙšºpûùÏ톀=È\oñééûí§ß«ŽÙAOû'ߟøÿö4™bøˆõ¶Xj·ÊÓ—'Äé#ÉbýÿúÍwÿñnŸ/-û22Û{سÏÕ3Óš˜Ü~xúüùù‚A'Z6Ý9„b‹ãilÙu’YæÓÇ_n?ì³çó—Çó¶Ãß¾ùqƒHGendstream endobj 664 0 obj << /Filter /FlateDecode /Length 22275 >> stream xœ­½[&Ir%ö^¿"±OYÂVnøÝƒH QÒbñ2H=4k†Ã^vN“Ý="¥_/?瘙{ä4—ä §1¨<ö™ÛÅ#¯ææÿðr½¥— ÿÙ¿_ß?]/¿þôŸ©/öÏ×÷—ÿùŸþӟϾ(o÷u§—_üÍ'I/9Ýoå*/£·»´—_¼úË×ÿóóÌo÷,åõ›ï~õùËõvµ™fŸ¯¿ùœçÛÕÓxýéÛß|þRÊbëåõŸgy»®Ò^¿ÿü©Ž×_~F¹2Òu¿~ÿÃ÷,y¥òúÿüG+x߯Jj¹ËëCÍOôøË⯯òíwÿßùÓû÷?~`ý¿ñ_–¯½ž¾–+¿õ{,ñËO¯¥|þÅûô¿üâÓŸ±¿üúGTÙúßÛr¿µkUgzI£®zYÿ¶eàL/?üêåÿzùͧò6óLíåWýý—õÿÿ¶jüý”z¹ÞòK»S}Kýå}rzãeÁþV‰W%·…ërgþº ´ôÖæÁ±Çè‡ÇRÁF¹ú[O/[Âr ÌC‡0J¸ÎaFº€‡_?ýÅ*‘oÊ©ãß÷ƒ’WE¡†êic.]Z׿ŽiçzãàXv¯’[‚cé0ÏH¹&<ØÖcœ‡ Búe6Øïn¢:AÇFmou=í±dɱ ¬j„Yø·gàA³G»ßr ¼ÔŽÞ߯<8ÆúÒ!Á±t „S–Á°,$, ç¡‚ünƒýî&zñ§zb÷zm_úúߟ—aÔÙ*q­ðÆ¿i¤eÐ*óõ¶>žÍ‘ûÛ[€CÊ'¿ÖgB§½üzoïthF ·Á8ÜBðpÀ\ªouÕžû¥—Ð)ëÅè7ÜZÿàe žÄzòé ¥i‰»(‡ÇÒAÇŒ² iðÜ%ä[5i*é–Ù ßÃD+þÁ 9¶êx®ºÉ×xëj6œ²”e~ÓýíZµ›—1•ÓË[Ÿñî„wfsŒñVû!Á±t°„SÐl¾„„t¯Æmn†ù=ÊŠà»MÂÓó ½ÒzŒÂß7¡Ö·‰ú¨ý-ã½Y¯øEO)Û1´öåQ98:¥o Ž¥‚%Œ²AG›érÁw²u£„[áf¤ x8a~-ë›ëãò—1(ƒ¯’ii}u‰xÕÌ Ç´ó~»êÁ1ø¬¶„À—½ŒAéYo“KXO¦*ùÄÌûÝMôâO'ì+è÷–³ËûA©«¿²Õ°i˜èxÖqñ±æW6ßÚÁ°Zø>Ž¥‚™QV¯Wù‘IÀz™ó¡€ß˜Y ßÃ@+ýÁ5ôÆëÝ]Moã7”™ÐÏ--õ-wàáüðWoâ˜VÞè77Çú¦û!À 4€ß«uÇ‹ÅWó>æ¡@˜õf&8‡›èžNȱ¾>ƒõ ܫ̪Ü÷ƒ²>ƒ5DY½ÍúpС¯Rèîǘl¡ Cïìoiwf#KJeµŽx¤.¡² Þ:„Ùç™Îv›„§ôí^/P¾Ñ±]xßOÊd·t·úÖØ;W|òé^oö5/½÷úDú<8Ö'4Û!!ðeÍ\PÖX³ä—-a½^éPA~·Á~w½øÓ :6Ñk 𫧝p,(wG5¬wŠýDOëU_Õ–&º¡x©Îôƒ=e=$8–”J‚C!áZ¯ž tF ³"8Ân“ðô¾å±¦ ëëk ŸÆeµùeaÕÈz0ÆÍãnø¾ý”çÅv88æÅ†8$lL,a}[Âz…Ë}èþúi[án¥IøàŸ[ÆßëƤ`µÃïeµ°ŸçÕ6,©}ôÌ×:À«J1Y†CYUˆnÖ– –pJâø<$¬Ç‰æÎU~ý´mp†°Z>xAÏJk¨é~¯–XuPJ€'•e0JÝeò}+ë³%0 ]ýVžÇê×Z:$8–”pÊ’¯æbKX->úáÐ!Œn…s¸•.áé‡|[oç½Þû<ª=µ LͪÊúfÆWÖÔõ꬗Œ`i¬˜fÿ- tL^Ρ“Y„®©T”íŸDˆ†?®Ù8Â2“ðÁv½…khŒÎ#M¶ŠAà½^Uïàë]_mYcoŽ´…¡u}é×<8VÓ…Ž'$¦ – ¥Ýkì—`§$´{5üw¨0È—–6øï²0J?=ÐCÂxŸ&­ªÕC Šfàu‰ììæ×k}£r ú]Ǩý5éãàX“¼ !!0u°„Q®ÊžÎ$,C± :£„¬ްÒ$|ðC¾ö=k4¶†otÍ •3ÕR5ÀiU3Õ‚¾©FubèÝŽõä¼8¤ûLHX k QÓƒthF ·Á9ÜD—ððAïáêÒ1 Ék\<èWPV'ŸÑb$» –$Ðî ¨!´Sk1Úþù¦o»°c‰g§\h¶€5l_I(DÓᅦÁVþéªоô²ÚÊ‹í`&ë¡®²s•)«×Ç8¦®ÆÏÛ0ÞÊiùæh™ïiHL(ᔯhKÀG×Â(áV8‡éNX?YWר ¼Q¦7ðUÍÆ´æ{¬áz ÌæúÒ$Þ9ÖÇæ-$8»7J·æÙ%tk¾]Gß ¼Yán¥Kxú¡g†¥N‹ºµAY\„¡!æ¬|éGu­³vBkƽDzä8Š;–>£¬á*ÿ!`=J5¦AØú-N‡›èžNè¡­JÀó¾åôûA™\‡)‹¹¡Ðê&;ÐÊÁ©a>ÄQp¬ÁF·.À¡4°€QºbB@çèp«æ#3#œÃmt O/Ì3­­žeÞOÊáôÒS0·íëëÀ¨•¯Îš¬:¦¥Ÿ{0`i¥‡¡NYŸVê\@â(vkæˆÆlp·Ñ<½°V˧½¢­R›Hܮή6.¾ö–2‡ÐyryÖ1[9.ànŽ› ¼[‚ai`'¤7v®*_WkÈVÎ4f³(‚ÃMVùÓ@ñ«mX&IU(£´‚GÊï<Ûç ^± b³ßd[õ²µ“X:XÂ(«õòAHXŸ+ßu[k“ÇÁáVš„~È·¥ëý]«ÄïëÄUc›Æ½¬Áâê!ÓÆM,Øl,<äC‚ã+úó $θ]šþbEÃU‚ßlðßÃh+þtBâz¸hZ×\ûûAY_8šVçcµ@˜ôc 57f…v€‚c=: oB‚c©àC6JìBÂêdÓ¡‚#`³A¿»…VúéVïVHÖ¿\´ß”ƒí…‡VUÖ$‡½>–7Fe®I+º¡àX­>vBB`ê` £`g ]KÈZ„ Â(áV8‡[éž~È·Õù±ÓÀˆ_=tP&Fªœ9e~uÓqaæÆÖ岃tŽ¢5¦˜:XB”eÚÛÕ_BB[í–Ž]‡a›¿åvp˜•!áé‡ueåý›ç÷MXÏ«v>‰Mèëžäf»U9öŽõI\ýàX*Ø“ey8Ùþš„¢>#tïU ç0#]ÀÉXìÀ¢¬þôŽÅRêPO¤f`t ß„|o`K˜°ùÏøDÆÜÅK-uˆ’98qkp¥ic `ëµ?‡Á,ýÁ~ù´™ŠârW+(ZŸ\½_ÖÆÕÐÈ:¯>#·À¦v kPEÙàX*Ø?e}”ÓªÍ6ß40 ÂìŸsl¾‘ÃmtO/ôV.tì?©õØ­¯'*—«ÌMòræ;2¸Øk¨‡Å‰ø²ÖÃ)}ÍÄ&D’Ð×÷ÃGn: s&++‚ì O?äÛš•cÛcÖŠAõûAi6óX¯ÀÒ³ðÀ°ýkNnר?¯7®Qܱ°„QŠM;\šxÙô8;Óï?»}^üéÚÄõ_ Œë8¸ʪl¨Õ5»ç2 J£5Â[ Ì™ãàH.8ð߇ÇÒÁÖ›”v¯áÝD+* g ¤Ã1ç³Ù–~ŒCVn O?lÅãÆjÛ“K§ 1@}¶·R´Õ1‹^Î{㯚éÔûàм(8”›†²š´jïwµ6ë ¡B˜ÙŒp·Ñ%<½°±påVaÃÞ™†ÂFhšÝ˜AöÕKid¶*éÚØúæ@—2k”Hù6oáÂ\d—/B94³s ÎKÀÓƒèÂðÕfŽÞ7¡Ø*äê<>óšõ½¬¶ëþ†­ C÷Ëì%„ÇRaVŠ’TÙ.!qÀ±u[F+œÃ­6'è\¾¹LRð¾”ÂÝî„J@S¿Û¶zÜãÙ®O0:·vyÇÒÀFIÜ-ß®›û2®BÌÿÝ-ôòOäV»§"@hÔ?ÕÖË®].¬|5´K=0´b‘¾«eÊõàX*h§QÖ¸¯aðï²^äБýUw#œÁmtO/ô&މ‡ˆÕT­”NÜ+åKÒ¸º:´ºÚ¤´ñW­s“Ë8ð¹pSË$¦ûo6oÓM°ð…†ÑU8¶w½Íƒƒ6n§ jéoîç¶Ž™¹FöA¹9tÁ4‰A˘b«Ö³.¹ µ927¡·„ÀÔÁFÁü¿¿„„àu†mºw¥ÍVš„~ØÈžcìŽ=ù¡S§¬Ï{$¿ðຌ³‡¹ ws`~~KKˆÒo ý\V¹î¶uþú)¬³2$<ý°¶¾pd†O/Yco”õ®¬í¬(•Â}„õ² .æëUÙ;GM¶rkK|£¬f®qaÐ$\·u)¦Cøë§m…s¸•&ჶL¥ÝloŽª…*§Ü|Ãòšp£wÄšCã:RçØÎ° lÑÃ:G¹èSHØ8ù’SÇA[ÆýÐ!̱°Yán¥Kxú!ßZ×ÊÐ’ÞøN:¡J­¾")4CXòÂR“aªôÇäÒá`ØTpZ`¸Àe4IÀ’òh[‡a”ÁàV»€§z#õEp UôF:eu+£+ø†ÐtE–Ü´e˜kOÇmM·ÇÕ#ƒ²ÆC\ís …‡[GñǰÂ9ÜJ—ðô#¶i1‡EXBï¾MKJáæ#7K1ëµ0È Û©°Ã° –0ç Ž¤)¢K,6ã%¿ÙŽ-¬OÇ7ƒ©BØvli„ql³)àƒÖþ«—k^WªÚ§p{7a±µ DMF ^ʰ-¬¡Fƒ#©Ÿs g W J¯Œ& mªûuÂ\Š3+Œ#¬4 üÐP$3˜ á›Ÿô-(·-æ¡åÿ‹˜5N@¼‚C,а*¶Çs™œb«Œ&¡ >WaÐúÂ| aµ xza»JÓv³²élÊÍE“šÔz]ë™`~\ù 8d§ssG!JSä¡ œm)((«Ê¹¸æÖ#©}«äûk68ƒÛèž^ØJã)C»WŸ¤~-(µ¨WªßÔº!{­UOŒÎªÑŸbðSŒ~ò!Á±t°„QòT¿æ–Kœ¹a”p+œÃ­t O?l­@a;X¬Ú«p ^Š[kíòŸújÍd˜óÂb¾GUpQHp,,a”d“U—°¾9./»aÛ3 ÎáVº„§¶7}q”Sµ¹ ,!žzúËâÒsä”ñëSJåàX:XÂ(ØdxÙ®¤“«Þ›©›Ã4O/l­‘oMwÑ¸ß ó²ÎÃ6ÀÎQ=¶¼Z@‹7¹6Å;˜(ïX ¾~Úl/XÐ  =­)4dÿN âw·ØÊ?=°%¹KCÊÊ=÷ƒ²ºö;k±krס°ïh ·´0Ž+ïß;÷+£´A‰'»ãn£tiÚ†rñÂ_?mýΛ„§HÀ2Mi׿,,@ÍÐþ¥OzãûÓöjµE£k¨´Þ„àP¾~ÚÅ;oÝ—M…0—Íçp]ÂÓ {^\jáBZftŠÖÒ›……&›¨a[€êýàXVÎÛK;p«Q¸À³‹+Âh+þú),p†°×<í·]@6'«oetÁûAIÙ&u\ÜZø~ãÈ£0¾IȤ˜sû=1\2Š–Ý7fÜ.`5mêÞMƒaë®¶9ÜD—ðÁ ãW¾ÜiøœzSnnÖ#¤sÄ45cÎËî9Æç_›ajã<ö)uPzµÍ“Ð4avÍgÔaƒ3¸.àé…YËì'ûjFÑ”Â©­±zY·Ø±þ`ýf=~]Ó ¬_xa‡’Î@£$}*½/«Þd rÅÙ”;ƒÛ楟Ö[“1Ðo.RCŸó~PF±½6ë˜íU~- °t̯EÇÁv·KgÅFY_\´4 MŽBGó#Ia…s¸•.áéGÌÈ­]v°`S&7´1CÝŠÍÈJl3²»Xw>8¼ì`Ö\ô¶éØÍ¹(‘…Ã6ãàp]ÂÓ‰X‰cTIéÞ{9¥›ùp8ÔkÓQI¬”a§Þ0?.. ;G½æKK%O #]BÎê¡\‡°­ÆÑ çp+MÂ?bC‰[uغpPZã²ëoìpHn.ô0™-’᩼ Ž¥ƒ%œraÃdKÀB};tý´­pްÛ$<ýˆ-ÎÉ&¥šoAAD»–L¦c¸“í˜Ü”R縹߾‹;–["e5w^MÂjýf;t³é-ÇÏnŸz`^q‰«Í5“jM^åæG˶˜¹8ÕZ4 ËÓL îuŽõ5Ü÷!Á±t°„QØv[ñ9²…úKaëPz:8ÜDõ ¬ñh:Tyìý ¬&H‘Ù‰[Áè@†›o†¬ ²-èÞåð÷šìåW?u”Â3a^¾\Ümpù‚_?mœÁ ´âO"p `ƒ KÕ·‚ACÕ8Öì$9,fc ¸.hK……€Rï¡&Î$ ¼¨o‚¶‹ülzé.Øð0‹Ö9½y?(C)øÀ±RÛ&g8ŒºN-ðWí«vptFÃm Ž¥Ã6½HÑ¡à-¡ņ¸akfh…s¸•.áé‡íEkÙ½øÐ…S°‹0µÀ®Ž½¦}âÞÛ^4öƒ£s¼%8–Û‹%ójHÀÊÔ}è¶½hZáa·IxúßþìÓ?|šézY¯NÃ`ÅúújfrÆŒï_:ÑŸFW$žÒ¼ÊØpÁA6£|‡êû® ÀÅÒÅ…µì4m.§œ\ØlAÖærÊÉu—èàrÊÁ•Óz»ëi¼N›ç‡‡N9¹>x}ÔÃÁõßË:‘±Üû¶žÁ$i'Òj?nTTÁÈ$)íÄõùKiÖñùKEÀm« 4LŒ_SüRÇþËXcýò3•üÏ¥Íø™/Q_`þø%þwߢr½ )ÄzÌ·hUËz÷q6¿¬ÆrùôúŸ¿ûæÇ¿ýúÍw/úŸÿ'$úø*ùr½-J_’¾àûªy¦ùå7?}óòã¯~ú£—¿ýë¿û/÷Ç¥×4íê«DœíµZjpþÅ×ï—É¿üöÇŸ¾ùÍ×_+jK¡PQg«åÿã‡U{ا¼îןþöû_ÿ›e]ºü³?8 ÉìœùƒQ²+ÜùãÛ•5Àϳ_loòû~Ò•á~ˆöO•_ôkcª•/ 5Ž%·±F®…•ØX½_Vr×T_Ö©•¤ŸRgÍ7ZõºZÁzצŸ(AN«2_¾D?®öž?Q N7Œ5Èü‚öe\öSŒ/¨ä‚‹2~¿J®u0"¬·l›Œ›²æcË……9˜è”Xb+"™¹•Yl—±bC…Ã縹ä³%8ζ¸)Ëô{¼l ‰ëœ[G²]Æm…s¸•.áéºLjiYC®mJg–ŠÑЮl^(á0‰¡¥³­yÉìûç5¸æQرij€Qt:| X3Ý5‚(`úí÷0ÏÊp€Nµz+ hín,\”³Š,F ¬Áâ€Ý=+DIj‡Ö®ƒcuó£'ÅÙl FxðÄ%tΑ¶a”p+œÃ­t O?ä¢)¨É Œ à ¯« ¢+±ŒIò²»+õ㥵_Œ—ÙJÿKJ%ÁžÐuh;tt?ÖV8GX-O'ä–k籺Μé˜S£ÛV}r±cÕÆ ™çq¨ïb(–~SxÎ.èX¢Én”Æ3»x˦néÂ|¸¦Ü9Ü8—ð4_.%ÅåÔkè”jR²®¸Ë K‹…8CïêF°RÕÂ&\‚cé` £d†o 8ÇÛÂü$Í çp+]ÂÓù–µzƒ%à¤÷Ð)™Ñ}->ÖtòN²#¤¡<õ³,YKp,ü^Œr1w«8 È—ºh[IøhƒcpM!škùYN65Ñ$NÄí‡|Á³A´ßÝb/þô@^]j›ú=µ”±ª4³G¹˜Cf$FŠU<ì»öà`@ƒr0l*ø^9…‡D\@ŸŒ< †QÀlްÚ<½ gc)i~¢®9(™õ¶0÷ˆ]¡êpi‹¾ñ;¶™òQÜq²Í–MY <o¸¸]³5\¶¡³Mp7Ñ%ÚŸJÕX²1d>mJåy˜R5ºd¶¸ZÖèÒñ×UB#ÜÍÁð`PÈ/Bfƒ¼‹gö[A¶>d›àn¢Kx:!ÇV3R¸SX·)«kÌ’ø.-Ì3Á°×ÆÐ»Ú2FH:Çú‚ç<$8–”pÊ*¹f,[BâAÉ­C%Ü çp+]ÂÓù¶F<ÈC‚Á'nJâ{T¾RXc ¯ùªS¢ṙP°¥¸9ð©KK8åz‰â8#¸–¡À0šLŽ0úzùè½*7%¥«q8ñÄ«c»KÆ7¬M:°i˜ÏŠÝÊæÀVì8$NÊ)³)[ó[Bz]‡0J¸Æ!­øi¾žR*?‹ÖÍ6åæÙ€‚ðìË‚»^'tëŒ ßë4öïµiyÄ‹;ž»Î‚Ö+½lƒ§`¶aV‚™àn¢Kx:a¯_ÒÖë’^ôi9î¤×Í駪·c¤Àöúq»Ö9:ç’[‚cé°×O”„¹å–€Ç8tÛH+œ#ì6 O?¬Ùè:-{«14دŒ&“ï„¿Sï 3^³BUaÁÂã`¸Ýj ΡÏ0{}3 /fƒ!‚Ã-v ‡Öĸ۰Âyò¦tˆìLßÙ²€¡ò[ÒÁ{a(mWΔØ|'vˆ7ƒa Sk·œ€ÆÑyKp<,;ç¦à ;ûy“ÐyÌiëè–3£`yz¼l «•H÷¡CØžÙ]·Ò%<ý°æ>Y`RØÙAÁGÉ—žÙUr“T•'ÌÏ&ëŒs Æ8m“BÃ6eìØåš ü †9îÁá6º„§6ú0©ŠÖ{?(hŸ4eDâ¼Õ¼æ®ˆEaë›F?8SàÞ‹-Ü”Õ+Œú²ô¤ØUôä]´án£Kxz¡¶Q |âuùÈ6)hwÒgiX‰)…9}~µN½o†ªœCQ~ãôvG—Ëq~Uoç¶;o ‚leÿîZù§z\ó6ö—ÚE# ƒ+_£[Ìê$ô  …ùaWåãqŽviÈïK?£¬ÇVÙX˜„õØr9tóÕ5+œÃŒt'Ì/nRjn8å˜S¦MÞØ$,»™¸0ï[l£Ú;ÔCBàK‰Ü7¥rö¾%`9áPAÈ×l°ßÝD/þtÂZ¥éJ³÷~P0ÈV÷™Y9̳ÇÏœCÏ»G­å>8Š&$.À¡göÛmOlkÉ9›«¶Qp·Ñ%<½ˆöžÝRSl§pR)q ÍÌ K'”Ñu÷‚akí5*6|½ý`ØTxkϦ÷g¼„pœ[‡a>bYfµ x8³f&¾MË7›2‹Íšo%¾™<~ÉÞTCí[ÑtËŽª¸ç— ¾M‚cé gFaKãÅ{Ò¤Ôó]7œÃMdñ§>kÖLÉ‹Mœ2mBÀ;¸Ãy®n%plsgÎì#Û!L—øRžŠMÉÞ˜„5]¼Ú¡CØæÎ´Â8ÂJ“ðÁxbˆÐE×zub¤è0&§x#ËÒYU¡ec!1¼s n{o Ž¥Ãž):ι%$æ¶Ú:„m¢9òÁáVº„§Ö?e±_£•¬‘‡SÐ,³ï»u¡ ¼ªó˜íAŸ{sàäÊ!À 4ÐNŠõ{^­ú!Ÿ‡`¿»}^üéA,'f[§¹²/'fûr»5ÅM³Õ©‘£F¸ãmúZbïû÷μ޻´cÉg£(=Р´R[ƒ'ž œÁ tOìa]¡Ä¦-NE“Ž4¬é¸Ô'åjMÇåÓä[)G™ÖT˜ÇÒÁFiS“—вÍ®Cøë§m…s¸•.áé‡}d¦å¾b1Ñ)Sk@AT 7µT˜9_½j¬%Þê ì÷ÁL®»|àË§àæ¤öâ¸EVBAkì{=ÜB/ÿôÁF;_p͘C·™ 59ÉrwhÍ©±cÖgµS Æ‘}±¶Ù¢¢ákÆ$Ú)—5¶ÕŽ%T›DK‡a›Ds•Ê8¶Ý—­+>üˆg¦•­éÓ§”®ÉO³o[q¯ì@ïØZ«ÇhÖ”šÇÒaOMfØÝ0a9TÚS£ ö{mÅŸNبjpvÊd\Z«rJNÖ&¦åàØúâ°*1«a¤rtíHÞ|§êÃZ§\]­ŒK¸.M\Çe {·ÎáVº„§±lš-¿­Ãå¶~cðåᨅ^³#bÍ×áÖ—ÑÛÁѧæŠ.!pŠu8£ u„}[ÝÖþ´g:úˆu8³Â9ÜJ—ðô#žÓ¬Ü ÓyßÔȰޢp'„¡?üPîm^ÌZvŽR£NÇÜØtXÿ'J²IÒ´ÄÀÍÆ-ÒaØž[iGØmž~È7ÄÂ5o¶*ì”e©ž-^˜A<AÐŽ4ý) Î7ǬJà_ÕŸ‚Q0ç/\1™–` ÙZ: Û»ÁHkç0+CÂÓçößj\Ú|lÿ¥nOÛwŽ˜^ö±;ç óºä$8l{Ï”†cûïâ¶_ǵsËôÍ¿¾‹­øÓƒ˜LwÚ\Ñí½dILú¹ŒS¸©Í©n­m:}ßGãrû–àX:ØÜ%ñ™-—ñÍC‡°µT³n¥Kxúa¾©­jÓN¨mŠn¨â&Oíª¡d›@ž¾3©©=êÍæ.Áñ´Óc›2¦¦ª&¡)•yè0l;¡µn¥Kxúa­HÖWÒ§’n G/º¨¡!$†“„¹üª§ÌœÎu‰J;p«þnk(/{ñV550ù‚œÃ˜Îöš€§ýÑUsTÃÙ»jR”Þ-ð W ‡µÎŽ|.Ò÷Ïkü£ÕŠ:–pc¯âÓ~=ÙöÙ¨À Ÿl;~5Ó¢ôÓx[~Ób$n;ºªÖߌ²Õ5Jãº?Ç@wÒί-O¶Šìíà°%O—X:l$& —`¶„nA®£[^Ïm…ql»%áƒ6ÎOqd4Ù8_”¡KL8¾yˆ”oø·ØVMÓÁPnOw†M…­š’2§­È[†¤¬%Ó`ØFùh9‡[íž^˜gS™†¯æ{¶N‰¹* §Ïªf\æþzv Æáa.Á±t±pm𲵇ö­¸ã0+÷âøÃXÄÇK:‹O`Œp'Í?®¡¯ä¶ÒTµAwd› ;GžÚâs Ž¥Â+¤Œ®ˆKè·f(®£ß>‡q+œÃŒt'ì™ÝŠÔ¿›òö iW?Þë¶¹lAÇáØ¦üœo8GíÚóv †M‡u¤¬ïC{ù’ÐtýUè0la2­n·Kxúa¾ÙR·ÃÈ›2šæÙ–&s±S©Äì02çÇù`¨–‹Ì8îvNø \š˜€ÆƒÆ[C³£ÈÛç«MÀÓ‹èĘ/°ò¾•÷“2T?¾èŠ + iÝ¡}„ÚïEq)Q<ðåû†N) cß²­òºá¯ç굯›‰.áé„M¨Ç7;¢*(õ²ÚGDUz„S¥©¶ÒÎU7ÀzqÇ;œÊ)¹Ù²¢Iˆpªôˆ¥rýösØgÅ?x`£{Elaj3§àæ8ކ¦ÖkR3×›Fe5ùÌéÆÁ1n $\‚ã<}æ”Kó—|‰Åt¤Xcq+œ#ì6 O?b%_·½Ý¾ùâ”Á­¶»R¸µÒ-õ»°ÍµeÃÒÇ»ÇýöÍ— $ힸè*Z³1ŽÛ`¿‡ÑVüéDL7»Müòðé¦(ÓF<šÍ´1—Mák l£¿+¥iÓÂ%NÊœ¼)“ÃòÀKeçÖaئ›³n¥Kxú‹ÞNáï}‰Ÿ-z·|ptÞD úœ›ÀTw»x=¥{÷`ʵcè¶ZÁ§íö¬lЬ”ï'åÖ^MÒ]’»å×e“†Ï‘ºs›”º„À»o0Š·Ü.AI#¶Žƒ[á1Ø7 O?b2Öìc>SWˆ³œ ›´×¹†­·óàhÅ.`”‡T`‹—Á¬üzdw:4ÛDŒ68GØl>¨¥W*®hy1(k¨—WʼníÔŠ¥’;8æØ»Ú´eÚªç¥!®,lº/«&Ÿ XÑŸÏu†ERÚÏf_z`–õþHÝn‹¦FÁáMÎñ/kÙo‹DžÚæ‡Ò4!rŽ‘4Çw Ž¥ƒ­¡QòÔv Ù×L‡°mË÷~p¸•.á釽ˆ·†u™þ~Pt_:÷ŽùHj¶½Î¢¡°­_p©Ú9“Á…ƒÙr.g½8Öù„¶yúþ=,¶âOb(¥HºÛ·]œÒ,Lô²-ª^´©’ºž»° !Ê88ÖX‰/«Kp,6šÅÂD]‚n3ß:„m4E+œ#ì6 O?+ÝM™Ž•n|˜E¤bÍú°U«Ð†½ Gñ5“àX:Ž•nôµóe ¨·è˜ a_èN‡iž^<"ï±É”Óy߆…‚[Ì{·EsO‹»#š[qóÁaqõ!Á±tX3GŠN!n -[4·é¦kf…s¸•.áéGøÆD_x²îZ·!;l½5}¬‰iÒ jçüøµ(Íz”œ<0%G3mÌã ¶å(Ñ‚æÐ¬ƒÛf…¶[³Ñm®G³a”»hô…HŸ­v› öÀÇx 8p1t=8– Û"eXd~ gxSzè0lK*ù`pÇí?¼ˆ5¦‘5¦¡ÿÝ÷‹;Ê­E²- a[˜÷ÁaßJHpœ›9œ’l­"ï\‡½:Rò1Gl‡™vœ_;4üy] n5Lgj”ŠPå;­ï}` Ê‘ô¤Ì«>¨åàZ  t·B§œ\O#¶UX’äxBr…IV˜IVÖß 7d·öšõ÷ú>Úk92|ìd ž Å)Wº_V¿Ë…„}ŒÞyT¢$.æm'—S\H ¬>ϹŒòà2+®Ã®k–dߌƒÆ™„¼k —ÞÜ7RÍtl¢6ÖòÙå×Ô~®¾þ…Œ(åJÌ‚òÌŠ’þ²¢ ³¬‘ä‘å/_ÿüû¿þœ«~Ï×ßþø³£ÀèßM‚5c$ðøWfGëÛûWfGA®®Äk•¿ì(PâŽÂl£g‚%§œÙQBÅlÖl¶«3ØÇ)¿ç·ˆ&žv~Ó‹õʬ$XCæA™ùÈ‚ø‚{}_·t#Ëï¦Aùyó‘Ln ®5â9s»àž)dà­öäþäÛ_ÿöózr­ <¼~õù òþ_í^öý2a÷¯yJžÏ_À;Óìóõ›ïŒ7×o~sù%è8f<_XoìþáÔô#DݳŽ×Ÿ\Ì*¸ÿö›_Kfª#߯ßÿø´“±¦×¿?8¿ûÞ$Ü÷xý›ã‡ï0CæRò·Ç¿:ÜÐ÷ƒ„–»Æ2¶ ¯¹j U¾>å zV+üéNbúˇíë;ÛUóßžºísEöî- ©ÒðþHŸiËãÁƒÓÿȼhêþøó\Rq­÷([ðá©ãtÀeü¯o&÷Šmž/heÆrôKÁ-¿h ûÏÿÇÕd,ü—׿_µûW¯úõ›ÿí·ý«ÖŸ«6Þþé?Ãýúw\þê3ájð®üúãoÿúÿÃ/Y1_Ñâ8;Ê£@‡€ÿðWŸõ%”5 ‚ÿõÓ/þ‡f|óÃ_­&ïãäû¿3-eD¶—k¦¥ÔyBf I¦3Â}ad¹àÄ\aÁÁ„§–Îñ×U`ò¾™Í1y[a0(ä7ÂÔݲ^~΋‹ºÃ(a6‡Ûì>0`š¼ê‰E”\yStrºy= !wrºaä ‘¥ºlŽŒi[@@Oè„Q”Ù‹+KáV™ÃçpMÂ'”šòâÍ¿ë=Ív“ñ¦èf’¬× ¯÷L·° ³Ìa(2òƒG;m[9£*Q¼ïëo¬ 3Á9ÜD—ðtBŽenÝ®2E#ªM\d^fTÌÝ2rÇÁêÊýfƒÐª³Añ;N„¥ J<Ø %Ñ]ºòDâ_í„âÖïnŸKxz ¯*WB2.^ºè×)UWBà’œD©ºwꌙ”• Ê›c0¦kKp,,a”Ì=’-&CAV²\ן­hœ|šo÷.1H©gHÌûAiYW`Z’YFí;fNZÆ×oŽûV‹ãÅW;¾)…gµ·„Â-Ý­£Ø‰m3Ávû¼øÓ»™©^òªB;6%ëBeÁ:oÌçÊ+` ~UÞÛ«ïß×Àß®—,ù–—–”˯c6—Ýjä.¿÷È-0†0ðò™.D~Þf­\ü¼jÐíÊÈÌVëF6 KÏ‹Îİåç½ûÁ#yå`ØTØí#jÁ‡¥ÿ–´cL»m: []̃Á­vO/ì‚No…’gÀЧ‰å:îjšò[#¦«æu“¾;Ãcþ{žÿ àÀ óãJ¨ÔCƒ°Ump·Ñ<½°dó<žouoï\•aˆÃBʾ:ƒÛøŽ¿êzûq0èF®-À±T|ý´)cêú ÈHÃÛG¤Á±UE«‡Ûèž^ØY‰Kc¸Ê°ëRÕ ðnÄñ`7ùÂ* žÀê¡®™^1OÁ€¬!Zù “’‡lŠŽWZùUkþ®À1+‚&l·Ð|ðÁ.ZâFÎzM§_„ë”ÎttŠÂó¦>ìulwûµƒÁ ÃK;hÓoÀ ×£tå×±ÅWÿ Ãç{MÀÓ~»ª/T³å ƒ}èvݺZ¨ÂûpÊd0¶ ]nXîý;öqw,é_?”¤Ø]@m8:º5³Ìç¹Vü°]Î æ¥ÌYÝ#ÜÜ9L܉+À“ãÜÉtÈ<ÏÜ/Œß×8[¦Qܱäë Qw&¶œ™>5³ Ìç0 ]Àûkj¼™ì› ܼP‚'åÙª2Ã9¯§jÛX©wç7'KÖ\ÿq¿l y±¶a«‰{f¤ x8a—Í©é©q·—.´aÛÅqëˬ30/pÉÖLûÕr¼É0$®~µWPŠ]-çŠÆX¡£ÄÕ^n…q¸‘Åož;°;o9¾ÉHG¥¡{P0’Yk@´ Ô‰iüf`˜Y¸¿9*êC€CiøúiS:#Ÿ·€Îøî­¢[ø6Â9ÜF—ðôBž­á!ÚLž]Óm¾Néjq`Çj²r—Ý<1Àt ½{©›£ç£8¤ýd»X/»N®ÍC²°Õu;‡ÛfžÆË¡ÆPª¾4âÂűQ@¨.>NWa˜5A‚ÁMtäVV;4SVÔצd=LØcGí!ÃúR°m=S`(­EM¶sൿŽ¥‚%Œ‚Ã%x¢&aܜڸ AVMðŸÝ@/ýtAnUk†.Fò¼”ı„m£¤w·€àãCi×fCp¬¤Þ‡ÇRAa`SH@*ä{«¿LðŸÃd+ýtAnu%ÌH‡Yô:åÖȤã“FTŸ÷êfWËà*'“ md,GqÇR€NLd´%àHÑ}èf5äãg·Ï‹?=WÈÏö³Û5¢Ai¼×F¬gf(í2ùk ¼”¢–®vp(—AH,(ᔈÃ-¡èšÇÐ!lUA+Œ#¬4 ü oÊ64OK4”¨MÚ1ðÖ`=–fž:s K O¦mŽ2ô»ÇÒÁN¹Ð…€ÄüØ[…°UpŽ0[ž^ȳbÍÙmÉ:Š.ƒ˜›r³w`ݸi¹QjqRè`hŒ‘Ü[*M™<çê0V8Z=ôºw½ôÓ¹ÕÔ1rS­M1“0+Ep!fR£3šÆ1t"7ØÁ°æ¹wöÒ’Mµ‚‚ÀÁÕyéÊWi‹¶hõàpë\ÀÓ~ù[ÖónºÜì}Sx {°„énîºÞ,aü‡ikÕÆÍÛê‚c^YÃ"“à¸Å•jAÁqS|’&¡Í²´©J3ýúÍÍõ‚OóåÒš=£JÝVÓœ ý ^ÑlM$kY0qáÇ ŒK¼i,~Ïî⎓w­A¹¸Œ»\ÌI¸5\–µp›`n¡ xz@§f‚@¼«l§6fVs5‘@nUÊ, ºw }• ^6Ge ÿ–àX XÂ(J ²%èpèÖÑíØí¶Â9h¢?Ì—?KLdý\É ò'PãРs0ÁFš8,7C#Ž÷σ£O}³.Á±t°„SÛ²P™$uëf=˜Îv›„§ò­3}NÆ]ôÁåæ)~Úqc¢s1D0¡fÚÆÐ;«ÏŒc=9~».Á±t „Só„&î›[‡a«{n¥Kxú!ßfÕÀ“{âôÍ)eèmG(-|ÁÈ OeµØuã¥÷¾ºZjã¸qÿTÛKJ%ÑÒ8Ü:„­6æ88ÂnIøà}ƒTN/+N¿„¦ù(ÌöB5˜L¯#0 UÈÜæ@È\;$8®:•¼ ‡™wùÂÃÌ[ƒ°Ump·Ñ<|[ˆ÷-šdv¾ŽAéêˆ`Dç«ÃŽ!aw»M†¡qÊùàhý(Nм2¨ï¢`åi‹¶ rçsMÂÓ|¹Ô.µŸƒ‹Gïý÷ M{ÎÉÅY$OÉ!´b&íß׌wÞGqÇÃ׫‚Òu­nè\=Úº¯W… Îá&º„§rL«°™'~ô¬œRÙe$¬qûÄú6¯jožüÛ÷­¯Ø8– –0 †ppÞ%d†œo¬ á n£ xz!ÏnkÐdÖûAiìí¸_€Æ[]ãu M’…¿~ÊõRón¸\ñÞåzM&ÙdÖVáf† "6SÀGà׺›"žÝ”Ì+.—™SÔÌ‹¥¼9.ÍvÏt¾Ö—Ë)®3¬ÕæQÞq²«¬7åšœ—„„KûÆ®â²sÒa‚ÿîzù§ò«p"O¤¼ëôË)k‰Žäª\F]˜{÷+ཆÚƵÜÍѹs²%8–”pŠRm Š_Þ:„Yf…s¸•.áé‡|k¼àWvUùJÀŽ›ß¿Â °›ÀoYzÌÚ¤M.‡„À—戛Òx«ú–€óÐ!lµA+œÃ­t O?äÏrhW”fSnÞ@;Ø’áfXŠã´5ðÒ›.¦C Žtq´KK+³óeKÀœíÐ!lµ1ïƒÃ­4 ü oʹ&¯þÙIW’ÌB4ÏÐ=¤9¥¡EHa˜™«FkÎQ’Fw.Á1×…7\6a¾ÅÇEoC°ÕMp7Ñ%È%l&¢ÿGRä›^9‹2© \0H…ÄŽ¡³vMУ•øšó¥‚Â\í!€‹i«0lÑËÁV›„§ò¬­$ôá÷g:e¨Ç‡; Cã2è´1ôâÈç}p`C'KJ8sá—- 1ÉûV!l•ÑÊÁáFš€§òŒy¶ó}5̂һ.ÔˆÝ é\sRoƒPys,~Wð]ܱ䳀(ñ=š€øMƒaVƒµ£Î! CÀÃ9…ksXÕUonÊ1>Y˜±\‚A¼š^Nk /­Yˬ›#ñLH,,a”1¾í†t‡aÖ…Yaa¥Iøà}ƒT¶£~³Ö¦èb¬Œ82¶_º8+çÜÕ²úÕZ9+Éáæ¨—Zk—àØï½ÚÝŒµ%èæ¬­ÃïÖÚV8‡[éž~È·¢6‰Wá± ÖY!¥2 -ó2=HÁ½gCoã%5›cÉÂçKJ8¥1cû–Py‚mëfm˜ÎáVº„§ò­YËÖ†½“AÁ8Á,½»Þ¾qº Ë1ô*ßÕæÐ’Ç–à¸ 'ƒr1’0$ØH#t[mÐ ç»MÂÓù¶¤*ÄëÖfS.9˲ÉbœZÊùΊÉ"\ZËÅõlÿ½àj­¶‹–pJ¢à˜-gk¶ª˜ýà£%áƒt R›m€gL£7¥3ë"í èaî\RUȦ0,ÅÄ"™«¾[‚cé` §$¾x!I:· B« Ú`¿‡ÑVüé„S~u.s½)«=ÎfÞ1,gâë@ðYN¡¶Û¿2ŽÊýÓ-Áñ´E®MÁ-°Ì%t.8mÝ ¶ÎáVº„§ò­VµªÚGx?)·,mj͘ìR”GÂ1ôö¦}2çI£%—8¹¥NQ>ó-A{ [‡ï-l+œÃ­t O?ä›îÌLàDל0ù‡3ÞÅzô¢e^ r©ôŸo^¥R:ø€œÌõe—oLàlâX¦Ývã¼øÃz94Õ a]ŸÑ7›ÒˆSï™›bƒ/n¸´"*K»dÆÀ2[@`©@ §T÷Ù ¯- Åî5Ü6CØh>xAÏx 1k¼Ç£ƒ2¹“‹³Ä†9Ü32ëÌ€°³èDB0”¡¹² l;›²žÆ!¡ñ[C×ÆÑ¶À~v½ôÓ¹UÔ\r“^·mfĘ]ÜA)RÕÞ†ÖUKÜ•qŽÆwK|ñBâ€Í`yòBEäÍ #‚ÃŒ /䘮1ѹ¬‚rëuü^j‘´±ÕÀPË«®ŽÉóÿ[‚cé@‰ p7#$`*Ža“ë0l•Á²s„Ý&áé‡|MK õÒnßA™ì•`÷uO¬fœëÒò†%kÍu V¯º9pi*k—°±%„Ý›zÙÖXmj¨¶Ê ÎáFš€§òLWfÜPõ>:¥êô$¬\sM|×[JÚé†IKpèš¹-Á±t „S°8…Ñ% 9e9t[]ŒMÙVš„~Ð7\¬[­›âá›Mé… °ƒê®Hð¦;(Co½liº‡bKpÜ솰M©Zü •©‚·a«^·Ò%<ýoºì‘7[Ç ÜÌÓM;šEyà}Æàš{@ÂÐÛ5É ì¥C‚cé` £ æÛp°ãPAhuÑòþÝMôâO'äX/jR3oKz?(%i^ÑÕša—£j¢Âý3B(Elêܿ߼‡cw,(à,}¢\Ò-ž„Yf‚s¸‰.áé„›M“ÑÖmu'(Ñð™wð±ûÐFNõrßJxéEàVÝ”ŒÜ7ÞIB`é@ §T†Ão ¸ö!:„Yf…s¸•&áƒô R%}ÚC JêZ?JjË…ÅÝ‚Kñ=„°3Oyd¿¯1?g/îø²›»Šæ’.€)} †Y2!8Âh“ðtBŽå©Uä½”ÌTÿÜ׸,¬nÍ"Ðm|…Í«œަñ~Hp,,a\Ÿ/!k)³m†Y²"8ÜJ—ðôC¾-©œ^ÝfAIE›ÁMfÞcQ°- ´®qŽÆäú}ÍøiÅ_QFa>´ôÐâôº5¶ª¸ûÁa&†„§rlx»v)áûAzôCÕ4.ÞÇÀ]mî]v?÷ÖÙŠV7ù°LÂÆ—õïA™®Kº-÷ºÃV|XÎáVº„§òí®jQ¯*{?)wD ¾¼ìŒ;% MM¸3 0ò>NÊE´)«¾m÷éæ—4ÔpJ…A«‹Ñ6CØh>xAÏÐvªMÍÖ>%]Ú4Ó+0”P #\-„Vlï¿W·V|/K”n‡o¬;‚n }J7Šª±ßẰ…„Sרt3áÁ„Ý"e0&#œLËúV7áKi]¦óáÁÔ˜éâ`2ƒÉüÝLGü[S¥ OšëkP½Sæ‘鯉"ÌkÞÔ²ÿ¬û϶ÿì?÷àþ¹Ô?ó1ùGôoI/ôϼzHçÈ\RÌWï™èíŸ ˆyh°+„Œm܉d‚ÿý7¿üÕçÕU]WͯÿD§¢êižÐÑÞ˜OJþÝtB;Í–ÂÃ_4ÝH¼¾Ì©{³œòû~™8¶”Ç’¦2UŽ%åù‚0{½VÈ~¾†õJÊc‰”ʨ«YÄj î&[Ïú,>Uöœ×£Ä•Lk¾A[-[Ï7ß1EÔi‚çFú½ê»”>t7Ê,v¯QPnŠ NK3¹ÝÍ% Oºæ OW§Âl’ÎqW¥ùs ާ_×,&ñR“€)q=t3©ªYán¥KxúaB0Ö§4ìvZÂ8£è:²R4)-»?•iÕ[êÂ^ŽÄ»èBB`éøúé $K2/ uéâ ;¦Ã0kÃ’.Ƕ[>øBà”<2'Û‘NÁâ%S’3:¨ ù}±KÙî-‡c½LN‡Ç}ø‘NižýÒ$´b MG+~m¤[án¥Kxúawÿèò4Ωí^x§L»ž%…x%K6¼ñ¾âkst]ZS‡_ðßp=‡å‡„\À‹äíR7w¾CïÍ„DÁ³Êø®]B`éX%‚¢[á·„õ¤yK˜ëfm˜ÎáVº„§òífÜOÁ2ëÔ­ºN)tÓ|­MW‰œ-®#0,Í @Þ¹ë»v Ž¥ƒ%Œ’tâ>$àDw?t[mÐ ã+MÂ?褪…oZ ̯)ËfR Tè#OÔ9†^D´Žƒ£N}×.Á°é` £L%…u Ømë0lµÁoÙ9Ün—ðôC¾Õ¬¾##}s 3+Ñ /pb™U‰Ñê µ]©}ƒc\úÌM€Ci@ èò¢ ÜJ[…°ÕpްÚ$<½gÝÚ'¦¤gN ¹·½¥ÞkèzgS{î·®“ Ž¥%œ’5µ%äô–„V´Á~w½øÓ 96Õ8ñ@‚YPìå½,Tx&a ½ø²^j¹‹™ŽÄk!ac Û”¬¬BBâSI º¶ ú=L´âœ cè{Ц2v“¹Qƒ2¹@ÈÞJ3]Ëxø€°2s°ìÊÛàX*PÂ)Þè/[‚v]B… +Âlp·Ñ<½g…{Ô¦¨åßµ;È –l Ç2ú]D„Ú¦Ër‚¡q} lIF6¥(ÙHH@Öå¶U²*Ìgp]ÀÓ y¦,,;Ûʦ(_JÁeïøF•N¥ðÐñζ²Æ¥H¿Þ² ;öT(›¢\)Q^™TBüص`êÁÍóòOäÔPÈO+ÃšŽ T E»Ò›çÖ4]pܸm ½7‰Á£ÚŽ“„ÀÅr+æqÚ2ƒÜ¶Ž\ý›t+œ#ì6 O?äÛ­Ÿ†# ì¨ƒÒø)Ò ª Âþ[Ý–ê*ðÍ‘y ΖàX:PÂ)¸“ ¾l ëkýÐ!lµ17e[i>øAß µ>³ èªkÚÁÝßj_9BO6†ÞÂAÏæÀ‚È8$8.>= Jf,Ö€–£:„­6Æ}p¸•.áé‡|+ÚŸfö_~hNÁ8Ø 1Øt ¸uçÐe‡ñ{WØb7l XÀ(sªá0-£qu †­*Bbn´Kx:!Ǻ–CZ*v%PP2ñÒŽÆ@Ý@¸:졆ޥkÓÁ1µ…KKåâÕÈ!¡Þ|C‡a« Xn¥Kxú!ߦÅÅ•b›Âòg¯ÝteÎI`í¸ù•b8ŽßƒPx²9íâû•bA)ʲì°ÐWŠ… Îá&š„N|UyEÁùjYä’x oÙ¡îÆdmG´ïâvb£vîßq¼9Å_ž¤ß)Õ.tõV ~×`˜U!‚ÃL O'äXVüšùå„Õ9b29YÂ0 †ŸžGÞjë´–Þ8pÆ9S 9K¶dBχ aÖ…áaµIxx!ÇY@g§bY6%1Æ  Sx¢¼‚§ð4r µ8d3œp>”ò ¢8æyËd=Èÿ=,¶âOäÕ¸,š‡±ïEã¶9†…GM(ØÍÀЊ+TÇÁ‘HÛJ åâéú-àâÅÎ[…0ëÁŒp·Ñ%<½g·ö¥Ñw3½Ì¦Ôj,kš–ˆp¹öÀK/’ƒ^ãà@AÛKJ8ÅzÝyrë¶ÚPS+ްÒ$|ðƒ¾Aª7èºv!(¸æfÈ2‹]¢ÝL-lfž-ŒßkÖ‡ì¥K> E'‡DQÔCƒ°ÕÄ<ÂdðtAnkÒéDn9¥òà6Íè6(„P„œt‡PÚ†oû½W}Æ^ܱ @P´ð²fk¡AØj‚&8GmžNȱfa?èKè—&@v5‹0ÄlÇ‘S ­k¤ªæÝ8f³î@^vç”,3Êc± K®Á°ÕDk‡™>È­iÍÙÅ/ÿý $FÔÄ®Öà*9œG¾6þú©^Wж{Q*Ž8Ï6¾¬½9(l BBUøvè0ÌÊè6j2ް[ÍÉ?àÛ’Ê­ù…0ûêAá•E +Lk*«y­/ÍvCñE¿ë"¾]>°üÙ^[å3Ïà„ülGr¶ÎàZñ§ò*×ÝšgzåÜà5W©¢!”"6ÞOW¤=~^ßYGiÇ’þ \;‰ò‰‡·üdÇ”·Î&›€§ r«Z¨*°Ó-§ É*£Yûµf!RºC/6x†ÁŸ-À±T @P2Þ·ײ5³*Ìç«MÀÓ yÖ­=°NÌ)™ùðiÆm£O@„œÜ¡uÞÖrë÷56(ã(îX PÀ)#¯BÆí©l †­&îyp¸‰.áé„› ÷ÁRuÖçeì‚tÙ5m\¿šŸŠsÈuã¥;¹lº# ›4KB`©` § ˆh Èlcø)C5‚M‡¬§}Cê´ª! ½÷´¡¥8xÂy h÷â!1âk¿˜(t¿"H‚óçÊõÞšÕø8†¡j7[È-À¡­„!óPÅ.žºêÅ$[Þ&G˜h>8AÇr¶Féê:Œº)Ú@ÐEri½<‡œÏï;㮋qp`÷å`PÈO·îà˜¯8a±å ~ýøïf_z ¯4•g[YužS*C§+.Ïàä¹ñPBÅ äÞCm¯¶HjãÒ·ìKJ…ƒ• “,[…0+ÂŒpŽ0[ž^ȳ^Õ–úfÒA™ˆËXV$½c£áüqë¡svkàãÎñ³x`ÛèÙ”ÌþjKàNÑVa;If€ýèÆyÙ§ùriv˜­ lJcV Z` Úk¼\qöXçact\ùvõƒCƒ¹¸Z̦hÉvKÀvÒ¡‚Ð*᎟Ã@+ýÁº‰Í¾o†noJevnÚÀ€ðÆ âÜ1'µÂ°2ß¶d`¥Û°Ò$8–” î.{Ù2ãF¶Žl‘%Û ç»MÂÓùV¬-*LSù~Pqʲn–¢QŹãÜCoKoó`h:~K yóKH̆¹5[]Ðçp]ÀÓ yÖ¬-[½FAY†ÝU†51a\óÇ©†ÞQ4´4†¡{zB€c©`£,Ã|7ËîS¡UD«ûw7ÐK?][C×#ÙÙ³÷ƒ¢ãiwŠTžÚJo„C[U„PzóF&û‡™yÈJ®–"iS ®ƒ|‰ò¸®ªò…¡À p7Ð<][·îGÚà `ü »¬í²á-es—*Àèj§]Þa ƒ’™¨8Ê[ß ¢w Œ#,4| _¼CÙ–…å±)%Im¶³º£¦òòù;0ôeK ŽÚì;6 Ž¥%œ‚{óeK¸Ø†l¬Œ{Väp+]ÂÓùVxQ^ÞAÏ #‚"*‹²:ÐcàäqßJ{²¦Û8ú°¶Ú$8¦pBƇ´ ´8*„Yf„s¸Í&àtANuµE9é˜÷&0>ƒ&ܶԊ͹իrk¸cÞÖP›„ÀɦÁAI ÑØ.ÆAoÂV÷<8ÌHðpB~MkÊ8Æz?-ÀM›9h«X½«/¨B퉧˜¹Âi6NÖlÅžoHÐÆ[‡°ÕÄœ‡é/Èà ú™ÍÓ˜!bSzáç+Ø~éTkÅÃ.û -ì̺•)8Jчì7˳)•‰¶„ÊÄ[‡°ÕŇ[éž~È·<¬!å¹Á÷ƒRy†vt{Š˜z@ºöÈ|ºˆ¿8yv.{qI/¡bPvÁÌXé-ZØ*¡ƒÃs OóåRÕshW4D Š–ÅaDŒZ0äaãz±i“” JùE¸4͈âg!!ÿ²YJ`¿»}^üé¼ÉÖ,šÎÑnJÑŒ !yÕúÀŠšŸÍfË>ç@ØVÇÍ+{B€Á˜r8!q5sÇõ˜õP Ìj0œÃMt O'䨭;æ°ÔÂ$­›’9&©¸g¤ØÚ#xÌxã¥a[¾JŽ|ùl&ËL„‹7Ììâ3°n—¥hÝ&G˜h>8AÇzò¦ˆ[›ï¥t3Óõ3Ô¶vYp ;K·½1㨺²'8– ” ãR¶„÷öC‡0ëBF8CXmž^ȳ%tZ_ •ú dÆW„ŸÙ°õß.›Ìv-Ô#n+÷ý{¯öU[iÇ’NÑn~Àª.šO×`˜A ‚Á tOä–®±dû™ôÀ‚Â#ËŒ¦Î ý<·¡sꎦà˜Ý”V<°]¹)…'<¶„Ì[‡0k¢?»}^ü鼚—µßýMÏÊ ¸È@F)"ŒY]*N+Ý­øŠÓ¸×¦TVÎ%¤òÁV ¢<L¤Cƒ°Ump7Ñ$<} [<"l{ ÜBßl€ÙŸ!mWžjnah.o÷ÁPtkOpì»Û›‚S•ËN íñ­Á7з Îá6º€§ò,ëÒ$.{ð5ÜΪi†æË&!(-o ½µ½Íƒ¡eë L@`G%óøFH<ݱ5$;ÿ±mp·Ñ<½gÕ£X  êÖŽ•D¥¥¡w KÇÁ€í|p+AÉŒ6Ï ±68‡Ûèž^È3Ü hÛe™kˆ›bO÷òebâŠãךÓ6ëcªÕîƒãVbí8+ ä¦$ž…Ù®©Êp¬ ³Â9ÜJ—ðôC¾Ý¼=‰ãMzfm7Šà"A†`‡sØs^JªUïƒ}KL ,à¦ß0€Í‡ aÖ„aa³<\ S31ö‘)ËßÞÌh^l¦‰ª©×Z‰cˆÕ’ûà(º¶'$8––p r¢‡Ü©ˆ%Wa˜u #‚C«ôa¼¼)j‡1ó~`.WĘ]¶“ñ°~1C[kÖ¤G×…=!!°‚t6Á6^B€Bf¶ ¡ÙF8‡ÙèNäTkì¥h½MP¬m¸Ç‹ÇâU$¿nCçÖ¢Ç,öéšÇJwøÆmŠÅÛ*”í 6ëÎû÷<üKfiƒ—ÝÌî|yryiÌò±0èâ [=@¿s¸}.áƒô Z«…õ0¦í Lv 0CMnð­Aóv•Ï ‘Y óÔïõ>Ê \ö¡Ö›³ÿ(Wq«sÝ‚ [pèëfYHxÚ.t{…¬a‹”œM¯Ú+ ûù>µa ‘Sh+b²Ajã²ÅL“à8ù&qP.MÞC‚m€‡aU…¬p·Ò%<ýoÝ["_^Û”©w×®¼ÄâÂÏ´ZêËk¼éºw¶oØöåµ $óB‚-ž…ŽX^s#œÁmtO/äÙôÖì²iצ Nœp×H Ìî߸“²jß¿§jqF,}`»ìoS4.ß´½5d»ˆ/,°õê0Ðö\øƒS¬\NŽœ.‘Ì$¦LGŠ•ßå Ê‘ò$¢ç7—S®½årr}°â°ëK²RšÍø¿”d¥×e¥•G–•4Áó§8¥ 5õu[¥ýWºðõH³\ÈäÞN&Nž’îlgÚÉ).¼\Š .£<¸ÌÒƒë°ýßš aÞ¤¬v‡v^Óú»fÿg s@ÙÒk9þ®?[ÃÿB:”‚ÀI^pr¦ÑHÿ)Q hÎ}J”ò³QúïdDÁoÂÅ¿.#ʘ¡Ã 7 |_MR·ƒP¢ü¾ŸQÃ>Îä`ôö³QÖ+—–¢ QpMâêÅ®Ö~.#Ê¿Çãüù¬(çJ9Ó¢üåëŸÿן6<ïùúÛbv”xÿìŸUë³V»}­–ûÐÀ{Ý&¯JøŸ|ûëß~ÆYîUG×ýúï>)É9목?ZßßäÉY>ï]®6_¿ùN¼÷¼_¿ù …¬Î}¿þtç—×–í[ú©éÇŸŒëî«À¦ûͯ%+Õ‘ï×ïü Z Ž_Ôùú÷çw߇ˆûõo޾ÿÁéùõ§¿=~çÒë?}9E}óÃOæË=^¿ÿ+^Ëà?ýùzzGéYŽ‹/ÍúøðÖ||X‡kú~é<]_ß­ižíõGië¹÷<^²*H¯ÿøíg„$¦ÖÆÉžŒ[Q·.6k—éz5sòxð %Ð:‹åùm åÉí¯†ç2甥åó—Ìtîm±ý¬º|™˜¿ÿ9Çqfö¾º±¼ËúÐp€r ÁË—L¦ÕaÛñR¢¢¿|]ŸäZi¼‰ùõ¿~û›_}Ã'Œd¸u½zö¾­Jyý=¢ëZmýëo¿ùåߨëÓ^W»¥÷jÕX~ýú÷ïßþf½¶ iiùÕÞ¥Õ.‰ß|÷ÿRКF¤%õ,xJ9¾Âÿ™ _>endstream endobj 665 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 4876 >> stream xœXX纞eÙ™;ãRBœ5V,‰šÄÄŠ=b7¢¸¥iX:»ß.HWz“PV…Åv‘hbN4–ÄrR4¦˜£7јÄè7ø“{Î?€‰'É=Ï}.ÿîó,»3ù¾÷{ß÷cmÅ(ŠK—­ ñ4yüœ°à-òWϯ%›žäwz¨ ŸúYzÞ¾Ú·F«g1òߤ١as·Í Ÿá¹=jQtŒw¬ÏÒ¸·–íØòÆÖå¾~þ+W­ ^2yÊÔ_ž0Id˜aÌrƃÁ¬`\™•ÌHf3ŠYͬaÖ2c˜uÌzfó&3—Ïl`æ1Of>3‘qgܘÌ$f!³ˆ™Â,f–0/2K™—˜eÌ4æ F`†0jÆŽqb2¶Š¾ÌdzÆšIb*ÞP\³ZiuHé¤Ô)ÿa=ÇúÕLU©ê3ööS΋»Ïûó5}F÷1ÙŒ°‰µyÐú©úmïw­ÿäêéÇLøxмA88jð!Û!¶'7áæ)C~TS/W›ìÑ<àŸÊz,èf‘¼bív–qÉïRªß Ž OK‰#Æ®Ç);A–‘‘QÀÇiÙý¦÷¡já*Téy [!¬ 3L¦¬´sÀ öqSײ¦{Ð ðÔèyrÓÔd7‹}°E5 SE—®µ¶D˜mQ‰ ôB…½'ݳ³¸c1÷ÏIb5w™ÿ¬Ñ€V¬p—ÌLVi¹r`‹†|ä®åªLWàm:zöàŽœp™Ï;Ϊˆ|]$µ¼dÀ?­&ë˜Ô&é9³¢ûa!öSJµ¦F§‰?IdÚÔáÄŽØß“pÚ×? ­Húå«§ቚØö¹yþ«¬I¬øyõèŽ@ )YkAW³Ä[šlÒ˜fc?{aôFªQœp›8y¬ zK<Å ÷ÈìßâÙ•ûñ\ÍÕDµE¼<}üŽÔ~vÄuîú%Zmåñ`s8aȉCŇ><ëA44^ó(š¤{Ž@AzŸWvÁoÕMÆá@â!vÍÐ>êºç¢•f°¸Gã@ Ôçj }v­óßè¿iaà$àÉéŽa¿†­«ó)ÛD-'oEÓ{:û&E3M`6*”ÒWd­Úâ.Ý÷åÖN÷oßиˆÆGþ"F†?x šÛsOžÒ¯?žÌÆ jïW=â_²ü,:áÈ¿?ûéÑ—7уX}"—E«‹-¶ô,8£Ç´êZí…'k±JíÍF“|g’9t·nØz–ý>ßçuM+Ö{³³½ÇŠXŒn¬Ð‚ãÁ¼¸ˆn¿• ÅDU×/ôüw\´*vÀ?çuò"’ ÿ‡FÞ^p–^—8uûº·=_ p÷ÞMq¯d…Ëdúqž¢n@5ÍÓT\Ì £Í98ûˆ»u); Ž÷1﨩1—´ˆô(gÆË«ÔÉ/E÷Q¦´¢3æ(ÉCݽ§Û={bëLÈÂ!ÀUz qĺÓÜ÷¹›çôjNòæ±âj¬Ãá,Nš9ûHšʼn&ÕŒÏÕãÐúëÍ—pç%¥ôjÔp"ÜSês {Mþ’‚åp‚ÿð6T 2{~„I4ÆçÊ஀Ì*ÍW\äìJÕCÒ.1=C—’–Vì›í|ÄnŠjHÓÔ¦™S³àHÒ‘ðæ_sƒèõK‹ï…‰©åãà£!c»†p\,¤嘠¸\Ü_vÔÿ(ÇÓ8¸iJ­Ý¥ÏYpUŒíO¨ðnÅþ4÷$¤îð^Ç- ^«D<€#,d®òæ £=GÎà)±Ü ¬ËÍíW®µ¹&Ò:K5o“s§m†ºVËÔÅ-KÃÉšÌÄý÷Ä­ç^÷zcæ¬ôšÓ¢à€ßsBݳ¿&r£.†>®¾7,¢ñev€4­·Ž†£ƒR²·³kZÖÎO? ¼é~&^‹Ö]÷ˆµ–k2=€V:@“¾·RŠ£¥1…tArUËwéÁ^49h¹ÚÊ´ ¼ž¨!}H>QãÕi »]?¶A(¬€p:í9çuÙæÅšÒªÀ±rMyå8uÈ)ÊÊ=½d׳@g]÷¡úxð£KÄwo‹Ë;I?>=Q3Œì%6«Þµ°‘zºÆº‰³\fòžø¬¤ÌÔüHHKOpx¬ –ÉWm×/ W'„ЙÎr8¾kpN\VJ%8PÐä–?ÂR‡G¤8/Jþ×±2³sJÑŸ8ä”dæ¼'ïÎjØ—–Ûj¥¡fÛ:š97G¥æJuEì—¡ªx æîÌù€¸¬"6iÓ¼ãjëë*šËRJwˆæ¼j(þRËÖš·82™LÙL”nÈÇ\þädk[¹FXï ÚÅv¶"*5döQŸ´ÁÇ|ìÈ4Üß#öä€ÖÝšƒ«v–ù™‰Zäѱ`o^îàhá&êCA a&G-WVAs’–¤×k¦¾0û«ZŸ†!ÖÐ+xíǺ‘•TœF%ìNI™ôž»¦:šð·õt¦Øè=9¦œ\ÍT¡’8©¼µlµé"%‰zè ×ðÝx•øö@3®i§dƒ²*8÷¨ÂÐñß’¡¢pÃ6Æúñx‚{V~låJÊJÊŠËÛמÖ¡Z >º…®T (k{ÁÊHß`ωA°|Oì®äeQqâà©ÒV'DX$“iõýßUÁAÙÉwógŠûNØ…À;S`;ZX²Jï „…PxëåüféC‹¢R&û8èÓŸÂN@|FFª!C†ó2ëe8GÒè…Q8{tÃù<‡Ëº\Óv‡¦%8F{¹Ï‡tH]¶ÉX_ͼ9²"$82:`c›÷û7ß¹ÖV.b€ä½/+÷<82(mô δQJþ4Ý…:HÜi0$¤‰)±ÛN¤*à8îèY#Ú£}ÎY}ôzƒ&##~DðÞvÔT4ï=~“pÙkˆû|j(8òüwqNj@>‡ÂÅzì°§Au\zH×y’ogq‘î=².’ )š¤tt )ÒÁ$Šãh*s4RYˆ2ÂÓãô1†8à·kÙ*Ó§Ý2÷Y·Œoç¶"3C³ F¨ä¥ÓFkºïÑe'–€c dçï)ÀúN+£t¶ÖôÐñj)l¤ h’úR·$ÍPJëqÍ[²KÔ*b ¼‹õ›W&Èv,K„X‘ü«#³T­löw•m¨þ[–4tqI:º~ŠcL”‹R_¶—:% E™={uÜ^X,}õyJœ`y„Ä‹‹*Û\çNÃ^f>¬YÇ ³[ µox¯÷s"ƒ… Ô¦U6kΜͮ‚h‹3o–9+¬â7—R+;ovÚS0m×ϤX ƒWa;ÅJWKOTQ—n4@ßõ×5LŠL,0chÀÃÿ7sRr×Ý‚£a/8VCv•FºÁA¥Ñ¸?«ÔTn,íf,År*N¸ª_3ÛÊÖtä¸c/|"EQ¬í‚Ô†ŒøT1|ñ¢hOW:Ñà;¬ðKU6ÔÔ§\ßt\ãݺjï ÙŽ¼äJl‰óÏn8Ç}T¢™ˆŽj’ÄšZŒ‡+šÊVZà1äÑ~SŽÊÒ»LBsç ¦nú]”UxWþDÄ‘$‚D’¡dñ#~èL\pÎè‚~"qÙ§†ÑºéoºG¬ÖΤ†viÃÖw=¯¦ý7µW˼Õr©í£+5g©Gy_[çuhEá2%;†u½¬ˆ‘fªÞF^)½,ýªnñkçF”[ /ºÎÖ^#OþÂçM8ùÎõFÜÑvÀ¶áæÊG8çQöM{g¤Vi„º:®Ñ[ë- ¶LµÏ–¼õND\ýÚüà|ŸÖÍŽØ8*”Ú*ߊ¼p_™ºlûÊç<>\ˆKñå[ï\ÿfE]D¡èY½¦@l†4£6'¡™ŠQ®±¨`ï‰ð3P$SðéO>jmJÈ×ÔWg•˜2Òh_ÏGï‹Ý¿_Y…H¶ŽQo÷©¢ËL…ËÇŽÁ寿÷MêªýýWQ˜§#~gšÏŸƒ" ²ìÕâ×izZ²bË¥ÞâüÝÚ|÷o]ÙÈ óBdwzŸý·:ízï/»²ÿÜ“)83 æh 2cS·Ûh{èR‹.öBYçßï¨K’3ãc )ñ1íÍàè0X)“ï¤v¤\#ŒšÌWàþÁ°[d™Ø¥Ò>b9½\e29½¿ô¦÷öåŽ@cBex}mbÒáÓÀ íþ§n*~*üvŸ†4JÔ« SÉ+"éƒMØ—Åi™3A[|7·4š‹=! ܹîi×¢ÍItF'¾Š^j)™# åYK Šô•4Éí]£9¯„×ÞˆÏ2%‰{2Ë‹¡žo ¯ ˆˆô_ñAÈ•[wOý, £.µ r€¯LƒßÐêø”6ceEŽ•–ªch+ðë(6†$RÏCEî—8ø]ß±ZCL¢WYÈXé›Ï9úCî´í8È‚‹,è)ƒæ!Ý~t…’ùNˆqwfz¦nyƒÐö§Âü‚¼Ë²ÿ ×Ç€/„ênÞå «3’ÓSÓ©"‹ÉH•¤åá%Ì2UÑ : µp¹^ÏqÅ…E{+K±?qsfå$C<'èc¨Óë¾£ú‚|‡®öAk7Þ´ù´Q—¤;" ;¦ì¼øoB0ó/…`0G†\AlÈÜt|î=QšþHv½Î´˜ýÀ™ºž²Ê$ŽPkj…›pÙ-Ú‘ÛŠÒ?2}ލ ÉÕ¥¢‘:„‡iauj8Úçý©’>¦ª…{ e…ž)Œît¦¦ûB÷†ƒõs!™nx^O+ióö¶.m·ñîò'ÁR¢ê®… Ò…­ÔN†zÍ·ÖýÚ7/&ÏP,û|È«ÀRé‡ì½Yù׺}}7ÌkÍÏ<–ÙÜó¶.=qí!;[Në‘íw~¹ h Œ…uË¢=ùîç4mÿ‡ç4—PqãÔ¹C•Q3ÿ‚zHã?\ÐÃÄ€6xÛ-Š3èˆ8D)™0ˆZ”Œè]‰É)3aÕÉ,Ís_T~q©¾wDç‰QY2n­eWUCSűÖàŠà,ñÈ±Ž¬ àï´Íš;sí\­†„˜Ä$*åqŽ;¤é\Ïš G£ˆ¶oáÖ&[*-4ÛV{Ðå0ZÑO”±ˆN*Àj8ñ™XûMíß>€ÏøësÏ ±žáñò›‡wî¯;Xv¬*ñÀƱµådÜCBÒ7ùhÂÂõ[õ †Cº>5R ß‘M}Ó ­a¸§¸&zQæO%¯¨Ö}Kh(¤Ìò õžø` ÄŸýãA¯TÑD²Ýöä(O¶Ïµv–1ÈÞ³Œ‘fs5†¬ˆ8=ìJɽ®å*-",QȼùeÍðƒì‰nT`ðcÕÓ|Œƒ—Á™GÍ?¢j˜ùaŒ-2Ç0 ì[ÍÁ&5˜þ5ú–grVÄ8ÁšI>P EN‚’©†wábKCÙ©£´Û… ´^ÓEáBÇÎMt«œV‚gÁÆ’S†)øHÜ¡!m´±×•盌ù¹bᾦ¶/iš`ü«sa8è»tß»Á™éØ{¤R#t0Máµ¾!q§~6 ûŠ‚ó,œpï6zJá n8Bq G(1VâÕ- [¶ûø˜ƒ67´ˆ¤ÃúOßývoï}Wþ|ÛÓˆK™–ó4à»Q¥”bhÛ>”š½:=‰³—¥üì4V[Æ„Žì#{ù®J¢Ñr¸Ö¤ú­ðžXÞ:y³|.?Â-òË^¨Ö=q¤…'M YšJX®K'#p´×³É?RÐ1õbpb|$„ó‚ ó­< —tæ·«šO{½7ò•¥ñÁk4Þm+€šU¢"cHÍÈß-Ö3Cëî nù_¾ŸÏÕdü5äúíòëtR‡$튦Ýjtnl™ŽŸHp·¯ø¼¤QW+H(”<òpsy~!k±AE_ÑÆzuX¿>u™ÆÌL£É˜›Sp½_?†ùÊ)–0endstream endobj 666 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3013 >> stream xœVyTSg1ä½'²(æÅ¥«¢¥´Õ±ÓŽVÑŽŠE­{„Ê" ²/Š!䆀ì.@XE@"‰ës9¶UÑŽ­Ëéaœ¶v´jG”Zëtzý8y ÚeæÌ9“òÇ÷¾{ï÷»÷÷»?å4‚’Éd^KƒW$ÆoJXð¢ÿЍèô­›Rì'* ô Q€‹\œùº¾ï/Œéw¿<š²ÿTó“RRÓÒ3´›Â—FG.‹Ú½"v媭ñ¾5‘ ¡–S+©w¨UÔjj µ–z“šOùS ¨T5“ZH-¢¨·¨@j1õ2õ*L-£â)_©&ʉJ£nÈÖË„G’{Ê“å?9å9 *f)êé úcFË|žÁ¶Üî<Ù9}”ߨžQw\’\c—Û¿FüÃD€*AŒÕÊ#½„W’4¨ÈkÉ5fÁØ,ÐA^2‰zäS˜cÐ'èµÅi¬†ù§ õ É‚uiå L¤¢RÌÖÐÓW`+ôEϳ”d}÷)ÜDýN›ÈYdûÑßFO¹‡‰JœxŸŒ#Ê™/‘Éä¹þ9ȡϽ[8ž'žUJÐÀšÜØÜÈÍiѰ¢uÇò»à"tƒ'+;«z5‚£Ð•PW¹6ÀFVzÓ4EV 8Á"Ê„8›Ç-¤q zzs£ÅzLU¢ßŒÏ‰Sè¦m ›ù£ 7@‚ò¦ º¸^ù e‡v-Ô0èaBé 1ˆ9Ú½£Xtþî¯8MM<½Èø5«×‡mm?ÉcÃyv´l9®:c[BÜÕnÿ’uöÚQ½l!Ñ"å§n¡›7">':)? iݰqSê[é¼ákšk'sìÙ/•C¤š\ÎÚ–€+¼Œ‹¤È}{Pq2³Â;µííf/Å7$S;-XÛù¨SÖuýñõÚërBµ.líØV»¥+º<¼BSµª N±¯ëï”-É(á9%E À6CY“ús齕YùZ]Áv>»*±" Øù)Ö·%×ìPwÆõäŸÈ³å_ÜÁlHhNèüáãl¾h·Á” l*ìLS“ yuå%PSÇ—•î®,3ÙÀ "÷žk}v Q;m8I‹®ÔzÜDZ#ܼ¹ð6º)?ЬbV½“ —ëyìDW¸âJ c˜•Hèç‹Øh†ëøˆ´Ñ„ú"ãò_Ú¯ôòÃ}Ýi‰¬l4xÜ—ú: ion‹xÚK`‚ Àª)†«&K~Át3?fÙ’¥†Æ³<ç‚ß0Üá_Ÿngü>Ih}®ôðÆE´”ý—Ú—!Ndb‰8A)0)Å †ˆƒ°’mFiîËtÅE¹ê—IÆ44)Î 4q×'“Bs‰ÁIC#«’«‹÷ÂØ(­Þµ}ñ{Ÿ]{M».‚}0¯Ï–‚ãß„&A6âŸ*…O…i& SfhÌ-Êñ™ErgâÅ)²“>âñ%c5'˜æ }®¡xì*2s6æ*ŽHç2ý)ñy½‡œwe—æ6;W•í¹‰;|n’í©ŽböB•©¢ ÝÅ””Ÿ·#ûÚ×>Caèo‘5áH| i¹˜Ö¬„†ÜQc‚Z0³¸•y0ï"Û™“Ë£•樣gC'™“Bcª-áŒE×G_ ŸDH£R"ÿúœ¨œØ-©›%¡ˆkH¶²hfºŽZww¤ÖDÕl•Áº‰7µZQ)È$š(ßÇ6¥†.˜ŸMf’©ÀþI¼‹Î®Ÿ¡þcb5ýCwý5¢Ž‘€;%‘Ï&ºÛd]Òug#q¤r÷6ÈÍ)2ì(â ´éKæA4lm̲fY Çá${ pôýºêbý^>/_÷¤±Ï°üx^ëˆÏ+/’ñdÊÀkR8ßtªæÝ~\ B˜ ö ‚zžkpŒ7Wù£Ÿ—à/ÞíH$“aç²r|¸ñd¥hPpk›ò MI*%•ÛKC:Rõ,§Ó§g@J«¡¹¹èbRp:t•tMËp1QR`L1Yñ ‘Á´¡[ ®`{Y鳪JkËj0[|ìcúÌß~ßÔ}¬*Ng…/¡[ÏþBJ ÒO¥6Úy)ÁòÒ`gæhù™šß3Ü^êW$!Lhw¸)X2Êï52…Lÿæ(?l­ÝPÎps©o8«.:msb¨j3$´lïÑ„ ’ôÛàlM÷[WËaèKN[”T‡Ü}å@Ì"Øÿ˜Í>ëͱƒºAN"7š¸è\q•ÓÀ˜Á\\nhуÒÙ!%Cnˆ+t{ôcIäÿ‰^äoÑ«bÄYCŸ*¸òí•eP«jƒÊ&µØÇ@#›M,ÇšÍP®’æçz‡]—v዇´ÿþxsß‹‹¥!ªË„ÂìâÂm…|ê²å2N€c.¨ÑD·”÷߯‘ÒŒ*¥q™üí+èãŽgVOÇqJò6ÍÅœ1š¹£zdRš]„Ûý‰€IÙC¤® ‡\œ(*ÄŸ?ó¹pBóÏ/ל'Oþsñ<¹/LùŽÁ‘Ÿ«M¥`(ås ¶eC2ûnwfëNóa;w;í€cÅa4º?¾†£ÔÄß‹Ûú W>Oݡі½¬–ÙhÁéáaŠg?Œ¶DöhEŽÈQŽ<ʽ¹”˜%IiSNwxN´>6Šçœtû#Ö•&ªˆkHÐëïÖG´§©·Fè7KÆEW²ÎÇrÔ{;ßI[1ný‰70>¹xg‰@X~9\’܇ئÊà9Ÿ³µ–¬ *t;ýÆ™¤îÜjuMEuéîRƒ¾¸rÙ”}Y­­ûê›y²zºr-,[¸.æ¹ssÏÀÅ«W!xÿpÈU¹eí$¿¨'zÁ>¾Ÿ¾q4;TêÍìøuX°ÃŸïMô5Øá»?¨ïW6Ij’UTðž/ Ó¦$J.¨à\þGú¦' &ÝÅHËê&–û~ åƒË×Ç=™ú%yƒ'·ŸâÜí0_6øÊ²?vÜfà4G5ÄA*ÃR(*OoŸƒòÜ À~SÑ_­&ûũʅD~Ç¿†4wÿ&ÍÝE,Z`!¥ÃÊ<–ˆý¾èÑ‹Ä )o®뼄`ÑáΑ7픾ð‹…q“XâsU|"™å]M\TĦîè£Bgí©äëñ§£²°d@.a˜z3O¤Üt.²òUsbyl…®4¶6¡Gr/'›Ïõ¡_™UÆ›rʤ]6ì_p‰ÃÀä éi|RRdׯ}Ë%æŽ $N!æ°¶-jÛKþô¦Bkî®âSéûÖA8»^»hÎâÒŽã xC”¥?33‹f¦Òhllâ÷ï?v­À*­¯O¢³„€\–l¯x`XUp"^“deü`ʰ¬ÌuÈÊø§²ÂÝø­°ŒfÈ´©ïþžð€Êã<÷¢8¯ß~G*îx<].3âûÝ$|gÜü½y‘“¾z¦ãVG/Ä»v‘}`oÂ!lñªîê¯7äi{ÜM ©öy’î¬v#üÔ0 ›¦/¯KwqÓ—ú1‘/ع&‰Ï¼óš)æÃÚð„·YÃcš{Dæþ—=}jŠ£”ßNïm( äIÛbGFó?íw¨Q*£rŸÃãëö‡<°¯‰…â4†,Øi(RLxDß8sìÏ6CCaý mabfÄ8îËÈödKwGãq!òÊBe„ÄZ¿Ÿ5L*ÁÝQÂT3Í» FM®<CW-†Tb¨¹ªšœqâ(ÞÙéD—‘]¦RcI©±¼¼öò^Šú7B•§endstream endobj 667 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2868 >> stream xœ}VytSU~iÚÇc™"`0á=Å…Õ×q@Ñ¢ …Ê¢,­tJ÷6{›4i–÷{Ù›4{Ó4iK[šB BAt@œãQÏÇã2ƒÛM¹=ǹAtÎü3'ÿ¼“wï»ßïû}¿ï»"*;‹‰D7?ÿ …ueÏÕ–ïxõ¾EóŸª,ßžùÿVÀ¥×T£E90I “²S3&Ù§¢)S¾˜üÁM™×ôöâòºBŠ¢¦<¹aã²MO?S§PªŠ×ìÎNQ·SRQwPSwRs¨j#µ‰z™Ê£SQ«DfÊOM%gSÙTT¤Ëz<ë´x¥ø«ì÷s¶Ñ3èóãêÆýÀ´Ž_6aùÄ'~…úsWQ0‚掤Kä¢ÑË=’ˆj´:´l“À –ðü4–š&G ÔƒÁ¬m›9ö­´IѤ|Šg´J¨0¸õm{öÚ¡—„}–0îvè‰(Á`¨_=÷%š•ƒâtÏQ˜Ëy Èä*¨hô™|ºÇþ‡Nkd­Qèáp•K°†F«ÑpA6ô0A–þ|D4ú ¥†Z­ «±ñ‚ÑïGŸJ‘MûÜо¶¶YÔ–´»Ìmê²b ”rxº=Ç ‡JeˆoåöðIƒƒÇkñéBTàµõ: óE ;Ðìläð ³hAÏiü脘“%H²K6"º0Z/Ý€œ»ìL°Ñ®7ê ÑÄnÃÓ^Y€óÁwÐéÃéO=­nd(Ù19] f0Ö®ÃË¥& ˜ÈNU˜wö€“=„¦]>ŠXrúé±ÃcŸ z(dZ/´³i $¹ã AÑËýÖÊ8’‰¯Ý•^)AOâiâ{رÙtFôJ?ôÄ¢<ãðì±óf5é†U¦âå †êL7¬MFòhf”±é[i4„D:´•ñR²Ÿ½#%ÜDkÈr£€f§ß—:‚‚àZ7øFšîó–׋Âj¨ƒgJ0[µ6ƒîÞ)™!AÞã¢ÑnÔ*‰(À¤æ­UMì‹Xºþ9üùðô~핾G¿ÕÞ¼Cm¬â-¯ÏÑø-Þ¨àŠ8Ù“¨ÖáÏÐ+‹ÈÁ¬°&V¾t·z)0/ÒçÇoódè‰^«§4׃šSDÁ¼AË…PNDjvìÝ ‰KZY¥VÏY‚·àõ+ˆ.µh ‚×ͦŽºCÄÀ⪠®·>¡ÜGx;„r÷ex½'D4òSè¡”è¢QâŒ8íùRâQGš[¬ƒ‘-È¢žŒã²ê¡SQG¿o˜{>ïº>ë œ‚>æôº}âçðÍx ^ˆÇ]Y¤É÷„øöt|hÚ˜%($™ƒç½läRgW840pØ× LjX½%s¼&–ñ©N‹F5é"I7*Èiׂœû®ƒ0ÊWâ¤-Ê%™Ø°ÍÙîaß@sâèvØCšÞÎëº(má«Í€)¤*’–ap÷öÙ ûN¸Ê÷AŸµdm$ÏÉ$©¸"ºÈÏŽf¥OI„ž¨À ¿>bz¸Ú¢4×r-Ö&`pEížv{ÆÎgå‘`Iÿ4":‡¤âk"’‹>ƒ»©”„z [+í5¿çb uôÜÝcl)¾OxOÙü­û/& W‚û1ýp‡c€Ø¢l€o&)kª­PÃ-åÿ,TC•­š¤¥âº+÷wö‰Ó¬©`†æR0ƒÇ· ì•h.ZŽ&ý„fîe¿NOuFAètÉÂö„-L4t=³™’#>:ò³øšêÆ{'èÕ¯bqo›àBÇÑx8É|ùçÎeuK`ñRÖâ7öÇJcA ð<½D{t]²JHüÖ—Ö¼ÚX&&33>1)Öf›+ÑþQGG’œG_¥2«õ¯rõ÷•âY­IFYC¨®÷¶Ã{Ül7ÊvøßÛì2ÁÕ}¨¿«»£?|˜d§~S±Â¬á¶àg[jt…76…{[÷YOìZã¶mÎXwrïÈëïÿº#+¯ØÈéª,FP1kNïzó§£hF{fð&oÔá±y€¸‡.¨t¼âÍ c1Ð*«Ò¤jV뵃ºYMìXzV÷é‹T%Uù…Å«4/˜, ‡¢¶âÎ fÿæsÊ ð5|ömòGg•I4ÏWç@”Õý†%LNëq÷zzýÇ‚'†‡cí‰`ÒãÒIc;Ã¥ž"›Vй ™+•$b²N~Báü´5•þ¹0?t£á:3˜L¬Õ Ö–ùãur¢R]“£?ìy‡¸äÕŽ/\qï¸e1u¼\^ÖT¤cóð³R¥Rjd»ªv7W³¼åÈž.W§# ¡E®¤ïàåë76YX,ë6«Éˆše»’M±h—¯;ÀºÚúÑLwï°úøa/v9ѹù¤vÐÞ‹¥Cþäž•« §7¨&eèÔ„Ÿ'²²äM“Ƨl‚`wxœ©€[˜4‰¢þSØCDendstream endobj 668 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 7192 >> stream xœZ \TÕÖ?ˆs:>òÁiäLÓÍòZ™¦ù,2_š_( ˆò˜á50 3ÃÀ‚yÀð~ ˆ€ ¦V>ò…æ˜]Ÿeéí¦”V7-«»NwÛw¿}†‘€¾ú’9Âoï}ö^{­ÿZë¿x0Ý»1æÎ›±5bqØÚ­Ñ/y~Q𦘰µ‘ÒÌS‘$î—n¿øÉ ·'ôî¾ç©á7¼p|¶ïßû1Ò?ß×·.‹xcÛŒí3#£fGωñU©×¾»nnÜúyñ濵qÁ¦…!‹6/Þâº$,|츤—ÇO˜8hÒàÉC¦N{uÄs>£VŽ^õü Ac^b˜AÌ[Ì$f3„YÈ e1ØŌ?3‚YÂ<Ç,eF2Ì2f:3šYμÁ<Ϭ`f0/0ÌLæEf3†™Í¼ÄÌaÆ2¾Ì8Æy™y“ÏÌe&0ó˜ù Ï<Á1rfãÍ(OæI¦;£ddÌߘ§™L¦'ó,3•éÍLcg^eú0}¦?ãÅøQõÐ¥&a÷»MívÐs³ç§Ý·ÉY;žýü±n2w¦Çs=ÊzÎêùi¯’ÞKz_~|fŸQ}Ì}ö=Ýoy¿ïúö?êµÂë:ÿíÅò‰ú Èðžê}UX¦«ØÿdÏ'?Q.Wþ÷©UOÝû[ÜÓÝžÎúöÀ­ÏL|&éÙiϦ?{sÐÈAªA-ƒ· >0dÄÕCJ†|5”úÊÐ C‚»ûˆ•àøÑ!>«öhÀ·¾Å·<ÅŒ:yV)Wk5˜c 6‹åBú^Mfl…H &Á+ Dƒ!=Ùš’žd ¯à~`K¡ ¬uÖz5l‚ý? 8µÞj0†)ŒáUP*­)º†#Oá29Xì‰çe.ð¬Ãßáõo'ú;½ù]baÜZI䂨·1±äû w¦‚b,ÛËñΫ¹h½r:›‘t{I‚BàÞcÈYYPçAǺÎlß®gÊø]÷‹oì=ª<öˆ”·‚‰ZØÐþÚN×kÏ»_ã\Ò‰‡WΛ„óÈ@úøà¼¹ô[œçÍ_Ó%Y·SUqÑìH,ÅQ-«d‹Ü§º&³‰ÒîáÆ°°F‘aB+§?ZëÖºHi ?g0Ë/H„í®e5PD‡Ní`o’2“”ÈbX¾"¢\VK“?¶ŸEýq©À›þN–Êx]4Äü~tƒ?qxˆ€aò ìÿê=Ò¤Çé¯"ü§£±HÏo+Ћ›-O|ÁÇçuxV\+º[ôÕÇ]‚ËpÜ/qŒ´™Ö!æ8<¾râONOÑŽSå¶ÝQ •F¿5ê¹ Që` Ìþ¹GVãs?ýÜ Ü™C«&ÌŒÏH¨ƒ&0WXÊwà@Á\l©‡8Чô¦4HÜZ»¶|9%y2œø…“7[É“8ƒï[‹¾”'‘|Ñ$Ð\tF:÷8õΟ(rú1b…ëv}§÷,B`܆0ŽÂì²BaðïÃg0cÖþ!f8^ÏÔ[)n”üYmÛ„ë×î×5€=eßT ÏÍÀOgF%Lö›©œêÛ9‡ó¯|í¹ç¨¼ §'¾Ü!;Î'FQu5à ùN|y>Ž$ àȺçS“U²“j¨Å; â:½©ið™8žKzL%}‰'p£Ø›¢Fö-‹2h$ 5á:(èªÃëc'ÊœÕNÕŽ^Ì"þr 1ÔV°wÅ2>¾Ìl©Ü¬ S¼!8fׯšE.LôM¡"ý®¤€¸Çš«wpüÃM$T¶¢ËUPLåšBV-)ëyq€\·hî¤I0K/}Ytç¦ó3Šân× áU­o›0ÆA’£SM,w†S¡жýò¢Vs!¦2©“g ¤œÝ‹12ôfõëL MЖJsYñ]Á\f¦ C =A¿Ž#Þl#É0åé–šbÓbAÑ– s95„µ>-w3p{°üªÎ¥ßðÎú²»Án·6pâ¾âDÍ?½ùâ!±—Ü\n<0–Áœ8ß¹¶FwÖ[éþJÒ­³Fn¸âÐä.j*ìˆ'K]PÆøºøÚ·ø¸ÒU ®†JØQlÝù›«¢—žb4ö——üHúW„Y}ó…­ßüì·-5ÍõßÀ?Àž±==>#¾Ü÷v Y.ŸŠƒÆ¤_W±@¦À¦I†M />ˆoÕN½ž¤[jظfËX Kò’¯sé¥éyÛ¡Mù #SBZdØ¡8³´ùMÇÓkÇÂÁäns|çÀw^­NŒs®£&Åݨ—[ëÚnÖ«óͰa¤û¢•Ka2,D¦‡Wãóß=¸N¥ý :ƒ0ñ–äšßÅ赪Íáu‹Öé Ä‹(Éo™{“(°œ‚CuUÝcÒLê&%ϵ¡ƒãgÔâÔª¶¸Ú¦Ä Ôˆ¡ÎNç]*h¦¸½äæRKEl£Ê¯· %^û1K5ǯه:Nt#Úí(ü2‘å¹Â›mÈ£5Q-ÑaÍ$ÙËí r[¾õ6»Ž˜FÝtWáö;E­n<©¸Úáõ/Šû *Î7ô»7[+Zêùc¤Ë«;ŸÝU™Õìf²ZFBX~Óˆ«e4´=zƒãÑ`EßRÒ—:¥ þ=ºH‚|dçqìÕù°H–?ÍìE• CØ`¢¢Ë;CøÑò6|úK>â…óñ…ø‚7¿M,¬wA@Üjö$Þls>Åïbî&²YÆ¿÷RâÄäPåT°í¶6¼‡;¹êïV¯!ö„QEQmî‡wr÷×Ò<šV¥Ê+l±$LýoÑuT©žb@{:&ŒK¥Ètq½½Ã—”CWwÞÛ!s–¨Äž4Ùáò›¸ÜS<'yd5Ò£³’jYò ¹æ×dµ],Ù£³òëØÓä®ms9T€¢Œ"¶d7úà×B]§}ŒGÿÀÀ¯1ÐS¼,¥ú¢©’#±qÒ^.>QÜv89*Ë`¡Æxи?õÃŒ¼H¡^¯‰1êç’§õj.ƒMÇ£²#í-šÎvܦêÀBZ…hHÜ·ÏjwÔ>½ï¶¹0»’ËdÓJI¬T{|)äC3ØŠs*‘ÃV¡ŽJÞ¦~.9¼ø5b…„‰Ï¬UoÞƒaBÞ¥õŸ“!°†BòtcxYB½þ.{vsVNffyVaf 4á°äd¦‰ËFq¼v–ö˜ßÊfø0ûX=Çû„•ÎØ«¬¥’IF?›¢ÓTkãèÂø «!U9BmoÛÜiÆ¡–ß8Ûù–¨–ú\Å—¼y‡h’ M‰l†ÅdËÈ"Ýq¯€sÑë*”‰m“Ð;® n*Hì¤LxËÚ)ÇohãÃÛñR-YžÿäQÞnæøê0#QÞo‡Ÿ‹òÙ1l%*P†=¾#fk­Â½Çµså Ê:W¸ÂJ¿ÄÞü•ts=; Çã@!ÛG ËÎÿ ”•t|Ì0aÁ÷5.Ý=b›¤G§KrûØ»dEÆËÖ³ü®NSØ£È*ƒc_áéá☊G‘¤‡[wêºê@uÈF§Ä GÈêÐïý}ÂC›I¦jE#˜Ë­Õm„«#ßJEÉ´“­Ü(Ó‚.LË {ÑXðƒhýILuñ‹rKE¿P›T¿0¸‚C Ë‹u7¡³Ÿ6»Œº±ó Ø»Y ±Žùèä^·q9ñ§Ïú¼usþͬ›@Ë)5]ðÿÄ F Œ»Q—&yl™±"æ´þÌRÔÓÄÀ?ÁtÎKýº ßi㽘p ¸"%o=^O ‡_Ì)&À†Wâ#ƒý7¦'fdÛ³ ¨C1Õ–ÄÒH%ÿÞ3Û@—¶]¿vçú#pΣ`ËÃ1F"žé×1້5h,zÈ­µ[Á@¥HIתS“¶­|&À[‹¾Ê9|C%u¨·!Cg )ÑTѳ£Äº‹Ë¿2VñIä©ÄqjÒû“¡è8ÞÿÎ\âFü$ÓSŽ´ý¢e…„u„5•ÐàòR7€³ë(½ÑlNV q›4[µ[%Zù6CU¤äÇ‹Û5\ @­(„R^ÑnÛ` Ÿ‰Û…LÖ¼ªøg%Y¢³ƒ-zKjž>  ('¯ÐbCmÇi<œòp{Û>Š.µ;­ÇÏN̤zRí—çžîDôÁ©dñðHUy¦Ù\¢°5Ƹ"ñ]v èR [RW ¦X%±!¢ø¯0‹%ÿCŽD©3L¦x…as¥ðžì›¹Ü\Ô~/HçuÙù£ó6Å|b§düOÑöGÉx±+¸x (ˆåýé§1•ôS]ù³²ílØÅñÓ7Ò5û~˸„ÇWä|ÓbÝ‚‰¯*g@ॢÖâoo|tÎÁÛ‹uþ¿eä-è VüRüäìŸíìGÕìÔ‡4q MúÝó6PÌîÊwÚxK§ÁŸ»Ò–OÅY&ûýCSvHqF (ê ÀlÛK¯-Tw¢,pæã3øMTÛDU;†ã@gJ‰ _¶X>àû~úe+¨šmÍeÈ~GéE•3\Eúr|3é£þ|Ê•(ÀÙ/)i\‰ƒä¤Œ­¹ráäE8§#S‡üV‹ÅxZ~$Ô’y@?Û·’wÉâm8p.ìÜI'¹Ùvyʼäê%êÅ᪱0TiÞ²ŸÌ;›w¡ìàŽvçß„k°[gó·¬LöÑÎoö§Ñn©3Þ9ëÖ«NìyË›_'îOÈsÏL¡Ê™Vi^Ö-†w!ªs¾gy«T§ ëÂzª:“¥a,?çž•aŸ.¤x:éÃòCs\?O¹ƒ"#ͼ¡ Ê¡ºØZë–m®MW¥M½á°è#/¾»àKòÅ{ô_¨ÈPÞY”p¶çʰ?‹Üþ²è.Í©Kýg’PµM²ŸÙo¡~–n©+&ÇÁ×O<ƒ¯ ?ãUtz¿3Á¹”òîwpz¡SuÚÕ)¸$ rËMýЊŒ€Í~Cž&´l•òyxÅG3A¿&K^lRBRŒ1Ü’™J :ŸLH®zYç§ÕLuÚª›îÊ­ R#,Eꑆg¤ê6ÆCä”ÌG˜Ü³rŒ;RwÅV$ç]nÞåÈÞ_øÅ¼›¤'õ‰™]cã_*ÙöàÙu¶ŒúàΈ2UZŒ~-­B­Ÿ1¼0”ã¿Ñ†çW'4*?„¦¿gïå†ãyê ÿ…c€{Ãõæe–ÿ‚¹ RÛ#ÊÕû^hv&Ý÷æâšv²9¨CMGu 2W˃<ÞÅ·SæKÄJ¹¥6®2‚êb{LZ„1¢4¦j¡¦²-^´Áó3g”S:Ö„“å¹ç¶Ð„ìÛžíS:­TXŸÚ”sÈ~ôÔáK€=!ãṵ̀Œ˜\C¹»ëQ‰‚»u©ñIá!Mù”lx¸©‰´sš|?BÏmÂNçj–.˜J ´„ìäøŠàæY¥Y%Y¥¡îH Ü=Ž·V‚½°°¡)ütÂ9©yëv[MOiÍrÛ$uíhÝØŠO83©Ê6â¯AòËâ¬GšÛ9îâvÖÃçÓãõÁ¡!Š-Áa U#ÉYš,Žç2Í™Y™ÙRâ.Q)ùŒhˆŒOÛšôÚw°p(´`ï¼s”õ}/~û§ªt3`§Žz:…g_ªÒâuÑ Ï¿âë¡ÒÍ78þ^òôNm3ûq.èt)ÿ_ï ½€¶âZ`»ôÝ~ËL½^5H&Òç™ÀÀùô‡úð-Þüq1·[a,áp)ÂÇdMíñÑÖ[鬒¼Ð¥›ÑêÓÌ’dôø“û:~%=âKc|Û8Ç›˜0#Sâ íÝ«»[Âë™lá;We¼Ž¹K^”ñ)LÛ¯-Ù¬g‡ªŒâ”&5œâD- J¿Š×ÛÛ^ò®)mù:P,…ÅÇJÿ}Ê]Þ׸Xì¼´ÜS“¾—^¼ŠûðàN9ö=÷èkÿG³ÃS ko‘X^еŻm y—áßW‡×‡-ØKúxóGÄÒ6ö½ ö£Q0—S24ÂaMRÈ]cdéÊšC51£Î¬†8ehû]*`Ѐ lrómW½ÝžÍ¥-ëp¶Ài-:rh¿räÅký6Û1â^ûÝ E­t9ü?ËÝ:¢V·REí—[jڛ˦XcGtì…£È\{ßå–Sç >+ÇÞ㮑>@£ð “4 k´%´Ö¨)±Ôf姤fW<^’}p®J§¹`¡?±’ù‚6Õ`4iܵ;ÞéPj˜uW8¼Î·f¶Rz¶’úàцÓåù—6~0¿îìžæSöWç§tˆô†iɳŒ[*5å®s­µY…i¹&ssý%°wÞÝ”ºÚ® Ù¸=2}Sú´D0nuÃý ËÛïÁ¾9) SæÏ™;ÖƒO^Ü!›5‡V–ªÄòHd"¡‰co-ľ€ÞðýÊž¨”¢oɳГ‹h¾ÒS ›#¶&hhæÒÛµù)ñ´`Þa ‘ñщ[bLqé ù ô¼<Ȧ{7ÕÖB.dëò’ó’ŠU´ˆ®/®)©,Ú]i.uCŠqˆS{áç-Á-«ZÌTÅj |Úi,uaÛnC5MK]<#^Mö‘ÿÚ¤Œt“Ú°%G_/QU´R®GÙ¼.ÉpNçˆ4åýJ‘¡éÐk2­^N"YlÄdmF©wàx ŒÙ™¸H^òýüï¨ÕC`µ~uL.PߥkW)J14ˆ” ¦¸´è(«Õž»»áÝÒÓpvO×úi¦L~ëŒçåÄž´YíÙ´nÛ¥.V—¡:ÃÍÄË3±;`@öË2ôtã£ÛYì~–¼â,* à9u°é­¤€|Àº½ø,27oC#j-FƒÑ` çG©k¨|´ž®Ë9²íÄH*á“@^ o&«×“”ûÓï¹z%Ý?§˜¦üX3þµEo€„IqªlUY…¹gï 7àÀœ¤×Õ«^Wœz)¦…P ŽtµàÚâfV|¾óÄû©Â›o\—j Þ0rªf²nQóòkÛ9þÊTÕôI> #¯“.çÿ¾]ü/.÷ÉSÍ šNMW?–¼go±;wøS¸GuÜfò¶\;ëµÅé¼ÿDXÜ’çÌu8?ü îÀÁ¹)®Âoà!1I<'Ï=š“D+ä0mZŠ 鉠ª¥ È)µ”Р‡kþ|EÛ'Åf1û:®Ÿ§ª.ÇäûÐ0Â9Zâ䱉jòx,a¯ŒÅn´~;Yrlé7zÄ(ÐAHfl±Õj³™K$GÚNùDÇÓj›!±pöß+8¿Oä:ÿ7M„ɰö|ÁÕÂ[7Z.Ã;P¯®Ù`‹Mž!‰R¡ÂW.â°‹8Aí!–á ¹­)’óeà0Ùa6Ÿr[“{0˜Ýå5Çä&‚" t[MÉ!äqaÈÿ9ú*›L1l1„4A>pçÙµdÍßf7‘¾FS\^|ÔCÎ.Kþì#<ø£‰ÝI¿­÷•K[q *¹6öG_ìï!»Ë³›·×„B0„‡Ãôk¶7À^¨«§Éjùà'%3Ç8 ôËSLÅ×ä9G’ï‘gv6âawÚ!MÎ2mª>Ù”dŠ.P픂b¾­¹à“5— —kkv3½0H‹4%‚"Kzíµ¤×Ó¢’ ƒ¯„“D!È\i8j³äçXvXjU%jjÍiúUš‰ï½Š¬Ö°ÑÅïꥶwµ¹Ø¶W@¯²¾È¿È‘ \ ÷Ï]¹'çhÎá“û>Ìå~~è-×- Xé«Ýƒ[…sIM«S—¹¢§ú+¹¹L›“’MrÑWÀ‹è›Ÿ]”c.SXvÄç'ÐM :ò_²^H1$¦šbÓ“lZ»’`¡@—•a§Á»"ß²Ã¥Š€‹7/zˆ‡D/ ŠRۆܣ•ÓF—ývKöÃÿPsì–̱Œ¦‹¶H !ÿ¡FÞBCš])ý-RšÁÚä’¯?gòtÙä( ÉvS¦Ž5UrZ´)6/5W¹ÄW ‰o²^’O‘]’\L3Ž%³È.2¸^ȵÒû¸”JxŸ%ò¬"ƒ%!Ÿtû< eؽä¾âs_•æåX²Š2s2¨“l¢"ÂbW“^õ/í\¾úG‹«€«{yfŽk¯[t¯áT¸rìöå¶÷×]ñk‰¢©eÙÅÅaŒœŸ9Y³dÑåJ=Spã}^xòäå{и0i²$æDÇ/ƒ%F²´±f±Û/ƒe8ºKÆñugÂýú¦` ³¤4R»úv jXuÑ 3/®º¸>Þ¼Ul¤ªtG Z™ñ\ÎÊ—’ÿ§'S®EËè\§ˆÀW ]íC§Ò“tˆòwkSV>§ÈèœÛý%(­”gæ¤ç¦ÛHØ/³S®±$†Rä¸xSµIJ–Ã~-˜S¬ñ•P¥%n@#>¨–ç:Bߢ´$‚N}pu$E1dgædmŸ·> stream xœcd`ab`ddòñ ÊÏMÌ34Ð JM/ÍI,‰JtwÿXùƒ›µ›‡¹›‡eýw&¡Ó‚'ø 0€cC ##‹æ÷5|ÿ™93<ú¾…ñ{ç÷-Ì?V~¯½åuÆÆÆËËÆæŒ×­[gÎÜ’ã+]øÃyÎ÷¼i²­âºÀ-ÇÅ’Ïù°§·§··gRooß Ÿs5Žendstream endobj 670 0 obj << /Filter /FlateDecode /Length 162 >> stream xœ]O1ƒ0 Üó ÿ ¡t@,téЪjûà8(NÂÐß—èÐáN²ïN>Ëþz¹²K Ñã‹XÇ&Òì—ˆŽEUƒq˜ö©0N:ÙßtxÁj »Íw=‘|6§sYU[½¡9h¤¨y$Ñ*ÕµÖv‚ØüI{`°»³nº¥VÎþCÉÑ\⸠¸ÄHœJÓÒ$pL¿g‚9+Ä6yS>endstream endobj 671 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 204 >> stream xœcd`ab`ddóñõÍÏËÎIÌ+14Ð JM/ÍI,ÉHtwÿÐúÉÄÚÍÃÜÍòþ»±ÐCÁ{ü·@r…¥ù%©Å™yé9©z%ņ Œê Œí LŒŒ,.ß×ðýXøýcÙ÷]åŒ?4~Üí]X3¯¤›£­¤«¼ªµ¤Á§Ë«Ù»£¸1mS÷òîÉëúôN•˜v`ú¡™z'÷Mí™ÌÁ×0í‡ó´ï¶Óú§±àºÀ-ÇÅ’ÏùqöĘ0¿"ÂÊKendstream endobj 672 0 obj << /Filter /FlateDecode /Length 1006 >> stream xœ}V=sÛFíQ%…«ÌdP.<âå¾qç*–¥Lä‘-[†’BJ´ˆ$lâdüë³÷ò@1€½}oßî>àkN Ë©û‹¿óuFóÇìkÆüÝ<þÌ×ùy•ýtk4Þ!–Z–WŸ³p„åœY"¨ÈKU+T^­³{ø­0œX#Ôí²˜QB•aFØÜªY C³)fB`˜PFJ…‚®˜¹&KXîœ(µÐõ?I™€ÝYZwÛ£Ð?ª·X«–i­‚r¢m‰õV‹ ¤-ª¿²™”,Ÿ EŒÖîö=üж¡ˆ‹`‡z„žÔÓ?ù i8ñò“‹kWœD²FíÏó‚kb¹áðwЀKW­‹¢Hùâ]üŸ1x†U>¤˜ÉÒ)Äá»7ÝúK‚€••eªÿLž´cÒ’#tx‚}àÓ3Ûáw9¹ß¬ë¡é6‘?6°û ãÞ=¥HC³+”B~†AÝ7õ0B+×A=k±¶yÚ›}ŸÅ5 {d¤¶ùŒ ¢¤å¡õ&wR(I¬’ð)¡°JBê/ˆˆk,uéÂj À ¨TXŠðkó¸ÁE³>êCÞ­WÀ“î¶Múð1¦0%ø®xTat©:鉑½8%v×oIÁ„Å‘Ðð}œÜRL'׿öÞvOý¦n1¥6^× ”ÏKVËxËùºPÔµÍÂzÙ7s寕u(³6¨nLÈþiÀ!1ŒfnQQW„ΤJ2n·`ûÛ„¦žZ:F%QØÛ°tgnç0¤LC4ÑZÇòÀØ2Í‘¢£Þ:c^«ÉÌsÆPÅÝ,Kͱ>¤\R볿þ± \_D)‰fèÕuV½ÜÛç‰ý•}.Ú¶ë”ýIý_v±·?\ý'í¤W#ÞídêhuþQ:ÿP8ô§ ;‰A8|Žåâp?Ý‘}C}:+0%lƒ—"8ï㢓0s¬Ž–tÜÍ@ö.ÝÎftê}ODÁûú‡P,ÙÂÕtEŽÍ-Æh,íH}2"… Úãkf¢VÛ¥^y¼æÎÔ5¾†˜•ÁMÿX§dšoÏ+¶Ù¹óÝû«‹›‡ÂwÐJs4úiÖúð» ,Ô³wÜ$þHº(¼™ˆ‡ mèÓ\#¹~*š¹!ço¯ÅýgÔTƒ ôll‹&㥓F%Å=sÉ Ùý뜣K8#$¤†è;¹×ì2)l¶®›ö•tYe3J”ÿ,éÿç+ÆœúŠaœ:ŸÈ•Bg¤Ü}ÅÀ—wƒ{J†n ¸ûy¾Z¶mGêÁY€Çû˜ý jÜ–endstream endobj 673 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 6352 >> stream xœµxw|Sç¹ÿÆÊ 3(H œC)ä&)„6i€IÙaoƒ1ÞÛ²eY’ekKGz´·¼eyÛ ³‚Y13@mf[.dÑ›6é+çå¶÷• IÚ4ýÝß÷ÃFçœç}žïz^5zÅãñ¦¬Z½:I’±\’”“™5ƒZOm 6R›¨YÔfj+µ˜ÚF-¡¶S¯R;¨×¨S³©¥Ô2j95—ZAý„ZI­¢VS¯óL<ŽgæYxÀ³òl<;5žšH=@yj6i5š óFíŒw}te<ßÃ_Åÿð¾„û®Ò÷ŒyeÌ­±Õãžwcüò qN,˜xñ¢~ð⤣“×=4ö!—@,xÿáëSæO¹*\%Ü/ZñHÚ£ãýËÔŸOÝ550mé´ƒ¨}Â"C¯”ð†Rk~ ”¯w Ǽ>o®‡D¥`Ò4øË; “—¥”%r*‹@FœFOSÄÍL;trm@»‚Pã×Zõ¬ÄVäF¸üž;`…ˈ¦‘ƒo“†ðTÐй[¸’2 ”¨CûØaÓç¹Fò‚Ô²x2 °œ¶¡_ÇOøû¨­ (u8úl˜‡¾¬¸½Œžø´Ài€S™’¥Y¶­Ðûê½ Þ0[3°‚Óô[»û–ÌÙ¾R¢`Œ§öDvÂN¥h䥙ekÁDk>«5ìbªÞ®=Òt­¿¹ t¿7-kõvüPénV+±¨@M'tfþ¼=åa&ü=nœ"­åExCy5‚€tÌ2«Ù®èÃtNxùê_ÐØ¶æ–†ž†A{Ðꨡüå¹Yä0ijOÚP%z'ç¶°^KÄ ùP¦.×iñ x±ðE´ÃWUÍ~‡ÈgõY¡Š¨€Û³›ƒ$¦VÛ Éã*Òe]šb/‹Æà6œŽK F‹Å`mßœPº•+&€:ØÚn‡Ó ½\×È,|*+°ZkŽ š¡²¢2ü#¢„ñ%Ö9Ë@'S¤˜Dj‹Ö Zåƒ&Ùá,¤È€–Ìî¯jÒt)ŒzIÖ£\[wæiÿŸkþrnÓ×—_Àã|‹/‹Á 5Pæ*¶Úìµ@9˜,§ÂÜéjR̺dÆ#¿ªfÑ=Æ 1_°iè†`îOŸÁüÿ²z;mö Bþͺµ‰ìüKÁÌçŸÆc<•_f0X5VÎ °ƒÍY}µ Ñ:þïj^Ù«öUû½qÙ‡æ ‹ÓÝb–*$b“‘ÅJ\‹G¡c†yˆŽ‚/äƒZ?ƒ'q#CÅf8<‡¶ a"þÈÊÙÕÀ‰€KÆ?5ÊË7Z¸ùZ¦aKÚˆââIkýZl Vj3Ø no§³®=&tÖXí/²¢a(ÔÚÚÞqÙ)òÇ@TMOø;M§ðæzf˜7Ñ®ÅEËQ§àóõ—nÛ‘ž’ÅhNì®K¦„V.Ï,_Ü÷)QÒ¥J8µIÁâÑwÖé2ÍúD©Ô Ó9Mž¦Â{¶:b¼wI¥(ÛFÊ ìG/ºÙ`^sÆ@#=ˆžB?bñD¼@ùÚŽ¬4 ——ÿÚà°Ø£h«»©©¹ºBÔiqWÝ×±vm¾Ož›G¤‚ŽèßÈÜö¸[ö’îì­T›k,.1]ê—HÕwýå½3@¬cà&šùÎaRѧ§ã¢ÓÑÐ%kT šóœ‰ÞtO²úé–†³7éS*˜|KI1Óe^e8ÜPÕÛ¿{ßB,L›‘øóëÊs\s\ i±äE<®ìe0=ÆÆVh¦ëKRq®t×úÓÉ7Ð ½h|ìû™ScÖ%Š -%<ôVÌ·t`ÒZ8µ‘ÙýÄæ¢L ¥š`{ƒÍí¨b¯£#ñŸók}ÃT’³sù]èqg-¸è*•OÁå[2´L žÿ,¿DC0å!“¹É_‚»M Ó›zROüñô]ÓY¸(¦¹ç"¨ƒ v±t¢!iùPí²9­.=íövÙ|ï€h/y‰Ÿè‹â°À¯SÿK6såk0'Ägøo"•·Ëî»ö¿~ôŸØ ×ÞS¸Éö –0„Íu òÜ•¹oJd/£¦xt†ÿ ܢɖYVƒHùCÏÅDbAñ½x@]ðÆEûîÅ‹©ŒcÊ6È–&´98ìéd›e¯ðõ8*DÎz_io5µQlÉÔ1‹ð ‹)yþbmÑôwŸj~ï6Ðê _îÏîÞöLž¡¬­ÒÉ4þgOwÐÞJKv‘:Ï dÓfJWÃvú™+…'.uõ‡«ÿžNñè„úúʶª®ày¢D¤Þ ·ïÕË»èüã´ö󸡥QZp² BQX(..w¼:ƯnÃÈÌ›%Þ*Þœ‘A2NBAëéfwÄb÷£ΰ¯›h^¬z•\W¢g8}Þ ësÍr-2[’͹9)@χëUmÎÞÃh"ëou… –îÏêÞþOÇiú¬7Ò9rœBu¾^Á&â1ªJÏ~+ã—U‡áj³wåC+üžß;Øñ^zŽÄô@àîbZdü‡î+VÈ×Û[¶yüÙðÇ]hº»làÅp]¤,.æyw^Ó.¢O÷ãððSÏž\þ^í1ÇÛƒ¬'©3ëÈ?vOG‹ÛðV£ÌJ…(qãžÒ| ·•ì=Ö†&Öb#oöw÷Å$é%ƒÁl°c™o"%o¡¤˜2µ|ŠÞú4.ª¿[©ÖlÒ›™¬éK‹ˆD¦”¶uˆG*í@Ó\{ë?½ "'4@]y¾±¤ІÕ%ÜVÝw|m(s]Æf‰Š)¼´É—ôë± 0ÖNÝæµ±_]j캦S».G±, OgKWg$%‚$ 6:ÃuD4šŠ=ÊÜBqöÎc%/u]uÙ™@ZWÊ Ð:1Aíxz¤·(m?ïð R#ŸKŒü“ÍWæïÜ“—“Ë\G'âc¡Q²Xg3:‹ÚBä€8NÅ›^£×f¥ÌKø}Õ6S)dˆžX}Ħ‰hz’vä¬e;Ó B2³š®×@Måy6ü©+ 6¯_tôbÅ^ »šrW~cȼÛË(œÞsÿ7lSD8Bdžîa"iJ J-c6êrLò’ùÂ]x™I¹ûµå Úª>Ø}¨ê\ÇM¶rŸÃƒà÷Õôy_+é™§ ² 5b½ŒM~L¾èçÏç¾ÙÛQÕÜÌ”oQmOÞ,ÎLÍÛ e°Ë®è­„ „>¯¬t¤À¡‘d•nßv0íÜŸþô Šoމp÷ ÒCÔq³/ÌÛw=.ºø¯—Ám0šÍ:³`&æ èUG÷ÕþWÇ96rúä“Ð=å¡‚Rò‘²²R¥Yzº¨Z]ÓÒÔÐw4¡ûUü(á'ðcsÎ,ø3zâ7_bß¹:ŽR¿å £@Øó/º”ÀËirê´fƒžc$+VʲˆÃÊ]RwfPé’j¹gZ»"çNtuÝþ,|„„Ÿ@Ï™µF&w‡´´Š@U¡¬’Õ+j³€^´ó9©ÑnðzmN—­9tÆê!’[£¯×õ)ý°Òw¿¸DV:çEáÒeëIÑÀ´Ùü.¦¾³µ© êÁ§mÌ«’V—¶ýû3hrSŒ´ò[”ý[8z2úËaÐ)ŸÑšt#”:†+Yƒ5#”ýŸQ:î ÙÝ`öuüÐO±j²28Èb2IVÏúfññ°§-~)gVZ¸XŽbq´FWm±JHuðK´#Æå<Z6æUšdEö†(< çà\‚Ëð<4ú)ô$Ê@E(é˜ç{°¤Ïž‰'îxý¥µ/=óµ‘ð`=õ.ºŸ½òç/Ž¿ôGoÀ³büüÜãgÍÍhA͸Uæ |Š.­;:ô€àÐÎú=™«ä3sƒ”ÓáIô/î…ØöÑVþ´bö™ dÕ‡ìÞ.¨ ëå™8¯8u×Á¢}'ûÞì©fÚÎ×£ñV÷ º*¼q/®(ØŸñýg,fÿG]èmWÀ[SUQÈy¢I“JZR­ªÙÛî‰1åÃh¬ÌÀoo„£‡yï\‹CwH'â¢k­$€{Ø4útq†Œ½É!|£éøÉ™g×^{óða¿µZ²°Ð¤ÍœùˆdeÍ÷¶zý{É \©®)(Ζ'ïé.ùzðÚ{ƒLKôaÁ¼Á –ËDRyŽœèõ6åñ>bÇ4½Á6=зèK¡yF#—)6¥E3¿¥º1|ïpàî”›³_ÝøÝ{‡Êýh,œ¡/&ï_´jGÎÎ4æ=ôök3¡ žqçÓpìIjÞÊÊ@ÈÉÔü*üñÈ-ƒÈæò´[]voäTGS¸2RC‚îfú¦TÌ+zÕIŒãÿpß0 ­ ŠÃ$ü „ÑñȤhËŸM™¼oè‘è1d–þ"%E,Þœ=‡ôs4ÿ" ¹ì¾»Èkm#X¦ßFq0“E¼;»€Ö¬'¶XøÊn…è,}¸7âzÃÑÆÚB¶Á»Ë"¾/ÃhìUø’¾1çžÂàžoÈô)prFІäÀG¿dÑÌÅ?^BÕñh,ÿ“ê J]ŽAÂêóµiä°“Õ˜Bã øÛÎ/C1 mÕÝÒ÷x ŒCÝCñ‚Ú²JIA¸@R4Ô·Ö·2Þ;ÒïLN¾*ëõ­w'ç ÕŸe{ÿh›¯Iä©ý&ì=›úCÖ$ÕKMV'Þ…éÒÝqyH鄎Œ#d3¼±!¤Î¡Š#C³›yhéU¤¼=†T¸’Ù¡ Iꕎçë—U ¼™-0@øÁooÿúìn<:Û$  ø¬ö*såÇÛÍn­Ñb)S1;Ö‹oi\Ak2‡ïÃãç ì|CÉþ5¿[{R /‰æ¼ô쬕8.Œhp6ŒouXíDW}z+4i?c2mÀ2²nÈí´ZCæèéë.—šJ=“Ê·b¼ôýgÔ>ÜÑòOQÞù¸èc¤¥5eUE’\InI¨´¾©io“„/ Èv;}:©sÛŒõwÛåµZk*…å §1«Ì±ÛÀµ}ÉÇ[›*»ÃLãAÿéá€÷t9߀MÿO>+[K´.ÚB V§³æ[ŸýN12š¸ZÅ«V+fÒŽS›õP*Z0ãp{cmWSÝŒ}èëQ#©|hbL½†ný{õª9¾Ÿðÿô°z-Úš¸9±¹Žü†Âºlg!Ìí+ãé¤Ö]÷ö÷Œòµÿj¯¬øwûû¿½G-ÔçërÙ|LkÒ,m–ÈT¢Í#{:âjló0ƒÈ` qˆ¢˜®OÂü’ͬ¶È¤þ'!ä})G'ìçEë¢s1?ÑILy:f%1ÙgðhÌOû"úøZ¯JÐ0¯c³zW¼Úgq1!þÕâõþéwHˆ&6¡©àm>óø”O}è Ý:½ýAƒd ¾É/†THLÈHï$'ˆÑÚcsx\ÌÑwÏĤö4?ß„Ç'ÍÖ) ”ô´¬Rlõ4w˜Ð!°Bb!Šçgá™ÚݰŒ0¦À“éKô*€®­«®uÍbó®ÁEh†÷ ÿqñùÁ.è`'DCx‹%\ü-&û‚µ ¾Z~zñÓÿOÈefݙƩÀd«ö«ªêÕvÁ/YæšU›ÜVpht? ÇÐ,vÉlÌã ¶g­Ú‘ ôk¥xÎZ{¬Ñ£}]á¾ï G€înËûÅðž•£îßÎðzΡæ ß´DÎ`ÿŽÃ/á±sß|í“aÉž«‚#9Y4j¤v¼O@BÉK™[SÖn“½d{r×µÖÀGo²û¯ †ˆÿƳ<'ö!UßÝ3–èo Ü;‰ÙIÚòí©$[Ó9ð^Cõû9S‡îÝZ|j‚~ù°,LXKŸ»Íyîè+xÆÂüsƒ ÿxþZýÙ_1ÁÍí9ý@DNV²xi¯`îË/« 3×äö_8ºQmo°‡ß9QC¶åßžòó4XgSÄŠúi…_‘¢•¤á`=rÖOŠfž+?5eòèh-z]à Ûc¡±OÓ]QU•U(ü>ùçékmÝçï§'mÚG ¢n‘‡ Ú’ªƒÙxZ&žŠŸ»ƒ…:‡‰h ß »Õq5 «ÖJ¾ §álÍñž#]Ýo„èåNjgqBJFjV‚ŒHä’='ß®´U’Ô>ˆŒmhÒ{d´£@ÔÍe•b¯Ò®”šF…6Užš“§ÓkõZc‰Gâ,‚tH}Å FÒ¼¢}ÐÙØèð62A¯Ü]JOþ‰Oê>ùÆ\}½e”F%WF²vXvo;Y›ƒ0û¹UÄ=1k‰þ€òž.pš]¢zŽÑ–Ê`+,EÆâw‘Õ ý~²NÚi—É¥3˜ŒzƒåØ“Œ&ë%"u}ñ±¹@¯o)‹ÑÊks9mlEo›Ã­Ðº°*±mA¦#àt:¬À>¡ZM8F¼Ïep¹n‡ƒAräk{"Ò°AÌ o»ô™¦ãÁ˜Ǥyv;ïÀÙ?4ýþJ\T€V¼ÎNh‡JK…¹B{XÚ—ß™xzÕûÐ.ΜN¯Çëuú>«úÍÍÙ=¥´Ãâ°Ø‰5VxÝA»Ëæ".ÔùÊíiÞ$_:hAkÑYÊ8¥©L[®S«ôe´VÉÅæ°9²²uÃm²4#wÛîÌõeë Rs YÓ¼™5yMI‡Å§à&\»Ýð½B&-N_° ö@n½²CWmªƒ04¹ZÜÍÁãµ}ûöFj#^»QX›^êIr”Z 1—¯/ˆY`‹¤hÓW<´<‡­‚K…½)Y%…ùµâö@Ðáõ1v›ÍcÍRöJÆš¬,önÉVäô@¶fäEðïÆWqh〠¥¨!/¯¨(/¯¡¨¥¥¡¡…™å°\úµ²„];”'ðk½j½ž3p þÃßVËcÀ©½ZÐî®r1èö×/“ ËIþH³ÝJݲ%äñ+?x­ôÿºÔKÀkÄ3,Ƴçh[Qû Ò"wóðZù¥Sôíí*~òί¾'oðxz®­ ßT W¡·¿¡Ù»«;ÿà÷®õ–n¢<Ò¡-%¼¨6.Úo€Ýlã"ÚúZ¼;zI(=³)˜49·Zç5Ûnp—þnâܤR P.R„T••^¿Ïà êÞ÷øül¥DTYìƒ& Ã|âµ. Ť-~å†ùá1ƒc™1£7æ»?lµÙí^[eÈZa7Ž¢þ«…‡ endstream endobj 674 0 obj << /Filter /FlateDecode /Length 5895 >> stream xœµÐo×Ù¶­ŽÓ2ù§Éìý´ûxå,ÌnšªwýtËàj×TßÞ% úýýqw¼úŸ—ÿÀ]éK¥6s1½¨^·i½g„õFm®®] j]ýüÓÕ5üòéjSýk4–°¹ÙõÛ±?q%ÛÕJ©°‚ ›F(~þxñòÏ¿T/ßb¶Õ°ëqH7´M_…7ü@Û–ÒA°)~ѹê}©ÏG~ßÂóÎhU·Õˆ£»êÓ•n'ëá>ØÔÅŸ8¿U­o«ßS`ûa×ï PãGþ£®Uõ:´ïÖV7 „H§¤©¦a¸."®€¸  Ÿ3Õd‹<ûqA,Ey'æL)‘Ǹ¼Þ„éFGºò H$–W›ËB:€4¾#ñR L q‘Ù=K¡ÕM¹6Êm:àÀn:âö7±3èYçl5Ü%¼¾M‡Ý!Éjã”GUk†™p«#êÂû€o,åÊ1à$;”,ÆGºé6J›x¦gB™ÖWw»¯o¯œBRhÚ¦Õð»«~®@èT[ÝÜîSþÜmq”¢Å¤A-ˆp·ýÐoo¯ÖŽ‘R7~Ö)_Á¶}(¿bš!.¿%üb’yí½ÎÄhºÆàåñЫ&1-rÍQs L¯MÝlÚ¶»¼&îwš1Dá2@´Î™*åã0õÓn@ì[Ø×Õ§·Rrq'NäÛ0Îi:¢?†ç@0!á)] {øíá·Õò\ßD”$ËÇáÀè ÓÞg‡e™ýq”+écœÓàAhPpÙÆƒ¼£—$‚ß}*‚÷áMÛUA•Pà~Zä1Vu‚Ï`^‡ÒÓTÿˆg2ðkÆÊU/ˆ¥ Txªtt”VÕ«”ª™"f¼¼­NŸxÚ]<ë?€1ÂÓÔ8RK¦Aµ¤?!xCºè‘Ä ÁÓîI'ò¤®ByöÈ&+Yœ©Š[F³ö õ%¡˜"ù<Û><‡“!6§0•âÀ¬ I¶¤¨sJϽ¯ž‡ã©Aóÿ&‡ø°ÁžÂÆ@qü$€Ú˜][PÜÕaå{ Ú´ìú{icß"Ãä_«ç?}ÿëUÀÌ#Ÿ,Ü‹)ö2 ØŠ–?FËü&ùÝ@3¢ æMªÐruÏku˜>­uBA‹Ííwtº”U6zMªÌÖ6€Ï`Ö‚ ¿†#P,'3âP×¾ZÔ!¿ ´4+"@ëRŠbˆ¾3ï×êx{J„{yñÏ öEÝåø¹>¨1jÓé-h^ß¡#ú r3 ‡@ƒ*믒•>{‰¶Û›®Z\Ý'"ä6Äû•T*_Šo×n¬‘½"ß@‘t‰³êµ¡(¶íŠ×å+Scψé1ØDÕ :Ò$ ß•|,ž³ÞŠÕ4¦ÇU(¼)u‰Ç8ÑÑñøÑóÎ6™ºd‘v…HQ×°¹¨è•ùà‚£ïÙõdW\ÆB¡9A8æÞ`îIBqWw©ÆÛ4Úܾ €Çgh4ðôYÔrQAôlAèìw™öœg€¾ûê¶ŽÞº4’3J§Þd~Åž¢Ô3]ó¥ÂFÒ{’ì\¬ž£[ãiÇO»émøË”Sðy ¾_¿‹SB”ÂkèJðDÐAî¥?Þ†IMiDø¹ !™Ñ@ÒžeL}» Ž9Mˆ‡“ÞKé°¾HŒ³EbO-˜ oПÄUz/wëjãªã®”í 'cá5ÐNÆ¥©)NbÌp€\ 6$( ÅLÂÆzT˜©9ÞÍ¿ÕéÓ—&!37a:lQœhX–CÁ›*œp¿:dmÓU¿Ç‘M9f%GaloÃ0Ü’ÜÔÓš¿c 'Ää«áHsDÅ–<%½ˆú¯ßÝ…Q®ÂPP. ‡Ñ+W˜Í±§&÷Ó4î^%ê%m©X0{ØàSì‡éˆ.º5š¿³-TÃ{ö Í4¸ˆO"ã‡ZÌüLJ…x258ôªbÓGQƒ¡Ôÿ–-âeËý#^àM•*iVk Wä©9†<€íÚUG9Ú ŽúÐ&KzÕZ”_‘ IS¾\C˵ë!/øMsÀSEQ‰äÞM}v‚ ‚•Úæ&a|~Þ³nEÿ •ݣ뒅Wa0$rÒú‡M ‘8mfZòxúW©0L£Œ’&$žâR_KD0)!J¦AÓß±’/rwH3e ¼×³ªä.=wÕ;&«Îä8 ¹èÞH¨ŠYGœUS¸ž{2ôܱ> î‘4µ¥ïÂs`àMŒH"[ú$g7—©Åà ´ èž8oè±sl·`¤€/RíLR÷¢Ì"æþDÜ|.<Ì7™¦Y—zàC¢!öý8[ý4¤æ°„”æþ«¿¥j!¤‹À¾eÅJD.%ig½w–$ÁÔ†ràì:X:¼‚xû}0ðàæ/ºðrLgºÜm°ä’sÊ—€7¬îß§§“q(ä`ºL¹‡mBdÇÛ„!`[/£_ ‚¥ÉÆJŠC\C*ñþ½HKÑÄ&ä÷hë:îÒA”MfáWTÀÇ+‡®¨"ì?$Ú@Uä»3¤ÿûªEEÇâÚ€ÖAñ'‡ž{ÚèÉ!äš»4¦†Ð¥â\sõ‚+\YØ]o¥»˜Ž uyr x£ûŽóå9‘o^€µKÖÀÊ„šÑ¸ûp¸Ḭ cLÇ= 9Êošº©Cö¾ÚÛÝë~ÿå š2Ëä_3õ²l•r“¸=ee”G€šê°ŸýÝÜŸpJeE–Åì(÷Êì(*/ƒAW“Å[ŸØ>Z¬ ݰ»?¬¥Þá°/t Í= ÐkL(n¹°/0Û_ÍqϾÌZvd'W4Ï;v2~Éõ ïOÆ2kVTûz£Úîœ_ˆA.Ö;‚å¤ ¸)Ô'Ÿ.x1«épz‹)”+ŒÚ”£¦Ú7ˆÉxR•2“²¦îÝJ‹ƒ§Ø4³Sˆ@'Kàdì5ŒÖÆJÿeÖLÖI9ä`3HüE~ þ¤|wuö»›ð§Ë+O‡!ƒÂ0VŠ„¬ðÙGÏ13½$Wñ¨.ò˜==¹HͰKï!Î9Ö`­f®®qó-Э'X¡âÊN-48¡˜øÕòH&qþhñæA„H ©Pßäp8–³©R‘KÌ„£µLÈ›\GÉ/f!Ëöô,TÔŠÒ¡ÕᯮÁ]ÃI¶[«Z¬$<ÎäUE~þ&"œ;r¸ZÍ%Ç9ÿtÏ=ËAñIÆDØNgÆ=‚·`Î81Ìaÿ“ö€G¹­"sö±ôU:ÒmNk×ÿšÛ§bÁQWï‡/V“€¸Õ›:k~ëcWå(ÂÙà+Ê&Êã1Ò™šÖ ŸÅX4ýÃwÇ\Ïy{4 ïË윭“RtÄá«"ñå Ëkîê=ŠYNLa$DÖRSìC~•·¤QúÔW "ä²Ä ¯¥É&¬Öó uƒÀqÑà2iª€”åSKL.£wÜŠ Y3ÜãJ™œÆø,Wúš¶k| ›öi̳ùw°J|‡äá*ª¤V<·+m<œ~0ÕßwÛ¼¯v>sOïðQZšº»´µÚ(ë©ÿF'ý7Ÿ ÏêM〇 ^{…¯LH^4Kî·{ì£-t= ’N´6ÓË:depÖR\LZÍ q¢÷òlOq@ÀÊ:ª³g»ÊÄ¡¸Ô¨›u)&„ÍRNõ¹ €°—1í  › %„ì–NEìùÜǶc%RÚ K‚?ýí¸~NA¸µÖuœ—j#æ§wpµn£­ö—@£®C£U¼½ÀœNµNEuHѪ®ëžÒž¦À™ÓªKѨþóé»S`ú!0êîŠ*>±x‘‰á2è°ÛçŠÖ6\FÐu]?…Tºó§Üîyóu:DÜ´œQÂß-Æ0Ñ6`ÇoÕïöÂÎà>²//»Dú¤;æ.åO)ÕöC gŒ¼…0rlmó §eÎ=RÅv“êB€ÞNÓûÿ •h•¦·iÿ^õÍ7=¿‡ýfÚmÇÝq3ŒÛož “5èbÝèKLYxVÉ›àZdwttM¯u‡>Š·ttrKç»ÛäNE©º§ƒ7Cz°ã½‡áàL¼§£›ØnðÈ]snÂZ¾¾!ìò$uë˜ êd7ÆZN&‹Ð.ý£ßSé—iÏô~]Ä3+E[”l4äÙÐÀ¸½=d%Ã}˜Žš}/Š&e½Ûr☲‡Ô÷˜7³Ó$¼†1¨~µ ‹žÛ|Ьœ<ù9\ffÚI8=³¼³Èm¼)«’,Ø4A­ûÜÆO¿[áO¢•¥Ç®ìW¡þ3±ÚQI£¨”pªAtÜ4H‹XÊ20í*Ã8S¶n.÷˜¬gðx>—F»i$.E–'N`Æ—^àåÇ¢–n¸tw_ÔP†%ëbH©ÿ‡›jOõÿîˆeY¿-0žûî wæYznC3™éÖ»h©ÁÉduŠñû‹ÌC‡‡ç½ëz,¤i# / lWú¼o‡rr–—2e}5îÃÉdj+®)g"  ­ÜÏ#†|ƒw"ɲ›V4PŠi–ƒ¿ŠÛ˜»ã4¤49ÙWŒçâ{ˆÄ2¿¯è–sóϰê#ûÚ­”5%I‚ÿÌéT¡UEæ.ŽÏZnûSi±âÐÑ}*NÏ<ÓQU˜¦*[kxEŸ”ýž´¹[iyœÝc¡KmÌP¬øz]0a4­Íbò~gÈw€¿ÿôH­†‡G˜ôÅÆîcd{¨5¶— Öjýf%xò®+·˜¤ Äh„1Ãl­jBt™vQ øFF:ªkš§˵Þi/µ˜Ú&³æ ÷d[ñdwô»Mªóä†PµH£¸ê¼}Ë×1œbh¼ ¹Ô7SªCË×:À^¤îöÒ¸±„Îì„Q·yÌÁ“ùO¡Vož™.Å9«$°EèTëÝnºŠ7ï#+“Íña¹},(ºJ”b!ž:zæ+Ñ®º45ï–Cl<ýø´prÐ4$FÕ÷ýáг“/O…X m”8Žëê}zux󴨹ި¦ý_$”³«åN!ÂwO9ƒß8‰jHXu_©˜° ñ^ NöUÓÚƒmÛ ØçÌJ’žú¾›,-‹û3÷þª¤å4-þn åßC ~v¹JÚ«i^¤ìmexSz6)K÷S\«åºy{¤{ÒáØEØ®KñytxVz¯fœ¦NÍŽ/ô”Mc8׿eÚª.\Ä:)ÜŠƒš5Ì£ûe»–šž}¨ý¹Q—t]"'Õ?Ie­r šh ³±Wa'näÐà;wø%ÐÙÏC—nÔc¯_?/oè£ÿlìJƒN×Pæfá~R[>†À¡cGM²â’Üœ ÙÈn ;Ç0>´ƒÑÖáDôÉu¹!k)dâ®w‹ѱ+³eÄ´2[ç•Ú“ºÇô×)®x ‘[ØÏæ³õ|·Ÿ2,â}Ù8úÊÈ#ªµŠ/èÒ¡Uì»–—”†ÄÝ?J“aY¸å&G¸ì8…åZ›]T™¥§‹L|ò㉪ÉÛGUý˜TM™m)Zè’ÉJ[²©ñ+)ŸÅ²ó\û°ÀÍôËËUço‡<‡¼Ž‹- *zØv½yˆ>¶¢OÄé"lŽŠ~ €Ñ6 mçÜ2kLÏ‹¾«ý¾Oc(î!= m Š¢ÚØ@$/¿­flem&ϲF| KŸš+5 3n.Å„»^‹£?ç±d&t¦~Þw,³xÁ;¸g›Ž>аŠ¾·oé»TŠe·ˆ¥f¸“b;'üi  ÂERíEiÉ?ÏU4› fó·ôbÐŽ.ZË€ï„6âÛˆÉÊ ¨œzæ›I9tÉ“ –‘Hvo=¥<Ö‘8×|>ý1-‹_èv-mE¬°ÂñÂO‚a[¶AáΤîä3UwY,ÈÅàÏï¹*eH-u!¸~PÍ’FÈ€|¦Ç‰†XpÔÎ4´’ã€õÕÝ×§eQÌcd[¸!Sñ6ìÇg¸6û"ß.n7|ð Á·Ùu~ð—W Æcœ7ñˆí7µŒ[ÎòªŽÒÍ-ñcΕþóâŽ&)cendstream endobj 675 0 obj << /Filter /FlateDecode /Length 4812 >> stream xœµ[ÍÜÈu¿ÏIºä´æv ¦XU¬bqÙ,lÀFœÄëI`@Êš(wOËìÖHò_à?;¬W$g4«5tPY¯Þ÷ïÕã_/«R]Vø/ü}¸¨.o/þz¡èéeøïúpùïW/òž”mժ˫·l¬‚ƒh[tçóÍpwZ^Úã[^úUQn¶µi•-®Þ%ç"u ,²®ø.y<œÎáEUÇ;zS{ÝN]|bÎÕ®èNÓèn?„“Û¶ö¾è˜ÝÀxÝ_Â8àöNR1±êt-׿9¨*·Ãµ@Z°¿xÞ û> ô®@Ý ß®.Î)úñº’Ôœû 2Q;dJØv¼Ã1­EP#Y s×|Zµ¾-ºÉóǔռ›ÓÎ馈d(+é»áUaXœ(Úwç>ˆG²:l£ü·Ê”¶n5«Aw¼¶5‰£ÃŸÎæâ‰r‹ëŸN½xÒíã,‹'ŸVÛñó¶ž« · Ì~ƒy 7aÃZÊ`WÀ]ëÆCz8ÝýÄ_)P¥¸+†ã›dPÊNT\¦N‡v`Z ØãŠÖ±»¡ïÎqÙ:ÓÃsèÎÇá¶c+Ð@ã)mÇ\B“阆TNèó ÄÚ±%A‘x¼¿¼ú‹«y¬‚ùÖ§0™èÍœ%m¥ßÕ¨&«ÁCVµ‘R<²…(ÎÃqÏ£Ú^DëÆ¿— M³¥ ÄɺÈ<ðÄ yæ©x„(:tÖ“«¸ §R3ÝçC©%¡ö3E¦.Ò­º¡;O”9&ª1ÏÛ…åjKF;W™5öCdÛBX_’m!™ÙyFMA@¹¿ME-Døe»ïÿBTŽ·PhõLÆÓ§óðq.°".€t©â“8Õ5Ù‹ö‡àñ””Øím ̶F œx-Ôé6÷‚õ™%‘á4ŽômÜË¿ñhUó˜…ã(µh°aqÔð2z§§ SŽi¦ ø¼¶òÒe§[Z‹çGF·Ñ¼gƪ!œ¸ÜX‡A˜ß b Æä±xG1Å4q`j.89 ?Ñ  B7ôCj‚²Õ°T«ŠTÝIˆvFYމ´ðtfÁtR%Â~wîÂdo2õ9‡Ãÿ;iÝR©¤q÷  âý)Šú:Û+RþåOkIÉu*qqQÈ¿¹ºøã§¼örXOueŽSݺF·î.kJßhLu‹ºT˜†…Ÿ¼"$ÍÊÓ_¯7”"æY q¼V¢½ ˆöœN4ŽÜŽñ Ó‰Ý\‘|Sƒ>9ý5ô©_æÒ¶Ñ\¶uUQ¾”[Gb7<ªÊÒwiÿýí]X D)BÁ9OÜUj&§@ŽçÈJ)]‹qYØùBúØ‚÷ª&c#hÆû‡ýqLìÂdðíÇ¡Ñ)Ô0ïG$,(Õáx Yã¡OOxKC!6ŒqgЬaxóHB†tÇEpJ 'Axü xqDmÿ“nòVÈ_€Ìtz'E½ÿ‚ŠÛ[‘Ð’ N5$ _"ÕçôvÒbp?'E†Q' J.¼`ªdRN¯7^Pur–Ê“=øžL¢´40mR œvÑÁf[QOq¾TÚ‡RÍO\ª‘f ;×èCÉåEä«-ÖRYÊd¢6TB‚Eüí†p ¯C¶¥jLëgi%¸I,éH¿Î’ž$¼žØ1WX?#ǬÈÍ®­{³ M´GÌàMâêu!¡wÊ—Ìm‡ÍTe NÐU=”Áþn͉ìÂI_ˆ´ø¢ÍàûQ¨ônª3ŠƒáM zwîo»™ß¡•2 ÙV+‡U1:`åד›ïfÖ¼dasÀ«p9 ܉§Ó‘k“èwF¸Di›~„K å”FÊIPÉ št)H.Ájjè—¥Æ,±õ•ú›±³õõHo[¶x1Òƒ>‡è寤ŽSà÷á)¨·p1o“?¾Ä-*¸¤-Nû#á&ZµžHL¥ZM.‡°ÒA0•(Aò{,BÓÈÝš…ü±¤sfà´Kóä¬k(“~Ö¥)Þ}i¨!>#Ûfî/œ§ZÔ’ƒk8…QA€®!¾}”Š€ Ô+8ëM’ëPÆd&ÈgÖq’¦ØÅ#šÀ6üm¥ ö2"JÄI‘Ó1ƒ%]wF ‘ÈQuσçÔβÓsÇ …¹iÍ!z†Û€F–8Eä¥(î(ýOp@G¥ äËf!§ç¢ "ùEŒ÷4¿ROˆEd–«§9ÍZB#óؼj‚¬¥¯l]6ú¡ø?qzŒï},)xúK¿Û™²Óù›yÒHÏ-Œ¡2%ý¦’ÀÒé98ã.œd©šW…óiQ5‰3tÉ2Ð RñO«Ö3Ô»*xÊW”³¥¶MV7@¥Æ,¶æÊáoéV/ õöQˆg –ìm–õFˆ¸à‹p]d7ì !“Ѝ1 qÖ€nIZP¹¨ë.è4nÎ[¼ù>ì­++®ù”Õ ~þÙ¬T¸êûé×`øº&»¾ž~ÿëvúݽÄô>øs´ÝtÒøž0TM§Â’‹ð4PÀ®àwXS1ŽË©]¸G€É_ÂãVI줃?ÅaR }|îMøÝô–÷+q ‚´.àB×óFL9×¶ßpÕÔúz:† [+b.Úÿ@Öù+Y>O£ÃxpW|êѹÓ_ °K×FSôç9ÙÝÊg„ãw 2¸%BX˜{Çè™{G0†nýl4B2þ¥ RÃ%{¤›9UP)Ü}‘‹´õLªü¾.>L":†0ß`ê3—0ΨËŽwªÜSreF–ãEÕ0˜ W?!v‡ëKJÏÒ¼ðc²É*(™Ws¤@îØ]ï_`º ~\\ݺñr?%e"q,NUn:|½î!áôÚ鉀¥Í©TnâÞZ‘ÖγÌÅMŒ/kŒ¼ÉË›êU>òGe¶!’ØGú…<`<®nk*ÏjgøÜÙoÍ-–ÎæQ›õWP•~âáã-X%ssŸpŠï|èl0 …ÖÌÉ€jS]*Þ ûf‚Evfª”}0=Âò‡«ÒŽ¢ °ÕûÓ1P–ޟ㛩ívî$âìþpàîÊŒwS~4Õn2½m&è{O+ee,î ~[ºôåÉj2”­¶Ui|žÇùKqÅ3yg‡àß´JR…ÚyŽo<%óT¥m«¢…éwaPí%R¤ÝµW¿[sŠ»°"LxCYúåçÕ~"Éêp÷(©öÏm‡ÕXº¥…zd¼œÉ…G=ºÆ`® Àry,rmÅ\FˆNäe‡LÚ”¹´6‚BAv‰Ç¤í¹!Vºç =Æ­ý¤89S'µˆèíâÂ~ýâù_Ûl#³®°e0»Ð˜ ¡J¯oBÅ‘@‹vêAØÍi–7ýÑÏÒ™#¢„Ä ÛïãMþtŸ¾jsÏ'l† „©[íN®/RSÏK7üœ3 ò`ÇÀò:g“—ðê“jÿ¼Â×·J%ÛGxÞ k´ÈVä¤UŸNó*31nkëÕWÙþ ‹:ž(U6J…8Sø-µ‘ÔÚ£ë%ŠT­¨iŠ^yOwø°˜âËâ»@ŠUëná_wÓ ¦´lþ4n²þ?tï^‡ëݲᥢm³¸‚@ØâÖ0¿)cv.ôàu5 u A„Ó.TÑfGf×p_©HNçnµ¦ ©yóe yÝï|ÌZÛ°6]QеÞüsàAHTÏY\K®8×û…{l6ûÚž7ìòí:ÌÄz~ÞIƒ;¹ì‚üœâ~qÍHu6Þ¡R]ß7Ô €zh4°í@×6tͨ¶ö‹¹f5ë-àõÁsÑRb_5.6ÑÄ«EEg÷™ ™‰w{º¿QãÍQaÈ+˜hüƒÂª#¨:/ñà:ø9Ày©˜Ôí©‰\Qn?Ó j$¯èêŸ>æ°¢*i*Wt‹÷ôÎF^ùZòµ¼-_¬Fuç»þñ8 6X¤µßnÙ&o*éXµQ$ âØBˆüXêa%þåÝò#„™òV‹…Y®¾,È?I`‡™HæÝyè?O÷ûT)M)ÍCÏ¡æO7yÇaé⛪ÉG×z¾´RSÏWô|ý'Þã2ÔÒeŠk8Nhá÷=öƒµV‡ª,¤ÝµÂR5µ@¶‰ÇýŠ–¯ÆýfW Î.ôJRLÇ/=ši*Eû CðváVšNnGøÑÚ‘¼Ê»îk“ßÿ´¬½ô$9œvØšF ‡è´`O’¢¯o›‡nŠpºó=ëYCºK:5°þ1¢›¦´þaH­ LOÕª:txÓôiºçN+²zÜïû34hV=¯Å±leŸÏô¡ÿ=Eìîdóñmiê¼þ$0öÖmMËuò'´T¶|¦Õ'Ewüâ‚É¢X¦Nß+¹è#%vÛôža5·0“¯èö_‹bjî!šzKf—VÞ~>pe<ä5¡E¼5‡|-Nð§-I×ùçñ{<Ù? ‘kìcа]ä°ê´`Iã­1A`«ßc1ã‹°¨ð•˜)¶úZhÔÔí^Zj6 Û= ¡¡7]UºôM{©µ-·S·û»óùÃ÷/_¾¶”§wåõñðrw¼>½¼>înÀß¿ü†fx,â¹Ê‰ _o¾gþëª÷°º‚8… vÓ=lñ÷E‚º‘õxßuÍ_YÊË‚µÉñ§…ÊëFâ•dͯm¢»,ç_³xˆ·Qߤõóv™šàZm4{œ‚5‘}ZÌ1uC—ZŽ\v Ðæ5 {ÉœÀŒï;yêØb9Ë?UKq}1¬á÷\];LMS<Û>'òá -ôŽ>Û(ƒç,JøÁ=·Ïç˜v=’”…?*º¥[™¤?’¯ìfÍ#8½©ð‘,ã„Ðè]/@ôw 6s%[Ä èåJ$’¦š¹2þh+%ùƒøMËê…¹TÞÄKŸSŽ}Ò>£ÙmÁUV3ª§èfl´\Tî)¦Aº ˜wHÈ—øÜð©¸ên¸øTÌÍ­":KyòV~q–üaÉŸˆvϬ#õ4~!ÿÍ·§a­‡U ü6ÐP%Ç8`:«í¡÷ã7o3çd¸¨-dhFjÚíždÿX©µæ«¥ö›„ÁŸ×ûèfŸ\%©â&tx·Á{S®Úü"Ív†½ô×Jæ(NqAñ.ü®õÏû ÄÄ®NjðvQؘÝâ'å¡B9«ª æ3ÍB+C Í.÷9s»¸.â÷±\[í<Æ/Ÿ~E§øÍ==K”¤u?ó£áã쟖‚ó<4±#²’Tèx–%)$f‘áNM‘aÔ¼±Ñ0Ìé[Ÿ/ÅßaÏDÉIÉä/þVV¯endstream endobj 676 0 obj << /Filter /FlateDecode /Length 6681 >> stream xœÅ][“#·uÎó A,_ /θ>(³x¼¹è„¼|ü4ö–5V¡„†?»xÒýñÿq¹TJöÁ›îûË¡ŒrbÝv‡ÏUB÷íö;úAh'C÷š>› ½ïö‡ãËß¼.Þ¾>¬ß\ o;×­vëÕáyìn0®ûü¦èbuý~¿Þ_þýñÁT¥U !ú`ŒÄ¹.ód—ÊôÞÚ8åÇ/±/]Ù}»Ê™n}³Þ¼ÞÐoÝÕ%6”í¶opü›«K`žAuø6~²{öüð|·Y߬n©ËÁuÏ÷‡õfu Ð(¢[Ý<Ë/Ùn}Øç/å0›W¯«Ãz{“ÖÂ÷H½“Võ‡‹Çÿ†k yk/¡˜ ¶¬ê¾yô%~1Ð7M5$už´M;_Ïð•ЭòGÓ=+¶cuèö©[/¼õÝa¤¼a\bMo\£#9ÖÄôÚhR“w±‰´nèjâzáÃ`KÑ[ÛM-EnÊÞtï”`÷-ŸtŸ].…µ0iß}Š ÑÿÓêiüøYZŸ¤Ô½Ôªš£çæx“çX­8¶([¾ˆ-ùfûÞz%³ˆ­oŽ;Ñ&¶ì•ð.ÍòßÛ³ô.¨ˆ£ñÁS»W­‘á ïa–EK˜Á>ï¾dlÁ8á_ŠJež¥Ž€á¿»”¾´°ÝûÄ¿"t‡È×±ñêÐݾÔߟ;Zi­t³ì(|ïôYv4ƒÿà­^ç–jërÎÛôÞKP§ÐR ØòãZ¤\H˜  ®b\{d\}äV[~|PÆWcګѰ7¤F»—3,JØFáÎúy_jÐÈFèSÁ_Ÿm›ô’tƒÎ*V6ˆ´®—­®á£UŸ„'™ž¨éöL#îÀÂTé ŸIï AA{ Œ§º·/K£†=(«³¨» ÆÞ7 i:ì•LV!¶¼í؇í@%ïÖïÒ÷Auå`«}~.²\ŒbG³Ó¶ÛoV××LÂȤâ[ℬÒ·(¡hÁJ±»¡µ˜ÁtÔ—Œ–a³-ô"޼ |›iÐ*K ƒÝ×¢Û¯.›•ï49ʉޙpŠ¡l/=ÊGâ¨þri>`é×»s€ÙF+L“ò\o$ØÞs.ˆ<›)tоž¥ç°ÁÕ;¶»LÑUL€Æ¾ÜääS8îS˜^˜$*Ýã,ú¥öèuS´¯ °%.¯A'P9(L‹¢é“zY•!«æ#z#òtµ¦Þœ`+î>]±MµPÍÈÍHÿà‡JT´ZBܪzí*“¼TNöÚ«J‘+&Á£Ç¦”ÆáPS°Ÿ6œË×W© §«ŸV7ÉwÆNJƒû,9Þ ƒ«£{½¹D¹  3*?ûU%£41£¢PáËÊOÕOòÄ÷«MûõÊìù íy ‰ChuÔ¸$_NËòi­™Ø õ7 Ÿëθ •ËùÑ‹îÀç^Âp yW1‘Ži%¡dÌî·ØRℜ‡~•uqt~ÿøâÏ8;»x±¿@2,ÞBx÷Ÿ<Þ”—U`µ\là xZO®/þ2Ö¦5EÐi¯°SǼP _¶.rí…SÌ)€UdLm=hXt­–ȉèrpü-m€‡Ø+ifÖ=ü* øNàwÀL|á‡Vœ ÀAÑ*ûn¿-ÿèanì¥áŒ_äõ-ý"…æ è`YÎ3Ò2€ÿ-¥¢8tÈ£?jŽN(E£iõ ¸{ƒ#›óèré(¨Ý—ÙÙ­øKõ0–_=Dþšn¹^É!Ø“$‚ð 47¶‘ö™ÜÁ®QÇWWß·»ÖÄä¹íÝØïÇø2Q¡Ó€M¼¬„Eˆ2€ý@W*ØO” ¯Ñ‹ŸÜE2Lè v Žl“ îƒ>0zŠ ùOÍùÇ©‰h ˜BEð¡æ|¸›€iyZÂT¨%lº"O1¸çû´kÉ"Æ&뜉N(E)tBÜN µ×| †;r^´¼œ/w†K+Û˜[¨ûÞÍ©{T£†”½Š~zÙ¦ £?ú?çuÓYª¤˜M #Õ9²¨@„Âý&s·bZAb(©{3¨Wü»¦ÊýHô[–M?mzôäXä(òi'âÈKˆ;{ŒˆAC¸ÔÁ4Õ¦…%ïñvÕúŠùlÑç×`:ƒÕ, ·b ÛÝ1§É…L ½5£³«ÀüP\e?­<¹ÒeÛ¯÷<)½PöÚûD6°_WäD+ ^öv·c¯³W2¥0Y¤XfyÅÛmw°{ÔpæL¼QÓ¼vŸúª%pgLRqˆ^;7! Åèi)Á´|fš¼©wËË[è0Ç&öÚ&œÓVeÂÌà‰Ó,F„3à¯#U±KúN7µ¯Ù7ÞIÝ£qÁïÞoco˜Z­Ýô–¯-œém60OÐËál]±*æfôØó“yÄ®–¸Ó†ð>ì.«CêKØIØCÏO„Rcêç06Öe¨{ ¼@?u›mÌ”x¥çó4׉ ^ždì%X…Þ UeRÊDJ\«U<¥²^íë T7PÅp ?{—9ƒ\ÌÃdŽ}pîÀˆ×i’ô§UUçÈQ‹E+³Ø}h±J*”]ðç$,Ý(tÆžt_”r¸®r%)Oª˜³ æe4ºOºç¸ê€lÛÁFûêÛE°w˜ÀJ>\jt@?¼ú¦@ÿºA— ê>+ú»#”Ô½†ÓéÑnûº(ɽK{ëí4 å¨Ð}µâ ¦2–Þ¥ tÖUz 9ÜÈîÇ#W•Âe±ýº N¸ê¡É¤)›.9™þT,r½ßNê0+AÜŒ©Ÿ;±ÙG¥Ë urä=XJ #à;ƒ÷Xëh«è5nÁ±[p“.=m°ì27(ËÛvÓ@ƒÔÝ›”'‚ǰD~ÀW0ŸÌÓË4§6”uý<%Œ‚˜1›ÑTl6 _f¢n»UÓ¦…8“˜]‰À’øÛu3±dúžrTÆØÁb ¶í pöÜÉì4„Le–°åâãGL;ÄFß5ÝqPTˆÊNñLµŠœñU9y?†:Nè×íì|c(ñªÙSèaÔÌ¿®’ØŠ¼õ&µ N¶Ù ,åÁ{åe>9SÄ£;™®ÚZñUžÜwcÕ£Á`)§¼*mÓ~ds& 2¹Í ,<ÿâO•+:6².ª`ÖTKDFèI&Z˘i¥ª5BÏ`ü¼Y½[oše•ì5§ö Ê&W¼f—±gÊTäRº%ïÓx>`Á›JÃ^Uþ勦A¯¹œC;îð\‰Ðçý}Ò½]3â®oÒLtÃ$RÍO0•17 :¿™ ·wüÉåµøí qíU¯(¦>%s¡·"dPÎœÌ ˆÌi™ó=¨#ÁdÎÇ*ּРp ¤;+tc1Z6gÇä’ÀoÚt„å¨`ò¸oƒb’„…ÊÇ"gÜeòˆ[ÒKÒ¤O”×u²ªÏõÚ„£áQÓ — % Õdy£‡õ‰ÁäRê^C8 0ó‹¶ðÛmì›ãÇ/¯qYƒr¾{‹ó• ºT¼!­ûçûm,’H¿¿1KÖ{©Ê$KtÏ`Acbǰ~Ìö¾•´«œÖÉï(ìýŠÙë­ž˜þ?*ln¤kûëµLféŸ/«äOmÈÌyC¦,¦S‡³‘(‹b¹ÒÛ'¦ ôú4Ò;C²D<¤ýízâ:Ó•’Õ=iÔ¼àÌ%„£bUx€ø@f5÷sÛel#¾Š!<ÖQ¶A¥lÓtT°Îkô5%RŠÆ«䃥hÆè“²2{ìlƒçxÕ@wñ-GdŸŸÛq¾2ÜpD"P!©üüõ÷g†÷ŒÊòXð«ÌŒ“ÙÍT”ÒŽÛª)K!óD\“hÔµ³Il*tÙ’&BN“ÞrQób 7Y`—»pìùn»I/ƒï2–­k ö>.ìΛõêM8ØbPš|—ˆ¡{ùþ B);’¼ÿÛ+6y! Ü+RTJv[–A®Ä6“¸OåìrîØžûŸ÷íx ¡9Xã x‘ì¬ñ;f XÜŠIn’€¡zçú}!ÄøÈ¡†v]l@Êz£_çTßQg&Î"3wïã+¸ïÈ„ôº=ÂYºPÔu8cÑM? 0 °+"Œ>ضŠmi^gOeÞâ"ÈyqÊX‚+C5íá¨úhÀann— èªäžæèM=RSÊy­'Pê´#äÄ?ÓTÄøJt…†r¶u6qªÒjÚâ³8ÕØÝ0†É8Uéi®6ÆW´÷Ø/vtÒ‚¾x7A¤¡{ß^ÓàuD5þ Š B"¡• Î5+ÐÐSŒÀôÖQ‰Ë©‰!Ue1Ó®Cñ²'#Ì*ck“5Èï€Öe5/’J¢ò˜pTŠŠ‹™b~NDwïs @±';18YYQ€ÕU-œETò×å×и8KEZ%ÙH±¿3ÓIHJRy {Égü‚sØU‹“Žu.*MP¶‡üôÒ**9 êY’QúÈÌ%ÛòÍ_Ÿú€ãû83™i*»dâ¦ú¯“>n7ýî,w´êâòÄÔá4ƒkÛ'ÜFÜ;Nvé^n¶8~CÈó_™³°®ÜxZƒŠBŠ}+í ±¢T|ERgÔ§á€G¿áÜŸì ˜?¼]çYqàÄj%&ÇrlƒïY«r»vë=riØ}>ÌjwE™°;`…@yĹ÷i`ˆv¥ô¨TïYÚ2B;¹PA`§c¹'°ÐEñ®Y®Î“¹ `ùNÞ'ÃcÖL9™‡(IUÎõF¤ÊÝ_z›š.E…B˜¹ÂÔ®Ìý ddÐäÅLâÁ Gñ-õØ¥}öXÜÌe­ç±Ñà¨Ì©ï• #d¯.Wõt’CÀ‚,'ÖWQÛ¡´¾ý‘iŒ}¦†¸ÿ‚úžŒ¢Ø¦qy$7Œw+‚i­9(j°1I‰òu)h›ñ€åË«ٌ‹09Ç~ÏŠzzå5_Éç/˜'ý¿iaÀv@9{¯Š·ÆˆMÎPVÿvÜ>®Û2;Áòi»m:¤£!Ûr§¯–(pܤšTBHJá¡ÊNÎÚª$ê^ð#Þæ&àGœ?PÜ ìÞ§_ÃL{‘ nÇXñ×ù”ÃóÔ3ÄÖàN?T¼qÀ³šçÜ#¼b?ƒÁœ;ÐFQPˆsŸˆÑ ÌÙ_/鸕 ©taÉÃýr·æöŸUåïÊ€ÝÓå $)¯åЃþdý:äîIy­e/†j3åFÌTy¸ïÀ”ï ~š¡|í½'Á4R™ñe ™Nó ÉIUÍ}úxœÀ±è ÇW¸ßÁë6ÏR#ë•ôYñ´ù®ÂIN€Ç/}"‚˜¦<`ƒè`y[ئk,DáeãÉ$jžî6ÏÚ4UÓu–`ïUz"¾IÒ1q/3a$"ìHï½ç²i¬!çÙr5kÓ iò Q<œM½$5²*S3\ÑÒ´¼ÕÀj›ãÓ2%P%Ø¡G_C0xî–!0r&ÙÖ™d/ÔOÍG/c:jQw3Æv&c<¶†šÄ“OeË þ®K¸FƒÓ>æZ0ìÂ4VðLZ BŠ´3õô£N©ÊÓ¯’ÊÑ;²‘Mbéé6GÆð¨¶Îdú[û”„+>‚Ç2Ju^ÚÜå¼ú/s}Â?úú½¯OpF‰± FÚÜ) #2™Ï)¼+|¾·Z×°šJ%Œïµ! à)øñ âÝUüââ-gÅ›êAç¥[[eÝXˆMiF*'5O’§rÎûãu×ÛŒÜ`0ƒu厺ôî|ž±:Ÿn˜9f3XczqÍ3b|*­zôøþü~¯¨`PøC29®)EX(’´Øòw­ùáqMÄ!,‹–-¾g½g¾×àI!þºX=_›…G8-j™Ÿ-]‚¹Î¯Ñ¥hÑ%âæ½cêâ—Þ]ôêhwGµÿPæS(ÝoZxÚÉêä¬T`áó­«Ò;¦’›¥Àü4æKª2ŸÄŸP¹Ûhk&F¸V‡xÁ¨}§*¥{Þóþ¥Õþy×ï´ÚwÈs~}O.qL UæÕl÷h§"8=á$ ?”'NÆ«ºxº+yä­«ºRrõ8Ã&3¸䌹*=Pâó#.keÙ‹ýÒªëbL½«R[ÝÇyL]ô¼ˆ÷Í¡äÖnÒÄ”áI z140òé†È¦ÙÀŽà·Zf8Ý"Œ×È—d>¢¨°SÄ×gÒŠÆ•°ô•'H©×¼š2¹Bw, ýÍ"ªP‡ù L¾híÉj Ÿâ²¡F1;¬%]íL5iq.O÷6†Ê¥ÓÜÁÃ!ÖéB7Ýe%™®Vˆ·Dxž3Ú€àTLü¥¤È)+€sÂûÿ²P”ú©¢›÷y¦ªÂããŽáV»¤Ë­¨æäMãš=úa˜îˆ°/®™/GW^à+BvÜ’d"¹ŠJi!¤ƒ«¡‰‘ÃE¼§Ré,½žðqÃ;ÊZÀ“Dt§ò„ ç@ô<×_«è¯"&cv›ëƒ¶XÔ¦|A€å_WV|TTˆ|´(bvZ>¤÷Óš5Ê×j7Sb—°C›ÄNƆ¨›â½§‡õfª9Èá›Ô]cWjXÿŠiþ]¥yvž¡æ¹H"ÖM‹%ǰqÑl«Ô~Øc"L{"Õ’ð"9x—5‰ÃŠt þ$Ó±üŒ©”*¨U†°ä].MâÔ€{öÛkžifÞ)FX¶h©ƒ;Ø )\æxl1uJG1ð£0§0ñ ÛX‚í4žG7ÝÖ!ß1£§×Œ3ˆñQsOñÿñŽP×8y>â“ⵦ8E„çr~ŒÖƲ$òzln«¼sB,«è@|Ä€ÃûÃÇù5Ä¥í·©ÃÁÏý÷×+2¬ñÄkÔŸi×\o¼Ûuu¥«"+ìA]ó·-qÔ‘]ì#Òd½¹…ƒ7FiõíYMö£îŽ]-{úRJBJ= <9†.±Äûu)·ËýOÊÞ©ªeÐCqÕ~Ö.bHö¯¿Û??äLu‹œéMq’ñSJ¥ãëCÖéSüÏ^=™ÖåØôŸEàUÛüöÝ}ˆgauh³ñ9˜·¶Þ/ý Ô¿iÒˆªÂ'„\zR¹ÝDß'Oúÿ-l>Ç;ÆÈsnÊ$bŽQîÖ÷û'øU¦ýäúxØ9wîï'!³§ÒUx8&¬‹òˆžÜ)}㢱!ë€S“(ûÏ ;qj=j(§ó3îaåDÐaìÀ6Üz^cA™£V~Y_ƒ̵µ÷éõtÀ&YqõjTo'±–‹Zýö»œ^ õíõi+l6Lž_ó€~·Ÿ)Z Õ+¼j¹„uÌÞ!dqkÞ¡#âMÌý-æXÓ/Ð é4¼ù{±ñjòt±6¯s²Õœ9ׂÝÙ‰ Ü€ñ¢Ûúé|8=q$ ¥s6Ó+œë­Í·|õîJ<æ‰×°#¼9¾¡“'gcºè¶Ö0á\7‡pP¡zëâq®¶ €ßÉU„Àï ÷,ñ¢I?æœþ|ñÐ9Ùendstream endobj 677 0 obj << /Filter /FlateDecode /Length 2495 >> stream xœ½YKsä¶¾ë/ä2åK0©šxr*•MÊv9åC¢Lå²Ê;š•éµ$¥µò ò³Ý”VåªD:hDî¯__c>mêŠnjü ç‹zs{ñ邺§›ðçpÞüeñõ•Q𤲵¥›ý‡ ¿…nµ¯ùFK]Y.7ûóÅ;ò¯­a•5œ“ætÜîꪖ†eÈÝ–™ªVT“±½Ûî8‡eŠ“ýÖ𪮹$Ýv‡+¨Ðäf‹û¸¦µ%]ß¹5åäñMØh-ù»{Ê-'Å1cñ_ë9¬ä»öôŸüÕ¹fKÿ½ÿتDn+¯Y¥¬{÷7DðíþgÄÃäkvBÐÍŽËÊ(…ËÞ‘»®?7'°§¶'\ˆJ‰Zmw’ D‡PÅ+U[n¶;Z ·ÈªJʤӃòJ Ë6û/öxG?ÏíEÆÕB«ÊX•‰dp–†™øÈÆàV+ëd¢ îñØQ1ChÍTŵ¬Q°¬‰•••à¼(B€êèøq"˜®`ç¤Ö÷}÷pé÷‚ç¢Ý¸R™J3½Ù9C/‡Ëíéáà`§R ´¢½N‚z…†áþÖíßðÈB€d²Âˆ \ÑJ0Ë­Lj Ù‚Ë#ÉŽBÜ)X’E…¼ “X73q´’0cuŬ– ZZCô[ˆÑ:ë”ßqê=”Ž ›lڔɑfZINêÍž×BÞ1ÍŸƒh1§^F¸°pÒ„±±¦R¼&"FeºHý2ÀQ\Ø.tÂ…QÌ3jiÂ…KA+Îk=É”Q¢‡™)·2=i¶ÒÄLîL?‡°Ïÿ#¼†k¥±&ö}×ÇCé›ñx™þýêM\I „ÄÝ œØºÇËËËêí·W×…ª…¶oÄõ6(4o ¥ÁsUx¦JT#†täš‹Õ^„¢ö?¹Öe@?úîVKFšƒïeÒÔCÞØ²fÚ7Å«' ä݇ÐZ94èÕC,¹Ï%Í3oØ­?BÕ‚ èÇmwš°¤=2|gÇŽÿ8õøBîà¶–öt…Œf®ˆ? ˜ÅØ‹Ìd‘ß2Y¤ ¦Mñ"Ij&îÀJó†B›¾ÝB§ªæäŒ9îRŒƒCßá–Œá<êžfªŸž†v¨¢¯Ù†ŠŠ ø‹ ÚŸ‘hr+M}íÄŒOË¿vw‡ÓÃàÄAìpAèìßµÚMR¡C¨x¡?`ûU)â„0£%Kñ…·¨ÂõÍ=TPK&È|Øõq=#Ÿ½?…Âêâg(ädÐÍ‹ò-WdPš“î½×‡E~~ÎÁiÒBÝ@¸Í@»¾=æ¯^qö‡"¡ÎŲ`7Ñõ B¡2à}ö&ÏÔa »aÕy , 8,+VœÆöq+|À£o›ñ¶»hk¥þ¦Ltg‡<>³ttOO]p=¨Rx ÑA ïØ~æ‹:2­Áióà„þTÈíwäŸnµ€s ] e…ÆŠ¸\„3¡Ê…ðÔ Cxi<< ¥SÏñtõÏ›ÀÕÂ¥œbeüv·àûsQ?ncvê2öBL„Ƕïòç•u3ãv !M×hf‘+?Š”°@T to€%–‹ZÄÆQÚðÜL“ä¶ÃÃo1ɤ›ã3\H¤»À>ð„E«ÐP eˆwÿ4¥ˆ÷IHe}Šƒv bµq»A?Wºñ3ÿðÉÊ=B‘ àl8ÓxA¦¬aÇð\©2»šÛcÞ¥p®4è9Zzî—xˆ勾]s ÇÆµ¼tÖ$[}¤ØÒ è@ñóíå`‰ýÅ'Ê´¿ñ¶£NÁX1¨¡´Ì£ÖcH€‚PPôåÒ'¨L+SD×{ÉW&dÇÆL•‰sÌYMÊ`(R-Þ 9RCØ ÎiÜgíziˆ#>Çì—ó°\¹˜"÷ðuþÔæ5ùiìʪÉ:óh‡ÂÑC:øs‹Qè„€~e¯;!èx‹rµôï*2³» ;!™£ô?8šø:B‚=!c#­J©T¤¸)còë:4eÑÿO;Ç‘t‘ò]Ÿ¨WÈ Eg\¡\¿(¤~»ÈyTd«4#«æYjW´ÜÓ©ÃHÑ7«GIl†Ãå4Áèâ΋ÃDÉ0'Y)ëF9òßµ aä7±7÷ÏT¯S[4ª&ðd ¬Do ~fvé ªQ tõ>zº$®y„<…õ5›¶v¥ PÏõ^&%N-a機“™²eB}El¯d=ec7 9Ø¡T—ý8L6!”ǶÈ\lkÞ¼rViÆ&½˜q¦‹‚Ôé›íï—!±‹®Þ1V ­õ«ƒ"V¢P-KJ²Æ uŒM6IISÌkÏÎ0Ÿãué—˜f¼$}É©3¦éRQλÒ³{Ö.ë¹p¡Öõq6ÂÐÅ –Fè·0Ó¶˜û89ÀD>Ñ”Ìr{=¯Ý|d þl¬û·éÐn‰],†ß¬W‚¹Ûù«Ý^Ô?´I)˜|z("2¹™—cy±5Q®f:TÀ‘Ô7@_'¿-Q¹»Ã'ï¿b©æ.«Ê<ìû•V‹ ç0Œ1F¾0ü»<…Ã0>dn.¦örÜôC7F§» sEÝ'ð;òÌäµã çÆ7/#d˜,Scœ.ÊIyH{ ª1æé”§Ö([M‘¢Ä§óVæÔ4ãÔ…î¬<¤õ+ÎõLg¢²ÊkoÜLÒ/㳂‡vÎrœ4êܪÓS0Â.‡'·X°ÿ÷u‡ Î)!_®ˆ^{ù…ŠèQzUãš“²tC[‹tG¢T®4t ôÙx ÝÌÍÙðñcœUÒ$öõŒùØÇÜw%¡Îô}A-ð’ @^›¢~Çbhܘª± û›´nîÓlJ‰þ%õè• ùMâ§ŽÃc¶Â—Y$öJ5A:šÇìdTiÈyµÀ,”ßÕ³ÀÉ >™lÎÂW«ïÜ÷Ÿ¶ ¨>¸Â¹ûT= ðæbyŠì×ÎnQ_Éf@ùúgEÅÄüŠ˜>@—RÄÄK©ç Å;)Ü!ìo›üp38øòG_'”‹@'SÍ(`abf[ç)ìR¼h.þfSÉ5fP€Šß<;8¼ßËïvv½éj¨չϦt÷\Ì2¨Û¨(ö†ÒË÷FHÿTˆ~e¦ûvñøýoÖBþendstream endobj 678 0 obj << /Filter /FlateDecode /Length 5044 >> stream xœ½\Ms丑½×i÷2—õ7SŽM|ƒ¾ÍNxví°×v·"|èq8¨RI¢§ª¨!©ÖÈ¿~3 ¬’ZÝ1ÑÝ*>‰—™/Pÿ”•ËJüãÿÝ6ev·ùiè5óÿlÙ_m~û^Kh)ª²bÙÕíÆ a™e™Q¦¨„Ê®›\^\ý úZô¢Pº_Ýl>æùË÷—Bð¢²*¿½(‹R ÃÊ*o;lEUåïÛkú‚Iëü‘~V•´6ï‡iðŸ£Ñû¡ùt¡$Œ6&¯»¦vnºR™üÛc4E½î›þâWÜüþjó7—i–Ýõ°s {–¦·&“’ᘌëÊ’eÝ.û{v„ãŸînùa 9Íákº)ËÂrø—±B è¾¹ýMèdDiqÎÐIB1P‰ëºÕ¸>¶òìiãôþþæ£Á)¸[ö+-³AûÍýæÃØÈTU”|VV…UÊËáÖíNC€ižU…BÇàJJj˜¼*„ƒoÿ¼îÛDéx¡5Qò"Ò‡bW2Uš¶ À Ü¶YQñ±e;z…°rMXn ÐB¦ `ŠÂö÷íÓùÙï²OmCBÃ{ºúÓ&Ø·Cüõ¯aÄãáPwϾõƒû„_L›ða3¥E…fÅœ€¬ÀÜJÀoصï¤Ë 4ÃÇN©½Ì:6ŠU¶€†–ýJËl3‹ Sv§–sfQ½Þ,ôŠ’%(—T óJþö»}Ý÷Íö”uŒ:’²“8Ô««t÷Êr]ãv/ ^-_ €_¡À*”)AIk2{d¿v#Vˆ¦sdŒ¢b³T°[Æâø–}tD *: eÀ«I@*4Wb <§€IóÌÚ —S5zpÀˆ`²0€‹1 Jù¦ˆ.ØmY€ÁqV…Q™Õ¬Ð  eÑüÂy†^0ÖÒL½ÌÏ{6€pˆKrlÙ¯µÌF¥réÐVü*Ñ€1`p†Žº4>@<ì‡S`™ô¤T‰º´%›)`‹ÊíV¨BÃ>V¸WÊ'…s .§´sU–Ц£©BËX@ð; ¬‹’9 êþœëññ°ëší<¸<ê"Æ„ tVˆÞítëýëìÐs¯¼ðì;ì çÄ!R`þÀ@t\ fµû8$Ö8Ä:Y‚G)á,Jv?lÁ¹}"c'ÅY1õI-`Ö E€W64ì— ³!3‰€7R«}6úל>ž—†è¦$8P¥Gô;è³%ö#ý€ó¶“4‰Ï{qia^·yš[¾²]—™áDWs™ƒÇÕ.¸"/6‘¸ûIñ°Õ²Š7á[ö `ÀhRˆ˜ä=>ó ª,à¬F,Œ ÎPöqׄ}ÀQ”H6m‰4Ü£kE2¶ {x˸ˆcG‚“…$H}×HdCŸé³Np4D=mÆ–ýJËlP*’×oXî«@kY(ˆy øœ…ƒIaÃORÿÔðÒC'p+nãC:}ü „W1r_/!üŒðÞÜFá„Oê.‘ Dòû–}pÂãÛ¤ø^ xùßiXPy© £‰R”Φ SRï7 #ª,ÔÃ)Lɨbpò&N=3\)ç”B‹–°²ð0ϲešY×/¸Ü‡Å܇չ}ŸeK,ø×šêí^Bf i¸0\bú†`¿î‡®ÞÙuÝï²-r÷ì¶í²:ë‡zhú¡ÙÖûyΗȲˬ)võß:Ö_ﳺϞvû=æ¼ðãMs{»ëvÇ!ëˆée;˜rÅ]_dW÷;êµÝîúæp³öYÝí²c;d˜}‹ ûü¾ÞÞgím6Üï²àAŸv7nÉ]Ÿmë#õévÍáa¿;àbØïnwDÆ”Ý>·CÓ{ê5¦ô!y—Å9{}¼É¢T=ЭàÔ £ýßÿuÞLpa–¨XT„ñ- Áª Æ1Ó>¢c Âkh™˜’á`‚ZÅÜIcìÁ>ažeË4 í£—ò—\öÃbîÃêܡϲ%ÚÀךêÍæ„Ö”¬޹23syŸ ¹í¦3#ù®>"ˆ¯wYs[:Xx¼yG |ì¿íqÿL¶óÐîŸm÷p`Åo‡nWcøþêè«m{Üv»a·°¦s@e ˜82r-þ{˜ZÆì/*Cú[éLZ^žfÄÆB ¨YCÂÁ Û6†cˆˆZ´BUòó,[Æy" þ’Ë~XÌ}XÛ÷Y¶ÄøZS½=³„C„%aÇ)JGb¾ @™µÌT¸2`bÉ!ø–ÀJ*>S¯Ð(.örõsëêçŸss€†Ç ,JŒsJ•>æß7wqQ¿køUÎ~wq)Á@®žSõÉUÚü&ÒÔw]}—"ooý­‚dùpuŒ®Æ xq‰ß[f5^øI*ž,°‹;õÍÝ1Ìoò‡¨dôIÏîè§råÖe59˜;©„Xç±"ܵ‡Ûm*8Ä=?‹¬òCÒ!Ùs{q L¸d k¼¥¾ ÛK8%:’KÅ å2Ì]ØÔîòDrSJv)’RfxT¤©4iÓk± l¯ÛÅŸûï‹àdŽÑøäч;¿`%Ò‰q-á^'t•ùᩤΗwDj¼r«×hŒ«që¼ÊŸèä ïý\¥X`,¬q<!· ¦ÍÍìl{¼UpËÀþ@-( _î¡åuO¶gæ Rªp¦NœH÷ðXJVÞ®~óуÕÒc„„øô‚á©AMÏ^I1€XÅsªFly ¸v±€Ö4–p®Éжh*œI üñC…VîÚGͤÛü;þ¸sSªòfð?3p­_¢²8ç2ÀÀ¸q ˆ¥<ï. ƒ-Í“OG„`‰#¿/p\K„¨s&ÝCÐ ;ñVÁ!¢ZU¯Ò¤n¨î¶dR0è†"Š*¾°Ñkó1‚ިʯVeͯã³%¤/Ë›“»¨É¿ š”Ò 2´Ó4þ|ÎÃþ*úbfC @Aäæ‘°Òu„bq HˆHU‘ 5´Œ… ê4Bš-óÝ“†‹–• ÝeØÄêøí=%'âN€WNÀu:9³zÔ’ð?;³í!›‰¾Z ‰ÂRAÚá R©¢ë¡“±TëûÄÁ’OÎ /Y¡0KgpB*}Òjɰ Ö|$â Ò`ž]ŽÎUM‹@‚Œ±vî"ÞÖv:H¸ŠêeEÚ<$žåŒÛwk²¥·‚‰Ð5¤ ìÛïÚØBAœÖžÑcr2Jmòxˆß0tÓ’&ÿ!ÕhqW¼ó@·6F.V• ·¹ù_·µ{­1ãg@j-èþá=y/•a9¹m"-´xP›[™¬‚C ;_¢Óã«Vƒz…}=Òðpv¾¿šõw'ŠpÃñ.ˆyØÀæiÍá!:·}¢«ÃÜg#´™v>[’€ ¤6Ðí`º·ˆ¢®WÝÝxV^6¦3«îG”à~„?•÷«gRºÔÝLæž³s¾Y’­Þ.0é€NO(âžm#Ù7?D™É‚kˆc%,ïŸþä]stõ–•-J˜ÇV›ïü;"›:^mlPCücm>¤°R‰×Ï*Ek“ „aô?;v§p»‡Úé|Ý3yÈk€Ê…Ž.ñ>AA&;7pL}»&$9B[*œŠV§6-GA —1!-ý¿–d+½<…TB|ìTTÌŸê(¹9¡; ÕϬ™’ªÉY.´¬ÑSò×[£ ·2á0u¡'ì8Òêxs°ˆUúäò°Õh ®ç>5h®Ù‡übgÊÑâýuIè\0DK¹Á¸=r6ÄdKd` äà+ .ìÌ¿%ìûDÈC§\ÚW‡¼©ù–hÿ%r&¯Ýq#m\·y^ØRLQÆ¿Y,VR¹‰‹ÔÛÅD.K3¸Î‹ìœW Ãz(n˜‘(qºHI Ú™Üa艎&nçÄfeíW„=ê§Î†½3ðÃ.àw¿p½§YI“÷DÊ{7LÐ5Éèsu ž¢äD©hƒø¢åD~Bºˆ “Œä‡Õ4¯'^4@óà§„BµÓZ†C ÀiݵóªVé!FQ–á6dßæ{Þ¡H†*¯¥YUÁ+>€«ÎtØzŒìß4£–*"SNp‚Õ”à:X¿WØÑµ?0dó£I ÓãH˜‚MK³¢“ŒŽ&ðï4\hN~tj¬uÕÜy4¼æ ù´Æ{×4Åqöhøä&à2žµöƒÀÊÿ#aouâÛ’Ip´¿9é(þÓ W E”{( ‰-‘ZÚ.s Ôú¹§mêWדRz…K”&źS‡rX§J®`Ý©JEº–§žÓ7›{¾oü`p|'IåÏøh%JJbæ‚C˜íL•BSœ=%_S•yƒ\©7ÅÉRoòþcÁT¥ä®À3÷zðkJ€ìæŸç\Ý$ÍÐnüÊrù®ÝId–ÕAé*ÐËh°êX”ÅŸÏçoœãáÚ‘¬vã2X,¦R%iA¨È5Öèn\ûTžö¼ª[•ü!ð¨Wy8|“jGwÊ||Þ/¹,´Ðs¿³R< ) GI+`TI3¯4•d^(ȦÆ.]A/ËR§(· ¥ÒéhäÏ´Ðn àÄlxpxlOºn^@£9õ²¢áÒÏo…¯Iã 'w÷ä§2ø¥9!VvGgõ|aU p"qœVH³')KÓz§7³€‹%ª ]çê vó%öà®Ò@3Äž¨íðNIZ²âEÛ¹uõ)üYÎ.+|Ç è” YDä‰p«Sj“ U ³.g¨YíI’\§ì›yÅ×TÄæý³Ÿ+½ 0…öÃEœ>N%ðƒËª´bâŒ;$q[Äœºœ5wÏɹúç¾»›tŸÖ„H «ÄbžÐõM0áÔ+×%*\–ô­O0Ë4ÕÝ7I0¢BõÓãϸ»(á÷¡L¸û‘`ç ]Š|Ó°&½ÆSñ%+ ôMÈçõJñÅQÕI¯0,/f%%ú/ ®–Dcñ ©ã+Ü©K¾å t:8üuía:„Ÿã–Œ¨ •¥p×)+7jWó‚¢EsLðÒÕiŽäQ¯ÑýèG®‘ÓëfW„¦/fw° ¦º}SwAu©2¤dð?G—^I.Ü»g\ZbnWßMûH²Ñv$›Ÿš“Œ<̬ԥ¾"à½_ŒWÉô£“LëT µ§k¢ö¾½OŒùÓè_g×dû0Âec5¯íŸç(0ÁaŒ‰µWž’9° š%t~îš©ˆ;ÞUãðϸ«ŽÎ ²¶˜SÊüƒ_Ü:¿C³2¼³=„5ŒK#\¯3µ“$Ĥ9æ(¯N¯6:?mcì¿@£Axi½$ˤ‚3•È3™Í‡ƒ‹Ñ--.üÒí8]b¾åBÁ¿ÒØQIa@?CÊ3÷úVéšå,‰Ãß)_rˆÐë ˆùí"¡HIù|_x½þÇUYð8KùßÇë]·žÈB*ÅNÖI?"­í"c¡vtÈmЕœ;ço–”9¼–Øyå©ÅEiZ:s‰(!#©ÓŒdýö1¹¬îú±Ú[¸K#ŸšÄ&BÝL-®Þ$µ¶9N¼š[+!»¨ð»´%j×i´Ÿ‚N@Y8h:ßøO6-¬Žá¡ê—iÑtRÂI8/h£¯rR9v•z—nÔ·˜§ª~»+/½|ÿ·äø`¸è­ AîÖÎ.óö×zõãû˜ÕÊ8wåûW^‡WS§n¯4þáëoÃÂÅÐéù´}Íe†¬ŠŸ0ÚD;+—YœqöÊË,U0ËÆÿ7à$zšµôرŒ.\¬¬½¹ÑõõÚ´Ñü“©QÔÿñâ ”ÔBøâ§zJN‚àcŽÔû iÏ¿Ðãøû´Ö€7²…Àßš!ÕüáèJÀxM—\µžß!Œ»Ú•à)yðUq³,“Åfí¶'Dñ7¾•aQ¹|§1ÉÓ?÷i&yðß9®UQ  m4¢kÇK•ïŸdB"¥Ð?ÅÞ|öZ« _V”©}^ùKGÆ€Ol„{ÉJñÄ=£uý+^‚¡´vÓO{?½1p2É”óµÇ¹¥…Ù<û»$+ [ñä.i Y„ÌUïh‹ÑÜóãîé¤ÿá…Àßæõgö¶z±{*‡™ÕÚe›q=F¬Æ»^$l¼›—/n£ìÆ%"ø,®\b6¼ù{©¹}Ò‰bæÜhØX<ûéÊ‘ ÃÒzÉliÌs$pà{ÿKÚOË%ø¤6ìQ/PBí«³‹J¯T•DîµÞ<»R4>NføâÖÅÏc؈j†áÏ­Äú7}¾‚„^b6„È—:˜pÎᢗ{©áÏ\Yº<Õ ém£>SÒ÷‹Û%ƒÏ“Ãîb|ÞFBœ ¯ÆñÑêéÊ.ÝD;©ª“øZªÔ^\#ÿAÐß6ÿÿ†.endstream endobj 679 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1144 >> stream xœUS{PTe¿Ëî½]qYe·%Öb—$™5w0F™•¤R‡Ç©£€ I½²G>UI8ã:¼”'èŒ/â6{´{A¶ÈÍqòªÖ uÐÀ>Ýo"Rïàœ”DebŠ& ¢!üãä…Ó³Z[ÙÒtnS‰nKZ¢î­“êÚæ<¥¾±´¡¢ƒ%vÌùŠR(ø¾c7µCºñ³·Å}H=Æç¿Lz­KåÚûöe}=ý•²)ÓÕÜ´ÒŠ²ò•çuîТ` „Ü®[îÃ\AGšØ3jâH2¹nô7Lyr^_®‡"EİúÛ«k{•†ßôåç*΀BWXùRecU‹ê6ŽÓ?0kkäü ‚tr7lð9nÐ DîxFE½ŠèÌîO›ù’Õ=üÑœòZ—å•çC¾ÂëVÔÂÉž™ eaÐ3Šà.^ËR^|w9]NÜÍÚ3¦öÈO´w@Áëç€þ†Ö_ŠÔW™°‘6‘Qùĵx?"ÙO¨W#OŽÞEëïÐb^%Y~†å3¦ ¶s«Äve•Æ­ º›=¢aHÍÊd.7I“tf­Ÿ²åVkøWÿç4k6‰³ Ïe­Ôž‰ º‰¤® PxÂÞ¸¨1O{À^–Hïîý㎱Ë8¦Lå¤<«„"õ5³:5ú­xV?ýç»E´ä=8Ãdž˜»‡9òÆÑê¸cãšë'FC;ýÀ¼ÔÇbÇ‘ àÄ’Íó{xÓ[-͠Ф$J&7%A lXÊ ©j/öª°dQN2˜ºþÚÖ¦–Îþá¶a€¾‚&MMaåHcù¹ÀÀí^_u/jŸYõW8Ù2gülãÝ1Eåú²U0ùÚœúÿ©j«l…VÅl¨q×ÁpÍáHå-ì¤×þb;O‹×EÊÕ ;Ù€ÛBЙ÷<ÞÄ9`&{óS‹Ï•œPÉ–òßOÍÜÅ•g«óXÜÉT÷ÕPÍ ¨¾P_YÏÊ;pÓ¥®-p#³'ªÅØÝÝÒÙÅÊ~îšþœ¾7”Ñ“ÖÿNs(°+V뺹0 Üù0†ÑèÍŒAGi[asQmä¦XŸ›yZ] ¬D×Á ÐÇÛÁ m‰ŽA¼Ä– ÞH‹Å –þ ,‹Mâendstream endobj 680 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2569 >> stream xœUV TGîf˜îFGˆLZd13(`ˆœ®‡„CŽ€  ˆ‚€2`Œ¢XDBÔAD’(JPƒ(W4Æ€@‚,AgÄŒ†îjò÷l o·7»Ù~ý^Wõ«ª÷}ß|ESæfMÓÌÛYi‰é¦‘Ýœa(3䉑D„$æç¦M4·¿É­Z_£LãÛ™Û‚²¶gïÈÙ™˜»1oSDRòæ)©QiÑ+Óîö‹œßš—àFQ3¨åÔ j&Iͦ¢©•T K­¢VSþT@ÅSÔ<*ˆZJSnTJyPa”'5ŸŠ –QRЦì( j5‰²¤¬(?Êšr"P)sj1µ‹j£gÑtýÔ,ƬÌì;³_DÓEM¢'æ^ææwÄ"q¬ø¢x”qcZ˜²‰lÇr³8/®Š³ ,¦YD[”XÔ[\·èµx8Á , .H kT‚«’2 “Ä™â >bPˆ±„Á•c ñ/ÌdŠá#w3 bK¡)…¨T¥uÿï0”il¤_ö Õ¼ôscõ04³Òߺúö4o —ái{VÖ5Û'Ná¿N&ýRÇ’ýÙC‚ó}^ íZœÎóxŽû ˆu3À 挼?õ|ß”ôåŸtùâ)Ø*ÒÇe^ÔHÁúk•^niØœ­FÕôU½È0W@|xº¨°'rBÞé1ËCRž€°¤qf_`WäÛž"XŠžý|b¸7™Â¸}i»3Ë#Ò|‡g¹a°\,L¿Ù™—yV^—U•þq G â %¨„¹*ëÙëZéhÎà‡¡–¹Óº½q`÷hð‚Àù`†åréË@µ5)‚ûÑ—…]áüOß,Æ“ñÄe‹]åÒQÈ{`V7îéä&õÕP¦†|5=¢Á;ð€¦«Ó!_pUKÇ‚Rmôg,á!Ñ;W¹_iÝG ØHûúLbß2‰}šEƒ'Z›êkOœ>tã ÷€•6–æÜkƒ6n]ãÃIûž½?|¥w‹ ´"!L°äKþ|O"Ü-½Ãç.jN‚×rUîüš”l¿Å}råÉÙžªªö7rL9žÔ o®S‡»Ÿ«.9œ–{þ4ã$j´½z©¡÷ÎùŒ•¥2KhÈæöÒ4"8LP·™ ñÌÀàïöLìyE·RYú—3²~vï‡{JÞC\ʾŠF9à‡ã91 Ä+­»5P®ñ´‘ê…œ)ÒçBõB|µò Mlº-Ø…FGÖ³;úï2©~µÖµöqþ&‚ãÑpa ¬ªÅo1ØÑèƒí2„pcµ˜¤Ë«%Âõ)0o|‰ƒÑy¦à,žÅÌ1:Û“ Îdåæ¹àò«ÑEü ’ëݬ…JHø¬•/(>€ö#.㽪Z9ÜbõÁ×0¿$|GRªlû¶}ŠâUÜ0sø» õ*Ä 6gÆÉw°(5gwh!ž°;ïÀÖ=˲Ò×¢`ιgù¯=í57e‡bk·w c¨²´î0‡gC02 wee§¥o|/qaÉ ígUÊuG—Ÿ©äþÇó œâ!™˜Zã(l QbgpŽÀJñSlaØàu¤˜x˜ò|•t‡Ú´¢ƒ‚S Þa›–µg ˜ÊF@ þà;ÿ%–¬Þ¶"Iõ,ÌÆÕ¼þUîF,výcâ â µáu¢æTc<ËèŒÿDtg ÈX³uážÍ¹ù©Èö}”_šWÎù±Ç Ž8‰êPý‘“ŸÖž¨:ùi3ä,§þ7/HRn…çüë{?ßYŸÒ^ïO2sº 6ÇþØgÄfÀäáõ ù&Á†Ä@Ŭ„×À¦Cõ¸ÿòFÿ RKw‘Ò¤¤uÂaHH‰ˆ 3(0ÏâÔ1+œn°cB\'›Œ þ£2µZh#A.$Ò,ħ˜Ôöè3AÄ4wLc/¤Å4LÿáZ]÷ùÒ»,Þ%$ò#_{i&Ezy¸,»–`yëþcùxoƒ^𢅠ØÃ£{\Ý}1í¡W›9nö[„“ö{<æ€DÓ L5ᔽtmJŠEëOe^Þy¶èlIWÚ˽y{qêÛÁó‹QqI±œ ?9Ûn€Ö‘úú˜hï©fÎ)_8\†JNÈúØÜò½w!Îw]‚ŸÜ=(¸ß¸V#¬Õ²¯ú|³ލéÇzx4*‚pø–‡<æktåØÅs—›N´ ;¼±xÏ”áŽ1…žìÌáIJÚ×xyÅ®q—÷Â~˜<²z-´‰Wa ›øíêúÂÎÖ sØw~MÐ¥8ùÅ„®w;QúêLK·Er2v¤oÈ[’QZEöñܪÂOö7pfŽ8­+¤BwNÑÜtµª'„±87‚i_‚mðä˜%®+Ç[—ê‘üwÿ1…­_CìGÔ?žÐb=&ã©«+Ø­”ÚU‘…6s¯ HÞ9ëíõÙïÄËà,;Þ  E åjZ¯̉ËàEŒ¦q“›¼$ ­ÿ(¡Ra â&õTQmñh HrÏ{¡núü:Òp`í݇døÑ¸LöæP;Ø6t¶°fçéœÊ-(›ŸäHzaùü¥uÏðBâ}0—ˆµÐX­a¤ ó3†bbÏUt¿^ õ"A/åKÀÁIƒ½‰œžŽ‹ðT÷–蟳äºæ§íÍ›Q”-JÊÙ”¾#c纽+7Š9‘Ú¼í³÷ϼBzôÁÊ„úMׂ‡S@„´è{eËùÖ‹ Ýè6‰îq¬Ãï´Nõ8µõ êâîv·þ ¸îXçƒ2KHá°j>!ô›ÁއBµ±oÙé™q¦²ê3QyÁ˜Âûîÿ]¶™^é¥ñ;À9“-©Yéà_;oõ~{.9D†ÇL?LÓ[ç“BMSá öIL›SPbΊxYzWâ©`„Ö½»>œ“^ºkò¤šI- eZÞhÁ¹ñY£öú³Ž©¿t\ ännïL¼xaÕñä†B¶&-ÏJÞ›PÀ防«‡êÖÔ\úª¶q÷¾‰Z½eMxŠÜev\°!¤»Ú é„Wƒ©š^@ß Ì^ˆ`Ë ÞÁá#T››>Äq qJzà¾öÒs°M8CØ a÷Û8ì¶á:pˆož> stream xœUTkPWÝÍc³BA·¢Ô$X…ÂHZ|àPI+­ã °(AƒX 0 ˆ ^|Æ‘‡"P_„§:*"ØZÑjßU¬ƒíPñÛÌÅN7àvgîÌÞ;gïwÎwÎ~$!à$IÚ$ÆíP{&¨£­Û™Hc)µh…HÌGbÁ…÷…¯œÆï;tM%¬c@ÂÊýš;£B¢w©ÖÇ©. ˆ9Ä:b.±‘ØD+‰ BN(%LxkˆbáD8q…±‚È#ž“*²ŠçÅËå=â3ü½üo®‚JA¯àG¡Ÿ0êì-1ÈÓÀÊL0ßD²yàΘ±»ä>n‰b? ÞÆ Á‹jî8¼žúš…ö,h@¯@H6‚ @Ƈö*ƒ—ºa+°ò/L€,àÓß`i>2CJW·PÅŠå[GG;J9pb `:y<ù–OØdæÐíÌuë† Z1‰h¼OÇîX‡3av‡/ ì^ò")v£²äë6Ë9½êxƒïý—`ÓuI«ª‘S S‹¢i{¶[€¢]Ùñ¼®úhaµdD”‘—}X蘬b³Ú‰&¸O¶¸†ãþ9Ìæ³§K™Äʃ§P Ý"à­¸ŽÝ°Ûòì˜%ªàzeÙ¢{ÎjcµYÒ³¥©z„”º zg™6t#òD%»ª÷ÕíiK5£¯Ñµ3í(ᨾä ó)ìñŒ_TDPøÞê–‹¦›‰¹¨©àÄcáÌ ³§À3nù˜È^ŽŒŽSÓk‰gÞÆƒìš¨as[â=D3°øÛ¤±]Ò˜îà†`´…%Æm¢Á ÜÁ ´+Ü=¶)”Aá÷FG̃Òÿhl°zSÏ=8{?Æ.œ7¾^®x-V>0ãÙ`J¤x¥U$ìÛ„è È;¯;OšKë¥ÆÚ:c ºÎî3Ñö–ÈdQ˜È»àÉʹDšíc`ÆxŸ<)`Ø>áxxZâq²OÂÎìk8!žÔÿuž{§“õxd^† ”ª'¼z5ÇŒñÀSñâÀŠ€ó¡Ò¦Ð»qwQ?j«n즱 kÇÜoSÎõ[¥P„ ¼úÓ<8)ó ̇7${’™|:Ž POvGfsìˆOïDÎ?š8¼p/°«“b •¸E¡=¥)µ™¦CUyô‘a¦èicë-ÔˆêÓL %)'’ÆpYdâ$ÛZÉ÷sä7säûß™C¢[W.ß®­Ò%%í± ¤¢1—IøG„úµæ˜:õ™í§¶#%Úš½Ž“hr8TpÃa=8’߃'´X›™XAõÕ|ùYÒΔNEZ¤C«Ž%•«hð=KiJ²N¡ú\Ø“{RÞò´¾µý†n¦t«Îïnˆ0† zÜe¢×ìBws°è*Ë-K/K/JDqH¥OHK?‘r(ÑöPÇÉyÂï·þ:QlƒeãM £,ñÎ Gîmc5{ÂiÅ2«ZÎÉnެ(ò¸@„ÕÆ"ëôê¦Êš+L?‡ßÏ÷ —4Ìöú{`w_왃²óu˜UI=nºzçVsd¢Œù,^³ö žA³ÉW›HȲVÌb3˜ñ .[墤őØÑr‘½¦’m2¿)¬’pµEâ)HlƒÄ¶lÄb®b;$vúÈvendstream endobj 682 0 obj << /Filter /FlateDecode /Length 3180 >> stream xœ­ZK“·¾óWÌqèòŽo 7'•¤”JbYÚŠ+FûÒXäRæPZÛ¿>_˜!€îCëÒAK²ñèF÷×_7ðkÕ6¬jé_üÿr»j«ÛÕ¯+æ¿­â—Ûê¯ç«ïÞXo×:V߬ÂVqæÑŠÊ(Ó8¡ªóíê¢þßÚòÆY!êns½>k›VYfµ­ïÖÜ6­f¦>ôwë3! ¦E}¾¶¢i[¡êÝúŒ$˜4õÕšÆ ÃZWïö;?²e¢þòmè\ýÚ+œ¨³eÙ§=É ÈËúýæô§ín(D>ÿtÕ2ÕU´¼ÑÎ@ßó«U­Ö翬ΤdÕ™PÕš¾½¨?ÞùýJ˱¯°[Æd}5¥Ð“¶îïŽ*Åu\ºŽtf’ÅuÞÐ:åVk,ã£H7#2Ù(®l¹¨o¯ï®÷kÅÈz®î`ø[lI‘Á]}óùîòÐïî†EÅWRŒ3íö¤‹¡eƒt¾.wMË¥/ÚÎÔ˜þ°ÿ|yØí——Ñ¢aÚMûÉdª>|H¼àÚ/ß´’aòäÔvÁ­·õ—5Ç@gM½äwÂÕ¤l2e·‰kYQïÞÃùÈ‹­®Y‡™4ך›|áÃ8:îûS+fã¯rÀ‚m£­ªÎ˜€©&ø”øÒ~w»ï¶ÛÔyj:A «êM—ýð9ÙÝf[šõ™‘ £xý=M ff×Î@×O¥êÛ‚µœ˜yO¼1‡°ŠûJƒ/¨yyH~zdàrãÇyú}T£EÒO‘!ý{Óç1s%YHz“мÝ4=²ŸÔ±"ƒ;¤À³_¶ÊÒ®Ãð‰(Õ €’æ²ñ• ÎËpr5eÊ|œš¿+3¥-‹ŒÒ•p/¦#Dò$Í£Ub%“j›&¸«XU!ŽÊºæïç«W¡²TÕþtEYcE‰0WFUZ¶ °3T”oBA…³R‚…ròãɘ"¦…OzÒf†5k$Wr£k ŠP¾¥²!Í5‰ÒÏÕV0Ô.U¶~W4¾Ìˆ‚£ª<›—#-$3?{J"‹Šå[]7¾Ð†Š˜éÆ å‚ÅÎKËýÇzÛùâŸ9x.È'™Y„öüÀ 7'Ã4¼6uÕc§zZŠBûc´OY~Z°ª>cy¯b[ #M&1>¿«QS¥°w=G[¯yŽL]pL‰??Ž•šFøI‘å=ÙXkFgÜïóäå§rš ।½+ÛNIÿý)wŠØ'ï‹`!‚ÁaÈÁ'CÐÁÝRlÓ£ã¢Ìa£J(ñ#µ)²æÜÀŒ~Ô¾Ó^—L¬e䞌´'ÊÑæZcì”|²|–ÉuCŽÁKÇ¡TÃØÔ y¨ä(÷È…õ44VªÄZó4÷úõr' ÉɲØÐùS€†"_s ~2ÖOm³åx+X¶)ð¶ %Ôog.n#ÜÈ._Šu ,Yè\+»3‰üx>‹nò¾g†iŒ Ç•'ÚsÔ2)KY9Cì›{‹-%ë7Ë–ÄÇÍfqÀ·§‚Œ>‰ã<ЄMäJADl7J"—XY6µP]Þ·” 7î¡Ö¦k¬ÑÌ]û)PI‘H.Ø2é=lPÔCº¿§ Uͽ×ÇR®òpíuSð×Ûò|& ¿œÐ ¡%Grñ‹±hDëÒù.¨à•>ÁÍÝÓÛG²Œ¨?’+G3Îêåà &ç^Zë,• E×3Œ„üû)‘þ¿¤Ê6úÓBÃudWß½a€çÛìÅA`-Ñ'MDëqp¤ ÑuõSu‹Ñ?)i˜ª„iñePŠ¢.¯€ 0â«›oÈÞšf7 3­©îÉWoþù„áo£ðÎÁm ¬»ê%§ 1ÐÀ ÁCò¤žÏÃá}#Žn2W…¡Vƈ,X@VªuH*&êò©·+A£ZZª†¸[n•Ç…¾^wM*!3Ý?]Ròš©=m#*ä¨IÂM¡ö¤Þ®¸lmc+©-À´™q¦Ç…¾^mŽ6ÒUÒðFˆÀ¤Aèv_æjÛ`†5²é°Üj«3a‘™èƒiäØÍÉ.;FB.æµ5Ý¢ÞôCÏNû"9¡FÊZ‹ÔÞ4ÜŸgVBüÖÍÚ2~8fOÙãR}ÌàÜM5äTÃkb™Ÿó²ýT…lÁ%Ç ÞÙ?·2àV4R€µ*E×-?ùÇ3.w«ÛÅŠx"Ê¥ ÏžR1[zyÀ³}IQ‚TÊUy·Ž'ײxÚ̇ö¬¬ \Ùöòê7ƒ‘‡¢&.%ó>ïoù[Œ»dü¼<°AE–¢wN°ï«Ù펕ÞiÕ}¢®ô^þrïa”qAk¸¤lÊ_\W2d˳ùüm§¾ÅT8Æ^ì;©¼Z‡>¿wØÐ\¾ŸáÝìYñ”F(ƒ}¥s7B‘°—¼¡M;£ï{å¬i[•÷i ~;6¥ÔCW§~FQÞ0f7áW£ÔÜE©—.„o:Od®¢íðçüý½4BÈO7Ø_ÖJ‡m×o:ßíÅb?›Dœ°q¹ <b#©% ’ÅÛ¤m0ŒÔÙÅÕæÐcUÞ÷Ý!I¼ÅÅxnæðà«,Ò&ó÷‡Ǥºûäm*O-©Þ÷¢Mî:§ï‡)µ¦éÜ#5õÀj·‰-è@nÇ·ƒé6€OÛ~fWaI˜à7%!å3, 8Þ”„KÀWÔ\!"$Ĭ»Íqðôò'ïÏᔈø”Âÿ­Š«ß“Êë> stream xœ=“ LTG†ïÝÇÝ˲.Er±î]h%<Úh-E‰@wW‘*XP h+Y­,KV@AjxùÀA« ,‘ÇUD-PÈZ0Q|`´–ÆJ[KS›© -!¹d é,4d’™ÉÌ?ßùÏ94%“P4M»FY¤fG›3Ó[„³ffMr¤’"•ì«×e–N¸;Üú_£œCeζÊÉÍKý$mÛ¾xŠò£â©íT•Hí vRIT4õ>¥£B)õ6åF> dT$UNýAûÒMô¨ÄK²A2(ÕJ-Ò™D¦‡VõlÀÜ¡A€ Ë!€³ã9„0øáÀá ¶Î›äÌô9.wȼ„rµ9 ‡¿ANw€*A+…ñ6‡ßóÇ4ÖcÃ$¦ ¦€†(ˆ]5ƒ#ø ,ç~ì5øú'é#7îžšêá‰Î \à¸ÐˆX‘S,Y´qX;šì;˜ö8»y±àù¨!l$wÄØËû6·oA›PJÖ8”fîûnÛ«“ }ÊÐä¤Ý1L¤—!Aô>KXú´^¶ÇDtÎF$;ñ£]]£«OŸjÔ€Ÿ¢´â:‰bQBª)šõxkZ¡ûs@¯@BÛɃDÂ$ž%\90kx%bñŠu,5Öd6æñGêKîÀú$ïŽ"kÊe?M?¼Å˜UiÍ×Ö¯9þ¹Í|Ž•¿o…0ôݯëlël»Ò‹úÑðþ[ºKXßçn-®B—Ù–6¡ç»/%WhÔð> stream xœÅXKsÛ6¾ëô¬I;&Š7gÜCçЉ;MFÓCíhI¶ØR¢+Ò¯þúî‚/€r2qÓi'‹Àb±ûí·äÏ9£|Îð_÷w¹±ùõìÏ÷«óîÏr;ÿq1ûþƒ5°Bs|¾¸šµGø\pG%“óLgÔI=_lgçä×Ä ê¬”$/×IÊ(Ó–[cÉ.–2Ã3Ò»$•ÄŒ$‹ÄJʘԤJR”à*#«ÏÉŒ3Gª}åO2.ÉÝQwÐ9ò‹_•N’èš&úÚ£¼yEÞå_áÖ¶ª'¢?¯F…¾J&¨qø»X͈K¿#6I•âóTjjA©s’þ¤Z(„œ­›Mµ:NRΔƒò6¯›nÛiröúÍ u³ÉOÕ¸®)zzr2è°dsÂÕEòªÛe†ìê|{Ó r2žÓŒ½µ_ÝÑɶØ£¶AšÃ¾dìH_$Þw‘Qæì|ñn¶øîœ|¨.o[KÛ;Oë¦ØæoïZu5þ~W-ó¦¨vÇ^çTiéæ)—T+'ZXvôf_­ °s²*ê&ß-×þˆ¦™°\¶Gt{ u€ ךK„±È /žòŒr+æio4Ê?Ïä×Õ]¾/ЀÖh`±È:”µ±ÍÂxHc›ÓèÈÔM%˜w Ìh`ÎÇŸ#¹nqj}mT§‚36È Ä‘BdÎëj‰*˜i(µ,Ãp°¾ÝnóýãÙ.W]¬§$&¯ó²Ê¸ MN[Ú §6+¦: …è˜Â©ÕO[j˜ÎBíÜÄa¿ =ŠóÑV8gF‰Å§å”ÇAˆcÊilÔÚô”¤6“g Е&´¶³Ï9+ž*r/_>•‰á÷étÐr=6Λ² ÚrHúf³›ç~BÎü:/vÃèY–y]˼°˜šÐ§DŸ©u¿íÈUµ¯Šîí+m¿¢È*oòÑàzÝfàóàA|‹8 ºßËÍÉ‹ÕêÅÐ7âùHCRsÓ«û¹Õ´ ÷èi¤á§_T'5¿¨¹/Ê¿˜w¦Þø‰OY` ‚Pœ“*TRí‰^Oæå•H,{mIž·€Qw‰6XÔ nE™_âe/oÈM¸\5u·ãÒ¥wDqC{ÃY†C$4Ñbœ¿îåÄuá§Ú±€¡XIÑmd ~úœ ¨fpÞIž“m< ‡w~b¾þÆO㡀ᴸ¾ öö­6# Tn´ót1{?kz¾ÿôƒ!¶±0(—QO é µ+|/‰>uZŸ«N3eM†úΟ‚y4ú©öGâæÑv˜€_]LDú¬Ã4mïˆâm7ÃgÎpXè)Ú—ÂÒ²ïƒ"t”ÛÏ\€Ú), ¨R"Róë% ¶<`$ÀåX÷²ûPµV„#5äf…… ˆ->~‹Ýb"3# &2Z ï<×{ȹ¹ëýÒä·*fô~ò¦TN?×[éðëBoáeóŸÒa1æ‘^îÿ Ê#eÇêBK:È‹ºš«ˆ€1lõôaŽQ‚ÞÕ„ùññišùR}&X±ôµ&²‰c‘J¥ÐÔp&¹ R¬­¬0€­YŸµCuGèÀl·ÁF˜ØsQÊ9Yú‰ôŒR¹Cß=ï†ÿaˆÉVG7ŽN‹Lknœ©í¦+Ì­ÃÐ ÎòPE^F6W—‘C^ÿ—8•ˆÀIutÞqÀúU5tÇû>ªÞ[ý„[W¶Ç§æàƒxZEѬ£Âº‡ü×8spâ¡ žo瑨J¯ºuCŠUQm[k5xÑL¬nmâ‡Ù¯klÅg¡3œTÍ4aP'C>¦xò¥)‹ —h’Z¨4ŒY²8¸XxÂ.ŒQ öE˜Û­ œ‡üÏé<äidõa[òÒp2¯{O†‰mš1e9ö–÷³¿Wb˜!endstream endobj 685 0 obj << /Filter /FlateDecode /Length 4106 >> stream xœ­ZÝÇ‘ç_1H^†sÜßÓ}¸; —ÄçK,/)ôîZbŽ\Ê$%Eÿýýªº«§›ÜUdà`Úª©®ï¯žá/ƒšô è¿òïýa¥†·«_Vš±Cùçþ0üçÝêÛWÁ3%•ôp÷ó*ÑCÔÃìç)Y?ÜV£V뻿ƒ8†ŽØ¦Ii‡w«×ãŸÿüÝzc­™RôãÏk5)og­Òx<ÞN)¯Ž?ñíf“Æü·O.Æñ|Yÿ¡9½¿ì>®½Ãéy·§Ýöò˜Ù)?¿{jXl÷ŸÏ»óúowZýñnõ†·g2Ý$3é48§ôÓ`æÕí`œ “ÑÃéqøëð´ “6ÞÚáüð'üÿwxî¿VÆ85;¸yN“ áÁ$=y7ãÕäõà"Øã_c‚™B¬ð=NÌnšç†"n9œeÐ Á„y2PY8P\\#£Àt¢hQ)DKáÐÛq¿úq¥“óBè‚·äCƒ ~2ƒNÞÓfü³ ÞƒÜÀ}!ˆ€ýr^À,€ê$d_e`72HD! …AoÙeŒö“#ï(?Å™c&'E7~²°AžÀvž¼­0ùÓ¥)è†Â§É·Î28’föxæ¢b#£Àt¢hQ)Š–•CoÛ¦Ò<“`§àÉ4A È£È<Ôi²^@ÈÔ9g–çNO®9]ÀÌÈ ÂkÒd9 th¸3Hä"=?ÝÊé^÷œ‚ ›óÁÙL³¹BG@Òû)­àå+ q Á1¦¡€‹µn8œÐ Á¸89¸¸r°‘‚µÈÈ0-2¦¨˜wê³=ÎSâ;¯µ–Â0¦k¸bÒ˜iò:áÌåP`ä»C8ÓP YÙå|2{"ÏÏ"+ëig’Sù˜ *EÖ¯2èôχ^¹“¨Ép5U ÜlÉÍ3»ß̓E+t¯+LNL(ZªÞÊ¡ÂYgRÁÀÓŠ%£&¢…Pˆ–¡·ƒÃQ³‘ÂiÈúÂÀÌCšfŠWpÄCLjâ+ Æ„¿ÌB‘fÝÂ@À,€úYA˜4%?,ÇQI©a *EÑPtQ6!Ä(Ò@£ÀS[_0àÌ`ÊC"Ð0@˲ Éàç ßãò 9-§Âa³ŒûÕ‚qÜÔ–›Ø"#Ã$C´ ÑR8ôvp2ÆÒ€b “ãþW1)ò0¹c%ƤYÁjÕçÐ!´§Îüé€`0‚ š˜0ˆ¸M‹„Ó‰¬A%…Ao›¥•#xë\™Xã¹0ÑjÁmÏ#m),0wöHX(÷>5Î2¸¹ V¯™»{á`P)º‘‘a:!Z…h)z;Ø6zælÞ~fYÅhÌ=hf‘¼–6( g&„T²ˆ]\žÏi=.p@ fF;„•eó¼È Ñäyѯï-ÈÃ8Žºçrh0´Ò`S‰6ïp\¨ÓF¬›1U˜JÛGÚiŠ©¦gÜ †¶"3,P2ª•‘a:!Z…h)z;rÇÇPT4ÅÁ=Zîø‚™ç–²õQQ6 »ŽÖ¦n4/rB0k;•ÀY·ï‚ v‡Â’æVB†y”„Bt½5;Û¼GklÉTg ý”®C»ØLs÷T)®9>O ÓUqyìÀˆÇP9^á,€Èƒ%Î"¨|<€«k¸ä"¿Rˆ~åø•¯r+´Ø™»GÅ  cœ˜0G¢ö¸Sñ¦’"u†7g¬9È“J1kÜ0Î2è„`¨A•B¤]LDD‰J!JfWVä*SHMë‰É·¯Šñè4èU:âNJ€Æä9±­… s”N(œÏW¸ˆ ‚AîZ.äÌ1 yUe˜Nd%*h- z+rÇÇàœ½¸œîø‚Aïä)Hn¥gº Ï+ÈׇHMv!@ûž[gtB0F•kPáýU#"ƒt@t(UÇÂàÊŠbYà+Ý츫 Jš¶?Ô6—úŒ’§MÍàNe]…YQÅ{l¥Àm϶v¥—.,ølŠp0Üצô¹E‹BQµ,®ìÈ7K”=ìE3Ŏɱbf–/·>O±§io ñ\A~`Éç |Ë@à,‚_ ›¦¨ 4>Ž{‘ÁåŽÂ ·¢ôÇ(úP,«Ô%ù<Ð;šÒ(cR<`¡ÆV`*p,Q´£ ÅŒ+5*œep×)¤¬¢ 0µt+#ÃÜDŠB!Z ‡Þ^ˆƒá»NÐI·Ã‚¡üFÛ`yG XHßƲ(󂙯g ƒt@0´S¤AèÀýµJ(0(:T ÑZôVäy†ûí’ôV"ñ¦b°e*KÆä]‡Þ—$?.¯Bæò»&¡ÀÖÎ2è„`PAèÔ•CH¼}T¦©V´ŠªeápeGÞ‹¼'+â~h0‰ÿ5Ä•wû¼|’ظÀHR,…†Âðj\T8‹ ‚¡a„t´h…FFiwÌJAÕ±0¸²"Oµ”³Ú#ÛmÞ †ú¬£·\ä—û,®By®“Ó=’¢c ÇïÇ.2è„`PS†^Î˲id˜ïªY ¡¨zWvm?¬~Ya6Âåz°F§úïߵꀆ§Þw»·í7ÁSý˜Fû¯(+l~)šñLã¢IiüÇöð¾ýŒ(G\;üQ><&7._*/ïªæ“ã©|ÂÌZ­ò'LËœ¶o·»§ÛgãýzCÈH¯qÆýö|ÞŒ|ÂeÂøÐgÇ6pÇæ±΋·ß`éóê|cÊc3Sû í²‰ ½ÃðÏyLJÇýîããésþÜÇÛ¬ó^ËçàVýíe[¨çñÜŠ/· ¿ÁŽ»ÁJ,µ0b²…9´o)5W3g4¤ç¢ÛùÀa|)•#J'gÇÑò†Ÿ„ñíiû¾ùvܺä6$Pá*ðíš¾&cÇÏEtJvlÓd[Œ.<ˆ Áð~<>•þ6åØòp•4Ç5jX¡×Œ×(¥LàÏâ_Jfä( O9aó“û.×–åÆO»ý¾è¬Ú±ABâÒVñcõÆ'± ‰ßVœú²îþ{u÷/¯Ç›ºíÂ|ß—ÝñŠ ÷—üc?œ~íèÓ¥¦k•¦oò<äFÜ(kãúõ?›ÐHq+iËqÊÊЇéJ3%éœÞ¿{ß¾=Q˜á»˜Jíæ§ãDNè’#ÕWt@…¾[tÅp(NË'üŠåùCŠeïûßÿ¡HßCGué#¼‘”ÓÏ5LÖ¬oC§mÏöå  ƒõ¿t$p’µÕuâ|‚0=~Ü=4%{ÓöHžöã¥@'<–«Ï úXôk{fIýSq¯þ§Ý}¾»YK2C%IçËî°½O¤SL0¨ –D?W€~¹>\Ÿÿ™ õù™KRìÂ}ñ¸Š}io¹$²įëEâÿCûX€or/¡)²í¨ºî±Ýï?åáøíþp„+°»©„@_Ú'{lã"w›Jì‡Ð¤K§Ue£®ÃsÙ¶áÜïÎ/æÀCßY(Œ]':sP *Y yÌøÄ‹Çî©üNw]¡.”Y¼šÏ"loÓØ—#Æ7Xçá’Ó£63ÆBð¥Ü|z©üÏUËö÷²Ð ®›þòpZo"²äîz&±5m… Bìok|{î2£[ƒ°-øVŒ‹…Ã3¹ÕQTàÙNǟɘn§¡`v µv¡ŒO RéB¼¨xLù²KÅ«¶»-‹2qìº+¯‰µ³)S3¯\v|Û7SYòÒ‹[æñH6qg}÷Ü«þ¶öI€Ïp¼6×ý'?i©²ÙœÓl~°/ªyfOæ½Úv1<žP.ßyØ·>½ëÒ  ñÇì4>=—ñªªw¹íR\Ò ½6ŒcÙ›±Eí#eјP‚vLË&c“é««cÙÚ‰®ù7‹ß­é€Ò!¯Ú&±ÕÞÏÝHHvx¦áÑy¨Ô­ðû}^­pïBz]ÕŸÐ7Í~C/3ã̃ùLî"w¿{¹qg ÍJ.ç"¹’p¸ÍÍü÷EÌÏXG? ‹Xûj®|¸ÚRÎ뛥±­èg®7}EÓåªyézb¯¢}Y2xÛVzSa×Ë WìÄ7ËJ®¼—KérUÂ~§‡RŠˆÞK…Þ§Zï½—ß,‚…×± ä‹–«æ<¾éD›þø…«A¶h¼íÜRÿ]“x³Î7Åo_åÛåÛÐk%-^ýÇÛ¶ã¶ûÛß>·ž]QÔ¿dþ@ŽóÆs*\Þ=ÊS$ëæ±äå¹P(Ì=J<¡èÈëM¹`pä4c(y¤Ùå6¥¯5Óô“8O ç÷§#rë%5)8aDnwø™ñôðØ<>~¸ÀêÅOÉ|Á“×èGZ„÷¿mZ_~üßT?LÿøfÑøðxyw|ø÷ßü´;ÿòa{züÍ›õ‹ìŸÃŸ?XÞA9z}%ã¬pZlùŸn™+§M®õÓ3KDy´ï óùnü}«¡uÁÑûQ-«µå¬_õîàXi±Óy{âE†þö_}ëê¦u–ê¯:sw»x(,½ýâ¡à)öÔìø4¿B’ê+©Ã]ᕵ/½5áN®û«Ì©Uo/B¼y!•Ù<óÞƒð³í{Jn¬¨¹»›×†|Ó³Åî9¿ Í­'·t[y_ù NR£endstream endobj 686 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 5270 >> stream xœµXw|TU¾¿Ãñ‚!8šAö^W]Tpѵ‚Ò{/ ¤Bz›IŸ^wzIÏ$’Lz#’„@¥Šà.‚ ~¬Owײ{îx²oß™$²¬w—·ïóòOòIrïœó;ßzÔØ1”@ ˜´jõ†´”¨ÔùÏYž•œüå´xlýao@¡BÛ1mÚ=“QÔ$4fâé{¨à×ÜS_J[œ¾äå̬¥ÙËr¤Q+s£WŬÎÝ»6n]üú„ ‰÷mJJÞ’òôÌY¿žóØ\ŠzˆZK=L­£¡ÖSÓ©ÔFj5“ÚLÍ¢¶P[©—¨_SÛ©ÅÔj õµ“z™z…šG-¥æS˨ǩåÔÔ êIj%µ€ZE­¦ž¢ÖPPã¨ñÔ*ŒšHÝCÍ#{¡ÆRµ‚‚/Ǽ8æœÐ0vÜØïBrB¾µß5“žLŽ[4îìø×ï. ¥Cí¡ßO8¦˜8{¢}â—÷h&…Oꘜ;eÚ”oï•‹_Ÿº/ÿþ•÷†¯Ì•$HŽL0uùTõTßÔQkØßÆ\zŸ?Šòó[e‚À¢*±GÅ;tŽz#³;@›jL–"A«‘ãCד7¥eo×)LjäÓÊ€º3ìgÀo¬Úáj—šÓ²Y梨†2g©«âwHŽ E¼€+0§¯6IŠT«tƒµµÃ ml+´[€¶—@‹!£'ŠÐt#$ŒðHƒËâCk_òÐÃb— ôr“¡PϨÓçoºPíðÕyš^¶þwmŸÃô±ìÃÏ­Þ¹1ô%wD@6d(¥{rãŠWÐj›Ñåá8Ÿ)?Y}² èzH•çêsôEìK¸O_&ÐKäNy•Ï]UieN#“½ö8º÷¿@ÒÛóWïÆ¡ù;XU¦^RzgsÊÏ[Ð,+C¦Ø™œâ;^Ôëð—¯ ³Qº®¬;ü¬û/5_‡é ›Îaƒˆò‚»w@õþF(ЂÁ¨eñ/†©´ê5 þ£*XtA„~îB¢?³Ùè†øÉßÎÀ"ß/:ƒ¬®.´‚]­\Ůÿ?´`Ö/9²ÇÐtÃËÅ /G§%½Zû%X8‹ÙÉ õÎæÓ×O€¤£:nËÆDº¾öüµ~i’ƒ‰×S@O+E^_eU[L×Jš0}O\µÔ¥d* ªu¯*÷ëŽÊažõ¿½l@Á2ëdå5yÎbu¬~Óš×ÞADÂãAú¾’úQ±ŸŸ¤íû€•‰³.)Áû˜Xˆ6ïZ¥¢CÔÕ2½lVa:›¾sYÜË@¿ôðAôøÕV´àƒoØ Ýèz石òÎäà™?ÏFá}Ÿ”]<É:Ó½ñn ­ °ýhUé Ç r·ÕéaÃÐrnóüh ‘±ñ'„èO£n 0:Fž;kqƒ"Gk¹Õg-g/¡ÁD•nÂT 䳿õ ùœ™ó£)ÏÍTå‰ÅóCŠnAæšh1> “œœiDCÔ‰¯ ™6æ–Gž¦Ç[»0ðnàI±Gº„8#Ä3q°×O°¢ø)SWa{nB:W›Ýy$•.²žŸcÿés?e8¡T{§:Øè6¶í$6ëVCáFpºXsùEÔ‚EËpí>äälœ9¨‡n[ñ‰ÚQŸ˜ózõ ï»e¸¦l-#ûMnBÐ9ºšê‘_DÖ20~—Ë]ÅiêLÂœ´Â¨“È¢â"€ŽTõµžjÿÒw–uúl¥à¥{²ºvÌKÄjUAŠs–2+ãlªÿò  K<º¬Le†t=›ôxñ6ˆ¥çŸÌ:ÜÛîíia<±ÍÒv诿Ô_Ù^ò:Xè0~Ëèb{½jM¸.äsù ⣲ҼÜÌÜl•YG8âK·ÄAKð¸mE{ÞhûÜwšqÖÝñRb°Piôô÷ zÑÓýè¯õÌ-;ýúŒwÿë]@-Øê<êÒ¼$M,0&Sî@bI:a€ßEÌnÆã«Î8Pß×ÅzÖô)}ÿ¸MüRŽX›±váz ·¯”iAã+zØú3}G_ú”ãq k( !ýãû?ZÈòj±KÃÉ™d®Ø)oÁ÷¢?†£5hÞG;~‹Äɹ8¨¤í:«6'ÃÙL $™SG@¨rš¬l©É­ƒbÈ“+4ZƒÑd2ô“I¯Ç<>~ ]þÿC²ÓÙt-dI™ð=î²ÉÁIJ¼Q®Qšò‚O¶´™¡•¹eF 1aò$; ‚öw‘òR‹Lpô2:N4=åÇc¾Ž‘.ݵi‰0ÚþªgKÉaÖ÷iõeïåSA®ª¢mqÈn ôÀ&OêöäèôBFњܾèG·c‰,ˆg®°±¾÷êÚç+Ø™­ŒQ'³Ñx‘"1ss$Htye~§£Jèê"w~†,'=æ`^Ï–†ÞZÆ™Uy è¯"‰7¸nåpVA¢A”NâÊæÑ¸²=:¦ €¹ˆºÍÎB<ÈQ˜U…™T&È£‰N••RgÔ˜tÌŒ¡YªxÈ…äׇ6AcQš‡fn‘EÇ{»==µŸ°·Ùmq»»O_>ô?æ½?æþ;T,&QÅNçÐZ4 “)SŤ.ÚƒïÆs^t{˜Æpu:\ïÄ1¢³jPÇD!†…˜ ‹ü{4 ûô|Q p`¯a4:séí‘ º÷Šø^ìP;µ€*5³eñ iÛ€Þ–Þwr4¶:Üö*Øá”íÌ4åäBY«s¹;íƒQk~Œ·ÓO¯}ÝsýOeDË…É?…ÔÁ'ƒm'ŸÌK$( ðçCÂ7óokM\!脟K_÷ yó—í4¦%:‚Ë g›Íà'á°y8þXR¸4´Ñ.k90è¾+„½1ôƒ9×l( É66g)W`l8' ½ý$±´‘jÔNHÒ$‰ã”ûå©r/*ó–ŸðÏ ÅN­Y­0H ÎZºA–ùPhO/Mªw3€4ÆîþÞ¾¾ž/?ºh¨¢j Û1k˜ô]…E2(¥#o¯È›ôâèÇr ¬„n+ëij«öƒ*UeÚn™›ü”‘\X¨Tâ‡ðCáK—F¾jZMã®ÄÁ”×5 á†R¨MªÌ,Ëkú‹ãhŠ/ØJF9@õþ3-µ5ZJYô–³›­ÿ’j“žY‡UE-™þ=w*¯/ÊÄšôµ ~V^OÛ3 Ëk­(Ó‹ž öM¤kûyd.W]m9èhtw³¢v´Ð侸®ucv:^2cpñGÃd÷"‡øAü4$1RJžøÚ]t/-‘ô)•Ôøm­Í¸ÎÇ_Êø b4}! Á ŽÀ»± àGnైA;P*DræÙn1ÞŠY|/|ýuvÚ‡~s Ýżýŵ޳@p~9¾Ÿd§cx¥´ë¯ô£'/öÊé—Ñ»—…ü†À}âîX_ô¯2ñ}‰FŠ!«n¥kö¤hÉP¾Ö¨*X#QDÉwŃ2¹âªN‡µ œÃ —·/¶3ûÀµR43gл!Wþºžµ '\=G:AbýPž›¨Ñ¦ƒ‚Î-SVú|U­Ì­êÑ[Gâ• 0ñš0°‡o°üÍÜ}åçßD£sÈ‚æˆÐ$þ'4ž}ºN yª9Û6ê »wÎ#mf²è÷4)Èexj]./”Ñ¥ªŠlYf~ÒÞî‚Ëß\:wÕË´ðãÄx¥zßšg7ƒd3à¡&RÑÅî?Ó7x8¼óI-˜4FUxË›µh²—o bäʧ^$êF1(ϘĽE«5ê&oCdä."ü…7X´õãOP  éôÏã¨¹Éæö3ªU¤seÐÙ°üÒÑÖŽ–¦ùpõE°Ñ|ŽæF`À §+O’€½9z}D¾YgU±Kš2®ÁU¨D ?CS_¼öÖu ?=¹‡²¸`h§¸XŸCªD2ôv¶ôrî‹Sšä&åm¼¿:|­ã½ãk•Qq‰iÌ%tÜlçþ•èJ¢xÆÐ5C±ÉI±K^Ùh¯w˜ B9»ÈÏ¿¿Ñ9“BI½œ½æE'ˆ1:/ö\¶~lÆÁÎQ¤g ¶¦%ì:Éèolr³6³`ë.;ÝYÅ¢{ü~Òï¿øv°Å[ï Èm]#¢ßõ3@>êB%ºZ¹%®@¨Éd5iª8\ž}3óøûMß¹˜…|œ8O‡×áÝÌtÑ[¨ÒÙâ°¸8‰ÃÜÕ@Ÿù~ÔáàŠÂ¿šŒ¦=2xÿ”Ë轟Œ?cþ r[]}YGÕaö$ZèÚOêw•ä辆عûðLÝmi¹¥þs’–k!W‘¡Í×ä±ÏàuI*Éúniëgóœò`/n”•ÈRRÓRÓkŠ«›ü M$EHýù ´ã Š:-ä}H)†«1}Û+fûÓ\»Êà}ãêÍQ(à±ÉůOeŒdv¤Û’I:<ÃsÅr#·.%€8›š‰\wñEÈ#0!Ì Í1GwIJ5ÙUºwd§óÂ{‹ªb!’ž÷ì#óž[ÒýÛÜ`¯c8gˆ‹X Âh*Ð3[q¬É`Tä¨H{µr\‰›é;ÕÝ—t$h Z÷¢ûFe5 žgüe”òZpžIëÅ_ð¡!`ó–÷§õnžµô µÓd÷p\•ƒ­;ÛsòÐû-¹9rS¡6›=$Ñå¤<ò H Áüèió€ŸøRP)r²sS£Ž·pî½ UdŒèÀ¼Ÿ™c`É3OŽO7¡åf7édD¦‚ÉfÈD’tkðªp²% è`¼psœ×ÉA³jëÐ4 ÛD>Г¸OؼKéRÅ©• A"­ œÄÍhº1Äí•v¹( ¸’f”T]4›ÝÁDîh´ÛH<4ûØÚÍÚWRÔÛ ¬Q¢¾²TX˜¿§ßÞSç/ߖ؇½¿hCîš=@çÉ=͵`vµ³¶j°‚.-¬‰pú+¼¾žŽƒ=½ý$w¸œ1Q§Î„ÂáïóU·Ôç6í^·{KD,³q™L§þ–Ÿ>"ÿZ ¢˜:ÃåX&]ðbJ'#ß‹è%³:;ëê[*™ê¶Ò׈P†!‹G*øü„Õ£‡Ä„µ:½´Ä úBƒªxGþÚÄÿe˜]Ôä!Ψ2( P²¥-¡¿Íëk,cªZËÎûïȵ„4ð9ú/ Än9@Nz°Ò¥Cª9híH¥³±vS³RA®.2èð±!ßÊW«Œ §9IùhÛ—`„D6 ÍÉ#’Sw²hR-ì©¡¿šóÌúR”‚Ùâ,Eàî?Tç?awsÎ`™ )ÄQPÑgïü¢~{ü¦xF{~—o'¬‡ÉñÛÿ/—ö%¯ƒéG«mµö[­ÄÝyûè~ØV #ÿŸÇ.Ç•dš:B…³ø¶Kþ;±t ¾Bʯ„ý+…è?M\SX•™”–’–[*khmhn`žÂ7ÅMÙ®ü´äô䜊üº†–ý­Á+?œ/ý¡ˆ´š™ýBÞÈ8•Ê‘[w2xÞ±7faµ{]y”oÙ««Ë€¶Ú8­‹Íoˆ¼ˆ…÷Ûø9ȇ Ý„ºÃ··^úAŸ¿›Ã_²à…Ë´–ô0½CÁÊ16ýC³q%Ε~þ§v–ž9ÞÝÁ çв ¨ ÐKtPË^¢ÍÁí}#DûzŵÚÖ¸¤ô´ä´eµ¯‚t˜üE‘k#bF_¢·jm•h< %Y3 }‹6 >B D¡Â þ ¼A$#ÊcPµÚ\Ð]Á  "/'‹Çl·Wƒž)ùÄ?Qü?79ΓþP(Tò7…üw4±KíV(u¥Ž:ðßK Ažé$*§Òã¶9Ü6†?ðÃR‹Íê›$LZÃ/v£,seÈ?~ðnfüØMi¡ãª93GÝÚSæâBC)ê|Ýendstream endobj 687 0 obj << /Filter /FlateDecode /Length 249 >> stream xœ]‘1nÃ0 EwŸB7°DÅv \Ò%Cƒ¢íd‰> stream xœV TW­¦é®(• ™j3æ$jÔˆh&hb¢ÁbŒ€ 4;´ÍÚìÝýº›M@74‚Å.ôÄ8 L”3Ä$“8F¢NÔL\3ÑüÂïq¦²Í’9sþ9uNý_õÞû÷Þß¶6„H$rÞ°qK¢<<ÁcÉ¢-QÑéñá)ÖYwÀ†É‘É 8ˆÁÁ¶÷iÇpgôÒ¬{Nã3­ËÒ­±Ñòp‚ Ø„”´ð½‘QѱñréRÏeË_öš»be¨÷¼ù;^YâAÄV"ˆð#¶¯k â5b#ñ†¨” ‰' †xŠp#f¶„;ñ4‘K°Ä ÂŽx…p ~OÌ"œ ™P °¨"îŠÖˆ>³i/×Úªm¯Iž‘ŒK}¤‡É ¤™J¢øUv{ìZíÛϱ³ÿÀá9‡uuï=áùDêrü‡Í 8^©LÎÈfE»Ð|çS¹ R@{B[I¸\|oNãžæÍàÁa‰©û$=ŽŸQIâɪŠÞ–a#ª6žD²UK8Ò_‡ehIw|wþÄÙk‚¶°8ç_Iÿ!*å~Êý`ìÁzOð³˜ÎøŽ0¿hÿ°ÙXóÈþ[©aŽÀ€ÚË }55½2´˜¤çݱ|õY¥´zV­UäA2•hÌ6½c®íd…tE%Tf´R 9´AáüÝxŠÍ6»ÐÑe4“9™HúÊ£vûÃõFqh.‡çZë_–"ÕzÉçÌ/¥ÒIš»Œ;¤Øéë¼ÞóíçÏ²Ž¼ZeÊäPõ?šœ;?GãŸñryÅW̉”­äæ”bÕžÒÃå, &Á‡¢û"moØ”×ÚàõòæÌ¶öwšÛjKºBt²=C5@ Œ\*ÛM¾¥~U½A vR´jÅ­”ÇÞ8ÒÄÒ~e¸ÏìÿB†WehÝÂÕ±¡oïê~ß2¼*„}Ú8 °‡F…‡s-¯s¡Õ|À(½)”ú´<ùºìïjmãzëè(ŽLÖ鵃 ‡7õ¹:*ž¤ç5U¹Y³!+?·¤x£·«÷½‚jÐC…Ô×ïkÖQtGbBÁº$½›@è´Gî`Æ584Á[vlÞ¤É!R›žÓµÁ7jW!¿Oº¡¨®~6˜:ºÎ|üÙó®Uªº,(†‚‚ì$-E«V Ã8¤=¨q›V¦Ê¤âNpè}ÚÍÅ[œ»'PÓ˜ Å· »yµ°rHÆGÒ øÙŸO&ô†µ…í~;3˜¾=IÏîî4ËÖ  Æ” QeRô¡òÐô0÷PˆnKíOTŸ„AèÓv6rý]#Жl.´&4 ¤ñ %[Å#7"?“¨}Œ‰yOdÏTêK 4Å…6æYȇíq0­OþGƒ^ uJM0Þ º…gaêÅg…çìû ‰#q“l=rcp¾´ÍÿÒÜ Ôß«±{¤LÞÕ‚¶œ:ÜÒЂ %¯Åyþ„áB“*^ÉÏcó:#;‹w…³4Vu…‡Òݯ]ûû¦(s†,7[¹b ¾.ŠSdÆ…AµúN rDv߽Гsô­vöÍöÍð†pºÃ HW–ÁA'”AKcó¡ÄAuP_Þ—Õ—Ò"ëíî-(ÚEP ­ª´DyTf]^CuSe ‹×`‚$m\vJa^ZbPËànË]g½YFŸUÕVµ´¸_…çÓdÈæ‘=´fûüçÖ=þ^ß»ö´ô ²…å2[ftÚâ-HôÀùò÷+’Í’×—–’ñb’>‰çXI>·¯X Ùô“ Øz GÓ­u£]ù{Ì´6y¬"1%©%ù`ws»™ý1ø¤Èª$÷¡ª§~°'þ±Õ^~VϣƟ‹­%ö ú7sœòǡɑ_õÇßÁ΀̨œ«¾5¡¿ðÊ/þO¯úï^ù¯_ýªŸÚœ™K<ÇÏ9OÒm.tÒä"¤bR¤J¼r]öE‡•¡¾}ÕPàå¥åê2ކ\Q–yÃp´/¥ÌÒD”.ytLšª9=~Œ pk¾J8 j7º\U õ,L*>¿õ9Z{ÿç<|ÿö}¸.X)„ü„Œ%ò¢ùÙE…ë!]Èê/}ðw´±£#p× I=.bG,ñ}qéÖa04öÔ¶)Ûb 5 U³-çFúNuý+¼dô9X¹ý•À8ïqUYÓ§R ¹éÕà—¼kqÜÚoX >eƒ«þ°â…õà}f|÷›Îñò Bkx¹–X§z={áy(DÂ&³ò¦jTh$§á,ŒU4!û?ï3CŒ)›æUo…U°š²y¾;+àœô©˜ÿÝS\é¡®é“ñ§ÈVЧ±_÷„8ëµ·Yˆs¬zTOF«ó<ظxiá* ã*ô¨)Çt¿º%ÔT˜¤œÝ¸=kg˜è0äÓëôz]¥^o8ãà@ÿŒí_endstream endobj 689 0 obj << /Filter /FlateDecode /Length 5851 >> stream xœ½\[Éuöó<ÇÙ— !‡ôÄËN×½jÀÞ¬6²v†)ôŒ¤m›jIJ³Ú_àŸsNU5ëTWÏp¤…¡qÈ꺜ëw.Õ߯†^¬ü—þ¿Ý] «7Wß_ úv•þ»Ý­~usõo¿÷¾éÃÄêæõU|D¬¤½ÔÊ×eV7»«Ý®½ìƒWªÛl_]¯‡~0^xë»ûkéûÁ ׯûëµR0̪îæÚ«~”éö×k!´ëî®ñ9åĺýaOOBuï?O†Ð}Kߪ :¶Ì‰ýuÀñ Æëî×ãöÇò§ÝþX ý¿›ÿ†³Z]žU ²·ÁÁyoî®:¡®oþ|µÖBõNºÕZ™Þ[‹?½èn¾+6]|­$žVw§8H{h’pxØÇãis_ü}ç æãÓ–¥ åžîNù´ç;Ü2Žq+`“hˆé­óB®Ö¢·ÊO—G²Ùtï”.#_t_^¯…µ@Wß} |´ñcñmüøåyÀ]Þ°Åfd胂oæ>n†s#ôÂçø^6‡‰™V‘<ûÝÛ‚ŒïŠÏ\Hî´èáó÷JvÇýaáÛ™¿ ÃcƒqI¼Øã›#ù&Íà-ˆûÝLެ´VºîÐ_¯µjøÒ\>¿Ùn?œ§8Í%1΀Ä_ ­z) P[õF‰øÅ#‡ã©-X0¿: Öwm)eÒ—ÌÐÀÁtYÝ¢ oÙ_LÆOì§»¤ò´gŸÕ¹{Í,Ä.›=;|\ÜqÎŒ§q³mŸÎGFQZSޱ½ôFØ4æg-:ø^{í&:KéûSñ™Û ºÃ´1"Oö_ô°N™<¼Ôíìv`²˜: ­M6T»ëÓ‰WŽ\Kc{7€ÔHÝ~4ö¯q¬SŒ€À=ȼÙõA‰uh¦3À¼¿»¥ÏÂüVÂ'©ÑÚx`¢èîßíþŸ“`òùð¯ñ3œPØîëõñôêí±i¶ø›9ô­‘µÝÌÌLkò!ãl%/ÞâoQîÆè»´t-ɪ¹n¿}_ë0sŒk¸‹­Óæ4îïÓt:ž?ª…™­¨f¾–Îê,ìØ6 Ò‚"Ž-§˜ÛˆD>n#v›Óaü\0ˆ'¡ñt„? *¤êæf«òÈQ;n¹"iDᇹ4Y°Ú Ó`†ëããøÁÚʸn~ï‘Ísf.q²%=²“Å»žHû ËûLqJ»Yy»kkNs‚À&á3p€så#Çñ,˜åî‘›ÄCïW7¿¹ºù×]¹Íá„ú„nÃ%ÝŠ¨¬Æ)š((akoö‡ñ5SÁ 8 Ò;#ºø'?(„p¨føƒ/aø}£m´â`z<è0­c¹µ®ss—ö©Ê=ƒ–VÐosšé§QäCàÿá$gÐ=©*yœ|Æ7‹ô¯Å‡V€sĦyeËçÝÜ’°*üïÒq–²0y“È–7I~½/¯»$_ñ  ø˜âµ{ˆçeÙç_š±X蟧:NI<-W% cTU¼¹Îù,I8 7ÓÁä žÐÁ)´ºÄ„÷VU &C5™.5o#|dAG4ßãý›&1(Ø9# b,:gÑýšåÈ.¨ )VÚnø›p|:Xß´™v }g  Ø<Ð.‘}ãîUü ¤ˆl0ýbæø$/ýûu—O­Ÿ5Uáoœœän3ÎDŸ~ò ÇkôŒÆk.ëëu _]AlJµˆú"éäà¨Û€ÔQ"H~œCÂéI¢>6{„ÅÞd å<û€c4P‚P,¸ŸIg<ß–ùû’é™çô¬é^vtÔon®~w3GfuXÎU‡M#5è^ƒf™ _*Ìu©“¦}þ|oúr¾ÝËëÄ¡Áu¥Àm X\Øêrp‰Ä4$3“#Jéc?#·€“J$h^@=æÿÉF*Ñ‚3 %&³¾ï—Å÷$Ôr€Î¤ßD w¥×HI5a&K[û˜û+‚#m9/9`ÈFX‰@ŽŒÈGŸ} 1Ç$IøkÃDHZ…iÀæ´É«ØYˆL–WG>§ÌÂ㎈ë•f\Ú¥A)¾¢Ïº;&PãCÞKİ»óÎA5ž‚ /ž2µ€Óš Ø_’«ü|ØO«ý­UåÇ݆Wd÷È¿8ÎÌïKHFYŒ®!pø±².øËFä%;Ê»ÂLœòã–ùßý)-.æ~Œ±´±À`sŸ&ƒ‘ú {}ÈK„N i4eÕ"â÷*´Á- ?^SæØ:-çç:h)ÄFÄt¥&L‰A ¨™p16=Lõ׃ ߀W”ù•ê'd_g'”ò„tOs“îA™$³TdI1[8Gh8–¤¨;î·ÌPe{¹zÌëä~È˶¬–Sõ]zü\‹q£¨Z3-Æ£ ›$žS!ÞmD±ŒÓ£².8ba©±÷D (»»E/"ùã¹Ä•°ÙÓ™¨î£ëÇôš/w}ðu”Ê© 5²|V 0]yý=3Þˆî Ü`jI¹“<§b·Çí\ÞåaÑn7·%‡Ø¸]å3+Ù06H'°‰J*&ôç‹ °‘KÀ¦‰+©Ÿ$…Û$lUÀÑ&C„DH9 Hÿ6Ö9'X~Þ•ä—ûõ¤?Îè8¥UOœxÖ¹%²iè,l¢ª¾]Lz~ Gù—ÿÈÔcl{ ¢£³!‚и,€%|ŠÁûnÅÇ»,b[¬Š),JúZ˜³ôiUÖ}øfS¿mLucKÚHB›ÞIùXß@"« ež‰-+³eÝÖf„£vMP§LSE¯±`f7X÷TPö!’ÖüÕ·±ˆbŒÇô9ȧà]”¨ï´é*S{–Ì>Ðp›¬­*®c»s>aIÐ*“û*íÝ´ú*öL¥0½éÛº¾õ¸¤.øó™l&Ù$[XÜFÔD:g¥'Y?OQ-Î$9D%$ÿ0%Ø㛥~šR?é™YbÍ; 1îáÓaR‘Åã>uúAVIH ÈŒažèØ„"7((ÁAú"ac$/5Ù‚9>Áù…è–²š‡¤ÖÚÙã Ç›´á0•Δ™Óª:¸îRcèÏ”/H-(¬IÌõ~ÀÖ/ÖÕ2¶L0V8x“X }†ˆÄb·ŒÕÁP(KÞs0„ÈoIŽÔ²J6iÖ‘¥¦¤Gz’ÀM#äâ_]·í8h àÊsã†|QÇœSQÇ”¬TÌÎT b1ôËö² 2‡æÒÕ­¾h Û;˜+yµƒ¬åuW0œå]þ˜X慚俜N¦ÉA¬Aº=¶Ó0ïÊmHm¹ÛyyÝ>/^q²J=u^º.>ïpYðsÁy±wáÂóšê´‹q.ð"Ñ›Š8·A t1ÜX—C³uæWÄ(„šP¨ŠK¯5f!m´Ù^¥TÆC£;¥KÄÛNŸÇÈ.-ôÙµ½ÁŸ!T°ŒÉùy5w „+ëߥñ>%ku žÑù³X6¹(Oxü|ÁÖc]Fh~–YšF–˜kbæ ‚TØrØ 9ý¶iÿ€I`Ü1o! Êçd‘‚bl:6BS4XJ>a¯`V@SRúd?Ñ^‰(Óç¸1|ˆj¿|Ã[¥1®3¦Q Ôç´›²û%FÞžFVy?Kê÷$)`M'¼[á´?,Ü`Œ‹ÌªqÛë6/5ý7¬úEl¤ÄKÁèÉÁˆw“#¯¢b a§âøáY¡=謂 ë*‚ÍD+gž Bœ˜@ˆÁ&Ó¥½SÁ¥Ú;…=.Påô®Ý:ìŠÕ/Ê*T÷½6§f@@X“/‡°5ðL!ìÌXW ÌR1Ø™,n3ÌosÙøñX7P¢¡qCìÝt± Šê£®Qb"B†eUà·,OÅ#­2+­¦ÏeV¥)³¦©†F¯#1‡„Ò+ï,«kuÒë ÎÔ7 Zx*’wxÓþŒ[9néF<ÆqØäþ²’½ÚQ}Ú]@R˜Ù[Ip< !±÷ÿÛb_ã±Qia=Œ g~Jß¾è^á‘sIv;k ˜i^Iœ²H(ó 7@)zàOyšˆ>HØÑ%|E¤ç½r#ñ]8<¢//<û¶†6|#Ÿ§÷„ù_½Æ_ÚËìÆoy½´Y2ç ¿YðçEï"?Ê¡K9óËkp·.õ¸.§ÌXz5¶žØÚ4sf®º¨‘q“Å.Ó:gFe`ÝlN¹$S* Ì„ õÉL©˜•ž.äö @þ‘iÒLn,5`Žnk`ð<ÜØÎñÝçÕñúOu Õl)kÄÀ[þtivË_RÞWqÂÁIfã«Nç¿0mŽ‹IÓ=ܧí,8÷xîÓ=¬„ŸÒb¸Ç#}nlý°mÝONÏâe±”¼Ç^“ `t4_8Á.%±H¦)–9•;¿Œrn)¤Ò€™÷ã%\s¢Ú½ØI›GƒSÃNSX’C×m*.„ª äã{Xäìžì¥å±å€º;Ë4ôìÒÞ÷ÍÎ*u.ÚWáGÙï»á gº@`Á£‚DÌEOô½¤âoÒu–1 Ùý6ixðêÖ¸{£Æîý~ûn7æÝg–Y¼=îÇ»L`S|’ök?°ÆáM8/_ÅŸÁScgî\N8!Ý ³ bÁSH{îãáhvyÊ ÛtÛm R="ž ¸ùµ£¢M0øÆm·Í!Ý Ü€ÔK…@Õ±ÙÍÛæ÷r=uïp´ùضã-_4k¶ãߩLjU´bÕ/i¢©èe6]ó’ÛiùUþ1½7ÉEô,âhtC÷öe¼Ï,ðöuîóI·ñ¨Ùh@¥»á‚ìeº˜A[­ñ†Pê+B\\¾ŠJ¯ÒÓº C›ó /â^ànoT~ïÐÛ~Iû©ÚŠwa=ñ~2Õ|ѽU‹šüÖévE3Ò—±y·]˜‹“HÖ‚õ©mGÓ‹¹RQn-ñE8²Šaf¼I}ëBõtÍõ¹.>Ò³C”˜$!ðùéxÃЗ×*klsT+ aýÌšÓ÷Û ´õÚwLžýòýÐDv‘Wø+ |ë·$ÉVµtÒ ´4^h0 ðãÝúÎçQ¾r\Zë˜EL½®œ gzÊ5Zv@ p¶†ÜËý?CêvúÃ7íæ„jÊõ&äîŸëMȨܶîáèÅú/fmÖS[í{Æ+Ÿd±Ð8j€™š–_å’Þw0#}èÖÖiÄ…PÂõ€’§P¦º {é þyi§¼…ýL¨Ó¾Ò­%¾4ó= ©BñÏÍ¢ lŸš×âö_7…Çôàj—š•5ðï€J绉ÄUÿkÉ¢ šêœÖ•òÈgÔ•Ø1rÃçf»#²Q)šwDâËBÑE‘É–³/vDšIðDó8:5ü±RÕOÓÖú·å‰z÷~ª¾ÅVÿ£oNÝ—¤“͵óK9ŸñN©£[6Ýϳž² •V €±Ôó÷KµF*ñ¯ÁO»¸_ S((ð‹6Jj¿mNƒ½³ÒO¹ý_À)$¾¾1õWSbPY6AÂcFöû°SqúóѦ×lzPÞöL$½Lûrvgbs¢ZAèr»ôg ”³Ô/½.hÜ.Ò:°‘Ó»–^v:JôwWÿˆendstream endobj 690 0 obj << /Filter /FlateDecode /Length 6087 >> stream xœÅ\[“·uÎó–ìä1)gRypOÌi7î€d¹J %ç"–ÊÒ–+)2M.¹iv‡šФ}Î9º4zv—CWJö¢ÑÀÁ¹|熟V]ËVþþÿâæ¢[]_ütÁèé*üïÅÍê_//~÷–ð¤uc«ËWþ¶²le”iP«Ë›‹†Éõå0Øêl°pmÇ$¼pyuñ´ùöÛ¯×!xë¬j^­»¶S°Î5û>­sÍwûçô& wÍ[ú­œ´¶ŽÓËOÞ&oïŽÛŸ×JÂÛÆ4ýaÛ_úé:eš/o“)ú݇a;¬ÿ÷ò?gûÚĵn„j­Ö~Åï^ÓÛÒrXÌŠÿ°FjÑâ7tóÏøKÂ˦¹J–‡3«ms›îöþäü¹â¶Ds,>ç7ášéøþ~e›ÎÜï¶Ç5‡SqðÉk owŒ7íz#¥‚ߺ¹|¯ÐÇ/øÅîÓ9‡c»æ¶í$ÓÍ1ÐŽk—sÝZiã9ûɤ†©‘Ú¶B™NÄÑÛ!,è÷b 39îD“®s?‚ùS¼ ƒe÷C}Aʵ܄/4ÿèY“k³Ò˜ŽFÀ‚¹2vL§¬³4‡†eè:ðÍEóæóõo*3i¦xüXW›C¶\èÓ|V[¢0§Âå‡ät“°rÇ[ƒd¡-Üûvµa°ZŒt½,™©cmgt3¼Ì¹éq wh¾±@Ò cœRx†¤³ë—抓J»7Éó7ÉÙö4½uÍûí—LzE4Ã~—Jñq l翯¹g Ø©æ¦/ÄŠþ2¦6®ù™8´c"—ºCœ¤x¾Ûmߤše¿M¿0„íÂl‹ò|Ì8òp“‰¡ÿ›æZsT 4›“¼y>ÊчðÐéHÑ|s $þ,:$Üž„»ƒšÓ°®IÍ¥ŸÌä7ý>Š­’Ž# _þËS çñ°}: _MçV•$é@v<ðå›ÈÝ.h¥psèßÂ1Z+¶ «êZÎZXãa °h3ã/X#1Kzý±Ç?Àœ‚m 4kö[¯§Ðn‡ð*cMF§«ð©ò4è¡c‘ýàô÷îCvÄ×aþX?þTͰ½Iùj7nÀ4Ï“—3¶ß¶¶‹G.80ÍßgÌö"å'4v°ãŽií ÄÑÅOBgÑš” `?}2åMaˆz\ ðeà €‡¸±øOP1ÈLÖú£›©˽l¿Mž§[ß }¶Ò]IUAœ£JB‡lµÉMa¦É®’O¦¸,µE݇æbüÀ¢h™,¶ÏýÇAÇæã®Â\ ˆÒM ­¾º¼øÓ…‡Xjux(´âìE§WÚØ–Y„WO›'ý!³Ê™ÕB/\8væX²—x´œN‡0(y»]'+~èR…‰K–Ú[?‚#t‚ ×›Œ$庆9‹¿,X$Ç›/w™¦Þ§B|ý:ð‚43}>Iî!e)Á­j3jh:ªg¾ß¤ÌÀÂ;[àHÿuP¢ÅÁ\ßÀƒw¤þ–‰´.Î*]ømáwa¶Cœè¤†©ÙÞ™†%QÇOÍŸ‘@úùç8¤ÏQ>án:â÷ÜK<"ÝQ.¸á(Hušþ¸C¹¶¤Û_L "“_¶‰_(ì]<¾, 4D%óœ|Í/Œ¡Pšæ/{›³a„óô¶8>È©˜áƒ>?%CӸ˱=t|Æ ´Ðp T¢ª&T¬¸?ñN„N3¨ÐL<D²OºXô2Êê+ÿ_/ánï£ýtD­Û]Ÿ2Ú6wíáUI4MO Ò?,§Ô¯³#ÞÖ°0È1Î îÅîzØf¼Á¿jRŒ¥¦¦màÑRù˜"¢p³$qÇÈ¥¸8I€ç#(©ºýàU44ÞÜ—™ìaȨê·#7½ $£é”¬7äÚÑstügo˜x8ŒY€¹z|ؾœœ»„Ê XGá™Ó+S0çÜ90 |…V[@?ð7)d„?ÂÑ`¾[æìbQ¨§—Í‘$èæjŸ ïõ§ƒ¸î+^r"Ë8Œ[£Š<Oº¹þ;Ê+á]¸ì#ÛãÁ_§*€þ¤R)ü¤›ÄåiÒç߇Ù'j¤3d»J É- \ÕH'sˆ—ëߌIc„Îpoe‰…Œ4 ˜‚_7ÜÛ…¿B¸éß#ÖA}Ìö6—`d•™ Ûö1júYS“‹ ²žéÙ€¶L¬ qkÕ’k3š™EÏf ¦yǤ‡¢SÇf{0­^ÑÙN…`ÁóÝ<"Z6—>ø h!Óâ»1jÌÝòGñgþ‡ˆr|rC3@´øŠSÈš[ Ü­«4w&†ýðª£×¿?ö¯_î6÷·û×ûðƒa#ëWIÔÁ!uc¸¨Œ#råƒÒ3œÅ÷ñ:o§ÀÒÖ£ôˆQzzE‹\Çü”šÒð’ âc^¨šuJø6“‹R­ÆH†ÿ Šbç= X¦,ä.˜!'ô,)F&6¨kir 5‡=ŠŽ¿y‡FÔÏ Æ-s­Râ´J|,¤TÞ¢,ÄÀjîH€Òp6äz Îr¨¦“ZN‘÷bW)óq¯Ð@Ù•„S{Aú> s§:†rϱ‹¼c-géw?Iø‚wª• £é¼ÌYÖŸ¡kÐþ®²9}‚¥ Õ¥rÒ?ÏÍÙÇ®X2Ð#:ŸúÙ:p3'Õ¹v†TTþéÇ™•ÙçÎý910&[eí'ç"Álk+¹ˆŸc°d×jéjGÂH“žŠRÓ©Í}¡4DuF'h¼RK/D•ccøBQ×ü˜Ç¸H[M ”(¼>j3ÝK›­¶‰#ŒÆ•#Zä-ð¤ÏTÆt1¡{„e²äL¢R½RœµBš yó—Çy7„8ÀaîÓ1Wá9˜·ÿñŒ¿ûíYZ¸Å¡ O ý4jR¸–)›Í žŽ:GKjxfLNSrt35_¯­DœRšÚ‡ùúøÓ̳Lð‡Ç ¸6YL$å:ÀÊÿ®fɀϘ!KÖ|“À*ÃaŒŒðô•c²!hZTsÉïk¹dÓ2ë: ¬ÝÂåƒGæé=Ì)w+§‘O›Ï×4È€ÔšÏð§"õYñÔÿüéèZžÞƒÕåAª›ð‚S͵»ZƳ£qcí]Ì~ð3`ÍWäøøÍOo3AN„'ŠþT±,`ZÕ™Ö8Ÿ g¨H€õ­¹Kæ  ÇD¬yª0ç!’Wσ«¹qàýJ8R…Zª’ñ|ô#c¼z5WÅê"˜¦.¥ê}R&Z¹­É©nÁ6tn• ôÞ™6¹Tô¾8Çà é>/b½Ó Šàc°Ñ£Ä—ÀaBñçÖ’ ^š¿©r…BÈ8\é÷Ì ƒO¾^Žb]øAÐÌǽÿÑäY|gúe=–E·ëL$' 4 ¿ “0–Pož”ñ[à‘dSX+~%ÉÊÎFÚV[Bµo »¼1éf§¢ãjogºu 1(ŠÁNÕƒ8•³¼~Üyj%Cøj Ž0ÆçÝÂÏ底º5|ý;¬édòÑ- €iAò-[%Ÿ†0­ àu"Ã9{óGú£ïi÷óUWPѤ`‹:Ðb„  U(:Ñj”ðú]ÆR×ãçz¿"çSØyÝÍ-ËV“€gÎtf}›¾ d\+ôXLõ´áHXKú÷Qóe§Ê°X×ÀÇÆé®@ÍjkX©ÙÅBÃ~$4¹’ìhºîÄ^t+ˆÂ^`"ØŒOêêq3.ß}K“9.Ž—µŠÅÓíê~‰âå™sÊp°ð?©²2¥BñVJ¹çñ«9IѧmÐ-5š”x—5dÒÉ%òé]£R†cŒö#e¸´ˆ­°¶Ç‘Ÿ×šŸv_]~q’ˆˆ-œQ6c- ·°tAp›©¶iÅA\›¶¢Ø´…5§Œû‡ÚNÀYäŒÅë¬iQF6ú›*ýÏ0ä¦J×*cÆ*âx¬%}Ócík;$òÂj>n‡u_© N¬.ééÚ~1#|W¯®‡ L<¬Þ„üãW˜=ZIaAHùêæBÉ[`úødwñý"Î,);á`-¹’ hÿ„@s˜ÀJUG(pÈd§?ÍUU߇æÓȇÑ<LÛ*ÐØÇòL€K™3!M¹/¢Èñ±d¶¤ªF/`|áa.ú8à¶šðaÂ7rD¢+¿¹D×iƒÅ“–ݧ%bÔµÕÓUjG¡;q¸ÌÝy¸ ¯PL²–W¢WŽ|Èá–ȉMKó} éjõ¼°C£ •‹Åw?Ìi3ïèi[‹å+Þ}À/€½"M¿ÅdÓרXùå‰{…°˜Ä‚Hø:²â ð§62í=Ÿ±•l„­}Ýšs'±Z™uÃõëå §>~Zò»W˜ûUeÍ‚ÕäŒÝi0•y¹Î2€gRŠÊxÌ›jºVš©Jž4'8?B-*NnÝ}Ö£Æ9ûC$¦?l¿ý<ÇP­,ËúÔ?šûT`„9|„â-p̬ Y_ÌñŽÉX)Šbªè:3*wè}I€°XJsžÎò—v45ÖxQ×Òq;·Ùé°Á„äŸÕ0Y‘à¿Ç2uü¨”’™f·Æ8š¼‰ËW²âëb2Û•¯Y³Vw%åœÙi·¢yòåãGa²Y6xHœÿ;[¨$O–~ üâb¬ý¡Ø×¼3ƒe,Zô‘Ô»Õlã+m¯¤ÿ±~ŒÉ¢IoÑÍöÿ¾ÃÍÒ¹™Dœr(Ê”òÑø»´30YæC§}lˆïz5«ÔE7E‹»Ý”Ã@–Á*ñ«ÜMɛЬbdæ4:‘ `:ò‹:ŒF‡mŒÍ-»Gª0úçh4úˇcå}VÎQ‡¨ÓÈ«ÁÖMÿ>Uð.íÆÓ­B̺Q˜N2"w6\aåZ¹tä2„-ý‰óÜÄ’s7± Ä²›èxaªO¹‰Kø7Ëû|V5AÍS#Òjt6‘ôÂw7Îk°\±3’*ˆ±îDc£™ðfN2F¯…ôißb ¾t.”êÜ!‘¤˜ŒtZ W³Ž-xú9Õq(Úõtä‚(rÌÒÎÂäE§¼dÁÊN}–¡ÈzÖ î#°úÁ1¨ä’u~šú2X3©’iϬ¾ˆ±UFO„]7K…í³4"zp B¾XUûÑÈ+§ÐÈ×5ëL«µ Ð•1Ÿ´(È'm¨w Ú"ܬT¤X¶¢+tâÝ#Ì´<®zµ ,–ÂlÒ¡õ,’:®=&…²ÏÆ,`Yn½‰þÛê\ÀˆµÞ<Ô³—•ë>ˆy^c`:×¢ˆ²moⓈ(ä€ a ƒeKÔÆÒkûÁÀ³ffŠÖDÜûwõJ)AslxkèN’Dµ•$ò…Rª5RyrÿSÞ*jJÍæYcÊ*ŒÅˆê6õ¤ëCVîWQ`X5d`7‰ý‹Ú~B¦À‡'ÐO£ä3ì0@>e;ØxÏ,}ò‡‡åŽN!éê:¼Å›YððIÚVofGˆ˜ÑßÌò ºš¥< €ÄàKE‰;ÛTÿb!hp¥³X¾hº{ÄòÇë`JØœ¦Î\õB˜4‡5vž”=É!B¢33\ÖØâr(¾‹ RÁvz³¦+]½ár¥Ý¶(¾í©–ŸîHb¾s—V"š_þûÛ‘ÆûdQ!|˜Â)Sð Sð«5]áÔÙX6Â"oì®·Q­=m¾Jÿ}Ÿ9ƒD+GÑÁû:‰±ZPœoÑB7Q̓cÁFQg6õªÐŸ±MÉ$I(‹;£ÂÔÔ*4b¨aØÎÚ‹èCókOèmú½i½âþýÞ㼪~mߵ˖Ÿ5Ó-¹WÓbJǺè\©\) °úì|æ7Šp_•€ð;òµvýá·ä;_›é~«¼]ŽÄB»¥öC˜!4cão§eð=T¢´c.‚ÊArtø(Âíð„†z~oFEÖsV1æÉ¢ƒT÷nÌÓÑùòžRñdsŸR²¥ ®Ï‹‘ó~(•Éä¡.?Þa— +qÚr4/¬„Ïbèb¬3¯ºÙÖë\˜¯SN­/uC(¦rv¯©©ˆ¹–éU›é˜’›²Èùµ!ñºù-L“.¼¡»ä|ÈýkŸL˜®ïÃ[<|…³ÎOº£›Å|ï*k²Cͪ‹›^úw0Ó2î—Ua¥T$yµ@ÛµŒ¹é.Âå{£¼WóK¼Ñ;Y,e{¡XÌÊV0sGJÔ¥5biVáØÿ8ªå²^™V:¡}3ï½P‹ártÂ?¢5ÜŽ5 gö†ƒ6‚¨|GI4$cô¦ïokB‹X1;ò7‹" üÎg_%?•g¦T^]Bµ rLÎÕÞ͘ƒSíïwM”¯Ô©0V˜Ó,z¡£{© žu‘šúàE¼êoAÿì×Ô/mÚ§ßmÿòr-à I€ˆþ¨›?Þö·ýÕËaûcû»ÿ¢W´Ú/oÛÛëi’˜ê6Ú_`%èR—¢Ë=Áþ8–ÉyS6¾c¡]ï€%êpDûe}s¯€ž8ÑCICįKFÃeèâ´³ö–X(xÖ‹ï×gg-îÓ¿6hrFίWÑz— æqÝ5~ItâPó'¼;L%éUŸ&q0BÉ8XE_Ún} 8V’Ëꦧk„b]üb†gSÞ¾K‚ª–º“ÞÇ‹ü"+Øöö/•; h°*¼Òoœ^»™æŸùÔ!À=Ê ‘:ß/ƒ¾|ì'ÙÑ ‘èÒ¥ÝEGÈ6¿ª'’P–¾Ëf¼¬kb’¾8ÌxXÛå\ âV'º2#oKlÿdNőѧõFýPéY¦›1êŒLÂUµqõ.ôløùç7KÐsÁÊ›%:¼¦³œDŽ\Nc:QˆœŸÓß+PÉh|ŒËeé-µ}|Qç(… ²÷v;Ou:’-þÓÅÿä÷7çendstream endobj 691 0 obj << /Filter /FlateDecode /Length 6868 >> stream xœÍ=Ë’#ÇqŒp„s²òE >¹Çæ´»ÞUË Â4_¶E…,qìµôË]î‚Ä ––«åøCý!Î̪®0 Pfìa1@uUeV¾Õß-ºV,:ü—þÿêîª[<¿úîJз‹ôßWw‹¹½ú§ß{ ß´¡ bqûõU|D,¤­êÔÂ×e·wW›ÿºö² ^©f¹~v}ÓµñÂ[ßÜ_KßvV¸f¿º¿¾Q †YÕÜ^{Õv2ÍæúGíš§×øœr¢ Íf»¡';¡šïßM†Ðü}«‚jØ2{ö×Ç+¯›OVëòŸî6»bèßþ;Àju«êdkƒxoŸ^5Â\ß~su£µXÜ(ÓzkñëÇÍêëkøöeT³¹§Ík/a“Ïð{ÝvN6ÏWß_K@T€µÒÂAÁâÍǨæUóKúª €Šý‹r:…O6[6Çw¯²Q«-ì®r ˆ¶ý.­ÈÙô(ß,yŸm¥‡@ ŽçïòýhÆÀ©ÛÐ,·«eþüWùCýþܸ"Â(z³FÇŸT ¤ip±×è—ûíêOíõso>ÏzÅ&ÀÓQÞ6/z\ˆ&_ÉC¨Öè ·Ÿ]ÝþÃc ñç›íŠÑ<,ºæ5ÎÖu²Y"–»Èñp¬ãrÛ 2®¨- ÇNóiz>>!¨µ°Í¢Ïo¯~w9×,¶óË©xäXÛZ Z×ùÖÈȰ¿Yn79"óÏË~ïša‚6ˆÓ}þqy·Üæ[{èž”­b{j¾lÍÎUIÓÚÎçÓJ8lâϨ]«¥cÈûò:a(˜æuNÅ«HN28"'œˆvµ‹Ÿ‘0žäxNço¥µÒ çBñ>= uÂ&8Á÷ƒ|äí Ínu—“Êxn7°(vCÔí}”iÛÍ“Œ¬sNÙíAªZ$ïÀ HR@FæDAL£œí™3Rwbde‰‘qã"ãæ¸\|ÀvZjâf Ü2p·_wozÁ-m`Çz¨è"8;𔋠i¸ 8!×ÑhÓ !}´Îy¡âCß\ßÜ«h¾­jªËÀ²ùCu., çi uÆe¹\èÓÀQ6h€ODJý”ñ5ûã)'« Á«o—÷ý.ÝDÐ÷*4¿æ xÏh9>“(r•Ïðü©¡༓9Œ:kÃæÁ#7Œp­³Šoõ:ÊÒO7ƒ^Aê9AºNž;µèý;€ŒóJõA€øxBjÎèt%ŒnÑ ëÈ‹$?bK¿^elYÆ)fPéViãz¶|†²„Ì"Péë ¤öê@='„Éwzê²kl>ŸW/Π –†p–#õËk0X4 ª¦ùäÚk”’ @МíÊTÍh›¢E“ œåª? E”`e³-¸73°ïú'ìhZ=™Ó Hë⥔GCù ÄH)cm ¶¸DkabA¿‰9n)~‘{\ f•M6ÇämŽn&ø(ð#Ù R¾²ßj0XÙ¸Én‹ºx*‚4ãn²õ¾óZ3Œ/· JC«C”&.ñ”ÛýtNƒÇô=èÖÕ¦w¡À.øzFOOjâRzü0C‡®HüyA6lIÙø—I¤Uçµëý§wÓ<¶œÇ:˜¦a¨ÌQEmƒ9QQƒ§A]°‡ÐCï°Üãdäþ‹ BM©™¨rt3át–3üq£M댗ä8Za/ kq.l§tkó>"¾v½U-#òhÑ(³‹ç»+Ã/^ƒ$ûôJ >h.ÿ{½¸ÆêT bÿÍúêóYyWîª×"¨qR©[â'¡:Ñ…‹€ÒÊ&Ò±^Ùh§9p»Á~šôè„5ÿ|ý÷S\£$rà´ßÈÆÁh¸\Cƒ¾€)¥.ªDŠž˜³‹€Íú“$‹U@,£œ#2Š 2©¼*“á/ÿXÇ=@g{sÂ=¢aFÒÿvÄB`BoÒœ L«á”üaùF#ÿ®ß¡ËV‡3óÖIä,èIŠ5²i¸ÆuhÛ‚Õ(Ù¶Í;õó¥…®™çSuŒM½:‘Më4LÄ¢Àõé‘‹²àQžG,0)`ZþËI| C§|Z9Y`\!ãÎìC·NÕñ0¼”‹ì0´èL.Eßæ0<ª:ñgšUát&ã:¡'1.ÚÒUÆeSÂL ¶!­+G+!W»ÔÔ.|4@;\í>ªøªÖÈ¥¾÷‡Ñ[µd"u½‰ôoàÄfc?ú#¡)Ÿ·4‹ãZJuHŸaÁ†IóÜωáð¬LK÷ù‹9‡ ÉÊŸmaƒNsJq®2H˜Gþ‡½Ö& fo0{ˆ. S;Œñ~éÄ{˜ƒs®Sé+šF”Ì—Ò¡ëLéS,kâæ-Ú `'Î6Å õz7¶ÊëÒ0£Ù=,ÄË£r·{ÔëÌÎ1…Œacé0šj@{šèÖýOÕQhw:§§t&ÉhPJ²hìÜ Á¡7uÇÚ“ï ~§€#¹šq¨4¬¯ùÈ÷ãH¾*š½éØ|ÔûÉ*[-./¼ú>´ñNÍó)Ažw7zÒåb½Ë}“Oö§¨®>D#u Ó¬ª 5 ¼2“g5“<1Î=ÚTÒQÝÕ¬MeqwƒÛø–FÕ}ݨ ´ ¶×«ýÄV¶ŒXÁvtÖûâÜ&ék„¬@ÈRêK`< ´› °)ŽMëƒ-#—gþP£"Ðy¡e/f"y‘šê‘¼ù…ßúì~^§$…IXëO}bþ¡F󺋑† —s [doúlܤӣóðz6n²-}÷)tXoã!Šçz†q…„MðI柭g7 Æ·6L¡K8€7[ ¶()[nÅ<«¯¹†_çvÝ]®6v½.w™.w“èMœ–çw—ûeorèÞ.®iá°(br¬‹@À¢w£{URÄËI—ôGJ»¢À•2¦/VDÁÍD_>!f˜Ê©>–?P<Œ¹køÄ¬²Øä¼~ê7y_ÅŠ!=#óM‚¥RaTÄôK›ê‘ÁªãÅhœ¹Û½á¤Èô&ËÇpÿb{·\¯~˜:‚cý%=¦ÍݸCt†’¥tlÛsœ~€Û‡òˆä3ËgÉgГƒ‘T˜!™‘ò¸~|@d#/F>êdC®ßãêQluêÁD7ˆù±æ£ŒèÎG9‹R1âßÎYÌh5®¢îb“ÀIó‡ý.¦Y råuh)QQÊNƒ´{&ÖŠõf]óŸs´(Ãhm½µLš9ûtH§sëUýL¥6*)>§ô‰5,ù7ˆEöÔl…Qg0'÷°ÜÕ‘ÀˆöÇØ§À\—òlŸï×· ZµÂo~àv´¼Èv&)IÜÏE3ÒÈÀyH»œ ¬ˆ¨Ò@&…¾¸®á À¾ o'dY“˜=†Õ×¥2M„ §zrû¦*À|*¹ˆclu‡]©æO°^ºZOØŽC6ÛYÞÀ’‰#Ìzì|æ`bETG V×à0?n6IÚUôôöõŠ7ND|£,ÖÚ¹"·ö¯<”4;”é#n~ä/h¼gÞ‹层Òã>æGê¾?`áû¬t)cXgÎÄwXB÷ã¤;5õ2ì­@25Á-iÌBÝ&Ë>*Ò»ûÂ~éºØ–†c6w:­ˆÊW6ïxöí®PÞ +ccÍÔ°³±ú€•àp`%"“oÓ| $ÅÊ–&§xà + =S ?n $ ›G34–—bÍIC,À-*<#/ÁÞŽüG©G½xPC‘ìˆÜxkdŸ¨Ç&1t㈠p¤ž&êiŒgu ÒÚgë¨fS`?ŸÚTã^•Ô'€N*©ï§\¯¾¶#HÚ΀j›M™!Ùij°ÅA&~œ ai’¾ŠœÀ —I2·Ò-´îúŽà³rŒ`´N6&#­V·ÆæŒ ’ÕíN6º› UMÜèNRÓĤù–¬èæ¯r#}»š-(Zåã–ë4o(Iô.% Œ5“‡e»8º0j>-Q_Acáæ8Ø2ó ’ ›‰iSH@ðlÅ`ÙÌIÀ¼חжdSf¶­(53m+·çE+‡˜Öœ—BãÌ´*œ% ŠÙôP~œ tܲÒä#'(ÿ¢ÖŶZç1‚ÉæãÙœO ¥ƒÅ„>üU ½€C . -æZšõ´ðenèpP”hÕhæDH‰n®~k°“ìG'0¥9aKS+âè¬#Ù@ 4-¸¦-Ћ汛ÝTÅ0µÐç™ýŸÕ)àŽô‘ø=7 øYÕÝQ]kÑ`›™ ¥X¼­®à]kÈNJºÄ#«TÇÑ‘›"¿z^´€¢0É‹åXd÷”³€µ;CGÒÏfœK«ËèãL‡™r$ÃÉ$á7”`TÄ‚ˆ²—.Õ‚Ô'™…dÍ-'2§d}]à/äE!y@+…'Ñ#Ê=R¸2"F5ç‚ì3¦8Ù+&H ¬Wž—èy•Œ ¶PõÌ „céeïgõèuµÀ}âÃSOK‡SwpâÃ)N¼ òáâÓDjìƒ É4IuÚÆ:†RÂý¡ŽHŒ1+Î:õºK9ô|äœÍò³jù0O|ÿª6—C_\Xž"?=ˆ|’|ä<$Cþ|H°#’Aò­0(a¢&Ž:±Mw"ò¼}Lúƒ¹˜t†ùãd,ƒJ k±¾²_êÐHâKíõíBŸPš5¾cᜩBï§‚p,kÆC[gª[¸Á#¨³<ù—3’Aö‚¥þLÑ ¨î4æÃ¡¼ŽÀ:ê®Iþ·ŸþºŠ{iZa …©ú¡Õ½Dµb™^êOsb4gÍÀïÔ¹ÃP¤‘ÓDÉi$ *œ6‰~r³‘çYÊ`m•Û¯Ôa;;-.Q?‘â’?Öy^kGÀœÑÎYJ¥~]…÷…xLrfÎ$œò¡*VD-¤ùÍl¬gQñ Xq‘ )HªÛðFE­C“ö£)Ô³ŽõÇÖ3/9…qâó³ÕÕôs B쪡ƒ‘ ©ýÛšäð­õ©)×AÑ¡Ath·Èǯ³ûà®jöª€Qî"šÿ 6.Ì!AB&-z7%Š«iþ%3oêÓ€ÏB}!œCKÝœ3è¬u¦K3·nÓ`Ù˜‹5¶‘îs˜<,{ÕÆO°“DOQÕ¢5ìýëÚîfêÚ˜-CéèJÙcRwúêÚ$Ö /¿äbðuÖÅbdYt\-³k¿ŽW› ®á´¹²\/bŽ)S'%•c§Úbíâžoó°+€Ý>LÛáè#y;œÂ¶ Œ‚ï™÷´]ò¿Ÿö»¢êÚÅâ¡¢ÖüÔ&¸z%™«_5Ì:S7Ì ì² Cf—=Øî¶£ü;.ìOØMLò»©ö¿–(i…êDÉ å=œÍTGaPf(l™¯ŽR…|-=(a¬âU ‡‹£æÊN(ž<^[w\ ô›œ¯ŽB—,9Seòxîf’ )ulV!G¼#b®‰>›ZóqÖòŠ·bb†+òõ%޶1¡±ã<Š¡ZIi¸Ø0ïXäeläøjÖuœ• !POInûYí´§‰vQÉH3wqt8==í Eá#øí_Q_ œv°ÐÄ Á÷›~´žÞ IøœmWÏWù |”„"T—ùø±Ón³e® keÚghÙ½)ºIî¢P’¾ñŽÔÏsY~wÝ÷ÐåÈ^/í0÷ŠXŸ{‘´¤ÀZëÒ‡VIQölM;ç(™!©€ÝKù4~éçØ³‡u2¶Fse2G±CjÂ;k‚Èš…XÓÞЇþ: õE„b¹O[önTˆÉP´c7R½‰MJ*`Wø®ÌqÕ:>ü&^fŒ][eSn#²MØ¡æ~–&´ ¯ØáDX›©¸;mÕ1ÓžA\AÉõey×|‹˜æR¹©o’Z±"Ì-µUl’s]iwì¯1èÚ ©Ñlœ*?¬ÖË-µœJï@ÜõŸ»À‚:de¼Áx"ýð{í›ß|øQú£›ï²¥9bK*}æë%njâm”\t]'Ã(º1ù2’ kè:½ï2ˆ]Ûꌊ —‘ŸÏ—ä ÞÅÂcê¤ë$âÌÞOÊñ{;ÔÈ袈‡È³„ó75Gú1pùºî-ù.8wR\ZQ/KoûšP½z9e¥ž&LXºÈ=ž¥™*زm`Õ4(”Ôr›zëþ°QbM»Ü}Ê{3å|¦õC¯ÉßÎTùKpÌëA7nLZƒ¡C¼Ìç%]æS¦ËœÂÀ Ý~/“_Æäðn¿]Íù©²(!ïKnDRe9 \L¢ä ’±”V¶éÌØ7ì§:š.c¬PjµÉhËïÒ¯Ü »Aø½>KîÞn¶³£†±ïáqšÕ25uÔüÅȼ^·‹—ñÆùŒÎeóçkÁÖ«¹8ß!Áùðzűõé$À:w*\þ}4–Cæµê§€è3G“÷ M싘š¨tð†­Ã|Y¯æéÒ*$*Z“ƒ==ÍÕÒë)pmh€hA&W5ò_³çcSˆ *Lh&îœãï(ˆ;¿£§Hm#M˜¿2cRC‹{6’¬dÚ²=OÂQàÝMî?бĒ-ðKÆX+ö[véOzl‹uzsHç«‘ñ¸HXüépÈ*'\“‹usv(8-T:¶“ §pbqEN/wx¤-À¤qúH´îÐ ÁÙ=Þè®CÈ{ÐÏ»!ØŒ·4½{M·¢×¤:B†¢×¡Š„€'ÿÀ½ûäö¦:µøC.0½“Ã2š]ÌpŸÖRŠi® ÜÌ/Ð8g¯ÃZouÚ 8„Ž7£M^ÀAØ8ûêºÏD˜|O—¹I‹Ý ù¼gÞ¢µo%ÈZ†>ºtŒG „|Bo ‡ogãRÍv ·if¿›D¯¤+[šµëhŸÌµg¯ÂÁ›Aƒ,Eô‘Õ‡· …(»÷QËX]ô‘KÆÓ®ò*û"íÅpÇ#/¢<5ݶ‹0þá×™³–.“˜Ó"ÄŠÅø4ÁnUPCŒû=ïw§mÍïÅv-Ó#€îD’•f’Ây«Èx¯’§ \¼B@æ5µì=ãɦøÿ¶Ï¡†q#Ú4›QüÞ§yÕù‡;´¡[xÃ9¾ $§Œ:Æ.q¼a3) Ý\uœçOy:Æg9rûxâ.þŽ ‹M­¬%¸(vÑÛ‚S•ÊèðéÂî¿Â /ný`Cº>0R¯ž“øîñ&¡ºö#Ö0.[eÜmÿnBÉ]þ7ž#uºþ¶Õ˽o¦Å[”)FhÒû?ZŽoÜwÚõ–6z‹¢È׺ÌkÚ˜tØ•Í+€CÎÐl±ß´@ i6"ÕŠŠ$nô,nt 'zéüðv¦©ø\MD#Qƒº,5hßaÀ„ƒýÙæå7É÷ÇRDÿ{æÕƒ@‡Ô‰~é«óy(Â9qïtõ`6e" ÊC`û##uSÄQ¼“ú¡| 3 "má÷ìÚÍÝd㯢8ê4¥úhו %ñ{å›Ï¸Xß ú¦ÖE6;'cémë¼äðà Z¥ÜžÚÆWjbö ´T|½ˆÃä®Åôí <Ú%a¾Ò -ãåÔ<"·? 7?­±žÜtŠbè±yYÓ5‰ôÄMzE¡GO¹R·Io7”1ðÀB_…’®"µ¦YNL²÷¿»ú?¸ú«Éendstream endobj 692 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1789 >> stream xœ}Tkp×ÞµŒ´Cݨ#eÈn!¤¤ÒÃãqB[C0ÁÎZ ‰ÍC&²­"ÛX’‘…­Çêµ’ÎîJ«·ll#¶±C1P Ðq á1¶¤!Nú í„)se]MÚµ!Ót:Ó¹;;»÷œ{¾sÎw¾KÅEI’šÚº:¥õg¶¶¦£yÙsK7ë[ºŒ:ÓŒíIÀb¾zÚ=JPZüæÕårdùÚòZ;Ÿ(!ɲ'¾·tÅóëêêwµë[tCG»Ù¨3·ê̽É`ÞÓ&n1éuòŸ¾³KgÔõmúv‹ÙÐfŒz³yvÛÐÞlh7Xl››MºÝ–.S³±£C¶6[f?L†–V A­lQ©+ÍãËšQÕ´› 9b ÆÈ "FH yR ‰í¤H†É1_.(&~LüŽl%?)ª.z£è7ŠgýÅ+‹¯ç•[”¢ò}ôFÞº/¿ÚJ"&Ç)¦Ë§kÕQ_ÚÎú|N]¨ÿŠð9CAà´^É‘IHRJ¢sõyBJñ„µe¹¶íËE÷åbrã5En ÕðËïW„ûzMïÁ±­ÇwmŒïŠeÁÅJ1·ýÇwÄ[D¡•Â?PAlØô†:ßvᬅ ר ºÌ&›Íb^ÇùC>Ê•€ÄýÏ/|,Ðh£ îAÿ‘ÑLfdär˜ŠFù#g•{=§†—°GñÓ×5hÑõx8%A¿¶ßžrÈa<.—ÿ(ƒVðéа ´=àpˆÊ¥Êàå¸ü/Ž8ð^Ð:ìΞž”/Î1ha ^¸ÞÍ9}УíÉ8ÓáKÒ¨ü¯v¼zŽ_èÍ8300ÊØQ…‘U)÷€# Út&ÕÏ”ýK1÷×ÄtɘœSPp%qjÔ ù•L Ä´IwÜåá8·›ÆòÚŽ]É à-˺]ž0w3¨A64à– øÀ§u%܉˜ $ågnL°R@m*O>ÂÃON’Ó/¡/Ôv‡ÙHáÊhÑ €r¹Ý.§Hû˜\ó…a,¸97­+îN†’tî"ꋇHi »‹‡º¡—.L*íV°Z!ÃäN)3ƒ0$Cõ»'Ñþ™‡¼{R‘»cUËîv/WâïVý݉ž r/ÌúϘ ÊZ€Jî¡@¡ÿ1àUJ¼/Æe¸ W¢Ex>ZÅ •_ÍÔ4ƒ!×$>D(œRÚ»ÿ'¡Y?í*›"§FsFÓzôGõAÒÍzØí_\Ýð2ÔBÓ[?¹ºñ݃@=U·ð‡æ¨'š‡D&‚¨;'.Áe8ÙòÛ mþe÷9 ¾üðÁßþ«­Ÿ¨!åR!‹xMn ‰p, éY*Að¹èÂ%ÜÇúg» ΄?Îå.â>MÒ' ¨d\¦ ×ÿŸ¾æ{]9í9•þ,«ÈW#£)Ö!ž‡Wàgºtͧ!¾kpÏÈ+§ª€ÂÔL⬸UhZü9z&›f®Uò¡l÷ÄÞ÷u·åNS·‰J˜®ï,YWµj{ÓðùtÇøŽËÇN\¿õO4¨¿zjShìRëׯY„å…[¾üÓý·?;{ÒòÚfÔx¦vÔ@=R}Ï¡œýkÕcÏ#ÕWEšÏ¸ß $A€7)$‹ú(\&W7y=‰JŽÁM¥,ê!{èðÀÀ𡲒Âa¨¤œK*¶Ui,‹z)ôtvØí{÷Ör”×b^§ØK(,ß)›Àp±ùtÛÏ8P©ÌÌ<©þ€Ë÷ÊYÍ›T å¸M¯Te`Ðj…n;ýU¥ÊÝCC0˜¡å±½¹šèÊ".{g}%§ŽÞš¸zÍ¿«˜Þü¡:ÑÎÔí´Ó;[­©ÎQ8¥…¾° ÇY´(p6+‰¡¹×%Q–¯¢/‰ €Æ›€v¦{^ù~ÛÔ«ç^jý®ºM¯êkg.mýÐLÕx¶5uúO „èh(ær†<^àŸ÷ òÇáôÚ+tËx褨sçß9ûN~šÆC*+àM5f]úÓv:<‹E|’Ÿsúƒñ¦¼>¯Ç½|€æö{=¾ˆ?b$Q"BÜ2±ê÷@ýù=Ä 5óÅ?Ti™!$„x3oOà5àæ¼`£êÎ×_K ¤‡d†ôgxDª:W¤îU3Ëí´ÚÀ&Ù’›JHù{èÛà ЏÑãØ¦‰°|€’‰8o"°8™ÿ¹LÄO'¹J¼_=d“Wç—+òa•ùX­j sGi´AÙ70«Üo´É f¿Éà̉ \­êµÉR€>½¤ ‡Ç˜261™.};«œ,™œG—(¶>[:7+JqQHð2G‡KK âßÖœÐÐendstream endobj 693 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1294 >> stream xœU’yPSWÆ_¼CoÁ¼`¿€ØoKêMÆbZ: æØµK­gºß¸b}æâEb,ÀîNt•B åé"›˜ü!«ãb£O¢Ú×g?zûT3kzêA»¶Ã(D¿nœx³é–yìG¸MÑ>ÊÛþ£+¼‚¶†Ä·æ¶u66ë>XŸ©azGnhE †Û&н?K‰ËÏJ–•o.ËV«¡€Ê¯†#Ìyk`ër1}ŽÀüOã£"C‡™ã­Í1=Ú%k>˜–zxŸÏl"Ñ’ûÖÇÌ+ĹG«¦SG¿ §ºä‚烵ÃúµÕƒš²ßk—QO07fWnÒíàÔ•,ì ñ'îkK´¥P¥EâýyÅØ±ÆdC¡NT(sĸ“н¶R¯c ƃSpÚ%ÕÙG*$°âÕ;RwgÚ—ŸÃ¦Ù8E+µê*‘¹éhgwJ<ç`áÿ›~ˆ#¦½¼ÿÙ r¿Œ8Ëv{ÒŽŒÜ¦S¦=è4›a~±W‘é¬I¯ˆ®TW«¨d2 '8u’ÆÚËõúZÝÏ`´Ó'’Þ˜q¢À$öÉÀÁ¢Bœ9§ L?w âžGï ØÅÕµPMÔ«cuÎLšmžm‚SÓáÓ(óO_ûÚ>{’“BT‡9Þ˜ûÆì…3¾ÈéÊw§[9«0·5+ZÛ™ÆÐ¿ŸªÔZjD²#9)ÊÎïµ¢eÈy")³Ú* Þã I1ug24%ë†þAícÐÛÞÓz¼«ñ \‚cµ¥¦XÍ:Û™ØAñZÔ‡‚úXcóÑìù*d6g@ó3™—2Y#Åó|ÒØÍbœèØ,_ÐødžÜ®µ,hΤ±Å®¹¾`]Kàœ¬¿òä¬'ãlô  ¡R­)¨ÃË0 m´PrAKûêë4ÐQº²ªÂܘEÅ a¯T˜X6ÑçjJoÃÿ}‘Ên|i…𠑈kõû%¨BUIi”bä…—táM€ß|»`Ï’‚µJ©RmIMÃÀ`µžA"äeFá€x¯B1Ïsͬž{¨ùÛ–® á¹r\zq÷Ý ¦HÀøæ§&¬/_ ѰQûVÿ‡}_φ~¸cxÔ}U{Æ©ƒÐþwýÛ³–‡åK! ²攣0 Cp~ª1ÍÞ¬i…oàòáF?C$„†—ËÁbë²\´¿Mq‹mÛînIäø¨ ÝbÛ§½\“ÆìݕᔔÓçàûvêïN¼JáÃ$JÉí8mïß GE¹f™lŸQjÞDZ¸. ×12•çlÖ,”N§©Ðòxñ/²d€endstream endobj 694 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2868 >> stream xœ•–ytSUÇ_H‰(ûtÞTTÔG9²(kAÊN¡¥-m¡[Ú&M“¦Išý¥¿ì{Ò&´é’.éta«RQvaEÜP3Žç¦¼ŽÎ 0ÊœãÌ8çþyß;÷{¿¿Ï÷÷»,,nÆb±&­LLLî\&LËÛ•ñÇÙI™Ù%yiű'´ùÞ_UÃ!ž ñqOŽ^4ão½0.¶=<=S˜†a·`Qáâb(#1+{gÒ®œÜ¼øysçcØjl:¶›­ÅÖa±ÅØóØl)¶ {[Ž­ÀVb‰,=6‹Ã&1B°8ì(kõ°‰ÃªÙϲ»âfÇ9†‹8S9GSã9øÐÕÈÍ#Ϻ?3~Y¼EÆü8LÓ)ÃQ2ÌŠNÀëíBR/0¨I:nh:נΞLb•SguYÌp‘¼5”p‹‚>(’Áæ´Î7£¤WØ’}„Ñ7ýMC3ÈùÝ\È*™’ÿvÑúäÔ­€/‘^±ƒÉk4“Ñk5˜ü^W_O¨ðÃÁ-)ä˜ÙÙmD¢ÿˆ°©ìÁëÑù\4{ÆßéYý7ŽDb™ª#M ÕWVRr’ž<Ô¦Ê4¨OÌh”y¡šDw8(e¡$ çtp!GF¿ú —ºö÷+è‘€Ó³8*`‡Éa²!"º?ÁÙf43wG£9hÄÕ¥ôFë3æ¡ó7½Œ•éQ·#¯=iɶ”BQzaɶñ×n·9ˆÚ/ZÑ$£ÉÞd´òÌÎú} õ­MmÖ¸!PéSlWi³@…—T—×66×îej˺½–‰IïM4ýrW˜…ž<ÎŽ¾Š^àÂYÁ,{²s‡ºñ@õ™;]{*Šü„P/’@1.ñÈký-î¾ËëéÉiÏmbTwò‰¤šzGÙ®9ª„P$Îዳ[*¥ €%–â½ý&û>ðàÍ…v…4]±îí™_£…hlwŒ°á)ÊF]@iß²£Ú(ƽ’z¿¨HêÐ8ÕD¨ÔLJ\|Û2ôǶï h¾ZwŒð´šÀ¤¶lû]:=UñÀ1›ËL4\ïigð;U¡J¨,&·Ðô9‡Ó¬¯J¢¹gPÿ¥˜§ç0g£ú›-aVï5Tv‹MûŽëTÚµZŠÒêˆ×Ÿ§ã@øúí‘K½»¿?p‚ì}ïp`x`eCAºNž¥xAƒÚkí·?¾¬~5=IAOyîô|&\/}úm,Îì¡]ùc:æ®O‚ær yéÐè¡?'¼=®¯¯4å3i~â‘^¨z„ȉC6Åæ¢’¥žVQ)ÑZÕ.KÈ ȫড়Rã©0iÈlc¾ Úq«Ùz2ºw¸‘sg™¥Æ ð|`wÛœÑ9 ÆJzêÐÉG ×›•^o³Éè#Oq¾†ºXm>&Šr(£$`*#E&ƒœ`5ÙŒV49Ú–àÚcr~xÈÁÙ?äaôö°ÿËhnMûÒf ÜFßfGÏŽæH®KÞµRúB.¡‚¡ž‚¿Á)ýW²Îs %ˆg–ÿað(Ø³ß =L¿ I|%…ÂÌ´þáãݧê½DÇ™or½N'|ÍÙíy |‰ÓÖYªÍn¿‡çu;LnðCåUë ZJG•©¦F€¬¶©±¾=VóÁ`L*ZŽrìKLC{|)±¢Kí¼Ø!J$"=¡öç÷¬fÂ=ŠžDóè™4v~ýÅýûê›"¤t¥«Sº¢"MS°#'-;Š™%0 ¬µW Tãu¯¨8¯4#éŠþšvþÒq?Q„’¹~I©H¬Òdæ§žQ9Ö]XýdëÑ‘½€Ÿ ,P‘”l8‰o=ˆÊìc¡ïî°Ë¿~„­Ý ذ¸ˆÞ5šÌ>æFV½S¡Ï£ Bb­¾Ä ¬ OæÏAЪ(0è§ Ñ—ƒ†ù¶Ì' Vù\^Gl|µZwÿ4¾ü¶µí׌/ö”×ÞÑÁ0:aEÑt—=8/ÚÇ…Tá›Ûr’w%U¬a\Ë9…\š$ïç“Ë¢¹$;´‰k¡\ò J¥¯$JÞÚ.*YøVá2&Doòtå:”á[º²ß½óÐxV[g íè÷%•ßBBœ9Œ¦`yP_Ä/ûÅuÍ áæ1pškö˜àÇR÷¬™šøðP·Ñì·Íçúû^ã‘åÈ(f‘³‡F–¯Ú²|ð¤Pn1[ü–FpÞç¼ °8'³³øèq4¬ Å7Çú¬7bMµç†ÿ>¿ÑÀOäj%zB¾µh)3µ‹´µ^£Ç"K3¢>™Ødï¬mkóxŽôu/x(‡r½’™fðpjíktl^³15)‰X“T\!Õ|}*áåøÿKy›£Õg! ¤íY1$ñ@:ƒ’’d ÃßîÝþ~wCKÐKÔuVcÞQŒ¹ó§1׌ïcõ]`#'s)e—«(-J'¡*Ê׈ӲhBuA³Ûì%}4‚ÄLu¥þ]ã†4z)H™Ïûs÷„ÚjÝD âÿ€yð1n®{£ˆÐÊFômØF•á Qه“OŒ‹B«¸ÖÓnBwÅaKE•Ì[îvX™eënníq÷á&g2DÍ¥¡‚HJõf ÇÂÓôä]ôoéÙCƒ •J›Ž‰‚Ã<0ÍFÛYL¨Yw8ûƒ“=ýí{ûŽà l\EJɶŒœ9É’m€/Ø:pÞgòYüä1¤kAã>GãÑ0àµA³¼ªÈUn)1H)©¾L™U–™Ë×hÔ:µ®ÄQl-‚ Ø ê|œªÔÁß{ÂVWáUºv>ñ·È"(ž …úB _ˆ2¸r½Ì gÈ1irt@=C‹Ûà2Äjòôt ›…V‡Ù(×Ì=%èMÝYÊ/äùu~?,—%%&zÊ``jªvhížO¯¢ÄÏ?ÞDl6Jà¶ñk sE»Â%­u M1Œ'.Äh‰è^y)ëƒè‹ìhî`.—)—êJ=AÓ?¼®•(žÜ¥ôVY<. è{¯3-ÅfÞQMt‘ËíF…5œðÈ £ˆ‘qëøñ#L&£ÉcÜmµyMññöO šÄendstream endobj 695 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 195 >> stream xœcd`ab`ddôñ ÊÏMÌ3Ó JM/ÍI, Jtwÿèý©ËÚÍÃÜÍòþ»¦Ð)ÁãüG@€ÑAˆ‰‘‘%ðû¾ÿLÉR Ý›~ÌßtºœñûÒ‡Ì?zÅ6%°«tÏX#ÿcûÊöî\9OoÕîônŽö¥Ýg»/çøÓËžÕ]§"—Âv¨ÿf÷a ¼Ù}¨ƒ¯lÁçYßó§N^À¶‰ë·KH>çêžÞž¾žÞI=½“óð00¾Eãendstream endobj 696 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 629 >> stream xœ}Ð_Hð»mÆiÃþ€¹Ü "ô-z¨ |–„Z¡8Mgm1:çÎiê6·ûÝv×¹¹ÝMóL%ÿ¤X&l=™ØCÚS/=T½Ýl½ôÐ÷õ _¾|PD§AP=UYUeéj+ï²Øï6_,©n±vÛ-ÎÃÆjc¦8S‘z-èu‹ÍÉ'ÞÛ<ŽFÛvφ åHRù{ Ñ!¯Ð2M¡<Ÿ y¿Œ JJ¡„*ž]m¦X>[$×ë%n?NÔ6™ësóÂ$;LüÓçr¤±ÕK¥—jšñ]ù E‡c„d9@ªº!ƒ‡ì'¡ #À‹l(ÀaB#„Z´Ÿ6ŒàÀœ“C|l‚~”À#ltž¦>ØYf‚yLóÌÄ“Õù—©À6¡¶×l9ã®7ù=>¸0Û¬›ZL®¯Ù¤[•æÛÍõxmƒ½£ÕûC)2üÁþǺëK@rŽ ŽüßšM¬È¥¬´xG€>ö†±òtËë½ùÜ(žï”k±±1¹]8"å-Åót7ú\1L…©?£Fi½A~É.5êendstream endobj 697 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1285 >> stream xœ”klU†g»Ûa ÍZ%w´™A@(rkQ.1~Pµ‚ˆ˜ÄZ¹´¥í¶Û½´ÝíìÎÎ73»;³»Ýn×–RZ·Kùaˆ\ $\B…BP‚C!&ˆ¤Ä‰g–³§Ð?£žŸçä¼çýÞïùŽ0僡`mÙ†ÊÝ[÷,š½ªv뮊í£{4ا3s!ßù¦#…¹÷^~qè…³Ä袖•._±¦lÝ&‚˜J¼NL#ŠˆYÄ¢˜XHäé’„‰,†Ç9§'M1Óo¹N”2?1f–ÊLOPñOÆLZ[e¹€8Q–Té_iñû Ùì^úÑ¥õÝkÆ»ñ^\…x Ê›‚ŠÐ8døþþy¶÷Dô+Qñð´z %ÀlÆKpaÙ[@Í™uM»x #‚½rwää š?µÚ_ <ëŽC8„®£[™qœ€”ögÊ©¿mÌ j¥4­äf|“ll‚W$õ€“ƒ€ßÅâW²ýž ÎóÐuÍO;Xô‰>@[Ð6dcõ[`C5ž±vîÆ·ç½_6“º5ðHb d9Ží”5’V (4ŽùqžÈšŸäÜØ­»@gS¨W7R…K» |.ØZ˜u˜Ý±/Ð¥&ÿMê*걎×GµÛ+øÙ'ø€§\íJH¡Ž sUÈqQÒ#M¸s~›©_ZãX T ©ç92jƒF“Hd:\µ¤>ÐÀ7°àÓU|”£ ”¤¨$%¦ -ÛsÛÝàd²ÎÑDìÎ(töGkÀhe1í}>M »AÕä=Tn•‚²ªwÉœ¹fK!GJcǺ~%,aŸÚâáy˜Í|[ä­@y]cQòëÀA>7 \m‘×Q¾bnÝz ¦” ¡I¢¢Ûü[cÿN ‘ç âã#CWØpc׎8( +A¥uFÔ/Ã5ž{Š)JkÎ\£:-q—ègvŠNÙ™Æo _¬hšÙÓ}ýì B«bL„$ö«öð­Ìv²Êå@qNhpwÀ&ÅpØ~žã¬A¼­Ù<|Ìz]VûÑ‹@wÇ 3ä45Ö;‹'ïʹœë? ô†¹Hè˜$ªìòôð! ÂíÐÙÞ»j #î–ÛÙ£h&*FfT€Óá&€†šZ½@5»û¨Bÿ€ iv||¨`:uLg džEÿJ,O¡ÀdpÐTµìUërm?R¥²åŸÆgbVjÙæØUÊÓÜØ;½iúØ›ã£ÏÞ‰»E»M´Çà0¨:À2zYÛoÉëÙ’]ô~t”X8ªhH߯Lö´ç“VnÐΦgÅ'öKb‚=GÃÁç‹W%URXDk‡£GCê·@w¶=«lÁƒÑiFŸÍùYï3?h+-hѤßñ¼†Ý¸` ÍEå¨U¡f~Ú‚ßïá}xó¼ÅChò™²\CFfðׇçt,ïßZ‰_•.ô`˼©‡6]MåÂÞf™‡R¦ jdPú˜7¸Û™ ‡P NËëÆç³.ëJ-ÁM|#Ò Ý¥~ÑóéÇ<”³ó¡Uöèu’\qˆ½52{+›‘ëëº B:ªHÓ­'n (}òŒfÛ>mYÕFÕ}dÏøË˜ñ¦•ùy=’(IbH $cùùñ‹ÿqendstream endobj 698 0 obj << /Filter /FlateDecode /Length 202 >> stream xœ]1 E{NÁ 4Sdhb“BÇQ/@`q(BŒ…·ww1Ÿ™»Ÿý[ ãqŒa•Õ%/ö«ô!º Ïå•-È ! µ“.ØõK|ÚÙ$Q '“îï À>›ªë¡U|¥J“]<“±M|€èëZ÷ÞkÑý=JÃä¿•{¬$ù&¨4Ëw¾%ì4 QÍBÜZÍBÜ!6hÓ+Gˆ6M±êx’íOŠâmi¤}å qåpFŠ"üÖ”–D]%>­ãi endstream endobj 699 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1760 >> stream xœ]T{PTç¿—…»W‚´Á¹ì¢É ™Ø™hEA›l“èŒ&QKbÚ‰¶»á!eX—åýv÷ž»»¼•W„Lâ$ÑhZM¥ÅÑÚ4Eícâ &Õ>¬µÕ6Œçîž‹ôã!jþûÎùÎw~¿ïœó;<Âñ<¿hã+¯X;^*vdîÚ“·kù3ßÙ’™]h³Ø§n Ha¹¿ ƒD„’Ä QjÌü÷·ðâ·¹hž_°héJókÛr‹kýûŸ8saôÆîÂ;-–+#gw¾ÍRb·dä¼m±Yù{æ.[f–Ú“=g˜ïöœìÓWY¶¼<ûý¸icîêAàÔ³9$Gf±c†ùgOÎL;óÏŽüO>?ÄjÖ= ì°Ú-ogÎxçŽ;s2æÎVÇqÑo:¢¢_¸xSA¡sù Ï<ŸòìŽwñnÞÃË<ð ïå}¼Ÿo䛸f¾…oåÛøv~/¿ïàbXù¹PNæ>çÍüùõ!¶FQºßëÆC“BëCo„½ÖvCHzñýÈɰN º¯I¡ÿ=Á³–ÜûÂ`2žX¼Žô; OP:ˆÚmAmRÿÙÜâõAc4îiÓ² bÕO\¯hõüºîZéå”ÛþÁq@ ùøA˜DVÁ²ì®—ÝP ÕêàÄŽX­Sûº¦ êâª[¡Ç(…þLˆœ 5ù9)0ßɶÕJ¥€d„?뻡§¨JJRPõÚV)l+™h°³l W©5Rð©°¼Mï™"'C¾Šç¤»cNiÞ‹xÌÓ6Iwÿh¿Çëñe^?²9JÆv3^ÕØwoc*ž¼ŒKFGóùÀ >±mTTx ¼ÜH×éôm;h© ÅÿMKÀfêu|dý8{o•:@ìh†6†«[x“ÆœÒcÇnõ-]À#—€å«o~Å4ŒÙ„&Zˆg¶bT3¨k?SÃ1 ¯žÆè/1ü¯Èy}^/ø§°ËË=àñ6¾ú…™äïÒñítr7%×Q ÐjÐÂkQ¸’nþ–ݤøÿ<ÑZ§ÈÝ vΰy¤ ê¦1z@¢b¨ñËÕjÆ¡¢þÌ­‡ªöz ĪZ¨qù]^éÃì‘õ#Äa2µÿ‰.fê˦۔J'Ÿ¥%))‹Çíqƒ[¬i…½^èì4âu<=®n5Ud¸ë^g¸¿–æ%±*ø†uêÌ4 Só¤KwûôߌyoX‡_MÅ0ª,à"u¥ë¿QMuû-:$72þáo©Q´o¾ˆË–a|Ò×µ-²R bEÝÔ¼nÓ¿H¼B1gÈ„ éÌA3ƒ¶öGZ8%ÑÕÍý= _Aœìq»¦~Ñ^ðzY©??{ CÐŒòu<þ ž<€É-˜¸Zœ™É{åÃÁø£|°l¢ŽÉÂþüúWWí*kxy7-eªxNÀÛê Í­Lþ8ðËJ}+]R·Äª  €¥{.ÐkL ÉX6qAÈ—e›Iå5™PÛPW#{À5£€À!2X.’’^,⃽†öºÖªrWe¥Ë¨µIw)7PËæ~uWù¹+X:ñ‹÷A–qê§’p¶±™–fèΨG5¨#´£èK¡¤·zº3aptZgÁ³½†Þ(5Ò)!×åþ©IûôA¤úsÒw÷@¯)20)žfä°¦ØP§S¯Hņ#zP‘x Úî¬C;é°’ÒÐZÞãjd#¥ÈJˆå¬?®}%&¼£•^Òn)©bEô‡…ýÐJ»8|Õ#É?¢—ÛëÁ bºPXOÊT[@^ÓëZÅQòè7{jÁ0ÕÈήéFú}‰wpÆb÷ž:¬r¾ƒû1°F|˜?c±w LneeÓrs¹)šiÅRw ÊÒ8·ÍI@5b†^©n‚ý  }MÐaò6_U/ãÿÔŠæVð3ÓŸÍͰ lEúÙ0üEµ.U%ÄŽz(4¦ N¶÷äj–4Dž‚Ï‘uT‰idí,ñ7°}%+rˆ]³û¥ø:'³ÊÄ`„.`µúeÅn,(—ĵ´h©¨™õŠüŽñwÂ;Š2hRÍzíÃà˵¯MQ GœÉ2BU¤À<ƒºF8ÿMü 9PB'ƆVÀp‘ùe%߸ajV LZšV—Pm¤„êZY†(QäöÚÁ¢óoœH<’Ö»Vˆ,èaø¬{!Îû”'& Ð#+.Ÿ­ÿû'ßúGÆ—EášÈX>‚ÄHSÒEÚŒ¹¤»„Eé7EÖ´©O6ª¦6Ÿ" ?ÿ˜1<4=/b^_—·YiRü¾æŽÃ÷ÚÏendstream endobj 700 0 obj << /Filter /FlateDecode /Length 170 >> stream xœ]=à …wNÁ HÜ¿%bI— ­ª¶ ÆD DÈÐÛ7¦ª:‹¶;wÎ&.nÑãƒ7ÖéH“Ÿ#ïi°ŽÕÀµÅôéJÅQ&Ú‹ ÏW ¾ȬýU$î§ã¡Œê5„^ÓRTn ÖT•lŒ‘Œœþ[ÁèÍ3  ÉšÉ"µ/ñ͘/e¦ ã#¹TÀ X汎¾¿rŠ/boªãVÉendstream endobj 701 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 224 >> stream xœcd`ab`dd÷ñõM,É®ÌMÊÏ)¶Ð JM/ÍI,IItwÿœüÓ‹µ›‡¹›‡eÝ÷H¡‚·ù¯ €ä¸sKJ2“SKò ˜ì–1¶3032²èd}_Ã÷ŸÙ*á{ùNÆŸ%ßûD•v×Êý¹ÌV[Ú]R²°{¦üËl3v/’‡¨[PöSf'ã©Ì@ûŒ!ªÿ Tßýç[mwé¢EÝ gÊýøñ}7;DwãÔÍ~ -ß´m'×Nn9.æp}Îå}½&÷Lìï™Ð3‡‡ÞÆ[çendstream endobj 702 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 259 >> stream xœøÿLMRoman8-Bold‹„øáø[‹ ‹ °÷eÇÄÁaB÷¬ÿS€„µh¿÷F²÷$µ©÷÷s÷\øá¥¥{‹}M‹•¢÷gåCÐû7Zû#‹(_­s¬³§¨±«vž‹“¨²‹Û®_Cnû*ŠûWj‹û€6ëi÷ò¶ÂŸ˜@m–eìÀžš‹¥ûj÷¬%û ‹‡W\ª»Ñè¶÷Ž}™øP–÷_•™¿ ÷  To ²ŽŒŽ““Œ˜É› &gxendstream endobj 703 0 obj << /Filter /FlateDecode /Length 6058 >> stream xœí\KGrÞ“sØ`-}1\m¨Ëù~HÐ’Vò®!b½âxmƒÜC“C[šfKÝMRÔïÝâˆÈ̪̬¬žöX†ƒÖTgeEFÆã‹GÖ ÖóÃñÿçÛ ¶¸¾øñ‚ÓÝEüïùvñÅåÅ?kÜé=ó|qùò"<ÂŽ/¬¶½—zq¹½è¸Y^~ƒ)Kß3®àË«‹'ÝŸþôõr%¥è½ÓÝË%ë™––3ßíöx_öÞwßîžÑ\Yá»7t­½r®;LJ½Éž¾9nÞ.µ‚§­íÖûÍúø"LÇ´í>M±¾yØ–½üW UÓºJÄ®¤î1H2I«²ÅHÝ+­™ «ê~ C„± `‡e4ÄöÜyf+Þ 撚<ôùlª·R0¹ÈF>é>]®¸1°"×}‚—.M¸Ìî†ËOãzJ"…ê…â5‘–—Dz&dIäëDdµä0"yFVâÌÒ¥_¿^®€ŠÞkÙ=Ž—ªƒíÁ=ñ’iÜÖÍ–vlئ¸=¶`“å½TÊÇõ<íâËmÉJ¡„·qÌe“Ý®·ÂÊ(’À»æ4NY€¸†/‰4e@¼š”ÔÁy¢lÙb‹ëÆ<é@/|w• rd‚ãθî7Ù¹ ƒ®âòËÖ”¨h ’üUKÆM¯¬o®! wñÚ¤V%gK­ú_àlmï¼Âfn`”Þ«‰)ç¢Z ÏÎÈã dÕ|/½â÷1߸c,SW’b5 ´ j)©°½å~xU¿\Y‰êí»?ä-éh ¼©£ÒöNZÒ¸ÂæHŸìïgMs ¼»¿ž Ó~ž™Ds=8ƒy!àÎNO ƒ2S…÷µé­Ï3s€-ýhU¹ûl ô_p¾PwkÚ­•dª7°µÁî9— ”r¶i}\TTð”SÝ¡À%ǦS œ\ø“¼ñ½0E½QºÚK;i‚™Õf"Δ£tý¼¬ä¸ò™À"-7–»ùÌ8ò¾ˆs0!ªö’+W50qD>²‰0=H¸eòVópWüD»/9á'¼fLMÄS*´²  heš*ß!.€eÒ.@»|r´A_]^ü—iׇ 0õnñ²¹`Њ.Œ·ïn/$›œîÜ\<ž ÛÊHaÌÙ[š“÷‚yŠÝÚ`ÆôB pd–Ð-RûwMq­KbÚýý,2»2Dyë‹‘â–MÛ xÂ™é–  “ um ëó(â×mùbF±ýŸ¼$(9Àþ’3õÛ”Rc„¼9$sd»ÜgîfhIQa: ŸÒÎîúã6VÒÀ kJ¨x‡=îw 7@8 Ñw2!;ÖôàñìàAˆÌò"”d ^->HâN ¦6 —¹Œ…uå+œA¯V¬Ð½Vøë&ñ®— Ã1G¼Q&lQSñðiçƒ@tV  Ê+€¤ˆÏ6 ù¡. }²E$£dD·ŽŠ!­îvÁæùd­E™n®èÒ#nœeµ‹4R朮õ"`·ÈÆ}ú¹V–è§'öqPFUã¾ÏÑ jòZÝ!ç^`f–ß¡ÏÄZX÷gÄ3!ü{’²¡˜¤ûû‘¸2=‡Ÿ´Ó˜ G=Ò}³û!##·n9yë¿åï¿÷‹!üQ’ç/ŽZvæ‚<Š,æå kÙÌ÷RPÒT”<¢P‡vê*´;†ƒ3D`ÆED&Jtp;i}wˆãì Ÿ‰ûÍû—(†Þb»uxˆq‘üGp&7»C4º–ðS³¼¾ÅE/ðÕMe83oDäHŒÝ£Qzé¡Ý>“îSIHÀH†¸œÇ=O&æDAÏ€¥­<À0°éD 4ãíå+žÆÌ—¯Æäëlù }"+²Ô œ!oKßeq}JßÁú™t~Øá_Šr@ëøŸ)0á0ái;Ã8ê‚x_ªñÀºœàþx?ÿã:ì‹·?×Ñ Ds,°ÑPѽ Ê"ET9†þäæ& öÅàˆÇ1™Ã‡*LÊF¾ ʦÆ×[ed·¹~Bàöq’²ÂR¹M^osSy3`xß•|ý:ºH#jW&ÛQê.½à@wà$ UÖsz^áhòµ°Ž€ð?™ ÌôšYÂ’°Õí¥(E üéw8ÐõŠ#F¾üì?6‚^’<²çµ‡â”ð«{²\‘˹2졵IÇæJçÓúþ€ «Ä&„ÍØ‘l×^²Dèý9JÊ`„)YBÂ<‰)Æ”U \« U0€ôU1hZ¢Ò©22†ü“r È:§j¶ÜÆ]Nýïš3bµMsSÎ8k1ù|ÀX.'Ù<{} ûä ¿û ²îÈ¿ó+‹ ß¿°è{`¬8]X¼“pc¨r'á):gwÌàO펶®î¿¶[~„ŪO6’·ÈÇg¤í³ÖTåÑâ'ØOˆ8!_IÖ[ O2Üel1WÉØ¦³Zú‚i´N‚¢pŸ¤cÌݹ¤ðn®ÿ€IþA!r³Ùlþm6ᙓO³ÏaQÍW¯¨‹l>"ÇK—èÇÒÈ4뉂í¼Ãrªá°BF÷·O³PÇ9P‘áÎéRS;‰ˆCˆ*ºa):±ß)¥uj¿=¿Ã~ó:NŸì7Ú™;ì÷Ô…~Ø~SG í·3wÝï8r€æ¥ö{,ƒù?Wí(SŸXéNº/¥ùÝÿåtÿvY€¡”…¶‹@Lxé®x5•×oÇ«iä™xµÕ¾ô?ãz@ú<êÙ1u‚oÊÖÐæ¾™˜?ý?É7îj¶ÍPäð¤g®ð#ÊJ ^±eÁzÝ+1Üù?âêÀÛ•a½vÚ mÿ¥üÈmÇ4–ø0ÛA™üµÍ|;pÖKº%½òqœ wl wÂC”uY§Ø5µÅ~þp{¿.ó1]¢d·Ûa¼ÛLÒcBaÛ¨ÿbÚùxˆÏóFSJ‡Œ¨¢¦óvÏØ˜гaÝwó:>¦¦ýiôFUç>ׇt–¸çŒ}JZùåîíã‡c‹ÿØßbòfù²žKĨî‡ìöžÒòŒ Þ½ÝÌ&Äña/ã¶Ä¬Nž\ÛÇ1®L¬m>ÊÛZª.’×ôre}ìŽ[Iô÷`ËœÖúæz·ßÉÓí!f ¼.$%;ùQ'[GñÙìÓÉ!ë~ØmçJÇõ” 7z"È”©àŒ4ï£sñj,ü>þ÷Àá é¾Í‰(þø*öyøÃréL÷M³GD‹ÞÚ¡aâìþ ÉÈË\C[¢¶ ‚¹áç-þj(±Ó‰Øy'+%(6( pw˜äñɸÐ#˜K0q`æz&cãÛ¡âïÜÅu(g‹ªóêxNíG‚v‚ ç´­Ñv-϶ⷅ:oyx¨Kä±9€A¿*[ðØ„q¼ŠÄÑÅO Æì›‹ËzrçHt‚|¨i]A_ìM'¹#„‹zFUò6<ЍP%NcêößñzU»‘Ì¢š`FŽà`Æ€SÃJˆ,8x[f{)ä6‘[Y˜D’Ÿ´ˆ îAhSú Ûó-óżgZD<¬ªEÅTŠQV@ «~?Ü~VZ²§S/h œš2ô‚¢¬bcaÕr€*µl«[é$3ð–îÑ_¾ZÒ)M‘W0jF"·ñía»¾¹©Ô—~bx·]ÿ´Ù†f^YnÛ4HÖ-¾þxÚ].ú NíÁ%Þ§>Ó‹q½ŒLÒ#} {ÊGnŽizR68 ¯±UìÒa‰ø÷ë,†˜šÌûàò´}äGã“­‰daÆ€8›L™N†¬< qÜ€î ‘îü§:­,L¥òy˜*gÃÔ!ÛI ® ÈßQ¨Ê•=ÿž«'ït|Úz4–ˆahP Œ†xê€ £mŠg_Úñ(ôß°a<ÊÉ?>,âH¢½_m{a"4ùv‡Æ0oƒ2è÷Í#CgØ+<:î>÷ƒØ+˜ž{YÌË!Â9'äò˜%›(æÂó¶,H.\“2Ñ=`Ó Ã$01`øô,Îñ8ýÞ, PÎ&¼VQ%€Æ’UÊt ðƒ2eÒ|^‰uô,Å2ya%ŸO‚ ÜK)ËPo‚)MÞ^£4zQÅÜ¿¸@t¸ †žK¦1”T# bù‡¢@p¼)±eµLÈ?„Cd¾nÁNôÃ;6/ÓZÄ4kƒtX^êêìê÷Wå–Ǩ÷]zÕH‡v›°GŠ7‰zˆ¼Ë¤÷1ÒÀ/‚×ìÀÊkÂJ +µuJå1ñ|ø°Û§Å©iûú(+ï[ÐòtU)*ÂÜ®©Åx» cð$_!˜¿™¼w¢ƒCnf¿0¸ˤÍô\j>žmËŸG ³ˆ2…'†@v™þªÜþU\*ñÙ)ŒÃÍz’H¡)%Ÿ$[ÉžOd¾¶ˆ /˜k;Ö¹a|"ûšËxLk`Ò· ‹“8j>ÖE°'àÖ/IÞ»t¬üĉIΆ“³÷ië˜?1Yã;qb2œýŽÍ¾„䄸-íô[82dj·•Y›pO™«4\eªVúñÈy0UÅ'&ölàJõýág¨|h'µ@«h#ª(lH ¬¸ö½U¼‚='Ž*®Ç³CÅ e ÷-TRo¾pŽXHE”£€³)~Aàí»ÂYG 6%¼ÌIθ…ÑJÒ )¥±øžrNá5æSýøùßÅÃt7~CôŽQl¦p¨Ô¼û%}ia.™ü2¹}n>:+õÅTϱ=l\Íä¾ÂHk‹yÏ %•Äè´büÓåÇÀ"oCýE«Ïñ,c¤<dž˜ÀÊzð3¦¤åþ¹Í•„ˆÛ[YYKLr*f¸îÃ¥í%ƒŸŒè·w â'ü˜_>ï™YNnÀñbïí8e¬ûNDÓ™vÜ]æBé¤>*¡Ï‡ºéÍ›9WIó„£Ò“>’8Å$œÅ÷j;g§h:MeØä]ÞÄR^ßQɨ1±¥°M¥Y§E~4ssR˜Ô02˜$ݼBe›LÛ~„EGÔn©5a6|%¯Ž½‘^ˆ*"¹¥l|ìE ¼œæ?ðSy|BÛ@sîlc% ®¦¥@ç (´R³©¼¾÷ݳµæ«Ã`‚yÒÐ"ƒùSòå2Š©Qæ¢`kfÄÖú˜Ù<µ¹P¯ËOjǸ¦¤/qßêOAïä¦}¸…x Æ+€ˆò§ÏuèVvyìÑí [£Ì8ÙØ›U÷0Ö}º\É^ _Ûùr÷öÑÛOg ¼Â¯/¤n ðA ßš“1ç-©=ºSwÉy½¤Ï÷ÑG›1û„ŸLãáCôõ´ÛÒØÖá'‰Snæ“°ÒøÙ ä ½Ô:˜Ô¼,‘Á³ÌH–&«/Öû}eí0õ%h)%0œ°ì-5 BüWÀÝÍYí ”·ùB¦}A*Ê׿óžÛ¾Æ[ëŠç¤uÈ8^·}ŸnÚEž*J9à•óE/Z2šÕ̵*È—Ýâû8Ì\noêU®®îmö5‚ýæ”\x/ o)ÿ‹:. R*m7ĺ÷ Ã0\OChº°ùë%‡‘Ÿ?ÎD÷rõ Æ—D ¥ugøp“Å™ÒätÎlážµò)Jx“GƒåØõÍ`ÖÞEnúFä€÷µìþ2¨Ù:m`Žßï7Õ.͹ºaµ¾øoàP7lendstream endobj 704 0 obj << /Filter /FlateDecode /Length 4749 >> stream xœÕ\Ks$¹q¾ó/؇¾©¨Kx?t“7´;äXiHKŽ˜Õ¡‡ä½ÛÍžínr´þõþ¯ÐÕœ’‡uÌdVÈLä@ÎO 6ò£éçõæŒ-îÎ~:ãºH?®7‹»:ûý;g=ó|qõñ,á Áý(™\XmG/õâjsö~øÛ¹£wRËõíù™vÜ7<œ 72ÃípX=œ_H 4#‡«s'GƤ¶ç„Á•nÎiœ´œùa»Û†‘ŒËáéwi ÷Ã_Tz94Ëš¿v„/¯†oWëÿ­?m¶ûõWÿ ^ªy•LŒÆ[ð{us6p{~õÃÙ…âr´Â..¤1áÓ÷}úÓÕÙ_Ï¢`õbwZ í"Y œ‹Qs³°B@Rž:ÆL5óWO)Õ(¥ª§|?|~~¡˜Æ6éaùd­œ€Lon°™fø€ÝÀoÚ)ìmöØ)=|¦ÍÃ:šc?îÒ<Þ «zÏÁ.÷K +¤Ýv—cL‡ûvx€cðeþïwïþÖV‚[?üñÏ èÚÝv·j&Ùd¡BÕ²´É¯Û%E»dm+ÒwA9ÃcEçæ÷ ’¡­tv‡óФ¯¦E›5óš¨ hÔfàÞ‹Wh"4l4Jôš8ž_<öš6×)†Õ9‡4¹6Ãfut!-4ã.`|ZyAV÷~X/w럣 J{`ä+lV¨¨×·Dzzøöœs>ü±V««‹KúÌ¡W§) Æè_Jp®€B[KãëÝ_VOç&¶[-™å†õ6¨&TÃuc)‡Õö!ÑÖ“iÆÉn2~ØwƒŽ]^ 6¹Ï¤[Øó4Yd–ï-à^22“›ˆí  ð›mt޹Æ1¯¢4âª?'·gº [6ʹÅÕŸÏ®~û>«=P4¨¾"S’÷XÊÂGã×ë¥õLÕÂõQ²Ð ¦Ôpئ¹˜ß|jœ ­Ç¸àÃS 'eä‘û `H§Ö“‹mœJx±Ír½:`®áç„)7;=jw&î.ÑMÁ’9€=NŠ¿Ï €äfpÍóc%ø¸¢Æ;¬j¹Ëd‰yö°Í1&+Þêíæ<ÇáÑgóHÅhŒƒkM»wìà ]¤ ¤§BD³ïžì÷Ëä+´§Íö•NÔ*}±_6ûÝæ{šÁ…8ÕJõ§šïU/ñ8Hº Wô;m1i.F$25¿«fìSŒ—R7x¤:'#ä~neŠŽŒ£ñ‰Ìã·»ûLo„Ðβü±I£‚þ3ˆíóC­bPÊQÊC(žø€¼>“3Løºåx"à ­­5;S|Ξ`ù¡ÚÅU°"Z ÒJ®\¨aLé˜0yHÔ‚¢ 飰2¤^A8ï>üp{® 4Ã5ˆ—š‘ÛR{à øÛ5`ô—ÃÇึ…&Ó/[¼ýð¸?¤\“øð×qj0™ýs˜—üóMžÖSŽsÚà‘wù ôyO¾" Ë0 åQ4W]ØR4©uq£0çðC‹1ÙJcEàE:mtà)};©ƒëˆ?E¹¸ +ÐÀÌQH%ûfJ(—ØòMØ(¼O‰ó%%=ç”á1¯"ÊûAå•HäJ¤€K[S°bä¹…”{³V*šu+¶8¸o,"Ö¢•Jžz³zÆ¥´OŽôÐûàÀ/>8âß&i[ªu& ÿ—=Q¾ë€mš¼±.¨rJ;ðù¹´£qÃÈžô¨LÌ¢tÊ¡’$••fVÖwA‰€:*¤`¡„K$AjÚ9ÁY˜D$“ Ü©ÎÅóØîöé;ïò¬õ:UHÜ>ï9~&¨…ÄRu®(¥Ý ÊÓ|7i*%Û° +«èÞǃ;a4¼Ân¹‹ú?Ü—íÿybânõTö§ÛË8;JUo“jÌÇá1 XÈw[)ÚT5N†Ë…ön”6Õž¯I÷=ÌÕÓ½?Nh#çHSƒj†ÂÊ¥ŸòFRÎO•Γڹo´(/Hßܤ8ÎéØß®îg"g˜ëõÂäÆ*üqut2ÈR½¦ˆGé¤0O5ÝX¦ûý;nøân9fãÎÃÀíB)L„ý”ŽSP_ìn_<`Jú†„q~´•žÂwµð¨›­ß"ÐÏ>þ¶ iƒI¥ËHj0“@µ¡õ j¹Y|Žr[¼û÷£ñ›3iPa+ ²žô£Ög÷g—Tá‚9èÕ>ÑW~f¿¤7 ;æ|-`Éì¨ÑÀFIÂßlŸŠŒg¤¦9òL„9JÒVjÊ[C?Á5™ÁXƒ_@©›¡TXP¨4Ì•òè ûûíçïQJ/þ°xÚ¢8Õ~„½@-U ŸÖÛCýù7ñ¸Ù ¯NÐËø1ü›Sü¢úƒÎüjÏGÇt¯%ÚŠ¶^øÍ€7àWCK5TŽø½¾}@‚EìÜ^#nôü^oŸð !e·ú'1û0n?ìyxÜÜîV×úüy³<,Ç»%9 ›åý4!ý}{¸ßÞt}¿Ü-¯)¡K²© zËHɾ8Óð^Á&.'ùqŠ‘° Á#%7ðŠB­µ$È(ÀŒ%¹ƒØlÁjí¬ÇÚ u„mÃedÈzÒŠÆT ˆ$cCÖדblfË8LÑQ0ØlLÿu}slO•|4¼÷Dˆ§Cæßr.¸AV'"çrT¢@^¡aÑA€\Á¨²¨¨MÖñEÒ9Ja® éHTÔú=cÙ®«(Ï· Ü<ÚÆrýé~Y){° ìâ§ÇåCkPš4Z¿[~{ëÊàΪÖ Á>ÏÌøðI4À›DÅaÈÈD Oød•ô”Öuv…²š Ç­,” …G6 Oc¡R•ð•°P£À[Ë‚ÕÚU÷eaÚRÈzÒJA*C9’@gËŠobX´Ï 4p؆YSßÅÊõ8TM"2#ç…”.Ve,Ç8I˜—nœ¯ñ݈¦ % „Q)ª¾]¬J|E¬‰!M·°ÍÉ[Ë~Ïicà/ Ûðl+ä5–Nl¯¢IÍXåõnuh­²µ sÊ^¬áZQd-ReÛÛ†…¼áY¨ôj'.4ù7Sö=!I2/П:Ëè(°C<ÂÈzÒJ–‘¡ în2- C¿Ö0°u*Fï|ñá·³v1‰Ç#ÆBTL¨ZÎ…“–‚|àœÎL äU9 $† B„Cæ†Ü*æP×§oG~TR‚ MçqyÅ·ÑäÐKurßl»ízfÿ'!ÁS뉘vÿ3–DÎaudnCÈk < ‚B}ÅuLûwéîïöûŽ›šS§Oªt!V‹ &–èÕ›ÿ´ éì­°ôú÷ÂRuøvØ-¯oAùz{·º^®ûØxØ®/·ë§Û¦¤‰ŒM[ÄFÊ·Y8Q¹Ží£žô¨VÀ¬ôpuˆ•¥/¬&¤ÌÖäýÌX¹ÏX­Ò÷X›3å!¯Vj÷cH?**}¦ú>¯ø&J {¤#]ÿ ]HÅ¢±ÕIHpÆOÄ4¥ÌDr.uù ¯¯u%v9ÛÔºÉSþ×óPí/”•n`ï¨Ö©Àð1õ«µ^ªp9µy/èÄhÂ’y$ªÁùSÔ â nÍÈzÒJÚ¡é,¯9F-§—/Ôza#¤ E·¹J|ºÑ„I@z!pŸFö(Pâ1jPn$òMІ^L¡v¡7±¾"·ªiŸ¥]‚X>m[¨ð˜í·Ô º¢=CÞ‚vOÎF~é õÄ)é/=_}yå0m3*‡p›ŽH=~˜˜B's¤«ÓÌ IëÆ´º„.á>`Òš^ÄUÒ±iІ¼h`,Û;ŠÍÑñÖº:IÍ0ÂB B¥¹œÒ%JU„*Ž8×͉æW æ,… ·yÓqW†T„õ0ÂÒe4§':ĸ@T£d°@Hb/XŸ*W¿Lb’öÕd6D´t½h\ +T‹árPSíµ©¯ ¤±Ét) é¨f(ö¤HÈǧñIœ¢k¶HñÛÌo•‘!2 hÄ 2–fšO!¥ê)‡ãj—ä–âTЕjµÒá"j””§;Q¯ž$ª• g?€Â.NÑ›Ý` w uÔ¼®.3$Uº×é?#­%€”$èpìæG_CÂYÐ Æ«ïdúR»òóPÊ›3n8½B+—N›  m »ƒË[Tä-R Žà,Ô"5R›°RZ¼Ä&â´Î…Óz8Œ\ƒ>tŠýs!¤|µ)šèöÿ‚5ÉY¸"ÉÇÌ›©‰îa¿*ÖŽ —üV¦å=Œ°txܧ DbÒz=ˆ@LÏLŠG/Øä½%‡.:Pv0²–Þ&Uñ.ß5òEŸ3sé½ô,‰Ó¦@eè`¿*eP±… é.å K¥·]A\¤p”éd¬¶ê±6gš‹øŽ)AÖ3~T”xÒÁ‹+ ¾IšÍ-C[\*).goÆ*ùØpë™)¡bXùžu:LÓ6²N äe„‚™:$´p*P2]Ó;Õ@ õшË<¶”9¥Ú2øx»òk„ÚÚ¦Œ¾ûHè(Ùw°jK=)ö”óD£{Á°¨tG—8Ôiµ¤û‰N1–Ã\t]–°zÅl±&ÅÌõ ¤ÕÑE×tq˜V|#Íá–îC)*µùåÍL}[ ¨¢¢ÓÊL«Ñtý2ie†¼J+‘»` º4pVV´VJY>ÑËB®hàœ´=ÒÉ~§=æUH19u»¸êÍÌWki|ÒCà7/ªºí zzzàsÁ¡¸:¨b¼ n×Þ N:Я*|œb^YœZÞíMÔD÷°_kñ ´‹O ¿êYµ¢gÕ —NïrÿúÌÃpz?ŽªbP Ö 5z'†ïRkœd.5ä̾ÜÏÒÔY$Uè)Ý8Ú<ÛûÜ[N ìl×dU“Ú˜RÓû[M OŠã—ù´ õf|±Õ4RÙ¶å”~§iÎØÎua臋 EÓé~—Þø÷MOô›º/›>±=Ý<4Í<©Ù—w}£¡#¶$!‰¬öµ£1V,bKRºNžiǢˠEjJj› vO¥5²oDÊ}ÇË}¢ŸéaI¿šÐÌ9Ó~Zù2·JÏ6¡ÐhÏgúŽC»ñiýÙ­žR’öß¡4…Õ×ëé£5Ù ªÚu#}:nHý)û™¶(­»¢"gUÓî² ´º^?›¾— N.E\Û8’ $jOo ŠSN%çzŸR÷q4€'Žš‘#ÜûÈcŽì#®ÃOHü®B;Yi-:ĦOá¬æC2`j\nºÔ¨oÞǾùÿ8LëœÔˆ­>ÔšqÔPG¹ãî*‚ÓN6¶Ýl&& õö¦ ÿ”A÷äE™ÏlB{l;ónê Íþ±=²UÃ}nî‚?Üžìï5OñÐÜ·l¶®Y¼ë@GïíÀÓ¦ùö‹ú é?%P±¥»ïHO¾ä)u´ÏïH Ø¿°±´¬R£›:v$-~ÜKžªá®›÷”» vJc¨}üË-—ÝñR˜äÃzõ㬋óçtƒl˜Iþ> stream xœµ\ß7r7ý÷r°o×x;M6É&ȃãØ@‚Œ³¹+-i¥mkfGžIÖýõWU$»Y$»wWN ḭ́ù£X¬úê«bÿzÕµâªÃáÿW‡gÝÕÛg¿>ôíUøïÕáê?nžýÛFÁ7­ëœ¸ºyóÌ?"®¬¸ôк^_Ýž5Âîn~ÆÖ°Æ½k;¡à›×Ï~n~øáûÝußËÖYݼÙum§ûAt®9žðû¾u®ùñø’~j®ù@k§¬mΗåáç’§÷—éãN+xzšñ4—[ß]§‡æ›û¤‹qÿù‡hŽo¶g2`.tÞ|{üX›L·7JÄÜ¥·ƒÁ¦ô®9431ÍtŸ´{ŸünÝ%<í¯ølgRùáâðƒÖØ 4a3?$в¿„E ÉOãõpaŸN³¬úf ;×7ŸvÒ—Úòá÷û8_l½–jì%èì““^F—»DP(Ú´šÓ-|ïz£-lí í¡ï†«3NõÁÂßvIT:ÕЩn^ù)ºç{<¼OZ1Y—é˜nÊùÏ»keQëmì{¹Ÿ°nöÇÝ5‰ÂÆa¼$ò¾¾†GŒ€®D¥+œ¦äÏIÀBꎮ¦S›vÇÚÆ>Œnãå4ý¦×é†=ô:ˆM©úr4Ó«é|© i¤1rà»~Æ3'h¯ðÜÕU³vºH%à«›¿À)¿;~¢#þ§Ò’ ­’b>áQ_ý~²•„Í@±Ábåà@—¦ï'>sÖÕ=ÉÜÀIE “ v/Ó'§ì¤ùþUŸ÷Yè*µƒCƒº*-¬K™bð{n¦‡U»PèjèŽD¾ç4¼)÷|skä ÛÁéGš`Õš®/6(”ÚÁQO6ˆ ð’.ôÄI&¥7Ck¥ÈL ,ûº—(]ÜKìûÖÍ/Ü(,ÛÍÌšG)é|’I¡Ž$o³ÏußhuÛë!Èê'/«_aºvì,ªO©p¦W;œ´c‡Sä5Òd‚¥?i™Alä$š xÒ®ù”¬:W¿Uq_ã¡«ùo²qâ ›*¹« TGþê›s¯F¿ç×f¤0CØ?ü0Û·Åòœü¢ÑÙì䔧ËMG?+>è Œ ;BÚ¤WÜ“ë=¼!—¤µ5v0‹nÃ?r‹ô ÷~1à²ß¡?t4pÞçòÀ™FøyÁ'®z–q"`Iž¾ç°œî)®H“™Dˆ#{DIØ7lÁÐ|µ|{¿b4h68Kp¼+³|MËÀ’\¶QéY竺'1°Â—기•é°ûÏa\„J[~‹V®œ×C?Q&Ài•bödꆪsó¯?Ï‹”齸VG–½‹ˆ¾ß«·)hµèÝ7Áh@oý—ÝÐ3qwõ:<Ùx÷\ Ó|Æ/ƒïG4¦´^G‹'ˆ ¢ÝÈeL]+Áw X¸~‹F–ø·5ÿÒ¤!ûáãŒrø¼Â"Ćú} µ,šÜ5.¿ðÇ ì›§0„¢ýϪI,óªödVeÜOƒE‚*ñbQdÒŠu˜ì,ΑB2ܸÓŸÁ\²ó)E—¹.nKÎà{v„Ø ÔÙ÷ëžÕ¥ï…B¾Þ‡XR®–4-P‹Uúªdeß_‡p¤CÛNä8à!|·›æ Ð ÒÃp…Ç a0‰.Û÷‰¢ìÇdÂÅáhI „m@¸â&÷&ƒM±Þ.&nö¡)8›9Ì0.³¤“ÐŽÐNasü÷à*³àä’Ÿ7(õ—é0Æf`ý¡m;ÍëÈvía°=›w‹’—󎃀ÝbVÈ@“0åVT‘Z¯ÁÙK»Äóß¹× „õüoB5-S|FxBŽPRgètJ7¦‚¼©8¨S䯯Nì˜s슾O9µÞ$}ŸŽ‡ªü-´|€Õ­îc#´j¹—§iF®y¨°ãØÈc5 ǯӬtüe ‡žµ>ï±ö)L¢b:g Š+ƒ¸‡?úb.Ñ C@$†IÃïu<+ôœl‚ÚaPÍ| åøUná®8Â8ÿ ƒ;8v à³>"QÄ-6£ÿA>c¿œ>ËŒ{LÎ{ƒ|Ѽ­€ˆŠ˜þøû0d,R5¥JW©”ÌÓWÆ%u>z§¹õ¤è–¥´÷ŠØf5Jß‘Wÿ¯Ë²¶Ò×¢8 _K½æ­÷ûÂ^b¯€hS{I¦(n.7Eï™…ØE8òqbö&“¨tÚcÿ§sº„]Òáê2DÁ==xgï[Ù@U¡€zI›…A"5„Œûs=ãë„Ëü;‘ëÇüÇ1X»ø¸M¡+<- ö àé§µ!6¥ÿÝͳ¿>ói}uzjú@ Œ!Õtß*+(‡ÐãÝ>¹?©[3 i?—$”3¤ÆXÞ-¯È,oÍ(uÚ=‚k¸ViMo˜õZrrè¢7$­ZÉaÉW’Ùŵ}?ˆ|‚>J éý¢£’À–x d`›œê 3,+få)¤ Q0’ÌדˆY þ˘ÈmfyÀZuª2õGKVãœÆ]Ô­OçÐÄñ8`ú#÷Á5H VêˆÂ¾kéDši|›Šëx&ÜOS‹XH–¶á‰;l"Áó™ÚÃzÏ\ØÜÉ©:ßb)þ­3»1D]£æ|HÇ<>‹ª²ê%»„pkÇHƒ†¡+ N ¼C)yRbùå|¦¸‡·¿þÌ£®d³ŸÞÍìQÙt‚yÐâòííýåö´’r0A£!‚öi[n×àp˜.âgìëøq퀀·b¡QCDÎ YE6%ÖQöé"€šóÄã+¾ÇˆfAjyêæ°ë¡1·>§Ì°½L»\o·ÀMõ•™¯…Ðà˜0lÂàY9/®oÒ°é¸Îcœƒ*úf|™<h“ âÉ=W†ß_¯K€ :³K?_~8_VüŠ÷:2‰ˆv¾ˆƒ#žSYc×bºÁ´6âøµ0…°2QEÕiÅVÂúMÈÆÒ9›yâÓGÏu;Å¿H¡R€à|æs ݹ’X¥&µ(>>‘ ׋¥çñn‡^eâtLÕ¢X.áäÃô ‘¾dWˆ!³3»Ÿ)Ù§F°O)gdÄg$%ÜBgs±S;±ä$}Kù‹ÜC864MRIÊ4Íò,Ñʓٵ…†ÙÁ2Èl£«Wý#°ˆm•T‹f?õºŠDTR…Q·ÛÝ ‡¤«·«]I—©zb.°ÛgëÈn‡û¢ƒOrT’)ý*™gÿGØ'84I2sšÂlX¬÷& ‡@”„Š·^8˜›XiSk¹ÞCV4'N(¡ÐxIU”?Ñ ]IÈÐ÷Z–^ 3u}ïE0]ï} «Kí¬hñE97T á]ùw û0z ÚŠ–¤9ë7áo=ç g$åik´ ìb¯fU¼øÌÿöz¨ÃŸÐ\EhÈnc+e¤uìŒnb«ÍÞ`Ñ= ö¥·Þ¾ûòÞpn}Ê?¿=¯FF˜œ’Úfõo…¾UMªnr¢zh˜a eþ(±i]Øñt@·Ú9RÌõAßxžV‰: Ê=ùò„ÒVÔz¸U­”<•ÏÛ&*r‘„§rWLß÷&ónµR’ ©ÀÇ#ˆûð8`Ý/*‘TWN0vªJZ€ÚTFôKq®)Ž•ÐùȬQaš¬‡/å`0æáqÎA u"³%Ç5¦ýx”‚—µ&G]Š >¼šmd+‡þ*϶¬Ò@ñîŸR>ñC¢é~²<|¥ö®÷E”a`*T«Ê€©‘d%(ËM¨×T˜^„’ÚÓ\QY©‡©^BœÚž¶ã"Z:`|l6çAÇ¥V¸àq}v“»`ÏãÒ4aIÛ¤§û™€®”uDÊ)ßÏÂ{å‘u ¤@´$íé[ÑÉ9‹úíñþrÚ駇d¿»Ñ ûéž(G1ååçIÍ@L{z ¯|òéø?G?Vä¼`Ê2ùÍž»ùÉþ¿¥-LT–ÕBÒQ…I¸Š™O”‚ù/`(ôza¶·ØEØâ¡Ø*ÌÆß©æMèüÁÁÓNÊ4ei8Õ—-.gÅýBÞ#<ëf*ޤ+u¦8˜Ò12 {_‹Œ›ÚIÅ=Ïéì>äE³æ ­™ókk†L¯çÈ•ò—¸@þ¾RÞÆü%ßXl£s’– ›`¬Cw´Ô¥ÝQð”ªpuuJ´C‘Âa¼÷ãýñåt^Í[«Vé%ï@åõ˜:ä61FZpïÂêMŸH¢„N‹Ž¢èT^‚ës Z¶ÊæPåp¤ÐŸSýLŽ*¹ §¯¸<éa´'[öˆ°[GûúýÎzOaÍ8ÿ |sP䯠è¡F†e<ÿö?cÏ¥¥Çï„ÖÏÿç;ü`±hb•þÁŸá÷Ǻ^ù…0²v¶[öeÁ•êzñôÓ7 bÚA™aø“p"H˜Ô ø¦h}®ŠFkX¯‹¶lÜ¿¿×ìxrü7òT4=•M$<ÀU¯‡qé 0Ý$šóô÷Üà*ä5=š[ú13>/‘òŠœÖ¤t©ðìþRèΰÇTÚo²Úaù9ÑB³6èú À˜oÓ ¤¦ñbeý&YÂq‚` VSÓܬ¤žè0;b“Y•(”ÚôÜòüIMÁù8¥ùPr\PòBø[rq•B€ø÷]š{L#”¥oªìðà.ÏR¿……l( ®”õ:ïÒOÉÈÔ íÓjž"õ@Ó–!}FceáV²Ÿ´ ñµñ3Þ2œkÝ®Š#¹þ@”ˆM*YøëuŒµÁ§ÆbäX~F¼‹CÌKû¨<ísÆ]|¶ôSå0 t¨ÈĺR±²˜YyLÈHbÊ9ëGüç^¹Ÿè7»¸ŸXµñJµfˆæòþŒ°n.ûAÎ ¢¸q«dýÂ-yXƒÁsBúå 7$Ü^DÎtšÑ3cùظŸãÂëXνrW&Ï›…+/² ŒjcaÑt™°ú˜Š :æ¸ÒK™¡BÙåtå ¶È”mc¿NPˆþ|{[Mï€$ü×öÊ\bº¤2ê,[ÞyýÀc!hïj ‰@8›ô­TñÒÜUÜŠ‡»ŸËŸB-Šï´†b ´ Ó°j‰&*:g܆Îù»X.VUMÙªªœåêò’—}”¬) ²YôO‚Hrö<¤žEIäâ÷¢ü„ªM–Å÷`Ö&ÕÚ.#ë« Oaˆœ_T–DÛf9Q_¢Ã+f6 Ëhq¶ >Âͱó½’Û°PMÅ$Ê.ÀrÂç¢Ä XR•úâtþö0ç‹M5,ÖŸ/†;ÂîÈòèë¿í"Õ=Ñ6Û$aqœ¼=Å ÏP¿%ÁGªÎePûł裕Êj”q†Ò«2\-Y¨ˆ˜¾Ï5ÍJ:ˆ%VˆT?a%ÖÆÌré³^zsàÆ‘¥Æ”˜ôFr‹–QÍÈ}l¢Ó&ïšÌñÌ?U»9.ïS®0›VßÌSçp¨2@Сѿ¯u¤g. Ö%«³€4¸Ùèÿsu4 ÎIˆ![=Í bt:›6?}¶µ6¹s[\7@5шռÈ@•ûï7jŒ7_¶@Oƒ“ÌEÇK9‘-?‡ŸœÜz‰‚o¢“æ•S‹³Õø^†Ï,¾¿ãõ¥¥¨âZ8Ûæ…àü´þ’dVâÍ–™Oø«ÚáÅW%|þÎ4SËÎDKw&$x¹M_.Twæ²2ò²Jq¾ßE( óp2WìIÌÈ€ÔOëö’gU>²¨çí’ÉCÞÄi—¥¯ÄÓÛ;$:$RŸÑ‡ý¾šq¬”2¦¿Bô«\¨ñþ1–6ïDl˜pÍ;†»{)!J(oú1Lp„Ò^V>ÃÐåRt‚Mÿ†€o…s&]éS—¨A…UééÆ'f$ýv=_¿C%Ï ©½¦èoéÕ#è|F×îÂ5¸¼VìÞ÷‡*™e÷WŽr.«8±×ìnå´¡®tïËß”¾ôsÒ,ç°àøÆýÿÕÈÐ9üÄk?ƒýÂâ”p_MùKtp‚BÇ{$þû%CÊ‚1^fõáKý}Ü( BÛˆ‹©ö[h*Šb?ü6©Ž\"³òèÍ@Ñù<¥Ëšæ+Ç`W>‡žÈæ‡R#kŠJaj3(LÔú&ª¬7Àª¿Në¦/ˆÅÐé/kNð ÎÃÃZ«Ím* ú£Xºí‰FzFðäõTŒú.Ë7ù°x5 åÝ´ÄrâùJ–KP€ôÈš$B­ÅjŽÀ`â)oeÕï|Ú‡¡º²hÎ_FÅ‘€]­;!=ð°æHŠjŽBÙo¸0 q‡õ ÈoFöv *¢sG–¡þJPÑó;aš†+AÓ5žžÅñ ÁJQ1•LK^oÈBŒê-[Pð1ÅL‘Š÷™E×´šG\Ýûô\—óŸŽï¯ÏþÁ>kìendstream endobj 706 0 obj << /Filter /FlateDecode /Length 4053 >> stream xœ[ÍrÜ6¾ë6‡)å°œ- Cü’LÖ©ò:NÊ»q¹bks±r`fÆ£™¡LR²•'ØÇÞî@$F‘\>xHâ§»Ñøúëôq‘¥l‘á?ûÿz’-.O>ž0z»°ÿ­÷‹Ÿ|óVKx“–YÉçNL¶(Ø"WyZ µ8ߟ$<[žÿ 4eš1 Î7'ï“7o~\®„àiY¨äÃ2K3%r–•IÓâ{‘–eò¶ù>0™ó2¹¥ßª”E‘týØùõ­×{××wK%¡wž'U[WýÖ —©x—®Saíb^·Í? uÒ_y:Û‘ Vhyk»çNó¾Úíœ4¬H.ðAŸ’¡Æ^ìUj.8 ¿ÀÌx—¶g& =.n‘— hŠæg"Ô´%…V‚éT‹ ^Épv=‡0W‚u¼‰ÿ¸@ ~ 9.-ö–héгº¾ÞW}ݬçƒ^û`ˆÀ'œö\2tV4з¶¿ËBÕøÞ6g2ñ7Y´ò—=ØŠnËÈþÆ­›'õÞ_™]0ì>b‰ö™- “t丅Äa}|ó‘EÍWçÈÞR…[*µ®Ì3ør‘j“ÅùÏ'çÿxŸ¼ýü“K2è×_S—ÁG¢-†ß/šCß6»]}¸Ä—°C2˹u-Šdë­>½+x5>wߺV2Ù~®ö7`E7µ:61Ëd‰Û|ßïšæfL×_µÍíåÕø¢ÛÞmÛj7¾°R5m7j Ûý¸=¦¯×ëñ÷?Wž,u×_ :X˼^o.Μòþ§-6µßŒåÆo.¯ƒ~¹÷íÝCÍÇý¶¿j6ÏNÛf}½=½X^,ãZ ¸4J DWÝÜìî/@ɳqÑZk³­÷îó³ÍvWƒmïÓÏG¦ÆÂ©ÎÆØT}•®wU×ÙŽ3¼EÅfÖä=ûmtªSÐ,{:ú½ OÃF`ÆI£wóFæUt£Í½Rs­!¥Úí§L–FàúàÑR424‰G…Üœœ£,Ì`ò· p*iÏæ îÍ%hÒݘ…R‚‡©!m…Éüü”¥÷ùÜE ‰ä=9@ûê®æÚ«äÓ1ð=®Òf$˜Åò‰å;jN‰_(JÂ…nݤÀ‚†“:0«A%¢‰ðW9ç†xÑø­{3÷l½pHMû‰g’c±<ñ›ûr[ûX¿AN#e_˜@Y&-0QöÜ-ÂY¦©­$$Tamb?³„Û4zÅ5¤í¹ ð¦íQ¸5ýC¿r“…gžèŒ× äKëL­1ŒXù$q«~ïzbÒÀ—‘†!ÒF¹ðÔP‘H#t²S’˃ep ö•¢jˆ)J{ˆ[°g!Ê¡Ì7‰Ûþvy~òˉ©X«EûÔJ5l¥Td|!l¹ú§j¿¯ ÿµ—,ZN²­Ó`ðhÅ4ª!–íœ0Èq +ýSÅ0Yh_ì÷ 2eÉ©~0ÑKJIÀðZ'E©Å Ì R3"ZBÂðrîÔÞw†,ɵô zW½¶Híý^GÞŰ>„*SZåš“š«ý¢Ý×>ä4>@_‚ãsbÚc±§=¡pO½!EãÈk”8¾'myaošb™¾k`Åf xÁ)¬&—ÓŒ¤÷©°Y!¤OÎ'Ãtáቕ¢ f«1ÝàÇËá£ÄfF?|T›q¦ºi_{YUà­O€ÃpˆŽ!|Ê,Ðh™V‘©c¥%òxgŸI¨”)‡¦€žQN÷»çVðQ/“°-¼³WÓÌ »–¥ÀÛóɯŽÄžÙ Dz‰Â,1†â,+R¥„ýÕØ3gH[_á° ºPÉÛe® u97à)ÊýÆÏÍd€–Ÿ£¨qBåÌ;´±6Êæ~M€M&FÀ´Æ#×SÞÕ˜ˆŽÛ£ØN…IH¢AÕ<½#!ìdš™Óh”³'˜[H Ž‘¨aÉibt[ 1ûÞŠl€&ˆt+ÎdÊKƒ†êØ9ð»\†è! 2ÀìtƒwŒ§{l_ÔQÍ"£Ûˆåižó/8Ü;sQC‡ˆd0D]*ú (˜Ä7±”)ä›ãä¯×›ØÌ-/]²VsV=ůP÷æò::–† cZD Kfzg½]BÈ‚©.D¿KÛ¡4%.½Ü6ˆPýŒº€¯Ì. äD•È‚üˆ¥”¼(묌¦{¢@¸ÇƒbtB¥t&Ù‘Øná²öã~Ln€.àÒ3×;VZÕy ÇÌäp(30‡¤&$Ç:cg_Bà›%òC NÃëÐ-¨–"&àŽE |WÙi¦D*¬\õm¸]|? ZxygPQ:–#„Žiê¸Ø[–3ov1ƒ`Š•°ñ2=9² zÚÖÓñ8[~Y;;šFƒÂZ!¾æ¨Š2øÊ)o6-8å“3ö‹mT„©Ìq”ÓÑüÃLÐ2§Yœ&¥wOÐŒÉÙQAtÿ)ÉÙ°ÿªu$@ºZâÆóƒØ9:Uw¦~ÄLeì2€£nî‚L 0ó Ë“¸CUÉñȾOm PB6ÈÄ$Î<êÎÉÇ'¤ÿãí1¯1÷…èRQX~®¨)ÀÒ*Ê¢’?à†õW‘3r9m’/ªˆp»Ùtá¹èä´Äé9”¢èŠÈäòEÓî»o‡Ø|Ð`¾0¥RFNõ¿˜31*% 9ï+¨4¤^„\¥‰2•ùIçÑAZè>ÌÏ«…ôËX7Æ »Ê”h\/»Ôö÷éHD©æÜ³4UÀ™ƒ“P3ÀE4QÀóñj€“H=éüÇNY²@§f_÷S"9v:!™ŽVþ3¿jƒUß¾©†´Jq„†N~ôq ÝüÁ@JIÊô´ÈUiX(>ÓV¾ƒ:÷ýÈèwÆ5jÿòߥ£Ýe0ãï–®þ­¢Öøð>çc–Á‹#}õÄoýì`R®w™’-¨H!•˜xñø;곯¨èÊ(jO“…qÅ(-e²4‡3ê²´‡ $µd³+ÜÙf,G¥2Ìjx™°,Ëìä°â¦]_-6þ3[þÅOãñ g[–¦ì ­‘l°• \šY¹“ÂÜÚÔ]±nYŽ¡$e%á¡pöB½ŒÍމá’l~øÖ%ƒpuböj \h"…ÓR9½Wedå¸0©ÝLBêñN¹Qõ_›ÇiàÄQJH°ßàÑWGOxL½ÅVæˆRÀ~Ba3½!Ry!}ÌÀE!¡ËäSwY, 㤺ŒÞ^Œ.Ö“˜áwoŽ"nÒ~ªÃ!Îb'ö5– µ±ïe„d$Ë…Ù/áêØ"b«Øö£IÀôèf™€‰/ݸ¬Ef ™ÃíßúøÝŠÖˆ†[ÞŸ±î‚“¬jPTåè/FècÁ `Ü4:xæ…MÁò ó%óZNj4¦êHÓ˜ä—æ‘1ÐpÃN7ÅðàÁCä¹ñšLPô›,Õ½°œ†÷4[û»È“·î8H(WÛè¸ö+¬4—¤‹7ErRûéðAÚ‹ò¦Þ½°$Á|¤‚…U4'…NrÚÀ„Qkn7¥Ñ»˜pkR=~OªÜ W; DÕqÀÆ®àP7ÃE I~¯tÿ†Q‘{VNÃó*rPj|¤7!pŰn™¾j{7f™›à­L¡oÆ ÇñƒÌ«îk<ѧ. Òë__Ú±D÷‚ÕEÀ*M øÛ{G¢¨Ÿ™ø³Ríkä rg¬["ä[F³y’ìAà`«Üþí>@pÞ7AÞï–cZ1F % Füë©Aq 4@6ãùãïoL1„h•’žr9‹N8>Hö„¸èdóÅ·óáN?Ì]6cA…î:Î?½*snØæ/ºúš¶¶ú¡4Öœg¼ãEÓ†I³»/sAþ<É›]¬¥Ï°*É‘Ò/LÂÕ_WLËTù…7ºŽGc‹È}™\Ò)æ„ÕON°,D ͱåŸÝ´Â‘Ÿ˜Â¼3˜#~óóÑ0VPW‘k$ ýE†)¨)¬LJ §á•Œv*‡R`#®¿;\ÖüJpÓf·³÷Ù^”œ•‡HÝ`Nü{ƒ£[Á$%tâýËÉÿ®¾høendstream endobj 707 0 obj << /Filter /FlateDecode /Length 3650 >> stream xœµZmsã¶þ®ßЙj’éêœâh›Ì¤é¥“&7É]Ý~è¹x²Îf+[>RŽÏùõÝ]$AR~‰“ñ“°X,Ï>»À‡eYðe‰ñÿærQ.Ïœ¾.ã¿Íåò/'‹ÏÞ_ _z¾Ü­Ö\[íöçßîoA>×%»þ¶Z­/aÎ^~÷ÏWßÃké=èÈ^nªæ¼Aý^^nQ¤¼y•žûæ )ÄmÁX®¹,´ò"Œ¿. QöBx¡º7ÇÊìM½2Ü@û¾£,„î„*žI5½ ¥:€}H‡“vµV'åÙÔn7LÊ*0 ˜ûÙQêÜÖq®ØÐ€Í©û›/¨¯F «¶8«ÛÃ)kö7Wg§ì|{øjß4§l W/VkƧ«ÓÕìz*˜)<…!¤/'õw²[ΰ¼.¬høÑ¥Õ¨S)ÒŠòR‡õ¦M6ÅÅg\Îðpm4Él•ÆMÆ*Ñt´Éôß-Nþð6蓼¼×-)¯\R'l™Ü/ DÏ14/2(¼ÉÐå W˜y3ˆóÃÆu=Tÿhx§§NZvέ¡Î†u¶ëÉM÷Xú^žëçÖ Ñœ€(OÚLï§¡ûDz{ôý£sÝã‹ãθ,üT7ƒÎ»ö†ysÍ®‡Qfˆb¹aÕ&Èòä±ÍPðvøKÛf¯g ¡„K 3È”¼_¤f2o¶š)Í.³Éd­ö+\ÂÐpös)$‚„ á™]à OÀ)òÜÚÒNzž9.ihò¹ïªv>º0ÖÅþì«ýæo  Ï ¥MQŠÒ¦¡ê6Zöü1<û+„ŠŠâ< ˆÔ³ë^Ö’¥Q…+Í(Ðõb¢+d‹¼ ì£4fê égõÕJ8ÐË¡ÁupèÐ:ó›{ÈA¿:~IùFœ$Ä’WÕPFµË”ެšÌ‰GÌÔc„=2S…>Ñæa×ð’Ý^Åñ”C V†þu}¾žãfCëö¯UF>€A9 £â¢ÐÜÒ“ÏØ_@\ ©ÌPÞ[†» ¶rÉm¢ ýº"Y·<3{ÕŽP 2lW_Daî h“õnŽûÚ"ÊjLe•nꆤ.ò ùÞp¶!qœz*¢Ž“d?ºÜfè·3ìÔ‹81=U±ýžµ¸mÝ°ÓØàɳŽm›èË´mT ƒ?PíUÑÊ¡áPeð ÌÈtÁyÌô‡~Ì>D¶T  :Œ€ÐÏ9: "’vTba,Qlg5õOÃ5߇%‘\œöA¶q³ø]Š£àt¨3»EQSÏËÌüŽ\‡ì@Ú‚OÚT4„~‚ (wˆÏà ƒP¾VdFc¥ÜÀgÓᤌÌïc`|Âfm0\k‘Ú|Ûär€êiX«ÐänVŒ+¬@‰Ö‰DU˜NŠr˜¼ˆ’Rqö¡ƒ³‡”Œ/¯7…À²Ð{•êJcÖÑoó¶«òv‘”Š"hFد˜“â“L5j½îö¶žILC»<*œÅ!†:5ÀtC¼=ìꉉÌá¯$«fE$v]Ðy˜bsJuáÈ¡†êßk”t¡ïR’pu™ ^}ǺI•]@³*šÃPÖj×€»k.Žeþ€Ù°½ÀQæÆ‹&F/ó4\E!À0I@|U£ƒ‚@j'6 ò^ihÝU‚Þ÷Ò¶ÑÝ@DnŸã¦kb®²ä3o“ëƒÕr‚Bnß»d–ÀÂÌÌC• jf(9ÇÈ(Kì?<[P¾à2¡ÍíE½¹˜-;\;)R-`hýª©F5cvÙòÓé²–«­<ËkŽ‚ÄœöœöÂcÊ&Xã]Ùä2óÂIÑf¦X@ÀÉ©T8¦ªÀg(–µ¡„ÄÜrGŽ…¦L!©³Ò˜ ½/î3 ^NBÒ. ¡CRmž“Q—¢àÞå½=šø´½…ª«8y52ÊLžHŸ‹FÒT¥‰«ÙírjC øxþJK:E™( ð¼NJBûÛÈD­Cä^aÁ’k¬Ça¤¯RÒ@{Á‘Ð2yÑëžÜyB}¬Þ5u‹V4²ô3§A¥ŠG!‚Ê“ó ãR 6Âesujf=‚ÐGTQ½yÔ Ç$Ð%Ñåϯ¹Ì€MD%¡2RÕZc6”nÈi‰˜Ò3hò![ͦ˲K-à|lè3‰PÇRæL+\ù0ö%t‘RO|©S0 E˜©ÆE©1Ãl²êÚ:Í!y×|¢§ÇæoêcîCç©C²ˆ Ì×O°ÄŽÏG¤ÖóŸòÈR;ùlAªa©Š¥\þ×&hm©–B¹B‰P3¶Ï@-A×cøPÞÛ'Öm  ¹´:f™Áîšç5¼ÃLÚb¨ÏQãëÄgi&.V7§MÕ¡^`"tVb¾ø«ñ((4ÓH‰ßK`™@Wôï¢Tð¦{.ÜÒŠŒ:‚õ«AµÃ¼Ç°J€ª{Ê+Cfp6MìB™C£î  “*8Y‡MXs.O<¥ʈxRJ¤´Mà®Ãf'x… ž2ÅÒ½çüM}yŠa$ûv=Ž «Ôa”¯²]6>Zíýõfz<˜bÀL°T 1ß*„o-†%âT> A¦µ*¯Ý-¡þ CÇÒŬÍÛ.Ž 9jMµÔ¥»ì§¸ÅØí‘¥qbùS–†= ÉÈo~Y£ — t:¤íNÈIä·Xœ7\ùteâcÇ&M¸Èy†$ÜŽbªÑYù¸Ò-œ.w¤Ò tÒ¡~6ËÚ\:0i÷ågÔµ‘£ÊadóP]›ªÚNÜ[Ô–XH¾·¨mÊTîÿu‹Ú¶à°öTÔæ.^& $$úÑ/±à*+;ÊX4åtsK¤`uë%˜µ”±ö-ƒŠËÊ<=¼&C³°ÄXñ † Ü&Õ÷„³šŠÜø ç}žc•œÂ¦™ËsfNv±CŠkt‡à×& ïÑ‚¯È{îžO P.e2yU¼íò*!…JÛnší«‡³· ðêEw j`š£¹ëì/_è2‰a—õîscAvfú»]Sê@ë“À1º-´¦Ú„´†ÇoôŸ_„Ò¬÷ê)¬ üÑH¤¼CQç颊)¤÷÷t9w•;ˆå«i‘‚Î5Ü£ê]ØöKKêó™`¬ôcV‹ù{Ô¶:ž_Ç+³_ôך?ýtî2ñ¨E÷\®ú—vƒ¤´‰·PÈE»«èŠ¡)·6Óeé3r–Ô,„ÅôÖ„Û~ñb+Ö€ÎúŽ›`G´]÷iõ¾>Û^m’|< Úéj·Ñ÷Mç]>´Ëâ' \ͶÝ^'÷fSyªº[XÞ«a·íônôÓ–­xÊ>Á­úI¼Ù>nrÓ6^_WÍ)»|ßìo?ßœ2þ¢¿O özñœ endstream endobj 708 0 obj << /Filter /FlateDecode /Length 6195 >> stream xœ­\I—ܶvÞëd“¼œ^²rÔ 1 OVŽäø9ï)ö³;ÞHYPÝ­­ª.™Ušüës€ÄÄ*I­£…ª«@àââßÀ?.šZ\4øÏý½{Ô\Ü=úã‘ o/Ü×»‹ÿ¼zôï¿t¾©û¦W¯ñ#âBоVº°­­{Õ^\í=¯~Ût²î;¥ªa{»¹lê¦íDgºê~#»º1ÂVÇñ~s© 3ªºÚtªnÕVûÍ%ŽÚV7|NYÑôÕ~ÚÓ“PÕûÇîÁ¾¯~¦oU¯ªh™côׄãŒ×ÕÛ?ßvûC2ôÿ®þöjt¸WÕÈÚôö{uó¨’íæê÷G—Z‹‹KÕÖ1øõs çѺž|·¹ÔyÐV˜rmªá€ßÂNEW½ v7í_ÏáÛOî‘ÆTÇ×Á·î{ÛVÿNu8ú5lµÛH‹Û6Õ»`Èö8¾ß´m5Lãpœ§Q Ó®éÙV«êuðì}ðyü#œÕOÂï_ÂâD¦­~‡‡kÑm¯»ôìn[˜½g…ž9Æ“…ëŽcÈžÚHc¤­†ã¸w‚¤{ jczÆãëŒT7Åä¹ÛÂÎð\µ0Õ'’¡êV÷òâêï®þíyuwoÓƒÔ=<é·Û+X¯ÚG£Â †,ÝáãÑšÉNkç=ð¼ã]AñtêCg¿å•˜åÑȃ_¨«†€÷½JÆŸXHœÆ¦‡ÝàqvZÉN¸Z ? ÐñWn…VWíêä1»}7Éôpþ;kü¾X¦Uz®Ì9ëO„g`K#YÍjrŸI”ÊÊ<,?qr…6l—ÿ,#›6NÑERqÜ"—: ²_‘àhØ)*è˜;þŽ­B4 ï>|<±‘k¸V4œ T:6Kãê¾ÇpܰuK€RĜٞµ?Ò¼‚È ?ú‰d…îˆ÷0xvg%ͼ„#¸_1Z±µ¯7—Ö¶4ñÓñŸãß"µgAŽ̃Ó[iÏ6ÖÈiïY+«ÜŽZÖÚ)Ùµ['ž Ú> âÏ›ðá¦Ë}/@joݺ«^F‡Ññ—à§OŽŽÞÆb^òç ‘¹ÙÆ©À}ÐAâç¶Ïõ ®®žÐÇãBSâVÖ”œ‰±Áw\^}7È}Ñ’[åo•]!0!jr'|`8Œ‡Ù´Þì‘F°{MÇ(; Öˆ°z·¦­v‘GdxH$ÛÈ|ܳàç?„ÃG>i5é5:O–oкâˆÎöÎÂÛ!äçÖµîôhŽ‚õ¤1Õ«PV†]Ä*‡}ÐÏMo@Û:% ý<½\>PppLífP©ö‘Gôη IDËÂGwü%>&Ð2àcâïæÏ³wï:¨Ãön?‘'ÞÁLJ£/S±1éö$`nkF Ñ4Ú8ò$Ñ~ïIX è9zž£­F?(WʚѦfxJTØYegº_Ùr•úÞY›XƒWk(bJÌÄIÿééªñ(Úꪸ) 5‹ÏÄ’ŽS"}~¸'w³öðÖ-†u<¸gû~}ü!ÚÌ4:eŸ€xèËNÈ –΂¤W‡ÈÖı¨X³•Ò8ªºhO˜á-Ëà} cµ r¤QíR+9Ê©•´^ÀFo¢tOnìå1Z£0„¹Ýà—½Ñ´+Ân†l †xg¢Ápâþå;ôÊ<…ÒϲO¨êš¦ê8z£ÇÉw3|â¿uõ¢zÆB&ö“§iÂê§þÆœi/>^V Gÿ|þ~ºw¼®_lбž5`SÏ…«j{Q„¸ÑËP8NÃx÷š‘/ìûiôôÍ-¸šašÕ8G׬Ó5ÏCèch FŒÛRÉxZÀ7ÉC—b`›‰!iÇ!ëhƒeÜT–#<{g±1pàƒUÄE±„º³¬—…H²‡(P›m£Ì-œ*@öíp¸ÌïaŒ1LmC$‚æø+jÈUqü I¶Î‡4¦OL< §d!p©Šaxup°T#ÍÙXƒh‚“ COÞ“È}Áòä89Ò€†ô`Q\àü@ñG?*ñ„Ãv÷nÕ"†î©Þž ‘y¨T“Ä Ó6†£3¡) •Dä° ªÀ?ƒ±YôØhòqrhÙY"ŒÎÇ‚dŸ=ÃÎP$”!>äÄ68f¹&šxˆ;È"‘ +R© ;­]­öóÔ sGÚhGövEi'çòµ5vâ­k¼xÐ~õè8IØ^LëÉÁ؈úä –}mtѲka%ŸF‘Õûmˆ4Ø"[eßL­:¡8ûÄ´mf Û`u9w'j0€½Ë݉¾˜½sÛúÒý´¢«{n§ú`º¯äRk´.{údˆrB>ƒJÙ¨-¢•–”¶Õl‚ãúR D+kÝÆT€tÓcª‹€¨ñOð¸jÑød)©À’ÞºAV–5¤¦ø; Š8– ²0>óë§2à‹&TÇÒxøO€ü’cDU‹A£9ÜùYÁ?£ =4>yúÁS¨ãH:6eo¢|õƇîÝ”µÓƒÿýÈ$ØF15%ÜÆy°Ž˜à"Ò‘K+àÀ}q9EÔ›àÆ]:{ã£bI¸›èí|&vMf½¥L–¸ 0Cšc?`0±£Ì þü(¦½Kàv·y¸õ‘¦Ã`è¢p¬1Kbý?ÃÝàÉÉl<“/ªï\¾ñÒ¸õ”Ðy€–©VÔF‰°¿·(œàú¢yEß70tÊÚÚô2fZÙa†­™ÃJî>*%¥ÙÙfºJ"þì·ïÝ„J—mƒÁ ,GÊðpë+ákay—±XJEŠEµ(p\›’³Òª†h£•2š³ ¹³z€¹Ö†tA`DµŒÙ‚¤_n¾…ø ÙwñôäetC^æ$$âðŬf<ž=yŠ*…©þ&E ˆ>º>ÞÓÉemØÏ|\ž,ÄÓœýëÀŠbÑþ»Ì®¶±wÙ³™íZ™&8 ÈêÍCDH.’í·!­ÚZ÷ƒ*Ù4±Eºµµ%¹Qœ!p¾TS>3À ‘ÜùÏáÎĆ\*kh•KB¢ö¦¨«Èèc'桵IðÙtc$ä&€#'œ%i½²FïäYÉ(¾IŒ#Wµóp“k»¼S²Ô=Í 6™rä =ÇÃRC2ƒY™³þãÕš/H77a&ðR5 B´ÛÖ7¬­HI- LªQÈÖL’Càôˆ2œ”i°&3°eÔT ÉB›©¤h\ÇDÀ ±©ÁV[®à[ˆÎ’Þ^]ÒYÓg@\Ÿ«ï¾7{¥ç/spþõ‡òùëZ5ëñMQM*C0¸²©ÆWî#Ä>‘my»ò9ɨ‡†Ò¯†åMϧƕkè˜T)›3RÀ±ÁÙ‚¥šÜ 5IõŠà´¥Ü’Ær&"‡ÄÉÂå>ÌÉO$>cäœ"yC±±=a÷¹¼h©ŠÉP?·2Çâ]CÎ&r«(ÚÍÓõ©s׺ô×Uš£%Lø„# €ü×Î@½Ku:\JŸn„\fÿJHá˜$ò@âTWWÔ2…sœ÷Ynš\ vïþ¿Í>;ùþ”µ&Hn®ËŽe=­ò”MÏÙ‘ÜØ:ËŽ$lñÕáÒ«õy›z$».°)»÷·E ¶GÌ 0I”‚x_Ûp²ë›³“=»{ö;oAòŸ’ŒÌ"b—† sä³hzùtm­œW~öݯô˜l¿®tf#Bw›ª¹/[Y¬ÑÄ^ê§û±·Ä(Í&¢Šßö†G!XoÜ# 5[Q¶A**¾ 6D W,AP´­E"/_ÇèW¿_o;Ñ+s&·¼¯²Óli|—ÉC±LšZh#Iïö5µ(°ø¯ÝôØÜR[} #~V»R9R¤í×Æó´ ¸: \‰ý9ùð|uÔ¡²Sg%¼ü¢:Œ_Jí JƦuFz âºá†1J×InÒÅ'š¤ïæãx ®>ã©çÛ2ä¡â8}&¥/i„fPÂ)¼Ø ¦î¹6í¥âEÒ i©©³µÀù‘š&eÁCà˜¶Ó´ØÝt³.a‘ $&´Ê‰L[n¾t“ž9ç¥Màq¹9w˜\³8º²°5‡ì·ŸË*i׫QþgË:­]ƒ6 {&~ò‹¯ëù‡¿pŸÏiâ£khïñ‚‡¡ `~¿#€øÔ „ïD^& oG¾ëëá­¤—ˆIŽn‹œ¹•Ák׫Ÿ M$‘ûÀsö½R˜Hš@¦W±²ävtIÊRÓx5×+pÏÛh ËaØ$M2 w‘¡NIM=qy¥‹Ì2÷× ÿÒňŒÁÖí¹¼vï©=:þÑ6+1-uè÷ãM¬²1$¡§žVýW1SØÈZ}&Ç`'=¯´g—κb›tpü…T/n¼_Óú‹…oËÆ-5”ÑF!öíj)Û¨:Z’w¹)y’ÉóéIØ üæ›U~¾žì߯%'Qß@õ“´ëÙKEWÁzœî ƒ”û˺ýð{ði‘ÞôÜß}¾ÓÏ'áS,ß+rµ™òàÄ&oû›{ü˜. ZˆÞ‡]ê¡9Âh±—„­>DWÃH4€`m…Hç>œ²“ØJÖMv‚ÚAÒx…Ƙô:`ÓѨ¬)£ÕPýFhNÍXåz±"~Õ´È4çÐï³e¾x—ÂÍ¿ „:´SUêàÓüì«ÿôŒi>ˆô~úáoô—¤‚eŽÇž\]= >ÿ¥K1OÂûkÀéã° Ö·—O£HwÝó*.Ö‘{¨é'C‰±,<ÅŒˆÄÃs[[¥‚ÐîzœöÛ¢6µJ«5œ£ÁËÉ=¤Ôpß”»îóÉì¿¶-s³˜-|å&B¥t+5m®æËO«¨rru†Î–Òx˜MÕ1”Üs“Ñ¥Ô¶Ú$œvQ&0çôCJ®æÈM_w0Ș÷'ëGÕÚZZ$Ê[F}y )iš&(½á0ŠŠ0EÞÛŽÔThz—«!œÒvzÞ?Á»¥°™7iàt±s™ó ²$ôßþä§Ûsù-•v$ûvn>éK#‹7Ôz×'Æ<}ÔQKá7Hq¼ÊΤækŠ€õDÙ§”—7ÌÑ Q_dæ§x†Ž› vã1ÍAE&bŠ[dOQ¬î”NÌíGŸÉS†°O%aè:¡ö8¨!¾q=è'ϸô¢=Áù¢)Î9.t à"Y°–ÿz\¶ýÄöqÎ*ÑïçNþÈöoçÎÿpãVVIÃHÐØAKÆþqï3ÄÀnË7ѹ§¥ïuÚ òy÷±BÑ£.ݹ”¹Ðt)ºprËc°ÍÿŒg_bv÷HjóÙµ57‡®ÈPÑõL¢Å \¢3nK9|^)Îág9i2eT[¶…^MwTòH Œ Fá|$`uÝé9÷{: ªœÍîvÉkjcìÅ%Ýò2ÎäýŒwµªýï·|e $îÚ“=qíí»éðŽjEþvÖíñõ~¾àus8q‡ª[½DE2©g÷Ý/HèÃPxj­*_ºv¢ãnQúÊœs%$Ü*rßæXoN<A%ÞZ^ŠéoÓÔLe™ÝøÙê…ݒ̬gw‰©t%DÏÙñ¥?ÔQkå"õŒû{lºYø’\ŒŠò1‘Ùò€Ñ¥9K¯2(v+l½¥í„7œ@Í¢lÙ#’"ñ˧Ã!e2•Kš%z §®¸äׄIØE6q:$‰N½Kc-#óÌŠR»9¤“KB§Þ§QêmŒ™ !E¼C<§c³»ñDØ9¾RŠœ°mb]£éÞ”ûzn{•‰ðö~B¬a¹ç«Øùвî®v¥{_ãnôïð¡´ !½†,JŽÙ^°vǤìy¨æ&z±žhð:C³'æ‚T§hü]’¾˜Ù&ºÚ.ïb¢‡…J“x—>®ùÊWè0=ÅþâËÞ}Ýå™ÊåÙ ˆ÷/œy$3t6nç—(Ä÷73t‚û];Ÿ/|ÏJä¢ùê ¶ UÔÓ»ÎXÕ§¯^¢ ÝØk¹VH‰izËUWèãAdܸamõ)nÅØ¦iuœ¸ÉÓoe2cI«éñ0³Q%•;WòœQí™´ QÌ•6ôÎÿì’fÊMáÍSî——oÖ§•ìë»Ï9ì3¯apÑ…®„þ°æõžÊ|˜šp6šÿ}t U»o|ƒY_=9Qä¨ÿÚ›FR×j@Ø·¹ïapÃ:šW@€õ€f}.¼“*æ!šEàa,ÚYéLp²nîq|ùŒŸ ÊAŒ³›¶¡ÀšnÇâqôÚÕù÷e|õŒ_Jç_†·K‚ +”2¤Ø\иR†éúÓFµQF)y_lnj¡œß2ð¹ëDto<)CH]Šì>BâU[´yãýÍíGÿ§"˜HÚdæç~\ä•÷ˆÀ»žË µ#²ë×+$N÷¸ Z%èíeJ0@àëb@¶ÔÜG¸Ûs“û¤Á~Wÿº[¶µþ®Åâkã7­¥¯5XÎõ†k‰Øc¿€SQgLG˜Nƒ²ºøõ©êÖÁ×c3äÓW÷ü¾½8s…_¶§ 3Éšå_M™Ô‡¦! á®\Í…-@ÔR}ç餻Ÿ> stream xœ­\KsGrvøàîëÓpÛ‡ÐîzWiCŽàÊ+¯6´!®Gˆ>4 j€f†¢¸¿Þ™YUÝ•ÕÕCBPðÀAOu=3¿üòQóÓåЋËÿ¥ÿ_Ý] —·?]zz™þ{uwù§ë‹ÿüÎjxÒ‡!ˆËë.â+âÒ‹Kg\”¹¼¾»è¤Ý\¿…ÆÞ²Æ*ôƒÐðÂõÍÅ÷Ý·ß~µ¹RJöÁ›î‡ÍÐF91„nÀ窡ûnÿ’¾ÚÉн£Ï&hï»ãi~ùow§íÏ£ámçºñ°O¯cwƒqݳû¢‹q÷á¸=nþïú¯‹u]å¹^)Ó{kãŒÇְ͕Êà»Øö& ýãÞi«º÷Øßí¶ÑCP²»{À¦+]w ÇnðÝ~#-ÌßêîçôðPêÜWPÐ_w“Æ3v­Åá¸Ýßc+ß cS#eºñº‡bs{˜Š„.µ³Ýþ˜g.¼GÓ¡{¹6ƒ ÝÚ?__üý"ʈ¹<mX€ô ~Ʋû›ùskœ+-U¯¥Nª_¦ñnÛ›Õñ4Õ!M®Ç&WùÙ•°=hBœÉר%Òôs¡%ˆÜ:ï_||ï˜ÕHznÑÔþ˜º nÑÕüÂ1wìDwÇdŽáž d„íO‡§J–Î%l€?”WÖ3Sì.å÷4yãdwªÍ"É|A þ!­Î>Ói£WýÝx䣵ÅH ²n£Wãs£Ö‘jÕ[3ø_#BRôBY5ñ? :Í1 ›0IiÈ-ÏÆ`^Õ6Bì©ü–šU¦sOÛòËÛÄÚ¼dÂWr³²ù«RÀÊ›¸­Ø ñ”êçíMÁä2ÃÓp`Û»‡â2.À#k»÷‡ñ¡à™ )Á7çG‡-3M)çŸ/.W»¥h%¶ vóv[¾€›˜mh\œñ§\ÚnŸºJ³ßßmZ¶¨H¯¬|‚íƒy|6±ïûJ§OïJ|ºO;n:àû41åL÷v ޏè²ÿ!ÊéL*±Û*¤IÛ¢ö+KìØ‰Þβ²’Ïò ö>6pVòA,à ;ÖÜÎÇ[¡…®\¢xNïÀGZ33Ù¬%3£„Áï¹™yS0Cw7&YÑüHÈMÓ!êÉMñP=x!-Š *,°¦îDô Ûp´tPÀL@â—'ePæ]÷¼PŠçÅ\UZ<·:ì3ïæMšî¶Çô±¶ã)&€yŸ¹ ±S%B·Š¨Ónéʦ=Z ­ÓTÈœÀ7é|2vÀÒ&gû½A_rÀÕ0‘;íÓ, ÿ*Ê2<¸†|q aJ¨C/šŒ6°röÆ.ú„“Åøæâú?&@ÐÒ šd(f0!úAÓg¦z#qŠÁâ´¢8`+eÙooßä®$×ANh.f˜ŒòA‹ÃÏzOcìÌI÷~õ\ïóø¦ð®§™ËDh°M‹%âáUÅM*”YT¡Ü-†?»©¸¾IŽ&¯ƒ¦öø÷%LPxdˆ´šõ”_þDÂI;P9ÈáÀÆîÓd|C`xEÒ€"ðª$Û‡B©é ¬#Ýâø{—×§ÙÀûˆ"ÐC{K“ãé¸õtÌöò±4®»¹wÛ"\èê„JA)_gJµ8Dk1ViÞÝ⯤`ceÐó.¡öž¶œf«Ì&üÏÅ|’í0v)´8 ."_š$‡b¤—p„»_B-ƒÝJ†·wã‰aÕ±- Sĉ  †‘0 1 )À_@UmÃ×ÇVðünŒ‡$H=Êc9Œ¤kÝ™—eP/Y`u?¦~„ˆcÑœšÆÂq¬ÊØÇÞ¥IÖl@kvØŽKvÖ’†«—å¹.ÂlqÕ®–;šcœÿ^ÏuÞí©8INàîçþ—²bÞx÷ÉâÉFË“V†‘Íýa²&[‚’ DEæ%4œåé°eê¿° Ä–B– b„!ÉpæÔG¢“(·x·ì)F†¹¹Ï46d_¾~d»~ˆác¦yVÑhLŽ9H"j ¸%‰}¹^I!òü%Ê£‘}÷rCæðíõa¢èEŸÞì7ô‡Š2AŸm÷¢ûn#1:òퟞù,ö%¿Ø´c4C/Â4øu­Jà N%]Ž¿Dj§"]á–táÏ'-¸I/˜•p²ÕS8Ù‚]ÔqMàš8³Òÿ Bcp„RëK‘‚H)A:I½!¿p»ŸÚ!f ³ ,Ĭ€JÂý†!fP í<ãß&À<À>gŸ{•Ã`žž¹ÃHa±±Ãs²í]R^Aüé´‡= ¶Æ—‰M” ·­ ¾«6 ûד{Ÿ'÷HËù–U!¹¥1J“K¾Æ$‰WHj Pš}É£b8[+ZÿUÂ3rt ^[ršÙ×g¼‚€k„1P–Zuɦáˆrù™Œ^÷é3baúªy`¨V¢9ÒAbO·sÔ‘QÐÉÃ×1ø¾ôãæ¥ªæRgs£ú—K­bASã-'Äs?Ü?btkòa0>‘³<^ž8–[¹=³ZC ž(r¹œIS"¨¢†€a…õ@À‘YÆÃ¶\+Í<Û¾/º[( <g±•³Á°?šîŸîvûÈ!Á&½Çˆ 4Ù¡…‹=ÃóÕœÆíî8 ²ÈÐû3Ó›ÛƒfržºcÇH¹£€Îa©ñéÝ¡~÷‡µ*×zUÂ1.¡µÈ”ÑúOkoÀfI{ .so 7[QʲÙr–;?g ×>ÉpôO›¹Ñep½ƒœÓ:þ vC8\“+×FYI ,_iXú† ÎÄ©ë=ôʨ¦ºoE²È.…)µµ*šåQï©…¼•b†‚È÷9ÿýŽiA¥ œW'•:’ŽbLMýZ¦‰žšˆ*w>k°Ø6ÑëœHkl›GXöçY`nŽÎ‰dmŸ¸ Sf™zR8VhòðÚ±pÜ¢p–Óö÷VD¯ßkxréXÙ8…q`NÊaËÐ;WŪ—>Œv³“‹¬c©Å¡·èÄÿß¶¼j(^¦jÀpÔi¥qè s†n@eB©‰Xù8WÃâAK J&67DïÆØ-†ÑÏój‚½Mã<¸Iyꊃc†‘Ò½ÌIu˜}c×H'Å´k‘Îa¨¥‘Ó£­ @í‰[pZ¼±åâwû±ík¸2ƒŠ©œdi³,q®ÎÀ¬rl¾¹FÑ;ðSÊ5J&^=:ìIRÛ„«ŠÌÐ -;$ÇS‘C÷¯¹M¨`× SöóÇÖzà$L±”t52~8YÇ®÷»Òƒ»«ò\´¨ŠhÁñLpïÜW½]„}eHiëCÇ‚¤`Î$e–š3¥©ÏȺi"Bw÷kݼÏ3¯)7ù >`‚p5±D¡  “šª˜ñ]4ë €²w:¾!¬2´•pDxF»Ð5–ëЪðtÞŒê½QYˆ¯ÛvŤL‡þY̽l]4¥6c*c_‰&t¯Œ°gE>Z'Â9Ñ =,ÃOE@Qmi®š‚O©DA+] HrߊÁs@äh¹ËÔfË Ñ¤h'¥¢dØz¬1¥ˆÌÙ”ÃMªIF¶ÉGŠAe"):'£w×N jb±+yª$º ²B©ªö€" ¼[Ö£Ä<¾\Aè”=~Þ_á,•~;}–aéBÄÆMÖæ \yÈè4{6ð‚—ÜîW¢‹¡Â1ÿ¥e$âÇÔBÄ®‚fé&LͦRzu ûí†<Ž´2\êÞ Xv‚ ÿ«¹L0‡DE®Ê¦SY›hpÙíYóeaBnò¢"vu¥I±±ÀÄõÎÚ„Oï…F©¦¤´o­ÝVE Ú§Ë*ah{ÌP=ƒ¶ªÒP;Æpf‹ –sµèSÛà“^Dã¢ÀíVüPW1Øó~ œç¼‚EÄ>:Š ¥uf¯F4-Ú[OápÖä§rÑd/i!št0î“íD6ÝbIT£%ž˜ª³SM©R›ÕˆDþö,îxõX„ ÐB‰ËkMwÇ}Ê ®s ÁMvYƒ4އ:=eËZÕ)Ö(ZšªŽì ‹¹*°/Ã<­sŸ¦ #·%¿¸-K¢wã!F_)¸Æ2ÔÛy×—ª¨¯VˆÂf¶JÑŒël×#Ò@ÕX«ÙDÀ< åHÈÿÑFZ$„"çMP=ìÆTg÷ÍóèݶÁ)=…ïÍ W¡”ÇÊ1/·°’ °Â¹kñ[€•W.ƒÕ7+Ä_;-K°Rv Õ[æDih,msÈ"Ê#Úß 4hî/1}‡Yód½M 2°Ì…FzÛ¬IaЂEÑogÔ½É$dYh Ût»l1]q¦ª—­ÒœÌU—h_õ¦ÊA]-¿ïþ¸¹6æË?dž*p>¯žÆœLíD)`®×„<½shXV©¥é…€ ¿,’ïc¤áàIÇŒGDqä†í¢jÛh—ª†¾UQ„M,ÏÐN^@ˆ÷UéZ*âÊ7¨Ê…`Âw`bŸAÄÚœž§Š;;×µDx,!e…•¡5‡9ÿÓë47˜·éÄçKíâu¯Ïš³ˆ¢8¼- ¡§‰ÎEžï⽃õâc^_– œ=CÈË|? ¹¬KÆ¡Ã}Rå 7iIƒÄCCOzgD™ûÜÒB«ÊEíXÝ«¨Â÷8 ñsìÊ7œ£Ô†¥K˜·AÓ»WíøÈªÐrOàãó9•»$>“‰šæ‹Q£””9½t Rà1H/Éb¯¿7! Œ ŸC:+$Î 7§92E9Äü†ÇkM'ÆÉ»Ôàö £À˜H/Òÿ9±7ôž•jYýM{`&ŒqüGøHê?°da ÿÔ•“ëÑ•6Õ˜Ù:ncª‹†Q&ÅÁ(³¶<Î'{ãº+Œ%À/ˆ#‡K-Á‹P5Ý|FXm(N8RµVq¯®:Ã0Ëžv§XÕ’3zîTC/mŠËr+[—©=âÊÖùD/+mQ§‰ŸUˆ+û( `–œ˜R Hœk;n¹ÌÇÄ Œqh×mW(’¼˜”é SðÎÐý“Ñæ,nªXO-×vJ M¾»«¢EÐ~åæë'F¾œ"¸]I’,jÈ“tPE2•'J¼Þµ’£&Šn·‹Ö¢fÁ _…–L|{¨Á > M}Ï=¹}™ÇpYYõøÅã|cÊêqŽ^ >^¦Zx»Œ%U—oæW—˜–æôP”ál#:áÖPeÅ ö¾Úx ’ã ñÅSeø«ó)r»ZÍQÔ£F¼rC¤6œ=¥ç®Å˜E-&ÝÞG_Ë ÄLrúë˜úùÞ¾§åGÊXÖ-f4± ´Û„£n jÔ–×bk‡LàDU!© #,ní}ÌpºðÅJfTÎüú>ÐâhFð‡³Åi¨eäC‹èŠœ’Ÿ%â%„<1` <ñYûŽ¯ì­ ÙœÝ¿Ü€ÿÓ˜€ò½÷n*ƒh]‹±.#Kñ œ(nfû¾Ðžܧ…2úq¶;¬{`)%´RÔjJEð• ‹ý=eá«…T#ÿ‰|XVLŠƒlhm™§%Í€Ø=¢/k fÂà#LòB÷é]åª&¶6.o3XÒªÊ{îû–Ùê›Ô¡•+ž¼¦…C‹‹ÁÂÇ<ËF¿¾`¼¡ÀoóŒâ;ïi`‚¿Çö¼øa—ÆâfG¶LcøÆ|±‰ó†îäüÃ(ôJèþöå#Å›jœWн„h„‰¹äÐödOª2Ê]*Çûåì&ȘfÙ0­ùAݤç`7y%äH7xELǯÁfu(~Ï.ýžç5"^&Y”‚¤á—EE1`~<­ªæÈ³¾ÿ,Õ¼9¼ªn”V}/|-Z~ ¾àç¡Qù‰ÏnÅ¥ø]BSÅôyK}±½¾Aa¾&‹¸Äo([äè|VoŸç[Bœ'Ÿ‘ÀáÛ‘;WÞ®^ûY‡®­ÿ”ý\¹tâèV¦l¦ÛTåe˪´ÍÅ*!LïÅWEó®åäÝ6Ð5—QBÌêýj;DÉ"ÜŒR޹ŒÑyŠÜ>ÅÉ  û¸„P»|חβÉK£e¡XVÞá¸àÖX ]Œ£•^Gún|°Š‰I“ ”y?yõošeèUËF~lZ2Qº(¦‹nñžáñ$§Â×Ôvv¤Õ©ÐÍAùñS¡k~Ù#±~ÍÀ•¿è‚fDŸ4ÑG8•ôŠY;ú« ñOéÝìÃñ‹„)?û˜ô,þü‘çÊ6ñÇ©üüø·ìD”ù,\‚Ž /ÔºÈX„’—E»ï—f«KútgÆS)%';†Uí •2"-kcýck—yuæ¢XA™Î?+°ROå%.–•gzöõ[Ã<Á»´ÑŒcÔ@-“cÌÊî7ío]‚ UÿÅÈæ…ö+Ê-vz9H à 8Ù-¡+ñéÚYgL°V#bZVfY)Æ_&î–>WÜ›óg¥MQXr|Çt‡Ø4P×7q¾X:Àl︎„ÈïZ*Täs9Ôª·Fµû¢™$ö=lB+IÌ‚X}„S,[þn-ôP”ˆ¡Yf㥊¬gq 6Ap¾=ŽûRíšIAUãWEgû :ÐMÑ(qÁà€$›1í¾í½U’¨{÷vó‡FÞÁï/ÚxØ2%¼»ŸÐê“„`>…·+$嫤þ'xVWïœb«'Çø‰K†O[r%¢Z $> stream xœÍ\Ís¹•¿íA§Ý{j«oi¦FÆ70·‰³“dk¦âŒ]»O´DKœiŠ’¶Çùë÷÷ðÑ  ›²-i«¦tùø¼÷ð¾î_š¾cMOñÿÕî¢on.~¹`ÚÄW»æO//þøƒÕ€t®w¬yùæ" a g®½hŒ2ªy¹»xÕþÏÊòÎY!Úõ°Y]ö]¯,³Ú¶w+n»^3Óž¶w«K!€¦EûreE×÷BµûÕ%a0iÚë†õ®Ýö~dÏDûþ«8йö¹‡ 'Úb™Sñí@øø²ýv;ü+ÿi·?V¨ÿ|ùßàUËœWÑóN;~_^_´Ü¬^þD8&ǹ”’5—BuVkB{Õ¾8mÞ®.¥#Jy+¾ë8µ–Q}¹ð°È«öåmÆ>h”Üá+/¤²>­ãŒ·X‹c 4k÷Û fà ‰#aXÀÚõ!Í#Чyû0Ö×þT.;‰æ*|QNÚZÀ×q ÙîïÒGÙžnÏL¸çÚúdM'¹Œ2þ9Џîzé% ]Q‚¶»JϦŸŽÛý].´! Ÿï²^gŸ¹xÖu͵æfÜ ]cå‹ÜÍX£'Q½^AäPÝöc¢Ç,‰,Œ[™Ãg&îÙ¥²sÆ4—Lt ºD—de$Œo{S| º#Aáû`r\&|¯»I—Óþ ÆÊŸö‡C1îHªá$z¯'ôƒ´Fœ«4y¯ûÞòö3ë(™}üÌfBò‹KÝëÃM¡ÇÓjQn¼ï;©î•£YF[,fÝÞ,x4iá—VJA»ÞeªW’“¸—{CŸ¡š¸!†¹5ŠynÛ°[ŸÛ_“;*\ ãî(ÚAûo~nX6½G¡9z'±í1„K˜·KœªNËx“!¾j»Õ¥Rä·ìÌyúŒl‡è©3l®Odo=Y™E¶ÓÄØ¥®ÓÂEí´6¬~¬æ›ysÉ…7_£ä S¦4jq¤˜û9h •,ú¹ýœzÏýE¬%/Ä},Ö6¥Xö»œ’Üï,¯mÈ‘ŽÛ\Ž7Is—ønAöXÓ‹öÃ*¸­\‡o½Ú*§Î,Ï]ûý³?ûéÚ0Uï¬#îI~¿WŒè-©êþ€ ,¥&wQoy˜Pòû½Û蟾»xù‡ÿE € *ã“Q©Ìö8eÇb‚ éOFê¿÷Hj>n ÌázJqf^ Ž+@'_ŸÑ ¸¯H/µ¸P…BɶE@a|®Š>Þ+­ÚýÙPÅÌ࣎ÝèIEÃFÂ9’'5`È{⦽x{»9l¯VHe©©@ÿ¢Ú· û ôù¯Æ¿ÅB{Òügg@ÙæŽÒ…¼ïÇöÅóg?®34ŽQ.Òñ²ò¾¬×:Åë_ÈNÂ~ùöqÄ·oƒb^ûÊøø‰m( ¥¸AdövÙ­©j£+Ë®Õ,ĨC& ï)ÖÇİl—/ã2þP®‘;x¬ý‰g^Q¾Õé£ßÂÿzyñ‹P~¨æp¾ì¨s,;$ãc²Ñd‰‚…²ã»˜Ç:]Ǥ D]ƒ;˜ç¢F!‘u>nŒþĶQ>â`3'¾»œ/fÀ1_Sd @Ã)B?R0Na#Ši|Z6ñ—Ψ˜éŒ²%¥+šÙ¥ö?•ñÛ+²5ýST¶»Â _˜*>®¼²ÐÑ¾É uHó(À)þ(¥{]øÊ<,½ÿ¶H5½1ú0Åæ1ÜÿÀªøµ>·ð—Ò—´ržÑ(Õn¯ÏðzZr{L«¨ÑF¶¦Ú­Œ4o2;Ývq€«ÜͰ>·EØT>t<÷" áûÙ7Ó–ø$>Ë…àäyrµˆ¾Z-DêܧΠÉ/N°„O~ˆ:ß)@äåÓ« Rþ£<»ý[2WŸ©O:ü(æâmµpi«§bd–Fª_¥õ§-Ò€M^#•˜Âç>ÿ±s)•z–š-/Rd©,}ëx ™‹†Eª Wph÷iaI âO‰ÝnЊE>Ì’AyB³dO-¦zðÍ÷ìTÇâÕ²°dAeÙxD"ö:xo‚M@Ç~l…bÖqáqŽ˜“½j0yÇ­êOÁ@z†`[ ÝPݧ=µžCYu&×í·++It{XCûîâ/(·¼¯DXÂv(ÐKªáí±€ñõÆœ$¸µàB_Õ‰Âä¾$Q‰£“`P}xGJ+0YþõT([[¶…†±fù˜8R1ÖD_}<…¨~É•ñ‚(CÛ7C»Þe*‡šê’;Š‘¢èÿìO—^z»•ÏOd½®¥lñBû’,WŸxRÃ)Õ¬5cýÇ„"Û›T.pQž; Øàgæeë³v1Ë,¤£ˆø·7W'ëà ¤ ÆF2Êà‰FܪÖi7Q^*¶i.¹Ð=%9êYª—¤¤cc$|.Üø¶ÿšs;vºGÜàPµïIV5w ©ÇÝ)åa!ë;îÉgHêe Äýy[÷— çÛñsj«Ì³ªbýT=¯;Cèt)‰‚œúYÊz‡5löÊÄtè°y:XŒI‰Ú*ûu]ôý†lü¬sGpäßóç¯Âl}/æÍ4ü}½ ø» éE6öyöùYõÛ(o×9¥ÕÛs;Äd¼9}X¥~pHUCÚn ÜÓz<í¿ùؘ Æ@¶Ð—> м…½~öÍ|_Õ¡NŠX($ÂçÒÈOïBå;ª3K«S yDOSŸX䯧H޲.N4íØïœ'"€?°¸¯(ÆÖÛß_ÿ´ <Ž¢Ã7Œúv·_‘ß³ çzãKSçKÓ7¾´Áö° }>ôú]h5õ>P<U«óîk}wÆ#ƒ&ë6Ç{Z‚â\OP–#e y“QŸ[²ÆÁ>»Ôyc¥­4øÁ‘Õm—³Ã ²µ^r™ŠËc?ÑwÚ¤ãŸgNJ5ÜUê`É´Ÿ7ê#*ˆø9ó;&œ |"{;9EÊååEº?s†ÓTõîØ|ž|1ó~~m?Ù lÖ  jÛ'¥£®˜PuWì.óz¡«Û¹ì³Ûc…Pi,åB©†a?&ÂÆ~ñBØW’މ¾¨KÕÿ‚¥Ed‘‹•…Ãa}ˆ™ JÅÛìäÛÏ ÿu³}¿J­ÛJ£šû³a?ð✵•ý"ù‚DŸ³þ ?í¸ yò#’däys:ŸïÕ¼Â&–E uE]šï’ïcdº‚à§DV»­¤ã}.Tªî·Û›ºµõñBeŒš‚–tÖ õ1ýj†MR‚åóùmÍCY1kàúÒR墧úT%B §|E4ðÜ4ÄU\!à¢mtÓϯÖKޤÂõØä¨«ËH¡†¡šdv‘€h†Çñ'KúÞ¨¿W’D›ø»f‹†ëKr1Keé´él<;lßoóû57a 4Šî.DO†èd¥Ä êw¦ÞÔaBWGˆQ%ÿøCzs„Y¨3 ¦‘’nw˜†Ûžu¦9lšÿmî =ôååÒôjaA½&ÔÚz2Ø5Æô øoþ0bIEÛ<"ÉN æ »­iy‚ Ý|6Òüð—zøîBÈ^vl s@5d¸¸½x1…e(á'b¡XÐÐHGXöÔN4¦3GÑÂ$ ôàJöaÁ2£"{ù.ÈÌÁ¡MâPRv”ƒ•2ƒ¶ ôeĵp®³r„ `é3ˆU‹ÄJKbn„–Ú{¼Ýø±ýqÕ|ݼßo¯‰páø#k&}Êÿ=`þßívëÃÇ}¾‘ý°¹Þ^¥ñ>ÀïωÇA<Ó$ È­k•F—âI§òÎÄÐuµ¹;mÄéæê»¯Ä3ì××Û»›cÎX»ÙÞlîÞ¯‡w›ã4„tµ?lŽ3dÖÄ;PäP—X8eX“#ëë/&A ÍèT´½TWë)û"S…: 5b äÞÜŽX¥ñÕX» ©8Ü”!äÌl„òtñqÅ/63³´5äh84–ÎQ “™=‹çz3kˤDz4Q£I æŸ®»Yçù‡Ìµ!Q'¡±ðn¾”IUÑÍa‰ŒvºõÖ8Æ!fr5ªJUúÀ™¢Kr GŒì¸i4”XQ£•ÙΊ´Ó KPÏžH¥:TH» ¬ŠdN$À°(‡D›€”åÃ7¦Õ¼*hñXš–˜]#=î¡$žûÝQ>’wÐÃD ´©“RU¬sgéî¯ç*£FÀ£ü b*3ÜZ:ôßlNÏöïKŸ} Ýp&ß”ç‡+TXkØ‚¿™ß G~:Êš©TÍvñœOì%ÀS°'zÃnógÐ{÷nç¯:¥-É4E5¶…:ƒaJWzÍèÜ–Êœ1ÐÒÆZºU£+½NX\:hƒ±JÅ®±À>³HÄí õ¨ Ü#ÔßwqãŠ_¬Ü‹~ŽQÍ©I;á3z‘”û¯ï^o Ê= ÞióHLáæF’™¿hçÙG´DÈIÇl?õZ ‡`û5¼r’'/÷)@Šéø$O%‘c^”I«,DÈ“°€À‰xÖÃÛÛu©Å¹qþòn}—ýšÌrRZÊÛÁŒî„<£áÉÏ£˜D²ÍCw®é„©§âLU1 þ `=b-Gò„…HFþQÊ2,@êQe$çȯá"Ò‚OÈUœÒ:)“²üå2Ïå IãH <¹¶5çþ4ÎyÇøyŠNéÝâÊèTû~ê‘*Â'9r.;ËgäÓ!³9ùò$äCµ îd·9Ýî¯AùÕí<²ÛZ·wë_·§¹rOÛ¡ŠBƒâË(h«êlP‹L·QlQ3ºA*QOÚÞRÒÜ(xR ¼'¤¤~ «Tíkw¡8Ê;c3µCêQAµGhPí´àÓ¨65SœÐµn??ìškG& :ŸHÉu{$·§ÓÊÈžÚYK‚½KYén‚L”V ß7c̳e<ýˆ"0, sê4ZM×GH©ð'ZitDHQ†ÌâÑ“„cD†”ÞRC’Z¦|Â2Šþ/cÙSjC!De=œш®¶Ø ɰñ>NÁŽ}i¸€ŒäÖ¯}/Òb$ò:V“ ÄHø5p›­3G–ôRòÞ÷!M}m!|Ë©¼3ôZTŽ@…'‚lS[;!Å‘ªS ‰‚.²tä"Scw©GE%HÐØü >M&Æ5¬FÍz¿ßí¯Öwþ‘ÌùÙÆ$$›“C=£kþÇÖ)¸¥÷ÙêO¡ õŒF¶v$ó%è·à,ÂÝ1îŽ}ÑåC¶tã‰Iº°àÂåÃ…û“ᮾkÝ×ôP=]ÃÛ¿Ç«èÜ™û^ÃEÀ3&Â# Ò?±¾KÏ(}ï=ôðÜÁüº­ùä»HÂ;Ôžç7—^‚~™ÞE"Ûgã½jIë΋/¦™|S?›?¾Æ¿†1H`‚Åg9I¡±'ôv6ÇE¼Ôšˆ OÐg—H¥ÃƒÔåÛªÂ/š}ê!#ÂrêÁ/ ¡ñô¸÷ÝI_|iH¢dáʼnIõ‹ýÝêÒ2ãoþí”fÊŸÜ ÏS $Píï&èYªÓ³‡£èY,-kaìü çh]©Úã°?—^QP\½§ëÏ”¤OÏ,OÏ„ôþký3bþ]óvá…f¤ÆÖÜûB³âé¿6½Œ¯Xäü?Çc¸ëüÚl=¡Å”9Uõ¸Qº\ü~›¿Io¶#}ÿ°ç6Ò‹À¼°Yñ˜uÎÒìÉçü&ÜTYœ»ìM…6k~†xªK§ÛÂÿ¸ø?x·endstream endobj 711 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 359 >> stream xœ\£þArial-BoldOblique‹tù­ùy‹ ‹ ­÷ÎÑÊÅoCvP$WcÊí÷ªø÷t÷÷ð÷Ý÷#÷ž÷#ø1ø¹$‹1_P<[Ll'‹5ûà=÷÷âµÜȺʫï‹á÷7×ûuûȲ]DZ}VsalS]lW‹Od¸Ò÷×ôåùft÷ø÷ö÷)ù©øvާŒ–‹–÷"àû/û V&:D3_û‹ûû4ó)÷?÷J÷ð÷?·û#n/DW+‹*YÁôÝ¥ã¸ÑºÕɮۋÀ‹´x i˜wx‹døÀ‹ŸøˆŸ÷ò÷Áø°û(ûXümøû(Õü°t¢ø°Ÿ÷=Ÿ[¢÷ ÷% ‹ ‹ ‹ ‹÷ ‹ *Jš"endstream endobj 712 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2611 >> stream xœUV TSW}Ï÷AIŸHm°”¿ãAËG> ‚ ~PDä#ED°b©Z?\”Ñ‘–A%‚@[E,hå§Ö: Ð"j‚& i댴8s^Ökæ¦6+kÝû²Þ¹ÙgŸ½Ï¹4e2‰¢išy/39.Õ¸›‰pºþ˜>WŒ$"$1¹ðÖä(KX!lkxbRDrdJjš»ÍbGgŠ £QáÔlj%AERöÔ**ŠZM­¡ÖR¾Ô:ÊŠ¦ü)g*€ZN¹R”DSTåI)¨Pj%¥hj&eJ™Q”=I™€½TíH¤Nzs’ϤÚI‘\ä+Úišx›™ô‹mÅkÄu ÃÄ1§˜'l2[ËMå<¸&î9÷Útƒi‹i»©ÚŒ7S˜Å@¹ÐŠ”BD_’Ò²wÀgŽ©­¤_õ å¼ô Cù4²Ò¾wô>íjÜ¢áÿ¨VÒ1×{]šoŒLú•–5×» ¥>@I 33 ÄXÄàp܀àAŒÅ Ä€?5˜‰ì7À-Xo‰eÈ?g NôE ´jDpN¸Èc{w[ìýµ¶àö#¯`{Žáwä…>ü>x:¶Xéíâ1R°¼5¨“›ë·f©„*úºN¤Ÿ' ><]±'rDKR£Â‚ýí6CXR?»Ç¿cå÷?"XŽ^þt¢¸w˜ýë>NÞ“žšì8<Ç80-°0ëN{îöZyufiê§QŠÓ•à7(Ì´l3ÒtSc%}цÓù!¨b®D5ïèF̼À>LÂr¹ô•?ŠH‰åú°°[Á?ÿf1ž†'¯Xì*—¾ðXù,Àâö#­ü÷‡ÓUhQ‹„ýädýî÷ØøöðÚå›Ì ‹±/öyj ²¾U·与Åsõ^üð-/l‰%+½<\V<s˜rWõ\nOIUs”•–=®•´§ÇXһƒžcQYó嚪²sÇorOXiýѼ…ù3£Ðæ”õÞœ´çGÖ\¤„Nä©èÞ‡'<Œªð(ä 6*CÞë4©ßá‰ú]ÓÀ>HÌù‚_oã)¯ùżEñ05M>˜s;¯"%XGGoóݘPr6[¶·ô“ÒƒõœS„§t¯„· w3†:Gc›ìÎɽÊO¥ŸEõÖ×›êºï_L_uTfuY}¼nú‰Z'H&óaöB<Û?ð;ƒ ³úbZ§RyôÏçe½lþá½".ñãâz9৬Qc}B´Ò²S EêeýVR=]:*”/Ä7X›ÈÏà¸Ë÷d»ÐàÀzvFþ,“êPsusçK‚“HÃ¥é#”‹ße°ƒÁÛÞd C¹˜ÈoâáætpÅÎà4[pÏaì N6dã€yófTpù—ÁE<Éu€nÔ@ )õçÍü¾#‡ÐAÄ¥XZ%‡»¬.ðæ—*vÆ'Évd|œvd 7ÄœøÛ¥šAÄõ7n_'ßÉ¢¤ì=Áû±ÙžÜC){Wd¦n@œSWØ¿ºZ+ÚîÈŽ¯®ÚцN£’£Õ'8<y´}ÿî̬äÔÍF#.$¡®µ½þüp‰\ûÙ™¢ó%Üÿó¼ •<øÃqc¦–8[B„؉?\ŒC±Rü#ÖV8FübܾFÉ‚’nSC‹FÔ¦Oã_§õßg/¯hMï#5•€|Ágþ+,ó[›/‡æâr^7á…ÐÅ®0Âaœ®Ò¿AØœAjŒçœð›„Aw ) ÷nÍÉKBÖ¡¼£¹EÜ2öô¾Ó‡Î¢jTsò쩪²Ò³§!Oo>ã7]ÖQ¦À(èfþ»j›5¾D™³\° q’÷ˆ ØÂ´‡ýðF±|“·`Sœ?â\VõÃT°j|Ö{e³o1i/&º[¿V8¡ IÓ!N±´ú4̳8éµNÕ[ˆ1I\+[ þ=3¿ú™P³W2I­‘爷Ü1½p€Ó0ëûÕWå˰x·Ç?OÃS~ó³ùÝÇÏä㽂ºÁs€Ša/}r}OCòS¯GrÜÜwINËð²g³À$ên`ÊINYË7$¡Õhcåö+»jÔ´pG»ù/îÜBœê^àü#èHÁ’cÙD ½¤Ju"ÁZŸËãl‹qβÂVíÃêwäï_1‚É|„åð.Þ&[dî?c V`[²8c;@‘Å™´¡:¢,{f­%Öý””ÕSÅ\Pž¹tâ*(“õ°9Eù…»ç»LîØkØ 6h&Æ 4ªà¤Š~¦ƒá"PÀ·<ä2·ÐÕÓ ®\.»†îsðöâ<[†ÛŒ I˜i'a5;ܺÞËkõz÷‰ÎÚ ÓÆÕP£æ‘àJ ,eã¾][Dˆ³vÃö™_дNÞÛñA;êB_Ÿ¿ÖÅe°Èߦìô©›r×¢”\œu&§tÿ_ÖqbN: „ƒD÷Ï}Ùxùzi NaqN(?Òº[áiQK=\WO©ŽÁaù¯CÖ¨ˆ^5™±¢Þq¯¨É|5N×êê}{”²ÊÝÅ™h+71eµŠö9ïmÌz?Zµìx›k*(RÑ:`BØX÷y8À¨ë·¸É BÐÆ¿Ä–¤Yƒ¸‚Iªã ÀÎQ—:=áî×"Ê”Cðúç;·¢kŸ½%ugú®˜üp´E•%5f|þх«¤ý•ÄÖl¹8”"¤Aß)¯]ln¨ëD÷ÐHd—C5~¿y†GeÊyÔÁ=èlþp« eãíÊèÉÛDQ³ŒÆ2¹‰yüp½øoƒŸÈÛ08gŠÇÓ2t‰À‰,xfÌäÁ.>Ư•´iüîsÁ8(U¬´ÿïíw»¿½$ï?ï^Œ6> o³?Dµ8Äe‡GËR;â*QŠù`£‚“6=0N¤‰]ˆ„cÞ`Êœ¼ýy½ææË¶ÿl»ÙGò½³£=îRÜ¥5g‚ J‰ËLÈ=âÇi™c××|VQÑôuU+â}±4rÛzE¢Üe vX°)h?vµRâ.£ÁÆ gŒ†Ic"Ø6ÆÛÙ1B¹‰q!wý:%Ý÷Xù$i{l¥À!»!ì~‡¼ÄV\;ãvѰ'fðÖ‚-÷¿0ð{,Òá$þ%X݃nÜbVÜ*F‹íšIÁÉ5 {Dcol #Hh A9Â<«B(WB¨RQÁ š=™Œ$¦Hb†$“Ñ D‚žH¦ ‰å²ªÇÜendstream endobj 713 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1891 >> stream xœUU PTWýŸ¦ÿÿBƒBódìß  %N\£qT¤›MЈ ’€,ʢ؄b‰…¤qÅÖFC@Y\`‚Èbé &ÁšL2.3… .÷÷¼žå5¤RɯzUÿ½º÷Ý{ι÷>š²´ hš¶^•ž“<×'-9μuA8ÍØgÔJ‘L‚d–W~ÇM³{»o'wM¡ÌŸcjÚêôš]1Ÿkcƒã¶¬MXŸº-9…¢ÖR먙T(µÚHm¢Â(j5AùRÞ”ŠRSó(j>H- ÖPÁTåD‚S–”UB½ ? /ÐO-\-Ôƒ/ÉÉ-Éÿ,Ã-oH=¤'fÓÌ„BcR|8ù¼wc§,à-XÐmÄaÁ(-øÀÌÄî$ìôEj,I8ž\!TgUtdò0§¦¼ò<´‹Û—˜ZZ®Uäßs|Ï9bÍÆV†%è/èv¥¡ÑÐxêêDC‰-¾5XÕîWžÕrçu×û/ìŒ(VØÂšwðîýx‚ÞÓürpÇJì®öÄcµÄD:£JGß/ÒÅ^Hûxp4õIÁ‹^쓚úÀ˘‚3Xì`ÆNâ°k^Ìoé:÷3]¢çTP{%.g»6×û“ÌxO</ö©]u)LЇÝKº‡úQk}S'‡­Dþ~«z¦g¤ŸJ9øâeÛÐ8[š÷àö &¿§ÅÈà‹ËQ *E]…7r/'Œ.èoåç`K€W=w…¹`3:ø®AÀ &;:.=Å¢mU™çsu{Ohç>ãËFšš¿!|6fëÒ*2dŠ'È«5à –aa Ø=vqšQË»£ÅIÁþªxwDÂ`Z?³OÝë7²õ zƒF.ôôö_y‡Æ0ñ¯‡‚—6º!®;ð0ùÑ,üö\êeØfÙ+’ÔÜï^ A8õo'˜2ë¹à,ç:XÂÆÜ:LÀ8|€íð2üÉØœ{/Www>l`ÄgªM‰µÍy ìÎÇT¦^J¹–Ø“ý˜”àâç@.ˆ7Y|SüP‡Ï,ÏpŸ€¨þÑ×_ß0OB¤ƒZ°ƒõ`G^`0k› WyXÉôݲåå EYH‹òßá]Õ‰,<Ãh* N Æ}°mß1oÃHcs7ú ÝÉìL¼´õbT%IÔä2.½ø‘%¹9€½†Nî;™s2§,%¡Äü´ìœÝ_dîFœ-4Îÿžï7Ï›XsÑ+ͳ’1¦X’Ú°#¶Æ5 #Ëè˜]0S"¾ó¨?ç«CD×Òs„Z¼Úãc솥·7Àì4áuæË,}Zç?Ï}ýµG{dr—áyïA¡eH~„ÙÀ~Úƒ]N ˜©UÖ$× Nç›×›†ÿÙ»ªD1>’ÌßmÎ+óâ ¬4÷7¨Ø[Ha ƒÿ?Áˆ–âùÌ8³Ë2&ÛÛüòöõ€€rÉʉå(oêùÕØï’¡§õÜöh6Ÿüf/Ú³oƒ¾Á”_äÎÐÅŽöçHÓÈç£ØŒ¨ \?k«©õ:X®‹¬cÀÊ \­‘l’Y!™5+™ «ÌÉìÿìƒendstream endobj 714 0 obj << /Filter /FlateDecode /Length 3676 >> stream xœ­[ÍrÜÆ¾ï+ä²eŒu™æ3ª(‡¸’TRNÙ–XÉAòä.IØX.…()OÇÎ×3`ÀRÅÒdoÏLÿ÷×3«ß×EÎÖý ?/÷«b}½ú}Åu~\î×9_ýñ•Ñ ä¶°l}~µòKØš3›‹B¬KUæV¨õù~õ&û÷ÆðÜ!²ªÙmΊ¼P†m²Û 7y¡Y™uõíæL°i‘oŒÈ‹B¨ì°9#&Ël»¡u¢d…ÍíÁ­,˜Èî¿ ­Í~rTaE–Ó%µÄ/À/³¿ÕÍãö‡ã„õ—óBW-c]EÁsmKè{¾]eÌnÎ]ýõ|õ3™fëë#lf`-iËK±–²°PÍeirÅÖínýŸõ-LFÿÚ때„^+«unÔšq«ó¢\ëRä¼,Á¿ºúvàÒZÂCbà’9/JXÜsAVMլ߯¼Ï^ý}¶|¿â $ÁJ³@™®jV7«×#Uqž’0Væ†Ë ‰?¹=@’Ùu™«RÊ8€¨d{˼T.€²ï÷ßn»öÐüër;X{Á~%~Ñ£<ÂäF‹©ýyƒ;ð2gl 4PíÓRs¶ µ‘¹€Öº J'u»;võ¾êvo³mÕUëkú‘_µÕ~÷vƒ?¡ÖƒúhÆdâéQ«íTÅ 26RÇžCÉq>sÚTÍÝ épûn¿këK’Úæ+ùúü‡Uv{¬öwÑÇ߬²ãn·å~wÙZ"¼;îòËCÛ‚PnñQs¸®/«Ÿ9Dy€Cʉ¢@ Ê\Cz¿­Ä HgÕZ›ÂäY#Kž›µ*$ŒÄ‚‘z¦R0‘KÖ3¥93eÚ¯„BF”f2]åSc 2«reûŸ%5`möFÖFNRcG£…ì©Yd••É*((½ò ©7P¾ x#(xÐhH®¯ïŽÝYÌ|Îø|æMf‘‹&R¨§<ƒB%*†„{I¡®­.wQ4O2£;4¯Íý.I§VÁHIÚ”èua›3=‹wf‘ |ìBy9í=×Ð%×$â'\d#©rÕùaº&Ä{O ­ ÷LñEÉ>Ë­`·!ƒ•B/èJzÁ õÐ  .¼}Ž^À9ö†ƒ>»<¨ÐÐ z‡&Í`tChƒ>_Ü u¢fОnU;i»»#©{xw쇿÷Õ‡ºÛÑõm·»ÞµC:ŒÊ?üØt¢üsã*¹1,Gô G28xmšÁàfÏ£JasÍžI.¤Ldº’be 4 ”É¢ ¨9`ß(Òóä ž1èøYÓÚÿãõo ‘3XHåbGp‰"£'Ús*h>pJIÍ¢§|QäØ\Áбœ#÷›A›8ªöíáâmæÆHº_ .š@Ø&æNï6ø %=2A <‡ µlgÛý'òçb×UEʃtyS¡Ót.a²ãýœè³¨÷z©)y1]Œc6]8%GWK.k Ôf•ðÁ?r£A8à°&…]é‡Ä®ð"* WWFŠkÉOYèûÝ$£zO‰$œÒÀ%0 *ÞŸ#öh˜N{ÒB'T®¢VÙŒV¤F3¨8§$¢Ohû¿D¦ æKmú”…IMêS?ÑÅ‚MiÄ¥¨ê`7PF I‰@ûS^K/ØÓzÁ`0Ì)c-å†^‰º2õ=—V~„ L8 xU.3¹œ-rÄ} 4sÂdI*’–€õ§=SFò£¨kIÅTL ðëE <ØÈ¢¸†J@ý 6U®‘ûbîäå‹jÐZ¢²2W†=º?¬Ó±;\¹Á}¤O <ƒ>Z8ô}ðb{÷%8ÛﺛÃv ”DA®(7(š@ûYø.eèhÂ…Œó°mdïgظ„ò ú(ÔcëLjɅkŸ¯T›~pS64N‰îÝíni6w~ªxà×ßÔ>Ö€´€0c  ¥]ûˆƒÜSN­ôC—’†ù¤·+j’SPð„…”:þÅÆø›e‡¤/?½C0F2 .5Cåàþ•ëoõõ»èªÝùw¦BÙL½ØœIIRòìÇ‹ÍÌg1§e¿Òc“UJ:Ûa­èç&»ôoP¦4Yž«ŒÍöôVâW©’ç°äͪéŸÃ²ÃUøU`—›”_é$»Œ—ü{œâà§e/?ã)WSÓW²cÏ(³«ä‘®hËUѱ•Ž]/.ÏšðÚ7ZÀï_ÑsAÿ:¨²ê6Z¿ gh–ý"Íá‘‹^ýœYRÙ]Q ýÇ=óðêÇé )zöƒÏœ}†æÀèîw»ÊþGy7‹JWd¾{|Ó›^îFáO–Ý9çk.xVµä|+Ë’e¨G‰û“¿Ú£_oÍ$J*2æ*ì‘]ø(IÜiôvÄqÚ¨àÔÛ°VMŒSëæc8в¬;áÙÄ ‡it¥fwËE¶ßTVê$š®¾ß(ÈXp ;ÔU× ­x¶OŸqãSN¼ Óc0é±"»—ÃÈT¾¨¢±4½àˆ¥|lQtÀÇ%6:ÿöMbݶŽm“Drx¬ s¦®<@"ç@”û,æ<#ÛíðÖÝQPг|”ø¥j>ëáC‘]$1v¢5>ˆKe.Õ\oƒ?VK …;›q•¥¾;©ø.¨*áÓªkë!ŨŸŽ‰ƒq’´ö‰“ýtY¡'ÓßR’¹ùT•}’½ÍÒî,EöúTl&õ"­$ët®`Ä} g/·À…Üð+èÇ_r = øâ¡¯VœØ€®$TíèmsF_0Àg.,aTg“YZ;·vÕo..É"à®Ð–¼í~eÓ€ mAØÐ2ì* Ò­ìA+‡0ëh±/ïãôÖp=iwäÄÁïë ƒ8¢Db6lTZß¼ð&m*ÓêæVrë*˜WQ.µ~;9O~Ú¡x¨íë6®ã©åbêÀzHõɬqò”ñ}ð_F!«¾ì¤njÛ¤@4Ó¾†`9šN! óÍ™R0q!³PÚkræ\y¡-”iwoЮ]!\Þ'%ï:¬`Ÿ.µÚ}ýÇÕZQL5$X`­ñ‘ëŠÏ<¿–gIib‡.kÁìa\0$Õ¼­&Ý*íƒÇÍBÛ¸ŠŠû¡G(¦DÉò¨FÈ´æhų"—ß×MøŒ˜´~e’¥&m±ªnš*î\øz޲¸ËÉÓ­Þ/pæ^*îŒî·˜|lq—̾¸®ŽUÓ,ª¥È\P`Y×)ÃÉæ•mÈÈ1Å“3»5ªX•3.»Ô9Ã(mqŽWéÕŸ‘z\:…¾þzžÙ“χßÃäÝÔ·×DT®w7»ž"FAâhÔÓïèïcXô÷fè?®Æ.×IÁ¿bôƒ—šË¢ˆÄ1%OvÙŸÎbUâ[¿·áúèåWõû]}}Ó}…ØXÚ´›‹ßòßÅ¢ßçáÀ—ágØa†3´›‘¿Gœ¼ÀH;IÊ~ÿã‘/ûSxz*ƶèÔÑ!/g ’ ¦è®(œôº«n·U»Úîîkç»ã‹%“¿a¿ŒŽf9šãb\ÍrÁ-TO‘½£Š”˱ìã~3wKXº<ãÔ°=¨8=ðç‰G2z‚L› ‘ô‰týf…j?ÃyÖVmÀ¢µì•} [bN¤×m†YË&e>ÑQüô,ã ™BSÅñÝТë½>pˆÃi©“Æ3)¯i[ô’Ë„^ÿ!©=í¤ô:¥ åVÐhàPq’YöØgÐk'u:X»êxXA}B ‡$¥–ÊÏ1Ì]§­pO+´K¸Ú+'ß“–z56œ¬ `†ôÀ‰ô@®Ÿ“Y‰C:,‘öŠ{°OFØêz hsŠÛ^õ‡jáÃ’¶GŸ…%ñÐl{ »÷üV÷CÚÚ¡E]ðõu> stream xœ=“ PTeÇïÝ·° ²\yX{ä­ *BV ËSC… M‚•‡£c b’ú¡""8° ˜†«¢(s´yMV8™¥Xƒ^çîjúVfº3ßÌýîwÎ=ÿß9ÿe$"†eYóÀ[Ó=ƒ²Ò“M[{‚™Æ*c®”(ÅD)¹ô†ô «ñ¹ƒ³;ç0¦gNfÖÊ;uÙIQÉŸ®IÙ–Î0k˜hƉ‰aÖ1ë™X&˜ñb´LãÍ„1¾Ì*&Š™KË0&”)až³ ÙóìS‘R´ItR4.ŽwI–H$Ã’)h°€è/0ÏÔ[uƒ>ªµ[0pÓº’«†î¶~Ów§~k¤Ñ/ÿÊÁ<¼åAñÛ×$©U~äô:Âs²M4 4bè®r¸ÜYÔbÈKdÀüÆ€…@ˆt›Â|1J¹¡!.±Ú÷ß‹kø‰·4¦èÀJ(kö xˆï Ù\Qw~szKÌý·Z% ü­Ñ 0TèJņƒÅ”ñè"+ôŠÞàEC¡ÏÀ– þ f—sÓÎò•9Çv•%+,;Jjü ©Êð?e³\=ÜÒ2|òøÁýÕjp”ï-."_’H“˜¤PyORÆNˆ`DlMXG…C‚ˆ;2Ÿ~t¦eß\‚âÔòôêl¾zWUaGÄÚ6TÏ[“s"R3K+rÕ»Ë÷•ï;G£eGÐì÷(ð#?’[•ÍͧoN2Ö\ƒÚvÛäŠ=ÇH­¢¾Q½÷üÎøbµ%<ÒMÂäûp¦½g¸àŒtñêÇßdK[Ÿ6Ô>V§•~`ïÁ=D‘RXÞÆÃ5Ó|:)ø~= có`µ`¢› Ùig ¼éÖN¤¯g†øµ ®žp{ÀÖçgœOá–x:à* Y¾`óäWàNðh/ËÕfm_OÁ›ïN´o«jä+ë*›É-òÕöÊ`…¥ñ>ѵzöxPƒyˆ!]èáÀfºG 2à„étx30[ŽÖÓCh+ IQ÷O=}m©Yð„._={Žv¼À$Ê}hh¼+di]Õ…Qeœ;ÎÁeAµbyCì½-÷H/¹V×Ô©@3Á‚¼â䞪Õ&ô?Ñ60À›0§ÀqfO±B dsŤ„”’®½7ò/¦ŽúÞ~í²Å‹P‚áøÌ<Áb´²Gµ,osòŽ8’D¶UåÔçë‹NhWáʆ›Z¾'M¤1OŸu"çhöáJ^­k¡„ú¸™²»PvÁÞ˜Ë9“e[¢Â"´)΄–AÖàÔÒ:¼uœŒ“áóÝ}ݽ—&ÉYÊ«ˆÈ~ÿFG¢(Fkf?pÅ·ÑÝß•hð’Šòüå%XPÀÌ?'f:ešäƒXXD}í'O¼»ñl…±^ˆs1ßyŒ°ë¾X}»ƒ’GÄoÒnH«m)P£³¬8±2óBÆå´;y‰–=ûT¼pSŽG‘á:‚\Ýã‚Â7ö޾º:ØG/éb(iï”l+,€.p ãÂŽôî¾’Úß厪ƕ.ËÑ¥·Ö[ÿ*çÅ.C‰¶[“âíüÁåEjz_ËÐ{j)¬¦£AüÜ@¾öÎ?ã¬VS“^C:ín^oú«3)°DýÚÂ&/Ý6¹?rÂÔP«h@+ÿö;à°P ~2üþ€U°YŠ>2Kh˜Ié5¥$3¸™™¥î”`Ðà }Â)˜™ƒ9QÎ"J3¢4'`¦TpPZ¥ÕnrÐ~endstream endobj 716 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2186 >> stream xœUV PWívfº[A™mGÊdÁøù¬¨€ÊG>@@ŒQPPf$ˆˆßø‹Jd—„eWùKŒ uuT>Ñ5.$È2*ƒÎ¨™(»šàæöÔÃÚ}Im¶««Þ뮾¯Î¹÷Üs›¦¤£(𦙥YéɶÝd„µÖãÖ2$— ¹ôÜ;£×:À´ }öúñ”í´[ƒ2³¶eoÏIÎ]¿!2%5z㦴Øô¸-§…®ns)*šZNM¥b¨8jO­¤Þ§©ÕTLÍ¥B¨e”J…Qá”AySj*’Š¢hj25šCÙSN%%çQ¯h5]@Ã(QšQŸJœ%«$u’Ÿ¥³¤û¤d>²­2‘ñetL Âæ°ìKö_Ün)—ËåAØ„tblwšÎ¡«7 Ž•НºÄ2^qv¨¬YE÷Ï­]OÚ7¨Uø?Fщ5E´N÷_­ LT)¾2³$>»WœÝK×› É$J±žÇ3Æß}nl/(ÀákƒE°³nÌîúèk‰u¦ˆx-x»°7rC~ñÑáA›\ƒ°¼ajgpkÌw™/,C¯^ž†xnshõô=ZMtdº?âð4wà ¢ÍÀ”Û-;·žª³J3>‹çT¬ÕAAœiph¶‘½aR*š±–ï‡*ær¼~[â`òS aûÀ(,Š7Á(vKJ$÷ €…]jþû¿-ÄðØ¨…‚bÀ+æ!؃ý­‡fÁž<æêŽè:ÉÑJEg§-‰wlI¬dQÏ)ýÅÚªS•'npYEñ½‡ öOŽGë·|àÏ):_<~2’Ç«&8h’ˆ¢ŸÿSè-<Žp²óSÏ\Иã5‚!÷ÖÞò”꘰9pmjÉéÕ¾ÒK4p^L!×ï“úÛ^’.¹T ‹N…þY{58^»T×q¯^»â˜Ê겻řôc£ŠJ˜ê‹§‡~;äĬ¬×´étÇ>­Qu±û?Ù—¿q›7€Ÿ ׺[LÐ9´¡Ð¸¤G©°ˆ9¯Å2_|uŠ ñO¾xW%²¾C®¬w[Ü*…¥é«õ\ àp‚h8?Å2Ù»ùc'ÑŸlA=T&9ߣ—n4A‰Q"~¡çæEG§Ý]Z%ÀÖzó‹ÕÛSÒTÛ2hòÞçú™¢¿Ÿ¯5 ®§qëja;‹Òrö„Âcöì<ºe_TVÆÊÍnþw{SyómÕ‰•UÛšÑ_Pɱê"O‡Pm=´++;=cýîÄE¤Ö5µ4Ô<-ÌŸŸ,¬)áþú Tð 'l°p,v€XÙl‚p1ŽÄ:Ù !”8Q6ÀØxØD:ºÙ7M’f«†«é¹Ç^ŒjÒv“©ž !Àç V­Ê\ž"@- ÓqoXäBߪëWuÔil×üÑûÏî¨Ý¤W×}LqÇRˆýŸ93Lxп+æ3{ç¯KFœûŠÊfÃó®Ëë‹I³ÝG:kˆŽî1‹Ef‰˜6’E ÙªÁ<‹ÓÞÚã «½ ÄfØ0²ßRª2ÁMRC„“/®`ÒšâjBˆw<1á¦aÊw׫ۮËî³x—˜Ì?ûzá4.f‘—{Ô#°»;ž ÃÎaàÝK‹Å°G?¾¶çBú“E7ÝÈqÓçNKð’çS`ÈÀ”NÙËÖl C+ÑÚŠ­—wœ9|&ÿ&w¬ƒ/¸}·q}wC}òP^~áxjÄPÎ[ÄR‹Dt´îäq*vÆsq.βÂFóƒêë·…÷®‚ ÁX>ÂÌÁ›U ¤àù#–c5v&Ë\ìîrƒ°A²Ì%^G$A`Oî¦Í¤># äÝÇœÓ<_tåŸRu²¹…û v!. 1i‰àÚ5´Æ(®1±ÃþÓ† Yk}¯Dô Ñ‹ÙäoVՆΎó0‡|ÊC.­.$µ~Ø‚ÚÑ_k®¶s™, >¸.G»=cÝÎU(¥gŸÌ-=ô§#uÜï™?ºö.{d@÷*¿l¼x­´='F°87’Ö´+ñ„øÅ^+†í¶ÕðTøÕómÅì2Ë—t ëÓHìÞföÕÕ÷èT»Š³ÐFnÄôÍê–iK×f¿— ‚3,±k¤ƒ«}PØG[,¢t@Qp‡ÃŒ±aÃärôX>Éþ 6Ä|endstream endobj 717 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1111 >> stream xœeR{LSW>·­·$ m:'[NM|Ì:3ÔD Â6"È` ç↠ÎGUÚBiy(TyTÜDY+”W…ì(75†lfaz·%^æ>6N²E™Ùbæ¯æ˜leÓÅóçÉw¾×ù8¢RŽã"W¥¥™Œ¦…¯¾’¹i‹uGNÁÄå Xt>H™aJSõ½¨ÔÜŠ¼!N#'Ô”d)´Úr3ç½LH™M²Èjò.YC’È"BBÉT™™¨È›ä n ÷¹b¾âcSö©”ª÷°7üo…ÂEªE¼!r¢„‡%eðÜ¡ÃÈwadÁ<É4#Ñ÷ïÜA MiÐE§%$%¥]=7xṕ1ô1ƒ] ¶ˆÜq ÏÊ FŒ×õØÀ^¶ÓQºV²È¹U¥ ÄÄ!‡Ñ=ŒäÖÀ×bÝúýVgµ„^hóèqŽº:L%ŽÝU{iMeeIMUn_vsL7“Q–ÌRQÁ^@ †ü<ú«þ)ßšD,ât­9¸§éà›vøý†EÍé.8)t÷nկ˯£uEm5“jW‰Yª-@7z³¡HVYl]bÈõšŽë%~ÇõrAëÿ¬êZyVÔfÃÖ˜Ôß:Ü5‡ @ØÅEúÙê`=Òè„Í´Ó—5= ``˜ë‰µK"FÉ‘%\$—² #tèØ¶¬6úQzæžBâá´W€qjwøýùP¦gq×ù6èܾ KèÒ8u™ŒÆ.pë‡Ù>æœahàn÷Ÿô_5"ž5w$Ì’¦k·÷úu$4oò=Õ.]É—åO¾?Áòxí±¥ÉÖuË ¯‡¢Wý,¢‘ýÆôã·ŸúZ=T›°Å ­tŸ°6ªÅ ¹ÎàVeМ«ó›e-¦àyì–|¼<šËŒàå)>ÞÝ-G2ODz ÑÅ£š2t@;Ìh‡8tÕ8þ|×#ø“(ˆœ¬^®.b‘‹Ÿ•˜½~OÅôg­?tò%PØ€Ã~ê53žá¯Ñ1ÔêSž‹NN~=aóÍÓôªúì™3Ò˜¸ð¿Ñf‹˜!šE4Šša S¥¥¹ÈÎÝAç¨ÎSÑdÉÛg©¨ªÙXb†SgÏÃÁ=>Zî·xìNA›M¾ |20u#ñJÙr~WÁ¤—އ•ÖÇÎ|ЬGîIV4]•?·&AÛ¾»Ó…¢à 0¶Zò»vÉô|ß§góñžníúôXšˆÆ‹¼–##§Ò×Nv“f{Ð&j¹\KB¦šªêË\ŒŽpŒÃXgãÌq·«¡š—£ÅR°âí”lúN¼)æS9™ÑŸzñ­# x´:ÿÏ”8Ž¢~*þ#iÜпâ»< «K+ì Ž6»Ã_ëgQÀ¦ÀB#{‰ÍšW^Qé€r¡â`i§ï’(õSñz×møM·7“q™{-/†JSi¨*Ëâw¶ÖÖÕÖÖî¯õ #äILÈendstream endobj 718 0 obj << /Filter /FlateDecode /Length 2302 >> stream xœ­YÍrã6¾ëö¬Ò\ ”Å%~ nmR•ÌLRI65›Õ^¬ÔMÑg$Ò&i'ØÇÞÆ P”ÇNR>˜Fw£ûûºÁÛyáy¬þìÿü8‹ç»Ùí ëѹý—çß­g/ŒDiœâùúzf–à9ÁiDc:Ox¥”Ï×ÇÙ%úÏR’(•”¢ìP,Wqs‰¥¨ZÅ'¨+«åŠR˜&(Z/%â˜rT/Wjf Ú.Õ:šà8EuSë•1¦èþÂ.LSôo=JSŠ‚mºàW£æS˜ÏÐ÷åáwÿÕ±nGS[ÿ¶ æÛJc‰4{×Û"x¹þsHÌýI+†i”d¾¢<’B¨¹—èý7Ë'L9½z¥¥Ã4ÎR2_ÿk¶þêdFÿüí]W³®Ì³ÃáQ óHY߇"ïìïX n_¸5e77M}Ó”YW¸mW‚ ºñæåyÝlËj§šÒÇ,¡®ƃ­`£«Cqô+/¢sòœÝ|Êê]ÑýRtû z]ß¿¯¯îÚnƒ@á¦|Ø ¦ª›ã±x³¼p&1Tåõák²Yª?8\‘0¥ë+§ F$~ ð#VËoÞÚ#–Ò?=PS"z—ø·ÁÔŇ.Û‡Õ›ºª÷½?ØàØ…9Šˆ?`'qìLU‹„1U:S Ž!Xqhj?Hx§cc¯Êöö.kŠA哯OX¼²Æí?†#vòþ:{•òöâØŒy§ Ʊ~ÇF¿¯óO^èÿ9sGºǛ¿ÚrÏt€°0ª•å¾ÙX/PaírÓ³ûÝ??ÓÔwM·¯wu• _·nsôC•UÙ¶hËOYµú¹èº¢j>ôÖ¿= ö$€?Hr¾êS °ò*C8u3c‘ë½ôào`“(fåxã½qD’RkÔvj¢&ôÙP,É–XH¦èQ‹Ñè¥Åaò%QJÀÏþ~Šo„Z’ Mz¶`(«¬|*CjÀÔm_¶no¿ùº[öR¬v_^ã)“r0ƒîv)Sª*2Å)¨ [§‚P‚²&ËaeÊ„àÌ1œ BD3œÑ … «¼wö ¼ú\v{«5‡hžò:çÈ_œ}Ó'¸«¾¶TL'I’”)ýÐèØŒ÷þVW£í cxØO4†rƒIf©xqÌ·‹©o a§]˜)¡$ !bâ$Õ»Oç%‰ä’Ž“rpaI¾$&Á©Ó®®³¶›”Å ÀÀò*µ«FaÙ¤0ŽáHyâ²Ñ+®Â’*÷EÓ8Œ +R©ýÏÕ@O>vW m:qäôS%†&Bã⟨,.ÎÌëªk`ta|¨Ñùl AÉ™âå s ¯ <ú[Pé¹°mwãjÆévn£ã(`‡I¥ÊNíHº+ú0iTCÛs'y_ð Š•¹ôË·oLô4ÌZwèB×x˜ 6ÈI}E¢fÄ<™ª–\ &‰€U%}6®o}³2ß–&³71jõ kxàM˜|Èü°ç`鯯C¹5kÎÌ\Òñ0KËæsÙ:sYò¬ O\<í#}d"UÝ@bî=† üÝ뇵\Ÿ‰/:ÒÌ"0‘IšhÚë÷ãHÔòÐ4R ¬îj¿¼k&1:,v9¿‰L9›%/¢Êiáq¬Æí_*SÉ´×xÀOVú$Ž$Ó~ƒÛü¬Kx_ìô’“b*•<‚¾Ê`*XmÖyw Hh¬îNéÀ²ªnUØ9.1kü¾¬p±I*Õ…Ò ®SãŒ>Á)Õ0)¬E‡3¡.£r eSOr2à˜ûÓ³”¥7UMºÖôÊ Å^L¡ˆ8½ PnM€nùµ“Ó13ϹíPž–¶^hS·1Úv¥<tŸ…Ѫ;êDW㦗HEƒSÁÚŽªhM|ZÚ˜»ºñ=…ºA Š“àQhö #HjA»PPw jÃxÔ8cÏã5YU‚¦¡rB™¾0 Nm atªpÛ'B3‰–žö—;|T5Øàî”5©"À?³wþ2¬âÊqC£ç‹ k¡-ÌN]fšbþü32÷" TAɹˆMA¦wÄcê[º•÷K.”à…¦ÌÎV î‚J.íÿ©³Þ=Ó«ë=–g>C¼àCŇ›"/¯ýOºks­{áujnìFsNW·ôcݾ©ïvûAL6<Ú|¸ï¬¯>ywösCEºö?Yqûå6¶Ã&€žÚ Lê·^ƒ|lÉóÂ䯻)“öõö‹J]ûŸbv…ŠµÝ F°G®’ïÐ{ÏháÎ}R gàpµ»rxúó‹¯ZÖ㟋ÃaðÇðû'S•¹ç´k—;»aÌ:¥×6°>¯ïu˜çƒŽš‹ŸÖÒD|Ñ>ù¹i|´….iƒ]ýPæe÷¸°·8ãiºöê•ÿçj;ô¯ïvŸ6¨=6Šéœ#¾ºZxWHíý0°Ÿ‹Ñâ6wšœS©èÃ<6ÒÈÝj9³.5”%žèQ&;átÕv£ÂðuQAFnÔv›å±Kß®g¿ÂßÿÉR"˜endstream endobj 719 0 obj << /Filter /FlateDecode /Length 21340 >> stream xœ½½[¯f7’øž¿âÀÀ`NÇ›÷Í<îé6lØ€«J3óÐÕêTvKöI©ZR•íùõk­’_–Tê–ÊAÈÃø‚Á 7/Á¸ñŸž®—ôtá?ÿ÷ýÇ7×Ó?¾ù§7‰Ð'ÿçýǧ÷Ù›óë»äe^3=}öoT%=å4_ÊUžF/³´§Ï>¾ùÛçÿûí_æ]Êóç¯Þ¾»^®v§»ßÏ_¿Í÷ËÕÓxþþ«¯ß¾+ÅÐzyþìí]^®«´çoÞ¾Fªãù‹·¨WFºæó7ß~ÚW*Ïø ¯8çó!´ÌòüÐÌ÷¥o_ ¿>ÿÍW¯ÿïùÓÇo¾ûõï>ûÖ×^Ͼ–+¿ô9¬¿Ÿ}ñæ9—·Ÿý×7ýÙ›_ÙPÝ6H-åö’ûS­Vdž"ç«Yž¾ýðôÿ<}ý'Ç4—ëi¼¤ÚîûÔÔï—žæÓÈõåÖ >ÿŸ_}÷ýç_¿ÿðô_^¿ùXí<Ÿú‹µ~UÔÎù¥tãü]¾ŠA¸ýÛçÿðõÞcìªùù°hâÚšé¥åöÔæõÒ[b3ÿùó/?ýüëoþþ«ïž¾ð&Wm`úÓ?~÷¦¼ÜùNíé¿ÇÿÑþÿ¯Fòß¿IÉ86®Ö_òýôñ€Ü6BùéõÍoÞ¤|×—ô€µ V­í¥ŽkA¬~õ—ûkA¬aÃißçÀZkæùÒ°äÀJ×õ2æS«³½ô¬k¤—».ÈÖå¥ÖË!'V¿Zz±Ïµ±ò€UlªÏûÄrÈú?Ú‰å¬ÛF¼åË!ÀúÑÉú8ÝÖd5š·m­›ƒ³è”¹žòxchÕœBPý#¤þGw6dW-•Óµfe̲VíßVŽy×lgxióaÞX9±|–X9±|–X9±|–X9±|–X9°þ¥ßÄv¢ÖmÚ>y mÊ—m­×˜Ïíí»tÛ7³íÎñ]j{ésjûïpÛ¨sãžÁ‘Þ;À?+A|ߨÂÇý”Z¿^lSñÝï¶Š—VÅ篱gTûRX9½T}»¹­}ëJ½A¯ ÛûÑO­«üÞjôį½0úxÉ'…Uf¬áTmgÚ®ù’Î6TFà"0‚Ë ðØ÷\m¶ìZ¯ÝÎ8vŒÅV^ÀÒ}a¹Yqb¡[y¼—Ñà,daaÌùrÔ÷’ˆÝ¶ª]»Ô—qÒW‚ƒÀgõqÇâ¹lq'ƒ R®Ü8¢žì¸Éö¥­lg‰X rAë«l æÜ_ÊPlã9 D™-’í+O«~o/÷ـʨ,ÆâÙ <ôAÝ*FdhTí¼ýxB¦É3VÉVÿu‹¨íÛ¶ÒÒjÄÊh¶Ý‹bôŠ5·)¬2Û@€ØW0lôçنʨ\Fpû¡¾ag·:mÚúd×Àf6˜#Wű¶C/£YûVØÔÆ´OpRXe4Á °s`È@»¹'¬&¼ŒÎÄÂ&ƒÂC/رbÜ$[j­g,Å'ÄD›¾Åi·ÜFÅbL%u5¢²5[r#a[E?)¬rö `Aš>ó¢Põ™W*£FpÁePxì‡úVDŤ^­³ è8§S©éŤRÛg2—Q©bËËhÖÈã, Ûï“Â*_Zh `b#ÖI0‘—ë(šð2j8 #˜ ½PÇl`m›±ïš0S?žË2û¶÷Ø—Æ™ae›¶ýDÍÚ&6û7ŸV™M B@Œ4»îºÝYÎTF…à!0‚Ç ðØ ö¬^¤bTwùlA¬yl­Õdƒz£¬eSÙŠ²µ[m3›íÀ°E=)DYm Æ‚\8É6ãtœm¨ŒÁE`,¾Âc?Ô7;Q1ÃÖmåW[»;ØÕrëà´…?PvaÉËh¶e~ƒ…aÅqˆ¢Z`‡ØÎ@>ƒÀÈ<›V*£F0ÁcPxì…zf»µI-&iÛù-9/ & ;b«í)¬ò] H-â,(ØZºÎ6TFà"0‚Ë ðØõm•,!oò¼ ¶üí²h÷¦KB‡}s“\Ö=ÊËÖn·¬§ÃvºtRˆ²Ú` ‡˜ —Ÿ6Ûp=XM¨Œ Á„c,&Eà“^°g=sÍ·‰ÉCÉqC&Z»žóœÉŽÓŠòd#^F³¶“á, “ûÊIa•Ùj8äÆü±ƒ7(ܳŽ6¼ŒÎÅÂp.…Ç~¨o&¹&ˆ2¶ójFnÈä|ê&Áò ­œn°k]e4;xõÚv;ì'UÎ>!ĺ„é´(˜È{m¨ŒÎD Aà±ê™Í™ê× ÎKÙ‚ØÞ†á™¼óèîc[$š±ŠÖ(DšZûvs×_E5À ±Í ’å"`{_=ZPÝ aqè>éû5LM˜¤«±æl*l‚Mã²ÓÀJõ˜\·Yÿ9n»^{]~‹KV³71DÌ• ï {óëgçnUä_}jZÔn÷:Ìà'äÆ,O£'žž ÷~ ¾´+QF»FtÿŒïY}•ÙÐ’8´^7þ“ºÊ@ö#ø‹ê=P¯LXå‡0™¡ól^Q€•d>êí*òDUMËQ´Vo»ÆB‡¿Û­wÕWY  B@p!ÍO›€nõh€Et+Ðï‹?¯þIØ«;_Xæ½A;A½â‚ØåÂäT+wì/V¶å`Àmû’}ù(ƒMÝa7†î¼›B”Õj¤RbݰÏ6TFà"0‚Ë ðØõÍöhn;n¤üb bwÒŠ!·û;ÏN’0ö¯©ZÄýµÄo¸ìž£,ÒDwȰ}ß*ªÛ×mqMûïÁYTä]ý±¿!NÛÏæ*8(:åõÂâ¶c-xÙÚœvoãªo«˜t½Œ² ¸®Ú¶œî“¾ÊèSpΠxàŸ=ši`§l=á@øx2ÏŒ4¡ÖÄnŸ‚cW°zLúuaÄ 7(D™M Bl1Mt+\™™Õ„ʨLF0zŽýíS²Öo"ÛcSýïž®§/ÜØâê×{,zm'(…A 6þ“¶§Q›wA(1.n™žõòïL¦·µ1cã_­ªá~²¾^Í®à¶!Ü&“HáO=ÔS&>™Œ˜Kö_h xU£ ¬O¶;—ÜôÓ\Jý¦qíÇ,Q?¥›¶±ùաĶՙqa D®¦°ß™Ì×lH“_þýOQyóïÞü¬QMtš¶}Íik÷–ÿ×ßüý[Üô‘çß÷ý©šÿ3Œ×uà7oòedìn¶­c²­c™zõ¬9°¨J;‘pàÔ›úŒiA,ÊÃõÄZ‹àiqÜõs¾Ð´ ÊNÖešú˜Yr˜YpË 3K Ky0°Ä ncЂÆ Ô+ '–Fõ@rÀ‰ãƒz äÄòA=°rbù XyÀ2±aÖÀšoû WÀº°–uaÔÀÚÔÀ: ¨ kPÖa@]XË€º°êÂZÔ…uP¹³Änü‹ÌcùÊÍÍ ÿ~< &ØÆš¯’p½±2¯úV¾e\Pù½Õ°D†ÇÀý¤eµ1éÂÎêMÁĉv¶¡2j\…Ç~¼ç–ÒnݺíÀ»;û;ujõ"ͳ]}R²ò¸¤™VíZŸxÕ ÛÀúI!Êj5rݨ¹)ÀÉãlCeÔ.#¸ ýPß`å‚8Ðñ=Ù·Ÿ­lb®T¶óæâu•­YÜ*ÈH`€üA`—ÙjĤ×ûiÀ]ílBeôÌyp„Å¢êÒö †õî†Â¦ ~AæLæíªk&˜äš“]Sç*‚K“œÈF XÅtXåKÊ„ 1QÁ$ÌMÁš*G*¢BðÁcxì…z“¯_»'÷¥ ™PÂÛ{QñÜ µçzíÚÞ¤Û¿c˜^O «œuéÙ®28 vz³ •Q#¸Œà2(<öC}»EÅÝ>ž›Sej£n¶Ðù ¦Øò²5k«à%o›k2„¨þ.fßtÄ~¡¢ú&¼Üg*£_ÁB`‡Nà“>°_°ë‹T ?›"ÍZͲãcn™”aSy•Á§u€ 0LR(ªT<Ï0AûüلʨLFð{¡žÙù5xàå÷ã ±q°JmP»4aR®«ŒVmãÀ*ú¨¿Šl€ymC`^ËG^F ñ°œÃEà±ê×-"¢gâ‚Ø.ËU9|Òìö×@eŠ-/[³ªÊ²1 ôù…UV¬á:ñï¦`³ù:ÛP] .#¸t Ÿôƒ}£˜7YW.nt—Ö¬J7¯ÂÔ†<æEðY¨Þ¶?ÝGý(v×üm½/Ÿ6FÝáj¡¹rq³ÁaxìƒúûoÒ’¸¾·†Ó¶¡öïe‹†å¾ÊhÖ¶±~ Ø.—N«œh€ÚëD–¨ŸùUv*£B°Ábx胺u»sƒý[xDoÈ€^ÉÊÝ á™ÂÄXYXF³¶‘Ǩ&¬—ƒÂ._ÒùoÈ QbSè”V*£à"0‚Ë ðØö ÖßD¯‰êâG@ú•p²òMu;…[p{rYepZ2ð £ G6/{¬áh‚žvÓ8¸šð2*8 #Øv½PÏ*'¸yõ, ö©+j™ð:ýpŸ jS›=UÍöê:|Çè“—E!Êjƒ5’Ÿvu[+õl@e  ±˜ÎOŸö@½rL°ñÐT @Öô­·;2”KóÌ/i^F“³k죙°—7(ªÃ_¥žví‹úÑM_eÐ#8VýþÙ¥eİÁ{™JUâWKMgÛLm³É´·Uw¸˜Í–àƒ€IèQ¾ !ܵá>}ÒW‚ƒÀ³^}s®žÔL…7ܤ›z³ ôªËp}~g Ðª|ëTFƒ=É^v'…U¾\jXø/èÚ bµáeÔp.Fpû¡¾ çT†â¤ó¿, òˆÉ°S¬Ÿ™Œã¾¥cR÷¼D±Å}tCh(Þ*‰÷ÑÅD`,®Âc/Ø3Zy‹`…7ç cãɨx×pg…ÙX®~Óoµ}ÝZ#n¹AaÝz‡Ɔh. Uëpµ¡2j±øv ýPßÊ” Ó0ýñ€È×1c¤pª šº—ºÆËh¶Ýb$0:U4›@”ÕjĹï§MöÕ³ •QÙ„à1<öB=rC…;çÇB²Õr\€Ò¶ÏL»ñ*¢ÕyI „Ù$#(—Ø®×´ö´)Øî&TD…à!‚Ç ðØ ö ¦ÍNSý„hóqC&4|F…®Åîú´§U¶vá/ƒ‹ïÂð{î¢àeoƒ5¢on¹¬6¼ŒÎÅÂX|;…Ç~¨ovpÎ}»ûx@r§<×!žýº½e|ÊëÂkãLî¹'…(¯ã† [‹‚ÝpÚنʨ\ÆâÛ)<öC}ƒÙëÏn9Þ·€Ø´!g&ˆÑxn‚9·ÝªÞ«Œvýîº0ü®»(DYm Æ‚dqæ0óÚц—QùX‹o§ðØö úiRˆ'-k@lD ÝU ¹*ct6Uö– Q˦  ýj"nü›‡@ƒÀc/Ô³v9ߊF; y±²«9kVjwpD£(áîv`ŒF‡óEa•*¶Š%[<Öl5±¢Ñ #˜ ½PÇÏš˜° W`'~rÕ+ã¬<ÜÌ#JÕÅ„Ñà~Pˆò Ø, x°ÚX¡ ‹‹…|…Ç~¨oóÖÂë6@nqÆF•ZKnss»ÑÑ4tg ›ù¤e÷zÛ¹Åmr›ÛM„cÝfÂ1“Ná±ìXË—T¶á¾!ôã.¸uRmCCLÁ6OýoødJ¶c¥£~ÃI{C䯽 ÈÍ{7Žà‹‡@ƒÀcÔ/x%ßêW@7\ Pw­¨â-b«ŒVm“¦cc`Ø&^QŒààÂØáM@Å»‰=ÞLÆâÚ)<öB=ëî¼Q2„J¿‚½›FÅÀîFs•Ñ®-º~Æ=€¹(¬òË, ŠqÙ³Ûˆ(™ÍE`—Aá±ê›òr™ð(䢳›wßQÈ¥™€K_шB.˜üô‘p Lþ~PØeÞÅo Š1ÞmDòæ"0‚K§ðI?ÞKÜ+1ßÅ}[yjˆ^z’Ÿ× /X=Ùým‚B”=®ûPM¶ (0|7¡ã›‰ÀX\;…‡^¨cÐý=íȦPXRqŸ[*½t…mD`SÁ”àŽPX¼AG À ¤][1K›~D5mÃôúü«KPAs`ÝÓ}Cä°^¨”æÇ=[6ù~rO÷B¥xŽß 1?+F9Ñ7D®ê»:¯ç›¸{ºï¦ý÷à,ª?ò®þØÎÄ8—ˆŠÙƵ”îÁåöR04ô<À˜rÔ䯔¢q+ â‘-‹€G¾¬&VlÌbba8‹Âc/Ô3s}‡‰yE=Sx—ûÔG˜¸AÜï>0=á °ËŠáÞy/¾šXa⋉ÀXL:…Ç^°cp¥ÍŒ õt „ÚÜþ¨mU²‚Ð!j[#HÚÖÀ0ùuœVÙSulˆ’yl Jö±Ûˆt ›‹À.ƒÂc?Ô7x…#,wCX[†m¬;îÖŠÃí¤ŠË-Ðp3rÇ·½}œÕ£q³¢ÈÚM€·»ËÝ øïÁ_TìzÕ/%6Š€¦ QDRÁ/ò‚AÀRøZñMht0Üqý~‡ŒWrÄmˆ"’6,í< i3à¿Qý±ê•MMì¦%s†–¬ôS ŽG”LA”Ìü Á–Ï<ì²âX6@q.›€Â`V '³Yp„Å¢xì»u§[ó!âù7„áøêyr+Z¿Ü%qW^ñüÑ•|aT]áƒ@#Ö~C¿ (Z7ñü›‰ÀƒÂc/Ô³FwÇ{@8; B¥°ˆ=Ú¶ – YV¬r¤Ø%Ø”ˆ`·© ްxtŸô‚=C•mÑ;Æó€P†³2Ü#†³L-a5X!žeÚê5qicXÓI`•=sC¦¹)HÜmD çb"‚Ç ðØ‹÷T:âòyFDnˆâë• ÈD¸c½ì:—Ï€Hƒtüµ1ì†XOQŽ`Å Q8㦠pÇÝFD.&!x ½`Ïà‰[»ç/2tU¸@v_ž³"ÏW+KøwÇØŠø š]ÂuÖ ôöÙM׋E!ÊáÝz@àýº È7v7Þ³›‰ÀXl‹Àc/xÌæ!µéò©ÚyDYyºËoŸ·±Ë§ªæ)…ܰùØO Q§B¨MAS»ð©Ú\ÆâÛ)<öƒ}+JE¶ã‘â‰j±q™ÌåÂp#+ßg|Ò{,fe[6„ó °Š1 ¢x¢M@|í&ÖX,&#x ½PÏhº¾Â„ž¾VžÒÓɸlÒ|ھµà P \N «ì~¼"OßEÁ=WËWxq±0‚Ë ðØõÍZ¡97‚ ÄCjéR/xÈ@-T?FDÔã?çü¬îååï¿! X<^@ôW8Áj~ý {íGþÕ§ÛSmFœÕÌ_‘2°ì@«j¾B_#Ъ"oÞ½f¯ìú»èAP âaRQߣ¨V+Ìj±°0œÃ ðIØ/˜£Goð[-ˆ\ó¬<¥`•ëžÉ0]ú×pî«Ø™ùu#+ñË¢åðÀ; ×ÓªîÞ{«åÜ·XX‹éëéÓ¨Wœ-.ìEEúÖZ.y‘+¸"%·UFsÕsâFUÊÜ àňâ]…ùîê Þ D ðf!0òY=ŸÄÑ™ÚV  NÈÔTjR"z8iE Éܨh±W©øcЂ¶)¬²ƒnˆÂE7…“î6"àtsÁePxì‡úfWì|Félˆbl*òFÆaN.Ûˆê¥c‚XS» ÒI!ÊGs@ÀfTW În ¢t6 ±˜ÎOŸö@½B`BX65ÂhQc kpLZayž;¸ÔÚl&ü€ó?ïú«‘ ¢XÑU_¡¤»6Ý,Fpè>éû…£;»]AÝ„AÆFV(§b¶+ŽÄVVŒæ®¥ƒ=)¬²‡\oˆ‚²7mï6"¬{sÁePxì‡ú5мx{hl›XáŠTÎàÅ sµâ£å3üñ(+¶p|¸ (8q7á‹›‰À&ƒÂC/Ô1Ûê6^< ¼©°»3M^:Dô?ž [5íð1tè(FT͹ô‚€ârv¹³™ŒÅµSxì…zæ™þVäΆ(îÆÊ}u 2góÜ+r§Bn‰®™N Qލš¢[À¢PýD¹³¹ŒÅ·Sxì‡úfGÙò´À¤¾LÊîÁ©^qúµö´ÓBTœ¾y馸áVÑs6,s:ìÚJù°éGNˆÍcƒªÿÈ?»„”{Ôƒ‘6DÖóÚ³üÕ=Ö¨v;'w<–q†'Ù™”å频B¢X¢MA±F«‰ˆEÚ<Bð{¡žáÄ?“¯lˆR§Xyj’(µJí­Ë×%’¯TøšÌt``Éœ¢‰Q6D©S6¥VÙmDò•ÍE`—Aá±êÚ§½Ü£Ÿc—+9ödu˜Îˆ‚;íNB 0fw¼SXeLÞÅ.o Ý96"úysÁePxìû†0ÌñˆØY…ÛTX®ëÇ©0Ú¦vìÔ‘#%ºcØÙT^ŒPš `¬Íªî±8«­³XXÁ²xè:U:S¯È¸ Q`[…¸íP¸ŠËWGkžçÙ°ŠOQްµ Q`Û¦ À·ÕDDÆm!x ½Pφ’ØF°ð(ܷ€ɌöŠ®0lâ4\ñÂuÌê1~€­´VÙ£zÿݼ›ˆáÍD`,®ÂC/Ø1Ø1o&2t/à aB‡zåYò|¦ÑëÌQa<½ôï¨ÅÈÖ°!Êç°ê+ÝÃn Bl#8 }P¿à¹|†2.ˆ"VX3Û½+¬™å e¬3)öÂHÊœ¢¼Â ˆvð àŠ«ʸ¸ŒÍ·(|Ò÷Ô_ZûíÈO²J.Ò.ãÿzò+^"Vz’veÞf7F¹Žê,DÒ/*§È®¨œ#›td%Ù†óxÿ)ƒÖÒÀ.‹ÖR(ÿ2‹V5ºób© ÿGŽé?{LÜO«“?Ñ;ÿ2#ÔOPù™V(x—d—û_÷SŒ{ààrýø(^0=¡ …öîžÖº?ø7_ýãïçû¾ý 'ø®6Ÿû_¾}‡¸ cÀß´#¢m4s>¿×c|³\í~ŽJ}>ÿî †ð:°>{mýò…?ô×Óó_}yÀNw”?_üÔôü«w¿B¡‚ùoç›ð¿ËýüýIûƒW¶ž}ûÍß?œ ~·(åàn?wt]ï⣿}‡ÅÞ¯òüÕ[üeSùÉæ„?l˜K܃ª²*õl‚äx|'ñ»ïЦÎùmoÈú:®Ëö}F*þúÿxû®1~·<ÿΆç·ÏõÍþóû/~ûüŇׯþðáÛÿù·‘þ2ÿÝoßþ…#Îñüß¿üêý—ÿö_}ÿÍë_¿¾~õ»ï> >ò_Á¦ë•Ÿßk†ÿÛÏ~ýýõoß’!8%0ÃìzóÙ¿þSí~üêõ¿yk ¶Zûîý·>üî¡¡û‡ú#êŸûÛçß÷­ÿì<¦”ÏŸ¯< ¥¡S6áZ~ÿT*ŽäÔŸò]¹y1<‚‡$òQ¤ðcÔËÇQ½0ü ^¢¬6Ž£†Þ¼OjľÍCðòqR/ŒÅ¶<öâá }B`8j¨¸øÚ‡’7Ó¼OQ/õÂðcxQˆ²Ú8ê!ûԦК?Nãm¨|Õ cñíû¡ùˆ¨!Rá+qˆ­Lîf Ão^Aa•[|­—ç½ïfðGÕ¿ÖâA¿‡^û±žë»"QæœJ²àe[ˆÁËáôEeäk÷*{ânDº,Œ›1.*:}æ¶v€‚Û£¾•¸-D5ÄÃÆpŽƒÀÙÇ£ÙNz”lˆÍ'¼•¶NEæ+:ÎM•£yaÄÁ¢¬6Σ9SèÛàÀy4Áây2ûïÁbTì„òS¦©}‡×.âÅ•(wmƒ…©X3ó±­úx¤¨üpl9Æ:¶œÀ*»‡âqlѸ}[LD|[Ýßè\Ç–#¬cÊ <öÂ_:›ÌêO´|ÜØŠ*nQ“ 3ß(ããd…)彌far¹Œ„œ÷‹€½…÷o¡Í8À½úûƦ¯"ß:þûâØ«Òƒápë:6DšŠ¥ÇqMÆÒã,]ÇÒㆋ~‹Â*‡®cA\Y±(H—±š]ÇâÁ£úc'Þ»áv Þ¸Ç'füSX1ÑÖÒÐâ^ª;a@`Ëúc¬€ØV'\"µ1O ÏŸcÙ9r±?1›‡œHŸp¸y>~ΫT&`%Ê¬ÓæšdÞá *tuÖp>A ¦Þ{”b†©Èä³w¶=_raŠ‚ÏŸp•fN¦ˆ½üÂ[(/w7iø S„Ûü¥‡­©üé«€¼ú§²¦òý[o¢!Gî³…$¼ ‚#°T…G€¹V2³õdA¨_ãAË`,ƒØ' AuÀ`Žm¦Ã!¤ªRc¢y‡ !n·mó.‚Pÿ|<Þtw©gŸ%„Ìà²'ÀŽß‘k„IÁGYÜÝ<(á'•R@ª+ˆûÂáMþ®ŠøâÓPiÈ"1J@xYŸiuaRñÔ!Ö‰A=ãn;p˜%Ã]iŒ`ñZgs @'ä†ïhä…3@ªÊÝHÍL™Ú<éÊ_Ýj@ ©…ëÕ•qèwB ½OÊ…>gëÈÇUOkY„½ÈsTR ™Š|#‰üG+ë;LN¼\׿½ßkÐ)•õÙc^øËúxcHÓà£sIÌcÏœ[ê4×,êu0ÈÇ!—«AûˆÉ¦DÒ”,ÂÁâÉSÖ³SÇ´aº+žSeÍ|Š]óŽï¢üàù¾(Ñ ‚b)rIeˆüÑr’ 4ñÙ _¨@I5>Á¥©w§á ËÏiàÉ^îø¡‰Ï °ì 2< uWáÑ(ÒkþU ¡á’|$¯YÝnZ}Ý^S«i+œj–PVácJߺÊp¶ª¹0™ Óìºõ„oµ",…_¾[òq¸n½ì3¯¦âe·E†ñ òê~(ìí"N#sJ!óDsŒ$¥¹2“2xÍ·^x"äæíã–8ôêëQQÝbhF“"ŽS9¡ÜöO€)Iq·@çBßѺ¥‡'à⥠"®–ÅÕo¥÷žW Dgâ·ŒtÙ!M݂㵠ogx?xŠž¥#¾èÒFÈ¥›ìÅ`¯zaj¼B|k0_Ã6Hl —íÙÍE~5Õôì„ù&@æ¦;S‰¥3œÔ´¡^U·q\|&ÙdÀ%:ÍÑJ&òÌ|K˜¬‹v.¾®ê÷LÑÛ¨²4ã>Z DÊxrØ?giêS‰5xñ•]@ŠwAU€Z@ðFûdø¦ )‚„íttþàrD£ÁÏ|¯ˆ†€¢næ$5\Å{%ú¤E­$ek¨Vª<Ù``¸½VÆ£W³]Á ÕÊWEç—¡„\ÀÁÎ×Û#DÏm:pqól *…ä­sé%¸ÇroPfXB|ÑÜE{LBÒ”þÐu¤>͇§ RµMÞE5¾^Ïxg‰Iéî’o8éÅ3BÒך)T±ÜIgHÂaGãà$&¥[k—Ó€§\º[X.u$c.õ@ 'à‘Š×O H¢ÝwjW±[¥ƒ˜Rn¢Ý‘‹A¢;0§E¤}‰¸T+3°Ÿ OùÖch\œÚ… ö¯C ¸«"àºÖxW­ÔõÉû”lo†%q¯èêEºdxí±¿QÒÊÚs´5@ãLîM;§AˆÀXýWX¥iýáæÆƒ(!ßWò ׄüc9k“¬ŽsÑ‚# Ç6Àª½vLô–öãšÑS½S&@/VÜ×›Cöà%=%ZȺŽ äcžìuú$awÉ©qeŸ©ê…é·á„@þÙuùbæbN2=Ö¤NáZqë­ÝŽ%¼2ß=š¾.‡_zm:exkvAd™Â^'ÂS±Ì™ÚÇk1QºA.߆`¦ê´wß´™Ü=IÁ Ý ¹0ú-;‰ŽmØ©ÉO¾ÿÂá+I•¡•…„òØ•.·P‰èÔ†ƒílR›HB m:—ïUmèfí‹IÓ{׿mdÛl.Ê:РéѲ壃»‡ã}Ø!…‘³,¿ØÌML,+ÓO:‹`OÏT_M]˜o©¯n'Ì7Æ2v-å­é©+(Á´¶6ä3cþ·¦ {”$f<úpñ±¨{áwì.;"l¼'Åx5=µÚ‡«é réåAXڨܓ¨#ô/¬732\µb‘Í+–/ø©ñ*§3¸;^N§ÊÇ36ÆVéâKæ­Q¯Ì¯Ÿ±‘xKÚc Žr© p # L),m³pöжE†¶«—¶Üî»äS»t1Rø¥€ÐO+‡ O(ºí Cß¡Tu3 ?-amâà¤5'Kq«è“½È¿‹Y;àÀÒˆ—-‹3xÉñ›Ð¥cfßì[Ö6ɤé= tE¿ã2µ<¦-Óʧ€€?¬&ç/ó-\âÒUŽœQ¼è R)`½`zû6»¬mýòý˜Éhì1™mƼô›Þ*­®° ¤Ò]â£ç-òqš3; }óea ¡7òšÎ«ÓÉs L@š ›’_ÊIWº…£a=ízòFƒØÿ×ë)Ka€¼u!y}\ç:ãêÊñ„‹Ç ñ™cNH>¾›ßã¾HáãºmžîPpm÷£@ï5fd+‰ñ¼y¾Á~Ä4âÛÒºð;·!¼o’ÇšŽôµÆt«=»(„IÍçˆÛŒ±0îox¥õX˜jµ•à¸ùG+ƒCnº»ŒÕx;x{¬UÈsµºë™ë™‡Ü|fº¹üŽ}¾ÙȯÕcïÀ¶Uó\ýšza9‡ÔŠ-_Ðø˜V©ºj¾‚ÃJϘšFgUê± _Ÿû!¶ðšÜÄ=“„1yfì«Õ_ùžwì½fØŒFìϜ׬J‹P戡ILJÔO¾`,3¯“€>(ÙB} oRâypÿ¢M7´rW—q2Uâ¤8™ÏeÌ÷Nw«Œ‡í$Qáäsç#ÔXØI Ž”¥[ÂaZùûŒ",Zïû”öÖqërÊ ».8Ø¡/+m¿ƒnÙé1¢zÖ’¼{IÎ|7̦c+úàÃâ¹(÷° ,¬:H 5l«ß©ni” æ‹>ÕMms.ë¦ñ ò@ %)E,H9¥´Øà&òmgü 54Nuêã’§«šàmŒ™Ž •>÷±×€—Ü|ì 6â<)zçU¢%çrÌ À ¦\¤7x•„Ê7âÓ ÿâqdæÜ1¯ÕçZ—€”ñœ _S’ÄÚ’®¸H%fÎ)¼¼–4;ÏŠH~ÎÇŒRµóš#n¹ÜÊ«¶Q¦*\×NȈ;Sáü1H‹[™rT×EòU7|\¤8ÔVÆ<ÄÉ!ó{pGÓDâ#€ÜnŽãM‹.êw&/Ÿ|_ó0OBz\‘l!B¤Îw ž;ÍÔ‰å y­ßÅ7.¾O’—Oß«n™ÂÙ·Uòj+>î èépk¥A‘-¹'D;ÄÐDÈðé¥ 8ôìë~]܃P»ä[ÈóvUˆ®O¾4ë&Ÿ›>g—Wá(~A#к ®Á¸¨Ë0Hv‰z@…åÁÈ©ÑÙ©Ð$ò•‡ô¥Ä¸¦ úè|Ù£ âz#)Øøå‚9”%Å!š;P¨¤$ˆ+:²î‚€Ç™ÎNÜφÒs’\ãÓxu&ÄqðÂÌ ¨ÔtŸ•ª,’$ì6Ù¸C¦òPBkM ‡4÷ÿ¼\¾CÐ9ÂUBÝÝ=GZ 4=%È­Å£ EŸA4º„|°†¤|ÍË!ÕÐq_ö) }¬ÙWýÀƒæðªšZ>4w_“ÍU’79!u6ðnÞ5‹/WR6­à1üâãu÷¹ïç+y'f¨Í/xXUú ·R¸på]®¯½ÖZ¼—v6»KîíÚYÝK±¦‡ãL~ñÛôÀ¸âagÐüã›ÉC»‡ª(µ97з2Èr[’„È]Ȗغ²ãè”É3…½ªœ¬ o,xóMѵñ•Jq+u:Uvö<»‹Fжã Ìsñ£G¿ 2CÁ¬ _ÜÈu÷¿›ìSåÊ>oI§<|p°áÐ\B€îŒç×Õýú ýO½ë£‡^uäqåö™¥2Rºº!âÖ…­¤¸î0BÓɘÜ0Ò$b¥¸$A“ˆ¹Ãd± ¸€gðåK6O±¬¼­q÷ÚrØnH›tË—€˜ç9#m­’®[½‚8ìÆ&é ™€@ưÄÏf ¬wj àÊ:ذ(ã\Ë–%¿ÔÐÕÁFqªV?@`kf·¡(¤H/RjÈÐkSúÔ\ „¾O|¶e½ƒ´^Zó7åÌ‘›Ud˜°&%z•™P’fX" á§à¶ŒÓ­=¥—eޤè1Bõ{Gx„) F #ÜŒ^eù””TºËSwÈî°©po+!,1º›ow°èH ¿ÃÂ;œÎŒv§3C/Cea=¿È-ãY‘)æU¶ãÂûFòå1o~ƒTYA`‚æ]õ уá/¼ÚÄ14ñ,p’{ÑÜíœJ€I¼rk£Ï×Ň­ìåKˆ¦uÞs /Ü¢ánqÉDĘ́nŸºd–ð`ƒŸe›³¢’dj¯Å•¨tà}»f÷¸ƒKo‚P=¹#Â¥°qØùàž›‘¿4¼d­­…¿Š^¥4ˆ¦_¾”ïÜîÉI')%`ÉA¢Ô&œ¢ÛP…ÒÑ]2´b\ÕNfu¯$Ãu#ÜôÖ’]þèfÝwïµ*öXnîCBÂt›ýL8ZÊì¾(äo©Þ¡þ‰;(=Z2tíJÍÚw%ݪèì®2ºU!bÇ]Zº,<Ò)@8á°V¾ÜÓ Ž:l+×pË‚7Ä-ßp÷QÂKÁ Nº4éÄ̶·¹oG—Õ…î‘”¨ñ©nï¡ûcjÕÑN%êÓ4JîÆDv°gÐ]ñÕЬµ¼,?¹ÃõtÝmpªBqM¾[â)Ójø.оÎáˆrÓ2#k¤û5Èž‡ÿn¸ˆ:YYDÚÝÃe6.›]îǃ‰À Õ]áF%ױ¦.ŠÈ³í>0“Ùó2ŸÒu77íQ¸}&SºüÓl› gij1ù`¨»T²ð2#ar8ÇÑ˸”¤‡ >ñôÿO<ýÿ¤—r¹ž{ÔŒ±ÓK™Ï÷â¹Axw¸ögoaV±³òù›×ß~þõûO”‰æé·Ï£ÿíÌöò ó½€ 8#—^ä^Y®èr§ÅUÅ À”mÍ:€¶e:¶`Ñt†‡\Y𦖆´ú ±Qüéucaå7ˆ—’é½9ܶ‘€>‹~!ej¹^¾å#*â–õY}j|Kx±CFÛ="dn\ô”Ÿ#·´Ý»¶ŸÑ0 GÊ®žÉÐpÊ-¯8wÔ¬¹h‰ñù\:-„Kö2ú¶4·>P¯ŸåѦr¿äùÕÝ%%Ó6ä\¢ –Ÿ'9»ÈÊ7z„ßcLå7å m‰QºÕÝøZx¹#1l 7#]¾ ¯u]!3â¾2nmøœèòù-p1Ï|†±0 §S¯âF4vð&NWy Byu!D®vY i B`ÈÕÜ‘x9¡ñæ÷4Z(1~©'è:® â]Å%B ¢ ìŒ,¾Yi7°pAíwœÞ]šÞ‚ø§Û!l±$\͆ \T%…—fX$ÉW‰¦oJ)ÑÐEUrJ¾Ý |/Šæ›ô_˜³Ègá³s€ê²Bg\ n¹ÊÈ‚‹Þ¬éãÐ-n]WX†jr÷wªÕÀ/Réõ€Lâ„ÈÞ=ä>·ìzWöƒt©©€ô+¦Ö¤ À %¦ì¾’p†tv[£Æ$žôÓ-Ъ\w@x¾ý<éÔ”ª>Fô¯dC—šj@°z©´ˆáË…yúí”#l—ŒíÃ(ñ]øÔÙ¥8:~9QC±à+û”cÄçÇ»ÅÐgw¯Â¸P ^cÒ`º–.ÓttÇò¹õ)Ë:ý Xµ¿ ôö¥Ç Î`F–FŸåx5×ÿšb%`:âú¯Å‚~Y°}A!–_»ÞTÑxçê+0`øòéë‚ë¾¹N뾎gh¢TÌgcFì•;ö›0ÄíR‘›‚Ûì5‰hòö/"U› nÿemk™›lU<3_´ñZ¼”Ò¯Ø>±ä`EÚ[lÁP-ˆŒC# [5Þ’…ÊÀ8óž]`®òÕùÔQA—;P\ËINë’œÆ)éã²â(ðŽ8Ž„ çp+(Ð;T?Ö²ã_qô+(‚hÅÁ¯ §¾øé˜4 ðÊîq¦&šÄUÓjD¨l^ÞáV]>’ Ý!¹—À/S9$At‚¶¦„L€¨ ­y6 Ÿí8ÉTæšgS3D›Ë¹QÊÐzý 4ÞÝD›-ä·ºÙ]Ò*šœ#"ôàÀY4¤áu8àrïæùŽ1waç*qÅ5 þ‚¸¾%.Ùüâ.ßTD¢“¯Þ>+ºëmhÌçbîÃ÷jØîoM¾ÛÅ]>öË ªk3,õWÑ$®.GS².¸[H©ÕÆÕ´t¸@R9ÑÝ A- G°Ý~ÖR5Ñ[\Úñn[o! .?p+ÑÑÄ R`vUãéÒ–Na´ƒ_]»„Ή¢\+ÜIš__¨tân£Û) Øœ(P= @5YŽ’ÂW`¯Ü¾õ•î£^Ü ›êAn7¥øbS!7òÞ¤NÍ‚|ûyÛ/wŠLáâ'E% ¶`ivÅ&¹œ·É}®i_Å I«ªv ^Æ¥G™ñƒDiWèæ2'θ‹ÇVunp2‚á+ù¶£挟ZÒn¦*ÔÏóKáàÆ‡¡“]°UÎ%o×Ùd§hƒ7¼Yþ`©Ð"‚ðç·*å)1`¸2Þ ÔS J¢±  …ˆ3­5!ä JÊšXÊ0Á¤‡Þ”+ R"r:úöSÑ‘ÂN‹àÔÎ÷Ü("i±¦Æ;Š}ÉághjIÂD)~ßJUú¦èÄÒÕ%¹ "·-ƒ¤zÌLmfb¸”‚—€Y+­@Ók¨©ëv:P„tÊ“îdO½L¦:C #g@ƒDü,âð(ÍÎ( ›€WDSgä€AR´Õ(Ú´\Š£J][Ic©°*w,“¾GÄóžQYjÖL›Ö+ˆ-ÑûŒ’þÜ]Hà5ä<&ž¤_·‚™‰km5Ün[Adû^Ž,|·×!œÀ/õº¹@JX»ä 7XM9°d=XÖLd|Ù—ac€X„0Óéñ@¼_1TšþLSVî¬,; /ŸwÄyL]µ ²LWÑån´0ºM>Z.=;³-F  üÊ!Á@›*S”ž²(—^í{ULÌÅKì‘ ¢=¤]º|–¶ uJŠx•mðSZD|Eµ”éÿ\ =tr %y,1M–…ù…†LH·.íqs<0=´q¶07O)Éa~¨n­• Á@rÇ‘fhŒˆê貦MYð^xŒÞ§´é¶Ù0vÏ唆ÐmKÕV_¸p®´°Ø3ì „uo$é.g^¾É£&dŸ„Ï5/ ºy…_BS`J kî Dº–÷Ì,0ïð‰§ãÜý®¹ Š­Ë÷ãbüít×U¨F;²ÛáeKH ;ÈÂs(2À/²Ýmùïgåm¹kDá¥ÆWÿŽî4® gzU”v8x«Q‰ÖǦì¡]UôG¶N÷–Âæ5äSþÞ—Bà¡í! +"–{w6s§5Ì ÷ol<+ìì >½ó¦|ßñw(Œ2¿;öÊ;~íá*Û”T¨ÅL† ˆˆà÷éKò.‚†»kA™ÊÉ;A…!Ò›:Qõly†çˆ†½*Õ3ÍeU­º+ÚqÍ/^Ý‹®.ªÒ¹q1k´v(E™²éîn[dÚ°¡ÜòрؕBs‹±[îßê@ÕFÏkœ˜ 2½t wGH€ÌŒYcÖBÌÜ™5|g 1®rÜÖç…oäM7í;Fæ’¡Ú'|)—'íó…IhžxWÒ&»hiÊ#©ý¤(wm²~‰mq¦¢wÝyï¡´” qGöo͢ל˜âV'HiaÊiî¼ÏBfÚŒÖ+¥ ºBk¯(zâ‹W­F§¥(‘œ– ‹2½X©¾wAòdΤì¡î‰ræ<¼˜!T*-^÷ Q²¹ÙMn.”!Ñø1¥E—Zøt8•K‰ttM$ÀÝ`×ù•u6Qk®b–‘RŸ&ë…Q*ßXAg´[~ÃZ2p€q'aVÖFt ÖC'­&`ùåä.M=Ü}Õ´6xšÕï¬ûÇÚs£è´-Î)»ÇR]1j¹%¥g #Bª‚èjDø'ȈؑqÑ^Ÿ+… ^FôñìOyÁ.£}ö$°ÉˆÁ¢x›Ü„g›éS:bÔsÖ.¹`¡÷ƒ_®hNXayºŸð›,÷…s’eNòVõ1M4iÒqÃ[O|±‡Ž§þi0e²|F4o¡»dëØùÔ‹KÛTþÑ/÷°MmA8à¼ÄÈê䇓2ÜôòÕ—¦¢Ûr¤hHìÝév@^nÉ!:-·û"Õ¶].\r1Ó%r› oh\ðm 7·œqõÑÞ”nh0‡†£9yµêBBºyÑçeèò–«Í[Eä’Ã[ Ïg\EètV"ÒL L­š4Ü¡,‡w ؃9＀ f>ž- ôMŒ' âû ¤ø†ÇârC3!t1»š—€$BRôÂE/¨»µƒ>‘üD‚NÒ±~´…Ñ. S%-絤çÙ2Æ©ŒÕ/¬³AnIòäöÁ€KJ×1¨0Xâ.âŸà @çÔ÷@ÂÝ.)§6ïy>^·< S‹Ø"pŠו ÃÒÎìø|·b‹“¼ù5½žt3Ì1ÿ ”¦¢˜£@)w ÞLÎŽMI.u÷›Òc5à7ê$\ò ¬Ù–ê>šXTd%÷˜ÆÌ6Høâã«âá%´ÄæwJ؉¹ÀN!ôшÊIºâ„ „e–R8ga?I„$sÁžƒ£I‰nßaäªëY§|彩¬ó '}ï+<ö1é!!Ù`ŸÄÈÌ?=öÒ‹µwAõgÝ‚GïÈJ@ãN„@5A¿m¤•&:3ø†\•&ãš!á|À‚Ë·³×¨]¡ãD÷“G¢Å¥…ý,ÂŽÿ‹Û4Å^wxñg%ù׆ju&½¢c‡åâ`bŸ¹ŽÏ”‘7[öæº=åKÊz•ê§0v>|_Ÿ ñ›‰†k6¯‘cpÆœ”%5\UÍ7H% "7WØ?zzÀINU܈V EIçÔ¡9wÓ!’¨®°Û%Ø(¢“8©#LOžéU‚Ó*B vqŽ|*u’#oµC$íB¼’¾‹*õé€ËO‹\áÀ7óФÝ[N¥˜7:‹Ó}néÒÆž©ù§{;|3èI2›ûÜBIŠƒüRÌÇ«Äèœ5Ñ/—´µÏ2¥Ûª=/ËÃbÄ¥Ve©å"ÓÍ/묦]Šõ¼r€4Å `=O¿aÐÅùÌÔ²”A9…,A:Ä)I¥—¸³a{Ö†^•|Î ±·UwULÙ6 Ta–Ôî ’”#¢ò QBäâ+èTŽp=Ãj¡ [,™5•pgô6 2Vü™R§²èT),`æö˜¾¦·@R]‘ªù`÷ö°Þ.ÿîÔ"2€I¹Q©…Þ6—ÆC©GðåÍGx 2×íZ.{мµ–{‹p8?ágpuÀÂKÃÃÕ‡x õlB°,Ö*Å”‘³Jp)·CB|`¢C–B Î3¯oSC7»©‘× ÍØûðÈ•k…òß<ë3"e¹‡œÏ‘È€©4ç8v<à’3aN1=‡äjžï•¥¢Q²êÅÝ󽤈7(´“ð Of£€ˆ˜D:|ÊyeÅKÈx²•#Ü5U+‡¸8µ©Xܪ¶ôf=#xÝí¸+§â~Ã|°3è¿Ê–A¿#²1^r…0H_ž  íCàòíž 7÷«ª'‹_w‚S8ÜÝn%)RmÈ•œ–9•CǦN¥€O+ûfi®ñÐnÑzG«…ÅÈ·jFê»ñ‡±½4)kH“LP½çEr‹Žøv˜™ïV›ÑíW~Cijç†\F²‹õ Ï×Ð`ƒc¬½Ò.¾ê¥Æ(Ï”!"¢Ü’„Üî{y'±W­¼²¶aõ2ƒ»çz„5¬VyßÊ=<{fh}Õk܈™éµxL’vž¦” rZÊ~­ƒÛ™R½Ò‡ãrÓ$݃2žKwµ×#Ë£vè0<®ðUu:ßuwC©bºŽ@S¥V_,yˆ‹e†ˆ{ géÊÂ!/N‹§Rw$7îÞJÆ’ÜtÀ(¦dÍÙ='¡„iLâ‰õ~Ãìá¶§d2ùûÒ©UÉ/ȃ¬$Ì+Ñ0pÚꮽîØ‘ OàÀ¾xØ‚¼>ÒòŒÝÄÄÕ=: 'e¡Ê3ÐËïåÏzmsä´)¬²ÚxÿfCº‡-….íÇjCå÷o6\…Ç~¼’ —³ž2‡²SÂwq‡‰Ì‹J¾üy™Ð3CÛ)žÙDðLèx¥º/“ÑŸÿÝ÷ôü¦;ègÿéM<úùëÛÿýñ±ÝŸ“”¾ ìžÂHðÞ.ytžIéÿ+ Gø‚5ß΄ò9‘˜µé’C¤ ceIR@N$:Æ•É!'RsÑq#9äDÊXy 9ä@útXö@ý²LøØ6*òÌ„ŸÞ¾£)¿•ç¼ÿ,ü^ÎÏuC›ÿYûsw„ÒŸÇF¸wà@ÁÖVƺ:\R“'kûÍaAÌëç•ûÀ¢³Ó8±ò€;9ß#YX9±‚‹uòõ/͆_\…~`?÷H‹ëí»Î×o&F®W>[Ä'zb‚õçÔ~hÀ~"«}¹ÛC¸Hú…‹üÈ{Ûp>¿øz…-`Ÿÿáë/>¼…2êêùùÝÝë ó¶+;‡ZQ…¿þê?|Í-Ŷöç?¼åkÃÏ3ÿþÃw%?Ýå?õt7®sÃý=ñœýŸ<¥*ìvù¦ó^£Ô‡cj£_´‚è—ÛŨëbsP_É‹^íJºgeºVœæp òò{kà¢lº0`‡[yPXeµzù|QèÌf²ÛPùý›ÍE`—Ná“~¼“ '\‰&b)‘z¢vE‘lÈÏ<ª¨/édÔøì?ç¨Zg(LòTŽÃ‚fØN×Q÷2xÛçÂtÉl·_Ù÷Ž{† ½½sBíüÜ˺Kâ‹›)î4<Êzø–Ãü«ü=¢góÆ˜²ª- QV¨p ‰&‚݆ʨ\Fpû©R¦eÜ1®Ožy(ð£à÷bâ»õ¼l­"òDiS#{J '°ŠéÅñ h¥UŸ^öy·àeÔpc±èûÀn!›Mšˆ’Yä(Ef¸Œ­ù¤²5‹œ´SFS ù¢eµÁiôõÝp?;š`øÁƒÿ,FõÇN¼§ðÓ™S8&ùÇ ÑÓ VTò<ºïÙ«Â˶£ Ôs¦C/z ¬à›Ñ¢‹‚„ì*µžÊ¨áL,Œà:(<ö‚=ƒ-_F.ÖDé†*fTÚ7‘µ¼½lí2Ð<0²Ô1Aa•ÕjD²‹B¢ìÓí-Då÷o±¸t Ÿôƒ}c(]YÛÎÇ"ßÑ oÓ7°Å±ö)/[³HÞE p`4¹®,QV¨Û_VõKá¼{#Tèâ`!ƒ¬ýÈ?û„ä+CûæÇ]šT—V¸ÁÑ€ÇÐûiï²*ã$t[ñ¸‹,#A!Ê~pFqÐpW Ý ¨ŒÁB`8‡A`³ÏîD¢û%ÖnȤºB3Vd¼³U¼O •ßãìPæå…‘”ÕÉ ì²š@€ úGm R@ì6T¶^lEàÓ^Y£Ït¬“:”‚¨WVcP |KäËó6‰hÁš]/píÔaº)¦ŸÈ—ç:­Â‹ r¶ÐÖ‘ÅåÖ ÃòåyïÄe,éÞ9õ{¢§L½šÒVªøåy …ÕZÛ5L‹š×îQ*vB¾<ï¦P9fî­ûìIˆÊˆÝr@¾<ï«þÖ&¾g•;ãÖ!ßÛ ùò¼ÄòÕœÉKlR&îul3ÞzX/ÿ|wœ‰‡jw›#$þù7ï¿ýðáéw¯ß|¿ÖúÕÒ5©± 67O²vYIt«¾%ªþÍWÿøû·ða-&£Ïço?¼}#úÕïçñ—x “©<ÿÚ$Z`™¸=çóYÃÄÛwð÷Ÿ³=þõô…ÃK~~ÿöà®ÓÏi³Þ¸py£Wþþ›×oa…©y´ço¢šòJ7r =£•n82¼Ý´¿ ¼ñü©o¾yþêó÷_?œ´ ¶ÿ›_ãñ×=ŽPÔæ»ØXâ³/>¼~õ‡ßþO|ŽOGîlwwÌ¿µáØ|þýç>8èýÙÅcоõ!×<ä`¾ÿh퇱:†¼#lp`ÈÑ»w…ÎvÓnÉPc‚×ïjc2j/ƒý»£qÌÊwˆâ¹®êc­‰€±Üþô¡üÃ1+~h¨™žËö6 õǯ^ÿÛ 3l×ø‘a~9ïñÿ­‚E†endstream endobj 720 0 obj << /Filter /FlateDecode /Length 4537 >> stream xœ½[Ks#Éq¾ó7øÐ1:¸aÛ]ï*…×ã K–C­vòÁôrFX€;^ýz}™õn€Ü™•Ã3¢YùάÌyÃLÿÓßÍÃÕ<|¼úó•`èþl†½¹ú§o­d sÃ͇«¸E ^ θ)(3Ü<\j^Ý|do;d¦Yhl¸¹»úïñw¿ûÕêZ)9oÆ«yšrbãþ@p5…0~»Ï_ídŸù³ Úûñxª›ÿó¹Ù½;mXÝÎëÃv}ºäfãÆw ‰õîÇãö¸úŸ›ÿ€¨ÒªAˆ)#IÖë,ìµ2“·6Šü‡•rÓ¬g;nÏëÝö/ëÓvÿòT…÷ðYð¶ã7_¿K -ÇÊ1”ïÏ»SfÚS жøøÛ«›€}¢¬ZºYÐAkè`3Ñš+7žþq¼„±2Ž ãÞìÃ+!ÆíÃÓêZÂ=&uOëÇ•ôd†± ë§Æ†@‡XF)ëÇÝv¹„Õ¸!ðl¼ð€GÕëž#‘ÒÓ<·úñ›Æà_¿{›¾€}ÞG‘ Ð}Kö¸½kvô_åÍa¼ko:¬N¦^Dxì´"¦x?&Õg7:-í6°¢öVZ+axö;‹£!Â1ÛÑvÛ×§5{Z¨Éè ³g@ô4~£@Š!ËÆï§Õµ›áïÆßSAž4羈XÈÿ¡Ö½q>±ã‰Éþð'Úâ™ì±Cú‘Ä,{óÖ»´#è±–ÝþtŒßþËLŽ;lUºøâ/-õmë¨u[Ò2‹–%Èwó2FžÛÐr‘Ãcn2Qm.Eµèƒ…«CüÁ¿>àË”5½]È¿äÔ5G–÷ö3†òIµÝ­ß7îØÝ·~&¿Ë¸YÔQGõmp˜C¬£ãÌ;Þ®bÅí+ j˜P&äŠÛÇBg„=²‘ü'MÀ¤¿Š"®)K´’S\Qšèè.Ó‘èjÆi‘e‘2Êú–‚…5hwîb¨õø¾õÌñ>n hïjÒn}Ì¥µ7™v³M&ûf³¾d-Iå_kuÑp—Eäà!•ïÊCc*`Pª9xR¢|ü1Aþ¬S͉å„DÆ!¢&iÜp]ªKñ™a¥¥¦Ó£Ë~N?iøhZïv‰¸ï©øBVOã÷}©á¹iœILJtÒWœ¼,­[|q—X+Ù•‡Ãþ!}áÕ¹çY!õ¹VdLõ“öB‹ìàÇ>þ£ n|XŸúPe+¢·Þ%Á¶Ý ±ÞUÝÎB‰È!”û6®ÑDŸ2‚ÊÕVÔ WËĵ4ÐÏå‚}bÒÇV@ïÐ5ÖÛ1€‘Zã©6 | )…æ#|QëÓAÅc Ÿ—ÔEsªë-ºMï²#Žî`|…­† {pãýÓ®uÐébϤÑU~j…€;(%Hý1+sñܲÕçg‚á i„YZn&[GvpÖ©Ðv¡ëëîh;û](v´ÇRÉDmS}@<ÄCñBãt¨¾ØG¯6‘1Cécd˜h«§¶MضýF§×¶µÇôlà)Û—‡}é0 ªËãK%% ~`Ë“Tˆê[ôi(i‡DœNý}þìÏ­DÛÈÈœ}×-Îã—(\jU~ŠcMÊEF7&:4«K•JaÊÐNçÓû°í^:¿‘Rû¤W¹H ÓjW¸l_ãs­¼šœ\–޶8<7ÃÈ¥`qÚªq9Ü®P¼Œ™Çßдfi¢ŠUÝO ëFÔwÕ¯‹šs1’/JÞÜ¿Xx2ÁÉ“gc%óu/a¹òÇñãð°mÆeÊ\p*,ã…¹èWór¾œÇÊ:–žÇIâaáÝ7\Ü„ ô˜; ž§j„6þÛó –¬³LbؾÔL·fì¼Ý64mÛwœV¹G~G³2·Y®/ ÿ»>k(…0ú6íA¸y”¤‘8ôµhÇ}ºtÇŒ ŸhìÐXCN{v>3?õÚñ|âÍC bÖBžG(±?yž.²žöe"@-ýÓÅöÇNh»Iù}ôB5Ë¥sœZ[§J©ãÁò êös w(8ÇÏÔsÝ×/8lã ñÇ1W ©V‘ Š-ÁÏÇFܾ®_<­·ãÇÃþÓW›ÛQ¼•·+‰Ù6æ’eŽÙ·4W|u¿eqoWo³Œãéǧû¯Þì¶÷Ç7o«µ)#ÍLAÒ? 'üêM1ó/3{É´°Þ›·Ù˜(9Ïï¿zÓØ d«7I×¥ÿ÷ç÷÷‡ÓRx —½ôIPõ¢ î’“Ú ]Ïä ¯ÊË‚ûÒל;È;|¨kfA2„FzÈ™ Gî¬âzsUeHEÆD`¡kf‘KäG´¡˜›9(„|N³µ¶’´¦–’Öžb<¯Á×jÿ¾Á0ð†@\&„Ÿø¡l7žR¦ÐKBOäï³Äy{¯kå1XÚÂ-.gQ†8þ‹~20NFáú޲Wï Ló½×Óì›ýy9І¸v(Ð@¬Â . ?KŠÌi¯é%gO )Y±Gpâ'ˆ™q”ÛAÎd.([`/È ²¬7( s ZU1V¦HËÄðŒÌPvk’é§5ð³£È ,T`µ”àZËu‰ Gê¼@DÁÉ:Äú†² ù­[]ƒ­ÒÀ4 ¢Êû†BZ'¼#AÒZŒ'‚ÀÔ ¡í¦š:·+© ¥ŒÊÑÌ€(ý§08cèLÝfj R´Hù¬-HÐ"¥“«à¤uƒRO,u´H¥žf¤ h‘JaÊHÐ"õ6iŒÔ }¦óJV"øÙ¡dMtàg)¥}”é£Q£âeÔjêG[\…ú>Ÿ”–zðŸ3n(tÇd8Œf„ÿp¥,Þh‚… Ë-lE}bzÖ.vvÊÓ Dí §jÇ8çùÉ"9åžuj;”¥„°4¥ Zi÷†ÖF_nùKiÅ}ÍÄO›™;.åiÒ‰æl¦ÎL;%©MDdѵ§1†a3u¬À a㼡Užž"‚~7O œó&”iB!Á©W¬ó žú»Šx‚«Ê:MÇ…B M…E™7Š# ™ ôZÐá£LQßá·dð þ˜ÄàpM†W3mXb‚4e ¦VÎòú½äɯnÏëÈ€7dˆ ÇT0¼o9Ä5íÈ"$Œ*t¤°P‚óü ñ†Îűbâ@MÛ#îxê¡XÃR+nã\½܃åïi–Íö´N xC‚ q!…2ëé†MåÖ´#‰P0²Ð™B¯)¦gË3R£5GHz³ƒã~v”D¯±å8 ñq½Á/c#˜1|ˆMn¦×‘ïH:Ô¹¥ˆ¨™jXÄ%á'ò÷Yļ½W‚ÃáÊýO9 $M X>}Ò@¡uàu ¶ É%Cƒ!çXc…¼.3A…ðÐP¤™¢°(SG"c±#…¬=R*–"ÉE&Chf@Ó¦šãhäèTÁÒ§ÙŠ×àj0ÌÓÐT0è=yh¤ubA;2} º°BF Deá‘Ö´# Q²Ô™@¯kæ0RºXQùñPÊqí,½„ˆ~GaÆ:Ä <®ÁÔ¡3ÎÅô€Ë6ÊZÄBZ!žÇðB_PY+<Òšv$) F2è”`½œ)TÓ%VHœ žâ^%pÃ\òÇ @wÔ+K†(ºóbrq†…f’4“GÁ¢^eÖ-V‚tXÁ¥§¤+AZ,ô…\œ+V†tXDÁ´X Òa%¬FÇŸ3ÊÐ;D Cg£ ¸£#ãÎXÓƒcnŒ#L¥OVq_Íh“;£Òµ×Ì)£ÍN4}nE*R´HùX/HÐ Õ2!@‹T›Œ”-R©Û)Z¤R3R4H «4fúùà zL„²¾8Ü`4ùìáƒPn”}e¸ù²w‘ôjÁ Žö^Eá.¼N÷ì&ç_Æëàô*ï»—îLu/`óýY#©Óûòxí"¾/WêÂ$ߨ{é&^¹çŸOÎßôó«aÿS¯ú +ÈÅev‚k~ùÅwT¼ðþe/îy²Ë×t^yqoè‡/¾¹'«‹r;¿xoLù7f¸¦;"M “x×^áÙ¿(2_FñQ÷ó žn0èæËþpØÇ  ÚÐUsÇ/,;'“É=Í©ª¿§N7Aé«ñE·«pê·ë©¦‹ ã·—¬‰1Y ß_5 ÎóùÔW/1¢ãóÊ”;ï·Ÿs_‡Gåâ#ÝŽ ñ¾Çòj'‹äLwñy{Ñôøv\ýí4¦3ƒA^T›(ɽn%8l»Û%o"i×K$2±z1!|¾Í¤ÊïoK«ñïZ“Oä~D÷ÝaåüÓêO«Œ?÷êY|Ìtñê™åKú¯_=‹×î’Ï—^Ö»],Raã§³+}Úó…“³›fš/ã¼ü+–ö§;‘ Ý„ý>×»k5Á™"]±øeˆ¿qÛžÚ_¹Ý]Ø£Íù)F<$ýxêcæn;æ] ­ãÅhÌët1šQ”[Üs~9ÿþ˜öx¹pO4> stream xœµ\Ks9r¾ùÀàÓú¶ÅaMá ìm=ëݰ=ŽY¶#´>ôÕ3ÕlNwKù×ûK¼ @U“É ÄF%P@"óËG!ñëjèÙj ñÿ«íÙ°º=ûõŒùÖUüïj»ú—˳o´-½[]¾? ]ØŠ3׋A¬Œ2½ju¹={×ý׹彳Btëñæübèe™Õ¶»;ç¶43Ýqsw~!È´è.Ï­è‡A¨nw~ALšîúœú Ã×íö;ßs`¢ûôMìè\÷7ß*œèª×«_{¢ —Ý_6ãÿ•¶»CCú¿—ÿ޵jY®U ¼×Î`½—×gPç—?Ÿ]HÉVBõVkj~×ý ¯!&XÙíw?ùÉKË1ÉÅBÇD¥ºOaI\¦É;ytûÃfw©”ìvïãß‚u¿~,†]— Ú¯›+"Ĉ’U¼Û®ª%n¶`ýôx÷D¸îµ$ã—Ãæ&n»j¼užk÷6hF ò#™.r" t\ÇW+'1NÅúëbîW¡»/iB¬;”\ü©âèæX>;ÆW„Qo㨎wÇUš RÝ}¹Ò /LôJ:¾ºüþìòïÀÜmµCÇf¿¢ÐU ” i£Ðü3ÉÌ·?rÃV˜<‰é çܬ. ^Ì1é) ”µªž1¬aU~ MI¨{e¹eñ­ÿ´ôVG (Äê‚õÆh§N¿ÕöZ1„ïšÝá‚ô<ñ6fÅ iŸT"ðy¦\b—e-ØÙí:ñ:HÌ¡?‡âa†Îvñ ãhú»Þc/²40cÕ&—/ßß™•Fw | ÏLZ¨]£Ã Ú0Jòùœ›zʛ۞= bg®¹ÖÜxñ&f)ÓýçwÎ>½àØô® ,j Äñ¢imØ‹·˜¼â4<‘ÀÓj °"Èb߈_¾›ÕÝýø`PI¯CÒkO¥y­ØžZÚzUžžÐ†1w¹îßÒˆ@µ–½~P̼†–Cz¢¸ÇAß[ªn¬¬z÷:-Îéç£`âÔ" r%Dҟ̯Œ„û‚ÄBI­fÂF“ ïYc¬"Þ‡ôxŸŸÑÖµê% #«7l·Ýz»gŽö’æÃÙ€çœ6@Ó ”¦¹°i­FJoÀ&CŒö›ß’U¬ †©¡7C´Šï€54‚ÔΙ%ÊxIìUSì8¹•Õ†ÕZqXï¿dÃc‚ñj~ùáÔ`ûÌ6ŽÅ§Jb d´I…ˆePLC[¥ dõÞ¯Ç4o°¦v9Ê7Ÿðbñ­ƒîŠMøå¾„•œ’=ƒÓ1 v¦Bk<`0-z Ká#B÷U‰I\"(Õ¢ä%• MCok•H•%& Ǭ„ý58À0³äöuèí$°©˜ÒšþT]éÀ×ðÒ\޼¯Aà—Êy «ÁPŸÓè’w÷Óvà0þÒɦ饭–†vwŸ«y]Ñ:Ü}˜äÌUKóÎs.\ÞÃæúÄF6«*È0d'Z¹8f&§§fH\Ýiüí˜d6»`¡så‚U–¦Zèq³+džýàÀµX1€§RœÐÌt²äpýðÓÏ7ç€ðYwWÞ-૟KGš'ºëÒCú•yïwÅSƒc¾`ñOƒ³M¿U÷ýŸÏ9I2žü)öÅf­ï®Ó@º{I2«Aâ}&ŒZ3>ôZòì^6\•š<$M¾¯—1ŒÒý|ÊAªôèH-õÂc6sÝ\8"kÇð"Õ÷ÅàÄ ?6ßn’¬Ariã¢\…Ðbè%OQÎÛ%‡PS¦ŠËô&Yoú¸>ÔÁÁ/ „µE½¦fã7â ` ýmÀ”XµÙ–®]mn=ÆHDj¦ *.¦ø 㩟‚ÍÌÊæÆÏ04nÎy™*²šgøÈú¯÷iyüäú~-‚¥È­Ao¡{iMãî]»yÒŸ‰ÁaÕyóØUøƒ:©¼5!ÎÓv@Hí¡á}I=Ž;Ïl&á"§7LAÂäRSç&ÛïZ‡¼ŽÑ…pl&né-¹h¬÷>À´„ÙÿP…1ĘÔÛÍ'OàZ‡ã.ŽyÈ¥i6ß>ìºD¯1ö÷_/ÏÞœ…Ô‹ZíO§\*¦\¤%`w+å8¢=M)—Ž“ºÆa¿z<'z1Ør¼w3ANKÞ„hN=÷.r¬Lz_X6^!$©Ä«ÎÙ“'$ÝdÚ`¡ÿ²¹­‚¶r¬—ó“ì>? tXÏO&_ÀPf ôm5`ŸÇûöGKw{À ÃÁ=ÞÓc¬øêæîxC=bÈAM»OÕïñú}ûûjww8Vãü~]¯ëþ½Oô¡åv¶÷ëHø7éŸêIˆ ÛaÆI¨<×ÞN<¶h´»,LoÝÊ1ãEMöVxœ©„!'u¢‚Zj¥OPmϘ‘¢·,·Œ -m¯ ‘¹ã÷zz#i¤øÓ5Ò-îê {Å1 ¬Ò¸°«…γàfÃól8Ó=W¶]?×ॠëÇšlny‰$Z„ÉÐCáÝšñfÎsMk”´Õá(,ÓÊ€‡p˜"„´{LXÊ(-iÓ8bøâÛIéb˸Le,ë©>§×CF%Ên™Dx•½F¿Ê@×)ï%ÑŠxIœx¦2àûIª –´îá}ý4èaè¹#•­š`)PI.HÖ&ªÊ¾µT/ 5€¨¤–q¡¥í•[XÕMo|#ÆXX˜@EªdÃ~ Áë‚%Ët±¬< c\Ï“ =è°_VC-yáb¦–q™Ê`ßàл…[î=_ 7³è7Ñ Få6ûЯ2TéEÞé‹“ÏTðò†“TI„u0MnÊÁ{¦ó u–(Qå,Q¤ª5¦¥ÚžIC£YžYCÛ',5·¦DPšÕ«øÐÆŽ©”‰ 7KŠ21'&‚Ò²«DP¦Ê‰ ¬Þ¹y•D€Rƒ7ÿˆDЛAoAÓBc"(²£N{A‰¯‘JìøÇ$‚ÖûýúKü¹¹k[®ož“*4Ìçü#~"Ä üB@°b#gÆÑ‡ü_ç2•„תõDU»X Ü CžÏ-ãBKÛ+:Y©U áÓ_Ç€C)Sî AHŒë ;Y—ácšM*æìÿ§õd”Ë-/r³,„ßpÊtÆm3ç¹¢=-”ç<À@㙉®ó@™Ö…][Q%ªki‰TŠ"w8„EŠ¿”–†ÊK‹óYûØ2.´´½¢´¤y9xͺÎã¿‚´`—%ì;}†YzËÒ2qÉÐÿi6´Ls¦ïIaýÚ§ócË‹¤…0€ò"0ú0 ÍœçÐûDi™V6„OÒJ[Æe*òŸ4¥ˆ!MÎy[ ŽÙ²_¦á[ÂÏóZCG )—ká œ|¢ôü%zé•Öq ¶…A -'¨ %„°wޱÁâBý2Mv#^e¨’’rZúä䕃ãaOQM< y1ô*úþHg’ª3>.ôH%LLT~´T0ûtZ‰Ü2.´´½âbÓ¼œ?²—ßøÕø±èþ w…r›˜ŠNÎß© jÁ"C>OšŠU঱Íâ…ÕþÛ¬_<"ùÜ0–« )ž¼(ˆ‚ÍÙ“i齨b¤Øð"ç ñ–hA(úv=>-–´ ØEûMøëböT2ÂFWîzjYÈ4ψáPæä@²«óÏê)@8pÁPæPƒ×ªšŒU¦Ò ÊØGª&ºi¨hg4#g(µŒ -m¯f^Š>ŒOo|œ•€ª3î0ºÏÔG ÿn÷iI¼ƒ üŽiE¶ª˜+/´Úÿ|™0*Ÿ_bÅe1Íhéš9{IG1Wø~ÀÇŸâQÄB”›”Z¢×Ù<$rú‹Zàèz3$`)/[H"ŸÕ‘¶^ ÒÅÒçÞŠd¢Ú‘›™©jÌm©¶gŠ“¦°Ü2.´´½šyÅô_zã눤„^°’’š6ûTu⎜fSf1ã˜UÇZ2veîþ¹â ÓÃ2 ´8ë"Ú,¡Ø_oSÉÑ¡µ˜jB)Ql\nY‚ÍúSnW”ð§!Z4°ùœ~$ áÌ‘ g޾æ åF¢9ó‡ÂÎa È9ÕË0ùG:í(üéöÒÁ×Á>ýà+‡?ˆ¸ ­T~=¤²>|¸Sb쑪ŒÐ[-V›Óç°áy”ŽÁØd@‹OQ‹ï¡Ü¸té=TÇ©¤ß±ËY7íÆ æÖ3È…ˆŠîëqB=ÕšÁ–…:a€ÜalŽ@ø¾4e6¥äíÈPÐÉ|_WÉQ,çulAòäP×G7ãæè…¢ŠøÊá²r«ìp²Ò²-¨K³“ˉp»ñ¢¾èc7/V³æ 鯴àÕÞ®kNî ;mL¨ ¬·‘Ì8 ûКñpɈN4ÜÐaSáúih ºeþ¸ë>XÃ$TP=&Ž!0<ì¶Ó#{æ7=äÀ#Ý% F‰…§}æÒ¹[—‚5æ\D}uȾáts M¬›âJ÷ o §12B„ÒùD»i*æ6¡~Üxßó~r8÷ç Sl-çuxF°ä½U*´­ï‹ø&„®dg…{"\í²ßÜÖæ§Èj¿t}\‡NÞ§úpÿ[Ï`jóòöøÒÛýîcµÛy½ó:ùp• •°ûêõrÆÄM*Ó>Dbèßgº¢©Älj$Ó*ÝÃ5øí-2µ–>z=âs¾^›>¬é'éÚ‹ʲ» L×Ù\ÄûS(I#ý]" 7œvÌ9ìg£Lƒ©ëÆ ”b¶¡Ô[.lh|_íI§[ ì¼ÎsªãÏ[Z¾ªu‘i Bà pþÒ¨ayŠ-f¢XONéó pµ?núæ^P¥ñ`ç!/½B.\sä‹Ñâ•Ú(ø@E0åo` °p®½GªÕ/_7í–.6ÈAöºðû}d(}øÉÀpÑnÐYÑä%>ìTƒÐØl<ž¼†•(¶”ÈH Zò&hk‘ÁC}#Â~S‰Ps¥Ë}×6Ü4¹ŽÇ‚ ç1Þß„C— MJ5Žt>QÛ¯¿ášÂT *7¿ì¿Ÿ)áÐ=Íï—= ]Þ§Ùub~¡Ü5ב1‚oóеC¡§l/eZ@ééj8?î<™˜­ç9±MIùe½ûѸPãsÜ#ðw·p‡FºøÃß»íbÝzÁ€-œ®îw ;iŸnn¯„àÊø(a&0ÔnãÞë±JDÅÐÞ‘¯dÒå…N³q_p“öy}å|µIOÒ+áo=GÀ0ÙÄŽá*'ãó™ÓBÔÉÞÇýzsîocÜ”‰½™ø;– JëmáŒ!õ¨êïÄ (Þ"¡›~FâmI)+=üýR˜?äÄ»ºª¾«îÔÛ—¶Æ›úðíÄßýÇÃ^_vCŒ¸ÿÁ9†Î“ÏÃ=¤ÍïvXNµÐQ’tÑ]}¸|vm ºs6-ô@9ÌUqÇ:-¡Ð&8j<à°ïi£{…Ük{Æí“L˜é-zÿjF$ÅÙù Œš!(~Å/>ôÍN”Õh¦ÃTô ­–Œ%ÃD»´H0ØËC™ù7ŸÍïæ.\ÌíG°¡; dÄd>¿%0b“«blÛàf¿´@Ý¿ÎýÀKíàž˜9£›9¾Êñ‰ÇÀ6€Oí,é`ö3\4˜´ûbÒAˆêÏEì[Ù–ösœïìŠíSî„úâoÎþƺÓ?endstream endobj 722 0 obj << /Filter /FlateDecode /Length 5502 >> stream xœµ\ËoGzÏ)ž’Ëž‚€¤';]ï.oÀ‘×Á26+YÒÚ¢Lµ5ág†¦uÉßžïQÕSU]=$-:hØS¯¾ú¿ïÑóóy׊óÿ…ÿßnκó볟Ï==ÿ½ÝœÿÇåÙ¿¾²ž´¾óâüòÇ3ž"Î{qîŒk½2ç—›³FÙÕåO0¸·Ù`åÛNh˜pyuöºùÓŸ¾Y](%[ß›æÇU×vF9Ñùf»Ãçªõ¾yµý¾ÚIßÜÑgãuß7ûÃqò·wÉìõaüee4Ìv®vãpxÇËuÆ5_Ý$K ëûq¿úëå!©}JêE¤õB™¶·)n¾»Ûl†ÝÇ—WŸ.g…­•BÄÓÝ¿Ohß®$pG:ݼb|ßzÛ¤†=>†-»¾{Ó Ñlibï|ss_#Ù‹Våyÿfÿ~{ÿ¦y³ªQªúÖ 9QºþàʽèmßR²¶« ‰tHÓ\%ÛÕ…þÀý|Åt7ã þ”+Àz^öþxŽb]³Í–Î6Ýñ*ûìáÛŒ¬q›œ¿‰ê`ÙGA@ʈ¥Fé { ùïWxDø äî Ã…^ºÞƒ´F{É| ‹ë^ú#ùN[Etk)à”)ƒÃ÷ VoÖ[¼Jú®r¸Iæ_ñs¯üįˆÿG²ÓÓä^ƒ€O{ëlLvÆH¾H5 IÒ2’ÊR¯ Ú,Ðà]~S©.朾AYî,0æ0ߘf`ÑtãõGüBò-§_dûÅóïP ã2>ŽÓ5¨æ‡LíÞ…-l±êzØóœE^dÃyˆŠ2(A$7 ž—/Ï.ÿå5l‰×èm§‰Z C]Ƨ}&¸‰BÄ"Ë`7d©½^‡Þ,_ù¬ ™Žéy²¸GKOÀÏñÀÙ{ÐrgIÙ_5wQš~YEËQj:¿³ÍÍÒš÷ÄÞfÇÃqò›fÚŽ¡©Üñ<ü:u'w¤‘à+¤k¥è0®PÿÀŠmz’V¥4ö A{¬m¡}­˜¼{'\³+Ü‚—]”š«p¥Ù…íf.! [º-+X»Þ¢WÖ€ÙÙz˜p‰›‹–\‡°|TüøÍ˜s”W9PL/›õ¸xÚËÑ©"™,ˆ>¥>æ-Ò®¤èPå7Ù‚C0¸`ôaSôÙ†@¸¬­›ø¸Q\Îm2+ÿf_ù,çFž(0 ÑÂ’8ân½žßRdmÅ*×À`ÃMÀ>Ð"ãë8 àB§ ¼¤i§ã÷ ”Hu¸`Ú`žjµö|¸JtrÜÕÔ;t{Ò¡­vŒ'í¶›êÙ­n•íäñðµSƒ•º³ñÔofhDöd$«n)Ü3 b÷ƒ£ÑæîâÐd0×¥¯¤c0y:ĤE7}²å!*ÔL§”ýõfÕ¢—·¤ç—Å$:8ÜRŠ(ïft¤&ˆG`k÷€¹µN΄x ƃœÉV:ä á^m~i»à‡µÈòW÷$cÃôÌ~ÄÈÇæB¹M¥%˜Ø÷învâ(Èhéi5pªošë n¨†h‹^°T‡1¸b£Y_GÚ\áÞëÎáTø€n˜)Ó?ÐñÕÜÑ£jÖþìñé‡0¿·3LH °ÉK}*-ëŠeA¯f‚‹Ëj¬ˆq´@ñM†ãA3 ¾ báš_ÆTÁ2[w}\pXE\k¢sK a3Ù£oԹѢh ¿é8‘DÐ(Ól†Ýu4Œ¿âsÂT :uMÄ9 ¥×»m*u·súY®ÃìÞ5–a¦Ò`ý.ì *ò&ÐòArMâLbC4Øä(6%-Ïcl&.ç@"ì>{˱V"¿çÌxŒ©¹ù8»#‚óè—öp®ÙÄP­ËðaW†«ëÈ~Pm¸®NMqKNZ%À¹K­CÓié@Qijwó2ya;šÜûÄÇ'mÑXq%ƒ×o®@ðßÞíkÎD›šrs_ dÍ©Óe¡„‘g(Z (¨¥r‰Zò-!£"M¨´v:#Qoúâtÿ„„ÝÖή”‘ñŒ%XQb*@‰pÅóˆ&À“1LÊï>»ù°§20'Þš§ ƒ= œÃ®TÊ’?ÂëV{øs½¾{»¡©]>,ãC>bHNÝfK %#«Ç›ýÆ.µ¥4àLåx|ÿÄ©Íð ¸·×U@+ñcÜM‹ÖÄ—±QkŠlG´ˆ”4K,âqS(!¨HI »^¥JÅ›¿ú÷Õ…‘#²æWühÏ6ÿvq|…óõóð  »gáRž=Ó@áŸî>K†>C.<{³úë*¦ Ò=¯w·¿`¼W¨m´¢6=Eš¿FBD\|³¢`?2‚Žà²ÅÃï|&B±7À€]f§ï!r:dOb2B+NŒã´NV‚–äa'Ó—ŸS…uƒ—Žqo%hµ€,A`àþ[ô÷œ.YL#dþ~½¦t=¸Q5w\¬(2œ'ò¾›…9¼Aá—ÖŒ)wk„:2ZeQÊ)49rÂ@;ƒ÷ˆ,Ó…† šd|übUU–)+²$|,¢Aèmó¿GUj£.ôÀ'ò‚Q3¾<ÊkõÇIìe t§C`w„óÀއçaΘ’j€n[×I÷èÀ=¥òS}æ¶ŠÂâ°‚ËÅtu§îKv¼ÆŸ!õù'Z®È1ûL~O§œˆ§ÂÖSNº3ìÇÊü:î v9Êé]ìŠRÇç©-.ä(ßöZò6%åLóÓ)× ¡*Ï©p.7i2n³z¦@”_íꃈ^ªÄ­YÒÙ¢rKi•|Ç.’ ‘TŠ#ö‡]Ï„sôý<¼}^=ˆEó2ɲ½Úþp·?TÏpRO962ϸWQÇ* x®\n·ó /Íæõ¼…´˜ÿn½?®ý„Ÿ£(yºæå´`.a(ÅÈ“‹?-Ó{®és ´aw Ï*U8Íú\îx©^f±7‡¨žìlÈÚq–g·M—Î<Ì!NqYZ ÆÓ¬úYå9æë(æ«ZfÍC‰ÃZm”’wœ=%ïpGÝÏ«Œñ,˜ÎŒ{ƒ9¹Z0¢KU‹)2ö“›™JÆçQ(C„¬¢vŸìÙí„l0â"ÈAA ú¬‹ ªx4[e<Ì~^b¸aª‘mžæ´DÌE¥èg––`²+U€N§¥ -OóÙ€\L`D\TAŸªÌ1LA’Ib‚´®#–ÀƒRªI1fÑh HÄüåxS7Lp©Žñ ‹š…‡ ¨Ã ¨5¹ÉA.IÌtÊ ·.ZP F\‹GÚ{ðµýbh iÄC)ÈŠ;Û’Á2޳DÊqX­Ñ­ÌpWSm »D‰r2ŽÌíÙNòŽî1²Ôe ž\boN‚€dŸDL‚XæVT§RtçÈL¾üšU¼h¾Â§”/ÈMGš†ÛåAV@ö6Ô—h:€´!öPhÔQ›Ê¸ž™>"v,µšÈÌã¡“6m,ÂÃæ?†UŽC”iâ®poðÐe¾cÖ=B³{R}rȾÏUŸˆ£¢oB]R»Ï­Ú>‹}˜]޲µrËüSr¿Ù„¼ðy Èq7^¬*."ƒá”ÖOIÏÓd;Vù éO,Õ–Ýò ¼Xj²$ÝóéÞ౟RVK(ÉÁV¥Ì±NÊ_pF‡8EÛ`© # \¡w³Î?^¹ìðнCÀ’—6Xpp„c°ÈðäÂãïò°* +ò •¬îôe5k=æÅJSúíÛ«j‰ºÇˆáT>îB+`‡ËSeÓ²ßìëŠÉ²v•ëäÙøÌ¤€šeH~çÞš% 5i²˜7])Ëy}Rá™(*+Ios[>\ñ¼¨Ñ4ÊëS©Õí~$ãfQŒ†Ÿµ›£¤ˆmAüËæ²ÄQ¯ ¯ì}=‘#Õ,‘6œùD\’öг:óã¸Ðþ„¦.h™Ic‡1Ä]Sçñ”ŽqYËlÞV W"IUÀ-ÙcÉçظ»Ãxƒ‡7ÛÚ÷ïâxÛø¡S6Z0þB§_üB&ëí [ªzÏu.ü §wT-ût­vË™ÈÕ©Ùa?æ©ÚDˆpŒ¸¦ØDË•Š@­!_,¾&nhçEz®«ÖœŸ[óüÌ[N¾&A[—Ür·¼oÚDÿ–VÐà@·B·>ei~mõ‘ Ø”ŸF ‡aŒÇ™÷•0 ˜?±-…kŒ:À¶@¤W–v0—à0À•³¦|ŽW=)*sfhS¼‰3ä>Šà²Â¦èDëLD£¿cc(8ÇଠNJ„㲵³-l>Tk]‹¿dÜ<‘F”*776ð&òéRâç”_b|m-¸ö}Uz„ÁŒ¡[”žœ3KQqcë\ÏÍ'8ÓËódàëY“ ï¦(?9¡€fÌyy3æ-)c±[ŸxîOÙ÷}ؽCäŒt>ïñ˜ë—I¡¨yÓðas™Â9uílj2vVZá˜sÖ›”sÒfûÐÐN‰ótäï]¾m¯û©…þEmÛìÂÊm]¹- q:2‚…‚Â켯¸ Dc˜ÂûPg¥0픕~ Zp$+&W”ï[s “õ¿À† ÙÅSþøûã€ëºsñm"Ö齬¨·ìñQo…«¾ ˜òÓ cÁ?É2o×a@?ïdGt³7ƒRÓÞ™­k-8Q£¦C¼xXk±ò8Ù^èT>á~Íéûíÿ_.ð•ònªÇ“gÃK€ ÇŒÝëxËjé~fQߦDñ€ÊÀýΚ$3àÂ8•fì'‹^iO™ µ=å÷˜/cðV]+±YaIrÎˤoðË ½8Ç—>¤ wÙõ€áÙ±ïûïªEëZ#,:I݉ TÔö›ü—(eÿL·ï’‰ërQ»›/EU6ÔÀ4Õ«ièM ‹P¢3UáÎV1pR¡Teõ?\žý·°ç×û3D’ç÷gÝùBÀ)AÔ¹ì ÎtçG…Áø`}öÝâ‹úÅE„õ±W\ÑŠ e¶§·õ¼‘ÎõO¼‘ø~ÕÉý>éF¤Í§ƒ¡ }i2òoê»wÇÞQ>”m˜LCÆá_T¡ˆíZÑGïü¦žÝ½ <0 Dž%ârVò…›^ú®&¨êCÙ†ZK ï€áöBáo"üÏÂnfþ3?×Í·/¾Æ? A—½R 8x;Öé†x(_”×¶1é v+_ à)J¦/ª Ê"ð¯Q˜óÝS…BõÃU÷pI(?¼‚¿Í`–^ÊÝîB·ïÀ¨˜¯2ˆ"Á*«)ÉúŽÚ(fG€x\©MÏðTâµé±Ï<%> ÄOcж ñÓuÁtuÉÊO^²‡ÀO™lÉçŸRß¡ú•”êáH5àÐ0B˸4VYú*w¶CZ&‰m%ÆQ‹o<éHÖûmüËž|£?×ãsš5x¥3ÂÎܵ ŠY¡•†•ÆWèã/ªÈ,ôTNu-ZlDT”úA•{‘™³Ý‡ãæóäW_…ØŠ_Ž(~‰ ËKÝMäß’¶Ò²9ÝŸGÛ41o².…OÑ6@¨NÉœÔUûé´‚Ÿ†lc¸¶<1B9O.Íûðu&²Ù¥-Ñ¿ñèÂb:J¥d~–[ƒq“­+KÂ-jm{©sŽò †:3‡Û…ìÁzœ9Gœ¢kåtÅÅÉ¢ê"Ö5—k×ó;õÝ»°ª­ü·xœêÓ«v&yn®ê<ô;AÊ~sŸyܧÖIÊ}àBÓåä¦>-PNæ7¶ÛÔé'ó‹qÜÇwá©*[yS°µñ[ ¶kÑ E•a7LÙùû̼%8¢;Ó|à ãkʼy_‘ Á½m—ŽÁ“ù…ïløp AsƒƒmöTÒ¦¿4–©÷PÀ›M|i›:)¯Ã Dî*¿îbþù¥¯žµb}›Üèzœ9Tǘ“šJð3Vü©ßÍÁ<3œ“ä¸[÷Ô/{Ñ¢ôgm/8ÊJ¬ðLÕž!>×:¡Z­ø£Æ.—H&֌ۚþy3[‘dZÈû~ ‹QãÂØI¶¥[vŠÞ€<eöH¾1ú[.³jvaévÇM³†þÌßWŠMY)ú/üã7üš<öqc¢å~ävwOÅ¥ÅN·”ÛCœ_–Æ©;_<:l»ÀsðTJŠ“uów ù+#°ŒBʯªo®â[ Ý”†úûãÙæÝ¨TµwÁQo ÁÜ?ärËoE*aòùâ¨7ºëÀ§]– ±„:cg=óÁÑeÿý÷_µG¦~³Â÷jÂË ]yI§ZíšçÁ¾ߪ®ìyZì½*§¶,3ï§lYh"£žòùûãq6ÇÏTz•5—°zîk¾<˜’U^DÕjá·A†M@êÏgÿ/'‘endstream endobj 723 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1147 >> stream xœM“}LSg‡oi{wÁ…î íFëdFq‚îSQ§ˆiQÊq€Q.T PÀ–/­‡‚Ò•+v „/ùŠL7èD— ÍœÎIC²ÄŒ?–œK®Kv‰Ëæûçyó>9¿sžW@ˆÜ@à½#ûx³a§†I‰LfŽg媗ª2Ð.:3Ä ‚DÔó†ÈìýÄëîò›+ˆ¥ã®ÉÑæ&%Š&ˆ(â C¨ˆD(±‹&6<—G V°GPçãÖ+ôæ‹Vc§'‹ZáŠÓèÑ_ȳWé· ø³¨ø½ÌZxâÒ)¶ÅFëmÆzh„ Uµ&ó$ŽúJçkšLV9tôj/¦;YÀ †ÍÑn%…>¤ÍÕi¿Ô7ÍEy†\]©RWZº¿Ì7þtªÉU©OìƒHP7©;rZózJ/Ã8\sÜ£¤ åz8{F¥&ãù 7ÜrÌ  >ŠO*>ÛÖ=Ò×ý}òºù‹j‹©¶ª¦JVgª®²ÖRÿ …ïÚ¬‘ O,fÐ\Ðßb\EZ]ͪËÙ?€ ùt¡^»§ß WeÇQºÐ*vqÃôXÏ‘œçvŽx_•6ü#zýŒn³/©$x¸déSü®ná²ÀPá Ó©îO°EÀØ‘»7*,‰s‡w ®éPWÚ¥d—î> Ï ¡œâä$³ëÄÉ^ÓÌž©Ñú›-_+Ûoö9]Ð ­Åõyf½©¸*…ò\ ;žA/Ô —€ý„؃õ4F’`¼eôÆØÞxßjG’;µ'×EÅM/b®'§Yš¾Š1’c—Òg–¤èó”9iÇO©€G§òèf͇÷fk1ˆsÇu‘Àÿ ¼‚C4~LÞh/H-./*;¦”.äï>“š%‡bSé…| 7‘ÚŠ,g-Ð ãE°˜,”tÞËÏ÷¶Ê¡?«-Ö6êtÚZZ)é“ÁÖÉïøâ©“mé]GöõüÕÿ:œc7Òƒ-Æò*8Œõ EæBÈM1S ËÊdŠãøNµ¶ÏŽ[íñŸfHÜAâ’e€b‰$ÞÿÊ!=5endstream endobj 724 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2509 >> stream xœUV TSW}1É{D¨¤Od¬ *X©|T>ò1(‚PÁ/Š B"""PQ«V…‹µudÊPKä#m…JQ~êX,RP0€ÊŒ´Ú9/½aÍÜ`Ûi³ÞZ¹/ëž›}ö>çì+ D“(@@/KMŒK6®fdb¥þC}¦™ ‘™èâ[¦=–à1UkÑøeüØ+wù§ìNÝ”¼7}_\ÆyæÖ°ømá;"#w&%+l;8RÔ**œ²§VST$µ†r ¢(G*šz—ZKùQ1”?5ŸŠ¥(g*ZN- ‚©Ê ¥<¨”œ £VRjeB™R³ ïºxxC!ëϸ™]’޶YÇÆîôÛ¸­à\ºô@á…ÇjXwúžÒ¹f^¦´õoºlw^æUô©òª±¾z¹ªónµrÍI©¹¾(M 'ÔP®Ôëøj¡>†ç8|ãHÝGãioÏÇÖË‚Ë6K×5)µh„… ÀœAø0b¾JúŒÞ X4ˆ½òO‹X¿(p#lÅâ4˜‰]!æßjÜ“–Ìߢ͡*­‡Ÿ×)Ôá4ad!Ø{bû€ {:ºZÑ®Rü¨BÚÍ:q ÷=Äîx?¿Fø1CÊ © ] WU–óSÞTGôç¯Â ‡uz…3îd$¯ “¡Ó™–ŒŽ+žÂàD}÷ð±*Ëv œÒ,íµ’èøôi’1¾Ø_cl"=BâjïHyÆÓàÀx´Gþ •èúPcycëg`B@|5 6ðÅâù4v0ø`Þ‡,An(O`2ná¯Oç‰-v'{ÞI<›žkp²! œÈΧôïò“ÁEü’kŸ N ¤Ì>oäçGÇ«|¯°L·]Ð5Ì-‘ïOîIy_‘ó.;@ŸþçW•ýˆí­Û#ÛË „ôý!G°éþÌãIV¦&¯GA¬SǪŸ:šKZnI?Ž.Ûӂ΢‚“å§Y<‚8´ëHVjZbò–÷bº­ª¹µ¦b¸@6ôÉg§* ØÿçyJ9€™Zâl b'üq>Ã*ñ3¬aXá âQÚ˜‡±]ÀW%hÑ@“VØ¢WpãŠÞ»LíÊfe©9éˆÁ|¾ÂRÿµ)áñ2¨d`.æt¯û0l±ë›©õŒJðP'„eä0çq£Æò_'°R­“ðP%èâO ù„iǃØCzæœ0n“õbL(↭ÿž³_§ ÉÓ—Ò Í‘Ä[nX€½p  `Ö·×ÊۯȖßgpÇ)3Oùmʘß~ôD61Á!¸<ú|>àÐîøØ«É‘7g>Éi)^údÌ3M'ÐÅ$§´åëw£h´±tWý¾ G/ä6±';¹Ó£·î V}'haÊÉÍ!9ºŽ«SÃµà‰†G… ‡o8Ȥo +g/]¬¯-j@wY˜¹¸ÛKq˸BGó3Dp¢™áæu^^ÑëÜ^Ön˜:A|¥û„¼+q ÷ÍÚÊ`‚Ñzf±ïÂ’ÀË1²K›Úv·¢ô÷І6…A‡7§+÷&oÎ\‹¶¡Äü´Ï2 üíXûgúŒC_8X ~t÷ü—uµW ;X°|(ƒ3¸‘æ%Ø OZâîºf¦Úú‡e¿z¥‘ün ±Ja÷DÁjˆMM²¼üð~•´4+?mg_›å¼uö²i+b¥pá—ùÓ †SjNÇ‹+á.GiMÍÖ²ÜP´ñ/› Ö .¡J–åŒæ‚YFµ÷—êÚ/®# –Þ]ØNЇ'h²Á)ØË4¡ GJöO/؉6± 7Å;HÍ!•À{eÙ1àIܼ æ²< ÅZ2¨WˆÙÐDb¸cý‚n/Ð yÿ — vŽìMèôpxOwkˆ|ž*ƒußï©ÛŽ"¬Q|úÖä½Ê}…#oU”P—òùÁ‹yWˆGälªÜz-h`‘ÝS5T7^ªjGwÐHd‡C9^Ñ8ݽ4©µ±÷Ûÿl{´Sž%Vöèó_*…Æ ‡a”y7+kí „ò²¤L~ÎG¹ˆ}ÚøÕ=™~ q"O[ =1iŒMs“ÌþYÆÊ7Ò¿™~ôqøGï„çÄþCÄ64NÅ©â 2ŒBp"‹ÆÆüïÿáÖ“b|¬$—'.>þªf$½ßµÞîüæâ¶`)7þ`|½]b|åg2O£šãÒÃc¥Émq¥A(mؽQÎJ.ßgˆC‘½„®—˜ôR;_rvv/i¾Xdü"¾®Q z áA4[Éq( v»ƒC_×k¥ÝÁ.¼x poŸ!°e ÿGBNà^€ÕE°›Bç‚»†ÂvDCruÂî±ØÇ“°´¾Xa*y Ýo:8™™ 3Sd6õ›™¡A³)ÈÌò˜õ…ªendstream endobj 725 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1838 >> stream xœU• PGÇgØÝ™–UXG@ãÎ‚Š€ïòƒñ"È. Qð@ñ@Oäa€EäµÄX<""/D aÁ„eP (‚©HxYI$§žgÌ5…Nüf¯ÉÕõ‚e%S5UÓ]ßtÿ¿ÿ÷ë¯iJjEÑ4mã•¿À[eÎ@Xgþά—!¹É¥_½Ã¾´ÞîÎä®)”åqLÔ­MJÞë›â—š±óC}dÔ® ¸àÝñ HQ³©T0B¹Q›(wj3JySk©TåCi(-µ„ZG-£¨õÔʉìOI)_êõŒö§ó¬X««&«'’Y?É-é|é:éqéCÙû²jÙ/ Ç|Â|ÍÜb=¡^!2ˆ Á&Ñ`Ô°ÔÊÖ›¢‰3‘á«êi=ßß}nw€ ? 3ÿcÁÆ¿³ÞaI‘*åÊŸX²D ÈàÈh# (µºÄ¯yüž+¦±k_` «ÁÜ€çá:ÜuØã÷vŸ'ÔF|ß0^õ퇿œ&šÈ¶Ø€¿Gø&4|§‚çX=&g±M¯/°ß_:Ýݬ °‡T6ß@ÃÈ4Ø šdØÁô˜€'‰‚å6Ž™dãœ8gÈú0S"VUðÉ5Ÿ~†ÎpÐɂ՚kØ»~°Ûå¨`St­æóÄuÖÇès>Þ—+dd#¤Í ÎvTëCCÚV¶«6©þ£¶ŒvÔ®Ö]ê@º#Ùes0ŸÁ«!÷ŒÜæ³5±¶ù|µá›RU{±©èøáòNã‰N‚Gä]f o¼Aü†9'N¨¯²›Û’-xóÃ0Þý>õ‡˜+Bt§£?òCáÉq›8(eÁ_æ.i溇i´>[ûG†'vâ]}‡ð™dI‹½âA°Ã/‰ÁX7bžb E•å8IÇfbq¦ /d`ÛØ Y›ÏnÙ–•[xL¯ra«òK */:uò«òŠššH6+ÿ`d£¥H•ðˆÏÇ¥ÿÀ3TË8ã±öñ,Xî_&àéŒ^£KÚ„8Ÿ=¯:N¶W4åçêË›Ñut:©Ü‡û³!gß"ºO5áDK™Ø®­µ~duÞOÁïzW{5… ¦ÐÞ¸^Ô‡Új¶m'Ž|¸¯F>ðìyû ÅΔ×àò&¿¦Å*Hã KÑ1T„ºr/ïÿ2fxÙñvµh>–bìõÄ€íðÀh½€UL推ä-(}T‘~n¿!ïÔ¡îðc¾øž±å[âIC¦AW–~<íH4§0/"ÄJˆ×}›°|Òb~”ñÈÀôOÁ \WÞÁóü£…uFä¥$VÍÞ1Å®ñŠŽ]%( ž|—üÞg9p‘ãÍÎÒ™s‚”`G¾È6) 'YÈéV˜]0["þG<Ê£¾}cšÃº<Ϻ\Öº¾‡]°ìz¸é„—éÏ3L:ä´!8zñœ¿^ø)OEZp1^üzl €ä!ÑÆnìÆ3êÌT««â«P§ÓÕKÆ¡§‘^ÇTDiÇæ DÙ EYô„²çL|VVBÎÂ#Ù*,eÏä÷sSÓCÁÜóV°%)³Æð&' ‹j àŒâ¿¶oo³n°@ ¾fâuP»ÿp«õõ65w·MÚ¡Âcã3‹öì«€o1å¾78Bµ§cÓY‚ˆrñz™¶-„ëc)5¢É« á5 X[ƒ³ ’OBrk$·A`-—#p–Û"¹ýÿ ¬ ÿendstream endobj 726 0 obj << /Filter /FlateDecode /Length 3217 >> stream xœµZKoÜȾë7ìAÀ ,†ýî^d8FìÂÁ:^!9X{ ž¦=£‘‡#ɾ䷧ªºIv³›#iƒØÍpúQ]¯¾ªæ—ã¦fÇ þ/6GÍñÍÑ—#FOß‹Íñ_Oþô^KxR»Æ±ãÓë#?…[vl”©Pǧ›£ŠÛÕé'lu2X¸ºa&œ^}¨~ùåï«!xí¬ª®WMÝ(aXãªíŸ‹Ú¹êýöœ~`ÒpWÝÓg夵U¿Ÿ&ÿã>š½Þw+%a¶1U»ëÚý•_®Q¦z}-Ñ®¿õ]¿úíôçì\'ƒ¬'BÕVk/ñºû¼âžkWÁ¢¸’5R ¿‚µÉa]­¥vþ°UÿqûxV­¼ZÒ½„¬…"Œ|4—,¦ka…³aÈÝz»?¸wÏ_¬¿ßlÚÝ·¥õ@‘–[6ج½4}9}.i€7µUfzwuÙ],Ê­X­¤÷©W'ŽÒ0Q~Œ¶DS6ðÕȪG8+Mê€/Ü9øÊ«íõa±´®ÓƒXï.Ú’8 »ÔŠâÄ"l×—^'À ·‰Õ6UkçŽ>[fµ­bÿ܇ÙN{GÇ¹Š•9úÍ#£M\÷D0U ¥ŽÁgA‡Ž{‘ýöÒ‚Z ÚMXÓ X·Ú'ßv¨=®1ÞÖÝ Äa†© \Ý $ø È·ÿ-H ˜¡Ú%+}¹OM¿ôûäP—¸€V·+\H¸DG›1ÌÎa àŠf©Rva¾Õho/½tÕE••t 'à/¶ It#±àÖ£‘5®ú´FAMžŸ þ¥’¤ÿ¹Î¥»@îÛ$VÚuØÞÊ/´<_Ä¿Ça¼LrP»o§ÉûmØ .—ƒ òq|Øö"ö·yD@‚© gÞG”WnŸd¬XÜÛóR¬€øxN-A¾oðÐ6e¬±ž:$fI´—Fw7Ó+mVÌ2€Ü rØÁ,ƒiHÂGY¤·²úi¤÷N–øí ë$9F+DM?Ï­^+"¡+Äí”Ni]p´GæÆ‹ g>Ï% vßy"n!ùeq=›XiVûÝúVÌOùÖïÞ¶)Á tSUÝ5}¢x¼M#–»Ã±!J&òØ !0õï®üJtó€'FÀYõÐ]FuÇÌZÓŒ³ºi>âÀù~&ŸWµ4Ö½<'¡Ä,]ìc'ÜÍÍ‹Ê~FžŒŸ¥F_!WðüSįIâ`tÛpŸ‚p!1³nû¡ŠK5{¹Úš”W¿z -0°ªæl,Dc•thQÇB0Fœ… Lj¤ê¥Og‰’+ô?Þ¦þ=—Ù±öYu£­ 8×KM9=gÓ‚íµ—YüEÊL4 ,úóÀƒGüÚ†7‡£Ôœ9 à²PHuQ£Pçg|U )æ:r™©¤B•H:Ág_1Ð¥±&Xé.ê©Ä<-é©QQ žÚû¢’¾6.£B4°³²êJïÃdgrDŽ‹ÂSÍ_yÚ-€ëWßMOA Å᎘ÆÎ…ÔÂF15OØúteÝ,Š’ú«Ä/-ú—o`v¼|bÓõ·ðŠíbnT ¡DNGúT©»QW)›m'C•ÀÿÄt^.£å‰6üP.6‡,×¶yÆeš¸ñùP΢VEkÿa±¾ßu ä†ÏèŸã …ŒÅ†WõïÅØŒ_É«ÁM³Xf†ì`z„1α´^K›yŸûýiÀ/Ï|p¨ù nÙ»TÆ“ã†_îJ!_Ì0¥]w{°0Y?KØö „ ¹: V/¤_ ÝÍkÀ^}]`©V’Ò'µ\yhe©^Õ+jS.W3tìxNÔ?÷.,öd‚‚¸¹<Ð\ú.£ÙEŠâ÷…¸Z³ 33.ðĹ ó-°ºàÀo—%‚ÐÆ½›`±Ý­!4öºED[·cS¹€µïŠhLn0èü¥K5MÁì›w¿»ˆÀùvf©ŠàQ“PܘFÄÉ`l•í‡UlŠq¡¡ ?2OAúÐwqóBÿe­ 1ëßÑÂ`‹ñ<çËìÆ0nÜ3i›À¸ˆ vhK”èZSk-Ó5ðŒA68HbªK$t‡ôÍ·W¬™U3qi·+Å{ ˜y¨n®£I»í¦xx ü†?ÙžæÓ¡Ï2zÂ-9Í"±§A>=q*ýØÀyh²ÍÓ'BËßA4iQF{üÏHDRˆRjH\É7*©$uVMVVÑÁ•Mxå}&Ç“)§X”Yìýñ̇—È<¸¯¹iK$=XÈÔ’¥i¡÷—˜…©þ Ë…ª®ì ibWé÷»û¸‚çúÛ NTꬺ)°‰’ö!Ù'­ÛA ó‚Ä^.(7'×áÐ¥j÷“ª„òÀ“)Šú.8ŽÉÄ…¥™çRTżžøÉqq†?Ý{&L±3(m if<ÀŒ…R·|jñcÅë“6ódCd+†.ßå“ÞOx¢òЦ¨ÐHÄQ¬6·ë¾†ŸÂe­ÿ‰Å›Ì(à(wš“ýx<ºo;IáûV³> ʺ}H™Òð1eRáÓ’³á~‚kº Ž«ˆÔpØfÖHeq“1ù^ÓªJJcé³ò½Ÿ{3h@ç•ÈrßAÅA<\8a«²Pré'Æ›¡‰.[ÆÃxs­SDOwÞ¦*vÓ5Ýy$¹ax|,ºåç+ŠòyÛ€žË™C¬×¡!Nó8Ç œŒ¥ïÂ5‡‰õURÏ’Â×6¹ÿÇI=x.X M¹BÛ'X5ëfîËdÅÀXfÐ<ÿ\Ì×¼–¶»nIx@8r.aâÔÁ‹û½žñHpÝÏm‚Ø^tÃb©ÀyÔ@Úaw®Aè´jýûøKŸàr2®M~»*¾N·ûz:?±Ä›…Âí¾ðWi=´,ŒJÛ$¾€ˆ_wK ÉKÕ$[Çkƒ¹–«š‡\ûþ/Øz•tu§k°hýROéX8=ºFM ½v(cÔ¼O2óÙÍù#ÎôV~(ê v(­ã4@œì ÅRFá ’ù‡:¾CçX..Â53T_ÐÛˆ[”v©ì\,ÇJ± h/òØöoì˜Ü¼½MFý*·ï`øÄòÍD| ”NÖ, ÃC9Ê—³,Qø6DŠÖñJ‡¯¾2_ .è=hÉ ÿƒ=¾Ö¯¦!—„VôÍ©êÇ0²ï!§Å}Nç/s(K¯Ä 'ÂþyJŸ$ÂZÔÒïA=M„ @…P#TÜ-¼ÿqe°VÊä¯K(Ê´Às—^\‚LzIséý‘çÖôH,—š',¥”&¦ò¢Q‚«L¼€ª0½qåå%Â5/ÑèóbÿÐ5o” p1¿²LÊéâ øÓR*õŒ²Â»eùM¸Ë;œÅ\Ë Õ¾yVc4Á ü®öCæy€i†¤ñ«V&`å,|ÿ}‰MÏFŒŸƒ<è þ‘«Þ½y½Êz…K;L¹$qw1D98ûŸO bIÀðc ¥%ËekÐÃÛ£ê 7?¬þ0?{¼é5„ÞýºÐiÄ  dŸ‡T˜5ܤ‚_!h/)> stream xœµZK“ܶ¾ï¯˜*‚Ii¼®8UŽJ‰“ÒA‘·\®’|àÎì®(Ï ×$wWÊ!¿=ÝH|¬N¤ƒ†$Ðhtýu7 ß6´`Šã¿ûÓÝÜ^üvÁüÛMügÚüõòâO¯­†7…£Žm.o.¶áÌ‚ŠQ¦pBm.OoÈO[Ë g… åñz»£U–YmÉyËmA53¤«ÎÛ0L r¹µ¢ T(Row8‚IC[œ' £ŽÔMígR&Èó8Ñ9òÊ¿Nl™.{jp¼€ñ’ü­:þ;ýtªÛÉÐ_.ÿ {Õ2Ý« ¼ÐÎÀ~/„»íå{éJí¤d›P…Õǽ!¯ÿ²Ý).ÑäîXwoÉݾ|»õK0Q(éøæòåÅåó¡·×Ý˺¤bËfXOd2à?TeWÕ©Œ¸¨³šÔ7Q‚âk 4™´ö>tÄPoûÍ@P$¯›lÐÞKÓ\knH•Ž+Q—~P\²>Ým1œ`ì3~rÌÇ@IüIGg´)ø‹tí³ñÉcH`<¢» X$}%ìÂ2uX¶­ÇÁJŽ“è‹0ÿ€ïÑúnY.p^SÝf²p^–Uù&Ëã±Øî´0²¼ÇôÜ›K˜fNÁgÕcúþt*›k°V¬¤f°Žäºk¯´RàX4¿æ‚#0ÐüÆ€¿[ÿÚ·‡—‚ƒwŸKùÏP,ÅIå½ q¡˜-}f©ÁkÖ£×+¦gbŒy,p€ çÇ}Bà€ì1ƒyÙeÑæ ˜m/"¼¯û-O’ú<§¥0ì—¼LFŸ‡´Êc–IÖ; “rüùÊVLFž·ms²©ÊÛ°UÃ6mWí£e2"-ãFÓÝÂ4¼‹‹€w«6þãŒøÊ!êõ§œ<žûy‚Lø2úÊ­3ä.³¬`ÜN£ÍÀ×TWÁÅ’“)&„X'ÍàÒ˜®¯j¦NR’)3 Mñ>~iÛº ³Ana÷‰«Vcg! –Çê×`Lý9„ã i{ÂÉŠše YHÕçRò, Éej@© 2_T·×ç‡òx½*Ö±B'\†Å£' tÃÙö½#Ù˜;ë§ÁÞ¦ä13Xb' Ä“"é€+„1¥ò <‰s”/x¦ÙÃË2zÂ.M“ ˆd¥xg¥µ<†‚þ#-„"¬ÏÐÀäh9#1pÆÜšˆYÄ€Õûºù®¹>TûU R*T§ÑOUqÎ.Y>ë̓…IbÞ¦î|xùç1ñö;Ó%™·O°qãç5VxŒÂ¨Í‹®® tÁ%ÝLM Œ:¶0ÖÌÝ*$‹dÕ`Ž—ëÐÐPL‚7Q’X—ô©2+n%+³ŽÃv©ÎÂô¥©Wí’§/ßñèBeû‚üûõBbNš7‡EPöU2¥íš2g-H}ØfÆ:–m,öfèd€ª#<_íË×õÕ}Û­€ÓBîÊÀé0רõ„ÑT>aY3ù€ µÎg¯”››ú´¨¦ÖëS3j¹¤3³<á8I•7Åbu˜ ƒÂ,We׊tžëÞöV"h{×øjÀ‹sä* V?Dç BŸ 3n’øó1‡†¡Ø1n„œÄPS§pÈ(¢ë¾ûžDÈx¿·t5ùÜ":ÙG8k,ðhØóS·qÁHžR‚™d…ý(Ãɬ“¡ÞLͳ„¯ŒéaêΙiÅÞ믱Q° ý’â„ àl;ÆÔ÷W×Írä㡉2OU%€NmEÂ#/ë}yîj°é‚@m ÃIbúŽOÕ#0߇Y“xükˆ'ËÖ¹8Ô²±ûUAŸ›+Œm66͟Ûºà\Ù~³³Æüå$ö4¼¨ðPâ[:À ¢Â60ÏUã&OÓ<»Ëp¾—Ì«bdÿ~LÇcç‰Kª UV ¯¾ÊÌ×k1ÓØñ+ºÏýä4B#ÂYË”¸€ß¡^Lù å‹P"„ßê 0Â*cŸj€3Öƒ|?gÔxøå©œ‹Bã•‚*‘ ËgO[ÅüM%ÔVnÄáóúa­º”À™•O7Ê 7#…5‰Z|JØx„˜ršYzÞ€Ü÷þû R»¸-ε‚ ù±°£ÝRÕÕë‘ZÌñüPfD5ËøÑ"‹+B{øäAp_ÑôôJšxZ¾I‘òÐ|§ RuHpB’Ç9­J_ùfˆøPÎ2†§ŽýŠ‚´åi%fÍ~éØ0<‡Hyü˜Ý3Mëÿ°]Hk;YÓp’5ýé·…Nøývºp<§˜ŸòE&8UªÉq×ÜA¯6\Wýy7~6ýŸâY¿$'ÀÕwï®~->Ä¿E+õ˜Ï  ymÓ·`ÊLñaÁàÜûc9Þ¬}×g¼WF†®Öƒ¼W~%Hª –V’L\åÇ®<üuS¯ñá:Þ+µß.Yë ûe\‘Acj„M.YaΊ§o´aBÛh… ò¿ÔrÃuG³~ŸÊCÊž1Ñ÷ÿdFϧ;Ÿ±¿‡#Á÷;ØCÞªÏ×ç®·¤´¨yVºûË_Î(ö áþw|ˆWÀÙ´![?á8d¯rð#Ä{G¤Ïà›ñFŠÜ‘±´¡ŸÊ¦J¶k%¡xŸá™[“>skÙ°Àó{tAW=$K·ÏS™†1—*MáÏgÜÿ˜äŸêTK¬nið¥?Í£ÂßÉbû Ї¦NPéÓâff—¯XÁ©IÊ_LðÕ~µ`õgzî»J1Õy8J†âFÄÿä6‡çW›çøz³«áŽ/Yxz:;Ró“óL[­ö;þ\g8%Z Ì7þ( —dfžôƒÇUvdÕ”Y& a†7´bzPÇÿˆ‚‡Ë§²kªñ?¦@8Œßpû˜=%Œú_RË~¬Ék¡æ4\Ïå·‘ýÉÙZÂæ&ÿ1æ&q`> stream xœµ\[“¹u~Ÿ¿<°ä—f²ì4î@*›*­V{±½²,슥ÔVk†ÑË!gIŽdí¯Ïw€&Ð$G#É)=hˆ>>88×}ú×I׊IGÿÒÿ×gÝäêì×3Á£“ôßÅõä›ó³ÿxæ-FÚÐ19so)B«:5qƵA™ÉùõÙËæ/S/Ûà•júå|:ëÚÎxá­oVSéÛÎ ×ì«éL)YÕœO½j»N™f=…Ю¹œÒ}ʉ.4ëÍšïì„jÞ}•n ¡yÊ£*¨¦zÌ®úµ!zzÝ|·XþV^º^oG¤ÿ{þ{¬Õêr­ª“­ ë=¿í¤tX,ØSÓ1‹’¢ó¼_<èh¿”ÀV˜Ððž@ýÁýfÑ¿.ö— Œ¦Áo%ÿ],*J¥œÕ•Q:"´‡¢dV”eQ2ßÁÐzö㛤^éæ=i£"m´ÍùHvÌ¡ÖéLä±ì÷™uXøÕ¦/eYÞ¾¸(Uµ_.?ìoK6 /ycT=¦›èï@:Üï˜Z¤8ØÕ(GU+Þ:)‰vúÌ1\¥-¦}% PRQžt°V%5Ô ¶Y\U,’ñ+IŽÏÑþÒ¶)Çû{ÄyÄÍš§;Œ©ýÀ?"ÇQ*˾zÌÁ>b¸¨.é»¶ùfîP"ļ 0ý-e²Ý‘Ç› ì†ÿ>:èèÃùadÁWwûD–%T§v&ƒO´¦Y.ÑJk¥KÞ€ÖµÛ2'ÙêÅ`îÀèx±û9›xgƒ›Š¤b-kL]™¬U ¸,þ^T{Úïj{„á@àc-ÒŽŸÖD‡ê:_+À®ú]4&Ǻ9 uލ¯QŠâ*=‹|¼¶ž}<žK†ÿ6¸%l†#¶ð·‡~“«OÛžÊY!ËÙ’[ûnqu{ÊÝ“@ŸŸýù,f+f²9¥Ô‘;g) ù…4bb½hµ””¥4‚ãxš÷“' ¡•Þ—¾l¶¥>¥H %z¿Mƒ}õ…¨+±ü£¿®âGÞr-Ù¹ð=2'U–dÿ噫…ӒͺŒ¥Œ·ˆsZö?e:pÈ" Š9Ñà>r¬ ƒ.Æ \”bëD /Ÿ2¨Û•·$û±p!0ÉHõ²2¾~×§G#‹«CÖ.]@Þó~*hdà@JK@ÀºØkô:Æ:‹È±«=æ6?jô¤w¬º¢“cNBñ®£  ×.] ØXÝ\›PÉÅúšü‹Þäø mÿ÷š²÷JÌz8šÞ% ¤ẅ;ˆ UT› Z+lÔ%„•¸'oŠMGr7ÓF³ä¢¿ oÏÅ>™Y߯0ì½”¥cÞ,jŸGŽŠÐá–q¶@³vÚÑ’ˆG´xBð¡lˆïÑ›*¢_gÆCóW.Uh1ËË4Š‚äyA¾ƒkÝîÕFmójÙ£ÆÛŒm¾ÖÉÞQU‹ö–ÍèIi…×Ó¬0¯‡dt\¾äUˆŽg‰bîó¸mbeú%EóâɱÔóæÀ Ä¿_ér™ªd§¡œNkNÔÜå¢JåȯSj¨(£‘µ§a-^HW¦º—iØÄb”T}™»—›Ò«»Ö9½ó·ý⊓ebÐêì€XðŸ-ÞMšê6¦ôŸ1à…ó%OȪŠô¹¡­3ˆ@Õ´açKbV/U¨¥ÇùžÒ¬†»uªÀ©HZ.똲‰vr’+Õ••S¢XÑ‹CQø‡rÙ]›|vm*ìegÊ%Ϥ¶¼Vd{HJLˆ^îÙOgFFÏö»ßí­‰¼`´¦Åð÷³õë[ZŽ‘T®Ùæõâ†9Ï¿ßÓŒÄÄø|ÿãŲaþ…8uI..'’'Ø1ǘ¡_5(Ä>Àž}„õí|×nçóËWMHÄcŠÛíæ¿f7ýæUsýf³~ÿõÅ«F|%_MOÇõ¾jž^ôÖï^q¨ÿ*-öb½Ù|}þìÅã¯öK½X¿k/Ö«Ýf½üúÉ‹?þñÕô«aêÏ·Êæ1úë–ýv»¸ !>2¤G>È3z Ì> Žü`Ìp%46óËï'exßE§ig3Ç÷ÿÁWÇ6¢XÜ Žý˜å1§¼1Ø¢t™ fm'W[=B*\!¤²­)¾ª‰„ JL6óÉ_'«3Õzé…™¼‡õƒÁÉßá/¾?”®*øQ£D+ÅäúLêη^#˳çG¨†t«m¤r°¦$Jì‚i]ù¸4PÒŒ8(x*¨îòvR§µBšN—îNh ¸9¸Ö“[ wYÁÝ8Š Ëü·ÅÍ?$žˆv/wLì[……9L(­4(ª\”Æ")Z; ”Dpí†ön ÊfoMI”*¢ÈÁžfÏÑ=¥E’š‘Èa'Љ­v,->Y\i?¥/jÿÿfæþ<Ò⬽#-¾s×U7q-f%Ã+vÝÉVa·µÐ0Çqsp.“ä¶¹F Bb}|Ï„G‚¬ümž>âbr/¤³CHJ@HŠ'úh“iY_\\†ù ¥†Ä]ð¼KÒ0,ß<|sÕ¯Ê"ñ!^áü°—r‚´¤“Nñ:n®æ«ÝbÕ' ÌÐMfØ=ǃãéê(À"ÅC´ŸJFiúå"F,ø+„‚ Z\FÇGwÍùG#št“¦SÐb§Œ•\º6ßô««e9GYM€»¤<$01Ðl^÷—ëm¤€f"ÜOoóFF‚ùòjq{¯Ãil/,8$K'ƾÙLÉ3 ä2ýv±ŒK ˆÛÒH9H;˜òvyÕ'ÖEÈœÏ `–_GéQ!õ×óÍzÍ’&ÝG–AïLº¼ê/YÈx²mÏÒ²ÖÇ«oHTqG.‡;aLVª|1nÏLÀ’µd`•*´Gn²x€°Ó‚\°O=JµEÚoûÕu^‘TÍ/yA¦#ÓèÀšcpƒiQ®`«ŸŸÍo¦Š#­My6Äkç(U¼bôñÅ-vf“Ù)!'$8gÒå«7laXî’“ù%Ó2/~Þ/‘‰ãAÒæ©baj[q£r6Dq>Þ½]¬oIk‘Ç¢ÉL·–B$ß-VË~uITª;/&dfiC^6ß%5ЄÑ\Ìã£4"mœìmÇjÐ|¿™Ï/xw0j;~U×È–mÜ¡ïo‘_÷KfÀÇÖб1Åýb·ˆ*‰apÉl—òÏÖ«ËÛÄ%½dv h,H9’Vþp»b­D¹\§š‘u†‹PÐs½ì"g?^̳@Þi5ñ®õ.¤««Ë(Âá£uï!d4aº¼^Í·‘ )F´JžáGöð¦Š+bDÔ¥aãðt‡„¿F~a$šªÕ9Nlx|äfà—y¯âzà³óDÛ8“u¨VçÙx%@>¸‰¸ÊÕ~ù§G jñ¸a–ßOáÔ;I5õMbœÄé¢ €ßÑ&îÛï×›Ëè=áÌ$yÄì”xž?L5ÍÃç^óäT²!²<¨k”@ó¬ÿªßþÒ³yT,¤^lÑ*¹ˆŸúå.Û9¥9ðž\z²ŸæÑ¡¢`ýÇâbL– ׇ}ClËêøÓz³¾q-ÌdRY¥âTOæ(DÈ MÃgÈ·÷´m2pü‘é§ÖÂûûŸÿwˆo KP96ñùdq5ÏþH îêéƒõ´d)¯7ï§Dªè”N²ŽdöÐDÈF€:qþtxÿK l<¹CÙª´æÉR‡âU·>Ù³MÁãˬÈiÔ/ï`…W·}”9²ýÈ$·†|·Œ¸™¤C‡¬ƒhHý™‚ô<`‚RByxîÐìn¯ú¨ÊäÁŒ!ÜÚïžð¸ßî~þžÄÊån¿ÆÒiûœ‘ƒ¸$¯GÓmòe™:«šù0Fð¯‡3Ì$Y/»Qh™žý¼¿½\üü0:'„ì¦ö4´š¢2]uœXò=Ÿ¯æ´šÀG…‰ÎÇb»y¾¾æÔ!§Ö6þ9jïóÂfévRÝV­ƒ–&Ó}þžû3¿œ¯ÒÒ;øRÊÄZé¬p™r±û-.QÉ&ë¤Qßs䃻…ïQÈBtÒ±ó© mçÃÎß?õùVà e9¡£“9Û/²»šñ^"—Q$?lyö5ûéÖW묃‚<‡gsúS’Þ"mK–¬q¼8äŽ)‹uý2¸µh°6ؼµHp:X˜!óÖ¼@z“I…*|öXC¼ºZìæ—?ÿa±ºº\§| .V c–ŽÊÈÈÌ‹}ŠE†Å¤‡öIQ‹²´ì›^<È3¡Vè($ë;«òµçÏø¢Å†“Î`|ŽÌó—©'+ß@Å~»…JO1 a”ÞÉÄÿ@[ÙŒÁÑz JÙ5ïƒ p”xA&náë¯_çXˆÌ‹ÊBÚÎtY1_6[\¿î_³þy>ŽJ›qÕòYµ7ÜÖ"©Î…Áë #eí½§Ê#º£2,’ž°7SR¥‘’ áÒSM¸`¨hF<ì¹*©>«ú6ˆEĶkµKi¡Üp‡Ö4hä;JíÑu±ÐÄJu#èÚ téŠX[TÖyDy…Çe!2ð:¢ª¿‡Eg[/ ªQiÄòí1C¥ÂLfÇŒæ4ïtÕÕxØ1ºøû²¹g°·ÂƒaCÈb'ˆÞ!íj Có •=¸Ü%dû†Z°Сqö%lù¬dB5¹ã¡ÁºKQ ™вá†p0Ÿ"vÑ›@ö Þ»vRöŒ3zí{pAw¡ÁÈkŒ£)±“wÃÁÔcÄ@š.Ÿ“…ƒ)é´‰?HäÞh°!W gL˜¹» ´(¿¼2á7>w ýñ‰N6°û`ÁÔþCˆ)µ¬¨|à•°`}O,É;„Î8rä‡W`0²ˆ=ì(ï† \M"aÁ2%$r Ã8â);ª&«Ül@;^úPƒÁ0 Vž`i”1vbï±`q ¦ m%A’V­®ƒá:ø(r6œ˜ÀÁX…Á&`6E…ãÙ,XRSÇ ±19hïé )”àƒ2¸Á0ìjAz?$Ó Žõ>‚¸>"¦%ŒßÀÀ‡IJw ÆŽHI6¦÷çH0½(•U tžÜ)¿|cEçC ¿l†{8XC!ˆ#Ú{¥‚¿&¬bdÌ 48JÌì!a ?A8/ŸÿZ=†„EÂà ¶¶*®ü?áÁ©N߯:÷|@“Jl5MhUIJ-=r­/Î#•Ay¤*ª4RQÕl|!^ ·th€sݬ"ö©èíoö Aç÷û¤_šPÙ•H¨F exb(ÛóˆB‰Ò:ÖtHAkU÷âڲ Ê#•2”¡¤J#ÔÉkI•F*ªÄkAUpÿ©å½!í¤wˆ¡Ê¡µv§Em+Q«‘¨ï_ß߯øý\ÐY¤ù™k½55êL™È)'–é…•:SQâ9› £Ü„¨³ä×lP³ƒ¨pç˜ö’6*½“qg~Ù@pµˆo ¨3–ñ{°üÒÓýPç ðí(K¹§‰€ï Òk| ùR–p” &‡êžuœ"f'î'7ZóDž:c#² Ó9)Æœ8J¢òÆíÒJ÷OÌl¡š´Ðµ™iÅDƒ**¡Áoòá´·ª=ű…DÓ¥W"# %«, ß©< ÂÄCZƒ ^ŸœÚÒý|W^v’Ñvpäí1"0Ýp©‘µœ˜Ùz±ëhZy‹Â•Vï`G‰”dzà5%uÙ{’k~é–tpéOi@öƒêŠ P§D—q¤µÛLh„øÏØSBg×éõ˪e™h…o^5Ë#Í5©Ggh ¨:IO6!.c;ƒâ&ÓÃFÉÍ\kXˆŸx•Z2µ×Íâêmì)C¶ËœK2¾~g;÷a °SôG¬7ƒîìwæy܃p¬1ŠJ9ÚñƼ6¿+Do ÁSYËo`¥‚œ:ă-ûm÷Ñ*7úòAjA§¶¼ºCr—î@BËýÖ4«EÙ´ŸóÑòCç3jD iIæ‘tø‡Û¢•+5j!Guje4~¾±§/d Ò›S‹ZjÒ'ý¦Wÿ¬5:!fŸÙ´#-LÞV\ÿSÚ‹¤e‰Wó"ž›/è/‚ÿGÔ µ€YûiGCݸS ¸ìA_rÐâNi¸£ûWHÍaY™ýÕjü¨7ñ¦Ü’߯WÂC’ÕD$süAóÝÐ̺¾Ý-K£¦¢S§\÷7GƒpÐéAoŽ6·¢B[wÎaV*Ǫ̃qóH·®GÝ¥šeÙHý{]ÇÁÜäÕŞ̪ƒ|»«›ÈËfÂÅ–¾1Ôâ Ÿ1ø.v×YGƒŽ{gŠžÀqg-O&ý¸/Ç;;ú,Hg– üÍ|ï„òkІG¡éC ƒ8ÂAà‰µ>ü`ÑkY‹ì_j7qìã%†¿:ÂÜfQO臛ãM¡ÛDŒ Ã__a‘;ê·-‚â²îFÝð'b¸‡ÏÔm¶‹íÇ:FcÜ‘–½/f„Á¢ºq¼ßVÍ_Z0ܶN_à¿­øXãxmEð÷’ÐÒdÛ‹©áW5Y2±.éŒÒ|Èk&Üï"^²º™oO0è0íhs+{s„dûl×›ÝÛ5×\­Wœ­P{2Bû¦„ʳ|Páxþqøm’­‡·¡™ZwÒfˆ÷QÛtŒHÙV™@Žÿ/`sŽendstream endobj 729 0 obj << /Filter /FlateDecode /Length 4558 >> stream xœÍ[ë#¹qÏçùÜÁFàV²jóý¸Ë¸Ä¹ØÁ¶ÏØÀ¬ hž«]´'ivöî¯OU‘ÝM²ÙÒÌ0ØQ·È"YÏ_UQßÍXËg ÿÅ¿W÷glvwöݧ·³øçê~ö_çg¿úÖ(xÓzæùìüö,Lá3ÇgVÛÖK=;¿?k¤˜Ÿ¿ƒÁÎdƒ¥oW0áüúì¢ùý￞/¤­wº¹³–ii9óÍv‡ïeë}óíö’¾àÊ ß<Ðgí•sÍþ0LþÝC2{}X}œk³­m–»ÕòpÈ1m›¯6 ‰åúûýj?ÿëùÿεèöººuÆ„Ÿ¿¥ÙÊ ØZOU4û«ù¿ð’iÛ§¯TË”i®“­ö‡å&yÎfÝ„ÇÃųy 'èjîàd¸ìM1~¦ts9Væ¦ù>žLŸIA™–Y '³­2œìOó…†i̺æ×Ý4 2m½ea–iA¶ Þ ÌÃIÍ*ÈXØŒ¼iœÏÒ‘¯ãHÐßz# Qä-ˆÕÍ„l­öŽ~ĺÕÖ!±oÎ@â¿„go×Ù³ã²nðßÿœŸý¥hfwû3à„›=‚ÿïœÂµðÖ2,4³û3ɸoê߬Ïþ4©ì¢² kà¸vf¼m™4¤ñïkG\¨Ö9 {Y žzÕè/Qtp[ã5|˵e’Ã<Þ:+,1ç]\ÂØd¬Œ+°ÀhÞÉE£¤š xzO#ub^â.Q"Àb(:)§;4`ÂyÁê]Ç~x£‘³ÆYÖZE¼f¶…qÝ›£¼.öÜ1ÛóV73•ÄìumO²Z3—ëè»*?,Pd0·œ{®‚T¾œ/¸f Ôº“I6G˜–;):çõz¾,†‹†OØ(‰ñ¾›€ä ¼ò®ù?j4ãð1y>~9 ØTݨG«L¤Ý¼i¸|3Ç“.(Œ .$PÖ~,üiŸUF6»›ÄUnfÅs÷jSpÔäž{‡Èúbã0¼oê.‚‹SL ŸoÅ^C+MºÑf=ÝgO›à¥k{œÎ¢ÙÞ†%¼ê—N¸_Úön<øÔí®tÉ´¦²XµÛÞw‹hI‹Œ!„T=Û=7”J §Q ãO9Ùu¤ûl‚àï4øÏ„àEúÎÃ!ĤA) Xu}` `6‚>LZ¢ºj‰ù]kÁ?ÛÓêÈ Õ!~«»M>ˆ¡Æ#,vä8û‡Ñ T´è¡H°ª Y _ÞmÓ%—k’û¼+èà²Õ Œ†Î“Ü:[ù˜æJ…;'Å•²=¾.ñ†rPÜûåa·úÔy ›D1WóÍ„MÊN Íj—Öþï£Ï\’@õ“«B´äâú,Ð%1•D}~3oAZÓ™èZ/ÅÀ)°éL¼[#Àk NÅò§À¶ ÁB‘&C_Þã^ˆµ¤žÂZ68ÉÚÊYb(8‘›OP ,ÌdyEàQ:Ó¼ít ãer´}f<»`=€ÅšåaµíC4‡müìH)‘…’ÁÀlA2 ‡!M&ÀÇE³Hù2ù¼ÿ<,K€,5ûÐŨT6›q  ³¯qÀÌÀ¥\"˜ô" ázlY¸’m>O==dâÕ­ÒG|_“Nã:”fUCΪ¾» Þ#9]8LÃQ•š®£=°xÄ¡Ù~ :rêtvµsirwaÀ«*DÊœÛcD ÑÅÐ>ˆ£véŒI\F7»Lè˜ŒÊrV¶2Æ—Ùöò°ÄHHS@}?¤ò^>ÆêCîüÃ~Í]Ãöþ‚DÐ9Øñv2Dmú„í°aDˆVC^‘‡‘4¼ž eŸl!4Øf‹ÕNg‹>Ë€½@.£”Ž ´N.Ìr~"aD0žŽ|]UZÊ;Ý…Õ918¤íÔíS €Ïô`ª[Ë„l†aJ‘Žü§ê!¸ÀÀ5 ÚNkþVÛ ¬Ê%¥„4ÖkJÀ›Ïê†1Ì+ñ>ƨ%uÒi=S­fH*÷?jp¬J·‘’R­¬cnÈ8ÊóAêèщ-Ò«É& €ôÐÍ4$›Ìº;ÞžÚì¼Ff9:½…kÖΑ<¨šM‚L˜÷§xWO&Aå(™Lò¼Siä?J X^JÕG%®Ê,Ë}Ð~VYh…ÀØ&N˜¥'‘uÐcQ™õLzÄÔ n™Ä@ƒ%€~eü?žkO!§ºÉ®„å† Iz  õâŠÉ]¨\:q µÏWu}²àhªãÁp¾ÈÆ~VÍ0÷R6‹ÈÄ(5ªø^©V÷ËCv²ë0ÔÃÐiüB¡8–½Þ ËS|G>š 8 ­ø2¾wŒËÙÁ-"ï@Û´ƒ/êïàz/}Ì;¡Ñ‘wbnZ·À'|åäœâÀãBêÁF=£ÍÐâ”2N+¥NxEaM8P`üq5Œ‹ré$g&TŽK2¸À.€@•|“Rá©OiªøžYJ 0Q^`êЧuýœԇèè1< tä1¿å­rú8æã[äÚ)hÙÕ2JhIÛõº-Ñ@S–ƒ=Q…ÚRAÈ\Y—ZˆiêhqÁzp*úú0€ÿnjç’(_FÈ&˜ž-’/ îE?@ú°ÌD±ø}Ô†ÒÉVI_@ôÏÍœT÷®÷šãvš“ǬԵp^‡Ô6{¿º«U—¼Bó³¥å¡µ+4ÚzéŽBÕ "î›U¥ðÁN|»N;s÷GÛùB E,ep­ÊÒZõ¶pÞ+ ¯¬ÉŒh½=Äíx¼Ÿ ¹|)k†§ªìÉA8L ws:ŸièR&„2Æ!ËЮm¯L–/…ÙhW‡L¥îBNÈL £3G:­1ÛmS ➠xtmEƒpS½ ­ˆk0ÊGé³×•²"íƒ7oÞlw«Žc?”¦dÑ”À}P"l%îËO«ý+x´’´eªqŠ ãzÜ ü@¬ýѹx`•Ø×·® ƒ 3ZG¯ ;ÒÀ¤ŒÖïJÓ1»%ÌÑ:z¿9;ÿ·®FO±$¥‚37…êtmðŒhCÔ-ÜÆ/†ŠCvZU;lË\6ëÕdŒØÇ^5ûcÊ–U¨‚G¦j!v£%‡ ®×ÝâXFœ ºþ§(j…á×Ëý~u›øï‡†~¬) gƒS£s@ˆ:³bå GÑ „è5b¥¨Vt˜ðkXDæ»L› KuÆMúFß‘,’ 2¤æ†öCv™ ¸m >.S´|ÔоK¾ ÞGYÍjÝÏ¡¦I¿^ó*Óö˜÷_jXôN”À¥Ú ‡ÄUt×ÞÏYéq)ªsZ7¾C “w«T±3[eð}*QgÕ’“mæ¶i_ÕÁÅXk±–ÆÑÝc ²WFI«kÕ;ÕZÊW4ׇìçmµðåc’”ެ_÷3;9ãT¨ µ´ïú.䣀åLy«[u9ªjUÿâGÜšIMgZ‰·îˆZÏb’ó9£Ñ¾Ü›æËžõ9QoeWÕnX¢j•ôÍ/j[­  Ø‚®æƒaûÒ2ä NÎO.úë¹Co€…¼‚WTyH©¥æ½}'À(ø=‚ø=€À2C}7qˆŠ¡W2²’¤kÊÖÊPKkVC-mÙw7ÊuïðÂÚáh𲛩{¨Ë]Š Ó…N# +×âãÊDž;X†©ë2ψ(³?¯ÖûÌÔ¿Y­os1 {w˜Á„.–p¤‰ÖJ+šÎm;'D³Ï£Ã}×ÍÃot÷ŽH7˩Զíü)ß©kž³ôŒ2T<²Tíy®1BÆÈJ:šŽÚgbºŽ D¿©ãˆVo#Gµ…[•y¿~€N8ǹóò¿#Íã•M=j€{B—ÅH9]Á¡Š™ ÷nºÌ¨Ø+y q³HeGÂaÆìšØÒBˆCüPðHA˜‰hÉ”¬ ¹ *Ù9’mįd$…l"У,Ó–nV+‰ë@Œÿ”¤¾C~içÝ.TñõðÝȦèT¡-Ã7t½ÀÄØ;Êd‰;"Ûør·ÌÕ¥(jN\Æ·RuEùzy– „‹çÝÞÁ‚þP‰üÙu3ÄgNø5!ÞÑíì‡wuÉMázÐÓ Ä¦rJ*alÍÒ)^†\—›HOb3³ÓÍ›0ë)…išŸß ‰+R§{?©'«~Gj”†#H×üî«_GZÜã„Êu')0z‰JÔ­¦r…(Üó*™÷æØ²öCÙ»Š†»(Ùß;­Wë„®¦ÊjÑ›.€!ÒÄ¢7Þ›.zƒwáPÑ;¼ 8,ÔXB=YÇó®ÅKÈiY¦ƒ ¡µµª¦ÿ’ªNQ*àØÆ‰`,)Œ•çB6Ÿ+«Ae9•¼‹]7|Ìrò–6,úªa‡ñ!µš‚øÌæÝ¶U„ù ¤-Å%£×]°XÍ]XÄ’7›lbJÞ+àgórcEF!†"ïEóïX’Õ”ËNQÇÎVßE¨J%#ÝüP.”«9È×…'aú ÇÏéå%À鳫ñ}3¨4Å]† ªö“gO°Â f©”ã°ÇÉêNv1vª¥ä††Ñq90ý“ ¢p%ÊAn–kt(äÉ´õõD²ÎJ"šxW¡ÀÉGŠ®Õ*DK* ¼öËTywtÃèþ²JØ÷ávÝý0È*Š$Øè—)O.A´d…`ÒÖ¨¾žù]ÄÀ!sÇõiyŸ•ÇoÂe+¦bÜÃ9ãž 1:÷žT0Ìý)]Øw´àùØÝvêLôë!\Ûë§´hǶÒ~ vœA)rˆµà“Z x¹ìf5kEwM´y{Yí ªdöÞ±èu‡•Á)­Ž¤’}ˆ'Ì‘h]a-ržå  ˆÌ\ôóÃ>M…—Ë}^„¯þ¨ Á¾R…Š“áQQÕ6û¬JMCäüzu— ut åe—¹­çн>©ôË/.s Ä11N¶Ñ‹±â²41‚ë~ÆñíÆ^`ç_üb^i+#úÏhžÝç4I´CØ’‡;“Ý—‡·7݃k®‚Å¡•u¯–›ëá4â ‰¡GAë &Ó•¶Ë q†7-!Ã#ó郷h3Õl hýÃ5ix7is˜Z¦ãŒ®ñåa¿ûŇåîMs»Û>¾¾zÓðWïEÝÏÄM¿iþpµüïÀ˜7¸½öÓ«nO¶yÿ½ê8føpùúçɶñw‹7‡/†CWÃLÿyÜÆäÚ¿y¸¼Ùʥʕ‘UÀ´øõè °n Ê¢¿MJMSh 0Py;y µ%%ãú;X&n`PÅ–MÄR%é¾ÐT2†ÓuÉÜ š û4"–<àqC~3-ò¼È-³EòöàíDpëw¬*‘16åF¿áž %eÀ•X((´ ¡'ãj¨Wb—q‰p,1†iÌ'ÓV#Ä#%…÷•Fw/Rtª#Ná¦ÎehE2¡Žg¥&C‹ée¿ùPúÍ/¦T/$ašû¾ëºš(ås?…ßÏPo”<'C™«à¹Ø7­ò^öXÆÜØWäCžþ²@è2È»‰æ»dΦÈx‡çf¹YmînûOÅõý*Á ¢ÝhUDþ{ðüû«íîfg•͇«¡Ëd‰ýÛíãæ88Íô0áÇ`ùì ^.F“Þþñìÿ«|±endstream endobj 730 0 obj << /Filter /FlateDecode /Length 6132 >> stream xœ½]Ï“·r~'6÷TR•ÃÞ2LÄÉà7 •Se[vòRÖ{±½yï %U´d¯híje’’¬üõén`fÐ É]Ò)Ä%1 Ñ?¾þЀ½ìZqÙáéß—·Ýåõů‚¾½Lÿ¼¼½üòêâ_¾·¾iCÄåÕÏñqéÅ¥3® Ê\^Ý^4J/®~ÆÞ²Æ*´ÐðÀÕ«‹çÍŸÿüÍb©”lƒ7ÍÏ‹®íŒr¢ ÍÝ¿WmÍ÷w?ÒB;š÷ôÙí}³Ý?{Ÿ=}³[X O;׬6ëÕî§Ø]g\óÅÛ¬‹Õͧíz»øï«ÿ˜ÌkÙu©Lë­#¾zMOk/ahØ«mgCó.{ý&86ºVøWPñÍ-=ÒÜýŒÿŠ6ݼÊ]o_æ­7ëÛõÛ¬¯ÕÛ…ôð>š]ê üvì!Í(Lœþ6À oAjq_g±o±ÈAÁ0ßâA… Eœ­@Ñ5Ò±Áô/„¾vwýgݬ¶ÛõõÛ4RE#}˜jìÛ(ïd2ø°Îÿ|Ï&—Æ \ö‡ãd“¡ï@1óŠk,màúØäåÕ·Íõâ'Jà[/•W½¾¾[,%¨¸…©Ý½ËÖ…)ßj·fãÙÈ``¥l³ÚõŸAN…&É`[˜Êùti%áÒzP÷‹™©¸V¨dZ0R²>>Ójï|èg³|•YÂú¶P‚ÌÎø|ph,…ͲçW»\&›~~V4Hk:¡ø/ó?v`ÿq’Îð9’¥9þV›#Á‡ÎöslK­PI|ó-{ß.La7g U9kÓJ+Ã!9{é 9'íNr¶ÒZ0"¦(srv͆ÙxÞßÝ-Ij©´h•p—KRiïã«Á Â;Ýà¬[ªÉZËV‚wå²–¼|\7ÊÚƒ‡­s^(jù¦&¯ºÌš=o˜£»C©hƒ¾4éT妿‹_¥`%½!ŠÞ§¾¢´ÃºÑHÙÂÒ$ÿ¾6IÛJá‚{Ø$?®A¹`Ô ¶Ú³áM×3SÒÍͧuÞð:õåyÔ¨Xn¯Q»ÊÉÛ|꣜ãèZÛ;ŸkóW­WDtxþ¦"€3et!`(n¾Yx‰n bS1¿d›4]ˆq7¥ñFMÐã¥ïu×ÉŸ,a&0H“¬të¹Æ1œ›Ìú&‰3( â\* ç`ŽŸáµ×›»÷Ù#ïé_˜+9ŠºPÁ|%˜HïKÁ«J¯è%,"ÜÝN@ ¾rpÉ^Ð]ô?œËG¨ÎƒÇw‡|DÉ:·ÇFR€"køb~?ÒƒÑg©eå£zÑßÔ‡ Ô'³µÁ0[|ÞðQßeàº(„½·ü¬<½Ö´ 62/pZÐηÖE8ë á,”èø˜n­ù§ž?©ëÂX0Âyw©ZZ¬‡Í½˜¸“Ïüyó9.†GSjD51н "GR’O¾*¬M:ôenê‹–03²Ï{Øáº0€º?¢vïÏOT ÷¸ÜL<«Í01ÃliËúͧ~–ÐÛîÖ·”Vÿ ›z@v` `dŸÒW~ððñéþåÎò^osI®7ë—y!$…O ÏÝ‹6¿¾ŸÄ¡JHe¯Y3k²”mu'4ƒ>«k¿w戵;ó <¾6˜RIÞS©IzQ`½bŒèTœ9‡ÐøzL‹¸&¾ËMƒü"éÊ[°ÄIÂßw¾ß¬X¨(„L¾ `<ê×TP$ìðÒéöQ¿ ÜÒ…!ÍOsüŸª‡¹wÞ{È~À“=À·€k™qkFè~`÷Ö‹¢·„•ïuEKmT8èÍa®èÌ]§ro®) ;ÿ¥âÎ3zü±î\t¦;Î*¬B¥Ç–¿Ô”T·ÊË£ëÐ0:há)m(4#=HgíÔÝ ú¹æËUDÒýªìv½êíO‹:«“ÜÎÀê$g™³:S¥‡NÑÃÔMndˆ•”R'šeüqK¿E4æÑ-Œ“‚ß,vZ7d9 ‚/Œ ²E„N‰Š .*sq›7ûrq\a='DØàˆ;S¾#B}X˜ñúDÔ%ØŽFm{½mh¥Ͻ턯LscÌ"T éÏë4K¦°ušëÓo Dç}¸z(,í Æ îö$.‚ìáTÂb€€Pø¢™c’ȼ "Ü!4›g*yŒ_­u s¡¦‡ÑJÀË®ä0¤aÔ¼X¼XTUY‚Kœåz‹m–LÀÚ’s¹]ý™`FÞ-P¥½Õ=÷%5‹È˜çª@t5§ôà¢ùdrÿIÔÁÀy©˜rv øyRË ¼[vê1iéÛ?ßa-¡×Çø12›‹oãÇ'cƒë*–ÜáaB–¶ u;4ÿUÁ“$Ðâý®—‘iˆëF"¯#?˜?ÄSÆWéc+Þ‡h6?ñý¶«ËÅŠV{½5ÁG‘¨äέ´ÉÉ{0Wü›FÛ›ýý€Ä­Ô,NÍS¢-›(ÑÄ«Ü2k8@‰Ò>Ž`­î6·IAT¹²Û¬œ‘ô®Pñ—Gs~ÑCæ ©·4­‰B÷¼´f/Fü»#0⟪vqqTw´CüÛ:æsô—àñÈÍÀš@ó–OjA@·^ûqå3¼†ðÜëA¥ëB=.OCà=ÁCÁ¢:XÈѵT~¯k ¨Bf®1RrÖ5NöK…[ z딃qíÕ¿h„‰sû¤ V•iä󿝑sö‚¶ðXÖ…Î’~€T»t–¹C"[j9IÜà¶|0Ätº´Éñýߨ9‘Æ70™•²=mòz “¹)Ð<½ w Ç·!þŒº£×ÿ›?³^PàÎ6qgÒJßuTe›(ŠÁœ„ôàðíÅÕ?=oøÓwægˆAú}š§5“µVÂ>Ü f]É@]­fˆ B’É‚®aQ‰pðbA€6Hµ÷4&Œ ª8|·|kê÷‹3ÆóÃNËÆ• œäkÀëô“2 s§Nÿ0㿬ï €·p8lIÉ÷×Wß¡èíåõöéõËÝå¿]Ê £0°Z@·ðpE* ßÜ\ü0[RËT Âä SŒZRR9ˆL´Å¸è (9$$“DÎ*Œóþ¥^¨®ó÷/H^+ÔøsÂR’‚yX…zÎåZ äG«ÁW¼ŠnE&q ˜¢…÷ž qèR¶©À-ö;Jû^Y—h–Ѓ)ÿ¡ÖMüx<´úcË[D¾uM·¦Ã [þkMK\ÛAÎ oÏZÖ”…õÞcx†J'rÛc”—E2$ô1ZÔ¦¿ìÛ,2É-Í$iHŽÁÇ|¯ã~øwZ<)ºxÉÃɸ}ÿÏé£ >‹Æ|'gùÅ<À<!êÆãà˜9ÒÜ0 ×Éí<€”nºÇH¤VKiG©GÔhóOÆ×u?DÙõ°s9ƒ‹y°zR‹Ñ0sgý˜Y;ÁŸžàkÊ)]§)íÆ½£6„ûj*„_Úe1ã«‘Á¼.ŠS&©·—f ÄPêè§|é„(P‘ÄÈX]5PäÎÏC.B\7ÆäâúçiXäGµí>OFÿŸÎ}ˆµá f±ÚÂFÀ€UN€Êµˆ­áu˜º!s)}òñ¿Ôe¬…)ä-‰e²©PL¤²«p&T‡mrèçqU»µm…ËRBWš$xM‹©éUµlUyÚÀ]å¥/yx³fõY‘”‚ÇÐWÇ‚üh&¹!uìä½’¢¼o1M ©Kck©ÁX°J£±,5ˆ_zÓ|˜°²R©IÏ€GMA€[,6—›û–D+ ^Q+ 6î — ; Áû×X#O)@1²£aÅ©º¦(LBµç™ŽÙ#ùtÜ ÓÑ*@F 榒ӎ+²ak>[xºá›ú™ hÿ u©Cò#ÕƒO#àm¿æ¬û*Wå ¨ (³ÂªJwJé¶1”@¬X“¾twªAo_4ß=¥‡„ Í/Ò‹‰Í t™yý”ZY3ÝfÂï!öâ/ï À±ð‰îgÊ7ßó'V›UɤÆ.Jk4‘ìâ8+\›UEÝí/œŒŸ—5BeµÊfœ¶ªÙ¶±•C-}«?¢?sXÀ§âÞ|îÒb8¢˜XUê¡òÅl[ÇážÛ™ˆíP`+)|egÂÑŽlÚ¢?°Þ¹*Ði#Q6c‰þ»¾'QTÏE5’ ‚ ÕOkZ2ýÁùƒ,nW»¾’†í‰dEx$—t… {»ÍAQ)Ñz_R×%‡,µR}óY-ˈã1R‹jO& °˜>Sž![ÜúM(¦„â=@¯óðuCÉÉçµYå½×k0pRB@åznRA!"™N꘷–™ ÉrwÇQࣴ'ŠC/j­)$ÆnªšˆPXx¡%*oŒs»§Ñ6°XŠùƒ83µ¼©²Ë6‚ˆÐ»2º¹-€Ë æ ÿ0g7=ŒÁ‡µ¾ƒÆ¸v1Êëmѧ‚€ž:ÑX]UxQI;•Y S¯š"éáœØQWl™±—}LmDÃJ·¼;±íˆwë̬<2@âéÊÓì°ç£´$¯2Ù.=|Ú¦ž®ùlÇ{>]óî˜Ê;L׬,ŠF«56_§\RéaË¡Ã\Øk]úÒz–'tЂ˜l€“4¬Wµ ˜Ö:/~‡ú‰ûä3UÛí¡±û>çÖ'ŽG1zX­÷PFoèýxF¯”‹g#òÎîÏžq¶Î½ Ï[Öé~pãâôÑ a£µ—3aÊD4[KÛÍý7!š­h!+äÂBF4—‚ˆg”N.”b¡#\YèRz²Ã@:–×DÙ¡;¿Œ¼ß¼ ™pš”–5уçsŠ•\FÏ3§R·j,Ø?µV¾²7xæÔþ[ï~Z–t>æ´¯KÚËœð§JÓXôöQø¢¾Âœ¢ãž¡iœC˜sošò$\ Ì8˜³ÖSt…][ûðM|ê@¸ _ã0Ëôûù•)  ux®IÏž‹¢Áˆ¯Õ°–ÄiøS(oðÀ\Þaâ4’¼bRÏ>œÓ@¨–\ÔäÕ¶hÅêõG!6éáàŠ¥_&F¤Ó4~^Óø2Çì3Ô8`Ò ¥#³[¥6”LôÚ·‘ÚèFj#ä«[×{sT:Î_)¥MÇügJ)ö¢- k懭Y˜…ç¶Ž…YŹªó•©QK“r’GU%úÄe¸k!ON zÀÃ>×±›–¼*—‚¬{ILJ‘}A0UfâêK€âTù£•¡Õä„ S­mf‚§×êð†&ž¬ÄPLqA²¹B·¾%+öz3wär糘¦5:Ä=…¶y*ô{VÚ‚Ái+rC8cZ È;'õN*RŹÌ[*Ãg¬<‰uŠkí#ëÔo¼8Wӆ퉋Â+0ᱺ™l€z¶nöüõVLJGÐ@®ÍÇükmDד=È„_s“Y*9uvRóùÀ(BÿMN2׊ÎËβÀ­h;„þ-3t§^Ó)ØU¢ñÔîpÐ*]ùPRD{NZ|(_]^§»ÝM»‹§"# ‰üævÅê oj|"2œœŽzáãÛÔ•Õ,ZÆs¿øCyÚp—GyK¹x"GÇ!UHr‚:‰’œQv«Ò˱š#¾mxIÛhXÇ3 „Q»X†NP-ä©*]%_~b¦¸BÜ`KK;éØÒéÙxcÌH¿Jß+ÕekýEs¨±÷†Boe1á•ð·œî0ÄΔ-ŠòWÅö[ Ÿú$|ùû¹W:ΨC¢0¸€q¤û/¤=è}º¼ÒW-'¿£L'ÊÚ)2äg;d+-?;¡ù;‹rïâÓx{¯ñœŽ­r(x7‡>\­cm5ϬÿÎ>ª±-xˆëޝ²K´õAB "uYÿ0wßI-*ÈŽÃÎlr$¶Ó1šÎé”§ã’úÊñí¸òò”ãÛqýƒ+Hä·II@wÙ­ôF·ï(õÈcÇenÕéêmLë—²ÃCضþ»Íöñ9XZ‹¥ ú<øcÄ—è¿®1Å…tn±ì3Dv5Þæn¸©áã$}Ab3þôfŸ©ÒÀÖ|ZS§)-ºÙ¥LS‹¦R}Èeñ€ V‘íÁ < ‘Jþ}›ÔÇSíŽ*hÔùí.ëK2Îawc—I™ÝX¸Ÿ˜ <ĘæÙ_¾NO¨¢¤hËÑü*¿³òZ"…Å @øøÿ.Ý?eóñͺäŠp³«‚ÂiøE=cVöíªJÔ‚õ;Ý÷CgâåÙUEi<Ê`JU9¥ì£©Óª¦*–èÁÙ»Eóâ·œI.!D¿ÿ‡Kæ|Ã÷•×·_ÇŠdS{p‚tjö@þô²¿2ÉѤ8w1Þ B‡‘Ó…¨¤/®Ÿ@ÙâÂܦ•T Äí½ç"Vn0›[ƽ÷{¦xRê«+FòÇt[`B€/šgîsýê)ÕZÑÅ®x2νï’åuº¤OE. ¼Îˆå§µ/“ÚˆI—UãÓÚlE÷3;õ ½ ¾ó³gYŸÃ; PP…@I˜V§“wB¸S z´I¼tçm¨ì=Ŷק„&t+χu§#àm)X¿²ëNÁ…RâU8KœŽHU{ßC‹­àRÒ{†È þ––Ì«iˆ¹)¢ˆD 4Ž (|˜ÛžlÈÐprð|Œ˜‰Êæjä7 !(Ãi¾ø!kqµGOîúnÃÁÑm<â´„Ð.¡ÊÑúÿà m`öÕWºHyç·?c×™—|ñ‡?pýþØ¿OO‚e< ^b²[¾á²ÞÞõì„þxUNMM¨äTÅ÷9I•è#ÉqH¢ÞÐq–ÿqnË8ˆáæB®‡¹ÜasCƒC,ŔۢÒ˜5N²›î›÷’ýÏ_Õjáz‚S#¡Áÿ¢Ñ¿tžõ‹%à§6Eÿ97ê¢züîâÿÕ¹íendstream endobj 731 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1184 >> stream xœU“}LSW‡ïm{ï®Z ´^¥l¶nŽðaРûÄ/Ù¦A)¢¢€-2jê(R^*_+,t”‚F(NE¢ àTÄE·™9XdÌŒ–1·ä½ä¸d·sɶóç{rž'çw~‡¦dЦiåZÃþ4}Hd¶>=n·~Nn†gª†ÄéGÓ&äRË:_“ÝTþì3âuÛ›ò¬™Ù‡Œ¹i»7¦Ç'PÔ&j •H%Q‘TBESK©eÔ,Mɨ=”@o ë%‰’.ɰ4XÚ*ûÏ)4¢ §PFáBlÆ…R!T¸Æ¿ ¡;7E¤lÔÀÛQ<]‰¾HýxytPÓ;tþWçÐûÝÇd¾&—ÈøÁîÔuÛÌI‡Ò´úÍ©údàâÒ{FPõøgZ…Ð÷^‰* ÂW1pΟ§šF _ÕTù)ÔsÏVeÄ{‡3vived'ÀVØüyúÄÁ'_ÕÔPÞ©£Ÿn—1vŸ¾®!_c¶[ê+\™Ï–TX vœÝ~ÕÐmì-¾ ®Bj çÜIï^îÖ.:óQ£ÙNõù®Ïú4ªÁŽ<¥âDy‰VãF§°a’žÂ©°ThãW²çП! X=ñgÖ³y‹™l4yZf.7C¡zË%ý×­'ëÎhœ¿˜ËUµ±ÀÖXmµW9´w±—ùŽ}£å¤'0X*\œ‹¯<À2r$<9ùPoÍi»Þ qiâ÷ž­/ä'òËM`R¯¸•<ñMû½~MA óŸÈnˆ/² FãóT„V_à°œ‚F¨©¬µÖ aŸ¯j²ªÉÚh÷ƒ³¦.c³®m›=H(„'d“¹Îcçœ÷€û¢¥0ë°97¯X›w ª8¾Ä7åX¦YŸ›”q â £)ãì!÷áÎâ+p ®»îôsª©²8^êÅVKõQCXâ…Y¼),%5¸ƒ££÷BÇWõÚu§OÚ¬µ•U•êzëÉJ{-÷o¡ð-'-XÄBáé,ž,ù3‹Á¬} %éŠá>¨q±x»(L@Ÿõc¯Ç$whÐÎ ¾¿sG$Q¬&Ô;Iûz†Ñç[”Œ‹UB@aT„ò^0û7R8Á¶£C~cÿo~âirÐ\шK¦³~uP{ãáP×càž¾O¤aºE©ñ¢8œØ‚>žœ”B-.!300ƒÄ/„Wñ2kØ/Ϙ2‹Ê KöjUSùëK3sü ÈZ\“Ïá2¶¦½ÐvÜ j±36«SMºÐ«ºËísÚ“}mmŽV7§ú©û’{è¦8ü¤ûãvÝù= ñÀ½˜ý2` f'„¥ü%L`0‚½.KsACaÝȇì"½)/ç ¾h+p £K¸àĕ΋ÌLôŸò Ÿ òY€Œ\rå_jOÎendstream endobj 732 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2212 >> stream xœUU TWž!dfÄ”4"KMx)`Ñ(àŠ"ˆ<äÑ BEEAÁ EiQ¹ «G,‹JxÈCÚ"bQW£òP«,ø*©4¨ÖÙE÷Îg÷öqvfι÷ÎÜûÏ÷ÿã£)SЦifizr|ŠqfpÚèáÑl! È´ñÓ à4Ek®žL/›´UÛü¶§ïÌØ•¹;>K™½qSBbøæˆ¤äÈ”T›ENÎs(*ŒZH…STI­¤¢¨hê jåKÅP³©XÊŸ  –QÔ<*ˆr¥‚©Ê ¥–S4eMM Ì(sÊ–@¢LÉÆ\ªƒv¦ èÛ&óL¶˜Ô™tš|Ü šÎ4M7½%´®V0ÎÌ1æ>óÍb³¿³ÃœˆóãöpÄ|+Rñ+&©,úú½á°ÖRòc_!•|o¨„Vòð}Ï»[6*eøŸZÞ†Õ…tÌôŠIõ“I~bÅ£ ¤ PѼ5o&…B!087ã0hb!𠃙È| ܄ո¦X†ü9£Ÿwé§Ïé U'€3ü9)vtµÃþØÈœÁñå{ð`÷ü™¼È[úºÃOÅæ^Š9+úA75z¹x41c€;@_Õ FgñHšî vGÎhqJTX°ßf{„Í59ôúwD<ØþÁ2ôî·Jˆâ>còcö%ïMK MöBž¡B lX°½Ýž½í¬¼6½,åDG â4øiøY‹6#M×u–’·m8M:5Ì¥(õÎÄõ  Áüçƒ –Ë%ïýÑŠ­›B¹_¼YØ£”þúÓ"<O\¾h®\òÖ-â ˜ƒù­'Cr1<'ÈR¨,z‰iKIo¯‘þ;Fúϰèq¹úB}Mù™£·Š¸g¬¤©8çë¢<ë(´aëj/NÒû†óÇy¼¢ƒý:‹¥…¼…'ŸÄ‹•³¶l‚É©rMÖ­œªL”`»ÅwmBie¦,·ì›²‚&Î9‚'õDÀtâôÁ®aͺ‹ögäžå'Ó*Q“ÕÕ‹ =÷Î¥­,–‰¡!ã!?«‡~¦À1‚r>8x`ÿÀû&ú\j—JUü§:Y›w0·ðKÄmÞWÒ$üœ5Æú!«²èÒ­ÏcK‰žÏœ*æ+<ð5Ö&2À=8þB§Œg= N¬{Wäßd}?Rת{9_£ƒcÑp~*ÄñÂÙ v2xaÞ‹LAi¨’4ßÂ_Ÿ sƶØ\xá ÆÑàbC& \ÈÎ×Ì0¯ø`PÇ!Íí§[tPªðß©¥û@ˆKû²¬FwX}à5,]¢Üµ)I¶sû¾ÔC_pƒÌ±¿ž¯× îq˶ù.%eî ÎÇf{³lÍ]žž²r.Ýaº[«ÚnËŽF×ìlC§Piqí1Ï„@)Ú–¿'=#9e×±ˆ Ihhmoª{Q*úöô‘ºRî~^†j)øÃQ£§x¶€Büp Å*ᬠ,qœð­±ŒÐÀ(«¢Ÿè°t4U:çc*3€ äËAœ60ú ae‰žapÁ L¸2`¨Úê‘›˜•“„¬¾B9ÅÙG8öÔþS*Q-ª?^y²¦¼¬òd 䌊§ý7¿Hrm…aéëyßï®ß¬VÖû’ ³U`S싽^Ú€Lùå1|R"_Àä,Xï8ÅÊÇ0,Û4¯ú.mð-‘I7x«èÜ ¼çȸšIj¬ ö>uÅ4öÄ:Lƒíƒkµ]—å˱x/}yÓ“TФO7Åò§ ñ§¯ÆLöCP¸÷Ó| äJÑ“o®îmN~îyÙ˜›9›ÀóÁ>¯lÁDÚ`*¼Œek6¡h´¶zÛ¥Ýg¿>[xƒ+î‘{{»sqó¡C…‡Hi6ˆÛÖé!’ò'îL£êôùc‡Qa¹¬—Í:’W´qÞqë|ä®}†5Z~n¼-BË _éáÅ[(᮲™›èò©æÆKʯ {L_Ôd¸ícªžá­Má8D³/ZW{zF¯v•µ>˜2Æ~½Ôý~.°„¿»ª>ˆxg5sØ{~UÀÅyóºŽí¨ý¥îJ7·Eþû×g¦íJYŸ½ % ä’ŒÓYeù.hàþÈwês¤A÷ÎüÐrájY7sŽaqV¨ôeël‰§D-q›»r¬Ëvh^.[>ÞeÏëù2ÒhwJg÷÷þüÃk¬db;˜ƒÉm‡çà,œd„Ä?l¼-{ï.ÄñpJù(týî-ùëV8€‚ h„ PŒ`œîµ\þ52æGŸ–ˆ‘ ¤ÇÇT-"£ ÕÖîß«’Uï)IG‰Ü¸ )Ûg,]›ñy¬ βbH'ç‡ß[tz!ë…Y„.C…–‘<M5]`7ÈÈ_†5tŸž§õ^Ï+-{g-^LuwZˆ§¹^‰ü-]Á«ÝÙ’ˆVX¡M™Sv¥íŽË G‹QTyRËöï¾j,ºLgQPéºú×7ƒéÐ}Õ•sêæ†.Ô‰^Fv;ÕâÏÕÓܪ·Ö¡îQ—úwຢ]Šdc(šÙ3(âà‚©F`þO‰·KÉÅ11n4ªÁ+yüsûž» A2üÑøÂ¸¼snS°qÉOg_GÝpˆÏ •¥tÄW¢·c­’“\|D¨i0¦óôŽÐ`2"€-#R{û†¯05D…FcTôçÈ#ˆ±¥‡ <a×Nò[ríŒØÇÂbîÜÔà5vÜ¿ßS'Iße'„ ˜‡ÀU !Ž`É­d†°½šKD»Åb/7l> stream xœUT PT×~oÞ{ÂB„õ)h}où•šúSÅZ…°K *X08 ¿"ëR\5Öòc½¨Q!,"*‚%k $5L4"dÚH¢fb;cL:þ„*çmi{2™ôÍÜ™wïœ{î÷}ç;‡e4*†eYÏȼ­)9aQ–œ4÷vA‹ë3—MKtj¢Ó¼ÿ+®Û&ùÜ~¡o2ãþ¦l·¼œ·Ãº3?e-5-=~ýÖ„3ÃÄ1ñL0“À$2˜W™$&Š c’™hÆÈ˜˜—˜_3¯0‹˜µÌ:F¤o2&†©`³/²çÙoU*“jPõX½X½_ýƨ)ÓüW¤­Ñ^àü¡Å[bWÂÁs»Ý÷:à 0LÓw\W☃n‡yýðŽ‹·úÏeÇJxŸžü‡ÏÕ·JÎK•ôK¿äi +há1hÙ6P 5ô)Џ,Y4¢é)2KG€…Hˆ3Š+ärԊ×M!IÆU+7Œô Ý–½]VðU*a û„ª]¿SòÅ}×÷8sÚþöR;²DÀ7q ÎÆ"ÜzœMÁ®¯g°¼JÆ®$<þÕp"Ä| añçÿ.Ù²ÎʵG «ÒoÅŸ2òÓizÇÏ,¼>þ^{û½Ç–ÕKÈ—–ï#ûI,IH1G úÏ)Ç^+¨à¨Ø.z!‘rT)*ñp q}væª3çÔçËõ…u%í‚åI~mEÕEd§VðJæöÊj›´ûøÛÇßn¦ÑÜôøûZXJ¾ Wk­ÎÖS—I/Êêˆn@c_ZuñQrR8×jï8¿#¹\ò†ûÖçðü!ûõ„¼§Å0 8Ë>ˆßpK:R¾mi:|´IzÄÿé@éÁb"d”ï’¡ó§úx*¿µ³×& ¬V.LUôò>öõ”˜8sëg°Ëe1ôG³²|ðŽâDˈk²U$ZxÔŒÍDOe¦Ã9Ø<ö‰ö _ÆoLOK.*-¯°I|CYõÁ:ÒF.Vž:ö~m]cã Èséý~A÷/n)ëáX ~ ¿ÂÔ‹Ãp šÁ"˜öà.ˆ52NçlFKî"Do¹ñ¬çXW]«\{®¥ÖI®’3¹µÑÂx}&ÁºÙÙfªa‘;ñÜ©`p™i•ª¹¬¾×š~O³‹sq2þ&êdä{I²#éæÖ›d€t6µõ è¡x‰Ÿwš‚çnŠ17 >~Ò54$»¡ŽBàCxa”U _,¯&¤’ô•^Þs!óÑ¢OÆ[jþ<ÔàjŒü.ÂÀëÑàó%n×–´¼$•l«+8·Ç¾ïÔáÐC±ê^[û§T“Ö]vKMÁ;ù‡3o×|b‡½àðaoC(s‹Ÿ5"Äq0ýþ÷0B–ÞÁy2~ñ£B9EÔÐXÇ‘µ*2#k9íûz+LQ*hß_‚P%ÄÝûa#bwËòˆŒ¦Ä®¹µì| "˲×ÄÄšÒƒ …Žì…à¦ë1_gÐ.ºrâZ›p?âö]-¾ GÄ•ÃQÖ?gïÝFüQ·ü)¥vç)x÷W³q~\цoÈÞÐBÝ}—¢p÷TªÛ÷<à\f Õ݇þQvVÐQñtlA«•)GD2°ûƒLgr_Ds •ðåeˆÚ«‰0Ç"ÿPð¤Ða!ñþë2ÌúÃ¥/÷It:Uá‚Ñ%°ŽêPIøõý8ã´ŒÜICCNéõÿ¸»møûÞÔÈ i˜Ëhÿ —ÛÆªEóo¯Ÿ‡u?È(S¯¬šXÓômý¿Ú7ßsöw6çn‘plüäÿöŠ/ÿ,öSdb6íHH‘þس¡™ºK¿`-IÍßœ( ðÞÖFÅa‡öMxx@€'ÑM":¢ó$à¡ÓÐyïÿ,µhendstream endobj 734 0 obj << /Filter /FlateDecode /Length 5705 >> stream xœÅ\K“Gröyv„oV„qÛ›èízW­VŽÐce¯Cá¥Fk…(@Qö ()ýzgfU5*« À3²ƒbÕõÈÊÇ—/ü¸z±ð_úÿ»ÍÕ°¸½úñJÐÓEúï»Íâ“›«ß=öžôabqóü*¾"R„^ jáŒëƒ2‹›ÍÕ“î¯×^öÁ+Õ­Öß_/‡~0^xë»—×Ò÷ƒ®;Œ/¯—JÁ0«º›k¯úaP¦Û^/q„Ю{vï)'†Ðmw[zsªûéQz1„î¿è© ªcËØ_;¯`¼î>׿”_m¶ûjèÿÜü'œÕêò¬j½ Î{óìªSîúæoWK­Åb©Lï­ÅÇOº_Ò†µ—°±íáE±ýz;ÚàöM·I__vì$„ƒÃ\ÏÒ Æuo"´íVû<ì^ïí¶¯èÍ êªÓÑD& ÝÓkœ]…îg:ño®þryÁ,v§y€Óeâ؇QÀRÂå†Èÿñ=®תC·zYì0ïñ9ñ ñuñ}9ö¶ÜÝ»nKIÑ;ͶÕ}ÛáåÝï¸J`nËæ•Ã03¿ó”Úõ~М‚ß^'J×=gÂ( ÂP³Y¤¸ë¾ÌWm8óíãfÅÅcŸÞdãžàz´Ïl<Ù÷$ºužÈJk¥K³„?è,K¡z£ƒŒÒ±Šâ¬¥t·*9öÀ„VUÚƒ*QÈ£°ªöA˜T(ŠÊ/Üà{#–|÷4Êq¶c;ÚÒ–¼ÏŠ2ž·*}©ð^¦§FtŸíFNé}¥ §ÅïÁåÒªÞ;SœëA˜\Zß Q’ y\߃ǥp­–]²¸ÒXÙÎXœ¨æ,NãÁhüùÓÏòÅàóyFî‘ÆÁk´1Äë^ÈÊñ‹˜8ZõO%Ëï¹d¬ò kÙmŸ?' kEÖÒBÂÇõÈ5WÜ(p{ÃD‰‰â2x"KÜ ¡ -ù]É›Ñ* e»Ÿ®Aû(ºÕndlÊ^ø'²ýL´Ùõ—³>BSLb?;Ma€(OKâ¥× h Ú\ lè0nã†À¬Ë€÷€o`¯y6mòFãò غ¬2ìµu#¡q¬ô-g,‘?y]íº=ìÛ¼UÅÏzX!|‰Wj3ØiÏ™`MÇA‚®6¥Ú[ל0©Ë/®nþåI‡„&PãkÔ0Ê»€ûCN”Nw/p(f pº®ø.­ðŽïÏ:¸‡A«È:oÓÄpêqŸ¾úŒ¹‰ŒQÂ:CçИøîO‡tD”ÂÕî°Ï'æv .9¸Æu—¨QãUÖ†çq9«·>þ4–[--Åj.‚¿zÅu:Þ©É7ºN<~âu§A“E¶që³/”˜óZƒôDˆ *¿P² [­Éõ€Zúw¥ `7Ð mû·Päl04ò‡4 G1™Í¸rQŒ|Ò}x½`Ùñ®~H[޽&4P$„¸‰'ÝGxZÔ€¶ù¾ŽÁðnz¡Xá÷ø„+Øø±x?~xpÛÄì2ô®!Ï>ƒFí‘3‘Ú·l üéL¥YÞ…Z+·/EK  Ѐ¶èYšßd5 t¯ßsMÇnßÝ®ÑPðfÈ&)Ä’¿¶µ`Ѫ VH{¹Ýááêí×d L"˜÷ÐG'ìШ¯lÒM¥VŽ Œª_!tŸãh¹hÜ+üD\ùÊÛaŠfGÝM“-¤&ádø1 8„Øm7ù 1¿gÂÙ@ÁÝxË4жBkþ´ På#‚¾ŒÊ~nØZ¢I¸Gš$›o[²ézá˜pÙ³pVR&z#ÀÙ*‡FÀ7“/ÝK ..<6g³½óa°¥Ì:OŠí”Ì_Ù0—Y{”Y}T[~üð8àå¤AJ2¨¡wamå.©(˜¿E@ýˆ›¨Ðž-àý ùŽTðþžT¸mëQ¦º"Ó–¹z[jWŸ{YX(6â' , ƒ(5ø|˜´^@`Gß 7j’塞åç‘·‘FàqRˆ¬ã¶±X/P\"Í7m0X£ù>ÊLafB¤3SÞÜä¹.ƒ›<ò÷-€ð¬ÌË~ îoÅ¥KeAgF^´ªm•‰á {³‰¶–ÑðŠˆ¡qt3À$Eë2(wÓ Ù‘{Û£{1)ëOi êÛµ “½-Tû¸OK€cpÔ§3…¯dh»î8à»Ã+T:¡Ö:Ój `¥M2T•ÜQËL´Œ›©}Mœ¯ å4çöùÑ%HÐÈö¾öÖgú”à…}}ŠØÉr]¾gƒŽhdR•fTÕä ©ñåÄ×ß´Xß#¸#ß`¸Á3l䦤Àrœ·Èä^jð“‰õ¥¼•$Žj)!@v'ü›ÖÆÁ ’(ÔiãÛçÜ›“¢Wƒ‰XázWn1z5÷Í‚–Ѳ:y©ísBÏWÀzt4ŒxŸ Ï_±"!xC¹ëøT_Îç¥>¦ÊîA1fY ~8Ê* (2²«éÉZÙ%l¾S+¦tœûÙ)Á,³)gZÁø²"N ÚýïÛq VËË.ë>i£/Å14ôǽÏxÖO¥ke¸_Äðb±·–²$')«±y¦‘e6À€H†àBjÒƒ)Ö¾rvXêb»ã{ާܨRÝ–#¾‚ê<©ŠÕ0¼åéë¶× ¿þúëå'¹ È«yê˜à[™~‹É74t¨îº5Æ ð½# „Y59“ËOb–ü”‹«}{­¢×àé¸Ã;UˆûU®pÈ1ðÒ®bÎNKJÙá ÀòŽÓ†öé!ˆ# Nb³ NËhùœNe%¼ùsÚ˜˜'lé¹ ±¾ÝîFöí&­áçø¸¶î˜,ß¾H_PQq0λ?°ò­ë,Øo^¦·•.ÓècäbŒÿò)BËG¤TI\Þ‚ÂÙ3&_Wî^m÷Ñý´C\q÷lžÌH5ŽŠ¹òÞð O9•b‡kº”²é2 ⻘Ƙyr8¿ñU!ÁÉt4mAŸÊ §qýÔÈ(€¶@9^€(Àíw®À"1í*.‹ îbKSÊ\XUN{ß®€€A0ÚQy‹‘¤I€ž?ˆ|8–±LYDKú«{L ÃS•ßOšÖÛòµÝaÿÛ=­Š5`™¿z¼Œ™=ði—<þc! MÚ¦/â×›ümh”(P¨‡ŠÏ4-ÝÒéQ„ÑöÎ_¦±¦ªÿXEd1TÊsÒ L]€¢Èè'Ö‹FóÚ‹(åA„qÐÀ2ƒƒ*’t¬âÝßü0VQ„H×0üÌ?³‘ ƒÄ]ê‹uùú}0ekØþD”ó*ËæàšßC– : Fó­¦ðå½t…IÊ<Ⓤ/þÛ1Î0,äæÁ&j0KÝf,Ñ̸‰iéì=“ŒmÒ,AfMó°z”øÇ²¾Ã×L;€ 63e¤½ÅÆÝ‚a< ˆyÔ~·a;ƒ©‘—Á÷ œzˆiĆ&ˆbt®YŽdÛÐ šÃó¡ ²ªØÞ§…¬@{~nyÑ(³ƒ±<´ªŸšÝ¤(F”þÂÜIwØ~µˆGm ç¿]VMU©dªˆÓhzѨÃÀw” z k¨©Á8‘±U\æøù^Æ’q¦dÆÍøKÅÇûܧ] †ŽÔ€–é( Ô‚ÏÍeæJ^6ßiÅ\nˆÕ+xp;uuaÜTDŽ”Ns1üý†#[Â{Ds?¯JaŠš&¶Y ÷nè$}¦4’)àvt1á[5îÞŒûü2šÉcÑËj¶ÑÀ#Ú9Š-^¨Áœ¥†&‹¸4ÆÓ©¿*¿(ÃlÀ篋?ÙuòË.Eð¸k<^ÜHh!Öopûâ×.,5:”G]íkNoŠžÆ7LÂçÐc¬…¸ŠÂ0 …Cöô¨â×y §PSk&­ áÄZÔÛ.î׎ê9Êtѽô²¤ØÑYމêsÈb ~½'d‰Õ]¦Ê3Ý%8ìc¡ÌÐ{“ 77b%jrÒŠ¢x³êX…Ñ3Wå^ŸÏY7¹‡U÷8ìLÊWqT¢v®/(×Åð4xyß^Óù±îÌôZ¬1¬`(OƒŸC}{àV`S‹s| K$ÇM&’§) RŠÀfGÄããä ySûÐL'²HfyyÛ´—anŸ¼È5PüüZ€/öñ—ŵÝ,c(tÒryÂ}ÁõR-”ÂÐ’}Çp5¶ Üœyà&f¨x¸šžœø?é?Á¬´7²<ØuYÇÃæ½g õoˆêÈGG‚GΟ¥,þ¼ŽÞ4¹Jw¬¹ÉÙG¥k¿F[‰­så/N`’QOóêø9±'0ýj½ÌmVŽÃ=ù–­Aí§;¬~˜C]Ųt b?åF(U žÉauKa C‰°ˆÜTÞ(šGé1´…Õ%\Î"“œ=J³ˆ³X—F`Š5ïPFàAHÀœ@æNçåæ™ÐºCh¿ÚýœÖT ÷™F>–)'¶Û‰,sÕNÓ:ªQj€£:x’Ë6™á¨*ßÔ­ž…Ä(¹g!N[÷,ĪˆsX˜*}4qfœ‡—wÏàäR‹˜Á¡Í{[%Ósìý=S8±XðšSP8ÿÓf8ÿ«ýL¤Îµ&œ›©VêDK3ð­ÚÐøâXA˜‹B¬›UÕ€jBŠ2RÝp¢®Rzœö ,àøm#ídiK†©é²tïŸqu_×B½BO ³ZA¾olÁ•yZó—¯7&¤*Ïià“³Ý;óR*•ÛA>>Ã.®Jö±5|ÒP8ƴʨ4öØÞ™ ˆƒÚKZÒ˜è£9DUÁË—yÛuTsÍ @) ±›–àæíJ´Œ«D<Œ Ö±,T¶™ò¼íìXÝà¬Ì, ô³JÐÑ$&Ï•Ÿ¢˜8V1ß&Ðî?P²5ÕKÓ”IqÖÇLeí¹ïÇþx=©‚7¹†ÌÐ…LU.…j*<û\ÜóÍ–óÆ®ÒH©xÍ¢#îסG™(Ž:ÕûW™ç¥Õ>,– TÆàRàþzIY#°µŸ]·ä©ƒ\h,¥Ψ8Ÿb©ÀÔAw±`\Éþ,q•…ö^,0¦#mY¢&dïTøã„à€,vq»¿BY^¼úýû•4ŽŠß¤…åœ^l®x— Û¦'ë«/OR¹Þf"3L ¾LøOh]@ÔZccnj̅¯ïÓ«Ó*pç½:—+ÜO ¸…]^¼‹¡8Ñ:£zyÖd"½bÕƒR+eѦ‘¶ÿoIÇ3Û}| îpYŒl™6{6!À›ÞùP‡Ýâ‘"¥ò3àVca9=jfUÂ;`Ö@†¨l˜šß>ž÷Âí{ëÞáöïzùú2L—oÿ=®|Þ3v”€vé&|6zêOê¤l—nŠÈÿÉRc¬šG_ õ}ªK Ü0s©fE_0j´NÕf<îg£¶<–&8æó¾\ÃÊÓh#OãW^¥ÌPMн é£p|Ñ"T¶BdJ4ê5hëUf…»4Ķ£Æùg¶I•­ÇVÙn<Ñvz)\®âÿ(e %v*UáÆ“íVSŸW» Ù\nB>ÝЈ ü.5óAhs5óÕ=Ô¥i æ¦î“}ŽJØ¡ìsÄŸ6B¡:Ý¡-ÑÐÿjÚÖå¹[A¾>CúÚQƃG`‡ùm¸¿‚!Œ;  ŽÕŽmVÃjÛP¢y €Œ,O¨<‹vÖ*Š;ã,§£âµQŠS”?\qÒùoRÄMúr¼ ' Ñí²¾Lê!ï´á¸O¡(ÀW{ °AGØä|LåI±Eç55Ãîxó€:*ú=›Y[?4ò(ù8_ý3‡ ²Ó¯¶Q]aú%±Y]¡¥¼Góר ²QÍtüc^DXP%ÍÔCZêˆõLšýäUSfú ™ ?2€Qüùš#ê×ø­§r*´!’¹’‹›_¤ó˜üÛ@ðÇPe†Î¥ýX<æû¨ù«*uš7JàzÁsØv¯OѪöG¦ ð_®þƒ•-endstream endobj 735 0 obj << /Type /XRef /Length 433 /Filter /FlateDecode /DecodeParms << /Columns 5 /Predictor 12 >> /W [ 1 3 1 ] /Info 3 0 R /Root 2 0 R /Size 736 /ID [<1e72fd1bd9b95813bc2c1dc1114abbe5>] >> stream xœí—Í+DQÆÏ¹c†ÆwÜ™¡eR"QlD)š°Ñ(J²”¥bCJc1+V²ÉÇÂÂÆG)J ¡L±Ò$)_YPÆ}žî?àÌâ×ÛÛ{Þóœ÷<ݹWøiRù*4$¤¢âÌ}ÙkR>Q´òI÷|²9¡|¢hå“X>Y>S>Q´òÉh=¾h|5ðIE;èé³â`x,\ý)“Ò=„¸ä€ùo°à‰«œ ÷t­‚²4¶Àü°ütN“`ÐÆµiÖL¢Ï"âÞNÐ7 敹ó`hŒ?ÈG2Bµ X¬Fèu,¤jóQ­ý‚žÂqº·™³wx¢(XDͲ…53œ@%v x90ëûØgäW¡ ¶sæ˜ÑYÉvùF6’ýTË}õkÆ Ü½”3™c†Ïy?ïÅ85L^ºx;9û¬LR‚Så‰ìœ¹³ Œ®ð¦8gÿ'ûsbWÔ\Emü’u§˜9ä$Ÿ¹*@ ÍìùÅžÖómÖHˆÐÝ[ì endstream endobj startxref 419008 %%EOF rrcov/inst/doc/rrcov.R0000644000176200001440000003052314660616376014427 0ustar liggesusers### R code from vignette source 'rrcov.Rnw' ################################################### ### code chunk number 1: rrcov.Rnw:471-473 ################################################### ## set the prompt to "R> " and the continuation to "+ " options(prompt="R> ", continue="+ ") ################################################### ### code chunk number 2: intro ################################################### ## ## Load the 'rrcov' package and the first two data sets to be ## used throughout the examples ## library("rrcov") data("delivery") delivery.x <- delivery[,1:2] # take only the X part data("hbk") hbk.x <- hbk[,1:3] # take only the X part ################################################### ### code chunk number 3: intro-mcd ################################################### ## ## Compute MCD estimates for the delivery data set ## - show() and summary() examples ## mcd <- CovMcd(delivery.x) mcd summary(mcd) ################################################### ### code chunk number 4: intro-plot ################################################### ## ## Example plot of the robust against classical ## distances for the delivery data set ## plot(mcd, which="dd") ################################################### ### code chunk number 5: intro-S ################################################### ## ## Compute the S-estimates for the delivery data set ## and provide the standard and extended output ## est <- CovSest(delivery.x, method="bisquare") est summary(est) ################################################### ### code chunk number 6: intro-CovRobust ################################################### ## ## Automatically select the appropriate estimator according ## to the problem size - in this example the Stahel-Donoho estimates ## will be selected. ## est <- CovRobust(delivery.x) est ################################################### ### code chunk number 7: rrcov.Rnw:1019-1020 ################################################### set.seed(1234) ################################################### ### code chunk number 8: CovControl ################################################### ## ## Controlling the estimation options with a control object ## control <- CovControlSest(method="biweight") PcaCov(hbk.x, cov.control=control) ################################################### ### code chunk number 9: CovControl-loop ################################################### ## ## Controlling the estimation options: example ## of looping through several estimators ## cc <- list(CovControlMcd(), CovControlMest(), CovControlOgk(), CovControlSest(), CovControlSest(method="rocke")) clist <- sapply(cc, restimate, x=delivery.x) sapply(clist, data.class) sapply(clist, getMeth) ################################################### ### code chunk number 10: CovRobust ################################################### ## ## Automatically select the appropriate estimator according ## to the problem size. ## getMeth(CovRobust(matrix(rnorm(40), ncol=2))) # 20x2 - SDE getMeth(CovRobust(matrix(rnorm(16000), ncol=8))) # 2000x8 - bisquare S getMeth(CovRobust(matrix(rnorm(20000), ncol=10))) # 2000x10 - Rocke S getMeth(CovRobust(matrix(rnorm(200000), ncol=2))) # 100000x2 - OGK ################################################### ### code chunk number 11: CovControl-S ################################################### ## ## Rocke-type S-estimates ## getMeth(CovRobust(matrix(rnorm(40), ncol=2), control="rocke")) ################################################### ### code chunk number 12: CovControl-CovRobust ################################################### ## ## Specify some estimation parameters through a control object. ## The last command line illustrates the accessor method ## for getting the correlation matrix of the estimate ## as well as a nice formatting method for covariance ## matrices. ## data("toxicity") ctrl <- CovControlOgk(smrob = "s_mad", svrob = "qc") est <- CovRobust(toxicity, ctrl) round(getCenter(est),2) as.dist(round(getCorr(est), 2)) ################################################### ### code chunk number 13: ex-cov-plot-lattice ################################################### ## ## Distance plot and Chi-square Q-Q plot of the robust and classical distances ## Lattice plots (currently not available in rrcov) ## library("lattice") library("grid") library("rrcov") data("delivery") X <- delivery[,1:2] myPanel.dd <- function(x, y, subscripts, cutoff, ...) { panel.xyplot(x, y, ...) panel.abline(h=cutoff,lty="dashed") n <- length(y) id.n <- length(which(y>cutoff)) if(id.n > 0){ ind <- sort(y, index.return=TRUE)$ix ind <- ind[(n-id.n+1):n] xrange<-range(y) adj <- (xrange[2]-xrange[1])/20 ltext(x[ind] + adj, y[ind] + adj, ind, cex=1.0) } } myPanel.qchi <- function(x, y, subscripts, cutoff, ...) { y <- sort(y, index.return=TRUE) iy <- y$ix y <- y$x panel.xyplot(x, y, ...) panel.abline(0,1,lty="dashed") n <- length(y) id.n <- length(which(y>cutoff)) if(id.n > 0){ ind <- (n-id.n+1):n xrange<-range(y) adj <- (xrange[2]-xrange[1])/50 ltext(x[ind] + adj, y[ind] + adj, iy[ind], cex=1.0) } } n<-nrow(X) p <- ncol(X) cutoff <- sqrt(qchisq(0.975, p)) mm <- covMcd(X) dd1 <- sqrt(mm$mah) # robust distances vv<-cov.wt(X) dd2 <- sqrt(mahalanobis(X,vv$center,vv$cov)) # classical distances dd<-c(dd1,dd2) # both robust and classical distances gr <- as.factor(c(rep(1,n), rep(2,n))) levels(gr)[1] <- "Robust" levels(gr)[2] <- "Classical" qq <- sqrt(qchisq(((1:n)-1/3)/(n+1/3), p)) ind.dd <- c(1:n, 1:n) ind.qchi <- c(qq, qq) dplot <- xyplot(dd~ind.dd|gr, cutoff=cutoff, panel = myPanel.dd, xlab="Index", ylab="Mahalanobis distance", main="Distance Plot", col = "darkred", scales=list(cex=1.0)) qplot <- xyplot(dd~ind.qchi|gr, cutoff=cutoff, panel = myPanel.qchi, xlab="Quantiles of the chi-squared distribution", ylab="Mahalanobis distance", main="Chi-Square QQ-Plot", col = "darkred", scales=list(cex=1.0)) plot(dplot, split = c(1, 1, 2, 1), more = TRUE) plot(qplot, split = c(2, 1, 2, 1), more = FALSE) ################################################### ### code chunk number 14: ex-cov-plot-ellipse ################################################### ## ## a) scatter plot of the data with robust and classical confidence ellipses. ## b) screeplot presenting the robust and classical eigenvalues ## data("milk") usr<-par(mfrow=c(1,2)) plot(CovMcd(delivery[,1:2]), which="tolEllipsePlot", classic=TRUE) plot(CovMcd(milk), which="screeplot", classic=TRUE) par(usr) ################################################### ### code chunk number 15: pca-ex-hbk ################################################### ## ## Principal Component Analysis example: ## Plot of the first two principal components of the ## Hawkins, Bradu and Kass data set: classical and robust ## par(mfrow=c(1,2)) pca <- PcaClassic(hbk.x, k=2) cpca <- list(center=c(0,0), cov=diag(pca@eigenvalues), n.obs=pca@n.obs) rrcov:::.myellipse(pca@scores, xcov=cpca, main="Classical", xlab="PC1", ylab="PC2", ylim=c(-30,30), id.n=0) abline(v=0) abline(h=0) text(-29,6,labels="1-10", cex=0.8) text(-37,-13,labels="14", cex=0.8) text(-31,-5,labels="11-13", cex=0.8) hub <- PcaHubert(hbk.x, k=2, mcd=TRUE) chub <- list(center=c(0,0), cov=diag(hub@eigenvalues), n.obs=hub@n.obs) rrcov:::.myellipse(hub@scores, xcov=chub, main="Robust (MCD)", xlab="PC1", ylab="PC2", xlim=c(-10,45), ylim=c(-25,15), id.n=0) abline(v=0) abline(h=0) text(30,-9,labels="1-10", cex=0.8) text(36,-11,labels="11", cex=0.8) text(42,-4,labels="12", cex=0.8) text(41,-11,labels="13", cex=0.8) text(44,-15,labels="14", cex=0.8) ################################################### ### code chunk number 16: pca-classic ################################################### ## ## Classical PCA ## pca <- PcaClassic(~., data=hbk.x) pca summary(pca) plot(pca) getLoadings(pca) ################################################### ### code chunk number 17: pca-robust ################################################### ## ## Robust PCA ## rpca <- PcaGrid(~., data=hbk.x) rpca summary(rpca) ################################################### ### code chunk number 18: ex-pca-plot-screeplot ################################################### ## ## Screeplot for classical and robust PCA of the milk data set. ## usr <- par(mfrow=c(1,2)) screeplot(PcaClassic(milk), type="lines", main="Screeplot: classical PCA", sub="milk data") screeplot(PcaHubert(milk), type="lines", main="Screeplot: robust PCA", sub="milk data") par(usr) ################################################### ### code chunk number 19: ex-pca-plot-biplot ################################################### ## ## Robust biplot for the UN86 data ## data("un86") set.seed(9) usr<-par(mfrow=c(1,2)) biplot(PcaCov(un86, corr=TRUE, cov.control=NULL), main="Classical biplot", col=c("gray55", "red")) biplot(PcaCov(un86, corr=TRUE), main="Robust biplot", col=c("gray55", "red")) par(usr) ################################################### ### code chunk number 20: ex-pca-plot-diagplot ################################################### ## ## An example of the classical and robust diagnostic ## plot for the hbk data set ## usr<-par(mfrow=c(1,2)) plot(PcaClassic(hbk.x, k=2), sub="data set: hbk, k=2") plot(PcaHubert(hbk.x, k=2), sub="data set: hbk, k=2") par(usr) ################################################### ### code chunk number 21: ex-pca-plot-distplot ################################################### ## ## If k=p the orthogonal distances are not meaningful and ## simple distance plot of the score distances will be shown ## usr<-par(mfrow=c(1,2)) plot(PcaClassic(hbk.x, k=3), sub="data set: hbk.x, k=3") plot(PcaHubert(hbk.x, k=3), sub="data set: hbk.x, k=3") par(usr) ################################################### ### code chunk number 22: lda-prelim ################################################### data("diabetes") ################################################### ### code chunk number 23: lda-cloud ################################################### library("lattice") # load the graphical library ## set different plot symbols - important for black-and-white print sup.sym <- trellis.par.get("superpose.symbol") sup.sym$pch <- c(1,2,3,4,5) trellis.par.set("superpose.symbol", sup.sym) cloud.plt <- cloud(insulin ~ glucose + sspg, groups = group, data = diabetes, auto.key=TRUE) ################################################### ### code chunk number 24: lda-cloud-fig ################################################### print(cloud.plt) ################################################### ### code chunk number 25: lda-classic ################################################### lda <- LdaClassic(group~glucose+insulin+sspg, data=diabetes) lda ################################################### ### code chunk number 26: lda-classic-predict ################################################### predict(lda) ################################################### ### code chunk number 27: lda-robust ################################################### rlda <- Linda(group~glucose+insulin+sspg, data=diabetes) rlda rlda.predict <- predict(rlda) cat("\nApparent error rate: ", round(rrcov:::.AER(rlda.predict@ct),4)) ################################################### ### code chunk number 28: qda-robust ################################################### rqda <- QdaCov(group~glucose+insulin+sspg, data=diabetes) rqda rqda.predict <- predict(rqda) cat("\nApparent error rate: ", round(rrcov:::.AER(rqda.predict@ct),4)) rrcov/inst/doc/rrcov.Rnw0000644000176200001440000033555714443667016015007 0ustar liggesusers% -*- TeX -*- -*- Soft -*- \documentclass[article,shortnames,nojss]{jss} %\VignetteIndexEntry{An Object-Oriented Framework for Robust Multivariate Analysis} %\VignetteKeywords{robustness, multivariate analysis, MCD, R, statistical design patterns} %\VignettePackage{rrcov} \usepackage{amsmath} %% need for subequations \usepackage{amssymb} \usepackage{amsfonts} \usepackage[english]{babel} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% declarations for jss.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\vv}[1]{\mbox{\boldmath$#1$}} \newcommand{\xv}{\mbox{\boldmath$x$}} \newcommand{\yv}{\mbox{\boldmath$y$}} \newcommand{\zv}{\mbox{\boldmath$z$}} \newcommand{\mv}{\mbox{\boldmath$m$}} \newcommand{\tv}{\mbox{\boldmath$t$}} \newcommand{\xbarv}{\mbox{\boldmath$\bar x$}} \newcommand{\uv}{\mbox{\boldmath$u$}} \newcommand{\muv}{\mbox{\boldmath$\mu$}} \newcommand{\nuv}{\mbox{\boldmath$\nu$}} \newcommand{\deltav}{\mbox{\boldmath$\delta$}} \newcommand{\chiv}{\mbox{\boldmath$\chi$}} \newcommand{\ov}{\mbox{\boldmath$0$}} \newcommand\MCD{\mathit{MCD}} \newcommand\MVE{\mathit{MVE}} \newcommand\OGK{\mathit{OGK}} \newcommand\diag{\mathrm{diag}} %\newcommand\det{\mathrm{det}} \newcommand{\class}[1]{``\code{#1}''} \newcommand{\fct}[1]{\code{#1()}} %% almost as usual \author{Valentin Todorov\\UNIDO \And Peter Filzmoser\\Vienna University of Technology} \title{An Object Oriented Framework for Robust Multivariate Analysis} %% for pretty printing and a nice hypersummary also set: \Plainauthor{Valentin Todorov, Peter Filzmoser} %% comma-separated \Plaintitle{Object Oriented Framework for Robust Multivariate Analysis} %% without formatting \Shorttitle{OOF for Robust Multivariate Analysis} %% a short title (if necessary) %% an abstract and keywords \Abstract{ \noindent This introduction to the \proglang{R} package \pkg{rrcov} is a (slightly) modified version of \cite{todorov-oof}, published in the \emph{Journal of Statistical Software}. \noindent Taking advantage of the \proglang{S}4 class system of the programming environment \proglang{R}, which facilitates the creation and maintenance of reusable and modular components, an object oriented framework for robust multivariate analysis was developed. The framework resides in the packages \pkg{robustbase} and \pkg{rrcov} and includes an almost complete set of algorithms for computing robust multivariate location and scatter, various robust methods for principal component analysis as well as robust linear and quadratic discriminant analysis. The design of these methods follows common patterns which we call statistical design patterns in analogy to the design patterns widely used in software engineering. The application of the framework to data analysis as well as possible extensions by the development of new methods is demonstrated on examples which themselves are part of the package \pkg{rrcov}. } \Keywords{robustness, multivariate analysis, MCD, \proglang{R}, statistical design patterns} \Plainkeywords{robustness, multivariate analysis, MCD, R, statistical design patterns} %% without formatting %% at least one keyword must be supplied %% publication information %% NOTE: Typically, this can be left commented and will be filled out by the technical editor %% \Volume{13} %% \Issue{9} %% \Month{September} %% \Year{2004} %% \Submitdate{2004-09-29} %% \Acceptdate{2004-09-29} %% The address of (at least) one author should be given %% in the following format: \Address{ Valentin Todorov\\ Research and Statistics Branch\\ United Nations Industrial Development Organization (UNIDO)\\ Vienna International Centre\\ P.O.Box 300, 1400, Vienna, Austria\\ E-mail: \email{valentin.todorov@chello.at}\\ % URL: \url{http://statmath.wu-wien.ac.at/~zeileis/} } %% It is also possible to add a telephone and fax number %% before the e-mail in the following format: %% Telephone: +43/1/31336-5053 %% Fax: +43/1/31336-734 %% for those who use Sweave please include the following line (with % symbols): %% need no \usepackage{Sweave.sty} %% end of declarations %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\bi}{\begin{itemize}} \newcommand{\ei}{\end{itemize}} \newcommand{\be}{\begin{enumerate}} \newcommand{\ee}{\end{enumerate}} \renewcommand{\v}[1]{\mathbf{#1}} %% Sweave options for the complete document %%\SweaveOpts{keep.source=TRUE} %%\SweaveOpts{prefix.string=images/oofgen/oof} \SweaveOpts{prefix.string=ooframework} \begin{document} %% include your article here, just as usual %% Note that you should use the \pkg{}, \proglang{} and \code{} commands. %\section[About Java]{About \proglang{Java}} \section[Introduction]{Introduction} %% Note: If there is markup in \(sub)section, then it has to be escape as above. Outliers are present in virtually every data set in any application domain, and the identification of outliers has a hundred years long history. Many researchers in science, industry and economics work with huge amounts of data and this even increases the possibility of anomalous data and makes their (visual) detection more difficult. Taking into account the multivariate aspect of the data, the outlyingness of the observations can be measured by the Mahalanobis distance which is based on location and scatter estimates of the data set. In order to avoid the masking effect, robust estimates of these parameters are called for, even more, they must possess a positive breakdown point. The estimates of the multivariate location vector $\muv$ and the scatter matrix $\v{\Sigma}$ are also a cornerstone in the analysis of multidimensional data, since they form the input to many classical multivariate methods. The most common estimators of multivariate location and scatter are the sample mean $\xbarv$ and the sample covariance matrix $\v{S}$, i.e., the corresponding MLE estimates. These estimates are optimal if the data come from a multivariate normal distribution but are extremely sensitive to the presence of even a few outliers (atypical values, anomalous observations, gross errors) in the data. If outliers are present in the input data they will influence the estimates $\xbarv$ and $\v{S}$ and subsequently worsen the performance of the classical multivariate procedure based on these estimates. Therefore it is important to consider robust alternatives to these estimators and actually in the last two decades much effort was devoted to the development of affine equivariant estimators possessing a high breakdown point. The most widely used estimators of this type are the minimum covariance determinant (MCD) estimator of \citet{rousseeuw:85} for which also a fast computing algorithm was constructed---\citet{rousseeuw-vandriessen}, the S~estimators \citep{davies:87} and the Stahel-Donoho estimator introduced by \citet{stahel:81, stahel-phd:81} and \citet{donoho:82} and studied by \citet{maronna:95}. If we give up the requirement for affine equivariance, estimators like the one of \citet{maronna:2002} are available and the reward is an extreme gain in speed. Substituting the classical location and scatter estimates by their robust analogues is the most straightforward method for robustifying many multivariate procedures like principal components, discriminant and cluster analysis, canonical correlation, etc. The reliable identification of multivariate outliers which is an important task in itself, is another approach to robustifying many classical multivariate methods. Some of these estimates and procedures became available in the popular statistical packages like \proglang{S-PLUS}, \proglang{SAS}, \proglang{MATLAB} as well as in \proglang{R} but nevertheless it is recognized that the robust methods have not yet replaced the ordinary least square techniques as it could be expected \citep{morgenthaler:2007, stromberg:2004}. One reason is the lack of easily accessible and easy to use software, that is software which presents the robust procedures as extensions to the classical ones---similar input and output, reasonable defaults for most of the estimation options and visualization tools. As far as the easiness of access is concerned, the robust statistical methods should be implemented in the freely available statistical software package \proglang{R}, \citep{RLanguage}, which provides a powerful platform for the development of statistical software. These requirements have been defined in the project ``Robust Statistics and \proglang{R}'', see \url{http://www.statistik.tuwien.ac.at/rsr/}, and a first step in this direction was the initial development of the collaborative package \pkg{robustbase}, \citep{robustbase}, with the intention that it becomes the \textit{essential robust statistics} \proglang{R} package covering the methods described in the recent book \citet{maronna:2006}. During the last decades the object oriented programming paradigm has revolutionized the style of software system design and development. A further step in the software reuse are the object oriented frameworks \citep[see][]{gamma} which provide technology for reusing both the architecture and the functionality of software components. Taking advantage of the new \proglang{S}4 class system \citep{chambers:98} of \proglang{R} which facilitate the creation of reusable and modular components an object oriented framework for robust multivariate analysis was implemented. The goal of the framework is manyfold: \be \item{to provide the end-user with a flexible and easy access to newly developed robust methods for multivariate data analysis;} \item{to allow the programming statisticians an extension by developing, implementing and testing new methods with minimum effort, and } \item{to guarantee the original developers and maintainer of the packages a high level of maintainability.} \ee The framework includes an almost complete set of algorithms for computing robust multivariate location and scatter, such as minimum covariance determinant, different S~estimators (SURREAL, FAST-S, Bisquare, Rocke-type), orthogonalized Gnanadesikan--Kettenring (OGK) estimator of \citet{maronna:2002}. The next large group of classes are the methods for robust principal component analysis (PCA) including ROBPCA of \citet{hubert-ROBPCA:2005}, spherical principal components (SPC) of \citet{locantore:1999}, the projection pursuit algorithms of \citet{croux-Ruiz-Gazen:2005} and \citet{croux-filzmoser-oliveira-pppca}. Further applications implemented in the framework are linear and quadratic discriminant analysis \citep[see][for a review]{todorov-roblda}, multivariate tests \citep{rousseeuw-willems:2002, todorov-manova} and outlier detection tools. The application of the framework to data analysis as well as the development of new methods is illustrated on examples, which themselves are part of the package. Some issues of the object oriented paradigm as applied to the \proglang{R} object model (naming conventions, access methods, coexistence of \proglang{S}3 and \proglang{S}4 classes, usage of UML, etc.) are discussed. The framework is implemented in the \proglang{R} packages \pkg{robustbase} and \pkg{rrcov}, \citep{todorov-rrcov}, which are available from Comprehensive \proglang{R} Archive Network (CRAN) at \url{http://CRAN.R-project.org} under the GNU General Public License. The rest of the paper is organized as follows. In the next Section~\ref{oof-sec:objmodel} the design principles and the structure of the framework is presented as well as some related object oriented concepts are discussed. As a main tool for modeling of the robust estimation methods a statistical design pattern is proposed. Section~\ref{oof-sec:ex-intro} facilitates the quick start by an example session giving a brief overview of the framework. Section~\ref{oof-sec:multi} describes the robust multivariate methods, their computation and implementation. The Sections~\ref{oof-sec:cov}, \ref{oof-sec:pca} and \ref{oof-sec:lda} are dedicated to the estimation of multivariate location and scatter, principal component analysis and discriminant analysis, respectively. For each domain the object model, the available visualization tools, an example, and other relevant information are presented. We conclude in Section~\ref{oof-sec:conclusions} with discussion and outline of the future work. \section{Design approach and structure of the framework} \label{oof-sec:objmodel} In classical multivariate statistics we rely on parametric models based on assumptions about the structural and the stochastic parts of the model for which optimal procedures are derived, like the least squares estimators and the maximum likelihood estimators. The corresponding robust methods can be seen as extensions to the classical ones which can cope with deviations from the stochastic assumptions thus mitigating the dangers for classical estimators. The developed statistical procedures will remain reliable and reasonably efficient even when such deviations are present. For example in the case of location and covariance estimation the classical theory yields the sample mean $\xbarv$ and the sample covariance matrix $\v{S}$, i.e., the corresponding MLE estimates as an optimal solution. One (out of many) robust alternatives is the minimum covariance determinant estimator. When we consider this situation from an object oriented design point of view we can think of an abstract base class representing the estimation problem, a concrete realization of this object---the classical estimates, and a second concrete derivative of the base class representing the MCD estimates. Since there exist many other robust estimators of multivariate location and covariance which share common characteristics we would prefer to add one more level of abstraction by defining an abstract ``robust'' object from which all other robust estimators are derived. We encounter a similar pattern in most of the other multivariate statistical methods like principal component analysis, linear and quadratic discriminant analysis, etc. and we will call it a \textit{statistical design pattern}. A schematic representation as an \textit{UML diagram} is shown in Figure~\ref{oof-fig:objmodel}. \begin{figure}[h!] \begin{center} \includegraphics[width=1.0\textwidth]{AModel} \label{oof-fig:objmodel} \caption{Class diagram of the statistical design pattern for robust estimation methods.} \end{center} \end{figure} The following simple example demonstrates the functionality. We start with a generic object model of a robust and the corresponding classical multivariate method with all the necessary interfaces and functionalities and then concretize it to represent the desired class hierarchy. The basic idea is to define an abstract \proglang{S}4 class which has as slots the common data elements of the result of the classical method and its robust counterparts (e.g., \code{Pca}). For this abstract class we can implement the standard in \proglang{R} generic functions like \code{print()}, \code{summary()}, \code{plot()} and maybe also \code{predict()}. Now we can derive and implement a concrete class which will represent the classical method, say \code{PcaClassic}. Further we derive another abstract class which represents a potential robust method we are going to implement, e.g., \code{PcaRobust}---it is abstract because we want to have a ``placeholder'' for the robust methods we are going to develop next. The generic functions that we implemented for the class \code{Pca} are still valid for \code{PcaRobust} but whenever necessary we can override them with new functionality. Now we have the necessary platform and of course we have had diligently documented everything we have implemented so far---this is our investment in the future development of robust methods from this family. The framework at its current expansion stage provides such platform for several important families of multivariate methods. It is time to dedicate our effort to the development and implementation of our new robust method/class, say \code{PcaHubert} and only to this---here comes the first obvious benefit from the framework---we do not need to care for the implementation of \code{print()}, \code{summary()}, \code{plot()} and \code{predict()} neither for their documentation or testing. In contrast to the \proglang{S}3 class system the \proglang{S}4 system requires the creation of objects to be done by the \code{new()} function which will perform the necessary validity checks. We go one step further and require that the \code{new()} function is not used directly but only through special functions known in \proglang{R} as \textit{generating functions} or as \textit{constructors} in the conventional object oriented programming languages. A constructor function has the same name as the corresponding class, takes the estimation options as parameters, organizes the necessary computations and returns an object of the class containing the results of the computation. It can take as a parameter also a \textit{control object} which itself is an \proglang{S}4 object and contains the estimation options. More details on the generating functions and their application for structuring the user interface can be found in \citet{todorov-constructors}. The main part of the framework is implemented in the package \pkg{rrcov} but it relies on code in the packages \pkg{robustbase} and \pkg{pcaPP} \citep{filzmoser-pcaPP}. The structure of the framework and its relation to other \proglang{R} packages is shown in Figure~\ref{oof-fig:structure}. \begin{figure}[h!] \begin{center} \includegraphics[width=0.8\textwidth]{Structure} \label{oof-fig:structure} \caption{Class diagram: structure of the framework and relation to other \proglang{R} packages.} \end{center} \end{figure} The framework can be used by other packages, like for example by \pkg{robust} \citep[see][]{konis-robust} or can be further extended. In Figure~\ref{oof-fig:structure} a hypothetical package \pkg{rrcovNA} is shown, which could extend the available robust multivariate methods with options for dealing with missing values. In the rest of this section some object-oriented programming (OOP) concepts will be discussed which are essential for understanding the framework. \newpage \subsection{UML diagrams} \label{oof-sec:UML} Throughout this paper we exploit UML class diagrams to give a clear picture of the framework and its components. UML stands for \textit{Unified Modeling Language}---an object-oriented system of notation which has evolved from previous works of Grady Booch, James Rumbaugh and Ivar Jacobson to become a tool accepted by the Object Management Group (OMG) as the standard for modeling object oriented programs \citep[see][]{umlInfra, umlSuper}. A class diagram models the structure and contents of a system by depicting classes, packages, objects and the relations among them with the aim to increase the ease of understanding the considered application. A class is denoted by a box with three compartments which contain the name, the attributes (slots) and operations (methods) of the class, respectively. The class name in italics indicates that the class is abstract. The bottom two compartments could be omitted or they can contain only the key attributes and operations which are useful for understanding the particular diagram. Each attribute is followed by its type and each operation---by the type of its return value. We use the \proglang{R} types like \code{numeric}, \code{logical}, \code{vector}, \code{matrix}, etc. but the type can be also a name of an \proglang{S}4 class. Relationships between classes are denoted by lines or arrows with different form. The inheritance relationship is depicted by a large empty triangular arrowhead pointing to the base class. Composition means that one class contains another one as a slot (not to be mistaken with the keyword ``contains'' signalling inheritance in \proglang{R}). This relation is represented by an arrow with a solid diamond on the side of the composed class. If a class ``uses'' another one or depends on it, the classes are connected by a dashed arrow (dependence relation). Packages can also be present in a class diagram---in our case they correspond more or less to \proglang{R} packages---and are shown as tabbed boxes with the name of the package written in the tab (see Figure~\ref{oof-fig:structure}). All UML diagrams of the framework were created with the open source UML tool \pkg{ArgoUML} \citep{argo:phd, argo:2000} which is available for download from \url{http://argouml.tigris.org/}. \subsection{Design patterns} \label{oof-sec:patterns} Design patterns are usually defined as general solutions to recurring design problems and refer to both the description of a solution and an instance of that solution solving a particular problem. The current use of the term design patterns originates in the writings of the architect Christopher Alexander devoted to urban planning and building architecture \citep{alexander} but it was brought to the software development community by the seminal book of \citet{gamma}. A design pattern can be seen as a template for how to solve a problem which can be used in many different situations. Object-Oriented design patterns are about classes and the relationships between classes or objects at abstract level, without defining the final classes or objects of the particular application. In order to be usable, design patterns must be defined formally and the documentation, including a preferably evocative name, describes the context in which the pattern is used, the pattern structure, the participants and collaboration, thus presenting the suggested solution. Design patterns are not limited to architecture or software development but can be applied in any domain where solutions are searched for. During the development of the here presented framework several design patterns were identified, which we prefer to call \textit{statistical design patterns}. The first one was already described earlier in this section and captures the relations among a classical and one or more alternative robust multivariate estimators. Another candidate is the control object encapsulating the estimation parameters and a third one is the factory-like construct which suggests selection of a robust estimation method and creation of the corresponding objects based on the data set characteristics (see Section~\ref{oof-sec:cov}). The formal description of these design patterns is beyond the scope of this work and we will limit the discussion to several examples. \subsection{Accessor methods} \label{oof-sec:accessors} One of the major characteristics and advantages of object oriented programming is the encapsulation. Unfortunately real encapsulation (information hiding) is missing in \proglang{R}, but as far as the access to the member variables is concerned this could be mitigated by defining accessor methods (i.e., methods used to examine or modify the slots (member variables) of a class) and ``advising'' the users to use them instead of directly accessing the slots. The usual way of defining accessor functions in \proglang{R} is to use the same name as the name of the corresponding slot. For example for the slot \code{a} these are: \begin{Scode} R> cc <- a(obj) R> a(obj) <- cc \end{Scode} In many cases this is not possible, because of conflicts with other existing functions. For example it is not possible to define an accessor function \code{cov()} for the slot \code{cov} of class \code{Cov}, since the function \code{cov()} already exists in the \code{base} \proglang{R}. Also it is not immediately seen if a slot is ``read only'' or can be modified by the user (unfortunately, as already mentioned, every slot in \proglang{R} can be modified by simply using \code{obj@a <- cc}). In \pkg{rrcov} a notation was adopted, which is usual in \proglang{Java}: the accessors are defined as \code{getXxx()} and \code{setXxx()} (if a \code{setXxx()} method is missing, we are ``not allowed'' to change the slot). The use of accessor methods allows to perform computations on demand (\code{getMah(mcd)} computes the Mahalanobis distances, stores them into the object and returns them) or even have ``virtual'' slots which are not at all stored in the object (e.g., \code{getCorr(mcd)} computes each time and returns the correlation matrix without storing it). \subsection{Naming conventions} \label{oof-sec:naming} %% %From Sun: "Class names should be nouns, in mixed case with the first letter of each %internal word capitalized. Methods should be verbs, in mixed case with the first %letter lowercase, with the first letter of each internal word capitalized." %% %No coding rules in R: the R Internals manual that is shipped with R %also has a section on coding standards: %http://cran.r-project.org/doc/manuals/R-ints.html#R-coding-standards %though this is quite short and does not go much beyond the basic indentation %% There is no agreed naming convention (coding rules) in \proglang{R} but to facilitate the framework usage several simple rules are in order, following the recommended Sun's \proglang{Java} coding style (see \url{http://java.sun.com/docs/codeconv/}): \bi \item{Class, function, method and variable names are alphanumeric, do not contain ``-'' or ``.'' but rather use interchanging lower and upper case.} \item{Class names start with an uppercase letter.} \item{Methods, functions, and variables start with a lowercase letter.} \item{Exceptions are functions returning an object of a given class (i.e., generating functions or constructors)---they have the same name as the class.} \item{Variables and methods which are not intended to be seen by the user---i.e., private members---start with ``.''.} \item{Violate these rules whenever necessary to maintain compatibility.} \ei \section{Example session} \label{oof-sec:ex-intro} In this section we will introduce the base functionalities of the framework by an example session. First of all we have to load the package \pkg{rrcov} which will cause all necessary packages to be loaded too. The framework includes many example data sets but here we will load only those which will be used throughout the following examples. For the rest of the paper it will be assumed that the package has been loaded already. <>= ## set the prompt to "R> " and the continuation to "+ " options(prompt="R> ", continue="+ ") @ <>= ## ## Load the 'rrcov' package and the first two data sets to be ## used throughout the examples ## library("rrcov") data("delivery") delivery.x <- delivery[,1:2] # take only the X part data("hbk") hbk.x <- hbk[,1:3] # take only the X part @ Most of the multivariate statistical methods are based on estimates of multivariate location and covariance, therefore these estimates play a central role in the framework. We will start with computing the robust \textit{minimum covariance determinant} estimate for the data set \code{delivery} from the package \pkg{robustbase}. The data set \citep[see][Table~23, p.~155]{rousseeuw-leroy} contains delivery time data in 25 observations with 3 variables. The aim is to explain the time required to service a vending machine \code{(Y)} by means of the number of products stocked \code{(X1)} and the distance walked by the route driver \code{(X2)}. For this example we will consider only the $\v{X}$ part of the data set. After computing its robust location and covariance matrix using the MCD method implemented in the function \code{CovMcd()} we can print the results by calling the default \code{show()} method on the returned object \code{mcd} as well as summary information by the \code{summary()} method. The standard output contains the robust estimates of location and covariance. The summary output contains additionally the eigenvalues of the covariance matrix and the robust distances of the data items (Mahalanobis type distances computed with the robust location and covariance instead of the sample ones). <>= ## ## Compute MCD estimates for the delivery data set ## - show() and summary() examples ## mcd <- CovMcd(delivery.x) mcd summary(mcd) @ <>= ## ## Example plot of the robust against classical ## distances for the delivery data set ## plot(mcd, which="dd") @ \begin{center} \begin{figure}[h!] \setkeys{Gin}{width=0.8\textwidth} \includegraphics{ooframework-intro-plot} \caption{Example plot of the robust against classical distances for the \code{delivery} data set.} \label{oof-fig:intro} \end{figure} \end{center} Now we will show one of the available plots by calling the \code{plot()} method---in Figure~\ref{oof-fig:intro} the Distance-Distance plot introduced by \citet{Rousseeuw-van-Zomeren} is presented, which plots the robust distances versus the classical Mahalanobis distances and allows to classify the observations and identify the potential outliers. The description of this plot as well as examples of more graphical displays based on the covariance structure will be shown in Section~\ref{oof-sec:cov}. Apart from the demonstrated MCD method the framework provides many other robust estimators of multivariate location and covariance, actually almost all of the well established estimates in the contemporary robustness literature. The most fascinating feature of the framework is that one will get the output and the graphs in the same format, whatever estimation method was used. For example the following code lines will compute the S~estimates for the same data set and provide the standard and extended output (not shown here). <>= ## ## Compute the S-estimates for the delivery data set ## and provide the standard and extended output ## est <- CovSest(delivery.x, method="bisquare") est summary(est) @ Nevertheless, this variety of methods could pose a serious hurdle for the novice and could be quite tedious even for the experienced user. Therefore a shortcut is provided too---the function \code{CovRobust()} can be called with a parameter set specifying any of the available estimation methods, but if this parameter set is omitted the function will decide on the basis of the data size which method to use. As we see in the example below, in this case it selects the Stahel-Donoho estimates. For details and further examples see Section~\ref{oof-sec:cov}. <>= ## ## Automatically select the appropriate estimator according ## to the problem size - in this example the Stahel-Donoho estimates ## will be selected. ## est <- CovRobust(delivery.x) est @ \section{Robust multivariate methods} \label{oof-sec:multi} \subsection{Multivariate location and scatter} \label{oof-sec:cov} The framework provides an almost complete set of estimators for multivariate location and scatter with high breakdown point. The first such estimator was proposed by \citet{stahel:81, stahel-phd:81} and \citet{donoho:82} and it is recommended for small data sets, but the most widely used high breakdown estimator is the minimum covariance determinant estimate \citep{rousseeuw:85}. Several algorithms for computing the S~estimators \citep{davies:87} are provided \citep{ruppert:1992, rocke:94, rocke:96a, salibian:2005}. The minimum volume ellipsoid (MVE) estimator \citep{rousseeuw:85} is also included since it has some desirable properties when used as initial estimator for computing the S~estimates \citep[see][p. 198]{maronna:2006}. In the rest of this section the definitions of the different estimators of location and scatter will be briefly reviewed and the algorithms for their computation will be discussed. Further details can be found in the relevant references. The object model is presented and examples of its usage, as well as further examples of the graphical displays are given. \subsubsection{The Minimum covariance determinant estimator and its computation} \label{oof-sec:cov-mcd} The MCD estimator for a data set $\{\xv_1, \ldots, \xv_n\}$ in $\Re^p$ is defined by that subset $\{\xv_{i_1}, \ldots, \xv_{i_h}\}$ of $h$ observations whose covariance matrix has the smallest determinant among all possible subsets of size $h$. The MCD location and scatter estimate $\v{T}_{\MCD}$ and $\v{C}_{\MCD}$ are then given as the arithmetic mean and a multiple of the sample covariance matrix of that subset \begin{eqnarray} \label{oof-eq:mcd} \v{T}_{\MCD} &=& \frac{1}{h}\sum^{h}_{j=1} \xv_{i_j} \nonumber\\ \v{C}_{MCD} &=& c_{ccf}c_{sscf}\frac{1}{h-1}\sum^{h}_{j=1} (\xv_{i_j}-\v{T}_{\MCD})(\xv_{i_j}-\v{T}_{\MCD})^{\top}. \end{eqnarray} The multiplication factors $c_{ccf}$ (consistency correction factor) and $c_{sscf}$ (small sample correction factor) are selected so that $\v{C}$ is consistent at the multivariate normal model and unbiased at small samples \citep[see][]{butler:1993, croux-haesbroeck:99, pison:2002, todorov-cf}. A recommendable choice for $h$ is $\lfloor(n+p+1)/2\rfloor$ because then the BP of the MCD is maximized, but any integer $h$ within the interval $[(n + p + 1)/2,n]$ can be chosen, see \citet{rousseeuw-leroy}. Here $\lfloor z\rfloor$ denotes the integer part of $z$ which is not less than $z$. If $h = n$ then the MCD location and scatter estimate $\v{T}_{\MCD}$ and $\v{C}_{\MCD}$ reduce to the sample mean and covariance matrix of the full data set. The computation of the MCD estimator is far from being trivial. The naive algorithm would proceed by exhaustively investigating all subsets of size $h$ out of $n$ to find the subset with the smallest determinant of its covariance matrix, but this will be feasible only for very small data sets. Initially MCD was neglected in favor of MVE because the simple resampling algorithm was more efficient for MVE. Meanwhile several heuristic search algorithms \citep[see][]{todorov:92, rocke:94, hawkins:94} and exact algorithms \citep[][]{agullo:96} were proposed but now a very fast algorithm due to \citet{rousseeuw-vandriessen} exists and this algorithm is usually used in practice. The algorithm is based on the C-step which moves from one approximation $(\v{T}_1, \v{C}_1)$ of the MCD estimate of a data set $\v{X}=\{\xv_1, \ldots, \xv_n\}$ to the next one $(\v{T}_2, \v{C}_2)$ with possibly lower determinant $\det(\v{C}_2) \le \det(\v{C}_1)$ by computing the distances $d_1, \ldots, d_n$ relative to $(\v{T}_1, \v{C}_1)$, i.e., \begin{equation} \label{oof-eq:mah} d_i=\sqrt{(\xv_i-\v{T}_1)^{\top}\v{C}_1^{-1}(\xv_i-\v{T}_1)} \end{equation} and then computing $(\v{T}_2, \v{C}_2)$ for those $h$ observations which have smallest distances. ``C'' in C-step stands for ``concentration'' since we are looking for a more ``concentrated'' covariance matrix with lower determinant. \citet{rousseeuw-vandriessen} have proven a theorem stating that the iteration process given by the C-step converges in a finite number of steps to a (local) minimum. Since there is no guarantee that the global minimum of the MCD objective function will be reached, the iteration must be started many times from different initial subsets, to obtain an approximate solution. The procedure is very fast for small data sets but to make it really ``fast'' also for large data sets several computational improvements are used. \bi \item{\textit{initial subsets}: It is possible to restart the iterations from randomly generated subsets of size $h$, but in order to increase the probability of drawing subsets without outliers, $p+1$ points are selected randomly. These $p+1$ points are used to compute ($\v{T}_0,\v{C}_0)$. Then the distances $d_1,\ldots, d_n$ are computed and sorted in increasing order. Finally the first $h$ are selected to form the initial $h-$subset $H_0$.} \item{\textit{reduced number of C-steps}: The C-step involving the computation of the covariance matrix, its determinant and the relative distances, is the most computationally intensive part of the algorithm. Therefore instead of iterating to convergence for each initial subset only two C-steps are performed and the 10 subsets with lowest determinant are kept. Only these subsets are iterated to convergence. } \item{\textit{partitioning}: For large $n$ the computation time of the algorithm increases mainly because all $n$ distances given by Equation~(\ref{oof-eq:mah}) have to be computed at each iteration. An improvement is to partition the data set into a maximum of say five subsets of approximately equal size (but not larger than say 300) and iterate in each subset separately. The ten best solutions for each data set are kept and finally only those are iterated on the complete data set. } \item{\textit{nesting}: Further decrease of the computational time can be achieved for data sets with $n$ larger than say 1500 by drawing 1500 observations without replacement and performing the computations (including the partitioning) on this subset. Only the final iterations are carried out on the complete data set. The number of these iterations depends on the actual size of the data set at hand.} \ei The MCD estimator is not very efficient at normal models, especially if $h$ is selected so that maximal BP is achieved. To overcome the low efficiency of the MCD estimator, a reweighed version can be used. For this purpose a weight $w_i$ is assigned to each observation $\xv_i$, defined as $w_i=1$ if $(\xv_i-\v{T}_{\MCD})^{\top}\v{C}_{\MCD}^{-1}(\xv_i-\v{T}_{\MCD}) \le \chi^2_{p,0.975}$ and $w_i=0$ otherwise, relative to the raw MCD estimates $(\v{T}_{\MCD}, \v{C}_{\MCD})$. Then the reweighted estimates are computed as \begin{eqnarray} \label{oof-eq:mcd-rew} \v{T}_R &=& \frac{1}{\nu}\sum^{n}_{i=1}{w_i\xv_i},\nonumber\\ \v{C}_R &=& c_{r.ccf}c_{r.sscf}\frac{1}{\nu-1}\sum^n_{i=1}{w_i(\xv_i-\v{T}_R)(\xv_i-\v{T}_R)^{\top}}, \end{eqnarray} where $\nu$ is the sum of the weights, $\nu =\sum^n_{i=1}{w_i}$. Again, the multiplication factors $c_{r.ccf}$ and $c_{r.sscf}$ are selected so that $\v{C}_R$ is consistent at the multivariate normal model and unbiased at small samples \citep[see][and the references therein]{pison:2002, todorov-cf}. These reweighted estimates $(\v{T}_R,\v{C}_R)$ which have the same breakdown point as the initial (raw) estimates but better statistical efficiency are computed and used by default. \subsubsection{The Minimum volume ellipsoid estimates} \label{oof-sec:cov-mve} The minimum volume ellipsoid estimator searches for the ellipsoid of minimal volume containing at least half of the points in the data set $\v{X}$. Then the location estimate is defined as the center of this ellipsoid and the covariance estimate is provided by its shape. Formally the estimate is defined as these $\v{T}_{\MVE},\v{C}_{\MVE}$ that minimize $\det(\v{C})$ subject to \begin{equation} \label{oof-eq:mve} \#\{i:(\xv_i - \v{T})^{\top}\v{C}^{-1}(\xv_i - \v{T}) \le c^2\} \ge \left \lfloor \frac{n+p+1}{2} \right \rfloor, \end{equation} where \# denotes the cardinality. The constant $c$ is chosen as $\chi^2_{p,0.5}$. The search for the approximate solution is made over ellipsoids determined by the covariance matrix of $p+1$ of the data points and by applying a simple but effective improvement of the sub-sampling procedure as described in \citet{maronna:2006}, p. 198. Although there exists no formal proof of this improvement (as for MCD and LTS), simulations show that it can be recommended as an approximation of the MVE. The MVE was the first popular high breakdown point estimator of location and scatter but later it was replaced by the MCD, mainly because of the availability of an efficient algorithm for its computation \citep{rousseeuw-vandriessen}. Recently the MVE gained importance as initial estimator for S~estimation because of its small maximum bias \citep[see][Table~6.2, p.~196]{maronna:2006}. \subsubsection{The Stahel-Donoho estimator} \label{oof-sec:cov-sde} The first multivariate equivariant estimator of location and scatter with high breakdown point was proposed by \citet{stahel:81, stahel-phd:81} and \citet{donoho:82} but became better known after the analysis of \citet{maronna:95}. For a data set $\v{X}=\{\xv_1,\ldots,\xv_n\}$ in $\Re^p$ it is defined as a weighted mean and covariance matrix of the form given by Equation~(\ref{oof-eq:mcd-rew}) where the weight $w_i$ of each observation is inverse proportional to the ``outlyingness'' of the observation. Let the univariate outlyingness of a point $\xv_i$ with respect to the data set $\v{X}$ along a vector $\v{a} \in \Re^p, ||\v{a}|| \ne \v{0}$ be given by \begin{equation} \label{oof-eq:sde1} r(\xv_i,\v{a}) = \frac{|\xv^{\top}\v{a}-m(\v{a}^{\top}\v{X})|}{s(\v{a}^{\top}\v{X})}~~~i=1,\ldots,n \end{equation} where $(\v{a}^{\top}\v{X})$ is the projection of the data set $\v{X}$ on $\v{a}$ and the functions $m()$ and $s()$ are robust univariate location and scale statistics, for example the median and MAD, respectively. Then the multivariate outlyingness of $\xv_i$ is defined by \begin{equation} \label{oof-eq:sde2} r_i=r(\xv_i) = \max_{\v{a}} r(\xv_i,\v{a}). \end{equation} The weights are computed by $w_i=w(r_i)$ where $w(r)$ is a nonincreasing function of $r$ and $w(r)$ and $w(r)r^2$ are bounded. \citet{maronna:95} use the weights \begin{equation} \label{oof-eq:sde-weight} w(r)=\min \left ( 1,\left (\frac{c}{t} \right )^2 \right ) \end{equation} with $c=\sqrt{\chi^2_{p,\beta}}$ and $\beta=0.95$, that are known in the literature as ``Huber weights''. Exact computation of the estimator is not possible and an approximate solution is found by subsampling a large number of directions $\v{a}$ and computing the outlyingness measures $r_i, i=1,\ldots,n$ for them. For each subsample of $p$ points the vector $\v{a}$ is taken as the norm 1 vector orthogonal to the hyperplane spanned by these points. It has been shown by simulations \citep{maronna:2006} that one step reweighting does not improve the estimator. \subsubsection{Orthogonalized Gnanadesikan/Kettenring} \label{oof-sec:cov-ogk} The MCD estimator and all other known affine equivariant high-breakdown point estimates are solutions to a highly non-convex optimization problem and as such pose a serious computational challenge. Much faster estimates with high breakdown point can be computed if one gives up the requirements of affine equivariance of the covariance matrix. Such an algorithm was proposed by \citet{maronna:2002} which is based on the very simple robust bivariate covariance estimator $s_{jk}$ proposed by \citet{Gnanadesikan-Kettenring:1972} and studied by \citet{devlin:81}. For a pair of random variables $Y_j$ and $Y_k$ and a standard deviation function $\sigma()$, $s_{jk}$ is defined as \begin{equation} \label{oof-eq:GK} s_{jk}=\frac{1}{4}\left(\sigma \left(\frac{Y_j}{\sigma(Y_j)}+\frac{Y_k}{\sigma(Y_k)}\right)^2 - \sigma \left(\frac{Y_j}{\sigma(Y_j)}-\frac{Y_k}{\sigma(Y_k)}\right)^2\right). \end{equation} If a robust function is chosen for $\sigma()$ then $s_{jk}$ is also robust and an estimate of the covariance matrix can be obtained by computing each of its elements $s_{jk}$ for each $j=1,\ldots,p$ and $k=1,\ldots,p$ using Equation~(\ref{oof-eq:GK}). This estimator does not necessarily produce a positive definite matrix (although symmetric) and it is not affine equivariant. \citet{maronna:2002} overcome the lack of positive definiteness by the following steps: \bi \item{Define $\yv_i=\vv{D}^{-1}\xv_i, i=1,\ldots,n$ with $\v{D}=\diag(\sigma(X_1),\ldots,\sigma(X_p))$ where $X_l, l=1,\ldots,p$ are the columns of the data matrix $\vv{X}=\{\xv_1, \ldots, \xv_n\}$. Thus a normalized data matrix $\vv{Y}=\{\yv_1, \ldots, \yv_n\}$ is computed.} \item{Compute the matrix $\vv{U}=(u_{jk})$ as $u_{jk}= s_{jk}=s(Y_j, Y_k)$ if $j \ne k$ or $u_{jk}= 1$ otherwise. Here $Y_l, l=1,\ldots,p$ are the columns of the transformed data matrix $\vv{Y}$ and $s(.,.)$ is a robust estimate of the covariance of two random variables like the one in Equation~(\ref{oof-eq:GK}).} \item{Obtain the ``principal component decomposition'' of $\vv{Y}$ by decomposing $\vv{U}=\vv{E}\vv{\Lambda}\vv{E}^{\top}$ where $\vv{\Lambda}$ is a diagonal matrix $\vv{\Lambda}=\diag(\lambda_1,\ldots,\lambda_p)$ with the eigenvalues $\lambda_j$ of $\vv{U}$ and $\vv{E}$ is a matrix with columns the eigenvalues $\vv{e}_j$ of $\vv{U}$.} \item{Define $\zv_i=\vv{E}^{\top}\yv_i=\vv{E}^{\top}\vv{D}^{-1}\xv_i$ and $\vv{A}=\vv{D}\vv{E}$. Then the estimator of $\vv{\Sigma}$ is $\vv{C}_{\OGK}=\vv{A}\vv{\Gamma}\vv{A}^{\top}$ where $\vv{\Gamma}=\diag(\sigma(Z_j)^2), j=1,\ldots,p$} and the location estimator is $\vv{T}_{\OGK}=\vv{A}\mv$ where $\mv=m(\zv_i) = (m(Z_1),\ldots,m(Z_p))$ is a robust mean function. \ei This can be iterated by computing $\vv{C}_{\OGK}$ and $\vv{T}_{\OGK}$ for $\vv{Z}=\{\zv_1, \ldots, \zv_n\}$ obtained in the last step of the procedure and then transforming back to the original coordinate system. Simulations \citep{maronna:2002} show that iterations beyond the second did not lead to improvement. Similarly as for the MCD estimator a one-step reweighting can be performed using Equations~(\ref{oof-eq:mcd-rew}) but the weights $w_i$ are based on the 0.9 quantile of the $\chi^2_p$ distribution (instead of 0.975) and the correction factors $c_r.ccf$ and $c_r.sscf$ are not used. In order to complete the algorithm we need a robust and efficient location function $m()$ and scale function $\sigma()$, and one proposal is given in \citet{maronna:2002}. Further, the robust estimate of covariance between two random vectors $s()$ given by Equation~(\ref{oof-eq:GK}) can be replaced by another one. In the framework two such functions are predefined but the user can provide as a parameter an own function. \subsubsection{S estimates} \label{oof-sec:cov-s} S~estimators of $\muv$ and $\v{\Sigma}$ were introduced by \citet{davies:87} and further studied by \citet{lopuhaa:1989} \citep[see also][p. 263]{rousseeuw-leroy}. For a data set of $p$-variate observations $\{\xv_1, \ldots, \xv_n\}$ an S~estimate $(\v{T},\v{C})$ is defined as the solution of $\sigma(d_1,\ldots,d_n)= \min$ where $d_i=(\xv-\v{T})^{\top}\v{C}^{-1}(\xv-\v{T})$ and $\det(\v{C})=1$. Here $\sigma=\sigma(\zv)$ is the M-scale estimate of a data set $\zv=\{z_1,\ldots,z_n\}$ defined as the solution of $\frac{1}{n}\Sigma\rho(z/\sigma)=\delta$ where $\rho$ is nondecreasing, $\rho(0)=0$ and $\rho(\infty)=1$ and $\delta \in(0,1)$. An equivalent definition is to find the vector $\v{T}$ and a positive definite symmetric matrix $\v{C}$ that minimize $\det(\v{C})$ subject to \begin{equation} \label{oof-eq:s-def} \frac{1}{n}\sum_{i=1}^{n}\rho(d_i)=b_0 \end{equation} with the above $d_i$ and $\rho$. As shown by \citet{lopuhaa:1989} S~estimators have a close connection to the M~estimators and the solution $(\v{T},\v{C})$ is also a solution to an equation defining an M~estimator as well as a weighted sample mean and covariance matrix: \begin{eqnarray} \label{oof-eq:s-iter} d_i^{j}&=&[(\xv_i-\v{T}^{(j-1)})^{\top}\v{(C}^{(j-1)})^{-1}(\xv-\v{T}^{(j-1)})]^{1/2} \nonumber\\ \v{T}^{(j)} &=& \frac{\Sigma w(d_i^{(j)})\xv_i}{\Sigma w(d_i^{(j)})} \nonumber\\ \v{C}^{(j)} &=& \frac{\Sigma w(d_i^{(j)})(\xv_i-\v{T}^{(j)})(\xv_i-\v{T}^{(j)})^{\top}}{\Sigma w(d_i^{(j)})} \end{eqnarray} The framework implements the S~estimates in the class \code{CovSest} and provides four different algorithms for their computation. \be \item{\emph{SURREAL}: This algorithm was proposed by \citet{ruppert:1992} as an analog to the algorithm proposed by the same author for computing S~estimators of regression.} \item{\emph{Bisquare S~estimation with HBDP start}: S~estimates with the biweight $\rho$ function can be obtained using the Equations~(\ref{oof-eq:s-iter}) by a reweighted sample covariance and reweighted sample mean algorithm as described in \citet{maronna:2006}. The preferred approach is to start the iteration from a bias-robust but possibly inefficient estimate which is computed by some form of sub-sampling. Since \citet{maronna:2006} have shown that the MVE has smallest maximum bias (Table~6.2, p.~196) it is recommended to use it as initial estimate.} \item{\emph{Rocke type S~estimates}: In \citet{rocke:96a} it is shown that S~estimators in high dimensions can be sensitive to outliers even if the breakdown point is set to 50\%. Therefore they propose a modified $\rho$ function called translated biweight (or t-biweight) and replace the standardization step given in Equation~(\ref{oof-eq:s-def}) with a standardization step consisting of equating the median of $\rho(d_i)$ with the median under normality. The estimator is shown to be more outlier resistant in high dimensions than the typical S~estimators. The specifics of the iteration are given in \citet{rocke:96}, see also \citet{maronna:2006}. As starting values for the iteration any of the available methods in the framework can be used. The recommended (and consequently the default) one is the MVE estimator computed by \code{CovMve()}.} \item{\emph{Fast~S~estimates}: \citet{salibian:2005} proposed a fast algorithm for regression S~estimates similar to the FAST-LTS algorithm of \citet{rousseeuw-vandriessen:LTS} and borrowing ideas from the SURREAL algorithm of \citet{ruppert:1992}. Similarly, the FAST-S algorithm for multivariate location and scatter is based on modifying each candidate to improve the S-optimality criterion thus reducing the number of the necessary sub-samples required to achieve desired high breakdown point with high probability.} \ee \subsubsection{Object model for robust location and scatter estimation} \label{oof-sec:cov-objmodel} The object model for the \proglang{S}4 classes and methods implementing the different multivariate location and scatter estimators follows the proposed class hierarchy given in Section~\ref{oof-sec:objmodel} and is presented in Figure~\ref{fig:uml-cov}. \begin{figure}[h!] \begin{center} \includegraphics[width=\textwidth]{CovModel} \caption{Object model for robust location and scatter estimation.} \label{fig:uml-cov} \end{center} \end{figure} The abstract class \code{Cov} serves as a base class for deriving all classes representing classical and robust location and scatter estimation methods. It defines the common slots and the corresponding accessor methods, provides implementation for the general methods like \code{show()}, \code{plot()} and \code{summary()}. The slots of \code{Cov} hold some input or default parameters as well as the results of the computations: the location, the covariance matrix and the distances. The \code{show()} method presents brief results of the computations and the \code{summary()} method returns an object of class \code{SummaryCov} which has its own \code{show()} method. As in the other sections of the framework these slots and methods are defined and documented only once in this base class and can be used by all derived classes. Whenever new data (slots) or functionality (methods) are necessary, they can be defined or redefined in the particular class. The classical location and scatter estimates are represented by the class \code{CovClassic} which inherits directly from \code{Cov} (and uses all slots and methods defined there). The function \code{CovClassic()} serves as a constructor (generating function) of the class. It can be called by providing a data frame or matrix. As already demonstrated in Section~\ref{oof-sec:ex-intro} the methods \code{show()} and \code{summary()} present the results of the computations. The \code{plot()} method draws different diagnostic plots which are shown in one of the next sections. The accessor functions like \code{getCenter()}, \code{getCov()}, etc. are used to access the corresponding slots. Another abstract class, \code{CovRobust} is derived from \code{Cov}, which serves as a base class for all robust location and scatter estimators. The classes representing robust estimators like \code{CovMcd}, \code{CovMve}, etc. are derived from \code{CovRobust} and provide implementation for the corresponding methods. Each of the constructor functions \code{CovMcd()}, \code{CovMve()},\code{CovOgk()}, \code{CovMest()} and \code{CovSest()} performs the necessary computations and returns an object of the class containing the results. Similarly as the \code{CovClassic()} function, these functions can be called either with a data frame or a numeric matrix. \subsubsection{Controlling the estimation options} \label{oof-sec:cov-control} Although the different robust estimators of multivariate location and scatter have some controlling options in common, like the tracing flag \code{trace} or the numeric tolerance \code{tolSolve} to be used for inversion (\code{solve}) of the covariance matrix in \code{mahalanobis()}, each of them has more specific options. For example, the MCD and MVE estimators (\code{CovMcd()} and \code{CovMve()}) can specify \code{alpha} which controls the size of the subsets over which the determinant (the volume of the ellipsoid) is minimized. The allowed values are between 0.5 and 1 and the default is 0.5. Similarly, these estimators have parameters \code{nsamp} for the number of subsets used for initial estimates and \code{seed} for the initial seed for \proglang{R}'s random number generator while the M and S~estimators (\code{CovMest} and \code{CovSest}) have to specify the required breakdown point (allowed values between $(n - p)/(2*n)$ and 1 with default 0.5) as well as the asymptotic rejection point, i.e., the fraction of points receiving zero weight \citep{rocke:96}. These parameters can be passed directly to the corresponding constructor function but additionally there exists the possibility to use a control object serving as a container for the parameters. The object model for the control objects shown in Figure~\ref{oof-fig:cov-control} follows the proposed class hierarchy---there is a base class \code{CovControl} which holds the common parameters and from this class all control classes holding the specific parameters of their estimators are derived. These classes have only a constructor function for creating new objects and a method \code{restimate()} which takes a data frame or a matrix, calls the corresponding estimator to perform the calculations and returns the created class with the results. \begin{figure}[h!] \begin{center} \includegraphics[width=\textwidth]{CovControl} \caption{Object model of the control classes for robust location and scatter estimation.} \label{oof-fig:cov-control} \end{center} \end{figure} Apart from providing a structured container for the estimation parameters this class hierarchy has the following additional benefits: \bi \item{the parameters can be passed easily to another multivariate method, for example the principal components analysis based on a covariance matrix \code{PcaCov()} (see Section~\ref{oof-sec:pca}) can take a control object which will be used to estimate the desired covariance (or correlation) matrix. In the following example a control object holding the parameters for S~estimation will be created and then \code{PcaCov()} will be called with this object.} <>= set.seed(1234) @ <>= ## ## Controlling the estimation options with a control object ## control <- CovControlSest(method="biweight") PcaCov(hbk.x, cov.control=control) @ \item{the class hierarchy of the control objects allows to handle different estimator objects using a uniform interface thus leveraging one of the most important features of the object oriented programming, the polymorphism. In the following example we create a list containing different control objects and then via \code{sapply} we call the generic function \code{restimate()} on each of the objects in the list. The outcome will be a list containing the objects resulting from these calls (all are derived from \code{CovRobust}). This looping over the different estimation methods is very useful for implementing simulation studies.} <>= ## ## Controlling the estimation options: example ## of looping through several estimators ## cc <- list(CovControlMcd(), CovControlMest(), CovControlOgk(), CovControlSest(), CovControlSest(method="rocke")) clist <- sapply(cc, restimate, x=delivery.x) sapply(clist, data.class) sapply(clist, getMeth) @ \ei \subsubsection[A generalized function for robust location and covariance estimation: CovRobust()]{A generalized function for robust location and covariance estimation: \code{CovRobust()}} \label{oof-sec:cov-covrobust} The provided variety of estimation methods, each of them with different parameters as well as the object models described in the previous sections can be overwhelming for the user, especially for the novice who does not care much about the technical implementation of the framework. Therefore a function is provided which gives a quick access to the robust estimates of location and covariance matrix. This function is loosely modeled around the \textit{abstract factory design pattern} \citep[see][page 87]{gamma} in the sense that it creates concrete objects of derived classes and returns the result over a base class interface. The class \code{CovRobust} is abstract (defined as \textit{VIRTUAL}) and no objects of it can be created but any of the classes derived from \code{CovRobust}, such as \code{CovMcd} or \code{CovOgk}, can act as an object of class \code{CovRobust}. The function \code{CovRobust()} which is technically not a constructor function can return an object of any of the classes derived from \code{CovRobust} according to the user request. This request can be specified in one of three forms: \bi \item{If only a data frame or matrix is provided and the control parameter is omitted, the function decides which estimate to apply according to the size of the problem at hand. If there are less than 1000 observations and less than 10 variables or less than 5000 observations and less than 5 variables, Stahel-Donoho estimator will be used. Otherwise, if there are less than 50000 observations, either bisquare S~estimates (in case of less than 10 variables) or Rocke type S~estimates (for 10 to 20 variables) will be used. In both cases the S iteration starts at the initial MVE estimate. And finally, if there are more than 50000 observations and/or more than 20 variables the Orthogonalized Quadrant Correlation estimator (\code{CovOgk} with the corresponding parameters) is used. This is illustrated by the following example.} <>= ## ## Automatically select the appropriate estimator according ## to the problem size. ## getMeth(CovRobust(matrix(rnorm(40), ncol=2))) # 20x2 - SDE getMeth(CovRobust(matrix(rnorm(16000), ncol=8))) # 2000x8 - bisquare S getMeth(CovRobust(matrix(rnorm(20000), ncol=10))) # 2000x10 - Rocke S getMeth(CovRobust(matrix(rnorm(200000), ncol=2))) # 100000x2 - OGK @ \item{The simplest way to choose an estimator is to provide a character string with the name of the estimator---one of \code{"mcd"}, \code{"ogk"}, \code{"m"}, \code{"s-fast"}, \code{"s-rocke"}, etc.} <>= ## ## Rocke-type S-estimates ## getMeth(CovRobust(matrix(rnorm(40), ncol=2), control="rocke")) @ \item{If it is necessary to specify also some estimation parameters, the user can create a control object (derived from \code{CovControl}) and pass it to the function together with the data. For example to compute the OGK estimator using the median absolute deviation (MAD) as a scale estimate and the quadrant correlation (QC) as a pairwise correlation estimate we create a control object \code{ctrl} passing the parameters \code{s_mad} and \code{s_qc} to the constructor function and then call \code{CovRobust} with this object. The last command line illustrates the accessor method for getting the correlation matrix of the estimate as well as a nice formatting method for covariance matrices.} <>= ## ## Specify some estimation parameters through a control object. ## The last command line illustrates the accessor method ## for getting the correlation matrix of the estimate ## as well as a nice formatting method for covariance ## matrices. ## data("toxicity") ctrl <- CovControlOgk(smrob = "s_mad", svrob = "qc") est <- CovRobust(toxicity, ctrl) round(getCenter(est),2) as.dist(round(getCorr(est), 2)) @ \ei \subsubsection{Visualization of the results} \label{oof-sec:cov-vis} The default plot accessed through the method \code{plot()} of class \code{CovRobust} is the Distance-Distance plot introduced by \citet{Rousseeuw-van-Zomeren}. An example of this graph, which plots the robust distances versus the classical Mahalanobis distances is shown in Figure~\ref{oof-fig:intro}. The dashed line represents the points for which the robust and classical distances are equal. The horizontal and vertical lines are drawn at values $x=y=\sqrt{\chi_{p,0.975}^2}$. Points beyond these lines can be considered as outliers and are identified by their labels. The other available plots are accessible either interactively or through the \code{which} parameter of the \code{plot()} method. The left panel of Figure~\ref{oof-fig:cov-lattice} shows an example of the distance plot in which robust and classical Mahalanobis distances are shown in parallel panels. The outliers have large robust distances and are identified by their labels. The right panel of Figure~\ref{oof-fig:cov-lattice} shows a Quantile-Quantile comparison plot of the robust and the classical Mahalanobis distances versus the square root of the quantiles of the chi-squared distribution. <>= ## ## Distance plot and Chi-square Q-Q plot of the robust and classical distances ## Lattice plots (currently not available in rrcov) ## library("lattice") library("grid") library("rrcov") data("delivery") X <- delivery[,1:2] myPanel.dd <- function(x, y, subscripts, cutoff, ...) { panel.xyplot(x, y, ...) panel.abline(h=cutoff,lty="dashed") n <- length(y) id.n <- length(which(y>cutoff)) if(id.n > 0){ ind <- sort(y, index.return=TRUE)$ix ind <- ind[(n-id.n+1):n] xrange<-range(y) adj <- (xrange[2]-xrange[1])/20 ltext(x[ind] + adj, y[ind] + adj, ind, cex=1.0) } } myPanel.qchi <- function(x, y, subscripts, cutoff, ...) { y <- sort(y, index.return=TRUE) iy <- y$ix y <- y$x panel.xyplot(x, y, ...) panel.abline(0,1,lty="dashed") n <- length(y) id.n <- length(which(y>cutoff)) if(id.n > 0){ ind <- (n-id.n+1):n xrange<-range(y) adj <- (xrange[2]-xrange[1])/50 ltext(x[ind] + adj, y[ind] + adj, iy[ind], cex=1.0) } } n<-nrow(X) p <- ncol(X) cutoff <- sqrt(qchisq(0.975, p)) mm <- covMcd(X) dd1 <- sqrt(mm$mah) # robust distances vv<-cov.wt(X) dd2 <- sqrt(mahalanobis(X,vv$center,vv$cov)) # classical distances dd<-c(dd1,dd2) # both robust and classical distances gr <- as.factor(c(rep(1,n), rep(2,n))) levels(gr)[1] <- "Robust" levels(gr)[2] <- "Classical" qq <- sqrt(qchisq(((1:n)-1/3)/(n+1/3), p)) ind.dd <- c(1:n, 1:n) ind.qchi <- c(qq, qq) dplot <- xyplot(dd~ind.dd|gr, cutoff=cutoff, panel = myPanel.dd, xlab="Index", ylab="Mahalanobis distance", main="Distance Plot", col = "darkred", scales=list(cex=1.0)) qplot <- xyplot(dd~ind.qchi|gr, cutoff=cutoff, panel = myPanel.qchi, xlab="Quantiles of the chi-squared distribution", ylab="Mahalanobis distance", main="Chi-Square QQ-Plot", col = "darkred", scales=list(cex=1.0)) plot(dplot, split = c(1, 1, 2, 1), more = TRUE) plot(qplot, split = c(2, 1, 2, 1), more = FALSE) @ \begin{center} \begin{figure}[h!] \setkeys{Gin}{width=1.0\textwidth} \includegraphics{ooframework-ex-cov-plot-lattice} \caption{Distance plot and Chi-square Q-Q plot of the robust and classical distances.} \label{oof-fig:cov-lattice} \end{figure} \end{center} The next plot shown in Figure~\ref{oof-fig:cov-ellipse} presents a scatter plot of the data on which the 97.5\% robust and classical confidence ellipses are superimposed. Currently this plot is available only for bivariate data. The observations with distances larger than $\sqrt{\chi_{p,0.975}^2}$ are identified by their subscript. In the right panel of Figure~\ref{oof-fig:cov-ellipse} a \code{screeplot} of the \code{milk} data set is shown, presenting the robust and classical eigenvalues. <>= ## ## a) scatter plot of the data with robust and classical confidence ellipses. ## b) screeplot presenting the robust and classical eigenvalues ## data("milk") usr<-par(mfrow=c(1,2)) plot(CovMcd(delivery[,1:2]), which="tolEllipsePlot", classic=TRUE) plot(CovMcd(milk), which="screeplot", classic=TRUE) par(usr) @ \begin{center} \begin{figure}[h!] \setkeys{Gin}{width=1.0\textwidth} \includegraphics{ooframework-ex-cov-plot-ellipse} \caption{Robust and classical tolerance ellipse for the \code{delivery} data and robust and classical screeplot for the \code{milk} data.} \label{oof-fig:cov-ellipse} \end{figure} \end{center} \subsection{Principal component analysis} \label{oof-sec:pca} Principal component analysis is a widely used technique for dimension reduction achieved by finding a smaller number $q$ of linear combinations of the originally observed $p$ variables and retaining most of the variability of the data. Thus PCA is usually aiming at a graphical representation of the data in a lower dimensional space. The classical approach to PCA measures the variability through the empirical variance and is essentially based on computation of eigenvalues and eigenvectors of the sample covariance or correlation matrix. Therefore the results may be extremely sensitive to the presence of even a few atypical observations in the data. These discrepancies will carry over to any subsequent analysis and to any graphical display related to the principal components such as the biplot. %%% Example - hbk data The following example in Figure~\ref{oof-fig:pca-hbk} illustrates the effect of outliers on the classical PCA. The data set \code{hbk} from the package \pkg{robustbase} consists of 75 observations in 4 dimensions (one response and three explanatory variables) and was constructed by Hawkins, Bradu and Kass in 1984 for illustrating some of the merits of a robust technique \citep[see][]{rousseeuw-leroy}. The first 10 observations are bad leverage points, and the next four points are good leverage points (i.e., their $\xv$ are outlying, but the corresponding $y$ fit the model quite well). We will consider only the X-part of the data. The left panel shows the plot of the scores on the first two classical principal components (the first two components account for more than 98\% of the total variation). The outliers are identified as separate groups, but the regular points are far from the origin (where the mean of the scores should be located). Furthermore, the ten bad leverage points 1--10 lie within the 97.5\% tolerance ellipse and influence the classical estimates of location and scatter. The right panel shows the same plot based on robust estimates. We see that the estimate of the center is not shifted by the outliers and these outliers are clearly separated by the 97.5\% tolerance ellipse. \begin{center} \begin{figure}[h!] \setkeys{Gin}{width=1.0\textwidth} <>= ## ## Principal Component Analysis example: ## Plot of the first two principal components of the ## Hawkins, Bradu and Kass data set: classical and robust ## par(mfrow=c(1,2)) pca <- PcaClassic(hbk.x, k=2) cpca <- list(center=c(0,0), cov=diag(pca@eigenvalues), n.obs=pca@n.obs) rrcov:::.myellipse(pca@scores, xcov=cpca, main="Classical", xlab="PC1", ylab="PC2", ylim=c(-30,30), id.n=0) abline(v=0) abline(h=0) text(-29,6,labels="1-10", cex=0.8) text(-37,-13,labels="14", cex=0.8) text(-31,-5,labels="11-13", cex=0.8) hub <- PcaHubert(hbk.x, k=2, mcd=TRUE) chub <- list(center=c(0,0), cov=diag(hub@eigenvalues), n.obs=hub@n.obs) rrcov:::.myellipse(hub@scores, xcov=chub, main="Robust (MCD)", xlab="PC1", ylab="PC2", xlim=c(-10,45), ylim=c(-25,15), id.n=0) abline(v=0) abline(h=0) text(30,-9,labels="1-10", cex=0.8) text(36,-11,labels="11", cex=0.8) text(42,-4,labels="12", cex=0.8) text(41,-11,labels="13", cex=0.8) text(44,-15,labels="14", cex=0.8) @ \caption{Plot of the first two principal components of the Hawkins, Bradu and Kass data set: classical and robust.} \label{oof-fig:pca-hbk} \end{figure} \end{center} PCA was probably the first multivariate technique subjected to robustification, either by simply computing the eigenvalues and eigenvectors of a robust estimate of the covariance matrix or directly by estimating each principal component in a robust manner. Different approaches to robust PCA are briefly presented in the next subsections with the emphasis on those methods which are available in the framework. Details about the methods and algorithms can be found in the corresponding references. The object model is described and examples are given. \subsubsection{PCA based on robust covariance matrix (MCD, OGK, MVE, etc.)} The most straightforward and intuitive method to obtain robust PCA is to replace the classical estimates of location and covariance by their robust analogues. In the earlier works M~estimators of location and scatter were used for this purpose \citep[see][]{devlin:81, campbell:80} but these estimators have the disadvantage of low breakdown point in high dimensions. To cope with this problem \citet{naga:1990} used the MVE estimator and \citet{todorov-compstat:94} used the MCD estimator. \citet{croux-Haesbroeck:2000} investigated the properties of the MCD estimator and computed its influence function and efficiency. The package \pkg{stats} in base \proglang{R} contains the function \code{princomp()} which performs a principal components analysis on a given numeric data matrix and returns the results as an object of \proglang{S}3 class \code{princomp}. This function has a parameter \code{covmat} which can take a covariance matrix, or a covariance list as returned by \code{cov.wt}, and if supplied, it is used rather than the covariance matrix of the input data. This allows to obtain robust principal components by supplying the covariance matrix computed by \code{cov.mve} or \code{cov.mcd} from the package \pkg{MASS}. One could ask why is it then necessary to include such type of function in the framework (since it already exists in the base package). The essential value added of the framework, apart from implementing many new robust multivariate methods is the unification of the interfaces by leveraging the object orientation provided by the \proglang{S}4 classes and methods. The function \code{PcaCov()} computes robust PCA by replacing the classical covariance matrix with one of the robust covariance estimators available in the framework---MCD, OGK, MVE, M, S or Stahel-Donoho, i.e., the parameter \code{cov.control} can be any object of a class derived from the base class \code{CovControl}. This control class will be used to compute a robust estimate of the covariance matrix. If this parameter is omitted, MCD will be used by default. Of course any newly developed estimator following the concepts of the framework can be used as input to the function \code{PcaCov()}. \subsubsection{Projection pursuit methods} The second approach to robust PCA uses \textit{projection pursuit} (PP) and calculates directly the robust estimates of the eigenvalues and eigenvectors. Directions are seeked for, which maximize the variance (classical PCA) of the data projected onto them. Replacing the variance with a robust measure of spread yields robust PCA. Such a method was first introduced by \citet{li:1985} using an M~estimator of scale $S_n$ as a \textit{projection index (PI)}. They showed that the PCA estimates inherit the robustness properties of the scale estimator $S_n$. Unfortunately, in spite of the good statistical properties of the method, the algorithm they proposed was too complicated to be used in practice. A more tractable algorithm in these lines was first proposed by \citet{croux-Ruiz-Gazen:1996} and later improved by \citet{croux-Ruiz-Gazen:2005}. To improve the performance of the algorithm for high dimensional data a new improved version was proposed by \citet{croux-filzmoser-oliveira-pppca}. The latter two algorithms are available in the package \pkg{pcaPP} \citep[see][]{filzmoser-pcaPP} as functions \code{PCAproj()} and \code{PCAgrid()}. In the framework these methods are represented by the classes \code{PcaProj} and \code{PcaGrid}. Their generating functions provide simple wrappers around the original functions from \pkg{pcaPP} and return objects of the corresponding class, derived from \code{PcaRobust}. A major advantage of the PP-approach is that it searches for the eigenvectors consecutively and in case of high dimensional data when we are interested in only the first one or two principal components this results in reduced computational time. Even more, the PP-estimates cope with the main drawback of the covariance-based estimates---they can be computed for data matrices with more variables than observations. \subsubsection{Hubert method (ROBPCA)} The PCA method proposed by \citet{hubert-ROBPCA:2005} tries to combine the advantages of both approaches---the PCA based on a robust covariance matrix and PCA based on projection pursuit. A brief description of the algorithm follows, for details see the relevant references \citep{hubert:2008}. Let $n$ denote the number of observations, and $p$ the number of original variables in the input data matrix $\v{X}$. The ROBPCA algorithm finds a robust center $\mv$ of the data and a loading matrix $\v{P}$ of dimension $p \times k$. Its columns are orthogonal and define a new coordinate system. The scores $\v{T}$, an $n \times k$ matrix, are the coordinates of the centered observations with respect to the loadings: \begin{equation} \label{oof-eq:pca-scores} \v{T}=(\v{X}-\v{1}\mv^{\top})\v{P} \end{equation} where $\v{1}$ is a column vector with all $n$ components equal to 1. The ROBPCA algorithm yields also a robust covariance matrix (often singular) which can be computed as \begin{equation} \label{oof-eq:pca-S} \v{S}=\v{PLP}^{\top} \end{equation} where $\v{L}$ is the diagonal matrix with the eigenvalues $l_1, \dots, l_k$. This is done in the following three main steps: \paragraph{Step 1:} The data are preprocessed by reducing their data space to the subspace spanned by the $n$ observations. This is done by singular value decomposition of the input data matrix. As a result the data are represented in a space whose dimension is $rank(\v{X})$, being at most $n-1$ without loss of information. \paragraph{Step 2:} In this step a measure of outlyingness is computed for each data point. For this purpose the data points are projected on the $n(n-1)/2$ univariate directions through each two points. If $n$ is too large, \code{maxdir} directions are chosen at random (\code{maxdir} defaults to 250 but can be changed by the user). On every direction the univariate MCD estimator of location and scale is computed and the standardized distance to the center is measured. The largest of these distances (over all considered directions) is the outlyingness measure of the data point. The $h$ data points with smallest outlyingness measure are used to compute the covariance matrix $\v{\Sigma}_h$ and to select the number $k$ of principal components to retain. This is done by finding $k$ such that $l_k/l_1 \ge 10^{-3}$ and $\Sigma_{j=1}^k l_j/\Sigma_{j=1}^r l_j \ge 0.8$. Alternatively the number of principal components $k$ can be specified by the user after inspecting the scree plot. \paragraph{Step 3:} The data points are projected on the $k$-dimensional subspace spanned by the $k$ eigenvectors corresponding to the largest $k$ eigenvalues of the matrix $\v{\Sigma}_h$. The location and scatter of the projected data are computed using the reweighted MCD estimator, and the eigenvectors of this scatter matrix yield the robust principal components. \subsubsection{Spherical principal components (SPC)} The spherical principal components procedure was first proposed by \cite{locantore:1999} as a method for functional data analysis. The idea is to perform classical PCA on the data, projected onto a unit sphere. The estimates of the eigenvectors are consistent if the data are elliptically distributed \cite[see][]{boente-fraiman:1999} and the procedure is extremely fast. Although not much is known about the efficiency of this method, the simulations of \cite{maronna:2005} show that it has very good performance. If each coordinate of the data is normalized using some kind of robust scale, like for example the MAD, and then SPC is applied, we obtain ``elliptical PCA'', but unfortunately this procedure is not consistent. \subsubsection{Object model for robust PCA and examples} \label{oof-sec:pca-objmodel} The object model for the \proglang{S}4 classes and methods implementing the principal component analysis methods follows the proposed class hierarchy given in Section~\ref{oof-sec:objmodel} and is presented in Figure~\ref{fig:uml-pca}. \begin{figure}[h!] \begin{center} \includegraphics[width=\textwidth]{PcaModel} \caption{Object model for robust Principal Component Analysis.} \label{fig:uml-pca} \end{center} \end{figure} The abstract class \code{Pca} serves as a base class for deriving all classes representing classical and robust principal components analysis methods. It defines the common slots and the corresponding accessor methods, provides implementation for the general methods like \code{show()}, \code{plot()}, \code{summary()} and \code{predict()}. The slots of \code{Pca} hold some input or default parameters like the requested number of components as well as the results of the computations: the eigenvalues, the loadings and the scores. The \code{show()} method presents brief results of the computations, and the \code{predict()} method projects the original or new data to the space spanned by the principal components. It can be used either with new observations or with the scores (if no new data are provided). The \code{summary()} method returns an object of class \code{SummaryPca} which has its own \code{show()} method. As in the other sections of the framework these slots and methods are defined and documented only once in this base class and can be used by all derived classes. Whenever new information (slots) or functionality (methods) are necessary, they can be defined or redefined in the particular class. Classical principal component analysis is represented by the class \code{PcaClassic} which inherits directly from \code{Pca} (and uses all slots and methods defined there). The function \code{PcaClassic()} serves as a constructor (generating function) of the class. It can be called either by providing a data frame or matrix or a formula with no response variable, referring only to numeric variables. Let us consider the following simple example with the data set \code{hbk} from the package \pkg{robustbase}. The code line \begin{Scode} R> PcaClassic(hbk.x) \end{Scode} can be rewritten as (and is equivalent to) the following code line using the formula interface \begin{Scode} R> PcaClassic(~ ., data = hbk.x) \end{Scode} The function \code{PcaClassic()} performs the standard principal components analysis and returns an object of the class \code{PcaClassic}. <>= ## ## Classical PCA ## pca <- PcaClassic(~., data=hbk.x) pca summary(pca) plot(pca) getLoadings(pca) @ The \code{show()} method displays the standard deviations of the resulting principal components, the loadings and the original call. The \code{summary()} method presents the importance of the calculated components. The \code{plot()} draws a PCA diagnostic plot which is shown and described later. The accessor functions like \code{getLoadings()}, \code{getEigenvalues()}, etc. are used to access the corresponding slots, and \code{predict()} is used to rotate the original or new data to the space of the principle components. Another abstract class, \code{PcaRobust} is derived from \code{Pca}, which serves as a base class for all robust principal components methods. The classes representing robust PCA methods like \code{PcaHubert}, \code{PcaLocantore}, etc. are derived from \code{PcaRobust} and provide implementation for the corresponding methods. Each of the constructor functions \code{PcaCov()}, \code{PcaHubert()}, \code{PcaLocantore()}, \code{PcaGrid()} and \code{PcaProj()} performs the necessary computations and returns an object of the class containing the results. In the following example the same data are analyzed using the projection pursuit method \code{PcaGrid()}. <>= ## ## Robust PCA ## rpca <- PcaGrid(~., data=hbk.x) rpca summary(rpca) @ Similar to the function \code{PcaClassic()}, these functions can be called either with a data frame or matrix or by a formula interface. \subsubsection{Visualization of PCA results} \label{oof-sec:pca-vis} One of the most important applications of PCA, besides dimensionality reduction is data visualization. In the framework several plots for visualizing the results of the analysis are available. The \code{plot()} methods are implemented in the base class \code{Pca} and thus they are available for all objects derived from the class \code{Pca} no matter if classical and robust. The most straightforward plot is the \textit{screeplot} which plots the variances against the number of principal components (similar to the screeplot for the standard \code{prcomp()} and \code{princomp()} functions). It is a useful tool for determining the number of relevant principal components. An example of the classical and robust screeplot for the \code{milk} data from \pkg{robustbase} is shown in Figure~\ref{oof-fig:pca-screeplot}. <>= ## ## Screeplot for classical and robust PCA of the milk data set. ## usr <- par(mfrow=c(1,2)) screeplot(PcaClassic(milk), type="lines", main="Screeplot: classical PCA", sub="milk data") screeplot(PcaHubert(milk), type="lines", main="Screeplot: robust PCA", sub="milk data") par(usr) @ \begin{center} \begin{figure}[h!] \setkeys{Gin}{width=1.0\textwidth} \includegraphics{ooframework-ex-pca-plot-screeplot} \caption{Screeplot for classical and robust PCA of the \code{milk} data set.} \label{oof-fig:pca-screeplot} \end{figure} \end{center} Another plot borrowed from standard \proglang{R} is the \textit{biplot}. The biplot \citep{gabriel} represents both the observations and variables in the plane of (the first) two principal components allowing the visualization of the magnitude and sign of each variable's contribution to these principal components. Each observation (row of scores) is represented as a point in the biplot and each variable is represented as an arrow. The arrows graphically indicate the proportion of the original variance explained by the (first) two principal components and their direction indicates the relative loadings on these components. Figure~\ref{oof-fig:pca-biplot} shows an example of the robust biplot of the \code{un86} data set which contains seven socioeconomic variables observed for 73 countries. The data set is from World Statistics in Brief, Number 10, a 1986 UN publication. It was used in \citet{Daigle:1992} to illustrate a robust biplot method. <>= ## ## Robust biplot for the UN86 data ## data("un86") set.seed(9) usr<-par(mfrow=c(1,2)) biplot(PcaCov(un86, corr=TRUE, cov.control=NULL), main="Classical biplot", col=c("gray55", "red")) biplot(PcaCov(un86, corr=TRUE), main="Robust biplot", col=c("gray55", "red")) par(usr) @ \begin{center} \begin{figure}[h!] \setkeys{Gin}{width=1.0\textwidth} \includegraphics{ooframework-ex-pca-plot-biplot} \caption{Classical (left panel) and robust (right panel) biplot for the \code{UN86} data.} \label{oof-fig:pca-biplot} \end{figure} \end{center} %% diagnostic plot (outlier map) In the context of PCA \citet{hubert-ROBPCA:2005} defined a \textit{diagnostic plot} or \textit{outlier map} which helps to distinguish between the regular observations and the different types of outliers. This plot is based on the \textit{score distances} and \textit{orthogonal distances} computed for each observation. The score distances are given by \begin{equation} \label{oof-eq:pca-SD} SD_i=\sqrt{\sum_{j=1}^k{\frac{t_{ij}^2}{l_j}}},~~~~ i=1,\ldots,n \end{equation} where $t_{ij}$ are the elements of the scores from (\ref{oof-eq:pca-scores}) and $l_j$ are the eignevalues (the diagonal elements of the matrix $\v{L}$ in (\ref{oof-eq:pca-S})). The orthogonal distances $OD_i$ of each observation to the subspace spanned by the first $k$ ($1\le k \le r$, $r$ is the rank of the data) principal components are defined by \begin{equation} \label{oof-eq:pca-OD} OD_i=||\xv_i - \hat{\muv} - \v{P}^{(k)}\tv_i^{(k)}||,~~~~ i=1,\ldots,n \end{equation} where $\xv_i$ denotes the $i$th observation, $\hat{\muv}$ is the estimated center of the data, $\tv_i^{(k)}$ is the $i$th score vector in the space of the first $k$ principal components and the matrix $\v{P}^{(k)}$ contains the first $k$ estimated eigenvectors in its columns. The diagnostic plot is constructed by plotting the score distances on the horizontal axis, the orthogonal distances on the vertical axis and drawing two cutoff lines which will help to classify the observations. The cutoff value on the horizontal axis (for the score distances) is taken as the 97.5\% quantile of $\chi_k^2$ distribution, i.e., $c_h=\sqrt{\chi^2_{k,0.975}}$. For the cutoff value on the vertical axis (for the orthogonal distances) the Wilson-Hilferty transformation for a $\chi^2$ distribution is used (which assumes that the $OD_i$ to the power of 2/3 are approximately normally distributed). The parameters $\mu$ and $\sigma$ of the normal distribution can be estimated by the median and MAD of the values $OD_i^{2/3}$, and the critical value can be taken as $c_v=(\hat{\mu} + \hat{\sigma}z_{0.975})^{3/2}$ where $z_{0.975}$ is the the 97.5\% quantile of the standard normal distribution. An example of the classical and robust diagnostic plot for the \code{hbk} data set from \pkg{robustbase} is shown in Figure~\ref{oof-fig:pca-diagplot}. <>= ## ## An example of the classical and robust diagnostic ## plot for the hbk data set ## usr<-par(mfrow=c(1,2)) plot(PcaClassic(hbk.x, k=2), sub="data set: hbk, k=2") plot(PcaHubert(hbk.x, k=2), sub="data set: hbk, k=2") par(usr) @ \begin{center} \begin{figure}[h!] \setkeys{Gin}{width=1.0\textwidth} \includegraphics{ooframework-ex-pca-plot-diagplot} \caption{Classical and robust diagnostic plot for the \code{hbk} data with $k=2$.} \label{oof-fig:pca-diagplot} \end{figure} \end{center} If $k=p$ the orthogonal distances are not meaningful and the diagnostic plot shows a simple distance plot of the score distances (distances vs index). An example is shown in Figure~\ref{oof-fig:pca-distplot}. <>= ## ## If k=p the orthogonal distances are not meaningful and ## simple distance plot of the score distances will be shown ## usr<-par(mfrow=c(1,2)) plot(PcaClassic(hbk.x, k=3), sub="data set: hbk.x, k=3") plot(PcaHubert(hbk.x, k=3), sub="data set: hbk.x, k=3") par(usr) @ \begin{center} \begin{figure}[h!] \setkeys{Gin}{width=1.0\textwidth} \includegraphics{ooframework-ex-pca-plot-distplot} \caption{Classical and robust diagnostic plot for the x-part of the \code{hbk} data set with $k=3=p$.} \label{oof-fig:pca-distplot} \end{figure} \end{center} \subsection{Linear and quadratic discriminant analysis} \label{oof-sec:lda} The problem of discriminant analysis arises when one wants to assign an individual to one of $g$ populations at the basis of a $p$-dimensional feature vector $\xv$. Let the $p$-dimensional random variable $\xv_k$ come from a population $\pi_k$ with underlying density $\v{f}_k$. Further let the prior probability of group $k$, i.e., the probability that an individual comes from population $\pi_k$ be $\alpha_k$, $\Sigma_{k=1}^g \alpha_k = 1$. The prior probabilities $\alpha_k$ are usually estimated by the empirical frequencies $n_k$ in the $k$-th group of the training set, i.e., $\hat{\alpha}_k=n_k/\Sigma_{j=1}^gn_j$. Then the Bayesian discriminant rule assigns an observation $\xv$ to that population $\pi_k$ for which the expression $\ln(\alpha_k \v{f}_k(\xv))$ is maximal over all groups $k=1,\ldots,g$. Usually it is assumed that the $k$ populations $\pi_k$ are $p$-dimensional normally distributed, \begin{equation} \label{oof-eq:discrim-distr} \pi_k \sim N({\muv}_k,\v{\Sigma}_k)~~~~~k=1,\ldots,g. \end{equation} With this assumption the discriminant rule is equivalent to maximizing the discriminant scores $D_k(\xv)$ given by \begin{equation} \label{oof-eq:QDA} D_k(\xv) = -\frac{1}{2}\ln|\v{\Sigma}_k| - \frac{1}{2}(\xv-\muv_k)^{\top}\v{\Sigma}_k^{-1}(\xv-\muv_k) + \ln(\alpha_k)~~~~~(k=1,\ldots,g), \end{equation} and individual $\xv$ is assigned to $\pi_k$ if \begin{equation} \label{oof-eq:QDA-rule} D_k(\xv)=\arg\max_j D_j(\xv). \end{equation} The application of the discrimination rule given by Equations~(\ref{oof-eq:QDA}) and (\ref{oof-eq:QDA-rule}) is referred to as quadratic discriminant analysis (QDA), since the groups are separated by quadratic boundaries. If it is further assumed that all group covariance matrices are equal $(\v{\Sigma}_{1}= \ldots= \v{\Sigma}_g=\v{\Sigma})$, then the overall probability of misclassification is minimized by assigning a new observation $\xv$ to population $\pi_k$ which maximizes \begin{equation} \label{oof-eq:LDA} %%%%%%%%d_k(\xv)=\frac{1}{2}(\xv-\muv_k)^{\top}\v{\Sigma}^{-1}(\xv-\muv_k) + \ln(\alpha_k)~~~~~(k=1,\ldots,g). d_k(\xv)=\xv^{\top}\v{\Sigma}^{-1}\muv_k - \frac{1}{2}\muv_k^{\top}\v{\Sigma}^{-1}\muv_k + \ln(\alpha_k)~~~~~(k=1,\ldots,g). \end{equation} The application of the discriminant rule given by Equation~(\ref{oof-eq:LDA}) is referred to as linear discriminant analysis (LDA), since the scores $d_k(\xv)$ are linear in $\xv$. If the means $\muv_k, k=1,\ldots,g$, and the common covariance matrix $\v{\Sigma}$ are unknown, which is usually the case, a training set consisting of samples drawn from each of the populations is required. In classical QDA and LDA the sample group means and sample covariance matrices are used to estimate $\muv_k$, $\v{\Sigma}_k$ and $\v{\Sigma}$. The prior probabilities can be estimated by the relative frequencies of observations in each particular group. Both QDA and LDA using the classical estimates in (\ref{oof-eq:QDA}) and (\ref{oof-eq:LDA}) are vulnerable to the presence of outliers. The problem of the non-robustness of the classical estimates in the setting of the quadratic and linear discriminant analysis has been addressed by many authors: \citet*{todorov:90, todorov:94} replaced the classical estimates by MCD estimates; \citet*{chork} used MVE instead; \citet*{hawkins:97} defined the minimum within-group covariance determinant estimator (MWCD) especially for the case of linear discriminant analysis; \citet*{he:2000} and \citet*{croux-dehon:01} used S~estimates; \citet*{hubert:04} applied the MCD estimates computed by the FAST-MCD algorithm. For a recent review and comparison of these methods see \citet{todorov-roblda}. A robust version of quadratic discriminant analysis can be obtained by substituting the parameters $\muv_k$, $\v{\Sigma}_k$ by their robust estimates. For this purpose the reweighted MCD estimates, S~estimates or OGK can be used. In the case of linear discriminant analysis a robust version of the common covariance matrix $\v{\Sigma}$ is necessary. There are several methods for estimating the common covariance matrix based on a high breakdown point estimator which are considered in one of the next subsections. \subsubsection{Object model for robust LDA and QDA} The object model for the \proglang{S}4 classes and methods implementing the linear and quadratic discriminant analysis methods follows the proposed class hierarchy given in Section~\ref{oof-sec:objmodel} and is presented in Figure~\ref{fig:uml-lda-qda}. \begin{figure}[h!] \begin{center} \includegraphics[width=\textwidth]{DAModel} \caption{Object models for robust linear discriminant analysis and quadratic discriminant analysis.} \label{fig:uml-lda-qda} \end{center} \end{figure} The abstract classes \code{Lda} and \code{Qda} serve as base classes for deriving all classes representing classical and robust methods for linear and quadratic discriminant analysis methods. They define the common slots and the corresponding accessor methods, provide implementation for the general methods like \code{show()}, \code{plot()}, \code{summary()} and \code{predict()}. This base classes also host several utility functions which are not directly exported but are documented and can be used by quoting the namespace. The slots of \code{Lda} hold some input or default parameters like the prior probabilities, the original data matrix and the grouping variable as well as the results of the computations: the group means and the common covariance matrix, the linear discriminant functions and the corresponding constants. The \code{show()} method presents brief results of the computations, and \code{predict()} can be used either for classifying new observations or for the evaluation of the discriminant rules on the basis of the training sample. The method \code{predict()} returns an object of class \code{PredictLda} which has its own \code{show()} method to print the results of the classification or evaluation. The \code{summary()} method returns an object of class \code{SummaryLda} which has its own \code{show()} method. As in the other sections of the framework these slots and methods are defined and documented only once in this base class and can be used by all derived classes. Whenever new data (slots) or functionality (methods) are necessary, they can be defined or redefined in the particular class. Classical linear discriminant analysis is represented by the class \code{LdaClassic} which inherits directly from \code{Lda} (and uses all slots and methods defined there). The function \code{LdaClassic()} serves as a constructor (generating function) of the class. It can be called either by providing a data frame or matrix and a grouping variable (factor) or a formula specifying the model to be used. Let us consider the following simple example with the data set \code{diabetes}: the grouping variable is \code{diabetes$group} and the three explanatory variables are \code{glucose}, \code{insulin} and \code{sspg}. The code \begin{Scode} R> x <- diabetes[, c("glucose", "insulin", "sspg")] R> grpvar <- diabetes$group R> LdaClassic(x, grpvar) \end{Scode} can be rewritten as (and is equivalent to) the following code using the formula interface: \begin{Scode} R> LdaClassic(group ~ ., data = diabetes) \end{Scode} The function \code{LdaClassic()} performs standard linear discriminant analysis and returns an object of class \code{LdaClassic}. Another abstract class, \code{LdaRobust} is derived from \code{Lda}, which serves as a base class for all robust linear discriminant analysis methods. The only slot added in this class is a character variable specifying the robust method to be used. The class \code{Linda} is derived from \code{LdaRobust} and provides implementation for all methods for robust LDA currently available in the framework. If we wanted to be precisely object oriented, we should define a separate class for each robust method---for example \code{LdaRobustMcd}, \code{LdaRobustFsa}, etc. but this would lead to explosion of the necessary code and documentation. The constructor function \code{Linda()} takes a character parameter \code{method} specifying which robust location and scatter estimator to use and how to compute the common covariance matrix and returns an object of class \code{Linda}. Similarly as the function \code{LdaClassic()}, \code{Linda()} can be called either with a data matrix and grouping variable or by a formula interface. \subsubsection{Computing the common covariance matrix} \label{oof-sec:common-cov} The easiest way to estimate the common covariance matrix $\v{\Sigma}$ is to obtain the estimates of the group means $\muv_k$ and group covariance matrices $\v{\Sigma}_k$ from the individual groups as $(\mv_k,\v{C}_k), k=1,\ldots,g$, and then pool the estimates $\v{C}_k, k=1,\ldots,g$ to yield the common covariance matrix \begin{equation} \v{C} = {\sum_{k=1}^g{n_k\v{C}_k} \over \sum_{k=1}^g{n_k-g}}. \end{equation} This method, using MVE and MCD estimates, was proposed by \citet{todorov:90, todorov:94} and was also used, based on the MVE estimator by \citet*{chork}. \newline \citet*{croux-dehon:01} applied this procedure for robustifying linear discriminant analysis based on S~estimates. A drawback of this method is that the same trimming proportions are applied to all groups which could lead to a loss of efficiency if some groups are outlier free. We will denote this method as ``$A$'' and the corresponding estimator as XXX-A. For example, in the case of the MCD estimator this will be MCD-A. Another method was proposed by \citet*{he:2000} for the S~estimates and was later adapted by \citet*{hubert:04} for the MCD estimates. Instead of pooling the group covariance matrices, the observations are centered and pooled to obtain a single sample for which the covariance matrix is estimated. It starts by obtaining the individual group location estimates $\tv_k, k=1,\ldots,g$, as the reweighted MCD location estimates of each group. These group means are swept from the original observations $\xv_{ik}~(i=1,\ldots,n_k;~k=1,\ldots,g)$ to obtain the centered observations \begin{eqnarray} \v{Z} = \{\zv_{ik}\}, ~~~~~\zv_{ik} = \xv_{ik} - \tv_k. \end{eqnarray} The common covariance matrix $\v{C}$ is estimated as the reweighted MCD covariance matrix of the centered observations $\v{Z}$. The location estimate $\deltav$ of $\v{Z}$ is used to adjust the group means $\mv_k$ and thus the final group means are \begin{equation} \mv_k = {\tv_k + \deltav}. \end{equation} This process could be iterated until convergence, but since the improvements from such iterations are negligible \citep[see][]{ he:2000, hubert:04} we are not going to use it. This method will be denoted by ``$B$'' and as already mentioned, the corresponding estimator as XXX-B, for example MCD-B. The third approach is to modify the algorithm for high breakdown point estimation itself in order to accommodate the pooled sample. \citet*{he:2000} modified Ruperts's SURREAL algorithm for S~estimation in case of two groups. \citet*{hawkins:97} defined the minimum within-group covariance determinant estimator which does not apply the same trimming proportion to each group but minimizes directly the determinant of the common within groups covariance matrix by pairwise swaps of observations. Unfortunately their estimator is based on the Feasible Solution Algorithm \citep[see][and the references therein]{hawkins:97}, which is extremely time consuming as compared to the FAST-MCD algorithm. \citet*{hubert:04} proposed a modification of this algorithm taking advantage of the FAST-MCD, but it is still necessary to compute the MCD for each individual group. This method will be denoted by MCD-C. Using the estimates $\mv^0_k$ and $\v{C}_0$ obtained by one of the methods, we can calculate the initial robust distances \citep{Rousseeuw-van-Zomeren} \begin{equation} RD^0_{ik}= \sqrt{(\xv_{ik}-\mv^0_k)^{\top}\v{C}_0^{-1}(\xv_{ik}-\mv^0_k)}. \end{equation} With these initial robust distances we can define a weight for each observation $\xv_{ik}, ~ i=1, \ldots , n_k$ and $k=1, \ldots, g$, by setting the weight to $1$ if the corresponding robust distance is less or equal to a suitable cut-off, usually $\sqrt{\chi^2_{p,0.975}}$, and to 0 otherwise, i.e., \begin{equation} \label{oof-eq:mdiv} w_{ik} = \begin{cases} 1&RD^0_{ik} \leq \sqrt{\chi^2_{p,0.975}} \\ 0&\text{otherwise}.\\ \end{cases} \end{equation} With these weights we can calculate the final reweighted estimates of the group means, $\mv_k$, and the common within-groups covariance matrix, $\v{C}$, which are necessary for constructing the robust classification rules, \begin{eqnarray} \mv_k &=& (\sum^{n_k}_{i=1}{w_{ik}\xv_{ik}})/\nu_k, \nonumber\\ \v{C} &=& \frac{1}{\nu-g}\sum^g_{k=1}\sum^{n_k}_{i=1}{w_{ik}(\xv_{ik}-\mv_k)(\xv_{ik}-\mv_k)^{\top}}, \end{eqnarray} where $\nu_k$ are the sums of the weights within group $k$, for $k=1,\ldots,g$, and $\nu$ is the total sum of weights, \begin{equation} \nu_k =\sum^{n_k}_{i=1}{w_{ik}}, ~~~~\nu = \sum^{g}_{k=1}{\nu_k}. \nonumber \end{equation} \subsubsection{Evaluation of the discriminant rules} In order to evaluate and compare different discriminant rules, their discriminating power has to be determined in the classification of future observations, i.e., we need an estimate of the overall probability of misclassification. A number of methods to estimate this probability exists in the literature---see for example \citet{lachenbruch:1975}. The \textit{apparent error rate} (known also as resubstitution error rate or reclassification error rate) is the most straightforward estimator of the actual error rate in discriminant analysis and is calculated by applying the classification criterion to the same data set from which it was derived. The number of misclassified observations for each group is divided by the group sample size. An estimate of the apparent error rate is calculated by the method \code{predict()} of the class \code{Lda}. Examples are given in the next section. It is well known that this method is too optimistic (the true error is likely to be higher). If there are plenty of observations in each class, the error rate can be estimated by splitting the data into training and validation set. The first one is used to estimate the discriminant rules and the second to estimate the misclassification error. This method is fast and easy to apply but it is wasteful of data. Another method is the \textit{leave-one-out} \textit{cross-validation} \citep{lachenbruch-michey:68} which proceeds by removing one observation from the data set, estimating the discriminant rule, using the remaining $n-1$ observations and then classifying this observation with the estimated discriminant rule. For the classical discriminant analysis there exist updating formulas which avoid the re-computation of the discriminant rule at each step, but no such formulas are available for the robust methods. Thus the estimation of the error rate by this method can be very time consuming depending on the size of the data set. Nevertheless, \pkg{rrcov} provides an (internal, not exported) function \code{rrcov:::.CV()} which calculates the leave-one-out cross-validation error rate by ``brute force'', but the user should be aware that its usage is appropriate only for moderate data sets. An improvement will be the implementation of a cross-validation technique similar to the one proposed by \citet{hubert:2007-CV}. \subsubsection{Example: Diabetes data} \label{oof:sec-diabetes} As an example for demonstrating the usage of the robust discriminant analysis classes and methods we use the \code{diabetes} data set, which was analyzed by \citet*{reaven-miller} in an attempt to examine the relationship between chemical diabetes and overt diabetes in 145 nonobese adult subjects. Their analysis was focused on three primary variables and the 145 individuals were classified initially on the basis of their plasma glucose levels into three groups: normal subjects, chemical diabetes and overt diabetes. This data set was also analyzed by \citet*{hawkins:97} in the context of robust linear discriminant analysis. The data set is available in several \proglang{R} packages: \code{diabetes} in package \pkg{mclust} \citep{mclust}, \code{chemdiab} in package \pkg{locfit} \citep{locfit} and \code{diabetes.dat} in \pkg{Rfwdmv} \citep{Rfwdmv}. We are going to use the one from \pkg{mclust} in which the value of the second variable, $insulin$, on the 104th observation, is 45 while for the other data sets this value is 455 (note that 45 is more likely to be an outlier in this variable than 455). We start with bringing the data set \code{diabetes} from package \pkg{mclust} into the workspace by typing <>= data("diabetes") @ Using the package \pkg{lattice} \citep{Sarkar:2008} we produce a three dimensional cloud plot of the data (Figure~\ref{lda-cloud}). << lda-cloud, fig=FALSE>>= library("lattice") # load the graphical library ## set different plot symbols - important for black-and-white print sup.sym <- trellis.par.get("superpose.symbol") sup.sym$pch <- c(1,2,3,4,5) trellis.par.set("superpose.symbol", sup.sym) cloud.plt <- cloud(insulin ~ glucose + sspg, groups = group, data = diabetes, auto.key=TRUE) @ \begin{center} \begin{figure}[h!] << lda-cloud-fig, fig=TRUE>>= print(cloud.plt) @ \caption{Three dimensional scatter plot of the \code{diabetes} data.} \label{lda-cloud} \end{figure} \end{center} We will first apply the classical linear discriminant analysis as implemented in \code{LdaClassic()} by the formula interface of the function---the grouping variable is \code{class} and all the remaining variables in \code{diabetes} are used as predictor variables. The \code{show()} method will present the results of the computations: the group means, the (common) within group covariance matrix, the linear discriminant functions together with the corresponding constants. The prior probabilities (either provided by the user or estimated as a proportion of the groups) are also presented. << lda-classic>>= lda <- LdaClassic(group~glucose+insulin+sspg, data=diabetes) lda @ Now the \code{predict()} method can be used on the \code{Lda} object (\code{Lda} is the base class for both \code{LdaClassic} and \code{LdaRobust}) in order to classify new observations. The method returns an object of class \code{PredictLda} which has its own \code{show()} method. If no new data are supplied, the training sample will be reclassified and a classification table will be produced to estimate the apparent error rate of the classification rules. << lda-classic-predict>>= predict(lda) @ Robust linear discriminant analysis can be performed in a similar way but using the function \code{Linda} (which will create an object of class \code{Linda}). As before the \code{predict()} method called without new data returns a classification table of the training subsample. Using the internal convenience function \code{rrcov:::.AER()} we can calculate and print the apparent error rate (which now is equal to 0.1103 and is lower than the obtained with the classical LDA 0.1310). << lda-robust>>= rlda <- Linda(group~glucose+insulin+sspg, data=diabetes) rlda rlda.predict <- predict(rlda) cat("\nApparent error rate: ", round(rrcov:::.AER(rlda.predict@ct),4)) @ In the above example we did not specify which method for computing the common covariance matrix should be used (thus using the default method ``MCD-B'' described above). We could choose the method by providing the \code{method} parameter to the function \code{Linda()}. For example the following call \begin{Scode} R> rlda <- Linda(group~glucose+insulin+sspg, data = diabetes, method = "fsa") \end{Scode} will use the \citet*{hawkins:97} \textit{feasible solution algorithm} method. The variance-covariance structures of the three classes in the \code{diabetes} data set differ substantially and we can expect improved results if quadratic discriminant analysis is used. Robust quadratic discriminant analysis is performed by the function \code{QdaCov()} which will return an object of class \code{QdaCov}. << qda-robust>>= rqda <- QdaCov(group~glucose+insulin+sspg, data=diabetes) rqda rqda.predict <- predict(rqda) cat("\nApparent error rate: ", round(rrcov:::.AER(rqda.predict@ct),4)) @ The accuracy of the prediction improves compared to the linear discriminant analysis. \section{Conclusions} \label{oof-sec:conclusions} In this paper we presented an object oriented framework for robust multivariate analysis developed in the \proglang{S}4 class system of the programming environment \proglang{R}. The main goal of the framework is to support the usage, experimentation, development and testing of robust multivariate methods as well as simplifying comparisons with related methods. It minimizes the effort for performing any of the following tasks: \bi \item{application of the already existing robust multivariate methods for practical data analysis;} \item{implementation of new robust multivariate methods or variants of the existing ones;} \item{evaluation of existing and new methods by carrying out comparison studies.} \ei A major design goal was the openness to extensions by the development of new robust methods in the package \pkg{rrcov} or in other packages depending on \pkg{rrcov}. Further classes implementing robust multivariate methods like principal component regression and partial least squares will follow but the user is encouraged to develop own methods using the proposed reusable statistical design patterns. \section*{Acknowledgements} We wish to express our thanks to the organizers of and participants in the ``Robust Statistics and \proglang{R}'' workshops for the valuable comments and suggestions which were a major input for the development of this framework. We are also grateful to many people, notably Matias Salibian-Barrera, Victor Yohai, Kjell Konis, and Christophe Croux for the provided code. The careful review and constructive comments of the editor and the anonymous reviewers helped us to substantially improve the manuscript. The views expressed herein are those of the authors and do not necessarily reflect the views of the United Nations Industrial Development Organization (UNIDO). \bibliography{mybiblio} \end{document} rrcov/inst/Citation0000644000176200001440000000101514443667016014067 0ustar liggesuserscitHeader("To cite the package 'rrcov' in publications use:") bibentry(bibtype = "Article", title = "An Object-Oriented Framework for Robust Multivariate Analysis", journal = "Journal of Statistical Software", author = c(person(given = "Valentin", family = "Todorov"), person(given = "Peter", family = "Filzmoser")), year = "2009", volume = "32", number = "3", pages = "1--47", doi = "10.18637/jss.v032.i03" ) rrcov/inst/NEWS.Rd0000644000176200001440000001551114660221765013441 0ustar liggesusers% Check from R: % news(db = tools:::.build_news_db_from_package_NEWS_Rd("C:/projects/statproj/R/rrcov/inst/NEWS.Rd")) \name{NEWS} \title{News for \R Package \pkg{rrcov}} \encoding{UTF-8} \section{CHANGES in rrcov VERSION 1.7-6 (2024-08-17)}{ \subsection{BUG FIXES}{ \itemize{ \item R/plot-utils - a bug fixed in function .rrpairs() \item man/*: Correct Rd file(s) with Rd \link{} targets missing package anchors \item src/sest.cpp: Calloc() and Free() replaced by R_Calloc() and R_Free() } } } \section{CHANGES in rrcov VERSION 1.7-5 (2024-01-30)}{ \subsection{NEW FEATURES}{ \itemize{ \item data/Cars.rda - data set added } } \subsection{BUG FIXES}{ \itemize{ \item rrcov-utils.Rd: (mail from Kurt Hornik from 22.01.2024) \item fish.Rd: URL corrected } } } \section{CHANGES in rrcov VERSION 1.7-4 (2023-06-22)}{ \subsection{BUG FIXES}{ \itemize{ \item DESCRIPTION: ISBN changed to (see mail from Kurt Hornik from 06.06.2023) \item tests/thubert.Rout.save, tlda.Rout.save, tmcd4.Rout.save, tqda.Rout.save: Follow up to changes in robustbase 0.99-0 } } } \section{CHANGES in rrcov VERSION 1.7-3 (2023-05-11)}{ \subsection{NEW FEATURES}{ \itemize{ \item data/ionosphere.rda - data set added } } \subsection{BUG FIXES}{ \itemize{ \item R/CovRobust, plot_utils: 'xyqqchi2' and 'xydistance' plots, fixed to use of parameter id.n } } } \section{CHANGES in rrcov VERSION 1.7-2 (2022-10-22)}{ \subsection{BUG FIXES}{ \itemize{ \item Fixed - warning: invalid UTF-8 in comment [-Winvalid-utf8] in src/rrcov_init.c } } } \section{CHANGES in rrcov VERSION 1.7-1 (2022-07-18)}{ \subsection{NEW FEATURES}{ \itemize{ \item NOTHING NEW YET } } \subsection{BUG FIXES}{ \itemize{ \item Fixed - maxcond passed to the low level functions \item Fixed errors "Found if() conditions comparing class() to string" in detmrcd.R and plot_utils.R \item Fixed NOTE "Found the following math rendering problems" in PcaHubert.Rd, see mail from Kurt Hornik from 11 August 2022 } } } \section{CHANGES in rrcov VERSION 1.7-0 (2022-04-25)}{ \subsection{NEW FEATURES}{ \itemize{ \item Fix for USE_FC_LEN_T becoming the default in 4.2.0 } } \subsection{BUG FIXES}{ \itemize{ \item Fortran warnings fixed in ds11.f and fsada.f } } } \section{CHANGES in rrcov VERSION 1.6-2 (2022-02-08)}{ \subsection{NEW FEATURES}{ \itemize{ \item Examples for PCA/adjustment for skewed data and PCA/percentage of explained variance added } } \subsection{BUG FIXES}{ \itemize{ \item minor differences in tests for PcaProj() on some platforms fixed \item scoreplot() corrected to show the labels of the samples } } } \section{CHANGES in rrcov VERSION 1.6-1 (2022-01-21)}{ \subsection{NEW FEATURES}{ \itemize{ \item Data set Fruit added: fruit.rda \item URLs in Rd files replaced by DOIs to fix for the migration of the www.jstatsoft.org to a new editorial system (see mail from Achim Zeileis from 06.10.2021) } } \subsection{BUG FIXES}{ \itemize{ \item Fixed a problem when showing the percentage of explained variance in summary() of all PCA functions when k is chosen to be less than the number of variables in the input data matrix (k < p). The returned object contains now additionally the rank of the input matrix, the original eigenvalues (of all variables) and the original total variance, if available. } } } \section{CHANGES in rrcov VERSION 1.6-0 (2021-08-27)}{ \subsection{NEW FEATURES}{ \itemize{ \item PcaHubert: option for adjusted outlyingness for skewed data added \item Data set Computer Hardware added: machines.rda \item Data set Wolves added: wolves.rda } } \subsection{BUG FIXES}{ \itemize{ \item Fixed some URLs, particularly the reference to javasoft.org } } } \section{CHANGES in rrcov VERSION 1.5-5 (2020-07-31)}{ \subsection{BUG FIXES}{ \itemize{ \item PcaHubert will crash if X is 1-dimensional and mcd=FALSE: fixed. \item Fixed 'noLD' issues in tlda.R and okg4.R \item Fixed a problem with wrong scores in PcaProj() (reported by Matthieu Lesnoff ) \item Fixed a problem with nsamp="exact" or nsamp="best" in CovMve(), CovSest() (reported by Claudio Agostinelli) - these functions, differently from CovMcd, should not take non-numeric 'nsamp' } } } \section{CHANGES in rrcov VERSION 1.5-2 (2020-01-14)}{ \subsection{NEW FEATURES}{ \itemize{ \item Added parameter 'control' to Linda - to select the robust location and covariance estimator to use in LDA. Now any estimator derived from class 'Cov' can be used, even such that are not in 'rrcov'. Return this parameter in the returned S4 object. \item Linda returns now the location and covariance estimator used as 'covobj'. This is useful for controlling cross-validation, for example. \item Linda and LdaClassic use generalized inverse if the common covariance matrix is singular. } } \subsection{BUG FIXES}{ \itemize{ \item Fixed an issue the 'predict' function. \item Removed the dependence on packages 'cluster' and 'ellipse'. } } } \section{CHANGES in rrcov VERSION 1.4-9 (2019-11-25)}{ \subsection{NEW FEATURES}{ \itemize{ \item Added data set \code{diabetes}; data set \code{soil} from package \code{rrcovHD} moved here. \item Linear and quadratic discriminant analysis can use the MRCD estimates. } } \subsection{BUG FIXES}{ \itemize{ \item Fixed an issue with CovControlMcd(nsamp="deterministic") - this would not work, because nsamp was defined in the class definition as "numeric". Now it is "Cnumeric" - union of "character" and "numeric'. \item Corrected the code for Minimum Regularized Covariance Determinant estimator (MRCD) - \code{CovMrcd()} - the step of adjusting the eignevalues in r6pack() is excluded now because it has no effect when n > p. } } } \section{CHANGES in rrcov VERSION 1.4-7 (2018-11-14)}{ \subsection{NEW FEATURES}{ \itemize{ \item Added Minimum Regularized Covariance Determinant estimator (MRCD) (Boudt et al. 2018) - functions \code{CovMrcd()} and \code{CovControlMrcd()} \item Added data set \code{octane}; data set \code{olitos} from package rrcovHD moved here. \item The 'pairs' plot is now available for classical covariance matrix } } } rrcov/README.md0000644000176200001440000000675314445074035012705 0ustar liggesusers # `rrcov`: Scalable Robust Estimators with High Breakdown Point [![CRAN version](https://www.r-pkg.org/badges/version/rrcov)](https://cran.r-project.org/package=rrcov) [![R-CMD-check](https://github.com/valentint/rrcov/workflows/R-CMD-check/badge.svg)](https://github.com/valentint/rrcov/actions) [![downloads](https://cranlogs.r-pkg.org/badges/rrcov)](https://cran.r-project.org/package=rrcov) [![downloads](https://cranlogs.r-pkg.org/badges/grand-total/rrcov)](https://cran.r-project.org/package=rrcov) [![license](https://img.shields.io/badge/license-GPL--3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0.en.html) The package `rrcov` provides scalable robust estimators with high breakdown point and covers a large number of robustified multivariate analysis methods, starting with robust estimators for the multivariate location and covariance matrix (MCD, MVE, S, MM, SD), the deterministic versions of MCD, S and MM estimates and regularized versions (MRCD) for high dimensions. These estimators are used to conduct robust principal components analysis (`PcaCov()`), linear and quadratic discriminant analysis (`Linda()`, `Qda()`), MANOVA. Projection pursuit algorithms for PCA to be applied in high dimensions are also available (`PcaHubert()`, `PcaGrid()` and `PcaProj()`). ## Installation The `rrcov` package is on CRAN (The Comprehensive R Archive Network) and the latest release can be easily installed using the command install.packages("rrcov") library(rrcov) ## Building from source To install the latest stable development version from GitHub, you can pull this repository and install it using ## install.packages("remotes") remotes::install_github("valentint/rrcov", build_opts = c("--no-build-vignettes")) Of course, if you have already installed `remotes`, you can skip the first line (I have commented it out). ## Example This is a basic example which shows you if the package is properly installed: ``` r library(rrcov) #> Loading required package: robustbase #> Scalable Robust Estimators with High Breakdown Point (version 1.7-3) data(hbk) (out <- CovMcd(hbk)) #> #> Call: #> CovMcd(x = hbk) #> -> Method: Fast MCD(alpha=0.5 ==> h=40); nsamp = 500; (n,k)mini = (300,5) #> #> Robust Estimate of Location: #> X1 X2 X3 Y #> 1.55833 1.80333 1.66000 -0.08667 #> #> Robust Estimate of Covariance: #> X1 X2 X3 Y #> X1 1.58739 0.03129 0.21694 0.10748 #> X2 0.03129 1.60733 0.25612 0.02864 #> X3 0.21694 0.25612 1.47254 -0.18174 #> Y 0.10748 0.02864 -0.18174 0.44081 ``` ## Community guidelines ### Report issues and request features If you experience any bugs or issues or if you have any suggestions for additional features, please submit an issue via the [*Issues*](https://github.com/valentint/rrcov/issues) tab of this repository. Please have a look at existing issues first to see if your problem or feature request has already been discussed. ### Contribute to the package If you want to contribute to the package, you can fork this repository and create a pull request after implementing the desired functionality. ### Ask for help If you need help using the package, or if you are interested in collaborations related to this project, please get in touch with the package maintainer. rrcov/build/0000755000176200001440000000000014660616376012523 5ustar liggesusersrrcov/build/vignette.rds0000644000176200001440000000044414660616376015064 0ustar liggesusers‹m‘Ánƒ0 †Cv MšTí´K^ ¼ÁÕ—©ê„vØ53e£%nQo{òu¦„ªÍ)Žc;ñ—?1cl‚¬O®?'3¥ù@Óc‹h´.š}’«ÎIrrcov/build/partial.rdb0000644000176200001440000000007414660616336014645 0ustar liggesusers‹‹àb```b`a’Ì ¦0°0 FN Íš—˜›Z d@$þž/ÕÛ7rrcov/man/0000755000176200001440000000000014556261376012177 5ustar liggesusersrrcov/man/CovOgk.Rd0000644000176200001440000001163314443667016013656 0ustar liggesusers\name{CovOgk} \alias{CovOgk} % \title{ Robust Location and Scatter Estimation - Ortogonalized Gnanadesikan-Kettenring (OGK)} \description{ Computes a robust multivariate location and scatter estimate with a high breakdown point, using the pairwise algorithm proposed by Marona and Zamar (2002) which in turn is based on the pairwise robust estimator proposed by Gnanadesikan-Kettenring (1972). } \usage{ CovOgk(x, niter = 2, beta = 0.9, control) } \arguments{ \item{x}{a matrix or data frame. } \item{niter}{ number of iterations, usually 1 or 2 since iterations beyond the second do not lead to improvement. } \item{beta}{ coverage parameter for the final reweighted estimate } \item{control}{ a control object (S4) of class \code{\link{CovControlOgk-class}} containing estimation options - same as these provided in the function specification. If the control object is supplied, the parameters from it will be used. If parameters are passed also in the invocation statement, they will override the corresponding elements of the control object. The control object contains also functions for computing the robust univariate location and dispersion estimate \code{mrob} and for computing the robust estimate of the covariance between two random variables \code{vrob}. } } \details{ The method proposed by Marona and Zamar (2002) allowes to obtain positive-definite and almost affine equivariant robust scatter matrices starting from any pairwise robust scatter matrix. The default robust estimate of covariance between two random vectors used is the one proposed by Gnanadesikan and Kettenring (1972) but the user can choose any other method by redefining the function in slot \code{vrob} of the control object \code{CovControlOgk}. Similarly, the function for computing the robust univariate location and dispersion used is the \code{tau scale} defined in Yohai and Zamar (1998) but it can be redefined in the control object. The estimates obtained by the OGK method, similarly as in \code{CovMcd} are returned as 'raw' estimates. To improve the estimates a reweighting step is performed using the coverage parameter \code{beta} and these reweighted estimates are returned as 'final' estimates. } \note{ If the user does not specify a scale and covariance function to be used in the computations or specifies one by using the arguments \code{smrob} and \code{svrob} (i.e. the names of the functions as strings), a native code written in C will be called which is by far faster than the R version. If the arguments \code{mrob} and \code{vrob} are not NULL, the specified functions will be used via the pure R implementation of the algorithm. This could be quite slow. See \code{\link{CovControlOgk}} for details. } \value{ An S4 object of class \code{\link{CovOgk-class}} which is a subclass of the virtual class \code{\link{CovRobust-class}}. } \references{ Maronna, R.A. and Zamar, R.H. (2002) Robust estimates of location and dispersion of high-dimensional datasets; \emph{Technometrics} \bold{44}(4), 307--317. Yohai, R.A. and Zamar, R.H. (1998) High breakdown point estimates of regression by means of the minimization of efficient scale \emph{JASA} \bold{86}, 403--413. Gnanadesikan, R. and John R. Kettenring (1972) Robust estimates, residuals, and outlier detection with multiresponse data. \emph{Biometrics} \bold{28}, 81--124. Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} and Kjell Konis \email{kjell.konis@epfl.ch} } %\note{} \seealso{ \code{\link{CovMcd}}, \code{\link{CovMest}} } \examples{ data(hbk) hbk.x <- data.matrix(hbk[, 1:3]) CovOgk(hbk.x) ## the following three statements are equivalent c1 <- CovOgk(hbk.x, niter=1) c2 <- CovOgk(hbk.x, control = CovControlOgk(niter=1)) ## direct specification overrides control one: c3 <- CovOgk(hbk.x, beta=0.95, control = CovControlOgk(beta=0.99)) c1 x<-matrix(c(1,2,3,7,1,2,3,7), ncol=2) ## CovOgk(x) - this would fail because the two columns of x are exactly collinear. ## In order to fix it, redefine the default 'vrob' function for example ## in the following way and pass it as a parameter in the control ## object. cc <- CovOgk(x, control=new("CovControlOgk", vrob=function(x1, x2, ...) { r <- .vrobGK(x1, x2, ...) if(is.na(r)) r <- 0 r }) ) cc } \keyword{robust} \keyword{multivariate} rrcov/man/Appalachia.Rd0000644000176200001440000000405214443667016014506 0ustar liggesusers\name{Appalachia} \alias{Appalachia} \docType{data} \title{ Annual maximum streamflow in central Appalachia} \description{ The data on annual maximum streamflow at 104 gaging stations in the central Appalachia region of the United States contains the sample L-moments ratios (L-CV, L-skewness and L-kurtosis) as used by Hosking and Wallis (1997) to illustrate regional freqency analysis (RFA). } \usage{data(Appalachia)} \format{ A data frame with 104 observations on the following 3 variables: \describe{ \item{\code{L-CV}}{L-coefficient of variation} \item{\code{L-skewness}}{L-coefficient of skewness} \item{\code{L-kurtosis}}{L-coefficient of kurtosis} } } \details{ The sample L-moment ratios (L-CV, L-skewness and L-kurtosis) of a site are regarded as a point in three dimensional space. } \source{ Hosking, J. R. M. and J. R. Wallis (1997), \emph{Regional Frequency Analysis: An Approach Based on L-moments.} Cambridge University Press, p.175--185 } \references{ Neykov, N.M., Neytchev, P.N., Van Gelder, P.H.A.J.M. and Todorov V. (2007), Robust detection of discordant sites in regional frequency analysis, \emph{Water Resources Research}, 43, W06417, doi:10.1029/2006WR005322 } \examples{ data(Appalachia) # plot a matrix of scatterplots pairs(Appalachia, main="Appalachia data set", pch=21, bg=c("red", "green3", "blue")) mcd<-CovMcd(Appalachia) mcd plot(mcd, which="dist", class=TRUE) plot(mcd, which="dd", class=TRUE) ## identify the discordant sites using robust distances and compare ## to the classical ones mcd <- CovMcd(Appalachia) rd <- sqrt(getDistance(mcd)) ccov <- CovClassic(Appalachia) cd <- sqrt(getDistance(ccov)) r.out <- which(rd > sqrt(qchisq(0.975,3))) c.out <- which(cd > sqrt(qchisq(0.975,3))) cat("Robust: ", length(r.out), " outliers: ", r.out,"\n") cat("Classical: ", length(c.out), " outliers: ", c.out,"\n") } \keyword{datasets} rrcov/man/fruit.Rd0000644000176200001440000000345614443667016013623 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/datadoc.R \docType{data} \name{fruit} \alias{fruit} \title{Fruit data set} \format{ A data frame with 1096 rows and 257 variables (one grouping variable -- \code{cultivar} -- and 256 measurement variables). } \source{ Colin Greensill (Faculty of Engineering and Physical Systems, Central Queensland University, Rockhampton, Australia). } \usage{ data(fruit) } \description{ A data set that contains the spectra of six different cultivars of the same fruit (cantaloupe - \emph{Cucumis melo} L. Cantaloupensis group) obtained from Colin Greensill (Faculty of Engineering and Physical Systems, Central Queensland University, Rockhampton, Australia). The total data set contained 2818 spectra measured in 256 wavelengths. For illustrative purposes are considered only three cultivars out of it, named D, M and HA with sizes 490, 106 and 500, respectively. Thus the data set thus contains 1096 observations. For more details about this data set see the references below. } \examples{ data(fruit) table(fruit$cultivar) } \references{ Hubert, M. and Van Driessen, K., (2004). Fast and robust discriminant analysis. \emph{Computational Statistics and Data Analysis}, \bold{45}(2):301--320. \doi{10.1016/S0167-9473(02)00299-2}. Vanden Branden, K and Hubert, M, (2005). Robust classification in high dimensions based on the SIMCA Method. \emph{Chemometrics and Intelligent Laboratory Systems}, \bold{79}(1-2), pp. 10--21. \doi{10.1016/j.chemolab.2005.03.002}. Hubert, M, Rousseeuw, PJ and Verdonck, T, (2012). A Deterministic Algorithm for Robust Location and Scatter. \emph{Journal of Computational and Graphical Statistics}, \bold{21}(3), pp 618--637. \doi{10.1080/10618600.2012.672100}. } \keyword{datasets} rrcov/man/Cov-class.Rd0000644000176200001440000000723214443667016014320 0ustar liggesusers\name{Cov-class} \docType{class} \alias{Cov-class} \alias{getCenter-method} \alias{getCenter,Cov-method} \alias{getCov,Cov-method} \alias{getCorr,Cov-method} \alias{getData,Cov-method} \alias{getDistance,Cov-method} \alias{getEvals,Cov-method} \alias{getDet,Cov-method} \alias{getShape,Cov-method} \alias{getFlag,Cov-method} \alias{isClassic,method} \alias{isClassic,Cov-method} \alias{plot} \alias{plot,Cov,missing-method} \alias{show,Cov-method} \alias{summary,Cov-method} \alias{Uvector-class} \alias{Ulist-class} \alias{Utable-class} \alias{Umatrix-class} \alias{Ufunction-class} \title{Class "Cov" -- a base class for estimates of multivariate location and scatter} \description{The class \code{Cov} represents an estimate of the multivariate location and scatter of a data set. The objects of class \code{Cov} contain the classical estimates and serve as base for deriving other estimates, i.e. different types of robust estimates. } \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("Cov", ...)}, but the usual way of creating \code{Cov} objects is a call to the function \code{Cov} which serves as a constructor. } \section{Slots}{ \describe{ \item{\code{call}:}{Object of class \code{"language"} } \item{\code{cov}:}{covariance matrix} \item{\code{center}:}{location} \item{\code{n.obs}:}{number of observations used for the computation of the estimates} \item{\code{mah}:}{mahalanobis distances} \item{\code{det}:}{determinant} \item{\code{flag}:}{flags (FALSE if suspected an outlier)} \item{\code{method}:}{a character string describing the method used to compute the estimate: "Classic"} \item{\code{singularity}:}{a list with singularity information for the covariance matrix (or \code{NULL} of not singular)} \item{\code{X}:}{data} } } \section{Methods}{ \describe{ \item{getCenter}{\code{signature(obj = "Cov")}: location vector } \item{getCov}{\code{signature(obj = "Cov")}: covariance matrix } \item{getCorr}{\code{signature(obj = "Cov")}: correlation matrix } \item{getData}{\code{signature(obj = "Cov")}: data frame } \item{getDistance}{\code{signature(obj = "Cov")}: distances } \item{getEvals}{\code{signature(obj = "Cov")}: Computes and returns the eigenvalues of the covariance matrix } \item{getDet}{\code{signature(obj = "Cov")}: Computes and returns the determinant of the covariance matrix (or 0 if the covariance matrix is singular) } \item{getShape}{\code{signature(obj = "Cov")}: Computes and returns the shape matrix corresponding to the covariance matrix (i.e. the covariance matrix scaled to have determinant =1) } \item{getFlag}{\code{signature(obj = "Cov")}: Flags observations as outliers if the corresponding mahalanobis distance is larger then \code{qchisq(prob, p)} where \code{prob} defaults to 0.975. } \item{isClassic}{\code{signature(obj = "Cov")}: returns TRUE by default. If necessary, the robust classes will override } \item{plot}{\code{signature(x = "Cov")}: plot the object } \item{show}{\code{signature(object = "Cov")}: display the object } \item{summary}{\code{signature(object = "Cov")}: calculate summary information } } } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{Valentin Todorov \email{valentin.todorov@chello.at}} \examples{ showClass("Cov") } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/CovClassic-class.Rd0000644000176200001440000000470514443667016015624 0ustar liggesusers\name{CovClassic-class} \docType{class} \alias{CovClassic-class} \title{Class "CovClassic" - classical estimates of multivariate location and scatter } \description{ The class \code{CovClassic} represents an estimate of the multivariate location and scatter of a data set. The objects of class \code{CovClassic} contain the classical estimates. } \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("CovClassic", ...)}, but the usual way of creating \code{CovClassic} objects is a call to the function \code{CovClassic} which serves as a constructor. } \section{Slots}{ \describe{ \item{\code{call}:}{Object of class \code{"language"} } \item{\code{cov}:}{covariance matrix} \item{\code{center}:}{location} \item{\code{n.obs}:}{number of observations used for the computation of the estimates} \item{\code{mah}:}{mahalanobis distances} \item{\code{method}:}{a character string describing the method used to compute the estimate: "Classic"} \item{\code{singularity}:}{a list with singularity information for the ocvariance matrix (or \code{NULL} of not singular)} \item{\code{X}:}{data} } } \section{Methods}{ \describe{ \item{getCenter}{\code{signature(obj = "CovClassic")}: location vector } \item{getCov}{\code{signature(obj = "CovClassic")}: covariance matrix } \item{getCorr}{\code{signature(obj = "CovClassic")}: correlation matrix } \item{getData}{\code{signature(obj = "CovClassic")}: data frame } \item{getDistance}{\code{signature(obj = "CovClassic")}: distances } \item{getEvals}{\code{signature(obj = "CovClassic")}: Computes and returns the eigenvalues of the covariance matrix } \item{plot}{\code{signature(x = "CovClassic")}: plot the object } \item{show}{\code{signature(object = "CovClassic")}: display the object } \item{summary}{\code{signature(object = "CovClassic")}: calculate summary information } } } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } %\note{} \author{Valentin Todorov \email{valentin.todorov@chello.at}} %\seealso{} \examples{ data(hbk) hbk.x <- data.matrix(hbk[, 1:3]) cv <- CovClassic(hbk.x) cv summary(cv) plot(cv) } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/wages.Rd0000644000176200001440000000415414443667016013574 0ustar liggesusers\name{wages} \alias{wages} \docType{data} \title{Wages and Hours} \description{ The data are from a national sample of 6000 households with a male head earning less than USD 15,000 annually in 1966. The data were clasified into 39 demographic groups for analysis. The study was undertaken in the context of proposals for a guaranteed annual wage (negative income tax). At issue was the response of labor supply (average hours) to increasing hourly wages. The study was undertaken to estimate this response from available data. } \usage{data(wages)} \format{ A data frame with 39 observations on the following 10 variables: \describe{ \item{\code{HRS}}{Average hours worked during the year} \item{\code{RATE}}{Average hourly wage (USD)} \item{\code{ERSP}}{Average yearly earnings of spouse (USD)} \item{\code{ERNO}}{Average yearly earnings of other family members (USD)} \item{\code{NEIN}}{Average yearly non-earned income} \item{\code{ASSET}}{Average family asset holdings (Bank account, etc.) (USD)} \item{\code{AGE}}{Average age of respondent} \item{\code{DEP}}{Average number of dependents} \item{\code{RACE}}{Percent of white respondents} \item{\code{SCHOOL}}{Average highest grade of school completed} } } %%\details{} \source{ DASL library %% \url{http://lib.stat.cmu.edu/DASL/Datafiles/wagesdat.html} 'http://lib.stat.cmu.edu/DASL/Datafiles/wagesdat.html' } \references{ D.H. Greenberg and M. Kosters, (1970). Income Guarantees and the Working Poor, The Rand Corporation. } \examples{ data(wages) names(wages) x <- as.matrix(wages) ok <- is.finite(x \%*\% rep(1, ncol(x))) wages <- wages[ok, , drop = FALSE] wages.lm <- lm(HRS~AGE, data=wages) plot(HRS ~ AGE, data = wages) abline(wages.lm) class(wages.lm) names(wages.lm) summary(wages.lm) wages.mm <- lmrob(HRS~AGE, data=wages) plot(HRS ~ AGE, data = wages) abline(wages.mm) class(wages.mm) names(wages.mm) summary(wages.mm) } \keyword{datasets} rrcov/man/CovControlMest-class.Rd0000644000176200001440000000424214443667016016510 0ustar liggesusers\name{CovControlMest-class} \docType{class} \alias{CovControlMest-class} \title{Class 'CovControlMest' - contains control parameters for "CovMest"} \description{ This class extends the \code{CovControl} class and contains the control parameters for CovMest} \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("CovControlMest", ...)} or by calling the constructor-function \code{CovControlMest}. } \section{Slots}{ \describe{ \item{\code{r}:}{a numeric value specifying the required breakdown point. Allowed values are between \code{(n - p)/(2 * n)} and 1 and the default is 0.45} \item{\code{arp}:}{a numeric value specifying the asympthotic rejection point, i.e. the fraction of points receiving zero weight (see Rocke (1996)). Default is \code{0.05} } \item{\code{eps}:}{a numeric value specifying the relative precision of the solution of the M-estimate. Defaults to \code{1e-3}} \item{\code{maxiter}:}{maximum number of iterations allowed in the computation of the M-estimate. Defaults to 120 } \item{\code{trace}, \code{tolSolve}:}{from the \code{"\linkS4class{CovControl}"} class. } } } \section{Extends}{ Class \code{"\linkS4class{CovControl}"}, directly. } \section{Methods}{ \describe{ \item{restimate}{\code{signature(obj = "CovControlMest")}: the generic function \code{restimate} allowes the different methods for robust estimation to be used polymorphically - this function will call \code{CovMest} passing it the control object and will return the obtained \code{CovRobust} object} } } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{Valentin Todorov \email{valentin.todorov@chello.at}} \examples{ ## the following two statements are equivalent ctrl1 <- new("CovControlMest", r=0.4) ctrl2 <- CovControlMest(r=0.4) data(hbk) CovMest(hbk, control=ctrl1) } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/CovSde.Rd0000644000176200001440000001112214443667016013642 0ustar liggesusers\encoding{latin1} \name{CovSde} \Rdversion{1.1} \alias{CovSde} % \title{Stahel-Donoho Estimates of Multivariate Location and Scatter} \description{ Compute a robust estimate of location and scale using the Stahel-Donoho projection based estimator } \usage{ CovSde(x, nsamp, maxres, tune = 0.95, eps = 0.5, prob = 0.99, seed = NULL, trace = FALSE, control) } \arguments{ \item{x}{ a matrix or data frame. } \item{nsamp}{a positive integer giving the number of resamples required; \code{nsamp} may not be reached if too many of the \code{p}-subsamples, chosen out of the observed vectors, are in a hyperplane. If \code{nsamp = 0} all possible subsamples are taken. If \code{nsamp} is omitted, it is calculated to provide a breakdown point of \code{eps} with probability \code{prob}.} \item{maxres}{a positive integer specifying the maximum number of resamples to be performed including those that are discarded due to linearly dependent subsamples. If \code{maxres} is omitted it will be set to 2 times \code{nsamp}.} \item{tune}{a numeric value between 0 and 1 giving the fraction of the data to receive non-zero weight. Defaults to \code{0.95}} \item{prob}{a numeric value between 0 and 1 specifying the probability of high breakdown point; used to compute \code{nsamp} when \code{nsamp} is omitted. Defaults to \code{0.99}.} \item{eps}{a numeric value between 0 and 0.5 specifying the breakdown point; used to compute \code{nsamp} when \code{nresamp} is omitted. Defaults to \code{0.5}. } \item{seed}{starting value for random generator. Default is \code{seed = NULL}.} \item{trace}{whether to print intermediate results. Default is \code{trace = FALSE}. } \item{control}{ a control object (S4) of class \code{\link{CovControlSde-class}} containing estimation options - same as these provided in the fucntion specification. If the control object is supplied, the parameters from it will be used. If parameters are passed also in the invocation statement, they will override the corresponding elements of the control object.} } \details{ The projection based Stahel-Donoho estimator posses very good statistical properties, but it can be very slow if the number of variables is too large. It is recommended to use this estimator if \code{n <= 1000} and \code{p<=10} or \code{n <= 5000} and \code{p<=5}. The number of subsamples required is calculated to provide a breakdown point of \code{eps} with probability \code{prob} and can reach values larger than the larger integer value - in such case it is limited to \code{.Machine$integer.max}. Of course you could provide \code{nsamp} in the call, i.e. \code{nsamp=1000} but this will not guarantee the required breakdown point of th eestimator. For larger data sets it is better to use \code{\link{CovMcd}} or \code{\link{CovOgk}}. If you use \code{\link{CovRobust}}, the estimator will be selected automatically according on the size of the data set.} \value{ An S4 object of class \code{\link{CovSde-class}} which is a subclass of the virtual class \code{\link{CovRobust-class}}. } \references{ R. A. Maronna and V.J. Yohai (1995) The Behavior of the Stahel-Donoho Robust Multivariate Estimator. \emph{Journal of the American Statistical Association} \bold{90} (429), 330--341. R. A. Maronna, D. Martin and V. Yohai (2006). \emph{Robust Statistics: Theory and Methods}. Wiley, New York. Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} and Kjell Konis \email{kjell.konis@epfl.ch} } \note{ The Fortran code for the Stahel-Donoho method was taken almost with no changes from package \code{robust} which in turn has it from the \emph{Insightful Robust Library} (thanks to by Kjell Konis). } \examples{ data(hbk) hbk.x <- data.matrix(hbk[, 1:3]) CovSde(hbk.x) ## the following four statements are equivalent c0 <- CovSde(hbk.x) c1 <- CovSde(hbk.x, nsamp=2000) c2 <- CovSde(hbk.x, control = CovControlSde(nsamp=2000)) c3 <- CovSde(hbk.x, control = new("CovControlSde", nsamp=2000)) ## direct specification overrides control one: c4 <- CovSde(hbk.x, nsamp=100, control = CovControlSde(nsamp=2000)) c1 summary(c1) plot(c1) ## Use the function CovRobust() - if no estimation method is ## specified, for small data sets CovSde() will be called cr <- CovRobust(hbk.x) cr } \keyword{robust} \keyword{multivariate} rrcov/man/Wilks.test.Rd0000644000176200001440000001523014443667016014532 0ustar liggesusers\name{Wilks.test} \alias{Wilks.test} \alias{Wilks.test.default} \alias{Wilks.test.data.frame} \alias{Wilks.test.formula} \alias{Wilks.test.matrix} \alias{model.frame.Wilks.test} \title{ Classical and Robust One-way MANOVA: Wilks Lambda } \description{ Classical and Robust One-way MANOVA: Wilks Lambda } \usage{ \method{Wilks.test}{formula}(formula, data, \dots, subset, na.action) \method{Wilks.test}{default}(x, grouping, method=c("c", "mcd", "rank"), approximation=c("Bartlett", "Rao", "empirical"), xd=NULL, xq=NULL, xfn = NULL, xwl=NULL, nrep=3000, trace=FALSE, \dots) \method{Wilks.test}{data.frame}(x, \dots) \method{Wilks.test}{matrix}(x, grouping, \dots, subset, na.action) } \arguments{ \item{formula}{ A formula of the form \code{groups ~ x1 + x2 + \dots} That is, the response is the grouping factor and the right hand side specifies the (non-factor) variables. } \item{data}{ Data frame from which variables specified in \code{formula} are to be taken. } \item{x}{ (required if no formula is given as the principal argument.) a matrix or data frame or Matrix containing the explanatory variables. } \item{grouping}{ grouping variable - a factor specifying the class for each observation (required if no formula argument is given.) } \item{subset}{ An index vector specifying the cases to be used. } \item{na.action}{ A function to specify the action to be taken if \code{NA}s are found. The default action is for the procedure to fail. An alternative is \code{na.omit}, which leads to rejection of cases with missing values on any required variable. } \item{method}{ \code{"c"} for standard estimators of the mean and variance, \code{"mcd"} for MCD estimators of mean and variances and \code{"rank"} for rank based wilks' lambda as proposed by Nath and Pavur (1985). } \item{approximation}{ \code{"Bartlett"} for Bartlett approximation (default), \code{"Rao"} for rao approximation (only for method="c") and \code{"empirical"} for simulated empirical distribution. } \item{xd}{multiplication factor for the approximate distribution of the robust Lambda statistic. If \code{xd=NULL} the factor will computed by simulation and will be returned in the value (see Details) } \item{xq}{the degrees of freedom for the approximate \eqn{\chi^2} distribution of the robust Lambda statistic. If \code{xq=NULL} the degrees of freedom will computed by simulation and will be returned in the value (see Details) } \item{xfn}{the empirical distribution function. If \code{xfn=NULL} the empirical function will be estimated by simulation and will be returned in the value (see Details) } \item{xwl}{the simulated values of the robust statistic. If \code{xwl=NULL} the simulation will be performed and the calculated result will be returned in the value (see Details) } \item{nrep}{number of trials for the simulations for computing the multiplication factor \code{xd} and the degrees of freedom \code{xq}. Default is \code{nrep=3000}. } \item{trace}{whether to print intermediate results. Default is \code{trace = FALSE}} \item{\dots}{arguments passed to or from other methods.} } \value{ A list with class \code{"htest"} containing the following components: \item{statistic}{the value of the Wilks' Lambda statistic.} \item{parameter}{The corresponding approximation of the Wilks' lambda statistic and the degrees of freedom.} \item{p.value}{the p-value for the test.} \item{estimate}{the estimated mean vectors.} \item{method}{a character string indicating what type of test was performed.} \item{data.name}{a character string giving the name of the data.} \item{xd}{multiplication factor for the approximate distribution of the robust Lambda statistic. } \item{xq}{the degrees of freedom for the approximate \eqn{\chi^2} distribution of the robust Lambda statistic. } } \details{ The classical Wilks' Lambda statistic for testing the equality of the group means of two or more groups is modified into a robust one through substituting the classical estimates by the highly robust and efficient reweighted MCD estimates, which can be computed efficiently by the FAST-MCD algorithm - see \code{\link{CovMcd}}. An approximation for the finite sample distribution of the Lambda statistic is obtained, based on matching the mean and variance of a multiple of an \eqn{\chi^2} distribution which are computed by simultaion. } \note{ This function may be called giving either a formula and optional data frame, or a matrix and grouping factor as the first two arguments. All other arguments are optional. } \references{ Todorov, V. and Filzmoser, P. (2007) Robust statistic for the one-way MANOVA, \emph{submetted to the Journal of Environmetrics}. Todorov, V. (2007) Robust selection of variables in linear discriminant analysis, \emph{Statistical Methods and Applications}, \bold{15}, 395.407, doi:10.1007/s10260-006-0032-6. Nath, R. and Pavur, R. (1985) A new statistic in the one way multivariate analysis of variance, \emph{Computatational Statistics and Data Analysis}, \bold{2}, 297--315 } \author{ Valentin Todorov \email{valentin.todorov@chello.at} } \seealso{ \code{\link{CovMcd}}, \code{\link{T2.test}}} \examples{ library(MASS) data(anorexia) grp <- as.factor(anorexia[,1]) x <- as.matrix(anorexia[,2:3]) ## Using the default interface, classical test Wilks.test(x, grouping=grp, method="c") ## Using the default interface, rank based test Wilks.test(x, grouping=grp, method="rank") ## For this data set: p=2, n=n1+n2+n3=29+26+17 ## were computed the following multiplication factor xd and degrees of freedom xq ## for the MCD estimates with alpha=0.5 xd <- -0.02162666 xq <- 3.63971 Wilks.test(x, grouping=grp, method="mcd", xd=xd, xq=xq) ## Now the same with the formula interface Wilks.test(Treat~Prewt+Postwt, data=anorexia, method="mcd", xd=xd, xq=xq) ##Iris data with formula interface data(iris) Wilks.test(Species~., data=iris, method="c") ## and with default interface Wilks.test(iris[,1:4],grouping=iris[,5], method="c") # hemophilia data - classical, rank and MCD test data(hemophilia) hemophilia$gr <- as.factor(hemophilia$gr) Wilks.test(gr~., data=hemophilia, method="c") Wilks.test(gr~., data=hemophilia, method="rank") ## already simulated parameters for MCD with alpha=0.5 xd <- -0.01805436 xq <- 1.950301 Wilks.test(gr~., data=hemophilia, xd=xd, xq=xq, method="mcd") } \keyword{multivariate} \keyword{robust} rrcov/man/CovMrcd.Rd0000644000176200001440000001556414443667016014032 0ustar liggesusers\name{CovMrcd} \alias{CovMrcd} % \title{ Robust Location and Scatter Estimation via Minimum Regularized Covariance Determonant (MRCD)} \description{ Computes a robust multivariate location and scatter estimate with a high breakdown point, using the Minimum Regularized Covariance Determonant (MRCD) estimator. } \usage{ CovMrcd(x, alpha=control@alpha, h=control@h, maxcsteps=control@maxcsteps, initHsets=NULL, save.hsets=FALSE, rho=control@rho, target=control@target, maxcond=control@maxcond, trace=control@trace, control=CovControlMrcd()) } \arguments{ \item{x}{a matrix or data frame. } \item{alpha}{numeric parameter controlling the size of the subsets over which the determinant is minimized, i.e., \code{alpha*n} observations are used for computing the determinant. Allowed values are between 0.5 and 1 and the default is 0.5.} \item{h}{the size of the subset (can be between ceiling(n/2) and n). Normally NULL and then it \code{h} will be calculated as \code{h=ceiling(alpha*n)}. If \code{h} is provided, \code{alpha} will be calculated as \code{alpha=h/n}.} \item{maxcsteps}{maximal number of concentration steps in the deterministic MCD; should not be reached.} \item{initHsets}{NULL or a \eqn{K x h} integer matrix of initial subsets of observations of size \eqn{h} (specified by the indices in \code{1:n}).} \item{save.hsets}{(for deterministic MCD) logical indicating if the initial subsets should be returned as \code{initHsets}.} \item{rho}{regularization parameter. Normally NULL and will be estimated from the data.} \item{target}{structure of the robust positive definite target matrix: a) "identity": target matrix is diagonal matrix with robustly estimated univariate scales on the diagonal or b) "equicorrelation": non-diagonal target matrix that incorporates an equicorrelation structure (see (17) in paper). Default is \code{target="identity"}} \item{maxcond}{maximum condition number allowed (see step 3.4 in algorithm 1). Default is \code{maxcond=50}} \item{trace}{whether to print intermediate results. Default is \code{trace = FALSE}} \item{control}{ a control object (S4) of class \code{\link{CovControlMrcd-class}} containing estimation options - same as these provided in the function specification. If the control object is supplied, the parameters from it will be used. If parameters are passed also in the invocation statement, they will override the corresponding elements of the control object.} } \details{ This function computes the minimum regularized covariance determinant estimator (MRCD) of location and scatter and returns an S4 object of class \code{\link{CovMrcd-class}} containing the estimates. Similarly like the MCD method, MRCD looks for the \eqn{h (> n/2)} observations (out of \eqn{n}) whose classical covariance matrix has the lowest possible determinant, but replaces the subset-based covariance by a regularized covariance estimate, defined as a weighted average of the sample covariance of the h-subset and a predetermined positive definite target matrix. The Minimum Regularized Covariance Determinant (MRCD) estimator is then the regularized covariance based on the h-subset which makes the overall determinant the smallest. A data-driven procedure sets the weight of the target matrix (\code{rho}), so that the regularization is only used when needed. } \value{ An S4 object of class \code{\link{CovMrcd-class}} which is a subclass of the virtual class \code{\link{CovRobust-class}}. } \references{ Kris Boudt, Peter Rousseeuw, Steven Vanduffel and Tim Verdonck (2020) The Minimum Regularized Covariance Determinant estimator, \emph{Statistics and Computing}, \bold{30}, pp 113--128 \doi{10.1007/s11222-019-09869-x}. Mia Hubert, Peter Rousseeuw and Tim Verdonck (2012) A deterministic algorithm for robust location and scatter. \emph{Journal of Computational and Graphical Statistics} \bold{21}(3), 618--637. Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Kris Boudt, Peter Rousseeuw, Steven Vanduffel and Tim Verdonk. Improved by Joachim Schreurs and Iwein Vranckx. Adapted for \pkg{rrcov} by Valentin Todorov \email{valentin.todorov@chello.at} } \seealso{ \code{\link{CovMcd}} } \examples{ ## The result will be (almost) identical to the raw MCD ## (since we do not do reweighting of MRCD) ## data(hbk) hbk.x <- data.matrix(hbk[, 1:3]) c0 <- CovMcd(hbk.x, alpha=0.75, use.correction=FALSE) cc <- CovMrcd(hbk.x, alpha=0.75) cc$rho all.equal(c0$best, cc$best) all.equal(c0$raw.center, cc$center) all.equal(c0$raw.cov/c0$raw.cnp2[1], cc$cov/cc$cnp2) summary(cc) ## the following three statements are equivalent c1 <- CovMrcd(hbk.x, alpha = 0.75) c2 <- CovMrcd(hbk.x, control = CovControlMrcd(alpha = 0.75)) ## direct specification overrides control one: c3 <- CovMrcd(hbk.x, alpha = 0.75, control = CovControlMrcd(alpha=0.95)) c1 \dontrun{ ## This is the first example from Boudt et al. (2020). The first variable is ## the dependent one, which we remove and remain with p=226 NIR absorbance spectra data(octane) octane <- octane[, -1] # remove the dependent variable y n <- nrow(octane) p <- ncol(octane) ## Compute MRCD with h=33, which gives approximately 15 percent breakdown point. ## This value of h was found by Boudt et al. (2020) using a data driven approach, ## similar to the Forward Search of Atkinson et al. (2004). ## The default value of h would be 20 (i.e. alpha=0.5) out <- CovMrcd(octane, h=33) out$rho ## Please note that in the paper is indicated that the obtained rho=0.1149, however, ## this value of rho is obtained if the parameter maxcond is set equal to 999 (this was ## the default in an earlier version of the software, now the default is maxcond=50). ## To reproduce the result from the paper, change the call to CovMrcd() as follows ## (this will not influence the results shown further): ## out <- CovMrcd(octane, h=33, maxcond=999) ## out$rho robpca = PcaHubert(octane, k=2, alpha=0.75, mcd=FALSE) (outl.robpca = which(robpca@flag==FALSE)) # Observations flagged as outliers by ROBPCA: # 25, 26, 36, 37, 38, 39 # Plot the orthogonal distances versus the score distances: pch = rep(20,n); pch[robpca@flag==FALSE] = 17 col = rep('black',n); col[robpca@flag==FALSE] = 'red' plot(robpca, pch=pch, col=col, id.n.sd=6, id.n.od=6) ## Plot now the MRCD mahalanobis distances pch = rep(20,n); pch[!getFlag(out)] = 17 col = rep('black',n); col[!getFlag(out)] = 'red' plot(out, pch=pch, col=col, id.n=6) } } \keyword{robust} \keyword{multivariate} rrcov/man/CovControlMcd.Rd0000644000176200001440000000503614660213551015172 0ustar liggesusers\name{CovControlMcd} \alias{CovControlMcd} % \title{ Constructor function for objects of class "CovControlMcd"} \description{ This function will create a control object \code{CovControlMcd} containing the control parameters for \code{CovMcd} } \usage{ CovControlMcd(alpha = 0.5, nsamp = 500, scalefn=NULL, maxcsteps=200, seed = NULL, trace= FALSE, use.correction = TRUE) } \arguments{ \item{alpha}{numeric parameter controlling the size of the subsets over which the determinant is minimized, i.e., \code{alpha*n} observations are used for computing the determinant. Allowed values are between 0.5 and 1 and the default is 0.5.} \item{nsamp}{ number of subsets used for initial estimates or \code{"best"}, \code{"exact"} or \code{"deterministic"}. Default is \code{nsamp = 500}. For \code{nsamp="best"} exhaustive enumeration is done, as long as the number of trials does not exceed 5000. For \code{"exact"}, exhaustive enumeration will be attempted however many samples are needed. In this case a warning message will be displayed saying that the computation can take a very long time. For \code{"deterministic"}, the \emph{deterministic} MCD is computed; as proposed by Hubert et al. (2012) it starts from the \eqn{h} most central observations of \emph{six} (deterministic) estimators. } \item{scalefn}{\code{\link{function}} to compute a robust scale estimate or character string specifying a rule determining such a function, see \code{\link[robustbase]{rrcov.control}}.} \item{maxcsteps}{maximal number of concentration steps in the deterministic MCD; should not be reached.} \item{seed}{starting value for random generator. Default is \code{seed = NULL}} \item{trace}{whether to print intermediate results. Default is \code{trace = FALSE}} \item{use.correction}{ whether to use finite sample correction factors. Default is \code{use.correction=TRUE}} } %\details{} \value{ A \code{CovControlMcd} object } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{Valentin Todorov \email{valentin.todorov@chello.at}} \examples{ ## the following two statements are equivalent ctrl1 <- new("CovControlMcd", alpha=0.75) ctrl2 <- CovControlMcd(alpha=0.75) data(hbk) CovMcd(hbk, control=ctrl1) } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/Qda-class.Rd0000644000176200001440000000523314443667016014275 0ustar liggesusers\name{Qda-class} \Rdversion{1.1} \docType{class} \alias{Qda-class} \alias{predict,Qda-method} \alias{show,Qda-method} \alias{summary,Qda-method} \title{Class "Qda" - virtual base class for all classic and robust QDA classes } \description{ The class \code{Qda} serves as a base class for deriving all other classes representing the results of classical and robust Quadratic Discriminant Analisys methods } \section{Objects from the Class}{A virtual Class: No objects may be created from it.} \section{Slots}{ \describe{ \item{\code{call}:}{the (matched) function call.} \item{\code{prior}:}{prior probabilities used, default to group proportions} \item{\code{counts}:}{number of observations in each class} \item{\code{center}:}{the group means} \item{\code{cov}:}{the group covariance matrices} \item{\code{covinv}:}{the inverse of the group covariance matrices} \item{\code{covdet}:}{the determinants of the group covariance matrices} \item{\code{method}:}{a character string giving the estimation method used} \item{\code{X}:}{the training data set (same as the input parameter x of the constructor function)} \item{\code{grp}:}{grouping variable: a factor specifying the class for each observation.} \item{\code{control}:}{object of class \code{"CovControl"} specifying which estimate and with what estimation options to use for the group means and covariances (or \code{NULL} for classical discriminant analysis)} } } \section{Methods}{ \describe{ \item{predict}{\code{signature(object = "Qda")}: calculates prediction using the results in \code{object}. An optional data frame or matrix in which to look for variables with which to predict. If omitted, the scores are used. If the original fit used a formula or a data frame or a matrix with column names, newdata must contain columns with the same names. Otherwise it must contain the same number of columns, to be used in the same order. } \item{show}{\code{signature(object = "Qda")}: prints the results } \item{summary}{\code{signature(object = "Qda")}: prints summary information } } } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} } \seealso{ \code{\link{QdaClassic}}, \code{\link{QdaClassic-class}}, \code{\link{QdaRobust-class}} } \examples{ showClass("Qda") } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/ionosphere.Rd0000644000176200001440000000442514443667016014642 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/datadoc.R \docType{data} \name{ionosphere} \alias{ionosphere} \title{Johns Hopkins University Ionosphere database.} \format{ A data frame with 351 rows and 33 variables: 32 measurements and one (the last, \code{Class}) grouping variable: 225 \code{'good'} and 126 \code{'bad'}. The original dataset at UCI contains 351 rows and 35 columns. The first 34 columns are features, the last column contains the classification label of 'g' and 'b'. The first feature is binary and the second one is only 0s, one grouping variable - factor with labels 'good' and 'bad'. } \source{ Source: Space Physics Group; Applied Physics Laboratory; Johns Hopkins University; Johns Hopkins Road; Laurel; MD 20723 Donor: Vince Sigillito (vgs@aplcen.apl.jhu.edu) The data have been taken from the UCI Repository Of Machine Learning Databases at \url{https://archive.ics.uci.edu/ml/datasets/ionosphere} This data set, with the original 34 features is available in the package \pkg{mlbench} and a different data set (refering to the same UCI repository) is available in the package \code{dprep} (archived on CRAN). } \usage{ data(ionosphere) } \description{ ''This radar data was collected by a system in Goose Bay, Labrador. This system consists of a phased array of 16 high-frequency antennas with a total transmitted power on the order of 6.4 kilowatts. The targets were free electrons in the ionosphere. "good" radar returns are those showing evidence of some type of structure in the ionosphere. "bad" returns are those that do not; their signals pass through the ionosphere. Received signals were processed using an autocorrelation function whose arguments are the time of a pulse and the pulse number. There were 17 described by 2 attributes per pulse number, corresponding to the complex values returned by the function resulting from the complex electromagnetic signal.'' [UCI archive] } \examples{ data(ionosphere) ionosphere[, 1:6] |> pairs() } \references{ Sigillito, V. G., Wing, S. P., Hutton, L. V., and Baker, K. B. (1989). Classification of radar returns from the ionosphere using neural networks. Johns Hopkins APL Technical Digest, 10, 262-266. } rrcov/man/isSingular.Rd0000644000176200001440000000157214443667016014607 0ustar liggesusers\name{isSingular-methods} \docType{methods} \alias{isSingular} \alias{isSingular-methods} \alias{isSingular,ANY-method} \alias{isSingular,Cov-method} \title{ Check if a covariance matrix (object of class 'Cov') is singular } \description{ Returns TRUE if the covariance matrix contained in a \code{\link{Cov-class}} object (or derived from) is singular. } \usage{ \S4method{isSingular}{Cov}(obj) } \arguments{ \item{obj}{an object of class (derived from) \code{"Cov"}.} } \section{Methods}{ \describe{ \item{isSingular}{\code{signature(x = Cov)}: Check if a covariance matrix (object of class \code{\link{Cov-class}}) is singular.} }} \seealso{ \code{\link{Cov-class}}, \code{\link{CovClassic}}, \code{\link{CovRobust-class}}. } \examples{ data(hbk) cc <- CovClassic(hbk) isSingular(cc) } \keyword{multivariate} rrcov/man/Linda.Rd0000644000176200001440000001021014443667016013503 0ustar liggesusers\name{Linda} \alias{Linda} \alias{Linda.formula} \alias{Linda.default} \title{ Robust Linear Discriminant Analysis } \description{ Robust linear discriminant analysis based on MCD and returns the results as an object of class \code{Linda} (aka constructor). } \usage{ Linda(x, ...) \method{Linda}{default}(x, grouping, prior = proportions, tol = 1.0e-4, method = c("mcd", "mcdA", "mcdB", "mcdC", "fsa", "mrcd", "ogk"), alpha=0.5, l1med=FALSE, cov.control, trace=FALSE, ...) } \arguments{ \item{x}{a matrix or data frame containing the explanatory variables (training set). } \item{grouping}{grouping variable: a factor specifying the class for each observation.} \item{prior}{prior probabilities, default to the class proportions for the training set.} \item{tol}{tolerance} \item{method}{method} \item{alpha}{this parameter measures the fraction of outliers the algorithm should resist. In MCD alpha controls the size of the subsets over which the determinant is minimized, i.e. alpha*n observations are used for computing the determinant. Allowed values are between 0.5 and 1 and the default is 0.5.} \item{l1med}{whether to use L1 median (space median) instead of MCD to compute the group means locations in order to center the data in methods \code{mcdB} and \code{mcdC}. useful in case of groups with small size. Default is \code{l1med = FALSE}.} \item{cov.control}{specifies which covariance estimator to use by providing a \code{\link{CovControl-class}} object. The default is \code{\link{CovControlMcd-class}} which will indirectly call \code{\link{CovMcd}}. If \code{cov.control=NULL} is specified, the classical estimates will be used by calling \code{\link{CovClassic}}}. \item{trace}{whether to print intermediate results. Default is \code{trace = FALSE}.} \item{\dots}{arguments passed to or from other methods} } \details{ details } \value{ Returns an S4 object of class \code{Linda} } \references{ Hawkins, D.M. and McLachlan, G.J. (1997) High-Breakdown Linear Discriminant Analysis, \emph{Journal of the American Statistical Association}, \bold{92}, 136--143. Todorov V. (2007) Robust selection of variables in linear discriminant analysis, \emph{Statistical Methods and Applications}, \bold{15}, 395--407, doi:10.1007/s10260-006-0032-6. Todorov, V. and Pires, A.M. (2007) Comparative Performance of Several Robust Linear Discriminant Analysis Methods. \emph{REVSTAT Statistical Journal}, \bold{5}, p 63--83. Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} } \seealso{ \code{\link[rrcov]{CovMcd}}, \code{\link[rrcov]{CovMrcd}} } \examples{ ## Example anorexia library(MASS) data(anorexia) ## start with the classical estimates lda <- LdaClassic(Treat~., data=anorexia) predict(lda)@classification ## try now the robust LDA with the default method (MCD with pooled whitin cov matrix) rlda <- Linda(Treat~., data= anorexia) predict(rlda)@classification ## try the other methods Linda(Treat~., data= anorexia, method="mcdA") Linda(Treat~., data= anorexia, method="mcdB") Linda(Treat~., data= anorexia, method="mcdC") ## try the Hawkins&McLachlan method ## use the default method grp <- anorexia[,1] grp <- as.factor(grp) x <- anorexia[,2:3] Linda(x, grp, method="fsa") ## Do DA with Linda and method mcdB or mcdC, when some classes ## have very few observations. Use L1 median instead of MCD ## to compute the group means (l1med=TRUE). data(fish) # remove observation #14 containing missing value fish <- fish[-14,] # The height and width are calculated as percentages # of the third length variable fish[,5] <- fish[,5]*fish[,4]/100 fish[,6] <- fish[,6]*fish[,4]/100 table(fish$Species) Linda(Species~., data=fish, l1med=TRUE) Linda(Species~., data=fish, method="mcdC", l1med=TRUE) } \keyword{robust} \keyword{multivariate} rrcov/man/CovClassic.Rd0000644000176200001440000000244614443667016014521 0ustar liggesusers\name{CovClassic} \alias{CovClassic} \alias{Cov} \title{Classical Estimates of Multivariate Location and Scatter} \concept{High breakdown point} \description{ Computes the classical estimates of multivariate location and scatter. Returns an S4 class \code{CovClassic} with the estimated \code{center}, \code{cov}, Mahalanobis distances and weights based on these distances. } \usage{ CovClassic(x, unbiased=TRUE) Cov(x, unbiased=TRUE) } \arguments{ \item{x}{a matrix or data frame. As usual, rows are observations and columns are variables. } \item{unbiased}{ whether to return the unbiased estimate of the covariance matrix. Default is \code{unbiased = TRUE}} } %\details{} \value{ An object of class \code{"CovClassic"}. } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } %\note{} \author{Valentin Todorov \email{valentin.todorov@chello.at}} \seealso{ \code{\link{Cov-class}}, \code{\link{CovClassic-class}} } \examples{ data(hbk) hbk.x <- data.matrix(hbk[, 1:3]) cv <- CovClassic(hbk.x) cv summary(cv) plot(cv) } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/CovControlOgk.Rd0000644000176200001440000000621614443667016015220 0ustar liggesusers\name{CovControlOgk} \alias{CovControlOgk} % \title{ Constructor function for objects of class "CovControlOgk" } \description{ This function will create a control object \code{CovControlOgk} containing the control parameters for \code{CovOgk} } \usage{ CovControlOgk(niter = 2, beta = 0.9, mrob = NULL, vrob = .vrobGK, smrob = "scaleTau2", svrob = "gk") } \arguments{ \item{niter}{ number of iterations, usually 1 or 2 since iterations beyond the second do not lead to improvement. } \item{beta}{ coverage parameter for the final reweighted estimate } \item{mrob}{ function for computing the robust univariate location and dispersion - one could use the \code{tau scale} defined in Yohai and Zamar (1998), see \code{\link[robustbase]{scaleTau2}}. The C version of this function defined by \code{smrob} is the default. } \item{vrob}{ function for computing robust estimate of covariance between two random vectors - one could use the function proposed by Gnanadesikan and Kettenring (1972), see \code{\link[robustbase]{covOGK}()}. The C version of this function defined by \code{svrob} is the default. } \item{smrob}{ a string indicating the name of the function for computing the robust univariate location and dispersion - defaults to \code{scaleTau2} - the scale tau function defined in Yohai and Zamar (1998) } \item{svrob}{ a string indicating the name of the function for computing robust estimate of covariance between two random vectors - defaults \code{gk}, the one proposed by Gnanadesikan and Kettenring (1972) } } \details{ If the user does not specify a scale and covariance function to be used in the computations or specifies one by using the arguments \code{smrob} and \code{svrob} (i.e. the names of the functions as strings), a native code written in C will be called which is by far faster than the R version. If the arguments \code{mrob} and \code{vrob} are not NULL, the specified functions will be used via the pure R implementation of the algorithm. This could be quite slow. } \value{ A \code{CovControlOgk} object } \references{ Maronna, R.A. and Zamar, R.H. (2002) Robust estimates of location and dispersion of high-dimensional datasets; \emph{Technometrics} \bold{44}(4), 307--317. Yohai, R.A. and Zamar, R.H. (1998) High breakdown point estimates of regression by means of the minimization of efficient scale \emph{JASA} \bold{86}, 403--413. Gnanadesikan, R. and John R. Kettenring (1972) Robust estimates, residuals, and outlier detection with multiresponse data. \emph{Biometrics} \bold{28}, 81--124. Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{Valentin Todorov \email{valentin.todorov@chello.at}} \examples{ ## the following two statements are equivalent ctrl1 <- new("CovControlOgk", beta=0.95) ctrl2 <- CovControlOgk(beta=0.95) data(hbk) CovOgk(hbk, control=ctrl1) } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/CovControlMrcd.Rd0000644000176200001440000000440714443667016015365 0ustar liggesusers\name{CovControlMrcd} \alias{CovControlMrcd} % \title{ Constructor function for objects of class "CovControlMrcd"} \description{ This function will create a control object \code{CovControlMrcd} containing the control parameters for \code{CovMrcd} } \usage{ CovControlMrcd(alpha = 0.5, h=NULL, maxcsteps=200, rho=NULL, target=c("identity", "equicorrelation"), maxcond=50, trace= FALSE) } \arguments{ \item{alpha}{numeric parameter controlling the size of the subsets over which the determinant is minimized, i.e., \code{alpha*n} observations are used for computing the determinant. Allowed values are between 0.5 and 1 and the default is 0.5.} \item{h}{the size of the subset (can be between ceiling(n/2) and n). Normally NULL and then it \code{h} will be calculated as \code{h=ceiling(alpha*n)}. If \code{h} is provided, \code{alpha} will be calculated as \code{alpha=h/n}.} \item{maxcsteps}{maximal number of concentration steps in the deterministic MCD; should not be reached.} \item{rho}{regularization parameter. Normally NULL and will be estimated from the data.} \item{target}{structure of the robust positive definite target matrix: a) "identity": target matrix is diagonal matrix with robustly estimated univariate scales on the diagonal or b) "equicorrelation": non-diagonal target matrix that incorporates an equicorrelation structure (see (17) in paper). Default is \code{target="identity"}} \item{maxcond}{maximum condition number allowed (see step 3.4 in algorithm 1). Default is \code{maxcond=50}} \item{trace}{whether to print intermediate results. Default is \code{trace = FALSE}} } %\details{} \value{ A \code{CovControlMrcd} object } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{Valentin Todorov \email{valentin.todorov@chello.at}} \examples{ ## the following two statements are equivalent ctrl1 <- new("CovControlMrcd", alpha=0.75) ctrl2 <- CovControlMrcd(alpha=0.75) data(hbk) CovMrcd(hbk, control=ctrl1) } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/covMest-deprecated.Rd0000644000176200001440000001216014443667016016200 0ustar liggesusers\name{covMest} \alias{covMest} % \title{Constrained M-Estimates of Location and Scatter} \concept{High breakdown point} \description{ Computes constrained M-Estimates of multivariate location and scatter based on the translated biweight function (\sQuote{t-biweight}) using a High breakdown point initial estimate. The default initial estimate is the Minimum Volume Ellipsoid computed with \code{\link{CovMve}}. The raw (not reweighted) estimates are taken and the covariance matrix is standardized to determinant 1. } \usage{ covMest(x, cor=FALSE, r = 0.45, arp = 0.05, eps=1e-3, maxiter=120, control, t0, S0) } \arguments{ \item{x}{a matrix or data frame. } \item{cor}{should the returned result include a correlation matrix? Default is \code{cor = FALSE}}. \item{r}{ required breakdown point. Allowed values are between \code{(n - p)/(2 * n)} and 1 and the default is 0.45} \item{arp}{ asympthotic rejection point, i.e. the fraction of points receiving zero weight (see Rocke (1996)). Default is \code{0.05}.} \item{eps}{ a numeric value specifying the relative precision of the solution of the M-estimate. Defaults to \code{1e-3}} \item{maxiter}{ maximum number of iterations allowed in the computation of the M-estimate. Defaults to 120} \item{control}{ a list with estimation options - same as these provided in the fucntion specification. If the control object is supplied, the parameters from it will be used. If parameters are passed also in the invocation statement, they will override the corresponding elements of the control object.} \item{t0}{ optional initial high breakdown point estimates of the location. If not supplied MVE will be used. } \item{S0}{ optional initial high breakdown point estimates of the scatter. If not supplied MVE will be used. } } \details{ Rocke (1996) has shown that the S-estimates of multivariate location and scatter in high dimensions can be sensitive to outliers even if the breakdown point is set to be near 0.5. To mitigate this problem he proposed to utilize the translated biweight (or t-biweight) method with a standardization step consisting of equating the median of \code{rho(d)} with the median under normality. This is then not an S-estimate, but is instead a constrained M-estimate. In order to make the smooth estimators to work, a reasonable starting point is necessary, which will lead reliably to a good solution of the estimator. In \code{covMest} the MVE computed by \code{\link{CovMve}} is used, but the user has the possibility to give her own initial estimates. } \note{ The psi, rho and weight functions for the M estimation are encapsulated in a virtual S4 class \code{PsiFun} from which a \code{PsiBwt} class, implementing the translated biweight (t-biweight), is dervied. The base class \code{PsiFun} contains also the M-iteration itself. Although not documented and not accessibale directly by the user these classes will form the bases for adding other functions (biweight, LWS, etc.) as well as S-estimates. } \author{Valentin Todorov \email{valentin.todorov@chello.at}, (some code from C. Becker - http://www.sfb475.uni-dortmund.de/dienst/de/content/struk-d/bereicha-d/tpa1softw-d.html) } \value{ An object of class \code{"mest"} which is basically a \code{\link{list}} with the following components. This class is "derived" from \code{"mcd"} so that the same generic functions - \code{print}, \code{plot}, \code{summary} - can be used. NOTE: this is going to change - in one of the next revisions \code{covMest} will return an S4 class \code{"mest"} which is derived (i.e. \code{contains}) form class \code{"cov"}. \item{center}{the final estimate of location.} \item{cov}{the final estimate of scatter.} \item{cor}{the estimate of the correlation matrix (only if \code{cor = TRUE}).} \item{mah}{mahalanobis distances of the observations using the M-estimate of the location and scatter.} \item{X}{the input data as a matrix.} \item{n.obs}{total number of observations.} \item{method}{character string naming the method (M-Estimates).} \item{call}{the call used (see \code{\link{match.call}}).} } \references{ D.L.Woodruff and D.M.Rocke (1994) Computable robust estimation of multivariate location and shape on high dimension using compound estimators, \emph{Journal of the American Statistical Association}, \bold{89}, 888--896. D.M.Rocke (1996) Robustness properties of S-estimates of multivariate location and shape in high dimension, \emph{Annals of Statistics}, \bold{24}, 1327-1345. D.M.Rocke and D.L.Woodruff (1996) Identification of outliers in multivariate data \emph{Journal of the American Statistical Association}, \bold{91}, 1047--1061. Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \seealso{ \code{\link[robustbase]{covMcd}} } \keyword{robust} \keyword{multivariate} rrcov/man/CovMMest-class.Rd0000644000176200001440000000414614443667016015267 0ustar liggesusers\name{CovMMest-class} \Rdversion{1.1} \docType{class} \alias{CovMMest-class} \title{ MM Estimates of Multivariate Location and Scatter } \description{ This class, derived from the virtual class \code{"CovRobust"} accomodates MM Estimates of multivariate location and scatter.} \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("CovMMest", ...)}, but the usual way of creating \code{CovSest} objects is a call to the function \code{CovMMest} which serves as a constructor. } \section{Slots}{ \describe{ \item{\code{det}, \code{flag}, \code{iter}, \code{crit}:}{from the \code{"\linkS4class{CovRobust}"} class. } \item{c1}{tuning parameter of the loss function for MM-estimation (depend on control parameters \code{eff} and \code{eff.shape}). Can be computed by the internal function \code{.csolve.bw.MM(p, eff, eff.shape=TRUE)}. For the tuning parameters of the underlying S-estimate see the slot \code{sest} and \code{"\linkS4class{CovSest}"}. } \item{sest}{an \code{CovSest} object containing the initial S-estimate. } \item{\code{call}, \code{cov}, \code{center}, \code{n.obs}, \code{mah}, \code{method}, \code{singularity}, \code{X}:}{from the \code{"\linkS4class{Cov}"} class. } } } \section{Extends}{ Class \code{"\linkS4class{CovRobust}"}, directly. Class \code{"\linkS4class{Cov}"}, by class \code{"\linkS4class{CovRobust}"}. } \section{Methods}{ No methods defined with class "CovMMest" in the signature. } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} } \seealso{ \code{\link{CovMMest}}, \code{\link{Cov-class}}, \code{\link{CovRobust-class}} } \examples{ showClass("CovMMest") } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/CovMest-class.Rd0000644000176200001440000000360014443667016015144 0ustar liggesusers\name{CovMest-class} \Rdversion{1.1} \docType{class} \alias{CovMest-class} \title{Constrained M-estimates of Multivariate Location and Scatter } \description{ This class, derived from the virtual class "CovRobust" accomodates constrained M-Estimates of multivariate location and scatter based on the translated biweight function (\sQuote{t-biweight}) using a High breakdown point initial estimate (Minimum Covariance Determinant - \sQuote{Fast MCD})} \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("CovMest", ...)}, but the usual way of creating \code{CovMest} objects is a call to the function \code{CovMest} which serves as a constructor. } \section{Slots}{ \describe{ \item{\code{vt}:}{Object of class \code{"vector"} - vector of weights (v)} \item{\code{iter}, \code{crit}, \code{wt}:}{from the \code{"\linkS4class{CovRobust}"} class. } \item{\code{call}, \code{cov}, \code{center}, \code{n.obs}, \code{mah}, \code{method}, \code{singularity}, \code{X}:}{from the \code{"\linkS4class{Cov}"} class. } } } \section{Extends}{ Class \code{"\linkS4class{CovRobust}"}, directly. Class \code{"\linkS4class{Cov}"}, by class \code{"\linkS4class{CovRobust}"}. } \section{Methods}{ No methods defined with class "CovMest" in the signature. } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{Valentin Todorov \email{valentin.todorov@chello.at}} %\note{} \seealso{ \code{\link{CovMest}}, \code{\link{Cov-class}}, \code{\link{CovRobust-class}} } \examples{ showClass("CovMest") } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/CovSde-class.Rd0000644000176200001440000000313714443667016014754 0ustar liggesusers\name{CovSde-class} \Rdversion{1.1} \docType{class} \alias{CovSde-class} \title{ Stahel-Donoho Estimates of Multivariate Location and Scatter } \description{ This class, derived from the virtual class \code{"CovRobust"} accomodates Stahel-Donoho estimates of multivariate location and scatter.} \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("CovSde", ...)}, but the usual way of creating \code{CovSde} objects is a call to the function \code{CovSde} which serves as a constructor. } \section{Slots}{ \describe{ \item{\code{iter}, \code{crit}, \code{wt}:}{from the \code{"\linkS4class{CovRobust}"} class. } \item{\code{call}, \code{cov}, \code{center}, \code{n.obs}, \code{mah}, \code{method}, \code{singularity}, \code{X}:}{from the \code{"\linkS4class{Cov}"} class. } } } \section{Extends}{ Class \code{"\linkS4class{CovRobust}"}, directly. Class \code{"\linkS4class{Cov}"}, by class \code{"\linkS4class{CovRobust}"}. } \section{Methods}{ No methods defined with class "CovSde" in the signature. } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} } \seealso{ \code{\link{CovSde}}, \code{\link{Cov-class}}, \code{\link{CovRobust-class}} } \examples{ showClass("CovSde") } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/CovMve.Rd0000644000176200001440000001167314443667016013671 0ustar liggesusers\name{CovMve} \alias{CovMve} % \title{ Robust Location and Scatter Estimation via MVE } \description{ Computes a robust multivariate location and scatter estimate with a high breakdown point, using the \sQuote{MVE} (Minimum Volume Ellipsoid) estimator. } \usage{ CovMve(x, alpha = 1/2, nsamp = 500, seed = NULL, trace = FALSE, control) } \arguments{ \item{x}{a matrix or data frame. } \item{alpha}{numeric parameter controlling the size of the subsets over which the determinant is minimized, i.e., \code{alpha*n} observations are used for computing the determinant. Allowed values are between 0.5 and 1 and the default is 0.5.} \item{nsamp}{ number of subsets used for initial estimates or \code{"best"} or \code{"exact"}. Default is \code{nsamp = 500}. For \code{nsamp="best"} exhaustive enumeration is done, as long as the number of trials does not exceed 5000. For \code{"exact"}, exhaustive enumeration will be attempted however many samples are needed. In this case a warning message will be displayed saying that the computation can take a very long time.} \item{seed}{starting value for random generator. Default is \code{seed = NULL}} \item{trace}{whether to print intermediate results. Default is \code{trace = FALSE}} \item{control}{ a control object (S4) of class \code{\link{CovControlMve-class}} containing estimation options - same as these provided in the fucntion specification. If the control object is supplied, the parameters from it will be used. If parameters are passed also in the invocation statement, they will override the corresponding elements of the control object.} } \details{ This function computes the minimum volume ellipsoid estimator of location and scatter and returns an S4 object of class \code{\link{CovMve-class}} containing the estimates. The approximate estimate is based on a subset of size \code{alpha*n} with an enclosing ellipsoid of smallest volume. The mean of the best found subset provides the raw estimate of the location, and the rescaled covariance matrix is the raw estimate of scatter. The rescaling of the raw covariance matrix is by \code{median(dist)/qchisq(0.5, p)} and this scale factor is returned in the slot \code{raw.cnp2}. Currently no finite sample corrction factor is applied. The Mahalanobis distances of all observations from the location estimate for the raw covariance matrix are calculated, and those points within the 97.5% point under Gaussian assumptions are declared to be good. The final (reweightd) estimates are the mean and rescaled covariance of the good points. The reweighted covariance matrix is rescaled by \code{1/pgamma(qchisq(alpha, p)/2, p/2 + 1)/alpha} (see Croux and Haesbroeck, 1999) and this scale factor is returned in the slot \code{cnp2}. The search for the approximate solution is made over ellipsoids determined by the covariance matrix of \code{p+1} of the data points and applying a simple but effective improvement of the subsampling procedure as described in Maronna et al. (2006), p. 198. Although there exists no formal proof of this improvement (as for MCD and LTS), simulations show that it can be recommended as an approximation of the MVE. } \note{ Main reason for implementing the MVE estimate was that it is the recommended initial estimate for S estimation (see Maronna et al. (2006), p. 199) and will be used by default in \code{\link{CovMest}} (after removing the correction factors from the covariance matrix and rescaling to determinant 1). } \value{ An S4 object of class \code{\link{CovMve-class}} which is a subclass of the virtual class \code{\link{CovRobust-class}}. } \references{ P. J. Rousseeuw and A. M. Leroy (1987) \emph{Robust Regression and Outlier Detection.} Wiley. C. Croux and G. Haesbroeck (1999). Influence function and efficiency of the minimum covariance determinant scatter matrix estimator. \emph{Journal of Multivariate Analysis}, \bold{71}, 161--190. R. A. Maronna, D. Martin and V. Yohai (2006). \emph{Robust Statistics: Theory and Methods}. Wiley, New York. Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} and Matias Salibian-Barrera \email{matias@stat.ubc.ca} } \seealso{ \code{\link[MASS]{cov.rob}} from package \pkg{MASS} } \examples{ data(hbk) hbk.x <- data.matrix(hbk[, 1:3]) CovMve(hbk.x) ## the following three statements are equivalent c1 <- CovMve(hbk.x, alpha = 0.75) c2 <- CovMve(hbk.x, control = CovControlMve(alpha = 0.75)) ## direct specification overrides control one: c3 <- CovMve(hbk.x, alpha = 0.75, control = CovControlMve(alpha=0.95)) c1 } \keyword{robust} \keyword{multivariate} rrcov/man/QdaCov-class.Rd0000644000176200001440000000427214443667016014747 0ustar liggesusers\name{QdaCov-class} \docType{class} \alias{QdaCov-class} \title{Class "QdaCov" - Robust methods for Quadratic Discriminant Analysis } \description{ Robust quadratic discriminant analysis is performed by replacing the classical group means and withing group covariance matrices by their robust equivalents. } \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("QdaCov", ...)} but the usual way of creating \code{QdaCov} objects is a call to the function \code{QdaCov} which serves as a constructor. } \section{Slots}{ \describe{ \item{\code{call}:}{The (matched) function call.} \item{\code{prior}:}{Prior probabilities used, default to group proportions} \item{\code{counts}:}{number of observations in each class} \item{\code{center}:}{the group means} \item{\code{cov}:}{the group covariance matrices} \item{\code{covinv}:}{the inverse of the group covariance matrices} \item{\code{covdet}:}{the determinants of the group covariance matrices} \item{\code{method}:}{a character string giving the estimation method used} \item{\code{X}:}{the training data set (same as the input parameter x of the constructor function)} \item{\code{grp}:}{grouping variable: a factor specifying the class for each observation.} \item{\code{control}:}{Object of class \code{"CovControl"} specifying which estimate to use for the group means and covariances } } } \section{Extends}{ Class \code{"\linkS4class{QdaRobust}"}, directly. Class \code{"\linkS4class{Qda}"}, by class "QdaRobust", distance 2. } \section{Methods}{No methods defined with class "QdaCov" in the signature.} \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} } \seealso{ \code{\link{QdaRobust-class}}, \code{\link{Qda-class}}, \code{\link{QdaClassic}}, \code{\link{QdaClassic-class}} } \examples{ showClass("QdaCov") } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/getEllipse.Rd0000644000176200001440000000225414443667016014562 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/plot-utils.R \name{getEllipse} \alias{getEllipse} \title{Calculates the points for drawing a confidence ellipsoid} \usage{ getEllipse(loc = c(0, 0), cov = matrix(c(1, 0, 0, 1), ncol = 2), crit = 0.975) } \arguments{ \item{loc}{location vector} \item{cov}{a \code{pXp} covariance matrix} \item{crit}{the confidence level, default is \code{crit=0.975}} } \value{ A matrix with two columns containing the calculated points. } \description{ A simple function to calculate the points of a confidence ellipsoid, by default \code{dist=qchisq(0.975, 2)} } \examples{ data(hbk) cc <- cov.wt(hbk) e1 <- getEllipse(loc=cc$center[1:2], cov=cc$cov[1:2,1:2]) e2 <- getEllipse(loc=cc$center[1:2], cov=cc$cov[1:2,1:2], crit=0.99) plot(X2~X1, data=hbk, xlim=c(min(X1, e1[,1], e2[,1]), max(X1,e1[,1], e2[,1])), ylim=c(min(X2, e1[,2], e2[,2]), max(X2,e1[,2], e2[,2]))) lines(e1, type="l", lty=1, col="red") lines(e2, type="l", lty=2, col="blue") legend("topleft", legend=c(0.975, 0.99), lty=1:2, col=c("red", "blue")) } \author{ Valentin Todorov, \email{valentin.todorov@chello.at} } rrcov/man/T2.test.Rd0000644000176200001440000000732714443667016013736 0ustar liggesusers\name{T2.test} \alias{T2.test} \alias{T2.test.default} \alias{T2.test.formula} \title{Robust Hotelling T2 test} \description{ Performs one and two sample Hotelling T2 tests as well as robust one-sample Hotelling T2 test } \usage{ T2.test(x, \dots) \method{T2.test}{default}(x, y = NULL, mu = 0, conf.level = 0.95, method=c("c", "mcd"), \dots) \method{T2.test}{formula}(formula, data, subset, na.action, \dots) } \arguments{ \item{x}{a (non-empty) numeric data frame or matrix.} \item{y}{an optional (non-empty) numeric data frame or matrix.} \item{mu}{an optional (non-empty) numeric vector of data values (or a single number which will be repeated p times) indicating the true value of the mean (or difference in means if you are performing a two sample test).} \item{conf.level}{confidence level of the interval} \item{method}{the method to be used - 'c' for sample mean and covariance matrix and 'mcd' for minimum covariance determinant estimator. A two-sample MCD based T2-test is not yet implemented.} \item{formula}{a formula of the form \code{lhs ~ rhs} where \code{lhs} is a numeric data frame or matrix giving the observations and \code{rhs} a factor with two levels giving the corresponding groups.} \item{data}{an optional matrix or data frame (or similar: see \code{\link{model.frame}}) containing the variables in the formula \code{formula}. By default the variables are taken from \code{environment(formula)}.} \item{subset}{an optional vector specifying a subset of observations to be used (currently not used)} \item{na.action}{a function which indicates what should happen when the data contain \code{NA}s. Defaults to \code{getOption("na.action")} (currently only "na.rm" used)} \item{\dots}{further arguments to be passed to or from methods.} } \details{ The formula interface is only applicable for the two-sample tests. } \value{ A list with class \code{"htest"} containing the following components: \item{statistic}{the value of the T2-statistic.} \item{parameter}{the degrees of freedom for the T2-statistic.} \item{p.value}{the p-value for the test.} \item{conf.int}{a confidence interval for the mean vector appropriate to the specified alternative hypothesis.} \item{estimate}{the estimated mean vector or vectors depending on whether it was a one-sample test or a two-sample test.} \item{null.value}{the specified hypothesized value of the mean or mean difference depending on whether it was a one-sample test or a two-sample test.} \item{alternative}{a character string describing the alternative hypothesis.} \item{method}{a character string indicating what type of T2-test was performed.} \item{data.name}{a character string giving the name(s) of the data.} } \references{ Willems G., Pison G., Rousseeuw P. and Van Aelst S. (2002), A robust hotelling test, \emph{Metrika}, \bold{55}, 125--138. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} } %\note{} \seealso{ \code{\link{CovMcd}}} \examples{ ## One-sample classical test data(delivery) delivery.x <- delivery[,1:2] T2.test(delivery.x) ## One-sample robust test data(delivery) delivery.x <- delivery[,1:2] T2.test(delivery.x, method="mcd") ## Two-sample classical test data(hemophilia) grp <-as.factor(hemophilia[,3]) x <- hemophilia[which(grp==levels(grp)[1]),1:2] y <- hemophilia[which(grp==levels(grp)[2]),1:2] T2.test(x,y) ## or using the formula interface T2.test(as.matrix(hemophilia[,-3])~hemophilia[,3]) \dontrun{ ## Two-sample robust test T2.test(x,y, method="mcd") ## error - not yet implemented }} \keyword{htest} \keyword{multivariate} rrcov/man/fish.Rd0000644000176200001440000000553014522251476013413 0ustar liggesusers\name{fish} \alias{fish} \docType{data} \title{ Fish Catch Data Set} \description{ The Fish Catch data set contains measurements on 159 fish caught in the lake Laengelmavesi, Finland. } \usage{data(fish)} \format{ A data frame with 159 observations on the following 7 variables. \describe{ \item{\code{Weight}}{Weight of the fish (in grams)} \item{\code{Length1}}{Length from the nose to the beginning of the tail (in cm)} \item{\code{Length2}}{Length from the nose to the notch of the tail (in cm)} \item{\code{Length3}}{Length from the nose to the end of the tail (in cm)} \item{\code{Height}}{Maximal height as \% of Length3} \item{\code{Width}}{Maximal width as \% of Length3} \item{\code{Species}}{Species} } } \details{ The Fish Catch data set contains measurements on 159 fish caught in the lake Laengelmavesi, Finland. For the 159 fishes of 7 species the weight, length, height, and width were measured. Three different length measurements are recorded: from the nose of the fish to the beginning of its tail, from the nose to the notch of its tail and from the nose to the end of its tail. The height and width are calculated as percentages of the third length variable. This results in 6 observed variables, Weight, Length1, Length2, Length3, Height, Width. Observation 14 has a missing value in variable Weight, therefore this observation is usually excluded from the analysis. The last variable, Species, represents the grouping structure: the 7 species are 1=Bream, 2=Whitewish, 3=Roach, 4=Parkki, 5=Smelt, 6=Pike, 7=Perch. This data set was also analyzed in the context of robust Linear Discriminant Analysis by Todorov (2007), Todorov and Pires (2007). } \source{ Journal of Statistical Education, Fish Catch Data Set, [https://jse.amstat.org/datasets/fishcatch.dat.txt] accessed November, 2023. } \references{ Todorov, V. (2007 Robust selection of variables in linear discriminant analysis, \emph{Statistical Methods and Applications}, \bold{15}, 395--407, doi:10.1007/s10260-006-0032-6. Todorov, V. and Pires, A.M. (2007) Comparative performance of several robust linear discriminant analysis methods, \emph{REVSTAT Statistical Journal}, \bold{5}, 63--83. } \examples{ data(fish) # remove observation #14 containing missing value fish <- fish[-14,] # The height and width are calculated as percentages # of the third length variable fish[,5] <- fish[,5]*fish[,4]/100 fish[,6] <- fish[,6]*fish[,4]/100 # plot a matrix of scatterplots pairs(fish[1:6], main="Fish Catch Data", pch=21, bg=c("red", "green3", "blue", "yellow", "magenta", "violet", "turquoise")[unclass(fish$Species)]) } \keyword{datasets} rrcov/man/PcaHubert.Rd0000644000176200001440000002174414443667016014347 0ustar liggesusers\name{PcaHubert} \alias{PcaHubert} \alias{PcaHubert.formula} \alias{PcaHubert.default} \title{ ROBPCA - ROBust method for Principal Components Analysis } \description{ The ROBPCA algorithm was proposed by Hubert et al (2005) and stays for 'ROBust method for Principal Components Analysis'. It is resistant to outliers in the data. The robust loadings are computed using projection-pursuit techniques and the MCD method. Therefore ROBPCA can be applied to both low and high-dimensional data sets. In low dimensions, the MCD method is applied. } \usage{ PcaHubert(x, ...) \method{PcaHubert}{default}(x, k = 0, kmax = 10, alpha = 0.75, mcd = TRUE, skew=FALSE, maxdir=250, scale = FALSE, signflip = TRUE, crit.pca.distances = 0.975, trace=FALSE, \dots) \method{PcaHubert}{formula}(formula, data = NULL, subset, na.action, \dots) } \arguments{ \item{formula}{a formula with no response variable, referring only to numeric variables.} \item{data}{an optional data frame (or similar: see \code{\link{model.frame}}) containing the variables in the formula \code{formula}.} \item{subset}{an optional vector used to select rows (observations) of the data matrix \code{x}.} \item{na.action}{a function which indicates what should happen when the data contain \code{NA}s. The default is set by the \code{na.action} setting of \code{\link{options}}, and is \code{\link{na.fail}} if that is unset. The default is \code{\link{na.omit}}.} \item{\dots}{arguments passed to or from other methods.} \item{x}{a numeric matrix (or data frame) which provides the data for the principal components analysis.} \item{k}{number of principal components to compute. If \code{k} is missing, or \code{k = 0}, the algorithm itself will determine the number of components by finding such \code{k} that \eqn{l_k/l_1 >= 10.E-3} and \eqn{\Sigma_{j=1}^k l_j/\Sigma_{j=1}^r l_j >= 0.8}. It is preferable to investigate the scree plot in order to choose the number of components and then run again. Default is \code{k=0}. } \item{kmax}{maximal number of principal components to compute. Default is \code{kmax=10}. If \code{k} is provided, \code{kmax} does not need to be specified, unless \code{k} is larger than 10.} \item{alpha}{this parameter measures the fraction of outliers the algorithm should resist. In MCD alpha controls the size of the subsets over which the determinant is minimized, i.e. alpha*n observations are used for computing the determinant. Allowed values are between 0.5 and 1 and the default is 0.75. } \item{mcd}{Logical - when the number of variables is sufficiently small, the loadings are computed as the eigenvectors of the MCD covariance matrix, hence the function \code{\link{CovMcd}()} is automatically called. The number of principal components is then taken as k = rank(x). Default is \code{mcd=TRUE}. If \code{mcd=FALSE}, the ROBPCA algorithm is always applied.} \item{skew}{Logical - whether the adjusted outlyingness algorithm for skewed data (Hubert et al., 2009) will be used, default is \code{skew=FALSE}.} \item{maxdir}{maximal number of random directions to use for computing the outlyingness (or the adjusted outlyingness when \code{skew=TRUE}) of the data points, see \code{\link[robustbase]{adjOutlyingness}} for more details.. Default is \code{maxdir=250}. If the number \code{n} of observations is small all possible \code{n*(n-1)/2} pairs of observations are taken to generate the directions.} \item{scale}{a value indicating whether and how the variables should be scaled. If \code{scale=FALSE} (default) or \code{scale=NULL} no scaling is performed (a vector of 1s is returned in the scale slot). If \code{scale=TRUE} the data are scaled to have unit variance. Alternatively it can be a function like \code{sd} or \code{mad} or a vector of length equal the number of columns of \code{x}. The value is passed to the underlying function and the result returned is stored in the scale slot. Default is \code{scale=FALSE}.} \item{signflip}{a logical value indicating wheather to try to solve the sign indeterminancy of the loadings - ad hoc approach setting the maximum element in a singular vector to be positive. Default is \code{signflip = TRUE}} \item{crit.pca.distances}{criterion to use for computing the cutoff values for the orthogonal and score distances. Default is 0.975.} \item{trace}{whether to print intermediate results. Default is \code{trace = FALSE}} } \details{ \code{PcaHubert}, serving as a constructor for objects of class \code{\link{PcaHubert-class}} is a generic function with "formula" and "default" methods. The calculation is done using the ROBPCA method of Hubert et al (2005) which can be described briefly as follows. For details see the relevant references. Let \code{n} denote the number of observations, and \code{p} the number of original variables in the input data matrix \code{X}. The ROBPCA algorithm finds a robust center \code{M (p x 1)} of the data and a loading matrix \code{P} which is \code{(p x k)} dimensional. Its columns are orthogonal and define a new coordinate system. The scores T, an \code{(n x k)} matrix, are the coordinates of the centered observations with respect to the loadings: \deqn{T=(X-M)P} The ROBPCA algorithm also yields a robust covariance matrix (often singular) which can be computed as \deqn{S=PLP^t} where \eqn{L} is the diagonal matrix with the eigenvalues \eqn{l_1, \dots, l_k}. This is done in the following three main steps: \bold{Step 1:} The data are preprocessed by reducing their data space to the subspace spanned by the \code{n} observations. This is done by singular value decomposition of the input data matrix. As a result the data are represented using at most \code{n-1=rank(X)} without loss of information. \bold{Step 2:} In this step for each data point a measure of outlyingness is computed. For this purpose the high-dimensional data points are projected on many univariate directions, each time the univariate MCD estimator of location and scale is computed and the standardized distance to the center is measured. The largest of these distances (over all considered directions) is the outlyingness measure of the data point. The \code{h} data points with smallest outlyingness measure are used to compute the covariance matrix \eqn{\Sigma_h} and to select the number \code{k} of principal components to retain. This is done by finding such \code{k} that \eqn{l_k/l_1 >= 10.E-3} and \eqn{\Sigma_{j=1}^k l_j/\Sigma_{j=1}^r l_j >= 0.8} Alternatively the number of principal components \code{k} can be specified by the user after inspecting the scree plot. \bold{Step 3:} The data points are projected on the k-dimensional subspace spanned by the \code{k} eigenvectors corresponding to the largest \code{k} eigenvalues of the matrix \eqn{\Sigma_h}. The location and scatter of the projected data are computed using the reweighted MCD estimator and the eigenvectors of this scatter matrix yield the robust principal components. } \value{ An S4 object of class \code{\link{PcaHubert-class}} which is a subclass of the virtual class \code{\link{PcaRobust-class}}. } \references{ M. Hubert, P. J. Rousseeuw, K. Vanden Branden (2005), ROBPCA: a new approach to robust principal components analysis, \emph{Technometrics}, \bold{47}, 64--79. M. Hubert, P. J. Rousseeuw and T. Verdonck (2009), Robust PCA for skewed data and its outlier map, \emph{Computational Statistics & Data Analysis}, \bold{53}, 2264--2274. Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} } \note{ The ROBPCA algorithm is implemented on the bases of the Matlab implementation, available as part of \emph{LIBRA, a Matlab Library for Robust Analysis} to be found at www.wis.kuleuven.ac.be/stat/robust.html } \examples{ ## PCA of the Hawkins Bradu Kass's Artificial Data ## using all 4 variables data(hbk) pca <- PcaHubert(hbk) pca ## Compare with the classical PCA prcomp(hbk) ## or PcaClassic(hbk) ## If you want to print the scores too, use print(pca, print.x=TRUE) ## Using the formula interface PcaHubert(~., data=hbk) ## To plot the results: plot(pca) # distance plot pca2 <- PcaHubert(hbk, k=2) plot(pca2) # PCA diagnostic plot (or outlier map) ## Use the standard plots available for prcomp and princomp screeplot(pca) biplot(pca) ## Restore the covraiance matrix py <- PcaHubert(hbk) cov.1 <- py@loadings \%*\% diag(py@eigenvalues) \%*\% t(py@loadings) cov.1 } \keyword{robust} \keyword{multivariate} rrcov/man/PcaProj-class.Rd0000644000176200001440000000332414443667016015125 0ustar liggesusers\name{PcaProj-class} \Rdversion{1.1} \docType{class} \alias{PcaProj-class} \alias{getQuan,PcaProj-method} \title{Class "PcaProj" - Robust PCA using PP - Croux and Ruiz-Gazen (2005) algorithm } \description{ Holds the results of an approximation of the PP-estimators for PCA by a fast and simple algorithm: Croux and Ruiz-Gazen (2005) algorithm. } \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("PcaProj", ...)} but the usual way of creating \code{PcaProj} objects is a call to the function \code{PcaProj()} which serves as a constructor. } \section{Slots}{ \describe{ \item{\code{call}, \code{center}, \code{scale}, \code{rank}, \code{loadings}, \code{eigenvalues}, \code{scores}, \code{k}, \code{sd}, \code{od}, \code{cutoff.sd}, \code{cutoff.od}, \code{flag}, \code{n.obs}:}{ from the \code{"\linkS4class{Pca}"} class. } } } \section{Extends}{ Class \code{"\linkS4class{PcaRobust}"}, directly. Class \code{"\linkS4class{Pca}"}, by class \code{"\linkS4class{PcaRobust}"}, distance 2. } \section{Methods}{ \describe{ \item{getQuan}{\code{signature(obj = "PcaProj")}: ... } } } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} } \seealso{ \code{\link{PcaRobust-class}}, \code{\link{Pca-class}}, \code{\link{PcaClassic}}, \code{\link{PcaClassic-class}} } \examples{ showClass("PcaProj") } \keyword{robust} \keyword{multivariate} rrcov/man/CovControlMrcd-class.Rd0000644000176200001440000000562114443667016016467 0ustar liggesusers\name{CovControlMrcd-class} \Rdversion{1.1} \docType{class} \alias{CovControlMrcd-class} \alias{restimate,CovControlMrcd-method} \title{Class 'CovControlMrcd' - contains control parameters for CovMrcd()} \description{ This class extends the \code{CovControl} class and contains the control parameters for \code{"CovMrcd"} } \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("CovControlMrcd", ...)} or by calling the constructor-function \code{CovControlMrcd}. } \section{Slots}{ \describe{ \item{\code{alpha}:}{numeric parameter controlling the size of the subsets over which the determinant is minimized, i.e., \code{alpha*n} observations are used for computing the determinant. Allowed values are between 0.5 and 1 and the default is 0.5.} \item{h}{the size of the subset (can be between ceiling(n/2) and n). Normally NULL and then it \code{h} will be calculated as \code{h=ceiling(alpha*n)}. If \code{h} is provided, \code{alpha} will be calculated as \code{alpha=h/n}.} \item{maxcsteps}{maximal number of concentration steps in the deterministic MCD; should not be reached.} \item{rho}{regularization parameter. Normally NULL and will be estimated from the data.} \item{target}{structure of the robust positive definite target matrix: a) "identity": target matrix is diagonal matrix with robustly estimated univariate scales on the diagonal or b) "equicorrelation": non-diagonal target matrix that incorporates an equicorrelation structure (see (17) in paper).} \item{maxcond}{maximum condition number allowed (see step 3.4 in algorithm 1).} \item{\code{trace}, \code{tolSolve}:}{from the \code{"\linkS4class{CovControl}"} class. } } } \section{Extends}{ Class \code{"\linkS4class{CovControl}"}, directly. } \section{Methods}{ \describe{ \item{restimate}{\code{signature(obj = "CovControlMrcd")}: the generic function \code{restimate} allows the different methods for robust estimation to be used polymorphically - this function will call \code{CovMrcd} passing it the control object and will return the obtained \code{CovRobust} object} }} \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{Valentin Todorov \email{valentin.todorov@chello.at}} \seealso{ \code{"\linkS4class{CovControlMcd}"} } \examples{ ## the following two statements are equivalent ctrl1 <- new("CovControlMrcd", alpha=0.75) ctrl2 <- CovControlMrcd(alpha=0.75) data(hbk) CovMrcd(hbk, control=ctrl1) } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/CovControlOgk-class.Rd0000644000176200001440000000530314443667016016317 0ustar liggesusers\name{CovControlOgk-class} \Rdversion{1.1} \docType{class} \alias{CovControlOgk-class} \alias{restimate,CovControlOgk-method} \title{ Class 'CovControlOgk' - contains control parameters for CovOgk } \description{ This class extends the \code{CovControl} class and contains the control parameters for \code{"CovOgk"} } \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("CovControlOgk", ...)} or by calling the constructor-function \code{CovControlOgk}. } \section{Slots}{ \describe{ \item{niter}{ number of iterations, usually 1 or 2 since iterations beyond the second do not lead to improvement. } \item{beta}{ coverage parameter for the final reweighted estimate } \item{mrob}{ function for computing the robust univariate location and dispersion - defaults to the \code{tau scale} defined in Yohai and Zamar (1998) } \item{vrob}{ function for computing robust estimate of covariance between two random vectors - defaults the one proposed by Gnanadesikan and Kettenring (1972) } \item{smrob}{A string indicating the name of the function for computing the robust univariate location and dispersion - defaults to \code{scaleTau2} - the scale 'tau' function defined in Yohai and Zamar (1998)} \item{svrob}{A string indicating the name of the function for computing robust estimate of covariance between two random vectors - defaults to \code{gk}, the one proposed by Gnanadesikan and Kettenring (1972). } \item{\code{trace}, \code{tolSolve}:}{from the \code{"\linkS4class{CovControl}"} class. } } } \section{Extends}{ Class \code{"\linkS4class{CovControl}"}, directly. } \section{Methods}{ \describe{ \item{restimate}{\code{signature(obj = "CovControlOgk")}: the generic function \code{restimate} allowes the different methods for robust estimation to be used polymorphically - this function will call \code{CovOgk} passing it the control object and will return the obtained \code{CovRobust} object} }} \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{Valentin Todorov \email{valentin.todorov@chello.at}} \examples{ ## the following two statements are equivalent ctrl1 <- new("CovControlOgk", beta=0.95) ctrl2 <- CovControlOgk(beta=0.95) data(hbk) CovOgk(hbk, control=ctrl1) } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/machines.Rd0000644000176200001440000000476714443667016014267 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/datadoc.R \docType{data} \name{machines} \alias{machines} \title{Computer Hardware} \format{ A data frame with 209 rows and 8 variables The variables are as follows: \itemize{ \item MMIN: minimum main memory in kilobytes (integer) \item MMAX: maximum main memory in kilobytes (integer) \item CACH: cache memory in kilobytes (integer) \item CHMIN: minimum channels in units (integer) \item CHMAX: maximum channels in units (integer) \item PRP: published relative performance (integer) \item ERP: estimated relative performance from the original article (integer) } } \source{ \href{http://archive.ics.uci.edu/ml/datasets/Computer+Hardware?ref=datanews.io}{UCI Archive} } \usage{ data(machines) } \description{ A data set containing relative CPU performance data of 209 machines on 8 variables. are predictive, one (\code{PRP}) is the goal field and one (\code{ERP}) is the linear regression's guess. The estimated relative performance values were estimated by the authors using a linear regression method. See their article (Ein-Dor and Feldmesser, CACM 4/87, pp 308-317) for more details on how the relative performance values were set. } \examples{ data(machines) ## Compute the medcouple of each variable of the Computer hardware data data.frame(MC=round(apply(machines, 2, mc),2)) ## Plot a pairwise scaterplot matrix pairs(machines[,1:6]) mcd <- CovMcd(machines[,1:6]) plot(mcd, which="pairs") ## Remove the rownames (too long) rownames(machines) <- NULL ## Start with robust PCA based on MCD (P << n) (pca1 <- PcaHubert(machines, k=3)) plot(pca1, main="ROBPCA-MCD", off=0.03) ## PCA with the projection algoritm of Hubert (pca2 <- PcaHubert(machines, k=3, mcd=FALSE)) plot(pca2, main="ROBPCA-SD", off=0.03) ## PCA with the adjusted for skewness algorithm of Hubert et al (2009) (pca3 <- PcaHubert(machines, k=3, mcd=FALSE, skew=TRUE)) plot(pca3, main="ROBPCA-AO", off=0.03) } \references{ Phillip Ein-Dor and Jacob Feldmesser (1987), Attributes of the performance of central processing units: A relative performance prediction model, \emph{Communications of the ACM}, \bold{30}, 4, pp 308-317. M. Hubert, P. J. Rousseeuw and T. Verdonck (2009), Robust PCA for skewed data and its outlier map, \emph{Computational Statistics & Data Analysis}, \bold{53}, 2264--2274. } \keyword{datasets} rrcov/man/biplot.Rd0000644000176200001440000000337714443667016013765 0ustar liggesusers\name{biplot-methods} \docType{methods} \alias{biplot} \alias{biplot-methods} \alias{biplot,ANY-method} \alias{biplot,Pca-method} \title{ Biplot for Principal Components (objects of class 'Pca') } \description{ Produces a biplot from an object (derived from) \code{\link{Pca-class}}. } \usage{ \S4method{biplot}{Pca}(x, choices=1L:2L, scale=1, \dots) } \arguments{ \item{x}{an object of class (derived from) \code{"Pca"}.} \item{choices}{length 2 vector specifying the components to plot. Only the default is a biplot in the strict sense.} \item{scale}{ The variables are scaled by \code{lambda ^ scale} and the observations are scaled by \code{lambda ^ (1-scale)} where \code{lambda} are the singular values as computed by the Principal Components function. Normally \code{0 <= scale <= 1}, and a warning will be issued if the specified \code{scale} is outside this range. } \item{\dots}{optional arguments to be passed to the internal graphical functions.} } \section{Side Effects}{ a plot is produced on the current graphics device. } \section{Methods}{ \describe{ \item{biplot}{\code{signature(x = Pca)}: Plot a biplot, i.e. represent both the observations and variables of a matrix of multivariate data on the same plot. See also \code{\link{biplot.princomp}}.} }} \references{ Gabriel, K. R. (1971). The biplot graphical display of matrices with applications to principal component analysis. \emph{Biometrika}, \bold{58}, 453--467. } \seealso{ \code{\link{Pca-class}}, \code{\link{PcaClassic}}, \code{\link{PcaRobust-class}}. } \examples{ require(graphics) biplot(PcaClassic(USArrests, k=2)) } \keyword{multivariate} \keyword{hplot} rrcov/man/Pca-class.Rd0000644000176200001440000001357514443667016014303 0ustar liggesusers\name{Pca-class} \docType{class} \alias{Pca-class} \alias{getCenter,Pca-method} \alias{getScale,Pca-method} \alias{getEigenvalues,Pca-method} \alias{getLoadings,Pca-method} \alias{getPrcomp,Pca-method} \alias{getScores,Pca-method} \alias{getSdev,Pca-method} \alias{plot,Pca,missing-method} \alias{show,Pca-method} \alias{predict,Pca-method} \alias{predict} \alias{screeplot,Pca-method} \alias{screeplot} \alias{summary,Pca-method} \title{Class "Pca" - virtual base class for all classic and robust PCA classes } \description{ The class \code{Pca} searves as a base class for deriving all other classes representing the results of the classical and robust Principal Component Analisys methods } \section{Objects from the Class}{A virtual Class: No objects may be created from it.} \section{Slots}{ \describe{ \item{\code{call}:}{Object of class \code{"language"} } \item{\code{center}:}{Object of class \code{"vector"} the center of the data } \item{\code{scale}:}{Object of class \code{"vector"} the scaling applied to each variable of the data } \item{\code{rank}:}{Object of class \code{"numeric"} the rank of the data matrix } \item{\code{loadings}:}{Object of class \code{"matrix"} the matrix of variable loadings (i.e., a matrix whose columns contain the eigenvectors) } \item{\code{eigenvalues}:}{Object of class \code{"vector"} the eigenvalues } \item{\code{scores}:}{Object of class \code{"matrix"} the scores - the value of the projected on the space of the principal components data (the centred (and scaled if requested) data multiplied by the \code{loadings} matrix) is returned. Hence, \code{cov(scores)} is the diagonal matrix \code{diag(eigenvalues)} } \item{\code{k}:}{Object of class \code{"numeric"} number of (choosen) principal components } \item{\code{sd}:}{Object of class \code{"Uvector"} Score distances within the robust PCA subspace } \item{\code{od}:}{Object of class \code{"Uvector"} Orthogonal distances to the robust PCA subspace } \item{\code{cutoff.sd}:}{Object of class \code{"numeric"} Cutoff value for the score distances} \item{\code{cutoff.od}:}{Object of class \code{"numeric"} Cutoff values for the orthogonal distances } \item{\code{flag}:}{Object of class \code{"Uvector"} The observations whose score distance is larger than cutoff.sd or whose orthogonal distance is larger than cutoff.od can be considered as outliers and receive a flag equal to zero. The regular observations receive a flag 1 } \item{crit.pca.distances}{criterion to use for computing the cutoff values for the orthogonal and score distances. Default is 0.975.} \item{\code{n.obs}:}{Object of class \code{"numeric"} the number of observations } \item{\code{eig0}:}{Object of class \code{"vector"} all eigenvalues } \item{\code{totvar0}:}{Object of class \code{"numeric"} the total variance explained (\code{=sum(eig0)}) } } } \section{Methods}{ \describe{ \item{getCenter}{\code{signature(obj = "Pca")}: center of the data } \item{getScale}{\code{signature(obj = "Pca")}: return the scaling applied to each variable } \item{getEigenvalues}{\code{signature(obj = "Pca")}: the eigenvalues of the covariance/correlation matrix, though the calculation is actually done with the singular values of the data matrix) } \item{getLoadings}{\code{signature(obj = "Pca")}: returns the matrix \code{loadings} (i.e., a matrix whose columns contain the eigenvectors). The function prcomp returns this matrix in the element rotation. } \item{getPrcomp}{\code{signature(obj = "Pca")}: returns an S3 object \code{prcomp} for compatibility with the functions prcomp() and princomp(). Thus the standard plots screeplot() and biplot() can be used} \item{getScores}{\code{signature(obj = "Pca")}: returns the rotated data (the centred (and scaled if requested) data multiplied by the loadings matrix). } \item{getSdev}{\code{signature(obj = "Pca")}: returns the standard deviations of the principal components (i.e., the square roots of the eigenvalues of the covariance/correlation matrix, though the calculation is actually done with the singular values of the data matrix) } \item{plot}{\code{signature(x = "Pca")}: produces a distance plot (if \code{k=rank}) or distance-distance plot (if\code{k= 10.E-3} and \eqn{\Sigma_{j=1}^k l_j/\Sigma_{j=1}^r l_j >= 0.8}. It is preferable to investigate the scree plot in order to choose the number of components and then run again. Default is \code{k=ncol(x)}. } \item{kmax}{maximal number of principal components to compute. Default is \code{kmax=10}. If \code{k} is provided, \code{kmax} does not need to be specified, unless \code{k} is larger than 10.} \item{cov.control}{specifies which covariance estimator to use by providing a \code{\link{CovControl-class}} object. The default is \code{\link{CovControlMcd-class}} which will indirectly call \code{\link{CovMcd}}. If \code{cov.control=NULL} is specified, the classical estimates will be used by calling \code{\link{CovClassic}}}. \item{scale}{a value indicating whether and how the variables should be scaled to have unit variance (only possible if there are no constant variables). If \code{scale=FALSE} (default) or \code{scale=NULL} no scaling is performed (a vector of 1s is returned in the scale slot). If \code{scale=TRUE} the data are scaled by the estimator used to compute the covariance matrix (\code{MCD} by default). Alternatively it can be a function like \code{sd} or \code{Qn} or a vector of length equal the number of columns of \code{x}. The value is passed to the underlying function and the result returned is stored in the scale slot. Default is \code{scale=FALSE}.} \item{signflip}{a logical value indicating wheather to try to solve the sign indeterminancy of the loadings - ad hoc approach setting the maximum element in a singular vector to be positive. Default is \code{signflip = TRUE}} \item{crit.pca.distances}{criterion to use for computing the cutoff values for the orthogonal and score distances. Default is 0.975.} \item{trace}{whether to print intermediate results. Default is \code{trace = FALSE}} } \details{ \code{PcaCov}, serving as a constructor for objects of class \code{\link{PcaCov-class}} is a generic function with "formula" and "default" methods. For details see the relevant references. } \value{ An S4 object of class \code{\link{PcaCov-class}} which is a subclass of the virtual class \code{\link{PcaRobust-class}}. } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} } %\note{} \examples{ ## PCA of the Hawkins Bradu Kass's Artificial Data ## using all 4 variables data(hbk) pca <- PcaCov(hbk) pca ## Compare with the classical PCA prcomp(hbk) ## or PcaClassic(hbk) ## If you want to print the scores too, use print(pca, print.x=TRUE) ## Using the formula interface PcaCov(~., data=hbk) ## To plot the results: plot(pca) # distance plot pca2 <- PcaCov(hbk, k=2) plot(pca2) # PCA diagnostic plot (or outlier map) ## Use the standard plots available for for prcomp and princomp screeplot(pca) biplot(pca) } \keyword{robust} \keyword{multivariate} rrcov/man/SummaryLda-class.Rd0000644000176200001440000000217714443667016015652 0ustar liggesusers\name{SummaryLda-class} \docType{class} \alias{SummaryLda-class} \alias{show,SummaryLda-method} \title{ Class "SummaryLda" - summary of "Lda" objects } \description{ Contains summary information about an \code{Lda} object - Linear Discriminant Analysis object } \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("SummaryLda", ...)}, but most often by invoking 'summary' on an "Lda" object. They contain values meant for printing by 'show'. } \section{Slots}{ \describe{ \item{\code{ldaobj}:}{Object of class \code{"Lda"}} } } \section{Methods}{ \describe{ \item{show}{\code{signature(object = "SummaryLda")}: display the object } } } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{Valentin Todorov \email{valentin.todorov@chello.at}} %\note{} \seealso{ \code{\link{Lda-class}} } \examples{ showClass("SummaryLda") } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/pca.distances.Rd0000644000176200001440000000335214443667016015204 0ustar liggesusers\name{pca.distances} \alias{pca.distances} \title{ Compute score and orthogonal distances for Principal Components (objects of class 'Pca') } \description{ Compute score and orthogonal distances for an object (derived from)\code{\link{Pca-class}}. } \usage{ pca.distances(obj, data, r, crit=0.975) } \arguments{ \item{obj}{an object of class (derived from) \code{"Pca"}.} \item{data}{The data matrix for which the \code{"Pca"} object was computed.} \item{r}{rank of data} \item{crit}{Criterion to use for computing the cutoff values.} } \details{ This function calculates the score and orthogonal distances and the appropriate cutoff values for identifying outlying observations. The computed values are used to create a vector a of flags, one for each observation, identifying the outliers. } \value{ An S4 object of class derived from the virtual class \code{\link{Pca-class}} - the same object passed to the function, but with the score and orthogonal distances as well as their cutoff values and the corresponding flags appended to it. } \references{ M. Hubert, P. J. Rousseeuw, K. Vanden Branden (2005), ROBPCA: a new approach to robust principal components analysis, \emph{Technometrics}, \bold{47}, 64--79. Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{Valentin Todorov \email{valentin.todorov@chello.at}} \examples{ ## PCA of the Hawkins Bradu Kass's Artificial Data ## using all 4 variables data(hbk) pca <- PcaHubert(hbk) pca.distances(pca, hbk, rankMM(hbk)) } \keyword{robust} \keyword{multivariate} rrcov/man/pca.scoreplot.Rd0000644000176200001440000000233014443667016015234 0ustar liggesusers\name{pca.scoreplot} \alias{pca.scoreplot} \title{ Score plot for Principal Components (objects of class 'Pca') } \description{ Produces a score plot from an object (derived from) \code{\link{Pca-class}}. } \usage{ pca.scoreplot(obj, i=1, j=2, main, id.n, \dots) } \arguments{ \item{obj}{an object of class (derived from) \code{"Pca"}.} \item{i}{First score coordinate, defaults to \code{i=1}.} \item{j}{Second score coordinate, defaults to \code{j=2}.} \item{main}{The main title of the plot.} \item{id.n}{Number of observations to identify by a label. If missing and the total number of observations is less or equal to 10, all observations will be labelled.} \item{\dots}{Optional arguments to be passed to the internal graphical functions.} } %\details{} %\value{} %\references{} %\note{} \author{Valentin Todorov \email{valentin.todorov@chello.at}} \seealso{ \code{\link{Pca-class}}, \code{\link{PcaClassic}}, \code{\link{PcaRobust-class}}. } \examples{ require(graphics) ## PCA of the Hawkins Bradu Kass's Artificial Data ## using all 4 variables data(hbk) pca <- PcaHubert(hbk) pca pca.scoreplot(pca) } \keyword{robust} \keyword{multivariate} rrcov/man/CovControlMve-class.Rd0000644000176200001440000000471414443667016016333 0ustar liggesusers\name{CovControlMve-class} \docType{class} \alias{CovControlMve-class} \alias{restimate,CovControlMve-method} \title{Class 'CovControlMve' - contains control parameters for CovMve } \description{ This class extends the \code{CovControl} class and contains the control parameters for \code{"CovMve"} } \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("CovControlMve", ...)} or by calling the constructor-function \code{CovControlMve}. } \section{Slots}{ \describe{ \item{\code{alpha}:}{numeric parameter controlling the size of the subsets over which the determinant is minimized, i.e., \code{alpha*n} observations are used for computing the determinant. Allowed values are between 0.5 and 1 and the default is 0.5.} \item{\code{nsamp}:}{ number of subsets used for initial estimates or \code{"best"} or \code{"exact"}. Default is \code{nsamp = 500}. For \code{nsamp="best"} exhaustive enumeration is done, as long as the number of trials does not exceed 5000. For \code{"exact"}, exhaustive enumeration will be attempted however many samples are needed. In this case a warning message will be displayed saying that the computation can take a very long time.} \item{\code{seed}:}{starting value for random generator. Default is \code{seed = NULL}} \item{\code{trace}, \code{tolSolve}:}{from the \code{"\linkS4class{CovControl}"} class. } } } \section{Extends}{ Class \code{"\linkS4class{CovControl}"}, directly. } \section{Methods}{ \describe{ \item{restimate}{\code{signature(obj = "CovControlMve")}: the generic function \code{restimate} allowes the different methods for robust estimation to be used polymorphically - this function will call \code{CovMve} passing it the control object and will return the obtained \code{CovRobust} object} }} \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{Valentin Todorov \email{valentin.todorov@chello.at}} \examples{ ## the following two statements are equivalent ctrl1 <- new("CovControlMve", alpha=0.75) ctrl2 <- CovControlMve(alpha=0.75) data(hbk) CovMve(hbk, control=ctrl1) } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/diabetes.Rd0000644000176200001440000000513614443667016014247 0ustar liggesusers\name{diabetes} \alias{diabetes} \docType{data} \title{Reaven and Miller diabetes data} \description{ The data set contains five measurements made on 145 non-obese adult patients classified into three groups. The three primary variables are glucose intolerance (area under the straight line connecting glucose levels), insulin response to oral glucose (area under the straight line connecting insulin levels) and insulin resistance (measured by the steady state plasma glucose (SSPG) determined after chemical suppression of endogenous insulin secretion). Two additional variables, the relative weight and fasting plasma glucose, are also included. Reaven and Miller, following Friedman and Rubin (1967), applied cluster analysis to the three primary variables and identified three clusters: "normal", "chemical diabetic", and "overt diabetic" subjects. The column \code{group} contains the classifications of the subjects into these three groups, obtained by current medical criteria. } \usage{ data(diabetes) } \format{A data frame with the following variables: \describe{ \item{rw}{relative weight, expressed as the ratio of actual weight to expected weight, given the person's height.} \item{fpg}{fasting plasma glucose level.} \item{glucose}{area under plasma glucose curve after a three hour oral glucose tolerance test (OGTT).} \item{insulin}{area under plasma insulin curve after a three hour oral glucose tolerance test (OGTT).} \item{sspg}{Steady state plasma glucose, a measure of insulin resistance.} \item{group}{the type of diabetes: a factor with levels \code{normal}, \code{chemical} and \code{overt}.}} } \source{ Reaven, G. M. and Miller, R. G. (1979). An attempt to define the nature of chemical diabetes using a multidimensional analysis. \emph{Diabetologia} 16, 17--24. Andrews, D. F. and Herzberg, A. M. (1985). \emph{Data: A Collection of Problems from Many Fields for the Student and Research Worker}, Springer-Verlag, Ch. 36. } \references{ Reaven, G. M. and Miller, R. G. (1979). An attempt to define the nature of chemical diabetes using a multidimensional analysis. \emph{Diabetologia} 16, 17--24. Friedman, H. P. and Rubin, J. (1967). On some invariant criteria for grouping data. \emph{Journal of the American Statistical Association} \bold{62}, 1159--1178. Hawkins, D. M. and McLachlan, G. J., 1997. High-breakdown linear discriminant analysis. \emph{Journal of the American Statistical Association} \bold{92} (437), 136--143. } \examples{ data(diabetes) (cc <- Linda(group~insulin+glucose+sspg, data=diabetes)) (pr <- predict(cc)) } \keyword{datasets} rrcov/man/SummaryCovRobust-class.Rd0000644000176200001440000000263414443667016017076 0ustar liggesusers\name{SummaryCovRobust-class} \docType{class} \alias{SummaryCovRobust-class} \alias{isClassic,SummaryCovRobust-method} \alias{show,SummaryCovRobust-method} \title{Class "SummaryCovRobust" - summary of "CovRobust" objects } \description{ Summary information for CovRobust objects meants for printing by 'show' } \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("SummaryCovRobust", ...)}, but most often by invoking 'summary' on an "Cov" object. They contain values meant for printing by 'show'. } \section{Slots}{ \describe{ \item{\code{covobj}:}{Object of class \code{"Cov"}} \item{\code{evals}:}{Eigenvalues of the covariance or correlation matrix} } } \section{Extends}{ Class \code{"SummaryCov"}, directly. } \section{Methods}{ \describe{ \item{show}{\code{signature(object = "SummaryCovRobust")}: ... } } } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{Valentin Todorov \email{valentin.todorov@chello.at}} %\note{} \seealso{ \code{\link{CovRobust-class}}, \code{\link{SummaryCov-class}} } \examples{ data(hbk) hbk.x <- data.matrix(hbk[, 1:3]) cv <- CovMest(hbk.x) cv summary(cv) } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/PcaLocantore.Rd0000644000176200001440000001252414443667016015040 0ustar liggesusers\name{PcaLocantore} \alias{PcaLocantore} \alias{PcaLocantore.formula} \alias{PcaLocantore.default} \title{ Spherical Principal Components} \description{ The Spherical Principal Components procedure was proposed by Locantore et al., (1999) as a functional data analysis method. The idea is to perform classical PCA on the data, projected onto a unit sphere. The estimates of the eigenvectors are consistent and the procedure is extremely fast. The simulations of Maronna (2005) show that this method has very good performance. } \usage{ PcaLocantore(x, ...) \method{PcaLocantore}{default}(x, k = ncol(x), kmax = ncol(x), delta = 0.001, na.action = na.fail, scale = FALSE, signflip = TRUE, crit.pca.distances = 0.975, trace=FALSE, \dots) \method{PcaLocantore}{formula}(formula, data = NULL, subset, na.action, \dots) } \arguments{ \item{formula}{a formula with no response variable, referring only to numeric variables.} \item{data}{an optional data frame (or similar: see \code{\link{model.frame}}) containing the variables in the formula \code{formula}.} \item{subset}{an optional vector used to select rows (observations) of the data matrix \code{x}.} \item{na.action}{a function which indicates what should happen when the data contain \code{NA}s. The default is set by the \code{na.action} setting of \code{\link{options}}, and is \code{\link{na.fail}} if that is unset. The default is \code{\link{na.omit}}.} \item{\dots}{arguments passed to or from other methods.} \item{x}{a numeric matrix (or data frame) which provides the data for the principal components analysis.} \item{k}{number of principal components to compute. If \code{k} is missing, or \code{k = 0}, the algorithm itself will determine the number of components by finding such \code{k} that \eqn{l_k/l_1 >= 10.E-3} and \eqn{\Sigma_{j=1}^k l_j/\Sigma_{j=1}^r l_j >= 0.8}. It is preferable to investigate the scree plot in order to choose the number of components and then run again. Default is \code{k=ncol(x)}. } \item{kmax}{maximal number of principal components to compute. Default is \code{kmax=10}. If \code{k} is provided, \code{kmax} does not need to be specified, unless \code{k} is larger than 10.} \item{delta}{an accuracy parameter} \item{scale}{a value indicating whether and how the variables should be scaled to have unit variance (only possible if there are no constant variables). If \code{scale=FALSE} (default) or \code{scale=NULL} no scaling is performed (a vector of 1s is returned in the scale slot). If \code{scale=TRUE} the data are scaled by \code{mad}. Alternatively it can be a function like \code{sd} or \code{Qn} or a vector of length equal the number of columns of \code{x}. The value is passed to the underlying function and the result returned is stored in the scale slot. Default is \code{scale=FALSE}.} \item{signflip}{a logical value indicating wheather to try to solve the sign indeterminancy of the loadings - ad hoc approach setting the maximum element in a singular vector to be positive. Default is \code{signflip = TRUE}} \item{crit.pca.distances}{criterion to use for computing the cutoff values for the orthogonal and score distances. Default is 0.975.} \item{trace}{whether to print intermediate results. Default is \code{trace = FALSE}} } \details{ \code{PcaLocantore}, serving as a constructor for objects of class \code{\link{PcaLocantore-class}} is a generic function with "formula" and "default" methods. For details see the relevant references. } \value{ An S4 object of class \code{\link{PcaLocantore-class}} which is a subclass of the virtual class \code{\link{PcaRobust-class}}. } \references{ N. Locantore, J. Marron, D. Simpson, N. Tripoli, J. Zhang and K. Cohen K. (1999), Robust principal components for functional data. Test, 8, 1-28. R. Maronna, D. Martin and V. Yohai (2006), Robust Statistics: Theory and Methods. Wiley, New York. R. Maronna (2005). Principal components and orthogonal regression based on robust scales. Technometrics, 47, 264-273. Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} The SPC algorithm is implemented on the bases of the available from the web site of the book Maronna et al. (2006) code \url{https://www.wiley.com/legacy/wileychi/robust_statistics/} } \examples{ ## PCA of the Hawkins Bradu Kass's Artificial Data ## using all 4 variables data(hbk) pca <- PcaLocantore(hbk) pca ## Compare with the classical PCA prcomp(hbk) ## or PcaClassic(hbk) ## If you want to print the scores too, use print(pca, print.x=TRUE) ## Using the formula interface PcaLocantore(~., data=hbk) ## To plot the results: plot(pca) # distance plot pca2 <- PcaLocantore(hbk, k=2) plot(pca2) # PCA diagnostic plot (or outlier map) ## Use the standard plots available for for prcomp and princomp screeplot(pca) biplot(pca) } \keyword{robust} \keyword{multivariate} rrcov/man/CovOgk-class.Rd0000644000176200001440000000437214443667016014763 0ustar liggesusers\name{CovOgk-class} \Rdversion{1.1} \docType{class} \alias{CovOgk-class} \title{ OGK Estimates of Multivariate Location and Scatter } \description{ This class, derived from the virtual class \code{"CovRobust"} accomodates OGK Estimates of multivariate location and scatter computed by the algorithm proposed by Marona and Zamar (2002). } \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("CovOgk", ...)}, but the usual way of creating \code{CovOgk} objects is a call to the function \code{CovOgk} which serves as a constructor. } \section{Slots}{ \describe{ \item{\code{raw.cov}:}{Object of class \code{"matrix"} the raw (not reweighted) estimate of covariance matrix } \item{\code{raw.center}:}{Object of class \code{"vector"} - the raw (not reweighted) estimate of the location vector} \item{\code{raw.mah}:}{Object of class \code{"Uvector"} - mahalanobis distances of the observations based on the raw estimate of the location and scatter } \item{\code{raw.wt}:}{Object of class \code{"Uvector"} - weights of the observations based on the raw estimate of the location and scatter } \item{\code{iter}, \code{crit}, \code{wt}:}{from the \code{"\linkS4class{CovRobust}"} class. } \item{\code{call}, \code{cov}, \code{center}, \code{n.obs}, \code{mah}, \code{method}, \code{singularity}, \code{X}:}{from the \code{"\linkS4class{Cov}"} class. } } } \section{Extends}{ Class \code{"\linkS4class{CovRobust}"}, directly. Class \code{"\linkS4class{Cov}"}, by class \code{"\linkS4class{CovRobust}"}. } \section{Methods}{ No methods defined with class "CovOgk" in the signature. } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} } \seealso{ \code{\link{CovMcd-class}}, \code{\link{CovMest-class}} } \examples{ showClass("CovOgk") } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/CovSest.Rd0000644000176200001440000001721414443667016014055 0ustar liggesusers\encoding{latin1} \name{CovSest} \alias{CovSest} \title{ S Estimates of Multivariate Location and Scatter } \concept{High breakdown point} \description{ Computes S-Estimates of multivariate location and scatter based on Tukey's biweight function using a fast algorithm similar to the one proposed by Salibian-Barrera and Yohai (2006) for the case of regression. Alternativley, the Ruppert's SURREAL algorithm, bisquare or Rocke type estimation can be used. } \usage{ CovSest(x, bdp = 0.5, arp = 0.1, eps = 1e-5, maxiter = 120, nsamp = 500, seed = NULL, trace = FALSE, tolSolve = 1e-14, scalefn, maxisteps=200, initHsets = NULL, save.hsets = missing(initHsets) || is.null(initHsets), method = c("sfast", "surreal", "bisquare", "rocke", "suser", "sdet"), control, t0, S0, initcontrol) } \arguments{ \item{x}{ a matrix or data frame. } \item{bdp}{a numeric value specifying the required breakdown point. Allowed values are between \code{(n - p)/(2 * n)} and 1 and the default is \code{bdp=0.5}. } \item{arp}{a numeric value specifying the asympthotic rejection point (for the Rocke type S estimates), i.e. the fraction of points receiving zero weight (see Rocke (1996)). Default is \code{arp=0.1}. } \item{eps}{a numeric value specifying the relative precision of the solution of the S-estimate (bisquare and Rocke type). Default is to \code{eps=1e-5}. } \item{maxiter}{maximum number of iterations allowed in the computation of the S-estimate (bisquare and Rocke type). Default is \code{maxiter=120}. } \item{nsamp}{the number of random subsets considered. The default is different for the different methods: (i) for \code{sfast} it is \code{nsamp = 20}, (ii) for \code{surreal} it is \code{nsamp = 600*p} and (iii) for \code{bisquare} or \code{rocke} it is \code{nsamp = 500}.} \item{seed}{starting value for random generator. Default is \code{seed = NULL}.} \item{trace}{whether to print intermediate results. Default is \code{trace = FALSE}.} \item{tolSolve}{numeric tolerance to be used for inversion (\code{\link{solve}}) of the covariance matrix in \code{\link{mahalanobis}}.} \item{scalefn}{\code{\link{function}} to compute a robust scale estimate or character string specifying a rule determining such a function. Used for computing the "deterministic" S-estimates (\code{method="sdet"}). If \code{scalefn} is missing or is \code{NULL}, the function is selected depending on the data set size, following the recomendation of Hubert et al. (2012) - \code{\link[robustbase]{Qn}} if \code{n <= 1000} and \code{\link[robustbase]{scaleTau2}} otherwise.} \item{maxisteps}{maximal number of concentration steps in the deterministic S-estimates; should not be reached.} \item{initHsets}{NULL or a \eqn{K x n} integer matrix of initial subsets of observations of size (specified by the indices in \code{1:n}).} \item{save.hsets}{(for deterministic S-estimates) logical indicating if the initial subsets should be returned as \code{initHsets}.} \item{method}{ Which algorithm to use: 'sfast'=C implementation of FAST-S, 'surreal'=SURREAL, 'bisquare', 'rocke'. The method 'suser' currently calls the R implementation of FAST-S but in the future will allow the user to supply own \code{rho} function. The method 'sdet' invokes the deterministic algorihm of Hubert et al. (2012).} \item{control}{ a control object (S4) of class \code{\link{CovControlSest-class}} containing estimation options - same as these provided in the fucntion specification. If the control object is supplied, the parameters from it will be used. If parameters are passed also in the invocation statement, they will override the corresponding elements of the control object.} \item{t0}{ optional initial HBDP estimate for the center } \item{S0}{ optional initial HBDP estimate for the covariance matrix } \item{initcontrol}{ optional control object to be used for computing the initial HBDP estimates } } \details{ Computes multivariate S-estimator of location and scatter. The computation will be performed by one of the following algorithms: \describe{ \item{FAST-S}{An algorithm similar to the one proposed by Salibian-Barrera and Yohai (2006) for the case of regression} \item{SURREAL}{Ruppert's SURREAL algorithm when \code{method} is set to 'surreal'} \item{BISQUARE}{Bisquare S-Estimate with \code{method} set to 'bisquare'} \item{ROCKE}{Rocke type S-Estimate with \code{method} set to 'rocke'} } Except for the last algorithm, \emph{ROCKE}, all other use Tukey biweight loss function. The tuning parameters used in the loss function (as determined by bdp) are returned in the slots \code{cc} and \code{kp} of the result object. They can be computed by the internal function \code{.csolve.bw.S(bdp, p)}. } \value{ An S4 object of class \code{\link{CovSest-class}} which is a subclass of the virtual class \code{\link{CovRobust-class}}. } \references{ M. Hubert, P. Rousseeuw and T. Verdonck (2012) A deterministic algorithm for robust location and scatter. \emph{Journal of Computational and Graphical Statistics} \bold{21}(3), 618--637. M. Hubert, P. Rousseeuw, D. Vanpaemel and T. Verdonck (2015) The DetS and DetMM estimators for multivariate location and scatter. \emph{Computational Statistics and Data Analysis} \bold{81}, 64--75. H.P. Lopuhaä (1989) On the Relation between S-estimators and M-estimators of Multivariate Location and Covariance. \emph{Annals of Statistics} \bold{17} 1662--1683. D. Ruppert (1992) Computing S Estimators for Regression and Multivariate Location/Dispersion. \emph{Journal of Computational and Graphical Statistics} \bold{1} 253--270. M. Salibian-Barrera and V. Yohai (2006) A fast algorithm for S-regression estimates, \emph{Journal of Computational and Graphical Statistics}, \bold{15}, 414--427. R. A. Maronna, D. Martin and V. Yohai (2006). \emph{Robust Statistics: Theory and Methods}. Wiley, New York. Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at}, Matias Salibian-Barrera \email{matias@stat.ubc.ca} and Victor Yohai \email{vyohai@dm.uba.ar}. See also the code from Kristel Joossens, K.U. Leuven, Belgium and Ella Roelant, Ghent University, Belgium. } %\note{} %\seealso{} \examples{ library(rrcov) data(hbk) hbk.x <- data.matrix(hbk[, 1:3]) cc <- CovSest(hbk.x) cc ## summry and different types of plots summary(cc) plot(cc) plot(cc, which="dd") plot(cc, which="pairs") plot(cc, which="xydist") ## the following four statements are equivalent c0 <- CovSest(hbk.x) c1 <- CovSest(hbk.x, bdp = 0.25) c2 <- CovSest(hbk.x, control = CovControlSest(bdp = 0.25)) c3 <- CovSest(hbk.x, control = new("CovControlSest", bdp = 0.25)) ## direct specification overrides control one: c4 <- CovSest(hbk.x, bdp = 0.40, control = CovControlSest(bdp = 0.25)) c1 summary(c1) plot(c1) ## Use the SURREAL algorithm of Ruppert cr <- CovSest(hbk.x, method="surreal") cr ## Use Bisquare estimation cr <- CovSest(hbk.x, method="bisquare") cr ## Use Rocke type estimation cr <- CovSest(hbk.x, method="rocke") cr ## Use Deterministic estimation cr <- CovSest(hbk.x, method="sdet") cr } \keyword{robust} \keyword{multivariate} rrcov/man/getCenter-methods.Rd0000644000176200001440000000341114443667016016042 0ustar liggesusers\name{getCenter-methods} \docType{methods} \title{Accessor methods to the essential slots of Cov and its subclasses} \alias{getCenter} \alias{getCenter-methods} \alias{getCov} \alias{getCov-methods} \alias{getCorr} \alias{getCorr-methods} \alias{getData} \alias{getData-methods} \alias{getDistance} \alias{getDistance-methods} \alias{getEvals} \alias{getEvals-methods} \alias{getDet} \alias{getDet-methods} \alias{getShape} \alias{getShape-methods} \alias{getFlag} \alias{getFlag-methods} \alias{getMeth} \alias{getMeth-methods} \alias{isClassic} \alias{isClassic-methods} \alias{getRaw} \alias{getRaw-methods} \alias{names} \alias{names-methods} \alias{names,Cov-method} \alias{$-methods} \alias{$,Cov-method} \usage{ getCenter(obj) getCov(obj) getCorr(obj) getData(obj) getDistance(obj) getEvals(obj) getDet(obj) getShape(obj) getFlag(obj, prob=0.975) getMeth(obj) isClassic(obj) getRaw(obj) } \arguments{ \item{obj}{an object of class \code{"Cov"} or of a class derived from \code{"Cov"}} \item{prob}{optional argument for \code{getFlag} - probability, defaults to 0.975} } \description{ Accessor methods to the slots of objects of class\code{Cov} and its subclasses } \section{Methods}{ \describe{ \item{obj = "Cov"}{generic functions - see \code{getCenter}, \code{getCov}, \code{getCorr}, \code{getData}, \code{getDistance}, \code{getEvals}, \code{getDet}, \code{getShape}, \code{getFlag}, \code{isClassic}} \item{obj = "CovRobust"}{generic functions - see \code{getCenter}, \code{getCov}, \code{getCorr}, \code{getData}, \code{getDistance}, \code{getEvals}, \code{getDet}, \code{getShape}, \code{getFlag}, \code{getMeth}, \code{isClassic}} }} \keyword{methods} \keyword{multivariate} \keyword{robust} rrcov/man/CovMMest.Rd0000644000176200001440000000651514443667016014166 0ustar liggesusers\encoding{latin1} \name{CovMMest} \alias{CovMMest} \title{ MM Estimates of Multivariate Location and Scatter } \concept{High breakdown point} \description{ Computes MM-Estimates of multivariate location and scatter starting from an initial S-estimate } \usage{ CovMMest(x, bdp = 0.5, eff = 0.95, eff.shape=TRUE, maxiter = 50, trace = FALSE, tolSolve = 1e-7, control) } \arguments{ \item{x}{ a matrix or data frame. } \item{bdp}{a numeric value specifying the required breakdown point. Allowed values are between 0.5 and 1 and the default is \code{bdp=0.5}. } \item{eff}{a numeric value specifying the required efficiency for the MM estimates. Default is \code{eff=0.95}. } \item{eff.shape}{logical; if TRUE, eff is with regard to shape-efficiency, otherwise location-efficiency. Default is \code{eff.shape=FALSE}. } \item{maxiter}{maximum number of iterations allowed in the computation of the S-estimate (bisquare and Rocke type). Default is \code{maxiter=50}. } \item{trace}{whether to print intermediate results. Default is \code{trace = FALSE}.} \item{tolSolve}{numeric tolerance to be used as a convergence tolerance for the MM-iteration} \item{control}{ a control object (S4) of class \code{\link{CovControlMMest-class}} containing estimation options - same as these provided in the fucntion specification. If the control object is supplied, the parameters from it will be used. If parameters are passed also in the invocation statement, they will override the corresponding elements of the control object.} } \details{ Computes MM-estimates of multivariate location and scatter starting from an initial S-estimate. } \value{ An S4 object of class \code{\link{CovMMest-class}} which is a subclass of the virtual class \code{\link{CovRobust-class}}. } \references{ Tatsuoka, K.S. and Tyler, D.E. (2000). The uniqueness of S and M-functionals under non-elliptical distributions. \emph{Annals of Statistics} 28, 1219--1243 M. Salibian-Barrera, S. Van Aelstt and G. Willems (2006). Principal components analysis based on multivariate MM-estimators with fast and robust bootstrap. \emph{Journal of the American Statistical Association} 101, 1198--1211. R. A. Maronna, D. Martin and V. Yohai (2006). \emph{Robust Statistics: Theory and Methods}. Wiley, New York. Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at}} %\note{} %\seealso{} \examples{ library(rrcov) data(hbk) hbk.x <- data.matrix(hbk[, 1:3]) CovMMest(hbk.x) ## the following four statements are equivalent c0 <- CovMMest(hbk.x) c1 <- CovMMest(hbk.x, bdp = 0.25) c2 <- CovMMest(hbk.x, control = CovControlMMest(bdp = 0.25)) c3 <- CovMMest(hbk.x, control = new("CovControlMMest", bdp = 0.25)) ## direct specification overrides control one: c4 <- CovMMest(hbk.x, bdp = 0.40, control = CovControlMMest(bdp = 0.25)) c1 summary(c1) plot(c1) ## Deterministic MM-estmates CovMMest(hbk.x, control=CovControlMMest(sest=CovControlSest(method="sdet"))) } \keyword{robust} \keyword{multivariate} rrcov/man/wolves.Rd0000644000176200001440000000361514443667016014006 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/datadoc.R \docType{data} \name{wolves} \alias{wolves} \title{Skull dimensions of the wolf \emph{Canis lupus} L.} \format{ A data frame with 25 rows and 12 variables. The variables are as follows (all measurements are in milimeters): \itemize{ \item \code{class}: a factor presenting the combinations of \code{location} and \code{sex}. The levels are \code{arf} \code{arm} \code{rmf} and \code{rmm} \item \code{location}: a factor with levels \code{ar}=Arctic, \code{rm}=Rocky Mountain \item \code{sex}: a factor with levels \code{f}=female, \code{m}=male \item \code{x1}: palatal length \item \code{x2}: postpalatal length \item \code{x3}: zygomatic width \item \code{x4}: palatal width outside first upper molars \item \code{x5}: palatal width inside second upper molars \item \code{x6}: postglenoid foramina width \item \code{x7}: interorbital width \item \code{x8}: braincase width \item \code{x9}: crown length } } \source{ Jolicoeur, P. Multivariate geographical variation in the wolf \emph{Canis lupis L.}, \emph{Evolution}, XIII, 283--299. Morrison, D. F. \emph{Multivariate Statistical Methods}, (3rd ed.), 1990. New York: McGraw-Hill, p. 288--289. } \usage{ data(wolves) } \description{ A data set containing skull morphometric measurements on Rocky Mountain and Arctic wolves (\emph{Canis Lupus L.}). The tdata are published in Morrison (1990), originally from Jolicoeur (1959). } \examples{ data(wolves) ## Remove the factors location and sex which we will not use for now x <- wolves[,-c(2:3)] ## Plot a pairwise scaterplot matrix pairs(x[,2:10]) mcd <- CovMcd(x[, 2:10]) plot(mcd, which="pairs") lda <- LdaClassic(class~., data=x) lda@center lda@cov predict(lda) } \keyword{datasets} rrcov/man/bushmiss.Rd0000644000176200001440000000512214443667016014317 0ustar liggesusers\name{bushmiss} \alias{bushmiss} \docType{data} \title{ Campbell Bushfire Data with added missing data items} \description{ This data set is based on the bushfire data set which was used by Campbell (1984) to locate bushfire scars - see \code{\link[robustbase]{bushfire}} in package \code{robustbase}. The original dataset contains satelite measurements on five frequency bands, corresponding to each of 38 pixels. } \usage{data(bushmiss)} \format{ A data frame with 190 observations on 6 variables. The original data set consists of 38 observations in 5 variables. Based on it four new data sets are created in which some of the data items are replaced by missing values with a simple "missing completely at random " mechanism. For this purpose independent Bernoulli trials are realized for each data item with a probability of success 0.1, 0.2, 0.3, 0.4, where success means that the corresponding item is set to missing. The obtained five data sets, including the original one (each with probability of a data item to be missing equal to 0, 0.1, 0.2, 0.3 and 0.4 which is reflected in the new variable \code{MPROB}) are merged. (See also Beguin and Hulliger (2004).) %\describe{} } %\Note{} \source{ Maronna, R.A. and Yohai, V.J. (1995) The Behavoiur of the Stahel-Donoho Robust Multivariate Estimator. \emph{Journal of the American Statistical Association} \bold{90}, 330--341. Beguin, C. and Hulliger, B. (2004) Multivariate outlier detection in incomplete survey data: the epidemic algorithm and transformed rank correlations. \emph{Journal of the Royal Statistical Society: Series B (Statistical Methodology)} \bold{127}, 2, 275--294. } %\seealso{} \examples{ ## The following code will result in exactly the same output ## as the one obtained from the original data set data(bushmiss) bf <- bushmiss[bushmiss$MPROB==0,1:5] plot(bf) covMcd(bf) \dontrun{ ## This is the code with which the missing data were created: ## ## Creates a data set with missing values (for testing purposes) ## from a complete data set 'x'. The probability of ## each item being missing is 'pr' (Bernoulli trials). ## getmiss <- function(x, pr=0.1) { n <- nrow(x) p <- ncol(x) done <- FALSE iter <- 0 while(iter <= 50){ bt <- rbinom(n*p, 1, pr) btmat <- matrix(bt, nrow=n) btmiss <- ifelse(btmat==1, NA, 0) y <- x+btmiss if(length(which(rowSums(nanmap(y)) == p)) == 0) return (y) iter <- iter + 1 } y } } } \keyword{datasets} rrcov/man/PcaLocantore-class.Rd0000644000176200001440000000416014443667016016140 0ustar liggesusers\name{PcaLocantore-class} \Rdversion{1.1} \docType{class} \alias{PcaLocantore-class} \alias{getQuan,PcaLocantore-method} \title{Class "PcaLocantore" Spherical Principal Components } \description{ The Spherical Principal Components procedure was proposed by Locantore et al., (1999) as a functional data analysis method. The idea is to perform classical PCA on the the data, \ projected onto a unit sphere. The estimates of the eigenvectors are consistent and the procedure is extremly fast. The simulations of Maronna (2005) show that this method has very good performance. } \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("PcaLocantore", ...)} but the usual way of creating \code{PcaLocantore} objects is a call to the function \code{PcaLocantore} which serves as a constructor. } \section{Slots}{ \describe{ \item{\code{delta}:}{Accuracy parameter} \item{\code{quan}:}{Object of class \code{"numeric"} The quantile h used throughout the algorithm } \item{\code{call}, \code{center}, \code{scale}, \code{rank}, \code{loadings}, \code{eigenvalues}, \code{scores}, \code{k}, \code{sd}, \code{od}, \code{cutoff.sd}, \code{cutoff.od}, \code{flag}, \code{n.obs}, \code{eig0}, \code{totvar0}:}{ from the \code{"\linkS4class{Pca}"} class. } } } \section{Extends}{ Class \code{"\linkS4class{PcaRobust}"}, directly. Class \code{"\linkS4class{Pca}"}, by class "PcaRobust", distance 2. } \section{Methods}{ \describe{ \item{getQuan}{\code{signature(obj = "PcaLocantore")}: ... } } } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} } \seealso{ \code{\link{PcaRobust-class}}, \code{\link{Pca-class}}, \code{\link{PcaClassic}}, \code{\link{PcaClassic-class}} } \examples{ showClass("PcaLocantore") } \keyword{robust} \keyword{multivariate} rrcov/man/LdaPP-class.Rd0000644000176200001440000000663714443667016014541 0ustar liggesusers\name{LdaPP-class} \docType{class} \alias{LdaPP-class} \alias{predict,LdaPP-method} \title{Class "LdaPP" - Robust method for Linear Discriminant Analysis by Projection-pursuit} \description{ The class \code{LdaPP} represents an algorithm for robust linear discriminant analysis by projection-pursuit approach. The objects of class \code{LdaPP} contain the results of the robust linear discriminant analysis by projection-pursuit approach. } \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("LdaPP", ...)} but the usual way of creating \code{LdaPP} objects is a call to the function \code{LdaPP} which serves as a constructor. } \section{Slots}{ \describe{ \item{\code{call}:}{The (matched) function call.} \item{\code{prior}:}{Prior probabilities used, default to group proportions} \item{\code{counts}:}{number of observations in each class} \item{\code{center}:}{the group means} \item{\code{cov}:}{the common covariance matrix} \item{\code{raw.ldf}:}{a matrix containing the raw linear discriminant functions - see Details in \code{\link{LdaPP}}} \item{\code{raw.ldfconst}:}{a vector containing the raw constants of each raw linear discriminant function - see Details in \code{\link{LdaPP}}} \item{\code{ldf}:}{a matrix containing the linear discriminant functions} \item{\code{ldfconst}:}{a vector containing the constants of each linear discriminant function} \item{\code{method}:}{a character string giving the estimation method used} \item{\code{X}:}{the training data set (same as the input parameter x of the constructor function)} \item{\code{grp}:}{grouping variable: a factor specifying the class for each observation.} } } \section{Extends}{ Class \code{"\linkS4class{LdaRobust}"}, directly. Class \code{"\linkS4class{Lda}"}, by class "LdaRobust", distance 2. } \section{Methods}{ \describe{ \item{predict}{\code{signature(object = "LdaPP")}: calculates prediction using the results in \code{object}. An optional data frame or matrix in which to look for variables with which to predict. If omitted, the training data set is used. If the original fit used a formula or a data frame or a matrix with column names, newdata must contain columns with the same names. Otherwise it must contain the same number of columns, to be used in the same order. If the argument \code{raw=TRUE} is set the raw (obtained by the first approximation algorithm) linear discriminant function and constant will be used.} } } \references{ Pires, A. M. and A. Branco, J. (2010) Projection-pursuit approach to robust linear discriminant analysis \emph{Journal Multivariate Analysis}, Academic Press, Inc., \bold{101}, 2464--2485. Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} and Ana Pires \email{apires@math.ist.utl.pt} } \seealso{ \code{\link{LdaRobust-class}}, \code{\link{Lda-class}}, \code{\link{LdaClassic}}, \code{\link{LdaClassic-class}}, \code{\link{Linda}}, \code{\link{Linda-class}} } \examples{ showClass("LdaPP") } \keyword{robust} \keyword{multivariate} rrcov/man/CovMcd-class.Rd0000644000176200001440000000647214443667016014751 0ustar liggesusers\name{CovMcd-class} \Rdversion{1.1} \docType{class} \alias{CovMcd-class} \title{ MCD Estimates of Multivariate Location and Scatter } \description{ This class, derived from the virtual class \code{"CovRobust"} accomodates MCD Estimates of multivariate location and scatter computed by the \sQuote{Fast MCD} algorithm. } \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("CovMcd", ...)}, but the usual way of creating \code{CovMcd} objects is a call to the function \code{CovMcd} which serves as a constructor. } \section{Slots}{ \describe{ \item{\code{alpha}:}{Object of class \code{"numeric"} - the size of the subsets over which the determinant is minimized (the default is (n+p+1)/2) } \item{\code{quan}:}{Object of class \code{"numeric"} - the number of observations on which the MCD is based. If \code{quan} equals \code{n.obs}, the MCD is the classical covariance matrix. } \item{\code{best}:}{Object of class \code{"Uvector"} - the best subset found and used for computing the raw estimates. The size of \code{best} is equal to \code{quan} } \item{\code{raw.cov}:}{Object of class \code{"matrix"} the raw (not reweighted) estimate of location } \item{\code{raw.center}:}{Object of class \code{"vector"} - the raw (not reweighted) estimate of scatter} \item{\code{raw.mah}:}{Object of class \code{"Uvector"} - mahalanobis distances of the observations based on the raw estimate of the location and scatter } \item{\code{raw.wt}:}{Object of class \code{"Uvector"} - weights of the observations based on the raw estimate of the location and scatter } \item{\code{raw.cnp2}:}{Object of class \code{"numeric"} - a vector of length two containing the consistency correction factor and the finite sample correction factor of the raw estimate of the covariance matrix } \item{\code{cnp2}:}{Object of class \code{"numeric"} - a vector of length two containing the consistency correction factor and the finite sample correction factor of the final estimate of the covariance matrix. } \item{\code{iter}, \code{crit}, \code{wt}:}{from the \code{"\linkS4class{CovRobust}"} class. } \item{\code{call}, \code{cov}, \code{center}, \code{n.obs}, \code{mah}, \code{method}, \code{singularity}, \code{X}:}{from the \code{"\linkS4class{Cov}"} class. } } } \section{Extends}{ Class \code{"\linkS4class{CovRobust}"}, directly. Class \code{"\linkS4class{Cov}"}, by class \code{"\linkS4class{CovRobust}"}. } \section{Methods}{ No methods defined with class \code{"CovMcd"} in the signature. } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} } \seealso{ \code{\link{CovMcd}}, \code{\link{Cov-class}}, \code{\link{CovRobust-class}} } \examples{ showClass("CovMcd") } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/PcaClassic-class.Rd0000644000176200001440000000630214443667016015573 0ustar liggesusers\name{PcaClassic-class} \docType{class} \alias{PcaClassic-class} \alias{getQuan,PcaClassic-method} \title{Class "PcaClassic" - Principal Components Analysis } \description{ Contains the results of a classical Principal Components Analysis } \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("PcaClassic", ...)} but the usual way of creating \code{PcaClassic} objects is a call to the function \code{PcaClassic} which serves as a constructor. } \section{Slots}{ \describe{ \item{\code{call}:}{Object of class \code{"language"} } \item{\code{center}:}{Object of class \code{"vector"} the center of the data } \item{\code{scale}:}{Object of class \code{"vector"} the scaling applied to each variable } \item{\code{rank}:}{Object of class \code{"numeric"} the rank of the data matrix } \item{\code{loadings}:}{Object of class \code{"matrix"} the matrix of variable loadings (i.e., a matrix whose columns contain the eigenvectors) } \item{\code{eigenvalues}:}{Object of class \code{"vector"} the eigenvalues } \item{\code{scores}:}{Object of class \code{"matrix"} the scores - the value of the projected on the space of the principal components data (the centred (and scaled if requested) data multiplied by the \code{loadings} matrix) is returned. Hence, \code{cov(scores)} is the diagonal matrix \code{diag(eigenvalues)} } \item{\code{k}:}{Object of class \code{"numeric"} number of (choosen) principal components } \item{\code{sd}:}{Object of class \code{"Uvector"} Score distances within the robust PCA subspace } \item{\code{od}:}{Object of class \code{"Uvector"} Orthogonal distances to the robust PCA subspace } \item{\code{cutoff.sd}:}{Object of class \code{"numeric"} Cutoff value for the score distances} \item{\code{cutoff.od}:}{Object of class \code{"numeric"} Cutoff values for the orthogonal distances } \item{\code{flag}:}{Object of class \code{"Uvector"} The observations whose score distance is larger than cutoff.sd or whose orthogonal distance is larger than cutoff.od can be considered as outliers and receive a flag equal to zero. The regular observations receive a flag 1 } \item{\code{n.obs}:}{Object of class \code{"numeric"} the number of observations } \item{\code{eig0}:}{Object of class \code{"vector"} all eigenvalues } \item{\code{totvar0}:}{Object of class \code{"numeric"} the total variance explained (\code{=sum(eig0)}) } } } \section{Extends}{ Class \code{"\linkS4class{Pca}"}, directly. } \section{Methods}{ \describe{ \item{getQuan}{\code{signature(obj = "PcaClassic")}: returns the number of observations used in the computation, i.e. n.obs } } } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} } \seealso{ \code{\link{PcaRobust-class}}, \code{\link{Pca-class}}, \code{\link{PcaClassic}} } \examples{ showClass("PcaClassic") } \keyword{robust} \keyword{multivariate} rrcov/man/QdaClassic.Rd0000644000176200001440000000252714443667016014477 0ustar liggesusers\name{QdaClassic} \Rdversion{1.1} \alias{QdaClassic} \alias{QdaClassic.formula} \alias{QdaClassic.default} \title{ Quadratic Discriminant Analysis } \description{ Performs quadratic discriminant analysis and returns the results as an object of class \code{QdaClassic} (aka constructor). } \usage{ QdaClassic(x, ...) %%\method{QdaClassic}{formula}(formula, data = NULL, subset, na.action, \dots) \method{QdaClassic}{default}(x, grouping, prior = proportions, tol = 1.0e-4, ...) } \arguments{ \item{x}{a matrix or data frame containing the explanatory variables (training set). } \item{grouping}{grouping variable: a factor specifying the class for each observation.} \item{prior}{prior probabilities, default to the class proportions for the training set.} \item{tol}{tolerance} \item{\dots}{arguments passed to or from other methods.} } %\details{} \value{ Returns an S4 object of class \code{QdaClassic} } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} } \seealso{ \code{\link{Qda-class}}, \code{\link{QdaClassic-class}}, } %\examples{} \keyword{robust} \keyword{multivariate} rrcov/man/bus.Rd0000644000176200001440000001233114443667016013253 0ustar liggesusers\name{bus} \alias{bus} \docType{data} \title{ Automatic vehicle recognition data} \description{ The data set bus (Hettich and Bay, 1999) corresponds to a study in automatic vehicle recognition (see Maronna et al. 2006, page 213, Example 6.3)). This data set from the Turing Institute, Glasgow, Scotland, contains measures of shape features extracted from vehicle silhouettes. The images were acquired by a camera looking downward at the model vehicle from a fixed angle of elevation. Each of the 218 rows corresponds to a view of a bus silhouette, and contains 18 attributes of the image. } \usage{data(bus)} \format{ A data frame with 218 observations on the following 18 variables: \describe{ \item{\code{V1}}{compactness} \item{\code{V2}}{circularity} \item{\code{V3}}{distance circularity} \item{\code{V4}}{radius ratio} \item{\code{V5}}{principal axis aspect ratio} \item{\code{V6}}{maximum length aspect ratio} \item{\code{V7}}{scatter ratio} \item{\code{V8}}{elongatedness} \item{\code{V9}}{principal axis rectangularity} \item{\code{V10}}{maximum length rectangularity} \item{\code{V11}}{scaled variance along major axis} \item{\code{V12}}{scaled variance along minor axis} \item{\code{V13}}{scaled radius of gyration} \item{\code{V14}}{skewness about major axis} \item{\code{V15}}{skewness about minor axis} \item{\code{V16}}{kurtosis about minor axis} \item{\code{V17}}{kurtosis about major axis} \item{\code{V18}}{hollows ratio} } } %%\details{} \source{ Hettich, S. and Bay, S.D. (1999), The UCI KDD Archive, Irvine, CA:University of California, Department of Information and Computer Science, %% \url{http://kdd.ics.uci.edu} 'http://kdd.ics.uci.edu' } \references{ Maronna, R., Martin, D. and Yohai, V., (2006). Robust Statistics: Theory and Methods. Wiley, New York. } \examples{ ## Reproduce Table 6.3 from Maronna et al. (2006), page 213 data(bus) bus <- as.matrix(bus) ## calculate MADN for each variable xmad <- apply(bus, 2, mad) cat("\nMin, Max of MADN: ", min(xmad), max(xmad), "\n") ## MADN vary between 0 (for variable 9) and 34. Therefore exclude ## variable 9 and divide the remaining variables by their MADNs. bus1 <- bus[, -9] madbus <- apply(bus1, 2, mad) bus2 <- sweep(bus1, 2, madbus, "/", check.margin = FALSE) ## Compute classical and robust PCA (Spherical/Locantore, Hubert, MCD and OGK) pca <- PcaClassic(bus2) rpca <- PcaLocantore(bus2) pcaHubert <- PcaHubert(bus2, k=17, kmax=17, mcd=FALSE) pcamcd <- PcaCov(bus2, cov.control=CovControlMcd()) pcaogk <- PcaCov(bus2, cov.control=CovControlOgk()) ev <- getEigenvalues(pca) evrob <- getEigenvalues(rpca) evhub <- getEigenvalues(pcaHubert) evmcd <- getEigenvalues(pcamcd) evogk <- getEigenvalues(pcaogk) uvar <- matrix(nrow=6, ncol=6) svar <- sum(ev) svarrob <- sum(evrob) svarhub <- sum(evhub) svarmcd <- sum(evmcd) svarogk <- sum(evogk) for(i in 1:6){ uvar[i,1] <- i uvar[i,2] <- round((svar - sum(ev[1:i]))/svar, 3) uvar[i,3] <- round((svarrob - sum(evrob[1:i]))/svarrob, 3) uvar[i,4] <- round((svarhub - sum(evhub[1:i]))/svarhub, 3) uvar[i,5] <- round((svarmcd - sum(evmcd[1:i]))/svarmcd, 3) uvar[i,6] <- round((svarogk - sum(evogk[1:i]))/svarogk, 3) } uvar <- as.data.frame(uvar) names(uvar) <- c("q", "Classical","Spherical", "Hubert", "MCD", "OGK") cat("\nBus data: proportion of unexplained variability for q components\n") print(uvar) ## Reproduce Table 6.4 from Maronna et al. (2006), page 214 ## ## Compute classical and robust PCA extracting only the first 3 components ## and take the squared orthogonal distances to the 3-dimensional hyperplane ## pca3 <- PcaClassic(bus2, k=3) # classical rpca3 <- PcaLocantore(bus2, k=3) # spherical (Locantore, 1999) hpca3 <- PcaHubert(bus2, k=3) # Hubert dist <- pca3@od^2 rdist <- rpca3@od^2 hdist <- hpca3@od^2 ## calculate the quantiles of the distances to the 3-dimensional hyperplane qclass <- round(quantile(dist, probs = seq(0, 1, 0.1)[-c(1,11)]), 1) qspc <- round(quantile(rdist, probs = seq(0, 1, 0.1)[-c(1,11)]), 1) qhubert <- round(quantile(hdist, probs = seq(0, 1, 0.1)[-c(1,11)]), 1) qq <- cbind(rbind(qclass, qspc, qhubert), round(c(max(dist), max(rdist), max(hdist)), 0)) colnames(qq)[10] <- "Max" rownames(qq) <- c("Classical", "Spherical", "Hubert") cat("\nBus data: quantiles of distances to hiperplane\n") print(qq) ## ## Reproduce Fig 6.1 from Maronna et al. (2006), page 214 ## cat("\nBus data: Q-Q plot of logs of distances to hyperplane (k=3) \nfrom classical and robust estimates. The line is the identity diagonal\n") plot(sort(log(dist)), sort(log(rdist)), xlab="classical", ylab="robust") lines(sort(log(dist)), sort(log(dist))) } \keyword{datasets} rrcov/man/PcaProj.Rd0000644000176200001440000001036614443667016014026 0ustar liggesusers\name{PcaProj} \alias{PcaProj} \alias{PcaProj.formula} \alias{PcaProj.default} \title{ Robust Principal Components based on Projection Pursuit (PP): Croux and Ruiz-Gazen (2005) algorithm } \description{ A fast and simple algorithm for approximating the PP-estimators for PCA: Croux and Ruiz-Gazen (2005) } \usage{ PcaProj(x, ...) \method{PcaProj}{default}(x, k = 0, kmax = ncol(x), scale=FALSE, na.action = na.fail, crit.pca.distances = 0.975, trace=FALSE, \dots) \method{PcaProj}{formula}(formula, data = NULL, subset, na.action, \dots) } \arguments{ \item{formula}{a formula with no response variable, referring only to numeric variables.} \item{data}{an optional data frame (or similar: see \code{\link{model.frame}}) containing the variables in the formula \code{formula}.} \item{subset}{an optional vector used to select rows (observations) of the data matrix \code{x}.} \item{na.action}{a function which indicates what should happen when the data contain \code{NA}s. The default is set by the \code{na.action} setting of \code{\link{options}}, and is \code{\link{na.fail}} if that is unset. The default is \code{\link{na.omit}}.} \item{\dots}{arguments passed to or from other methods.} \item{x}{a numeric matrix (or data frame) which provides the data for the principal components analysis.} \item{k}{number of principal components to compute. If \code{k} is missing, or \code{k = 0}, it is set to the number of columns of the data. It is preferable to investigate the scree plot in order to choose the number of components and then run again. Default is \code{k=0}. } \item{kmax}{maximal number of principal components to compute. Default is \code{kmax=10}. If \code{k} is provided, \code{kmax} does not need to be specified, unless \code{k} is larger than 10.} \item{scale}{a value indicating whether and how the variables should be scaled. If \code{scale = FALSE} (default) or \code{scale = NULL} no scaling is performed (a vector of 1s is returned in the \code{scale} slot). If \code{scale = TRUE} the data are scaled to have unit variance. Alternatively it can be a function like \code{sd} or \code{mad} or a vector of length equal the number of columns of \code{x}. The value is passed to the underlying function and the result returned is stored in the \code{scale} slot. Default is \code{scale = FALSE}} \item{crit.pca.distances}{criterion to use for computing the cutoff values for the orthogonal and score distances. Default is 0.975.} \item{trace}{whether to print intermediate results. Default is \code{trace = FALSE}} } \details{ \code{PcaProj}, serving as a constructor for objects of class \code{\link{PcaProj-class}} is a generic function with "formula" and "default" methods. For details see \code{\link[pcaPP]{PCAproj}} and the relevant references. } \value{ An S4 object of class \code{\link{PcaProj-class}} which is a subclass of the virtual class \code{\link{PcaRobust-class}}. } \references{ C. Croux, A. Ruiz-Gazen (2005). High breakdown estimators for principal components: The projection-pursuit approach revisited, \emph{Journal of Multivariate Analysis}, 95, 206--226. Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} } \examples{ # multivariate data with outliers library(mvtnorm) x <- rbind(rmvnorm(200, rep(0, 6), diag(c(5, rep(1,5)))), rmvnorm( 15, c(0, rep(20, 5)), diag(rep(1, 6)))) # Here we calculate the principal components with PcaProj pc <- PcaProj(x, 6) # we could draw a biplot too: biplot(pc) # we could use another calculation method and another objective function, and # maybe only calculate the first three principal components: pc <- PcaProj(x, k=3, method="qn", CalcMethod="sphere") biplot(pc) # now we want to compare the results with the non-robust principal components pc <- PcaClassic(x, k=3) # again, a biplot for comparision: biplot(pc) } \keyword{robust} \keyword{multivariate} rrcov/man/CovMest.Rd0000644000176200001440000001207414443667016014046 0ustar liggesusers\name{CovMest} \alias{CovMest} \title{Constrained M-Estimates of Location and Scatter} \concept{High breakdown point} \usage{ CovMest(x, r = 0.45, arp = 0.05, eps=1e-3, maxiter=120, control, t0, S0, initcontrol) } \description{ Computes constrained M-Estimates of multivariate location and scatter based on the translated biweight function (\sQuote{t-biweight}) using a High breakdown point initial estimate as defined by Rocke (1996). The default initial estimate is the Minimum Volume Ellipsoid computed with \code{\link{CovMve}}. The raw (not reweighted) estimates are taken and the covariance matrix is standardized to determinant 1. } \arguments{ \item{x}{a matrix or data frame. } \item{r}{ required breakdown point. Allowed values are between \code{(n - p)/(2 * n)} and 1 and the default is 0.45} \item{arp}{ asympthotic rejection point, i.e. the fraction of points receiving zero weight (see Rocke (1996)). Default is \code{0.05}.} \item{eps}{ a numeric value specifying the relative precision of the solution of the M-estimate. Defaults to \code{1e-3}} \item{maxiter}{ maximum number of iterations allowed in the computation of the M-estimate. Defaults to 120} \item{control}{ a control object (S4) of class \code{\link{CovControlMest-class}} containing estimation options - same as these provided in the fucntion specification. If the control object is supplied, the parameters from it will be used. If parameters are passed also in the invocation statement, they will override the corresponding elements of the control object.} \item{t0}{ optional initial high breakdown point estimates of the location. If not supplied MVE will be used. } \item{S0}{ optional initial high breakdown point estimates of the scatter. If not supplied MVE will be used. } \item{initcontrol}{ optional control object - of class CovControl - specifing the initial high breakdown point estimates of location and scatter. If not supplied MVE will be used. } } \details{ Rocke (1996) has shown that the S-estimates of multivariate location and scatter in high dimensions can be sensitive to outliers even if the breakdown point is set to be near 0.5. To mitigate this problem he proposed to utilize the translated biweight (or t-biweight) method with a standardization step consisting of equating the median of \code{rho(d)} with the median under normality. This is then not an S-estimate, but is instead a constrained M-estimate. In order to make the smooth estimators to work, a reasonable starting point is necessary, which will lead reliably to a good solution of the estimator. In \code{CovMest} the MVE computed by \code{\link{CovMve}} is used, but the user has the possibility to give her own initial estimates. } \note{ The psi, rho and weight functions for the M estimation are encapsulated in a virtual S4 class \code{PsiFun} from which a \code{PsiBwt} class, implementing the translated biweight (t-biweight), is dervied. The base class \code{PsiFun} contains also the M-iteration itself. Although not documented and not accessibale directly by the user these classes will form the bases for adding other functions (biweight, LWS, etc.) as well as S-estimates. } \author{Valentin Todorov \email{valentin.todorov@chello.at}, (some code from C. Becker - http://www.sfb475.uni-dortmund.de/dienst/de/content/struk-d/bereicha-d/tpa1softw-d.html) } \value{ An object of class \code{\link{CovMest-class}} which is a subclass of the virtual class \code{\link{CovRobust-class}}. } \references{ D.L.Woodruff and D.M.Rocke (1994) Computable robust estimation of multivariate location and shape on high dimension using compound estimators, \emph{Journal of the American Statistical Association}, \bold{89}, 888--896. D.M.Rocke (1996) Robustness properties of S-estimates of multivariate location and shape in high dimension, \emph{Annals of Statistics}, \bold{24}, 1327-1345. D.M.Rocke and D.L.Woodruff (1996) Identification of outliers in multivariate data \emph{Journal of the American Statistical Association}, \bold{91}, 1047--1061. Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \seealso{ \code{\link[robustbase]{covMcd}}, \code{\link{Cov-class}}, \code{\link{CovMve}}, \code{\link{CovRobust-class}}, \code{\link{CovMest-class}} } \examples{ library(rrcov) data(hbk) hbk.x <- data.matrix(hbk[, 1:3]) CovMest(hbk.x) ## the following four statements are equivalent c0 <- CovMest(hbk.x) c1 <- CovMest(hbk.x, r = 0.45) c2 <- CovMest(hbk.x, control = CovControlMest(r = 0.45)) c3 <- CovMest(hbk.x, control = new("CovControlMest", r = 0.45)) ## direct specification overrides control one: c4 <- CovMest(hbk.x, r = 0.40, control = CovControlMest(r = 0.25)) c1 summary(c1) plot(c1) } \keyword{robust} \keyword{multivariate} rrcov/man/PcaClassic.Rd0000644000176200001440000000743514443667016014500 0ustar liggesusers\name{PcaClassic} \alias{PcaClassic} \alias{PcaClassic.formula} \alias{PcaClassic.default} \title{ Principal Components Analysis } \description{ Performs a principal components analysis and returns the results as an object of class PcaClassic (aka constructor). } \usage{ PcaClassic(x, ...) \method{PcaClassic}{default}(x, k = ncol(x), kmax = ncol(x), scale=FALSE, signflip=TRUE, crit.pca.distances = 0.975, trace=FALSE, \dots) \method{PcaClassic}{formula}(formula, data = NULL, subset, na.action, \dots) } \arguments{ \item{formula}{a formula with no response variable, referring only to numeric variables.} \item{data}{an optional data frame (or similar: see \code{\link{model.frame}}) containing the variables in the formula \code{formula}.} \item{subset}{an optional vector used to select rows (observations) of the data matrix \code{x}.} \item{na.action}{a function which indicates what should happen when the data contain \code{NA}s. The default is set by the \code{na.action} setting of \code{\link{options}}, and is \code{\link{na.fail}} if that is unset. The default is \code{\link{na.omit}}.} \item{\dots}{arguments passed to or from other methods.} \item{x}{a numeric matrix (or data frame) which provides the data for the principal components analysis.} \item{k}{number of principal components to compute. If \code{k} is missing, or \code{k = 0}, the algorithm itself will determine the number of components by finding such \code{k} that \eqn{l_k/l_1 >= 10.E-3} and \eqn{\Sigma_{j=1}^k l_j/\Sigma_{j=1}^r l_j >= 0.8}. It is preferable to investigate the scree plot in order to choose the number of components and then run again. Default is \code{k=ncol(x)}. } \item{kmax}{maximal number of principal components to compute. Default is \code{kmax=10}. If \code{k} is provided, \code{kmax} does not need to be specified, unless \code{k} is larger than 10.} \item{scale}{a value indicating whether and how the variables should be scaled to have unit variance (only possible if there are no constant variables). If \code{scale=FALSE} (default) or \code{scale=NULL} no scaling is performed (a vector of 1s is returned in the scale slot). If \code{scale=TRUE} the data are scaled to have unit variance. Alternatively it can be a function like \code{sd} or \code{Qn} or a vector of length equal the number of columns of \code{x}. The value is passed to the underlying function and the result returned is stored in the scale slot. Default is \code{scale=FALSE}.} \item{signflip}{a logical value indicating wheather to try to solve the sign indeterminancy of the loadings - ad hoc approach setting the maximum element in a singular vector to be positive. Default is \code{signflip = TRUE}} \item{crit.pca.distances}{criterion to use for computing the cutoff values for the orthogonal and score distances. Default is 0.975.} \item{trace}{whether to print intermediate results. Default is \code{trace = FALSE}} } %\details{} \value{ An S4 object of class \code{\link{PcaClassic-class}} which is a subclass of the virtual class \code{\link{Pca-class}}. } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} } \note{ This function can be seen as a wrapper arround prcomp() from \code{stats} which returns the results of the PCA in a class compatible with the object model for robust PCA. } \seealso{ \code{\link{Pca-class}}, \code{\link{PcaClassic-class}}, } %\examples{} \keyword{robust} \keyword{multivariate} rrcov/man/PcaGrid.Rd0000644000176200001440000001030614443667016013773 0ustar liggesusers\name{PcaGrid} \alias{PcaGrid} \alias{PcaGrid.formula} \alias{PcaGrid.default} \title{ Robust Principal Components based on Projection Pursuit (PP): GRID search Algorithm } \description{ Computes an approximation of the PP-estimators for PCA using the grid search algorithm in the plane. } \usage{ PcaGrid(x, ...) \method{PcaGrid}{default}(x, k = 0, kmax = ncol(x), scale=FALSE, na.action = na.fail, crit.pca.distances = 0.975, trace=FALSE, \dots) \method{PcaGrid}{formula}(formula, data = NULL, subset, na.action, \dots) } \arguments{ \item{formula}{a formula with no response variable, referring only to numeric variables.} \item{data}{an optional data frame (or similar: see \code{\link{model.frame}}) containing the variables in the formula \code{formula}.} \item{subset}{an optional vector used to select rows (observations) of the data matrix \code{x}.} \item{na.action}{a function which indicates what should happen when the data contain \code{NA}s. The default is set by the \code{na.action} setting of \code{\link{options}}, and is \code{\link{na.fail}} if that is unset. The default is \code{\link{na.omit}}.} \item{\dots}{arguments passed to or from other methods.} \item{x}{a numeric matrix (or data frame) which provides the data for the principal components analysis.} \item{k}{number of principal components to compute. If \code{k} is missing, or \code{k = 0}, it is set to the number of columns of the data. It is preferable to investigate the scree plot in order to choose the number of components and then run again. Default is \code{k=0}. } \item{kmax}{maximal number of principal components to compute. Default is \code{kmax=10}. If \code{k} is provided, \code{kmax} does not need to be specified, unless \code{k} is larger than 10.} \item{scale}{a value indicating whether and how the variables should be scaled. If \code{scale = FALSE} (default) or \code{scale = NULL} no scaling is performed (a vector of 1s is returned in the \code{scale} slot). If \code{scale = TRUE} the data are scaled to have unit variance. Alternatively it can be a function like \code{sd} or \code{mad} or a vector of length equal the number of columns of \code{x}. The value is passed to the underlying function and the result returned is stored in the \code{scale} slot. Default is \code{scale = FALSE}} \item{crit.pca.distances}{criterion to use for computing the cutoff values for the orthogonal and score distances. Default is 0.975.} \item{trace}{whether to print intermediate results. Default is \code{trace = FALSE}} } \details{ \code{PcaGrid}, serving as a constructor for objects of class \code{\link{PcaGrid-class}} is a generic function with "formula" and "default" methods. For details see \code{\link[pcaPP]{PCAgrid}} and the relevant references. } \value{ An S4 object of class \code{\link{PcaGrid-class}} which is a subclass of the virtual class \code{\link{PcaRobust-class}}. } \references{ C. Croux, P. Filzmoser, M. Oliveira, (2007). Algorithms for Projection-Pursuit Robust Principal Component Analysis, \emph{Chemometrics and Intelligent Laboratory Systems}, 87, 225. Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} } \examples{ # multivariate data with outliers library(mvtnorm) x <- rbind(rmvnorm(200, rep(0, 6), diag(c(5, rep(1,5)))), rmvnorm( 15, c(0, rep(20, 5)), diag(rep(1, 6)))) # Here we calculate the principal components with PCAgrid pc <- PcaGrid(x, 6) # we could draw a biplot too: biplot(pc) # we could use another objective function, and # maybe only calculate the first three principal components: pc <- PcaGrid(x, 3, method="qn") biplot(pc) # now we want to compare the results with the non-robust principal components pc <- PcaClassic(x, k=3) # again, a biplot for comparision: biplot(pc) } \keyword{robust} \keyword{multivariate} rrcov/man/LdaRobust-class.Rd0000644000176200001440000000342014443667016015463 0ustar liggesusers\name{LdaRobust-class} \docType{class} \alias{LdaRobust-class} \title{Class "LdaRobust" is a virtual base class for all robust LDA classes } \description{ The class \code{LdaRobust} searves as a base class for deriving all other classes representing the results of the robust Linear Discriminant Analysis methods} \section{Objects from the Class}{A virtual Class: No objects may be created from it.} \section{Slots}{ \describe{ \item{\code{call}:}{The (matched) function call.} \item{\code{prior}:}{Prior probabilities used, default to group proportions} \item{\code{counts}:}{number of observations in each class} \item{\code{center}:}{the group means} \item{\code{cov}:}{the common covariance matrix} \item{\code{ldf}:}{a matrix containing the linear discriminant functions} \item{\code{ldfconst}:}{a vector containing the constants of each linear discriminant function} \item{\code{method}:}{a character string giving the estimation method used} \item{\code{X}:}{the training data set (same as the input parameter x of the constructor function)} \item{\code{grp}:}{grouping variable: a factor specifying the class for each observation.} } } \section{Extends}{ Class \code{"\linkS4class{Lda}"}, directly. } \section{Methods}{ No methods defined with class "LdaRobust" in the signature. } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} } \seealso{ \code{\link{Lda-class}}, \code{\link{LdaClassic-class}}, } \examples{ showClass("LdaRobust") } \keyword{robust} \keyword{multivariate} rrcov/man/QdaClassic-class.Rd0000644000176200001440000000420514443667016015575 0ustar liggesusers\name{QdaClassic-class} \Rdversion{1.1} \docType{class} \alias{QdaClassic-class} \title{Class "QdaClassic" - Quadratic Discriminant Analysis } \description{ Contains the results of classical Quadratic Discriminant Analysis } \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("QdaClassic", ...)} but the usual way of creating \code{QdaClassic} objects is a call to the function \code{QdaClassic} which serves as a constructor. }\section{Slots}{ \describe{ \item{\code{call}:}{The (matched) function call.} \item{\code{prior}:}{Prior probabilities used, default to group proportions} \item{\code{counts}:}{number of observations in each class} \item{\code{center}:}{the group means} \item{\code{cov}:}{the group covariance matrices} \item{\code{covinv}:}{the inverse of the group covariance matrices} \item{\code{covdet}:}{the determinants of the group covariance matrices} \item{\code{method}:}{a character string giving the estimation method used} \item{\code{X}:}{the training data set (same as the input parameter x of the constructor function)} \item{\code{grp}:}{grouping variable: a factor specifying the class for each observation.} \item{\code{control}:}{Object of class \code{"CovControl"} inherited from class \code{Qda} specifying which estimate and with what estimation options to use for the group means and covariances. It is always \code{NULL} for classical discriminant analysis.} } } \section{Extends}{ Class \code{"\linkS4class{Qda}"}, directly. } \section{Methods}{ No methods defined with class "QdaClassic" in the signature. } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} } \seealso{ \code{\link{QdaRobust-class}}, \code{\link{Qda-class}}, \code{\link{QdaClassic}} } \examples{ showClass("QdaClassic") } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/LdaPP.Rd0000644000176200001440000001360214443667016013424 0ustar liggesusers\name{LdaPP} \alias{LdaPP} \alias{LdaPP.formula} \alias{LdaPP.default} \title{ Robust Linear Discriminant Analysis by Projection Pursuit} \description{ Performs robust linear discriminant analysis by the projection-pursuit approach - proposed by Pires and Branco (2010) - and returns the results as an object of class \code{LdaPP} (aka constructor). } \usage{ LdaPP(x, ...) \method{LdaPP}{formula}(formula, data, subset, na.action, \dots) \method{LdaPP}{default}(x, grouping, prior = proportions, tol = 1.0e-4, method = c("huber", "mad", "sest", "class"), optim = FALSE, trace=FALSE, ...) } \arguments{ \item{formula}{a formula of the form \code{y~x}, it describes the response and the predictors. The formula can be more complicated, such as \code{y~log(x)+z} etc (see \code{\link{formula}} for more details). The response should be a factor representing the response variable, or any vector that can be coerced to such (such as a logical variable).} \item{data}{an optional data frame (or similar: see \code{\link{model.frame}}) containing the variables in the formula \code{formula}.} \item{subset}{an optional vector used to select rows (observations) of the data matrix \code{x}.} \item{na.action}{a function which indicates what should happen when the data contain \code{NA}s. The default is set by the \code{na.action} setting of \code{\link{options}}, and is \code{\link{na.fail}} if that is unset. The default is \code{\link{na.omit}}.} \item{x}{a matrix or data frame containing the explanatory variables (training set). } \item{grouping}{grouping variable: a factor specifying the class for each observation.} \item{prior}{prior probabilities, default to the class proportions for the training set.} \item{tol}{tolerance} \item{method}{method} \item{optim}{wheather to perform the approximation using the Nelder and Mead simplex method (see function \code{optim()} from package \code{stats}). Default is \code{optim = FALSE}} \item{trace}{whether to print intermediate results. Default is \code{trace = FALSE}.} \item{\dots}{arguments passed to or from other methods.} } \details{ Currently the algorithm is implemented only for binary classification and in the following will be assumed that only two groups are present. The PP algorithm searches for low-dimensional projections of higher-dimensional data where a projection index is maximized. Similar to the original Fisher's proposal the squared standardized distance between the observations in the two groups is maximized. Instead of the sample univariate mean and standard deviation \code{(T,S)} robust alternatives are used. These are selected through the argument \code{method} and can be one of \describe{ \item{huber}{the pair \code{(T,S)} are the robust M-estimates of location and scale} \item{mad}{\code{(T,S)} are the Median and the Median Absolute Deviation} \item{sest}{the pair \code{(T,S)} are the robust S-estimates of location and scale} \item{class}{\code{(T,S)} are the mean and the standard deviation.} } The first approximation \emph{A1} to the solution is obtained by investigating a finite number of candidate directions, the unit vectors defined by all pairs of points such that one belongs to the first group and the other to the second group. The found solution is stored in the slots \code{raw.ldf} and \code{raw.ldfconst}. The second approximation \emph{A2} (optional) is performed by a numerical optimization algorithm using \emph{A1} as initial solution. The Nelder and Mead method implemented in the function \code{\link{optim}} is applied. Whether this refinement will be used is controlled by the argument \code{optim}. If \code{optim=TRUE} the result of the optimization is stored into the slots \code{ldf} and \code{ldfconst}. Otherwise these slots are set equal to \code{raw.ldf} and \code{raw.ldfconst}. } \value{ Returns an S4 object of class \code{\link[rrcov]{LdaPP-class}} } \references{ Pires, A. M. and A. Branco, J. (2010) Projection-pursuit approach to robust linear discriminant analysis \emph{Journal Multivariate Analysis}, Academic Press, Inc., \bold{101}, 2464--2485. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} and Ana Pires \email{apires@math.ist.utl.pt} } \section{Warning }{Still an experimental version! Only binary classification is supported.} \seealso{ \code{\link[rrcov]{Linda}}, \code{\link[rrcov]{LdaClassic}} } \examples{ ## ## Function to plot a LDA separation line ## lda.line <- function(lda, ...) { ab <- lda@ldf[1,] - lda@ldf[2,] cc <- lda@ldfconst[1] - lda@ldfconst[2] abline(a=-cc/ab[2], b=-ab[1]/ab[2],...) } data(pottery) x <- pottery[,c("MG", "CA")] grp <- pottery$origin col <- c(3,4) gcol <- ifelse(grp == "Attic", col[1], col[2]) gpch <- ifelse(grp == "Attic", 16, 1) ## ## Reproduce Fig. 2. from Pires and branco (2010) ## plot(CA~MG, data=pottery, col=gcol, pch=gpch) \dontrun{ ppc <- LdaPP(x, grp, method="class", optim=TRUE) lda.line(ppc, col=1, lwd=2, lty=1) pph <- LdaPP(x, grp, method="huber",optim=TRUE) lda.line(pph, col=3, lty=3) pps <- LdaPP(x, grp, method="sest", optim=TRUE) lda.line(pps, col=4, lty=4) ppm <- LdaPP(x, grp, method="mad", optim=TRUE) lda.line(ppm, col=5, lty=5) rlda <- Linda(x, grp, method="mcd") lda.line(rlda, col=6, lty=1) fsa <- Linda(x, grp, method="fsa") lda.line(fsa, col=8, lty=6) ## Use the formula interface: ## LdaPP(origin~MG+CA, data=pottery) ## use the same two predictors LdaPP(origin~., data=pottery) ## use all predictor variables ## ## Predict method data(pottery) fit <- LdaPP(origin~., data = pottery) predict(fit) } } \keyword{robust} \keyword{multivariate} rrcov/man/CovControlSest.Rd0000644000176200001440000000433614443667016015417 0ustar liggesusers\name{CovControlSest} \alias{CovControlSest} \title{ Constructor function for objects of class "CovControlSest" } \concept{High breakdown point} \description{ This function will create a control object \code{CovControlSest} containing the control parameters for \code{CovSest} } \usage{ CovControlSest(bdp = 0.5, arp = 0.1, eps = 1e-5, maxiter = 120, nsamp = 500, seed = NULL, trace = FALSE, tolSolve = 1e-14, method= "sfast") } \arguments{ \item{bdp}{ a numeric value specifying the required breakdown point. Allowed values are between \code{(n - p)/(2 * n)} and 1 and the default is 0.45 } \item{arp}{a numeric value specifying the asympthotic rejection point (for the Rocke type S estimates), i.e. the fraction of points receiving zero weight (see Rocke (1996)). Default is \code{0.1} } \item{eps}{a numeric value specifying the relative precision of the solution of the S-estimate (bisquare and Rocke type). Defaults to \code{1e-5}. } \item{maxiter}{maximum number of iterations allowed in the computation of the S-estimate (bisquare and Rocke type). Defaults to 120. } \item{nsamp}{the number of random subsets considered. Default is \code{nsamp = 500}.} \item{seed}{starting value for random generator. Default is \code{seed = NULL}.} \item{trace}{whether to print intermediate results. Default is \code{trace = FALSE}.} \item{tolSolve}{numeric tolerance to be used for inversion (\code{\link{solve}}) of the covariance matrix in \code{\link{mahalanobis}}. } \item{method}{ Which algorithm to use: 'sfast'=FAST-S or 'surreal'=SURREAL } } %\details{} \value{ A \code{CovControlSest} object. } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{Valentin Todorov \email{valentin.todorov@chello.at}} \examples{ ## the following two statements are equivalent ctrl1 <- new("CovControlSest", bdp=0.4) ctrl2 <- CovControlSest(bdp=0.4) data(hbk) CovSest(hbk, control=ctrl1) } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/lmom33.Rd0000644000176200001440000000405214443667016013575 0ustar liggesusers\name{lmom33} \alias{lmom33} \docType{data} \title{ Hosking and Wallis Data Set, Table 3.3} \description{ The data on annual maximum streamflow at 17 sites with largest drainage area basins in southeastern USA contains the sample L-moments ratios (L-CV, L-skewness and L-kurtosis) as used by Hosking and Wallis (1997) to illustrate the discordancy measure in regional freqency analysis (RFA). } \usage{data(lmom33)} \format{ A data frame with 17 observations on the following 3 variables. \describe{ \item{\code{L-CV}}{L-coefficient of variation} \item{\code{L-skewness}}{L-coefficient of skewness} \item{\code{L-kurtosis}}{L-coefficient of kurtosis} } } \details{ The sample L-moment ratios (L-CV, L-skewness and L-kurtosis) of a site are regarded as a point in three dimensional space. } \source{ Hosking, J. R. M. and J. R. Wallis (1997), \emph{Regional Frequency Analysis: An Approach Based on L-moments.} Cambridge University Press, p.51, Table 3.3 } \references{ Neykov, N.M., Neytchev, P.N., Van Gelder, P.H.A.J.M. and Todorov V. (2007), Robust detection of discordant sites in regional frequency analysis, \emph{Water Resources Research}, 43, W06417, doi:10.1029/2006WR005322 } \examples{ data(lmom33) # plot a matrix of scatterplots pairs(lmom33, main="Hosking and Wallis Data Set, Table 3.3", pch=21, bg=c("red", "green3", "blue")) mcd<-CovMcd(lmom33) mcd plot(mcd, which="dist", class=TRUE) plot(mcd, which="dd", class=TRUE) ## identify the discordant sites using robust distances and compare ## to the classical ones mcd <- CovMcd(lmom33) rd <- sqrt(getDistance(mcd)) ccov <- CovClassic(lmom33) cd <- sqrt(getDistance(ccov)) r.out <- which(rd > sqrt(qchisq(0.975,3))) c.out <- which(cd > sqrt(qchisq(0.975,3))) cat("Robust: ", length(r.out), " outliers: ", r.out,"\n") cat("Classical: ", length(c.out), " outliers: ", c.out,"\n") } \keyword{datasets} rrcov/man/estimate-methods.Rd0000644000176200001440000000242014443667016015734 0ustar liggesusers\name{restimate-methods} \docType{methods} \alias{restimate} \alias{restimate-methods} \alias{restimate,CovControlMest-method} \title{ Methods for Function estimate in Package 'rrcov'} \description{ Each concrete control class, like \code{CovControlMest}, \code{CovControlOgk}, etc., should implement an \code{restimate} method which will call the correponding (constructor)-function and will return the obtained S4 class, derived from \code{CovRobust}. } \usage{ \S4method{restimate}{CovControlMest}(obj, x, ...) } \arguments{ \item{obj}{an object of class \code{"CovControlEstimate"}} \item{x}{ Data frame or matrix containing the data }. \item{... }{ other parameters to be passed through to the estimation function. } } \section{Methods}{ \describe{ \item{obj = "CovControlMcd"}{ Compute the MCD estimates of multivariate location and scatter by calling\code{CovMcd} } \item{obj = "CovControlMest"}{ Compute the constrained M-estimates of multivariate location and scatter by calling\code{CovMest} } \item{obj = "CovControlOgk"}{ Compute the Ortogonalized Gnanadesikan-Kettenring (OGK) estimates of multivariate location and scatter by calling\code{CovOgk} } }} \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/lmom32.Rd0000644000176200001440000000405014443667016013572 0ustar liggesusers\name{lmom32} \alias{lmom32} \docType{data} \title{ Hosking and Wallis Data Set, Table 3.2} \description{ The data on annual maximum streamflow at 18 sites with smallest drainage area basin in southeastern USA contains the sample L-moments ratios (L-CV, L-skewness and L-kurtosis) as used by Hosking and Wallis (1997) to illustrate the discordancy measure in regional freqency analysis (RFA). } \usage{data(lmom32)} \format{ A data frame with 18 observations on the following 3 variables. \describe{ \item{\code{L-CV}}{L-coefficient of variation} \item{\code{L-skewness}}{L-coefficient of skewness} \item{\code{L-kurtosis}}{L-coefficient of kurtosis} } } \details{ The sample L-moment ratios (L-CV, L-skewness and L-kurtosis) of a site are regarded as a point in three dimensional space. } \source{ Hosking, J. R. M. and J. R. Wallis (1997), \emph{Regional Frequency Analysis: An Approach Based on L-moments.} Cambridge University Press, p.49, Table 3.2 } \references{ Neykov, N.M., Neytchev, P.N., Van Gelder, P.H.A.J.M. and Todorov V. (2007), Robust detection of discordant sites in regional frequency analysis, \emph{Water Resources Research}, 43, W06417, doi:10.1029/2006WR005322 } \examples{ data(lmom32) # plot a matrix of scatterplots pairs(lmom32, main="Hosking and Wallis Data Set, Table 3.3", pch=21, bg=c("red", "green3", "blue")) mcd<-CovMcd(lmom32) mcd plot(mcd, which="dist", class=TRUE) plot(mcd, which="dd", class=TRUE) ## identify the discordant sites using robust distances and compare ## to the classical ones mcd <- CovMcd(lmom32) rd <- sqrt(getDistance(mcd)) ccov <- CovClassic(lmom32) cd <- sqrt(getDistance(ccov)) r.out <- which(rd > sqrt(qchisq(0.975,3))) c.out <- which(cd > sqrt(qchisq(0.975,3))) cat("Robust: ", length(r.out), " outliers: ", r.out,"\n") cat("Classical: ", length(c.out), " outliers: ", c.out,"\n") } \keyword{datasets} rrcov/man/maryo.Rd0000644000176200001440000000364414443667016013620 0ustar liggesusers\name{maryo} \alias{maryo} \docType{data} \title{ Marona and Yohai Artificial Data} \description{ Simple artificial data set generated according the example by Marona and Yohai (1998). The data set consists of 20 bivariate normal observations generated with zero means, unit variances and correlation 0.8. The sample correlation is 0.81. Two outliers are introduced (i.e. these are 10\% of the data) in the following way: two points are modified by interchanging the largest (observation 19) and smallest (observation 9) value of the first coordinate. The sample correlation becomes 0.05. This example provides a good example of the fact that a multivariate outlier need not be an outlier in any of its coordinate variables. } \usage{data(maryo)} \format{ A data frame with 20 observations on 2 variables. To introduce the outliers x[9,1] with x[19,1] are interchanged. % \describe{ % \item{V1}{x[1]} % \item{V2}{x[2]} % } } %\details{} \source{ R. A. Marona and V. J. Yohai (1998) Robust estimation of multivariate location and scatter. In \emph{Encyclopedia of Statistical Sciences, Updated Volume 2} (Eds. S.Kotz, C.Read and D.Banks). Wiley, New York p. 590 } %\references{} \examples{ data(maryo) getCorr(CovClassic(maryo)) ## the sample correlation is 0.81 ## Modify 10%% of the data in the following way: ## modify two points (out of 20) by interchanging the ## largest and smallest value of the first coordinate imin <- which(maryo[,1]==min(maryo[,1])) # imin = 9 imax <- which(maryo[,1]==max(maryo[,1])) # imax = 19 maryo1 <- maryo maryo1[imin,1] <- maryo[imax,1] maryo1[imax,1] <- maryo[imin,1] ## The sample correlation becomes 0.05 plot(maryo1) getCorr(CovClassic(maryo1)) ## the sample correlation becomes 0.05 getCorr(CovMcd(maryo1)) ## the (reweighted) MCD correlation is 0.79 } \keyword{datasets} rrcov/man/LdaClassic-class.Rd0000644000176200001440000000354114443667016015572 0ustar liggesusers\name{LdaClassic-class} \docType{class} \alias{LdaClassic-class} \title{Class "LdaClassic" - Linear Discriminant Analysis } \description{ Contains the results of a classical Linear Discriminant Analysis } \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("LdaClassic", ...)} but the usual way of creating \code{LdaClassic} objects is a call to the function \code{LdaClassic} which serves as a constructor. }\section{Slots}{ \describe{ \item{\code{call}:}{The (matched) function call.} \item{\code{prior}:}{Prior probabilities used, default to group proportions} \item{\code{counts}:}{number of observations in each class} \item{\code{center}:}{the group means} \item{\code{cov}:}{the common covariance matrix} \item{\code{ldf}:}{a matrix containing the linear discriminant functions} \item{\code{ldfconst}:}{a vector containing the constants of each linear discriminant function} \item{\code{method}:}{a character string giving the estimation method used} \item{\code{X}:}{the training data set (same as the input parameter x of the constructor function)} \item{\code{grp}:}{grouping variable: a factor specifying the class for each observation.} } } \section{Extends}{ Class \code{"\linkS4class{Lda}"}, directly. } \section{Methods}{ No methods defined with class "LdaClassic" in the signature. } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} } \seealso{ \code{\link{LdaRobust-class}}, \code{\link{Lda-class}}, \code{\link{LdaClassic}} } \examples{ showClass("LdaClassic") } \keyword{robust} \keyword{multivariate} rrcov/man/Lda-class.Rd0000644000176200001440000000560614443667016014274 0ustar liggesusers\name{Lda-class} \docType{class} \alias{Lda-class} \alias{predict,Lda-method} \alias{show,Lda-method} \alias{summary,Lda-method} \title{Class "Lda" - virtual base class for all classic and robust LDA classes } \description{ The class \code{Lda} serves as a base class for deriving all other classes representing the results of classical and robust Linear Discriminant Analisys methods } \section{Objects from the Class}{A virtual Class: No objects may be created from it.} \section{Slots}{ \describe{ \item{\code{call}:}{the (matched) function call.} \item{\code{prior}:}{prior probabilities used, default to group proportions} \item{\code{counts}:}{number of observations in each class} \item{\code{center}:}{the group means} \item{\code{cov}:}{the common covariance matrix} \item{\code{ldf}:}{a matrix containing the linear discriminant functions} \item{\code{ldfconst}:}{a vector containing the constants of each linear discriminant function} \item{\code{method}:}{a character string giving the estimation method used} \item{\code{X}:}{the training data set (same as the input parameter x of the constructor function)} \item{\code{grp}:}{grouping variable: a factor specifying the class for each observation.} \item{\code{covobj}:}{object of class \code{"Cov"} containing the estimate of the common covariance matrix of the centered data. It is not NULL only in case of method "B".} \item{\code{control}:}{object of class \code{"CovControl"} specifying which estimate and with what estimation options to use for the group means and common covariance (or \code{NULL} for classical linear discriminant analysis)} } } \section{Methods}{ \describe{ \item{predict}{\code{signature(object = "Lda")}: calculates prediction using the results in \code{object}. An optional data frame or matrix in which to look for variables with which to predict. If omitted, the training data set is used. If the original fit used a formula or a data frame or a matrix with column names, newdata must contain columns with the same names. Otherwise it must contain the same number of columns, to be used in the same order. } \item{show}{\code{signature(object = "Lda")}: prints the results } \item{summary}{\code{signature(object = "Lda")}: prints summary information } } } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} } \seealso{ \code{\link{LdaClassic}}, \code{\link{LdaClassic-class}}, \code{\link{LdaRobust-class}} } \examples{ showClass("Lda") } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/rice.Rd0000644000176200001440000000250014443667016013401 0ustar liggesusers\name{rice} \alias{rice} \docType{data} \title{ Rice taste data} \description{ The rice taste data consists of five inputs and a single output whose values are associated with subjective evaluations as follows: xl: flavor, x2: appearance, x3: taste, x4: stickiness, x5: toughness, y: overall evaluation. Sensory test data have been obtained by such subjective evaluations for 105 kinds of rice (e.g., Sasanishiki, Akita-Komachi, etc.). The data set was used by Nozaki et al. (1997) to demonstrate the high performance of a proposed for automatically generating fuzzy if-then rules from numerical data. } \usage{data(rice)} \format{ A data frame with 105 observations on the following 6 variables: \describe{ \item{\code{Favor}}{compactness} \item{\code{Appearance}}{circularity} \item{\code{Taste}}{distance circularity} \item{\code{Stickiness}}{radius ratio} \item{\code{Toughness}}{principal axis aspect ratio} \item{\code{Overall_evaluation}}{maximum length aspect ratio} } } %%\details{} \source{ Nozaki, K., Ishibuchi, H, and Tanaka, H. (1997) A simple but powerful heuristic method for generating fuzzy rules from numerical data \emph{Fuzzy Sets and Systems} \bold{86} 3 p. 251--270. } %\references{} %\examples{} \keyword{datasets} rrcov/man/scorePlot.Rd0000644000176200001440000000252314443667016014436 0ustar liggesusers\name{scorePlot-methods} \docType{methods} \alias{scorePlot} \alias{scorePlot-methods} \alias{scorePlot,ANY-method} \alias{scorePlot,Pca-method} \title{ Score plot for Principal Components (objects of class 'Pca') } \description{ Produces a score plot from an object (derived from) \code{\link{Pca-class}}. } \usage{ \S4method{scorePlot}{Pca}(x, i=1, j=2, \dots) } \arguments{ \item{x}{an object of class (derived from) \code{"Pca"}.} \item{i}{First score coordinate, defaults to \code{i=1}.} \item{j}{Second score coordinate, defaults to \code{j=2}.} \item{\dots}{optional arguments to be passed to the internal graphical functions.} } \section{Side Effects}{ a plot is produced on the current graphics device. } \section{Methods}{ \describe{ \item{scorePlot}{\code{signature(x = Pca)}: Plot a scatter plot of ith against jth score of the Pca object with superimposed tollerance (0.975) ellipse. See also \code{\link{biplot}}, \code{\link{screeplot}}.} }} %\references{} \seealso{ \code{\link{Pca-class}}, \code{\link{PcaClassic}}, \code{\link{PcaRobust-class}}. } \examples{ require(graphics) ## PCA of the Hawkins Bradu Kass's Artificial Data ## using all 4 variables data(hbk) pca <- PcaHubert(hbk) pca scorePlot(pca) } \keyword{multivariate} \keyword{hplot} rrcov/man/PcaRobust-class.Rd0000644000176200001440000000516314443667016015474 0ustar liggesusers\name{PcaRobust-class} \docType{class} \alias{PcaRobust-class} \title{Class "PcaRobust" is a virtual base class for all robust PCA classes } \description{ The class \code{PcaRobust} searves as a base class for deriving all other classes representing the results of the robust Principal Component Analisys methods} \section{Objects from the Class}{A virtual Class: No objects may be created from it.} \section{Slots}{ \describe{ \item{\code{call}:}{Object of class \code{"language"} } \item{\code{center}:}{Object of class \code{"vector"} the center of the data } \item{\code{loadings}:}{Object of class \code{"matrix"} the matrix of variable loadings (i.e., a matrix whose columns contain the eigenvectors) } \item{\code{eigenvalues}:}{Object of class \code{"vector"} the eigenvalues } \item{\code{scores}:}{Object of class \code{"matrix"} the scores - the value of the projected on the space of the principal components data (the centred (and scaled if requested) data multiplied by the \code{loadings} matrix) is returned. Hence, \code{cov(scores)} is the diagonal matrix \code{diag(eigenvalues)} } \item{\code{k}:}{Object of class \code{"numeric"} number of (choosen) principal components } \item{\code{sd}:}{Object of class \code{"Uvector"} Score distances within the robust PCA subspace } \item{\code{od}:}{Object of class \code{"Uvector"} Orthogonal distances to the robust PCA subspace } \item{\code{cutoff.sd}:}{Object of class \code{"numeric"} Cutoff value for the score distances} \item{\code{cutoff.od}:}{Object of class \code{"numeric"} Cutoff values for the orthogonal distances } \item{\code{flag}:}{Object of class \code{"Uvector"} The observations whose score distance is larger than cutoff.sd or whose orthogonal distance is larger than cutoff.od can be considered as outliers and receive a flag equal to zero. The regular observations receive a flag 1 } \item{\code{n.obs}:}{Object of class \code{"numeric"} the number of observations } } } \section{Extends}{ Class \code{"\linkS4class{Pca}"}, directly. } \section{Methods}{ No methods defined with class "PcaRobust" in the signature. } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} } \seealso{ \code{\link{Pca-class}}, \code{\link{PcaClassic-class}}, } \examples{ showClass("PcaRobust") } \keyword{robust} \keyword{multivariate} rrcov/man/QdaCov.Rd0000644000176200001440000000350014443667016013635 0ustar liggesusers\name{QdaCov} \alias{QdaCov} \alias{QdaCov.formula} \alias{QdaCov.default} \title{ Robust Quadratic Discriminant Analysis } \description{ Performs robust quadratic discriminant analysis and returns the results as an object of class \code{QdaCov} (aka constructor). } \usage{ QdaCov(x, ...) \method{QdaCov}{default}(x, grouping, prior = proportions, tol = 1.0e-4, method = CovControlMcd(), ...) } \arguments{ \item{x}{a matrix or data frame containing the explanatory variables (training set). } \item{grouping}{grouping variable: a factor specifying the class for each observation.} \item{prior}{prior probabilities, default to the class proportions for the training set.} \item{tol}{tolerance} \item{method}{method} \item{\dots}{arguments passed to or from other methods} } \details{ details } \value{ Returns an S4 object of class \code{QdaCov} } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} } \section{Warning }{Still an experimental version!} \seealso{ \code{\link[rrcov]{CovMcd}} } \examples{ ## Example anorexia library(MASS) data(anorexia) ## start with the classical estimates qda <- QdaClassic(Treat~., data=anorexia) predict(qda)@classification ## try now the robust LDA with the default method (MCD with pooled whitin cov matrix) rqda <- QdaCov(Treat~., data= anorexia) predict(rqda)@classification ## try the other methods QdaCov(Treat~., data= anorexia, method="sde") QdaCov(Treat~., data= anorexia, method="M") QdaCov(Treat~., data= anorexia, method=CovControlOgk()) } \keyword{robust} \keyword{multivariate} rrcov/man/CovRobust-class.Rd0000644000176200001440000000533414443667016015520 0ustar liggesusers\name{CovRobust-class} \Rdversion{1.1} \docType{class} \alias{CovRobust-class} \alias{isClassic,CovRobust-method} \alias{getMeth,CovRobust-method} \alias{show,CovRobust-method} \alias{summary,CovRobust-method} \alias{getRaw,CovRobust-method} \title{Class "CovRobust" - virtual base class for robust estimates of multivariate location and scatter} \description{ \code{CovRobust} is a virtual base class used for deriving the concrete classes representing different robust estimates of multivariate location and scatter. Here are implemeted the standard methods common for all robust estimates like \code{show}, \code{summary} and \code{plot}. The derived classes can override these methods and can define new ones.} \section{Objects from the Class}{A virtual Class: No objects may be created from it.} \section{Slots}{ \describe{ \item{\code{iter}:}{number of iterations used to compute the estimates} \item{\code{crit}:}{value of the criterion function} \item{\code{wt}:}{weights} \item{\code{call}, \code{cov}, \code{center}, \code{n.obs}, \code{mah}, \code{method}, \code{singularity}, \code{X}:}{from the \code{"\linkS4class{Cov}"} class. } } } \section{Extends}{ Class \code{"\linkS4class{Cov}"}, directly. } \section{Methods}{ \describe{ \item{isClassic}{\code{signature(obj = "CovRobust")}: Will return FALSE, since this is a 'Robust' object } \item{getMeth}{\code{signature(obj = "CovRobust")}: Return the name of the particular robust method used (as a character string) } \item{show}{\code{signature(object = "CovRobust")}: display the object } \item{plot}{\code{signature(x = "CovRobust")}: plot the object } \item{getRaw}{\code{signature(obj = "CovRobust")}: Return the object with the reweighted estimates replaced by the raw ones (only relevant for CovMcd, CovMve and CovOgk) } } } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{Valentin Todorov \email{valentin.todorov@chello.at}} \seealso{ \code{\link{Cov-class}}, \code{\link{CovMcd-class}}, \code{\link{CovMest-class}}, \code{\link{CovOgk-class}} } \examples{ data(hbk) hbk.x <- data.matrix(hbk[, 1:3]) cv <- CovMest(hbk.x) # it is not possible to create an object of # class CovRobust, since it is a VIRTUAL class cv summary(cv) # summary method for class CovRobust plot(cv) # plot method for class CovRobust } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/CovMrcd-class.Rd0000644000176200001440000000520114443667016015120 0ustar liggesusers\name{CovMrcd-class} \Rdversion{1.1} \docType{class} \alias{CovMrcd-class} \title{ MRCD Estimates of Multivariate Location and Scatter } \description{ This class, derived from the virtual class \code{"CovRobust"} accomodates MRCD Estimates of multivariate location and scatter computed by a variant of the \sQuote{Fast MCD} algorithm. } \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("CovMrcd", ...)}, but the usual way of creating \code{CovMrcd} objects is a call to the function \code{CovMrcd} which serves as a constructor. } \section{Slots}{ \describe{ \item{\code{alpha}:}{Object of class \code{"numeric"} - the size of the subsets over which the determinant is minimized (the default is (n+p+1)/2) } \item{\code{quan}:}{Object of class \code{"numeric"} - the number of observations on which the MCD is based. If \code{quan} equals \code{n.obs}, the MCD is the classical covariance matrix. } \item{\code{best}:}{Object of class \code{"Uvector"} - the best subset found and used for computing the raw estimates. The size of \code{best} is equal to \code{quan} } \item{\code{cnp2}:}{Object of class \code{"numeric"} - containing the consistency correction factor of the estimate of the covariance matrix. } \item{\code{icov}:}{The inverse of the covariance matrix. } \item{\code{rho}:}{The estimated regularization parameter. } \item{\code{target}:}{The estimated target matrix. } \item{\code{crit}:}{from the \code{"\linkS4class{CovRobust}"} class. } \item{\code{call}, \code{cov}, \code{center}, \code{n.obs}, \code{mah}, \code{method}, \code{X}:}{from the \code{"\linkS4class{Cov}"} class. } } } \section{Extends}{ Class \code{"\linkS4class{CovRobust}"}, directly. Class \code{"\linkS4class{Cov}"}, by class \code{"\linkS4class{CovRobust}"}. } \section{Methods}{ No methods defined with class \code{"CovMrcd"} in the signature. } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} } \seealso{ \code{\link{CovMrcd}}, \code{\link{Cov-class}}, \code{\link{CovRobust-class}}, \code{\link{CovMcd-class}} } \examples{ showClass("CovMrcd") } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/PcaCov-class.Rd0000644000176200001440000000356714443667016014753 0ustar liggesusers\name{PcaCov-class} \Rdversion{1.1} \docType{class} \alias{PcaCov-class} \alias{getQuan,PcaCov-method} \title{Class "PcaCov" - Robust PCA based on a robust covariance matrix } \description{ Robust PCA are obtained by replacing the classical covariance matrix by a robust covariance estimator. This can be one of the available in \code{rrcov} estimators, i.e. MCD, OGK, M, S or Stahel-Donoho estimator. } \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("PcaCov", ...)} but the usual way of creating \code{PcaCov} objects is a call to the function \code{PcaCov} which serves as a constructor. } \section{Slots}{ \describe{ \item{\code{quan}:}{Object of class \code{"numeric"} The quantile \code{h} used throughout the algorithm } \item{\code{call}, \code{center}, \code{rank}, \code{loadings}, \code{eigenvalues}, \code{scores}, \code{k}, \code{sd}, \code{od}, \code{cutoff.sd}, \code{cutoff.od}, \code{flag}, \code{n.obs}, \code{eig0}, \code{totvar0}:}{ from the \code{"\linkS4class{Pca}"} class. } } } \section{Extends}{ Class \code{"\linkS4class{PcaRobust}"}, directly. Class \code{"\linkS4class{Pca}"}, by class "PcaRobust", distance 2. } \section{Methods}{ \describe{ \item{getQuan}{\code{signature(obj = "PcaCov")}: ... } } } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} } \seealso{ \code{\link{PcaRobust-class}}, \code{\link{Pca-class}}, \code{\link{PcaClassic}}, \code{\link{PcaClassic-class}} } \examples{ showClass("PcaCov") } \keyword{robust} \keyword{multivariate} rrcov/man/rrcov-utils.Rd0000644000176200001440000000413514556236111014747 0ustar liggesusers\name{rrcov-utils} \title{Different utility functions to be used in rrcov and packages depending on rrcov} \alias{myscreeplot} % plots screeplots for two covariance matrices \alias{mtxconfusion} % computes a confusion matrix %% %% MATLAB-like functions %% \alias{sqrtm} % returns the square root of a symetric positive definite matrix %\alias{ones} % returns a nxp matrix filled with ones %\alias{zeros} % returns a nxp matrix filled with zeros \alias{vecnorm} % returns the norm of a vector %\alias{repmat} % replicates a matrix \usage{ myscreeplot(rcov, ccov) mtxconfusion(actual, predicted, prior = NULL, printit=FALSE) sqrtm(A) % ones(n=1, p=1) % zeros(n=1, p=1) % repmat(A, n, p) } \arguments{ \item{A}{A matrix.} % \item{tol}{Optional numerical tolerance (compared to singular values).} % \item{sv}{A vector of non-increasing singular values of a matrix A, if already computed.} \item{rcov, ccov}{Covariance matrices.} % \item{n}{Number of rows.} % \item{p}{Number of columns.} \item{actual}{Actual class membership.} \item{predicted}{Predicted class membership.} \item{prior}{Prior probabilities.} \item{printit}{Wheather to print the results.} } \description{ Different utility functions to be used in rrcov and packages depending on rrcov: \itemize{ \item \code{myscreeplot} Plots screeplots for two covariance matrices \item \code{mtxconfusion} Computes a confusion matrix between actual and predicted class membership \item MATLAB-like functions \itemize{ \item \code{sqrtm} Returns the square root of a symetric positive definite matrix \item \code{ones} Returns a nxp matrix filled with ones \item \code{zeros} Returns a nxp matrix filled with zeros \item \code{vecnorm} Returns the norm of a vector \item \code{rankMM} Returns the rank of the matrix \item \code{repmat} Replicates a matrix } } } %\details{} \author{Valentin Todorov \email{valentin.todorov@chello.at}} \keyword{internal} rrcov/man/Cascades.Rd0000644000176200001440000000401114443667016014164 0ustar liggesusers\name{Cascades} \alias{Cascades} \docType{data} \title{ Annual precipitation totals for the North Cascades region} \description{ The data on annual precipitation totals for the North Cascades region contains the sample L-moments ratios (L-CV, L-skewness and L-kurtosis) for 19 sites as used by Hosking and Wallis (1997), page 53, Table 3.4, to illustrate screening tools for regional freqency analysis (RFA). } \usage{data(Cascades)} \format{ A data frame with 19 observations on the following 3 variables. \describe{ \item{\code{L-CV}}{L-coefficient of variation} \item{\code{L-skewness}}{L-coefficient of skewness} \item{\code{L-kurtosis}}{L-coefficient of kurtosis} } } \details{ The sample L-moment ratios (L-CV, L-skewness and L-kurtosis) of a site are regarded as a point in three dimensional space. } \source{ Hosking, J. R. M. and J. R. Wallis (1997), \emph{Regional Frequency Analysis: An Approach Based on L-moments.} Cambridge University Press, p. 52--53 } \references{ Neykov, N.M., Neytchev, P.N., Van Gelder, P.H.A.J.M. and Todorov V. (2007), Robust detection of discordant sites in regional frequency analysis, \emph{Water Resources Research}, 43, W06417, doi:10.1029/2006WR005322 } \examples{ data(Cascades) # plot a matrix of scatterplots pairs(Cascades, main="Cascades data set", pch=21, bg=c("red", "green3", "blue")) mcd<-CovMcd(Cascades) mcd plot(mcd, which="dist", class=TRUE) plot(mcd, which="dd", class=TRUE) ## identify the discordant sites using robust distances and compare ## to the classical ones rd <- sqrt(getDistance(mcd)) ccov <- CovClassic(Cascades) cd <- sqrt(getDistance(ccov)) r.out <- which(rd > sqrt(qchisq(0.975,3))) c.out <- which(cd > sqrt(qchisq(0.975,3))) cat("Robust: ", length(r.out), " outliers: ", r.out,"\n") cat("Classical: ", length(c.out), " outliers: ", c.out,"\n") } \keyword{datasets} rrcov/man/CovSest-class.Rd0000644000176200001440000000423714443667016015161 0ustar liggesusers\name{CovSest-class} \Rdversion{1.1} \docType{class} \alias{CovSest-class} \title{ S Estimates of Multivariate Location and Scatter } \description{ This class, derived from the virtual class \code{"CovRobust"} accomodates S Estimates of multivariate location and scatter computed by the \sQuote{Fast S} or \sQuote{SURREAL} algorithm.} \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("CovSest", ...)}, but the usual way of creating \code{CovSest} objects is a call to the function \code{CovSest} which serves as a constructor. } \section{Slots}{ \describe{ \item{\code{iter}, \code{crit}, \code{wt}:}{from the \code{"\linkS4class{CovRobust}"} class. } \item{\code{iBest}, \code{nsteps}, \code{initHsets}:}{parameters for deterministic S-estimator (the best initial subset, number of concentration steps to convergence for each of the initial subsets, and the computed initial subsets, respectively). } \item{\code{cc}, \code{kp}}{tuning parameters used in Tukey biweight loss function, as determined by bdp. Can be computed by the internal function \code{.csolve.bw.S(bdp, p)}. } \item{\code{call}, \code{cov}, \code{center}, \code{n.obs}, \code{mah}, \code{method}, \code{singularity}, \code{X}:}{from the \code{"\linkS4class{Cov}"} class. } } } \section{Extends}{ Class \code{"\linkS4class{CovRobust}"}, directly. Class \code{"\linkS4class{Cov}"}, by class \code{"\linkS4class{CovRobust}"}. } \section{Methods}{ No methods defined with class "CovSest" in the signature. } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} } \seealso{ \code{\link{CovSest}}, \code{\link{Cov-class}}, \code{\link{CovRobust-class}} } \examples{ showClass("CovSest") } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/LdaClassic.Rd0000644000176200001440000000325414443667016014470 0ustar liggesusers\name{LdaClassic} \alias{LdaClassic} \alias{LdaClassic.formula} \alias{LdaClassic.default} \title{ Linear Discriminant Analysis } \description{ Performs a linear discriminant analysis and returns the results as an object of class \code{LdaClassic} (aka constructor). } \usage{ LdaClassic(x, ...) %%\method{LdaClassic}{formula}(formula, data = NULL, subset, na.action, \dots) \method{LdaClassic}{default}(x, grouping, prior = proportions, tol = 1.0e-4, ...) } \arguments{ \item{x}{a matrix or data frame containing the explanatory variables (training set). } \item{grouping}{grouping variable: a factor specifying the class for each observation.} \item{prior}{prior probabilities, default to the class proportions for the training set.} \item{tol}{tolerance} \item{\dots}{arguments passed to or from other methods.} } %\details{} \value{ Returns an S4 object of class \code{LdaClassic} } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} } \seealso{ \code{\link{Lda-class}}, \code{\link{LdaClassic-class}}, } \examples{ ## Example anorexia library(MASS) data(anorexia) ## rrcov: LdaClassic() lda <- LdaClassic(Treat~., data=anorexia) predict(lda)@classification ## MASS: lda() lda.MASS <- lda(Treat~., data=anorexia) predict(lda.MASS)$class ## Compare the prediction results of MASS:::lda() and LdaClassic() all.equal(predict(lda)@classification, predict(lda.MASS)$class) } \keyword{robust} \keyword{multivariate} rrcov/man/hemophilia.Rd0000644000176200001440000000462514443667016014610 0ustar liggesusers\name{hemophilia} \alias{hemophilia} \docType{data} \title{ Hemophilia Data } \description{ The hemophilia data set contains two measured variables on 75 women, belonging to two groups: n1=30 of them are non-carriers (normal group) and n2=45 are known hemophilia A carriers (obligatory carriers). } \usage{data(hemophilia)} \format{ A data frame with 75 observations on the following 3 variables. \describe{ \item{\code{AHFactivity}}{AHF activity} \item{\code{AHFantigen}}{AHF antigen} \item{\code{gr}}{group - normal or obligatory carrier} } } \details{ Originally analized in the context of discriminant analysis by Habemma and Hermans (1974). The objective is to find a procedure for detecting potential hemophilia A carriers on the basis of two measured variables: X1=log10(AHV activity) and X2=log10(AHV-like antigen). The first group of n1=30 women consists of known non-carriers (normal group) and the second group of n2=45 women is selected from known hemophilia A carriers (obligatory carriers). This data set was also analyzed by Johnson and Wichern (1998) as well as, in the context of robust Linear Discriminant Analysis by Hawkins and McLachlan (1997) and Hubert and Van Driessen (2004). } \source{ Habemma, J.D.F, Hermans, J. and van den Broek, K. (1974) Stepwise Discriminant Analysis Program Using Density Estimation in \emph{Proceedings in Computational statistics, COMPSTAT`1974} (Physica Verlag, Heidelberg, 1974, pp 101--110). } \references{ Johnson, R.A. and Wichern, D. W. \emph{Applied Multivariate Statistical Analysis} (Prentice Hall, International Editions, 2002, fifth edition) Hawkins, D. M. and McLachlan, G.J. (1997) High-Breakdown Linear Discriminant Analysis \emph{J. Amer. Statist. Assoc.} \bold{92} 136--143. Hubert, M., Van Driessen, K. (2004) Fast and robust discriminant analysis, \emph{Computational Statistics and Data Analysis}, \bold{45} 301--320. } \examples{ data(hemophilia) plot(AHFantigen~AHFactivity, data=hemophilia, col=as.numeric(as.factor(gr))+1) ## ## Compute robust location and covariance matrix and ## plot the tolerance ellipses (mcd <- CovMcd(hemophilia[,1:2])) col <- ifelse(hemophilia$gr == "carrier", 2, 3) ## define clours for the groups plot(mcd, which="tolEllipsePlot", class=TRUE, col=col) %x <- hemophilia[,-3] %gr <- hemophilia[,3] %Linda(x, gr, method="ogk") } \keyword{datasets} rrcov/man/salmon.Rd0000644000176200001440000000206714443667016013760 0ustar liggesusers\name{salmon} \alias{salmon} \docType{data} \title{ Salmon data } \description{ The salmon data contains two measurements of the growth rings on the scale of Alaskan and Canadian salmon as well as the gender of the fishes. There are 50 Alaskan-born and 50 Canadian-born salmon, and this information is coded in the variable \code{Origin}. } \usage{data(salmon)} \format{ A data frame with 100 observations on the following 4 variables. \describe{ \item{\code{Gender}}{female=1 and male=2} \item{\code{Freshwater}}{diameter of rings for the first-year freshwater growth (hundrets of an inch)} \item{\code{Marine}}{diameter of rings for the first-year marine growth (hundrets of an inch)} \item{\code{Origin}}{Origin of the fish: a factor with levels \code{Alaskan} \code{Canadian}} } } %\details{} \source{ Johnson, R.A. and Wichern, D. W. \emph{Applied Multivariate Statistical Analysis} (Prentice Hall, International Editions, 2002, fifth edition)} %\references{} \examples{ data(salmon) } \keyword{datasets} rrcov/man/PredictQda-class.Rd0000644000176200001440000000246714443667016015616 0ustar liggesusers\name{PredictQda-class} \docType{class} \alias{PredictQda-class} \alias{show,PredictQda-method} \title{Class "PredictQda" - prediction of "Qda" objects } \description{ The prediction of a "Qda" object } \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("PredictQda", ...)} but most often by invoking 'predict' on a "Qda" object. They contain values meant for printing by 'show'} \section{Slots}{ \describe{ \item{\code{classification}:}{a factor variable containing the classification of each object } \item{\code{posterior}:}{a matrix containing the posterior probabilities } \item{\code{x}:}{ matrix with the discriminant scores } \item{\code{ct}:}{re-classification table of the training sample} } } \section{Methods}{ \describe{ \item{show}{\code{signature(object = "PredictQda")}: prints the results } } } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{Valentin Todorov \email{valentin.todorov@chello.at}} %\note{} \seealso{ \code{\link{Qda-class}} } \examples{ showClass("PredictQda") } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/OsloTransect.Rd0000644000176200001440000001160614443667016015106 0ustar liggesusers\name{OsloTransect} \alias{OsloTransect} \docType{data} \title{ Oslo Transect Data } \description{ The oslo Transect data set contains 360 samples of different plant species collected along a 120 km transect running through the city of Oslo, Norway. } \usage{data(OsloTransect)} \format{ A data frame with 360 observations on the following 38 variables. \describe{ \item{\code{X.ID}}{a numeric vector, unique ID of the sample} \item{\code{X.MAT}}{a factor with levels \code{BBA} \code{BIL} \code{BWO} \code{FER} \code{MOS} \code{ROG} \code{SNE} \code{STW} \code{TWI}} \item{\code{XCOO}}{a numeric vector, X coordinate} \item{\code{YCOO}}{a numeric vector, Y coordinate} \item{\code{XCOO_km}}{a numeric vector} \item{\code{YCOO_km}}{a numeric vector} \item{\code{X.FOREST}}{a factor with levels \code{BIRSPR} \code{MIXDEC} \code{PINE} \code{SPRBIR} \code{SPRPIN} \code{SPRUCE}} \item{\code{DAY}}{a numeric vector} \item{\code{X.WEATHER}}{a factor with levels \code{CLOUD} \code{MOIST} \code{NICE} \code{RAIN}} \item{\code{ALT}}{a numeric vector} \item{\code{X.ASP}}{a factor with levels \code{} \code{E} \code{FLAT} \code{N} \code{NE} \code{NW} \code{S} \code{SE} \code{SW} \code{W}} \item{\code{X.GRVEG}}{a factor with levels \code{BLGR} \code{BLLY} \code{BLMOLI} \code{BLUE} \code{BLUGRA} \code{GRAS} \code{GRBLU} \code{GRFE} \code{GRMO} \code{LYLI} \code{MIX} \code{MOGR} \code{MOSS}} \item{\code{X.FLITHO}}{a factor with levels \code{CAMSED} \code{GNEID_O} \code{GNEIS_O} \code{GNEIS_R} \code{MAGM} \code{MICSH}} \item{\code{Ag_ppb}}{a numeric vector} \item{\code{As_ash}}{a numeric vector} \item{\code{B}}{a numeric vector} \item{\code{Ba}}{a numeric vector} \item{\code{Ca}}{a numeric vector} \item{\code{Cd}}{a numeric vector} \item{\code{Co}}{a numeric vector} \item{\code{Cr}}{a numeric vector} \item{\code{Cu}}{a numeric vector} \item{\code{Fe}}{a numeric vector} \item{\code{Hg_ppb}}{a numeric vector} \item{\code{K}}{a numeric vector} \item{\code{La}}{a numeric vector} \item{\code{LOI}}{a numeric vector} \item{\code{Mg}}{a numeric vector} \item{\code{Mn}}{a numeric vector} \item{\code{Mo}}{a numeric vector} \item{\code{Ni}}{a numeric vector} \item{\code{P}}{a numeric vector} \item{\code{Pb}}{a numeric vector} \item{\code{S}}{a numeric vector} \item{\code{Sb}}{a numeric vector} \item{\code{Sr}}{a numeric vector} \item{\code{Ti}}{a numeric vector} \item{\code{Zn}}{a numeric vector} } } \details{ Samples of different plant species were collected along a 120 km transect running through the city of Oslo, Norway (forty samples each of leaves, needles,roots or barks of several plant species), and the concentrations of 25 chemical elements for the sample materials are reported. The factors that influenced the observed element concentrations in the sample materials were investigated. This data set was used in Todorov and Filzmoser (2007) for illustration of the robust statistics for one-way MANOVA implemented in the function \code{\link{Wilks.test}}. } \source{ REIMANN,C., ARNOLDUSSEN,A., BOYD,R., FINNE,T.E., NORDGULEN,Oe., VOLDEN,T. and ENGLMAIER,P. (2006) The Influence of a city on element contents of a terrestrial moss (Hylocomium splendens), \emph{The Science of the Total Environment} \bold{369} 419--432. REIMANN,C., ARNOLDUSSEN,A., BOYD,R., FINNE,T.E., KOLLER,F., NORDGULEN,Oe., and ENGLMAIER,P. (2007) Element contents in leaves of four plant species (birch, mountain ash, fern and spruce) along anthropogenic and geogenic concentration gradients, \emph{The Science of the Total Environment} \bold{377} 416--433. REIMANN,C., ARNOLDUSSEN,A., FINNE,T.E., KOLLER,F., NORDGULEN,Oe., and ENGLMAIER,P., (2007) Element contents in birch leaves, bark and wood under different anthropogenic and geogenic conditions, \emph{Applied Geochemistry}, \bold{22} 1549--1566. } \references{ Todorov V. and Filzmoser P. (2007) Robust statistic for the one-way MANOVA, \emph{submetted to the Journal of Environmetrics}. } \examples{ data(OsloTransect) str(OsloTransect) ## ## Log-transform the numerical part of the data, ## choose the desired groups and variables and ## perform the classical Wilks' Lambda test ## OsloTransect[,14:38] <- log(OsloTransect[,14:38]) grp <- OsloTransect$X.FLITHO ind <- which(grp =="CAMSED" | grp == "GNEIS_O" | grp == "GNEIS_R" | grp=="MAGM") (cwl <- Wilks.test(X.FLITHO~K+P+Zn+Cu,data=OsloTransect[ind,])) ## ## Perform now the robust MCD based Wilks' Lambda test. ## Use the already computed multiplication factor 'xd' and ## degrees of freedom 'xq' for the approximate distribution. ## xd <- -0.003708238 xq <- 11.79073 (mcdwl <- Wilks.test(X.FLITHO~K+P+Zn+Cu,data=OsloTransect[ind,], method="mcd", xd=xd, xq=xq)) } \keyword{datasets} rrcov/man/soil.Rd0000644000176200001440000000370614443667016013436 0ustar liggesusers\name{soil} \alias{soil} \docType{data} \title{ Exchangable cations in forest soil data set } \description{ The forest soil data set contains measurements on 58 soil pits in the Hubbard Brook Experimental Forest in north-central New Hampshire. The excavations were done in 1983 and 1986. The soil samples were analyzed for the exchangeable cations of aluminium, calcium, magnesium, potassium and sodium. The pit locations in both data sets can be classified by the type of the forest: \itemize{ \item 1: spruce-fir (11 samples), \item 2: high elevation hardwood (23 samples) and \item 3: low elevation hardwood (24 samples)). } Additionally the degree of logging disturbance can be considered (all 0 in the 1983 data set): \itemize{ \item 0: uncut forest, \item 1: cut, undisturbed by machinery and \item 2: cut, disturbed. } The observations are expressed in grams of exchangeable cations per square meter. } \usage{data(soil)} \format{ A data frame with 116 observations on the following 7 variables. \describe{ \item{\code{F}}{Type of forest} \item{\code{D}}{Degree of logging disturbance} \item{\code{Al}}{Level of the exchangable cations in Al} \item{\code{Ca}}{Level of the exchangable cations in Ca} \item{\code{Mg}}{Level of the exchangable cations in Mg} \item{\code{K}}{Level of the exchangable cations in K} \item{\code{Na}}{Level of the exchangable cations in Na} } } \source{ Morrison D.F., 2005, Multivariate Statistical Methods, Thompson } \references{ Vanden Branden K, Hubert M (2005). Robust Classiffication in High Dimensions Based on the SIMCA Method. \emph{Cbemometrics and Intelligent Laboratoty Sysiem}, 79: 10--21. } \examples{ data(soil) soil1983 <- soil[soil$D == 0, -2] # only 1983, remove column D (always 0) (cc <- Linda(F~., data=soil)) (pr <- predict(cc)) pr@classification } \keyword{datasets} rrcov/man/CovMve-class.Rd0000644000176200001440000000647714443667016015002 0ustar liggesusers\name{CovMve-class} \Rdversion{1.1} \docType{class} \alias{CovMve-class} \title{ MVE Estimates of Multivariate Location and Scatter } \description{ This class, derived from the virtual class \code{"CovRobust"} accomodates MVE Estimates of multivariate location and scatter computed by the \sQuote{Fast MVE} algorithm. } \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("CovMve", ...)}, but the usual way of creating \code{CovMve} objects is a call to the function \code{CovMve} which serves as a constructor. } \section{Slots}{ \describe{ \item{\code{alpha}:}{Object of class \code{"numeric"} - the size of the subsets over which the volume of the ellipsoid is minimized (the default is (n+p+1)/2) } \item{\code{quan}:}{Object of class \code{"numeric"} - the number of observations on which the MVE is based. If \code{quan} equals \code{n.obs}, the MVE is the classical covariance matrix. } \item{\code{best}:}{Object of class \code{"Uvector"} - the best subset found and used for computing the raw estimates. The size of \code{best} is equal to \code{quan} } \item{\code{raw.cov}:}{Object of class \code{"matrix"} the raw (not reweighted) estimate of location } \item{\code{raw.center}:}{Object of class \code{"vector"} - the raw (not reweighted) estimate of scatter} \item{\code{raw.mah}:}{Object of class \code{"Uvector"} - mahalanobis distances of the observations based on the raw estimate of the location and scatter } \item{\code{raw.wt}:}{Object of class \code{"Uvector"} - weights of the observations based on the raw estimate of the location and scatter } \item{\code{raw.cnp2}:}{Object of class \code{"numeric"} - a vector of length two containing the consistency correction factor and the finite sample correction factor of the raw estimate of the covariance matrix } \item{\code{cnp2}:}{Object of class \code{"numeric"} - a vector of length two containing the consistency correction factor and the finite sample correction factor of the final estimate of the covariance matrix. } \item{\code{iter}, \code{crit}, \code{wt}:}{from the \code{"\linkS4class{CovRobust}"} class. } \item{\code{call}, \code{cov}, \code{center}, \code{n.obs}, \code{mah}, \code{method}, \code{singularity}, \code{X}:}{from the \code{"\linkS4class{Cov}"} class. } } } \section{Extends}{ Class \code{"\linkS4class{CovRobust}"}, directly. Class \code{"\linkS4class{Cov}"}, by class \code{"\linkS4class{CovRobust}"}. } \section{Methods}{ No methods defined with class "CovMve" in the signature. } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} } \seealso{ \code{\link{CovMve}}, \code{\link{Cov-class}}, \code{\link{CovRobust-class}} } \examples{ showClass("CovMve") } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/SummaryPca-class.Rd0000644000176200001440000000227014443667016015647 0ustar liggesusers\name{SummaryPca-class} \docType{class} \alias{SummaryPca-class} \alias{show,SummaryPca-method} \title{Class "SummaryPca" - summary of "Pca" objects } \description{The "Pca" object plus some additional summary information} \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("SummaryPca", ...)}, but most often by invoking 'summary' on a "Pca" object. They contain values meant for printing by 'show'. } \section{Slots}{ \describe{ \item{\code{pcaobj}:}{Object of class \code{"Pca"}} \item{\code{importance}:}{matrix with additional information: importance of components } } } \section{Methods}{ \describe{ \item{show}{\code{signature(object = "SummaryPca")}: display the object } } } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{Valentin Todorov \email{valentin.todorov@chello.at}} %\note{} \seealso{ \code{\link{Pca-class}} } \examples{ showClass("SummaryPca") } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/PcaHubert-class.Rd0000644000176200001440000000471614443667016015452 0ustar liggesusers\name{PcaHubert-class} \Rdversion{1.1} \docType{class} \alias{PcaHubert-class} \alias{getQuan,PcaHubert-method} \title{Class "PcaHubert" - ROBust method for Principal Components Analysis } \description{ The ROBPCA algorithm was proposed by Hubert et al (2005) and stays for 'ROBust method for Principal Components Analysis'. It is resistant to outliers in the data. The robust loadings are computed using projection-pursuit techniques and the MCD method. Therefore ROBPCA can be applied to both low and high-dimensional data sets. In low dimensions, the MCD method is applied.} \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("PcaHubert", ...)} but the usual way of creating \code{PcaHubert} objects is a call to the function \code{PcaHubert} which serves as a constructor. } \section{Slots}{ \describe{ \item{\code{alpha}:}{Object of class \code{"numeric"} the fraction of outliers the algorithm should resist - this is the argument alpha} \item{\code{quan}:}{The quantile \code{h} used throughout the algorithm } \item{\code{skew}:}{Whether the adjusted outlyingness algorithm for skewed data was used} \item{\code{ao}:}{Object of class \code{"Uvector"} Adjusted outlyingness within the robust PCA subspace } \item{\code{call}, \code{center}, \code{scale}, \code{rank}, \code{loadings}, \code{eigenvalues}, \code{scores}, \code{k}, \code{sd}, \code{od}, \code{cutoff.sd}, \code{cutoff.od}, \code{flag}, \code{n.obs}, \code{eig0}, \code{totvar0}:}{ from the \code{"\linkS4class{Pca}"} class. } } } \section{Extends}{ Class \code{"\linkS4class{PcaRobust}"}, directly. Class \code{"\linkS4class{Pca}"}, by class "PcaRobust", distance 2. } \section{Methods}{ \describe{ \item{getQuan}{\code{signature(obj = "PcaHubert")}: Returns the quantile used throughout the algorithm } } } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} } \seealso{ \code{\link{PcaRobust-class}}, \code{\link{Pca-class}}, \code{\link{PcaClassic}}, \code{\link{PcaClassic-class}} } \examples{ showClass("PcaHubert") } \keyword{robust} \keyword{multivariate} rrcov/man/PcaGrid-class.Rd0000644000176200001440000000325414443667016015102 0ustar liggesusers\name{PcaGrid-class} \Rdversion{1.1} \docType{class} \alias{PcaGrid-class} \alias{getQuan,PcaGrid-method} \title{Class "PcaGrid" - Robust PCA using PP - GRID search Algorithm } \description{ Holds the results of an approximation of the PP-estimators for PCA using the grid search algorithm in the plane. } \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("PcaGrid", ...)} but the usual way of creating \code{PcaGrid} objects is a call to the function \code{PcaGrid()} which serves as a constructor. } \section{Slots}{ \describe{ \item{\code{call}, \code{center}, \code{scale}, \code{rank}, \code{loadings}, \code{eigenvalues}, \code{scores}, \code{k}, \code{sd}, \code{od}, \code{cutoff.sd}, \code{cutoff.od}, \code{flag}, \code{n.obs}:}{ from the \code{"\linkS4class{Pca}"} class. } } } \section{Extends}{ Class \code{"\linkS4class{PcaRobust}"}, directly. Class \code{"\linkS4class{Pca}"}, by class \code{"\linkS4class{PcaRobust}"}, distance 2. } \section{Methods}{ \describe{ \item{getQuan}{\code{signature(obj = "PcaGrid")}: ... } } } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} } \seealso{ \code{\link{PcaRobust-class}}, \code{\link{Pca-class}}, \code{\link{PcaClassic}}, \code{\link{PcaClassic-class}} } \examples{ showClass("PcaGrid") } \keyword{robust} \keyword{multivariate} rrcov/man/CovControlMest.Rd0000644000176200001440000000307714443667016015412 0ustar liggesusers\name{CovControlMest} \alias{CovControlMest} \title{ Constructor function for objects of class "CovControlMest" } \concept{High breakdown point} \description{ This function will create a control object \code{CovControlMest} containing the control parameters for \code{CovMest} } \usage{ CovControlMest(r = 0.45, arp = 0.05, eps = 0.001, maxiter = 120) } \arguments{ \item{r}{a numeric value specifying the required breakdown point. Allowed values are between \code{(n - p)/(2 * n)} and 1 and the default is 0.45} \item{arp}{a numeric value specifying the asympthotic rejection point, i.e. the fraction of points receiving zero weight (see Rocke (1996)). Default is \code{0.05} } \item{eps}{a numeric value specifying the relative precision of the solution of the M-estimate. Defaults to \code{1e-3}} \item{maxiter}{maximum number of iterations allowed in the computation of the M-estimate. Defaults to 120 } } %\details{} \value{ A \code{CovControlMest} object } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } %\note{} \author{Valentin Todorov \email{valentin.todorov@chello.at}} %\seealso{} \examples{ ## the following two statements are equivalent ctrl1 <- new("CovControlMest", r=0.4) ctrl2 <- CovControlMest(r=0.4) data(hbk) CovMest(hbk, control=ctrl1) } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/pottery.Rd0000644000176200001440000000670514443667016014200 0ustar liggesusers\name{pottery} \alias{pottery} \alias{pottery.test} \docType{data} \title{Archaic Greek Pottery data} \description{ The Archaic Greek Pottery data set contains data on fragments of Greek pottery which were classified into two groups according to their origin: Attic or Eritrean. Six chemical variables, metallic oxide constituents, were measured: Si, Al, Fe, Ca and Ti. The main data set consists of 13 Attic objects and 14 Eritrean ones. There is a separate data set with 13 observations which can be used as a test data set. It consists of 4 observations classified as "probably Attic" and the remaining 9 as "probably Eritrean". } \usage{ data(pottery) } \format{ Two data frames with 27 an 13 observations on the following 7 variables. \describe{ \item{\code{SI}}{Si content} \item{\code{AL}}{Al content} \item{\code{FE}}{Fe content} \item{\code{MG}}{Mg content} \item{\code{CA}}{Ca content} \item{\code{TI}}{Ti content} \item{\code{origin}}{Origin - factor with two levels: \code{Attic} and \code{Eritrean}} } } \details{ The Archaic Greek Pottery data set was first published by Stern and Descoeudres (1977) and later reproduced in Cooper and Weeks (1983) for illustration of linear discriminant analisys. The data set was used by Pires and Branco (2010) for illustration of their projection pursuit approach to linear discriminant analysis. } \source{ STERN, W. B. and DESCOEUDRES, J.-P. (1977) X-RAY FLUORESCENCE ANALYSIS OF ARCHAIC GREEK POTTERY \emph{Archaeometry}, Blackwell Publishing Ltd, \bold{19}, 73--86. } \references{ Cooper, R.A. and Weekes, A.J.. 1983 \emph{Data, Models, and Statistical Analysis}, (Lanham, MD: Rowman & Littlefield). Pires, A. M. and A. Branco, J. (2010) Projection-pursuit approach to robust linear discriminant analysis \emph{Journal Multivariate Analysis}, Academic Press, Inc., \bold{101}, 2464--2485. } \examples{ data(pottery) x <- pottery[,c("MG", "CA")] grp <- pottery$origin ## ## Compute robust location and covariance matrix and ## plot the tolerance ellipses library(rrcov) (mcd <- CovMcd(x)) col <- c(3,4) gcol <- ifelse(grp == "Attic", col[1], col[2]) gpch <- ifelse(grp == "Attic", 16, 1) plot(mcd, which="tolEllipsePlot", class=TRUE, col=gcol, pch=gpch) ## ## Perform classical LDA and plot the data, 0.975 tolerance ellipses ## and LDA separation line ## x <- pottery[,c("MG", "CA")] grp <- pottery$origin lda <- LdaClassic(x, grp) lda e1 <- getEllipse(loc=lda@center[1,], cov=lda@cov) e2 <- getEllipse(loc=lda@center[2,], cov=lda@cov) plot(CA~MG, data=pottery, col=gcol, pch=gpch, xlim=c(min(MG,e1[,1], e2[,1]), max(MG,e1[,1], e2[,1])), ylim=c(min(CA,e1[,2], e2[,2]), max(CA,e1[,2], e2[,2]))) ab <- lda@ldf[1,] - lda@ldf[2,] cc <- lda@ldfconst[1] - lda@ldfconst[2] abline(a=-cc/ab[2], b=-ab[1]/ab[2], col=2, lwd=2) lines(e1, type="l", col=col[1]) lines(e2, type="l", col=col[2]) ## ## Perform robust (MCD) LDA and plot data, classical and ## robust separation line ## plot(CA~MG, data=pottery, col=gcol, pch=gpch) lda <- LdaClassic(x, grp) ab <- lda@ldf[1,] - lda@ldf[2,] cc <- lda@ldfconst[1] - lda@ldfconst[2] abline(a=-cc/ab[2], b=-ab[1]/ab[2], col=2, lwd=2) abline(a=-cc/ab[2], b=-ab[1]/ab[2], col=4, lwd=2) rlda <- Linda(x, grp, method="mcd") rlda ab <- rlda@ldf[1,] - rlda@ldf[2,] cc <- rlda@ldfconst[1] - rlda@ldfconst[2] abline(a=-cc/ab[2], b=-ab[1]/ab[2], col=2, lwd=2) } \keyword{datasets} rrcov/man/CovControlMMest.Rd0000644000176200001440000000342714443667016015526 0ustar liggesusers\name{CovControlMMest} \alias{CovControlMMest} \title{ Constructor function for objects of class "CovControlMMest" } \concept{High breakdown point} \description{ This function will create a control object \code{CovControlMMest} containing the control parameters for \code{CovMMest} } \usage{ CovControlMMest(bdp = 0.5, eff=0.95, maxiter = 50, sest=CovControlSest(), trace = FALSE, tolSolve = 1e-7) } \arguments{ \item{bdp}{ a numeric value specifying the required breakdown point. Allowed values are between 0.5 and 1 and the default is 0.5 } \item{eff}{a numeric value specifying the required efficiency for the MM estimates. Default is \code{eff=0.95}. } \item{sest}{an \code{CovControlSest} object containing control parameters for the initial S-estimate. } \item{maxiter}{maximum number of iterations allowed in the computation of the MM-estimate. Defaults to 150. } \item{trace}{whether to print intermediate results. Default is \code{trace = FALSE}.} \item{tolSolve}{numeric tolerance to be used as a convergence tolerance for the MM-iteration. } } %\details{} \value{ A \code{CovControlSest} object. } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } %\note{} \author{Valentin Todorov \email{valentin.todorov@chello.at}} %\seealso{} \examples{ ## the following two statements are equivalent ctrl1 <- new("CovControlMMest", bdp=0.25) ctrl2 <- CovControlMMest(bdp=0.25) data(hbk) CovMMest(hbk, control=ctrl1) } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/Cars.Rd0000644000176200001440000000464113002212631013332 0ustar liggesusers\name{Cars} \alias{Cars} \docType{data} \title{ Consumer reports car data: dimensions } \description{ A data frame containing 11 variables with different dimensions of 111 cars } \usage{data(Cars)} \format{ A data frame with 111 observations on the following 11 variables. \describe{ \item{\code{length}}{a numeric vector} \item{\code{wheelbase}}{a numeric vector} \item{\code{width}}{a numeric vector} \item{\code{height}}{a numeric vector} \item{\code{front.hd}}{a numeric vector} \item{\code{rear.hd}}{a numeric vector} \item{\code{front.leg}}{a numeric vector} \item{\code{rear.seating}}{a numeric vector} \item{\code{front.shoulder}}{a numeric vector} \item{\code{rear.shoulder}}{a numeric vector} \item{\code{luggage}}{a numeric vector} } } %\details{} \source{ Consumer reports. (April 1990). http://backissues.com/issue/Consumer-Reports-April-1990, pp. 235--288. } \references{ Chambers, J. M. and Hastie, T. J. (1992). Statistical models in S. Cole, Pacific Grove, CA: Wadsworth and Brooks, pp. 46--47. M. Hubert, P. J. Rousseeuw, K. Vanden Branden (2005), ROBPCA: A new approach to robust principal components analysis, \emph{Technometrics}, \bold{47}, 64--79. } \examples{ data(Cars) ## Plot a pairwise scaterplot matrix pairs(Cars[,1:6]) mcd <- CovMcd(Cars[,1:6]) plot(mcd, which="pairs") ## Start with robust PCA pca <- PcaHubert(Cars, k=ncol(Cars), kmax=ncol(Cars)) pca ## Compare with the classical PCA prcomp(Cars) ## or PcaClassic(Cars, k=ncol(Cars), kmax=ncol(Cars)) ## If you want to print the scores too, use print(pca, print.x=TRUE) ## Using the formula interface PcaHubert(~., data=Cars, k=ncol(Cars), kmax=ncol(Cars)) ## To plot the results: plot(pca) # distance plot pca2 <- PcaHubert(Cars, k=4) plot(pca2) # PCA diagnostic plot (or outlier map) ## Use the standard plots available for prcomp and princomp screeplot(pca) # it is interesting with all variables biplot(pca) # for biplot we need more than one PCs ## Restore the covraiance matrix py <- PcaHubert(Cars, k=ncol(Cars), kmax=ncol(Cars)) cov.1 <- py@loadings \%*\% diag(py@eigenvalues) \%*\% t(py@loadings) cov.1 } \keyword{datasets} rrcov/man/CovMcd.Rd0000644000176200001440000001405714660213544013636 0ustar liggesusers\name{CovMcd} \alias{CovMcd} % \title{ Robust Location and Scatter Estimation via MCD } \description{ Computes a robust multivariate location and scatter estimate with a high breakdown point, using the \sQuote{Fast MCD} (Minimum Covariance Determinant) estimator. } \usage{ CovMcd(x, raw.only=FALSE, alpha=control@alpha, nsamp=control@nsamp, scalefn=control@scalefn, maxcsteps=control@maxcsteps, initHsets=NULL, save.hsets=FALSE, seed=control@seed, trace=control@trace, use.correction=control@use.correction, control=CovControlMcd(), ...) } \arguments{ \item{x}{a matrix or data frame. } \item{raw.only}{should only the \dQuote{raw} estimate be returned.} \item{alpha}{numeric parameter controlling the size of the subsets over which the determinant is minimized, i.e., \code{alpha*n} observations are used for computing the determinant. Allowed values are between 0.5 and 1 and the default is 0.5.} \item{nsamp}{ number of subsets used for initial estimates or \code{"best"}, \code{"exact"} or \code{"deterministic"}. Default is \code{nsamp = 500}. For \code{nsamp="best"} exhaustive enumeration is done, as long as the number of trials does not exceed 5000. For \code{"exact"}, exhaustive enumeration will be attempted however many samples are needed. In this case a warning message will be displayed saying that the computation can take a very long time. For \code{"deterministic"}, the \emph{deterministic} MCD is computed; as proposed by Hubert et al. (2012) it starts from the \eqn{h} most central observations of \emph{six} (deterministic) estimators. } \item{scalefn}{\code{\link{function}} to compute a robust scale estimate or character string specifying a rule determining such a function, see \code{\link[robustbase]{rrcov.control}}.} \item{maxcsteps}{maximal number of concentration steps in the deterministic MCD; should not be reached.} \item{initHsets}{NULL or a \eqn{K x h} integer matrix of initial subsets of observations of size \eqn{h} (specified by the indices in \code{1:n}).} \item{save.hsets}{(for deterministic MCD) logical indicating if the initial subsets should be returned as \code{initHsets}.} \item{seed}{starting value for random generator. Default is \code{seed = NULL}} \item{trace}{whether to print intermediate results. Default is \code{trace = FALSE}} \item{use.correction}{ whether to use finite sample correction factors. Default is \code{use.correction=TRUE}} \item{control}{ a control object (S4) of class \code{\link{CovControlMcd-class}} containing estimation options - same as these provided in the function specification. If the control object is supplied, the parameters from it will be used. If parameters are passed also in the invocation statement, they will override the corresponding elements of the control object.} \item{\dots}{potential further arguments passed to \pkg{robustbase}'s \code{\link[robustbase]{covMcd}}.} } \details{ This function computes the minimum covariance determinant estimator of location and scatter and returns an S4 object of class \code{\link{CovMcd-class}} containing the estimates. The implementation of the function is similar to the existing \R function \code{\link[robustbase]{covMcd}()} which returns an S3 object. The MCD method looks for the \eqn{h (> n/2)} observations (out of \eqn{n}) whose classical covariance matrix has the lowest possible determinant. The raw MCD estimate of location is then the average of these \eqn{h} points, whereas the raw MCD estimate of scatter is their covariance matrix, multiplied by a consistency factor and a finite sample correction factor (to make it consistent at the normal model and unbiased at small samples). Both rescaling factors are returned also in the vector \code{raw.cnp2} of length 2. Based on these raw MCD estimates, a reweighting step is performed which increases the finite-sample efficiency considerably - see Pison et al. (2002). The rescaling factors for the reweighted estimates are returned in the vector \code{cnp2} of length 2. Details for the computation of the finite sample correction factors can be found in Pison et al. (2002). The finite sample corrections can be suppressed by setting \code{use.correction=FALSE}. The implementation in rrcov uses the Fast MCD algorithm of Rousseeuw and Van Driessen (1999) to approximate the minimum covariance determinant estimator. } \value{ An S4 object of class \code{\link{CovMcd-class}} which is a subclass of the virtual class \code{\link{CovRobust-class}}. } \references{ P. J. Rousseeuw and A. M. Leroy (1987) \emph{Robust Regression and Outlier Detection.} Wiley. P. J. Rousseeuw and K. van Driessen (1999) A fast algorithm for the minimum covariance determinant estimator. \emph{Technometrics} \bold{41}, 212--223. M. Hubert, P. Rousseeuw and T. Verdonck (2012) A deterministic algorithm for robust location and scatter. \emph{Journal of Computational and Graphical Statistics} \bold{21}(3), 618--637. Pison, G., Van Aelst, S., and Willems, G. (2002), Small Sample Corrections for LTS and MCD, \emph{Metrika}, \bold{55}, 111-123. Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} } \seealso{ \code{\link[MASS]{cov.rob}} from package \pkg{MASS} } \examples{ data(hbk) hbk.x <- data.matrix(hbk[, 1:3]) CovMcd(hbk.x) cD <- CovMcd(hbk.x, nsamp = "deterministic") summary(cD) ## the following three statements are equivalent c1 <- CovMcd(hbk.x, alpha = 0.75) c2 <- CovMcd(hbk.x, control = CovControlMcd(alpha = 0.75)) ## direct specification overrides control one: c3 <- CovMcd(hbk.x, alpha = 0.75, control = CovControlMcd(alpha=0.95)) c1 } \keyword{robust} \keyword{multivariate} rrcov/man/SummaryQda-class.Rd0000644000176200001440000000216114443667016015650 0ustar liggesusers\name{SummaryQda-class} \docType{class} \alias{SummaryQda-class} \alias{show,SummaryQda-method} \title{ Class "SummaryQda" - summary of "Qda" objects } \description{ Summary information about a \code{Qda} - Quadratic Discriminant Analysis object } \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("SummaryQda", ...)}, but most often by invoking 'summary' on an "Qda" object. They contain values meant for printing by 'show'. } \section{Slots}{ \describe{ \item{\code{qdaobj}:}{Object of class \code{"Qda"}} } } \section{Methods}{ \describe{ \item{show}{\code{signature(object = "SummaryQda")}: display the object } } } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{Valentin Todorov \email{valentin.todorov@chello.at}} %\note{} \seealso{ \code{\link{Qda-class}} } \examples{ showClass("SummaryQda") } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/CovControlSde-class.Rd0000644000176200001440000000450214443667016016312 0ustar liggesusers\name{CovControlSde-class} \Rdversion{1.1} \docType{class} \alias{CovControlSde-class} \alias{restimate,CovControlSde-method} \title{Class 'CovControlSde' - contains control parameters for "CovSde"} \description{ This class extends the \code{CovControl} class and contains the control parameters for CovSde } \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("CovControlSde", ...)} or by calling the constructor-function \code{CovControlSde}. } \section{Slots}{ \describe{ \item{\code{nsamp}}{a positive integer giving the number of resamples required} \item{\code{maxres}}{a positive integer specifying the maximum number of resamples to be performed including those that are discarded due to linearly dependent subsamples.} \item{\code{tune}}{a numeric value between 0 and 1 giving the fraction of the data to receive non-zero weight. Default is \code{tune = 0.95}.} \item{\code{prob}}{a numeric value between 0 and 1 specifying the probability of high breakdown point; used to compute \code{nsamp} when \code{nsamp} is omitted. Default is \code{prob = 0.99}.} \item{\code{eps}}{a numeric value between 0 and 0.5 specifying the breakdown point; used to compute \code{nsamp} when \code{nresamp} is omitted. Default is \code{eps = 0.5}.} \item{seed}{starting value for random generator. Default is \code{seed = NULL}.} \item{\code{trace}, \code{tolSolve}:}{from the \code{"\linkS4class{CovControl}"} class. } } } \section{Extends}{ Class \code{"\linkS4class{CovControl}"}, directly. } \section{Methods}{ \describe{ \item{restimate}{\code{signature(obj = "CovControlSde")}: ... } } } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{Valentin Todorov \email{valentin.todorov@chello.at}} \examples{ ## the following two statements are equivalent ctrl1 <- new("CovControlSde", nsamp=2000) ctrl2 <- CovControlSde(nsamp=2000) data(hbk) CovSde(hbk, control=ctrl1) } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/Linda-class.Rd0000644000176200001440000000417014443667016014616 0ustar liggesusers\name{Linda-class} \docType{class} \alias{Linda-class} \title{Class "Linda" - Robust method for LINear Discriminant Analysis } \description{ Robust linear discriminant analysis is performed by replacing the classical group means and withing group covariance matrix by robust equivalents based on MCD. } \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("Linda", ...)} but the usual way of creating \code{Linda} objects is a call to the function \code{Linda} which serves as a constructor. } \section{Slots}{ \describe{ \item{\code{call}:}{The (matched) function call.} \item{\code{prior}:}{Prior probabilities used, default to group proportions} \item{\code{counts}:}{number of observations in each class} \item{\code{center}:}{the group means} \item{\code{cov}:}{the common covariance matrix} \item{\code{ldf}:}{a matrix containing the linear discriminant functions} \item{\code{ldfconst}:}{a vector containing the constants of each linear discriminant function} \item{\code{method}:}{a character string giving the estimation method used} \item{\code{X}:}{the training data set (same as the input parameter x of the constructor function)} \item{\code{grp}:}{grouping variable: a factor specifying the class for each observation.} \item{\code{l1med}:}{wheather L1 median was used to compute group means.} } } \section{Extends}{ Class \code{"\linkS4class{LdaRobust}"}, directly. Class \code{"\linkS4class{Lda}"}, by class "LdaRobust", distance 2. } \section{Methods}{No methods defined with class "Linda" in the signature.} \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} } \seealso{ \code{\link{LdaRobust-class}}, \code{\link{Lda-class}}, \code{\link{LdaClassic}}, \code{\link{LdaClassic-class}} } \examples{ showClass("Linda") } \keyword{robust} \keyword{multivariate} rrcov/man/PredictLda-class.Rd0000644000176200001440000000246714443667016015611 0ustar liggesusers\name{PredictLda-class} \docType{class} \alias{PredictLda-class} \alias{show,PredictLda-method} \title{Class "PredictLda" - prediction of "Lda" objects } \description{ The prediction of a "Lda" object } \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("PredictLda", ...)} but most often by invoking 'predict' on a "Lda" object. They contain values meant for printing by 'show'} \section{Slots}{ \describe{ \item{\code{classification}:}{a factor variable containing the classification of each object } \item{\code{posterior}:}{a matrix containing the posterior probabilities } \item{\code{x}:}{ matrix with the discriminant scores } \item{\code{ct}:}{re-classification table of the training sample} } } \section{Methods}{ \describe{ \item{show}{\code{signature(object = "PredictLda")}: Prints the results } } } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{Valentin Todorov \email{valentin.todorov@chello.at}} %\note{} \seealso{ \code{\link{Lda-class}} } \examples{ showClass("PredictLda") } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/CovControlSde.Rd0000644000176200001440000000472714443667016015220 0ustar liggesusers\name{CovControlSde} \Rdversion{1.1} \alias{CovControlSde} \title{ Constructor function for objects of class "CovControlSde" } \concept{High breakdown point} \description{ This function will create a control object \code{CovControlSde} containing the control parameters for \code{CovSde} } \usage{ CovControlSde(nsamp = 0, maxres = 0, tune = 0.95, eps = 0.5, prob = 0.99, seed = NULL, trace = FALSE, tolSolve = 1e-14) } \arguments{ \item{nsamp}{a positive integer giving the number of resamples required; \code{nsamp} may not be reached if too many of the \code{p}-subsamples, chosen out of the observed vectors, are in a hyperplane. If \code{nsamp = 0} all possible subsamples are taken. If \code{nsamp} is omitted, it is calculated to provide a breakdown point of \code{eps} with probability \code{prob}.} \item{maxres}{a positive integer specifying the maximum number of resamples to be performed including those that are discarded due to linearly dependent subsamples. If \code{maxres} is omitted it will be set to 2 times \code{nsamp}.} \item{tune}{a numeric value between 0 and 1 giving the fraction of the data to receive non-zero weight. Defaults to \code{0.95}. } \item{prob}{a numeric value between 0 and 1 specifying the probability of high breakdown point; used to compute \code{nsamp} when \code{nsamp} is omitted. Defaults to \code{0.99}. } \item{eps}{a numeric value between 0 and 0.5 specifying the breakdown point; used to compute \code{nsamp} when \code{nresamp} is omitted. Defaults to \code{0.5}. } \item{seed}{starting value for random generator. Default is \code{seed = NULL}.} \item{trace}{whether to print intermediate results. Default is \code{trace = FALSE}. } \item{tolSolve}{numeric tolerance to be used for inversion (\code{\link{solve}}) of the covariance matrix in \code{\link{mahalanobis}}.} } \value{ A \code{CovControlSde} object. } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{Valentin Todorov \email{valentin.todorov@chello.at}} \examples{ ## the following two statements are equivalent ctrl1 <- new("CovControlSde", nsamp=2000) ctrl2 <- CovControlSde(nsamp=2000) data(hbk) CovSde(hbk, control=ctrl1) } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/getLoadings-methods.Rd0000644000176200001440000000177414443667016016374 0ustar liggesusers\name{getLoadings-methods} \docType{methods} \alias{getLoadings-methods} \alias{getLoadings} \alias{getEigenvalues,methods} \alias{getEigenvalues} \alias{getPrcomp,methods} \alias{getPrcomp} \alias{getScores,methods} \alias{getScores} \alias{getSdev,methods} \alias{getSdev} \alias{getQuan,methods} \alias{getQuan} \alias{getScale,methods} \alias{getScale} \alias{names,Pca-method} \alias{$,Pca-method} \title{ Accessor methods to the essential slots of Pca and its subclasses} \description{ Accessor methods to the slots of objects of class \code{Pca} and its subclasses } \arguments{ \item{obj}{an object of class \code{"Pca"} or of a class derived from \code{"Pca"} } } \section{Methods}{ \describe{ \item{obj = "Pca"}{Accessors for object of class \code{Pca}} \item{obj = "PcaRobust"}{Accessors for object of class \code{PcaRobust}} \item{obj = "PcaClassic"}{Accessors for object of class \code{PcaClassic}} }} \keyword{methods} \keyword{multivariate} \keyword{robust} rrcov/man/olitos.Rd0000644000176200001440000000447514443667016014005 0ustar liggesusers\name{olitos} \alias{olitos} \docType{data} \title{ Olive Oil Data } \description{ This dataset consists of 120 olive oil samples on measurements on 25 chemical compositions (fatty acids, sterols, triterpenic alcohols) of olive oils from Tuscany, Italy (Armanino et al. 1989). There are 4 classes corresponding to different production areas. Class 1, Class 2, Class 3, and Class 4 contain 50, 25, 34, and 11 observations, respectively. } \usage{data(olitos)} \format{ A data frame with 120 observations on the following 26 variables. \describe{ \item{\code{X1}}{Free fatty acids} \item{\code{X2}}{Refractive index} \item{\code{X3}}{K268} \item{\code{X4}}{delta K} \item{\code{X5}}{Palmitic acid} \item{\code{X6}}{Palmitoleic acid} \item{\code{X7}}{a numeric vector} \item{\code{X8}}{a numeric vector} \item{\code{X9}}{a numeric vector} \item{\code{X10}}{a numeric vector} \item{\code{X11}}{a numeric vector} \item{\code{X12}}{a numeric vector} \item{\code{X13}}{a numeric vector} \item{\code{X14}}{a numeric vector} \item{\code{X15}}{a numeric vector} \item{\code{X16}}{a numeric vector} \item{\code{X17}}{a numeric vector} \item{\code{X18}}{a numeric vector} \item{\code{X19}}{a numeric vector} \item{\code{X20}}{a numeric vector} \item{\code{X21}}{a numeric vector} \item{\code{X22}}{a numeric vector} \item{\code{X23}}{a numeric vector} \item{\code{X24}}{a numeric vector} \item{\code{X25}}{a numeric vector} \item{\code{grp}}{a factor with levels \code{1} \code{2} \code{3} \code{4}} } } \source{ Prof. Roberto Todeschini, Milano Chemometrics and QSAR Research Group \url{https://michem.unimib.it} } \references{ C. Armanino, R. Leardi, S. Lanteri and G. Modi, 1989. Chemometric analysis of Tuscan olive oils. \emph{Cbemometrics and Intelligent Laboratoty Sysiem}, 5: 343--354. R. Todeschini, V. Consonni, A. Mauri, M. Pavan (2004) Software for the calculation of molecular descriptors. Pavan M. Talete slr, Milan, Italy, \url{http://www.talete.mi.it} } \examples{ data(olitos) cc <- Linda(grp~., data=olitos, method="mcdC", l1med=TRUE) cc pr <- predict(cc) tt <- mtxconfusion(cc@grp, pr@classification, printit=TRUE) } \keyword{datasets} rrcov/man/CovRobust.Rd0000644000176200001440000000536714443667016014423 0ustar liggesusers\name{CovRobust} \alias{CovRobust} \title{ Robust Location and Scatter Estimation } \description{ Computes a robust multivariate location and scatter estimate with a high breakdown point, using one of the available estimators. } \usage{ CovRobust(x, control, na.action = na.fail) } \arguments{ \item{x}{a matrix or data frame. } \item{control}{ a control object (S4) for one of the available control classes, e.g. \code{\link{CovControlMcd-class}}, \code{\link{CovControlOgk-class}}, \code{\link{CovControlSest-class}}, etc., containing estimation options. The class of this object defines which estimator will be used. Alternatively a character string can be specified which names the estimator - one of auto, sde, mcd, ogk, m, mve, sfast, surreal, bisquare, rocke. If 'auto' is specified or the argument is missing, the function will select the estimator (see below for details)} \item{na.action}{ A function to specify the action to be taken if missing values are found. The default action is for the procedure to fail. An alternative is na.omit, which leads to rejection of cases with missing values on any required variable.} } \details{ This function simply calls the \code{restimate} method of the control object \code{control}. If a character string naming an estimator is specified, a new control object will be created and used (with default estimation options). If this argument is missing or a character string 'auto' is specified, the function will select the robust estimator according to the size of the dataset. If there are less than 1000 observations and less than 10 variables or less than 5000 observations and less than 5 variables, Stahel-Donoho estimator will be used. Otherwise, if there are less than 50000 observations either bisquare S-estimates (for less than 10 variables) or Rocke type S-estimates (for 10 to 20 variables) will be used. In both cases the S iteration starts at the initial MVE estimate. And finally, if there are more than 50000 observations and/or more than 20 variables the Orthogonalized Quadrant Correlation estimator (\code{CovOgk} with the corresponding parameters) is used. } \value{ An object derived from a \code{CovRobust} object, depending on the selected estimator. } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{Valentin Todorov \email{valentin.todorov@chello.at} } \examples{ data(hbk) hbk.x <- data.matrix(hbk[, 1:3]) CovRobust(hbk.x) CovRobust(hbk.x, CovControlSest(method="bisquare")) } \keyword{robust} \keyword{multivariate} rrcov/man/CovControlMcd-class.Rd0000644000176200001440000000640714443667016016310 0ustar liggesusers\name{CovControlMcd-class} \Rdversion{1.1} \docType{class} \alias{CovControlMcd-class} \alias{restimate,CovControlMcd-method} \title{Class 'CovControlMcd' - contains control parameters for CovMcd } \description{ This class extends the \code{CovControl} class and contains the control parameters for \code{"CovMcd"} } \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("CovControlMcd", ...)} or by calling the constructor-function \code{CovControlMcd}. } \section{Slots}{ \describe{ \item{\code{alpha}:}{numeric parameter controlling the size of the subsets over which the determinant is minimized, i.e., \code{alpha*n} observations are used for computing the determinant. Allowed values are between 0.5 and 1 and the default is 0.5.} \item{nsamp}{ number of subsets used for initial estimates or \code{"best"}, \code{"exact"} or \code{"deterministic"}. Default is \code{nsamp = 500}. For \code{nsamp="best"} exhaustive enumeration is done, as long as the number of trials does not exceed 5000. For \code{"exact"}, exhaustive enumeration will be attempted however many samples are needed. In this case a warning message will be displayed saying that the computation can take a very long time. For \code{"deterministic"}, the \emph{deterministic} MCD is computed; as proposed by Hubert et al. (2012) it starts from the \eqn{h} most central observations of \emph{six} (deterministic) estimators. } \item{scalefn}{\code{\link{function}} to compute a robust scale estimate or character string specifying a rule determining such a function.} \item{maxcsteps}{maximal number of concentration steps in the deterministic MCD; should not be reached.} \item{\code{seed}:}{starting value for random generator. Default is \code{seed = NULL}} \item{\code{use.correction}:}{ whether to use finite sample correction factors. Default is \code{use.correction=TRUE}. } \item{\code{trace}, \code{tolSolve}:}{from the \code{"\linkS4class{CovControl}"} class. } } } \section{Extends}{ Class \code{"\linkS4class{CovControl}"}, directly. } \section{Methods}{ \describe{ \item{restimate}{\code{signature(obj = "CovControlMcd")}: the generic function \code{restimate} allows the different methods for robust estimation to be used polymorphically - this function will call \code{CovMcd} passing it the control object and will return the obtained \code{CovRobust} object} }} \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } %\note{} \author{Valentin Todorov \email{valentin.todorov@chello.at}} %\seealso{} \examples{ ## the following two statements are equivalent ctrl1 <- new("CovControlMcd", alpha=0.75) ctrl2 <- CovControlMcd(alpha=0.75) data(hbk) CovMcd(hbk, control=ctrl1) } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/SummaryCov-class.Rd0000644000176200001440000000332514443667016015675 0ustar liggesusers\name{SummaryCov-class} \docType{class} \alias{SummaryCov-class} \alias{getCenter,SummaryCov-method} \alias{getCov,SummaryCov-method} \alias{getDistance,SummaryCov-method} \alias{getEvals,SummaryCov-method} \alias{isClassic,SummaryCov-method} \alias{show,SummaryCov-method} \title{Class "SummaryCov" - summary of "Cov" objects } \description{The "Cov" object plus some additional summary information} \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("SummaryCov", ...)}, but most often by invoking 'summary' on a "Cov" object. They contain values meant for printing by 'show'. } \section{Slots}{ \describe{ \item{\code{covobj}:}{Object of class \code{"Cov"}} \item{\code{evals}:}{eigenvalues of the covariance or correlation matrix } } } \section{Methods}{ \describe{ \item{getCenter}{\code{signature(obj = "SummaryCov")}: location vector } \item{getCov}{\code{signature(obj = "SummaryCov")}: covariance matrix } \item{getDistance}{\code{signature(obj = "SummaryCov")}: vector of distances } \item{getEvals}{\code{signature(obj = "SummaryCov")}: vector of eignevalues } \item{isClassic}{\code{signature(obj = "SummaryCov")}: is the estimate a classic one } \item{show}{\code{signature(object = "SummaryCov")}: display the object } } } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{Valentin Todorov \email{valentin.todorov@chello.at}} %\note{} \seealso{ \code{\link{Cov-class}} } \examples{ showClass("SummaryCov") } \keyword{classes} rrcov/man/CovControl-class.Rd0000644000176200001440000000210314443667016015651 0ustar liggesusers\name{CovControl-class} \docType{class} \alias{CovControl-class} \title{Class "CovControl" is a VIRTUAL base control class } \description{ The class "CovControl" is a VIRTUAL base control class for the derived classes representing the control parameters for the different robust methods } \section{Objects from the Class}{A virtual Class: No objects may be created from it.} \arguments{ \item{trace}{whether to print intermediate results. Default is \code{trace = FALSE}} \item{tolSolve}{numeric tolerance to be used for inversion (\code{\link{solve}}) of the covariance matrix in \code{\link{mahalanobis}}.} } \section{Methods}{ No methods defined with class "CovControl" in the signature. } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } %\note{} \author{Valentin Todorov \email{valentin.todorov@chello.at}} %\seealso{} \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/CovControlSest-class.Rd0000644000176200001440000000555414443667016016525 0ustar liggesusers\name{CovControlSest-class} \Rdversion{1.1} \docType{class} \alias{CovControlSest-class} \alias{restimate,CovControlSest-method} \title{Class 'CovControlSest' - contains control parameters for "CovSest"} \description{ This class extends the \code{CovControl} class and contains the control parameters for CovSest } \section{Objects from the Class}{ Objects can be created by calls of the form \code{new("CovControlSest", ...)} or by calling the constructor-function \code{CovControlSest}. } \section{Slots}{ \describe{ \item{bdp}{a numeric value specifying the required breakdown point. Allowed values are between \code{(n - p)/(2 * n)} and 1 and the default is \code{bdp=0.45}. } \item{arp}{a numeric value specifying the asympthotic rejection point (for the Rocke type S estimates), i.e. the fraction of points receiving zero weight (see Rocke (1996)). Default is \code{arp=0.1}. } \item{eps}{a numeric value specifying the relative precision of the solution of the S-estimate (bisquare and Rocke type). Default is to \code{eps=1e-5}. } \item{maxiter}{maximum number of iterations allowed in the computation of the S-estimate (bisquare and Rocke type). Default is \code{maxiter=120}. } \item{nsamp}{the number of random subsets considered. Default is \code{nsamp = 500}.} \item{seed}{starting value for random generator. Default is \code{seed = NULL}.} \item{method}{Which algorithm to use: 'sfast'=FAST-S, 'surreal'=Ruppert's SURREAL algorithm, 'bisquare'=Bisquare S-estimation with HBDP start or 'rocke' for Rocke type S-estimates} \item{\code{trace}, \code{tolSolve}:}{from the \code{"\linkS4class{CovControl}"} class. } } } \section{Extends}{ Class \code{"\linkS4class{CovControl}"}, directly. } \section{Methods}{ \describe{ \item{restimate}{\code{signature(obj = "CovControlSest")}: the generic function \code{restimate} allowes the different methods for robust estimation to be used polymorphically - this function will call \code{CovSest} passing it the control object and will return the obtained \code{CovRobust} object} } } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{Valentin Todorov \email{valentin.todorov@chello.at}} \examples{ ## the following two statements are equivalent ctrl1 <- new("CovControlSest", bdp=0.4) ctrl2 <- CovControlSest(bdp=0.4) data(hbk) CovSest(hbk, control=ctrl1) } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/CovControlMve.Rd0000644000176200001440000000346014443667016015225 0ustar liggesusers\name{CovControlMve} \alias{CovControlMve} % \title{ Constructor function for objects of class "CovControlMve"} \description{ This function will create a control object \code{CovControlMve} containing the control parameters for \code{CovMve} } \usage{ CovControlMve(alpha = 0.5, nsamp = 500, seed = NULL, trace= FALSE) } \arguments{ \item{alpha}{numeric parameter controlling the size of the subsets over which the determinant is minimized, i.e., \code{alpha*n} observations are used for computing the determinant. Allowed values are between 0.5 and 1 and the default is 0.5.} \item{nsamp}{ number of subsets used for initial estimates or \code{"best"} or \code{"exact"}. Default is \code{nsamp = 500}. For \code{nsamp="best"} exhaustive enumeration is done, as long as the number of trials does not exceed 5000. For \code{"exact"}, exhaustive enumeration will be attempted however many samples are needed. In this case a warning message will be displayed saying that the computation can take a very long time.} \item{seed}{starting value for random generator. Default is \code{seed = NULL}} \item{trace}{whether to print intermediate results. Default is \code{trace = FALSE}} } \value{ A \code{CovControlMve} object } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{Valentin Todorov \email{valentin.todorov@chello.at}} \examples{ ## the following two statements are equivalent ctrl1 <- new("CovControlMve", alpha=0.75) ctrl2 <- CovControlMve(alpha=0.75) data(hbk) CovMve(hbk, control=ctrl1) } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/QdaRobust-class.Rd0000644000176200001440000000362514443667016015477 0ustar liggesusers\name{QdaRobust-class} \docType{class} \alias{QdaRobust-class} \title{Class "QdaRobust" is a virtual base class for all robust QDA classes } \description{ The class \code{QdaRobust} searves as a base class for deriving all other classes representing the results of robust Quadratic Discriminant Analysis methods} \section{Objects from the Class}{A virtual Class: No objects may be created from it.} \section{Slots}{ \describe{ \item{\code{call}:}{The (matched) function call.} \item{\code{prior}:}{Prior probabilities used, default to group proportions} \item{\code{counts}:}{number of observations in each class} \item{\code{center}:}{the group means} \item{\code{cov}:}{the group covariance matrices} \item{\code{covinv}:}{the inverse of the group covariance matrices} \item{\code{covdet}:}{the determinants of the group covariance matrices} \item{\code{method}:}{a character string giving the estimation method used} \item{\code{X}:}{the training data set (same as the input parameter x of the constructor function)} \item{\code{grp}:}{grouping variable: a factor specifying the class for each observation.} \item{\code{control}:}{Object of class \code{"CovControl"} specifying which estimate to use for the group means and covariances } } } \section{Extends}{ Class \code{"\linkS4class{Qda}"}, directly. } \section{Methods}{ No methods defined with class "QdaRobust" in the signature. } \references{ Todorov V & Filzmoser P (2009), An Object Oriented Framework for Robust Multivariate Analysis. \emph{Journal of Statistical Software}, \bold{32}(3), 1--47. \doi{10.18637/jss.v032.i03}. } \author{ Valentin Todorov \email{valentin.todorov@chello.at} } \seealso{ \code{\link{Qda-class}}, \code{\link{QdaClassic-class}}, } \examples{ showClass("QdaRobust") } \keyword{classes} \keyword{robust} \keyword{multivariate} rrcov/man/un86.Rd0000644000176200001440000000236514443667016013270 0ustar liggesusers\name{un86} \alias{un86} \docType{data} \title{ United Nations Data - 1986} \description{ This data set consists of seven socioeconomic variables observed for 73 countries. } \usage{data(un86)} \format{ A data frame with 73 observations on the following 7 variables. \describe{ \item{\code{POP}}{Total population in milions} \item{\code{MOR}}{Number of infant deaths per thousand births} \item{\code{CAR}}{Number of motorized vehicles per hundred inhabitants} \item{\code{DR}}{Number of medical doctors per thousand inhabitants} \item{\code{GNP}}{Gross national product per inhabitant in thousands of US dollars} \item{\code{DEN}}{Density in inhabitants per square kilometer} \item{\code{TB}}{Trade balance, defined as total exports/(total exports + total imports)} } } \details{ The data set is from World Statistics in Brief, Number 10, a 1986 UN publication. It was used in Daigle et al. (1992) to illustrate a robust biplot method. } \source{ World Statistics in Brief, Number 10, a 1986 United Nations publication Daigle, G. and Rivest, L. (1992) A robust biplot, The canadian Journal of Statistics, 20, pp 241--255 } \examples{ data(un86) pairs(un86) } \keyword{datasets} rrcov/DESCRIPTION0000644000176200001440000000273014660625142013123 0ustar liggesusersPackage: rrcov Version: 1.7-6 VersionNote: Released 1.7-5 on 2024-01-30 on CRAN Title: Scalable Robust Estimators with High Breakdown Point Authors@R: c(person("Valentin", "Todorov", role = c("aut", "cre"), email = "valentin.todorov@chello.at", comment=c(ORCID = "0000-0003-4215-0245"))) Description: Robust Location and Scatter Estimation and Robust Multivariate Analysis with High Breakdown Point: principal component analysis (Filzmoser and Todorov (2013), ), linear and quadratic discriminant analysis (Todorov and Pires (2007)), multivariate tests (Todorov and Filzmoser (2010) ), outlier detection (Todorov et al. (2010) ). See also Todorov and Filzmoser (2009) , Todorov and Filzmoser (2010) and Boudt et al. (2019) . Maintainer: Valentin Todorov Depends: R (>= 2.10), robustbase (>= 0.92.1), methods Imports: stats, stats4, mvtnorm, lattice, pcaPP Suggests: grid, MASS LazyLoad: yes License: GPL (>= 3) URL: https://github.com/valentint/rrcov BugReports: https://github.com/valentint/rrcov/issues Repository: CRAN Packaged: 2024-08-19 10:22:55 UTC; valen NeedsCompilation: yes Author: Valentin Todorov [aut, cre] () Date/Publication: 2024-08-19 11:20:02 UTC RoxygenNote: 7.2.2